stringtranslate.com

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

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

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

История

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

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

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

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

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

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

Блочный шифр

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

Блокировать шифрование

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

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

Детали шифрования потока

Недостатки

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

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

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

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

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

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

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

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

Грубый силовой подход

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

Атака по известному открытому тексту

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

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

Атака по ошибке

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

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

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

  1. ^ Консалтинговая группа Фарнкомб (2009). «На пути к замене общего алгоритма скремблирования DVB» (PDF) (информационный документ). Бейзингсток. Архивировано из оригинала (PDF) 5 июля 2010 г. Проверено 20 ноября 2012 г.
  2. ^ Вайнманн, Ральф-Филипп; Вирт, Кай (2005). «Анализ общего алгоритма скремблирования DVB» (PDF) . У Дэвида Чедвика; Барт Пренил (ред.). Коммуникационная и мультимедийная безопасность . 8-я конференция IFIP TC-6 TC-11 по коммуникационной и мультимедийной безопасности, 15-18 сентября 2004 г., Уиндермир, Озерный край, Великобритания. ИФИП — Международная федерация обработки информации, том 175. Springer. стр. 195–207. дои : 10.1007/0-387-24486-7_15. ISBN 978-0-387-24486-0.
  3. ^ Тьюс, Эрик; Вельде, Джулиан; Вайнер, Майкл (2012). «Нарушение DVB-CSA» (PDF) . У Фредерика Армкнехта; Стефан Лакс (ред.). Исследования в области криптологии . 4-й Западноевропейский семинар, WEWoRC 2011, Веймар, Германия, 20–22 июля 2011 г. Конспекты лекций по информатике. Том. 7242. Спрингер. стр. 45–61. дои : 10.1007/978-3-642-34159-5_4. ISBN 978-3-642-34158-8.
  4. ^ Вирт, Кай (ноябрь 2003 г.). «Атака по ошибке общего алгоритма скремблирования DVB (Отчет 2004/289)». Архив электронной печати по криптологии .

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