Смекни!
smekni.com

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

for(t=0;t<=31;t++)st[t]=b[t];

step(b);

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 с.