Общий алгоритм скремблирования

редактировать

The Общий алгоритм скремблирования (CSA ) - это алгоритм шифрования, используемый в DVB вещании цифрового телевидения для шифрования видеопотоки.

CSA был определен ETSI и принят консорциумом DVB в мае 1994 года. На смену ему пришел CSA3, основанный на комбинации o f 128-битный AES и конфиденциальный блочный шифр XRC. Тем не менее, CSA3 пока не используется в значительной степени, поэтому CSA продолжает оставаться доминирующим шифром для защиты вещания DVB.

Содержание
  • 1 История
  • 2 Описание шифра
    • 2.1 Блочный шифр
    • 2.2 Потоковый шифр
  • 3 Слабые стороны
    • 3.1 Программные реализации и разделение битов
    • 3.2 Криптоанализ
    • 3.3 Подход грубой силы
    • 3.4 Атака с использованием известного открытого текста
    • 3.5 Атака с ошибкой
  • 4 Ссылки
  • 5 Внешние ссылки
История

CSA в значительной степени держалась в секрете до 2002 года. документы давали некоторые подсказки, но важные детали, такие как расположение так называемых S-блоков, оставались в секрете. Без них бесплатная реализация алгоритма была невозможна. Первоначально CSA должна была оставаться реализованной только аппаратно, что затрудняло обратное проектирование существующих реализаций.

В 2002 году был выпущен FreeDec, внедряющий CSA в программное обеспечение. Хотя он был выпущен только как двоичный, дизассемблер выявил недостающие детали и позволил повторно реализовать алгоритм на языках программирования более высокого уровня.

Теперь, когда CSA полностью известна, криптоаналитики начали искать слабые места.

Описание шифра

Алгоритм CSA состоит из двух различных шифров: блочного шифра и потокового шифра.

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

Блочный шифр

Блочный шифр обрабатывает 64-битные блоки за 56 циклов. Он использует 1 байт из расширенного ключа в каждом раунде.

Блочное шифрование шифра

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

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

Подробная информация о потоковом шифровании

Слабые стороны

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

Большинство атак на систему платного телевидения нацелены не на сам CSA, а на различные системы обмена ключами, отвечающие за генерацию ключей CSA (Conax, Irdeto, VideoGuard и т. Д.) Либо путем обратного проектирования и полного взлома алгоритмов, либо путем перехвата ключей в реальном времени, когда они генерируются на законном декодере, и затем передачи их другим (так что- называется совместное использование карты ).

Программные реализации и битовое разделение

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

Часть блочного шифра сложнее разбить на бит, так как задействованные S-блоки слишком велики (8x8), чтобы их можно было эффективно реализовать с помощью логических операций, что является предпосылкой для большей эффективнее, чем обычная реализация. Однако, поскольку все операции выполняются с 8-битными субблоками, алгоритм может быть реализован с использованием обычного SIMD или формы «нарезания байтов». Поскольку большинство наборов инструкций SIMD (за исключением AVX2 ) не поддерживают параллельные таблицы поиска, поиск в S-блоках выполняется в небайтовой реализации, но их интеграция в остальную часть Нарезание байтов заметно не мешает алгоритму.

Оба метода используются в libdvbcsa, бесплатной реализации CSA.

Криптоанализ

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

Подход грубой силы

Хотя алгоритм CSA использует 64-битные ключи, большую часть времени, неизвестны только 48 битов ключа, поскольку байты 3 и 7 используются как байты четности в системах CA и могут быть легко пересчитаны. Это допускает возможные атаки с известным открытым текстом в сочетании со знанием базовой структуры открытого текста. Поскольку первые три байта заголовка PES всегда равны 0x000001, было бы возможно запустить атаку грубой силой . Такая атака выявила бы миллионы возможных ключей, но все же их было бы достаточно, чтобы можно было попытаться расшифровать другие части данных с тем же ключом во втором проходе, чтобы восстановить истинный ключ.

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

В 2011 году группа немецких исследователей осуществила атаку на CSA, используемый в системе DVB. Отметив, что заполнение MPEG-2 часто требует длинных серий нулей, что приводит к тому, что целые 184-байтовые ячейки зашифровываются только нулями, можно создать радужную таблицу, восстанавливая ключ из таких известных - нулевой блок. (Известно, что блок равен нулю, если были найдены два блока с одинаковым зашифрованным текстом, поскольку предположительно оба будут нулевыми блоками.) Описанная атака потребует около 7,9 ТБ памяти и позволит злоумышленнику с GPU, чтобы восстановить ключ примерно за семь секунд с точностью 96,8%. Однако атака эффективна только тогда, когда присутствуют такие блоки заполнения с нулевыми значениями (то есть в сценах с очень небольшим движением или шумом), и ее можно было бы легко смягчить, например, отправив такие незашифрованные ячейки с нулевыми значениями.

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

Атака сбоя

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

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

Ссылки
  1. ^«Архивная копия» (PDF). Архивировано из оригинального (PDF) 05.07.2010. Проверено 20 ноября 2012 г. CS1 maint: заархивированная копия как заголовок (ссылка )
  2. ^http://sec.cs.kent.ac.uk/cms2004/Program/CMS2004final/p5a1.pdf
  3. ^Tews, Erik; Wälde, Julian; Weiner, Michael (2011). «Нарушение DVB-CSA». WEWoRC 2011.
  4. ^Wirt, Kai (ноябрь 2003 г.). «Неудачная атака на общий алгоритм скремблирования DVB (отчет 2004/289) «. Архив ePrint Cryptology.
Внешние ссылки
Последняя правка сделана 2021-05-15 07:12:01
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте