(57)【特許請求の範囲】
【請求項１】
認証付き暗号化ユニット・ハードウェアを利用して暗号文のメッセージ・データ及びメッセージ認証コードを生成する方法であって、
前記認証付き暗号化ユニット・ハードウェアにおいて平文のメッセージ・データを受け取るステップであって、前記認証付き暗号化ユニット・ハードウェアが第１認証付き暗号化ハードウェア・モジュール及び第２認証付き暗号化ハードウェア・モジュールを含む、前記受け取るステップと、
前記平文のメッセージ・データ及び前記第１認証付き暗号化ハードウェア・モジュールを利用して、第１認証付き暗号化動作モードに関連付けられた第１メッセージ認証コードを生成するステップと、
前記平文のメッセージ・データ及び前記第２認証付き暗号化ハードウェア・モジュールを利用して、暗号文のメッセージ・データと、前記第１認証付き暗号化動作モードと異なる第２認証付き暗号化動作モードに関連付けられ且つ前記第１メッセージ認証コードと異なる第２メッセージ認証コードとを生成するステップと
を含み、前記第１メッセージ認証コードを生成するステップと、前記暗号文のメッセージ・データおよび前記第２メッセージ認証コードを生成するステップとが実質的に同時に遂行される、前記方法。
【請求項２】
認証付き暗号化ユニット・ハードウェアを利用して暗号文のメッセージ・データ及びメッセージ認証コードを生成する方法であって、
前記認証付き暗号化ユニット・ハードウェアにおいて平文のメッセージ・データを受け取るステップであって、前記認証付き暗号化ユニット・ハードウェアが第１認証付き暗号化ハードウェア・モジュール及び第２認証付き暗号化ハードウェア・モジュールを含む、前記受け取るステップと、
異なる認証付き暗号化動作モード（以下、デュアル・モードという）の選択を示す認証付き暗号化モード選択データを受け取るステップであって、当該デュアル・モードにおいて２つ又はそれ以上の異なるメッセージ認証コードが実質的に同時に生成される、前記受け取るステップと、
前記平文のメッセージ・データ及び前記第１認証付き暗号化ハードウェア・モジュールを利用して、第１認証付き暗号化動作モードに関連付けられた第１メッセージ認証コードを生成するステップと、
前記平文のメッセージ・データ及び前記第２認証付き暗号化ハードウェア・モジュールを利用して、暗号文のメッセージ・データと、前記第１認証付き暗号化動作モードと異なる第２認証付き暗号化動作モードに関連付けられ且つ前記第１メッセージ認証コードと異なる第２メッセージ認証コードとを生成するステップと
を含み、前記第１メッセージ認証コードを生成するステップと、前記暗号文のメッセージ・データおよび前記第２メッセージ認証コードを生成するステップとが実質的に同時に遂行される、前記方法。
【請求項３】
前記認証付き暗号化モード選択データの受け取りに応答して、前記認証付き暗号化ユニットの出力において前記第１メッセージ認証コード及び前記第２メッセージ認証コードのうちの選択されたメッセージ認証コードを提供するステップ
を更に含む、請求項２に記載の方法。
【請求項４】
前記第１メッセージ認証コードおよび前記第２メッセージ認証コードを利用して第３メッセージ認証コードを生成するステップを更に含む、請求項１又は２に記載の方法。
【請求項５】
前記第３メッセージ認証コードを生成するステップが、前記第１メッセージ認証コードおよび前記第２メッセージ認証コードを連結するステップを含む、請求項４に記載の方法。
【請求項６】
前記暗号文のメッセージ・データを生成するステップが、カウンタ・モード・ブロック・サイファ・オペレーションを遂行するステップを含む、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記第１認証付き暗号化動作モードがＧＣＭ（Galois/Counter Mode）を含み、
第２認証付き暗号化動作モードがＣＣＭ（Counter with Cipher-Block Chaining Message Authentication Code Mode）を含む、
請求項１〜６のいずれか一項に記載の方法。
【請求項８】
暗号文のメッセージ・データ及びメッセージ認証コードを生成するための装置であって、
認証付き暗号化ユニット・ハードウェアにおいて平文のメッセージ・データを受け取るための手段であって、前記認証付き暗号化ユニット・ハードウェアが第１認証付き暗号化ハードウェア・モジュール及び第２認証付き暗号化ハードウェア・モジュールを含む、前記受け取るための手段と、
前記平文のメッセージ・データ及び前記第１認証付き暗号化ハードウェア・モジュールを利用して、第１認証付き暗号化動作モードに関連付けられた第１メッセージ認証コードを生成するための手段と、
前記平文のメッセージ・データ及び前記第２認証付き暗号化ハードウェア・モジュールを利用して、暗号文のメッセージ・データと、前記第１認証付き暗号化動作モードと異なる第２認証付き暗号化動作モードに関連付けられ且つ前記第１メッセージ認証コードと異なる第２メッセージ認証コードとを生成するための手段と
を備えており、前記第１メッセージ認証コードと、前記暗号文のメッセージ・データおよび前記第２メッセージ認証コードとが実質的に同時に生成される、前記装置。
【請求項９】
暗号文のメッセージ・データ及びメッセージ認証コードを生成するための装置であって、
認証付き暗号化ユニット・ハードウェアにおいて平文のメッセージ・データを受け取るための手段であって、前記認証付き暗号化ユニット・ハードウェアが第１認証付き暗号化ハードウェア・モジュール及び第２認証付き暗号化ハードウェア・モジュールを含む、前記受け取るための手段と、
異なる認証付き暗号化動作モード（以下、デュアル・モードという）の選択を示す認証付き暗号化モード選択データを受け取るための手段であって、当該デュアル・モードにおいて２つ又はそれ以上の異なるメッセージ認証コードが実質的に同時に生成される、前記受け取るための手段と、
前記平文のメッセージ・データ及び前記第１認証付き暗号化ハードウェア・モジュールを利用して、第１認証付き暗号化動作モードに関連付けられた第１メッセージ認証コードを生成するための手段と、
前記平文のメッセージ・データ及び前記第２認証付き暗号化ハードウェア・モジュールを利用して、暗号文のメッセージ・データと、前記第１認証付き暗号化動作モードと異なる第２認証付き暗号化動作モードに関連付けられ且つ前記第１メッセージ認証コードと異なる第２メッセージ認証コードとを生成するための手段と
を備えており、前記第１メッセージ認証コードと、前記暗号文のメッセージ・データおよび前記第２メッセージ認証コードとが実質的に同時に生成される、前記装置。
【請求項１０】
前記認証付き暗号化モード選択データの受け取りに応答して、前記認証付き暗号化ユニットの出力において前記第１メッセージ認証コード及び前記第２メッセージ認証コードのうちの選択されたメッセージ認証コードを提供するための手段
を更に備えている、請求項９に記載の装置。
【請求項１１】
前記第１メッセージ認証コードおよび前記第２メッセージ認証コードを利用して第３メッセージ認証コードを生成するための手段を更に備えている、請求項８又は９に記載の装置。
【請求項１２】
前記第３メッセージ認証コードを生成するための手段が、前記第１メッセージ認証コードおよび前記第２メッセージ認証コードを連結するための手段を含む、請求項１１に記載の装置。
【請求項１３】
前記暗号文のメッセージ・データを生成するための手段が、カウンタ・モード・ブロック・サイファ・オペレーションを遂行するための手段を含む、請求項８〜１２のいずれか一項に記載の装置。
【請求項１４】
前記第１認証付き暗号化動作モードがＧＣＭ（Galois/Counter Mode）を含み、
第２認証付き暗号化動作モードがＣＣＭ（Counter with Cipher-Block Chaining Message Authentication Code Mode）を含む、
請求項８〜１３のいずれか一項に記載の装置。
【請求項１５】
暗号文のメッセージ・データ及びメッセージ認証コードを生成するための認証付き暗号化ユニット・ハードウェアであって、
平文のメッセージ・データを受け取るための第１入力部と、
前記平文のメッセージ・データを利用して、第１認証付き暗号化動作モードに関連付けられた第１メッセージ認証コードを生成するための第１認証付き暗号化ハードウェア・モジュールと、
前記平文のメッセージ・データを利用して、暗号文のメッセージ・データと、前記第１認証付き暗号化動作モードと異なる第２認証付き暗号化動作モードに関連付けられ且つ前記第１メッセージ認証コードと異なる第２メッセージ認証コードとを生成するための第２認証付き暗号化ハードウェア・モジュールと
を備えており、前記第１メッセージ認証コードと、前記暗号文のメッセージ・データおよび前記第２メッセージ認証コードとが実質的に同時に生成される、前記認証付き暗号化ユニット・ハードウェア。
【請求項１６】
暗号文のメッセージ・データ及びメッセージ認証コードを生成するための認証付き暗号化ユニット・ハードウェアであって、
平文のメッセージ・データを受け取るための第１入力部と、
異なる認証付き暗号化動作モード（以下、デュアル・モードという）の選択を示す認証付き暗号化モード選択データを受け取るための第２入力部であって、当該デュアル・モードにおいて２つ又はそれ以上のメッセージ認証コードが実質的に同時に生成される、前記第２入力部と、
前記平文のメッセージ・データを利用して、第１認証付き暗号化動作モードに関連付けられた第１メッセージ認証コードを生成するための第１認証付き暗号化ハードウェア・モジュールと、
前記平文のメッセージ・データを利用して、暗号文のメッセージ・データと、前記第１認証付き暗号化動作モードと異なる第２認証付き暗号化動作モードに関連付けられ且つ前記第１メッセージ認証コードと異なる第２メッセージ認証コードとを生成するための第２認証付き暗号化ハードウェア・モジュールと
を備えており、前記第１メッセージ認証コードと、前記暗号文のメッセージ・データおよび前記第２メッセージ認証コードとが実質的に同時に生成される、前記認証付き暗号化ユニット・ハードウェア。
【請求項１７】
前記認証付き暗号化モード選択データの受け取りに応答して、前記第１メッセージ認証コード及び前記第２メッセージ認証コードのうちの選択されたメッセージ認証コードを提供するための出力部
を更に備えている、請求項１６に記載の認証付き暗号化ユニット・ハードウェア。
【請求項１８】
前記第１メッセージ認証コードおよび前記第２メッセージ認証コードを利用して第３メッセージ認証コードを生成するための第３認証付き暗号化ハードウェア・モジュールを更に備えている、請求項１５又は１６に記載の認証付き暗号化ユニット・ハードウェア。
【請求項１９】
前記第３メッセージ認証コードが、前記第１メッセージ認証コードおよび前記第２メッセージ認証コードを連結することによって生成される、請求項１８に記載の認証付き暗号化ユニット・ハードウェア。
【請求項２０】
前記第２認証付き暗号化ハードウェア・モジュールが、カウンタ・モード・ブロック・サイファ・モジュールを含む、請求項１５〜１９のいずれか一項に記載の認証付き暗号化ユニット・ハードウェア。
【請求項２１】
前記第１認証付き暗号化動作モードがＧＣＭ（Galois/Counter Mode）を含み、
第２認証付き暗号化動作モードがＣＣＭ（Counter with Cipher-Block Chaining Message Authentication Code Mode）を含む、
請求項１５〜２０のいずれか一項に記載の認証付き暗号化ユニット・ハードウェア。
【請求項２２】
認証付き暗号化ユニット・ハードウェアを利用して暗号文のメッセージ・データ及びメッセージ認証コードを生成するコンピュータ・プログラムであって、コンピュータに、請求項１〜７のいずれか一項に記載の方法の各ステップを実行させる前記コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、総体的には、メッセージ伝送および認証付き暗号化技法に関し、詳しく云えば、共用のハードウェアを利用して暗号文及びメッセージ認証コードを生成するための方法及びシステムに関する。
【背景技術】
【０００２】
認証付き暗号化（または認証付き暗号化及び関連のデータ）システムは、通信の機密性および認証性または「保全性（integrity）」を同時に保護するために種々のハードウェア及びソフトウェア素子、暗号化キー、アルゴリズム、および／または、技法を使用するものである。更に詳しく云えば、認証付き暗号化は、１つのパーティが、メッセージをエンコードすることによって自身を認証メッセージのソースとして不正に表示すること、そのようなソースから受け取られたメッセージを不正に解読すること、あるいはメッセージ・データを暗号化、暗号化解除、または認証する方法に関する情報を得ること、を計算的には実行不可能にしようとする。対称的ブロック・サイファ（例えば、電子コード・ブック、サイファ・ブロック・チェーニング、サイファ・フィードバック、出力フィードバック、カウンタ・モード等）を利用して、多数の一般的な認証付き暗号化（ＡＥ）システムまたはモードが提供されているが、ＡＥ機能は、一般に、適切な抑制の下でのメッセージ認証コード（ＭＡＣ）または「タグ」の生成を通して任意の（例えば、対称的または非対称的）暗号化技法および認証技法を結合することによって提供することが可能である。認証付き暗号化システムがメッセージ・データの暗号化（または暗号化解除）を通してエンコーディング（またはデコーディング）を実施する場合、そのようなオペレーションは任意の順序でまたは実質的に同時に遂行することが可能である。
【０００３】
メッセージ・データの機密性および認証性または保全性の最終的な目的は長く研究されてきたが、単一のアプリケーションにおいて両オペレーションを実施することの複雑さのために、多くのシステムが開発されたのは比較的最近である。例示的な認証付き暗号化システムまたはモードは、Counter with CBC-MAC（ＣＣＭ）、One-Key CBC-MAC（ＯＭＡＣ）、Cipher-State（ＣＳ）、Carter Wegmanwith Counter（ＣＷＣ）、Encrypt then Authenticate thenTranslate Mode（ＥＡＸ）、Galois/Counter Mode（ＧＣＭ）、Integrity Aware Cipher Block Chaining（ＩＡＣＢＣ）、Integrity Aware Parallelizable Mode（ＩＡＰＭ）、OffsetCodebook（ＯＣＢ）、Propagating Cipher Feedback（ＰＣＦＢ）、およびeXtended CipherBlock Chaining Encryption（ＸＣＢＣ）を含む。
【０００４】
図３は、従来技術による第１認証付き暗号化モードの認証付き暗号化ユニットを表すブロック図を示す。更に詳しく云うと、図３は、ＧＣＭ認証付き暗号化を行うように構成された認証付き暗号化ユニットのブロック図を示す。ＧＣＭ、即ち、「Galois/Counter Mode」は、認証付き暗号化を提供するためにバイナリ Galois フィールド全体にわたってユニバーサル・ハッシングを使用するブロック・サイファ動作モードである。ＧＣＭは周知の理論的根拠によってサポートされ、それの機密性はブロック・サイファの機密性に関する単一の妥当な仮定から生じる。
【０００５】
ＧＣＭは２つのオペレーション、即ち、認証付き暗号化および認証付き暗号化解除を有する。ここでは、説明の便宜上、認証付き暗号化機能だけを詳しく説明することにする。図３に関して説明される従来技術の例では、ＧＣＭ認証付き暗号化は３つの入力を有し、その入力の各々は、基本的なブロック・サイファに適した長さを有する秘密キー「Ｋ」（図示されていない）と、１と２６４との間の任意の数のビットを有することが可能である初期化ベクトル「ＩＶ」と、平文のメッセージ・データとを含むビット・ストリングである。一定値のキー（Ｋ）に対して、各初期化ベクトル値は明瞭でなければならないが、等しい長さを有する必要はない。暗号化されてないが認証されている更なる認証付きデータを提供することも可能である。
【０００６】
上記の入力を利用して、２つの出力、即ち、平文のメッセージ・データの長さを正確に有する暗号文のメッセージ・データおよび６４と１２８との間の任意の値の長さを有するメッセージ認証コード「ＭＡＣ」が生成される。従来技術における各入力および出力はデータ・ビット・ストリングとして具現化される。初期化ベクトルの主要な目的は、ナンス（nonce）として働くこと、即ち、固定キーに対する暗号化オペレーションの各起動にとって明瞭であることである。
【０００７】
動作時には、初期化ベクトル「ＩＶ」がインクリメント機能ハードウェア・モジュール３０２に供給される。そのブロック３０２は、ブロック・サイファ暗号化ハードウェア・モジュール３０４に供給される連続したカウンタ値を出力する。図３の従来技術では、ブロック暗号化ハードウェア・モジュール３０４は、拡張暗号化標準（Advanced Encryption Standard（ＡＥＳ））のブロック・サイファ暗号化を実施する。そこで、ＭＡＣ値を生成するときに使用するための破線３０８によって表された第１の暗号化済みＩＶ／カウンタを指定するデータを出力するために、マルチプレクサ３０６または他のスイッチング素子が利用される。そこで、マルチプレクサ３０６は、その後の暗号化済みＩＶ／カウンタ値を指定するデータが、ＸＯＲハードウェア・モジュール３１０を使用した論理的排他的ＯＲオペレーションを通して平文のメッセージ・データと結合されるようにスイッチまたは作動され、図示のように暗号文のメッセージ・データを生成させる。
【０００８】
上記暗号文のメッセージ・データは、別のＸＯＲハードウェア・モジュール３１２に供給されて、ガロア・フィールド（GaloisField - ＧＦ）乗算器ハードウェア・モジュール３１４によって生成されたフィードバック・データ（例えば、最初にＧＦ乗算された更なる認証付きデータ、或いは他のシードまたは初期化データ）と論理的に結合され、その結果生じた論理的に結合されたデータが、図示のように、ＧＦ乗算器ハードウェア・モジュール３１４に供給される。ＧＦ乗算に続いて、ＧＦ乗算器ハードウェア・モジュール３１４の生成された出力がＸＯＲハードウェア・モジュール３１２にフィードバックされ、同時に、最終的なＸＯＲハードウェア・モジュール３１６に供給される。その供給されたＧＦ乗算器ハードウェア・モジュールの出力は、ＸＯＲハードウェア・モジュール３１６を使用して前述の第１の暗号化済みＩＶ／カウンタ・データと論理的に結合され、図示のように、ＭＡＣを生成させる。
【０００９】
図４は、従来技術による、第２認証付き暗号化モードの認証付き暗号化ユニットを表すブロック図を示す。更に詳しく云えば、図４は、サイファ・ブロック・チェーニング（Cipher-Block Chaining（ＣＢＣ）−ＭＡＣ（ＣＣＭ）認証付き暗号化を行うように構成された認証付き暗号化ユニットのブロック図を示す。ＣＣＭモードは、カウンタ・モードの暗号化と認証のＣＢＣ−ＭＡＣモードとを結合する。暗号化において使用されたカウンタ値が認証において使用された（事前の）初期化ベクトルと衝突しない場合、ＣＣＭを利用すると、暗号化および認証の両方に対して単一の暗号化キー（図示されていない）を使用することが可能である。ＣＣＭは、一般的な認証及び暗号化ブロック・サイファ・モードである。伝統的には、ＣＣＭは、ＡＥＳのような１２８ビットのブロック・サイファと共に使用するためのものと定義される。
【００１０】
ＣＣＭは、２つのオペレーション、即ち、認証付き暗号化及び認証付き暗号化解除を有する。本願における説明の便宜上、認証付き暗号化だけを詳しく説明することにする。図４の従来技術では、ＣＣＭ認証付き暗号化は、秘密キー「Ｋ」（図示されていない）と、ナンス（例えば、初期化ベクトル「ＩＶ」）と、平文のメッセージ・データとを含む３つのビット・ストリング入力を利用する。ＧＣＭに関して上述したように、暗号化のない認証に対して、更なる認証付きデータが提供されることもある。上記の入力を利用して、２つのビット・ストリング出力、即ち、平文のデータ・メッセージの長さと全く同じ長さを有する暗号文のメッセージ・データ及びメッセージ認証コード「ＭＡＣ」を生成する。
【００１１】
動作時には、初期化ベクトル「ＩＶ」がインクリメント機能ハードウェア・モジュール４０２に与えられ、そのモジュール４０２は、ブロック・サイファ（例えば、ＡＥＳ）ハードウェア・モジュール４０４に与えられる連続したカウンタ値を出力する。ＭＡＣ値を生成するときに使用するための破線４０８によって表された第１暗号化済みＩＶ／カウンタを指定するデータを出力するために、マルチプレクサ４０６または他のスイッチング素子が利用される。マルチプレクサ４０６は、その後の暗号化済みＩＶ／カウンタ値を指定するデータがＸＯＲハードウェア・モジュールを使用した論理的排他的ＯＲオペレーションを通して平文のメッセージ・データと結合されるようにスイッチまたは作動され、図示のように暗号文のメッセージ・データを生成させる。
【００１２】
上記平文のメッセージ・データがもう１つのＸＯＲハードウェア・モジュール４１２にも同時に供給されて、もう１つの（例えば、ＡＥＳ）ブロック暗号化ハードウェア・モジュール４１４によって生成されたフィードバック・データ（例えば、暗号化済みの更なる認証付きデータまたは他のシードまたは初期化データ）と論理的に結合され、その結果生じた論理的に結合されたデータが、図示のように、ブロック暗号化ハードウェア・モジュール４１４に供給される。暗号化に続いて、ブロック暗号化ハードウェア・モジュール４１４の生成された出力がＸＯＲハードウェア・モジュール４１２にフィードバックされると同時に最終的なＸＯＲハードウェア・モジュール４１６に供給される。その供給されたブロック暗号化ハードウェア・モジュールの出力は、ＸＯＲハードウェア・モジュール４１６を使って前述の第１暗号化済みＩＶ／カウンタ・データと論理的に結合されて、図示のようにＭＡＣを生成させる。
【００１３】
上記のＡＥ技法またはモードのいずれもソフトウェアで又はソフトウェアとハードウェアとの組合せで具現化し得るが、認証付き暗号化は、メッセージ・データのシステム間又はシステム内のバッファリングを必要としないよう、一般には、ハードウェアのみで具現化される。
【００１４】
アプリケーションの金銭的なコストまたはモード特有のＡＥソリューションのために、通常のシステムは、一般に、単一の認証付き暗号化モードのオペレーションを実施する。その結果、そのような通常のシステムは多くの欠点をこうむる。更に詳しく云えば、遂行されるべきＡＥモードのオペレーションにおける如何なる変更または補足も（例えば、既存のモードのオペレーションが暗号化または認証に見地から構成されるとき、特定のユーザまたは具現化が、既に提供されたモードとは異なるモードの認証付き暗号化オペレーションを必要とするとき、認証付き暗号化機能を含むシステムの大きな融通性または集中化が望ましいとき等には）追加の特別に構成されたハードウェアを必要とする。そのような追加のハードウェアは、システムによっては費用がかかり、空間的妨げを生じ得る。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
共用のハードウェアを利用して暗号文およびメッセージ認証コードを生成するための方法およびシステムを提供する。
【課題を解決するための手段】
【００１６】
本発明の一実施例によれば、共用の認証付き暗号化ユニット・ハードウェアを利用して暗号文のメッセージ・データおよびメッセージ認証コードを生成するための方法が提供される。開示される実施例では、第１および第２認証付き暗号化ハードウェア・モジュールを含む認証付き暗号化ユニットにおいて、平文のメッセージ・データが受け取られる。しかる後、第１認証付き暗号化モードに関連付けられた第１メッセージ認証コード（ＭＡＣ）および第２認証付き暗号化モードに関連付けられた第２ＭＡＣが生成される。更に詳しく云えば、平文のメッセージ・データおよび第１認証付き暗号化ハードウェア・モジュールを利用して第１ＭＡＣが生成され、平文のメッセージ・データおよび第２認証付き暗号化ハードウェア・モジュールを利用して暗号文のメッセージ・データおよび第２ＭＡＣが生成される。
【００１７】
以上は要約であり、従って、必要により、単純化、一般化、および省略を含む。従って、その要約は単に例示的なものであり、如何なる点においても限定的であることを意図するものではないことは当業者には明らかであろう。当業者には明らかであるように、本願において開示されたオペレーションは、ハードウェアにおける具現化、即ち、ＡＳＩＣおよび特別目的の電子回路、を含む多くの方法で具現化することが可能であり、そのような変更および修正は、本発明およびその広義の側面から逸脱することなく行うことが可能である。「特許請求の範囲」によってのみ定義される本発明の別の側面、特徴、および利点は、下記の非限定的な詳細な説明において明らかになるであろう。
【発明を実施するための最良の形態】
【００１８】
以下は、本願において開示される１つまたは複数のシステム、装置、および／または、プロセスを実行するための少なくとも最善と思われるモードに関する詳細な説明を示す。その説明は例示的であることを意図するものであり、限定するものであると解するべきではない。
【００１９】
以下の詳細な説明では、特定の方法の順序、構造、素子、および接続のような多くの特定の細部が示される。しかし、本発明の実施例を実用化するためには、必ずしもこれらのおよび他の特定の詳細が利用される必要はないと理解すべきである。別の環境では、周知の構造、素子、または接続が省略されているか、またはこの説明を不必要に曖昧にするのを避けるために、特に詳しく説明されてはいない。
【００２０】
本明細書において「１つの実施例」、「或る実施例」、または「複数の実施例」と呼ぶことは、実施例に関して説明される特定の特徴、構造、または特性が本発明の少なくとも１つの実施例に含まれるということを表すことを意図している。本明細書内の種々な場所におけるそのようなフレーズの出現は必ずしもすべて同じ実施例を指すものではなく、他の実施例とは相互に排他的な別個のまたは代替の実施例を指すものでもない。更に、或る実施例によって示されることはあるが他の実施では示されない種々の特徴も開示される。同様に、或る実施例に対しては要件となるが他の実施例に対してはならない種々の要件も開示される。
【００２１】
本発明の実施例は、共用のハードウェアを利用して暗号文およびメッセージ認証コードを生成するための方法およびシステムを提供する。メッセージ認証コード（ＭＡＣ）は、これとは別に、タグ、認証付き暗号化タグ、暗号チェックサム、保全性チェック値、修正検出コード、またはメッセージ保全コードとしても知られているが、本願では、メッセージの保全（即ち、認証）データを検証するために、換言すれば、メッセージに含まれたデータがＭＡＣの生成後に修正されなかったかどうかを決定するために、使用することが可能な認証付き暗号化システムにおいてメッセージに関連付けられたデータ（例えば、数理的な値）を表すことを意図している。このように、ＭＡＣは、幾つかの点ではハッシュ関数またはデジタル署名と同じであり、インターナショナル・ビジネス・マシーンズ・コーポレーションによって提供される Total Storage（商標）3592 Tape Drive Model J1A、および／または、Tape Controller Model J70 のようなデータ伝送、および／または、データ記憶システムにおいて一般的に使用される。
【００２２】
本発明の１つまたは複数の実施例では、共用のハードウェア具現体を利用して複数のＭＡＣタイプおよび暗号文が提供される。そのような具現体を利用すると、各動作モードに対して個別の認証付き暗号化ユニットを含む一般的なシステムに比べて必要なハードウェア・コンポーネントまたはモジュールの数を少なくするかまたはそれを除去するために共用ハードウェアを使用して、２つまたはそれ以上の認証付き暗号化動作モードが提供される。認証付き暗号化ハードウェア・モジュールの共用を可能にするために、本願に示された本発明の一実施例は、Counter with CBC-MAC（ＣＣＭ）および Galois/CounterMode（ＧＣＭ）動作モードを使ってＭＡＣが提供されることによって、Counter Mode（ＣＴＲ）ブロック・サイファを具現化する。しかし、本発明の別の実施例では、多数の互換性のある認証付き暗号化動作モードのいずれも、多数の暗号化技法（例えば、対称的又は非対称的公開キー、ブロック又はストリーム・サイファ、コード等）のいずれかを利用した組み合わせで具現化することが可能である。
【００２３】
デュアルＣＣＭおよびＧＣＭ動作モードを含む本発明の実施例では、ＣＴＲ暗号化は、ナンス（例えば、カウンタまたはインクリメンタを使ってインクリメントされる初期化ベクトル値）および拡張暗号化標準（ＡＥＳ）連邦情報処理標準の刊行物１９７（ＦＩＰＳ−１９７）のマクロまたはモジュールを利用する。本願において更に詳細に説明されるように、ＣＣＭ認証はサイファ・ブロック・チェーニングのフォームも使用し、従って、ＭＡＣの生成のためのＡＥＳＦＩＰＳ−１９７マクロを利用し、それにより、単一パイプライン・ハードウェア・モジュールがＭＡＣおよび暗号文の生成のために共用されることを可能にする。上述のようにパイプライン認証付き暗号化ハードウェア・モジュールを使用することによって、複数のＭＡＣおよび暗号文が生成されることを可能にするのみならず、相互にほぼ同時に生成されることも可能である。上記の実施例では、ＧＣＭ認証は、本願において更に詳しく説明される別個のガロア・フィールド乗算器（Galois Field multiplier）を利用する。従って、本発明の１つまたは複数の実施例を使用すると、単一のＡＥモードに対して一般的に使用されるものの他に最小限の更なるハードウェアを使用して、複数のＭＡＣおよび認証付き暗号化動作モードが、共用のハードウェアを具現化する場合、実質的に同時に提供され得る。
【００２４】
本発明の上記の実施例に関する変形として、認証付き暗号化モード選択データ（例えば、１つまたは複数の選択インジケータ、ビット、タグ等）が受け取られ、暗号文およびＭＡＣが生成される方法を選択するために利用される。例えば、本願において開示された１つまたは複数のシステムまたは方法を利用して２つ以上のＭＡＣを生成することが可能であり、それら２つ以上のＭＡＣ（または、暗号文のメッセージ・データ出力）のうちのどれが関連の認証付き暗号化ユニットの出力として提供されるべきかを識別するために、そのような認証付き暗号化モード選択データを使用することが可能である。別の実施例では、そのような認証付き暗号化モード選択データを使用して、複数のＭＡＣの生成、および／または、複数のＡＥ動作モードの実行を選択的に行うことが可能である。例えば、選択された共用の認証付き暗号化ハードウェア・モジュールが作動されるかどうか、および／または、必要な入力データ（例えば、平文、暗号文、ナンス・データ等）が、必要な認証付き暗号化ハードウェア・モジュール入力に供給されるかどうかを決定するために、認証付き暗号化モード選択データを使用することも可能である。
【００２５】
本発明の一実施例では、２つ以上の認証付き暗号化動作モードが（例えば、インターリビングを介して）実質的に同時に遂行されるべきものであるかどうかを選択するために、第１の認証付き暗号化モード選択インジケータ（例えば、ビット）が利用され、その認証付き暗号化動作モードが遂行されるべきか、または、それとは別に、どの認証付き暗号化データ（例えば、ＭＡＣ）が出力として供給されるべきかを識別するために、第２の認証付き暗号化モード選択インジケータ（例えば、ビット）が利用される。別の実施例では、２つ以上のＭＡＣが相互にほぼ同時に生成される。それらは、その後、少なくとも１つの他の合成ＭＡＣを生成するために利用される。例えば、種々の実施例において、２つ以上のＭＡＣが連結され、インターリーブされ、または結合されることもある。
【００２６】
図１は、本発明の実施例に従って通信ネットワークを示す。図示の実施例の通信ネットワーク１００は、１つ又は複数の方法を遂行するように構成されるか又は本願において開示される１つ又は複数のシステム、素子、又はモジュールを含む、メッセージ・エンコーディング・データ処理システム１０２、およびネットワーク通信媒体１０６又はリンク（例えば、ローカル・エリア・ネットワークまたは広域ネットワーク）を介して通信可能に結合された対応するメッセージ・デコーディング・データ処理システム１０４を含む。図１に示された実施例では、平文、初期化ベクトルまたは他のナンスまたはナンス・シード、および１つ又は複数の認証付き暗号化モード選択インジケータをデータがメッセージ・エンコーディング・データ処理システム１０２に提供されるか又はそれによって生成される。一方、上記データは、本発明の１つ又は複数の方法に従って、または本願で開示される１つ又は複数のシステム、素子、ユニット、又はモジュールを利用することによって、平文及び少なくとも１つのＭＡＣを指定するデータを生成するためにメッセージ・エンコーディング・データ処理システム１０２によって利用される。
【００２７】
上記暗号文及びＭＡＣ指定データは、それらが一旦生成されると、対応する方法、システム、素子、ユニット又はモジュールを利用して、図示のように通信媒体１０６を介してメッセージ・デコーディング・データ処理システム１０４に伝送される。一般的なパーソナル・コンピュータとして示されているが、メッセージ・エンコーディング又はデコーディング・データ処理システム１０２及び１０４のようなデータ処理システムは、図２に示される例示的なデータ処理システム２００のような任意の多数のハードウェア装置、および／または、ソフトウェア・コンポーネントを組み合わせて構成することが可能である。本発明の一実施例では、メッセージ・エンコーディング・データ処理システム１０２およびメッセージ・デコーディング・データ処理システム１０４は、１つ又は複数の記憶装置又は素子（例えば、ディスク・ドライブ、テープ・ドライブ、ＲＡＩＤアレイ・サブシステム、ロボット・タイプのライブラリ、ファイラ、ファイル・サーバ）、および／または、関連の制御装置、素子、又はアダプタを含み得る。
【００２８】
図２は、本発明の実施例に従って認証付き暗号化を遂行するように構成されたデータ処理システムを示す。図２のデータ処理システム２００に関連して特定の数及び配列の素子が示されているが、本発明の実施例が、いずれの特定な数、タイプ、又は構成の素子を有するデータ処理システムにも限定されないこと、及び非常に多くのものが広範な種類のデータ処理システムのタイプ、アーキテクチャ、及びフォーム・ファクタ（例えば、ネットワーク素子又はノード、パーソナル・コンピュータ、ワークステーション、サーバ等）を包含することは明らかである。図示の実施例のデータ処理システム２００は、バス２０６または他の通信媒体を利用してメモリ２０４に結合されたプロセッサ２０２を含む。メモリ２０４は、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、フラッシュ・メモリ、及びキャッシュのような任意の多くのシステム・メモリ・タイプの記憶素子を含み得る。
【００２９】
図示の実施例のデータ処理システム２００は、更に、１つ又は複数の入出力（Ｉ／Ｏ）装置（図示されていない）をデータ処理システム２００に通信可能に結合するためにバス２０６に結合されたＩ／Ｏインターフェース２０８を含む。例示的なＩ／Ｏ装置は、キーボード、ディスプレイ、プリンタ、カーソル制御装置（例えば、トラックボール、マウス、タブレット、その他）、スピーカ、及びマイクロフォンのような伝統的なＩ／Ｏ装置、固定または「ハード」磁気媒体記憶装置、光学的記憶装置（例えば、ＣＤまたはＤＶＤ−ＲＯＭ）、ソリッド・ステート記憶装置、（例えば、ＵＳＢ、Secure Digital SD（商標）、Compact Flash（登録商標）、ＭＭＣ等）、フロッピ・ディスク（登録商標）及びテープのような取外し可能磁気媒体記憶装置、または他の記憶装置または媒体のような記憶装置、および無線通信装置又は媒体（例えば、モデム又はダイレクト・ネットワーク・インターフェースを介してアクセスされる通信ネットワーク）を含み得る。
【００３０】
図２の実施例では、データ処理システム２００は、図示のように、認証付き暗号化（ＡＥ）ユニット２１０を更に含む。ＡＥユニット２１０は、単一の別個のハードウェア素子として示されているが、本発明の別の実施例では、ＡＥユニット２１０を構成するハードウェア・モジュールまたはコンポーネントの特定の数および配列が変更されることが可能である。同様に、説明のために、汎用のプロセッサ（例えば、プロセッサ２０２）及びメモリが示されているが、本発明の別の実施例において、代用の素子を利用することも可能である。例えば、本願に示されたデータ処理システムは、１つ又は複数の特別目的の又はアプリケーション特有のプロセッサ又は他の処理素子（例えば、プログラマブル論理装置）を含んでもよい。更に、プロセッサ２０２または任意の上記代用の処理素子は、統合記憶装置（例えば、レジスタ・ファイル、キャッシュ等）を代替的に含むメモリ２０４のような別個のメモリ素子を含んでもよく、或いは必然的に含んでもよい。
【００３１】
図２に示された実施例では、ＡＥユニット２１０は、関連のメッセージ・データに関する認証付き暗号化オペレーションを遂行するように構成された専用のハードウェア装置または処理素子を含む。一実施例では、ＡＥユニット２１０の内部構造は、種々のコンポーネントＡＥオペレーションを遂行するために利用される多数のハードウェア・モジュール（図示されていない）を含む。動作時には、ＡＥユニット２１０は、平文「Ｐ」及び初期化ベクトル「ＩＶ」のような入力データを受け、一方、図２に示されるように、例えば、暗号文「Ｃ」、第１ＭＡＣ「ＭＡＣ１」、及び第２ＭＡＣ「ＭＡＣ２」を含む出力データを生成および供給する。
【００３２】
本発明の実施例は、本願において更に説明されるソフトウェア、情報処理ハードウェア、及び種々の処理オペレーションを含むことが可能である。種々の実施例の特徴及びプロセスは、メモリ２０４、記憶装置、通信装置、または通信媒体等のようなマシン可読媒体において実施される実行可能な命令において具体化することも可能である。マシン可読媒体は、マシン（例えば、データ処理システム２００）によって読み取り得る形式でデータを提供する（即ち、記憶し、および／または、伝送する）あらゆる機構を含むことが可能で或る。例えば、マシン可読媒体は、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、磁気記憶媒体、光学的記憶媒体、フラッシュ・メモリ装置、電気的、光学的、および／または、音響的伝播信号（例えば、搬送波、赤外線信号、デジタル信号他）等を含むがそれに限定されない。上記の実行可能な命令は、その命令でもってプログラムされたプロセッサ２０２のような汎用コンピュータまたは特殊目的コンピュータに本発明のオペレーション、方法、又はプロセスを実行させるために使用することも可能である。これとは別に、本発明の特徴又はオペレーションは、そのようなオペレーションを遂行するための配線されたロジックを含む特定のハードウェア・コンポーネントによって、またはプログラムされたデータ処理コンポーネントおよびカスタム・ハードウェア・コンポーネントの組合せによって実行することも可能である。
【００３３】
図４に示された例では、暗号文のメッセージ・データ及び対応するＭＡＣが相互にほぼ同時に生成されるように、２つの別々の非パイプライン・ブロック・サイファ・ハードウェア（例えば、ＡＥＳ）モジュールが利用される。図５に示されるように、本発明の実施例は単一のパイプライン暗号化ハードウェア・モジュールを利用して、出力データを生成する速度における如何なる明白な相違点もなく、使用されるコンポーネント・ハードウェア・モジュールの数の減少を通して認証付き暗号化ユニットの複雑さ及びコストを減少させる。
【００３４】
図５は、本発明の実施例に従ってマルチモード認証付き暗号化ユニットのブロック図を示す。更に詳しく云うと、図５は、１つ又は複数の共用のハードウェア・モジュールを利用してサイファ・ブロック・チェーニング（ＣＢＣ）−ＭＡＣ（ＣＣＭ）認証付き暗号化およびガロア／カウンタ・モード（ＧＣＭ）認証付き暗号化をほぼ同時に遂行するように構成された認証ユニットのブロック図を示す。通常のＣＣＭ及びＧＣＭ認証付き暗号化に関して前述したように、図示のＡＥユニットは、認証付き暗号化オペレーション及び認証付き暗号化解除オペレーションの両方を行うために利用することが可能である。しかし、本明細書に示された実施例を不必要に曖昧にしたり又は複雑にしたりすることを回避するために、認証付き暗号化機能及び対応するシステム素子（例えば、ハードウェア・モジュール）だけを詳しく説明することにする。
【００３５】
図５に示された実施例では、図示の認証付き暗号化ユニットは、基礎となるブロック・サイファにとって適正な長さを有する秘密キー「Ｋ」（図示されていない）、初期化ベクトル「ＩＶ」、及び平文のメッセージ・データを含む３つの入力を有する。キー「Ｋ」の一定値に対して、その開示された実施例の各初期化ベクトル値は明瞭であるが、等しい長さを有する必要はない。暗号化されてないが認証されている更なる認証付きデータ（図示されていない）が提供されてもよい。
【００３６】
上記の入力を利用して、３つの出力、即ち、平文のメッセージ・データの長さに等しい長さを有する暗号文のメッセージ・データ、第１（例えば、ＧＣＭ）メッセージ認証コード「ＧＣＭ  ＭＡＣ」、および第２（例えば、ＣＣＭ）メッセージ認証コード「ＣＣＭ  ＭＡＣ」、が生成される。上記の入力及び出力はビット・ストリングによって定義されるが、別の実施例では、多数のフォーマット又はサイズのいずれかのデータを含むことが可能である。初期化ベクトルの主要な目的はナンスとして作用すること、即ち、固定キーに対する暗号化オペレーションの各呼び出しにとって明瞭であることである。本発明の１つ又は複数の実施例では、初期化ベクトルが無作為に生成されることも可能である。
【００３７】
図５の実施例では、２つの認証付き暗号化出力しか示されないが、本発明の実施例は大規模に実現可能であり、より大きな数のＡＥ出力がそのような実施例によって予測される。同様に、図５に図示された認証付き暗号化ユニットの各オペレーションによってすべてのＡＥ出力がほぼ同時に与えられるが、本発明の別の実施例では、受容される入力（それによって、選択された暗号文またはＭＡＣ出力の発生又は生成を制御する）及び提供される出力の一方又は両方を選択的に制御するために利用することが可能な選択素子又はロジックを含むことも可能である。
【００３８】
動作時には、図示のパイプライン・ブロック・サイファ暗号化（例えば、ＡＥＳ）ハードウェア・モジュール５０２内のカウンタ・モード暗号化を通して図示の認証付き暗号化ユニットを利用して、暗号文のメッセージ・データが生成される。上述のカウンタ値及び本願において更に十分に説明される他のデータの暗号化は、パイプライン・ブロック・サイファ暗号化ハードウェア・モジュール５０２を使用してインターリーブされる。更に詳しく云えば、初期化ベクトル「ＩＶ」が、連続したカウンタ値を出力するインクリメント機能ハードウェア・モジュール（インクリメンタ）５０４に供給され、そのカウンタ値が、マルチプレクサ５０６または他の選択或いはスイッチング手段を介してパイプライン・ブロック・サイファ暗号化ハードウェア・モジュール５０２に選択的に供給される。
【００３９】
従って、インクリメントするカウンタ値が、パイプライン・ブロック・サイファ暗号化ハードウェア・モジュール５０２において得られる動作サイクルの一部分に供給される。一旦暗号化されると、上記のカウンタ値は、平文指定のデータの対応部分と共に、もう１つのマルチプレクサ５０８又は同様の選択手段を介してＸＯＲハードウェア・モジュール５１０に選択可能に供給され、図示のように、暗号文のメッセージ・データを生成するように論理的に結合される。本願では、特定の暗号化技法、動作モード、およびハードウェア・モジュールを図解し、説明したが、多くのそのような素子又は技法のいずれを具現化することも可能である。図５の実施例では、パイプライン・ブロック・サイファ暗号化ハードウェア・モジュール５０２の残りの動作サイクルが、必要な場合には他の補助的なハードウェア・モジュールと関連して、本願において更に十分に後述される複数の認証付き暗号化ＭＡＣを生成するために利用される。
【００４０】
ＧＣＭＭＡＣを指定するデータを生成するために、別個のガロア・フィールド（ＧＦ）乗算器ハードウェア・モジュール５１２が、パイプライン・ブロック・サイファ暗号化ハードウェア・モジュール５０２の動作サイクルにおける前述の部分によって生成された暗号文のメッセージ・データと組み合わせて利用される。更に詳しく云えば、マルチプレクサ５０８は、破線５１４によって表されるように第１暗号化ＩＶ／カウンタを指定するデータを選択可能に出力するために利用される。マルチプレクサ５０８は、説明の便宜上、単一の２対１タイプのスイッチング素子として示されているが、本発明の別の実施例では連結態様で結合された３対１マルチプレクサ又は２つの２対１マルチプレクサを含むことも可能である。
【００４１】
しかし、マルチプレクサ５０８は、暗号化ＩＶ／カウンタ値が平文のメッセージ・データと結合された初期値に後続して生成済みの暗号文のメッセージ・データになるようにスイッチ又は作動される。一方、その生成済みの暗号文のメッセージ・データはガロア・フィールド（ＧＦ）乗算器ハードウェア／モジュール５１２によって生成されたフィードバック・データ（例えば、先ず、ＧＦ乗算された追加の認証付きデータ又は他のシード又は初期化データ）と論理的に結合されように更に他のＸＯＲハードウェア・モジュール５１６に供給され、その結果生じた論理的に結合されたデータが、図示のように、ＧＦ乗算器ハードウェア・モジュール５１２に供給される。本発明の一実施例では、ＧＦ乗算器は、２１２８ビット単位を含む。ＧＦ乗算に続いて、ＧＦ乗算器ハードウェア・モジュール５１２の生成された出力がＸＯＲハードウェア・モジュール５１６にフィードバックされ、同時に、別のＸＯＲハードウェア・モジュール５１８に供給される。その供給されたＧＦ乗算器ハードウェア・モジュールの出力がＸＯＲハードウェア・モジュール５１８を使って前述の第１暗号化ＩＶ／カウンタ・データと論理的に結合され、図示のように、「ＧＣＭＭＡＣ」を指定するデータを生成させる。
【００４２】
ＣＣＭ ＭＡＣを指定するデータを生成するために、追加のハードウェアをほとんど必要としないように、前述のような暗号文のメッセージ・データを生成するために使用される動作サイクルではなくパイプライン・ブロック・サイファ暗号化ハードウェア・モジュール５０２において得られる動作サイクルの一部分が利用される。更に詳しく云えば、第１暗号化ＩＶ／カウンタを指定するデータが、ＣＣＭ/ＣＢＣ ＭＡＣの生成において使用するために、破線５２０によって表されるようにマルチプレクサ５０８を介して同様に供給される。そこで、その後の暗号化ＩＶ／カウンタ値を指定するデータ及び平文のメッセージ・データが結合されて、図示のように、暗号文のメッセージ・データを生成させるように、マルチプレクサ５０８がスイッチまたは作動される。
【００４３】
上記平文のメッセージ・データは、パイプライン・ブロック・サイファ暗号化ハードウェア・モジュール５０２によって生成されたフィードバック・データと論理的に結合されるように別のＸＯＲハードウェア・モジュール５２２にも同時に供給され、その結果生じる論理的に結合されたデータが、図示のように、パイプライン・ブロック・サイファ暗号化ハードウェア・モジュール５０２に供給される。暗号化に続いて、パイプライン・ブロック・サイファ暗号化ハードウェア・モジュール５０２の生成された出力がＸＯＲハードウェア・モジュール５２２にフィードバックされ、同時に、もう１つのＸＯＲハードウェア・モジュール５２４に供給される。その供給されたブロック・サイファ暗号化ハードウェア・モジュールの出力が、ＸＯＲハードウェア・モジュール５２４を使用して前述の第１暗号化ＩＶ／カウンタ・データと論理的に結合され、図示のように、「ＣＣＭＭＡＣ」を指定するデータを生成させる。
【００４４】
図６は、本発明の実施例に従って、共用のハードウェアを利用して暗号文及びメッセージ認証コードを生成するためのプロセスの流れ図を示す。図示のプロセスの実施例では、平文のメッセージ・データ、初期化ベクトル（ＩＶ）又は他のナンス、及び認証付き暗号化モード選択データが先ず受け取られる（プロセス・ブロック５０２）。しかる後、例えば、受け取られた認証付き暗号化モード選択データを利用して、同時デュアル認証付き暗号化動作モードが選択されたかどうかの決定が行われる（プロセス・ブロック５０４）。デュアルＡＥモードが指定されない場合（即ち、多くのＡＥ動作モードのうちの選択された１つが利用されることになっていることを、受け取られた認証付き暗号化モード選択データが指定する場合）、その受け取られた平文のメッセージ・データ及び初期化ベクトルが関連の認証付き暗号化ユニット内の選択されたハードウェア・モジュールに供給される（プロセス・ブロック５０６）。一旦供給されると、上記平文のメッセージ・データ、初期化ベクトル・データ、および選択されたハードウェア・モジュールが、図示のように、暗号文のメッセージ・データ及び選択された認証付き暗号化ＭＡＣを生成するために利用される（プロセス・ブロック５０８）。
【００４５】
対照的に、デュアル認証付き暗号化動作モードが選択されたという決定が行われる場合、受け取られた平文のメッセージ・データ及び初期化ベクトル・データが、そのような入力データを受け取るように構成された対応する認証付き暗号化ユニットにおける各ハードウェア・モジュールの入力に供給される（プロセス・ブロック５１０）。しかる後、図示の実施例では、上記の認証付き暗号化ユニットに関連付けられた第１ハードウェア・モジュールを利用して、暗号文のメッセージ・データ及び第１認証付き暗号化ＭＡＣが生成され（プロセス・ブロック５１２）、一方、第２認証付き暗号化ＭＡＣが、もう１つの関連した（第２）ハードウェア・モジュールを利用して生成される（プロセス・ブロック５１４）。
【００４６】
一旦上記の暗号文のメッセージ・データ及びＭＡＣが生成されてしまうと、認証の更なる層が２つ以上の事前生成された認証付き暗号化ＭＡＣの組合せを介して提供されるべきものであるかどうかの決定が（例えば、受け取られたＡＥモード選択データを利用して）行われる（プロセス・ブロック５１６）。そのような組合せは、本発明の別の実施例において任意の多くの技法（例えば、連結、インターリービング等）を使用して遂行することが可能である。上記の決定に続いて、ＭＡＣの組合せが選択されたという決定に応答して、２つ以上の選択されたＭＡＣが結合される（プロセス・ブロック５１８）。プロセス・ブロック５１６の結果が否定的である場合または選択されたハードウェア・モジュールを使用して暗号文のメッセージ・データ及びＭＡＣの生成（プロセス・ブロック５０８）に続いて、その生成された暗号文のメッセージ・データ及び選択されたＭＡＣが関連の認証付き暗号化ユニットの出力として供給される（プロセス・ブロック５２０）。
【００４７】
図６に示された流れ図は特定の動作順序及び特定の細分化したプロセス・オペレーションを表すが、別の実施例では、図示の順序が変更されることがあり（例えば、プロセス・オペレーションが別の順序で遂行されるか、または実質的に並行して遂行され得るし）、１つ又は複数のプロセス・オペレーションが合体されるか又は断片化されることが可能である。同様に、本発明の別の実施例では、必要な場合、追加のプロセス・オペレーションが加えられることも可能である。
【００４８】
十分に機能的なデータ処理システムに関連して本発明を説明したが、本発明がコンピュータ・プログラムとして種々の形式で配布し得るものであることは当業者には明らかであろう。このようなコンピュータ・プログラムの保持媒体の例は、フロッピ・ディスク及びＣＤ−ＲＯＭのような記録可能媒体、デジタル及びアナログ通信リンクのような伝送タイプの媒体、並びに将来開発されるメディア・ストレージ及び分散システムを含む。本発明の実施例は、或るオペレーションまたはタスクを遂行するために使用されるソフトウェア・モジュールを利用して、同様に具現化することが可能である。上記のソフトウェア・モジュールは、スクリプト、バッチ、または他の実行可能ファイルを含み得るし、マシン可読媒体またはコンピュータ可読媒体に記憶することが可能である。従って、モジュールはソフトウェア・モジュールの１つ又は複数の機能を遂行すべくデータ処理システム又はコンピュータ・システムを構成するようにコンピュータ・システム・メモリ内に記憶することも可能である。本願において検討されたモジュールを記憶するために、他の新しいタイプ及び種々のタイプのマシンまたはコンピュータ可読記憶媒体を使用することも可能である。
【００４９】
本発明の特定の実施例を図示し、説明したが、本発明及びその広範な側面から逸脱することなく、本願における教示に基づいて変更及び修正を行うことも可能である。例えば、ＣＣＭおよびＧＣＭ認証付き暗号化モードのオペレーションを本願において排他的に説明したが、別の実施例では、ＧＣＭ、ＣＣＭ、ＥＡＸ、ＯＭＡＣ、ＯＣＢ等の種々の組合せを提供することも可能である。従って、「特許請求の範囲」は、本発明に真意及び範囲内でのそのような変更及び修正をすべてそれらの範囲内に包含するものである。
【００５０】
従って、本発明は、すべての点において均等物を十分に考慮するが、「特許請求の範囲」によってのみ限定されるべきものである。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施例による通信ネットワークを示す概略図である。
【図２】本発明の実施例に従って認証付き暗号化を遂行するように構成されたデータ処理システムを示す概略図である。
【図３】従来技術による第１の認証付き暗号化モードの認証付き暗号化ユニットのブロック図である。
【図４】従来技術による第２の認証付き暗号化モードの認証付き暗号化ユニットのブロック図である。
【図５】本発明の実施例によるマルチモード認証付き暗号化ユニットのブロック図である。
【図６】本発明の実施例に従って、共用ハードウェアを利用して暗号文及びメッセージ認証コードを生成するためのプロセスの流れ図である。
【図１】
0005120830.tif 000002
【図２】
0005120830.tif 000003
【図３】
0005120830.tif 000004
【図４】
0005120830.tif 000005
【図５】
0005120830.tif 000006
【図６】
0005120830.tif 000007