Автор работы: Пользователь скрыл имя, 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
}
}
}
if(flag==1){
break;
}
}
}
Протокол обмена ключами Диффи–Хеллмана не обеспечивает аутентичности согласованного ключа. Активный противник, внедренный в канал связи между двумя пользователями А и Б, может манипулировать сообщениями протокола и начать атаку “человек посередине” (man-in-the-middle attack).
В
ходе этой атаки Злоумышленник
Злоумышленник (под именем А) — Б: gm = gm (mod p).
Б , следуя инструкциям протокола, возвращает Злоумышленнику (под именем А) число gb. Это число снова перехватывается и блокируется Злоумышленником. Теперь Злоумышленник и Б согласовали между собой ключ gb m =(mod p) , хотя Б считает , что он разделил этот ключ с А.
Аналогично Злоумышленник, имитируя Б, может согласовать другой ключ с А (т.е. число ga m(mod p)). Впоследствии Злоумышленник может использовать оба ключа для чтения и подмены “секретных” сообщений, которыми обмениваются А и Б, или поочередно имитировать этих пользователей.
Атака на протокол обмена ключами Диффи–Хеллмана вполне реальна, поскольку этот протокол не предусматривает проверки аутентичности источника сообщений. Для того чтобы ключи были согласованы только между А и Б, обе стороны должны быть уверены друг в друге.
Минусы программной реализации, снижающие стойкость:
-при вычислении функции step(), описанной выше, появляется прямая зависимость времени вычисления от количества единиц (при бинарном представлении) в степени. Что может дать представление о количестве единиц в секретном ключе.
- в программном продукте не реализована полная очистка оперативной памяти.
- секретные ключи хранятся в открытом виде на диске.
-
не реализована возможность
Оценка производилась на компьютере:
Тип ЦП
Чипсет системной платы 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( ), описанной выше, появляется прямая зависимость времени вычисления от количества единиц (при бинарном представлении) в степени. Что может дать представление о количестве единиц в секретном ключе.
-
в программном продукте не
реализована полная очистка
- секретные ключи хранятся в открытом виде на диске.
-
не реализована возможность
- не реализована аппаратная система.
Таким образом, поставленная в работе цель была выполнена, решены необходимые задачи и на основании их сделаны соответствующие выводы.