RU2370897C2 - Система блочной криптографической защиты, использующая преобразования для сокрытия основной функции криптографической защиты каждого цикла шифрования - Google Patents
Система блочной криптографической защиты, использующая преобразования для сокрытия основной функции криптографической защиты каждого цикла шифрования Download PDFInfo
- Publication number
- RU2370897C2 RU2370897C2 RU2006120479/09A RU2006120479A RU2370897C2 RU 2370897 C2 RU2370897 C2 RU 2370897C2 RU 2006120479/09 A RU2006120479/09 A RU 2006120479/09A RU 2006120479 A RU2006120479 A RU 2006120479A RU 2370897 C2 RU2370897 C2 RU 2370897C2
- Authority
- RU
- Russia
- Prior art keywords
- functions
- cascade
- function
- digital signal
- providing
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Изобретение относится к области шифрования в сетях передачи данных. Технический результат заключается в повышении степени защиты функций каскадной обработки сигналов. Сущность изобретения заключается в том, что в системе (600) сервер (610) предоставляет функцию f обработки цифровых сигналов в исполняющее устройство (620) в умышленно запутанном виде. Функция f включает в себя каскад функций из функций fi обработки сигналов, 1≤i≤N, по формуле (I). Сервер включает в себя процессор (612) для выбора набора из 2N обратимых преобразований pi, 1≤i≤2N; вычисление набора из N функций g, где g является функциональным эквивалентом для формулы (II) для 1≤i≤N; и вычисление набора из N-1 функций h, где h является функциональным эквивалентом для формулы (III) для 2≤i≤N. Сервер включает в себя средство (614) для наделения исполняющего устройства каскадом функций исполнительного устройства, который включает в себя формулу (IV), где y1, …, yN представляют собой функциональные параметры для формулы (V), и средство (616) для предоставления функций g1, …, gN в исполняющее устройство. Исполняющее устройство включает в себя средство (626) для получения функций g1, …, gN и процессор (622) для загрузки каскада функций исполнительного устройства и применения загруженного каскада функций исполнительного устройства к функциям g1, …, gN (например, ED, (g1, …, gN)). 8 н. и 15 з.п. ф-лы, 9 ил.
Description
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Изобретение относится к способу предоставления функции каскадной обработки сигналов в исполнительном устройстве безопасным и/или персонализированным способом. Настоящее изобретение также относится к системе предоставления функции каскадной обработки сигналов в исполнительном устройстве безопасным и/или персонализированным способом. Настоящее изобретение также относится к исполнительному устройству для выполнения функции каскадной обработки сигналов, обеспеченного безопасным и/или персонализированным способом.
УРОВЕНЬ ТЕХНИКИ
Интернет обеспечивает пользователей удобным и повсеместным доступом к цифровому контенту. Благодаря потенциалу Интернета, как мощного канала распределения, многие продукты CE стараются создавать совместимыми с ПК платформой - основным порталом в Интернет. Использование Интернета как среды распространения контента, охраняемого авторским правом, является веским доводом в пользу охраны интересов провайдера контента. В частности, требуется гарантия авторских прав и бизнес-моделей провайдеров контента. Управление программными средствами для воспроизведения представляет собой один из способов защиты интересов владельца контента, включая сроки и условия, при которых может быть использован этот контент. В частности для ПК платформы, допускается, что пользователь имеет полный контроль над аппаратным и программным обеспечением, которые предоставляют доступ к контенту, и неограниченное количество времени и ресурсов для взлома и обхода любых механизмов защиты контента. В результате, провайдеры контента должны доставлять контент законным пользователям через враждебную сеть и группу лиц, в которой можно доверять не всем пользователям. Основным подходом в управлении цифровыми правами защищенного контента, распространяемого в ПК, является шифрование цифрового контента (например, используя DES) и сохранение ключа дешифрования (или “лицензии”) в так называемой базе данных Лицензий на жестком диске ПК. Цифровой контент на ПК обычно воспроизводят с использованием медиа-плеера, например, Media Player производства Microsoft, RealOne Player производства Real, плеер QuickTime производства Apple. Для специфичного формата контента такие плееры могут загружать соответствующий модуль расширения для выполнения декодирования, специфичного для данного формата. Такие форматы контента могут включать в себя AVI, DV, Motion JPEG, MPEG-1, MPEG-2, MPEG-4, WMV, Audio CD, MP3, WMA, WAV, AIFF/AIFC, AU и т.д. Плеер и структура модуля расширения показаны на фиг.1, на которой медиа-плеер 100 включает в себя базовый плеер 110 и несколько модулей расширения, специфичные для данного формата (показаны модули расширения 120, 122 и 124). Для управления плеером базовый плеер 110, например, может предоставлять пользовательский интерфейс. Каждый модуль расширения включает в себя соответствующий декодер. Он может посылать декодированный контент непосредственно в HW/SW, выполняющий рендеринг, например, в звуковую карту, или передавать контент в базовый плеер 110 для дальнейшей обработки. Для защищенного рендеринга используется защищенный модуль расширения, который не только декодирует контент в специфичный формат, но также выполняет дешифрование этого контента. На фиг.2 показано, что шифрованный контент сначала пропускают через дешифратор 230, и затем дешифрованный контент пропускают через декодер 220, специфичный для данного формата. Дешифратор 230 может получить ключ дешифрования/лицензию из базы 210 данных лицензий.
Наибольшая уязвимость управления цифровыми правами, основанного на шифровании, заключается в распределении и управлении ключами. Для воспроизведения программа плеера должна извлечь ключ дешифрования из базы данных лицензий, затем сохранить этот ключ дешифрования где-либо в памяти для дешифрования зашифрованного контента. Это оставляет нарушителям две возможности для взлома защиты управления ключами в программе плеера: во-первых, обратное проектирование функции доступа к базе данных лицензий может дать в результате программное обеспечение типа “черный ящик” (то есть, нарушителям нет необходимости понимать способ работы функции программного обеспечения), которое способно извлекать защищенные ключи из всех баз данных лицензий; во-вторых, путем наблюдения за получением доступа к памяти, используемым во время дешифрования контента, можно извлечь защищенный ключ.
Обычно системы управления цифровыми правами используют технологию шифрования, основанную на блочных шифрах, при которой поток данных обрабатывают в блоках, используя последовательность этапов шифрования/дешифрования, называемых циклами. Выход i-1го цикла является входом i-го цикла. Таким образом, для системы с N циклами, алгоритм может быть описан в виде каскада функций где функция f
i представляет функциональность цикла i. Большинство блочных алгоритмов представляют собой сети Фейстеля. В таких сетях входной блок данных x, имеющий четную длину n, делится на две половины длиной n/2, обычно обозначаемые как L и R. Таким образом, входные данные x, подаваемые в первый цикл, можно представить в виде x=〈L
0
,R
0
〉. При этом, i-й цикл (i>0) выполняет функцию f
i, где f
i определена в виде:
f i (〈L i-1 ,R i-1 〉)=〈R i-1 ,(L i-1 ⊕F(R i-1 ,K i ))〉,
K i представляет собой подключ, используемый в i-м цикле, а F представляет собой независимую функцию цикла.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Задачей настоящего изобретения является предоставление лучшей защиты функций каскадной обработки сигналов, например, сетей Фейстеля.
Для реализации задачи настоящего изобретения способ предоставления функции f обработки цифровых сигналов для исполняющего устройства в умышленно запутанном виде, где функция f включает в себя каскад функций, включающий в себя множество функций f
i обработки сигналов, 1 ≤ i ≤ N, для обработки входного цифрового сигнала x для получения выходного цифрового сигнала (например,
выбор набора из 2N обратимых преобразований p
i
, 1 ≤ i ≤ 2N;
вычисление набора из N функций g
i, где g
i представляет собой функциональный эквивалент для , для 1 ≤ i ≤ N;
вычисление набора из N-1 функций h
i, где h
i представляет собой функциональный эквивалент для , для 2 ≤ i ≤ N;
наделение исполняющего устройства каскадом функций для исполнительного устройства, который включает в себя где y
1,…,
y
N представляют собой функциональные параметры (например,
предоставление функций g
1
,…,g
N в исполняющее устройство; и
в исполняющем устройстве, применение каскада функций для исполнительного устройства к функциям g
1
,…,g
N (например, ED
1
(g
1
,…,g
N
)).
Согласно настоящему изобретению, составляющие функции f
i предоставляют в инкапсулированной форме в виде g
i, где g
i представляет собой функциональный эквивалент , для 1 ≤ i ≤ N. Функции p
i, используемые для инкапсуляции, также скрывают путем предоставления в виде h
i, что представляет собой произведение , для 2 ≤ i ≤ N. Путем выполнения функций g
i и h
i способом чередования (например, как показано на фиг.4) в исполнительном устройстве функциональность каскада функций достигается без того, что f
i может быть явно распознана. В частности, если f
i представляет функцию цикла шифра Фейстеля, то ключ цикла, который встроен в функцию цикла, не является явно распознаваемым. Умышленно запутанная доставка f
i увеличивает безопасность. Каскад устройств для выполнения функций может формировать базовую функциональность медиа-плеера, где набор g
1
,…,g
N дает возможность плееру выполнять каскад функций, содержащий f
1-f
N, включительно.
Зависимые пункты 2 и 3 формулы изобретения показывают два соответствующих альтернативных варианта осуществления защиты (функционального) начала каскада функций. В варианте осуществления по п.2 формулы изобретения каскад функций для исполнительного устройства начинается с , например,
Применение этого к g
1
,…,g
N, дает функциональное начало последовательности функций, выполняемых в устройстве:
при таком способе исполнительное устройство в явном виде выполняет f
1. В варианте осуществления по п.3 формулы изобретения безопасность возрастает путем расширения каскада функций при помощи начальной функции f
0, целью которой является скрыть . Каскад функций, например, может представлять собой Каскад функций для исполнительного устройства начинается с функции S
1, например, где S
1 представляет собой функциональный эквивалент . В силу того, что S
1 представляет только в виде произведения с
f 0, не может быть извлечена из исполнительного устройства прямым способом, таким как считывание определенных ячеек памяти. Предпочтительно f
0 является глобальным секретом.
Зависимые пункты 4 и 5 формулы изобретения показывают два соответствующих альтернативных варианта осуществления для защиты (функционального) окончания каскада функций способом, аналогичным пунктам 2 и 3 формулы изобретения.
Согласно зависимому пункту 6 формулы изобретения, выбранная последовательность преобразований p
i является уникальной для данного устройства. Таким образом, каскад функций подают на исполнительное устройство не только в умышленно запутанном виде, но также в персонализированном виде. Например, если каскад функций представляет шифр Фейстеля со встроенным ключом дешифрования, криптоаналитический взлом или взлом методом прямого перебора всех возможных вариантов может привести к получению функциональности типа “черный ящик” для g
1
,…,g
N. При этом такая функциональность сможет работать только совместно с соответствующим каскадом функций для исполнительного устройства, но не сможет работать с любым другим исполнительным устройством. Это существенным образом ограничит эффект удачного взлома защиты.
Согласно зависимому пункту 7 формулы изобретения, каскад функций для исполнительного устройства встроен в программу, например, в виде медиа-плеера или модуля расширения для медиа-плеера. Таким образом, исполнительное устройство обеспечивают защищенным, персонализированным программным обеспечением.
Согласно зависимому пункту 8 формулы изобретения, функции g
1
,…,g
N формируют модуль расширения для программы. Если программа сама представляет собой модуль расширения, тогда функции g
1
,…,g
N, в сущности, представляют собой модуль расширения для данного модуля расширения. В качестве альтернативы, согласно зависимому пункту 9 формулы изобретения, функции g
1
,…,g
N могут быть встроены в одну и ту же программу, что и каскад функций для исполнительного устройства.
Для реализации задачи настоящего изобретения компьютерный программный продукт выполнен с возможностью выполнения процессором в исполнительном устройстве функции f обработки цифровых сигналов, включающей в себя каскад функций, включающих в себя множество функций f
i обработки сигналов, где 1 ≤ i ≤ N, для обработки входного цифрового сигнала x для получения выходного цифрового сигнала (например, путем:
загрузки каскада функций для исполнительного устройства, который включает в себя где y
1
,…,y
N являются функциональными параметрами;
загрузки набора функций g
1
,…,g
N;
применения каскада функций исполнительного устройства к набору функций g
1
,…,g
N, где:
p i представляет собой обратимое преобразование для 1 ≤ i ≤ 2N.
Для реализации задачи настоящего изобретения способ предоставления функции f обработки цифровых сигналов для множества исполняющих устройств, каждое из которых идентифицируют при помощи уникального индекса j, в умышленно запутанном анонимном виде; причем функция f включает в себя каскад функций, включающий в себя множество функций f
i обработки сигналов, где 1 ≤ i ≤ N, для обработки входного цифрового сигнала x для получения выходного цифрового сигнала (например, включает в себя:
выбор набора из 2N обратимых преобразований p
i
, где 1 ≤ i ≤ 2N;
вычисление набора из N функций g
i, где g
i представляет собой функциональный эквивалент для , для 1 ≤ i ≤ N;
выбор для каждого устройства j соответствующего набора и/или последовательности из 2N обратимых преобразований p
j,i, которые являются уникальными для устройства и/или пользователя этого устройства;
вычисление для каждого исполняющего устройства j соответствующего набора из N-1 функций h
j,i, где h
j,i представляет собой функциональный эквивалент для , для 2 ≤ i ≤ N;
наделение каждого исполняющего устройства j соответствующим каскадом функций исполнительного устройства ED
j
(y
1
,…,y
N
), который включает в себя
наделение каждого исполняющего устройства j соответствующей функцией загрузчика где l
j,i представляет собой функциональный эквивалент для , и r
j,i представляет собой функциональный эквивалент для ;
предоставление для исполняющего устройства функций g
1
,…,g
N; и
в исполняющем устройстве, выполнение ED
j
(loader
j
(g
1
,…,g
N
)).
Функции f
i являются умышленно запутанными в виде функций g
1
,…,g
N, таким же способом, как описано для пункта 1 формулы изобретения. Для каждого устройства функции g
1
,…,g
N являются аналогичными и могут рассматриваться как соответствующие одному по умолчанию/анонимному устройству. Исполнительные устройства оборудованы каскадом (“персонализированных”) исполнительных устройств, специфичным для данного устройства. Функция загрузчика, специфичная для данного устройства, используется для преобразования соответствующих анонимных функций g
i, в соответствующие функции, специфичные для данного устройства, которые могут быть поданы в каскад исполнительного устройства. Функция загрузчика использует преобразование функций l
j,i и r
j,i, которые основаны на наборе/последовательности преобразований p
j,i, которые не раскрываются.
Согласно зависимому пункту 12 формулы изобретения, функции g
i могут подаваться во все устройства одним и тем же способом, например, с использованием широковещательной передачи или при помощи носителя данных, например, CD-ROM или DVD.
Эти и другие аспекты настоящего изобретения являются очевидными из вариантов осуществления, описанных ниже, и будут рассмотрены со ссылками на них.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На чертежах:
На фиг.1 показана блок-схема декодирования, основанного на модуле расширения предшествующего уровня техники;
на фиг.2 показана блок-схема дешифрования предшествующего уровня техники;
на фиг.3 показана блок-схема системы интегрированного дешифрования/декодирования предшествующего уровня техники;
на фиг.4 показана реализация умышленного запутывания согласно настоящему изобретению;
на фиг.5 показан простой пример умышленного запутывания;
на фиг.6 показана блок-схема системы согласно настоящему изобретению;
на фиг.7 показан дополнительный вариант осуществления системы согласно настоящему изобретению;
на фиг.8 показана реализация анонимного умышленного запутывания согласно настоящему изобретению; и
на фиг.9 показан альтернативный вариант осуществления анонимного умышленного запутывания.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
На фиг.3 показана блок-схема системы предшествующего уровня техники, в которой может быть использовано настоящее изобретение. В примере по фиг.3 контент (обычно аудио и/или видео контент) размещают на носителе 310. Для любого плеера носитель может быть одним и тем же. Носитель может представлять собой носитель любого подходящего типа, например аудио CD, DVD, твердотельный и т.д. Контент на носителе защищен от копирования предпочтительно путем шифрования с использованием алгоритма шифрования, такого как шифр Фейстеля. Носитель данных может включать в себя информацию, относящуюся к ключу дешифрования. В качестве альтернативы, носитель данных может включать в себя информацию 312 (такую как идентификатор), которая позволяет плееру извлекать информацию, например, путем загрузки ее с сервера через Интернет. Ключ дешифрования создают в безопасном модуле 320, используя ключ 322, специфичный для данного ключа, и информацию 312 для вычисления 324 ключа 326 дешифрования. Ключ дешифрования принимают во втором модуле 330. Второй модуль 330 дешифрует 334, декодирует 336 и воспроизводит 338 контент 314 носителя 310.
На фиг.4 показан способ согласно настоящему изобретению. Функцию f обработки цифровых сигналов предоставляют в исполняющее устройство в умышленно запутанном виде. Функция f включает в себя каскад функций, включающий в себя множество функций f
i обработки сигналов, 1 ≤ i ≤ N. Например, ядро каскада функций может быть сформировано при помощи Необходимо отметить, что здесь используется общепринятая в математике запись: В принципе, каскад функций может представлять собой любую функцию обработки цифровых сигналов. В предпочтительном варианте осуществления каскад функций включает в себя шифр. Например, функция f
i может представлять i-й цикл (i>0) шифра Фейстеля. В таком случае, f
i определяется в виде:
f i (L i-1 ⊕R i-1 )=R i-1 ⊕(L i-1 ⊕F(R i-1 ,K i )),
где K
i представляет собой подключ, используемый в i-м цикле, а F является независимой функцией цикла.
Согласно настоящему изобретению выбирают набор из 2N обратимых преобразований p
i
, 1 ≤1 i1 ≤1 2N. Затем вычисляют набор из N функций g
i, где g
i представляет собой функциональный эквивалент , для 1 ≤ i ≤ N. В данном контексте, функциональный эквивалент означает, что если g
i применяют к такому же входному сигналу (например x), то для каждого разрешенного значения выходного сигнала получают такой же выходной сигнал, как и в случае применения к такому выходному сигналу. Композитные функции , f
i и по отдельности не видимы. При этом g
i обеспечивает функциональность типа “черный ящик” для . На фиг.5 показан подход для очень простых одномерных функций. В этом примере,
Из области создания компьютерных компиляторов хорошо известно, каким образом может быть достигнута функциональность типа “черный ящик” с использованием так называемых частичных вычислений. Глава 1 “Partial Evaluation and Automatic Program Generation” N.D.Jones, C.K.Gomard и P.Sestoft описывает концепцию частичных вычислений. В настоящем описании это не будет рассматриваться более подробно. Очевидно, что входной цифровой сигнал x является многомерным параметром, например, 64 или 128-битным блоком/вектором, для которого можно выполнить нужное преобразование. Согласно настоящему изобретению вычисляют набор из N-1 функций h
i, где h
i представляет собой функциональный эквивалент , для 2 ≤ i ≤ N. Используя простой пример по фиг.5,
. Используя эти определения, часть каскада исполнительных устройств, которая скрывает f
2, будет представлять собой:
Очевидно, это является функциональным эквивалентом . Таким образом, исполняющее устройство, которое выполнило этот каскад, выполнило f
2 без f
2, заданной в явном виде.
В дальнейшем примере N=2, и f
1 и f
2 выполняют соответствующую таблицу отображения, представленную в виде:
f 1:{0→3, 1→1, 2→6, 3→2, 4→7, 5→5, 6→4, 7→0, 8→8},
f 2:{0→4, 1→1, 2→5, 3→7, 4→6, 5→2, 6→0, 7→8, 8→3}.
В этом примере f
1 является обратимой функцией, которая преобразует номера от 0 до 8 в номера от 0 до 8, например, значение 0 преобразует в значение 3, значение 1 - в 1, значение 2 - в 6 и так далее. Последующие четыре соответствующих преобразования, использованные в данном примере:
p 1:{0→5, 1→3, 2→1, 3→7, 4→0, 5→6, 6→2, 7→8, 8→4}
p 2:{0→8, 1→6, 2→7, 3→3, 4→4, 5→2, 6→0, 7→1, 8→5}
p 3:{0→3, 1→5, 2→7, 3→1, 4→6, 5→0, 6→2, 7→8, 8→4}
p 4:{0→3, 1→0, 2→5, 3→2, 4→7, 5→8, 6→1, 7→4, 8→6}
Для этого примера используются следующие три обратимых преобразования:
h 2:{0→7, 1→4, 2→2, 3→0, 4→8, 5→6, 6→5, 7→3, 8→1}.
g 1:{0→8, 1→5, 2→7, 3→6, 4→3, 5→4, 6→1, 7→0, 8→2},
g 2:{0→4, 1→3, 2→5, 3→6, 4→1, 5→7, 6→2, 7→0, 8→8}
Исполняющее устройство оснащено каскадом функций исполнительного устройства, который включает в себя где y
1
,…,y
N представляют собой функциональные параметры. На фиг.4 это показано в виде последовательности функций h
N
,h
N-1
,…,h
2 410. Иллюстративный каскад функций исполнительного устройства представляет собой Кроме того, в исполняющее устройство предоставляют функции g
1
,…,g
N. На фиг.4 это показано в виде последовательности функций g
N
,g
N-1
,…,g
1 420. В исполняющем устройстве каскад функций исполнительного устройства применяют к функциям g
1
,…,g
N. Это дает, например, полную функцию обработки сигналов ED
1
(g
1
,…,g
N
) в исполняющем устройстве. Затем такая функция может быть применена ко входному цифровому сигналу x.
Первый и последний компоненты этого выражения будут исключены с помощью соответствующих g компонентов. Полный выход заключается в том, что исполняющее устройство исполняет функцию, которая включает в себя каскад функций без доступа к любой из функций f
i. Таким образом, эти функции являются умышленно запутанными.
В предпочтительном варианте осуществления предоставлены опции для работы с началом и концом цепи. Без принятия каких-либо дополнительных мер получающаяся в результате полная функция обработки сигналов в исполняющем устройстве может представлять собой . Например, компонент р
1 может быть устранен путем использования каскада функций исполнительного устройства, который включает в себя Например, . Предпочтительно, в исполняющем устройстве компонент является защищенным. Предпочтительный способ выполнения этого заключается в расширении каскада функций при помощи дополнительной функции f
0 обработки сигналов (например, Кроме того, каскад функций исполнительного устройства включает в себя (например, где S
1 представляет собой функциональный эквивалент . В этом случае самостоятельные компоненты и f
0 не нуждаются в извлечении, поскольку существуют только в виде произведения . Предпочтительным является, чтобы f
0 представляла собой глобальный секрет, то есть была известна только тем сторонам, которым необходимо ее знать. Глобальные секреты известны, и также известны способы обмена глобальными секретами защищенным способом, и в дальнейшем не будут рассматриваться в настоящем описании.
Аналогично, могут быть приняты меры для рассмотрения компонента . Например, каскад функций исполнительного устройства может включать в себя (например, Для лучшей защиты p
2N каскад функций может заканчиваться дополнительной функцией обработки сигналов f
N+1 (например, Каскад функций исполнительного устройства, кроме того, включает в себя (например, где S
2 представляет собой функциональный эквивалент для
На фиг.6 показана система, в которой может быть использовано настоящее изобретение. Система 600 включает в себя сервер 610 и, по меньшей мере, одно исполняющее устройство 620. Сервер может быть реализован на компьютерной платформе общего назначения, например, на платформе, используемой в качестве сервера, такого типа, как веб-сервер, или файловый сервер. Сервер включает в себя процессор 612. Процессор 612 работает под управлением программы. Программа может постоянно находиться в процессоре во встроенном носителе данных, таком как встроенное ПЗУ, но также может быть загружена с внешнего носителя данных, такого как жесткий диск (не показан). Под управлением программы процессор 612:
• выбирает набор из 2N обратимых преобразований p
i
, 1 ≤ i ≤ 2N;
• вычисляет набор из N функций g
i, где g
i представляет собой функциональный эквивалент , для 1 ≤ i ≤ N; и
• вычисляет набор из N-1 функций h
i, где h
i представляет собой функциональный эквивалент , для 2 ≤ i ≤ N.
Преобразования могут быть выбраны (например, случайно или псевдослучайно) из очень большого набора преобразований, которые могут храниться на (предпочтительно защищенном) носителе данных (не показан). Сервер может также использовать подходящую программу для генерации преобразований. Способы создания обратимых преобразований хорошо известны в данной области техники и далее не будут рассматриваться в настоящем описании.
Кроме того, сервер включает в себя средство 614 для наделения исполняющего устройства каскадом функций исполнительного устройства, который включает в себя
где y
1
,…,y
N представляют собой функциональные параметры. Сервер может выполнять это соответствующим образом. Например, в процессе производства компоненты h
i могут сохраняться в модуле хранения данных исполняющего устройства во время изготовления исполняющего устройства 620. На фиг.6 показано, что компоненты загружаются через Интернет 630 непосредственно в исполняющее устройство 620. Сервер 610 также включает в себя средство 616 для предоставления исполняющему устройству 620 функций g
1
,…,g
N. Функции g
i включают в себя соответствующие функции f
i. Функции f
i могут быть выбраны специально для входного цифрового сигнала x. Например, каждый видео фрагмент может быть зашифрован с помощью соответствующей функции шифрования (например, с использованием одного и того же шифра, но с ключом, специфичным для контента). С этой целью сервер 610 также может включать в себя программное обеспечение для управления процессором 612 для шифрования контента 640 и предоставления зашифрованного контента 642 на дистрибутивный носитель, например, для распределения на носителе данных или через канал обмена информацией, такой как Интернет.
Исполняющее устройство 620 включает в себя средство 626 для получения функций g
1
,…,g
N из сервера 610. Это средство взаимодействует со средством 616 сервера и далее не описывается. Исполняющее устройство 620 дополнительно включает в себя процессор 622. Процессор может быть процессором любого подходящего типа, например, процессор, применяемый в персональных компьютерах, или встроенный микроконтроллер. Процессор 622 работает под управлением программы. Программа может постоянно находиться в процессоре 622, использующем встроенный носитель данных, такой как встроенное ПЗУ, но также может быть загружена с внешнего носителя данных, такого как жесткий диск (не показан). Под управлением программы процессор загружает каскад функций исполнительного устройства и применяет загруженный каскад функций исполнительного устройства к функциям g
1
,…,g
N, например, путем выполнения ED
1
(g
1
,…,g
N
). Полученная в результате функция обработки сигналов затем может быть применена ко входному сигналу x (например, контенту, полученному с носителя данных). Процессор 622 может загрузить каскад функций исполнительного устройства в любом подходящем виде. Например, каскад может быть заранее сохранен в процессе производства на носителе данных, тем самым, уменьшая загрузку памяти при прямом доступе. В примере по фиг.6, исполняющее устройство 620 включает в себя средство 624 для извлечения каскада (или членов каскада), например, через Интернет 630 или через носитель данных 650. Аналогично, исполняющее устройство 620 может извлекать зашифрованный контент 652 из носителя данных 650 и дешифровать его, используя процессор 622. Процессор также может декодировать дешифрованный контент.
На фиг.7 показан предпочтительный вариант осуществления, в котором каскад функций исполнительного устройства предоставляют в исполняющее устройство 620, встроенное в программные средства 710, для выполнения процессором 622. На фиг.7 используются те же ссылочные позиции, что и на фиг.6. Программные средства 710 могут представлять собой модуль расширения для программы, такой как медиа-плеер. Таким образом, средство 614 по фиг.7 может обеспечивать такой модуль 710 расширения через Интернет (например, элемент 630 по фиг.7) или встраивать его непосредственно в исполняющее устройство 620 в процессе производства.
В варианте осуществления исполняющее устройство 620 наделяют функциями
g 1 ,…,g N в виде модуля расширения для программы 710. В случае, если программа 710 уже является модулем расширения, то функции g
1
,…,g
N фактически являются модулем расширения для модуля расширения. В качестве альтернативы, исполняющее устройство 620 наделяют функциями g
1
,…,g
N путем встраивания функций g
1
,…,g
N в программные средства 710 посредством применения каскада функций исполнительного устройства к функциональным параметрам g
1
,…,g
N. Таким образом, программа 710 встраивает обе функции h
i и g
i.
В варианте осуществления, каждое исполняющее устройство и/или пользователь исполняющего устройства являются уникальными и идентифицируются уникальным идентификатором (например, уникальным индексом j). В системе и способе, согласно настоящему изобретению, гарантировано, что для данного участника последовательности g
i и hi являются уникальными. Этого можно достичь путем получения уникального идентификатора j исполняющего устройства и/или пользователя исполняющего устройства и соответствующего набора из 2N обратимых преобразований p
i, которые являются уникальными для полученного идентификатора. Аналогично, используя такой же набор преобразований, может быть выбрана уникальная последовательность преобразований. Можно объединять обе технологии (выбор различного набора преобразований или различной последовательности преобразований). Предпочтительно, сервер хранит (безопасным способом) уникальный набор/последовательность для каждого уникального идентификатора. В этом случае, каждый медиа-плеер на персональном компьютере может быть снабжен уникальными модулями расширения для дешифрования и/или декодирования мультимедиа фрагментов. Сам носитель не должен быть уникальным. Зашифрованный контент зависит только от функций шифрования, а не от уникального набора/последовательности преобразований. Путем регулярной (то есть, при запуске медиа-плеера) проверки, соответствует ли программное обеспечение идентификатору, и исполнения программного обеспечения только в случае установления соответствия можно гарантировать то, что программа медиа-плеера не будет выполняться на ПК, которому она не принадлежит. Если хакеру случайно удастся получить преобразования, специфичные для данного устройства, они могут быть использованы только в предназначенном для этого ПК, и возможно также для контента, защищенного другим видом шифрования (дающим в результате другие функции f
i), но не на другой платформе.
Выше в настоящем описании изложены способ и система, в которых функции каскадной обработки сигналов подаются в исполняющее устройство в умышленно запутанном виде. Для каждого устройства может быть использован один и тот же набор/последовательность преобразований, или может быть использован набор/последовательность, специфичная для данного устройства. Далее описан предпочтительный подход для получения набора/последовательности, специфичной для данного устройства, путем распределения функций каскадных сигналов (“ключа”) умышленно запутанным способом, который является одним и тем же для каждого устройства, и путем использования процедуры преобразования (“загрузчика”), которое преобразует общий ключ в ключ, специфичный для данного устройства. “Общий ключ” создают практически тем же способом, который был описан ранее. В принципе общий ключ может “отпирать” исходный плеер или анонимный плеер, что, однако, в данном варианте осуществления не выполняется ни одним исполняющим устройством. Как и прежде, способ включает в себя выбор набора из 2N обратимых преобразований p
i, где 1 ≤ i ≤ 2N, и вычисление набора из N функций g
i, где g
i представляет собой функциональный эквивалент , для 1 ≤ i ≤ N. К тому же, способ дополнительно включает в себя выбор для каждого исполняющего устройства, причем каждое идентифицировано с помощью уникального индекса j, соответствующего набора и/или последовательности из 2N обратимых преобразований p
j,i, которые являются уникальными для устройства и/или пользователя этого устройства. Такой набор используется для предоставления каждому устройству уникального “плеера”. Такой уникальный плеер формируется путем вычисления для каждого исполняющего устройства j соответствующего набора из N-1 функций h
j,i где h
j,i представляет собой функциональный эквивалент , для 2 ≤ i ≤ N и наделения каждого исполняющего устройства j соответствующим каскадом функций исполнительного устройства ED
j
(y
1
,…,y
N
), который включает в себя Однако такой набор h
j,i, специфичный для данного устройства, не соответствует умышленно запутанному каскаду функций, который может “отпереть” исходный плеер, который использует набор h
i. Такой набор/плеер создается недоступным для любого исполняющего устройства. Вместо этого, исполняющее устройство j наделяют соответствующей функцией загрузчика где l
j,i представляет собой функциональный эквивалент для , и r
j,i представляет собой функциональный эквивалент для . Как и прежде, каждому исполняющему устройству предоставляют такие же функции g
1
,…,g
N. Затем исполняющее устройство выполняет ED
j
(loader
j
(g
1
,…,g
N
)). В этой формуле loader
j
(g
1
,…,g
N
) эффективно преобразует анонимный ключ g
1
,…,g
N в ключ, специфичный для данного устройства, который оптимально подходит для каскада функций исполнительного устройства ED
j
(y
1
,…,y
N
). Используя определение: loader
j
(g
1
,…,g
N
)= (g
j,1
,g
j,2
…,g
j,N
), получаем, что i-й компонент loader
j
(g
1
,…,g
N
) представляет собой Используя определение, приведенное выше, получаем , которое может быть переписано в виде . Это представляет собой то же самое, что и использование специфичного для данного устройства набора/последовательности преобразований, в которых специфичный для данного устройства набор h
j,I исключает использование преобразований.
Также на фиг.8 показана идея использования анонимного, умышленно запутанного ключа и загрузчика, специфичного для данного устройства. Анонимный плеер P1-R 810 включает в себя функции h
i. Анонимный плеер P1-R можно отпереть с помощью соответствующего ключа K-R 812, который включает в себя умышленно запутанные функции f
i обработки сигналов в виде набора g
i. Анонимный плеер P1-R не является известным для любой стороны. Каждая сторона вместо этого обеспечивается уникальным, специфичным для данного устройства плеером, показанным в виде плееров P1-1 830 и P1-2 840. Общий ключ K-R предоставляется всем сторонам. Однако такой общий ключ не соответствует конкретным плеерам. Следовательно, каждая сторона также обеспечивается специфичным для данного устройства загрузчиком K-L ключа, показанным в виде 820 и 825. Загрузчик 820, 825 используется для преобразования анонимного ключа K-R 812 в специфичный для данного устройства ключ K-j. С этой целью, загрузчик K-Li включает в себя функции l
j,i и r
j,i. Как показано далее на фиг.9, загрузчик может быть, фактически, одним и тем же, но обеспечиваться специфичными для данного устройства функциями l
j,i и r
j,i. В примере по фиг.9 предоставление l
1,i и r
1,i преобразует анонимный ключ K-R 812 в специфичный для данного устройства ключ 832 для устройства 1; предоставление l
2,i и r
2,i преобразует анонимный ключ 812 в ключ 842 для устройства 2. Специфичные для данного устройства плееры 830, 840 затем отпирают, используя, соответственно, специфичные для данного устройства наборы h
j,i, 832 и 842 ключей. Очевидно, что в этих примерах фраза “ключ” и “плеер” являются взаимозаменяемыми, поскольку две цепи функций являются взаимосвязанными. В примере по фиг.4 показаны обе цепи в виде ключей. Аналогично, это также может быть показано в виде двух взаимосвязанных плееров.
Теперь очевидно, что анонимный плеер 810 (включающий в себя g
N
,…,g
1) может быть предоставлен в каждое исполняющее устройство через широковещательную передачу и/или размещен на носителе данных с одним и тем же контентом для каждого исполняющего устройства, поскольку такой плеер является одним и тем же для каждого устройства. Аналогично, входной цифровой сигнал x, предназначенный для обработки с помощью каждого исполняющего устройства, может быть распределен через широковещательную передачу и/или распределен на носителе данных с одним и тем же контентом для каждого исполняющего устройства. Специфичные для загрузчика компоненты предпочтительно предоставляют в исполняющее устройство j через “двухточечный канал обмена данными” и/или носитель данных со специфичным для данного устройства контентом с, по меньшей мере, одним из следующих наборов соответствующих функций: h
j,i, l
j,i или r
j,i. “Двухточечный канал обмена данными” может быть получен любым подходящим способом. Предпочтительным является загрузка сервером специфичной для данного устройства информации через защищенную линию связи (например, SSL), используя Интернет.
Как описано выше, функция f может быть функцией дешифрования, основанной на сети шифра Фейстеля, и каждая из функций f
i обработки сигналов представляет собой соответствующие функции цикла дешифрования Фейстеля. В таком случае, каждое из преобразований p
i предпочтительно представляет собой оператор Фейстеля, где функция Q, действующая на следующую пару <x,y>, представляет собой оператор Фейстеля, если существуют обратимые функции Q
x и Q
y и Q(〈x,y〉)=〈Qx(x),Qy(y)〉, где Qx(x)⊕Qy(y)=Qx(x⊕y) и Qy(x)⊕Qy(y)=Qy(x⊕y). Если эти условия выполняются, то функции f
i могут быть оптимально скрыты. На практике можно показать, что существует много таких операторов Фейстеля, предоставляющих достаточную свободу выбора для специфичного для данного устройства выбора преобразований. Определение оператора Фейстеля основано на понимании того, что использование определений, данных выше для цикла Фейстеля fi(〈Li-1,Ri-1〉)=〈Ri-1,(Li-1⊕F(Ri-1,Ki))〉, может быть рассмотрено в виде с определениями swap(〈x,y〉)=swap(〈y,x〉) и involutary
F
(〈x,y〉)=〈x,y⊕F(x)〉. Это также соответствует: swap
-1
= swap и involutary
-1 F
= involutary
F.
Необходимо отметить, что настоящее изобретение также распространяется на компьютерные программы, в частности, на компьютерные программы на носителе данных, адаптированные для применения настоящего изобретения на практике. Программа может быть представлена в виде исходного кода, объектного кода, вспомогательного исходного кода и объектного кода в частично компилированной форме, или в любой другой форме, подходящей для использования для реализации способа согласно настоящему изобретению. Носитель представляет собой любой модуль или устройство, способное нести программу. Например, носитель может включать в себя носитель данных, например, ПЗУ, CD ROM или полупроводниковое ПЗУ, или магнитный носитель записи, например, гибкий диск или жесткий диск. Дополнительно носитель может представлять собой носитель, выполненный с возможностью его передачи, такой как электрический или оптический сигнал, который может быть передан через электрический или оптический кабель, или при помощи радио или других средств. Если программа реализована в виде такого сигнала, носитель может состоять из такого кабеля или другого устройства или средства. В качестве альтернативы, носитель может представлять собой интегральную схему, в которую встроена программа, причем интегральная схема адаптирована для исполнения соответствующего способа.
Необходимо отметить, что вышеуказанные варианты осуществления представляют собой иллюстрацию, а не ограничение настоящего изобретения, и специалисты в данной области техники способны разработать множество альтернативных вариантов осуществления, не выходя за пределы прилагаемой формулы изобретения. В прилагаемой формуле изобретения любые ссылочные позиции, находящиеся в круглых скобках, не должны толковаться как ограничивающие формулу изобретения. Использование глагола “содержать” и его форм не исключает наличия элементов или этапов, отличных от этапов, упомянутых в формуле изобретения. Элементы, указанные в единственном числе, не исключают присутствия множества таких элементов. Настоящее изобретение может быть реализовано с помощью средств аппаратного обеспечения, содержащих несколько отдельных элементов, и с помощью компьютера, имеющего подходящее программное обеспечение. В пунктах формулы изобретения, относящихся к устройству, перечисляющих несколько средств, некоторые из этих средств могут быть реализованы с помощью одного или аналогичного элемента аппаратного обеспечения. Сам факт того, что некоторые критерии перечислены в разных независимых пунктах формулы изобретения, не означает, что комбинация этих критериев не может быть использована для усовершенствования.
Claims (23)
1. Способ предоставления функции f обработки цифровых сигналов в исполняющее устройство в умышленно запутанном виде; при этом функция f включает в себя каскад функций, включающий в себя множество функций fi обработки сигналов, где 1≤i≤N, для обработки входного цифрового сигнала x для получения выходного цифрового сигнала, при этом способ включает в себя
выбор набора 2N обратимых преобразований pi 1≤i≤2N;
вычисление набора N функций gi, где gi представляет собой функциональный эквивалент для , для 1≤i≤N;
вычисление набора N-1 функций hi, где hi представляет собой функциональный эквивалент для , для 2≤i≤N;
наделение исполняющего устройства каскадом функций исполнительного устройства, который включает в себя где y1, …, yN представляют собой функциональные параметры;
предоставление функций g1, …, gN в исполняющее устройство; и
в исполняющем устройстве применение каскада функций исполнительного устройства к функциям g1, …, gN (например, ED1(g1, …, gN)).
выбор набора 2N обратимых преобразований pi 1≤i≤2N;
вычисление набора N функций gi, где gi представляет собой функциональный эквивалент для , для 1≤i≤N;
вычисление набора N-1 функций hi, где hi представляет собой функциональный эквивалент для , для 2≤i≤N;
наделение исполняющего устройства каскадом функций исполнительного устройства, который включает в себя где y1, …, yN представляют собой функциональные параметры;
предоставление функций g1, …, gN в исполняющее устройство; и
в исполняющем устройстве применение каскада функций исполнительного устройства к функциям g1, …, gN (например, ED1(g1, …, gN)).
6. Способ предоставления функции f обработки цифровых сигналов по п.1, включающий в себя получение уникального идентификатора исполняющего устройства и/или пользователя исполняющего устройства; причем набор и/или последовательность из 2N обратимых преобразований pi является уникальной для полученного идентификатора.
7. Способ по п.1, в котором этап наделения исполняющего устройства каскадом функций исполнительного устройства включает в себя предоставление каскада функций исполнительного устройства, встроенного в программные средства для выполнения процессором в исполняющем устройстве.
8. Способ по п.7, в котором этап предоставления функций g1, …, gN исполняющему устройству включает в себя предоставление функций g1, …, gN в виде модуля расширения для программы.
9. Способ по п.7, в котором этап предоставления функций g1, …,gN исполняющему устройству включает в себя встраивание функций g1, …, gN в программные средства путем применения каскада функций исполнительного устройства к функциональным параметрам g1, …, gN.
10. Способ предоставления функции f обработки цифрового сигнала по п.1, в котором функция f является функцией дешифрования, основанной на сети шифра Фейстеля, и каждая функция fi обработки цифрового сигнала представляет собой соответствующую функцию цикла дешифрования Фейстеля.
11. Способ предоставления функции f обработки цифрового сигнала по п.10, в котором каждое преобразование pi представляется собой оператор Фейстеля, если существуют обратимые функции Qx и Qy и Q(〈x,y〉)=〈Qx(x),Qy(y)〉, где Qx(x)⊕Qx(y)=Qx(x⊕y) и Qy(x)⊕Qy(y)=Qy(x⊕y).
12. Машиночитаемый носитель, хранящий компьютерную программу, причем компьютерная программа выполнена с возможностью процессора в исполнительном устройстве исполнять функцию f обработки цифровых сигналов, включающую в себя каскад функций, включающих в себя множество функций fi обработки сигналов, где 1≤i≤N, для обработки входного цифрового сигнала x для получения выходного цифрового сигнала, путем
загрузки каскада функций исполнительного устройства, который включает в себя где y1, …, yN являются функциональными параметрами;
загрузки множества функций g1, …, gN,
применения каскада функций исполнительного устройства к набору функций g1, …, gN, где
gi представляет собой функциональный эквивалент для 1≤i≤N;
hi представляет собой функциональный эквивалент для 2≤i≤N; и
pi представляет собой обратимое преобразование для 1≤i≤2N.
загрузки каскада функций исполнительного устройства, который включает в себя где y1, …, yN являются функциональными параметрами;
загрузки множества функций g1, …, gN,
применения каскада функций исполнительного устройства к набору функций g1, …, gN, где
gi представляет собой функциональный эквивалент для 1≤i≤N;
hi представляет собой функциональный эквивалент для 2≤i≤N; и
pi представляет собой обратимое преобразование для 1≤i≤2N.
13. Система для предоставления функции f обработки цифровых сигналов в исполняющее устройство в умышленно запутанном виде; причем система включает в себя сервер (610) и исполняющее устройство (620); причем функция f включает в себя каскад функций, включающий в себя множество функций fi обработки сигналов, 1≤i≤N, для обработки входного цифрового сигнала x для получения выходного цифрового сигнала;
при этом сервер включает в себя процессор (612) для выполнения под управлением программы этапов:
выбора набора 2N обратимых преобразований pi, 1≤i≤2N;
вычисления набора N функций gi, где gi представляет собой функциональный эквивалент , для 1≤i≤N;
вычисления набора N-1 функций hi, где hi представляет собой функциональный эквивалент , для 2≤i≤N; и
средство (614) для наделения исполняющего устройства каскадом функций исполнительного устройства, который включает в себя где у1, …, yN представляет собой функциональные параметры; и
средство (616) для предоставления функций g1, …, gN в исполняющее устройство; и
исполняющее устройство (620), включающее в себя
средство (626) для получения функций g1, …, gN из сервера; и
процессор (622) для загрузки каскада функций исполнительного устройства и применения загруженного каскада функций исполнительного устройства к функциям
g1, …, gN, под управлением программы.
при этом сервер включает в себя процессор (612) для выполнения под управлением программы этапов:
выбора набора 2N обратимых преобразований pi, 1≤i≤2N;
вычисления набора N функций gi, где gi представляет собой функциональный эквивалент , для 1≤i≤N;
вычисления набора N-1 функций hi, где hi представляет собой функциональный эквивалент , для 2≤i≤N; и
средство (614) для наделения исполняющего устройства каскадом функций исполнительного устройства, который включает в себя где у1, …, yN представляет собой функциональные параметры; и
средство (616) для предоставления функций g1, …, gN в исполняющее устройство; и
исполняющее устройство (620), включающее в себя
средство (626) для получения функций g1, …, gN из сервера; и
процессор (622) для загрузки каскада функций исполнительного устройства и применения загруженного каскада функций исполнительного устройства к функциям
g1, …, gN, под управлением программы.
14. Исполняющее устройство (620) для использования в системе по п.13, причем исполняющее устройство включает в себя
средство (626) для получения функций g1, …, gN из сервера; и
процессор (622) для применения каскада функций исполнительного
устройства к функциям g1, …, gN и применения указанного примененного каскада функций для данного устройства ко входному цифровому сигналу x под управлением программы.
средство (626) для получения функций g1, …, gN из сервера; и
процессор (622) для применения каскада функций исполнительного
устройства к функциям g1, …, gN и применения указанного примененного каскада функций для данного устройства ко входному цифровому сигналу x под управлением программы.
15. Способ предоставления функции f обработки цифровых сигналов во множество исполняющих устройств, каждое из которых идентифицируют при помощи уникального индекса j, в умышленно запутанном анонимном виде; причем функция f включает в себя каскад функций, включающий в себя множество функций fi обработки сигналов, где 1≤i≤N, для обработки входного цифрового сигнала x для получения выходного цифрового сигнала, при этом способ включает в себя
выбор набора 2N обратимых преобразований pi, где 1≤i≤2N;
вычисление набора N функций gi, где gi представляет собой функциональный эквивалент , для 1≤i≤N;
выбор для каждого устройства j соответствующего набора и/или последовательности 2N обратимых преобразований pj,i, которые являются уникальными для устройства и/или пользователя этого устройства;
вычисление для каждого исполняющего устройства j соответствующего набора N-1 функций hj,i, где hj,i представляет собой функциональный эквивалент , для 2≤i≤N;
наделение каждого исполняющего устройства j соответствующим каскадом функций EDj(y1, …, yN), который включает в себя
наделение каждого исполняющего устройства j соответствующей функцией загрузчика где lj,i представляет собой функциональный эквивалент , и rj,i представляет собой функциональный эквивалент ;
предоставление для исполняющего устройства функций g1, …, gN; и
в исполняющем устройстве исполнение EDj(loaderj(gi, …, gN)).
выбор набора 2N обратимых преобразований pi, где 1≤i≤2N;
вычисление набора N функций gi, где gi представляет собой функциональный эквивалент , для 1≤i≤N;
выбор для каждого устройства j соответствующего набора и/или последовательности 2N обратимых преобразований pj,i, которые являются уникальными для устройства и/или пользователя этого устройства;
вычисление для каждого исполняющего устройства j соответствующего набора N-1 функций hj,i, где hj,i представляет собой функциональный эквивалент , для 2≤i≤N;
наделение каждого исполняющего устройства j соответствующим каскадом функций EDj(y1, …, yN), который включает в себя
наделение каждого исполняющего устройства j соответствующей функцией загрузчика где lj,i представляет собой функциональный эквивалент , и rj,i представляет собой функциональный эквивалент ;
предоставление для исполняющего устройства функций g1, …, gN; и
в исполняющем устройстве исполнение EDj(loaderj(gi, …, gN)).
16. Способ предоставления функции f обработки цифровых сигналов по п.15, включающий в себя предоставление g1, …, gN для каждого исполняющего устройства через широковещательную передачу и/или распределение на носителе данных с одним и тем же контентом для каждого исполняющего устройства.
17. Способ предоставления функции f обработки цифрового сигнала по п.16, дополнительно включающий в себя предоставление входного цифрового сигнала x в каждое исполняющее устройство через широковещательную передачу и/или распределение на носителе данных с одним и тем же контентом для каждого исполняющего устройства.
18. Способ предоставления функции f обработки цифрового сигнала по п.15, включающий в себя предоставление в исполняющее устройство j через двухточечный канал обмена данными и/или носитель данных со специфичным для устройства контентом, по меньшей мере, одного из следующих наборов соответствующих функций: hj,i, lj,i, или rj,i.
19. Способ предоставления функции f обработки цифрового сигнала по п.15, в котором функция f является функцией дешифрования, основанной на сети шифра Фейстеля, и каждая функция fi обработки цифрового сигнала представляет собой соответствующую функцию цикла дешифрования Фейстеля.
20. Способ предоставления функции f обработки цифрового сигнала по п.19, в котором каждое преобразование pi представляет собой оператор Фейстеля, где функция Q, действующая на последовательность пар <x, y>, представляет собой оператор Фейстеля, если существуют обратимые функции Qx и Qy, и Q(〈x, y〉)=〈Qx(x), Qy(y)〉, где Qx(x)⊕Qx(y)=Qx(x⊕y) и Qy(x)⊕Qy(y)=Qy(x⊕y).
21. Машиночитаемый носитель, хранящий компьютерную программу, причем компьютерная программа выполнена с возможностью побуждать процессор в исполняющем устройстве j выполнять функцию f обработки цифрового сигнала, включающую в себя каскад функций, включающий в себя множество функций fi обработки сигнала, где 1≤i≤N, для обработки входного цифрового сигнала x для получения выходного цифрового сигнала, причем способ включает путем:
загрузку каскада функций исполнительного устройства, который является уникальным для исполнительного устройства и который включает в себя где y1, …, yN являются функциональными параметрами;
загрузку функции загрузчика
загрузку множества функций g1, …, gN,
применение функции загрузчика к набору функций g1, …, gN для получения набора функций gj,1, …, gj,N; и
применение каскада функций исполнительного устройства к набору функций gj,1, …, gi,N, где:
gi представляет собой функциональный эквивалент для 1≤i≤N;
pi представляет собой обратимое преобразование для 1≤i≤N;
hj,i представляет собой функциональный эквивалент для 2≤i≤N;
lj,i представляет собой функциональный эквивалент ;
rj,i представляет собой функциональный эквивалент ; и
pj,i представляет собой обратимые преобразования для 1≤i≤2N, которые являются уникальными для устройства и/или пользователя этого устройства.
загрузку каскада функций исполнительного устройства, который является уникальным для исполнительного устройства и который включает в себя где y1, …, yN являются функциональными параметрами;
загрузку функции загрузчика
загрузку множества функций g1, …, gN,
применение функции загрузчика к набору функций g1, …, gN для получения набора функций gj,1, …, gj,N; и
применение каскада функций исполнительного устройства к набору функций gj,1, …, gi,N, где:
gi представляет собой функциональный эквивалент для 1≤i≤N;
pi представляет собой обратимое преобразование для 1≤i≤N;
hj,i представляет собой функциональный эквивалент для 2≤i≤N;
lj,i представляет собой функциональный эквивалент ;
rj,i представляет собой функциональный эквивалент ; и
pj,i представляет собой обратимые преобразования для 1≤i≤2N, которые являются уникальными для устройства и/или пользователя этого устройства.
22. Система для предоставления функции f обработки цифрового сигнала во множество исполняющих устройств, в умышленно запутанном анонимном виде; причем система включает в себя сервер и множество исполняющих устройств, каждое из которых идентифицируемо с помощью уникального индекса j; при этом функция f включает в себя каскад функций, включающий в себя множество функций fi обработки цифрового сигнала, где 1≤i≤N, для обработки входного цифрового сигнала x для получения выходного цифрового сигнала;
при этом сервер включает в себя процессор для выполнения под управлением программы следующих этапов:
выбора из 2N обратимых преобразований pi, где 1≤i≤2N;
вычисления набора из N функций gi, где gi представляет собой функциональный эквивалент , для 1≤i≤N;
выбора для каждого устройства j соответствующего набора и/или последовательности 2N обратимых преобразований pj,i, которые являются уникальными для устройства и/или пользователя этого устройства;
вычисления для каждого исполняющего устройства j соответствующего набора N-1 функций hj,i, где hj,i представляет собой функциональный эквивалент для 2≤i≤N;
наделения каждого исполняющего устройства j соответствующим каскадом функций EDj(y1, …, yN), который включает в себя
наделения каждого исполняющего устройства j соответствующей функцией загрузчика где lj,i представляет собой функциональный эквивалент для , и rj,i представляет собой функциональный эквивалент для ; и
предоставления в исполняющее устройство функций g1, …, gN; и
каждое исполняющее устройство j содержит
средство получения функций g1, …, gN из сервера; и
процессор для выполнения под управлением программы следующих этапов:
загрузки каскада функций исполнительного устройства, который является уникальным для исполнительного устройства и который включает в себя где y1, …, yN являются функциональными параметрами;
загрузки функции загрузчика
применения функции загрузчика к набору функций g1,…,gN для получения набора функций gj,1, …, gj,N; и
применения каскада функций исполнительного устройства к набору функций gj,1, …, gj,N.
при этом сервер включает в себя процессор для выполнения под управлением программы следующих этапов:
выбора из 2N обратимых преобразований pi, где 1≤i≤2N;
вычисления набора из N функций gi, где gi представляет собой функциональный эквивалент , для 1≤i≤N;
выбора для каждого устройства j соответствующего набора и/или последовательности 2N обратимых преобразований pj,i, которые являются уникальными для устройства и/или пользователя этого устройства;
вычисления для каждого исполняющего устройства j соответствующего набора N-1 функций hj,i, где hj,i представляет собой функциональный эквивалент для 2≤i≤N;
наделения каждого исполняющего устройства j соответствующим каскадом функций EDj(y1, …, yN), который включает в себя
наделения каждого исполняющего устройства j соответствующей функцией загрузчика где lj,i представляет собой функциональный эквивалент для , и rj,i представляет собой функциональный эквивалент для ; и
предоставления в исполняющее устройство функций g1, …, gN; и
каждое исполняющее устройство j содержит
средство получения функций g1, …, gN из сервера; и
процессор для выполнения под управлением программы следующих этапов:
загрузки каскада функций исполнительного устройства, который является уникальным для исполнительного устройства и который включает в себя где y1, …, yN являются функциональными параметрами;
загрузки функции загрузчика
применения функции загрузчика к набору функций g1,…,gN для получения набора функций gj,1, …, gj,N; и
применения каскада функций исполнительного устройства к набору функций gj,1, …, gj,N.
23. Исполняющее устройство для использования в системе по п.22, в которой исполняющее устройство идентифицируется при помощи уникального индекса j и включает в себя
средство для получения функций g1, …, gN из сервера; и
процессор для выполнения под управлением программы следующих этапов:
загрузки каскада функций исполнительного устройства, который является уникальным для исполнительного устройства и который включает в себя
где y1, …, yN являются функциональными параметрами,
загрузки функций загрузчика
применения функции загрузчика к набору функций gi,…,gN для получения набора функций gj,1, …, gj,N; и
применения каскада функций исполнительного устройства к набору функций gj,1, …, gj,N, где
gi представляет собой функциональный эквивалент для 1≤i≤N;
pi представляет собой обратимое преобразование для 1≤i≤N;
hj,i представляет собой функциональный эквивалент для 2≤i≤N;
lj,i представляет собой функциональный эквивалент для ;
rj,i представляет собой функциональный эквивалент ; и
pj,i представляют собой обратимые преобразования для 1≤i≤2N, которые являются уникальными для устройства и/или пользователя этого устройства.
средство для получения функций g1, …, gN из сервера; и
процессор для выполнения под управлением программы следующих этапов:
загрузки каскада функций исполнительного устройства, который является уникальным для исполнительного устройства и который включает в себя
где y1, …, yN являются функциональными параметрами,
загрузки функций загрузчика
применения функции загрузчика к набору функций gi,…,gN для получения набора функций gj,1, …, gj,N; и
применения каскада функций исполнительного устройства к набору функций gj,1, …, gj,N, где
gi представляет собой функциональный эквивалент для 1≤i≤N;
pi представляет собой обратимое преобразование для 1≤i≤N;
hj,i представляет собой функциональный эквивалент для 2≤i≤N;
lj,i представляет собой функциональный эквивалент для ;
rj,i представляет собой функциональный эквивалент ; и
pj,i представляют собой обратимые преобразования для 1≤i≤2N, которые являются уникальными для устройства и/или пользователя этого устройства.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03104643.6 | 2003-12-11 | ||
EP03104643 | 2003-12-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2006120479A RU2006120479A (ru) | 2007-12-27 |
RU2370897C2 true RU2370897C2 (ru) | 2009-10-20 |
Family
ID=34684571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2006120479/09A RU2370897C2 (ru) | 2003-12-11 | 2004-11-30 | Система блочной криптографической защиты, использующая преобразования для сокрытия основной функции криптографической защиты каждого цикла шифрования |
Country Status (10)
Country | Link |
---|---|
US (1) | US8023651B2 (ru) |
EP (1) | EP1712032B1 (ru) |
JP (2) | JP4884976B2 (ru) |
KR (1) | KR101079565B1 (ru) |
CN (1) | CN1890914B (ru) |
AT (1) | ATE509442T1 (ru) |
BR (1) | BRPI0417450A (ru) |
MX (1) | MXPA06006464A (ru) |
RU (1) | RU2370897C2 (ru) |
WO (1) | WO2005060147A1 (ru) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2541867C2 (ru) * | 2010-07-09 | 2015-02-20 | Награвисьон С.А. | Способ и система для защищенной передачи аудиовизуального контента |
RU2544760C2 (ru) * | 2010-06-01 | 2015-03-20 | Награвисьон С.А. | Способ декодирования шифрованного аудио/видеоконтента, способ идентификации модуля безопасности и устройство декодирования |
RU2708439C1 (ru) * | 2015-12-15 | 2019-12-06 | Конинклейке Филипс Н.В. | Вычислительное устройство и способ |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1712032B1 (en) | 2003-12-11 | 2011-05-11 | Irdeto B.V. | Block ciphering system, using permutations to hide the core ciphering function of each encryption round |
KR20060107282A (ko) * | 2005-04-07 | 2006-10-13 | 엘지전자 주식회사 | 데이터 재생방법, 데이터 기록재생 플레이어 및 데이터전송방법 |
WO2007105126A2 (en) | 2006-03-10 | 2007-09-20 | Koninklijke Philips Electronics N.V. | Method and system for obfuscating a cryptographic function |
JP2007298847A (ja) * | 2006-05-02 | 2007-11-15 | Kddi Corp | プログラム内データの保護装置、保護方法およびプログラム |
US8700915B2 (en) | 2006-07-12 | 2014-04-15 | Irdeto Corporate B.V. | Method and system for verifying authenticity of at least part of an execution environment for executing a computer module |
JP5496880B2 (ja) * | 2007-05-22 | 2014-05-21 | イルデト・コーポレート・ビー・ヴイ | データセキュリティ |
EP2173056A1 (fr) * | 2008-09-04 | 2010-04-07 | Gemplus | Procédé de contre-mesure dans un composant électronique mettant en ouvre un algorithme de cryptographie à clef secrète |
US9111072B1 (en) | 2011-08-23 | 2015-08-18 | Tectonic Labs, LLC | Anti-reverse engineering unified process |
CN104919750B (zh) * | 2012-12-21 | 2017-06-06 | 皇家飞利浦有限公司 | 计算关于函数‑输入值的数据函数的计算设备和方法 |
CN103595539B (zh) * | 2013-11-26 | 2016-08-24 | 南开大学 | 保留格式的数值型个人识别信息的加密方法 |
WO2015091583A1 (en) * | 2013-12-20 | 2015-06-25 | Koninklijke Philips N.V. | Operator lifting in cryptographic algorithm |
US9405919B2 (en) * | 2014-03-11 | 2016-08-02 | Qualcomm Incorporated | Dynamic encryption keys for use with XTS encryption systems employing reduced-round ciphers |
US10184974B2 (en) | 2015-09-22 | 2019-01-22 | Raytheon Company | Systems and methods for determining whether a circuit is operating properly |
CN107517206A (zh) * | 2017-08-18 | 2017-12-26 | 北京北信源软件股份有限公司 | 一种安全通信的方法、装置、可读介质和存储控制器 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2582174B1 (fr) * | 1985-05-15 | 1990-03-09 | Thomson Csf | Dispositif de chiffrement par substitutions-permutations |
US5699512A (en) * | 1994-04-28 | 1997-12-16 | Nippon Telegraph And Telephone Corp. | Software analysis protection method for changing the software pattern on the memory of a user terminal |
JP3463963B2 (ja) * | 1994-04-28 | 2003-11-05 | 日本電信電話株式会社 | ソフトウェア解析保護方法 |
US5838794A (en) * | 1996-01-11 | 1998-11-17 | Teledyne Electronic Technologies | Method and apparatus for inter-round mixing in iterated block substitution systems |
US5949884A (en) * | 1996-11-07 | 1999-09-07 | Entrust Technologies, Ltd. | Design principles of the shade cipher |
WO1999001815A1 (en) | 1997-06-09 | 1999-01-14 | Intertrust, Incorporated | Obfuscation techniques for enhancing software security |
EP0928526B1 (en) * | 1997-07-29 | 2005-06-22 | Lucent Technologies Inc. | Method and apparatus for enhanced cmea employing enhanced transformations |
AU8644098A (en) * | 1997-08-08 | 1999-03-01 | Jonathan Stiebel | New operation for key insertion with folding |
JP2001067270A (ja) * | 1999-08-27 | 2001-03-16 | Nippon Telegr & Teleph Corp <Ntt> | コンテンツ共有管理システムおよびコンテンツ保護方法およびこの方法を記録した記録媒体 |
CA2327911A1 (en) * | 2000-12-08 | 2002-06-08 | Cloakware Corporation | Obscuring functions in computer software |
EP1712032B1 (en) | 2003-12-11 | 2011-05-11 | Irdeto B.V. | Block ciphering system, using permutations to hide the core ciphering function of each encryption round |
-
2004
- 2004-11-30 EP EP04799288A patent/EP1712032B1/en active Active
- 2004-11-30 BR BRPI0417450-0A patent/BRPI0417450A/pt not_active IP Right Cessation
- 2004-11-30 CN CN2004800362647A patent/CN1890914B/zh not_active Expired - Fee Related
- 2004-11-30 AT AT04799288T patent/ATE509442T1/de not_active IP Right Cessation
- 2004-11-30 MX MXPA06006464A patent/MXPA06006464A/es active IP Right Grant
- 2004-11-30 JP JP2006543679A patent/JP4884976B2/ja not_active Expired - Fee Related
- 2004-11-30 RU RU2006120479/09A patent/RU2370897C2/ru not_active IP Right Cessation
- 2004-11-30 WO PCT/IB2004/052607 patent/WO2005060147A1/en active Application Filing
- 2004-11-30 US US10/596,336 patent/US8023651B2/en active Active
-
2006
- 2006-06-09 KR KR1020067011425A patent/KR101079565B1/ko not_active IP Right Cessation
-
2011
- 2011-10-14 JP JP2011227010A patent/JP5453367B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2544760C2 (ru) * | 2010-06-01 | 2015-03-20 | Награвисьон С.А. | Способ декодирования шифрованного аудио/видеоконтента, способ идентификации модуля безопасности и устройство декодирования |
RU2541867C2 (ru) * | 2010-07-09 | 2015-02-20 | Награвисьон С.А. | Способ и система для защищенной передачи аудиовизуального контента |
RU2708439C1 (ru) * | 2015-12-15 | 2019-12-06 | Конинклейке Филипс Н.В. | Вычислительное устройство и способ |
Also Published As
Publication number | Publication date |
---|---|
US8023651B2 (en) | 2011-09-20 |
KR101079565B1 (ko) | 2011-11-04 |
WO2005060147A1 (en) | 2005-06-30 |
EP1712032A1 (en) | 2006-10-18 |
US20080285744A1 (en) | 2008-11-20 |
KR20060123298A (ko) | 2006-12-01 |
JP2012037904A (ja) | 2012-02-23 |
BRPI0417450A (pt) | 2007-04-10 |
EP1712032B1 (en) | 2011-05-11 |
JP5453367B2 (ja) | 2014-03-26 |
JP2007514193A (ja) | 2007-05-31 |
CN1890914B (zh) | 2011-07-27 |
CN1890914A (zh) | 2007-01-03 |
MXPA06006464A (es) | 2006-08-23 |
ATE509442T1 (de) | 2011-05-15 |
RU2006120479A (ru) | 2007-12-27 |
JP4884976B2 (ja) | 2012-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101079565B1 (ko) | 각각의 암호화 라운드의 코어 암호화 함수를 숨기기 위해 치환들을 사용하는 블록 암호화 시스템 | |
KR101226167B1 (ko) | 암호 함수 모호화 방법 및 시스템 | |
JP5249053B2 (ja) | データ処理システムの完全性 | |
US20170286685A1 (en) | Method and system for verifying authenticity of at least part of an execution environment for executing a computer module | |
KR101657062B1 (ko) | 화이트―박스 구현 | |
JP5496663B2 (ja) | デジタルデータ処理装置の耐改竄性 | |
JP2004318154A (ja) | ブロック暗号の暗号化法を用いたデジタルコンテンツの保護関連出願本出願は、2003年4月14日に出願された米国仮特許出願番号60/462,987号についての優先権を主張する。著作権表示/許諾この明細書の開示内容の一部は、著作権保護の対象となるマテリアルを含む。著作権者は、この明細書が特許商標庁への特許出願又は記録であると認められるファックスコピー又は特許開示に対しては異議を唱えないが、それ以外のあらゆる全ての著作権の権利を保有する。以下の表示は、後述するソフトウェア及びデータ、並びに添付の図面に適用される。著作権(c)2003:全ての著作権はソニーエレクトロニクスインク社に帰属する(Copyright(c)2003,SonyElectronics,Inc.,AllRightsReserved)。 | |
KR20100138986A (ko) | 암호 시스템 | |
JP2010528517A (ja) | 暗号用鍵データの更新 | |
KR20110014630A (ko) | 지수 불명료화 | |
KR20100031106A (ko) | 데이터 보안 | |
KR20000055719A (ko) | 디지탈 데이터 파일 암호화 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PC4A | Invention patent assignment |
Effective date: 20100716 |
|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20121201 |