Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания для самостоятельной работы Криптография...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
543.74 Кб
Скачать

2. Криптография с открытым ключом

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

Алгоритм RSA и алгоритм Эль-Гамаля можно применять как для шифрования, так и для электронной подписи. Алгоритм DSA пригоден только для электронной подписи.

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

2.1 Алгоритм rsa

Алгоритм RSA назван по первым буквам фамилий его разработчиков Р.Л. Райвеста, А. Шамира и Л.Адлемана. Алгоритм разработан в 1977 году в США.

Схема Райвеста-Шамира-Адлемана (RSA) с тех пор получила самое широкое признание и реализована практически во всех приложениях шифрования с открытым ключом.

RSA представляет собой блочный шифр, в котором открытый текст и шифротекст есть целые числа от 0 до 2n-1 при некотором n. В настоящее время используются значения n = 512, 1024, 2048 бит. В основу алгоритма положена процедура возведения в степень в модульной арифметике.

Краткие основы RSA:

1. Выбираются большие случайные простые числа P и Q;

2. Вычисляется их произведение: N=P*Q где N<=2n;

3. Случайным образом выбирается число E ( ключ шифрования), которое должно быть взаимно простым с результатом умножения (P-1)*(Q-1), т.е. не должно иметь с ним общих делителей, отличных от единицы;

4. Вычисляется число D( ключ расшифрования), из выражения (E*D) MOD [(P-1)*(Q-1)]=1;

Таким образом, пара чисел (E,N) будет открытым ключом, а пара чисел (D,N) -закрытым ключом. Два простых числа P и Q больше не нужны. Они могут быть отброшены , но не раскрыты. Понятно, что открытым ключом можно только закодировать исходный текст, для того, чтобы его раскодировать, нужен закрытый ключ.

Сообщение С, подлежащее шифрованию, разбивается на L отрезков длины n двоичных символов. Каждый отрезок сообщения рассматривается как число M , где 0<M <N =1,2…L

Кодирование отрезка сообщения: A= (M)E MOD N;

Преобразованное сообщение C = A1 A2 … AL отправляют пользователю

Обратная операция: M= (A)D MOD N;

Пример

(использование алгоритма RSA)

1. Выбираются большие случайные простые числа P=7 и Q=17;

2. Вычисляется их произведение: N=P*Q=7*17=119

3. Вычисляется φ(N)=(P-1)*(Q-1)= 6*16=96

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

5. Определяется такое D, что (E*D) MOD 96=1 и D<96.

Соответствующим значением D будет 77, т.к. (77*5) MOD 96 =1

6. В результате получаем открытый ключ (5; 119) и секретный (77; 119).

7. Пусть исходный шифруемый текст будет M=19

8. Шифруем текст 19 5 MOD 119= 66

9. Передаем 66 – это зашифрованный текст.

10. Расшифровываем текст 6677 MOD 119= 19 – это восстановленный текст