Найбільш важливою сферою застосування криптографії є ​​цифровий підпис. Цифровий підпис забезпечує цілий комплекс захисту, який було б досить складно здійснити будь-яким іншим способом.

Аутентифікація повідомлень захищає дві сторони від будь-якої третьої, але не забезпечує захист кожної із сторін від один одної. Тут є цілий ряд можливостей для виникнення конфліктів.

Наприклад, припустимо, що Джон посилає Мері засвідчене повідомлення. Розглянемо такі конфлікти, які можуть при цьому виникати.

1. Мері може створити фальшиве повідомлення і заявити, що воно прийшло від Джона. Для цього Мері потрібно просто скласти повідомлення і приєднати до нього код автентичності із застосуванням ключа, який Джон і Мері використовують спільно.

2. Джон може заперечувати авторство відісланого повідомлення. Оскільки у Мері є можливість фальсифікувати повідомлення, неможливо довести, що Джон насправді посилав повідомлення.

Обидва ці сценарії стосуються питань легітимності. Ось приклад першого з сценаріїв: при виконанні електронної пересилки грошей одержувач збільшує значення пересилається суми і заявляє, що від відправника прийшла більш значна сума. Прикладом другого сценарію може служити ситуація, коли повідомлення електронної пошти містить вказівки біржовому маклеру з приводу виконання транзакції, яка згодом виявляється збитковою. Тому відправник заявляє, що таке повідомлення їм ніколи не відправлялося.

У ситуаціях, коли немає повної довіри між відправником та одержувачем, потрібно щось більше ніж проста аутентифікація. Найбільш привабливим вирішенням цієї проблеми виявляється цифровий підпис. Цифрова підпис є аналогом підпису, зробленого від руки. Він повинен забезпечувати наступні можливості.

■ Можливість встановити автора, а також дату і час підпису.

■ Можливість встановити достовірність вмісту повідомлення на час підпису.

■ Можливість перевірки підпису третьою стороною на випадок виникнення спору.

Таким чином, функції цифрового підпису охоплюють, зокрема, і функції аутентифікації.

На основі цих властивостей ми можемо сформулювати такі вимоги, висунуті до цифрового підпису:

■ Підпис має бути двійковим кодом, який залежить від підписуємого повідомлення.

■ Підпис має використовувати деяку інформацію, унікальну для відправника, щоб запобігти можливості як фальсифікації, так і заперечення авторства.

■ Цифровий підпис має бути відносно просто реалізувати.

■ Цифровий підпис має бути відносно просто розпізнати і перевірити.

З точки зору обчислень має бути нереально фальсифікувати цифровий підпис ні за допомогою створення нового повідомлення для наявної цифрового підпису, ні за допомогою створення фальшивої цифрового підпису для наявного повідомлення.

■ Примірник цифрового підпису повинно бути зручно зберігати в запам'ятовуючому пристрої.

На основі даних умов було сформовано стандарт цифрового підпису.

Національний інститут стандартів і технології (NIST) опублікував реальний стандарт обробки інформації FIPS PUB 186, відомий також як DSS (Digital Signature Standard - стандарт цифрового підпису). Стандарт DSS заснований на алгоритмі хешування SHA (Secure Hash Algorithm - захищений алгоритм хешування) і представляє нову технологію використання цифрового підпису - алгоритм DSA (Digital Signature Alhorithm - алгоритм цифрового підпису). Стандарт DSS був запропонований в 1991 р., а його виправлена ​​версія - в 1993 р. у відповідь на виниклі сумніви в безпеки відповідної схеми. У 1996 році в нього були внесені незначні зміни.

У стандарті DSS використовується алгоритм, покликаний забезпечити тільки функцію цифрового підпису. На відміну від RSA даний алгоритм не може служити для шифрування або обміну ключами. Однак це приклад технології криптографії з відкритим ключем.

Порівняємо схеми генерування цифрових підписів з користуванням DSS і RSA.

Підхід RSA

 

 

 

 

 

 

Підхід DSA

 

 

 

 

 

 

 

На основі RSA повідомлення, яке повинно бути підписано, надходить на вхід функції хешування, яка видає захищений хеш-код фіксованої довжини. Цей хеш-код шифрується потім особистим ключем відправника, в результаті чого і виходить підпис. Після цього передаються і повідомлення, і його підпис. Одержувач приймає повідомлення і обчислює хеш-код. Крім того, він дешифрує підпис, використовуючи відкритий ключ відправника. Якщо обчислений хеш-код відповідає дешифрований підпису, підпис вважається справжнім. Оскільки тільки відправник знає свій особистий ключ, справжній підпис може поставити тільки він.

Підхід DSS також заснований на функції хешування. Хеш-код подається на вхід функції створення підпису разом з випадковим числом k, що спеціально генеруються для даного підпису. Функція створення підпису залежить також від особистого ключа відправника KRa і ряду параметрів, відомих групі сполучених сторін. Можна вважати, що це безліч становить глобальний відкритий ключ KUG. У результаті виходить підпис, що складається з двох компонентів, що позначаються s і r.

У пункті призначення генерується хеш-код прийнятого повідомлення. Цей код і підпис подаються на вхід функції верифікації. Функція верифікації залежить також від глобального відкритого ключа та від відкритого ключа відправника КUа, відповідного особистого ключа відправника. Якщо підпис є справжнім, то на виході функції верифікації виходить значення, що збігається з компонентом r підпису. Функція створення підпису така, що тільки відправник, знаючи свій особистий ключ, може створити правильний підпис.