Реализация системы распространения ключей на основе алгоритма Диффи-Хеллмана (длиной 256 бит)

Автор работы: Пользователь скрыл имя, 24 Мая 2010 в 03:27, Не определен

Описание работы

ВВЕДЕНИЕ 3
Глава 1. Система открытого распределения ключей 4
1.1. История создания системы распределения ключей. 4
1.2. Система распределение ключей Диффи-Хеллмана 6
1.3. Описание средств разработки. 7
Глава 2. Программная реализация открытого распространения ключей Диффи-Хеллмана. 9
2.1. Математические основы алгоритмов используемых в работе. 9
2.1.1. Сложение и вычитание 9
2.1.2. Умножение «в столбик». 10
2.1.3. Возведение целого числа в квадрат. 12
2.1.4. Деление. Вычисление остатка. 13
2.1.5. Тест Рабина— Миллера 16
2.1.6. Модульное возведение в степень 18
2.1.7. Генерация простого числа 20
2.1.8. Разложение числа на простые множители. 23
2.1.9. Нахождение первообразного корня. 24
Глава 3. Оценка алгоритма. 27
3.1. Оценка стойкости алгоритма. 27
3.2. Оценка скорости работы алгоритма. 27
ЗАКЛЮЧЕНИЕ 29
Литература. 30

Файлы: 1 файл

ИЗ.doc

— 372.00 Кб (Скачать файл)

                                    x=rav(b);

                                    if(x==0) flag=0;

                              }

                        }

                  }

            }

            if(flag==1){

                  break;

            }

      }

      }

 

       Глава 3. Оценка алгоритма.

      3.1. Оценка криптостойкости алгоритма

      Протокол  обмена ключами Диффи–Хеллмана не обеспечивает аутентичности согласованного ключа. Активный противник, внедренный в канал связи между двумя  пользователями А и Б, может манипулировать сообщениями протокола и начать атаку “человек посередине” (man-in-the-middle attack).

      В ходе этой атаки Злоумышленник перехватывает  и блокирует первое сообщение  от А к Б, т. е. число gа , маскируется под А и посылает Б следующее сообщение.

      Злоумышленник (под именем А) — Б: gm = gm (mod p).

      Б , следуя инструкциям протокола, возвращает Злоумышленнику (под именем А) число gb. Это число снова перехватывается и блокируется Злоумышленником. Теперь Злоумышленник и Б согласовали между собой ключ gb m =(mod p) , хотя Б считает , что он разделил этот ключ с А.

      Аналогично Злоумышленник, имитируя Б, может согласовать другой ключ с А (т.е. число ga m(mod p)). Впоследствии Злоумышленник может использовать оба ключа для чтения и подмены “секретных” сообщений, которыми обмениваются А и Б, или поочередно имитировать этих пользователей.

      Атака на протокол обмена ключами Диффи–Хеллмана вполне реальна, поскольку этот протокол не предусматривает проверки аутентичности источника сообщений. Для того чтобы ключи были согласованы только между А и Б, обе стороны должны быть уверены друг в друге.

      Минусы программной реализации, снижающие стойкость:

      -при вычислении функции step(), описанной выше, появляется прямая зависимость времени вычисления от количества единиц (при бинарном представлении) в степени. Что может дать представление о количестве единиц в секретном ключе.

      - в программном продукте не реализована полная очистка оперативной памяти.

      - секретные ключи хранятся в открытом виде на диске.

      - не реализована возможность вычисления  хэш, в результате чего возможна  модификация ключей.

      3.2. Оценка скорости работы алгоритма

      Оценка  производилась на компьютере:

            Тип ЦП                                                     AMD Sempron, 1666 MHz ,2400+

            Чипсет системной платы                       nVIDIA nForce2 Ultra 400

            Системная память                                  1024 Мб  (DDR SDRAM) 

      Наиболее  долгой является операция генерации большого простого числа p , такого что p-1 раскладывается на простые множители, причем разложение должно иметь один большой простой множитель, и нахождение первообразного корня. Этот процесс является вероятностным и может привести к неопределенной отсрочке.

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

      Таблица 1.

      Тест  на время реализации базовых операций программного продукта 

Время генерации, сек. Количество проверенных значений, ед. Скорость проверки значений, ед./сек.
16 2700 168,8
34 7400 217,6
26 4400 169,2
160 23300 145,6
48 10000 208,3
83 17600 212,0
4 400 100,0
137 23900 174,5
5 600 120,0
        Среднее значение: 168,5
 

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

 

       Заключение

      В ходе курсовой работы был изучен алгоритм распределения ключей Диффи-Хеллмана и реализован на языке программирования С++. Полученный программный продукт отвечает требованиям, предъявляемым к системе открытого распространения ключей Диффи-Хеллмана.

      У программного продукта есть недостатки:

      -при  вычислении функции step( ), описанной выше, появляется прямая зависимость времени вычисления от количества единиц (при бинарном представлении) в степени. Что может дать представление о количестве единиц в секретном ключе.

      -  в программном продукте не  реализована полная очистка оперативной  памяти.

      -  секретные ключи хранятся в  открытом виде на диске.

      - не реализована возможность вычисления  хэш, в результате чего возможна  модификация ключей.

      -  не реализована аппаратная система.

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

 

       Литература

 
  1. Аграновский А.В., Хади Р.А.  Практическая криптография. Алгоритмы и их программирование. М.:  Солон-Пресс, 2002 г. – 256 с.
  2. Галуев Г.А.  Математические основы криптологии. Учебно-методическое пособие. Таганрог, 2003 г. 79 с.
  3. Дебора Керр Computerworld #39/1996 Тайна открытого ключа. http://www.osp.ru/cw/1996/39
  4. Завгородний В. И. Комплексная защита информации в компьютерных системах. М.: Логос, 2001 г. – 264 с.
  5. Кнут Д.Э. Искусство программирования. Т. 2. Получисленные алгоритмы.  М. СПб. – Киев: Вильямс, 2000 г. – 832 с.
  6. Молдовян Н. А., Молдовян А. А., Еремеев М. А.. Криптография. От примитивов к синтезу алгоритмов. С-Пб.: БХВ-Петербург, 2004 г. – 505 с.
  7. Маховенко Е. Б. Теоретико-числовые методы в криптографии. М.: Гелиос АРВ, 2006 г. – 320 с.
  8. Нильс Фюргесон, Брюс Шнайер. Практическая криптография. Киев: Диалектика, 2004 г. – 432 с.
  9. Рябко Б. Я., Фионов А. Н. Криптографические методы защиты информации. Учебное пособие. М.: Горячая линия – Телеком, 2005 г. – 232 с.
  10. Смарт Н. Криптография. М.: Техносфера, 2006 г. – 528 с.
  11. Шнайер Б.. Прикладная криптография. Протоколы, алгоритмы и исходные тексты на языке С. М.: Триумф, 2002 г. – 816 с.

Информация о работе Реализация системы распространения ключей на основе алгоритма Диффи-Хеллмана (длиной 256 бит)