Качество стандартизованной системы алгоритмов шифрования данных в ГАС РФ "Правосудие"

КАЧЕСТВО СТАНДАРТИЗОВАННОЙ СИСТЕМЫ АЛГОРИТМОВ ШИФРОВАНИЯ ДАННЫХ В ГАС РФ «ПРАВОСУДИЕ»

Королев В.Т., Ловцов Д.А.*

Ключевые слова: основной шаг криптопреобразования, простая замена, гаммирование, имитов-ставка, привилегированная информация, ГАС РФ «Правосудие», ГОСТ, нетрадиционный информационный канал (НИК), качество.

Аннотация.

Цель работы: совершенствование научно-методической базы теории правовых режимов ограниченного доступа информационных ресурсов.

Метод: комплексный теоретико-сравнительный анализ криптографических средств обеспечения защищённости привилегированной информации от раскрытия.

Результаты: определены численные параметры и математические операции стандартизованных процедур криптопреобразования данных, в целом позволяющие оценить современное состояние проблемы обеспечения защищённости привилегированной информации в Государственной автоматизированной системе Российской Федерации (ГАС РФ) «Правосудие»; дана теоретическая сравнительная оценка качества алгоритмов шифрования по ГОСТ28147-89 и DES-75; предложено для обеспечения требуемого уровня защищённости привилегированной информации в ГАС РФ «Правосудие», учитывая значительные возможности осуществления несанкционированного доступа по нетрадиционным информационным каналам, использовать криптографические алгоритмы ГОСТ28147-89 как во внутреннем — закрытом контуре, так и во внешнем — публичном контуре информационного взаимодействия.

Р01: 10.21681/1994-1404-2018-1-49-59

В Государственной автоматизированной системе Российской Федерации (ГАС РФ) «Правосудие» осуществляется защищённый обмен привилегированной информацией на основе применения криптографических алгоритмов в корпоративной телематической и локальных вычислительных сетях объектов автоматизации в условиях непрекращающихся попыток несанкционированного доступа, главным образом, по нетрадиционным (срытым) информационным каналам [4]. Наиболее уязвимой при этом является информация, циркулирующая в телематической сети, в которой реализуются сетео-бразующие интернет-протоколы, использующие несовершенные криптографические алгоритмы [2, 5].

В Российской Федерации действует единый стандарт шифрования данных в сетях ЭВМ, в отдельных

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

Логика построения шифра и структура ключевой информации. В стандарте содержится описание алгоритмов двух уровней:

- на верхнем уровне иерархии находятся алгоритмы криптографических преобразований в следующих режимах: простой замены, гаммирова-

* Королев Владимир Тимофеевич, кандидат технических наук, профессор, почетный работник высшего профессионального образования Российской Федерации, профессор кафедры информационного права, информатики и математики Российского государственного университета правосудия, Российская Федерация, г. Москва.

E-mail: timofeyich@mail.ru

Ловцов Дмитрий Анатольевич, доктор технических наук, профессор, заслуженный деятель науки Российской Федерации, заместитель по научной работе директора Института точной механики и вычислительной техники им. С. А. Лебедева Российской академии наук, заведующий кафедрой информационного права, информатики и математики Российского государственного университета правосудия, Российская Федерация, г. Москва.

E-mail: dal-1206@mail.ru

ния, гаммирования с обратной связью, выработки имитовставки;

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

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

Ключ шифрования — двоичный код К длиною в 256 разрядов, формат которого показан в табл. 1. В первой строке таблицы — номера ] разрядов кода К, а во второй цифры к], (]= 0,255) кода К.

Таблица 1

В каждом из алгоритмов криптографического преобразования используют восемь 32-разрядных фрагментов: К7, Кб, К5, К4, КЗ, К2, К1, КО, на которые разбивается код К (табл. 2). И здесь в самой верхней строке — номера разрядов каждого из фрагментов, а в каждой строке — цифры данного фрагмента, взятые из кода К. Любой из кодов: К7, Кб, К5, К4, КЗ, К2, К1, КО в заданных стандартом алгоритмах криптографических преобразований используется как целое положительное двоичное 32-разрядное число 0 < G < 232.

Таблица замен Н состоит из восьми строк (узлов замены) с номерами I 0,7 .Та или иная строка Н1 разбита на 16 ячеек с номерами ] 0,15 длиной в 4 разряда каждая. В ячейке номер ] строки номер

Таблица 2

255 254 0

к= ^255 к254 к.

31 30 0

К7= к255 к254 к224

К6= к223 к222 к192

К5= к191 к190 к160

К4= к159 к158 к128

К3= к127 к126 к96

К2= к95 к94 к64

К1= кбз кб2 к32

К0= кз1 к3о к0

Таблица 3

63 62 0

Ы= П63 П62 П0

I записан элемент замены — четырехразрядное

целое положительное двоичное число 0< Н < 24. Общий размер таблицы замен составляет 512 разрядов (4 разряда х 16 элементов х 8 строк).

Основной шаг криптографического преобразования. Весь массив данных, подлежащих шифрованию, разбивают на отдельные блоки длиной в 64 разряда. Основной шаг криптографического преобразования задает алгоритм обработки одного блока данных Ы, формат которого показан в табл. 3.

На рис. 1 представлена функциональная схема алгоритма для основного шага. Этот алгоритм многократно используется в базовых циклах.

Таблица 4

Поэтому блок 0 алгоритма имеет вход, на который подаются:

• очередной блок данных Ы длиной в 64 разряда;

• очередной 32-разрядный фрагмент ключа К1.

В блоке 0 определяются исходные данные для

реализуемого основного шага:

• число G получает значение К1 текущего ключевого фрагмента кода К: или К0, или К1, или ..., или К7, номер I ключевого фрагмента К1 определяется на входе в блок 0;

• преобразуемый блок данных Ы длиною в 64 разряда (его формат показан выше) разбивается на две части по 32 разряда каждая: N2 — старшая (табл. 4) и N1 — младшая (табл. 5).

Таблица 5

Таблица 6

31 30 0

N2= «63 «62 «32

31 30 0 31 30 0

N1= «31 «30 «0 ¿31 ¿30 ¿0

Полученные коды в процедуре основного шага Так определяются координаты ячейки с эле-выступают как целые, положительные двоичные ментом замены — числом Н15|_. Это число и заме-числа: 0 <N2, N1 <232. няет содержимое кода БЬ:= Н15|_

Таблица 7

5 V 1 \ 0 1 2 3 4 5 6 7 8 9 А В С Б Е 5

50 3 0 4 А 9 2 Б 8 0 Е 6 В 1 С 7 ^ 5 3 2 50

51 ^ 1 Е В 4 С 6 Б ^ А 2 3 8 1 0 7 5 9 9 51

52 9 2 5 8 1 Б А 3 4 2 Е ^ С 7 6 0 9 В ^ 52

53 С 3 7 Б А 1 0 8 9 ^ Е 4 6 С В 2 5 3 В 53

54 4 4 6 С 7 1 5 ^ Б 8 4 А 9 Е 0 3 В 2 5 54

55 0 5 4 В А 0 7 2 1 Б 3 6 8 5 9 С ^ Е 4 55

56 3 6 Б В 4 1 3 ^ 5 9 0 А Е 7 6 8 2 С 1 56

57 Е 7 1 ^ Б 0 5 7 А 4 9 2 3 Е 6 В 8 С 8 57

N. К1

Б

Рис. 1. Алгоритм для основного шага

В блоке 1 (см. рис. 1) выполняется операция сложения чисел N1 и G по модулю 232. Результатом этой операции будет число Б (табл. 6). Далее

Таблица 8

31 30 11 10 9 1 0

0 5= $31 §30 §11 §10 §9 §1 §0

« м 1 о о 5= §30 §29 §10 §9 §8 §0 §31

п 1-1 „ ¡^ ^ 2 К и 5= §29 §28 §9 §8 §7 §31 §30

;т ц. о

11 5= §20 §19 §0 §31 §30 §22 §21

(блок 2) производится простая замена кода Б на содержимое таблицы замен. Для этого 32-разрядный код Б разбивается на восемь четырехразрядных фрагментов Б7, Б6,.. ,,Б0. Номер Ь фрагмента БЬ определяет номер строки таблицы замен, а само число БЬ задает номер ячейки в строке номер Ь, из которой извлекается элемент замены, а именно, 1:=1_, 1_е{0,1,...,7}, > Б1_, Б1_е{0,1,...,15}.

Численный пример. Представим числа Б, БЬ и НЬ,БЬ в шестнадцатеричной системе счисления (табл. 7). Слева в колонке Б представим исходные значения фрагментов Б0, Б1,..., Б7. В каждой строке таблицы замен выделены элементы замены НЬ,БЬ. Справа в колонке Б представлены результаты простой замены.

Блок 3 (см. рис. 1): здесь над полученным в блоке 2 кодом Б выполняется циклический (С) сдвиг (БИ) на одиннадцать разрядов (11) влево (Ь) (т.е. в сторону старших разрядов). Смысл этой операции поясняется табл. 8.

В блоке 4 над символами бу и пу в одноименных разрядах кодов Б и N2 выполняется логиче-

ская операция © — суммирование по модулю 2. Результат работы алгоритма основного шага — код Б — выводится из блока 4.

Базовые циклы построены из основных шагов. В очередной реализации основного шага используется один из восьми 32-разрядных фрагментов ключа К. По соображениям стойкости шифра в каждом базовом цикле ключ К должен быть использован полностью, а каждый из его фрагментов должен быть использован одинаковое число раз (не менее двух).

Цикл зашифрования. На зашифрование подается ИМ открытых данных, который разбивается на блоки открытых данных (БОД), длиной в 64 разряда каждый: БОДМ, БОДм-1,..., БОДт,...,. БОД,.

БОДт ±

0

М:=БОДт, те{1,2,...,М}

1_:=0

Ь23

2 1

!:=(ЦтсЬ8> К1

I

-4

!:=31-1_, К! |

ОСНОВНОЙ ШАГ: Б

0 6 . 1

Ы2:=Ы1, Ы1:=Б

Ы2:=Б

1_:=1_+1

0 ^—10 Ь31у

11

1

1

НИЯ

12

БЗДт^ БЗДт

Рис. 2. Алгоритм цикла зашифрования

На рис. 2. представлена функциональная схема алгоритма цикла зашифрования. Этот цикл предназначен для зашифрования одного текущего блока БОДт и состоит в том, что фрагмент алгоритма между блоками 2 и 9 (тело цикла, важнейшим блоком которого является блок 5 — «Основной шаг») повторяется 32 раза. Очередной блок открытых данных БОДт подается на вход цикла зашифрования (см. рис. 2).

В блоке 0 коду N придается значение БОДт. Значение те{1,2,...,М} определено до входа в цикл зашифрования. В блоке 1 счетчику циклов | задают начальное значение 0. В блоке 2 проверяется условие | < 23. Дело в том, что на первых 24 циклах (когда условие в блоке 2 не выполняется) в блок 5 — «Основной шаг» фрагменты ключа подаются в естественном порядке следования: К0, К1,..., К7. Это достигается тем, что сейчас номер ключевого фрагмента I формируется в блоке 3 так, что при 0 < I < 23 трижды получаем последовательность номеров 1=0, 1,...,7 и последовательность фрагментов ключа: К0, К1,., К7.

В последних восьми циклах, когда 24 < I < 31, в блок 5 — «Основной шаг» подаются фрагменты ключа в обратном порядке следования: К1 = К7, К6,..., К0. Это достигается тем, что в этих циклах значение I формируется в блоке 4, последовательность номеров: 1=7, 6,...,0, а вместе с нею и последовательность фрагментов ключа: К1 = К7, К6,., К0.

При полученном в блоке 3 или в блоке 4 значении фрагмента ключа К1 реализуется блок 5 алгоритма — «Основной шаг». Результатом его работы будет код Б.

В блоке 6 проверяется условие Ь= 31. Во всех циклах, кроме последнего (номер которого и будет 31) реализуется блок 7. Код N2 получает значение кода N1, а сам код N1 получает значение Б. В последнем цикле, когда условие в блоке 6 выполняется, реализуется блок 8 алгоритма. Код N2 получает значение Б, сформированное в последнем цикле, а значение кода N1 остается тем, которое он получил в предпоследнем цикле.

В блоке 9 значение счетчика цикла I увеличивается на единицу, а в блоке 10 проверяется условие окончания цикла зашифрования. Пока оно не выполняется, управление передается на блок 2, и тело цикла реализуется ещё один раз. Как только условие в блоке 10 выполняется, реализуется блок 11 алгоритма, а именно, путем конкатенации (соединения) кодов N2 и N1 (символ этой операции: || ) формируется код N зашифрованных данных. Полученное значение N и будет текущим блоком зашифрованных данных — БЗДт, который и

0

3

5

8

7

9

выводится из блока 12 как результат реализации одного цикла зашифрования.

Цикл расшифрования. На расшифрование подается зашифрованный ИМ (ЗИМ), который разбивается на блоки зашифрованных данных БЗД, длиной в 64 разряда каждый: БЗДМ, БЗДМ-1,..., БЗДт,..., БЗД,.

На рис. 3 представлена функциональная схема алгоритма цикла расшифрования. Этот цикл предназначен для расшифрования одного текущего блока БЗДт и состоит в том, что фрагмент алгоритма между блоками 2 и 9 (тело цикла, важнейшим блоком которого является блок 5 — «Основной шаг) повторяется 32 раза. Как видно, расшифрование ЗИМ производится практически по тому же алгоритму, что и зашифрование открытых ИМ (см. рис. 2).

БЗДт

0

±

^=БЗДт, те{1,2,...,М}

Л

1:=(31-1_)тос18, К1 -1=

>1<

1:=1_, К1

-Г

ОСНОВНОЙ ШАГ: Б

А 1

-— 8

N2=8

БОДт^ ?=

БОДт

Рис. 3. Алгоритм цикла расшифрования

Очередной блок зашифрованных данных БЗДт подается на вход цикла расшифрования (с. рис. 3). В блоке 0 коду N придается значение БЗДт. Значение те{1,2,...,М} определено до входа в цикл расшифрования. В блоке 1 счетчику циклов Ь задают начальное значение 0. В блоке 2 проверяется условие Ь <7. Дело в том, что на первых 8 циклах (когда условие в блоке 2 не выполняется) в блок 5 — «Основной шаг» фрагменты ключа подаются в естественном порядке следования: К0, К1,..., К7. Это достигается тем, что сейчас номер ключевого фрагмента I формируется в блоке 3 так: 1:= Ь, т.е. при 0 < Ь < 7 получается последовательность номеров I = 0, 1,...,7 и последовательность фрагментов ключа: К1 = К0, К1,..., К7.

В следующих 24 циклах, когда 8 < Ь < 31, в блок 5 — «Основной шаг» подаются фрагменты ключа в обратном порядке следования: К7, К6,..., К0. Это достигается тем, что в этих циклах в блоке 4 номер ключевого фрагмента I формируется так: 1:= (31- Ц тосШ, т.е. при 8 < Ь <31 трижды формируется последовательность номеров: 1= 7, 6,...,0, а вместе с нею и последовательность фрагментов ключа: К1= К7, К6,..., К0.

При полученном в блоке 3 или в блоке 4 значении фрагмента ключа К1 реализуется блок 5 — «Основной шаг» алгоритма. Результатом его работы будет код Б. В блоке 6 проверяется условие Ь=31. Во всех циклах, кроме последнего (номер которого и будет 31) реализуется блок 7. Код N2 получает значение кода N1, а сам код N1 получает значение Б. В последнем цикле, когда условие в блоке 6 выполняется, реализуется блок 8 алгоритма. Код N2 получает значение Б, сформированное в последнем цикле, а значение кода N1 остается тем, которое он получил в предпоследнем цикле.

В блоке 9 значение счетчика цикла Ь увеличивается на единицу, а в блоке 10 проверяется условие окончания цикла расшифрования. Пока оно не выполняется, управление передается на блок 2, и тело цикла реализуется еще один раз. Как только условие в блоке 10 выполняется, реализуется блок 11 алгоритма, а именно, путем конкатенации (соединения) кодов N2 и N1 (символ этой операции: ||) формируется код N расшифрованных данных. Полученное значение N и будет текущим блоком расшифрованных данных БОДт, который и выводится из блока 12 как результат реализации одного цикла расшифрования.

Режим простой замены. На рис. 4 приведена функциональная схема алгоритма зашифрования в режиме простой замены. Как уже говорилось, на зашифрование подается ИМ открытых данных (ОД).

£

3

5

0

7

Рис. 4. Алгоритм зашифрования

В блоке 0 производится декомпозиция ИМ на М блоков открытых данных: БОДМ, БОД^, ...,БОД1( длиной в 64 разряда каждый. Здесь же и 256-разрядный код ключа K подвергается декомпозиции на ключевые фрагменты: К7, К6,...,К0, длиной в 32 разряда каждый.

В блоке 1 алгоритма счетчик блоков открытых данных т получает начальное значение 1. Далее (блок 2 алгоритма) считывается очередной блок БОДт, который подается на цикл зашифрования (блок 3). Результатом работы цикла зашифрования будет очередной блок зашифрованных данных БЗДт, который фиксируется в блоке 4. В блоке 5 показания счетчика т увеличивают на единицу. В блоке 6 анализируется условие окончания обработки ИМ. Пока оно не выполняется, управление передается на блок 2, и начинается зашифрование следующего блока открытых данных.

Рис. 5. Алгоритм расшифрования

Как только условие в блоке 6 выполнится, реализуется блок 7 алгоритма. Здесь путем конкатенации (||) блоков БЗДМ, БЗД^,..., БЗД, формируется массив зашифрованных данных.

На рис. 5 приведена функциональная схема алгоритма расшифрования в режиме простой замены. Как видно, построен он аналогично алгоритму на рис. 4. Отличие состоит в том, что на расшифрование в режиме простой замены подается ИМ зашифрованных данных (ЗД), а результатом работы этого алгоритма будет ИМ ОД.

Особенность режима простой замены заключается в том, что если длина ИМ открытых данных не кратна 64 разрядам, то последний блок БОДМ будет иметь длину менее 64 разрядов, и его нужно удлинять до 64 разрядов с тем, чтобы обрабатывать в режиме простой замены. Но тогда ЗИМ окажется длиннее ИМ открытых данных, что недо-

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

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

На рис. 6 показана общая схема реализации режима гаммирования, который используется в стандарте. Процедуры зашифрования и расшифрования в режиме гаммирования одинаковы. Поэтому ниже описано применение режима гамми-рования к ИМ данных Д (открытых или зашифрованных). А результатом выполнения этого режима будет массив гаммированных данных ГД (зашифрованных или открытых).

Исходный массив данных Д объёмом в Р разрядов (рис. 6,а) подвергается декомпозиции на М отдельных блоков: Дм, Дм-1,..., Д1 (рис. 6,б). При этом объем первых М-1 блоков составляет точно 64 разряда, а блок ДМ имеет длину в г < 64 разрядов.

Над содержимым одноименных разрядов кодов Дт и Гт (т-1,...,М) выполняется логическая операция © суммирование по модулю 2.

Для каждого из этих блоков данных формируется своя гамма длиной в 64 разряда: Гм, Г ,..., Г1 (рис. 6,в).

Если блок Дм имеет длину г <64 разрядов, то старшие (64-г) разрядов кода ГМ отбрасываются (рис. 6,в).

Результатом этой операции будет ансамбль блоков гаммированных (зашифрованных или расшифрованных) данных: ГДМ, ГД^,..., ГД1 (рис. 6,г).

Путем конкатенации этих блоков получают результат режима гаммирования — массив ГД объемом в Р разрядов (рис. 6,д).

Особенностью режима гаммирования, определенного стандартом, является то, что очередная гамма Гт формируется с использованием преды-

дущей гаммы Гт_; (т=1,...,М). Инициируется этот процесс с помощью нулевой гаммы Г0. Код Г0 получают путем зашифрования в режиме простой замены некоторого числа БР длиной в 64 разряда, называемого синхропосылкой (начальным заполнением по терминологии стандарта). В качестве значения БР можно использовать тот или иной отсчет времени (скажем, перед началом процедуры зашифрования). Код БР должен передаваться получателю криптограммы для того, чтобы можно было выполнить её расшифрование.

Д

\ / Дм Дм-1 Д2 Д1

<— г © <- 64 © ->• 64 © ->• 64 ©

У Гм ГМ-1 Г2 Г1

а)

б)

в)

ГДм ГДм-1 ГД2 ГД1

ГД

д)

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

При формировании гамм выполняются операции суммирования по модулю 232 и по модулю (232-1). В стандарте под этими операциями понимается следующее.

Имеем числа А и В такие, что 0 < А, В < 232-1. Для их записи достаточно 32 разрядов с номерами 31, 30,., 0. Сумма этих чисел С = А+В лежит в пределах

0 < С < 2х

и для записи С необходимо 33 разряда с номерами 32, 31, 30,., 0 (рис. 7).

С

Г

л

Л

С32

С31

Сзо

н

Рис. 7. Запись числа C

Операция (С) 232 в математике определена

так: (С)тоё 232 = С"2

32

Я

где Э целое положительное число.

Для тех значений С, которые определены неравенствами (1):

0 при C < 232, c 32 = 0,

D=

11 при C > 232, c 32 = 1.

mod 23

C- 232, если С > 232

так:

C,

еслиC<2

32

(C)mod (^l 1c _232 +1, если С > 232

c32 c31 с3о Со

"У"

mod 2

Рис. 8. Результат операции (C)mod 232

(C)mod 2

А

32

о31 о3о Q1 %

e31 е3о в1 ео

V

Y 32

В соответствии с этим стандарт так определяет

опеРаЦию (C)mod 232 :

|с, если C < 232,

Это означает, что (С)тос| 232 — суть содержимое разрядов с номерами 31, 30,..., 0 в записи числа С (рис. 8).

Таким образом, операция (А+В)тос| 232 выполняется за один акт суммирования: сумму A+B фиксируют в разрядах с номерами 31, 30,., 0, а старшую цифру с32 суммы игнорируют (рис. 8).

Операция (С)тос| (232-1 ) в стандарте определена

Таким образом, операция (A+B)mod выполняется за два акта суммирования: в первом акте получают (A+B)mod 232 , а во втором к этому результату прибавляют число F=031030...01f0, где f0= c32 (рис. 9). Как видно, в операции цифра c32 не отбрасывается, а используется для формирования

кода (C) mod (232-l).

На рис. 10 приведена функциональная схема алгоритма для режима простого гаммирования. В блоке 0 фиксируется код синхропосылки SP, массив данных Д подвергается декомпозиции на M блоков Ди Дм_1,..., Д1, а код ключа K — на восемь фрагментов: K7, K6,..., K0.

В блоках 1, 2 и 3 производится зашифрование кода SP в режиме простой замены и получение нулевой гаммы Г0. В блоке 4 счетчику циклов гаммирования m задают начальное значение. Блоки 6, 7,., 11 составляют тело цикла гаммирования. В блоке 5 код Г0 путем декомпозиции разбивается на две части: старшую Г20 и младшую Г10.

о

Сравнив (3) и (4), можно сказать, что по стандарту

При с32= 0 (когда С < 232) получаем первую строку формулы (4), а при с32=1 (когда С > 232) — ее вторую строку.

SP, Д^Дм.Дм-1.....Д1, K^K7,K6.....K0

—Г"

2

БОД-i^SP

I

ЦИКЛ ЗАШИФРОВАНИЯ

Го:=БЗД1

Го^Г2о,Г1о

m:=1

I

r2m:~(r2m-1+C1)mod (232-1)i Г1 т:-(Г1 m-1+C2)mod 232

8

rm^r2rn II Г1 m

nz

БОДm: = Гm

I

L

ЦИКЛ ЗАШИФРОВАНИЯ

© ©

И 12

Ю

Гm: = БЗДm

m:=m+1

I

11

о У—13 -^m>M у

© ©

14

1

ГД:=ГДм II ГДм_1 II... II ГД1

Рис. 9. Результат операции (C)mod 232

Рис. 10. Алгоритм для режима простого гаммирования

1

3

4

5

6

7

9

В блоке 6 формируются:

• текущий код Г2т как сумма по модулю (232-1) предыдущего значения Г2т-1 и константы С1,

• текущий код Г1т как сумма по модулю 232 предыдущего значения Г1т-1 и константы С2.

Двоичные 32-разрядные коды С2 и С1 определены в стандарте в шестнадцатеричном виде (в скобках десятичные значения):

С2 = 01010101 (16 843 009);

С1 = 01010104 (16 843 012).

В блоке 7 путем конкатенации кодов Г2т и Г1т формируется код текущей гаммы Гт. В блоках 8, 9 и 10 код Гт зашифровывают в режиме простой замены. В блоке 11 код Гт накладывается на код Дт, а именно, над одноименными разрядами этих кодов выполняется логическая операция © — суммирование по модулю 2. Так формируется блок номер т гаммированных данных ГДт.

В блоке 12 показания счетчика циклов гамми-рования т увеличиваются на единицу, а в блоке 13 проверяется условие окончания циклов гам-мирования. Пока условие т>М не выполняется, управление передается на блок 5, и реализуется еще один цикл гаммирования. Как только условие т>М выполнится, реализуется блок 14. Здесь путем конкатенации блоков гаммированных данных: ГДМ, ГДМ-1,..., ГДП формируется массив ГД гаммированных данных.

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

В блоке 0 фиксируется код синхропосылки БР, массив данных Д подвергается декомпозиции на М блоков: ДМ, ДМ-1,..., Д1, а код ключа K — на восемь фрагментов: К7, К6,..., К0.

Код синхропосылки БР становится исходным значением для кода Г1 (блок 1). В блоке 2 счетчику циклов гаммирования задают начальное значение 1. В блоках 3, 4,., 7 текущее значение Гт зашифровывают в режиме простой замены. Так получают очередную гамму Гт. В блоке 6 над одноименными разрядами гаммы Гт и блока данных Дт выполняют логическую операцию © — суммирование по модулю 2. Так формируется очередной блок гаммированных данных ГДт. В блоке 7 полученное значение ГДт придают коду Гт. Из него в следующем цикле будет сформирована новая гамма. В этом и состоит обратная связь при гаммировании.

В блоке 8 показания счетчика циклов гаммирования т увеличиваются на единицу, а в блоке 9 проверяется условие окончания циклов гаммирования. Пока условие т> М не выполняется, управление передается на блок 3, и реализуется еще один цикл гаммирования. Как только условие т> М выполнится, реализуется блок 10. Здесь путем конкатенации блоков гаммированных данных ГДМ, ГДМ-1,..., ГД1 формируется массив ГД гаммированных данных.

Отметим особенности двух последних режимов. При зашифровании данных путем простого гаммирования блоки ГДт (т=1,...,М) формируются независимо друг от друга. Криптоаналитик-злоумышленник, не имея ключа К, не сможет раскрыть криптограмму. Однако он может вносить те или иные изменения в её текст путем замены содержимого отдельных разрядов (заменить нули единицами и/или наоборот). При расшифровке такой криптограммы внесенные изменения останутся в открытом тексте, и их трудно обнаружить.

0

БР, Д^Дм,Дм-1.....Д1, К^К7,К6,...,К0

Г,:=БР

т:=1

3

4

БОДт:=Гт

ЦИКЛ ЗАШИФРОВАНИЯ

5

Гт=БЗДт I ГДт:=ДтГт1

7 '

Т

8

Гт: = ГДт

не:

т:=т+1

I

0 /- 9

10

I

ГД:=ГДм II ГДм-1 II... II ГД!

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

1

2

1

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

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

0

ОД^БОДм, БОДм-1.....БОД-i; K^K7, K6,.. ,,K0

X

Б2:=БОД1

т

m:=2

> f -»w

БОДт-1:=Б2

I

ЦИКЛ ЗАШИФРОВАНИЯ 16

Записать БЗДт_1 *

Б2:=БЗДт-1БОДт

ЗД:=БЗД1 II БЗД2II... II БЗДм

10

ИВ:=

mod 2

Рис. 12. Алгоритм для режима выработки имитовставки

На рис. 12 приведена функциональная схема алгоритма для режима выработки имитовставки. ИМ открытых данных подвергается декомпозиции на M блоков: БОДМ, БОДМ1,..., БОД1, а код ключа K — на фрагменты: K7, K6,..., K0 (блок 0). Для режима выработки имитовставки М > 2.

В блоке 1 вспомогательной переменной S2 придают значение БОД1. В блоке 2 счетчику циклов выработки имитовставки m задают начальное значение 2. Блоки 3, 4, 5, 6 составляют тело цикла выработки имитовставки. Текущее значение S2 присваивают блоку БОДт1, который в блоке 4 подвергается зашифрованию в режиме простой замены. Особенностью режима выработки имитовставки является то, что в цикле зашифрования (блок 4 — «Зашифрование 16») основной шаг реализуется не 32, а 16 раз.

Результат зашифрования БЗДт-1 фиксируется в блоке 5, а в блоке 6 над одноименными разрядами кодов текущего результата зашифрования БЗДт-1 и очередного блока открытых данных БОДт выполняют логическую операцию © — суммирование по модулю 2. Результатом этой операции будет код S2 на следующий цикл выработки имитов-ставки.

В блоке 7 показания счетчика m увеличиваются на единицу, а в блоке 8 проверяется условие окончания циклов выработки имитовставки. Пока условие m > M не выполняется, управление передается на блок 3, и реализуется еще один цикл выработки имитовставки. Как только условие m > M выполнится, реализуется блок 9. Здесь путем конкатенации блоков зашифрованных данных: БЗДМ, БЗДМ-1,..., БЗД1 формируется массив ЗД зашифрованных данных.

В блоке 10 формируется собственно код имитовставки (ИВ) путем выделения содержимого l младших разрядов кода ЗД (операция (ЗД)тос| 2) Длина l кода ИВ определяется действующими криптографическими требованиями. При этом учитывается, что вероятность навязывания ложных данных pN = 2-1. Например, при 1= 32 эта вероятность pN = 0,233 х10-9.

Сравнительный анализ ГОСТ 28147-89 и американского стандарта DES-75 (Data Encryption Standard 1975 year). Система блочного шифрования DES [1, 3, 6—8] на основе принципов «рассеивания» (распространения влияния одного символа ИМ на множество символов ЗИМ с целью скрытия статистических свойств ИМ) и «перемешивания» (преобразования, усложняющего восстановление взаимосвязи статистических свойств

1

2

3

4

5

6

0

9

ИМ и ЗИМ) [9] остаётся на протяжении многих лет стандартом в США. Да и во всем мире еще долгое время будут использоваться системы шифрования на основе DES и ГОСТ, которые являются стойкими алгоритмами шифрования в том смысле, что неизвестно методов их взлома, кардинально отличающихся от метода сплошного перебора всех возможных значений ключей.

И тот, и другой алгоритм в режиме простой замены оперируют с блоками длиной в 64 разряда. Но у DES длина ключа составляет 56 разрядов по сравнению с 256 разрядами ключа ГОСТ. Кроме того, в DES всего 16 циклов зашифрования, а в ГОСТ — 32 цикла.

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

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

данных, даже если используются одинаковые ключи, но разные синхропосылки. Кроме режимов зашифрования в ГОСТ предусмотрен режи м выработки имитовставки, что позволяет обнаруживать подмены в ЗИМ.

Следовательно, есть основания полагать, что современные высокопроизводительные вычислительные средства дают возможность специальным службам, таким, например, как Агентство национальной безопасности США, раскрывать сообщения, зашифрованные по алгоритму DES [3]. Вместе с тем в отношении отечественного ГОСТ 28147-89 на сегодняшний день не известно никаких реальных подходов, позволяющих взломать шифр, не имея ключа.

Таким образом, представляется необходимым для обеспечения требуемого уровня защищённости циркулирующей в ГАС РФ «Правосудие» привилегированной информации использовать криптографические алгоритмы ГОСТ 28147-89 как во внутреннем — закрытом контуре, так и во внешнем — публичном контуре информационного взаимодействия территориально распределённых информационно-вычислительных сегментов объектов автоматизации: Верховного Суда РФ, судов общей юрисдикции, органов Судебного департамента, центров подготовки и обучения, центров поддержки и др.

Рецензент: Федичев Андрей Валерьевич, кандидат технических наук, директор ФБУ «Научный центр правовой информации при Министерстве юстиции Российской Федерации», Российская Федерация, г. Москва

E-mail: fedichev@scli.ru Литература

1. Баричев С. Г., Гончаров В. В., Серов C. Е. Основы современной криптографии. М.: Горячая линия-Телеком, 2011. 175 с.

2. Ловцов Д. А. Проблема информационной безопасности ГАС РФ «Правосудие» // Российское правосудие. 2012. № 5. С. 103—109.

3. Ловцов Д. А. Контроль и защита информации в АСУ. М.: ВА им. Петра Великого, 1991. 172 с.

4. Ловцов Д. А. Проблема гарантированного обеспечения информационной безопасности крупномасштабных автоматизированных систем // Правовая информатика. 2017. № 3. С. 66—74.

5. Ловцов Д. А. Информационная надёжность функционирования телематической сети ГАС РФ «Правосудие» // Правовая информатика. 2018. № 1.

6. Малюк А. А., Пазизин С. В., Погожин Н. С. Введение в защиту информации в автоматизированных системах. М.: Горячая линия-Телеком, 2011. 146 с.

7. Рябко Б. Я., Фионов А. Н. Основы современной криптографии и стеганографии. М.: Горячая линия-Телеком, 2011. 232 с.

8. Хоффман Л. Дж. Современные методы защиты информации. М.: Сов. радио, 1980. 246 с.

9. Шеннон К. Теория связи в секретных системах // Работы по теории информации и кибернетики. М.: Иностранная литература, 1963. С. 333—402.