Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Блочные шифры ГОСТ 28147-89 и Rijndael. Криптосистемы с открытыми ключами.





Электронная цифровая подпись.

Изучаемые вопросы

Криптосистема алгоритма DES

Режимы работы блочных шифров.

Блочные шифры ГОСТ 28147-89 и Rijndael.

Криптосистемы с открытыми ключами.

Электронная цифровая подпись.

Криптосистема алгоритма DES

 

В 1972 году Национальным бюро стандартов США (ныне подразделение Департамента торговли США NIST – National Institute of Standards and Technology), с учетом возрастающих потребностей обеспечения безопасности информации, была разработана программа защиты данных.

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

Унификация алгоритма имела целью экономию затрат на создание надежных систем защиты. Окончательная версия алгоритма DES была принята в ноябре 1976 года.

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

В качестве основных, к алгоритму шифрования выдвигались следующие требования:

– высокий уровень безопасности;

– наличие полной спецификации алгоритма и простота понимания;

– безопасность алгоритма должна базироваться на секретности ключа;

– широкая доступность алгоритма;

– простота адаптации алгоритма для использования в различных приложениях;

– экономичность в реализации алгоритма;

– эффективность алгоритма;

– возможность верификации алгоритма;

– отсутствие экспортных ограничений.

Алгоритм DES относится к классу блочных шифров, для которых исходные данные и результаты шифрования представляются в виде 64-битовых строк - блоков.



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

Ключом шифрования является случайное число длиной 56 бит, дополняемое для повышения надежности хранения и транспортирования восьмью битами проверки четности, так что общая длина ключа равна 64 битам.

Алгоритм реализует так называемую схему Файстеля, предусматривающую итерационную обработку двух частей блока исходных данных.

При этом на каждом цикле (раунде – в оригинальной документации) работы алгоритма с использованием подстановок и перестановки реализуются функции рассеивания (диффузии) и перемешивания. Всего в алгоритме выполняется 16 раундов (рис. 1).

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

После начальной перестановки (initial permutation – IP), блок исходных данных разбивается на левую L0, и правую R0 половины (полублоки) по 32 бита каждая.

Затем происходит 16 раундов идентичных операций, входом и выходом которых являются пары полублоков Lj, .

На каждой итерации полублоки комбинируются с ключом Kj+1 соответствующего раунда (нумерация ключей, принятая в стандарте Fips 46 для раундов и ключей, начинается с единицы, а полублоков – с нуля).

После последнего раунда правый и левый полублоки объединяются и финальная перестановка IP-1, являющаяся инверсией начальной перестановки, завершает алгоритм.

Перестановки IP и IP-1 не влияют на стойкость DES, поэтому некоторые реализованные в виде программ версии этого их не выполняют ввиду медленного выполнения битовых операций.

 

Рис. 1. Общая схема алгоритма DES

 

Для получения очередного раундового ключа половины предыдущего ключа независимо друг от друга циклически сдвигаются. Величина и направление сдвига для каждого раунда фиксированы (заданы в описании криптоалгоритма).

Затем сдвинутые полублоки объединяются в 56-битовую последовательность, из которой выбираются 48 битов с помощью постоянной перестановки сжатия (compression permutation или permuted choice).

В каждом раунде правый полублок данных Rj-1 расширяется до 48 битов с использованием расширяющей (за счет повторений битов) перестановки E, затем побитово складывается по модулю 2 с 48 битами раундового ключа (рис. 2).

Полученные 28 битов заменяются на блок из 32 битов с помощью восьми S -блоков (таблиц замены, преобразующих 6 битов в четыре).

Полученные 32 бита переставляются по фиксированной подстановке, в результате чего получается правый полублок Rj новой пары полублоков.

В качестве Lj принимается блок Rj-1. Таким образом, преобразование полублоков имеет вид

 

 

Рис. 2. Схема преобразований одного раунда

 

Отметим особую роль расширяющей перестановки E (expansion permutation), с применением которой правый полублок Rj расширяется с 32 до 48 битов одновременно с их перестановкой (рис. 3).

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

 

Рис. 3. Расширяющая перестановка E

 

Не менее важная роль в алгоритме отведена восьми S -блокам (S -box substitution), на вход которых подается 48-битов результата сложения раундового ключа и расширенного полублока текста (рис. 6.4), а на выходе получается 32-х битовая строка.

Каждая подстановка представлена таблицей из 4 строк и 16 колонок. Блок в 48 бит делится на шестибитовые комбинации так, что первая комбинация заменяется по 1-ой подстановке, и т.д., восьмая комбинация – по 8-ой подстановке.

В каждой комбинации двухбитовое число обозначает строку таблицы замены (от 0 до 3). Аналогично, оставшиеся четыре бита определяют номер столбца. По строке и столбцу находится тетрада битов, которая заменяет исходную комбинацию, в итоге получим восемь тетрад, объединенных в 32-битовый блок. S -блоки (узлы замены) обеспечивают нелинейность и стойкость преобразования (другие операции – линейны и легко поддаются криптоанализу).

 

 

Рис. 4. Схема реализации замен (S-блоков)

 

Результат применения подстановок вновь перемешивается (переставляется) с помощью постоянной перестановки P. Операции, начиная с E и заканчивая P, образуют раундовую (цикловую) функцию f (см. рис. 1, 2).

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

К числу интересных результатов исследования алгоритма следует отнести тот факт, что два различных специально подобранных входных блока могут давать одинаковый выход. Можно также добиться равенства входа и выхода изменением только в трех соседних S-блоках по одному биту. Поэтому еще один критерий АНБ заключался в устойчивости к методам т.н. дифференциального криптоанализа.

 









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2018 zdamsam.ru Размещенные материалы защищены законодательством РФ.