(57)【要約】  任意のブロックサイズｓに対応するストレージ用途に適したブロック暗号の提供。共通鍵ブロック暗号化装置は、可変長ｓビットの平文に鍵付き置換を行って、固定長ｎビットの第１のブロック（ＸＡ）と、ｓ−ｎビットの第２のブロック（ＸＢ）と、を生成し、第１のブロック（ＸＡ）を入力として、ｔｗｅａｋを使用するｎビットブロックｔｗｅａｋａｂｌｅブロック暗号（ＴＷＢ）を用いて第３のブロック（ＹＡ）を生成する。次に、共通鍵ブロック暗号化装置は、少なくとも既知平文攻撃に対し理論的安全性を有する任意の暗号を用いて、第３のブロック（ＹＡ）と第１のブロック（ＸＡ）との群演算結果からｓ−ｎビットの乱数ブロック（Ｚ）を生成する。最後に、共通鍵ブロック暗号化装置は、乱数ブロック（Ｚ）及び第２のブロック（ＸＢ）の群演算結果と、第３のブロック（ＹＡ）とに対し鍵付き置換を行って、ｎビットの第５のブロック（ＣＡ）と、ｓ−ｎビットの第６のブロック（ＣＢ）と、を生成し、ｓビットの暗号文を得る。（図１）
2009020060.tif 000002
【特許請求の範囲】
【請求項１】
可変長ｓビットの平文に鍵付き置換を行って、固定長ｎビットの第１のブロックと、ｓ−ｎビットの第２のブロックと、を出力する第１のハッシュ手段と、
前記第１のブロックを入力として、ｔｗｅａｋを使用するｎビットブロックｔｗｅａｋａｂｌｅブロック暗号を用いて暗号化した第３のブロックを出力する第１の暗号処理手段と、
前記第３のブロックと前記第１のブロックとの群演算結果を入力とし、少なくとも既知平文攻撃に対し理論的安全性を有する任意の暗号を用いてｓ−ｎビットの乱数ブロックを生成する第２の暗号処理手段と、
前記乱数ブロック及び前記第２ブロックの群演算結果と、前記第３のブロックとに対し鍵付き置換を行って、ｎビットの第５のブロックと、ｓ−ｎビットの第６のブロックと、を出力する第２のハッシュ手段と、を備え、
前記第５、第６のブロックを連結してｓビットの暗号文を出力すること、
を特徴とする共通鍵ブロック暗号化装置。
【請求項２】
前記第２の暗号処理手段は、前記第３のブロックの出力に使用される鍵とは異なる、独立な鍵を用いてカウンターモードで動作し乱数ブロックを生成するｎビットブロック暗号により構成される請求項１に記載の共通鍵ブロック暗号化装置。
【請求項３】
前記第２の暗号処理手段は、前記第３のブロックの出力に使用される鍵とは異なる、独立な鍵を用いて出力フィードバック（ＯＦＢ）モードで動作し乱数ブロックを生成するｎビットブロック暗号により構成される請求項１に記載の共通鍵ブロック暗号化装置。
【請求項４】
前記第２の暗号処理手段は、
前記第３のブロックの出力に使用されるｔｗｅａｋ値ｔｗとは異なる固定ｔｗｅａｋ値ｒｖを設定した前記ｎビットブロックｔｗｅａｋａｂｌｅブロック暗号を用いて乱数ブロックを生成すること、
を特徴とする請求項１に記載の共通鍵ブロック暗号化装置。
【請求項５】
前記第２の暗号処理手段は、ｎビットブロック暗号をｔｗｅａｋａｂｌｅに変える暗号運用モードで動作させることにより、前記乱数ブロックを生成すること、
を特徴とする請求項４に記載の共通鍵ブロック暗号化装置。
【請求項６】
前記第２の暗号処理手段は、前記固定ｔｗｅａｋ値ｒｖによりｎビットブロックｔｗｅａｋａｂｌｅブロック暗号をカウンターモードで動作させることにより乱数ブロックを生成する請求項４、５に記載の共通鍵ブロック暗号化装置。
【請求項７】
前記第２の暗号処理手段は、前記固定ｔｗｅａｋ値ｒｖによりｎビットブロックｔｗｅａｋａｂｌｅブロック暗号を出力フィードバック（ＯＦＢ）モードで動作させることにより乱数ブロックを生成する請求項４、５に記載の共通鍵ブロック暗号化装置。
【請求項８】
前記第２の暗号処理手段は、Ｉｎｉｔｉａｌ  Ｖｅｃｔｏｒとして前記第１、第３のブロックの群演算の結果を入力し、ｓ−ｎビットの鍵ストリームを出力する加法的ストリーム暗号を用いてｓ−ｎビットの乱数ブロックを生成すること、
を特徴とする請求項１に記載の共通鍵ブロック暗号化装置。
【請求項９】
前記加法的ストリーム暗号の鍵は、前記第３のブロックの出力に使用されるｔｗｅａｋ値ｔｗとは異なる固定ｔｗｅａｋ値ｒｖを用いるｎビットブロックｔｗｅａｋａｂｌｅブロック暗号を用いて生成されること、
を特徴とする請求項８に記載の共通鍵ブロック暗号化装置。
【請求項１０】
前記加法的ストリーム暗号の鍵は、ｎビットブロック暗号をｔｗｅａｋａｂｌｅに変える暗号運用モードで動作させることにより生成されること、
を特徴とする請求項９に記載の共通鍵ブロック暗号化装置。
【請求項１１】
前記第１の暗号処理手段は、ｎビットブロック暗号をｔｗｅａｋａｂｌｅに変える暗号運用モードで動作させることにより、前記第３のブロックの生成を行うこと、
を特徴とする請求項１乃至１０いずれか一に記載の共通鍵ブロック暗号化装置。
【請求項１２】
前記第１のハッシュ手段は、ｓビットの平文のうちのｓ−ｎビットを前記第２のブロックとし、該第２のブロックをハッシュ関数を用いて圧縮した結果と、ｓビットの平文のうちのｎビットブロックと、の和を第１のブロックとして出力し、
前記第２のハッシュ手段は、前記第４のブロックをハッシュ関数を用いて圧縮した結果及び前記第３のブロックとの和を前記ＣＡブロックとし、前記第４のブロックを前記ＣＢブロックとして出力する請求項１乃至１１いずれか一に記載の共通鍵ブロック暗号化装置。
【請求項１３】
前記ハッシュ関数として、ｎビットの秘密鍵を変数とした有限体ＧＦ（２ｎ）上の多項式ハッシュ関数を用い、
前記第１、第２のハッシュ手段は、パディングにより、入力の長さをｎの整数倍にそろえて入力する請求項１２に記載の共通鍵ブロック暗号化装置。
【請求項１４】
前記第１の暗号処理手段で用いるｔｗｅａｋ値が固定されていること、
を特徴とする請求項１乃至１３いずれか一に記載の共通鍵ブロック暗号化装置。
【請求項１５】
データを暗号化してストレージに書き込む際に、
可変長ｓビットの平文に鍵付き置換を行って、固定長ｎビットの第１のブロックと、ｓ−ｎビットの第２のブロックと、を出力するステップと、
前記第１のブロックを入力として、ｔｗｅａｋを使用するｎビットブロックｔｗｅａｋａｂｌｅブロック暗号を用いて暗号化した第３のブロックを出力するステップと、
前記第３のブロックと前記第１のブロックとの群演算結果を入力とし、少なくとも既知平文攻撃に対し理論的安全性を有する任意の暗号を用いてｓ−ｎビットの乱数ブロックを生成するステップと、
前記乱数ブロック及び前記第２ブロックの群演算結果と、前記第３のブロックとに対し鍵付き置換を行って、ｎビットの第５のブロックと、ｓ−ｎビットの第６のブロックと、を出力するステップと、
前記第５、第６のブロックを連結してｓビットの暗号文を前記ストレージに書き込むステップと、を含むこと、
を特徴とする共通鍵ブロック暗号化方法。
【請求項１６】
ｓビットの平文に鍵付きｓビット置換を行って得られるビット列から得たｎビットの第１のブロックを入力として、ｔｗｅａｋを使用するｎビットブロックｔｗｅａｋａｂｌｅブロック暗号を用いて暗号化する第１の暗号化処理と、
可変長ｓビットの平文に鍵付き置換を行って、固定長ｎビットの第１のブロックと、ｓ−ｎビットの第２のブロックと、を出力する処理と、
前記第１のブロックを入力として、ｔｗｅａｋを使用するｎビットブロックｔｗｅａｋａｂｌｅブロック暗号を用いて暗号化した第３のブロックを出力する処理と、
前記第３のブロックと前記第１のブロックとの群演算結果を入力とし、少なくとも既知平文攻撃に対し理論的安全性を有する任意の暗号を用いてｓ−ｎビットの乱数ブロックを生成する処理と、
前記乱数ブロック及び前記第２ブロックの群演算結果と、前記第３のブロックとに対し鍵付き置換を行って、ｎビットの第５のブロックと、ｓ−ｎビットの第６のブロックと、を出力する処理と、
前記第５、第６のブロックを連結してｓビットの暗号文を前記ストレージに書き込む処理と、をコンピュータに実行させ、データを暗号化してストレージに書き込むためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の記載］
本発明は、日本国特許出願：特願２００７−２０４１３２号（２００７年８月６日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラムに関し、特に、ＩＥＥＥのＳｅｃｕｒｉｔｙ  ｉｎ  Ｓｔｏｒａｇｅ  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐで標準化が検討されているディスクセクタ向けの暗号化に適した共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラムに関する。
【背景技術】
【０００２】
ブロック暗号やハッシュ関数等を部品とし、新たな暗号を構成するアプローチが数多く知られている。例えばハードディスク等のストレージの暗号化においては、暗号化データのセクタ単位での処理を容易とするために、標準的なブロックサイズ（１２８ｂｉｔなど）のブロック暗号を用いてセクタのサイズに対応した、より大きなブロックサイズ（５１２ｂｉｔ等）をターゲットブロックサイズとするブロック暗号を構成する研究が行われている。【０００３】
通常、このような暗号部品の組合せにおいては、部品の選択平文攻撃への安全性が、できあがった暗号の十分な安全性を確保するために必要とされてきた。十分な安全性とは、対象がブロック暗号であれば選択平文攻撃への安全性、若しくは、選択平文攻撃と選択暗号文攻撃を任意に組み合わせた攻撃（以降、単に選択暗号文攻撃と言う）への安全性であり、ストリーム暗号であれば、初期ベクトル（Ｉｎｉｔｉａｌ  ｖｅｃｔｏｒ，以下、「ＩＶ」と略する。）を攻撃者が選択できるというモデルのもとでの選択平文攻撃への安全性である。【０００４】
選択平文攻撃、若しくは、選択暗号文攻撃に対し安全な部品のみを用い、理論的に安全性が保証できるよう構成された暗号では、そのスループット（単位時間当たりの処理量）は、部品のスループットを上回ることはできない。これに対して、選択平文／暗号文攻撃に安全な部品のみを用いるのではなく、より弱い定義の安全性の基準を満たす部品と組み合わせるアプローチが非特許文献１［ＢＩＢ−ＡＲＶ］に記載されている。【０００５】
非特許文献１［ＢＩＢ−ＡＲＶ］では、高い安全性を持つが比較的遅い暗号処理と、比較的弱い安全性のみを持つが高速な暗号処理とを組み合わせて、高い安全性と高速な動作を達成することが提案されている。より具体的には、非特許文献１［ＢＩＢ−ＡＲＶ］は、ＩＶを入力としたブロック暗号の出力を別の決定的関数ｆｕｎｃで拡大することにより、ＩＶ付き加法的ストリーム暗号を構成することが提案されている。この場合、ブロック暗号が選択平文攻撃に安全であり、ｆｕｎｃが安全な擬似乱数生成器であれば、構成されたＩＶ付き加法的ストリーム暗号もまた選択ＩＶ攻撃について安全であることが示されている。【０００６】
ここでの擬似乱数生成器とは、ランダムな入力において、入力が未知の一様乱数ならばその出力が一様乱数と計算量的に判別困難な関数のことを指し、入力を適応的に選択しながら出力の乱数性を判定する選択平文攻撃に対する安全性までは、求められていない。【０００７】
従って、擬似乱数生成器は、選択平文攻撃に安全な部品より高速に動作することが期待できる。実際、上記非特許文献１［ＢＩＢ−ＡＲＶ］のアプローチは、対象のＩＶ付き加法的ストリーム暗号のスループットを関数ｆｕｎｃのスループットと漸近的には同じにするものである。【０００８】
非特許文献１［ＢＩＢ−ＡＲＶ］は、あくまでストリーム暗号の構築がゴールであったが、ブロック暗号における同様のアプローチが非特許文献２［ＢＩＢ−ＨＹＢ］で示されている。より具体的には、非特許文献２［ＢＩＢ−ＨＹＢ］においては、選択平文攻撃と選択暗号文攻撃の組み合わせ（以下、「選択暗号文攻撃」と略する。）に対し安全なブロック暗号と、既知平文攻撃に対し安全な暗号（必ずしもブロック暗号とは限らない。）とを組み合わせ、任意の大きいブロックサイズのブロック暗号を構成する手法が示されている。【０００９】
なお、非特許文献２［ＢＩＢ−ＨＹＢ］では、最終的に構成される暗号が選択平文攻撃のみに対する安全性を持つ方法（ＰＲＰ；Ｐｓｅｕｄｏ−Ｒａｎｄｏｍ  Ｐｅｒｍｕｔａｔｉｏｎ）と、選択暗号文攻撃への安全性を持つ方法（ＳＰＲＰ；Ｓｔｒｏｎｇ  Ｐｓｅｕｄｏ−Ｒａｎｄｏｍ  Ｐｅｒｍｕｔａｔｉｏｎ）が示されているが、以下、後者の方法（ＳＰＲＰ）を、ｎビットブロックの選択暗号文攻撃に安全なブロック暗号Ｅと、ｎビット入力、可変長出力の既知平文攻撃に安全な暗号Ｆを用いて実現する場合を考える。【００１０】
まず、上記暗号Ｆは、ｎビット入出力の既知平文攻撃に安全な暗号を非特許文献３［ＢＩＢ−ＩＣＴ］に記載のＩＣＴ（Ｉｎｃｒｅａｓｉｎｇ  Ｃｈａｉｎ  Ｔｒｅｅ）モード等で動作させることで実現できることが知られている。従って、非特許文献２［ＢＩＢ−ＨＹＢ］の方法でｎｍビットブロックサイズの選択暗号文攻撃に安全なブロック暗号を構成する場合、暗号Ｅを２回、暗号Ｆを１回コールして、（ｍ−２）ｎビットの出力を得ることとなっている。【００１１】
既知平文攻撃が選択暗号文攻撃よりも弱い攻撃であることから、暗号Ｅよりも暗号Ｆの方が単位出力ブロックあたりの計算量において高速であることが期待できる。このため、非特許文献２［ＢＩＢ−ＨＹＢ］の方法のスループットは漸近的には暗号Ｆのスループットと一致する。【００１２】
非特許文献２［ＢＩＢ−ＨＹＢ］が実現する、選択暗号文攻撃に安全な大きなブロックサイズのブロック暗号は、コンピュータ上のファイル等の暗号化に有用であるが、一般的なストレージ暗号化としては、さらに、ｔｗｅａｋと呼ばれるブロック暗号に対する付加的パラメータが必要となることがある。【００１３】
ｔｗｅａｋは、ストレージが複数の個別の領域に分割されているとき等に有用である。例えば、ハードディスクの暗号化においては、ディスクはセクタと呼ばれる一般的に５１２ｂｙｔｅの単位に分けられており、暗号化の際には、セクタ毎に暗号化することになる。しかしどのセクタも同一の鍵を用いて暗号化することは、異なるセクタにある同一情報の存在を漏らすため、好ましくない。そこで、ｔｗｅａｋをセクタ番号とし、ｔｗｅａｋが異なれば同一の平文でもまったく異なる暗号文となるような暗号化が行われる。【００１４】
このような性質を持つパラメータは従来いくつかのブロック暗号で取り入れられていたが、理論的には非特許文献４［ＢＩＢ−ＬＲＷ］にて定式化されている。また、一般のｔｗｅａｋを持たないｎビットブロック暗号からｎビットのｔｗｅａｋａｂｌｅなブロック暗号を構成する手法は、非特許文献４［ＢＩＢ−ＬＲＷ］のほか非特許文献５［ＢＩＢ−ＸＥＸ］で示されている。ここで、あるｔｗｅａｋ付きのブロック暗号が、非特許文献５［ＢＩＢ−ＬＲＷ］の定義に基づく安全性を満たすとき、そのブロック暗号はｔｗｅａｋｂｌｅであると呼ばれる。【００１５】
また、ｎビットブロック暗号のみを用いて、ｎ以上の整数ｓについてｔｗｅａｋａｂｌｅなｓビットブロック暗号を構成する方法は、非特許文献６［ＢＩＢ−ＨＣＴＲ］や非特許文献７［ＢＩＢ−ＨＣＨ］に記載の方法が知られている。これらの方法は、選択暗号文攻撃に安全なブロック暗号をブラックボックスとして用いており、その選択暗号文攻撃への安全性は使用するブロック暗号の選択暗号文攻撃への安全性に帰着される。【００１６】
また、非特許文献８［ＢＩＢ−ＭＭＨ］には、Ｍｕｌｔｉｍｏｄｕｌａｒ  Ｈａｓｈ  Ｆｕｎｃｔｉｏｎを用いて、ＡＸＵ（Ａｌｍｏｓｔ−ＸＯＲ−Ｕｎｉｖｅｒｓａｌ）ハッシュ関数を実現する方法が記載されている。【００１７】
非特許文献９［ＢＩＢ−ＰＯＬＹ］には、有限体上での積を高速に行うアルゴリズムが記載されている。【００１８】
非特許文献１０［ＢＩＢ−ＡＥＳ］には、選択暗号文攻撃に安全なブロック暗号の一例が記載されている。【００１９】
非特許文献１１［ＢＩＢ−ＧＩＬ］には、ブロック暗号の修正カウンターモードが記載されている。【００２０】
非特許文献１２［ＢＩＢ−ＳＥＡＬ］には、ストリーム暗号ＳＥＡＬが記載されている。非特許文献１３［ＢＩＢ−ＬＥＸ］には、非特許文献１０［ＢＩＢ−ＡＥＳ］のＡＥＳをベースとしたストリーム暗号ＬＥＸが記載されている。【００２１】
【非特許文献１】［ＢＩＢ−ＡＲＶ］  Ｗ．  Ａｉｅｌｌｏ，  Ｓ．  Ｒａｊａｇｏｐａｌａｎ  ａｎｄ  Ｒ．  Ｖｅｎｋａｔｅｓａｎ，  Ｈｉｇｈ−Ｓｐｅｅｄ  Ｐｓｅｕｄｏｒａｎｄｏｍ  Ｎｕｍｂｅｒ  Ｇｅｎｅｒａｔｉｏｎ  ｗｉｔｈ  Ｓｍａｌｌ  Ｍｅｍｏｒｙ，  Ｆａｓｔ  Ｓｏｆｔｗａｒｅ  Ｅｎｃｒｙｐｔｉｏｎ，  ６ｔｈ  ＩｎｔｅｒｎａｔｉｏｎａｌＷｏｒｋｓｈｏｐ，  ＦＳＥ’９９，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ；  Ｖｏｌ．  １６３６，  Ｍａｒ．  １９９９
【非特許文献２】［ＢＩＢ−ＨＹＢ］  Ｋａｚｕｈｉｋｏ  Ｍｉｎｅｍａｔｓｕ，  Ｙｕｋｉｙａｓｕ  Ｔｓｕｎｏｏ，  Ｈｙｂｒｉｄ  Ｓｙｍｍｅｔｒｉｃ  Ｅｎｃｒｙｐｔｉｏｎ  Ｕｓｉｎｇ  Ｋｎｏｗｎ−Ｐｌａｉｎｔｅｘｔ  Ａｔｔａｃｋ−Ｓｅｃｕｒｅ  Ｃｏｍｐｏｎｅｔｓ．ｐｐ．２４２−２６０，  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｃｒｙｐｔｏｌｏｇｙ−ＩＣＩＳＣ  ２００２，  ５ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  Ｓｅｏｕｌ，  Ｋｏｒｅａ，  Ｎｏｖｅｍｂｅｒ  ２８−２９，  ２００２．  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ２５８７  Ｓｐｒｉｎｇｅｒ  ２００３，  ＩＳＢＮ  ３−５４０−００７１６−４
【非特許文献３】［ＢＩＢ−ＩＣＴ］  Ｕ．  Ｍａｕｒｅｒ  ａｎｄ  Ｊ．  Ｓｊｏｅｄｉｎ，  Ｆｒｏｍ  Ｋｎｏｗｎ−Ｐｌａｉｎｔｅｘｔ  ｔｏ  Ｃｈｏｓｅｎ−Ｃｉｐｈｅｒｔｅｘｔ  Ｓｅｃｕｒｉｔｙ，  Ｃｒｙｐｔｏｌｏｇｙ  ｅＰｒｉｎｔ  Ａｒｃｈｉｖｅ  ２００６／０７１，  ｈｔｔｐ：／／ｅｐｒｉｎｔ．ｉａｃｒ．ｏｒｇ／２００６／０７１．ｐｄｆ
【非特許文献４】［ＢＩＢ−ＬＲＷ］  Ｍ．  Ｌｉｓｋｏｖ，  Ｒ．  Ｒｉｖｅｓｔ，  ａｎｄ  Ｄ．  Ｗａｇｎｅｒ，  Ｔｗｅａｋａｂｌｅ  Ｂｌｏｃｋ  Ｃｉｐｈｅｒｓ，  Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ−  ＣＲＹＰＴＯ’０２，  ＬＮＣＳ  ２４４２，  ｐｐ．  ３１−４６，  ２００２．
【非特許文献５】［ＢＩＢ−ＸＥＸ］  Ｐ．  Ｒｏｇａｗａｙ，  Ｅｆｆｉｃｉｅｎｔ  Ｉｎｓｔａｎｔｉａｔｉｏｎｓ  ｏｆ  Ｔｗｅａｋａｂｌｅ  Ｂｌｏｃｋｃｉｐｈｅｒｓ  ａｎｄ  Ｒｅｆｉｎｅｍｅｎｔｓ  ｔｏ  Ｍｏｄｅｓ  ＯＣＢ  ａｎｄ  ＰＭＡＣ．，  Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ−  ＡＳＩＡＣＲＹＰＴ’０４．  ＬＮＣＳ  ３３２９，  ｐｐ．  １６−３１，  ２００４．
【非特許文献６】［ＢＩＢ−ＨＣＴＲ］  Ｐｅｎｇ  Ｗａｎｇ，  Ｄｅｎｇｇｕｏ  Ｆｅｎｇ，  Ｗｅｎｌｉｎｇ  Ｗｕ，  ＨＣＴＲ：  Ａ  Ｖａｒｉａｂｌｅ−Ｉｎｐｕｔ−Ｌｅｎｇｔｈ  Ｅｎｃｉｐｈｅｒｉｎｇ  Ｍｏｄｅ，  ｐｐ．  １７５−１８８，  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｃｒｙｐｔｏｌｏｇｙ，  Ｆｉｒｓｔ  ＳＫＬＯＩＳ  Ｃｏｎｆｅｒｅｎｃｅ，  ＣＩＳＣ  ２００５，  Ｐｒｏｃｅｅｄｉｎｇｓ．  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ３８２２  Ｓｐｒｉｎｇｅｒ  ２００５．
【非特許文献７】［ＢＩＢ−ＨＣＨ］  Ｄｅｂｒｕｐ  Ｃｈａｋｒａｂｏｒｔｙ，  Ｐａｌａｓｈ  Ｓａｒｋａｒ，  ＨＣＨ：  Ａ  Ｎｅｗ  Ｔｗｅａｋａｂｌｅ  Ｅｎｃｉｐｈｅｒｉｎｇ  Ｓｃｈｅｍｅ  Ｕｓｉｎｇ  ｔｈｅ  Ｈａｓｈ−Ｅｎｃｒｙｐｔ−Ｈａｓｈ  Ａｐｐｒｏａｃｈ，  ｐｐ．  ２８７−３０２，  Ｐｒｏｇｒｅｓｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ  −  ＩＮＤＯＣＲＹＰＴ  ２００６，  Ｐｒｏｃｅｅｄｉｎｇｓ．  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  ４３２９  Ｓｐｒｉｎｇｅｒ  ２００６．
【非特許文献８】［ＢＩＢ−ＭＭＨ］  Ｓ．  Ｈａｌｅｖｉ  ａｎｄ  Ｈ．  Ｋｒａｗｃｚｙｋ，  ＭＭＨ：Ｓｏｆｔｗａｒｅ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｉｎ  ｔｈｅ  Ｇｂｉｔ／ｓｅｃｏｎｄ  Ｒａｔｅｓ，  Ｆａｓｔ  Ｓｏｆｔｗａｒｅ  Ｅｎｃｒｙｐｔｉｏｎ，  ４ｔｈ  Ｉｎｔｅｒｎａｔｉｏａｎｌ  Ｗｏｒｋｓｈｏｐ，  ＦＳＥ  ’９７，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ；  Ｖｏｌ．  １２６７，  Ｓｐｒｉｎｇｅｒ  １９９７  ｐｐ．１７２−１８９
【非特許文献９】［ＢＩＢ−ＰＯＬＹ］  Ｔｈｅ  Ｐｏｌｙ１３０５−ＡＥＳ  Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ，  Ｄ．Ｊ．Ｂｅｒｎｓｔｅｉｎ，  Ｆａｓｔ  ＳｏｆｔｗａｒｅＥｎｃｒｙｐｔｉｏｎ，  ＦＳＥ  ２００５，  Ｌｅｃｔｕｒｅ  ｎｏｔｅｓ  ｉｎ  ｃｏｍｐｕｔｅｒ  ｓｃｉｅｎｃｅ  ３５５７，  ｐｐ．３２−４９，  Ｓｐｒｉｎｇｅｒ，  ２００５．
【非特許文献１０】［ＢＩＢ−ＡＥＳ］  Ｊ．  Ｄａｅｍｅｎ，  Ｖ．  Ｒｉｊｍｅｎ，  “ＡＥＳ  Ｐｒｏｐｏｓａｌ：  Ｒｉｊｎｄａｅｌ”，  ＡＥＳ  ｓｕｂｍｉｓｓｉｏｎ，  １９９８．
【非特許文献１１】［ＢＩＢ−ＧＩＬ］  Ｈｅｎｒｉ  Ｇｉｌｂｅｒｔ，  Ｔｈｅ  Ｓｅｃｕｒｉｔｙ  ｏｆ  “Ｏｎｅ−Ｂｌｏｃｋ−ｔｏ−Ｍａｎｙ”  Ｍｏｄｅｓ  ｏｆ  Ｏｐｅｒａｔｉｏｎ，  ＦＳＥ  ２００３，  Ｌｅｃｔｕｒｅ  ｎｏｔｅｓ  ｉｎ  ｃｏｍｐｕｔｅｒ  ｓｃｉｅｎｃｅ  ２８８７，  ｐｐ．３７６−３９５，  ２００３．
【非特許文献１２】［ＢＩＢ−ＳＥＡＬ］  Ｐ．  Ｒｏｇａｗａｙ  ａｎｄ  Ｄ．  Ｃｏｐｐｅｒｓｍｉｔｈ，  Ａ  Ｓｏｆｔｗａｒｅ−Ｏｐｔｉｍｉｚｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ａｌｇｏｒｉｔｈｍ，  Ｆａｓｔ  Ｓｏｆｔｗａｒｅ  Ｅｎｃｒｙｐｔｉｏｎ，  １ｓｔ  Ｉｎｔｅｒｎａｔｉｏａｎｌ  Ｗｏｒｋｓｈｏｐ，  ＦＳＥ  ’９３，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ；  Ｖｏｌ．  ８０９，  Ｆｅｂ．  １９９３．
【非特許文献１３】［ＢＩＢ−ＬＥＸ］Ａｌｅｘ  Ｂｉｒｙｕｋｏｖ，  “Ａ  ｎｅｗ  １２８  ｂｉｔ  ｋｅｙ  ｓｔｒｅａｍ  ｃｉｐｈｅｒ  ：  ＬＥＸ”，  ＥＣＲＹＰＴ  ｅＳｔｒｅａｍ  ｐｒｏｊｅｃｔ  ｃａｎｄｉｄａｔｅ．  ｈｔｔｐ：／／ｗｗｗ．ｅｃｒｙｐｔ．ｅｕ．ｏｒｇ／ｓｔｒｅａｍ／ｃｉｐｈｅｒｓ／ｌｅｘ／ｌｅｘ．ｐｄｆ
【発明の開示】
【発明が解決しようとする課題】
【００２２】
なお、上記非特許文献１〜１３の全開示内容はその引用をもって本書に繰込み記載する。以下の分析は、本発明によって与えられたものである。
上記した非特許文献２［ＢＩＢ−ＨＹＢ］のＳＰＲＰにより、選択暗号文攻撃に安全な大きなブロックサイズのブロック暗号を構成することが可能であるが、同文献には、ｔｗｅａｋは示されておらず、ｔｗｅａｋａｂｌｅな暗号を構成できないという問題点がある。【００２３】
更に、非特許文献２［ＢＩＢ−ＨＹＢ］のＳＰＲＰでは、１ブロックの暗号化に際して、暗号Ｅをコールする回数が２回となり、特に、ブロックサイズが比較的小さい場合において、相対的に暗号Ｅのコール回数が多くなり、速度向上の妨げとなる可能性がある。【００２４】
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、選択暗号文攻撃に安全なｎビットブロック暗号Ｅと、既知平文攻撃に安全なｎビット入力、可変長出力の暗号Ｆと、を用いて、選択暗号文攻撃への安全性を持ち、ｔｗｅａｋａｂｌｅ、かつ、上記暗号Ｅのコール回数を削減できる共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００２５】
本発明の第１の視点によれば、可変長ｓビットの平文を入力とし、下記処理を行って、ｓビットの暗号文を出力する共通鍵ブロック暗号化装置が提供される。第１のハッシュ手段は、可変長ｓビットの平文に鍵付き置換を行って、固定長ｎビットの第１のブロックと、ｓ−ｎビットの第２のブロックと、を出力する。第１の暗号処理手段は、前記第１のブロックを入力として、ｔｗｅａｋを使用するｎビットブロックｔｗｅａｋａｂｌｅブロック暗号を用いて暗号化した第３のブロックを出力する。第２の暗号処理手段は、前記第３のブロックと前記第１のブロックとの群演算結果を入力とし、少なくとも既知平文攻撃に対し理論的安全性を有する任意の暗号を用いてｓ−ｎビットの乱数ブロックを生成する。第２のハッシュ手段は、前記乱数ブロック及び前記第２ブロックの群演算結果と、前記第３のブロックとに対し鍵付き置換を行って、ｎビットの第５のブロックと、ｓ−ｎビットの第６のブロックと、を出力する。最後に、前記第５、第６のブロックを連結してｓビットの暗号文が出力される。【００２６】
本発明の第２の視点によれば、下記処理を行って、データを暗号化してストレージに書き込む共通鍵ブロック暗号化方法が提供される。まず、ストレージに接続されたコンピュータが、可変長ｓビットの平文に鍵付き置換を行って、固定長ｎビットの第１のブロックと、ｓ−ｎビットの第２のブロックと、を出力する。次に、前記コンピュータが、前記第１のブロックを入力として、ｔｗｅａｋを使用するｎビットブロックｔｗｅａｋａｂｌｅブロック暗号を用いて暗号化した第３のブロックを出力する。次に、前記コンピュータが、前記第３のブロックと前記第１のブロックとの群演算結果を入力とし、少なくとも既知平文攻撃に対し理論的安全性を有する任意の暗号を用いてｓ−ｎビットの乱数ブロックを生成する。次に、前記コンピュータが、前記乱数ブロック及び前記第２ブロックの群演算結果と、前記第３のブロックとに対し鍵付き置換を行って、ｎビットの第５のブロックと、ｓ−ｎビットの第６のブロックと、を出力する。最後に、前記コンピュータが、前記第５、第６のブロックを連結してｓビットの暗号文を前記ストレージに書き込む。【００２７】
本発明の第３の視点によれば、コンピュータに下記処理を実行させて、データを暗号化してストレージに書き込ませるプログラムが提供される。まず、ｓビットの平文に鍵付きｓビット置換を行って得られるビット列から得たｎビットの第１のブロックを入力として、ｔｗｅａｋを使用するｎビットブロックｔｗｅａｋａｂｌｅブロック暗号を用いて暗号化する第１の暗号化処理が実行される。次に、可変長ｓビットの平文に鍵付き置換を行って、固定長ｎビットの第１のブロックと、ｓ−ｎビットの第２のブロックと、を出力する処理が実行される。次に、前記第１のブロックを入力として、ｔｗｅａｋを使用するｎビットブロックｔｗｅａｋａｂｌｅブロック暗号を用いて暗号化した第３のブロックを出力する処理が実行される。次に、前記第３のブロックと前記第１のブロックとの群演算結果を入力とし、少なくとも既知平文攻撃に対し理論的安全性を有する任意の暗号を用いてｓ−ｎビットの乱数ブロックを生成する処理が実行される。次に、前記乱数ブロック及び前記第２ブロックの群演算結果と、前記第３のブロックとに対し鍵付き置換を行って、ｎビットの第５のブロックと、ｓ−ｎビットの第６のブロックと、を出力するが実行される。最後に、前記第５、第６のブロックを連結してｓビットの暗号文を前記ストレージに書き込む処理が実行される。
【発明の効果】
【００２８】
本発明によれば、非特許文献２［ＢＩＢ−ＨＹＢ］に記載されたブロック暗号よりも、効率のよい暗号を実現することが可能となる。その理由は、事前処理を除いた暗号Ｅの呼び出し回数はターゲットのブロックサイズに拘わらず１回で済むためである。ブロックサイズが十分に大きいときには、Ｅの呼び出し回数１回の差はごくわずかであるが、ストレージ暗号化においては、ターゲットのブロックサイズは、比較的小さく、また、暗号Ｅは暗号Ｆよりも求められる安全性が高いため、暗号Ｆよりも大幅に遅い処理時間であると考えられ、従ってＥの呼び出し回数の差は効率に寄与すると考えられる。【００２９】
また、本発明によれば、ｎ以上の任意のブロックサイズに対してｔｗｅａｋａｂｌｅなブロック暗号を構成することが可能になる。この点においても、本発明は、ディスクセクタ暗号化に求められる技術要件を満たしており。非特許文献２［ＢＩＢ−ＨＹＢ］よりも汎用性の面で優れているということができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の第１の実施形態に係る共通鍵ブロック暗号化装置の構成を表したブロック図である。
【図２】本発明の第１の実施形態に係る共通鍵ブロック暗号化装置における処理の流れを表した流れ図である。
【図３】本発明の第２の実施形態に係る共通鍵ブロック暗号化装置の構成を表したブロック図である。
【符号の説明】
【００３１】
１０１  平文入力手段
１０２  第１のハッシュ手段
１０３  単位ブロックｔｗｅａｋａｂｌｅ暗号化手段（第１の暗号処理手段）
１０４、１０４ａ  擬似乱数生成手段（第２の暗号処理手段）
１０５  第２のハッシュ手段
１０６  暗号文出力手段
【発明を実施するための最良の形態】
【００３２】
続いて、本発明の好適な実施形態について、図面を参照して詳細に説明する。以下の本発明の実施形態では、ターゲットとなるブロックサイズをｓ（ｓはｎ以上の整数）とした場合で説明する。また、ＰＡ、ＸＡ、ＹＡ、ＣＡブロックはｎビットとし、ＰＢ、ＸＢ、ＹＢ、ＣＢブロックはｓ−ｎビットとする。【００３３】
［第１の実施形態］
図１は、本発明の第１の実施形態に係る共通鍵ブロック暗号化装置の構成を表したブロック図である。図１を参照すると、本発明の第１の実施形態に係る共通鍵ブロック暗号化装置は、平文入力手段１０１と、第１のハッシュ手段１０２と、単位ブロックｔｗｅａｋａｂｌｅ暗号化手段１０３と、擬似乱数生成手段１０４と、第２のハッシュ手段１０５と、暗号文出力手段１０６と、を含んで構成される。このうち、第１のハッシュ手段１０２と、単位ブロックｔｗｅａｋａｂｌｅ暗号化手段１０３と、擬似乱数生成手段１０４と、第２のハッシュ手段１０５の各手段及び図１中に表された群演算処理は、コンピュータを上記した各手段として機能させるプログラムによって実現することができる。【００３４】
平文入力手段１０１は、ｔｗｅａｋ値ｔｗと、暗号化される対象となるｓビットの平文（ＰＡブロックとＰＢブロック）を入力する手段である。平文入力手段１０１は、例えばキーボード等の文字入力装置により実現される。ｔｗｅａｋａｂｌｅである必要がない場合は、ｔｗｅａｋ値の入力は不要であり、常に固定の値とすればよい。【００３５】
第１のハッシュ手段１０２は、平文入力手段１０１より入力されたｓビットの平文をＰＡブロックとＰＢブロックとに分割し、ｎビットのＸＡブロック（第１のブロック）とｓ−ｎビットのＸＢブロック（第２のブロック）とを生成する。このとき、第１のハッシュ手段１０２は、ｓビットの異なる２つの平文について、それぞれのＸＡブロックでの衝突がごく小さい確率でのみ起きるような鍵付きのｓビット置換を行う。【００３６】
入力されたｓビットの平文の先頭（左側）ｎビットを取り出す関数をｌｅｆｔ、残る（右側）ｓ−ｎビットを取り出す関数をｒｉｇｈｔとし、第１のハッシュ手段１０２をＧ１で表すと、Ｇ１は、鍵付きのｓビット置換であり、Ｇ１の鍵がＫＨのときの入力ｘに対する出力をＧ１［ＫＨ］（ｘ）とすると、任意の異なる二入力ｘ、ｘ’についてｌｅｆｔ（Ｇ１［ＫＨ］（ｘ））＝ｌｅｆｔ（Ｇ１［ＫＨ］（ｘ’））、となる確率が小さいことが必要である。【００３７】
第１のハッシュ手段１０２は、例えば、ＡＸＵハッシュ関数によるフェイステル型置換により実現可能である。ＡＸＵハッシュ関数とは、異なる入力での出力の和がほぼ一様に分布することを特徴とする鍵付き関数であり、一般にユニバーサルハッシュ関数と呼ばれる関数の一種である。ＡＸＵハッシュ関数は、例えば、有限体の積や、非特許文献８［ＢＩＢ−ＭＭＨ］に記載のＭｕｌｔｉｍｏｄｕｌａｒ  Ｈａｓｈ  Ｆｕｎｃｔｉｏｎを使うことで実現可能である。
上記引用をもって、上記非特許文献８に記載されているＡＸＵハッシュ関数及び該関数を用いたフェイステル型置換は、本書に繰込み記載されているものとする。【００３８】
具体的には、ｓ−ｎビット入力、ｎビット出力のＡＸＵハッシュ関数をＨ１とした場合、入力ｘについて第１のハッシュ手段１０２の出力は、次の［数１］で表される。なお、［数１］のｌｅｆｔ（ｘ）がＰＡブロック、ｒｉｇｈｔ（ｘ）がＰＢブロック及びＸＢブロックに、そしてｌｅｆｔ（ｘ）＋Ｈ１（ｒｉｇｈｔ（ｘ））がＸＡブロックに対応する。また、［数１］中の＋記号はビット毎の排他的論理和を表すものとする。【００３９】
【数１】
2009020060.tif 000003
【００４０】
上記［数１］において、Ｈ１はＡＸＵハッシュ関数であればよいが、ごく単純な代数的アルゴリズムで実現することが可能である。整数ｍについてｓ＝ｎｍの場合、例えばｒｉｇｈｔ（ｘ）をｎビットベクトルｒ＿１，．．．，ｒ＿｛ｍ−１｝を用いてｒｉｇｈｔ（ｘ）＝（ｒ＿１，．．．，ｒ＿｛ｍ−１｝）と表した場合、Ｈ１はｎビットの鍵ＫＨを用いるとして、ＫＨを変数とし、ｒ＿１，．．．，ｒ＿｛ｍ−１｝を係数とした有限体ＧＦ（２ｎ）上の多項式計算により実現可能である。【００４１】
具体的な例として、次の［数２］を示す。［数２］中のｍｕｌ（ａ，ｂ）はａとｂの有限体上の積を表し、ＫＨ｛ｉ｝はＫＨの有限体上でのｉ乗を指す。有限体上での積を高速に行うアルゴリズムは、例えば、非特許文献９の［ＢＩＢ−ＰＯＬＹ］に示されている。
上記引用をもって、上記非特許文献９に記載されている有限体上での積を高速に行うアルゴリズムは、本書に繰込み記載されているものとする。【００４２】
【数２】
2009020060.tif 000004
【００４３】
なお、ｓがｎの整数倍でない場合は、任意のパディングを行い、長さをｎの整数倍にした後、上記［数２］へ入力すればよい。【００４４】
第１のハッシュ手段１０２の鍵ＫＨは、独立な乱数でもよいが、ｔｗｅａｋａｂｌｅブロック暗号を使用することもできる。この場合、平文入力手段１０１が常に生成しないｔｗｅａｋ値（予約語とされている固定ｔｗｅａｋ値）ｋｖについて任意の定数を暗号化し、得られた暗号文から生成することができる。【００４５】
単位ブロックｔｗｅａｋａｂｌｅ暗号化手段１０３は、平文入力手段１０１が出力するｔｗｅａｋ値ｔｗを用いて、ＸＡブロック（第１のブロック）の暗号Ｅによる暗号文であるＹＡブロック（第３のブロック）を生成する手段である。具体的には、ｔｗｅａｋａｂｌｅブロック暗号をＴＷＢとし、その鍵をＫＢとしたとき、平文ｘをｔｗｅａｋ値ｔｗについて暗号化した結果は、暗号文ｙ＝ＴＷＢ［ＫＢ］（ｔｗ，ｘ）で表される。従って、ＹＡブロックは、ＴＷＢ［ＫＢ］（ｔｗ，ＸＡブロック）となる。【００４６】
上記ｔｗｅａｋａｂｌｅブロック暗号は、非特許文献１０［ＢＩＢ−ＡＥＳ］に記載のＡＥＳ等の選択暗号文攻撃に安全なブロック暗号や、そのシリアル連結等を、非特許文献４［ＢＩＢ−ＬＲＷ］や非特許文献５［ＢＩＢ−ＸＥＸ］に記載の暗号運用モードで動作させることで実現可能である。非特許文献４［ＢＩＢ−ＬＲＷ］や非特許文献５［ＢＩＢ−ＸＥＸ］に記載の暗号運用モードは、先に述べたように、選択暗号文攻撃に安全なｔｗｅａｋａｂｌｅでないｎビットブロック暗号を、選択暗号文攻撃に安全なｎビットｔｗｅａｋａｂｌｅブロック暗号に変換するものである。
上記引用をもって、上記非特許文献１０に記載されているＡＥＳ等の選択暗号文攻撃に安全なブロック暗号及び上記非特許文献４、５に記載されている各種暗号運用モードは、それぞれ本書に繰込み記載されているものとする。【００４７】
擬似乱数生成手段１０４はＸＡブロック（第１のブロック）とＹＡブロック（第３のブロック）の和、若しくは、任意の群演算の結果を入力とし、ｓ−ｎビットのＺブロック（乱数ブロック）を生成する手段（第２の暗号処理手段）である。擬似乱数生成手段１０４は、少なくとも既知平文攻撃に対し安全であることが求められる。「既知平文攻撃に対し安全である」とは、攻撃者がランダムに入力（例えば、ＸＡブロックとＹＡブロックの和）を与えるもとで、Ｚブロックを得たときに、Ｚブロックと真の乱数との判別が困難となることが求められればよい。【００４８】
擬似乱数生成手段１０４で用いる鍵は、上記単位ブロックｔｗｅａｋａｂｌｅ暗号化手段１０３が用いる鍵とは独立であることが求められる。一般に乱数生成器の出力長は入力長ｎより大幅に長くなるが、擬似乱数生成手段１０４の上記処理においても、選択平文攻撃、若しくは、選択暗号文攻撃に安全なブロック暗号Ｅ’を用いることが可能である。入力をｘ（ＸＡブロックとＹＡブロックの和、あるいは、群演算結果）とすると、擬似乱数生成手段１０４の出力は、次の［数３］で表される。【００４９】
【数３】
2009020060.tif 000005
【００５０】
上記［数３］中のＫＢ’は、ブロック暗号Ｅ’の鍵である。また、単位ブロックｔｗｅａｋａｂｌｅ暗号化手段１０３が鍵ＫＢを用いている場合、ＫＢ’はＫＢと独立でなければならない。例えば、単位ブロックｔｗｅａｋａｂｌｅ暗号化手段１０３が、非特許文献４［ＢＩＢ−ＬＲＷ］や非特許文献５［ＢＩＢ−ＸＥＸ］に記載の暗号運用モードで、ｔｗｅａｋａｂｌｅでないｎビットブロック暗号Ｅをｔｗｅａｋａｂｌｅに変換して実現している場合、ブロック暗号Ｅ’とブロック暗号Ｅは同じブロック暗号アルゴリズムであっても、異なるアルゴリズムであってもよい。但し、この場合でも鍵ＫＢ’は、鍵ＫＢとは独立でなければならない。【００５１】
また、上記［数３］中のｃ（ｉ）は互いに異なる固定ｎビット値を表し、＋は排他的論理和を表す。なお、ｓ／ｎが整数でない場合は、ｓ／ｎより大きい最小の整数をｃｅｉｌとし、（Ｅ’［ＫＢ’］（ｃ（１）＋ｘ），  Ｅ’［ＫＢ’］（ｃ（２）＋ｘ），  ．．．  ，Ｅ’［ＫＢ’］（ｃ（ｃｅｉｌ）＋ｘ））の最初のｓ−ｎビットを取り出せばよい。【００５２】
上記［数３］は、ブロック暗号Ｅ’のカウンターモードと呼ばれる。また、ＯＦＢモード（出力フィードバックモード）を用いて、次の［数４］を出力してもよい。【００５３】
【数４】
2009020060.tif 000006
【００５４】
第２のハッシュ手段１０５は、ＹＡブロック（第３のブロック）と、Ｚブロック及びＸＢブロックとの和、若しくは、任意の群演算して得られるＹＢブロック（第４のブロック）から、ＣＡブロック（第５のブロック）、ＣＢブロック（第６のブロック）を出力する手段である。第２のハッシュ手段１０５は、第１のハッシュ手段１０２と同じ関数でよく、鍵は独立な乱数か、第１のハッシュ手段１０２が用いる値と同じでよい。【００５５】
暗号文出力手段１０６は、第２のハッシュ手段１０５より出力された暗号文（ＣＡブロック、ＣＢブロック）を連結して、暗号文として出力する手段である。具体的には、本発明に係るブロック暗号化方法を実行するコンピュータのディスプレイ装置やプリンタ等により構成できる。【００５６】
続いて、上記第１の実施形態に係る共通鍵ブロック暗号化装置の動作について図面を参照して説明する。【００５７】
図２は、本発明の第１の実施形態に係る共通鍵ブロック暗号化装置における処理の流れを表した流れ図である。図２を参照すると、まず、平文入力手段１０１が、ｔｗｅａｋ値ｔｗと、平文（ＰＡブロック、ＰＢブロック）の入力を受け付けする（ステップＡ１）。【００５８】
次に、第１のハッシュ手段１０２が、平文入力手段１０１より入力された平文をＰＡブロック、ＰＢブロックとに分割し、例えば、［数１］に示す式を用いて、ＸＡブロックとＸＢブロックを生成する（ステップＡ２）。【００５９】
次に、単位ブロックｔｗｅａｋｂｌｅ暗号化手段１０３が、ｔｗｅａｋ値ｔｗ、鍵ＫＨによりｔｗｅａｋａｂｌｅブロック暗号を用いて、ＸＡブロックを暗号化して、ＹＡブロックを生成する（ステップＡ３）。【００６０】
次に、擬似乱数生成手段１０４が、ステップＡ２で求めたＸＡブロックと、ステップＡ３で求めたＹＡブロックとの和、あるいは、任意の群演算の結果からＺブロックを生成する（ステップＡ４）。【００６１】
次に、ステップＡ４で求めたＺブロック及びステップＡ２で求めたＸＢブロックとを加算してＹＢブロックを生成し（ステップＡ５）、更に、第２のハッシュ手段１０５が、ＹＢブロックと、ステップＡ３で求めたＹＡブロックと、を用いて、例えば、［数１］に示す式を用いて、暗号文（ＣＡブロック、ＣＢブロック）を生成する（ステップＡ６）。    【００６２】
最後に、暗号文出力手段１０６が、暗号文（ＣＡブロック、ＣＢブロック）を出力する（ステップＡ７）。【００６３】
以上のようにして、事前処理を除き、上記ｔｗｅａｋａｂｌｅブロック暗号を１回コールすることにより、ｎビットより大きいｓビットで選択暗号文攻撃に安全な暗号文を得ることが可能となる。また、上記実施形態の構成によれば、ターゲットとするブロックサイズはｎビット以上の任意のサイズであればよく、高い汎用性が得られている。【００６４】
更に、上記実施形態でも説明したとおり、本発明は、単一のブロック暗号Ｅのみで構成することもできる。この場合、暗号ＥのカウンターモードやＯＦＢモード等（暗号Ｅの選択暗号文攻撃への安全性に依拠した）既知平文攻撃への安全性が保証されたモードで暗号Ｆを実現可能である（但し、独立な鍵ＫＥ’を用いる。）。またこのとき、ターゲットがｎｍビットブロックであり、事前処理を除いた暗号Ｅの呼び出し回数は、１（暗号Ｅ）＋ｍ−１（暗号Ｅ’）＝ｍ回となる。敵の選択暗号文攻撃がｑ回行われる場合、独立な鍵ＫＥ’によるブロック暗号のカウンターモード、若しくは、ＯＦＢモードを用いる場合の安全性指標（ａｄｖａｎｔａｇｅと呼ばれ、小さいほど高い安全性を有する）は、約（ｍｑ）２／２ｎである。これは（ｍｑ）２が十分に２ｎより小さければ、どんな選択暗号文攻撃も成功する確率が無視できるほど小さいことを意味する。【００６５】
一方、非特許文献６［ＢＩＢ−ＨＣＴＲ］のＨＣＴＲを、単一のブロック暗号Ｅのみで構成した場合の暗号Ｅのコール回数は、上記と同じくｍ回であるが、ＨＣＴＲの安全性指標は、約（ｍｑ）３／２ｎ（ｍｑ）となり、本発明の安全性指標（ｍｑ）２／２ｎより大幅に大きい（安全性の低い）値となる。これは、本発明の暗号Ｆに相当する部分が、ＨＣＴＲにおいてはＥと同じ鍵によるブロック暗号のカウンターモードで構成されていることに起因する。【００６６】
更に、非特許文献７［ＢＩＢ−ＨＣＨ］のＨＣＨも、上記ＨＣＴＲと類似しているが、ｔｗｅａｋａｂｌｅでないブロック暗号Ｅを、カウンターモードではなく、非特許文献１１［ＢＩＢ−ＧＩＬ］に記載の修正カウンターモードで用いることにより、安全性が（ｓ＝ｎｍのとき）約（ｍｑ）２／２ｎとなっている。但し、ＨＣＨの修正カウンターモードは、カウンターモードへの入力を先に暗号化するものであるため、カウンターモードに比べ、常に１回の余分な暗号Ｅのコールが発生し、暗号Ｅのコール回数はｍ＋１回となる。【００６７】
以上のように、本発明は、単一のブロック暗号Ｅのみで実現した場合であっても、（ｍｑ）２／２ｎの安全性と（事前処理を除いた）、ｍ回の暗号Ｅのコールとを同時に達成するという、非特許文献６［ＢＩＢ−ＨＣＴＲ］のＨＣＴＲと、非特許文献７［ＢＩＢ−ＨＣＨ］のＨＣＨではそれぞれ達成できなかった利点がある。この利点は主に、単位ブロックｔｗｅａｋａｂｌｅ暗号化手段１０３と擬似乱数生成手段１０４が独立の鍵を使用する点に依拠するものである。【００６８】
［第２の実施形態］
続いて、上記第１の実施形態の擬似乱数生成手段１０４に変更を加えた本発明の第２の実施形態について説明する。図３は、本発明の第２の実施形態に係る共通鍵ブロック暗号化装置の構成を表したブロック図である。図３を参照すると、本発明の第２の実施形態に係る共通鍵ブロック暗号化装置は、平文入力手段１０１と、第１のハッシュ手段１０２と、単位ブロックｔｗｅａｋａｂｌｅ暗号化手段１０３と、擬似乱数生成手段１０４ａと、第２のハッシュ手段１０５と、暗号文出力手段１０６と、を含んで構成される。【００６９】
図３の平文入力手段１０１と、第１のハッシュ手段１０２と、単位ブロックｔｗｅａｋａｂｌｅ暗号化手段１０３と、第２のハッシュ手段１０５と、暗号文出力手段１０６は、第１の実施形態の各手段と同じであるため説明を省略し、以下、擬似乱数生成手段１０４ａにおける擬似乱数Ｚブロックの生成処理ついて詳細に説明する。【００７０】
擬似乱数生成手段１０４ａは、ＸＡブロックとＹＡブロックの和、もしくは任意の群演算の結果、を入力として擬似乱数Ｚブロックを生成する手段（第２の暗号処理手段）である。擬似乱数生成手段１０４ａは、先にも述べたとおり、既知平文攻撃に安全であることが求められる。すなわち攻撃者がランダムに入力（例えば、ＸＡブロックとＹＡブロックの和）を与えるもとで、Ｚブロックを得たときに、Ｚブロックと真の乱数との判別が困難となることが求められればよい。【００７１】
本実施形態では、乱数発生器として、選択暗号文攻撃に安全なｔｗｅａｋａｂｌｅブロック暗号ＴＷＢを用いる。ＴＷＢの鍵をＫＢとして、メッセージｘのｔｗｅａｋ値ｔｗによる暗号文をｙ＝ＴＷＢ［ＫＢ］（ｔｗ，ｘ）とすると、例えば擬似乱数生成手段１０４ａの出力は、次の［数５］で表される。なお、［数５］の入力ｘは、（ＸＡブロックとＹＡブロックの和、あるいは、群演算結果）となる。【００７２】
【数５】
2009020060.tif 000007
【００７３】
上記［数５］は、上記した第１の実施形態のブロック暗号Ｅ’のカウンターモードに相当する。同様に、擬似乱数生成手段１０４ａは、上記した第１の実施形態のブロック暗号Ｅ’のＯＦＢモードに相当する次の［数６］を出力してもよい。【００７４】
【数６】
2009020060.tif 000008
【００７５】
上記［数５］、［数６］のｒｖは、平文入力手段１０１がｔｗｅａｋ値として常に出力しないユニークなｔｗｅａｋ値である。また、鍵ＫＢ及び固定ｔｗｅａｋ値ｋｖにてｔｗｅａｋａｂｌｅブロック暗号ＴＷＢで定数を暗号化した結果から第１のハッシュ手段１０２の鍵が生成されている場合は、ｒｖはｋｖとも異なる。【００７６】
なお、［数５］、［数６］はｓ／ｎが整数であるものとしているが、ｓ／ｎが整数でない場合は、ｓ／ｎより大きい最小の整数をｃｅｉｌとし、［数５］を次の［数７］のように書き換えて、最初のｓ−ｎビットを取り出せばよい。［数６］も同様である。【００７７】
【数７】
2009020060.tif 000009
【００７８】
上記のように、擬似乱数生成手段は、鍵ＫＢを同一としながら、ユニークなｔｗｅａｋ値ｒｖにて動作するｔｗｅａｋａｂｌｅブロック暗号ＴＷＢによっても構成することが可能である。そして、ｔｗｅａｋ値の集合が重ならないように構成されているため、上記第１の実施形態と同等の（ｍｑ）２／２ｎ（ｍｑ）の安全性指標と、暗号Ｅのコール回数ｍも達成されている。【００７９】
［第３の実施形態］
続いて、上記第１の実施形態の擬似乱数生成手段としてストリーム暗号を用いる本発明の第３の実施形態について説明する。本実施形態の構成も、擬似乱数生成手段を除いて、第１の実施形態の各手段と同じであるため説明を省略し、以下、擬似乱数生成手段における擬似乱数Ｚブロックの生成処理について詳細に説明する。【００８０】
本実施形態の擬似乱数生成手段（図１の１０４）は、ストリーム暗号を用いて、ＸＡブロックとＹＡブロックの和、もしくは任意の群演算の結果、を入力として擬似乱数Ｚブロックを生成する手段（第２の暗号処理手段）である。より具体的には、擬似乱数生成手段（図１の１０４）は、ｎビットのＩＶを受け付ける加法的ストリーム暗号で、既知ＩＶ攻撃に安全であることが求められる。例えば、非特許文献１２［ＢＩＢ−ＳＥＡＬ］に記載のストリーム暗号ＳＥＡＬにより擬似乱数生成手段（図１の１０４）を実現することが可能である。【００８１】
また、単位ブロックｔｗｅａｋａｂｌｅ暗号化手段（図１の１０３）で非特許文献１０に記載のＡＥＳを使用する場合には、ストリーム暗号として、非特許文献１３［ＢＩＢ−ＬＥＸ］に記載のストリーム暗号ＬＥＸを使用することも可能である。この場合、ＡＥＳに加えて、新たにストリーム暗号を実装するコストが実質的に無くなるという利点が生じる。【００８２】
上記ストリーム暗号の鍵としては、独立な乱数を用いることも可能であるし、単位ブロックｔｗｅａｋａｂｌｅ暗号化手段（図１の１０３）が用いるｔｗｅａｋａｂｌｅブロック暗号をＴＷＢ、その鍵をＫＢとしたとき、（ＴＷＢ［ＫＢ］（ｒｖ，ｃ１），ＴＷＢ［ＫＢ］（ｒｖ，ｃ２），．．．，ＴＷＢ［ＫＢ］（ｒｖ，ｃｓ））から生成してもよい。ここでｃ１，．．．，ｃｓは互いに異なるｓ個のｎビットの定数であり、またｒｖは、上記した第２の実施形態のｒｖに相当する平文入力手段（図１の１０１）が常に出力しないｔｗｅａｋ値である。ただし、第１のハッシュ手段（図１の１０２）の鍵ＫＨがＴＷＢの固定ｔｗｅａｋ値ｋｖによるｗ個の定数ｄ１，ｄ２，．．．，ｄｗの暗号化から生成されている場合（つまり、ＫＨが（ＴＷＢ［ＫＢ］（ｋｖ，ｄ１），ＴＷＢ［ＫＢ］（ｋｖ，ｄ２），．．．，ＴＷＢ［ＫＢ］（ｋｖ，ｄｗ））から生成されている）は、ｒｖがｋｖと異なるか、ｒｖがｋｖと等しい場合は、ｓ＋ｗ個の定数ｃ１，ｃ２，．．，ｃｓ，ｄ１，ｄ２，．．．，ｄｗが互いに異なるかのいずれかを満たさなければならない。【００８３】
上記のように、擬似乱数生成手段は、既知ＩＶ攻撃に安全なストリーム暗号によっても構成することが可能である。【００８４】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した各実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。【００８５】
例えば、また、擬似乱数生成手段（図１の１０４）は、非特許文献３［ＢＩＢ−ＩＣＴ］のＩＣＴモードを利用することで、出力幅が固定された小さい値である、既知平文攻撃に安全な関数（例えば、既知平文攻撃に安全なブロック暗号）から実現することも可能である。
【産業上の利用可能性】
【００８６】
本発明によれば、２者間で暗号化通信を行うシステムや、映画や音楽などのコンテンツを安全に配信するシステム、また、コンピュータサーバ上のデータを安全に運用するためのファイル暗号化といった用途に適用できる。【００８７】
以上の記載は、実施形態に基づいて行ったが、本発明は、上記実施形態に限定されるものではない。
本発明の全開示(請求の範囲を含む)の枠内において、更にその基本的技術思想に基づいて、実施態様ないし実施形態の変更・調整が可能である。また本発明の請求の範囲(クレーム)の枠内において、種々開示要素の多様な組合せ・置換ないし選択が可能である。
本発明の更なる課題・目的及び展開形態は、クレームを含む本発明の全開示事項からも、明らかにされる。
【図１】
2009020060.tif 000010
【図２】
2009020060.tif 000011
【図３】
2009020060.tif 000012
【国際調査報告】
2009020060.tif 000013
2009020060.tif 000014
2009020060.tif 000015
2009020060.tif 000016