Тетерукова Н. А., Апанасевич С. А. Защита компьютерной информации лаб практикум



бет10/22
Дата10.01.2023
өлшемі1,61 Mb.
#60887
түріПрактическая работа
1   ...   6   7   8   9   10   11   12   13   ...   22
X = (x0, x1, …, xn 1) = x0 + 21 · x1 + … + 2n 1 · xn 1.
Таким образом, для ГОСТа принята так называемая «little-en- dian» нумерация разрядов, то есть внутри многоразрядных слов данных отдельные двоичные разряды и их группы с меньшими номерами являются менее значимыми. Об этом прямо говорится в пункте 1.3 стандарта: «При сложении и циклическом сдвиге дво- ичных векторов старшими разрядами считаются разряды нако- пителей с большими номерами». Далее, пункты стандарта 1.4,

      1. и другие предписывают начинать заполнение данными ре- гистров-накопителей виртуального шифрующего устройства с младших, то есть менее значимых разрядов. Точно такой же поря- док нумерации принят в микропроцессорной архитектуре Intel x86, именно поэтому при программной реализации шифра на данной архитектуре никаких дополнительных перестановок разрядов внутри слов данных не требуется.

Если над элементами данных выполняется некоторая опера- ция, имеющая логический смысл, то предполагается, что данная операция выполняется над соответствующими битами элемен- тов. Иными словами A • B = (a0 • b0, a1 • b1, …, an 1 • bn 1), где
n = |A| = |B|, а символом «•» обозначается произвольная бинар-

        • цикл выработки имитовставки (16-З).

В свою очередь, каждый из базовых циклов представляет со- бой многократное повторение одной единственной процедуры, на- зываемой основным шагом криптопреобразования.
В ГОСТе ключевая информация состоит из двух структур данных. Помимо собственно ключа, необходимого для всех шиф- ров, она содержит еще и таблицу замен. Ниже приведены основ- ные характеристики ключевых структур ГОСТа.
Ключ является массивом из восьми 32-битовых элементов кода, далее в настоящей работе он обозначается символом K: K = {Kj}, 0 ≤ j ≤ 7. В ГОСТе элементы ключа используются как 32-разрядные целые числа без знака: 0 ≤ Kj < 232. Таким образом, размер ключа составляет 32 · 8 = 256 бит или 32 байта.
Таблица замен является вектором, содержащим восемь узлов замены. Каждый узел замены, в свою очередь, является вектором, содержащим шестнадцать 4-битовых элементов замены, которые можно представить в виде целых чисел от 0 до 15, все элементы одного узла замены обязаны быть различными. Таким образом, таблица замен может быть представлена в виде матрицы размера 8 × 16 или 16 × 8, содержащей 4-битовые заменяющие значения. Для языков программирования, в которых двумерные массивы расположены в оперативной памяти по строкам, естественным яв- ляется первый вариант (8 × 16), его-то мы и возьмем за основу. То- гда узлы замены будут строками таблицы замен. В настоящей

ная логическая операция; как правило, имеется в виду операция
статье таблица замен обозначается символом H:
H  {H


i, j
0  i  7

,

}
0  j  15

0  Hi, j  15. Таким образом, общий объем таблицы замен равен: 8
узлов ∙ 16 элементов/узел · 4 бита/элемент = 512 бит = 64 байта.
Основной шаг криптопреобразования

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


Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   ...   22




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет