Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа - Шифры.doc
Скачиваний:
240
Добавлен:
02.05.2014
Размер:
2.69 Mб
Скачать

5.Расчетная часть.

В настоящее время проблема конфиденциальности телефонных переговоров приобретает особое значение в связи с необходимостью защиты бизнес-интересов и личной свободы граждан. Современные методы обеспечения конфиденциальности связи для телефонных сетей общего пользования реализуется на основе различных криптографических алгоритмов. Наиболее криптостойкими алгоритмами являются DES, IDEA, ГОСТ 28147-89 и ряд других, которых не так уж и много. Некоторые из этих алгоритмов как, например, ГОСТ 28147-89 и DES закреплены стандартами своих стран – Россией и США соответственно.

Однако, обратной стороной вопроса обеспечения проблемы криптостойкости является существенная сложность и трудность программно-аппаратной реализации этих алгоритмов. В этой связи представляется актуальным разработать такую модификацию алгоритма криптографического шифрования, которая позволила бы сохранить криптостойкость.

Современные криптостойкие алгоритмы строятся на основе так называемой сети Файстеля. Именно по этому принципу и был построен алгоритм криптографического шифрования, с учётом экономии реализации программно-аппаратного продукта.

Алгоритм представляет собой сбалансированную сеть Файстеля с начальной и конечной битовыми перестановками, конечная перестановка является обращением начальной. Схема преобразования данных при зашифровании блока изображена на рисунке 11, схема соответствующего алгоритма – на рисунке 12.

Рис. 11. Цикл шифрования DES - схема преобразования данных.

Рис. 12. Цикл шифрования DES - схема алгоритма.

Зашифрование 64-битового блока данных T (входной параметр алгоритма, рис.2, шаг 0) начинается с начальной перестановки битов в нем (IP, шаг 1). Затем шифруемый блок разделяется на две 32-битовые части (шаг 2) (Эта процедура необходима для обратимости сети Файстеля, то есть для шифрования и дешифрования потребуется один и тот же алгоритм), с которыми выполняются 16 раундов преобразования в соответствии с архитектурными принципами сети Файстеля. Через Hin(X) и Lon(X) обозначены функции, возвращающие в качестве результата соответственно n старших или младших битов своего аргумента. На каждом раунде старшая половина блока модифицируется путем побитового прибавления к ней по модулю 2 (операция "") результата вычисления функции шифрования (f), зависящей от младшей половины блока (Li–1) и 48-битового ключевого элемента (ki). Между раундами старшая и младшая половины блока меняются местами. Таким образом, на каждом раунде кроме последнего младшая половина блока становится старшей, а модифицированная с помощью функции шифрования старшая – младшей половиной блока (шаг 3). На последнем раунде происходит то же самое за исключением обмена значениями половин блока. Затем полублоки объединяются в полный блок (шаг 4), в котором выполняется конечная битовая перестановка (IP–1, шаг 5), обратная начальной. Результат последней операции и является выходным значением цикла шифрования – зашифрованным блоком T' (шаг 6). Шестнадцать 48-битовых ключевых элементов ki, 1i16, используемых в цикле шифрования, являются параметрами алгоритма и вырабатываются из 56-битового ключа в ходе рассмотренной ниже процедуры генерации ключевой последовательности. Процедура расшифрования блока данных идентична процедуре зашифрования с тем отличием, что ключевые элементы в ней используются в порядке, обратном порядку их использования при зашифровании. Таким образом, если при зашифровании ключевые элементы используются в "естественном" порядке возрастания номеров

k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k12, k13, k14, k15, k16,

то при расшифровании они должны использоваться в обратном порядке:

k16, k15, k14, k13, k12, k11, k10, k9, k8, k7, k6, k5, k4, k3, k2, k1.

Начальная и обратная ей конечная битовые перестановки алгоритма DES задаются в приведенных ниже таблицах. Каждая ячейка таблицы соответствует определенному биту блока данных, номер которого указан в ней мелкими цифрами более бледным по сравнению с основным текстом цветом. Каждая таблица приведена в двух вариантах, соответствующих двум используемым способам нумерации битов в блоках. В левой части приводится вариант нумерации битов, принятый в оригинале стандарта – начиная с единицы от старших битов к младшим. Учитывая распространенность архитектуры Intel x86, в правой части таблицы приводится принятый для нее вариант нумерации, – начиная с нуля от младших битов к старшим. При описании перестановки в ячейках указывается номер бита исходного блока, который при перестановке помещается на место бита, соответствующего ячейке. Например, согласно таблице начальной перестановки на место самого старшего бита результата (N1 в левой таблице и N63 в правой) помещается бит N58 (N6 в правой таблице) исходного блока, на место бита N2(N62) бит N50(N14), и т.д..