JP7136226B2 - 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム - Google Patents

認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム Download PDF

Info

Publication number
JP7136226B2
JP7136226B2 JP2020556403A JP2020556403A JP7136226B2 JP 7136226 B2 JP7136226 B2 JP 7136226B2 JP 2020556403 A JP2020556403 A JP 2020556403A JP 2020556403 A JP2020556403 A JP 2020556403A JP 7136226 B2 JP7136226 B2 JP 7136226B2
Authority
JP
Japan
Prior art keywords
bits
encryption
authentication
plaintext
predetermined number
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
JP2020556403A
Other languages
English (en)
Other versions
JPWO2020095382A1 (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
Publication of JPWO2020095382A1 publication Critical patent/JPWO2020095382A1/ja
Application granted granted Critical
Publication of JP7136226B2 publication Critical patent/JP7136226B2/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]
    • 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Lock And Its Accessories (AREA)

Description

本発明は、認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラムに関し、特に共通鍵暗号が使用される認証暗号化方式が適用された認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラムに関する。
認証暗号(Authenticated Encryption;AE) は、事前に共有された秘密鍵を用いて、平文メッセージ(以下、単に平文と呼ぶ。)に対する暗号化と、改ざんの検知に用いられる認証タグ(以下、単にタグとも呼ぶ。)の計算を同時に実行する技術である。
通信路を通過する通信内容にAEが適用されると、盗聴に対する内容の秘匿と、不正な改ざんに対する検知が共に実現される。すなわち、通信内容がより強く保護される。
以下、AEにおける基本的な入出力の例を示す。本例では、秘密鍵K を共有する2者として、Alice とBob を考える。また、AEの暗号化関数をAEnc、AEの復号関数をADecとする。また、暗号化対象の平文をM とする。また、初期ベクトルと呼ばれる変数N を導入する。
最初に、AEで暗号化されたメッセージをAlice がBob に通信する場合を説明する。まず、Alice が変数N を生成した後、(C,T) = AEnc_K(N,M) の計算を行う。AEnc_Kは、秘密鍵K がパラメータである関数である。また、C は暗号文である。また、T はタグと呼ばれる、固定長の改ざん検出用の変数である。Alice は、生成された(N,C,T) をBob に送信する。
Bob は、情報(N',C',T')を受信する。次いで、Bob は、復号処理としてADec_K(N',C',T')を計算する。もし、通信の途中で改ざんが行われており、(N',C',T') ≠ (N,C,T) である場合、ADec_K(N',C',T')は、改ざんが行われたことを示すエラーメッセージになる。
もし、通信の途中で改ざんが行われておらず、(N',C',T') = (N,C,T)である場合、ADec_K(N',C',T') = Mとなる。すなわち、暗号化された平文M が、正しく復号される。上記の認証暗号化方式の例として、非特許文献1に記載されているCCM や、非特許文献2に記載されているGCM がある。
また、AEの中には、入出力長が特定の長さである部品が組み合わせられて実現されるAEがある。具体的には、組み合わせられる部品は、特定のビット長のデータが入力されると、入力されたデータと同じビット長のデータを出力する。
以下、上記の部品を、認証暗号におけるプリミティブと呼ぶ。また、プリミティブに関する入出力長を、n ビットとする。プリミティブの例として、ブロック暗号、鍵なしの暗号学的置換、およびTweakable ブロック暗号が挙げられる。
例えば、ブロック暗号は、k ビットの秘密鍵K とn ビットの平文M とを入力として、n ビットの暗号文C を出力する。ブロック暗号による処理は、E(K, M) = C と表される。
また、鍵なしの暗号学的置換は、n ビットの平文M を入力として、n ビットの暗号文C を出力する。鍵なしの暗号学的置換による処理は、P(M) = Cと表される。
また、Tweakable ブロック暗号は、k ビットの秘密鍵K と、twビットのTweak (調整値)Twと、n ビットの平文M とを入力として、n ビットの暗号文C を出力する。Tweakable ブロック暗号による処理は、TE(K, Tw, M) = Cと表される。
上記のTweakable ブロック暗号は、ブロック暗号E や鍵なしの暗号学的置換P でも実現される。例えば、非特許文献3に記載されている方式が用いられると、ブロック暗号E の秘密鍵K と異なる鍵L を持ち、入出力長がn ビットである鍵付き関数H も使用されて、Tweakable ブロック暗号による処理は、以下の式で表される。
LRW(K, Tw, M) = E(K, H(L, Tw) + M) + H(L, Tw) ・・・式(1)
なお、式(1)における「+」は、ビットごとのXOR (排他的論理和)を表す。以下、特に断りのない限り、本明細書中の式における「+」は、ビットごとのXOR を表す。
非特許文献3に記載されている方式に従うと、鍵付き関数H がAXU ユニバーサルハッシュ関数である場合、式(1)が表す処理は、安全なTweakable ブロック暗号を実現する。すなわち、ランダムに選ばれた秘密鍵L と、任意の異なる2つの入力X とX'に関して、確率Pr[H(L, X) + H(L, X') = c]がいかなるn ビットのc に対しても小さい場合、式(1)が表す処理は、安全なTweakable ブロック暗号を実現する。
また、非特許文献4に記載されているXEX*モードが用いられると、暗号化処理全体の鍵がブロック暗号の1つの鍵のみになる。なお、XEX*モードは、Tweakable ブロック暗号のXEX モードとXEモードの総称である。XEX*モードのTweakable ブロック暗号による処理は、Tweak Tw = (i, N) に対して、以下の式で表される。
XEX(K, Tw, M) = E(K, mult(2i, E(K, N)) + M) + mult(2i, E(K, N))
・・・式(2)
XE(K, Tw, M) = E(K, mult(2i, E(K, N)) + M) ・・・式(3)
なお、式(2)~式(3)における mult(・,・)は、ガロア体GF(2n)上の2つの元の乗算を表す。また、式(2)~式(3)における2iは、ガロア体GF(2n)上の2のi乗を表す。
また、非特許文献5に記載されているTEM モードが用いられると、鍵なしの暗号学的置換P と、秘密鍵K を持ち入出力長がn ビットである鍵付き関数H が使用されて、Tweakable ブロック暗号による処理は、以下の式で表される。
TEM(K, Tw, M) = P(H(K, Tw) + M) + H(K, Tw) ・・・式(4)
非特許文献5に記載されている方式に従うと、鍵付き関数H がAXU ユニバーサルハッシュ関数であり、かつ鍵付き関数H がuniform である場合、式(4)が表す処理は、安全なTweakable ブロック暗号を実現する。
なお、鍵付き関数H がAXU ユニバーサルハッシュ関数である場合、鍵付き関数H は、ランダムに選ばれた秘密鍵K と、任意の異なる2つの入力X とX'に関して、確率Pr[H(K, X) + H(K, X') = c]がいかなるn ビットのc に対しても小さいという条件を満たす。
また、鍵付き関数H がuniform である場合、鍵付き関数H は、ランダムに選ばれた秘密鍵K と、任意の入力X と任意の出力Y に関して、確率Pr[H(K, X) = Y] が十分に小さいという条件を満たす。
AEを実現する方法として、例えば汎用結合がある。汎用結合は、暗号化方式として安全な方式と、改ざん検知方法として安全な方式を組み合わせる方法である。汎用結合の例として、暗号化方式であるCTR モードと改ざん検知方法であるGHASH が組み合わせられたGCM が挙げられる。
また、汎用結合で生成された方式も含めて、1ブロックの平文あたりのプリミティブの使用回数が漸近的に2回である方式を、レート1/2 の方式と呼ぶ。レート1/2 の方式には、例えば上述したGCM 、CCM がある。
また、1ブロックの平文あたりのプリミティブの使用回数が漸近的に1回である方式を、レート1の方式と呼ぶ。レート1の方式には、例えば特許文献1~特許文献4に記載されている認証暗号化方式であるOCB や、特許文献5に記載されている認証暗号化方式であるOTR がある。
OCB は、XEX*モードのTweakable ブロック暗号が用いられて構成されるレート1の認証暗号化方式である。XEX*モードのTweakable ブロック暗号は、XEX モードのTweakable ブロック暗号と、XEモードのTweakable ブロック暗号とで構成される。OCB において、XEX*モードのTweakable ブロック暗号による処理は、ブロック暗号E が使用されて、以下の式で表される。
XEX(K, Tw, M) = E(K, Δ(K, Tw) + M) + Δ(K, Tw) ・・・式(5)
XE(K, Tw, M) = E(K, Δ(K, Tw) + M) ・・・式(6)
なお、式(5)~式(6)におけるマスクの値Δ(K, Tw) は、Tweak Twと秘密鍵K とから一意に定められる値である。例えば、上述したように、マスクの値は、ガロア体上の乗算が用いられて計算されてもよい。OCB では、XEX*モードのTweakable ブロック暗号がECB モードのように用いられることによって、平文が暗号化される。
次に、OCB による改ざん検知方法を説明する。最初に、OCB は、平文をn ビットごとに区切る。次いで、OCB は、区切られたn ビットの平文の排他的論理和をビットごとにとる。ビットごとに排他的論理和をとることによって得られたn ビットの値は、チェックサムと呼ばれる。
具体的には、平文M がm 個のn ビットの平文ブロックM[1],M[2],・・・,M[m] で構成される場合、チェックサムSUM は、以下のように計算される。
SUM = M[1] + M[2] + ・・・ + M[m] ・・・式(7)
次いで、OCB は、得られたチェックサムをXEモードのTweakable ブロック暗号で暗号化する。暗号化されたチェックサムがタグになる。
また、OTR は、XEモードのTweakable ブロック暗号が用いられて構成されるレート1の認証暗号化方式である。OCB と同様に、OTR も、改ざん検知方法としてチェックサムを計算し、計算されたチェックサムを暗号化することによってタグを生成する。
但し、全ての平文ブロックの排他的論理和をビットごとにとることによってチェックサムを得る代わりに、OTR は、偶数番目の平文ブロックのみの排他的論理和をビットごとにとることによってチェックサムを得る。
具体的には、平文M がm 個のn ビットの平文ブロックM[1],M[2],・・・,M[m] で構成され、m が偶数である場合、チェックサムSUM は、以下のように計算される。
SUM = M[2] + M[4] + ・・・ + M[m-2] + M[m] ・・・式(8)
また、OCB やOTR 以外のレート1の認証暗号化方式の例として、非特許文献6に記載されているTEM モードを用いたOPP がある。
米国特許第7046802号明細書 米国特許第7200227号明細書 米国特許第7949129号明細書 米国特許第8321675号明細書 米国特許出願公開第2016/0173276号明細書
NIST Special Publication 800-38C Recommendation for Block Cipher Modes of Operation: The CCM Mode for Authentication and Confidentialit NIST Special Publication 800-38D Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC M. Liskov, R. L. Rivest, D. 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. 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. Cogliati, B., Lampe, R., Seurin, Y, "Tweaking Even-Mansour ciphers. In: Gennaro, R., Robshaw, M.J.B. (eds.)," CRYPTO 2015, Part I. LNCS, vol. 9215, pp. 189-208. Springer, Heidelberg (2015). Granger, Robert and Jovanovic, Philipp Svetolik and Mennink, Bart and Neves, Samuel, "Improved Masking for Tweakable Blockciphers with Applications to Authenticated Encryption," JNCS, vol. 9665, pp. 31. 263-293, 2016.
OCB やOTR 等に代表されるn ビットのチェックサムを計算する認証暗号化方式には、ステートサイズが大きくなるという課題がある。ステートサイズは、処理単位ごとに保持することが求められるメモリサイズを意味する。ステートサイズは、暗号化方式の1つの評価基準である。
例えば、OCB の場合、1ブロック暗号化を処理単位と考える。OCB における1ブロック暗号化は、以下の式で表される。
C[i] = E(K, Δ(K, Tw) + M[i]) + Δ(K, Tw) ・・・式(9)
なお、式(9)におけるK は、ブロック暗号E の秘密鍵である。また、M[i]は、i 番目の平文ブロックである。また、C[i]は、i 番目の暗号文ブロックである。また、Twは、Tweak(調整値)である。また、マスクの値Δ(K, Tw) は、Tweak Twと秘密鍵K とから一意に定められる値である。
1ブロック暗号化が処理単位である場合、OCB のステートサイズは、3nビットになる。3nビットの内訳は、1つの平文ブロックの暗号化用のメモリ分のn ビットと、マスクの値Δ(K, Tw) を保持するメモリ分のn ビットと、計算されたチェックサムの値を保持するメモリ分のn ビットである。
なお、マスクの値とチェックサムの値が保持される理由は、(i+1) 番目の平文ブロックの処理に、i 番目の平文ブロックの処理で用いられたマスクの値とチェックサムの値が求められるためである。
ワイヤレスセンサやRFID(Radio Frequency IDentifier)タグ等、計算リソースに制約が課されているハードウェアに暗号化方式が実装される場合、許容されるステートサイズの大きさは、回路規模の大きさに比例する。よって、暗号化方式の実装、特にハードウェアへの暗号化方式の実装において、ステートサイズの大きさは、重要な評価基準である。
しかし、チェックサムを計算する認証暗号化方式のステートサイズは、暗号化処理や復号処理のみを行う暗号化方式のステートサイズよりも、チェックサムのビット数であるn ビット分増加するという性質を有する。
上述したOCB の場合、チェックサムの計算に求められるステートサイズは、ステートサイズ全体の1/3 を占める。しかし、ステートサイズが大きい方が暗号化方式の安全性がより高まるため、認証暗号化方式の実装者は、ステートサイズを安易に削減できない。
上記のように、ステートサイズと暗号の安全性との関係は、通常トレードオフの関係に該当する。すなわち、ステートサイズが安易に削られると、漸近的な安全性が低下する。なお、漸近的な安全性は、n を無限大に発散させたときに得られる安全性オーダの値に相当する。
[発明の目的]
そこで、本発明は、上述した課題を解決する、漸近的な安全性を低下させずにチェックサムの計算で増大するステートサイズを削減できる認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラムを提供することを目的とする。
本発明による認証暗号化装置は、所定のビット数のデータが入力されると所定のビット数のデータを出力する暗号化関数に、暗号化対象の平文を構成する所定のビット数の平文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって平文ブロックを暗号化する暗号化手段と、平文を構成する複数の平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出手段とを備えることを特徴とする。
本発明による認証復号装置は、所定のビット数のデータが入力されると所定のビット数のデータを出力する復号関数に、復号対象の暗号文を構成する所定のビット数の暗号文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって暗号文ブロックを復号する復号手段と、暗号文が復号された平文を構成する複数の平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出手段とを備えることを特徴とする。
本発明による認証暗号化方法は、認証暗号化装置で実行される認証暗号化方法であって、認証暗号化装置が、所定のビット数のデータが入力されると所定のビット数のデータを出力する暗号化関数に、暗号化対象の平文を構成する所定のビット数の平文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって平文ブロックを暗号化し、平文を構成する複数の平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出することを特徴とする。
本発明による認証復号方法は、認証復号装置で実行される認証復号方法であって、認証復号装置が、所定のビット数のデータが入力されると所定のビット数のデータを出力する復号関数に、復号対象の暗号文を構成する所定のビット数の暗号文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって暗号文ブロックを復号し、暗号文が復号された平文を構成する複数の平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出することを特徴とする。
本発明による認証暗号化プログラムは、コンピュータが備えるプロセッサに、所定のビット数のデータが入力されると所定のビット数のデータを出力する暗号化関数に、暗号化対象の平文を構成する所定のビット数の平文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって平文ブロックを暗号化する暗号化処理、および平文を構成する複数の平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出処理を実行させることを特徴とする。
本発明による認証復号プログラムは、コンピュータが備えるプロセッサに、所定のビット数のデータが入力されると所定のビット数のデータを出力する復号関数に、復号対象の暗号文を構成する所定のビット数の暗号文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって暗号文ブロックを復号する復号処理、および暗号文が復号された平文を構成する複数の平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出処理を実行させることを特徴とする。
本発明によれば、漸近的な安全性を低下させずにチェックサムの計算で増大するステートサイズを削減できる。
本発明による認証暗号化装置の第1の実施形態の構成例を示すブロック図である。 第1の実施形態の認証暗号化装置100による認証暗号化処理の動作を示すフローチャートである。 本発明による認証復号装置の第2の実施形態の構成例を示すブロック図である。 第2の実施形態の認証復号装置200による認証復号処理の動作を示すフローチャートである。 認証暗号化装置100による認証暗号化処理の具体例を示す説明図である。 認証暗号化装置100による認証暗号化処理の他の具体例を示す説明図である。 本発明による認証暗号化装置のハードウェア構成例を示す説明図である。 本発明による認証復号装置のハードウェア構成例を示す説明図である。 本発明による認証暗号化装置の概要を示すブロック図である。 本発明による認証復号装置の概要を示すブロック図である。
実施形態1.
[構成の説明]
以下、本発明の実施形態を、図面を参照して説明する。図1は、本発明による認証暗号化装置の第1の実施形態の構成例を示すブロック図である。
上述したように、認証暗号化方式がTweakable ブロック暗号で使用されるプリミティブに関するビット長と同じビット長のチェックサムを計算する場合、ステートサイズが増大するという課題がある。
使用されるプリミティブに関するビット長をn としたとき、本実施形態の認証暗号化装置100は、上記の課題を解決するために、s<n であるs ビットのチェックサムを計算する。
ステートサイズと暗号の安全性との関係は、通常トレードオフの関係に該当する。すなわち、ステートサイズが削られると、暗号の安全性が低下する。しかし、本実施形態において、n/2<=s<nであるとき、漸近的な安全性は、s=n のときの漸近的な安全性から変化しない。以下、上記の理由と共に、本実施形態の認証暗号化装置100の具体的な構成および動作を説明する。
図1に示すように、本実施形態の認証暗号化装置100は、平文入力手段110と、初期ベクトル生成手段120と、第1暗号化手段130と、第1計算手段140と、第2暗号化手段150と、暗号文出力手段160とを備える。本実施形態の認証暗号化装置100は、タグを生成するためにチェックサムを計算する。
以下、認証暗号化装置100を構成する各手段を説明する。平文入力手段110は、暗号化対象の平文M が入力される機能を有する。
初期ベクトル生成手段120は、過去に自身が生成した値と異なる初期ベクトルを生成する機能を有する。例えば、初期ベクトル生成手段120は、最初に任意の固定値を出力し、出力した値を記憶する。2回目以降に初期ベクトルを出力する場合、初期ベクトル生成手段120は、記憶されている直前に生成された初期ベクトルの値に1が加えられた値を出力してもよい。
上記の場合、直前に生成された初期ベクトルがN であるとき、新たな初期ベクトルN'は、N' = N+1になる。すなわち、初期ベクトル生成手段120による初期ベクトルN の更新処理は、更新関数f(N) = N+1で表現される。
また、初期ベクトルN のデータ長は、n ビットとする。仮に初期ベクトルN がn ビットより短い場合、初期ベクトル生成手段120は、初期ベクトルN に適当にパディングする。
第1暗号化手段130は、初期ベクトル生成手段120が出力する初期ベクトルN を用いて、平文入力手段110が出力する平文M を、Tweakable ブロック暗号で暗号化する機能を有する。
具体的には、第1暗号化手段130は、n ビットのデータを入出力するプリミティブの入力、または入力と出力に、Tweak と秘密鍵とから一意に定められるマスク値を加算する。第1暗号化手段130は、暗号化された結果を暗号文C として出力する。
第1暗号化手段130は、通常のn ビットのデータを入出力するブロック暗号E や、鍵なしの暗号学的置換P を用いてもTweakable ブロック暗号を実現できる。例えば、平文M がm 個のn ビットの平文ブロックM[1],M[2],・・・,M[m] で構成され、第1暗号化手段130がXEX モードのTweakable ブロック暗号で平文M を暗号化する場合、平文ブロックM[i](1<=i<=m) は、秘密鍵K が用いられるブロック暗号E で以下のように暗号化される。
C[i] = E(K, mult(2i, E(K, N)) + M[i]) + mult(2i, E(K, N)) ・・・式(10)
なお、式(10)における「+」は、ビットごとの排他的論理和を表す。また、式(10)におけるmult(・,・)は、ガロア体GF(2n)上の2つの元の乗算を表す。また、式(10)における2iは、ガロア体GF(2n)上の2のi乗を表す。
また、第1暗号化手段130は、非特許文献3に記載されているLRW や、非特許文献5に記載されているTEM モードを用いても、Tweakable ブロック暗号を実現できる。
第1計算手段140は、平文入力手段110が出力する平文M の部分系列を基に、簡易な計算でs<n であるs ビットのチェックサムSUM を求める機能を有する。
例えば、第1計算手段140は、全平文ブロックの上位s ビットの対応するビット(m 個の平文ブロックの同一位置のビット)ごとの排他的論理和(XOR) を、チェックサムSUM として出力してもよい。もし最終の平文ブロックがs ビットに満たない場合、第1計算手段140は、適当なパディングを最終の平文ブロックに施した上で、ビットごとに排他的論理和をとればよい。
また、第1計算手段140は、排他的論理和の代わりに算術加算や巡回符号(CRC:Cyclic Redundancy Check) 等を使用してチェックサムSUM を計算してもよい。
第2暗号化手段150は、第1計算手段140が出力するs ビットのチェックサムSUM を、適当なパディング関数を用いてn ビットの値に変換する。パディング関数は、例えばn ビットに満たないチェックサムSUM の部分を、100 ・・・0 で埋めればよい。
次いで、第2暗号化手段150は、変換された後のチェックサムSUM を、初期ベクトル生成手段120が出力する初期ベクトルN を用いて、Tweakable ブロック暗号で暗号化する。具体的には、第2暗号化手段150は、n ビットのデータを入出力するプリミティブの入力、または入力と出力に、Tweak と秘密鍵とから一意に定められるマスク値を加算する。
次いで、第2暗号化手段150は、暗号化されたチェックサムSUM を適当な短縮関数を用いてt ビット(t<=n)の値に変換する。変換されたt ビットの値が、生成されたタグT である。短縮関数は、例えば入力に対して上位t ビットの値のみを出力する関数である。
第2暗号化手段150は、非特許文献3に記載されているLRW 、非特許文献4に記載されているXEX*モード、または非特許文献5に記載されているTEM モード等の第1暗号化手段130が使用しているTweakable ブロック暗号の構成方法と同様の構成方法を用いてよい。しかし、第2暗号化手段150には、第1暗号化手段130で用いられたTweak と異なるTweak をTweakable ブロック暗号で用いることが求められる。
例えば、第1暗号化手段130が(N, 1),(N, 2),・・・,(N, m) の各Tweak を用いた場合、第2暗号化手段150は、(N, m+1)のTweak を用いて、Tweakable ブロック暗号での暗号化を実行すればよい。例えば、上記のタグT の算出例は、以下のように表される。
SUM_n = SUM || 10(n-s-1) ・・・式(11)
Tag_n = E(K, mult(2(m+1), E(K, N)) + SUM_n) ・・・式(12)
T = msb_t(Tag_n) ・・・式(13)
なお、式(11)で使用されている表記「A || B」は、文字列A と文字列B の結合を表す。また、式(11)における0(n-s-1)は、0 が(n-s-1) 個並べられたビット列を表す。なお、100=1 である。また、式(13)におけるmsb_t(・) は、入力に対して上位t ビットの値を出力する関数である。
暗号文出力手段160は、第1暗号化手段130が出力する暗号文C と、第2暗号化手段150が出力するタグT とを連結して出力する機能を有する。
[動作の説明]
以下、本実施形態の認証暗号化装置100の認証暗号化を実行する動作を図2を参照して説明する。図2は、第1の実施形態の認証暗号化装置100による認証暗号化処理の動作を示すフローチャートである。
最初に、平文入力手段110に、暗号化対象の平文M が入力される(ステップS101)。平文入力手段110は、入力された平文M を第1暗号化手段130と第2暗号化手段150に入力する。
次いで、初期ベクトル生成手段120は、過去に生成した値と異なる値の初期ベクトルN を生成する(ステップS102)。初期ベクトル生成手段120は、生成された初期ベクトルN を第1暗号化手段130と第2暗号化手段150に入力する。
次いで、第1暗号化手段130は、初期ベクトル生成手段120から入力された初期ベクトルN を用いて、平文入力手段110から入力された平文M を、Tweakable ブロック暗号で暗号化する(ステップS103)。第1暗号化手段130は、暗号化で得られた暗号文C を暗号文出力手段160に入力する。
次いで、第1計算手段140は、平文入力手段110から入力された平文M の部分系列を基に、簡易な計算でs<n であるs ビットのチェックサムSUM を求める(ステップS104)。第1計算手段140は、求められたチェックサムSUM を第2暗号化手段150に入力する。
次いで、第2暗号化手段150は、第1計算手段140から入力されたs ビットのチェックサムSUM を、適当なパディング関数を用いてn ビットの値に変換する。次いで、第2暗号化手段150は、初期ベクトル生成手段120から入力された初期ベクトルN を用いて、変換された後のチェックサムSUM を、Tweakable ブロック暗号で暗号化する。
次いで、第2暗号化手段150は、暗号化されたチェックサムSUM を、適当な短縮関数を用いてt<=nであるt ビットの値に変換することによって、タグT を生成する(ステップS105)。第2暗号化手段150は、生成されたタグT を暗号文出力手段160に入力する。
次いで、暗号文出力手段160は、第1暗号化手段130から入力された暗号文C と、第2暗号化手段150から入力されたタグT とを連結した上で出力する(ステップS106)。出力した後、認証暗号化装置100は、認証暗号化処理を終了する。
[効果の説明]
本実施形態の認証暗号化装置100は、認証暗号での暗号化処理におけるチェックサム計算のために求められるメモリサイズを、漸近的な安全性を低下させずにn ビットからs ビットに削減できる。よって、認証暗号化装置100は、安全性を保ったまま、ステートサイズを(n-s) ビット削減できる。
通常、ステートサイズと暗号の安全性との関係は、トレードオフの関係に該当する。すなわち、ステートサイズが削られると、暗号の安全性が低下する。しかし、本実施形態の認証暗号化装置100が実行する認証暗号化処理において、n/2<=s<nのときの漸近的な安全性は、s=n のときの漸近的な安全性と同様である。
その理由は、s=n のときの漸近的な安全性では、第1暗号化手段130および第2暗号化手段150で用いられるTweakable ブロック暗号の構成による安全性のオーダと、タグ長による安全性のオーダが支配的である。
すなわち、チェックサム計算に関するビット長から導かれる安全性のオーダは、認証暗号全体の安全性に漸近的には寄与しない。従って、チェックサムのビット長s がn/2<=s<nのとき、漸近的な安全性のオーダは変化しない。
但し、s<n/2 であり、かつタグ長t がt>=n/2である場合、チェックサム計算に関するビット長から導かれる安全性のオーダは、認証暗号全体の安全性に対して支配的になるため、漸近的な安全性は保たれない。タグ長t がt<n/2 である場合、チェックサムのビット長s がs>=tとされれば、漸近的な安全性は損なわれない。
実施形態2.
[構成の説明]
次に、本発明による認証復号装置の第2の実施形態を、図面を参照して説明する。図3は、本発明による認証復号装置の第2の実施形態の構成例を示すブロック図である。
図3に示すように、本実施形態の認証復号装置200は、暗号文入力手段210と、初期ベクトル入力手段220と、復号手段230と、第2計算手段240と、第3暗号化手段250と、タグ検査手段260と、平文出力手段270とを備える。
以下、認証復号装置200を構成する各手段を説明する。暗号文入力手段210は、連結された復号対象の暗号文C とタグT とが入力される機能を有する。また、初期ベクトル入力手段220は、復号に使用される対象の初期ベクトルN が入力される機能を有する。
復号手段230は、初期ベクトル入力手段220が出力する初期ベクトルN を用いて、暗号文入力手段210が出力する暗号文C を、Tweakable ブロック暗号で復号する機能を有する。
具体的には、復号手段230は、n ビットのデータを入出力するプリミティブの入力、または入力と出力に、Tweak と秘密鍵とから一意に定められるマスク値を加算する。復号手段230は、復号された結果を平文M として出力する。
復号手段230は、第1の実施形態の第1暗号化手段130の逆関数として作用する。例えば、暗号文C がm 個のn ビットの暗号文ブロックC[1],C[2],・・・,C[m] で構成され、第1暗号化手段130がXEX モードのTweakable ブロック暗号で平文M を暗号化している場合、C[i](1<=i<=m) は、秘密鍵K が用いられたブロック暗号E と、ブロック暗号E に対する復号関数D とで以下のように復号される。
M[i] = D(K, mult(2i, E(K, N)) + C[i]) + mult(2i, E(K, N)) ・・・式(14)
なお、式(14)における「+」は、ビットごとの排他的論理和を表す。また、式(14)におけるmult(・,・)は、ガロア体GF(2n)上の2つの元の乗算を表す。また、式(14)における2iは、ガロア体GF(2n)上の2のi乗を表す。
第2計算手段240は、復号手段230が出力する平文M の部分系列を基に、簡易な計算でs<n であるs ビットのチェックサムSUM を求める機能を有する。第2計算手段240が有する機能は、第1の実施形態の第1計算手段140が有する機能と同様である。
第3暗号化手段250は、第2計算手段240が出力するs ビットのチェックサムSUM を、適当なパディング関数を用いてn ビットの値に変換する。
次いで、第3暗号化手段250は、変換された後のチェックサムSUM を、初期ベクトル入力手段220が出力する初期ベクトルN を用いて、Tweakable ブロック暗号で暗号化する。具体的には、第3暗号化手段250は、n ビットのデータを入出力するプリミティブの入力、または入力と出力に、Tweak と秘密鍵とから一意に定められるマスク値を加算する。
次いで、第3暗号化手段250は、暗号化されたチェックサムSUM を適当な短縮関数を用いてt ビット(t<=n)の値に変換する。変換されたt ビットの値が、生成されたタグT’である。すなわち、第3暗号化手段250が有する機能は、第1の実施形態の第2暗号化手段150が有する機能と同様である。
タグ検査手段260は、暗号文入力手段210が出力するタグT と、第3暗号化手段250が出力するタグT’とを比較する機能を有する。比較されたタグT とタグT’が一致した場合、タグ検査手段260は、「ACK 」を示す検証結果B を出力する。
また、比較されたタグT とタグT’が一致しない場合、タグ検査手段260は、「NCK 」を示す検証結果B を出力する。なお、「ACK 」は「受理」を意味し、「NCK 」は「不受理」を意味する。
平文出力手段270は、復号手段230が出力する平文M と、タグ検査手段260が出力する検証結果B とを入力とする。「ACK 」を示す検証結果B が入力された場合、平文出力手段270は、平文M を出力する。また、「NCK 」を示す検証結果B が入力された場合、平文出力手段270は、エラーメッセージ⊥を出力する。
[動作の説明]
以下、本実施形態の認証復号装置200の認証復号を実行する動作を図4を参照して説明する。図4は、第2の実施形態の認証復号装置200による認証復号処理の動作を示すフローチャートである。
最初に、暗号文入力手段210に、復号対象の暗号文C と、タグT とが入力される(ステップS201)。暗号文入力手段210は、入力された暗号文C を復号手段230に入力する。また、暗号文入力手段210は、入力されたタグT をタグ検査手段260に入力する。
次いで、初期ベクトル入力手段220に、復号に使用される対象の初期ベクトルN が入力される(ステップS202)。初期ベクトル入力手段220は、入力された初期ベクトルN を復号手段230と第3暗号化手段250とに入力する。
次いで、復号手段230は、初期ベクトル入力手段220から入力された初期ベクトルN を用いて、暗号文入力手段210から入力された暗号文C を、Tweakable ブロック暗号で復号する(ステップS203)。復号手段230は、復号された平文M を、第2計算手段240と平文出力手段270とに入力する。
次いで、第2計算手段240は、復号手段230から入力された平文M の部分系列を基に、簡易な計算でs<n であるs ビットのチェックサムSUM を求める(ステップS204)。第2計算手段240は、求められたチェックサムSUM を第3暗号化手段250に入力する。
次いで、第3暗号化手段250は、第2計算手段240から入力されたs ビットのチェックサムSUM を、適当なパディング関数を用いてn ビットの値に変換する。次いで、第3暗号化手段250は、初期ベクトル入力手段220が出力する初期ベクトルN を用いて、変換された後のチェックサムSUM をTweakable ブロック暗号で暗号化する。
次いで、第3暗号化手段250は、暗号化されたチェックサムSUM を、適当な短縮関数を用いてt<=nであるt ビットの値に変換することによって、タグT’を生成する(ステップS205)。第3暗号化手段250は、生成されたタグT’をタグ検査手段260に入力する。
次いで、タグ検査手段260は、暗号文入力手段210から入力されたタグT と、第3暗号化手段250から入力されたタグT’とを比較する。比較されたタグT とタグT’が一致した場合、タグ検査手段260は、「ACK 」を示す検証結果B を平文出力手段270に入力する。また、比較されたタグT とタグT’が一致しない場合、タグ検査手段260は、「NCK 」を示す検証結果B を平文出力手段270に入力する(ステップS206)。
次いで、平文出力手段270は、タグ検査手段260から入力された検証結果B が「ACK 」を示す場合、復号手段230から入力された平文M を出力する。また、平文出力手段270は、タグ検査手段260から入力された検証結果B が「NCK 」を示す場合、エラーメッセージ⊥を出力する(ステップS207)。平文M またはエラーメッセージ⊥を出力した後、認証復号装置200は、認証復号処理を終了する。
[効果の説明]
本実施形態の認証復号装置200は、認証暗号での復号処理におけるチェックサム計算のために求められるメモリサイズを、漸近的な安全性を低下させずにn ビットからs ビットに削減できる。よって、認証復号装置200は、安全性を保ったまま、ステートサイズを(n-s) ビット削減できる。
すなわち、認証復号装置200は、認証暗号での復号処理において、第1の実施形態の認証暗号化装置100が奏する効果と同様の効果を奏する。また、認証復号装置200が上記の効果を奏する理由は、認証暗号化装置100が効果を奏する理由と同様である。
以下、第1の実施形態の認証暗号化装置100および第2の実施形態の認証復号装置200の具体例をいくつか説明する。
<具体例1>
本具体例における認証暗号化装置100と認証復号装置200は、特許文献1~特許文献4に記載されているOCB や、非特許文献6に記載されているOPP に適用可能である。以下、本具体例における認証暗号化装置100を構成する各手段が有する具体的な機能をそれぞれ説明する。
最初に、認証暗号化装置100の平文入力手段110が出力する平文M が、(m-1) 個のn ビットの平文ブロックM[1],M[2],・・・,M[m-1] と、n’<=n であるn’ビットの平文ブロックM[m]とで構成されているとする。
認証暗号化装置100の第1暗号化手段130は、認証暗号化装置100の初期ベクトル生成手段120が出力する初期ベクトルN を用いて、Tweakable ブロック暗号TEで平文M を暗号化する。
具体的には、第1暗号化手段130は、n ビットのデータを入出力するブロック暗号の入力または入力と出力、または鍵なし暗号学的置換の入力または入力と出力に、Tweak と秘密鍵とから一意に定められるマスク値を加算する。
例えば、第1暗号化手段130は、平文ブロックM[1],M[2],・・・,M[m-1] に対して、秘密鍵K 、Tweak(N, i)(1<=i<m) を用いて、C[i] = TE(K, (N, i), M[i])と暗号化する。
また、第1暗号化手段130は、平文ブロックM[m]に対して、n ビットの固定値Fix 、および秘密鍵K 、Tweak(N, m) を用いて、C[m] = TE(K, (N, m), Fix) + M[m]と暗号化する。最終的に、第1暗号化手段130は、暗号文C = C[1]C[2]・・・C[m]を生成する。
例えば、XEX*モードのTweakable ブロック暗号で暗号化する場合、第1暗号化手段130は、以下のように平文ブロックM[i](1<=i<m)を暗号化する。
C[i] = E(K, mult(2i, E(K, N)) + M[i]) + mult(2i, E(K, N)) ・・・式(15)
また、第1暗号化手段130は、以下のように平文ブロックM[m]を暗号化する。
C[m] = M[m] + msb_n’(Pad_n) (Pad_n = E(K, mult(2m, E(K, N)) + 0n))
・・・式(16)
なお、式(15)~式(16)における「+」は、ビットごとの排他的論理和を表す。また、式(15)~式(16)におけるmult(・,・)は、ガロア体GF(2n)上の2つの元の乗算を表す。また、式(15)における2iは、ガロア体GF(2n)上の2のi乗を表す。また、式(16)における「0n」は、0がn個並べられたビット列を表す。また、式(16)におけるmsb_n’(・)は、入力に対して上位n’ビットの値を出力する関数である。
また、認証暗号化装置100の第1計算手段140は、認証暗号化装置100の平文入力手段110が出力する平文M の平文ブロックM[i]のうち、任意のs<n であるs ビットの部分系列Ms[i] を加算する。
具体的には、第1計算手段140は、Ms[1],Ms[2],・・・,Ms[m-1]のビットごとの排他的論理和をチェックサムSUM とする。次いで、第1計算手段140は、s ビットのチェックサムSUM と、最終の平文ブロックM[m]とを出力する。
例えば、M[i]をMs[i] に変換するために、第1計算手段140は、M[i]の上位s ビットの値を抽出すればよい。M[i]の上位s ビットの値が抽出される場合、第1計算手段140は、以下のようにチェックサムSUM を計算する。
SUM = msb_s(M[1]) + msb_s(M[2]) + ・・・ + msb_s(M[m-1]) ・・・式(17)
また、認証暗号化装置100の第2暗号化手段150は、認証暗号化装置100の第1計算手段140が出力するs ビットのチェックサムSUM を、適当なパディング関数を用いてn ビットの値に変換する。
次いで、第2暗号化手段150は、変換された後のチェックサムSUM を、初期ベクトル生成手段120が出力する初期ベクトルN と、第1計算手段140が出力するn’ビットの平文ブロックM[m]とを用いて、Tweakable ブロック暗号で暗号化する。
具体的には、第2暗号化手段150は、n ビットのデータを入出力するプリミティブの入力、または入力と出力に、n’=n の場合とn’≠n の場合とで使い分けられるTweak と秘密鍵とから一意に定められるマスク値と、適当なパディング関数でn ビットの値に変換されたM[m]を加算する。
次いで、第2暗号化手段150は、暗号化されたチェックサムSUM を適当な短縮関数を用いてt ビット(t<=n)の値に変換することによって、タグT を生成する。
例えば、認証暗号化装置100の第1暗号化手段130が(N, 1),(N, 2),・・・,(N, m) の各Tweak を用いた場合、第2暗号化手段150は、n’=n のときは(N, m, 1) のTweak 、n’≠n のときは(N, m, 2) のTweak をそれぞれ用いればよい。
例えば、n’≠n のとき、第2暗号化手段150によるXEX*モードのTweakable ブロック暗号での暗号化は、以下の式で表される。
Mask = Δ(K, (N, m, 2)) + (M[m] || 10(n-n’-1))
SUM_n = SUM || 0(n-s)
Tag_n = E(K, Mask + SUM_n)
T = msb_t(Tag_n)
次に、本具体例における認証復号装置200を構成する各手段が有する具体的な機能をそれぞれ説明する。最初に、認証復号装置200の暗号文入力手段210が出力する暗号文C が、(m-1) 個のn ビットの暗号文ブロックC[1],C[2],・・・,C[m-1] と、n’<=n であるn’ビットの暗号文ブロックC[m]とで構成されているとする。
認証復号装置200の復号手段230は、認証暗号化装置100の第1暗号化手段130の逆関数として作用する。すなわち、復号手段230は、認証復号装置200の初期ベクトル入力手段220が出力する初期ベクトルN を用いて、Tweakable ブロック暗号TEで暗号文C を復号する。具体的には、復号手段230は、n ビットのデータを入出力するプリミティブの入力、または入力と出力に、Tweak と秘密鍵とから一意に定められるマスク値を加算する。
例えば、復号手段230は、暗号文ブロックC[1],C[2],・・・,C[m-1] に対して、秘密鍵K 、Tweak(N, i)(1<=i<m) 、およびTweakable ブロック暗号TEの復号関数TDを用いて、M[i] = TD(K, (N, i), C[i])と復号する。
また、復号手段230は、暗号文ブロックC[m]に対して、n ビットの固定値Fix 、および秘密鍵K 、Tweak(N, m) を用いて、M[m] = TE(K, (N, m), Fix) + C[m]と復号する。最終的に、復号手段230は、平文M = M[1]M[2]・・・M[m]を生成する。
例えば、認証暗号化装置100の第1暗号化手段130がXEX*モードのTweakable ブロック暗号で平文M を暗号化している場合、復号手段230は、秘密鍵K を持つブロック暗号E と、ブロック暗号E に対する復号関数D を用いて、以下のように暗号文ブロックC[i](1<=i<m)を復号できる。
M[i] = D(K, mult(2i, E(K, N)) + C[i]) + mult(2i, E(K, N)) ・・・式(18)
また、復号手段230は、以下のように暗号文ブロックC[m]を復号できる。
M[m] = C[m] + msb_n’(Pad_n) (Pad_n = E(K, mult(2m, E(K, N)) + 0n))
・・・式(19)
また、認証復号装置200の第2計算手段240は、認証復号装置200の復号手段230が出力する平文M の平文ブロックM[i]のうち、任意のs<n であるs ビットの部分系列Ms[i] を加算する。
具体的には、第2計算手段240は、Ms[1],Ms[2],・・・,Ms[m-1] の排他的論理和をチェックサムSUM とする。次いで、第2計算手段240は、s ビットのチェックサムSUM と、最終の平文ブロックM[m]とを出力する。すなわち、第2計算手段240が実行する処理は、認証暗号化装置100の第1計算手段140が実行する処理と同様である。
また、認証復号装置200の第3暗号化手段250は、認証復号装置200の第2計算手段240が出力するs ビットのチェックサムSUM を、適当なパディング関数を用いてn ビットの値に変換する。
次いで、第3暗号化手段250は、変換された後のチェックサムSUM を、初期ベクトル入力手段220が出力する初期ベクトルN と、第2計算手段240が出力するn’ビットの平文ブロックM[m]とを用いて、Tweakable ブロック暗号で暗号化する。
具体的には、第3暗号化手段250は、n ビットのデータを入出力するプリミティブの入力、または入力と出力に、n’=n の場合とn’≠n の場合とで使い分けられるTweak と秘密鍵とから一意に定められるマスク値と、適当なパディング関数でn ビットの値に変換されたM[m]を加算する。
次いで、第3暗号化手段250は、暗号化されたチェックサムSUM を適当な短縮関数を用いてt ビット(t<=n)の値に変換することによって、タグT’を生成する。すなわち、第3暗号化手段250が実行する処理は、認証暗号化装置100の第2暗号化手段150が実行する処理と同様である。
図5は、認証暗号化装置100による認証暗号化処理の具体例を示す説明図である。
例えば、認証暗号化装置100の第1暗号化手段130は、図5に示す暗号化処理を行う。すなわち、第1暗号化手段130は、平文M を構成する(m-1) 個のn ビットの平文ブロックM[1],M[2],・・・,M[m-1] と、n’<=n であるn’ビットの平文ブロックM[m]を、初期ベクトル生成手段120が出力する初期ベクトルN を用いて、Tweakable ブロック暗号TEで暗号化する。
図5に示すように、第1暗号化手段130は、平文ブロックM[1],M[2],・・・,M[m-1] に対して、秘密鍵K 、Δ(K, (N, i))(1<=i<m) を用いて、以下のように暗号化する。
C[i] = E(K, Δ(K, (N, i)) + M[i]) + Δ(K, (N, i))
また、図5に示すように、第1暗号化手段130は、平文ブロックM[m]に対して、n ビットの固定値Fix 、および秘密鍵K 、Δ(K, (N, m)) を用いて、以下のように暗号化する。
C[m] = M[m] + msb_n’(Pad_n) (Pad_n = E(K, Δ(K, (N, m)) + 0n))
最終的に、第1暗号化手段130は、暗号文C = C[1]C[2]・・・C[m]を生成する。
なお、認証復号装置200の復号手段230が暗号文入力手段210が出力する暗号文C に対して実行する復号処理は、図5に示す暗号化処理の逆処理になる。
また、認証暗号化装置100の第1計算手段140は、図5に示すチェックサム計算処理を行う。すなわち、第1計算手段140は、認証暗号化装置100の平文入力手段110が出力する平文M の平文ブロックM[i]のうち、任意のs<n であるs ビットの部分系列Ms[1],Ms[2],・・・,Ms[m-1] の排他的論理和をビットごとにとる。例えば、第1計算手段140は、式(17)の計算を行う。
第1計算手段140は、ビットごとの排他的論理和をチェックサムSUM とする。次いで、第1計算手段140は、s ビットのチェックサムSUM と、最終の平文ブロックM[m]とを出力する。なお、認証復号装置200の第2計算手段240が、復号手段230が出力する平文M に対して実行するチェックサム計算処理も、図5に示すチェックサム計算処理と同様である。
また、認証暗号化装置100の第2暗号化手段150は、図5に示すタグ生成処理を行う。すなわち、第2暗号化手段150は、認証暗号化装置100の第1計算手段140が出力するs ビットのチェックサムSUM を、適当なパディング関数を用いてn ビットの値に変換する。
次いで、第2暗号化手段150は、変換された後のチェックサムSUM を、初期ベクトル生成手段120が出力する初期ベクトルN と、第1計算手段140が出力するn’ビットの平文ブロックM[m]とを用いて、Tweakable ブロック暗号で暗号化する。
図5に示すように、第2暗号化手段150は、n ビットのデータを入出力するプリミティブの入力、または入力と出力に加算されるTweak と秘密鍵とから一意に定められるマスク値を、n’=n の場合とn’≠n の場合とで使い分けている。また、第2暗号化手段150は、適当なパディング関数でn ビットの値に変換されたM[m]も加算する。
また、図5に示すように、第2暗号化手段150は、暗号化されたチェックサムSUM を適当な短縮関数を用いてt ビット(t<=n)の値に変換することによって、タグT を生成する。なお、認証復号装置200の第3暗号化手段250が第2計算手段240が出力するs ビットのチェックサムSUM に対して実行するタグ生成処理も、図5に示すタグ生成処理と同様である。
また、本具体例の認証暗号化装置100の第1計算手段140は以下のようにチェックサムを計算し、第2暗号化手段150は以下のようにタグを生成してもよい。以下、本具体例の変形例を説明する。
第1計算手段140は、認証暗号化装置100の平文入力手段110が出力する平文M の平文ブロックM[i]のうち任意のn/2 ビットの部分系列のビットごとの排他的論理和を、M[1]からM[m-1]に渡ってとる。次いで、第1計算手段140は、ビットごとの排他的論理和をチェックサムSUM とし、n/2 ビットのチェックサムSUM と最終の平文ブロックM[m]とを出力する。
次いで、認証暗号化装置100の第2暗号化手段150は、第1計算手段140が出力するn/2 ビットのチェックサムSUM を、適当なパディング関数を用いてn ビットの値に変換する。
次いで、第2暗号化手段150は、変換された後のチェックサムSUM を、初期ベクトル生成手段120が出力する初期ベクトルN と、第1計算手段140が出力するn’ビットの平文ブロックM[m]とを用いて、Tweakable ブロック暗号で暗号化する。
具体的には、第2暗号化手段150は、n ビットのデータを入出力するプリミティブの入力、または入力と出力に、Tweak と秘密鍵とから一意に定められるマスク値と、適当なパディング関数でn ビットの値に変換されたM[m]を加算する。
次いで、第2暗号化手段150は、暗号化で得られたn ビットのTag_nを、適当な分割関数を用いて2つのn/2 ビットのTag1とTag2に分割する。次いで、第2暗号化手段150は、n’=n のときはT=Tag1、n’≠n のときはT=Tag2として、n/2 ビットのタグT を生成する。例えば、タグT は、以下のように生成される。
T = Tag1 = (msb_(n/2))(Tag_n) (n’=n) ・・・式(20)
T = Tag2 = (lsb_(n/2))(Tag_n) (n’≠n) ・・・式(21)
なお、式(20)における(msb_(n/2))(・)は、入力に対して上位n/2 ビットの値を出力する関数である。また、式(21)における(lsb_(n/2))(・)は、入力に対して下位n/2 ビットの値を出力する関数である。
第2暗号化手段150が分割関数を用いる場合、使用されるTweak の場合分けが無くなる。使用されるTweak の場合分けは、平文にパディング処理が施されたか否かが見分けられるように行われる。
しかし、タグの長さがn/2 ビットである場合、第2暗号化手段150は、チェックサムがTweakable 暗号で暗号化されたn ビットの結果を2つに分割した後であっても場合分けを実行できる。使用されるTweak の場合分けよりも、使用される暗号化されたn/2 ビットの値の場合分けの方が、より効率的に行われる。
なお、本具体例の認証復号装置200の第2計算手段240も、上述した認証暗号化装置100の第1計算手段140によるチェックサム計算処理と同様のチェックサム計算処理を実行することによって、復号手段230が出力する平文M を基にチェックサムを計算してもよい。
また、本具体例の認証復号装置200の第3暗号化手段250も、上述した認証暗号化装置100の第2暗号化手段150によるタグ生成処理と同様のタグ生成処理を実行することによって、第2計算手段240が出力するチェックサムSUM を基にn/2 ビットのタグT’を生成してもよい。以上の変形例により、使用されるTweak の場合分けが削除される。
[効果の説明]
第1の実施形態および第2の実施形態のように、全てs<n であるs ビットのブロックからチェックサムが計算されると安全性が保たれなくなり、タグが容易に偽造される。
第1の具体例における認証暗号化方式での最終ブロックは、CTR モードのブロックである。タグの偽造を防いで安全性を保つためには、n’<=n であるn’ビットの最終の平文ブロックM[m]全て、すなわちn’ビットの値がチェックサムSUM に加算されることが求められる。
しかし、n’ビットの値がチェックサムSUM に加算されると、得られるチェックサムSUM のビット数は、s ビットとn’ビットのいずれか大きい方になる。n’>sである場合、ステートサイズが(n-s) ビット削減されるという、第1の実施形態および第2の実施形態で期待される効果が得られない。
よって、最終の平文ブロックM[m]のみTweakable ブロック暗号で用いられるマスク値に加算されれば、安全性と効率性が同時に実現される。
第1の具体例の認証暗号化装置100と認証復号装置200のn/2<=s<nの場合の安全性は、第1の実施形態および第2の実施形態と同様、s=n の場合の安全性と漸近的に等しくなる。
以下、s=n/2 の場合のOCB における安全性を説明する。処理単位が1ブロック暗号化の場合、上述したように通常のOCB のステートサイズは3nビットである。また、OCB に適用された第1の具体例で実現される方式のステートサイズは、暗号化と復号のどちらにおいても2.5nビットである。すなわち、0.5nビットのステートサイズが削減される。
また、処理単位が任意のiブロック暗号化の場合、通常のOCB のステートサイズは、(2i+1)nビットである。また、OCB に適用された第1の具体例で実現される方式のステートサイズは、暗号化と復号のどちらにおいても(2i+0.5)n ビットである。やはり、0.5nビットのステートサイズが削減される。
また、漸近的な安全性のオーダは、通常のOCB による方式、およびOCB に適用された第1の具体例で実現される方式共に、O(2(n/2)) である。すなわち、漸近的な安全性は損なわれずに、暗号化処理と復号処理の両方でステートサイズが0.5nビット削減される。よって、第1の具体例の認証暗号化装置100と認証復号装置200は、安全性と効率性を同時に実現可能である。
<具体例2>
本具体例における認証暗号化装置100と認証復号装置200は、特許文献5に記載されているOTR に適用可能である。以下、本具体例における認証暗号化装置100を構成する各手段が有する具体的な機能をそれぞれ説明する。
最初に、認証暗号化装置100の平文入力手段110が出力する平文M が、(m-1) 個のn ビットの平文ブロックM[1],M[2],・・・,M[m-1] と、n’<=n であるn’ビットの平文ブロックM[m]とで構成されているとする。また、m を偶数とし、m/2=hmとする。
認証暗号化装置100の第1暗号化手段130は、認証暗号化装置100の初期ベクトル生成手段120が出力する初期ベクトルN を用いて、Tweakable ブロック暗号TEで平文M を暗号化する。
具体的には、第1暗号化手段130は、n ビットのデータを入出力するブロック暗号の入力または入力と出力、または鍵なし暗号学的置換の入力または入力と出力に、Tweak と秘密鍵とから一意に定められるマスク値を加算する。
例えば、第1暗号化手段130は、秘密鍵K 、Tweak(N, j, 0), (N, j, 1)(1<=j<=hm-1) を用いて、以下のように各平文ブロックを暗号化する。
C[2j-1] = TE(K, (N, j, 0), M[2j-1]) + M[2j] ・・・式(22)
C[2j] = TE(K, (N, j, 1), C[2j-1]) + M[2j-1] ・・・式(23)
C[m] = TE(K, (N, hm, 0), M[m-1]) + M[m] ・・・式(24)
C[m-1] = TE(K, (N, hm, 1), C[m]) + M[m-1] ・・・式(25)
最終的に、第1暗号化手段130は、暗号文C = C[1]C[2]・・・C[m]を生成する。
なお、m が奇数である場合、第1暗号化手段130は、M[1], ・・・,M[m-1] までは上記のように暗号化する。次いで、第1暗号化手段130は、固定値がTweakable ブロック暗号で暗号化されたn ビットのPad_n とM[m]を加算することによって、M[m]を暗号化する。n’≠n のとき、第1暗号化手段130は、Pad_n を適当な短縮関数を用いてn ビットの値に変換する。
例えばm が奇数である場合、hm = (m+1)/2とする。第1暗号化手段130は、平文ブロックM[1],M[2],・・・,M[m-1] と、n’<=n であるn’ビットの平文ブロックM[m]に対して、秘密鍵K 、Tweak(N, j, 0), (N, j, 1)(1<=j<=hm-1) を用いて、XEモードのTweakable ブロック暗号で以下のように暗号化を行う。
C[2j-1] = E(K, Δ(K, (N, j, 0)) + M[2j-1]) + M[2j] ・・・式(26)
C[2j] = E(K, Δ(K, (N, j, 1)) + C[2j-1]) + M[2j-1] ・・・式(27)
C[m] = msb_n’(Pad_n) + M[m] (Pad_n = E(K, Δ(K, (N, hm, 0)) + 0n))
・・・式(28)
なお、式(26)~式(28)における「+」は、ビットごとの排他的論理和を表す。また、式(26)~式(28)におけるΔ(K, Tw) は、秘密鍵K とTweak Twとから一意に定められるn ビットのマスク値である。また、式(28)における「0n」は、0がn個並べられたビット列を表す。また、式(28)におけるmsb_n’(・)は、入力に対して上位n’ビットの値を出力する関数である。
また、認証暗号化装置100の第1計算手段140は、認証暗号化装置100の平文入力手段110が出力する平文M と、初期ベクトル生成手段120が出力する初期ベクトルN と、Tweakable ブロック暗号TEとを用いて、Z = TE(K, (N, hm, 0), M[m-1]) を計算する。
具体的には、第1計算手段140は、n ビットのデータを入出力するブロック暗号の入力または入力と出力、または鍵なし暗号学的置換の入力または入力と出力に、Tweak と秘密鍵とから一意に定められるマスク値を加算する。
第1計算手段140は、M[2i](i=1,・・・,hm-1)のうち、任意のs<n であるs ビットの部分系列Ms[2i]と、算出されたZ のうち任意のs ビットの部分系列を加算することによって、s ビットのチェックサムSUM を計算する。
例えば、M[2i] をMs[2i]に変換するために、第1計算手段140は、M[2i] の上位s ビットの値を抽出すればよい。上位s ビットの値を抽出する場合、第1計算手段140は、以下のようにチェックサムSUM を計算する。
SUM = msb_s(M[2]) + msb_s(M[4]) + ・・・ + msb_s(M[m-2]) + msb_s(Z)
・・・式(29)
また、m が奇数である場合、hm = (m+1)/2とする。第1計算手段140は、M[2i](i=1,・・・,hm-1)のうち、任意のs<n であるs ビットの部分系列Ms[2i]の排他的論理和をビットごとにとる。
第1計算手段140は、ビットごとの排他的論理和を適当なパディング関数を用いてn’ビットの値に変換し、変換された値とn’ビットの平文ブロックM[m]を加算することによって、チェックサムSUM を計算する。第1計算手段140は、計算されたチェックサムSUM を出力する。
また、認証暗号化装置100の第2暗号化手段150は、認証暗号化装置100の第1計算手段140が出力するs ビットのチェックサムSUM を、適当なパディング関数を用いてn ビットの値に変換する。
次いで、第2暗号化手段150は、変換された後のチェックサムSUM を、初期ベクトル生成手段120が出力する初期ベクトルN を用いて、Tweakable ブロック暗号で暗号化する。
具体的には、第2暗号化手段150は、n ビットのデータを入出力するブロック暗号の入力または入力と出力、または鍵なし暗号学的置換の入力または入力と出力に、Tweak と秘密鍵とから一意に定められるマスク値を加算する。Tweak は、m が偶数である場合または奇数である場合、およびn’=n である場合またはn’≠n である場合の組み合わせで得られる4通りのケースごとに使い分けられる。
次いで、第2暗号化手段150は、暗号化されたチェックサムSUM を適当な短縮関数を用いてt ビット(t<=n)の値に変換することによって、タグT を生成する。
例えば、認証暗号化装置100の第1暗号化手段130が(N, 1, 0),(N, 1, 1),(N, 2, 0),(N, 2, 1),・・・,(N, hm, 0),(N, hm, 1)の各Tweak を用いたとする。認証暗号化装置100の第2暗号化手段150は、m が偶数かつn’=n のときは(N, hm, 3, 0) のTweak 、m が偶数かつn’≠n のときは(N, hm, 1, 1) のTweak をそれぞれ用いればよい。
また、第2暗号化手段150は、m が奇数かつn’=n のときは(N, hm, 2, 0) のTweak 、m が奇数かつn’≠n のときは(N, hm, 0, 1) のTweak をそれぞれ用いればよい。
例えば、m が偶数かつn’≠n のとき、第2暗号化手段150によるXEモードのTweakable ブロック暗号での暗号化は、以下の式で表される。
SUM_n = SUM || 0(n-s)
Tag_n = E(K, Δ(K, (N, hm, 1, 1)) + SUM_n)
T = msb_t(Tag_n)
次に、本具体例における認証復号装置200を構成する各手段が有する具体的な機能をそれぞれ説明する。最初に、認証復号装置200の暗号文入力手段210が出力する暗号文C が、(m-1) 個のn ビットの暗号文ブロックC[1],C[2],・・・,C[m-1] と、n’<=n であるn’ビットの暗号文ブロックC[m]とで構成されているとする。また、m を偶数とし、m/2=hmとする。
認証復号装置200の復号手段230は、認証暗号化装置100の第1暗号化手段130の逆関数として作用する。すなわち、復号手段230は、認証復号装置200の初期ベクトル入力手段220が出力する初期ベクトルN を用いて、Tweakable ブロック暗号TEで暗号文C を復号する。
具体的には、復号手段230は、n ビットのデータを入出力するブロック暗号の入力または入力と出力、または鍵なし暗号学的置換の入力または入力と出力に、Tweak と秘密鍵とから一意に定められるマスク値を加算する。
例えば、復号手段230は、秘密鍵K 、およびTweak(N, j, 0),(N, j, 1)(1<=j<=hm-1)を用いて、以下のように各暗号文ブロックを復号する。
M[2j-1] = TE(K, (N, j, 1), C[2j-1]) + C[2j]
M[2j] = TE(K, (N, j, 0), M[2j-1]) + C[2j-1]
M[m-1] = TE(K, (N, hm, 1), C[m]) + C[m-1]
M[m] = TE(K, (N, hm, 0), M[m-1]) + C[m]
最終的に、復号手段230は、平文M = M[1]M[2]・・・M[m]を生成する。例えば、復号手段230は、秘密鍵K 、およびTweak(N, j, 0),(N, j, 1)(1<=j<=hm-1)を用いて、XEモードのTweakable ブロック暗号で以下のように復号を行う。
M[2j-1] = E(K, Δ(K, (N, j, 1)) + C[2j-1]) + C[2j] ・・・式(30)
M[2j] = E(K, Δ(K, (N, j, 0)) + M[2j-1]) + C[2j-1] ・・・式(31)
M[m-1] = E(K, Δ(K, (N, hm, 1)) + (C[m]||10(n-n’-1)))) + C[m-1]
・・・式(32)
M[m] = msb_n’(E(K, Δ(K, (N, hm, 0)) + M[m-1])) + C[m] ・・・式(33)
なお、式(30)~式(33)における「+」は、ビットごとの排他的論理和を表す。また、式(30)~式(33)におけるΔ(K, Tw) は、秘密鍵K とTweak Twとから一意に定められるn ビットのマスク値である。また、式(32)における「0n」は、0がn個並べられたビット列を表す。また、式(33)におけるmsb_n’(・)は、入力に対して上位n’ビットを出力する関数である。
また、認証復号装置200の復号手段230が出力する平文M が、(m-1) 個のn ビットの平文ブロックM[1],M[2],・・・,M[m-1] と、n’<=n であるn’ビットの平文ブロックM[m]とで構成されているとする。また、m を偶数とし、m/2=hmとする。
認証復号装置200の第2計算手段240は、認証復号装置200の復号手段230が出力する平文M と、初期ベクトル入力手段220が出力する初期ベクトルN と、Tweakable ブロック暗号TEとを用いて、Z = TE(K, (N, hm, 0), M[m-1]) を計算する。
具体的には、第2計算手段240は、n ビットのデータを入出力するブロック暗号の入力または入力と出力、または鍵なし暗号学的置換の入力または入力と出力に、Tweak と秘密鍵とから一意に定められるマスク値を加算する。
第2計算手段240は、M[2i](i=1,・・・,hm-1)のうち、任意のs<n であるs ビットの部分系列Ms[2i]と、算出されたZ のうち任意のs ビットの部分系列を加算することによって、s ビットのチェックサムSUM を計算する。すなわち、第2計算手段240によるチェックサム計算処理は、認証暗号化装置100の第1計算手段140によるチェックサム計算処理と同様である。
また、認証復号装置200の第3暗号化手段250は、認証復号装置200の第2計算手段240が出力するs ビットのチェックサムSUM を、適当なパディング関数を用いてn ビットの値に変換する。
次いで、第3暗号化手段250は、変換された後のチェックサムSUM を、初期ベクトル入力手段220が出力する初期ベクトルN を用いて、Tweakable ブロック暗号で暗号化する。
具体的には、第3暗号化手段250は、n ビットのデータを入出力するブロック暗号の入力または入力と出力、または鍵なし暗号学的置換の入力または入力と出力に、Tweak と秘密鍵とから一意に定められるマスク値を加算する。Tweak は、m が偶数である場合または奇数である場合、およびn’=n である場合またはn’≠n である場合の組み合わせで得られる4通りのケースごとに使い分けられる。
次いで、第3暗号化手段250は、暗号化されたチェックサムSUM を適当な短縮関数を用いてt ビット(t<=n)の値に変換することによって、タグT’を生成する。すなわち、第3暗号化手段250によるタグ生成処理は、認証暗号化装置100の第2暗号化手段150によるタグ生成処理と同様である。
図6は、認証暗号化装置100による認証暗号化処理の他の具体例を示す説明図である。
例えば、認証暗号化装置100の第1暗号化手段130は、図6に示す暗号化処理を行う。すなわち、第1暗号化手段130は、平文M を構成する(m-1) 個のn ビットの平文ブロックM[1],M[2],・・・,M[m-1] と、n’<=n であるn’ビットの平文ブロックM[m](m は偶数、m/2=hm)を、初期ベクトル生成手段120が出力する初期ベクトルN を用いて、Tweakable ブロック暗号TEで暗号化する。
図6に示すように、第1暗号化手段130は、秘密鍵K 、およびTweak(N, j, 0),(N, j, 1)(1<=j<=hm-1)を用いて、各平文ブロックを暗号化する。例えば、第1暗号化手段130は、式(22)~式(25)の計算を行う。
最終的に、第1暗号化手段130は、暗号文C = C[1]C[2]・・・C[m]を生成する。なお、認証復号装置200の復号手段230が暗号文入力手段210が出力する暗号文C に対して実行する復号処理は、図6に示す暗号化処理の逆処理になる。
また、認証暗号化装置100の第1計算手段140は、図6に示すチェックサム計算処理を行う。すなわち、第1計算手段140は、認証暗号化装置100の平文入力手段110が出力する平文M と、初期ベクトル生成手段120が出力する初期ベクトルN と、Tweakable ブロック暗号TEとを用いて、Z = TE(K, (N, hm, 0), M[m-1]) を計算する。
第1計算手段140は、M[2i](i=1,・・・,hm-1)のうち、任意のs<n であるs ビットの部分系列Ms[2i]と、算出されたZ のうち任意のs ビットの部分系列を加算することによって、s ビットのチェックサムSUM を計算する。
例えば、第1計算手段140は、式(29)の計算を行う。なお、認証復号装置200の第2計算手段240が、復号手段230が出力する平文M に対して実行するチェックサム計算処理も、図6に示すチェックサム計算処理と同様である。
また、認証暗号化装置100の第2暗号化手段150は、図6に示すタグ生成処理を行う。すなわち、第2暗号化手段150は、認証暗号化装置100の第1計算手段140が出力するs ビットのチェックサムSUM を、適当なパディング関数を用いてn ビットの値に変換する。
次いで、第2暗号化手段150は、変換された後のチェックサムSUM を、初期ベクトル生成手段120が出力する初期ベクトルN を用いて、Tweakable ブロック暗号で暗号化する。
図6に示すように、第2暗号化手段150は、n ビットのデータを入出力するブロック暗号の入力または入力と出力、または鍵なし暗号学的置換の入力または入力と出力に加算されるTweak と秘密鍵とから一意に定められるマスク値を使い分けている。
具体的には、第2暗号化手段150は、m が偶数である場合または奇数である場合、およびn’=n である場合またはn’≠n である場合の組み合わせで得られる4通りのケースごとにマスク値を使い分けている。次いで、第2暗号化手段150は、暗号化されたチェックサムSUM を適当な短縮関数を用いてt ビット(t<=n)の値に変換することによって、タグT を生成する。
なお、認証復号装置200の第3暗号化手段250が第2計算手段240が出力するs ビットのチェックサムSUM に対して実行するタグ生成処理は、図6に示すタグ生成処理と同様である。
また、本具体例の認証暗号化装置100の第1計算手段140は以下のようにチェックサムを計算し、第2暗号化手段150は以下のようにタグを生成してもよい。以下、本具体例の変形例を説明する。
第1計算手段140は、M[2i](i=1,・・・,hm-1)のうち、任意のn/2 ビットの部分系列Mn/2[2i]と、算出されたZ のうち任意のn/2 ビットの部分系列を加算することによって、n/2 ビットのチェックサムSUM を計算する。
また、認証暗号化装置100の第2暗号化手段150は、認証暗号化装置100の第1計算手段140が出力するn/2 ビットのチェックサムSUM を、適当なパディング関数を用いてn ビットの値に変換する。
次いで、第2暗号化手段150は、変換された後のチェックサムSUM を、初期ベクトル生成手段120が出力する初期ベクトルN を用いて、Tweakable ブロック暗号で暗号化する。
具体的には、第2暗号化手段150は、n ビットのデータを入出力するブロック暗号の入力または入力と出力、または鍵なし暗号学的置換の入力または入力と出力に、m が偶数である場合と奇数である場合とで使い分けられるTweak と秘密鍵とから一意に定められるマスク値を加算する。
次いで、第2暗号化手段150は、暗号化で得られたn ビットのTag_nを、適当な分割関数を用いて2つのn/2 ビットのTag1とTag2に分割する。次いで、第2暗号化手段150は、n’=n のときはT=Tag1、n’≠n のときはT=Tag2として、n/2 ビットのタグT を生成する。例えば、タグT は、以下のように生成される。
T = Tag1 = (msb_(n/2))(Tag_n) (n’=n) ・・・式(34)
T = Tag2 = (lsb_(n/2))(Tag_n) (n’≠n) ・・・式(35)
なお、式(34)における(msb_(n/2))(・)は、入力に対して上位n/2 ビットの値を出力する関数である。また、式(35)における(lsb_(n/2))(・)は、入力に対して下位n/2 ビットの値を出力する関数である。
上記のように、第2暗号化手段150が分割関数を用いる場合、使用されるTweak が4種類から2種類に削減される。すなわち、使用されるTweak の種類が半分に削減される。
タグの長さがn/2 ビットである場合、第2暗号化手段150は、チェックサムがTweakable 暗号で暗号化されたn ビットの結果を2つに分割した後であっても場合分けを実行できる。よって、4通りの場合分けが2通りの場合分けに削減される。使用されるTweak の場合分けよりも、使用される暗号化されたn/2 ビットの値の場合分けの方が、より効率的に行われる。
なお、本具体例の認証復号装置200の第2計算手段240も、上述した認証暗号化装置100の第1計算手段140によるチェックサム計算処理と同様のチェックサム計算処理を実行することによって、復号手段230が出力する平文M を基にチェックサムを計算してもよい。
また、本具体例の認証復号装置200の第3暗号化手段250も、上述した認証暗号化装置100の第2暗号化手段150によるタグ生成処理と同様のタグ生成処理を実行することによって、第2計算手段240が出力するチェックサムSUM を基にn/2 ビットのタグT’を生成してもよい。以上の変形例により、使用されるTweak の種類が半分に削減される。
[効果の説明]
第2の具体例の認証暗号化装置100と認証復号装置200のn/2<=s<nの場合の安全性は、第1の実施形態および第2の実施形態と同様、s=n の場合の安全性と漸近的に等しくなる。
以下、s=n/2 の場合のOTR における安全性を説明する。処理単位が1つのFeistel 構造である場合、通常のOTR のステートサイズは4nビットである。4nビットの内訳は、1つのFeistel 構造で平文を処理するために用いられるメモリ分の2nビットと、マスクの値を保持するメモリ分のn ビットと、計算されたチェックサムの値を保持するメモリ分のn ビットである。
また、OTR に適用された第2の具体例で実現される方式のステートサイズは、暗号化と復号のどちらにおいても3.5nビットである。すなわち、0.5nビットのステートサイズが削減される。
また、処理単位が任意のi個のFeistel 構造である場合、通常のOTR のステートサイズは、(3i+1)nビットである。また、OTR に適用された第2の具体例で実現される方式のステートサイズは、暗号化と復号のどちらにおいても(3i+0.5)n ビットである。やはり、0.5nビットのステートサイズが削減される。
また、漸近的な安全性のオーダは、通常のOTR による方式、およびOTR に適用された第2の具体例で実現される方式共に、O(2(n/2)) である。すなわち、漸近的な安全性は損なわれずに、暗号化処理と復号処理の両方でステートサイズが0.5nビット削減される。よって、第2の具体例の認証暗号化装置100と認証復号装置200は、安全性と効率性を同時に実現可能である。
以下、第1の実施形態の認証暗号化装置100のハードウェア構成の具体例、および第2の実施形態の認証復号装置200のハードウェア構成の具体例を説明する。
図7は、本発明による認証暗号化装置100のハードウェア構成例を示す説明図である。図7に示す認証暗号化装置100は、CPU(Central Processing Unit)101と、主記憶部102と、通信部103と、補助記憶部104とを備える。また、ユーザが操作するための入力部105や、ユーザに処理結果または処理内容の経過を提示するための出力部106を備えてもよい。
図8は、本発明による認証復号装置200のハードウェア構成例を示す説明図である。図8に示す認証復号装置200は、CPU201と、主記憶部202と、通信部203と、補助記憶部204とを備える。また、ユーザが操作するための入力部205や、ユーザに処理結果または処理内容の経過を提示するための出力部206を備えてもよい。
主記憶部102および主記憶部202は、データの作業領域やデータの一時退避領域として用いられる。主記憶部102および主記憶部202は、例えばRAM(Random Access Memory)である。
通信部103および通信部203は、有線のネットワークまたは無線のネットワーク(情報通信ネットワーク)を介して、周辺機器との間でデータを入力および出力する機能を有する。
補助記憶部104および補助記憶部204は、一時的でない有形の記憶媒体である。一時的でない有形の記憶媒体として、例えば磁気ディスク、光磁気ディスク、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、半導体メモリが挙げられる。
入力部105および入力部205は、データや処理命令を入力する機能を有する。入力部105および入力部205は、例えばキーボードやマウス等の入力デバイスである。平文入力手段110は、例えば入力部105により実現される。また、暗号文入力手段210、および初期ベクトル入力手段220は、例えば入力部205により実現される。
出力部106および出力部206は、データを出力する機能を有する。出力部106および出力部206は、例えば液晶ディスプレイ装置等の表示装置、またはプリンタ等の印刷装置である。暗号文出力手段160は、例えば出力部106により実現される。また、平文出力手段270は、例えば出力部206により実現される。
また、図7に示すように、認証暗号化装置100において、各構成要素は、システムバス107に接続されている。また、図8に示すように、認証復号装置200において、各構成要素は、システムバス207に接続されている。
補助記憶部104は、例えば、図1に示す初期ベクトル生成手段120、第1暗号化手段130、第1計算手段140、および第2暗号化手段150を実現するためのプログラムを記憶している。
なお、認証暗号化装置100は、ハードウェアにより実現されてもよい。例えば、認証暗号化装置100は、内部に図1に示すような機能を実現するプログラムが組み込まれたLSI(Large Scale Integration)等のハードウェア部品が含まれる回路が実装されてもよい。
また、認証暗号化装置100は、図7に示すCPU101が図1に示す各構成要素が有する機能を提供するプログラムを実行することによって、ソフトウェアにより実現されてもよい。
ソフトウェアにより実現される場合、CPU101が補助記憶部104に格納されているプログラムを、主記憶部102にロードして実行し、認証暗号化装置100の動作を制御することによって、各機能がソフトウェアにより実現される。
補助記憶部204は、例えば、図3に示す復号手段230、第2計算手段240、第3暗号化手段250、およびタグ検査手段260を実現するためのプログラムを記憶している。
なお、認証復号装置200は、ハードウェアにより実現されてもよい。例えば、認証復号装置200は、内部に図3に示すような機能を実現するプログラムが組み込まれたLSI等のハードウェア部品が含まれる回路が実装されてもよい。
また、認証復号装置200は、図8に示すCPU201が図3に示す各構成要素が有する機能を提供するプログラムを実行することによって、ソフトウェアにより実現されてもよい。
ソフトウェアにより実現される場合、CPU201が補助記憶部204に格納されているプログラムを、主記憶部202にロードして実行し、認証復号装置200の動作を制御することによって、各機能がソフトウェアにより実現される。
また、各構成要素の一部または全部は、汎用の回路(circuitry)または専用の回路、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
次に、本発明の概要を説明する。図9は、本発明による認証暗号化装置の概要を示すブロック図である。本発明による認証暗号化装置10は、所定のビット数のデータが入力されると所定のビット数のデータを出力する暗号化関数(例えば、式(10)の暗号化関数)に、暗号化対象の平文を構成する所定のビット数の平文ブロックを過去の値に重複しない初期ベクトルを含む調整値(例えば、Tweak )と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって平文ブロックを暗号化する暗号化手段11(例えば、第1暗号化手段130)と、平文を構成する複数の平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出手段12(例えば、第1計算手段140)とを備える。
そのような構成により、認証暗号化装置は、漸近的な安全性を低下させずにチェックサムの計算で増大するステートサイズを削減できる。
また、暗号化手段11は、暗号化関数の出力にマスク値を加算することによって平文ブロックを暗号化してもよい。
そのような構成により、認証暗号化装置は、XEX モードのTweakable ブロック暗号で平文ブロックを暗号化できる。
また、認証暗号化装置10は、認証タグを生成する生成手段(例えば、第2暗号化手段150)を備え、生成手段は、算出されたチェックサムを所定のビット数のデータに変換し、変換されたチェックサムを、暗号化手段11で用いられた調整値以外の調整値と秘密鍵とから一意に定められるマスク値を加算した上で暗号化関数に入力することによって変換されたチェックサムを暗号化し、暗号化されたチェックサムを所定のビット数以下のビット数のデータに変換することによって認証タグを生成してもよい。
そのような構成により、認証暗号化装置は、ビット数が所定のビット数未満であるチェックサムを基に認証タグを生成できる。
また、生成手段は、暗号化関数の出力にマスク値を加算することによってチェックサムを暗号化してもよい。
そのような構成により、認証暗号化装置は、XEX モードのTweakable ブロック暗号でチェックサムを暗号化できる。
また、暗号化手段11は、マスク値が加算された所定のビット数の固定値が入力された暗号化関数の出力と、平文を構成しビット数が所定のビット数以下である最終ブロックとを加算することによって最終ブロックを暗号化してもよい。
そのような構成により、認証暗号化装置は、ビット数が所定のビット数以下の最終ブロックを暗号化できる。
また、算出手段12は、平文を構成する最終ブロック以外の複数の平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出し、生成手段は、最終ブロックを所定のビット数のデータに変換し、変換されたチェックサムを、最終ブロックのビット数が所定のビット数に一致するか否かで値が異なる調整値、秘密鍵、および変換された最終ブロックから一意に定められるマスク値を加算した上で暗号化関数に入力することによって変換されたチェックサムを暗号化してもよい。
そのような構成により、認証暗号化装置は、認証タグが容易に偽造されることを防ぐことができる。
また、第1ビット列のビット数は、所定のビット数の半分の数であり、算出手段12は、平文を構成する最終ブロック以外の複数の平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出し、生成手段は、最終ブロックを所定のビット数のデータに変換し、変換されたチェックサムを、暗号化手段11で用いられた調整値以外の調整値、秘密鍵、および変換された最終ブロックから一意に定められるマスク値を加算した上で暗号化関数に入力することによって変換されたチェックサムを暗号化し、暗号化されたチェックサムを第1ビット列のビット数の2つのデータに分割し、最終ブロックのビット数が所定のビット数に一致するか否かに応じて分割された各データのいずれかを認証タグとして出力してもよい。
そのような構成により、認証暗号化装置は、Tweak を使い分けずに認証タグを生成できる。
また、暗号化手段11は、平文を構成する最終ブロック以外の奇数個の所定のビット数の平文ブロックおよびビット数が所定のビット数以下である最終ブロックを、前から順に2つのブロックの組ごとに分け、分けられた組の中のマスク値が加算された奇数番目の平文ブロックが入力された暗号化関数の出力と、分けられた組の中の偶数番目の平文ブロックとを加算することによって当該組の奇数番目の暗号文ブロックを生成し、マスク値が加算された奇数番目の暗号文ブロックが入力された暗号化関数の出力と、分けられた組の中の奇数番目の平文ブロックとを加算することによって当該組の偶数番目の暗号文ブロックを生成し、分けられた最終組の中のマスク値が加算された奇数番目の平文ブロックが入力された暗号化関数の出力と、最終組の中の偶数番目の平文ブロックとを加算することによって最終組の偶数番目の暗号文ブロックを生成し、マスク値が加算された最終組の偶数番目の暗号文ブロックが入力された暗号化関数の出力と、最終組の中の奇数番目の平文ブロックとを加算することによって最終組の奇数番目の暗号文ブロックを生成してもよい。
そのような構成により、認証暗号化装置は、OTR に適用可能になる。
また、算出手段12は、分けられた最終組の中のマスク値が加算された奇数番目の平文ブロックが入力された暗号化関数の出力を計算し、平文を構成する最終ブロック以外の偶数番目の各平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和を計算し、計算された排他的論理和と計算された出力との排他的論理和をビットごとにとることによってチェックサムを算出し、生成手段は、変換されたチェックサムを、最終ブロックのビット数が所定のビット数に一致するか否かで値が異なる調整値と秘密鍵とから一意に定められるマスク値を加算した上で暗号化関数に入力することによって変換されたチェックサムを暗号化してもよい。
そのような構成により、認証暗号化装置は、OTR に適用可能になる。
また、第1ビット列のビット数は、所定のビット数の半分の数であり、算出手段12は、分けられた最終組の中のマスク値が加算された奇数番目の平文ブロックが入力された暗号化関数の出力を計算し、平文を構成する最終ブロック以外の偶数番目の各平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和を計算し、計算された排他的論理和と計算された出力との排他的論理和をビットごとにとることによってチェックサムを算出し、生成手段は、暗号化されたチェックサムを第1ビット列のビット数の2つのデータに分割し、最終ブロックのビット数が所定のビット数に一致するか否かに応じて分割された各データのいずれかを認証タグとして出力してもよい。
そのような構成により、認証暗号化装置は、Tweak を使い分けずに認証タグを生成できる。
また、認証暗号化装置10は、暗号化手段11により生成された暗号文と認証タグとを併せて出力する暗号文出力手段(例えば、暗号文出力手段160)を備えてもよい。また、認証暗号化装置10は、暗号化対象の平文が入力される平文入力手段(例えば、平文入力手段110)を備えてもよい。また、認証暗号化装置10は、初期ベクトルを生成する初期ベクトル生成手段(例えば、初期ベクトル生成手段120)を備えてもよい。
また、図10は、本発明による認証復号装置の概要を示すブロック図である。本発明による認証復号装置20は、所定のビット数のデータが入力されると所定のビット数のデータを出力する復号関数に、復号対象の暗号文を構成する所定のビット数の暗号文ブロックを過去の値に重複しない初期ベクトルを含む調整値(例えば、Tweak )と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって暗号文ブロックを復号する復号手段21(例えば、復号手段230)と、暗号文が復号された平文を構成する複数の平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出手段22(例えば、第2計算手段240)とを備える。
そのような構成により、認証復号装置は、漸近的な安全性を低下させずにチェックサムの計算で増大するステートサイズを削減できる。
また、復号手段21は、復号関数の出力にマスク値を加算することによって暗号文ブロックを復号してもよい。
そのような構成により、認証復号装置は、XEX モードのTweakable ブロック暗号で暗号文ブロックを復号できる。
また、認証復号装置20は、認証タグを生成する生成手段(例えば、第3暗号化手段250)を備え、生成手段は、算出されたチェックサムを所定のビット数のデータに変換し、変換されたチェックサムと、復号手段21で用いられた調整値以外の調整値と秘密鍵とから一意に定められるマスク値を加算した上で、所定のビット数のデータが入力されると所定のビット数のデータを出力する暗号化関数に入力することによって変換されたチェックサムを暗号化し、暗号化されたチェックサムを所定のビット数以下のビット数のデータに変換することによって認証タグを生成してもよい。
そのような構成により、認証復号装置は、ビット数が所定のビット数未満であるチェックサムを基に認証タグを生成できる。
また、生成手段は、暗号化関数の出力にマスク値を加算することによってチェックサムを暗号化してもよい。
そのような構成により、認証復号装置は、XEX モードのTweakable ブロック暗号でチェックサムを暗号化できる。
また、認証復号装置20は、復号処理の検証結果を出力する出力手段(例えば、タグ検査手段260および平文出力手段270)を備え、出力手段は、暗号文と共に入力された認証タグと一致する認証タグが生成されると受理を表す検証結果を出力し、入力された認証タグと一致しない認証タグが生成されると不受理を表す検証結果を出力してもよい。
そのような構成により、認証復号装置は、復号処理の検証結果を提示できる。
また、出力手段は、受理を表す検証結果と共に復号された平文を出力し、不受理を表す検証結果と共にエラーメッセージを出力してもよい。
そのような構成により、認証復号装置は、復号処理の検証結果に応じて平文またはエラーメッセージを提示できる。
また、認証復号装置20は、復号対象の暗号文と認証タグとが入力される暗号文入力手段(例えば、暗号文入力手段210)を備えてもよい。また、認証復号装置20は、初期ベクトルが入力される初期ベクトル入力手段(例えば、初期ベクトル入力手段220)を備えてもよい。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下に限られない。
(付記1)所定のビット数のデータが入力されると前記所定のビット数のデータを出力する暗号化関数に、暗号化対象の平文を構成する前記所定のビット数の平文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって平文ブロックを暗号化する暗号化手段と、前記平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出手段とを備えることを特徴とする認証暗号化装置。
(付記2)暗号化手段は、暗号化関数の出力にマスク値を加算することによって平文ブロックを暗号化する付記1記載の認証暗号化装置。
(付記3)認証タグを生成する生成手段を備え、前記生成手段は、算出されたチェックサムを所定のビット数のデータに変換し、変換されたチェックサムを、暗号化手段で用いられた調整値以外の調整値と秘密鍵とから一意に定められるマスク値を加算した上で暗号化関数に入力することによって前記変換されたチェックサムを暗号化し、暗号化されたチェックサムを前記所定のビット数以下のビット数のデータに変換することによって前記認証タグを生成する付記1または付記2記載の認証暗号化装置。
(付記4)生成手段は、暗号化関数の出力にマスク値を加算することによってチェックサムを暗号化する付記3記載の認証暗号化装置。
(付記5)暗号化手段は、マスク値が加算された所定のビット数の固定値が入力された暗号化関数の出力と、平文を構成しビット数が前記所定のビット数以下である最終ブロックとを加算することによって前記最終ブロックを暗号化する付記3または付記4記載の認証暗号化装置。
(付記6)算出手段は、平文を構成する最終ブロック以外の複数の平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出し、生成手段は、前記最終ブロックを前記所定のビット数のデータに変換し、変換されたチェックサムを、前記最終ブロックのビット数が前記所定のビット数に一致するか否かで値が異なる調整値、秘密鍵、および変換された前記最終ブロックから一意に定められるマスク値を加算した上で暗号化関数に入力することによって前記変換されたチェックサムを暗号化する付記5記載の認証暗号化装置。
(付記7)第1ビット列のビット数は、所定のビット数の半分の数であり、算出手段は、平文を構成する最終ブロック以外の複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の前記第1ビット列における対応ビットの排他的論理和をチェックサムとして算出し、生成手段は、前記最終ブロックを前記所定のビット数のデータに変換し、変換されたチェックサムを、暗号化手段で用いられた調整値以外の調整値、秘密鍵、および変換された前記最終ブロックから一意に定められるマスク値を加算した上で暗号化関数に入力することによって前記変換されたチェックサムを暗号化し、暗号化されたチェックサムを前記第1ビット列のビット数の2つのデータに分割し、前記最終ブロックのビット数が前記所定のビット数に一致するか否かに応じて分割された各データのいずれかを認証タグとして出力する付記5記載の認証暗号化装置。
(付記8)暗号化手段は、平文を構成する最終ブロック以外の奇数個の所定のビット数の平文ブロックおよびビット数が前記所定のビット数以下である最終ブロックを、前から順に2つのブロックの組ごとに分け、分けられた組の中のマスク値が加算された奇数番目の平文ブロックが入力された暗号化関数の出力と、前記分けられた組の中の偶数番目の平文ブロックとを加算することによって当該組の奇数番目の暗号文ブロックを生成し、マスク値が加算された前記奇数番目の暗号文ブロックが入力された暗号化関数の出力と、前記分けられた組の中の奇数番目の平文ブロックとを加算することによって当該組の偶数番目の暗号文ブロックを生成し、分けられた最終組の中のマスク値が加算された奇数番目の平文ブロックが入力された暗号化関数の出力と、前記最終組の中の偶数番目の平文ブロックとを加算することによって前記最終組の偶数番目の暗号文ブロックを生成し、マスク値が加算された前記最終組の偶数番目の暗号文ブロックが入力された暗号化関数の出力と、前記最終組の中の奇数番目の平文ブロックとを加算することによって前記最終組の奇数番目の暗号文ブロックを生成する付記3または付記4記載の認証暗号化装置。
(付記9)算出手段は、分けられた最終組の中のマスク値が加算された奇数番目の平文ブロックが入力された暗号化関数の出力を計算し、平文を構成する最終ブロック以外の偶数番目の各平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和を計算し、計算された排他的論理和と計算された出力との排他的論理和をビットごとにとることによってチェックサムを算出し、生成手段は、変換されたチェックサムを、前記最終ブロックのビット数が前記所定のビット数に一致するか否かで値が異なる調整値と秘密鍵とから一意に定められるマスク値を加算した上で暗号化関数に入力することによって前記変換されたチェックサムを暗号化する付記8記載の認証暗号化装置。
(付記10)第1ビット列のビット数は、所定のビット数の半分の数であり、算出手段は、分けられた最終組の中のマスク値が加算された奇数番目の平文ブロックが入力された暗号化関数の出力を計算し、平文を構成する最終ブロック以外の偶数番目の各平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の前記第1ビット列における対応ビットの排他的論理和を計算し、計算された排他的論理和と計算された出力との排他的論理和をビットごとにとることによってチェックサムを算出し、生成手段は、暗号化されたチェックサムを前記第1ビット列のビット数の2つのデータに分割し、前記最終ブロックのビット数が前記所定のビット数に一致するか否かに応じて分割された各データのいずれかを認証タグとして出力する付記8記載の認証暗号化装置。
(付記11)所定のビット数のデータが入力されると前記所定のビット数のデータを出力する復号関数に、復号対象の暗号文を構成する前記所定のビット数の暗号文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって暗号文ブロックを復号する復号手段と、前記暗号文が復号された平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出手段とを備えることを特徴とする認証復号装置。
(付記12)復号手段は、復号関数の出力にマスク値を加算することによって暗号文ブロックを復号する付記11記載の認証復号装置。
(付記13)認証タグを生成する生成手段を備え、前記生成手段は、算出されたチェックサムを所定のビット数のデータに変換し、変換されたチェックサムと、復号手段で用いられた調整値以外の調整値と秘密鍵とから一意に定められるマスク値を加算した上で、前記所定のビット数のデータが入力されると前記所定のビット数のデータを出力する暗号化関数に入力することによって前記変換されたチェックサムを暗号化し、暗号化されたチェックサムを前記所定のビット数以下のビット数のデータに変換することによって前記認証タグを生成する付記11または付記12記載の認証復号装置。
(付記14)生成手段は、暗号化関数の出力にマスク値を加算することによってチェックサムを暗号化する付記13記載の認証復号装置。
(付記15)復号手段は、マスク値が加算された所定のビット数の固定値が入力された暗号化関数の出力と、暗号文を構成しビット数が前記所定のビット数以下である最終ブロックとを加算することによって前記最終ブロックを復号する付記13または付記14記載の認証復号装置。
(付記16)算出手段は、平文を構成する最終ブロック以外の複数の平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出し、生成手段は、前記最終ブロックを前記所定のビット数のデータに変換し、変換されたチェックサムを、前記最終ブロックのビット数が前記所定のビット数に一致するか否かで値が異なる調整値、秘密鍵、および変換された前記最終ブロックから一意に定められるマスク値を加算した上で暗号化関数に入力することによって前記変換されたチェックサムを暗号化する付記15記載の認証復号装置。
(付記17)第1ビット列のビット数は、所定のビット数の半分の数であり、算出手段は、平文を構成する最終ブロック以外の複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の前記第1ビット列における対応ビットの排他的論理和をチェックサムとして算出し、生成手段は、前記最終ブロックを前記所定のビット数のデータに変換し、変換されたチェックサムを、暗号化手段で用いられた調整値以外の調整値、秘密鍵、および変換された前記最終ブロックから一意に定められるマスク値を加算した上で暗号化関数に入力することによって前記変換されたチェックサムを暗号化し、暗号化されたチェックサムを前記第1ビット列のビット数の2つのデータに分割し、前記最終ブロックのビット数が前記所定のビット数に一致するか否かに応じて分割された各データのいずれかを認証タグとして出力する付記15記載の認証復号装置。
(付記18)復号手段は、暗号文を構成する最終ブロック以外の奇数個の所定のビット数の暗号文ブロックおよびビット数が前記所定のビット数以下である最終ブロックを、前から順に2つのブロックの組ごとに分け、分けられた組の中のマスク値が加算された奇数番目の暗号文ブロックが入力された暗号化関数の出力と、前記分けられた組の中の偶数番目の暗号文ブロックとを加算することによって当該組の奇数番目の平文ブロックを生成し、マスク値が加算された前記奇数番目の平文ブロックが入力された暗号化関数の出力と、前記分けられた組の中の奇数番目の暗号文ブロックとを加算することによって当該組の偶数番目の平文ブロックを生成し、分けられた最終組の中のマスク値が加算された偶数番目の暗号文ブロックが入力された暗号化関数の出力と、前記最終組の中の奇数番目の暗号文ブロックとを加算することによって前記最終組の奇数番目の平文ブロックを生成し、マスク値が加算された前記最終組の奇数番目の平文ブロックが入力された暗号化関数の出力と、前記最終組の中の偶数番目の暗号文ブロックとを加算することによって前記最終組の偶数番目の平文ブロックを生成する付記13または付記14記載の認証復号装置。
(付記19)算出手段は、平文を構成する最終ブロック以外の奇数個の所定のビット数の平文ブロックおよびビット数が前記所定のビット数以下である最終ブロックを、前から順に2つのブロックの組ごとに分け、分けられた最終組の中のマスク値が加算された奇数番目の平文ブロックが入力された暗号化関数の出力を計算し、前記平文を構成する前記最終ブロック以外の偶数番目の各平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和を計算し、計算された排他的論理和と計算された出力との排他的論理和をビットごとにとることによってチェックサムを算出し、生成手段は、変換されたチェックサムを、前記最終ブロックのビット数が前記所定のビット数に一致するか否かで値が異なる調整値と秘密鍵とから一意に定められるマスク値を加算した上で暗号化関数に入力することによって前記変換されたチェックサムを暗号化する付記18記載の認証復号装置。
(付記20)第1ビット列のビット数は、所定のビット数の半分の数であり、算出手段は、平文を構成する最終ブロック以外の奇数個の所定のビット数の平文ブロックおよびビット数が前記所定のビット数以下である最終ブロックを、前から順に2つのブロックの組ごとに分け、分けられた最終組の中のマスク値が加算された奇数番目の平文ブロックが入力された暗号化関数の出力を計算し、前記平文を構成する前記最終ブロック以外の偶数番目の各平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の前記第1ビット列における対応ビットの排他的論理和を計算し、計算された排他的論理和と計算された出力との排他的論理和をビットごとにとることによってチェックサムを算出し、生成手段は、暗号化されたチェックサムを前記第1ビット列のビット数の2つのデータに分割し、前記最終ブロックのビット数が前記所定のビット数に一致するか否かに応じて分割された各データのいずれかを認証タグとして出力する付記18記載の認証復号装置。
(付記21)復号処理の検証結果を出力する出力手段を備え、前記出力手段は、暗号文と共に入力された認証タグと一致する認証タグが生成されると受理を表す検証結果を出力し、前記入力された認証タグと一致しない認証タグが生成されると不受理を表す検証結果を出力する付記13から付記20のうちのいずれかに記載の認証復号装置。
(付記22)出力手段は、受理を表す検証結果と共に復号された平文を出力し、不受理を表す検証結果と共にエラーメッセージを出力する付記21記載の認証復号装置。
(付記23)所定のビット数のデータが入力されると前記所定のビット数のデータを出力する暗号化関数に、暗号化対象の平文を構成する前記所定のビット数の平文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって平文ブロックを暗号化し、前記平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出することを特徴とする認証暗号化方法。
(付記24)所定のビット数のデータが入力されると前記所定のビット数のデータを出力する復号関数に、復号対象の暗号文を構成する前記所定のビット数の暗号文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって暗号文ブロックを復号し、前記暗号文が復号された平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出することを特徴とする認証復号方法。
(付記25)コンピュータに、所定のビット数のデータが入力されると前記所定のビット数のデータを出力する暗号化関数に、暗号化対象の平文を構成する前記所定のビット数の平文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって平文ブロックを暗号化する暗号化処理、および前記平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出処理を実行させるための認証暗号化プログラム。
(付記26)コンピュータに、所定のビット数のデータが入力されると前記所定のビット数のデータを出力する復号関数に、復号対象の暗号文を構成する前記所定のビット数の暗号文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって暗号文ブロックを復号する復号処理、および前記暗号文が復号された平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出処理を実行させるための認証復号プログラム。
産業上の利用の可能性
本発明は、無線または有線のデータ通信における暗号化とメッセージ認証、または無線センサデバイスと情報収集サーバとの間で行われる通信の保護に好適に適用される。
10、100 認証暗号化装置
11 暗号化手段
12、22 算出手段
101、201 CPU
102、202 主記憶部
103、203 通信部
104、204 補助記憶部
105、205 入力部
106、206 出力部
107、207 システムバス
110 平文入力手段
120 初期ベクトル生成手段
130 第1暗号化手段
140 第1計算手段
150 第2暗号化手段
160 暗号文出力手段
20、200 認証復号装置
21、230 復号手段
210 暗号文入力手段
220 初期ベクトル入力手段
240 第2計算手段
250 第3暗号化手段
260 タグ検査手段
270 平文出力手段

Claims (10)

  1. 所定のビット数のデータが入力されると前記所定のビット数のデータを出力する暗号化関数に、暗号化対象の平文を構成する前記所定のビット数の平文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって平文ブロックを暗号化する暗号化手段と、
    前記平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出手段とを備える
    ことを特徴とする認証暗号化装置。
  2. 暗号化手段は、暗号化関数の出力にマスク値を加算することによって平文ブロックを暗号化する
    請求項1記載の認証暗号化装置。
  3. 認証タグを生成する生成手段を備え、
    前記生成手段は、
    算出されたチェックサムを所定のビット数のデータに変換し、
    変換されたチェックサムを、暗号化手段で用いられた調整値以外の調整値と秘密鍵とから一意に定められるマスク値を加算した上で暗号化関数に入力することによって前記変換されたチェックサムを暗号化し、
    暗号化されたチェックサムを前記所定のビット数以下のビット数のデータに変換することによって前記認証タグを生成する
    請求項1または請求項2記載の認証暗号化装置。
  4. 生成手段は、暗号化関数の出力にマスク値を加算することによってチェックサムを暗号化する
    請求項3記載の認証暗号化装置。
  5. 暗号化手段は、マスク値が加算された所定のビット数の固定値が入力された暗号化関数の出力と、平文を構成しビット数が前記所定のビット数以下である最終ブロックとを加算することによって前記最終ブロックを暗号化する
    請求項3または請求項4記載の認証暗号化装置。
  6. 所定のビット数のデータが入力されると前記所定のビット数のデータを出力する復号関数に、復号対象の暗号文を構成する前記所定のビット数の暗号文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって暗号文ブロックを復号する復号手段と、
    前記暗号文が復号された平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出手段とを備える
    ことを特徴とする認証復号装置。
  7. 認証暗号化装置で実行される認証暗号化方法であって、
    前記認証暗号化装置が、
    所定のビット数のデータが入力されると前記所定のビット数のデータを出力する暗号化関数に、暗号化対象の平文を構成する前記所定のビット数の平文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって平文ブロックを暗号化し、
    前記平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する
    ことを特徴とする認証暗号化方法。
  8. 認証復号装置で実行される認証復号方法であって、
    前記認証復号装置が、
    所定のビット数のデータが入力されると前記所定のビット数のデータを出力する復号関数に、復号対象の暗号文を構成する前記所定のビット数の暗号文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって暗号文ブロックを復号し、
    前記暗号文が復号された平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する
    ことを特徴とする認証復号方法。
  9. コンピュータが備えるプロセッサに、
    所定のビット数のデータが入力されると前記所定のビット数のデータを出力する暗号化関数に、暗号化対象の平文を構成する前記所定のビット数の平文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって平文ブロックを暗号化する暗号化処理、および
    前記平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出処理
    を実行させるための認証暗号化プログラム。
  10. コンピュータが備えるプロセッサに、
    所定のビット数のデータが入力されると前記所定のビット数のデータを出力する復号関数に、復号対象の暗号文を構成する前記所定のビット数の暗号文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって暗号文ブロックを復号する復号処理、および
    前記暗号文が復号された平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出処理
    を実行させるための認証復号プログラム。
JP2020556403A 2018-11-07 2018-11-07 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム Active JP7136226B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/041338 WO2020095382A1 (ja) 2018-11-07 2018-11-07 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム

Publications (2)

Publication Number Publication Date
JPWO2020095382A1 JPWO2020095382A1 (ja) 2021-09-24
JP7136226B2 true JP7136226B2 (ja) 2022-09-13

Family

ID=70611401

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020556403A Active JP7136226B2 (ja) 2018-11-07 2018-11-07 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム

Country Status (3)

Country Link
US (1) US11728968B2 (ja)
JP (1) JP7136226B2 (ja)
WO (1) WO2020095382A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115085897A (zh) * 2022-05-23 2022-09-20 支付宝(杭州)信息技术有限公司 用于保护隐私的数据处理方法、装置和计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060285684A1 (en) 2001-07-30 2006-12-21 Rogaway Phillip W Method and apparatus for facilitating efficient authenticated encryption
WO2015015702A1 (ja) 2013-08-02 2015-02-05 日本電気株式会社 認証暗号装置、認証暗号方法および認証暗号用プログラム
JP6386198B1 (ja) 2017-02-21 2018-09-05 三菱電機株式会社 暗号化装置及び復号装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7046802B2 (en) 2000-10-12 2006-05-16 Rogaway Phillip W Method and apparatus for facilitating efficient authenticated encryption

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060285684A1 (en) 2001-07-30 2006-12-21 Rogaway Phillip W Method and apparatus for facilitating efficient authenticated encryption
WO2015015702A1 (ja) 2013-08-02 2015-02-05 日本電気株式会社 認証暗号装置、認証暗号方法および認証暗号用プログラム
JP6386198B1 (ja) 2017-02-21 2018-09-05 三菱電機株式会社 暗号化装置及び復号装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GRANGER, R.,Improved Masking for Tweakable Blockciphres with Applications to Authenticated Encryption,Cryptology ePrint archive,Report 2015/999,[online],2018年04月,pp.1-39,<URL:https://eprint.iacr.org/2015/999/20180420:131802>

Also Published As

Publication number Publication date
US20210399875A1 (en) 2021-12-23
WO2020095382A1 (ja) 2020-05-14
US11728968B2 (en) 2023-08-15
JPWO2020095382A1 (ja) 2021-09-24

Similar Documents

Publication Publication Date Title
KR101809386B1 (ko) 인증 암호 장치, 인증 암호 방법 및 컴퓨터 판독가능한 기록 매체
US20120314857A1 (en) Block encryption device, block decryption device, block encryption method, block decryption method and program
JP2002366029A (ja) Dpaに対して安全な暗号化
JPH08505275A (ja) 暗号ストリームを発生させるための装置及び方法
JP2015158665A (ja) 形態保存暗号化のための可変長ブロック暗号装置および方法
JP6386198B1 (ja) 暗号化装置及び復号装置
US20160013933A1 (en) Order-preserving encryption system, device, method, and program
Mahendran et al. Generation of key matrix for hill cipher encryption using classical cipher
WO2016067524A1 (ja) 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム
US9515830B2 (en) Universal hash function computing device, method and program
CN105933101B (zh) 一种基于参数高次偏移的全同态加密公钥压缩方法
JP7136226B2 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム
JP7371757B2 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치
Moldovyan et al. Randomized pseudo-probabilistic encryption algorithms
Sekhar et al. Data Encryption technique using Random number generator
JP2015082077A (ja) 暗号化装置、制御方法、及びプログラム
JP2000004223A (ja) 暗号・認証システム
Moldovyan et al. On some applications of quasigroups in cryptography
Shakir Study and Design of an Encryption Algorithm for Data Transmitted Over the Network by the IDEA and RSA
JP2006133380A (ja) 復号装置と復号プログラム及び暗号通信システム
Abbas et al. Audio cryptosystem based on LFSH and Chaotic map with ECC key management
Nu1L Team Crypto
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム
Swathi et al. Double Encryption using TEA and DNA

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210426

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220314

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: 20220802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220815

R151 Written notification of patent or utility model registration

Ref document number: 7136226

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151