Практическая. Алгоритм БерлекэмпаМесси для нахождения коэффициентов обратной связи
Скачать 153.48 Kb.
|
4 АСИММЕТРИЧНЫЕ АЛГОРИТМЫ Для симметричной криптосистемы характерно применение одного и того же ключа, как при шифровании, так и при шифровании сообщений. В асимметричных криптосистемах для дешифрования данных используется один (общедоступный) ключ, а для дешифрования – другой (секретный) ключ. 4.1 Алгоритм Диффи-Хелмана Этот алгоритм предполагает, что два абонента дистанционно будут генерировать ключ для шифрования в дальнейшем, например, каким либо симметричным алгоритмом. Алгоритм Диффи-Хелмана (1976 год) использует функцию дискретного возведения в степень. Последовательность действий в алгоритме Диффи-Хелмана: 1 Сначала генерируются два больших простых числа n и q. Эти два числа не обязательно хранить в секрете. 2 Далее один из партнеров P1 генерирует случайное число x и посылает другому участнику будущих обменов P2 значение A = qx mod n. 3 По получении А партнер P2 генерирует случайное число у и посылает P2 вычисленное значение B = qy mod n. 4 Партнер P1, получив В, вычисляет Kx = Bx mod n. 5Партнер P2, получивAвычисляет Ky = Ay mod n. 6 Алгоритм гарантирует, что числа Ky и Kx равны и могут быть использованы в качестве секретного ключа для шифрования. Как видно из алгоритма, даже «перехватив» числа А и В, вычислить Kx или Ky невозможно. Пример.Представим итерации алгоритма в виде последовательности действий партнеров в табличной форме (табл. 4.1). Таблица 4.1 Совместным ключом для шифрования будет 5. 4.2 Алгоритм шифрования данных RSA Алгоритм предложен в 1978 году авторами Rivest, Shamir и Aldeman и основан на трудности разложения больших целых чисел на простые множители. В результате реализации алгоритма имеем пару ключей: первый в дальнейшем используется только для шифрования (открытый ключ), второй для дешифрования (закрытый ключ). При этом, знание одного из ключей не позволяет определить другой ключ. Сгенерированные ключи могут многократно использоваться для шифрования информации. Последовательность действий пользователя для получения ключей: 1 Получатель выбирает 2 больших простых целых числа p и q, на основе которых вычисляет N = p q; M = (p-1) (q-1). 2 Получатель выбирает целое случайное число d, которое является взаимно простым со значением М. 3 Вычисляем значение е из условия (ed) mod M = 1. 4 d и N публикуются как открытый ключ, е и М являются закрытым ключом. Действия по шифрованию сообщения. 5 Если S – сообщениеи его длина: 1 < Len(S) < N, то оно шифруется выполнением операции Sш = Se mod N (то есть, закрытым ключом). Действия по дешифрованию сообщения. 6 Получатель дешифровывает с помощью открытого ключа выполнением операции S = Sшdmod N. Если длина сообщения превышает N, то сообщение делится на фрагменты длины, не превосходящие N. Рассмотрим реализацию алгоритма на примере. Заметим, что в реальных алгоритмах в качестве простых чисел выбираются отстоящие друг от друга большие числа, порядка 2128 – 21024, поиск которых, вообще говоря, и определяют сложность алгоритма для криптоанализа. Пример.Далее представлены шаги алгоритма: 1 p = 19, q = 13, N = p q = 247, M = (p – 1) (q – 1) = 18х 12 = 216. 2 Выбираем целое случайное число d, которое взаимно простое сM. d = 35. (Действительно,d и M не имеют общих делителей 35 = 7 х 5, 216 = 2 х 2 х 2 х 3 х 3 х 3). 3 Вычисляем e такое, что (e d) mod M = 1, e = 179. 4(d,N)открытый ключ, т.е.(35,247), (e,N) –закрытый ключ (179, 247). 5Шифрование сообщения2 3 5 , используя закрытый ключ (179, 247) и формулуSш = Semod N: Таким образом, шифрованное сообщение имеет вид 124 165 99. 6 Дешифровка сообщения 124 165 99, используя открытый ключ(35, 247) и формулу S = SшdmodN Расшифрованное сообщение 2 3 5. 4.3 Задания для выполнения 4.3.1 Используя алгоритм Диффи-Хелмана сгенерируйте ключ для симметричного алгоритма криптографии. 4.3.2 Сгенерировать открытый и закрытый ключи для алгоритма RSA. Передать открытый ключ следующему по списку студенту. Таблица простых чисел в интервале [1; 200] приведена в таблице 4.2. 4.3.3 Выбрать последовательность цифр для шифрования (из столбца чисел таблицы 4.3, определяемого по последней цифре номера варианта). Выполнить шифрование последовательности цифр, используя свой закрытый ключ. Передать шифрограмму адресату (следующему по списку студенту). 4.3.4 Произвести дешифрование полученного сообщения от другого студента, используя полученный от него открытый ключ. Замечание: Некоторые простейшие ключи для алгоритма RSA представлены в таблице 4.4. Таблица 4.2 Таблица простых чисел от 1 до 200
Таблица 4.3 Последовательность цифр для шифрования
Таблица 4.4 Простейшие ключи для алгоритма RSA
Форма отчета по практическому занятию: Отчет оформляется в электронномвиде (текстовый или html- документ)по шаблону и должен включать: Название работы. Цель работы. Формулировку индивидуального задания и результат его выполнения. Краткие выводы по результатам выполнения работы. |