2 Стандарты блочного шифрования

Вид материалаРеферат
1.5. Криптография и стеганография
2. Обзор основных алгоритмов шифрования
2.1. Симметричные криптосистемы
2.1.1. Шифрование с использованием операции XOR
Таблица 3. Таблица истинности операции XOR
2.1.2. Стандарты блочного шифрования. Алгоритм DES
2.1.3. Стандарты блочного шифрования. Алгоритм ГОСТ
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   13

1.5. Криптография и стеганография


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

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

Принципиальное отличие криптографии от стеганографии состоит в том, что в ней не скрывается факт передачи сообщений, а скрывается только его содержание (смысл). Применение же стеганографии для передачи важных сообщений является весьма рискованным. Криптография представляется гораздо более надежным инструментом для защиты информации. Стеганографические методы могут обеспечить высокий уровень защиты информации только в том случае, когда они будут дополнены предварительным криптографическим преобразованием сообщения.

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

Стеганография не заключает в себе тех многогранных внутренних возможностей, которые свойственны криптографии.

2. Обзор основных алгоритмов шифрования


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

2.1. Симметричные криптосистемы


Алгоритмы этого типа основаны на том, что и для шифрования сообщения отправителем, и для его расшифровки получателем используется одно и то же значение ключа (рис. 3).

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



Рисунок 3. Схема симметричного шифрования

2.1.1. Шифрование с использованием операции XOR


Самый простой и эффективный способ сделать текст нечитаемым – спрятать его, смешав с последовательностью случайных чисел, заданной ключом. При этом информация прячется в шуме – самом информативном, по мнению Шеннона, сигнале. Для этого можно использовать логическую операцию XOR (исключающее ИЛИ). Таблица истинности для этой операции имеет вид:

Таблица 3. Таблица истинности операции XOR


A

B

A xor B

0

0

0

1

0

1

0

1

1

1

1

0
Эта операция выполняется на уровне отдельных битов в сообщении, оперируя двумя строками битов, одна из них – это исходное сообщение, а вторая – ключ. Выполнение этой операции над многобитовыми значениями иллюстрирует рис. 4. Получив последовательность битов, представляющую зашифрованное таким образом сообщение, его можно расшифровать, выполнив повторно операцию XOR с тем же ключом7.

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) очередного открытого блока текста. Специфика различных типов применения ГОСТ вносит свои дополнения в раунды зашифрования и соответственно, расшифрования.