(ее)
http://dx.doi.org/10.35596/1729-7648-2021-19-3-89-95
Оригинальная статья Original paper
УДК 004.056.55
ПРИМЕР ВНУТРЕННЕЙ ФУНКЦИИ ДЛЯ СХЕМЫ SPONGE, ПОСТРОЕННОЙ НА ОСНОВЕ ОБОБЩЕННОЙ МЕТОДОЛОГИИ ПРОЕКТИРОВАНИЯ AES
Р.М. ОСПАНОВ, Е.Н. СЕЙТКУЛОВ, Б.Б. ЕРГАЛИЕВА, Н.М. СИСЕНОВ
© Белорусский государственный университет информатики и радиоэлектроники, 2021
Аннотация. Целью данной статьи является построение внутренней функции, лежащей в основе схемы "Sponge" для построения криптографических хеш-функций. Внутренняя функция в схеме "Sponge" является преобразованием фиксированной длины или перестановкой, оперирующей с фиксированным числом битов, составляющих внутреннее состояние функции. Существуют различные конструктивные подходы к проектированию функции. Наиболее распространенным является подход, при котором используется перестановка, основанная на симметричном блочном алгоритме шифрования с константами в качестве ключа. В данной статье строится внутренняя функция с помощью обобщенной методологии проектирования AES. Эта методология позволяет легко проектировать блочные шифры для зашифровывания больших блоков открытого текста с помощью небольших компонентов, представляя обрабатываемые данные в виде многомерных массивов. Внутренняя функция является блочным шифром, который обрабатывает 2048 битов, представляемых в виде 9-мерного массива из 512 4-битовых элементов размера 2 х 2 х 2 х 2 х 2 х 2 х 2 х 2 х 2. Каждый раунд шифрования состоит из трех преобразований (S-блоки, линейное преобразование и перестановка), аналогичных трем раундовым преобразованиям AES SubBytes, MixColumns и ShiftRows. Построенная функция может быть использована в качестве внутренней функции в модифицированной схеме "Sponge" построения криптографических хеш-функций.
Ключевые слова: криптография, хеш-функция, Sponge, схема, модификация, шифрование, МДР код, S-блок, перестановка, линейное преобразование, AES.
Конфликт интересов. Авторы заявляют об отсутствии конфликта интересов.
Благодарности. Данная работа выполнена при финансовой поддержке грантового финансирования МЦРИАП РК, № AP06851124.
Для цитирования. Оспанов Р.М., Сейткулов Е.Н., Ергалиева Б.Б., Сисенов Н.М. Пример внутренней функции для схемы Sponge, построенной на основе обобщенной методологии проектирования AES. Доклады БГУИР. 2021; 19(3): 89-95.
Евразийский национальный университет имени Л.Н. Гумилева, НИИ Институт информационной безопасности и криптологии (г. Нур-Султан, Казахстан)
Поступила в редакцию 18 марта 2021
EXAMPLE OF INTERNAL FUNCTION FOR SPONGE SCHEME BUILT ON THE BASIS OF THE GENERALIZED AES DESIGN METHODOLOGY
RUSLAN M. OSPANOV, YERZHAN N. SEITKULOV, BANU B. YERGALIYEVA,
NURBEK M. SISENOV
Gumilyov Eurasian National University, Research Institute of Information Security and Cryptology (Nur-Sultan, Kazakhstan)
Submitted 18 March 2021
© Belarusian State University of Informatics and Radioelectronics, 2021
Abstract. The purpose of this article is to construct an internal function underlying the "Sponge" scheme for constructing cryptographic hash functions. An internal function in the "Sponge" scheme is a fixed-length transformation or permutation that operates on a fixed number of bits that make up the internal state of the function. There are various constructive approaches to function design. The most common approach is to use a permutation based on a symmetric block encryption algorithm with constants as the key. This article builds an internal function using the generalized AES design methodology. This methodology makes it easy to design block ciphers to encrypt large blocks of plaintext with small components, representing the processed data as multidimensional arrays. The internal function is a block cipher that processes 2048 bits, represented as a 9-dimensional array of 512 4-bit elements with size 2 x 2 x 2 * 2 x 2 x 2 x 2 x 2 x 2. Each round of encryption consists of three transformations (S-blocks, linear transformation, and permutation), similar to the three round transformations of AES SubBytes, MixColumns, and ShiftRows. The constructed function can be used as an internal function in the modified "Sponge" scheme for constructing cryptographic hash functions.
Keywords: cryptography, hash function, Sponge, scheme, modification, encryption, MDS code, S-box, permutation, linear transformation, AES.
Conflict of interests. The authors declare no conflict of interests.
Gratitude. This work was carried out with the financial support of grant funding from MDDIAI RK, No. AP06851124.
For citation. Ospanov R.M., Seitkulov Ye.N., Yergaliyeva B.B., Sisenov N.M. Example of internal function for Sponge scheme built on the basis of the generalized AES design methodology. Doklady BGUIR. 2021; 19(3): 89-95.
Введение
Схему "Sponge" [1] для построения криптографического алгоритма хеширования можно описать как последовательность следующих основных преобразований1, в результате которых вычисляется хеш-значение заданного сообщения:
1. Дополнение (padding), при котором входное сообщение дополняется некоторым количеством битов так, чтобы длина дополненного сообщения была кратна заданной длине блока сообщения.
2. Инициализация состояния, при котором задается некоторое начальное значение состояния.
3. «Фаза впитывания» (absorbing phase), при котором сообщение сжимается итеративно.
4. «Фаза выжимания» (squeezing phase), при котором в результате требуемое хеш-значение сообщения извлекается.
1 Bertoni G., Daemen J., Peeters M., Van Assche G. Cryptographic sponge functions, Version 0.1. January 14, 2011. URL.: https://keccak.team/files/CSF-0.Lpdf.
Существующие различные модификации схемы отличаются друг от друга различными способами дополнения, вариантами реализации инициализации состояния. Но основным и важным компонентом схемы "Sponge" является внутренняя функция, являющаяся преобразованием фиксированной длины или перестановкой, оперирующей с фиксированным числом битов, составляющих внутреннее состояние функции.
Существуют различные конструктивные подходы к проектированию функции. Наиболее распространенным является подход, при котором используется перестановка, основанная на симметричном блочном алгоритме шифрования с константами в качестве ключа. Так, например, в алгоритме Keccak перестановка построена как итерационный блочный шифр, подобный Noekeon и Rijndael, в котором раундовые ключи заменяются некоторыми простыми раундовыми константами. В алгоритме SPONGENT используется перестановка, представляющая собой модифицированную версию блочного шифра PRESENT. В алгоритмах Luffa, JH используется перестановка, основанная на блочном шифре с константами в качестве ключа. В алгоритме PHOTON используется AES-подобная перестановка. В алгоритме Bash используется перестановка, относящаяся к классу симметричных криптографических схем LRX (Logical-Rotation-Xor). В алгоритме ACE используется перестановка, представляющая собой бесключевой блочный шифр Simeck с уменьшенным количеством раундов. В алгоритмах SPN-Hash, GAGE, KNOT, SYCON, Ascon-Hash, Coral используются перестановки, итеративно применяющие раундовые преобразования SPN вида (подстановочно-перестановочные сети). В алгоритмах Esch256, Esch384 (SPARKLE) используются перестановки, основанные на ARX подходе и тесно связанные с блочным шифром Sparx. В алгоритме Rijndael256-Hash используется перестановка, основанная на блочном шифре Rijndael256, в котором ключом является константа 0. В алгоритме SIV-TEM-PHOTON-hash используется перестановка, основанная на блочном шифре TEM-PHOTON с константами в качестве ключа. В алгоритме SKINNY используются перестановки, основанные на семействе настраиваемых (tweakable) блочных шифров. В алгоритмах PHOTON-Beetle, ORANGISH используется AES-подобная 256-битная перестановка PHOTON256. В данной статье рассматривается внутренняя функция, построенная на основе обобщенной методологии проектирования AES2.
Обобщенная методология проектирования AES
Криптографический алгоритм блочного симметричного шифрования AES представляет 128-битный блок зашифровываемого открытого текста в виде двумерного байтового массива размера 4 x 4 и производит преобразования над отдельными байтами массива и независимыми строками и столбцами массива. Алгоритм построен с помощью подстановочно-перестановочной сети и использует МДР код для обеспечения диффузии. МДР код в AES применяется к столбцам массива в четных раундах и к строкам в нечетных раундах (нумерация раундов начинается с 0). В работе Hongjun Wu3 обобщили метод проектирования AES, представляя блок зашифровываемого открытого текста в виде ¿/-мерного массива Щ?=о1я( Cai ^ 2) от-битовых элементов (fit е М). так чтобы было легко проектировать блочные шифры для зашифровывания больших блоков открытого текста с помощью небольших компонентов. МДР код применяется к ряду элементов (г íito-fí rf)-ro измерения в r-м раунде (нумерация раундов начинается с 0). Например, для зашифровывания 512-битного блока открытого текста можно увеличить размерность AES до 3, представляя входные данные в виде трехмерного байтового массива размера 4 x 4 x 4. Тогда МДР код будет применяться к ряду байтов (г mod 3)-го измерения в г-м раунде. А для зашифровывания 2048-битного блока открытого текста можно увеличить размерность до 4, представляя входные данные в виде четырехмерного байтового массива размера 4 x 4 x 4 x 4. И МДР код будет применяться к ряду байтов (г mod 4-)-го измерения в г-м раунде. На основе этой обобщенной методологии проектирования AES построена внутренняя функция
2 Daeman J., Rijmen V. AES Proposal: Rijndael. 2003. URL.: https://csrc.nist.gov/csrc/media/projects/ cryptographic-standards-and-guidelines/documents/aes-development/rijndael-ammended.pdf.
3 Hongjun Wu. The Hash Function JH. 2011. URL.: https://www3.ntu.edu.sg/home/wuhj/research/jh/jh_round3.pdf.
криптографической хеш-функции JH. Внутренняя функция в JH является блочным шифром, который обрабатывает 1024 битов, представляемых в виде 8-мерного массива из 256 4-битовых элементов размера 2 х 2 х 2 х 2 х 2 х 2 х 2 х 2. Раундовыми ключами шифра являются константы, сгенерированные с помощью 6-размерного блочного шифра. Каждый раунд состоит из трех преобразований: «-блоки, линейное преобразование и перестановка (подобны трем раундовым преобразованиям AES SubBytes, MixColumns и ShiftRows). Структура внутренней функции предполагает несколько вариантов путем изменения размерности. Например, в случае размерности 9 можно зашифровывать 2048-битный блок. Далее рассмотрим детально конструкцию внутренней функции на основе обобщенной методологии проектирования AES с размерностью 9.
Структура функции
Внутренняя функция Е итеративно использует «-блоки, линейное преобразование и перестановку, а также константы, определенные так же, как в [4]. Обрабатывается 2048 битов, представляемых в виде 9-мерного массива из 512 4-битовых элементов размера 2 х 2 х 2 х 2 х 2 х 2 х 2 х 2 х 2.
S-блоки.
Внутренняя функция Е использует два 4-битовых «-блока «0 и «1, заданные табл. 1, 2.
Таблица 1. Блоки «о
X 0 1 2 3 4 5 6 7 8 9 а Б с Б Е
«о(х) 9 0 4 Б Б с 3 1 а 2 6 7 5 8 Е
Таблица 2. Блоки «1
X 0 1 2 3 4 5 6 7 8 9 а Б с Б Е
«1(х) 3 с 6 Б 5 7 1 9 2 0 4 Б а Е 8
Линейное преобразование Ь.
Внутренняя функция Р использует линейное преобразование Ь, реализующее (4, 2, 3) МДР код над где умножение определяется как умножение двоичных многочленов по
модулю неприводимого многочлена + X + 1. Ь преобразовывает пару 4-битовых слов Х = (Хо,х2,хя). У = (Уо'ЭЬ'З^'З^) следующим образом:
Цха.ХкХг'^хЗ^'А'Уг'Уз) = {хй (уг + + + + л:03,*а + £3% + ^о) + (у0 + Оь + х^Уа + Ч-Уг + + + Ч>Уъ +
Перестановка Р.
Внутренняя функция Е использует перестановку Р. Р - перестановка 512 элементов, являющаяся композицией трех перестановок 512 элементов Р = о о р2. ра - перестановка 512 элементов, определяемая следующим образом: йа(*,) = х.и1 = 0, .,.,£55,
= ^21+1«' = 128, ...,255,
.
р1 - перестановка 512 элементов, определяемая следующим образом: = 0, ...,255,
.
- перестановка 512 элементов, определяемая следующим образом: Рз = ' = 0, .,.,127,
Рз(^и-ы) = ' = 0,..., 12?.
= = 0, .,.,127,
.
Раундовое преобразование Н.
Внутренняя функция Р использует раундовое преобразование Я, выполняемое над 2048-битовыми словами. Раундовое преобразование Н{А,С) определяется на основе определенных выше «-блоков 5С> и 5Ъ линейного преобразования Ь и перестановки Р следующим образом.
Пусть А = (et0 || аг || — || etjii) - 2048-битовое слово, где a¡ (i = ür ...r511) - 4-битовые
слова.
Пусть С = (С0 || Сг || ■■■ || Сй11) - 512-битовое слово.
1. К слову А применяются Яблоки и S1. Для каждого í = О,...,&1'1 н,- заменяется на aF¡ = (íff). если Cf = 0, или о,- заменяется на ar¡ = S±(a¡). если С( = 1.
2. К полученному слову А' = fgf№ | af, || ■■■ || применяется линейное преобразование L. Для каждого t — С.... р255 пара 4-битовых слов и^ ^^j) заменяется на
ft'ztlj) = ¿(fí f Zí+v) ■
3. К полученному слову А" = || a.f\ || ■■■ || ífff5J1) применяется перестановка/1.
Раундовые константы.
Внутренняя функция F использует в качестве раундовых констант 512-битовые слова Су,т = О1, _,47, определяемые следующим образом. С0 - целая часть числа (i/2 — l) * 2Ь12.
Для генерации остальных констант используются преобразование и перестановка . PQ - перестановка 128 элементов, аналогичная перестановке Р, является композицией трех перестановок 128 элементов fj¡ = pf о pf о pf.
p'р - перестановка 128 элементов, определяемая следующим образом:
v = Л ;: ; = J ,, ,
.
р' г - перестановка 128 элементов, определяемая следующим образом: P'iC^Í+M) = ^at+i»* = 0,_,63.
р'2 - перестановка 128 элементов, определяемая следующим образом: P'jí-^lí+eí = = 0, ...,31,
= '^41+1"' = 0, ...,31, P'jC-^ii+aí = = 0, ...,31,
Pjí^t-ia) = ^—J 31.
R- - преобразование, выполняемое над 512-битовыми словами, аналогичное преобразованию R. R0 определяется следующим образом.
Пусть Л = (бц || a-i || ■■■ || «137) - 512-битовое слово, где a¡(i = 0Г...,12?) - 4-битовые
слова.
1. К слову А применяется Л'-блок Для каждого i = G, ...r127 a¡ заменяется на aft = S¿(aJ
2. К полученному слову Аг = ||| || ■■■ || íf^jj?) применяется линейное преобразование L. Для каждого i = 0,- .....63 пара 4-битовых слов (а'до
заменяется на
3. К полученному слову А" = || a"¡ || ■■■ || применяется перестановка Рп. Константы С„
Внутренняя функция F выполняет над входными битами следующие преобразования.
1. Входные 2048 битов Л = (я5 | | ■■■ || к^) группируются по 4 бита. Получается 512 4-битовых слов (512 полубайтов) = || || ■■■ || ífosiiX где
f= aí II ^Í+sií II II ^f+ifse'^ = Or-..r2SSr
Íc.íf+i = ^F+íes II ^f+Tís II II = 0i — r2Ü5.
2. Далее 48 раз применяется раундовое преобразование R с раундовыми константами С,-, получая в результате Q¡+\ = í(Cf,Cf),r = 0,1,.....4?,
3. Полученные в результате последнего раунда 512 4-битовых слов (512 полубайтов) ?íta = II fosj II "' II fos.51 j) разгруппировываются. Получаются выходные 2048 битов В = С;&Р II &j II - II где
II &¡+5¡¡2 II ^f+JMt II ^f+ifse = Íta.íf'^ = — «2SS,
^(+256 II + 76S II hliea II ^¿+1792 = = Oj ...J
ДокладыБГУИР Doklady BGUIR Т. 19, № 3 (2021)_V. 19, No 3 (2021)
Заключение
В данной статье рассмотрен новый вариант внутренней функции, лежащей в основе перспективной современной схемы построения криптографических хеш-функций "Sponge" («криптографическая губка»). Рассматриваемый пример внутренней функции построен на основе обобщенной методологии проектирования AES. Внутренняя функция является блочным шифром, который обрабатывает 2048 битов, представляемых в виде 9-мерного массива из 512 4-битовых элементов размера 2 х 2 х 2 х 2 х 2 х 2 х 2 х 2 х 2. Каждый раунд шифрования состоит из трех преобразований («-блоки, линейное преобразование и перестановка), аналогичных трем раундовым преобразованиям AES SubBytes, MixColumns и ShiftRows. Построенная функция может быть использована в качестве внутренней функции из заданного множества внутренних функций в модифицированной схеме "Sponge" построения криптографических хеш-функций [2-5].
Список литературы
1. Bertoni G., Daemen J., Peeters M., Van Assche G. Sponge Functions. Ecrypt Hash Workshop, 2007.
2. Оспанов Р.М., Сейткулов Е.Н., Арапов Н.К., Ергалиева Б.Б. Модификация схемы построения криптографических хеш-функций SPONGE. ВестникКазНИТУ. 2020;5(141):520-525.
3. Оспанов Р.М., Сейткулов Е.Н. Киберщит: О различных реализациях схемы построения криптографических хэш-функций "Sponge". Материалы Международной научно-практической Web-конференции «Военно-техническое обеспечение деятельности вооруженных сил: мировой опыт и тенденции развития». Нур-Султан: Из-во НУО; 2020: 305-308.
4. Оспанов Р.М., Сейткулов Е.Н. О способах проектирования внутренней функции для схемы построения криптографических хеш-функций SPONGE. Вестник КазНИТУ. 2020;5(141):645-650.
5. Оспанов Р.М. Киберщит: О внутренней функции в схеме построения криптографических хеш-функций "Sponge". Материалы Международной научно-практической Web-конференции «Военно-техническое обеспечение деятельности вооруженных сил: мировой опыт и тенденции развития». Нур-Султан: Из-во НУО; 2020: 351-353.
References
1. Bertoni G., Daemen J., Peeters M., Van Assche G. Sponge Functions. Ecrypt Hash Workshop, 2007.
2. Ospanov R.M., Seitkulov Ye.N., Arapov N.K., Yergalieva B.B. [Modification of the scheme for constructing cryptographic hash functions SPONGE]. Bulletin ofKazNTU. 2020;5(141):520-525. (In Russ.)
3. Ospanov R.M., Seitkulov Ye.N. [Cybershield: On various implementations of the "Sponge" cryptographic hash function construction scheme]. Materials of the International Scientific and Practical WebConference "Military-technical support of the armed forces: world experience and development trends". Nur-Sultan: From NUD; 2020: 305-308. (In Russ.)
4. Ospanov R.M., Seitkulov Ye.N. [On the ways of designing an internal function for the scheme for constructing cryptographic hash functions SPONGE]. Bulletin of KazNRTU. 2020;5(141):645-650 (In Russ.)
5. Ospanov R.M. [Cybershield: On the internal function in the scheme for constructing cryptographic hash functions "Sponge"]. Materials of the International Scientific and Practical Web-conference "Militarytechnical support of the activities of the armed forces: world experience and development trends", NurSultan: From NUD. 2020: 351-353. (In Russ.)
Вклад авторов
Оспанов Р.М. осуществил постановку задачи для проведения исследования, подготовил рукопись статьи.
Сейткулов Е.Н. определил цели исследования, разработал общую концепцию. Ергалиева Б.Б. разработала обобщенную методологию проектирования AES. Сисенов Н.М. описал структуру внутренней функции F, подготовил заключение.
Authors' contribution
Ospanov R.M. carried out the formulation of the problem for the study, prepared the manuscript of the article.
Seitkulov Ye.N. defined the objectives of the study, the development of a general concept. Yergalieva B.B. developed a generic AES design methodology.
Sisenov N.M. described the structure of the internal function F, prepared the conclusion of the
article.
Сведения об авторах
Оспанов Р.М., научный сотрудник НИИ ИБиК ЕНУ им. Л.Н. Гумилева.
Сейткулов Е.Н., к.ф.-м.н., профессор, директор НИИ ИБиК ЕНУ им. Л.Н. Гумилева.
Ергалиева Б.Б., младший научный сотрудник НИИ ИБиК ЕНУ им. Л.Н. Гумилева.
Сисенов Н.М., младший научный сотрудник НИИ ИБиК ЕНУ им. Л.Н. Гумилева.
Адрес для корреспонденции
010000, Республика Казахстан, г. Нур-Султан,
ЕНУ им. Л.Н. Гумилева;
тел.: +7-7172-70-95-00;
e-mail: erj@mail.ru
Сейткулов Ержан Нураханович
Information about the authors
Ospanov R.M., Researcher of the Institute IS&C at the Gumilyov ENU.
Seitkulov Ye.N., PhD, Professor, Director of the Institute IS&C at the Gumilyov ENU.
Yergalieva B.B., Junior Researcher of the Institute IS&C at the Gumilyov ENU.
Sisenov N.M., Junior Researcher of the Institute IS&C at the Gumilyov ENU.
Address for correspondence
010000, Republic of Kazakhstan, Nur-Sultan,
Gumilyov ENU;
tel.: +7-7172-70-95-00;
e-mail: erj@mail.ru
Seitkulov Yerzhan Nurakhanovich