1 Теоретические основы криптографии 9. КолСодержание Теоретические основы криптографии 9
Скачать 0.52 Mb.
|
2.1.1. Шифрование с использованием операции XORСамый простой и эффективный способ сделать текст нечитаемым – спрятать его, смешав с последовательностью случайных чисел, заданной ключом. При этом информация прячется в шуме – самом информативном, по мнению Шеннона, сигнале. Для этого можно использовать логическую операцию XOR (исключающее ИЛИ). Таблица истинности для этой операции имеет вид: Таблица 3. Таблица истинности операции XOR
2.1.2. Стандарты блочного шифрования. Алгоритм DESБлочные алгоритмы шифрования являются основным средством криптографической защиты информации, хранящейся на компьютере пользователя или передаваемой по общедоступной сети. Такое пристальное внимание к данному типу алгоритмов обусловлено не столько многолетней историей, сколько преимуществами практического применения, среди которых следует отметить: возможность эффективной программной реализации на современных аппаратно программных средств; высокую скорость зашифрования / расшифрования как при аппаратной, так и при программной реализации; высокую гарантированную стойкость; причем стойкость алгоритма блочного шифрования может быть доказана при помощи математического аппарата (для большинства асимметричных алгоритмов стойкость основана на “невозможности” решения какой - либо математической задачи). Входная последовательность блочных алгоритмов шифрования разбивается на участки определенной длины (обычно 64 бита для удобства реализации на процессорах с внутренними регистрами длиною 32 или 64 бита), и преобразования в алгоритме блочного шифрования совершаются над каждым блоком отдельно. Соответственно выходная последовательность алгоритма блочного шифрования представляет собой блоки, длина которых равна длине входных блоков. В случае, когда длина открытого текста некратна длине входных блоков, в алгоритме шифрования, применяется операции дополнения (padding) последнего блока открытого текста до необходимой длины. Дополнение осуществляется приписыванием необходимого числа нулей или случайного набора символов. В общем случае содержание того, чем мы дополняем блок открытого текста, не играет роли с точки зрения криптографической стойкости. На приемной стороне необходимо знать, какое количество символов было добавлено, вот почему вместе с данными дополнения приписывается длина этих данных. Суть алгоритмов блочного шифрования заключается в применении к блоку открытого текста многократного математического преобразования. Многократность подобных операций приводит к тому, что результирующее преобразование оказывается криптографически более сильным, чем преобразование над отдельно взятым блоком. Основная цель подобного трансформирования – создать зависимость каждого бита блока зашифрованного сообщения от каждого бита ключа и каждого бита блока открытого сообщения. Преобразования, базирующиеся на данных алгоритмах можно разделить на “сложные” (в современных алгоритмах это обычно нелинейные операции) и ”простые”, в основе которых лежат перемешивающие операции. Аналитическая сложность раскрытия алгоритмов блочного шифрования заключается в конструкции первого типа преобразований. Одним из самых распространенных алгоритмов блочного шифрования, рекомендованных Национальным бюро стандартов США в качестве основного средства криптографической защиты информации как в государственных, так и в коммерческих структурах, является Data Encryption Standard (DES). Он был разработан в 1977 году, однако уже в 1988 было рекомендовано использовать DES только в системах электронного перевода. С учетом выявленных недостатков DES в начальный вариант стандарта постоянно вносятся изменения, появляются также и новые алгоритмы, использующие в качестве основы DES (NewDES, TripleDES и др.). Необходимость разработки новых алгоритмов обусловлена большим числом атак, которым подвергался DES за годы своего существования. Кроме того, бурное развитие средств вычислительной техники привело к тому, что 56-битного ключа, используемого в первоначальном варианте DES, стало недостаточно, чтобы противостоять атакам, совершаемым методом "грубой силы". Тем не менее в коммерческой сфере и в системах электронных расчетов DES и по сей день остается одним из самых популярных алгоритмов. DES является блочным алгоритмом шифрования с длиной блока 64 бита и симметричными ключами длиной 56 бит. На практике ключ обычно имеет длину 64 бита, где каждый восьмой бит используется для контроля четности остальных битов ключа. Структура алгоритма приведена на рис. 4. Всего для получения блока зашифрованного сообщения проходит 16 раундов. Это обусловлено следующими причинами: 12 раундов являются минимально необходимыми для обеспечения должного уровня криптографической защиты; при аппаратной реализации использование 16 раундов позволяет вернуть преобразованный ключ в исходное состояние для дальнейших преобразований; данное количество раундов необходимо, чтобы исключить возможность проведения атаки на блок зашифрованного текста с двух сторон. В некоторых реализациях DES блоки открытого сообщения перед тем, как они будут загружены в регистр сдвига длиной две ячейки и размером ячейки 32 бита, проходят процедуру начальной перестановки, которая применяется для того, чтобы осуществить начальное рассеивание статистической структуры сообщения. В случае использования начальной перестановки после завершения 16 раундов к полученному блоку применяется обратная перестановка. 2.1.3. Стандарты блочного шифрования. Алгоритм ГОСТОтечественным аналогом DES является алгоритм блочного шифрования, специфицированный в ГОСТ 28147-89. Разработчики данного алгоритма сумели органично соединить в нем две важные, но трудносочетающиеся друг с другом характеристики: высокую криптографическую стойкость алгоритма; возможность эффективного программного исполнения (за счет использования узлов, реализуемых на современной программно-аппаратной платформе). Алгоритм работает с 64-битными входными блоками, 64-битными выходными блоками и ключами длиной 256 бит. Использование 256-битного ключа позволяет не обращать внимания на возможность атаки с применением "грубой силы", поскольку мощность большинства ключей равна 2256. При этом данный алгоритм предполагает как эффективную программную, так и аппаратную реализацию. Рисунок 4. Один этап ГОСТ Алгоритм может применяться в следующих рабочих режимах: простая замена; гаммирование; гаммирование с обратной связью; выработка имитовставки. Для всех четырех режимов применяется одно общее преобразование, которое можно записать в следующем виде: , где L и R – соответственно левая и правая часть 64-битного блока. Это преобразование характерно для всех раундов (всего их 32), кроме последнего. Для него преобразование будет иметь вид: , i = 32 Для каждого раунда функция F остается неизменной. Перед началом преобразования блок открытого текста разбивается на две 32-битные половины L и R, которые помещаются в два 32-разрядных регистра N1 и N2. Также перед началом зашифрования 256-битный ключ, разбитый на 8 частей по 32 бита каждая (K0..K7) помещается в ключевое запоминающее устройство (КЗУ). Далее содержимое регистра N1 суммируется по модулю 232 с очередным заполнением устройства, а ключевые последовательности выбираются из КЗУ в следующем порядке: в раундах с 1-го по 24-й – K0, K1, K2, K3, K4, K5, K6, K7; в раундах с 25-го по 32-й – K7, K6, K5, K4, K3, K2, K1, K0. Полученная битовая последовательность разбивается на восемь блоков по 4 бита в каждом и поступает на вход S-боксов. В них реализуется подстановка, имеющая, например, следующий вид: 7, 10, 13, 1, 0, 8, 9, 15, 14, 4, 6, 12, 4, 11, 2, 5, 3 Числовое представление битового входа однозначно определяет последовательный номер числа в подстановке и битовое представление соответствующего числа; таким же оно будет и на выходе S-бокса. Для каждого S-бокса задается своя подстановка, которая является долговременным секретным ключом. Генерация подстановок в S-боксах является сложной математической задачей, от решения которой как раз и зависит стойкость этого алгоритма. После S-боксов последовательность поступает в циклический регистр сдвига, который осуществляет смещение на 11 шагов влево. Использование данного регистра вместо перестановок, используемых в DES, обусловлено тем, что данный регистр легко реализуется как программно (за счет использования битовой операции циклического сдвига), так и аппаратно. Далее происходит поразрядное суммирование по модулю 2 содержимого регистра циклического сдвига с содержимым регистра N2. Результат суммирования записывается в регистр N1, а содержимое регистра N2 принимает предыдущее значение N1. Все эти операции составляют один раунд преобразования (см. рис.5) очередного открытого блока текста. Специфика различных типов применения ГОСТ вносит свои дополнения в раунды зашифрования и соответственно, расшифрования. |