Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Описание алгоритма шифрования ГОСТ 28147-89



Шифрование (в режиме простой замены) заключается в многократном повторении основного шага алгоритма.

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

 

Рис. 1 Схема основного шага криптопреобразования алгоритма ГОСТ 28147-89

Шаг 0. Определяет исходные данные для основного шага криптопреобразования N – преобразуемый 64-битовый блок данных, в ходе выполнения шага его младшая (N2) и старшая (N1) части обрабатываются как отдельные 32-битовые целые числа без знака.

Таким образом, можно записать N=(N1, N2). Х = 32-битовый элемент ключа;

Шаг 1. Сложение с ключом. Старшая половина преобразуемого блока складывается по модулю 2 с используемым на шаге элементом ключа, результат передается на следующий шаг;

Шаг 2. Поблочная замена. 32-битовое значение, полученное на предыдущем шаге, интерпретируется как массив из восьми 4-битовых блоков кода: S-(S0, S1, S2, S3, S4, S5, S6, S7). Далее значение каждого из восьми блоков заменяется новым, которое выбирается по таблице замен следующим образом: значение бока Si меняется на Si-тый по порядку элемент (нумерация с нуля) i-того узла замен (т. Е. i-той строки таблиц замен, нумерация также с нуля). Другими словами, в качестве замены для значения блока выбирается элемент из таблицы замен с номером строки, равным номеру заменяемого блока, и номером столбца, равным значению заменяемого блока как 4-битового целого неотрицательного числа.

Шаг 3. Циклический сдвиг на 11 бит влево. Результат предыдущего шага сдвигается циклически на 11 бит в сторону старших разрядов и передается на следующий шаг. На схеме алгоритма символом R обозначена функция циклического сдвига своего аргумента на 11 бит влево, т. Е. в сторону старших разрядов.

Шаг 4. Побитовое сложение: значение, полученное на шаге 3, побитно складывается по модулю 2 с младше половиной преобразуемого блока.

Шаг 5. Сдвиг по цепочке; младшая часть преобразуемого блока сдвигается на место старшей и на ее место помещается результат выполнения предыдущего шага.

Шаг 6. Полученное значение преобразуемого блока возвращается как результат выполнения алгоритма основного шага криптопреобразования.

Основной шаг, как уже было написано выше, многократно повторяется. В режиме простой замены цикл кодирования можно представить в следующем виде:

К0, К1, К2, К3, К4, К5, К6, К7, К0, К1, К2, К3, К4, К5, К6, К7, К0, К1, К2, К3, К4, К5, К6, К7, К7, К6, К5, К4, К3, К2, К1, К0.

Где Кi – 32-битовый элемент ключа.

Таким образом, цикл кодирования состоит в повторении основного шага 32 раза с разными элементами ключа.

Цикл декодирования является обратным к циклу кодирования, то есть последовательное применение этих двух циклов к произвольному блоку должно дать в итоге исходный блок.

В режиме простой замены цикл кодировния можно представить в следующем виде:

К0, К1, К2, К3, К4, К5, К6, К7, К7, К6, К5, К4, К3, К2, К1, К0, К7, К6, К5, К4, К3, К2, К1, К0, К7, К6, К5, К4, К3, К2, К1, К0.

 


Рис. 2а Схема цикла зашифрования 32-3

Рис. 2б Схема цикла зашифрования 32-Р


Пример кодирования:

Входные данные:

ENGENEER (45 4E 47 45 4E 45 45 51 h);

INFERNAL (52 4E 46 45 51 4E 41 4C h).

Ключ:

DESERT_STORM (44 45 53 45 52 54 5F 53 54 4F 52 4D h).

Таблица замен

 

 

Таблица кодов ASCII

65 (41h) A 75 (4Bh) K 84 (55h) U
66 (42h) B 76 (4Ch) L 85 (56h) V
67 (43h) C 77 (4Dh) M 86 (57h) W
68 (44h) D 78 (4Eh) N 87 (58h) X
69 (45h) E 79 (4Fh) O 88 (59h) Y
70 (46h) F 80 (50h) P 89 (5Ah) Z
71 (47h) G 81 (51h) Q    
72 (48h) H 81 (52h) R 32 (20h) ‘ ‘
73 (49h) I 82 (53h) S 95 (5Fh) ‘_’
74 (4Ah) J 83 (54h) T    
  1. N1+K1 mod 2

Первое слово:

N1 0100 0101 0100 1110 0100 0111 0100 0101
K1 0100 0100 0100 0101 0101 0011 0100 0101
N1+K1 mod2 0000 0001 0000 1011 0001 0100 0000 0000

Второе слово:

N1 0101 0010 0100 1110 0100 0110 0100 0101
K1 0100 0100 0100 0101 0101 0011 0100 0101
N1+K1 mod2 0001 0110 0000 1011 0001 0101 0000 0000
  1. Замена по таблице

Первое слово:

Входное слово 0000 0001 0000 1011 0001 0100 0000 0000
Замена 1101 0111 1010 0100 1110 0001 1000 1110

Второе слово:

Входное слово 0001 0110 0000 1011 0001 0101 0000 0000
Замена 1000 1111 1010 0100 1110 1101 1000 1110
  1. Сдвиг на 11 разрядов

Первое слово:

Входное слово 1101 0111 1010 0100 1110 0001 1000 1110
Сдвиг 0010 0111 0000 1100 0111 0110 1011 1101

Второе слово:

Входное слово 1000 1111 1010 0100 1110 1101 1000 1110
Сдвиг 0010 0111 0110 1100 0011 1010 0011 1110
  1. S+N2 mod 2

Первое слово:

S 0010 0111 0000 1100 0111 0110 1011 1101
N2 0100 1110 0100 0101 0100 0101 0101 0001
S+N2 mod 2 0110 1001 0100 1001 0011 0011 1110 1100

Второе слово:

S 0010 0111 0110 1100 0011 1010 0011 1110
N2 0101 0001 0100 1110 0100 0001 0100 1100
S+N2 mod 2 0111 0110 0010 0010 0111 1011 0111 0010

Вторая итерация


Первое слово N1: 4E 45 45 51

Второе слово N1: 51 4E 41 4C

K2: 52 54 5F 53

 

 


  1. N1+K1 mod 2

Первое слово:

N1 0100 1110 0100 0101 0100 0101 0101 0001
K1 0101 0010 0101 0100 0101 1111 0101 0011
N1+K1 mod2 0001 1100 0001 0001 0001 1010 0000 0010

Второе слово:

N1 0101 0010 0100 1110 0100 0110 0100 0101
K1 0101 0010 0101 0100 0101 1111 0101 0011
N1+K1 mod2 0000 0000 0001 1010 0001 1001 0001 0110
  1. Замена по таблице

Первое слово:

Входное слово 0001 1100 0001 0001 0001 1010 0000 0010
Замена 1000 1010 1011 1101 1110 1100 1000 1111

Второе слово:

Входное слово 0000 0000 0001 1010 0001 1001 0001 0110
Замена 1101 0100 1011 1001 1110 0111 1111 1011
  1. Сдвиг на 11 разрядов

Первое слово:

Входное слово 1000 1010 1011 1101 1110 1100 1000 1111
Сдвиг 1110 1111 0110 0100 0111 1100 0010 0101

Второе слово:

Входное слово 1101 0100 1011 1001 1110 0111 1111 1011
Сдвиг 1100 1111 0011 1111 1101 1110 1010 0101

 

  1. S+N2 mod 2

Первое слово:

S 1110 1111 0110 0100 0111 1100 0010 0101
N2 0110 1001 0100 1001 0011 0011 1110 1100
S+N2 mod 2 1000 0110 0010 1101 0100 1111 1100 1001

Второе слово:

S 1100 1111 0011 1111 1101 1110 1010 0101
N2 0111 0110 0010 0010 0111 1011 0111 0010
S+N2 mod 2 1011 1001 0001 1101 1010 0101 1101 0111
  1. Третья итерация

Первое слово N1: 69 49 33 EC

N2: 86 2D 4F C9

Второе слово N1: 76 22 7B 72

N2: B9 1D A5 D7


K3: 54 4F 52 4D

  1. N1+K1 mod 2

Первое слово:

N1 0110 1001 0100 1001 0011 0011 1110 1100
K1 0101 0100 0100 1111 0101 0010 0100 1101
N1+K1 mod2 0011 1101 0000 0110 0110 0001 1010 0001

Второе слово:

N1 0111 0110 0010 0010 0111 1011 0111 0010
K1 0101 0100 0100 1111 0101 0010 0100 1101
N1+K1 mod2 0010 0010 0110 1101 0010 1001 0011 1111
  1. Замена по таблице

Первое слово:

Входное слово 0011 1101 0000 0110 0110 0001 1010 0001
Замена 1010 1001 1010 1100 0000 0100 1110 1001

Второе слово:

Входное слово 0010 0010 0110 1101 0010 1001 0011 1111
Замена 0101 1000 0011 0001 1100 0111 0110 0010
  1. Сдвиг на 11 разрядов

Первое слово:

Входное слово 1010 1001 1010 1100 0000 0100 1110 1001
Сдвиг 0110 0000 0010 0111 0100 1101 0100 1101

Второе слово:

Входное слово 0101 1000 0011 0001 1100 0111 0110 0010
Сдвиг 1000 1110 0011 1011 0001 0010 1100 0001
  1. S+N2 mod 2

Первое слово:

S 0110 0000 0010 0111 0100 1101 0100 1101
N2 1000 0110 0010 1101 0100 1111 1100 1001
S+N2 mod 2 1110 0110 0000 1010 0000 0010 1000 0100

Второе слово:

S 0101 1000 0011 0001 1100 0111 0110 0010
N2 1011 1001 0001 1101 1010 0101 1101 0111
S+N2 mod 2 1110 0001 0010 1100 0110 0010 1011 0101

Результат: первое слово 86 2D 4F C9 D6 0A 02 84;

второе слово B9 1D A5 D7 71 2C 62 B5.


Поделиться:



Популярное:

  1. II. Путивль. – Иностранцы в России. – Отношение к ним русских. – Сербский митрополит. – Посещение патриарха воеводой. – Описание города Путивля, крепости и церкви.
  2. III. Описание Уровней Программы
  3. А.5.2 Краткое описание программного обеспечения анализатора
  4. Автоматизация ресторанов, гостиниц, кинокомплексов, баров, культурно-оздоровительных, бильярдных и боулинг центров на базе системы R-Keeper
  5. АДАПТАЦИЯ И ОПИСАНИЕ ИСПОЛЬЗУЕМЫХ АЛГОРИТМОВ
  6. Анализ конкурентных преимуществ и недостатков гостиничного комплекса «Старая Россия»
  7. Анализ организации управления персоналом в ЗАО «Гостиница «Волга».
  8. Библиографическое описание документов, представленных в списке использованных источников к работе
  9. Библиографическое описание источников информации
  10. Библиографическое описание как форма свертывания информации
  11. Библиографическое описание книги, изданной под заглавием
  12. Библиографическое описание монографий, учебников или учебных пособий без указания авторов.


Последнее изменение этой страницы: 2016-08-31; Просмотров: 661; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.027 с.)
Главная | Случайная страница | Обратная связь