Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

История [ править ]

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, Nagravision , 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 ТБ памяти и позволит злоумышленнику с графическим процессоромвосстановить ключ примерно за семь секунд с точностью 96,8%. Однако атака эффективна только тогда, когда присутствуют такие блоки заполнения с нулевыми значениями (т. Е. В сценах с очень небольшим движением или шумом), и ее можно было бы легко смягчить, например, отправив такие незашифрованные ячейки с нулевыми значениями.

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

Атака с ошибкой [ править ]

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

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

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • Анализ общего алгоритма скремблирования DVB
  • libdvbcsa: бесплатная реализация общего алгоритма скремблирования DVB.
  • Улучшенный криптоанализ общего алгоритма скремблирования потокового шифра
  • ETSI.org DVB CSA системы