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 бита. В Более подробную информацию о данном алгоритме шифрования и конкретные примеры можно получить из справки, а также из источников, указанных в литературе.

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


 

А также другие работы, которые могут Вас заинтересовать

50580. Понятие компонента, компонентной модели, компонентно-ориентированного программирования 61 KB
  Что представляет собой компонент Компонент от лат. В программировании компонент это кирпичик программы состоящий из свойств properties методов methods и событий events. Свойства дают возможность управлять видом и поведением компонента методы использовать возможности предоставляемые компонентом а события реагировать на происходящие внутри компонента события программировать реакцию компонента на внешние события и т.
50583. Общественное сознание и правосознание 41.5 KB
  Правосознание – форма общественного сознания, в которой находят свое отражение – идеи, теории, доктрины, научная школа, взгляды, мнения, эмоции, переживания, общества по поводу права, законности, справедливости...
50585. ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ 4.04 MB
  Однако наблюдается тепловое движение неосновных носителей заряда через обратно смещенные переходы которое создает очень малый ток утечки между шиной питания и землей. На статический ток потребления оказывают влияние три фактора: температура сложность схемотехники напряжение питания рис. Типовая зависимость статического тока потребления от напряжения питания и температуры для ИС К564ЛЕ5 Типовая зависимость...