Оценка вычислительной сложности

Ключи какой длины следует использовать?

Для практической реализации алгоритмов RSA, Эль Гамаля, Диффи-Хеллмана полезно знать оценки трудоемкости разложения простых чисел различной длины, сделанные Шроппелем.

lo g 10 n Число операций Примечания
  1.4*1010 Раскрываем на суперкомпьютерах
  2.3*1015 На пределе современных технологий
  1.2*1023 За пределами современных технологий
  2.7*1034 Требует существенных изменений в технологии
  1.3*1051 Не раскрываем

В конце 1995 года удалось практически реализовать раскрытие шифра RSA для 500-значного ключа. Для этого с помощью сети Интернет было задействовано 1600 компьютеров.

В конце 1999 года за 8 недель был разложен на множители ключ длиной 768 бит. Для разложения использовалась компьютеры локальной сети Массачусетского Технологического университета. Руководитель проекта заявил, что теперь, используя ИНТЕРНЕТ, возможно такой ключ разложить на множители в среднем за неделю.

Сами авторы RSA рекомендуют использовать следующие размеры модуля n:

· 1024 бит - для частных лиц;

· 2048 бит - для коммерческой информации;

· 4096 бит - для особо секретной информации.[3]

Третий немаловажный аспект реализации RSA - вычислительный. Ведь приходится использовать аппарат длинной арифметики. Если используется ключ длиной k бит, то для операций по открытому ключу требуется О(k2) операций, по закрытому ключу - О(k3) операций, а для генерации новых ключей требуется О(k4) операций.

Пример расчёта по алгоритму 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.

   
   
   
   
   
   

Расчёт 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: Ведётся по следующему алгоритму:

1. n=1, Z1=M, X1=D

2. n=n+1, hn=Zn div Xn, Yn=Zn mod Xn

3. Z(n+1) = Xn, X(n+1) = Yn

4. Если Yn¹0 переход на 2

5. Конец

n Z X Y = Z mod X H = Z div X Pi=Hi´Pi-1+Pi-2(mod M) _
           
           
           
           
          49 – P4 искомый результат
      0 – Конец    

DIV – делить на цело

E = (-1)(5-1) ´ 49 (mod 288)= 49[4]

Откр. Ключ (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


Исследование работы двухключевых алгоритмов шифрования на примере криптосистемы Эль-Гамаля

Цель работы

Изучить основные принципы шифрования с открытым ключом. Освоить алгоритм Эль-Гамаля. Изучить математические принципы на которых основан этот алгоритм.

Домашнее задание

Изучить алгоритм шифрования Эль Гамаля в соответствии с пунктом 3.6 данного методического руководства.

Записать вариант, соответствующий четырём младшим цифрам номера студенческого билета в виде (n4n3n2n1).

По таблице простых чисел (?) выбрать простое число. Номер числа P = 55+n1.

Вычислить случайное число W=(n2+1)´10;

Вычислить случайный секретный ключ X=(n3+1)´9

Вычислить случайное число K=(n4+1)´11;

Выполнить шифрование

Выполнить расшифровывание

Все вычисления должны быть занесены в протокол в виде?

Таблица 3.1 Шифрование по алгоритму Эль Гамаля

Наименование величины Домашнее задание Лабораторное задание
Простое число P    
Случайное число W<P-1    
Секретный ключ X<P-1    
Открытый ключ Y=WX(mod P)    
Исходное сообщение M    
Случайное число K<P-1    
Шифрование: R=YK(mod P) Z=WK(mod P) C=M xor R    
Расшифровывание: R=ZX(mod P) M=C xor R    

Ключевые вопросы

1. Что представляет собой идеальная криптосистема с открытым ключом?

2. Описать последовательность действий при передаче шифровки с открытым ключом по алгоритму Эль-Гамаля.

3. Как вычислить степенную функцию в простом поле Галуа?

4. Как вычислить логарифм в простом поле Галуа?

5. Почему секретный ключ в этой криптосистеме может быть любым числом в пределах от 2 до Р-1?

6. На какой математической особенности основана трудность взлома шифра Эль-Гамаля?

7. Какой длины ключи применяются в настоящее время в этой криптосистеме?

Содержание протокола

1. Название работы.

2. Цель работы.

3. Выполненное домашнее задание согласно номеру варианта

4. Результаты выполнения лабораторного задания

5. Выводы

Лабораторное задание

1. Предъявить преподавателю выполненное домашнее задание.

2. Найти в каталоге STUDENT файл под именем LabCrypt.exe и запустить эту программу.

3. Из появившегося меню вызвать форму для лабораторной работы №4

4. Ввести в форму подготовленные дома данные (?)

5. Заполнить таблицу в протоколе результатами выполнения лабораторной работы

6. Сделать выводы

Ключевые положения

(При подготовке к защите этой работы необходимо изучить ключевые положения к ЛР №1 и №3.)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: