Общий алгоритм скремблирования
Общий алгоритм скремблирования ( 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 ] был опубликован на блочном шифре. Основная идея заключалась в том, чтобы внести несколько преднамеренных ошибок в промежуточные вычисления, что позволило бы вывести ключи последних восьми раундов. Исходя из этого, можно вычислить окончательный ключ.
Хотя требуется очень мало ошибок (в среднем две или три за раунд восстановления ключа), проводить атаки по ошибкам обычно непрактично, поскольку требуется возможность изменять биты по желанию внутри аппаратного обеспечения декодера, в котором уже есть ключ. вопрос.
Ссылки
[ редактировать ]- ^ Консалтинговая группа Фарнкомб (2009 г.). «На пути к замене общего алгоритма скремблирования DVB» (PDF) (информационный документ). Бейзингсток. Архивировано из оригинала (PDF) 5 июля 2010 г. Проверено 20 ноября 2012 г.
- ^ Вайнманн, Ральф-Филипп; Вирт, Кай (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 .
- ^ Тьюс, Эрик; Вельде, Джулиан; Вайнер, Майкл (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 .
- ^ Вирт, Кай (ноябрь 2003 г.). «Атака по ошибке общего алгоритма скремблирования DVB (Отчет 2004/289)» . Архив электронной печати по криптологии .