АЛГОРИТМЫ ШИФРОВАНИЯ

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

Все многообразие существующих криптографических методов можно свести к следующим классам преобразований:

Моно - и много алфавитные подстановки.

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

Перестановки.

Также несложный метод криптографического преобразования. Используется как правило в сочетании с другими методами.

Гаммиpование.

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

Блочные шифры.

Представляют собой последовательность (с возможным повторением и чередованием) основных методов преобразования, применяемую к блоку (части) шифруемого текста. Блочные шифры на практике встречаются чаще, чем "чистые" преобразования того или иного класса в силу их более высокой кpиптостойкости. Российский и американский стандарты шифрования основаны именно на этом классе шифров.

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

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

Можно сформулировать три основных требования к криптографически стойкому генератору псевдослучайной последовательности или гаммы [4]:

1. Период гаммы должен быть достаточно большим для шифрования сообщений различной длины.

2. Гамма должна быть трудно предсказуемой. Это значит, что если известны тип генератора и кусок гаммы, то невозможно предсказать следующий за этим куском бит гаммы с вероятностью выше х. Если Криптоаналитику станет известна какая-то часть гаммы, он все же не сможет определить биты, предшествующие ей или следующие за ней.

3. Генерирование гаммы не должно быть связано с большими техническими и организационными трудностями.

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

Вторая проблема состоит в следующем: на основании чего можно сделать заключение, что гамма конкретного генератора является непредсказуемой? Пока в мире нет еще универсальных и практически проверяемых критериев, позволяющих утверждать это. Неизвестна и общая теория криптоанализа, которая могла бы быть применена для такого доказательства, за исключением все возрастающего количества конкретных способов анализа, выработанных для различных практических целей. Интуитивно случайность воспринимается как непредсказуемость. Чтобы гамма считалось случайной, как минимум необходимо, чтобы ее период был очень большим, а различные комбинации бит определенной длины равномерно распределялись по всей ее длине. Итак, второе требование к ряду заключается в подтверждаемом статистически подобии его свойств настоящей случайной выборки. Каждый порядок элементов гаммы должен быть так же случаен, как и любой другой. Это требование статистики можно толковать и как сложность закона формирования ряда псевдослучайных чисел. Практически, если по достаточно длинной реализации этот закон вскрыть не удается ни на статистическом уровне, ни аналитически, то этим нужно удовлетвориться. Чем длиннее требуемая длина ряда, тем жестче к нему требования.

И, наконец, последнее третье требование связано с возможностью практической реализации генератора в виде программы или электронного устройства, быстродействием, необходимым для применения в современных коммуникациях, а также удобством его практического использования [4].

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

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

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

Классические алгоритмы шифрования

На сегодня реализовано довольно много различных алгоритмов криптографической защиты информации. Среди них можно назвать алгоритмы DES, Rainbow (США); FEAL-4 и FEAL-8 (Япония); B-Crypt (Великобритания); алгоритм шифрования по ГОСТ 28147-89 (Россия) и ряд других, реализованных зарубежными и отечественными поставщиками программных и аппаратных средств защиты. Рассмотрим основные из них, наиболее широко применяемые в зарубежной и отечественной практике

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

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

При шифровании применяется 64-разрядный ключ. Для шифрования используются только 56 разрядов ключа, а остальные восемь разрядов являются контрольными.

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

В настоящее время близится к завершению разработка нового американского стандарта шифрования AES (aes.nist.gov). Характерной чертой процесса принятия нового стандарта является его открытость и демократичность. Год назад Национальный институт стандартов и технологий США (NIST) объявил о соответствующем конкурсе, предъявив следующие условия: длина ключа должна составлять 128, 192 или 256 бит, длинна блоков данных – 128 бит. Кроме того, новый алгоритм должен работать быстрее DES.

Всего на “должность” AES претендуют около двух десятков алгоритмов, которые сейчас по различным параметрам исследуются независимыми экспертами. Например, по одному из главных параметров – скорости шифрования/де шифрования по разным тестам заметно выделяются Cripton (Future Systems), Mars (IBM), RC6 (RSA Laboretories) Rijndael и Twofish. Однако есть и другие стороны (например, надежность, требование к объему памяти, наконец, чисто политические моменты), которые могут сыграть свою роль в окончательном выборе [6].

Предполагается, что после этапа первичной оценки количество кандидатов сократится по крайней мере до пяти. Финалисты будут названы к концу лета 1999 года, но весь процесс принятия стандарта вряд ли будет завершен до 2001 года. В настоящее время правительство США для закрытия несекретных, но важных документов продолжает использовать стандарт шифрования DES [7].

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

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

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

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

Из алгоритмов шифрования, разработанных в последнее время, большой интерес представляет алгоритм RC6 фирмы RSA Data Security. Алгоритм RC6 является эволюционным усовершенствованием известного алгоритма RC5. Этот алгоритм обладает следующими свойствами:

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

• алгоритм быстрый, т.е. в базисных вычислительных операциях операторы работают на полных словах данных;

• адаптивностью на процессоры различных длин слова. Число w бит в слове –параметр алгоритма;

• наличием параметра, отвечающего за “степень перемешивания”, т.е. число раундов (итераций до 255). Пользователь может явно выбирать между более высоким быстродействием и более высоким перемешиванием;

• низким требованием к памяти, что позволяет реализовывать алгоритм на устройствах с ограниченной памятью;

• использованием циклических сдвигов, зависимых от данных, с "переменным" числом.

• простотой и легкостью выполнения.

Алгоритм RC6 работает на четырех модулях w-бит слов и использует только четыре примитивных операции (и их инверсии), длина ключа до 2040 бит (255 байт). Алгоритм открыт для публикаций и полностью документирован, т.е. процедуры шифрования и расшифровывания "прозрачны" для пользователя.

Нами был программно реализован криптографический алгоритм RC6 на языке Java и проведены статистические исследования на определенных длинах слов последовательностей псевдослучайных чисел полученных с помощью этого алгоритма. Статистические тесты показали хорошие результаты, что косвенно говорит о “качестве” шифра. Работая одновременно с четырьмя полными словами и используя примитивные операции поддерживаемые, большинством процессоров, алгоритм показал хорошие временные данные, т.е. – алгоритм быстрый. Время шифрования 9 Мб -.136 секунд. Этот алгоритм шифрования можно рекомендовать для шифрования данных на магнитных носителях.