Блочный алгоритм шифрования 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. Чаще всего используется вариант шифрования на трех ключах: открытый текст шифруется на первом ключе, полученный шифртекст – на втором и, наконец, данные, полученные после второго шага, – на третьем. Все три ключа выбираются независимо друг от друга. Этот криптоалгоритм достаточно стоек ко всем атакам.