Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metod_tzis!113.doc
Скачиваний:
37
Добавлен:
09.11.2019
Размер:
2.07 Mб
Скачать

5.2. Схема метода rc4.

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

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

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

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

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

  4. Инициализация 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.

5.3. 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 бит

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]