WO2021214923A1 - 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体 - Google Patents

認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体 Download PDF

Info

Publication number
WO2021214923A1
WO2021214923A1 PCT/JP2020/017422 JP2020017422W WO2021214923A1 WO 2021214923 A1 WO2021214923 A1 WO 2021214923A1 JP 2020017422 W JP2020017422 W JP 2020017422W WO 2021214923 A1 WO2021214923 A1 WO 2021214923A1
Authority
WO
WIPO (PCT)
Prior art keywords
nonce
authentication
encryption
plaintext
tag
Prior art date
Application number
PCT/JP2020/017422
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/JP2020/017422 priority Critical patent/WO2021214923A1/ja
Priority to JP2022516562A priority patent/JP7367860B2/ja
Priority to US17/918,643 priority patent/US20230139104A1/en
Publication of WO2021214923A1 publication Critical patent/WO2021214923A1/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/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]
    • 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/3239Cryptographic 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 non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Definitions

  • the present invention relates to an authentication encryption device, an authentication decryption device, an authentication encryption system, a method, and a computer-readable medium.
  • Authenticated Encryption There is known a technology called Authenticated Encryption (AE) that uses a private key shared in advance to simultaneously apply encryption and authentication tag calculation for tampering detection to plaintext messages.
  • AE Authenticated Encryption
  • the authenticated encryption AE uses a private key shared in advance to simultaneously apply encryption and authentication tag calculation for tampering detection to plaintext messages.
  • OCB Offset Code Book
  • Tweak auxiliary variable
  • a tag is generated by performing the same processing as when performing the above encryption on the exclusive OR of each block obtained by dividing the plaintext.
  • Non-Patent Document 3 discloses a method relating to OCB2f, which is a modified version of the version of OCB described in Non-Patent Document 2.
  • Non-Patent Document 4 discloses an ⁇ CB3 (hereinafter referred to as ThetaCB3) method that abstracts OCB by using a Tweakable block cipher (TBC; twistable block cipher) as a primitive, which is an extension of a block cipher. ..
  • NIST Special Publication 800-38D "Recommendation for Block Cipher Modes of Operation: Galois / Counter Mode (GCM) and GMAC", http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D .pdf "Efficient Instruments of Tweakable Blockciphers and Refinements to Modes OCB and PMAC", Phillip Rogaway, ASIACRYPT2004, http://web.cs.ucdavis.edu/ ⁇ rogaway/papers/offsets.pdf Akiko Inoue, Tetsu Iwata, Kazuhiko Minematsu, Bertram Poettering, "Cryptanalysis of OCB2: Attaches on Authenticity and Confidentiality", IACR Cryptology ePrint Archive 2019: 311 (2019) Ted Krovetz, Phillip Rogaway, "The Software Performance of Authenticated-Encryption Modes", FSE 2011: 306-327 Christof Beierle, Jeremy
  • delay for general encryption methods including authenticated encryption. This refers to the time from the start of processing until the first output result is obtained, and the smaller the time is desirable. On the other hand, it is difficult to suppress delays in encryption and decryption with the above-mentioned techniques related to patent documents and non-patent documents.
  • An object of the present disclosure is to solve such a problem, and an authentication encryption device, an authentication decryption device, an authentication encryption system, a method and a computer capable of suppressing a delay in encryption and decryption. It is to provide a readable medium.
  • the authentication encryption device assists the nonce with an input means for accepting the input of the plain text, a nonce generating means for generating a nonce different from the value generated in the past, and a block obtained by dividing the plain text.
  • a plain text encryption means that generates a cipher statement corresponding to the plain text by encrypting it as a variable, a check sum generation means that generates a check sum using the plain text, and a hash means that acquires a hash value.
  • a nonce encryption means that encrypts the nonce and obtains an encrypted nonce
  • an authentication tag generation means that generates an authentication tag using the check sum, the hash value, and the encryption nonce, and the cipher text and It has an output means for controlling the output of the authentication tag.
  • the authentication / decryption device uses an input means for accepting input of a cipher, an authentication tag, and a nonce, and the nonce as an auxiliary variable for each block in which the cipher is divided, thereby performing the above-mentioned.
  • a plain text decryption means that generates a plain sentence corresponding to a cipher sentence
  • a check sum generation means that generates a check sum using the plain sentence
  • a hash means that obtains a hash value
  • an encrypted nonce that is encrypted to obtain an encrypted nonce.
  • a verification tag generating means that generates a verification tag that is an estimated authentication tag by using the nonce encryption means, the check sum, the hash value, and the encryption nonce, and the authentication tag and the verification. It has a verification means for verifying the presence or absence of tampering by comparing with a hash tag and controlling for outputting the verification result.
  • the authentication encryption system includes an authentication encryption device and an authentication / decryption device that communicates with the authentication encryption device, and the authentication encryption device accepts plain text input.
  • the plain text is encrypted by using the first input means, the nonce generating means that generates a nonce different from the value generated in the past, and the nonce as an auxiliary variable for each block in which the plain text is divided.
  • a plain text encryption means that generates a cipher statement corresponding to the above, a first check sum generation means that generates a check sum using the plain text, a first hash means that obtains a hash value, and the nonce are encrypted.
  • a first nonce encryption means for acquiring an encryption nonce, an authentication tag generation means for generating an authentication tag using the check sum, the hash value, and the encryption nonce, the encryption text, and the authentication tag.
  • the authentication / decryption device has an output means for controlling the output of the above, and the authentication / decryption device is input by the second input means for accepting the input of the encryption text, the authentication tag, and the nonce, and the second input means.
  • a plain text decoding means that generates a plain text corresponding to the cipher text by decrypting the nonce input by the second input means as an auxiliary variable for each block in which the cipher text is divided, and the plain text
  • a second checksum generating means that generates a checksum using the plain text generated by the decrypting means, a second hashing means that acquires a hash value, and the nonce input by the second input means.
  • a second nonce encryption means that encrypts and obtains an encrypted nonce, the checksum generated by the second checksum generating means, the hash value obtained by the second hashing means, and the like.
  • a verification tag generation means for generating a verification tag which is an estimated authentication tag, and a verification tag generation means generated by the authentication tag generation means. It has a verification means for verifying the presence or absence of tampering by comparing the authentication tag and the verification tag and controlling for outputting the verification result.
  • the authentication encryption method accepts plaintext input, generates a nonce different from the value generated in the past, and uses the nonce as an auxiliary variable for each block in which the plaintext is divided.
  • the ciphertext corresponding to the plaintext is generated, the checksum is generated using the plaintext, the hash value is acquired, the nonce is encrypted to obtain the encrypted nonce, and the checksum is used.
  • An authentication tag is generated using the hash value and the encryption nonce, and control is performed to output the ciphertext and the authentication tag.
  • the authentication / decryption method accepts the input of the cipher, the authentication tag, and the nonce, and decrypts the cipher by using the nonce as an auxiliary variable for each block in which the cipher is divided.
  • a corresponding plain sentence is generated, a check sum is generated using the plain sentence, a hash value is acquired, the nonce is encrypted to obtain an encrypted nonce, and the check sum, the hash value, and the encrypted nonce are used.
  • Is used to generate a verification tag which is an estimated authentication tag, and by comparing the authentication tag with the verification tag, the presence or absence of tampering is verified, and control is performed to output the verification result.
  • the program according to the present disclosure uses the nonce as an auxiliary variable for each of a step of accepting an input of plaintext, a step of generating a nonce different from a value generated in the past, and a block in which the plaintext is divided.
  • a step of generating a ciphertext corresponding to the plaintext a step of generating a checksum using the plaintext, a step of acquiring a hash value, and a step of encrypting the nonce to perform an encrypted nonce.
  • a computer is made to execute a step of acquiring and a step of generating an authentication tag using the check sum, the hash value, and the encryption nonce, and controlling the output of the ciphertext and the authentication tag. ..
  • the program according to the present disclosure converts the cipher statement into the cipher text by performing a step of accepting input of a cipher text, an authentication tag and a nonce, and decrypting the cipher text by using the nonce as an auxiliary variable for each divided block.
  • the presence or absence of tampering is verified and verified by comparing the step of generating the verification tag, which is the estimated authentication tag, with the authentication tag and the verification tag using the hash value and the encryption nonce.
  • an authentication encryption device an authentication decryption device, an authentication encryption system, a method, and a computer-readable medium capable of suppressing delays in encryption and decryption.
  • FIG. 5 is a flowchart showing an authentication / decryption method executed by the authentication / decryption device according to the first embodiment. It is a figure which simplified and showed the encryption routine which used the authentication encryption system ThetaCB3 system described in Non-Patent Document 4.
  • Non-Patent Document 4 It is a figure which simplified and showed the decryption routine which used the authentication encryption system ThetaCB3 system described in Non-Patent Document 4. It is a figure which illustrates the encryption process at the time of performing the authentication encryption method which concerns on Embodiment 1 by Tweakable block cipher. It is a figure which illustrates the decryption process when the authentication encryption method which concerns on Embodiment 1 is carried out by Tweakable block cipher. It is a figure which illustrates the encryption function and the decryption function described in Non-Patent Document 2. It is a figure which shows the authentication encryption apparatus which concerns on Embodiment 2. It is a figure which shows the authentication decoding apparatus which concerns on Embodiment 2. It is a block diagram which shows schematic the hardware configuration example of the calculation processing apparatus which can realize the apparatus and system which concerns on each embodiment.
  • the encryption function of the authentication encryption is AEnc, and the decryption function is ADec.
  • the plaintext to be encrypted is set to M, and a variable N called a nonce is introduced.
  • A be the header (associated data; AD).
  • the header A is a value at which tampering is detected but not encrypted.
  • ADec_K (N', A', C', T')
  • ADec_K is a decoding function with the key K as a parameter. If there is tampering in the middle of communication and (N', A', C', T') ⁇ (N, A, C, T), then about ADec_K (N', A', C', T') , An error message (error symbol) indicating that it has been tampered with is output. That is, in this case, tampering is detected.
  • the encryption side uses some state variable such as a counter to prevent nonce matching. That is, typically, by storing the N used immediately before as a state variable and incrementing N each time, it is realized that the nonce N does not overlap with the past value.
  • latency for general encryption methods including authentication encryption. This refers to the time from the start of processing until the first output result is obtained, and the smaller the time is desirable.
  • the delay refers to the time or amount of processing until the first ciphertext block is output when a plaintext consisting of a plurality of blocks is input.
  • the encryption delay in authentication encryption is generally the number of primitive call counts required before the first ciphertext block is output. be.
  • Decryption delay is defined as well.
  • Another index of delay is speed (throughput).
  • the speed is generally the number of message blocks that can be processed per primitive call. This number is also called the rate.
  • the delay may, by definition, include a constant number of calls as described above.
  • OCB described in Patent Document 1 and Non-Patent Document 1 is known as an authentication encryption method using a block cipher as a primitive.
  • the delay is particularly small.
  • the delay in encryption is two block ciphers.
  • the delay in encryption is TBC once, which is theoretically the best as the method using TBC. In other words, in OCB and ThetaCB3, the delay in encryption is small.
  • the encryption and decryption rates are 1 for both OCB and ThetaCB3, and the messages can be executed in parallel in block units. Therefore, it can be said that high-speed processing is possible in OCB and ThetaCB3.
  • the delay in encryption is small, the delay in decryption is larger than the delay in encryption, as will be described later.
  • the delay in the authentication encryption in the present embodiment as described below, the delay can be further reduced while achieving the same speed (that is, rate 1) as OCB and ThetaCB3. That is, in the present embodiment, high-speed and low-delay authentication encryption can be realized.
  • FIG. 1 is a diagram showing the configuration of the authentication encryption system 1 according to the first embodiment.
  • the authentication encryption system 1 includes an authentication encryption device 10 and an authentication decryption device 20.
  • the authentication encryption device 10 and the authentication decryption device 20 may be physically integrated or may be separate. Further, the components of each device described later with reference to FIGS. 2 to 3 may be realized by another device.
  • the length of one block out of a plurality of blocks obtained by dividing a plaintext or a ciphertext is defined as n bits having a predetermined length.
  • the authentication encryption device 10 corresponds to Alice
  • the authentication decryption device 20 corresponds to Bob. That is, communication is performed between the authentication encryption device 10 and the authentication decryption device 20.
  • the plaintext length is always a multiple of the block length n. If a plaintext that is not a multiple of the block length n is handled, padding is required and the length of the ciphertext increases.
  • the limitation that the plaintext length is a multiple of the block length is not a problem for many applications. For example, when considering encryption of a memory, cache, or hard disk sector using AES (Advanced Encryption Standard) described later, the standard length of plaintext is a multiple of the block length (16 bytes) of AES.
  • FIG. 2 is a diagram showing the configuration of the authentication encryption device 10 according to the first embodiment.
  • FIG. 3 is a diagram showing the configuration of the authentication / decryption device 20 according to the first embodiment.
  • FIG. 4 is a flowchart showing an authentication encryption method executed by the authentication encryption device 10 according to the first embodiment.
  • FIG. 5 is a flowchart showing an authentication / decryption method executed by the authentication / decryption device 20 according to the first embodiment.
  • FIG. 6 is a simplified diagram showing an encryption routine using the authenticated encryption method ThetaCB3 method described in Non-Patent Document 4.
  • FIG. 7 is a simplified diagram showing a decryption routine using the authentication encryption method ThetaCB3 method described in Non-Patent Document 4.
  • FIG. 8 is a diagram illustrating an encryption process when the authentication encryption method according to the first embodiment is implemented by a Tweakable block cipher.
  • FIG. 9 is a diagram illustrating a decryption process when the authentication encryption method according to the first embodiment is performed by a Tweakable block cipher.
  • FIG. 10 is a diagram illustrating an encryption function and a decryption function described in Non-Patent Document 2.
  • the authentication encryption device 10 shown in FIG. 2 will be described.
  • the authentication encryption device 10 includes an input unit 100, a nonce generation unit 101, a Tweek encryption unit 102, a checksum generation unit 103, a header hash unit 104, a nonce encryption unit 105, and an addition unit 106. It has a shortening unit 107 and an output unit 108.
  • the authentication encryption device 10 can be realized by, for example, a computer. That is, the authentication encryption device 10 has an arithmetic unit such as a CPU (Central Processing Unit) and a storage device such as a memory or an optical disk.
  • the authentication encryption device 10 realizes each of the above components by, for example, the arithmetic unit executing a program stored in the storage device.
  • the input unit 100 has a function as an input means.
  • the nonce generation unit 101 has a function as a nonce generation means.
  • the Tweek-attached encryption unit 102 has a function as a Tweak-attached encryption means (plaintext encryption means or ciphertext generation means).
  • the checksum generation unit 103 has a function as a checksum generation means.
  • the header hash unit 104 has a function as a header hash means (hash means).
  • the nonce encryption unit 105 has a function as a nonce encryption means.
  • the adding unit 106 has a function as an adding means (additive means).
  • the shortening unit 107 has a function as a shortening means (authentication tag generating means).
  • the output unit 108 has a function as an output means.
  • the input unit 100 accepts the input of the plaintext M and the header A to be encrypted.
  • the input unit 100 may be realized by an input device such as a keyboard, for example.
  • the input unit 100 may accept the input of the plaintext M and the header A from, for example, an external device connected via a network. In some cases, the header does not exist. In this case, the header A is not input.
  • the input unit 100 outputs the plaintext M to the encryption unit 102 with Twake and the checksum generation unit 103. Further, the input unit 100 outputs the header A to the header hash unit 104.
  • the nonce generation unit 101 generates the nonce N so that there is no overlap with the past value. That is, the nonce generation unit 101 generates a nonce N different from the value generated in the past. Specifically, for example, the nonce generation unit 101 first outputs an arbitrary fixed value. In addition, the nonce generation unit 101 stores the value of the nonce generated immediately before. Then, the nonce generation unit 101 outputs a value obtained by adding 1 to the value immediately before being stored when generating the nonce N from the second time onward. In this way, the nonce generation unit 101 generates a nonce N different from the value generated in the past by outputting a value obtained by adding 1 to the value already output immediately before.
  • the nonce generation unit 101 may generate the nonce by a method different from the above-mentioned example.
  • the nonce generation unit 101 outputs the generated nonce N to the Tweek encryption unit 102 and the nonce encryption unit 105. Further, the nonce generation unit 101 may output the generated nonce N to the output unit 108.
  • the encryption unit 102 with Twake divides the plaintext M into n-bit blocks for a predetermined n, uses the nonce N as an auxiliary variable (Tweak), and encrypts the plaintext M in parallel for each block.
  • the encryption unit 102 with Tweak divides the plaintext M into n-bit blocks (that is, blocks of a predetermined length) to generate a series of m blocks M [1] and M [2]. ] ,. .. .. , M [m] is obtained.
  • each block is encrypted in parallel with the Tweakable block cipher.
  • a series of m blocks M [1], M [2] ,. .. .. , M [m] may be divided. Alternatively, the input unit 100 may divide the plaintext M.
  • the Tweek may include an index j indicating the type of processing (difference in whether the encryption target is plaintext or nonce).
  • the index j is 1
  • the encryption function of the Tweakable block cipher is TE (Tweak, message block)
  • C [m] TE ((N, m, j + 1), M [m]) It can be expressed as.
  • the encryption unit 102 with Tweek obtained C [1] ,. .. .. , C [m] are concatenated to obtain the ciphertext C. Then, the encryption unit 102 with Twake outputs the obtained ciphertext C to the output unit 108.
  • the encryption unit 102 with Twake may use an existing algorithm such as SKINNY described in Non-Patent Document 5 as the Tweakable block cipher (TBC).
  • the encryption unit 102 with Tweak may realize the Tweakable block cipher (TBC) in a block cipher use mode (hereinafter referred to as a mode) using a block cipher such as AES (Advanced Encryption Standard).
  • the Twake-attached encryption unit 102 can use the XEX * mode described in Non-Patent Document 2 or the mode described in Non-Patent Document 4, which is a variant thereof, as the mode of the Tweakable block cipher. Is. That is, in the present embodiment, the Tweakable block cipher may be in the XEX * mode using the block cipher.
  • ⁇ 2 means multiplication with the origin (x in the polynomial representation) on the finite field GF (2 ⁇ n)
  • ⁇ 3 is the sum of the origin and the identity element (in a polynomial).
  • x + 1) means multiplication.
  • E (N), 2 ⁇ i, 3 ⁇ j E (N) is regarded as the element of GF (2 ⁇ n), which is multiplied by the i-time generator, and the j-time generator and the unit. It means to take the multiplication with the original sum.
  • Other methods for realizing the block cipher encryption function in the case of n are described in, for example, Non-Patent Document 3.
  • the checksum generation unit 103 generates the checksum S by compressing the plaintext M by a simple calculation. Specifically, the checksum generation unit 103 converts the plaintext M into a series of n-bit blocks M [1], M [2] ,. .. .. , M [m]. Then, the checksum generation unit 103 uses the divided n-bit block series M [1], M [2] ,. .. .. , M [m] is subjected to a simple compression process to generate a checksum S. The checksum generation unit 103 outputs the generated checksum S to the addition unit 106.
  • the checksum S is generated by calculating.
  • the checksum generation unit 103 is not limited to the exclusive OR, and may generate the checksum S by using an arbitrary group or ring operation such as arithmetic addition.
  • the header hash unit 104 acquires the hash value H of the header A by using the header A and the universal hash function. Specifically, the header hash unit 104 uses the header A as a series of n-bit blocks A [1], A [2] ,. .. .. , A [a]. Then, the header hash unit 104 includes a series of divided n-bit blocks A [1], A [2] ,. .. .. , A [a] is applied with a universal hash function to acquire the hash value H of the header. The header hash unit 104 outputs the hash value H of the acquired header to the addition unit 106.
  • the header hash unit 104 may use a polynomial hash function using multiplication as described in Non-Patent Document 6 as the universal hash function.
  • the header hash unit 104 may generate the hash value H of the header by a method using a block cipher or a Tweakable block cipher.
  • the header hash unit 104 uses the method described in Non-Patent Document 2, for example, and uses the TE function used in the encryption unit 102 with Twake as the universal hash function
  • the hash value H is calculated by the following equation 5. May be obtained.
  • the constant is an arbitrary n-bit constant.
  • the Tweakable block cipher may be in the XEX * mode using the block cipher.
  • the header hash unit 104 puts appropriate padding on the header A, and then sets the header A to A [1], A [2] ,. .. .. , A [a].
  • the header hash unit 104 may set the hash value H to an arbitrary constant (for example, all zeros; a constant in which all bit values are 0).
  • the nonce encryption unit 105 encrypts the nonce N and acquires an encrypted nonce V having the same length as the checksum. Specifically, the nonce encryption unit 105 generates an encrypted nonce V by encrypting an arbitrary n-bit constant using the nonce N as an auxiliary variable (Tweak). That is, the nonce encryption unit 105 generates the encrypted nonce V by encrypting with the Tweakable block cipher in which the plaintext of one block is an arbitrary constant by using the Tweak including the nonce N. The nonce encryption unit 105 outputs the generated encrypted nonce V to the addition unit 106. Further, as described above, the Tweakable block cipher may be in the XEX * mode using the block cipher.
  • the addition unit 106 generates the non-abbreviated authentication tag U by summing the checksum S, the encryption nonce V, and the hash value H of the header. Specifically, the addition unit 106 adds the hash value H of the header, the checksum S, and the encryption nonce V. The addition unit 106 acquires this sum as an n-bit non-abbreviated authentication tag U.
  • the addition method may be an exclusive OR, or may be an addition operation of an arbitrary group.
  • the addition unit 106 outputs the obtained non-abbreviated authentication tag U to the shortening unit 107.
  • the shortening unit 107 generates the authentication tag T by shortening the non-shortening authentication tag U generated by the addition unit 106 to t bits by an arbitrary method for a predetermined t (t is an integer of 1 or more and n or less). .. Specifically, the shortening unit 107 generates the authentication tag T by shortening the non-shortening authentication tag U to a predetermined t bit by an arbitrary method. For example, the shortening unit 107 may use the most significant t-bit of the non-shortening authentication tag U as the authentication tag T.
  • the output unit 108 controls to output the ciphertext C and the authentication tag T.
  • the output unit 108 may connect the ciphertext C and the authentication tag T for output.
  • the output unit 108 may control the output device such as a display to display the ciphertext C and the authentication tag T, for example. Further, the output unit 108 may control to output the ciphertext C and the authentication tag T to, for example, an external device connected via a network. Further, the output unit 108 may control to output the nonce N and the header A.
  • the authentication / decryption device 20 includes an input unit 200, a decryption unit 201 with a Twake, a checksum generation unit 202, a nonce encryption unit 203, a header hash unit 204, an addition unit 205, a shortening unit 206, and tag verification. It has a part 207. It can be realized by the authentication decryption device 20, for example, a computer. That is, the authentication / decryption device 20 has an arithmetic unit such as a CPU and a storage device such as a memory or an optical disk. The authentication / decryption device 20 realizes each of the above components by, for example, the arithmetic unit executing a program stored in the storage device.
  • the input unit 200 has a function as an input means.
  • the decoding unit 201 with Twake has a function as a decoding means with Twake (plaintext decoding means or plaintext generating means).
  • the checksum generation unit 202 has a function as a checksum generation means.
  • the nonce encryption unit 203 has a function as a nonce encryption means.
  • the header hash unit 204 has a function as a header hash means (hash means).
  • the adding unit 205 has a function as an adding means (additive means).
  • the shortening unit 206 has a function as a shortening means (verification tag generation means).
  • the tag verification unit 207 has a function as a tag verification means (verification means and output means).
  • the input unit 200 accepts the input of the ciphertext C, the nonce N, the header A, and the authentication tag T to be decrypted.
  • the input unit 200 may be realized by a character input device such as a keyboard, for example.
  • the input unit 200 is realized by an input device such as a keyboard, for example.
  • the input unit 200 may accept the ciphertext C, the nonce N, the header A, and the authentication tag T from, for example, an external device connected via a network. In some cases, the header does not exist. In this case, the header A is not input.
  • the input unit 200 outputs the ciphertext C to the decryption unit 201 with Twake. Further, the input unit 200 outputs the header A to the header hash unit 204. Further, the input unit 200 outputs the nonce N to the decryption unit 201 with Twake and the nonce encryption unit 203. Further, the input unit 200 outputs the authentication tag T to the tag verification unit 207.
  • the decryption unit 201 with Twake performs the decryption process corresponding to the encryption unit 102 with Twake described above.
  • the decryption unit 201 with Twake divides the ciphertext C for each n-bit block for a predetermined n, uses the nonce N as an auxiliary variable (Tweak), and decodes each block in parallel to generate the plaintext M.
  • the decryption unit 201 with Twake has a sequence of m blocks C [1], C [2], generated by dividing the ciphertext C into n-bit blocks. .. .. , C [m] is obtained.
  • the division of the ciphertext C does not need to be performed by the decryption unit 201 with Twake.
  • a series of m blocks C [1], C [2] ,. .. .. , C [m] may be divided.
  • the input unit 200 may divide the ciphertext C.
  • the Week may include an index j indicating the type of processing (difference in whether the encryption target is plaintext or nonce).
  • index j 1 and the decryption function of the Tweakable block cipher is TD (Tweak, message block)
  • M [m] TD ((N, m, j + 1), C [m]) It can be expressed as.
  • the Twake-attached decryption unit 201 may use an existing Tweakable block cipher algorithm such as SKINNY described in Non-Patent Document 5 as the Tweakable block cipher (TBC). .. Alternatively, the decryption unit 201 with Tweak may realize the Tweakable block cipher (TBC) in a mode using a block cipher such as AES. In this case, the decryption unit 201 with Twake can use the XEX * mode described in Non-Patent Document 2 or the mode described in Non-Patent Document 4, which is a variant thereof, as the mode of the Tweakable block cipher. be. That is, in the present embodiment, the Tweakable block cipher may be in the XEX * mode using the block cipher.
  • the checksum generation unit 202 performs substantially the same processing as the checksum generation unit 103 described above. That is, the checksum generation unit 202 generates the checksum S by compressing the plaintext M by a simple calculation. The checksum generation unit 202 outputs the generated checksum S to the addition unit 205.
  • the nonce encryption unit 203 performs substantially the same processing as the nonce encryption unit 105 described above. That is, the nonce encryption unit 203 encrypts the nonce N and acquires an encrypted nonce V having the same length as the checksum. Specifically, the nonce encryption unit 203 generates an encrypted nonce V by encrypting an arbitrary n-bit constant using the nonce N as an auxiliary variable (Tweak). That is, the nonce encryption unit 203 generates the encrypted nonce V by encrypting with the Tweakable block cipher in which the plaintext of one block is an arbitrary constant by using the Tweak including the nonce N. The nonce encryption unit 203 outputs the acquired encrypted nonce V to the addition unit 205. Further, as described above, the Tweakable block cipher may be in the XEX * mode using the block cipher.
  • the header hash unit 204 performs substantially the same processing as the header hash unit 104 described above. That is, the header hash unit 204 acquires the hash value H of the header A by using the header A and the universal hash function. The header hash unit 204 outputs the acquired hash value H to the addition unit 205. When the header A does not exist, the header hash unit 204 may set the hash value H to an arbitrary constant (for example, all zeros; a constant in which all bit values are 0).
  • the addition unit 205 performs substantially the same processing as the above-mentioned addition unit 106. That is, the addition unit 205 generates the non-abbreviated authentication tag U by summing the checksum S, the encryption nonce V, and the hash value H of the header. The addition unit 205 outputs the generated non-abbreviated authentication tag U to the shortening unit 206.
  • the shortening unit 206 uses an estimated authentication tag by shortening the non-shortening authentication tag U generated by the addition unit 205 to t bits by an arbitrary method for a predetermined t (t is an integer of 1 or more and n or less). Generate a verification tag T'.
  • the specific processing of the shortening unit 206 is substantially the same as the processing of the shortening unit 107.
  • the shortening unit 206 outputs the generated verification tag T'to the tag verification unit 207.
  • the tag verification unit 207 compares the authentication tag T output by the input unit 200 with the verification tag T'output by the shortening unit 206 to verify the presence or absence of tampering. Then, the tag verification unit 207 controls to output information based on the verification result.
  • the tag verification unit 207 may perform control for displaying information on an output device such as a display, for example. Further, the tag verification unit 207 may control to output information to, for example, an external device connected via a network.
  • the tag verification unit 207 controls to output the plaintext M generated by the decryption unit 201 with Twake. In the case where the length of the plaintext is not a multiple of n, the tag verification unit 207 may control to output the plaintext M by removing the predetermined padding. On the other hand, when the authentication tag T and the verification tag T'do not match, the tag verification unit 207 controls to output an error symbol indicating that the authentication tag T and the verification tag T'do not match. ..
  • FIG. 4 is a flowchart showing an authentication encryption method executed by the authentication encryption device 10 according to the first embodiment.
  • the nonce generation unit 101 generates nonce N as described above (step S102).
  • the encryption unit 102 with Twake encrypts the plaintext M for each block using the nonce N as the auxiliary variable Tweek, and acquires the ciphertext C (step S104).
  • the checksum generation unit 103 generates the checksum S of the plaintext M as described above (step S106).
  • the header hash unit 104 acquires the hash value H of the header A as described above (step S108).
  • the nonce encryption unit 105 encrypts the nonce N and acquires the encrypted nonce V as described above (step S110).
  • the authentication encryption device 10 acquires the authentication tag T (step S112). Specifically, as described above, the addition unit 106 takes the sum of the checksum S, the encryption nonce V, and the hash value H of the header. The shortening unit 107 acquires the authentication tag T by shortening the sum (non-shortening authentication tag U) to a predetermined t bit. Then, as described above, the output unit 108 controls to output the ciphertext C and the authentication tag T (step S114).
  • FIG. 5 is a flowchart showing an authentication / decryption method executed by the authentication / decryption device 20 according to the first embodiment.
  • the input unit 200 inputs the ciphertext C, the nonce N, the header A, and the authentication tag T to be decrypted (step S202).
  • the nonce encryption unit 203 encrypts the nonce N and acquires the encrypted nonce V as described above (step S204).
  • the decryption unit 201 with Tweek decrypts the ciphertext C for each block using the nonce N as the auxiliary variable Twoak, and acquires the plaintext M (step S206).
  • the header hash unit 204 acquires the hash value H of the header A as described above (step S208).
  • the checksum generation unit 202 generates the checksum S of the plaintext M as described above (step S210).
  • the authentication / decryption device 20 acquires the estimated authentication tag T'(verification tag) (step S212). Specifically, as described above, the addition unit 205 takes the sum of the encryption nonce V, the hash value H of the header, and the checksum S. The shortening unit 206 acquires the estimated authentication tag T'(verification tag T') by shortening the sum (non-shortening authentication tag U) to a predetermined t-bit.
  • the tag verification unit 207 determines whether or not the authentication tag T and the verification tag T'match (step S214). As a result, the presence or absence of tampering is verified. When the authentication tag T and the verification tag T'match (YES in S214), the tag verification unit 207 controls to output the plaintext M as a verification result indicating that the authentication was successful (step S216). ). On the other hand, when the authentication tag T and the verification tag T'do not match (NO in S214), the tag verification unit 207 controls to output an error symbol as a verification result indicating that the authentication has failed (NO). Step S218).
  • the delay in encryption is small, but the delay in decryption is larger than the delay in encryption.
  • the decoding delay is 3
  • the decoding delay is 2.
  • FIG. 6 is a simplified diagram showing an encryption routine using the authenticated encryption method ThetaCB3 method described in Non-Patent Document 4.
  • TE (N, i, j) is a function TE ((N, i, j), in which Tweak (N, i, j) is applied to the first argument of the encryption function of the Tweakable block cipher. *) Represents.
  • trunc is a function for shortening the input.
  • FIG. 7 is a simplified diagram showing a decryption routine using the authentication encryption method ThetaCB3 method described in Non-Patent Document 4.
  • TD (N, i, j) is a function TD ((N, i, j), *) in which Tweak (N, i, j) is applied to the first argument of the decryption function of the Tweakable block cipher. ).
  • the authentication tag T encrypts the sum of plaintext blocks (exclusive OR) called the checksum S with the TE function (TE (Nm2)) of the Tweakable block cipher. Obtained by.
  • TE TE
  • Nm2 the TE function of the Tweakable block cipher.
  • encryption can be executed in parallel for all TE functions when the input of the values required for encryption (nance N, header A, and plaintext M) is determined. Therefore, the delay in encryption is 1.
  • the decryption process shown in FIG. 7 in order to obtain the plaintext block, the corresponding ciphertext block is decrypted by the decryption function TD of the Tweakable block cipher. Then, after the plaintext block is obtained by decryption, the checksum S is generated, and the checksum S is encrypted with the TE function (TE (Nm.2)) to obtain the value of the authentication tag T'and the value of the authentication tag T'. By confirming that the value of the transmitted authentication tag T matches, the presence or absence of tampering is verified.
  • TE TE
  • the delay in decryption is 2. That is, in FIG. 7, the TE function surrounded by the broken line is the plaintext block M [1] ,. .. .. , M [m] cannot be executed unless it is determined. Therefore, the delay is incremented by 1 with the TE function surrounded by the broken line.
  • the nonce in addition to the above processing, in order to realize the TE function and TD function by block cipher, the nonce (realized by the public value used for encryption, counter, etc.) is encrypted by block cipher. Is required. Specifically, in the case of OCB2 or OCB2f described in Non-Patent Document 2 and Non-Patent Document 3, the delay is increased by 1 in encryption and decryption. Therefore, in the case of OCB, the encryption delay is 2 and the decryption delay is 3. That is, in both OCB and ThetaCB3, the decryption delay is increased by 1 as compared with the encryption delay.
  • the method according to the first embodiment has an effect of suppressing the decoding delay regardless of the length of the authentication tag, as compared with the above-mentioned technique. That is, the method according to the first embodiment has an effect that the encryption delay and the decryption delay are both one time of the Tweakable block cipher regardless of the tag length.
  • FIG. 8 is a diagram illustrating an encryption process when the authentication encryption method according to the first embodiment is implemented by a Tweakable block cipher.
  • FIG. 9 is a diagram illustrating a decryption process when the authentication encryption method according to the first embodiment is performed by a Tweakable block cipher.
  • the TE and TD function dependencies do not exist in either encryption (FIG. 8) or decryption (FIG. 9), and the TE and TD functions are completely parallel.
  • the encryption delay and the decryption delay are both 1.
  • the encryption delay is 1, whereas the decryption delay is 2. ..
  • the decoding delay can be set to 1 by changing the decoding procedure.
  • tag length t is less than n bits, it is conceivable to shorten the output of the TE function and TD function related to the generation of the checksum and the generation of the hash value of the header to t bits in advance. This makes it possible to reduce the amount of memory required for encryption or decryption without changing the overall algorithm.
  • ThetaCB3 since the checksum cannot be shortened before being input to the Tweakable block cipher, such a memory amount reduction cannot be performed.
  • the Tweakable block cipher when the Tweakable block cipher is realized in some block cipher use mode (for example, the XEX * mode used in OCB of Non-Patent Document 2), a calculation overhead occurs in the block cipher use mode part. This increases both encryption and decryption delays. Specifically, when XEX * is used, one time due to nonce encryption always occurs as an overhead. However, this is also the case with the existing OCB, and if the method for realizing the Tweakable block cipher is the same, the overhead is the same, and as a result, the decoding in the present embodiment for the technique described in the non-patent document. The advantage of low delay will be preserved.
  • some block cipher use mode for example, the XEX * mode used in OCB of Non-Patent Document 2
  • a calculation overhead occurs in the block cipher use mode part. This increases both encryption and decryption delays. Specifically, when XEX * is used, one time
  • both the encryption delay and the decryption delay are 2.
  • both the encryption delay and the decryption delay are reduced by about 1 as compared with the case where the XEX * mode is used in both OCB3 and the present embodiment. Therefore, in OCB3, the encryption delay is approximately 1, and the decryption delay is approximately 2. On the other hand, in the present embodiment, both the encryption delay and the decryption delay are substantially 1.
  • the rate of encryption and decryption is 1, parallel execution is possible, and provable security is provided. Retains the benefits. Therefore, in the present embodiment, high-speed and low-delay authentication encryption can be realized.
  • the second embodiment shows the outline of the configuration according to the first embodiment.
  • FIG. 11 is a diagram showing an authentication encryption device 30 according to the second embodiment.
  • the authentication encryption device 30 according to the second embodiment corresponds to the authentication encryption device 10 according to the first embodiment.
  • the authentication encryption device 30 according to the second embodiment includes an input unit 31, a nonce generation unit 32, a plaintext encryption unit 33, a checksum generation unit 34, a hash unit 35, a nonce encryption unit 36, and the like. It has an authentication tag generation unit 37 and an output unit 38.
  • the input unit 31 has a function as an input means (first input means).
  • the nonce generating unit 32 has a function as a nonce generating means.
  • the plaintext encryption unit 33 has a function as a plaintext encryption means (encryption means with Twake or ciphertext generation means).
  • the checksum generation unit 34 has a function as a checksum generation means (first checksum generation means).
  • the hash unit 35 has a function as a hash means (first hash means).
  • the nonce encryption unit 36 has a function as a nonce encryption means (first nonce encryption means).
  • the authentication tag generation unit 37 has a function as an authentication tag generation means (addition means and shortening means).
  • the output unit 38 has a function as an output means.
  • the input unit 31 can be realized by substantially the same function as the function of the input unit 100 shown in FIG.
  • the input unit 31 accepts plaintext input. Further, the input unit 31 may accept the input of the header.
  • the nonce generation unit 32 can be realized by a function substantially similar to the function of the nonce generation unit 101 shown in FIG.
  • the nonce generation unit 32 generates a nonce different from the value generated in the past.
  • the plaintext encryption unit 33 can be realized by substantially the same function as the function of the Tweek-attached encryption unit 102 shown in FIG.
  • the plaintext encryption unit 33 generates a ciphertext corresponding to the plaintext by encrypting each block in which the plaintext is divided by using a nonce as an auxiliary variable.
  • the checksum generation unit 34 can be realized by substantially the same function as the function of the checksum generation unit 103 shown in FIG.
  • the checksum generation unit 34 generates a checksum using plain text.
  • the hash unit 35 can be realized by a function substantially similar to the function of the header hash unit 104 shown in FIG.
  • the hash unit 35 acquires the hash value.
  • the hash unit 35 may acquire the hash value by using the header and the hash function (universal hash function).
  • the nonce encryption unit 36 can be realized by a function substantially similar to the function of the nonce encryption unit 105 shown in FIG.
  • the nonce encryption unit 36 encrypts the nonce and acquires the encrypted nonce.
  • the authentication tag generation unit 37 can be realized by substantially the same functions as those of the addition unit 106 and the shortening unit 107 shown in FIG.
  • the authentication tag generation unit 37 generates an authentication tag using a checksum, a hash value, and an encrypted nonce.
  • the authentication tag generation unit 37 may generate an authentication tag based on the sum of the checksum, the hash value, and the encryption nonce. Further, the authentication tag generation unit 37 may generate an authentication tag by shortening this sum.
  • the output unit 38 can be realized by a function substantially similar to the function of the output unit 108 shown in FIG. The output unit 38 controls to output the ciphertext and the authentication tag.
  • FIG. 12 is a diagram showing the authentication / decryption device 40 according to the second embodiment.
  • the authentication / decryption device 40 according to the second embodiment corresponds to the authentication / decryption device 20 according to the first embodiment.
  • the authentication / decryption device 40 according to the second embodiment includes an input unit 41, a plaintext decryption unit 43, a checksum generation unit 44, a hash unit 45, a nonce encryption unit 46, a verification tag generation unit 47, and the like. It has a verification unit 48.
  • the input unit 41 has a function as an input means (second input means).
  • the plaintext decoding unit 43 has a function as a plaintext decoding means (decoding means with Twake or plaintext generating means).
  • the checksum generation unit 44 has a function as a checksum generation means (second checksum generation means).
  • the hash unit 45 has a function as a hash means (second hash means).
  • the nonce encryption unit 46 has a function as a nonce encryption means (second nonce encryption means).
  • the verification tag generation unit 47 has a function as a verification tag generation means (addition means and shortening means).
  • the verification unit 48 has a function as a verification means (tag verification means and output means).
  • the input unit 41 can be realized by substantially the same function as the function of the input unit 200 shown in FIG.
  • the input unit 41 accepts input of a ciphertext, an authentication tag, and a nonce.
  • the input unit 41 may accept header input.
  • the plaintext decoding unit 43 can be realized by substantially the same function as the function of the decryption unit 201 with Twake shown in FIG.
  • the plaintext decryption unit 43 generates the plaintext corresponding to the ciphertext by decrypting each block in which the ciphertext is divided by using the nonce as an auxiliary variable.
  • the checksum generation unit 44 can be realized by substantially the same function as the function of the checksum generation unit 202 shown in FIG.
  • the checksum generation unit 44 generates a checksum using plain text.
  • the hash unit 45 can be realized by a function substantially similar to the function of the header hash unit 204 shown in FIG.
  • the hash unit 45 acquires the hash value.
  • the hash unit 45 may acquire the hash value by using the header and the hash function (universal hash function).
  • the nonce encryption unit 46 can be realized by substantially the same function as the function of the nonce encryption unit 203 shown in FIG.
  • the nonce encryption unit 46 encrypts the nonce and acquires the encrypted nonce.
  • the verification tag generation unit 47 can be realized by substantially the same functions as those of the addition unit 205 and the shortening unit 206 shown in FIG.
  • the verification tag generation unit 47 generates a verification tag, which is an estimated authentication tag, by using the checksum, the hash value, and the encryption nonce.
  • the verification tag generation unit 47 may generate a verification tag based on the sum of the checksum, the hash value, and the encryption nonce. Further, the verification tag generation unit 47 may generate a verification tag by shortening this sum.
  • the verification unit 48 can be realized by substantially the same function as the function of the tag verification unit 207 shown in FIG.
  • the verification unit 48 verifies the presence or absence of tampering by comparing the authentication tag and the verification tag, and controls for outputting the verification result. If the authentication tag and the verification tag match, the verification unit 48 may perform control to output a plain text as a verification result. On the other hand, if the authentication tag and the verification tag do not match, the verification unit 48 may perform control to output an error symbol as a verification result.
  • the authentication encryption device 30 and the authentication decryption device 40 according to the second embodiment can suppress delays in encryption and decryption by the above-described configuration.
  • a delay in encryption and decryption can also be suppressed by an authentication encryption system having an authentication encryption device 30 and an authentication decryption device 40.
  • the authentication encryption method executed by the authentication encryption device 30 and the program that executes the authentication encryption method can also suppress delays in encryption and decryption.
  • the authentication / decryption method executed by the authentication / decryption device 40 and the program that executes the authentication / decryption method can also suppress delays in encryption and decryption.
  • the devices (authentication encryption device and authentication decryption device) according to each embodiment may be physically or functionally realized by using at least two calculation processing devices. Further, the device according to each embodiment may be realized as a dedicated device or a general-purpose information processing device.
  • FIG. 13 is a block diagram schematically showing a hardware configuration example of a calculation processing device capable of realizing the devices and systems according to each embodiment.
  • the calculation processing device 120 includes a CPU 121, a volatile storage device 122, a disk 123, a non-volatile recording medium 124, and a communication IF 127 (IF: Interface). Therefore, it can be said that the device according to each embodiment has a CPU 121, a volatile storage device 122, a disk 123, a non-volatile recording medium 124, and a communication IF 127.
  • the calculation processing device 120 may be connectable to the input device 125 and the output device 126.
  • the calculation processing device 120 may include an input device 125 and an output device 126. Further, the calculation processing device 120 can transmit / receive information to / from other calculation processing devices and the communication device via the communication IF 127.
  • the non-volatile recording medium 124 is, for example, a compact disc (Compact Disc) or a digital versatile disc (Digital Versatile Disc) that can be read by a computer. Further, the non-volatile recording medium 124 may be a USB (Universal Serial Bus) memory, a solid state drive (Solid State Drive), or the like. The non-volatile recording medium 124 holds the program and makes it portable without supplying power. The non-volatile recording medium 124 is not limited to the above-mentioned medium. Further, the program may be supplied via the communication IF 127 and the communication network instead of the non-volatile recording medium 124.
  • the program may be supplied via the communication IF 127 and the communication network instead of the non-volatile recording medium 124.
  • the volatile storage device 122 is readable by a computer and can temporarily store data.
  • the volatile storage device 122 is a memory such as a DRAM (dynamic random Access memory) or a SRAM (static random Access memory).
  • the CPU 121 copies the software program (computer program: hereinafter, simply referred to as "program") stored in the disk 123 to the volatile storage device 122 when executing the software program, and executes arithmetic processing.
  • the CPU 121 reads the data necessary for executing the program from the volatile storage device 122. When display is required, the CPU 121 displays the output result on the output device 126.
  • the CPU 121 acquires the program from the input device 125.
  • the CPU 121 interprets and executes a program corresponding to the function (processing) of each component shown in FIGS. 2, 3, 11, and 12 described above.
  • the CPU 121 executes the processes described in each of the above-described embodiments. In other words, the functions of the respective components shown in FIGS. 2, 3, 11, and 12 described above can be realized by the CPU 121 executing the program stored in the disk 123 or the volatile storage device 122. ..
  • each embodiment can be achieved by the above-mentioned program. Further, it can be considered that each of the above-described embodiments can be achieved by using a non-volatile recording medium in which the above-mentioned program is recorded and which can be read by a computer.
  • the processing order of S104 to S110 is not limited to the order shown in FIG. Further, the processes of S104 to S110 can be executed in parallel.
  • the processing order of S204, S206, and S208 is not limited to the order shown in FIG. Further, the processes of S204, S206, and S208 can be executed in parallel.
  • Non-temporary computer-readable media include various types of tangible storage media.
  • Examples of non-temporary computer-readable media include magnetic recording media (eg flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (eg magneto-optical disks), CD-ROMs, CD-Rs, CD-R / Ws. , Semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM).
  • the program may also be supplied to the computer by various types of temporary computer readable medium. Examples of temporary computer-readable media include electrical, optical, and electromagnetic waves.
  • the temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.
  • (Appendix 1) Input means for accepting plaintext input and A nonce generating means that generates a nonce different from the value generated in the past,
  • a plaintext encryption means that generates a ciphertext corresponding to the plaintext by encrypting each block in which the plaintext is divided by using the nonce as an auxiliary variable.
  • a checksum generation means for generating a checksum using the plaintext
  • Hash means to get the hash value
  • a nonce encryption means that encrypts the nonce and obtains an encrypted nonce
  • An authentication tag generation means that generates an authentication tag using the checksum, the hash value, and the encryption nonce.
  • the authentication tag generation means generates the authentication tag based on the sum of the checksum, the hash value, and the encryption nonce.
  • the authentication encryption device according to Appendix 1. (Appendix 3) The authentication tag generation means generates the authentication tag by shortening the sum.
  • the authentication encryption device according to Appendix 2. (Appendix 4)
  • the nonce encryption means obtains the encrypted nonce having the same length as the checksum.
  • the authentication encryption device according to any one of Appendix 1 to 3. (Appendix 5)
  • the input means accepts a header and
  • the hash means obtains the hash value by using the header and the hash function.
  • the authentication encryption device according to any one of Appendix 1 to 4.
  • the plaintext encryption means sets the plaintext encryption means, which is an auxiliary variable including the nonce and the index i of the plaintext block, with respect to the i-th plaintext block of the block when the plaintext is divided into blocks having a predetermined length.
  • the plaintext is encrypted in parallel for each block with the Tweakable block cipher.
  • the authentication encryption device according to any one of Appendix 1 to 5.
  • the input means accepts a header and
  • the hash means uses Tweek, which is an auxiliary variable including the index i of the header block, with respect to the i-th header block of the block when the header is divided into blocks of a predetermined length, to use the header.
  • the hash value is acquired by encrypting each block in parallel with the Header block cipher.
  • the authentication encryption device according to Appendix 6. The hash means obtains the hash value by adding blocks in which the header is encrypted.
  • the authentication encryption device according to Appendix 7. (Appendix 9)
  • the nonce encryption means obtains the encrypted nonce by performing encryption with a Tweakable block cipher using the auxiliary variable Tweak including the nonce.
  • the authentication encryption device according to any one of Appendix 6 to 8. (Appendix 10)
  • the Tweakable block cipher is an XEX * mode using a block cipher.
  • a verification tag generation means for generating a verification tag, which is an estimated authentication tag, using the checksum, the hash value, and the encryption nonce.
  • a verification that verifies the presence or absence of tampering by comparing the authentication tag and the verification tag and controls for outputting the verification result.
  • the verification tag generation means generates the verification tag based on the sum of the checksum, the hash value, and the encryption nonce.
  • the verification tag generation means generates the verification tag by shortening the sum.
  • the nonce encryption means obtains the encrypted nonce having the same length as the checksum.
  • the input means accepts a header and The hash means obtains the hash value by using the header and the hash function.
  • the authentication decryption device according to any one of Appendix 11 to 14.
  • the plaintext decryption means is the auxiliary variable including the nonce and the index i of the ciphertext block with respect to the i-th ciphertext block of the block when the ciphertext is divided into blocks of a predetermined length. Using Tweak, the ciphertext is decrypted in parallel for each block by the Tweakable block cipher.
  • the authentication decryption device according to any one of Appendix 11 to 15.
  • the input means accepts a header and
  • the hash means uses Tweek, which is an auxiliary variable including the index i of the header block, with respect to the i-th header block of the block when the header is divided into blocks of a predetermined length, to use the header.
  • the hash value is acquired by encrypting each block in parallel with the Header block cipher.
  • the hash means obtains the hash value by adding blocks in which the header is encrypted.
  • the nonce encryption means obtains the encrypted nonce by performing encryption with a Tweakable block cipher using the auxiliary variable Tweak including the nonce.
  • the authentication decryption device according to any one of Appendix 16 to 18.
  • the Tweakable block cipher is an XEX * mode using a block cipher.
  • the authentication decryption device according to any one of Appendix 16 to 19.
  • the authentication encryption device is The first input means that accepts plaintext input, A nonce generating means that generates a nonce different from the value generated in the past, A plaintext encryption means that generates a ciphertext corresponding to the plaintext by encrypting each block in which the plaintext is divided by using the nonce as an auxiliary variable.
  • a first checksum generation means for generating a checksum using the plaintext, The first hashing method to get the hash value and A first nonce encryption means for encrypting the nonce and obtaining an encrypted nonce,
  • An authentication tag generation means that generates an authentication tag using the checksum, the hash value, and the encryption nonce.
  • An output means that controls the output of the ciphertext and the authentication tag, and Have,
  • the authentication decryption device is A second input means that accepts ciphertext, authentication tag and nonce input, The plaintext corresponding to the ciphertext is decrypted by using the nonce input by the second input means as an auxiliary variable for each block obtained by dividing the ciphertext input by the second input means.
  • the plaintext decryption means to generate A second checksum generating means for generating a checksum using the plaintext generated by the plaintext decoding means, and a second checksum generating means.
  • a second hashing method to get the hash value
  • a second nonce encryption means that encrypts the nonce input by the second input means to obtain an encrypted nonce
  • the verification tag generation means to generate the verification tag, which is the estimated authentication tag
  • a verification means that verifies the presence or absence of tampering by comparing the authentication tag generated by the authentication tag generation means with the verification tag, and controls for outputting the verification result.
  • (Appendix 23) Accepts ciphertext, authentication tag and nonce input, By decrypting the ciphertext using the nonce as an auxiliary variable for each divided block, a plaintext corresponding to the ciphertext is generated. Generate a checksum using the plaintext Get the hash value and Encrypt the nonce to obtain the encrypted nonce, Using the checksum, the hash value, and the encryption nonce, a verification tag, which is an estimated authentication tag, is generated. By comparing the authentication tag with the verification tag, the presence or absence of tampering is verified, and control is performed to output the verification result. Authentication decryption method.
  • Steps to accept ciphertext, authentication tag and nonce input A step of generating a plaintext corresponding to the ciphertext by decrypting the ciphertext for each divided block using the nonce as an auxiliary variable. The step of generating a checksum using the plaintext and Steps to get the hash value and The step of encrypting the nonce and obtaining the encrypted nonce, A step of generating a verification tag, which is an estimated authentication tag, using the checksum, the hash value, and the encryption nonce. A step of verifying the presence or absence of tampering by comparing the authentication tag and the verification tag and performing control for outputting the verification result, and A non-transitory computer-readable medium containing a program that causes a computer to execute.
  • Authentication encryption system 10 Authentication encryption device 100 Input unit 101 Nance generation unit 102 Twake encryption unit 103 Check sum generation unit 104 Header hash unit 105 Nance encryption unit 106 Addition unit 107 Shortening unit 108 Output unit 20 Authentication decryption device 200 Input unit 201 Decryption unit with Twake 202 Check sum generation unit 203 Nance encryption unit 204 Header hash unit 205 Addition unit 206 Shortening unit 207 Tag verification unit 30 Authentication encryption device 31 Input unit 32 Nance generation unit 33 Plain text encryption unit 34 Check Thumb generation unit 35 Hash unit 36 Nance encryption unit 37 Authentication tag generation unit 38 Output unit 40 Authentication decryption device 41 Input unit 43 Plain text decryption unit 44 Check sum generation unit 45 Hash unit 46 Nance encryption unit 47 Verification tag generation unit 48 Verification department

Landscapes

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

Abstract

暗号化及び復号における遅延を抑制することが可能な認証暗号化装置を提供する。ナンス生成部(32)は、過去に生成された値とは異なるナンスを生成する。平文暗号化部(33)は、平文を分割したブロックごとに、ナンスを補助変数として用いて暗号化することで、平文に対応する暗号文を生成する。チェックサム生成部(34)は、平文を用いてチェックサムを生成する。ハッシュ部(35)は、ハッシュ値を取得する。ナンス暗号化部(36)は、ナンスを暗号化して暗号化ナンスを取得する。認証タグ生成部(37)は、チェックサムとハッシュ値と暗号化ナンスとを用いて認証タグを生成する。

Description

認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体
 本発明は、認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体に関する。
 事前に共有された秘密鍵を用いて、平文メッセージに対して暗号化と改ざん検知用の認証タグ計算とを同時に適用する認証暗号(Authenticated Encryption;AE)という技術が知られている。通信路に認証暗号AEを適用することにより、盗聴に対する内容の秘匿と、不正な改ざんに対する検知とが可能となり、結果として通信内容に対する強力な保護が実現される。認証暗号技術としては、例えば、非特許文献1に開示された技術が知られている。
 また、このような認証暗号を効率的に行う技術の1つとして、例えば、特許文献1及び非特許文献2に示すようなOCB(Offset Code Book)モードと呼ばれる認証暗号方式が知られている。OCBモードは、暗号化と復号の際に、Tweak(トウィーク)と呼ばれる補助変数(調整値)を導入するTweakableブロック暗号と呼ばれるブロック暗号を拡張したものである。具体的には、OCBモードでは、非特許文献2に記載されているXEXモードによる暗号化を行うことで、Tweakを用いた暗号化を行っている。また、OCBモードでは、平文を分割した各ブロックの排他的論理和に上記暗号化を行う際と同様の処理を行うことでタグを生成している。
 また、非特許文献3は、非特許文献2に記載されたバージョンのOCBへ修正を施したバージョンであるOCB2fに関する方式を開示している。また、非特許文献4は、ブロック暗号の拡張であるTweakableブロック暗号(Tweakable block cipher;TBC;可撚ブロック暗号)をプリミティブとして用いてOCBを抽象化したΘCB3(以下ThetaCB3)方式を開示している。
米国特許第8321675号明細書
NIST Special Publication 800-38D、"Recommendation for Block Cipher Modes of Operation:  Galois/Counter Mode (GCM) and GMAC"、http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf "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 Akiko Inoue, Tetsu Iwata, Kazuhiko Minematsu, Bertram Poettering、"Cryptanalysis of OCB2: Attacks on Authenticity and Confidentiality"、IACR Cryptology ePrint Archive 2019: 311 (2019) Ted Krovetz, Phillip Rogaway、"The Software Performance of Authenticated-Encryption Modes"、FSE 2011: 306-327 Christof Beierle, Jeremy Jean, Stefan Kolbl, Gregor Leander, Amir Moradi, Thomas Peyrin, Yu Sasaki, Pascal Sasdrich, Siang Meng Sim、"The SKINNY Family of Block Ciphers and Its Low-Latency Variant MANTIS"、CRYPTO (2) 2016: 123-153 Daniel J. Bernstein、"The Poly1305-AES Message-Authentication Code"、FSE 2005: 32-49
 認証暗号を含む一般の暗号化方式について、遅延という評価指標がある。これは処理を開始してから最初の出力結果が出るまでの時間を指すものであり、小さいほうが望ましい。一方、上述した特許文献及び非特許文献にかかる技術では、暗号化及び復号における遅延を抑制することは困難である。
 本開示の目的は、このような課題を解決するためになされたものであり、暗号化及び復号における遅延を抑制することが可能な認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体を提供することにある。
 本開示にかかる認証暗号化装置は、平文の入力を受け付ける入力手段と、過去に生成された値とは異なるナンスを生成するナンス生成手段と、前記平文を分割したブロックごとに、前記ナンスを補助変数として用いて暗号化することで、前記平文に対応する暗号文を生成する平文暗号化手段と、前記平文を用いてチェックサムを生成するチェックサム生成手段と、ハッシュ値を取得するハッシュ手段と、前記ナンスを暗号化して暗号化ナンスを取得するナンス暗号化手段と、前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて認証タグを生成する認証タグ生成手段と、前記暗号文及び前記認証タグを出力するための制御を行う出力手段と、有する。
 また、本開示にかかる認証復号装置は、暗号文、認証タグ及びナンスの入力を受け付ける入力手段と、前記暗号文を分割したブロックごとに、前記ナンスを補助変数として用いて復号することで、前記暗号文に対応する平文を生成する平文復号手段と、前記平文を用いてチェックサムを生成するチェックサム生成手段と、ハッシュ値を取得するハッシュ手段と、前記ナンスを暗号化して暗号化ナンスを取得するナンス暗号化手段と、前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて、推定された認証タグである検証用タグを生成する検証用タグ生成手段と、前記認証タグと前記検証用タグとを比較することによって改ざんの有無を検証し、検証結果を出力するための制御を行う検証手段と、を有する。
 また、本開示にかかる認証暗号システムは、認証暗号化装置と、前記認証暗号化装置との間で通信を行う認証復号装置と、を有し、前記認証暗号化装置は、平文の入力を受け付ける第1の入力手段と、過去に生成された値とは異なるナンスを生成するナンス生成手段と、前記平文を分割したブロックごとに、前記ナンスを補助変数として用いて暗号化することで、前記平文に対応する暗号文を生成する平文暗号化手段と、前記平文を用いてチェックサムを生成する第1のチェックサム生成手段と、ハッシュ値を取得する第1のハッシュ手段と、前記ナンスを暗号化して暗号化ナンスを取得する第1のナンス暗号化手段と、前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて認証タグを生成する認証タグ生成手段と、前記暗号文及び前記認証タグを出力するための制御を行う出力手段と、を有し、前記認証復号装置は、暗号文、認証タグ及びナンスの入力を受け付ける第2の入力手段と、前記第2の入力手段によって入力された前記暗号文を分割したブロックごとに、前記第2の入力手段によって入力された前記ナンスを補助変数として用いて復号することで、前記暗号文に対応する平文を生成する平文復号手段と、前記平文復号手段によって生成された前記平文を用いてチェックサムを生成する第2のチェックサム生成手段と、ハッシュ値を取得する第2のハッシュ手段と、前記第2の入力手段によって入力された前記ナンスを暗号化して暗号化ナンスを取得する第2のナンス暗号化手段と、前記第2のチェックサム生成手段によって生成された前記チェックサムと、前記第2のハッシュ手段によって取得された前記ハッシュ値と、前記第2のナンス暗号化手段によって取得された前記暗号化ナンスとを用いて、推定された認証タグである検証用タグを生成する検証用タグ生成手段と、前記認証タグ生成手段によって生成された前記認証タグと前記検証用タグとを比較することによって改ざんの有無を検証し、検証結果を出力するための制御を行う検証手段と、を有する。
 また、本開示にかかる認証暗号化方法は、平文の入力を受け付け、過去に生成された値とは異なるナンスを生成し、前記平文を分割したブロックごとに、前記ナンスを補助変数として用いて暗号化することで、前記平文に対応する暗号文を生成し、前記平文を用いてチェックサムを生成し、ハッシュ値を取得し、前記ナンスを暗号化して暗号化ナンスを取得し、前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて認証タグを生成し、前記暗号文及び前記認証タグを出力するための制御を行う。
 また、本開示にかかる認証復号方法は、暗号文、認証タグ及びナンスの入力を受け付け、前記暗号文を分割したブロックごとに、前記ナンスを補助変数として用いて復号することで、前記暗号文に対応する平文を生成し、前記平文を用いてチェックサムを生成し、ハッシュ値を取得し、前記ナンスを暗号化して暗号化ナンスを取得し、前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて、推定された認証タグである検証用タグを生成し、前記認証タグと前記検証用タグとを比較することによって改ざんの有無を検証し、検証結果を出力するための制御を行う。
 また、本開示にかかるプログラムは、平文の入力を受け付けるステップと、過去に生成された値とは異なるナンスを生成するステップと、前記平文を分割したブロックごとに、前記ナンスを補助変数として用いて暗号化することで、前記平文に対応する暗号文を生成するステップと、前記平文を用いてチェックサムを生成するステップと、ハッシュ値を取得するステップと、前記ナンスを暗号化して暗号化ナンスを取得するステップと、前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて認証タグを生成し、前記暗号文及び前記認証タグを出力するための制御を行うステップと、をコンピュータに実行させる。
 また、本開示にかかるプログラムは、暗号文、認証タグ及びナンスの入力を受け付けるステップと、前記暗号文を分割したブロックごとに、前記ナンスを補助変数として用いて復号することで、前記暗号文に対応する平文を生成するステップと、前記平文を用いてチェックサムを生成するステップと、ハッシュ値を取得するステップと、前記ナンスを暗号化して暗号化ナンスを取得するステップと、前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて、推定された認証タグである検証用タグを生成するステップと、前記認証タグと前記検証用タグとを比較することによって改ざんの有無を検証し、検証結果を出力するための制御を行うステップと、をコンピュータに実行させる。
 本開示によれば、暗号化及び復号における遅延を抑制することが可能な認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体を提供できる。
実施の形態1にかかる認証暗号システムの構成を示す図である。 実施の形態1にかかる認証暗号化装置の構成を示す図である。 実施の形態1にかかる認証復号装置の構成を示す図である。 実施の形態1にかかる認証暗号化装置で実行される認証暗号化方法を示すフローチャートである。 実施の形態1にかかる認証復号装置で実行される認証復号方法を示すフローチャートである。 非特許文献4に記載された認証暗号方式ThetaCB3方式を用いた暗号化ルーチンを簡略化して示した図である。 非特許文献4に記載された認証暗号方式ThetaCB3方式を用いた復号ルーチンを簡略化して示した図である。 実施の形態1にかかる認証暗号化方法をTweakableブロック暗号で実施する場合の暗号化処理を例示する図である。 実施の形態1にかかる認証暗号化方法をTweakableブロック暗号で実施する場合の復号処理を例示する図である。 非特許文献2に記載された暗号化関数及び復号関数を例示する図である。 実施の形態2にかかる認証暗号化装置を示す図である。 実施の形態2にかかる認証復号装置を示す図である。 各実施形態に係る装置およびシステムを実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。
(本開示にかかる実施形態の概要)
 本開示の実施の形態の説明に先立って、本開示にかかる実施の形態の概要について説明する。なお、以下、本開示の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
 認証暗号(AE)の基本的な入出力について説明する。なお、以下の説明では、秘密鍵Kを共有する2者としてAliceとBobとの間の通信を考え、AliceからBobへ認証暗号による暗号化を行ったメッセージを通信するものとする。また、以下の説明にかかる方式は、例えば、非特許文献1に記載されたGCM(Galois/Counter Mode)というアルゴリズムによって実現される。
 認証暗号の暗号化関数をAEncとし、復号関数をADecとする。また、暗号化したい平文をMとし、さらにナンス(Nonce(ノンス))と呼ばれる変数Nを導入する。また、ヘッダ(associated data;AD)をAとする。ここで、ヘッダAは、暗号化は行われないが改ざん検知は行われる値である。
 まず、Alice側の暗号化処理について説明する。Aliceは、ナンスNを生成後、(C,T)=AEnc_K(N,A,M)で表される処理を実行する。ここで、AEnc_Kは、鍵Kをパラメータとした暗号化関数であり、Cは暗号文である。また、Tは、タグ(認証タグ)と呼ばれる、固定長の改ざん検出用の変数である。Aliceは、ナンスN、ヘッダA、暗号文C及びタグTの組(N,A,C,T)を、Bobに送信する。
 次に、Bob側の復号処理について説明する。Bobが受信した情報を(N’,A’,C’,T’)とする。この場合、Bobは、復号処理としてADec_K(N’,A’,C’,T’)を実行する。なお、ADec_Kは、鍵Kをパラメータとした復号関数である。通信の途中で改ざんがあり、(N’,A’,C’,T’)≠(N,A,C,T)である場合、ADec_K(N’,A’,C’,T’)について、改ざんがあったことを示すエラーメッセージ(エラーシンボル)が出力される。つまり、この場合、改ざんが検出される。一方、通信の途中で改ざんがなく、(N’,A’,C’,T’)=(N,A,C,T)である場合、ADec_K(N’,A’,C’,T’)について、Aliceが暗号化した平文Mが正しく復号される。
 また、上記の処理においては、通常、暗号化においてナンスNが過去の値と偶然一致してしまわないようにすることが重要である。このために、暗号化側では、カウンタなどの何らかの状態変数を用いて、ナンスの一致を防ぐ。すなわち、典型的には、状態変数として直前に使ったNを記憶しておき、毎回Nをインクリメントすることで、ナンスNが過去の値と重複しないことが、実現される。
 ここで、認証暗号を含む一般の暗号化方式について、遅延(レイテンシ;latency)という評価指標がある。これは処理を開始してから最初の出力結果が出るまでの時間を指すものであり、小さいほうが望ましい。例えば、コンピュータ内部のメモリバスの暗号化、又は、例えばオンラインゲームや無人機の制御といったリアルタイム処理が求められる通信の暗号化では、特に遅延の発生が問題となる。したがって、このような場合では、低遅延であることが望ましい。なお、暗号化の場合、遅延は、複数ブロックからなる平文を入力した際に、最初の暗号文ブロックが出力されるまでの時間又は処理量のことを指す。
 認証暗号で用いるコアとなる暗号部品のことをプリミティブと称する場合、認証暗号における暗号化の遅延は、最初の暗号文ブロックが出力されるまでに必要なプリミティブのコール回数とするのが一般的である。復号の遅延も同様に定義される。なお、遅延の他の指標として、速度(スループット;throughput)がある。速度は、1プリミティブコールあたりで処理可能なメッセージブロック数とするのが一般的である。この数値はレートとも呼ばれる。ただし、一般に、メッセージによらず発生する定数回の呼び出しは、レートの計算に含まれない。つまり、レートは、メッセージが十分長いときの漸近的速度を反映するものである。一方、遅延は、定義上、上記のような定数回呼び出しを含み得る。
 ブロック暗号をプリミティブとする認証暗号方式として、特許文献1及び非特許文献1に記載されたOCBが知られている。OCBについては、特に、遅延が少ないことが知られている。また、例えば、非特許文献2に記載されたOCBの方式、及び、非特許文献3に記載されたOCB2fでは、暗号化における遅延は、ブロック暗号2回となっている。さらに、非特許文献4に記載されたThetaCB3方式では、暗号化における遅延はTBC1回となっており、TBCを用いた方式としては理論的に最良となっている。言い換えると、OCB及びThetaCB3においては、暗号化における遅延が小さい。なお、速度については、OCB及びThetaCB3のいずれについても、暗号化および復号のレートが1であり、メッセージのブロック単位で並列に実行可能である。したがって、OCB及びThetaCB3においては、高速な処理が可能であるといえる。
 ここで、OCB及びThetaCB3においては、暗号化における遅延は小さいものの、後述するように、復号における遅延は、暗号化における遅延よりも大きくなる。これに対し、本実施の形態における認証暗号では、以下に説明するように、OCB及びThetaCB3と同等の速度(すなわちレート1)を達成しつつ、遅延をさらに小さくすることができる。つまり、本実施の形態においては、高速かつ低遅延な認証暗号を実現することができる。
(実施の形態1)
 以下、実施の形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
 図1は、実施の形態1にかかる認証暗号システム1の構成を示す図である。認証暗号システム1は、認証暗号化装置10と、認証復号装置20とを有する。認証暗号化装置10及び認証復号装置20は、物理的に一体であってもよいし、別個であってもよい。また、図2~図3を用いて後述する各装置の構成要素が、別の装置で実現されてもよい。なお、以下の説明では、特に断りのない限り、平文又は暗号文等を分割して得られた複数のブロックのうちの1ブロックの長さを所定長であるnビットとする。また、上述したAliceとBobとの間の通信の例において、認証暗号化装置10は、Aliceに対応し、認証復号装置20はBobに対応する。つまり、認証暗号化装置10及び認証復号装置20との間で通信が行われる。
 なお、本実施の形態においては、平文の長さが常にブロック長nの倍数であることが好ましい。仮に、ブロック長nの倍数でない平文を扱う場合には、パディングが必要となり、暗号文の長さが増える。しかしながら、平文の長さがブロック長の倍数であるという制限は、多くのアプリケーションでは問題とならない。例えば後述するAES(Advanced Encryption Standard)を用いてメモリ、キャッシュ又はハードディスクセクタの暗号化を行うことを考える場合、平文の標準的な長さは、AESのブロック長(16バイト)の倍数である。
 図2は、実施の形態1にかかる認証暗号化装置10の構成を示す図である。図3は、実施の形態1にかかる認証復号装置20の構成を示す図である。また、図4は、実施の形態1にかかる認証暗号化装置10で実行される認証暗号化方法を示すフローチャートである。また、図5は、実施の形態1にかかる認証復号装置20で実行される認証復号方法を示すフローチャートである。また、図6は、非特許文献4に記載された認証暗号方式ThetaCB3方式を用いた暗号化ルーチンを簡略化して示した図である。また、図7は、非特許文献4に記載された認証暗号方式ThetaCB3方式を用いた復号ルーチンを簡略化して示した図である。また、図8は、実施の形態1にかかる認証暗号化方法をTweakableブロック暗号で実施する場合の暗号化処理を例示する図である。また、図9は、実施の形態1にかかる認証暗号化方法をTweakableブロック暗号で実施する場合の復号処理を例示する図である。また、図10は、非特許文献2に記載された暗号化関数及び復号関数を例示する図である。
 図2に示した認証暗号化装置10について説明する。認証暗号化装置10は、入力部100と、ナンス生成部101と、Tweak付き暗号化部102と、チェックサム生成部103と、ヘッダハッシュ部104と、ナンス暗号化部105と、加算部106と、短縮部107と、出力部108とを有する。認証暗号化装置10は、例えばコンピュータによって実現可能である。つまり、認証暗号化装置10は、CPU(Central Processing Unit)などの演算装置と、メモリ又はディスクなどの記憶装置とを有している。認証暗号化装置10は、例えば、記憶装置に格納されたプログラムを演算装置が実行することで、上記の各構成要素を実現する。
 入力部100は、入力手段としての機能を有する。ナンス生成部101は、ナンス生成手段としての機能を有する。Tweak付き暗号化部102は、Tweak付き暗号化手段(平文暗号化手段又は暗号文生成手段)としての機能を有する。チェックサム生成部103は、チェックサム生成手段としての機能を有する。ヘッダハッシュ部104は、ヘッダハッシュ手段(ハッシュ手段)としての機能を有する。ナンス暗号化部105は、ナンス暗号化手段としての機能を有する。加算部106は、加算手段(加法手段)としての機能を有する。短縮部107は、短縮手段(認証タグ生成手段)としての機能を有する。出力部108は、出力手段としての機能を有する。
 入力部100は、暗号化の対象となる平文MおよびヘッダAの入力を受け付ける。入力部100は、例えば、キーボードなどの入力装置により実現されてもよい。入力部100は、例えば、ネットワークを介して接続された外部装置などから、平文M及びヘッダAの入力を受け付けてもよい。なお、ヘッダが存在しない場合もあり、この場合は、ヘッダAは入力されない。入力部100は、平文Mを、Tweak付き暗号化部102及びチェックサム生成部103に出力する。また、入力部100は、ヘッダAを、ヘッダハッシュ部104に出力する。
 ナンス生成部101は、過去の値と重複がないようにナンスNを生成する。つまり、ナンス生成部101は、過去に生成された値とは異なるナンスNを生成する。具体的には、例えば、ナンス生成部101は、最初に任意の固定値を出力する。また、ナンス生成部101は、直前に生成したナンスの値を記憶している。そして、ナンス生成部101は、2回目以降にナンスNを生成する際に、記憶された直前の値に1を加えた値を出力する。このように、ナンス生成部101は、1つ前に既に出力した値に1を加えた値を出力することで、過去に生成した値とは異なるナンスNを生成する。なお、ナンス生成部101は、過去に生成した値とは異なる値を生成可能ならば、上述した例とは異なる方法でナンスを生成してもよい。ナンス生成部101は、生成されたナンスNを、Tweak付き暗号化部102及びナンス暗号化部105に出力する。また、ナンス生成部101は、生成されたナンスNを、出力部108に出力してもよい。
 Tweak付き暗号化部102は、平文Mを所定のnについてnビットブロックごとに分割し、ナンスNを補助変数(Tweak)として用いて、平文Mをブロックごとに並列に暗号化することで、暗号文Cを生成する。具体的には、Tweak付き暗号化部102は、平文Mをnビットブロックごとに(つまり所定長のブロックに)分割することで生成されたm個のブロックの系列M[1],M[2],...,M[m]を得る。そして、Tweak付き暗号化部102は、i番目のM[i](i=1,2,...,m)それぞれに対して、ナンスN及びブロックのインデックスiをTweakと呼ばれる補助変数に含めて、ブロックごとに並列にTweakableブロック暗号で暗号化する。これにより、Tweak付き暗号化部102は、平文Mを分割したm個のブロックと同じ長さの暗号文C=(C[1],C[2],...,C[m])を得る。なお、平文Mの分割は、Tweak付き暗号化部102によって行われる必要はない。入力部100に平文Mが入力されたときに予めm個のブロックの系列M[1],M[2],...,M[m]に分割されていてもよい。あるいは、入力部100が平文Mを分割してもよい。
 なお、Tweakには、処理の種類(暗号化対象が平文かナンスか、などの違い)を表すインデックスjを含めてもよい。ここで、インデックスjを1とし、Tweakableブロック暗号の暗号化関数をTE(Tweak,message block)とすると、
(式1)
 C[i]=TE((N,i,j),M[i]) for i=1,...,m-1
 C[m]=TE((N,m,j+1),M[m])
と表すことができる。
 Tweak付き暗号化部102は、得られたC[1],...,C[m]を連結して、暗号文Cを得る。そして、Tweak付き暗号化部102は、得られた暗号文Cを、出力部108に出力する。
 なお、式1に示すように、安全性の観点から、最後のブロック(i=mのブロック)のみ、処理の種類を表すインデックスjを、他のブロックにおけるインデックスjから変更する必要がある。したがって、C[m]では、このインデックスをj+1としている。また、平文Mの長さがnの倍数でない場合は、Tweak付き暗号化部102は、適当な一意の復号可能なパディングを施してから、M[1],M[2],...,M[m]を得る。
 Tweak付き暗号化部102は、Tweakableブロック暗号(TBC)として、例えば、非特許文献5に記載されているSKINNY等の既存のアルゴリズムを用いてもよい。あるいは、Tweak付き暗号化部102は、Tweakableブロック暗号(TBC)を、AES(Advanced Encryption Standard)などのブロック暗号を用いたブロック暗号利用モード(以下モード)で実現してもよい。この場合、Tweak付き暗号化部102は、Tweakableブロック暗号のモードとして、非特許文献2に記載されたXEX*モードや、その変種である非特許文献4に記載されているモードを用いることが可能である。つまり、本実施の形態において、Tweakableブロック暗号は、ブロック暗号を用いたXEX*モードであってもよい。
 ここで、ブロック暗号の暗号化関数をEとする。また、Tweakを(N,i,j)とし、平文をMとし、暗号文をCとする。この場合、XEX*モードの暗号化は、以下の式2で表される。この式は、図10の上図で表される。
(式2)
 C=g(N,i,j)+E(M+g(N,i,j)),
 g(N,i,j)=E(N)・2^i・3^j
 ここで、「・2」は、有限体GF(2^n)上の生成元(多項式表現におけるx)との乗算を意味し、「・3」は、生成元と単位元の和(多項式で表現するとx+1)との乗算を意味する。また、「E(N)・2^i・3^j」は、E(N)をGF(2^n)の元とみて、それをi回生成元と乗算し、j回生成元と単位元の和との乗算をとることを意味する。なお、これらのGF(2^n)上の定数乗算は、極めて簡単な処理で実現される。また、上記の方式は、n=128のときに安全性が保証されている。そのほかのnの場合のブロック暗号の暗号化関数の実現方法は、例えば非特許文献3に記載されている。
 なお、Tweakableブロック暗号を用いて行う処理が上述した暗号化処理でなく、メッセージのハッシュ処理を行う場合などであれば、上記式2における暗号化関数Eの外側のg(N,i,j)を省略して、
(式3)
 C=E(M+g(N,i,j))
としてもよい。例えば、後述するヘッダハッシュ部104で行われる処理がこれに相当する。
 チェックサム生成部103は、平文Mを簡単な計算により圧縮することによって、チェックサムSを生成する。具体的には、チェックサム生成部103は、平文Mをnビットブロックの系列M[1],M[2],...,M[m]に分割する。そして、チェックサム生成部103は、分割されたnビットブロックの系列M[1],M[2],...,M[m]に対して簡便な圧縮処理を施すことによって、チェックサムSを生成する。チェックサム生成部103は、生成されたチェックサムSを、加算部106に出力する。
 チェックサム生成部103は、例えば、排他的論理和+を用いる場合は、
(式4)
 S=M[1]+M[2]+...+M[m]
を計算することによって、チェックサムSを生成する。なお、チェックサム生成部103は、排他的論理和に限らず、例えば算術加算など任意の群ないし環演算を用いて、チェックサムSを生成してもよい。
 ヘッダハッシュ部104は、ヘッダAとユニバーサルハッシュ関数とを用いることによって、ヘッダAのハッシュ値Hを取得する。具体的には、ヘッダハッシュ部104は、ヘッダAをnビットブロックの系列A[1],A[2],...,A[a]に分割する。そして、ヘッダハッシュ部104は、分割されたnビットブロックの系列A[1],A[2],...,A[a]にユニバーサルハッシュ関数を適用することによって、ヘッダのハッシュ値Hを取得する。ヘッダハッシュ部104は、取得されたヘッダのハッシュ値Hを、加算部106に出力する。
 ここで、ヘッダハッシュ部104は、ユニバーサルハッシュ関数として、非特許文献6に記載されたような、乗算を用いた多項式ハッシュ関数(polynomial hash function)を用いてもよい。あるいは、ヘッダハッシュ部104は、ブロック暗号又はTweakableブロック暗号を用いた方式によって、ヘッダのハッシュ値Hを生成してもよい。ヘッダハッシュ部104は、例えば、非特許文献2に記載された方式を用いて、ユニバーサルハッシュ関数として、Tweak付き暗号化部102で用いられたTE関数を用いると、以下の式5によってハッシュ値Hを取得してもよい。
(式5)
 H=TE((const,1,j’),A[1])+TE((const,2,j’),A[2])+...+TE((const,a,j’),A[a])
 ここで、constは、任意のnビット定数である。また、j’は、Tweak付き暗号化部102で用いられたインデックスjと異なる任意の整数(例えばj’=3)である。また、上述したように、Tweakableブロック暗号は、ブロック暗号を用いたXEX*モードであってもよい。
 上記の式5から、ヘッダハッシュ部104は、i番目のヘッダブロックA[i]に対して、ヘッダのブロックのインデックスiを含めたTweakを用いて、ブロックごとに並列にTweakableブロック暗号で暗号化を行う。そして、ヘッダハッシュ部104は、暗号化を行った全てのi=1,...,aについてのブロックの加算を行うことで、ヘッダのハッシュ値Hを取得する。
 なお、Aがnの倍数の長さでない場合は、ヘッダハッシュ部104は、適切なパディングを施したのち、ヘッダAをA[1],A[2],...,A[a]に分割する。なお、ヘッダAが存在しない場合は、ヘッダハッシュ部104は、ハッシュ値Hを任意の定数(例えばオールゼロ;全てのビット値が0の定数)としてもよい。
 ナンス暗号化部105は、ナンスNを暗号化し、チェックサムと同じ長さの暗号化ナンスVを取得する。具体的には、ナンス暗号化部105は、ナンスNを補助変数(Tweak)として用いて任意のnビット定数を暗号化することで、暗号化ナンスVを生成する。つまり、ナンス暗号化部105は、ナンスNを含めたTweakを用いて、1ブロックの平文を任意の定数としたTweakableブロック暗号で暗号化を行うことによって、暗号化ナンスVを生成する。ナンス暗号化部105は、生成された暗号化ナンスVを、加算部106に出力する。また、上述したように、Tweakableブロック暗号は、ブロック暗号を用いたXEX*モードであってもよい。
 例えば、ナンス暗号化部105は、Tweak付き暗号化部102の処理で用いられたTE関数を用いて、以下のようにして暗号化ナンスVを生成できる。すなわち、ナンス暗号化部105は、処理の種類のインデックスとしてそれまでに使われていない値j’’(例えばj’’=4)を用いて、以下の式6を用いて、暗号化ナンスVを生成できる。
(式6)
 V=TE((N,0,j’’),00..0)
 ここで、「00..0」は、nビットのオールゼロを示す。
 加算部106は、チェックサムSと暗号化ナンスVとヘッダのハッシュ値Hとの和をとることで、非短縮認証タグUを生成する。具体的には、加算部106は、ヘッダのハッシュ値HとチェックサムSと暗号化ナンスVとを加算する。加算部106は、この和を、nビットの非短縮認証タグUとして取得する。なお、加算方法は、排他的論理和であってもよいし、あるいは、任意の群の加法演算であってもよい。加算部106は、得られた非短縮認証タグUを、短縮部107に出力する。
 短縮部107は、所定のt(tは1以上n以下の整数)について、加算部106によって生成された非短縮認証タグUを任意の方法によってtビットに短縮して、認証タグTを生成する。具体的には、短縮部107は、任意の方法によって非短縮認証タグUを短縮して所定のtビットとすることによって、認証タグTを生成する。例えば、短縮部107は、非短縮認証タグUの最上位のtビットを、認証タグTとしてもよい。
 出力部108は、暗号文Cと認証タグTとを出力するための制御を行う。このとき、出力部108は、暗号文Cと認証タグTとを連結して出力するようにしてもよい。出力部108は、例えば、ディスプレイなどの出力装置に暗号文Cと認証タグTとを表示させるための制御を行ってもよい。また、出力部108は、例えば、ネットワークを介して接続された外部装置などに対して、暗号文C及び認証タグTを出力するように制御を行ってもよい。また、出力部108は、ナンスN及びヘッダAを出力するように制御を行ってもよい。
 次に、図3に示した認証復号装置20について説明する。認証復号装置20は、入力部200と、Tweak付き復号部201と、チェックサム生成部202と、ナンス暗号化部203と、ヘッダハッシュ部204と、加算部205と、短縮部206と、タグ検証部207とを有する。認証復号装置20、例えばコンピュータによって実現可能である。つまり、認証復号装置20は、CPUなどの演算装置と、メモリ又はディスクなどの記憶装置とを有している。認証復号装置20は、例えば、記憶装置に格納されたプログラムを演算装置が実行することで、上記の各構成要素を実現する。
 入力部200は、入力手段としての機能を有する。Tweak付き復号部201は、Tweak付き復号手段(平文復号手段又は平文生成手段)としての機能を有する。チェックサム生成部202は、チェックサム生成手段としての機能を有する。ナンス暗号化部203は、ナンス暗号化手段としての機能を有する。ヘッダハッシュ部204は、ヘッダハッシュ手段(ハッシュ手段)としての機能を有する。加算部205は、加算手段(加法手段)としての機能を有する。短縮部206は、短縮手段(検証用タグ生成手段)としての機能を有する。タグ検証部207は、タグ検証手段(検証手段及び出力手段)としての機能を有する。
 入力部200は、復号の対象となる暗号文C、ナンスN、ヘッダA及び認証タグTの入力を受け付ける。入力部200は、例えば、キーボードなどの文字入力装置により実現されてもよい。入力部200は、例えば、キーボードなどの入力装置により実現される。入力部200は、例えば、ネットワークを介して接続された外部装置などから、暗号文C、ナンスN、ヘッダA及び認証タグTを受け付けてもよい。なお、ヘッダが存在しない場合もあり、この場合は、ヘッダAは入力されない。入力部200は、暗号文Cを、Tweak付き復号部201に出力する。また、入力部200は、ヘッダAを、ヘッダハッシュ部204に出力する。また、入力部200は、ナンスNを、Tweak付き復号部201及びナンス暗号化部203に出力する。また、入力部200は、認証タグTを、タグ検証部207に出力する。
 Tweak付き復号部201は、上述したTweak付き暗号化部102に対応した復号処理を行う。Tweak付き復号部201は、暗号文Cを所定のnについてnビットブロックごとに分割し、ナンスNを補助変数(Tweak)として用い、ブロックごとに並列に復号することで、平文Mを生成する。具体的には、Tweak付き復号部201は、暗号文Cをnビットブロックごとに分割することで生成されたm個のブロックの系列C[1],C[2],...,C[m]を得る。そして、Tweak付き復号部201は、i番目のC[i](i=1,2,...,m)それぞれに対して、ナンスN及びブロックのインデックスiをTweakと呼ばれる補助変数に含めて、ブロックごとに並列にTweakableブロック暗号で復号する。これにより、Tweak付き復号部201は、暗号文Cを分割したm個のブロックと同じ長さの平文M=(M[1],M[2],...,M[m])を得る。なお、暗号文Cの分割は、Tweak付き復号部201によって行われる必要はない。入力部200に暗号文Cが入力されたときに予めm個のブロックの系列C[1],C[2],...,C[m]に分割されていてもよい。あるいは、入力部200が暗号文Cを分割してもよい。
 なお、上述したように、Tweakには、処理の種類(暗号化対象が平文かナンスか、などの違い)を表すインデックスjを含めてもよい。上述のインデックスjを1とし、Tweakableブロック暗号の復号関数をTD(Tweak,message block)とすると、
(式7)
 M[i]=TD((N,i,j),C[i]) for i=1,...,m-1
 M[m]=TD((N,m,j+1),C[m])
と表すことができる。
 Tweak付き復号部201は、得られたM[1],...,M[m]を連結して、平文Mを出力する。そして、Tweak付き復号部201は、得られた平文Mを、タグ検証部207及びチェックサム生成部202に出力する。なお、式7に示すように、安全性の観点から、最後のブロック(i=mのブロック)のみ、処理の種類を表すインデックスjを、他のブロックにおけるインデックスjから変更する必要がある。したがって、M[m]では、このインデックスをj+1としている。
 なお、Tweak付き暗号化部102と同様に、Tweak付き復号部201は、Tweakableブロック暗号(TBC)として非特許文献5に記載されているSKINNY等の既存のTweakableブロック暗号のアルゴリズムを用いてもよい。あるいは、Tweak付き復号部201は、Tweakableブロック暗号(TBC)を、AESなどのブロック暗号を用いたモードで実現してもよい。この場合、Tweak付き復号部201は、Tweakableブロック暗号のモードとして、非特許文献2に記載されたXEX*モードや、その変種である非特許文献4に記載されているモードを用いることが可能である。つまり、本実施の形態において、Tweakableブロック暗号は、ブロック暗号を用いたXEX*モードであってもよい。
 なお、Tweakableブロック暗号のモードとして非特許文献2のXEX*モードを用いた場合を考える。ブロック暗号の暗号化関数をEとし、復号関数をDとする。また、Tweakを(N,i,j)とし、平文をMとし、暗号文をCとする。この場合、XEX*モードの復号は、以下の式8で表される。この式は、図10の下図で表される。
(式8)
 M=g(N,i,j)+D(C+g(N,i,j)),
 g(N,i,j)=E(N)・2^i・3^j
 なお、関数gの定義等については、上述した式2(Tweak付き暗号化部102)におけるものと実質的に同様である。また、上記の方式は、n=128のときに安全性が保証されている。
 チェックサム生成部202は、上述したチェックサム生成部103と実質的に同様の処理を行う。つまり、チェックサム生成部202は、平文Mを簡単な計算により圧縮することによって、チェックサムSを生成する。チェックサム生成部202は、生成されたチェックサムSを、加算部205に出力する。
 ナンス暗号化部203は、上述したナンス暗号化部105と実質的に同様の処理を行う。つまり、ナンス暗号化部203は、ナンスNを暗号化し、チェックサムと同じ長さの暗号化ナンスVを取得する。具体的には、ナンス暗号化部203は、ナンスNを補助変数(Tweak)として用いて任意のnビット定数を暗号化することで、暗号化ナンスVを生成する。つまり、ナンス暗号化部203は、ナンスNを含めたTweakを用いて、1ブロックの平文を任意の定数としたTweakableブロック暗号で暗号化を行うことによって、暗号化ナンスVを生成する。ナンス暗号化部203は、取得された暗号化ナンスVを、加算部205に出力する。また、上述したように、Tweakableブロック暗号は、ブロック暗号を用いたXEX*モードであってもよい。
 ヘッダハッシュ部204は、上述したヘッダハッシュ部104と実質的に同様の処理を行う。つまり、ヘッダハッシュ部204は、ヘッダAとユニバーサルハッシュ関数とを用いることによって、ヘッダAのハッシュ値Hを取得する。ヘッダハッシュ部204は、取得されたハッシュ値Hを、加算部205に出力する。なお、ヘッダAが存在しない場合は、ヘッダハッシュ部204は、ハッシュ値Hを任意の定数(例えばオールゼロ;全てのビット値が0の定数)としてもよい。
 具体的には、ヘッダハッシュ部204は、ヘッダAをnビットブロックの系列A[1],A[2],...,A[a]に分割する。そして、ヘッダハッシュ部204は、分割されたnビットブロックの系列A[1],A[2],...,A[a]にユニバーサルハッシュ関数を適用することによって、ヘッダのハッシュ値Hを取得する。そして、上記の式5から、ヘッダハッシュ部204は、i番目のヘッダブロックA[i]に対して、ヘッダのブロックのインデックスiを含めたTweakを用いて、ブロックごとに並列にTweakableブロック暗号で暗号化を行う。そして、ヘッダハッシュ部204は、暗号化を行った全てのi=1,...,aについてのブロックの加算を行うことで、ヘッダのハッシュ値Hを取得する。また、上述したように、Tweakableブロック暗号は、ブロック暗号を用いたXEX*モードであってもよい。
 加算部205は、上述した加算部106と実質的に同様の処理を行う。つまり、加算部205は、チェックサムSと暗号化ナンスVとヘッダのハッシュ値Hとの和をとることで、非短縮認証タグUを生成する。加算部205は、生成された非短縮認証タグUを、短縮部206に出力する。
 短縮部206は、所定のt(tは1以上n以下の整数)について、加算部205によって生成された非短縮認証タグUを任意の方法によってtビットに短縮して、推定された認証タグである検証用タグT’を生成する。なお、短縮部206の具体的な処理は、短縮部107の処理と実質的に同様である。短縮部206は、生成された検証用タグT’を、タグ検証部207に出力する。
 タグ検証部207は、入力部200によって出力された認証タグTと、短縮部206によって出力された検証用タグT’とを比較して、改ざんの有無を検証する。そして、タグ検証部207は、検証結果に基づいて、情報を出力するための制御を行う。なお、タグ検証部207は、例えば、ディスプレイなどの出力装置に情報を表示させるための制御を行ってもよい。また、タグ検証部207は、例えば、ネットワークを介して接続された外部装置などに対して、情報を出力するように制御を行ってもよい。
 具体的には、認証タグTと検証用タグT’とが一致する場合に、タグ検証部207は、Tweak付き復号部201によって生成された平文Mを出力するための制御を行う。なお、平文の長さがnの倍数でないケースでは、タグ検証部207は、所定のパディングを取り除いて、平文Mを出力するように制御を行ってもよい。一方、認証タグTと検証用タグT’とが一致しない場合に、タグ検証部207は、認証タグTと検証用タグT’とが一致しないことを示すエラーシンボルを出力するように制御を行う。
 次に、図4及び図5を用いて、実施の形態1にかかる認証暗号システム1にかかる動作について説明する。図4は、実施の形態1にかかる認証暗号化装置10で実行される認証暗号化方法を示すフローチャートである。
 入力部100は、平文M及びヘッダAを入力する(ステップS100)。具体的には、入力部100は、上述したように、暗号化の対象となる平文M=(M[1],M[2],...,M[m])と、ヘッダAとを入力する。ナンス生成部101は、上述したように、ナンスNを生成する(ステップS102)。
 次に、Tweak付き暗号化部102は、上述したように、ナンスNを補助変数Tweakとして用いて、ブロックごとに平文Mを暗号化して、暗号文Cを取得する(ステップS104)。次に、チェックサム生成部103は、上述したように、平文MのチェックサムSを生成する(ステップS106)。次に、ヘッダハッシュ部104は、上述したように、ヘッダAのハッシュ値Hを取得する(ステップS108)。次に、ナンス暗号化部105は、上述したように、ナンスNを暗号化して、暗号化ナンスVを取得する(ステップS110)。
 次に、認証暗号化装置10は、認証タグTを取得する(ステップS112)。具体的には、加算部106は、上述したように、チェックサムSと暗号化ナンスVとヘッダのハッシュ値Hとの和をとる。短縮部107は、和(非短縮認証タグU)を所定のtビットに短縮することで、認証タグTを取得する。そして、出力部108は、上述したように、暗号文Cと認証タグTとを出力するための制御を行う(ステップS114)。
 図5は、実施の形態1にかかる認証復号装置20で実行される認証復号方法を示すフローチャートである。入力部200は、上述したように、復号の対象となる暗号文C、ナンスN、ヘッダA及び認証タグTを入力する(ステップS202)。次に、ナンス暗号化部203は、上述したように、ナンスNを暗号化し、暗号化ナンスVを取得する(ステップS204)。次に、Tweak付き復号部201は、上述したように、ナンスNを補助変数Tweakとして用いて、ブロックごとに暗号文Cを復号して、平文Mを取得する(ステップS206)。次に、ヘッダハッシュ部204は、上述したように、ヘッダAのハッシュ値Hを取得する(ステップS208)。次に、チェックサム生成部202は、上述したように、平文MのチェックサムSを生成する(ステップS210)。
 次に、認証復号装置20は、推定された認証タグT’(検証用タグ)を取得する(ステップS212)。具体的には、加算部205は、上述したように、暗号化ナンスVとヘッダのハッシュ値HとチェックサムSとの和をとる。短縮部206は、和(非短縮認証タグU)を所定のtビットに短縮することで、推定された認証タグT’(検証用タグT’)を取得する。
 タグ検証部207は、認証タグTと検証用タグT’とが一致するか否かを判定する(ステップS214)。これにより、改ざんの有無が検証される。認証タグTと検証用タグT’とが一致する場合(S214のYES)、タグ検証部207は、認証が成功したことを示す検証結果として、平文Mを出力するための制御を行う(ステップS216)。一方、認証タグTと検証用タグT’とが一致しない場合(S214のNO)、タグ検証部207は、認証が失敗したことを示す検証結果として、エラーシンボルを出力するための制御を行う(ステップS218)。
 次に、実施の形態1にかかる認証暗号システム1の効果を説明する。
 上述したように、OCB及びThetaCB3においては、暗号化における遅延は小さいものの、復号における遅延は、暗号化における遅延より大きくなる。具体的には、OCBでは、復号遅延は3であり、ThetaCB3では、復号遅延は2である。このように、復号遅延が暗号化における遅延よりも大きくなる要因は、改ざん検知用の認証タグの計算方法にある。以下、ThetaCB3について説明する。
 図6は、非特許文献4に記載された認証暗号方式ThetaCB3方式を用いた暗号化ルーチンを簡略化して示した図である。図6において、「TE(N,i,j)」は、Tweakableブロック暗号の暗号化関数の第一引数にTweak(N,i,j)を適用した関数TE((N,i,j),*)を表す。また、「trunc」は入力の短縮を行う関数である。
 また、図7は、非特許文献4に記載された認証暗号方式ThetaCB3方式を用いた復号ルーチンを簡略化して示した図である。図7において、「TD(N,i,j)」は、Tweakableブロック暗号の復号関数の第一引数にTweak(N,i,j)を適用した関数TD((N,i,j),*)を表す。
 図6に示すように、認証タグTは、チェックサムSと呼ばれる平文ブロックの和(排他的論理和)を、Tweakableブロック暗号のTE関数(TE(N.m.2))で暗号化することにより得られている。また、暗号化は、全てのTE関数について、暗号化に必要な値の入力(ナンスN、ヘッダA及び平文M)が決定した段階で、並列に実行され得る。したがって、暗号化における遅延は1である。
 一方、図7に示す復号処理では、平文ブロックを得るために、対応する暗号文ブロックをTweakableブロック暗号の復号関数TDで復号する。そして、復号により平文ブロックが得られた後でチェックサムSを生成し、チェックサムSをTE関数(TE(N.m.2))で暗号化して得られた認証タグT’の値と、送信された認証タグTの値との一致を確認することで、改ざんの有無の検証が行われる。したがって、Tweakableブロック暗号の復号関数TDと暗号化関数TE(破線で囲まれたもの)とを直列に呼び出すこととなるため、復号における遅延は2となる。つまり、図7において、破線で囲まれたTE関数は、平文ブロックM[1],...,M[m]が決定されないと実行できない。したがって、この破線で囲まれたTE関数で、遅延が1増加していることになる。
 また、OCBの場合は、上記の処理に加えて、TE関数及びTD関数をブロック暗号で実現するために、ブロック暗号によりナンス(暗号化で用いる公開値、カウンタなどで実現)を暗号化することが必要となる。具体的には、非特許文献2及び非特許文献3に記載されたOCB2又はOCB2fの場合で、暗号化及び復号において、遅延が1増加する。したがって、OCBの場合、暗号化の遅延が2、復号の遅延が3となる。すなわち、OCB及びThetaCB3ともに、復号の遅延は、暗号化の遅延と比べて1増加している。
 また、認証タグによる通信帯域の増加を抑えるために、認証タグの長さは1ブロックよりも短くすることが多い。そして、後述するように、実施の形態1にかかる方法は、上述した技術と比較して、認証タグの長さによらないで、復号遅延を抑制する効果がある。つまり、実施の形態1にかかる方法は、タグの長さによらず、暗号化の遅延及び復号の遅延が、いずれも、Tweakableブロック暗号の1回となる、という効果を奏する。
 図8は、実施の形態1にかかる認証暗号化方法をTweakableブロック暗号で実施する場合の暗号化処理を例示する図である。また、図9は、実施の形態1にかかる認証暗号化方法をTweakableブロック暗号で実施する場合の復号処理を例示する図である。図8及び図9に示すように、TE関数及びTD関数の依存関係が、暗号化(図8)でも復号(図9)でも存在せず、TE関数及びTD関数は、完全に並列となっている。すなわち、暗号化では、図8に示した全てのTE関数を、並列に実行することができる。また、復号では、図9に示した全てのTE関数及びTD関数を、並列に実行することができる。したがって、暗号化の遅延及び復号の遅延が、ともに1となっている。
 上述したように、特に効率のよいTweakableブロック暗号ベースの認証暗号方式であるThetaCB3(図6及び図7)では、暗号化の遅延が1であるのに対して、復号遅延は2となっている。なお、ThetaCB3においても、タグの長さtをnビット(つまり短縮を行わない)とすれば、復号手順の変更により復号遅延を1とすることができる。しかしながら、認証タグによる通信帯域の増加を抑えるために、タグの短縮を行うことが一般的である。したがって、タグの長さによらず遅延を抑制できることが望ましい。
 また、タグの長さtがnビット未満の場合には、チェックサムの生成及びヘッダのハッシュ値の生成にかかわるTE関数及びTD関数の出力を予めtビットに短縮しておくことも考えられる。これにより、全体のアルゴリズムを変えることなく、暗号化又は復号に必要なメモリ量を削減することが可能である。一方、ThetaCB3では、チェックサムをTweakableブロック暗号に入力する前に短縮することができないため、このようなメモリ量削減はできない。
 また、Tweakableブロック暗号を何らかのブロック暗号利用モード(例えば非特許文献2のOCBで用いられるXEX*モード)で実現した場合には、ブロック暗号利用モードの部分で計算のオーバーヘッドが生じる。これにより、暗号化と復号の両方の遅延が増加する。具体的にXEX*を用いる場合は、ナンスの暗号化による1回が常にオーバーヘッドとして発生する。しかし、これは既存のOCBでも同様であり、Tweakableブロック暗号を実現する方法が同じであれば、オーバーヘッドは同じであり、結果として、非特許文献に記載された技術に対する、本実施の形態における復号遅延の少なさというメリットは保存されることになる。
 具体的には、非特許文献2及び非特許文献3のOCB2又はOCB2fでは、XEX*モードを用いており、暗号化遅延が2となり、復号遅延が3となる。これに対し、本実施の形態では、同じXEX*モードを用いたときは、暗号化遅延及び復号遅延はともに2となる。また、非特許文献4のOCB3では、XEX*モードの変種(variant)を用いて、ナンスがカウンタの場合に限定されるが、上記の計算オーバーヘッドをほぼなくすことが可能である。この変種を用いた場合には、OCB3及び本実施の形態のいずれも、XEX*モードを使ったときと比べ、暗号化遅延と復号遅延の両方が、約1減ることになる。よって、OCB3では、暗号化遅延がほぼ1であり、復号遅延がほぼ2となる。これに対し、本実施の形態では、暗号化遅延及び復号遅延の両方が、ほぼ1となる。
 また、本実施の形態では、ThetaCB3に対応する方式を採用した場合でも、暗号化及び復号のレートが1であること、並列実行可能、証明可能安全性(provable security)を持つ、などのThetaCB3の利点を保持している。したがって、本実施の形態においては、高速かつ低遅延な認証暗号を実現することができる。
(実施の形態2)
 次に、実施の形態2について説明する。実施の形態2は、実施の形態1にかかる構成の概要を示している。
 図11は、実施の形態2にかかる認証暗号化装置30を示す図である。実施の形態2にかかる認証暗号化装置30は、実施の形態1にかかる認証暗号化装置10に対応する。実施の形態2にかかる認証暗号化装置30は、入力部31と、ナンス生成部32と、平文暗号化部33と、チェックサム生成部34と、ハッシュ部35と、ナンス暗号化部36と、認証タグ生成部37と、出力部38とを有する。
 入力部31は、入力手段(第1の入力手段)としての機能を有する。ナンス生成部32は、ナンス生成手段としての機能を有する。平文暗号化部33は、平文暗号化手段(Tweak付き暗号化手段又は暗号文生成手段)としての機能を有する。チェックサム生成部34は、チェックサム生成手段(第1のチェックサム生成手段)としての機能を有する。ハッシュ部35は、ハッシュ手段(第1のハッシュ手段)としての機能を有する。ナンス暗号化部36は、ナンス暗号化手段(第1のナンス暗号化手段)としての機能を有する。認証タグ生成部37は、認証タグ生成手段(加算手段及び短縮手段)としての機能を有する。出力部38は、出力手段としての機能を有する。
 入力部31は、図2に示した入力部100が有している機能と実質的に同様の機能によって実現できる。入力部31は、平文の入力を受け付ける。また、入力部31は、ヘッダの入力を受け付けてもよい。ナンス生成部32は、図2に示したナンス生成部101が有している機能と実質的に同様の機能によって実現できる。ナンス生成部32は、過去に生成された値とは異なるナンスを生成する。平文暗号化部33は、図2に示したTweak付き暗号化部102が有している機能と実質的に同様の機能によって実現できる。平文暗号化部33は、平文を分割したブロックごとに、ナンスを補助変数として用いて暗号化することで、平文に対応する暗号文を生成する。
 チェックサム生成部34は、図2に示したチェックサム生成部103が有している機能と実質的に同様の機能によって実現できる。チェックサム生成部34は、平文を用いてチェックサムを生成する。ハッシュ部35は、図2に示したヘッダハッシュ部104が有している機能と実質的に同様の機能によって実現できる。ハッシュ部35は、ハッシュ値を取得する。なお、ヘッダが入力される場合、ハッシュ部35は、ヘッダとハッシュ関数(ユニバーサルハッシュ関数)とを用いてハッシュ値を取得してもよい。ナンス暗号化部36は、図2に示したナンス暗号化部105が有している機能と実質的に同様の機能によって実現できる。ナンス暗号化部36は、ナンスを暗号化して暗号化ナンスを取得する。
 認証タグ生成部37は、図2に示した加算部106及び短縮部107が有している機能と実質的に同様の機能によって実現できる。認証タグ生成部37は、チェックサムとハッシュ値と暗号化ナンスとを用いて認証タグを生成する。なお、認証タグ生成部37は、チェックサムとハッシュ値と暗号化ナンスとの和に基づいて、認証タグを生成してもよい。また、認証タグ生成部37は、この和を短縮することによって、認証タグを生成してもよい。出力部38は、図2に示した出力部108が有している機能と実質的に同様の機能によって実現できる。出力部38は、暗号文及び認証タグを出力するための制御を行う。
 図12は、実施の形態2にかかる認証復号装置40を示す図である。実施の形態2にかかる認証復号装置40は、実施の形態1にかかる認証復号装置20に対応する。実施の形態2にかかる認証復号装置40は、入力部41と、平文復号部43と、チェックサム生成部44と、ハッシュ部45と、ナンス暗号化部46と、検証用タグ生成部47と、検証部48とを有する。
 入力部41は、入力手段(第2の入力手段)としての機能を有する。平文復号部43は、平文復号手段(Tweak付き復号手段又は平文生成手段)としての機能を有する。チェックサム生成部44は、チェックサム生成手段(第2のチェックサム生成手段)としての機能を有する。ハッシュ部45は、ハッシュ手段(第2のハッシュ手段)としての機能を有する。ナンス暗号化部46は、ナンス暗号化手段(第2のナンス暗号化手段)としての機能を有する。検証用タグ生成部47は、検証用タグ生成手段(加算手段及び短縮手段)としての機能を有する。検証部48は、検証手段(タグ検証手段及び出力手段)としての機能を有する。
 入力部41は、図3に示した入力部200が有している機能と実質的に同様の機能によって実現できる。入力部41は、暗号文、認証タグ及びナンスの入力を受け付ける。なお、入力部41は、ヘッダの入力を受け付けてもよい。平文復号部43は、図3に示したTweak付き復号部201が有している機能と実質的に同様の機能によって実現できる。平文復号部43は、暗号文を分割したブロックごとに、ナンスを補助変数として用いて復号することで、暗号文に対応する平文を生成する。
 チェックサム生成部44は、図3に示したチェックサム生成部202が有している機能と実質的に同様の機能によって実現できる。チェックサム生成部44は、平文を用いてチェックサムを生成する。ハッシュ部45は、図3に示したヘッダハッシュ部204が有している機能と実質的に同様の機能によって実現できる。ハッシュ部45は、ハッシュ値を取得する。なお、ヘッダが入力される場合、ハッシュ部45は、ヘッダとハッシュ関数(ユニバーサルハッシュ関数)とを用いてハッシュ値を取得してもよい。ナンス暗号化部46は、図3に示したナンス暗号化部203が有している機能と実質的に同様の機能によって実現できる。ナンス暗号化部46は、ナンスを暗号化して暗号化ナンスを取得する。
 検証用タグ生成部47は、図3に示した加算部205及び短縮部206が有している機能と実質的に同様の機能によって実現できる。検証用タグ生成部47は、チェックサムとハッシュ値と暗号化ナンスとを用いて、推定された認証タグである検証用タグを生成する。なお、検証用タグ生成部47は、チェックサムとハッシュ値と暗号化ナンスとの和に基づいて、検証用タグを生成してもよい。また、検証用タグ生成部47は、この和を短縮することによって、検証用タグを生成してもよい。
 検証部48は、図3に示したタグ検証部207が有している機能と実質的に同様の機能によって実現できる。検証部48は、認証タグと検証用タグとを比較することによって改ざんの有無を検証し、検証結果を出力するための制御を行う。なお、検証部48は、認証タグと検証用タグとが一致する場合、検証結果として、平文を出力するための制御を行ってもよい。一方、検証部48は、認証タグと検証用タグとが一致しない場合、検証結果として、エラーシンボルを出力するための制御を行ってもよい。
 実施の形態2にかかる認証暗号化装置30及び認証復号装置40は、上述した構成によって、暗号化及び復号における遅延を抑制することが可能である。なお、認証暗号化装置30及び認証復号装置40を有する認証暗号システムによっても、暗号化及び復号における遅延を抑制することが可能である。また、認証暗号化装置30によって実行される認証暗号化方法及び認証暗号化方法を実行するプログラムによっても、暗号化及び復号における遅延を抑制することが可能である。また、認証復号装置40によって実行される認証復号方法及び認証復号方法を実行するプログラムによっても、暗号化及び復号における遅延を抑制することが可能である。
(ハードウェア構成例)
 上述した各実施形態に係る装置およびシステムを、1つの計算処理装置(情報処理装置、コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。但し、各実施形態に係る装置(認証暗号化装置及び認証復号装置)は、物理的または機能的に少なくとも2つの計算処理装置を用いて実現されてもよい。また、各実施形態に係る装置は、専用の装置として実現されてもよいし、汎用の情報処理装置で実現されてもよい。
 図13は、各実施形態に係る装置およびシステムを実現可能な計算処理装置のハードウェア構成例を概略的に示すブロック図である。計算処理装置120は、CPU121、揮発性記憶装置122、ディスク123、不揮発性記録媒体124、及び、通信IF127(IF:Interface)を有する。したがって、各実施形態に係る装置は、CPU121、揮発性記憶装置122、ディスク123、不揮発性記録媒体124、及び、通信IF127を有しているといえる。計算処理装置120は、入力装置125及び出力装置126に接続可能であってもよい。計算処理装置120は、入力装置125及び出力装置126を備えていてもよい。また、計算処理装置120は、通信IF127を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
 不揮発性記録媒体124は、コンピュータが読み取り可能な、たとえば、コンパクトディスク(Compact Disc)、デジタルバーサタイルディスク(Digital Versatile Disc)である。また、不揮発性記録媒体124は、USB(Universal Serial Bus)メモリ、ソリッドステートドライブ(Solid State Drive)等であってもよい。不揮発性記録媒体124は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。なお、不揮発性記録媒体124は、上述した媒体に限定されない。また、不揮発性記録媒体124の代わりに、通信IF127及び通信ネットワークを介して、係るプログラムが供給されてもよい。
 揮発性記憶装置122は、コンピュータが読み取り可能であって、一時的にデータを記憶することができる。揮発性記憶装置122は、DRAM(dynamic random Access memory)、SRAM(static random Access memory)等のメモリ等である。
 すなわち、CPU121は、ディスク123に格納されているソフトウェアプログラム(コンピュータ・プログラム:以下、単に「プログラム」と称する)を、実行する際に揮発性記憶装置122にコピーし、演算処理を実行する。CPU121は、プログラムの実行に必要なデータを揮発性記憶装置122から読み取る。表示が必要な場合、CPU121は、出力装置126に出力結果を表示する。外部からプログラムを入力する場合、CPU121は、入力装置125からプログラムを取得する。CPU121は、上述した図2,図3,図11,図12に示される各構成要素の機能(処理)に対応するプログラムを解釈し実行する。CPU121は、上述した各実施形態において説明した処理を実行する。言い換えると、上述した図2,図3,図11,図12に示される各構成要素の機能は、ディスク123又は揮発性記憶装置122に格納されたプログラムを、CPU121が実行することによって実現され得る。
 すなわち、各実施形態は、上述したプログラムによっても成し得ると捉えることができる。さらに、上述したプログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、上述した各実施形態は成し得ると捉えることができる。
(変形例)
 なお、本発明は上記実施形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述したフローチャートにおいて、各処理(ステップ)の順序は、適宜、変更可能である。また、複数ある処理(ステップ)のうちの1つ以上は、省略されてもよい。
 例えば、図4に示したフローチャートにおいて、S104~S110の処理の順序は、図4に示した順序に限定されない。さらに、S104~S110の処理は、並行して実行され得る。同様に、図5に示したフローチャートにおいて、S204,S206,S208の処理の順序は、図5に示した順序に限定されない。さらに、S204,S206,S208の処理は、並行して実行され得る。
 上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
 以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
 (付記1)
 平文の入力を受け付ける入力手段と、
 過去に生成された値とは異なるナンスを生成するナンス生成手段と、
 前記平文を分割したブロックごとに、前記ナンスを補助変数として用いて暗号化することで、前記平文に対応する暗号文を生成する平文暗号化手段と、
 前記平文を用いてチェックサムを生成するチェックサム生成手段と、
 ハッシュ値を取得するハッシュ手段と、
 前記ナンスを暗号化して暗号化ナンスを取得するナンス暗号化手段と、
 前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて認証タグを生成する認証タグ生成手段と、
 前記暗号文及び前記認証タグを出力するための制御を行う出力手段と、
 を有する認証暗号化装置。
 (付記2)
 前記認証タグ生成手段は、前記チェックサムと前記ハッシュ値と前記暗号化ナンスとの和に基づいて、前記認証タグを生成する、
 付記1に記載の認証暗号化装置。
 (付記3)
 前記認証タグ生成手段は、前記和を短縮することによって、前記認証タグを生成する、
 付記2に記載の認証暗号化装置。
 (付記4)
 前記ナンス暗号化手段は、前記チェックサムと同じ長さの前記暗号化ナンスを取得する、
 付記1から3のいずれか1項に記載の認証暗号化装置。
 (付記5)
 前記入力手段は、ヘッダを受け付け、
 前記ハッシュ手段は、前記ヘッダとハッシュ関数とを用いて、前記ハッシュ値を取得する、
 付記1から4のいずれか1項に記載の認証暗号化装置。
 (付記6)
 前記平文暗号化手段は、前記平文を所定長のブロックに分割した際のブロックのi番目の平文ブロックに対して、前記ナンスと前記平文ブロックのインデックスiとを含めた前記補助変数であるTweakを用いて、前記平文を前記ブロックごとに並列にTweakableブロック暗号で暗号化する、
 付記1から5のいずれか1項に記載の認証暗号化装置。
 (付記7)
 前記入力手段は、ヘッダを受け付け、
 前記ハッシュ手段は、前記ヘッダを所定長のブロックに分割した際のブロックのi番目のヘッダブロックに対して、前記ヘッダブロックのインデックスiを含めた前記補助変数であるTweakを用いて、前記ヘッダを前記ブロックごとに並列にTweakableブロック暗号で暗号化することで、前記ハッシュ値を取得する、
 付記6に記載の認証暗号化装置。
 (付記8)
 前記ハッシュ手段は、前記ヘッダを暗号化したブロックを加算することで、前記ハッシュ値を取得する、
 付記7に記載の認証暗号化装置。
 (付記9)
 前記ナンス暗号化手段は、前記ナンスを含めた前記補助変数であるTweakを用いて、Tweakableブロック暗号で暗号化を行うことによって、前記暗号化ナンスを取得する、
 付記6から8のいずれか1項に記載の認証暗号化装置。
 (付記10)
 前記Tweakableブロック暗号は、ブロック暗号を用いたXEX*モードである、
 付記6から9のいずれか1項に記載の認証暗号化装置。
 (付記11)
 暗号文、認証タグ及びナンスの入力を受け付ける入力手段と、
 前記暗号文を分割したブロックごとに、前記ナンスを補助変数として用いて復号することで、前記暗号文に対応する平文を生成する平文復号手段と、
 前記平文を用いてチェックサムを生成するチェックサム生成手段と、
 ハッシュ値を取得するハッシュ手段と、
 前記ナンスを暗号化して暗号化ナンスを取得するナンス暗号化手段と、
 前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて、推定された認証タグである検証用タグを生成する検証用タグ生成手段と、
 前記認証タグと前記検証用タグとを比較することによって改ざんの有無を検証し、検証結果を出力するための制御を行う検証手段と、
 を有する認証復号装置。
 (付記12)
 前記検証用タグ生成手段は、前記チェックサムと前記ハッシュ値と前記暗号化ナンスとの和に基づいて、前記検証用タグを生成する、
 付記11に記載の認証復号装置。
 (付記13)
 前記検証用タグ生成手段は、前記和を短縮することによって、前記検証用タグを生成する、
 付記12に記載の認証復号装置。
 (付記14)
 前記ナンス暗号化手段は、前記チェックサムと同じ長さの前記暗号化ナンスを取得する、
 付記11から13のいずれか1項に記載の認証復号装置。
 (付記15)
 前記入力手段は、ヘッダを受け付け、
 前記ハッシュ手段は、前記ヘッダとハッシュ関数とを用いて、前記ハッシュ値を取得する、
 付記11から14のいずれか1項に記載の認証復号装置。
 (付記16)
 前記平文復号手段は、前記暗号文を所定長のブロックに分割した際のブロックのi番目の暗号文ブロックに対して、前記ナンスと前記暗号文ブロックのインデックスiとを含めた前記補助変数であるTweakを用いて、前記暗号文を前記ブロックごとに並列にTweakableブロック暗号で復号する、
 付記11から15のいずれか1項に記載の認証復号装置。
 (付記17)
 前記入力手段は、ヘッダを受け付け、
 前記ハッシュ手段は、前記ヘッダを所定長のブロックに分割した際のブロックのi番目のヘッダブロックに対して、前記ヘッダブロックのインデックスiを含めた前記補助変数であるTweakを用いて、前記ヘッダを前記ブロックごとに並列にTweakableブロック暗号で暗号化することで、前記ハッシュ値を取得する、
 付記16に記載の認証復号装置。
 (付記18)
 前記ハッシュ手段は、前記ヘッダを暗号化したブロックを加算することで、前記ハッシュ値を取得する、
 付記17に記載の認証復号装置。
 (付記19)
 前記ナンス暗号化手段は、前記ナンスを含めた前記補助変数であるTweakを用いて、Tweakableブロック暗号で暗号化を行うことによって、前記暗号化ナンスを取得する、
 付記16から18のいずれか1項に記載の認証復号装置。
 (付記20)
 前記Tweakableブロック暗号は、ブロック暗号を用いたXEX*モードである、
 付記16から19のいずれか1項に記載の認証復号装置。
 (付記21)
 認証暗号化装置と、
 前記認証暗号化装置との間で通信を行う認証復号装置と、
 を有し、
 前記認証暗号化装置は、
 平文の入力を受け付ける第1の入力手段と、
 過去に生成された値とは異なるナンスを生成するナンス生成手段と、
 前記平文を分割したブロックごとに、前記ナンスを補助変数として用いて暗号化することで、前記平文に対応する暗号文を生成する平文暗号化手段と、
 前記平文を用いてチェックサムを生成する第1のチェックサム生成手段と、
 ハッシュ値を取得する第1のハッシュ手段と、
 前記ナンスを暗号化して暗号化ナンスを取得する第1のナンス暗号化手段と、
 前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて認証タグを生成する認証タグ生成手段と、
 前記暗号文及び前記認証タグを出力するための制御を行う出力手段と、
 を有し、
 前記認証復号装置は、
 暗号文、認証タグ及びナンスの入力を受け付ける第2の入力手段と、
 前記第2の入力手段によって入力された前記暗号文を分割したブロックごとに、前記第2の入力手段によって入力された前記ナンスを補助変数として用いて復号することで、前記暗号文に対応する平文を生成する平文復号手段と、
 前記平文復号手段によって生成された前記平文を用いてチェックサムを生成する第2のチェックサム生成手段と、
 ハッシュ値を取得する第2のハッシュ手段と、
 前記第2の入力手段によって入力された前記ナンスを暗号化して暗号化ナンスを取得する第2のナンス暗号化手段と、
 前記第2のチェックサム生成手段によって生成された前記チェックサムと、前記第2のハッシュ手段によって取得された前記ハッシュ値と、前記第2のナンス暗号化手段によって取得された前記暗号化ナンスとを用いて、推定された認証タグである検証用タグを生成する検証用タグ生成手段と、
 前記認証タグ生成手段によって生成された前記認証タグと前記検証用タグとを比較することによって改ざんの有無を検証し、検証結果を出力するための制御を行う検証手段と、
 を有する、
 認証暗号システム。
 (付記22)
 平文の入力を受け付け、
 過去に生成された値とは異なるナンスを生成し、
 前記平文を分割したブロックごとに、前記ナンスを補助変数として用いて暗号化することで、前記平文に対応する暗号文を生成し、
 前記平文を用いてチェックサムを生成し、
 ハッシュ値を取得し、
 前記ナンスを暗号化して暗号化ナンスを取得し、
 前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて認証タグを生成し、
 前記暗号文及び前記認証タグを出力するための制御を行う、
 認証暗号化方法。
 (付記23)
 暗号文、認証タグ及びナンスの入力を受け付け、
 前記暗号文を分割したブロックごとに、前記ナンスを補助変数として用いて復号することで、前記暗号文に対応する平文を生成し、
 前記平文を用いてチェックサムを生成し、
 ハッシュ値を取得し、
 前記ナンスを暗号化して暗号化ナンスを取得し、
 前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて、推定された認証タグである検証用タグを生成し、
 前記認証タグと前記検証用タグとを比較することによって改ざんの有無を検証し、検証結果を出力するための制御を行う、
 認証復号方法。
 (付記24)
 平文の入力を受け付けるステップと、
 過去に生成された値とは異なるナンスを生成するステップと、
 前記平文を分割したブロックごとに、前記ナンスを補助変数として用いて暗号化することで、前記平文に対応する暗号文を生成するステップと、
 前記平文を用いてチェックサムを生成するステップと、
 ハッシュ値を取得するステップと、
 前記ナンスを暗号化して暗号化ナンスを取得するステップと、
 前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて認証タグを生成し、
 前記暗号文及び前記認証タグを出力するための制御を行うステップと、
 をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
 (付記25)
 暗号文、認証タグ及びナンスの入力を受け付けるステップと、
 前記暗号文を分割したブロックごとに、前記ナンスを補助変数として用いて復号することで、前記暗号文に対応する平文を生成するステップと、
 前記平文を用いてチェックサムを生成するステップと、
 ハッシュ値を取得するステップと、
 前記ナンスを暗号化して暗号化ナンスを取得するステップと、
 前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて、推定された認証タグである検証用タグを生成するステップと、
 前記認証タグと前記検証用タグとを比較することによって改ざんの有無を検証し、検証結果を出力するための制御を行うステップと、
 をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
1 認証暗号システム
10 認証暗号化装置
100 入力部
101 ナンス生成部
102 Tweak付き暗号化部
103 チェックサム生成部
104 ヘッダハッシュ部
105 ナンス暗号化部
106 加算部
107 短縮部
108 出力部
20 認証復号装置
200 入力部
201 Tweak付き復号部
202 チェックサム生成部
203 ナンス暗号化部
204 ヘッダハッシュ部
205 加算部
206 短縮部
207 タグ検証部
30 認証暗号化装置
31 入力部
32 ナンス生成部
33 平文暗号化部
34 チェックサム生成部
35 ハッシュ部
36 ナンス暗号化部
37 認証タグ生成部
38 出力部
40 認証復号装置
41 入力部
43 平文復号部
44 チェックサム生成部
45 ハッシュ部
46 ナンス暗号化部
47 検証用タグ生成部
48 検証部

Claims (25)

  1.  平文の入力を受け付ける入力手段と、
     過去に生成された値とは異なるナンスを生成するナンス生成手段と、
     前記平文を分割したブロックごとに、前記ナンスを補助変数として用いて暗号化することで、前記平文に対応する暗号文を生成する平文暗号化手段と、
     前記平文を用いてチェックサムを生成するチェックサム生成手段と、
     ハッシュ値を取得するハッシュ手段と、
     前記ナンスを暗号化して暗号化ナンスを取得するナンス暗号化手段と、
     前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて認証タグを生成する認証タグ生成手段と、
     前記暗号文及び前記認証タグを出力するための制御を行う出力手段と、
     を有する認証暗号化装置。
  2.  前記認証タグ生成手段は、前記チェックサムと前記ハッシュ値と前記暗号化ナンスとの和に基づいて、前記認証タグを生成する、
     請求項1に記載の認証暗号化装置。
  3.  前記認証タグ生成手段は、前記和を短縮することによって、前記認証タグを生成する、
     請求項2に記載の認証暗号化装置。
  4.  前記ナンス暗号化手段は、前記チェックサムと同じ長さの前記暗号化ナンスを取得する、
     請求項1から3のいずれか1項に記載の認証暗号化装置。
  5.  前記入力手段は、ヘッダを受け付け、
     前記ハッシュ手段は、前記ヘッダとハッシュ関数とを用いて、前記ハッシュ値を取得する、
     請求項1から4のいずれか1項に記載の認証暗号化装置。
  6.  前記平文暗号化手段は、前記平文を所定長のブロックに分割した際のブロックのi番目の平文ブロックに対して、前記ナンスと前記平文ブロックのインデックスiとを含めた前記補助変数であるTweakを用いて、前記平文を前記ブロックごとに並列にTweakableブロック暗号で暗号化する、
     請求項1から5のいずれか1項に記載の認証暗号化装置。
  7.  前記入力手段は、ヘッダを受け付け、
     前記ハッシュ手段は、前記ヘッダを所定長のブロックに分割した際のブロックのi番目のヘッダブロックに対して、前記ヘッダブロックのインデックスiを含めた前記補助変数であるTweakを用いて、前記ヘッダを前記ブロックごとに並列にTweakableブロック暗号で暗号化することで、前記ハッシュ値を取得する、
     請求項6に記載の認証暗号化装置。
  8.  前記ハッシュ手段は、前記ヘッダを暗号化したブロックを加算することで、前記ハッシュ値を取得する、
     請求項7に記載の認証暗号化装置。
  9.  前記ナンス暗号化手段は、前記ナンスを含めた前記補助変数であるTweakを用いて、Tweakableブロック暗号で暗号化を行うことによって、前記暗号化ナンスを取得する、
     請求項6から8のいずれか1項に記載の認証暗号化装置。
  10.  前記Tweakableブロック暗号は、ブロック暗号を用いたXEX*モードである、
     請求項6から9のいずれか1項に記載の認証暗号化装置。
  11.  暗号文、認証タグ及びナンスの入力を受け付ける入力手段と、
     前記暗号文を分割したブロックごとに、前記ナンスを補助変数として用いて復号することで、前記暗号文に対応する平文を生成する平文復号手段と、
     前記平文を用いてチェックサムを生成するチェックサム生成手段と、
     ハッシュ値を取得するハッシュ手段と、
     前記ナンスを暗号化して暗号化ナンスを取得するナンス暗号化手段と、
     前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて、推定された認証タグである検証用タグを生成する検証用タグ生成手段と、
     前記認証タグと前記検証用タグとを比較することによって改ざんの有無を検証し、検証結果を出力するための制御を行う検証手段と、
     を有する認証復号装置。
  12.  前記検証用タグ生成手段は、前記チェックサムと前記ハッシュ値と前記暗号化ナンスとの和に基づいて、前記検証用タグを生成する、
     請求項11に記載の認証復号装置。
  13.  前記検証用タグ生成手段は、前記和を短縮することによって、前記検証用タグを生成する、
     請求項12に記載の認証復号装置。
  14.  前記ナンス暗号化手段は、前記チェックサムと同じ長さの前記暗号化ナンスを取得する、
     請求項11から13のいずれか1項に記載の認証復号装置。
  15.  前記入力手段は、ヘッダを受け付け、
     前記ハッシュ手段は、前記ヘッダとハッシュ関数とを用いて、前記ハッシュ値を取得する、
     請求項11から14のいずれか1項に記載の認証復号装置。
  16.  前記平文復号手段は、前記暗号文を所定長のブロックに分割した際のブロックのi番目の暗号文ブロックに対して、前記ナンスと前記暗号文ブロックのインデックスiとを含めた前記補助変数であるTweakを用いて、前記暗号文を前記ブロックごとに並列にTweakableブロック暗号で復号する、
     請求項11から15のいずれか1項に記載の認証復号装置。
  17.  前記入力手段は、ヘッダを受け付け、
     前記ハッシュ手段は、前記ヘッダを所定長のブロックに分割した際のブロックのi番目のヘッダブロックに対して、前記ヘッダブロックのインデックスiを含めた前記補助変数であるTweakを用いて、前記ヘッダを前記ブロックごとに並列にTweakableブロック暗号で暗号化することで、前記ハッシュ値を取得する、
     請求項16に記載の認証復号装置。
  18.  前記ハッシュ手段は、前記ヘッダを暗号化したブロックを加算することで、前記ハッシュ値を取得する、
     請求項17に記載の認証復号装置。
  19.  前記ナンス暗号化手段は、前記ナンスを含めた前記補助変数であるTweakを用いて、Tweakableブロック暗号で暗号化を行うことによって、前記暗号化ナンスを取得する、
     請求項16から18のいずれか1項に記載の認証復号装置。
  20.  前記Tweakableブロック暗号は、ブロック暗号を用いたXEX*モードである、
     請求項16から19のいずれか1項に記載の認証復号装置。
  21.  認証暗号化装置と、
     前記認証暗号化装置との間で通信を行う認証復号装置と、
     を有し、
     前記認証暗号化装置は、
     平文の入力を受け付ける第1の入力手段と、
     過去に生成された値とは異なるナンスを生成するナンス生成手段と、
     前記平文を分割したブロックごとに、前記ナンスを補助変数として用いて暗号化することで、前記平文に対応する暗号文を生成する平文暗号化手段と、
     前記平文を用いてチェックサムを生成する第1のチェックサム生成手段と、
     ハッシュ値を取得する第1のハッシュ手段と、
     前記ナンスを暗号化して暗号化ナンスを取得する第1のナンス暗号化手段と、
     前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて認証タグを生成する認証タグ生成手段と、
     前記暗号文及び前記認証タグを出力するための制御を行う出力手段と、
     を有し、
     前記認証復号装置は、
     暗号文、認証タグ及びナンスの入力を受け付ける第2の入力手段と、
     前記第2の入力手段によって入力された前記暗号文を分割したブロックごとに、前記第2の入力手段によって入力された前記ナンスを補助変数として用いて復号することで、前記暗号文に対応する平文を生成する平文復号手段と、
     前記平文復号手段によって生成された前記平文を用いてチェックサムを生成する第2のチェックサム生成手段と、
     ハッシュ値を取得する第2のハッシュ手段と、
     前記第2の入力手段によって入力された前記ナンスを暗号化して暗号化ナンスを取得する第2のナンス暗号化手段と、
     前記第2のチェックサム生成手段によって生成された前記チェックサムと、前記第2のハッシュ手段によって取得された前記ハッシュ値と、前記第2のナンス暗号化手段によって取得された前記暗号化ナンスとを用いて、推定された認証タグである検証用タグを生成する検証用タグ生成手段と、
     前記認証タグ生成手段によって生成された前記認証タグと前記検証用タグとを比較することによって改ざんの有無を検証し、検証結果を出力するための制御を行う検証手段と、
     を有する、
     認証暗号システム。
  22.  平文の入力を受け付け、
     過去に生成された値とは異なるナンスを生成し、
     前記平文を分割したブロックごとに、前記ナンスを補助変数として用いて暗号化することで、前記平文に対応する暗号文を生成し、
     前記平文を用いてチェックサムを生成し、
     ハッシュ値を取得し、
     前記ナンスを暗号化して暗号化ナンスを取得し、
     前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて認証タグを生成し、
     前記暗号文及び前記認証タグを出力するための制御を行う、
     認証暗号化方法。
  23.  暗号文、認証タグ及びナンスの入力を受け付け、
     前記暗号文を分割したブロックごとに、前記ナンスを補助変数として用いて復号することで、前記暗号文に対応する平文を生成し、
     前記平文を用いてチェックサムを生成し、
     ハッシュ値を取得し、
     前記ナンスを暗号化して暗号化ナンスを取得し、
     前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて、推定された認証タグである検証用タグを生成し、
     前記認証タグと前記検証用タグとを比較することによって改ざんの有無を検証し、検証結果を出力するための制御を行う、
     認証復号方法。
  24.  平文の入力を受け付けるステップと、
     過去に生成された値とは異なるナンスを生成するステップと、
     前記平文を分割したブロックごとに、前記ナンスを補助変数として用いて暗号化することで、前記平文に対応する暗号文を生成するステップと、
     前記平文を用いてチェックサムを生成するステップと、
     ハッシュ値を取得するステップと、
     前記ナンスを暗号化して暗号化ナンスを取得するステップと、
     前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて認証タグを生成し、
     前記暗号文及び前記認証タグを出力するための制御を行うステップと、
     をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
  25.  暗号文、認証タグ及びナンスの入力を受け付けるステップと、
     前記暗号文を分割したブロックごとに、前記ナンスを補助変数として用いて復号することで、前記暗号文に対応する平文を生成するステップと、
     前記平文を用いてチェックサムを生成するステップと、
     ハッシュ値を取得するステップと、
     前記ナンスを暗号化して暗号化ナンスを取得するステップと、
     前記チェックサムと前記ハッシュ値と前記暗号化ナンスとを用いて、推定された認証タグである検証用タグを生成するステップと、
     前記認証タグと前記検証用タグとを比較することによって改ざんの有無を検証し、検証結果を出力するための制御を行うステップと、
     をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
PCT/JP2020/017422 2020-04-23 2020-04-23 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体 WO2021214923A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2020/017422 WO2021214923A1 (ja) 2020-04-23 2020-04-23 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体
JP2022516562A JP7367860B2 (ja) 2020-04-23 2020-04-23 認証暗号化装置、認証復号装置、認証暗号システム、方法及びプログラム
US17/918,643 US20230139104A1 (en) 2020-04-23 2020-04-23 Authenticated encryption apparatus, authenticated decryption apparatus, authenticated encryption system, method, and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/017422 WO2021214923A1 (ja) 2020-04-23 2020-04-23 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体

Publications (1)

Publication Number Publication Date
WO2021214923A1 true WO2021214923A1 (ja) 2021-10-28

Family

ID=78270498

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/017422 WO2021214923A1 (ja) 2020-04-23 2020-04-23 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体

Country Status (3)

Country Link
US (1) US20230139104A1 (ja)
JP (1) JP7367860B2 (ja)
WO (1) WO2021214923A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114640547A (zh) * 2022-05-18 2022-06-17 深圳市研强物联技术有限公司 一种用于智能录音设备的语音处理方法
CN115118527A (zh) * 2022-08-26 2022-09-27 深圳市成为信息股份有限公司 超高频模组与pda的双向认证方法及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015015702A1 (ja) * 2013-08-02 2015-02-05 日本電気株式会社 認証暗号装置、認証暗号方法および認証暗号用プログラム
JP2016075765A (ja) * 2014-10-03 2016-05-12 日本放送協会 認証暗号化装置および認証復号装置、ならびに、それらのプログラム
JP2019015918A (ja) * 2017-07-10 2019-01-31 日本電信電話株式会社 暗号化データ生成装置、復号データ生成装置、追加データ付き認証暗号システム、その方法、及びプログラム
WO2019163032A1 (ja) * 2018-02-21 2019-08-29 日本電気株式会社 暗号化装置、暗号化方法、プログラム、復号装置、復号方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015015702A1 (ja) * 2013-08-02 2015-02-05 日本電気株式会社 認証暗号装置、認証暗号方法および認証暗号用プログラム
JP2016075765A (ja) * 2014-10-03 2016-05-12 日本放送協会 認証暗号化装置および認証復号装置、ならびに、それらのプログラム
JP2019015918A (ja) * 2017-07-10 2019-01-31 日本電信電話株式会社 暗号化データ生成装置、復号データ生成装置、追加データ付き認証暗号システム、その方法、及びプログラム
WO2019163032A1 (ja) * 2018-02-21 2019-08-29 日本電気株式会社 暗号化装置、暗号化方法、プログラム、復号装置、復号方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114640547A (zh) * 2022-05-18 2022-06-17 深圳市研强物联技术有限公司 一种用于智能录音设备的语音处理方法
CN115118527A (zh) * 2022-08-26 2022-09-27 深圳市成为信息股份有限公司 超高频模组与pda的双向认证方法及相关设备
CN115118527B (zh) * 2022-08-26 2022-11-25 深圳市成为信息股份有限公司 超高频模组与pda的双向认证方法及相关设备

Also Published As

Publication number Publication date
US20230139104A1 (en) 2023-05-04
JP7367860B2 (ja) 2023-10-24
JPWO2021214923A1 (ja) 2021-10-28

Similar Documents

Publication Publication Date Title
JP6519473B2 (ja) 認証暗号装置、認証暗号方法および認証暗号用プログラム
JP6665204B2 (ja) データ暗号化装置及び方法、並びにデータ復号化装置及び方法
JP5447510B2 (ja) タグ生成装置、タグ検証装置、通信システム、タグ生成方法、タグ検証方法および記録媒体
JP5855696B2 (ja) 完全性検証を含むブロック暗号化方法およびブロック復号化方法
JP6740902B2 (ja) 認証暗号化方法、認証復号方法および情報処理装置
JP6035459B2 (ja) 暗号化装置、復号化装置、及びプログラム
US20150244518A1 (en) Variable-length block cipher apparatus and method capable of format preserving encryption
WO2014007347A1 (ja) 共有秘密鍵生成装置、暗号化装置、復号化装置、共有秘密鍵生成方法、暗号化方法、復号化方法、及びプログラム
JP5704159B2 (ja) ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム
KR20050027254A (ko) 데이터 처리 시스템을 위한 효율적인 암호화 및 인증
CN102664740B (zh) 一种基于远程授权的招投标文件加解密方法
JP7323196B2 (ja) 暗号化装置、暗号化方法、プログラム、復号装置、復号方法
WO2014136386A1 (ja) タグ生成装置、タグ生成方法およびタグ生成プログラム
WO2016067524A1 (ja) 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム
WO2021214923A1 (ja) 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体
KR20080072345A (ko) 암호화 장치 및 그 방법
US11108552B1 (en) Data encryption method and system
JP2015082077A (ja) 暗号化装置、制御方法、及びプログラム
KR20110042419A (ko) 멀티미디어 환경에 적용 가능한 블록암호 운용방법
WO2022237440A1 (en) Authenticated encryption apparatus with initialization-vector misuse resistance and method therefor
JP5293612B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
JP2009175544A (ja) 暗号化方法および復号方法
Sadiq et al. Proposal for Scrambled Method based on NTRU
Strenzke Botan's implementation of the McEliece PKC

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022516562

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

Country of ref document: EP

Kind code of ref document: A1