admin / 30.01.2018

Алгоритм гост 28147 89

.

Режим гаммирования с обратной связью.

Зашифрование открытых данных в режиме гаммирования с обратной связью. Криптосхема, реализующая алгоритм зашифрования в режиме гаммирования с обратной связью, имеет вид, показанный на рис. 26.

 

Открытые данные, разбитые на 64-разрядные блоки Т0(1), Т0(2), …, Т0(m), зашифровываются в режиме гаммирования с обратной связью путем поразрядного сложения по модулю 2 с гаммой шифра Гш, которая вырабатывается блоками по 64 бита:

Гш = (Гш(1), Гш(2), …, Гш(m)).

 

Число двоичных разрядов в блоке Т0(m) может быть меньше 64, при этом неиспользованная для шифрования часть гаммы шифра из блока Гш(m) отбрасывается.

Уравнения зашифрования в режиме гаммирования с обратной связью имеют вид:

 

Тш(1) = А ( ) Å Т0(1) = Гш(1) Å Т0(1),

 

Тш(i) = A (Тш(i–1)) Å Т0(i) = Гш(i) Å Т0(i), i {2,…,m}.

 

 

Рис. 26. Схема реализации режима гаммирования с обратной связью

 

Здесь Тш(i) – i-й 64-разрядный блок зашифрованного текста; А(·) – функция зашифрования в режиме простой замены; m – определяется объемом открытых данных.

Аргументом функции А (·) на первом шаге итеративного алгоритма является 64-разрядная синхропосылка , а на всех последующих шагах – предыдущий блок зашифрованных данных Тш(i–1).

Процедура зашифрования данных в режиме гаммирования с обратной связью реализуется следующим образом.

Алгоритм шифрования данных ГОСТ 28147-89

В КЗУ вводятся 256 бит ключа. В накопители N1 и N2 вводится синхро-посылка = (S1, S2, …, S64) из 64 бит. Исходное заполнение накопителей N1 и N2 зашифровывается в режиме простой замены. Полученное в результате зашифрования заполнение накопителей N1 и N2 образует первый 64-разрядный блок гаммы шифра Гш(1)=A( ), который суммируется поразрядно по модулю 2 в сумматоре СМ5 с первым 64-разрядным блоком открытых данных

Т0(1) = (t1(1), t2(1),…, t64(1)).

В результате получают первый 64-разрядный блок зашифрованных данных

ТШ(1) = ГШ(1) Å Т0(1),

где ТШ(1) = (t1(1), t2(1), …, t64(1)).

Блок зашифрованных данных ТШ(1) одновременно является также исходным состоянием накопителей N1, N2 для выработки второго блока гаммы шифра ГШ(2), и поэтому по обратной связи ТШ(1) записывается в указанные накопители N1 и N2.

 

Заполнение накопителя N1

(t32(1), t31(1), …, t2(1), t1(1)).

32, 31, …, 2, 1 номер разряда N1

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

(t64(1), t63(1), …, t34(1), t33(1)).

32, 31, …, 2, 1 номер разряда N2

Заполнение накопителей N1 и N2 зашифровывается в режиме простой замены.
Полученное в результате зашифрования заполнение накопителей N1 и N2 образует второй 64-разрядный блок гаммы шифра ГШ(2), который суммируется поразрядно по модулю 2 в сумматоре СМ5 со вторым блоком открытых данных Т0(2):

ГШ(2) Å Т0(2) = ТШ(2).

Выработка последующих блоков гаммы шифра ГШ(i) и зашифрование соответствующих блоков открытых данных Т0(i) (i {3…m}) производится аналогично.

Если длина последнего m-го блока открытых данных Т0(m) меньше 64 разрядов, то из ГШ(m) используется только соответствующее число разрядов гаммы шифра, остальные разряды отбрасываются.

В канал связи или память ЭВМ передаются синхропосылка и блоки зашифрованных данных ТШ(1), ТШ(2), …, ТШ(m).

Расшифрование в режиме гаммирования с обратной связью.При расшифровании криптосхема имеет тот же вид, что и при зашифровании.

Уравнения расшифрования:

Т0(1) = А( ) Å Тш(1) = Гш(1) Å Тш(1),

Т0(i) = Гш(i) Å Тш(i) = A (Тш(i–1) ) Å Тш(i), i {2…m}.

Реализация процедуры расшифрования зашифрованных данных в режиме гаммирования с обратной связью происходит следующим образом. В КЗУ вводят 256 бит того же ключа, на котором осуществлялось зашифрование открытых блоков Т0(1), Т0(2), …, Т0(m). В накопители N1 и N2 вводится синхропосылка . Исходное заполнение накопителей N1 и N2 (синхропосылка ) зашифровывается в режиме простой замены. Полученное в результате зашифрования заполнение N1 и N2 образует первый блок гаммы шифра

ГШ(1) = А( ),

который суммируется поразрядно по модулю 2 в сумматоре СМ5 с блоком зашифрованных данных ТШ(1).

В результате получается первый блок открытых данных

Т0(1) = Гш(1) Å Тш(1).

Блок зашифрованных данных Тш(1) является исходным заполнением накопителей N1 и N2 для выработки второго блока гаммы шифра ГШ(2): ГШ(2) = А(ТШ(1)). Полученное заполнение накопителей N1 и N2 зашифровывается в режиме простой замены. Образованный в результате зашифрования блок ГШ(2) суммируется поразрядно по модулю 2 в сумматоре СМ5 со вторым блоком зашифрованных данных ТШ(2). В результате получают второй блок открытых данных. Аналогично в N1, N2 последовательно записывают блоки зашифрованных данных ТШ(2), ТШ(3), …, ТШ(m), из которых в режиме простой замены вырабатываются блоки гаммы шифра ГШ(3), ГШ(4), …, ГШ(m).

Блоки гаммы шифра суммируются поразрядно по модулю 2 в сумматоре СМ5
с блоками зашифрованных данных ТШ(3)Ш(4), …, ТШ(m).

В результате получают блоки открытых данных

Т0(3), Т0(4), …, Т0(m),

при этом последний блок открытых данных Т0(m) может содержать меньше 64 разрядов.


8.06.2005 |Главная > Алгоритмы > Алгоритм шифрования данных ГОСТ 28147-89


Комментариев к статье: 774 шт.

Алгоритм шифрования данных ГОСТ 28147-89

Здесь описан довольно известный алгоритм криптографического преобразования (шифрования) информации ГОСТ 28147-89. Цель этой статьи — описать алгоритм, избавив читающего от огромного количества "воды", встречающейся в других статьях об этом алгоритме. Я постараюсь полностью описать алгоритм без лишних слов — только суть.

Итак, алгоритм этот симметричный, т.е. ключ зашифровки совпадает с ключом расшифровки. Длина ключа 256 бит, что обеспечивает очень большую криптостойкость алгоритма. По скорости алгоритм примерно равен скорости подобных алгоритмов (по крайней мере имеет тот же порядок) или немного быстрее их. ГОСТ 28147-89 относится к блочным шифрам.

Ключи

Ключом в данном алгоритме служит массив из восьми 32-битных чисел.

Таким образом, длина ключа составляет 256 бит. Ключ можно представить как таблицу в которой 8 строк и 32 столбца. Такая конфигурация ключа необходима для работы алгоритма, что будет видно далее.

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

Таблица замен — это долговременный ключевой элемент, который не изменяется в системе шифрования. Т.е. если вы пишете программу, которая реализует ГОСТ 28147-89, то таблица замен у всех пользователей может быть одинаковой и это не приведет к снижению криптостойкости алгоритма.

Таблица замен состоит из 8 строк и 16 столбцов, в каждой ячейке таблицы хранится 4-битное число. Строки таблицы замен называют узлами замен и на них накладывается ограничение, несоблюдение которого не влечет за собой неработоспособность алгоритма, но значительно снижает криптостойкость. Ограничение следующее: все числа в пределах одной строки (одного узла) таблицы замен должны быть различными. Т.е. в каждой строке таблицы замен не должно быть повторяющихся чисел. Т.о. каждая строка таблицы замен содержит произвольную перестановку чисел от 0 до 15.

Построение алгоритма

Алгоритм как бы состоит из трех уровней. Основной шаг криптопреобразования — самый нижний уровень, на его основе строятся все более высокие части алгоритма. Отталкиваясь от основных шагов строятся базовые циклы: цикл зашифрования (32-З), цикл расшифрования (32-Р) и цикл выработки имитовставки (16-З). На самой верхней ступени стоят собственно реальные алгоритмы или циклы (на самом деле стандарт ГОСТ 28147-89 содержит не один, а несколько алгоритмов шифрования), которые строятся на основе базовых циклов.

Данные с которыми работает алгоритм представляются как 32-битовые беззнаковые числа. Перед тем, как предоставить алгоритму данные, их необходимо преобразовать в 32-битные числа. Здесь может возникнуть проблема с тем, что данных не хватит, чтобы заполнить последнее 32-битное число и последний блок данных будет неполным, но эта проблема легко решается с помощью гаммирования. Реальные алгоритмы шифрования и сфера их применения будут рассмотрены далее в этой статье.

Также хотелось бы разъяснить, что же такое имитовставка. Это что-то вроде контрольной суммы, которая прилагается к массиву данных и призвана подтвердить подлинность данных. Злоумышленник, не зная пароля не сможет получить правильную имитовставку, а получатель, зная верный пароль и получив при расшифровке имитовставки неверный результат сразу обнаружит подмену данных.

Основной шаг криптопреобразования

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

  1. S = N1 + X (mod 232).
  2. Число S разбивается на 8 частей: S0,S1,S2,S3, S4,S5,S6,S7 по 4 бита каждая, где S0 — младшая, а S7 — старшая части числа S.
  3. Для всех i от 0 до 7: Si = T(i, Si), где T(a, b) означает ячейку таблицы замен с номером строки a и номером столбца b (счет с нуля).
  4. Новое число S, полученное на предыдущем шаге циклически сдвигается в сторону старших разрядов на 11 бит.
  5. S = S xor N2, где xor — операция исключающего или.
  6. N2 = N1.
  7. N1 = S.

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

Базовые циклы

Базовые циклы ГОСТ 28147-89 строятся из основных шагов криптопреобразования путем многократного их повторения с различными элементами ключа. Блок данных, с которым работает базовый цикл поступает на его вход один раз в начале работы, а результатом базового цикла является преобразованный блок данных. Как и в основном шаге 64-битный блок данных обозначим через N = (N1, N2), а элементы ключа через X с индексом, означающим номер элемента в ключевом массиве.

Итак, берем блок данных 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.
  • Для цикла выработки имитовставки (16-З): X0,X1,X2,X3, X4,X5,X6,X7,X0,X1,X2, X3,X4,X5,X6,X7.

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

Основные режимы шифрования

ГОСТ 28147-89 определяет три основных режима шифрования: простая замена, гаммирование и гаммирование с обратной связью и один дополнительный режим выработки имитовставки. Данные обрабатываются блоками по 64 бита, на которые разбивается массив, последний блок может быть неполным. В двух последних режимах имеется возможность обрабатывать неполный блок данных, в первом длина данных должна быть кратна 64-м битам.

Простая замена

Смысл шифрования простой заменой следующий. Для каждого блока данных производится однократный вызов базового цикла. При зашифровке используется цикл зашифрования, при расшифровке — цикл расшифрования. После того, как блок был преобразован базовым циклом результат цикла заменяет исходный блок данных. Т.о. данные шифруются блоками по 64-бита и исходный текст постепенно заменяется шифрованным текстом начиная от начала массива данных к концу массива данных.

При шифровании простой заменой массива данных возникает вопрос о том, чем заполнять последний неполный блок данных?

Также, длина шифрованных данных в этом случае становится больше длины исходных данных, что не всегда удобно. Данный режим предписано использовать для шифрования ключевых данных (ключей).

Гаммирование

Суть гаммирования состоит в том, чтобы не шифровать сами данные, а шифровать некоторые случайные или псевдослучайные числа, вырабатываемые специальным программным или аппаратным генератором и накладывать получившуюся гамму на массив данных с помощью операции исключающего или.

2.2. Стандарт шифрования гост 28147-89

При этом операция зашифрования ничем не отличается от операции расшифрования, т.к. наложение той же гаммы на массив данных два раза подряд дает исходный массив данных без искажений.

Для выработки случайных 64-битных чисел в ГОСТ 28147-89 определен специальный математический генератор, который будет рассмотрен чудь позже. Т.о. шифрование и расшифровка данных в режиме гаммирования производится путем наложения зашифрованных псевдослучайных чисел.

У этого и следующего режимов есть интересная особенность: т.к.

генератор псевдослучайных чисел необходимо инициализировать начальным 64-битным значением, в качестве которого очень часто используется текущее время зашифровки, то в разное время при шифровании одного и того же массива данных под один и тот же пароль можно получить разные шифртексты! При этом значение, которым был проинициализирован генератор посылается получателю вместе с массивом зашифрованных данных и называется синхропосылкой или начальным заполнителем по терминологии ГОСТа.

Замечу, что ГОСТ 28147-89 определяет в качестве синхропосылки или начального заполнителя не само число, полученное из какого-либо источника (например, текущее время), а результат зашифровки этого числа по алгоритму зашифрования. Т.о. используя текущее время или что-то иное в качестве начального заполнителя необходимо это число предварительно зашифровать, а затем уже инициализировать им генератор.

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

Рекуррентный генератор последовательности чисел (РГПЧ)

Это и есть тот самый генератор чисел, который используется при шифровании гаммированием. На каждом шаге он выдает 64-битное число, которое по сути состоит из двух 32-битных чисел, которые генерируются по-отдельности. Фактически существуют два РГПЧ для старшей и младшей частей.

Числа, которые выдает РГПЧ обозначим через Q = (A, B), где A — младшая, а B — старшая части числа. Индекс числа Q обозначает номер шага на котором числа получены, так индекс i — 1 означает предыдущий шаг. Q0 — синхропосылка или начальный заполнитель. Выработка происходит следующим образом:

  • Ai = Ai — 1 + C1 (mod 232), где C1 = 101010116.
  • Bi = Bi — 1 + C2 (mod 232 — 1), где C2 = 101010416.
  • Если Bi = 0, то Bi = 232 — 1.

Число B не может получиться нулевым. Константы C1 и C2 даны в шестнадцатеричной системе счисления.

Гаммирование с обратной связью

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

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

Выработка имитовставки

Имитовставка – это контрольная комбинация, зависящая от открытых данных и секретной ключевой информации. Целью использования имитовставки является обнаружение всех случайных или преднамеренных изменений в массиве данных. Для потенциального злоумышленника две следующие задачи практически неразрешимы, если он не владеет ключевой информацией: вычисление имитовставки для заданного открытого массива данных; подбор открытых данных под заданную имитовставку. Алгоритм выработки имитовставки:

  • S = 0.
  • Для каждого 64-битного блока данных из массива данных: S = F(S xor Ti), где Ti — блок данных, F — базовый цикл выработки имитовставки (16-З), xor — операция исключающего или.
  • S — полученная имитовставка.

В качестве имитовставки можно использовать лишь часть полученного числа S, но следует помнить, что вероятность успешного навязывания ложных данных равна величине 2-L, где L — длина используемой части числа в битах. Обычно используются младшие 32 бита числа S.

Заключение

В шифре ГОСТ 28147-89 используется 256-битовый ключ и объем ключевого пространства составляет 2256. Ни на одном из существующих в настоящее время или предполагаемых к реализации в недалеком будущем компьютере общего применения нельзя подобрать ключ за время, меньшее многих сотен лет. Российский стандарт ГОСТ 28147-89 проектировался с большим запасом и по стойкости на много порядков превосходит американский стандарт DES с его реальным размером ключа в 56 бит и объемом ключевого пространства всего 256.

Ключ должен являться массивом статистически независимых битов, принимающих с равной вероятностью значения 0 и 1. При этом некоторые конкретные значения ключа могут оказаться «слабыми», то есть шифр может не обеспечивать заданный уровень стойкости в случае их использования. Однако, предположительно, доля таких значений в общей массе всех возможных ключей ничтожно мала. Поэтому ключи, выработанные с помощью некоторого датчика истинно случайных чисел, будут качественными с вероятностью, отличающейся от единицы на ничтожно малую величину.

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

Комментариев к статье: 774 шт.


(С) Copyright 2005-2016. На данном сайте содержится авторский материал, принадлежащий Двуреченскому Павлу. Перепечатка данного материала возможна только со ссылкой на www.paveldvlip.ru и указанием имени автора.

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

 

Для шифрования в данном режиме используется цикл «32-З»: трижды выбираются элементы ключа с 1-го по последний и 1 раз – с последнего по 1-й.

 

Ключевые данные:

Ключ:

1.00101011101010100001101111011010

2.01111101001100011110000101010001

3.10100110011100011001110010101101

4.00010011100111011110001100111100

5.00110101010011110011100111000010

6.11111001000111011010000011101000

7.00010011101101111000000110101011

8.11000011000100000110101000101110

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

Алгоритм режима простой замены рассмотрим на примере шифрования данной таблицы замен.

 

1.Вычисляем модуль 232 = 4294967296, вводим его в память калькулятора.

2.1-й 32-битовый блок таблицы складываем с 1-м элементом ключа по полученному модулю:

0100 1010 1001 0010 1101 1000 0000 1110 + 00101011101010100001101111011010=

+11101100011110011110011111010002=198370608810

1983706088 mod 4294967296=198370608810=11101100011110011110011111010002

3.Результат делим на 4-битовые блоки, начиная с конца:

111 0110 0011 1100 1111 0011 1110 1000

4.Каждый из полученных блоков заменим на значение ячейки таблицы замен из строки с номером, равным номеру 4-битового блока, и столбца с номером, равным значению 4-битового блока (счёт с 0).

Первый блок 111 заменяем на значение из 7-го столбца 1-й строки, второй блок 0110 – на значение из 6-го столбца 2-й строки, …, последний блок 1000 заменяем на значение из 8-го столбца 8-й строки:

1110 1111 1101 1011 0010 0000 0010 1001

5.Полученное значение сдвинем циклически влево на 11 знаков:

11101111110½11011001000000010

11011001000000010½11101111110

6.Результат сдвига сложим по модулю 2 со 2-й частью входного блока:

1101100100000001011101111110 Å 01101011000111000111111101010011=

=1100110100011000110100000101101

7.Полученную часть ставим во входной блок на второе место, а вторую часть – на первое:

01101011000111000111111101010011¨1100110100011000110100000101101

Над полученной первой частью блока производим те же действия, но используем 2-й 32-битовый элемент ключа.

И т. д.

 

Режим гаммирования

Текст:

В начале научной карьеры Эйнштейна один журналист спросил госпожу Эйнштейн, что она думает о своем муже. — Мой муж гений! — сказала госпожа Эйнштейн. — Он умеет делать абсолютно все, кроме денег.

11000010 00100000 11101101 11100000¨11110111 11100000 11101011 11100101¨ 00100000 11101101 11100000 11110011¨11110111 11101101 11101110 11101001¨ 00100000 11101010 11100000 11110000¨11111100 11100101 11110000 11111011¨ 00100000 11011101 11101001 11101101¨11111000 11110010 11100101 11101001¨ 11101101 11100000 00100000 11101110¨11100100 11101000 11101101 00100000¨ 11100110 11110011 11110000 11101101¨11100000 11101011 11101000 11110001¨ 11110010 00100000 11110001 11101111¨11110000 11101110 11110001 11101000¨ 11101011 00100000 11100011 11101110¨11110001 11101111 11101110 11100110¨ 11110011 00100000 11011101 11101001¨11101101 11111000 11110010 11100101¨ 11101001 11101101 00101100 00100000¨11110111 11110010 11101110 00100000¨ 11101110 11101101 11100000 00100000¨11100100 11110011 11101100 11100000¨ 11100101 11110010 00100000 11101110¨00100000 11110001 11100010 11101110¨ 11100101 11101100 00100000 11101100¨11110011 11100110 11100101 00101110¨ 00100000 00101101 00100000 11001100¨11101110 11101001 00100000 11101100¨ 11110011 11100110 00100000 00100000¨11100011 11100101 11101101 11101000¨ 11101001 00100001 00100000 00101101¨00100000 11110001 11101010 11100000¨ 11100111 11100000 11101011 11100000¨00100000 00100000 11100011 11101110¨ 11110001 11101111 11101110 11100110¨11100000 00100000 00100000 11011101¨ 11101001 11101101 11111000 11110010¨11100101 11101001 11101101 00101110¨ 00100000 00101101 00100000 11001110¨11101101 00100000 00100000 11110011¨ 11101100 11100101 11100101 11110010¨00100000 11100100 11100101 11101011¨ 11100000 11110010 11111100 00100000¨11100000 11100001 11110001 11101110¨ 11101011 11111110 11110010 11101101¨11101110 00100000 11100010 11110001¨ 11100101 00101100 00100000 11101010¨11110000 11101110 11101100 11100101¨ 00100000 11100100 11100101 11101101¨11100101 11100011 00101110 ¨

При работе ГОСТ 28147-89 в режиме гаммирования описанным ниже образом формируется криптографическая гамма, которая затем побитно складывается по модулю 2 с исходным открытым текстом для получения шифротекста.

Шифрование в режиме гаммирования лишено недостатков, присущих режиму простой замены.[2] Так, даже идентичные блоки исходного текста дают разный шифротекст, а для текстов с длиной, не кратной 64 бит, "лишние" биты гаммы отбрасываются.

Кроме того, гамма может быть выработана заранее, что соответствует работе шифра в поточном режиме.

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

1. Синхропосылка шифруется с использованием описанного алгоритма простой замены, полученные значения записываются во вспомогательные 32-разрядные регистры N3 и N4 — младшие и старшие биты соответственно.

2. К N3 и N4 прибавляются константы соответственно C2 = 101010116 и C1 = 101010416

3.

ГОСТ 28147-89

N3 и N4 переписываются соответственно в N1 и N2, которые затем шифруются с использованием алгоритма простой замены. Полученный результат является 64 битами гаммы.

4. Шаги 2-4 повторяются в соответствии с длиной шифруемого текста.

Генерирование гаммы:

Используем в качестве синхропосылки 64-разрядное двоичное число: 10010011100110100111101110001101¨00000110101001111000110100011111.

1. Зашифруем синхропосылку по алгоритму простой замены

1) 10010011100110100111101110001101+00101011101010100001101111011010= =10111111010001001001011101100111

2) 10111111010001001001011101100111mod 232=10111111010001001001011101100111

3) 1011 1111 0100 0100 1001 0111 0110 0111 заменяем по таблице:

(1,11) (2,15) (3,4) (4,4) (5,9) (6, 7) (7,6) (8,7)

1100 1001 1010 0000 1010 1101 0101 0100

4) 11001001101½000001010110101010100 сдвигаем на 11 знаков влево: 00000101011010101010011001001101.

5) Сложим по модулю 2 со 2-й частью синхропосылки: 00000101011010101010011001001101Å00000110101001111000110100011111=

=00000011110011010010101101010010

6) Результат меняем местами со 2-й частью: 00000110101001111000110100011111¨00000011110011010010101101010010

7) Повторяем для 1-й части со 2-м элементом ключа:

00000110101001111000110100011111+01111101001100011110000101010001=

10000011110110010110111001110000;

10000011110110010110111001110000 mod 232=10000011110110010110111001110000;

1000 0011 1101 1001 0110 1110 0111 0000

(1,8) (2,3) (3,13) (4,9) (5,6) (6,14) (7,7) (8,0)

0110 1100 0000 0100 1101 1111 1001 0001;

11 знаков01101100000½001001101111110010001 00100110111111001000101101100000;

00100110111111001000101101100000Å00000011110011010010111101001010=

00100101001100011010010000101010.

Результат шифрования синхропосылки дает первый элемент гаммы:

У1=00100101001100011010010000101010¨00000011110011010010111101001010.

Младшие биты полученного результата (2-я часть) запишем в регистр N3, старшие – в регистр N4

N1  
N2  
N3
N4
  1. К содержимому регистра N3 прибавим C2=101010116, к содержимому N4 – C1=101010416: 000000111100110100101111010010102=3CD2B5216;3CD2F4A+1010101=4CE2C5316=1001100111000101100010100112;

001001010011000110100100001010102=2531A42A16;

2531A42A+1010104=2632A52E16=1001100011001010100101001011102.

  1. Результаты запишем в регистры N1 и N2:
  1. Содержимое регистровN1 и N2 зашифруем с помощью простой замены, используя 3-й элемент ключа :

(00000100110011100010110001010011+10100110011100011001110010101101) mod232= =1010 1011 0011 1111 1100 1001 0000 0000

(1,10) (2,11) (3,3) (4,15) (5,12) (6,9) (7,0) (8,0)

0001 0001 1101 0011 0000 0110 1101 0001;

11 знаков00010001110½100110000011011010001

10011000001101101000100010001110; 10011000001101101000100010001110Å00100110001100101010010100101110=

10111110000001000010110110100000.

Меняем местами N1 и N2:

00100110001100101010010100101110¨10111110000001000010110110100000.

Шифруем 1-ю часть, используя 4-й элемент ключа:

(00100110001100101010010100101110+00010011100111011110001100111100) mod232=

=0011 1001 1101 0000 1000 1000 0110 1010;

(1,2) (2,9) (3,13) (4,0) (5,8) (6,8) (7,6) (8,10)

1001 0011 0000 0111 0100 0011 0101 0011;

11 знаков10010011000½001110100001101010011

00111010000110101001110010011000;

00111010000110101001110010011000Å10111110000001000010110110100000=

=10000100000111101011000100111000.

Результат: У2=10000100000111101011000100111000¨10111110000001000010110110100000.

Записываем 2-ю часть в регистр N3, 1-ю часть – в N4:

N1  
N2  
N3
N4

Процесс повторяют, начиная со 2-го шага, до тех пор, пока не будет сгенерирована вся гамма. Полученную гамму складывают по модулю 2 с 64-битными блоками открытого текста:

11000010 00100000111011011110000011110111111000001110101111100101Å

Å 0010010100110001101001000010101000000011110011010010111101001010=

=11100111000100010100100111001010111101000010110111000100101011112 = =E71149CAF42DC4AF16;

0010000011101101111000001111001111110111111011011110111011101001Å

Å 1000010000011110101100010011100010111110000001000010110110100000= =10100100111100110101000111001011010010011110100111000011010010012= =A4F351CB49E9C34916.

Шифрограмма: E71149CAF42DC4AF A4F351CB49E9C349 …………


Дата добавления: 2015-01-05; просмотров: 20; Нарушение авторских прав


Алгоритм криптографического преобразования данных ГОСТ 28147-89

.

ГОСТ 24.211-82 Требования к содержанию документа «Описание алгоритма»

ГОСТ 24.211-82 Требования к содержанию документа «Описание алгоритма»

УДК 65.011.56:002:006.354

Группа Т52

 

Г О С У Д А Р С Т В Е Н Н Ы Й   С Т А Н Д А Р Т   С О Ю З А   С С Р


Система технической документации на АСУ

ГОСТ 24.211-82*

   

ТРЕБОВАНИЯ К СОДЕРЖАНИЮ ДОКУМЕНТА «ОПИСАНИЕ АЛГОРИТМА»

 
   
System of technical documentation for computer control systems. Requirements for contents of the document «Description of the algorithm»  

Постановлением Государственного комитета СССР по стандартам от 25 января 1982 г. № 228 срок введения установлен

с 01.01 1983 г.

Настоящий стандарт распространяется на техническую документацию на автоматизированные системы управления (АСУ) всех видов, разрабатываемые для всех уровней управления (кроме общегосударственного), и устанавливает требования к содержанию документа «Описание алгоритма», входящего в соответствии с ГОСТ 24.101-80 в состав документации математического обеспечения АСУ.

1. ОБЩИЕ ПОЛОЖЕНИЯ

1.1. Документ «Описание алгоритма» предназначен для описания последовательности действий и логики решения задачи (комплекса задач) в АСУ.

1.2. Документ разрабатывают на алгоритм вычисления для задачи (комплекса задач) или автоматизированной функции в целом. Допускается дополнительно разрабатывать (заимствовать) документы на отдельные части алгоритма, при этом в документе на алгоритм в целом описывают только взаимодействие этих частей.

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

1.4. Отсутствие проектных решений по разделу документа «Описание алгоритма» (кроме допускаемых настоящим стандартом) фиксируют в том же разделе с необходимыми пояснениями.

1.5. Содержание документа «Описание алгоритма» в совокупности с документами по информационному и техническому обеспечениям должно быть достаточным для программирования или применения типовых программных решении.

2. ТРЕБОВАНИЯ К СОДЕРЖАНИЮ ДОКУМЕНТОВ

2.1. Документ должен содержать следующие разделы:

  • назначение и характеристика;
  • используемая информация;
  • результаты решения;
  • математическое описание;
  • алгоритм решения;
  • требования к контрольному примеру.

Примечания:

  • 1. При включении документа «Описание алгоритма» в виде раздела в документ «Описание постановки задачи» разделы документа следует представлять в виде подразделов.
  • 2. Разделы «Назначение и характеристика», «Используемая информация» и «Результаты решения» допускается не включать. При этом соответствующие разделы документа «Описание постановки задачи» следует дополнять недостающими данными из исключенных разделов.

(Измененная редакция, Изм. № 1).

2.2. В разделе «Назначение и характеристика» следует приводить:

  • назначение алгоритма (его части);
  • обозначение документа (документов) «Описание постановки задачи», для решения которой он предназначен;
  • обозначение документа «Описание алгоритма», с которым связан данный алгоритм (при необходимости);
  • краткие сведения о процессе (объекте), при управлении которым используют алгоритм.
    Примечание. При включении документа в виде раздела в документ «Описание постановки задачи» этих сведений не приводят;
  • ограничения на возможность и условия применения алгоритма и характеристики качества решения (точность, время решения и т.д.);
  • общие требования к входным и выходным данным (форматам, кодам и т.д.), обеспечивающие информационную совместимость решаемых задач в системе.

2.3. В разделе «Используемая информация» следует приводить перечень массивов информации и (или) перечень сигналов, используемых при реализации алгоритма, в том числе:

  • массивов информации, сформированных из входных сообщений (документов плановой, учетной и нормативно-справочной информации, сигналов и т.д.);
  • массивов информации, формируемой данным и другими алгоритмами и сохраняемой для реализации данного алгоритма.

По каждому массиву приводят:

  • наименование, обозначение и максимальное число записей в нем;
  • перечень наименований и обозначений, используемых (или неиспользуемых) реквизитов и (или) входных переменных (для АСУ ТП).

Примечания:

  • 1. Перечень используемых в алгоритме реквизитов приводят и случае, если для данного массива в проектную документацию не включен документ «Описание массива информации« или число используемых реквизитов из документа «Описание массива информации» меньше числа неиспользуемых реквизитов.
  • 2. Перечень неиспользуемых реквизитов приводят в случае, если число используемых реквизитов из документа «Описание массива информации» больше числа неиспользуемых реквизитов.

2.4. В разделе «Результаты решения» следует приводить перечень массивов информации и (или) перечень сигналов, формируемых в результате реализации алгоритма, в том числе:

  • массивов информации и (или) сигналов, формируемых для выдачи выходных сообщений (документов, видеограмм, сигналов управления и т.д.);
  • массивов информации, сохраняемой для решения данной и других задач АСУ.

По каждому массиву приводят:

  • наименование, обозначение, максимальное число записей;
  • перечень наименований и обозначений реквизитов и (или) для АСУ ТП выходных переменных, используемых для формирования выходных сообщений.

2.5. В разделе «Математическое описание» следует приводить:

  • математическую модель или экономико-математическое описание процесса (объекта);
  • перечень принятых допущений и оценки соответствия принятой модели реальному процессу (объекту) в различных режимах и условиях работы (например, для АСУ ТП — стационарные режимы, режимы пуска и остановки агрегатов, аварийные ситуации и т.д.);
  • сведения о результатах научно-исследовательских работ, если они использованы для разработки алгоритма.

2.6. В разделе «Алгоритм решения» следует приводить:

  • описание логики алгоритма и способа формирования результатов решения с указанием последовательности этапов счета, расчетных и (или) логических формул, используемых в алгоритме;
  • указания о точности вычисления (при необходимости);
  • соотношения, необходимые для контроля достоверности вычислений;
  • описание связей между частями и операциями алгоритма;
  • указания о порядке расположения значений или строк в выходных документах (например, по возрастанию значении кодов объектов, по группам объектов и т.д.).

2.6.1. Алгоритмом должны быть предусмотрены все ситуации, которые могут возникнуть в процессе решения задачи.

2.6.2. При изложении алгоритма следует использовать условные обозначения реквизитов, сигналов, граф, строк со ссылкой на соответствующие массивы и перечни сигналов.

2.6.3. Алгоритм представляют графически (в виде схемы), в виде текста или таблиц решений.

2.6.4. Изложение алгоритма в виде схемы представляют в соответствии с требованиями ГОСТ 19.002-80 и ГОСТ 19.003-80 и, при необходимости, дополняют текстовой частью.

В расчетных соотношениях (формулах) должны быть использованы обозначения реквизитов, приведенные при описании их состава.

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

2.6.5. Описание алгоритма в виде текста приводят в соответствии с требованиями ГОСТ 24.301-80.

2.6.6. Соотношения для контроля вычислений на отдельных этапах выполнения алгоритма приводят в виде равенств и неравенств. При этом указывают контрольные соотношения, которые позволят выявить ошибки, допущенные в процессе счета, и принять решение о необходимости отклонений от нормального процесса вычислений (продолжении работы по одному из вариантов алгоритма).

2.7. В разделе «Требования к контрольному примеру» следует приводить:

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

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

Раздел «Требования к контрольному примеру» включают в документ «Описание алгоритма», если для данной задачи (комплекса задач), автоматизированной функции, разрабатывают документ «Описание контрольного примера».

2.8. Вспомогательные материалы (чертежи форм документов и видеограмм, описания массивов информации, описания использованных алгоритмов, тексты программ на языках высокого уровня) включают в приложение в соответствии с ГОСТ 24.301-80.


*Переиздание (май 1986 г.) с Изменением № 1, утвержденным в августе 1985 г. (ИУС 11-85).

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*