stringtranslate.com

Потоковое шифрование

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

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

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

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

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

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

Типы

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

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

Шифровальная машина Лоренца 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 — одна из наиболее широко используемых схем потокового шифрования.

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

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

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

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

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

Короткие периоды для потоковых шифров были практической проблемой. Например, 64-битные блочные шифры, такие как DES, могут использоваться для генерации потока ключей в режиме обратной связи по выходу (OFB). Однако, если не использовать полную обратную связь, результирующий поток имеет период в среднем около 232 блоков; для многих приложений этот период слишком мал. Например, если шифрование выполняется со скоростью 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. ИСБН 978-1-119-78999-4.
  2. ^ «Сделайте 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 . дои : 10.1007/11535218_7. ISBN  978-3-540-28114-6. {{cite book}}: |journal=игнорируется ( помощь )CS1 maint: location missing publisher (link)
  5. ^ Баник, Субхадип; Майтра, Субхамой; Саркар, Сантану (2013). «Дифференциальная атака на МИККИ 2.0». Архив электронной печати по криптологии .
  6. ^ П. Праситсангари и П. Кришнамурти (2003). «Анализ энергопотребления алгоритмов RC4 и AES в беспроводных локальных сетях» (PDF) . IEEE Глобеком . Архивировано из оригинала (PDF) 3 декабря 2013 г.

Рекомендации

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