информационная безопасность
УДК 004.056.55,519.1
ключевое расписание в системах блочного шифрования
Романько Д.А.,
аспирант, Финансовый университет, Москва, Россия [email protected]
Аннотация. Свойства ключевого расписания являются определяющими при оценке стойкости алгоритма блочного шифрования, так как при определенных условиях плохо подобранное ключевое расписание (или использование так называемых слабых и частично слабых ключей) может ослабить криптографические свойства итеративного блочного шифра. Приведены способы построения ключевого расписания некоторых известных алгоритмов блочного шифрования, отмечены их свойства. Предложен способ построения альтернативного ключевого расписания. Ключевые слова: блочный шифр; ключевое расписание; раундовый ключ.
KEY SHEDULE iN BLOCK CiPHER SYSTEMS
Romanko DA.,
Post-graduate student, Financial University, Moscow, Russia [email protected]
Abstract. The strength of block cipher is determined by the properties of key schedule. Under some circumstances key shedule which was chosen improperly (or in case of using so-called weak keys and semi-weak keys) could make the block cipher weaker. Some examples of building key schedule in modern well-known block ciphers are given. The alternative way of key schedule building is suggested. Keywords: block cipher; key schedule; round key.
Пусть K — ключ итеративного блочного алгоритма шифрования. Тогда ключевым расписанием называется система функций {91, 92.....9г}, при помощи которой ключ K расширяется до г ключей k1.....k. В большинстве случаев
г — число раундов итеративного блочного шифра.
Рассмотрим ключевое расписание алгоритмов DES, ГОСТ 28147-89, ГОСТ Р 34.10-2015 «Магма» и «Кузнечик», AES (с длинами ключей 128, 192 и 256 битов).
1. ключевое расписание алгоритма DES
DES (Data Encryption Standard) — итеративный 16-раундовый блочный алгоритм шифрования
с длиной блока 64 бита и длиной ключа 64 бита, 8 из которых являются проверочными и не используются при шифровании. Введен в действие в США в 1977 г. как национальный стандарт. В настоящее время заменен на AES (в 2002 г.), однако 3DES, полностью основанный на DES, продолжает использоваться по всему миру (например, в стандартах S/MIME, ANSI X9.17).
В процессе генерации раундовых ключей для каждого из 16 раундов алгоритма DES генерируется 48-битный раундовый ключ, определяемый при помощи ряда преобразований. Сначала выполняется перестановка битов ключа по табл. 1 (в ячейках приведены номера битов исходного ключа).
Научный руководитель: Фомичев В.М., доктор физико-математических наук, профессор, профессор Финансового университета, НИЯУ МИФИ, ведущий научный сотрудник ФИЦ ИУ РАН, научный консультант ООО «Код Безопасности».
Таблица 1
начальная перестановка ключа
57 49 41 33 25 17 9 1 58 50 42 34 26 18
10 2 59 51 43 35 27 19 11 3 60 52 44 36
63 55 47 39 31 23 15 7 62 54 46 38 30 22
14 6 61 53 45 37 29 21 13 5 28 20 12 4
Таблица 2
Число битов сдвига в зависимости от раунда
Раунд 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Сдвиг 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
Таблица 3
Усеченная подстановка ключа
14 17 11 24 1 5 3 28 15 6 21 10
23 19 11 4 26 8 16 7 27 20 13 2
41 52 31 37 47 55 30 40 51 45 33 48
44 49 39 56 34 53 46 42 50 36 29 32
То есть первым битом после преобразования станет 57-й бит исходного ключа и т.д. Получившийся 56-битовый вектор делится на два 28-битовых вектора. Оба вектора сдвигаются влево на одинаковое число шагов в соответствии с табл. 2.
Из полученного 56-битового вектора выбирается 48 битов (по 24 бита из каждой 28-битовой половины) - реализуется усеченная подстановка в соответствии с табл. 3.
В процессе криптографического анализа алгоритма впервые было введено понятие слабого ключа, и связано оно со свойством ключевого расписания, заключающемся в совпадении раун-довых ключей на различных раундах шифрования. Например, если при разделении 56-битового вектора на два 28-битовых вектора обе половины состоят из одинаковых битов, то все раундовые ключи совпадают. Некоторые пары ключей переводят открытый текст в идентичный шифртекст [1],
что означает, что один ключ может расшифровать сообщение, полученное на другом ключе. В [2] понятие «слабый ключ» обобщено, а предложенный подход к анализу ключевого расписания может быть применен к любому итеративному блочному алгоритму шифрования. Подробно проблема слабого ключевого расписания DES-алгоритма рассмотрена в [3-5].
2. Ключевое расписание алгоритма ГОСТ 28147-89
ГОСТ 28147-89 - стандарт шифрования, опубликованный в 1990 г. в СССР [6]. Действующий стандарт РФ. Число раундов - 32, длина блока алгоритма - 64 бита, длина ключа - 256 битов. Длина каждого раундового ключа составляет 32 бита.
Ключевое расписание представляется следующим образом: исходный ключ К = (w1, w2, w3.....
w256), wjeV1, j = 1.....256, разбивается на восемь
32-битных векторов к,, i = 1.....8:
к1 = (wъ2, .....
к2 = К^ ^3.....
...,
к8 = К56, ^55..... ^^225)'
затем раундовые ключи выбираются по правилу:
Графическое представление преобразования (3)
3.1. Итеративный блочный алгоритм шифрования с длиной блока 64 бита «Магма»
«Магма» реализует 32-раундовый итеративный блочный алгоритм шифрования, основанный на петле Фейстеля. Длина раундовых ключей -32 бита.
Для генерации раундовых ключей исходный ключ К длины 256 бит разбивается на восемь 32-битных блоков к, i = 1.....8:
К = (к1, к2.....к8),
(1)
(к1, — к8, к1.....к8, к1..... к8, к8.....к1).
(1)
которые используются в следующем порядке, аналогично ГОСТ 28147-89:
Из (1) следует, что любой ключ алгоритма ГОСТ 28147-89 является 8-слабым. Существует ряд атак, основанных, в частности, на слабостях ключевого расписания [7-9], а в работе [10] обосновывается необходимость модификации ключевого расписания и приводится альтернативный метод генерации раундовых ключей. Однако данный метод лишь меняет порядок раундовых ключей, не решая при этом проблему появления слабых и частично слабых ключей.
3. Ключевое расписание алгоритмов ГОСТ Р 34.10-2015
С 1 января 2016 г. в России начал действовать новый стандарт блочного шифрования - ГОСТ Р 34.10-2015 [11], включающий в себя два итеративных блочных алгоритма шифрования: с длиной блока 64 бита («Магма») и с длиной блока 128 битов («Кузнечик»). Ключ обоих алгоритмов имеет длину 256 битов.
(к1,...к8, к1.....к8, к1.....к8, к8.....к1). (2)
Из (2) следует, что, как и в ГОСТ 28147-89, любой ключ является 8-слабым. Из-за конструктивных особенностей «Магмы» атаки [7-9] могут быть применены к данному итеративному блочному алгоритму шифрования.
3.2. Итеративный блочный алгоритм шифрования с длиной блока 128 битов «Кузнечик»
«Кузнечик» реализует 10-раундовый (один из которых - завершающий) итеративный блочный алгоритм шифрования, представляющий собой подстановочно-перестановочную сеть. Длина ра-ундовых ключей - 128 битов.
Пусть задано преобразование длинейного регистра левого сдвига длины 128 с функцией обратной связиТо есть при заполнении регистра (Ху Х2.....хт)
g(x., x.....x ) = x.....x , f (x., x -, x ),
1> 2 ' m' 2' ' m,Jg* 1' 2 ' m''
где- линейная функция обратной связи, определенная в стандарте [11].
Пусть задано преобразование петли Фейстеля:
k1 = K = (w1, w2, w3, w4),
ki = K(M)®W4(/-2)+1, W4(/-1)+1@W4(/-2)+2,
, S(g(w4(,,i)+3))©w4(,,i)©c.),
w ©w
4(/-1)+2 4(/-2)+3
F[k](w1, w2) = (w2©g(S(w1©k)), w1),
(3)
где S - нелинейное преобразование, определенное в стандарте [11], k, w1, w2e V128. Графическое представление (3) приведено на рисунке.
Пусть ключ итеративного блочного алгоритма
шифрования K= (w1, w2, w3.....w256), тогда раундо-
вые ключи вырабатываются по правилу:
k1 = К w2..... W128),
k2 = (W129, W130..... W256),
(k2i+1, k2i+2) = ^[^8(/-1)+8]-^[^8(/-1)+1](k2/-1, k2i),
где i = 1, 2, 3, 4, C., j = 1.....32 - константы, определенные в стандарте [11].
Если k1 = k2, ключ «Кузнечика» является 9-слабым.
4. ключевое расписание алгоритма AES
В 1997 г. был объявлен конкурс на разработку нового стандарта блочного шифрования. К 2000 г. в финал вышли алгоритмы Rijndael, Serpent, Twofish, RC6, MARS, из которых, по результатам голосования Rijndael был выбран победителем и стал известен как AES (Advanced Encryption Standard) [12]. Является действующим стандартом шифрования США.
AES - итеративный блочный алгоритм шифрования с длиной блока 128 битов, реализующий подстановочно-перестановочную сеть с 10, 12 или 14 раундами и ключом 128, 192 или 256 битов соответственно [13]. Длина каждого раундового ключа AES составляет 128 битов.
Ключ алгоритма K представляется как NK 32-битных векторов, где NK определяется длиной выбранного ключа: K= (wx.....wNK).
Пусть задано преобразование g(x1, x2, x3, x4) =
= (x2, x3, x4, x1), x1, x2, x3, x4^^32.
4.1. Алгоритм AES-128
В случае AES-128, NK = 4. Раундовые ключи генерируются по правилу:
где i = 2.....11; 5 - нелинейная замена ^-Ьох),
определенная в стандарте [13], С. - константы, получаемые по закону, определенному в стандарте [13], i = 2.....11.
4.1. Алгоритм AES-192
В случае AES-192, ЫК = 6. Раундовые ключи генерируются по правилу:
к1 = w2, w4), к2 = w6, w6©w3, w7©w4),
к= (Уд.....У,4),
У,1 = ^(/-1№1©^(/-2)-2+;, если (4(/ - 1) + 1) не кратно 6;
у, 1=5(дК
если (4(/ - 1) +1) кратно 6,
где / = 3.....13; 1 = 1.....4; 5 - нелинейная замена
^-Ьох), определенная в стандарте [13]; С. - кон -станты, получаемые по закону, определенному в стандарте [13]; / = 3.....13.
4.3. АЛГОРИТМ AES-256
В случае AES-256, ЫК= 8. Раундовые ключи генерируются по правилу:
к1 = (w1, w2, w3, w4),
к2 = (W5, Wь, W7, w8),
кГ (Уд.....У,4),
У, 1 = ^-ц©^! если (4(/ - 1) +1) не кратно 8 и (4(/ - 2) +1) не кратно 8,
У, 1 = 5(
-1)+1-1
если (4(/ - 1) +1) кратно 8,
у, 1 = 5к -1)+н)©%(1-3)+1, если (4(/ 2) + Л кратно 8,
где / = 3.....15; 1 = 1.....4; 5 - нелинейная замена
^-Ьох), определенная в стандарте [13]; С - кон -
станты, получаемые по закону, определенному
в стандарте [13]; i = 3.....15.
В работе [14] приводятся недостатки ключевого расписания итеративного блочного алгоритма шифрования АЕБ (с длинами ключей 128, 192 и 256) и обосновывается необходимость его модификации.
5. Выводы
Шифрующие подстановки итеративных блочных алгоритмов шифрования по своим свойствам
должны быть близки к случайным подстановкам, в таком случае итеративный блочный шифр можно назвать «идеальным» [12]. В частности, важно, чтобы набор раундовых ключей по своим свойствам был похож на случайную бесповторную выборку из множества двоичных векторов заданной размерности. В связи с этим возникает задача построения ключевого расписания, исключающего возможность повторений раундовых ключей в генерируемом наборе. Данная задача рассматривается, например, в [15, 16].
Список источников
1. Шнайер Б. Прикладная криптография: Протоколы, алгоритмы и исходные тексты на языке Си / Б. Шнайер. М.: Триумф, 2002. 610 с.
2. Фомичев В.М. Методы дискретной математики в криптологии / В. М. Фомичев. М.: Диалог-МИФИ, 2010. 424 с.
3. Alfred J.M. Handbook of Applied Cryptography (Discrete Mathematics and Its Applications) / J. M. Alfred, P.C. van Oorschot, S. A. Vanstone. CRC Press, 1996. P. 796.
4. Matsui M. Linear Cryptanalysis Method for DES Cipher. / M. Matsui // Advances in Cryptology EUROCRYPT'93 Proceedings. Berlin: Springer-Verlag, 1994. P. 386-397.
5. Moore J.H. Cycle Structure of the DES with Weak and Semi-Weak Keys. / J. H. Moore, G. J. Simmons // Advances in Cryptology CRYPTO'86 Proceedings. Berlin: Springer-Verlag, 1987, pp. 2-32.
6. ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. М.: ИПК Издательство стандартов, 1996.
7. Pudovkina M.A. Related-Key Attack on Block Ciphers with Weak Recurrent Key Schedules / M. Pudovkina // Foundations and Practice of Security. Berlin: Springer-Verlag, 2011, pp. 90-101.
8. Rudskoy V. On zero practical significance of "Key recovery attack on full GOST block cipher with zero time and memory" / V. Rudskoy // Cryptology ePrint Archive, Report 2010/111. 2010. 24 p.
9. Isobe T.A Single-Key Attack on the Full GOST Block Cipher / T. Isobe // Journal of Cryptology, 2013, no. 26, pp. 172-189.
10. Асташкина Е.Н. Подход к формированию расписания ключей для блочного симметричного криптоалгоритма ГОСТ 28147-89. / Е. Н. Асташкина, И. В. Лысенко // Системи обробки iнформацii. 2010. № 6. С. 30-34.
11. ГОСТ Р 34.12-2015. Информационная технология. Криптографическая защита информации. Блочные шифры. М.: Стандартинформ, 2015.
12. Ferguson N. Cryptography Engineering: Design Principles and Practical Applications / N. Ferguson, B. Schneier, T. Kohno. Wiley Publishing, Inc. 2010. 353 p.
13. Federal Information Processing Standards Publication 197 "Specification for the ADVANCED ENCRYPTION STANDARD (AES)" - Gaithersburg: National Institute of Standards and Technology (NIST), 2001. 51 p.
14. May L. Strengthening the Key Schedule of the AES. / L. May, M. Henricksen, W. Millan, G. Carter, E. Dawson // Information Security and Privacy. Berlin: Springer-Verlag, 2002. P. 226-240.
15. Романько Д.А. О способах построения криптографических генераторов с заданным показателем беспо-вторности выходных последовательностей. / Д. А. Романько, В. М. Фомичев // Томский гос. ун-т. Прикладная дискретная математика. Приложение № 9. С. 65-67.
16. Фомичев В.М. О ключевом расписании блочных шифров без слабых ключей / В. М. Фомичев // Томский гос. ун-т. Прикладная дискретная математика. Приложение № 9. С. 70-73.