- •Введение Вычисления над кольцами и в простых полях
- •1.Симметричный шифр гост 28147-89
- •1.1Цель работы
- •1.2Домашнее задание
- •1.3Ключевые вопросы
- •1.4Содержание протокола
- •Цель работы.
- •1.5Лабораторное задание
- •1.6Ключевые положения
- •1.6.1Поблочное шифрование
- •1.6.1.1Режим простой замены
- •1.6.1.2Режим Гаммирования
- •1.6.2Шифрование с обратной связью.
- •1.6.3Подстановки, перестановки, гаммирование
- •1.6.4Отечественный стандарт -- гост 28147-89
- •2.Исследование работы двухключевых алгоритмов шифрования на примере rsa
- •2.1Цель работы
- •2.2Домашнее задание
- •2.3Ключевые вопросы
- •2.4Содержание протокола
- •Цель работы.
- •2.5Лабораторное задание
- •2.6Ключевые положения
- •2.6.1Системы шифрования с открытым ключом
- •2.6.2Алгоритм шифрования rsa
- •2.6.3Оценка вычислительной сложности
- •2.6.4Пример расчёта по алгоритму rsa
- •3.Исследование работы двухключевых алгоритмов шифрования на примере криптосистемы Эль-Гамаля
- •3.1Цель работы
- •3.2Домашнее задание
- •3.3Ключевые вопросы
- •Цель работы.
- •4.Исследование цифровой подписи на примере алгоритма rsa
- •4.1Цель работы
- •4.2Домашнее задание
- •4.3Ключевые вопросы
- •4.4Содержание протокола
- •Цель работы.
- •4.5Лабораторное задание
- •4.6Ключевые положения
- •4.6.1Электронная подпись
- •4.6.2Цифровая сигнатура
- •4.6.3Электронная подпись на основе алгоритма rsa
- •5.Исследование создания сеансовых ключей на основе алгоритма Диффи-Хеллмана
- •5.1Цель работы
- •5.2Домашнее задание
- •5.3Ключевые вопросы
- •5.4Содержание протокола
- •Цель работы.
- •5.5Лабораторное задание
- •5.6Ключевые положения
- •5.6.1Управление ключами
- •5.6.2Генерация ключей
- •5.6.3Накопление ключей
- •5.6.4Распределение ключей
- •5.6.4.1Алгоритм Диффи-Хеллмана
- •6.Приложения
- •6.1Первая 1000 простых чисел
2.6.3Оценка вычислительной сложности
Ключи какой длины следует использовать?
Для практической реализации алгоритмов RSA, Эль Гамаля, Диффи-Хеллмана полезно знать оценки трудоемкости разложения простых чисел различной длины, сделанные Шроппелем.
-
log10 n
Число операций
Примечания
50
1.4*1010
Раскрываем на суперкомпьютерах
100
2.3*1015
На пределе современных технологий
200
1.2*1023
За пределами современных технологий
400
2.7*1034
Требует существенных изменений в технологии
800
1.3*1051
Не раскрываем
В конце 1995 года удалось практически реализовать раскрытие шифра RSA для 500-значного ключа. Для этого с помощью сети Интернет было задействовано 1600 компьютеров.
В конце 1999 года за 8 недель был разложен на множители ключ длиной 768 бит. Для разложения использовалась компьютеры локальной сети Массачусетского Технологического университета. Руководитель проекта заявил, что теперь, используя ИНТЕРНЕТ, возможно такой ключ разложить на множители в среднем за неделю.
Сами авторы RSA рекомендуют использовать следующие размеры модуля n:
1024 бит - для частных лиц;
2048 бит - для коммерческой информации;
4096 бит - для особо секретной информации.3
Третий немаловажный аспект реализации RSA - вычислительный. Ведь приходится использовать аппарат длинной арифметики. Если используется ключ длиной k бит, то для операций по открытому ключу требуется О(k2) операций, по закрытому ключу - О(k3) операций, а для генерации новых ключей требуется О(k4) операций.
2.6.4Пример расчёта по алгоритму rsa
P=17, Q=19
N=PQ=17´19=323
M=j(N)=(P-1)´(Q-1)=16´18=288
Проверка НОД(D,M) = 1 по алгоритму Евклида.
D=241.
241 |
288 |
241 |
47 |
6 |
47 |
6 |
5 |
1 |
5 |
1 |
0 |
Расчёт E обратного D в кольце вычетов R288
E=1/D(mod M) => DE=G(mod M) = 241´E = 1(mod 288)
Решение Диафантова ур-ия 1-го порядка: E = (-1)(n-1)´G´P(n-1)(mod M)
Поиск n: Ведётся по следующему алгоритму:
n=1, Z1=M, X1=D
n=n+1, hn=Zn div Xn, Yn=Zn mod Xn
Z(n+1) = Xn, X(n+1) = Yn
Если Yn¹0 переход на 2
Конец
n |
Z |
X |
Y = Z mod X |
H = Z div X |
Pi=Hi´Pi-1+Pi-2(mod M) _ |
0 |
241 |
288 |
241 |
0 |
1 |
1 |
288 |
241 |
47 |
1 |
1 |
2 |
241 |
47 |
6 |
5 |
6 |
3 |
47 |
6 |
5 |
7 |
43 |
4 |
6 |
5 |
1 |
1 |
49 – P4 искомый результат |
5 |
5 |
1 |
0 – Конец |
5 |
0 |
DIV – делить на цело
E = (-1)(5-1) ´ 49 (mod 288)= 494
Откр. Ключ (D=241, N=323)
Секр. Ключ (E=49, N=323)
Сообщение В=143
D = 241 = 128+64+32+16+1
B1=143
B2=1432(mod 323) = 100
B4=1434(mod 323) = 1002(mod 323) = 310
B8=1438(mod 323) = 3102(mod 323) = 169
B16=14316(mod 323) = 1692(mod 323) = 137
B32=14332(mod 323) = 1372(mod 323) = 35
B64=14364(mod 323) = 352(mod 323) = 256
B128=143128(mod 323) = 2562(mod 323) = 290
Шифрование: С=BD(mod N) = 143241(mod 323) = 143128´14364´14332´14316´143(mod 323) = 290´256´35´137´143(mod 323) = 262
Расшифровка: B = CE(mod N) = 26249(mod 323) = 143
