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

4.1.3. Гаммирование.

Гаммированием называется преобразование, при котором складываются посимвольно элементы двух последовательностей – исходного текста и ключевой последовательности. Если исходный текст задан в виде последовательности символов, заданных ASCII или ANSI- кодами (кодовые таблицы DOS – 861 или Windows – 1251 соответственно), которые являются числами от 1 до 255, то ключевая последовательность задается также в виде последовательности чисел от 0 до 255 и сложение с ключевой последовательностью происходит по модулю 256.

Пример. Исходный текст – слово «пароль». В кодах ASNI получим «239, 224, 240, 238, 235, 252». Гамма последовательность – 174, 245, 211. Длина гаммы меньше длины текста, поэтому повторяет гамму дважды:

Текст

239

224

240

238

235

252

Гамма

174

245

211

174

245

211

Шифрованное

соообщение=

157

213

195

156

224

207

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

В методе DES на втором подшаге 48-битовый вектор, полученный путем расширенной перестановки (см. пред. раздел), суммируется с 48-битовой выборкой из 56-битового ключа K.

4.1.4. Нелинейное преобразование с помощью s-боксов

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

В конце предыдущего раздела было указано, как получить 48-битовый вектор из одной половины шифруемого блока. После этого полученный вектор разбивается на 8 подвекторов длины 6 бит, каждый из которых подвергается преобразованию (сжатию) в 6-битовый подвектор с помощью восьми различных s-боксов. Первый s-бокс имеет вид

14

4

13

1

2

15

11

8

3

10

6

12

5

9

0

7

0

15

7

4

14

2

13

1

10

6

12

11

9

5

3

8

4

1

14

8

13

6

2

11

15

12

9

7

3

10

5

0

15

12

8

2

4

9

1

7

5

11

3

14

10

0

6

13

Перенумеруем строки s-бокс двоичными наборами (0,0), (0,1), (1,0), (1,1), а столбцы – 4-х битовыми наборами в лексикографическом порядке. Тогда значением 6-битового вектора (x1,x2,x3,x4,x5,x6) является двоичный набор, соответствующий числу, записанному в строке с номером (x5,x6) и столбцом (x1,x2,x3,x4).

Пример. Пусть входной вектор имеет вид (1, 0, 1, 0, 1, 1). Тогда номер строки m=(1, 1)=3, что соответствует 4-й строке (нумерация идет от 0), номер стролбца n=(1, 0, 1, 0)=10, что соответствует 11-у столбцу. В клетке с координатами (m+1, n+1)=(4, 11) находится число 3, равное (0,0,1,1) в двоичном представлении. Значит, S1(1, 0, 1, 0, 1, 1)= (0,0,1,1).

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