(57)【要約】  本発明の暗号化装置は、最初のｎビットをＭＬブロックとし、残りのｎビットをＭＲブロックとする、暗号化対象の２ｎビットの平文が入力されると、ＭＬブロックを暗号化してｎビットのＳＬブロックを生成する第１の強擬似ランダム暗号化部１０２と、ＭＬブロックとＳＬブロックとの和を暗号化してｎビットのＴＬブロックを生成する第１の弱擬似ランダム暗号化部１０３と、ＴＬブロックとＭＲブロックとの和を暗号化してｎビットのＣＲブロックを生成する第２の強擬似ランダム暗号化部１０４と、ＴＬブロックとＭＲブロックとＣＲブロックの和を暗号化してｎビットのＴＲブロックを生成する第２の弱擬似ランダム暗号化部１０５と、ＳＬブロックとＴＲブロックの和であるＣＬブロックとＣＲブロックとを連結して２ｎビットの暗号文を生成する暗号文生成部１０６と、を有する構成である。
2009081975.tif 000002
【特許請求の範囲】
【請求項１】
最初のｎビットをＭＬブロックとし、残りのｎビットをＭＲブロックとする、暗号化対象の２ｎビットの平文が入力されると、前記ＭＬブロックを暗号化してｎビットのＳＬブロックを生成する第１の強擬似ランダム暗号化部と、
前記ＭＬブロックと前記ＳＬブロックとの和を暗号化してｎビットのＴＬブロックを生成する第１の弱擬似ランダム暗号化部と、
前記ＴＬブロックと前記ＭＲブロックとの和を暗号化してｎビットのＣＲブロックを生成する第２の強擬似ランダム暗号化部と、
前記ＴＬブロックと前記ＭＲブロックと前記ＣＲブロックの和を暗号化してｎビットのＴＲブロックを生成する第２の弱擬似ランダム暗号化部と、
前記ＳＬブロックと前記ＴＲブロックの和であるＣＬブロックと前記ＣＲブロックとを連結して２ｎビットの暗号文を生成する暗号文生成部と、
を有する暗号化装置。
【請求項２】
前記平文とともに付加パラメータが入力されると、
前記第１の強擬似ランダム暗号化部は、前記付加パラメータを用いて前記ＭＬブロックを暗号化してｎビットの前記ＳＬブロックを生成し、
前記第２の強擬似ランダム暗号化部は、前記付加パラメータを用いて前記ＴＬブロックと前記ＭＲブロックとの和を暗号化してｎビットの前記ＣＲブロックを生成する、請求の範囲第１項記載の暗号化装置。
【請求項３】
前記第１および第２の強擬似ランダム暗号化部が、ラウンド関数の繰り返しによる第１のブロック暗号を用いて暗号化し、
前記第１および第２の弱擬似ランダム暗号化部が、前記第１のブロック暗号のラウンド関数の繰り返し回数を減らして得られる第２のブロック暗号を用いて暗号化する、請求の範囲第１項または第２項記載の暗号化装置。
【請求項４】
前記第１および第２の強擬似ランダム暗号化部がブロック暗号を用いて暗号化し、
前記第１および第２の弱擬似ランダム暗号化部が初期ベクトル付きストリーム暗号を用いて暗号化する、請求の範囲第１項または第２項記載の暗号化装置。
【請求項５】
最初のｎビットをＣＲブロックとし、残りのｎビットをＣＬブロックとする、復号対象の２ｎビットの暗号文が入力されると、前記ＣＲブロックを復号してｎビットのＳＲブロックを生成する第１の強擬似ランダム復号部と、
前記ＣＲブロックと前記ＳＲブロックとの和を暗号化してｎビットのＴＲブロックを生成する第１の弱擬似ランダム暗号化部と、
前記ＴＲブロックと前記ＣＬブロックとの和を復号してｎビットのＭＬブロックを生成する第２の強擬似ランダム復号部と、
前記ＴＲブロックと前記ＣＬブロックと前記ＭＬブロックの和を暗号化してｎビットのＴＬブロックを生成する第２の弱擬似ランダム暗号化部と、
前記ＳＲブロックと前記ＴＬブロックの和であるＭＲブロックと前記ＭＬブロックとを連結して２ｎビットの平文を生成する平文生成部と、
を有する復号装置。
【請求項６】
前記暗号文とともに付加パラメータが入力されると、
前記第１の強擬似ランダム復号部は、前記付加パラメータを用いて前記ＣＲブロックを復号してｎビットの前記ＳＲブロックを生成し、
前記第２の強擬似ランダム復号部は、前記付加パラメータを用いて前記ＴＲブロックと前記ＣＬブロックとの和を復号してｎビットの前記ＭＬブロックを生成する、請求の範囲第５項記載の復号装置。
【請求項７】
前記第１および第２の強擬似ランダム復号部が、ラウンド関数の繰り返しによる第１のブロック暗号を用いて復号し、
前記第１および第２の弱擬似ランダム暗号化部が、前記第１のブロック暗号のラウンド関数の繰り返し回数を減らして得られる第２のブロック暗号を用いて暗号化する、請求の範囲第５項または第６項記載の復号装置。
【請求項８】
前記第１および第２の強擬似ランダム復号部がブロック暗号を用いて復号し、
前記第１および第２の弱擬似ランダム暗号化部が初期ベクトル付きストリーム暗号を用いて暗号化する、請求の範囲第５項または第６項記載の復号装置。
【請求項９】
最初のｎビットをＭＬブロックとし、残りのｎビットをＭＲブロックとする２ｎビットの平文の暗号化方法であって、
第１の強擬似ランダム暗号化部により前記ＭＬブロックを暗号化してｎビットのＳＬブロックを生成し、
第１の弱擬似ランダム暗号化部により前記ＭＬブロックと前記ＳＬブロックとの和を暗号化してｎビットのＴＬブロックを生成し、
第２の強擬似ランダム暗号化部により前記ＴＬブロックと前記ＭＲブロックとの和を暗号化してｎビットのＣＲブロックを生成し、
第２の弱擬似ランダム暗号化部により前記ＴＬブロックと前記ＭＲブロックと前記ＣＲブロックの和を暗号化してｎビットのＴＲブロックを生成し、
前記ＳＬブロックと前記ＴＲブロックの和であるＣＬブロックと前記ＣＲブロックとを連結して２ｎビットの暗号文を生成する、暗号化方法。
【請求項１０】
前記平文が付加パラメータを伴っていると、
前記第１の強擬似ランダム暗号化部では、前記付加パラメータを用いて前記ＭＬブロックを暗号化してｎビットの前記ＳＬブロックを生成し、
前記第２の強擬似ランダム暗号化部では、前記付加パラメータを用いて前記ＴＬブロックと前記ＭＲブロックとの和を暗号化してｎビットの前記ＣＲブロックを生成する、請求の範囲第９項記載の暗号化方法。
【請求項１１】
最初のｎビットをＣＲブロックとし、残りのｎビットをＣＬブロックとする２ｎビットの暗号文の復号方法であって、
第１の強擬似ランダム復号部により前記ＣＲブロックを復号してｎビットのＳＲブロックを生成し、
第１の弱擬似ランダム暗号化部により前記ＣＲブロックと前記ＳＲブロックとの和を暗号化してｎビットのＴＲブロックを生成し、
第２の強擬似ランダム復号部により前記ＴＲブロックと前記ＣＬブロックとの和を復号してｎビットのＭＬブロックを生成し、
第２の弱擬似ランダム暗号化部により前記ＴＲブロックと前記ＣＬブロックと前記ＭＬブロックの和を暗号化してｎビットのＴＬブロックを生成し、
前記ＳＲブロックと前記ＴＬブロックの和であるＭＲブロックと前記ＭＬブロックとを連結して２ｎビットの平文を生成する、復号方法。
【請求項１２】
前記暗号文が付加パラメータを伴っていると、
前記第１の強擬似ランダム復号部では、前記付加パラメータを用いて前記ＣＲブロックを復号してｎビットの前記ＳＲブロックを生成し、
前記第２の強擬似ランダム復号部では、前記付加パラメータを用いて前記ＴＲブロックと前記ＣＬブロックとの和を復号してｎビットの前記ＭＬブロックを生成する、請求の範囲第１１項記載の復号方法。
【請求項１３】
最初のｎビットをＭＬブロックとし、残りのｎビットをＭＲブロックとする２ｎビットの平文の暗号化をコンピュータに実行させるためのプログラムであって、
第１の強擬似ランダム暗号化部により前記ＭＬブロックを暗号化してｎビットのＳＬブロックを生成し、
第１の弱擬似ランダム暗号化部により前記ＭＬブロックと前記ＳＬブロックとの和を暗号化してｎビットのＴＬブロックを生成し、
第２の強擬似ランダム暗号化部により前記ＴＬブロックと前記ＭＲブロックとの和を暗号化してｎビットのＣＲブロックを生成し、
第２の弱擬似ランダム暗号化部により前記ＴＬブロックと前記ＭＲブロックと前記ＣＲブロックの和を暗号化してｎビットのＴＲブロックを生成し、
前記ＳＬブロックと前記ＴＲブロックの和であるＣＬブロックと前記ＣＲブロックとを連結して２ｎビットの暗号文を生成する処理を前記コンピュータに実行させるためのプログラム。
【請求項１４】
前記平文が付加パラメータを伴っていると、
前記第１の強擬似ランダム暗号化部では、前記付加パラメータを用いて前記ＭＬブロックを暗号化してｎビットの前記ＳＬブロックを生成し、
前記第２の強擬似ランダム暗号化部では、前記付加パラメータを用いて前記ＴＬブロックと前記ＭＲブロックとの和を暗号化してｎビットの前記ＣＲブロックを生成する処理をさらに有する請求の範囲第１３項記載のプログラム。
【請求項１５】
最初のｎビットをＣＲブロックとし、残りのｎビットをＣＬブロックとする２ｎビットの暗号文の復号をコンピュータに実行させるためのプログラムであって、
第１の強擬似ランダム復号部により前記ＣＲブロックを復号してｎビットのＳＲブロックを生成し、
第１の弱擬似ランダム暗号化部により前記ＣＲブロックと前記ＳＲブロックとの和を暗号化してｎビットのＴＲブロックを生成し、
第２の強擬似ランダム復号部により前記ＴＲブロックと前記ＣＬブロックとの和を復号してｎビットのＭＬブロックを生成し、
第２の弱擬似ランダム暗号化部により前記ＴＲブロックと前記ＣＬブロックと前記ＭＬブロックの和を暗号化してｎビットのＴＬブロックを生成し、
前記ＳＲブロックと前記ＴＬブロックの和であるＭＲブロックと前記ＭＬブロックとを連結して２ｎビットの平文を生成する処理を前記コンピュータに実行させるためのプログラム。
【請求項１６】
前記暗号文が付加パラメータを伴っていると、
前記第１の強擬似ランダム復号部では、前記付加パラメータを用いて前記ＣＲブロックを復号してｎビットの前記ＳＲブロックを生成し、
前記第２の強擬似ランダム復号部では、前記付加パラメータを用いて前記ＴＲブロックと前記ＣＬブロックとの和を復号してｎビットの前記ＭＬブロックを生成する処理をさらに有する請求の範囲第１５項記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共通鍵ブロック暗号化システムに関連し、大きいブロックサイズのブロック暗号による暗号化装置、復号装置、暗号化方法、復号方法、およびそれらの方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
ブロック暗号やハッシュ関数などの暗号処理を部品とし、新たな暗号を構成するアプローチが数多く知られている。【０００３】
例えば、ハードディスクなどのストレージの暗号化においては、暗号化データのセクタ単位での処理を容易とするために、標準的なブロックサイズ（１２８ｂｉｔなど）のブロック暗号を用いて、セクタのサイズに対応した、より大きなブロックサイズ（５１２ｂｉｔなど）のブロック暗号を構成する研究が行われている。【０００４】
ここで求められる安全性とは、選択暗号文攻撃に対する安全性である。理論的に選択暗号文攻撃に対する安全性を有するブロック暗号は強擬似ランダム置換と呼ばれる。実際には、現実のブロック暗号を強擬似ランダム置換と仮定する。また、この研究においては、ｎビットブロックの強擬似ランダム置換を用いて２ｎビットブロックサイズの強擬似ランダム置換を構成することができれば（これを倍ブロック長の強擬似ランダム置換という）、この構成方法の繰り返しにより、任意の大きいブロックサイズの強擬似ランダム置換が構成できるため、倍ブロック長の構成方法は特に重要である。【０００５】
部品として用いるブロック暗号が強擬似ランダム置換であった場合に、大きなブロックサイズの強擬似ランダム置換を構成する方法が、Moni  NaorとOmer  Reingoldによって、“On  the  Construction  of  Pseudo-Random  Permutations:  Luby-Rackoff  Revisited,  Electronic  Colloquium  on  Computational  Complexity  (ECCC)  4(5):  (1997)”（以下では、文献１と称する）に開示されている。以下では、この文献に開示された方法を、ＮＲの方法と称する。【０００６】
ＮＲの方法は、ｎビットブロックの強擬似ランダム置換Ｅを並列に並べ、その上下をユニバーサルハッシュ関数と呼ばれる鍵付き関数を用いた置換ではさむことにより構成されている。したがって、入力１ブロックあたりの強擬似ランダム置換Ｅのコール回数は１回である。【０００７】
しかし、ユニバーサルハッシュ関数を用いない場合には、ｎビットブロックの強擬似ランダム置換Ｅを、１ブロックあたりほぼ２回コールする必要がある。Luby  and  Rackoffにより、倍ブロック長の強擬似ランダム置換をＥにより構成する場合、強擬似ランダム置換ＥをFeistel暗号のラウンド関数として４回コールする方式が示されている。この方式を４段ランダムFeistel暗号と呼ぶ。これは、例えば、上記文献１に記載されている。このように、強擬似ランダム置換Ｅのコール回数をブロックあたり２回より減らすためには、ユニバーサルハッシュ関数を導入する必要がある。【０００８】
ユニバーサルハッシュ関数は代数的構成方法がよく知られており、例えば、有限体ＧＦ（２ｎ）上の積演算により構成可能である。しかし、モダンなブロック暗号の実装を高度に最適化した場合、有限体での積よりも高速になることがしばしば起きる。【０００９】
このような場合、ユニバーサルハッシュ関数に頼ったＮＲモードなどによる倍ブロック長のブロック暗号構成方法は、４段ランダムFeistel暗号と比べて利点がないことになる。さらに、有限体の積演算を別に実装する必要が生じるため、プログラムサイズ増大などの影響が出る。【００１０】
この問題に対し、ユニバーサルハッシュ関数ではなく弱擬似ランダム関数を使うアプローチが考えられる。弱擬似ランダム関数とは既知平文攻撃（ランダムな平文を使う攻撃）に対する安全性のみを保証する暗号関数であり、一般に強擬似ランダム置換より弱い関数である。弱い関数は潜在的に強い関数よりも高速であると考えられるため、強擬似ランダム置換を弱擬似ランダム関数で置き換えられれば、高速化に寄与すると考えられる。【００１１】
例えば、２段ランダムFeistel暗号はＷＰＲＦ（weak  pseudorandom  function  family）であり、３段ランダムFeistel暗号がＰＲＦ（pseudorandom  function  family）となることと比べると３０％ほど効率がよいことになる。【００１２】
強擬似ランダム置換と弱擬似ランダム関数を組み合わせて倍ブロック長の置換を構成する方法が、“Hybrid  Symmetric  Encryption  Using  Known-Plaintext  Attack-Secure  Components,  Information  Security  and  Cryptology  -  ICISC  2005,  8th  International  Conference,  Seoul,  Korea,  December  1-2,  2005,  Revised  Selected  Papers.  Lecture  Notes  in  Computer  Science  3935  Springer  2006,  pp.242-260”（以下では、文献２と称する）に開示されている。しかし、常にユニバーサルハッシュ関数を必要とする点では、ＮＲモードなどと同じ問題を持っている。【００１３】
上記の研究とは別に、付加パラメータ（ｔｗｅａｋと呼ばれる）をもつブロック暗号が、Liskovらによって、“Tweakable  Block  Ciphers,  Advances  in  Cryptology  -  CRYPTO  2002,  22nd  Annual  International  Cryptology  Conference,  Santa  Barbara,  California,  USA,  August  18-22,  2002,  Proceedings.  Lecture  Notes  in  Computer  Science  2442  Springer  2002:  pp.31-46”（以下では、文献３と称する）に開示されている。これは、付加パラメータを変えることにより、同じ鍵、同じ平文を用いたブロック暗号でも独立な暗号文が得られるようにすることが目的である。【００１４】
文献３は、任意の強擬似ランダム置換を付加パラメータ付きの強擬似ランダム置換に変換する方法を示している。この方法は、Phillip  Rogawayによって、“Efficient  Instantiations  of  Tweakable  Blockciphers  and  Refinements  to  Modes  OCB  and  PMAC,  Advances  in  Cryptology  -  ASIACRYPT  2004,  10th  International  Conference  on  the  Theory  and  Application  of  Cryptology  and  Information  Security,  Jeju  Island,  Korea,  December  5-9,  2004,  Proceedings.  Lecture  Notes  in  Computer  Science  3329  Springer  2004:  pp.  16-31”（以下では、文献４と称する）にも開示されている。【００１５】
付加パラメータをもつ、大きなブロックサイズの強擬似ランダム置換は、ディスクセクタ暗号化などのストレージ暗号化に適している。ディスクセクタ暗号化の場合、セクタ番号を付加パラメータとおき、セクタ単位で暗号化することで、異なるセクタ間での暗号化の結果を独立とし、攻撃者が観測しても、平文に関する何らかの情報を得ることを困難とすることができる。
【発明の開示】
【００１６】
ｎビットの強擬似ランダム置換であるブロック暗号Ｅを用いて倍ブロック長（２ｎビット）の強擬似ランダム置換を構成する際、ブロック暗号Ｅを４回使用する４段ランダムFeistel暗号よりも効率を上げるには、ユニバーサルハッシュ関数を用いる必要がある。しかし、上述したように、ユニバーサルハッシュ関数を用いても必ずしも効率が上がるとは限らない場合がある。
【００１７】
本発明の目的の一例は、倍ブロック長のブロック暗号に関する処理を、安全に、かつ、高速に実行可能にした暗号化装置、復号装置、暗号化方法、復号方法、およびその方法をコンピュータに実行させるためのプログラムを提供することである。
【００１８】
本発明の一側面の暗号化装置は、最初のｎビットをＭＬブロックとし、残りのｎビットをＭＲブロックとする、暗号化対象の２ｎビットの平文が入力されると、ＭＬブロックを暗号化してｎビットのＳＬブロックを生成する第１の強擬似ランダム暗号化部と、ＭＬブロックとＳＬブロックとの和を暗号化してｎビットのＴＬブロックを生成する第１の弱擬似ランダム暗号化部と、ＴＬブロックとＭＲブロックとの和を暗号化してｎビットのＣＲブロックを生成する第２の強擬似ランダム暗号化部と、ＴＬブロックとＭＲブロックとＣＲブロックの和を暗号化してｎビットのＴＲブロックを生成する第２の弱擬似ランダム暗号化部と、ＳＬブロックとＴＲブロックの和であるＣＬブロックとＣＲブロックとを連結して２ｎビットの暗号文を生成する暗号文生成部と、を有する構成である。
【００１９】
一方、本発明の一側面の復号装置は、最初のｎビットをＣＲブロックとし、残りのｎビットをＣＬブロックとする、復号対象の２ｎビットの暗号文が入力されると、ＣＲブロックを復号してｎビットのＳＲブロックを生成する第１の強擬似ランダム復号部と、ＣＲブロックとＳＲブロックとの和を暗号化してｎビットのＴＲブロックを生成する第１の弱擬似ランダム暗号化部と、ＴＲブロックとＣＬブロックとの和を復号してｎビットのＭＬブロックを生成する第２の強擬似ランダム復号部と、ＴＲブロックとＣＬブロックとＭＬブロックの和を暗号化してｎビットのＴＬブロックを生成する第２の弱擬似ランダム暗号化部と、ＳＲブロックとＴＬブロックの和であるＭＲブロックとＭＬブロックとを連結して２ｎビットの平文を生成する平文生成部と、を有する構成である。
【００２０】
また、本発明の一側面の暗号化方法は、最初のｎビットをＭＬブロックとし、残りのｎビットをＭＲブロックとする２ｎビットの平文の暗号化方法であって、第１の強擬似ランダム暗号化部によりＭＬブロックを暗号化してｎビットのＳＬブロックを生成し、第１の弱擬似ランダム暗号化部によりＭＬブロックとＳＬブロックとの和を暗号化してｎビットのＴＬブロックを生成し、第２の強擬似ランダム暗号化部によりＴＬブロックとＭＲブロックとの和を暗号化してｎビットのＣＲブロックを生成し、第２の弱擬似ランダム暗号化部によりＴＬブロックとＭＲブロックとＣＲブロックの和を暗号化してｎビットのＴＲブロックを生成し、ＳＬブロックとＴＲブロックの和であるＣＬブロックとＣＲブロックとを連結して２ｎビットの暗号文を生成するものである。
【００２１】
さらに、本発明の一側面の復号方法は、最初のｎビットをＣＲブロックとし、残りのｎビットをＣＬブロックとする２ｎビットの暗号文の復号方法であって、第１の強擬似ランダム復号部によりＣＲブロックを復号してｎビットのＳＲブロックを生成し、第１の弱擬似ランダム暗号化部によりＣＲブロックとＳＲブロックとの和を暗号化してｎビットのＴＲブロックを生成し、第２の強擬似ランダム復号部によりＴＲブロックとＣＬブロックとの和を復号してｎビットのＭＬブロックを生成し、第２の弱擬似ランダム暗号化部によりＴＲブロックとＣＬブロックとＭＬブロックの和を暗号化してｎビットのＴＬブロックを生成し、ＳＲブロックとＴＬブロックの和であるＭＲブロックとＭＬブロックとを連結して２ｎビットの平文を生成するものである。
【図面の簡単な説明】
【００２２】
【図１】図１は第１の実施形態の暗号化装置の一構成例を示すブロック図である。
【図２】図２は第１の実施形態の暗号化装置の動作を説明するための図である。
【図３】図３は第１の実施形態の暗号化装置の動作手順を示すフローチャートである。
【図４】図４は第２の実施形態の暗号化装置の一構成例を示すブロック図である。
【図５】図５は第２の実施形態の暗号化装置の動作を説明するための図である。
【図６】図６は第２の実施形態の暗号化装置の動作手順を示すフローチャートである。
【図７】図７は第３の実施形態の復号装置の一構成例を示すブロック図である。
【図８】図８は第３の実施形態の復号装置の動作を説明するための図である。
【図９】図９は第３の実施形態の復号装置の動作手順を示すフローチャートである。
【図１０】図１０は第４の実施形態の復号装置の一構成例を示すブロック図である。
【図１１】図１１は第４の実施形態の復号装置の動作を説明するための図である。
【図１２】図１２は第４の実施形態の復号装置の動作手順を示すフローチャートである。
【符号の説明】
【００２３】
１０７、２０７、３０７、４０７    制御部
１１０、２１０    暗号化装置
３１０、４１０    復号装置
【発明を実施するための最良の形態】
【００２４】
本発明の実施形態を説明する。本実施形態は、倍ブロック長暗号化技術に関するものである。
（第１の実施形態）
本実施形態の暗号化装置の構成を説明する。図１は本実施形態の暗号化装置の一構成例を示すブロック図である。【００２５】
図１に示すように、本実施形態の暗号化装置１１０は、入力部１０１と、制御部１０７と、出力部１０８とを有する情報処理装置である。制御部１０７には、プログラムにしたがって処理を実行するＣＰＵ（Central  Processing  Unit）（不図示）と、プログラムを格納するためのメモリ（不図示）とが設けられている。【００２６】
制御部１０７は、第１の強擬似ランダム暗号化部１０２と、第１の弱擬似ランダム暗号化部１０３と、第２の強擬似ランダム暗号化部１０４と、第２の弱擬似ランダム暗号化部１０５と、暗号文生成部１０６とを有する。ＣＰＵがプログラムを実行することで、制御部１０７内の各部が暗号化装置内に仮想的に構成される。【００２７】
入力部１０１には、暗号化される対象となる平文が入力される。ここでは、暗号化対象の平文がＭＬブロックとＭＲブロックを含むものとする。入力部１０１は、キーボード、磁気読み取り装置、通信部などのインタフェースである。【００２８】
第１の強擬似ランダム暗号化部１０２は、入力部１０１からＭＬブロックを受け取ると、ｎビットのブロック暗号Ｅにより暗号化してＳＬブロックを生成する。ブロック暗号Ｅの鍵をＫとし、Ｋを用いた暗号化をＥ［Ｋ］とすると、ＳＬ＝Ｅ［Ｋ］（ＭＬ）の式が成り立つ。【００２９】
ここで、ブロック暗号Ｅは、選択暗号文攻撃に対して安全な、強擬似ランダム暗号であることが必要である。これは、ＡＥＳ（Advanced  Encryption  Standard）など選択暗号文攻撃への安全性が広く検証されているブロック暗号を用いることで実現可能である。【００３０】
第１の弱擬似ランダム暗号化部１０３は、ＭＬブロックとＳＬブロックとの和をｎビットのブロック暗号Ｆにより暗号化し、ｎビットのＴＬブロックを生成する。和の演算はビット単位の排他的論理和でもよく、ｍｏｄ２ｎの算術和など任意の群演算でもよい。和の演算は制御部１０７で実行される。【００３１】
ブロック暗号Ｆの鍵をＬとすると、ＴＬ＝Ｆ［Ｌ］（ＭＬ＋ＳＬ）の式が成り立つ。ここで、ブロック暗号Ｆは、既知平文攻撃に対して安全な、弱擬似ランダム暗号であることが要求される。すなわち、攻撃者がランダムに平文（ここでは、ＭＬブロックとＳＬブロックとの和）を与えるもとで、暗号文（ここではＴＬブロック）を得たときに、ＴＬブロックと真の乱数との判別が困難であることを満たせばよい。【００３２】
第１の強擬似ランダム暗号化部１０２が用いるブロック暗号Ｅはこの条件を既に満たしている上に、選択暗号文攻撃よりも既知平文攻撃は弱いクラスの攻撃である。そのため、ブロック暗号Ｅの一部分を省略するなどの簡略化を施しても、現実には既知平文攻撃への高い安全性を有することが考えられる。したがって、ブロック暗号Ｆはブロック暗号Ｅの一部分として得ることが可能である。【００３３】
なお、置換である必要がないため、ブロック暗号Ｆは、例えば、初期ベクトル付きのストリーム暗号の初期ベクトルを入力とした関数でもよい。【００３４】
第２の強擬似ランダム暗号化部１０４は、ＴＬブロックとＭＲブロックとの和をｎビットのブロック暗号Ｅ’により暗号化し、ｎビットのＣＲブロックを生成する。ブロック暗号Ｅ’の鍵をＫ’とすると、ＣＲ＝Ｅ’［Ｋ’］（ＴＬ＋ＭＲ）の式が成り立つ。和の演算はビット単位の排他的論理和でもよく、ｍｏｄ２ｎの算術和など任意の群演算でもよい。【００３５】
ブロック暗号Ｅ’は、強擬似ランダム暗号であることが必要であり、第１の強擬似ランダム暗号化部１０２が用いるブロック暗号Ｅと同じアルゴリズムを用いるものであってもよい。その場合、ブロック暗号Ｅ’の鍵Ｋ’はブロック暗号Ｅが用いる鍵Ｋと同じでもよく、異なっていてもよい。【００３６】
第２の弱擬似ランダム暗号化部１０５は、ＴＬブロック、ＭＲブロックおよびＣＲブロックの和をｎビットのブロック暗号Ｆ’により暗号化し、ｎビットのＴＲブロックを生成する。和の演算はビット単位の排他的論理和でもよく、ｍｏｄ２ｎの算術和など任意の群演算でもよい。【００３７】
ブロック暗号Ｆ’が用いる鍵をＬ’とすると、ＴＲ＝Ｆ’［Ｌ’］（ＴＬ＋ＭＲ＋ＣＲ）の式が成り立つ。ブロック暗号Ｆ’は、弱擬似ランダム暗号であることが要求される。ブロック暗号Ｆ’は第１の弱擬似ランダム暗号化部１０３が用いるｎビットのブロック暗号Ｆと同じアルゴリズムでもよい。また、ブロック暗号Ｆ’の鍵Ｌ’はブロック暗号Ｆの鍵Ｌと同じでもよく、異なっていてもよい。【００３８】
暗号文生成部１０６は、ＴＲブロックとＳＬブロックの和であるＣＬブロックにＣＲブロックを連結して暗号文を生成する。生成した暗号文を出力部１０８を介して出力する。出力部１０８は、ディスプレイ装置やプリンタなどの出力装置である。【００３９】
次に、本実施形態の暗号化装置の動作手順を説明する。【００４０】
図２は本実施形態の暗号化装置の動作を説明するための図である。図３は本実施形態の暗号化装置の動作手順を示すフローチャートである。図２に示す和の演算は制御部１０７内で実行される。【００４１】
ＭＬブロックおよびＭＲブロックを含む平文が入力部１０１を介して入力されると（ステップ１００１）、第１の強擬似ランダム暗号化部１０２がＭＬブロックを暗号化してＳＬブロックを生成する（ステップ１００２）。続いて、第１の弱擬似ランダム暗号化部１０３が、ＭＬブロックとＳＬブロックの和を暗号化してＴＬブロックを生成する（ステップ１００３）。【００４２】
第２の強擬似ランダム暗号化部１０４が、ＴＬブロックとＭＲブロックの和を暗号化してＣＲブロックを生成する（ステップ１００４）。第２の弱擬似ランダム暗号化部１０５が、ＴＬブロック、ＭＲブロックおよびＣＲブロックの和を暗号化してＴＲブロックを生成する（ステップ１００５）。さらに、暗号文生成部１０６が、ＳＬブロックとＴＲブロックの和であるＣＬブロックをＣＲブロックに連結して暗号文を生成し、暗号文を出力部１０８に出力する（ステップ１００６）。【００４３】
本実施形態では、選択暗号文攻撃に安全なｎビットのブロック暗号Ｅと、より弱い攻撃である既知平文攻撃にのみ安全性を保証し、その代わりブロック暗号Ｅより高速なｎビットのブロック暗号Ｆを組み合わせている。組み合わせ方は、ブロック暗号Ｅの入出力の和が常にブロック暗号Ｆの入力となるようにし、できあがる２ｎビット入力ｎビット出力の処理（入力（ｘ１，ｘ２）に対して出力（Ｅ（ｘ１），ｘ２＋Ｆ（ｘ１＋Ｅ（ｘ１））））を、メッセージの左右入れ替えをはさんで２回行うものである。【００４４】
上述したように、ｎビットブロック強擬似ランダム暗号を２回コールし、ｎビットブロック弱擬似ランダム暗号を２回コールすることで倍ブロック長の強擬似ランダム暗号を構成し、倍ブロック長の強擬似ランダム置換をユニバーサルハッシュ関数なしで効率よくできる。【００４５】
背景技術で述べたように、倍ブロック長の暗号化技術に関しては、４段のランダムFeistel暗号やＮＲモードがある。しかし、４段のランダムFeistel暗号はラウンド関数Ｅを４回コールする必要がある。これに対して、本実施形態では、ブロック暗号Ｅよりブロック暗号Ｆの方が要求される安全性のレベルが下がっているため、結果的に、４段のランダムFeistel暗号をブロック暗号Ｅで構築するよりも高速化が期待できる。【００４６】
また、ＮＲモードは、ブロック暗号Ｅは２回でよいが、ｎビット入出力のユニバーサルハッシュ関数を２回コールする必要がある。ユニバーサルハッシュ関数と弱擬似ランダム暗号はどちらも強擬似ランダム暗号より厳密に弱い関数であり、また相互関係はない。つまり、ユニバーサルハッシュ関数であっても弱擬似ランダム暗号とはならない例があり、またその逆の例も存在する。したがって、ユニバーサルハッシュ関数と弱擬似ランダム暗号のどちらが実用に適しているかは、実装するプラットフォームやどのような暗号アルゴリズムの実装を使えるかという前提条件に依存することになる。【００４７】
例えば、ユニバーサルハッシュ関数は有限体上の積などの代数的な構成方法が知られているが、シンプルな実装では高度に最適化されたブロック暗号より速度で劣る場合もあることが知られている。また、代数的構成方法を用いる場合には、一般にブロック暗号との共通部分がないために、プログラムサイズなど実装のコストが増大する。一方、弱擬似ランダム暗号は強擬似ランダム暗号の短縮段などで得られる場合もあり、ユニバーサルハッシュ関数を用いる場合と比較すると、プログラムサイズの増大を抑えた実装が可能な場合もある。【００４８】
（第２の実施形態）
本実施形態の暗号化装置の構成を説明する。【００４９】
図４は本実施形態の暗号化装置の一構成例を示すブロック図である。なお、第１の実施形態と同様な構成については同一の符号を付し、その詳細な説明を省略する。【００５０】
図４に示すように、本実施形態の暗号化装置２１０は、入力部１０１と、制御部２０７と、出力部１０８とを有する情報処理装置である。制御部２０７には、プログラムにしたがって処理を実行するＣＰＵ（Central  Processing  Unit）（不図示）と、プログラムを格納するためのメモリ（不図示）とが設けられている。【００５１】
制御部２０７は、第１の強擬似ランダム付加パラメータ付き暗号化部２０２と、第１の弱擬似ランダム暗号化部１０３と、第２の強擬似ランダム付加パラメータ付き暗号化部２０４と、第２の弱擬似ランダム暗号化部１０５と、暗号文生成部１０６とを有する。ＣＰＵがプログラムを実行することで、制御部２０７内の各部が暗号化装置内に仮想的に構成される。【００５２】
暗号化対象の平文は、第１の実施形態と同様に、ＭＬブロックおよびＭＲブロックを含む平文とする。入力部１０１を介して平文と付加パラメータＴＷが入力される。【００５３】
第１の強擬似ランダム付加パラメータ付き暗号化部２０２は、入力部１０１からＭＬブロックおよび付加パラメータＴＷを受け取ると、付加パラメータＴＷを用いてＭＬブロックをｎビットブロックの付加パラメータ付き暗号Ｑにより暗号化してＳＬブロックを生成する。付加パラメータ付き暗号Ｑの鍵をＫとし、付加パラメータＴＷと鍵Ｋを用いた暗号化をＥ［Ｋ，ＴＷ］で表すと、ＳＬ＝Ｑ［Ｋ，ＴＷ］（ＭＬ）の式が成り立つ。【００５４】
付加パラメータ付き暗号Ｑは、選択暗号文攻撃に対して安全な、強擬似ランダム付加パラメータ付き暗号であることが必要である。これは、ＡＥＳなど、選択暗号文攻撃への安全性が広く検証されているブロック暗号を、文献４に開示されたＸＥＸモードなどを用いて付加パラメータ付き暗号へ変換することで実現可能である。【００５５】
第２の強擬似ランダム付加パラメータ付き暗号化部２０４は、付加パラメータＴＷを用いて、ＴＬブロックとＭＲブロックとの和をｎビットブロックの付加パラメータ付き暗号Ｑ’により暗号化し、ｎビットのＣＲブロックを生成する。鍵をＫ’とすると、ＣＲ＝Ｑ’［Ｋ’，ＴＷ］（ＴＬ＋ＭＲ）の式が成り立つ。和の演算はビット単位の排他的論理和でもよく、ｍｏｄ２ｎの算術和など任意の群演算でもよい。和の演算は制御部２０７で実行される。【００５６】
付加パラメータ付き暗号Ｑ’は強擬似ランダム付加パラメータ付き暗号であることが必要であり、第１の強擬似ランダム付加パラメータ付き暗号化部２０２が用いる付加パラメータ付き暗号Ｑと同じアルゴリズムを用いてもよい。その場合、付加パラメータ付き暗号Ｑ’の鍵Ｋ’は付加パラメータ付き暗号Ｑが用いる鍵Ｋと同じでもよく、異なっていてもよい。【００５７】
次に、本実施形態の暗号化装置の動作手順を説明する。【００５８】
図５は本実施形態の暗号化装置の動作を説明するための図である。図６は本実施形態の暗号化装置の動作手順を示すフローチャートである。図５に示す和の演算は制御部２０７内で実行される。【００５９】
ＭＬブロックおよびＭＲブロックを含む平文と付加パラメータＴＷが入力部１０１を介して入力されると（ステップ１０１１）、第１の強擬似ランダム付加パラメータ付き暗号化部２０２は、付加パラメータＴＷを用いてＭＬブロックを暗号化してＳＬブロックを生成する（ステップ１０１２）。続いて、第１の弱擬似ランダム暗号化部１０３が、ＭＬブロックとＳＬブロックの和を暗号化してＴＬブロックを生成する（ステップ１０１３）。【００６０】
第２の強擬似ランダム付加パラメータ付き暗号化部２０４が、付加パラメータＴＷを用いて、ＴＬブロックとＭＲブロックの和を暗号化してＣＲブロックを生成する（ステップ１０１４）。第２の弱擬似ランダム暗号化部１０５が、ＴＬブロック、ＭＲブロックおよびＣＲブロックの和を暗号化してＴＲブロックを生成する（ステップ１０１５）。さらに、暗号文生成部１０６が、ＳＬブロックとＴＲブロックの和であるＣＬブロックをＣＲブロックに連結して暗号文を生成し、暗号文を出力部１０８に出力する（ステップ１０１６）。【００６１】
本実施形態によれば、倍ブロック長の平文に付加パラメータがある場合でも第１の実施形態と同様な効果が得られる。【００６２】
なお、第１および第２の実施形態のそれぞれにおいて、第１および第２の強擬似ランダム暗号化部にラウンド関数の繰り返しによるブロック暗号Ｅを用い、第１および第２の弱擬似ランダム暗号化部にブロック暗号Ｅのラウンド関数の繰り返し回数を減らして得られるブロック暗号Ｅ’を用いるものとしてもよい。この場合、ラウンド関数の繰り返しにより安全性が向上する。また、２つの強擬似ランダム暗号化部が共通のブロック暗号Ｅを用い、２つの弱擬似ランダム暗号化部が共通のブロック暗号Ｅ’を用いることで、ＣＰＵに実行させるプログラムのサイズを低減できる。【００６３】
（第３の実施形態）
本実施形態の復号装置の構成を説明する。図７は本実施形態の復号装置の一構成例を示すブロック図である。【００６４】
図７に示すように、本実施形態の復号装置３１０は、入力部３０１と、制御部３０７と、出力部３０８とを有する情報処理装置である。制御部３０７には、プログラムにしたがって処理を実行するＣＰＵ（Central  Processing  Unit）（不図示）と、プログラムを格納するためのメモリ（不図示）とが設けられている。【００６５】
制御部３０７は、第１の強擬似ランダム復号部３０２と、第１の弱擬似ランダム暗号化部３０３と、第２の強擬似ランダム復号部３０４と、第２の弱擬似ランダム暗号化部３０５と、平文生成部３０６とを有する。ＣＰＵがプログラムを実行することで、制御部３０７内の各部が暗号化装置内に仮想的に構成される。【００６６】
入力部３０１には、復号される対象となる暗号文が入力される。ここでは、復号対象の暗号文がＣＲブロックとＣＬブロックを含むものとする。入力部３０１は、キーボード、磁気読み取り装置、通信部などのインタフェースである。【００６７】
第１の強擬似ランダム復号部３０２は、入力部３０１から受け取るＣＲブロックをｎビットのブロック暗号Ｅにより復号してＳＲブロックを生成する。ブロック暗号Ｅの鍵をＫとし、鍵Ｋを用いた復号をＥｉｎｖ［Ｋ］で表すと、ＳＲ＝Ｅｉｎｖ［Ｋ］（ＣＲ）の式が成り立つ。【００６８】
ここで、ブロック暗号Ｅは、選択暗号文攻撃に対して安全な、強擬似ランダム暗号であることが必要である。これは、ＡＥＳなど選択暗号文攻撃への安全性が広く検証されているブロック暗号を用いることで実現可能である。【００６９】
第１の弱擬似ランダム暗号化部３０３は、ＣＲブロックとＳＲブロックとの和をｎビットのブロック暗号Ｆにより暗号化し、ｎビットのＴＲブロックを生成する。和の演算はビット単位の排他的論理和でもよく、ｍｏｄ２ｎの算術和など任意の群演算でもよい。和の演算は制御部３０７で実行される。【００７０】
なお、置換である必要がないため、ブロック暗号Ｆは、例えば、初期ベクトル付きのストリーム暗号の初期ベクトルを入力とした関数でもよい。【００７１】
ブロック暗号Ｆの鍵をＬとすると、ＴＬ＝Ｆ［Ｌ］（ＭＬ＋ＳＬ）の式が成り立つ。ここで、ブロック暗号Ｆは、既知平文攻撃に対して安全な、弱擬似ランダム暗号であることが要求される。第１の強擬似ランダム復号部３０２が用いるブロック暗号Ｅはこの条件を既に満たしている上に、選択暗号文攻撃よりも既知平文攻撃は弱いクラスの攻撃である。そのため、ブロック暗号Ｅの一部分を省略するなどの簡略化を施しても、現実には既知平文攻撃への高い安全性を有することが考えられる。したがって、ブロック暗号Ｆはブロック暗号Ｅの一部分として得ることが可能である。【００７２】
第２の強擬似ランダム復号部３０４は、ＴＲブロックとＣＬブロックとの和をｎビットのブロック暗号Ｅ’により復号し、ｎビットのＭＬブロックを生成する。Ｅ’ｉｎｖをＥ’の逆関数とし、鍵をＫ’とすると、ＣＲ＝Ｅ’ｉｎｖ［Ｋ’］（ＴＬ＋ＭＲ）の式が成り立つ。和の演算はビット単位の排他的論理和でもよく、ｍｏｄ２ｎの算術和など任意の群演算でもよい。【００７３】
ブロック暗号Ｅ’は強擬似ランダム暗号であることが必要であり、第１の強擬似ランダム復号部３０２が用いるブロック暗号Ｅと同じアルゴリズムを用いてもよい。その場合、ブロック暗号Ｅ’の鍵Ｋ’はブロック暗号Ｅが用いる鍵Ｋと同じでもよく、異なっていてもよい。【００７４】
第２の弱擬似ランダム暗号化部３０５は、ＴＲブロック、ＣＬブロックおよびＭＬブロックの和をｎビットのブロック暗号Ｆ’により暗号化し、ｎビットのＴＬブロックを生成する。和の演算はビット単位の排他的論理和でもよく、ｍｏｄ２ｎの算術和など任意の群演算でもよい。【００７５】
ブロック暗号Ｆ’が用いる鍵をＬ’とすると、ＴＲ＝Ｆ’［Ｌ’］（ＴＬ＋ＭＲ＋ＣＲ）の式が成り立つ。ブロック暗号Ｆ’は、弱擬似ランダム暗号であることが要求される。ブロック暗号Ｆ’は第１の弱擬似ランダム暗号化部３０３が用いるｎビットのブロック暗号Ｆと同じアルゴリズムでもよい。また、ブロック暗号Ｆ’の鍵Ｌ’はブロック暗号Ｆの鍵Ｌと同じでもよく、異なっていてもよい。【００７６】
平文生成部３０６は、ＴＬブロックとＳＲブロックの和であるＭＲブロックにＭＬブロックを連結して平文を生成する。生成した平文を出力部３０８を介して出力する。出力部３０８は、ディスプレイ装置やプリンタなどの出力装置である。【００７７】
次に、本実施形態の復号装置の動作手順を説明する。【００７８】
図８は本実施形態の復号装置の動作を説明するための図である。図９は本実施形態の復号装置の動作手順を示すフローチャートである。図８に示す和の演算は制御部３０７内で実行される。【００７９】
ＣＲブロックおよびＣＬブロックを含む暗号文が入力部３０１を介して入力されると（ステップ１０２１）、第１の強擬似ランダム復号部３０２がＣＲブロックを復号してＳＲブロックを生成する（ステップ１０２２）。続いて、第１の弱擬似ランダム暗号化部３０３が、ＣＲブロックとＳＲブロックの和を暗号化してＴＲブロックを生成する（ステップ１０２３）。【００８０】
第２の強擬似ランダム復号部３０４が、ＴＲブロックとＣＬブロックの和を復号してＭＬブロックを生成する（ステップ１０２４）。第２の弱擬似ランダム暗号化部３０５が、ＴＲブロック、ＣＬブロックおよびＭＬブロックの和を暗号化してＴＬブロックを生成する（ステップ１０２５）。さらに、平文生成部３０６が、ＳＲブロックとＴＬブロックの和であるＭＲブロックをＭＬブロックに連結して平文を生成し、平文を出力部３０８に出力する（ステップ１０２６）。【００８１】
本実施形態により、第１の実施形態で説明した処理と逆の処理を行う場合でも、第１の実施形態と同様の効果が得られる。【００８２】
（第４の実施形態）
本実施形態の復号装置の構成を説明する。【００８３】
図１０は本実施形態の復号装置の一構成例を示すブロック図である。なお、第３の実施形態と同様な構成については同一の符号を付し、その詳細な説明を省略する。【００８４】
図１０に示すように、本実施形態の復号装置４１０は、入力部３０１と、制御部４０７と、出力部３０８とを有する情報処理装置である。制御部４０７には、プログラムにしたがって処理を実行するＣＰＵ（Central  Processing  Unit）（不図示）と、プログラムを格納するためのメモリ（不図示）とが設けられている。【００８５】
制御部４０７は、第１の強擬似ランダム付加パラメータ付き復号部４０２と、第１の弱擬似ランダム暗号化部３０３と、第２の強擬似ランダム付加パラメータ付き復号部４０４と、第２の弱擬似ランダム暗号化部３０５と、平文生成部３０６とを有する。ＣＰＵがプログラムを実行することで、制御部４０７内の各部が暗号化装置内に仮想的に構成される。【００８６】
復号対象の暗号文は、第３の実施形態と同様に、ＣＲブロックおよびＣＬブロックを含む暗号文とする。入力部３０１を介して暗号文と付加パラメータＴＷが入力される。【００８７】
第１の強擬似ランダム付加パラメータ付き復号部４０２は、入力部３０１からＣＲブロックおよび付加パラメータＴＷを受け取ると、付加パラメータＴＷを用いてＣＲブロックをｎビットブロックの付加パラメータ付き暗号Ｑにより復号してＳＲブロックを生成する。ＱｉｎｖをＱの逆関数とし、付加パラメータ付き暗号Ｑの鍵をＫとし、付加パラメータＴＷと鍵Ｋを用いた復号をＱｉｎｖ［Ｋ，ＴＷ］で表すと、ＳＲ＝Ｑｉｎｖ［Ｋ，ＴＷ］（ＣＲ）の式が成り立つ。【００８８】
付加パラメータ付き暗号Ｑは、選択暗号文攻撃に対して安全な、強擬似ランダム付加パラメータ付き暗号であることが必要である。これは、ＡＥＳなど、選択暗号文攻撃への安全性が広く検証されているブロック暗号を、文献４に開示されたＸＥＸモードなどを用いて付加パラメータ付き暗号へ変換することで実現可能である。【００８９】
第２の強擬似ランダム付加パラメータ付き復号部４０４は、付加パラメータＴＷを用いて、ＴＲブロックとＣＬブロックとの和をｎビットブロックの付加パラメータ付き暗号Ｑ’により復号し、ｎビットのＭＬブロックを生成する。鍵をＫ’とすると、ＣＲ＝Ｑ’ｉｎｖ［Ｋ’，ＴＷ］（ＴＬ＋ＭＲ）の式が成り立つ。和の演算はビット単位の排他的論理和でもよく、ｍｏｄ２ｎの算術和など任意の群演算でもよい。和の演算は制御部４０７で実行される。【００９０】
付加パラメータ付き暗号Ｑ’は強擬似ランダム付加パラメータ付き暗号であることが必要であり、第１の強擬似ランダム付加パラメータ付き復号部４０２が用いる付加パラメータ付き暗号Ｑと同じアルゴリズムを用いてもよい。その場合、付加パラメータ付き暗号Ｑ’の鍵Ｋ’は付加パラメータ付き暗号Ｑが用いる鍵Ｋと同じでもよく、異なっていてもよい。【００９１】
次に、本実施形態の復号装置の動作手順を説明する。【００９２】
図１１は本実施形態の復号装置の動作を説明するための図である。図１２は本実施形態の復号装置の動作手順を示すフローチャートである。図１１に示す和の演算は制御部４０７内で実行される。【００９３】
ＣＲブロックおよびＣＬブロックを含む暗号文と付加パラメータＴＷが入力部３０１を介して入力されると（ステップ１０３１）、第１の強擬似ランダム付加パラメータ付き復号部４０２は、付加パラメータＴＷを用いてＣＲブロックを復号してＳＲブロックを生成する（ステップ１０３２）。続いて、第１の弱擬似ランダム暗号化部３０３が、ＣＲブロックとＳＲブロックの和を暗号化してＴＲブロックを生成する（ステップ１０３３）。【００９４】
第２の強擬似ランダム付加パラメータ付き復号部４０４が、付加パラメータＴＷを用いて、ＴＲブロックとＣＬブロックの和を復号してＭＬブロックを生成する（ステップ１０３４）。第２の弱擬似ランダム暗号化部３０５が、ＴＲブロック、ＣＬブロックおよびＭＬブロックの和を暗号化してＴＬブロックを生成する（ステップ１０３５）。さらに、平文生成部３０６が、ＳＲブロックとＴＬブロックの和であるＭＲブロックをＭＬブロックに連結して平文を生成し、平文を出力部３０８に出力する（ステップ１０３６）。【００９５】
本実施形態によれば、倍ブロック長の暗号文に付加パラメータがある場合でも第３の実施形態と同様な効果が得られる。【００９６】
なお、第３および第４の実施形態のそれぞれにおいて、第１および第２の強擬似ランダム復号部にラウンド関数の繰り返しによるブロック暗号Ｅを用い、第１および第２の弱擬似ランダム暗号化部にブロック暗号Ｅのラウンド関数の繰り返し回数を減らして得られるブロック暗号Ｅ’を用いるものとしてもよい。この場合、２つの強擬似ランダム復号部が共通のブロック暗号Ｅを用い、２つの弱擬似ランダム暗号化部が共通のブロック暗号Ｅ’を用いることで、ＣＰＵに実行させるプログラムのサイズを低減できる。【００９７】
本発明の効果の一例として、ユニバーサルハッシュ関数を用いないでも、倍ブロック長の強擬似ランダム置換を効率よくできる。
【産業上の利用可能性】
【００９８】
本発明の応用例を説明する。【００９９】
本発明を２者間で暗号化通信を行うシステムに応用することが可能である。インターネットなどのネットワークを介して、電話やメッセージを２者間でやり取りする際、それぞれに本発明の暗号化方法と復号方法を実行可能にした情報端末を備える。一方の情報端末は、データを送信する際、データを暗号化してから送信する。他方の情報端末は、受信したデータを復号する。このようにして、２者間でデータをやり取りすれば、情報の漏洩を防ぐことができる。【０１００】
本発明をコンテンツの配信システムにも応用可能である。通信技術の発達により、通信速度が年々速くなっている。そのため、映画や音楽などの容量の大きい情報でもネットワークを介して個人の情報端末でやり取りすることが可能になった。しかし、映画や音楽などの著作物が容易に違法にコピーされてしまうという問題がある。本発明を映画や音楽などのコンテンツを安全に配信するシステムに応用して、この問題を防ぐことが可能である。映画や音楽などのコンテンツを提供する側のサーバに本発明の暗号化装置を設け、コンテンツの提供を受ける各クライアントの情報端末に本発明の復号装置を設ける。サーバが暗号化装置を用いてコンテンツを暗号化して各クライアントの情報端末に配信すると、各クライアント側の情報端末は復号装置を用いて、暗号化されたコンテンツを復号する。このようにして、コンテンツの提供を受ける権利がある者にだけ、漏出を防ぎ、かつ、高速処理でコンテンツを提供することが可能となる。【０１０１】
さらに、次のようにして、本発明をコンピュータサーバ上のデータを安全に運用するシステムに応用することが可能である。秘匿すべきデータを本発明の暗号化方法で暗号してサーバに保存する。秘匿すべきデータの閲覧が許可された者の情報端末にだけ本発明の復号装置を予め設けておく。閲覧が許可された者は、秘匿すべきデータが必要になれば、情報端末を操作してサーバから受信したデータに対して本発明の復号方法を実行させ、対象のデータを見ることが可能となる。閲覧が許可されていない者は、自分の情報端末で暗号化されたデータを表示することができない。このようにして、閲覧が許可された者にだけ、より安全に、かつ、高速処理で秘匿情報を提供することが可能となる。【０１０２】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１０３】
この出願は、２００７年１２月２６日に出願された日本出願の特願２００７−３３４４４３の内容が全て取り込まれており、この日本出願を基礎として優先権を主張するものである。
【図１】
2009081975.tif 000003
【図２】
2009081975.tif 000004
【図３】
2009081975.tif 000005
【図４】
2009081975.tif 000006
【図５】
2009081975.tif 000007
【図６】
2009081975.tif 000008
【図７】
2009081975.tif 000009
【図８】
2009081975.tif 000010
【図９】
2009081975.tif 000011
【図１０】
2009081975.tif 000012
【図１１】
2009081975.tif 000013
【図１２】
2009081975.tif 000014
【国際調査報告】
2009081975.tif 000015
2009081975.tif 000016
2009081975.tif 000017
2009081975.tif 000018