VEST

VEST (англ. Very Efficient Substitution Transposition, очень эффективная перестановка) — это серия аппаратных поточных шифров общего назначения, которые обеспечивают однопроходное шифрование с аутентификацией и могут работать как хеш-функция, стойкая к коллизиям второго рода. Шифры VEST разработаны в Synaptic Laboratories. Все шифры этой серии поддерживают режим работы с ключами переменной длины.

История править

Шифры VEST были разработаны Шоном О’Нейлом (Sean O’Neil). Впервые были представлены на турнире eStream в 2005 году, прошли во второй отборочный тур, но не попали в третий и, соответственно, не прошли в финал.

Применение поточных шифров править

Поточные шифры начали активно использовать в годы войны, ещё до появления электроники.

Преимущества поточных шифров:

  • Простота проектирования;
  • Простота аппаратной реализации;
  • Высокая скорость шифрования (важно при магистральном шифровании больших потоков информации);
  • Отсутствие эффекта размножения ошибок, который присутствует в блочных шифрах;
  • Обеспечивают высокую криптостойкость

Поточные шифры и их применение:

  • RC4 (системы защиты информации в компьютерных сетях, например в протоколах SSL и TSL);
  • A3 (процесс аутентификации в глобальном цифровом стандарте для мобильной сотовой связи GSM);
  • A5 (обеспечения конфиденциальности передаваемых данных между телефоном и базовой станцией в европейской системе мобильной цифровой связи GSM);
  • SEAL (криптографический алгоритм)(является одним из самых быстрых шифров)
  • Также поточные шифры используются в:

Одним из примеров поточных шифров является шифр VEST

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

Общая структура править

 

Схема шифрования состоит из четырёх основных компонентов: нелинейный счетчик, линейный счетчик-диффузор, биективный накапливающий регистр с большим числом состояний и линейный смеситель на выходе. Ядро шифров VEST можно представить как взаимно-однозначные регистры сдвига с нелинейной обратной связью (NLFSRs) с множеством параллельных обратных связей, работающие вместе с системой нелинейных модульных счетчиков (RNS) с очень длинным периодом. Модульный счетчик состоит из 16 регистров сдвига с нелинейной обратной связью с взаимно простыми длинами периодов. Счетчик-диффузор — это набор 6-битовых линейных смесителей с обратной связью, сжимающий выходные данные с 16 счетчиков в 10 бит. Ядро накапливающего регистра — регистр сдвига с нелинейной параллельной обратной связью, на вход которого подаются выходные 10 бит от счетчика-диффузора. Выходной смеситель — набор 6-битовых линейных смесителей.

Счетчик-диффузор править

Биты, поступившие на вход счетчика-диффузора, смешиваются перед подачей их на вход накапливающего регистра по следующему правилу:  
 
 
 
 
 
 
 
 
 

Накапливающий регистр править

 

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

Работу ядра накапливающего регистра (в режиме без аутентификации) можно изобразить с следующем виде:

 ;

 ;

 ;

Режимы работы править

Загрузка ключа править

Перед генерацией ключевого потока, шифрованием данных или хешированием шифр работает в режиме загрузки ключа, состоящий из   раундов, где   — длина ключа в битах. Формируется последовательность битов, состоящая из 15 нулей, ключа, единичного бита и ещё 15 нулей. Эта последовательность загружается с регистры начиная с младшего бита по 16 бит до тех пор, пока единичный бит не окажется в первом регистре. Далее происходят следующие операции:  

 

 

 

 

 

 ;

 ;

 ;

 

Хеширование править

Этот режим используется для хеширования данных и для загрузки вектора инициализации. Входные данные хешируются по 8 бит за раунд:  

 

 

 

 

 ;

 ;

 ;

 ;

 

Генерация ключевого потока править

В этом режиме на вход не подаются никакие данные. А биты с выхода складываются с открытым текстом по модулю 2.

Шифрование с аутентификацией править

В этом режиме биты зашифрованного сообщения попадают обратно в регистр.

Криптостойкость править

На данный момент не известно ни одной атаки на шифры VEST, которая работала бы быстрее, чем атака полным перебором ключей или внутренних состояний регистра.

Тест на случайность править

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

Проверка алгебраической структуры на наличие дефектов править

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

Применение править

Смарт-карты править

Смарт-карты часто используют как защищённый способ предоставления услуг. Использование сильного, быстрого, малоэнергозатратного шифрования в таких системах — необходимое условие. Программное шифрование недостаточно быстрое и сильно энергозатратное, и его не всегда удобно использовать на уровне «железа».

Устройства идентификации править

Шифр VEST-4 удовлетворяет необходимым требованиям радиочастотной идентификации:

  • шифрование с аутентификацией;
  • низкая стоимость;
  • массовый параллелизм;
  • высокая надежность;
  • низкие энергозатраты.

Беспроводные сети править

Источники править