(57)【特許請求の範囲】
【請求項１】
複数のブロック暗号装置を用いる暗号化によりセキュリティを確保するデジタル通信システムであって：
デジタル信号を暗号化し且つ復号化するように、第１固定長の選択的可変キーに対応する第１ブロック暗号装置であって、暗号化段階を有する、第１ブロック暗号装置；および
デジタル信号を暗号化し且つ復号化するように、第１固定長の選択的可変キーと異なる第２固定長の選択的可変キーに対応する第２ブロック暗号装置；
を有する通信システムであり、
前記暗号化段階の演算を禁止することにより、前記第２ブロック暗号装置により暗号化されたデータを復号化するように、前記第１ブロック暗号装置を制御するための手段を備えている；
ことを特徴とする通信システム。
【請求項２】
請求項１に記載の通信システムであって、前記第１固定長の選択的可変キーの長さは前記第２固定長の選択的可変キーの長さの２倍である、ことを特徴とする通信システム。
【請求項３】
請求項２に記載の通信システムであって、前記制御するための手段は、前記第１固定長の選択的可変キーとして、前記第２固定長の選択的可変キーを二重に使用し且つ反復するための手段を含む、ことを特徴とする通信システム。
【請求項４】
複数のブロック暗号装置を用いる暗号化によりセキュリティを確保するデジタル通信システムにおいてブロック暗号装置を制御する方法であって：
デジタル信号を暗号化し且つ復号化するように、第１固定長の選択的可変キーの関数の演算を可能にする第１ブロック暗号装置；および
デジタル信号を暗号化し且つ復号化するように、第１固定長の選択的可変キーとは異なる第２固定長の選択的可変キーの関数の演算を可能にする第２ブロック暗号装置；
を有するシステム、における方法であり:
前記第１ブロック暗号装置は暗号化段階；
を有する方法であり、
前記第１ブロック暗号装置及び前記第２ブロック暗号装置を制御するとき、第１ブロック暗号装置において前記暗号化段階の演算を禁止する段階を有する；
ことを特徴とする方法。
【請求項５】
請求項４に記載の方法であって、前記演算を禁止する段階は、前記第２ブロック暗号装置の第２キーの２つの一連の反復に従うように、前記第１ブロック暗号装置の第１キーを修正する段階により達成される、ことを特徴とする方法。
【請求項６】
請求項４に記載の方法であって：
前記第１ブロック暗号装置の第１キージェネレータを与える段階であって、前記第１キージェネレータは２つの等しい部分を有し、それらの各々の部分は前記第２ブロック暗号装置の第２キージェネレータの機能をもつ複製である、段階；
前記第１キージェネレータの部分両方において第２キーを複製する段階；
第１ブロック暗号装置の第１暗号段階において信号を暗号化し且つ復号化するように２つの部分の１つにより与えられるシンボルを用いる段階；および
前記第１ブロック暗号装置の第２段階に適用される前記シンボルをキャンセルするように前記第１キージェネレータの前記２つの部分により与えられるシンボルを結合させる段階；
を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルデータの暗号化ブロックおよび復号化ブロックに関し、さらに詳細には、少なくとも１つの自由に選択可能な制御ブロックを用い、２倍のキーの長さ及び著しく増加された暗号強度を有する改善されたブロック暗号を用いる一方、従来技術のシステムとの相互運用性のためのモードをさらに備えた、第１デジタルブロックを第２デジタルブロックにブロック毎に変換するための暗号方法および装置に関する。
【背景技術】
【０００２】
コマースにおいて急速に成長しているデジタル通信システムの利用は、少なくとも十分な長さの期間において一般的な“暗号解読法”またはクラッキング技術に対して安全である暗号システムの必要性を喚起している。Ｍａｓｓａｙ等による米国特許第５，２１４，７０３号明細書に開示されているような先行技術のシステムは、平文ブロックの暗号化および暗号文ブロックの復号化の両方のために適切であるブロック暗号装置を用いている。
【０００３】
本出願と共通の発明者を有し且つ同一出願人による、Ｋｕｒｄｚｅｉｌ等による米国特許第６，１０８，４２１号明細書に開示されているような先行技術は、標準的な暗号解読技術に対して無防備でなく且つカスタマイズすることが可能である拡張可能なブロック暗号装置に関するものである。
【０００４】
ロバストな且つ改善された暗号化データのセキュリティを提供するために複数の暗号化を用いることが知られている。しかしながら、そのような複数の暗号化スキームは不利点を有する。複数の暗号化スキームは、暗号システムによる複数回のインタラクションを必要とする。二重のハードウェアブロックの場合、これはハードウェアレンダリングにおけるゲートカウントおよび電力消費を二倍または三倍にする。単一ブロックの実行が繰り返される場合、暗号システムが機能することができる最大速度は、必要とされるインタラクションの回数に応じて二分の一または三分の一に減少する。
【０００５】
さらに、複数の暗号化スキームは、暗号方法が“群”として知られている数学関数でない必要がある。暗号方法が群である場合、複数の暗号化スキームにおいてそれを用いることにより、セキュリティの改善は得られない。このことの重要性は、暗号システムは群でないことを結果的に証明することがしばしば不可能であることである。実際には、群の挙動を近似する暗号システムが複数の暗号化スキームにおいて用いられるとき、少なからずセキュリティのもろさを出すことである。
【０００６】
それ故、拡張可能であってカスタマイズ可能であり、複数の暗号化スキームの改善された暗号強度全てを備えているが、複数の暗号化に関連する深刻な不利点を伴わないブロック暗号装置が要請されている。
【発明の開示】
【課題を解決するための手段】
【０００７】
したがって、本発明の目的は、有効な暗号解読またはクラッキング技術に対して安全である新規な拡張可能ブロック暗号装置を提供することである。
【０００８】
本発明の他の目的は、従来技術の暗号装置との互換性を保ちつつ、改善されたセキュリティを備えた新規な拡張可能ブロック暗号装置を提供することである。
【０００９】
本発明の他の目的は、ハードウェアレンダリングのゲートカウントにおいて比例して増加せずに、二倍の暗号強度を有する新規なブロック暗号装置を提供することである。
【００１０】
本発明の上記のおよび多くの他の目的および有利点については、本発明の同時提出の請求項、添付図面および以下の本発明の好適な実施形態の詳細説明に関連することを、当業者は容易に理解するであろう。
【発明を実施するための最良の形態】
【００１１】
図１を参照するに、ブロック暗号装置１００は非再帰的であり、入力ユニット（図示せず）、９個の暗号化ステージ１乃至８および１２、出力ユニット（図示せず）およびキースケジューリングユニット９を含むことが可能である。
【００１２】
入力ユニットおよび出力ユニットは、ブロック暗号装置１００におよびその装置からの入力および出力データを集め、およびバッファリングする。入力ユニットおよび出力ユニットの構造は、一般に、アプリケーション（例えば、直列または並列）に依存する。入力ユニットおよび出力ユニットはブロック暗号装置１００に一意ではない。
【００１３】
ブロック暗号装置は３つの入力変数Ｘ、Ｚ１およびＺ９を受信し、出力変数Ｙを生成する。Ｘはブロック暗号装置１００への１次トラフィック入力であり、Ｙは１次トラフィック出力である。Ｚ１及びＺ９は外部から適用される変数とすることが可能である。Ｚ９は、暗号化または復号化に先立ち、セキュアチャネル（例えば、シールドカバーを有するクーリエ）を介してブロック暗号装置１００に入力される秘密“キー”変数とすることが可能である。Ｚ１（または、“顧客アルゴリズム修正”変数）とＺ１のサブユニット（即ち、Ｚ２、Ｚ３、Ｚ５およびＺ６）は、ブロック暗号装置１００の第１、第２、第３、第４および第５ユニット１、２、３、４及び５において演算される。ブロック暗号装置１００の出力Ｙは、一次トラフィックＸ、キー変数Ｚ９および変数Ｚ１の一意の関数である。
【００１４】
図１を継続して参照するに、各々の暗号化段階は少なくとも６４ビットＩ／Ｏ空間を有する。暗号化段階１、５、６および８は、モジュラ演算ロジックから成る。段階１、５および８はモジュラ加算を実行し、段階６はモジュラ３乗化演算を実行する。各々の段階は異なるモジュールを用いる。段階７は不可逆的な“中間変換”である。さらに、段階１、５、６、７および８は、より低いレベルの演算の集合にセグメント化されない。これらのデザインの特徴は、一般的な“暗号解読法”またはクラッキング技術に対してブロック暗号装置を安全にする。
【００１５】
段階２および４は“ニブルスワップ”ブロックである。これらのブロックは、外部から適用される入力Ｚ１に基づいて、アルゴリズムの構造が変化することを可能にする。段階３はカスタム化可能な代用／拡張ブロックである。これは、入力Ｗ２とＺ３および出力Ｗ３を伴うカスタム演算がブロック暗号装置構造に挿入されることを可能にする。これは、一意のアルゴリズム変数が実行されることを可能にする。ブロック３の構造は任意ではなく、安全な暗号デザインについての条件を満たさなければならない。カスタム代用／拡張ブロックのデザインは対象となるエンドユーザにのみに開示されている。
【００１６】
入力ユニット１０は、ブロック暗号装置１００に入力データをアセンブル且つバッファリングし、出力ユニットは、ブロック暗号装置１００から出力データをアセンブル且つバッファリングする。
【００１７】
段階１、５および８のような暗号化段階１２はモジュラ加算演算を実行する。キースケジューリングユニット９は、外部から適用される入力変数Ｚ９を受け入れ、３つの擬似ランダムビットパターンＺ４、Ｚ７およびＺ８を決定論的に生成する。それらのパターンは、ブロック１２、５および８のそれぞれのための演算として用いられる。
【００１８】
説明を容易にするために、図２、３、４および５は６４ビットブロックの実施について示している。６４ビットブロックは例示としてのみに用いられる。一般に、６４ビットブロックの実施においては、各々のユニットは少なくとも６４ビットの入力／出力空間を有する。いずれの入力または出力サイズを有する本発明のブロック暗号装置は、ブロック暗号装置の演算のサイズを適切にスケーリングすることによりデザインされる。
【００１９】
図２を参照するに、第１ユニット１は、第１ユニット１の出力Ｗ１を結果的に得る変数Ｚ１を有する１次トラフィック入力Ｘにおいてモジュロ（ｍｏｄｕｌｏ）２加算（排他的論理和）を実行する。
【００２０】
第２ユニット２はニブルスワップ演算を実行する。第２ユニット２は、Ｗ１をニブルの８個の対にセグメント化する、即ち、各々のニブルは４つのビットを有する。第２ユニット２は、第２ユニット２の出力Ｗ２を結果的にもたらすＺ２（例えば、Ｚ１のビット０乃至７）に基づく各々のセグメントを入れ替える。例えば、Ｚ２におけるビット“０”の値が二進数の“１”に等しいとき、ニブル対“０”の順序は入れ替えられる。同様に、Ｚ２におけるビット“０”が二進数の“０”に等しいとき、その順序は変化しないまま保たれる。各々のニブル対の順序は、Ｚ２における対応するビットの値により決定される。ビット０の値はニブル対０の順序を制御し、ビット１の値は、ニブル対７の順序を制御するビット７まで通して続くニブル対１の順序を制御する。
【００２１】
第３ユニット３は、カスタム代用および拡張ブロック演算を与えるカスタムユニットである。入力Ｗ２とＺ３および出力Ｗ３を用いるカスタム演算をルックアップテーブルの形式でブロック暗号装置１００に挿入することが可能である。Ｚ３はＺ１のビット２４乃至３１であることが可能である。カスタムユニットを与えることは、安全な暗号デザインの条件を満たしつつ、一意のシステム変数がデザインされ且つ与えられることを可能にする。例えば、ルックアップテーブルのカスタム化された代用または拡張演算は対象のエンドユーザのみに対して開示される。
【００２２】
第４ユニット４は、Ｗ８が１６個のニブルにセグメント化される他のニブルスワップ演算であることが可能である。Ｚ５（例えば、Ｚ１のビット２４乃至３１）は、第２ユニット２について説明した方法と僅かに異なる方法でＷ８の並べ替えを制御する。例えば、Ｚ５におけるビット“８”の値が二進数の“０”に等しいとき、その対における第１ニブルはＷ４の高次のセグメントにおける第１位置に書き込まれ、第２ニブルはＷ４の低次のセグメントにおける第１位置に書き込まれる。Ｚ５におけるビット“８”の値が二進数の“１”に等しいとき、２つのニブルはＷ４に書き込まれる前に入れ替えられる。第２ユニットと同様に、各々のニブル対の再順序付けはＺ５における対応するビットにより決定される。
【００２３】
第５ユニットはモジュロ加算演算を実行する。Ｗ４およびＺ７は第５ユニットのオペランドである。Ｗ４は第４ユニット４の出力であり、Ｚ７はキースケジューラユニット９からの出力である。その演算のモジュラスｑは次式によりＺ６を用いることにより決定される。
【００２４】
ｑ＝２１２８−Ｚ６    （１）
ここで、Ｚ６はＺ１のビット３３乃至６４とすることが可能である。
【００２５】
第６ユニット６はモジュラ３乗化演算を実行する。換言すれば、Ｗ５は３乗モジュロｐにされ、その結果はＷ６として表される。モジュラスｐは次式により決定される。
【００２６】
ｐ＝２１２５−Ｘ    （２）
変数Ｘは、演算“３”の次数と（ｐ−１）との間の最大公約数が１に等しくなるように選択される。これは次式で演算される。
【００２７】
ＧＣＤ（３，ｐ−１）＝１    （３）
第７ユニットは、例えば中間変換として知られる演算のような不可逆演算を実行する。演算Ｗ６に対する入力は長さで１２８ビットであり、演算Ｗ７の出力は長さで６４ビットである。その中間変換は、入力の６４ビットから出力の６４ビットへの簡単にマッピングする。例えば、中間変換は、Ｗ６のビット３０乃至９３をＷ７のビット０乃至６３にマッピングすることが可能である。Ｗ６におけるビットの残りは捨てられる。
【００２８】
第８ユニット８は他のモジュロ加算演算を実行する。Ｗ７及びＺ８はこのユニットのオペランドである。Ｗ７は第７ユニットからの出力であり、Ｚ８はキースケジューラ９からの出力である。その演算のモジュラスは２６４として選択される。この段階の出力はブロック暗号装置の出力であり、Ｙ１として指定される。
【００２９】
特定の値が第１、第５、第６および第８ユニット１、５、６および８のために指定されるが、ブロック暗号装置の目的は選択範囲により満足される。しかしながら、式（３）の制限が満足され、一意のモジュラスが各々の段階で用いられることが条件となる。“モジュロ”ユニット１、５、６および８は“不可逆”ユニット７と共に、低いレベルの演算の集合にセグメント化されない。
【００３０】
図３を参照するに、キースケジューラユニット９は、第１関数ユニット１３、第２関数ユニット１６、第３関数ユニット１５、第４関数ユニット１８、第５関数ユニット２２、第１シフトレジスタ１４、第２シフトレジスタ１７、第１モジュロ２加算論理ゲート１９、第２モジュロ２加算論理ゲート２０および第３モジュロ２加算論理ゲートを有する。
【００３１】
キースケジューリングユニット９は、変数Ｚ４、Ｚ７およびＺ８を生成するためにキー変数Ｚ９を処理する。それらの変数は、暗号化および復号化中に用いられる。Ｚ１０およびＺ１１は、キー変数Ｚ９の大きい方の半分および小さい方の半分の決定論的関数ｈである。Ｚ１０およびＺ１１は、第３関数ユニット１５および第４関数ユニット１８のそれぞれの出力であり、シフトレジスタ１４およびシフトレジスタ１７のそれぞれへの入力である。それらのレジスタの各々は、コンテンツが完全に再循環されるまでに同時に１ビット右にシフトされる。各々のシフトと共に、各々のレジスタにおける最も重要でないビットは、その関連する関数ユニット、即ち第１関数ユニット１３または第２関数ユニット１６の出力にモジュロ２加算される。その結果は各々のレジスタの最も重要なビット位置に移動される。第１シフトレジスタ１４及び第２シフトレジスタ１７のコンテンツが完全に処理されたとき、それらは、変数Ｚ７およびＺ１３としてそれぞれ、出力される。Ｚ７はキースケジューリングユニット９の３つの擬似ランダム出力の１つとなる。擬似ランダム出力Ｚ４を生成するために、Ｚ１３はＺ７にモジュロ２加算される。さらに、Ｚ１３は、可変擬似ランダム出力Ｚ８を生成するための第５関数ユニット２２への入力である。
【００３２】
第１関数ユニット１３及び第２関数ユニット１６はカスタムルックアップテーブルである。それらは、少なくとも６つの１ビット入力を単一の１ビット出力に対してマッピングする。第１関数ユニット１３及び第２関数ユニット１６への入力の各々は、第１シフトレジスタ１４および第２シフトレジスタ１７のそれぞれに接続された“タップ”である。タップの位置は、次の制限を用いて任意に選択されることができる。タップは何れも、シフトレジスタ１４およびシフトレジスタ１７における最も重要でないビット位置かまたは最も重要であるビット位置のどちらかに接続されることはない。第１関数ユニット１３及び第２関数ユニット１６の構造は任意ではなく、安全な暗号デザインの条件を満たさなければならない。第１関数ユニット１３及び第２関数ユニット１６は独立して指定されることができることに留意されたい。しかしながら、下で説明するように、ブロック暗号１００が米国特許第６，１０８，４２１号明細書に開示されている先行技術のブロック暗号と互換性があるモードで機能する場合、第１関数ユニットは、第２関数ユニットと同様に設定されなければならない。第１関数ユニット１３及び第２関数ユニット１６は、意図されたエンドユーザのみにカスタマイズされ且つ開示されることが可能である。
【００３３】
第５関数ユニット２２は、Ｚ８を生成するために、Ｚ１３の高次の半分および低次の半分のキャリなしでビットワイズモジュロ２加算を実行する。
【００３４】
第３関数ユニット１５と第４関数ユニット１８は、同じ長さのカスタムビットパターンとキー変数Ｚ９の各々の半分の各々のキャリなしで、ビットワイズモジュロ２加算を実行し、変数Ｚ１０およびＺ１１を生成する。第３関数ユニット１５および第４関数ユニット１８は独立して指定されることができることに留意されたい。しかしながら、下で説明するように、ブロック暗号１００が米国特許第６，１０８，４２１号明細書に開示されている先行技術のブロック暗号と互換性があるモードで機能する場合、第３関数ユニット１５は第４関数ユニットに等しく設定されなければならない。カスタムビットパターンの値は意図されたエンドユーザのみに開示される。
【００３５】
図２を参照するに、第９ユニット１２はモジュロ加算段階である。それは、出力Ｗ８を生成するために、キースケジューリングユニット９からのＺ４に第３ユニットの出力Ｗ３を加算する。出力Ｚ７およびＺ８は、第５ユニット５および第８ユニットのそれぞれへの入力として用いられる。
【００３６】
キースケジューリングユニット９の重要な特徴は、それが米国特許第６，１０８，４２１号明細書に開示されている先行技術のシステムのキー変数の長さの２倍であるキー変数Ｚ９を用い、それ故、著しく増加された暗号強度を提供することである。さらに、対称的なキー変数（即ち、上位半分と下位半分が等しい）が入力されるとき、Ｚ４は０に等しくなる。これは、暗号化ブロック１２の何れかの効果を無効にする。実際には、対称的なキー変数が入力されるとき、全ての演算は、ブロック暗号装置９が米国特許第６，１０８，４２１号明細書の先行技術のブロック暗号としての所定の入力のために同じ出力を生成するように評価する。重要なことには、著しく増加した暗号強度を有する一方、先行技術のブロック暗号を用いる装置との相互運用性のためのモードを尚も提供する２倍のキーの長さを有するブロック暗号装置１００の本発明の実施形態を用いるために装置をデザインすることができる。
【００３７】
条件付けされるとき、オリジナルのキー変数Ｚ９の値を回復することができる。変数Ｚ７およびＺ１３は、第１シフトレジスタ１４および第２シフトレジスタ１７のそれぞれにリロードされる。各々のレジスタは、コンテンツが完全に再循環されるまでに同時に１ビット左にシフトされる。各々のシフトに伴い、各々のレジスタにおける最も重要なビットは、第１関数ユニット１３および第２関数ユニット１６の出力にモジュロ２加算される。その結果は最も重要でないビット位置に移動される。第１シフトレジスタ１４および第２シフトレジスタ１７のコンテンツが完全に処理されたとき、各々は、第３関数ユニット１５および第４関数ユニット１８のそれぞれに対して入力される。第３関数ユニット１５および第４関数ユニット１８においては、同じカスタムパターンは、Ｚ９の上位半分および下位半分を再生するためにビットワイズモジュロ２加算される。
【００３８】
これは、オリジナルの暗号化キーが他の暗号処理、例えばキーラッピング（キー暗号化）のために再生されることを可能にする。それに代えて、オリジナルのキーのコピーは補助レジスタにおいて保たれることが可能である。しかしながら、これは、ハードウェアレンダリングのゲートカウントに加算される２５６ビット補助記憶レジスタを必要とする。
【００３９】
ブロック暗号装置は、自己同期化暗号フィードバック（ＳＳＣＦＢ：Ｓｅｌｆ−ｓｙｎｃｈｒｏｎｉｚｉｎｇ  Ｃｉｐｈｅｒ  Ｆｅｅｄｂａｃｋ）モード、最小エラー伝搬（ＭＥＰ：Ｍｉｎｉｍｕｍ  Ｅｒｒｏｒ  Ｐｒｏｐａｇａｔｉｏｎ）（またはカウンタ）モード若しくはブロック暗号フィードバック（ＢＣＦＢ：Ｂｌｏｃｋ  Ｃｉｐｈｅｒ  Ｆｅｅｄｂａｃｋ）モードのような種々のモードにおいて演算されることが可能である。
【００４０】
ここで、ＢＣＦＢモードについて示す図４を参照するに、非暗号化データまたは“プレーンテキスト（ＰＴ）”のブロックがＰＴＥでラベリングされた暗号化部５００の入力に適用される。次いで、ＰＴＥは“キーストリーム（ＫＳ）”のブロックにモジュロ２加算される。ＫＳはブロック暗号装置１００−１の出力を表す。ＣＴは結果的に得られるブロック（即ち、暗号テキスト）を表す。ＣＴはＣＴＥでラベリングされたポートにおいて出力され、次いで、チャンネル２００を越えて送信される。次の反復においては、ＣＴはブロック暗号装置１００−１への入力としてフィードバックされる。ブロック暗号装置は、ＫＳの新しいブロックを生成するために、フィードバックブロックを処理する。次いで、ＫＳはＰＴの次のブロックと結合され、暗号化処理が継続する。復号化部６００においては、受信されたＣＴはＣＴＤで表される。ＣＴＤは、出力として再現プレーンテキストＰＴＤのブロックを生成するために、ＫＳのブロックと結合される。ＣＴＤブロックは、ブロック暗号装置１００−２の入力に同時に与えられる。ブロック暗号装置１００−２は、他のＫＳのブロックを生成するための入力としてＣＴＤブロックを用いる。このＫＳブロックは次のＣＴＤのブロックを処理するために適用される。このモードは比較的エラーのない通信チャンネルのために意図されている。
【００４１】
ここで、ＭＥＰモードを示す図５を参照するに、非暗号化データまたは“プレーンテキスト（ＰＴ）”がＰＴＥでラベリングされた暗号化部５００の入力に適用される。次いで、ＰＴＥは、暗号テキストのブロックを生成するためにＫＳのブロックにモジュロ２加算される。ＣＴはＣＴＥでラベリングされたポートにおいて出力され、次いで、チャンネル２００を越えて送信される。次の反復のためには、暗号化部のカウンタ３００−１はインクリメントされ、カウンタ３００−１の出力はブロック暗号装置１００−１に対して入力される。ブロック暗号装置１００−１はＫＳの新しいブロックを生成するために処理される。次いで、ＫＳの新しいブロックは、次のＰＴのブロックと結合され、暗号化プロセスが継続する。復号化部６００においては、受信されたＣＴはＣＴＤで表される。ＣＴＤは、出力として再現プレーンテキストＰＴＤのブロックを生成するために、ＫＳのブロックと結合され、復号化部のカウンタ３００−２はインクリメントされる。ブロック暗号装置１００−２は、他のＫＳのブロックを生成するためにそのカウンタの出力を用いる。このＫＳブロックはＣＴＤの次のブロックを生成するために用いられる。このモードはノイズまたはエラーを生じ易い通信チャネルのために意図されている。そのチャンネルにおけるトグルされたビットエラーはＰＴＤにおける１ビットエラーのみを結果的にもたらす可能性がある。換言すれば、このモードにおいては、暗号システムはエラー拡張について１ビットのみを有する可能性がある。
【００４２】
ここで、ＳＳＣＦＢモードを示す図６を参照するに、非暗号化データまたはプレーンテキスト（ＰＴ）”はＰＴＥでラベリングされた入力に同時に適用される１ビットである。各々のＰＴＥビットは、暗号テキストＣＴのビットを生成するためにＫＳのビットに対してモジュロ２加算される。暗号化は、他の反復が開始されるまで継続する。全体的なＫＳのブロックが消費されるときかまたはパターン検出器４００−１がトリガーされるときのどちらかにおいて、他の反復が開始されることが可能である。パターン検出器４００−１は特定のビットシーケンスのためにＣＴを継続的にモニタリングし、そのシーケンスが検出されたとき、新しい反復がトリガーされる。ＣＴは統計的にランダムに現れるため、この機構は、擬似ランダムインターバルにおいて新しい反復を開始する。新しい反復が開始されるとき、全ての残りのＫＳはキーバッファ４０１−１から消去され、ＣＴの最新のビットブロックＣＴＥはブロック暗号化装置に対して入力される。そのＫＳの新しいブロックはキーバッファ４０１−１に記憶され、暗号化プロセスを継続するために用いられる。復号化部６００においては、受信されたＣＴはＣＴＤでラベリングされた入力に対して同時に１ビットが適用される。各々のＣＴＤビットは、出力ＰＴＤとして再現された“プレーンテキスト”のビットを生成するためにＫＳのビットをモジュロ２加算される。ＣＴビットストリームは、ブロック暗号装置１００−２の入力バッファ４０２−２（ＣＢ１）に同時に適用される。入力バッファ４０２−２が一杯になったときまたはパターン検出器がトリガーするとき、次の事柄が生じる。
１）キーバッファが消去される。
２）ＣＴの最新のブロックＣＴＥがブロック暗号装置１００−２に入力される。
３）ブロック暗号装置はＫＳの新しいブロックを生成するためにＣＴの最新のブロックを用いる。
４）ＫＳの新しいブロックはキーバッファ４０１−２に記憶される。
ブロック暗号装置１００−２は処理を継続し、ＣＴＤは他の反復が開始されるまで、入力バッファ４０２−２にシフトされるように継続する。このモードは、同期化エラーの影響を受ける通信チャンネルのために意図されている。このモードにおいては、通信システムは、暗号の損失およびブロックの境界の同期化から自動的に回復することを可能である。
【００４３】
図３乃至６に示したいずれのモードにおいて動作するように、暗号化部５００及び復号化部６００は、それらの初期状態が全て一致するように、先ず初期化される必要がある。初期化は、暗号部側において生成される初期化ベクトル“ＩＶ”を用いて得られルことが可能であり、暗号部の全ての内部状態を初期化するために用いられる。次いで、ＩＶはチャンネル２００を越えて復号化部６００に送信される。ＩＶを用いることにより、復号化部６００の全ての内部状態は同じ値に初期化される。
【００４４】
本発明の方法は、ハードウェアレンダリングのゲートカウントにおける比例増加を伴うことなく、暗号強度を２倍に増加させる多くの有利点を提供する。これは、熱放散及び電力消費のような演算パラメータがゲートカウントに比例して増加するという点で、きわめて重要である。データレートと製品歩留まりのような他のパラメータは、一般に、ゲートカウントに反比例する。
【００４５】
本発明の方法はまた、さらにロバストな暗号法である。それは、他の方法、特に、複数の暗号化スキームと関連する強度の脆弱性に陥ることはない。
【００４６】
さらに、本発明の方法は、上で参照した米国特許第６，１０８，４２１号明細書において開示されているような先行技術のロバストでないシステムと退歩的相互運用性を維持しつつ、上記および他の有利点を提供する。
【００４７】
本発明の好適な実施形態について上記のように説明したが、それらの実施形態は単に例示的なものであって、完全な一致が認められるときに本発明の範囲は同時提出の請求項によってのみ規定されるものであり、本明細書を精読することにより当業者には多くの変形または変更が容易に発想されることが理解される必要がある。
【図面の簡単な説明】
【００４８】
【図１】本発明のブロック暗号装置のハイレベルのブロック図である。
【図２】図１に示すブロック暗号装置の模式図である。
【図３】図２に示すブロック暗号を用いるキースケジューリングユニットの模式図である。
【図４】ブロック暗号フィードバック（ＢＣＦＢ）モードの状態で本発明の実施形態を用いる通信システムを示す図である。
【図５】最小エラー伝搬（ＭＥＰ）モードの状態で本発明の実施形態を用いる通信システムを示す図である。
【図６】自己同期化暗号フィードバック（ＳＳＣＦＢ）モードの状態で本発明の実施形態を用いる通信システムを示す図である。
【図１】
0004025722.tif 000002
【図２】
0004025722.tif 000003
【図３】
0004025722.tif 000004
【図４】
0004025722.tif 000005
【図５】
0004025722.tif 000006
【図６】
0004025722.tif 000007