КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Лабораторная работа № 4. Методы криптографии. Реализация процедур стандарта DES
Цель работы Знакомство с методами двухключевой криптографии и принципами формирования общих ключей Диффи и Хеллмана. 2. Теоретические положения СТАНДАРТ RSA (криптография с асимметричным ключом) Электронную (цифровую) подпись обычно реализуют на основе криптографического алгоритма с открытым ключом. Такие алгоритмы строятся на основе двух ключей (ключ шифратор (КШ), ключ дешифратор (КД)). Открытым может быть один из ключей, другой же обязательно секретным. На рис. 1 представлена система открытого распространения ключей Диффи и Хеллмана. Рис. 1. Система открытого распространения ключей Диффи и Хеллмана
При обмене информацией первый пользователь выбирает случайное число X1, из целых чисел 1,...,n-1. Это он держит в секрете, а другому пользователю посылает число где m – положительное целое, меньшее n. Аналогично поступает и второй пользователь. В результате они могут вычислить z . Для того, чтобы вычислить z первый пользователь возводит y2 в степень X1, аналогичным способом поступает и второй пользователь. Не зная X1 и X2, злоумышленник не может вычислить z, имея только y1 и y2. Эквивалентность этой проблемы проблеме вычисления дискретного логарифма есть главный вопрос криптографии с открытым ключом. До настоящего времени нет простого решения проблемы. Например, если простое число длиной 1000 бит, то для вычисления y1 из X1 потребуется около 2000 умножений 1000 битовых чисел. С другой стороны, имеющимися алгоритмами вычисления логарифмов над полем GF(n) потребуется 2100 1030 операций. Подобрать же z злоумышленнику, не зная m, n, X1 или X2 за разумное время практически невозможно (см. табл. 1). В таблице 1 представлено сравнение рассмотренного ниже (в следующей лабораторной работе) одноключевого криптографического стандарта DES и двухключевого RSA. Таблица 1
Проблема произведений произведение m-битных Основная проблема при формировании общих ключей Диффи и Хеллмана заключается в реализации произведений сомножителей большой разрядности (более 32-х бит). Рассмотрим метод формирования произведения сомножителей большой разрядности (m – разрядность сомножителей; L – количество 32-х битных слов каждом в сомножителе) на основе команд умножения 32-х битных сомножителей. m = 64, L = 2 A = (a0 + a1 × 232); B = (b0 + b1 × 232); A × B = (a0 + a1 × 232) × (b0 + b1 × 232) = a0 × b0 + 232 × (a1 × b0 + a0 × b1) + 264 × a1 × b1. Графическая интерпретация произведения 64-битных сомножителей
m = 96, L = 3 A = (a0 + a1 × 232 + a2 × 264); B = (b0 + b1 × 232 + b2 × 232); A × B = (a0 + a1 × 232 + a2 × 264) × (b0 + b1 × 232 + b2 × 232) = a0 × b0 + 232 × (a1 × b0 + a0 × b1) + 264 × (a0 × b2 + a1 × b1 + a2 × b0) + 296 × (a1 × b2 + a2 × b1) + 2128 × a2 × b2. Графическая интерпретация произведения 96-битных сомножителей
Алгоритм умножения L-словных сомножителей Функция умножения L-словных сомножителей // A – массив 32-х битных слов 1-го сомножителя; // B – массив 32-х битных слов 2-го сомножителя; // P – массив 32-х битных слов произведения; // L – количество 32-х битных слов в каждом сомножителе. void Mmul(unsigned long int* A, unsigned long int* B, unsigned long int* P, int L){ int q, j, k; unsigned long int Pm, Ps, r_A, r_B, r_P; for(q = 0; q < (L + L); q++) P[q] = 0; for(q = 0; q < (L + L - 1); q++){ Pm = 0; Ps = 0; r_P = 0; for(j = 0; j < L; j++){ if(j > q) break; for(k = 0; k < L; k++){ if((k + j) > q) break; if((k + j) == q){ r_A = A[j]; r_B = B[k]; asm{ mov eAX, r_A mov eBX, r_B mul eBX add Pm, eAX adc Ps, eDX adc r_P, 0 } } } } P[q] = P[q] + Pm; P[q + 1] = P[q + 1] + Ps; if(r_P!= 0) P[q + 2] = P[q + 2] + r_P; } } 3. Задание на работу Получить вариант задания у преподавателя для формирования общего ключа Диффи и Хеллмана.
4. Оборудование ПЭВМ с архитектурой IBM PC, операционная система – Windows 95, интегрированная среда – C++ Builder или Delphi версии не ниже 3.0 5. Порядок выполнения работы 1) Согласно полученному варианту задания разработать и отладить ПО для формирования общего ключа Диффи и Хеллмана. 2) Программно замерить время формирования одного общего ключа Диффи и Хеллмана. 3) Оформить отчет. 6. Оформление отчета Отчет должен содержать: − задание на лабораторную работу; − листинг разработанного ПО для формирования общего ключа Диффи и Хеллмана; − результаты исследования времени формирования общего ключа Диффи и Хеллмана. 7. Контрольные вопросы 1) Какие ассемблерные команды предназначены для обработки 32-х разрядных операндов? 2) В каких случаях находят применение двухключевые криптографические методы? 3) Разработать функцию произведения L1 и L2 –словных сомножителей (L1 и L2 – количество 32-х битных слов в первом и втором сомножителе). 4) Каким образом программно измеряется время формирования общего ключа Диффи и Хеллмана? 5) Приведите основные характеристики стандарта RSA. 6) Какую минимальную разрядность общего ключа Диффи и Хеллмана целесообразно использовать?
Дата добавления: 2015-05-07; Просмотров: 586; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |