Стоимость "обучения" |
Шифрование
Тройной DES
В 1992 году исследования показали, что DES можно использовать трижды для обеспечения более мощного шифрования. Так родилась концепция тройного алгоритма DES (TDES). На рисунке 12.5 показана схема работы алгоритма TDES. Обратите внимание, что вторая операция в действительности представляет собой дешифрование. Используемый при этом ключ обеспечивает большую мощность тройного DES в сравнении с обычным DES.
Тройной DES используется либо с двумя, либо с тремя ключами. При использовании двух ключей ключ K3 идентичен K1. TDES является относительно быстрым алгоритмом, так как его можно реализовать аппаратно. Его функционирование занимает в три раза больше времени, чем у DES, так как имеют место три операции шифрования DES. В большинстве приложений рекомендуется использовать TDES вместо простого DES.
Примечание
TDES подвергался двум атакам. Тем не менее, объем данных, требуемый для проведения атак (как и в случае с атаками на DES), делал проведение атак на этот алгоритм практически неосуществимым в реальных ситуациях.
Шифрование паролей
Стандартная схема шифрования паролей UNIX является разновидностью DES. Хотя функция шифрования пароля представляет собой в действительности одностороннюю функцию (нельзя получить открытый текст из шифрованного текста), здесь будет приведено обсуждение этой функции, чтобы показать, каким образом алгоритм DES может использоваться в приложениях такого типа.
У каждого пользователя есть свой пароль. Алгоритм использует первые восемь символов пароля. Если пароль длиннее восьми символов, он усекается. Если пароль короче восьми символов, он дополняется. Пароль преобразуется в 56-битное число с помощью первых 7 бит каждого символа. После этого система выбирает 12.битное число на базе системного времени. Этот элемент называется "крупинкой соли" или расширением. Расширение и пароль используются в качестве входных данных в функции шифрования паролей (см. рис. 12.6).
Расширение используется для изменения одной из таблиц перестановки в алгоритме DES (перестановка E) любым из 4096 различных способов, в зависимости от числа единиц в двенадцати битах. Начальный открытый текст содержит 56 нулевых битов, а ключом являются 56 бит, полученных из пароля. Алгоритм выполняется 25 раз, причем входные данные каждого этапа являются выходом предыдущего этапа.
Конечные выходные данные преобразуются в 11 символов, а расширение преобразуется в 2 символа и помещается перед конечными данными выхода.
Главной уязвимостью этой системы является то, что она основана на выборе пароля. Так как большинство пользователей компьютеров используют пароли, состоящие из символов нижнего регистра, мы имеем общее число возможных комбинаций, равное 268. Это значительно больше, чем 255 возможных ключей DES, поэтому взлом такого шифра посредством "грубой силы" займет гораздо меньше времени и вычислительных ресурсов для раскрытия паролей в системе Unix.
Примечание
Большая часть систем Unix теперь обеспечивает возможность использования теневых файлов паролей. Если зашифрованные пароли легко взламываются с помощью грубой силы, то посредством сокрытия зашифрованных паролей можно несколько повысить уровень безопасности системы. Как и в случае с остальными системами, если корневой пароль является слабым, или если в корне системы присутствует "дыра", то правильность выбора паролей пользователями уже не играет какой-либо роли.
Расширенный стандарт шифрования Rijndael
Взамен DES NIST анонсировал в 1997 г. появление алгоритма-конкурента стандарту DES с названием AES. В конце 2000 г. NIST объявили о том, что два криптографа из Бельгии (Joan Daemen и Vincent Rijmen) выиграли конкурс, представив алгоритм Rijndael. Этот алгоритм был выбран с учетом его мощности, применимости в высокоскоростных сетях, а также возможности аппаратной реализации.
Rijndael представляет собой блочный шифр, использующий ключи и блоки длиной 128, 192 или 256 бит. На сегодняшний день такая длина ключей обеспечивает практическую неосуществимость атак с применением грубой силы. Алгоритм состоит из 10-14 циклов, в зависимости от размеров блока открытого текста и размера ключа. На рисунке 12.7 показано, какие вычисления производятся в каждом цикле.
Так как этот стандарт был одобрен, Rijndael начал появляться во многих системах. Данный алгоритм можно считать достойной альтернативой алгоритму TDES.
Другие алгоритмы шифрования с секретным ключом
В различных системах безопасности используются и другие алгоритмы шифрования с секретным ключом. Из них можно выделить следующие.
- IDEA (International Data Encryption Algorithm). Разработан в Швейцарии. В IDEA используется 128-битный ключ; кроме этого, IDEA также используется в Pretty Good Privacy (PGP).
- RC5. Разработан Роном Ривестом в институте MIT. Этот алгоритм позволяет использовать ключи с переменной длиной.
- Skipjack. Разработан правительством США для использования с Clipper Chip. В нем используется 80-битный ключ, что в ближайшем будущем, скорее всего, станет уже неприемлемым.
- Blowfish. Позволяет использовать переменные ключи длиной до 448 бит; алгоритм оптимизирован для работы на 32-битных процессорах.
- Twofish. Использует 128-битные блоки, а также ключи длиной 128, 192 или 256 бит.
- CAST-128. Использует 128-битный ключ. Применяется в новых версиях PGP.
- Алгоритм ГОСТ (ГОСТ 28147-89). Российский стандарт шифрования, разработанный в ответ на DES. В нем используется ключ длиной 256 бит.
Любой из этих алгоритмов может использоваться в средствах обеспечения безопасности информации. Все эти алгоритмы, как правило, являются достаточно мощными для использования в общих целях.
Внимание!
Имейте в виду, что общий уровень безопасности системы определяет не только сам алгоритм как таковой, но и реализация и метод использования самой системы.