Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
26003.rtf
Скачиваний:
4
Добавлен:
16.07.2019
Размер:
9.93 Mб
Скачать

Расшифрование в режиме простой замены

Криптосхема, реализующая алгоритм расшифрования в режиме простой замены, имеет тот же вид, что и при зашифровании (см. рис. 3.11).

В КЗУ вводят 256 бит ключа, на котором осуществлялось зашифрование. Зашифрованные данные, подлежащие расшифрованию, разбиты на блоки Тш по 64 бита в каждом. Ввод любого блока

Тш = (a1 (32), а2(32),.... а32(32), b1(32), b2(32),.... b32(32))

в накопители N1 и N2 производят так, чтобы начальное значение накопителя N1 имело вид

32(32),а31(32), ...,а2(32),а1(32)),

32, 31, ..., 2, 1  Номер разряда n1

а начальное заполнение накопителя N2 – вид

(b32(32)b31(32), ..., b2(32)b1(32)).

32 31, ..., 2, 1  Номер разряда n2

Расшифрование осуществляется по тому же алгоритму, что и зашифрование, с тем изменением, что заполнения накопителей Х0, Xl ,..., Х7 считываются из КЗУ в циклах расшифрования в следующем порядке:

K0, K1, К2, К3, К4, K5, K6, К7, К7, K6, K5, K4, К3, К2, K1, K0,

K7, K6, K5, К4, K3, К2, K1, K0, K7, K6, K5, K4, K3, K2, K1, K0.

Уравнения расшифрования имеют вид:

Полученные после 32 циклов работы заполнения накопителей N1 и N2 образуют блок открытых данных

Т0 = (a1(0), а2(0), .... а32(0), b1(0), b2(0), ..., b32(0)),

соответствующий блоку зашифрованных данных Тш. При этом состояние накопителя N1

32(0),а31(0),..,а2(0),а1(0)),

32, 31, ..., 2, 1  Номер разряда n1

состояние накопителя N2

(b32(0)b31(0), ..., b2(0)b1(0)).

32, 31, ..., 2, 1  Номер разряда n2

Аналогично расшифровываются остальные блоки зашифрованных данных.

Если алгоритм зашифрования в режиме простой замены 64-битового блока Т0 обозначить через А, то

А (Т0) = А (а(0), b(0)) = (а (32), b (32)) =ТШ.

Алгоритм

На входе основного шага определяется 64-битный блок данных N = (N1, N2), где N1 - младшая 32-битовая часть, а N2 - старшая 32-битовая часть. Обе части рассматриваются как отдельные 32-битовые числа. На вход основного шага также поступает один из восьми элементов ключа (какой именно, будет рассказано далее). 32-битовый элемент ключа обозначается за X. Далее производятся следующие действия:

  1. S = N1 + X (mod 232).

  1. Число S разбивается на 8 частей: S0,S1,S2,S3, S4,S5,S6,S7 по 4 бита каждая, где S0 - младшая, а S7 - старшая части числа S.

  2. Для всех i от 0 до 7: Si = T(i, Si), где T(a, b) означает ячейку таблицы замен с номером строки a и номером столбца b (счет с нуля).

  3. Новое число S, полученное на предыдущем шаге циклически сдвигается в сторону старших разрядов на 11 бит.

  4. S = S xor N2, где xor - операция исключающего или.

  5. N2 = N1.

  6. N1 = S.

Как результат основного шага криптопреобразования возвращается блок данных N = (N1, N2), где N2 равно исходному N1, а N1 - результат преобразований основного шага.

Берем блок данных N и вызываем последовательно процедуру основного шага криптопреобразования со следующими ключами:

  • Для цикла зашифрования (32-З): X0,X1,X2,X3,X4, X5,X6,X7,X0,X1,X2,X3, X4,X5,X6,X7,X0,X1,X2, X3,X4,X5,X6,X7,X7,X6, X5,X4,X3,X2,X1,X0.

  • Для цикла расшифрования (32-Р): X0,X1,X2,X3, X4,X5,X6,X7X7,X6,X5, X4,X3,X2,X1,X0X7,X6, X5,X4,X3,X2,X1,X0X7, X6,X5,X4,X3,X2,X1,X0.

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