Безопасность сетей

Шифрование с секретным ключом


Существует два основных типа шифрования: с секретным ключом и с открытым ключом. При шифровании с секретным ключом требуется, чтобы все стороны, имеющие право на прочтение информации, имели один и тот же ключ. Это позволяет свести общую проблему безопасности информации к проблеме обеспечения защиты ключа. Шифрование с открытым ключом является наиболее широко используемым методом шифрования. Он обеспечивает конфиденциальность информации и гарантию того, что информация остается неизменной в процессе передачи.

В чем суть шифрования на секретном ключе?

Шифрование на секретном ключе также называется симметричным шифрованием, так как для шифрования и дешифрования данных используется один и тот же ключ. На рисунке 12.2 показан базовый принцип шифрования с секретным ключом. Как видно из рисунка, отправитель и получатель информации должны иметь одинаковый ключ.


Рис. 12.2.  Шифрование с секретным ключом

Шифрование с секретным ключом обеспечивает конфиденциальность информации в зашифрованном состоянии. Расшифровать сообщение могут только те лица, которым известен ключ. Любое изменение в сообщении, внесенное во время передачи, будет обнаружено, так как после этого не удастся правильно расшифровать сообщение. Шифрование с секретным ключом не обеспечивает аутентификацию, поскольку любой пользователь может создавать, шифровать и отправлять действительное сообщение.

В общем, шифрование с секретным ключом быстро и легко реализуется с помощью аппаратных или программных средств.

Подстановочные шифры

Подстановочные шифры существуют уже около 2500 лет. Самым ранним примером является шифр Атбаш. Он возник примерно в 600 году до н.э. и заключался в использовании еврейского алфавита в обратном порядке.

Юлий Цезарь использовал подстановочный шифр, который так и назывался - шифр Цезаря. Этот шифр заключался в замещении каждой буквы другой буквой, расположенной в алфавите на три буквы дальше от шифруемой. Таким образом, буква A преобразовывалась в D, B преобразовывалась в E, а Z преобразовывалась в C.


Из этого примера видно, что подстановочный шифр обрабатывает за один раз одну букву открытого текста. Сообщение может быть прочитано обоими абонентами при использовании одной и той же схемы подстановки. Ключом в шифре подстановки является либо число букв сдвига, либо полностью переупорядоченный алфавит.

Подстановочные шифры имеют один большой недостаток - неизменная частота букв в исходном алфавите. В английском языке, например, буква "E" является наиболее часто используемой. Если заменить ее другой буквой, то чаще всего будет использоваться новая буква (при рассмотрении большого числа сообщений). При помощи такого анализа подстановочный шифр может быть взломан. Дальнейшая разработка анализа частоты вхождений букв позволяет получить наиболее часто встречающиеся комбинации из двух и трех букв. С помощью такого анализа можно взломать любой подстановочный шифр, если атакующий получит достаточное количество шифрованного текста.

Одноразовые блокноты

Одноразовые блокноты (One-time Pad, OTP) являются единственной теоретически невзламываемой системой шифрования. Одноразовый блокнот представляет собой список чисел в случайном порядке, используемый для кодирования сообщения (см. табл. 12.1). Как видно из названия системы, OTP может использоваться только один раз. Если числа в OTP являются действительно случайными, OTP имеет большую длину, чем сообщение, и используется только один раз, то шифрованный текст не предоставляет какого-либо механизма для восстановления исходного ключа (т. е. самого OTP) и, следовательно, сообщений.

Одноразовые блокноты используются в информационных средах с очень высоким уровнем безопасности (но только для коротких сообщений). Например, в Советском Союзе OTP использовался для связи разведчиков с Москвой. Двумя основными недостатками OTP являются генерация действительно случайных блокнотов и проблема распространения блокнотов. Очевидно, что если блокнот выявляется, то раскрывается и та информация, которую он защищает. Если блокноты не являются действительно случайными, могут быть выявлены схемы, которые можно использовать для проведения анализа частоты встречаемых символов.



Таблица 12.1. Функционирование одноразового блокнота
СообщениеSENDHELP
Буквы, замененные соответствующими числами195144851216
Одноразовый блокнот795212106
Добавление открытого текста в ОТР26141962061222
Шифрованный текстZNSFTFLV
Еще одним важным моментом, связанным с OTP, является то, что одноразовые блокноты могут использоваться только один раз. Если OTP используется несколько раз, то его можно проанализировать и взломать. Это происходило с некоторыми советскими OTP в период холодной войны. Тогда для считывания зашифрованной информации в Национальном Агентстве безопасности был создан проект "Верона". Информация о перехватах данных этим проектом находится на сайте NSA (http://www.nsa.gov).

Внимание!

Некоторые современные системы шифрования также используют что-то вроде OTP. Этот тип систем шифрования обеспечивает достаточно высокий уровень защиты, однако он точно также является легко взламываемой системой. Как правило, OTP непригодны для использования в средах с большим объемом трафика.



увеличить изображение
Рис. 12.4.  Алгоритм генерации подключа DES

На блок- схеме алгоритма DES изображены несколько блоков, в которых происходит перестановка. Рассматриваемый стандарт шифрования предусматривает специальное переупорядочивание битов для каждой перестановки. То же самое относится к алгоритму генерации подключа. Для перестановочной выборки 1 и 2 предусмотрено определенное переупорядочивание битов. На рисунке 12.3 также изображена функция вызова f. В этой функции находятся S-блоки. S-блоки представляют собой блоки табличного поиска (также определенные в стандарте), изменяющие 6-битные выходные данные на 4-битные.

Алгоритм DES может функционировать в четырех режимах.

  • Электронный шифрблокнот. Это базовый алгоритм блочного шифрования, в котором текст и ключ объединяются и образуют шифрованный текст. В этом режиме идентичный вход образует идентичный выход.
  • Цепочка блоков. В данном режиме каждый блок шифруется как в электронном шифрблокноте, но с добавлением третьего компонента, полученного из предыдущего выхода. В данном случае, идентичный вход (открытый текст) не образует идентичный вывод.
  • Обратная связь по шифрованному тексту. В данном режиме в качестве входных данных в DES используется ранее сгенерированный шифрованный текст. После этого выходные данные комбинируются с открытым текстом и образуют новый шифртекст.
  • Обратная связь по выходу. Этот режим аналогичен обратной связи по шифрованному тексту, однако здесь используются выходные данные DES, и не происходит построение цепочки из шифртекста.


Были раскрыты несколько атак, требующих меньше вычислительных мощностей, нежели исчерпывающий поиск (дифференциальный и линейный криптоанализ; для получения более детальных сведений по этим атакам посетите сайт (http://www.rsasecurity.com/rsalabs/faq/). Однако эти атаки требуют большого объема выборочного открытого текста и, следовательно, практически не осуществимы в реальном мире. Сегодня особенно заметным слабым местом шифров стал 56-битный ключ. 56 бит ключа обеспечивают потенциальное число ключей, равное 255.



В сегодняшних компьютерных системах все пространство ключей может быть изучено за небольшой промежуток времени. В 1997 г. организация Electronic Frontier Foundation (EFF) анонсировала компьютерную систему, которая сможет найти ключ DES за четыре дня. Создание этой системы стоило 250 000 долларов. С помощью современного оборудования можно определить ключ DES посредством атаки "грубой силы" за 35 минут. Этого времени слишком мало, чтобы защитить информацию, которая должна сохраняться в секрете. В переработанной публикации FIPS (46-2 и текущая 46-3) в NIST признали этот факт, сказав, что простой DES можно использовать только в устаревших системах.

Тройной DES

В 1992 году исследования показали, что DES можно использовать трижды для обеспечения более мощного шифрования. Так родилась концепция тройного алгоритма DES (TDES). На рисунке 12.5 показана схема работы алгоритма TDES. Обратите внимание, что вторая операция в действительности представляет собой дешифрование. Используемый при этом ключ обеспечивает большую мощность тройного DES в сравнении с обычным DES.


Рис. 12.5.  Блок-схема алгоритма шифрования TDES

Тройной DES используется либо с двумя, либо с тремя ключами. При использовании двух ключей ключ K3 идентичен K1. TDES является относительно быстрым алгоритмом, так как его можно реализовать аппаратно. Его функционирование занимает в три раза больше времени, чем у DES, так как имеют место три операции шифрования DES. В большинстве приложений рекомендуется использовать TDES вместо простого DES.

Примечание

TDES подвергался двум атакам. Тем не менее, объем данных, требуемый для проведения атак (как и в случае с атаками на DES), делал проведение атак на этот алгоритм практически неосуществимым в реальных ситуациях.

Шифрование паролей

Стандартная схема шифрования паролей UNIX является разновидностью DES. Хотя функция шифрования пароля представляет собой в действительности одностороннюю функцию (нельзя получить открытый текст из шифрованного текста), здесь будет приведено обсуждение этой функции, чтобы показать, каким образом алгоритм DES может использоваться в приложениях такого типа.



У каждого пользователя есть свой пароль. Алгоритм использует первые восемь символов пароля. Если пароль длиннее восьми символов, он усекается. Если пароль короче восьми символов, он дополняется. Пароль преобразуется в 56-битное число с помощью первых 7 бит каждого символа. После этого система выбирает 12.битное число на базе системного времени. Этот элемент называется "крупинкой соли" или расширением. Расширение и пароль используются в качестве входных данных в функции шифрования паролей (см. рис. 12.6).


Рис. 12.6.  Функция шифрования пароля UNIX

Расширение используется для изменения одной из таблиц перестановки в алгоритме 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-битный ключ, что в ближайшем будущем, скорее всего, станет уже неприемлемым.



Рис. 12.7.  Схема работы цикла алгоритма Rijndael

  • Blowfish. Позволяет использовать переменные ключи длиной до 448 бит; алгоритм оптимизирован для работы на 32-битных процессорах.
  • Twofish. Использует 128-битные блоки, а также ключи длиной 128, 192 или 256 бит.
  • CAST-128. Использует 128-битный ключ. Применяется в новых версиях PGP.
  • Алгоритм ГОСТ (ГОСТ 28147-89). Российский стандарт шифрования, разработанный в ответ на DES.В нем используется ключ длиной 256 бит.


Любой из этих алгоритмов может использоваться в средствах обеспечения безопасности информации. Все эти алгоритмы, как правило, являются достаточно мощными для использования в общих целях.

Внимание!

Имейте в виду, что общий уровень безопасности системы определяет не только сам алгоритм как таковой, но и реализация и метод использования самой системы.


Содержание раздела