Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Garbage / Информатика / 2.2.1.4 - Организация электронной подписи в криптосистеме RSA

.pdf
Скачиваний:
32
Добавлен:
21.05.2015
Размер:
112.18 Кб
Скачать

Организация электронной подписи в криптосистеме RSA.

Важным преимуществом криптосистем открытого шифрования вообще и криптосистемы RSA в частности является возможность довольно простой организации в ее рамках электронной подписи. Раньше, когда сторонами, обменивающимися секретными сообщениями, были дипломаты, военные и др., можно было говорить о надежности партнеров по связи, об их взаимном доверии друг к другу. Основной заботой обменивающихся сторон служило лишь то, чтобы в конфиденциальную связь не смогли вклиниться третьи стороны. Практически были исключены случаи, когда после получения очередного конфиденциального сообщения адресат вел бы себя недобросовестно и по каким-либо соображениям объявлял о неполучении им этого сообщения. Или же, наоборот, когда абонент объявлял бы о получении им некоторой информации, хотя в действительности такую информацию он не получал. Иными словами, речь шла об обмене конфиденциальными сообщениями между "своими", которые пользовались безграничным взаимным доверием. При такой постановке вполне приемлемыми оказались криптосистемы, базирующиеся на использовании секретных ключей шифрования.

Принципиально иная картина складывается сейчас, когда обмен документами (сообщениями) осуществляется между абонентами, которые заведомо не доверяют друг другу. Например, когда речь идет об обмене информацией (пусть даже конфиденциальной) между коммерческими фирмами, банками или иными подобными организациями. Здесь должны быть предусмотрены дополнительные меры, доказывающие факт посылки или получения соответствующих сообщений. Именно здесь проявляется одно из важных преимуществ односторонних функций и реализованных на них криптосистем с открытым ключом шифрования. С помощью односторонних функций удается организовать электронную подпись, которая по своей надежности вполне может конкурировать с обычными подписями на бумажных носителях.

Проследим, например, за механизмом организации электронной подписи в рамках системы RSA,

Пусть имеется необходимость в том, чтобы j-м абонентом в адрес i-го абонента было послано некоторое сообщение (некоторый текст) X и чтобы к тому же j-й абонент подписался под этим текстом, с тем, чтобы в последующем у i-го абонента было неопровержимое (или почти неопровержимое) доказательство того, что данный текст был послан не кем иным, как именно j-мабонентом.

Будем рассматривать вариант реализации электронной подписи с использованием хеш-функции от аргумента X, т.е. функции h(X), обладающей следующими свойствами:

-хеш-функция h(X) должна быть чувствительна ко всевозможным модификациям (изменениям) аргумента X, таким, как вставка, выбросы, перестановки и т.п.;

-функция h(X) должна обладать свойством необратимости, т.е. задача подбора текста X, который обладал бы данной h(X), должна быть чрезвычайно сложной (вычислительно неразрешимой);

-вероятность того, что значения h(X) двух различных текстов совпадут, должна быть ничтожно мала.

Электронную подпись с использованием хеш-функции h(X) в рамках системы RSA можно реализовать следующим образом.

1.Отправитель информации (j-й абонент) вычисляет хеш-функцию h(X) от аргумента X - передаваемого сообщения.

2.В зависимости от того, является сообщение X конфиденциальным или нет:

а) шифрует сообщение X, т.е. вычисляет число

 

у(Х) = Xe mod(N)

(5.10)

и по открытому каналу посылает его в адрес i-го абонента,

 

б) в адрес i-го абонента посылает число X.

 

3. Ставит свою подпись под h(X), т.е. вычисляет число

 

S(h(X)) = (h(X))d mod (N)

(5.11)

и посылает его в адрес i-го абонента.

 

Получатель подписанного текста (i-й абонент) при необходимости, т.е. когда

имеет место случай (а), расшифровывает текст с помощью формулы

 

X = (y(X))d mod (N)

(5.12)

вычисляет хеш-функцию h*(X) от аргумента X и сверяет ее значение с результатом расшифрования криптограммы S(h(X)). Иными словами, проверяется

условие

 

h*(X) = (S(h(X))e mod (N)

(5.13)

соблюдение которого и есть доказательство того, что сообщение X с его хешфункцией h(Х) в адрес i-го абонента было послано именно j-м абонентом. Ведь никто другой, кроме абонента, владеющего секретным ключом d(j), не может вычислить число S(h(X)) такое, чтобы оно удовлетворило равенству (5.13). Заметим, что в результате "перехвата" числа S(h(X)) злоумышленник сможет восстановить хеш-функцию h(X), поскольку число e(j), т.е. открытый ключ шифрования j-го абонента, общеизвестно. Но это не поможет ему в деле подделки подписи. Для этого ему необходимо владеть закрытым ключом шифрования, т.е. числом d(j). Только тогда он сможет имитировать посылку в адрес любого абонента произвольного текста от имени (за подписью) j-го абонента. Исходя из этого, можно заключить, что предъявление арбитру со стороны i-го абонента текста X, его хеш-функции h(X) и числа S(h(X)) является достаточно убедительным доказательством того, что текст X он получил именно от j-го абонента.