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