Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Описание алгоритма шифрования ГОСТ 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
Первое слово:
Второе слово:
Первое слово:
Второе слово:
Первое слово:
Второе слово:
Первое слово:
Второе слово:
Вторая итерация Первое слово N1: 4E 45 45 51 Второе слово N1: 51 4E 41 4C K2: 52 54 5F 53
Первое слово:
Второе слово:
Первое слово:
Второе слово:
Первое слово:
Второе слово:
Первое слово:
Второе слово:
Первое слово 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
Первое слово:
Второе слово:
Первое слово:
Второе слово:
Первое слово:
Второе слово:
Первое слово:
Второе слово:
Результат: первое слово 86 2D 4F C9 D6 0A 02 84; второе слово B9 1D A5 D7 71 2C 62 B5. Популярное:
|
Последнее изменение этой страницы: 2016-08-31; Просмотров: 661; Нарушение авторского права страницы