Шифрование RSA. Методические указания по Лаб работе Шифр RSA. Обмен ключами по ДиффиХелману
Скачать 0.61 Mb.
|
Обмен ключами по Диффи-Хелману 1. Теория. Для защиты информации в вычислительных сетях используется такой Е криптографического преобразования как шифрование, в котором всегда различают два элемента ключи алгоритм. При этом ключом является секретное состояние некоторых параметров алгоритма криптопреобразования сообщения. На практике в зависимости от способа применения ключа различают типа криптографических систем: ● Одноключевые (симметричные) ● Двухключевые (несимметричные) В одноключевых системах, называемых традиционными, ключи шифрования и расшифрования (л.р.2) либо одинаковы, либо легко выводятся один из другого, об' печивая таким образом единый общий ключ. Такой ключ является секретные передается получателю сообщения только по защищенному каналу связи. Однако при этом имеет место следующий парадокс если для обмена ее секретного ключа используется защищенный канал, тонет необходимости шифровать конфиденциальные сообщения, гораздо проще отправить их по это каналу. Отмеченный парадокс может быть исключен использованием идеи Диффи и Хеллмана, которые предложили способ выработки секретного ключа без предварительного согласования между абонентами сети путем обмена информацией по открытому каналу. Этот способ был предложен Диффи и Хеллманом в 1976 году и опубликован в ряде работ по криптографии. Реализация такого способа привела к появлению открытого шифрования. Абонент сего открыто сообщало том, каким образом зашифровать к нему сообщение, расшифровать же его мог только он сам. Основную роль при выработке секретного ключа в данном случае играют математические операции, когда прямая операция сравнительно проста, а обратная практически трудно реализуема. Прямая операция возвести основание а в степень р и взять остаток по модулю вида a p mod Обратная операция найти р, зная L, аи т. Обратная операция (задача) при этом может быть решена простым перебором значений р, но практически не решается при больших значениях р В предлагаемом алгоритме выработки секретного ключа известны основание аи Отправитель сообщения с помощью генератора случайных чисел (ГСЧ) получает случайное число X (1 < х < т, вычисляет значение L 0 = т и посылает L 0 получателю. Получатель принимает вырабатывает с помощью своего ГСЧ случайное число Y (1 < у < т, вычисляет значение L p = т и посылает L p отправителю. Отправитель принимает L p , вычисляет К L p x = аут. Получатель вычисляет К L 0 y = а уx mod т. Так как К Кто это число и является общим секретным ключом. Злоумышленник, перехватив и L p , не знает случайных чисел хи у и не сможет расшифровать исходный текст сообщения. Лабораторная работа Криптографическая защита информации 2. Практическое задание Составьте программное обеспечение, реализующее алгоритм обмена ключами. Ключи должны автоматически формироваться в файлы. Должна быть обеспечена наглядность выполнения алгоритма. Для созданного программного обеспечения проведите тестирование не менее чем на 10 различных наборах данных. Шифр RSA 3. Теория. Защита данных с помощью криптографического преобразования является эффективным решением проблемы их безопасности. Зашифрованные данные доступны лишь тем, кто знает, каких расшифровать, то есть тем, кто обладает соответствующим ключом шифрования. Одним из наиболее перспективных криптографических стандартов на шифрование данных являются системы с открытым ключом. В таких системах для шифрования используется один ключа для расшифрования другой. Первый ключ является открытыми может быть опубликован для шифрования своей информации любым пользователем сети. Получатель зашифрованной информации для расшифровки данных использует второй ключ, являющийся секретным. При этом должно соблюдаться следующее условие секретный ключ не может быть определен из опубликованного открытого ключа. Криптографические системы с открытым ключом используют необратимые или односторонние функции, обладающие важным свойством при заданном значении х относительно просто вычислить значение х, однако, если ух, тонет простого пути для вычисления значениях, то есть очень трудно рассчитать значение обратной функции 1 // В настоящее время широко используется метод криптографической защиты данных с открытым ключом RSA, получившим название по начальным буквам фамилий его изобретателей (Rivest, Shamir, Adleman). На основе метода разработаны алгоритмы шифрования, успешно применяемые для защиты информации. Он обладает высокой криптостойкостью и может быть реализован при использовании относительно несложных программных и аппаратных средств. Данный метод позволил решить проблему обеспечения персональных подписей в условиях безбумажной передачи и обработки данных. Описание схем формирования шифротекста в алгоритмах типа приведено в различной литературе. Использование метода для криптографической защиты информации может быть пояснено с помощью структурной схемы, представленной на рисунке. Функционирование криптосистемы на основе метода предполагает формирование открытого и секретного ключей. С этой целью необходимо выполнить следующие математические операции: ● Выбираем два больших простых числа р и q, понимая под простыми числами такие числа, которые делятся на само себя и число Определяем n = Вычисляем число k = (p-1) (Выбираем большое случайное число d, взаимно простое с числом взаимно простое число это число, которое не имеет ни одного общего делителя, кроме числа Определяем число е, для которого истинным является соотношение (e х d) mod k = Принимаем в качестве открытого ключа пару чисел е, Формирование секретного ключа в виде пары чисел {d, Для зашифровки передаваемых данных с помощью открытого ключа е, n} необходимо выполнить операции: ● Разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде чисел M(i) = 0,1,..., Зашифровать текст в виде последовательности чисел M(i) по формуле C(i) = (M(i) e ) mod n ● Расшифрование шифротекста производится с помощью секретного ключа {d, n} при выполнении следующих вычислений M(i) = (C(i) d ) mod n В результате получаем последовательность чисел M(i), представляющих исходные данные. На практике при использовании метода RSA длина р и q составляет 100 и более десятичных знаков, что обеспечивает высокую криптостойкость шифротекста. Выбор простых чисел и Вычисление = p x Вычисление k = (p-1) x (q-1) Формирование закрытого ключа d, n Выбор случайного числа взаимно простого с Расшифровка в виде чисел (I) = (C (I) x mod Выбор числа удовлетворяющему e x d ) mod k = 1 Формирование открытого ключа e, n Шифровка текста открытого ключа e, n Расшифровка текста в виде чисел (I) = (C (I) x mod n С(I) Шифртекст Исх. текст Расшифровка текста Расшифровка C (I) 4. Практическое задание Составьте программное обеспечение, реализующее алгоритм RSA. Исходные данные должны передаваться через файлы файл с открытым ключом, закрытым ключом и шифруемая информация. Для созданного программного обеспечения проведите тестирование не менее чем на 10 различных наборах данных. |