Common Scrambling Algorithm
CSA (англ. Common Scrambling Algorithm — загальний алгоритм скремблювання) — алгоритм шифрування для захисту цифрового телевізійного потоку від несанкціонованого доступу. Алгоритм був розроблений організацією «ETSI» і прийнятий на консорціумі DVB в травні 1994 року.
Використання алгоритму
ред.Згідно з документами, опублікованими організацією DVB, всі технічні деталі алгоритму «CSA» є секретними. Будь-яка організація, яка бажає використовувати цей алгоритм шифрування при створенні власної системи умовного доступу, повинна отримати відповідну ліцензію і підписати угоду про нерозголошення отриманої інформації. Ці вимоги залишаються в силі попри те, що в даний час деталі алгоритму повсюдно відомі та проведено його ретельний криптоаналіз.
Історія
ред.У розробці алгоритму брали участь 4 європейські організації, що входять до складу ETSI, які в подальшому стали хранителями алгоритму. Це такі організації, як «Canal + SA», «Centre Commun d'Etudes de Télédiffusion et Télécommunications», «Irdeto BV» і «News Datacom Limited». Формально під назвою «Common Scrambling Algorithm» маються на увазі дві незалежні системи: Загальна система дешифрування (Common Descrambling System) і Технологія шифрування (Scrambling Technology).
Алгоритм «CSA» був повністю засекречений аж до 2002 року. Деякі деталі його реалізації можна було визначити з документів, таких як патенти. Однак найістотніші частини алгоритму, такі як S-блоки, були засекречені. Це робило неможливим використання алгоритму сторонніми розробниками без отримання відповідної ліцензії від DVB. В цей час всі реалізації алгоритму були виключно апаратними, що також ускладнювало зворотну розробку і відтворення алгоритму в будь-якому вигляді.
У 2002 році в світ вийшла програма FreeDec, в якій був програмно реалізований алгоритм «CSA». Аналіз виконуваних файлів цієї програми дозволив отримати дизасемблюваний код алгоритму з усіма відсутніми деталями. Після того, як алгоритм став розсекречений, у криптоаналітиків з'явилася можливість шукати його слабкі місця.
Криптоаналіз алгоритму
ред.В алгоритмі «CSA» існує ряд слабких місць, які дозволяють розкривати зашифровані повідомлення методами сучасного криптоаналізу.
Оскільки алгоритм був розроблений виключно для застосування в галузі передачі цифрового телевізійного потоку, стають заздалегідь відомі деякі ділянки відкритих повідомлень. До них належать заголовки MPEG-пакетів, деякі фрагменти яких мають передбачувану структуру. З точки зору криптоаналізу така особливість є суттєвою слабкістю криптографічного алгоритму, яка в даному випадку неминуча.
Як відомо, довжина ключа в «CSA» становить всього 64 біта (8 байт) і за сучасними криптографічними мірками криптографічним є дуже малою. Така довжина цілком допускає злом ключа методом грубої сили за скінченний час, який ще більше полегшується з урахуванням першої описаної слабкості. Більш того, фактична довжина секретного ключа становить всього 48 біт, оскільки два байти з восьми використовуються як контрольна сума (байти з номерами 3 і 7, якщо занумерувати байти ключа від 0 до 7). Ці байти обчислюються шляхом складання по модулю двох-трьох попередніх байт. Ще 16 біт можна визначити за допомогою таблиць пам'яті, побудованих на основі шифротексту. Таким чином, прямий перебір потрібно застосовувати тільки до 32 біт з 64, а другу половину ключа обчислювати на основі першої. При реалізації такого підходу на основі «ПЛІС» або з використанням «Cell-процесора» підбір ключа повинен займати не більше 1 секунди. Однак, щоб перевірити, чи є підібраний ключ вірним, необхідно проаналізувати заголовки отриманих MPEG-пакетів. Це створює певні обчислювальні труднощі при реалізації методів злому.
Після того, як були виявлені слабкості алгоритму «CSA», стало можливим в принципі отримати доступ до будь-яких відео даних, зашифрованих з його використанням. Це створює певні труднощі для численних мовників цифрового телебачення в Європі та інших місцях, що використовують системи умовного доступу на основі алгоритму «CSA». Попри це, ніякі криптографічні атаки на алгоритм в даний час не опубліковано, і він продовжує широко використовуватися.
Це незавершена стаття про алгоритми. Ви можете допомогти проєкту, виправивши або дописавши її. |
Ця стаття не містить посилань на джерела. (березень 2012) |