Электронная подпись на базе шифра RSA

Если А планирует подписывать документ, то он должен выбрать параметры RSA.

А выбирает два простых числа P и Q, вычисляет N=P∙Q и f=(P-1)∙(Q-1). Затем выбирает d, взаимно простое с f, вычисляет c=d-1 mod f. Публикует открытый ключ (N, d), с – закрытый ключ, держит в секрете.

Пусть А хочет подписать сообщение m=m1…mn. Тогда вначале он вычисляет хеш-функцию y=h(m1…mn), которая ставит в соответствие сообщению m число y. Предполагается, что алгоритм вычисления хеш-функции всем известен. Важное свойство: практически невозможно изменить m1…mn, не изменив y. Поэтому А достаточно снабдить подписью только число y, и эта подпись будет относиться ко всему сообщению m1…mn.

А вычисляет число s= yc mod N. Число s - это цифровая подпись. Она добавляется к сообщению m, тем самым А имеет подписанное сообщение <m,s>.

Теперь каждый, кто знает открытые параметры абонента А, ассоциированные с его именем, т.е. числа (N, d), может проверить подлинность его подписи. Для этого необходимо, взяв подписанное сообщение вычислить значение хеш-функции y=h(m1…mn), число w=sd mod N и проверить равенство w= y. Если подпись подлинная, то w= y

Стойкость основана на сложности задачи факторизации.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: