stringtranslate.com

Поточный шифр

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

Поточный шифр — это симметричный ключевой шифр , в котором цифры открытого текста объединяются с псевдослучайным потоком цифр шифра ( keystream ). В поточном шифре каждая цифра открытого текста шифруется по одной соответствующей цифрой потока ключей, чтобы получить цифру потока шифротекста . Поскольку шифрование каждой цифры зависит от текущего состояния шифра, его также называют шифром состояния . На практике цифра обычно представляет собой бит , а операция объединения — это исключающее ИЛИ (XOR).

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

Свободное вдохновение из одноразового блокнота

Поточные шифры можно рассматривать как приближение к действию проверенного невзламываемого шифра, одноразового блокнота (OTP). Одноразовый блокнот использует поток ключей из совершенно случайных цифр. Поток ключей объединяется с цифрами открытого текста по одной за раз, чтобы сформировать шифротекст. Надежность этой системы была доказана Клодом Э. Шенноном в 1949 году. [1] Однако поток ключей должен быть сгенерирован совершенно случайным образом и иметь по крайней мере ту же длину, что и открытый текст, и не может использоваться более одного раза. Это делает систему громоздкой для внедрения во многих практических приложениях, и в результате одноразовый блокнот не получил широкого распространения, за исключением самых важных приложений. Генерация, распределение и управление ключами имеют решающее значение для этих приложений.

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

Типы

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

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

Шифровальная машина Lorenz SZ , использовавшаяся немецкими военными во время Второй мировой войны

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

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

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

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

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

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

На основе регистров сдвига с линейной обратной связью

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

Нелинейные комбинированные функции

Один из подходов заключается в параллельном использовании n LFSR, а их выходы объединяются с помощью n -входной двоичной булевой функции ( F ).

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

Генераторы с тактовым управлением

Обычно LFSR регулярно ступенчато изменяются. Один из подходов к введению нелинейности заключается в том, чтобы LFSR тактировался нерегулярно, управляемый выходом второго LFSR. Такие генераторы включают в себя генератор «стоп-энд-гоу», генератор переменного шага и генератор сжатия .

Генератор переменного шага состоит из трех LFSR, которые для удобства мы будем называть LFSR0, LFSR1 и LFSR2. Выход одного из регистров решает, какой из двух других будет использоваться; например, если LFSR2 выводит 0, тактируется LFSR0, а если он выводит 1, тактируется LFSR1. Выход представляет собой исключающее ИЛИ последнего бита, произведенного LFSR0 и LFSR1. Начальное состояние трех LFSR является ключом.

Генератор «стоп-энд-гоу» (Бет и Пайпер, 1984) состоит из двух LFSR. Один LFSR тактируется, если выход второго равен 1, в противном случае он повторяет свой предыдущий выход. Затем этот выход (в некоторых версиях) объединяется с выходом третьего LFSR, тактируемого с обычной частотой.

Сжимающий генератор использует другой подход. Используются два LFSR, оба тактируются регулярно. Если выход первого LFSR равен 1, выход второго LFSR становится выходом генератора. Однако, если первый LFSR выводит 0, выход второго отбрасывается, и генератор не выводит ни одного бита. Этот механизм страдает от атак по времени на второй генератор, поскольку скорость выхода является переменной в зависимости от состояния второго генератора. Это можно устранить путем буферизации выхода.

Генератор фильтров

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

Другие проекты

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

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

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

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

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

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

Короткие периоды для потоковых шифров были практической проблемой. Например, 64-битные блочные шифры, такие как DES, могут использоваться для генерации потока ключей в режиме обратной связи по выходу (OFB). Однако, если не использовать полную обратную связь, результирующий поток имеет период около 2 32 блоков в среднем; для многих приложений период слишком мал. Например, если шифрование выполняется со скоростью 8 мегабайт в секунду, поток с периодом 2 32 блока будет повторяться примерно через час.

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

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

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

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

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

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

Сравнение

Интересные факты

Смотрите также

Примечания

  1. ^ Дин, Артур; Краус, Аарон (2021). «Глава 3: Домен 3: Архитектура и проектирование безопасности». Официальный справочник (ISC)2 CISSP CBK (6-е изд.). Хобокен, Нью-Джерси: John Wiley & Sons, Inc. стр. 232. ISBN 978-1-119-78999-4.
  2. ^ «Do the ChaCha: Лучшая производительность мобильных устройств с помощью криптографии». 23 февраля 2015 г.
  3. ^ Гарсия, Флавио Д.; де Конинг Ганс, Герхард; Мюйрерс, Рубен; ван Россум, Питер; Вердулт, Роэль; Шройр, Ронни Вихерс; Якобс, Барт (4 октября 2008 г.). «Демонтаж MIFARE Classic» (PDF) . 13-й Европейский симпозиум по исследованиям в области компьютерной безопасности (ESORICS 2008), LNCS, Springer. Архивировано из оригинала (PDF) 23 февраля 2021 г. . Получено 25 июня 2022 г. .
  4. ^ Лу, Йи; Мейер, Вилли; Воденай, Серж (2005). «Атака условной корреляции: практическая атака на шифрование Bluetooth». Достижения в криптологии – CRYPTO 2005 (PDF) . Конспект лекций по информатике. Том 3621. Санта-Барбара, Калифорния, США. С. 97–117. CiteSeerX 10.1.1.323.9416 . doi :10.1007/11535218_7. ISBN  978-3-540-28114-6. {{cite book}}: |journal=проигнорировано ( помощь )CS1 maint: location missing publisher (link)
  5. ^ Баник, Субхадип; Майтра, Субхамой; Саркар, Сантану (2013). «Дифференциальная атака на МИККИ 2.0». Архив электронной печати по криптологии .
  6. ^ P. Prasithsangaree и P. Krishnamurthy (2003). "Анализ энергопотребления алгоритмов RC4 и AES в беспроводных локальных сетях" (PDF) . IEEE Globecom . Архивировано из оригинала (PDF) 2013-12-03.

Ссылки

Внешние ссылки