Эта статья входит в число добротных статей

Halka

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Halka
Создатель Сурав Дас
Создан 2014 год
Опубликован 2014 год
Размер ключа 80 бит
Размер блока 64 бит
Число раундов 24
Тип SP-сеть

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-битного блока каки раундовый ключ, т.е. ключ, используемый в одном раунде и получаемый из первоначального ключа, как.

  1. На вход принимаютсязначениеключаи незашифрованный текст.
  2. Значение блокав первом раунде равняется.
  3. Генерируются раундовые ключи на основе ключа.
  4. Далее циклически для 24 раундов выполняются:
    1. Трансформация при шифровании, при которой к состояниюприменяетсяXORс раундовым ключом,
    2. AES-подобноенелинейное преобразование (S-блок),построение которого состоит из взятия мультипликативной инверсии с использованием LFSR в поле Галуа,причем предварительноразделяется на восемь равных 8-битных частей, над которыми и производятся данные операции, после чего результаты конкатенируются.
    3. Перестановка битов в блокеслучайным образом, однако с условием, что все биты одной 8-битной части текущего блокапереходят в биты различных 8-битных частей блока следующего уровня.
  5. Цикл завершается.
  6. Выполняется последняя операция XOR дляи.

Мультипликативная инверсия с использованием LFSR

[править|править код]

Главной особенностью Halka является реализация мультипликативного инвертирования для нелинейного преобразования (S-блок) с использованием LFSR, использующего в качестве функции обратной связипримитивный многочлени требующего на 8-битный S-блок всего 138 логических элементов. В то время как для ранее известных реализаций требуется не менее 253[6][7].Реализация шифра Halka малоресурсна, но несмотря на это, она удобна в использовании по отношению к программному обеспечению[7].

В данном разделе описывается вычисление мультипликативной инверсии при помощи регистра сдвига с обратной связью (LFSR)[1].

Математическое описание

[править|править код]

Преобразование LFSR дляциклов может быть записано как[8]:

,

гдематрица преобразования LFSR,— состояние LFSR в-й отсчёт времени или начальное состояние, а— состояние LFSR в-й отсчёт времени, то есть после запускатактовых циклов.

Так как в качестве функции обратной связи используется примитивный многочлен, LFSR будет генерироватьпоследовательность с максимальным периодом.Поэтому если— длина LFSR, то выполнениециклов возвращает начальное состояние, при этом все промежуточные значения будут различными:

.

Для вычисления мультипликативной инверсии заданного входного векторанеобходимо определить новое состояние LFSRтакое, что:

,что равносильно.

Для 8-битного LFSR это означает следующее:

Последнее равенство используется в реализации алгоритма мультипликативной инверсии с использованием LFSR[8].Произвольный выбор начального состоянияпозволяет не выделять аффинное преобразование после взятия мультипликативной инверсии в отдельный шаг, как это сделано в AES, так какуже является результатом применения к мультипликативной инверсиинекоторого преобразования, однозначно определяемого по.Такой подход позволяет избежать трудоёмких операций вроде матричного умножения. При этом выбор конкретного начального значения не оказывает существенного влияния на криптографические свойства шифра[2].

Реализуемый алгоритм

[править|править код]

Следующий алгоритм выполняется в аппаратной реализации мультипликативной инверсии:

  1. Имеются:8-битный LFSR, начальное состояниеinitial_seed=и первоначальныйS-box_input=.
  2. Преобразование LFSR инициализируется какlfsr_state=S-box_input=.
  3. Преобразование LFSR запускается до тех пор, пока не будет выполнено равенство:lfsr_state=initial_seed=.
  4. Затем запускается обратное преобразование LFSR до тех пор, пока не будет совершенно в сумме 255 преобразований (то есть если прямое преобразование было выполненораз, то обратноераз).
  5. На выходе принимаетсяlfsr_state=.

Данный алгоритм даёт на выходе мультипликативную инверсию входного 8-битного блокаS-box_input[8].

Аппаратная реализация

[править|править код]

Аппаратная реализация осуществляется следующим образом[9]:

  1. Конструируется LFSR из восьмитриггеровс двумя входами (например,D-триггеры).
  2. Конструируются необходимые логические элементы, обеспечивающие на входе LFSR функцию обратной связи.
  3. Конструируется логическая схема, подключающаяся ко входам триггеров, обеспечивающая обратное преобразование LFSR для того же примитивного многочлена.
  4. Выход LFSR подключается к 8-входномувентилюNAND(через несколько вентилейNOT), выход которого подключён ко входам триггеров так, чтобы организовать логику управления LFSR в обратном направлении.
  5. Используется 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].

Книги
  • R. Lidl, H. Niederreiter.Introduction to Finite Fields and Their Applications. — Revised Edition. — Cambridge: Cambridge University Press, 1994. — 416 с. —ISBN 0-521-46094-8.
Статьи