Потоковый шифр

В криптографии потоковый шифр представляет собой симметричный ключевой шифр, в котором биты чистого текста объединяются с псевдослучайным шифрованным потоком (Keystream) с помощью операции эксклюзив- или (xor). В потоковом шифре цифры чистого текста шифруются по одному, а преобразование последовательных цифр варьируется в зависимости от состояния шифрования. Альтернативным именем является шифр состояния, так как шифрование каждой цифры зависит от текущего состояния. На практике цифры, как правило, представляют собой отдельные биты или байты.

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

Потоковый шифр использует гораздо меньший и более удобный криптографический ключ, например, 128-битные ключи. На основе этого ключа он генерирует псевдослучайный поток ключей, который может быть объединен с цифрами чистого текста аналогично одноразовому алгоритму шифрования блокнотов. Однако, так как этот поток является псевдослучайным, а не случайным, безопасность, связанная с одноразовым блокнотом, не может быть применена, и вполне возможно, что шифр потока будет полностью небезопасен.

Работа генератора потока ключей в A5/1, потоковом шифре на основе LFSR, используемом для шифрования разговоров по мобильному телефону.Zoom
Работа генератора потока ключей в A5/1, потоковом шифре на основе LFSR, используемом для шифрования разговоров по мобильному телефону.

Типы шифров потока

Потоковый шифр генерирует последовательные элементы ключевого потока, основанные на внутреннем состоянии. Это состояние обновляется двумя способами:

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

Шифры синхронного потока

В шифре синхронного потока поток псевдослучайных цифр генерируется независимо от чистого текста и шифрованного текста сообщений, а затем комбинируется с чистым текстом (для шифрования) или с шифрованным текстом (для расшифровки). В наиболее распространенной форме используются двоичные цифры (биты), а ключевое слово комбинируется с чистым текстом с помощью эксклюзива или операции (XOR). Это называется шифром потока двоичных добавок.

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

Однако если при передаче повреждена цифра, а не добавлена или потеряна, то это влияет только на одну цифру в чистом тексте, и ошибка не распространяется на другие части сообщения. Это свойство полезно, когда частота ошибок при передаче высока; однако, оно снижает вероятность того, что ошибка будет обнаружена без дополнительных механизмов. Более того, из-за этого свойства шифры синхронного потока очень восприимчивы к активныматакам - если атакующий может изменить цифру в шифрованном тексте, он может быть в состоянии внести предсказуемые изменения в соответствующий бит чистого текста; например, пролистывание бита в шифрованном тексте приводит к пролистыванию (Toggled) одного и того же бита в чистом тексте.

Самосинхронизирующиеся шифры потока

Самосинхронизирующиеся шифры потока - это еще одна техника, использующая часть предыдущих цифр N шифрованного текста для вычисления ключевого потока. Такие схемы известны также как асинхронные шифры потока или автоклавиша шифрованного текста (CTAK). Идея самосинхронизации была запатентована в 1946 году и имеет то преимущество, что приемник будет автоматически синхронизироваться с генератором ключевого потока после получения N цифр шифрованного текста, что облегчает восстановление, если цифры опускаются или добавляются в поток сообщений. Однозначные ошибки ограничены по своему действию, затрагивая только N цифр чистого текста. Несколько сложнее выполнять активные атаки на самосинхронизирующиеся шифры потока, чем на синхронные аналоги.

Примером самосинхронизирующегося потокового шифра является блочный шифр в режиме шифрования обратной связи (CFB).

Шифры потокового потока на основе регистра с линейной обратной связью

Двоичные потоковые шифры часто строятся с использованием линейных регистров сдвига обратной связи (LFSR), так как они могут быть легко реализованы в аппаратном обеспечении и могут быть быстро проанализированы математически. Однако использования только LFSR недостаточно для обеспечения хорошей безопасности. Для повышения безопасности LFSR были разработаны различные схемы.

Нелинейные комбинирующие функции

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

Часовые генераторы

Обычно ЛФСР регулярно наступают на ступеньки. Одним из методов введения нелинейности является нерегулярная тактовая частота ЛФСР, контролируемая выходом второй ЛФСР. Такие генераторы включают в себя остановочный генератор, генератор переменного шага и усадочный генератор.

Остановочный генератор (Beth and Piper, 1984) состоит из двух ЛФПР. Один LFSR синхронизируется, если выход секунды равен "1", в противном случае он повторяет свой предыдущий выход. Этот выход затем (в некоторых версиях) комбинируется с выходом третьего LFSR, синхронизированного с обычной скоростью.

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

  1. Если выход первого ЛФПР равен "1", то выход второго ЛФПР становится выходом генератора.
  2. Если выход первой ЛФСР "0", то выход второй отбрасывается, и генератор не выдает ни одного бита.

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

Фильтрующий генератор

Еще одним подходом к повышению безопасности РСФСР является передача всего состояния одной РСФСР в нелинейную функцию фильтрации.

Другие конструкции

Вместо линейного привода можно использовать функцию нелинейного обновления. Например, Климов и Шамир предложили треугольные функции (Т-функции) с одним циклом на n битовых словах.

Безопасность

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

Использование

Потоковые шифры часто используются в приложениях, где обычный текст приходит в количествах неизвестной длины, как и в защищенных беспроводных соединениях. Если бы в этом типе приложений использовался блочный шифр, разработчику пришлось бы выбирать между эффективностью передачи и сложностью реализации, так как блочные шифры не могут напрямую работать с блоками короче, чем их размер. Например, если 128-битный блочный шифр получал отдельные 32-битные всплески чистого текста, то три четверти передаваемых данных должны быть зашифрованы. Блочные шифры должны использоваться в режиме кражи шифрованного текста или остаточной заделки блоков, чтобы избежать набивки, в то время как потоковые шифры устраняют эту проблему, работая на самом маленьком передаваемом блоке (обычно в байтах).

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

RC4 является наиболее широко используемым потоковым шифром в программном обеспечении; другие включают в себя: A5/1, A5/2, Chameleon, FISH, Helix, ISAAC, MUGI, Panama, Phelix, Pike, SEAL, SOBER, SOBER-128 и WAKE.

RC4 является одной из наиболее широко используемых конструкций потоковых шифров.Zoom
RC4 является одной из наиболее широко используемых конструкций потоковых шифров.

Сравнение потоковых шифров

StreamCipher

CreationDate

Скорость
(циклы/байты)

(биты)

Атака

Эффективный
Длина ключа

Вектор инициализации

Внутреннее государство

Самый известный

ComputationalComplexity

A5/1

1989

Голос (Wphone)

54

114

64

Активная КПА ИЛИ
компромисс между временем и памятью
КПА

~2 секунды OR239.91

A5/2

1989

Голос (Wphone)

54

114

64?

Активный сайт

4,6 миллисекунды

РИСХ

1993

Довольно быстро (Wsoft)

Огромный

?

?

атака с использованием обычного текста

211

Зерно

до 2004 года

Быстрый

80

64

160

Производство ключей

243

HC-256

до 2004 года

4 (WP4)

256

256

65536

?

?

ISAAC

1996

2.375 (W64-бит) -4
.6875
(W32-бит)

8-8288 обычно
40-256

Н/Д

8288

(2006 год) Первая кругооборота Вейк-Вейк-внешнее-внешнее-государственное-деривация

4.67×101240 (2001)

MUGI

1998-2002

?

128

128

1216

Н/Д (2002)

~282

ПАНАМА

1998

2

256

128?

1216?

Хэш-коллизии (2001)

282

Феликс

до 2004 года

до 8 (Wx86)

256 + 128-битный Nonce

128?

?

Дифференциальный (2006)

237

Пайк

1994

0.9 x FISH (Wsoft)

Огромный

?

?

Н/Д (2004)

Н/Д (2004)

Py

до 2004 года

2.6

8-2048?
Обычно 40-256?

64

8320

Криптаналитическая теория (2006)

275

Кролик

2003-Февраль

3.7(WP3)-9.7(WARM7)

128

64

512

Н/Д (2006)

Н/Д (2006)

RC4

1987

Впечатляющий

8-2048 обычно
40-256

8

2064

Шамирская деривация ключа в начальные байты ИЛИ KPA

213 ИЛИ 233

Сальса20

до 2004 года

4.24 (WG4) -11
.84
(WP4)

128 + 64-битный Nonce

512

512 + 384 (ключ+IV+индекс)

Дифференциальный (2005)

Н/Д (2005)

Крик

2002

4 - 5 (Wsoft)

128 + 128-битный Nonce

32?

64-битная круглая функция

?

?

МОРСКОЙ КОТИК

1997

Очень быстро (W32-бит)

?

32?

?

?

?

ЮНОША

до 2003 года

Очень хорошо (W32-бит)

128 ИЛИ 256

32

?

?

?

СОБЕР-128

2003

?

до 128

?

?

Формуляр сообщений

2−6

SOSEMANUK

до 2004 года

Очень хорошо (W32-бит)

128

128

?

?

?

Тривиум

до 2004 года

4 (Wx86) - 8 (WLG)

80

80

288

Атака грубой силы (2006)

2135

Тьюринг

2000-2003

5,5 (Wx86)

?

160

?

?

?

VEST

2005

42 (ISIC) -64 (WFPGA)

обычно
80-256

обычно
80-256

256 - 800

Н/Д (2006)

Н/Д (2006)

WAKE

1993

Быстрый

?

?

8192

CPA & CCA

Уязвимый

StreamCipher

CreationDate

Скорость
(циклы/байты)

(биты)

Атака

Эффективный
Длина ключа

Вектор инициализации

Внутреннее государство

Самый известный

ComputationalComplexity

Связанные страницы

  • eSTREAM

Вопросы и ответы

В: Что такое потоковый шифр?


О: Потоковый шифр - это шифр с симметричным ключом, в котором биты открытого текста объединяются с потоком псевдослучайных битов шифра (ключевым потоком) с помощью операции исключающее-или (xor).

В: Чем он отличается от блочных шифров?


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

В: Какой тип ключей используется?


О: Потоковые шифры используют гораздо меньшие и более удобные криптографические ключи, например, ключи длиной 128 бит.

В: Как генерируется поток ключей?


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

В: Почему Вы никогда не должны использовать одно и то же начальное состояние дважды?


О: Использование одного и того же начального состояния дважды может привести к серьезным проблемам безопасности, поскольку это облегчает злоумышленникам расшифровку данных без знания или доступа к Вашему криптографическому ключу.

В: Существует ли риск, связанный с использованием потоковых шифров?


О: Да, при неправильном использовании или без принятия надлежащих мер предосторожности существует риск, связанный с использованием потоковых шифров, поскольку они могут быть совершенно небезопасными, если не обращаться с ними должным образом.

AlegsaOnline.com - 2020 / 2023 - License CC3