Магистерская работа: Обеспечение информационной безопасности информационно-технологической инфраструктуры электронного правительства в Кыргызской Республике

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

В составных шифрах в качестве простых шифров чаще всего используются простые перестановки и подстановки. При перестановке просто перемешивают символы открытого текста, причем конкретный вид перемешивания определяется секретным ключом. При подстановке каждый символ открытого текста заменяют другим символом из того же алфавита, а конкретный вид подстановки также определяется секретным ключом. Следует заметить, что в современном блочном шифре блоки открытого текста и шифртекста представляют собой двоичные последовательности обычно длиной 64 или 128 бит. При длине 64 бит каждый блок может принимать 264 значений. Поэтому подстановки выполняются в очень большом алфавите, содержащем до 264 =1019 "символов".

При многократном чередовании простых перестановок и подстановок, управляемых достаточно длинным секретным ключом, можно получить стойкий шифр с хорошим рассеиванием и перемешиванием.

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

Например, 32-битовый блок данных можно интерпретировать как число из диапазона 0-4294 967 295.

Кроме того, блок, разрядность которого представляет собой "степень двойки", можно трактовать как сцепление нескольких независимых неотрицательных чисел из меньшего диапазона (указанный выше 32-битовый блок можно также представить в виде сцепления двух независимых 16-битовых чисел из диапазона 0-65 535 или в виде сцепления четырех независимых 8-битовых чисел из диапазона 0-255).

Над этими числами блочный криптоалгоритм производит по определенной схеме действия, представленные в табл. 2.1.

Таблица 2.1.

Действия, выполняемые криптоалгоритмом над числами

Действие

Функция

Математические функции

Сложение

X’ = Х+ V

Исключающее ИЛИ

X’ = XXOR V

Умножение по модулю (2N + 1)

X’ = [X* V) mod [2N + 1)

Умножение по модулю 2N

X’ = [X*V}mod (2N)

Битовые сдвиги

Арифметический сдвиг влево

X’= XSHL V

Арифметический сдвиг вправо

X’ = XSHR V

Циклический сдвиг влево

X’ = X ROL V

Циклический сдвиг вправо

X’ = XROR V

Табличные подстановки

S-box (substitute)

X’ = Table [X, У]


В качестве параметра V для любого из этих преобразований может использоваться:

·        фиксированное число (например, X' = Х'+ 125);

·        число, получаемое из ключа (например, X' = X + F(K));

·        число, получаемое из независимой части блока (например, Х2' = Х2 + F(X 1)).

Последний вариант используется в схеме, называемой сетью Фейстеля (по имени ее создателя).

Последовательность выполняемых над блоком операций, комбинации перечисленных выше вариантов V и сами функции F и составляют отличительные особенности конкретного симметричного блочного криптоалгоритма.

Характерным признаком блочных алгоритмов является многократное и косвенное использование материала ключа. Это определяется в первую очередь требованием невозможности обратного декодирования в отношении ключа при известных исходном и зашифрованном текстах. Для решения этой задачи в приведенных выше преобразованиях чаще всего используется не само значение ключа или его части, а некоторая, иногда необратимая функция от материала ключа. Более того, в подобных преобразованиях один и тот же блок или элемент ключа используется многократно. Это позволяет при выполнении условия обратимости функции относительно величины X сделать функцию необратимой относительно ключа К [8].

Алгоритм шифрования DES. Алгоритм шифрования данных DES (Data Encryption Standard) был опубликован в 1977 году. Блочный симметричный алгоритм DES остается пока распространенным алгоритмом, используемым в системах защиты коммерческой информации.

Алгоритм DES построен в соответствии с методологией сети Фейстеля и состоит из чередующейся последовательности перестановок и подстановок. Алгоритм DES осуществляет шифрование 64-битовых блоков данных с помощью 64-битового ключа, в котором значащими являются 56 бит (остальные 8 бит - проверочные биты для контроля на четность). Обобщенная схема процесса шифрования в блочном алгоритме DES показана на рис. 2.3.

Процесс шифрования заключается в начальной перестановке битов 64-битового блока, шестнадцати циклах (раундах) шифрования и, в заключение, в конечной перестановке битов.

Рис. 2.3. Обобщённая схема шифрования в алгоритме DES

Расшифрование в DES является операцией, обратной шифрованию, и выполняется путем повторения операций шифрования в обратной последовательности.

Основные достоинства алгоритма DES:

·        используется только один ключ длиной 56 бит;

·        относительная простота алгоритма обеспечивает высокую скорость обработки;

·        зашифровав сообщение с помощью одного пакета программ, для расшифровки можно использовать любой другой пакет программ, соответствующий алгоритму DES;

·        криптостойкость алгоритма вполне достаточна для обеспечения информационной безопасности большинства коммерческих приложений.

Современная микропроцессорная техника позволяет уже сегодня за достаточно приемлемое время взламывать симметричные блочные шифры с длиной ключа 40 бит. Для такого взламывания используется метод полного перебора - тотального опробования всех возможных значений ключа (метод "грубой силы").

До недавнего времени блочный алгоритм DES, имеющий ключ с эффективной длиной 56 бит, считался относительно безопасным алгоритмом шифрования. Он многократно подвергался тщательному криптоанализу в течение 20 лет, и самым практичным способом его взламывания является метод перебора всех возможных значений ключа. Ключ шифра DES имеет 256 возможных значений.

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

У Тачмен предложил шифровать блок открытого текста Р три раза с помощью двух ключей К1 и К2 (рис. 2.4) [11]. Процедура шифрования:

С = Ек (DK (Ек (Р))),

то есть блок открытого текста Р сначала шифруется ключом К , затем расшифровывается ключом К и окончательно зашифровывается ключом К

Этот режим иногда называют режимом EDE (encrypt-decrypt-encrypt). Введение в данную схему операции расшифрования DK позволяет обеспечить совместимость этой схемы со схемой однократного использования блочного алгоритма DES. Если в схеме трехкратного использования DES выбрать все ключи одинаковыми, то эта схема превращается в схему однократного использования DES.


Р = DK (Ек (DK (О)),

то есть блок шифртекста С сначала расшифровывается ключом К, затем зашифровывается ключом К и окончательно расшифровывается ключом К. Если исходный блочный алгоритм имеет 2n-битовый ключ, то схема трехкратного шифрования имеет 2я-битовый ключ. Чередование ключей К и К позволяет предотвратить криптоаналитическую атаку "человек в середине". Данная схема приводится в стандартах ХЭЛ 7 и ISO 8732 в качестве средства улучшения характеристик алгоритма DES.

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

С = Ек (DK (Ек (Р))),=DKСEK(DK(C))).

Рис. 2.4. Схемы трехкратного применения блочного алгоритма симметричного шифрования с двумя различными ключами

Трехключевой вариант имеет еще большую стойкость. Алгоритм 3DES (Triple DES - тройной DES) используется в ситуациях, когда надежность алгоритма DES считается недостаточной. Чаще всего используется вариант шифрования на трех ключах: открытый текст шифруется на первом ключе, полученный шифртекст - на втором ключе и наконец, данные, полученные после второго шага, шифруются на третьем ключе. Все три ключа выбираются независимо друг от друга. Этот криптоалгоритм достаточно стоек ко всем атакам. Применяется также каскадный вариант 3DES. Это стандартный тройной DES, к которому добавлен такой механизм обратной связи, как СВС, OFB или СЕВ.

Стандарт шифрования ГОСТ 28147-89. Этот алгоритм криптографического преобразования данных предназначен для аппаратной и программной реализации, удовлетворяет криптографическим требованиям и не накладывает ограничений на степень секретности защищаемой информации. Алгоритм шифрования данных, определяемый ГОСТ 28147-89, представляет собой 64-битовый блочный алгоритм с 256-битовым ключом.

Данные, подлежащие зашифрованию, разбивают на 64-разрядные блоки. Эти блоки разбиваются на два субблока N1 и N2 по 32 бит (рис. 2.5).

Рис. 2.5. Схема алгоритма ГОСТ 28147-89

Субблок N1 обрабатывается определенным образом, после чего его значение складывается со значением субблока N2 (сложение выполняется по модулю 2, то есть применяется логическая операция xor - исключающее ИЛИ), а затем субблоки меняются местами. Данное преобразование выполняется определенное число раз (раундов): 16 или 32 в зависимости от режима работы алгоритма. В каждом раунде выполняются следующие операции.

Первая операция - наложение ключа. Содержимое субблока N1 складывается по модулю 232 с 32-битовой частью ключа Кх. Полный ключ шифрования представляется в виде конкатенации 32-битовых подключей: КО, К1, К2, КЗ, К4, К5, К6, К7. В процессе шифрования используется один из этих подключей - в зависимости от номера раунда и режима работы алгоритма.

Вторая операция - табличная замена. После наложения ключа субблок N1 разбивается на 8 частей по 4 бита, значение каждой из которых заменяется в соответствии с таблицей замены для данной части субблока. Затем выполняется побитовый циклический сдвиг субблока влево на 11 бит.

Табличные замены. Блок подстановки S-box (Substitution box) часто используются в современных алгоритмах шифрования, поэтому стоит пояснить, как организуется подобная операция. Блок подстановки S-box состоит из восьми узлов замены (S'-блоков замены) S, S,..., S с памятью 64 бит каждый. Поступающий на блок подстановки S 32-битовый вектор разбивают на восемь последовательно идущих 4-битовых векторов, каждый из которых преобразуется в 4-битовый вектор соответствующим узлом замены. Каждый узел замены можно представить в виде таблицы-перестановки шестнадцати 4-битовых двоичных чисел в диапазоне 0000-1111. Входной вектор указывает адрес строки в таблице, а число в этой строке является выходным вектором. Затем 4-битовые выходные векторы последовательно объединяют в 32-битовый вектор. Узлы замены (таблицы-перестановки) представляют собой ключевые элементы, которые являются общими для сети ЭВМ и редко изменяются. Эти узлы замены должны сохраняться в секрете.

Алгоритм, определяемый ГОСТ 28147-89, предусматривает четыре режима работы: простой замены, гаммирования, гаммирования с обратной связью и генерации имитоприставок. В них используется одно и то же описанное выше шифрующее преобразование, но, поскольку назначение режимов различно, осуществляется это преобразование в каждом из них по-разному. В режиме простой замены для зашифрования каждого 64-битового блока информации выполняются 32 описанных выше раунда. При этом 32-битовые подключи используются в следующей последовательности:

·        К0, К1, К2,К3, К4, К5, К6, K7, К0, К1 и т.д. - в раундах с 1-го по 24-й;

·        К7, К6, К5,К4, К3, К2, К1, К0 - в раундах с 25-го по 32-й.

Расшифрование в данном режиме проводится точно так же, но с несколько другой последовательностью применения подключей:

·        К0, К1, К2,К3, К4, К5, К6, К7 - в раундах с 1-го по 8-й;

·        К1, К6, К5,К4, К3, К2, К1, К0, К7, К6 и т.д. в раундах с 9-го по 32-й.

Все блоки шифруются независимо друг от друга, то есть результат зашифрования каждого блока зависит только от его содержимого (соответствующего блока исходного текста). При наличии нескольких одинаковых блоков исходного (открытого) текста соответствующие им блоки шифртекста тоже будут одинаковы, что дает дополнительную полезную информацию для пытающегося вскрыть шифр криптоаналитика. Поэтому данный режим применяется в основном для шифрования самих ключей шифрования (очень часто реализуются много ключевые схемы, в которых по ряду соображений ключи шифруются друг на друге). Для шифрования собственно информации предназначены два других режима работы - гаммирования и гаммирования с обратной связью. В режиме гаммирования каждый блок открытого текста побитно складывается по модулю 2 с блоком гаммы шифра размером 64 бит. Гамма шифра - это специальная последовательность, которая получается в результате определенных операций с регистрами N1 и N2:

. В регистры N1 и N2 записывается их начальное заполнение - 64-битовая величина, называемая синхропосылкой.

. Выполняется зашифрование содержимого регистров N1 и N2 (в данном случае синхропосылки) в режиме простой замены.

. Содержимое регистра N1 складывается по модулю (232-1) с константой С1=224+216+28+24 результат сложения записывается в регистр N1.

. Содержимое регистра N2 складывается по модулю 232 с константой С2=224+216+28+1, а результат сложения записывается в регистр N2.

. Содержимое регистров N1 и N2 подается на выход в качестве 64-битового блока гаммы шифра (в данном случае N1 и N2 образуют первый блок гаммы).

. Если необходим следующий блок гаммы (то есть необходимо продолжить зашифрование или расшифрование), выполняется возврат к операции 2.

Для расшифрования гамма вырабатывается аналогичным образом, а затем к битам зашифрованного текста и гаммы снова применяется операция xor. Поскольку эта операция обратима, в случае правильно выработанной гаммы получается исходный текст (табл. 2.2).

Таблица 2.2.

Зашифрование и расшифрование в режиме гаммирования


Операция

Результат

Исходный текст Исходный текст

XOR = XOR

100100 111000 011100 111000 100100


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

В большинстве реализаций алгоритма ГОСТ 28147-89 синхропосылка не секретна, однако есть системы, где синхропосылка - такой же секретный элемент, как и ключ шифрования. Для таких систем эффективная длина ключа алгоритма (256 бит) увеличивается еще на 64 бит секретной синхропосылки, которую также можно рассматривать как ключевой элемент.

В режиме гаммирования с обратной связью для заполнения регистров N1 и N2 начиная со 2-го блока используется не предыдущий блок гаммы, а результат зашифрования предыдущего блока открытого текста (рис. 2.6). Первый же блок в данном режиме генерируется полностью аналогично предыдущему.

Источник: https://www.bibliofond.ru/detail.aspx?id=865048