WO2010024003A1 - 倍ブロック長ブロック暗号化装置、復号装置、暗号化方法及び復号方法、及びそのプログラム - Google Patents

倍ブロック長ブロック暗号化装置、復号装置、暗号化方法及び復号方法、及びそのプログラム Download PDF

Info

Publication number
WO2010024003A1
WO2010024003A1 PCT/JP2009/059437 JP2009059437W WO2010024003A1 WO 2010024003 A1 WO2010024003 A1 WO 2010024003A1 JP 2009059437 W JP2009059437 W JP 2009059437W WO 2010024003 A1 WO2010024003 A1 WO 2010024003A1
Authority
WO
WIPO (PCT)
Prior art keywords
bit
block
adjustment value
encryption
intermediate variable
Prior art date
Application number
PCT/JP2009/059437
Other languages
English (en)
French (fr)
Inventor
一彦 峯松
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2010526596A priority Critical patent/JPWO2010024003A1/ja
Priority to US13/060,580 priority patent/US20110150225A1/en
Publication of WO2010024003A1 publication Critical patent/WO2010024003A1/ja

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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation

Definitions

  • the present invention relates to a block cipher operation mode, and more particularly, to a general-purpose and highly secure double block length block encryption device, a decryption device, an encryption method and a decryption method, and a program thereof using an n-bit block cipher.
  • the block cipher is a set of substitutions uniquely determined by the key, and the input to the substitution corresponds to plaintext and the output corresponds to the ciphertext.
  • the length of plaintext or ciphertext is called the block size.
  • a block cipher having a block size of n bits is generally called an n-bit block cipher.
  • DES Data Encryption Standard
  • Feistel type substitution using a process called a round function having a 32-bit input / output length.
  • the processing of the round function is relatively simple and the randomness of the output of the round function itself is low (it can be easily distinguished from random numbers), so the number of Feistel substitutions is sufficiently large. It is necessary to improve the randomness of the entire 64 bits. In the case of DES, the process is repeated 16 times.
  • the above block cipher is called “double block length block cipher” in the sense that a 2n bit block size is realized by using an existing n bit block size block cipher as a component.
  • storage encryption such as a hard disk is conceivable.
  • encryption using a state variable such as a counter is not practical from the viewpoint of securing a storage area for storing the state variable and safety, and plain text and encryption due to system constraints. Since the length of the text is the same, tampering with the message authentication code cannot be prevented (because the ciphertext becomes longer than the plain text with the message authentication code).
  • Non-Patent Document 1 Various methods for constructing double block length block ciphers have been proposed, such as a method based on four iterations of Feistel-type substitution disclosed in Non-Patent Document 1 (see FIGS. 13 and 14).
  • the security guarantee is limited to the case where the number of encryptions q processed with one key is sufficiently smaller than 2n / 2 (this is expressed as q ⁇ 2n / 2).
  • 2n / 2 is called “birthday bounce”, and an attack using the result of encryption about the number of birthday bounces is generally called a birthday attack.
  • Such an attack becomes a real threat when using a 64-bit block cipher and is considered a future risk even when using a 128-bit block cipher.
  • Non-Patent Document 2 is known as a method of constructing a double block length block cipher that is resistant to a birthday attack. Thus, it is shown that resistance to a birthday attack is obtained by repeating the Feistel type substitution 5 to 6 times.
  • n-bit input / output round function is a pseudo-random function having theoretical resistance to a birthday attack.
  • a practically safe n-bit block cipher can be considered as pseudo-random substitution, but pseudo-random substitution cannot be a pseudo-random function with theoretical resistance to birthday attacks as long as there is an inverse function. The above result cannot be applied as it is.
  • the present invention has been made in view of such problems, and using a realistic block cipher, a double block length block encryption device capable of efficiently constructing a double block length block cipher having theoretical resistance to a birthday attack, It is an object to provide a method, a program thereof, a decoding device, a method, and a program thereof.
  • the double block length block encryption apparatus of the present invention applies plaintext input means for inputting 2n-bit plaintext to be encrypted, and universal hash function-based substitution to the 2n-bit plaintext,
  • the result of shortening the second intermediate variable to m bits by using the agitation means for generating the first and second intermediate variables each having n bits and the encryption function of the n-bit block cipher with m-bit adjustment value A first unit variable encryption unit with an adjustment value for generating an n-bit third intermediate variable by encrypting the first intermediate variable using the adjustment value as an adjustment value, and an encryption of the n-bit block cipher with the m-bit adjustment value
  • the double block length block decryption apparatus of the present invention applies ciphertext input means for inputting 2n-bit ciphertext to be decrypted, and universal hash function-based substitution to the 2n-bit ciphertext, each of which is an n-bit first bit.
  • the second intermediate variable is generated using the decryption function of the n-bit block cipher with the m-bit adjustment value and the second intermediate variable, and the second intermediate variable is shortened to m bits as the adjustment value.
  • the third First unit block decoding means with an adjustment value for generating a fourth intermediate variable of n bits by encrypting the first intermediate variable using the result of shortening the intermediate variable to m bits as an adjustment value;
  • a reverse stirring means for generating a 2n-bit plaintext by applying the inverse permutation of the universal hash functions based by connecting the third and fourth intermediate variable, and a plaintext output means for outputting the 2n-bit plaintext.
  • the double block length block encryption method of the present invention applies a plaintext input process for inputting a 2n-bit plaintext to be encrypted, and a universal hash function-based replacement to the 2n-bit plaintext, each of which has n-bit first and Using the agitation processing to generate the second intermediate variable and the encryption function of the n-bit block cipher with m-bit adjustment value, the first intermediate variable is shortened to m bits as the adjustment value.
  • the double block length block decryption method of the present invention applies a ciphertext input process for inputting a 2n-bit ciphertext to be decrypted, and a universal hash function-based replacement to the 2n-bit ciphertext, each of which is an n-bit first bit. And the agitation processing for generating the second intermediate variable and the decryption function of the n-bit block cipher with m-bit adjustment value, the result of shortening the first intermediate variable to m bits is used as the adjustment value.
  • a double comprising: a reverse agitation process for generating a 2n-bit plaintext by applying a universal hash function-based reverse replacement by concatenating the third and fourth intermediate variables; and a plaintext output process for outputting the 2n-bit plaintext
  • the double block length block encryption program of the present invention is a program that causes a computer to execute the double block length block encryption method of the present invention.
  • the double block length block decoding program of the present invention is a program that causes a computer to execute the double block length block decoding method of the present invention.
  • the double block length block encryption apparatus, method, its program, and decryption apparatus which can comprise efficiently the double block length block cipher which has theoretical tolerance to a birthday attack using a realistic block cipher , Methods and programs thereof can be provided.
  • the present invention efficiently realizes an efficient double block length block cipher that guarantees safety beyond birthday bounds.
  • the block cipher with adjustment value (m-bit adjustment value, n-bit block) used as a component is theoretically safe, and the number of plaintext / ciphertext pairs used by the attacker is sufficiently smaller than 2 (n + m) / 2 Because it has theoretical safety in some cases, it has theoretical resistance to birthday attacks.
  • the block cipher with adjusted value itself needs to be safe beyond birthday bounds, but depending on the length of the adjusted value (determined by the level of security required), it can be realized with ordinary block ciphers, and R Schroeppel, Specification for the Hasty Pudding Cipher, block cipher with adjustment value designed from the beginning like Hasty Pudding Cipher described in http://www.cs.arizona.edu/ ⁇ rcs/hpc/hpc-spec. There are also algorithms, and D. Goldenberg, S. Hohenberger, M. Liskov, E. C. Schwartz, H.
  • agitation is required at the beginning and end, but this can be realized with a universal hash function, and it can be operated significantly faster than the block function by optimizing it according to the implementation environment. It is possible.
  • FIG. 1 shows the configuration of a double block length block encryption apparatus according to the first embodiment in which the present invention is preferably implemented.
  • the double block length block encryption device 10 includes a plaintext input unit 100, a stirring unit 101, a first unit block encryption unit 102 with an adjustment value, a second unit block encryption unit 103 with an adjustment value, an inverse stirring unit 104, And a ciphertext output unit 105.
  • the double block length block encryption device 10 can be realized by a CPU, a memory, and a disk. Each functional unit of the double block length block encryption device 10 can be realized by software processing by causing a program stored in a disk to be executed on the CPU.
  • FIG. 2 shows a flow of information in the agitation unit 101, the first unit block encryption unit 102 with adjustment value, the second unit block encryption unit 103 with adjustment value, and the reverse agitation unit 104.
  • the plaintext input unit 100 inputs 2n-bit plaintext to be encrypted. This is realized by a character input device such as a keyboard.
  • the stirring unit 101 applies a simple keyed substitution mix1 to the input 2n-bit plaintext.
  • cut is a function that extracts an arbitrary m bit from an n-bit input.
  • the least significant m bits may be taken out.
  • the probability is defined by the randomness of the mix1 key.
  • mix1 can be realized by permutation called Pairwise independent permutation on a 2n-bit space.
  • mul (a, b) is the multiplication of elements a and b on GF (22n)
  • K1 and K2 are the keys of mix1
  • K1 is the same on the set of GF (22n) excluding the zero element.
  • K2 is distributed uniformly throughout GF (22n).
  • any keyed function (t-bit input s-bit output) F is e-almost universal.
  • Pr [F (x) F (x') ] Is at most e.
  • a keyed function having such a property is called a universal hash function and can be realized by multiplication on a finite field. Or S. Halevi and H.
  • FIG. 3 shows a configuration when the stirring unit 101 is realized by using Feistel type substitution in the case of m ⁇ n.
  • the first unit block encryption unit with adjustment value 102 divides the output of the stirring unit 101 into two n-bit blocks, and encrypts the other using one as a parameter.
  • the unit block encryption unit 102 with the first adjustment value has an adjustment value as shown in the following equation (5).
  • K1 is the key of TWENC1.
  • the block cipher with adjustment value refers to block cipher that performs encryption using a parameter called adjustment value (tweak) in addition to the secret key. If the adjustment value and the key are determined, it is a condition that plaintext and ciphertext correspond one-to-one. That is, when there is an encryption function TWENC of the block cipher with adjustment value and a corresponding decryption function TWDEC, the following equation (6) is always satisfied for plaintext M, ciphertext C, key K, and adjustment value T.
  • the block cipher with adjustment value used in the first unit block encryption unit 102 with adjustment value has an m-bit adjustment value and an n-bit block size as shown in Equation (5).
  • K is an n-bit key for block cipher.
  • pad is an appropriate padding of nm bits (for example, all zeros are added).
  • FIG. 5 shows TWENC at this time.
  • the pad may simply be a process of fixing a nm bit with TE.
  • this method requires m ⁇ n / 2 for safety reasons.
  • the second unit block encryption unit with adjustment value 103 divides the 2n bits output from the unit block encryption unit 102 with the first adjustment value into two n-bit blocks, and encrypts the other using one as a parameter. .
  • the unit block encryption unit 103 with the second adjustment value has the following formula: Using the encryption function TWENC2 (m-bit adjustment value, n-bit block) of the block cipher with adjustment value as shown in (9), 2n bits (UE, VE) are output.
  • K2 is the key of TWENC2.
  • TWENC2 may be generated as the following equation (10) according to FIG. 5 using an encryption function ENC of an n-bit block and an n-bit key block cipher.
  • this method like TWENC1, requires m ⁇ n / 2 for safety reasons.
  • the reverse agitation unit 104 applies a simple keyed replacement invmix2 to the 2n-bit output of the unit block encryption unit 103 with the second adjustment value.
  • the output is invmix2 (UE, VE).
  • mix2 may be a mix of left and right processing of mix1, and invmix2 is uniquely determined by defining mix2.
  • invmix2 is the reverse replacement of mix1's Pairwise independent permutation, or if mix1 is a Feistel type replacement, if invmix2 input is (UE, VE) and output is (yL, yR), the following formula (13) and (14) may be used.
  • FIG. 3 shows a configuration in the case where the back stirring unit 104 is realized by using Feistel type substitution when m ⁇ n.
  • the ciphertext output unit 105 outputs the ciphertext (yL, yR) input from the back agitation unit 104.
  • the ciphertext output unit 105 can be realized by a computer display, a printer, or the like.
  • the 2n-bit block cipher obtained in this embodiment when used for encryption in communication or data storage, it is conceivable to use the 2n-bit block cipher obtained in this embodiment in some encryption mode. That is, information such as packets to be encrypted is divided every 2n bits, and if it is communication, it will be in CBC mode, T. Krovetz and P. Rogaway.
  • the described OCB mode applies.
  • the encryption of data storage such as a hard disk can be applied by applying the method described in Document B. In this method, ECB mode encryption is performed while adding a mask value in accordance with a sector of a hard disk and a byte position in the sector (one sector is usually 512 bytes).
  • SecNum is a random number corresponding to the sector number (generated by encrypting the sector number with block cipher), and mul (i, SecNum) saw i and SecNum as the origin of the finite field GF (2256) Represents the multiplication of time.
  • FIG. 6 shows an operation flow of the double block length block encryption apparatus according to the present embodiment.
  • plain text (xL, xR) is input via the plain text input unit 100 (step S101), and an intermediate variable (SE, TE) is obtained by the stirring unit 101 (step S102).
  • SE is encrypted according to said Formula (5) using the 1st unit block encryption part 102 with an adjustment value by using m bit part with TE as an adjustment value, and UE is calculated
  • TE is encrypted using the m-bit part with the UE as the adjustment value, and VE is obtained (step S104).
  • the obtained (UE, VE) is input to the back stirring unit 104, and the ciphertext (yL, yR) is output (step S105).
  • FIG. 7 shows the configuration of the double block length block decoding apparatus according to this embodiment.
  • the double block length block decryption device 20 includes a ciphertext input unit 200, a stirring unit 201, a second unit block decryption unit with adjustment value 202, a first unit block decryption unit with adjustment value 203, an inverse stirring unit 204, and a plaintext.
  • An output unit 205 is included.
  • the double block length block decoding device 20 can be realized by a CPU, a memory, and a disk. Each functional unit of the double block length block decoding device 20 can be realized by software processing by causing a program stored on a disk to be executed on the CPU.
  • FIG. 8 shows the flow of information in the agitation unit 201, the second unit block decoding unit with adjustment value 202, the first unit block decoding unit with adjustment value 203, and the back agitation unit 104.
  • the ciphertext input unit 200 inputs a 2n-bit ciphertext to be decrypted. This is realized by a character input device such as a keyboard.
  • the agitation unit 201 applies the keyed substitution mix2 to the input 2n-bit ciphertext.
  • mix2 is the reverse replacement of the 2n-bit replacement invmix2 used by the reverse stirring unit 104 in the first embodiment.
  • mix2 is about the input ciphertext (yL, yR)
  • the following equations (15) and (16) may be obtained and (UD, VD) may be output.
  • the second unit block decrypting unit 202 with adjustment value divides the output of the stirring unit 201 into two n-bit blocks, and encrypts the other using one as a parameter.
  • the unit block decoding unit 202 with the second adjustment value has the second adjustment value in the first embodiment.
  • TWDEC2 Using the decryption function TWDEC2 corresponding to the encryption function TWENC2 of the block cipher with adjustment value used by the unit block encryption unit 102, TD is obtained from (UD, VD) by the following equation (17), and (UD, TD) is obtained.
  • the key K2 of TWDEC2 is the same value as K2 in the above equation (9).
  • the TWDEC2 uses the encryption function ENC and the decryption function DEC of the block cipher of n-bit block and n-bit key. It can also be realized. Specifically, the following equation (18) is defined for the n-bit key K, the n-bit ciphertext C, and the m-bit adjustment value T. FIG. 11 shows the TWDEC at this time.
  • the pad may simply be a process of fixing nm bits with UD.
  • this method requires m ⁇ n / 2 for safety reasons, as in the case of TWENC.
  • the first unit block decoding unit with adjustment value 203 divides the 2n bits output from the unit block decoding unit 202 with the second adjustment value into two n-bit blocks, and decodes the other using one as a parameter.
  • the unit block decoding unit with first adjustment value 203 performs the first implementation.
  • TWDEC1 corresponding to the encryption function TWENC1 (m-bit adjustment value, n-bit block) of the block cipher with adjustment value used by the unit block encryption unit 102 with the first adjustment value in the form (UD, TD)
  • TWENC1 m-bit adjustment value, n-bit block
  • 2n-bit (SD, TD) is output by the following equation (20).
  • the key K1 of TWDEC1 is the same value as K1 in the above equation (5).
  • TWENC1 is performed using the encryption function ENC of the n-bit block cipher as shown in the above equation (8)
  • TWDEC1 uses the encryption function ENC of the n-bit block cipher and the DEC related to the decryption in the same manner as TWDEC2.
  • the following equation (21) is obtained.
  • the reverse stirring unit 204 applies the keyed replacement invmix1 to the output of the unit block decryption unit 203 with the first adjustment value.
  • invmix1 is the reverse substitution of the substitution mix1 used by the stirring unit 101 in the first embodiment.
  • the plaintext output unit 205 outputs plaintext (xL, xR) given from the back stirring unit 204.
  • the plaintext output unit 205 can be realized by a computer display, a printer, or the like.
  • FIG. 12 shows an operation flow of the double block length block decoding device 20 according to the present embodiment.
  • the ciphertext (yL, yR) is input via the ciphertext input unit 200 (step S201), and the intermediate variable (UD, VD) is obtained by the stirring unit 201 (step S202).
  • VD is decoded according to the above equation (17) using an m-bit part with UD as an adjustment value to obtain TD (step S203).
  • the unit block decoding unit 203 with the first adjustment value is used to decode the UD using the m-bit part with TD as the adjustment value to obtain SD (step S204).
  • the obtained (SD, TD) is input to the back stirring unit 204, and plain text (xL, xR) is output (step S205).
  • each said embodiment is an example of suitable implementation of this invention, and this invention is not limited to these.
  • the present invention is applicable to uses such as authentication and encryption in wireless or wired data communication, and uses such as encryption of data on a storage and prevention of tampering.
  • double block length block encryption device 20 double block length block decryption device 100 plaintext input unit 101, 201 agitation unit 102 first unit block encryption unit with adjustment value 103 second unit block encryption unit with adjustment value 104, 204 Reverse stirring unit 105 Ciphertext output unit 200 Ciphertext input unit 202 Second unit block decryption unit with adjustment value 203 First unit block encryption unit with adjustment value 205 Plaintext output unit

Landscapes

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

Abstract

 倍ブロック長ブロック暗号化装置は、2nビット平文が入力されると、2nビット平文へユニバーサルハッシュ関数ベースの置換を適用し、それぞれがnビットの第1及び第2の中間変数を生成し、mビット調整値付きnビットブロック暗号の暗号化関数を用いて、第2の中間変数をmビットに短縮した結果を調整値として第1の中間変数を暗号化してnビットの第3の中間変数を生成する。そして、倍ブロック長ブロック暗号化装置は、mビット調整値付きnビットブロック暗号の暗号化関数を用いて、第3の中間変数をmビットに短縮した結果を調整値として第2の中間変数を暗号化してnビットの第4の中間変数を得、第3及び第4の中間変数を連結して、ユニバーサルハッシュ関数ベースの逆撹拌を適用し、2nビット暗号文を生成する。

Description

倍ブロック長ブロック暗号化装置、復号装置、暗号化方法及び復号方法、及びそのプログラム
 本発明は、ブロック暗号の運用モードに関し、特にnビットブロック暗号による汎用的で高い安全性を持つ倍ブロック長ブロック暗号化装置、復号装置、暗号化方法及び復号方法、及びそのプログラムに関する。
 ブロック暗号とは、鍵により一意に定まる置換の集合であり、置換への入力が平文、出力が暗号文にそれぞれ相当する。平文や暗号文の長さをブロックサイズという。ブロックサイズがnビットのブロック暗号を、一般的にnビットブロック暗号という。ブロック暗号化・復号に関連する技術としては、特許文献1に開示される「ブロック暗号方法及び復号方法」がある。
 2nビットブロックサイズのブロック暗号を構成する場合、nビット入出力のラウンド関数と呼ばれる処理を用いた2nビット置換を繰り返す方法がある。例えば、DES(Data Encryption Standard)は64ビットブロックサイズであり、32ビット入出力長のラウンド関数と呼ばれる処理を用いたFeistel型置換と呼ばれる置換を繰り返すことで構成されている。DESなどの実用的なブロック暗号では、ラウンド関数の処理は比較的シンプルであり、ラウンド関数の出力自体の乱数性は低い(乱数と容易に判別可能)ため、Feistel型置換の繰り返し回数を十分大きく取り、64ビット全体の乱数性を高める必要がある。DESの場合は16回の繰り返しを行っている。
 一方、計算量的に高い乱数性を持つnビット入出力ラウンド関数を用いるアプローチがある。このアプローチの利点は、ラウンド関数による2nビット置換を繰り返す回数がごく僅かでも、高い安全性を有することである。例えば、ラウンド関数の出力が真の乱数と効率的に判別できないほど高い乱数性をもつならば、Feistel型置換を3~4回繰り返すことで、全体として計算量的安全性が保証された2nビットブロック暗号となることがLuby 及び Rackoffによって証明されている。
 よく考えられた既存のnビットブロック暗号は、計算量的に高い乱数性を持つと考えられるため、Luby 及び Rackoffの結果に基づき、DESをラウンド関数とした128ビットブロック暗号や、128ビットブロック暗号であるAES(Advanced Encryption Standard)をラウンド関数とした256ビットブロック暗号を構成することが可能である。
 上記のようなブロック暗号は、既存のnビットブロックサイズのブロック暗号を部品として用いて2nビットブロックサイズを実現しているという意味で、「倍ブロック長ブロック暗号」と呼ばれている。
 倍ブロック長ブロック暗号の応用としては、ハードディスクなどストレージの暗号化が考えられる。一般的なストレージの暗号化において、カウンタなどの状態変数を用いた暗号化は、状態変数を保管するストレージ領域の確保や安全性などの観点から現実的ではなく、また、システム制約上平文と暗号文との長さが等しいため、メッセージ認証コードの併用による改ざんも防止できない(メッセージ認証コードの併用により暗号文が平文よりも長くなるため)。
 倍ブロック長ブロック暗号の構成方法は、非特許文献1に開示されている4回のFeistel型置換の繰り返しによる方法(図13、図14参照)など様々提案されているが、この方式を含めほとんどの場合、その安全性保証は、一つの鍵で処理する暗号化回数qが2n/2よりも十分に小さい(これをq≪2n/2と表す)場合に限られている。2n/2は「バースデーバウンド」と呼ばれ、バースデーバウンド程度の回数の暗号化の結果を用いた攻撃は一般にバースデー攻撃と呼ばれる。このような攻撃は、64ビットブロック暗号を用いた場合には現実的な脅威となり、また128ビットブロック暗号を用いた場合でも将来的なリスクと考えられるため、対策が必要である。
 例えば、Feistel型置換を4回繰り返す構成の場合、ラウンド関数によらずバースデー攻撃による攻撃が可能であることが知られている。
 バースデー攻撃に対する耐性のある倍ブロック長ブロック暗号の構成方法としては、非特許文献2が知られている。これにより、5ないし6回のFeistel型置換の繰り返しにより、バースデー攻撃への耐性を持つことが示されている。
 ただし、この結果は、nビット入出力ラウンド関数がバースデー攻撃への理論的耐性を持つ疑似ランダム関数である場合に成立するものである。現実的に安全なnビットブロック暗号は、疑似ランダム置換と考えることができるが、疑似ランダム置換は逆関数が存在する以上、バースデー攻撃への理論的耐性を持つ疑似ランダム関数とは成り得ないため、上記の結果をそのまま適用することはできない。
 疑似ランダム置換からバースデー攻撃への理論的耐性を持つ疑似ランダム関数への変換は、非特許文献3に開示されるSUM方式で可能であるが、疑似ランダム関数を1コール実現するのに疑似ランダム置換を少なくとも2コール必要とするため、5ないし6回Feistel型置換のラウンド関数としてSUM方式を用いると、全体としてはnビットブロック暗号を少なくとも10コールから12コール必要とすることとなる。
特開2002-108205号公報
M. Naor, O. Reingold, On the Construction of Pseudo-Random Permutations: Luby-Rackoff Revisited, Electronic Colloquium on Computational Complexity (ECCC) 4(5), 1997. J. Patarin, Security of Random Feistel Schemes with 5 or More Rounds, Advances in Cryptology - CRYPTO 2004, 24th Annual International Cryptology Conference, Santa Barbara, California, USA, August 15-19, 2004, Proceedings. Lecture Notes in Computer Science 3152 Springer 2004, pp. 106-122. S. Lucks, The Sum of PRPs Is a Secure PRF, Advances in Cryptology - EUROCRYPT 2000, International Conference on the Theory and Application of Cryptographic Techniques, Bruges, Belgium, May 14-18, 2000, Proceeding. Lecture Notes in Computer Science 1807 Springer 2000, pp. 470-484.
 このように、ブロック暗号を用いた倍ブロック長ブロック暗号構成方法としては、バースデー攻撃によって破られる方式か、理論的耐性を持つが非常に効率の悪い方式かのいずれかしか実現されていなかった。
 本発明は係る問題に鑑みてなされたものであり、現実的なブロック暗号を用いて、バースデー攻撃への理論的耐性を持つ倍ブロック長ブロック暗号を効率よく構成できる倍ブロック長ブロック暗号化装置、方法及びそのプログラム、並びに復号装置、方法及びそのプログラムを提供することを目的とする。
 上記目的を達成するために、本発明の倍ブロック長ブロック暗号化装置は、暗号化される2nビット平文を入力する平文入力手段と、前記2nビット平文へユニバーサルハッシュ関数ベースの置換を適用し、それぞれがnビットの第1及び第2の中間変数を生成する撹拌手段と、mビット調整値付きnビットブロック暗号の暗号化関数を用いて、前記第2の中間変数をmビットに短縮した結果を調整値として前記第1の中間変数を暗号化してnビットの第3の中間変数を生成する第1の調整値付き単位ブロック暗号化手段と、前記mビット調整値付きnビットブロック暗号の暗号化関数を用いて、前記第3の中間変数をmビットに短縮した結果を調整値として前記第2の中間変数を暗号化してnビットの第4の中間変数を得る第2の調整値付き単位ブロック暗号化手段と、前記第3及び第4の中間変数を連結して、ユニバーサルハッシュ関数ベースの逆撹拌を適用し、2nビット暗号文を生成する逆撹拌手段と、前記2nビット暗号文を出力する暗号文出力手段と、を有する。
 本発明の倍ブロック長ブロック復号装置は、復号される2nビット暗号文を入力する暗号文入力手段と、前記2nビット暗号文へユニバーサルハッシュ関数ベースの置換を適用し、それぞれがnビットの第1及び第2の中間変数を生成する撹拌手段と、mビット調整値付きnビットブロック暗号の復号関数を用いて、前記第1の中間変数をmビットに短縮した結果を調整値として前記第2の中間変数を暗号化してnビットの第3の中間変数を生成する第2の調整値付き単位ブロック復号手段と、前記mビット調整値付きnビットブロック暗号の復号関数を用いて、前記第3の中間変数をmビットに短縮した結果を調整値として前記第1の中間変数を暗号化してnビットの第4の中間変数を生成する第1の調整値付き単位ブロック復号手段と、前記第3及び第4の中間変数を連結してユニバーサルハッシュ関数ベースの逆置換を適用して2nビット平文を生成する逆撹拌手段と、前記2nビット平文を出力する平文出力手段と、を有する。
 本発明の倍ブロック長ブロック暗号化方法は、暗号化される2nビット平文を入力する平文入力処理と、前記2nビット平文へユニバーサルハッシュ関数ベースの置換を適用し、それぞれがnビットの第1及び第2の中間変数を生成する撹拌処理と、mビット調整値付きnビットブロック暗号の暗号化関数を用いて、前記第2の中間変数をmビットに短縮した結果を調整値として前記第1の中間変数を暗号化してnビットの第3の中間変数を生成する第1の調整値付き単位ブロック暗号化処理と、前記mビット調整値付きnビットブロック暗号の暗号化関数を用いて、前記第3の中間変数をmビットに短縮した結果を調整値として前記第2の中間変数を暗号化してnビットの第4の中間変数を得る第2の調整値付き単位ブロック暗号化処理と、前記第3及び第4の中間変数を連結して、ユニバーサルハッシュ関数ベースの逆撹拌を適用し、2nビット暗号文を生成する逆撹拌処理と、前記2nビット暗号文を出力する暗号文出力処理と、を有する倍ブロック長ブロック暗号化方法である。
 本発明の倍ブロック長ブロック復号方法は、復号される2nビット暗号文を入力する暗号文入力処理と、前記2nビット暗号文へユニバーサルハッシュ関数ベースの置換を適用し、それぞれがnビットの第1及び第2の中間変数を生成する撹拌処理と、mビット調整値付きnビットブロック暗号の復号関数を用いて、前記第1の中間変数をmビットに短縮した結果を調整値として前記第2の中間変数を暗号化してnビットの第3の中間変数を生成する第2の調整値付き単位ブロック復号処理と、前記mビット調整値付きnビットブロック暗号の復号関数を用いて、前記第3の中間変数をmビットに短縮した結果を調整値として前記第1の中間変数を暗号化してnビットの第4の中間変数を生成する第1の調整値付き単位ブロック復号処理と、前記第3及び第4の中間変数を連結してユニバーサルハッシュ関数ベースの逆置換を適用して2nビット平文を生成する逆撹拌処理と、前記2nビット平文を出力する平文出力処理と、を有する倍ブロック長ブロック復号方法である。
 本発明の倍ブロック長ブロック暗号化プログラムは、本発明の倍ブロック長ブロック暗号化方法をコンピュータに実行させる、プログラムである。
 本発明の倍ブロック長ブロック復号プログラムは、本発明の倍ブロック長ブロック復号方法をコンピュータに実行させる、プログラムである。
 本発明によれば、現実的なブロック暗号を用いて、バースデー攻撃への理論的耐性を持つ倍ブロック長ブロック暗号を効率よく構成できる倍ブロック長ブロック暗号化装置、方法及びそのプログラム、並びに復号装置、方法及びそのプログラムを提供できる。
本発明を好適に実施した第1の実施形態に係る倍ブロック長ブロック暗号化装置の構成を示す図である。 第1の実施形態に係る倍ブロック長ブロック暗号化装置における情報の流れを示す図である。 調整値のビット長よりもブロックサイズのビット長が大きい場合にFeistel型置換を用いて構成した撹拌部及び逆撹拌部を備えた倍ブロック長ブロック暗号化装置の要部を示す図である。 調整値のビット長がブロックサイズのビット長に等しい場合にFeistel型置換を用いて構成した撹拌部及び逆撹拌部を備えた倍ブロック長ブロック暗号化装置の要部を示す図である。 通常のブロック暗号による鍵更新を用いて実現した調整値付き単位ブロック暗号化部を示す図である。 第1の実施形態に係る倍ブロック長ブロック暗号化装置の動作の流れを示す図である。 本発明を好適に実施した第2の実施形態に係る倍ブロック長ブロック復号装置の構成を示す図である。 第2の実施形態に係る倍ブロック長ブロック復号装置における情報の流れを示す図である。 調整値のビット長よりもブロックサイズのビット長が大きい場合にFeistel型置換を用いて構成した撹拌部及び逆撹拌部を備えた倍ブロック長ブロック復号装置の要部を示す図である。 調整値のビット長がブロックサイズのビット長に等しい場合にFeistel型置換を用いて構成した撹拌部及び逆撹拌部を備えた倍ブロック長ブロック復号装置の要部を示す図である。 通常のブロック暗号による鍵更新を用いて実現した調整値付き単位ブロック復号部を示す図である。 第2の実施形態に係る倍ブロック長ブロック復号装置の動作の流れを示す図である。 Feistel型置換の4回の繰り返しによる倍ブロック長ブロック暗号化を示す図である。 Feistel型置換の4回の繰り返しによる倍ブロック長ブロック復号を示す図である。
 本発明は、バースデーバウンドを超えた安全性を保証する効率的な倍ブロック長ブロック暗号を効率よく実現するものである。部品として用いる(mビット調整値、nビットブロックの)調整値付きブロック暗号が理論的に安全で、攻撃者が用いる平文・暗号文対の数が2(n+m)/2よりも十分小さい場合に理論的安全性を持つため、バースデー攻撃に対する理論的耐性を持つからである。
 調整値付きブロック暗号自体にもバースデーバウンドを超えた安全性が求められるが、調整値の長さ(要求する安全性のレベルにより決まる)によっては通常のブロック暗号で実現可能であり、また、R. Schroeppel, Specification for the Hasty Pudding Cipher, http://www.cs.arizona.edu/~rcs/hpc/hpc-spec.に記載のHasty Pudding Cipherのように一から設計された調整値付きブロック暗号アルゴリズムも存在し、また、D. Goldenberg, S. Hohenberger, M. Liskov, E. C. Schwartz, H. Seyalioglu, On Tweaking Luby-Rackoff Blockciphers, Advances in Cryptology - ASIACRYPT 2007, 13th International Conference on the Theory and Application of Cryptology and Information Security, Kuching, Malaysia, December 2-6, 2007, Proceedings. Lecture Notes in Computer Science 4833 Springer 2007, pp. 342-356.(以下、文献A)に記載のように、通常のブロック暗号のアルゴリズムにおける中間変数へ調整値を加算することで調整値付きブロック暗号を作るアプローチも提案されており、これらの成果に基づいたアルゴリズムで実現することも可能である。
 さらに、最初と最後とには撹拌と呼ばれる処理が必要であるが、これはユニバーサルハッシュ関数で実現可能であり、実装環境に応じて最適化することで、ブロック関数よりも大幅に高速に動作させることが可能である。
 以下、本発明の好適な実施の形態について説明する。
 〔第1の実施形態〕
 図1に、本発明を好適に実施した第1の実施形態に係る倍ブロック長ブロック暗号化装置の構成を示す。倍ブロック長ブロック暗号化装置10は、平文入力部100、撹拌部101、第1の調整値付き単位ブロック暗号化部102、第2の調整値付き単位ブロック暗号化部103、逆撹拌部104、及び暗号文出力部105を有する。
 倍ブロック長ブロック暗号化装置10は、CPUとメモリとディスクとによって実現可能である。倍ブロック長ブロック暗号化装置10の各機能部は、ディスクに格納されたプログラムをCPU上で実行させることにより、ソフトウェア処理で実現可能である。
 次に、倍ブロック長ブロック暗号化装置10の各機能部について説明する。以下の説明においては、調整値付きブロック暗号のブロックサイズをnビット、調整値の長さをm(1≦m≦n)ビットとする。図2に、撹拌部101、第1の調整値付き単位ブロック暗号化部102、第2の調整値付き単位ブロック暗号化部103、及び逆撹拌部104における情報の流れを示す。
 平文入力部100は、暗号化の対象となる2nビットの平文を入力する。これは、キーボードなどの文字入力装置によって実現される。
 撹拌部101は、入力された2nビットの平文へシンプルな鍵付き置換mix1を適用する。鍵付き置換mix1は、任意の異なる二つの2nビット平文x,x'を、x=(xL,xR)、x'=(x'L,x'R)とし、対応するmix1の出力を(SE,TE)=mix1(xL,xR)及び(SE',TE')=mix1(x'L,x'R)とすると(各変数はそれぞれnビット)、どのような平文対であっても下記式(1)、(2)の条件を十分小さいe1,e2について満たすことが必要である。
Figure JPOXMLDOC01-appb-M000001
 ただし、cutはnビット入力から任意のmビットを取り出す関数である。例えば、最下位mビットを取り出すとすればよい。また、確率はmix1の鍵のランダムネスによって定義される。具体的には、mix1は2nビット空間上でのPairwise independent permutationと呼ばれる置換で実現可能である。これは、入力の2nビットxを有限体GF(22n)の要素と見なして、mul(x,K1)+K2を出力とするものである。ただし、mul(a,b)はGF(22n)上の要素a,bの乗算であり、K1,K2はmix1の鍵であり、K1はGF(22n)から零元を除いた集合上で一様に分布し、K2はGF(22n)全体で一様に分布するものである。
 また、別の実現方法として、Feistel型置換を用いる方法がある。これは、nビット入出力の鍵付き関数Hと、n-mビット入力n+mビット出力の鍵付き関数Gとを用いて、下記式(3)、(4)とすればよい。
Figure JPOXMLDOC01-appb-M000002
 ただし、H(xL)+xRの右n-mビットをwe1、左mビットをwe2とし、G(we1)の上位nビットをZE1、下位mビットをZE2とし、||はビットの連結を、+はビットごとの排他的論理和(XOR)演算を表すとする。
 ここで、鍵付き関数H、Gのそれぞれがe1-almostユニバーサルとe2-almostユニバーサルとであれば、式(1)及び式(2)の条件を満たせることとなる。ただし任意の鍵付き関数(tビット入力sビット出力)Fがe-almostユニバーサルであるとは、任意の異なるtビット入力ペアx,x'について、Pr[F(x)=F(x')]が高々eであることを言う。このような性質を持つ鍵付き関数はユニバーサルハッシュ関数と呼ばれ、有限体上の乗算で実現可能である。または、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にあるような具体的な実装環境に特化した関数を用いても良い。m<nの場合にFeistel型置換を用いて撹拌部101を実現した場合の構成を図3に示している。
 また、m=nの場合は、式(1)の条件は不要となるため、関数Hによる処理のみで十分であり、関数Gは不要となる。具体的にはTE=xR+H(xL),SE=xLとすればよい。この時の構成は図4に示す。
 第1の調整値付き単位ブロック暗号化部102は、撹拌部101の出力をnビットブロック二つに分けて、片方をパラメータとして他方を暗号化する。
 具体的には、撹拌部101の出力を(SE,TE)(共にnビット)とした場合、第1の調整値付き単位ブロック暗号化部102は、下記式(5)に示すような調整値付きブロック暗号(tweakable block cipher)の暗号化関数TWENC1を用いて、2nビットの(UE,TE)を出力する。K1はTWENC1の鍵である。
Figure JPOXMLDOC01-appb-M000003
 ここで、調整値付きブロック暗号とは、秘密鍵以外に調整値(tweak)と呼ばれるパラメータを用いて暗号化を行うブロック暗号のことを指す。調整値と鍵とが定まれば、平文と暗号文とが一対一に対応することが条件である。すなわち、調整値付きブロック暗号の暗号化関数TWENCと、対応する復号関数TWDECとが存在するとき、平文M、暗号文C、鍵K、調整値Tについて、常に下記式(6)を満たす。
Figure JPOXMLDOC01-appb-M000004
 式(6)を含めた調整値付きブロック暗号の形式的な定義と安全性要件とは、M. Liskov, R. 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.(以下、文献B)に記載されている。
 第1の調整値付き単位ブロック暗号化部102で用いる調整値付きブロック暗号は、式(5)が示すようにmビット調整値を持ち、nビットブロックサイズである。
 具体的な構成方法としては、既存のブロック暗号又はそのシリアル合成に対して、中間変数の一部へ調整値を加算する方式がある。例えば、Feistel暗号についてはこのようなアプローチの妥当性が文献Aに示されている。
 また、調整値に依存したブロック暗号の鍵更新を利用することで、既存の(調整値付きではない)nビットブロック暗号のアルゴリズムに手を加えることなく構成することも可能である。具体的には、nビットブロック、nビット鍵のブロック暗号の暗号化関数ENCを用いる。調整値T(mビット)、鍵K1で平文Mを暗号化するTWENC1を下記式(7)で定義する。
Figure JPOXMLDOC01-appb-M000005
 ここで、Kはブロック暗号のnビット鍵であり。padはn-mビットの適当なパディング(例えば全ゼロを付け加えるなど)である。この時のTWENCを図5に示す。
 このTWENCを用いた場合、上記式(5)の処理は、下記式(8)となる。
Figure JPOXMLDOC01-appb-M000006
 pad(cut(TE))は単にTEのあるn-mビットを固定する処理でも良い。ただし、この方式は安全性の理由からm<n/2が必要である。
 なお、文献Bに記載の方式や、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に記載のXEXモードなども、nビットブロック暗号を用いて調整値付きブロック暗号を実現することも可能であるが、その場合の安全性はバースデーバウンドを超えない。
 第2の調整値付き単位ブロック暗号化部103は、第1の調整値付き単位ブロック暗号化部102が出力する2nビットをnビットブロック二つに分けて、片方をパラメータとして他方を暗号化する。具体的には、第1の調整値付き単位ブロック暗号化部102の出力を(UE,TE)(ともにnビット)とした場合、第2の調整値付き単位ブロック暗号化部103は、下記式(9)に示すような調整値付きブロック暗号の暗号化関数TWENC2(mビット調整値、nビットブロック)を用いて、2nビットの(UE,VE)を出力する。K2はTWENC2の鍵である。
Figure JPOXMLDOC01-appb-M000007
 TWENC1と同様、TWENC2はnビットブロック、nビット鍵のブロック暗号の暗号化関数ENCを用いて図5に従い、下記式(10)として生成しても良い。ただしこの方式はTWENC1と同様、安全性の理由からm<n/2が必要である。
Figure JPOXMLDOC01-appb-M000008
 暗号化関数TWENC2は、第1の調整値付き単位ブロック暗号化部102が用いるTWENC1と異なるアルゴリズムでも良いし、同じアルゴリズムでも良い。後者の場合、任意のM,K,TについてTWENC2(K,T,M)=TWENC1(K,T,M)となる。さらに、K2は第1の調整値付き単位ブロック暗号化部102が用いる鍵K1と同じでも良いし、独立でも良い。
 逆撹拌部104は、第2の調整値付き単位ブロック暗号化部103の2nビット出力へシンプルな鍵付き置換invmix2を適用する。逆撹拌部104の入力を(UE,VE)とすると、出力はinvmix2(UE,VE)となる。invmix12は、その逆置換をmix2としたとき(すなわち、任意の2nビットxについてmix2(invmix2(x))=x、mix2が撹拌部101におけるmix1と同様の性質を持つとする。
 具体的には、任意の異なる二つの2nビット暗号文y, y'を、y=(yL,yR)、y'=(y'L,y'R)とし、対応するmix2の出力を(UE,VE)=mix2(yL,yR)及び(UE',VE')=mix2(y'L,y'R)とすると(各変数はそれぞれnビット)、どのような暗号文対であっても下記式(11)、(12)の条件を十分小さいg1,g2について満たすことが必要である。
Figure JPOXMLDOC01-appb-M000009
 ここで、mix2はmix1の処理を左右反転させたものでよく、invmix2はmix2を定めれば一意に定まる。
 具体的には、invmix2はmix1のPairwise independent permutationの逆置換とするか、mix1がFeistel型置換である場合、invmix2の入力が(UE,VE)、出力が(yL,yR)ならば、下記式(13)、(14)とすれば良い。
Figure JPOXMLDOC01-appb-M000010
 ただし、UEの左n-mビットをwe3、右mビットをwe4とし、G(we3)の上位nビットをZE3、下位mビットをZE4とする。ここで用いる鍵付き関数HとGの鍵は、それぞれ撹拌部101が用いるHとGの鍵と等しくてもよいし、独立でもよい。m<nの場合にFeistel型置換を用いて逆撹拌部104を実現した場合の構成は図3に示す。
 また、もしm=nの場合は、上記式(11)の条件は不要となるため、単に、yR=VE、yL=H(yR)+UEとして(yL,yR)を出力すればよい。このときの構成は図4に示す。
 暗号文出力部105は、逆撹拌部104から入力される暗号文(yL,yR)を出力する。暗号文出力部105は、コンピュータディスプレイやプリンタなどで実現可能である。
 具体的に通信やデータストレージにおける暗号化に使用する場合、本実施形態で得られる2nビットブロック暗号を何らかの暗号モードで使用することが考えられる。すなわち、暗号化の対象となるパケットなどの情報を2nビットごとに分割し、通信であればCBCモードや、T. Krovetz and P. Rogaway. The OCB Authenticated-Encryption Algorithm. Internet draft, March 2005.に記載のOCBモードが適用する。ハードディスクなどデータストレージの暗号化においては、文献Bに記載の方式を応用して適用可能である。これは、ハードディスクのセクタとセクタ中のバイトポジション(1セクタは通常512バイト)に応じてマスク値を足しつつECBモード暗号化を行うものである。
 この方法では、例えばn=128とし、本実施形態で得られる256ビットブロック暗号の暗号化関数をDENCとすると、まずセクタの内容を256ビット(32バイト)ごとに分割する。分割した結果を(m1,m2,...,m16)、ただしmiは32バイトとする。このとき、mi(i=1,...,16)をDENC(mi+mul(i,SecNum))と暗号化する。ただしSecNumはセクタ番号に応じた乱数(ブロック暗号でセクタ番号を暗号化することで生成される)であり、mul(i,SecNum)はiとSecNumを有限体GF(2256)の元と見たときの乗算を表す。
 図6に、本実施形態に係る倍ブロック長ブロック暗号化装置の動作の流れを示す。
 まず、平文入力部100を介して平文(xL,xR)を入力し(ステップS101)、撹拌部101によって中間変数(SE,TE)を求める(ステップS102)。次に、第1の調整値付き単位ブロック暗号化部102を用いて、TEのあるmビット部分を調整値として上記式(5)に従ってSEを暗号化し、UEを求める(ステップS103)。次に、第2の調整値付き単位ブロック暗号化部103を用いて、UEのあるmビット部分を調整値としてTEを暗号化しVEを求める(ステップS104)。続いて、得られた(UE,VE)を逆撹拌部104へ入力し、暗号文(yL,yR)を出力する(ステップS105)。
 〔第2の実施形態〕
 本発明を好適に実施した第2の実施形態について説明する。
 図7に、本実施形態に係る倍ブロック長ブロック復号装置の構成を示す。倍ブロック長ブロック復号装置20は、暗号文入力部200、撹拌部201、第2の調整値付き単位ブロック復号部202、第1の調整値付き単位ブロック復号部203、逆撹拌部204、及び平文出力部205を有する。
 倍ブロック長ブロック復号装置20は、CPUとメモリとディスクとによって実現可能である。倍ブロック長ブロック復号装置20の各機能部は、ディスクに格納されたプログラムをCPU上で実行させることにより、ソフトウェア処理で実現可能である。
 倍ブロック長ブロック復号装置20の各機能部について説明する。以下の説明においては、調整値付きブロック暗号のブロックサイズをnビット、調整値の長さをm(1≦m≦n)ビットとする。図8に、撹拌部201、第2の調整値付き単位ブロック復号部202、第1の調整値付き単位ブロック復号部203、及び逆撹拌部104における情報の流れを示す。
 暗号文入力部200は、復号の対象となる2nビットの暗号文を入力する。これは、キーボードなどの文字入力装置によって実現される。
 撹拌部201は、入力された2nビットの暗号文へ鍵付き置換mix2を適用する。mix2は、第1の実施形態における逆撹拌部104が用いる2nビット置換invmix2の逆置換である。具体的には、例えばinvmix2が式(13)及び式(14)で指定される、鍵付き関数H、Gを用いたFeistel型置換の場合、mix2は入力された暗号文(yL,yR)について、下記式(15)、(16)を求め、(UD,VD)を出力すればよい。
Figure JPOXMLDOC01-appb-M000011
 ただし、H(yR)+yLの左n-mビットをwd1、右mビットをwd2とし、G(wd1)の上位nビットをZD1、下位mビットをZD2とする。m<nの場合にFeistel型置換を用いて攪拌部201を実現した場合の構成を図9に示す。また、もしm=nの場合は、単に、VD=yR,UD =yL+H(yR)として(UD,VD)を出力すればよい。このときの構成を図10に示す。
 第2の調整値付き単位ブロック復号部202は、撹拌部201の出力をnビットブロック二つに分けて、片方をパラメータとして他方を暗号化する。具体的には、撹拌部201の出力を(UD,VD)(共にnビット)とした場合、第2の調整値付き単位ブロック復号部202は、第1の実施形態における第2の調整値付き単位ブロック暗号化部102が用いる調整値付きブロック暗号の暗号化関数TWENC2に対応した復号関数TWDEC2を用いて、(UD,VD)から下記式(17)によってTDを求め、(UD,TD)を出力する。TWDEC2の鍵K2は、上記式(9)におけるK2と同じ値である。
Figure JPOXMLDOC01-appb-M000012
 TWENC2がnビットブロック暗号の暗号化関数ENCを用いて上記式(10)のように行われる場合、TWDEC2はnビットブロック、nビット鍵のブロック暗号の暗号化関数ENCと復号関数DECとを用いて実現することも可能である。具体的には、nビット鍵Kとnビット暗号文Cとmビット調整値Tとに対して、下記式(18)と定義する。このときのTWDECを図11に示す。
Figure JPOXMLDOC01-appb-M000013
 このTWDEC2を用いた場合の上記式(17)の処理は、下記式(19)となる。
Figure JPOXMLDOC01-appb-M000014
 pad(cut(UD))は、単にUDのあるn-mビットを固定する処理でも良い。ただし、この方式はTWENCの場合と同様に、安全性の理由からm<n/2が必要である。
 第1の調整値付き単位ブロック復号部203は、第2の調整値付き単位ブロック復号部202が出力する2nビットをnビットブロック二つに分けて、片方をパラメータとして他方を復号する。
 具体的には、第2の調整値付き単位ブロック復号部202の出力を(UD,TD)(共にnビット)とした場合、第1の調整値付き単位ブロック復号部203は、第1の実施形態における第1の調整値付き単位ブロック暗号化部102が用いる調整値付きブロック暗号の暗号化関数TWENC1(mビット調整値、nビットブロック)に対応する復号関数TWDEC1を用いて(UD,TD)から、下記式(20)によって、2nビットの(SD,TD)を出力する。TWDEC1の鍵K1は上記式(5)におけるK1と同じ値である。
Figure JPOXMLDOC01-appb-M000015
 もしTWENC1がnビットブロック暗号の暗号化関数ENCを用いて上記式(8)のように行われる場合、TWDEC1はTWDEC2と同様に、nビットブロック暗号の暗号化関数ENCと復号関すDECとを用いて、下記式(21)のようになる。
Figure JPOXMLDOC01-appb-M000016
 復号関数TWDEC1は第2の調整値付き単位ブロック復号部201が用いるTWDEC2と異なるアルゴリズムでもよいし、同じアルゴリズムでもよい。後者の場合、任意のC,K,TについてTWDEC1(K,T,C)=TWDEC2(K,T,C)となる。さらに、K1は第2の調整値付き単位ブロック復号部202が用いる鍵K2と同じでもよいし、独立でもよい。
 逆撹拌部204は、第1の調整値付き単位ブロック復号部203の出力へ鍵付き置換invmix1を適用する。invmix1は、第1の実施形態における撹拌部101が用いる置換mix1の逆置換である。
 平文出力部205は、逆撹拌部204から与えられる平文(xL,xR)を出力する。平文出力部205は、コンピュータディスプレイやプリンタなどで実現可能である。
 図12に、本実施形態に係る倍ブロック長ブロック復号装置20の動作の流れを示す。
 まず、暗号文入力部200を介して暗号文(yL,yR)を入力し(ステップS201)、撹拌部201によって中間変数(UD,VD)を求める(ステップS202)。次に、第2の調整値付き単位ブロック復号部202を用いて、UDのあるmビット部分を調整値として上記式(17)に従ってVDを復号し、TDを求める(ステップS203)。続いて、第1の調整値付き単位ブロック復号部203を用いて、TDのあるmビット部分を調整値としてUDを復号し、SDを求める(ステップS204)。さらに、得られた(SD,TD)を逆撹拌部204へ入力し、平文(xL,xR)を出力する(ステップS205)。
 なお、上記各実施形態は本発明の好適な実施の一例であり、本発明はこれらに限定されることはない。
 例えば、本発明は、無線又は有線のデータ通信における認証と暗号化といった用途や、ストレージ上のデータの暗号化と改ざん防止といった用途にも適用可能である。
 このように、本発明は様々な変形が可能である。
 この出願は、2008年8月29日に出願された日本出願特願2008-221631を基礎として優先権の利益を主張するものであり、その開示の全てを引用によってここに取り込む。
 10  倍ブロック長ブロック暗号化装置
 20  倍ブロック長ブロック復号装置
 100  平文入力部
 101、201  撹拌部
 102  第1の調整値付き単位ブロック暗号化部
 103  第2の調整値付き単位ブロック暗号化部
 104、204  逆撹拌部
 105  暗号文出力部
 200  暗号文入力部
 202  第2の調整値付き単位ブロック復号部
 203  第1の調整値付き単位ブロック暗号化部
 205  平文出力部

Claims (12)

  1.  暗号化される2nビット平文を入力する平文入力手段と、
     前記2nビット平文へユニバーサルハッシュ関数ベースの置換を適用し、それぞれがnビットの第1及び第2の中間変数を生成する撹拌手段と、
     mビット調整値付きnビットブロック暗号の暗号化関数を用いて、前記第2の中間変数をmビットに短縮した結果を調整値として前記第1の中間変数を暗号化してnビットの第3の中間変数を生成する第1の調整値付き単位ブロック暗号化手段と、
     前記mビット調整値付きnビットブロック暗号の暗号化関数を用いて、前記第3の中間変数をmビットに短縮した結果を調整値として前記第2の中間変数を暗号化してnビットの第4の中間変数を得る第2の調整値付き単位ブロック暗号化手段と、
     前記第3及び第4の中間変数を連結して、ユニバーサルハッシュ関数ベースの逆撹拌を適用し、2nビット暗号文を生成する逆撹拌手段と、
     前記2nビット暗号文を出力する暗号文出力手段と、
     を有する倍ブロック長ブロック暗号化装置。
  2.  前記ユニバーサルハッシュ関数ベースの置換及び前記ユニバーサルハッシュ関数ベースの逆置換は、ユニバーサルハッシュ関数をラウンド関数としたFeistel型置換を、m=nの場合は1回、m<nの場合は2回繰り返すことで構成されることを特徴とする、請求項1記載の倍ブロック長ブロック暗号化装置。
  3.  前記暗号化関数は、平文のブロック長をnビットとし、鍵長をnビットとする暗号化関数であり、
     前記第1の調整値付き単位ブロック暗号化手段は、前記調整値をnビットになるようにパディングした値を平文として、該平文をnビット鍵で前記暗号化関数を用いて暗号化し、該暗号化した結果をnビット鍵とし、前記第1の中間変数を平文として、該平文を該nビット鍵で該暗号化関数を用いて暗号化することにより、前記第3の中間変数を生成し、
     前記第2の調整値付き単位ブロック暗号化手段は、前記調整値をnビットになるようにパディングした値を平文として、該平文をnビット鍵で前記暗号化関数を用いて暗号化し、該暗号化した結果をnビット鍵とし、前記第3の中間変数を平文として、該平文を該nビット鍵で該暗号化関数を用いて暗号化することにより、前記第4の中間変数を生成する、請求項1又は2記載の倍ブロック長ブロック暗号化装置。
  4.  前記第1及び第2の調整値付き単位ブロック暗号化手段が用いるmビット調整値付きnビットブロック暗号の暗号化関数は、nビットブロック暗号の暗号化処理における中間変数へ調整値を加算することで調整値付きの暗号化を行うための関数である、請求項1から3のいずれか1項記載の倍ブロック長ブロック暗号化装置。
  5.  復号される2nビット暗号文を入力する暗号文入力手段と、
     前記2nビット暗号文へユニバーサルハッシュ関数ベースの置換を適用し、それぞれがnビットの第1及び第2の中間変数を生成する撹拌手段と、
     mビット調整値付きnビットブロック暗号の復号関数を用いて、前記第1の中間変数をmビットに短縮した結果を調整値として前記第2の中間変数を暗号化してnビットの第3の中間変数を生成する第2の調整値付き単位ブロック復号手段と、
     前記mビット調整値付きnビットブロック暗号の復号関数を用いて、前記第3の中間変数をmビットに短縮した結果を調整値として前記第1の中間変数を暗号化してnビットの第4の中間変数を生成する第1の調整値付き単位ブロック復号手段と、
     前記第3及び第4の中間変数を連結してユニバーサルハッシュ関数ベースの逆置換を適用して2nビット平文を生成する逆撹拌手段と、
     前記2nビット平文を出力する平文出力手段と、
     を有する倍ブロック長ブロック復号装置。
  6.  ユニバーサルハッシュ関数ベースの置換及びユニバーサルハッシュ関数ベースの逆置換は、ユニバーサルハッシュ関数をラウンド関数としたFeistel型置換を、m=nの場合は1回、m<nの場合は2回繰り返すことで構成されることを特徴とする、請求項5記載の倍ブロック長ブロック復号装置。
  7.  前記復号関数は、暗号文のブロック長をnビットとし、鍵長をnビットとする復号関数であり、
     前記第1の調整値付き単位ブロック復号手段は、前記調整値をnビットになるようにパディングした値を暗号文として、該暗号文をnビット鍵で前記復号関数を用いて復号し、該復号した結果をnビット鍵とし、前記第1の中間変数を暗号文として、該暗号文を該nビット鍵で該復号関数を用いて復号することにより、前記第3の中間変数を生成し、
     前記第2の調整値付き単位ブロック復号手段は、前記調整値をnビットになるようにパディングした値を暗号文として、該暗号文をnビット鍵で前記復号関数を用いて復号し、該復号した結果をnビット鍵とし、前記第1の中間変数を暗号文として、該暗号文を該nビット鍵で該復号関数を用いて復号することにより、前記第4の中間変数を生成する、請求項5又は6に記載の倍ブロック長ブロック暗号化装置。
  8.  前記第1及び第2の調整値付き単位ブロック復号手段が用いるmビット調整値付きnビットブロック暗号の復号関数は、nビットブロック暗号Eの復号処理における中間変数へ調整値を加算することで調整値付きの復号を行うための関数である、請求項5から7の何れか1項記載の倍ブロック長ブロック復号装置。
  9.  暗号化される2nビット平文を入力する平文入力処理と、
     前記2nビット平文へユニバーサルハッシュ関数ベースの置換を適用し、それぞれがnビットの第1及び第2の中間変数を生成する撹拌処理と、
     mビット調整値付きnビットブロック暗号の暗号化関数を用いて、前記第2の中間変数をmビットに短縮した結果を調整値として前記第1の中間変数を暗号化してnビットの第3の中間変数を生成する第1の調整値付き単位ブロック暗号化処理と、
     前記mビット調整値付きnビットブロック暗号の暗号化関数を用いて、前記第3の中間変数をmビットに短縮した結果を調整値として前記第2の中間変数を暗号化してnビットの第4の中間変数を得る第2の調整値付き単位ブロック暗号化処理と、
     前記第3及び第4の中間変数を連結して、ユニバーサルハッシュ関数ベースの逆撹拌を適用し、2nビット暗号文を生成する逆撹拌処理と、
     前記2nビット暗号文を出力する暗号文出力処理と、
     を有する倍ブロック長ブロック暗号化方法。
  10.  復号される2nビット暗号文を入力する暗号文入力処理と、
     前記2nビット暗号文へユニバーサルハッシュ関数ベースの置換を適用し、それぞれがnビットの第1及び第2の中間変数を生成する撹拌処理と、
     mビット調整値付きnビットブロック暗号の復号関数を用いて、前記第1の中間変数をmビットに短縮した結果を調整値として前記第2の中間変数を暗号化してnビットの第3の中間変数を生成する第2の調整値付き単位ブロック復号処理と、
     前記mビット調整値付きnビットブロック暗号の復号関数を用いて、前記第3の中間変数をmビットに短縮した結果を調整値として前記第1の中間変数を暗号化してnビットの第4の中間変数を生成する第1の調整値付き単位ブロック復号処理と、
     前記第3及び第4の中間変数を連結してユニバーサルハッシュ関数ベースの逆置換を適用して2nビット平文を生成する逆撹拌処理と、
     前記2nビット平文を出力する平文出力処理と、
     を有する倍ブロック長ブロック復号方法。
  11.  請求項9記載の倍ブロック長ブロック暗号化方法をコンピュータに実行させる、倍ブロック長ブロック暗号化プログラム。
  12.  請求項10記載の倍ブロック長ブロック復号方法をコンピュータに実行させる、倍ブロック長ブロック復号プログラム。
PCT/JP2009/059437 2008-08-29 2009-05-22 倍ブロック長ブロック暗号化装置、復号装置、暗号化方法及び復号方法、及びそのプログラム WO2010024003A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010526596A JPWO2010024003A1 (ja) 2008-08-29 2009-05-22 倍ブロック長ブロック暗号化装置、復号装置、暗号化方法及び復号方法、及びそのプログラム
US13/060,580 US20110150225A1 (en) 2008-08-29 2009-05-22 Encryption devices for block having double block length, decryption devices, encryption method, decryption method, and programs thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008221631 2008-08-29
JP2008-221631 2008-08-29

Publications (1)

Publication Number Publication Date
WO2010024003A1 true WO2010024003A1 (ja) 2010-03-04

Family

ID=41721180

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/059437 WO2010024003A1 (ja) 2008-08-29 2009-05-22 倍ブロック長ブロック暗号化装置、復号装置、暗号化方法及び復号方法、及びそのプログラム

Country Status (3)

Country Link
US (1) US20110150225A1 (ja)
JP (1) JPWO2010024003A1 (ja)
WO (1) WO2010024003A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012105352A1 (ja) * 2011-01-31 2012-08-09 日本電気株式会社 ブロック暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
CN106463069A (zh) * 2014-05-14 2017-02-22 三菱电机株式会社 加密装置、存储系统、解密装置、加密方法、解密方法、加密程序以及解密程序

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102447476B1 (ko) 2015-08-20 2022-09-27 삼성전자주식회사 암복호 장치, 그것을 포함하는 저장 장치 및 그것의 암복호 방법
EP3391607B1 (en) * 2015-12-18 2019-12-04 Telefonaktiebolaget LM Ericsson (publ) Method of generating a pseudonym associated with a communication device, a network node, computer program and computer program product
CN111052670B (zh) * 2017-09-01 2024-02-09 三菱电机株式会社 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质
TW201919361A (zh) * 2017-11-09 2019-05-16 張英輝 以雜文加強保護之區塊加密及其解密之方法
CN108494554B (zh) * 2018-03-22 2020-10-13 武汉大学 一种基于双明文的数据对称加密方法
US20220006791A1 (en) * 2021-07-15 2022-01-06 Mohammed Mujib Alshahrani Secured Node Authentication and Access Control Model for IoT Smart City

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006064763A1 (ja) * 2004-12-17 2006-06-22 Nec Corporation 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及び共通鍵ブロック暗号化プログラム
WO2007069236A2 (en) * 2005-12-14 2007-06-21 Nds Limited Method and system for usage of block cipher encryption

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5949884A (en) * 1996-11-07 1999-09-07 Entrust Technologies, Ltd. Design principles of the shade cipher
US7200227B2 (en) * 2001-07-30 2007-04-03 Phillip Rogaway Method and apparatus for facilitating efficient authenticated encryption
US20020076044A1 (en) * 2001-11-16 2002-06-20 Paul Pires Method of and system for encrypting messages, generating encryption keys and producing secure session keys
US20040131182A1 (en) * 2002-09-03 2004-07-08 The Regents Of The University Of California Block cipher mode of operation for constructing a wide-blocksize block cipher from a conventional block cipher
US8379841B2 (en) * 2006-03-23 2013-02-19 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
JP5402632B2 (ja) * 2007-08-06 2014-01-29 日本電気株式会社 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006064763A1 (ja) * 2004-12-17 2006-06-22 Nec Corporation 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及び共通鍵ブロック暗号化プログラム
WO2007069236A2 (en) * 2005-12-14 2007-06-21 Nds Limited Method and system for usage of block cipher encryption

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012105352A1 (ja) * 2011-01-31 2012-08-09 日本電気株式会社 ブロック暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
JP5365750B2 (ja) * 2011-01-31 2013-12-11 日本電気株式会社 ブロック暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
US8891761B2 (en) 2011-01-31 2014-11-18 Nec Corporation Block encryption device, decryption device, encrypting method, decrypting method and program
CN106463069A (zh) * 2014-05-14 2017-02-22 三菱电机株式会社 加密装置、存储系统、解密装置、加密方法、解密方法、加密程序以及解密程序

Also Published As

Publication number Publication date
US20110150225A1 (en) 2011-06-23
JPWO2010024003A1 (ja) 2012-01-26

Similar Documents

Publication Publication Date Title
WO2010024003A1 (ja) 倍ブロック長ブロック暗号化装置、復号装置、暗号化方法及び復号方法、及びそのプログラム
KR101516574B1 (ko) 형태보존 암호화를 위한 가변길이 블록암호 장치 및 방법
WO2015015702A1 (ja) 認証暗号装置、認証暗号方法および認証暗号用プログラム
JP2010140026A (ja) 連鎖暗号モードのための方法および装置
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
WO2011105367A1 (ja) ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム
US8437470B2 (en) Method and system for block cipher encryption
JP5333450B2 (ja) 調整値付きブロック暗号化装置、方法及びプログラム並びに復号装置、方法及びプログラム
JP5365750B2 (ja) ブロック暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
Masoodi et al. Symmetric algorithms I
CN109714154B (zh) 一种代码体积困难白盒安全模型下的白盒密码算法的实现方法
Rosenthal A polynomial description of the Rijndael Advanced Encryption Standard
Sousi et al. Aes encryption: Study & evaluation
WO2012060685A1 (en) A method for linear transformation in substitution-permutation network symmetric-key block cipher
Djordjevic et al. Conventional Cryptography Fundamentals
Hallappanavar et al. Efficient implementation of AES by modifying S-Box
Salman New method for encryption using mixing advanced encryption standard and blowfish algorithms
Anand et al. Enhanced AES algorithm using 512 bit key implementation
Yan et al. Secret-Key Cryptography
Dash et al. A survey on symmetric text encryption techniques
Darwish Cryptographic Algorithms (AES, RSA)
Kangude et al. Advanced Encryption Standard
WO2009081975A1 (ja) 暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
Rayarikar et al. An Encryption Algorithm for Secure Data Transmission
Cook et al. Elastic aes

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09809658

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13060580

Country of ref document: US

Ref document number: 2010526596

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09809658

Country of ref document: EP

Kind code of ref document: A1