(57)【要約】  システム３００において、サーバ３１０は、難読化形式により暗号化関数Ｆを実行装置に提供する。関数Ｆは、アーベル群演算子    【数２２１】2008518262.tif 000223を用いて複数のマッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）の出力を構成する。プロセッサ３１２は、    【数２２２】2008518262.tif 000224となるようにテーブルＯとＣを選択し、テーブル    【数２２３】2008518262.tif 000225を生成する。ただし、０≦ｉ≦ｎに対して、各テーブルＴ’ｉは各自の対応するテーブルＴ，ｊを表し、少なくとも１つのテーブル    【数２２４】2008518262.tif 000226がＴｏ１とＯのアーベル合成により形成され、少なくとも１つのテーブル    【数２２５】2008518262.tif 000227がＣを含むアーベル合成により形成される。手段３１４は、テーブルＴ’ｉを実行装置に提供するのに利用される。実行装置３２０は、テーブルを受け付ける手段３２４と、テーブルＴ’ｉのアーベル合成により暗号化関数Ｆに機能的に等価な関数Ｆ’を形成するプロセッサ３２２とを有する。
2008518262.tif 000002
【特許請求の範囲】
【請求項１】
各テーブルがキー状の情報を有し、所定のドメインＤの各部分Ｄｉ上で機能する複数の非線形マッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）を利用して、前記ドメインＤからの入力ｘを出力ｙに暗号変換する暗号化関数Ｆであって、アーベル群演算子
【数１】
2008518262.tif 000141
を利用して前記マッピングテーブルの出力を構成する関数Ｆ（例えば、
【数２】
2008518262.tif 000142
など）を難読化する方法であって、
テーブルＯとテーブルＣを、
【数３】
2008518262.tif 000143
となるように選択するステップと、
複数のテーブル
【数４】
2008518262.tif 000144
（ただし、０≦ｉ≦ｎに対して、各テーブルＴ’ｉは各自の対応するテーブルＴｉを表し、前記テーブルの少なくとも１つである
【数５】
2008518262.tif 000145
は、以降において難読化テーブルと呼ばれるものであって、前記アーベル群演算子を用いて対応するテーブル
【数６】
2008518262.tif 000146
と前記テーブルＯとの合成により形成され（例えば、
【数７】
2008518262.tif 000147
など）、その他のテーブルの少なくとも１つである
【数８】
2008518262.tif 000148
は、以降において補償テーブルと呼ばれるものであって、前記アーベル群演算子を用いて前記テーブルＣを含む合成により形成される（例えば、
【数９】
2008518262.tif 000149
など））を生成するステップと、
前記テーブルＯとＣとが合成により補償されるように、前記アーベル群演算子を用いて前記複数のテーブル
【数１０】
2008518262.tif 000150
を合成することによって、前記暗号化関数Ｆに機能的に等価な関数Ｆ’を形成するステップと、
を有する方法。
【請求項２】
前記テーブルＯとＣとは、同一の非自明な定数ｂ１を表し、
前記難読化テーブル
【数１１】
2008518262.tif 000151
を生成するステップは、前記アーベル群演算子を用いて前記定数ｂ１と前記対応するテーブル
【数１２】
2008518262.tif 000152
の各要素とを合成することを有し、
前記補償テーブル
【数１３】
2008518262.tif 000153
を生成するステップは、前記アーベル群演算子を用いて前記定数ｉと対応するテーブル
【数１４】
2008518262.tif 000154
の各要素とを合成することを有する、請求項１記載の方法。
【請求項３】
ｍ＝ｎである、請求項２記載の方法。
【請求項４】
Ｏとは異なるさらなるテーブルＯ２と、さらなるテーブルＣ２とを、
【数１５】
2008518262.tif 000155
となり、テーブルＯ２とＣ２とが同一の非自明な定数ｂ２を表すように選択するステップと、
少なくとも１つのさらなる難読化テーブル
【数１６】
2008518262.tif 000156
を、前記アーベル群演算子を用いて対応するテーブル
【数１７】
2008518262.tif 000157
と前記テーブルＯ２との合成により形成し（例えば、
【数１８】
2008518262.tif 000158
など）、前記テーブルＣ２を含む合成により前記補償テーブル
【数１９】
2008518262.tif 000159
を形成する（例えば、
【数２０】
2008518262.tif 000160
など）ステップと、
を有する、請求項２記載の方法。
【請求項５】
ｍ＝ｎ＋１及びｃ１＝ｍである、請求項１記載の方法。
【請求項６】
前記難読化テーブル
【数２１】
2008518262.tif 000161
は、前記ドメインの部分
【数２２】
2008518262.tif 000162
に適用され、
Ｏは、
【数２３】
2008518262.tif 000163
に適用され、
【数２４】
2008518262.tif 000164
なるマッピングテーブルであり、
当該方法は、前記補償テーブル
【数２５】
2008518262.tif 000165
を形成する合成が、
【数２６】
2008518262.tif 000166
を含むように、前記ドメインＤを
【数２７】
2008518262.tif 000167
に拡張するステップを有する（ただし、ｉ≦ｎに対してＤｉ＝Ｄ’ｉであり、Ｄｎ＋１は
【数２８】
2008518262.tif 000168
の表現を含む）、請求項５記載の方法。
【請求項７】
Ｏは準同型であり、
当該方法は、前記アーベル群演算子を用いて前記対応するＴｉと前記テーブルＯとの合成により複数の難読化テーブルＴ’ｉを形成し（例えば、
【数２９】
2008518262.tif 000169
など）、前記アーベル演算子を用いて関係するテーブルＴｉの対応するサブドメインの合成により前記ドメイン拡張Ｄ’ｎ＋１を形成する（例えば、
【数３０】
2008518262.tif 000170
など）ステップを有する、請求項６記載の方法。
【請求項８】
難読化形式により暗号化関数Ｆを実行装置に提供するシステムであって、
当該システムは、サーバと実行装置とを有し、
前記関数Ｆは、各テーブルがキー状の情報を有し、所定のドメインＤの各部分Ｄｉ上で機能する複数の非線形マッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）を利用して、前記ドメインＤからの入力ｘを出力ｙに暗号変換し、アーベル群演算子
【数３１】
2008518262.tif 000171
を利用して前記マッピングテーブルの出力を構成し（例えば、
【数３２】
2008518262.tif 000172
など）、
前記サーバは、プログラムの制御の下、テーブルＯとテーブルＣを、
【数３３】
2008518262.tif 000173
となるように選択し、複数のテーブル
【数３４】
2008518262.tif 000174
（ただし、０≦ｉ≦ｎに対して、各テーブルＴ’ｉは各自の対応するテーブルＴｉを表し、前記テーブルの少なくとも１つである
【数３５】
2008518262.tif 000175
は、以降において難読化テーブルと呼ばれるものであって、前記アーベル群演算子を用いて対応するテーブル
【数３６】
2008518262.tif 000176
と前記テーブルＯとの合成により形成され（例えば、
【数３７】
2008518262.tif 000177
など）、その他のテーブルの少なくとも１つである
【数３８】
2008518262.tif 000178
は、以降において補償テーブルと呼ばれるものであって、前記アーベル群演算子を用いて前記テーブルＣを含む合成により形成される（例えば、
【数３９】
2008518262.tif 000179
など））を生成するプロセッサと、
前記複数のテーブル
【数４０】
2008518262.tif 000180
を前記実行装置に提供する手段と、
を有し、
前記実行装置は、
前記複数のテーブル
【数４１】
2008518262.tif 000181
を前記サーバから受け付ける手段と、
プログラムの制御の下、前記テーブルＯとＣとが合成により補償されるように、前記アーベル群演算子を用いて前記複数のテーブル
【数４２】
2008518262.tif 000182
を合成することによって、前記暗号化関数Ｆに機能的に等価な関数Ｆ’を形成するプロセッサと、
を有するシステム。
【請求項９】
前記サーバのプログラムは、前記プロセッサに前記実行装置のプログラムを構成されるように実行され、
前記実行装置のプログラムは、複数のテーブル
【数４３】
2008518262.tif 000183
を有し、前記プロセッサに前記難読化された関数Ｆ’を形成させる命令を有する、請求項８記載のシステム。
【請求項１０】
請求項８記載のシステムに使用されるサーバであって、
暗号化関数Ｆが、難読化形式により実行装置に提供され、
前記関数Ｆは、各テーブルがキー状の情報を有し、所定のドメインＤの各部分Ｄｉ上で機能する複数の非線形マッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）を利用して、前記ドメインＤからの入力ｘを出力ｙに暗号変換し、アーベル群演算子
【数４４】
2008518262.tif 000184
を利用して前記マッピングテーブルの出力を構成し（例えば、
【数４５】
2008518262.tif 000185
など）、
前記サーバは、プログラムの制御の下、テーブルＯとテーブルＣを、
【数４６】
2008518262.tif 000186
となるように選択し、複数のテーブル
【数４７】
2008518262.tif 000187
（ただし、０≦ｉ≦ｎに対して、各テーブルＴ’ｉは各自の対応するテーブルＴｉを表し、前記テーブルの少なくとも１つである
【数４８】
2008518262.tif 000188
は、以降において難読化テーブルと呼ばれるものであって、前記アーベル群演算子を用いて対応するテーブル
【数４９】
2008518262.tif 000189
と前記テーブルＯとの合成により形成され（例えば、
【数５０】
2008518262.tif 000190
など）、その他のテーブルの少なくとも１つである
【数５１】
2008518262.tif 000191
は、以降において補償テーブルと呼ばれるものであって、前記アーベル群演算子を用いて前記テーブルＣを含む合成により形成される（例えば、
【数５２】
2008518262.tif 000192
など））を生成するプロセッサと、
前記複数のテーブル
【数５３】
2008518262.tif 000193
を前記実行装置に提供する手段と、
を有するサーバ。
【請求項１１】
請求項１０記載のサーバのプロセッサを制御するコンピュータプログラムであって、
暗号化関数Ｆが、難読化形式により実行装置に提供され、
前記関数Ｆは、各テーブルがキー状の情報を有し、所定のドメインＤの各部分Ｄｉ上で機能する複数の非線形マッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）を利用して、前記ドメインＤからの入力ｘを出力ｙに暗号変換し、アーベル群演算子
【数５４】
2008518262.tif 000194
を利用して前記マッピングテーブルの出力を構成し（例えば、
【数５５】
2008518262.tif 000195
など）、
当該コンピュータプログラムは、前記プロセッサに、テーブルＯとテーブルＣを、
【数５６】
2008518262.tif 000196
となるように選択させ、複数のテーブル
【数５７】
2008518262.tif 000197
（ただし、０≦ｉ≦ｎに対して、各テーブルＴ’ｉは各自の対応するテーブルＴｉを表し、前記テーブルの少なくとも１つである
【数５８】
2008518262.tif 000198
は、以降において難読化テーブルと呼ばれるものであって、前記アーベル群演算子を用いて対応するテーブル
【数５９】
2008518262.tif 000199
と前記テーブルＯとの合成により形成され（例えば、
【数６０】
2008518262.tif 000200
など）、その他のテーブルの少なくとも１つである
【数６１】
2008518262.tif 000201
は、以降において補償テーブルと呼ばれるものであって、前記アーベル群演算子を用いて前記テーブルＣを含む合成により形成される（例えば、
【数６２】
2008518262.tif 000202
など）を生成させるプログラム命令を有するコンピュータプログラム。
【請求項１２】
請求項８記載のシステムにおいて使用される実行装置であって、
暗号化関数Ｆが、難読化形式により実行装置に提供され、
前記関数Ｆは、各テーブルがキー状の情報を有し、所定のドメインＤの各部分Ｄｉ上で機能する複数の非線形マッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）を利用して、前記ドメインＤからの入力ｘを出力ｙに暗号変換し、アーベル群演算子
【数６３】
2008518262.tif 000203
を利用して前記マッピングテーブルの出力を構成し（例えば、
【数６４】
2008518262.tif 000204
など）、
当該実行装置は、
前記複数のテーブル
【数６５】
2008518262.tif 000205
（ただし、０≦ｉ≦ｎに対して、各テーブルＴ’ｉは各自の対応するテーブルＴｉを表し、前記テーブルの少なくとも１つである
【数６６】
2008518262.tif 000206
は、以降において難読化テーブルと呼ばれるものであって、前記アーベル群演算子を用いて対応するテーブル
【数６７】
2008518262.tif 000207
と前記テーブルＯとの合成により形成され（例えば、
【数６８】
2008518262.tif 000208
など）、その他のテーブルの少なくとも１つである
【数６９】
2008518262.tif 000209
は、以降において補償テーブルと呼ばれるものであって、前記アーベル群演算子を用いて前記テーブルＣを含む合成により形成され（例えば、
【数７０】
2008518262.tif 000210
など）、
【数７１】
2008518262.tif 000211
である）を受け付ける手段と、
プログラムの制御の下、前記テーブルＯとＣとが合成により補償されるように、前記アーベル群演算子を用いて前記複数のテーブル
【数７２】
2008518262.tif 000212
を合成することによって、前記暗号化関数Ｆに機能的に等価な関数Ｆ’を形成するプロセッサと、
を有する実行装置。
【請求項１３】
実行装置のプロセッサを制御するコンピュータプログラムであって、
暗号化関数Ｆが、難読化形式により実行装置に提供され、
前記関数Ｆは、各テーブルがキー状の情報を有し、所定のドメインＤの各部分Ｄｉ上で機能する複数の非線形マッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）を利用して、前記ドメインＤからの入力ｘを出力ｙに暗号変換し、アーベル群演算子
【数７３】
2008518262.tif 000213
を利用して前記マッピングテーブルの出力を構成し（例えば、
【数７４】
2008518262.tif 000214
など）、
前記暗号化関数は、
前記複数のテーブル
【数７５】
2008518262.tif 000215
（ただし、０≦ｉ≦ｎに対して、各テーブルＴ’ｉは各自の対応するテーブルＴｉを表し、前記テーブルの少なくとも１つである
【数７６】
2008518262.tif 000216
は、以降において難読化テーブルと呼ばれるものであって、前記アーベル群演算子を用いて対応するテーブル
【数７７】
2008518262.tif 000217
と前記テーブルＯとの合成により形成され（例えば、
【数７８】
2008518262.tif 000218
など）、その他のテーブルの少なくとも１つである
【数７９】
2008518262.tif 000219
は、以降において補償テーブルと呼ばれるものであって、前記アーベル群演算子を用いて前記テーブルＣを含む合成により形成され（例えば、
【数８０】
2008518262.tif 000220
など）、
【数８１】
2008518262.tif 000221
である）を有して難読化形式により受け付けされ、
当該コンピュータプログラムは、前記プロセッサに前記テーブルＯとＣとが合成により補償されるように、前記アーベル群演算子を用いて前記複数のテーブル
【数８２】
2008518262.tif 000222
を合成することによって、前記暗号化関数Ｆに機能的に等価な関数Ｆ’を形成させるプログラム命令を有するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カスケード接続された暗号化関数を難読化する方法に関する。本発明はまた、カスケード接続された暗号化関数を難読化された方法により実行装置に供給するシステムに関する。本発明はさらに、難読化された方法により提供されるカスケード接続された暗号化関数を実行するための実行装置に関する。
【背景技術】
【０００２】
インターネットは、デジタルコンテンツへの便利かつユビキタスなアクセスをユーザに提供する。強力な配信チャネルとしてのインターネットの潜在性のため、多数のＣＥ製品がインターネットに直接アクセスし、又はインターネットへの主要なポータルであるＰＣプラットフォームと相互作用しようとしている。ＣＥ製品は、以下に限定されるものではないが、デジタルセットトップボックス、デジタルテレビ、ゲームコンソール、ＰＣ、そしてＰＤＡ、携帯電話機、モバイルストレージなどの増加しつつある携帯装置、ＡｐｐｌｅのｉＰｏｄなどのレンダリング装置を含む。著作権管理されたコンテンツに対する配信媒体としてのインターネットの利用は、コンテンツプロバイダの利益を保護するための強力なチャレンジを生じさせる。特に、コンテンツプロバイダの著作権及びビジネスモデルを保証することが要求される。ＣＥプラットフォームが適切なソフトウェアによりロードされるプロセッサを用いて実行されることが増大している。このようなソフトウェアは、音声及び／又は映像などのデジタルコンテンツのレンダリング（再生）のための機能の主要部分を含むかもしれない。再生ソフトウェアの制御は、コンテンツが利用される条件及び状態を含む子テンツ所有者の利益を主張するための１つの方法である。従来、多数のＣＥプラットフォーム（ＰＣとＰＤＡを除いて）はクローズドタイプのものであったが、今日では、ますます多くのプラットフォームは少なくとも部分的にオープンタイプのものである。特に、ＰＣプラットフォームについては、一部のユーザはコンテンツプロテクション機構を攻撃及び通過するためのかなりの時間とリソースと、コンテンツへのアクセスを提供するハードウェア及びソフトウェアに対する完全なコントロールを有すると考えられているかもしれない。この結果、コンテンツ提供者は、必ずしもすべてのユーザが信頼できるとは限らないコミュニティとの敵対的なネットワークを介し正当なユーザにコンテンツを配信しなければならない。ＣＥプラットフォームに配信されるプロテクトされたコンテンツに対するデジタル著作権管理の一般的なアプローチは、デジタルコンテンツを暗号化し（例えば、ＤＥＳ又はＡＥＳを用いて）、いわゆるライセンスデータベースに解読キー（又は“ライセンス”）を格納するというものである。（ＰＣについては、ライセンスデータベースは、典型的には、ＰＣのハードディスクに格納される。）暗号化によるデジタル著作権管理の最大の脆弱性は、キー配布と取り扱いである。再生については、ソフトウェアプレーヤーは、ライセンスデータベースから解読キーを抽出する必要があり、その後、暗号化されたコンテンツの解読のため、当該解読キーをメモリ内の何れかに格納する必要がある。このことは、攻撃者にソフトウェアプレーヤーにおけるキーの取り扱いの攻撃について２つのオプションを攻撃者に残す。第１には、ライセンスデータベースアクセス関数のリバースエンジニアリングによって、ブラックボックスソフトウェアがすべてのライセンスデータベースからアセットキーを抽出することが可能となる。（すなわち、攻撃者は、ソフトウェア関数の内部動作を理解する必要はない。）第２には、コンテンツ解読中に使用されたメモリへのアクセスを観察することによって、アセットキーを抽出することが可能である。
【０００３】
典型的には、デジタル著作権管理システムは、ラウンドと呼ばれる暗号化／解読ステップのシーケンスを用いて、ブロックにおいてデータストリームを処理するブロック暗号に基づく暗号化技術を利用する。各ラウンド中、ラウンド固有機能が実行される。ラウンド固有機能は、ラウンド固有サブキーの制御の下で実行される同一のラウンド機能に基づくものであってもよい。多数の暗号化システムについて、ラウンド機能は、当該機能のドメインの各部分についてマッピングテーブルを用いて指定される。明示的なテーブルが使用されなくても、暗号化／解読機能のソフトウェアによる効率的な実行のための、当該機能のドメインの各部分について、テーブルが頻繁に使用される。コンピュータコードは関数のレンジ値へのテーブル値にアクセス又は合成する。ユーザ固有であるあるかもしれないキーを配布する代わりに、暗号化又は解読アルゴリズムに対するキーの代わりに、ユーザ固有のアルゴリズムを配信することがより興味深いものとなる。しばしば関数（マッピング）であるこれらのアルゴリズムは、キー状の要素の再構成を防ぎ、又は再計算を禁止するため、難読化される（隠される）必要がある。コンピュータ上では、コンピュータコードにより伴われるテーブルが、しばしばこれらの関数を表現する。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の課題は、Ｆｅｉｓｔｅｌネットワークなどのカスケード接続された暗号化関数のより良好なプロテクションを提供するタイプの方法、システム及び実行装置を提供することである。
【課題を解決するための手段】
【０００５】
本発明の課題を実現するため、各テーブルがキー状の情報を有し、所定のドメインＤの各部分Ｄｉ上で機能する複数の非線形マッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）を利用して、前記ドメインＤからの入力ｘを出力ｙに暗号変換する暗号化関数Ｆであって、アーベル群演算子
【０００６】
【数８３】
2008518262.tif 000003
を利用して前記マッピングテーブルの出力を構成する関数Ｆ（例えば、
【０００７】
【数８４】
2008518262.tif 000004
など）を難読化する方法は、
テーブルＯとテーブルＣを、
【０００８】
【数８５】
2008518262.tif 000005
となるように選択するステップと、
複数のテーブル
【０００９】
【数８６】
2008518262.tif 000006
（ただし、０≦ｉ≦ｎに対して、各テーブルＴ’ｉは各自の対応するテーブルＴｉを表し、前記テーブルの少なくとも１つである
【００１０】
【数８７】
2008518262.tif 000007
は、以降において難読化テーブルと呼ばれるものであって、前記アーベル群演算子を用いて対応するテーブル
【００１１】
【数８８】
2008518262.tif 000008
と前記テーブルＯとの合成により形成され（例えば、
【００１２】
【数８９】
2008518262.tif 000009
など）、その他のテーブルの少なくとも１つである
【００１３】
【数９０】
2008518262.tif 000010
は、以降において補償テーブルと呼ばれるものであって、前記アーベル群演算子を用いて前記テーブルＣを含む合成により形成される（例えば、
【００１４】
【数９１】
2008518262.tif 000011
など））を生成するステップと、
前記テーブルＯとＣとが合成により補償されるように、前記アーベル群演算子を用いて前記複数のテーブル
【００１５】
【数９２】
2008518262.tif 000012
を合成することによって、前記暗号化関数Ｆに機能的に等価な関数Ｆ’を形成するステップとを有する。
【００１６】
本発明によると、オリジナルテーブルの少なくとも１つが、選択されたテーブルＯとのアーベル合成により難読化される。このように、オリジナルテーブルのコンテンツを取得することがより困難になる。暗号化関数Ｆがテーブルのアーベル合成として実現可能であるという事実は、テーブルＯによる攪乱を補償するのに利用される。このため、アーベル演算子によるテーブルＯのインバースであるテーブルＣがまた、テーブルの新たな合成に含まれ、Ｏの効果を相殺する。好ましくは、すべてのオリジナルテーブルが難読化される。補償テーブルは、テーブルＴ’ｉ（０≦ｉ≦ｎ）の１以上又は追加的テーブルＴ’ｎ＋１に含まれるようにしてもよい。
【００１７】
従属クレーム２の手段によると、前記テーブルＯとＣとは、同一の非自明な定数ｂ１を表し、前記難読化テーブル
【００１８】
【数９３】
2008518262.tif 000013
を生成するステップは、前記アーベル群演算子を用いて前記定数ｂ１と前記対応するテーブル
【００１９】
【数９４】
2008518262.tif 000014
の各要素とを合成することを有し、
前記補償テーブル
【００２０】
【数９５】
2008518262.tif 000015
を生成するステップは、前記アーベル群演算子を用いて前記定数ｉと対応するテーブル
【００２１】
【数９６】
2008518262.tif 000016
の各要素とを合成することを有する。定数を使用することは、テーブル
【００２２】
【数９７】
2008518262.tif 000017
を隠すためのシンプルな方法である。この定数は、テーブル値と合成され、これにより、同一レンジを有する。（例えば、０．．．２６４−１の典型的なレンジは、６４ビットにより表現可能であり、６４ビット定数を与える。）この定数は、テーブルを難読化するためのキーとしてみなすことができる。テーブルのいくつかを難読化することによって、好ましくは、各々が各自の定数を使用することによって、さらにセキュアなシステムを構築することができる。
【００２３】
従属クレーム３の手段によると、ｍ＝ｎである。このアプローチでは、難読化された暗号化関数Ｆ’について使用されるテーブル数は、Ｆについて使用されるものと同じとなる。追加的な補償テーブルが不要となる。
【００２４】
従属クレーム４の手段によると、Ｏとは異なるさらなるテーブルＯ２と、さらなるテーブルＣ２とを、
【００２５】
【数９８】
2008518262.tif 000018
となり、テーブルＯ２とＣ２とが同一の非自明な定数ｂ２を表すように選択するステップと、
少なくとも１つのさらなる難読化テーブル
【００２６】
【数９９】
2008518262.tif 000019
を、前記アーベル群演算子を用いて対応するテーブル
【００２７】
【数１００】
2008518262.tif 000020
と前記テーブルＯ２との合成により形成し（例えば、
【００２８】
【数１０１】
2008518262.tif 000021
など）、前記テーブルＣ２を含む合成により前記補償テーブル
【００２９】
【数１０２】
2008518262.tif 000022
を形成する（例えば、
【００３０】
【数１０３】
2008518262.tif 000023
など）ステップと、
を有する。定数を使用することは、１つのみの補償テーブルにおいて複数の難読化を補償することを簡単化する。この補償テーブルに複数の補償を含めることによって、各補償がより良好に隠され、セキュリティが向上する。
【００３１】
従属クレーム５の手段によると、ｍ＝ｎ＋１及びｃ１＝ｍであり、このことは、補償テーブルが追加的テーブルであることを意味する。この追加的テーブルは、難読化テーブルの１以上を表すものであってもよい。追加的テーブルを使用することはさらなる自由度を与え、補償可能な難読化のさらなる可能性をもたらす。
【００３２】
従属クレーム６の手段によると、前記難読化テーブル
【００３３】
【数１０４】
2008518262.tif 000024
は、前記ドメインの部分
【００３４】
【数１０５】
2008518262.tif 000025
に適用され、
Ｏは、
【００３５】
【数１０６】
2008518262.tif 000026
に適用され、
【００３６】
【数１０７】
2008518262.tif 000027
なるマッピングテーブルである。当該方法は、前記補償テーブル
【００３７】
【数１０８】
2008518262.tif 000028
を形成する合成が、
【００３８】
【数１０９】
2008518262.tif 000029
を含むように、前記ドメインＤを
【００３９】
【数１１０】
2008518262.tif 000030
に拡張するステップを有する（ただし、ｉ≦ｎに対してＤｉ＝Ｄ’ｉであり、Ｄｎ＋１は
【００４０】
【数１１１】
2008518262.tif 000031
の表現を含む）。ドメインを拡張し、当該ドメイン拡張が難読化された部分を含むことを保証することによって、テーブルのレンジを難読化することも可能となる。なぜなら、これは、攪乱されていないドメイン部分が依然として利用可能であるという事実により補償可能であり、補償の入力として利用可能であるためである。原則的に、各攪乱されたドメイン部分は、独立した拡張ドメイン部分として含めることができる。
【００４１】
従属クレーム７の手段によると、効果的には、Ｏは準同型であり、当該方法は、前記アーベル群演算子を用いて前記対応するＴｉと前記テーブルＯとの合成により複数の難読化テーブルＴ’ｉを形成し（例えば、
【００４２】
【数１１２】
2008518262.tif 000032
など）、前記アーベル演算子を用いて関係するテーブルＴｉの対応するサブドメインの合成により前記ドメイン拡張Ｄ’ｎ＋１を形成する（例えば、
【００４３】
【数１１３】
2008518262.tif 000033
など）ステップを有する。Ｏが準同型であるという事実は、１つのみのドメイン拡張部分Ｄ’ｎ＋１において表される合成された入力が各難読化テーブルに対して補償効果を有することを可能にする。このため、準同型を用いて複数のオリジナルテーブルが難読化されたとしても、１つのみの拡張ドメイン部分が要求され、複数は要求されない。このことは、セキュリティを向上させ、関係するデータ量を低減する。
【００４４】
本発明の上記及び他の特徴は、以下に記載される実施例を参照して明らかとなるであろう。
【発明を実施するための最良の形態】
【００４５】
ＰＣ上のデジタルコンテンツは、典型的には、ＭｉｃｒｏｓｏｆｔのＭｅｄｉａ  Ｐｌａｙｅｒ、ＲｅａｌのＲｅａｌＯｎｅ  Ｐｌａｙｅｒ、ＡｐｐｌｅのＱｕｉｃｋＴｉｍｅ、ｉＴｕｎｅｓのプレーヤーなどのメディアプレーヤーを用いてレンダリングされる。このようなプレーヤーは、フォーマットに固有の復号化を実行するための各自のプラグインを特定のコンテンツフォーマットについてロードすることが可能である。これらのコンテンツフォーマットは、ＡＶＩ、ＤＶ、Ｍｏｔｉｏｎ  ＪＰＥＧ、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４（ＡＡＣ）、ＷＭＶ、Ａｕｄｉｏ  ＣＤ、ＭＰ３、ＷＭＡ、ＷＡＶ、ＡＩＦＦ／ＡＩＦＣ、ＡＵなどを含むかもしれない。図１において、プレーヤー及びプラグイン構成が示され、そこでは、メディアプレーヤー１００は、コアプレーヤー１００と複数のフォーマット固有のプラグイン（プラグイン１２０、１２２及び１２４が示される）を含む。コアプレーヤー１００は、例えば、プレーヤーを制御するユーザインタフェースを提供するかもしれない。各プラグインは、各自のデコーダを有する。それは、復号化したコンテンツを直接にサウンドカードなどのレンダリングＨＷ／ＳＷに送信し、又はさらなる処理のためコアプレーヤー１００にわたすようにしてもよい。セキュアなレンダリングのため、コンテンツを特定のフォーマットに復号化するだけでなく、コンテンツを解読するセキュアなプラグインが使用される。図２において、これが示され、暗号化されたコンテンツはまず解読装置２３０に提供され、次に解読されたコンテンツが、フォーマット固有のデコーダ２２０に提供される。解読装置２３０は、ライセンスデータベース２１０から解読キー／ライセンスを受け付けるようにしてもよい。
【００４６】
暗号化によるデジタル著作権管理の最大の脆弱性は、キー配布と取り扱いである。再生については、ソフトウェアプレーヤーは、ライセンスデータベースから解読キーを抽出する必要があり、その後に、暗号化されたコンテンツを解読するため、当該解読キーをメモリの何れかに格納する必要がある。典型的には、デジタル著作権管理システムは、デジタル著作権管理システムは、ラウンドと呼ばれる暗号化／解読ステップのシーケンスを用いて、データストリームをブロックにより処理するブロック暗号化に基づく暗号化技術を利用する。（ｉ−１）番目のラウンドの出力は、ｉ番目のラウンドの入力である。このため、Ｎラウンドを有するシステムについて、アルゴリズムは、関数カスケード
【００４７】
【数１１４】
2008518262.tif 000034
として記述することができる。ここで、ｆｉはラウンドｉの機能を表す。大部分のブロックアルゴリズムは、Ｆｅｉｓｔｅｌネットワークである。このようなネットワークでは、長さｎを入力データブロックｘは、通常はＬ及びＲと呼ばれる長さｎ／２の２つのハーフに分割される。このため、第１ラウンドに供給される入力ｘは、
【００４８】
【数１１５】
2008518262.tif 000035
として与えられる。ｉ番目のラウンド（ｉ＞０）は関数ｆｉを実行する。ここで、ｆｉは、
【００４９】
【数１１６】
2008518262.tif 000036
として定義され、Ｋｉはｉ番目のラウンドにおいて使用されるサブキーであり、Ｆは任意のラウンド関数である。
【００５０】
暗号化／解読アルゴリズムの入出力は、通常は所定数のＮビット（０又は１の値を有する桁）のシーケンスから構成される。当該シーケンスはブロックと呼ばれ、それらが有するビット数は、それらの長さと呼ばれる。このようなシーケンス内のビットは、ゼロからスタートし、シーケンス長（ブロック長又はキー長）マイナス１によりエンドして番号付けされるかもしれない。例えば、ＡＥＳ／Ｒｉｊｎｄａｅｌシステムは、１２８ビットブロックを使用する（Ｎ＝１２８）。ビットに添付される番号ｉは、それのインデックスとして知られ、Ｎビットブロックについては、０≦ｉ＜Ｎの範囲内となる。
【００５１】
典型的には、暗号化／解読アルゴリズムを処理するための基本ユニットは、ブロック長より小さい。通常使用される単位長は、４ビット（４ビットは、通常はニブルと呼ばれる）又は８ビット（通常はバイトと呼ばれる）である。これらの単位長は、従来のプロセッサ上でより容易に処理可能である。所望される場合、他の単位長もまた利用可能である。単位（複数のｎビットの連続するシーケンス）は、１つのエンティティとして扱われる。アルゴリズムへの入力は、ユニットのアレイを形成するため、これらのシーケンスを連続するｎビットのｋ個のグループに分割することによって形成されるユニットのアレイとして処理される（ただし、ｋ＊ｎ＝Ｎ）。
【００５２】
ｘにより示される入力について、結果として得られるアレイのユニットは、ｘｉとして参照される。ここで、ｉは０≦ｉ＜ｋの範囲内にある。ｉ番目のニブルは、
【００５３】
【数１１７】
2008518262.tif 000037
として記述することができる。同様に、ｉ番目のバイトは、
【００５４】
【数１１８】
2008518262.tif 000038
として記述することができる。すべてのユニット値は、
【００５５】
【数１１９】
2008518262.tif 000039
の順序により括弧内の各ビット値（０又は１）の連結として与えられる。大部分の暗号化について、これらのユニットは、多項式表現
【００５６】
【数１２０】
2008518262.tif 000040
を用いて有限体（ｆｉｎｉｔｅ  ｆｉｅｌｄ）要素として解釈される。この表記では、計数ｘはこのような多項式表現の慣例的な表記に従うよう使用されるだけであり、入力を表すものではない。しばしば、暗号化／解読アルゴリズムはガロア体（Ｇａｌｏｉｓ  Ｆｉｅｌｄ）を有限体として使用する（ＧＦ（２ｎ）など）。８ビットユニットの多項式表現では、｛０１１０００１１｝は、特定の有限体要素ｘ６＋ｘ５＋ｘ＋１を特定する。通常、ユニット値は１６進数表記により示され、例えば、｛０１１０００１１｝の要素は｛６３｝として表現することが可能である。暗号化／解読アルゴリズム自体は本発明に主題でないため、ここではより詳細には説明されない。
【００５７】
ＡＥＳ（Ｒｉｊｎｄａｅｌ）やＦｅｉｓｔｅｌ暗号化などの既存の多数の暗号化解読アルゴリズムでは、ラウンド関数Ｆは、典型的には、入力の異なるユニット（すなわち、関数のドメインの各部分）についてテーブル（Ｔｉ［ｘ］）を用いて構成される。このようなテーブルの役割は、非線形置換を実行するためであるかもしれず、このようなテーブルはまたＳボックスと呼ばれる。このようなＳボックスの役割に加えて、テーブルはまたこのようなＳボックスに関する前処理及び／又は後処理を表すかもしれない。一般に、テーブルはｎ入力ビットをｍ出力ビットにマップする。このようなテーブルは、ｎ＊ｍテーブルと呼ばれる。ＤＥＳは８つの異なる６＊４Ｓボックスを使用する。一部のシステム（Ｋｈｕｆｕ及びＫｈａｆｒｅなど）は、１つの８＊３２ビットＳボックスを使用し、ＩＤＥＡは１６＊１６Ｓボックスを効果的に有し、ＡＥＳ／Ｒｉｊｎｄａｅｌは８＊８Ｓボックスを使用する。
【００５８】
これらのしばしば小さなテーブルの出力の構成は、これらの関数のレンジ上でのアーベル群（Ａｂｅｌｉａｎ  ｇｒｏｕｐ）演算子
【００５９】
【数１２１】
2008518262.tif 000041
により行われる。任意のアーベル群演算子が選択されてもよい。頻繁に使用される演算子は、ビット単位ＸＯＲ演算子である。本発明によるシステムは、このアーベル構成を用いて、Ｆの機能的動作を変更することなくテーブルの実際の値を隠す。本発明によると、テーブルの少なくとも１つが難読化される。このテーブルは、難読化テーブル（ｏｂｆｕｓｃａｔｅｄ  ｔａｂｌｅ）と呼ばれる。その他のテーブルはまた、難読化されてもよいし、又は変更しないままでもよい。このため、複数のテーブルＴ’ｉ（０≦ｉ≦ｎ）が生成される。ここで、各テーブルについは、Ｔ’ｉは変更された形式又は変更されていない形式により各自の対応するテーブルＴｉを表す。上述したように、生成されたテーブルの少なくとも１つは、対応するオリジナルのテーブルの難読化されたバージョンである。まず、１つのテーブルのみが直接的に難読化されることが説明される。このテーブルは、
【００６０】
【数１２２】
2008518262.tif 000042
として表される。本発明によると、この難読化されたテーブルは、アーベル群演算子を用いて、対応するテーブル
【００６１】
【数１２３】
2008518262.tif 000043
とテーブルＯの合成を通じて形成される。直接的な合成は、
【００６２】
【数１２４】
2008518262.tif 000044
である。より複雑な構成もまた可能である（例えば、アーベル群を用いて合成された追加的なテーブルを利用して）。表記
【００６３】
【数１２５】
2008518262.tif 000045
は簡単化のための短縮された表記であるということに留意されたい。数学的により正確な表記は、それが適用される関連するドメインのｘに対して、
【００６４】
【数１２６】
2008518262.tif 000046
となる。短縮された表記が本説明のいくつかの場所で使用され、当業者は上記説明によりその意味を理解するであろう。テーブルＯは、何れか適切な方法により選択されてもよい。ある好適な選択が以下に説明される。本発明によるシステム及び方法は、１以上のテーブルの難読化がテーブルのアーベル合成において、生成されたテーブルＴ’ｉについて補償されるように、アーベル合成を利用する。このため、これらのテーブルＴ’ｉの少なくとも１つは、テーブルＯによりもたらされる難読化を補償する（アーベル合成において）。このように、テーブルＴ’ｉのアーベル合成は、テーブルの一部又はすべてがオリジナルのテーブルＴｉとは異なるが、関数Ｆを依然として実行する。Ｏを補償するテーブルは、
【００６５】
【数１２７】
2008518262.tif 000047
として示され、補償テーブルと呼ばれる。このテーブルは、テーブルＣを含むアーベル群演算子を用いた合成を通じて形成される。直接的な合成は、
【００６６】
【数１２８】
2008518262.tif 000048
である。テーブルＣは、
【００６７】
【数１２９】
2008518262.tif 000049
となるように選択される。（このため、Ｃは、アーベル演算子によるＯのインバースであり、Ｃ＝Ｏ−１と表される。）攪乱Ｏの選択に依存して、補償テーブルは上述したテーブルＴ’ｉの１つとなるかもしれず、又は追加的なテーブルが使用されてもよい。このため、ｎ又はｎ＋１のテーブルが生成される。
【００６８】
【数１３０】
2008518262.tif 000050
好ましくは、すべてのオリジナルテーブルが変更されるということが理解されるであろう。本発明によるシステム及び方法では、アーベル群演算子を用いて複数のテーブルＴ’ｉ（０≦ｉ≦ｍ）を合成することによって、暗号化関数Ｆに機能的に等価な難読化された関数Ｆ’が形成され、テーブルＯ及びＣが合成を通じて互いを補償するように合成される。難読化をもたらすテーブルと補償をもたらすＣとしてテーブルＯをみなす代わりに、これらの役割はリバースとして等しくみなすことができる。
【００６９】
本発明は、関数Ｆ
【００７０】
【数１３１】
2008518262.tif 000051
について示される。関数Ｆは、Ｆｅｉｓｔｅｌ暗号などのブロック暗号のラウンド関数であってもよい。実施例では、関数Ｆは、各々が入力として各ニブルを有する１６個のテーブルにより実現される関数のアーベル合成として表すことができる。
【００７１】
【数１３２】
2008518262.tif 000052
これはまた、
【００７２】
【数１３３】
2008518262.tif 000053
として記述することも可能である。レンジ（０．．．２６４−１）とユニット長（本例では、４ビットニブル）は、例示のために単に選択したにすぎないということは理解されるであろう。他の選択もまた可能である。
【００７３】
本発明によるテーブルの難読化の２つの好適なアプローチが、以下で詳細に説明される。第１アプローチでは、難読化されたテーブルが動作するドメインは、オリジナルテーブルについて使用されるものと同一である。好適な実施例では、難読化のための定数が使用される。第２のアプローチでは、ドメインは拡張される。好適なアプローチでは、入力ｘに依存する準同型（ｈｏｍｏｍｏｒｐｈｉｓｍ）が、難読化と補償のため使用される。
［定数を用いた非ドメイン拡張］
このアプローチでは、テーブルＯ及びＣは同一の非自明な定数ｂ０を表す。難読化されたテーブル
【００７４】
【数１３４】
2008518262.tif 000054
が、アーベル群演算子を用いて定数ｂ１と対応するテーブル
【００７５】
【数１３５】
2008518262.tif 000055
の各要素とを合成することによって生成される。同様に、補償テーブル
【００７６】
【数１３６】
2008518262.tif 000056
が、アーベル群演算子を用いて定数ｂ０と対応するテーブル
【００７７】
【数１３７】
2008518262.tif 000057
の各要素とを合成することによって生成される。このシナリオでは、２つの同一のテーブルが使用されることが観察できる。以下に与えられる例から明らかなように、これは、偶数個のオリジナルテーブルＴｉがアーベル合成を用いて同一の定数と合成される状況に一般化できる。この定数はテーブル値と合成され、これにより、同一のレンジ（本例では、０．．．２６４−１）を有し、同数のビット（本例では、６４ビット）により表される。偶数個のテーブルと同一の定数とを合成することによって、難読化テーブルが合成される際、アーベル合成は攪乱の自動削除をもたらす。このことが、第１テーブル（ｏ１＝０）と第２テーブル（ｃ１＝１）のみが同一の定数ｂ０との合成を通じて変更され、その他のテーブルは変更されないシンプルな具体例について示される。すなわち、
【００７８】
【数１３８】
2008518262.tif 000058
が与えられる。その一部が変更（難読化）された生成されたテーブル
【００７９】
【数１３９】
2008518262.tif 000059
は、新たな関数Ｆ’（難読化されたＦ）において利用可能である。
【００８０】
【数１４０】
2008518262.tif 000060
テーブルＯ及びＣは、実際にはＣ＝Ｏとなるという事実に基づき、
【００８１】
【数１４１】
2008518262.tif 000061
となるように選択され、アーベル合成については、
【００８２】
【数１４２】
2008518262.tif 000062
が成り立つことを観察することができる。この結果、関数Ｆ’及びＦは機能的に等しい。
証明：
【００８３】
【数１４３】
2008518262.tif 000063
アーベル群演算子を用いて同一の定数が偶数個のテーブルと合成される難読化については、上記が成り立つことは明らかである。従って、この定数は２、４、６などの個数のテーブルと合成可能である。本例では、合計１６個のテーブルが使用される。従って、１つのみの定数によりすべてのテーブルを難読化することが可能となる。本例では、この定数は６４ビットを有し、この定数は、６４ビットキーとみなすことができる。
【００８４】
本実施例は、説明の簡単化のため、ドメインの部分が使用されず、その代わりに各テーブルがドメイン全体に対して機能する程度まで簡単化された２つの具体例によってさらに説明される。２つのみのオリジナルテーブル
【００８５】
【数１４４】
2008518262.tif 000064
が使用される。これらのテーブルの定義において、
【００８６】
【数１４５】
2008518262.tif 000065
は、入力値０が出力値１にマップされることを意味し、
【００８７】
【数１４６】
2008518262.tif 000066
は、１が２にマップされることを意味する。本例では、テーブルＯとＣは入力ｘに依存する。以下の難読化及び補償テーブルが選択される。
【００８８】
【数１４７】
2008518262.tif 000067
このとき、生成されるテーブルは、
【００８９】
【数１４８】
2008518262.tif 000068
となる。
［具体例１］
【００９０】
【数１４９】
2008518262.tif 000069
は、
【００９１】
【数１５０】
2008518262.tif 000070
を与える。（本例では、アーベル演算子
【００９２】
【数１５１】
2008518262.tif 000071
は、乗算
【００９３】
【数１５２】
2008518262.tif 000072
である。）
［具体例２］
【００９４】
【数１５３】
2008518262.tif 000073
さらなる実施例では、少なくとも１以上のキーを使用することによって、セキュリティがさらに向上する。（すなわち、より多くの定数が使用されるかもしれない。）最もシンプルな形式では、上述されたように、２つのテーブルが定数ｂ０と合成され、２つのテーブルが定数ｂ１と合成される。このように、
【００９５】
【数１５４】
2008518262.tif 000074
となるように、さらなるテーブルＯ２とさらなるテーブルＣ２が選択される。ただし、Ｏ２はＯとは異なり、テーブルＯ２とＣ２は共に同一の非自明な定数ｂ１を表す。また、より多くのテーブルが定数ｂ１を用いてプロテクトされてもよいということが理解されるであろう。例えば、テーブルの半分をｂ０とテーブルの半分をｂ１と合成することも可能である。このように、すべてのテーブルが難読化され、各定数が偶数回使用され、当該定数は合成において削除される。所望される場合、いくつかのテーブルはプレーン形式により使用されてもよい（すなわち、アーベル群演算子を介し難読化されない）。
【００９６】
さらなる実施例では、同一のテーブルＯ２及びＣ２が使用されてもよい。テーブルＯ２は、上述したように、少なくとも１つのさらなるテーブル
【００９７】
【数１５５】
2008518262.tif 000075
を難読化し、対応するテーブル
【００９８】
【数１５６】
2008518262.tif 000076
とテーブルＯ２のアーベル群演算子を用いた合成によって（本例では、
【００９９】
【数１５７】
2008518262.tif 000077
である）、少なくとも１つのさらなる難読化テーブル
【０１００】
【数１５８】
2008518262.tif 000078
を形成するのに利用されてもよい。さらなる補償テーブルを形成するのにＣ２を用いる代わりに、既存の補償テーブル
【０１０１】
【数１５９】
2008518262.tif 000079
が、Ｏ２を補償するのに使用される。これは、さらなる補償テーブルＣ２を
【０１０２】
【数１６０】
2008518262.tif 000080
の補償に含めることによって（本例では、
【０１０３】
【数１６１】
2008518262.tif 000081
である）、実現される。当該実施例は、２より多くの補償を
【０１０４】
【数１６２】
2008518262.tif 000082
に含めることによって、拡張することができる。好適な実施例では、オリジナルテーブルＴｉのすべて、しかし１つが各定数により難読化され、残りの１つのテーブルがすべての定数のアーベル合成により難読化される。本実施例では、すべての定数は２回使用され（すなわち、偶数回）、すべてのテーブルが難読化される。以下の具体例では、最初の１５個のテーブル（ｉ＝０．．．１４）が各定数ｂｉと合成され、最後のテーブルがすべての定数と合成され、
【０１０５】
【数１６３】
2008518262.tif 000083
が与えられる。難読化されたテーブル
【０１０６】
【数１６４】
2008518262.tif 000084
は、新たな関数Ｆ’（難読化されたＦ）
【０１０７】
【数１６５】
2008518262.tif 000085
において使用される。上述したように、関数Ｆ’とＦは機能的に等しい。
証明：
【０１０８】
【数１６６】
2008518262.tif 000086
上記の具体例では、当業者は実現されるべき難読化のレベルについて自由度を有することは明らかである。Ｆがｎ個のテーブルのアーベル合成であるシステムでは、１〜ｎの定数が利用可能である。各定数は、偶数個のテーブルと合成される。原則的には、任意数の定数が利用可能であるということは理解されるであろう。しかしながら、すべてのテーブルをそれ自体の定数と関連付けることによって、ｎより多くの定数を利用することはさらなるセキュリティの向上とはならない。好ましくは、適切なランダム又は擬似ランダム生成装置を用いて、定数は‘ランダム’に選ばれる。
【０１０９】
上述した具体例では、補償Ｃはオリジナルテーブルの１以上と合成される。このため、通常はｍ個の生成されたテーブルＴ’は、ｎ個のオリジナルテーブルと同一となる。あるいは、補償のための１つの追加的なテーブルが使用され、これにより、ｍ＝ｎ＋１となる。本実施例では、すべての定数が再び２回使用され（すなわち、偶数個）、アーベル合成による自動補償が与えられる。以下の例では、１６個すべてのオリジナルテーブル（ｉ＝０．．．１５）が各定数ｂｉと合成され、すべての定数の合成である１つの追加的なテーブルが生成される。すなわち、
【０１１０】
【数１６７】
2008518262.tif 000087
が与えられる。
［ドメイン拡張］
上記のアプローチでは、オリジナルテーブルＴと定数ｂを合成することは、テーブルＴのすべてのエントリがアーベル群演算子
【０１１１】
【数１６８】
2008518262.tif 000088
を用いて同一の値ｂと合成されることを意味する。
【０１１２】
第２のアプローチでは、難読化はテーブルへの入力に少なくとも部分的に依存する。これを補償することを可能にするため、補償テーブルが入力にアクセスする必要がある。このため、ドメインは拡張される。上述したように、各オリジナルテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）は、ドメインＤの各部分Ｄｉ上で機能する。生成された難読化したテーブル
【０１１３】
【数１６９】
2008518262.tif 000089
は、対応するテーブルＴｉとテーブルＯのアーベル群演算子を用いた合成によって形成される（例えば、
【０１１４】
【数１７０】
2008518262.tif 000090
である。）この結果、難読化されたテーブル
【０１１５】
【数１７１】
2008518262.tif 000091
はドメイン部分
【０１１６】
【数１７２】
2008518262.tif 000092
に適用され、Ｏは、
【０１１７】
【数１７３】
2008518262.tif 000093
に適用されるマッピングテーブルとなる。上述したように、その他のテーブルの少なくとも１つである補償テーブル
【０１１８】
【数１７４】
2008518262.tif 000094
は、テーブルＣを含むアーベル群演算子を用いて合成により形成される（例えば、
【０１１９】
【数１７５】
2008518262.tif 000095
である）。これを機能させるため、
【０１２０】
【数１７６】
2008518262.tif 000096
となることが求められる。このため、ドメインＤは、
【０１２１】
【数１７７】
2008518262.tif 000097
に拡張され（ここで、ｉ≦ｎについては、Ｄｉ＝Ｄ’ｉ）、Ｄｎ＋１は、補償テーブル
【０１２２】
【数１７８】
2008518262.tif 000098
を形成する合成が
【０１２３】
【数１７９】
2008518262.tif 000099
を含むように、
【０１２４】
【数１８０】
2008518262.tif 000100
の表現を含む。
【０１２５】
本発明によると、少なくとも１つのテーブルが、同一の入力に少なくとも部分的に依存するテーブルＯとの合成により難読される。ここで、この合成は、アーベル群演算子により実行される。例えば、第１テーブルＴ０は、
【０１２６】
【数１８１】
2008518262.tif 000101
のように難読化される。他のすべてのテーブルを変更しないことにより、
【０１２７】
【数１８２】
2008518262.tif 000102
はＯ（ｘ０）の補償を与えない。本発明によると、当該補償は、アーベル群演算子に関して補償される必要がある項をカバーする少なくとも１つの追加的なテーブルを利用することによって実現される。上記の例では、追加的なテーブルは単に、
【０１２８】
【数１８３】
2008518262.tif 000103
とすることができる。このとき、新たな関数Ｆ”（難読化されたＦ）は、
【０１２９】
【数１８４】
2008518262.tif 000104
のように定義することが可能である。
【０１３０】
Ｆ”のドメインが追加的なテーブルに対する入力を提供するため、Ｆのドメインと比較して拡張されることが観察できる。本例では、Ｆ”のドメインは０．．．２（６４＋４）−１である。本例では、Ｅ（ｘ）として示される拡張されたドメインは、
【０１３１】
【数１８５】
2008518262.tif 000105
として定義することができる。これらの定義を用いて、Ｆ”はＦに機能的に等価である。
【０１３２】
【数１８６】
2008518262.tif 000106
テーブルＴ０のみが難読化されるこのシンプルな例では、難読化に用いられるテーブルＯ（ｘ０）は平文形式により利用可能であるため、攻撃者が難読化をブレークすることは相対的に簡単である。これを解消する１つの方法は、第１のアプローチを理そうして、Ｏ（ｘ０）と定数を合成し、また当該定数を用いて奇数個の他のテーブルを難読化することである。Ｏ（ｘ０）を隠す好適な方法は、各テーブルＯｉ（ｘｉ）によりオリジナルテーブルＴｉを隠し、複数のＯテーブルを用いて互いに隠れるようにすることである。Ｏｉについて用いられる各マッピングは同一である必要はないということに留意すべきである。
【０１３３】
このアプローチは、以下の例を用いて示される。本例では、第１テーブルＴ０は以下のように難読化される。
【０１３４】
【数１８７】
2008518262.tif 000107
第２テーブルは、
【０１３５】
【数１８８】
2008518262.tif 000108
により難読化される。他のすべてのテーブルを変更しないことにより、
【０１３６】
【数１８９】
2008518262.tif 000109
となる。この新たなテーブルは、
【０１３７】
【数１９０】
2008518262.tif 000110
として定義することができる。この１７番目のテーブルはもはや隠すのに用いられるテーブルの１つを明らかにしない。この最後のテーブルは、入力として２つのドメイン部分を必要とし、ドメインの２倍の拡張を提供する。これはデータレートを増大させ、システムの処理の一部を明らかにするということが理解されるであろう。
【０１３８】
好適な実施例では、Ｏは非自明な準同型であり、本方法は、アーベル群演算子を用いて対応するテーブルＴｉとテーブルＯの合成を通じて複数の難読化されたテーブルＴ’ｉを形成し（本例では、
【０１３９】
【数１９１】
2008518262.tif 000111
となる）、関係するテーブルＴｉの対応するサブドメインのアーベル演算子を用いた合成によりドメイン拡張Ｄ’ｎ＋１を形成する（本例では、
【０１４０】
【数１９２】
2008518262.tif 000112
となる）ことを有する。以下の例では、非自明な準同型はＨ（ｘ）と呼ばれる。何れかのこのような準同型が選択されてもよい。群としての準同型の数学的な定義は以下の通りである。Ｇ１とＧ２をそれぞれ演算Ｏ１とＯ２による群とする。Ｇ１からＧ２へのマッピングＭは、Ｇ１のすべてのｘ，ｙについて
【０１４１】
【数１９３】
2008518262.tif 000113
である場合、準同型となる。以下に与えられる例では、Ｈ（ｘ）はＧＦ（２４）からＧＦ（２６４）への線形マッピングである。このアプローチを上記で与えられるものと同一の具体例に適用すると、以下を取得することができる。
【０１４２】
【数１９４】
2008518262.tif 000114
第２テーブルは、
【０１４３】
【数１９５】
2008518262.tif 000115
により難読化される。他のすべてのテーブルを変更しないと、
【０１４４】
【数１９６】
2008518262.tif 000116
となる。このとき、新たなテーブルは、
【０１４５】
【数１９７】
2008518262.tif 000117
として定義することができる。準同型を用いて、拡張されたドメインは、
【０１４６】
【数１９８】
2008518262.tif 000118
とすることができる。複数の部分を表す１つののみの追加的ドメイン部分が使用される。前のアプローチと比較して、これはデータレートを低減し、セキュリティを向上する。
【０１４７】
このような方法により、各テーブルＴ［ｘｉ］は各自のＨ（ｘｉ）により難読化することができるということが理解されるであろう。いくつのテーブルが難読化されるかは、セキュリティ要求に応じて当業者により可能な選択である。
【０１４８】
好ましくは、すべてのテーブルが隠される。一例となるシステムでは、これは、
【０１４９】
【数１９９】
2008518262.tif 000119
を与える。
【０１５０】
【数２００】
2008518262.tif 000120
とすると、拡張されたドメインＥ（ｘ）は、
【０１５１】
【数２０１】
2008518262.tif 000121
により与えられる。ここで、
【０１５２】
【数２０２】
2008518262.tif 000122
となる。関数
【０１５３】
【数２０３】
2008518262.tif 000123
とＦは機能的には等価である。
証明：
【０１５４】
【数２０４】
2008518262.tif 000124
すべての具体例は、拡張が拡張されたドメインの最後の部分となることを説明のため示しているが、実際には拡張は何れにあってもよく、すなわち、テーブル及び各ドメイン部分は混成されていてもよいということは理解されるであろう。
【０１５５】
ドメインの拡張はそれ自体観察され、難読化されたテーブルを攻撃するのに使用されるかもしれない。何れか適切な技術が拡張の詳細を隠すのに利用されてもよい。Ｒｉｊｎｄａｅｌ／ＡＥＳ又はＦｅｉｓｔｅｌ暗号などの多数の暗号が、関数カスケードとしてモデル化可能なラウンド関数のシーケンス
【０１５６】
【数２０５】
2008518262.tif 000125
を利用する（通常は、ラウンド固有のキーを用いて具体化される同一のラウンド関数）。ここで、Ｆｉはラウンドｉのラウンド関数である。このようなシステムでは、ドメイン拡張（すなわち、拡張された部分）は、以下の方法により隠すことができる。
【０１５７】
【数２０６】
2008518262.tif 000126
など、
【０１５８】
【数２０７】
2008518262.tif 000127
の関数カスケードを考える。
【０１５９】
【数２０８】
2008518262.tif 000128
がアップフロント（ｕｐｆｒｏｎｔ）に計算可能であり、マッピング
【０１６０】
【数２０９】
2008518262.tif 000129
においてＦｊのすべてのＴｊ，ｉ［ｘ］をターンする（合成によりドメイン拡張関数を隠す）。
【０１６１】
好適な実施例では、アプローチ１及び２が組み合わされる。これにより、一部の、好ましくはすべてのテーブルＴ”が各定数と合成される。このようにして、ドメイン拡張によるテーブル（本例では、Ｔ１６）もまた隠すことが可能である。Ｔ１６を隠れ定数と合成する効果は、
【０１６２】
【数２１０】
2008518262.tif 000130
によるすべての準同型について成り立つＨ（０）＝０という性質が失われるため、Ｈ（ｘ）が準同型となるという事実が隠されるということである。
【０１６３】
図３は、本発明が利用可能なシステムを示す。システム３００は、サーバ３１０と少なくとも１つの実行装置３２０とを有する。サーバ３１０は、難読化形式により暗号化関数Ｆを実行装置３２０に提供する。関数Ｆは、各々がキーと同様の情報を有し、ドメインＤの各部分Ｄｉ上で動作する複数の非線形マッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）を利用して、所定のドメインＤからの入力ｘを出力ｙに暗号変換する。関数Ｆは、アーベル群演算子
【０１６４】
【数２１１】
2008518262.tif 000131
を利用してマッピングテーブルの出力を合成する（例えば、
【０１６５】
【数２１２】
2008518262.tif 000132
などである）。サーバは、ウェブサーバやファイルサーバなど、サーバとして使用されるプラットフォーム上などの従来のコンピュータプラットフォーム上で実現可能である。サーバは、プロセッサ３１２を有する。プロセッサ３１２は、プログラムの制御の下で実行される。プログラムは、プロセッサの埋め込みＲＯＭなどの埋め込みストレージに永続的に埋め込まれてもよいが、ハードディスク（図示せず）などのバックグラウンドストレージからロードされてもよい。プログラムの制御の下、プロセッサ３１２は、
【０１６６】
【数２１３】
2008518262.tif 000133
となるようテーブルＯ及びＣを選択し、複数のテーブル
【０１６７】
【数２１４】
2008518262.tif 000134
を生成する。ここで、０≦ｉ≦ｎについて、各テーブルＴ’ｉは対応する各自のテーブルＴｉを表し、これらのテーブル
【０１６８】
【数２１５】
2008518262.tif 000135
の少なくとも１つである難読化されたテーブルは、対応するテーブルＴｉとテーブルＯのアーベル群演算子を用いた合成により形成され（例えば、
【０１６９】
【数２１６】
2008518262.tif 000136
など）、その他のテーブル
【０１７０】
【数２１７】
2008518262.tif 000137
の少なくとも１つである補償テーブルは、テーブルＣを含むアーベル群演算子を用いた合成により形成される（例えば、
【０１７１】
【数２１８】
2008518262.tif 000138
など）。
【０１７２】
さらに、サーバは、複数のテーブル
【０１７３】
【数２１９】
2008518262.tif 000139
を実行装置に提供する手段３１４を有する。サーバは、何れか適切な形式によりこれを実行するかもしれない。例えば、工場において、テーブルは実行装置３２０の製造中に実行装置のストレージモジュールに格納されてもよい。図３は、これらのテーブルがインターネット３３０を介し実行装置３２０に直接ダウンロードされることを示している。
【０１７４】
実行装置３２０は、サーバ３１０から複数のテーブル
【０１７５】
【数２２０】
2008518262.tif 000140
を受け付ける手段３２４を有する。これらの手段３２６は、サーバの手段３１４と協調し、さらには説明されない。実行装置３２０はさらに、プロセッサ３２２を有する。プロセッサは、パーソナルコンピュータや埋め込みマイクロプロセッサから知られるプロセッサなどの何れか適切なタイプのものであってもよい。プロセッサ３２２は、プログラムの制御の下で動作する。プログラムは、プロセッサ３２２において埋め込みＲＯＭなどの埋め込みストレージを用いて永続的に埋め込まれるようにしてもよいが、又はハードディスク（図示せず）などのバックグラウンドストレージからロードされるようにしてもよい。プログラムの制御の下、プロセッサ３２２は、テーブルＯ及びＣが合成により補償されるように、アーベル群演算子を用いて複数のテーブルＴ’ｉ（０≦ｉ≦ｍ）を合成することによって、暗号化関数Ｆと機能的に等価な関数Ｆ’を形成する。図３の具体例では、実行装置３２０は、インターネット３３０を介し又は記憶媒体３５０などからテーブルを抽出する手段３２４を有する。同様に、実行装置３２０は、媒体３５０から暗号化されたコンテンツ３５２を抽出し、プロセッサ３２２を用いてこれを解読する。プロセッサはまた、解読されたコンテンツを復号化してもよい。サーバ３１０は、おそらくテーブル３４４と共に、暗号化されたコンテンツ３４２を媒体３５０に格納してもよい。
【０１７６】
図４は、プロセッサ３２２による実行のため、テーブルＴ’がソフトウェアプログラム４１０に埋め込まれる実行装置３２０に設けられる好適な実施例を示す。図４における同一の番号は、図３に使用される同一アイテムを洗わす。ソフトウェアプログラムは、メディアプレーヤーなどのプログラムのためのプラグインであってもよい。このため、図４の手段３１４は、このプラグイン４１０をインターネットを介し供給してもよいし（図４のアイテム３３０など）、又は製造中にそれを直接実行装置３２０に埋め込むようにしてもよい。
【０１７７】
本発明はまた、本発明を実現するのに構成されるコンピュータプログラム、特にキャリア上のコンピュータプログラムに拡張されることは理解されるであろう。プログラムは、ソースコード、オブジェクトコード、コード中間ソース、部分的にコンパイルされた形式などのオブジェクトコード、又は本発明による方法の実現に用いられる他の何れか適切な形式をとるものであってもよい。キャリアは、プログラムを搬送することが可能な任意のエンティティ又は装置であってもよい。例えば、キャリアは、ＣＤ  ＲＯＭや半導体ＲＯＭなどのＲＯＭや、フロッピー（登録商標）やハードディスクなどの磁気記録媒体などの記憶媒体を含むものであってもよい。さらに、キャリアは、電気又は光ケーブルを介し又は無線若しくは他の手段によって伝送される電気又は光信号などの伝送可能キャリアであってもよい。プログラムがこのような信号により実現されるとき、キャリアはこのようなケーブル又は他の装置若しくは手段によって構成されるかもしれない。あるいは、キャリアは、プログラムが埋め込まれた集積回路、関連する方法を実行するため又は実行するのに使用されるよう構成された集積回路であってもよい。
【０１７８】
上記実施例は本発明を限定するものでなく、説明するためのものであり、当業者は添付した請求項の範囲から逸脱することなく他の多数の実施例を構成可能であるということに留意すべきである。請求項では、括弧内の参照符号は請求項を限定するものとして解釈されるべきでない。「有する」という動詞及びそれの派生語の使用は、請求項に記載した以外の要素又はステップの存在を排除するものでない。要素に先行する「ある」という監視は、このような要素が複数存在することを排除するものでない。本発明は、いくつかの要素を有するハードウェアによって、また適切にプログラムされたコンピュータによって実現可能である。複数の手段を列挙した装置クレームでは、これらの手段のいくつかは単一かつ同一のハードウェアアイテムにより実現可能である。ある手段が互いに異なる従属クレームに記載されているという事実は、単にこれらの手段の組み合わせが効果的に利用可能でないことを示すものではない。
【図面の簡単な説明】
【０１７９】
【図１】図１は、本発明が利用可能なシステムのブロック図を示す。
【図２】図２は、従来技術による実行装置の一例となる構成を示す。
【図３】図３は、本発明によるシステムのブロック図を示す。
【図４】図４は、本発明によるシステムのさらなる実施例を示す。
【図１】
2008518262.tif 000228
【図２】
2008518262.tif 000229
【図３】
2008518262.tif 000230
【図４】
2008518262.tif 000231
【手続補正書】
【提出日】平成19年6月21日(2007.6.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
暗号化関数Ｆを難読化形式により実行装置に提供する方法であって、
前記関数Ｆは、各テーブルがキー状の情報を有し、所定のドメインＤの各部分Ｄｉ上で機能する複数の非線形マッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）を利用して、前記ドメインＤからの入力ｘを出力ｙに暗号変換し、
前記関数Ｆは、アーベル群演算子
【数１】
2008518262.tif 000232
を利用して前記マッピングテーブルの出力を構成し（例えば、
【数２】
2008518262.tif 000233
など）、
当該方法は、
テーブルＯとテーブルＣを、
【数３】
2008518262.tif 000234
となるように選択するステップと、
複数のテーブル
【数４】
2008518262.tif 000235
（ただし、０≦ｉ≦ｎに対して、各テーブルＴ’ｉは各自の対応するテーブルＴｉを表し、前記テーブルの少なくとも１つである
【数５】
2008518262.tif 000236
は、以降において難読化テーブルと呼ばれるものであって、前記アーベル群演算子を用いて対応するテーブル
【数６】
2008518262.tif 000237
と前記テーブルＯとの合成により形成され（例えば、
【数７】
2008518262.tif 000238
など）、その他のテーブルの少なくとも１つである
【数８】
2008518262.tif 000239
は、以降において補償テーブルと呼ばれるものであって、前記アーベル群演算子を用いて前記テーブルＣを含む合成により形成される（例えば、
【数９】
2008518262.tif 000240
など））を生成するステップと、
前記複数のテーブル
【数１０】
2008518262.tif 000241
を前記実行装置に提供するステップと、
前記実行装置において、前記テーブルＯとＣとが合成により補償されるように、前記アーベル群演算子を用いて前記複数のテーブル
【数１１】
2008518262.tif 000242
を合成することによって、前記暗号化関数Ｆに機能的に等価な関数Ｆ’を形成するステップと、
を有する方法。
【請求項２】
前記テーブルＯとＣとは、同一の非自明な定数ｂ１を表し、
前記難読化テーブル
【数１２】
2008518262.tif 000243
を生成するステップは、前記アーベル群演算子を用いて前記定数ｂ１と前記対応するテーブル
【数１３】
2008518262.tif 000244
の各要素とを合成することを有し、
前記補償テーブル
【数１４】
2008518262.tif 000245
を生成するステップは、前記アーベル群演算子を用いて前記定数ｉと対応するテーブル
【数１５】
2008518262.tif 000246
の各要素とを合成することを有する、請求項１記載の方法。
【請求項３】
ｍ＝ｎである、請求項２記載の方法。
【請求項４】
Ｏとは異なるさらなるテーブルＯ２と、さらなるテーブルＣ２とを、
【数１６】
2008518262.tif 000247
となり、テーブルＯ２とＣ２とが同一の非自明な定数ｂ２を表すように選択するステップと、
少なくとも１つのさらなる難読化テーブル
【数１７】
2008518262.tif 000248
を、前記アーベル群演算子を用いて対応するテーブル
【数１８】
2008518262.tif 000249
と前記テーブルＯ２との合成により形成し（例えば、
【数１９】
2008518262.tif 000250
など）、前記テーブルＣ２を含む合成により前記補償テーブル
【数２０】
2008518262.tif 000251
を形成する（例えば、
【数２１】
2008518262.tif 000252
など）ステップと、
を有する、請求項２記載の方法。
【請求項５】
ｍ＝ｎ＋１及びｃ１＝ｍである、請求項１記載の方法。
【請求項６】
前記難読化テーブル
【数２２】
2008518262.tif 000253
は、前記ドメインの部分
【数２３】
2008518262.tif 000254
に適用され、
Ｏは、
【数２４】
2008518262.tif 000255
に適用され、
【数２５】
2008518262.tif 000256
なるマッピングテーブルであり、
当該方法は、前記補償テーブル
【数２６】
2008518262.tif 000257
を形成する合成が、
【数２７】
2008518262.tif 000258
を含むように、前記ドメインＤを
【数２８】
2008518262.tif 000259
に拡張するステップを有する（ただし、ｉ≦ｎに対してＤｉ＝Ｄ’ｉであり、Ｄｎ＋１は
【数２９】
2008518262.tif 000260
の表現を含む）、請求項５記載の方法。
【請求項７】
Ｏは準同型であり、
当該方法は、前記アーベル群演算子を用いて前記対応するＴｉと前記テーブルＯとの合成により複数の難読化テーブルＴ’ｉを形成し（例えば、
【数３０】
2008518262.tif 000261
など）、前記アーベル演算子を用いて関係するテーブルＴｉの対応するサブドメインの合成により前記ドメイン拡張Ｄ’ｎ＋１を形成する（例えば、
【数３１】
2008518262.tif 000262
など）ステップを有する、請求項６記載の方法。
【請求項８】
難読化形式により暗号化関数Ｆを実行装置に提供するシステムであって、
当該システムは、サーバと実行装置とを有し、
前記関数Ｆは、各テーブルがキー状の情報を有し、所定のドメインＤの各部分Ｄｉ上で機能する複数の非線形マッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）を利用して、前記ドメインＤからの入力ｘを出力ｙに暗号変換し、アーベル群演算子
【数３２】
2008518262.tif 000263
を利用して前記マッピングテーブルの出力を構成し（例えば、
【数３３】
2008518262.tif 000264
など）、
前記サーバは、プログラムの制御の下、テーブルＯとテーブルＣを、
【数３４】
2008518262.tif 000265
となるように選択し、複数のテーブル
【数３５】
2008518262.tif 000266
（ただし、０≦ｉ≦ｎに対して、各テーブルＴ’ｉは各自の対応するテーブルＴｉを表し、前記テーブルの少なくとも１つである
【数３６】
2008518262.tif 000267
は、以降において難読化テーブルと呼ばれるものであって、前記アーベル群演算子を用いて対応するテーブル
【数３７】
2008518262.tif 000268
と前記テーブルＯとの合成により形成され（例えば、
【数３８】
2008518262.tif 000269
など）、その他のテーブルの少なくとも１つである
【数３９】
2008518262.tif 000270
は、以降において補償テーブルと呼ばれるものであって、前記アーベル群演算子を用いて前記テーブルＣを含む合成により形成される（例えば、
【数４０】
2008518262.tif 000271
など））を生成するプロセッサと、
前記複数のテーブル
【数４１】
2008518262.tif 000272
を前記実行装置に提供する手段と、
を有し、
前記実行装置は、
前記複数のテーブル
【数４２】
2008518262.tif 000273
を前記サーバから受け付ける手段と、
プログラムの制御の下、前記テーブルＯとＣとが合成により補償されるように、前記アーベル群演算子を用いて前記複数のテーブル
【数４３】
2008518262.tif 000274
を合成することによって、前記暗号化関数Ｆに機能的に等価な関数Ｆ’を形成するプロセッサと、
を有するシステム。
【請求項９】
前記サーバのプログラムは、前記プロセッサに前記実行装置のプログラムを構成されるように実行され、
前記実行装置のプログラムは、複数のテーブル
【数４４】
2008518262.tif 000275
を有し、前記プロセッサに前記難読化された関数Ｆ’を形成させる命令を有する、請求項８記載のシステム。
【請求項１０】
請求項８記載のシステムに使用されるサーバであって、
暗号化関数Ｆが、難読化形式により実行装置に提供され、
前記関数Ｆは、各テーブルがキー状の情報を有し、所定のドメインＤの各部分Ｄｉ上で機能する複数の非線形マッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）を利用して、前記ドメインＤからの入力ｘを出力ｙに暗号変換し、アーベル群演算子
【数４５】
2008518262.tif 000276
を利用して前記マッピングテーブルの出力を構成し（例えば、
【数４６】
2008518262.tif 000277
など）、
前記サーバは、プログラムの制御の下、テーブルＯとテーブルＣを、
【数４７】
2008518262.tif 000278
となるように選択し、複数のテーブル
【数４８】
2008518262.tif 000279
（ただし、０≦ｉ≦ｎに対して、各テーブルＴ’ｉは各自の対応するテーブルＴｉを表し、前記テーブルの少なくとも１つである
【数４９】
2008518262.tif 000280
は、以降において難読化テーブルと呼ばれるものであって、前記アーベル群演算子を用いて対応するテーブル
【数５０】
2008518262.tif 000281
と前記テーブルＯとの合成により形成され（例えば、
【数５１】
2008518262.tif 000282
など）、その他のテーブルの少なくとも１つである
【数５２】
2008518262.tif 000283
は、以降において補償テーブルと呼ばれるものであって、前記アーベル群演算子を用いて前記テーブルＣを含む合成により形成される（例えば、
【数５３】
2008518262.tif 000284
など））を生成するプロセッサと、
前記複数のテーブル
【数５４】
2008518262.tif 000285
を前記実行装置に提供する手段と、
を有するサーバ。
【請求項１１】
請求項１０記載のサーバのプロセッサを制御するコンピュータプログラムであって、
暗号化関数Ｆが、難読化形式により実行装置に提供され、
前記関数Ｆは、各テーブルがキー状の情報を有し、所定のドメインＤの各部分Ｄｉ上で機能する複数の非線形マッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）を利用して、前記ドメインＤからの入力ｘを出力ｙに暗号変換し、アーベル群演算子
【数５５】
2008518262.tif 000286
を利用して前記マッピングテーブルの出力を構成し（例えば、
【数５６】
2008518262.tif 000287
など）、
当該コンピュータプログラムは、前記プロセッサに、テーブルＯとテーブルＣを、
【数５７】
2008518262.tif 000288
となるように選択させ、複数のテーブル
【数５８】
2008518262.tif 000289
（ただし、０≦ｉ≦ｎに対して、各テーブルＴ’ｉは各自の対応するテーブルＴｉを表し、前記テーブルの少なくとも１つである
【数５９】
2008518262.tif 000290
は、以降において難読化テーブルと呼ばれるものであって、前記アーベル群演算子を用いて対応するテーブル
【数６０】
2008518262.tif 000291
と前記テーブルＯとの合成により形成され（例えば、
【数６１】
2008518262.tif 000292
など）、その他のテーブルの少なくとも１つである
【数６２】
2008518262.tif 000293
は、以降において補償テーブルと呼ばれるものであって、前記アーベル群演算子を用いて前記テーブルＣを含む合成により形成される（例えば、
【数６３】
2008518262.tif 000294
など）を生成させるプログラム命令を有するコンピュータプログラム。
【請求項１２】
請求項８記載のシステムにおいて使用される実行装置であって、
暗号化関数Ｆが、難読化形式により実行装置に提供され、
前記関数Ｆは、各テーブルがキー状の情報を有し、所定のドメインＤの各部分Ｄｉ上で機能する複数の非線形マッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）を利用して、前記ドメインＤからの入力ｘを出力ｙに暗号変換し、アーベル群演算子
【数６４】
2008518262.tif 000295
を利用して前記マッピングテーブルの出力を構成し（例えば、
【数６５】
2008518262.tif 000296
など）、
当該実行装置は、
前記複数のテーブル
【数６６】
2008518262.tif 000297
（ただし、０≦ｉ≦ｎに対して、各テーブルＴ’ｉは各自の対応するテーブルＴｉを表し、前記テーブルの少なくとも１つである
【数６７】
2008518262.tif 000298
は、以降において難読化テーブルと呼ばれるものであって、前記アーベル群演算子を用いて対応するテーブル
【数６８】
2008518262.tif 000299
と前記テーブルＯとの合成により形成され（例えば、
【数６９】
2008518262.tif 000300
など）、その他のテーブルの少なくとも１つである
【数７０】
2008518262.tif 000301
は、以降において補償テーブルと呼ばれるものであって、前記アーベル群演算子を用いて前記テーブルＣを含む合成により形成され（例えば、
【数７１】
2008518262.tif 000302
など）、
【数７２】
2008518262.tif 000303
である）を受け付ける手段と、
プログラムの制御の下、前記テーブルＯとＣとが合成により補償されるように、前記アーベル群演算子を用いて前記複数のテーブル
【数７３】
2008518262.tif 000304
を合成することによって、前記暗号化関数Ｆに機能的に等価な関数Ｆ’を形成するプロセッサと、
を有する実行装置。
【請求項１３】
実行装置のプロセッサを制御するコンピュータプログラムであって、
暗号化関数Ｆが、難読化形式により実行装置に提供され、
前記関数Ｆは、各テーブルがキー状の情報を有し、所定のドメインＤの各部分Ｄｉ上で機能する複数の非線形マッピングテーブルＴｉ（０≦ｉ≦ｎ；ｎ≧１）を利用して、前記ドメインＤからの入力ｘを出力ｙに暗号変換し、アーベル群演算子
【数７４】
2008518262.tif 000305
を利用して前記マッピングテーブルの出力を構成し（例えば、
【数７５】
2008518262.tif 000306
など）、
前記暗号化関数は、
前記複数のテーブル
【数７６】
2008518262.tif 000307
（ただし、０≦ｉ≦ｎに対して、各テーブルＴ’ｉは各自の対応するテーブルＴｉを表し、前記テーブルの少なくとも１つである
【数７７】
2008518262.tif 000308
は、以降において難読化テーブルと呼ばれるものであって、前記アーベル群演算子を用いて対応するテーブル
【数７８】
2008518262.tif 000309
と前記テーブルＯとの合成により形成され（例えば、
【数７９】
2008518262.tif 000310
など）、その他のテーブルの少なくとも１つである
【数８０】
2008518262.tif 000311
は、以降において補償テーブルと呼ばれるものであって、前記アーベル群演算子を用いて前記テーブルＣを含む合成により形成され（例えば、
【数８１】
2008518262.tif 000312
など）、
【数８２】
2008518262.tif 000313
である）を有して難読化形式により受け付けされ、
当該コンピュータプログラムは、前記プロセッサに前記テーブルＯとＣとが合成により補償されるように、前記アーベル群演算子を用いて前記複数のテーブル
【数８３】
2008518262.tif 000314
を合成することによって、前記暗号化関数Ｆに機能的に等価な関数Ｆ’を形成させるプログラム命令を有するコンピュータプログラム。
【国際調査報告】
2008518262.tif 000315
2008518262.tif 000316
2008518262.tif 000317