Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЗ4-5 Шифрование и расшифрование данных симметр...doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
523.78 Кб
Скачать

Задание 6. Шифрование и расшифрование с помощью алгоритма rsa

1. Научитесь шифровать и расшифровывать тексты, используя алгоритм RSA.

Технология работы

  1. Выберем два взаимно простых числа p=3 и q=11.

  2. Вычислим n=pq=311=33.

  3. Находим функцию Эйлера (n)=(33)=(p1)(q1)=20.

  4. Случайным образом выберем число е, взаимно простое с 20 и не превышающее его, например, е=7. Используя расширенный алгоритм Эвклида, легко проверить, что НОД(7,20)=1.

  5. Вычислим число d, удовлетворяющее условию 7d  1 (mod 20). Таким числом является d=3.

  6. Публикуем открытый ключ (е,n)=(7,33), а расшифровку поступающих сообщений будем осуществлять секретным ключом d=3.

  7. Представим шифруемое сообщение как последовательность целых чисел с помощью соответствия: A=1, B=2, ..., Z=26. Такая криптосистема в состоянии зашифровать буквы латинского алфавита, рассматриваемые как блоки.

  8. Пусть передается сообщение САВ, которое кодируется в виде (3,1,2). Абонент, передающий это сообщение, шифрует его открытым ключом:

RSA(C) = RSA(3) = 37 = 2187 = 9 (mod 33);

RSA(A) = RSA(1) = 17 = 1 (mod 33);

RSA(B) = RSA(2) = 27 = 128 = 29 (mod 33).

Таким образом, криптотекст представляет собой (9,1,29).

  1. Попытаемся расшифровать его, используя секретный ключ d=3:

93 = 729 = 3 (mod 33);

13 = 1 (mod 33);

293 = 24389 = 2 (mod 33).

Таким образом, получен открытый текст (3,1,2).

Этот пример носит чисто иллюстративный характер, поэтому в нем достаточно легко найти секретный ключ путем перебора. На практике это осуществить невозможно, так как рекомендуются следующие длины шифруемых блоков: 512–768 бит – для частных лиц; 1024 бит – для коммерческой информации; 2048 бит – для секретной информации.

Система ЭльГамаля. Эта вероятностная криптосистема была предложена в 1984 г.

  1. Генерирование ключей. Выбирается большое простое число р, а также число g, 1<g<p1, имеющее в мультипликативной группе Zp* большой порядок. В идеальном случае g является первичным корнем по модулю р.

Каждый абонент выбирает себе случайное число в промежутке от 1 до p1, и вычисляет h = g mod p.

  • Открытый ключ: р, g, h.

  • Секретный ключ: .

  1. Шифрование осуществляется блоками. Каждый блок открытого текста М преобразуется в криптотекст С следующим образом:

  • выбирается случайное число r такое, что 1rp1;

  • вычисляется С = (с1,с2), где с1 = gr mod p и с2 = Mhr mod p.

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

  1. Дешифрование. Имея секретный ключ и криптотекст С=(с1,с2), вычисляют:

D(C) = с2(с1)-1 mod p.

  1. Корректность. Проверка равенства D(C) = М выполняется непосредственно путем подстановки формул шифрования. Идея криптосистемы достаточно прозрачна: сообщение М маскируется в виде с2, а вместе с ней посылается подсказка с1, которая позволяет получить М из с2.

  2. Эффективность. Возведение в степень выполняется с помощью эффективного бинарного метода.

  3. Надежность. Сформулируем задачу раскрытия системы ЭльГамаля:

Задано: p, g, h, c1, c2, где 1<g<p1, h = g mod p, c1 = gr mod p, c2 = Mhr mod p для некоторых , r, MZp*.

Вычислить: М.

Для вскрытия открытого текста М необходимо определить секретный ключ , который можно найти дискретным логарифмированием выражения h = g mod p. Но эффективных алгоритмов решения этой задачи до сих пор не найдено.