Halka — блочный шифр с размером блока 64 бита, длиной ключа 80 бит и количеством раундов 24. В данном шифре используются в качестве нелинейных элементов 8-битные S-блоки. Главной особенностью является вычисление мультипликативной инверсии[англ.] на основе LFSR[1], требующего 138 логических элементов[2], что делает данный шифр применимым в облегчённой криптографии, несмотря на использование 8-битного S-блока. Развёртывание ключа осуществляется по схеме, аналогичной той, что используется для блочного шифра PRESENT[3].
Данный шифр был представлен в 2014 году.
Несмотря на существование широко используемых блочных шифров, таких как AES, который был создан еще в 1998 году, область разработки новых блочных шифров является активной и в настоящее время. В 2014 году был разработан шифр Halka. По заявлению автора, шифр стал уникальным во многих отношениях[4]:
- это первое использование 8-битного S-блока в облегчённой криптографии;
- традиционно LFSR был использован только в потоковых шифрах, в то время как Halka — блочный;
- Halka сочетает в себе сильные стороны как AES, так и PRESENT.
Применение шифра возможно в повсеместных вычислениях, включающих RFID, сенсорных сетях и устройствах, для которых достаточно 80-битного размера ключа[5].
Halka состоит из 24 раундов. Ниже приведён алгоритм шифра[5].
Обозначим в -м раунде состояние 64-битного блока как и раундовый ключ, т.е. ключ, используемый в одном раунде и получаемый из первоначального ключа, как .
- На вход принимаются значение ключа и незашифрованный текст .
- Значение блока в первом раунде равняется .
- Генерируются раундовые ключи на основе ключа .
- Далее циклически для 24 раундов выполняются:
- Трансформация при шифровании, при которой к состоянию применяется XOR с раундовым ключом ,
- AES-подобное нелинейное преобразование (S-блок), построение которого состоит из взятия мультипликативной инверсии с использованием LFSR в поле Галуа , причем предварительно разделяется на восемь равных 8-битных частей, над которыми и производятся данные операции, после чего результаты конкатенируются.
- Перестановка битов в блоке случайным образом, однако с условием, что все биты одной 8-битной части текущего блока переходят в биты различных 8-битных частей блока следующего уровня.
- Цикл завершается.
- Выполняется последняя операция XOR для и .
Главной особенностью Halka является реализация мультипликативного инвертирования для нелинейного преобразования (S-блок) с использованием LFSR, использующего в качестве функции обратной связи примитивный многочлен и требующего на 8-битный S-блок всего 138 логических элементов. В то время как для ранее известных реализаций требуется не менее 253[6][7]. Реализация шифра Halka малоресурсна, но несмотря на это, она удобна в использовании по отношению к программному обеспечению[7].
В данном разделе описывается вычисление мультипликативной инверсии при помощи регистра сдвига с обратной связью (LFSR)[1].
Преобразование LFSR для циклов может быть записано как[8]:
Так как в качестве функции обратной связи используется примитивный многочлен, LFSR будет генерировать последовательность с максимальным периодом. Поэтому если — длина LFSR, то выполнение циклов возвращает начальное состояние, при этом все промежуточные значения будут различными:
.
|
Для вычисления мультипликативной инверсии заданного входного вектора необходимо определить новое состояние LFSR такое, что :
, что равносильно .
|
Для 8-битного LFSR это означает следующее:
|
Последнее равенство используется в реализации алгоритма мультипликативной инверсии с использованием LFSR[8]. Произвольный выбор начального состояния позволяет не выделять аффинное преобразование после взятия мультипликативной инверсии в отдельный шаг, как это сделано в AES, так как уже является результатом применения к мультипликативной инверсии некоторого преобразования, однозначно определяемого по . Такой подход позволяет избежать трудоёмких операций вроде матричного умножения. При этом выбор конкретного начального значения не оказывает существенного влияния на криптографические свойства шифра[2].
Следующий алгоритм выполняется в аппаратной реализации мультипликативной инверсии:
- Имеются: 8-битный LFSR, начальное состояние initial_seed = и первоначальный S-box_input = .
- Преобразование LFSR инициализируется как lfsr_state = S-box_input = .
- Преобразование LFSR запускается до тех пор, пока не будет выполнено равенство: lfsr_state = initial_seed = .
- Затем запускается обратное преобразование LFSR до тех пор, пока не будет совершенно в сумме 255 преобразований (то есть если прямое преобразование было выполнено раз, то обратное раз).
- На выходе принимается lfsr_state = .
Данный алгоритм даёт на выходе мультипликативную инверсию входного 8-битного блока S-box_input [8].
Аппаратная реализация осуществляется следующим образом[9]:
- Конструируется LFSR из восьми триггеров с двумя входами (например, D-триггеры).
- Конструируются необходимые логические элементы, обеспечивающие на входе LFSR функцию обратной связи.
- Конструируется логическая схема, подключающаяся ко входам триггеров, обеспечивающая обратное преобразование LFSR для того же примитивного многочлена.
- Выход LFSR подключается к 8-входному вентилю NAND (через несколько вентилей NOT), выход которого подключён ко входам триггеров так, чтобы организовать логику управления LFSR в обратном направлении.
- Используется 8-битный счётчик LFSR. Выходной сигнал счётчика подключается к 8-входному вентилю NAND (через несколько вентилей NOT), чтобы сигнализировать о завершении 255 циклов. Конечное состояние LFSR содержит мультипликативную инверсию поданного начального значения.
Для 8-битных S-блоков, используемых в Halka, вероятность дифференциальной характеристики составляет [10]. За раунд дифференциальная вероятность равняется [11]. После 24 раундов общая вероятность любой дифференциальной характеристики составит [10]. Также существуют исследования, которые доказывают, что шифр Halka не так устойчив к дифференциальному анализу, как утверждает автор шифра[12].
Линейное смещение мультипликативной инверсии равно . Тогда полное линейное смещение Halka составит после 24 раундов [10].
Для Halka не требуется анализ против алгебраических атак, потому что AES-подобное нелинейное преобразование(S-блок) не может быть описано квадратными уравнениями[13].
Нет никаких доказательств того, что алгоритм планирования ключей PRESENT, используемый в Halka, может быть подвержен атаке на связанных ключах и сдвиговой атаке. Кроме того, 8-битный S-блок, используемый в Halka, усиливает данный алгоритм развёртывания ключей[13].
Так как AES невосприимчив к кубическим атакам[англ.], то и Halka устойчив к подобным атакам[14].
В силу побитовой перестановки Halka получение словоподобных структур, используемых в интегральных и коллизионных атаках, невозможно, что делает его невосприимчивым к подобным атакам[13].
- ↑ 1 2 R. Lidl, H. Niederreiter, 1994.
- ↑ 1 2 Ultra-lightweight 8-bit Multiplicative Inverse Based S-box Using LFSR, 2014.
- ↑ A. Bogdanov, 2007, p. 453—454.
- ↑ Sourav Das, 2014.
- ↑ 1 2 Sourav Das, 2014, p. 6.
- ↑ D. Canright, 2005, p. 453.
- ↑ 1 2 G. Hatzivasilis, 2017, p. 153.
- ↑ 1 2 3 Ultra-lightweight 8-bit Multiplicative Inverse Based S-box Using LFSR, 2014, p. 2—3.
- ↑ Ultra-lightweight 8-bit Multiplicative Inverse Based S-box Using LFSR, 2014, p. 4.
- ↑ 1 2 3 Sourav Das, 2014, p. 8.
- ↑ S. Hong , S. Lee, J. Lim, J. Sung, D. Cheon, I. Cho, 2001.
- ↑ Shun, Yasutaka, Toshinobu, 2017.
- ↑ 1 2 3 Sourav Das, 2014, p. 9.
- ↑ Sourav Das, 2014, p. 9—10.
- Книги
- R. Lidl, H. Niederreiter. Introduction to Finite Fields and Their Applications. — Revised Edition. — Cambridge: Cambridge University Press, 1994. — 416 с. — ISBN 0-521-46094-8.
- Статьи
- Sourav Das. Halka: A Lightweight, Software Friendly Block Cipher Using Ultra-lightweight 8-bit S-box (англ.). — IACR Cryptology ePrint Archive, 2014. — Vol. 2014, no. 110. — P. 1—16.
- Sourav Das. Ultra-lightweight 8-bit Multiplicative Inverse Based S-box Using LFSR (англ.). — IACR Cryptology ePrint Archive, 2014. — Vol. 2014, no. 22. — P. 1—11. Архивировано 20 октября 2019 года.
- D. Canright. A Very Compact S-Box for AES (англ.) // Cryptographic Hardware and Embedded Systems. — Springer, Berlin, Heidelberg, 2005. — P. 441—455. — ISBN 978-3-540-28474-1. — doi:10.1007/11545262_32.
- George Hatzivasilis. A review of lightweight block ciphers (англ.) // Journal of Cryptographic Engineering. — Springer, Berlin, Heidelberg, 2017. — P. 141—184. — doi:10.1007/s13389-017-0160-y.
- A. Bogdanov, L. R. Knudsen, G. Leander, C. Paar, A. Poschmann, M. J. B. Robshaw, Y. Seurin, C. Vikkelsoe. PRESENT: An Ultra-Lightweight Block Cipher (англ.) // International workshop on cryptographic hardware and embedded systems. — Springer, Berlin, Heidelberg, 2007. — P. 450—466. — ISBN 978-3-540-74734-5. — doi:10.1007/978-3-540-74735-2_31.
- S. Hong , S. Lee, J. Lim, J. Sung, D. Cheon, I. Cho. Provable Security against Differential and Linear Cryptanalysis for the SPN Structure (англ.) // FSE 2000. Lecture Notes in Computer Science. — Springer, Berlin, Heidelberg, 2001. — Vol. 1978. — P. 273—283. — ISBN 978-3-540-44706-1. — doi:10.1007/3-540-44706-7_19.
- S. Hong , S. Lee, J. Lim, J. Sung, D. Cheon, I. Cho. Provable Security against Differential and Linear Cryptanalysis for the SPN Structure (англ.) // FSE 2000. Lecture Notes in Computer Science. — Springer, Berlin, Heidelberg, 2001. — Vol. 1978. — P. 273—283. — ISBN 978-3-540-44706-1. — doi:10.1007/3-540-44706-7_19.
- 中澤 俊, 五十嵐 保隆, 金子 敏信. 軽量型ブロック暗号 Halka の差分パス解析 (яп.) // Computer Security Symposium 2017. — the Information Processing Society of Japan, 2017. — 24 10月. — 第896—902 頁. — ISSN 1882-0840.