Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Блочные алгоритмы шифрования ГОСТ и DES

Реализация алгоритма

  • 1. Для начала выберем опцию «Изменить параметры выполнения». Там выбираем число циклов при зашифровании и расшифровании. Устанавливаем их число равное 7 и 4. Меняем значения на , на .
  • 2. Вводим исходные данные N1 = 13270597; N2 = 69120571 (рис. 4.3).
Ввод начальных данных

Рисунок 4.3 - Ввод начальных данных

Шаг 1. (рис. 4.4)

Рассчитываем значение на выходе CM1:

Прибавляем к значению N1 ключ К0. (Примечание. На шаге 2 будем использовать ключ K1, на шаге 3 - K2 и т.д.)

СМ1 = N1 + K0 = 1327405310

Рассчитываем значение на выходе блока S:

Берем значение СМ1 и переводим его в двоичную форму 13121771010 = 000000001100101010001011110001012. С помощью таблицы подстановки S получаем S = 000100000111011101001001001110002 = 27625298410.

Сдвигаем значение S на 11 разрядов влево и получаем значение:

R = 312539558710

Рассчитываем значение CM2 = N2 + R.

N2 = 69120571

00000100000111101011001000111011 (N2)

+

  • 10111010010010011100000010000011 (R)
  • 10111110010101110111001010111000= 319340204010

Записываем значение N2 равное значению N1 = 1327059710

Записываем значение N1 равное значению CM2 = 319340204010

Шаг 1. (Зашифровка)

Рисунок 4.4 - Шаг 1. (Зашифровка)

Шаг 2. (рис. 4.5)

Рассчитываем значение на выходе CM1:

Прибавляем к значению N1 ключ К1.

СМ1 = 319340206810

Рассчитываем значение на выходе блока S:

Берем значение СМ1 и переводим его в двоичную форму 319340206810 = 101111100101011101110010110101002. С помощью таблицы подстановки S получаем S = 100000111100001110101110101000012 = 221063952110.

Сдвигаем значение S = 000100011110011111011111101110102 на 11 разрядов влево и получаем значение:

R = 49421007810

Рассчитываем xor`м значение CM2 = N2 + R.

N2 = 13270597

00000000110010100111111001000101 (N2)

+

  • 00011101011101010000110000011110 (R)
  • 00011101101111110111001001011011= 49908591510

Записываем значение N2 равное значению N1 = 319340204010

Записываем значение N1 равное значению CM2 = 49908591510

Шаг 2. (Зашифровка)

Рисунок 4.5 - Шаг 2. (Зашифровка)

Шаг 3. (рис. 4.6)

Рассчитываем значение на выходе CM1:

Прибавляем к значению N1 ключ К2.

СМ1 = N1 + K2 = 49909355010

Рассчитываем значение на выходе блока S:

Берем значение СМ1 и переводим его в двоичную форму 49909355010 = 000111011011111110010000001011102. С помощью таблицы подстановки S получаем S = 110001100011100100111110000000002 = 332564019210.

Сдвигаем значение S = на 11 разрядов влево и получаем значение:

R = 338795064110

Рассчитываем xor`м значение CM2 = N2 + R.

N2 = 13270597

10111110010101110111001010111000 (N2)

+

  • 11001001111100000000011000110001 (R)
  • 01110111101001110111010010001001= 200746304910

Записываем значение N2 равное значению N1 = 49908591510

Записываем значение N1 равное значению CM2 = 200746304910

Шаг 3. (Зашифровка)

Рисунок 4.6 - Шаг 3. (Зашифровка)

Шаг 4. (рис. 4.7)

Рассчитываем значение на выходе CM1:

Прибавляем к значению N1 ключ К3.

СМ1 = N1 + K3 = 200749069410

Рассчитываем значение на выходе блока S:

Берем значение СМ1 и переводим его в двоичную форму 200749069410 = 0111 01111010011111100000100001102. С помощью таблицы подстановки S получаем S = 111100010111001100001110101110012 = 405084946510.

Сдвигаем значение S на 11 разрядов влево и получаем значение:

R = 255785767510

Рассчитываем xor`м значение CM2 = N2 + R.

N2 = 499085915

00011101101111110111001001011011 (N2)

+

  • 10011000011101011100111110001011 (R)
  • 10000101110010101011110111010000= 224465659210

Записываем значение N2 равное значению N1 = 200746304910

Записываем значение N1 равное значению CM2 = 224465659210

Шаг 4. (Зашифровка)

Рисунок 4.7 - Шаг 4. (Зашифровка)

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 

СКАЧАТЬ ОРИГИНАЛ
Блочные алгоритмы шифрования ГОСТ и DES