WO2019163032A1 - 暗号化装置、暗号化方法、プログラム、復号装置、復号方法 - Google Patents

暗号化装置、暗号化方法、プログラム、復号装置、復号方法 Download PDF

Info

Publication number
WO2019163032A1
WO2019163032A1 PCT/JP2018/006293 JP2018006293W WO2019163032A1 WO 2019163032 A1 WO2019163032 A1 WO 2019163032A1 JP 2018006293 W JP2018006293 W JP 2018006293W WO 2019163032 A1 WO2019163032 A1 WO 2019163032A1
Authority
WO
WIPO (PCT)
Prior art keywords
generation unit
tag
checksum
encryption
unit
Prior art date
Application number
PCT/JP2018/006293
Other languages
English (en)
French (fr)
Inventor
一彦 峯松
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to PCT/JP2018/006293 priority Critical patent/WO2019163032A1/ja
Priority to JP2020501908A priority patent/JP7323196B2/ja
Priority to US16/970,742 priority patent/US11463235B2/en
Publication of WO2019163032A1 publication Critical patent/WO2019163032A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Definitions

  • the present invention relates to an encryption device, an encryption method, a program, a decryption device, and a decryption method.
  • AE authentication encryption
  • an authentication encryption method called OCB (Offset Code Book) mode as shown in Patent Document 1 is known.
  • the OCB mode is an extension of a block cipher called a Tweakable block cipher that introduces an auxiliary variable (adjustment value) called Tweak at the time of encryption and decryption.
  • Tweak auxiliary variable
  • encryption using Tweak is performed by performing encryption in the XEX mode described in Non-Patent Document 1.
  • a tag is generated by performing the same process as the above encryption on the exclusive OR of each block obtained by dividing the plaintext.
  • Patent Document 2 describes an encryption device having a two-round Faithtel encryption means.
  • the two-round Faithtel encryption means divides the plaintext into two n-bit blocks and performs encryption by two-round Faithtel replacement.
  • the two-round Faithell encryption means uses an encryption function in which an auxiliary variable called Tweak is added to the round function of the two-round Faithtel structure.
  • the technique described in Patent Document 2 is also called an OTR (OffsetOffTwo-Round) method.
  • Patent Document 3 discloses block nonce generation means for generating a block nonce having a different value for each block data, and encrypting the corresponding block nonce with a common key and taking the exclusive OR with the block data.
  • An authentication encryption device having encryption data generation means for generation is described.
  • the above processing is performed instead of the two-round Faithtel replacement.
  • Patent Document 4 describes a method in which a cryptographic checksum is calculated for each segment, and a media segment is generated by combining the segment and the cryptographic checksum.
  • a common problem in authentication encryption is misuse in encryption / decryption. This refers to an attack by not observing the rules that are inherently necessary for safely performing encryption and decryption, and is considered as a real problem.
  • Non-Patent Document 2 There is INT-RUP (Integrity-under-release-of-unverified-plaintext) safety described in Non-Patent Document 2 as a method for evaluating the difficulty of falsification when there is leakage of unverified plaintext.
  • Non-Patent Document 2 shows that OCB as described in Patent Document 1 is not INT-RUP safe.
  • OCB as described in Patent Document 1 is not INT-RUP safe.
  • counterfeiting is performed by querying n-block ciphertext several times to unverified decryption oracle. It has been shown to be possible.
  • the unverified decoding oracle corresponds to one obtained by dividing the role of the decoding device (decoder).
  • the OTR system described in Patent Document 2 has the same structure as OCB. Therefore, the OTR method is not as safe as INT-RUP, as is OCB.
  • OCB and OTR which are efficient authentication encryption methods, do not have INT-RUP safety. This fact has been a factor that hinders the use of OCB and OTR in scenarios where unverified plaintext is leaked, for example, when the decryption side has very little memory.
  • Patent Document 3 is a modified example of OTR
  • Patent Document 4 does not consider the above-described problems. Therefore, even if the techniques described in Patent Documents 3 and 4 are used, the above problems cannot be solved.
  • the present invention provides an encryption device, an encryption method, a program, a decryption device, and a decryption method that solve the problem that an efficient authentication encryption method may not be secure when there is a risk of unverified plaintext leaking. Is to provide.
  • an encryption apparatus provides: An encryption unit for encrypting a block obtained by dividing the plaintext using an auxiliary variable; A partial checksum generation unit that generates a plurality of partial checksums based on the blocks obtained by dividing the plaintext; A meta checksum generation unit that generates a meta checksum based on the partial checksum generated by the partial checksum generation unit; A tag generation unit that generates a tag used for tampering detection based on the metachecksum generated by the metachecksum generation unit; Have The ciphertext encrypted by the encryption unit and the tag generated by the tag generation unit are output.
  • an encryption method includes: The encryption device Encrypt the block into which the plaintext is divided using auxiliary variables, A plurality of partial checksums are generated based on the blocks obtained by dividing the plaintext, Generating a meta checksum based on the generated partial checksum; Based on the generated meta checksum, a tag used for detection of falsification is generated, The ciphertext obtained by encrypting the plaintext and the tag are output.
  • the program which is the other form of this invention is: In the encryption device, An encryption unit for encrypting a block obtained by dividing the plaintext using an auxiliary variable; A partial checksum generation unit that generates a plurality of partial checksums based on the blocks obtained by dividing the plaintext; A meta checksum generation unit that generates a meta checksum based on the partial checksum generated by the partial checksum generation unit; A tag generation unit that generates a tag used for tampering detection based on the metachecksum generated by the metachecksum generation unit; Realized, A program for outputting ciphertext encrypted by the encryption unit and the tag generated by the tag generation unit.
  • a decoding device is A decryption unit that decrypts the block into which the ciphertext is divided for each block using auxiliary variables, and generates plaintext;
  • a partial checksum generation unit that generates a plurality of partial checksums based on the plaintext block decrypted by the decryption unit;
  • a meta checksum generation unit that generates a meta checksum based on the partial checksum generated by the partial checksum generation unit;
  • a tag generation unit that generates a verification tag to be used for detection of tampering based on the metachecksum generated by the metachecksum generation unit;
  • a tag verification unit that performs comparison verification between the tag received together with the ciphertext and the verification tag generated by the tag generation unit; Have The plaintext decrypted by the decryption unit and the result of comparison verification by the tag verification unit are output.
  • a decoding method is: The decryption device The block into which the ciphertext is divided is decrypted for each block using auxiliary variables to generate plaintext, Generating a plurality of partial checksums based on the decrypted plaintext block; Generating a meta checksum based on the generated partial checksum; Based on the generated meta checksum, a verification tag used for detection of falsification is generated, Perform comparison verification between the tag received together with the ciphertext and the generated verification tag, The decrypted plaintext and the comparison verification result are output.
  • the program which is the other form of this invention is: In the decryption device, A decryption unit that decrypts the block into which the ciphertext is divided for each block using auxiliary variables, and generates plaintext; A partial checksum generation unit that generates a plurality of partial checksums based on a plaintext block decrypted by the decryption unit; A meta checksum generation unit that generates a meta checksum based on the partial checksum generated by the partial checksum generation unit; A tag generation unit that generates a verification tag to be used for detection of tampering based on the metachecksum generated by the metachecksum generation unit; A tag verification unit that performs comparison verification between the tag received together with the ciphertext and the verification tag generated by the tag generation unit; Realized, A program for outputting the plaintext decrypted by the decryption unit and a result of comparison verification by the tag verification unit.
  • the present invention is configured as described above, and an encryption device and an encryption method for solving the problem that an efficient authentication encryption method may not be secure when unverified plaintext may be leaked ,
  • a program, a decoding device, and a decoding method can be provided.
  • FIG. 1 It is a block diagram which shows an example of the whole structure of the authentication encryption system in the 1st Embodiment of this invention. It is a figure which shows an example of a process when an encryption apparatus implement
  • FIG. 1 is a block diagram showing an example of the overall configuration of the authentication encryption system.
  • FIG. 2 is a diagram illustrating an example of processing when the encryption apparatus 10 implements an encryption routine in the XEX mode.
  • FIG. 3 is a diagram illustrating an example of processing when the encryption device 10 realizes the encryption routine by 2-round face teller replacement.
  • 4 and 5 are diagrams showing an example of the internal structure of 2-round Faithtel replacement.
  • FIG. 6 is a diagram illustrating an example of processing when the decoding apparatus 20 implements a decoding routine in the XEX mode.
  • FIG. 1 is a block diagram showing an example of the overall configuration of the authentication encryption system.
  • FIG. 2 is a diagram illustrating an example of processing when the encryption apparatus 10 implements an encryption routine in the XEX mode.
  • FIG. 3 is a diagram illustrating an example of processing when the encryption device 10 realizes the encryption routine by 2-round face teller replacement.
  • 4 and 5 are diagrams showing an example of the internal structure of 2-round Faithtel
  • FIG. 7 is a diagram illustrating an example of processing when the decoding device 20 implements a decoding routine by two-round face teller replacement.
  • FIG. 8 is a diagram showing an example of the internal structure of 2-round Faithtel replacement.
  • FIG. 9 is a diagram illustrating an example of processing performed by the encryption device 10.
  • FIG. 10 is a flowchart illustrating an example of the processing flow of the encryption device 10.
  • FIG. 11 is a diagram illustrating an example of processing performed by the decoding device 20.
  • FIG. 12 is a flowchart illustrating an example of a processing flow of the decoding device 20.
  • the first embodiment is an encryption method using a common secret key, and has an encryption device 10 that divides plaintext into blocks of a predetermined size and performs encryption for each one or two blocks.
  • the encryption system will be described.
  • the encryption device 10 uses an auxiliary variable called Tweak when encrypting. Further, as will be described later, the encryption apparatus 10 collects blocks according to the number corresponding to the predetermined parameter s, and calculates a plurality of partial checksums for each group of blocks. Then, the encryption device 10 calculates a meta checksum based on the partial checksum and generates a tag by encrypting the metachecksum. In this way, it is possible to ensure INT-RUP safety by calculating a meta checksum based on a partial checksum and generating a tag.
  • the authentication encryption system is a system that can be used for applications such as encryption and message authentication in wireless or wired data communication, and protection of communication between a wireless sensor device and an information collection server. It does not matter.)
  • FIG. 1 shows an example of the configuration of an authentication encryption system.
  • the authentication encryption system includes an encryption device 10 and a decryption device 20.
  • the encryption device 10 and the decryption device 20 may be configured by a plurality of information processing devices connected to be communicable with each other, or may be configured by a single information processing device.
  • the encryption device 10 encrypts the plaintext M using the common secret key shared with the decryption device 20 and generates a tag T that is an authentication tag used for detection of tampering.
  • the encryption apparatus 10 includes, for example, a plaintext input unit 100, an initial vector generation unit 101, an encryption unit with tweak 102 (encryption unit), a partial checksum generation unit 103, a meta check, and the like.
  • a sum generation unit 104, a meta checksum encryption unit 105 (tag generation unit), and a ciphertext output unit 106 are included.
  • the encryption device 10 has an arithmetic device such as a CPU (Central Processing Unit) (not shown) and a storage device.
  • the encryption device 10 realizes the processing units by causing the arithmetic device to execute a program included in a storage device (not shown).
  • the process accompanying encryption performed by each processing unit is realized by an encoder included in the encryption apparatus 10.
  • the plaintext input unit 100 inputs plaintext M to be encrypted.
  • the plaintext input unit 100 is realized by a character input device such as a keyboard, for example.
  • the plaintext input unit 100 may accept input of plaintext M from, for example, an external device connected via a network.
  • the initial vector generation unit 101 generates an initial vector N that is different from values generated in the past. For example, the initial vector generation unit 101 first outputs an arbitrary fixed value. The initial vector generation unit 101 stores the value of the initial vector generated immediately before. Then, the initial vector generation unit 101 outputs a value obtained by adding 1 to the value immediately before storage when generating the initial vector N for the second time and thereafter. In this way, the initial vector generation unit 101 generates an initial vector N that is different from a value generated in the past by outputting a value obtained by adding 1 to the previously output value. Note that the initial vector generation unit 101 may generate an initial vector by a method other than that exemplified above as long as it can generate a value different from a value generated in the past.
  • the encryption unit with tweak 102 can perform encryption in the XEX mode shown in Non-Patent Document 1.
  • FIG. 2 shows an example of processing of the entire encryption device 10 when the encryption unit 102 with tweak of the encryption device 10 performs encryption in the XEX mode.
  • the encryption unit with tweak 102 uses a block cipher extension called Tweakable block cipher when performing encryption in the XEX mode.
  • C [i] TE (N, i, j) (M [i])
  • TE (N, i, j) g (N, i, j) + E (g (N, i, j) + M [i]) (Formula XEX)
  • encrypt encrypt.
  • + represents an exclusive OR for each bit
  • E (*) represents an encryption function using the block cipher E (assuming that the secret key is also included).
  • G (*, *, *) is an n-bit mask generation function.
  • the encryption unit with Tweak 102 performs encryption for each block based on the TE function and the block obtained by dividing the plaintext M.
  • the Tweaked encryption unit 102 performs encryption based on the plaintext block M [1] and the TE function TE (N, 1,1), thereby enabling the ciphertext block C [ 1].
  • the number of blocks divided by the Tweak encryption unit 102 is not limited to six. That is, m may be any number.
  • the encryption unit with tweak 102 is configured to divide the plaintext into two n-bit blocks and perform encryption by 2-round facetel permutation according to Patent Document 2.
  • two round Faithtel permutation encryption is performed on two consecutive plaintext blocks M [i], M [i + 1] (where i is an odd number)
  • C [i] TE (N, (i + 1) / 2, j) (M [i]) + M [i + 1]
  • C [i + 1] TE (N, (i + 1) / 2, j ') (C [i]) + M [i] (Formula 2RFesitel)
  • encryption is performed.
  • j and j ' may be different values. Further, instead of (i + 1) / 2, a function f (i) relating to an arbitrary odd number i having different f (i) and f (i + 2) may be used.
  • the above-described XEX mode may be used as the TE function.
  • the encryption unit with tweak 102 can be configured to perform encryption using the XEX mode shown in FIG. 2 or encryption using 2-round facetel permutation shown in FIG.
  • the encryption unit with Tweak 102 When performing encryption in the XEX mode, the encryption unit with Tweak 102 performs encryption for each block obtained by dividing the plaintext M (see FIG. 2).
  • the encryption unit 102 with Tweak when performing encryption by 2-round Faithtel permutation, the encryption unit 102 with Tweak performs encryption for each pair of blocks obtained by dividing the plaintext M (see FIGS. 3 and 4).
  • the partial checksum generation unit 103 can be configured to obtain a partial checksum using exclusive OR.
  • the partial checksum S [1] is being sought.
  • the partial checksum S [1] is obtained by calculating the logical sum.
  • the partial checksum generation unit 103 performs appropriate padding on the plaintext and then obtains a partial checksum. By such processing, a partial checksum can be obtained without any problem even when the plaintext block number m is not a multiple of s.
  • the partial checksum generation unit 103 is not limited to exclusive OR, and may be configured to obtain a partial checksum using any group or ring operation such as arithmetic addition.
  • the meta checksum generation unit 104 hashes the partial checksum sequence S generated by the partial checksum generation unit 103 into one block using a keyed hash function or a pseudo random function, and calculates the meta checksum MetaSum. Output.
  • PMAC Parallellizable Message Authentication Code
  • the meta checksum generation unit 104 may be configured to use a general-purpose keyed hash function such as Non-Patent Document 3 or a pseudo-random function.
  • the meta checksum encryption unit 105 encrypts the meta check sum MetaSum obtained by the meta check sum generation unit 104 using the initial vector N generated by the initial vector generation unit 101 as Tweak. Thereby, the meta checksum encryption unit 105 generates the tag T.
  • the ciphertext output unit 106 outputs the initial vector N generated by the initial vector generation unit 101, the ciphertext C encrypted by the Tweak encryption unit 102, and the tag T generated by the meta checksum encryption unit 105. To do.
  • the ciphertext output unit 106 is realized by a character display device such as a display, for example.
  • the ciphertext output unit 106 may be configured to output the initial vector N, ciphertext C, and tag T to, for example, an external device connected via a network.
  • the decryption device 20 decrypts the ciphertext using a common secret key shared with the encryption device 10 and detects the presence or absence of tampering.
  • the decryption apparatus 20 includes a ciphertext input unit 200, a decryption unit with tweak 201, a partial checksum generation unit 202, a metachecksum generation unit 203, and a metachecksum encryption unit 204 (tag Generating section), tag verification section 205, and decoding result output section 206.
  • the decoding device 20 includes a calculation device such as a CPU (Central Processing Unit) (not shown) and a storage device.
  • the decoding device 20 realizes each processing unit by causing the arithmetic device to execute a program included in a storage device (not shown). It can also be said that the processing accompanying the decoding / verification performed by each processing unit is realized by a decoder included in the decoding device 20.
  • the ciphertext input unit 200 inputs a ciphertext C, an initial vector N, and a tag T to be decrypted.
  • the ciphertext input unit 200 is realized by a character input device such as a keyboard, for example.
  • the ciphertext input unit 200 may receive input of the ciphertext C, the initial vector N, and the tag T from, for example, an external device connected via a network.
  • the decryption unit 201 with Tweak performs decryption corresponding to the encryption unit 102 with Tweak.
  • the decryption unit 201 with Tweak performs decryption in the XEX mode, similarly to the encryption unit 102 with Tweak.
  • the decryption unit 201 with Tweak performs decryption for each block based on the TD function and the ciphertext C.
  • the decryption unit with tweak 201 performs decryption based on the ciphertext block C [1] and the TD function TD (N, 1,1), thereby obtaining a plaintext block M [1].
  • the decryption unit with tweak 201 performs decryption based on the ciphertext block C [1] and the TD function TD (N, 1,1), thereby obtaining a plaintext block M [1].
  • the Tweak-equipped decrypting unit 201 divides the ciphertext C into two n-bit blocks and then performs decryption by 2-round facetel permutation according to Patent Document 2.
  • the decryption by 2-round Faither permutation is performed on two consecutive ciphertext blocks C [i], C [i + 1] (where i is an odd number)
  • M [i] TE (N, (i + 1) / 2, j ') (C [i]) + C [i + 1]
  • M [i + 1] TE (N, (i + 1) / 2, j) (M [i]) + C [i]
  • decoding is performed.
  • the decoding unit 201 with Tweak performs the inverse function of (Equation 2RFesitel) described above. Unlike the case of using XEX, when decoding by 2-round Faither permutation, TD is not required for decoding.
  • the XE mode (formula XE) may be used as the TE function as in the case of the encryption unit 102 with Tweak.
  • the decryption unit with tweak 201 decrypts the ciphertext C by performing processing corresponding to the encryption unit with tweak 102.
  • the configuration of the partial checksum generation unit 202, the metachecksum generation unit 203, and the metachecksum encryption unit 204 includes a partial checksum generation unit 103, a metachecksum generation unit 104, and a metachecksum encryption included in the encryption device 10.
  • the configuration is the same as that of the unit 105. Therefore, detailed description is omitted.
  • the tag output from the meta checksum encryption unit 204 is calculated locally.
  • the tag output from the meta checksum encryption unit 204 is referred to as a verification tag T ′.
  • the tag verification unit 205 performs comparison verification between the locally calculated verification tag T ′ output from the meta checksum encryption unit 204 and the tag T output from the ciphertext input unit 200. Then, the tag verification unit 205 indicates “match” indicating that the verification tag T ′ and the tag T match based on the verification result, or indicates that the verification tag T ′ and the tag T do not match. One of the binary verification results of “mismatch” is output.
  • the decryption result output unit 206 outputs the binary verification result output from the tag verification unit 205 and the plaintext M output from the decryption unit 201 with Tweak.
  • the decoding result output unit 206 is realized by, for example, a character display device such as a display.
  • the decryption result output unit 206 may be configured to output the plaintext M to, for example, an external device connected via a network.
  • the above is an example of the configuration of the decoding device 20.
  • plaintext M100 (M [1], M [2], ..., M [m]) to be encrypted.
  • the plaintext M input to the plaintext input unit 100 is divided into a plurality of blocks and input to the encryption unit 102 with tweak and the partial checksum generation unit 103.
  • the initial vector generation unit 101 generates an initial vector N (step S101).
  • the encryption unit with Tweak 102 encrypts the plaintext M for each block using the initial vector N as Tweak, and obtains an encrypted ciphertext C having the same length as the block of the plaintext M (step S102).
  • the ciphertext output unit 106 outputs the initial vector N, ciphertext C, and tag T obtained by the above processes (step S106).
  • the decryption unit with Tweak 201 decrypts the ciphertext C block by block using N as Tweak, and obtains a decrypted plaintext M having the same length as the block of the ciphertext C (step S202).
  • the tag verification unit 205 compares the tag T output from the ciphertext input unit 200 with the verification tag T ′ output from the meta checksum encryption unit 204. Then, the tag verification unit 205 outputs a binary verification result indicating matching or mismatching (step S206).
  • the decryption result output unit 206 outputs the obtained binary verification result and plaintext M (step S207).
  • the above is an example of the flow when the decoding device 20 performs the decoding process.
  • the encryption device 10 includes the partial checksum generation unit 103, the metachecksum generation unit 104, and the metachecksum encryption unit 105.
  • the meta checksum encryption unit 105 encrypts the meta checksum calculated by the metachecksum generation unit 104 based on the partial checksum calculated by the partial checksum generation unit 103, thereby T can be generated. That is, the encryption device 10 uses a meta checksum obtained by hashing all partial checksums with a key for deriving a tag. This prevents an INT-RUP security attack from succeeding unless all linear constraints defined between s blocks (ie, partial checksums) are satisfied.
  • Non-Patent Document 2 The outline of the attack on INT-RUP safety against OCB shown in Non-Patent Document 2 is as follows.
  • each block of C_1 and each block of C_2 are different from the corresponding blocks of the ciphertext C, and T_1 and T_2 are arbitrary.
  • the return values from the unverified decryption oracle, ie unverified plaintext blocks, are (M_1 [1], M_1 [2], ..., M_1 [m]) and (M_2 [1], M_2 [2], ..., M_2 [m]).
  • TE (N, 6,2) (M [1] + M [2] + ... + M [m]) T is already known by the query to the first encryption oracle.
  • Non-Patent Document 2 indicates that if m is about the block size n, the checksum ⁇ M [1] + M [2] with a known probability that the checksum of the unverified plaintext is almost 1/2. It was shown that there is a combination that matches + ... + M [m], and if it exists, it can always be found efficiently. If such C 'is found, (N, C', T) will always succeed as a forgery.
  • the above attack repeatedly uses the same initial vector on the decryption side, and finds that the unverified plaintext satisfies a certain linear constraint, that is, the constraint that the checksum is the same as the plaintext used initially in the encrypted query It works by that.
  • a meta checksum obtained by hashing all partial checksums with a key is used for deriving a tag. For this reason, attacks like the above will not succeed unless all linear constraints defined between s blocks (ie, partial checksums) are satisfied, and as a result, high INT-RUP security is achieved by keeping s small enough. Can be guaranteed.
  • the encryption device 3 includes an encryption unit 31, a partial checksum generation unit 32, a meta checksum generation unit 33, and a tag generation unit 34.
  • the encryption device 3 has an arithmetic device such as a CPU (not shown) and a storage device.
  • the encryption device 3 realizes the processing units by causing the arithmetic device to execute a program included in a storage device (not shown).
  • the process accompanying the encryption performed by each processing unit is realized by an encoder included in the encryption apparatus 3.
  • the encryption unit 31 encrypts the block obtained by dividing the plain text using the auxiliary variable.
  • the partial checksum generation unit 32 generates a plurality of partial checksums based on the blocks obtained by dividing the plain text.
  • the meta checksum generation unit 33 generates a meta checksum based on the partial checksum generated by the partial checksum generation unit 32.
  • the tag generation unit 34 generates a tag used for detection of tampering based on the meta checksum generated by the meta checksum generation unit 33.
  • the encryption device 3 encrypts plain text to generate a cipher text and also generates a tag. Then, the encryption device 3 outputs the ciphertext encrypted by the encryption unit 31 and the tag generated by the tag generation unit 34.
  • the encryption device 3 includes the partial checksum generation unit 32, the meta checksum generation unit 33, and the tag generation unit 34.
  • the tag generation unit 34 encrypts the meta checksum calculated by the metachecksum generation unit 33 based on the plurality of partial checksums calculated by the partial checksum generation unit 32, thereby enabling the tag T Can be generated. This makes it possible to guarantee high INT-RUP safety.
  • a program according to another embodiment of the present invention is based on an encryption unit 31 that encrypts a block obtained by dividing a plaintext using an auxiliary variable, and a block obtained by dividing the plaintext.
  • a partial checksum generator 32 that generates a plurality of partial checksums
  • a metachecksum generator 33 that generates a metachecksum based on the partial checksums generated by the partial checksum generator 32
  • a metachecksum Based on the meta checksum generated by the generation unit 33 a tag generation unit 34 that generates a tag used for detection of tampering is realized, and the ciphertext encrypted by the encryption unit 31 and the tag generation unit 34 generate This is a program that outputs a tag.
  • the encryption method executed by the encryption device 3 described above is that the encryption device 3 encrypts a block obtained by dividing the plaintext using an auxiliary variable, and a plurality of parts based on the block obtained by dividing the plaintext. Generate a checksum, generate a metachecksum based on the generated partial checksum, generate a tag used to detect tampering based on the generated metachecksum, and output ciphertext and tags It is a method of doing.
  • the decoding device 4 includes a decoding unit 41, a partial checksum generation unit 42, a meta checksum generation unit 43, a tag generation unit 44, and a tag verification unit 45.
  • the decoding device 4 has an arithmetic device such as a CPU (not shown) and a storage device.
  • the decoding device 4 realizes each processing unit by causing the arithmetic device to execute a program included in a storage device (not shown). It can also be said that the processing accompanying the decoding / verification performed by each processing unit is realized by a decoder included in the decoding device 4.
  • the decryption unit 41 decrypts the block obtained by dividing the ciphertext using the auxiliary variable for each block to generate plaintext.
  • the partial checksum generation unit 42 generates a plurality of partial checksums based on the plaintext block decrypted by the decryption unit 41.
  • the meta checksum generation unit 43 generates a meta checksum based on the partial checksum generated by the partial checksum generation unit 42.
  • the tag generation unit 44 generates a metachecksum generated by the meta checksum generation unit 43. Based on the checksum, a verification tag used to detect tampering is generated. Thereafter, the tag verification unit 45 performs comparative verification between the tag received together with the ciphertext and the verification tag generated by the tag generation unit 44.
  • the decrypting device 4 decrypts the ciphertext to generate plaintext, and verifies the tag and the verification tag. Then, the decrypting device 4 outputs the plaintext decrypted by the decrypting unit 41 and the result of the comparison verification by the tag verifying unit 45.
  • the decoding device 4 includes the partial checksum generation unit 42, the meta checksum generation unit 43, the tag generation unit 44, and the tag verification unit 45. Even with such a configuration, the object of the present invention can be achieved as in the case of the encryption device 3.
  • a program according to another embodiment of the present invention includes a decryption unit 41 that decrypts a block obtained by dividing ciphertext into blocks using an auxiliary variable to generate plaintext, and a decryption unit.
  • a partial checksum generation unit 42 that generates a plurality of partial checksums based on the plaintext block decrypted by 41, and a meta that generates a metachecksum based on the partial checksums generated by the partial checksum generation unit 42
  • a checksum generation unit 43 a tag generation unit 44 that generates a verification tag used to detect tampering based on the metachecksum generated by the metachecksum generation unit 43; a tag received together with the ciphertext; and tag generation
  • the tag verification unit 45 that performs comparison verification with the verification tag generated by the unit 44 is realized, and the plaintext decrypted by the decryption unit 41 and the tag verification unit 45 And results of ⁇ license, is a program that outputs a.
  • the decryption method executed by the decryption device 4 described above is such that the decryption device 4 decrypts the block obtained by dividing the ciphertext into blocks using auxiliary variables to generate plaintext, and converts the block into the decrypted plaintext block.
  • a plurality of partial checksums, a metachecksum is generated based on the generated partial checksum, and a verification tag used for detection of tampering is generated based on the generated metachecksum.
  • This is a method of performing comparison verification between the tag received together with the sentence and the generated verification tag, and outputting the decrypted plaintext and the result of the comparison verification.
  • (Appendix 1) An encryption unit for encrypting a block obtained by dividing the plaintext using an auxiliary variable; A partial checksum generation unit that generates a plurality of partial checksums based on the blocks obtained by dividing the plaintext; A meta checksum generation unit that generates a meta checksum based on the partial checksum generated by the partial checksum generation unit; A tag generation unit that generates a tag used for tampering detection based on the metachecksum generated by the metachecksum generation unit; Have An encryption apparatus that outputs ciphertext encrypted by the encryption unit and the tag generated by the tag generation unit.
  • (Appendix 2) The encryption device according to attachment 1, wherein The partial checksum generation unit generates a plurality of partial checksums by collecting the blocks obtained by dividing the plaintext into a predetermined number and generating the partial checksum for each of the collected blocks. Yes Encryption device.
  • (Appendix 3) The encryption device according to appendix 2, wherein The partial checksum generation unit is configured to generate the partial checksum by obtaining an exclusive OR of the blocks combined into one.
  • (Appendix 4) An encryption device according to any one of appendix 1 to appendix 3, The partial checksum generation unit collects even-numbered blocks of blocks obtained by dividing the plaintext into a predetermined number, and generates the partial checksum for each of the combined blocks.
  • (Appendix 5) An encryption device according to any one of appendix 2 to appendix 4, The predetermined number is a value of 2 or more.
  • (Appendix 6) An encryption device according to any one of appendix 1 to appendix 5, The meta checksum generation unit hashes the plurality of partial checksums generated by the partial checksum generation unit into one block using a hash function with a key or a pseudo-random function, thereby An encryption device that generates a thumb.
  • (Appendix 7) An encryption device according to any one of appendix 1 to appendix 6, The tag generation unit generates the tag by encrypting the meta checksum generated by the meta checksum generation unit using an auxiliary variable.
  • An encryption unit for encrypting a block obtained by dividing the plaintext using an auxiliary variable An encryption unit for encrypting a block obtained by dividing the plaintext using an auxiliary variable; A partial checksum generation unit that generates a plurality of partial checksums based on the blocks obtained by dividing the plaintext; A meta checksum generation unit that generates a meta checksum based on the partial checksum generated by the partial checksum generation unit; A tag generation unit that generates a tag used for tampering detection based on the metachecksum generated by the metachecksum generation unit; Realized, A program for outputting ciphertext encrypted by the encryption unit and the tag generated by the tag generation unit.
  • a decryption unit that decrypts the block into which the ciphertext is divided for each block using auxiliary variables, and generates plaintext;
  • a partial checksum generation unit that generates a plurality of partial checksums based on the plaintext block decrypted by the decryption unit;
  • a meta checksum generation unit that generates a meta checksum based on the partial checksum generated by the partial checksum generation unit;
  • a tag generation unit that generates a verification tag to be used for detection of tampering based on the metachecksum generated by the metachecksum generation unit;
  • a tag verification unit that performs comparison verification between the tag received together with the ciphertext and the verification tag generated by the tag generation unit;
  • Have A decryption device that outputs the plaintext decrypted by the decryption unit and a result of comparison verification by the tag verification unit.
  • the decryption device The block into which the ciphertext is divided is decrypted for each block using auxiliary variables to generate plaintext, Generating a plurality of partial checksums based on the decrypted plaintext block; Generating a meta checksum based on the generated partial checksum; Based on the generated meta checksum, a verification tag used for detection of falsification is generated, Perform comparison verification between the tag received together with the ciphertext and the generated verification tag, A decryption method for outputting the decrypted plaintext and a result of comparison verification.
  • a decryption unit that decrypts the block into which the ciphertext is divided for each block using auxiliary variables, and generates plaintext;
  • a partial checksum generation unit that generates a plurality of partial checksums based on a plaintext block decrypted by the decryption unit;
  • a meta checksum generation unit that generates a meta checksum based on the partial checksum generated by the partial checksum generation unit;
  • a tag generation unit that generates a verification tag to be used for detection of tampering based on the metachecksum generated by the metachecksum generation unit;
  • a tag verification unit that performs comparison verification between the tag received together with the ciphertext and the verification tag generated by the tag generation unit; Realized, A program for outputting the plaintext decrypted by the decryption unit and a result of comparison verification by the tag verification unit.
  • the programs described in the above embodiments and supplementary notes are stored in a storage device or recorded on a computer-readable recording medium.
  • the recording medium is a portable medium such as a flexible disk, an optical disk, a magneto-optical disk, and a semiconductor memory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

平文を分割したブロックを、補助変数を用いて暗号化する暗号化部と、前記平文を分割したブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部と、前記部分チェックサム生成部が生成した前記部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部と、前記メタチェックサム生成部が生成した前記メタチェックサムに基づいて、改ざんの検出に用いるタグを生成するタグ生成部と、を有し、前記暗号化部が暗号化した前記暗号文と、前記タグ生成部が生成した前記タグと、を出力する。

Description

暗号化装置、暗号化方法、プログラム、復号装置、復号方法
 本発明は、暗号化装置、暗号化方法、プログラム、復号装置、復号方法に関する。
 事前に共有された秘密鍵を用いて、平文メッセージに対して暗号化と改ざん検知用の認証タグ計算とを同時に適用する認証暗号(Authenticated Encryption, AE)という技術が知られている。
 このような認証暗号を効率的に行う技術の一つとして、例えば、特許文献1に示すようなOCB(Offset Code Book)モードと呼ばれる認証暗号方式が知られている。OCBモードは、暗号化と復号の際に、Tweakと呼ばれる補助変数(調整値)を導入する、Tweakableブロック暗号と呼ばれるブロック暗号を拡張したものである。具体的には、OCBモードでは、非特許文献1に記載されているXEXモードによる暗号化を行うことで、Tweakを用いた暗号化を行っている。また、OCBモードでは、平文を分割した各ブロックの排他的論理和に上記暗号化を行う際と同様の処理を行うことでタグを生成している。
 また、認証暗号方式の一例として、例えば、特許文献2が知られている。特許文献2には、2ラウンドフェイステル暗号化手段を有する暗号化装置が記載されている。2ラウンドフェイステル暗号化手段は、平文を2つのnビットブロックごとに分割したうえで、2ラウンドフェイステル置換による暗号化行っている。2ラウンドフェイステル暗号化手段では、2ラウンドフェイステル構造のラウンド関数に、Tweakと呼ばれる補助変数を入れた暗号化関数を用いることになる。なお、特許文献2に記載の技術は、OTR(Offset Two-Round)方式とも呼ばれている。
 また、特許文献2に記載のOTR方式の変形例として、例えば、特許文献3がある。特許文献3には、ブロックデータごとに異なる値となるブロックナンスを生成するブロックナンス生成手段と、対応するブロックナンスを共通鍵で暗号化してブロックデータと排他的論理和をとることで暗号データを生成する暗号データ生成手段と、を有する認証暗号化装置が記載されている。特許文献3に記載の技術の場合、2ラウンドフェイステル置換の代わりに、上記処理を行うことになる。
 また、関連する技術として、例えば、特許文献4がある。特許文献4には、各セグメントについて暗号チェックサムを計算し、セグメントと暗号チェックサムを結合してメディアセグメントを生成する、という方法が記載されている。
米国特許第8321675号明細書 国際公開第2015/015702号 特開2016-75765号公報 特表2007-534230号公報
Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC. Phillip Rogaway. ASIACRYPT 2004.http://web.cs.ucdavis.edu/~rogaway/papers/offsets.pdf How to Securely Release Unverified Plaintext in Authenticated Encryption. Elena Andreeva, Andrey Bogdanov, Atul Luykx, Bart Mennink, Nicky Mouha, and Kan Yasuda. Asiacrypt 2014. https://eprint.iacr.org/2014/144.pdf NIST Special Publication 800-38B. Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf
 認証暗号においてよく考えられる問題として、暗号化・復号における誤用(misuse)がある。これは、本来暗号化・復号を安全に行うために必要なルールを遵守しないことによる攻撃を指しており、現実の問題として考えられている。
 上記認証暗号の誤用の一つとして、復号における未検証平文の漏洩がある。本来、認証暗号の復号では、改ざんが見つかった場合には、復号中の平文、すなわち未検証の平文、は出力する必要はない。しかしながら、例えば、復号側のメモリの制約や暗号化プログラムの実装ミスなどにより、未検証の平文が出力される場合がある。このような場合、攻撃者が改ざんを行うことにより、その検証が受理されたか否かという2値情報以上の情報が攻撃者へ渡されることになり、認証暗号方式によっては攻撃を許すことになる。このような問題は、decryption-misuseとも呼ばれている。
 未検証平文の漏洩が有る場合における改ざんの困難性を評価する方法としては、非特許文献2に記載されているINT-RUP(Integrity-under-release-of-unverified-plaintext)安全性がある。非特許文献2では、特許文献1に記載されているようなOCBは、INT-RUP安全でないことが示されている。具体的には、非特許文献2では、n-bitブロック暗号(例えば、AESならばn =128)を用いたOCBについて、nブロック暗号文を未検証復号オラクルへ数回クエリすることで偽造が可能となることが示されている。なお、未検証復号オラクルは、復号装置(デコーダ)の役割を分割したものの一つに相当する。
 また、特許文献2に記載されているOTRの方式も、OCBと同様の構造を有している。そのため、OTRの方式もOCBと同様にINT-RUP安全ではない。
 以上のように、効率の良い認証暗号方式であるOCBやOTRについては、INT-RUP安全性を有さない。この事実は、未検証平文の漏洩があるシナリオ、例えば、復号側のメモリが非常に少ない場合など、において、OCBやOTRの利用を妨げる要因となっていた。
 なお、上述したように、特許文献3に記載されている技術はOTRの変形例であり、特許文献4では、上記のような問題は何ら考慮されていない。そのため、特許文献3、4に記載の技術を用いても、上記のような問題は解決できなかった。
 そこで、本発明は、未検証平文が漏洩するおそれがある場合、効率の良い認証暗号方式は安全でないおそれがある、という問題を解決する暗号化装置、暗号化方法、プログラム、復号装置、復号方法を提供することにある。
 かかる目的を達成するため本発明の一形態である暗号化装置は、
 平文を分割したブロックを、補助変数を用いて暗号化する暗号化部と、
 前記平文を分割したブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部と、
 前記部分チェックサム生成部が生成した前記部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部と、
 前記メタチェックサム生成部が生成した前記メタチェックサムに基づいて、改ざんの検出に用いるタグを生成するタグ生成部と、
 を有し、
 前記暗号化部が暗号化した暗号文と、前記タグ生成部が生成した前記タグと、を出力する
 という構成をとる。
 また、本発明の他の形態である暗号化方法は、
 暗号化装置が、
 平文を分割したブロックを、補助変数を用いて暗号化し、
 前記平文を分割したブロックに基づいて、複数の部分チェックサムを生成し、
 生成した前記部分チェックサムに基づいて、メタチェックサムを生成し、
 生成した前記メタチェックサムに基づいて、改ざんの検出に用いるタグを生成し、
 前記平文を暗号化した暗号文と、前記タグと、を出力する
 という構成をとる。
 また、本発明の他の形態であるプログラムは、
 暗号化装置に、
 平文を分割したブロックを、補助変数を用いて暗号化する暗号化部と、
 前記平文を分割したブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部と、
 前記部分チェックサム生成部が生成した前記部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部と、
 前記メタチェックサム生成部が生成した前記メタチェックサムに基づいて、改ざんの検出に用いるタグを生成するタグ生成部と、
 を実現させ、
 前記暗号化部が暗号化した暗号文と、前記タグ生成部が生成した前記タグと、を出力する
 プログラムである。
 また、本発明の他の形態である復号装置は、
 暗号文を分割したブロックを、補助変数を用いてブロックごとに復号して平文を生成する復号部と、
 前記復号部が復号した前記平文のブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部と、
 前記部分チェックサム生成部が生成した前記部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部と、
 前記メタチェックサム生成部が生成した前記メタチェックサムに基づいて、改ざんの検出に用いる検証用タグを生成するタグ生成部と、
 前記暗号文とともに受信したタグと、前記タグ生成部が生成した前記検証用タグと、の比較検証を行うタグ検証部と、
 を有し、
 前記復号部が復号した前記平文と、前記タグ検証部による比較検証の結果と、を出力する
 という構成をとる。
 また、本発明の他の形態である復号方法は、
 復号装置が、
 暗号文を分割したブロックを、補助変数を用いてブロックごとに復号して平文を生成し、
 復号した前記平文のブロックに基づいて、複数の部分チェックサムを生成し、
 生成した前記部分チェックサムに基づいて、メタチェックサムを生成し、
 生成した前記メタチェックサムに基づいて、改ざんの検出に用いる検証用タグを生成し、
 前記暗号文とともに受信したタグと、生成した前記検証用タグと、の比較検証を行い、
 復号した前記平文と、比較検証の結果と、を出力する
 という構成をとる。
 また、本発明の他の形態であるプログラムは、
 復号装置に、
 暗号文を分割したブロックを、補助変数を用いてブロックごとに復号して平文を生成する復号部と、
 前記復号部が復号した平文のブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部と、
 前記部分チェックサム生成部が生成した前記部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部と、
 前記メタチェックサム生成部が生成した前記メタチェックサムに基づいて、改ざんの検出に用いる検証用タグを生成するタグ生成部と、
 前記暗号文とともに受信したタグと、前記タグ生成部が生成した前記検証用タグと、の比較検証を行うタグ検証部と、
 を実現させ、
 前記復号部が復号した前記平文と、前記タグ検証部による比較検証の結果と、を出力する
 プログラムである。
 本発明は、以上のように構成されることにより、未検証平文が漏洩するおそれがある場合、効率の良い認証暗号方式は安全でないおそれがある、という問題を解決する暗号化装置、暗号化方法、プログラム、復号装置、復号方法を提供することが可能となる。
本発明の第1の実施形態における認証暗号システムの全体の構成の一例を示すブロック図である。 暗号化装置が暗号化ルーチンをXEXモードにより実現した場合の処理の一例を示す図である。 暗号化装置が暗号化ルーチンを2ラウンドフェイステル置換により実現した場合の処理の一例を示す図である。 2ラウンドフェイステル置換の内部構造の一例を示した図である。 2ラウンドフェイステル置換の内部構造の一例を示した図である。 復号装置が復号ルーチンをXEXモードにより実現した場合の処理の一例を示す図である。 復号装置が復号ルーチンを2ラウンドフェイステル置換により実現した場合の処理の一例を示す図である。 2ラウンドフェイステル置換の内部構造の一例を示した図である。 暗号化装置が行う処理の一例を示す図である。 暗号化装置の処理の流れの一例を示すフローチャートである。 復号装置が行う処理の一例を示す図である。 復号装置の処理の流れの一例を示すフローチャートである。 本発明の第2の実施形態における暗号化装置の構成の一例を示すブロック図である。 本発明の第2の実施形態における復号装置の構成の一例を示すブロック図である。
[第1の実施形態]
 本発明の第1の実施形態を図1から図12までを参照して説明する。図1は、認証暗号システムの全体の構成の一例を示すブロック図である。図2は、暗号化装置10が暗号化ルーチンをXEXモードにより実現した場合の処理の一例を示す図である。図3は、暗号化装置10が暗号化ルーチンを2ラウンドフェイステル置換により実現した場合の処理の一例を示す図である。図4、図5は、2ラウンドフェイステル置換の内部構造の一例を示した図である。図6は、復号装置20が復号ルーチンをXEXモードにより実現した場合の処理の一例を示す図である。図7は、復号装置20が復号ルーチンを2ラウンドフェイステル置換により実現した場合の処理の一例を示す図である。図8は、2ラウンドフェイステル置換の内部構造の一例を示した図である。図9は、暗号化装置10が行う処理の一例を示す図である。図10は、暗号化装置10の処理の流れの一例を示すフローチャートである。図11は、復号装置20が行う処理の一例を示す図である。図12は、復号装置20の処理の流れの一例を示すフローチャートである。
 第1の実施形態では、共通秘密鍵を用いた暗号化方式であって、平文を所定のサイズのブロックに分割して、1つまたは2つのブロックごとに暗号化を行う暗号化装置10を有する暗号化システムについて説明する。本実施形態における暗号化装置10は、暗号化する際に、Tweakと呼ばれる補助変数を用いる。また、後述するように、暗号化装置10は、所定のパラメータsに応じた数ごとにブロックをまとめて、ブロックのまとまりごとに複数の部分チェックサムを算出する。そして、暗号化装置10は、部分チェックサムに基づいてメタチェックサムを算出するとともに、メタチェックサムを暗号化することでタグを生成する。このように部分チェックサムに基づくメタチェックサムを算出してタグを生成することで、INT-RUP安全性を確保することが可能となる。
 認証暗号システムは、無線もしくは有線のデータ通信における暗号化とメッセージ認証、無線センサーデバイスと情報収集サーバとの通信の保護、などの用途に活用可能なシステムである(上記例示した以外に活用しても構わない)。図1は、認証暗号システムの構成の一例を示している。図1を参照すると、認証暗号システムは、暗号化装置10と、復号装置20と、を有している。なお、暗号化装置10と復号装置20は、互いに通信可能に接続された複数の情報処理装置により構成されても構わないし、一つの情報処理装置により構成されても構わない。
 暗号化装置10は、復号装置20と共有する共通秘密鍵を用いて、平文Mに対する暗号化を行うとともに、改ざんの検出に用いる認証タグであるタグTを生成する。図1を参照すると、暗号化装置10は、例えば、平文入力部100と、初期ベクトル生成部101と、Tweak付き暗号化部102(暗号化部)と、部分チェックサム生成部103と、メタチェックサム生成部104と、メタチェックサム暗号化部105(タグ生成部)と、暗号文出力部106と、を有している。
 例えば、暗号化装置10は、図示しないCPU(Central Processing Unit)などの演算装置と記憶装置とを有している。暗号化装置10は、例えば、図示しない記憶装置が有するプログラムを演算装置が実行することで、上記各処理部を実現する。なお、各処理部が行う暗号化に伴う処理は、暗号化装置10が有する符号化器により実現される、ということも出来る。
 平文入力部100は、暗号化の対象となる平文Mを入力する。平文入力部100は、例えば、キーボードなどの文字入力装置により実現される。平文入力部100は、例えば、ネットワークを介して接続された外部装置などから平文Mの入力を受け付けても構わない。
 初期ベクトル生成部101は、過去に生成した値とは異なる初期ベクトルNを生成する。初期ベクトル生成部101は、例えば、最初に任意の固定値を出力する。また、初期ベクトル生成部101は、直前に生成した初期ベクトルの値を記憶している。そして、初期ベクトル生成部101は、2回目以降に初期ベクトルNを生成する際、記憶する直前の値に1を加えた値を出力する。このように、初期ベクトル生成部101は、一つ前に既に出力した値に1を加えた値を出力することで、過去に生成した値とは異なる初期ベクトルNを生成する。なお、初期ベクトル生成部101は、過去に生成した値とは異なる値を生成可能ならば、上記例示した以外の方法で初期ベクトルを生成しても構わない。
 Tweak付き暗号化部102は、平文Mをnビットブロックごとに分割することで生成したm個のブロックM[1],M[2],...,M[m]を得る。そして、Tweak付き暗号化部102は、それぞれのM[i](i=1,2,...,m)を初期ベクトルNおよびブロックのインデックスiをTweakと呼ばれる補助変数として、ブロックごとに共通鍵暗号で暗号化する。これにより、Tweak付き暗号化部102は、平文Mを分割したブロックと同じ長さの暗号文C = (C[1],C[2],...,C[m])を得る。なお、Tweakには、処理の種類を表すインデックスj(例えば、J=1)を含めてもよい。
 例えば、Tweak付き暗号化部102は、非特許文献1が示すXEXモードによる暗号化を行うことが出来る。図2は、暗号化装置10のTweak付き暗号化部102がXEXモードによる暗号化を行う際の、暗号化装置10全体の処理の一例を示している。図2を参照すると、Tweak付き暗号化部102は、XEXモードによる暗号化を行う場合、Tweakableブロック暗号と呼ばれるブロック暗号の拡張をもちいて、
C[i] = TE(N,i,j)(M[i]) ただし TE(N,i,j) = g(N,i,j)+E(g(N,i,j)+M[i]) (式XEX)
と暗号化する。
 ここで、+はビット毎の排他的論理和を表し、E(*)はブロック暗号E(秘密鍵も含まれているものとする)による暗号化関数を表す。また、g(*,*,*)は、nビットのマスク生成関数である。典型的には、2と3を有限体 GF(2^n)の生成元(多項式表現におけるx)および生成元+単位元(多項式表現におけるx+1)とみなし、X.Yを有限体GF(2^n)上の元XとYの乗算、2^iと3^jをそれぞれ2のi乗算,3のj乗算、としたうえで、g(N,i,j)= E(N).2^i.3^j とすることで作られる。
 このように、Tweak付き暗号化部102は、TE関数と平文Mを分割したブロックとに基づいて、それぞれのブロックごとに暗号化を行う。例えば、図2で示す場合、Tweak付き暗号化部102は、平文のブロックM[1]とTE関数TE(N,1,1)とに基づく暗号化を行うことで、暗号文のブロックC[1]を得ている。なお、図2では、平文Mからm=6個のブロックを分割している場合について例示している。しかしながら、Tweak付き暗号化部102が分割するブロックの数は6に限定されない。つまり、mは任意の数で構わない。
 また、Tweak付き暗号化部102は、図3から図5で示すように、平文を2つのnビットブロックごとに分割したうえで、特許文献2による2ラウンドフェイステル置換による暗号化を行うよう構成することも出来る。2ラウンドフェイステル置換による暗号化は、図4で示すように、連続する平文2ブロックM[i],M[i+1](ただし、iは奇数)に対して、
C[i] = TE(N,(i+1)/2,j)(M[i])+M[i+1]
C[i+1] = TE(N,(i+1)/2,j')(C[i])+M[i]  (式 2RFesitel)
とすることで暗号化を行うものである。
 なお、j,j'は異なる値であればよい。また、(i+1)/2の代わりに、任意の奇数iに関する関数f(i)で、f(i)とf(i+2)が異なるものを用いてもよい。
 また、2ラウンドフェイステル変換による暗号化を行う際は、上記TE関数として、図5で示すような、XEXモードにおける外側のマスク加算を省略したXEモードTE(N,i,j) = E(g(N,i,j)+M[i]) (式XE)を用いることが出来る。なお、2ラウンドフェイステル変換による暗号化を行う際、上記TE関数として、上述したXEXモードを用いても構わない。
 以上のように、Tweak付き暗号化部102は、図2で示すXEXモードによる暗号化、又は、図3で示す2ラウンドフェイステル置換による暗号化を行うよう構成することが出来る。XEXモードによる暗号化を行う場合、Tweak付き暗号化部102は、平文Mを分割したブロックごとに暗号化を行うことになる(図2参照)。一方、2ラウンドフェイステル置換による暗号化を行う場合、Tweak付き暗号化部102は、平文Mを分割したブロックのペアごとに暗号化を行うことになる(図3、図4参照)。
 部分チェックサム生成部103は、平文M=M[1],M[2],...,M[m]の各ブロックを所定の正整数sごとにまとめる。そして、部分チェックサム生成部103は、1つにまとめられた各ブロックに基づいて、複数の部分チェックサムを求める。
 例えば、部分チェックサム生成部103は、排他的論理和を用いて部分チェックサムを求めるよう構成することが出来る。排他的論理和を用いて部分チェックサムを求める場合、部分チェックサム生成部103は、個々の部分チェックサムとして
S[1] = M[1] + M[2] + ... + M[s],S[2] = M[s+1] + M[s+2] ... + M[2s], ...,を求める。そして、部分チェックサム生成部103は、それらの系列S = S[1],S[2],...,S[m/s] を出力する。
 例えば、図2で示す例では、s=2である場合における、部分チェックサム生成部103の処理の一例を示している。図2で示す場合、部分チェックサム生成部103は、s=2個ごとにブロックをまとめており、例えば、1つにまとめられたM[1]とM[2]の排他的論理和を求めることで部分チェックサムS[1]を求めている。また、例えば、図3で示す例では、s=4である場合における、部分チェックサム生成部103の処理の一例を示している。図3で示す場合、部分チェックサム生成部103は、s=4個ごとにブロックをまとめており、例えば、M[1]とM[2]とM[3]とM[4]の排他的論理和を求めることで部分チェックサムS[1]を求めている。
 なお、平文のブロック数mがsの倍数でない場合、部分チェックサム生成部103は、平文へ適当なパディングを行ったのち、部分チェックサムを求める。このような処理により、平文のブロック数mがsの倍数でない場合でも問題なく部分チェックサムを求めることが出来る。
 なお、部分チェックサム生成部103は、排他的論理和に限らず、例えば算術加算など任意の群ないし環演算を用いて部分チェックサムを求めるよう構成しても構わない。
 また、Tweak付き暗号化部102が2ラウンドフェイステル置換による暗号化を行う場合、部分チェックサム生成部103は、sを偶数とした上で、M[1]からM[s]のうちの偶数ブロックのみを用いても構わない。すなわち、S[i] = M[2i] + M[2i+2] + ... + C[2i+s],とすることも可能である。
 メタチェックサム生成部104は、部分チェックサム生成部103が生成した部分チェックサム系列Sを、鍵付きのハッシュ関数、又は、擬似ランダム関数を用いて1ブロックにハッシュして、メタチェックサムMetaSumを出力する。
 例えば、メタチェックサム生成部104は、非特許文献1によるPMAC(Parallelizable Message Authentication Code)と同様の鍵付きハッシュ手法を用いることが可能である。具体的には、メタチェックサム生成部104は、Tweak付き暗号化部102で用いたTE関数を用いて、V[i] = TE(N,i,j')(S[i])を各i= 1,..., m/sについて求める。そして、メタチェックサム生成部104は、各iについて求めた結果の排他的論理和を求めることでメタチェックサムMetaSumを求める。換言すると、メタチェックサム生成部104は、V[1] + V[2] + ... + V[m/s]を求めることでメタチェックサムMetaSumを求める。
 なお、j'は、Tweak付き暗号化部102で用いたj(例えば、1)と異なる任意値であり、例えばj'=2である。また、メタチェックサム生成部104は、TEの外側のマスク加算を省略したXEモードTE(N,i,j) = E(g(N,i,j)+M[i]) (式XE)を用いて各iについてV[i]を求めても構わない。また、メタチェックサム生成部104は、非特許文献3などの汎用的な鍵付きハッシュ関数、あるいは、擬似ランダム関数も用いるよう構成しても構わない。
 メタチェックサム暗号化部105は、初期ベクトル生成部101が生成した初期ベクトルNをTweakとして用いて、メタチェックサム生成部104が求めたメタチェックサムMetaSumを暗号化する。これにより、メタチェックサム暗号化部105は、タグTを生成する。
 例えば、メタチェックサム暗号化部105は、Tweak付き暗号化部102で用いたTE関数を用いて、T = TE(N,i,j'')(MetaSum)とすることで暗号化を行う。なお、J''は、Tweak付き暗号化部102で用いたj(例えば、1)やメタチェックサム生成部104で用いたj'(例えば、2)と異なる任意値であり、例えばj''=3である。
 暗号文出力部106は、初期ベクトル生成部101が生成した初期ベクトルNと、Tweak付き暗号化部102が暗号化した暗号文Cと、メタチェックサム暗号化部105が生成したタグTとを出力する。暗号文出力部106は、例えば、ディスプレイなどの文字表示装置により実現される。暗号文出力部106は、例えば、ネットワークを介して接続された外部装置などに対して、初期ベクトルN、暗号文C、タグTを出力するよう構成しても構わない。
 以上が、暗号化装置10の構成の一例である。続いて、復号装置20の構成の一例について説明する。
 復号装置20は、暗号化装置10と共有する共通秘密鍵を用いて、暗号文を復号するとともに、改ざんの有無を検出する。図1を参照すると、復号装置20は、暗号文入力部200と、Tweak付き復号部201と、部分チェックサム生成部202と、メタチェックサム生成部203と、メタチェックサム暗号化部204(タグ生成部)と、タグ検証部205と、復号結果出力部206と、を有している。
 例えば、復号装置20は、図示しないCPU(Central Processing Unit)などの演算装置と記憶装置とを有している。復号装置20は、例えば、図示しない記憶装置が有するプログラムを演算装置が実行することで、上記各処理部を実現する。なお、各処理部が行う復号・検証に伴う処理は、復号装置20が有する復号器により実現される、ということも出来る。
 暗号文入力部200は、復号の対象となる暗号文C、初期ベクトルN、タグTを入力する。暗号文入力部200は、例えば、キーボードなどの文字入力装置により実現される。暗号文入力部200は、例えば、ネットワークを介して接続された外部装置などから、暗号文C、初期ベクトルN、タグTの入力を受け付けても構わない。
 Tweak付き復号部201は、Tweak付き暗号化部102に対応した復号を行う。Tweak付き復号部201は、暗号文Cをnビットブロックごとに分割することで生成したm個のブロックC[1],C[2],...,C[m]を得る。そして、Tweak付き復号部201は、それぞれのC[i](i=1,2,...,m)を初期ベクトルNおよびブロックのインデックスiをTweakと呼ばれる補助変数として、ブロックごとに共通鍵暗号で復号する。これにより、Tweak付き復号部201は、暗号文Cを分割したブロックと同じ長さの平文M=(M[1],M[2],...,M[m])を得る。なお、Tweakには、処理の種類を表すインデックスj(例えば、J=1)を含めてもよい。
 例えば、Tweak付き復号部201は、Tweak付き暗号化部102と同様に、XEXモードの復号を行う。図6は、復号装置20のTweak付き復号部201がXEXモードによる復号を行う際の全体の処理の一例を示している。図6を参照すると、Tweak付き復号部201は、XEXモードによる復号を行う場合、
M[i] = TD(N,i,j)(C[i]),ただし TD(N,i,j) = g(N,i,j)+D(g(N,i,j)+C[i])
を行うことで、暗号文Cを復号する。
 ここで、D(*)はブロック暗号の復号関数であり、(式XEX)におけるEの逆関数、すなわちD(E(M))=Mを満たすものである。
 このように、Tweak付き復号部201は、TD関数と暗号文Cとに基づいて、それぞれのブロックごとに復号を行う。例えば、図6で示す場合、Tweak付き復号部201は、暗号文のブロックC[1]とTD関数TD(N,1,1)とに基づく復号を行うことで、平文のブロックM[1]を得ている。
 また、Tweak付き復号部201は、図7、図8で示すように、暗号文Cを2つのnビットブロックごとに分割したうえで、特許文献2による2ラウンドフェイステル置換による復号を行うよう構成することも出来る。2ラウンドフェイステル置換による復号は、図8で示すように、連続する暗号文2ブロックC[i],C[i+1](ただし、iは奇数)に対して、
M[i] = TE(N,(i+1)/2,j')(C[i])+C[i+1]
M[i+1] = TE(N,(i+1)/2,j)(M[i])+C[i]  
とすることで復号を行うものである。換言すると、Tweak付き復号部201は、上述した(式 2RFesitel)の逆関数を行うことになる。なお、XEXを用いる場合とは異なり、2ラウンドフェイステル置換による復号を行う場合、復号にはTDは必要としない。
 なお、2ラウンドフェイステル置換による復号を行う際は、Tweak付き暗号化部102と同様に、上記TE関数として、XEモード(式XE)を用いても構わない。
 以上のように、Tweak付き復号部201は、Tweak付き暗号化部102と対応する処理を行うことで、暗号文Cの復号を行う。
 部分チェックサム生成部202、メタチェックサム生成部203、メタチェックサム暗号化部204の構成は、暗号化装置10が有する部分チェックサム生成部103、メタチェックサム生成部104、メタチェックサム暗号化部105の構成と同様である。そのため、詳細な説明は省略する。ただし、メタチェックサム暗号化部204が出力するタグは暗号文入力部200の出力したタグTとは異なり、ローカルに計算されたものである。以下、メタチェックサム暗号化部204が出力するタグを検証用タグT’と表記する。
 タグ検証部205は、メタチェックサム暗号化部204の出力した、ローカルに計算された検証用タグT'と、暗号文入力部200の出力したタグTとの比較検証を行う。そして、タグ検証部205は、検証結果に基づいて、検証用タグT’とタグTが一致したことを示す「一致」、又は、検証用タグT’とタグTが一致しなかったことを示す「不一致」、のいずれかの2値検証結果を出力する。
 復号結果出力部206は、タグ検証部205の出力する2値検証結果と、Tweak付き復号部201の出力する平文Mとを出力する。復号結果出力部206は、例えば、ディスプレイなどの文字表示装置により実現される。復号結果出力部206は、例えば、ネットワークを介して接続された外部装置などに対して、平文Mを出力するよう構成しても構わない。
 以上が、復号装置20の構成の一例である。
 続いて、図9から図12までを参照して、暗号化装置10が暗号化処理を行う際の流れの一例と、復号装置20が復号処理を行う際の流れの一例について説明する。まず、図9、図10を参照して、暗号化装置10が暗号化処理を行う際の流れの一例について説明する。
 図9、図10を参照すると、平文入力部100は、暗号化の対象となる平文M = (M[1],M[2],...,M[m])を入力する。図9で示すように、平文入力部100に入力された平文Mは、複数のブロックに分割して、Tweak付き暗号化部102と部分チェックサム生成部103に入力される。また、初期ベクトル生成部101が初期ベクトルNを生成する(ステップS101)。
 Tweak付き暗号化部102は、初期ベクトルNをTweakとして用いて、平文Mをブロックごとに暗号化して、平文Mのブロックと同じ長さの暗号化された暗号文Cを得る(ステップS102)。
 部分チェックサム生成部103は、平文Mを所定のsブロックごとに分割する。そして、部分チェックサム生成部103は、それぞれ独立に部分チェックサム S[1],S[2],...,S[m/s]を求める(ステップS103)。続いて、メタチェックサム生成部104は、部分チェックサムの系列S = (S[1],S[2],...,S[m/s])を鍵つきハッシュして、1ブロックのメタチェックサムMetaSumとする(ステップS104)。そして、メタチェックサム暗号化部105は、メタチェックサムMetaSumを暗号化することで、タグTを得る(ステップS105)。
 暗号文出力部106は、上記各処理により得られた初期ベクトルN、暗号文C、タグTを出力する(ステップS106)。 
 以上が、暗号化装置10が暗号化処理を行う際の流れの一例である。続いて、図11、図12を参照して、復号装置20が復号処理を行う際の流れの一例について説明する。
 図11、図12を参照すると、暗号文入力部200が、対象となる暗号文C=(C[1],C[2],...,C[m])、初期ベクトルN、タグTを入力する(ステップS201)。図11で示すように、上記のうち暗号文Cは、Tweak付き復号部201で用いられる。また、初期ベクトルNは、Tweak付き復号部201、メタチェックサム生成部203、メタチェックサム暗号化部204で用いられる。タグTは、タグ検証部205で用いられる。
 Tweak付き復号部201は、NをTweakとして用いて、暗号文Cをブロックごと復号して、暗号文Cのブロックと同じ長さの復号された平文Mを得る(ステップS202)。
 部分チェックサム生成部202は、平文Mを所定のsブロックごとに分割する。そして、部分チェックサム生成部202は、それぞれ独立に部分チェックサム S[1],S[2],...,S[m/s] を求める(ステップS203)。続いて、メタチェックサム生成部203は、部分チェックサムの系列S = (S[1],S[2],...,S[m/s])を鍵つきハッシュして、1ブロックのメタチェックサムMetaSumとする(ステップS204)。そして、メタチェックサム暗号化部204は、メタチェックサムMetaSumを暗号化することで、ローカルに計算された検証用タグT’を得る(ステップS205)。
 タグ検証部205は、暗号文入力部200が出力したタグTと、メタチェックサム暗号化部204が出力した検証用タグT'とを比較する。そして、タグ検証部205は、一致または不一致を表す2値の検証結果を出力する(ステップS206)。
 復号結果出力部206は、得られた2値の検証結果と、平文Mを出力する(ステップS207)。 
 以上が、復号装置20が復号処理を行う際の流れの一例である。
 以上説明したように、本実施形態における暗号化装置10は、部分チェックサム生成部103と、メタチェックサム生成部104と、メタチェックサム暗号化部105と、を有している。このような構成により、メタチェックサム暗号化部105は、部分チェックサム生成部103が算出した部分チェックサムに基づいてメタチェックサム生成部104が算出したメタチェックサムを暗号化することで、タグTを生成することが出来る。つまり、暗号化装置10は、部分チェックサムを全て鍵付きハッシュしたメタチェックサムをタグの導出に用いている。これにより、INT-RUP安全性への攻撃は、sブロックの間で定義される線形制約(すなわち部分チェックサム)が全て満たされない限り成功しないことになる。その結果として、sを十分小さくおさえることで、高いINT-RUP安全性を保証することが可能となる。なお、sを1とした場合には、実質的に平文に対してメッセージ認証コードを適用していることとなるため、構成される認証暗号は汎用結合と同等のコストとなる。そのため、コストの観点からすると、sは2以上であることが望ましい。一方、s=2とした場合には汎用結合よりもおおよそ25%の効率化が可能となる。パラメータsを大きくすることで効率をあげることができるが、定量的なINT-RUP安全性は下がるというトレードオフが存在する。そのため、アプリケーションに応じて適切なsを設定することが望ましい。
 なお、非特許文献2に示された、OCBに対するINT-RUP安全性への攻撃を概説すると、下記のようになる。
 非特許文献2に記載の攻撃においては、攻撃者は任意の初期ベクトルNとmブロックの平文M=(M[1],M[2],...,M[m])を暗号化オラクルへクエリする。そして、攻撃者は、暗号化オラクルから、暗号文C=(C[1],C[2],...,C[m])とタグTを得る。次に、攻撃者は、2つの暗号文とタグの対を用いて、未検証復号オラクルへのクエリを行う。つまり、(N,C_1=(C_1[1],C_1[2],...,C_1[m]),T_1)と(N,C_2=(C_2[1],C_2[2],...,C_2[m]),T_2)を用いて、未検証復号オラクルへのクエリを行う。ここでC_1の各ブロックとC_2の各ブロックとは暗号文Cの対応するブロックとは異なるものを選び、T_1,T_2は任意である。未検証復号オラクルからの戻り値、すなわち未検証の平文ブロック、はそれぞれ(M_1[1],M_1[2],...,M_1[m])と(M_2[1],M_2[2],...,M_2[m])であったとする。このとき、最初の暗号化オラクルへのクエリにより TE(N,6,2)(M[1]+M[2]+...+M[m]) = T は既に分かっている。またC_1のブロックとC_2のブロックを適当に組み合わせて得られる別の暗号文C'(例えば交互にC_1とC_2のブロックを使うと C'=(C_1[1],C_2[2],...)が得られる)に対する未検証平文の値、およびそのチェックサムも分かっている。
 このような条件のもと、非特許文献2は、mがブロックサイズn程度であれば、ほぼ確率1/2で未検証平文のチェックサムが既知のチェックサム M[1]+M[2]+...+M[m] に一致するような組合せが存在し、存在すれば常に効率よく見つけられることを示した。このようなC'が見つかれば (N,C',T)が常に偽造として成功することになる。
 上記の攻撃は、同じ初期ベクトルを復号側で繰り返して使い、未検証平文が特定の線形制約、すなわち、最初に暗号化クエリで用いた平文とチェックサムが同じになるという制約を満たすものをみつけることで機能している。一方、本発明では、上述したように、部分チェックサムを全て鍵付きハッシュしたメタチェックサムをタグの導出に用いている。そのために、上記のような攻撃は、sブロックの間で定義される線形制約(すなわち部分チェックサム)が全て満たされない限り成功しないため、結果としてsを十分小さくおさえることで高いINT-RUP安全性を保証できることになる。
[第2の実施形態]
 次に、図13、図14を参照して、本発明の第2の実施形態について説明する。第2の実施形態では、暗号化装置3と復号装置4の構成の概要について説明する。
 まず、図13を参照して、暗号化装置3の構成について説明する。図13は、暗号化装置3の構成の一例を示している。図13を参照すると、暗号化装置3は、暗号化部31と、部分チェックサム生成部32と、メタチェックサム生成部33と、タグ生成部34と、を有している。
 例えば、暗号化装置3は、図示しないCPUなどの演算装置と記憶装置とを有している。暗号化装置3は、例えば、図示しない記憶装置が有するプログラムを演算装置が実行することで、上記各処理部を実現する。なお、各処理部が行う暗号化に伴う処理は、暗号化装置3が有する符号化器により実現される、ということも出来る。
 暗号化部31は、平文を分割したブロックを、補助変数を用いて暗号化する。
 部分チェックサム生成部32は、平文を分割したブロックに基づいて、複数の部分チェックサムを生成する。また、メタチェックサム生成部33は、部分チェックサム生成部32が生成した部分チェックサムに基づいて、メタチェックサムを生成する。そして、タグ生成部34は、メタチェックサム生成部33が生成したメタチェックサムに基づいて、改ざんの検出に用いるタグを生成する。
 暗号化装置3は、上記のように、平文を暗号化して暗号文を生成するとともに、タグを生成する。そして、暗号化装置3は、暗号化部31が暗号化した暗号文と、タグ生成部34が生成したタグと、を出力する。
 このように、暗号化装置3は、部分チェックサム生成部32と、メタチェックサム生成部33と、タグ生成部34と、を有している。このような構成により、タグ生成部34は、部分チェックサム生成部32が算出した複数の部分チェックサムに基づいてメタチェックサム生成部33が算出したメタチェックサムを暗号化することで、タグTを生成することが出来る。これにより、高いINT-RUP安全性を保証することが可能となる。
 また、上述した暗号化装置3は、当該暗号化装置3に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、暗号化装置3に、平文を分割したブロックを、補助変数を用いて暗号化する暗号化部31と、平文を分割したブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部32と、部分チェックサム生成部32が生成した部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部33と、メタチェックサム生成部33が生成したメタチェックサムに基づいて、改ざんの検出に用いるタグを生成するタグ生成部34と、を実現させ、暗号化部31が暗号化した暗号文と、タグ生成部34が生成したタグと、を出力するプログラムである。
 また、上述した暗号化装置3により実行される暗号化方法は、暗号化装置3が、平文を分割したブロックを、補助変数を用いて暗号化し、平文を分割したブロックに基づいて、複数の部分チェックサムを生成し、生成した部分チェックサムに基づいて、メタチェックサムを生成し、生成したメタチェックサムに基づいて、改ざんの検出に用いるタグを生成し、暗号文と、タグと、を出力する、という方法である。
 上述した構成を有する、プログラム、又は、暗号化方法、の発明であっても、上記暗号化装置3と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
 次に、図14を参照して、復号装置4の構成について説明する。図14は、復号装置4の構成の一例を示している。図14を参照すると、復号装置4は、復号部41と、部分チェックサム生成部42と、メタチェックサム生成部43と、タグ生成部44と、タグ検証部45と、を有している。
 例えば、復号装置4は、図示しないCPUなどの演算装置と記憶装置とを有している。復号装置4は、例えば、図示しない記憶装置が有するプログラムを演算装置が実行することで、上記各処理部を実現する。なお、各処理部が行う復号・検証に伴う処理は、復号装置4が有する復号器により実現される、ということも出来る。
 復号部41は、暗号文を分割したブロックを、補助変数を用いてブロックごとに復号して平文を生成する。
 部分チェックサム生成部42は、復号部41が復号した平文のブロックに基づいて、複数の部分チェックサムを生成する。また、メタチェックサム生成部43は、部分チェックサム生成部42が生成した部分チェックサムに基づいて、メタチェックサムを生成するそして、タグ生成部44は、メタチェックサム生成部43が生成したメタチェックサムに基づいて、改ざんの検出に用いる検証用タグを生成する。その後、タグ検証部45は、暗号文とともに受信したタグと、タグ生成部44が生成した検証用タグと、の比較検証を行う。
 復号装置4は、上記のように、暗号文を復号して平文を生成するとともに、タグと検証用タグとの検証を行う。そして、復号装置4は、復号部41が復号した平文と、タグ検証部45による比較検証の結果と、を出力する。
 このように、復号装置4は、部分チェックサム生成部42と、メタチェックサム生成部43と、タグ生成部44と、タグ検証部45を有している。このような構成であっても、暗号化装置3と同様に、本発明の目的を達成することが出来る。
 また、上述した復号装置4は、当該復号装置4に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、復号装置4に、暗号文を分割したブロックを、補助変数を用いてブロックごとに復号して平文を生成する復号部41と、復号部41が復号した平文のブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部42と、部分チェックサム生成部42が生成した部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部43と、メタチェックサム生成部43が生成したメタチェックサムに基づいて、改ざんの検出に用いる検証用タグを生成するタグ生成部44と、暗号文とともに受信したタグと、タグ生成部44が生成した検証用タグと、の比較検証を行うタグ検証部45と、を実現させ、復号部41が復号した平文と、タグ検証部45による比較検証の結果と、を出力するプログラムである。
 また、上述した復号装置4により実行される復号方法は、復号装置4が、暗号文を分割したブロックを、補助変数を用いてブロックごとに復号して平文を生成し、復号した平文のブロックに基づいて、複数の部分チェックサムを生成し、生成した部分チェックサムに基づいて、メタチェックサムを生成し、生成したメタチェックサムに基づいて、改ざんの検出に用いる検証用タグを生成し、暗号文とともに受信したタグと、生成した検証用タグと、の比較検証を行い、復号した平文と、比較検証の結果と、を出力する、という方法である。
 上述した構成を有する、プログラム、又は、復号方法、の発明であっても、上記復号装置4と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
 <付記>
 上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における暗号化装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
(付記1)
 平文を分割したブロックを、補助変数を用いて暗号化する暗号化部と、
 前記平文を分割したブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部と、
 前記部分チェックサム生成部が生成した前記部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部と、
 前記メタチェックサム生成部が生成した前記メタチェックサムに基づいて、改ざんの検出に用いるタグを生成するタグ生成部と、
 を有し、
 前記暗号化部が暗号化した暗号文と、前記タグ生成部が生成した前記タグと、を出力する
 暗号化装置。
(付記2)
 付記1に記載の暗号化装置であって、
 前記部分チェックサム生成部は、前記平文を分割したブロックを予め定められた数ごとにまとめて、まとめたそれぞれのブロックごとの前記部分チェックサムを生成することで、複数の前記部分チェックサムを生成する
 暗号化装置。
(付記3)
 付記2に記載の暗号化装置であって、
 前記部分チェックサム生成部は、1つにまとめられた各ブロックの排他的論理和を求めることで、前記部分チェックサムを生成する
 暗号化装置。
(付記4)
 付記1から付記3までのいずれかに記載の暗号化装置であって、
 前記部分チェックサム生成部は、前記平文を分割したブロックのうちの偶数番目のブロックを予め定められた数ごとにまとめて、まとめたそれぞれのブロックごとの前記部分チェックサムを生成する
 暗号化装置。
(付記5)
 付記2から付記4までのいずれかに記載の暗号化装置であって、
 前記予め定められた数は、2以上の値である
 暗号化装置。
(付記6)
 付記1から付記5までのいずれかに記載の暗号化装置であって、
 前記メタチェックサム生成部は、前記部分チェックサム生成部が生成した複数の前記部分チェックサムを、鍵付きのハッシュ関数、又は、擬似ランダム関数を用いて1ブロックにハッシュすることで、前記メタチェックサムを生成する
 暗号化装置。
(付記7)
 付記1から付記6までのいずれかに記載の暗号化装置であって、
 前記タグ生成部は、前記メタチェックサム生成部が生成した前記メタチェックサムを、補助変数を用いて暗号化することで、前記タグを生成する
 暗号化装置。
(付記8)
 付記7に記載の暗号化装置であって、
 前記タグ生成部が前記タグを生成する際に用いる補助変数には、前記暗号化部が前記平文を暗号化する際に用いる補助変数とは異なる値が含まれている
 暗号化装置。
(付記9)
 暗号化装置が、
 平文を分割したブロックを、補助変数を用いて暗号化し、
 前記平文を分割したブロックに基づいて、複数の部分チェックサムを生成し、
 生成した前記部分チェックサムに基づいて、メタチェックサムを生成し、
 生成した前記メタチェックサムに基づいて、改ざんの検出に用いるタグを生成し、
 前記平文を暗号化した暗号文と、前記タグと、を出力する
 暗号化方法。
(付記10)
 暗号化装置に、
 平文を分割したブロックを、補助変数を用いて暗号化する暗号化部と、
 前記平文を分割したブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部と、
 前記部分チェックサム生成部が生成した前記部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部と、
 前記メタチェックサム生成部が生成した前記メタチェックサムに基づいて、改ざんの検出に用いるタグを生成するタグ生成部と、
 を実現させ、
 前記暗号化部が暗号化した暗号文と、前記タグ生成部が生成した前記タグと、を出力する
 プログラム。
(付記11)
 暗号文を分割したブロックを、補助変数を用いてブロックごとに復号して平文を生成する復号部と、
 前記復号部が復号した前記平文のブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部と、
 前記部分チェックサム生成部が生成した前記部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部と、
 前記メタチェックサム生成部が生成した前記メタチェックサムに基づいて、改ざんの検出に用いる検証用タグを生成するタグ生成部と、
 前記暗号文とともに受信したタグと、前記タグ生成部が生成した前記検証用タグと、の比較検証を行うタグ検証部と、
 を有し、
 前記復号部が復号した前記平文と、前記タグ検証部による比較検証の結果と、を出力する
 復号装置。
(付記12)
 復号装置が、
 暗号文を分割したブロックを、補助変数を用いてブロックごとに復号して平文を生成し、
 復号した前記平文のブロックに基づいて、複数の部分チェックサムを生成し、
 生成した前記部分チェックサムに基づいて、メタチェックサムを生成し、
 生成した前記メタチェックサムに基づいて、改ざんの検出に用いる検証用タグを生成し、
 前記暗号文とともに受信したタグと、生成した前記検証用タグと、の比較検証を行い、
 復号した前記平文と、比較検証の結果と、を出力する
 復号方法。
(付記13)
 復号装置に、
 暗号文を分割したブロックを、補助変数を用いてブロックごとに復号して平文を生成する復号部と、
 前記復号部が復号した平文のブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部と、
 前記部分チェックサム生成部が生成した前記部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部と、
 前記メタチェックサム生成部が生成した前記メタチェックサムに基づいて、改ざんの検出に用いる検証用タグを生成するタグ生成部と、
 前記暗号文とともに受信したタグと、前記タグ生成部が生成した前記検証用タグと、の比較検証を行うタグ検証部と、
 を実現させ、
 前記復号部が復号した前記平文と、前記タグ検証部による比較検証の結果と、を出力する
 プログラム。
 なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
 以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
10 暗号化装置
100 平文入力部
101 初期ベクトル生成部
102 Tweak付き暗号化部
103 部分チェックサム生成部
104 メタチェックサム生成部
105 メタチェックサム暗号化部
106 暗号文出力部
20 復号装置
200 暗号文入力部
201 Tweak付き復号部
202 部分チェックサム生成部
203 メタチェックサム生成部
204 メタチェックサム暗号化部
205 タグ検証部
206 復号結果出力部
3 暗号化装置
31 暗号化部
32 部分チェックサム生成部
33 メタチェックサム生成部
34 タグ生成部
4 復号装置
41 復号部
42 部分チェックサム生成部
43 メタチェックサム生成部
44 タグ生成部
45 タグ検証部

 

Claims (13)

  1.  平文を分割したブロックを、補助変数を用いて暗号化する暗号化部と、
     前記平文を分割したブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部と、
     前記部分チェックサム生成部が生成した前記部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部と、
     前記メタチェックサム生成部が生成した前記メタチェックサムに基づいて、改ざんの検出に用いるタグを生成するタグ生成部と、
     を有し、
     前記暗号化部が暗号化した暗号文と、前記タグ生成部が生成した前記タグと、を出力する
     暗号化装置。
  2.  請求項1に記載の暗号化装置であって、
     前記部分チェックサム生成部は、前記平文を分割したブロックを予め定められた数ごとにまとめて、まとめたそれぞれのブロックごとの前記部分チェックサムを生成することで、複数の前記部分チェックサムを生成する
     暗号化装置。
  3.  請求項2に記載の暗号化装置であって、
     前記部分チェックサム生成部は、1つにまとめられた各ブロックの排他的論理和を求めることで、前記部分チェックサムを生成する
     暗号化装置。
  4.  請求項1から請求項3までのいずれかに記載の暗号化装置であって、
     前記部分チェックサム生成部は、前記平文を分割したブロックのうちの偶数番目のブロックを予め定められた数ごとにまとめて、まとめたそれぞれのブロックごとの前記部分チェックサムを生成する
     暗号化装置。
  5.  請求項2から請求項4までのいずれかに記載の暗号化装置であって、
     前記予め定められた数は、2以上の値である
     暗号化装置。
  6.  請求項1から請求項5までのいずれかに記載の暗号化装置であって、
     前記メタチェックサム生成部は、前記部分チェックサム生成部が生成した複数の前記部分チェックサムを、鍵付きのハッシュ関数、又は、擬似ランダム関数を用いて1ブロックにハッシュすることで、前記メタチェックサムを生成する
     暗号化装置。
  7.  請求項1から請求項6までのいずれかに記載の暗号化装置であって、
     前記タグ生成部は、前記メタチェックサム生成部が生成した前記メタチェックサムを、補助変数を用いて暗号化することで、前記タグを生成する
     暗号化装置。
  8.  請求項7に記載の暗号化装置であって、
     前記タグ生成部が前記タグを生成する際に用いる補助変数には、前記暗号化部が前記平文を暗号化する際に用いる補助変数とは異なる値が含まれている
     暗号化装置。
  9.  暗号化装置が、
     平文を分割したブロックを、補助変数を用いて暗号化し、
     前記平文を分割したブロックに基づいて、複数の部分チェックサムを生成し、
     生成した前記部分チェックサムに基づいて、メタチェックサムを生成し、
     生成した前記メタチェックサムに基づいて、改ざんの検出に用いるタグを生成し、
     前記平文を暗号化した暗号文と、前記タグと、を出力する
     暗号化方法。
  10.  暗号化装置に、
     平文を分割したブロックを、補助変数を用いて暗号化する暗号化部と、
     前記平文を分割したブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部と、
     前記部分チェックサム生成部が生成した前記部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部と、
     前記メタチェックサム生成部が生成した前記メタチェックサムに基づいて、改ざんの検出に用いるタグを生成するタグ生成部と、
     を実現させ、
     前記暗号化部が暗号化した暗号文と、前記タグ生成部が生成した前記タグと、を出力する
     プログラム。
  11.  暗号文を分割したブロックを、補助変数を用いてブロックごとに復号して平文を生成する復号部と、
     前記復号部が復号した前記平文のブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部と、
     前記部分チェックサム生成部が生成した前記部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部と、
     前記メタチェックサム生成部が生成した前記メタチェックサムに基づいて、改ざんの検出に用いる検証用タグを生成するタグ生成部と、
     前記暗号文とともに受信したタグと、前記タグ生成部が生成した前記検証用タグと、の比較検証を行うタグ検証部と、
     を有し、
     前記復号部が復号した前記平文と、前記タグ検証部による比較検証の結果と、を出力する
     復号装置。
  12.  復号装置が、
     暗号文を分割したブロックを、補助変数を用いてブロックごとに復号して平文を生成し、
     復号した前記平文のブロックに基づいて、複数の部分チェックサムを生成し、
     生成した前記部分チェックサムに基づいて、メタチェックサムを生成し、
     生成した前記メタチェックサムに基づいて、改ざんの検出に用いる検証用タグを生成し、
     前記暗号文とともに受信したタグと、生成した前記検証用タグと、の比較検証を行い、
     復号した前記平文と、比較検証の結果と、を出力する
     復号方法。
  13.  復号装置に、
     暗号文を分割したブロックを、補助変数を用いてブロックごとに復号して平文を生成する復号部と、
     前記復号部が復号した平文のブロックに基づいて、複数の部分チェックサムを生成する部分チェックサム生成部と、
     前記部分チェックサム生成部が生成した前記部分チェックサムに基づいて、メタチェックサムを生成するメタチェックサム生成部と、
     前記メタチェックサム生成部が生成した前記メタチェックサムに基づいて、改ざんの検出に用いる検証用タグを生成するタグ生成部と、
     前記暗号文とともに受信したタグと、前記タグ生成部が生成した前記検証用タグと、の比較検証を行うタグ検証部と、
     を実現させ、
     前記復号部が復号した前記平文と、前記タグ検証部による比較検証の結果と、を出力する
     プログラム。

     
PCT/JP2018/006293 2018-02-21 2018-02-21 暗号化装置、暗号化方法、プログラム、復号装置、復号方法 WO2019163032A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2018/006293 WO2019163032A1 (ja) 2018-02-21 2018-02-21 暗号化装置、暗号化方法、プログラム、復号装置、復号方法
JP2020501908A JP7323196B2 (ja) 2018-02-21 2018-02-21 暗号化装置、暗号化方法、プログラム、復号装置、復号方法
US16/970,742 US11463235B2 (en) 2018-02-21 2018-02-21 Encryption device, encryption method, program, decryption device, and decryption method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/006293 WO2019163032A1 (ja) 2018-02-21 2018-02-21 暗号化装置、暗号化方法、プログラム、復号装置、復号方法

Publications (1)

Publication Number Publication Date
WO2019163032A1 true WO2019163032A1 (ja) 2019-08-29

Family

ID=67688089

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/006293 WO2019163032A1 (ja) 2018-02-21 2018-02-21 暗号化装置、暗号化方法、プログラム、復号装置、復号方法

Country Status (3)

Country Link
US (1) US11463235B2 (ja)
JP (1) JP7323196B2 (ja)
WO (1) WO2019163032A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021171543A1 (ja) * 2020-02-28 2021-09-02 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法および記録媒体
WO2021214923A1 (ja) * 2020-04-23 2021-10-28 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体
WO2021246969A1 (en) * 2020-06-05 2021-12-09 Nanyang Technological University Methods and systems for generating a block cipher having backdoor

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11777708B2 (en) 2021-09-30 2023-10-03 International Business Machines Corporation Secure encryption of partial blocks
JP7479001B1 (ja) 2023-01-17 2024-05-08 パナソニックIpマネジメント株式会社 乾燥機及び乾燥機の運転方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080172562A1 (en) * 2007-01-12 2008-07-17 Christian Cachin Encryption and authentication of data and for decryption and verification of authenticity of data
US20130077780A1 (en) * 2001-07-30 2013-03-28 Phillip W. Rogaway Method and apparatus for facilitating efficient authenticated encryption
US20140146964A1 (en) * 2012-11-29 2014-05-29 Certicom Corp. Authenticated encryption method using working blocks
WO2015015702A1 (ja) * 2013-08-02 2015-02-05 日本電気株式会社 認証暗号装置、認証暗号方法および認証暗号用プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305084B2 (en) * 2002-07-24 2007-12-04 Qualcomm Incorporated Fast encryption and authentication for data processing systems
US6950517B2 (en) * 2002-07-24 2005-09-27 Qualcomm, Inc. Efficient encryption and authentication for data processing systems
US7580520B2 (en) 2004-02-14 2009-08-25 Hewlett-Packard Development Company, L.P. Methods for scaling a progressively encrypted sequence of scalable data
US8255705B2 (en) * 2006-04-27 2012-08-28 Spectra Logic Corp. Encryption moniker in medium auxiliary memory
JP2016075765A (ja) 2014-10-03 2016-05-12 日本放送協会 認証暗号化装置および認証復号装置、ならびに、それらのプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130077780A1 (en) * 2001-07-30 2013-03-28 Phillip W. Rogaway Method and apparatus for facilitating efficient authenticated encryption
US20080172562A1 (en) * 2007-01-12 2008-07-17 Christian Cachin Encryption and authentication of data and for decryption and verification of authenticity of data
US20140146964A1 (en) * 2012-11-29 2014-05-29 Certicom Corp. Authenticated encryption method using working blocks
WO2015015702A1 (ja) * 2013-08-02 2015-02-05 日本電気株式会社 認証暗号装置、認証暗号方法および認証暗号用プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ABED, F. ET AL.: "General classification of the authenticated encryption schemes for the CAESER competition", COMPUTER SCIENCE REVIEW, 2016, pages 13 - 26, XP029827908 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021171543A1 (ja) * 2020-02-28 2021-09-02 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法および記録媒体
JPWO2021171543A1 (ja) * 2020-02-28 2021-09-02
JP7371757B2 (ja) 2020-02-28 2023-10-31 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム
US12107948B2 (en) 2020-02-28 2024-10-01 Nec Corporation Authentication encryption device, authentication decryption device, authentication encryption method, authentication decryption method, and storage medium
WO2021214923A1 (ja) * 2020-04-23 2021-10-28 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体
JPWO2021214923A1 (ja) * 2020-04-23 2021-10-28
JP7367860B2 (ja) 2020-04-23 2023-10-24 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号システム、方法及びプログラム
WO2021246969A1 (en) * 2020-06-05 2021-12-09 Nanyang Technological University Methods and systems for generating a block cipher having backdoor

Also Published As

Publication number Publication date
US11463235B2 (en) 2022-10-04
JPWO2019163032A1 (ja) 2021-01-14
JP7323196B2 (ja) 2023-08-08
US20210021406A1 (en) 2021-01-21

Similar Documents

Publication Publication Date Title
JP6740902B2 (ja) 認証暗号化方法、認証復号方法および情報処理装置
WO2019163032A1 (ja) 暗号化装置、暗号化方法、プログラム、復号装置、復号方法
JP6519473B2 (ja) 認証暗号装置、認証暗号方法および認証暗号用プログラム
JP7031580B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
KR101091246B1 (ko) 간단하고 효율적인 원패스 인증 암호화 방법
JP5447510B2 (ja) タグ生成装置、タグ検証装置、通信システム、タグ生成方法、タグ検証方法および記録媒体
JP5704159B2 (ja) ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム
US20150244518A1 (en) Variable-length block cipher apparatus and method capable of format preserving encryption
JP2008122967A (ja) ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法
WO2013065241A1 (ja) インクリメンタルmacタグ生成装置、方法及びプログラム並びにメッセージ認証装置
WO2016067524A1 (ja) 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム
JP7367860B2 (ja) 認証暗号化装置、認証復号装置、認証暗号システム、方法及びプログラム
Paar et al. Message authentication codes (MACs)
WO2022237440A1 (en) Authenticated encryption apparatus with initialization-vector misuse resistance and method therefor
WO2012011455A1 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、および、コンピュータ・プログラム
JP7371757B2 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム
JP2017038336A (ja) 復号方法
Jauhari et al. Secure and Optimized Algorithm for Implementation of Digital Signature
JP2004347885A (ja) 暗号化装置処理方法、暗号復号装置処理方法、これらの装置及びプログラム
KR20030001888A (ko) 키를 사용하지 않고 블록 정보만을 이용하는 암호알고리즘 설계 방법
Sandhu VANETs Security Using Cryptography
JP2004297239A (ja) 暗号文伝送装置

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020501908

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

Country of ref document: EP

Kind code of ref document: A1