Message digest і цифрові сигнатури

Як же здійснюється цифровий підпис? Розглянемо ще один приклад. Припустимо, Сем збирається відправити Тому контракт або номер своєї кредитної картки в цифровому вигляді. Для підтвердження достовірності цих документів Тому необхідна цифровий підпис Сема. Спочатку Сем відправляє свій документ. Потім використовує алгоритм хешування для обчислення ідентифікатора цього документа, шифрує хешірованное значення за допомогою свого особистого ключа і відправляє його Тому. Це і є цифровий підпис Сема. Том за допомогою того ж алгоритму хешування спочатку обчислює ідентифікатор прийнятого документа. Потім він розшифровує значення, яке отримав від Сема, використовуючи наданий Семом ключ загального користування. Якщо два значення хешування збіглися, Том не тільки дізнається, що цей документ справжній, а й те, що підпис Сема дійсна. Зрозуміло, що проведення комерційних транзакцій за таким сценарієм значно безпечніше, ніж з використанням підпису від руки на папері, яку можна підробити. А якщо відомості, що передаються Семом Тому, конфіденційні (наприклад, містять номер кредитної картки), то і їх можна зашифрувати так, щоб прочитати їх зміг тільки Том.

Message Digest і цифрові сигнатури

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

MessageDigest обчислюється з повідомлення відправником. Секретний ключ відправника використовується для зашифровки MessageDigest і деякого тимчасового відбитка (timestamp), формуючи цифрову сигнатуру, або сертифікат сигнатури. Відправник посилає цифрову сигнатуру перед повідомленням. Одержувач отримує повідомлення і цифрову сигнатуру, відновлює вихідне MessageDigest з цифрової сигнатури за допомогою розшифровки відкритим ключем відправника, заново обчислює MessageDigest повідомлення і виробляє порівняння з отриманим від відправника MessageDigest. Якщо вони рівні, то над повідомленням не було вироблено ніяких змін.

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

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

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

Схема. Система цифрового підпису.

1. Сем обробляє за спеціальним алгоритмом документ, який збирається відправити Тому, в результаті отримує деякий параметр, розрахований на підставі вмісту документа. Зазвичай це займає значно менше місця, ніж вихідний документ - параметр 128 або 160 двійкових розрядів.

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

3. Сем відправляє Тому документ і свою цифровий підпис.

4. Том пропускає документ, отриманий від Тома, через той же алгоритм, яким користувався Том.

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

6. Том порівнює значення параметра, отриманого при виконанні операції 4, з розшифрованих значенням цифрового підпису. Якщо ці значення збігаються, значить, підпис справжня і документ "в дорозі" не зазнав змін. В іншому випадку, чи документ спотворено, або підпис підроблений, або і те й інше.

Найімовірніше саме за такою, або подібною схемою будуть вестися справи через Internet або будь-яку іншу інформаційну службу. Цей алгоритм послужив основою проекту державного стандарту США - Digital Signature Standard (DSS). У ньому застосовуються: алгоритм Secure Hash Algorith для розрахунку параметрів хешування і криптосистема з ключем загального користування, відома під назвою Digital Signature Algorith (DSA) і призначена для отримання цифрового підпису за параметрами хешування. Ряд пунктів проекту DSS зазнали критики, проте багато з зауважень виходили від груп, фінансово зацікавлених у відхиленні даного проекту.

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

Схожі статті