33634

RSA (буквенная аббревиатура от фамилий Rivest, Shamir и Adleman)

Доклад

Информатика, кибернетика и программирование

Алгоритм RS состоит из следующих пунктов: Выбрать простые числа p и q заданного размера например 512 битов каждое. Вычислить n = p q Вычисляется значение функции Эйлера от числа n: m = p 1 q 1 Выбрать число d взаимно простое с m Два целых числа называются взаимно простыми если они не имеют никаких общих делителей кроме 1. Выбрать число e так чтобы e d = 1 mod m Числа e и d являются ключами. Шифруемые данные необходимо разбить на блоки числа от 0 до n 1.

Русский

2013-09-06

92.5 KB

10 чел.

53. RSA (буквенная аббревиатура от фамилий Rivest, Shamir и Adleman) - криптографический алгоритм с открытым ключом. RSA стал первым алгоритмом такого типа, пригодным и для шифрования, и для цифровой подписи. Алгоритм используется в большом числе криптографических приложений.

В криптографической системе с открытым ключом каждый участник располагает как открытым ключом (public key), так и секретным ключом (secret key). Каждый ключ - это часть информации. В криптографической системе RSA каждый ключ состоит из пары целых чисел. Каждый участник создаёт свой открытый и секретный ключ самостоятельно. Секретный ключ каждый из них держит в секрете, а открытые ключи можно сообщать кому угодно или даже публиковать их. Открытый и секретный ключи каждого участника обмена сообщениями образуют «согласованную пару» в том смысле, что они являются взаимно обратными.

Алгоритм RSA состоит из следующих пунктов:

  1.   Выбрать простые числа p и q заданного размера (например, 512 битов каждое).

В криптографии под случайным простым числом понимается простое число, содержащее в двоичной записи заданное количество битов k, на алгоритм генерации которого накладываются определенные ограничения.

  1.   Вычислить n = p * q 
  2.   Вычисляется значение функции Эйлера от числа n:

 m = (p - 1) * (q - 1)

  1.   Выбрать число d взаимно простое с m 

Два целых числа называются взаимно простыми, если они не имеют никаких общих делителей, кроме ±1. Примеры: 14 и 25 взаимно просты, а 15 и 25 не взаимно просты (у них имеется общий делитель 5).

  1.   Выбрать число e так, чтобы e * d = 1 (mod m)

Числа e и d являются ключами. Шифруемые данные необходимо разбить на блоки - числа от 0 до n - 1.

Шифрование и дешифровка данных производятся следующим образом:

Шифрование: P(M) = Me mod n

Дешифровка: S(C) = Cd mod n

Следует также отметить, что ключи e и d равноправны, т.е. сообщение можно шифровать как ключом e, так и ключом d, при этом расшифровка должна быть произведена с помощью другого ключа.

Схема шифрования и дешифрования RSA представлена на рис.4. Предположим, сторона B хочет послать стороне А сообщение М. Сообщением являются целые числа от 0 до n-1.



Рис.4 – Схема шифрования/дешифрования RSA

Размер ключа в алгоритме RSA связан с размером модуля n. Два числа p  и q,  произведением  которых  является  модуль,  должны  иметь  приблизительно одинаковую  длину,  поскольку  в  этом  случае  найти  сомножители  (факторы) сложнее, чем в случае, когда длина чисел значительно  различается.  Например, если предполагается использовать 768-битный модуль, то каждое  число  должно иметь длину приблизительно 384 бита. Обратите внимание, что если  два  числа чрезвычайно близки  друг  к  другу  или  их  разность  близка  к  некоторому предопределенному значению, то возникает потенциальная угроза  безопасности, однако  такая  вероятность  –  близость  двух  случайно  выбранных  чисел  – незначительна.

Оптимальный  размер  модуля  определяется  требованиями   безопасности: модуль большего размера обеспечивает большую безопасность,  но  и  замедляет работу  алгоритма RSA. Длина модуля выбирается в  первую  очередь  на  основе значимости защищаемых данных и необходимой стойкости защищенных данных и  во вторую очередь – на основе оценки возможных угроз.

На 2009 год система шифрования на основе RSA считается надёжной, начиная с размера n = p * q  в 1024 бита. В Более подробную информацию о данном алгоритме шифрования и конкретные примеры можно получить из справки, а также из источников, указанных в литературе.

Данный алгоритм обладает высокой криптостойкость и низкой помехоутойчивостью, также скорость дешифровании файла ниже скорости шифрования файла.