КАЧЕСТВО СТАНДАРТИЗОВАННОЙ СИСТЕМЫ АЛГОРИТМОВ ШИФРОВАНИЯ ДАННЫХ В ГАС РФ «ПРАВОСУДИЕ»
Королев В.Т., Ловцов Д.А.*
Ключевые слова: основной шаг криптопреобразования, простая замена, гаммирование, имитов-ставка, привилегированная информация, ГАС РФ «Правосудие», ГОСТ, нетрадиционный информационный канал (НИК), качество.
Аннотация.
Цель работы: совершенствование научно-методической базы теории правовых режимов ограниченного доступа информационных ресурсов.
Метод: комплексный теоретико-сравнительный анализ криптографических средств обеспечения защищённости привилегированной информации от раскрытия.
Результаты: определены численные параметры и математические операции стандартизованных процедур криптопреобразования данных, в целом позволяющие оценить современное состояние проблемы обеспечения защищённости привилегированной информации в Государственной автоматизированной системе Российской Федерации (ГАС РФ) «Правосудие»; дана теоретическая сравнительная оценка качества алгоритмов шифрования по ГОСТ28147-89 и DES-75; предложено для обеспечения требуемого уровня защищённости привилегированной информации в ГАС РФ «Правосудие», учитывая значительные возможности осуществления несанкционированного доступа по нетрадиционным информационным каналам, использовать криптографические алгоритмы ГОСТ28147-89 как во внутреннем — закрытом контуре, так и во внешнем — публичном контуре информационного взаимодействия.
Р01: 10.21681/1994-1404-2018-1-49-59
В Государственной автоматизированной системе Российской Федерации (ГАС РФ) «Правосудие» осуществляется защищённый обмен привилегированной информацией на основе применения криптографических алгоритмов в корпоративной телематической и локальных вычислительных сетях объектов автоматизации в условиях непрекращающихся попыток несанкционированного доступа, главным образом, по нетрадиционным (срытым) информационным каналам [4]. Наиболее уязвимой при этом является информация, циркулирующая в телематической сети, в которой реализуются сетео-бразующие интернет-протоколы, использующие несовершенные криптографические алгоритмы [2, 5].
В Российской Федерации действует единый стандарт шифрования данных в сетях ЭВМ, в отдельных
вычислительных комплексах и компьютерах — ГОСТ 28147-89 . Стандарт допускает как аппаратную, так и программную реализацию алгоритма, удовлетворяет требованиям криптографической стойкости и не накладывает ограничений на степень секретности защищаемой информации. Стандарт задает блочный симметричный алгоритм криптографического преобразования данных. Шифруемый массив данных разбивается на блоки, а секретный ключ используется и для зашифрования открытых информационных массивов (ИМ), и для расшифрования криптограмм — зашифрованных ИМ (ЗИМ).
Логика построения шифра и структура ключевой информации. В стандарте содержится описание алгоритмов двух уровней:
- на верхнем уровне иерархии находятся алгоритмы криптографических преобразований в следующих режимах: простой замены, гаммирова-
* Королев Владимир Тимофеевич, кандидат технических наук, профессор, почетный работник высшего профессионального образования Российской Федерации, профессор кафедры информационного права, информатики и математики Российского государственного университета правосудия, Российская Федерация, г. Москва.
E-mail: [email protected]
Ловцов Дмитрий Анатольевич, доктор технических наук, профессор, заслуженный деятель науки Российской Федерации, заместитель по научной работе директора Института точной механики и вычислительной техники им. С. А. Лебедева Российской академии наук, заведующий кафедрой информационного права, информатики и математики Российского государственного университета правосудия, Российская Федерация, г. Москва.
E-mail: [email protected]
ния, гаммирования с обратной связью, выработки имитовставки;
- на нижнем уровне находятся два алгоритма, называемых базовыми циклами: цикл зашифрования, цикл расшифрования (каждый из базовых циклов представляет собой многократное повторение одной и той же процедуры, называемой основным шагом криптографического преобразования).
Ключевая информация, используемая в алгоритмах стандарта, состоит из двух структур данных: собственно ключа шифрования и таблицы замен.
Ключ шифрования — двоичный код К длиною в 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
ЦИКЛ | N=N2 || N1 ЗАШИФРОВА- | _
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х(232-1), (1)
и для записи С необходимо 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.
(2)
(C)
mod 23
C- 232, если С > 232
(3)
так:
C,
еслиC<2
32
(C)mod (^l 1c _232 +1, если С > 232
(4)
c32 c31 с3о Со
(C)
"У"
mod 2
Рис. 8. Результат операции (C)mod 232
(C)mod 2
А
32
о31 о3о Q1 %
e31 е3о в1 ео
V
Y 32
(C)mod (2 -1)
В соответствии с этим стандарт так определяет
опеРаЦию (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), можно сказать, что по стандарту
(Отх, (232-1) = (^32 + сз2. (5)
При с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: [email protected] Литература
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.