WO2020095382A1 - 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム - Google Patents
認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム Download PDFInfo
- Publication number
- WO2020095382A1 WO2020095382A1 PCT/JP2018/041338 JP2018041338W WO2020095382A1 WO 2020095382 A1 WO2020095382 A1 WO 2020095382A1 JP 2018041338 W JP2018041338 W JP 2018041338W WO 2020095382 A1 WO2020095382 A1 WO 2020095382A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- bits
- plaintext
- encryption
- block
- authentication
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3234—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3242—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Definitions
- the present invention relates to an authentication encryption device, an authentication decryption device, an authentication encryption method, an authentication decryption method, an authentication encryption program, and an authentication decryption program, and in particular, an authentication encryption system to which an authentication encryption method using common key encryption is applied.
- the present invention relates to an encryption device, an authentication decryption device, an authentication encryption method, an authentication decryption method, an authentication encryption program, and an authentication decryption program.
- Authenticated Encryption is an authentication tag used for encryption of plaintext messages (hereinafter simply referred to as plaintext) and tampering detection (hereinafter simply referred to as tag by using a secret key shared in advance). (Also called)) is a technique that executes the calculation at the same time.
- the following shows an example of basic input / output in AE.
- Alice and Bob are considered as two parties who share the secret key K.
- the AE encryption function is AEnc and the AE decryption function is ADec.
- the plaintext to be encrypted is M.
- N a variable N called an initial vector.
- Bob receives the information (N ', C', T '). Next, Bob calculates ADec_K (N ', C', T ') as the decoding process. If tampering is performed during communication and (N ', C', T ') ⁇ (N, C, T), ADec_K (N', C ', T') is tampered with. It gives an error message indicating that it was done.
- AEs there are AEs that are realized by combining parts with input / output lengths of a specific length. Specifically, the components to be combined output data of the same bit length as the input data, when data of a specific bit length is input.
- primitives in authentication cryptography.
- the input / output length related to the primitive is n bits.
- primitives include block ciphers, keyless cryptographic permutations, and Tweakable block ciphers.
- n-bit plaintext M is input and n-bit ciphertext C is output.
- the Tweakable block cipher outputs the n-bit ciphertext C, by inputting the k-bit secret key K, the tw-bit Tweak (adjustment value) Tw, and the n-bit plaintext M.
- the above Tweakable block cipher is also realized by block cipher E and keyless cryptographic replacement P.
- the key L having a key L different from the secret key K of the block cipher E and an input / output length of n bits is also used, and the Tweakable block is used.
- the cryptographic process is represented by the following formula.
- the key for the entire encryption process is only one key of the block cipher.
- the XEX * mode is a general term for the XEX mode and XE mode of the Tweakable block cipher.
- XEX (K, Tw, M) E (K, mult (2 i , E (K, N)) + M) + mult (2 i , E (K, N)) ...
- XE (K, Tw, M) E (K, mult (2 i , E (K, N)) + M) ⁇ ⁇ ⁇ Equation (3)
- mult ( ⁇ , ⁇ ) in the expressions (2) to (3) represents multiplication of two elements on the Galois field GF (2 n ).
- 2 i in Expressions (2) to (3) represents 2 i to the Galois field GF (2 n ).
- Non-Patent Document 5 When the TEM mode described in Non-Patent Document 5 is used, a keyless cryptographic replacement P and a keyed function H with a secret key K and an input / output length of n bits are used, The processing by Tweakable block cipher is expressed by the following formula.
- the process represented by the formula (4) is a secure Tweakable block cipher. To achieve.
- General-purpose binding is a method that combines a secure encryption method and a secure tampering detection method.
- An example of general-purpose binding is GCM, which is a combination of CTR mode, which is an encryption method, and GHASH, which is a tampering detection method.
- rate 1/2 method a method in which the number of times primitives are used per block of plaintext is asymptotically twice, including the method generated by general-purpose binding, is called the rate 1/2 method.
- the rate 1/2 methods include, for example, the above-mentioned GCM and CCM.
- a method in which the number of times the primitive is used per block of plaintext is asymptotically once is called a rate 1 method.
- the rate 1 system include OCB, which is the authentication encryption system described in Patent Documents 1 to 4, and OTR, which is the authentication encryption system described in Patent Document 5.
- OCB is a rate 1 authentication encryption method configured using the Tweakable block cipher in XEX * mode.
- the XEX * mode Tweakable block cipher is composed of the XEX mode Tweakable block cipher and the XE mode Tweakable block cipher.
- the processing by Tweakable block cipher in XEX * mode uses block cipher E and is expressed by the following formula.
- XEX (K, Tw, M) E (K, ⁇ (K, Tw) + M) + ⁇ (K, Tw) ⁇ ⁇ ⁇ Equation (5)
- XE (K, Tw, M) E (K, ⁇ (K, Tw) + M) ⁇ ⁇ ⁇ Equation (6)
- the mask value ⁇ (K, Tw) in Equations (5) to (6) is a value uniquely determined from TweakTw and the secret key K.
- the mask value may be calculated using multiplication on the Galois field.
- the plaintext is encrypted by using the Tweakable block cipher in XEX * mode like in ECB mode.
- the OCB divides the plaintext into n bits.
- the OCB then takes the bitwise exclusive-or of the delimited n-bit plaintexts.
- the n-bit value obtained by taking the exclusive OR for each bit is called the checksum.
- the checksum SUM is calculated as follows. To be done.
- OCB encrypts the obtained checksum with Tweakable block cipher in XE mode.
- the encrypted checksum becomes a tag.
- ⁇ OTR is a rate 1 authentication encryption method that is configured using the Tweakable block cipher in XE mode. Similar to OCB, OTR calculates a checksum as a tampering detection method and generates a tag by encrypting the calculated checksum.
- OTR obtains the checksum by taking the exclusive OR of only the even-numbered plaintext blocks bit by bit. ..
- the checksum SUM is It is calculated as follows.
- NIST Special Publication 800-38C Recommendation for Block Cipher Modes of Operation The CCM Mode for Authentication and and Confidentialit NIST Special Publication 800-38D Recommendation for Block Cipher Modes of 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,, A USA, Notes in Computer Science 2442 Springer 2002, pp. 31-46.
- the authentication encryption method that calculates the checksum of n bits, such as OCB and OTR, has a problem that the state size becomes large.
- the state size means a memory size required to be held for each processing unit.
- the state size is one evaluation standard of the encryption method.
- OCB For example, in the case of OCB, consider one block encryption as a processing unit.
- One-block encryption in OCB is expressed by the following formula.
- K in Expression (9) is the secret key of the block cipher E.
- M [i] is the i-th plaintext block.
- C [i] is the i-th ciphertext block.
- Tw is Tweak (adjustment value).
- the mask value ⁇ (K, Tw) is a value uniquely determined from Tweak Tw and the secret key K.
- the OCB state size is 3n bits.
- the 3n-bit breakdown consists of n bits of memory for encryption of one plaintext block, n bits of memory that holds the mask value ⁇ (K, Tw), and the calculated checksum value. It is n bits of memory to be used.
- the allowed state size is proportional to the circuit size. To do. Therefore, the size of the state size is an important evaluation criterion in implementing the encryption method, particularly in implementing the encryption method on the hardware.
- the state size of the authentication encryption method that calculates the checksum has the property that it increases by n bits, which is the number of bits of the checksum, compared to the state size of the encryption method that only performs encryption processing and decryption processing. ..
- the state size required for checksum calculation occupies 1/3 of the total state size.
- the larger the state size the higher the security of the encryption system, and therefore the implementer of the authentication encryption system cannot easily reduce the state size.
- the relationship between the state size and the security of cryptography usually corresponds to the trade-off relationship. That is, if the state size is easily cut, the asymptotic safety is reduced.
- the asymptotic safety corresponds to the safety order value obtained when n is infinitely diverged.
- the present invention solves the above-mentioned problems, and can reduce the state size increased by the calculation of the checksum without decreasing the asymptotic security, the authentication encryption device, the authentication decryption device, the authentication encryption method, and the authentication.
- An object is to provide a decryption method, an authentication encryption program, and an authentication decryption program.
- the authentication encryption device provides a plaintext block having a predetermined number of bits forming a plaintext to be encrypted to an encryption function that outputs data having a predetermined number of bits when data having a predetermined number of bits is input.
- An encryption unit that encrypts a plaintext block by adding a mask value that is uniquely determined from a secret key and an adjustment value that includes an initial vector that does not overlap the past value, and a plurality of plaintexts that form a plaintext.
- a calculating unit for calculating, as a checksum, the exclusive OR of the corresponding bits in the first bit string having the number of bits less than the predetermined number of bits of each block.
- the authentication decryption device outputs a ciphertext block having a predetermined number of bits forming a ciphertext to be decrypted to a decryption function that outputs data having a predetermined number of bits when data having a predetermined number of bits is input.
- the decryption means for decrypting the ciphertext block by adding the mask value uniquely determined from the secret key and the adjustment value including the initial vector that does not overlap with the value of and the plaintext from which the ciphertext is decrypted are configured.
- a calculation unit that calculates, as a checksum, the exclusive OR of the corresponding bits in the first bit string having a bit number less than the predetermined bit number of each of the plurality of plaintext blocks.
- a plaintext block having a predetermined number of bits forming a plaintext to be encrypted is added to an encryption function that outputs data having a predetermined number of bits when data having a predetermined number of bits is input.
- a plaintext block is encrypted by inputting it after adding a mask value that is uniquely determined from the adjustment value including the initial vector that does not overlap with the past value and the secret key, and among the plaintext blocks that make up the plaintext, It is characterized in that an exclusive OR of corresponding bits in the first bit string having a bit number less than a predetermined bit number is calculated as a checksum.
- a decryption function that outputs a predetermined number of bits of data outputs a ciphertext block of a predetermined number of bits forming a ciphertext to be decrypted in the past.
- the ciphertext block is decrypted by adding a mask value that is uniquely determined from the secret key and the adjustment value that includes the initial vector that does not overlap with the value of It is characterized in that an exclusive OR of corresponding bits in the first bit string having a bit number less than a predetermined bit number in each plaintext block is calculated as a checksum.
- the authentication encryption program allows an encryption function, which outputs a predetermined number of bits of data when a predetermined number of bits of data is input to a computer, to a predetermined number of bits forming a plaintext to be encrypted.
- An encryption process that encrypts a plaintext block by inputting it after adding a mask value that is uniquely determined from an adjustment value that includes an initial vector that does not overlap the past value and a secret key, and configures the plaintext It is characterized in that a calculation process of calculating an exclusive OR of corresponding bits in the first bit string having a bit number less than a predetermined bit number of each of the plurality of plaintext blocks as a checksum is executed.
- the authentication decryption program provides a decryption function that outputs a data having a predetermined number of bits when a data having a predetermined number of bits is input to a computer, to a ciphertext having a predetermined number of bits forming a ciphertext to be decrypted.
- Decryption process to decrypt the ciphertext block by adding the mask value that is uniquely determined from the adjustment value including the initial vector that does not overlap the past value and the secret key, and the ciphertext is decrypted It is characterized in that a calculation process of calculating, as a checksum, an exclusive OR of corresponding bits in a first bit string having a bit number less than a predetermined bit number among a plurality of plaintext blocks forming a plaintext is characterized.
- FIG. 6 is a flowchart showing an operation of authentication encryption processing by the authentication encryption device 100 according to the first embodiment. It is a block diagram which shows the structural example of 2nd Embodiment of the authentication decoding apparatus by this invention.
- 11 is a flowchart showing the operation of the authentication decryption processing by the authentication decryption device 200 of the second exemplary embodiment.
- 9 is an explanatory diagram showing a specific example of authentication encryption processing by the authentication encryption device 100.
- FIG. FIG. 11 is an explanatory diagram showing another specific example of the authentication encryption processing by the authentication encryption device 100. It is explanatory drawing which shows the hardware structural example of the authentication encryption device by this invention. It is explanatory drawing which shows the hardware structural example of the authentication decoding apparatus by this invention.
- It is a block diagram which shows the outline of the authentication encryption device by this invention. It is a block diagram which shows the outline of the authentication decoding device by this invention.
- FIG. 1 is a block diagram showing a configuration example of a first embodiment of an authentication encryption device according to the present invention.
- the authentication encryption device 100 of the present embodiment calculates a checksum of s bits with s ⁇ n in order to solve the above problem.
- the authentication encryption device 100 has a plaintext input means 110, an initial vector generation means 120, a first encryption means 130, a first calculation means 140, and a second encryption. Means 150 and ciphertext output means 160 are provided. The authentication encryption device 100 of the present embodiment calculates a checksum to generate a tag.
- the plaintext input means 110 has a function of inputting the plaintext M to be encrypted.
- the initial vector generation means 120 has a function of generating an initial vector different from the value generated by itself in the past. For example, the initial vector generating means 120 first outputs an arbitrary fixed value and stores the output value. When outputting the initial vector after the second time, the initial vector generation means 120 may output a value obtained by adding 1 to the value of the initial vector stored immediately before and stored.
- the data length of the initial vector N is n bits. If the initial vector N is shorter than n bits, the initial vector generation means 120 appropriately pads the initial vector N.
- the first encryption unit 130 has a function of encrypting the plaintext M output by the plaintext input unit 110 using the initial vector N output by the initial vector generation unit 120 using Tweakable block cipher.
- the first encryption unit 130 adds a mask value uniquely determined from Tweak and a secret key to the input or the input and the output of the primitive that inputs and outputs n-bit data.
- the first encryption means 130 outputs the encrypted result as a ciphertext C.
- the first encryption means 130 can realize a Tweakable block cipher even by using a block cipher E for inputting / outputting normal n-bit data or a cryptographic replacement P without a key.
- the plaintext M is composed of m n-bit plaintext blocks M [1], M [2], ..., M [m]
- the first encryption unit 130 is a plaintext with a Tweakable block cipher in XEX mode.
- the first encryption means 130 can realize the Tweakable block cipher also using the LRW described in Non-Patent Document 3 or the TEM mode described in Non-Patent Document 5.
- the first calculation means 140 has a function of obtaining a checksum SUM of s bits with s ⁇ n, by simple calculation, based on the partial sequence of the plaintext M output by the plaintext input means 110.
- the first calculating means 140 outputs the exclusive OR (XOR) for each corresponding bit (the bit at the same position of m plaintext blocks) of the upper s bits of all plaintext blocks as a checksum SUM. Good. If the final plaintext block is less than s bits, the first calculation means 140 may perform an appropriate logical padding on the final plaintext block and then perform an exclusive OR for each bit.
- XOR exclusive OR
- the first calculation means 140 may calculate the checksum SUM by using arithmetic addition, a cyclic code (CRC: Cyclic Redundancy Check) or the like instead of the exclusive OR.
- CRC Cyclic Redundancy Check
- the second encryption unit 150 converts the s-bit checksum SUM output by the first calculation unit 140 into an n-bit value using an appropriate padding function.
- the padding function for example, the part of the checksum SUM that is less than n bits may be filled with 100 ... 0.
- the second encryption means 150 encrypts the converted checksum SUM with Tweakable block cipher using the initial vector N output from the initial vector generation means 120. Specifically, the second encryption means 150 adds a mask value uniquely determined from the Tweak and the secret key to the input or the input and the output of the primitive that inputs and outputs the n-bit data.
- the converted t-bit value is the generated tag T.
- the shortening function is, for example, a function that outputs only the value of the upper t bits with respect to the input.
- the second encryption means 150 is a first encryption such as LRW described in Non-Patent Document 3, XEX * mode described in Non-Patent Document 4, or TEM mode described in Non-Patent Document 5.
- a construction method similar to the construction method of the Tweakable block cipher used by the means 130 may be used.
- the second encryption means 150 is required to use a Tweak different from the Tweak used in the first encryption means 130 in the Tweakable block cipher.
- Tweak can be used to execute encryption with Tweakable block cipher.
- Tweakable block cipher For example, the above calculation example of the tag T is expressed as follows.
- SUM_n SUM
- Tag_n E (K, mult (2 (m + 1) , E (K, N)) + SUM_n) ⁇ ⁇ ⁇ Equation (12)
- T msb_t (Tag_n) ⁇ ⁇ ⁇ Equation (13)
- the ciphertext output means 160 has a function of connecting and outputting the ciphertext C output by the first encryption means 130 and the tag T output by the second encryption means 150.
- FIG. 2 is a flowchart showing the operation of the authentication encryption processing by the authentication encryption device 100 of the first embodiment.
- the plaintext M to be encrypted is input to the plaintext input means 110 (step S101).
- the plaintext input unit 110 inputs the input plaintext M to the first encryption unit 130 and the second encryption unit 150.
- the initial vector generation means 120 generates an initial vector N which has a value different from the value generated in the past (step S102).
- the initial vector generation means 120 inputs the generated initial vector N to the first encryption means 130 and the second encryption means 150.
- the first encryption unit 130 uses the initial vector N input from the initial vector generation unit 120 to encrypt the plaintext M input from the plaintext input unit 110 by Tweakable block cipher (step S103).
- the first encryption means 130 inputs the ciphertext C obtained by the encryption to the ciphertext output means 160.
- the first calculation means 140 obtains a checksum SUM of s bits with s ⁇ n, by simple calculation, based on the partial sequence of the plaintext M input from the plaintext input means 110 (step S104).
- the first calculation means 140 inputs the obtained checksum SUM into the second encryption means 150.
- the second encryption means 150 converts the s-bit checksum SUM input from the first calculation means 140 into an n-bit value using an appropriate padding function.
- the second encryption means 150 uses the initial vector N input from the initial vector generation means 120 to encrypt the converted checksum SUM by Tweakable block cipher.
- the second encryption means 150 inputs the generated tag T into the ciphertext output means 160.
- the ciphertext output means 160 connects the ciphertext C input from the first encryption means 130 and the tag T input from the second encryption means 150, and outputs the concatenated text (step S106). After outputting, the authentication encryption device 100 ends the authentication encryption process.
- the authentication encryption device 100 of the present embodiment can reduce the memory size required for the checksum calculation in the encryption process in the authentication encryption from n bits to s bits without asymptotically lowering the security. Therefore, the authentication encryption device 100 can reduce the state size by (ns) bits while maintaining the security.
- the relationship between state size and cryptographic security corresponds to a trade-off relationship. That is, if the state size is reduced, the security of the cipher is reduced.
- FIG. 3 is a block diagram showing a configuration example of the second embodiment of the authentication decryption device according to the present invention.
- the authentication / decryption device 200 of the present exemplary embodiment includes a ciphertext input unit 210, an initial vector input unit 220, a decryption unit 230, a second calculation unit 240, and a third encryption unit 250.
- a tag inspection unit 260 and a plaintext output unit 270 are provided.
- the ciphertext input unit 210 has a function of inputting the concatenated ciphertext C and the tag T to be decrypted. Further, the initial vector input means 220 has a function of inputting an initial vector N to be used for decoding.
- the decryption unit 230 has a function of decrypting the ciphertext C output by the ciphertext input unit 210 using the initial vector N output by the initial vector input unit 220, using Tweakable block cipher.
- the decryption unit 230 adds a mask value that is uniquely determined from the Tweak and the secret key to the input or the input and the output of the primitive that inputs and outputs the n-bit data.
- the decryption means 230 outputs the decrypted result as a plaintext M.
- the decryption means 230 acts as an inverse function of the first encryption means 130 of the first embodiment.
- M [i] D (K, mult (2 i , E (K, N)) + C [i]) + mult (2 i , E (K, N)) ⁇ ⁇ ⁇ Equation (14)
- Expression (14) represents an exclusive OR for each bit.
- mult ( ⁇ , ⁇ ) in the equation (14) represents multiplication of two elements on the Galois field GF (2 n ).
- 2 i in the equation (14) represents 2 i on the Galois field GF (2 n ).
- the second calculation means 240 has a function of obtaining a s-bit checksum SUM with s ⁇ n, by a simple calculation, based on the partial sequence of the plaintext M output by the decoding means 230.
- the function of the second calculating means 240 is the same as the function of the first calculating means 140 of the first embodiment.
- the third encryption means 250 converts the s-bit checksum SUM output by the second calculation means 240 into an n-bit value using an appropriate padding function.
- the third encryption means 250 encrypts the converted checksum SUM by Tweakable block cipher using the initial vector N output from the initial vector input means 220. Specifically, the third encryption means 250 adds a mask value uniquely determined by Tweak and a secret key to the input or the input and the output of the primitive that inputs and outputs the n-bit data.
- the converted t-bit value is the generated tag T '. That is, the function of the third encryption unit 250 is the same as the function of the second encryption unit 150 of the first embodiment.
- the tag checking means 260 has a function of comparing the tag T output by the ciphertext input means 210 with the tag T ′ output by the third encryption means 250. When the compared tag T and tag T ′ match, the tag checking unit 260 outputs the verification result B indicating “ACK”.
- the tag checking unit 260 If the compared tag T and tag T ′ do not match, the tag checking unit 260 outputs the verification result B indicating “NCK”. "ACK” means “accept” and “NCK” means “not accept”.
- the plaintext output unit 270 receives the plaintext M output by the decryption unit 230 and the verification result B output by the tag check unit 260.
- the plaintext output unit 270 outputs the plaintext M.
- the plaintext output unit 270 outputs the error message ⁇ .
- FIG. 4 is a flowchart showing the operation of the authentication decryption processing by the authentication decryption apparatus 200 of the second embodiment.
- the ciphertext C to be decrypted and the tag T are input to the ciphertext input unit 210 (step S201).
- the ciphertext input means 210 inputs the inputted ciphertext C into the decryption means 230. Further, the ciphertext input unit 210 inputs the input tag T to the tag inspection unit 260.
- the initial vector N to be used for decoding is input to the initial vector input means 220 (step S202).
- the initial vector input means 220 inputs the input initial vector N to the decryption means 230 and the third encryption means 250.
- the decryption means 230 decrypts the ciphertext C input from the ciphertext input means 210 with the Tweakable block cipher using the initial vector N input from the initial vector input means 220 (step S203).
- the decryption unit 230 inputs the decrypted plaintext M to the second calculation unit 240 and the plaintext output unit 270.
- the second calculating means 240 obtains a checksum SUM of s bits with s ⁇ n by simple calculation based on the partial sequence of the plaintext M input from the decoding means 230 (step S204).
- the second calculation means 240 inputs the obtained checksum SUM into the third encryption means 250.
- the third encryption means 250 converts the s-bit checksum SUM input from the second calculation means 240 into an n-bit value using an appropriate padding function.
- the third encryption means 250 uses the initial vector N output from the initial vector input means 220 to encrypt the converted checksum SUM by Tweakable block cipher.
- the third encryption means 250 inputs the generated tag T ′ to the tag checking means 260.
- the tag checking means 260 compares the tag T input from the ciphertext input means 210 with the tag T ′ input from the third encryption means 250. When the compared tags T and T ′ match each other, the tag checking unit 260 inputs the verification result B indicating “ACK” to the plaintext output unit 270. If the compared tags T and T'do not match, the tag checking unit 260 inputs the verification result B indicating "NCK" to the plaintext output unit 270 (step S206).
- the plaintext output unit 270 outputs the plaintext M input from the decryption unit 230 when the verification result B input from the tag checking unit 260 indicates “ACK”. Further, the plaintext output means 270 outputs an error message ⁇ when the verification result B input from the tag inspection means 260 indicates "NCK" (step S207). After outputting the plaintext M or the error message ⁇ , the authentication decryption apparatus 200 ends the authentication decryption process.
- the authentication decryption apparatus 200 of the present embodiment can reduce the memory size required for the checksum calculation in the decryption processing of the authentication encryption from n bits to s bits without asymptotically lowering the security. Therefore, the authentication decryption device 200 can reduce the state size by (ns) bits while maintaining security.
- the authentication decryption device 200 has the same effect as that of the authentication encryption device 100 of the first embodiment in the decryption process using the authentication encryption. Further, the reason why the authentication decryption device 200 has the above effect is the same as the reason why the authentication encryption device 100 has the effect.
- the authentication encryption device 100 and the authentication decryption device 200 in this example are applicable to the OCB described in Patent Documents 1 to 4 and the OPP described in Non-Patent Document 6.
- the specific functions of the respective units constituting the authentication encryption device 100 in this example will be described.
- the first encryption unit 130 of the authentication encryption device 100 uses the initial vector N output from the initial vector generation unit 120 of the authentication encryption device 100 to encrypt the plaintext M with the Tweakable block cipher TE.
- the first encryption unit 130 uses the Tweak and the secret key as the input or the input and the output of the block cipher for inputting and outputting the n-bit data, or the input or the the input and the output of the keyless cryptographic replacement.
- the mask value uniquely determined from is added.
- the first encryption means 130 encrypts the plaintext block M [m] as follows.
- “+” in Expressions (15) to (16) represents an exclusive OR for each bit.
- mult ( ⁇ , ⁇ ) in Expressions (15) to (16) represents multiplication of two elements on the Galois field GF (2 n ).
- 2 i in Expression (15) represents 2 i raised to the Galois field GF (2 n ).
- “0 n ” in Expression (16) represents a bit string in which n 0s are arranged.
- msb_n ′ ( ⁇ ) in Expression (16) is a function that outputs the value of the upper n ′ bits with respect to the input.
- the first calculation means 140 of the authentication encryption apparatus 100 selects the s-bit of s ⁇ n in the plaintext block M [i] of the plaintext M output from the plaintext input means 110 of the authentication encryption apparatus 100. Add the subsequence M s [i].
- the first calculating means 140 uses the bitwise exclusive OR of M s [1], M s [2], ..., M s [m-1] as the checksum SUM. Next, the first calculating means 140 outputs the s-bit checksum SUM and the final plaintext block M [m].
- the first calculating means 140 may extract the value of the upper s bits of M [i].
- the first calculator 140 calculates the checksum SUM as follows.
- the second encryption means 150 of the authentication encryption apparatus 100 converts the s-bit checksum SUM output by the first calculation means 140 of the authentication encryption apparatus 100 into an n-bit value using an appropriate padding function. Convert.
- the second encryption unit 150 outputs the converted checksum SUM to the initial vector N output from the initial vector generation unit 120 and the n′-bit plaintext block M [m output from the first calculation unit 140. ] And are used to encrypt with Tweakable block cipher.
- the encryption by the Tweakable block cipher in the XEX * mode by the second encryption means 150 is expressed by the following equation.
- the decryption means 230 of the authentication decryption apparatus 200 acts as an inverse function of the first encryption means 130 of the authentication encryption apparatus 100. That is, the decryption unit 230 decrypts the ciphertext C with the Tweakable block cipher TE using the initial vector N output from the initial vector input unit 220 of the authentication decryption device 200. Specifically, the decryption unit 230 adds a mask value that is uniquely determined from the Tweak and the secret key to the input or the input and the output of the primitive that inputs and outputs the n-bit data.
- the decryption unit 230 uses the block cipher E having the secret key K and the block cipher E.
- M [i] D (K, mult (2 i , E (K, N)) + C [i]) + mult (2 i , E (K, N)) ⁇ ⁇ ⁇ Equation (18)
- the decryption means 230 can decrypt the ciphertext block C [m] as follows.
- the second calculation means 240 of the authentication decryption device 200 among the plaintext blocks M [i] of the plaintext M output by the decryption means 230 of the authentication decryption device 200, is an s-bit subsequence M of arbitrary s ⁇ n. Add s [i].
- the second calculation means 240 sets the exclusive OR of M s [1], M s [2], ..., M s [m-1] as the checksum SUM. Then, the second calculating means 240 outputs the s-bit checksum SUM and the final plaintext block M [m]. That is, the process executed by the second calculating unit 240 is the same as the process executed by the first calculating unit 140 of the authentication encryption device 100.
- the third encryption means 250 of the authentication decryption device 200 converts the s-bit checksum SUM output by the second calculation means 240 of the authentication decryption device 200 into an n-bit value using an appropriate padding function. ..
- the third encryption unit 250 outputs the converted checksum SUM to the initial vector N output from the initial vector input unit 220 and the n′-bit plaintext block M [m output from the second calculation unit 240. ] And are used to encrypt with Tweakable block cipher.
- FIG. 5 is an explanatory diagram showing a specific example of the authentication encryption processing by the authentication encryption device 100.
- the first encryption means 130 of the authentication encryption device 100 performs the encryption processing shown in FIG. That is, the first encryption unit 130 forms (m-1) n plaintext blocks M [1], M [2], ..., M [m-1], which form the plaintext M, and n
- the first encryption unit 130 uses the fixed value Fix of n bits and the secret key K, ⁇ (K, (N, m)) for the plaintext block M [m]. It is used and encrypted as follows.
- the decryption process executed by the decryption unit 230 of the authentication decryption apparatus 200 for the ciphertext C output by the ciphertext input unit 210 is the reverse process of the encryption process shown in FIG.
- the first calculation means 140 of the authentication encryption device 100 performs the checksum calculation process shown in FIG. That is, the first calculation means 140, among the plaintext blocks M [i] of the plaintext M output by the plaintext input means 110 of the authentication encryption device 100, an s-bit partial sequence M s [1 of arbitrary s ⁇ n. ], M s [2], ..., M s [m-1] are XORed bit by bit. For example, the first calculation means 140 calculates the equation (17).
- the first calculation means 140 uses a bitwise exclusive OR as a checksum SUM. Next, the first calculation means 140 outputs the s-bit checksum SUM and the final plaintext block M [m].
- the checksum calculation process executed by the second calculation unit 240 of the authentication decryption apparatus 200 for the plaintext M output by the decryption unit 230 is similar to the checksum calculation process shown in FIG.
- the second encryption means 150 of the authentication encryption device 100 performs the tag generation processing shown in FIG. That is, the second encryption unit 150 converts the s-bit checksum SUM output by the first calculation unit 140 of the authentication encryption device 100 into an n-bit value using an appropriate padding function.
- the second encryption unit 150 outputs the converted checksum SUM to the initial vector N output from the initial vector generation unit 120 and the n′-bit plaintext block M [m output from the first calculation unit 140. ] And are used to encrypt with Tweakable block cipher.
- the second encryption unit 150 also adds M [m] converted into an n-bit value with an appropriate padding function.
- the tag generation process executed by the third encryption unit 250 of the authentication decryption apparatus 200 for the s-bit checksum SUM output by the second calculation unit 240 is also the same as the tag generation process shown in FIG.
- the first calculation means 140 of the authentication encryption device 100 of this specific example may calculate the checksum as follows, and the second encryption means 150 may generate the tag as follows.
- modified examples of this specific example will be described.
- the first calculation means 140 calculates an exclusive OR for each bit of an arbitrary n / 2-bit subsequence of the plaintext block M [i] of the plaintext M output by the plaintext input means 110 of the authentication encryption device 100, Take from M [1] to M [m-1]. Next, the first calculation means 140 sets the bitwise exclusive OR as the checksum SUM, and outputs the n / 2-bit checksum SUM and the final plaintext block M [m].
- the second encryption means 150 of the authentication encryption device 100 converts the n / 2-bit checksum SUM output by the first calculation means 140 into an n-bit value using an appropriate padding function.
- the second encryption unit 150 outputs the converted checksum SUM to the initial vector N output from the initial vector generation unit 120 and the n′-bit plaintext block M [m output from the first calculation unit 140. ] And are used to encrypt with Tweakable block cipher.
- the second encryption unit 150 uses a mask value uniquely determined by Tweak and a secret key and an appropriate padding function at the input or the input and the output of the primitive for inputting / outputting n-bit data. Add the converted M [m] to the n-bit value.
- the second encryption means 150 divides the n-bit Tag_n obtained by the encryption into two n / 2-bit Tag1 and Tag2 using an appropriate division function.
- tag T is generated as follows.
- the second encryption means 150 uses a division function, the cases of Tweak used are eliminated.
- the cases of Tweaks used are classified so that it is possible to distinguish whether or not the plaintext has been padded.
- the second encryption unit 150 divides the case even after dividing the result of the n bits whose checksum is encrypted by Tweakable encryption into two. Can be executed.
- the case of the encrypted n / 2 bits value used is more efficient than the case of the Tweak used.
- the second calculation means 240 of the authentication decryption apparatus 200 of the present specific example also performs the checksum calculation processing similar to the checksum calculation processing by the first calculation means 140 of the authentication encryption apparatus 100 described above, thereby performing the decryption.
- the checksum may be calculated based on the plaintext M output by the means 230.
- the third encryption unit 250 of the authentication decryption apparatus 200 of the present specific example also executes the same tag generation processing as the tag generation processing by the second encryption unit 150 of the authentication encryption apparatus 100 described above, thereby The n / 2-bit tag T ′ may be generated based on the checksum SUM output by the 2 calculation means 240.
- the case classification of Tweak used is deleted.
- the final block in the authentication encryption method in the first specific example is the CTR mode block.
- the number of bits of the checksum SUM obtained will be the larger of the s bit and the n'bit. If n ′> s, the state size is reduced by (n ⁇ s) bits, which is not the expected effect in the first and second embodiments.
- the processing unit is one-block encryption
- the normal OCB state size is 3n bits as described above.
- the state size of the method realized in the first concrete example applied to OCB is 2.5n bits for both encryption and decryption. That is, the state size of 0.5n bits is reduced.
- the normal OCB state size is (2i + 1) n bits.
- the state size of the method realized in the first concrete example applied to OCB is (2i + 0.5) n bits in both encryption and decryption. Again, the 0.5n-bit state size is reduced.
- the order of asymptotic safety is O (2 (n / 2) ) for both the normal OCB method and the method realized in the first concrete example applied to OCB. That is, the state size is reduced by 0.5n bits in both the encryption process and the decryption process without asymptotic security being impaired. Therefore, the authentication encryption device 100 and the authentication decryption device 200 of the first specific example can simultaneously realize safety and efficiency.
- the first encryption unit 130 of the authentication encryption device 100 uses the initial vector N output from the initial vector generation unit 120 of the authentication encryption device 100 to encrypt the plaintext M with the Tweakable block cipher TE.
- the first encryption unit 130 uses the Tweak and the secret key as the input or the input and the output of the block cipher for inputting and outputting the n-bit data, or the input or the the input and the output of the keyless cryptographic replacement.
- the mask value uniquely determined from is added.
- C [2j-1] TE (K, (N, j, 0), M [2j-1]) + M [2j] ⁇ ⁇ ⁇ Equation (22)
- C [2j] TE (K, (N, j, 1), C [2j-1]) + M [2j-1] ⁇ ⁇ ⁇ Equation (23)
- C [m] TE (K, (N, hm, 0), M [m-1]) + M [m] ⁇ ⁇ ⁇ Equation (24)
- C [m-1] TE (K, (N, hm, 1), C [m]) + M [m-1] ⁇ ⁇ ⁇ Equation (25)
- the first encryption means 130 encrypts as above until M [1], ..., M [m-1].
- the first encryption unit 130 encrypts M [m] by adding M_m and Pad_n of n bits whose fixed value is encrypted by Tweakable block cipher.
- the first encryption unit 130 converts Pad_n into an n-bit value using an appropriate shortening function.
- the Tweakable block cipher in XE mode is encrypted as follows. To convert.
- C [2j-1] E (K, ⁇ (K, (N, j, 0)) + M [2j-1]) + M [2j] ⁇ ⁇ ⁇ Equation (26)
- C [2j] E (K, ⁇ (K, (N, j, 1)) + C [2j-1]) + M [2j-1] ⁇ ⁇ ⁇ Equation (27)
- Expressions (26) to (28) represent exclusive OR for each bit.
- ⁇ (K, Tw) in Expressions (26) to (28) is an n-bit mask value uniquely determined from the secret key K and Tweak Tw.
- 0 n ” in Expression (28) represents a bit string in which n 0s are arranged.
- msb_n ′ ( ⁇ ) in Expression (28) is a function that outputs the value of the upper n ′ bits with respect to the input.
- the first calculation means 140 of the authentication encryption device 100 has a plaintext M output by the plaintext input device 110 of the authentication encryption device 100, an initial vector N output by the initial vector generation device 120, and a Tweakable block cipher TE.
- Z TE (K, (N, hm, 0), M [m-1]).
- the first calculation means 140 uses the Tweak and the secret key for input or input and output of a block cipher that inputs and outputs n-bit data, or for input or input and output of keyless cryptographic replacement. Add uniquely determined mask values.
- the first calculating means 140 it may be extracted value of the upper s bits M [2i].
- the first calculating means 140 calculates the checksum SUM as follows.
- the first calculating means 140 converts the bitwise exclusive OR into an n'bit value using an appropriate padding function, and adds the converted value and the n'bit plaintext block M [m]. Calculate the checksum SUM by. The first calculating means 140 outputs the calculated checksum SUM.
- the second encryption means 150 of the authentication encryption apparatus 100 converts the s-bit checksum SUM output by the first calculation means 140 of the authentication encryption apparatus 100 into an n-bit value using an appropriate padding function. Convert.
- the second encryption means 150 encrypts the converted checksum SUM with Tweakable block cipher using the initial vector N output from the initial vector generation means 120.
- the second encryption means 150 inputs the Tweak and the secret key to the input or the input and the output of the block cipher for inputting and outputting the n-bit data or the input or the input and the output of the keyless cryptographic replacement.
- the first encryption unit 130 of the authentication encryption device 100 is (N, 1, 0), (N, 1, 1), (N, 2, 0), (N, 2, 1), ... , (N, hm, 0), (N, hm, 1) Tweaks are used.
- the encryption by the Tweakable block cipher in the XE mode by the second encryption means 150 is expressed by the following formula.
- SUM_n SUM
- the decryption means 230 of the authentication decryption apparatus 200 acts as an inverse function of the first encryption means 130 of the authentication encryption apparatus 100. That is, the decryption unit 230 decrypts the ciphertext C with the Tweakable block cipher TE using the initial vector N output from the initial vector input unit 220 of the authentication decryption device 200.
- the decryption unit 230 uniquely uses the Tweak and the secret key as the input or the input and the output of the block cipher for inputting and outputting the n-bit data, or the input or the input and the output of the keyless cryptographic replacement. Add the defined mask values.
- M [2j-1] E (K, ⁇ (K, (N, j, 1)) + C [2j-1]) + C [2j] ⁇ ⁇ ⁇ Equation (30)
- M [2j] E (K, ⁇ (K, (N, j, 0)) + M [2j-1]) + C [2j-1] ⁇ ⁇ ⁇ Equation (31)
- M [m-1] E (K, ⁇ (K, (N, hm, 1)) + (C [m]
- M [m] msb_n '(E (K, ⁇ (K, (N, hm, 0)) + M [m-1])) + C [m] ⁇ ⁇ Equation (33)
- Expressions (30) to (33) represents an exclusive OR for each bit.
- ⁇ (K, Tw) in Expressions (30) to (33) is an n-bit mask value uniquely determined from the secret key K and Tweak Tw.
- 0 n ” in Expression (32) represents a bit string in which n 0s are arranged.
- msb_n ′ ( ⁇ ) in Expression (33) is a function that outputs the upper n ′ bits with respect to the input.
- the second calculation means 240 uses the Tweak and the secret key to input or input and output of the block cipher for inputting / outputting n-bit data, or input or input and output of the keyless cryptographic replacement. Add uniquely determined mask values.
- the third encryption means 250 of the authentication decryption device 200 converts the s-bit checksum SUM output by the second calculation means 240 of the authentication decryption device 200 into an n-bit value using an appropriate padding function. ..
- the third encryption means 250 encrypts the converted checksum SUM by Tweakable block cipher using the initial vector N output from the initial vector input means 220.
- the third encryption means 250 inputs the Tweak and the secret key to the input or the input and the output of the block cipher for inputting and outputting the n-bit data, or the input or the input and the output of the keyless cryptographic replacement.
- FIG. 6 is an explanatory diagram showing another specific example of the authentication encryption processing by the authentication encryption device 100.
- the first encryption unit 130 forms (m-1) n plaintext blocks M [1], M [2], ..., M [m-1], which form the plaintext M, and n
- the first encryption unit 130 calculates the equations (22) to (25).
- the decryption process executed by the decryption unit 230 of the authentication decryption apparatus 200 for the ciphertext C output by the ciphertext input unit 210 is the reverse process of the encryption process shown in FIG.
- the first calculating means 140 calculates the equation (29).
- the checksum calculation process executed by the second calculation unit 240 of the authentication decryption apparatus 200 for the plaintext M output by the decryption unit 230 is similar to the checksum calculation process shown in FIG.
- the second encryption means 150 of the authentication encryption device 100 performs the tag generation processing shown in FIG. That is, the second encryption unit 150 converts the s-bit checksum SUM output by the first calculation unit 140 of the authentication encryption device 100 into an n-bit value using an appropriate padding function.
- the second encryption means 150 encrypts the converted checksum SUM with Tweakable block cipher using the initial vector N output from the initial vector generation means 120.
- the second encryption means 150 adds Tweak to the input or input and output of a block cipher that inputs and outputs n-bit data, or the input or input and output of keyless cryptographic permutation.
- a mask value that is uniquely determined from the secret key and the secret key is used properly.
- the tag generation process executed by the third encryption unit 250 of the authentication decryption apparatus 200 for the s-bit checksum SUM output by the second calculation unit 240 is similar to the tag generation process shown in FIG.
- the first calculation means 140 of the authentication encryption device 100 of this specific example may calculate the checksum as follows, and the second encryption means 150 may generate the tag as follows.
- modified examples of this specific example will be described.
- the n / 2-bit checksum SUM is calculated by adding an arbitrary n / 2-bit subsequence.
- the second encryption means 150 of the authentication encryption device 100 uses the n / 2-bit checksum SUM output by the first calculation means 140 of the authentication encryption device 100 with an n-bit checksum using an appropriate padding function. Convert to a value.
- the second encryption means 150 encrypts the converted checksum SUM with Tweakable block cipher using the initial vector N output from the initial vector generation means 120.
- the second encryption means 150 has an even m in the input or the input and output of the block cipher for inputting and outputting the n-bit data, or the input or the input and the output of the keyless cryptographic replacement.
- the second encryption means 150 divides the n-bit Tag_n obtained by the encryption into two n / 2-bit Tag1 and Tag2 using an appropriate division function.
- tag T is generated as follows.
- (msb_ (n / 2)) (•) in equation (34) is a function that outputs the value of the upper n / 2 bits in response to the input.
- (lsb_ (n / 2)) (•) in the equation (35) is a function that outputs the value of the lower n / 2 bits with respect to the input.
- the Tweaks used are reduced from 4 types to 2 types. That is, the types of Tweaks used are reduced by half.
- the second encryption means 150 executes case classification even after dividing the result of n bits whose checksum is encrypted by Tweakable encryption into two. it can. Therefore, the four cases are reduced to two cases.
- the case of the encrypted n / 2 bits value used is more efficient than the case of the Tweak used.
- the second calculation means 240 of the authentication decryption apparatus 200 of the present specific example also performs the checksum calculation processing similar to the checksum calculation processing by the first calculation means 140 of the authentication encryption apparatus 100 described above, thereby performing the decryption.
- the checksum may be calculated based on the plaintext M output by the means 230.
- the third encryption unit 250 of the authentication decryption apparatus 200 of the present specific example also executes the same tag generation processing as the tag generation processing by the second encryption unit 150 of the authentication encryption apparatus 100 described above, thereby The n / 2-bit tag T ′ may be generated based on the checksum SUM output by the 2 calculation means 240. With the above modification, the types of Tweaks used are cut in half.
- the normal OTR state size is 4n bits.
- the 4n-bit breakdown consists of 2n bits for the memory used to process plaintext in one Feistel structure, n bits for the memory that holds the mask value, and memory that holds the calculated checksum value. It is n bits of the minute.
- the state size of the method realized in the second concrete example applied to OTR is 3.5n bits for both encryption and decryption. That is, the state size of 0.5n bits is reduced.
- the state size of a normal OTR is (3i + 1) n bits.
- the state size of the method realized in the second specific example applied to OTR is (3i + 0.5) n bits in both encryption and decryption. Again, the 0.5n-bit state size is reduced.
- the order of asymptotic safety is O (2 (n / 2) ) for both the normal OTR method and the method realized in the second concrete example applied to OTR. That is, the state size is reduced by 0.5n bits in both the encryption process and the decryption process without asymptotic security being impaired. Therefore, the authentication encryption device 100 and the authentication decryption device 200 of the second specific example can simultaneously realize safety and efficiency.
- FIG. 7 is an explanatory diagram showing a hardware configuration example of the authentication encryption device 100 according to the present invention.
- the authentication encryption device 100 illustrated in FIG. 7 includes a CPU (Central Processing Unit) 101, a main storage unit 102, a communication unit 103, and an auxiliary storage unit 104. Further, an input unit 105 for the user to operate and an output unit 106 for presenting the process result or the progress of the process content to the user may be provided.
- a CPU Central Processing Unit
- FIG. 8 is an explanatory diagram showing a hardware configuration example of the authentication decryption device 200 according to the present invention.
- the authentication decryption device 200 shown in FIG. 8 includes a CPU 201, a main storage unit 202, a communication unit 203, and an auxiliary storage unit 204. Further, an input unit 205 for the user to operate and an output unit 206 for presenting the processing result or the progress of the processing content to the user may be provided.
- the main storage unit 102 and the main storage unit 202 are used as a work area for data and a temporary save area for data.
- the main storage unit 102 and the main storage unit 202 are, for example, RAM (Random Access Memory).
- the communication unit 103 and the communication unit 203 have a function of inputting and outputting data with peripheral devices via a wired network or a wireless network (information communication network).
- the auxiliary storage unit 104 and the auxiliary storage unit 204 are non-transitory tangible storage media.
- Examples of non-temporary tangible storage media include magnetic disks, magneto-optical disks, CD-ROMs (Compact Disk Read Only Memory), DVD-ROMs (Digital Versatile Disk Read Only Memory), and semiconductor memories.
- the input unit 105 and the input unit 205 have a function of inputting data and processing instructions.
- the input unit 105 and the input unit 205 are input devices such as a keyboard and a mouse.
- the plaintext input unit 110 is realized by the input unit 105, for example.
- the ciphertext input unit 210 and the initial vector input unit 220 are realized by the input unit 205, for example.
- the output unit 106 and the output unit 206 have a function of outputting data.
- the output unit 106 and the output unit 206 are, for example, a display device such as a liquid crystal display device or a printing device such as a printer.
- the ciphertext output unit 160 is realized by the output unit 106, for example.
- the plaintext output unit 270 is realized by the output unit 206, for example.
- each component is connected to the system bus 107. Further, as shown in FIG. 8, each component of the authentication decryption device 200 is connected to the system bus 207.
- the auxiliary storage unit 104 stores, for example, a program for realizing the initial vector generation means 120, the first encryption means 130, the first calculation means 140, and the second encryption means 150 shown in FIG.
- the authentication encryption device 100 may be realized by hardware.
- the authentication encryption apparatus 100 may be mounted with a circuit including a hardware component such as an LSI (Large Scale Integration) in which a program that realizes the function illustrated in FIG. 1 is incorporated.
- LSI Large Scale Integration
- the authentication encryption device 100 may be realized by software by the CPU 101 shown in FIG. 7 executing a program that provides the function of each component shown in FIG.
- the CPU 101 When implemented by software, the CPU 101 loads the program stored in the auxiliary storage unit 104 into the main storage unit 102, executes the program, and controls the operation of the authentication encryption device 100, whereby each function is performed by software. Will be realized.
- the auxiliary storage unit 204 stores, for example, a program for realizing the decryption means 230, the second calculation means 240, the third encryption means 250, and the tag check means 260 shown in FIG.
- the authentication decryption device 200 may be realized by hardware.
- the authentication decryption apparatus 200 may be equipped with a circuit including a hardware component such as an LSI in which a program that implements the functions illustrated in FIG. 3 is incorporated.
- the authentication decryption apparatus 200 may be realized by software by the CPU 201 shown in FIG. 8 executing a program that provides the function of each component shown in FIG.
- each function is realized by software by the CPU 201 loading a program stored in the auxiliary storage unit 204 into the main storage unit 202 and executing the program to control the operation of the authentication decryption device 200. To be done.
- constituent elements may be realized by a general-purpose circuit or a dedicated circuit, a processor, or a combination thereof. These may be configured by a single chip, or may be configured by a plurality of chips connected via a bus. A part or all of each component may be realized by a combination of the above-described circuit and the like and a program.
- the plurality of information processing devices, circuits, etc. may be centrally arranged or distributed.
- the information processing device, the circuit, and the like may be realized as a form in which a client and server system, a cloud computing system, and the like are connected to each other via a communication network.
- FIG. 9 is a block diagram showing an outline of the authentication encryption device according to the present invention.
- the authentication encryption device 10 according to the present invention uses an encryption function (for example, the encryption function of Expression (10)) that outputs a predetermined number of bits of data when a predetermined number of bits of data is input as an encryption target.
- an encryption function for example, the encryption function of Expression (10)
- the plaintext block By inputting the plaintext block with a predetermined number of bits that composes the plaintext of, after adding the mask value that is uniquely determined from the adjustment value including the initial vector that does not overlap with the past value (for example, Tweak) and the secret key.
- An encryption unit 11 (for example, a first encryption unit 130) that encrypts a plaintext block and a corresponding bit in a first bit string having a bit number less than a predetermined bit number of each of a plurality of plaintext blocks forming the plaintext.
- the calculating unit 12 (for example, the first calculating unit 140) that calculates the exclusive OR as a checksum is provided.
- the authentication encryption device can reduce the state size that increases in the checksum calculation without lowering the asymptotic security.
- the encryption means 11 may encrypt the plaintext block by adding a mask value to the output of the encryption function.
- the authentication encryption device can encrypt the plaintext block with the Tweakable block cipher in XEX mode.
- the authentication encryption device 10 includes a generation unit (for example, the second encryption unit 150) that generates an authentication tag, and the generation unit converts the calculated checksum into data having a predetermined number of bits and converts the checksum.
- the checksum converted by adding the mask value uniquely determined from the adjustment value other than the adjustment value used in the encryption means 11 and the secret key to the encrypted checksum and inputting it to the encryption function.
- the authentication tag may be generated by encrypting and converting the encrypted checksum into data having a bit number equal to or less than a predetermined bit number.
- the authentication encryption device can generate an authentication tag based on a checksum whose number of bits is less than a predetermined number of bits.
- the generating means may encrypt the checksum by adding a mask value to the output of the encryption function.
- the authentication encryption device can encrypt the checksum with the Tweakable block cipher in XEX mode.
- the encryption means 11 outputs the output of the encryption function to which the fixed value of the predetermined number of bits to which the mask value is added is input, and the final block forming the plaintext and having the number of bits equal to or less than the predetermined number of bits.
- the final block may be encrypted by adding.
- the authentication encryption device can encrypt the final block whose number of bits is equal to or less than the predetermined number of bits.
- the calculating means 12 calculates, as a checksum, the exclusive OR of the corresponding bits in the first bit string having the number of bits less than the predetermined number of bits in each of the plurality of plaintext blocks other than the final block forming the plaintext
- the generation means converts the final block into data having a predetermined number of bits, and converts the converted checksum to an adjustment value, a secret key, which has different values depending on whether the number of bits of the final block matches the predetermined number of bits
- the converted checksum may be encrypted by adding a mask value uniquely determined from the converted final block and inputting the mask value into the encryption function.
- the authentication encryption device can prevent the authentication tag from being easily forged.
- the number of bits of the first bit string is a half of the predetermined number of bits
- the calculation unit 12 causes the number of bits of each of the plurality of plaintext blocks other than the final block forming the plaintext to be less than the predetermined number of bits.
- the exclusive OR of the corresponding bits in the first bit string of is calculated as a checksum
- the generation means converts the final block into data of a predetermined number of bits
- the converted checksum is used by the encryption means 11.
- the checksum converted by adding the adjustment value other than the adjustment value, the secret key, and the mask value uniquely determined from the converted final block to the encryption function is encrypted and encrypted.
- the checksum is divided into two pieces of data having the number of bits of the first bit string, and divided according to whether or not the number of bits of the final block matches a predetermined number of bits. May output one of the data as the authentication tag.
- the authentication encryption device can generate an authentication tag without using Tweak properly.
- the encryption unit 11 sets an odd number of plaintext blocks having a predetermined number of bits other than the final block forming the plaintext and a final block having a bit number equal to or less than the predetermined number of bits for each set of two blocks in order from the front.
- An even-numbered ciphertext block of the set is generated by adding, and an output of the encryption function to which the odd-numbered plaintext block to which the mask value in the divided final set is added is input, Generates the final even-numbered ciphertext block by adding with the even-numbered plaintext block in the final set, and inputs the final-set even-numbered ciphertext block with the mask value added
- the final set of odd-numbered ciphertext blocks may be generated by adding the output of the function and the odd-numbered plaintext block of the final set.
- the authentication encryption device can be applied to OTR.
- the calculating means 12 calculates the output of the encryption function to which the odd-numbered plaintext block to which the mask value in the divided final set is added is input, and calculates the output of the even-numbered block other than the final block forming the plaintext.
- the exclusive OR of the corresponding bits in the first bit string having the number of bits less than the predetermined number of bits of each plaintext block is calculated, and the exclusive OR of the calculated exclusive OR and the calculated output is calculated.
- the checksum is calculated by taking it bit by bit, and the generation means uses the converted checksum from the adjustment value and the secret key whose values differ depending on whether the number of bits of the final block matches a predetermined number of bits.
- the converted checksum may be encrypted by adding a uniquely determined mask value and inputting it to the encryption function.
- the authentication encryption device can be applied to OTR.
- the number of bits of the first bit string is a half of the predetermined number of bits
- the calculating unit 12 inputs the ciphertext to which the odd-numbered plaintext block to which the mask value in the final set is added.
- Calculating the output of the digitizing function, and calculating the exclusive OR of the corresponding bits in the first bit string of the number of bits less than the predetermined number of bits in each of the even-numbered plaintext blocks other than the final block forming the plaintext The checksum is calculated by taking the exclusive OR of the calculated exclusive OR and the calculated output for each bit, and the generation means calculates the encrypted checksum by 2 of the number of bits of the first bit string.
- the data may be divided into one data, and any one of the divided data may be output as the authentication tag depending on whether or not the number of bits of the final block matches a predetermined number of bits.
- the authentication encryption device can generate an authentication tag without using Tweak properly.
- the authentication encryption device 10 may include a ciphertext output unit (for example, a ciphertext output unit 160) that outputs the ciphertext generated by the encryption unit 11 and the authentication tag together. Further, the authentication encryption device 10 may include a plaintext input unit (for example, a plaintext input unit 110) for inputting a plaintext to be encrypted. Further, the authentication encryption device 10 may include an initial vector generation unit (for example, an initial vector generation unit 120) that generates an initial vector.
- a ciphertext output unit for example, a ciphertext output unit 160
- a plaintext input unit for example, a plaintext input unit 110
- an initial vector generation unit for example, an initial vector generation unit 120
- FIG. 10 is a block diagram showing an outline of the authentication decryption device according to the present invention.
- the authentication decryption apparatus 20 according to the present invention outputs a ciphertext block of a predetermined number of bits forming a ciphertext to be decrypted to a decryption function that outputs data of a predetermined number of bits when data of a predetermined number of bits is input.
- a decryption unit 21 (for example, a decryption unit) that decrypts a ciphertext block by adding a mask value uniquely determined from an adjustment value (for example, Tweak) including an initial vector that does not overlap the past value and a secret key Means 230) and a calculation for calculating, as a checksum, the exclusive OR of the corresponding bits in the first bit string having the number of bits less than the predetermined number of bits in each of the plurality of plaintext blocks forming the plaintext in which the ciphertext is decrypted.
- Means 22 (for example, second calculation means 240).
- the authentication decryption device can reduce the state size that increases in the checksum calculation without lowering the asymptotic security.
- the decryption means 21 may decrypt the ciphertext block by adding a mask value to the output of the decryption function.
- the authentication decryption device can decrypt the ciphertext block with the Tweakable block cipher in XEX mode.
- the authentication decryption device 20 includes a generation unit (for example, a third encryption unit 250) that generates an authentication tag, and the generation unit converts the calculated checksum into data of a predetermined number of bits and converts the data.
- the checksum, the adjustment value other than the adjustment value used in the decryption means 21, and the mask value uniquely determined from the secret key are added, and when a predetermined number of bits of data is input, a predetermined number of bits is input.
- the checksum converted by inputting to the encryption function that outputs the data of is encrypted, and the authentication checksum is generated by converting the encrypted checksum into the data of the number of bits equal to or less than the predetermined number of bits. Good.
- the authentication decoding device can generate an authentication tag based on a checksum whose number of bits is less than a predetermined number of bits.
- the generating means may encrypt the checksum by adding a mask value to the output of the encryption function.
- the authentication decryption device can encrypt the checksum with the Tweakable block cipher in XEX mode.
- the authentication decryption device 20 includes an output unit (for example, a tag checking unit 260 and a plaintext output unit 270) that outputs the verification result of the decryption process, and the output unit matches the authentication tag that is input together with the ciphertext.
- a verification result indicating acceptance may be output when a tag is generated, and a verification result indicating rejection may be output when an authentication tag that does not match the input authentication tag is generated.
- the authentication decryption device can present the verification result of the decryption process.
- the output means may output the decrypted plaintext together with the verification result indicating acceptance, and may output the error message together with the verification result indicating rejection.
- the authentication decryption device can present a plaintext or an error message depending on the verification result of the decryption process.
- the authentication / decryption device 20 may also include a ciphertext input unit (for example, a ciphertext input unit 210) for inputting the ciphertext to be decrypted and the authentication tag.
- the authentication decryption device 20 may also include an initial vector input unit (for example, an initial vector input unit 220) to which an initial vector is input.
- An encryption unit that encrypts a plaintext block by adding a mask value that is uniquely determined from an adjustment value that includes an initial vector that does not overlap with a secret key, and a plurality of plaintext blocks that form the plaintext.
- An authentication encryption device comprising: a calculation unit that calculates, as a checksum, an exclusive OR of corresponding bits in the first bit string having a bit number less than the predetermined bit number.
- Appendix 2 The authentication encryption device according to Appendix 1, wherein the encryption means encrypts the plaintext block by adding a mask value to the output of the encryption function.
- a generation unit that generates an authentication tag is provided, and the generation unit converts the calculated checksum into data having a predetermined number of bits, and adjusts the converted checksum used by the encryption unit.
- the converted checksum is encrypted by adding a mask value that is uniquely determined from the adjustment value other than the value and the secret key, and then input to the encryption function, and the encrypted checksum is converted into the predetermined bit.
- the authentication encryption device according to appendix 1 or 2, wherein the authentication tag is generated by converting the data into bits having a number of bits or less.
- the encryption unit outputs the output of the encryption function to which the fixed value of the predetermined number of bits to which the mask value is added is input, and the final block that constitutes the plaintext and has the number of bits equal to or less than the predetermined number of bits. 5.
- the authentication encryption device according to appendix 3 or 4, wherein the final block is encrypted by adding and.
- the calculating means calculates, as a checksum, an exclusive OR of corresponding bits in the first bit string having a bit number less than a predetermined bit number in each of the plurality of plaintext blocks other than the final block forming the plaintext.
- the generating means converts the final block into data having the predetermined number of bits, and adjusts the converted checksum to have a different value depending on whether the number of bits of the final block matches the predetermined number of bits. 6.
- the authentication encryption device according to appendix 5, wherein the converted checksum is encrypted by adding a value, a secret key, and a mask value that is uniquely determined from the converted final block and inputting the mask value into an encryption function. ..
- the number of bits of the first bit string is a half of the predetermined number of bits, and the calculating means is less than the predetermined number of bits of each of the plurality of plaintext blocks other than the final block forming the plaintext.
- the exclusive OR of the corresponding bits of the number of bits in the first bit string is calculated as a checksum, the generating means converts the final block into the data of the predetermined number of bits, and the converted checksum is encrypted.
- the converted checksum is encrypted by adding an adjustment value other than the adjustment value used in the means, a secret key, and a mask value uniquely determined from the converted final block, and then inputting the sum into an encryption function.
- the encrypted checksum is divided into two pieces of data having the number of bits of the first bit string, and the number of bits of the final block is the predetermined number of bits. Matching whether the authentication encryption device according to Note 5, wherein for outputting one of the data as an authentication tag that is divided in accordance with the.
- the encrypting unit selects an odd number of plaintext blocks having a predetermined number of bits other than the final block forming the plaintext and a final block having a number of bits equal to or less than the predetermined number of bits from two blocks in order from the front. Divide each set and add the output of the encryption function to which the odd-numbered plaintext block to which the mask value in the divided set is added and the even-numbered plaintext block in the divided set are added To generate an odd-numbered ciphertext block of the set, the output of the encryption function to which the odd-numbered ciphertext block to which the mask value is added is input, and the odd-numbered ciphertext block of the divided set.
- An even-numbered ciphertext block of the final set is generated by adding the output of the function and an even-numbered plaintext block in the final set, and an even-numbered ciphertext of the final set is added with a mask value.
- the calculating means calculates the output of the encryption function to which the odd-numbered plaintext block to which the mask value in the divided final set is added is input, and calculates the even-numbered ones other than the final block forming the plaintext.
- the exclusive OR of the corresponding bits in the first bit string having the number of bits less than the predetermined number of bits is calculated, and the exclusive OR of the calculated exclusive OR and the calculated output is calculated.
- the checksum is calculated by taking each bit for each bit, and the generation unit generates the converted checksum and the secret value which is different depending on whether or not the number of bits of the final block matches the predetermined number of bits.
- the number of bits of the first bit string is half the predetermined number of bits, and the calculating means receives the odd-numbered plaintext block to which the mask value in the final set is added.
- the output of the encryption function is calculated, and the exclusive OR of corresponding bits in the first bit string having the number of bits less than the predetermined number of bits in each of the even-numbered plaintext blocks other than the final block forming the plaintext is calculated.
- the checksum is calculated by calculating the bit-wise exclusive-OR of the calculated exclusive-OR and the calculated output, and the generation means calculates the encrypted checksum of the first bit string.
- the data is divided into two pieces of data having the number of bits, and one of the divided pieces of data is output as an authentication tag depending on whether the number of bits of the final block matches the predetermined number of bits.
- An authentication decoding device comprising: a calculating unit that calculates, as a checksum, an exclusive OR of corresponding bits in a first bit string having a bit number less than the predetermined bit number in each of a plurality of plaintext blocks.
- a generation unit that generates an authentication tag is provided, and the generation unit converts the calculated checksum into data having a predetermined number of bits, and the converted checksum and the adjustment value used in the decoding unit. Other than the adjustment value and the mask value uniquely determined from the secret key, when the data of the predetermined number of bits is input, it is input to the encryption function that outputs the data of the predetermined number of bits. 13.
- the authentication decryption device according to appendix 11 or 12, wherein the converted checksum is encrypted by, and the encrypted checksum is converted into data having a bit number equal to or less than the predetermined bit number to generate the authentication tag. ..
- the decryption means forms the output of the encryption function to which the fixed value of the predetermined number of bits to which the mask value is added is input, and the final block that constitutes the ciphertext and has the number of bits equal to or less than the predetermined number of bits.
- the authentication decryption device according to supplementary note 13 or supplementary note 14, wherein the final block is decrypted by adding and.
- the calculating means calculates, as a checksum, the exclusive OR of the corresponding bits in the first bit string having a bit number less than a predetermined bit number in each of the plaintext blocks other than the final block forming the plaintext.
- the generating means converts the final block into data having the predetermined number of bits, and adjusts the converted checksum to have a different value depending on whether the number of bits of the final block matches the predetermined number of bits. 16.
- the authentication / decryption device wherein the converted checksum is encrypted by adding a value, a secret key, and a mask value uniquely determined from the converted final block, and inputting the mask value into an encryption function.
- the number of bits of the first bit string is a half of the predetermined number of bits, and the calculation means is less than the predetermined number of bits of each of the plurality of plaintext blocks other than the final block forming the plaintext.
- the exclusive OR of the corresponding bits of the number of bits in the first bit string is calculated as a checksum, the generating means converts the final block into the data of the predetermined number of bits, and the converted checksum is encrypted.
- the converted checksum is encrypted by adding an adjustment value other than the adjustment value used in the means, a secret key, and a mask value uniquely determined from the converted final block, and then inputting the sum into an encryption function.
- the encrypted checksum is divided into two pieces of data having the bit number of the first bit string, and the bit number of the final block is the predetermined bit.
- Authentication decoding apparatus output to note 15, wherein one of the data as the authentication tag is divided according to whether or not matching.
- the decryption means uses an odd number of ciphertext blocks having a predetermined number of bits other than the final block forming the ciphertext and a final block having a number of bits equal to or less than the predetermined number of bits, in order from the front to the bottom.
- Output of the encryption function to which the odd-numbered ciphertext block to which the mask value in the divided set is added is input, and the even-numbered ciphertext block in the divided set
- An odd-numbered plaintext block of the set is generated by adding and, and the output of the encryption function to which the odd-numbered plaintext block to which the mask value is added is input, and an odd number in the divided set.
- the even-numbered plaintext block of the set is generated by adding with the th ciphertext block, and the even-numbered ciphertext block to which the mask value in the final set is added is input.
- An output of an encryption function and an odd-numbered ciphertext block in the final set are added to generate an odd-numbered plaintext block in the final set, and an odd-numbered plaintext block in the final set to which a mask value is added.
- Note 13 or Note 14 that generates an even-numbered plaintext block of the final set by adding the output of the encryption function to which the plaintext block of No. 1 is input and the even-numbered ciphertext block of the final set Authentication decryption device.
- the calculating means sets an odd number of plaintext blocks having a predetermined number of bits other than the final block forming the plaintext and a final block having a number of bits equal to or less than the predetermined number of bits in order from the front to a set of two blocks.
- the output of the encryption function is calculated by inputting the odd-numbered plaintext block to which the mask value in the divided final set is added, and each even-numbered part other than the final block forming the plaintext.
- the exclusive OR of the corresponding bits in the first bit string of the number of bits less than the predetermined number of bits of each plaintext block is calculated, and the exclusive OR of the calculated exclusive OR and the calculated output is calculated.
- the checksum is calculated by taking it bit by bit, and the generation means determines whether the converted checksum has the number of bits of the final block equal to the predetermined number of bits.
- Authentication decoding apparatus according to Note 18, wherein the encrypting the converted checksum by the value input to the encryption function in terms of the sum of the unique mask value determined from a different adjustment value and a secret key or.
- the number of bits of the first bit string is a half of the predetermined number of bits
- the calculating means is an odd number of predetermined number of plaintext blocks other than the final block forming the plaintext and the number of bits is the above-mentioned number.
- the final block having a predetermined number of bits or less is divided into groups of two blocks in order from the front, and the odd-numbered plaintext block to which the mask value in the divided final group is added is input to the encryption function.
- An output is calculated, and an exclusive OR of corresponding bits in the first bit string having a bit number less than the predetermined bit number in each even-numbered plaintext block other than the final block forming the plaintext is calculated.
- a checksum is calculated by taking the exclusive OR of the calculated exclusive OR and the calculated output bit by bit, and the generation means is an encrypted checksum. Is divided into two pieces of data having the number of bits of the first bit string, and any one of the divided pieces of data is output as an authentication tag depending on whether the number of bits of the final block matches the predetermined number of bits.
- the authentication decryption device according to appendix 18.
- An output unit that outputs a verification result of the decryption process is provided, and the output unit outputs a verification result that indicates acceptance when an authentication tag that matches the authentication tag input with the ciphertext is generated. 21.
- the authentication decoding device according to any one of appendices 13 to 20, which outputs a verification result indicating non-acceptance when an authentication tag that does not match the input authentication tag is generated.
- the plaintext block of the predetermined number of bits that constitutes the plaintext to be encrypted is pasted to an encryption function that outputs the data of the predetermined number of bits.
- a plaintext block is encrypted by adding a mask value uniquely determined from a secret key and an adjustment value including an initial vector that does not overlap with each other, and the predetermined value of each of the plaintext blocks constituting the plaintext is specified.
- An authentication encryption method characterized by calculating an exclusive OR of corresponding bits in the first bit string having a bit number less than the number of bits as a checksum.
- a decryption function that outputs the predetermined number of bits of data outputs a past value of the ciphertext block of the predetermined number of bits that constitutes the decryption target ciphertext.
- An authentication decoding method wherein an exclusive OR of corresponding bits in a first bit string having a bit number less than the predetermined bit number in each block is calculated as a checksum.
- the plaintext block having the predetermined number of bits forming the plaintext to be encrypted is added to the encryption function that outputs the data having the predetermined number of bits when the data having the predetermined number of bits is input to the computer.
- An authentication encryption program for executing a calculation process for calculating, as a checksum, an exclusive OR of corresponding bits in a first bit string having a bit number less than the predetermined bit number in each plaintext block.
- a decryption function that outputs the predetermined number of bits of data is provided with the ciphertext block of the predetermined number of bits forming the ciphertext to be decrypted
- a decryption process of decrypting a ciphertext block by adding a mask value uniquely determined from an adjustment value including an initial vector that does not overlap with a past value and a secret key, and a plaintext in which the ciphertext is decrypted An authentication decryption program for executing a calculation process for calculating, as a checksum, an exclusive OR of corresponding bits in a first bit string having a bit number less than the predetermined bit number in each of a plurality of plaintext blocks constituting the.
- the present invention is preferably applied to encryption and message authentication in wireless or wired data communication, or protection of communication performed between a wireless sensor device and an information collection server.
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)
Abstract
認証暗号化装置10は、所定のビット数のデータが入力されると所定のビット数のデータを出力する暗号化関数に、暗号化対象の平文を構成する所定のビット数の平文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって平文ブロックを暗号化する暗号化手段11と、平文を構成する複数の平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出手段12とを備える。
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)
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)
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 がある。
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は、本発明による認証暗号化装置の第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)
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による認証暗号化処理の動作を示すフローチャートである。
以下、本実施形態の認証暗号化装置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 ビットから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の実施形態の構成例を示すブロック図である。
[構成の説明]
次に、本発明による認証復号装置の第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による認証復号処理の動作を示すフローチャートである。
以下、本実施形態の認証復号装置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は、認証暗号での復号処理におけるチェックサム計算のために求められるメモリサイズを、漸近的な安全性を低下させずにn ビットからs ビットに削減できる。よって、認証復号装置200は、安全性を保ったまま、ステートサイズを(n-s) ビット削減できる。
すなわち、認証復号装置200は、認証暗号での復号処理において、第1の実施形態の認証暗号化装置100が奏する効果と同様の効果を奏する。また、認証復号装置200が上記の効果を奏する理由は、認証暗号化装置100が効果を奏する理由と同様である。
以下、第1の実施形態の認証暗号化装置100および第2の実施形態の認証復号装置200の具体例をいくつか説明する。
<具体例1>
本具体例における認証暗号化装置100と認証復号装置200は、特許文献1~特許文献4に記載されているOCB や、非特許文献6に記載されているOPP に適用可能である。以下、本具体例における認証暗号化装置100を構成する各手段が有する具体的な機能をそれぞれ説明する。
本具体例における認証暗号化装置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)
・・・式(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)
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)
・・・式(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)
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の実施形態および第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と認証復号装置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)
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)
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)
・・・式(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)
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]
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)
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)
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 の場合の安全性と漸近的に等しくなる。
第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 平文出力手段
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 (20)
- 所定のビット数のデータが入力されると前記所定のビット数のデータを出力する暗号化関数に、暗号化対象の平文を構成する前記所定のビット数の平文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって平文ブロックを暗号化する暗号化手段と、
前記平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出手段とを備える
ことを特徴とする認証暗号化装置。 - 暗号化手段は、暗号化関数の出力にマスク値を加算することによって平文ブロックを暗号化する
請求項1記載の認証暗号化装置。 - 認証タグを生成する生成手段を備え、
前記生成手段は、
算出されたチェックサムを所定のビット数のデータに変換し、
変換されたチェックサムを、暗号化手段で用いられた調整値以外の調整値と秘密鍵とから一意に定められるマスク値を加算した上で暗号化関数に入力することによって前記変換されたチェックサムを暗号化し、
暗号化されたチェックサムを前記所定のビット数以下のビット数のデータに変換することによって前記認証タグを生成する
請求項1または請求項2記載の認証暗号化装置。 - 生成手段は、暗号化関数の出力にマスク値を加算することによってチェックサムを暗号化する
請求項3記載の認証暗号化装置。 - 暗号化手段は、マスク値が加算された所定のビット数の固定値が入力された暗号化関数の出力と、平文を構成しビット数が前記所定のビット数以下である最終ブロックとを加算することによって前記最終ブロックを暗号化する
請求項3または請求項4記載の認証暗号化装置。 - 算出手段は、
平文を構成する最終ブロック以外の複数の平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出し、
生成手段は、
前記最終ブロックを前記所定のビット数のデータに変換し、
変換されたチェックサムを、前記最終ブロックのビット数が前記所定のビット数に一致するか否かで値が異なる調整値、秘密鍵、および変換された前記最終ブロックから一意に定められるマスク値を加算した上で暗号化関数に入力することによって前記変換されたチェックサムを暗号化する
請求項5記載の認証暗号化装置。 - 第1ビット列のビット数は、
所定のビット数の半分の数であり、
算出手段は、
平文を構成する最終ブロック以外の複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の前記第1ビット列における対応ビットの排他的論理和をチェックサムとして算出し、
生成手段は、
前記最終ブロックを前記所定のビット数のデータに変換し、
変換されたチェックサムを、暗号化手段で用いられた調整値以外の調整値、秘密鍵、および変換された前記最終ブロックから一意に定められるマスク値を加算した上で暗号化関数に入力することによって前記変換されたチェックサムを暗号化し、
暗号化されたチェックサムを前記第1ビット列のビット数の2つのデータに分割し、
前記最終ブロックのビット数が前記所定のビット数に一致するか否かに応じて分割された各データのいずれかを認証タグとして出力する
請求項5記載の認証暗号化装置。 - 暗号化手段は、
平文を構成する最終ブロック以外の奇数個の所定のビット数の平文ブロックおよびビット数が前記所定のビット数以下である最終ブロックを、前から順に2つのブロックの組ごとに分け、
分けられた組の中のマスク値が加算された奇数番目の平文ブロックが入力された暗号化関数の出力と、前記分けられた組の中の偶数番目の平文ブロックとを加算することによって当該組の奇数番目の暗号文ブロックを生成し、
マスク値が加算された前記奇数番目の暗号文ブロックが入力された暗号化関数の出力と、前記分けられた組の中の奇数番目の平文ブロックとを加算することによって当該組の偶数番目の暗号文ブロックを生成し、
分けられた最終組の中のマスク値が加算された奇数番目の平文ブロックが入力された暗号化関数の出力と、前記最終組の中の偶数番目の平文ブロックとを加算することによって前記最終組の偶数番目の暗号文ブロックを生成し、
マスク値が加算された前記最終組の偶数番目の暗号文ブロックが入力された暗号化関数の出力と、前記最終組の中の奇数番目の平文ブロックとを加算することによって前記最終組の奇数番目の暗号文ブロックを生成する
請求項3または請求項4記載の認証暗号化装置。 - 算出手段は、
分けられた最終組の中のマスク値が加算された奇数番目の平文ブロックが入力された暗号化関数の出力を計算し、
平文を構成する最終ブロック以外の偶数番目の各平文ブロックそれぞれのうちの所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和を計算し、
計算された排他的論理和と計算された出力との排他的論理和をビットごとにとることによってチェックサムを算出し、
生成手段は、
変換されたチェックサムを、前記最終ブロックのビット数が前記所定のビット数に一致するか否かで値が異なる調整値と秘密鍵とから一意に定められるマスク値を加算した上で暗号化関数に入力することによって前記変換されたチェックサムを暗号化する
請求項8記載の認証暗号化装置。 - 第1ビット列のビット数は、
所定のビット数の半分の数であり、
算出手段は、
分けられた最終組の中のマスク値が加算された奇数番目の平文ブロックが入力された暗号化関数の出力を計算し、
平文を構成する最終ブロック以外の偶数番目の各平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の前記第1ビット列における対応ビットの排他的論理和を計算し、
計算された排他的論理和と計算された出力との排他的論理和をビットごとにとることによってチェックサムを算出し、
生成手段は、
暗号化されたチェックサムを前記第1ビット列のビット数の2つのデータに分割し、
前記最終ブロックのビット数が前記所定のビット数に一致するか否かに応じて分割された各データのいずれかを認証タグとして出力する
請求項8記載の認証暗号化装置。 - 所定のビット数のデータが入力されると前記所定のビット数のデータを出力する復号関数に、復号対象の暗号文を構成する前記所定のビット数の暗号文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって暗号文ブロックを復号する復号手段と、
前記暗号文が復号された平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出手段とを備える
ことを特徴とする認証復号装置。 - 復号手段は、復号関数の出力にマスク値を加算することによって暗号文ブロックを復号する
請求項11記載の認証復号装置。 - 認証タグを生成する生成手段を備え、
前記生成手段は、
算出されたチェックサムを所定のビット数のデータに変換し、
変換されたチェックサムと、復号手段で用いられた調整値以外の調整値と秘密鍵とから一意に定められるマスク値を加算した上で、前記所定のビット数のデータが入力されると前記所定のビット数のデータを出力する暗号化関数に入力することによって前記変換されたチェックサムを暗号化し、
暗号化されたチェックサムを前記所定のビット数以下のビット数のデータに変換することによって前記認証タグを生成する
請求項11または請求項12記載の認証復号装置。 - 生成手段は、暗号化関数の出力にマスク値を加算することによってチェックサムを暗号化する
請求項13記載の認証復号装置。 - 復号処理の検証結果を出力する出力手段を備え、
前記出力手段は、
暗号文と共に入力された認証タグと一致する認証タグが生成されると受理を表す検証結果を出力し、
前記入力された認証タグと一致しない認証タグが生成されると不受理を表す検証結果を出力する
請求項13または請求項14記載の認証復号装置。 - 出力手段は、
受理を表す検証結果と共に復号された平文を出力し、
不受理を表す検証結果と共にエラーメッセージを出力する
請求項15記載の認証復号装置。 - 所定のビット数のデータが入力されると前記所定のビット数のデータを出力する暗号化関数に、暗号化対象の平文を構成する前記所定のビット数の平文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって平文ブロックを暗号化し、
前記平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する
ことを特徴とする認証暗号化方法。 - 所定のビット数のデータが入力されると前記所定のビット数のデータを出力する復号関数に、復号対象の暗号文を構成する前記所定のビット数の暗号文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって暗号文ブロックを復号し、
前記暗号文が復号された平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する
ことを特徴とする認証復号方法。 - コンピュータに、
所定のビット数のデータが入力されると前記所定のビット数のデータを出力する暗号化関数に、暗号化対象の平文を構成する前記所定のビット数の平文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって平文ブロックを暗号化する暗号化処理、および
前記平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出処理
を実行させるための認証暗号化プログラム。 - コンピュータに、
所定のビット数のデータが入力されると前記所定のビット数のデータを出力する復号関数に、復号対象の暗号文を構成する前記所定のビット数の暗号文ブロックを過去の値に重複しない初期ベクトルを含む調整値と秘密鍵とから一意に定められるマスク値を加算した上で入力することによって暗号文ブロックを復号する復号処理、および
前記暗号文が復号された平文を構成する複数の平文ブロックそれぞれのうちの前記所定のビット数未満のビット数の第1ビット列における対応ビットの排他的論理和をチェックサムとして算出する算出処理
を実行させるための認証復号プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/289,484 US11728968B2 (en) | 2018-11-07 | 2018-11-07 | Authenticated encryption device, authenticated decryption device, authenticated encryption method, authenticated decryption method, authenticated encryption program, and authenticated decryption program |
JP2020556403A JP7136226B2 (ja) | 2018-11-07 | 2018-11-07 | 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム |
PCT/JP2018/041338 WO2020095382A1 (ja) | 2018-11-07 | 2018-11-07 | 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2018/041338 WO2020095382A1 (ja) | 2018-11-07 | 2018-11-07 | 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020095382A1 true WO2020095382A1 (ja) | 2020-05-14 |
Family
ID=70611401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/041338 WO2020095382A1 (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 (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230077946A1 (en) * | 2020-02-12 | 2023-03-16 | FortifyIQ, Inc. | Methods and ip cores for reducing vulnerability to hardware attacks and/or improving processor performance |
WO2021171543A1 (ja) * | 2020-02-28 | 2021-09-02 | 日本電気株式会社 | 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法および記録媒体 |
CN115085897A (zh) * | 2022-05-23 | 2022-09-20 | 支付宝(杭州)信息技术有限公司 | 用于保护隐私的数据处理方法、装置和计算机设备 |
Citations (3)
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)
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 |
-
2018
- 2018-11-07 US US17/289,484 patent/US11728968B2/en active Active
- 2018-11-07 WO PCT/JP2018/041338 patent/WO2020095382A1/ja active Application Filing
- 2018-11-07 JP JP2020556403A patent/JP7136226B2/ja active Active
Patent Citations (3)
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)
Title |
---|
GRANGER, R.: "Improved masking for tweakable blockciphres with applications to authenticated encryption, Cryptology ePrint archive", REPORT 2015/999, April 2018 (2018-04-01), XP061025334, Retrieved from the Internet <URL:https://eprint.iacr.org/2015/999> [retrieved on 20190131] * |
Also Published As
Publication number | Publication date |
---|---|
US20210399875A1 (en) | 2021-12-23 |
JP7136226B2 (ja) | 2022-09-13 |
JPWO2020095382A1 (ja) | 2021-09-24 |
US11728968B2 (en) | 2023-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6519473B2 (ja) | 認証暗号装置、認証暗号方法および認証暗号用プログラム | |
US8712036B2 (en) | System for encrypting and decrypting a plaintext message with authentication | |
US10009170B2 (en) | Apparatus and method for providing Feistel-based variable length block cipher | |
KR101393806B1 (ko) | 다단계 물리적 복제 불가 함수 시스템 | |
US20120314857A1 (en) | Block encryption device, block decryption device, block encryption method, block decryption method and program | |
US20150244518A1 (en) | Variable-length block cipher apparatus and method capable of format preserving encryption | |
JPH08505275A (ja) | 暗号ストリームを発生させるための装置及び方法 | |
JP2008122967A (ja) | ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法 | |
JP6386198B1 (ja) | 暗号化装置及び復号装置 | |
WO2016067524A1 (ja) | 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム | |
WO2017056150A1 (ja) | メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム | |
US11438137B2 (en) | Encryption device, decryption device, encryption method, decryption method, and computer readable medium | |
JP2008513811A (ja) | 計算変換の方法及びシステム | |
JP7136226B2 (ja) | 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム | |
US9515830B2 (en) | Universal hash function computing device, method and program | |
WO2020213114A1 (ja) | Macタグリスト生成装置、macタグリスト検証装置、方法及びプログラム | |
WO2021171543A1 (ja) | 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法および記録媒体 | |
JP2005114870A (ja) | 暗号通信システム | |
JP6631989B2 (ja) | 暗号化装置、制御方法、及びプログラム | |
Mani et al. | Enhancing security in cryptographic algorithm based on LECCRS | |
Meenakumari et al. | Improving message authentication by integrating encryption with hash function and its VLSI implementation | |
Moldovyan et al. | On some applications of quasigroups in cryptography | |
Abbas et al. | Audio cryptosystem based on LFSH and Chaotic map with ECC key management | |
JP2004347885A (ja) | 暗号化装置処理方法、暗号復号装置処理方法、これらの装置及びプログラム | |
Rojasri et al. | Secure Message Authentication Process in Mobile Computing |
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: 18939282 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020556403 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18939282 Country of ref document: EP Kind code of ref document: A1 |