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

Common Scrambling Algorithm

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

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

История

До 2002 года CSA в значительной степени держалась в секрете. Патентные документы содержали некоторые подсказки, но важные детали, такие как расположение так называемого 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.

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

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

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

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

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

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

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

Атака неисправности

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

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

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

  1. ^ «Архивная копия» (PDF). Архивировано из оригинал (PDF) на 2010-07-05. Получено 2012-11-20.CS1 maint: заархивированная копия как заголовок (связь)
  2. ^ http://sec.cs.kent.ac.uk/cms2004/Program/CMS2004final/p5a1.pdf
  3. ^ Тьюс, Эрик; Вельде, Джулиан; Вайнер, Майкл (2011). «Взлом DVB-CSA». WEWoRC 2011.
  4. ^ Вирт, Кай (ноябрь 2003 г.). «Сбойная атака на общий алгоритм скремблирования DVB (Отчет 2004/289)». Архив криптологии ePrint.

внешняя ссылка