RU2370897C2 - Система блочной криптографической защиты, использующая преобразования для сокрытия основной функции криптографической защиты каждого цикла шифрования - Google Patents

Система блочной криптографической защиты, использующая преобразования для сокрытия основной функции криптографической защиты каждого цикла шифрования Download PDF

Info

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
Application number
RU2006120479/09A
Other languages
English (en)
Other versions
RU2006120479A (ru
Inventor
Паулус М.Х.М.А. ГОРИССЕН (NL)
Паулус М.Х.М.А. ГОРИССЕН
Йоахим А. ТРЕШЕР (NL)
Йоахим А. ТРЕШЕР
Антониус А.М. СТАРИНГ (NL)
Антониус А.М. СТАРИНГ
Виллем К. МАЛЛОН (NL)
Виллем К. МАЛЛОН
Менно А. ТРЕФФЕРС (NL)
Менно А. ТРЕФФЕРС
Original Assignee
Кониклейке Филипс Электроникс Н.В.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Кониклейке Филипс Электроникс Н.В. filed Critical Кониклейке Филипс Электроникс Н.В.
Publication of RU2006120479A publication Critical patent/RU2006120479A/ru
Application granted granted Critical
Publication of RU2370897C2 publication Critical patent/RU2370897C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation 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 циклами, алгоритм может быть описан в виде каскада функций
Figure 00000001
где функция 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 для получения выходного цифрового сигнала (например,
Figure 00000002
включает в себя:
выбор набора из 2N обратимых преобразований p i , 1 ≤ i ≤ 2N;
вычисление набора из N функций g i, где g i представляет собой функциональный эквивалент для
Figure 00000003
, для 1 ≤ i ≤ N;
вычисление набора из N-1 функций h i, где h i представляет собой функциональный эквивалент для
Figure 00000004
, для 2 ≤ i ≤ N;
наделение исполняющего устройства каскадом функций для исполнительного устройства, который включает в себя
Figure 00000005
где y 1,…, y N представляют собой функциональные параметры (например,
Figure 00000006
предоставление функций g 1 ,…,g N в исполняющее устройство; и
в исполняющем устройстве, применение каскада функций для исполнительного устройства к функциям g 1 ,…,g N (например, ED 1 (g 1 ,…,g N )).
Согласно настоящему изобретению, составляющие функции f i предоставляют в инкапсулированной форме в виде g i, где g i представляет собой функциональный эквивалент
Figure 00000003
, для 1 ≤ i ≤ N. Функции p i, используемые для инкапсуляции, также скрывают путем предоставления в виде h i, что представляет собой произведение
Figure 00000004
, для 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 формулы изобретения каскад функций для исполнительного устройства начинается с
Figure 00000007
, например,
Figure 00000008
Применение этого к g 1 ,…,g N, дает функциональное начало последовательности функций, выполняемых в устройстве:
Figure 00000009
при таком способе исполнительное устройство в явном виде выполняет f 1. В варианте осуществления по п.3 формулы изобретения безопасность возрастает путем расширения каскада функций при помощи начальной функции f 0, целью которой является скрыть
Figure 00000007
. Каскад функций, например, может представлять собой
Figure 00000010
Каскад функций для исполнительного устройства начинается с функции S 1, например,
Figure 00000011
где S 1 представляет собой функциональный эквивалент
Figure 00000012
. В силу того, что S 1 представляет только
Figure 00000007
в виде произведения с
f 0,
Figure 00000007
не может быть извлечена из исполнительного устройства прямым способом, таким как считывание определенных ячеек памяти. Предпочтительно 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 для получения выходного цифрового сигнала (например,
Figure 00000013
путем:
загрузки каскада функций для исполнительного устройства, который включает в себя
Figure 00000014
где y 1 ,…,y N являются функциональными параметрами;
загрузки набора функций g 1 ,…,g N;
применения каскада функций исполнительного устройства к набору функций g 1 ,…,g N, где:
g i представляет собой функциональный эквивалент
Figure 00000003
для 1 ≤ i ≤ N;
h i представляет собой функциональный эквивалент
Figure 00000004
для 2 ≤ i ≤ N; и
p i представляет собой обратимое преобразование для 1 ≤ i ≤ 2N.
Для реализации задачи настоящего изобретения способ предоставления функции f обработки цифровых сигналов для множества исполняющих устройств, каждое из которых идентифицируют при помощи уникального индекса j, в умышленно запутанном анонимном виде; причем функция f включает в себя каскад функций, включающий в себя множество функций f i обработки сигналов, где 1 ≤ i ≤ N, для обработки входного цифрового сигнала x для получения выходного цифрового сигнала (например,
Figure 00000015
включает в себя:
выбор набора из 2N обратимых преобразований p i , где 1 ≤ i ≤ 2N;
вычисление набора из N функций g i, где g i представляет собой функциональный эквивалент для
Figure 00000003
, для 1 ≤ i ≤ N;
выбор для каждого устройства j соответствующего набора и/или последовательности из 2N обратимых преобразований p j,i, которые являются уникальными для устройства и/или пользователя этого устройства;
вычисление для каждого исполняющего устройства j соответствующего набора из N-1 функций h j,i, где h j,i представляет собой функциональный эквивалент для
Figure 00000016
, для 2 ≤ i ≤ N;
наделение каждого исполняющего устройства j соответствующим каскадом функций исполнительного устройства ED j (y 1 ,…,y N ), который включает в себя
Figure 00000017
наделение каждого исполняющего устройства j соответствующей функцией загрузчика
Figure 00000018
где l j,i представляет собой функциональный эквивалент для
Figure 00000019
, и r j,i представляет собой функциональный эквивалент для
Figure 00000020
;
предоставление для исполняющего устройства функций 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. Например, ядро каскада функций может быть сформировано при помощи
Figure 00000021
Необходимо отметить, что здесь используется общепринятая в математике запись:
Figure 00000022
В принципе, каскад функций может представлять собой любую функцию обработки цифровых сигналов. В предпочтительном варианте осуществления каскад функций включает в себя шифр. Например, функция 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 представляет собой функциональный эквивалент
Figure 00000003
, для 1 ≤ i ≤ N. В данном контексте, функциональный эквивалент означает, что если g i применяют к такому же входному сигналу (например x), то для каждого разрешенного значения выходного сигнала получают такой же выходной сигнал, как и в случае применения
Figure 00000003
к такому выходному сигналу. Композитные функции
Figure 00000023
, f i и
Figure 00000024
по отдельности не видимы. При этом g i обеспечивает функциональность типа “черный ящик” для
Figure 00000003
. На фиг.5 показан подход для очень простых одномерных функций. В этом примере,
Figure 00000025
Figure 00000026
Figure 00000027
Figure 00000028
Figure 00000029
Таким образом,
Figure 00000030
.
Из области создания компьютерных компиляторов хорошо известно, каким образом может быть достигнута функциональность типа “черный ящик”
Figure 00000003
с использованием так называемых частичных вычислений. Глава 1 “Partial Evaluation and Automatic Program Generation” N.D.Jones, C.K.Gomard и P.Sestoft описывает концепцию частичных вычислений. В настоящем описании это не будет рассматриваться более подробно. Очевидно, что входной цифровой сигнал x является многомерным параметром, например, 64 или 128-битным блоком/вектором, для которого можно выполнить нужное преобразование. Согласно настоящему изобретению вычисляют набор из N-1 функций h i, где h i представляет собой функциональный эквивалент
Figure 00000031
, для 2 ≤ i ≤ N. Используя простой пример по фиг.5,
Figure 00000032
Figure 00000033
. Используя эти определения, часть каскада исполнительных устройств, которая скрывает f 2, будет представлять собой:
Figure 00000034
Очевидно, это является функциональным эквивалентом
Figure 00000035
. Таким образом, исполняющее устройство, которое выполнило этот каскад, выполнило 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}
Для этого примера используются следующие три обратимых преобразования:
Figure 00000036
:{0→6, 1→7, 2→5, 3→3, 4→4, 5→8, 6→1, 7→2, 8→0}
Figure 00000037
:{0→5, 1→3, 2→6, 3→0, 4→8, 5→1, 6→4, 7→2, 8→7}
Figure 00000038
:{0→1, 1→6, 2→3, 3→0, 4→7, 5→2, 6→8, 7→4, 8→5}
Принимая эти функции,
Figure 00000039
будет представлена в виде:
h 2:{0→7, 1→4, 2→2, 3→0, 4→8, 5→6, 6→5, 7→3, 8→1}.
Например, p 2 отображает 0 в 8, а
Figure 00000037
отображает 8 в 7. Таким образом,
Figure 00000040
.
Аналогично,
Figure 00000041
будет представлена в виде:
g 1:{0→8, 1→5, 2→7, 3→6, 4→3, 5→4, 6→1, 7→0, 8→2},
и
Figure 00000042
будет представлена в виде:
g 2:{0→4, 1→3, 2→5, 3→6, 4→1, 5→7, 6→2, 7→0, 8→8}
Исполняющее устройство оснащено каскадом функций исполнительного устройства, который включает в себя
Figure 00000043
где y 1 ,…,y N представляют собой функциональные параметры. На фиг.4 это показано в виде последовательности функций h N ,h N-1 ,…,h 2 410. Иллюстративный каскад функций исполнительного устройства представляет собой
Figure 00000044
Кроме того, в исполняющее устройство предоставляют функции g 1 ,…,g N. На фиг.4 это показано в виде последовательности функций g N ,g N-1 ,…,g 1 420. В исполняющем устройстве каскад функций исполнительного устройства применяют к функциям g 1 ,…,g N. Это дает, например, полную функцию обработки сигналов ED 1 (g 1 ,…,g N ) в исполняющем устройстве. Затем такая функция может быть применена ко входному цифровому сигналу x.
Что касается средней части цепи, например,
Figure 00000045
она может быть представлена в виде:
Figure 00000046
Первый и последний компоненты этого выражения будут исключены с помощью соответствующих g компонентов. Полный выход заключается в том, что исполняющее устройство исполняет функцию, которая включает в себя каскад функций
Figure 00000047
без доступа к любой из функций f i. Таким образом, эти функции являются умышленно запутанными.
В предпочтительном варианте осуществления предоставлены опции для работы с началом и концом цепи. Без принятия каких-либо дополнительных мер получающаяся в результате полная функция обработки сигналов в исполняющем устройстве может представлять собой
Figure 00000048
. Например, компонент р 1 может быть устранен путем использования каскада функций исполнительного устройства, который включает в себя
Figure 00000049
Например,
Figure 00000050
. Предпочтительно, в исполняющем устройстве компонент
Figure 00000051
является защищенным. Предпочтительный способ выполнения этого заключается в расширении каскада функций при помощи дополнительной функции f 0 обработки сигналов (например,
Figure 00000052
Кроме того, каскад функций исполнительного устройства включает в себя
Figure 00000053
(например,
Figure 00000054
где S 1 представляет собой функциональный эквивалент
Figure 00000055
. В этом случае самостоятельные компоненты
Figure 00000051
и f 0 не нуждаются в извлечении, поскольку существуют только в виде произведения
Figure 00000055
. Предпочтительным является, чтобы f 0 представляла собой глобальный секрет, то есть была известна только тем сторонам, которым необходимо ее знать. Глобальные секреты известны, и также известны способы обмена глобальными секретами защищенным способом, и в дальнейшем не будут рассматриваться в настоящем описании.
Аналогично, могут быть приняты меры для рассмотрения компонента
Figure 00000056
. Например, каскад функций исполнительного устройства может включать в себя
Figure 00000057
(например,
Figure 00000058
Для лучшей защиты p 2N каскад функций может заканчиваться дополнительной функцией обработки сигналов f N+1 (например,
Figure 00000059
Каскад функций исполнительного устройства, кроме того, включает в себя
Figure 00000060
(например,
Figure 00000061
где S 2 представляет собой функциональный эквивалент для
Figure 00000062
На фиг.6 показана система, в которой может быть использовано настоящее изобретение. Система 600 включает в себя сервер 610 и, по меньшей мере, одно исполняющее устройство 620. Сервер может быть реализован на компьютерной платформе общего назначения, например, на платформе, используемой в качестве сервера, такого типа, как веб-сервер, или файловый сервер. Сервер включает в себя процессор 612. Процессор 612 работает под управлением программы. Программа может постоянно находиться в процессоре во встроенном носителе данных, таком как встроенное ПЗУ, но также может быть загружена с внешнего носителя данных, такого как жесткий диск (не показан). Под управлением программы процессор 612:
• выбирает набор из 2N обратимых преобразований p i , 1 ≤ i ≤ 2N;
• вычисляет набор из N функций g i, где g i представляет собой функциональный эквивалент
Figure 00000063
, для 1 ≤ i ≤ N; и
• вычисляет набор из N-1 функций h i, где h i представляет собой функциональный эквивалент
Figure 00000064
, для 2 ≤ i ≤ N.
Преобразования могут быть выбраны (например, случайно или псевдослучайно) из очень большого набора преобразований, которые могут храниться на (предпочтительно защищенном) носителе данных (не показан). Сервер может также использовать подходящую программу для генерации преобразований. Способы создания обратимых преобразований хорошо известны в данной области техники и далее не будут рассматриваться в настоящем описании.
Кроме того, сервер включает в себя средство 614 для наделения исполняющего устройства каскадом функций исполнительного устройства, который включает в себя
Figure 00000065
где 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 представляет собой функциональный эквивалент
Figure 00000063
, для 1 ≤ i ≤ N. К тому же, способ дополнительно включает в себя выбор для каждого исполняющего устройства, причем каждое идентифицировано с помощью уникального индекса j, соответствующего набора и/или последовательности из 2N обратимых преобразований p j,i, которые являются уникальными для устройства и/или пользователя этого устройства. Такой набор используется для предоставления каждому устройству уникального “плеера”. Такой уникальный плеер формируется путем вычисления для каждого исполняющего устройства j соответствующего набора из N-1 функций h j,i где h j,i представляет собой функциональный эквивалент
Figure 00000066
, для 2 ≤ i ≤ N и наделения каждого исполняющего устройства j соответствующим каскадом функций исполнительного устройства ED j (y 1 ,…,y N ), который включает в себя
Figure 00000067
Однако такой набор h j,i, специфичный для данного устройства, не соответствует умышленно запутанному каскаду функций, который может “отпереть” исходный плеер, который использует набор h i. Такой набор/плеер создается недоступным для любого исполняющего устройства. Вместо этого, исполняющее устройство j наделяют соответствующей функцией загрузчика
Figure 00000068
где l j,i представляет собой функциональный эквивалент для
Figure 00000069
, и r j,i представляет собой функциональный эквивалент для
Figure 00000070
. Как и прежде, каждому исполняющему устройству предоставляют такие же функции 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 ) представляет собой
Figure 00000071
Используя определение, приведенное выше, получаем
Figure 00000072
, которое может быть переписано в виде
Figure 00000073
. Это представляет собой то же самое, что и использование специфичного для данного устройства набора/последовательности преобразований, в которых специфичный для данного устройства набор 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))〉, может быть рассмотрено в виде
Figure 00000074
с определениями swap(〈x,y〉)=swap(〈y,x〉) и involutary F (〈x,y〉)=〈x,y⊕F(x)〉. Это также соответствует: swap -1 = swap и involutary -1F = involutary F.
Необходимо отметить, что настоящее изобретение также распространяется на компьютерные программы, в частности, на компьютерные программы на носителе данных, адаптированные для применения настоящего изобретения на практике. Программа может быть представлена в виде исходного кода, объектного кода, вспомогательного исходного кода и объектного кода в частично компилированной форме, или в любой другой форме, подходящей для использования для реализации способа согласно настоящему изобретению. Носитель представляет собой любой модуль или устройство, способное нести программу. Например, носитель может включать в себя носитель данных, например, ПЗУ, CD ROM или полупроводниковое ПЗУ, или магнитный носитель записи, например, гибкий диск или жесткий диск. Дополнительно носитель может представлять собой носитель, выполненный с возможностью его передачи, такой как электрический или оптический сигнал, который может быть передан через электрический или оптический кабель, или при помощи радио или других средств. Если программа реализована в виде такого сигнала, носитель может состоять из такого кабеля или другого устройства или средства. В качестве альтернативы, носитель может представлять собой интегральную схему, в которую встроена программа, причем интегральная схема адаптирована для исполнения соответствующего способа.
Необходимо отметить, что вышеуказанные варианты осуществления представляют собой иллюстрацию, а не ограничение настоящего изобретения, и специалисты в данной области техники способны разработать множество альтернативных вариантов осуществления, не выходя за пределы прилагаемой формулы изобретения. В прилагаемой формуле изобретения любые ссылочные позиции, находящиеся в круглых скобках, не должны толковаться как ограничивающие формулу изобретения. Использование глагола “содержать” и его форм не исключает наличия элементов или этапов, отличных от этапов, упомянутых в формуле изобретения. Элементы, указанные в единственном числе, не исключают присутствия множества таких элементов. Настоящее изобретение может быть реализовано с помощью средств аппаратного обеспечения, содержащих несколько отдельных элементов, и с помощью компьютера, имеющего подходящее программное обеспечение. В пунктах формулы изобретения, относящихся к устройству, перечисляющих несколько средств, некоторые из этих средств могут быть реализованы с помощью одного или аналогичного элемента аппаратного обеспечения. Сам факт того, что некоторые критерии перечислены в разных независимых пунктах формулы изобретения, не означает, что комбинация этих критериев не может быть использована для усовершенствования.

Claims (23)

1. Способ предоставления функции f обработки цифровых сигналов в исполняющее устройство в умышленно запутанном виде; при этом функция f включает в себя каскад функций, включающий в себя множество функций fi обработки сигналов, где 1≤i≤N, для обработки входного цифрового сигнала x для получения выходного цифрового сигнала, при этом способ включает в себя
выбор набора 2N обратимых преобразований pi 1≤i≤2N;
вычисление набора N функций gi, где gi представляет собой функциональный эквивалент для
Figure 00000075
, для 1≤i≤N;
вычисление набора N-1 функций hi, где hi представляет собой функциональный эквивалент для
Figure 00000076
, для 2≤i≤N;
наделение исполняющего устройства каскадом функций исполнительного устройства, который включает в себя
Figure 00000077
где y1, …, yN представляют собой функциональные параметры;
предоставление функций g1, …, gN в исполняющее устройство; и
в исполняющем устройстве применение каскада функций исполнительного устройства к функциям g1, …, gN (например, ED1(g1, …, gN)).
2. Способ предоставления функции f обработки цифровых сигналов по п.1, в котором каскад функций исполнительного устройства включает в себя
Figure 00000078
3. Способ предоставления функции f обработки цифровых сигналов по п.1, в котором каскад функций начинается с дополнительной функции f0 обработки сигналов, и каскад функций исполнительного устройства включает в себя
Figure 00000079

(например,
Figure 00000080
где S1 представляет собой функциональный эквивалент
Figure 00000081
4. Способ предоставления функции f обработки цифровых сигналов по п.1, в котором каскад функций исполнительного устройства включает в себя
Figure 00000082
5. Способ предоставления функции f обработки цифровых сигналов по п.1, в котором каскад функций завершается дополнительной функцией fN+1 обработки сигналов и каскад функций исполнительного устройства включает в себя
Figure 00000083
где S2 представляет собой функциональный эквивалент
Figure 00000084
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 для получения выходного цифрового сигнала, путем
загрузки каскада функций исполнительного устройства, который включает в себя
Figure 00000077
где y1, …, yN являются функциональными параметрами;
загрузки множества функций g1, …, gN,
применения каскада функций исполнительного устройства к набору функций g1, …, gN, где
gi представляет собой функциональный эквивалент
Figure 00000085
для 1≤i≤N;
hi представляет собой функциональный эквивалент
Figure 00000076
для 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 представляет собой функциональный эквивалент
Figure 00000085
, для 1≤i≤N;
вычисления набора N-1 функций hi, где hi представляет собой функциональный эквивалент
Figure 00000076
, для 2≤i≤N; и
средство (614) для наделения исполняющего устройства каскадом функций исполнительного устройства, который включает в себя
Figure 00000077
где у1, …, yN представляет собой функциональные параметры; и
средство (616) для предоставления функций g1, …, gN в исполняющее устройство; и
исполняющее устройство (620), включающее в себя
средство (626) для получения функций g1, …, gN из сервера; и
процессор (622) для загрузки каскада функций исполнительного устройства и применения загруженного каскада функций исполнительного устройства к функциям
g1, …, gN, под управлением программы.
14. Исполняющее устройство (620) для использования в системе по п.13, причем исполняющее устройство включает в себя
средство (626) для получения функций g1, …, gN из сервера; и
процессор (622) для применения каскада функций исполнительного
устройства к функциям g1, …, gN и применения указанного примененного каскада функций для данного устройства ко входному цифровому сигналу x под управлением программы.
15. Способ предоставления функции f обработки цифровых сигналов во множество исполняющих устройств, каждое из которых идентифицируют при помощи уникального индекса j, в умышленно запутанном анонимном виде; причем функция f включает в себя каскад функций, включающий в себя множество функций fi обработки сигналов, где 1≤i≤N, для обработки входного цифрового сигнала x для получения выходного цифрового сигнала, при этом способ включает в себя
выбор набора 2N обратимых преобразований pi, где 1≤i≤2N;
вычисление набора N функций gi, где gi представляет собой функциональный эквивалент
Figure 00000085
, для 1≤i≤N;
выбор для каждого устройства j соответствующего набора и/или последовательности 2N обратимых преобразований pj,i, которые являются уникальными для устройства и/или пользователя этого устройства;
вычисление для каждого исполняющего устройства j соответствующего набора N-1 функций hj,i, где hj,i представляет собой функциональный эквивалент
Figure 00000086
, для 2≤i≤N;
наделение каждого исполняющего устройства j соответствующим каскадом функций EDj(y1, …, yN), который включает в себя
Figure 00000087

наделение каждого исполняющего устройства j соответствующей функцией загрузчика
Figure 00000088
где lj,i представляет собой функциональный эквивалент
Figure 00000089
, и rj,i представляет собой функциональный эквивалент
Figure 00000090
;
предоставление для исполняющего устройства функций 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 для получения выходного цифрового сигнала, причем способ включает путем:
загрузку каскада функций исполнительного устройства, который является уникальным для исполнительного устройства и который включает в себя
Figure 00000091
где y1, …, yN являются функциональными параметрами;
загрузку функции загрузчика
Figure 00000092

загрузку множества функций g1, …, gN,
применение функции загрузчика к набору функций g1, …, gN для получения набора функций gj,1, …, gj,N; и
применение каскада функций исполнительного устройства к набору функций gj,1, …, gi,N, где:
gi представляет собой функциональный эквивалент
Figure 00000093
для 1≤i≤N;
pi представляет собой обратимое преобразование для 1≤i≤N;
hj,i представляет собой функциональный эквивалент
Figure 00000094
для 2≤i≤N;
lj,i представляет собой функциональный эквивалент
Figure 00000095
;
rj,i представляет собой функциональный эквивалент
Figure 00000096
; и
pj,i представляет собой обратимые преобразования для 1≤i≤2N, которые являются уникальными для устройства и/или пользователя этого устройства.
22. Система для предоставления функции f обработки цифрового сигнала во множество исполняющих устройств, в умышленно запутанном анонимном виде; причем система включает в себя сервер и множество исполняющих устройств, каждое из которых идентифицируемо с помощью уникального индекса j; при этом функция f включает в себя каскад функций, включающий в себя множество функций fi обработки цифрового сигнала, где 1≤i≤N, для обработки входного цифрового сигнала x для получения выходного цифрового сигнала;
при этом сервер включает в себя процессор для выполнения под управлением программы следующих этапов:
выбора из 2N обратимых преобразований pi, где 1≤i≤2N;
вычисления набора из N функций gi, где gi представляет собой функциональный эквивалент
Figure 00000093
, для 1≤i≤N;
выбора для каждого устройства j соответствующего набора и/или последовательности 2N обратимых преобразований pj,i, которые являются уникальными для устройства и/или пользователя этого устройства;
вычисления для каждого исполняющего устройства j соответствующего набора N-1 функций hj,i, где hj,i представляет собой функциональный эквивалент
Figure 00000097
для 2≤i≤N;
наделения каждого исполняющего устройства j соответствующим каскадом функций EDj(y1, …, yN), который включает в себя
Figure 00000098

наделения каждого исполняющего устройства j соответствующей функцией загрузчика
Figure 00000099
где lj,i представляет собой функциональный эквивалент для
Figure 00000100
, и rj,i представляет собой функциональный эквивалент для
Figure 00000101
; и
предоставления в исполняющее устройство функций g1, …, gN; и
каждое исполняющее устройство j содержит
средство получения функций g1, …, gN из сервера; и
процессор для выполнения под управлением программы следующих этапов:
загрузки каскада функций исполнительного устройства, который является уникальным для исполнительного устройства и который включает в себя
Figure 00000102
где y1, …, yN являются функциональными параметрами;
загрузки функции загрузчика
Figure 00000103

применения функции загрузчика к набору функций g1,…,gN для получения набора функций gj,1, …, gj,N; и
применения каскада функций исполнительного устройства к набору функций gj,1, …, gj,N.
23. Исполняющее устройство для использования в системе по п.22, в которой исполняющее устройство идентифицируется при помощи уникального индекса j и включает в себя
средство для получения функций g1, …, gN из сервера; и
процессор для выполнения под управлением программы следующих этапов:
загрузки каскада функций исполнительного устройства, который является уникальным для исполнительного устройства и который включает в себя
Figure 00000104
где y1, …, yN являются функциональными параметрами,
загрузки функций загрузчика
Figure 00000105

применения функции загрузчика к набору функций gi,…,gN для получения набора функций gj,1, …, gj,N; и
применения каскада функций исполнительного устройства к набору функций gj,1, …, gj,N, где
gi представляет собой функциональный эквивалент
Figure 00000106
для 1≤i≤N;
pi представляет собой обратимое преобразование для 1≤i≤N;
hj,i представляет собой функциональный эквивалент
Figure 00000107
для 2≤i≤N;
lj,i представляет собой функциональный эквивалент для
Figure 00000108
;
rj,i представляет собой функциональный эквивалент
Figure 00000109
; и
pj,i представляют собой обратимые преобразования для 1≤i≤2N, которые являются уникальными для устройства и/или пользователя этого устройства.
RU2006120479/09A 2003-12-11 2004-11-30 Система блочной криптографической защиты, использующая преобразования для сокрытия основной функции криптографической защиты каждого цикла шифрования RU2370897C2 (ru)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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