Технології захисту інформації - копия
.pdfВеличини p, q, h та b є відкритими та утворюють публічний ключ. Приватним ключем в такому разі буде число а.
Для формування електронного підпису повідомлення М влас-
ник приватного ключа виконує такі дії: а) обирає випадкове число r < q; б) обчислює r` = r-1 mod q;
в) обчислює s1 = (hr mod p) mod q;
г) обчислює s2 = r`(H(M) + as1) mod q;
д) надає пару чисел (s1, s2) в якості підпису для повідомлення М.
Перевірка електронного підпису зводиться до такого:
а) отримувач обчислює s`= s2-1 mod q; б) обчислює u1 = H(M)s` mod q;
в) обчислює u2 = s`s1 mod q;
г) обчислює t (hu1bu2 modp)mod q.
У разі, якщо t = s1 – підпис справжній.
Доведення коректності процедури підписування. Коректність процедури ґрунтується на тому, що hr hu1 bu2 mod p .
Справді, оскільки b=ha mod p, то hr = hu1bu2 mod p ; hr = hu1+au2 mod p. Отже, для доведення треба показати, що r=(u1+au2) mod q. Це рівнозначне доведенню істинності співвідношення 1≡r`(u1+au2) mod q.
Підставивши сюди значення u1u2, будемо мати:
r`(u1+au2)≡ r`(H(M)s`+as`s1) mod q ≡ r`(H(M) +as1) s` mod q≡s2s` mod q≡ s2s2-1 mod q≡1.
Отже, процедура утворення та перевірки підпису коректні.
Безпека DSA
Як уже згадувалося, основним недоліком першої версії DSA була замала довжина модуля р, усього 512 біт. Тому в подальших редакціях цього алгоритму було вирішено надати можливість користувачам змінювати довжину модуля від 512 до 1024 біти, що значно підсилило криптостійкість алгоритму до атаки грубою силою.
Як видно з самого алгоритму, випадкові числа, що використовуються для створення цифрового підпису, відкриті. Це створює можливість для аналізу стійкості цих чисел усьому криптографічному загалові. Цей факт свідчить на користь алгоритму DSA, бо найбільш популярний алгоритм RSA зберігає генеровані прості числа у таємниці, і перевірити їх якість можна лише знаючи приватний ключ.
266