Технологии защиты информации в сети

Примеры
Задачи

Возрождение

Лекции
Чертеж

Криптографические средства защиты.

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

Если пароль – короткий (длины не более 6 символов), то его можно подобрать прямым перебором, такая атака на шифр называется brute force (в переводе с английского означает грубая сила). Если же пароль достаточно длинный, но представляет собой сочетание типа tanya-1989, то его можно подобрать с помощью словаря. Поэтому рекомендуется, чтобы пароль содержал не менее 7-8 символов из алфавита мощности не менее 128 символов (например, английский и русские строчные и заглавные буквы, цифры, знаки препинания), тогда вероятность подбора такого пароля – невелика. Однако появляется другая опасность –возрастает вероятность того, что владелец пароля его забудет так, как человеческая память – ненадежное хранилище информации. Такой пароль надо где-то записать, сохранить, а значит увеличить вероятность кражи пароля. Кроме того, вероятность взлома пароля сильно увеличивается в зависимости от возможностей атакующего. Приведем в качестве примера данные, опубликованные американскими криптографами в 1996 году (конечно, с тех пор мощь копьютеров значительно увеличилась. но соотношения, приведенные в таблице, в основном, сохранились).

Таблица 5.1. Стоимость и вычислительная сложность атаки методом тотального перебора

Кто атакует

Бюджет

Сложность атаки

Стойкий ключ

40 бит

56 бит

Хакер

1000 долл.

1 неделя

Никогда

45 бит

Малый бизнес

10 тыс. долл.

12 мин.

556 дней

64 бита

Крупная компания

10 млн долл.

0.005 с

6 мин

70 бит

Федеральное агентство

300 млн долл.

0.0002 с

12с

75 бит

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

Классификация криптографических методов.

Все методы шифрования принято делить на классические и методы шифрования с открытым ключем. Их также принято называть одно- и двух- ключевыми методами, поскольку в классическим шифрах для шифрования/расшифрования используется один и тот же ключ, в то время как в современных методах шифрования с открытым ключем используется два ключа – public key (публичный открытый ключ) и private key (личный закрытый ключ). Использование двух ключей позволяет преодолеть главный недостаток классических шифров – проблему распределения ключей. Методы, использующие один ключ, называются также симметричными, а использующие два ключа – асимметричными.

В свою очередь классические (одноключевые) методы шифрования делятся на две основные группы – потоковые и блочные. Потоковые методы шифруют входной поток данных посимвольно (или побитово). Шифрование каждого символа (бита) текста производится независимо от результата шифрования соседних символов (битов). Потоковые методы являются наиболее быстрыми, дешевыми и достаточно надежными методами шифрования.

Типичным представителем потокового метода шифрования является метод RC4 с переменной длиной ключа, разработанный в 1987 году Роном Ривестом из корпорации RSA Data Security, Inc. Этот метод широко используется в разных приложениях, например, в протоколе WEP для шифрования данных, передаваемым по беспроводным сетям Wi-Fi между точкой доступом (Access Point) и беспроводным адаптером на компьютере клиента. Ключом в методе RC4 является любая символьная последовательность длины до 256 байт, например, условная фраза или произвольный набор чисел. До 1994 года алгоритм RC4 держался в секрете и распространялся среди производителей под подписку о неразглашении, однако в 1994 году анонимный хакер опубликовал алгоритм метода в сети Usenet, после чего метод перестал был секретным. Однако это не ослабило его стойкость по отношению к атакам, и по настоящее время не найдено методов взлома RC4, которые были бы значительно лучше, чем полный перебор.

Этот метод имел ограничения по экспорту для использования с ключом более 40 байт, однако, нет никаких оснований предполагать, что ключ длины 40 байт является ненадежным, поскольку 40 байт=320 бит, а полный перебор 320-битового ключа лежит далеко за пределами сегодняшних возможностей и маловероятно, что когда-нибудь окажется возможным. Ниже мы опишем схему метода RC4.

Схема метода RC4.

Сам метод RC4 является чрезвычайно простым и легко программируется. Он состоит из начальной подготовки параметров шифрования - инициализации и собственно процесса шифрования. В ходе инициализации подготавливаются два числовых массива K и S длины 256 байт. При этом символьный ключ Key длины 64 или 128 символов кодируется в массиве S (в действительно, длина ключа здесь совершенно не влияет на работу алгоритма, и может быть принимать любое значение от 2 до 256). После этого связь между ключом Key и массивом S разрывается и в дальнейшем ключ Key не используется. Если взломщик узнает каким- нибудь образом массив S или его часть, он способен восстановить весь текст или его часть, но не сможет найти исходный ключ Key. Это позволяет использовать один и тот ключ Key многократно с разными исходными параметрами i, j, влияющими на сдвиг гаммирующей последовательности.

Инициализация.

Определяются два массива К и S длины 256 типа Byte.

Выбирается ключ Key, представляющий набор символов длины не более 256 байт.

Заполняем массив К кодами символом из ключа Key. Если длина ключа Key меньше 256, то используем ключ несколько раз (заполняя массив K полностью).

Инициализация S-блока. Сначала заполним его линейно:

S(0)=0, S(1)=1, … , S(255)=255

5. В цикле выполняем перестановку S-блока:

for i = 0 to 255:

j=(j + S(i) + K(i)) mod 256

'поменять местами S(i) и S(j)

 temp=S(i): S(i)=S(j): S(j)=temp

Next i

Шифрование.

Организуем цикл, в котором считываем посимвольно текст, который надо закодировать, и одновременно генерируем ключевую последовательность, которая используется для сдвига символов текста:

‘ инициализируем начальные значения i,j произвольными значения от 0 до 255

 i=i0: j=j0

 Do while not eof(1)

i = (i +1) mod 256 j

j=(j + Si) mod 256

‘меняем местами S(i) и S(j)

 temp=S(i): S(i)=S(j): S(j)=temp

 t = (S(i) + S(j) mod 256

k=S(t)

‘ Считываем очередной символ из текста

 m = Input(1, #1)

‘к ASCII-коду полученного символа m добавляет по модулю 256 элемент ключевой

‘последовательности k=S(t)

enc=(Asc(m)+k) mod 256

‘записываем в выходной поток закодированный символ

 write #2, enc 

 End Do

Отметим, что ключевую последовательность метода RC4, называют также гамма-последовательностью, а процедуру шифрования – гаммированием.

Далее мы рассмотрим блочные методы на примере метода DES.

Data Encryption Standard (DES)

DES является симметричным алгоритмом шифрования, разработанным сотрудником фирмы IBM Курсом Фейстелем еще в 1976 году для внутренних нужд компании, но впоследствии протестированный Агентством национальной безопасности США (АНБ) и выбранный в качестве федерального стандарта США. Этот метод имеет ключ длины 56 бит и широко применялся во многих криптографических пакета в течение почти двух десятилетий, пока, наконец, в начале 1990'х году не сочли его небезопасным. В 1998 году был объявлен конкурс на разработку нового стандарта безопасности, в котором приняло участие большое количество алгоритмов, но выиграл алгоритм Rijndael с длиной ключа 128/160 бит. Этот алгоритм лег в основу нового американского стандарта безопасности Advanced Encryption Standard (AES).

Шифрование по методу DES (и ему подобным) состоит в следующем: текст разбивается на блоки фиксированной длины. Далее эти блоки подвергаются серии циклов преобразований, состоящих из перестановок, подстановок и гаммирования. Каждая серия преобразований называется раундом. Преобразование каждого блока по методу DES состоит из 16 раундов (для сравнения отечественный стандарт шифрования ГОСТ 28147-89, принятый в 1989 году, состоит из 32 раундов и имеет длину ключа 256 бит).

Подробнее о методе DES и конкурсе AES смотрите в книге А.В.Беляева "Методы и средства защиты информации" [1].

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

Название алгоритма

Автор

Размер блока

Длина ключа

IDEA

Xuejia Lia and James Massey

64 бита

128 бит

CAST128

64 бита

128 бит

BlowFish

Bruce Schneier

64 бита

128 – 448 бит

ГОСТ

НИИ ***

64 бита

256 бит

TwoFish

Bruce Schneier

128 бит

128 – 256 бит

MARS

Корпорация IBM

128 бит

128 – 1048 бит

Ланшафтный дизайн