説明

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

【課題】ディジタル信号処理関数fを不明瞭化された形態で実行装置に供給する。
【解決手段】システム600は、サーバ610と実行装置620とを具備する。関数fは、ディジタル信号入力xを処理してディジタル信号出力を出力するための、複数の信号処理関数f(1≦i≦N)を含んだ関数縦続を含む。サーバ610は、2N個の反転可能な置換p(1≦i≦2N)のセットを選択し、N個の関数gのセットを算出し、N−1個の関数hのセットを算出するためのプロセッサ612と、実行装置関数縦続を実行装置に供給する手段614と、関数g乃至gを実行装置に供給する手段616とを具備する。実行装置620は、サーバ610から関数g乃至gを取得する手段626と、実行装置関数縦続をロードし、ロードされた実行装置関数縦続を関数g乃至gに適用するためのプロセッサ622とを具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュアであり及び/又はパーソナライズされた方法で、縦続された信号処理関数を実行装置に供給する方法に関する。本発明はまた、セキュアであり及び/又はパーソナライズされた方法で、縦続された信号処理関数を実行装置に供給するシステムに関する。本発明は更に、セキュアであり及び/又はパーソナライズされた方法で供給された縦続接続された信号処理関数を実行する実行装置に関する。
【背景技術】
【0002】
インターネットは、ディジタルコンテンツへの便利でユビキタス的なアクセスをユーザに提供する。強力な配布チャネルとしてのインターネットの可能性のため、多くの消費者向け電子機器が、インターネットへの最も有力な入口である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から復号化鍵/ライセンスを受信しても良い。
【0003】
暗号化に依存するディジタル権利管理の最大の脆弱性は、鍵の配布及び処理である。再生のために、ソフトウェアプレイヤは、ライセンスデータベースから復号化鍵を取得する必要があり、次いで当該復号化鍵を、暗号化されたコンテンツの復号化のためにメモリのどこかに保存する必要がある。このことは、ソフトウェアプレイヤにおける鍵の処理の攻撃のために、攻撃者に2つの選択肢を残す。第1に、ライセンスデータベースのアクセス関数のリバースエンジニアリングが、全てのライセンスデータベースからアセット鍵(asset key)を取得することが可能なブラックボックスソフトウェアに帰着する(即ち、攻撃者がソフトウェア関数の内部の動作を理解する必要がない)ことである。第2に、コンテンツの復号化の間に利用されるメモリへのアクセスの監視によって、アセット鍵を取得することが可能であることである。
一般に、ディジタル権利管理システムは、ラウンド(round)と呼ばれる暗号化/復号化ステップのシーケンスを利用して、ブロック毎にデータストリームを処理するブロック暗号に基づく暗号化手法を利用する。i−1番目のラウンドの出力が、i番目のラウンドの入力である。従って、Nラウンドのシステムについては、アルゴリズムは関数の縦続(cascade)
【数1】

として記述されることができる。ここで、関数fは、ラウンドiの関数を表す。殆どのブロックアルゴリズムは、Feistelネットワークである。斯かるネットワークにおいては、偶数長nの入力データブロックxは、長さn/2の2つの半分(通常L及びRと呼ばれる)に分割される。1番目のラウンドに供給される入力xはx=<L,R>と与えられる。i番目のラウンド(i>0)は、関数fを実行する。ここでfは、
【数2】

と定義される。Kはi番目のラウンドにおいて利用される副鍵(subkey)であり、Fは任意のラウンド関数(round function)である。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平8−16385号公報
【特許文献2】国際公開第02/46890号
【特許文献3】特表2002−514333号公報
【特許文献4】特開2001−67270号公報
【非特許文献】
【0005】
【非特許文献1】松岡賢他,鍵内蔵型暗号ソフトウェアの技術者による耐タンパー性評価法の事例紹介,電子情報通信学会技術研究報告,2001年9月10日,Vol. 101 No. 311,p. 45-52
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の目的は、Feistelネットワークのような縦続された信号処理関数のより優れた保護を提供することにある。
【課題を解決するための手段】
【0007】
本目的を達成するため、ディジタル信号処理関数fを不明瞭化された形態で実行装置に供給する方法であって、前記関数fは、ディジタル信号入力xを処理してディジタル信号出力を出力するための、複数の信号処理関数f(1≦i≦N)を含む関数縦続(例えば
【数3】

)を含む前記方法は、
2N個の反転可能な置換p(1≦i≦2N)のセットを選択するステップと、
N個の関数gのセットを算出するステップと、を含み、ここで関数gは、1≦i≦Nについて
【数4】

と関数的に同等であり、前記方法は更に、
N−1個の関数hのセットを算出するステップを含み、ここで関数hは、2≦i≦Nについて
【数5】

と関数的に同等であり、前記方法は更に、
【数6】

を含む実行装置関数縦続を前記実行装置に備えるステップを含み、ここでy乃至yは関数パラメータであり(例えば
【数7】

)、前記方法は更に、
関数g乃至gを前記実行装置に供給するステップと、
前記実行装置において、前記実行装置関数縦続を関数g乃至gに適用する(例えばED(g,・・・,g))ステップと、
を含む。
本発明によれば、構成(constituent)関数fは、gとしてカプセル化された形態で提供される。ここでgは、1≦i≦Nについて、
【数8】

に関数的に同等である。カプセル化のために利用される関数pもまた、2≦i≦Nについて、
【数9】

の乗算されたバージョンであるhの形態で供給されることにより隠蔽される。インターリーブされた態様で実行装置において関数g及びhを実行する(例えば図4に示されるように)ことにより、fを直接に認識可能とすることなく、関数の縦続の機能が達成される。とりわけ、fがFeistel暗号のラウンド関数を表す場合には、該ラウンド関数に埋め込まれたラウンド鍵は直接には認識されない。fの不明瞭にされた配信がセキュリティを増大させる。実行関数装置縦続が、メディアプレイヤのコア機能を形成し得る。ここで、セットg、・・・、gが、該プレイヤがfからfまで(fを含む)を含む関数縦続を実行することを可能とする。
従属請求項2及び3は、関数縦続の(関数的な)開始を保護する2つのそれぞれの代替例を示す。請求項2の例においては、実行装置関数縦続はp−1から開始し、例えば
【数10】

である。これをg、・・・、gに適用することにより、前記装置において実行される関数シーケンスの関数的な開始として
【数11】

となり、このようにして前記実行装置はfを明示的に実行する。請求項3の例においては、p−1を隠蔽することを支援する開始関数fを用いて関数縦続を拡張することにより、セキュリティが増大させられる。該関数縦続は例えば、
【数12】

であっても良い。前記実行装置関数縦続は関数Sから開始し、例えば
【数13】

である。ここでS
【数14】

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

)を含み、前記関数fの実行は、
【数16】

を含む実行装置関数縦続をロードし、
関数g乃至gのセットをロードし、
前記関数g乃至gのセットに前記実行装置関数縦続を適用することにより実行され、ここでy乃至yは関数パラメータであり、
は、1≦i≦Nについて
【数17】

と関数的に同値であり、
は、2≦i≦Nについて
【数18】

と関数的に同値であり、
は、1≦i≦2Nについて反転可能な置換であるコンピュータプログラムが提供される。
本発明の目的を達成するため、ディジタル信号処理関数fを、不明瞭化された匿名の形態で、それぞれが一意的なインデクスjによって識別される複数の実行装置に供給する方法であって、前記関数fは、ディジタル信号入力xを処理してディジタル信号出力を出力するための、複数の信号処理関数f(1≦i≦N)を含む関数縦続(例えば
【数19】

)を含む前記方法は、
2N個の反転可能な置換p(1≦i≦2N)のセットを選択するステップと、
N個の関数gのセットを算出するステップと、を含み、ここで関数gは、1≦i≦Nについて
【数20】

と関数的に同等であり、前記方法は更に、
各装置jについて、前記装置及び/又は前記装置のユーザについて一意的な2N個の反転可能な置換pj,iの対応するセット及び/又はシーケンスを選択するステップと、
各実行装置jについて、N−1個の関数hj,iの対応するセットを算出するステップと、を含み、ここでhj,iは、2≦i≦Nについて
【数21】

と関数的に同等であり、前記方法は更に、
各前記実行装置jに
【数22】

を含むそれぞれの実行装置関数縦続ED(y,・・・,y)を備えるステップと、
各前記実行装置jにそれぞれのローダ関数
【数23】

を備えるステップと、
を含み、ここでlj,i
【数24】

に関数的に同等であり、rj,i
【数25】

に関数的に同等であり、前記方法は更に、
前記実行装置に関数g乃至gを供給するステップと、
前記実行装置において、ED(loader(g,・・・,g))を実行するステップと、
を含む。
【0012】
関数fは、請求項1に記載のものと同様に、関数g、・・・、gの形態で不明瞭にされる。関数g、・・・、gは各装置に対して同一であり、1つのデフォルト/匿名の装置に対応するように見える。実行装置は装置に特有の(「パーソナライズ」された)実行装置縦続を備える。装置に特有のローダ(loader)関数が、それぞれの匿名の関数gを、実行装置縦続に送られる対応する装置に特有の関数へと変換するために利用される。前記ローダ関数は、公然にされていない置換pj,iのセット/シーケンスに基づく変換関数lj,i及びrj,iを利用する。
【0013】
別の態様の方法によれば、関数gは、例えば放送又はCD−ROM若しくはDVDのような記憶媒体を利用して、全ての装置に同一の方法で供給されることができる。
【0014】
本発明のこれらの及び他の態様は、以下に説明される実施例を参照しながら説明され明らかとなるであろう。
【図面の簡単な説明】
【0015】
【図1】先行技術のプラグインベースのデコードのブロック図を示す。
【図2】先行技術ベースの復号化のブロック図を示す。
【図3】先行技術の一体化された復号化/デコードシステムのブロック図を示す。
【図4】本発明による不明瞭化を示す。
【図5】不明瞭化の単純な例を示す。
【図6】本発明によるシステムのブロック図を示す。
【図7】本発明によるシステムの更なる実施例を示す。
【図8】本発明による匿名の不明瞭化を示す。
【図9】匿名の不明瞭化のための代替実施例を示す。
【発明を実施するための形態】
【0016】
図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)を含む関数縦続を含む。例えば、前記関数縦続のコアは、
【数26】

によって形成されても良い。ここで慣例的な数学的表記:
【数27】

が利用されていることに留意されたい。原則的に、前記関数縦続はいずれのディジタル信号処理関数であっても良い。好適な実施例においては、前記関数縦続は暗号を含む。例えば、関数fはFeistel暗号のi番目のラウンド(i>0)を表しても良い。斯かる場合においては、fは、
【数28】

と定義される。ここでKはi番目のラウンドにおいて利用される副鍵であり、Fは任意のラウンド関数である。
本発明によれば、2N個の反転可能な置換p(1≦i≦2N)が選択される。次いで、N個の関数gのセットが算出される。ここでgは、1≦i≦Nについて
【数29】

に関数的に同等である。ここで関数的に同等であるとは、全てのとり得る入力の値について、gが同じ入力(例えばx)に適用された場合に、
【数30】

が当該入力に適用された場合と等しい結果が得られることを意味する。合成関数p2i−1、f及びp2i−1は、個別には認識できない。gは、
【数31】

のブラックボックス機能を提供する。図5は、当該アプローチを非常に単純な1次元関数について説明する。本例においては、
【数32】

である。従って、
【数33】

である。コンピュータのコンパイラ構築の分野においては、
【数34】

のブラックボックス機能が所謂部分評価(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について
【数35】

と関数的に同等である。図5の単純な例を利用すると、
【数36】

である。これらの定義を利用すると、fを隠蔽する前記実行装置の縦続の部分は、
【数37】

となる。これは実際に
【数38】

と関数的に同等であることが分かる。かくして、当該縦続を実行した実行装置は、fの明示的な知識を持つことなくfを実行したことになる。
【0017】
別の例においては、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の関数が与えられると、
【数39】

は以下のように与えられる:
:{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にマッピングする。従って、
【数40】

である。同様に、
【数41】

は、
:{0−>8、1−>5、2−>7、3−>6、4−>3、5−>4、6−>1、7−>0、8−>2}
によって与えられ、
【数42】

は、
:{0−>4、1−>3、2−>5、3−>6、4−>1、5−>7、6−>2、7−>0、8−>8}
によって与えられる。
前記実行装置は、
【数43】

を含む実行装置関数縦続を備える。ここで、y、・・・、yは関数パラメータである。このことは図4において、関数h、hN−1、・・・、hのシーケンス410として示される。実行装置関数縦続の例は、
【数44】

である。更に、関数g、・・・、gが前記実行装置に供給される。このことは図4において、関数g、gN−1、・・・、gのシーケンス420として示される。前記実行装置において、前記実行装置関数縦続が関数g、・・・、gに適用される。このことは例えば、前記実行装置における全体の信号処理関数ED(g,・・・,g)を与える。該関数は次いでディジタル信号入力xに適用される。
【数45】

のような連鎖の中央部分を見ると、該部分は
【数46】

を与える。該式の最初の項及び最後の項は、それぞれのg項によって除去される。全体の結果として、前記実行装置は、いずれの関数fへのアクセスをも持つことなく、関数縦続
【数47】

を含む関数を実行する。これらの関数はかくして不明瞭化される。
好適な実施例においては、前記連鎖の先頭及び末尾の処理について選択肢が与えられる。いずれの更なる手段をも用いずに、前記実行装置における結果の全体の信号処理関数が、
【数48】

となり得る。例えば、項p
【数49】

を含む実行装置関数縦続を利用することにより除去され得る。例えば、
【数50】

である。好ましくは、項p−1は前記実行装置においてセキュアに維持される。このことを実行する好適な方法は、更なる信号処理関数fを用いて関数縦続を拡張することである(例えば
【数51】

)。このとき前記実行装置関数縦続は
【数52】

を含む(例えば
【数53】

)。ここでSは、
【数54】

に関数的に同等である。このようにして、個々の項p−1及びfは明らかにされる必要がなく、乗算された形式
【数55】

のみが存在する。好ましくは、fはグローバルに秘密である。即ち、fを知っている必要があるものには知られているが、それ以上は配布されない。グローバルな秘密はそれ自体知られており、グローバルな秘密をセキュアな方法で通信する方法もまた知られているが、ここではこれ以上議論されない。
対応する方法で、項p2N−1−1を処理するための方法がとられても良い。例えば、前記実行装置関数縦続は、
【数56】

を含んでも良い(例えば
【数57】

)。p2Nのより優れた保護のため、前記関数縦続は更なる信号処理関数fN+1で終了しても良い(例えば
【数58】

)。このとき前記実行装置関数縦続は
【数59】

を含む(例えば
【数60】

)。ここでSは、
【数61】

と関数的に同等である。
【0018】
図6は、本発明が利用され得るシステムを示す。システム600は、サーバ610と、少なくとも1つの実行装置620とを有する。前記サーバは、例えばウェブサーバのようなサーバとして利用されるプラットフォーム又はファイルサーバのような、従来のコンピュータプラットフォーム上に実装されても良い。前記サーバは、プロセッサ612を含む。プロセッサ612は、プログラムの制御下で動作する。前記プログラムは、埋め込まれたROMのように埋め込まれた記憶装置において前記プロセッサに常設的に埋め込まれても良いが、ハードディスク(図示されていない)のようなバックグラウンドの記憶装置からロードされても良い。前記プログラムの制御の下、プロセッサ612は以下を実行する:
・2N個の反転可能な置換p(1≦i≦2N)のセットを選択する。
・N個の関数gのセットを算出する。ここでgは、1≦i≦Nについて
【数62】

と関数的に同等である。
・N−1個の関数hのセットを算出する。ここでhは、2≦i≦Nについて
【数63】

と関数的に同等である。
前記置換は、(好ましくはセキュアな)記憶装置(図示されていない)に保存されていても良い、置換の非常に大きなセットから(例えばランダム的に又は疑似ランダム的に)選択されても良い。前記サーバは、前記置換を生成するために適切なプログラムも利用しても良い。反転可能な置換を生成する方法は良く知られており、ここではこれ以上説明されない。
加えて、前記サーバは、
【数64】

を含む実行装置関数縦続を前記実行装置に供給するための手段614を含む。ここでy、・・・、yは関数パラメータである。これらのサーバは、このことをいずれの適切な形態で実行しても良い。例えば工場では、項hは、実行装置620の製造の間、前記実行装置の記憶モジュールに保存されても良い。図6は、前記項が、インターネット630によって直接に実行装置620にダウンロードされることを示す。サーバ610はまた、関数g、・・・、gを実行装置620に供給するための手段616を含む。関数gは、それぞれ関数fを組み込む。関数fは、ディジタル信号入力x用に特に選択される。例えば、各ビデオタイトルが、対応する暗号化関数を用いて暗号化される(例えば同一の暗号化だがコンテンツ特有の鍵を利用して)。この目的のため、サーバ610はまた、コンテンツ640を暗号化するようにプロセッサ612を制御するためのソフトウェアを含んでも良く、また、例えば記憶媒体による又はインターネットのような通信媒体を通した配布のために、配布媒体に暗号化されたコンテンツ642を供給しても良い。
【0019】
実行装置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を利用して該コンテンツを復号化しても良い。前記プロセッサは、前記復号化されたコンテンツをデコードしても良い。
【0020】
図7は、実行装置関数縦続が、プロセッサ622による実行のためのソフトウェアプログラム710に埋め込まれて実行装置620に供給される、好適な実施例を示す。図7における同一の番号は、図6において利用されたものと同一のアイテムを示す。ソフトウェアプログラム710は、メディアプレイヤのようなプログラム用のプラグインであっても良い。従って図7の手段614は、該プラグイン710を、インターネットを介して供給しても良く(例えば図7のアイテム630)、又は製造の間に実行装置620に直接埋め込んでも良い。
【0021】
実施例においては、関数g、・・・、gが、プログラム710用のプラグインの形で実行装置620に供給される。プログラム710が既にプラグインである場合には、関数g、・・・、gは事実上プラグイン用のプラグインである。代替としては、関数g、・・・、gは、前記実行装置関数縦続を関数パラメータg、・・・、gに適用することにより、関数g、・・・、gをソフトウェアプログラム710に埋め込むことにより、実行装置620に供給される。このようにして、プログラム710は、関数hとgとの両方を埋め込む。
【0022】
実施例においては、各実行装置及び/又は該実行装置のユーザは一意的であり、一意的な識別子(例えば一意的な番号j)によって識別される。本発明によるシステム及び方法においては、シーケンスg及びhは、包含されるユーザ/団体(party)に対して一意的であることが保証される。このことは、実行装置及び/又は実行装置のユーザの一意的な識別子jを得ることによって、及びそれぞれ得られた識別子に対して一意的な2N個の反転可能な置換pのセットによって、実現されることができる。同様に、置換の同一のセットを利用して、置換の一意的なシーケンスが選択され得る。両方の手法が(置換の異なるセット又は置換の異なるシーケンスを選択する)組み合わせられても良い。好ましくは、各一意的な識別子について一意的なセット/シーケンスを、サーバが(セキュアな方法で)保存する。このようにして、パーソナルコンピュータ中の各ソフトウェアメディアプレイヤが、メディアタイトルを復号化及び/又はデコードするための一意的なプラグインを供給されることができる。媒体自体は一意的である必要はない。暗号化されたコンテンツは、単に暗号化関数に依存し、置換の一意的なセット/シーケンスには依存しない。前記ソフトウェアが前記識別子に対応するか否かを定期的に(例えばメディアプレイヤの起動時に)チェックし、一致が確認された場合にのみ前記ソフトウェアを実行することにより、プレイヤソフトウェアが、該プレイヤソフトウェアが属さないPC上で実行されないことが保証される。偶然にハッカーが装置特有の置換を得たとしても、該置換は包含されるPCにおいてのみ利用されることができ、異なる暗号化(異なる関数fに帰着する)を用いて保護されたコンテンツには利用可能であるが、異なるプラットフォームにおいては利用されることができない。
以上では、信号処理関数の縦続が不明瞭な態様で実行装置に供給される方法及びシステムが説明された。各装置について、置換の同一のセット/シーケンスが利用されても良いし、又は装置特有のセット/シーケンスが利用されても良い。以下では、各装置について同一である不明瞭化された態様で信号関数縦続(「鍵」)を配布し、共通鍵(common key)を装置特有の鍵に変換する変換ルーチン(「ローダ」)を利用することにより、装置特有のセット/シーケンスを実現するための好適なアプローチが説明される。「共通鍵」は上述したものと略同じ方法で生成される。前記共通鍵は基本的にリファレンスプレイヤ又は匿名プレイヤを「アンロック(unlock)」するが、しかしながらこれらのプレイヤは、本実施例においては、いずれの実際の実行装置によっても実行されない。上述のものと同様に、本方法は2N個の反転可能な置換pのセット(1≦i≦2N)を選択するステップと、N個の関数gを算出するステップとを有する。ここでgは、1≦i≦2Nについて
【数65】

と関数的に同等である。本方法は加えて、それぞれが一意的なインデクスjによって識別される各実行装置について、該装置及び/又は該装置のユーザについて一意的な対応する2N個の反転可能な置換pj,iのセット及び/又はシーケンスを選択するステップを有する。該セットは、一意的な「プレイヤ」を各装置に備えるために利用される。該一意的なプレイヤは、各実行装置jについてN−1個の関数hj,iの対応するセットを算出し、各実行装置jに
【数66】

を含むそれぞれの実行装置関数縦続ED(y,・・・,y)を備えることにより形成される。ここでhj,iは、2≦i≦Nについて
【数67】

に関数的に同等である。しかしながら、該装置特有のセットhは、セットhを利用するリファレンスプレイヤを「アンロック」することができる不明瞭化された関数縦続とは一致しない。該後者のセット/プレイヤのセットは、いずれの実行装置にも利用可能とはされない。その代わりに、実行装置jがそれぞれのローダ関数
【数68】

を備える。ここでlj,i
【数69】

と関数的に同等であり、rj,i
【数70】

と関数的に同等である。上述のものと同様に、各実行装置は同一の関数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番目の要素は
【数71】

である。上述の定義を用いると、このことは
【数72】

を与え、該式は
【数73】

と書き換えられる。このことは、装置特有のセットhj,iが置換を除去する、装置特有の置換セット/シーケンスを利用する場合と同様である。
【0023】
匿名の不明瞭化された鍵及び装置特有のローダを利用する着想はまた、図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つの相互にロックするプレイヤとしても説明され得る。
【0024】
匿名プレイヤ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変換器である。ここで、
【数74】

及び
【数75】

である。これらの条件が満たされる場合、関数fは最適に隠蔽される。実際には、多くの斯かるFeistel変換器が存在し、装置に特有な置換の選択のための十分な余地を与える。Feistel変換器の定義は、上述の定義を用いて、定義:swap(<x,y>)=swap(<y,x>)及び
【数76】

を用いると、Feistelラウンド
【数77】


【数78】

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

【特許請求の範囲】
【請求項1】
ディジタル信号処理関数fを不明瞭化された形態で実行装置に供給する方法であって、前記関数fは、ディジタル信号入力xを処理してディジタル信号出力を出力するための、複数の信号処理関数f(1≦i≦N)を含む関数縦続を含み、前記方法は、
2N個の反転可能な置換p(1≦i≦2N)のセットを選択するステップと、
N個の関数gのセットを算出するステップと、を含み、ここで関数gは、1≦i≦Nについて
【数1】

と関数的に同等であり、前記方法は更に、
N−1個の関数hのセットを算出するステップを含み、ここで関数hは、2≦i≦Nについて
【数2】

と関数的に同等であり、前記方法は更に、
【数3】

を含む実行装置関数縦続を前記実行装置に備えるステップを含み、ここでy乃至yは関数パラメータであり、前記方法は更に、
関数g乃至gを前記実行装置に供給するステップと、
前記実行装置において、前記実行装置関数縦続を関数g乃至gに適用するステップと、
を含み、
インターリーブされた態様で実行装置において関数g及びhを実行することにより、関数fを直接に認識可能とすることなく、関数の縦続の機能が達成される方法。
【請求項2】
前記実行装置関数縦続が
【数4】

を含む請求項1に記載のディジタル信号処理関数fを供給する方法。
【請求項3】
前記関数縦続が、更なる信号処理関数fで開始し、前記実行装置関数縦続が
【数5】

を含み、ここでS
【数6】

に関数的に同等である、請求項1に記載のディジタル信号処理関数fを供給する方法。
【請求項4】
前記実行装置関数縦続が、
【数7】

を含む請求項1に記載のディジタル信号処理関数fを供給する方法。
【請求項5】
前記関数縦続が、更なる信号処理関数fN+1で終了し、前記実行装置関数縦続が
【数8】

を含み、ここでS
【数9】

と関数的に同等である、請求項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)を含む関数縦続を含み、前記関数fの実行は、
【数10】

を含む実行装置関数縦続をロードし、
関数g乃至gのセットをロードし、
前記関数g乃至gのセットに前記実行装置関数縦続を適用することにより実行され、ここでy乃至yは関数パラメータであり、
は、1≦i≦Nについて
【数11】

と関数的に同値であり、
は、2≦i≦Nについて
【数12】

と関数的に同値であり、
は、1≦i≦2Nについて反転可能な置換である、コンピュータプログラム。
【請求項11】
ディジタル信号処理関数fを不明瞭化された形態で実行装置に供給するシステムであって、前記システムは、サーバと実行装置とを含み、前記関数fは、ディジタル信号入力xを処理してディジタル信号出力を出力するための、複数の信号処理関数f(1≦i≦N)を含む関数縦続を含み、
前記サーバは、プログラムの制御下で、
2N個の反転可能な置換p(1≦i≦2N)のセットを選択し、
N個の関数gのセットを算出し、
N−1個の関数hのセットを算出するためのプロセッサを含み、ここで関数gは、1≦i≦Nについて
【数13】

と関数的に同等であり、関数hは、2≦i≦Nについて
【数14】

と関数的に同等であり、前記サーバは更に、
【数15】

を含む実行装置関数縦続を前記実行装置に備える手段を含み、ここでy乃至yは関数パラメータであり、前記サーバは更に、
関数g乃至gを前記実行装置に供給する手段を含み、
前記実行装置は、
前記サーバから前記関数g乃至gを取得する手段と、
プログラムの制御下で、前記実行装置関数縦続をロードし、前記ロードされた実行装置関数縦続を前記関数g乃至gに適用するためのプロセッサと、
を含み、
インターリーブされた態様で実行装置において関数g及びhを実行することにより、関数fを直接に認識可能とすることなく、関数の縦続の機能が達成されるシステム。
【請求項12】
請求項11に記載のシステムにおける使用のための実行装置であって、
前記サーバから前記関数g乃至gを取得する手段と、
プログラムの制御下で、前記実行装置関数縦続を前記関数g乃至gに適用し、前記適用された実行装置関数縦続を前記ディジタル信号入力xに適用するためのプロセッサと、
を含む実行装置。
【請求項13】
前記関数fは、Feistel暗号ネットワークに基づく復号化関数であり、前記信号処理関数fの各々が、それぞれのFeistel復号化ラウンド関数である、請求項1に記載のディジタル信号処理関数fを供給する方法。
【請求項14】
置換pの各々はFeistel変換器であり、連続的な対<x,y>に演算する関数Qは、反転可能な関数Q及びQが存在し且つQ(<x,y>)=<Q(x),Q(y)>である場合には、Feistel変換器であり、ここで、
【数16】

及び
【数17】

である、請求項13に記載のディジタル信号処理関数fを供給する方法。

【図1】
image rotate

【図2】
image rotate

【図6】
image rotate

【図7】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−37904(P2012−37904A)
【公開日】平成24年2月23日(2012.2.23)
【国際特許分類】
【出願番号】特願2011−227010(P2011−227010)
【出願日】平成23年10月14日(2011.10.14)
【分割の表示】特願2006−543679(P2006−543679)の分割
【原出願日】平成16年11月30日(2004.11.30)
【出願人】(598036964)イルデト・コーポレート・ビー・ヴイ (16)
【Fターム(参考)】