(57)【要約】  この発明の目的は、メインキーに基づき系統或いはサブキーを生成する方法を提案することであり、その場合、各サブキーがメインキー或いは他の任意のサブキーを回復する情報を何等付与しない。上記目的はメインキー（ＭＫＥＹ）に基づきサブキーを生成する方法によって達成され、当該方法が、−  メインキー（ＭＫＥＹ）を定数と混合することで線形多様性レイヤをメインキー（ＭＫＥＹ）に適用することによって第１値（Ａ１）を求める工程と、−  第１値（Ａ１）に非線形変換を適用する工程とを含み、この変換が、−  代替レイヤに第１値（Ａ１）を適用することによって第２値（Ａ２）を求める工程であり、その代替レイヤが少なくとも１つの代替ボックス（ｓｂｏｘ）を含み、各代替ボックスが、入力がポインタとして機能し、ポイントされた定数が出力として機能する複数の定数からなる少なくとも１つのテーブルを収納することからなる工程と、−  第２値（Ａ２）に基づき、多数順列タイプからなる拡散ボックスを用いることによって、第３値（Ａ３）を求める工程と、−  第３値（Ａ３）を同一サイズのＮ個のブロックに分割して、Ｎ個のブロックによって形成された出力第４値（Ａ４）を求める工程であり、その第４値（Ａ４）の各ブロックが第３値（Ａ３）のＮ−１個のブロックの組み合わせの結果であり、紛失ブロックが同一インデックスのブロックであることからなる工程と、−  第４値（Ａ４）に代替レイヤを適用することによって第５値（Ａ５）を求める工程と、−  第５値（Ａ５）に対称暗号化モジュールを適用することによってサブキー（ＲＫＥＹ）を求める工程であり、第１値（Ａ１）がこのモジュールに対するキー入力として機能する工程とを含む。
2007532935.tif 000002
【特許請求の範囲】
【請求項１】
メインキー(MKEY)に基づきサブキーを生成する方法であって、
−  前記メインキー(MKEY)を定数と混合することで線形多様性レイヤを前記メインキー(MKEY)に適用することによって第１値(A1)を求める工程と、
−  前記第１値(A1)に非線形変換を適用する工程と
を含み、
この変換が、
−  代替レイヤに前記第１値(A1)を適用することによって第２値(A2)を求める工程であり、その代替レイヤが少なくとも１つの代替ボックス(sbox)を含み、各代替ボックスが、入力がポインタとして機能し、ポイントされた定数が出力として機能する複数の定数からなる少なくとも１つのテーブルを収納することからなる工程と、
−  前記第２値(A2)に基づき、多数順列タイプからなる拡散ボックスを用いることによって、第３値(A3)を求める工程と、
−  前記第３値(A3)を同一サイズのＮ個のブロックに分割して、Ｎ個のブロックによって形成された出力第４値(A4)を求める工程であり、その第４値(A4)の各ブロックが前記第３値(A3)のＮ−１個のブロックの組み合わせの結果であり、紛失ブロックが同一インデックスのブロックであることからなる工程と、
−  前記第４値(A4)に代替レイヤ(sigma)を適用することによって第７値(A7)を求める工程と、
−  前記第７値(A7)に対称暗号化モジュール(SENC)の前記第７値(A7)を適用することによって前記サブキー(RKEY)を求める工程であり、前記第１値(A1)がこのモジュールに対するキー入力として機能する工程と
を含む方法。
【請求項２】
提供されたキー(AKEY)が前記メインキー(MKEY)よりも小さいサイズであることを特徴とし、
−  前記提供されたキー(AKEY)を前記メインキー(MKEY)のサイズまで完成するために水増しデータを付加する工程と、
−  水増しビットが結果としてのキー(DKEY)の全てにわたって展開されるように前記水増しデータを前記提供されたキー(AKEY)と混合する工程と
に従って、前記提供されたキー(AKEY)から前記メインキー(MKEY)を求めることに存する、請求項１記載の方法。
【請求項３】
前記第１値(A1)を求めるために前記メインキー(MKEY)と混合される前記定数が、第１定数がロードされたLFSRを用いて、擬似ランダムに生成されることを特徴とする、請求項１又は２記載の方法。
【請求項４】
前記対称暗号化モジュール(SENC)の入力サイズが前記第７値(A7)のサイズより小さい場合、その第７値(A7)を２の倍数で分割して、前記対称暗号化モジュール(SENC)の入力サイズまで結果としての部分を２つずつ混合する工程を含むことを特徴とする、請求項１ないし３いずれか１項に記載の方法。
【請求項５】
定数を、前記代替レイヤ(sigma)に適用される前に前記第４値(A4)に付加することを特徴とする、請求項１ないし４いずれか１項に記載の方法。
【請求項６】
水増しデータが前記提供されたキー(AKEY)に付加されている間に、前記代替レイヤ(sigma)の入力値(A6)の全ビットに転換がなされることを特徴とする、請求項２ないし５いずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１シード或いはキーに基づき暗号的に確保された擬似ランダム系列を生成する方法に関する。
【背景技術】
【０００２】
数多くの場合、基本キーに依存しているデータの系列を生成する必要がある。応用の第１分野は、例えば１０秒毎に生成されかつピンコードに加えて要求される識別番号である課題を生成することである。この番号は短時間の間だけ有効であり、第３者から任意の再現を回避する。そうした生成器は、識別の目的のために印刷されてユーザに送信された古い取消線リストを取り替えることを目指している。
【０００３】
応用の別の分野は、多数の周回を用いる暗号化アルゴリズムにおけるサブキーの生成である。次いで、第１キーが多数のサブキーを作り出すために拡張され、それらの各々は対応する１つの周回に適用される。そうした多数の周回暗号方法の一例は、米国特許第５，２１４，７０３号（特許文献１）に記載されている。
【特許文献１】米国特許第５，２１４，７０３号
【０００４】
そうした生成方法の２つの特性、即ち、一方の系統を知りつつ他方の系統（或いはシード）の非予測性といずれか一方における系統の再生とを予想している。この最後の特性は、その系統が解読が逆順で複数のサブキーを使用するために必要であるので、その系統が暗号化サブキーとして使用される際に特に使用される。
【０００５】
共通した解決策は、シード或いはメインキーをＬＦＳＲ（論理フィードバックシフトレジスタ）に適用することである。ＬＦＳＲ生成器は、全ての演算が線形的であるので、線形帰納的系統（ＬＲＳ）と呼称されるものを作り出す。一般的に言えば、反復が生じる前の系統の長さは２つのこと、即ち、フィードバックタップ及び初期状態に依存する。いかなる所与のサイズｍ（レジスタの数）からなるＬＦＳＲは期間Ｎ＝２ｍ−１の間、あらゆる可能性ある状態を作り出すことできるが、適切なフィードバックタップ或いは期間が選択された場合のみにそうする。そうした系統は最大限長系統、最大限系統、或いは、一般的ではないが最大長系統と呼称される。
【０００６】
既知の方法はそうしたシフトレジスタの出力を使用して、ブロック毎にサブキーを生成して、暗号化プロセスの周回に供給する。
【０００７】
１つの生成された系統を知ることによって、他の系統或いはシードにアクセスする可能性を開く方法は一般的に受け入れられている。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
この発明の目的は、メインキーに基づき系統或いはサブキーを生成する方法を提案することであり、その場合、各サブキーがメインキー或いは他の任意のサブキーを回復する情報を何ら付与しない。
【課題を解決するための手段】
【０００９】
上記目的はメインキー（ＭＫＥＹ）に基づきサブキーを生成する方法によって達成され、当該方法が、
−  前記メインキー（ＭＫＥＹ）を定数と混合することで線形多様性レイヤを前記メインキー（ＭＫＥＹ）に適用することによって第１値（Ａ１）を求める工程と、
−  前記第１値（Ａ１）に非線形変換を適用する工程とを含み、
この変換が、
−  代替レイヤに前記第１値（Ａ１）を適用することによって第２値（Ａ２）を求める工程であり、その代替レイヤが少なくとも１つの代替ボックス（ｓｂｏｘ）を含み、各代替ボックスが、入力がポインタとして機能し、ポイントされた定数が出力として機能する複数の定数からなる少なくとも１つのテーブルを収納することからなる工程と、
−  前記第２値（Ａ２）に基づき、多数順列タイプからなる拡散ボックスを用いることによって、第３値（Ａ３）を求める工程と、
−  前記第３値（Ａ３）を同一サイズのＮ個のブロックに分割して、Ｎ個のブロックによって形成された出力第４値（Ａ４）を求める工程であり、その第４値（Ａ４）の各ブロックが前記第３値（Ａ３）のＮ−１個のブロックの組み合わせの結果であり、紛失ブロックが同一インデックスのブロックであることからなる工程と、
−  前記第４値（Ａ４）に代替レイヤ（ｓｉｇｍａ）を適用することによって第７値（Ａ７）を求める工程と、
−  前記第７値（Ａ７）に対称暗号化モジュール（ＳＥＮＣ）の前記第７値（Ａ７）を適用することによって前記サブキー（ＲＫＥＹ）を求める工程であり、前記第１値（Ａ１）がこのモジュールに対するキー入力として機能する工程と、
を含む。
【００１０】
この方法は以下のように要約され、即ち、線形多様性モジュールに基づく第１レベルと、非線形多様性モジュールに基づく第２レベルとである。
【００１１】
線形多様性はメインキーを擬似ランダム値と混合することによって達成される。この擬似ランダム値を作り出す１つの共通した方法は、ＬＦＳＲ関数を利用することである。この関数は、複数の定数からなるテーブルを記憶する必要性無しに、値を迅速に生成するために使用される。
【００１２】
ＬＦＳＲは第１定数がロードされて、キー長の同一長のビットストリームを作り出すためにシフトされる。次いで、このビットストリームはメインキーと混合されて（ＸＯＲ）、値Ａ１を作り出す。
【００１３】
第２レベルの目的は、値Ａ１の非線形多様性を作り出すことである。
【００１４】
このレベルは５つのメインレイヤを含む。第１レイヤは代替レイヤである。
【００１５】
代替レイヤの目的は、入力値を任意の単純な代数的関係無しに出力値に変換することである。予想される混乱結果を達成する最も迅速な方法は、複数の定数を含む検索テーブルを使用することである。
【００１６】
この実施例において入力データは３２ビットの長さを有するので、定数の数は３２ビット長の各々で２３２である。
【００１７】
好適実施例に従えば、入力データは８ビット長のグループで分割され、複数の定数の数を２５６バイトまで低減する。
【００１８】
次いで、３２ビット或いは６４ビットの入力データは８ビットのバイトに分割され、代替ボックスに適用されて、８ビットの出力を求める。この入力データはアドレスポインタとして使用され、その指し示された定数は出力である。
【００１９】
この具現化方法に依存して、定数テーブルは入力データ（３２ビット或いは６４ビット）全てのグループに対して同一である。別の実施例において、定数テーブルは入力データの各グループに対して異なる。
【００２０】
このテーブルに記憶された定数は、全てが異なってテーブル幅と同等の多数のビットによってコード化された数からなる固定された順列である。
【００２１】
この非線形レベルの第２メインレイヤは多数順列行列である。この多数順列行列は、あらゆる可能性ある正方サブ行列がゼロの異なる行列式を有する、即ち、行列の要素が有限フィールドの要素であるという属性を伴う正方行列である。混合演算は入力要素のベクトルを行列によって乗算することから成り、出力となるように規定されるベクトルを生じる。
【００２２】
第３レイヤは混合レイヤである。入力値は同一サイズを有する幾つかのブロックに分割される。所与の入力ブロックｉに対して、出力ブロックｉはブロックｉを除いた全ての入力ブロックのＸＯＲ関数の結果である。
【００２３】
第４レイヤは別の代替レイヤであり、それは同一演算を第１レイヤとしての入力値に適用する。
【００２４】
第５レイヤは、多数周回暗号化方法の単一暗号化工程である。入力値は先行するレイヤの結果であり、キーは線形多様性レイヤ、即ちＡ１の結果から取り込まれる。
【００２５】
様々な暗号化方法は、ＤＥＳ、ＣＡＳＴ、或いは、ＩＤＥＡ等で適用され得る。このレイヤの目的は良好な多様性を確保すること、即ち、入力データの高拡散を達成することである。
【００２６】
本発明の特定の実施例において、興味深いことは暗号化周回に対しても先行するレイヤを再利用することである。これは、既知の暗号化周回を再利用する代わりに、以下の工程が出力値ＲＡを求めるために入力値Ａ５に対して暗号化周回として実行される理由である。即ち、
−  入力値Ａ５を少なくとも２つの値Ｙ０Ｌ及びＹ０Ｒに分割する工程、
−  前記少なくとも２つの値Ｙ０Ｌ及びＹ０Ｒを混合して混合値Ｙ１を形成する工程、
−  値Ａ１の第１部Ａ１Ｈを値Ｙ１と混合することによって値Ｙ２を求める工程、
−  前記値Ｙ２を代替レイヤに適用することによって値Ｙ３を求める工程であり、その代替レイヤが少なくとも１つの代替ボックス（ｓｂｏｘ）を含み、各代替ボックスが、入力がポインタとして機能し、ポイントされた定数が出力として機能する複数の定数からなる少なくとも１つのテーブルを収納することからなる工程、
−  前記値Ｙ３に基づき多数順列タイプの拡散ボックスを用いることによって値Ｙ４を求める工程、
−  前記値Ａ１の第２部Ａ１Ｌを前記値Ｙ４と混合することによって値Ｙ５を求める工程、
−  前記値Ｙ５に代替レイヤを適用することによって値Ｙ６を求める工程、
−  前記サブキーＲＡの第１部ＲＡＨを前記値Ｙ６と混合することによって値Ｙ７を求める工程、
−  前記値Ｙ７を初期的な少なくとも２つの値Ｙ０Ｌ及びＹ０Ｒと混合して、この暗号化周回の出力値ＲＡを表現する少なくとも２つの値Ｙ８Ｌ及びＹ８Ｒを求める工程。
【００２７】
別の実施例に従えば、付加的な変換が代替レイヤに適用される前の値Ａ４に付加される。
【００２８】
この変換は定数を伴う単なる加算であり、ＸＯＲ関数によって実行される。
【００２９】
提供されるキー長がメインキーＲのサイズと異なる場合、現行キーがメインキー以外の同一サイズを有するように先ず調整されるべきである。
【００３０】
その現行キーがメインキーよりも大きい場合、キーは切り捨てられ、残存ビットがその切り捨てられた部分に付加される（ＸＯＲ関数）。
【００３１】
現行キーのサイズがメインキーよりも小さい場合、水増しが付加される。この水増しが多様性の品質を低減することを回避するため、この水増しは現行キーとシャッフルされて（混ぜられて）、水増しビットが結果としてのキーの全てにわたって展開される。
【００３２】
先の特性は以下の長所を有するサブキーを生成することを許容する。即ち、
−  暗号的な安全
−  双方向、即ち、順逆方向モードでの生成
−  好ましくは８ビットブロックの可変長のメインキーの使用。
【発明を実施するための最良の形態】
【００３３】
図１はこのキー生成の主要構造を記載している。第１段階はキー長調整ＬＡである。この例における入力キーＡＫＥＹは予想されるサイズより小さなサイズを有する。プロセスＰＰｒはそのサイズが公称サイズとなるように入力キーＡＫＥＹに水増しデータを付加する。この水増しデータはキーの最後に単純に付加される。結果としてのキーＰＫＥＹは公称サイズ、例えば、１２８或いは２５６ビットの公称サイズを有する。
【００３４】
第２プロセスは水増しシャッフルプロセスＭＰｒである。キー内に水増しデータを混合して、該水増しデータが必ずしも同一位置にないようにすることが重要である。この混合はフィボナッチ帰納法(Fibonacci recursion)を介してなされ、それは（ビットで表現される）長さｅｋを伴うキーＰＫＥＹを入力としてとる。より形式的には、水増しされたキーＰＫＥＹはｅｋ／８バイトＰＫＥＹ１（８）、０＜＝Ｉ＜＝ｅｋ／８−１からなるアレイとして見られ、
MKEYｉ（８）＝PKEYｉ（８）▲＋▼（MKEYｉ−１（８）＋MKEYｉ−２（８）mod2８） 0<=i<=ek/8-1
に従って混合される。
【００３５】
次の段階は、線形多様性部ＤＰｒである多様性段階ＬＤである。入力キーが既に予想されたサイズを有する場合、このキーはＭＫＥＹレジスタ内に直接ロードされる。
【００３６】
この多様性部Ｄｐｒの目的は、キーＭＫＥＹを初期化ベクトルと混合することによってキーＭＫＥＹの線形多様性を作り出すことである。生成された各サブキーに対して、初期化ベクトルは異なる。相互に異なる実施例はこの初期化ベクトルを作り出すために使用され得る。
【００３７】
最も簡単な方法は複数の定数からなるアレイを記憶することであり、各定数はキーサイズを除いて同一サイズを有するとともに初期化ベクトルとして作用する。初期化ベクトルの数は暗号化プロセス用に使用される周回の数、或いは、システムによって使用されるサブキーの数に依存する。
【００３８】
第２実施例において、初期化ベクトルは、線形フィードバックシフトレジスタＬＦＳＲを用いて擬似ランダムストリームに基づく多様性部ＤＰｒを介して生成される。初期定数がこのＬＦＳＲ（この例では２４ビット）にロードされ、このレジスタの出力、即ち、初期化ベクトルはキーＭＫＥＹと混合されて、キーＤＫＥＹを作り出す。
【００３９】
この実施例は記憶されたデータの量を最少化するための長所を有し、その理由は、初期化ベクトルが記憶されずに、ＬＦＳＲで生成され、初期定数だけが記憶されるか或いはアルゴリズムの部分であるためである。
【００４０】
第３実施例において、キー自体はＬＦＳＲにロードされ、そのＬＦＳＲ出力は直接的には次のモジュール、即ち、キーＤＫＥＹの入力である。
【００４１】
次の段階は、非線形多様性段階ＮＬＤと呼称され、非線形モジュールＮＬｘＰＲである。この段階は図２及び図３に詳細に記載されている。
【００４２】
図２において、キーＤＫＥＹ（値Ａ１と対応する）は４つの部分に分割され、代替レイヤｓｉｇｍａに適用され、その代替レイヤが少なくとも１つの代替ボックス（ｓｂｏｘ）を含み、各代替ボックスが、入力がポインタとして機能し、ポイントされた定数が出力として機能する複数の定数からなるテーブルを収納する。出力データＡ２はｓｉｇｍａボックスの出力である。その定数テーブルを生成する１つの方法は、擬似ランダム生成器を使用することである。テーブルを生成する際、全ての複製値を該テーブル内の各定数が一意的となるように除去する。
【００４３】
この具現化例に依存して、代替ボックス（ｓｂｏｘ）の数は、本実施例における各ボックスが８ビットデータ入力を有するので変動し得る。ｓｉｇｍａモジュールに適用された入力データは８ビット長の部分に分割されて、代替ボックスに適用される。次いで各ボックスの出力は連鎖されて、モジュールｓｉｇｍａの出力を形成する。
【００４４】
次の段階は多数数列タイプｍｕの行列である。この行列は（ｎ，ｎ）多数数列タイプの拡散ボックス内である。１つのｍｕブロックの入力はｎ個の入力ベクトルに分割される。この例に対して、４要素からなる行列を選択する。拡散ボックスは、４つの入力ベクトル（Ａａ，Ａｂ，Ａｃ，Ａｄ）に、２５６要素を伴う有限フィールドに属する要素を有する正方行列４ｘ４  Ｍｕ４によって乗算することに存し、それら要素はＭｕ（ｉ，ｊ）で示され、ここでｉは行インデックスを示し、ｊは列インデックスを示す。入力ベクトル（Ａａ，Ａｂ，Ａｃ，Ａｄ）の行列Ｍｕ４による乗算の結果は、ベクトル（Ｙａ，Ｙｂ，Ｙｃ，Ｙｄ）であり、これら値は以下のようにして求められる。
Ｙａ＝Ｍｕ４（１，１）＊Ａａ＋Ｍｕ４（１，２）＊Ａｂ＋Ｍｕ４（１，３）＊Ａｃ＋Ｍｕ４（１，４）＊Ａｄ
Ｙｂ＝Ｍｕ４（２，１）＊Ａａ＋Ｍｕ４（２，２）＊Ａｂ＋Ｍｕ４（２，３）＊Ａｃ＋Ｍｕ４（２，４）＊Ａｄ
Ｙｃ＝Ｍｕ４（３，１）＊Ａａ＋Ｍｕ４（３，２）＊Ａｂ＋Ｍｕ４（３，３）＊Ａｃ＋Ｍｕ４（３，４）＊Ａｄ
Ｙｄ＝Ｍｕ４（４，１）＊Ａａ＋Ｍｕ４（４，２）＊Ａｂ＋Ｍｕ４（４，３）＊Ａｃ＋Ｍｕ４（４，４）＊Ａｄ
ここで、「＋」は有限フィールドにおける加算を意味し、「＊」はその乗算を意味する。Mu4の要素は、４つの上記式を求めるために必要とされる計算量が最小となるように選択される。従って、定数「１」による乗算（以降「恒等式」を意味する）の数は、できるだけ大きくなるように選択されている。
【００４５】
ｍｕブロックの出力値Ａ３は４つの出力値Ｙａ，Ｙｂ，Ｙｃ，Ｙｄの連鎖である。
【００４６】
次の段階は混合工程である。それは値Ａ３を同一サイズのＮ個のブロックに分割することに存するとともに、Ｎ個のブロックによって形成される出力値Ａ４を求めることに存し、値Ａ４の各ブロックは値Ａ３のＮ−１個のブロックの組み合わせの結果であり、紛失ブロックが同一インデックスのブロックである。
【００４７】
図２の例において、ブロックの数は４である。３つの残存ブロックは一体的に混合されて、値Ａ４の部分を形成する。
【００４８】
次の段階は加算器段階であり、それは定数を予測不可能な要素をプロセス中に挿入させるように加算する。
【００４９】
結果としての値Ａ５は条件付きインバータに適用されるが、この転換は水増しデータが入力キーＡＫＥＹに加算される際に可能となる転換である。可能となると、値Ａ５の全ビットは転換されて、値Ａ６を求める。この転換は、水増しデータが入力キーＡＫＥＹに加算される場合になされる。この段階の目的は、フルサイズキーが使用されかつ水増しキーの場合に異なる振る舞いを有することである。フルサイズキーは、より小さなキーが入力されかつ水増しデータが加算される際に理論的には同一値を有し得る。水増し情報が加算されて期待されたサイズを有するように入力キーを完成すると、データＡ５の転換が生成プロセスの経過中に付加的な多様性を導入するようになされる。
【００５０】
次いで結果としての値Ａ６は、既に先に記載された代替レイヤｓｉｇｍａに適用される。
【００５１】
代替レイヤＡ７の出力値は、２つの要素を混合することによってサイズに関して半分まで低減される。
【００５２】
次いで、この低減された値Ａ８は対称暗号化モジュールＳＥＮＣに適用され、そこではキーがプロセスのメイン入力から取り出される（即ち、ＤＫＥＹ）。既に述べたように、このモジュールは基本的には単純な対称暗号化プロセスである。この発明の構成において、ＩＤＥＡ、ＤＥＳ等々周知の暗号化プロセスを用いる代わりに、暗号化プロセスは本願と同一出願人のＥＰ０３０１１６９６．６（特許文献２）に記載されたプロセスを用いることで実行される。この文献は引用することで本願に含ませる。周回の最少数は、キーＤＫＥＹ全体が使用されるように決定される。そのキーが暗号化工程の入力サイズよりも長いので、そのキーは分割されて、連続的に接続された異なる周回に適用される。
【特許文献２】ＥＰ０３０１１６９６．６
【００５３】
この暗号化プロセスは図４ないし図７を参照して記載される。
【００５４】
図４は、モジュールＭＯＤを示す暗号化プロセスの概略図を示している。それぞれ３２ビットの２つの部分Ｘ０Ｌ及びＸ０Ｒで表されるこの例における６４ビットのエントリデータは、最初に、混合要素ＭＸの中で混合されて、Ｘ１値を求める。この混合要素は３２ビットデータの２倍の３２ビット画像を提供するのを目的とする。これは、ＸＯＲ関数、剰余加算、もしくは、あらゆるグループ法を用いること等の異なる方法でも達成されできるであろう。
【００５５】
次の工程は、サブキーＤＫを使用するだけでなく、３２ビットの入力Ｘ１と３２のビットの出力Ｘ７を含むブロックｆ３２で示される。このブロックの詳細な説明は図７について与えられる（以下を参照のこと）。
【００５６】
ブロックｆ３２の出力Ｘ７は、２つのエントリＸ０Ｌ及びＸ０Ｈと接続される２つの混合ブロックＭＸに適用される。
【００５７】
結果として生じるデータＸ８Ｌ及びＸ８ＲはモジュールＭＯＤの２つの６４ビットの出力Ｘ８を表す。
【００５８】
図５は、２つの同等モジュールＭＯＤ、即ち、ＭＯＤ１及びＭＯＤ２を用いる全体的な暗号化プロセスを示す。入力データＡ８は、それぞれ３２ビット長である２つの部分Ｘ０Ｌ１及びＸ０Ｒ１によって形成される。
【００５９】
対称暗号化プロセスは図２におけるＳＥＮＣで参照される。このモジュールは図５のブロック図と対応する。
【００６０】
次いで、出力Ｘ０Ｌ１及びＸ０Ｒ１は第１モジュールＭＯＤ１におけるエントリとして使用される。この第１モジュールは、第１サブキーＤＫ１を用いながらデータを処理する。ＤＫ１はメインキーＤＫＥＹの一部である。Ｘ０Ｌ１及びＸ０Ｒ１に対する処理は、図４に従って記載されたものと同一である。この第１モジュールＭＯＤ１の出力は２つの出力Ｘ８Ｌ１及びＸ８Ｒ１である。オルトモーフィズム（orthomorphism）関数はこれら出力の内の一方、例えば図５に示されるＸ８Ｌ１に適用される。このオルトモーフィズム関数から生じる出力はＸ０Ｌ２として参照される。第１モジュールＭＯＤ１による処理から生じる他方の値Ｘ８Ｒ１は、第２処理モジュールＭＯＤ２でのオルトモーフィズム関数から生じる出力Ｘ０Ｌ２とともに、入力として使用される。モジュールＭＯＲはモジュールＭＯＤの結果であり、このモジュールの出力の内の一方におけるオルトモーフィズム関数ＯＲを伴う。
【００６１】
この第２モジュールＭＯＤ２は、それらの入力データをメインキーＤＫＥＹの第２部分ＤＫ２に基づき処理する。この第２モジュールの出力は図４上においてＸ８Ｌ２及びＸ８Ｒ２として参照される。これら出力は組み立てられて、アセンブラモジュールＡＳ内にサブキーＲＫＥＹを形成する。
【００６２】
このアセンブラモジュールＡＳの機能は、Ｘ８Ｌ２に対する最低ビットとＸ８Ｒ２に対する最高ビットとを選択するか、或いは、Ｘ８Ｌ２に対する各奇数ビットとＸ８Ｒ２に対する各偶数ビットとを選択することのような異なる方法でも達成できるであろう。結果としてのデータを組み立てる他の方法は、ＲＫＥＹの全てのビットがＸ８Ｌ２及びＸ８Ｒ２に含まれる限り、ＲＫＥＹが使用できるであろう。
【００６３】
図７は、図４のブロックｆ３２の機能を詳細に示す。このブロックにおいて、３２ビット長データＸ１は入力である。このデータは、図７においてＸ１’とも言われる分割ブロックＳＰＭＵを介して８ビット長の各ブロック（Ｘ１ａ，Ｘ１ｂ，Ｘ１ｃ，Ｘ１ｄ）に分離される。
【００６４】
このブロックは、結果としての値Ｘ１ａ，Ｘ１ｂ，Ｘ１ｃ，Ｘ１ｄの全ビットがＸ１内に存するように入力データＸ１を分割する機能を有している。これら４つの値は、４つの値Ｘ２ａ，Ｘ２ｂ，Ｘ２ｃ，Ｘ２ｄを形成すべく係わるモジュール（ＭＯＲ或いはＭＯＤ）に依存するＤＫ１或いはＤＫ２であり得るキーＤＫの最高値ＤＫＨと混合される。
【００６５】
２つのサブキーＤＫＬ及びＤＫＨの生成は分割モジュールＳＰを介してなされる。
【００６６】
これら値Ｘ２ａないしＸ２ｄの各々は、少なくとも１つの代替ボックス（ｓｂｏｘ）を含み、各代替ボックスが、入力がポインタとして機能し、ポイントされた定数が出力として機能する複数の定数からなるテーブルを収納することからなる代替レイヤに適用される。出力データは図７上において、Ｘ３ａ，Ｘ３ｂ，Ｘ３ｃ，Ｘ３ｄ（値Ｘ３を形成する）として参照される。
【００６７】
この代替レイヤは、モジュールｓｉｇｍａを記載する一方で図２を参照して既に記載されている。結果としての値はＸ３である。
【００６８】
同一のことが図２のｍｕモジュールと対応するＭｕ４モジュールに適用される。結果としての値がＸ４である。
【００６９】
次いで、データの出力データＸ４はサブキーＤＫの第２部分ＤＫＬと混合されて、値Ｘ５ａ，Ｘ５ｂ，Ｘ５ｃ，Ｘ５ｄ（値Ｘ５を形成する）を求める。
【００７０】
次いで、これら値Ｘ５ａないしＸ５ｄの各々は、代替ブロック（ｓｂｏｘ）に適用されて、値Ｘ６ａ，Ｘ６ｂ，Ｘ６ｃ，Ｘ６ｄ（値Ｘ６を形成する）を求める。これら値はサブキーＤＫの第１部分ＤＫＨと混合されて、新しい値Ｘ７ａ，Ｘ７ｂ，Ｘ７ｃ，Ｘ７ｄ（値Ｘ７を形成する）を求める。
【００７１】
次いで、これら値Ｘ７ａ，Ｘ７ｂ，Ｘ７ｃ，Ｘ７ｄは組み立てられて、図５に関して説明されたアセンブラモジュールＡＳ内に出力データＸ７を形成する。このデータは図４におけるブロックｆ３２の出力データＸ７と対応する。
【００７２】
図６はオルトモーフィズム関数の実施例の図示である。入力データはＺＩで示され、出力データはＺＯで示されている。そのデータ長は本機能のために検討すべき問題ではない。入力データＺＩは分割モジュールＳＰによって同一サイズの２つの値ＺＬ及びＺＲに先ず分割される。次いで、それら２つの値はいわゆるＭＸ混合要素と混合され、その要素の出力はアセンブラユニットＡＳに適用される。他の分割値ＺＲは変更なしにアセンブラユニットＡＳに直接適用される。このモジュールは２つの入力を含み、それらデータを組み合わせて出力値ＺＯを形成する。このモジュールは分割モジュールＳＰとは逆に作業する。この実施例の特殊性は、アセンブラモジュールの入力が分割モジュールＳＰの出力に対してクロスされるということである。分割モジュールＳＰの右出力ＺＲはアセンブラモジュールＡＳの左入力に適用され、分割モジュールＳＰの左出力は、分割モジュールＳＰの他の出力との混合後、アセンブラモジュールＡＳの右入力に適用される。
【００７３】
図３はメインキーＤＫＥＹに基づきサブキーＲＫＥＹを作り出す別の実施例である。制限されたサイズのデータを処理することがだけができるモジュールに直面しながら、より長いキーが処理される場合、入力キーＤＫＥＹをより多くの要素に分割して、それらを並列に取り扱う必要がある。図２に関して記載された原理は、値Ａ４を形成しながら、１つの例外を伴って同一のものを維持する。
【００７４】
簡略化の目的のため、値Ｘ３から一体的に混合された要素の数は３つに限定されている。
【００７５】
対称暗号化プロセスＳＥＮＣの段階で、入力キーＤＫＥＹは４つの部分に分割されて、３つの独立した暗号化モジュールＭＯＲ６４に適用され、これらモジュールは結果としての値の半分に適用されるオルトモーフィズム関数を有する。最後のモジュールＭＯＤ６４は、オルトモーフィズム関数無しの１つの周回暗号化プロセスである。
【００７６】
値Ａ８からＲＫＥＹまで、暗号化プロセスは４つの周回で実行され、各周回は入力キーＤＫＥＹの一部を用いる。最初の３つの周回はモジュールＭＯＲを用い、即ち、ＭＯＤモジュールの出力の１つにオルトモーフィズム関数を有し、最後の周回はタイプＭＯＤであり、即ち、オルトモーフィズム関数無しである。
【００７７】
１つの重要な点は、逆順でサブキーを生成することである。この特殊性は、サブキーが多数周回の暗号化プロセス中に使用される際に有用である。
【００７８】
これは、線形多様性部ＤＰｒの段階で達成される。キーＭＫＥＹと混合すべく使用される複数の初期化ベクトルからなる集合は逆順で適用される。初期化ベクトルがＬＦＳＲによって作り出されると、レジスタが逆順でクロックされ（後方プロセス）、レジスタにロードされた初期値は前方プロセス中に使用される最後の初期化ベクトルを表現する終末値である。
【図面の簡単な説明】
【００７９】
【図１】図１はメインキーに基づくサブキーの生成のブロック図を示す。
【図２】図２は１２８ビット入力キー及び６４ビット出力に基づく非線形モジュールを示す。
【図３】図３は２５６ビット入力キー及び６４ビット出力に基づく非線形モジュールを示す。
【図４】図４は暗号化プロセスにおけるメインモジュールのブロック図を示す。
【図５】図５は２つのＭＯＤモジュールとオルトモーフィズム関数ＯＲとを用いる暗号化プロセスを示す。
【図６】図６はオルトモーフィズム関数のブロック図を示す。
【図７】図７はメイン暗号化モジュールＭＯＤの内部を示す。
【図１】
2007532935.tif 000003
【図２】
2007532935.tif 000004
【図３】
2007532935.tif 000005
【図４】
2007532935.tif 000006
【図５】
2007532935.tif 000007
【図６】
2007532935.tif 000008
【図７】
2007532935.tif 000009
【手続補正書】
【提出日】平成18年1月19日(2006.1.19)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】  この多様性部ＤＰｒの目的は、キーＭＫＥＹを初期化ベクトルと混合することによってキーＭＫＥＹの線形多様性を作り出すことである。生成された各サブキーに対して、初期化ベクトルは異なる。相互に異なる実施例はこの初期化ベクトルを作り出すために使用され得る。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】  次の段階は、非線形多様性段階ＮＬＤと呼称され、非線形モジュールＮＬｘＰｒである。この段階は図２及び図３に詳細に記載されている。
【国際調査報告】
2007532935.tif 000010
2007532935.tif 000011
2007532935.tif 000012