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

RSA

.doc
Скачиваний:
12
Добавлен:
28.06.2021
Размер:
211.46 Кб
Скачать

Устройство алгоритма

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

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

Криптосистема RSA стала первой системой, пригодной и для шифрования, и для цифровой подписи. Алгоритм используется в большом числе криптографических приложений, включая PGP, S/MIME, TLS/SSL, IPSEC/IKE и других.

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

  1. Если известно , то просто вычисляется;

  2. Если известно , то невозможно вычислить (вычисления займут большой промежуток времени);

Далее в тексте используются следующие именования: Алиса и Боб – участники обмена сообщениями, которые будут защищаться средой RSA; Ева и Виктор – атакующие канала связи между Алисой и Бобом.

Работа алгоритма RSA делится на несколько стадий:

  1. Генерация открытых и закрытых ключей Алисой;

  2. Отправка Алисой по незащищенному каналу открытого ключа для Боба;

  3. Шифрация Бобом сообщения при помощи открытого ключа Алисы;

  4. Передача зашифрованного сообщения Алисе;

  5. Дешифрация Алисой зашифрованного сообщения при помощи ее закрытого ключа;

Алгоритм генерации RSA-ключей Алисой определен следующей последовательностью действий:

1) Генерируется два случайных простых числа 𝑝 и 𝑞 заданного размера (зависит от стандарта RSA);

2) Вычисляется их произведение 𝑛=𝑝∗𝑞, которое называется модулем;

3) От модуля вычисляется функция Эйлера, используя формулу 𝜑(𝑛)=(𝑝−1)∗(𝑞−1);

4) Выбирается целое число 𝑒(1<𝑒<𝜑(𝑛)), взаимно простое со значением 𝜑(𝑛);

5) После этого находится число 𝑑=𝑘∗𝜑(𝑛)+1𝑒, где 𝑘 – некоторое целое число, подбираемое перебором, при котором число 𝑑 становится целым. Бывают случаи, когда 𝑑 не приобретает целых значений (не существует такого 𝑘, при котором 𝑑 – целое). Тогда вновь выполняется п.4;

6) Пара значений {𝑒,𝑛} является открытым ключом;

7) Пара значений {𝑑,𝑛} является закрытым ключом;

Формула, использующаяся в RSA, для определения шифротекста: 𝑐=𝐸(𝑚)=𝑚*𝑒*mod(𝑛).

Формула, использующаяся в RSA, для определения исходного сообщения: 𝑚=𝐷(𝑐)=𝑐*𝑑*mod(𝑛).

Блок схема алгоритма

Применение шифрации и дешифрации на практике

Получатель устанавливает шифр с характеристиками:

  1. Выберем р=17, q=31

  2. Определим n=pq=527

  3. Найдем φ(n)=(р –1)(q – 1)=480.

  4. В качестве открытого ключа е выбрано число, взаимно простое с φ(n),е=7. Для этого числа с помощью расширенного алгоритма Евклида найдены целые числа u и v, удовлетворяющие соотношению е∙u+φ(n)∙v=1:

480=7∙68+4,

7=4∙1+3,

4=3∙1+1,

1=4–3∙1=4–(7–4∙1)∙1=4∙2–7∙1=(480–7∙68)∙2–7∙1=480∙2–7∙137,

v=2, u= –137.

Поскольку – 137≡343(mod480), то d=343.

Проверка: 7∙343=2401≡1(mod480).

Текстовое сообщение представляется в виде последовательности чисел, содержащихся в интервале

[0, 526]. Для этого буквы R, S и A кодируются пятиразрядными двоичными числами. Используются порядковые номера этих букв в английском алфавите при их двоичном представлении:

R=1810=(10010)2, S=1910=(10011)2,

A=110=(00001)2.

Тогда RSA=(100101001100001)2. Разбиение текста на блоки ограниченной длины дает представление из двух блоков: RSA=(100101001), (100001)=(М1=297, М2=33).

Последовательно шифруются блоки исходного текста М1=297, М2=33:

y1k1)=М1e≡2977(mod527)=474.

Здесь воспользовались тем, что:

2977=((2972)3)297≡(mod527)=(2003(mod527)297)(mod527)=474,

y2=Еk(М2)=M2e≡337(mod527)=407.

Шифрованный текст, как и исходный, получаем в виде двух блоков: у1=474; у2=407.

Расшифрование представляется последовательностью действий Dk(yi )=(yi )d=(yi )343(mod 527), i=1,2.

Вычисления возведения в степень d более удобно проводить, предварительно представляя показатель степени суммой степеней числа 2, а именно: 343=256+64+16+4+2+1.

Используя это представление показателя степени d=343, получаем:

4742≡174(mod527),

4744≡237(mod527),

4748≡307(mod527),

47416≡443(mod527),

47432≡205(mod527),

47464≡392(mod527),

474128≡307(mod527),

474256≡443(mod527),

и окончательно 474343(mod527)=(443∙392∙443∙237∙174∙474) (mod527)=297.

Аналогично вычисляется значение 407343(mod527)=33.

Переход к буквенному представлению расшифрованного сообщения дает: RSA.

ПрименениеRSA

Стойкость алгоритма основывается на сложности вычисления обратной функции к функции шифрования.

Вычисление обратного элемента по модулю не является сложной задачей, однако злоумышленнику неизвестно значение . Для вычисления функции Эйлера от известного числа , необходимознать разложение этого числа на простые множители. Нахождение таких множителей и является сложной задачей, а знание этих множителей — «потайной дверцей», которая используется для вычисления владельцем ключа.В общем случае, 768-битные ключи были дешифрованы.

Система RSA используется для защиты программного обеспечения и в схемах цифровой подписи.

Также она используется в открытой системе шифрования PGP и иных системах шифрования (к примеру, DarkCryptTC и формат xdc) в сочетании с симметричными алгоритмами.

Из-за низкой скорости шифрования (около 30 кбит/с при 512 битном ключе на процессоре 2 ГГц), сообщения обычно шифруют с помощью более производительных симметричных алгоритмов со случайным сеансовым ключом (например, AES, IDEA, Serpent, Twofish), а с помощью RSA шифруют лишь этот ключ, таким образом реализуется гибридная криптосистема. Такой механизм имеет потенциальные уязвимости ввиду необходимости использовать криптографически стойкий генератор псевдослучайных чисел для формирования случайного сеансового ключа симметричного шифрования.

С 31 декабря 2013г. браузеры Mozilla не поддерживают сертификаты, с ключом шифрования RSAменьше 2048 бит.

Соседние файлы в предмете Основы информационной безопасности