Информационная безопасность
Лозинская Алина Михайловна
Одесская национальная академия связи
им. А.С.Попова,Украина
ЗАЩИТА ИНФОРМАЦИИ ПРИ ПЕРЕДАЧИ
ДАННЫХ В ОТКРЫТЫХ СЕТЯХ
Бурное развитие электронной коммерции и все возрастающее число
пользователей заставляют серьезно задуматься о проблемах безопасности открытых
каналов передачи данных. Отсутствие руководящих органов привело к тому, что
каждый член сети должен заботиться о своей безопасности сам.
Подключение к открытым (глобальным) сетям, таким как Интернет,
существенно увеличивает эффективность работы и открывает множество новых
возможностей. В то же время необходимо позаботится о создании системы защиты
информационных ресурсов от желающих их использовать, модифицировать или просто
уничтожить. Защита информации подразумевает поддержание целостности,
доступности и, если необходимо, конфиденциальности информации и ресурсов,
используемых для ввода, хранения, обработки и передачи данных. Для решения
комплексной проблемы защиты необходимо сочетание законодательных,
организационных и программно - технических мер .
Данная статья посвящена влиянию специфики открытых сетей на решение
задач обеспечения безопасности передачи данных и создания библиотек на основе
лучших алгоритмов. Показано, как особенности данных отразились на развитии
современных алгоритмов их шифрования.
Абсолютно стойкие алгоритмы уже
давно существуют, но до сих пор не нашли широкого применения в открытых сетях.
Первым абсолютно стойким алгоритмом был алгоритм Вернама, а его
теоретическое обоснование разработано Шенноном.
Максимально возможная неопределенность блока данных фиксированного
размера достигается, когда все возможные значения этого блока равновероятны. В
этом случае она равна размеру блока в битах. Таким образом, неопределенность
ключа K не превышает
его длины:
H(K) K.
Условие абсолютной стойкости для шифров, удовлетворяющих принципу
Кирхгофа,
|K| H(K) = H(E) H(T) = |T|,
где Е – шифр, а Т – исходные
данные.
Для
того чтобы шифр, построенный по принципу Кирхгофа, был абсолютно стойким,
необходимо, чтобы размер использованного для шифрования ключа был не меньше
размера шифруемых данных, т. е.
|K| |T|.
Точное равенство возможно только в
том случае, если все возможные значения ключа равновероятны. Это эквивалентно
условию, что биты ключа равновероятны и статистически независимы друг от друга.
Примером абсолютно стойкого шифра может служить одноразовая гамма
Вернама - наложение с помощью некоторой бинарной операции Т ° на открытые
данные T ключа K такого же размера, составленного
из статистически независимых битов, которые принимают возможные значения с
одинаковой вероятностью
T' = T ° K.
Используемая для наложения гаммы операция должна удовлетворять следующим условиям:
уравнение шифрования должно быть однозначно разрешимо относительно
открытых данных при известных зашифрованных и ключе;
ключа при известных открытых и зашифрованных данных.
По указанной причине обычно выбирают наиболее удобную в реализации
операцию - побитовое суммирование по
модулю 2 (или побитовое
исключающее ИЛИ), так как она: 1) требует для своей реализации
простейшей логики из всех возможных операций; 2) обратная самой себе, поэтому
для шифрования и дешифрования применяется одна и та же процедура.
Другим, абсолютно стойким алгоритмом является семейство блокнотных
алгоритмов. На предварительном этапе происходит обмен “блокнотами”,
представляющими избыточный набор символов, которые могут быть использованы при
передаче сообщения. Примером такого блокнота может быть книга или беспорядочный
кусок информации (предпочтительнее). На этапе шифрования происходит
сопоставление каждого символа шифруемого текста различным позициям этого
символа в блокноте. Следовательно, достигается абсолютная неопределенность
передаваемой информации.
Таким образом, абсолютно стойкие шифры требуют использования ключа, по
размеру не меньшего шифруемых данных. Этот ключ должен быть и у отправителя, и
у получателя, то есть его необходимо предварительно доставить им, а для этого
необходим защищенный канал. Наряду с потенциально незащищенным каналом для
передачи зашифрованных данных необходимо существование защищенного канала для
передачи такого же по размеру ключа. Это не всегда приемлемо по экономическим
соображениям, поэтому подобные системы применяются лишь в исключительных
случаях для защиты сведений, представляющих особую ценность. В подавляющем
большинстве реальных систем шифрованной связи используются алгоритмы, не
обладающие абсолютной стойкостью и поэтому называемые несовершенными шифрами.
Недоступность алгоритма не
повышает безопасность шифра, за стандарт принимаются открытые алгоритмы.
Не существует способа получить точное значение трудоемкости
криптоанализа. Все оценки базируются на проверках устойчивости шифров к известным на текущий момент видам
криптоанализа, и нет гарантии, что в ближайшем будущем не будут разработаны
новые методы анализа, существенно снижающие трудоемкость. Сказанное выше означает, что при текущем положении
дел в криптографии стойкость абсолютно всех шифров, за исключением совершенных,
не может быть доказательно обоснована. Вместо этого она обоснована эмпирически
как устойчивость к известным сегодня видам криптоанализа, но никто не может
дать гарантии, что завтра не будет изобретен вид криптоанализа, успешный именно
для данного конкретного шифра. Вот почему не стоит доверять "новейшим
шифрам" - они не прошли проверку временем. По этой же самой причине не
разумно доверять криптоалгоритмам, которые их авторы держат в секрете - даже
при отсутствии злонамеренно оставленных там "люков" нет совершенно
никакой гарантии того, что алгоритм был исследован со всей необходимой
тщательностью. Примером шифра, предложенного для внедрения без разглашения его
алгоритма, является Clipper от АНБ США. Требование перенастраиваемости
алгоритма появляется вследствие того, что в распоряжении злоумышленника рано
или поздно может оказаться описание алгоритма, его программная или аппаратная
реализация. Для того, чтобы в этом случае не пришлось заменять алгоритм
полностью, во всех узлах шифрования, где он используется, он должен содержать
легко сменяемую часть. Это приводит к принципу Кирхгофа: шифр определяется как
параметризованный алгоритм, состоящий из процедурной части, то есть описания
того, какие именно операции и в какой последовательности выполняются над
шифруемыми данными, и параметров - различных элементов данных, используемых в
преобразованиях. Раскрытие только процедурной части не должно приводить к
увеличению вероятности успешного дешифрования сообщения злоумышленником выше
допустимого предела. По этой причине, а также в силу того, что рассекречивание
этой части достаточно вероятно само по себе, нет особого смысла хранить ее в
секрете. В секрете держится некоторая часть параметров алгоритма, которая
называется ключом шифра:
T' = E ( T ) = EK
( T ),
где К - ключ шифра.
Использование принципа
Кирхгофа позволяет сделать некоторые выводы о построении шифров. Разглашение
конкретного шифра (алгоритма и ключа) не приводит к необходимости полной замены
реализации всего алгоритма, достаточно заменить только раскрытый ключ. Ключи
можно отчуждать от остальных компонентов системы шифрования (хранить отдельно
от реализации алгоритма, в более надежном месте) и загружать их только по мере
необходимости и на время выполнения шифрования (это значительно повышает
надежность системы в целом). Появляется возможность для точной оценки
"степени неопределенности" алгоритма шифрования - она просто равна
неопределенности используемого ключа:
H ( EK ) = H (
K ).
Соответственно, становится возможным оценить вероятность и трудоемкость
успешного дешифрования, то есть количество вычислительной работы, которую
необходимо выполнить для этого.
Подавляющее большинство
процессоров имеет 32 – разрядную архитектуру, что накладывает свои ограничения
на программную реализацию шифра. Для сравнения приведем характеристики русского
ГОСТ 28147-89 (далее ГОСТ) и американского (DES) стандартов, разработанных
приблизительно в одно и то же время (табл. 1).
Таблица 1
П А Р А М Е Т Р |
ГОСТ |
DES |
1. Размер блока шифрования |
64 бита |
64 бита |
2. Длина ключа |
256 бит |
56 бит |
3. Число раундов |
32 |
16 |
4. Узлы замен (S-блоки) |
не фиксированы |
фиксированы |
5. Длина ключа для одного раунда |
32 бита |
48 бит |
6. Схема выработки раундового ключа |
Простая |
сложная |
7. Начальная и конечная перестановки битов |
Нет |
есть |
Так как DES разрабатывался во
времена 8-разрядной архитектуры, то сегодня возникает ряд неудобств при
программной реализации этого алгоритма на современных ПК, что приводит к тому,
что ГОСТ, несмотря на большую длину ключа и большее число раундов, работает
быстрее.
Специально созданным для 32-битных машин, а также существенно более
быстрым, чем DES алгоритмом, является популярный Blowfish.
Предстоящий переход на
64-разрядную архитектуру порождает требование к будущим алгоритмам учитывать
особенности этой архитектуры, хотя это и не обязательно для аппаратной
реализации.
Иногда не представляется возможным использовать защищенный канал
на предварительном этапе. Это привело к разделению алгоритмов на классические –
симметричные и новые, асимметричные алгоритмы шифрования.
В "симметричных" криптоалгоритмах (DES, ГОСТ, Blowfish, RC5,
IDEA) один и тот же ключ используется как для шифрования, так и для
восстановления открытого сообщения. Поэтому этот ключ является секретным.
Достоинством этих алгоритмов является их хорошая теоретическая изученность, в
том числе обоснование криптостойкости. По сравнению с
"асимметричными" алгоритмами следует отметить относительную простоту
как программной, так и аппаратной реализации, более высокую скорость работы в
прямом и в обратном направлении, а также обеспечение необходимого уровня защиты
при использовании существенно более коротких ключей. К основным недостаткам
следует отнести необходимость обеспечения дополнительных мер секретности при
распространении ключей, связанные с этим проблемы и, возможно, затраты, а также
тот факт, что алгоритмы с секретным ключом работают только в условиях полного
доверия корреспондентов друг другу, т.к. не позволяют реализовать настоящую
"цифровую подпись".
В "асимметричных" методах (RSA, ECC) прямое и обратное
криптопреобразования выполняются с использованием различных полу-ключей,
которые не имеют между собой легко прослеживаемых связей, позволяющих по одному
полу-ключу вычислить другой. Поэтому один из полу-ключей открыто публикуется
для того, чтобы каждый мог зашифровать сообщение или проверить цифровую
подпись. Расшифровать такое сообщение или поставить подпись может только тот,
кто знает второй - секретный - полу-ключ. Такие алгоритмы, по сравнению с
"симметричными", более требовательны к вычислительным ресурсам и,
следовательно, их реализация и использование обходится дороже. На сегодняшний
день криптостойкость "асимметричных" алгоритмов обоснована хуже, чем
криптостойкость "симметричных" алгоритмов. Но они работают там, где
"классические" криптосхемы неприменимы: позволяют реализовать
различные хитроумные протоколы типа цифровой подписи, открытого распределения
ключей и надежной аутентификации в сети, устойчивой даже к полному перехвату
трафика. Однако применение асимметричных методов привело к появлению нового
ряда проблем. Главной из них является проблема получения достоверного открытого
ключа адресата.
Процесс шифрования состоит из набора раундов-шагов, на
каждом шаге выполняются следующие действия. Входной блок делится пополам на
старшую (L) и младшую (R) части. Вычисляется значение функции шифрования от
младшей части (R) и раундового ключа (k) X=f(R,k). Используемая на данном шаге
функция и называется функцией шифрования раунда. Она может быть одна для всех
раундов или индивидуальна для каждого раунда. В последнем случае функции
шифрования различных раундов одного шифра отличаются, как правило, лишь в
деталях. Формируется выходной блок, его старшая часть равна младшей части
входного блока L'=R, а младшая часть – это результат выполнения операции
побитового исключающего ИЛИ (обозначим его (+)) для старшей части входного
блока и результата вычисления функции шифрования R'=L(+)f(R,k).
Pretty Good Privacy(PGP) - это
программный пакет разработанный Филипом Циммерманом (Philip Zimmerman), который
обеспечивает шифровку почты и файлов. Циммерман взял существующие криптосистемы
и криптографические протоколы и разработал бесплатную (freeware) программу для
различных платформ. Она обеспечивает шифрование сообщений, цифровые подписи и
совместимую почту (email compatibility).
Алгоритмы, используемые для
шифрования сообщений - это RSA для передачи ключа и IDEA для самого шифрования
сообщений. Цифровые подписи достигаются при использовании RSA для подписи и MD5
для вычисления дайджеста сообщения (message digest). PGP использует ZIP
компрессию, а также маскирует координаты и данные отправителя, что немного
осложняет процесс анализа трафика. Совместимость почты достигается путем использования
Radix-64 конвертации (conversion).
PGP проверена огромным
количеством людей, ее исходные тексты опубликованы в Интернете, но поскольку в
ней используется RSA, то степень защиты сообщения зависит от длины ключа (чем
больше, тем лучше).
Пакет MIT PGP версии 2.6 и позже
– это вполне легальная бесплатная программа для не коммерческого использования.
Пакет Viacrypt версии 2.7 и позже – это коммерческий продукт.
На сегодняшний день наилучшую степень защиты
данных для домашних пользователей при работе в открытых сетях обеспечивает
пакет PGP. Для защиты данных на уровне организаций целесообразно использовать
коммерческие версии пакетов шифрования, основанных на асимметричных алгоритмах
(пакеты на основе алгоритмов RSA, ECC). Максимальная защищенность может быть
получена при выборе оптимального алгоритма под конкретную ситуацию.