JP2007514193A - 各暗号化ラウンドのコア暗号化関数を隠蔽するために置換を用いたブロック暗号化システム - Google Patents

各暗号化ラウンドのコア暗号化関数を隠蔽するために置換を用いたブロック暗号化システム Download PDF

Info

Publication number
JP2007514193A
JP2007514193A JP2006543679A JP2006543679A JP2007514193A JP 2007514193 A JP2007514193 A JP 2007514193A JP 2006543679 A JP2006543679 A JP 2006543679A JP 2006543679 A JP2006543679 A JP 2006543679A JP 2007514193 A JP2007514193 A JP 2007514193A
Authority
JP
Japan
Prior art keywords
function
functions
execution device
cascade
execution
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2006543679A
Other languages
English (en)
Other versions
JP4884976B2 (ja
Inventor
パウルス エム エイチ エム エイ ホリッセン
ヨアヒム エイ トレシェル
アントニウス エイ エム スタリング
ウィレム シー マッロン
メンノ エイ トレッフェルス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
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 Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2007514193A publication Critical patent/JP2007514193A/ja
Application granted granted Critical
Publication of JP4884976B2 publication Critical patent/JP4884976B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

Abstract

システム(600)において、サーバ(610)は、ディジタル信号処理関数fを不明瞭化された形態で実行装置(620)に供給する。関数fは、信号処理関数f(1≦i≦N)の関数縦続を式(I)に含める。前記サーバは、2N個の反転可能な置換pのセット(1≦i≦2N)を選択し、N個の関数gのセットを算出し(gは1≦i≦Nについて式(II)に関数的に同等である)、N−1個の関数hのセットを算出する(hは2≦i≦Nについて式(III)に関数的に同等である)ためのプロセッサ(612)を含む。前記サーバは、式(IV)を含む実行装置関数縦続を実行装置に備えるための手段(614)を含み、ここでy、・・・、yは式(V)に対する関数パラメータであり、前記サーバは更に、関数g、・・・、gを前記実行装置に供給するための手段(616)を有する。前記実行装置は、関数g、・・・、gを取得する手段(626)と、前記実行装置関数縦続をロードし該ロードされた実行装置関数縦続を関数g、・・・、gに適用する(例えばED(g,・・・,g))ためのプロセッサ(622)とを含む。

Description

本発明は、セキュアであり及び/又はパーソナライズされた方法で、縦続された信号処理関数を実行装置に供給する方法に関する。本発明はまた、セキュアであり及び/又はパーソナライズされた方法で、縦続された信号処理関数を実行装置に供給するシステムに関する。本発明は更に、セキュアであり及び/又はパーソナライズされた方法で供給された縦続接続された信号処理関数を実行する実行装置に関する。
インターネットは、ディジタルコンテンツへの便利でユビキタス的なアクセスをユーザに提供する。強力な配布チャネルとしてのインターネットの可能性のため、多くの消費者向け電子機器が、インターネットへの最も有力な入口であるPCプラットフォームと相互運用するように努めている。著作権により保護されるコンテンツのための配布媒体としてのインターネットの使用は、コンテンツプロバイダの利益を確保するための抑え難い困難をもたらす。とりわけ、コンテンツプロバイダの著作権及びビジネスモデルを保証することが必要とされる。再生ソフトウェアの制御は、コンテンツが利用され得る期間及び条件を含む、コンテンツの所有者の利益を強化する一方法である。とりわけPCプラットフォームについては、ユーザは、コンテンツへのアクセスを提供するハードウェア及びソフトウェアへの完全な制御と、いずれのコンテンツ保護メカニズムをも攻撃及び回避するための無制限の時間及びリソースを持つことが仮定される必要がある。結果として、コンテンツプロバイダは、全てのユーザが信頼されるわけではないコミュニティへの敵対的なネットワークによって、正当なユーザにコンテンツを配信しなければならない。PCへ配布される保護されたコンテンツのためのディジタル権利管理における一般的なアプローチは、ディジタルコンテンツを暗号化し(例えばDESを利用して)、PCのハードディスク上の所謂ライセンスデータベースに復号化鍵(即ち「ライセンス」)を保存することである。PC上のディジタルコンテンツは一般に、Microsoft社のMedia Player、Real社のRealOne Player、Apple社のQuickTime(登録商標) Playerのようなメディアプレイヤを利用して再生される。斯かるプレイヤは、特定のコンテンツの形式に対して、当該形式に専用のデコードを実行するための、それぞれのプラグインをロードすることができる。これらのコンテンツの形式は、AVI、DV、Motion JPEG、MPEG−1、MPEG−2、MPEG−4、WMV、Audio CD、MP3、WMA、WAV、AIFF/AIFC、AU等を含み得る。プレイヤ及びプラグインの構造は、図1に示される。図1においては、メディアプレイヤ100が、コアプレイヤ100及び幾つかの形式に専用のプラグイン(図示されるものはプラグイン120、122及び124)を含む。コア(core)プレイヤ100は例えば、プレイヤを制御するためのユーザインタフェースを提供する。各プラグインはそれぞれのデコーダを含む。各プラグインは、デコードされたコンテンツを、サウンドカードのような再生ハードウェア/ソフトウェアに直接送信しても良いし、又は更なる処理のためにコアプレイヤ100に送っても良い。セキュアな再生のため、当該形式のコンテンツをデコードするだけでなく、該コンテンツを復号化するセキュアなプラグインが利用される。このことは図2に示される。図2においては、暗号化されたコンテンツが最初に復号化器230に送られ、次いで復号化されたコンテンツが当該形式に専用のデコーダ220に送られる。復号化器230は、ライセンスデータベース210から復号化鍵/ライセンスを受信しても良い。
暗号化に依存するディジタル権利管理の最大の脆弱性は、鍵の配布及び処理である。再生のために、ソフトウェアプレイヤは、ライセンスデータベースから復号化鍵を取得する必要があり、次いで当該復号化鍵を、暗号化されたコンテンツの復号化のためにメモリのどこかに保存する必要がある。このことは、ソフトウェアプレイヤにおける鍵の処理の攻撃のために、攻撃者に2つの選択肢を残す。第1に、ライセンスデータベースのアクセス関数のリバースエンジニアリングが、全てのライセンスデータベースからアセット鍵(asset key)を取得することが可能なブラックボックスソフトウェアに帰着する(即ち、攻撃者がソフトウェア関数の内部の動作を理解する必要がない)ことである。第2に、コンテンツの復号化の間に利用されるメモリへのアクセスの監視によって、アセット鍵を取得することが可能であることである。
一般に、ディジタル権利管理システムは、ラウンド(round)と呼ばれる暗号化/復号化ステップのシーケンスを利用して、ブロック毎にデータストリームを処理するブロック暗号に基づく暗号化手法を利用する。i−1番目のラウンドの出力が、i番目のラウンドの入力である。従って、Nラウンドのシステムについては、アルゴリズムは関数の縦続(cascade)
Figure 2007514193
として記述されることができる。ここで、関数fは、ラウンドiの関数を表す。殆どのブロックアルゴリズムは、Feistelネットワークである。斯かるネットワークにおいては、偶数長nの入力データブロックxは、長さn/2の2つの半分(通常L及びRと呼ばれる)に分割される。1番目のラウンドに供給される入力xはx=<L,R>と与えられる。i番目のラウンド(i>0)は、関数fを実行する。ここでfは、
Figure 2007514193
と定義される。Kはi番目のラウンドにおいて利用される副鍵(subkey)であり、Fは任意のラウンド関数(round function)である。
本発明の目的は、Feistelネットワークのような縦続された信号処理関数のより優れた保護を提供することにある。
本目的を達成するため、ディジタル信号処理関数fを不明瞭化された形態で実行装置に供給する方法であって、前記関数fは、ディジタル信号入力xを処理してディジタル信号出力を出力するための、複数の信号処理関数f(1≦i≦N)を含む関数縦続(例えば
Figure 2007514193
)を含む前記方法は、
2N個の反転可能な置換p(1≦i≦2N)のセットを選択するステップと、
N個の関数gのセットを算出するステップと、を含み、ここで関数gは、1≦i≦Nについて
Figure 2007514193
と関数的に同等であり、前記方法は更に、
N−1個の関数hのセットを算出するステップを含み、ここで関数hは、2≦i≦Nについて
Figure 2007514193
と関数的に同等であり、前記方法は更に、

Figure 2007514193
を含む実行装置関数縦続を前記実行装置に備えるステップを含み、ここでy乃至yは関数パラメータであり(例えば
Figure 2007514193
)、前記方法は更に、
関数g乃至gを前記実行装置に供給するステップと、
前記実行装置において、前記実行装置関数縦続を関数g乃至gに適用する(例えばED(g,・・・,g))ステップと、
を含む。
本発明によれば、構成(constituent)関数fは、gとしてカプセル化された形態で提供される。ここでgは、1≦i≦Nについて、
Figure 2007514193
に関数的に同等である。カプセル化のために利用される関数pもまた、2≦i≦Nについて、
Figure 2007514193
の乗算されたバージョンであるhの形態で供給されることにより隠蔽される。インターリーブされた態様で実行装置において関数g及びhを実行する(例えば図4に示されるように)ことにより、fを直接に認識可能とすることなく、関数の縦続の機能が達成される。とりわけ、fがFeistel暗号のラウンド関数を表す場合には、該ラウンド関数に埋め込まれたラウンド鍵は直接には認識されない。fの不明瞭にされた配信がセキュリティを増大させる。実行関数装置縦続が、メディアプレイヤのコア機能を形成し得る。ここで、セットg、・・・、gが、該プレイヤがfからfまで(fを含む)を含む関数縦続を実行することを可能とする。
従属請求項2及び3は、関数縦続の(関数的な)開始を保護する2つのそれぞれの代替例を示す。請求項2の例においては、実行装置関数縦続はp −1から開始し、例えば
Figure 2007514193
である。これをg、・・・、gに適用することにより、前記装置において実行される関数シーケンスの関数的な開始として
Figure 2007514193
となり、このようにして前記実行装置はfを明示的に実行する。請求項3の例においては、p −1を隠蔽することを支援する開始関数fを用いて関数縦続を拡張することにより、セキュリティが増大させられる。該関数縦続は例えば、
Figure 2007514193
であっても良い。前記実行装置関数縦続は関数Sから開始し、例えば
Figure 2007514193
である。ここでS
Figure 2007514193
に関数的に同等である。Sは単にfで乗算された形態でp −1を表すため、p −1は特定のメモリ位置を読み取ることのような直接的な方法で前記実行装置から取得されることはできない。好ましくは、fはグローバルに秘密(global secret)である。
従属請求項4及び5は、請求項2及び3と類似した方法で関数縦続の(関数的な)末尾を保護する2つのそれぞれの代替例を示す。
従属請求項6の方法によれば、選択された置換pのシーケンスが装置に対して一意的である。このようにして、関数縦続が、不明瞭にされた形態でだけではなく、パーソナライズされた形態で、実行装置に供給される。例えば、埋め込まれた復号鍵を持つFeistel暗号を関数縦続が表す場合、暗号解読又は力任せの攻撃は、g、・・・、gのブラックボックス機能を得ることに帰着し得る。この破壊された機能はこのとき、対応する実行装置関数縦続と組み合わせてのみ機能し、他のいずれの実行装置とも機能しない。このことは、成功する攻撃の影響をかなり制限する。
従属請求項7の方法によれば、実行装置関数縦続は、例えばメディアプレイヤ又はメディアプレイヤ用のプラグインの形態で、プログラムに埋め込まれる。該実行装置はかくして、セキュアでパーソナライズされたソフトウェアを備える。
従属請求項8の方法によれば、関数g、・・・、gは、前記プログラム用のプラグインを形成する。前記プログラム自体がプラグインである場合には、関数g、・・・、gは事実上該プラグイン用のプラグインである。代替として、従属請求項9の方法によれば、関数g、・・・、gは前記実行装置関数縦続と同じプログラムに埋め込まれても良い。
本発明の目的を達成するため、実行装置中のプロセッサに、ディジタル信号処理関数fを実行させるように動作可能なコンピュータプログラムであって、前記関数fは、ディジタル信号入力xを処理してディジタル信号出力を出力するための、複数の信号処理関数f(1≦i≦N)を含む関数縦続(例えば
Figure 2007514193
)を含み、前記関数fの実行は、

Figure 2007514193
を含む実行装置関数縦続をロードし、
関数g乃至gのセットをロードし、
前記関数g乃至gのセットに前記実行装置関数縦続を適用することにより実行され、ここでy乃至yは関数パラメータであり、
は、1≦i≦Nについて
Figure 2007514193
と関数的に同値であり、
は、2≦i≦Nについて
Figure 2007514193
と関数的に同値であり、
は、1≦i≦2Nについて反転可能な置換であるコンピュータプログラムが提供される。
本発明の目的を達成するため、ディジタル信号処理関数fを、不明瞭化された匿名の形態で、それぞれが一意的なインデクスjによって識別される複数の実行装置に供給する方法であって、前記関数fは、ディジタル信号入力xを処理してディジタル信号出力を出力するための、複数の信号処理関数f(1≦i≦N)を含む関数縦続(例えば
Figure 2007514193
)を含む前記方法は、
2N個の反転可能な置換p(1≦i≦2N)のセットを選択するステップと、
N個の関数gのセットを算出するステップと、を含み、ここで関数gは、1≦i≦Nについて
Figure 2007514193
と関数的に同等であり、前記方法は更に、
各装置jについて、前記装置及び/又は前記装置のユーザについて一意的な2N個の反転可能な置換pj,iの対応するセット及び/又はシーケンスを選択するステップと、
各実行装置jについて、N−1個の関数hj,iの対応するセットを算出するステップと、を含み、ここでhj,iは、2≦i≦Nについて
Figure 2007514193
と関数的に同等であり、前記方法は更に、
各前記実行装置jに
Figure 2007514193
を含むそれぞれの実行装置関数縦続ED(y,・・・,y)を備えるステップと、
各前記実行装置jにそれぞれのローダ関数
Figure 2007514193
を備えるステップと、
を含み、ここでlj,i
Figure 2007514193
に関数的に同等であり、rj,i
Figure 2007514193
に関数的に同等であり、前記方法は更に、
前記実行装置に関数g乃至gを供給するステップと、
前記実行装置において、ED(loader(g,・・・,g))を実行するステップと、
を含む。
関数fは、請求項1に記載のものと同様に、関数g、・・・、gの形態で不明瞭にされる。関数g、・・・、gは各装置に対して同一であり、1つのデフォルト/匿名の装置に対応するように見える。実行装置は装置に特有の(「パーソナライズ」された)実行装置縦続を備える。装置に特有のローダ(loader)関数が、それぞれの匿名の関数gを、実行装置縦続に送られる対応する装置に特有の関数へと変換するために利用される。前記ローダ関数は、公然にされていない置換pj,iのセット/シーケンスに基づく変換関数lj,i及びrj,iを利用する。
従属請求項12の方法によれば、関数gは、例えば放送又はCD−ROM若しくはDVDのような記憶媒体を利用して、全ての装置に同一の方法で供給されることができる。
本発明のこれらの及び他の態様は、以下に説明される実施例を参照しながら説明され明らかとなるであろう。
図3は、本発明が利用され得る先行技術のシステムのブロック図を示す。図3の例においては、コンテンツ(典型的にはオーディオ及び/又はビデオコンテンツ)が媒体310に配布される。前記媒体は、各プレイヤについて同一であっても良い。前記媒体は、オーディオCD、DVD、固体メモリ等のような、いずれの適切なタイプのものであっても良い。前記媒体上のコンテンツは、好ましくはFeistel暗号のような暗号化アルゴリズムを利用のもとに暗号化されることにより、コピー保護されている。前記記憶媒体は、復号化鍵に関する情報を含んでも良い。代替として前記記憶媒体は、プレイヤが、例えばインターネットにおけるサーバから該情報をダウンロードすることによって、前記情報を取得することを可能とする情報312(識別子のような)を含んでも良い。前記復号化鍵は、復号化鍵326を算出する(324)ため、鍵特有の鍵322及び情報312を利用することによりセキュアモジュール320において生成される。前記復号化鍵は、第2のモジュール330において取得される(332)。第2のモジュール330は、媒体310のコンテンツ314を復号化し(334)、デコードし(336)、再生する(338)。
図4は、本発明による方法を示す。ディジタル信号処理関数fは、不明瞭化された形態で実行装置に供給される。関数fは、複数の信号処理関数f(1≦i≦N)を含む関数縦続を含む。例えば、前記関数縦続のコアは、
Figure 2007514193
によって形成されても良い。ここで慣例的な数学的表記:
Figure 2007514193
が利用されていることに留意されたい。原則的に、前記関数縦続はいずれのディジタル信号処理関数であっても良い。好適な実施例においては、前記関数縦続は暗号を含む。例えば、関数fはFeistel暗号のi番目のラウンド(i>0)を表しても良い。斯かる場合においては、fは、
Figure 2007514193
と定義される。ここでKはi番目のラウンドにおいて利用される副鍵であり、Fは任意のラウンド関数である。
本発明によれば、2N個の反転可能な置換p(1≦i≦2N)が選択される。次いで、N個の関数gのセットが算出される。ここでgは、1≦i≦Nについて
Figure 2007514193
に関数的に同等である。ここで関数的に同等であるとは、全てのとり得る入力の値について、gが同じ入力(例えばx)に適用された場合に、
Figure 2007514193
が当該入力に適用された場合と等しい結果が得られることを意味する。合成関数p2i −1、f及びp2i −1は、個別には認識できない。gは、
Figure 2007514193
のブラックボックス機能を提供する。図5は、当該アプローチを非常に単純な1次元関数について説明する。本例においては、
Figure 2007514193
である。従って、
Figure 2007514193
である。コンピュータのコンパイラ構築の分野においては、
Figure 2007514193
のブラックボックス機能が所謂部分評価(partial evaluation)を用いてどの様に達成されるかが良く知られている。N. D. Jones、C. K. Gomard及びP. Sestoftによる「Partial Evaluation and Automatic Program Generation」の第1章は、部分評価の概念を記載している。このことは、より詳細にはここでは説明されない。有用な置換を実行することを可能とするため、ディジタル信号入力xは、例えば64又は128ビットブロック/ベクトルの、多次元パラメータであることは理解されるであろう。本発明によれば、N−1個の関数hのセットが算出される。ここでhは、2≦i≦Nについて
Figure 2007514193
と関数的に同等である。図5の単純な例を利用すると、
Figure 2007514193
である。これらの定義を利用すると、fを隠蔽する前記実行装置の縦続の部分は、
Figure 2007514193
となる。これは実際に
Figure 2007514193
と関数的に同等であることが分かる。かくして、当該縦続を実行した実行装置は、fの明示的な知識を持つことなくfを実行したことになる。
別の例においては、N=2であり、f及びfがそれぞれ
:{0−>3、1−>1、2−>6、3−>2、4−>7、5−>5、6−>4、7−>0、8−>8}、
:{0−>4、1−>1、2−>5、3−>7、4−>6、5−>2、6−>0、7−>8、8−>3}
によって与えられるマッピングテーブルに対して評価される。本例においては、fは0と8との間の数を0と8との間の数に変換する反転可能な関数である。例えば値0は値3に、値1は値1に、値2は値6に等変換される。以下の4つのそれぞれの置換が、本例において利用される:
:{0−>5、1−>3、2−>1、3−>7、4−>0、5−>6、6−>2、7−>8、8−>4}、
:{0−>8、1−>6、2−>7、3−>3、4−>4、5−>2、6−>0、7−>1、8−>5}、
:{0−>3、1−>5、2−>7、3−>1、4−>6、5−>0、6−>2、7−>8、8−>4}、
:{0−>3、1−>0、2−>5、3−>2、4−>7、5−>8、6−>1、7−>4、8−>6}
本例に対しては、以下の3つの逆置換が利用される:
−1:{0−>6、1−>7、2−>5、3−>3、4−>4、5−>8、6−>1、7−>2、8−>0}、
−1:{0−>5、1−>3、2−>6、3−>0、4−>8、5−>1、6−>4、7−>2、8−>7}、
−1:{0−>1、1−>6、2−>3、3−>0、4−>7、5−>2、6−>8、7−>4、8−>5}
これら3の関数が与えられると、
Figure 2007514193
は以下のように与えられる:
:{0−>7、1−>4、2−>2、3−>0、4−>8、5−>6、6−>5、7−>3、8−>1}
例えば、pは0を8へマッピングし、p −1は8を7にマッピングする。従って、
Figure 2007514193
である。同様に、
Figure 2007514193
は、
:{0−>8、1−>5、2−>7、3−>6、4−>3、5−>4、6−>1、7−>0、8−>2}
によって与えられ、
Figure 2007514193
は、
:{0−>4、1−>3、2−>5、3−>6、4−>1、5−>7、6−>2、7−>0、8−>8}
によって与えられる。
前記実行装置は、
Figure 2007514193
を含む実行装置関数縦続を備える。ここで、y、・・・、yは関数パラメータである。このことは図4において、関数h、hN−1、・・・、hのシーケンス410として示される。実行装置関数縦続の例は、
Figure 2007514193
である。更に、関数g、・・・、gが前記実行装置に供給される。このことは図4において、関数g、gN−1、・・・、gのシーケンス420として示される。前記実行装置において、前記実行装置関数縦続が関数g、・・・、gに適用される。このことは例えば、前記実行装置における全体の信号処理関数ED(g,・・・,g)を与える。該関数は次いでディジタル信号入力xに適用される。
Figure 2007514193
のような連鎖の中央部分を見ると、該部分は
Figure 2007514193
を与える。該式の最初の項及び最後の項は、それぞれのg項によって除去される。全体の結果として、前記実行装置は、いずれの関数fへのアクセスをも持つことなく、関数縦続
Figure 2007514193
を含む関数を実行する。これらの関数はかくして不明瞭化される。
好適な実施例においては、前記連鎖の先頭及び末尾の処理について選択肢が与えられる。いずれの更なる手段をも用いずに、前記実行装置における結果の全体の信号処理関数が、
Figure 2007514193
となり得る。例えば、項p
Figure 2007514193
を含む実行装置関数縦続を利用することにより除去され得る。例えば、
Figure 2007514193
である。好ましくは、項p −1は前記実行装置においてセキュアに維持される。このことを実行する好適な方法は、更なる信号処理関数fを用いて関数縦続を拡張することである(例えば
Figure 2007514193
)。このとき前記実行装置関数縦続は
Figure 2007514193
を含む(例えば
Figure 2007514193
)。ここでSは、
Figure 2007514193
に関数的に同等である。このようにして、個々の項p −1及びfは明らかにされる必要がなく、乗算された形式
Figure 2007514193
のみが存在する。好ましくは、fはグローバルに秘密である。即ち、fを知っている必要があるものには知られているが、それ以上は配布されない。グローバルな秘密はそれ自体知られており、グローバルな秘密をセキュアな方法で通信する方法もまた知られているが、ここではこれ以上議論されない。
対応する方法で、項p2N−1 −1を処理するための方法がとられても良い。例えば、前記実行装置関数縦続は、
Figure 2007514193
を含んでも良い(例えば
Figure 2007514193
)。p2Nのより優れた保護のため、前記関数縦続は更なる信号処理関数fN+1で終了しても良い(例えば
Figure 2007514193
)。このとき前記実行装置関数縦続は
Figure 2007514193
を含む(例えば
Figure 2007514193
)。ここでSは、
Figure 2007514193
と関数的に同等である。
図6は、本発明が利用され得るシステムを示す。システム600は、サーバ610と、少なくとも1つの実行装置620とを有する。前記サーバは、例えばウェブサーバのようなサーバとして利用されるプラットフォーム又はファイルサーバのような、従来のコンピュータプラットフォーム上に実装されても良い。前記サーバは、プロセッサ612を含む。プロセッサ612は、プログラムの制御下で動作する。前記プログラムは、埋め込まれたROMのように埋め込まれた記憶装置において前記プロセッサに常設的に埋め込まれても良いが、ハードディスク(図示されていない)のようなバックグラウンドの記憶装置からロードされても良い。前記プログラムの制御の下、プロセッサ612は以下を実行する:
・2N個の反転可能な置換p(1≦i≦2N)のセットを選択する。
・N個の関数gのセットを算出する。ここでgは、1≦i≦Nについて
Figure 2007514193
と関数的に同等である。

N−1個の関数hのセットを算出する。ここでhは、2≦i≦Nについて
Figure 2007514193
と関数的に同等である。
前記置換は、(好ましくはセキュアな)記憶装置(図示されていない)に保存されていても良い、置換の非常に大きなセットから(例えばランダム的に又は疑似ランダム的に)選択されても良い。前記サーバは、前記置換を生成するために適切なプログラムも利用しても良い。反転可能な置換を生成する方法は良く知られており、ここではこれ以上説明されない。
加えて、前記サーバは、
Figure 2007514193
を含む実行装置関数縦続を前記実行装置に供給するための手段614を含む。ここでy、・・・、yは関数パラメータである。これらのサーバは、このことをいずれの適切な形態で実行しても良い。例えば工場では、項hは、実行装置620の製造の間、前記実行装置の記憶モジュールに保存されても良い。図6は、前記項が、インターネット630によって直接に実行装置620にダウンロードされることを示す。サーバ610はまた、関数g、・・・、gを実行装置620に供給するための手段616を含む。関数gは、それぞれ関数fを組み込む。関数fは、ディジタル信号入力x用に特に選択される。例えば、各ビデオタイトルが、対応する暗号化関数を用いて暗号化される(例えば同一の暗号化だがコンテンツ特有の鍵を利用して)。この目的のため、サーバ610はまた、コンテンツ640を暗号化するようにプロセッサ612を制御するためのソフトウェアを含んでも良く、また、例えば記憶媒体による又はインターネットのような通信媒体を通した配布のために、配布媒体に暗号化されたコンテンツ642を供給しても良い。
実行装置620は、サーバ610から関数g、・・・、gを得るための手段626を含む。これらの手段は前記サーバの手段616と協働するものであり、更には説明されない。実行装置620は更に、プロセッサ622を含む。前記プロセッサは、パーソナルコンピュータから知られたプロセッサ又は埋め込まれたマイクロコントローラのような、いずれの適切なタイプのものであっても良い。プロセッサ622は、プログラムの制御下で動作する。前記プログラムは、埋め込まれたROMのように埋め込まれた記憶装置を利用してプロセッサ622に常設的に埋め込まれても良いが、ハードディスク(図示されていない)のようなバックグラウンドの記憶装置からロードされても良い。前記プログラムの制御の下、プロセッサ622は、実行装置関数縦続をロードし、例えばED(g,・・・,g)を実行することにより、該ロードされた実行装置関数縦続を関数g、・・・、gに適用する。結果の信号処理関数は次いで、信号入力x(例えば媒体から受信されたコンテンツ)に適用されても良い。プロセッサ622は、いずれの適切な形態で前記実行装置関数縦続をロードしても良い。例えば前記縦続は、製造の間記憶装置に予め保存され、直接のメモリ読み取りアクセスへのロードを減少させても良い。図6の例においては、実行装置620は、例えばインターネット630を通して、又は媒体650から、前記縦続(又は前記縦続の項)を取得するための手段624を含む。同様に、実行装置620は、媒体650から暗号化されたコンテンツ652を取得し、プロセッサ622を利用して該コンテンツを復号化しても良い。前記プロセッサは、前記復号化されたコンテンツをデコードしても良い。
図7は、実行装置関数縦続が、プロセッサ622による実行のためのソフトウェアプログラム710に埋め込まれて実行装置620に供給される、好適な実施例を示す。図7における同一の番号は、図6において利用されたものと同一のアイテムを示す。ソフトウェアプログラム710は、メディアプレイヤのようなプログラム用のプラグインであっても良い。従って図7の手段614は、該プラグイン710を、インターネットを介して供給しても良く(例えば図7のアイテム630)、又は製造の間に実行装置620に直接埋め込んでも良い。
実施例においては、関数g、・・・、gが、プログラム710用のプラグインの形で実行装置620に供給される。プログラム710が既にプラグインである場合には、関数g、・・・、gは事実上プラグイン用のプラグインである。代替としては、関数g、・・・、gは、前記実行装置関数縦続を関数パラメータg、・・・、gに適用することにより、関数g、・・・、gをソフトウェアプログラム710に埋め込むことにより、実行装置620に供給される。このようにして、プログラム710は、関数hとgとの両方を埋め込む。
実施例においては、各実行装置及び/又は該実行装置のユーザは一意的であり、一意的な識別子(例えば一意的な番号j)によって識別される。本発明によるシステム及び方法においては、シーケンスg及びhは、包含されるユーザ/団体(party)に対して一意的であることが保証される。このことは、実行装置及び/又は実行装置のユーザの一意的な識別子jを得ることによって、及びそれぞれ得られた識別子に対して一意的な2N個の反転可能な置換pのセットによって、実現されることができる。同様に、置換の同一のセットを利用して、置換の一意的なシーケンスが選択され得る。両方の手法が(置換の異なるセット又は置換の異なるシーケンスを選択する)組み合わせられても良い。好ましくは、各一意的な識別子について一意的なセット/シーケンスを、サーバが(セキュアな方法で)保存する。このようにして、パーソナルコンピュータ中の各ソフトウェアメディアプレイヤが、メディアタイトルを復号化及び/又はデコードするための一意的なプラグインを供給されることができる。媒体自体は一意的である必要はない。暗号化されたコンテンツは、単に暗号化関数に依存し、置換の一意的なセット/シーケンスには依存しない。前記ソフトウェアが前記識別子に対応するか否かを定期的に(例えばメディアプレイヤの起動時に)チェックし、一致が確認された場合にのみ前記ソフトウェアを実行することにより、プレイヤソフトウェアが、該プレイヤソフトウェアが属さないPC上で実行されないことが保証される。偶然にハッカーが装置特有の置換を得たとしても、該置換は包含されるPCにおいてのみ利用されることができ、異なる暗号化(異なる関数fに帰着する)を用いて保護されたコンテンツには利用可能であるが、異なるプラットフォームにおいては利用されることができない。
以上では、信号処理関数の縦続が不明瞭な態様で実行装置に供給される方法及びシステムが説明された。各装置について、置換の同一のセット/シーケンスが利用されても良いし、又は装置特有のセット/シーケンスが利用されても良い。以下では、各装置について同一である不明瞭化された態様で信号関数縦続(「鍵」)を配布し、共通鍵(common key)を装置特有の鍵に変換する変換ルーチン(「ローダ」)を利用することにより、装置特有のセット/シーケンスを実現するための好適なアプローチが説明される。「共通鍵」は上述したものと略同じ方法で生成される。前記共通鍵は基本的にリファレンスプレイヤ又は匿名プレイヤを「アンロック(unlock)」するが、しかしながらこれらのプレイヤは、本実施例においては、いずれの実際の実行装置によっても実行されない。上述のものと同様に、本方法は2N個の反転可能な置換pのセット(1≦i≦2N)を選択するステップと、N個の関数gを算出するステップとを有する。ここでgは、1≦i≦2Nについて
Figure 2007514193
と関数的に同等である。本方法は加えて、それぞれが一意的なインデクスjによって識別される各実行装置について、該装置及び/又は該装置のユーザについて一意的な対応する2N個の反転可能な置換pj,iのセット及び/又はシーケンスを選択するステップを有する。該セットは、一意的な「プレイヤ」を各装置に備えるために利用される。該一意的なプレイヤは、各実行装置jについてN−1個の関数hj,iの対応するセットを算出し、各実行装置jに
Figure 2007514193
を含むそれぞれの実行装置関数縦続ED(y,・・・,y)を備えることにより形成される。ここでhj,iは、2≦i≦Nについて
Figure 2007514193
に関数的に同等である。しかしながら、該装置特有のセットhは、セットhを利用するリファレンスプレイヤを「アンロック」することができる不明瞭化された関数縦続とは一致しない。該後者のセット/プレイヤのセットは、いずれの実行装置にも利用可能とはされない。その代わりに、実行装置jがそれぞれのローダ関数
Figure 2007514193
を備える。ここでlj,i
Figure 2007514193
と関数的に同等であり、rj,i
Figure 2007514193
と関数的に同等である。上述のものと同様に、各実行装置は同一の関数g、・・・、gを備える。前記実行装置はこのときED(loader(g,・・・,g))を実行する。本式において、loader(g,・・・,g)は事実上匿名鍵g、・・・、gを、実行装置関数縦続ED(y,・・・,y)に最適に一致する装置特有の鍵に変換する。定義:loader(g,・・・,g)=(gj,1,gj,2,・・・,gj,N)を用いると、loader(g,・・・,g)のi番目の要素は
Figure 2007514193
である。上述の定義を用いると、このことは
Figure 2007514193
を与え、該式は
Figure 2007514193
と書き換えられる。このことは、装置特有のセットhj,iが置換を除去する、装置特有の置換セット/シーケンスを利用する場合と同様である。
匿名の不明瞭化された鍵及び装置特有のローダを利用する着想はまた、図8に示される。匿名プレイヤPl−R810は、関数hを組み込む。匿名プレイヤPl−Rは、不明瞭化された信号処理関数fをセットgの形で含む、対応する鍵K−R812によって開錠されることができる。匿名プレイヤPl−Rは、いずれのユーザ/団体にも開示されていない。その代わり各ユーザ/団体は、一意的な装置特有のプレイヤ(図示されているものはプレイヤPl−1(830)及びPl−2(840))を備えられる。共通鍵K−Rは全てのユーザ/団体に供給される。しかしながら、該共通鍵は、特定のプレイヤに合致しない。それ故、各ユーザ/団体はまた装置特有の鍵ローダK−L(図示されているものは820及び825)を供給される。ローダ820及び825は、匿名鍵K−R812を装置特有の鍵K−jに変換するために利用される。この目的のため、ローダK−Lは関数li,j及びrj,iを含む。図8に示されたように、原則的に、装置特有のローダが利用される。図9に更に示されたように、実際には、前記ローダは同一であっても良いが、装置特有の関数lj,i及びrj,iと共に供給される。図9の例においては、l1,i及びr1,iと共に供給されることにより匿名鍵K−R812を装置1用の装置特有の鍵832に変換し、l2,i及びr2,iと共に供給されることにより匿名鍵K−R812を装置2用の装置特有の鍵842に変換する。装置特有のプレイヤ830及び840が次いで、それぞれ装置特有の鍵のセットh1,i(それぞれ832及び842)を利用してアンロックされる。これらの例においては、「鍵」及び「プレイヤ」なる語句は交換可能である。なぜなら、関数の2つの連鎖が相互にロックするからである。図4の例は、両方の連鎖を鍵として説明している。同様に、このことは2つの相互にロックするプレイヤとしても説明され得る。
匿名プレイヤ810(g、・・・、gを組み込む)は有利にも、放送及び/又は記憶媒体における配布を通じて、各実行装置について同一のコンテンツを用いて、各実行装置に供給されても良いことは理解されるであろう。このことは単に、該プレイヤが各装置について同一であるからである。同様に、各実行装置によって処理されるべきディジタル信号入力xは、放送及び/又は記憶媒体における配布を通じて、各実行装置について同一のコンテンツを用いて配布されても良い。ローダに特有の態様は好ましくは、少なくとも1つの対応する関数のセットhj,i、lj,i又はrj,iを用いて装置特有のコンテンツを用いて、「1対1通信チャネル」及び/又は記憶媒体を介して、実行装置jに供給される。「1対1通信チャネル」は、いずれの適切な方法で実現されても良い。好ましくは、前記サーバは、インターネットを利用してセキュアなリンク(例えばSSL)を介して、前記装置特有の情報をダウンロードする。
上述したように、関数fはFeistel暗号ネットワークに基づく復号化関数であっても良く、信号処理関数fの各々は、それぞれのFeistel復号化ラウンド関数である。斯かる場合には、置換pの各々は好ましくは、Feistel変換器である。ここで連続的な対<x,y>に演算する関数Qは、反転可能な関数Q及びQが存在し且つQ(<x,y>)=<Q(x),Q(y)>である場合には、Feistel変換器である。ここで、
Figure 2007514193
及び
Figure 2007514193
である。これらの条件が満たされる場合、関数fは最適に隠蔽される。実際には、多くの斯かるFeistel変換器が存在し、装置に特有な置換の選択のための十分な余地を与える。Feistel変換器の定義は、上述の定義を用いて、定義:swap(<x,y>)=swap(<y,x>)及び
Figure 2007514193
を用いると、Feistelラウンド
Figure 2007514193

Figure 2007514193
として見ることができるという洞察に基づく。このときswap−1=swap及びinvolutary −1=involutaryが成り立つ。
本発明は、本発明を実施するために適応されたコンピュータプログラム、特に担体上のコンピュータプログラムにも適用されることは理解されるであろう。前記プログラムは、ソースコード、オブジェクトコード、部分的にコンパイルされた形式のようなソースコードとオブジェクトコードの中間のコード、又は本発明による方法の実装における利用に適した他のいずれの形態であっても良い。前記担体は、前記プログラムを担持することが可能ないずれのエンティティ又は装置であっても良い。例えば前記担体は、例えばCD−ROM若しくは半導体ROMといったROMのような記憶媒体、又は例えばフロッピー(登録商標)ディスク若しくはハードディスクのような磁気記録媒体を含んでも良い。更に前記担体は、電気若しくは光ケーブルによって、無線によって、又はその他の手段によって伝達され得る、電気又は光信号のような伝送可能な担体であっても良い。前記プログラムが斯かる信号で実施化される場合には、前記担体は斯かるケーブル又は他の装置若しくは手段によって構成されても良い。代替として、前記担体は、前記プログラムが埋め込まれた集積回路であって、本方法を実行するために、又は本方法の実行における使用のために適応された集積回路であっても良い。
上述の実施例は本発明を限定するものではなく説明するものであって、当業者は添付する請求項の範囲から逸脱することなく多くの代替実施例を設計することが可能であろうことは留意されるべきである。請求項において、括弧に挟まれたいずれの参照記号も、請求の範囲を限定するものとして解釈されるべきではない。動詞「有する(comprise)」及びその語形変化の使用は、請求項に記載されたもの以外の要素又はステップの存在を除外するものではない。要素に先行する冠詞「1つの(a又はan)」は、複数のかような要素の存在を除外するものではない。本発明は、幾つかの別個の要素を有するハードウェアによって、及び適切にプログラムされたコンピュータによって実装されても良い。幾つかの手段を列記した装置請求項において、これら手段の幾つかは同一のハードウェアのアイテムによって実施化されても良い。特定の手段が相互に異なる従属請求項に列挙されているという単なる事実は、これら手段の組み合わせが有利に利用されることができないことを示すものではない。
先行技術のプラグインベースのデコードのブロック図を示す。 先行技術ベースの復号化のブロック図を示す。 先行技術の一体化された復号化/デコードシステムのブロック図を示す。 本発明による不明瞭化を示す。 不明瞭化の単純な例を示す。 本発明によるシステムのブロック図を示す。 本発明によるシステムの更なる実施例を示す。 本発明による匿名の不明瞭化を示す。 匿名の不明瞭化のための代替実施例を示す。

Claims (21)

  1. ディジタル信号処理関数fを不明瞭化された形態で実行装置に供給する方法であって、前記関数fは、ディジタル信号入力xを処理してディジタル信号出力を出力するための、複数の信号処理関数f(1≦i≦N)を含む関数縦続(例えば
    Figure 2007514193
    )を含み、前記方法は、
    2N個の反転可能な置換p(1≦i≦2N)のセットを選択するステップと、
    N個の関数gのセットを算出するステップと、を含み、ここで関数gは、1≦i≦Nについて
    Figure 2007514193
    と関数的に同等であり、前記方法は更に、
    N−1個の関数hのセットを算出するステップを含み、ここで関数hは、2≦i≦Nについて
    Figure 2007514193
    と関数的に同等であり、前記方法は更に、
    Figure 2007514193
    を含む実行装置関数縦続を前記実行装置に備えるステップを含み、ここでy乃至yは関数パラメータであり(例えば
    Figure 2007514193
    )、前記方法は更に、
    関数g乃至gを前記実行装置に供給するステップと、
    前記実行装置において、前記実行装置関数縦続を関数g乃至gに適用する(例えばED(g,・・・,g))ステップと、
    を含む方法。
  2. 前記実行装置関数縦続が
    Figure 2007514193

    を含む(例えば
    Figure 2007514193
    )、請求項1に記載のディジタル信号処理関数fを供給する方法。
  3. 前記関数縦続が、更なる信号処理関数fで開始し(例えば
    Figure 2007514193
    )、前記実行装置関数縦続が
    Figure 2007514193
    を含み(例えば
    Figure 2007514193
    )、ここでS
    Figure 2007514193
    に関数的に同等である、請求項1に記載のディジタル信号処理関数fを供給する方法。
  4. 前記実行装置関数縦続が、
    Figure 2007514193
    を含む(例えば
    Figure 2007514193
    )、請求項1に記載のディジタル信号処理関数fを供給する方法。
  5. 前記関数縦続が、更なる信号処理関数fN+1で終了し(例えば
    Figure 2007514193
    )、前記実行装置関数縦続が
    Figure 2007514193
    を含み(例えば
    Figure 2007514193
    )、ここでS
    Figure 2007514193
    と関数的に同等である、請求項1に記載のディジタル信号処理関数fを供給する方法。
  6. 前記実行装置及び/又は前記実行装置のユーザの一意的な識別子を取得するステップを含み、前記2N個の反転可能な置換pのセット及び/又はシーケンスが、前記取得された識別子について一意的である、請求項1に記載のディジタル信号処理関数fを供給する方法。
  7. 前記実行装置関数縦続を前記実行装置に備えるステップは、前記実行装置中のプロセッサによる実行のためのソフトウェアプログラムに埋め込まれた前記実行装置関数縦続を供給するステップを含む、請求項1に記載の方法。
  8. 前記関数g乃至gを前記実行装置に供給するステップは、前記プログラム用のプラグインの形態で前記関数g乃至gを供給するステップを含む、請求項7に記載の方法。
  9. 前記関数g乃至gを前記実行装置に供給するステップは、前記実行装置関数縦続を前記関数パラメータg乃至gに適用することにより、前記ソフトウェアプログラムに前記関数g乃至gを埋め込むステップを含む、請求項7に記載の方法。
  10. 実行装置中のプロセッサに、ディジタル信号処理関数fを実行させるように動作可能なコンピュータプログラムであって、前記関数fは、ディジタル信号入力xを処理してディジタル信号出力を出力するための、複数の信号処理関数f(1≦i≦N)を含む関数縦続(例えば
    Figure 2007514193
    )を含み、前記関数fの実行は、
    Figure 2007514193
    を含む実行装置関数縦続をロードし、
    関数g乃至gのセットをロードし、
    前記関数g乃至gのセットに前記実行装置関数縦続を適用することにより実行され、ここでy乃至yは関数パラメータであり、
    は、1≦i≦Nについて
    Figure 2007514193
    と関数的に同値であり、
    は、2≦i≦Nについて
    Figure 2007514193
    と関数的に同値であり、
    は、1≦i≦2Nについて反転可能な置換である、コンピュータプログラム。
  11. ディジタル信号処理関数fを不明瞭化された形態で実行装置に供給するシステムであって、前記システムは、サーバと実行装置とを含み、前記関数fは、ディジタル信号入力xを処理してディジタル信号出力を出力するための、複数の信号処理関数f(1≦i≦N)を含む関数縦続(例えば
    Figure 2007514193
    )を含み、
    前記サーバは、プログラムの制御下で、
    2N個の反転可能な置換p(1≦i≦2N)のセットを選択し、
    N個の関数gのセットを算出し、
    N−1個の関数hのセットを算出するためのプロセッサを含み、ここで関数gは、1≦i≦Nについて
    Figure 2007514193
    と関数的に同等であり、関数hは、2≦i≦Nについて
    Figure 2007514193
    と関数的に同等であり、前記サーバは更に、
    Figure 2007514193
    を含む実行装置関数縦続を前記実行装置に備える手段を含み、ここでy乃至yは関数パラメータであり(例えば
    Figure 2007514193
    )、前記サーバは更に、
    関数g乃至gを前記実行装置に供給する手段を含み、
    前記実行装置は、
    前記サーバから前記関数g乃至gを取得する手段と、
    プログラムの制御下で、前記実行装置関数縦続をロードし、前記ロードされた実行装置関数縦続を前記関数g乃至gに適用するためのプロセッサと、
    を含むシステム。
  12. 請求項11に記載のシステムにおける使用のための実行装置であって、
    前記サーバから前記関数g乃至gを取得する手段と、
    プログラムの制御下で、前記実行装置関数縦続を前記関数g乃至gに適用し(例えばED(g,・・・,g))、前記適用された実行装置関数縦続を前記ディジタル信号入力xに適用するためのプロセッサと、
    を含む実行装置。
  13. ディジタル信号処理関数fを、不明瞭化された匿名の形態で、それぞれが一意的なインデクスjによって識別される複数の実行装置に供給する方法であって、前記関数fは、ディジタル信号入力xを処理してディジタル信号出力を出力するための、複数の信号処理関数f(1≦i≦N)を含む関数縦続(例えば
    Figure 2007514193
    )を含み、前記方法は、
    2N個の反転可能な置換p(1≦i≦2N)のセットを選択するステップと、
    N個の関数gのセットを算出するステップと、を含み、ここで関数gは、1≦i≦Nについて
    Figure 2007514193
    と関数的に同等であり、前記方法は更に、
    各装置jについて、前記装置及び/又は前記装置のユーザについて一意的な2N個の反転可能な置換pj,iの対応するセット及び/又はシーケンスを選択するステップと、
    各実行装置jについて、N−1個の関数hj,iの対応するセットを算出するステップと、を含み、ここでhj,iは、2≦i≦Nについて
    Figure 2007514193
    と関数的に同等であり、前記方法は更に、
    各前記実行装置jに
    Figure 2007514193
    を含むそれぞれの実行装置関数縦続ED(y,・・・,y)を備えるステップと、
    各前記実行装置jにそれぞれのローダ関数
    Figure 2007514193
    を備えるステップと、
    を含み、ここでlj,i
    Figure 2007514193
    に関数的に同等であり、rj,i
    Figure 2007514193
    に関数的に同等であり、前記方法は更に、
    前記実行装置に関数g乃至gを供給するステップと、
    前記実行装置において、ED(loader(g,・・・,g))を実行するステップと、
    を含む方法。
  14. 各前記実行装置について同一のコンテンツを用いて、放送及び/又は記憶媒体上の配布を通して各前記実行装置に前記g乃至gを供給するステップを含む、請求項13に記載のディジタル信号処理関数fを供給する方法。
  15. 各前記実行装置について同一のコンテンツを用いて、放送及び/又は記憶媒体上の配布を通して各前記実行装置に前記ディジタル信号入力xを供給するステップを更に含む、
    請求項14に記載のディジタル信号処理関数fを供給する方法。
  16. 装置特有のコンテンツを用いて、1対1の通信チャネル及び/又は記憶媒体を通して、対応する関数hj,i、lj,i又はrj,iのセットの少なくとも1つを、実行装置jに供給するステップを含む、請求項13に記載のディジタル信号処理関数fを供給する方法。
  17. 前記関数fは、Feistel暗号ネットワークに基づく復号化関数であり、前記信号処理関数fの各々が、それぞれのFeistel復号化ラウンド関数である、請求項1又は13に記載のディジタル信号処理関数fを供給する方法。
  18. 置換pの各々はFeistel変換器であり、連続的な対<x,y>に演算する関数Qは、反転可能な関数Q及びQが存在し且つQ(<x,y>)=<Q(x),Q(y)>である場合には、Feistel変換器であり、ここで、
    Figure 2007514193
    及び
    Figure 2007514193
    である、請求項17に記載のディジタル信号処理関数fを供給する方法。
  19. 実行装置j中のプロセッサに、ディジタル信号処理関数fを実行させるように動作可能なコンピュータプログラムであって、前記関数fは、ディジタル信号入力xを処理してディジタル信号出力を出力するための、複数の信号処理関数f(1≦i≦N)を含む関数縦続を含み(例えば
    Figure 2007514193
    )、本方法は、
    前記実行装置について一意的であり
    Figure 2007514193
    を含む実行装置関数縦続をロードするステップを含み、ここでy乃至yは関数パラメータであり、前記方法は更に
    ローダ関数
    Figure 2007514193
    をロードするステップと、
    関数g乃至gのセットをロードするステップと、
    前記ローダ関数を前記関数g乃至gのセットに適用して関数gj,1乃至gj,Nのセットを出力し、前記実行装置関数縦続を前記関数gj,1乃至gj,Nのセットに適用するステップと、
    を含み、ここで、
    は、1≦i≦Nについて
    Figure 2007514193
    と関数的に同等であり、
    は反転可能な置換(1≦i≦N)であり、
    j,iは、2≦i≦Nについて
    Figure 2007514193
    と関数的に同等であり、
    j,iは、
    Figure 2007514193
    と関数的に同等であり、
    j,iは、
    Figure 2007514193
    と関数的に同等であり、
    j,iは、反転可能な置換(1≦i≦2N)であり、前記装置及び/又は前記装置のユーザについて一意的である、コンピュータプログラム。
  20. ディジタル信号処理関数fを、不明瞭化された匿名の形態で、複数の実行装置に供給するシステムであって、前記システムは、サーバと、それぞれが一意的なインデクスjによって識別される複数の実行装置とを含み、前記関数fは、ディジタル信号入力xを処理してディジタル信号出力を出力するための、複数の信号処理関数f(1≦i≦N)を含む関数縦続(例えば
    Figure 2007514193
    )を含み、
    前記サーバは、プログラムの制御下で、
    2N個の反転可能な置換p(1≦i≦2N)のセットを選択し、
    N個の関数gのセットを算出し、
    各装置jについて、前記装置及び/又は前記装置のユーザについて一意な2N個の反転可能な置換pj,iの対応するセット及び/又はシーケンスを選択し、
    各実行装置jについて、N−1個の関数hj,iの対応するセットを算出し、
    各前記実行装置jに
    Figure 2007514193
    を含むそれぞれの実行装置関数縦続ED(y,・・・,y)を備え、
    各前記実行装置jにそれぞれのローダ関数
    Figure 2007514193
    を備え、
    前記実行装置に関数g乃至gを供給するためのプロセッサを含み、ここで関数gは、1≦i≦Nについて
    Figure 2007514193
    と関数的に同等であり、hj,iは、2≦i≦Nについて
    Figure 2007514193
    と関数的に同等であり、lj,i
    Figure 2007514193
    に関数的に同等であり、rj,i
    Figure 2007514193
    に関数的に同等であり、
    各前記実行装置jは、
    前記サーバから前記関数g乃至gを取得する手段と、
    プログラムの制御下で、
    前記実行装置について一意的であり
    Figure 2007514193
    を含む実行装置関数縦続をロードし、
    ローダ関数
    Figure 2007514193
    をロードし、
    前記ローダ関数を前記関数g乃至gのセットに適用し、関数gj,1乃至gj,Nのセットを出力し、
    前記実行装置関数縦続を、gj,1乃至gj,Nのセットに適用するためのプロセッサと、
    を含み、ここでy乃至yは関数パラメータであるシステム。
  21. 請求項20に記載のシステムにおける使用のための実行装置であって、前記実行装置は、一意的なインデクスjによって識別され、
    前記サーバから前記関数g乃至gを取得する手段と、
    プログラムの制御下で、
    前記実行装置について一意的であり
    Figure 2007514193
    を含む実行装置関数縦続をロードし、
    ローダ関数
    Figure 2007514193
    をロードし、
    前記ローダ関数を前記関数g乃至gのセットに適用して関数gj,1乃至gj,Nのセットを出力し、
    前記実行装置関数縦続を、前記関数gj,1乃至gj,Nのセットに適用するためのプロセッサと、
    を含み、ここでy乃至yは関数パラメータであり、
    は、1≦i≦Nについて
    Figure 2007514193
    と関数的に同等であり、
    は反転可能な置換(1≦i≦N)であり、
    j,iは、2≦i≦Nについて
    Figure 2007514193
    と関数的に同等であり、
    j,iは、
    Figure 2007514193
    と関数的に同等であり、
    j,iは、
    Figure 2007514193
    と関数的に同等であり、
    j,iは、反転可能な置換(1≦i≦2N)であり、前記装置及び/又は前記装置のユーザについて一意的である、実行装置。
JP2006543679A 2003-12-11 2004-11-30 各暗号化ラウンドのコア暗号化関数を隠蔽するために置換を用いたブロック暗号化システム Expired - Fee Related JP4884976B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP03104643.6 2003-12-11
EP03104643 2003-12-11
PCT/IB2004/052607 WO2005060147A1 (en) 2003-12-11 2004-11-30 Block ciphering system, using permutations to hide the core ciphering function of each encryption round

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011227010A Division JP5453367B2 (ja) 2003-12-11 2011-10-14 各暗号化ラウンドのコア暗号化関数を隠蔽するために置換を用いたブロック暗号化システム

Publications (2)

Publication Number Publication Date
JP2007514193A true JP2007514193A (ja) 2007-05-31
JP4884976B2 JP4884976B2 (ja) 2012-02-29

Family

ID=34684571

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006543679A Expired - Fee Related JP4884976B2 (ja) 2003-12-11 2004-11-30 各暗号化ラウンドのコア暗号化関数を隠蔽するために置換を用いたブロック暗号化システム
JP2011227010A Expired - Fee Related JP5453367B2 (ja) 2003-12-11 2011-10-14 各暗号化ラウンドのコア暗号化関数を隠蔽するために置換を用いたブロック暗号化システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011227010A Expired - Fee Related JP5453367B2 (ja) 2003-12-11 2011-10-14 各暗号化ラウンドのコア暗号化関数を隠蔽するために置換を用いたブロック暗号化システム

Country Status (10)

Country Link
US (1) US8023651B2 (ja)
EP (1) EP1712032B1 (ja)
JP (2) JP4884976B2 (ja)
KR (1) KR101079565B1 (ja)
CN (1) CN1890914B (ja)
AT (1) ATE509442T1 (ja)
BR (1) BRPI0417450A (ja)
MX (1) MXPA06006464A (ja)
RU (1) RU2370897C2 (ja)
WO (1) WO2005060147A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009529819A (ja) * 2006-03-10 2009-08-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システムの完全性
JP5861018B1 (ja) * 2012-12-21 2016-02-16 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. テーブルネットワークによって構成されたコンピューティングデバイス

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1890914B (zh) 2003-12-11 2011-07-27 耶德托公司 块加密系统、利用置换隐藏各加密轮的核心加密函数
KR20060107282A (ko) * 2005-04-07 2006-10-13 엘지전자 주식회사 데이터 재생방법, 데이터 기록재생 플레이어 및 데이터전송방법
JP2007298847A (ja) * 2006-05-02 2007-11-15 Kddi Corp プログラム内データの保護装置、保護方法およびプログラム
WO2008007305A2 (en) * 2006-07-12 2008-01-17 Koninklijke Philips Electronics N.V. Method and system for obfuscating a gryptographic function
EP2153365A1 (en) * 2007-05-22 2010-02-17 Koninklijke Philips Electronics N.V. Data security
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
EP2393292A1 (en) * 2010-06-01 2011-12-07 Nagravision S.A. A method and apparatus for decrypting encrypted content
EP2405650A1 (en) * 2010-07-09 2012-01-11 Nagravision S.A. A method for secure transfer of messages
US9111072B1 (en) 2011-08-23 2015-08-18 Tectonic Labs, LLC Anti-reverse engineering unified process
CN103595539B (zh) * 2013-11-26 2016-08-24 南开大学 保留格式的数值型个人识别信息的加密方法
US10075290B2 (en) * 2013-12-20 2018-09-11 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
JP6890589B2 (ja) * 2015-12-15 2021-06-18 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 計算デバイス及び方法
CN107517206A (zh) * 2017-08-18 2017-12-26 北京北信源软件股份有限公司 一种安全通信的方法、装置、可读介质和存储控制器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816385A (ja) * 1994-04-28 1996-01-19 Nippon Telegr & Teleph Corp <Ntt> ソフトウェア解析保護方法
JP2001067270A (ja) * 1999-08-27 2001-03-16 Nippon Telegr & Teleph Corp <Ntt> コンテンツ共有管理システムおよびコンテンツ保護方法およびこの方法を記録した記録媒体
JP2002514333A (ja) * 1997-06-09 2002-05-14 インタートラスト テクノロジーズ コーポレイション ソフトウェアセキュリティを増強するための混乱化技術
WO2002046890A2 (en) * 2000-12-08 2002-06-13 Cloakware Corporation System and method for protecting computer software from a white box attack

Family Cites Families (7)

* 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
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
US6377687B1 (en) * 1997-07-29 2002-04-23 Lucent Technologies Inc. Methods and apparatus for enhanced CMEA employing enhanced transformations
EP1062755A2 (en) * 1997-08-08 2000-12-27 Jonathan Stiebel New operation for key insertion with folding
CN1890914B (zh) 2003-12-11 2011-07-27 耶德托公司 块加密系统、利用置换隐藏各加密轮的核心加密函数

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816385A (ja) * 1994-04-28 1996-01-19 Nippon Telegr & Teleph Corp <Ntt> ソフトウェア解析保護方法
JP2002514333A (ja) * 1997-06-09 2002-05-14 インタートラスト テクノロジーズ コーポレイション ソフトウェアセキュリティを増強するための混乱化技術
JP2001067270A (ja) * 1999-08-27 2001-03-16 Nippon Telegr & Teleph Corp <Ntt> コンテンツ共有管理システムおよびコンテンツ保護方法およびこの方法を記録した記録媒体
WO2002046890A2 (en) * 2000-12-08 2002-06-13 Cloakware Corporation System and method for protecting computer software from a white box attack

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009529819A (ja) * 2006-03-10 2009-08-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システムの完全性
JP5861018B1 (ja) * 2012-12-21 2016-02-16 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. テーブルネットワークによって構成されたコンピューティングデバイス
JP2016507940A (ja) * 2012-12-21 2016-03-10 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. テーブルネットワークによって構成されたコンピューティングデバイス

Also Published As

Publication number Publication date
CN1890914A (zh) 2007-01-03
US20080285744A1 (en) 2008-11-20
US8023651B2 (en) 2011-09-20
EP1712032A1 (en) 2006-10-18
BRPI0417450A (pt) 2007-04-10
MXPA06006464A (es) 2006-08-23
EP1712032B1 (en) 2011-05-11
KR101079565B1 (ko) 2011-11-04
JP4884976B2 (ja) 2012-02-29
WO2005060147A1 (en) 2005-06-30
ATE509442T1 (de) 2011-05-15
KR20060123298A (ko) 2006-12-01
CN1890914B (zh) 2011-07-27
JP2012037904A (ja) 2012-02-23
RU2006120479A (ru) 2007-12-27
JP5453367B2 (ja) 2014-03-26
RU2370897C2 (ru) 2009-10-20

Similar Documents

Publication Publication Date Title
JP5453367B2 (ja) 各暗号化ラウンドのコア暗号化関数を隠蔽するために置換を用いたブロック暗号化システム
JP5688528B2 (ja) 入力に依存する符号化を用いたホワイトボックス暗号システム
JP5026275B2 (ja) 暗号化関数を難読化するための方法及びシステム
JP5646612B2 (ja) 中間データ変更を使用する構成可能な鍵を用いるホワイトボックス暗号システム
JP5599728B2 (ja) ホワイトボックス実装
JP5249053B2 (ja) データ処理システムの完全性
JP5355554B2 (ja) 暗号用鍵データの更新
EP2044724B1 (en) Tamper resistance of a digital data processing unit
JP2010515945A (ja) 実装のコピーの追跡
KR20100031106A (ko) 데이터 보안

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071129

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101116

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110216

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110516

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111014

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20111019

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111108

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111207

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees