(57)【特許請求の範囲】
【請求項１】
平文メッセージ（Ｍ）を取得するために暗号文（Ｃ）をデスクランブルするためのホワイトボックスデスクランバー（３１１）であって、
外部の事前処理モジュール（８１１）から個人向けの変換されたキー（Ｔｉ（Ｋ））を受け取り、
前記入力暗号文（Ｃ）を受け取り、
デスクランブリング処理の第２の部分への入力として前記個人向けの変換されたキー（Ｔｉ（Ｋ））を用いて前記デスクランブリング処理の第２の部分を前記入力暗号文（Ｃ）に適用することにより出力データを生成し、
前記出力データを生成する前に前記個人向けの変換されたキー（Ｔｉ（Ｋ））に逆変換を適用するように構成され、
前記個人向けの変換されたキー（Ｔｉ（Ｋ））は、前記外部の事前処理モジュールにおいて前記デスクランブリング処理の第１の部分を適用する結果として事前処理されたデータを含み、
前記デスクランバー（３１１）は、ホワイトボックス反復ブロック暗号化ベースのデスクランバー（３１２）であり、当該デスクランバー（３１２）は、
前記個人向けの変換されたキー（Ｔｉ（Ｋ））を、等価ビット長の所定数の変換されたキー部分（ＰＲＫｉｎ）に分割するように構成されたキー分割モジュール（５１１）を備え、且つ
各変換されたキー部分について、入力暗号文データを受け取り、そして、前記変換されたキー部分に基づく第２のビットパターンと前記入力暗号文データの第１のビットパターンにより示される位置での出力暗号文データを事前構成されたルックアップテーブルから選択することにより前記出力データを生成するように構成された第１及び第２のブロック暗号化ラウンドモジュール（４１１１，４１１２）を備え、
前記第１のブロック暗号化ラウンドモジュール（４１１１）は、前記入力暗号文データとして所定ビット長の前記暗号文（Ｃ）の一部を使用するように構成され、前記第２のブロック暗号化ラウンドモジュール（４１１２）は、前記入力暗号文データとして前のブロック暗号化ラウンドモジュールの出力データを使用するように構成された、ホワイトボックスデスクランバー（３１１）。
【請求項２】
前記ブロック暗号化ラウンドモジュール（４１１）は、拡散モジュール（６１１）と混合モジュール（７１１）とを備え、前記ルックアップテーブルは、前記混合モジュール（７１１）の一部であり、前記拡散モジュール（６１１）は、前記混合モジュール（７１１）に入力される前に前記入力暗号文データを修正するように構成された、請求項１記載のデスクランバー（３１２）。
【請求項３】
前記変換されたキー部分に逆変換を施して、これにより前記第２のビットパターンを得るように構成された個人化モジュール（５１２２）を更に備えた、請求項２記載のデスクランバー（３１３）。
【請求項４】
前記第２のビットパターンは、前記変換されたキー部分であり、前記変換されたキー部分の前記第２のビットパターンと前記入力暗号文データの前記第１のビットパターンによって示される位置での前記ルックアップテーブルにおける前記出力データは、前記変換されたキー部分の逆変換に対応する所定値を有する、請求項２記載のデスクランバー（３１４）。
【請求項５】
前記混合モジュール（７１３）は、前記第２のビットパターンの各ビットについてのルックアップテーブルを備え、前記混合モジュール（７１３）は、前記第２のビットパターンのビットの値に応じて前記ルックアップテーブルを使用し又は省略するように構成された、請求項４記載のデスクランバー（３１５）。
【請求項６】
請求項１ないし５の何れか１項記載のデスクランバー（３１１，３１２，３１３，３１４，３１５，３１６，３１７，３１８）を備えた、限定受信システムで使用される受信器（１１１）。
【請求項７】
平文メッセージ（Ｍ）を取得するために暗号文（Ｃ）をデスクランブルするためのホワイトボックスデスクランバーで用いる方法であって、
外部の事前処理モジュールから個人向けの変換されたキー（Ｔｉ（Ｋ））を受け取るステップ（１）と、
前記入力暗号文（Ｃ）を受け取るステップ（２）と、
デスクランブリング処理の第２の部分への入力として前記個人向けの変換されたキー（Ｔｉ（Ｋ））を使用して前記デスクランブリング処理の第２の部分を前記入力暗号文（Ｃ）に適用することにより出力データを生成するステップ（３）と、
前記出力データを生成する前に前記個人向けの変換されたキー（Ｔｉ（Ｋ））に逆変換を適用するステップと、
を含み、
前記個人向けの変換されたキー（Ｔｉ（Ｋ））は、前記外部の事前処理モジュールにおいて前記デスクランブリング処理の第１の部分を適用する結果として事前処理されたデータを含み、
前記個人向けの変換されたキー（Ｔｉ（Ｋ））を、等価ビット長の所定数の変換されたキー部分に分割するステップ（５）と、
各変換されたキー部分について、ブロック暗号化ラウンドモジュールにおいて、入力暗号文データを受け取り、そして、前記変換されたキー部分に基づく第２のビットパターンと前記入力暗号文データの第１のビットパターンにより示される位置での出力データを事前構成されたルックアップテーブルから選択することにより前記出力データを生成するステップ（７）と
を含み、
第１のブロック暗号化ラウンドモジュール（４１１１）は、前記入力暗号文データとして所定ビット長の前記暗号文（Ｃ）の一部を使用し、第２のブロック暗号化ラウンドモジュール（４１１２）は、前記入力暗号文データとして前のブロック暗号化ラウンドモジュールの出力データを使用する、方法。
【請求項８】
前記変換されたキー部分に逆変換を適用するステップにより、前記第２のビットパターンを得る、請求項７記載の方法。
【請求項９】
前記第２のビットパターンは、前記変換されたキー部分であり、前記変換されたキー部分の前記第２のビットパターンと前記入力暗号文データの前記第１のビットパターンによって示される位置での前記ルックアップテーブルにおける前記出力データは、前記変換されたキー部分の逆変換に対応する所定値を有する、請求項７記載の方法。
【請求項１０】
前記出力データを生成するステップは、前記第２のビットパターンのビットの値に応じて前記第２のビットパターンの各ビットについてのルックアップテーブルを用いるステップを含む、請求項９記載の方法。
【請求項１１】
コンピュータプログラムであって、プロセッサによって実行されたときに、請求項７ないし９の何れか１項記載のホワイトボックスデスクランバーで使用される方法を実行するように構成されたプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホワイトボックス・デスクランバーに関し、更に詳しくは、限定受信システム(conditional access system)の受信器におけるホワイトボックス・デスクランバーに関する。
【背景技術】
【０００２】
ＴＶアプリケーションにおいて、暗号化（スクランブル）された放送ストリームは暗号文‘Ｃ’を形成し、それは、デスクランブルされた放送ストリーム‘Ｍ’を得るために、放送受信器で解読（デスクランブル）される。代表的には、複数の放送受信器は同一の放送ストリームを受信し、その放送ストリームを同一のキー（コントロールワード）‘ＣＷ’で解読する。ＣＷの値は、定期的に更新され、承認された加入者が解読することができるエンタイトルメント・コントロール・メッセージ‘ＥＣＭ’での暗号化形式で受信器に配信される。
【０００３】
ＥＣＭ処理は、種々の方法で実施することができる。図１ａは、ＥＣＭ処理がスマートカードで実施される例を示し、それは、安全な実行環境を提供するために、ハードウェアによる不正防止技術(hardware tamper resistance techniques)を用いている。放送ストリームＣの解読は、‘Ｍ’で表された、デスクランブルされた放送ストリームを取得するための受信器１０１におけるチップのハードウェア回路３０１で実施される。保安クライアント２０１は、ＥＣＭからＣＷを取得するためのスマートカードのハードウェアで実施される。ハードウェア不正防止技術は攻撃に対する実施を保護する。
【０００４】
図１ｂは、他の例を示し、ここでのＥＣＭ処理はソフトウェア技術に基づいている。ソフトウェアは、受信器１０２においてソフトウェア保安クライアント２０２として稼動し、デスクランブラー・チップにロード(load)されたキー階層構造に基づいて暗号化形式で受信器１０２のハードウェアデスクランバー３０１にキー（ＣＷ）をロードする。
【０００５】
図１ｃは、他の例を示し、ここでの受信器１０３のデスクランブリング機能部３０２および保安クライアント２０２の両方はソフトウェアで実施される。このソフトウェア実施の受信器１０３は、例えば、チップセットの読み出し専用メモリに格納されたチップセット・ユニークキー‘ＣＳＵＫ’またはチップセット・シリアルナンバー‘ＣＳＳＮ’のような、ハードウェア・ホック(hardware hook)を備えていない。その結果、デスクランブリング・機能部３０２は、このようなハードウェア・ホックに基づく特定の受信器の制約を受けず、ハッキング攻撃に対してソフトウェア実施の受信器３０２をいっそう脆弱にする。
【０００６】
図２ａは、デスクランブルモジュールの例を示す。暗号文Ｃは、デスクランブルモジュール３０３において固定キーＫで平文(plaintext)Ｃに解読される。キーＫは、デスクランブルモジュール３０３に組み込まれ、またはプリロード(preload)されている。
【０００７】
図２ｂは、他のデスクランブルモジュールを示し、ここでのデスクランブルモジュール３０４の多くの例は、外部ソースからＫの値をロードすることによりなされる。
【０００８】
ＤＶＢ(digital video broadcasting)、ＤＥＳ(data encryption standard)、ＡＥＳ(advanced encryption standard)のような多くの既存の放送デスクランブリング・アルゴリズムはブロック暗号化に基づいている。ブロック暗号化は、入力された平文を固定サイズの複数のブロックに分割することで作動する。各ブロックは、比較的単純なファンクションを繰り返し適用することにより処理される。このアプローチは、反復ブロック暗号化(iterated block cipher)として知られている。各反復処理は、ラウンド(round)と呼ばれ、反復されるファンクションは、ラウンドファンクションと呼ばれる。代表的なブロック暗号化は、４ラウンドないし３２ラウンドを有する。
【０００９】
図３は、図２ｂのデスクランブリングモジュール３０４として使用されるような、従来の反復ブロック暗号化器３０５の典型的な内部動作を示す。暗号文Ｃが受信されてブロックに分割される。暗号文Ｃの各ブロックは、‘ｎ’ラウンドの処理を経て平文メッセージ‘Ｍ’になる。各ラウンド‘ｒ’は、入力として独自のラウンドキー‘ＲＫｒ’を受信し、それは、キースケジュールモジュール５０１において元のラウンドキー‘Ｋ’から計算される。ホワイトボックス暗号化では、各ブロック暗号化ラウンドモジュール４０１１，４０１２は、典型的には、キー‘Ｋ’およびラウンドキー‘ＲＫｒ’の値を隠すテーブルルックアップ操作のシーケンスを用いて実施される。
【００１０】
或いは、図２ａに示されるようなデスクランブリングモジュール３０３を用いる固定キー変化(variant)が、反復ブロック暗号化器３０５において使用されてもよい。そして、図５に示されるようなキースケジュールモジュール５０１は、各ラウンドに固定入力‘ＲＫｒ’を組み込むモジュールで置き換えられる。
【００１１】
図３に示されるようなブロック暗号化ラウンドモジュール４０１１，４０１２が、図４においてさらに詳細に示されている。ブロック暗号化ラウンドファンクション４０１は、順次的に作動する二つのモジュールを備える。拡散モジュール(diffusion module)６０１は、入力Ｃｒ−１を無作為に修正(modify)する。このようにして得られたＣ‘ｒ−１は、混同モジュール(confusion module)７０１に入力される。混合モジュール７０１の目的は、ラウンドキーＲＫｒを暗号文Ｃ’ｒ−１と混合(mix)して、次の解読ラウンドのための出力Ｃｒを生成するために関連のラウンドキーＲＫｒを提供させる。
【００１２】
ブロック暗号化ラウンドモジュールは、典型的にはテーブルドリブン(table-driven)のルックアップテーブル実施を用いたホワイトボックス暗号化において、混合機能を実施する固有の機能を備えることにより個人向けアレンジ(personalize)してもよい。従来技術のテーブルドリブンのルックアップテーブル実施の例は、図７を用いて更に詳細に説明されるであろう。
【００１３】
ＡＥＳ暗号化を用いたホワイトボックス反復ブロック暗号化は、「“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」により知られている。ＡＥＳのホワイトボックス実施において、各ブロック暗号化ラウンドは、サブバイト(SubBytes)、シフトロー(ShiftRows)、ミックスカラム(MixColumns)、アッドラウンドキー(AddRoundKey)の４つの部分から構成される。最初の３つの部分は、拡散モジュールにおける処理に対応し、アッドラウンドキーの部分は混合モジュールと互換性を有する。
【００１４】
或るモジュールから次のモジュールへ受け渡される中間値を妨害から保護するために、ホワイトボックス反復ブロック暗号化実施は、典型的にはランダム置換(random permutation)をルックアップテーブルの出力に適用し（図７参照）、そして、その逆置換を次のルックアップテーブルに適用する。
【００１５】
ランダム置換を適用する簡略化されたブロック暗号化器３０６は、ブロック暗号化ラウンドモジュール４０２１，４０２２における二つのラウンドから構成され、図５には、２ビットのキーサイズとブロックを有する場合が示されている。図６には、ブロック暗号化ラウンドモジュール４０２が更に詳細に示されている。図５において、各矢印は、２ビットのデータフローを表している。図６では、各矢印は、単一ビットのデータフローを表している。拡散モジュール６０２は、入力Ｃｒ−１の２ビットをスワップし、第２ビットをそれらのバイナリ和(XOR)により置き換える。このようにして得られたＣ’ｒ−１は、混合モジュール７０２に入力される。混合モジュール７０２は、Ｃ’ｒ−１の二つの入力されたビットとラウンドキーＲＫｒの関連ビットとのバイナリ加算(XOR)を実施する。図５を参照すると、キースケジュールモジュール５０２は、キーＫを受信し、そして、二つのラウンドキー
【００１６】
【数１】
0005901884.tif 000002
【００１７】
を生成し、ここで、‘１０’は、バイナリベクトルを表し、
【００１８】
【数２】
0005901884.tif 000003
【００１９】
は排他的論理和演算(XOR)を表す。図７には、図５および図６の簡略化されたブロック暗号化器３０６のホワイトボックスルックアップテーブルドリブン実施３０７の簡略化された例が示されている。図７の例では、キースケジュールモジュール５０３は、バイナリキー‘Ｋ＝１１’を受信し、テーブルルックアップを用いて、キーＫを二つのビット、すなわち‘ＲＫ１＝１１’および‘ＲＫ２＝０１’に展開(expand)する。テーブルルックアップは、特定のキー入力に続く所定のパス(paths)により視覚化される。キー入力Ｋ＝１１についての矢印に続いて、二つのラウンドキー１１および０１が見つけられる。入力された暗号文について、バイナリ値‘Ｃ＝１１’を有するこの例では、第１ブロック暗号化ラウンドモジュール４０３１は、拡散モジュール６０３におけるテーブルルックアップを使用して中間出力‘Ｃ０＝１０’を生成し、それは混合モジュール７０３に入力される。混合モジュール７０３は、ラウンドキーＲＫ１を加え、第２ブロック暗号化ラウンドモジュール４０３２に入力される出力‘Ｃ１＝０１’をもたらす。第２ブロック暗号化ラウンドモジュール４０３２では、同様にして、拡散モジュール６０３は‘Ｃ１＝１１’を取得し、拡散モジュール７０３は‘Ｃ２＝１０’を取得する。第２ブロック暗号化ラウンドモジュール４０３２は、ブロック暗号化解読処理の出力として平文(cleartext)メッセージ‘Ｍ’を生成し、‘Ｍ＝Ｃ２＝１０’である。
【００２０】
放送デスクランブリングアルゴリズムのようなブロック暗号化を使用する代わりに、ストリーム暗号化および公開キー暗号化システムが知られている。
【００２１】
図１７は、図２ｂの代替のデスクランブリングモジュール３０４として使用される従来技術のストリーム暗号化器３０８の典型的な内部動作を示している。セットアップモジュール５０４１は、本来的に公知の方法で暗号化の内部状態を初期化する。典型的には、初期化は、暗号化のキーがかけられた内部秘密状態にロードされる初期ベクトル（ＩＶ）を含み、その後、多くの暗号化ラウンドが、次のモジュールへの初期化されたキーのリリースに先立って入力キーＫに関して実行される。キー拡張モジュール５０４２は、暗号文Ｃのサイズに合わせるために、上記初期化されたキーから拡張されたキーＥＫを生成する。拡張されたキーＥＫは、ＸＯＲモジュール４０４に提供され、ここで、入力された暗号文Ｃは、上記拡張されたキーＥＫとのＸＯＲ演算を用いてデスランブルされる。
【００２２】
図２０は、図２ｂの他の代替のデスクランブリングモジュール３０４として使用されるような従来技術の公開キー暗号化３０９の典型的な内部動作を示している。累乗モジュール５０５は、典型的には‘ＥＫ＝ＧＫｍｏｄＮ’のようなモジュラ累乗を適用することにより、入力されたキーＫを処理する。このようにして得られた拡張されたキーＥＫは、入力暗号文Ｃを解読するために解読モジュール４０５２に入力される。暗号文Ｃの解読の一部として、暗号文Ｃは、解読モジュール４０５２に入力される前に、修正モジュール４０５１において中間暗号文Ｃ１に修正されてもよい。
【００２３】
有料テレビ放送のアプリケーションにおける従来の問題は、インターネットのようなブロードバンド通信インフラストラクチャを用いたＣＷキー値の再配信である。ハッカーは、ＣＷ値を妨害し、このＣＷを、例えばピアツーピアネットワークを用いて、再配信インフラストラクチャに挿入する。無承認の受信器は、再配信インフラストラクチャから適切なＣＷキー値を取得し、このようにして取得したＣＷキー値を使用して放送ストリームを解読する。更に詳しくは、妨害されたキーは、暗号文を解読するための未承認のホワイトボックスデスクランブラーモジュールで使用される。
【先行技術文献】
【非特許文献】
【００２４】
【非特許文献１】“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
【発明の概要】
【発明が解決しようとする課題】
【００２５】
本発明の目的は、妨害(intercept)されたキーが、暗号文の解読のために未承認のホワイトボックスデスクランバーで使用されることを防止することである。
【課題を解決するための手段】
【００２６】
本発明の一態様によれば、平文メッセージを取得するために暗号文をデスクランブルするためのホワイトボックスデスクランバーが提案される。本デスクランバーは、外部の事前処理モジュールから個人向けの変換されたキーを受け取るように構成される。本デスクランバーは、さらに、前記入力暗号文を受け取るように構成される。本デスクランバーは、さらに、デスクランブリング処理の第２の部分への入力として前記個人向けの変換されたキーを用いて前記デスクランブリング処理の第２の部分を前記入力暗号文に適用することにより出力データを生成するように構成される。本デスクランバーは、さらに、前記出力データを生成する前に前記個人向けの変換されたキーに逆変換を適用するように構成される。前記個人向けの変換されたキーは、前記外部の事前処理モジュールにおいて前記デスクランブリング処理の第１の部分を適用する結果として事前処理されたデータを含む。
【００２７】
本発明の一態様によれば、平文メッセージを取得するために暗号文をデスクランブルするためのホワイトボックスデスクランバーで用いる方法が提案される。本方法は、外部の事前処理モジュールから個人向けの変換されたキーを受け取るステップを含む。本方法は、さらに、前記入力暗号文を受け取るステップを含む。本方法は、さらに、デスクランブリング処理の第２の部分への入力として前記個人向けの変換されたキーを使用して前記デスクランブリング処理の第２の部分を前記入力暗号文に適用することにより出力データを生成するステップを含む。本方法は、さらに、前記出力データを生成する前に前記個人向けの変換されたキーに逆変換を適用するステップを含む。前記個人向けの変換されたキーは、前記外部の事前処理モジュールにおいて前記デスクランブリング処理の第１の部分を適用する結果として事前処理されたデータを含む。
【００２８】
前記逆変換は、別個の区別されるステップとして実施されるか、または前記デスクランブリング処理の第２の部分に統合される。もし前記逆変換が前記デスクランブリング処理の第２の部分に統合されるのであれば、単一の数学的処理が前記逆変換および前記デスクランブリング処理の両方を実施してもよい。
【００２９】
前記外部の事前処理モジュールにおいて、前記事前処理されたデータは、前記デスクランブリング処理の第１の部分を解読キーに適用することにより生成される。限定受信システムにおいて、このキーは、また、コントロールワード(control word)として知られている。
【００３０】
前記デスクランバーの外部で前記デスクランブリング処理の第１の部分を実施し、さらには、特定の（すなわち承認された）デスクランバーのみが前記変換を反転させることができるように前記結果を変換することにより前記結果として得られる修正されたキーを個人向けにアレンジすることにより、他の受信器への再配分のための前記個人向けの変換されたキーを妨害することが有効に無駄になる。前記他の受信器は、前記変換を反転させる必要があり、かつ、前記特定の承認された受信器において実施されるような前記デスクランブリング処理の第２の部分の知見を有する必要があり、そのようなことは実質的に不可能である。
【００３１】
請求項２および１２の態様は、反復ブロック暗号化ベースのデスクランバーの使用を可能にする。有利には、承認された反復ブロック暗号化ベースのデスクランバーのための妨害されたキーは、未承認の反復ブロック暗号化ベースのデスクランバーにおいて使用することができない。
【００３２】
請求項３−６および請求項１３−１５の態様は、有利には、反復ブロック暗号化ベースのデスクランバーの種々の他の代替の実施を可能にする。
【００３３】
請求項７の態様は、ストリーム暗号化ベースのデスクランバーおよび公開キーベースのデスクランバーの使用を可能にする。有利には、承認されたストリーム暗号化ベースのデスクランバーまたは承認された公開キーベースのデスクランバーのための妨害されたキーは、未承認のストリーム暗号化ベースのデスクランバーまたは未承認の公開キーベースのデスクランバーでは使用することができない。
【００３４】
本発明の一態様によれば、限定受信システムで使用するための受信器が提案される。本受信器は、１又は２以上の上述の特徴を有するデスクランバーを備える。
【００３５】
従って、本デスクランバーは、有利には、受信器に統合され、本デスクランバーが限定受信システムで使用されることを可能にする。
【００３６】
本発明の一態様によれば、限定受信システムで使用するための保安クライアントが提案される。本保安クライアントは、受信器の中間段階を経てヘッドエンドシステム(head-end system)から暗号化されたコントロールワードを受信するための入力を備える。本保安クライアントは、さらに、プロダクトキーを格納するように構成されたメモリを備える。本保安クライアントは、さらに、前記コントロールワードを取得するために前記プロダクトキーを用いて前記暗号化されたコントロールワードを解読するように構成された解読モジュールを備える。本保安クライアントは、さらに、修正されたコントロールワードを取得し、そして、前記修正されたコントロールワードを変換して個人向けの変換されたコントロールワードを得るために、前記コントロールワードにデスクランブリング処理の第１の部分を適用するように構成された事前処理モジュールを備える。本保安クライアントは、さらに、前記受信器に前記個人向けの変換されたコントロールワードを提供するための出力を備える。
【００３７】
本発明の一態様によれば、限定受信システムの保安クライアントで使用するための方法が提案される。本方法は、受信器の中間段階を経てヘッドエンドシステムから暗号化されたコントロールワードを受け取るステップを含む。本方法は、さらに、前記コントロールワードを得るためにメモリからのプロダクトキーを用いて前記暗号化されたコントロールワードを解読するステップを含む。本方法は、さらに、修正されたコントロールワードを得るために前記コントロールワードにデスクランブリング処理の第１の部分を適用するステップを含む。本方法は、さらに、個人向けの変換されたコントロールワードを得るために前記修正されたコントロールワードを変換するステップを含む。本方法は、さらに、前記受信器に前記個人向けの変換されたコントロールワードを提供するステップを含む。
【００３８】
前記事前処理モジュールにおいて、事前処理されたデータは、前記受信器のデスクランブルモジュールにおけるデスクランブリング処理の第２の部分で使用するために生成される。前記デスクランブリング処理の第１の部分は、典型的には、解読キーに適用される。限定受信システムにおいて、このキーは前記コントロールワードとして知られている。
【００３９】
前記デスクランバーの外部で前記デスクランブリング処理の第１の部分を実行し、さらには、特定の（すなわち承認された）デスクランバーのみが前記変換を反転させることができるように前記結果を変換することにより前記結果として得られる修正されたキーを個人向けにアレンジすることにより、他の受信器への再配分のための前記個人向けの変換されたキーを妨害することが有効に無駄になる。前記他の受信器は、前記変換を反転させる必要があり、かつ、前記承認された受信器において実施されるようなデスクランブリング処理の第２の部分の知見を有する必要があり、そのようなことは実質的に不可能である。
【００４０】
本発明の一態様によれば、限定受信システムで使用するためのヘッドエンドシステムが提案される。本ヘッドエンドシステムは、さらに、修正されたコントロールワードを取得し、そして、前記修正されたコントロールワードを変換して個人向けの変換されたコントロールワードを取得するために、コントロールワードにデスクランブリング処理の第１の部分を適用するように構成された事前処理モジュールを備える。本ヘッドエンドシステムは、さらに、１又は２以上の前記特徴を備えた受信器に暗号文と前記個人向けの変換されたコントロールワードを提供するための出力を備える。
【００４１】
前記事前処理モジュールにおいて、事前処理されたデータは、前記受信器のデスクランブルモジュールにおけるデスクランブリング処理の第２の部分で使用するために生成される。前記デスクランブリング処理の第１の部分は、典型的には、解読キーに適用される。限定受信システムにおいて、このキーは前記コントロールワードとして知られている。
【００４２】
前記デスクランバーの外部で前記デスクランブリング処理の第１の部分を実施し、さらには、特定の（すなわち承認された）デスクランバーのみが前記変換を反転させることができるように前記結果を変換することにより前記結果として得られる修正されたキーを個人向けにアレンジすることにより、他の受信器への再配分のための前記個人向けの変換されたキーを妨害することが有効に無駄になる。前記他の受信器は、前記変換を反転させる必要があり、かつ、前記承認された受信器において実施されるようなデスクランブリング処理の第２の部分の知見を有する必要があり、そのようなことは実質的に不可能である。
【００４３】
本発明の一態様によれば、コンピュータプログラムエレメントが提案される。本コンピュータプログラムエレメントは、プロセッサによって実行されたときに、１又は２以上の前記特徴を有するホワイトボックスデスクランバーで使用するための方法を実行するように構成される。
【００４４】
このことは、有利には、前記デスクランバーがソフトウェアで実施されることを可能にする。
【００４５】
以下、本発明の実施形態が更に詳細に説明されるであろう。しかしながら、それらの実施形態は、本発明の保護のための範囲を限定するものではない。
【００４６】
本発明の態様は、図面に示される代表的な実施形態を参照して更に詳細に説明されるであろう。
【図面の簡単な説明】
【００４７】
【図１ａ】従来技術による受信器と保安クライアントを示す図である。
【図１ｂ】他の従来技術による受信器と保安クライアントを示す図である。
【図１ｃ】他の従来技術による受信器と保安クライアントを示す図である。
【図２ａ】従来技術によるデスクランバーのブロック図である。
【図２ｂ】他の従来技術によるデスクランバーのブロック図である。
【図３】従来技術によるデスクランバーを更に詳細に示す図である。
【図４】従来技術によるブロック暗号化ラウンドモジュールを示す図である。
【図５】他の従来技術によるデスクランバーを更に詳細に示す図である。
【図６】他の従来技術によるブロック暗号化ラウンドモジュールを示す図である。
【図７】従来技術によるブロック暗号化ベースのデスクランバーを示す図である。
【図８】変換機能と暗号化を概略的に説明するための図である。
【図９】本発明の例示的な実施形態による受信器と保安クライアントを示す図である。
【図１０ａ】本発明の例示的な実施形態によるデスクランバーを示すブロック図である。
【図１０ｂ】本発明の他の例示的な実施形態によるデスクランバーを示すブロック図である。
【図１１】本発明の他の例示的な実施形態による受信器と保安クライアントを示す図である。
【図１２】本発明の例示的な実施形態によるデスクランバーを示す図である。
【図１３】本発明の例示的な実施形態によるブロック暗号化ラウンドモジュールを示す図である。
【図１４】本発明の例示的な実施形態によるホワイトボックス反復ブロック暗号化ベースのデスクランバーを示す図である。
【図１５】本発明の他の例示的な実施形態によるホワイトボックス反復ブロック暗号化ベースのデスクランバーを示す図である。
【図１６】本発明の他の例示的な実施形態によるホワイトボックス反復ブロック暗号化ベースのデスクランバーを示す図である。
【図１７】従来技術によるストリーム暗号化ベースのデスクランバーを示す図である。
【図１８】本発明の例示的な実施形態によるホワイトボックスストリーム暗号化ベースのデスクランバーを示す図である。
【図１９】本発明の他の例示的な実施形態によるホワイトボックスストリーム暗号化ベースのデスクランバーを示す図である。
【図２０】従来技術による公開キーベースのデスクランバーを示す図である。
【図２１】本発明の例示的な実施形態によるホワイトボックス公開キーベースのデスクランバーを示す図である。
【図２２】本発明の例示的な実施形態による限定受信システムを示す図である。
【図２３】本発明の例示的な実施形態によるホワイトボックスデスクランバーにおける方法を示す図である。
【図２４】本発明の他の例示的な実施形態によるホワイトボックスデスクランバーにおける方法を示す図である。
【図２５】本発明の例示的な実施形態による保安クライアントにおける方法を示す図である。
【発明を実施するための形態】
【００４８】
本発明は、妨害(intercept)されたキーが、暗号文の解読のための未承認のホワイトボックス(whitebox)・デスクランブルモジュールで使用されることを防止する。本実施形態では、例えば図９に示されるような、個人向け(personalized)のホワイトボックス・デスクランバーを備えた受信器が提案され、これにより、個人向けデスクランバーのデスクランブリング処理の一部がデスクランバー外部の事前処理モジュールにおいて実行される。
【００４９】
図９を参照すると、個人向けデスクランバー３１１は、典型的には、受信器１１１において、難読化(obfuscated)されたソフトウェア・モジュールとして実施される。或いは、個人向けデスクランバーは、プログラマブル・ハードウェアで実施されてもよい。限定受信ネットワーク(conditional access network)における各受信器は、典型的には、固有の個人向けデスクランバー３１１を備える。保安クライアント２１１は、典型的には、受信器１１１と通信可能に接続され、共通のデスクランブリング機能を実現するために個人向けデスクランバー３１１にデスクランバー固有のキーに関連したデータを提供する。本実施形態では、保安クライアント２１１は、個人向けデスクランバー３１１のデスクランブリング処理の一部が保安クライアント２１１の事前処理モジュール８１１で実施される。保安クライアント２１１は、典型的には、スマートカードのハードウェアで実施される。事前処理モジュール８１１は、保安クライアント２１１上で動作する難読化されたソフトウェア・モジュールとして実施されてもよい。
【００５０】
或いは、デスクランバー固有のキーに関連するデータは、場合によってはスマートカードの中間段階を経てヘッドエンドシステムから受信器に提供される。そして、事前処理モジュール８１１はヘッドエンドシステムの一部である。
【００５１】
本発明による個人向けホワイトボックス・デスクランバーは、デスクランバー固有の事前処理されたキーに関連するデータを入力として使用する。
【００５２】
限定受信システムでは、用語‘ＣＷ’または‘コントロールワード(control word)’は、‘キー(key)’の同義語である。
【００５３】
ソフトウェア難読化技術は、中間結果を難読化するための変換機能を利用する。変換機能の概念は暗号化(encryption)とは異なり、それは、図８を参照して概略的に明らかにされる。
【００５４】
複数のデータエレメントを有する入力ドメインＩＤが非変換データ空間に存在すると仮定する。或るキーを用いる暗号化機能Ｅは、出力ドメインＯＤにおける対応の暗号化されたデータエレメントを配信するために入力として入力ドメインＩＤのデータエレメントを受け取るように構成される。解読機能Ｄを適用することにより、入力ドメインＩＤのデータエレメントの元のデータエレメントは、出力ドメインＯＤのデータエレメントに解読機能Ｄを適用することにより得ることができる。非保安環境（典型的には、“ホワイトボックス”と称される）では、敵対者(adversary)は、キーを導出できるような、入力データ及び出力データ並びに暗号化機能Ｅを知っていると考えられる。
【００５５】
入力ドメインＩＤ及び出力ドメインＯＤに変換機能を適用することにより、すなわち変換機能が入力処理(input operation)および出力処理(output operation)であることにより、追加的なセキュリティが非保安環境で得ることができる。変換機能Ｔ１は、データエレメントを、入力ドメインＩＤから、変換されたデータ空間の変換された入力ドメインＩＤ’の変換されたデータエレメントにマッピング(map)する。同様に、変換機能Ｔ２は、データエレメントを、出力ドメインＯＤから、変換された出力ドメインＯＤ’にマッピングする。変換された暗号化機能Ｅ’および解読機能Ｄ’は、変換されたキーを用いてＩＤ’とＯＤ’との間で定義される。Ｔ１及びＴ２は一対一の対応関係(bijections)にある。
【００５６】
暗号化技術と共に変換機能Ｔ１，Ｔ２を用いることは、出力ドメインＯＤの暗号化されたデータエレメントを得るために入力ドメインＩＤのデータエレメントを暗号化機能Ｅに入力する代わりに、ドメインＩＤ’の変換されたデータエレメントが、変換機能Ｔ１を適用することにより、変換された暗号化機能Ｅ’に入力されることを意味する。変換された暗号化機能Ｅ’は、暗号化処理において逆変換機能Ｔ１−１及び／又はＴ２−１を組み合わせて、キーのような秘密情報を保護する。そして、ドメインＯＤ’の変換された暗号化されたデータエレメントが得られる。保安部分(secured portion)においてＴ１及び／又はＴ２を実施することにより、暗号化機能Ｅまたは解読機能Ｄについてのキーは、変換されたデータ空間における入力データ及び出力データを解析する場合に読み取ることができない。
【００５７】
変換機能Ｔ１，Ｔ２のうちの一つは、非自明(non-trivial)な機能でなければならない。もしＴ１が自明な機能であれば、入力ドメインＩＤ及びＩＤ’は同一のドメインである。もしＴ２が自明な機能であれば、出力ドメインは同一のドメインである。
【００５８】
ホワイトボックス暗号化において、この処理は、攻撃者が機能Ｅ及びＤ並びにＩＤ，ＯＤにおけるデータエレメントにアクセスする敵対環境(hostile environment)において完全に実施されると考えられる。ホワイトボックス暗号化は、機能Ｅ及びＤについてのキー（の一部）を保護することによりセキュリティを提供する。受信器の保安部分(secured portion)またはスマートカードのうちの少なくとも一つにおいて変換機能Ｔ１およびＴ２を適用することにより、ホワイトボックス暗号化において適用されるようなルックアップテーブルＬｎは、変換された空間において解明(resolve)できない。
【００５９】
デスクランバーおよび保安クライアントのソフトウェア実施は、ソフトウェアアプリケーションを保護するためのソフトウェア変換を使用する。変換は、典型的には、ホワイトボックス暗号化において使用され、ここで、解読キーは、暗号文Ｃを解読することができるソフトウェアプログラムを実現するアルゴリズムの解読ステップとマージ(merge)される。
【００６０】
図１０ａは、図２ｂのホワイトボックス実施を示し、ここで、キーは、変換されたフォーマットで解読モジュール３１１１に提供される。変換されたキーＴ（Ｋ）は、解読モジュール３１１１のホワイトボックス実施にロードされる。解読モジュール３１１１は、キーＫで解読処理を適用する前に、Ｔ（Ｋ）変換してキーＫを得る。解読モジュール３１１１の実施は、解読モジュール３１１１およびＴ（Ｋ）の値を知る攻撃者がＫを復元できないことを確保する。このスキームの変形において、暗号文の入力Ｃ及び／又は解読された出力Ｍは、同様に変換することができない。
【００６１】
図１０ｂは、ホワイトボックスデスクランバー３１１２に入力される前に事前処理されたデスクランバー固有のキーに関連したデータＴｉ（Ｋ）を使用する個人向けホワイトボックスデスクランバー３１１２を示す。インデックス‘ｉ’は、特定のデスクランバー３１１２を示すために使用される。事前処理されたキーに関連するデータＴｉ（Ｋ）は、対応する個人向けホワイトボックスデスクランバー３１１２のみで使用できるように解釈(construe)される。加えて、各受信器はキーの個人向け変換Ｔｉを使用する。
【００６２】
放送ストリームＣを解読するためのデスクランバー３１１２のホワイトボックス実施に、変換されたキーＴｉ（Ｋ）がロードされる。デスクランバー３１１２の実施は、上記実施とＴｉ（Ｋ）の値を知る攻撃者がキーＫを復元できなことを確保する。また、攻撃者は、個人向け変換Ｔｊを用いる個人向けホワイトボックスデスクランバーを備えた別の受信器（‘ｊ’で示される）についてのキー関連のデータＴｊ（Ｋ）を生成することができないであろう。
【００６３】
例えば図５、図１７、図２０に示されるような公知のデスクランバーでは、入力キーＫは、妨害されて、放送ストリームＣを解読するために他の受信器に再配信され得る。なぜならば、キーに関連したデータＴｉ（Ｋ）は、受信器に固有であり、このキーに関連したデータＴｉ（Ｋ）は、他の受信器に役立たないからである。従って、入力キー関連のデータＴｉ（Ｋ）の妨害と他の受信器への再配信は、有利には、もはや有益でない。
【００６４】
図１１は、本発明の例示的な実施形態による個人向けホワイトボックスデスクランバー３１１を備えた受信器１１１のさらに詳細な例を示す。この図１１の例では、個人向けキーデータＴｉ（ＣＷ）は、スマートカードの保安クライアント２１１においてＣＷを事前処理することにより生成される。更に具体的には、事前処理モジュール８１１は、受信器１１１のデスクランバー３１１の外部のＣＷを事前処理するために保安クライアント２１１で使用される。これとともに、個人向けデスクランバー３１１のデスクランブリング処理の部分が事前処理モジュール８１１で実施される。事前処理モジュール８１１は、個人向けキーデータＴｉ（ＣＷ）をデスクランバー３１１に提供する前に変換機能を実施する。或いは、ＣＷは、ヘッドエンドシステムの事前処理モジュールで事前処理され、場合によってはスマートカードの中間段階を経て、ヘッドエンドシステムから受信器に伝送されてもよい。
【００６５】
受信器１１１は、例えば公知の手法で、放送ネットワークから入力ストリーム‘input’を受信する。限定受信システムでは、入力ストリームは、典型的には、ＭＰＥＧ−２またはＤＶＢトランスポートストリームであり、ＴＶチャンネル（すなわち、番組ストリーム）のみならず、番組ストリームを解読するために必要なキーを含む暗号化された情報を含む。番組ストリームの解読のために、キーは、一般にコントロールワードと呼ばれる。受信器１１１におけるデマックス(demux)／フィルタ(filter)モジュール９０１は、暗号文であるユーザ選択の番組ストリーム‘Ｃ’に対応するトランスポートストリームの部分をデスクランバー３１１に転送(forward)する。デマックス／フィルタモジュール９０１は、さらに、上記暗号化された情報から、ＥＭＭ(Entitlement Management Messages)およびＥＣＭ(Entitlement Control Message)のような、番組ストリームＣに関連する情報を抽出して保安クライアント２１１に送る。ＥＣＭは、プロダクトキーＰＫで暗号化されたＣＷを含み、それは図１１においてＥＰＫ（ＣＷ）として示されている。保安クライアント２１１は、ＥＣＭを受け取り、それを、保安キー記憶モジュール９０３から読み出された事前記憶のＰＫ値で解読モジュール９０２において解読する。事前処理モジュール８１１は、ＣＷを処理して、デスクランバー固有の変換されたフォームＴｉ（ＣＷ）にする。保安クライアント２１１におけるデスクランバー固有のＣＷ変換は、デスクランバー３１１から事前処理モジュール８１１に通知される受信器識別子‘ｉ’の情報を使用して受信器１１１における個人向けデスクランバーとリンクされる。個人向けデスクランバー３１１のデスクランブリング処理の一部は、事前処理モジュール８１１で実施される。
【００６６】
個人向けデスクランバー３１１における変換されたキーＴｉ（ＣＷ）の使用は、安全である必要がある。このことは、ＣＷを、変換されたキーＴｉ（ＣＷ）から得ることは困難であり、個人向けですな３１１から得ることが困難であることを意味する。また、異なる特定の個人向けデスクランバー１１１についての有効な変換されたキーを計算することが困難である。
【００６７】
次の代表的な実施形態は、どのようにして個人向けデスクランバーが、ブロック暗号化に基づいて個人向けホワイトボックスデスクランバーを用いて保護されるのかを示す。
【００６８】
図１２の代表的な実施形態では、個人向けデスクランバーは、個人向けブロック暗号化器３１２である。図３に示されるブロック暗号化器３０５と同様に、暗号文Ｃのブロックは、ブロック暗号化ラウンドモジュール４１１１，４１１２を用いて‘ｎ’ラウンドにわたって処理されて、平文メッセージＭになる。個人向けブロック暗号化器３１２では、各ラウンド‘ｒ’は、キー分割(key partitioning)モジュール５１１における受信された個人向けキーデータＴｉ（Ｋ）から導出される、それ自身の個人向けラウンドキー‘ＰＲＫｉｒ’を入力として受け取る。
【００６９】
図１３は、図１２に示されるようなブロック暗号化ラウンドモジュール４１１１，４１１２として使用される個人向けブロック暗号化ラウンドモジュール４１２の例を示す。ブロック暗号化ラウンドモジュール４１２は、図４に示される拡散モジュール６０１と同様に動作する拡散モジュール６１１を備える。個人向けラウンドキー‘ＰＲＫｉｒ’は、個人向け混合モジュール７１１に入力される。この個人向けラウンドキーは、ラウンド‘ｒ’および個人向けデスクランバー‘ｉ’について、固有のキー‘ＵＫｉｒ’とビットごとのＸＯＲを適用することにより計算される。個人向け混同モジュールにおける同一の固有のキーとの反復されるＸＯＲ演算は個人向けラウンドキーの変換を解除(remove)する。
【００７０】
図１４には、図１２の個人向けブロック暗号化器３１２のホワイトボックスルックアップテーブルドリブンの実施３１３の簡略化された例が示されている。図１４の例において、変換されたバイナリキー‘Ｔｉ（Ｋ）＝１０１１’は、図７の従来技術の例に示されるような共通のキー‘Ｋ＝１１’の個人向けバージョンである。また、個人向けキーＴｉ（Ｋ）は、外部の事前処理モジュール８１１において２ビット値から４ビット値に既に拡張(expand)されている。ブロック暗号化ラウンドモジュール４１２１，４１２２は、図７のブロック暗号化ラウンドモジュール４０３１，４０３２について示されるものと同様の方法で動作する。図１４の本発明の例示的な実施形態は、個人向けデスクランバー３１３が個人向け入力キーＴｉ（Ｋ）に関して動作する点で、図７と異なる。
【００７１】
図１４の例では、キー分割モジュール５１２１は、変換されたキーに含まれる個人向けラウンドキーのストリングから２ビットの個人向けラウンドキー‘ＰＲＫｉｒ’を選択する。変換されたキー‘Ｔｉ（Ｋ）＝１０１１’は、‘ＰＲＫｉ１＝１０’および‘ＰＲＫｉ２＝１１’の連結(concatenation)である。個人化モジュール５１２２は、プログラムされた固有のキー‘ＵＫｉｒ’とのＸＯＲ演算
【００７２】
【数３】
0005901884.tif 000004
【００７３】
を用いて、各‘ＰＲＫｉｒ’を変換する。固有のキー‘ＵＫｉ１＝１１’および‘ＵＫｉ２＝０１’は、個人向けラウンドキーを、ブロック暗号化ラウンドモジュール４１２１，４１２２で使用される共通のラウンドキーに変換するために使用される。
【００７４】
図１４において、暗号文‘Ｃ＝１１’は、第１のブロック暗号化ラウンドモジュール４１２１に入力される。拡散モジュール６１１は、入力値‘Ｃ＝１１’を‘１０’に変更するためにルックアップテーブルを使用する。混合モジュール７１１は、ルックアップテーブルを使用して、このルックアップテーブルの適切なカラムを選択するための第１の共通ラウンドキー値‘１１’を用いて値‘１０’を‘０１’に変換する。中間結果‘Ｃ１＝０１’は、第２のブロック暗号化ラウンドモジュール４１２２に入力される。拡散モジュール６１１は、ルックアップテーブルを使用して、入力値‘Ｃ１＝０１’を‘１１’に変更する。拡散モジュール７１１は、ルックアップテーブルを使用して、このルックアップテーブルの適切なカラムを選択するための第２の共通ラウンドキー値‘０１’を用いてバイナリ値‘１１’を‘１０’に変換する。最終的な結果‘Ｍ＝１０’が、デスクランブルされたメッセージである。
【００７５】
個人化モジュール５１２２について示されるＸＯＲ演算
【００７６】
【数４】
0005901884.tif 000005
【００７７】
は、ブロック暗号化ラウンドモジュール４１２１，４１２２に統合されてもよい。これは図１５に示されており、ここで、個人向け混合モジュール７１２は、変換されたキー‘Ｔｉ（Ｋ）＝１０１１’から‘ＰＲＫｉｒ’が抽出されるときに、それら‘ＰＲＫｉｒ’を処理する。混合モジュール７１２は、混合モジュール７１２におけるルックアップテーブルのカラムオーダーを変更することにより、個人向けにアレンジ(personalize)される。キー分割モジュール５１２１は、変換されたバイナリキー‘Ｔｉ（Ｋ）＝１０１１’を受け取り、そして、それを、二つの個人向けラウンドキー‘ＰＲＫｉ１＝１０’および‘ＰＲＫｉ２＝１１’に分割(partition)する。混合モジュール７１２は、個人向けラウンドキー‘ＰＲＫ’を処理して正しい出力を得るためのカラムのオーダーの特定の配列により個人向けにアレンジされている。他の受信器は、それとは異なった個人向け混合モジュールを有し、受信器‘ｉ’についての変換されたキーで暗号文を解読することができない。
【００７８】
図１５において、暗号文‘Ｃ＝１１’は、第１のブロック暗号化ラウンドモジュール４１３１に入力される。拡散モジュール６１１は、ルックアップテーブルを使用して、入力値‘Ｃ＝１１’を‘１０’に変更する。個人向け混合モジュール７１２は、ルックアップテーブルを使用し、このルックアップテーブルの適切なカラムを選択するための第１の個人ラウンドキー値‘１０’を用いて、値‘１０’を‘０１’に変換する。中間段階の結果‘Ｃ１＝０１’は、第２のブロック暗号化ラウンドモジュール４１３２に入力される。拡散モジュール６１１は、ルックアップテーブルを使用して、入力値‘Ｃ１＝０１’を‘１１’に変更する。個人向け混合モジュール７１２は、ルックアップテーブルを使用して、このルックアップテーブルの適切なカラムを選択するための第２の個人ラウンドキー値‘１１’を用いてバイナリ値‘１１’を‘１０’に変換する。最終的な結果‘Ｍ＝１０’はデスクランブルされたメッセージである。
【００７９】
図１６に、個人向けデスクランブルモジュールとしてのブロック暗号化器の代替の実施形態が示されており、ここで、各ブロック暗号化ラウンド機能４１４１，４１４２における拡散機能は、変換テーブルのセットで予めプログラムされている。各変換テーブルは、ブロック暗号化ラウンド４１４１，４１４２に入力される個人向けラウンドキー‘ＰＲＫｉｒ’に応じて、データ変換を適用する。図１６の例では、変換された入力バイナリキー‘ＰＲＫｉ１＝０１’は、キー分割モジュール５１２１において二つの個人向けラウンドキー‘ＰＲＫｉ１’および‘ＰＲＫｉ２’に分割される。個人向け混合モジュール７１３においては、個人向けラウンドキー‘ＰＲＫ’の各ビットは、対応のテーブルが使用されるべきか否かを示す。このようにして、個人向け混合モジュール７１３は、正しい出力を生成する。
【００８０】
図１６において、２ビットの暗号文‘Ｃ＝１１’が、第１のブロック暗号化ラウンドモジュール４１４１に入力される。拡散モジュール６１１は、上記暗号文をバイナリ値‘１０’に変換し、それは個人向け混合モジュール７１３に入力される。個人向けラウンドキー‘ＰＲＫｉ１＝０１’は、どの変換テーブルがバイナリ入力‘１０’に適用されるべきであるかを決定するために、第１のブロック暗号化ラウンドモジュール４１４１の個人向け混合モジュール７１３によって使用される。ＰＲＫｉ１の第１のビットは‘０’に等しく、それは、第１の変換テーブルを使用しないものと解釈される。ＰＲＫｉ１の第２のビットは‘１’に等しく、それは、第２の変換テーブルに従って入力‘１０’を‘０１’に変換するものと解釈される。バイナリ値‘０１’は、第２のブロック暗号化ラウンドモジュール４１４２に提供され、ここで、拡散モジュール６１１は、最初に、そのデータを‘０１’から‘１１’に変換する。このデータは、第２のブロック暗号化ラウンドモジュール４１４２の個人向け混合モジュール７１３に入力される。ＰＲＫｉ２の第１のビットは‘０’に等しく、それは、第１の変換テーブルの後の結果について第２変換テーブルを使用しないと解釈される。第２のブロック暗号化ラウンドモジュール４１４２の出力は、個人向けデスクランバー３１５の最終的な結果であり、従って、デスクランブルされたメッセージは‘Ｍ＝１０’に等しい。
【００８１】
図１６に示されるようなブロック暗号化器を備えた別の受信器は、典型的には、異なる個人向け混合モジュールでプログラムされ、即ち個人向け混合モジュールにおける異なる変換テーブルのセットでプログラムされ、従って有利には、他の受信器の妨害された変換された入力バイナリキー‘Ｔｉ（Ｋ）’で入力暗号文Ｃを解読することはできない。
【００８２】
本発明は、種々の例に示されるような２つのブロック暗号化ラウンドでの２ビットのデータ処理に限定されるものではないことが理解される。例えば、ＡＥＳブロック暗号化は、典型的には、１２８ビットの暗号化ブロックサイズと、１０，１２または１４ブロック暗号化ラウンドにおける１２８，１９２または２５６ビットのキーサイズを使用する。例えば、ＤＥＳブロック暗号化は、典型的には、６４ビットの暗号化ブロックサイズと、１６ブロック暗号化ラウンドにおける５６ビットのキーサイズを使用する。
【００８３】
次の例示的な実施形態は、どのようにして個人向けデスクランバーが、ストリーム暗号化に基づく個人向けホワイトボックスデスクランバーを用いて保護されるかを示す。
【００８４】
図１８は、個人向けホワイトボックスストリーム暗号化モジュール３１６の例を示す。事前処理されたキーに関連するデータＴｉ（Ｋ）は、個人向けストリーム暗号化モジュール３１６に入力される。Ｔｉ（Ｋ）は、は、個人向けストリーム暗号化モジュール３１６の外部の事前処理モジュール８１１におけるキー拡張機能とセットアップ機能によって事前処理されたキーＫを含む。また、事前処理されたキーＫＩは変換される。Ｔｉ（Ｋ）は、暗号文ＣをデスクランブルするためにＸＯＲモジュール４１５に入力される。ブロック暗号化器の実施形態の個人向け混合モジュールにおけるテーブルの動作と同様に、ＸＯＲモジュールにおけるＸＯＲテーブルは、変換を反転(inverse)させるように個人向けにアレンジ(personalize)される。
【００８５】
図１９は、代替の個人向けホワイトボックスストリーム暗号化モジュール３１７の例を示す。個人向けキーに関連するデータＴｉ（Ｋ）は、個人向けストリーム暗号化モジュール３１７に入力される。Ｔｉ（Ｋ）は、個人向けストリーム暗号化モジュール３１７の外部の事前処理モジュール８１１におけるセットアップ機能によって事前処理されたキーＫを含む。また、事前処理されたキーＫは変換される。Ｔｉ（Ｋ）は、個人向けの拡張されたキーＰＥＫを得るためにキー拡張モジュール５１３に入力される。ＰＥＫは、暗号文ＣをデスクランブリングするためにＸＯＲモジュール４１６に入力される。ブロック暗号化実施形態の個人向け混合モジュールにおけるテーブルの動作と同様に、ＸＯＲモジュールにおけるＸＯＲテーブルは、変換を反転させるように個人向けにアレンジされてもよい。或いは、キー拡張モジュール５１３は逆変換を実施する。
【００８６】
次の例示的な実施形態は、どのようにして個人向けデスクランバーが、公開キー暗号化に基づく個人向けホワイトボックスデスクランバーを用いて保護されるかを示す。
【００８７】
図２１は、個人向け公開キー暗号化モジュール３１８の例を示す。キーＫの値は、外部の事前処理モジュール８１１においてＴｉ（Ｋ）＝｛Ｋ−Ｋ１｝を設定することにより隠匿されている。個人向け累乗モジュール５１４は、入力Ｔｉ（Ｋ）を用いて、個人向けの拡張されたキー‘ＰＥＫ＝Ｇ（Ｋ＋Ｋ１） ｍｏｄ Ｎ’を計算する。従って、公開キーアルゴリズムの個人向けバージョンは、‘Ｋ１’の値を変更することにより生成される。得られた拡張された個人向けキーＰＥＫは、入力暗号文Ｃを解読するために個人向け解読モジュール４１７に入力される。暗号文Ｃの解読部分として、暗号文Ｃは、個人向け解読モジュール４１７に入力される前に、修正モジュール４０５１において中間暗号文Ｃ１に修正されてもよい。
【００８８】
図２２は、本発明の例示的な実施形態の限定受信システム２６０を示す。ヘッドエンドシステム２５０は、配信ネットワーク２７０を介して、ＥＣＭ、ＥＭＭ、およびＣＷでスクランブルされたコンテンツストリーム（即ち暗号文）を１又は２以上の受信器１１１に送信する。ＥＣＭは、典型的には、１又は２以上のＣＷを含む。ＥＣＭは、受信器１１１と通信可能に接続された保安装置２８０によって事前処理される。受信器は、個人向けデスクランバー３１１，３１２，３１３，３１４，３１５，３１６，３１７，３１８を備える。保安装置２８０は、例えばスマートカードであり、典型的には、図１１で述べたような保安クライアント２１１を含む。ＣＷは、ヘッドエンドシステム２５０における事前処理モジュール８１１で事前処理され、または代替的には、保安クライアント２１１における事前処理モジュール８１１で事前処理される。
【００８９】
任意の実施形態に関連して述べられた任意の特徴は、単独で使用されてもよく、または、上述した他の特徴と組み合わせて使用されてもよく、また、任意の他の実施形態の１又は２以上の特徴と組み合わせて使用されてもよく、または、任意の他の実施形態の組み合わせであってもよい。本発明の一実施形態は、コンピュータシステムで使用するプログラムプロダクトとして実施されてもよい。このプログラムプロダクトのプログラム（または複数のプログラム）は、上記実施形態（本明細書で述べた方法を含む）の機能を規定し、そして、種々のコンピュータ読取り可能な記録媒体に格納することができる。例示的なコンピュータ読取り可能な記録媒体は、（ｉ）情報が恒久的に保持される書き込み禁止型の記録媒体（例えば、ＣＤ−ＲＯＭドライブによって読取り可能なＣＤ−ＲＯＭデスク、ＲＯＭチップ、または、任意のタイプの固体不揮発性半導体メモリのような、コンピュータ内の読取り専用メモリ装置）、および、（ｉｉ）変更可能な情報が格納される書き込み可能型の記録媒体（例えば、デスケットドライブ内のフロッピー（登録商標）ディスク、またはハードデスクドライブ、または任意のタイプの固体ランダムアクセス半導体メモリまたはフラッシュメモリ）を含むが、これらに限定されるものではないことが理解される。また、本発明は、上述した実施形態に限定されるものではなく、それは、添付の請求項の範囲内で変形することができる。
【符号の説明】
【００９０】
１１１：受信器
２１１：保安クライアント
２５０：ヘッドエンドシステム
２６０：限定受信システム
２７０：配信ネットワーク
２８０：保安装置
３０８：ストリーム暗号化器
３０９：公開キー暗号化
３１２：個人向けブロック暗号化器
４０４：ＸＯＲモジュール
４１５：ＸＯＲモジュール
４１６：ＸＯＲモジュール
４１７：解読モジュール
５０５：累乗モジュール
５１１：キー分割モジュール
５１３：キー拡張モジュール
５１４：累乗モジュール
６１１：拡散モジュール
７１１：混合モジュール
７１２：混合モジュール
８１１：事前処理モジュール
９０１：デマックス／フィルタモジュール
９０２：解読モジュール
９０３：保安キー記憶モジュール
３１１１：解読モジュール
３１１２：ホワイトボックスデスクランバー
４０５１：修正モジュール
４０５２：解読モジュール
４１１１：ブロック暗号化ラウンドモジュール
４１１２：ブロック暗号化ラウンドモジュール
４１２１：ブロック暗号化ラウンドモジュール
４１２２：ブロック暗号化ラウンドモジュール
４１３１：第１のブロック暗号化ラウンドモジュール
４１３２：第２のブロック暗号化ラウンドモジュール
４１４１：ブロック暗号化ラウンド機能
４１４２：ブロック暗号化ラウンド機能
５０４１：セットアップモジュール
５０４２：キー拡張モジュール
５１２１：キー分割モジュール
５１２２：個人化モジュール
【図１ａ】
0005901884.tif 000006
【図１ｂ】
0005901884.tif 000007
【図１ｃ】
0005901884.tif 000008
【図２ａ】
0005901884.tif 000009
【図２ｂ】
0005901884.tif 000010
【図３】
0005901884.tif 000011
【図４】
0005901884.tif 000012
【図５】
0005901884.tif 000013
【図６】
0005901884.tif 000014
【図７】
0005901884.tif 000015
【図８】
0005901884.tif 000016
【図９】
0005901884.tif 000017
【図１０ａ】
0005901884.tif 000018
【図１０ｂ】
0005901884.tif 000019
【図１１】
0005901884.tif 000020
【図１２】
0005901884.tif 000021
【図１３】
0005901884.tif 000022
【図１４】
0005901884.tif 000023
【図１５】
0005901884.tif 000024
【図１６】
0005901884.tif 000025
【図１７】
0005901884.tif 000026
【図１８】
0005901884.tif 000027
【図１９】
0005901884.tif 000028
【図２０】
0005901884.tif 000029
【図２１】
0005901884.tif 000030
【図２２】
0005901884.tif 000031
【図２３】
0005901884.tif 000032
【図２４】
0005901884.tif 000033
【図２５】
0005901884.tif 000034