Автор работы: Пользователь скрыл имя, 13 Декабря 2013 в 10:10, курсовая работа
Целью данной работы является обоснование подхода к исследованию показателей случайности полных версий БСШ на примере шифра DES . Сам подход заключается в совпадении дифференциальных и линейных свойств БСШ с соответствующими свойствами случайной подстановки.
Рис. 2.2 Один этап DES
Если Bi - это результат i-ой итерации, Li и Ri - левая и правая половины Bi, Ki - 48-битовый ключ для этапа i, а f - это функция, выполняющие все подстановки, перестановки и XOR с ключом, то этап можно представить как:
Li = Ri-1
Начальная перестановка
Таблица 2.1
Начальная перестановка и
2.3.1 Преобразования ключа
Сначала 64-битовый ключ DES уменьшается до 56-битового ключа отбрасыванием каждого восьмого бита, как показано в Табл. 2.2. Эти биты используются только для контроля четности, позволяя проверять правиль-ность ключа. После извлечения 56-битового ключа для каждого из 16 этапов DES генерируется новый 48-битовый подключ. Эти подключи, Ki, определяются следующим образом.
Таблица 2.2
Во первых, 56-битовый ключ делится на две 28-битовых половинки. Затем, половинки циклически сдвига-ются налево на один или два бита в зависимости от этапа. Этот сдвиг показан в Табл. 2.3
Таблица 2.3
После сдвига выбирается 48 из 56 битов. Так как при этом не только выбирается подмножество битов, но и изменяется их порядок, эта операция называется перестановка со сжатием. Ее результатом является набор из 48 битов. Перестановка со сжатием (также называемая переставленным выбором) определена в Табл. 2.4 На-пример, бит сдвинутого ключа в позиции 33 перемещается в позицию 35 результата, а 18-й бит сдвинутого ключа отбрасывается.
Таблица 2.4
Из-за сдвига для каждого подключа используется отличное подмножество битов ключа. Каждый бит используется приблизительно в 14 из 16 подключей, хотя не все биты используются в точности одинаковое число раз.
Эта операция расширяет правую
половину данных, Ri, от 32 до 48 битов.
Так как при этом не просто
повто-ряются определенные
Перестановка с расширением
Рис. 2.3 Перестановка с расширением.
Хотя выходной блок больше входного, каждый входной блок генерирует уникальный выходной блок.
После объединения сжатого
блока с расширенным блоком с
помощью XOR над 48-битовым результатом
выполняется операция подстановки.
Подстановки производятся в восьми
блоках подстановки, или S-блоках (от substitution).
У каждого S-блока 6-битовый вход и
4-битовый выход, всего используется
восемь различных S-блоков. 48 битов
делятся на восемь 6-битовых подблока.
Каждый отдельный подблок
Рис. 2.4 Подстановка - S-блоки.
Каждый S-блок представляет собой таблицу из 2 строк и 16 столбцов. Каждый элемент в блоке является 4-битовым числом. По 6 входным битам S-блока определяется, под какими номерами столбцов и строк искать выходное
Входные биты особым образом
определяют элемент S-блока. Рассмотрим
6-битовый вход S-блока: b1, b2, b3, b4, b5 и b6.
Биты b1 и b6 объединяются, образуя 2-битовое
число от 0 до 3, соответствующее строке
таблицы. Средние 4 бита, с b2 по b5, объединяются,
образуя 4-битовое число от 0 до 15,
соответствующее столбцу табли-
Например, пусть на вход шестого S-блока (т.е., биты функции XOR с 31 по 36) попадает 110011. Первый и последний бит, объединяясь, образуют 11, что соответствует строке 3 шестого S-блока. Средние 4 бита образу-ют 1001, что соответствует столбцу 9 того же S-блока. Элемент S-блока 6, находящийся на пересечении строки 3 и столбца 9, - это 14. (Не забывайте, что строки и столбцы нумеруются с 0, а не с 1.) Вместо 110011 подстав-ляется 1110.
Конечно же, намного легче
реализовать S-блоки программно в
виде массивов с 64 элементами. Для этого
потребуется переупорядочить
Подстановка с помощью S-блоков является ключевым этапом DES. Другие действия алгоритма линейны и легко поддаются анализу. S-блоки нелинейны, и именно они в большей степени, чем все остальное, обеспечи-вают безопасность DES.
В результате этого этапа подстановки получаются восемь 4-битовых блоков, которые вновь объединяются в единый 32-битовый блок. Этот блок поступает на вход следующего этапа - перестановки с помощью P-блоков.
2.3.4 Перестановка с помощью P-блоков
32-битовый выход подстановки
с помощью S-блоков, перетасовываются
в соответствии с P-блоком. Эта
пе-рестановка перемещает
Таблица 2.7 Перестановка с помощью P-блоков
Наконец, результат перестановки
с помощью P-блока объединяется посредством
XOR с левой половиной
Заключительная перестановка
является обратной по отношению к
начальной перестановки и описана
в Табл. 2-8. Обратите внимание, что
левая и правая половины не меняются
местами после последнего этапа
DES, вместо этого объединенный блок
R16L16 используется как вход заключительной
перестановки. В этом нет ничего
особенного, перестановка половинок
с последующим циклическим
Таблица 2.8
После всех подстановок, перестановок, операций XOR и циклических сдвигов можно подумать, что алгоритм дешифрирования, резко отличаясь от алгоритма шифрования, точно также запутан. Напротив, различные компоненты DES были подобраны так, чтобы выполнялось очень полезное свойство: для шифрования и дешифрирования используется один и тот же алгоритм.
DES позволяет использовать
для шифрования или
FIPS PUB 81 определяет четыре режима работы: ECB, CBC, OFB и CFB . Банковские стандарты ANSI определяют для шифрования ECB и CBC, а для проверки подлинности - CBC и n- битовый CFB .
В мире программного обеспечения сертификация обычно не важна. Из-за своей простоты в большинстве существующих коммерческих программ используется ECB, хотя этот режим наиболее чувствителен к вскрытию. CBC используется редко несмотря на то, что он лишь незначительно сложнее, чем ECB, и обеспечивает большую безопасность.
3 ПОСТРОЕНИЕ ПРОГРАММНОГО
КОМПЛЕКСА ДЛЯ ИССЛЕДОВАНИЯ
Исследования, проведенные в работах [5,6,7], показали, что среднее значение максимумов таблиц XOR разностей является специфическим показателем для шифрующих преобразований, выполняемых современными БСШ, в то время как многие из подходов к оценке дифференциальных свойств шифров строятся на основе изучения свойств входящих в шифр подстановочных преобразований (S-блоков), а не шифров в целом как подстановок.
Учитывая жесткую связь
дифференциальных свойств шифрующих
преобразований с показателями их стойкости
к атакам дифференциального
Обобщая сказанное в предыдущем
разделе, можно сказать, что основная
идея атаки методом
Дифференциальный криптоанализ,
таким образом, основан на установлении
разностей , которые переходят при
шифровании в выходные разности
с некоторой высокой
Под "высокой" подразумевается вероятность значительно более высокая, чем 1/2n средняя вероятность того, что некоторый дифференциал (,) поддерживается для случайной подстановки.
Такой дифференциал обнаруживается
сначала путем оценки вероятностей
всех возможных дифференциалов для
каждого S-блока, а затем предпринимается
попытка соединить эти
(3.1)
Данный параметр может
быть применен и для оценки всего
шифра в целом, если рассматривать
его как подстановку, которой
он, по сути, и является. В этом случае
будем определять максимальную вероятность
полного дифференциала, т.е. вероятность
получения фиксированной
Сам алгоритм различения состоит в следующем :