制御語を受信装置において変換を用いて計算的に効率よく取得すること
【課題】計算効率の高い、制御語を取得するための改良されたソフトウェア改ざん耐性を有する条件付き資格付与処理技術を提供する。
【解決手段】受信装置に備わるスマートカードの第1のメモリは変換関数を安全に記憶しており、変換された制御語とシードを受け取り、シードの制御下で制御語を取得する。さらに受信装置はキャッシュメモリおよび制御モジュールを備える。制御モジュールは、制御語がキャッシュメモリで発見される場合、制御語を変換関数の出力に提供し、変換関数を迂回し計算効率を高めるように構成される。ヘッドエンドシステムと受信装置からなる限定受信システムであって、ヘッドエンドシステムは変換された制御語を含む資格制御メッセージと資格管理メッセージを受信装置に送信する。受信装置は資格制御メッセージに対する資格変換ツリーまたはキャッシュメモリを用いて、安全に制御語を取得することができる。
【解決手段】受信装置に備わるスマートカードの第1のメモリは変換関数を安全に記憶しており、変換された制御語とシードを受け取り、シードの制御下で制御語を取得する。さらに受信装置はキャッシュメモリおよび制御モジュールを備える。制御モジュールは、制御語がキャッシュメモリで発見される場合、制御語を変換関数の出力に提供し、変換関数を迂回し計算効率を高めるように構成される。ヘッドエンドシステムと受信装置からなる限定受信システムであって、ヘッドエンドシステムは変換された制御語を含む資格制御メッセージと資格管理メッセージを受信装置に送信する。受信装置は資格制御メッセージに対する資格変換ツリーまたはキャッシュメモリを用いて、安全に制御語を取得することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、変換関数を用いて、制御語を計算的に効率よく取得するための受信装置、スマートカード、限定受信システム(CAS: Conditional Access System)、および方法に関する。
【背景技術】
【0002】
デジタルテレビ受信装置において、鍵の保管および資格付与処理ステップを保護するために、ソフトウェア改ざん耐性を利用した有料テレビ放送システムなどの限定受信システムが知られている。
【0003】
ソフトウェア改ざん耐性技術は、ソフトウェアの符号変換を不明瞭にするために基本原始関数を使用する。基本原始関数の例は、「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つの入力の相関になる。
【0004】
シードSは、複数のデータ要素の混合体から構成することができる。こうすることにより、シードから個々のデータ要素を抽出することが困難になる。パラメータ混合関数は、通常、f(A,B)=<A,B>で示される。関数結果<A,B>は、AとBの合成物(compound)と呼ばれる。本明細書では、これ以降、シードおよび合成物を共に「シード」と呼ぶものとする。
【0005】
原始関数は、通常、限定受信システム(CAS)に鍵管理関数を実装する場合に組み合わされる。原始関数を組み合わせると、個々の原始関数をもはや識別できなくなる新しい関数が得られる。原始関数の組み合わせの知られた例は、removeおよびapply原始関数と、合成物の安全な相関との組み合わせである。
【0006】
図1Dは、removeとapply原始関数の組み合わせの例を示す。変換は、組み合わされたremoveおよびapply演算において合成物<P,S>を使用する。関数RPASは、シードPを用いた変換をシードSを用いた変換で置き換えることにより、入力データを変更し、すなわち、DataTPがDataTSに変換される。
【0007】
図1Eは、合成物の安全な相関の例を示す。それは、通常、条件付き資格付与処理に対して使用され、また基本原始関数apply、remove、およびconditionの組み合わせを含む。条件関数は、図1DのremoveおよびapplyブロックRPASと組み合わされて、合成物の安全な相関を行うことができる。
【0008】
条件付き資格付与処理、および制御語CWの取得のための方法および受信装置は、参照により本出願に組み込まれている、関連の欧州特許出願第09155007.9号に記載されている。
【0009】
図2は、EP09155007.9に記載の分割鍵配信の例を示す。図2において、CWは、3つの副鍵CW1、CW2、およびCW3から生成される。副鍵CW1、CW2、およびCW3は、それぞれ、シードP、G、およびUの保護の下に分配される。これに関して、CW1は、変換空間Pにおいて数学的に変換された形で分配され、CW2は、変換空間Gにおいて数学的に変換された形で分配され、またCW3は、変換空間Uにおいて数学的に変換された形で分配される。
【0010】
図3は、EP09155007.9に記載された受信装置におけるCW処理の例を示す。図3では、CWは副鍵から生成され、メンバーシップ検査が行われる。処理は、2つの基本的な部分に、すなわち、安全な計算環境および汎用の処理環境に分割される。汎用の処理環境および安全な計算環境における関数モジュールは、入力された変換されたCW、例えばCWDTPを、受信装置特有の鍵を用いて暗号化されたCW、例えば{CW}CSSKに変換するための資格変換ツリーを形成する。汎用の処理環境は、ストレージ、データ通信、およびユーザ対話などの外部インターフェースを扱う。安全な計算環境は、鍵および/またはシードの処理を扱う。
【0011】
ECM配信経路は、ヘッドエンドシステムからECM(entitlement control messages:資格制御メッセージ)を受信するために使用される。ECMは、暗号化された、または変換されたCWを含む。EMM配信経路は、ヘッドエンドシステムからEMM(entitlement management messages:資格管理メッセージ)を受信するために使用される。EMMは、暗号化された、または変換されたCWを、復号または変換するための鍵またはシードを含む。
【0012】
安全な計算環境におけるソフトウェア改ざん耐性のある原始関数は、傍受された場合に攻撃者には有用ではない入力および出力を有する。変換された制御語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暗号化ホワイトボックスに提供される。
【0013】
図3の条件付き資格付与処理は、グループメンバーシップ検査を実施するために、安全な相関関数RG2CvectorAU2を使用する。相関計算の結果は、変換空間U2における制御語差分鍵CWDK、すなわち、CWDKCTU2である。CWDKCTU2およびCWDTU1は、TDES暗号化ホワイトボックスにおいてCWの計算に使用される副鍵である。
【0014】
図2のCW1、CW2、およびCW3、ならびに図3のCWDKCTU2およびCWDTU1などの副鍵は、異なる存続期間を有する可能性がある。例として、CW1は、10秒ごとになど、規則的に変化し、CW2は、日数で測定して散発的に変化し、またCW3は月数で測定して非常にまれに変化する可能性がある。
【0015】
変換された副鍵からCWを得るための、知られたソフトウェア改ざん耐性のある条件付き資格付与処理技術は、副鍵の異なる存続期間を考慮していない。その結果、CWを得るために、常に、条件付き資格付与処理におけるすべての中間的演算が行われる。各中間的演算の実行は、プロセッササイクルの点から費用がかかる。
【0016】
ソフトウェア改ざん耐性のある条件付き資格付与処理技術で、特に、処理系の改ざん耐性に悪影響を与えることはないが処理能力が限られている装置において、計算数を低減させることが求められている。
【先行技術文献】
【特許文献】
【0017】
【特許文献1】欧州特許出願第09155007.9号
【発明の概要】
【発明が解決しようとする課題】
【0018】
本発明の一目的は、計算効率の高い、CWを取得するための改良されたソフトウェア改ざん耐性を有する条件付き資格付与処理技術を提供することである。
【課題を解決するための手段】
【0019】
本発明の一態様によれば、制御語を安全に取得するための受信装置が提案される。受信装置は、変換関数を記憶するように構成された第1のメモリを備える。変換関数は、変換された制御語およびシードを受け取るように構成され、かつ変換された制御語を、入力変換空間から出力変換空間に移動するように構成される。これにより、変換関数は、シードの制御下で、数学的な変換を用いて制御語を取得する。受信装置は、キャッシュメモリおよびキャッシュ制御モジュールをさらに備える。キャッシュ制御モジュールは、変換された制御語およびシードを傍受するように構成される。キャッシュ制御モジュールは、変換関数、変換された制御語(x)、およびシード(y)にマッチする制御語を求めてキャッシュメモリ内を検索するようにさらに構成される。キャッシュ制御モジュールは、制御語がキャッシュメモリ内で発見される場合、制御語を変換関数の出力に提供し、それにより、変換関数を迂回するようにさらに構成される。キャッシュ制御モジュールは、制御語がキャッシュメモリ内で発見されない場合、制御語およびシードを変換関数に提供し、制御語を変換関数から取得し、かつ制御語を、変換関数、変換された制御語(x)、およびシード(y)と関連付けて、キャッシュメモリに記憶するようにさらに構成される。
【0020】
本発明の一態様によれば、受信装置で安全に制御語を取得するための方法が提案される。受信装置は、変換関数を記憶するように構成された第1のメモリを備える。方法は、変換された制御語およびシードを受け取るステップを含む。方法は、キャッシュ制御モジュールで、変換された制御語およびシードを傍受するステップをさらに含む。方法は、変換関数、変換された制御語、およびシードにマッチする制御語を求めて、キャッシュメモリ内を検索するステップをさらに含む。方法は、制御語がキャッシュメモリ内で発見される場合、制御語を変換関数の出力に提供し、それにより、変換関数を迂回するステップをさらに含む。方法は、制御語がキャッシュメモリ内で発見されない場合、制御語およびシードを変換関数に提供するステップと、変換された制御語を変換関数内で入力変換空間から出力変換空間に移動させて、シードの制御下で数学的な変換を用いて制御語を取得するステップと、制御語を、変換関数、変換された制御語、およびシードと関連付けてキャッシュメモリに記憶するステップとをさらに含む。
【0021】
したがって、出力変換空間における制御語は、予想される結果が、変換関数に対する入力に基づいて、キャッシュメモリ内で入手可能である場合、変換関数により計算されない。これにより、制御語を取得するための計算効率が高くなる。
【0022】
出力変換空間は、平文の変換空間とすることができ、平文の制御語が得られる。得られた平文の制御語は、取得された後に暗号化され得る。出力変換空間は、制御語を平文の変換空間で取得するために制御語の変換をさらに必要とする、任意の他の変換空間であり得る。
【0023】
請求項2および10の実施形態は、有利に、一連の変換関数における後続する変換を可能にし、かつ/または変換された副鍵を、変換関数のツリーに結合し、その場合、中間的な結果は、計算を効率化するためにキャッシュされる。
【0024】
請求項3の実施形態は、有利に、計算の最終結果、すなわち、平文の制御語または暗号化された制御語が、コンテンツのスクランブルを解除するために、受信装置で使用されることを可能にする。
【0025】
請求項4の実施形態は、有利に、変換関数のコンピュータ符号および機能的挙動を難読化し、数学的な変換中に制御語に関する情報を取得するのをさらに困難にすることを可能にする。有利に、キャッシュされた中間的な結果が、従来の難読化されていないメモリに記憶され得ると共に、キャッシュメモリの実装を容易にし、かつ安価にすることができる。
【0026】
請求項5の実施形態は、有利に、汎用の計算環境内において単一のキャッシュ制御モジュールだけを用いたキャッシング機能を使用可能にする。
【0027】
請求項6の実施形態は、有利に、安全な計算環境内においてキャッシュ制御機能が実施されることを可能にし、キャッシングのキャッシュメモリ部分だけを汎用の計算環境内に残すようにする。こうすることにより、キャッシュ機能を実施するための汎用の計算環境の変更を、より少なくすることができる。
【0028】
請求項7の実施形態は、有利に、限定受信システムにおいて制御語を取得するためのスマートカードを用いたキャッシング機能を使用可能にする。
【0029】
請求項8の実施形態は、有利に、ネットワーク内でスマートカードを共用することを可能にし、その場合、中間的な結果は、各受信装置でキャッシュされることができる。
【0030】
本発明の一態様によれば、1つまたは複数の上記で述べた特徴を有する受信装置で使用するためのスマートカードが提案される。スマートカードは、安全な計算環境における第1のメモリを備える。第1のメモリは、変換関数を記憶するように構成される。変換関数は、変換された制御語およびシードを受け取るように構成され、かつ変換された制御語を、入力変換空間から出力変換空間に移動するように構成される。こうすることにより、変換関数は、シードの制御下で数学的な変換を用いて制御語を取得する。変換関数は、キャッシュ制御モジュールを含む。キャッシュ制御モジュールは、変換された制御語およびシードを傍受するように構成される。キャッシュ制御モジュールは、変換関数、変換された制御語(x)、およびシードにマッチする制御語を求めて、受信装置のキャッシュメモリ内を検索するようにさらに構成される。キャッシュ制御モジュールは、制御語がキャッシュメモリ内で発見される場合、制御語を変換関数の出力に提供し、それにより、変換関数を迂回するようにさらに構成される。キャッシュ制御モジュールは、制御語がキャッシュメモリ内で発見されない場合、制御語およびシードを変換関数に提供し、変換関数から制御語を取得し、かつ制御語を、変換関数、変換された制御語、およびシードと関連付けてキャッシュメモリに記憶するようにさらに構成される。
【0031】
したがって、キャッシング機能は、制御語を取得するためにスマートカードを使用する限定受信システムで使用可能となる。出力変換空間における制御語は、予想される結果が、変換関数に対する入力に基づいて、キャッシュメモリ内で入手可能である場合、変換関数により計算されない。それにより、スマートカードで制御語を取得する計算効率が高くなる。
【0032】
通常、従来のフォームファクタを有するスマートカードが実装される。スマートカード技術を実施する任意の他の計算装置、例えば、スマートカードエミュレーションソフトウェアを動作させるPCなどが、スマートカードに代えて使用され得る。
【0033】
本発明の一態様によれば、限定受信システムが提案される。限定受信システムは、ヘッドエンドシステムと、1つまたは複数の上記で述べた特徴を有する1つまたは複数の受信装置とを備える。ヘッドエンドシステムは、資格制御メッセージおよび資格管理メッセージを受信装置に送信するように構成される。資格制御メッセージは、変換された制御語を含む。資格管理メッセージは、1つまたは複数のシードを含む。
【0034】
したがって、キャッシング機能が限定受信システムで使用可能になり、変換された制御語を入力変換空間から出力変換空間に変換するために、変換された制御語が、ヘッドエンドシステムにより受信装置に提供される。出力変換空間における制御語は、予想される結果が、変換関数に対する入力に基づいて、キャッシュメモリ内で入手可能である場合、変換関数により計算されない。それにより、制御語を取得するための計算効率が高くなる。
【0035】
以降で、本発明の諸実施形態をさらに詳細に述べるものとする。しかし、これらの諸実施形態は、本発明の保護範囲を限定するものと解釈されるべきではないことを理解されたい。
【0036】
本発明の諸態様は、図面で示された例示的な諸実施形態を参照して、より詳細に説明されよう。
【図面の簡単な説明】
【0037】
【図1A】ソフトウェア改ざん耐性技術で使用されるapply原始関数の従来技術のブロック図である。
【図1B】ソフトウェア改ざん耐性技術で使用されるremove原始関数の従来技術のブロック図である。
【図1C】ソフトウェア改ざん耐性技術で使用されるcondition原始関数の従来技術のブロック図である。
【図1D】ソフトウェア改ざん耐性技術で使用されるremoveおよびapply原始関数の組み合わせの従来技術のブロック図である。
【図1E】ソフトウェア改ざん耐性技術で使用される合成物の安全な相関の従来技術のブロック図である。
【図2】従来技術の簡単化した分割鍵配信プロセスを示す図である。
【図3】受信装置における従来技術の分割鍵配信プロセスを示す図である。
【図4】本発明の例示的な実施形態の変換関数を示す図である。
【図5】本発明の例示的な実施形態のキャッシングを用いる変換関数を示す図である。
【図6】本発明の例示的な実施形態のキャッシングを用いる変換関数を示す図である。
【図7】本発明の例示的な実施形態の一連の2つの変換関数を示す図である。
【図8】本発明の例示的な実施形態のキャッシングを用いる一連の2つの変換関数を示す図である。
【図9】本発明の例示的な実施形態の受信装置におけるキャッシングを用いる分割鍵配信プロセスを示す図である。
【図10】本発明の例示的な実施形態の受信装置およびスマートカードを示す図である。
【図11】本発明の例示的な実施形態のスマートカードを共用する2つの受信装置を示す図である。
【図12】本発明の例示的な実施形態のネットワークを介してスマートカードを共用する2つの受信装置を示す図である。
【図13】本発明の例示的な実施形態の限定受信システムを示す図である。
【図14】本発明の例示的な実施形態の受信装置において制御語を取得するための方法の諸ステップを示す図である。
【図15】変換関数および暗号化を一般的な用語で明確化する図である。
【図16A】数学的な変換を行う関数のブロック図である。
【図16B】シードの制御下で、数学的な変換を行う関数のブロック図である。
【図17A】apply原始関数のブロック図である。
【図17B】remove原始関数のブロック図である。
【図17C】condition原始関数のブロック図である。
【図17D】removeおよびapply原始関数の組み合わせのブロック図である。
【図17E】合成物の安全な相関のブロック図である。
【図18】制御語を取得するために変換演算を行う受信装置の説明用の例を示す図である。
【発明を実施するための形態】
【0038】
キャッシングは、前に使用されたデータを、再計算する代わりに、それがどのような形式であっても、記憶して再使用することを可能にする、コンピュータ科学における知られた最適化技術である。キャッシュが無限のサイズを有することはないので、キャッシュされたデータは、通常、例えば、LRU(Least Recently Used:ほとんど最近使用されていない)アルゴリズム、MRU(Most Recently Used:最も最近使用されている)アルゴリズム、またはLFU(Least Frequently Used:最も使用頻度が低い)アルゴリズムなど、利用パターンアルゴリズムに基づいて保持されるか、あるいは破棄される。
【0039】
資格変換ツリーの実施形態の従来技術の例が図3で示されている。本発明は、資格変換ツリーにおける中間的な結果をキャッシュすることを可能にし、それにより、計算効率を高めるようにする。キャッシング機能は、条件付き資格付与処理の改ざん耐性に影響を与えることなく、汎用の計算環境で実施できるように作成される。
【0040】
資格変換ツリーにおける中間的な値、例えば、図3に示されたCWDKCTU2は、資格変換ツリーにおける一連の関数およびシードの枠内で有用であるに過ぎないので、非機密性のデータと見なすことができる。その結果、中間的な値は、安全性を低下させることなく、キャッシュするために汎用の計算環境で記憶されることができる。
【0041】
通常、高い頻度で変化する副鍵の2つの連続する生成間で一定のままである中間的なデータ値がキャッシュされる。キャッシングは、高い頻度で変化する副鍵に対する中間的な値に限定されないこと、またほとんど変化しない副鍵に対する中間的な値が同様にキャッシュできることも理解されよう。すべての中間的な値が、CWそれ自体の2つの連続する生成間で変化しない場合、得られたCWをキャッシュさせることが可能である。後者の場合、通常、CWは、{CW}CSSKなどの暗号化された形でキャッシュされる。
【0042】
キャッシング機能は、関連するキャッシング参照符と共に、1つまたは複数の中間的な値および/または最終結果の値を記憶することにより実施される。通常、キャッシング参照符は、変換されたCW、シード、および/または合成物などの入力値、ならびに中間的な値もしくは最終結果値を計算するために入力値が入力される関数の指標、またはその関数に対する参照符を含む。
【0043】
資格変換ツリーにおけるCWの計算は、一連の変換関数からなる。キャッシングを含まない知られた例が図3で示されている。図1A〜1Eで示されるものなどの変換関数は、その処理状態を保持せず、また、通常、入力が正しい場合に限って意味的に正しい出力値を生成できる点で条件付きである。
【0044】
各変換関数は、概して、図4で示すように表すことができる。図4は、2つの入力aおよびbを有し、1つの出力cを生成する変換関数Fを示す。入力aおよび/またはb、ならびに出力cは、数学的変換により保護されており、データ値x、yおよびzを、受信装置の汎用の計算環境などの信頼性のないドメインで処理し、記憶することを可能にする。
【0045】
図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に直接提供する。
【0046】
図6は、本発明の例示的な実施形態の追加されたキャッシング機能を備える変換関数Fを示す。図6の実施形態では、キャッシュ制御がキャッシュに追加されている。キャッシュ制御は、入力データ値xおよびyを、それぞれ、変換関数Fの入力aおよびbに送る。関数Fは値zを含む出力を生成する。関数は、処理状態を保持しないので、入力値xおよびyの同じ組が、常に、変換関数Fによって同じ出力値zへと処理される。出力zは、後の同様の演算の計算を最適化するためにキャッシュに記憶される。キャッシュは、入力xおよびyの所与の組み合わせに対して得られる出力値zがキャッシュ内で入手可能ではない場合に限って、関数Fを活性化するキャッシュ制御関数を有する。所与の組み合わせxおよびyに対する出力値zがキャッシュされている場合、キャッシュは、出力値zを、出力cに直接提供する。
【0047】
図5および図6の例では、キャッシュは、関数出力値zを、1組の関数入力パラメータ値x、yとリンクさせる。これに関して、簡単なURLスタイルのストリングが、キャッシング参照符として使用されることができる。代替的には、任意の他の知られたデータ構造が、キャッシング参照符を実施するために使用されることもできる。キャッシング参照符ストリングの例は、「Fc?Fa=x&Fb=y」であり、入力「Fa」に値「x」を、入力「Fb」に値「y」を使用して、変換関数「F」から結果「Fc」を計算することを記述している。キャッシング参照符「Fc?Fa=x&Fb=y」は、関連する関数結果「z」と共にキャッシュに記憶される。
【0048】
例として、以下の表は、「F(x,y)=z」および「F(u,v)=w」の計算を行った後、キャッシュメモリに記憶されるキャッシュエントリを示す。
【0049】
【表1】
【0050】
次に関数Fが活性化されるときには、キャッシュは、まず、その計算に対する結果が、前に完了しているかどうかを判定する。キャッシュヒットがある場合、計算は実行されず、それに代えて、キャッシュ結果が使用される。
【0051】
図7は、本発明の例示的な実施形態を示しており、一連の2つの変換関数が、出力yを生成する。変換関数FおよびGのそれぞれが、図4で述べた関数Fと同様に演算を行い、また図5または図6で述べたキャッシング機能を備えている。
【0052】
出力「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」に返される。これらの演算の後、以下のキャッシュエントリが、キャッシュメモリに記憶される。
【0053】
【表2】
【0054】
キャッシング演算は、変換ツリーの構造を考慮することにより最適化され、また単一のストリングとして一連の変換関数を組み合わせた結果をキャッシュすることができる。こうすることにより、キャッシュメモリに対するアクセスが低減される。例えば、この最適化を用いた図7の例では、2つのキャッシュヒットに代えて、単一のキャッシュヒットが、出力値yを生成することもできる。これに関して、図7の例のキャッシュ内容は、キャッシュ表における以下のエントリを用いて拡張される。
【0055】
【表3】
【0056】
図5および図6で示すように、キャッシュ制御は、変換関数周りの、またはキャッシュメモリ周りのラッパー(wrapper)として実装される。両方の実装形態で、キャッシュ制御は、変換関数モジュールを条件付きで活性化するように、かつ変換関数に関連する入力を提供するように構成される。
【0057】
図8は、バス構造を用いてキャッシュ制御装置に接続された2つの変換関数FおよびGの例を示す。キャッシュ制御装置は、バスを介して、すべての変換関数モジュールに接続される。こうすることにより、データu、v、w、x、およびyを、それぞれ、変換関数FおよびGの入力Fa、Fb、Ga、Gb、および出力Fc、Gcに提供することができる。出力値がキャッシュメモリ内に記憶されていない場合、変換関数モジュールを活性化するために、キャッシュ制御インターフェースが使用される。
【0058】
図8のキャッシュ制御装置は、図6で示されたキャッシュ制御と同様に動作する。図5で示したキャッシュ制御の動作と同様に、図8で示されたバス構造を、各変換関数FおよびGにおけるキャッシュ制御機能と共に使用できることが理解されよう。
【0059】
キャッシュエントリに対する検索、および変換関数を条件付きで活性化することに加えて、キャッシュ制御装置は、任意選択で、キャッシュの記憶サイズを管理するために、使用されないキャッシュエントリを除去するように構成される。これに関して、キャッシュ制御装置は、最も関連のある情報だけをキャッシュに保持することを保証するために、任意の知られたキャッシュ管理技法を使用することができる。
【0060】
図9は、キャッシング最適化で拡張された資格変換ツリー実施形態の例を示す。図9の資格変換ツリーにおける変換関数は、図3で示す資格変換ツリーの変換関数と同様のものであり、同様の変換関数シーケンスが使用される。図9の例では、変換ツリーにおけるすべてのデータが、キャッシュ制御装置と、「データ」で示されたデータインターフェースとを通る。キャッシュ制御装置は、更に、キャッシュ制御インターフェースを介して、変換関数モジュールの活性化を制御する。
【0061】
図9は、受信装置の2つの部分、すなわち、安全な計算環境および汎用の処理環境を示している。汎用の処理環境は、ストレージ、データ通信、およびユーザ対話など、外部インターフェースを扱う。安全な計算環境は、鍵および/またはシードの処理を扱う。処理は、通常、1つまたは複数のプロセッサ(図示せず)により行われる。
【0062】
ECM配信経路は、ヘッドエンドシステムから資格制御メッセージ(ECM)を受け取るために使用される。ECMは、暗号化された、または変換されたCWを含む。EMM配信経路は、ヘッドエンドシステムから資格管理メッセージ(EMM)を受け取るために使用される。EMMは、暗号化された、または変換されたCWを復号または変換するための鍵またはシードを含む。ECM配信経路およびEMM配信経路は、通常、ECMおよびEMMを受け取るための入力モジュールに実装される。
【0063】
図9の例では、汎用の計算環境は、キャッシュ制御装置およびキャッシュメモリとして実装されるキャッシング機能を含む。キャッシュ制御装置を介して、データは、ECM配信経路およびEMM配信経路からキャッシュメモリに流れ、そしてキャッシュメモリ、変換関数(RPAG1,RG1AU1,およびRG2CvectorAU2)、およびTDES暗号化ホワイトボックスの間で流れる。
【0064】
この例では、変換関数に対して、以下のエイリアス、すなわち、F=RPAG1,G=RG1AU1、およびH=RG2CvectorAU2が使用される。Fは、2つの入力FaおよびFbと出力Fcとを有し、Gは、2つの入力GaおよびGbと出力Gcとを有し、そしてHは、2つの入力HaおよびHbと出力Hcとを有する。F、G、およびHのすべての入力および出力は、データバスを介してキャッシュ制御装置に接続される。
【0065】
ECM配信経路を介して、変換空間Pにおける変換された制御語、すなわち、CWDTPが受け取られる。EMM配信経路を介して、シード<P,G1>、<G1,U1>、<G2,U2,n>、および<CSSK,U1,U2>が受け取られる。EMM配信経路を介してさらに、変換空間G2における制御語差分鍵CWDKとベクトルの合成物、すなわち、
【数1】
が、グループメンバーシップ検査のために受け取られる。
【0066】
キャッシュ制御装置は、Faに対してCWDTPであり、Fbに対して<P,G1>である、入力値にマッチする変換関数Fのキャッシュされた出力値を求めてキャッシュメモリを検索する。キャッシュされた出力値が発見される場合、キャッシュされている値が、関数Fを呼び出すことなく、Fcに提供される。出力値が発見されない場合、データバスを介して、CWDTPがFaに提供され、また<P,G1>がFbに提供される。キャッシュ制御インターフェースを介して、命令がキャッシュ制御装置から変換関数Fに与えられ、FaおよびFbにおける入力データを使用して出力値を生成し、その結果を、Fcおよびデータバスを介してキャッシュ制御装置に返す。その結果は、キャッシュメモリに記憶され、キャッシュメモリは、現在、以下のエントリを含むことになる。
【0067】
【表4】
【0068】
次に、キャッシュ制御装置は、Gaに対するFの出力値であり、そしてGbに対する<G1,U1>の出力値である、入力値にマッチする変換関数Gのキャッシュされた出力値を求めてキャッシュメモリを検索する。キャッシュされた出力値が発見される場合、キャッシュされた値が、関数Gを呼び出すことなく、Gcに提供される。出力値が発見されない場合、データバスを介して、この例では、
【数2】
であるFの出力値がGaに提供され、また<G1,U1>がGbに提供される。キャッシュ制御インターフェースを介して、命令がキャッシュ制御装置から変換関数Gに与えられて、GaおよびGbにおける入力データを用いて出力値を生成し、その結果を、Gcおよびデータバスを介してキャッシュ制御装置に返す。その結果は、キャッシュメモリに記憶され、キャッシュメモリは、現在、以下のエントリを含むことになる。
【0069】
【表5】
【0070】
代替的には、または任意選択で、変換関数FおよびGにより入力を処理した後の結果は、単一のエントリとしてキャッシュメモリに記憶され、入力値Fa=CWDTP、Fb=<P,G1>、およびGb=<G1,U1>を用いた単一のステップで、変換関数Gの結果をキャッシュメモリ内で発見することを可能にする。そのとき、キャッシュメモリは、例えば、以下のエントリを含む。
【0071】
【表6】
【0072】
グループメンバーシップ検査のために、キャッシュ制御装置は、Haに対して<G2,U2,n>であり、かつHbに対して
【数3】
である、入力値にマッチする安全な相関関数Hのキャッシュされた出力値を求めて、キャッシュメモリを検索する。キャッシュされた出力値が発見される場合、キャッシュされた値は、関数Hを呼び出すことなくHcに提供される。出力値が発見されない場合、データバスを介して、<G2,U2,n>がHaに提供され、かつ
【数4】
がHbに提供される。キャッシュ制御インターフェースを介して、命令がキャッシュ制御装置から安全な相関関数Hに与えられて、HaおよびHbに関する入力データを用いて出力値を生成し、その結果をHcおよびデータバスを介してキャッシュ制御装置に返す。その結果は、キャッシュメモリに記憶され、キャッシュメモリは、現在、以下のエントリを含むことになる。
【0073】
【表7】
【0074】
最後のステップでは、GcおよびHcの出力データ、すなわち、それぞれ、
【数5】
が、{CW}CSSKを生成するために、データバスを介して、シード<CSSK,U1,U2>と共にTDES暗号化ホワイトボックスに提供される。得られた{CW}CSSKは、通常、このデータが汎用の計算環境内で取得されることを阻止するために、キャッシュメモリにはキャッシュされない。
【0075】
安全な計算環境における変換ツリーの実施形態は、図9の例に限定されない。一連の変換関数には、通常2つ以上の変換関数が存在する。変換関数は、1つまたは複数の枝を備えた資格変換ツリーを形成することができる。各変換関数は、任意の知られた変換関数であり得る。TDES暗号化ホワイトボックスに代えて、任意の他の暗号化関数が、変換された制御語から暗号化された制御語を生成するために使用されることができる。代替的には、TDES暗号化ホワイトボックスに代えて、remove原始関数が、変換された制御語から平文の制御語を生成するために使用されることができる。
【0076】
キャッシングは、変換シーケンスにおけるすべてのステップに対して効率的ではない可能性がある。例えば、特定の変換関数に対してキャッシュヒット率が低いと予想される場合、変換関数を実行する前にキャッシュメモリにアクセスすることにより、キャッシング機能が、実際には、全体の処理性能を低下させるおそれがある。全体の処理性能のこのような低下を回避するために、キャッシング機能を有しない1つまたは複数の変換関数モジュールを実装することができ、その結果、その入力値は、キャッシュヒットを求めて検索することなく変換関数モジュールにより処理されて、出力値が生成される。
【0077】
図9の例では、汎用の計算環境および安全な計算環境は、受信装置の一部である。代替的には、安全な計算環境がスマートカード中に実装され、汎用の計算環境が受信装置中に実装される。
【0078】
従来のフォームファクタを有するスマートカードに代えて、スマートカード技術を実施する任意の他のコンピューティング装置、例えば、スマートカードエミュレーションソフトウェアを動作させるPCなどが、スマートカードとして使用されることができる。
【0079】
図10は、デジタルテレビ受信装置のようなセットトップボックス(STB)と、例えば、スマートカードをSTBに挿入することにより、STBと通信可能に接続されるスマートカードとを含む簡単化したアーキテクチャを示している。STBにより受信されたEMMおよびECMは、スマートカードにより処理される前にEMM/ECMストレージに記憶されることができる。スマートカードは、ECMおよびEMMから、それ自体知られた任意の方法でデータを取得するが、そのデータには、スマートカードの安全な計算環境における資格変換ツリーに対する入力データが含まれている。変換関数および/または安全な相関関数に対する入力、そして変換関数および/または安全な相関関数からの出力は、STB内のキャッシュに記憶される。
【0080】
2つ以上のネットワーク化された装置に共通のスマートカードを共用させることも可能である。図11の例では、2つのSTBがそれぞれ、ヘッドエンドシステムから受信したECMおよびEMMを、EMM/ECMストレージにより示された不揮発性メモリ内に暗号化された形式で記憶する。挿入されたスマートカードを有しないSTBは、ネットワークを介し、かつスマートカードが挿入されたSTBの仲介により、スマートカードに対する安全な接続を確立する。スマートカードは、受信装置から1つまたは複数のECM、および関連するEMMを受け取り、スマートカードの安全な計算環境内でECMおよびEMMを復号して、変換関数モジュールのための入力データを取得する。変換関数の出力値は、STBのローカルなキャッシュに記憶するために、安全な接続を介してSTBに送られる。
【0081】
図11の例の代替形態が図12で示されており、その場合、スマートカードが、STBのうちの1つに挿入されるのではなく、ネットワークと通信可能に接続され、各STBは、ネットワークを介してスマートカードにアクセスする。
【0082】
STBは、通常、スマートカードよりも多くの記憶空間を有する。したがって、図10〜12の例では、キャッシュメモリはSTBに実装される。代替的には、キャッシュメモリをスマートカード内に実装することも可能である。
【0083】
図13は、本発明の例示的な実施形態の限定受信システムを示す。ヘッドエンドシステムが、ECMおよびEMMを、配信ネットワークを介して、1つまたは複数の受信装置に送信する。ECMは、通常、例えば、図9のCWDTPなど、変換された制御語を含み、それは、受信装置の安全な計算環境内で、資格変換ツリーにより処理される。安全な計算環境は、受信装置に対して通信可能に接続されたスマートカード内に実装することができる。EMMは、通常、変換された制御語を変換するのに使用される、例えば、図9の<P,G1>および<G1,U1>などの1つまたは複数のシードを含む。グループメンバーシップ検査データなど他のデータも同様に、EMMで送信されることができる。複数のEMMが、データを送信するために使用されることができる。
【0084】
図14では、本発明の例示的な実施形態の受信装置により実施される諸ステップが、概略的に示されている。ステップ101で、変換された制御語およびシードが受け取られる。ステップ102で、変換された制御語およびシードが、キャッシュ制御モジュールで傍受される。ステップ103で、変換関数、変換された制御語、およびシードにマッチする制御語が、キャッシュメモリ内で検索される。ステップ104で、検索結果が解析される。制御語が発見される場合、それは、ステップ105で、変換関数の出力に提供されて、それにより、変換関数が迂回される。制御語が発見されない場合、ステップ106で、制御語は、シードと共に変換関数に提供される。ステップ107で、変換された制御語は、入力変換空間から出力変換空間に移動され、シードの制御下で数学的変換を用いて制御語が取得される。ステップ108で、制御語は、変換関数、変換された制御語、およびシードと関連付けられて、キャッシュメモリに記憶される。ステップ108は、次に同じ入力値を有する同じ変換関数が呼び出されたときに、ステップ103におけるキャッシュヒットを可能にする。
【0085】
上記で論じたように、データおよびソフトウェアの難読化技法は、中間的な結果を難読化するために変換関数を利用することができる。本開示で使用される変換関数の概念は、暗号化とは異なる。その差は、概して、図15および以下で述べる論議を参照することによりさらに明確化される。
【0086】
非変換データ空間内に複数のデータ要素を有する入力ドメインIDが存在するものと仮定する。入力ドメインIDのデータ要素を入力として受け入れ、対応する暗号化されたデータ要素を出力ドメインODに渡すように構成された、何らかの鍵を使用する暗号化関数Eが定義される。復号関数Dを適用すること、すなわち、復号関数Dを出力ドメインODのデータ要素に適用することにより、入力IDの元のデータ要素を得ることができる。安全ではない環境(通常、「ホワイトボックス」と呼ばれる)では、敵対者は、入力および出力データ要素を知り、かつ実行中に暗号化関数Eの内部にアクセスできることが想定される。この環境では、特別の予防策をとらない限り、秘密(例えば、暗号化/復号関数で使用される鍵)は、敵対者によって容易に導出されることができる。
【0087】
変換関数を入力ドメインIDおよび出力ドメインODに適用することにより、さらなる安全性を、安全ではない環境内で得ることができ、すなわち、変換関数は、入力演算および出力演算である。変換関数T1は、データ要素を、入力ドメインIDから、変換されたデータ空間の変換された入力ドメインID'における変換されたデータ要素に写像(map)する。同様に、変換関数T2は、データ要素を、出力ドメインODから、変換された出力ドメインOD'に写像する。この場合、変換された暗号化関数E'および復号関数D'は、変換された鍵を用いてID'とOD'の間で定義されることができる。逆変換が行われる場合、例えば、結果が非変換空間に伝達される場合には、T1およびT2は全単射である。
【0088】
暗号化技法と共に変換関数T1およびT2を使用することは、出力ドメインODの暗号化されたデータ要素を得るために、入力ドメインIDのデータ要素を暗号化関数Eに入力するのではなく、変換関数T1を適用することにより、ドメインID'の変換されたデータ要素が、変換された暗号化関数E'に入力されることを示唆している。変換された暗号化関数E'は、鍵などの秘密情報を保護するために、暗号化演算において、逆変換関数T1-1と変換関数T2を組み合わせる。次いで、ドメインOD'の変換された暗号化データ要素が取得される。暗号化関数E、または復号関数Dに対する鍵は、変換されたデータ空間内で入力データおよび出力データを解析した場合には、取り出すことができない。こうすることにより、安全ではない環境で演算された場合であっても、敵対者に対して鍵が保護されることが保証される。具体的には、連続したメモリにおける平文において、システムは、変換することにより、鍵のどの部分も、または鍵から導出されるどの値も決して明らかにしないようにすることができる。言い換えると、変換は、変換された空間でデータに変換を適用し、かつ演算を行うことにより、データを難読化する。いくつかの実施形態では、これらの変換関数は、ランダムに生成される。
【0089】
データを難読化するために変換を使用する利点は、これらの変換の入力値および出力値を、これらの入力値および出力値が敵対者には無用のものになる特徴により、汎用の(安全ではない)計算環境に記憶またはキャッシュさせることを可能にすることである。それとは対照的に、変換されない暗号化関数の入力値および出力値は、汎用の計算環境内に記憶またはキャッシュされることはできない。敵対者に対して有用になる可能性があるので、暗号化および復号鍵/平文鍵の対などの、これらの値は、安全ではないメモリにキャッシュ及び記憶されるべきではない。
【0090】
変換関数T1およびT2の一方は、非自明の関数とすべきである。T1が自明な関数である場合、入力ドメインIDおよびID'は同じドメインである。T2が自明な関数である場合、出力ドメインが同じドメインである。
【0091】
図16Aで示す関数Fは、INおよびOUTで識別される2つの異なる変換空間にわたってデータZを移動する数学的な演算である。出力変換空間OUTの次元は、少なくとも入力変換空間INと同様の大きさであり、そして任意のデータZは、入力変換空間および出力変換空間の両方において、それぞれ、XおよびYで表される(一意ではない可能性がある)。関数Fは、逆方向に動作することが困難であるように設計される。入力変換空間と出力変換空間との間に明らかな写像(mapping)が存在しないこと、および変換空間INおよびOUTの次元が、好ましくは、非常に大きいことのために、関数Fを再現することは阻止される。さらに、関数Fは、例えば、ホワイトボックス技法、および/または他の符号難読化技法を用いて、データZが関数を通過するとき、それを抽出することが困難であるような方法で実施される。
【0092】
図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進値に対して実施することが計算上効率的であるように選択される。
【0093】
関数Fは、図16Bで示されるように、さらなるパラメータSをシードとして用いることのできる数学的な演算と定義されることができる。関数Fが行う移動は、通常、シードSにより定義される。このタイプのシードが導入された変換関数は、通常、入力空間INおよび出力空間OUTに関する情報がFに埋め込まれていない場合に関して使用される。関数Fは、入力データXまたはシードSの操作が、出力変換空間において、予測できない結果のデータYを生じさせるように選択される。シードSは、変換空間INまたはOUTに関する情報を何も抽出できないように作成されているので、安全な環境内で安全に保護または記憶される必要はない。
【0094】
図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として、正しく得ることができる。
【0095】
入力変換空間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である。
【0096】
シード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である。
【0097】
上記の例では、Z、X、Y、およびSは、簡単な加算および減算数学を用いて変換するために使用できる数である。Z、X、Y、およびSは、2進値、数、文字、単語、その他種々のものを含む任意のデータ形式のデータであり得ることが理解されることになる。関数Fは、より複雑な関数とすることができ、さらに、例えば、2進値、数、文字、または単語に対して演算を行うのに適したものとすることができる。図1A〜Eと同様に、図17Aは、基本原始関数をさらに詳細に説明している。
【0098】
図17Aでは、関数A(Data,S)=AS(Data)=DataTSは、入力シードSを用いて、入力データを変換されたDataTSに変換するapply原始関数を定義する。図17Bでは、関数R(DataTS,S)=RS(DataTS)=Dataは、出力データを得るために、シードSを用いて、入力DataTSの変換を逆に行うremove原始関数を定義する。シードSは、互いに逆になるように、2つの関数A( )およびR( )に対して同一である必要がある。
【0099】
元のデータおよびその変換された変形体DataTSは、通常、同じサイズ、すなわち、同じビット数で表され、そのサイズに基づいて、そのデータ(Data)が、特定の変換された空間内にあるかどうかを判定することを不可能にする。
【0100】
図17Cでは、関数C(Data1,Data2)=CData1(Data2)=DataCは、条件付き変換を定義し、その場合、出力DataCは、2つの入力Data1およびData2の相関である。condition原始関数は、通常、入力データおよび出力データのサイズを保存し、そのデータ(Data)が、相関の結果であるかどうかの判定を不可能にする。
【0101】
apply原始関数、remove原始関数、およびcondition原始関数などの原始関数は、組み合わせられることができる。その組み合わせは、個々の原始関数を見分けることのできない新しい演算を生成する。
【0102】
図17Dは、remove原始関数とapply原始関数の組み合わせの例を示す。変換演算は、入力DataTPに適用される組み合わされたremoveおよびapply演算に対する入力として、合成物<P,S>を使用する。RPAS関数は、出力DataTSを得るために、入力DataTPを、入力変換ドメインPから出力変換ドメインSに写像する。組み合わされたremoveおよびapply演算のすべての入力および出力は変換されるか、あるいは合成物の形式になる。演算は、変換されたデータに適用され、変換されたデータを生成する。したがって、変換演算は、変換されたドメイン空間で行われ、そしてどのインターフェース上においても個々のパラメータ、または変換されていないデータを明らかにすることはない。合成物<P,S>を作成するために使用される関数は、好ましくは、一意のものであり、組み合わされたapplyおよびremove演算の実施にリンクされる。
【0103】
図17Eは、2つの入力合成物<P,S,Q1>および<DataTP,Q2>に対する安全な相関演算の例を示す。RPCQAS関数は、remove、conditionおよびapply原始関数を組み合わせて、それにより、出力
【数6】
を作成する。
【0104】
図18は、限定受信装置の受信装置において実施される変換経路の説明用の例を示す。受信装置は、通常、少なくとも一部が、ソフトウェアとして、またはプログラム可能なアレイにおけるフィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA)プログラムとして実装される。受信装置は、プロセッサの保護されていないメモリ、部分的に保護されたメモリ、かつ/または安全なメモリを備える。プロセッサは、メモリに記憶された関数を実行して、秘密のデータZを、入力変換空間INから出力変換空間OUTに移動するように構成される。秘密のデータZは、抽出または傍受することはできず、したがって、例えば、不法に他の受信装置に配信されることはできない。
【0105】
受信装置は、資格制御メッセージECM内の大域的に変換された制御語CWDTPとして制御語CWを受け取る。受信装置は、CWDを、入力変換空間Pから、受信装置の最終的な出力変換空間CSSKに、3ステップで移動する。最後の移動ステップで、変換された制御語{CW}CSSKが生成されるが、それは、受信装置に一意であるクラスタ共用秘密鍵(CSSK)の出力変換空間における制御語CWである。
【0106】
受信装置は、汎用の計算環境および安全な計算環境を備える。
【0107】
汎用の計算環境は、ヘッドエンドシステムからECMを受け取るためのECM配信経路を備える。汎用の計算環境は、ヘッドエンドシステムから資格管理メッセージ(EMM)を受け取るためのEMM配信経路をさらに備える。EMMは、様々な変換空間を通り、変換経路に沿ってCWDTPを移動させるために使用されるシードを備える。EMMで受け取られたシードは、汎用の計算環境のNVRAMメモリに記憶される。第1のシードは、合成物<P,G1>に等しい。第2のシードは、合成物<G1,U1>に等しい。第3のシードは、合成物<CSSK,U1>に等しい。
【0108】
安全な計算環境は、一連の変換関数を備える。第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を用いて、限定受信装置により復号されることができる。
【0109】
受信装置における変換経路は、図18で示された例に限定されるものではないこと、ならびに任意の数および任意の種類の変換演算を含み得ることが理解されるべきである。
【0110】
本開示の一実施形態は、コンピュータシステムと共に使用するためのプログラム製品として実施されることができる。プログラム製品のプログラムは、諸実施形態(本明細書で述べた方法を含む)の関数を定義し、かつ、様々なコンピュータで読取り可能な非一時的記憶媒体に含まれることができる。コンピュータ可読記憶媒体は、非一時的記憶媒体であり得る。例示的なコンピュータ可読の、かつ/または非一時的な記憶媒体は、これだけに限らないが、(i)情報が永続的に記憶される書込み不能な記憶媒体(例えば、CD-ROMドライブにより読取り可能なCD-ROMディスク、フラッシュメモリ、ROMチップ、または任意のタイプの固体素子不揮発性の半導体メモリなど、コンピュータ内の読取り専用メモリ装置)、および(ii)変更可能な情報が記憶される書込み可能な記憶媒体(例えば、ディスケットドライブ内のフロッピー(登録商標)ディスク、またはハードディスクドライブ、あるいは任意のタイプの固体素子ランダムアクセス半導体メモリ)を含む。さらに、本開示は、上記で述べた諸実施形態に限定されず、本開示の範囲を逸脱することなく、添付の特許請求の範囲内で変更されることができる。
【0111】
いずれか1つの実施形態に関して述べられたいずれの特徴も、単独で、または前述の他の特徴と組み合わせて使用することができ、さらに、任意の他の実施形態の1つまたは複数の特徴と組み合わせて、あるいは任意の他の実施形態の任意の組み合わせで使用できることが理解されるべきである。さらに、上記で述べられていない均等な形態および変形形態もまた、添付の特許請求の範囲で定義される本発明の範囲を逸脱することなく使用されることができる。
【符号の説明】
【0112】
x 制御語
y シード
z 制御語
F 変換関数
G 変換関数
【技術分野】
【0001】
本発明は、変換関数を用いて、制御語を計算的に効率よく取得するための受信装置、スマートカード、限定受信システム(CAS: Conditional Access System)、および方法に関する。
【背景技術】
【0002】
デジタルテレビ受信装置において、鍵の保管および資格付与処理ステップを保護するために、ソフトウェア改ざん耐性を利用した有料テレビ放送システムなどの限定受信システムが知られている。
【0003】
ソフトウェア改ざん耐性技術は、ソフトウェアの符号変換を不明瞭にするために基本原始関数を使用する。基本原始関数の例は、「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つの入力の相関になる。
【0004】
シードSは、複数のデータ要素の混合体から構成することができる。こうすることにより、シードから個々のデータ要素を抽出することが困難になる。パラメータ混合関数は、通常、f(A,B)=<A,B>で示される。関数結果<A,B>は、AとBの合成物(compound)と呼ばれる。本明細書では、これ以降、シードおよび合成物を共に「シード」と呼ぶものとする。
【0005】
原始関数は、通常、限定受信システム(CAS)に鍵管理関数を実装する場合に組み合わされる。原始関数を組み合わせると、個々の原始関数をもはや識別できなくなる新しい関数が得られる。原始関数の組み合わせの知られた例は、removeおよびapply原始関数と、合成物の安全な相関との組み合わせである。
【0006】
図1Dは、removeとapply原始関数の組み合わせの例を示す。変換は、組み合わされたremoveおよびapply演算において合成物<P,S>を使用する。関数RPASは、シードPを用いた変換をシードSを用いた変換で置き換えることにより、入力データを変更し、すなわち、DataTPがDataTSに変換される。
【0007】
図1Eは、合成物の安全な相関の例を示す。それは、通常、条件付き資格付与処理に対して使用され、また基本原始関数apply、remove、およびconditionの組み合わせを含む。条件関数は、図1DのremoveおよびapplyブロックRPASと組み合わされて、合成物の安全な相関を行うことができる。
【0008】
条件付き資格付与処理、および制御語CWの取得のための方法および受信装置は、参照により本出願に組み込まれている、関連の欧州特許出願第09155007.9号に記載されている。
【0009】
図2は、EP09155007.9に記載の分割鍵配信の例を示す。図2において、CWは、3つの副鍵CW1、CW2、およびCW3から生成される。副鍵CW1、CW2、およびCW3は、それぞれ、シードP、G、およびUの保護の下に分配される。これに関して、CW1は、変換空間Pにおいて数学的に変換された形で分配され、CW2は、変換空間Gにおいて数学的に変換された形で分配され、またCW3は、変換空間Uにおいて数学的に変換された形で分配される。
【0010】
図3は、EP09155007.9に記載された受信装置におけるCW処理の例を示す。図3では、CWは副鍵から生成され、メンバーシップ検査が行われる。処理は、2つの基本的な部分に、すなわち、安全な計算環境および汎用の処理環境に分割される。汎用の処理環境および安全な計算環境における関数モジュールは、入力された変換されたCW、例えばCWDTPを、受信装置特有の鍵を用いて暗号化されたCW、例えば{CW}CSSKに変換するための資格変換ツリーを形成する。汎用の処理環境は、ストレージ、データ通信、およびユーザ対話などの外部インターフェースを扱う。安全な計算環境は、鍵および/またはシードの処理を扱う。
【0011】
ECM配信経路は、ヘッドエンドシステムからECM(entitlement control messages:資格制御メッセージ)を受信するために使用される。ECMは、暗号化された、または変換されたCWを含む。EMM配信経路は、ヘッドエンドシステムからEMM(entitlement management messages:資格管理メッセージ)を受信するために使用される。EMMは、暗号化された、または変換されたCWを、復号または変換するための鍵またはシードを含む。
【0012】
安全な計算環境におけるソフトウェア改ざん耐性のある原始関数は、傍受された場合に攻撃者には有用ではない入力および出力を有する。変換された制御語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暗号化ホワイトボックスに提供される。
【0013】
図3の条件付き資格付与処理は、グループメンバーシップ検査を実施するために、安全な相関関数RG2CvectorAU2を使用する。相関計算の結果は、変換空間U2における制御語差分鍵CWDK、すなわち、CWDKCTU2である。CWDKCTU2およびCWDTU1は、TDES暗号化ホワイトボックスにおいてCWの計算に使用される副鍵である。
【0014】
図2のCW1、CW2、およびCW3、ならびに図3のCWDKCTU2およびCWDTU1などの副鍵は、異なる存続期間を有する可能性がある。例として、CW1は、10秒ごとになど、規則的に変化し、CW2は、日数で測定して散発的に変化し、またCW3は月数で測定して非常にまれに変化する可能性がある。
【0015】
変換された副鍵からCWを得るための、知られたソフトウェア改ざん耐性のある条件付き資格付与処理技術は、副鍵の異なる存続期間を考慮していない。その結果、CWを得るために、常に、条件付き資格付与処理におけるすべての中間的演算が行われる。各中間的演算の実行は、プロセッササイクルの点から費用がかかる。
【0016】
ソフトウェア改ざん耐性のある条件付き資格付与処理技術で、特に、処理系の改ざん耐性に悪影響を与えることはないが処理能力が限られている装置において、計算数を低減させることが求められている。
【先行技術文献】
【特許文献】
【0017】
【特許文献1】欧州特許出願第09155007.9号
【発明の概要】
【発明が解決しようとする課題】
【0018】
本発明の一目的は、計算効率の高い、CWを取得するための改良されたソフトウェア改ざん耐性を有する条件付き資格付与処理技術を提供することである。
【課題を解決するための手段】
【0019】
本発明の一態様によれば、制御語を安全に取得するための受信装置が提案される。受信装置は、変換関数を記憶するように構成された第1のメモリを備える。変換関数は、変換された制御語およびシードを受け取るように構成され、かつ変換された制御語を、入力変換空間から出力変換空間に移動するように構成される。これにより、変換関数は、シードの制御下で、数学的な変換を用いて制御語を取得する。受信装置は、キャッシュメモリおよびキャッシュ制御モジュールをさらに備える。キャッシュ制御モジュールは、変換された制御語およびシードを傍受するように構成される。キャッシュ制御モジュールは、変換関数、変換された制御語(x)、およびシード(y)にマッチする制御語を求めてキャッシュメモリ内を検索するようにさらに構成される。キャッシュ制御モジュールは、制御語がキャッシュメモリ内で発見される場合、制御語を変換関数の出力に提供し、それにより、変換関数を迂回するようにさらに構成される。キャッシュ制御モジュールは、制御語がキャッシュメモリ内で発見されない場合、制御語およびシードを変換関数に提供し、制御語を変換関数から取得し、かつ制御語を、変換関数、変換された制御語(x)、およびシード(y)と関連付けて、キャッシュメモリに記憶するようにさらに構成される。
【0020】
本発明の一態様によれば、受信装置で安全に制御語を取得するための方法が提案される。受信装置は、変換関数を記憶するように構成された第1のメモリを備える。方法は、変換された制御語およびシードを受け取るステップを含む。方法は、キャッシュ制御モジュールで、変換された制御語およびシードを傍受するステップをさらに含む。方法は、変換関数、変換された制御語、およびシードにマッチする制御語を求めて、キャッシュメモリ内を検索するステップをさらに含む。方法は、制御語がキャッシュメモリ内で発見される場合、制御語を変換関数の出力に提供し、それにより、変換関数を迂回するステップをさらに含む。方法は、制御語がキャッシュメモリ内で発見されない場合、制御語およびシードを変換関数に提供するステップと、変換された制御語を変換関数内で入力変換空間から出力変換空間に移動させて、シードの制御下で数学的な変換を用いて制御語を取得するステップと、制御語を、変換関数、変換された制御語、およびシードと関連付けてキャッシュメモリに記憶するステップとをさらに含む。
【0021】
したがって、出力変換空間における制御語は、予想される結果が、変換関数に対する入力に基づいて、キャッシュメモリ内で入手可能である場合、変換関数により計算されない。これにより、制御語を取得するための計算効率が高くなる。
【0022】
出力変換空間は、平文の変換空間とすることができ、平文の制御語が得られる。得られた平文の制御語は、取得された後に暗号化され得る。出力変換空間は、制御語を平文の変換空間で取得するために制御語の変換をさらに必要とする、任意の他の変換空間であり得る。
【0023】
請求項2および10の実施形態は、有利に、一連の変換関数における後続する変換を可能にし、かつ/または変換された副鍵を、変換関数のツリーに結合し、その場合、中間的な結果は、計算を効率化するためにキャッシュされる。
【0024】
請求項3の実施形態は、有利に、計算の最終結果、すなわち、平文の制御語または暗号化された制御語が、コンテンツのスクランブルを解除するために、受信装置で使用されることを可能にする。
【0025】
請求項4の実施形態は、有利に、変換関数のコンピュータ符号および機能的挙動を難読化し、数学的な変換中に制御語に関する情報を取得するのをさらに困難にすることを可能にする。有利に、キャッシュされた中間的な結果が、従来の難読化されていないメモリに記憶され得ると共に、キャッシュメモリの実装を容易にし、かつ安価にすることができる。
【0026】
請求項5の実施形態は、有利に、汎用の計算環境内において単一のキャッシュ制御モジュールだけを用いたキャッシング機能を使用可能にする。
【0027】
請求項6の実施形態は、有利に、安全な計算環境内においてキャッシュ制御機能が実施されることを可能にし、キャッシングのキャッシュメモリ部分だけを汎用の計算環境内に残すようにする。こうすることにより、キャッシュ機能を実施するための汎用の計算環境の変更を、より少なくすることができる。
【0028】
請求項7の実施形態は、有利に、限定受信システムにおいて制御語を取得するためのスマートカードを用いたキャッシング機能を使用可能にする。
【0029】
請求項8の実施形態は、有利に、ネットワーク内でスマートカードを共用することを可能にし、その場合、中間的な結果は、各受信装置でキャッシュされることができる。
【0030】
本発明の一態様によれば、1つまたは複数の上記で述べた特徴を有する受信装置で使用するためのスマートカードが提案される。スマートカードは、安全な計算環境における第1のメモリを備える。第1のメモリは、変換関数を記憶するように構成される。変換関数は、変換された制御語およびシードを受け取るように構成され、かつ変換された制御語を、入力変換空間から出力変換空間に移動するように構成される。こうすることにより、変換関数は、シードの制御下で数学的な変換を用いて制御語を取得する。変換関数は、キャッシュ制御モジュールを含む。キャッシュ制御モジュールは、変換された制御語およびシードを傍受するように構成される。キャッシュ制御モジュールは、変換関数、変換された制御語(x)、およびシードにマッチする制御語を求めて、受信装置のキャッシュメモリ内を検索するようにさらに構成される。キャッシュ制御モジュールは、制御語がキャッシュメモリ内で発見される場合、制御語を変換関数の出力に提供し、それにより、変換関数を迂回するようにさらに構成される。キャッシュ制御モジュールは、制御語がキャッシュメモリ内で発見されない場合、制御語およびシードを変換関数に提供し、変換関数から制御語を取得し、かつ制御語を、変換関数、変換された制御語、およびシードと関連付けてキャッシュメモリに記憶するようにさらに構成される。
【0031】
したがって、キャッシング機能は、制御語を取得するためにスマートカードを使用する限定受信システムで使用可能となる。出力変換空間における制御語は、予想される結果が、変換関数に対する入力に基づいて、キャッシュメモリ内で入手可能である場合、変換関数により計算されない。それにより、スマートカードで制御語を取得する計算効率が高くなる。
【0032】
通常、従来のフォームファクタを有するスマートカードが実装される。スマートカード技術を実施する任意の他の計算装置、例えば、スマートカードエミュレーションソフトウェアを動作させるPCなどが、スマートカードに代えて使用され得る。
【0033】
本発明の一態様によれば、限定受信システムが提案される。限定受信システムは、ヘッドエンドシステムと、1つまたは複数の上記で述べた特徴を有する1つまたは複数の受信装置とを備える。ヘッドエンドシステムは、資格制御メッセージおよび資格管理メッセージを受信装置に送信するように構成される。資格制御メッセージは、変換された制御語を含む。資格管理メッセージは、1つまたは複数のシードを含む。
【0034】
したがって、キャッシング機能が限定受信システムで使用可能になり、変換された制御語を入力変換空間から出力変換空間に変換するために、変換された制御語が、ヘッドエンドシステムにより受信装置に提供される。出力変換空間における制御語は、予想される結果が、変換関数に対する入力に基づいて、キャッシュメモリ内で入手可能である場合、変換関数により計算されない。それにより、制御語を取得するための計算効率が高くなる。
【0035】
以降で、本発明の諸実施形態をさらに詳細に述べるものとする。しかし、これらの諸実施形態は、本発明の保護範囲を限定するものと解釈されるべきではないことを理解されたい。
【0036】
本発明の諸態様は、図面で示された例示的な諸実施形態を参照して、より詳細に説明されよう。
【図面の簡単な説明】
【0037】
【図1A】ソフトウェア改ざん耐性技術で使用されるapply原始関数の従来技術のブロック図である。
【図1B】ソフトウェア改ざん耐性技術で使用されるremove原始関数の従来技術のブロック図である。
【図1C】ソフトウェア改ざん耐性技術で使用されるcondition原始関数の従来技術のブロック図である。
【図1D】ソフトウェア改ざん耐性技術で使用されるremoveおよびapply原始関数の組み合わせの従来技術のブロック図である。
【図1E】ソフトウェア改ざん耐性技術で使用される合成物の安全な相関の従来技術のブロック図である。
【図2】従来技術の簡単化した分割鍵配信プロセスを示す図である。
【図3】受信装置における従来技術の分割鍵配信プロセスを示す図である。
【図4】本発明の例示的な実施形態の変換関数を示す図である。
【図5】本発明の例示的な実施形態のキャッシングを用いる変換関数を示す図である。
【図6】本発明の例示的な実施形態のキャッシングを用いる変換関数を示す図である。
【図7】本発明の例示的な実施形態の一連の2つの変換関数を示す図である。
【図8】本発明の例示的な実施形態のキャッシングを用いる一連の2つの変換関数を示す図である。
【図9】本発明の例示的な実施形態の受信装置におけるキャッシングを用いる分割鍵配信プロセスを示す図である。
【図10】本発明の例示的な実施形態の受信装置およびスマートカードを示す図である。
【図11】本発明の例示的な実施形態のスマートカードを共用する2つの受信装置を示す図である。
【図12】本発明の例示的な実施形態のネットワークを介してスマートカードを共用する2つの受信装置を示す図である。
【図13】本発明の例示的な実施形態の限定受信システムを示す図である。
【図14】本発明の例示的な実施形態の受信装置において制御語を取得するための方法の諸ステップを示す図である。
【図15】変換関数および暗号化を一般的な用語で明確化する図である。
【図16A】数学的な変換を行う関数のブロック図である。
【図16B】シードの制御下で、数学的な変換を行う関数のブロック図である。
【図17A】apply原始関数のブロック図である。
【図17B】remove原始関数のブロック図である。
【図17C】condition原始関数のブロック図である。
【図17D】removeおよびapply原始関数の組み合わせのブロック図である。
【図17E】合成物の安全な相関のブロック図である。
【図18】制御語を取得するために変換演算を行う受信装置の説明用の例を示す図である。
【発明を実施するための形態】
【0038】
キャッシングは、前に使用されたデータを、再計算する代わりに、それがどのような形式であっても、記憶して再使用することを可能にする、コンピュータ科学における知られた最適化技術である。キャッシュが無限のサイズを有することはないので、キャッシュされたデータは、通常、例えば、LRU(Least Recently Used:ほとんど最近使用されていない)アルゴリズム、MRU(Most Recently Used:最も最近使用されている)アルゴリズム、またはLFU(Least Frequently Used:最も使用頻度が低い)アルゴリズムなど、利用パターンアルゴリズムに基づいて保持されるか、あるいは破棄される。
【0039】
資格変換ツリーの実施形態の従来技術の例が図3で示されている。本発明は、資格変換ツリーにおける中間的な結果をキャッシュすることを可能にし、それにより、計算効率を高めるようにする。キャッシング機能は、条件付き資格付与処理の改ざん耐性に影響を与えることなく、汎用の計算環境で実施できるように作成される。
【0040】
資格変換ツリーにおける中間的な値、例えば、図3に示されたCWDKCTU2は、資格変換ツリーにおける一連の関数およびシードの枠内で有用であるに過ぎないので、非機密性のデータと見なすことができる。その結果、中間的な値は、安全性を低下させることなく、キャッシュするために汎用の計算環境で記憶されることができる。
【0041】
通常、高い頻度で変化する副鍵の2つの連続する生成間で一定のままである中間的なデータ値がキャッシュされる。キャッシングは、高い頻度で変化する副鍵に対する中間的な値に限定されないこと、またほとんど変化しない副鍵に対する中間的な値が同様にキャッシュできることも理解されよう。すべての中間的な値が、CWそれ自体の2つの連続する生成間で変化しない場合、得られたCWをキャッシュさせることが可能である。後者の場合、通常、CWは、{CW}CSSKなどの暗号化された形でキャッシュされる。
【0042】
キャッシング機能は、関連するキャッシング参照符と共に、1つまたは複数の中間的な値および/または最終結果の値を記憶することにより実施される。通常、キャッシング参照符は、変換されたCW、シード、および/または合成物などの入力値、ならびに中間的な値もしくは最終結果値を計算するために入力値が入力される関数の指標、またはその関数に対する参照符を含む。
【0043】
資格変換ツリーにおけるCWの計算は、一連の変換関数からなる。キャッシングを含まない知られた例が図3で示されている。図1A〜1Eで示されるものなどの変換関数は、その処理状態を保持せず、また、通常、入力が正しい場合に限って意味的に正しい出力値を生成できる点で条件付きである。
【0044】
各変換関数は、概して、図4で示すように表すことができる。図4は、2つの入力aおよびbを有し、1つの出力cを生成する変換関数Fを示す。入力aおよび/またはb、ならびに出力cは、数学的変換により保護されており、データ値x、yおよびzを、受信装置の汎用の計算環境などの信頼性のないドメインで処理し、記憶することを可能にする。
【0045】
図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に直接提供する。
【0046】
図6は、本発明の例示的な実施形態の追加されたキャッシング機能を備える変換関数Fを示す。図6の実施形態では、キャッシュ制御がキャッシュに追加されている。キャッシュ制御は、入力データ値xおよびyを、それぞれ、変換関数Fの入力aおよびbに送る。関数Fは値zを含む出力を生成する。関数は、処理状態を保持しないので、入力値xおよびyの同じ組が、常に、変換関数Fによって同じ出力値zへと処理される。出力zは、後の同様の演算の計算を最適化するためにキャッシュに記憶される。キャッシュは、入力xおよびyの所与の組み合わせに対して得られる出力値zがキャッシュ内で入手可能ではない場合に限って、関数Fを活性化するキャッシュ制御関数を有する。所与の組み合わせxおよびyに対する出力値zがキャッシュされている場合、キャッシュは、出力値zを、出力cに直接提供する。
【0047】
図5および図6の例では、キャッシュは、関数出力値zを、1組の関数入力パラメータ値x、yとリンクさせる。これに関して、簡単なURLスタイルのストリングが、キャッシング参照符として使用されることができる。代替的には、任意の他の知られたデータ構造が、キャッシング参照符を実施するために使用されることもできる。キャッシング参照符ストリングの例は、「Fc?Fa=x&Fb=y」であり、入力「Fa」に値「x」を、入力「Fb」に値「y」を使用して、変換関数「F」から結果「Fc」を計算することを記述している。キャッシング参照符「Fc?Fa=x&Fb=y」は、関連する関数結果「z」と共にキャッシュに記憶される。
【0048】
例として、以下の表は、「F(x,y)=z」および「F(u,v)=w」の計算を行った後、キャッシュメモリに記憶されるキャッシュエントリを示す。
【0049】
【表1】
【0050】
次に関数Fが活性化されるときには、キャッシュは、まず、その計算に対する結果が、前に完了しているかどうかを判定する。キャッシュヒットがある場合、計算は実行されず、それに代えて、キャッシュ結果が使用される。
【0051】
図7は、本発明の例示的な実施形態を示しており、一連の2つの変換関数が、出力yを生成する。変換関数FおよびGのそれぞれが、図4で述べた関数Fと同様に演算を行い、また図5または図6で述べたキャッシング機能を備えている。
【0052】
出力「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」に返される。これらの演算の後、以下のキャッシュエントリが、キャッシュメモリに記憶される。
【0053】
【表2】
【0054】
キャッシング演算は、変換ツリーの構造を考慮することにより最適化され、また単一のストリングとして一連の変換関数を組み合わせた結果をキャッシュすることができる。こうすることにより、キャッシュメモリに対するアクセスが低減される。例えば、この最適化を用いた図7の例では、2つのキャッシュヒットに代えて、単一のキャッシュヒットが、出力値yを生成することもできる。これに関して、図7の例のキャッシュ内容は、キャッシュ表における以下のエントリを用いて拡張される。
【0055】
【表3】
【0056】
図5および図6で示すように、キャッシュ制御は、変換関数周りの、またはキャッシュメモリ周りのラッパー(wrapper)として実装される。両方の実装形態で、キャッシュ制御は、変換関数モジュールを条件付きで活性化するように、かつ変換関数に関連する入力を提供するように構成される。
【0057】
図8は、バス構造を用いてキャッシュ制御装置に接続された2つの変換関数FおよびGの例を示す。キャッシュ制御装置は、バスを介して、すべての変換関数モジュールに接続される。こうすることにより、データu、v、w、x、およびyを、それぞれ、変換関数FおよびGの入力Fa、Fb、Ga、Gb、および出力Fc、Gcに提供することができる。出力値がキャッシュメモリ内に記憶されていない場合、変換関数モジュールを活性化するために、キャッシュ制御インターフェースが使用される。
【0058】
図8のキャッシュ制御装置は、図6で示されたキャッシュ制御と同様に動作する。図5で示したキャッシュ制御の動作と同様に、図8で示されたバス構造を、各変換関数FおよびGにおけるキャッシュ制御機能と共に使用できることが理解されよう。
【0059】
キャッシュエントリに対する検索、および変換関数を条件付きで活性化することに加えて、キャッシュ制御装置は、任意選択で、キャッシュの記憶サイズを管理するために、使用されないキャッシュエントリを除去するように構成される。これに関して、キャッシュ制御装置は、最も関連のある情報だけをキャッシュに保持することを保証するために、任意の知られたキャッシュ管理技法を使用することができる。
【0060】
図9は、キャッシング最適化で拡張された資格変換ツリー実施形態の例を示す。図9の資格変換ツリーにおける変換関数は、図3で示す資格変換ツリーの変換関数と同様のものであり、同様の変換関数シーケンスが使用される。図9の例では、変換ツリーにおけるすべてのデータが、キャッシュ制御装置と、「データ」で示されたデータインターフェースとを通る。キャッシュ制御装置は、更に、キャッシュ制御インターフェースを介して、変換関数モジュールの活性化を制御する。
【0061】
図9は、受信装置の2つの部分、すなわち、安全な計算環境および汎用の処理環境を示している。汎用の処理環境は、ストレージ、データ通信、およびユーザ対話など、外部インターフェースを扱う。安全な計算環境は、鍵および/またはシードの処理を扱う。処理は、通常、1つまたは複数のプロセッサ(図示せず)により行われる。
【0062】
ECM配信経路は、ヘッドエンドシステムから資格制御メッセージ(ECM)を受け取るために使用される。ECMは、暗号化された、または変換されたCWを含む。EMM配信経路は、ヘッドエンドシステムから資格管理メッセージ(EMM)を受け取るために使用される。EMMは、暗号化された、または変換されたCWを復号または変換するための鍵またはシードを含む。ECM配信経路およびEMM配信経路は、通常、ECMおよびEMMを受け取るための入力モジュールに実装される。
【0063】
図9の例では、汎用の計算環境は、キャッシュ制御装置およびキャッシュメモリとして実装されるキャッシング機能を含む。キャッシュ制御装置を介して、データは、ECM配信経路およびEMM配信経路からキャッシュメモリに流れ、そしてキャッシュメモリ、変換関数(RPAG1,RG1AU1,およびRG2CvectorAU2)、およびTDES暗号化ホワイトボックスの間で流れる。
【0064】
この例では、変換関数に対して、以下のエイリアス、すなわち、F=RPAG1,G=RG1AU1、およびH=RG2CvectorAU2が使用される。Fは、2つの入力FaおよびFbと出力Fcとを有し、Gは、2つの入力GaおよびGbと出力Gcとを有し、そしてHは、2つの入力HaおよびHbと出力Hcとを有する。F、G、およびHのすべての入力および出力は、データバスを介してキャッシュ制御装置に接続される。
【0065】
ECM配信経路を介して、変換空間Pにおける変換された制御語、すなわち、CWDTPが受け取られる。EMM配信経路を介して、シード<P,G1>、<G1,U1>、<G2,U2,n>、および<CSSK,U1,U2>が受け取られる。EMM配信経路を介してさらに、変換空間G2における制御語差分鍵CWDKとベクトルの合成物、すなわち、
【数1】
が、グループメンバーシップ検査のために受け取られる。
【0066】
キャッシュ制御装置は、Faに対してCWDTPであり、Fbに対して<P,G1>である、入力値にマッチする変換関数Fのキャッシュされた出力値を求めてキャッシュメモリを検索する。キャッシュされた出力値が発見される場合、キャッシュされている値が、関数Fを呼び出すことなく、Fcに提供される。出力値が発見されない場合、データバスを介して、CWDTPがFaに提供され、また<P,G1>がFbに提供される。キャッシュ制御インターフェースを介して、命令がキャッシュ制御装置から変換関数Fに与えられ、FaおよびFbにおける入力データを使用して出力値を生成し、その結果を、Fcおよびデータバスを介してキャッシュ制御装置に返す。その結果は、キャッシュメモリに記憶され、キャッシュメモリは、現在、以下のエントリを含むことになる。
【0067】
【表4】
【0068】
次に、キャッシュ制御装置は、Gaに対するFの出力値であり、そしてGbに対する<G1,U1>の出力値である、入力値にマッチする変換関数Gのキャッシュされた出力値を求めてキャッシュメモリを検索する。キャッシュされた出力値が発見される場合、キャッシュされた値が、関数Gを呼び出すことなく、Gcに提供される。出力値が発見されない場合、データバスを介して、この例では、
【数2】
であるFの出力値がGaに提供され、また<G1,U1>がGbに提供される。キャッシュ制御インターフェースを介して、命令がキャッシュ制御装置から変換関数Gに与えられて、GaおよびGbにおける入力データを用いて出力値を生成し、その結果を、Gcおよびデータバスを介してキャッシュ制御装置に返す。その結果は、キャッシュメモリに記憶され、キャッシュメモリは、現在、以下のエントリを含むことになる。
【0069】
【表5】
【0070】
代替的には、または任意選択で、変換関数FおよびGにより入力を処理した後の結果は、単一のエントリとしてキャッシュメモリに記憶され、入力値Fa=CWDTP、Fb=<P,G1>、およびGb=<G1,U1>を用いた単一のステップで、変換関数Gの結果をキャッシュメモリ内で発見することを可能にする。そのとき、キャッシュメモリは、例えば、以下のエントリを含む。
【0071】
【表6】
【0072】
グループメンバーシップ検査のために、キャッシュ制御装置は、Haに対して<G2,U2,n>であり、かつHbに対して
【数3】
である、入力値にマッチする安全な相関関数Hのキャッシュされた出力値を求めて、キャッシュメモリを検索する。キャッシュされた出力値が発見される場合、キャッシュされた値は、関数Hを呼び出すことなくHcに提供される。出力値が発見されない場合、データバスを介して、<G2,U2,n>がHaに提供され、かつ
【数4】
がHbに提供される。キャッシュ制御インターフェースを介して、命令がキャッシュ制御装置から安全な相関関数Hに与えられて、HaおよびHbに関する入力データを用いて出力値を生成し、その結果をHcおよびデータバスを介してキャッシュ制御装置に返す。その結果は、キャッシュメモリに記憶され、キャッシュメモリは、現在、以下のエントリを含むことになる。
【0073】
【表7】
【0074】
最後のステップでは、GcおよびHcの出力データ、すなわち、それぞれ、
【数5】
が、{CW}CSSKを生成するために、データバスを介して、シード<CSSK,U1,U2>と共にTDES暗号化ホワイトボックスに提供される。得られた{CW}CSSKは、通常、このデータが汎用の計算環境内で取得されることを阻止するために、キャッシュメモリにはキャッシュされない。
【0075】
安全な計算環境における変換ツリーの実施形態は、図9の例に限定されない。一連の変換関数には、通常2つ以上の変換関数が存在する。変換関数は、1つまたは複数の枝を備えた資格変換ツリーを形成することができる。各変換関数は、任意の知られた変換関数であり得る。TDES暗号化ホワイトボックスに代えて、任意の他の暗号化関数が、変換された制御語から暗号化された制御語を生成するために使用されることができる。代替的には、TDES暗号化ホワイトボックスに代えて、remove原始関数が、変換された制御語から平文の制御語を生成するために使用されることができる。
【0076】
キャッシングは、変換シーケンスにおけるすべてのステップに対して効率的ではない可能性がある。例えば、特定の変換関数に対してキャッシュヒット率が低いと予想される場合、変換関数を実行する前にキャッシュメモリにアクセスすることにより、キャッシング機能が、実際には、全体の処理性能を低下させるおそれがある。全体の処理性能のこのような低下を回避するために、キャッシング機能を有しない1つまたは複数の変換関数モジュールを実装することができ、その結果、その入力値は、キャッシュヒットを求めて検索することなく変換関数モジュールにより処理されて、出力値が生成される。
【0077】
図9の例では、汎用の計算環境および安全な計算環境は、受信装置の一部である。代替的には、安全な計算環境がスマートカード中に実装され、汎用の計算環境が受信装置中に実装される。
【0078】
従来のフォームファクタを有するスマートカードに代えて、スマートカード技術を実施する任意の他のコンピューティング装置、例えば、スマートカードエミュレーションソフトウェアを動作させるPCなどが、スマートカードとして使用されることができる。
【0079】
図10は、デジタルテレビ受信装置のようなセットトップボックス(STB)と、例えば、スマートカードをSTBに挿入することにより、STBと通信可能に接続されるスマートカードとを含む簡単化したアーキテクチャを示している。STBにより受信されたEMMおよびECMは、スマートカードにより処理される前にEMM/ECMストレージに記憶されることができる。スマートカードは、ECMおよびEMMから、それ自体知られた任意の方法でデータを取得するが、そのデータには、スマートカードの安全な計算環境における資格変換ツリーに対する入力データが含まれている。変換関数および/または安全な相関関数に対する入力、そして変換関数および/または安全な相関関数からの出力は、STB内のキャッシュに記憶される。
【0080】
2つ以上のネットワーク化された装置に共通のスマートカードを共用させることも可能である。図11の例では、2つのSTBがそれぞれ、ヘッドエンドシステムから受信したECMおよびEMMを、EMM/ECMストレージにより示された不揮発性メモリ内に暗号化された形式で記憶する。挿入されたスマートカードを有しないSTBは、ネットワークを介し、かつスマートカードが挿入されたSTBの仲介により、スマートカードに対する安全な接続を確立する。スマートカードは、受信装置から1つまたは複数のECM、および関連するEMMを受け取り、スマートカードの安全な計算環境内でECMおよびEMMを復号して、変換関数モジュールのための入力データを取得する。変換関数の出力値は、STBのローカルなキャッシュに記憶するために、安全な接続を介してSTBに送られる。
【0081】
図11の例の代替形態が図12で示されており、その場合、スマートカードが、STBのうちの1つに挿入されるのではなく、ネットワークと通信可能に接続され、各STBは、ネットワークを介してスマートカードにアクセスする。
【0082】
STBは、通常、スマートカードよりも多くの記憶空間を有する。したがって、図10〜12の例では、キャッシュメモリはSTBに実装される。代替的には、キャッシュメモリをスマートカード内に実装することも可能である。
【0083】
図13は、本発明の例示的な実施形態の限定受信システムを示す。ヘッドエンドシステムが、ECMおよびEMMを、配信ネットワークを介して、1つまたは複数の受信装置に送信する。ECMは、通常、例えば、図9のCWDTPなど、変換された制御語を含み、それは、受信装置の安全な計算環境内で、資格変換ツリーにより処理される。安全な計算環境は、受信装置に対して通信可能に接続されたスマートカード内に実装することができる。EMMは、通常、変換された制御語を変換するのに使用される、例えば、図9の<P,G1>および<G1,U1>などの1つまたは複数のシードを含む。グループメンバーシップ検査データなど他のデータも同様に、EMMで送信されることができる。複数のEMMが、データを送信するために使用されることができる。
【0084】
図14では、本発明の例示的な実施形態の受信装置により実施される諸ステップが、概略的に示されている。ステップ101で、変換された制御語およびシードが受け取られる。ステップ102で、変換された制御語およびシードが、キャッシュ制御モジュールで傍受される。ステップ103で、変換関数、変換された制御語、およびシードにマッチする制御語が、キャッシュメモリ内で検索される。ステップ104で、検索結果が解析される。制御語が発見される場合、それは、ステップ105で、変換関数の出力に提供されて、それにより、変換関数が迂回される。制御語が発見されない場合、ステップ106で、制御語は、シードと共に変換関数に提供される。ステップ107で、変換された制御語は、入力変換空間から出力変換空間に移動され、シードの制御下で数学的変換を用いて制御語が取得される。ステップ108で、制御語は、変換関数、変換された制御語、およびシードと関連付けられて、キャッシュメモリに記憶される。ステップ108は、次に同じ入力値を有する同じ変換関数が呼び出されたときに、ステップ103におけるキャッシュヒットを可能にする。
【0085】
上記で論じたように、データおよびソフトウェアの難読化技法は、中間的な結果を難読化するために変換関数を利用することができる。本開示で使用される変換関数の概念は、暗号化とは異なる。その差は、概して、図15および以下で述べる論議を参照することによりさらに明確化される。
【0086】
非変換データ空間内に複数のデータ要素を有する入力ドメインIDが存在するものと仮定する。入力ドメインIDのデータ要素を入力として受け入れ、対応する暗号化されたデータ要素を出力ドメインODに渡すように構成された、何らかの鍵を使用する暗号化関数Eが定義される。復号関数Dを適用すること、すなわち、復号関数Dを出力ドメインODのデータ要素に適用することにより、入力IDの元のデータ要素を得ることができる。安全ではない環境(通常、「ホワイトボックス」と呼ばれる)では、敵対者は、入力および出力データ要素を知り、かつ実行中に暗号化関数Eの内部にアクセスできることが想定される。この環境では、特別の予防策をとらない限り、秘密(例えば、暗号化/復号関数で使用される鍵)は、敵対者によって容易に導出されることができる。
【0087】
変換関数を入力ドメインIDおよび出力ドメインODに適用することにより、さらなる安全性を、安全ではない環境内で得ることができ、すなわち、変換関数は、入力演算および出力演算である。変換関数T1は、データ要素を、入力ドメインIDから、変換されたデータ空間の変換された入力ドメインID'における変換されたデータ要素に写像(map)する。同様に、変換関数T2は、データ要素を、出力ドメインODから、変換された出力ドメインOD'に写像する。この場合、変換された暗号化関数E'および復号関数D'は、変換された鍵を用いてID'とOD'の間で定義されることができる。逆変換が行われる場合、例えば、結果が非変換空間に伝達される場合には、T1およびT2は全単射である。
【0088】
暗号化技法と共に変換関数T1およびT2を使用することは、出力ドメインODの暗号化されたデータ要素を得るために、入力ドメインIDのデータ要素を暗号化関数Eに入力するのではなく、変換関数T1を適用することにより、ドメインID'の変換されたデータ要素が、変換された暗号化関数E'に入力されることを示唆している。変換された暗号化関数E'は、鍵などの秘密情報を保護するために、暗号化演算において、逆変換関数T1-1と変換関数T2を組み合わせる。次いで、ドメインOD'の変換された暗号化データ要素が取得される。暗号化関数E、または復号関数Dに対する鍵は、変換されたデータ空間内で入力データおよび出力データを解析した場合には、取り出すことができない。こうすることにより、安全ではない環境で演算された場合であっても、敵対者に対して鍵が保護されることが保証される。具体的には、連続したメモリにおける平文において、システムは、変換することにより、鍵のどの部分も、または鍵から導出されるどの値も決して明らかにしないようにすることができる。言い換えると、変換は、変換された空間でデータに変換を適用し、かつ演算を行うことにより、データを難読化する。いくつかの実施形態では、これらの変換関数は、ランダムに生成される。
【0089】
データを難読化するために変換を使用する利点は、これらの変換の入力値および出力値を、これらの入力値および出力値が敵対者には無用のものになる特徴により、汎用の(安全ではない)計算環境に記憶またはキャッシュさせることを可能にすることである。それとは対照的に、変換されない暗号化関数の入力値および出力値は、汎用の計算環境内に記憶またはキャッシュされることはできない。敵対者に対して有用になる可能性があるので、暗号化および復号鍵/平文鍵の対などの、これらの値は、安全ではないメモリにキャッシュ及び記憶されるべきではない。
【0090】
変換関数T1およびT2の一方は、非自明の関数とすべきである。T1が自明な関数である場合、入力ドメインIDおよびID'は同じドメインである。T2が自明な関数である場合、出力ドメインが同じドメインである。
【0091】
図16Aで示す関数Fは、INおよびOUTで識別される2つの異なる変換空間にわたってデータZを移動する数学的な演算である。出力変換空間OUTの次元は、少なくとも入力変換空間INと同様の大きさであり、そして任意のデータZは、入力変換空間および出力変換空間の両方において、それぞれ、XおよびYで表される(一意ではない可能性がある)。関数Fは、逆方向に動作することが困難であるように設計される。入力変換空間と出力変換空間との間に明らかな写像(mapping)が存在しないこと、および変換空間INおよびOUTの次元が、好ましくは、非常に大きいことのために、関数Fを再現することは阻止される。さらに、関数Fは、例えば、ホワイトボックス技法、および/または他の符号難読化技法を用いて、データZが関数を通過するとき、それを抽出することが困難であるような方法で実施される。
【0092】
図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進値に対して実施することが計算上効率的であるように選択される。
【0093】
関数Fは、図16Bで示されるように、さらなるパラメータSをシードとして用いることのできる数学的な演算と定義されることができる。関数Fが行う移動は、通常、シードSにより定義される。このタイプのシードが導入された変換関数は、通常、入力空間INおよび出力空間OUTに関する情報がFに埋め込まれていない場合に関して使用される。関数Fは、入力データXまたはシードSの操作が、出力変換空間において、予測できない結果のデータYを生じさせるように選択される。シードSは、変換空間INまたはOUTに関する情報を何も抽出できないように作成されているので、安全な環境内で安全に保護または記憶される必要はない。
【0094】
図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として、正しく得ることができる。
【0095】
入力変換空間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である。
【0096】
シード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である。
【0097】
上記の例では、Z、X、Y、およびSは、簡単な加算および減算数学を用いて変換するために使用できる数である。Z、X、Y、およびSは、2進値、数、文字、単語、その他種々のものを含む任意のデータ形式のデータであり得ることが理解されることになる。関数Fは、より複雑な関数とすることができ、さらに、例えば、2進値、数、文字、または単語に対して演算を行うのに適したものとすることができる。図1A〜Eと同様に、図17Aは、基本原始関数をさらに詳細に説明している。
【0098】
図17Aでは、関数A(Data,S)=AS(Data)=DataTSは、入力シードSを用いて、入力データを変換されたDataTSに変換するapply原始関数を定義する。図17Bでは、関数R(DataTS,S)=RS(DataTS)=Dataは、出力データを得るために、シードSを用いて、入力DataTSの変換を逆に行うremove原始関数を定義する。シードSは、互いに逆になるように、2つの関数A( )およびR( )に対して同一である必要がある。
【0099】
元のデータおよびその変換された変形体DataTSは、通常、同じサイズ、すなわち、同じビット数で表され、そのサイズに基づいて、そのデータ(Data)が、特定の変換された空間内にあるかどうかを判定することを不可能にする。
【0100】
図17Cでは、関数C(Data1,Data2)=CData1(Data2)=DataCは、条件付き変換を定義し、その場合、出力DataCは、2つの入力Data1およびData2の相関である。condition原始関数は、通常、入力データおよび出力データのサイズを保存し、そのデータ(Data)が、相関の結果であるかどうかの判定を不可能にする。
【0101】
apply原始関数、remove原始関数、およびcondition原始関数などの原始関数は、組み合わせられることができる。その組み合わせは、個々の原始関数を見分けることのできない新しい演算を生成する。
【0102】
図17Dは、remove原始関数とapply原始関数の組み合わせの例を示す。変換演算は、入力DataTPに適用される組み合わされたremoveおよびapply演算に対する入力として、合成物<P,S>を使用する。RPAS関数は、出力DataTSを得るために、入力DataTPを、入力変換ドメインPから出力変換ドメインSに写像する。組み合わされたremoveおよびapply演算のすべての入力および出力は変換されるか、あるいは合成物の形式になる。演算は、変換されたデータに適用され、変換されたデータを生成する。したがって、変換演算は、変換されたドメイン空間で行われ、そしてどのインターフェース上においても個々のパラメータ、または変換されていないデータを明らかにすることはない。合成物<P,S>を作成するために使用される関数は、好ましくは、一意のものであり、組み合わされたapplyおよびremove演算の実施にリンクされる。
【0103】
図17Eは、2つの入力合成物<P,S,Q1>および<DataTP,Q2>に対する安全な相関演算の例を示す。RPCQAS関数は、remove、conditionおよびapply原始関数を組み合わせて、それにより、出力
【数6】
を作成する。
【0104】
図18は、限定受信装置の受信装置において実施される変換経路の説明用の例を示す。受信装置は、通常、少なくとも一部が、ソフトウェアとして、またはプログラム可能なアレイにおけるフィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA)プログラムとして実装される。受信装置は、プロセッサの保護されていないメモリ、部分的に保護されたメモリ、かつ/または安全なメモリを備える。プロセッサは、メモリに記憶された関数を実行して、秘密のデータZを、入力変換空間INから出力変換空間OUTに移動するように構成される。秘密のデータZは、抽出または傍受することはできず、したがって、例えば、不法に他の受信装置に配信されることはできない。
【0105】
受信装置は、資格制御メッセージECM内の大域的に変換された制御語CWDTPとして制御語CWを受け取る。受信装置は、CWDを、入力変換空間Pから、受信装置の最終的な出力変換空間CSSKに、3ステップで移動する。最後の移動ステップで、変換された制御語{CW}CSSKが生成されるが、それは、受信装置に一意であるクラスタ共用秘密鍵(CSSK)の出力変換空間における制御語CWである。
【0106】
受信装置は、汎用の計算環境および安全な計算環境を備える。
【0107】
汎用の計算環境は、ヘッドエンドシステムからECMを受け取るためのECM配信経路を備える。汎用の計算環境は、ヘッドエンドシステムから資格管理メッセージ(EMM)を受け取るためのEMM配信経路をさらに備える。EMMは、様々な変換空間を通り、変換経路に沿ってCWDTPを移動させるために使用されるシードを備える。EMMで受け取られたシードは、汎用の計算環境のNVRAMメモリに記憶される。第1のシードは、合成物<P,G1>に等しい。第2のシードは、合成物<G1,U1>に等しい。第3のシードは、合成物<CSSK,U1>に等しい。
【0108】
安全な計算環境は、一連の変換関数を備える。第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を用いて、限定受信装置により復号されることができる。
【0109】
受信装置における変換経路は、図18で示された例に限定されるものではないこと、ならびに任意の数および任意の種類の変換演算を含み得ることが理解されるべきである。
【0110】
本開示の一実施形態は、コンピュータシステムと共に使用するためのプログラム製品として実施されることができる。プログラム製品のプログラムは、諸実施形態(本明細書で述べた方法を含む)の関数を定義し、かつ、様々なコンピュータで読取り可能な非一時的記憶媒体に含まれることができる。コンピュータ可読記憶媒体は、非一時的記憶媒体であり得る。例示的なコンピュータ可読の、かつ/または非一時的な記憶媒体は、これだけに限らないが、(i)情報が永続的に記憶される書込み不能な記憶媒体(例えば、CD-ROMドライブにより読取り可能なCD-ROMディスク、フラッシュメモリ、ROMチップ、または任意のタイプの固体素子不揮発性の半導体メモリなど、コンピュータ内の読取り専用メモリ装置)、および(ii)変更可能な情報が記憶される書込み可能な記憶媒体(例えば、ディスケットドライブ内のフロッピー(登録商標)ディスク、またはハードディスクドライブ、あるいは任意のタイプの固体素子ランダムアクセス半導体メモリ)を含む。さらに、本開示は、上記で述べた諸実施形態に限定されず、本開示の範囲を逸脱することなく、添付の特許請求の範囲内で変更されることができる。
【0111】
いずれか1つの実施形態に関して述べられたいずれの特徴も、単独で、または前述の他の特徴と組み合わせて使用することができ、さらに、任意の他の実施形態の1つまたは複数の特徴と組み合わせて、あるいは任意の他の実施形態の任意の組み合わせで使用できることが理解されるべきである。さらに、上記で述べられていない均等な形態および変形形態もまた、添付の特許請求の範囲で定義される本発明の範囲を逸脱することなく使用されることができる。
【符号の説明】
【0112】
x 制御語
y シード
z 制御語
F 変換関数
G 変換関数
【特許請求の範囲】
【請求項1】
制御語を安全に取得するための受信装置であって、
変換された制御語(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)と関連付けて前記キャッシュメモリに記憶する
ように構成される、受信装置。
【請求項2】
前記第1のメモリが、一連の変換関数、および/または変換関数のツリーを形成する2つ以上の変換関数(F,G)を記憶するように構成され、前記キャッシュ制御モジュールが、前記キャッシュメモリを1つまたは複数の前記変換関数(F,G)と通信可能に接続するデータバスにリンクされる、請求項1に記載の受信装置。
【請求項3】
前記一連の変換関数および/または変換関数のツリーにおける最後の変換関数が、平文の制御語、または暗号化された制御語として、前記制御語を生成するように構成される、請求項2に記載の受信装置。
【請求項4】
前記第1のメモリを備える安全な計算環境を備え、そして前記キャッシュメモリを備える汎用の計算環境をさらに備える、請求項1から請求項3のいずれか一項に記載の受信装置。
【請求項5】
前記汎用の計算環境が、前記キャッシュ制御モジュールを備えており、前記データバスが、前記キャッシュ制御モジュールを、前記1つまたは複数の変換関数(F,G)の入力および出力に通信可能に接続する、請求項4に記載の受信装置。
【請求項6】
前記1つまたは複数の変換関数のそれぞれが、キャッシュ制御モジュールを備えており、前記データバスが、各キャッシュ制御モジュールを、前記キャッシュメモリに通信可能に接続する、請求項4に記載の受信装置。
【請求項7】
前記受信装置に着脱可能に接続されることが可能なスマートカードをさらに備え、前記スマートカードが、前記安全な計算環境を備えている、請求項4から請求項6のいずれか一項に記載の受信装置。
【請求項8】
前記受信装置がネットワークを介して前記スマートカードに通信可能にリンクされる、請求項7に記載の受信装置。
【請求項9】
請求項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)と関連付けて前記キャッシュメモリに記憶する
ように構成されるキャッシュ制御モジュールを備える、スマートカード。
【請求項10】
前記第1のメモリが、一連の変換関数、および/または変換関数のツリーを形成する2つ以上の変換関数(F,G)を記憶するように構成され、前記キャッシュ制御モジュールが、前記キャッシュメモリを1つまたは複数の前記変換関数(F,G)と通信可能に接続するデータバスにリンクされる、請求項9に記載のスマートカード。
【請求項11】
ヘッドエンドシステムと、請求項1から請求項8のいずれか一項に記載の1つまたは複数の受信装置とを備える限定受信システムであって、前記ヘッドエンドシステムが、前記変換された制御語(x)を含む資格制御メッセージ、および1つまたは複数のシード(y)を含む資格管理メッセージを、前記受信装置に送信するように構成される、限定受信システム。
【請求項12】
変換関数(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)と
を含む方法。
【請求項1】
制御語を安全に取得するための受信装置であって、
変換された制御語(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)と関連付けて前記キャッシュメモリに記憶する
ように構成される、受信装置。
【請求項2】
前記第1のメモリが、一連の変換関数、および/または変換関数のツリーを形成する2つ以上の変換関数(F,G)を記憶するように構成され、前記キャッシュ制御モジュールが、前記キャッシュメモリを1つまたは複数の前記変換関数(F,G)と通信可能に接続するデータバスにリンクされる、請求項1に記載の受信装置。
【請求項3】
前記一連の変換関数および/または変換関数のツリーにおける最後の変換関数が、平文の制御語、または暗号化された制御語として、前記制御語を生成するように構成される、請求項2に記載の受信装置。
【請求項4】
前記第1のメモリを備える安全な計算環境を備え、そして前記キャッシュメモリを備える汎用の計算環境をさらに備える、請求項1から請求項3のいずれか一項に記載の受信装置。
【請求項5】
前記汎用の計算環境が、前記キャッシュ制御モジュールを備えており、前記データバスが、前記キャッシュ制御モジュールを、前記1つまたは複数の変換関数(F,G)の入力および出力に通信可能に接続する、請求項4に記載の受信装置。
【請求項6】
前記1つまたは複数の変換関数のそれぞれが、キャッシュ制御モジュールを備えており、前記データバスが、各キャッシュ制御モジュールを、前記キャッシュメモリに通信可能に接続する、請求項4に記載の受信装置。
【請求項7】
前記受信装置に着脱可能に接続されることが可能なスマートカードをさらに備え、前記スマートカードが、前記安全な計算環境を備えている、請求項4から請求項6のいずれか一項に記載の受信装置。
【請求項8】
前記受信装置がネットワークを介して前記スマートカードに通信可能にリンクされる、請求項7に記載の受信装置。
【請求項9】
請求項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)と関連付けて前記キャッシュメモリに記憶する
ように構成されるキャッシュ制御モジュールを備える、スマートカード。
【請求項10】
前記第1のメモリが、一連の変換関数、および/または変換関数のツリーを形成する2つ以上の変換関数(F,G)を記憶するように構成され、前記キャッシュ制御モジュールが、前記キャッシュメモリを1つまたは複数の前記変換関数(F,G)と通信可能に接続するデータバスにリンクされる、請求項9に記載のスマートカード。
【請求項11】
ヘッドエンドシステムと、請求項1から請求項8のいずれか一項に記載の1つまたは複数の受信装置とを備える限定受信システムであって、前記ヘッドエンドシステムが、前記変換された制御語(x)を含む資格制御メッセージ、および1つまたは複数のシード(y)を含む資格管理メッセージを、前記受信装置に送信するように構成される、限定受信システム。
【請求項12】
変換関数(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)と
を含む方法。
【図1A】
【図1B】
【図1C】
【図1D】
【図1E】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16A】
【図16B】
【図17A】
【図17B】
【図17C】
【図17D】
【図17E】
【図18】
【図1B】
【図1C】
【図1D】
【図1E】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16A】
【図16B】
【図17A】
【図17B】
【図17C】
【図17D】
【図17E】
【図18】
【公開番号】特開2011−155642(P2011−155642A)
【公開日】平成23年8月11日(2011.8.11)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−293197(P2010−293197)
【出願日】平成22年12月28日(2010.12.28)
【出願人】(598036964)イルデト・コーポレート・ビー・ヴイ (16)
【Fターム(参考)】
【公開日】平成23年8月11日(2011.8.11)
【国際特許分類】
【出願番号】特願2010−293197(P2010−293197)
【出願日】平成22年12月28日(2010.12.28)
【出願人】(598036964)イルデト・コーポレート・ビー・ヴイ (16)
【Fターム(参考)】
[ Back to top ]