(57)【特許請求の範囲】
【請求項１】
ディジタル信号処理関数ｆを不明瞭化された形態で実行装置に供給する方法であって、前記関数ｆは、ディジタル信号入力ｘを処理してディジタル信号出力を出力するための、複数の信号処理関数ｆｉ（１≦ｉ≦Ｎ）を含む関数縦続を含み、前記方法は、
２Ｎ個の反転可能な置換ｐｉ（１≦ｉ≦２Ｎ）のセットを選択するステップと、
Ｎ個の関数ｇｉのセットを算出するステップと、を含み、ここで関数ｇｉは、１≦ｉ≦Ｎについて
【数１】
0005453367.tif 000080
と関数的に同等であり、前記方法は更に、
Ｎ−１個の関数ｈｉのセットを算出するステップを含み、ここで関数ｈｉは、２≦ｉ≦Ｎについて
【数２】
0005453367.tif 000081
と関数的に同等であり、前記方法は更に、
【数３】
0005453367.tif 000082
を含む実行装置関数縦続を前記実行装置に備えるステップを含み、ここでｙ１乃至ｙＮは関数パラメータであり、前記方法は更に、
関数ｇ１乃至ｇＮを前記実行装置に供給するステップと、
前記実行装置において、前記実行装置関数縦続を関数ｇ１乃至ｇＮに適用するステップと、
を含み、
インターリーブされた態様で実行装置において関数ｇｉ及びｈｉを実行することにより、関数ｆを直接に認識可能とすることなく、関数の縦続の機能が達成される方法。
【請求項２】
前記実行装置関数縦続が
【数４】
0005453367.tif 000083
を含む請求項１に記載のディジタル信号処理関数ｆを供給する方法。
【請求項３】
前記関数縦続が、更なる信号処理関数ｆ０で開始し、前記実行装置関数縦続が
【数５】
0005453367.tif 000084
を含み、ここでＳ１は
【数６】
0005453367.tif 000085
に関数的に同等である、請求項１に記載のディジタル信号処理関数ｆを供給する方法。
【請求項４】
前記実行装置関数縦続が、
【数７】
0005453367.tif 000086
を含む請求項１に記載のディジタル信号処理関数ｆを供給する方法。
【請求項５】
前記関数縦続が、更なる信号処理関数ｆＮ＋１で終了し、前記実行装置関数縦続が
【数８】
0005453367.tif 000087
を含み、ここでＳ２は
【数９】
0005453367.tif 000088
と関数的に同等である、請求項１に記載のディジタル信号処理関数ｆを供給する方法。
【請求項６】
前記実行装置及び／又は前記実行装置のユーザの一意的な識別子を取得するステップを含み、前記２Ｎ個の反転可能な置換ｐｉのセット及び／又はシーケンスが、前記取得された識別子について一意的である、請求項１に記載のディジタル信号処理関数ｆを供給する方法。
【請求項７】
前記実行装置関数縦続を前記実行装置に備えるステップは、前記実行装置中のプロセッサによる実行のためのソフトウェアプログラムに埋め込まれた前記実行装置関数縦続を供給するステップを含む、請求項１に記載の方法。
【請求項８】
前記関数ｇ１乃至ｇＮを前記実行装置に供給するステップは、前記プログラム用のプラグインの形態で前記関数ｇ１乃至ｇＮを供給するステップを含む、請求項７に記載の方法。
【請求項９】
前記関数ｇ１乃至ｇＮを前記実行装置に供給するステップは、前記実行装置関数縦続を前記関数パラメータｇ１乃至ｇＮに適用することにより、前記ソフトウェアプログラムに前記関数ｇ１乃至ｇＮを埋め込むステップを含む、請求項７に記載の方法。
【請求項１０】
実行装置中のプロセッサに、ディジタル信号処理関数ｆを実行させるように動作可能なコンピュータプログラムであって、前記関数ｆは、ディジタル信号入力ｘを処理してディジタル信号出力を出力するための、複数の信号処理関数ｆｉ（１≦ｉ≦Ｎ）を含む関数縦続を含み、前記関数ｆの実行は、
【数１０】
0005453367.tif 000089
を含む実行装置関数縦続をロードし、
関数ｇ１乃至ｇＮのセットをロードし、
前記関数ｇ１乃至ｇＮのセットに前記実行装置関数縦続を適用することにより実行され、ここでｙ１乃至ｙＮは関数パラメータであり、
ｇｉは、１≦ｉ≦Ｎについて
【数１１】
0005453367.tif 000090
と関数的に同値であり、
ｈｉは、２≦ｉ≦Ｎについて
【数１２】
0005453367.tif 000091
と関数的に同値であり、
ｐｉは、１≦ｉ≦２Ｎについて反転可能な置換である、コンピュータプログラム。
【請求項１１】
ディジタル信号処理関数ｆを不明瞭化された形態で実行装置に供給するシステムであって、前記システムは、サーバと実行装置とを含み、前記関数ｆは、ディジタル信号入力ｘを処理してディジタル信号出力を出力するための、複数の信号処理関数ｆｉ（１≦ｉ≦Ｎ）を含む関数縦続を含み、
前記サーバは、プログラムの制御下で、
２Ｎ個の反転可能な置換ｐｉ（１≦ｉ≦２Ｎ）のセットを選択し、
Ｎ個の関数ｇｉのセットを算出し、
Ｎ−１個の関数ｈｉのセットを算出するためのプロセッサを含み、ここで関数ｇｉは、１≦ｉ≦Ｎについて
【数１３】
0005453367.tif 000092
と関数的に同等であり、関数ｈｉは、２≦ｉ≦Ｎについて
【数１４】
0005453367.tif 000093
と関数的に同等であり、前記サーバは更に、
【数１５】
0005453367.tif 000094
を含む実行装置関数縦続を前記実行装置に備える手段を含み、ここでｙ１乃至ｙＮは関数パラメータであり、前記サーバは更に、
関数ｇ１乃至ｇＮを前記実行装置に供給する手段を含み、
前記実行装置は、
前記サーバから前記関数ｇ１乃至ｇＮを取得する手段と、
プログラムの制御下で、前記実行装置関数縦続をロードし、前記ロードされた実行装置関数縦続を前記関数ｇ１乃至ｇＮに適用するためのプロセッサと、
を含み、
インターリーブされた態様で実行装置において関数ｇｉ及びｈｉを実行することにより、関数ｆを直接に認識可能とすることなく、関数の縦続の機能が達成されるシステム。
【請求項１２】
請求項１１に記載のシステムにおける使用のための実行装置であって、
前記サーバから前記関数ｇ１乃至ｇＮを取得する手段と、
プログラムの制御下で、前記実行装置関数縦続を前記関数ｇ１乃至ｇＮに適用し、前記適用された実行装置関数縦続を前記ディジタル信号入力ｘに適用するためのプロセッサと、
を含む実行装置。
【請求項１３】
前記関数ｆは、Feistel暗号ネットワークに基づく復号化関数であり、前記信号処理関数ｆｉの各々が、それぞれのFeistel復号化ラウンド関数である、請求項１に記載のディジタル信号処理関数ｆを供給する方法。
【請求項１４】
置換ｐｉの各々はFeistel変換器であり、連続的な対＜ｘ，ｙ＞に演算する関数Ｑは、反転可能な関数Ｑｘ及びＱｙが存在し且つＱ（＜ｘ，ｙ＞）＝＜Ｑｘ（ｘ），Ｑｙ（ｙ）＞である場合には、Feistel変換器であり、ここで、
【数１６】
0005453367.tif 000095
及び
【数１７】
0005453367.tif 000096
である、請求項１３に記載のディジタル信号処理関数ｆを供給する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュアであり及び／又はパーソナライズされた方法で、縦続された信号処理関数を実行装置に供給する方法に関する。本発明はまた、セキュアであり及び／又はパーソナライズされた方法で、縦続された信号処理関数を実行装置に供給するシステムに関する。本発明は更に、セキュアであり及び／又はパーソナライズされた方法で供給された縦続接続された信号処理関数を実行する実行装置に関する。
【背景技術】
【０００２】
インターネットは、ディジタルコンテンツへの便利でユビキタス的なアクセスをユーザに提供する。強力な配布チャネルとしてのインターネットの可能性のため、多くの消費者向け電子機器が、インターネットへの最も有力な入口であるＰＣプラットフォームと相互運用するように努めている。著作権により保護されるコンテンツのための配布媒体としてのインターネットの使用は、コンテンツプロバイダの利益を確保するための抑え難い困難をもたらす。とりわけ、コンテンツプロバイダの著作権及びビジネスモデルを保証することが必要とされる。再生ソフトウェアの制御は、コンテンツが利用され得る期間及び条件を含む、コンテンツの所有者の利益を強化する一方法である。とりわけＰＣプラットフォームについては、ユーザは、コンテンツへのアクセスを提供するハードウェア及びソフトウェアへの完全な制御と、いずれのコンテンツ保護メカニズムをも攻撃及び回避するための無制限の時間及びリソースを持つことが仮定される必要がある。結果として、コンテンツプロバイダは、全てのユーザが信頼されるわけではないコミュニティへの敵対的なネットワークによって、正当なユーザにコンテンツを配信しなければならない。ＰＣへ配布される保護されたコンテンツのためのディジタル権利管理における一般的なアプローチは、ディジタルコンテンツを暗号化し（例えばＤＥＳを利用して）、ＰＣのハードディスク上の所謂ライセンスデータベースに復号化鍵（即ち「ライセンス」）を保存することである。ＰＣ上のディジタルコンテンツは一般に、Microsoft社のMedia Player、Real社のRealOne Player、Apple社のQuickTime（登録商標） Playerのようなメディアプレイヤを利用して再生される。斯かるプレイヤは、特定のコンテンツの形式に対して、当該形式に専用のデコードを実行するための、それぞれのプラグインをロードすることができる。これらのコンテンツの形式は、ＡＶＩ、ＤＶ、Ｍｏｔｉｏｎ ＪＰＥＧ、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、ＷＭＶ、Ａｕｄｉｏ ＣＤ、ＭＰ３、ＷＭＡ、ＷＡＶ、ＡＩＦＦ／ＡＩＦＣ、ＡＵ等を含み得る。プレイヤ及びプラグインの構造は、図１に示される。図１においては、メディアプレイヤ１００が、コアプレイヤ１００及び幾つかの形式に専用のプラグイン（図示されるものはプラグイン１２０、１２２及び１２４）を含む。コア（core）プレイヤ１００は例えば、プレイヤを制御するためのユーザインタフェースを提供する。各プラグインはそれぞれのデコーダを含む。各プラグインは、デコードされたコンテンツを、サウンドカードのような再生ハードウェア／ソフトウェアに直接送信しても良いし、又は更なる処理のためにコアプレイヤ１００に送っても良い。セキュアな再生のため、当該形式のコンテンツをデコードするだけでなく、該コンテンツを復号化するセキュアなプラグインが利用される。このことは図２に示される。図２においては、暗号化されたコンテンツが最初に復号化器２３０に送られ、次いで復号化されたコンテンツが当該形式に専用のデコーダ２２０に送られる。復号化器２３０は、ライセンスデータベース２１０から復号化鍵／ライセンスを受信しても良い。
【０００３】
暗号化に依存するディジタル権利管理の最大の脆弱性は、鍵の配布及び処理である。再生のために、ソフトウェアプレイヤは、ライセンスデータベースから復号化鍵を取得する必要があり、次いで当該復号化鍵を、暗号化されたコンテンツの復号化のためにメモリのどこかに保存する必要がある。このことは、ソフトウェアプレイヤにおける鍵の処理の攻撃のために、攻撃者に２つの選択肢を残す。第１に、ライセンスデータベースのアクセス関数のリバースエンジニアリングが、全てのライセンスデータベースからアセット鍵（asset key）を取得することが可能なブラックボックスソフトウェアに帰着する（即ち、攻撃者がソフトウェア関数の内部の動作を理解する必要がない）ことである。第２に、コンテンツの復号化の間に利用されるメモリへのアクセスの監視によって、アセット鍵を取得することが可能であることである。
一般に、ディジタル権利管理システムは、ラウンド（round）と呼ばれる暗号化／復号化ステップのシーケンスを利用して、ブロック毎にデータストリームを処理するブロック暗号に基づく暗号化手法を利用する。ｉ−１番目のラウンドの出力が、ｉ番目のラウンドの入力である。従って、Ｎラウンドのシステムについては、アルゴリズムは関数の縦続（cascade）
【数１】
0005453367.tif 000002
として記述されることができる。ここで、関数ｆｉは、ラウンドｉの関数を表す。殆どのブロックアルゴリズムは、Feistelネットワークである。斯かるネットワークにおいては、偶数長ｎの入力データブロックｘは、長さｎ／２の２つの半分（通常Ｌ及びＲと呼ばれる）に分割される。１番目のラウンドに供給される入力ｘはｘ＝＜Ｌ０，Ｒ０＞と与えられる。ｉ番目のラウンド（ｉ＞０）は、関数ｆｉを実行する。ここでｆｉは、
【数２】
0005453367.tif 000003
と定義される。Ｋｉはｉ番目のラウンドにおいて利用される副鍵（subkey）であり、Ｆは任意のラウンド関数（round function）である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−１６３８５号公報
【特許文献２】国際公開第０２／４６８９０号
【特許文献３】特表２００２−５１４３３３号公報
【特許文献４】特開２００１−６７２７０号公報
【非特許文献】
【０００５】
【非特許文献１】松岡賢他，鍵内蔵型暗号ソフトウェアの技術者による耐タンパー性評価法の事例紹介，電子情報通信学会技術研究報告，2001年9月10日，Vol. 101 No. 311，p. 45-52
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、Feistelネットワークのような縦続された信号処理関数のより優れた保護を提供することにある。
【課題を解決するための手段】
【０００７】
本目的を達成するため、ディジタル信号処理関数ｆを不明瞭化された形態で実行装置に供給する方法であって、前記関数ｆは、ディジタル信号入力ｘを処理してディジタル信号出力を出力するための、複数の信号処理関数ｆｉ（１≦ｉ≦Ｎ）を含む関数縦続（例えば
【数３】
0005453367.tif 000004
）を含む前記方法は、
２Ｎ個の反転可能な置換ｐｉ（１≦ｉ≦２Ｎ）のセットを選択するステップと、
Ｎ個の関数ｇｉのセットを算出するステップと、を含み、ここで関数ｇｉは、１≦ｉ≦Ｎについて
【数４】
0005453367.tif 000005
と関数的に同等であり、前記方法は更に、
Ｎ−１個の関数ｈｉのセットを算出するステップを含み、ここで関数ｈｉは、２≦ｉ≦Ｎについて
【数５】
0005453367.tif 000006
と関数的に同等であり、前記方法は更に、
【数６】
0005453367.tif 000007
を含む実行装置関数縦続を前記実行装置に備えるステップを含み、ここでｙ１乃至ｙＮは関数パラメータであり（例えば
【数７】
0005453367.tif 000008
）、前記方法は更に、
関数ｇ１乃至ｇＮを前記実行装置に供給するステップと、
前記実行装置において、前記実行装置関数縦続を関数ｇ１乃至ｇＮに適用する（例えばＥＤ１（ｇ１，・・・，ｇＮ））ステップと、
を含む。
本発明によれば、構成（constituent）関数ｆｉは、ｇｉとしてカプセル化された形態で提供される。ここでｇｉは、１≦ｉ≦Ｎについて、
【数８】
0005453367.tif 000009
に関数的に同等である。カプセル化のために利用される関数ｐｉもまた、２≦ｉ≦Ｎについて、
【数９】
0005453367.tif 000010
の乗算されたバージョンであるｈｉの形態で供給されることにより隠蔽される。インターリーブされた態様で実行装置において関数ｇｉ及びｈｉを実行する（例えば図４に示されるように）ことにより、ｆｉを直接に認識可能とすることなく、関数の縦続の機能が達成される。とりわけ、ｆｉがFeistel暗号のラウンド関数を表す場合には、該ラウンド関数に埋め込まれたラウンド鍵は直接には認識されない。ｆｉの不明瞭にされた配信がセキュリティを増大させる。実行関数装置縦続が、メディアプレイヤのコア機能を形成し得る。ここで、セットｇ１、・・・、ｇＮが、該プレイヤがｆ１からｆＮまで（ｆＮを含む）を含む関数縦続を実行することを可能とする。
従属請求項２及び３は、関数縦続の（関数的な）開始を保護する２つのそれぞれの代替例を示す。請求項２の例においては、実行装置関数縦続はｐ１−１から開始し、例えば
【数１０】
0005453367.tif 000011
である。これをｇ１、・・・、ｇＮに適用することにより、前記装置において実行される関数シーケンスの関数的な開始として
【数１１】
0005453367.tif 000012
となり、このようにして前記実行装置はｆ１を明示的に実行する。請求項３の例においては、ｐ１−１を隠蔽することを支援する開始関数ｆ０を用いて関数縦続を拡張することにより、セキュリティが増大させられる。該関数縦続は例えば、
【数１２】
0005453367.tif 000013
であっても良い。前記実行装置関数縦続は関数Ｓ１から開始し、例えば
【数１３】
0005453367.tif 000014
である。ここでＳ１は
【数１４】
0005453367.tif 000015
に関数的に同等である。Ｓ１は単にｆ０で乗算された形態でｐ１−１を表すため、ｐ１−１は特定のメモリ位置を読み取ることのような直接的な方法で前記実行装置から取得されることはできない。好ましくは、ｆ０はグローバルに秘密（global secret）である。
【０００８】
従属請求項４及び５は、請求項２及び３と類似した方法で関数縦続の（関数的な）末尾を保護する２つのそれぞれの代替例を示す。
【０００９】
従属請求項６の方法によれば、選択された置換ｐｉのシーケンスが装置に対して一意的である。このようにして、関数縦続が、不明瞭にされた形態でだけではなく、パーソナライズされた形態で、実行装置に供給される。例えば、埋め込まれた復号鍵を持つFeistel暗号を関数縦続が表す場合、暗号解読又は力任せの攻撃は、ｇ１、・・・、ｇＮのブラックボックス機能を得ることに帰着し得る。この破壊された機能はこのとき、対応する実行装置関数縦続と組み合わせてのみ機能し、他のいずれの実行装置とも機能しない。このことは、成功する攻撃の影響をかなり制限する。
【００１０】
従属請求項７の方法によれば、実行装置関数縦続は、例えばメディアプレイヤ又はメディアプレイヤ用のプラグインの形態で、プログラムに埋め込まれる。該実行装置はかくして、セキュアでパーソナライズされたソフトウェアを備える。
【００１１】
従属請求項８の方法によれば、関数ｇ１、・・・、ｇＮは、前記プログラム用のプラグインを形成する。前記プログラム自体がプラグインである場合には、関数ｇ１、・・・、ｇＮは事実上該プラグイン用のプラグインである。代替として、従属請求項９の方法によれば、関数ｇ１、・・・、ｇＮは前記実行装置関数縦続と同じプログラムに埋め込まれても良い。
本発明の目的を達成するため、実行装置中のプロセッサに、ディジタル信号処理関数ｆを実行させるように動作可能なコンピュータプログラムであって、前記関数ｆは、ディジタル信号入力ｘを処理してディジタル信号出力を出力するための、複数の信号処理関数ｆｉ（１≦ｉ≦Ｎ）を含む関数縦続（例えば
【数１５】
0005453367.tif 000016
）を含み、前記関数ｆの実行は、
【数１６】
0005453367.tif 000017
を含む実行装置関数縦続をロードし、
関数ｇ１乃至ｇＮのセットをロードし、
前記関数ｇ１乃至ｇＮのセットに前記実行装置関数縦続を適用することにより実行され、ここでｙ１乃至ｙＮは関数パラメータであり、
ｇｉは、１≦ｉ≦Ｎについて
【数１７】
0005453367.tif 000018
と関数的に同値であり、
ｈｉは、２≦ｉ≦Ｎについて
【数１８】
0005453367.tif 000019
と関数的に同値であり、
ｐｉは、１≦ｉ≦２Ｎについて反転可能な置換であるコンピュータプログラムが提供される。
本発明の目的を達成するため、ディジタル信号処理関数ｆを、不明瞭化された匿名の形態で、それぞれが一意的なインデクスｊによって識別される複数の実行装置に供給する方法であって、前記関数ｆは、ディジタル信号入力ｘを処理してディジタル信号出力を出力するための、複数の信号処理関数ｆｉ（１≦ｉ≦Ｎ）を含む関数縦続（例えば
【数１９】
0005453367.tif 000020
）を含む前記方法は、
２Ｎ個の反転可能な置換ｐｉ（１≦ｉ≦２Ｎ）のセットを選択するステップと、
Ｎ個の関数ｇｉのセットを算出するステップと、を含み、ここで関数ｇｉは、１≦ｉ≦Ｎについて
【数２０】
0005453367.tif 000021
と関数的に同等であり、前記方法は更に、
各装置ｊについて、前記装置及び／又は前記装置のユーザについて一意的な２Ｎ個の反転可能な置換ｐｊ，ｉの対応するセット及び／又はシーケンスを選択するステップと、
各実行装置ｊについて、Ｎ−１個の関数ｈｊ，ｉの対応するセットを算出するステップと、を含み、ここでｈｊ，ｉは、２≦ｉ≦Ｎについて
【数２１】
0005453367.tif 000022
と関数的に同等であり、前記方法は更に、
各前記実行装置ｊに
【数２２】
0005453367.tif 000023
を含むそれぞれの実行装置関数縦続ＥＤｊ（ｙ１，・・・，ｙＮ）を備えるステップと、
各前記実行装置ｊにそれぞれのローダ関数
【数２３】
0005453367.tif 000024
を備えるステップと、
を含み、ここでｌｊ，ｉは
【数２４】
0005453367.tif 000025
に関数的に同等であり、ｒｊ，ｉは
【数２５】
0005453367.tif 000026
に関数的に同等であり、前記方法は更に、
前記実行装置に関数ｇ１乃至ｇＮを供給するステップと、
前記実行装置において、ＥＤｊ（ｌｏａｄｅｒｊ（ｇ１，・・・，ｇＮ））を実行するステップと、
を含む。
【００１２】
関数ｆｉは、請求項１に記載のものと同様に、関数ｇ１、・・・、ｇＮの形態で不明瞭にされる。関数ｇ１、・・・、ｇＮは各装置に対して同一であり、１つのデフォルト／匿名の装置に対応するように見える。実行装置は装置に特有の（「パーソナライズ」された）実行装置縦続を備える。装置に特有のローダ（loader）関数が、それぞれの匿名の関数ｇｉを、実行装置縦続に送られる対応する装置に特有の関数へと変換するために利用される。前記ローダ関数は、公然にされていない置換ｐｊ，ｉのセット／シーケンスに基づく変換関数ｌｊ，ｉ及びｒｊ，ｉを利用する。
【００１３】
別の態様の方法によれば、関数ｇｉは、例えば放送又はＣＤ−ＲＯＭ若しくはＤＶＤのような記憶媒体を利用して、全ての装置に同一の方法で供給されることができる。
【００１４】
本発明のこれらの及び他の態様は、以下に説明される実施例を参照しながら説明され明らかとなるであろう。
【図面の簡単な説明】
【００１５】
【図１】先行技術のプラグインベースのデコードのブロック図を示す。
【図２】先行技術ベースの復号化のブロック図を示す。
【図３】先行技術の一体化された復号化／デコードシステムのブロック図を示す。
【図４】本発明による不明瞭化を示す。
【図５】不明瞭化の単純な例を示す。
【図６】本発明によるシステムのブロック図を示す。
【図７】本発明によるシステムの更なる実施例を示す。
【図８】本発明による匿名の不明瞭化を示す。
【図９】匿名の不明瞭化のための代替実施例を示す。
【発明を実施するための形態】
【００１６】
図３は、本発明が利用され得る先行技術のシステムのブロック図を示す。図３の例においては、コンテンツ（典型的にはオーディオ及び／又はビデオコンテンツ）が媒体３１０に配布される。前記媒体は、各プレイヤについて同一であっても良い。前記媒体は、オーディオＣＤ、ＤＶＤ、固体メモリ等のような、いずれの適切なタイプのものであっても良い。前記媒体上のコンテンツは、好ましくはFeistel暗号のような暗号化アルゴリズムを利用のもとに暗号化されることにより、コピー保護されている。前記記憶媒体は、復号化鍵に関する情報を含んでも良い。代替として前記記憶媒体は、プレイヤが、例えばインターネットにおけるサーバから該情報をダウンロードすることによって、前記情報を取得することを可能とする情報３１２（識別子のような）を含んでも良い。前記復号化鍵は、復号化鍵３２６を算出する（３２４）ため、鍵特有の鍵３２２及び情報３１２を利用することによりセキュアモジュール３２０において生成される。前記復号化鍵は、第２のモジュール３３０において取得される（３３２）。第２のモジュール３３０は、媒体３１０のコンテンツ３１４を復号化し（３３４）、デコードし（３３６）、再生する（３３８）。
図４は、本発明による方法を示す。ディジタル信号処理関数ｆは、不明瞭化された形態で実行装置に供給される。関数ｆは、複数の信号処理関数ｆｉ（１≦ｉ≦Ｎ）を含む関数縦続を含む。例えば、前記関数縦続のコアは、
【数２６】
0005453367.tif 000027
によって形成されても良い。ここで慣例的な数学的表記：
【数２７】
0005453367.tif 000028
が利用されていることに留意されたい。原則的に、前記関数縦続はいずれのディジタル信号処理関数であっても良い。好適な実施例においては、前記関数縦続は暗号を含む。例えば、関数ｆｉはFeistel暗号のｉ番目のラウンド（ｉ＞０）を表しても良い。斯かる場合においては、ｆｉは、
【数２８】
0005453367.tif 000029
と定義される。ここでＫｉはｉ番目のラウンドにおいて利用される副鍵であり、Ｆは任意のラウンド関数である。
本発明によれば、２Ｎ個の反転可能な置換ｐｉ（１≦ｉ≦２Ｎ）が選択される。次いで、Ｎ個の関数ｇｉのセットが算出される。ここでｇｉは、１≦ｉ≦Ｎについて
【数２９】
0005453367.tif 000030
に関数的に同等である。ここで関数的に同等であるとは、全てのとり得る入力の値について、ｇｉが同じ入力（例えばｘ）に適用された場合に、
【数３０】
0005453367.tif 000031
が当該入力に適用された場合と等しい結果が得られることを意味する。合成関数ｐ２ｉ−１、ｆｉ及びｐ２ｉ−１は、個別には認識できない。ｇｉは、
【数３１】
0005453367.tif 000032
のブラックボックス機能を提供する。図５は、当該アプローチを非常に単純な１次元関数について説明する。本例においては、
【数３２】
0005453367.tif 000033
である。従って、
【数３３】
0005453367.tif 000034
である。コンピュータのコンパイラ構築の分野においては、
【数３４】
0005453367.tif 000035
のブラックボックス機能が所謂部分評価（partial evaluation）を用いてどの様に達成されるかが良く知られている。N. D. Jones、C. K. Gomard及びP. Sestoftによる「Partial Evaluation and Automatic Program Generation」の第１章は、部分評価の概念を記載している。このことは、より詳細にはここでは説明されない。有用な置換を実行することを可能とするため、ディジタル信号入力ｘは、例えば６４又は１２８ビットブロック／ベクトルの、多次元パラメータであることは理解されるであろう。本発明によれば、Ｎ−１個の関数ｈｉのセットが算出される。ここでｈｉは、２≦ｉ≦Ｎについて
【数３５】
0005453367.tif 000036
と関数的に同等である。図５の単純な例を利用すると、
【数３６】
0005453367.tif 000037
である。これらの定義を利用すると、ｆ２を隠蔽する前記実行装置の縦続の部分は、
【数３７】
0005453367.tif 000038
となる。これは実際に
【数３８】
0005453367.tif 000039
と関数的に同等であることが分かる。かくして、当該縦続を実行した実行装置は、ｆ２の明示的な知識を持つことなくｆ２を実行したことになる。
【００１７】
別の例においては、Ｎ＝２であり、ｆ１及びｆ２がそれぞれ
ｆ１：｛０−＞３、１−＞１、２−＞６、３−＞２、４−＞７、５−＞５、６−＞４、７−＞０、８−＞８｝、
ｆ２：｛０−＞４、１−＞１、２−＞５、３−＞７、４−＞６、５−＞２、６−＞０、７−＞８、８−＞３｝
によって与えられるマッピングテーブルに対して評価される。本例においては、ｆ１は０と８との間の数を０と８との間の数に変換する反転可能な関数である。例えば値０は値３に、値１は値１に、値２は値６に等変換される。以下の４つのそれぞれの置換が、本例において利用される：
ｐ１：｛０−＞５、１−＞３、２−＞１、３−＞７、４−＞０、５−＞６、６−＞２、７−＞８、８−＞４｝、
ｐ２：｛０−＞８、１−＞６、２−＞７、３−＞３、４−＞４、５−＞２、６−＞０、７−＞１、８−＞５｝、
ｐ３：｛０−＞３、１−＞５、２−＞７、３−＞１、４−＞６、５−＞０、６−＞２、７−＞８、８−＞４｝、
ｐ４：｛０−＞３、１−＞０、２−＞５、３−＞２、４−＞７、５−＞８、６−＞１、７−＞４、８−＞６｝
本例に対しては、以下の３つの逆置換が利用される：
ｐ２−１：｛０−＞６、１−＞７、２−＞５、３−＞３、４−＞４、５−＞８、６−＞１、７−＞２、８−＞０｝、
ｐ３−１：｛０−＞５、１−＞３、２−＞６、３−＞０、４−＞８、５−＞１、６−＞４、７−＞２、８−＞７｝、
ｐ４−１：｛０−＞１、１−＞６、２−＞３、３−＞０、４−＞７、５−＞２、６−＞８、７−＞４、８−＞５｝
これら３の関数が与えられると、
【数３９】
0005453367.tif 000040
は以下のように与えられる：
ｈ２：｛０−＞７、１−＞４、２−＞２、３−＞０、４−＞８、５−＞６、６−＞５、７−＞３、８−＞１｝
例えば、ｐ２は０を８へマッピングし、ｐ３−１は８を７にマッピングする。従って、
【数４０】
0005453367.tif 000041
である。同様に、
【数４１】
0005453367.tif 000042
は、
ｇ１：｛０−＞８、１−＞５、２−＞７、３−＞６、４−＞３、５−＞４、６−＞１、７−＞０、８−＞２｝
によって与えられ、
【数４２】
0005453367.tif 000043
は、
ｇ２：｛０−＞４、１−＞３、２−＞５、３−＞６、４−＞１、５−＞７、６−＞２、７−＞０、８−＞８｝
によって与えられる。
前記実行装置は、
【数４３】
0005453367.tif 000044
を含む実行装置関数縦続を備える。ここで、ｙ１、・・・、ｙＮは関数パラメータである。このことは図４において、関数ｈＮ、ｈＮ−１、・・・、ｈ２のシーケンス４１０として示される。実行装置関数縦続の例は、
【数４４】
0005453367.tif 000045
である。更に、関数ｇ１、・・・、ｇＮが前記実行装置に供給される。このことは図４において、関数ｇＮ、ｇＮ−１、・・・、ｇＮのシーケンス４２０として示される。前記実行装置において、前記実行装置関数縦続が関数ｇ１、・・・、ｇＮに適用される。このことは例えば、前記実行装置における全体の信号処理関数ＥＤ１（ｇ１，・・・，ｇＮ）を与える。該関数は次いでディジタル信号入力ｘに適用される。
【数４５】
0005453367.tif 000046
のような連鎖の中央部分を見ると、該部分は
【数４６】
0005453367.tif 000047
を与える。該式の最初の項及び最後の項は、それぞれのｇ項によって除去される。全体の結果として、前記実行装置は、いずれの関数ｆｉへのアクセスをも持つことなく、関数縦続
【数４７】
0005453367.tif 000048
を含む関数を実行する。これらの関数はかくして不明瞭化される。
好適な実施例においては、前記連鎖の先頭及び末尾の処理について選択肢が与えられる。いずれの更なる手段をも用いずに、前記実行装置における結果の全体の信号処理関数が、
【数４８】
0005453367.tif 000049
となり得る。例えば、項ｐ１は
【数４９】
0005453367.tif 000050
を含む実行装置関数縦続を利用することにより除去され得る。例えば、
【数５０】
0005453367.tif 000051
である。好ましくは、項ｐ１−１は前記実行装置においてセキュアに維持される。このことを実行する好適な方法は、更なる信号処理関数ｆ０を用いて関数縦続を拡張することである（例えば
【数５１】
0005453367.tif 000052
）。このとき前記実行装置関数縦続は
【数５２】
0005453367.tif 000053
を含む（例えば
【数５３】
0005453367.tif 000054
）。ここでＳ１は、
【数５４】
0005453367.tif 000055
に関数的に同等である。このようにして、個々の項ｐ１−１及びｆ０は明らかにされる必要がなく、乗算された形式
【数５５】
0005453367.tif 000056
のみが存在する。好ましくは、ｆ０はグローバルに秘密である。即ち、ｆ０を知っている必要があるものには知られているが、それ以上は配布されない。グローバルな秘密はそれ自体知られており、グローバルな秘密をセキュアな方法で通信する方法もまた知られているが、ここではこれ以上議論されない。
対応する方法で、項ｐ２Ｎ−１−１を処理するための方法がとられても良い。例えば、前記実行装置関数縦続は、
【数５６】
0005453367.tif 000057
を含んでも良い（例えば
【数５７】
0005453367.tif 000058
）。ｐ２Ｎのより優れた保護のため、前記関数縦続は更なる信号処理関数ｆＮ＋１で終了しても良い（例えば
【数５８】
0005453367.tif 000059
）。このとき前記実行装置関数縦続は
【数５９】
0005453367.tif 000060
を含む（例えば
【数６０】
0005453367.tif 000061
）。ここでＳ２は、
【数６１】
0005453367.tif 000062
と関数的に同等である。
【００１８】
図６は、本発明が利用され得るシステムを示す。システム６００は、サーバ６１０と、少なくとも１つの実行装置６２０とを有する。前記サーバは、例えばウェブサーバのようなサーバとして利用されるプラットフォーム又はファイルサーバのような、従来のコンピュータプラットフォーム上に実装されても良い。前記サーバは、プロセッサ６１２を含む。プロセッサ６１２は、プログラムの制御下で動作する。前記プログラムは、埋め込まれたＲＯＭのように埋め込まれた記憶装置において前記プロセッサに常設的に埋め込まれても良いが、ハードディスク（図示されていない）のようなバックグラウンドの記憶装置からロードされても良い。前記プログラムの制御の下、プロセッサ６１２は以下を実行する：
・２Ｎ個の反転可能な置換ｐｉ（１≦ｉ≦２Ｎ）のセットを選択する。
・Ｎ個の関数ｇｉのセットを算出する。ここでｇｉは、１≦ｉ≦Ｎについて
【数６２】
0005453367.tif 000063
と関数的に同等である。
・Ｎ−１個の関数ｈｉのセットを算出する。ここでｈｉは、２≦ｉ≦Ｎについて
【数６３】
0005453367.tif 000064
と関数的に同等である。
前記置換は、（好ましくはセキュアな）記憶装置（図示されていない）に保存されていても良い、置換の非常に大きなセットから（例えばランダム的に又は疑似ランダム的に）選択されても良い。前記サーバは、前記置換を生成するために適切なプログラムも利用しても良い。反転可能な置換を生成する方法は良く知られており、ここではこれ以上説明されない。
加えて、前記サーバは、
【数６４】
0005453367.tif 000065
を含む実行装置関数縦続を前記実行装置に供給するための手段６１４を含む。ここでｙ１、・・・、ｙＮは関数パラメータである。これらのサーバは、このことをいずれの適切な形態で実行しても良い。例えば工場では、項ｈｉは、実行装置６２０の製造の間、前記実行装置の記憶モジュールに保存されても良い。図６は、前記項が、インターネット６３０によって直接に実行装置６２０にダウンロードされることを示す。サーバ６１０はまた、関数ｇ１、・・・、ｇＮを実行装置６２０に供給するための手段６１６を含む。関数ｇｉは、それぞれ関数ｆｉを組み込む。関数ｆｉは、ディジタル信号入力ｘ用に特に選択される。例えば、各ビデオタイトルが、対応する暗号化関数を用いて暗号化される（例えば同一の暗号化だがコンテンツ特有の鍵を利用して）。この目的のため、サーバ６１０はまた、コンテンツ６４０を暗号化するようにプロセッサ６１２を制御するためのソフトウェアを含んでも良く、また、例えば記憶媒体による又はインターネットのような通信媒体を通した配布のために、配布媒体に暗号化されたコンテンツ６４２を供給しても良い。
【００１９】
実行装置６２０は、サーバ６１０から関数ｇ１、・・・、ｇＮを得るための手段６２６を含む。これらの手段は前記サーバの手段６１６と協働するものであり、更には説明されない。実行装置６２０は更に、プロセッサ６２２を含む。前記プロセッサは、パーソナルコンピュータから知られたプロセッサ又は埋め込まれたマイクロコントローラのような、いずれの適切なタイプのものであっても良い。プロセッサ６２２は、プログラムの制御下で動作する。前記プログラムは、埋め込まれたＲＯＭのように埋め込まれた記憶装置を利用してプロセッサ６２２に常設的に埋め込まれても良いが、ハードディスク（図示されていない）のようなバックグラウンドの記憶装置からロードされても良い。前記プログラムの制御の下、プロセッサ６２２は、実行装置関数縦続をロードし、例えばＥＤ１（ｇ１，・・・，ｇＮ）を実行することにより、該ロードされた実行装置関数縦続を関数ｇ１、・・・、ｇＮに適用する。結果の信号処理関数は次いで、信号入力ｘ（例えば媒体から受信されたコンテンツ）に適用されても良い。プロセッサ６２２は、いずれの適切な形態で前記実行装置関数縦続をロードしても良い。例えば前記縦続は、製造の間記憶装置に予め保存され、直接のメモリ読み取りアクセスへのロードを減少させても良い。図６の例においては、実行装置６２０は、例えばインターネット６３０を通して、又は媒体６５０から、前記縦続（又は前記縦続の項）を取得するための手段６２４を含む。同様に、実行装置６２０は、媒体６５０から暗号化されたコンテンツ６５２を取得し、プロセッサ６２２を利用して該コンテンツを復号化しても良い。前記プロセッサは、前記復号化されたコンテンツをデコードしても良い。
【００２０】
図７は、実行装置関数縦続が、プロセッサ６２２による実行のためのソフトウェアプログラム７１０に埋め込まれて実行装置６２０に供給される、好適な実施例を示す。図７における同一の番号は、図６において利用されたものと同一のアイテムを示す。ソフトウェアプログラム７１０は、メディアプレイヤのようなプログラム用のプラグインであっても良い。従って図７の手段６１４は、該プラグイン７１０を、インターネットを介して供給しても良く（例えば図７のアイテム６３０）、又は製造の間に実行装置６２０に直接埋め込んでも良い。
【００２１】
実施例においては、関数ｇ１、・・・、ｇＮが、プログラム７１０用のプラグインの形で実行装置６２０に供給される。プログラム７１０が既にプラグインである場合には、関数ｇ１、・・・、ｇＮは事実上プラグイン用のプラグインである。代替としては、関数ｇ１、・・・、ｇＮは、前記実行装置関数縦続を関数パラメータｇ１、・・・、ｇＮに適用することにより、関数ｇ１、・・・、ｇＮをソフトウェアプログラム７１０に埋め込むことにより、実行装置６２０に供給される。このようにして、プログラム７１０は、関数ｈｉとｇｉとの両方を埋め込む。
【００２２】
実施例においては、各実行装置及び／又は該実行装置のユーザは一意的であり、一意的な識別子（例えば一意的な番号ｊ）によって識別される。本発明によるシステム及び方法においては、シーケンスｇｉ及びｈｉは、包含されるユーザ／団体（party）に対して一意的であることが保証される。このことは、実行装置及び／又は実行装置のユーザの一意的な識別子ｊを得ることによって、及びそれぞれ得られた識別子に対して一意的な２Ｎ個の反転可能な置換ｐｉのセットによって、実現されることができる。同様に、置換の同一のセットを利用して、置換の一意的なシーケンスが選択され得る。両方の手法が（置換の異なるセット又は置換の異なるシーケンスを選択する）組み合わせられても良い。好ましくは、各一意的な識別子について一意的なセット／シーケンスを、サーバが（セキュアな方法で）保存する。このようにして、パーソナルコンピュータ中の各ソフトウェアメディアプレイヤが、メディアタイトルを復号化及び／又はデコードするための一意的なプラグインを供給されることができる。媒体自体は一意的である必要はない。暗号化されたコンテンツは、単に暗号化関数に依存し、置換の一意的なセット／シーケンスには依存しない。前記ソフトウェアが前記識別子に対応するか否かを定期的に（例えばメディアプレイヤの起動時に）チェックし、一致が確認された場合にのみ前記ソフトウェアを実行することにより、プレイヤソフトウェアが、該プレイヤソフトウェアが属さないＰＣ上で実行されないことが保証される。偶然にハッカーが装置特有の置換を得たとしても、該置換は包含されるＰＣにおいてのみ利用されることができ、異なる暗号化（異なる関数ｆｉに帰着する）を用いて保護されたコンテンツには利用可能であるが、異なるプラットフォームにおいては利用されることができない。
以上では、信号処理関数の縦続が不明瞭な態様で実行装置に供給される方法及びシステムが説明された。各装置について、置換の同一のセット／シーケンスが利用されても良いし、又は装置特有のセット／シーケンスが利用されても良い。以下では、各装置について同一である不明瞭化された態様で信号関数縦続（「鍵」）を配布し、共通鍵（common key）を装置特有の鍵に変換する変換ルーチン（「ローダ」）を利用することにより、装置特有のセット／シーケンスを実現するための好適なアプローチが説明される。「共通鍵」は上述したものと略同じ方法で生成される。前記共通鍵は基本的にリファレンスプレイヤ又は匿名プレイヤを「アンロック（unlock）」するが、しかしながらこれらのプレイヤは、本実施例においては、いずれの実際の実行装置によっても実行されない。上述のものと同様に、本方法は２Ｎ個の反転可能な置換ｐｉのセット（１≦ｉ≦２Ｎ）を選択するステップと、Ｎ個の関数ｇｉを算出するステップとを有する。ここでｇｉは、１≦ｉ≦２Ｎについて
【数６５】
0005453367.tif 000066
と関数的に同等である。本方法は加えて、それぞれが一意的なインデクスｊによって識別される各実行装置について、該装置及び／又は該装置のユーザについて一意的な対応する２Ｎ個の反転可能な置換ｐｊ，ｉのセット及び／又はシーケンスを選択するステップを有する。該セットは、一意的な「プレイヤ」を各装置に備えるために利用される。該一意的なプレイヤは、各実行装置ｊについてＮ−１個の関数ｈｊ，ｉの対応するセットを算出し、各実行装置ｊに
【数６６】
0005453367.tif 000067
を含むそれぞれの実行装置関数縦続ＥＤｊ（ｙ１，・・・，ｙＮ）を備えることにより形成される。ここでｈｊ，ｉは、２≦ｉ≦Ｎについて
【数６７】
0005453367.tif 000068
に関数的に同等である。しかしながら、該装置特有のセットｈｉは、セットｈｉを利用するリファレンスプレイヤを「アンロック」することができる不明瞭化された関数縦続とは一致しない。該後者のセット／プレイヤのセットは、いずれの実行装置にも利用可能とはされない。その代わりに、実行装置ｊがそれぞれのローダ関数
【数６８】
0005453367.tif 000069
を備える。ここでｌｊ，ｉは
【数６９】
0005453367.tif 000070
と関数的に同等であり、ｒｊ，ｉは
【数７０】
0005453367.tif 000071
と関数的に同等である。上述のものと同様に、各実行装置は同一の関数ｇ１、・・・、ｇＮを備える。前記実行装置はこのときＥＤｊ（ｌｏａｄｅｒｊ（ｇ１，・・・，ｇＮ））を実行する。本式において、ｌｏａｄｅｒｊ（ｇ１，・・・，ｇＮ）は事実上匿名鍵ｇ１、・・・、ｇＮを、実行装置関数縦続ＥＤｊ（ｙ１，・・・，ｙＮ）に最適に一致する装置特有の鍵に変換する。定義：ｌｏａｄｅｒｊ（ｇ１，・・・，ｇＮ）＝（ｇｊ，１，ｇｊ，２，・・・，ｇｊ，Ｎ）を用いると、ｌｏａｄｅｒｊ（ｇ１，・・・，ｇＮ）のｉ番目の要素は
【数７１】
0005453367.tif 000072
である。上述の定義を用いると、このことは
【数７２】
0005453367.tif 000073
を与え、該式は
【数７３】
0005453367.tif 000074
と書き換えられる。このことは、装置特有のセットｈｊ，ｉが置換を除去する、装置特有の置換セット／シーケンスを利用する場合と同様である。
【００２３】
匿名の不明瞭化された鍵及び装置特有のローダを利用する着想はまた、図８に示される。匿名プレイヤＰｌ−Ｒ８１０は、関数ｈｉを組み込む。匿名プレイヤＰｌ−Ｒは、不明瞭化された信号処理関数ｆｉをセットｇｉの形で含む、対応する鍵Ｋ−Ｒ８１２によって開錠されることができる。匿名プレイヤＰｌ−Ｒは、いずれのユーザ／団体にも開示されていない。その代わり各ユーザ／団体は、一意的な装置特有のプレイヤ（図示されているものはプレイヤＰｌ−１（８３０）及びＰｌ−２（８４０））を備えられる。共通鍵Ｋ−Ｒは全てのユーザ／団体に供給される。しかしながら、該共通鍵は、特定のプレイヤに合致しない。それ故、各ユーザ／団体はまた装置特有の鍵ローダＫ−Ｌ（図示されているものは８２０及び８２５）を供給される。ローダ８２０及び８２５は、匿名鍵Ｋ−Ｒ８１２を装置特有の鍵Ｋ−ｊに変換するために利用される。この目的のため、ローダＫ−Ｌｉは関数ｌｉ，ｊ及びｒｊ，ｉを含む。図８に示されたように、原則的に、装置特有のローダが利用される。図９に更に示されたように、実際には、前記ローダは同一であっても良いが、装置特有の関数ｌｊ，ｉ及びｒｊ，ｉと共に供給される。図９の例においては、ｌ１，ｉ及びｒ１，ｉと共に供給されることにより匿名鍵Ｋ−Ｒ８１２を装置１用の装置特有の鍵８３２に変換し、ｌ２，ｉ及びｒ２，ｉと共に供給されることにより匿名鍵Ｋ−Ｒ８１２を装置２用の装置特有の鍵８４２に変換する。装置特有のプレイヤ８３０及び８４０が次いで、それぞれ装置特有の鍵のセットｈ１，ｉ（それぞれ８３２及び８４２）を利用してアンロックされる。これらの例においては、「鍵」及び「プレイヤ」なる語句は交換可能である。なぜなら、関数の２つの連鎖が相互にロックするからである。図４の例は、両方の連鎖を鍵として説明している。同様に、このことは２つの相互にロックするプレイヤとしても説明され得る。
【００２４】
匿名プレイヤ８１０（ｇＮ、・・・、ｇ１を組み込む）は有利にも、放送及び／又は記憶媒体における配布を通じて、各実行装置について同一のコンテンツを用いて、各実行装置に供給されても良いことは理解されるであろう。このことは単に、該プレイヤが各装置について同一であるからである。同様に、各実行装置によって処理されるべきディジタル信号入力ｘは、放送及び／又は記憶媒体における配布を通じて、各実行装置について同一のコンテンツを用いて配布されても良い。ローダに特有の態様は好ましくは、少なくとも１つの対応する関数のセットｈｊ，ｉ、ｌｊ，ｉ又はｒｊ，ｉを用いて装置特有のコンテンツを用いて、「１対１通信チャネル」及び／又は記憶媒体を介して、実行装置ｊに供給される。「１対１通信チャネル」は、いずれの適切な方法で実現されても良い。好ましくは、前記サーバは、インターネットを利用してセキュアなリンク（例えばＳＳＬ）を介して、前記装置特有の情報をダウンロードする。
上述したように、関数ｆはFeistel暗号ネットワークに基づく復号化関数であっても良く、信号処理関数ｆｉの各々は、それぞれのFeistel復号化ラウンド関数である。斯かる場合には、置換ｐｉの各々は好ましくは、Feistel変換器である。ここで連続的な対＜ｘ，ｙ＞に演算する関数Ｑは、反転可能な関数Ｑｘ及びＱｙが存在し且つＱ（＜ｘ，ｙ＞）＝＜Ｑｘ（ｘ），Ｑｙ（ｙ）＞である場合には、Feistel変換器である。ここで、
【数７４】
0005453367.tif 000075
及び
【数７５】
0005453367.tif 000076
である。これらの条件が満たされる場合、関数ｆｉは最適に隠蔽される。実際には、多くの斯かるFeistel変換器が存在し、装置に特有な置換の選択のための十分な余地を与える。Feistel変換器の定義は、上述の定義を用いて、定義：ｓｗａｐ（＜ｘ，ｙ＞）＝ｓｗａｐ（＜ｙ，ｘ＞）及び
【数７６】
0005453367.tif 000077
を用いると、Feistelラウンド
【数７７】
0005453367.tif 000078
が
【数７８】
0005453367.tif 000079
として見ることができるという洞察に基づく。このときｓｗａｐ−１＝ｓｗａｐ及びｉｎｖｏｌｕｔａｒｙＦ−１＝ｉｎｖｏｌｕｔａｒｙＦが成り立つ。
【００２５】
本発明は、本発明を実施するために適応されたコンピュータプログラム、特に担体上のコンピュータプログラムにも適用されることは理解されるであろう。前記プログラムは、ソースコード、オブジェクトコード、部分的にコンパイルされた形式のようなソースコードとオブジェクトコードの中間のコード、又は本発明による方法の実装における利用に適した他のいずれの形態であっても良い。前記担体は、前記プログラムを担持することが可能ないずれのエンティティ又は装置であっても良い。例えば前記担体は、例えばＣＤ−ＲＯＭ若しくは半導体ＲＯＭといったＲＯＭのような記憶媒体、又は例えばフロッピー（登録商標）ディスク若しくはハードディスクのような磁気記録媒体を含んでも良い。更に前記担体は、電気若しくは光ケーブルによって、無線によって、又はその他の手段によって伝達され得る、電気又は光信号のような伝送可能な担体であっても良い。前記プログラムが斯かる信号で実施化される場合には、前記担体は斯かるケーブル又は他の装置若しくは手段によって構成されても良い。代替として、前記担体は、前記プログラムが埋め込まれた集積回路であって、本方法を実行するために、又は本方法の実行における使用のために適応された集積回路であっても良い。
【００２６】
上述の実施例は本発明を限定するものではなく説明するものであって、当業者は添付する請求項の範囲から逸脱することなく多くの代替実施例を設計することが可能であろうことは留意されるべきである。請求項において、括弧に挟まれたいずれの参照記号も、請求の範囲を限定するものとして解釈されるべきではない。動詞「有する（comprise）」及びその語形変化の使用は、請求項に記載されたもの以外の要素又はステップの存在を除外するものではない。要素に先行する冠詞「１つの（a又はan）」は、複数のかような要素の存在を除外するものではない。本発明は、幾つかの別個の要素を有するハードウェアによって、及び適切にプログラムされたコンピュータによって実装されても良い。幾つかの手段を列記した装置請求項において、これら手段の幾つかは同一のハードウェアのアイテムによって実施化されても良い。特定の手段が相互に異なる従属請求項に列挙されているという単なる事実は、これら手段の組み合わせが有利に利用されることができないことを示すものではない。
【図１】
0005453367.tif 000097
【図２】
0005453367.tif 000098
【図６】
0005453367.tif 000099
【図７】
0005453367.tif 000100
【図３】
0005453367.tif 000101
【図４】
0005453367.tif 000102
【図５】
0005453367.tif 000103
【図８】
0005453367.tif 000104
【図９】
0005453367.tif 000105