Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RSA_77.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
165.89 Кб
Скачать
  1. Алгоритм rsa

Вычисление ключей

Выбор p и q

p и q должны быть простыми

Вычисление n

n = pq

Вычисление φ(n)

φ(n) = (p-1)(q-1)

Выбор целого e

НОД(φ(n), e) = 1, 1<e<φ(n)

Вычисление d

d = e–1mod φ(n)

Открытый ключ

KU={e,n}

Личный ключ

KR={d,n}

Шифрование

Открытый текст

M < n

Шифрованный текст

C=M e(mod n)

Дешифрование

Открытый текст

C

Шифрованный текст

M = C d(mod n)

Рис.1 Алгоритм RSA

3. Пример ручного расчета

Рассмотрим пример шифрования с использованием алгоритма RSA(рис.1).

1. Выбираются два простых числа, р=7 и q=17.

2. Вычисляется n = pq = 7х17=119.

3. Вычисляется φ(n) = (p – 1)(q -1) = 96

4. Выбирается e, взаимно простое с φ(n)=96 и меньше, чем φ(n); в данном случае e=5

5. Определяется такое d, что de = 1 mod 96 и d < 96.

Число d можно определить с помощью расширенного алгоритма Эвклида:

Шаг1: Составляем две вектор-строки (A1 = [φ(n) 1 0] , A2=[e 0 1]).

Шаг2: Берем разность между первой строкой и второй, умноженной на такой коэффициент k, что первый элемент разности будет не более чем соответствующий элемент второй строки (C=A1 – k*A2, при этом С(1) < A2(1)).

Шаг3: Проверяем, если первый элемент в C равен нулю (C(1) = 0), то обратное число d будет равно третьему элементу A2 (d = A2(3)) и если d<0, то d= φ(n) +d, иначе приравниваем A2 к A1 (A1 = A2) и C к A2 (A2 = C), и переходим к шагу 2.

Цикл 1 Цикл 2

A1=[96 1 0] A1= [ 5 0 1]

A2=[ 5 0 1] A2= [1 1 -19]

k=19 k=1

C=[ 1 1 -19] C= [0 -4 -95]

Для удобства вычисления можно эту схему представить в виде:

_ [96 1 0]

_ [ 5 0 1] //умножая на k=19

_ [ 1 1 -19] // умножая на k=5

[ 0 -4 -95] //первый элемент в вектор-строке С равен 0.

Но d= -19<0. Тогда положительное значение будет равно - d=96 +(-19)=77. Проверить числа e и d на обратность можно вычислив выражения (ed) mod φ(n) и результатом должна быть 1. Действительно , значит числа e и d являются обратными по модулю φ(n).

В результате получаются открытый ключ KU = {5, 119} и личный ключ KR = {77, 119}. В данном примере показано использование этих ключей с вводимым открытым текстом М = 19. При шифровании, 19 возводится в пятую степень, что дает 2476099. В результате деления на 119 определяется остаток, равный 66. Следовательно, 195≡66mod119, и поэтому шифрованным текстом будет 66. Для дешифрования выясняется, что 6677 ≡ 19 mod 119.

Для наглядности, на рис. 2, показан пример применения алгоритма RSA.

Рис. 2. Пример использования алгоритма RSA

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]