(57)【要約】      （修正有）【課題】計算効率の高い、制御語を取得するための改良されたソフトウェア改ざん耐性を有する条件付き資格付与処理技術を提供する。【解決手段】受信装置に備わるスマートカードの第1のメモリは変換関数を安全に記憶しており、変換された制御語とシードを受け取り、シードの制御下で制御語を取得する。さらに受信装置はキャッシュメモリおよび制御モジュールを備える。制御モジュールは、制御語がキャッシュメモリで発見される場合、制御語を変換関数の出力に提供し、変換関数を迂回し計算効率を高めるように構成される。ヘッドエンドシステムと受信装置からなる限定受信システムであって、ヘッドエンドシステムは変換された制御語を含む資格制御メッセージと資格管理メッセージを受信装置に送信する。受信装置は資格制御メッセージに対する資格変換ツリーまたはキャッシュメモリを用いて、安全に制御語を取得することができる。【選択図】図８
2011155642.tif 000002
【特許請求の範囲】
【請求項１】
制御語を安全に取得するための受信装置であって、
変換された制御語(x)およびシード(y)を受け取るように構成され、かつ前記変換された制御語(x)を入力変換空間から出力変換空間に移動させて、前記シード(y)の制御下で数学的な変換を用いて制御語(z)を取得するように構成された変換関数(F)を記憶するように構成された第1のメモリと、
キャッシュメモリと、
キャッシュ制御モジュールと
を備え、前記キャッシュ制御モジュールが、
前記変換された制御語(x)および前記シード(y)を傍受し、
前記変換関数(F)、前記変換された制御語(x)、および前記シード(y)にマッチする前記制御語(z)を求めて前記キャッシュメモリ内を検索し、
前記制御語(z)が、前記キャッシュメモリ内で発見される場合、
前記制御語(z)を前記変換関数(F)の出力に提供して、それにより、前記変換関数(F)を迂回し、かつ
前記制御語(z)が、前記キャッシュメモリ内で発見されない場合、
前記制御語(x)および前記シード(y)を前記変換関数(F)に提供し、
前記制御語(z)を前記変換関数(F)から取得し、
前記制御語(z)を、前記変換関数(F)、前記変換された制御語(x)、および前記シード(y)と関連付けて前記キャッシュメモリに記憶する
ように構成される、受信装置。
【請求項２】
前記第1のメモリが、一連の変換関数、および/または変換関数のツリーを形成する2つ以上の変換関数(F,G)を記憶するように構成され、前記キャッシュ制御モジュールが、前記キャッシュメモリを1つまたは複数の前記変換関数(F,G)と通信可能に接続するデータバスにリンクされる、請求項1に記載の受信装置。
【請求項３】
前記一連の変換関数および/または変換関数のツリーにおける最後の変換関数が、平文の制御語、または暗号化された制御語として、前記制御語を生成するように構成される、請求項2に記載の受信装置。
【請求項４】
前記第1のメモリを備える安全な計算環境を備え、そして前記キャッシュメモリを備える汎用の計算環境をさらに備える、請求項1から請求項3のいずれか一項に記載の受信装置。
【請求項５】
前記汎用の計算環境が、前記キャッシュ制御モジュールを備えており、前記データバスが、前記キャッシュ制御モジュールを、前記1つまたは複数の変換関数(F,G)の入力および出力に通信可能に接続する、請求項4に記載の受信装置。
【請求項６】
前記1つまたは複数の変換関数のそれぞれが、キャッシュ制御モジュールを備えており、前記データバスが、各キャッシュ制御モジュールを、前記キャッシュメモリに通信可能に接続する、請求項4に記載の受信装置。
【請求項７】
前記受信装置に着脱可能に接続されることが可能なスマートカードをさらに備え、前記スマートカードが、前記安全な計算環境を備えている、請求項4から請求項6のいずれか一項に記載の受信装置。
【請求項８】
前記受信装置がネットワークを介して前記スマートカードに通信可能にリンクされる、請求項7に記載の受信装置。
【請求項９】
請求項7または請求項8のいずれか一項に記載の受信装置において使用するためのスマートカードであって、
安全な計算環境内に第1のメモリを備え、前記第1のメモリが、変換された制御語(x)およびシード(y)を受け取るように構成され、かつ前記変換された制御語(x)を入力変換空間から出力変換空間に移動させて、前記シード(y)の制御下で数学的な変換を用いて制御語(z)を取得するように構成された変換関数(F)を記憶するように構成されており、前記変換関数(F)が、
前記変換された制御語(x)および前記シード(y)を傍受し、
前記変換関数(F)、前記変換された制御語(x)、および前記シード(y)にマッチする前記制御語(z)を求めて前記受信装置の前記キャッシュメモリ内を検索し、
前記制御語(z)が、前記キャッシュメモリ内で発見される場合、
前記制御語(z)を前記変換関数(F)の出力に提供して、それにより、前記変換関数(F)を迂回し、かつ
前記制御語(z)が、前記キャッシュメモリ内で発見されない場合、
前記制御語(x)および前記シード(y)を前記変換関数(F)に提供し、
前記制御語(z)を前記変換関数(F)から取得し、
前記制御語(z)を、前記変換関数(F)、前記変換された制御語(x)、および前記シード(y)と関連付けて前記キャッシュメモリに記憶する
ように構成されるキャッシュ制御モジュールを備える、スマートカード。
【請求項１０】
前記第1のメモリが、一連の変換関数、および/または変換関数のツリーを形成する2つ以上の変換関数(F,G)を記憶するように構成され、前記キャッシュ制御モジュールが、前記キャッシュメモリを1つまたは複数の前記変換関数(F,G)と通信可能に接続するデータバスにリンクされる、請求項9に記載のスマートカード。
【請求項１１】
ヘッドエンドシステムと、請求項1から請求項8のいずれか一項に記載の1つまたは複数の受信装置とを備える限定受信システムであって、前記ヘッドエンドシステムが、前記変換された制御語(x)を含む資格制御メッセージ、および1つまたは複数のシード(y)を含む資格管理メッセージを、前記受信装置に送信するように構成される、限定受信システム。
【請求項１２】
変換関数(F)を記憶するように構成された第1のメモリを備える受信装置において制御語を安全に取得するための方法であって、
変換された制御語(x)およびシード(y)を受け取るステップ(101)と、
前記変換された制御語(x)および前記シード(y)をキャッシュ制御モジュールで傍受するステップ(102)と、
前記変換関数(F)、前記変換された制御語(x)、および前記シード(y)にマッチする制御語(z)を求めてキャッシュメモリ内を検索するステップ(103)と、
前記制御語(z)が、前記キャッシュメモリ内で発見される場合(104)、
前記制御語(z)を前記変換関数(F)の出力に提供して、それにより、前記変換関数(F)を迂回するステップ(105)と、
前記制御語(z)が、前記キャッシュメモリ内で発見されない場合(104)、
前記制御語(x)および前記シード(y)を前記変換関数(F)に提供するステップ(106)と、
前記変換された制御語(x)を前記変換関数(F)内で入力変換空間から出力変換空間に移動させて、前記シード(y)の制御下で数学的変換を用いて制御語(z)を取得するステップ(107)と、
前記制御語(z)を、前記変換関数(F)、前記変換された制御語(x)、および前記シード(y)と関連付けて前記キャッシュメモリに記憶するステップ(108)と
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変換関数を用いて、制御語を計算的に効率よく取得するための受信装置、スマートカード、限定受信システム(CAS: Conditional Access System)、および方法に関する。
【背景技術】
【０００２】
デジタルテレビ受信装置において、鍵の保管および資格付与処理ステップを保護するために、ソフトウェア改ざん耐性を利用した有料テレビ放送システムなどの限定受信システムが知られている。
【０００３】
ソフトウェア改ざん耐性技術は、ソフトウェアの符号変換を不明瞭にするために基本原始関数を使用する。基本原始関数の例は、「Apply」、「Remove」、および「Condition」である。図1A、図1B、および図1Cは、それぞれ、apply原始関数A、remove原始関数R、およびcondition原始関数Cのブロック図を示している。apply原始関数は、通常、パラメータシードSに従ってデータ要素Dを変換するために、関数A(D,S)=AS(D)=DTSを使用する。remove原始関数は、通常、シードSに基づいてデータ要素Dの変換を逆に行うために、関数R(DTS,S)=RS(DTS)=Dを使用する。condition原始関数は、通常、関数C(D1,D2)=CD1(D2)=DCSを使用し、出力は、2つの入力の相関になる。
【０００４】
シードSは、複数のデータ要素の混合体から構成することができる。こうすることにより、シードから個々のデータ要素を抽出することが困難になる。パラメータ混合関数は、通常、f(A,B)=<A,B>で示される。関数結果<A,B>は、AとBの合成物(compound)と呼ばれる。本明細書では、これ以降、シードおよび合成物を共に「シード」と呼ぶものとする。
【０００５】
原始関数は、通常、限定受信システム(CAS)に鍵管理関数を実装する場合に組み合わされる。原始関数を組み合わせると、個々の原始関数をもはや識別できなくなる新しい関数が得られる。原始関数の組み合わせの知られた例は、removeおよびapply原始関数と、合成物の安全な相関との組み合わせである。
【０００６】
図1Dは、removeとapply原始関数の組み合わせの例を示す。変換は、組み合わされたremoveおよびapply演算において合成物<P,S>を使用する。関数RPASは、シードPを用いた変換をシードSを用いた変換で置き換えることにより、入力データを変更し、すなわち、DataTPがDataTSに変換される。
【０００７】
図1Eは、合成物の安全な相関の例を示す。それは、通常、条件付き資格付与処理に対して使用され、また基本原始関数apply、remove、およびconditionの組み合わせを含む。条件関数は、図1DのremoveおよびapplyブロックRPASと組み合わされて、合成物の安全な相関を行うことができる。
【０００８】
条件付き資格付与処理、および制御語CWの取得のための方法および受信装置は、参照により本出願に組み込まれている、関連の欧州特許出願第09155007.9号に記載されている。
【０００９】
図2は、EP09155007.9に記載の分割鍵配信の例を示す。図2において、CWは、3つの副鍵CW1、CW2、およびCW3から生成される。副鍵CW1、CW2、およびCW3は、それぞれ、シードP、G、およびUの保護の下に分配される。これに関して、CW1は、変換空間Pにおいて数学的に変換された形で分配され、CW2は、変換空間Gにおいて数学的に変換された形で分配され、またCW3は、変換空間Uにおいて数学的に変換された形で分配される。
【００１０】
図3は、EP09155007.9に記載された受信装置におけるCW処理の例を示す。図3では、CWは副鍵から生成され、メンバーシップ検査が行われる。処理は、2つの基本的な部分に、すなわち、安全な計算環境および汎用の処理環境に分割される。汎用の処理環境および安全な計算環境における関数モジュールは、入力された変換されたCW、例えばCWDTPを、受信装置特有の鍵を用いて暗号化されたCW、例えば{CW}CSSKに変換するための資格変換ツリーを形成する。汎用の処理環境は、ストレージ、データ通信、およびユーザ対話などの外部インターフェースを扱う。安全な計算環境は、鍵および/またはシードの処理を扱う。
【００１１】
ECM配信経路は、ヘッドエンドシステムからECM(entitlement control messages:資格制御メッセージ)を受信するために使用される。ECMは、暗号化された、または変換されたCWを含む。EMM配信経路は、ヘッドエンドシステムからEMM(entitlement management messages:資格管理メッセージ)を受信するために使用される。EMMは、暗号化された、または変換されたCWを、復号または変換するための鍵またはシードを含む。
【００１２】
安全な計算環境におけるソフトウェア改ざん耐性のある原始関数は、傍受された場合に攻撃者には有用ではない入力および出力を有する。変換された制御語CWDTPに対するremove演算は値Pを必要とし、それは合成物<P,G1>で受け取られ、したがって、G1と結合されている。G1は、合成物<G1,U1>で分配され、したがって、U1と結合されている。2つのRemove/Apply演算PPAG1およびRG1AU1の後、得られた変換制御語CWDTU1が、受信装置により処理できる暗号化されたCWを生成するためのTDES暗号化ホワイトボックスモジュールに入力される。得られたCWは、CSSK(chip set session key)などの受信装置特有の鍵を用いて暗号化される。CSSKは、通常、資格メッセージのうちの1つで提供される。CSSK値、U1値、及びU2値は、通常、合成物<CSSK,U1,U2>として、TDES暗号化ホワイトボックスに提供される。
【００１３】
図3の条件付き資格付与処理は、グループメンバーシップ検査を実施するために、安全な相関関数RG2CvectorAU2を使用する。相関計算の結果は、変換空間U2における制御語差分鍵CWDK、すなわち、CWDKCTU2である。CWDKCTU2およびCWDTU1は、TDES暗号化ホワイトボックスにおいてCWの計算に使用される副鍵である。
【００１４】
図2のCW1、CW2、およびCW3、ならびに図3のCWDKCTU2およびCWDTU1などの副鍵は、異なる存続期間を有する可能性がある。例として、CW1は、10秒ごとになど、規則的に変化し、CW2は、日数で測定して散発的に変化し、またCW3は月数で測定して非常にまれに変化する可能性がある。
【００１５】
変換された副鍵からCWを得るための、知られたソフトウェア改ざん耐性のある条件付き資格付与処理技術は、副鍵の異なる存続期間を考慮していない。その結果、CWを得るために、常に、条件付き資格付与処理におけるすべての中間的演算が行われる。各中間的演算の実行は、プロセッササイクルの点から費用がかかる。
【００１６】
ソフトウェア改ざん耐性のある条件付き資格付与処理技術で、特に、処理系の改ざん耐性に悪影響を与えることはないが処理能力が限られている装置において、計算数を低減させることが求められている。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】欧州特許出願第09155007.9号
【発明の概要】
【発明が解決しようとする課題】
【００１８】
本発明の一目的は、計算効率の高い、CWを取得するための改良されたソフトウェア改ざん耐性を有する条件付き資格付与処理技術を提供することである。
【課題を解決するための手段】
【００１９】
本発明の一態様によれば、制御語を安全に取得するための受信装置が提案される。受信装置は、変換関数を記憶するように構成された第1のメモリを備える。変換関数は、変換された制御語およびシードを受け取るように構成され、かつ変換された制御語を、入力変換空間から出力変換空間に移動するように構成される。これにより、変換関数は、シードの制御下で、数学的な変換を用いて制御語を取得する。受信装置は、キャッシュメモリおよびキャッシュ制御モジュールをさらに備える。キャッシュ制御モジュールは、変換された制御語およびシードを傍受するように構成される。キャッシュ制御モジュールは、変換関数、変換された制御語(x)、およびシード(y)にマッチする制御語を求めてキャッシュメモリ内を検索するようにさらに構成される。キャッシュ制御モジュールは、制御語がキャッシュメモリ内で発見される場合、制御語を変換関数の出力に提供し、それにより、変換関数を迂回するようにさらに構成される。キャッシュ制御モジュールは、制御語がキャッシュメモリ内で発見されない場合、制御語およびシードを変換関数に提供し、制御語を変換関数から取得し、かつ制御語を、変換関数、変換された制御語(x)、およびシード(y)と関連付けて、キャッシュメモリに記憶するようにさらに構成される。
【００２０】
本発明の一態様によれば、受信装置で安全に制御語を取得するための方法が提案される。受信装置は、変換関数を記憶するように構成された第1のメモリを備える。方法は、変換された制御語およびシードを受け取るステップを含む。方法は、キャッシュ制御モジュールで、変換された制御語およびシードを傍受するステップをさらに含む。方法は、変換関数、変換された制御語、およびシードにマッチする制御語を求めて、キャッシュメモリ内を検索するステップをさらに含む。方法は、制御語がキャッシュメモリ内で発見される場合、制御語を変換関数の出力に提供し、それにより、変換関数を迂回するステップをさらに含む。方法は、制御語がキャッシュメモリ内で発見されない場合、制御語およびシードを変換関数に提供するステップと、変換された制御語を変換関数内で入力変換空間から出力変換空間に移動させて、シードの制御下で数学的な変換を用いて制御語を取得するステップと、制御語を、変換関数、変換された制御語、およびシードと関連付けてキャッシュメモリに記憶するステップとをさらに含む。
【００２１】
したがって、出力変換空間における制御語は、予想される結果が、変換関数に対する入力に基づいて、キャッシュメモリ内で入手可能である場合、変換関数により計算されない。これにより、制御語を取得するための計算効率が高くなる。
【００２２】
出力変換空間は、平文の変換空間とすることができ、平文の制御語が得られる。得られた平文の制御語は、取得された後に暗号化され得る。出力変換空間は、制御語を平文の変換空間で取得するために制御語の変換をさらに必要とする、任意の他の変換空間であり得る。
【００２３】
請求項2および10の実施形態は、有利に、一連の変換関数における後続する変換を可能にし、かつ/または変換された副鍵を、変換関数のツリーに結合し、その場合、中間的な結果は、計算を効率化するためにキャッシュされる。
【００２４】
請求項3の実施形態は、有利に、計算の最終結果、すなわち、平文の制御語または暗号化された制御語が、コンテンツのスクランブルを解除するために、受信装置で使用されることを可能にする。
【００２５】
請求項4の実施形態は、有利に、変換関数のコンピュータ符号および機能的挙動を難読化し、数学的な変換中に制御語に関する情報を取得するのをさらに困難にすることを可能にする。有利に、キャッシュされた中間的な結果が、従来の難読化されていないメモリに記憶され得ると共に、キャッシュメモリの実装を容易にし、かつ安価にすることができる。
【００２６】
請求項5の実施形態は、有利に、汎用の計算環境内において単一のキャッシュ制御モジュールだけを用いたキャッシング機能を使用可能にする。
【００２７】
請求項6の実施形態は、有利に、安全な計算環境内においてキャッシュ制御機能が実施されることを可能にし、キャッシングのキャッシュメモリ部分だけを汎用の計算環境内に残すようにする。こうすることにより、キャッシュ機能を実施するための汎用の計算環境の変更を、より少なくすることができる。
【００２８】
請求項7の実施形態は、有利に、限定受信システムにおいて制御語を取得するためのスマートカードを用いたキャッシング機能を使用可能にする。
【００２９】
請求項8の実施形態は、有利に、ネットワーク内でスマートカードを共用することを可能にし、その場合、中間的な結果は、各受信装置でキャッシュされることができる。
【００３０】
本発明の一態様によれば、1つまたは複数の上記で述べた特徴を有する受信装置で使用するためのスマートカードが提案される。スマートカードは、安全な計算環境における第1のメモリを備える。第1のメモリは、変換関数を記憶するように構成される。変換関数は、変換された制御語およびシードを受け取るように構成され、かつ変換された制御語を、入力変換空間から出力変換空間に移動するように構成される。こうすることにより、変換関数は、シードの制御下で数学的な変換を用いて制御語を取得する。変換関数は、キャッシュ制御モジュールを含む。キャッシュ制御モジュールは、変換された制御語およびシードを傍受するように構成される。キャッシュ制御モジュールは、変換関数、変換された制御語(x)、およびシードにマッチする制御語を求めて、受信装置のキャッシュメモリ内を検索するようにさらに構成される。キャッシュ制御モジュールは、制御語がキャッシュメモリ内で発見される場合、制御語を変換関数の出力に提供し、それにより、変換関数を迂回するようにさらに構成される。キャッシュ制御モジュールは、制御語がキャッシュメモリ内で発見されない場合、制御語およびシードを変換関数に提供し、変換関数から制御語を取得し、かつ制御語を、変換関数、変換された制御語、およびシードと関連付けてキャッシュメモリに記憶するようにさらに構成される。
【００３１】
したがって、キャッシング機能は、制御語を取得するためにスマートカードを使用する限定受信システムで使用可能となる。出力変換空間における制御語は、予想される結果が、変換関数に対する入力に基づいて、キャッシュメモリ内で入手可能である場合、変換関数により計算されない。それにより、スマートカードで制御語を取得する計算効率が高くなる。
【００３２】
通常、従来のフォームファクタを有するスマートカードが実装される。スマートカード技術を実施する任意の他の計算装置、例えば、スマートカードエミュレーションソフトウェアを動作させるPCなどが、スマートカードに代えて使用され得る。
【００３３】
本発明の一態様によれば、限定受信システムが提案される。限定受信システムは、ヘッドエンドシステムと、1つまたは複数の上記で述べた特徴を有する1つまたは複数の受信装置とを備える。ヘッドエンドシステムは、資格制御メッセージおよび資格管理メッセージを受信装置に送信するように構成される。資格制御メッセージは、変換された制御語を含む。資格管理メッセージは、1つまたは複数のシードを含む。
【００３４】
したがって、キャッシング機能が限定受信システムで使用可能になり、変換された制御語を入力変換空間から出力変換空間に変換するために、変換された制御語が、ヘッドエンドシステムにより受信装置に提供される。出力変換空間における制御語は、予想される結果が、変換関数に対する入力に基づいて、キャッシュメモリ内で入手可能である場合、変換関数により計算されない。それにより、制御語を取得するための計算効率が高くなる。
【００３５】
以降で、本発明の諸実施形態をさらに詳細に述べるものとする。しかし、これらの諸実施形態は、本発明の保護範囲を限定するものと解釈されるべきではないことを理解されたい。
【００３６】
本発明の諸態様は、図面で示された例示的な諸実施形態を参照して、より詳細に説明されよう。
【図面の簡単な説明】
【００３７】
【図１Ａ】ソフトウェア改ざん耐性技術で使用されるapply原始関数の従来技術のブロック図である。
【図１Ｂ】ソフトウェア改ざん耐性技術で使用されるremove原始関数の従来技術のブロック図である。
【図１Ｃ】ソフトウェア改ざん耐性技術で使用されるcondition原始関数の従来技術のブロック図である。
【図１Ｄ】ソフトウェア改ざん耐性技術で使用されるremoveおよびapply原始関数の組み合わせの従来技術のブロック図である。
【図１Ｅ】ソフトウェア改ざん耐性技術で使用される合成物の安全な相関の従来技術のブロック図である。
【図２】従来技術の簡単化した分割鍵配信プロセスを示す図である。
【図３】受信装置における従来技術の分割鍵配信プロセスを示す図である。
【図４】本発明の例示的な実施形態の変換関数を示す図である。
【図５】本発明の例示的な実施形態のキャッシングを用いる変換関数を示す図である。
【図６】本発明の例示的な実施形態のキャッシングを用いる変換関数を示す図である。
【図７】本発明の例示的な実施形態の一連の2つの変換関数を示す図である。
【図８】本発明の例示的な実施形態のキャッシングを用いる一連の2つの変換関数を示す図である。
【図９】本発明の例示的な実施形態の受信装置におけるキャッシングを用いる分割鍵配信プロセスを示す図である。
【図１０】本発明の例示的な実施形態の受信装置およびスマートカードを示す図である。
【図１１】本発明の例示的な実施形態のスマートカードを共用する2つの受信装置を示す図である。
【図１２】本発明の例示的な実施形態のネットワークを介してスマートカードを共用する2つの受信装置を示す図である。
【図１３】本発明の例示的な実施形態の限定受信システムを示す図である。
【図１４】本発明の例示的な実施形態の受信装置において制御語を取得するための方法の諸ステップを示す図である。
【図１５】変換関数および暗号化を一般的な用語で明確化する図である。
【図１６Ａ】数学的な変換を行う関数のブロック図である。
【図１６Ｂ】シードの制御下で、数学的な変換を行う関数のブロック図である。
【図１７Ａ】apply原始関数のブロック図である。
【図１７Ｂ】remove原始関数のブロック図である。
【図１７Ｃ】condition原始関数のブロック図である。
【図１７Ｄ】removeおよびapply原始関数の組み合わせのブロック図である。
【図１７Ｅ】合成物の安全な相関のブロック図である。
【図１８】制御語を取得するために変換演算を行う受信装置の説明用の例を示す図である。
【発明を実施するための形態】
【００３８】
キャッシングは、前に使用されたデータを、再計算する代わりに、それがどのような形式であっても、記憶して再使用することを可能にする、コンピュータ科学における知られた最適化技術である。キャッシュが無限のサイズを有することはないので、キャッシュされたデータは、通常、例えば、LRU(Least Recently Used：ほとんど最近使用されていない)アルゴリズム、MRU(Most Recently Used：最も最近使用されている)アルゴリズム、またはLFU(Least Frequently Used：最も使用頻度が低い)アルゴリズムなど、利用パターンアルゴリズムに基づいて保持されるか、あるいは破棄される。
【００３９】
資格変換ツリーの実施形態の従来技術の例が図3で示されている。本発明は、資格変換ツリーにおける中間的な結果をキャッシュすることを可能にし、それにより、計算効率を高めるようにする。キャッシング機能は、条件付き資格付与処理の改ざん耐性に影響を与えることなく、汎用の計算環境で実施できるように作成される。
【００４０】
資格変換ツリーにおける中間的な値、例えば、図3に示されたCWDKCTU2は、資格変換ツリーにおける一連の関数およびシードの枠内で有用であるに過ぎないので、非機密性のデータと見なすことができる。その結果、中間的な値は、安全性を低下させることなく、キャッシュするために汎用の計算環境で記憶されることができる。
【００４１】
通常、高い頻度で変化する副鍵の2つの連続する生成間で一定のままである中間的なデータ値がキャッシュされる。キャッシングは、高い頻度で変化する副鍵に対する中間的な値に限定されないこと、またほとんど変化しない副鍵に対する中間的な値が同様にキャッシュできることも理解されよう。すべての中間的な値が、CWそれ自体の2つの連続する生成間で変化しない場合、得られたCWをキャッシュさせることが可能である。後者の場合、通常、CWは、{CW}CSSKなどの暗号化された形でキャッシュされる。
【００４２】
キャッシング機能は、関連するキャッシング参照符と共に、1つまたは複数の中間的な値および/または最終結果の値を記憶することにより実施される。通常、キャッシング参照符は、変換されたCW、シード、および/または合成物などの入力値、ならびに中間的な値もしくは最終結果値を計算するために入力値が入力される関数の指標、またはその関数に対する参照符を含む。
【００４３】
資格変換ツリーにおけるCWの計算は、一連の変換関数からなる。キャッシングを含まない知られた例が図3で示されている。図1A〜1Eで示されるものなどの変換関数は、その処理状態を保持せず、また、通常、入力が正しい場合に限って意味的に正しい出力値を生成できる点で条件付きである。
【００４４】
各変換関数は、概して、図4で示すように表すことができる。図4は、2つの入力aおよびbを有し、1つの出力cを生成する変換関数Fを示す。入力aおよび/またはb、ならびに出力cは、数学的変換により保護されており、データ値x、yおよびzを、受信装置の汎用の計算環境などの信頼性のないドメインで処理し、記憶することを可能にする。
【００４５】
図5は、本発明の例示的な実施形態の追加されたキャッシング機能を備える変換関数Fを示している。図5の実施形態では、キャッシュ制御が、変換関数Fに追加されている。キャッシュは、入力データ値xおよびyを、それぞれ、変換関数Fの入力aおよびbに送る。関数Fは値zを含む出力を生成する。関数は、処理状態を保持しないので、入力値xおよびyの同じ組が、常に、変換関数Fによって同じ出力値zへと処理される。出力zは、後の同様の演算の計算を最適化するためにキャッシュに記憶される。変換関数を実施するモジュールは、入力xおよびyの所与の組み合わせに対して得られる出力値zがキャッシュ内で入手可能ではない場合に限って、関数Fを活性化するキャッシュ制御関数を有する。所与の組み合わせxおよびyに対する出力値zがキャッシュされている場合、キャッシュは、出力値zを出力cに直接提供する。
【００４６】
図6は、本発明の例示的な実施形態の追加されたキャッシング機能を備える変換関数Fを示す。図6の実施形態では、キャッシュ制御がキャッシュに追加されている。キャッシュ制御は、入力データ値xおよびyを、それぞれ、変換関数Fの入力aおよびbに送る。関数Fは値zを含む出力を生成する。関数は、処理状態を保持しないので、入力値xおよびyの同じ組が、常に、変換関数Fによって同じ出力値zへと処理される。出力zは、後の同様の演算の計算を最適化するためにキャッシュに記憶される。キャッシュは、入力xおよびyの所与の組み合わせに対して得られる出力値zがキャッシュ内で入手可能ではない場合に限って、関数Fを活性化するキャッシュ制御関数を有する。所与の組み合わせxおよびyに対する出力値zがキャッシュされている場合、キャッシュは、出力値zを、出力cに直接提供する。
【００４７】
図5および図6の例では、キャッシュは、関数出力値zを、1組の関数入力パラメータ値x、yとリンクさせる。これに関して、簡単なURLスタイルのストリングが、キャッシング参照符として使用されることができる。代替的には、任意の他の知られたデータ構造が、キャッシング参照符を実施するために使用されることもできる。キャッシング参照符ストリングの例は、「Fc?Fa=x&Fb=y」であり、入力「Fa」に値「x」を、入力「Fb」に値「y」を使用して、変換関数「F」から結果「Fc」を計算することを記述している。キャッシング参照符「Fc?Fa=x&Fb=y」は、関連する関数結果「z」と共にキャッシュに記憶される。
【００４８】
例として、以下の表は、「F(x,y)=z」および「F(u,v)=w」の計算を行った後、キャッシュメモリに記憶されるキャッシュエントリを示す。
【００４９】
【表１】
2011155642.tif 000003
【００５０】
次に関数Fが活性化されるときには、キャッシュは、まず、その計算に対する結果が、前に完了しているかどうかを判定する。キャッシュヒットがある場合、計算は実行されず、それに代えて、キャッシュ結果が使用される。
【００５１】
図7は、本発明の例示的な実施形態を示しており、一連の2つの変換関数が、出力yを生成する。変換関数FおよびGのそれぞれが、図4で述べた関数Fと同様に演算を行い、また図5または図6で述べたキャッシング機能を備えている。
【００５２】
出力「Gc」を生成するために、変換関数Gが、その入力パラメータ「Gb」に対する値「x」で活性化される。入力パラメータ「Ga」は、変換関数「F(u,v)」の出力に接続される。キャッシュは、結果パラメータストリング「Fc?Fa=u&Fb=v」を用いて、この関数呼出しの以前の計算を求めて検索する。キャッシュが、このキャッシュ参照符に対する結果を発見する場合、関数「F」は活性化される必要がなく、キャッシュされた値wが、それに代えて使用される。次いで、キャッシュは、「G(w,x)」の計算結果がキャッシュ内に保持されているかどうかを判定するために使用される。キャッシュは、次に、キャッシング参照符「Gc?Ga=w&Gb=x」を使用して、その結果を検索する。発見される場合、関数「G」は活性化される必要がなく、キャッシュされている結果「y」が、変換関数「G」の出力に送られる。キャッシュが、一致するものを発見できない場合、それは、「G(w,x)」の計算を活性化する。計算を行った後、結果「y」が、キャッシュおよび出力「Gc」に返される。これらの演算の後、以下のキャッシュエントリが、キャッシュメモリに記憶される。
【００５３】
【表２】
2011155642.tif 000004
【００５４】
キャッシング演算は、変換ツリーの構造を考慮することにより最適化され、また単一のストリングとして一連の変換関数を組み合わせた結果をキャッシュすることができる。こうすることにより、キャッシュメモリに対するアクセスが低減される。例えば、この最適化を用いた図7の例では、2つのキャッシュヒットに代えて、単一のキャッシュヒットが、出力値yを生成することもできる。これに関して、図7の例のキャッシュ内容は、キャッシュ表における以下のエントリを用いて拡張される。
【００５５】
【表３】
2011155642.tif 000005
【００５６】
図5および図6で示すように、キャッシュ制御は、変換関数周りの、またはキャッシュメモリ周りのラッパー（wrapper）として実装される。両方の実装形態で、キャッシュ制御は、変換関数モジュールを条件付きで活性化するように、かつ変換関数に関連する入力を提供するように構成される。
【００５７】
図8は、バス構造を用いてキャッシュ制御装置に接続された2つの変換関数FおよびGの例を示す。キャッシュ制御装置は、バスを介して、すべての変換関数モジュールに接続される。こうすることにより、データu、v、w、x、およびyを、それぞれ、変換関数FおよびGの入力Fa、Fb、Ga、Gb、および出力Fc、Gcに提供することができる。出力値がキャッシュメモリ内に記憶されていない場合、変換関数モジュールを活性化するために、キャッシュ制御インターフェースが使用される。
【００５８】
図8のキャッシュ制御装置は、図6で示されたキャッシュ制御と同様に動作する。図5で示したキャッシュ制御の動作と同様に、図8で示されたバス構造を、各変換関数FおよびGにおけるキャッシュ制御機能と共に使用できることが理解されよう。
【００５９】
キャッシュエントリに対する検索、および変換関数を条件付きで活性化することに加えて、キャッシュ制御装置は、任意選択で、キャッシュの記憶サイズを管理するために、使用されないキャッシュエントリを除去するように構成される。これに関して、キャッシュ制御装置は、最も関連のある情報だけをキャッシュに保持することを保証するために、任意の知られたキャッシュ管理技法を使用することができる。
【００６０】
図9は、キャッシング最適化で拡張された資格変換ツリー実施形態の例を示す。図9の資格変換ツリーにおける変換関数は、図3で示す資格変換ツリーの変換関数と同様のものであり、同様の変換関数シーケンスが使用される。図9の例では、変換ツリーにおけるすべてのデータが、キャッシュ制御装置と、「データ」で示されたデータインターフェースとを通る。キャッシュ制御装置は、更に、キャッシュ制御インターフェースを介して、変換関数モジュールの活性化を制御する。
【００６１】
図9は、受信装置の2つの部分、すなわち、安全な計算環境および汎用の処理環境を示している。汎用の処理環境は、ストレージ、データ通信、およびユーザ対話など、外部インターフェースを扱う。安全な計算環境は、鍵および/またはシードの処理を扱う。処理は、通常、1つまたは複数のプロセッサ(図示せず)により行われる。
【００６２】
ECM配信経路は、ヘッドエンドシステムから資格制御メッセージ(ECM)を受け取るために使用される。ECMは、暗号化された、または変換されたCWを含む。EMM配信経路は、ヘッドエンドシステムから資格管理メッセージ(EMM)を受け取るために使用される。EMMは、暗号化された、または変換されたCWを復号または変換するための鍵またはシードを含む。ECM配信経路およびEMM配信経路は、通常、ECMおよびEMMを受け取るための入力モジュールに実装される。
【００６３】
図9の例では、汎用の計算環境は、キャッシュ制御装置およびキャッシュメモリとして実装されるキャッシング機能を含む。キャッシュ制御装置を介して、データは、ECM配信経路およびEMM配信経路からキャッシュメモリに流れ、そしてキャッシュメモリ、変換関数(RPAG1,RG1AU1,およびRG2CvectorAU2)、およびTDES暗号化ホワイトボックスの間で流れる。
【００６４】
この例では、変換関数に対して、以下のエイリアス、すなわち、F=RPAG1,G=RG1AU1、およびH=RG2CvectorAU2が使用される。Fは、2つの入力FaおよびFbと出力Fcとを有し、Gは、2つの入力GaおよびGbと出力Gcとを有し、そしてHは、2つの入力HaおよびHbと出力Hcとを有する。F、G、およびHのすべての入力および出力は、データバスを介してキャッシュ制御装置に接続される。
【００６５】
ECM配信経路を介して、変換空間Pにおける変換された制御語、すなわち、CWDTPが受け取られる。EMM配信経路を介して、シード<P,G1>、<G1,U1>、<G2,U2,n>、および<CSSK,U1,U2>が受け取られる。EMM配信経路を介してさらに、変換空間G2における制御語差分鍵CWDKとベクトルの合成物、すなわち、
【数１】
2011155642.tif 000006
が、グループメンバーシップ検査のために受け取られる。
【００６６】
キャッシュ制御装置は、Faに対してCWDTPであり、Fbに対して<P,G1>である、入力値にマッチする変換関数Fのキャッシュされた出力値を求めてキャッシュメモリを検索する。キャッシュされた出力値が発見される場合、キャッシュされている値が、関数Fを呼び出すことなく、Fcに提供される。出力値が発見されない場合、データバスを介して、CWDTPがFaに提供され、また<P,G1>がFbに提供される。キャッシュ制御インターフェースを介して、命令がキャッシュ制御装置から変換関数Fに与えられ、FaおよびFbにおける入力データを使用して出力値を生成し、その結果を、Fcおよびデータバスを介してキャッシュ制御装置に返す。その結果は、キャッシュメモリに記憶され、キャッシュメモリは、現在、以下のエントリを含むことになる。
【００６７】
【表４】
2011155642.tif 000007
【００６８】
次に、キャッシュ制御装置は、Gaに対するFの出力値であり、そしてGbに対する<G1,U1>の出力値である、入力値にマッチする変換関数Gのキャッシュされた出力値を求めてキャッシュメモリを検索する。キャッシュされた出力値が発見される場合、キャッシュされた値が、関数Gを呼び出すことなく、Gcに提供される。出力値が発見されない場合、データバスを介して、この例では、
【数２】
2011155642.tif 000008
であるFの出力値がGaに提供され、また<G1,U1>がGbに提供される。キャッシュ制御インターフェースを介して、命令がキャッシュ制御装置から変換関数Gに与えられて、GaおよびGbにおける入力データを用いて出力値を生成し、その結果を、Gcおよびデータバスを介してキャッシュ制御装置に返す。その結果は、キャッシュメモリに記憶され、キャッシュメモリは、現在、以下のエントリを含むことになる。
【００６９】
【表５】
2011155642.tif 000009
【００７０】
代替的には、または任意選択で、変換関数FおよびGにより入力を処理した後の結果は、単一のエントリとしてキャッシュメモリに記憶され、入力値Fa=CWDTP、Fb=<P,G1>、およびGb=<G1,U1>を用いた単一のステップで、変換関数Gの結果をキャッシュメモリ内で発見することを可能にする。そのとき、キャッシュメモリは、例えば、以下のエントリを含む。
【００７１】
【表６】
2011155642.tif 000010
【００７２】
グループメンバーシップ検査のために、キャッシュ制御装置は、Haに対して<G2,U2,n>であり、かつHbに対して
【数３】
2011155642.tif 000011
である、入力値にマッチする安全な相関関数Hのキャッシュされた出力値を求めて、キャッシュメモリを検索する。キャッシュされた出力値が発見される場合、キャッシュされた値は、関数Hを呼び出すことなくHcに提供される。出力値が発見されない場合、データバスを介して、<G2,U2,n>がHaに提供され、かつ
【数４】
2011155642.tif 000012
がHbに提供される。キャッシュ制御インターフェースを介して、命令がキャッシュ制御装置から安全な相関関数Hに与えられて、HaおよびHbに関する入力データを用いて出力値を生成し、その結果をHcおよびデータバスを介してキャッシュ制御装置に返す。その結果は、キャッシュメモリに記憶され、キャッシュメモリは、現在、以下のエントリを含むことになる。
【００７３】
【表７】
2011155642.tif 000013
【００７４】
最後のステップでは、GcおよびHcの出力データ、すなわち、それぞれ、
【数５】
2011155642.tif 000014
が、{CW}CSSKを生成するために、データバスを介して、シード<CSSK,U1,U2>と共にTDES暗号化ホワイトボックスに提供される。得られた{CW}CSSKは、通常、このデータが汎用の計算環境内で取得されることを阻止するために、キャッシュメモリにはキャッシュされない。
【００７５】
安全な計算環境における変換ツリーの実施形態は、図9の例に限定されない。一連の変換関数には、通常2つ以上の変換関数が存在する。変換関数は、1つまたは複数の枝を備えた資格変換ツリーを形成することができる。各変換関数は、任意の知られた変換関数であり得る。TDES暗号化ホワイトボックスに代えて、任意の他の暗号化関数が、変換された制御語から暗号化された制御語を生成するために使用されることができる。代替的には、TDES暗号化ホワイトボックスに代えて、remove原始関数が、変換された制御語から平文の制御語を生成するために使用されることができる。
【００７６】
キャッシングは、変換シーケンスにおけるすべてのステップに対して効率的ではない可能性がある。例えば、特定の変換関数に対してキャッシュヒット率が低いと予想される場合、変換関数を実行する前にキャッシュメモリにアクセスすることにより、キャッシング機能が、実際には、全体の処理性能を低下させるおそれがある。全体の処理性能のこのような低下を回避するために、キャッシング機能を有しない1つまたは複数の変換関数モジュールを実装することができ、その結果、その入力値は、キャッシュヒットを求めて検索することなく変換関数モジュールにより処理されて、出力値が生成される。
【００７７】
図9の例では、汎用の計算環境および安全な計算環境は、受信装置の一部である。代替的には、安全な計算環境がスマートカード中に実装され、汎用の計算環境が受信装置中に実装される。
【００７８】
従来のフォームファクタを有するスマートカードに代えて、スマートカード技術を実施する任意の他のコンピューティング装置、例えば、スマートカードエミュレーションソフトウェアを動作させるPCなどが、スマートカードとして使用されることができる。
【００７９】
図10は、デジタルテレビ受信装置のようなセットトップボックス(STB)と、例えば、スマートカードをSTBに挿入することにより、STBと通信可能に接続されるスマートカードとを含む簡単化したアーキテクチャを示している。STBにより受信されたEMMおよびECMは、スマートカードにより処理される前にEMM/ECMストレージに記憶されることができる。スマートカードは、ECMおよびEMMから、それ自体知られた任意の方法でデータを取得するが、そのデータには、スマートカードの安全な計算環境における資格変換ツリーに対する入力データが含まれている。変換関数および/または安全な相関関数に対する入力、そして変換関数および/または安全な相関関数からの出力は、STB内のキャッシュに記憶される。
【００８０】
2つ以上のネットワーク化された装置に共通のスマートカードを共用させることも可能である。図11の例では、2つのSTBがそれぞれ、ヘッドエンドシステムから受信したECMおよびEMMを、EMM/ECMストレージにより示された不揮発性メモリ内に暗号化された形式で記憶する。挿入されたスマートカードを有しないSTBは、ネットワークを介し、かつスマートカードが挿入されたSTBの仲介により、スマートカードに対する安全な接続を確立する。スマートカードは、受信装置から1つまたは複数のECM、および関連するEMMを受け取り、スマートカードの安全な計算環境内でECMおよびEMMを復号して、変換関数モジュールのための入力データを取得する。変換関数の出力値は、STBのローカルなキャッシュに記憶するために、安全な接続を介してSTBに送られる。
【００８１】
図11の例の代替形態が図12で示されており、その場合、スマートカードが、STBのうちの1つに挿入されるのではなく、ネットワークと通信可能に接続され、各STBは、ネットワークを介してスマートカードにアクセスする。
【００８２】
STBは、通常、スマートカードよりも多くの記憶空間を有する。したがって、図10〜12の例では、キャッシュメモリはSTBに実装される。代替的には、キャッシュメモリをスマートカード内に実装することも可能である。
【００８３】
図13は、本発明の例示的な実施形態の限定受信システムを示す。ヘッドエンドシステムが、ECMおよびEMMを、配信ネットワークを介して、1つまたは複数の受信装置に送信する。ECMは、通常、例えば、図9のCWDTPなど、変換された制御語を含み、それは、受信装置の安全な計算環境内で、資格変換ツリーにより処理される。安全な計算環境は、受信装置に対して通信可能に接続されたスマートカード内に実装することができる。EMMは、通常、変換された制御語を変換するのに使用される、例えば、図9の<P,G1>および<G1,U1>などの1つまたは複数のシードを含む。グループメンバーシップ検査データなど他のデータも同様に、EMMで送信されることができる。複数のEMMが、データを送信するために使用されることができる。
【００８４】
図14では、本発明の例示的な実施形態の受信装置により実施される諸ステップが、概略的に示されている。ステップ101で、変換された制御語およびシードが受け取られる。ステップ102で、変換された制御語およびシードが、キャッシュ制御モジュールで傍受される。ステップ103で、変換関数、変換された制御語、およびシードにマッチする制御語が、キャッシュメモリ内で検索される。ステップ104で、検索結果が解析される。制御語が発見される場合、それは、ステップ105で、変換関数の出力に提供されて、それにより、変換関数が迂回される。制御語が発見されない場合、ステップ106で、制御語は、シードと共に変換関数に提供される。ステップ107で、変換された制御語は、入力変換空間から出力変換空間に移動され、シードの制御下で数学的変換を用いて制御語が取得される。ステップ108で、制御語は、変換関数、変換された制御語、およびシードと関連付けられて、キャッシュメモリに記憶される。ステップ108は、次に同じ入力値を有する同じ変換関数が呼び出されたときに、ステップ103におけるキャッシュヒットを可能にする。
【００８５】
上記で論じたように、データおよびソフトウェアの難読化技法は、中間的な結果を難読化するために変換関数を利用することができる。本開示で使用される変換関数の概念は、暗号化とは異なる。その差は、概して、図15および以下で述べる論議を参照することによりさらに明確化される。
【００８６】
非変換データ空間内に複数のデータ要素を有する入力ドメインIDが存在するものと仮定する。入力ドメインIDのデータ要素を入力として受け入れ、対応する暗号化されたデータ要素を出力ドメインODに渡すように構成された、何らかの鍵を使用する暗号化関数Eが定義される。復号関数Dを適用すること、すなわち、復号関数Dを出力ドメインODのデータ要素に適用することにより、入力IDの元のデータ要素を得ることができる。安全ではない環境(通常、「ホワイトボックス」と呼ばれる)では、敵対者は、入力および出力データ要素を知り、かつ実行中に暗号化関数Eの内部にアクセスできることが想定される。この環境では、特別の予防策をとらない限り、秘密(例えば、暗号化/復号関数で使用される鍵)は、敵対者によって容易に導出されることができる。
【００８７】
変換関数を入力ドメインIDおよび出力ドメインODに適用することにより、さらなる安全性を、安全ではない環境内で得ることができ、すなわち、変換関数は、入力演算および出力演算である。変換関数T1は、データ要素を、入力ドメインIDから、変換されたデータ空間の変換された入力ドメインID'における変換されたデータ要素に写像（map）する。同様に、変換関数T2は、データ要素を、出力ドメインODから、変換された出力ドメインOD'に写像する。この場合、変換された暗号化関数E'および復号関数D'は、変換された鍵を用いてID'とOD'の間で定義されることができる。逆変換が行われる場合、例えば、結果が非変換空間に伝達される場合には、T1およびT2は全単射である。
【００８８】
暗号化技法と共に変換関数T1およびT2を使用することは、出力ドメインODの暗号化されたデータ要素を得るために、入力ドメインIDのデータ要素を暗号化関数Eに入力するのではなく、変換関数T1を適用することにより、ドメインID'の変換されたデータ要素が、変換された暗号化関数E'に入力されることを示唆している。変換された暗号化関数E'は、鍵などの秘密情報を保護するために、暗号化演算において、逆変換関数T1-1と変換関数T2を組み合わせる。次いで、ドメインOD'の変換された暗号化データ要素が取得される。暗号化関数E、または復号関数Dに対する鍵は、変換されたデータ空間内で入力データおよび出力データを解析した場合には、取り出すことができない。こうすることにより、安全ではない環境で演算された場合であっても、敵対者に対して鍵が保護されることが保証される。具体的には、連続したメモリにおける平文において、システムは、変換することにより、鍵のどの部分も、または鍵から導出されるどの値も決して明らかにしないようにすることができる。言い換えると、変換は、変換された空間でデータに変換を適用し、かつ演算を行うことにより、データを難読化する。いくつかの実施形態では、これらの変換関数は、ランダムに生成される。
【００８９】
データを難読化するために変換を使用する利点は、これらの変換の入力値および出力値を、これらの入力値および出力値が敵対者には無用のものになる特徴により、汎用の(安全ではない)計算環境に記憶またはキャッシュさせることを可能にすることである。それとは対照的に、変換されない暗号化関数の入力値および出力値は、汎用の計算環境内に記憶またはキャッシュされることはできない。敵対者に対して有用になる可能性があるので、暗号化および復号鍵/平文鍵の対などの、これらの値は、安全ではないメモリにキャッシュ及び記憶されるべきではない。
【００９０】
変換関数T1およびT2の一方は、非自明の関数とすべきである。T1が自明な関数である場合、入力ドメインIDおよびID'は同じドメインである。T2が自明な関数である場合、出力ドメインが同じドメインである。
【００９１】
図16Aで示す関数Fは、INおよびOUTで識別される2つの異なる変換空間にわたってデータZを移動する数学的な演算である。出力変換空間OUTの次元は、少なくとも入力変換空間INと同様の大きさであり、そして任意のデータZは、入力変換空間および出力変換空間の両方において、それぞれ、XおよびYで表される(一意ではない可能性がある)。関数Fは、逆方向に動作することが困難であるように設計される。入力変換空間と出力変換空間との間に明らかな写像（mapping）が存在しないこと、および変換空間INおよびOUTの次元が、好ましくは、非常に大きいことのために、関数Fを再現することは阻止される。さらに、関数Fは、例えば、ホワイトボックス技法、および/または他の符号難読化技法を用いて、データZが関数を通過するとき、それを抽出することが困難であるような方法で実施される。
【００９２】
図16Aを参照すると、関数Fが、例えば、Y=F(X)=3*X+2として定義される。入力変換空間INが、平文変換空間である場合、X=(Z)IN=Zである。移動の後、以下の結果が得られる。すなわち、Y=(Z)OUT=3*X+2である。Zを、出力変換空間から平文変換空間に再度移動するために、逆関数F-1(Y)=(Y-2)/3が利用可能である必要があり、Xが次のように得られる。すなわち、F-1(Y)=(3*X+2-2)/3=Xである。この例では、Z、XおよびYは、簡単な加算および減算数学を用いて変換するために使用できる数である。Z、XおよびYは、2進値、数、文字、単語、その他種々のものを含む任意のデータ形式のデータであり得ることが理解されるべきである。関数Fは、より複雑な関数とすることができ、さらに、例えば、2進値、数、文字、または単語に対して演算を行うのに適したものとすることができる。いくつかの実施形態では、関数Fは、2進値に対して実施することが計算上効率的であるように選択される。
【００９３】
関数Fは、図16Bで示されるように、さらなるパラメータSをシードとして用いることのできる数学的な演算と定義されることができる。関数Fが行う移動は、通常、シードSにより定義される。このタイプのシードが導入された変換関数は、通常、入力空間INおよび出力空間OUTに関する情報がFに埋め込まれていない場合に関して使用される。関数Fは、入力データXまたはシードSの操作が、出力変換空間において、予測できない結果のデータYを生じさせるように選択される。シードSは、変換空間INまたはOUTに関する情報を何も抽出できないように作成されているので、安全な環境内で安全に保護または記憶される必要はない。
【００９４】
図16Bを参照すると、関数Fは、例えば、F(X,S)=X-7+Sとして定義される。入力変換空間INが、平文変換空間である場合、X=(Z)IN=Zである。したがって、移動後に、以下の結果が得られる。すなわち、Y=(Z)OUT=X-7+S=Z-7+Sである。例えば、シードSが、5の値を含むデータとして提供された場合、F(X,5)=X-7+5およびY=(Z)OUT=X-7+5=Z-2である。Zを再度、出力変換空間から平文変換空間に移動するためには、逆関数F-1(Y,S)=Y+7-Sが利用可能である必要があり、Xが次のように得られる。すなわち、F-1(Y,S)=(X-7+5)+7-Sである。シードS=5が知られている場合、Zは、F-1(Y,5)=(X-7+5)+7-5=X=Zとして、正しく得ることができる。
【００９５】
入力変換空間INが、平文変換空間ではない場合、関数Fは、通常、まず、入力変換空間INにおいて逆変換を行い、次に、出力変換空間OUTにおいて変換を行う。このような関数Fは、例えば、F(X,S1,S2)=F2(F1-1(X,S1),S2)として定義され、その場合、F1-1(X,S1)=X-2-S1およびF2(X,S2)=X-7+S2である。したがって、移動した後、以下の結果が得られる。すなわち、Y=(Z)OUT=(X-2-S1)-7+S2=X-9-S1+S2、ただし、X=(Z)INである。
【００９６】
シードS1およびS2は、2つの別個のシードとして、まず、F1-1(X,S1)を実施するために提供され、次に、F2(X,S2)を実施するために提供されることができるが、あるいはより好ましくは、シードの合成物<S1,S2>として提供されることができる。概して、シードの合成物は、複数のシードの混合体である。複数のシードの混合体から、個々のシードを導出可能ではない。シードS1およびS2を混合するためのパラメータ混合関数は、f(S1,S2)=<S1,S2>として示される。関数結果<S1,S2>は、シードS1およびS2の合成物と呼ばれる。上記の例では、S1=5およびS2=7である場合、1つの合成物は、<S1,S2>=5-7=-2である。
【００９７】
上記の例では、Z、X、Y、およびSは、簡単な加算および減算数学を用いて変換するために使用できる数である。Z、X、Y、およびSは、2進値、数、文字、単語、その他種々のものを含む任意のデータ形式のデータであり得ることが理解されることになる。関数Fは、より複雑な関数とすることができ、さらに、例えば、2進値、数、文字、または単語に対して演算を行うのに適したものとすることができる。図1A〜Eと同様に、図17Aは、基本原始関数をさらに詳細に説明している。
【００９８】
図17Aでは、関数A(Data,S)=AS(Data)=DataTSは、入力シードSを用いて、入力データを変換されたDataTSに変換するapply原始関数を定義する。図17Bでは、関数R(DataTS,S)=RS(DataTS)=Dataは、出力データを得るために、シードSを用いて、入力DataTSの変換を逆に行うremove原始関数を定義する。シードSは、互いに逆になるように、2つの関数A( )およびR( )に対して同一である必要がある。
【００９９】
元のデータおよびその変換された変形体DataTSは、通常、同じサイズ、すなわち、同じビット数で表され、そのサイズに基づいて、そのデータ(Data)が、特定の変換された空間内にあるかどうかを判定することを不可能にする。
【０１００】
図17Cでは、関数C(Data1,Data2)=CData1(Data2)=DataCは、条件付き変換を定義し、その場合、出力DataCは、2つの入力Data1およびData2の相関である。condition原始関数は、通常、入力データおよび出力データのサイズを保存し、そのデータ(Data)が、相関の結果であるかどうかの判定を不可能にする。
【０１０１】
apply原始関数、remove原始関数、およびcondition原始関数などの原始関数は、組み合わせられることができる。その組み合わせは、個々の原始関数を見分けることのできない新しい演算を生成する。
【０１０２】
図17Dは、remove原始関数とapply原始関数の組み合わせの例を示す。変換演算は、入力DataTPに適用される組み合わされたremoveおよびapply演算に対する入力として、合成物<P,S>を使用する。RPAS関数は、出力DataTSを得るために、入力DataTPを、入力変換ドメインPから出力変換ドメインSに写像する。組み合わされたremoveおよびapply演算のすべての入力および出力は変換されるか、あるいは合成物の形式になる。演算は、変換されたデータに適用され、変換されたデータを生成する。したがって、変換演算は、変換されたドメイン空間で行われ、そしてどのインターフェース上においても個々のパラメータ、または変換されていないデータを明らかにすることはない。合成物<P,S>を作成するために使用される関数は、好ましくは、一意のものであり、組み合わされたapplyおよびremove演算の実施にリンクされる。
【０１０３】
図17Eは、2つの入力合成物<P,S,Q1>および<DataTP,Q2>に対する安全な相関演算の例を示す。RPCQAS関数は、remove、conditionおよびapply原始関数を組み合わせて、それにより、出力
【数６】
2011155642.tif 000015
を作成する。
【０１０４】
図18は、限定受信装置の受信装置において実施される変換経路の説明用の例を示す。受信装置は、通常、少なくとも一部が、ソフトウェアとして、またはプログラム可能なアレイにおけるフィールドプログラマブルゲートアレイ（Field Programmable Gate Array：ＦＰＧＡ）プログラムとして実装される。受信装置は、プロセッサの保護されていないメモリ、部分的に保護されたメモリ、かつ/または安全なメモリを備える。プロセッサは、メモリに記憶された関数を実行して、秘密のデータZを、入力変換空間INから出力変換空間OUTに移動するように構成される。秘密のデータZは、抽出または傍受することはできず、したがって、例えば、不法に他の受信装置に配信されることはできない。
【０１０５】
受信装置は、資格制御メッセージECM内の大域的に変換された制御語CWDTPとして制御語CWを受け取る。受信装置は、CWDを、入力変換空間Pから、受信装置の最終的な出力変換空間CSSKに、3ステップで移動する。最後の移動ステップで、変換された制御語{CW}CSSKが生成されるが、それは、受信装置に一意であるクラスタ共用秘密鍵(CSSK)の出力変換空間における制御語CWである。
【０１０６】
受信装置は、汎用の計算環境および安全な計算環境を備える。
【０１０７】
汎用の計算環境は、ヘッドエンドシステムからECMを受け取るためのECM配信経路を備える。汎用の計算環境は、ヘッドエンドシステムから資格管理メッセージ(EMM)を受け取るためのEMM配信経路をさらに備える。EMMは、様々な変換空間を通り、変換経路に沿ってCWDTPを移動させるために使用されるシードを備える。EMMで受け取られたシードは、汎用の計算環境のNVRAMメモリに記憶される。第1のシードは、合成物<P,G1>に等しい。第2のシードは、合成物<G1,U1>に等しい。第3のシードは、合成物<CSSK,U1>に等しい。
【０１０８】
安全な計算環境は、一連の変換関数を備える。第1の関数RPAG1は、シード入力として、合成物<P,G1>を用いて、CWDTPを、入力変換空間Pから出力変換空間G1に変換する。その後に続いて、第2の関数RG1AU1は、CWTG1、すなわち、変換空間G1におけるCWを、合成物<G1,U1>を用いて、入力変換空間G1から出力変換空間U1に変換する。その後に続いて、この例では、TDESホワイトボックス暗号化関数である第3の関数が、CWTU1を、すなわち、変換空間U1におけるCWを、入力変換空間U1から出力変換空間CSSKに変換する。得られた{CW}CSSKは、CSSK鍵の下に暗号化されたCWであり、それは、受信装置の安全なメモリに事前に記憶されたCSSK、または受信装置により安全に導出可能なCSSKを用いて、限定受信装置により復号されることができる。
【０１０９】
受信装置における変換経路は、図18で示された例に限定されるものではないこと、ならびに任意の数および任意の種類の変換演算を含み得ることが理解されるべきである。
【０１１０】
本開示の一実施形態は、コンピュータシステムと共に使用するためのプログラム製品として実施されることができる。プログラム製品のプログラムは、諸実施形態(本明細書で述べた方法を含む)の関数を定義し、かつ、様々なコンピュータで読取り可能な非一時的記憶媒体に含まれることができる。コンピュータ可読記憶媒体は、非一時的記憶媒体であり得る。例示的なコンピュータ可読の、かつ/または非一時的な記憶媒体は、これだけに限らないが、(i)情報が永続的に記憶される書込み不能な記憶媒体(例えば、CD-ROMドライブにより読取り可能なCD-ROMディスク、フラッシュメモリ、ROMチップ、または任意のタイプの固体素子不揮発性の半導体メモリなど、コンピュータ内の読取り専用メモリ装置)、および(ii)変更可能な情報が記憶される書込み可能な記憶媒体(例えば、ディスケットドライブ内のフロッピー（登録商標）ディスク、またはハードディスクドライブ、あるいは任意のタイプの固体素子ランダムアクセス半導体メモリ)を含む。さらに、本開示は、上記で述べた諸実施形態に限定されず、本開示の範囲を逸脱することなく、添付の特許請求の範囲内で変更されることができる。
【０１１１】
いずれか1つの実施形態に関して述べられたいずれの特徴も、単独で、または前述の他の特徴と組み合わせて使用することができ、さらに、任意の他の実施形態の1つまたは複数の特徴と組み合わせて、あるいは任意の他の実施形態の任意の組み合わせで使用できることが理解されるべきである。さらに、上記で述べられていない均等な形態および変形形態もまた、添付の特許請求の範囲で定義される本発明の範囲を逸脱することなく使用されることができる。
【符号の説明】
【０１１２】
x    制御語
y    シード
z    制御語
F    変換関数
G    変換関数
【図１Ａ】
2011155642.tif 000016
【図１Ｂ】
2011155642.tif 000017
【図１Ｃ】
2011155642.tif 000018
【図１Ｄ】
2011155642.tif 000019
【図１Ｅ】
2011155642.tif 000020
【図２】
2011155642.tif 000021
【図３】
2011155642.tif 000022
【図４】
2011155642.tif 000023
【図５】
2011155642.tif 000024
【図６】
2011155642.tif 000025
【図７】
2011155642.tif 000026
【図８】
2011155642.tif 000027
【図９】
2011155642.tif 000028
【図１０】
2011155642.tif 000029
【図１１】
2011155642.tif 000030
【図１２】
2011155642.tif 000031
【図１３】
2011155642.tif 000032
【図１４】
2011155642.tif 000033
【図１５】
2011155642.tif 000034
【図１６Ａ】
2011155642.tif 000035
【図１６Ｂ】
2011155642.tif 000036
【図１７Ａ】
2011155642.tif 000037
【図１７Ｂ】
2011155642.tif 000038
【図１７Ｃ】
2011155642.tif 000039
【図１７Ｄ】
2011155642.tif 000040
【図１７Ｅ】
2011155642.tif 000041
【図１８】
2011155642.tif 000042
【外国語明細書】
2011155642.tif 000043
2011155642.tif 000044
2011155642.tif 000045
2011155642.tif 000046
2011155642.tif 000047
2011155642.tif 000048
2011155642.tif 000049
2011155642.tif 000050
2011155642.tif 000051
2011155642.tif 000052
2011155642.tif 000053
2011155642.tif 000054
2011155642.tif 000055
2011155642.tif 000056
2011155642.tif 000057
2011155642.tif 000058
2011155642.tif 000059
2011155642.tif 000060
2011155642.tif 000061
2011155642.tif 000062
2011155642.tif 000063
2011155642.tif 000064
2011155642.tif 000065
2011155642.tif 000066
2011155642.tif 000067
2011155642.tif 000068
2011155642.tif 000069
2011155642.tif 000070
2011155642.tif 000071
2011155642.tif 000072
2011155642.tif 000073
2011155642.tif 000074
2011155642.tif 000075
2011155642.tif 000076
2011155642.tif 000077
2011155642.tif 000078
2011155642.tif 000079
2011155642.tif 000080
2011155642.tif 000081
2011155642.tif 000082
2011155642.tif 000083
2011155642.tif 000084