Стандарты алгоритмов шифрования
Стандарты алгоритмов шифрования
Почему так много алгоритмов шифрования? Почему не стандартизируют один из них? Учитывая большое количество алгоритмов шифрования, следует признать, что на этот вопрос нельзя дать простой ответ. Максимум, что возможно, – это достичь компромисса между безопасностью, скоростью и удобством применения. В данном случае под безопасностью алгоритма понимается его способность противостоять как современным атакам, так и атакам в будущем. Скорость алгоритма характеризует его возможности по обработке данных и выражается временем, которое необходимо затратить на зашифровку и расшифровку сообщений. И наконец, под удобством применения понимается удобство реализации алгоритма программным или аппаратным способом. Каждый алгоритм хорош по-своему и ни один из них не идеален. В этой главе будут рассмотрены пять алгоритмов, с которыми чаще всего приходится иметь дело: стандарт шифрования данных DES (Data Encryption Standard), улучшенный стандарт шифрования AES [Rijndael], международный алгоритм шифрования данных IDEA (International Data Encryption Algorithm), алгоритм Диффи-Хеллмана и алгоритм RSA. Но знайте, что есть и другие алгоритмы, которые ничем не уступают названным.
Симметричные алгоритмы
В этой секции будет рассмотрено несколько наиболее типичных представителей класса симметричных алгоритмов: DES, его преемник AES и Европейский стандарт IDEA. Имейте в виду, что криптостойкость симметричных алгоритмов определяется прежде всего размером используемых в алгоритме ключей и числом циклов алгоритма. Все симметричные алгоритмы теоретически уязвимы к атакам «грубой силы», в основе которых лежит перебор всех возможных ключей. Но часто подобные атаки технически неосуществимы. Детально они будут обсуждены далее в главе.
Алгоритм DES
Стандарт шифрования данных (алгоритм) DES – один из старых и наиболее известных алгоритмов шифрования, который был изобретен корпорацией IBM и был американским правительственным стандартом с 1976 до 2001 года. В значительной степени DES основан на алгоритме Люцифер (Lucifer) Хорста Фейстеля (Horst Feistel), который не получил широкого распространения. Существенно то, что в алгоритме DES используется единственный 64-битовый ключ: 56 бит значащие и 8 бит – проверочные биты для контроля на четность. Алгоритм обрабатывает блоки данных порциями по 64 бита. Ключ разбивается на 16 отдельных 48-битовых подключей по одному на каждый раунд, который называется циклом Фейстеля (Feistel cycles). На рисунке 6.1 показана схема работы алгоритма DES.
Рис. 6.1. Схема алгоритма шифрования DES
В каждом раунде выполняются подстановка, во время которой биты данных заменяются битами ключа, и перестановка, во время которой замененные данные переставляются (перемешиваются). Операции перестановки, которые иногда называют перемешиванием, выполняются в S-блоках, а операции перестановки, иногда называемые операциями рассеивания, – в P-блоках. Два названных класса операций реализованы в «F-модуле» диаграммы. Безопасность DES чаще основывается на том, что операции перестановки нелинейные, поэтому зашифрованный текст ничем не напоминает исходное сообщение. Поэтому методы языкового анализа зашифрованного текста, которые обсуждаются далее в этой главе, не приводят к положительному результату. Операции перестановки повышают безопасность, дополнительно шифруя уже частично зашифрованное сообщение.
Данный текст является ознакомительным фрагментом.