Криптоалгоритмы / Алгоритм RSA
.htmАлгоритм RSA Главная О фирме Теория Продукты Цены Архив Сервис Тесты Ссылки Шифрование Хеширование ЭЦП Управление ключами RSA ГОСТ Р.34.10-94 СТБ РБ 1176.2-99 Алгоритм RSA Общее описание Первым конкретным примером системы ОШ была предложенная в 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.
Copyright © 2001 ArgoSoft JSC Авторское право © 2001 ЗАО "АргоСофт"