Добавил:
Да поможет вам Котельников Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

6 Лекция - Поточные шифры

.pdf
Скачиваний:
16
Добавлен:
23.06.2024
Размер:
518.44 Кб
Скачать

11

3.Оставшиеся биты линейного регистра заполняются единицами, т.е. si 1 для всех i 96,127.

4.После заполнения регистров конечный автомат функционирует 256 тактов,

вырабатывая последовательность 0,..., 255 . Каждый из бит гаммы используется не для шифрования, а суммируется с результатом функции обратной связи как линейного, так и нелинейного регистра, то есть в течение 256 тактов функции

обратной связи удовлетворяют равенствам s*

 

i

s

, b*

 

i

b

,

i 128

 

i 128

i 128

 

i 128

 

i 0,255, где величина si 128 определена равенством ЛРС, а величина bi 128

равенством с картинки выше.

Таким образом, алгоритм Grain-128 использует для преобразования ключа нелинейный регистр сдвига. Для преобразования синхропосылки используется линейный регистр связи, вырабатываемые которым значения подмешиваются к функции обратной связи нелинейного регистра сдвига.

Значения гаммы, используемые для шифрования, вырабатываются с использованием фильтрующей функции, аргументами которой служат как значения нелинейного регистра, так и линейного регистра сдвига. Подобная конструкция позволяет обеспечить высокую степень полиномиальных уравнений, которые позволяют выразить неизвестные ключевые значения через знаки гаммы.

Низкоресурсные поточные алгоритмы

В стандарте ISO/IEC 29192-3:2012 Information technology – Security techniques – Lightweight cryptography – Part 3: Stream ciphers по алгоритмам, применяемым в низкоресурсной криптографии, подробно рассмотрены 2 алгоритма поточного шифрования,

удовлетворяющие предъявляемым требованиям ISO/IEC 29192-1:2012 Information technology

– Security techniques – Lightweight cryptography – Part 1: General – это алгоритмы Enocoro и Trivium. Эти алгоритмы к настоящему времени также являются хорошо изученными, особенно с точки зрения реализации.

Поточный шифр Trivium был разработан бельгийскими учеными Кристофом Де Канньер и Бартом Пренелем. Впервые он был представлен в 2005 г. в качестве участника европейского проекта eSTREAM по Профилю 2 (поточные шифры, ориентированные на аппаратную реализацию). В 2008 году алгоритм, как один из победителей конкурса, вошел в портфолио европейского проекта eSTREAM.

Данный поточный шифр генерирует вплоть до 264 бит выходного потока из 80 бит ключа и 80 бит вектора инициализации (Iv). Trivium назвали самым простым шифром проекта eSTREAМ, который показал отличные результаты по криптоустойчивости.

Структура алгоритма поточного шифрования Trivium представлена на cледующем рисунке:

12

Генератор гаммы Trivium представляет собой 3 регистра сдвига суммарной длины в 288 бит: первый регистр алгоритма Trivium имеет длину 93 бита, второй - 84 бита, третий - 111 бит. Каждый такт происходит изменение битов в регистрах сдвига путём нелинейной комбинации прямой и обратной связи. Для инициализации шифра ключ и инициализирующий вектор записываются в 2 из 3х регистров, и алгоритм работает 1152 такта, что гарантирует зависимость каждого бита начального состояния от каждого бита ключа и каждого бита инициализирующего вектора.

После прохождения стадии инициализации каждый такт генерируется новый знак гаммы Z, который проходит процедуру XOR со следующим знаком открытого текста. Процедура расшифрования происходит в обратном порядке. Trivium генерирует последовательность гаммы длиной до 264 бит.

Отметим, что период гаммы сложно определить, из-за нелинейного характера изменений начального состояния. Можно показать, что любая пара ключа и

инициализирующего вектора приведёт к генерации ключевого потока с периодом порядка

293-1.

Несмотря на то, что Trivium разработан не для программной реализации, он эффективен и на стандартных персональных компьютерах.

Поточный шифр Enocoro разработан фирмой Hitachi по поручению Национального института информационных и коммуникационных технологий Японии (NICT) в 2007. В

стандарт ISO/IEC 29192-3 входят шифры Enocoro-80 и Enocoro-128v2. Это байтно-

ориентированные поточные шифры с ключом, равным, соответственно 80 и 128 бит.

В алгоритме Enocoro в отличие от Trivium используются операции над конечными полями из 256 и 16 элементов. В ячейках структуры алгоритма записываются также байты.

Структура алгоритма поточного шифрования Enocoro представлена на следующем рисунке.

13

Рассмотрим случай, когда длина ключа 128 бит. В буфер (регистр с ячейками b0,..,b31) записывается ключ, инициализирующий вектор длиной 64 бита и фиксированные алгоритмом констаты. Константы записываются и в ячейки a0 и a1. В алгоритме используется сложение и умножение байтов, которые рассматриваются как элементы конечного поля из 256, нелинейная подстановка s8 и линейное преобразование L над вектором из двух байт. Перед выработкой гаммы Z схема работает 96 тактов.

Сравнение целого ряда алгоритмов в работах ряда экспертов показывает, что в условиях ограниченных аппаратных либо программных ресурсов поточные шифры не имеют сколь бы то ни было существенного преимущества перед блочными и, зачастую, не удобны для низкоресурсной реализации в устройствах интернета вещей. Зачастую поточные шифры весьма неудобны для низкоресурсной реализации предназначенной для обработки очень небольших массивов информации, т.к. имеют, как правило, сравнительно большое время инициализации. Кроме того большинство поточных шифров требуют большого количества памяти для записи своего внутреннего состояния. Следовательно, эти шифры не могут обеспечить эффективное шифрование небольших объемов данных, что наиболее характерно для систем интернета вещей, которые и предъявляют основные требования к низкоресурсной реализации.