Стандартные методы шифрования
Стандарт шифрования данных США DES (Data Encryption Standard – стандарт шифрования данных) относится к группе методов симметричного шифрования и действует более 20 лет (принят в 1976 г.). Используемые операции – перестановка, гаммирование и нелинейная подстановка. Число шагов – 16. Длина ключа составляет 56 бит, из которых 8 бит – это проверочные разряды четности/нечетности.
Долгое время степень устойчивости к дешифрованию этого метода считалась достаточной, однако в 1998 г. появилось сообщение о создании специализированного компьютера (DES cracker), позволяющего вскрыть зашифрованный текст максимум за 9 дней (см. http://www.eff.org/descracker). Впрочем, такого рода сообщения можно отнести и к одному из проявлений конкурентной борьбы.
Отечественный ГОСТ28147-89 – это аналог DES, но с длиной ключа 256 бит, так что его степень устойчивости к дешифрованию изначально существенно выше. Важно также и то, что в данном случае предусматривается целая система защиты, которая преодолевает "родовой" недостаток симметричных методов шифрования – возможность подмены сообщений. Такие усовершенствования, как имитовставки, хэш-функции и электронные цифровые подписи позволяют "авторизовать" передаваемые сообщения. Достоинством симметричных методов шифрования является высокая скорость шифрования и дешифрования, недостатком – малая степень защиты в случае, если ключ стал доступен третьему лицу.
Достаточно популярны, особенно при использовании электронной почты в сети Internet, несимметричные методы шифрования или системы с открытыми ключами – public-key systems. Типичный представитель этой группы методов – PGP (Pretty Good Privacy – достаточно хорошая секретность).
Каждый пользователь в этом случае имеет пару ключей. Открытые ключи предназначены для шифрования и свободно рассылаются по сети, но не позволяют произвести дешифрование. Для этого нужны секретные (закрытые) ключи.
Принцип шифрования в данном случае основывается на использовании так называемых односторонних функций. Прямая функция х › f (х) легко вычисляется на основании открытого алгоритма (ключа). Обратное преобразование f (x) › х без знания закрытого ключа затруднено и должно занимать достаточно большое время, которое и определяет степень "трудновычислимости" односторонней функции.
Идею системы с открытыми ключами можно пояснить следующим образом (табл. 6.3). Для шифрования сообщений можно использовать обычную телефонную книгу, в которой имена абонентов расположены в алфавитном порядке и предшествуют телефонным номерам. Берется имя абонента, начинающееся на данную букву исходного слова, и номер телефона используется в качестве шифрованного сообщения.
Табл. 6.3. Пример шифрования в системе с открытыми ключами.
Исходное слово | Выбранное имя абонента | Зашифрованное сообщение (телефонные номера) |
---|---|---|
S | Scott | 3541920 |
А | Adleman | 4002132 |
и | Ullman | 7384502 |
N | Nivat | 5768115 |
А | Aho | 7721443 |
Понятно, что у пользователя имеется возможность выбора соответствия между символом в исходном тексте и именем абонента, т.е. это многоалфавитная система, что повышает ее степень устойчивости к дешифрованию. Легальный пользователь имеет "обратный" телефонный справочник, в котором в первом столбце располагаются телефонные номера по возрастанию, и легко производит дешифрование. Если же такого "обратного" справочника нет, то пользователю предстоит утомительное и многократное просматривание доступного прямого справочника в поисках нужных телефонных номеров.
Это и есть практическая реализация трудновычислимой функции. Сам по себе метод шифрования на основе телефонных справочников вряд ли перспективен хотя бы из-за того, что никто не мешает потенциальному взломщику составить "обратный" телефонный справочник. Однако в используемых на практике методах шифрования данной группы в смысле надежности защиты все обстоит благополучно.
В отличие от симметричных методов шифрования, проблема рассылки ключей в несимметричных методах решается проще – пары ключей (открытый и закрытый) генерируются "на месте" с помощью специальных программ. Для рассылки открытых ключей используются специальные технологии типа LDAP (Lightweight Directory Access Protocol – протокол облегченного доступа к справочнику). Рассылаемые ключи могут быть предварительно зашифрованы с помощью одного из симметричных методов шифрования.