(57)【特許請求の範囲】
【請求項１】
入力データブロックを出力データブロックに暗号的に変換するシステムにおいて、該システムが、
−  前記入力データブロックを入力する入力端子と、
−  Ｓボックスに関連づけられた少なくとも２つの置換の所定の組を記憶する記憶部と、
―  置換に基づくＳボックスを用いて前記入力データブロックに非線形処理を実行する暗号プロセッサであって、該プロセッサが、前記Ｓボックスを使用する前にその都度、該Ｓボックスに関連づけられた前記記憶された置換の組から置換を擬似ランダムに選択するように作用するようなプロセッサと、
−  前記の処理された入力データブロックを出力する出力端子と、
を含み、
−  前記置換の組が、該組の置換のうちの１つにおける暗号的弱点が前記組の他の置換の少なくとも１つにおける対応する暗号的強さにより少なくとも部分的に補償されるように形成されていることを特徴とするシステム。
【請求項２】
請求項１に記載のシステムにおいて、前記データブロックはｎ個のデータビットからなり、前記置換の組の各要素はＺ2nで表される２ｎ個の要素の組に対する置換であり、この組における各置換の各々の非自明な差分特性は最大でｐdiffの確率を有し、前記置換の組は、前記置換のうちの何れかにおけるｐdiffなる確率を持つ各非自明な差分特性に関して、この差分特性が前記組の他の置換の少なくとも１つにおいてｐdiffより小さな確率を有するように選択された置換により形成されることを特徴とするシステム。
【請求項３】
請求項２に記載のシステムにおいて、前記差分特性が前記置換の少なくとも１つにおいて零に等しい確率を有していることを特徴とするシステム。
【請求項４】
請求項３に記載のシステムにおいて、ｎ＝４及びｐdiff＝１／４であることを特徴とするシステム。
【請求項５】
請求項１に記載のシステムにおいて、前記データブロックはｎ個のデータビットからなり、前記置換の組の各要素はＺ2nで表される２ｎ個の要素の組に対する置換であり、この組における各置換の各々の非自明な線形特性は少なくとも１／２−ｐlin最大で１／２＋ｐlinの確率を有し、前記置換の組は、前記置換のうちの何れかにおける１／２−ｐlin又は１／２＋ｐlinなる確率を持つ各非自明な線形特性に関して、この線形特性が前記組の他の置換の少なくとも１つにおいて１／２に近い確率を有するように選択された置換により形成されることを特徴とするシステム。
【請求項６】
請求項５に記載のシステムにおいて、前記線形特性が前記置換の少なくとも１つにおいて１／２に等しい確率を有していることを特徴とするシステム。
【請求項７】
請求項５に記載のシステムにおいて、ｎ＝４及びｐlin＝１／４であることを特徴とするシステム。
【請求項８】
請求項１に記載のシステムにおいて、前記置換の組が２つの置換からなることを特徴とするシステム。
【請求項９】
請求項１に記載のシステムにおいて、前記置換の選択を暗号キーの制御の下で実行するステップを含んでいることを特徴とするシステム。
【請求項１０】
請求項９に記載のシステムにおいて、前記置換の組が２つの置換からなり、前記置換の選択が前記暗号キーの１ビットの制御の下で実行されることを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一群の置換（permutation）に基づく置換ボックス（Ｓボックス）の形態の非線形演算を用いて、入力データボックスを出力データボックスに暗号的に変換する方法に関する。
【０００２】
【従来の技術】
デジタルオーディオ及び／又はビデオの分野における暗号のアプリケーションは益々重要になってきている。これらのアプリケーションは、コンテンツ暗号化／復号及びアクセス管理機能を含む。斯様なアプリケーションに対し、良く知られているブロック暗号ＤＥＳを使用することができる。ＤＥＳは、１６ラウンド（巡回）からなるフェイステル（Feistel）暗号である。各ラウンドにおいて、先ず、データの右半部の３２ビットが４８ビットに拡張される。次に、これら４８ビットに対し、５６ビットのＤＥＳキーからスケジューリングアルゴリズムを用いて算出される４８ビットのラウンドキーがモジュロ２でビット毎に加算される。次いで、Ｓボックスのレイヤが、当該データに対して非線形演算を実行する。ＤＥＳにおいては、該Ｓボックスレイヤは、８個の並列な６／４ビットＳボックスからなる。即ち、上記Ｓボックスの各々は、６ビット入力ブロックをＳボックス当たり１つの固定のマッピングテーブルを用いて４ビット出力ブロックに変換する。該ボックスレイヤの出力は３２ビットのデータブロックであり、該ブロックに対してビット置換（bit-permutation）が実行される。上記Ｓボックス置換はＤＥＳにおける唯一の非線形演算であり、その安全保護（セキュリティ）に高度に貢献する。ＤＥＳの欠点は、その５６ビットなる小さなキーの寸法にあり、高いレベルの安全保護を提供するには今日では不十分であると考えられる。しかしながら、上記の１６個の４８ビットラウンドキーを算出するために、異なるキースケジューリングアルゴリズムと組み合わされた長いキーを使用することにより、全数（exhaustive）キー検索は避けることができる。公開文献で公表されたＤＥＳに対する２つの最も強力な攻撃は、広い範囲のブロック暗号に適用することができるような一般的攻撃である差分及び線形暗号解読である。ＤＥＳは、キーの長さ及び／又はキースケジューリングアルゴリズムを変更することによっては、これらの攻撃に対して十分に強化することはできないことが示されている。しかしながら、上記アルゴリズムのラウンド関数の（即ち、Ｓボックスの）変更は、これらの攻撃に対する強さに著しく影響を与えることができる。
【０００３】
【発明が解決しようとする課題】
本発明の目的は、良好な暗号特性を有するＳボックスを設計することにある。
【０００４】
また、本発明の他の目的は、斯様なＳボックスをハードウェア及びソフトウェアで効率的に実施化することができ、消費者向け電子用途に広く使用することができるようにすることにある。
【０００５】
【課題を解決するための手段】
上記本発明の目的を達成するため、上記Ｓボックス用の置換（permutation）は所定の群の置換から動的に選択される。好ましくは、上記群の各置換は、特に差分的又は線形な暗号解読等の既知の攻撃に対して最適な耐性を提供するように選択される。上記置換を（擬似）ランダムに選択することにより、当該システムは、各Ｓボックスが単一の固定の置換からなるようなシステムに較べて、暗号的に一層強くすることができる。群からの置換の選択は、高速且つ価格有効的に実行することができる。
【０００６】
従属請求項２の構成に記載されると共に、従属請求項３及び６に更に詳細に記載されているように、置換の１つにおける暗号的弱点は、上記群の他の置換の少なくとも１つにおける対応する強度により補償される。上記弱点は、例えば、所定の最大確率を有する非自明（non-trivial）な差分的及び／又は線形な特性に現れる。この方法の長所は、敵が、未知の（ラウンド）キー（又は複数のキー）に対する仮定なしでは、差分的又は線形な攻撃を斯様な特性に基づいて行うことができない点にある。
【０００７】
従属請求項４の構成に記載されているように、上記弱点は完全に補償される。
【０００８】
従属請求項１０の構成に記載されているように、好ましくは、上記置換の選択はラウンドキーの制御の下で実施される。これらラウンドキーを発生するアルゴリズム（即ち、キースケジューリングアルゴリズム）は、所望の程度の擬似ランダム性を得るように選択することができる。斯かる選択に関しラウンドキーを使用する利点は、上記置換がラウンドキーの計算の間に上記群から選択される点にある。効率性の理由で、これは、通常は及び好ましくは、各キー及び該キーを用いて処理されるべき（即ち暗号化されるべき）全てのデータについて、１回実施される。このようにして、暗号化／復号アルゴリズムは、各Ｓボックスに対して単一の固定の置換のみからなるようなＳボックスに基づくシステムと同様に効率的とすることができる。
【０００９】
本発明の、これら及び他の態様は図面に示す実施例から明らかとなり、斯かる実施例を参照して解説されるであろう。
【００１０】
【発明の実施の形態】
本発明を説明する目的のため、当該暗号システムを電子コードブック（ＥＣＢ）モードにおけるブロック暗号として説明する。当業者であれば、本システムを他のモードにおいても同様に使用することができるであろう。これらは、ＤＥＳ用の標準のＦＩＰＳ動作モード、即ち暗号ブロック連鎖（ＣＢＣ）、暗号フィードバック（ＣＦＢ）及び出力フィードバック（ＯＦＢ）動作モードを含む。更に、当該システムは、擬似乱数発生器、メッセージ認証コード（ＭＡＣ）及び操作検出コード（ＭＤＣ）用の既知の構成においても使用することができる。
【００１１】
該暗号装置は、デジタル入力ブロックを得るための入力端子を有している。該デジタル入力ブロックＭは如何なるサイズであってもよい。該装置は、更に、上記デジタル入力ブロックをデジタル出力ブロックに変換する暗号プロセッサを有している。有利には、該デジタル出力ブロックは上記デジタル入力ブロックと略等しい長さを有するものとする。該装置は、上記デジタル出力ブロックを出力するための出力端子を有している。好ましい実施例においては、上記暗号プロセッサは上記デジタル入力ブロックをキービットと組み合わせる（マージする）ことにより該デジタル入力ブロックをデジタル出力ブロックに変換し、これら入力ブロック及びキーに非線形に依存するような出力ブロックを生成する。上記キー（又はキースケジューラに供給する初期キー）を得るために、当該暗号装置は第２入力端子を有している。該暗号装置が、ＰＣのような通常のコンピュータを用いて、又は専用の暗号化／復号装置を用いて実施化することができることは理解されるであろう。上記デジタル入力ブロックは、通信ネットワークを介して、ハードディスク若しくはフロッピー（Ｒ）ディスクのようなデータ記憶媒体から、又はユーザにより直接入力されること等の種々の方法により得ることができる。同様に、上記デジタル出力ブロックは、通信ネットワークを介して、データ記憶媒体上に記憶される、又はユーザに対して表示される等の種々の方法により出力することができる。好ましくは、この目的のためには安全な手段が用いられるようにする。上記暗号プロセッサは、例えばパーソナルコンピュータに使用されているような通常のプロセッサとすることができるが、専用の暗号プロセッサであってもよい。該プロセッサは、通常、適切なプログラム（ファームウェア）の制御の下で作動されて、本発明によるアルゴリズムのステップを実行する。斯様なコンピュータプログラム製品は、通常、ハードディスク又はＲＯＭのようなバックグラウンド記憶部からロードされる。該コンピュータプログラム製品は、ＣＤ−ＲＯＭのような記憶媒体上で、又は公衆インターネット等のネットワークを介して配信された後、上記バックグラウンド記憶部に記憶することができる。暗号キーのような敏感な情報は、好ましくは、安全な方法で配信及び記憶されるようにする。このようにする技術は広く知られており、これ以上は説明しない。当該暗号装置は、部分的に又は全体として、スマートカード上で実施化することができる。
【００１２】
上記暗号プロセッサにより実行される本発明によるＳボックスの非線形演算を、例示的な適用例として、ブロック暗号におけるラウンド関数ｆの形で説明する。当業者は、非線形関数それ自体は、他の暗号システムにおいても同様に、及び以下に詳述するもの以外の他の暗号にも使用することができるであろう。
【００１３】
表記及び定義：
以下の表記が例示的アルゴリズムの説明において使用される。Ｚ2nを、座標的加算モジュロ２（排他的論理和又はＸＯＲとも呼ばれる）として定義される加算[+]：Ｚ2nｘＺ2n→Ｚ2nによる長さｎ（ｎ≧１）の全ての二進ベクトルの集合とする。例えば、(1,0,1,0)及び(0,1,1,0)はＺ24の要素であり、(1,0,1,0)[+](0,1,1,0) = (1,1,0,0)である。ｎが偶数であり、ｘ∈Ｚ2nであれば、ｘ(L)∈Ｚ2n/2及びｘ(R)∈Ｚ2n/2がｘの左半部及び右半部と各々定義される。例えば、ｘ＝(1,0,1,1,0,0,1,0)∈Ｚ28であれば、Ｘ(L)＝(1,0,1,1)∈Ｚ24及びｘ(R)＝(0,0,1,0)∈Ｚ24となる。記号‖はベクトルの連結を示すために使用され、例えばｘ＝(x(L)‖x(R))となる。ベクトルｘ∈Ｚ2nの要素（ビットとも呼ばれる）は左から右へと零からn-1まで番号が振られる。即ち、x =:(x0,x1,x2,…,xn-1)となる。内積・：Ｚ2nｘＺ2n→Ｚ2は、全てのx,y∈Ｚ2nに対して、ｘ・ｙ＝Σi=0,1,…,n-1xiyi∈Ｚ2として定義される。
【００１４】
ブロック暗号構造：
例示的なブロック暗号はフェイステル暗号であり、（ＤＥＳのように）１６ラウンドからなる。ブロック長は６４ビットに等しく、キーの長さは１２８ビットに等しい。キーＫ∈Ｚ2128の下での平テキストＸ∈Ｚ264から、その暗号テキストＣ∈Ｚ264への電子コードブック（ＥＣＢ）モードでの暗号化は、Ｃ＝Ｅ（Ｋ，Ｘ）により示される。
【００１５】
ラウンド関数はｆで示され、Ｚ240ｘＺ232からＺ232へのマッピング（写像）である。このラウンド関数は、本発明の非線形Ｓボックス演算を組み込むもので、以下に詳細に説明する。該ラウンド関数の第１入力引数はラウンドキーＫi∈Ｚ240である（ここで、ｉはラウンド番号ｉ＝１、２、…、１６を示す）。これらのラウンドキーは１２８ビットのキーＫから所謂キースケジューリングアルゴリズムにより算出される。如何なる好適なキースケジューリングアルゴリズムを使用することもでき、詳細には説明しない。第２入力引数は、ラウンドｉ後の即時結果の右半部である。この即時結果は、Ｘ＝：(X0(R)‖X0(L))の場合、Ｘi∈Ｚ264(i=0,1,…,16)により示される。
【００１６】
この表記を用いた場合、暗号テキストＣ∈Ｚ264の計算は、図１に示すように下記のステップからなる：
１．i = 1,2, ... ,15に関し、Xi(R) = Xi-1(L) [+]f(Ki, Xi-1(R))を計算し、Xi(L) = Xi-1(R) を設定する。
【００１７】
２．X16(L) = X15(L) [+]f(K16, X15(R))を計算し、X16(R) = X15(R)を設定する。暗号テキストはC := (X16(L) ‖X16(R))と定義される。
【００１８】
図１Ａは、最初の１５ラウンド（ｉ＝１，２，…，１５）に対して使用される暗号構造を示している。図１Ｂは、最後の第１６ラウンドを示している。図１Ａの前のラウンドに比較して、図１Ｂにおける異常な入れ替えに注意されたい。これは、フェイステル構成において通常に実施される。何故なら、この場合、復号アルゴリズム（即ち、Ｘ＝Ｅ-1(Ｋ,Ｃ)の計算）は暗号化アルゴリズム（逆の順番のラウンドキーによる）と同じであるからである。暗号的な意味では何の意味も有さない。
【００１９】
ラウンド関数：
図２は、当該ラウンド関数ｆの好ましい実施例の全体のブロック図を示している。先ず、当該ラウンドキーの例えば３２ビットなる一部が、ステップ２１０においてデータビットに加算される。次に、ステップ２２０において、Ｓボックスが非線形置換を実行して、好ましくは差分及び線形暗号解析に対して最適な（ローカルな）耐性を与える。加えて、好ましくは、所定の最大確率を持つ非自明（non-trivial）な（ローカルな）特性が、以下に詳述するように（ラウンド）キーに依存するものとされる。最後に、ステップ２３０において、線形変換が用いられ、複数ラウンドにわたる高度な分散を与える。如何なる好適な線形変換を使用することもできる。該線形変換は本発明の要旨ではないので、詳細には説明しない。
【００２０】
フェイステル構造は、ラウンド関数の全射性（surjectivity）に何の制限も課さない。しかしながら、好ましくは、ラウンド関数は固定の（ラウンド）キーに対する全ての選択に関して全単射的（bijective）であるとする。これは、ラウンド関数の非一様性に基づく攻撃を防止する。
【００２１】
図３は、本発明によるＳボックスを組み込んだ好ましい構成を詳細に示している。この例示的なシステムにおいては、ラウンド関数ｆはＺ240ｘＺ232からＺ232へのマッピングである。第１入力引数はラウンドキーＫi∈Ｚ240であり、第２入力引数は中間結果Ｘi-1の右半部である。出力は、f(Ki,Xi-1(R))∈Ｚ232により示される。この図において、Ｋi(1)∈Ｚ232及びＫi(2)∈Ｚ28は、Ｋi＝：(Ｋi(1)‖Ｋi(2))と定義される。ステップ２１０において、キーの加算が実行され、ステップ２２０においてキー依存型の置換ボックス（Ｓボックス）レイヤが後続する。この例では、該Ｓボックスレイヤは８個の小さなＳボックス（Ｓ０、Ｓ１、Ｓ２、…、Ｓ７）からなり、各ボックスはデータブロックの１／８に作用する。該Ｓボックス変換はＺ28ｘＺ232からＺ232へのマッピングであり、ラウンドｉにおける第１入力引数はラウンドキーＫi(2)であり、第２入力引数は上記キー加算の結果、即ちＸi-1(R)[+]Ｋi(1)である。該Ｓボックス変換の３２ビット出力はＳ(Ｋi(2),Ｘi-1(R)[+]Ｋi(1))により示される。このマッピングの詳細は後述する。最後に、ステップ２３０においてＺ232からＺ232への適切な線形変換が適用される。この場合、入力はＳ(Ｋi(2),Ｘi-1(R)[+]Ｋi(1))により示され、出力はＬ(Ｓ(Ｋi(2),Ｘi-1(R)[+]Ｋi(1)))により示される。この表記を用いると、上記関数ｆは：
ｆ(Ｋi,Ｘi-1(R))＝Ｌ(Ｓ(Ｋi(2),Ｘi-1(R)[+]Ｋi(1)))
となる。
【００２２】
Ｓボックス：
本発明によれば、Ｓボックスはデータの置換を実施する。ここで述べる好ましい実施例においては、Ｓボックスは４ビット副ブロックに対して作用する。他のサイズの副ブロックを使用することもできることが分かるであろう。本発明によれば、各Ｓボックスに対して少なくとも２つの所定の置換（ｐｅｒｍｕｔａｔｉｏｎ）の組が使用され、当該Ｓボックスが使用される前に、その都度、これら置換のうちの１つが（擬似）ランダムに選択される。好ましくは、この選択のために上記ラウンドキーが使用される。好ましい実施例においては、各Ｓボックスには２つの置換が関連づけられ、両置換のうちの何れが使用されるかを選択するために上記ラウンドキーの１つの所定ビットが使用される。４ビットの副ブロックに対して作用するもののような、比較的小さなＳボックスを使用することは、通常、各々が少なくとも２つの非線形置換の対応する組に関連づけられる並列なＳボックスの行を必要とする。３２ビットブロックに作用すると共に４ビットのＳボックスを使用するようなブロック暗号の好ましい実施例においては、８個のＳボックスが並列に使用され、これらボックスの各々は２つの置換からなる。この実施例に関しては、以下の表記が使用される。該Ｓボックス変換の第１入力引数Ｋｉ（２）におけるビットをｋｊ（ｉ）（ｊ ＝ ０，１， …，７）、即ちＫｉ（２） ＝：（ｋ０（ｉ）， ｋ１（ｉ），…，ｋ７（ｉ））により示すものとする。ベクトルＮｊ（ｉ）∈Ｚ２４（ｊ ＝ ０，１，…，７）は、Ｘｉ−１（Ｒ）［＋］Ｋｉ（１） ＝：（Ｎ０（ｉ） ‖ Ｎ１（ｉ） ‖… ‖Ｎ７（ｉ））により定義される。該Ｓボックスのマッピングは、８個のマッピングの連結Ｓｊ ： Ｚ２ ｘ Ｚ２４ →Ｚ２４ （ｊ ＝ ０，１，...，７）からなる。第１入力引数はキービットｋｊ（ｉ）であり、これは、Ｓｊに関する２つの置換のうちの何れが使用されるかを選択する。第２入力引数はＮｊ（ｉ）であり、これは、Ｓｊに対する選択された４ビット置換に関する入力である。この置換の対応する４ビット出力は、当該Ｓボックスの出力でもあり、Ｓｊ（ｋｊ（ｉ）， Ｎｊ（ｉ））により示される。この表記を用いると、関数Ｓは：
Ｓ（Ｋｉ（２），Ｘｉ−１（Ｒ）［＋］Ｋｉ（１）） ＝ （ Ｓ０（ｋ０（ｉ），Ｎ０（ｉ））‖Ｓ１（ｋ１（ｉ）， Ｎ１（ｉ））‖...‖Ｓ７（ｋ７（ｉ）， Ｎ７（ｉ）））
により与えられる。
【００２３】
置換の差分及び線形特性
好ましくは、下記の設計規準が個々の置換に対して使用されるようにする。
【００２４】
１．差分暗号解読に対する耐性：ＸＯＲ分配テーブル内の最大の非自明な値は所定の最大値に等しい。４ビット置換を仮定すると、この最大値は４である。即ち、各々の非自明差分特性は最大で１／４の確率を持つ。差分特性及びＸＯＲ分配テーブルの思想は広く知られている。例えば、斯かる思想は、１９９１年のジャーナル・オブ・クリプトロジーの第4(1)巻、第３〜７２頁における“ＤＥＳ型暗号システムの差分暗号解読”にBiham及びShamirにより１９９１年に最初に公開記載された。
【００２５】
２．線形暗号解読に対する耐性：線形近似テーブルにおける最大の非自明絶対値は所定の最大値に等しい。４ビット置換を仮定した場合、この最大値は４である。即ち、各々の非自明線形特性は１／４と３／４との間の確率を持つ。線形特性及び線形近似テーブルの思想は、広く知られている。該思想は、最初に、Matuiにより公開記載された。該記載は、１９９５年、スプリンジャ、ＬＮＣＳ９５０、ユーロクリプト９４の第３４１〜３５５頁におけるE. Bihamの“Matsuiの線形暗号解読について”に示されている。
【００２６】
各置換は、好ましくは、これらの要件の両者を満たすようにする。上記規準を４ビット非線形置換に関して詳述する。これらの規準が４ビット置換に対して最適であること、即ち、４より小さい値の最大の非自明ＸＯＲ分散テーブル値を持つ４ビット置換が存在しないこと、及び４より小さいような、その線形近似テーブルにおける最大の非自明絶対値をもつ４ビット置換が存在しないことを証明することができる。
【００２７】
上記規準を満たす置換は、置換をランダムに発生し、発生された該置換が上記規準を満たすかを判定することにより作成することができる。適切な置換が発見されるまでの全数検索、又は（数学的）構築方法を用いるような他の適切な技術を使用することもできる。構築方法の１つの特別な例は、自身に零がマップされる、２ｎ要素の有限フィールドにおける反転マッピングに基づくもので、１９９４年、スプリンジャ、ＬＮＣＳ７６５、ユーロクリプト９３の第５５〜６４頁におけるK. Nybergの“暗号用の差分的に一様なマッピング”で見付けることができる。ｎが偶数として、この方法に従って構築されるｎビットＳボックスにより満たされる対応する規準は、下記により与えられる：
【００２８】
１．差分暗号解読に対する耐性：ＸＯＲ分散テーブルにおける最大の非自明値は４に等しい。即ち、各々の非自明な差分特性は最大で４／２ｎの確率を持つ。
【００２９】
２．線形暗号解読に対する耐性：線形近似テーブルにおける最大の非自明絶対値は２n/2に等しい。即ち、各々の非自明な線形特性は、１／２−１／２n/2と１／２＋１／２n/2との間の確率を有する。
【００３０】
これらの規準が４ビット置換に関して上述したものを一般化することが容易に分かる。ｎビットＳボックスの全入力要素及び／又は全出力要素に対する如何なる可逆アフィン（affine）マッピング（Ｚ2n上の）の適用も、その線形近似テーブルにおける最大の非自明なＸＯＲ値又は最大の非自明な絶対値に影響を及ぼさないことは良く知られている。このようにして、上述した規準を満たす多数のＳボックスを単一のＳボックスから構築することができる。
【００３１】
本発明によれば、Ｓボックスは少なくとも２つの非線形置換に関連づけられる。当該組における置換は、これら置換が互いの弱点を補償するように選択されている。これを、差分的及び線形的特性に関して各々詳細に説明する。１つのＳボックス、例えば下記の２つの置換を伴うＳ０、を用いて追加の規準を説明する：
【表１】
0004828082.tif 000002
【００３２】
行０及び１は、列番号により規定される入力に対応する、２つの置換の出力を示す。以下においては、これら２つの置換を、各々、Ｐ０及びＰ１により示す。入力及び出力は共に１６進表記で示す。例えば、第１置換が選択され（即ち、k0(i) = 0）、及びN0(i) = 3の場合、出力は９に等しくなる。即ち、S0(0,3) = 9となる。同様に、S0(1,3) = fとなる。各Ｓボックスが当該ボックスに固有の２つの置換に関連づけられるような８個の並列なＳボックスを仮定すると、合計で１６個の異なる置換を発生しなければならない。好ましくは、これら置換の各々が上述した全ての規準を満たすものとする。本発明によれば、１つのＳボックスに組として属する置換も、下記に示す規準の少なくとも一方、好ましくは両方を満たすようにする。
【００３３】
置換の組の差分特性：
１つのＳボックスに関する１組の置換は下記の規準を満足する：
これら置換のうちの１つにおける非自明な差分特性が最大の確率を有するなら、この差分特性は他方の置換のうちの少なくとも１つにおいて低い確率を有する。
【００３４】
このようにして、上記置換のうちの一方における弱点が他方の置換の１つにおける強さにより補償される。好ましくは、上記の低い確率を零として、弱点を最適に補償する。従って、１つのＳボックスに対する１対の４ビット置換に関する好ましい規準は、２つの置換の一方における非自明な差分特性が１／４の確率を有する場合、この差分特性は他方の置換において確率０を有するというものになる。即ち、Ｓボックスの各々の非自明な（ラウンド）キーに非依存な差分特性は最大で１／８の確率を有する。
【００３５】
上述した２つの置換Ｐ０及びＰ１が、この規準を満たしていることを示すために、それらのＸＯＲ分散テーブルを以下に示す。ＰｉのＸＯＲ分散テーブルにおける行α及び列βのエントリ（α,β∈Ｚ24の場合）はＸiα,βにより示され、
Ｘiα,β := #{ x ∈ Ｚ24 | Pi(x) [+] Ｐi(x [+] α) = β},  i = 0,1
と定義される。即ち、Ｘiα,β は、置換Ｐｉに対して対応する出力対において差分βを生じさせるような差αを持つ入力対の数に等しい。
【表２】
0004828082.tif 000003
【００３６】
所与の（ローカルな）差分特性に関する確率、即ち入力差αが出力差βを生じさせる（α→βで示す）確率は、対応するエントリを該所与の入力差を持つ入力対の数により除算することにより見付けることができる。この入力対の合計数は、４ビット置換に対しては１６に等しいので、α→βの確率はＸiα,β/16により与えられる。これらのテーブルの最初の行及び列におけるエントリは、自明な特性、即ち確率１での０→０、を表し、これは置換に対して常に成り立つ。全ての他の（非自明な）差分特性が１／４以下の確率を有していることは容易に分かる。何故なら、全ての他のエントリに対する最大値は両置換に対して４に等しいからである。
【表３】
0004828082.tif 000004
【００３７】
補償効果は、例えば、両置換に関して特性７→５を考察することにより見ることができる。Ｐ０に関しては、７→５の確率はＸ07,5/16 = １／４に等しく、Ｐ１に関しては、この確率はＸ17,5/16 = 0により与えられる。好ましくは、この補償は可能な限り多数の要素に対して生じるものとする。当該例においては、このことは、４なる最大ＸＯＲ差分値を持つ全ての要素に関して成り立つ。置換を発生し且つ判定する良く知られた技法を用いて、当業者ならば、４ビット置換に関し８個の斯様な置換対を２〜３日で作成することができる。他の例として、上記規準を満たす置換Ｐ0*及びＰ1*の異なる対を、Ｐ０及びＰ１から、これらの置換の両者の出力に例えばアフィン変換を適用することにより構築することができる。これは、Ｚ２及びベクトルｂ∈Ｘ24に対して非特異（non-singular）な４ｘ４マトリクスＡを選択すると共に、全てのx ∈ Ｚ24に対してＰ0*(x) := Ｐ0(x)Ａ[+]b及びＰ1*(x) := Ｐ1(x)Ａ[+]bを定義することにより実行することができる。このようにして、各々が上述した規準を満たすような３２２５６０の異なる（配列された）置換対を構築することができることを容易に検証することができる。これらの変換の１つはＺ24→Ｚ24の恒等（identity）マッピング、即ちＰ0*＝Ｐ０及びＰ1*＝Ｐ１であることに注意すべきである。
【００３８】
置換の組の線形特性：
１つのＳボックスに関する置換の組は下記規準を満たす：
当該置換のうちの１つにおける非自明な線形特性が１／２からの最大絶対差を伴う確率を有している場合、この線形特性は、他の置換の少なくとも１つにおいて１／２に一層近い確率を有する。
【００３９】
このようにして、上記置換のうちの１つにおける弱点が他の置換の１つにおける強さにより補償されることが分かる。好ましくは、上記他の置換の１つにおける対応する確率を１／２に等しくして、弱点を最適に補償する。従って、１つのＳボックスに関する１対の４ビット置換に対する好ましい規準は、２つの置換のうちの一方における線形特性が確率１／４又は３／４を有する場合、この線形特性は他方の置換では確率１／２を有する、即ちＳボックスの各々の（ラウンド）キーとは独立な線形特性は３／８と５／８との間の確率を有するというものである。
【００４０】
上述した２つの置換Ｐ０及びＰ１が、この規準を満たしていることを示すために、それらの線形近似テーブルを以下に示す。Ｐｉの線形近似テーブルにおける行α及び列βのエントリ（α,β∈Ｚ24の場合）は、Ｌiα,β により示され、
Ｌiα,β := #{ x ∈ Ｚ24 | ｘ・α = Pi(x)・β}−８,  i = 0,1
と定義される。即ち、置換Ｐｉに対し、Ｌiα,β は、αにより定義される入力ビットに対する線形関係がβ−８により定義される対応する出力ビットに対する線形関係に等しいような入力の数を表し、これは４ビット置換に対する理想的な数である（もっと一般的には、ｎビット置換に対する理想値は２n-1である）。
【表４】
0004828082.tif 000005
【００４１】
所与の（ローカルな）線形特性に関する確率、即ちαにより規定される入力ビットに対する線形関係がβにより規定される出力ビットに対する線形関係に等しい（α→βで示す）確率は、１／２＋Ｌiα,β /16に等しい。これらのテーブルの最初の行及び列におけるエントリは、自明な特性、即ち確率１での０→０、を表し、これは置換に対して常に成り立つことに注意されたい。全ての他の（非自明な）差分特性が１／４と３／４との間の確率を有していることは容易に分かる。何故なら、全ての他のエントリに対する最小及び最大値は、両置換に対して−４及び４に各々等しいからである。
【表５】
0004828082.tif 000006
【００４２】
補償効果は、例えば、両置換に関して線形特性２→３を考察することにより見ることができる。Ｐ０に関しては、２→３の確率は１／２＋Ｌ0２,３/16 = ３／４に等しく、Ｐ１に関しては、この確率は１／２＋Ｌ1２,３/16 = １／２により与えられる。好ましくは、この補償は可能な限り多数の要素に対して生じるものとする。当該例においては、このことは、４なる最大絶対値を持つ全ての要素に関して成り立つ。置換を発生し且つ判定する良く知られた技法を用いて、当業者ならば、４ビット置換に関し８個の斯様な置換対を２〜３日で作成することができる。他の例として、上記規準を満たす置換Ｐ0*及びＰ1*の異なる対を、Ｐ０及びＰ１から、これらの置換の両者の出力に例えばアフィン変換を適用することにより構築することができる。これは、Ｚ２及びベクトルｂ∈Ｘ24に対して非特異な４ｘ４マトリクスＡを選択すると共に、全てのx ∈ Ｚ24に対してＰ0*(x) := Ｐ0(x)Ａ[+]b及びＰ1*(x) := Ｐ1(x)Ａ[+]bを定義することにより実行することができる。このようにして、各々が上述した規準を満たすような３２２５６０の異なる（配列された）対の置換を構築することができることを容易に検証することができる。これらの変換の１つはＺ24→Ｚ24の恒等マッピング、即ちＰ0*＝Ｐ０及びＰ1*＝Ｐ１であることに注意すべきである。
【図面の簡単な説明】
【図１Ａ】  図１Ａは、非線形演算を含む暗号の１つのラウンドを示す。
【図１Ｂ】  図１Ｂも、非線形演算を含む暗号の１つのラウンドを示す。
【図２】  図２は、ラウンド関数のステップを示す。
【図３】  図３は、上記ラウンド関数のＳボックスレイヤの詳細を示す。
【図１】
0004828082.tif 000007
【図２】
0004828082.tif 000008
【図２】
0004828082.tif 000009
【図３】
0004828082.tif 000010