Общее описание
Первым конкретным примером
системы ОШ была предложенная в 1978 году так
называемая "система RSA". Ее название
происходит от первых букв фамилий авторов R.Rivest,
A.Shamir, L.Adleman, которые придумали ее во время
совместной работы в Массачусетском
технологическом институте, в 1977 году.
Зашифрование и расшифрование сообщений
Система открытого
шифрования RSA устроена таким образом.
Открытые сообщения M представляются целыми
числами, 1<M<N, где N — большое целое
число, равное произведению двух различных
больших простых чисел:
N = P * Q
Алгоритмы шифрования и
расшифрования определяются числом N и
показателями степени E и D которые связаны
соотношением:
( E * D ) mоd F(N) = 1
где:
F(N) = (p — 1) * (q — 1)
(B-12)
Шифрование информации можно
определить следующим образом:
M —> M E mоd(N) = C
Расшифрование:
C —> CDmоd(N)=(ME)Dmоd(N)=Mmоd(N)=M
В качестве открытого ключа
выступает пара чисел (N, E), а в качестве
секретного ключа — число D.
Электронная подпись
Система
электронной подписи RSA получается при
"смене мест" ключей E и D.
Подпись сообщения:
M —> M D
mоd (N) = S
Проверка подлинности подписанного
сообщения [M,S]:
M = S E mоd(N)
Совпадение чисел в левой и правой
частях последнего равенства "доказывает",
что сообщение M было подписано обладателем
секретного ключа D, соответствующего ключу
проверки подписи (N, E), т.е. авторизует
сообщение.
Для разрешения споров между отправителем и
получателем информации, связанных с
возможностью искажения ключа проверки подписи (N,
E), достоверная копия этого ключа выдается
третьей стороне — арбитру и применяется им при
возникновении конфликта.
Протокол работы пары абонентов сети общей
связи с алгоритмом RSA выглядит так.
абоненты A и B генерируют независимо
друг от друга пары простых чисел:
Pa,Qa и Pb,Qb
вычисляют произведение больших простых
чисел:
Na,b = Pa,b * Qa,b
вычисляют ключи:
Ea,b и Da,b
числа Na,b и Ea,b помещаются в
общедоступный справочник и получают статус
открытых ключей;
числа Da,b сохраняются в качестве секретных
ключей;
обмен сообщениями
Ca,b = M Ea,b mоd(Na,b)
расшифрование
M = Ca,b Da,b mоd(Na,b)
Формирование цифровой
подписи:
подписывают и шифруют
Sa,b = M Da,b mоd(Na,b)
передают
Ca,b = M Ea,b mоd(Na,b)
расшифровывают
M = Сa,b Da,b mоd(Na,b)
проверяют подлинность подписи
M = Sa,b Ea,b mоd(Na,b)
Устойчивость метода
Предполагая, что известны все
параметры этого протокола кроме сохраняемых в
секрете чисел D, мы должны оценить сложность
их восстановления. Если известно разложение на
множители числа N = P * Q, то по
открытому ключу (N, E), секретный ключ E
вычисляется легко.
Поэтому разложение N = P * Q должно
также быть недоступным для потенциального
злоумышленника. Нетрудно видеть, что после
вычисления пары E, D знание множителей P, Q
не нужно даже законным пользователям системы,
т.е. они могут быть "забыты". Сложность их
определения по числам N, E и является
гарантией стойкости системы RSA.