6.1.1. Блочные алгоритмы шифрования данных

Блочный алгоритм шифрования DES

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

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

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

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

· криптостойкость алгоритма достаточна для защиты коммерческой информации.

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

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

Другие зарубежные симметричные криптоалгоритмы

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

Алгоритм IDEA (International Data Encryption Algorithm) – еще один 64-битовый блочный шифр с длиной ключа 128 бит. Этот европейский стандарт криптоалгоритма предложен в 1990 году. Алгоритм IDEA по скорости не уступает алгоритму DES, а по стойкости к криптоанализу превосходит его.

Алгоритм RC2 представляет собой 64-битовый блочный шифр с ключом переменной длины. Этот алгоритм приблизительно в два раза быстрее, чем DES. Может использоваться в тех же режимах, что и DES, включая тройное шифрование. Владельцем алгоритма является компания RSA Data Security.

Алгоритм RC5 представляет собой быстрый блочный шифр, который имеет размер блока 32, 64 или 128 бит, ключ длиной от 0 до 2048 бит. Выполняет от 0 до 255 проходов. Алгоритмом владеет компания RSA Data Security.

Алгоритм CAST представляет собой 64-битовый блочный шифр, использует ключи длиной от 40 до 64 бит, выполняет 8 проходов. Вскрыть этот шифр можно только путем прямого перебора, другие способы вскрытия неизвестны.

Алгоритм Blowfish – это 64-битовый блочный шифр, имеет ключ переменного размера до 448 бит, выполняет 16 проходов, на каждом из них осуществляются перестановки, зависящие от ключа, и подстановки, зависящие от ключа и данных. Этот алгоритм быстрее DES.

Комбинирование блочных алгоритмов

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

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

В настоящее время на рынок поступили FPGA-чипы, обладающие возможностью перебирать до 30 млн. значений ключа в секунду. Еще большие возможности имеют ASIC-чипы – они реализуют скорость перебора до 200 млн. ключей в секунду. Стоимость этих чипов составляет всего лишь десятки долларов. Поэтому вполне актуальны оценки криптостойкости шифра DES, включающие ориентировочные расчеты времени и материальных средств, которые необходимо затратить на взлом этого шифра методом полного перебора всех возможных значений ключа с использованием, как стандартных компьютеров, так и специализированных криптоаналитических аппаратных средств.

Возникает естественный вопрос: нельзя ли использовать DES в качестве строительного блока для создания другого алгоритма с более длинным ключом?

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

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