Содержание к диссертации
Введение
1. Проблема защиты цифровой продукции от несанкционированного копирования 16
1.1. Методы защиты цифровой продукции 16
1.1.1. Технические методы защиты цифровой продукции 16
1.1.2. Правовые аспекты защиты цифровой продукции в РФ 17
1.2. Средства защиты программной продукции 20
1.3. Общие средства защиты цифровой продукции 22
1.4. Принципы, лежащие в основе общих средств защиты цифровой продукции 24
1.5. Необходимость реализации и исследования новых средств защиты цифровой продукции от несанкционированного копирования 28
1.6. Выводы 28
Глава 2. Списочное декодирование и его применение в помехоустойчивом кодировании 30
2.1. Обобщенные коды Рида-Соломона и некоторые конкатенированные коды 31
2.1.1. Обобщенные коды Рида-Соломона. Кодирование ОРС-кодов 31
2.1.2. Специальное конкатенирование ОРС-кодов с кодами Адамара. Кодирование КОРСА-кодов 32
2.2. Реализация списочного декодера Гурусвами-Судана для ОРС-кодов 33
2.2.1. Необходимые сведения об алгоритме списочного декодирования Гурусвами-Судана для ОРС-кодов 33
2.2.1.1. Принципиальный алгоритм списочного декодирования Гурусвами-Судана для ОРС-кодов 34
2.2.1.2. Алгоритм Ольшевского-Шокроллаи, реализующий шаг интерполяции алгоритма Гурусвами-Судана для ОРС-кодов 35
2.2.1.3. Алгоритм Рота-Руккенштейн, реализующий шаг факторизации алгоритма Гурусвами-Судана для ОРС-кодов 39
2.2.2. Структурная схема декодера 41
2.2.3. Программная реализация декодера 42
2.3. Списочный декодер для КОРСА-кодов и его реализация 46
2.3.1. Построение алгоритма списочного декодирования для КОРСА- кодов 46
2.3.2. Структурная схема декодера 50
2.3.3. Программная реализация декодера 51
2.4. Применение списочных декодеров в помехоустойчивом кодировании 54
2.4.1. Стратегии выбора истинного кодового слова из списка выхода декодера 54
2.4.2. Модель помехоустойчивого канала на основе списочного декодера 61
2.4.3. Экспериментальные исследования помехоустойчивого канала на основе списочного декодера 61
2.5. Выводы 67
Глава 3. Схема специального широковещательного шифрования на основе помехоустойчивых кодов и списочного декодирования и ее математическая модель 68
3.1. Схемы специального широковещательного шифрования (ССШШ) 69
3.1.1. Основные элементы ССШШ 69
3.1.2. Классификация ССШШ 74
3.1.3. Схемы специального широковещательного шифрования, основанные на кодах и списочных декодерах 81
3.2. Математическая модель ССШШ 83
3.2.1. Математическая модель распространения данных 83
3.2.2. Математическая модель коалиционной атаки 86
3.2.3. Условия на коды и декодеры для последующего применения в ССШШ 89
3.2.4. Математическая модель противодействия коалиционным атакам.92
3.2.4. Анализ производительности алгоритма противодействия коалиционным атакам 97
3.3 Теоретическое исследование ССШШ в случае превышения пороговой мощности коалиции 100
3.3.1. Классификация угроз пользователю ССШШ и формулировка основных результатов о границах областей компрометации 100
3.3.2. Вспомогательные леммы и доказательство теоремы 3.1 103
3.3.2.1. Доказательство леммы 3.6 и следствия 3.1 103
3.3.2.2. Доказательство леммы 3.7 и теоремы 3.1 103
3.3.3. Вспомогательные леммы и доказательство теоремы 3.2 105
3.3.3.1. Вычисление Я3'(С) и R3(Q 105
3.3.3.2. Верхняя оценка для i?2(Q 107
3.3.3.3. Вычисление Я,'(С) и Я,(С) 109
3.3.3.4. Доказательство теоремы 3.2 .' 110
3.4. Экспериментальное исследование границ применения ССШШ.. ПО
3.4.1. Методика проведения экспериментов 110
3.4.2. Результаты экспериментов 111
3.5. Выводы 115
Глава 4. Программный пакет, реализующий схему специального широковещательного шифрования 117
4.1. Используемые библиотеки 117
4.2. Особенности программной реализации модели распространения данных ССШШ 119
4.2.1. Программное обеспечение распространителя данных 119
4.2.2. Программное обеспечение пользователя 126
4.3. Особенности программной реализации моделей защиты от коалиционных атак ССШШ, программное обеспечение контролера 128
4.4. Особенности программной реализации моделей коалиционной атаки ССШШ, программное обеспечение коалиции 132
4.5. Возможные области применения программной реализации ССШШ 138
4.6. Выводы 139
Заключение 141
Список литературы 142
Приложение 149
- Необходимость реализации и исследования новых средств защиты цифровой продукции от несанкционированного копирования
- Реализация списочного декодера Гурусвами-Судана для ОРС-кодов
- Схемы специального широковещательного шифрования, основанные на кодах и списочных декодерах
- Особенности программной реализации модели распространения данных ССШШ
Введение к работе
Проблема защиты тиражируемой цифровой продукции от несанкционированного распространения является весьма актуальной. Она возникла с появлением персональных компьютеров, оборудованных устройствами записи на гибкие магнитные диски, и усилилась с появлением пользовательских устройств записи на CD. С начала девяностых годов эта проблема активно исследуется. Разрабатываемые системы и средства значительно снижают долю пиратской продукции в мире, при этом они позволяют защищать не только программное обеспечение, но и другие виды цифровой продукции, в частности: каналы платного телевидения, электронные книги, аудио- и видеозаписи, распространяемые как на лазерных дисках, так и посредством файлов через Интернет. Фундаментальные работы в области исследования таких систем принадлежат таким авторам как С. Бер-кович, Б. Чор, А. Фиат, М. Нао, Т. Тасса, В. Дзенг, К. Куросава, И. Десмедт, Д. Бони, М. Франклин, М: Абдалла, И. Шавитт, А. Вул, М. Янг, М. Ким, Н. Коган, Д. Хелви, Б. Пинкас, Г. Кабатянский и др.
Такие системы основываются на уникальной маркировке копий защищаемых данных, на стойкости аппаратных и программных реализаций к взлому, на криптографической защите данных с уникальными ключами пользователей. Каждый из этих типов систем имеет свои недостатки: уникальная маркировка копий затрудняет процесс тиражирования цифрового продукта, стойкость аппаратных и программных реализаций к взлому зачастую не является достаточно высокой, системы же, основанные на криптографической защите данных с уникальными ключами пользователей являются достаточно дорогостоящими. На практике большинство известных систем защиты основывается на криптографической защите. Среди причин, обуславливающих актуальность разработки новых систем защиты, выделим следующие. Во-первых, широко используемые системы защиты цифровой продукции могут оказываться взломанными. Примером является взлом известной системы защиты DVD-дисков CSS. Во-вторых, со временем разрабатываются и внедря ются в широкое применение новые стандарты распространения цифровой продукции, требующие защиты передаваемых ими данных. Примером может служить стандарт телевидения высокой четкости HDTV и стандарт лазерных дисков нового поколения Blu-ray.
В последние годы активно разрабатываются и внедряются облегченные модификации систем, основанных на криптографической защите, именуемые схемами специального широковещательного шифрования (ССШШ). В этих модификациях являющиеся злоумышленниками легальные пользователи могут объединяться в коалиции с целью произвести атаку на ключ. Однако, для современных достаточно больших тиражей большинство известных алгоритмов противодействия таким атакам являются низкоэффективными и требуют больших вычислительных ресурсов. В фундаментальных работах Г. Кабатянского (ИГШИ РАН, 2005 г.) доказано, что существуют -ичные помехоустойчивые коды, позволяющие осуществлять противодействие коалиционным атакам эффективно, без применения больших вычислительных ресурсов, путем нахождения как минимум одного из членов коалиции с помощью декодирования такого кода, при условии, что число злоумышленников не превышает пороговой мощности с=2. Очевидно, актуальным является построение и исследование таких схем, а также схем, в которых пороговая мощность коалиции существенно превосходит порог с=2.
В настоящее время в разработку новых систем защиты цифровой продукции активно внедряются современные алгебраические методы, методы помехоустойчивого кодирования, комбинаторика, теория графов. А. Сильверберг, Дж. Стэддон и Дж. Уолкер доказали теоретическую возможность построения новых эффективных систем защиты, основанных на применении обобщенных кодов Рида-Соломона, некоторых конкатенированных и алгебро-геометрических кодов и методов списочного декодирования. Очевидно, актуальным является использование этих результатов для построения новых ССШШ с достаточно высоким порогом противодействия коалиционным атакам. Наиболее существенным моментом в этих результатах является приме нение списочного декодирования. Создание М. Суданом и В. Гурусвами в 1999 году принципиального алгоритма списочного декодирования для ОРС-кодов (далее АСДГС) явилось крупным прорывом в теории кодирования. АСДГС имеет достаточно сложную структуру: использует интерполяцию и факторизацию многочленов двух переменных над расширением базового поля Галуа и способен с полиномиальной сложностью работать за пределами минимального кодового расстояния. Однако, в силу указанной сложности в настоящее время известно мало работ в области построения и практической реализации списочных декодеров и нередко они носят частный характер. Например, построенный в лаборатории информационных технологий анализа и защиты данных ИППИ РАН программный комплекс «Судан», включающий декодер Гурусвами-Судана и предшествующий ему декодер Судана, оперирует только с полями характеристики 2. Последнее с учетом актуальности применения списочных декодеров в ССШШ свидетельствует об актуальности усиления арифметических возможностей списочного декодирования путем перехода от стандартных полей характеристики 2 к полям произвольной характеристики, создания программных средств в области списочного декодирования с многофункциональным применением, а также об актуальности построения новых списочных декодеров. Отметим, что методы списочного декодирования, развитые в работах М. Судана, В. Гурусвами, Р. Рота, Р. Рук-кенштейн, М. Кудряшева и других математиков, активно применяются не только при решении проблемы передачи данных, но и в таких областях, как теория и практика обучения с запросами, защита данных и теория сложности.
Идеи схем специального широковещательного шифрования являются достаточно новыми, и в настоящее время отсутствуют исследования, касающиеся классификации угроз легальным пользователям и возможности использования ССШШ в случае превышения пороговой мощности коалиции.
Таким образом, актуальными являются как разработка, исследование и реализация моделей защиты данных от несанкционированного копирования, основанных на современных математических методах и предусматривающих возможность противодействия коалиционным атакам на ключи, так и выявление новых классификаций угроз легальным пользователям, а также получение теоретических и экспериментальных результатов о возможности использования этих схем в случае превышения пороговой мощности коалиции.
Теоретический аспект сформулированной проблемы состоит в необходимости построения математических моделей новых эффективных схем защиты тиражируемых цифровых данных от несанкционированного копирования, разработки алгоритмов списочного декодирования для базовых кодов схем защиты, проведения теоретического и создания методик экспериментального исследования возможности использования ССШШ в случае превышения пороговой мощности коалиции.
Практический аспект проблемы заключается в необходимости экспериментального исследования возможности использования ССТТПТТ в случае превышения пороговой мощности коалиции, анализа области практического использования этих схем.
Областью исследования является разработка методов и средств защиты информации в системах электронной коммерции; развитие теории защиты информации различными техническими и математическими методами для создания перспективных средств защиты информации; а также разработка алгоритмов, методов и систем технической защиты информации, обеспечивающих, в частности, предотвращение утечки информации и выявление признаков фальсификации информационных материалов.
Целью диссертационной работы является повышение эффективности защиты информации в системах электронной коммерции.
Задачами исследования являются: построение модели эффективной защиты тиражируемых цифровых данных от несанкционированного копирования с противодействием угрозам коалиционных атак на ключи; разработка классификации угроз пользователю модели защиты и получение теоретических и экспериментальных результатов о возможности практического использования схемы защиты в случае превышения пороговой мощности коалиции; разработка и реализация методов, моделей и алгоритмов списочного декодирования помехоустойчивых кодов, являющихся основным инструментом при построении схемы защиты.
При выполнении работы использовались методы общей алгебры, теории вероятности, комбинаторики, криптографии, теории помехоустойчивого кодирования.
На защиту выносятся следующие результаты.
1. Общая математическая модель эффективной защиты тиражируемых цифровых данных от несанкционированного копирования, основанная на методе наборных ключей, помехоустойчивых кодах, списочных декодерах, с противодействием коалиционным атакам на ключи и ее конкретизации для ОРС-кодов и конкатенированных кодов, а также основанные на их программной реализации методы и средства защиты информации в системах электронной коммерции.
2. Классификация различных видов угроз пользователю модели защиты в случае превышения пороговой мощности коалиции и полученные на основе этой классификации теоретические результаты о границах областей компрометации пользователей, представляющие, в частности, математический аппарат для создания и исследования перспективных моделей и средств защиты информации на основе алгебро-геометрических кодов.
3. Методика экспериментального исследования модели защиты в случае превышения границ областей компрометации пользователей, обеспечивающая с целью предотвращения утечки информации выявление признаков фальсификации информационных материалов; результаты экспериментов и рекомендации по практическому применению схемы защиты, основанной на ОРС-кодах и АСДГС.
4. Алгоритм списочного декодирования для ОРС-кодов, конкатенированных с кодами Адамара, и соответствующие структурные схемы для полей произвольной характеристики, представляющие основной инструмент при разработке и реализации рассматриваемой системы технической защиты ин формации, а также рекомендации по применению списочных декодеров в помехоустойчивом кодировании.
Необходимость реализации и исследования новых средств защиты цифровой продукции от несанкционированного копирования
Рассмотрим причины, обуславливающие необходимость реализации и исследования новых средств защиты цифровой продукции от несанкционированного копирования.
Во-первых, некоторые, в том числе даже широко известные ТСЗАП, могут оказываться взломанными. Так известная система защиты DVD-дисков CSS (см. раздел 1.3) в 1999 оказалась взломанной, и в операционной системе Linux появились дистрибутивы программ, позволяющих свободно просматривать содержимое защищенных данных (см., например, [24]).
Во-вторых, со временем разрабатываются и внедряются в широкое применение новые стандарты распространения цифровой продукции, требующие защиты передаваемых ими данных. Актуальным примером является упомянутые выше стандарт телевидения высокой четкости HDTV и стандарт лазерных дисков нового поколения Blu-ray.
В-третьих, очевидно, новые ТСЗАП являются представляющими интерес в случае, если они являются более эффективными по сравнению с предшествующими. Кроме того, остается насущной проблема защиты некоторых распространяющих данные систем, например, распространяющих цифровую продукцию сайтов Интернета [9].
На основе приведенного обзора технических методов и юридических аспектов защиты цифровой продукции в РФ, а также рассмотрения специфичных средств, используемых для защиты программной продукции и общих средств защиты цифровой продукции от несанкционированного копирования, лежащих в их основе принципов, в главе выделены находящие широкое применение системы, основанные на криптографических методах, называемые схемами специального широковещательного шифрования. Показана необходимость реализации и исследования новых эффективных средств защиты такого типа. Указана теоретическая возможность создания новых эффективных ССШШ, основанных на помехоустойчивых кодах и списочных декодерах и выявлена актуальность находящих все более широкое развитие и применение перспективных методов списочного декодирования.
Крупным прорывом в теории помехоустойчивого кодирования было создание М. Суданом в 1997 году принципиального списочного декодера для кодов Рида-Соломона (РС-кодов) [48]. Декодер использует интерполяцию и факторизацию многочленов двух переменных над расширением базового поля Галуа и способен с полиномиальной сложностью работать за пределами минимального кодового расстояния. В работе [49] (см. также [50]), на основе декодера Судана был получен декодер Гурусвами-Судана для обобщенных кодов Рида-Соломона (ОРС-кодов), имеющий лучшие корректирующие способности. В работе [36], с. 177 была показана теоретическая возможность списочного декодирования ОРС-кодов, специальным образом конкатенированных с кодами Адамара (КОРСА-кодов).
Списочное декодирование является сравнительно новой, интересной частью теории помехоустойчивого кодирования. В отличие от многих декодеров, разрабатываемых для применения в системах передачи данных, списочные декодеры имеют немало прикладных областей. Так, первый списочный декодер для кодов Рида-Соломона, появившийся в 1997 году, разрабатывался М. Суданом для применения в теории обучения (см., например, [36]). Следующий за ним усовершенствованный списочный декодер Гурусвами-Судана для ОРС-кодов может быть применен, в частности, в теории алгоритмов (см., например, [37], [38]), теории сложности (см., например, [39]). Помимо этого в работах [41], [42], соавтором которых, в частности, является автор настоящей работы, исследовано применение списочного декодирования в каналах передачи данных, а в работе [43] доказана теоретическая возможность эффективного применения списочного декодирования для защиты цифровой продукции от несанкционированного распространения.
Однако, в настоящее время известно мало работ в области практической реализации списочных декодеров и нередко они носят частный характер. Например, построенный в лаборатории информационных технологий анализа и защиты данных ИППИ РАН программный комплекс «Судан», включающий декодер Судана и декодер Гурусвами-Судана [40], оперирует только с полями Галуа характеристики два. Это свидетельствует об актуальности создания новых программных средств в практике списочного декодирования.
В работе [51] автором реализован программно декодер Судана для РС-кодов. Цель данной главы — построение структурных схем и программных реализаций списочных декодеров как для более общих ОРС-кодов, так и для КОРСА-кодов. Особенностью представленных схем является применение в модели списочного декодера для ОРС-кодов длины г и размерности к алгоритма факторизации Рота-Руккенштейн [52], позволяющего эффективно, со сложностью 0{{4гк + \ogq)r\og2(r/к)), проводить факторизацию полиномов двух переменных над полем Галуа Fq.
Реализация списочного декодера Гурусвами-Судана для ОРС-кодов
Основное отличие рассмотренной схемы от предшествующей схемы декодера Судана для кодов Рида-Соломона [51] заключается в использовании улучшенной процедуры интерполяции, а именно, алгоритме Ольшевского-Шокроллаи или, согласно оригинальной версии Гурусвами-Судана, улучшенной интерполяционной матрицы М. Это позволяет исправлять большее число ошибок, а также учитывать веса символов входного вектора. Будем строить программную реализацию рассмотренной структурной схемы "весовой" версии декодера Гурусвами-Судана для ОРС-кодов как C++ производный класс GSRSwghtlstDecoder базового класса RSlstDecoder. Кроме того, выделим промежуточный класс GSRSlstDecoder, включающий общую функциональность деко-дера Гурусвами-Судана для ОРС-кодов и его "весовой" версии. Функция-член RSlstDecoder::CreateGmatrix(), строящая интерполяционную матрицу для возможности усовершенствования декодера определена в классе как виртуальная. Переопределим ее тело в GSRSwghtlstDecoder, как функцию, создающую улучшенную матрицу М. Подобным образом переопределим тела вспомогательных функций инициализации и расчета параметров, например, функции, вычисляющей начальные значения параметров декодера RSlstDecoder::Init(long р, long п, long d), и функции, вычисляющей длину интерполяционной матрицы RSlstDecoder: :CalcGMonomeCount(). Переопределенные функции будут обеспечивать корректную работу с полями базового и производного классов с учетом специфики последнего. Для реализации же алгоритма Олыневского-Шокроллаи определим новую процедуру интерполяции в декодере.
Рассмотрим открытые функции-члены класса GSRSwghtlstDecoder и базовых классов, необходимые для работы с ним. Конструктор GSRSwghtlstDecoder:: GSRSwghtlstDecoder(long q, long r, long к). На вход принимает мощность поля, длину и размерность ОРС-кода; проводит инициализацию декодера: создает объект класса GSRSwghtlstDecoder; инициализирует поля класса, содержащие неизменяющиеся до новой инициализации параметры декодера; фиксирует упорядочение элементов поля Галуа. Можно использовать конструктор без параметров и RSlstDecoder::Init(long q, long r, long к), вызывающий виртуальные функции класса GSRSwghtlstDecoder. Далее, если функция возвращает значение типа int, то при отсутствии описания этого значения будем подразумевать под ним код ошибки: -1 - некорректный набор входных параметров, 0 - отсутствие ошибки. Функция int GSRSwghtlstDecoder::SetT(long t) изменяет значение управляющего параметра t, производит необходимую инициализацию изменяющихся параметров декодера. При этом наименьшее допустимое значение / можно получить вызовом GetMinT(). Если SetT не будет вызван, значение t будет установлено по умолчанию как минимальное. Функция int GSRSwghtlstDecoder::SetDecodedWord(const q_vec 8cercw, const r_vec Sew) на вход принимает декодируемое слово и вектор весов его символов; подает кодовое слово на вход декодера; производит дополнительную инициализацию изменяющихся параметров декодера. Тип q_vec (соответственно, r_vec) - класс, производный от класса векторов над полем Галуа (соответственно, над вещественным полем) библиотеки WinNTL-5_4_l, включающий дополнительные проверки, в частности, контроль переполнения буфера. Функция int RSlstDecoder:-.Decode() производит декодирование поданного на вход функцией SetDecodedWord слова. Функция Lst_q_polyn RSlstDecoder::GetResultListMsgsO возвращает список сообщений выхода декодера в полиномиальном виде; тип Lst_q_polyn определен как динамический массив указателей на элементы пространства полиномов над полем Fq. Функция RSlstDecoder::PrintDecodeResults() выводит список кодовых слов выхода декодера на стандартный вывод.
Имеются также вспомогательные функции-члены: функция RSlstDecoder::PrintErrMsg() выводит сообщение о последней ошибке декодера с указанием блока, в котором она произошла; функция Lst_q_vec RSlstDecoder::GetResultListCode() выдает список выхода декодера в виде кодовых слов; тип Lst_q_vec определен как динамический массив указателей на векторы над полем Fq.
Рассмотрим реализацию блоков приведенной структурной схемы декодера. Наибольший интерес в реализации представляют функции-члены. Рассмотрим последовательность вызовов приведенных ниже основных функций. \
При этом возвращаемые значения уточнять не будем, так как они либо пусты, либо являются кодом ошибки и в данный момент интереса не представляют. Отметим, что все кроме рассмотренных выше открытых функций являются защищенными.
CqXYfactor: :Factorizate(int p_d) RSlstDecoder::ComputeCorespondingMsgs() Блок Б1 реализуется двумя функциями-членами. Первая, RSlstDecoder: :Init(long q, long r, long к), принимает указанные на схеме входные параметры декодера q, г, к, вызывает статические функции-члены классов библиотеки WinNTL-5_4_l, инициализирующие поле F , а затем виртуальный GSRSlstDecoder::InitStaticParams(long q, long г, long к), производящий инициализацию полей класса, отвечающих, в частности, за параметры ОРС-кода. Вторая функция, GSRSwghtlstDecoder::SetT(long і), устанавливает значение параметра / и вызывает виртуальную функцию GSRSwghtlstDecoder: :InitDynamicParams(long t), рассчитывающую, в частности, значение параметров декодера т,1,тх,...,тг и вспомогательных, таких как высота и длина интерполяционной матрицы М. Последующие блоки БЗ Б4 и частично блок Б2 реализуются функциями, выполняемыми приведенной выше функцией Decode(). Блок Б2 реализуется двумя функциями. Первая, GSRSwghtlstDecoder::SetDecodedWord(const q_vec &cw, const r_vec Scwgt), принимает на вход указанные на схеме слово у и вектор весов w, подающиеся на вход декодера, и инициализирует соответствующие поля класса GSRSwghtlstDecoder и базовых классов. Вторая - виртуальная функция GSRSwghtlstDecoder::CreateGmatrix() - реализует построение интерполяционной матрицы М. Блок БЗ реализуется функцией RSlstDecoder:: CalcNonzeroGmatrixSolution(), который находит решение системы Mg = О, применяя метод Гаусса библиотеки WinNTL-5_4_l. Блок Б4 реализуется функцией RSlstDecoder::VecToGBivPoly(const q_vec &g), который, получая на вход вектор g, строит интерполяционный полином G. Для хранения и дальнейшей обработки результата используется класс CqXY [55], реализующий полином двух переменных над полем Галуа, как динамический массив указателей на объекты классов полиномов одной переменной библиотеки WinNTL-5_4_l. Блок Б5 реализуется функцией CqXYfactor::Factorizate(int d) [55], выполняющей рекурсивную процедуру факторизации Рота-Руккенштейн интерполяционного полинома G. Блок Б6 реализуется функцией RSlstDecoder: :ComputeCorespondingMsgs(), формирующей по списку полиномов выхода предыдущего блока список соответствующих сообщений.
Схемы специального широковещательного шифрования, основанные на кодах и списочных декодерах
В предыдущем разделе отмечалось, что существующие на сегодняшний день ССШШ по лежащему в их основе математическому аппарату можно классифицировать на комбинаторные, алгебраические и основанные на теории графов.
В работах [47] и [43] предложены интересные результаты, представляющие теоретическую возможность построения новых эффективных ССШШ. Такие ССШШ в качестве основы имеют две теоретические области: комбинаторику и теорию кодирования. Рассмотрим возникновение и смысл этих результатов. Как указано в разделе 1.3.2, в работе [29] предложена ССШШ, и указана возможность коалиционных атак в ней. Для борьбы с такими атаками в той же работе предложен основанный на хешировании метод обнаружения членов коалиций. Этот метод является весьма затратным по времени, и в работе [47] было доказано, что можно построить более эффективный метод обнаружения, путем применения так называемых следящих кодов с обнаруживающими полупереборными декодерами. В частности, интерес представляет работа [60], в которой доказывается существование спичных следящих кодов, для q 3, позволяющих находить хотя бы одного из злоумышленников с помощью декодирования по минимуму расстояния Хэмминга, в случае если число злоумышленников не превышает 2. Наконец, в работе [43] доказано, что в качестве следящего кода можно использовать помехоустойчивый обобщенный код Рида-Соломона (ОРС-код), а в качестве декодера - полученный на основе декодера Судана [48], эффективный списочный декодер Гурусвами-Судана [49]. Кроме комбинаторики и теории кодирования в такой схеме также используются схемы разделения секрета, а также, очевидно, криптографические элементы.
Отметим, что методы подбора следящих кодов для ССШШ, описанные в [47], [43], основаны на том, что величина с — максимальная мощность коалиции злоумышленников — полагается известной, причем вопрос о степени защищенности ССШШ от атак коалиций мощности больше с оставался ранее открытым. Среди целей настоящей работы имеются следующие: представить математическую модель схемы специального широковещательного шифрования на основе обобщенных кодов Рида-Соломона и списочного декодера Гурусвами-Судана, и исследовать возможность ее применения в случае превышения величины с. Результаты о помехоустойчивых кодах и списочном декодировании, необходимые для дальнейшего построения математической модели и реализации схемы специального широковещательного шифрования, рассмотрены в главе 2.
Будем рассматривать ситуацию, когда поставщик распространяет цифровую продукцию, доступ к которой должны получать только приобретающие ее легальные пользователи. Как отмечалось выше, в работе Б. Чор, А. Фиат, М. Нао [29] предложена схема специального широковещательного шифрования, позволяющая решать эту задачу. В работе Г. Кабатянского [60] получен интересный результат - доказано существование д-ичных следящих кодов для q 3, позволяющих осуществлять противодействие коалиционным атакам путем нахождения как минимум одного из членов коалиции с помощью декодирования по минимуму расстояния Хэмминга, в случае если число злоумышленников не превышает пороговой мощности с = 2. В работе А. Сильверберг, Дж. Стэддон и Дж. Уолкер [43] получены результаты о теоретической возможности применения помехоустойчивых кодов со списочными декодерами в ССШШ. На основе использования этих результатов ниже строится математическая модель эффективной ССШШ, позволяющая находить членов коалиции, в случае если число злоумышленников не превышает произвольной пороговой мощности с.
Элементами этой модели являются: математическая модель распространения данных (раздел 3.2.1), математическая модель коалиционной атаки (раздел 3.2.2) и математическая модель эффективной защиты от коалиционных атак (раздел 3.2.4). В разделе 3.2.3 рассмотрены необходимые сведения о кодах, применяемых для построения ССШШ. Отметим, что соответствующие результаты опубликованы в работах [81], [82].
Особенности программной реализации модели распространения данных ССШШ
Программное обеспечение распространителя данных реализует действия распространителя математической модели эффективной ССШШ: производит криптографическую защиту распространяемых данных и генерирование ключевых данных легальных пользователей. Основные результаты данного раздела представлены в [89], [92]. В качестве шифра защиты данных программа использует симметричный блочный шифр AES (Rijndael), в качестве шифра защиты частей блокового ключа - асимметричный шифр RSA (см. [59], [88], [90]). В качестве помехоустойчивых кодов, применяемых для построения вектор-номеров пользователей, в этом разделе используются обобщенные коды Рида-Соломона (ОРС-коды). Далее объясняется, каким образом применяются другие помехоустойчивые коды.
Программа имеет два режима работы. В режиме ЕКС - "Encrypt and create keys" — происходит зашифрование файла данных алгоритмом AES, разделение примененного блокового ключа на части по схеме Шамира, генерирование матрицы ключей, зашифрование частей блокового ключа алгоритмом RSA на элементах матрицы ключей. В режиме AU - "Add user" -происходит добавление нового пользователя в базу данных пользователей схемы и формирование секретной папки пользователя UserData, включающей его вектор-номер и вектор-ключ. Режим AU можно использовать сколько угодно раз для добавления новых пользователей, но только после отработки программы в режиме ЕКС.
Программа реализована в виде консольного приложения SBES_seller\sbes_seller.exe. Перед началом работы программы в режиме ЕКС распространитель должен: указать имя защищаемого файла в файле конфигурации SBES_seller\sbes.conf; создать папку проекта, в которую будут сохраняться результаты работы программы; в папке проекта создать служебную папку распространителя, в ней создать файл криптографических параметров проекта; указать имена этих объектов в файле конфигурации. Перед началом работы программы в режиме AU распространитель должен: указать имя папки проекта, куда должен быть добавлен новый пользователь и уникальные данные нового пользователя в файле конфигурации. Для удобства выполнения указанных действий предусмотрено графическое приложение SBES_seller\sbes_seller_GUI.exe.
Рассмотрим поля файла конфигурации SBES_seller\sbes.conf. В скобках будем указывать значение поля по умолчанию и режиму в котором поле используется. Здесь и далее значение поля field будем обозначать через $field. mode: режим работы программы: ЕКС либо,А11; data_file: имя подлежащего шифрованию файла данных (ЕКС); projfolder: имя папки проекта, в которую будут сохраняться результаты работы программы (ЕКС и AU); proj_cryptoparams_file: имя файла криптографических параметров проекта ($proj_folder\SellerData\proj_crypto.prm; ЕКС); proj_code_params_flle: имя файла параметров базового кода ($proj_folder\SupervisorData\proj_code.prm; ЕКС); proj_usersbase: имя файла базы данных пользователей ССШШ проекта ($proj_folder\SellerData\users.dat; ЕКС и AU); make_supervis_usersbase_lnk: необходимость включать в папку контролера ссылку на базу пользователей (по, ЕКС); newuser_uniqdata: уникальные данные пользователя (AU). Файлы $proj_cryptoparams_file и $proj_code_params_file имеют ту же структуру, что и файл конфигурации. Каждое поле такого файла описывается отдельной строкой в формате "имя поля: значение поля". Далее значение поля fid любого из этих файлов будем обозначать через $field. Рассмотрим поля файла криптографических параметров проекта $prpj_cryptoparams file: dp_keylength: длина ключа защиты данных (256); kp_keylength: длина ключа защиты ключей данных (1024); с: предполагаемое число злоумышленников. Входными данными программы являются: а) файл конфигурации SBES_seller\sbes.conf; который должен быть от редактирован распространителем (ЕКС и AU); б) файл данных, подлежащий шифрованию $data_file (ЕКС); в) файл параметров проекта $proj_cryptoparams_file (ЕКС); г) файл базы данных пользователей $proj_usersbase; может быть пус тым; изменяется программой (AU). Выходными данными после отработки программы в режиме ЕКС являются следующие файлы и папки: а) папка $proj_folder\SupervisorData\, необходимая далее контролеру, включающая файл параметров кода $proj_codejparams_file, примененного программой для защиты от коалиционных атак. В частности, файл имеет по ля q и г, содержащие значения мощности поля Галуа, и длины кода соответ ственно. Помимо этого, папка SupervisorData может включать ссылку на базу пользователей, для возможности формирования контролером списка уни кальных данных злоумышленников (см. $make_supervis_usersbase_lnk). б) папка $proj_folder\Ciphers\, включающая зашифрованный файл дан ных $data_file.encr, и файлы зашифрованных частей блокового ключа blockkeypartencr././, где /є{0; ...; г-1},ує{0; ...; q-\).