個人向けホワイトボックス・デスクランバー
【課題】不正に取得されたキーが、暗号文の解読のための未承認のホワイトボックスデスクランバーで使用されることを防止する。
【解決手段】個人向けホワイトボックスデスクランバー311を備えた受信器111が提案される。典型的には個人向けホワイトボックスデスクランバー311は難読化されたソフトウェア・モジュールとして実施される。受信器311には保安クライアント211が通信可能に接続されデスクランブル機能を実現するためのキー関連データを提供する。個人向けデスクランバー311のデスクランブリング処理の一部が保安クライアント211の事前処理モジュール811で実施される。典型的には保安クライアント211はスマートカードで実施され、事前処理モジュール811は保安クライアント211上で動作する難読化されたソフトウェア・モジュールとして実施される。
【解決手段】個人向けホワイトボックスデスクランバー311を備えた受信器111が提案される。典型的には個人向けホワイトボックスデスクランバー311は難読化されたソフトウェア・モジュールとして実施される。受信器311には保安クライアント211が通信可能に接続されデスクランブル機能を実現するためのキー関連データを提供する。個人向けデスクランバー311のデスクランブリング処理の一部が保安クライアント211の事前処理モジュール811で実施される。典型的には保安クライアント211はスマートカードで実施され、事前処理モジュール811は保安クライアント211上で動作する難読化されたソフトウェア・モジュールとして実施される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ホワイトボックス・デスクランバーに関し、更に詳しくは、限定受信システム(conditional access system)の受信器におけるホワイトボックス・デスクランバーに関する。
【背景技術】
【0002】
TVアプリケーションにおいて、暗号化(スクランブル)された放送ストリームは暗号文‘C’を形成し、それは、デスクランブルされた放送ストリーム‘M’を得るために、放送受信器で解読(デスクランブル)される。代表的には、複数の放送受信器は同一の放送ストリームを受信し、その放送ストリームを同一のキー(コントロールワード)‘CW’で解読する。CWの値は、定期的に更新され、承認された加入者が解読することができるエンタイトルメント・コントロール・メッセージ‘ECM’での暗号化形式で受信器に配信される。
【0003】
ECM処理は、種々の方法で実施することができる。図1aは、ECM処理がスマートカードで実施される例を示し、それは、安全な実行環境を提供するために、ハードウェアによる不正防止技術(hardware tamper resistance techniques)を用いている。放送ストリームCの解読は、‘M’で表された、デスクランブルされた放送ストリームを取得するための受信器101におけるチップのハードウェア回路301で実施される。保安クライアント201は、ECMからCWを取得するためのスマートカードのハードウェアで実施される。ハードウェア不正防止技術は攻撃に対する実施を保護する。
【0004】
図1bは、他の例を示し、ここでのECM処理はソフトウェア技術に基づいている。ソフトウェアは、受信器102においてソフトウェア保安クライアント202として稼動し、デスクランブラー・チップにロード(load)されたキー階層構造に基づいて暗号化形式で受信器102のハードウェアデスクランバー301にキー(CW)をロードする。
【0005】
図1cは、他の例を示し、ここでの受信器103のデスクランブリング機能部302および保安クライアント202の両方はソフトウェアで実施される。このソフトウェア実施の受信器103は、例えば、チップセットの読み出し専用メモリに格納されたチップセット・ユニークキー‘CSUK’またはチップセット・シリアルナンバー‘CSSN’のような、ハードウェア・ホック(hardware hook)を備えていない。その結果、デスクランブリング・機能部302は、このようなハードウェア・ホックに基づく特定の受信器の制約を受けず、ハッキング攻撃に対してソフトウェア実施の受信器302をいっそう脆弱にする。
【0006】
図2aは、デスクランブルモジュールの例を示す。暗号文Cは、デスクランブルモジュール303において固定キーKで平文(plaintext)Cに解読される。キーKは、デスクランブルモジュール303に組み込まれ、またはプリロード(preload)されている。
【0007】
図2bは、他のデスクランブルモジュールを示し、ここでのデスクランブルモジュール304の多くの例は、外部ソースからKの値をロードすることによりなされる。
【0008】
DVB(digital video broadcasting)、DES(data encryption standard)、AES(advanced encryption standard)のような多くの既存の放送デスクランブリング・アルゴリズムはブロック暗号化に基づいている。ブロック暗号化は、入力された平文を固定サイズの複数のブロックに分割することで作動する。各ブロックは、比較的単純なファンクションを繰り返し適用することにより処理される。このアプローチは、反復ブロック暗号化(iterated block cipher)として知られている。各反復処理は、ラウンド(round)と呼ばれ、反復されるファンクションは、ラウンドファンクションと呼ばれる。代表的なブロック暗号化は、4ラウンドないし32ラウンドを有する。
【0009】
図3は、図2bのデスクランブリングモジュール304として使用されるような、従来の反復ブロック暗号化器305の典型的な内部動作を示す。暗号文Cが受信されてブロックに分割される。暗号文Cの各ブロックは、‘n’ラウンドの処理を経て平文メッセージ‘M’になる。各ラウンド‘r’は、入力として独自のラウンドキー‘RKr’を受信し、それは、キースケジュールモジュール501において元のラウンドキー‘K’から計算される。ホワイトボックス暗号化では、各ブロック暗号化ラウンドモジュール4011,4012は、典型的には、キー‘K’およびラウンドキー‘RKr’の値を隠すテーブルルックアップ操作のシーケンスを用いて実施される。
【0010】
或いは、図2aに示されるようなデスクランブリングモジュール303を用いる固定キー変化(variant)が、反復ブロック暗号化器305において使用されてもよい。そして、図5に示されるようなキースケジュールモジュール501は、各ラウンドに固定入力‘RKr’を組み込むモジュールで置き換えられる。
【0011】
図3に示されるようなブロック暗号化ラウンドモジュール4011,4012が、図4においてさらに詳細に示されている。ブロック暗号化ラウンドファンクション401は、順次的に作動する二つのモジュールを備える。拡散モジュール(diffusion module)601は、入力Cr−1を無作為に修正(modify)する。このようにして得られたC‘r−1は、混同モジュール(confusion module)701に入力される。混合モジュール701の目的は、ラウンドキーRKrを暗号文C’r−1と混合(mix)して、次の解読ラウンドのための出力Crを生成するために関連のラウンドキーRKrを提供させる。
【0012】
ブロック暗号化ラウンドモジュールは、典型的にはテーブルドリブン(table-driven)のルックアップテーブル実施を用いたホワイトボックス暗号化において、混合機能を実施する固有の機能を備えることにより個人向けアレンジ(personalize)してもよい。従来技術のテーブルドリブンのルックアップテーブル実施の例は、図7を用いて更に詳細に説明されるであろう。
【0013】
AES暗号化を用いたホワイトボックス反復ブロック暗号化は、「“White-Box Cryptography and an AES Implementation”, by S. Chow、P. Eisen、H. Johnson、P.C. van Oorschot, Proceedings of the 9th Annual Workshop on Selected Areas in Cryptography, August 2002」により知られている。AESのホワイトボックス実施において、各ブロック暗号化ラウンドは、サブバイト(SubBytes)、シフトロー(ShiftRows)、ミックスカラム(MixColumns)、アッドラウンドキー(AddRoundKey)の4つの部分から構成される。最初の3つの部分は、拡散モジュールにおける処理に対応し、アッドラウンドキーの部分は混合モジュールと互換性を有する。
【0014】
或るモジュールから次のモジュールへ受け渡される中間値を妨害から保護するために、ホワイトボックス反復ブロック暗号化実施は、典型的にはランダム置換(random permutation)をルックアップテーブルの出力に適用し(図7参照)、そして、その逆置換を次のルックアップテーブルに適用する。
【0015】
ランダム置換を適用する簡略化されたブロック暗号化器306は、ブロック暗号化ラウンドモジュール4021,4022における二つのラウンドから構成され、図5には、2ビットのキーサイズとブロックを有する場合が示されている。図6には、ブロック暗号化ラウンドモジュール402が更に詳細に示されている。図5において、各矢印は、2ビットのデータフローを表している。図6では、各矢印は、単一ビットのデータフローを表している。拡散モジュール602は、入力Cr−1の2ビットをスワップし、第2ビットをそれらのバイナリ和(XOR)により置き換える。このようにして得られたC’r−1は、混合モジュール702に入力される。混合モジュール702は、C’r−1の二つの入力されたビットとラウンドキーRKrの関連ビットとのバイナリ加算(XOR)を実施する。図5を参照すると、キースケジュールモジュール502は、キーKを受信し、そして、二つのラウンドキー
【0016】
【数1】
【0017】
を生成し、ここで、‘10’は、バイナリベクトルを表し、
【0018】
【数2】
【0019】
は排他的論理和演算(XOR)を表す。図7には、図5および図6の簡略化されたブロック暗号化器306のホワイトボックスルックアップテーブルドリブン実施307の簡略化された例が示されている。図7の例では、キースケジュールモジュール503は、バイナリキー‘K=11’を受信し、テーブルルックアップを用いて、キーKを二つのビット、すなわち‘RK1=11’および‘RK2=01’に展開(expand)する。テーブルルックアップは、特定のキー入力に続く所定のパス(paths)により視覚化される。キー入力K=11についての矢印に続いて、二つのラウンドキー11および01が見つけられる。入力された暗号文について、バイナリ値‘C=11’を有するこの例では、第1ブロック暗号化ラウンドモジュール4031は、拡散モジュール603におけるテーブルルックアップを使用して中間出力‘C0=10’を生成し、それは混合モジュール703に入力される。混合モジュール703は、ラウンドキーRK1を加え、第2ブロック暗号化ラウンドモジュール4032に入力される出力‘C1=01’をもたらす。第2ブロック暗号化ラウンドモジュール4032では、同様にして、拡散モジュール603は‘C1=11’を取得し、拡散モジュール703は‘C2=10’を取得する。第2ブロック暗号化ラウンドモジュール4032は、ブロック暗号化解読処理の出力として平文(cleartext)メッセージ‘M’を生成し、‘M=C2=10’である。
【0020】
放送デスクランブリングアルゴリズムのようなブロック暗号化を使用する代わりに、ストリーム暗号化および公開キー暗号化システムが知られている。
【0021】
図17は、図2bの代替のデスクランブリングモジュール304として使用される従来技術のストリーム暗号化器308の典型的な内部動作を示している。セットアップモジュール5041は、本来的に公知の方法で暗号化の内部状態を初期化する。典型的には、初期化は、暗号化のキーがかけられた内部秘密状態にロードされる初期ベクトル(IV)を含み、その後、多くの暗号化ラウンドが、次のモジュールへの初期化されたキーのリリースに先立って入力キーKに関して実行される。キー拡張モジュール5042は、暗号文Cのサイズに合わせるために、上記初期化されたキーから拡張されたキーEKを生成する。拡張されたキーEKは、XORモジュール404に提供され、ここで、入力された暗号文Cは、上記拡張されたキーEKとのXOR演算を用いてデスランブルされる。
【0022】
図20は、図2bの他の代替のデスクランブリングモジュール304として使用されるような従来技術の公開キー暗号化309の典型的な内部動作を示している。累乗モジュール505は、典型的には‘EK=GKmodN’のようなモジュラ累乗を適用することにより、入力されたキーKを処理する。このようにして得られた拡張されたキーEKは、入力暗号文Cを解読するために解読モジュール4052に入力される。暗号文Cの解読の一部として、暗号文Cは、解読モジュール4052に入力される前に、修正モジュール4051において中間暗号文C1に修正されてもよい。
【0023】
有料テレビ放送のアプリケーションにおける従来の問題は、インターネットのようなブロードバンド通信インフラストラクチャを用いたCWキー値の再配信である。ハッカーは、CW値を妨害し、このCWを、例えばピアツーピアネットワークを用いて、再配信インフラストラクチャに挿入する。無承認の受信器は、再配信インフラストラクチャから適切なCWキー値を取得し、このようにして取得したCWキー値を使用して放送ストリームを解読する。更に詳しくは、妨害されたキーは、暗号文を解読するための未承認のホワイトボックスデスクランブラーモジュールで使用される。
【先行技術文献】
【非特許文献】
【0024】
【非特許文献1】“White-Box Cryptography and an AES Implementation”, by S. Chow、P. Eisen、H. Johnson、P.C. van Oorschot, Proceedings of the 9th Annual Workshop on Selected Areas in Cryptography, August 2002
【発明の概要】
【発明が解決しようとする課題】
【0025】
本発明の目的は、妨害(intercept)されたキーが、暗号文の解読のために未承認のホワイトボックスデスクランバーで使用されることを防止することである。
【課題を解決するための手段】
【0026】
本発明の一態様によれば、平文メッセージを取得するために暗号文をデスクランブルするためのホワイトボックスデスクランバーが提案される。本デスクランバーは、外部の事前処理モジュールから個人向けの変換されたキーを受け取るように構成される。本デスクランバーは、さらに、前記入力暗号文を受け取るように構成される。本デスクランバーは、さらに、デスクランブリング処理の第2の部分への入力として前記個人向けの変換されたキーを用いて前記デスクランブリング処理の第2の部分を前記入力暗号文に適用することにより出力データを生成するように構成される。本デスクランバーは、さらに、前記出力データを生成する前に前記個人向けの変換されたキーに逆変換を適用するように構成される。前記個人向けの変換されたキーは、前記外部の事前処理モジュールにおいて前記デスクランブリング処理の第1の部分を適用する結果として事前処理されたデータを含む。
【0027】
本発明の一態様によれば、平文メッセージを取得するために暗号文をデスクランブルするためのホワイトボックスデスクランバーで用いる方法が提案される。本方法は、外部の事前処理モジュールから個人向けの変換されたキーを受け取るステップを含む。本方法は、さらに、前記入力暗号文を受け取るステップを含む。本方法は、さらに、デスクランブリング処理の第2の部分への入力として前記個人向けの変換されたキーを使用して前記デスクランブリング処理の第2の部分を前記入力暗号文に適用することにより出力データを生成するステップを含む。本方法は、さらに、前記出力データを生成する前に前記個人向けの変換されたキーに逆変換を適用するステップを含む。前記個人向けの変換されたキーは、前記外部の事前処理モジュールにおいて前記デスクランブリング処理の第1の部分を適用する結果として事前処理されたデータを含む。
【0028】
前記逆変換は、別個の区別されるステップとして実施されるか、または前記デスクランブリング処理の第2の部分に統合される。もし前記逆変換が前記デスクランブリング処理の第2の部分に統合されるのであれば、単一の数学的処理が前記逆変換および前記デスクランブリング処理の両方を実施してもよい。
【0029】
前記外部の事前処理モジュールにおいて、前記事前処理されたデータは、前記デスクランブリング処理の第1の部分を解読キーに適用することにより生成される。限定受信システムにおいて、このキーは、また、コントロールワード(control word)として知られている。
【0030】
前記デスクランバーの外部で前記デスクランブリング処理の第1の部分を実施し、さらには、特定の(すなわち承認された)デスクランバーのみが前記変換を反転させることができるように前記結果を変換することにより前記結果として得られる修正されたキーを個人向けにアレンジすることにより、他の受信器への再配分のための前記個人向けの変換されたキーを妨害することが有効に無駄になる。前記他の受信器は、前記変換を反転させる必要があり、かつ、前記特定の承認された受信器において実施されるような前記デスクランブリング処理の第2の部分の知見を有する必要があり、そのようなことは実質的に不可能である。
【0031】
請求項2および12の態様は、反復ブロック暗号化ベースのデスクランバーの使用を可能にする。有利には、承認された反復ブロック暗号化ベースのデスクランバーのための妨害されたキーは、未承認の反復ブロック暗号化ベースのデスクランバーにおいて使用することができない。
【0032】
請求項3−6および請求項13−15の態様は、有利には、反復ブロック暗号化ベースのデスクランバーの種々の他の代替の実施を可能にする。
【0033】
請求項7の態様は、ストリーム暗号化ベースのデスクランバーおよび公開キーベースのデスクランバーの使用を可能にする。有利には、承認されたストリーム暗号化ベースのデスクランバーまたは承認された公開キーベースのデスクランバーのための妨害されたキーは、未承認のストリーム暗号化ベースのデスクランバーまたは未承認の公開キーベースのデスクランバーでは使用することができない。
【0034】
本発明の一態様によれば、限定受信システムで使用するための受信器が提案される。本受信器は、1又は2以上の上述の特徴を有するデスクランバーを備える。
【0035】
従って、本デスクランバーは、有利には、受信器に統合され、本デスクランバーが限定受信システムで使用されることを可能にする。
【0036】
本発明の一態様によれば、限定受信システムで使用するための保安クライアントが提案される。本保安クライアントは、受信器の中間段階を経てヘッドエンドシステム(head-end system)から暗号化されたコントロールワードを受信するための入力を備える。本保安クライアントは、さらに、プロダクトキーを格納するように構成されたメモリを備える。本保安クライアントは、さらに、前記コントロールワードを取得するために前記プロダクトキーを用いて前記暗号化されたコントロールワードを解読するように構成された解読モジュールを備える。本保安クライアントは、さらに、修正されたコントロールワードを取得し、そして、前記修正されたコントロールワードを変換して個人向けの変換されたコントロールワードを得るために、前記コントロールワードにデスクランブリング処理の第1の部分を適用するように構成された事前処理モジュールを備える。本保安クライアントは、さらに、前記受信器に前記個人向けの変換されたコントロールワードを提供するための出力を備える。
【0037】
本発明の一態様によれば、限定受信システムの保安クライアントで使用するための方法が提案される。本方法は、受信器の中間段階を経てヘッドエンドシステムから暗号化されたコントロールワードを受け取るステップを含む。本方法は、さらに、前記コントロールワードを得るためにメモリからのプロダクトキーを用いて前記暗号化されたコントロールワードを解読するステップを含む。本方法は、さらに、修正されたコントロールワードを得るために前記コントロールワードにデスクランブリング処理の第1の部分を適用するステップを含む。本方法は、さらに、個人向けの変換されたコントロールワードを得るために前記修正されたコントロールワードを変換するステップを含む。本方法は、さらに、前記受信器に前記個人向けの変換されたコントロールワードを提供するステップを含む。
【0038】
前記事前処理モジュールにおいて、事前処理されたデータは、前記受信器のデスクランブルモジュールにおけるデスクランブリング処理の第2の部分で使用するために生成される。前記デスクランブリング処理の第1の部分は、典型的には、解読キーに適用される。限定受信システムにおいて、このキーは前記コントロールワードとして知られている。
【0039】
前記デスクランバーの外部で前記デスクランブリング処理の第1の部分を実行し、さらには、特定の(すなわち承認された)デスクランバーのみが前記変換を反転させることができるように前記結果を変換することにより前記結果として得られる修正されたキーを個人向けにアレンジすることにより、他の受信器への再配分のための前記個人向けの変換されたキーを妨害することが有効に無駄になる。前記他の受信器は、前記変換を反転させる必要があり、かつ、前記承認された受信器において実施されるようなデスクランブリング処理の第2の部分の知見を有する必要があり、そのようなことは実質的に不可能である。
【0040】
本発明の一態様によれば、限定受信システムで使用するためのヘッドエンドシステムが提案される。本ヘッドエンドシステムは、さらに、修正されたコントロールワードを取得し、そして、前記修正されたコントロールワードを変換して個人向けの変換されたコントロールワードを取得するために、コントロールワードにデスクランブリング処理の第1の部分を適用するように構成された事前処理モジュールを備える。本ヘッドエンドシステムは、さらに、1又は2以上の前記特徴を備えた受信器に暗号文と前記個人向けの変換されたコントロールワードを提供するための出力を備える。
【0041】
前記事前処理モジュールにおいて、事前処理されたデータは、前記受信器のデスクランブルモジュールにおけるデスクランブリング処理の第2の部分で使用するために生成される。前記デスクランブリング処理の第1の部分は、典型的には、解読キーに適用される。限定受信システムにおいて、このキーは前記コントロールワードとして知られている。
【0042】
前記デスクランバーの外部で前記デスクランブリング処理の第1の部分を実施し、さらには、特定の(すなわち承認された)デスクランバーのみが前記変換を反転させることができるように前記結果を変換することにより前記結果として得られる修正されたキーを個人向けにアレンジすることにより、他の受信器への再配分のための前記個人向けの変換されたキーを妨害することが有効に無駄になる。前記他の受信器は、前記変換を反転させる必要があり、かつ、前記承認された受信器において実施されるようなデスクランブリング処理の第2の部分の知見を有する必要があり、そのようなことは実質的に不可能である。
【0043】
本発明の一態様によれば、コンピュータプログラムエレメントが提案される。本コンピュータプログラムエレメントは、プロセッサによって実行されたときに、1又は2以上の前記特徴を有するホワイトボックスデスクランバーで使用するための方法を実行するように構成される。
【0044】
このことは、有利には、前記デスクランバーがソフトウェアで実施されることを可能にする。
【0045】
以下、本発明の実施形態が更に詳細に説明されるであろう。しかしながら、それらの実施形態は、本発明の保護のための範囲を限定するものではない。
【0046】
本発明の態様は、図面に示される代表的な実施形態を参照して更に詳細に説明されるであろう。
【図面の簡単な説明】
【0047】
【図1a】従来技術による受信器と保安クライアントを示す図である。
【図1b】他の従来技術による受信器と保安クライアントを示す図である。
【図1c】他の従来技術による受信器と保安クライアントを示す図である。
【図2a】従来技術によるデスクランバーのブロック図である。
【図2b】他の従来技術によるデスクランバーのブロック図である。
【図3】従来技術によるデスクランバーを更に詳細に示す図である。
【図4】従来技術によるブロック暗号化ラウンドモジュールを示す図である。
【図5】他の従来技術によるデスクランバーを更に詳細に示す図である。
【図6】他の従来技術によるブロック暗号化ラウンドモジュールを示す図である。
【図7】従来技術によるブロック暗号化ベースのデスクランバーを示す図である。
【図8】変換機能と暗号化を概略的に説明するための図である。
【図9】本発明の例示的な実施形態による受信器と保安クライアントを示す図である。
【図10a】本発明の例示的な実施形態によるデスクランバーを示すブロック図である。
【図10b】本発明の他の例示的な実施形態によるデスクランバーを示すブロック図である。
【図11】本発明の他の例示的な実施形態による受信器と保安クライアントを示す図である。
【図12】本発明の例示的な実施形態によるデスクランバーを示す図である。
【図13】本発明の例示的な実施形態によるブロック暗号化ラウンドモジュールを示す図である。
【図14】本発明の例示的な実施形態によるホワイトボックス反復ブロック暗号化ベースのデスクランバーを示す図である。
【図15】本発明の他の例示的な実施形態によるホワイトボックス反復ブロック暗号化ベースのデスクランバーを示す図である。
【図16】本発明の他の例示的な実施形態によるホワイトボックス反復ブロック暗号化ベースのデスクランバーを示す図である。
【図17】従来技術によるストリーム暗号化ベースのデスクランバーを示す図である。
【図18】本発明の例示的な実施形態によるホワイトボックスストリーム暗号化ベースのデスクランバーを示す図である。
【図19】本発明の他の例示的な実施形態によるホワイトボックスストリーム暗号化ベースのデスクランバーを示す図である。
【図20】従来技術による公開キーベースのデスクランバーを示す図である。
【図21】本発明の例示的な実施形態によるホワイトボックス公開キーベースのデスクランバーを示す図である。
【図22】本発明の例示的な実施形態による限定受信システムを示す図である。
【図23】本発明の例示的な実施形態によるホワイトボックスデスクランバーにおける方法を示す図である。
【図24】本発明の他の例示的な実施形態によるホワイトボックスデスクランバーにおける方法を示す図である。
【図25】本発明の例示的な実施形態による保安クライアントにおける方法を示す図である。
【発明を実施するための形態】
【0048】
本発明は、妨害(intercept)されたキーが、暗号文の解読のための未承認のホワイトボックス(whitebox)・デスクランブルモジュールで使用されることを防止する。本実施形態では、例えば図9に示されるような、個人向け(personalized)のホワイトボックス・デスクランバーを備えた受信器が提案され、これにより、個人向けデスクランバーのデスクランブリング処理の一部がデスクランバー外部の事前処理モジュールにおいて実行される。
【0049】
図9を参照すると、個人向けデスクランバー311は、典型的には、受信器111において、難読化(obfuscated)されたソフトウェア・モジュールとして実施される。或いは、個人向けデスクランバーは、プログラマブル・ハードウェアで実施されてもよい。限定受信ネットワーク(conditional access network)における各受信器は、典型的には、固有の個人向けデスクランバー311を備える。保安クライアント211は、典型的には、受信器111と通信可能に接続され、共通のデスクランブリング機能を実現するために個人向けデスクランバー311にデスクランバー固有のキーに関連したデータを提供する。本実施形態では、保安クライアント211は、個人向けデスクランバー311のデスクランブリング処理の一部が保安クライアント211の事前処理モジュール811で実施される。保安クライアント211は、典型的には、スマートカードのハードウェアで実施される。事前処理モジュール811は、保安クライアント211上で動作する難読化されたソフトウェア・モジュールとして実施されてもよい。
【0050】
或いは、デスクランバー固有のキーに関連するデータは、場合によってはスマートカードの中間段階を経てヘッドエンドシステムから受信器に提供される。そして、事前処理モジュール811はヘッドエンドシステムの一部である。
【0051】
本発明による個人向けホワイトボックス・デスクランバーは、デスクランバー固有の事前処理されたキーに関連するデータを入力として使用する。
【0052】
限定受信システムでは、用語‘CW’または‘コントロールワード(control word)’は、‘キー(key)’の同義語である。
【0053】
ソフトウェア難読化技術は、中間結果を難読化するための変換機能を利用する。変換機能の概念は暗号化(encryption)とは異なり、それは、図8を参照して概略的に明らかにされる。
【0054】
複数のデータエレメントを有する入力ドメインIDが非変換データ空間に存在すると仮定する。或るキーを用いる暗号化機能Eは、出力ドメインODにおける対応の暗号化されたデータエレメントを配信するために入力として入力ドメインIDのデータエレメントを受け取るように構成される。解読機能Dを適用することにより、入力ドメインIDのデータエレメントの元のデータエレメントは、出力ドメインODのデータエレメントに解読機能Dを適用することにより得ることができる。非保安環境(典型的には、“ホワイトボックス”と称される)では、敵対者(adversary)は、キーを導出できるような、入力データ及び出力データ並びに暗号化機能Eを知っていると考えられる。
【0055】
入力ドメインID及び出力ドメインODに変換機能を適用することにより、すなわち変換機能が入力処理(input operation)および出力処理(output operation)であることにより、追加的なセキュリティが非保安環境で得ることができる。変換機能T1は、データエレメントを、入力ドメインIDから、変換されたデータ空間の変換された入力ドメインID’の変換されたデータエレメントにマッピング(map)する。同様に、変換機能T2は、データエレメントを、出力ドメインODから、変換された出力ドメインOD’にマッピングする。変換された暗号化機能E’および解読機能D’は、変換されたキーを用いてID’とOD’との間で定義される。T1及びT2は一対一の対応関係(bijections)にある。
【0056】
暗号化技術と共に変換機能T1,T2を用いることは、出力ドメインODの暗号化されたデータエレメントを得るために入力ドメインIDのデータエレメントを暗号化機能Eに入力する代わりに、ドメインID’の変換されたデータエレメントが、変換機能T1を適用することにより、変換された暗号化機能E’に入力されることを意味する。変換された暗号化機能E’は、暗号化処理において逆変換機能T1−1及び/又はT2−1を組み合わせて、キーのような秘密情報を保護する。そして、ドメインOD’の変換された暗号化されたデータエレメントが得られる。保安部分(secured portion)においてT1及び/又はT2を実施することにより、暗号化機能Eまたは解読機能Dについてのキーは、変換されたデータ空間における入力データ及び出力データを解析する場合に読み取ることができない。
【0057】
変換機能T1,T2のうちの一つは、非自明(non-trivial)な機能でなければならない。もしT1が自明な機能であれば、入力ドメインID及びID’は同一のドメインである。もしT2が自明な機能であれば、出力ドメインは同一のドメインである。
【0058】
ホワイトボックス暗号化において、この処理は、攻撃者が機能E及びD並びにID,ODにおけるデータエレメントにアクセスする敵対環境(hostile environment)において完全に実施されると考えられる。ホワイトボックス暗号化は、機能E及びDについてのキー(の一部)を保護することによりセキュリティを提供する。受信器の保安部分(secured portion)またはスマートカードのうちの少なくとも一つにおいて変換機能T1およびT2を適用することにより、ホワイトボックス暗号化において適用されるようなルックアップテーブルLnは、変換された空間において解明(resolve)できない。
【0059】
デスクランバーおよび保安クライアントのソフトウェア実施は、ソフトウェアアプリケーションを保護するためのソフトウェア変換を使用する。変換は、典型的には、ホワイトボックス暗号化において使用され、ここで、解読キーは、暗号文Cを解読することができるソフトウェアプログラムを実現するアルゴリズムの解読ステップとマージ(merge)される。
【0060】
図10aは、図2bのホワイトボックス実施を示し、ここで、キーは、変換されたフォーマットで解読モジュール3111に提供される。変換されたキーT(K)は、解読モジュール3111のホワイトボックス実施にロードされる。解読モジュール3111は、キーKで解読処理を適用する前に、T(K)変換してキーKを得る。解読モジュール3111の実施は、解読モジュール3111およびT(K)の値を知る攻撃者がKを復元できないことを確保する。このスキームの変形において、暗号文の入力C及び/又は解読された出力Mは、同様に変換することができない。
【0061】
図10bは、ホワイトボックスデスクランバー3112に入力される前に事前処理されたデスクランバー固有のキーに関連したデータTi(K)を使用する個人向けホワイトボックスデスクランバー3112を示す。インデックス‘i’は、特定のデスクランバー3112を示すために使用される。事前処理されたキーに関連するデータTi(K)は、対応する個人向けホワイトボックスデスクランバー3112のみで使用できるように解釈(construe)される。加えて、各受信器はキーの個人向け変換Tiを使用する。
【0062】
放送ストリームCを解読するためのデスクランバー3112のホワイトボックス実施に、変換されたキーTi(K)がロードされる。デスクランバー3112の実施は、上記実施とTi(K)の値を知る攻撃者がキーKを復元できなことを確保する。また、攻撃者は、個人向け変換Tjを用いる個人向けホワイトボックスデスクランバーを備えた別の受信器(‘j’で示される)についてのキー関連のデータTj(K)を生成することができないであろう。
【0063】
例えば図5、図17、図20に示されるような公知のデスクランバーでは、入力キーKは、妨害されて、放送ストリームCを解読するために他の受信器に再配信され得る。なぜならば、キーに関連したデータTi(K)は、受信器に固有であり、このキーに関連したデータTi(K)は、他の受信器に役立たないからである。従って、入力キー関連のデータTi(K)の妨害と他の受信器への再配信は、有利には、もはや有益でない。
【0064】
図11は、本発明の例示的な実施形態による個人向けホワイトボックスデスクランバー311を備えた受信器111のさらに詳細な例を示す。この図11の例では、個人向けキーデータTi(CW)は、スマートカードの保安クライアント211においてCWを事前処理することにより生成される。更に具体的には、事前処理モジュール811は、受信器111のデスクランバー311の外部のCWを事前処理するために保安クライアント211で使用される。これとともに、個人向けデスクランバー311のデスクランブリング処理の部分が事前処理モジュール811で実施される。事前処理モジュール811は、個人向けキーデータTi(CW)をデスクランバー311に提供する前に変換機能を実施する。或いは、CWは、ヘッドエンドシステムの事前処理モジュールで事前処理され、場合によってはスマートカードの中間段階を経て、ヘッドエンドシステムから受信器に伝送されてもよい。
【0065】
受信器111は、例えば公知の手法で、放送ネットワークから入力ストリーム‘input’を受信する。限定受信システムでは、入力ストリームは、典型的には、MPEG−2またはDVBトランスポートストリームであり、TVチャンネル(すなわち、番組ストリーム)のみならず、番組ストリームを解読するために必要なキーを含む暗号化された情報を含む。番組ストリームの解読のために、キーは、一般にコントロールワードと呼ばれる。受信器111におけるデマックス(demux)/フィルタ(filter)モジュール901は、暗号文であるユーザ選択の番組ストリーム‘C’に対応するトランスポートストリームの部分をデスクランバー311に転送(forward)する。デマックス/フィルタモジュール901は、さらに、上記暗号化された情報から、EMM(Entitlement Management Messages)およびECM(Entitlement Control Message)のような、番組ストリームCに関連する情報を抽出して保安クライアント211に送る。ECMは、プロダクトキーPKで暗号化されたCWを含み、それは図11においてEPK(CW)として示されている。保安クライアント211は、ECMを受け取り、それを、保安キー記憶モジュール903から読み出された事前記憶のPK値で解読モジュール902において解読する。事前処理モジュール811は、CWを処理して、デスクランバー固有の変換されたフォームTi(CW)にする。保安クライアント211におけるデスクランバー固有のCW変換は、デスクランバー311から事前処理モジュール811に通知される受信器識別子‘i’の情報を使用して受信器111における個人向けデスクランバーとリンクされる。個人向けデスクランバー311のデスクランブリング処理の一部は、事前処理モジュール811で実施される。
【0066】
個人向けデスクランバー311における変換されたキーTi(CW)の使用は、安全である必要がある。このことは、CWを、変換されたキーTi(CW)から得ることは困難であり、個人向けですな311から得ることが困難であることを意味する。また、異なる特定の個人向けデスクランバー111についての有効な変換されたキーを計算することが困難である。
【0067】
次の代表的な実施形態は、どのようにして個人向けデスクランバーが、ブロック暗号化に基づいて個人向けホワイトボックスデスクランバーを用いて保護されるのかを示す。
【0068】
図12の代表的な実施形態では、個人向けデスクランバーは、個人向けブロック暗号化器312である。図3に示されるブロック暗号化器305と同様に、暗号文Cのブロックは、ブロック暗号化ラウンドモジュール4111,4112を用いて‘n’ラウンドにわたって処理されて、平文メッセージMになる。個人向けブロック暗号化器312では、各ラウンド‘r’は、キー分割(key partitioning)モジュール511における受信された個人向けキーデータTi(K)から導出される、それ自身の個人向けラウンドキー‘PRKir’を入力として受け取る。
【0069】
図13は、図12に示されるようなブロック暗号化ラウンドモジュール4111,4112として使用される個人向けブロック暗号化ラウンドモジュール412の例を示す。ブロック暗号化ラウンドモジュール412は、図4に示される拡散モジュール601と同様に動作する拡散モジュール611を備える。個人向けラウンドキー‘PRKir’は、個人向け混合モジュール711に入力される。この個人向けラウンドキーは、ラウンド‘r’および個人向けデスクランバー‘i’について、固有のキー‘UKir’とビットごとのXORを適用することにより計算される。個人向け混同モジュールにおける同一の固有のキーとの反復されるXOR演算は個人向けラウンドキーの変換を解除(remove)する。
【0070】
図14には、図12の個人向けブロック暗号化器312のホワイトボックスルックアップテーブルドリブンの実施313の簡略化された例が示されている。図14の例において、変換されたバイナリキー‘Ti(K)=1011’は、図7の従来技術の例に示されるような共通のキー‘K=11’の個人向けバージョンである。また、個人向けキーTi(K)は、外部の事前処理モジュール811において2ビット値から4ビット値に既に拡張(expand)されている。ブロック暗号化ラウンドモジュール4121,4122は、図7のブロック暗号化ラウンドモジュール4031,4032について示されるものと同様の方法で動作する。図14の本発明の例示的な実施形態は、個人向けデスクランバー313が個人向け入力キーTi(K)に関して動作する点で、図7と異なる。
【0071】
図14の例では、キー分割モジュール5121は、変換されたキーに含まれる個人向けラウンドキーのストリングから2ビットの個人向けラウンドキー‘PRKir’を選択する。変換されたキー‘Ti(K)=1011’は、‘PRKi1=10’および‘PRKi2=11’の連結(concatenation)である。個人化モジュール5122は、プログラムされた固有のキー‘UKir’とのXOR演算
【0072】
【数3】
【0073】
を用いて、各‘PRKir’を変換する。固有のキー‘UKi1=11’および‘UKi2=01’は、個人向けラウンドキーを、ブロック暗号化ラウンドモジュール4121,4122で使用される共通のラウンドキーに変換するために使用される。
【0074】
図14において、暗号文‘C=11’は、第1のブロック暗号化ラウンドモジュール4121に入力される。拡散モジュール611は、入力値‘C=11’を‘10’に変更するためにルックアップテーブルを使用する。混合モジュール711は、ルックアップテーブルを使用して、このルックアップテーブルの適切なカラムを選択するための第1の共通ラウンドキー値‘11’を用いて値‘10’を‘01’に変換する。中間結果‘C1=01’は、第2のブロック暗号化ラウンドモジュール4122に入力される。拡散モジュール611は、ルックアップテーブルを使用して、入力値‘C1=01’を‘11’に変更する。拡散モジュール711は、ルックアップテーブルを使用して、このルックアップテーブルの適切なカラムを選択するための第2の共通ラウンドキー値‘01’を用いてバイナリ値‘11’を‘10’に変換する。最終的な結果‘M=10’が、デスクランブルされたメッセージである。
【0075】
個人化モジュール5122について示されるXOR演算
【0076】
【数4】
【0077】
は、ブロック暗号化ラウンドモジュール4121,4122に統合されてもよい。これは図15に示されており、ここで、個人向け混合モジュール712は、変換されたキー‘Ti(K)=1011’から‘PRKir’が抽出されるときに、それら‘PRKir’を処理する。混合モジュール712は、混合モジュール712におけるルックアップテーブルのカラムオーダーを変更することにより、個人向けにアレンジ(personalize)される。キー分割モジュール5121は、変換されたバイナリキー‘Ti(K)=1011’を受け取り、そして、それを、二つの個人向けラウンドキー‘PRKi1=10’および‘PRKi2=11’に分割(partition)する。混合モジュール712は、個人向けラウンドキー‘PRK’を処理して正しい出力を得るためのカラムのオーダーの特定の配列により個人向けにアレンジされている。他の受信器は、それとは異なった個人向け混合モジュールを有し、受信器‘i’についての変換されたキーで暗号文を解読することができない。
【0078】
図15において、暗号文‘C=11’は、第1のブロック暗号化ラウンドモジュール4131に入力される。拡散モジュール611は、ルックアップテーブルを使用して、入力値‘C=11’を‘10’に変更する。個人向け混合モジュール712は、ルックアップテーブルを使用し、このルックアップテーブルの適切なカラムを選択するための第1の個人ラウンドキー値‘10’を用いて、値‘10’を‘01’に変換する。中間段階の結果‘C1=01’は、第2のブロック暗号化ラウンドモジュール4132に入力される。拡散モジュール611は、ルックアップテーブルを使用して、入力値‘C1=01’を‘11’に変更する。個人向け混合モジュール712は、ルックアップテーブルを使用して、このルックアップテーブルの適切なカラムを選択するための第2の個人ラウンドキー値‘11’を用いてバイナリ値‘11’を‘10’に変換する。最終的な結果‘M=10’はデスクランブルされたメッセージである。
【0079】
図16に、個人向けデスクランブルモジュールとしてのブロック暗号化器の代替の実施形態が示されており、ここで、各ブロック暗号化ラウンド機能4141,4142における拡散機能は、変換テーブルのセットで予めプログラムされている。各変換テーブルは、ブロック暗号化ラウンド4141,4142に入力される個人向けラウンドキー‘PRKir’に応じて、データ変換を適用する。図16の例では、変換された入力バイナリキー‘PRKi1=01’は、キー分割モジュール5121において二つの個人向けラウンドキー‘PRKi1’および‘PRKi2’に分割される。個人向け混合モジュール713においては、個人向けラウンドキー‘PRK’の各ビットは、対応のテーブルが使用されるべきか否かを示す。このようにして、個人向け混合モジュール713は、正しい出力を生成する。
【0080】
図16において、2ビットの暗号文‘C=11’が、第1のブロック暗号化ラウンドモジュール4141に入力される。拡散モジュール611は、上記暗号文をバイナリ値‘10’に変換し、それは個人向け混合モジュール713に入力される。個人向けラウンドキー‘PRKi1=01’は、どの変換テーブルがバイナリ入力‘10’に適用されるべきであるかを決定するために、第1のブロック暗号化ラウンドモジュール4141の個人向け混合モジュール713によって使用される。PRKi1の第1のビットは‘0’に等しく、それは、第1の変換テーブルを使用しないものと解釈される。PRKi1の第2のビットは‘1’に等しく、それは、第2の変換テーブルに従って入力‘10’を‘01’に変換するものと解釈される。バイナリ値‘01’は、第2のブロック暗号化ラウンドモジュール4142に提供され、ここで、拡散モジュール611は、最初に、そのデータを‘01’から‘11’に変換する。このデータは、第2のブロック暗号化ラウンドモジュール4142の個人向け混合モジュール713に入力される。PRKi2の第1のビットは‘0’に等しく、それは、第1の変換テーブルの後の結果について第2変換テーブルを使用しないと解釈される。第2のブロック暗号化ラウンドモジュール4142の出力は、個人向けデスクランバー315の最終的な結果であり、従って、デスクランブルされたメッセージは‘M=10’に等しい。
【0081】
図16に示されるようなブロック暗号化器を備えた別の受信器は、典型的には、異なる個人向け混合モジュールでプログラムされ、即ち個人向け混合モジュールにおける異なる変換テーブルのセットでプログラムされ、従って有利には、他の受信器の妨害された変換された入力バイナリキー‘Ti(K)’で入力暗号文Cを解読することはできない。
【0082】
本発明は、種々の例に示されるような2つのブロック暗号化ラウンドでの2ビットのデータ処理に限定されるものではないことが理解される。例えば、AESブロック暗号化は、典型的には、128ビットの暗号化ブロックサイズと、10,12または14ブロック暗号化ラウンドにおける128,192または256ビットのキーサイズを使用する。例えば、DESブロック暗号化は、典型的には、64ビットの暗号化ブロックサイズと、16ブロック暗号化ラウンドにおける56ビットのキーサイズを使用する。
【0083】
次の例示的な実施形態は、どのようにして個人向けデスクランバーが、ストリーム暗号化に基づく個人向けホワイトボックスデスクランバーを用いて保護されるかを示す。
【0084】
図18は、個人向けホワイトボックスストリーム暗号化モジュール316の例を示す。事前処理されたキーに関連するデータTi(K)は、個人向けストリーム暗号化モジュール316に入力される。Ti(K)は、は、個人向けストリーム暗号化モジュール316の外部の事前処理モジュール811におけるキー拡張機能とセットアップ機能によって事前処理されたキーKを含む。また、事前処理されたキーKIは変換される。Ti(K)は、暗号文CをデスクランブルするためにXORモジュール415に入力される。ブロック暗号化器の実施形態の個人向け混合モジュールにおけるテーブルの動作と同様に、XORモジュールにおけるXORテーブルは、変換を反転(inverse)させるように個人向けにアレンジ(personalize)される。
【0085】
図19は、代替の個人向けホワイトボックスストリーム暗号化モジュール317の例を示す。個人向けキーに関連するデータTi(K)は、個人向けストリーム暗号化モジュール317に入力される。Ti(K)は、個人向けストリーム暗号化モジュール317の外部の事前処理モジュール811におけるセットアップ機能によって事前処理されたキーKを含む。また、事前処理されたキーKは変換される。Ti(K)は、個人向けの拡張されたキーPEKを得るためにキー拡張モジュール513に入力される。PEKは、暗号文CをデスクランブリングするためにXORモジュール416に入力される。ブロック暗号化実施形態の個人向け混合モジュールにおけるテーブルの動作と同様に、XORモジュールにおけるXORテーブルは、変換を反転させるように個人向けにアレンジされてもよい。或いは、キー拡張モジュール513は逆変換を実施する。
【0086】
次の例示的な実施形態は、どのようにして個人向けデスクランバーが、公開キー暗号化に基づく個人向けホワイトボックスデスクランバーを用いて保護されるかを示す。
【0087】
図21は、個人向け公開キー暗号化モジュール318の例を示す。キーKの値は、外部の事前処理モジュール811においてTi(K)={K−K1}を設定することにより隠匿されている。個人向け累乗モジュール514は、入力Ti(K)を用いて、個人向けの拡張されたキー‘PEK=G(K+K1) mod N’を計算する。従って、公開キーアルゴリズムの個人向けバージョンは、‘K1’の値を変更することにより生成される。得られた拡張された個人向けキーPEKは、入力暗号文Cを解読するために個人向け解読モジュール417に入力される。暗号文Cの解読部分として、暗号文Cは、個人向け解読モジュール417に入力される前に、修正モジュール4051において中間暗号文C1に修正されてもよい。
【0088】
図22は、本発明の例示的な実施形態の限定受信システム260を示す。ヘッドエンドシステム250は、配信ネットワーク270を介して、ECM、EMM、およびCWでスクランブルされたコンテンツストリーム(即ち暗号文)を1又は2以上の受信器111に送信する。ECMは、典型的には、1又は2以上のCWを含む。ECMは、受信器111と通信可能に接続された保安装置280によって事前処理される。受信器は、個人向けデスクランバー311,312,313,314,315,316,317,318を備える。保安装置280は、例えばスマートカードであり、典型的には、図11で述べたような保安クライアント211を含む。CWは、ヘッドエンドシステム250における事前処理モジュール811で事前処理され、または代替的には、保安クライアント211における事前処理モジュール811で事前処理される。
【0089】
任意の実施形態に関連して述べられた任意の特徴は、単独で使用されてもよく、または、上述した他の特徴と組み合わせて使用されてもよく、また、任意の他の実施形態の1又は2以上の特徴と組み合わせて使用されてもよく、または、任意の他の実施形態の組み合わせであってもよい。本発明の一実施形態は、コンピュータシステムで使用するプログラムプロダクトとして実施されてもよい。このプログラムプロダクトのプログラム(または複数のプログラム)は、上記実施形態(本明細書で述べた方法を含む)の機能を規定し、そして、種々のコンピュータ読取り可能な記録媒体に格納することができる。例示的なコンピュータ読取り可能な記録媒体は、(i)情報が恒久的に保持される書き込み禁止型の記録媒体(例えば、CD−ROMドライブによって読取り可能なCD−ROMデスク、ROMチップ、または、任意のタイプの固体不揮発性半導体メモリのような、コンピュータ内の読取り専用メモリ装置)、および、(ii)変更可能な情報が格納される書き込み可能型の記録媒体(例えば、デスケットドライブ内のフロッピー(登録商標)ディスク、またはハードデスクドライブ、または任意のタイプの固体ランダムアクセス半導体メモリまたはフラッシュメモリ)を含むが、これらに限定されるものではないことが理解される。また、本発明は、上述した実施形態に限定されるものではなく、それは、添付の請求項の範囲内で変形することができる。
【符号の説明】
【0090】
111:受信器
211:保安クライアント
250:ヘッドエンドシステム
260:限定受信システム
270:配信ネットワーク
280:保安装置
308:ストリーム暗号化器
309:公開キー暗号化
312:個人向けブロック暗号化器
404:XORモジュール
415:XORモジュール
416:XORモジュール
417:解読モジュール
505:累乗モジュール
511:キー分割モジュール
513:キー拡張モジュール
514:累乗モジュール
611:拡散モジュール
711:混合モジュール
712:混合モジュール
811:事前処理モジュール
901:デマックス/フィルタモジュール
902:解読モジュール
903:保安キー記憶モジュール
3111:解読モジュール
3112:ホワイトボックスデスクランバー
4051:修正モジュール
4052:解読モジュール
4111:ブロック暗号化ラウンドモジュール
4112:ブロック暗号化ラウンドモジュール
4121:ブロック暗号化ラウンドモジュール
4122:ブロック暗号化ラウンドモジュール
4131:第1のブロック暗号化ラウンドモジュール
4132:第2のブロック暗号化ラウンドモジュール
4141:ブロック暗号化ラウンド機能
4142:ブロック暗号化ラウンド機能
5041:セットアップモジュール
5042:キー拡張モジュール
5121:キー分割モジュール
5122:個人化モジュール
【技術分野】
【0001】
本発明は、ホワイトボックス・デスクランバーに関し、更に詳しくは、限定受信システム(conditional access system)の受信器におけるホワイトボックス・デスクランバーに関する。
【背景技術】
【0002】
TVアプリケーションにおいて、暗号化(スクランブル)された放送ストリームは暗号文‘C’を形成し、それは、デスクランブルされた放送ストリーム‘M’を得るために、放送受信器で解読(デスクランブル)される。代表的には、複数の放送受信器は同一の放送ストリームを受信し、その放送ストリームを同一のキー(コントロールワード)‘CW’で解読する。CWの値は、定期的に更新され、承認された加入者が解読することができるエンタイトルメント・コントロール・メッセージ‘ECM’での暗号化形式で受信器に配信される。
【0003】
ECM処理は、種々の方法で実施することができる。図1aは、ECM処理がスマートカードで実施される例を示し、それは、安全な実行環境を提供するために、ハードウェアによる不正防止技術(hardware tamper resistance techniques)を用いている。放送ストリームCの解読は、‘M’で表された、デスクランブルされた放送ストリームを取得するための受信器101におけるチップのハードウェア回路301で実施される。保安クライアント201は、ECMからCWを取得するためのスマートカードのハードウェアで実施される。ハードウェア不正防止技術は攻撃に対する実施を保護する。
【0004】
図1bは、他の例を示し、ここでのECM処理はソフトウェア技術に基づいている。ソフトウェアは、受信器102においてソフトウェア保安クライアント202として稼動し、デスクランブラー・チップにロード(load)されたキー階層構造に基づいて暗号化形式で受信器102のハードウェアデスクランバー301にキー(CW)をロードする。
【0005】
図1cは、他の例を示し、ここでの受信器103のデスクランブリング機能部302および保安クライアント202の両方はソフトウェアで実施される。このソフトウェア実施の受信器103は、例えば、チップセットの読み出し専用メモリに格納されたチップセット・ユニークキー‘CSUK’またはチップセット・シリアルナンバー‘CSSN’のような、ハードウェア・ホック(hardware hook)を備えていない。その結果、デスクランブリング・機能部302は、このようなハードウェア・ホックに基づく特定の受信器の制約を受けず、ハッキング攻撃に対してソフトウェア実施の受信器302をいっそう脆弱にする。
【0006】
図2aは、デスクランブルモジュールの例を示す。暗号文Cは、デスクランブルモジュール303において固定キーKで平文(plaintext)Cに解読される。キーKは、デスクランブルモジュール303に組み込まれ、またはプリロード(preload)されている。
【0007】
図2bは、他のデスクランブルモジュールを示し、ここでのデスクランブルモジュール304の多くの例は、外部ソースからKの値をロードすることによりなされる。
【0008】
DVB(digital video broadcasting)、DES(data encryption standard)、AES(advanced encryption standard)のような多くの既存の放送デスクランブリング・アルゴリズムはブロック暗号化に基づいている。ブロック暗号化は、入力された平文を固定サイズの複数のブロックに分割することで作動する。各ブロックは、比較的単純なファンクションを繰り返し適用することにより処理される。このアプローチは、反復ブロック暗号化(iterated block cipher)として知られている。各反復処理は、ラウンド(round)と呼ばれ、反復されるファンクションは、ラウンドファンクションと呼ばれる。代表的なブロック暗号化は、4ラウンドないし32ラウンドを有する。
【0009】
図3は、図2bのデスクランブリングモジュール304として使用されるような、従来の反復ブロック暗号化器305の典型的な内部動作を示す。暗号文Cが受信されてブロックに分割される。暗号文Cの各ブロックは、‘n’ラウンドの処理を経て平文メッセージ‘M’になる。各ラウンド‘r’は、入力として独自のラウンドキー‘RKr’を受信し、それは、キースケジュールモジュール501において元のラウンドキー‘K’から計算される。ホワイトボックス暗号化では、各ブロック暗号化ラウンドモジュール4011,4012は、典型的には、キー‘K’およびラウンドキー‘RKr’の値を隠すテーブルルックアップ操作のシーケンスを用いて実施される。
【0010】
或いは、図2aに示されるようなデスクランブリングモジュール303を用いる固定キー変化(variant)が、反復ブロック暗号化器305において使用されてもよい。そして、図5に示されるようなキースケジュールモジュール501は、各ラウンドに固定入力‘RKr’を組み込むモジュールで置き換えられる。
【0011】
図3に示されるようなブロック暗号化ラウンドモジュール4011,4012が、図4においてさらに詳細に示されている。ブロック暗号化ラウンドファンクション401は、順次的に作動する二つのモジュールを備える。拡散モジュール(diffusion module)601は、入力Cr−1を無作為に修正(modify)する。このようにして得られたC‘r−1は、混同モジュール(confusion module)701に入力される。混合モジュール701の目的は、ラウンドキーRKrを暗号文C’r−1と混合(mix)して、次の解読ラウンドのための出力Crを生成するために関連のラウンドキーRKrを提供させる。
【0012】
ブロック暗号化ラウンドモジュールは、典型的にはテーブルドリブン(table-driven)のルックアップテーブル実施を用いたホワイトボックス暗号化において、混合機能を実施する固有の機能を備えることにより個人向けアレンジ(personalize)してもよい。従来技術のテーブルドリブンのルックアップテーブル実施の例は、図7を用いて更に詳細に説明されるであろう。
【0013】
AES暗号化を用いたホワイトボックス反復ブロック暗号化は、「“White-Box Cryptography and an AES Implementation”, by S. Chow、P. Eisen、H. Johnson、P.C. van Oorschot, Proceedings of the 9th Annual Workshop on Selected Areas in Cryptography, August 2002」により知られている。AESのホワイトボックス実施において、各ブロック暗号化ラウンドは、サブバイト(SubBytes)、シフトロー(ShiftRows)、ミックスカラム(MixColumns)、アッドラウンドキー(AddRoundKey)の4つの部分から構成される。最初の3つの部分は、拡散モジュールにおける処理に対応し、アッドラウンドキーの部分は混合モジュールと互換性を有する。
【0014】
或るモジュールから次のモジュールへ受け渡される中間値を妨害から保護するために、ホワイトボックス反復ブロック暗号化実施は、典型的にはランダム置換(random permutation)をルックアップテーブルの出力に適用し(図7参照)、そして、その逆置換を次のルックアップテーブルに適用する。
【0015】
ランダム置換を適用する簡略化されたブロック暗号化器306は、ブロック暗号化ラウンドモジュール4021,4022における二つのラウンドから構成され、図5には、2ビットのキーサイズとブロックを有する場合が示されている。図6には、ブロック暗号化ラウンドモジュール402が更に詳細に示されている。図5において、各矢印は、2ビットのデータフローを表している。図6では、各矢印は、単一ビットのデータフローを表している。拡散モジュール602は、入力Cr−1の2ビットをスワップし、第2ビットをそれらのバイナリ和(XOR)により置き換える。このようにして得られたC’r−1は、混合モジュール702に入力される。混合モジュール702は、C’r−1の二つの入力されたビットとラウンドキーRKrの関連ビットとのバイナリ加算(XOR)を実施する。図5を参照すると、キースケジュールモジュール502は、キーKを受信し、そして、二つのラウンドキー
【0016】
【数1】
【0017】
を生成し、ここで、‘10’は、バイナリベクトルを表し、
【0018】
【数2】
【0019】
は排他的論理和演算(XOR)を表す。図7には、図5および図6の簡略化されたブロック暗号化器306のホワイトボックスルックアップテーブルドリブン実施307の簡略化された例が示されている。図7の例では、キースケジュールモジュール503は、バイナリキー‘K=11’を受信し、テーブルルックアップを用いて、キーKを二つのビット、すなわち‘RK1=11’および‘RK2=01’に展開(expand)する。テーブルルックアップは、特定のキー入力に続く所定のパス(paths)により視覚化される。キー入力K=11についての矢印に続いて、二つのラウンドキー11および01が見つけられる。入力された暗号文について、バイナリ値‘C=11’を有するこの例では、第1ブロック暗号化ラウンドモジュール4031は、拡散モジュール603におけるテーブルルックアップを使用して中間出力‘C0=10’を生成し、それは混合モジュール703に入力される。混合モジュール703は、ラウンドキーRK1を加え、第2ブロック暗号化ラウンドモジュール4032に入力される出力‘C1=01’をもたらす。第2ブロック暗号化ラウンドモジュール4032では、同様にして、拡散モジュール603は‘C1=11’を取得し、拡散モジュール703は‘C2=10’を取得する。第2ブロック暗号化ラウンドモジュール4032は、ブロック暗号化解読処理の出力として平文(cleartext)メッセージ‘M’を生成し、‘M=C2=10’である。
【0020】
放送デスクランブリングアルゴリズムのようなブロック暗号化を使用する代わりに、ストリーム暗号化および公開キー暗号化システムが知られている。
【0021】
図17は、図2bの代替のデスクランブリングモジュール304として使用される従来技術のストリーム暗号化器308の典型的な内部動作を示している。セットアップモジュール5041は、本来的に公知の方法で暗号化の内部状態を初期化する。典型的には、初期化は、暗号化のキーがかけられた内部秘密状態にロードされる初期ベクトル(IV)を含み、その後、多くの暗号化ラウンドが、次のモジュールへの初期化されたキーのリリースに先立って入力キーKに関して実行される。キー拡張モジュール5042は、暗号文Cのサイズに合わせるために、上記初期化されたキーから拡張されたキーEKを生成する。拡張されたキーEKは、XORモジュール404に提供され、ここで、入力された暗号文Cは、上記拡張されたキーEKとのXOR演算を用いてデスランブルされる。
【0022】
図20は、図2bの他の代替のデスクランブリングモジュール304として使用されるような従来技術の公開キー暗号化309の典型的な内部動作を示している。累乗モジュール505は、典型的には‘EK=GKmodN’のようなモジュラ累乗を適用することにより、入力されたキーKを処理する。このようにして得られた拡張されたキーEKは、入力暗号文Cを解読するために解読モジュール4052に入力される。暗号文Cの解読の一部として、暗号文Cは、解読モジュール4052に入力される前に、修正モジュール4051において中間暗号文C1に修正されてもよい。
【0023】
有料テレビ放送のアプリケーションにおける従来の問題は、インターネットのようなブロードバンド通信インフラストラクチャを用いたCWキー値の再配信である。ハッカーは、CW値を妨害し、このCWを、例えばピアツーピアネットワークを用いて、再配信インフラストラクチャに挿入する。無承認の受信器は、再配信インフラストラクチャから適切なCWキー値を取得し、このようにして取得したCWキー値を使用して放送ストリームを解読する。更に詳しくは、妨害されたキーは、暗号文を解読するための未承認のホワイトボックスデスクランブラーモジュールで使用される。
【先行技術文献】
【非特許文献】
【0024】
【非特許文献1】“White-Box Cryptography and an AES Implementation”, by S. Chow、P. Eisen、H. Johnson、P.C. van Oorschot, Proceedings of the 9th Annual Workshop on Selected Areas in Cryptography, August 2002
【発明の概要】
【発明が解決しようとする課題】
【0025】
本発明の目的は、妨害(intercept)されたキーが、暗号文の解読のために未承認のホワイトボックスデスクランバーで使用されることを防止することである。
【課題を解決するための手段】
【0026】
本発明の一態様によれば、平文メッセージを取得するために暗号文をデスクランブルするためのホワイトボックスデスクランバーが提案される。本デスクランバーは、外部の事前処理モジュールから個人向けの変換されたキーを受け取るように構成される。本デスクランバーは、さらに、前記入力暗号文を受け取るように構成される。本デスクランバーは、さらに、デスクランブリング処理の第2の部分への入力として前記個人向けの変換されたキーを用いて前記デスクランブリング処理の第2の部分を前記入力暗号文に適用することにより出力データを生成するように構成される。本デスクランバーは、さらに、前記出力データを生成する前に前記個人向けの変換されたキーに逆変換を適用するように構成される。前記個人向けの変換されたキーは、前記外部の事前処理モジュールにおいて前記デスクランブリング処理の第1の部分を適用する結果として事前処理されたデータを含む。
【0027】
本発明の一態様によれば、平文メッセージを取得するために暗号文をデスクランブルするためのホワイトボックスデスクランバーで用いる方法が提案される。本方法は、外部の事前処理モジュールから個人向けの変換されたキーを受け取るステップを含む。本方法は、さらに、前記入力暗号文を受け取るステップを含む。本方法は、さらに、デスクランブリング処理の第2の部分への入力として前記個人向けの変換されたキーを使用して前記デスクランブリング処理の第2の部分を前記入力暗号文に適用することにより出力データを生成するステップを含む。本方法は、さらに、前記出力データを生成する前に前記個人向けの変換されたキーに逆変換を適用するステップを含む。前記個人向けの変換されたキーは、前記外部の事前処理モジュールにおいて前記デスクランブリング処理の第1の部分を適用する結果として事前処理されたデータを含む。
【0028】
前記逆変換は、別個の区別されるステップとして実施されるか、または前記デスクランブリング処理の第2の部分に統合される。もし前記逆変換が前記デスクランブリング処理の第2の部分に統合されるのであれば、単一の数学的処理が前記逆変換および前記デスクランブリング処理の両方を実施してもよい。
【0029】
前記外部の事前処理モジュールにおいて、前記事前処理されたデータは、前記デスクランブリング処理の第1の部分を解読キーに適用することにより生成される。限定受信システムにおいて、このキーは、また、コントロールワード(control word)として知られている。
【0030】
前記デスクランバーの外部で前記デスクランブリング処理の第1の部分を実施し、さらには、特定の(すなわち承認された)デスクランバーのみが前記変換を反転させることができるように前記結果を変換することにより前記結果として得られる修正されたキーを個人向けにアレンジすることにより、他の受信器への再配分のための前記個人向けの変換されたキーを妨害することが有効に無駄になる。前記他の受信器は、前記変換を反転させる必要があり、かつ、前記特定の承認された受信器において実施されるような前記デスクランブリング処理の第2の部分の知見を有する必要があり、そのようなことは実質的に不可能である。
【0031】
請求項2および12の態様は、反復ブロック暗号化ベースのデスクランバーの使用を可能にする。有利には、承認された反復ブロック暗号化ベースのデスクランバーのための妨害されたキーは、未承認の反復ブロック暗号化ベースのデスクランバーにおいて使用することができない。
【0032】
請求項3−6および請求項13−15の態様は、有利には、反復ブロック暗号化ベースのデスクランバーの種々の他の代替の実施を可能にする。
【0033】
請求項7の態様は、ストリーム暗号化ベースのデスクランバーおよび公開キーベースのデスクランバーの使用を可能にする。有利には、承認されたストリーム暗号化ベースのデスクランバーまたは承認された公開キーベースのデスクランバーのための妨害されたキーは、未承認のストリーム暗号化ベースのデスクランバーまたは未承認の公開キーベースのデスクランバーでは使用することができない。
【0034】
本発明の一態様によれば、限定受信システムで使用するための受信器が提案される。本受信器は、1又は2以上の上述の特徴を有するデスクランバーを備える。
【0035】
従って、本デスクランバーは、有利には、受信器に統合され、本デスクランバーが限定受信システムで使用されることを可能にする。
【0036】
本発明の一態様によれば、限定受信システムで使用するための保安クライアントが提案される。本保安クライアントは、受信器の中間段階を経てヘッドエンドシステム(head-end system)から暗号化されたコントロールワードを受信するための入力を備える。本保安クライアントは、さらに、プロダクトキーを格納するように構成されたメモリを備える。本保安クライアントは、さらに、前記コントロールワードを取得するために前記プロダクトキーを用いて前記暗号化されたコントロールワードを解読するように構成された解読モジュールを備える。本保安クライアントは、さらに、修正されたコントロールワードを取得し、そして、前記修正されたコントロールワードを変換して個人向けの変換されたコントロールワードを得るために、前記コントロールワードにデスクランブリング処理の第1の部分を適用するように構成された事前処理モジュールを備える。本保安クライアントは、さらに、前記受信器に前記個人向けの変換されたコントロールワードを提供するための出力を備える。
【0037】
本発明の一態様によれば、限定受信システムの保安クライアントで使用するための方法が提案される。本方法は、受信器の中間段階を経てヘッドエンドシステムから暗号化されたコントロールワードを受け取るステップを含む。本方法は、さらに、前記コントロールワードを得るためにメモリからのプロダクトキーを用いて前記暗号化されたコントロールワードを解読するステップを含む。本方法は、さらに、修正されたコントロールワードを得るために前記コントロールワードにデスクランブリング処理の第1の部分を適用するステップを含む。本方法は、さらに、個人向けの変換されたコントロールワードを得るために前記修正されたコントロールワードを変換するステップを含む。本方法は、さらに、前記受信器に前記個人向けの変換されたコントロールワードを提供するステップを含む。
【0038】
前記事前処理モジュールにおいて、事前処理されたデータは、前記受信器のデスクランブルモジュールにおけるデスクランブリング処理の第2の部分で使用するために生成される。前記デスクランブリング処理の第1の部分は、典型的には、解読キーに適用される。限定受信システムにおいて、このキーは前記コントロールワードとして知られている。
【0039】
前記デスクランバーの外部で前記デスクランブリング処理の第1の部分を実行し、さらには、特定の(すなわち承認された)デスクランバーのみが前記変換を反転させることができるように前記結果を変換することにより前記結果として得られる修正されたキーを個人向けにアレンジすることにより、他の受信器への再配分のための前記個人向けの変換されたキーを妨害することが有効に無駄になる。前記他の受信器は、前記変換を反転させる必要があり、かつ、前記承認された受信器において実施されるようなデスクランブリング処理の第2の部分の知見を有する必要があり、そのようなことは実質的に不可能である。
【0040】
本発明の一態様によれば、限定受信システムで使用するためのヘッドエンドシステムが提案される。本ヘッドエンドシステムは、さらに、修正されたコントロールワードを取得し、そして、前記修正されたコントロールワードを変換して個人向けの変換されたコントロールワードを取得するために、コントロールワードにデスクランブリング処理の第1の部分を適用するように構成された事前処理モジュールを備える。本ヘッドエンドシステムは、さらに、1又は2以上の前記特徴を備えた受信器に暗号文と前記個人向けの変換されたコントロールワードを提供するための出力を備える。
【0041】
前記事前処理モジュールにおいて、事前処理されたデータは、前記受信器のデスクランブルモジュールにおけるデスクランブリング処理の第2の部分で使用するために生成される。前記デスクランブリング処理の第1の部分は、典型的には、解読キーに適用される。限定受信システムにおいて、このキーは前記コントロールワードとして知られている。
【0042】
前記デスクランバーの外部で前記デスクランブリング処理の第1の部分を実施し、さらには、特定の(すなわち承認された)デスクランバーのみが前記変換を反転させることができるように前記結果を変換することにより前記結果として得られる修正されたキーを個人向けにアレンジすることにより、他の受信器への再配分のための前記個人向けの変換されたキーを妨害することが有効に無駄になる。前記他の受信器は、前記変換を反転させる必要があり、かつ、前記承認された受信器において実施されるようなデスクランブリング処理の第2の部分の知見を有する必要があり、そのようなことは実質的に不可能である。
【0043】
本発明の一態様によれば、コンピュータプログラムエレメントが提案される。本コンピュータプログラムエレメントは、プロセッサによって実行されたときに、1又は2以上の前記特徴を有するホワイトボックスデスクランバーで使用するための方法を実行するように構成される。
【0044】
このことは、有利には、前記デスクランバーがソフトウェアで実施されることを可能にする。
【0045】
以下、本発明の実施形態が更に詳細に説明されるであろう。しかしながら、それらの実施形態は、本発明の保護のための範囲を限定するものではない。
【0046】
本発明の態様は、図面に示される代表的な実施形態を参照して更に詳細に説明されるであろう。
【図面の簡単な説明】
【0047】
【図1a】従来技術による受信器と保安クライアントを示す図である。
【図1b】他の従来技術による受信器と保安クライアントを示す図である。
【図1c】他の従来技術による受信器と保安クライアントを示す図である。
【図2a】従来技術によるデスクランバーのブロック図である。
【図2b】他の従来技術によるデスクランバーのブロック図である。
【図3】従来技術によるデスクランバーを更に詳細に示す図である。
【図4】従来技術によるブロック暗号化ラウンドモジュールを示す図である。
【図5】他の従来技術によるデスクランバーを更に詳細に示す図である。
【図6】他の従来技術によるブロック暗号化ラウンドモジュールを示す図である。
【図7】従来技術によるブロック暗号化ベースのデスクランバーを示す図である。
【図8】変換機能と暗号化を概略的に説明するための図である。
【図9】本発明の例示的な実施形態による受信器と保安クライアントを示す図である。
【図10a】本発明の例示的な実施形態によるデスクランバーを示すブロック図である。
【図10b】本発明の他の例示的な実施形態によるデスクランバーを示すブロック図である。
【図11】本発明の他の例示的な実施形態による受信器と保安クライアントを示す図である。
【図12】本発明の例示的な実施形態によるデスクランバーを示す図である。
【図13】本発明の例示的な実施形態によるブロック暗号化ラウンドモジュールを示す図である。
【図14】本発明の例示的な実施形態によるホワイトボックス反復ブロック暗号化ベースのデスクランバーを示す図である。
【図15】本発明の他の例示的な実施形態によるホワイトボックス反復ブロック暗号化ベースのデスクランバーを示す図である。
【図16】本発明の他の例示的な実施形態によるホワイトボックス反復ブロック暗号化ベースのデスクランバーを示す図である。
【図17】従来技術によるストリーム暗号化ベースのデスクランバーを示す図である。
【図18】本発明の例示的な実施形態によるホワイトボックスストリーム暗号化ベースのデスクランバーを示す図である。
【図19】本発明の他の例示的な実施形態によるホワイトボックスストリーム暗号化ベースのデスクランバーを示す図である。
【図20】従来技術による公開キーベースのデスクランバーを示す図である。
【図21】本発明の例示的な実施形態によるホワイトボックス公開キーベースのデスクランバーを示す図である。
【図22】本発明の例示的な実施形態による限定受信システムを示す図である。
【図23】本発明の例示的な実施形態によるホワイトボックスデスクランバーにおける方法を示す図である。
【図24】本発明の他の例示的な実施形態によるホワイトボックスデスクランバーにおける方法を示す図である。
【図25】本発明の例示的な実施形態による保安クライアントにおける方法を示す図である。
【発明を実施するための形態】
【0048】
本発明は、妨害(intercept)されたキーが、暗号文の解読のための未承認のホワイトボックス(whitebox)・デスクランブルモジュールで使用されることを防止する。本実施形態では、例えば図9に示されるような、個人向け(personalized)のホワイトボックス・デスクランバーを備えた受信器が提案され、これにより、個人向けデスクランバーのデスクランブリング処理の一部がデスクランバー外部の事前処理モジュールにおいて実行される。
【0049】
図9を参照すると、個人向けデスクランバー311は、典型的には、受信器111において、難読化(obfuscated)されたソフトウェア・モジュールとして実施される。或いは、個人向けデスクランバーは、プログラマブル・ハードウェアで実施されてもよい。限定受信ネットワーク(conditional access network)における各受信器は、典型的には、固有の個人向けデスクランバー311を備える。保安クライアント211は、典型的には、受信器111と通信可能に接続され、共通のデスクランブリング機能を実現するために個人向けデスクランバー311にデスクランバー固有のキーに関連したデータを提供する。本実施形態では、保安クライアント211は、個人向けデスクランバー311のデスクランブリング処理の一部が保安クライアント211の事前処理モジュール811で実施される。保安クライアント211は、典型的には、スマートカードのハードウェアで実施される。事前処理モジュール811は、保安クライアント211上で動作する難読化されたソフトウェア・モジュールとして実施されてもよい。
【0050】
或いは、デスクランバー固有のキーに関連するデータは、場合によってはスマートカードの中間段階を経てヘッドエンドシステムから受信器に提供される。そして、事前処理モジュール811はヘッドエンドシステムの一部である。
【0051】
本発明による個人向けホワイトボックス・デスクランバーは、デスクランバー固有の事前処理されたキーに関連するデータを入力として使用する。
【0052】
限定受信システムでは、用語‘CW’または‘コントロールワード(control word)’は、‘キー(key)’の同義語である。
【0053】
ソフトウェア難読化技術は、中間結果を難読化するための変換機能を利用する。変換機能の概念は暗号化(encryption)とは異なり、それは、図8を参照して概略的に明らかにされる。
【0054】
複数のデータエレメントを有する入力ドメインIDが非変換データ空間に存在すると仮定する。或るキーを用いる暗号化機能Eは、出力ドメインODにおける対応の暗号化されたデータエレメントを配信するために入力として入力ドメインIDのデータエレメントを受け取るように構成される。解読機能Dを適用することにより、入力ドメインIDのデータエレメントの元のデータエレメントは、出力ドメインODのデータエレメントに解読機能Dを適用することにより得ることができる。非保安環境(典型的には、“ホワイトボックス”と称される)では、敵対者(adversary)は、キーを導出できるような、入力データ及び出力データ並びに暗号化機能Eを知っていると考えられる。
【0055】
入力ドメインID及び出力ドメインODに変換機能を適用することにより、すなわち変換機能が入力処理(input operation)および出力処理(output operation)であることにより、追加的なセキュリティが非保安環境で得ることができる。変換機能T1は、データエレメントを、入力ドメインIDから、変換されたデータ空間の変換された入力ドメインID’の変換されたデータエレメントにマッピング(map)する。同様に、変換機能T2は、データエレメントを、出力ドメインODから、変換された出力ドメインOD’にマッピングする。変換された暗号化機能E’および解読機能D’は、変換されたキーを用いてID’とOD’との間で定義される。T1及びT2は一対一の対応関係(bijections)にある。
【0056】
暗号化技術と共に変換機能T1,T2を用いることは、出力ドメインODの暗号化されたデータエレメントを得るために入力ドメインIDのデータエレメントを暗号化機能Eに入力する代わりに、ドメインID’の変換されたデータエレメントが、変換機能T1を適用することにより、変換された暗号化機能E’に入力されることを意味する。変換された暗号化機能E’は、暗号化処理において逆変換機能T1−1及び/又はT2−1を組み合わせて、キーのような秘密情報を保護する。そして、ドメインOD’の変換された暗号化されたデータエレメントが得られる。保安部分(secured portion)においてT1及び/又はT2を実施することにより、暗号化機能Eまたは解読機能Dについてのキーは、変換されたデータ空間における入力データ及び出力データを解析する場合に読み取ることができない。
【0057】
変換機能T1,T2のうちの一つは、非自明(non-trivial)な機能でなければならない。もしT1が自明な機能であれば、入力ドメインID及びID’は同一のドメインである。もしT2が自明な機能であれば、出力ドメインは同一のドメインである。
【0058】
ホワイトボックス暗号化において、この処理は、攻撃者が機能E及びD並びにID,ODにおけるデータエレメントにアクセスする敵対環境(hostile environment)において完全に実施されると考えられる。ホワイトボックス暗号化は、機能E及びDについてのキー(の一部)を保護することによりセキュリティを提供する。受信器の保安部分(secured portion)またはスマートカードのうちの少なくとも一つにおいて変換機能T1およびT2を適用することにより、ホワイトボックス暗号化において適用されるようなルックアップテーブルLnは、変換された空間において解明(resolve)できない。
【0059】
デスクランバーおよび保安クライアントのソフトウェア実施は、ソフトウェアアプリケーションを保護するためのソフトウェア変換を使用する。変換は、典型的には、ホワイトボックス暗号化において使用され、ここで、解読キーは、暗号文Cを解読することができるソフトウェアプログラムを実現するアルゴリズムの解読ステップとマージ(merge)される。
【0060】
図10aは、図2bのホワイトボックス実施を示し、ここで、キーは、変換されたフォーマットで解読モジュール3111に提供される。変換されたキーT(K)は、解読モジュール3111のホワイトボックス実施にロードされる。解読モジュール3111は、キーKで解読処理を適用する前に、T(K)変換してキーKを得る。解読モジュール3111の実施は、解読モジュール3111およびT(K)の値を知る攻撃者がKを復元できないことを確保する。このスキームの変形において、暗号文の入力C及び/又は解読された出力Mは、同様に変換することができない。
【0061】
図10bは、ホワイトボックスデスクランバー3112に入力される前に事前処理されたデスクランバー固有のキーに関連したデータTi(K)を使用する個人向けホワイトボックスデスクランバー3112を示す。インデックス‘i’は、特定のデスクランバー3112を示すために使用される。事前処理されたキーに関連するデータTi(K)は、対応する個人向けホワイトボックスデスクランバー3112のみで使用できるように解釈(construe)される。加えて、各受信器はキーの個人向け変換Tiを使用する。
【0062】
放送ストリームCを解読するためのデスクランバー3112のホワイトボックス実施に、変換されたキーTi(K)がロードされる。デスクランバー3112の実施は、上記実施とTi(K)の値を知る攻撃者がキーKを復元できなことを確保する。また、攻撃者は、個人向け変換Tjを用いる個人向けホワイトボックスデスクランバーを備えた別の受信器(‘j’で示される)についてのキー関連のデータTj(K)を生成することができないであろう。
【0063】
例えば図5、図17、図20に示されるような公知のデスクランバーでは、入力キーKは、妨害されて、放送ストリームCを解読するために他の受信器に再配信され得る。なぜならば、キーに関連したデータTi(K)は、受信器に固有であり、このキーに関連したデータTi(K)は、他の受信器に役立たないからである。従って、入力キー関連のデータTi(K)の妨害と他の受信器への再配信は、有利には、もはや有益でない。
【0064】
図11は、本発明の例示的な実施形態による個人向けホワイトボックスデスクランバー311を備えた受信器111のさらに詳細な例を示す。この図11の例では、個人向けキーデータTi(CW)は、スマートカードの保安クライアント211においてCWを事前処理することにより生成される。更に具体的には、事前処理モジュール811は、受信器111のデスクランバー311の外部のCWを事前処理するために保安クライアント211で使用される。これとともに、個人向けデスクランバー311のデスクランブリング処理の部分が事前処理モジュール811で実施される。事前処理モジュール811は、個人向けキーデータTi(CW)をデスクランバー311に提供する前に変換機能を実施する。或いは、CWは、ヘッドエンドシステムの事前処理モジュールで事前処理され、場合によってはスマートカードの中間段階を経て、ヘッドエンドシステムから受信器に伝送されてもよい。
【0065】
受信器111は、例えば公知の手法で、放送ネットワークから入力ストリーム‘input’を受信する。限定受信システムでは、入力ストリームは、典型的には、MPEG−2またはDVBトランスポートストリームであり、TVチャンネル(すなわち、番組ストリーム)のみならず、番組ストリームを解読するために必要なキーを含む暗号化された情報を含む。番組ストリームの解読のために、キーは、一般にコントロールワードと呼ばれる。受信器111におけるデマックス(demux)/フィルタ(filter)モジュール901は、暗号文であるユーザ選択の番組ストリーム‘C’に対応するトランスポートストリームの部分をデスクランバー311に転送(forward)する。デマックス/フィルタモジュール901は、さらに、上記暗号化された情報から、EMM(Entitlement Management Messages)およびECM(Entitlement Control Message)のような、番組ストリームCに関連する情報を抽出して保安クライアント211に送る。ECMは、プロダクトキーPKで暗号化されたCWを含み、それは図11においてEPK(CW)として示されている。保安クライアント211は、ECMを受け取り、それを、保安キー記憶モジュール903から読み出された事前記憶のPK値で解読モジュール902において解読する。事前処理モジュール811は、CWを処理して、デスクランバー固有の変換されたフォームTi(CW)にする。保安クライアント211におけるデスクランバー固有のCW変換は、デスクランバー311から事前処理モジュール811に通知される受信器識別子‘i’の情報を使用して受信器111における個人向けデスクランバーとリンクされる。個人向けデスクランバー311のデスクランブリング処理の一部は、事前処理モジュール811で実施される。
【0066】
個人向けデスクランバー311における変換されたキーTi(CW)の使用は、安全である必要がある。このことは、CWを、変換されたキーTi(CW)から得ることは困難であり、個人向けですな311から得ることが困難であることを意味する。また、異なる特定の個人向けデスクランバー111についての有効な変換されたキーを計算することが困難である。
【0067】
次の代表的な実施形態は、どのようにして個人向けデスクランバーが、ブロック暗号化に基づいて個人向けホワイトボックスデスクランバーを用いて保護されるのかを示す。
【0068】
図12の代表的な実施形態では、個人向けデスクランバーは、個人向けブロック暗号化器312である。図3に示されるブロック暗号化器305と同様に、暗号文Cのブロックは、ブロック暗号化ラウンドモジュール4111,4112を用いて‘n’ラウンドにわたって処理されて、平文メッセージMになる。個人向けブロック暗号化器312では、各ラウンド‘r’は、キー分割(key partitioning)モジュール511における受信された個人向けキーデータTi(K)から導出される、それ自身の個人向けラウンドキー‘PRKir’を入力として受け取る。
【0069】
図13は、図12に示されるようなブロック暗号化ラウンドモジュール4111,4112として使用される個人向けブロック暗号化ラウンドモジュール412の例を示す。ブロック暗号化ラウンドモジュール412は、図4に示される拡散モジュール601と同様に動作する拡散モジュール611を備える。個人向けラウンドキー‘PRKir’は、個人向け混合モジュール711に入力される。この個人向けラウンドキーは、ラウンド‘r’および個人向けデスクランバー‘i’について、固有のキー‘UKir’とビットごとのXORを適用することにより計算される。個人向け混同モジュールにおける同一の固有のキーとの反復されるXOR演算は個人向けラウンドキーの変換を解除(remove)する。
【0070】
図14には、図12の個人向けブロック暗号化器312のホワイトボックスルックアップテーブルドリブンの実施313の簡略化された例が示されている。図14の例において、変換されたバイナリキー‘Ti(K)=1011’は、図7の従来技術の例に示されるような共通のキー‘K=11’の個人向けバージョンである。また、個人向けキーTi(K)は、外部の事前処理モジュール811において2ビット値から4ビット値に既に拡張(expand)されている。ブロック暗号化ラウンドモジュール4121,4122は、図7のブロック暗号化ラウンドモジュール4031,4032について示されるものと同様の方法で動作する。図14の本発明の例示的な実施形態は、個人向けデスクランバー313が個人向け入力キーTi(K)に関して動作する点で、図7と異なる。
【0071】
図14の例では、キー分割モジュール5121は、変換されたキーに含まれる個人向けラウンドキーのストリングから2ビットの個人向けラウンドキー‘PRKir’を選択する。変換されたキー‘Ti(K)=1011’は、‘PRKi1=10’および‘PRKi2=11’の連結(concatenation)である。個人化モジュール5122は、プログラムされた固有のキー‘UKir’とのXOR演算
【0072】
【数3】
【0073】
を用いて、各‘PRKir’を変換する。固有のキー‘UKi1=11’および‘UKi2=01’は、個人向けラウンドキーを、ブロック暗号化ラウンドモジュール4121,4122で使用される共通のラウンドキーに変換するために使用される。
【0074】
図14において、暗号文‘C=11’は、第1のブロック暗号化ラウンドモジュール4121に入力される。拡散モジュール611は、入力値‘C=11’を‘10’に変更するためにルックアップテーブルを使用する。混合モジュール711は、ルックアップテーブルを使用して、このルックアップテーブルの適切なカラムを選択するための第1の共通ラウンドキー値‘11’を用いて値‘10’を‘01’に変換する。中間結果‘C1=01’は、第2のブロック暗号化ラウンドモジュール4122に入力される。拡散モジュール611は、ルックアップテーブルを使用して、入力値‘C1=01’を‘11’に変更する。拡散モジュール711は、ルックアップテーブルを使用して、このルックアップテーブルの適切なカラムを選択するための第2の共通ラウンドキー値‘01’を用いてバイナリ値‘11’を‘10’に変換する。最終的な結果‘M=10’が、デスクランブルされたメッセージである。
【0075】
個人化モジュール5122について示されるXOR演算
【0076】
【数4】
【0077】
は、ブロック暗号化ラウンドモジュール4121,4122に統合されてもよい。これは図15に示されており、ここで、個人向け混合モジュール712は、変換されたキー‘Ti(K)=1011’から‘PRKir’が抽出されるときに、それら‘PRKir’を処理する。混合モジュール712は、混合モジュール712におけるルックアップテーブルのカラムオーダーを変更することにより、個人向けにアレンジ(personalize)される。キー分割モジュール5121は、変換されたバイナリキー‘Ti(K)=1011’を受け取り、そして、それを、二つの個人向けラウンドキー‘PRKi1=10’および‘PRKi2=11’に分割(partition)する。混合モジュール712は、個人向けラウンドキー‘PRK’を処理して正しい出力を得るためのカラムのオーダーの特定の配列により個人向けにアレンジされている。他の受信器は、それとは異なった個人向け混合モジュールを有し、受信器‘i’についての変換されたキーで暗号文を解読することができない。
【0078】
図15において、暗号文‘C=11’は、第1のブロック暗号化ラウンドモジュール4131に入力される。拡散モジュール611は、ルックアップテーブルを使用して、入力値‘C=11’を‘10’に変更する。個人向け混合モジュール712は、ルックアップテーブルを使用し、このルックアップテーブルの適切なカラムを選択するための第1の個人ラウンドキー値‘10’を用いて、値‘10’を‘01’に変換する。中間段階の結果‘C1=01’は、第2のブロック暗号化ラウンドモジュール4132に入力される。拡散モジュール611は、ルックアップテーブルを使用して、入力値‘C1=01’を‘11’に変更する。個人向け混合モジュール712は、ルックアップテーブルを使用して、このルックアップテーブルの適切なカラムを選択するための第2の個人ラウンドキー値‘11’を用いてバイナリ値‘11’を‘10’に変換する。最終的な結果‘M=10’はデスクランブルされたメッセージである。
【0079】
図16に、個人向けデスクランブルモジュールとしてのブロック暗号化器の代替の実施形態が示されており、ここで、各ブロック暗号化ラウンド機能4141,4142における拡散機能は、変換テーブルのセットで予めプログラムされている。各変換テーブルは、ブロック暗号化ラウンド4141,4142に入力される個人向けラウンドキー‘PRKir’に応じて、データ変換を適用する。図16の例では、変換された入力バイナリキー‘PRKi1=01’は、キー分割モジュール5121において二つの個人向けラウンドキー‘PRKi1’および‘PRKi2’に分割される。個人向け混合モジュール713においては、個人向けラウンドキー‘PRK’の各ビットは、対応のテーブルが使用されるべきか否かを示す。このようにして、個人向け混合モジュール713は、正しい出力を生成する。
【0080】
図16において、2ビットの暗号文‘C=11’が、第1のブロック暗号化ラウンドモジュール4141に入力される。拡散モジュール611は、上記暗号文をバイナリ値‘10’に変換し、それは個人向け混合モジュール713に入力される。個人向けラウンドキー‘PRKi1=01’は、どの変換テーブルがバイナリ入力‘10’に適用されるべきであるかを決定するために、第1のブロック暗号化ラウンドモジュール4141の個人向け混合モジュール713によって使用される。PRKi1の第1のビットは‘0’に等しく、それは、第1の変換テーブルを使用しないものと解釈される。PRKi1の第2のビットは‘1’に等しく、それは、第2の変換テーブルに従って入力‘10’を‘01’に変換するものと解釈される。バイナリ値‘01’は、第2のブロック暗号化ラウンドモジュール4142に提供され、ここで、拡散モジュール611は、最初に、そのデータを‘01’から‘11’に変換する。このデータは、第2のブロック暗号化ラウンドモジュール4142の個人向け混合モジュール713に入力される。PRKi2の第1のビットは‘0’に等しく、それは、第1の変換テーブルの後の結果について第2変換テーブルを使用しないと解釈される。第2のブロック暗号化ラウンドモジュール4142の出力は、個人向けデスクランバー315の最終的な結果であり、従って、デスクランブルされたメッセージは‘M=10’に等しい。
【0081】
図16に示されるようなブロック暗号化器を備えた別の受信器は、典型的には、異なる個人向け混合モジュールでプログラムされ、即ち個人向け混合モジュールにおける異なる変換テーブルのセットでプログラムされ、従って有利には、他の受信器の妨害された変換された入力バイナリキー‘Ti(K)’で入力暗号文Cを解読することはできない。
【0082】
本発明は、種々の例に示されるような2つのブロック暗号化ラウンドでの2ビットのデータ処理に限定されるものではないことが理解される。例えば、AESブロック暗号化は、典型的には、128ビットの暗号化ブロックサイズと、10,12または14ブロック暗号化ラウンドにおける128,192または256ビットのキーサイズを使用する。例えば、DESブロック暗号化は、典型的には、64ビットの暗号化ブロックサイズと、16ブロック暗号化ラウンドにおける56ビットのキーサイズを使用する。
【0083】
次の例示的な実施形態は、どのようにして個人向けデスクランバーが、ストリーム暗号化に基づく個人向けホワイトボックスデスクランバーを用いて保護されるかを示す。
【0084】
図18は、個人向けホワイトボックスストリーム暗号化モジュール316の例を示す。事前処理されたキーに関連するデータTi(K)は、個人向けストリーム暗号化モジュール316に入力される。Ti(K)は、は、個人向けストリーム暗号化モジュール316の外部の事前処理モジュール811におけるキー拡張機能とセットアップ機能によって事前処理されたキーKを含む。また、事前処理されたキーKIは変換される。Ti(K)は、暗号文CをデスクランブルするためにXORモジュール415に入力される。ブロック暗号化器の実施形態の個人向け混合モジュールにおけるテーブルの動作と同様に、XORモジュールにおけるXORテーブルは、変換を反転(inverse)させるように個人向けにアレンジ(personalize)される。
【0085】
図19は、代替の個人向けホワイトボックスストリーム暗号化モジュール317の例を示す。個人向けキーに関連するデータTi(K)は、個人向けストリーム暗号化モジュール317に入力される。Ti(K)は、個人向けストリーム暗号化モジュール317の外部の事前処理モジュール811におけるセットアップ機能によって事前処理されたキーKを含む。また、事前処理されたキーKは変換される。Ti(K)は、個人向けの拡張されたキーPEKを得るためにキー拡張モジュール513に入力される。PEKは、暗号文CをデスクランブリングするためにXORモジュール416に入力される。ブロック暗号化実施形態の個人向け混合モジュールにおけるテーブルの動作と同様に、XORモジュールにおけるXORテーブルは、変換を反転させるように個人向けにアレンジされてもよい。或いは、キー拡張モジュール513は逆変換を実施する。
【0086】
次の例示的な実施形態は、どのようにして個人向けデスクランバーが、公開キー暗号化に基づく個人向けホワイトボックスデスクランバーを用いて保護されるかを示す。
【0087】
図21は、個人向け公開キー暗号化モジュール318の例を示す。キーKの値は、外部の事前処理モジュール811においてTi(K)={K−K1}を設定することにより隠匿されている。個人向け累乗モジュール514は、入力Ti(K)を用いて、個人向けの拡張されたキー‘PEK=G(K+K1) mod N’を計算する。従って、公開キーアルゴリズムの個人向けバージョンは、‘K1’の値を変更することにより生成される。得られた拡張された個人向けキーPEKは、入力暗号文Cを解読するために個人向け解読モジュール417に入力される。暗号文Cの解読部分として、暗号文Cは、個人向け解読モジュール417に入力される前に、修正モジュール4051において中間暗号文C1に修正されてもよい。
【0088】
図22は、本発明の例示的な実施形態の限定受信システム260を示す。ヘッドエンドシステム250は、配信ネットワーク270を介して、ECM、EMM、およびCWでスクランブルされたコンテンツストリーム(即ち暗号文)を1又は2以上の受信器111に送信する。ECMは、典型的には、1又は2以上のCWを含む。ECMは、受信器111と通信可能に接続された保安装置280によって事前処理される。受信器は、個人向けデスクランバー311,312,313,314,315,316,317,318を備える。保安装置280は、例えばスマートカードであり、典型的には、図11で述べたような保安クライアント211を含む。CWは、ヘッドエンドシステム250における事前処理モジュール811で事前処理され、または代替的には、保安クライアント211における事前処理モジュール811で事前処理される。
【0089】
任意の実施形態に関連して述べられた任意の特徴は、単独で使用されてもよく、または、上述した他の特徴と組み合わせて使用されてもよく、また、任意の他の実施形態の1又は2以上の特徴と組み合わせて使用されてもよく、または、任意の他の実施形態の組み合わせであってもよい。本発明の一実施形態は、コンピュータシステムで使用するプログラムプロダクトとして実施されてもよい。このプログラムプロダクトのプログラム(または複数のプログラム)は、上記実施形態(本明細書で述べた方法を含む)の機能を規定し、そして、種々のコンピュータ読取り可能な記録媒体に格納することができる。例示的なコンピュータ読取り可能な記録媒体は、(i)情報が恒久的に保持される書き込み禁止型の記録媒体(例えば、CD−ROMドライブによって読取り可能なCD−ROMデスク、ROMチップ、または、任意のタイプの固体不揮発性半導体メモリのような、コンピュータ内の読取り専用メモリ装置)、および、(ii)変更可能な情報が格納される書き込み可能型の記録媒体(例えば、デスケットドライブ内のフロッピー(登録商標)ディスク、またはハードデスクドライブ、または任意のタイプの固体ランダムアクセス半導体メモリまたはフラッシュメモリ)を含むが、これらに限定されるものではないことが理解される。また、本発明は、上述した実施形態に限定されるものではなく、それは、添付の請求項の範囲内で変形することができる。
【符号の説明】
【0090】
111:受信器
211:保安クライアント
250:ヘッドエンドシステム
260:限定受信システム
270:配信ネットワーク
280:保安装置
308:ストリーム暗号化器
309:公開キー暗号化
312:個人向けブロック暗号化器
404:XORモジュール
415:XORモジュール
416:XORモジュール
417:解読モジュール
505:累乗モジュール
511:キー分割モジュール
513:キー拡張モジュール
514:累乗モジュール
611:拡散モジュール
711:混合モジュール
712:混合モジュール
811:事前処理モジュール
901:デマックス/フィルタモジュール
902:解読モジュール
903:保安キー記憶モジュール
3111:解読モジュール
3112:ホワイトボックスデスクランバー
4051:修正モジュール
4052:解読モジュール
4111:ブロック暗号化ラウンドモジュール
4112:ブロック暗号化ラウンドモジュール
4121:ブロック暗号化ラウンドモジュール
4122:ブロック暗号化ラウンドモジュール
4131:第1のブロック暗号化ラウンドモジュール
4132:第2のブロック暗号化ラウンドモジュール
4141:ブロック暗号化ラウンド機能
4142:ブロック暗号化ラウンド機能
5041:セットアップモジュール
5042:キー拡張モジュール
5121:キー分割モジュール
5122:個人化モジュール
【特許請求の範囲】
【請求項1】
平文メッセージ(M)を取得するために暗号文(C)をデスクランブルするためのホワイトボックスデスクランバー(311)であって、
外部の事前処理モジュール(811)から個人向けの変換されたキー(Ti(K))を受け取り、
前記入力暗号文(C)を受け取り、
デスクランブリング処理の第2の部分への入力として前記個人向けの変換されたキー(Ti(K))を用いて前記デスクランブリング処理の第2の部分を前記入力暗号文(C)に適用することにより出力データを生成し、
前記出力データを生成する前に前記個人向けの変換されたキー(Ti(K))に逆変換を適用するように構成され、
前記個人向けの変換されたキー(Ti(K))は、前記外部の事前処理モジュールにおいて前記デスクランブリング処理の第1の部分を適用する結果として事前処理されたデータを含む、ホワイトボックスデスクランバー(311)。
【請求項2】
前記デスクランバー(311)は、ホワイトボックス反復ブロック暗号化ベースのデスクランバー(312)であり、当該デスクランバー(312)は、
前記個人向けの変換されたキー(Ti(K))を、等価ビット長の所定数の変換されたキー部分(PRKin)に分割するように構成されたキー分割モジュール(511)を備え、且つ
各変換されたキー部分について、入力暗号文データを受け取り、そして、前記変換されたキー部分に基づく第2のビットパターンと前記入力暗号文データの第1のビットパターンにより示される位置での出力暗号文データを事前構成されたルックアップテーブルから選択することにより前記出力データを生成するように構成された第1及び第2のブロック暗号化ラウンドモジュール(4111,4112)を備え、
前記第1のブロック暗号化ラウンドモジュール(4111)は、前記入力暗号文データとして所定ビット長の前記暗号文(C)の一部を使用するように構成され、前記第2のブロック暗号化ラウンドモジュール(4112)は、前記入力暗号文データとして前のブロック暗号化ラウンドモジュールの出力データを使用するように構成された、請求項1に記載のデスクランバー(311)。
【請求項3】
前記ブロック暗号化ラウンドモジュール(411)は、拡散モジュール(611)と混合モジュール(711)とを備え、前記ルックアップテーブルは、前記混合モジュール(711)の一部であり、前記拡散モジュール(611)は、前記混合モジュール(711)に入力される前に前記入力暗号文データを修正するように構成された、請求項2記載のデスクランバー(312)。
【請求項4】
前記変換されたキー部分に逆変換を施して、これにより前記第2のビットパターンを得るように構成された個人化モジュール(5122)を更に備えた、請求項3記載のデスクランバー(313)。
【請求項5】
前記第2のビットパターンは、前記変換されたキー部分であり、前記変換されたキー部分の前記第2のビットパターンと前記入力暗号文データの前記第1のビットパターンによって示される位置での前記ルックアップテーブルにおける前記出力データは、前記変換されたキー部分の逆変換に対応する所定値を有する、請求項3記載のデスクランバー(314)。
【請求項6】
前記混合モジュール(713)は、前記第2のビットパターンの各ビットについてのルックアップテーブルを備え、前記混合モジュール(713)は、前記第2のビットパターンのビットの値に応じて前記ルックアップテーブルを使用し又は省略するように構成された、請求項5記載のデスクランバー(315)。
【請求項7】
前記デスクランバー(311)は、ホワイトボックスストリーム暗号化ベースのデスクランバー(316,317)またはホワイトボックス公開キーベースのデスクランバー(318)である、請求項1記載のデスクランバー(311)。
【請求項8】
請求項1ないし7の何れか1項記載のデスクランバー(311,312,313,314,315,316,317,318)を備えた、限定受信システムで使用される受信器(111)。
【請求項9】
限定受信システムで使用される保安クライアント(211)であって、
受信器(111)の中間段階を経てヘッドエンドシステムから暗号化されたコントロールワードを受信するための入力と、
プロダクトキーを格納するように構成されたメモリ(903)と、
前記コントロールワードを取得するために前記プロダクトキーを用いて前記暗号化されたコントロールワードを解読するように構成された解読モジュール(902)と、
修正されたコントロールワードを取得し、そして、前記修正されたコントロールワードを変換して個人向けの変換されたコントロールワードを得るために、前記コントロールワードにデスクランブリング処理の第1の部分を適用するように構成された事前処理モジュール(811)と、
前記受信器(111)に前記個人向けの変換されたコントロールワードを提供するための出力と
を備えた保安クライアント(211)。
【請求項10】
限定受信システム(260)で使用されるヘッドエンドシステム(250)であって、
修正されたコントロールワードを取得し、そして、前記修正されたコントロールワードを変換して個人向けの変換されたコントロールワードを取得するために、コントロールワードにデスクランブリング処理の第1の部分を適用するように構成された事前処理モジュールと、
請求項8に記載の受信器(111)に暗号文と前記個人向けの変換されたコントロールワードを提供するための出力と
を備えたヘッドエンドシステム(250)。
【請求項11】
平文メッセージ(M)を取得するために暗号文(C)をデスクランブルするためのホワイトボックスデスクランバーで用いる方法であって、
外部の事前処理モジュールから個人向けの変換されたキー(Ti(K))を受け取るステップ(1)と、
前記入力暗号文(C)を受け取るステップ(2)と、
デスクランブリング処理の第2の部分への入力として前記個人向けの変換されたキー(Ti(K))を使用して前記デスクランブリング処理の第2の部分を前記入力暗号文(C)に適用することにより出力データを生成するステップ(3)と、
前記出力データを生成する前に前記個人向けの変換されたキー(Ti(K))に逆変換を適用するステップと、
を含み、
前記個人向けの変換されたキー(Ti(K))は、前記外部の事前処理モジュールにおいて前記デスクランブリング処理の第1の部分を適用する結果として事前処理されたデータを含む方法。
【請求項12】
前記個人向けの変換されたキー(Ti(K))を、等価ビット長の所定数の変換されたキー部分に分割するステップ(5)と、
各変換されたキー部分について、ブロック暗号化ラウンドモジュールにおいて、入力暗号文データを受け取り、そして、前記変換されたキー部分に基づく第2のビットパターンと前記入力暗号文データの第1のビットパターンにより示される位置での出力データを事前構成されたルックアップテーブルから選択することにより前記出力データを生成するステップ(7)と
を含み、
第1のブロック暗号化ラウンドモジュール(4111)は、前記入力暗号文データとして所定ビット長の前記暗号文(C)の一部を使用し、第2のブロック暗号化ラウンドモジュール(4112)は、前記入力暗号文データとして前のブロック暗号化ラウンドモジュールの出力データを使用する、請求項11に記載の方法。
【請求項13】
前記変換されたキー部分に逆変換を適用するステップにより、前記第2のビットパターンを得る、請求項12記載の方法。
【請求項14】
前記第2のビットパターンは、前記変換されたキー部分であり、前記変換されたキー部分の前記第2のビットパターンと前記入力暗号文データの前記第1のビットパターンによって示される位置での前記ルックアップテーブルにおける前記出力データは、前記変換されたキー部分の逆変換に対応する所定値を有する、請求項12記載の方法。
【請求項15】
前記出力データを生成するステップは、前記第2のビットパターンのビットの値に応じて前記第2のビットパターンの各ビットについてのルックアップテーブルを用いるステップを含む、請求項14記載の方法。
【請求項16】
コンピュータプログラムであって、プロセッサによって実行されたときに、請求項11ないし14の何れか1項記載のホワイトボックスデスクランバーで使用される方法を実行するように構成されたプログラム。
【請求項17】
限定受信システムの保安クライアントで使用するための方法であって、
受信器の中間段階を経てヘッドエンドシステムから暗号化されたコントロールワードを受け取るステップ(11)と、
前記コントロールワードを得るためにメモリからのプロダクトキーを用いて前記暗号化されたコントロールワードを解読するステップ(12)と、
修正されたコントロールワードを得るために前記コントロールワードにデスクランブリング処理の第1の部分を適用するステップ(13)と、
個人向けの変換されたコントロールワードを得るために前記修正されたコントロールワードを変換するステップ(14)と、
前記受信器(111)に前記個人向けの変換されたコントロールワードを提供するステップ(15)と
を含む方法。
【請求項1】
平文メッセージ(M)を取得するために暗号文(C)をデスクランブルするためのホワイトボックスデスクランバー(311)であって、
外部の事前処理モジュール(811)から個人向けの変換されたキー(Ti(K))を受け取り、
前記入力暗号文(C)を受け取り、
デスクランブリング処理の第2の部分への入力として前記個人向けの変換されたキー(Ti(K))を用いて前記デスクランブリング処理の第2の部分を前記入力暗号文(C)に適用することにより出力データを生成し、
前記出力データを生成する前に前記個人向けの変換されたキー(Ti(K))に逆変換を適用するように構成され、
前記個人向けの変換されたキー(Ti(K))は、前記外部の事前処理モジュールにおいて前記デスクランブリング処理の第1の部分を適用する結果として事前処理されたデータを含む、ホワイトボックスデスクランバー(311)。
【請求項2】
前記デスクランバー(311)は、ホワイトボックス反復ブロック暗号化ベースのデスクランバー(312)であり、当該デスクランバー(312)は、
前記個人向けの変換されたキー(Ti(K))を、等価ビット長の所定数の変換されたキー部分(PRKin)に分割するように構成されたキー分割モジュール(511)を備え、且つ
各変換されたキー部分について、入力暗号文データを受け取り、そして、前記変換されたキー部分に基づく第2のビットパターンと前記入力暗号文データの第1のビットパターンにより示される位置での出力暗号文データを事前構成されたルックアップテーブルから選択することにより前記出力データを生成するように構成された第1及び第2のブロック暗号化ラウンドモジュール(4111,4112)を備え、
前記第1のブロック暗号化ラウンドモジュール(4111)は、前記入力暗号文データとして所定ビット長の前記暗号文(C)の一部を使用するように構成され、前記第2のブロック暗号化ラウンドモジュール(4112)は、前記入力暗号文データとして前のブロック暗号化ラウンドモジュールの出力データを使用するように構成された、請求項1に記載のデスクランバー(311)。
【請求項3】
前記ブロック暗号化ラウンドモジュール(411)は、拡散モジュール(611)と混合モジュール(711)とを備え、前記ルックアップテーブルは、前記混合モジュール(711)の一部であり、前記拡散モジュール(611)は、前記混合モジュール(711)に入力される前に前記入力暗号文データを修正するように構成された、請求項2記載のデスクランバー(312)。
【請求項4】
前記変換されたキー部分に逆変換を施して、これにより前記第2のビットパターンを得るように構成された個人化モジュール(5122)を更に備えた、請求項3記載のデスクランバー(313)。
【請求項5】
前記第2のビットパターンは、前記変換されたキー部分であり、前記変換されたキー部分の前記第2のビットパターンと前記入力暗号文データの前記第1のビットパターンによって示される位置での前記ルックアップテーブルにおける前記出力データは、前記変換されたキー部分の逆変換に対応する所定値を有する、請求項3記載のデスクランバー(314)。
【請求項6】
前記混合モジュール(713)は、前記第2のビットパターンの各ビットについてのルックアップテーブルを備え、前記混合モジュール(713)は、前記第2のビットパターンのビットの値に応じて前記ルックアップテーブルを使用し又は省略するように構成された、請求項5記載のデスクランバー(315)。
【請求項7】
前記デスクランバー(311)は、ホワイトボックスストリーム暗号化ベースのデスクランバー(316,317)またはホワイトボックス公開キーベースのデスクランバー(318)である、請求項1記載のデスクランバー(311)。
【請求項8】
請求項1ないし7の何れか1項記載のデスクランバー(311,312,313,314,315,316,317,318)を備えた、限定受信システムで使用される受信器(111)。
【請求項9】
限定受信システムで使用される保安クライアント(211)であって、
受信器(111)の中間段階を経てヘッドエンドシステムから暗号化されたコントロールワードを受信するための入力と、
プロダクトキーを格納するように構成されたメモリ(903)と、
前記コントロールワードを取得するために前記プロダクトキーを用いて前記暗号化されたコントロールワードを解読するように構成された解読モジュール(902)と、
修正されたコントロールワードを取得し、そして、前記修正されたコントロールワードを変換して個人向けの変換されたコントロールワードを得るために、前記コントロールワードにデスクランブリング処理の第1の部分を適用するように構成された事前処理モジュール(811)と、
前記受信器(111)に前記個人向けの変換されたコントロールワードを提供するための出力と
を備えた保安クライアント(211)。
【請求項10】
限定受信システム(260)で使用されるヘッドエンドシステム(250)であって、
修正されたコントロールワードを取得し、そして、前記修正されたコントロールワードを変換して個人向けの変換されたコントロールワードを取得するために、コントロールワードにデスクランブリング処理の第1の部分を適用するように構成された事前処理モジュールと、
請求項8に記載の受信器(111)に暗号文と前記個人向けの変換されたコントロールワードを提供するための出力と
を備えたヘッドエンドシステム(250)。
【請求項11】
平文メッセージ(M)を取得するために暗号文(C)をデスクランブルするためのホワイトボックスデスクランバーで用いる方法であって、
外部の事前処理モジュールから個人向けの変換されたキー(Ti(K))を受け取るステップ(1)と、
前記入力暗号文(C)を受け取るステップ(2)と、
デスクランブリング処理の第2の部分への入力として前記個人向けの変換されたキー(Ti(K))を使用して前記デスクランブリング処理の第2の部分を前記入力暗号文(C)に適用することにより出力データを生成するステップ(3)と、
前記出力データを生成する前に前記個人向けの変換されたキー(Ti(K))に逆変換を適用するステップと、
を含み、
前記個人向けの変換されたキー(Ti(K))は、前記外部の事前処理モジュールにおいて前記デスクランブリング処理の第1の部分を適用する結果として事前処理されたデータを含む方法。
【請求項12】
前記個人向けの変換されたキー(Ti(K))を、等価ビット長の所定数の変換されたキー部分に分割するステップ(5)と、
各変換されたキー部分について、ブロック暗号化ラウンドモジュールにおいて、入力暗号文データを受け取り、そして、前記変換されたキー部分に基づく第2のビットパターンと前記入力暗号文データの第1のビットパターンにより示される位置での出力データを事前構成されたルックアップテーブルから選択することにより前記出力データを生成するステップ(7)と
を含み、
第1のブロック暗号化ラウンドモジュール(4111)は、前記入力暗号文データとして所定ビット長の前記暗号文(C)の一部を使用し、第2のブロック暗号化ラウンドモジュール(4112)は、前記入力暗号文データとして前のブロック暗号化ラウンドモジュールの出力データを使用する、請求項11に記載の方法。
【請求項13】
前記変換されたキー部分に逆変換を適用するステップにより、前記第2のビットパターンを得る、請求項12記載の方法。
【請求項14】
前記第2のビットパターンは、前記変換されたキー部分であり、前記変換されたキー部分の前記第2のビットパターンと前記入力暗号文データの前記第1のビットパターンによって示される位置での前記ルックアップテーブルにおける前記出力データは、前記変換されたキー部分の逆変換に対応する所定値を有する、請求項12記載の方法。
【請求項15】
前記出力データを生成するステップは、前記第2のビットパターンのビットの値に応じて前記第2のビットパターンの各ビットについてのルックアップテーブルを用いるステップを含む、請求項14記載の方法。
【請求項16】
コンピュータプログラムであって、プロセッサによって実行されたときに、請求項11ないし14の何れか1項記載のホワイトボックスデスクランバーで使用される方法を実行するように構成されたプログラム。
【請求項17】
限定受信システムの保安クライアントで使用するための方法であって、
受信器の中間段階を経てヘッドエンドシステムから暗号化されたコントロールワードを受け取るステップ(11)と、
前記コントロールワードを得るためにメモリからのプロダクトキーを用いて前記暗号化されたコントロールワードを解読するステップ(12)と、
修正されたコントロールワードを得るために前記コントロールワードにデスクランブリング処理の第1の部分を適用するステップ(13)と、
個人向けの変換されたコントロールワードを得るために前記修正されたコントロールワードを変換するステップ(14)と、
前記受信器(111)に前記個人向けの変換されたコントロールワードを提供するステップ(15)と
を含む方法。
【図1a】
【図1b】
【図1c】
【図2a】
【図2b】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10a】
【図10b】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図1b】
【図1c】
【図2a】
【図2b】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10a】
【図10b】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【公開番号】特開2011−211708(P2011−211708A)
【公開日】平成23年10月20日(2011.10.20)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−67650(P2011−67650)
【出願日】平成23年3月25日(2011.3.25)
【出願人】(598036964)イルデト・コーポレート・ビー・ヴイ (16)
【Fターム(参考)】
【公開日】平成23年10月20日(2011.10.20)
【国際特許分類】
【出願番号】特願2011−67650(P2011−67650)
【出願日】平成23年3月25日(2011.3.25)
【出願人】(598036964)イルデト・コーポレート・ビー・ヴイ (16)
【Fターム(参考)】
[ Back to top ]