JP5273141B2 - 調整値付きブロック暗号装置、暗号生成方法および記録媒体 - Google Patents

調整値付きブロック暗号装置、暗号生成方法および記録媒体 Download PDF

Info

Publication number
JP5273141B2
JP5273141B2 JP2010508179A JP2010508179A JP5273141B2 JP 5273141 B2 JP5273141 B2 JP 5273141B2 JP 2010508179 A JP2010508179 A JP 2010508179A JP 2010508179 A JP2010508179 A JP 2010508179A JP 5273141 B2 JP5273141 B2 JP 5273141B2
Authority
JP
Japan
Prior art keywords
encryption
adjustment value
offset
unit
plaintext
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010508179A
Other languages
English (en)
Other versions
JPWO2009128370A1 (ja
Inventor
一彦 峯松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010508179A priority Critical patent/JP5273141B2/ja
Publication of JPWO2009128370A1 publication Critical patent/JPWO2009128370A1/ja
Application granted granted Critical
Publication of JP5273141B2 publication Critical patent/JP5273141B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本発明は、ブロック暗号の運用モードに関し、例えば、ブロック暗号と、ブロック暗号の一部の処理と、の組合せによる、汎用的で高速な調整値付きブロック暗号装置、暗号生成方法、および、記録媒体に関する。
調整値付きブロック暗号とは、通常のブロック暗号が持つ入出力である、平文、暗号文および鍵以外に、tweakと呼ばれる調整値を持つブロック暗号のことである。
調整値付きブロック暗号においては、調整値が異なる二つのブロック暗号の出力(暗号文)が、調整値と入力(平文)を既に知っている攻撃者には、互いに独立でランダムな値に見えることが要求される。この性質が満たされるとき、調整値付きブロック暗号は安全であるという。
tweakと同様な補助入力を持つブロック暗号は、いくつか提案されてきた。しかしながら、それらの暗号では、安全性などについて厳密な要求は定義されていなかった。
調整値付きブロック暗号の形式的な定義は、非特許文献1において最初になされた。
また、非特許文献1において、理論的に安全な調整値付きブロック暗号が、通常のブロック暗号の運用モード(以後「モード」と略す)として得られるということ、つまり、ブロック暗号をブラックボックスとして用いた変換として得られるということが示された。
ただし、ここでいう理論的安全性とは、あるブロック暗号のモードとして得られる調整値付きブロック暗号の安全性が、元となるブロック暗号の安全性に帰着できる、つまり、安全なブロック暗号を用いる限り、そのブロック暗号のモードとして得られる調整値付きブロック暗号も安全である、ということを指す。
さらに、安全性の定義には、攻撃者が選択平文攻撃(chosen-plaintext attack, CPA)のみ実行可能な場合での安全性と、攻撃者が選択平文攻撃と選択暗号文攻撃(chosen-ciphertext attack, CCA)とを組み合わせて実行可能な場合での安全性と、の2種類があり、前者をCPA-security、後者をCCA-securityと呼ぶ。
安全な調整値付きブロック暗号は、高度な暗号化機能の実現のための鍵となる技術であることが知られている。
例えば、非特許文献2では、CCA-securityを有する調整値付きブロック暗号を用いると、大変効率のよい認証機能付き暗号化が実現できることや、CPA-securityを有する調整値付きブロック暗号を用いると、効率のよい、並列実行可能なメッセージ認証コードが実現できることが指摘されている。
また、CCA-securityを有する調整値付きブロック暗号は、ディスクセクタ暗号化などのストレージ暗号化のための必須の技術であることも知られている。
ここでは、非特許文献1で提案されたモードを、LRWモードと呼ぶことにする。
図1は、LRWモードでの暗号化処理、具体的には、LRWモードにおいてnビットブロック暗号(以下、単に「ブロック暗号」と称する。)Eを用いた暗号化処理を説明するためのブロック図である。
LRWモードにおいては、ブロック暗号Eを実装した暗号化部11E以外に、有限体GF(2n)上で乗算を行う関数mulを実装した乗算部11Mが必要となる。ここで、mul(x,y)は、有限体GF(2n)上での2要素xとyの乗算結果を表す。LRWモードにおいては、関数mulの引数の一つは、nビットの一様乱数K2である。一様乱数K2を、ブロック暗号Eの鍵K1とは独立な鍵とする。関数mulのもうひとつの引数は、tweakである。
LRWモードでは、ブロック暗号Eに供給される平文に足す値、および、ブロック暗号Eによって生成された暗号文に足す値を、関数mulが作っている。このような関数(この場合、関数mul)を、「オフセット関数」と呼ぶことにし、オフセット関数の出力を「オフセット」と呼ぶことにする。
より一般的には、オフセット関数は、関数mulに限らず、独立な鍵とtweakを引数とした関数Fでよい。
ここで、関数Fは、セキュリティパラメータをe(eは0以上1以下)としたとき、任意のc, x, x'(ただしxとx'は異なる)について、Pr[f(K,x) + f(K,x')= c]がe以下であるという性質をもつ必要がある。ただし、+は排他的論理和をあらわす。
関数Fが、この性質を持つとき、f(K,*)は、e-almost XOR universal (e-AXU)であるという。e-AXU関数は、ユニバーサルハッシュ関数の一種である。ちなみに、関数mulは、1/2n-AXUである。
e-AXU関数は、関数mul以外にも、非特許文献3などで提案されている方式で実現可能である。
これらのe-AXU関数は、特定の実装環境においては、一般的なブロック暗号より数倍高速である。
しかし、どのような計算機環境でも実装可能で、かつ、ブロック暗号より高速であるe-AXU関数は、知られていない。
このため、e-AXU関数が高速に実装可能な環境でないと有効でないということが問題になり、さらに、ブロック暗号Eとe-AXU関数(例えば、関数mul)という二つの部品を実装するために、ブロック暗号Eのみを実装する場合と比べて、プログラムのサイズが一般に大きくなるということも問題となる。
一方、ブロック暗号Eのみを用いる調整値付きブロック暗号として、非特許文献2に記載のXEXモードも知られている。
図2Aは、XEXモードを説明するためのブロック図である。
図2Aにおいて、tweakは、二つの部分に分けられる。つまり、tweak=(tweak1,tweak2)と表現される。オフセット関数powは、ある基数をb、tweak2を指数とし、tweak1の暗号化E(K1,tweak1)とbtweak2との乗算を行う。すなわち、オフセットは、以下の[数pow]で表される。
[数pow]
pow(tweak2,E(K1,tweak1)) = mul(btweak2,E(K1,tweak1))
関数powを定めるにあたり、基数が複数存在する場合、tweak2は、それら基数の指数の組(例えば、基数がb1とb2なら、tweak2=(tweak21,tweak22))となっていてもよい。この場合の関数powの第一引数は、b1tweak21とb2tweak22の積、すなわち、mul(b1tweak21,b2tweak22)となる。
いずれのケースにおいても、基数を適切に選ぶことにより、オフセットは、tweak2をインクリメントするとき、すなわち、直前のtweak2の値へ1を足すだけのとき、1回のビットシフトと1回の定数の排他的論理和のみで計算できるという利点を持つ。つまり、オフセットの計算は、ブロック暗号の暗号化と比べて、極めて短時間で実行可能である。
しかし、ある時点でのtweak2は、直前のtweak2をインクリメントしたものにしかできないため、XEXモードは、tweak2が任意に変わるような応用には適さない。
なお、図2Aに示したXEXモードにおいて、tweak2を定数に固定し、tweak1のみをtweakとして扱うことで、形式的にはtweakの任意の更新ができる。しかしながら、これは、tweakの長さを短くすることになる。そのうえ、オフセットの計算に1ブロックの暗号化の計算量を必要とすることになる。したがって、この場合のXEXモードは、1ブロックメッセージの暗号化に2回のブロック暗号コールを必要とすることになる。
LRWモードとXEXモードの両方とも、CCA-securityを有するが、もし、LRWモードとXEXモードにおいて、オフセットによる2回目の排他的論理和を省くと、得られるモードは、CPA-securityのみを有するモードとなる。
CPA-securityの方が、安全性の概念としては、CCA-securityよりも弱いが、CPA-securityでも、メッセージ認証などのいくつかの用途には十分であることが知られている。
また、XEXモードにおいて、ブロック暗号Eによって生成された暗号文とオフセットとの排他的論理和を省いたモードは、非特許文献2に、XEモードとして定義されている。図2Bは、XEモードでの暗号化処理を示したブロック図である。
さらに、非特許文献2では、XEモードとXEXモードを混在させたモードであるXEX*モードが提案されている。XEX*モードは、XEモードかXEXモードのどちらで処理を行うかを、利用者が、個別のtweakごとに指定できるモードである。図2Cは、XEX*モードでの暗号化処理を示したブロック図である。
ただし、XEX*モードでは、あるtweakについてXEモードで処理を行った場合、同じtweakでXEXモードの処理を行うことはできない。逆に、あるtweakについてXEXモードで処理を行った場合、同じtweakでXEモードの処理を行うこともできない。
XEモードかXEXモードのどちらを用いるかを指定する1ビットの情報をタグtagと呼ぶ。このように利用者がタグとtweakを指定して使用するモードのことも、ここでは、調整値付きブロック暗号と呼ぶことにする。
XEX*モードの利点は、あるtweakでの処理にCPA-securityが求められるが、別のtweakでの処理にはCCA-securityが求められるようなケースにおいて、単純にXEXモードを用いる場合よりも効率が良くなることである。つまり、CPA-securityが求められるtweakでの処理において、XEXモードではなくXEモードを使うことで、暗号文側のオフセットの排他的論理和演算を省略できる。
ただし、XEX*モードでは、XEモードを用いる以上、いずれの処理においても平文側の排他的論理和演算は省略できない。具体的には、XEX*モードは、非特許文献4に記載の認証機能付き暗号化モードであるOCB2.0に用いられている。これは、特許文献1に記載のOCBを改良したものである。
米国特許第7046802号明細書 Moses Liskov, Ronald L. Rivest, David Wagner: 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 P. 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 S. Halevi and H. Krawczyk, MMH:Software Message Authentication in the Gbit/second rates, Fast Software Encryption, 4th Internatioanl Workshop, FSE '97, Lecture Notes in Computer Science; Vol. 1267, Feb. 1997 T. Krovetz and P. Rogaway. The OCB Authenticated-Encryption Algorithm. Internet draft, March 2005 J. Daemen and V. Rijmen, AES Proposal: Rijndael, AES submission, 1998. http://csrc.nist.gov/CryptoToolkit/aes/rijndael/Rijndael.pdf S. Park, S. H. Sung, S. Lee, and J. Lim, Improving the Upper Bound on the Maximum Differential and the Maximum Linear Hull Probability for SPN Structure and AES, Internatioanl Workshop, FSE 2003, Lecture Notes in Computer Science; Vol. 2887, Feb. 2003
ブロック暗号のみを用いて調整値付きブロック暗号を実現するXEモード、XEXモードもしくはXEX*モードでは、どのような入力においても、単純なブロック暗号に従った暗号化と比べて処理量が増加してしまう。
その理由は、XEモードとXEXモードのいずれも、ブロック暗号Eに供給される平文とオフセットとの排他的論理和演算が必要であり、XEX*モードの処理は、実際にはXEかXEXモードであるからである。
本発明の目的は、上述した課題を解決することが可能な調整値付きブロック暗号装置、調整値付きブロック暗号化方法、および、プログラムを提供することである。
本発明の調整値付きブロック暗号装置は、ブロック暗号方式で暗号化を行う暗号化部と、第1暗号処理と第2暗号処理のいずれかを示す指示情報と、平文と、調整値と、を受け付ける入力部と、前記指示情報が前記第1暗号処理を示す場合には、前記調整値を第1調整値と第2調整値に分割し、前記暗号化部を用いて当該第1調整値を暗号化してオフセット用暗号を生成し、当該オフセット用暗号と当該第2調整値とに基づいてオフセット値を求め、当該オフセット値と前記平文との和をとり、前記暗号化部を用いて当該和を暗号化して第1暗号文を生成し、前記指示情報が前記第2暗号処理を示す場合には、前記暗号化部を用いて前記平文を暗号化して第2暗号文を生成する生成部と、を含む。
本発明の暗号生成方法は、ブロック暗号方式で暗号化を行う暗号化部を含む調整値付きブロック暗号装置が行う暗号生成方法であって、第1暗号処理と第2暗号処理のいずれかを示す指示情報と、平文と、調整値と、を受け付け、前記指示情報が前記第1暗号処理を示す場合には、前記調整値を第1調整値と第2調整値に分割し、前記暗号化部を用いて当該第1調整値を暗号化してオフセット用暗号を生成し、当該オフセット用暗号と当該第2調整値とに基づいてオフセット値を求め、当該オフセット値と前記平文との和をとり、前記暗号化部を用いて当該和を暗号化して第1暗号文を生成し、前記指示情報が前記第2暗号処理を示す場合には、前記暗号化部を用いて前記平文を暗号化して第2暗号文を生成する。
本発明の記録媒体は、コンピュータを、ブロック暗号方式で暗号化を行う暗号化部、第1暗号処理と第2暗号処理のいずれかを示す指示情報と、平文と、調整値と、を受け付ける入力部、および、前記指示情報が前記第1暗号処理を示す場合には、前記調整値を第1調整値と第2調整値に分割し、前記暗号化部を用いて当該第1調整値を暗号化してオフセット用暗号を生成し、当該オフセット用暗号と当該第2調整値とに基づいてオフセット値を求め、当該オフセット値と前記平文との和をとり、前記暗号化部を用いて当該和を暗号化して第1暗号文を生成し、前記指示情報が前記第2暗号処理を示す場合には、前記暗号化部を用いて前記平文を暗号化して第2暗号文を生成する生成部、として機能させるプロクラムを記録したコンピュータ読み取り可能な記録媒体である。
本発明によれば、調整値付きブロック暗号において、処理量が少ないブロック暗号処理を実現することが可能になる。
LRWモードでの暗号化処理を説明するためのブロック図である。 XEXモードを説明するためのブロック図である。 XEモードでの暗号化処理を示したブロック図である。 XEX*モードでの暗号化処理を示したブロック図である。 本発明の第1の実施の形態の調整値付きブロック暗号装置の構成を示すブロック図である。 オフセット関数Fとして4段AESが用いられる場合の例を示した説明図である。 第1の実施の形態の動作を説明するためのフローチャートである。 処理指示変数が「0」を示す場合の処理を説明するための説明図である。 処理指示変数が「1」を示す場合の処理を説明するための説明図である。 本発明の第2の実施の形態の調整値付きブロック暗号装置の構成を示すブロック図である。 第2の実施の形態の動作を説明するためのフローチャートである。 処理指示変数が「0」を示す場合の処理を説明するための説明図である。 処理指示変数が「1」を示す場合の処理を説明するための説明図である。 本発明の第3の実施の形態の調整値付きブロック暗号装置の構成を示すブロック図である。 第3の実施の形態の動作を説明するためのフローチャートである。
10、20、30 調整値付きブロック暗号装置
10A、20A、30A ブロック暗号化部
10B、20B、30B 入力部
10C、20C、30C 生成部
10C1、20C1、30C1 処理選択部
10C2、20C2、30C2 オフセット計算部
10C3 両側オフセット暗号化部
20C3 片側オフセット暗号化部
30C3 タグ依存オフセット暗号化部
10C4、20C4、30C4 付加的暗号化部
10C5、20C5、30C5 出力部
(第1の実施の形態)
[1]構成の説明
次に、本発明の第1の実施の形態について図面を参照して説明する。
図3は、第1の実施の形態の調整値付きブロック暗号装置の構成を示すブロック図である。
図3において、調整値付きブロック暗号装置10は、ブロック暗号化部10Aと、入力部10Bと、生成部10Cと、を含む。生成部10Cは、処理選択部10C1と、オフセット計算部10C2と、両側オフセット暗号化部10C3と、付加的暗号化部10C4と、出力部10C5と、を含む。
調整値付きブロック暗号装置10は、例えば、CPUとメモリとディスクとを備えたコンピュータにより実現可能である。この場合、調整値付きブロック暗号装置10は、例えば、ディスクに記録されたプログラム(アプリケーション)に従って動作する。ディスクは、一般的に、コンピュータ(調整値付きブロック暗号装置10;CPU)にて読み取り可能な記録媒体と呼ぶことができる。
調整値付きブロック暗号装置10内のCPUは、プログラムをディスク(記録媒体)から読み取り実行することによって、ブロック暗号化部10A、入力部10B、および、生成部10Cとして機能する。
次に、調整値付きブロック暗号装置10を構成する各部について説明する。
ブロック暗号化部10Aは、一般的に暗号化手段と呼ぶことができる。
ブロック暗号化部10Aは、ブロック暗号方式で暗号化を行う。ブロック暗号化部10Aは、例えば、AES(Advanced Encryption Standard)等のブロック暗号方式に応じたブロック暗号アルゴリズムを格納し、そのブロック暗号アルゴリズムに基づいて暗号化を行う。
入力部10Bは、一般的に入力手段と呼ぶことができる。
入力部10Bは、暗号化の対象となるnビットの平文と、treakと、処理指示変数と、を受け付ける。treakは、一般的に調整値と呼ぶことができる。処理指示変数は、一般的に指示情報と呼ぶことができる。処理指示変数は、2値(「0」と「1」)のいずれかを示す。なお、本実施形態では、「0」は第1暗号処理を意味し、「1」は第2暗号処理を意味する。
入力部10Bは、例えば、キーボードなどの文字入力装置により実現される。入力部10Bは、平文とtweakと処理指示変数とを受け付けると、その平文とtweakと処理指示変数とを、生成部10C(具体的には、処理選択部10C1)に提供する。
生成部10Cは、一般的に生成手段と呼ぶことができる。
生成部10Cは、処理指示変数が「0」を示す場合に、tweakをtweak1とtweak2に分割する。tweak1は、一般的に第1調整値と呼ぶことができる。tweak2は、一般的に第2調整値と呼ぶことができる。
本実施形態では、生成部10Cは、tweak1が平文と異なるように、tweakをtweak1とtweak2に分割する。
生成部10Cは、ブロック暗号化部10Aを用いてtweak1を暗号化して、オフセット用暗号を生成する。生成部10Cは、オフセット用暗号とtweak2とに基づいて、オフセット値を求める。
例えば、生成部10Cは、オフセット用暗号と、有限体GF(2n)上にある基数についてtweak2を指数とした演算要素と、の乗算を行い、その乗算の結果を、オフセット値とする。
また、生成部10Cは、オフセット用暗号とtweak2との和(例えば、排他的論理和)をとり、その和に対して、ブロック暗号化部10Aが実行するブロック暗号方式で行われる置換処理を施して、オフセット値を求めてもよい。
なお、平文およびtweak2の長さを、128ビットとし、ブロック暗号化部10Aがブロック暗号方式として、ブロックの長さを128ビットとするAESを用いる場合、生成部10Cは、オフセット用暗号とtweak2との和に対して、AESに規定された128ビット置換処理、すなわち、AESが有する128ビット置換処理を施して、オフセット値を求めてもよい。
生成部10Cは、オフセット値と平文との和(例えば、排他的論理和)をとり、ブロック暗号化部10Aを用いて、その和を暗号化して、第1暗号文を生成する。また、生成部10Cは、第1暗号文とオフセット値との和(例えば、排他的論理和)をとって、第3暗号文を生成する。
一方、処理指示変数が「1」を示す場合には、生成部10Cは、入力部10Bからの平文を、ブロック暗号化部10Aを用いて暗号化して、第2暗号文を生成する。つまり、処理指示変数が「1」を示す場合には、生成部10Cは、tweakを用いることなく、第2暗号文を生成する。
処理選択部10C1は、一般的に処理選択手段と呼ぶことができる。
処理選択部10C1は、入力部10Bからの処理指示変数に応じて、処理を切り替える。具体的には、処理選択部10C1は、処理指示変数が「0」を示すとき、平文とtweakを、オフセット計算部10C2に出力し、処理指示変数が「1」を示すとき、平文とtweakのうち平文のみを、付加的暗号化部10C4に出力する。
オフセット計算部10C2は、一般的にオフセット計算手段と呼ぶことができる。
オフセット計算部10C2は、処理指示変数が「0」を示すときに処理選択部10C1が出力した平文とtweakを入力とし、 tweakに依存したオフセット値(以下「offset」と称する。)を計算し、offsetと平文とを併せて出力する。
オフセット計算部10C2は、tweakを、2つの部分系列であるtweak1とtweak2に分解する。オフセット計算部10C2は、offsetを、以下の[数offset]に示された数式にしたがって求める。なお、ブロックサイズがnビットの場合、tweakもnビットであり、この処理は、nビット入力、nビット出力の鍵付き関数となる。
[数offset]
offset = F(E(K,tweak1) ,tweak2)
[数offset]において、E(K,tweak1)は、nビットブロック暗号Eとその鍵Kによる、tweak1の暗号化を示す。なお、オフセット計算部10C2は、ブロック暗号化部10Aを用いて、[数offset]に示された数式(オフセット関数F)内の暗号化を行う。
ただし、tweak1のとりうる値の集合をNとすれば、Nは、{0,1}nの部分集合であるとする。
また、tweak2をsビットとすれば、オフセット関数Fは、n+sビット入力、nビット出力の関数となり、以下の3つの値、MEDP、U、および、MESDPが、十分小さいという条件を満たすことが必要である。
MEDP=max{Pr(F(R,x) + F(R,x')=d)}
U=max{Pr(F(R,x) = d)}
MESDP=max{Pr(F(R,x) + R =d )}
ここで、Rは、sビットの一様乱数である。MEDPの最大は、あらゆるsビット値のペアx, x'のうちでxとx'が異なるものと、あらゆるnビット値dについてとられている。UとMESDPの最大は、あらゆるsビット値xとnビット値dについてとられている。
また、オフセット関数Fは、鍵付きの関数でもよい。オフセット関数Fが、鍵付きの関数である場合は、オフセット計算部10C2は、n+sビット入力以外に独立な鍵Ksubを入力として持ち、MEDP、UおよびMESDPの各確率は、この鍵Ksubの確率分布も含めて定義することになる。特に、MEDPは、最大差分確率と呼ばれる。
オフセット関数Fの実現方法については、例えば、非特許文献2に記載のXEXモードにて使用される関数pow([数pow]に記載)が、条件を満たすものとしてあげられる。
近年のブロック暗号は、ほぼ全てが、ラウンド関数と呼ばれる比較的簡単な鍵付きの置換を、鍵を変えながら所定の回数繰り返すことで構成されている。
そして、差分攻撃と線形攻撃に対する耐性を持たせるために、ラウンド関数の数回の繰り返しが、MEDP、U、MESDPの3つの値を小さく保証するオフセット関数Fに適合することが多い。
具体的には、ラウンド関数の数回の繰り返しをG(ラウンド鍵をKsubとする)とすると、オフセット関数Fを、以下の[数Round]で定義する。
[数Round]
F(E(K,tweak1),tweak2)=G(Ksub,E(K,tweak1)+tweak2)
例として、非特許文献6では、非特許文献5に記載のブロック暗号AESにおいて、ラウンド関数の4回の繰り返し(4段AESと呼ぶ)をオフセット関数Fとして使うことが記載されている。
図4は、オフセット計算部10C2が用いるオフセット関数Fとして、4段AESが用いられる場合の例を示した説明図である。
具体的には、[数Round]においてGを4段AESとし、Ksubを1から4段目のラウンド鍵(ただし1段目のラウンド鍵は任意の定数でよいため、実際のKsubの長さは128*3=384ビットとなる。)とし、各ラウンド鍵は一様で独立とする場合、非特許文献6には、MEDPの確率(差分確率)を高々2-113にすることが記載されている。
また、Uの確率は、Gが置換の場合には、理論最小値(ブロックサイズがnなら2の-n乗)を持つことと、MESDPで示される確率は、ラウンド関数においてラウンド鍵が排他的論理和される構造では、常に理論最小値2-nとなることから、安全なブロック暗号の短縮段をGとして用いることで、安全性に対して高い信頼性をもつ本実施の形態を構築可能である。
両側オフセット暗号化部10C3は、一般的に両側オフセット暗号化手段と呼ぶことができる。
両側オフセット暗号化部10C3は、ブロック暗号化部10Aを使用して、オフセット計算部10C2が出力したoffsetと平文とに基づき、暗号文(第3暗号文)Cを生成する。
平文をMとすると、両側オフセット暗号化部10C3が出力する暗号文Cは、以下の[数twosideOFE]に示した数式に従って求められる。
[数twosideOFE]
C=E(K,M+offset)+offset
ただし、Eは、ブロック暗号化部10Aによるブロック暗号、KはEの鍵であり、+は排他的論理和を表す。
付加的暗号化部10C4は、一般的に付加的暗号化手段と呼ぶことができる。
付加的暗号化部10C4は、処理指示変数が「1」を示す場合に処理選択部10C1が出力する平文を、ブロック暗号化部10Aを用いて暗号化して、第2暗号文を生成する。
ただし、この平文をMoeとすると、Moeはtweak1とは常に異なり、Moeは、{0,1}nとtweak1のとりうる値の集合Nとの差集合に含まれる必要がある。このため、生成部10C(具体的には、オフセット計算部10C2)は、Moeがtweak1と常に異なるように、tweakを、tweak1とtweak2に分割する。
これは、例えば、あらかじめtweak1の最下位ビットを0に固定し、Moeの最下位ビットを1に固定するなどすればよい。
第2暗号文は、Coe=E(K,Moe)となり、付加的暗号化部10C4は、Coe=E(K,Moe)を出力する。
当然、Nがnビット空間全体を占める場合には、付加的暗号化部10C4の入力は存在せず、暗号化は実行されない。
現実には、Moeは、とりうる値に制限があり、また、安全上E(K,Moe)を復号してMoeを得る処理を利用者が行うことは認められない。
このため、例えば、付加的暗号化部10C4は、Moeをカウンターとして、得られるE(K,Moe)を擬似乱数とした、加法的ストリーム暗号を実現することが考えられる。
これ以外にも、E(K,Moe)は、擬似乱数として任意の用途、例えばパスワード生成や秘密分散など、に用いてもよい。
出力部10C5は、一般的に出力手段と呼ぶことができる。
出力部10C5は、両側オフセット暗号化部10C3もしくは付加的暗号化部10C4が出力した暗号文を、コンピュータディスプレイやプリンターなどへ出力する。
[2]動作の説明
図5は、第1の実施の形態の動作を説明するためのフローチャートである。図6は、処理指示変数が「0」を示す場合の処理を説明するための説明図である。図7は、処理指示変数が「1」を示す場合の処理を説明するための説明図である。
以下、図5〜7を参照して、第1の実施の形態の全体の動作について詳細に説明する。
まず、入力部10Bが、平文とtweakと処理指示変数を受け付ける(ステップAE1)。入力部10Bは、その平文とtweakと処理指示変数を、処理選択部10C1に提供する。
処理選択部10C1は、平文とtweakと処理指示変数を受け付けると、処理指示変数の値によって、通常の暗号化を行うか、付加的暗号化を行うかを判断する(ステップAE2)。
処理指示変数が「0」を示す場合、処理選択部10C1は、通常の暗号化を行うと判断し、平文とtweakを、オフセット計算部10C2に提供する。一方、処理指示変数が「1」を示す場合、処理選択部10C1は、付加的暗号化を行うと判断し、平文とtweakのうち平文のみを、付加的暗号化部10C4に提供する。
オフセット計算部10C2は、平文とtweakを受け付けると、ブロック暗号化部10Aを用いて、[数offset]に示した数式にしたがってoffsetを求める(ステップAE3)。オフセット計算部10C2は、そのoffsetと平文を、両側オフセット暗号化部10C3に提供する。
両側オフセット暗号化部10C3は、offsetと平文を受け付けると、ブロック暗号化部10Aを用いて、そのoffsetと平文に基づき[数twosideOFE]に示した数式にしたがって、暗号文を求める(ステップAE4)。両側オフセット暗号化部10C3は、その暗号文を、出力部10C5に提供する。
一方、付加的暗号化部10C4は、平文を受け付けると、ブロック暗号化部10Aを用いて、その平文を暗号化し、暗号文を求める(ステップAE5)。付加的暗号化部10C4は、その暗号文を、出力部10C5に提供する。
最後に、出力部10C5は、暗号文を受け付けると、その暗号文を出力する(ステップAE6)。
本実施の形態では、以下の効果を奏する。
付加的暗号化部10C4(生成部10C)は、ブロック暗号化部10Aを用いて平文を暗号化して暗号文を生成する。このため、付加的暗号化部10C4は、オフセットの排他的論理和を、平文側、暗号文側とも必要としない暗号化を行う。
したがって、本実施の形態において、オフセット関数Fとして、XEXモードと同じオフセット関数powを用いて実現した場合、XEX(もしくはXE, XEX*)モードよりも、用途によっては高速に暗号を生成できることである。
また、オフセット計算部10C2(生成部10C)は、tweak1が平文と異なるように、tweakを、tweak1とtweak2に分割する。このため、付加的暗号化部10C4へ入力する平文が、tweak1と常に異なっていれば、付加的暗号化部10C4の出力は、通常の暗号化・復号処理とは、独立な擬似乱数として用いることができる。このような乱数は、パスワード生成・秘密分散など、暗号化と関連した様々な処理で用いることができる。
また、別の例として、付加的暗号化部10C4へ入力する平文をtweak1と異なるカウンターとすれば、付加的暗号化部10C4は、カウンターモードの暗号化を行うことができる。これは、通常のXEXモードに、新たに独立で高速なカウンターモードを付与したことに相当する。
なお、LRWモードでも、tweakを全ゼロにしたときはオフセットが常にゼロとなり、結果的に加算なしの暗号化が実現可能であるが、安全性のために、オフセットの生成において必要な鍵を、ブロック暗号の鍵とは独立に生成する必要があった。従って、本実施の形態よりも、LRWモードの方が、一般に鍵が長くなる。
また、本実施の形態では、オフセット計算部10C2(生成部10C)は、オフセット用暗号とtweak2との和をとり、その和に対して、ブロック暗号化部10Aでのブロック暗号方式で行われる置換処理を施してオフセット値を求める。このため、tweakの更新を行い新たなオフセット値を計算するのに、ブロック暗号の一部の処理だけを必要とする。
したがって、本実施の形態において、ブロック暗号の一部を用いてオフセット関数を実現した場合、tweakの任意の更新が、ブロック暗号のアルゴリズムのみで高速にできる。
XEXモードにおいては、tweak2は、逐次的にしか更新できないため、tweak全体の任意の更新は不可能である。また、LRWモードの場合、tweakの任意の更新が可能であるが、有限体の乗算mulを実装する必要が生じるため、プログラムサイズの増大を招く。
例として、非特許文献5に記載のブロック暗号AESと、AESの段関数の4回の繰り返し(4段AES)とを用いた場合、tweak2のみの更新は、AESそのものの約2.5倍で可能となる。
(第2の実施の形態)
[1]構成の説明
次に、本発明の第2の実施の形態について図面を参照して説明する。
図8は、第2の実施の形態の調整値付きブロック暗号装置の構成を示すブロック図である。
図8において、調整値付きブロック暗号装置20は、ブロック暗号化部20Aと、入力部20Bと、生成部20Cと、を含む。生成部20Cは、処理選択部20C1と、オフセット計算部20C2と、片側オフセット暗号化部20C3と、付加的暗号化部20C4と、出力部20C5と、を含む。
調整値付きブロック暗号装置20は、例えば、CPUとメモリとディスクとを備えたコンピュータにより実現可能である。この場合、調整値付きブロック暗号装置20は、例えば、ディスクに記録されたプログラム(アプリケーション)に従って動作する。
調整値付きブロック暗号装置20内のCPUは、プログラムをディスク(記録媒体)から読み取り実行することによって、ブロック暗号化部20A、入力部20B、および、生成部20Cとして機能する。
なお、ブロック暗号化部20Aと、入力部20Bと、処理選択部20C1と、オフセット計算部20C2と、付加的暗号化部20C4と、出力部20C5のそれぞれは、第1の実施の形態のブロック暗号化部10Aと、入力部10Bと、処理選択部10C1と、オフセット計算部10C2と、付加的暗号化部10C4と、出力部10C5のそれぞれと同一構成である。
以下、第2の実施の形態について、第1の実施の形態と異なる点を中心に説明する。
生成部20Cは、一般的に生成手段と呼ぶことができる。
片側オフセット暗号化部20C3は、一般的に片側オフセット暗号化手段と呼ぶことができる。
片側オフセット暗号化部20C3は、ブロック暗号化部20Aを使用して、オフセット計算部20C2が出力したoffsetと平文とに基づき、暗号文(第1暗号文)を生成する。
片側オフセット暗号化部20C3が出力する暗号文Cは、以下の[数onesideOFE]に示した数式に従って求められる。
[数onesideOFE]
C=onesideOFE=E(K,M+offset)
ただし、Eは、ブロック暗号化部20Aによるブロック暗号、KはEの鍵であり、+は排他的論理和を表す。
[2]動作の説明
図9は、第2の実施の形態の動作を説明するためのフローチャートである。図10は、処理指示変数が「0」を示す場合の処理を説明するための説明図である。図11は、処理指示変数が「1」を示す場合の処理を説明するための説明図である。
以下、図9〜11を参照して、第2の実施の形態の全体の動作について詳細に説明する。
まず、入力部20Bが、平文とtweakと処理指示変数を受け付ける(ステップBE1)。入力部20Bは、その平文とtweakと処理指示変数を、処理選択部20C1に提供する。
処理選択部20C1は、平文とtweakと処理指示変数を受け付けると、処理指示変数の値によって、通常の暗号化を行うか、付加的暗号化を行うかを判断する(ステップBE2)。
処理指示変数が「0」を示す場合、処理選択部20C1は、通常の暗号化を行うと判断し、平文とtweakを、オフセット計算部20C2に提供する。一方、処理指示変数が「1」を示す場合、処理選択部20C1は、付加的暗号化を行うと判断し、平文とtweakのうち平文のみを、付加的暗号化部20C4に提供する。
オフセット計算部20C2は、平文とtweakを受け付けると、ブロック暗号化部20Aを用いて、[数offset]に示した数式にしたがってoffsetを求める(ステップBE3)。オフセット計算部20C2は、そのoffsetと平文を、片側オフセット暗号化部20C3に提供する。
片側オフセット暗号化部20C3は、offsetと平文を受け付けると、ブロック暗号化部20Aを用いて、そのoffsetと平文に基づき[数onesideOFE]に示した数式にしたがって、暗号文を求める(ステップBE4)。片側オフセット暗号化部20C3は、その暗号文を、出力部20C5に提供する。
一方、付加的暗号化部20C4は、平文を受け付けると、ブロック暗号化部20Aを用いて、その平文を暗号化し、暗号文を求める(ステップBE5)。付加的暗号化部20C4は、その暗号文を、出力部20C5に提供する。
最後に、出力部20C5は、暗号文を受け付けると、その暗号文を出力する(ステップBE6)。
本実施の形態では、第1の実施の形態と同様の効果を奏する。
さらに、本実施の形態では、生成部20Cは、オフセット値と平文との和をとり、ブロック暗号化部20Aを用いて、その和を暗号化して第1暗号文を生成する。このため、XEXモードでの暗号化を行うことができる。
(第3の実施の形態)
[1]構成の説明
次に、本発明の第3の実施の形態について図面を参照して説明する。
図12は、第3の実施の形態の調整値付きブロック暗号装置の構成を示すブロック図である。
図12において、調整値付きブロック暗号装置30は、ブロック暗号化部30Aと、入力部30Bと、生成部30Cと、を含む。生成部30Cは、処理選択部30C1と、オフセット計算部30C2と、タグ依存オフセット暗号化部30C3と、付加的暗号化部30C4と、出力部30C5と、を含む。
調整値付きブロック暗号装置30は、例えば、CPUとメモリとディスクとを備えたコンピュータにより実現可能である。この場合、調整値付きブロック暗号装置30は、例えば、ディスクに記録されたプログラム(アプリケーション)に従って動作する。
調整値付きブロック暗号装置30内のCPUは、プログラムをディスク(記録媒体)から読み取り実行することによって、ブロック暗号化部30A、入力部30B、および、生成部30Cとして機能する。
なお、ブロック暗号化部30Aと、付加的暗号化部30C4と、出力部30C5のそれぞれは、第1の実施の形態のブロック暗号化部10Aと、付加的暗号化部10C4と、出力部10C5のそれぞれと同一構成である。
以下、第3の実施の形態について、第1の実施の形態と異なる点を中心に説明する。
入力部30Bは、一般的に入力手段と呼ぶことができる。
入力部30Bは、暗号化の対象となるnビットの平文と、tweakと、処理指示変数と、タグtagを受け付ける。タグtagは、一般的に処理情報と呼ぶことができる。タグtagは、2値(「0」と「1」)のいずれかを示す。なお、本実施形態では、タグtagが示す「0」は第1オフセット処理を意味し、タグtagが示す「1」は第2オフセット処理を意味する。
入力部30Bは、例えば、キーボードなどの文字入力装置により実現される。入力部30Bは、平文とtweakと処理指示変数とタグtagを受け付けると、その平文とtweakと処理指示変数とタグtagを、処理選択部30C1に提供する。
処理選択部30C1は、一般的に処理選択手段と呼ぶことができる。
処理選択部30C1は、入力部30Bからの処理指示変数に応じて、処理を切り替える。具体的には、処理選択部30C1は、処理指示変数が「0」を示すとき、平文とtweakとタグtagとを、オフセット計算部30C2に出力し、処理指示変数が「1」を示すとき、平文とtweakとタグtagのうち平文のみを、付加的暗号化部30C4に出力する。
オフセット計算部30C2は、一般的にオフセット計算手段と呼ぶことができる。
オフセット計算部30C2は、処理指示変数が「0」を示すときに処理選択部30C1が出力した平文とtweakとタグtagとを入力とし、 tweakに依存したoffsetを計算し、offsetと平文とタグtagとを併せて、タグ依存オフセット暗号化部30C3に出力する。
タグ依存オフセット暗号化部30C3は、一般的にタグ依存オフセット暗号化手段と呼ぶことができる。
タグ依存オフセット暗号化部30C3は、入力された平文とタグtagとoffsetを元に、暗号化を行う。具体的には、タグ依存オフセット暗号化部30C3は、ブロック暗号化部30Aを用いて、以下の[数taggedOFE]に示された数式に従って、暗号文Cを生成する。
[数taggedOFE]
C=E(K,M+offset)+sel(tag,offset)
ただしsel(tag,offset)は、タグtagが「0」を示すとき、nビットの全ゼロ値であり、タグtagが「1」を示すときにoffsetとなる。
[2]動作の説明
図13は、第3の実施の形態の動作を説明するためのフローチャートである。以下、図13を参照して、第3の実施の形態の全体の動作について詳細に説明する。
まず、入力部30Bが、平文とtweakとタグと処理指示変数を受け付ける(ステップCE1)。入力部30Bは、その平文とtweakとタグと処理指示変数を、処理選択部30C1に提供する。
処理選択部30C1は、平文とtweakとタグと処理指示変数を受け付けると、処理指示変数の値によって、通常の暗号化を行うか、付加的暗号化を行うかを判断する(ステップCE2)。
処理指示変数が「0」を示す場合、処理選択部30C1は、通常の暗号化を行うと判断し、平文とtweakとタグを、オフセット計算部30C2に提供する。一方、処理指示変数が「1」を示す場合、処理選択部30C1は、付加的暗号化を行うと判断し、平文とtweakとタグのうち平文のみを、付加的暗号化部30C4に提供する。
オフセット計算部30C2は、平文とtweakとタグを受け付けると、ブロック暗号化部30Aを用いて、[数offset]に示した数式に従ってoffsetを求める(ステップCE3)。オフセット計算部30C2は、そのoffsetと平文とタグを、タグ依存オフセット暗号化部30C3に提供する。
タグ依存オフセット暗号化部30C3は、offsetと平文とタグを受け付けると、ブロック暗号化部30Aを用いて、そのoffsetと平文とタグとに基づき[数taggedOFE]に示した数式にしたがって、暗号文を求める(ステップCE4)。タグ依存オフセット暗号化部30C3は、その暗号文を、出力部30C5に提供する。
一方、付加的暗号化部30C4は、平文を受け付けると、ブロック暗号化部20Aを用いて、その平文を暗号化し、暗号文を求める(ステップCE5)。付加的暗号化部30C4は、その暗号文を、出力部30C5に提供する。
最後に、出力部30C5は、暗号文を受け付けると、その暗号文を出力する(ステップCE6)。
本実施の形態では、第1の実施の形態と同様の効果を奏する。
さらに、本実施の形態では、生成部30Cは、タグが「0」を示す場合には、平文の暗号文として、第1暗号文を出力し、タグが「1」を示す場合には、平文の暗号文として、第3暗号文を出力する。このため、XEX*モードでの暗号化を行うことが可能となる。
上記各実施の形態は、無線もしくは有線のデータ通信における認証と暗号化といった用途や、ストレージ上のデータの暗号化と改ざん防止といった用途に適用できる。
ここで、上記各実施の形態に共通する特徴等をまとめておく。
調整値付きブロック暗号は、nビットブロック暗号の暗号文を生成する前と後で加算(排他的論理和)するオフセット値をtweak(調整値)に依存して生成する。そして、オフセットの生成において必要な乱数を効率よく生成するため、tweakをnビットのtweak1とtweak2に分割し、tweak1をnビットブロック暗号で暗号化した結果を用いる。
ここで、tweak1がとりうる値を、nビット空間のある部分集合Nに制限することで、N以外の平文については、オフセットを加算せず、そのままブロック暗号で暗号化した結果を暗号文として用いることができる。
オフセット加算を省略できることにより、通常のオフセット加算を用いる処理よりも高速な処理が可能となる。
このような付加的暗号化機能は、入力できる平文に制約があることから、通常の意味での暗号化よりも、擬似乱数生成などの役割に適している。
このように、オフセット加算なしの暗号化は、LRWモードでも実現可能であるが、LRWモードは、この目的のために、オフセットの生成において必要な乱数を、ブロック暗号の鍵とは独立に生成する必要があった。
安全性のため、オフセットを生成するための処理にはいくつかの条件があるが、これらの条件は、既存の調整値付きブロック暗号である、XEXモードが用いる方法と同じものが使用可能である。
それ以外にも、ブロック暗号の処理の一部分から導出されるブロック単位の置換と、ブロック暗号そのものとを組み合わせてオフセットを計算する方法も可能である。
前者の処理としては、ブロック暗号の短縮段、つまり段関数の何回かの繰り返しによる置換を用いるのが典型的である。
この置換処理とブロック暗号そのものとを組み合わせて、tweak(特にtweak2)の任意の更新を可能とする高速な調整値付きブロック暗号装置を構成できる。
具体的に、ブロック暗号の一部分から導出される置換処理を用いる場合は、tweak1を入力としたブロック暗号の出力とtweak2との和をとり、これを前述の置換処理に入力することで、オフセットを求める。
XEXモードでは、tweak2は、逐次的にしか更新できず、任意の値への更新は不可能であるのに対して、上記各実施の形態では、ブロック暗号の一部分を用いて、効率よくtweak2の任意の更新が可能である。
この方式は、ブロック暗号自体が安全であり、ブロック暗号の一部分から導出される置換処理の差分確率が小さい場合には、選択平文・暗号文攻撃に理論的に安全な調整値付きブロック暗号となる。
一方、ブロック暗号の出力側へのオフセットの加算を省略した場合は、選択平文攻撃に安全な調整値付きブロック暗号となる。
以上、各実施形態を参照して本願発明を説明したが、本願発明は上記各実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2008年4月15日に出願された日本出願特願2008−105706を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (9)

  1. ブロック暗号方式で暗号化を行う暗号化部と、
    第1暗号処理と第2暗号処理のいずれかを示す指示情報と、平文と、調整値と、を受け付ける入力部と、
    前記指示情報が前記第1暗号処理を示す場合には、前記調整値を第1調整値と第2調整値に分割し、前記暗号化部を用いて当該第1調整値を暗号化してオフセット用暗号を生成し、当該オフセット用暗号と当該第2調整値とに基づいてオフセット値を求め、当該オフセット値と前記平文との和をとり、前記暗号化部を用いて当該和を暗号化して第1暗号文を生成し、前記指示情報が前記第2暗号処理を示す場合には、前記暗号化部を用いて前記平文を暗号化して第2暗号文を生成する生成部と、を含み、
    前記生成部は、前記第1調整値の最下位ビットを0に固定し、前記第2暗号処理で使われる平文の最下位ビットを1に固定することによって、前記第1調整値を、前記第2暗号処理で使われる平文と異なるものとする、調整値付きブロック暗号装置。
  2. 前記生成部は、前記第1暗号文と前記オフセット値との和をとって、第3暗号文を生成する、請求の範囲第1項に記載の調整値付きブロック暗号装置。
  3. 前記入力部は、さらに、第1オフセット処理と第2オフセット処理のいずれかを示す処理情報を受け付け、
    前記生成部は、前記処理情報が前記第1オフセット処理を示す場合には、前記平文の暗号文として、前記第1暗号文を出力し、前記処理情報が前記第2オフセット処理を示す場合には、前記平文の暗号文として、前記第3暗号文を出力する、請求の範囲第3項に記載の調整値付きブロック暗号装置。
  4. 前記生成部は、前記オフセット用暗号と、有限体上にある基数について前記第2調整値を指数とした演算要素と、の乗算を行い、当該乗算の結果を、前記オフセット値とする、請求の範囲第1項、第3項または第4項に記載の調整値付きブロック暗号装置。
  5. 前記生成部は、前記オフセット用暗号と前記第2調整値との和をとり、当該和に対して、前記ブロック暗号方式で行われる置換処理を施して前記オフセット値を求める、請求の範囲第1項、第3項または第4項に記載の調整値付きブロック暗号装置。
  6. 前記平文および前記第2調整値の長さは、128ビットであり、
    前記暗号化部は、前記ブロック暗号方式として、ブロックの長さを128ビットとするAESを用い、
    前記生成部は、前記オフセット用暗号と前記第2調整値との和に対して、前記AESに規定された128ビット置換処理を施して前記オフセット値を求める、請求の範囲第6項に記載の調整値付きブロック暗号装置。
  7. 前記暗号化部は、前記ブロック暗号方式に応じたブロック暗号アルゴリズムを格納し、当該ブロック暗号アルゴリズムに基づいて暗号化を行う、請求の範囲第1項、第3項、第4項、第5項、第6項または第7項に記載の調整値付きブロック暗号装置。
  8. ブロック暗号方式で暗号化を行う暗号化部を含む調整値付きブロック暗号装置が行う暗号生成方法であって、
    第1暗号処理と第2暗号処理のいずれかを示す指示情報と、平文と、調整値と、を受け付け、
    前記指示情報が前記第1暗号処理を示す場合には、前記調整値を第1調整値と第2調整値に分割し、前記暗号化部を用いて当該第1調整値を暗号化してオフセット用暗号を生成し、当該オフセット用暗号と当該第2調整値とに基づいてオフセット値を求め、当該オフセット値と前記平文との和をとり、前記暗号化部を用いて当該和を暗号化して第1暗号文を生成し、前記指示情報が前記第2暗号処理を示す場合には、前記暗号化部を用いて前記平文を暗号化して第2暗号文を生成し、
    前記第1暗号文を生成することは、前記第1調整値の最下位ビットを0に固定し、前記第2暗号処理で使われる平文の最下位ビットを1に固定することによって、前記第1調整値を、前記第2暗号処理で使われる平文と異なるものとすることを含む、暗号生成方法。
  9. コンピュータを、
    ブロック暗号方式で暗号化を行う暗号化部、
    第1暗号処理と第2暗号処理のいずれかを示す指示情報と、平文と、調整値と、を受け付ける入力部、および、
    前記指示情報が前記第1暗号処理を示す場合には、前記調整値を第1調整値と第2調整値に分割し、前記暗号化部を用いて当該第1調整値を暗号化してオフセット用暗号を生成し、当該オフセット用暗号と当該第2調整値とに基づいてオフセット値を求め、当該オフセット値と前記平文との和をとり、前記暗号化部を用いて当該和を暗号化して第1暗号文を生成し、前記指示情報が前記第2暗号処理を示す場合には、前記暗号化部を用いて前記平文を暗号化して第2暗号文を生成する生成部、として機能させるためのプログラムを記録し、
    前記生成部は、前記第1調整値の最下位ビットを0に固定し、前記第2暗号処理で使われる平文の最下位ビットを1に固定することによって、前記第1調整値を、前記第2暗号処理で使われる平文と異なるものとする、コンピュータ読み取り可能な記録媒体。
JP2010508179A 2008-04-15 2009-04-08 調整値付きブロック暗号装置、暗号生成方法および記録媒体 Active JP5273141B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010508179A JP5273141B2 (ja) 2008-04-15 2009-04-08 調整値付きブロック暗号装置、暗号生成方法および記録媒体

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008105706 2008-04-15
JP2008105706 2008-04-15
JP2010508179A JP5273141B2 (ja) 2008-04-15 2009-04-08 調整値付きブロック暗号装置、暗号生成方法および記録媒体
PCT/JP2009/057164 WO2009128370A1 (ja) 2008-04-15 2009-04-08 調整値付きブロック暗号装置、暗号生成方法および記録媒体

Publications (2)

Publication Number Publication Date
JPWO2009128370A1 JPWO2009128370A1 (ja) 2011-08-04
JP5273141B2 true JP5273141B2 (ja) 2013-08-28

Family

ID=41199067

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010508179A Active JP5273141B2 (ja) 2008-04-15 2009-04-08 調整値付きブロック暗号装置、暗号生成方法および記録媒体

Country Status (3)

Country Link
US (1) US8526602B2 (ja)
JP (1) JP5273141B2 (ja)
WO (1) WO2009128370A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5704159B2 (ja) * 2010-02-24 2015-04-22 日本電気株式会社 ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム
US9185080B2 (en) * 2011-08-12 2015-11-10 Intel Deutschland Gmbh Data transmitting devices, data receiving devices, methods for controlling a data transmitting device, and methods for controlling a data receiving device
WO2013161841A1 (ja) 2012-04-24 2013-10-31 日本電気株式会社 フォーマット保存暗号化装置、方法およびプログラム、復号化装置、方法およびプログラム
US9515830B2 (en) * 2012-07-18 2016-12-06 Nec Corporation Universal hash function computing device, method and program
KR102447476B1 (ko) 2015-08-20 2022-09-27 삼성전자주식회사 암복호 장치, 그것을 포함하는 저장 장치 및 그것의 암복호 방법
RU2631981C2 (ru) * 2016-02-12 2017-09-29 Федеральное государственное бюджетное учреждение науки Институт конструкторско-технологической информатики Российской академии наук (ИКТИ РАН) Способ блочной шифрации с закрытым ключом
US11349668B2 (en) 2017-02-21 2022-05-31 Mitsubishi Electric Corporation Encryption device and decryption device
WO2021152707A1 (ja) * 2020-01-28 2021-08-05 日本電信電話株式会社 暗号システム、暗号化方法、復号方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004126323A (ja) * 2002-10-04 2004-04-22 Sony Corp ブロック暗号方法、ブロック暗号回路、暗号装置、ブロック復号方法、ブロック復号回路および復号装置
WO2008018303A1 (fr) * 2006-08-10 2008-02-14 Nec Corporation Dispositif de chiffrage de bloc équipé d'une fonction d'ajustement, procédé et programme

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2719660B2 (ja) 1993-03-24 1998-02-25 日本電信電話株式会社 マルチメディア通信用暗号装置
US5724428A (en) * 1995-11-01 1998-03-03 Rsa Data Security, Inc. Block encryption algorithm with data-dependent rotations
US6909785B1 (en) * 1999-11-11 2005-06-21 Qualcomm, Inc. Method and apparatus for efficient irregular synchronization of a stream cipher
JP2001177518A (ja) 1999-12-17 2001-06-29 Nec Corp 暗号化方法、復号化方法及び装置
JP4117095B2 (ja) 2000-04-03 2008-07-09 Necネットワーク・センサ株式会社 暗号方式
CN1142653C (zh) * 2000-04-28 2004-03-17 杨宏伟 动态口令认证***及方法
US7046802B2 (en) * 2000-10-12 2006-05-16 Rogaway Phillip W Method and apparatus for facilitating efficient authenticated encryption
US7007050B2 (en) * 2001-05-17 2006-02-28 Nokia Corporation Method and apparatus for improved pseudo-random number generation
BR0313013A (pt) * 2002-07-27 2005-08-09 Xstream Security Solutions Ltd Aparelho e método para criptografia e descriptografia
AU2003270296A1 (en) * 2002-09-03 2004-03-29 The Regents Of The University Of California Block cipher mode of operation for constructing a wide-blocksize block cipher from a conventional block cipher
KR100560658B1 (ko) * 2003-02-17 2006-03-16 삼성전자주식회사 고속의 오프셋 코드북 모드를 위한 암호화 장치 및 그 방법
JP4986206B2 (ja) * 2006-02-22 2012-07-25 株式会社日立製作所 暗号処理方法及び暗号処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004126323A (ja) * 2002-10-04 2004-04-22 Sony Corp ブロック暗号方法、ブロック暗号回路、暗号装置、ブロック復号方法、ブロック復号回路および復号装置
WO2008018303A1 (fr) * 2006-08-10 2008-02-14 Nec Corporation Dispositif de chiffrage de bloc équipé d'une fonction d'ajustement, procédé et programme

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6013016986; Chitu, C. and Glesner, M.: 'An FPGA implementation of the AES-Rijndael in OCB/ECB modes of operation' Microelectronics Journal Vol.36 No.2, 200502, p.139-146 *
JPN6013016988; Rogaway, P.: 'Efficient Instatiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC' Lecture Notes in Computer Science Vol.3329, 200412, p.16-31 *

Also Published As

Publication number Publication date
US8526602B2 (en) 2013-09-03
JPWO2009128370A1 (ja) 2011-08-04
US20100329449A1 (en) 2010-12-30
WO2009128370A1 (ja) 2009-10-22

Similar Documents

Publication Publication Date Title
JP5273141B2 (ja) 調整値付きブロック暗号装置、暗号生成方法および記録媒体
JP5402632B2 (ja) 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム
JP6519473B2 (ja) 認証暗号装置、認証暗号方法および認証暗号用プログラム
JP4786531B2 (ja) 暗号システム、暗号装置、復号装置、プログラムおよび集積回路
US8189770B2 (en) Tweakable block encryption apparatus, method, and program
JP5704159B2 (ja) ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム
US20060093136A1 (en) Implementation of a switch-box using a subfield method
JP5141558B2 (ja) 共通鍵ブロック暗号化装置、その方法、そのプログラム、及び記録媒体
Norouzi et al. Breaking a novel image encryption scheme based on an improper fractional order chaotic system
JPWO2009087972A1 (ja) データ送信装置、データ受信装置、これらの方法、コンピュータプログラム、そのデータ通信システム
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
Sengupta et al. Message mapping and reverse mapping in elliptic curve cryptosystem
JP5852518B2 (ja) 認証暗号化装置、認証復号装置、およびプログラム
JPWO2013161841A1 (ja) フォーマット保存暗号化装置、方法およびプログラム、復号化装置、方法およびプログラム
JP5333450B2 (ja) 調整値付きブロック暗号化装置、方法及びプログラム並びに復号装置、方法及びプログラム
Arshad et al. New extension of data encryption standard over 128-bit key for digital images
US8891761B2 (en) Block encryption device, decryption device, encrypting method, decrypting method and program
KR20190020988A (ko) 컴퓨터 실행 가능한 경량 화이트박스 암호화 방법 및 장치
Yap et al. Cryptanalysis of a high-definition image encryption based on AES modification
Saudagar et al. Image encryption based on advanced encryption standard (aes)
KR101971001B1 (ko) 화이트박스 암호가 적용된 블록 암호 기반의 난수 생성 방법 및 장치
JP5578422B2 (ja) 暗号化通信システム、送信装置、受信装置、暗号化/復号化方法およびそれらのプログラム
KR101932032B1 (ko) 선형 길이의 암호문을 가지는 다항식 함수 암호화 방법
TW201225024A (en) Code processing device, code processing method, and program
KR100200531B1 (ko) 암호화 방법 및 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120313

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130429

R150 Certificate of patent or registration of utility model

Ref document number: 5273141

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150