страница 1 |
|
Похожие работы
|
Лабораторная работа №1 "исследование одноключевых блочных криптографических алгоритмов" - страница №1/1
![]() “ИССЛЕДОВАНИЕ ОДНОКЛЮЧЕВЫХ БЛОЧНЫХ КРИПТОГРАФИЧЕСКИХ АЛГОРИТМОВ” Контрольное программное обеспечение:
Порядок выполнения работы1. Разработка одноключевых алгоритмов шифрования и методов их анализа. а) Реализовать алгоритмы выполнения подстановок, перестановок и алгоритма шифрования RC5 (приложение 1) в выбранной среде программирования. в) Реализовать алгоритм статистического анализа информационной последовательности (приложение 1).
а) Используя генератор случайных чисел получить секретный ключ k255. б) Получить криптограмму y=(k+x)(mod 256), где 256 – количество используемых символов в таблице ASCII. в) Определить статистическое распределение бит в открытом тексте и криптограмме (см. приложение 2) меняя 10 раз значение ключа шифрования. Сравнить результаты, сделать выводы. г) Дешифровать криптограмму x’=(y+(N-k))(mod N). д) Проверить выполнение равенства x’=x, сделать выводы, результаты занести в отчет.
а) Используя генератор случайных чисел получить секретный ключ k. б) Получить криптограмму y=f(x,k) используя алгоритм определения перестановок. в) Определить статистическое распределение знаков в открытом тексте и криптограмме меняя 10 раз значение ключа шифрования, сравнить, сделать выводы. г) Дешифровать криптограмму x’=f -1(y,k). д) Проверить выполнение равенства x’=x, сделать выводы, результаты занести в отчет.
а) Используя генератор случайных чисел получить секретный ключ kn. б) Получить криптограмму y=f(x,k) используя выбранный алгоритм шифрования. в) Определить статистическое распределение знаков в открытом тексте и криптограмме меняя 10 раз значение ключа шифрования, сравнить, сделать выводы, результаты занести в отчет.
Содержание отчета
4. Выводы по каждому пункту работы. Приложение 1
В простейшем случае в качестве алгоритма подстановки может использоваться замена одного символа алфавита другим символом в соответствии с ключом. Например, для таблицы символов ASCII данное преобразование выполняется следующим образом. Выбирается значение ключа K<256, так как алфавит данной таблицы содержит 256 символов, затем производится посимвольное преобразование информации в соответствии с выражением Yi=(К+Xi)(mod 256), где Xi – цифровое значение символа исходного текста, Yi – цифровое значение символа получаемой криптограммы. Чуть сложнее алгоритм полиалфавитной подстановки. В этом случае в качестве ключа выбирается последовательность символов Кj, вся информации делится на блоки равные длине ключа (количеству символов в ключе) и осуществляется преобразование в соответствии с выражением
где i – номер блока информации, j – номер символа в блоке (ключе).
Сущность алгоритма заключается в выполнении следующего ряда преобразований открытого текста в соответствии со значением ключа.
A:=(A+Q0) mod 2b; B:=(B+Q1) mod 2b;
A:={[(AB)<<2i} mod 2b; B:={[(BA)<<2i+1} mod 2b;
В приведенном алгоритме b - это длина подблоков в битах, R - число раундов шифрования, - сложение по модулю 2, <<< - циклический сдвиг влево на количество бит, указанное справа, Qi - значение b - битного подключа. Типичной является модификация алгоритма с параметрами b=32, R=12, К=128 бит, где К - это значение секретного ключа из которого формируются подключи Qi. Дешифрование выполняется в обратной последовательности и вместо сложения по модулю 2b используется вычитание, а вместо циклического сдвига влево - циклический сдвиг вправо. Приложение 2Из статистических информационных характеристик наибольший интерес представляет средняя неопределенность в расчете на один информационный бит последовательности – энтропия информационной последовательности: ![]() Для двоичной информационной последовательности без учета статистических связей между битами данное выражение преобразуется к виду H=- p(0)log2p(0) - p(1)log2p(1), где р(0), р(1) - вероятности появления в информационной последовательности 0 и 1 соответственно. Значение энтропии с учетом статистических связей между двумя битами последовательности определяется следующим образом: H=- p(0)p(10/0)log2p(10/0) - p(0)p(00/0)log2p(00/0)
где р(00/0)=р(00)/р(0), р(10/0)=р(10)/р(0), р(01/1)=р(01)/р(1), р(11/1)=р(11)/р(1), р(00), р(10), р(01), р(11) – вероятности появления в информационной последовательности пар 00, 10, 01, 11 соответственно. |
ещё >> |