WO2016027454A1 - 認証暗号化方法、認証復号方法および情報処理装置 - Google Patents

認証暗号化方法、認証復号方法および情報処理装置 Download PDF

Info

Publication number
WO2016027454A1
WO2016027454A1 PCT/JP2015/004099 JP2015004099W WO2016027454A1 WO 2016027454 A1 WO2016027454 A1 WO 2016027454A1 JP 2015004099 W JP2015004099 W JP 2015004099W WO 2016027454 A1 WO2016027454 A1 WO 2016027454A1
Authority
WO
WIPO (PCT)
Prior art keywords
initial vector
ciphertext
plaintext
generating
input
Prior art date
Application number
PCT/JP2015/004099
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 JP2016543814A priority Critical patent/JP6740902B2/ja
Priority to US15/504,886 priority patent/US10623176B2/en
Publication of WO2016027454A1 publication Critical patent/WO2016027454A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Definitions

  • the present invention relates to an authentication encryption method, an authentication decryption method, an information processing apparatus, a control program, and a recording medium for recording the control program.
  • Patent Document 1 discloses an encryption method.
  • the block cipher mode operation implements a block cipher with an arbitrary block length and always provides an output ciphertext with the same size as the input plaintext. That mode can provide the highest possible security in systems that are not allowed to expand data, such as disk block encryption or some network protocol. That mode accepts additional input that can be used to protect against attacks that manipulate ciphertext by relocating ciphertext blocks.
  • a general purpose hash function from the Galois / Counter mode of operation for block ciphers can be used in embodiments for hardware and software efficiency.
  • Patent Document 2 discloses a data distribution apparatus.
  • the data distribution apparatus can detect falsification of unencrypted data associated with the encrypted data, and disables normal decryption of the encrypted data when the falsification is recognized.
  • the data distribution apparatus receives the input data A and the non-encrypted data B, performs block encryption processing of the input data A using the hash value calculated from the non-encrypted data B, and generates the encrypted data E (A ) And unencrypted data B are distributed.
  • the data distribution apparatus includes data compression means, block cipher processing means, and data distribution means.
  • the data compression means calculates a hash value from the unencrypted data B using a hash function.
  • the block cipher processing means generates the encrypted data E (A) by performing block cipher processing on the input data A in a predetermined usage mode using the hash value as an initial vector.
  • the data distribution means multiplexes the encrypted data E (A) and the unencrypted data B generated by the block encryption processing means, and distributes the header, the unencrypted data B, and the encrypted data E (A). To do.
  • Patent Document 3 discloses an encryption method.
  • the encryption method improves the encryption strength by affecting the change of plaintext over a wide range.
  • the encryption method has the following configuration.
  • First, the encryption method applies DES (Data Encryption Standard) encryption to the initial vector 1.
  • Second, the encryption method performs an exclusive OR operation on the encrypted initial vector 1 and the first small block of 8 bytes.
  • Third, the encryption method performs DES encryption on this result.
  • the encryption method performs an exclusive OR operation on the encrypted result and the next small block.
  • Fifth, the encryption method sequentially repeats the same process 32 times to perform a chain process from the forward direction for 256 bytes. Then, sixthly, the encryption method performs the same chain process from the reverse direction.
  • the encryption method performs DES encryption on the last small block of the chain. Eighth, the encryption method performs an exclusive OR operation on the encrypted result and the first block at this time. Ninth, the encryption method replaces the entire 256 bytes in byte units. Tenth, the encryption method changes the feedback position and re-executes the series of processes.
  • Authenticated encryption is a technology that simultaneously applies encryption and authentication tag calculation for tamper detection to plaintext messages using a secret key shared in advance.
  • AE Authenticated encryption
  • plaintext M is encrypted, and in addition to ciphertext C having the same length as plaintext M, initial vector N and tag T are converted to ciphertext C. It is necessary to connect and send.
  • the initial vector N and the tag T are also short values of about 4 to 32 bytes.
  • the plaintext M is as short as possible, the increase in the communication bandwidth due to the addition of the initial vector N and the tag T is ignored. Can not do it.
  • the communication band is an important factor that determines power consumption, so that band reduction is an important issue.
  • Non-Patent Document 1 Authenticated Encryption with ⁇ Replay prOtection
  • the AERO of Non-Patent Document 1 uses an input (N) obtained by concatenating an initial vector N and plaintext M using variable length input / output pseudo random permutation (WPRP) P_K using K as a key.
  • WPRP variable length input / output pseudo random permutation
  • C P_K (N, M) is the total output.
  • P_K is a function with the key K as a parameter.
  • the length of the ciphertext C is the sum of the lengths of the initial vector N and the plaintext M.
  • the decryption side In order to determine whether or not the decrypted initial vector N is an expected value, it is necessary for the decryption side to know in advance the initial vector N to be used by the encryption side. This can be realized if the encryption side and the decryption side are synchronized with respect to the update of the initial vector N. Typically, this is achieved by the decryption side storing the initial vector of the regular ciphertext sent immediately before. This condition is natural when the decoding side is required to detect and eliminate replay.
  • Non-Patent Document 1 the only information that must be sent by the encryption side is the ciphertext C, and this length is the sum of the lengths of the initial vector N and the plaintext M. Only vector N. Therefore, it is possible to eliminate the band corresponding to the tag T as compared with the general authentication encryption method described above. Also, due to the nature of WPRP, when ciphertext other than replay is decrypted, the resulting plaintext is entirely random until then. For this reason, it is difficult for an attacker to control to a specific value for the portion in which the initial vector is contained, and the probability that the value expected by the decoding side becomes small enough to be ignored.
  • Non-Patent Document 1 proposes to use a block cipher usage mode called XCB (eXtended CodeBook) mode disclosed in Patent Document 1 as a WPRP.
  • XCB extended CodeBook
  • the technique described in the above-described prior art document has a problem that the encryption efficiency may be poor.
  • m blocks of plaintext M are configured by 3-pass processing.
  • the first pass and the last pass execute GHASH, which is a polynomial hash over GF (Galois Field) (2 128 ) (polynomial hash over GF (2 128 )).
  • the intermediate path performs counter mode encryption using 128-bit block cipher. For this reason, the load compared with normal encryption is large. Specifically, one block cipher and two multiplications on GF (2 128 ) are required for each input block. That is, the increase in bandwidth due to the authentication encryption could be suppressed, but the encryption efficiency deteriorated.
  • An object of the present invention is to provide a technique for efficiently realizing an authentication cipher in which a bandwidth (length) increase with respect to a plaintext length of a ciphertext length is small.
  • an information processing apparatus provides: Plaintext input means for inputting plaintext; Initial vector generating means for generating an initial vector; A common key block encryption means for encrypting the initial vector and generating an encrypted initial vector; A pseudorandom number generation means for generating a pseudorandom number sequence having the same length as the plaintext, using the encrypted initial vector as input; A keyed hash means for generating a hash value by inputting a first part of a ciphertext obtained by exclusive ORing the pseudorandom number sequence and the plaintext; A ciphertext output unit that concatenates and outputs the second part of the ciphertext obtained by exclusive ORing the hash value and the encrypted initial vector and the first part; Is provided.
  • the control program of the information processing apparatus that causes the computer to execute is recorded.
  • an information processing apparatus provides: Plaintext input means for inputting plaintext; Initial vector generating means for generating an initial vector; A keyed hash means for generating a hash value using the plaintext as input; A common key block encryption unit that encrypts a masked initial vector obtained by exclusive ORing the initial vector and the hash value, and generates a second part of a ciphertext; Pseudo-random number generation means for generating a pseudo-random number sequence having the same length as the plaintext, using the second part as an input; A ciphertext output means for concatenating the first part of the ciphertext obtained by exclusive ORing the pseudorandom number sequence and the plaintext and the second part, and outputting the result as ciphertext; Is provided.
  • a plaintext input step for inputting plaintext
  • An initial vector generation step for generating an initial vector
  • a keyed hash step for generating a hash value
  • a common key block encryption step of generating a second part of ciphertext by encrypting a masked initial vector obtained by exclusive ORing the initial vector and the hash value
  • a pseudo-random number generation step for generating a pseudo-random number sequence having the same length as the plaintext by using the second part as an input
  • a ciphertext output step of concatenating the first part and the second part of the ciphertext obtained by exclusive ORing the pseudorandom number sequence and the plaintext, and outputting the ciphertext as a ciphertext
  • the control program of the information processing apparatus that causes the computer to execute is recorded.
  • an information processing apparatus provides: Ciphertext input means for inputting ciphertext and separating the ciphertext into a first part and a second part; A keyed hash means for generating a hash value using the first part as an input; Pseudo-random number generation means for generating a pseudo-random number sequence having the same length as that of the first part, using an encrypted initial vector obtained by exclusive ORing the hash value and the second part of the ciphertext; A common key block decrypting means for decrypting the encrypted initial vector with a common key block and generating an initial vector; Initial vector checking means for inputting the decoded initial vector and an initial vector expected value and checking whether or not the decoded initial vector and the initial vector expected value match; Plaintext output means for outputting a plaintext obtained by exclusive ORing the pseudorandom number sequence and the first portion when the decoded initial vector and the initial vector expected value match; Is provided.
  • an information processing apparatus provides: Ciphertext input means for inputting ciphertext and separating the ciphertext into a first part and a second part; Pseudo-random number generation means for generating a pseudo-random number sequence having the same length as the first part, using the second part as an input; Symmetric key block decrypting means for decrypting the second part with the symmetric key block and generating a masked initial vector; A keyed hashing means for generating a hash value, using as input a plaintext obtained by exclusive ORing the pseudorandom number sequence and the first part; Input an initial vector decoded by exclusive ORing the hash value and the initial vector with mask, and an initial vector expected value, and whether the decoded initial vector and the initial vector expected value match Initial vector checking means for checking whether or not, Plaintext output means for outputting the plaintext when the decrypted initial vector matches the initial vector expected value; Is provided.
  • a keyed hash step for generating a hash value using, as input, a plaintext obtained by exclusive ORing the pseudorandom number sequence and the first part;
  • Input an initial vector decoded by exclusive ORing the hash value and the initial vector with mask, and an initial vector expected value, and whether the decoded initial vector and the initial vector expected value match
  • an authentication encryption method includes: An authentication encryption method for generating ciphertext based on plaintext and an initial vector generated so as not to overlap with past values, Based on the initial vector, common key block encryption is performed to generate an encrypted initial vector, In order to generate the first part of the ciphertext from the plaintext, a pseudorandom number that is exclusive ORed with the plaintext is generated based on the encrypted initial vector, In order to generate the second part of the ciphertext from the initial vector, in addition to the common key block encryption of the initial vector in the generation of the encrypted initial vector, a keyed hash value that is exclusive ORed with the initial vector is , Generated based on the plaintext.
  • an authentication decryption method includes: An authentication decryption method for decrypting, from a ciphertext, a plaintext that is the source of the ciphertext and an initial vector used to generate the ciphertext, In order to decrypt the plaintext from the first portion of the ciphertext, a pseudorandom number that is exclusive ORed with the first portion is generated based on the second portion of the ciphertext, Perform common key block decryption based on the second part of the ciphertext, In order to decrypt the initial vector from the second part of the ciphertext, in addition to the common key block decryption of the second part in the common key block decryption, a keyed hash value that is exclusive ORed with the second part, Generated based on the first part.
  • the information processing apparatus 100 is an apparatus that generates a ciphertext by block-encrypting a plaintext.
  • the information processing apparatus 100 includes a plaintext input unit 101, an initial vector generation unit 102, a common key block encryption unit 103, a pseudo random number generation unit 104, a keyed hash unit 105, A sentence output unit 106.
  • the plaintext input unit 101 inputs a plaintext 111.
  • the initial vector generation unit 102 generates an initial vector 112.
  • the common key block encryption unit 103 generates the encrypted initial vector 113 by performing the common key block encryption on the initial vector 112.
  • the pseudorandom number generation unit 104 receives the encrypted initial vector 113 and generates a pseudorandom number sequence 114 having the same length as the plaintext 111.
  • the keyed hash unit 105 receives the first part 117 of the ciphertext obtained by exclusive OR (107) the pseudorandom number sequence 114 and the plaintext 111 and generates a hash value 115.
  • the ciphertext output unit 106 concatenates the second part 118 and the first part 117 of the ciphertext obtained by exclusive OR (108) the hash value 115 and the encrypted initial vector 113, and outputs the result as the ciphertext 116.
  • the authentication cipher with a small increase in the bandwidth (length) of the ciphertext length relative to the plaintext length is obtained by performing the block cipher once per input length block and the finite field GF (2 n ) multiplication once. Can be realized efficiently.
  • the authentication encryption system according to the present embodiment includes an information processing apparatus that performs authentication encryption, an information processing apparatus that performs authentication decryption, or an information processing apparatus that performs authentication encryption and authentication decryption.
  • FIG. 2 is a diagram showing a configuration of the authentication encryption system 200 according to the present embodiment.
  • the authentication encryption system 200 in FIG. 2 includes an information processing device 202 and an information processing device 203, and an information processing device 201 and an information processing device 205.
  • the information processing apparatus 202 and the information processing apparatus 203 include an authentication encryption unit 210, and the information processing apparatus 201 and the information processing apparatus 205 that transmit ciphertext obtained by authenticating and encrypting plain text via the network 230 are authentication decryption units.
  • the ciphertext received via the network 230 is decrypted into plaintext.
  • the authentication encryption system 200 further includes an authentication encryption unit 210 and an authentication decryption unit 220.
  • the ciphertext obtained by authenticating and encrypting plaintext is transmitted via the network 230, and the ciphertext received via the network 230 is received. Includes an information processing apparatus 204 that decrypts the data into plaintext.
  • the information processing apparatus is illustrated as an authentication encryption unit 210, an authentication decryption unit 220, and an apparatus having other functions.
  • the authentication encryption unit 210 and the authentication decryption unit 220 are used as information processing apparatuses. It can also be considered as an authentication encryption device or an authentication decryption device.
  • FIG. 2 illustrates the case where the authentication encryption is applied to communication between information processing apparatuses via a network.
  • the authentication encryption of the present embodiment can be used between an information processing apparatus and a device via a LAN (Local Area Network), between an information processing apparatus and a device (printer, display, storage medium), or a device. It is applied to and produces the same effect.
  • LAN Local Area Network
  • Authentication encryption basics First, basic input / output of the authentication encryption (AE) is shown. Consider two parties “Alice” and “Bob” who share a secret key K, and communicate from Alice to Bob using encryption using authentication encryption (AE).
  • the encryption function of the authentication encryption (AE) is AEnc, and the decryption function is ADec.
  • the plaintext to be encrypted is M, and a variable called initial vector N is introduced.
  • CCM Counterbalance with CBC-MAC (cipher block, chaining, message, authentication code)
  • GCM Galois / Counter Mode
  • both the initial vector N and the tag T are short values of about 4 to 32 bytes.
  • the increase in communication bandwidth due to the addition of the initial vector N and the tag T is ignored. Can not do it.
  • bandwidth reduction is an important issue because the communication bandwidth is an important factor affecting power consumption.
  • Non-Patent Document 1 (Bandwidth reduction method) As a solution to such a bandwidth problem, there is Non-Patent Document 1 described above.
  • AERO of Non-Patent Document 1 uses an input vector (N, M) obtained by concatenating an initial vector N and plaintext M using a variable length input / output pseudo random permutation (WPRP) P_K with K as a key.
  • WPRP variable length input / output pseudo random permutation
  • C P_K (N, M) is the total output.
  • the length of the ciphertext C is the sum of the lengths of the initial vector N and the plaintext M.
  • the decryption side uses the shared key K to apply the inverse permutation of P_K to the ciphertext C to obtain (N, M), and then performs an authentication check depending on whether or not the decrypted initial vector N is an expected value. Whether or not is correct is determined.
  • the decryption side In order to determine whether or not the decrypted initial vector N is an expected value, it is necessary for the decryption side to know in advance the initial vector N to be used by the encryption side. This can be realized if the encryption side and the decryption side are synchronized with respect to the update of the initial vector N. Typically, this is achieved by the decryption side storing the initial vector of the regular ciphertext sent immediately before. This condition is natural when the decoding side is required to detect and eliminate replay.
  • the only information that must be sent by the encryption side is the ciphertext C, and this length is the sum of the lengths of the initial vector N and the plaintext M. Is the initial vector only. Therefore, it is possible to eliminate the band corresponding to the tag T as compared with the general authentication encryption method described above. Also, due to the nature of WPRP, when ciphertext other than replay is decrypted, the resulting plaintext is entirely random until then. For this reason, it is difficult for the attacker to control to a specific value for the portion in which the initial vector is contained, and the probability of the value expected by the decoding side becomes so small that it can be substantially ignored.
  • Non-Patent Document 1 proposes to use a block cipher usage mode called an XCB mode as in Patent Document 1 as a WPRP.
  • the XCB mode is configured by a 3-pass process for plaintext M of m blocks.
  • FIG. 4 is a block diagram illustrating a functional configuration of the authentication encryption unit 400 using the XCB mode according to the base technology.
  • the first intermediate value obtained by encrypting the initial vector N by the common key encryption unit E401 is exclusively ORed with the polynomial hash generated from the plaintext M by the first pass GHash 402 to generate the second intermediate value. Is done.
  • the second intermediate value is block-encrypted by counter mode encryption 403 that is an intermediate path.
  • the result of block encryption is exclusive-ORed with plaintext M to generate a first part CR of the ciphertext.
  • the second intermediate value is exclusive-ORed with the polynomial hash generated from the first part CR by the GHash 404 which is the last pass to generate the third intermediate value.
  • the third intermediate value is decrypted by the common key decryption unit D405 to generate the second part CL of the ciphertext.
  • the first pass and the final pass executes GHash402,404 a GF (2 128) on the polynomial hash (polynomial hash over GF (2 128 )).
  • the intermediate path executes counter mode encryption 403 using 128-bit block cipher. Therefore, the load is large compared to normal encryption. Specifically, one block cipher and two multiplications on GF (2 128 ) are required for each input block.
  • the invention has been devised so that an authentication cipher with a small increase in the ciphertext length bandwidth (length) relative to the plaintext length can be realized efficiently.
  • the authentication encryption unit 210 and the authentication decryption unit 220 in the authentication encryption system 200 of the present embodiment will be described in detail.
  • the length of one block is assumed to be n bits unless otherwise specified.
  • FIG. 3 is a block diagram illustrating a functional configuration of the authentication encryption unit 210 as the information processing apparatus according to the present embodiment.
  • the authentication encryption unit 210 includes a plaintext input unit 311, an initial vector generation unit 312, a common key block encryption unit 313, a pseudorandom number generation unit 314, a keyed hash unit 315, and a ciphertext output unit 316.
  • the authentication encryption unit 210 can be realized by a CPU (Central Processing Unit), a memory, and a disk. Each functional component stores a program on a disk and operates the program on the CPU. It can also be realized.
  • CPU Central Processing Unit
  • the plaintext input unit 311 is a functional configuration unit that inputs the target plaintext M. This is realized by, for example, reading from a character input unit such as a keyboard, a storage medium storing plain text, or reception via a communication medium.
  • next initial vector is determined from only the initial vector used immediately before without updating auxiliary information, but the generality is not lost.
  • the initial vector N is assumed to be n bits, but if it is short, appropriate padding is performed so as to be a block unit.
  • the common key block encryption unit 313 is a functional configuration unit that encrypts an initial vector N of one block and outputs an encrypted initial vector S having the same length.
  • the common key block encryption unit 313 is realized by a block encryption function.
  • FIG. 5 is a diagram illustrating a configuration example of the common key block encryption unit 313 according to the present embodiment.
  • Figure 5 shows the SPN This is a case of common key block encryption with a (substitution permutation network) structure.
  • FIG. 6 is a diagram illustrating a configuration example of another common key block encryption unit 613 according to the present embodiment.
  • FIG. 6 shows a case of common key block encryption using the Feistel structure. For details, see “Aoki, Ichikawa, Kanda, Matsui, Moriai, Nakajima, Tokita,“ 128-bit block cipher Camellia algorithm specification (version 2.0) ”http://info.isl.ntt.co.jp/ Refer to “crypt / camellia / dl / 01jspec.pdf”.
  • the pseudo random number generation unit 314 is a functional configuration unit that generates a pseudo random number sequence V having the same length as that of the plaintext M by using one block of the encrypted initial vector S. Specifically, it is a pseudo-random function with a fixed length input and a variable length output. Such a function can be generated, for example, in a modified counter mode or a modified OFB (Output-FeedBack) mode (modified OFB mode) when a block cipher is used.
  • a modified counter mode or a modified OFB (Output-FeedBack) mode (modified OFB mode) when a block cipher is used.
  • FIG. 7 is a diagram illustrating a configuration example of the pseudo-random number generation unit 314 according to the present embodiment.
  • the upper row shows the basic counter mode and OFB mode configurations
  • the lower row shows the modified counter mode and modified OFB mode configurations.
  • the modified counter mode or the modified OFB mode is used in the pseudo-random number generation unit 314, it can be realized only with a block cipher. Furthermore, when the correction counter mode is used, parallel processing can be performed in each output block generation.
  • the keyed hash unit 315 receives the first part CR of the ciphertext that is the exclusive OR of the plaintext M and the pseudorandom number sequence V output from the pseudorandom number generation unit 314, and outputs the keyed hash value H. It is a functional component. Specifically, the keyed hash unit 315 is a pseudo-random function that obtains an output of one block from a variable-length input. For example, when a block cipher is used, there are CMAC (Cipher-based Message Authentication Code), a method of combining a polynomial hash on a finite field and block cipher encryption. That is, if the polynomial hash is F (key is L) and the encryption function of the block cipher is E (key is K), E_K (F_L (X)) may be output for the input X.
  • CMAC Cipher-based Message Authentication Code
  • FIG. 8 is a diagram illustrating a configuration example of the keyed hash unit 315 according to the present embodiment.
  • FIG. 8 illustrates a configuration in CMAC where the first part CR of the ciphertext is an integral multiple of the block size (left diagram) and a configuration in which the first part CR is not an integral multiple (right diagram).
  • FIG. 9 is a diagram illustrating a configuration example of another keyed hash unit 815 according to the present embodiment.
  • FIG. 9 shows a keyed hash unit 815 using a polynomial hash over a finite field and block cipher encryption.
  • mult is a multiplication on GF (2 128 ), and its key is K1.
  • CIPH is an encryption function of a block cipher and its key is K2.
  • the ciphertext output unit 316 is a functional configuration unit that connects the second part CL and the first part CR of the ciphertext and outputs them as ciphertext C.
  • the second part CL is an exclusive OR of the hash value H output from the keyed hash unit 315 and the encrypted initial vector S output from the common key block encryption unit 313.
  • the ciphertext C is output to, for example, a computer display or a printer.
  • FIG. 10 is a block diagram illustrating a hardware configuration of the authentication encryption unit 210 according to the present embodiment.
  • a CPU 910 is a processor for arithmetic control, and implements the functional components shown in FIG. 3 by executing a program.
  • a ROM (Read Only Memory) 920 stores initial data and fixed data such as a program.
  • the communication control unit 930 communicates with other devices via a network.
  • the number of CPUs 910 is not limited to one, and may be a plurality of CPUs or may include a GPU (GraphicGraphProcessing Unit) for image processing.
  • the communication control unit 930 preferably includes a CPU independent of the CPU 910 and writes or reads transmission / reception data in a RAM (Random Access Memory) 940 area.
  • DMAC Direct Memory Access Controller
  • the RAM 940 is a random access memory that the CPU 910 uses as a work area for temporary storage. In the RAM 940, an area for storing data necessary for realizing the present embodiment is secured.
  • the input plaintext M941 is plaintext that is authenticated and encrypted by the authentication encryption unit 210.
  • the initial vector N942 is data generated so as not to overlap with past values.
  • the encrypted initial vector S943 is data obtained by encrypting the initial vector N942 with a common key block encryption.
  • the pseudo-random number sequence V944 is a pseudo-random number generated based on the encrypted initial vector S943.
  • the hash value H945 is a hash value generated based on the first part CR of the ciphertext.
  • the exclusive OR CL946 of the hash value H and the encrypted initial vector S is the second part CL of the ciphertext.
  • the exclusive OR CR947 of the plaintext M and the pseudo random number sequence V is the first part CR of the ciphertext.
  • the output ciphertext C is a ciphertext generated by concatenating the first part CR and the second part CL of the ciphertext.
  • the storage 950 stores a database, various parameters, or the following data or programs necessary for realizing the present embodiment.
  • the common key block encryption algorithm 951 is a common key block encryption algorithm used in this embodiment.
  • the pseudo random number generation algorithm 952 is a pseudo random number generation algorithm used in the present embodiment.
  • the keyed hash algorithm 953 is a keyed hash algorithm used in this embodiment.
  • the storage 950 stores the following programs.
  • the authentication encryption program 954 is a program that controls the entire authentication encryption processing.
  • the common key block encryption module 955 is a module that executes common key block encryption according to the common key block encryption algorithm 951.
  • the pseudo random number generation module 956 is a module that executes pseudo random number generation in accordance with a pseudo random number generation algorithm 952.
  • the keyed hash module 957 is a module that executes generation of a keyed hash according to the keyed hash algorithm 953.
  • RAM 940 and the storage 950 in FIG. 10 do not show programs and data related to general-purpose functions included in the authentication encryption unit 210 and other realizable functions. Furthermore, programs and data related to general-purpose functions and other realizable functions included in the information processing apparatus including the authentication encryption unit 210 are not shown.
  • FIG. 11 is a flowchart showing a processing procedure of the authentication encryption unit 210 according to the present embodiment. This flowchart is executed by the CPU 910 in FIG. 10 using the RAM 940, and implements the functional configuration unit in FIG. Note that the authentication encryption processing order is not limited to that shown in FIG.
  • step S1001 the authentication encryption unit 210 inputs the target plaintext M and generates an initial vector N.
  • step S1003 the authentication encryption unit 210 performs common key block encryption on the initial vector N to obtain an encrypted initial vector S having the same length.
  • step S1005 the authentication encryption unit 210 obtains a pseudorandom sequence V that is an output of a pseudorandom function with the encrypted initial vector S as an input.
  • step S1007 the authentication encryption unit 210 sets the exclusive OR of the pseudorandom number sequence V and the plaintext M as the block (first portion CR) outside the left end of the ciphertext.
  • step S1009 the authentication encryption unit 210 generates a keyed hash H from the first part CR, and obtains an exclusive logic between the obtained one-block keyed hash H and the encrypted initial vector S. Let the sum be the leftmost block (second portion CL) of the ciphertext.
  • the authentication encryption unit 210 obtains a ciphertext C by connecting the second part CL and the first part CR in step S1011.
  • the authentication encryption unit 210 outputs the obtained ciphertext C in step S1013.
  • the second portion CL need not be the left end, and is preferably one end of the ciphertext.
  • FIG. 12 is a block diagram showing a functional configuration of the authentication decryption unit 220 as the information processing apparatus according to the present embodiment.
  • the authentication decryption unit 220 includes a ciphertext input unit 1101, a keyed hash unit 1102, a pseudorandom number generation unit 1103, a common key block decryption unit 1104, an initial vector check unit 1105, and a plaintext output unit 1106. .
  • the authentication decryption unit 220 can be realized by a CPU, a memory, and a disk, and each functional configuration unit can also be realized by storing a program on the disk and operating the program on the CPU.
  • the ciphertext input unit 1101 is a functional configuration unit that inputs a target ciphertext. This is realized by, for example, reading from a character input unit such as a keyboard, a storage medium storing plain text, or reception via a communication medium. Then, the ciphertext input unit 1101 outputs the ciphertext C by separating it into a first part CR and a second part CL.
  • the second part CL is one block at the left end of the ciphertext
  • the first part CR is all blocks outside the left end of the ciphertext.
  • the keyed hash unit 1102 is a functional configuration unit that receives the first part CR and outputs a one-block keyed hash value H.
  • the keyed hash unit 1102 is a pseudo-random function that obtains one block output from a variable-length input, and can be realized by a functional configuration unit similar to the keyed hash unit 315 of the authentication encryption unit 210.
  • the pseudo-random number generation unit 1103 receives the encrypted initial vector S by exclusive OR of the hash value H output from the keyed hash unit 1102 and the second part CL of the ciphertext, and has the same length as the first part CR. This is a functional component that generates the pseudorandom number sequence V.
  • the pseudo-random number generation unit 1103 is a fixed-length input and variable-length output pseudo-random function, and can be realized by a functional configuration unit similar to the pseudo-random number generation unit 314 of the authentication encryption unit 210.
  • the common key block decryption unit 1104 is a functional configuration unit that obtains an initial vector N by decrypting the encrypted initial vector S. Specifically, the common key block decryption unit 1104 can be realized by a decryption function corresponding to the block cipher used in the common key block encryption unit 313 of the authentication encryption unit 210.
  • FIG. 13 is a diagram illustrating a configuration example of the common key block decrypting unit 1104 according to the present embodiment.
  • FIG. 13 shows a case of common key block decryption by the SPN structure.
  • common key block decryption with the Feistel structure is the same as the common key block coding except that the keys are reversed, and the illustration is omitted.
  • the common key block decrypting unit 1104 is not limited as long as it corresponds to the common key block encrypting unit 313.
  • FIG. 14 is a diagram illustrating a configuration example of the initial vector inspection unit 1105 according to the present embodiment.
  • the initial vector check unit 1105 includes an initial vector expected value holding unit 1301, an initial vector comparison unit 1302, and an initial vector expected value update unit 1303.
  • the initial vector expected value holding unit 1301 holds the initial initial vector expected value N *, and thereafter holds the output of the initial vector expected value update unit 1303. Note that the initial initial vector expected value N * may be input or received from the outside, or may be held in advance in the same manner as a key or the like.
  • the initial vector comparison unit 1302 compares the current initial vector expected value N * held by the initial vector expected value holding unit 1301 with the decrypted initial vector N output from the common key block decryption unit 1104. Next, as the verification result B of the comparison, the initial vector comparison unit 1302 outputs ACK if they match, and outputs NACK if they do not match.
  • the initial vector expected value update unit 1303 increments the initial vector expected value N * by 1 and outputs it to the initial vector expected value holding unit 1301.
  • the comparison verification method corresponds to information loss such as packet loss on the communication path, whether or not the absolute value difference between N and N * is within t by providing a threshold t in addition to verification of matching.
  • the verification result B may be determined as follows.
  • the success probability of the attacker who performs the falsification that is, the probability that the value of the initial vector N when the illegal ciphertext is decrypted is close to N * by chance is approximately t / 2 n . For this reason, by setting t to a sufficiently small value, it is possible to detect alteration with a high probability while dealing with information loss.
  • the plaintext output unit 1106 is the following functional configuration unit.
  • the plaintext output unit 1106 sets the exclusive OR of the pseudorandom number sequence V output from the pseudorandom number generation unit 1103 and the first portion CR of the ciphertext C (all blocks other than the left end of the ciphertext C) as plaintext M.
  • the verification result B output by the initial vector checking unit 1105 is input.
  • the plaintext output unit 1106 outputs an error message as a verification failure.
  • FIG. 15 is a block diagram illustrating a hardware configuration of the authentication decryption unit 220 according to the present embodiment.
  • a CPU 1410 is a processor for arithmetic control, and implements the functional configuration unit of FIG. 12 by executing a program.
  • the ROM 1420 stores fixed data such as initial data and programs.
  • the communication control unit 1430 communicates with other devices via a network.
  • the CPU 1410 is not limited to one, and may be a plurality of CPUs or may include a GPU for image processing.
  • the communication control unit 1430 preferably includes a CPU independent of the CPU 1410 and writes or reads transmission / reception data in an area of the RAM 1440.
  • the RAM 1440 is a random access memory used by the CPU 1410 as a work area for temporary storage.
  • the RAM 1440 has an area for storing data necessary for realizing the present embodiment.
  • the input ciphertext C1441 is a ciphertext that is authenticated and decrypted by the authentication decryption unit 220.
  • the input ciphertext C1441 is read by being separated into a second part (left end block) CL and a first part (block outside the left end) CR.
  • the hash value H1442 is a hash value generated based on the first part CR of the ciphertext.
  • the exclusive OR S1443 of the second part CL and the hash value H is data corresponding to the encrypted initial vector.
  • the pseudo-random number sequence V1444 is a pseudo-random number generated based on the exclusive OR S1443.
  • the exclusive OR M1445 of the first part CR and the pseudorandom number V is a decrypted plaintext candidate.
  • the decrypted initial vector N1446 is the initial vector N decrypted by the common key block from the exclusive OR S1443.
  • the initial vector expected value N * 1447 is an expected value of the initial vector decrypted from the input ciphertext C1441.
  • the initial vector verification result B1448 is a verification result of whether or not the decoded initial vector N1446 matches the initial vector expected value N * 1447.
  • the output plaintext M1449 is a plaintext that is output when the initial vector verification result B1448 matches (ACK).
  • the storage 1450 stores a database, various parameters, or the following data or programs necessary for realizing the present embodiment.
  • the common key block decryption algorithm 1451 is a common key block decryption algorithm used in this embodiment.
  • the pseudo random number generation algorithm 952 is a pseudo random number generation algorithm used in the present embodiment, and is the same as the authentication encryption unit 210.
  • the keyed hash algorithm 953 is a keyed hash algorithm used in this embodiment, and is the same as the authentication encryption unit 210.
  • the storage 1450 stores the following programs.
  • the authentication decryption program 1454 is a program that controls the entire authentication decryption process.
  • the common key block decryption module 1455 is a module that executes common key block decryption according to the common key block decryption algorithm 1451.
  • the pseudo random number generation module 956 is a module that executes pseudo random number generation according to the pseudo random number generation algorithm 952, and is the same as the authentication encryption unit 210.
  • the keyed hash module 957 is a module that generates a keyed hash according to the keyed hash algorithm 953, and is the same as the authentication encryption unit 210.
  • the initial vector check module 1458 is a module that compares the initial vector decrypted from the ciphertext with the initial vector expected value and performs a process corresponding to whether or not they match.
  • RAM 1440 and storage 1450 in FIG. 15 do not show programs and data related to general-purpose functions included in the authentication decryption unit 220 and other feasible functions. Furthermore, programs and data related to general-purpose functions and other realizable functions included in the information processing apparatus including the authentication decryption unit 220 are not shown.
  • FIG. 16 is a flowchart showing a processing procedure of the authentication decryption unit 220 according to the present embodiment. This flowchart is executed by the CPU 1410 of FIG. 15 using the RAM 1440, and implements the functional configuration unit of FIG. Note that the authentication decryption processing order is not limited to FIG.
  • the authentication decryption unit 220 inputs the target ciphertext C in step S1501.
  • step S1503 the authentication decryption unit 220 divides the ciphertext C into a second part (leftmost block) CL and a first part (all blocks other than the leftmost) CR. Then, the authentication decryption unit 220 generates a keyed hash from the first part CR, obtains an exclusive OR of the obtained one-block hash value H and the second part CL, and obtains an encrypted initial vector S. .
  • step S1505 the authentication decryption unit 220 obtains a pseudo-random sequence V that is an output of a pseudo-random function having the encrypted initial vector S as an input.
  • step S1507 the authentication decryption unit 220 sets the exclusive OR of the pseudo random number sequence V and the first part CR as a candidate for the plaintext M of the decryption result.
  • step S1509 the authentication decryption unit 220 decrypts the encrypted initial vector S with the common key block and decrypts the initial vector N having the same length.
  • the authentication encryption unit 210 and the authentication decryption unit 220 have been described independently. If the information processing apparatus 204 in FIG. 2 includes both the authentication encryption unit 210 and the authentication decryption unit 220, the pseudo random number generation unit (pseudo random number generation module) and the keyed hash unit (key hash module) Can be shared between encryption and decryption. Furthermore, with the Feistel structure, the common key block encryption unit (common key block encryption module) and the common key block decryption unit (common key block decryption module) can be shared by encryption and decryption.
  • the functional configuration for performing exclusive OR is also used as a conversion unit for converting between plaintext and the first part of the ciphertext, or between the encrypted initial vector and the second part of the ciphertext. It can be shared as a conversion unit for converting to.
  • the ciphertext length relative to the plaintext length can be obtained by setting the block cipher once and multiplying the finite field GF (2 n ) once, or block cipher twice.
  • An authentication cipher with a small increase in bandwidth (length) can be efficiently realized.
  • the initial vector N and plaintext M are concatenated, and encryption is performed in the XBC mode described in Patent Document 1 called WPRP. Therefore, it is possible to perform processing in which the tag T and the initial vector N are combined, and the bandwidth can be increased only by the initial vector N.
  • this method is inefficient because it requires one block cipher per input length block and twice a finite field GF (2 n ) multiplication (where n is the block size). This inefficiency is mainly due to the fact that WPRP makes the entire decryption result unpredictable computational random numbers for ciphertexts created by attackers.
  • the block cipher only the portion corresponding to the initial vector used for verification in the decoding result is set to an unpredictable computational random number, and the conditions for decoding are weakened.
  • the cipher is combined once and the block cipher is combined once with the keyed hash part, and the block cipher is performed twice. As a result, even if the bandwidth is reduced, the calculation efficiency is improved to almost the same level as in the case of the document CCM and the document GCM, which are normal types of authentication encryption.
  • the authentication encryption system according to the present embodiment is an information processing apparatus that performs authentication encryption in a different procedure, an information processing apparatus that performs authentication decryption in a different procedure, or an authentication encryption in a different procedure. It differs in that it includes an information processing device that performs authentication and authentication decryption. Since other configurations and operations are the same as those of the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.
  • FIG. 17 is a block diagram illustrating a functional configuration of the authentication encryption unit 1610 as the information processing apparatus according to the present embodiment.
  • the same functional components as those in FIG. 3 are denoted by the same reference numerals, and description thereof is omitted.
  • the authentication encryption unit 1610 includes a plaintext input unit 311, an initial vector generation unit 312, a common key block encryption unit 313, a pseudorandom number generation unit 314, a keyed hash unit 315, and a ciphertext output unit 316. And comprising.
  • plaintext M is input by the plaintext input unit 311.
  • the keyed hash unit 315 receives the plaintext M and outputs a hash value H.
  • the keyed hash unit 315 receives the plaintext M and outputs a hash value H.
  • the keyed hash unit 315 receives the plaintext M and outputs a hash value H.
  • the pseudo random number generation unit 314 receives the second part CL and outputs a pseudo random number sequence V.
  • the pseudo-random number sequence V and the plaintext M are exclusive-ORed to obtain the first part of the ciphertext (outside the leftmost block of the ciphertext) CR.
  • a ciphertext output unit 316 connects the second part CL and the first part CR to form a ciphertext C, and outputs the ciphertext C to, for example, a computer display or a printer. Further, writing to a storage medium or transmission via a communication medium may be performed.
  • FIG. 18 is a flowchart showing a processing procedure of the authentication encryption unit 1610 according to this embodiment. This flowchart is executed by the CPU 910 in FIG. 10 using the RAM 940, and implements the functional configuration unit in FIG. In FIG. 18, steps similar to those in FIG. 11 are denoted by the same step numbers and description thereof is omitted. Further, the processing sequence of authentication encryption is not limited to FIG.
  • step S1703 the authentication encryption unit 1610 generates a keyed hash value H from the plaintext M, performs an exclusive OR operation on the obtained one-block keyed hash value H and the initial vector N, and generates a masked initial value. Let it be a vector U.
  • step S1705 the authentication encryption unit 1610 performs common key block encryption on the masked initial vector U to obtain a second part (left end block) CL of the ciphertext.
  • step S1707 the authentication encryption unit 1610 obtains a pseudo-random number sequence V with the second partial CL as an input.
  • step S1709 the authentication encryption unit 1610 performs an exclusive OR operation on the pseudo-random number sequence V and the plaintext M to obtain the first part (block other than the left end) CR of the ciphertext.
  • FIG. 19 is a block diagram illustrating a functional configuration of the authentication decryption unit 1820 as the information processing apparatus according to the present embodiment.
  • the same functional components as those in FIG. 12 are denoted by the same reference numerals, and description thereof is omitted.
  • the authentication decryption unit 1820 includes a ciphertext input unit 1101, a keyed hash unit 1102, a pseudo random number generation unit 1103, a common key block decryption unit 1104, an initial vector check unit 1105, a plaintext output unit 1106, Is provided.
  • the ciphertext C is input by the ciphertext input unit 1101, and is separated into the second part (left end block) CL and the first part (all blocks other than the left end) CR of the ciphertext C and output.
  • the pseudo random number generation unit 1103 receives the second part CL and outputs a pseudo random number sequence V. Then, the pseudo-random number sequence V and the first part CR are exclusive-ORed to obtain a plaintext M candidate.
  • the keyed hash unit 1102 receives the plaintext M and outputs a hash value H.
  • the common key block decryption unit 1104 outputs the result of decrypting the second part CL as an initial vector U with mask. Then, the initial vector U with the mask and the hash value H are exclusive-ORed to decode the initial vector N.
  • the initial vector check unit 1105 compares the initial vector expected value N * and the decoded initial vector N, and the updated initial vector expected value N * new and the binary verification result B according to the comparison result. (ACK or NACK) is output.
  • FIG. 20 is a flowchart showing a processing procedure of the authentication decryption unit 1820 according to this embodiment. This flowchart is executed by the CPU 1410 of FIG. 15 using the RAM 1440, and implements the functional configuration unit of FIG. In FIG. 20, the same steps as those in FIG. 16 are denoted by the same step numbers and description thereof is omitted. Further, the processing order of authentication decryption is not limited to FIG.
  • step S1903 the authentication decryption unit 1820 divides the input ciphertext C into a second part (leftmost block) CL and a first part (all blocks other than the leftmost) CR, and inputs the second part CL. As a result, a pseudo-random number sequence V is obtained.
  • step S1905 the authentication decryption unit 1820 performs an exclusive OR operation on the pseudo random number sequence V and the first part CR to obtain a decryption result plaintext M candidate.
  • the authentication decryption unit 1820 generates a keyed hash value H from the plaintext M candidates in step S1907.
  • step S1909 the authentication decryption unit 1820 obtains an exclusive OR of the masked initial vector U obtained by decrypting the second partial CL with the common key block and the hash value H, and decrypts the initial vector N.
  • the authentication encoding and the authentication decoding are separately described.
  • a bidirectional information processing apparatus that performs both the authentication encoding and the authentication decoding as illustrated in FIG. In that case, it is not necessary to provide redundant configuration units or modules that can be shared by authentication encoding and authentication decoding.
  • the ciphertext length relative to the plaintext length can be obtained by setting the block cipher once and multiplying the finite field GF (2 n ) once, or block cipher twice. It is in the point which can implement
  • variable-length input and fixed-length output functions used in the keyed hash part are calculated using n-bit internal states such as “CMAC” of the document CMAC and “Poly1305” of the document Poly. May be possible.
  • CMAC n-bit internal states
  • the variable-length input and fixed-length output functions used in the keyed hash part are calculated using n-bit internal states such as “CMAC” of the document CMAC and “Poly1305” of the document Poly.
  • the present invention can also be applied to uses such as encryption and message authentication in wireless or wired data communication, and protection of communication between a wireless sensor device and an information collection server.
  • the present invention may be applied to a system composed of a plurality of devices, or may be applied to a single device. Furthermore, the present invention can also be applied to a case where a control program that realizes the functions of the embodiments is supplied directly or remotely to a system or apparatus. Therefore, in order to realize the functions of the present invention on a computer, a program installed on the computer, a medium storing the program, and a WWW (World Wide Web) server that downloads the program are also included in the scope of the present invention. . In particular, at least a non-transitory computer readable medium storing a program for causing a computer to execute the processing steps included in the above-described embodiments is included in the scope of the present invention.
  • (Supplementary note 1) Plain text input means for inputting plain text;
  • Initial vector generating means for generating an initial vector;
  • a common key block encryption means for encrypting the initial vector and generating an encrypted initial vector;
  • a pseudorandom number generation means for generating a pseudorandom number sequence having the same length as the plaintext, using the encrypted initial vector as input;
  • a keyed hash means for generating a hash value by inputting a first part of a ciphertext obtained by exclusive ORing the pseudorandom number sequence and the plaintext;
  • a ciphertext output unit that concatenates and outputs the second part of the ciphertext obtained by exclusive ORing the hash value and the encrypted initial vector and the first part;
  • An information processing apparatus comprising:
  • the initial vector generating means generates an arbitrary fixed value at first, and after the second time, generates a value obtained by adding 1 to the value of the initial vector generated immediately before, thereby overlapping with past values.
  • the information processing apparatus according to appendix 1, wherein the initial vector is generated so that there is no error.
  • the said common key block encryption means encrypts the said initial vector of 1 block with the encryption function of a common key block cipher, and outputs the encrypted initial vector of the same length to additional remark 1 or 2
  • the pseudo-random number generation means is configured to generate one block of the encrypted data using a pseudo-random function having a fixed-length input and a variable-length output in a modified counter mode (modified counter mode) or a modified OFB mode (modified OFB mode)
  • a modified counter mode modified counter mode
  • a modified OFB mode modified OFB mode
  • the keyed hash means may be configured such that the first part is generated by a CMAC (cipher-based message authentication code) algorithm using block cipher or a method of combining a polynomial hash over a finite field and block cipher encryption.
  • CMAC cipher-based message authentication code
  • the information processing apparatus according to any one of appendices 1 to 4, wherein the hash value is output as an input.
  • Plain text input means for inputting plain text;
  • Initial vector generating means for generating an initial vector;
  • a keyed hash means for generating a hash value using the plaintext as input;
  • a common key block encryption unit that encrypts a masked initial vector obtained by exclusive ORing the initial vector and the hash value, and generates a second part of a ciphertext;
  • Pseudo-random number generation means for generating a pseudo-random number sequence having the same length as the plaintext, using the second part as an input;
  • a ciphertext output means for concatenating the first part of the ciphertext obtained by exclusive ORing the pseudorandom number sequence and the plaintext and the second part, and outputting the result as ciphertext;
  • An information processing apparatus comprising:
  • the initial vector generation means generates an arbitrary fixed value at first, and after the second time, generates a value obtained by adding 1 to the value of the initial vector generated immediately before, thereby overlapping with past values.
  • the information processing apparatus according to appendix 7, wherein the initial vector is generated so that there is no error.
  • the keyed hash means inputs the plaintext by a CMAC (cipher-based message authentication code) algorithm using block cipher or a method combining a polynomial hash over a finite field and block cipher encryption.
  • CMAC cipher-based message authentication code
  • the information processing apparatus according to appendix 7 or 8, which outputs the hash value as:
  • Said common key block encryption means encrypts said masked initial vector with the encryption function of a common key block cipher, and outputs said 2nd part, Any one of additional marks 7 thru
  • the said pseudorandom number generation means uses the said 2nd part by the pseudo-random function of fixed length input and variable length output of a modified counter mode (modified
  • the information processing apparatus according to any one of appendices 7 to 10, which generates the pseudo-random number sequence having the same length as the plaintext.
  • (Supplementary note 12) Plain text input step for inputting plain text; An initial vector generation step for generating an initial vector; Using the plaintext as input, a keyed hash step for generating a hash value; A common key block encryption step of generating a second part of ciphertext by encrypting a masked initial vector obtained by exclusive ORing the initial vector and the hash value; A pseudo-random number generation step for generating a pseudo-random number sequence having the same length as the plaintext by using the second part as an input; A ciphertext output step of concatenating the first part and the second part of the ciphertext obtained by exclusive ORing the pseudorandom number sequence and the plaintext, and outputting the ciphertext as a ciphertext; Control program for information processing apparatus for causing computer to execute
  • Ciphertext input means for inputting ciphertext and outputting the ciphertext separately into a first part and a second part;
  • a keyed hash means for generating a hash value using the first part as an input;
  • Pseudo-random number generation means for generating a pseudo-random number sequence having the same length as that of the first part, using an encrypted initial vector obtained by exclusive ORing the hash value and the second part of the ciphertext;
  • a common key block decrypting means for decrypting the encrypted initial vector with a common key block and generating an initial vector;
  • Initial vector checking means for inputting the decoded initial vector and an initial vector expected value and checking whether or not the decoded initial vector and the initial vector expected value match;
  • Plaintext output means for outputting a plaintext obtained by exclusive ORing the pseudorandom number sequence and the first portion when the decoded initial vector and the initial vector expected value match;
  • An information processing apparatus comprising:
  • the initial vector checking means includes: If the decrypted initial vector and the initial vector expected value match, output a signal allowing the output of the plaintext, and update the initial vector expected value to a value expected for the next ciphertext, If the decoded initial vector and the initial vector expected value do not match, output a signal to stop the output of the plaintext, and maintain the initial vector expected value, 15.
  • the information processing apparatus according to appendix 13 or 14, wherein the plaintext output means outputs the plaintext when receiving the permission signal and outputs an error message when receiving the stop signal.
  • Ciphertext input means for inputting ciphertext and outputting the ciphertext separately into a first part and a second part;
  • Pseudo-random number generation means for generating a pseudo-random number sequence having the same length as the first part, using the second part as an input;
  • Symmetric key block decrypting means for decrypting the second part with the symmetric key block and generating a masked initial vector;
  • a keyed hashing means for generating a hash value, using as input a plaintext obtained by exclusive ORing the pseudorandom number sequence and the first part;
  • Input an initial vector decoded by exclusive ORing the hash value and the initial vector with mask, and an initial vector expected value, and whether the decoded initial vector and the initial vector expected value match
  • Initial vector checking means for checking whether or not, Plaintext output means for outputting the plaintext when the decrypted initial vector matches the initial vector expected value;
  • An information processing apparatus comprising:
  • the initial vector checking means includes: If the decrypted initial vector and the initial vector expected value match, output a signal allowing the output of the plaintext, and update the initial vector expected value to a value expected for the next ciphertext, If the decoded initial vector and the initial vector expected value do not match, output a signal to stop the output of the plaintext, and maintain the initial vector expected value, 18.
  • the information processing apparatus according to appendix 17, wherein the plaintext output means outputs the plaintext when receiving the permission signal and outputs an error message when receiving the stop signal.
  • a keyed hash step for generating a hash value using, as input, a plaintext obtained by exclusive ORing the pseudorandom number sequence and the first part;
  • Input an initial vector decoded by exclusive ORing the hash value and the initial vector with mask, and an initial vector expected value, and whether the decoded initial vector and the initial vector expected value match
  • Common key block encryption means for generating an encrypted initial vector by encrypting an initial vector with a common key block;
  • Common key block decryption means for generating an initial vector by block decrypting the encrypted initial vector;
  • a pseudo-random number generation means for generating a pseudo-random number sequence having the same length as the plaintext, using the encrypted encrypted initial vector as an input;
  • a first conversion means for converting between the plaintext and the first portion of the ciphertext by exclusive OR with the pseudorandom number sequence;
  • a keyed hash means for generating a hash value by inputting a part of the ciphertext;
  • a second conversion means for mutually converting between the encrypted initial vector and the second part of the ciphertext by exclusive OR with the hash value; With A second part of the ciphertext obtained by exclusive ORing the encrypted initial vector and the hash value, and a first part of the ciphertext obtained by performing an exclusive OR of the input plaintext and the pseudorandom number sequence.
  • An authentication encryption system including an authentication encryption device and an authentication decryption device,
  • the authentication encryption device includes: Plaintext input means for inputting plaintext; Initial vector generating means for generating an initial vector; A common key block encryption means for encrypting the initial vector and generating an encrypted initial vector; A pseudorandom number generation means for generating a pseudorandom number sequence having the same length as the plaintext, using the encrypted initial vector as input; A keyed hash means for generating a hash value by inputting a first part of a ciphertext obtained by exclusive ORing the pseudorandom number sequence and the plaintext; A ciphertext output unit that concatenates and outputs the second part of the ciphertext obtained by exclusive ORing the hash value and the encrypted initial vector and the first part; With The authentication decryption device Ciphertext input means for inputting the ciphertext and outputting the ciphertext separately into the first part and the second part; A keyed hash means for generating a hash value using
  • An authentication encryption system including an authentication encryption device and an authentication decryption device,
  • the authentication encryption device includes: Plaintext input means for inputting plaintext; Initial vector generating means for generating an initial vector; A keyed hash means for generating a hash value using the plaintext as input; A common key block encryption unit that encrypts a masked initial vector obtained by exclusive ORing the initial vector and the hash value, and generates a second part of a ciphertext; Pseudo-random number generation means for generating a pseudo-random number sequence having the same length as the plaintext, using the second part as an input; A ciphertext output means for concatenating the first part of the ciphertext obtained by exclusive ORing the pseudorandom number sequence and the plaintext and the second part, and outputting the result as ciphertext; With The authentication decryption device Ciphertext input means for inputting the ciphertext and outputting the ciphertext separately into the first part and the second part
  • An authentication encryption method for generating ciphertext based on plaintext and an initial vector generated so as not to overlap with past values Based on the initial vector, common key block encryption is performed to generate an encrypted initial vector, In order to generate the first part of the ciphertext from the plaintext, a pseudorandom number that is exclusive ORed with the plaintext is generated based on the encrypted initial vector, In order to generate the second part of the ciphertext from the initial vector, in addition to the common key block encryption of the initial vector in the generation of the encrypted initial vector, a keyed hash value that is exclusive ORed with the initial vector is , Generated based on the plaintext, Authentication encryption method.
  • An authentication decryption method for decrypting, from a ciphertext, a plaintext that is a source of the ciphertext and an initial vector used for generating the ciphertext In order to decrypt the plaintext from the first portion of the ciphertext, a pseudorandom number that is exclusive ORed with the first portion is generated based on the second portion of the ciphertext, Perform common key block decryption based on the second part of the ciphertext, In order to decrypt the initial vector from the second part of the ciphertext, in addition to the common key block decryption of the second part in the common key block decryption, a keyed hash value that is exclusive ORed with the second part, Generating based on the first part; Authentication decryption method.
  • Supplementary note 26 A computer-readable non-transitory recording medium in which the control program according to any one of Supplementary notes 6, 12, 16, and 20 is recorded.

Landscapes

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

Abstract

 本発明は、平文長に対する暗号文長の帯域(長さ)の増加が小さい認証暗号を、効率よく実現する情報処理装置を提供する。その情報処理装置は、平文を入力する平文入力部と、初期ベクトルを生成する初期ベクトル生成部と、初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化部と、暗号化初期ベクトルを入力として、平文と同じ長さの擬似乱数系列を生成する擬似乱数生成部と、擬似乱数系列と平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュ部と、ハッシュ値と暗号化初期ベクトルとを排他的論理和した暗号文の第2部分と第1部分とを連結して暗号文として出力する暗号文出力部と、を備える。

Description

認証暗号化方法、認証復号方法および情報処理装置
 本発明は、認証暗号化方法、認証復号方法、情報処理装置、制御プログラム及びその制御プログラムを記録する記録媒体に関する。
 様々な暗号化に関する技術が知られている。
 特許文献1は、暗号化方法を開示する。その暗号化方法において、ブロック暗号モードの操作は、任意のブロック長のブロック暗号を実装し、常に入力の平文と同じサイズで出力暗号文を提供する。そのモードは、ディスク・ブロックの暗号化やなんらかのネットワークプロトコルなどのデータの拡張を許可されないシステムにおいて、可能な限り最高のセキュリティを提供することができる。そのモードは、暗号文ブロックを再配置することによって暗号文を操作する攻撃から保護するために使用することができる追加の入力を受け付ける。ブロック暗号のための演算のガロア/カウンタモードからの汎用ハッシュ関数は、ハードウェアとソフトウェアの効率のために実施形態で使用することができる。
 また、特許文献2は、データ配信装置を開示する。そのデータ配信装置は、暗号化データから関連付けられた非暗号化データの改ざん検知を可能とし、改ざんが認められた場合には、暗号化データの正常な復号を不能とする。そのデータ配信装置は、入力データAと非暗号化データBとが入力されて、非暗号化データBから算出したハッシュ値を用いて入力データAのブロック暗号処理を行ない、暗号化データE(A)と非暗号化データBとを配信する。そのデータ配信装置は、データ圧縮手段と、ブロック暗号処理手段と、データ配信手段とを含む。データ圧縮手段は、非暗号化データBから、ハッシュ関数を用いてハッシュ値を算出する。ブロック暗号処理手段は、ハッシュ値を初期ベクトルとして、予め定められた利用モードにより、入力データAをブロック暗号処理して暗号化データE(A)を生成する。データ配信手段は、このブロック暗号処理手段が生成した暗号化データE(A)と非暗号化データBとを多重化して、ヘッダと非暗号化データBと暗号化データE(A)とを配信する。
 特許文献3は、暗号化方法を開示する。その暗号化方法は、平文の変化を広範囲に影響させることで暗号強度を向上させる。その暗号化方法は、以下の構成を有する。第1に、その暗号化方法は、初期ベクター1にDES(Data Encryption Standard)暗号化を施す。第2に、その暗号化方法は、暗号化した初期ベクター1と最初の小ブロック8バイトとで排他的論理和演算を行なう。第3に、その暗号化方法は、この結果にDES暗号化を施す。第4に、その暗号化方法は、その暗号化した結果と次の小ブロックとで排他的論理和演算を行なう。そして、第5に、その暗号化方法は、順次、同様の処理を32回繰り返すことで、256バイトに対する順方向からの連鎖処理を行なう。その後、第6に、その暗号化方法は、逆方向から同様の連鎖処理を行なう。第7に、その暗号化方法は、連鎖の最終小ブロックにDES暗号化を行なう。第8に、その暗号化方法は、その暗号化した結果とこの時の先頭ブロックとで排他的論理和演算を行なう。第9に、その暗号化方法は、256バイト全体をバイト単位で入れ換える。さらに、第10に、その暗号化方法は、フィードバック位置を変えて上記一連の処理を再度実行する。
 認証暗号(AE:Authenticated Encryption)とは、事前に共有された秘密鍵を用いて、平文メッセージに対して暗号化と改ざん検知用の認証タグ計算とを同時に適用する技術である。通信路にAEを適用することにより、盗聴に対する内容の秘匿と、不正な改ざんに対する検知が可能となり、結果として通信内容に対する強力な保護が実現される。
 このような通常の形式の認証暗号化では、平文(plaintext)Mの暗号化により、平文Mと同じ長さの暗号文(ciphertext)Cに加え、初期ベクトルNとタグTとを暗号文Cに連結して送信する必要がある。通常の処理では、初期ベクトルNとタグTも4バイトから32バイト程度の短い値であるが、平文Mも同程度に短い場合などでは初期ベクトルNとタグTとの追加による通信帯域増加を無視することができない。このようなケースは、無線センサネットワークのデバイスなどで頻繁に見受けられ、またそのようなネットワークでは通信帯域が消費電力を左右する重要な要素であるため、帯域削減は重要な課題である。
 また、今までメッセージ認証の機能無しに暗号化を行ってきた通信路に新たにメッセージ認証機能を追加し、全体として認証暗号の機能を達成しようとする場合には、メッセージの長さに関わらずプロトコルへの変更が求められる場合がある。このような場合、実用上の困難を生じることがある。
 このような問題に対する解決方法として、非特許文献1に述べられているAERO(Authenticated Encryption with Replay prOtection)がある。非特許文献1のAEROは、Kを鍵とした可変長入出力の擬似ランダム置換(WPRP:Wide pseudorandom permutation)P_Kを用いて、初期ベクトルNと平文Mとを連結して得られた入力(N,M)に対し、C=P_K(N,M)を全体の出力とするものである。ここで、“P_K”は鍵Kをパラメータとした関数である。暗号文Cの長さは初期ベクトルNと平文Mとの長さの和となる。復号側では共有する鍵Kを用いて、暗号文CへP_Kの逆置換を適用して(N,M)を得たのち、復号された初期ベクトルNが期待する値であるかどうかによって、認証チェックの正否を判定する。
 復号された初期ベクトルNが期待する値であるかどうかを判定するためには、暗号化側が用いるべき初期ベクトルNが復号側にあらかじめ分かっていることが必要となる。これは、初期ベクトルNの更新に関して暗号化側と復号側で同期がとれていれば実現可能である。典型的には、復号側が直前に送られた正規の暗号文の初期ベクトルを記憶していることで達成される。この条件は、復号側でリプレイを検知して排除することが求められているケースでは自然である。
 非特許文献1では、暗号化側が送らなければならない情報は暗号文Cのみであり、この長さは初期ベクトルNと平文Mとの長さの和となるため、暗号化による帯域の増分が初期ベクトルNのみである。したがって、前述の一般的な認証暗号の方式と比べると、タグTの分の帯域を無くすことが可能である。また、WPRPの性質から、リプレイ以外の暗号文を復号すると、結果として得られる平文はそれまで全体がランダムになる。そのため、初期ベクトルが入っていた部分に関して攻撃者が特定の値に制御することは困難となり、復号側が期待する値になる確率は実質的に無視できるほど小さくなる。
 そして、非特許文献1は、特許文献1に開示されるXCB(eXtended CodeBook)モードと呼ばれるブロック暗号利用モードを、WPRPとして用いることを提案している。
米国特許第7,418,100号明細書 特開2011-091494号公報 特開平10-303883号公報
D. McGrew. Authenticated Encryption with Replay prOtection (AERO) https://tools.ietf.org/html/draft-mcgrew-aero-00
 しかしながら、上述した先行技術文献に記載された技術においては、暗号化の効率が悪い場合があるという問題点がある。例えば、上記特許文献1に記載の技術では、128bitのブロック単位の分割を用いる場合、XBCモードではmブロックの平文Mについて3パスの処理で構成されている。最初のパスと最後のパスとはGF(Galois Field)(2128)上の多項式ハッシュ(polynomial hash over GF(2128))であるGHASHを実行する。また、中間のパスは128bitのブロック暗号によるカウンタモード暗号化を実行する。このため、通常の暗号化と比べた負荷は大きい。具体的には、入力1ブロックあたり、ブロック暗号を1回と、GF(2128)上の乗算を2回、要する。すなわち、認証暗号化による帯域増加を抑制できたが、暗号化の効率が悪くなった。
 本発明の目的は、暗号文長の平文長に対する帯域(長さ)の増加が小さい認証暗号を、効率よく実現する技術を提供することにある。
 上記目的を達成するため、本発明の一様態に係る情報処理装置は、
 平文を入力する平文入力手段と、
 初期ベクトルを生成する初期ベクトル生成手段と、
 前記初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化手段と、
 前記暗号化初期ベクトルを入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
 前記擬似乱数系列と前記平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュ手段と、
 前記ハッシュ値と前記暗号化初期ベクトルとを排他的論理和した前記暗号文の第2部分と前記第1部分とを連結して暗号文として出力する暗号文出力手段と、
 を備える。
 上記目的を達成するため、本発明の一様態に係るコンピュータ読み取り可能な非一時的記録媒体は、
 平文を入力する平文入力ステップと、
 初期ベクトルを生成する初期ベクトル生成ステップと、
 前記初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化ステップと、
 前記暗号化初期ベクトルを入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
 前記擬似乱数系列と前記平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュステップと、
 前記ハッシュ値と前記暗号化初期ベクトルとを排他的論理和した前記暗号文の第2部分と前記第1部分とを連結して暗号文として出力する暗号文出力ステップと、
 をコンピュータに実行させる情報処理装置の制御プログラムを記録する。
 上記目的を達成するため、本発明の一様態に係る情報処理装置は、
 平文を入力する平文入力手段と、
 初期ベクトルを生成する初期ベクトル生成手段と、
 前記平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
 前記初期ベクトルと前記ハッシュ値とを排他的論理和したマスク付き初期ベクトルを共通鍵ブロック暗号化し、暗号文の第2部分を生成する共通鍵ブロック暗号化手段と、
 前記第2部分を入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
 前記擬似乱数系列と前記平文とを排他的論理和した前記暗号文の第1部分と前記第2部分とを連結して暗号文として出力する暗号文出力手段と、
 を備える。
 上記目的を達成するため、本発明の一様態に係るコンピュータ読み取り可能な非一時的記録媒体は、
 平文を入力する平文入力ステップと、
 初期ベクトルを生成する初期ベクトル生成ステップと、
 前記平文を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
 前記初期ベクトルと前記ハッシュ値とを排他的論理和したマスク付き初期ベクトルを共通鍵ブロック暗号化し、暗号文の第2部分を生成する共通鍵ブロック暗号化ステップと、
 前記第2部分を入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
 前記擬似乱数系列と前記平文とを排他的論理和した前記暗号文の第1部分と前記第2部分とを連結して暗号文として出力する暗号文出力ステップと、
 をコンピュータに実行させる情報処理装置の制御プログラムを記録する。
 上記目的を達成するため、本発明の一様態に係る情報処理装置は、
 暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力手段と、
 前記第1部分を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
 前記ハッシュ値と前記暗号文の第2部分とを排他的論理和して得た暗号化初期ベクトルを入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
 前記暗号化初期ベクトルを共通鍵ブロック復号して、初期ベクトルを生成する共通鍵ブロック復号手段と、
 前記復号された初期ベクトルと初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
 前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を出力する平文出力手段と、
 を備える。
 上記目的を達成するため、本発明の一様態に係るコンピュータ読み取り可能な非一時的記録媒体は、
 暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力ステップと、
 前記第1部分を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
 前記ハッシュ値と前記第2部分とを排他的論理和して得た暗号化初期ベクトルを入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
 前記暗号化初期ベクトルを共通鍵ブロック復号して、初期ベクトルを生成する共通鍵ブロック復号ステップと、
 前記生成された初期ベクトルと初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査ステップと、
 前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を出力する平文出力ステップと、
 をコンピュータに実行させる情報処理装置の制御プログラムを記録する。
 上記目的を達成するため、本発明の一様態に係る情報処理装置は、
 暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力手段と、
 前記第2部分を入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
 前記第2部分を共通鍵ブロック復号し、マスク付き初期ベクトルを生成する共通鍵ブロック復号手段と、
 前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
 前記ハッシュ値と前記マスク付き初期ベクトルとを排他的論理和して復号された初期ベクトルと、初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
 前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記平文を出力する平文出力手段と、
 を備える。
 上記目的を達成するため、本発明の一様態に係るコンピュータ読み取り可能な非一時的記録媒体は、
 暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力ステップと、
 前記第2部分を入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
 前記第2部分を共通鍵ブロック復号し、マスク付き初期ベクトルを生成する共通鍵ブロック復号ステップと、
 前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
 前記ハッシュ値と前記マスク付き初期ベクトルとを排他的論理和して復号された初期ベクトルと、初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査ステップと、
 前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記平文を出力する平文出力ステップと、
 をコンピュータに実行させる。
 上記目的を達成するため、本発明の一様態に係る認証暗号化方法は、
 平文と、過去の値と重複がないように生成された初期ベクトルとに基づいて暗号文を生成する認証暗号化方法であって、
 前記初期ベクトルを元に共通鍵ブロック暗号化を行ない、暗号化初期ベクトルを生成し、
 前記平文から前記暗号文の第1部分を生成するため、前記平文と排他的論理和する擬似乱数を、前記暗号化初期ベクトルを元に生成し、
 前記初期ベクトルから前記暗号文の第2部分を生成するため、前記暗号化初期ベクトルの生成における前記初期ベクトルの共通鍵ブロック暗号化に加えて前記初期ベクトルと排他的論理和する鍵付きハッシュ値を、前記平文を元に生成する。
 上記目的を達成するため、本発明の一様態に係る認証復号方法は、
 暗号文から、前記暗号文の元となった平文と、前記暗号文の生成に使用された初期ベクトルとを復号する認証復号方法であって、
 前記暗号文の第1部分から前記平文を復号するため、前記第1部分と排他的論理和する擬似乱数を、前記暗号文の第2部分を元に生成し、
 前記暗号文の第2部分を元に共通鍵ブロック復号を行ない、
 前記暗号文の第2部分から前記初期ベクトルを復号するため、前記共通鍵ブロック復号における前記第2部分の共通鍵ブロック復号に加えて前記第2部分と排他的論理和する鍵付きハッシュ値を、前記第1部分を元に生成する。
 本発明によれば、暗号文長の平文長に対する帯域(長さ)の増加が小さい認証暗号を、効率よく実現することができる。
本発明の第1実施形態に係る情報処理装置の構成を示すブロック図である。 本発明の第2実施形態に係る認証暗号化システムの構成を示す図である。 第2実施形態に係る情報処理装置としての認証暗号化部の機能構成を示すブロック図である。 前提技術に係るXCBモードを用いた認証暗号化部の機能構成を示すブロック図である。 第2実施形態に係る共通鍵ブロック暗号化部の構成例を示す図である。 第2実施形態に係る他の共通鍵ブロック暗号化部の構成例を示す図である。 第2実施形態に係る擬似乱数生成部の構成例を示す図である。 第2実施形態に係る鍵付きハッシュ部の構成例を示す図である。 第2実施形態に係る他の鍵付きハッシュ部の構成例を示す図である。 第2実施形態に係る認証暗号化部のハードウェア構成を示すブロック図である。 第2実施形態に係る認証暗号化部の処理手順を示すフローチャートである。 第2実施形態に係る情報処理装置としての認証復号部の機能構成を示すブロック図である。 第2実施形態に係る共通鍵ブロック復号部の構成例を示す図である。 第2実施形態に係る初期ベクトル検査部の構成例を示す図である。 第2実施形態に係る認証復号部のハードウェア構成を示すブロック図である。 第2実施形態に係る認証復号部の処理手順を示すフローチャートである。 本発明の第3実施形態に係る情報処理装置としての認証暗号化部の機能構成を示すブロック図である。 第3実施形態に係る認証暗号化部の処理手順を示すフローチャートである。 第3実施形態に係る情報処理装置としての認証復号部の機能構成を示すブロック図である。 第3実施形態に係る認証復号部の処理手順を示すフローチャートである。
 以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
 [第1実施形態]
 本発明の第1実施形態としての情報処理装置100について、図1を用いて説明する。情報処理装置100は、平文をブロック暗号化して暗号文を生成する装置である。
 図1に示すように、情報処理装置100は、平文入力部101と、初期ベクトル生成部102と、共通鍵ブロック暗号化部103と、擬似乱数生成部104と、鍵付きハッシュ部105と、暗号文出力部106と、を含む。平文入力部101は、平文111を入力する。初期ベクトル生成部102は、初期ベクトル112を生成する。共通鍵ブロック暗号化部103は、初期ベクトル112を共通鍵ブロック暗号化して暗号化初期ベクトル113を生成する。擬似乱数生成部104は、暗号化初期ベクトル113を入力として、平文111と同じ長さの擬似乱数系列114を生成する。鍵付きハッシュ部105は、擬似乱数系列114と平文111とを排他的論理和(107)した暗号文の第1部分117を入力としてハッシュ値115を生成する。暗号文出力部106は、ハッシュ値115と暗号化初期ベクトル113とを排他的論理和(108)した暗号文の第2部分118と第1部分117とを連結して暗号文116として出力する。
 本実施形態によれば、入力長1ブロックにつきブロック暗号を1回、有限体GF(2n)乗算を1回により、平文長に対する暗号文長の帯域(長さ)の増加が小さい認証暗号を、効率よく実現することができる。
 [第2実施形態]
 次に、本発明の第2実施形態に係る認証暗号化システムについて説明する。本実施形態に係る認証暗号化システムは、認証暗号化を行なう情報処理装置、認証復号を行なう情報処理装置、または、認証暗号化および認証復号を行なう情報処理装置を含む。
 《認証暗号化システムの構成》
 図2は、本実施形態に係る認証暗号化システム200の構成を示す図である。
 図2の認証暗号化システム200は、情報処理装置202や情報処理装置203と、情報処理装置201や情報処理装置205と含む。情報処理装置202や情報処理装置203は、認証暗号化部210を含み、平文を認証暗号化した暗号文を、ネットワーク230を介して送信する情報処理装置201や情報処理装置205は、認証復号部220を含み、ネットワーク230を介して受信した暗号文を平文に復号する。
認証暗号化システム200は、さらに、認証暗号化部210および認証復号部220を含み、平文を認証暗号化した暗号文を、ネットワーク230を介して送信すると共に、ネットワーク230を介して受信した暗号文を平文に復号する情報処理装置204を含む。
 なお、図2においては、情報処理装置を認証暗号化部210や認証復号部220、その外の機能を有する装置として図示したが、認証暗号化部210や認証復号部220を情報処理装置としての認証暗号化装置や認証復号装置と考えることもできる。また、図2においては、認証暗号を、ネットワークを介した情報処理装置間の通信に適用する場合を図示した。しかしながら、本実施形態の認証暗号は、情報処理装置とLAN(Local Area Network)を介したデバイスとの間、あるいは、情報処理装置とデバイス(プリンタやディスプレイ、記憶媒体)との間、あるいは、デバイス間、に適用され、同様の効果を奏する。
 《前提技術》
 本実施形態の認証暗号化システム200、認証暗号化部210や認証復号部220を詳細に説明する前に、その前提となる技術について説明する。
 (認証暗号の基本)
 最初に、認証暗号(AE)の基本的な入出力を示す。秘密鍵Kを共有する2者“Alice”と“Bob”を考え、AliceからBobへ認証暗号(AE)による暗号化を用いて通信するものとする。そして、認証暗号(AE)の暗号化関数をAEnc、復号関数をADecとする。また、暗号化したい平文をMとし、さらに初期ベクトルNと呼ばれる変数を導入する。
 まず、Aliceが初期ベクトルNを生成後、(C,T)=AEnc_K(N,M)という処理を行う。ここで、“AEnc_K”は鍵Kをパラメータとした関数、Cは暗号文、Tはタグと呼ばれる、固定長の改ざん検出用の変数である。Aliceは(N,C,T)をBobへ送信する。
 Bobが受信した情報を(N',C',T')とすると、Bobは復号処理としてADec_K(N',C',T')を計算する。もし通信の途中に改ざんがあり、(N',C',T')≠(N,C,T)となっていた場合、ADec_K(N',C',T')の結果は改ざんがあったことを示すエラーメッセージとなる。もし改ざんがなく、(N',C',T')=(N,C,T)であれば、ADec_K(N',C',T')=Mとなり、平文Mが正しく復号される。
 このような方式の一例として、CCM(Counter with CBC-MAC(cipher block chaining message authentication code))や、GCM(Galois/Counter Mode)がある。CCMについては、“NIST Special Publication 800-38C Recommendation for Block Cipher Modes of Operation: The CCM Mode for Authentication and Confidentiality http://csrc.nist.gov/publications/nistpubs/800-38C/SP800-38C_updated-July20_2007.pdf”を参照されたい。以下、この文献を“文献CCM”として参照する。また、GCMについては、“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”を参照されたい。以下、この文献を“文献GCM”として参照する。
 また、上記の処理においては通常暗号化で初期ベクトルNが偶然一致してしまわないようにすることが重要であり、このために暗号化側は何らかの状態変数を保持し、初期ベクトルの一致を防ぐ。これは、典型的には、状態変数として直前に使った初期ベクトルNを記憶しておき、毎回初期ベクトルNをインクリメントすることで実現される。
 ところが、上記通常の形式の認証暗号化では、平文Mの暗号化により、平文Mと同じ長さの暗号文Cに加え、初期ベクトルNとタグTとを暗号文Cに連結して送信する必要がある。通常の処理では、初期ベクトルNもタグTも4バイトから32バイト程度の短い値であるが、平文Mも同程度に短い場合などでは初期ベクトルNとタグTとの追加による通信帯域増加を無視することができない。このようなケースは、無線センサネットワークのデバイスなどで頻繁に見受けられる。そのようなネットワークでは通信帯域が消費電力を左右する重要な要素であるため、帯域削減は重要な課題である。また、今までメッセージ認証の機能無しに暗号化を行ってきた通信路に新たにメッセージ認証機能を追加し、全体として認証暗号の機能を達成しようとする場合には、メッセージの長さに関わらずプロトコルへの変更が求められる場合がある。このような場合、実用上の困難を生じることがある。
 (帯域削減手法)
 このような帯域問題に対する解決方法として、上記非特許文献1がある。非特許文献1のAEROは、Kを鍵とした可変長入出力の擬似ランダム置換(WPRP)P_Kを用いて、初期ベクトルNと平文Mとを連結して得られた入力(N,M)に対し、C=P_K(N,M)を全体の出力とするものである。暗号文Cの長さは初期ベクトルNと平文Mとの長さの和となる。復号側では共有する鍵Kを用いて、暗号文CへP_Kの逆置換を適用し(N,M)を得たのち、復号された初期ベクトルNが期待する値であるかどうかによって、認証チェックの正否を判定する。
 復号された初期ベクトルNが期待する値であるかどうかを判定するためには、暗号化側が用いるべき初期ベクトルNが復号側にあらかじめ分かっていることが必要となる。これは、初期ベクトルNの更新に関して暗号化側と復号側で同期がとれていれば実現可能である。典型的には、復号側が直前に送られた正規の暗号文の初期ベクトルを記憶していることで達成される。この条件は、復号側でリプレイを検知して排除することが求められているケースでは自然である。
 このように、AERO方式では、暗号化側が送らなければならない情報は暗号文Cのみであり、この長さは初期ベクトルNと平文Mとの長さの和となるため、暗号化による帯域の増分が初期ベクトルのみである。したがって、前述の一般的な認証暗号の方式と比べると、タグTの分の帯域を無くすことが可能である。また、WPRPの性質から、リプレイ以外の暗号文を復号すると、結果として得られる平文はそれまで全体がランダムになる。このため、初期ベクトルが入っていた部分に関して攻撃者が特定の値に制御することは困難となり、復号側が期待する値になる確率は実質的に無視できるほど小さくなる。
 (XCBモードを用いた認証暗号化)
 非特許文献1のAERO方式は、特許文献1のようなXCBモードと呼ばれるブロック暗号利用モードを、WPRPとして用いることを提案している。128bitブロック単位の分割を用いる場合、XCBモードはmブロックの平文Mについて3パスの処理で構成されている。
 図4は、前提技術に係るXCBモードを用いた認証暗号化部400の機能構成を示すブロック図である。
 共通鍵暗号化部E401で初期ベクトルNを暗号化処理した第1中間値は、最初のパスであるGHash402により平文Mから生成された多項式ハッシュと排他的論理和されて、第2中間値が生成される。第2中間値は、中間のパスであるカウンタモード暗号化403によりブロック暗号化される。そして、ブロック暗号化された結果は、平文Mと排他的論理和されて、暗号文の第1部分CRが生成される。一方、第2中間値は、最後のパスであるGHash404により第1部分CRから生成された多項式ハッシュと排他的論理和されて、第3中間値が生成される。第3中間値は、共通鍵復号部D405で復号処理されて、暗号文の第2部分CLが生成される。
 ここで、最初のパスと最後のパスとは、GF(2128)上の多項式ハッシュ(polynomial hash over GF(2128))であるGHash402、404を実行する。また、中間のパスは、128bitブロック暗号によるカウンタモード暗号化403を実行する。そのため、通常の暗号化と比べた負荷は大きい。具体的には、入力1ブロック当たり、ブロック暗号を1回と、GF(2128)上の乗算を2回とを、要することになる。
 本実施形態においては、平文長に対する暗号文長の帯域(長さ)の増加が小さい認証暗号を、効率よく実現できるよう工夫した。以下、本実施形態の認証暗号化システム200における、認証暗号化部210および認証復号部220について詳細に説明する。以下、特に断りのない限り、1ブロックの長さをnビットとする。
 《認証暗号化部の機能構成》
 図3は、本実施形態に係る情報処理装置としての認証暗号化部210の機能構成を示すブロック図である。
 認証暗号化部210は、平文入力部311と、初期ベクトル生成部312と、共通鍵ブロック暗号化部313と、擬似乱数生成部314と、鍵付きハッシュ部315と、暗号文出力部316とを備える。なお、認証暗号化部210は、CPU(Central Processing Unit)とメモリとディスクにより実現可能であり、各機能構成部は、プログラムをディスクに格納しておき、このプログラムをCPU上で動作させることにより実現することもできる。
 次に、認証暗号化部210を構成する各機能構成部について説明する。
 (平文入力部)
 平文入力部311は、対象となる平文Mを入力する機能構成部である。これは例えば、キーボードなどの文字入力部、あるいは、平文を記憶する記憶媒体からの読み出し、あるいは、通信媒体を介した受信などにより実現される。
 (初期ベクトル生成部)
 初期ベクトル生成部312は、過去に生成した値とは異なる初期ベクトルを生成する機能構成部である。例えば簡単な構成としては、最初は任意の固定値を出力し、2回目以降は直前に生成した初期ベクトルの値を記憶しておき、これに“1”を加えた値を出力する構成とすればよい。この場合、最後に用いた初期ベクトルをNとするとき、新たな初期ベクトルN'=N+1となる。このとき、更新処理は、初期ベクトル更新関数f(N)=N+1を用いて表現できる。初期ベクトル生成においては、時間情報などの、その他の補助情報を組み合わせて生成してもよいが、この場合は補助情報が暗号化と復号側とで同期がとれているものとする。簡単のため、以降、更新は補助情報なしで、直前に用いた初期ベクトルのみから次の初期ベクトルが定まるものとするが、一般性を失うものではない。また初期ベクトルNはnビットであるものとするが、仮に短い場合はブロック単位となるよう適当なパディングを行うものとする。
 (共通鍵ブロック暗号化部)
 共通鍵ブロック暗号化部313は、1ブロックの初期ベクトルNを暗号化し、同じ長さの暗号化された初期ベクトルSを出力する機能構成部である。例えば、共通鍵ブロック暗号化部313は、ブロック暗号の暗号化関数により実現される。
 図5は、本実施形態に係る共通鍵ブロック暗号化部313の構成例を示す図である。図5は、SPN
(substitution permutation network)構造による共通鍵ブロック暗号化の場合である。
 図5において、“Su”は換字処理(substitution)を表わし、“Pe”は転置処理(permutation)を表わす。なお、詳細には、“NIST, "Advanced Encryption Standard (AES) ", FIPS PUB 197,http://csrc.nist.gov/publications/fips/index.html”を参照されたい。
 図6は、本実施形態に係る他の共通鍵ブロック暗号化部613の構成例を示す図である。図6は、Feistel構造による共通鍵ブロック暗号化の場合である。なお、詳細には、“青木、市川、神田、松井、盛合、中嶋、時田、「128ビットブロック暗号Camelliaアルゴリズム仕様書(第2.0版)」http://info.isl.ntt.co.jp/crypt/camellia/dl/01jspec.pdf”を参照されたい。
 ここで、図5のSPN構造においては、暗号化と復号とで異なる処理となるが、図6のFeistel構造においては、暗号化と復号とが同様の処理となる。なお、共通鍵ブロック暗号化部313の構成は、図5や図6に限定されるものではない。
 (擬似乱数生成部)
 擬似乱数生成部314は、1ブロックの暗号化初期ベクトルSを用いて、平文Mと同じ長さの擬似乱数系列Vを生成する機能構成部である。具体的には、固定長入力、可変長出力の擬似ランダム関数である。このような関数は、例えばブロック暗号を用いる場合、修正カウンタモード(modified counter mode)や修正OFB(Output-FeedBack)モード(modified OFB mode)で生成することが可能である。
 図7は、本実施形態に係る擬似乱数生成部314の構成例を示す図である。図7においては、上段が基本のカウンタモードとOFBモードの構成であり、下段が修正カウンタモードと修正OFBモードの構成である。
 なお、詳細には、“Henri Gilbert. The Security of "One-Block-to-Many" Modes of Operation. Fast Software Encryption 2003, LNCS 2887 Springer 2003, ISBN 3-540-20449-0.”を参照されたい。以下、この文献を“文献Gil”として参照する。
 擬似乱数生成部314において、修正カウンターモードや修正OFBモードを利用した場合、ブロック暗号のみで実現することが可能である。さらに、修正カウンターモードを利用した場合、各出力ブロック生成において並列処理が可能となる。
 なお、擬似乱数生成部314としては、初期ベクトル付きのストリーム暗号を利用することも可能である。詳細には、“The eSTREAM Portfolio,http://www.ecrypt.eu.org/documents/D.SYM.10-v1.pdf”を参照された。以下、この文献を“文献eSTREAM”として参照する。
 (鍵付きハッシュ部)
 鍵付きハッシュ部315は、平文Mと、擬似乱数生成部314の出力する擬似乱数系列Vとの排他的論理和である暗号文の第1部分CRを入力として、鍵付きハッシュ値Hを出力する機能構成部である。具体的には、鍵付きハッシュ部315は、可変長の入力から1ブロックの出力を得る擬似ランダム関数である。例えば、ブロック暗号を用いる場合、CMAC(Cipher-based Message Authentication Code)や、有限体上の多項式ハッシュとブロック暗号の暗号化とを組み合わせる方法などがある。すなわち、多項式ハッシュをF(鍵をL)、ブロック暗号の暗号化関数をE(鍵をK)とすると、入力Xについて、E_K(F_L(X))を出力とすればよい。
 図8は、本実施形態に係る鍵付きハッシュ部315の構成例を示す図である。図8は、CMACにおける、暗号文の第1部分CRがブロックサイズの整数倍の場合の構成(左図)と、整数倍でない場合の構成(右図)と、を図示している。
 なお、CMACについての詳細は、“NIST Special Publication 800-38B Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf”を参照されたい。以下、この文献を“文献CMAC”として参照する。
 図9は、本実施形態に係る他の鍵付きハッシュ部815の構成例を示す図である。図9は、有限体上の多項式ハッシュとブロック暗号の暗号化とによる鍵付きハッシュ部815を図示している。図9において、“mult”はGF(2128)上の乗算で、その鍵はK1である。また、“CIPH”はブロック暗号の暗号化関数で、その鍵はK2である。
 有限体上の多項式ハッシュについては、“Daniel J. Bernstein. The Poly1305-AES Message-Authentication Code. Fast Software Encryption 2005, LNCS 3557, pp 32-49.”を参照されたい。以下、この文献を“文献Poly”として参照する。なお、文献Polyにおいては、図9のGHASH部分が類似した別の関数となるが、安全性や効率などに特段変化はない。鍵付きハッシュ部815は、GHASHと文献Polyとのいずれにおいても実施可能である。
 (暗号文出力部)
 暗号文出力部316は、暗号文の第2部分CLと第1部分CRとを連結して暗号文Cとして出力する機能構成部である。第2部分CLは、鍵付きハッシュ部315が出力するハッシュ値Hと、共通鍵ブロック暗号化部313が出力する暗号化された初期ベクトルSとの排他的論理和である。
暗号文Cは、例えば、コンピュータディスプレイやプリンタなどへ出力される。
 《認証暗号化部のハードウェア構成》
 図10は、本実施形態に係る認証暗号化部210のハードウェア構成を示すブロック図である。
 図10で、CPU910は演算制御用のプロセッサであり、プログラムを実行することで図3の機能構成部を実現する。ROM(Read Only Memory)920は、初期データおよびプログラムなどの固定データを記憶する。また、通信制御部930は、ネットワークを介して他の装置と通信する。なお、CPU910は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPU(Graphic Processing Unit)を含んでもよい。また、通信制御部930は、CPU910とは独立したCPUを含んで、RAM(Random Access Memory)940の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM940とストレージ950との間でデータを転送するDMAC(Direct Memory Access Controller)を設けるのが望ましい(図示なし)。したがって、CPU910は、RAM940にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU910は、処理結果をRAM940に準備し、後の送信あるいは転送は通信制御部930やDMACに任せる。
 RAM940は、CPU910が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM940には、本実施形態の実現に必要なデータを記憶する領域が確保されている。入力平文M941は、認証暗号化部210により認証暗号化される平文である。初期ベクトルN942は、過去の値と重複がないように生成されたデータである。暗号化された初期ベクトルS943は、初期ベクトルN942を共通鍵ブロック暗号化したデータである。擬似乱数系列V944は、暗号化された初期ベクトルS943に基づいて生成された擬似乱数である。ハッシュ値H945は、暗号文の第1部分CRに基づいて生成されたハッシュ値である。ハッシュ値Hと暗号化初期ベクトルSとの排他的論理和CL946は、暗号文の第2部分CLである。平文Mと擬似乱数系列Vとの排他的論理和CR947は、暗号文の第1部分CRである。出力暗号文Cは、暗号文の第1部分CRと第2部分CLとを連結して生成された暗号文である。
 ストレージ950には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。共通鍵ブロック暗号化アルゴリズム951は、本実施形態で使用される共通鍵ブロック暗号化のアルゴリズムである。擬似乱数生成アルゴリズム952は、本実施形態で使用される擬似乱数生成のアルゴリズムである。鍵付きハッシュアルゴリズム953は、本実施形態で使用される鍵付きハッシュのアルゴリズムである。ストレージ950には、以下のプログラムが格納される。認証暗号化プログラム954は、認証暗号化処理の全体を制御するプログラムである。共通鍵ブロック暗号化モジュール955は、共通鍵ブロック暗号化アルゴリズム951に従って共通鍵ブロック暗号化を実行するモジュールである。擬似乱数生成モジュール956は、擬似乱数生成アルゴリズム952に従って擬似乱数生成を実行するモジュールである。鍵付きハッシュモジュール957は、鍵付きハッシュアルゴリズム953に従って鍵付きハッシュの生成を実行するモジュールである。
 なお、図10のRAM940やストレージ950には、認証暗号化部210が含む汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。さらに、認証暗号化部210を含む情報処理装置が含む汎用の機能や他の実現可能な機能に関連するプログラムやデータも図示されていない。
 《認証暗号化部の処理手順》
 図11は、本実施形態に係る認証暗号化部210の処理手順を示すフローチャートである。このフローチャートは、図10のCPU910がRAM940を使用して実行し、図3の機能構成部を実現する。なお、認証暗号化の処理順序は図11に限定されない。
 認証暗号化部210は、ステップS1001において、対象となる平文Mを入力し、初期ベクトルNを生成する。次に、認証暗号化部210は、ステップS1003において、初期ベクトルNを共通鍵ブロック暗号化し、同じ長さの暗号化された初期ベクトルSを得る。次に、認証暗号化部210は、ステップS1005において、暗号化された初期ベクトルSを入力とした擬似ランダム関数の出力である擬似乱数系列Vを得る。
 次に、認証暗号化部210は、ステップS1007において、擬似乱数系列Vと平文Mとの排他的論理和を暗号文の左端外のブロック(第1部分CR)とする。次に、認証暗号化部210は、ステップS1009において、第1部分CRから鍵付きハッシュHを生成し、得られた1ブロックの鍵付きハッシュHと暗号化された初期ベクトルSとの排他的論理和を暗号文の左端ブロック(第2部分CL)とする。次に、認証暗号化部210は、ステップS1011において、第2部分CLと第1部分CRとを連結して暗号文Cを求める。そして、最後に、認証暗号化部210は、ステップS1013において、得られた暗号文Cを出力する。なお、第2部分CLは左端である必要はなく、暗号文の一端であるのが望ましい。
 《認証復号部の機能構成》
 図12は、本実施形態に係る情報処理装置としての認証復号部220の機能構成を示すブロック図である。
 認証復号部220は、暗号文入力部1101と、鍵付きハッシュ部1102と、擬似乱数生成部1103と、共通鍵ブロック復号部1104と、初期ベクトル検査部1105と、平文出力部1106と、を備える。なお、認証復号部220は、CPUとメモリとディスクにより実現可能であり、各機能構成部は、プログラムをディスクに格納しておき、このプログラムをCPU上で動作させることにより実現することもできる。
 次に、認証復号部220を構成する各機能構成部について説明する。
 (暗号文入力部)
 暗号文入力部1101は、対象となる暗号文を入力する機能構成部である。これは例えば、キーボードなどの文字入力部、あるいは、平文を記憶する記憶媒体からの読み出し、あるいは、通信媒体を介した受信などにより実現される。そして、暗号文入力部1101は、暗号文Cを第1部分CRと第2部分CLとに分離して出力する。例えば、第2部分CLを暗号文の左端の1ブロックとし、第1部分CRは暗号文の左端外の全ブロックとする。
 (鍵付きハッシュ部)
 鍵付きハッシュ部1102は、第1部分CRを入力とし、1ブロックの鍵付きハッシュ値Hを出力する機能構成部である。具体的には、鍵付きハッシュ部1102は、可変長の入力から1ブロックの出力を得る擬似ランダム関数であり、認証暗号化部210の鍵付きハッシュ部315と同様の機能構成部で実現できる。
 (擬似乱数生成部)
 擬似乱数生成部1103は、鍵付きハッシュ部1102の出力するハッシュ値Hと、暗号文の第2部分CLとの排他的論理和による暗号化初期ベクトルSを入力とし、第1部分CRと同じ長さの擬似乱数系列Vを生成する機能構成部である。具体的には、擬似乱数生成部1103は、固定長入力、可変長出力の擬似ランダム関数であり、認証暗号化部210の擬似乱数生成部314と同様の機能構成部で実現できる。
 (共通鍵ブロック復号部)
 共通鍵ブロック復号部1104は、暗号化初期ベクトルSを復号して初期ベクトルNを得る機能構成部である。具体的には、共通鍵ブロック復号部1104は、認証暗号化部210の共通鍵ブロック暗号化部313で用いたブロック暗号に対応する復号関数により実現できる。
 図13は、本実施形態に係る共通鍵ブロック復号部1104の構成例を示す図である。図13は、SPN構造による共通鍵ブロック復号の場合である。
 図13において、“Su-1”は逆換字処理を表わし、“Pe-1”は逆転置処理を表わす。
 なお、Feistel構造による共通鍵ブロック復号は、鍵を逆順にするのみで、共通鍵ブロック符号化と同様であるので、図示は省略する。また、共通鍵ブロック復号部1104は、共通鍵ブロック暗号化部313に対応するものであればよく、限定はされない。
 (初期ベクトル検査部)
 初期ベクトル検査部1105は、以下の機能構成部である。第1に、初期ベクトル検査部1105は、共通鍵ブロック復号部1104が出力する初期ベクトルNと、暗号文Cに対して復号側が期待する初期ベクトル期待値N*とを比較検証する。第2に、初期ベクトル検査部1105は、検証結果を2値表現したB(検証合格ならACK(Acknowledge)、検証失敗ならNACK(Negative-ACK))と、次回の暗号文の復号に用いる初期ベクトル期待値N*newとを出力する。復号された初期ベクトルNと初期ベクトル期待値N*とが一致した場合にB=ACK、一致しない場合にB=NACKとする。また、暗号化側が用いる初期ベクトルの更新関数がfであるとすると、B=ACKの場合にはN*new=f(N)と更新し、B=NACKの場合には更新せずにN*new=N*とする。
 図14は、本実施形態に係る初期ベクトル検査部1105の構成例を示す図である。
 初期ベクトル検査部1105は、初期ベクトル期待値保持部1301と、初期ベクトル比較部1302と、初期ベクトル期待値更新部1303と、を備える。
 初期ベクトル期待値保持部1301は、最初の初期ベクトル期待値N*を保持すると共に、それ以降は初期ベクトル期待値更新部1303の出力を保持する。なお、最初の初期ベクトル期待値N*は外部から入力あるいは受信されても、あらかじめ鍵などと同様に保持されていてもよい。初期ベクトル比較部1302は、初期ベクトル期待値保持部1301が保持する現在の初期ベクトル期待値N*と、共通鍵ブロック復号部1104の出力である復号された初期ベクトルNとを比較する。次に、初期ベクトル比較部1302は、その比較の検証結果Bとして、一致すればACKを出力し、一致しなければNACKを出力する。初期ベクトル期待値更新部1303は、検証結果B=ACKの場合は、初期ベクトル期待値N*を+1して初期ベクトル期待値保持部1301に出力する。一方、検証結果B=NACKの場合は、現在の初期ベクトル期待値N*をそのまま初期ベクトル期待値保持部1301に出力して初期ベクトル期待値N*を維持する。
 ここで、更新関数fは、典型的にはインクリメント関数f(N)=N+1である。なお、比較検証の方法は、通信路上のパケットロスなどの情報消失に対応する場合、一致の検証だけでなく、閾値tを設けてNとN*との絶対値差がt以内であるかどうかで検証結果Bを定めるとしてもよい。この場合、改ざんを行う攻撃者の成功確率、すなわち不正な暗号文を復号したときの初期ベクトルNの値が偶然N*と近い値になる確率は、およそt/2nとなる。このため、tを十分小さくとることで、情報消失に対応しつつ、改ざんを高い確率で検知することが可能となる。
 (平文出力部)
 平文出力部1106は、以下の機能構成部である。平文出力部1106は、擬似乱数生成部1103の出力である擬似乱数系列Vと、暗号文Cの第1部分CR(暗号文Cの左端以外の全ブロック)との排他的論理和を平文Mとして、及び初期ベクトル検査部1105が出力する検証結果Bを、入力する。そして、平文出力部1106は、平文出力を許可する信号であるB=ACKであった場合には、検証成功として平文Mを、例えばコンピュータディスプレイやプリンタなどへ出力する。一方、平文出力を停止する信号であるB=NACKであった場合には、平文出力部1106は、検証失敗としてエラーメッセージを出力する。
 《認証復号部のハードウェア構成》
 図15は、本実施形態に係る認証復号部220のハードウェア構成を示すブロック図である。
 図15で、CPU1410は演算制御用のプロセッサであり、プログラムを実行することで図12の機能構成部を実現する。ROM1420は、初期データおよびプログラムなどの固定データを記憶する。また、通信制御部1430は、ネットワークを介して他の装置と通信する。なお、CPU1410は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPUを含んでもよい。また、通信制御部1430は、CPU1410とは独立したCPUを含んで、RAM1440の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM1440とストレージ1450との間でデータを転送するDMACを設けるのが望ましい(図示なし)。したがって、CPU1410は、RAM1440にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU1410は、処理結果をRAM1440に準備し、後の送信あるいは転送は通信制御部1430やDMACに任せる。
 RAM1440は、CPU1410が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM1440には、本実施形態の実現に必要なデータを記憶する領域が確保されている。入力暗号文C1441は、認証復号部220により認証復号される暗号文である。入力暗号文C1441は、第2部分(左端ブロック)CLと第1部分(左端外のブロック)CRとに分離されて読み出される。ハッシュ値H1442は、暗号文の第1部分CRに基づいて生成されたハッシュ値である。第2部分CLとハッシュ値Hとの排他的論理和S1443は、暗号化された初期ベクトルに対応するデータである。擬似乱数系列V1444は、排他的論理和S1443に基づいて生成された擬似乱数である。第1部分CRと擬似乱数Vとの排他的論理和M1445は、復号された平文候補である。復号された初期ベクトルN1446は、排他的論理和S1443から共通鍵ブロック復号された初期ベクトルNである。初期ベクトル期待値N*1447は、入力暗号文C1441から復号される初期ベクトルの期待値である。初期ベクトル検証結果B1448は、復号された初期ベクトルN1446と初期ベクトル期待値N*1447とが一致するか否かの検証結果である。出力平文M1449は、初期ベクトル検証結果B1448が一致(ACK)の場合に出力される平文である。
 ストレージ1450には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。共通鍵ブロック復号アルゴリズム1451は、本実施形態で使用される共通鍵ブロック復号のアルゴリズムである。擬似乱数生成アルゴリズム952は、本実施形態で使用される擬似乱数生成のアルゴリズムであり、認証暗号化部210と同様である。鍵付きハッシュアルゴリズム953は、本実施形態で使用される鍵付きハッシュのアルゴリズムであり、認証暗号化部210と同様である。ストレージ1450には、以下のプログラムが格納される。認証復号プログラム1454は、認証復号処理の全体を制御するプログラムである。共通鍵ブロック復号モジュール1455は、共通鍵ブロック復号アルゴリズム1451に従って共通鍵ブロック復号を実行するモジュールである。擬似乱数生成モジュール956は、擬似乱数生成アルゴリズム952に従って擬似乱数生成を実行するモジュールであり、認証暗号化部210と同様である。鍵付きハッシュモジュール957は、鍵付きハッシュアルゴリズム953に従って鍵付きハッシュの生成を実行するモジュールであり、認証暗号化部210と同様である。初期ベクトル検査モジュール1458は、暗号文から復号された初期ベクトルと初期ベクトル期待値とを照合し、一致するか否かに対応する処理を行なうモジュールである。
 なお、図15のRAM1440やストレージ1450には、認証復号部220が含む汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。さらに、認証復号部220を含む情報処理装置が含む汎用の機能や他の実現可能な機能に関連するプログラムやデータも図示されていない。
 《認証復号部の処理手順》
 図16は、本実施形態に係る認証復号部220の処理手順を示すフローチャートである。このフローチャートは、図15のCPU1410がRAM1440を使用して実行し、図12の機能構成部を実現する。なお、認証復号の処理順序は図16に限定されない。
 認証復号部220は、ステップS1501において、対象となる暗号文Cを入力する。次に、認証復号部220は、ステップS1503において、暗号文Cを第2部分(左端のブロック)CLと、第1部分(左端以外の全ブロック)CRとに分割する。そして、認証復号部220は、第1部分CRから鍵付きハッシュを生成し、得られた1ブロックのハッシュ値Hと第2部分CLとの排他的論理和をとり、暗号化初期ベクトルSを得る。次に、認証復号部220は、ステップS1505において、暗号化初期ベクトルSを入力とした擬似ランダム関数の出力である擬似乱数系列Vを得る。
 次に、認証復号部220は、ステップS1507において、擬似乱数系列Vと第1部分CRとの排他的論理和を復号結果の平文Mの候補とする。次に、認証復号部220は、ステップS1509において、暗号化初期ベクトルSを共通鍵ブロック復号し、同じ長さの初期ベクトルNを復号する。
 次に、認証復号部220は、ステップS1511において、暗号文Cから復号した初期ベクトルNと初期ベクトル期待値N*とを比較する。比較結果により、NとN*とが一致するならば、暗号化側の初期ベクトル更新関数fを用いて、次回の復号で用いる初期ベクトル期待値N*newをf(N)に更新し、検証結果B=ACKとする。一方、一致しない場合は、N*newはN*そのままとし、B=NACKとする。最後に、認証復号部220は、ステップS1513において、検証結果B=ACKの場合に、復号された平文Mを出力し、B=NACKの場合に、検証失敗を示すエラーメッセージを出力する。
 以上、本実施形態においては、認証暗号化部210と認証復号部220とを独立に説明した。なお、認証暗号化部210と認証復号部220とを共に含む図2の情報処理装置204であれば、擬似乱数生成部(擬似乱数生成モジュール)や鍵付きハッシュ部(鍵付きハッシュモジュール)は、暗号化と復号とで共有できる。さらに、Feistel構造であれば、共通鍵ブロック暗号化部(共通鍵ブロック暗号化モジュール)と共通鍵ブロック復号部(共通鍵ブロック復号モジュール)とを、暗号化と復号とで共有できる。また、排他的論理和を行なう機能構成も、平文と暗号文の第1部分との間で相互に変換する変換部として、あるいは、暗号化初期ベクトルと暗号文の第2部分との間で相互に変換する変換部として、共有できる。
 本実施形態によれば、入力長1ブロックにつき、ブロック暗号を1回と有限体GF(2n)乗算を1回、あるいは、ブロック暗号を2回とすることにより、平文長に対する暗号文長の帯域(長さ)の増加が小さい認証暗号を、効率よく実現できる。
 詳細には、本実施形態においては、非特許文献1に記載のAEROのように、初期ベクトルNと平文Mとを連結し、WPRPと呼ばれる特許文献1に記載のXBCモードで暗号化を行なう。したがって、タグTと初期ベクトルNとを組み合わせた処理が可能となり、帯域の増加は初期ベクトルNの分だけでよい。しかし、この方式では入力長1ブロックにつきブロック暗号を1回と、有限体GF(2n)乗算(ただしnはブロックサイズ)を2回、必要とするため効率が悪い。この効率の悪さは、主に、攻撃者が作成する暗号文についてWPRPがその復号結果全体を予測不能な計算量的乱数とすることに原因する。本実施形態においては、復号結果のうち、検証に用いる初期ベクトルに相当する部分のみ予測不能な計算量的乱数にし、復号における条件を弱めた。その結果、本実施形態においては、入力長1ブロックにつき、ブロック暗号を1回と、有限体GF(2n)乗算を1回、あるいは、ブロック暗号を2回とすることが可能となった。すなわち、本実施形態においては、平文1ブロックにつき、擬似乱数生成部でブロック暗号を1回と、鍵付きハッシュ部で有限体GF(2n)乗算を1回、あるいは、擬似乱数生成部でブロック暗号を1回と鍵付きハッシュ部でブロック暗号を1回とを合わせて、ブロック暗号を2回となる。これにより、計算効率は、帯域を削減してもなお、通常のタイプの認証暗号である文献CCMや文献GCMの場合とほぼ同じ程度に改善された。
 [第3実施形態]
 次に、本発明の第3実施形態に係る認証暗号化システムについて説明する。本実施形態に係る認証暗号化システムは、上記第2実施形態と比べると、異なる手順で認証暗号化を行なう情報処理装置、異なる手順で認証復号を行なう情報処理装置、または、異なる手順で認証暗号化および認証復号を行なう情報処理装置を含む点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
 《認証暗号化部の機能構成》
 図17は、本実施形態に係る情報処理装置としての認証暗号化部1610の機能構成を示すブロック図である。なお、図17において、図3と同様の機能構成部には同じ参照番号を付して、説明を省略する。
 図17と図3とを対比すれば分かるように、図17と図3とは機能構成部の接続が異なるのみで、各機能構成部の機能は互いに同様である。すなわち、認証暗号化部1610は、平文入力部311と、初期ベクトル生成部312と、共通鍵ブロック暗号化部313と、擬似乱数生成部314と、鍵付きハッシュ部315と、暗号文出力部316と、を備える。
 なお、機能構成部の接続が異なるので、図17の各機能構成部の入力データおよび出力データは、図3の各機能構成部の入力データおよび出力データとは異なるが、その役割は類似であるので、共通の入力データおよび出力データには同じ参照記号を使用する。以下、認証暗号化部1610の動作を説明する。
 まず、平文Mが平文入力部311により入力される。そして、鍵付きハッシュ部315が平文Mを入力としてハッシュ値Hを出力する。ハッシュ値Hと初期ベクトル生成部312が出力する初期ベクトルNとを排他的論理和して得たマスク付き初期ベクトルUを、共通鍵ブロック暗号化部313で暗号化することで、暗号文の第2部分(暗号文の左端ブロック)CLを得る。次に、擬似乱数生成部314が第2部分CLを入力として、擬似乱数系列Vを出力する。そして、擬似乱数系列Vと平文Mとを排他的論理和して、暗号文の第1部分(暗号文の左端ブロック外)CRを得る。暗号文出力部316が、第2部分CLと第1部分CRとを連結して暗号文Cを構成し、暗号文Cを例えばコンピュータディスプレイやプリンタなどへ出力する。さらに、記憶媒体への書き込みや通信媒体を介した送信を行なってもよい。
 《認証暗号化部の処理手順》
 図18は、本実施形態に係る認証暗号化部1610の処理手順を示すフローチャートである。このフローチャートは、図10のCPU910がRAM940を使用して実行し、図17の機能構成部を実現する。なお、図18において、図11と同様のステップには同じステップ番号を付して、説明を省略する。また、認証暗号化の処理順序は図18に限定されない。
 認証暗号化部1610は、ステップS1703において、平文Mから鍵付きハッシュ値Hを生成し、得られた1ブロックの鍵付きハッシュ値Hと初期ベクトルNとを排他的論理和して、マスク付き初期ベクトルUとする。次に、認証暗号化部1610は、ステップS1705において、マスク付き初期ベクトルUを共通鍵ブロック暗号化し、暗号文の第2部分(左端ブロック)CLを得る。次に、認証暗号化部1610は、ステップS1707において、第2部分CLを入力として擬似乱数系列Vを得る。そして、認証暗号化部1610は、ステップS1709において、擬似乱数系列Vと平文Mとを排他的論理和して、暗号文の第1部分(左端以外のブロック)CRとする。
 《認証復号部の機能構成》
 図19は、本実施形態に係る情報処理装置としての認証復号部1820の機能構成を示すブロック図である。なお、図19において、図12と同様の機能構成部には同じ参照番号を付して、説明を省略する。
 図19と図12とを対比すれば分かるように、図19と図12とは機能構成部の接続が異なるのみで、各機能構成部の機能は互いに同様である。すなわち、認証復号部1820は、暗号文入力部1101と、鍵付きハッシュ部1102と、擬似乱数生成部1103と、共通鍵ブロック復号部1104と、初期ベクトル検査部1105と、平文出力部1106と、を備える。
 なお、機能構成部の接続が異なるので、図19の各機能構成部の入力データおよび出力データは、図12の各機能構成部の入力データおよび出力データとは異なるが、その役割は類似であるので、共通の入力データおよび出力データには同じ参照記号を使用する。以下、認証復号部1820の動作を説明する。
 まず、暗号文Cが暗号文入力部1101により入力され、暗号文Cの第2部分(左端ブロック)CLと、第1部分(左端以外の全ブロック)CRとに分離して出力される。擬似乱数生成部1103が、第2部分CLを入力として擬似乱数系列Vを出力する。そして、擬似乱数系列Vと第1部分CRとが排他的論理和され、平文Mの候補とされる。
 鍵付きハッシュ部1102が、平文Mを入力としてハッシュ値Hを出力する。共通鍵ブロック復号部1104は、第2部分CLを復号した結果を、マスク付き初期ベクトルUとして出力する。そして、マスク付き初期ベクトルUとハッシュ値Hとが排他的論理和されることで、初期ベクトルNが復号される。次に、初期ベクトル検査部1105が、初期ベクトル期待値N*と復号された初期ベクトルNとを比較し、比較結果に従って、更新された初期ベクトル期待値N*newと、2値の検証結果B(ACKまたはNACK)とを出力する。最後に、平文出力部1106が検証結果Bと平文Mの候補とを用いて、B=ACKの場合には平文Mを、B=NACKの場合にはエラーメッセージを、例えばコンピュータディスプレイやプリンタなどへ出力する。
 《認証復号部の処理手順》
 図20は、本実施形態に係る認証復号部1820の処理手順を示すフローチャートである。このフローチャートは、図15のCPU1410がRAM1440を使用して実行し、図19の機能構成部を実現する。なお、図20において、図16と同様のステップには同じステップ番号を付して、説明を省略する。また、認証復号の処理順序は図20に限定されない。
 認証復号部1820は、ステップS1903において、入力された暗号文Cを第2部分(左端のブロック)CLと、第1部分(左端以外の全ブロック)CRとに分割し、第2部分CLを入力として擬似乱数系列Vを得る。次に、認証復号部1820は、ステップS1905において、擬似乱数系列Vと第1部分CRとを排他的論理和して復号結果の平文Mの候補とする。次に、認証復号部1820は、ステップS1907において、平文Mの候補から鍵付きハッシュ値Hを生成する。そして、認証復号部1820は、ステップS1909において、第2部分CLを共通鍵ブロック復号したマスク付き初期ベクトルUと,ハッシュ値Hとの排他的論理和をとり、初期ベクトルNを復号する。
 なお、上記実施形態では、認証符号化と認証復号とを分けて説明したが、図2にも図示したように認証符号化と認証復号とを共に行なう双方向の情報処理装置もある。その場合には、認証符号化と認証復号とで共有できる構成部あるいはモジュールは重複して備える必要はない。
 本実施形態によれば、入力長1ブロックにつき、ブロック暗号を1回と有限体GF(2n)乗算を1回、あるいは、ブロック暗号を2回とすることにより、平文長に対する暗号文長の帯域(長さ)の増加が小さい認証暗号を、効率よく実現できる点にある。さらに、初期ベクトルを誤って過去に使われた値と重複させた場合でも、情報の漏洩を防ぐことができる。
 すなわち、上記第2実施形態において、鍵付きハッシュ部で用いる可変長入力、固定長出力の関数が文献CMACの“CMAC”や文献Polyの“Poly1305”のように、nbitの内部状態を用いて計算が可能な場合がある。このような場合、暗号化において、平文がブロックごとに逐次的に入力される場合でも、数ブロック分のバッファがあれば逐次的に処理可能であり、メモリ量の観点で効率的である。
 本実施形態では、そのような性質を有しないが、その代わりに、暗号化において初期ベクトルを誤って過去に使われた値と重複させた場合でも、暗号文全体は攻撃者からランダムに見えるため、情報の漏洩を防ぐことが可能である。ただし、復号側はこれをリプレイととらえるため、初期ベクトルを正しく設定し直したうえで再送する必要がある。
 [他の実施形態]
 本発明は、無線もしくは有線のデータ通信における暗号化とメッセージ認証、無線センサーデバイスと情報収集サーバとの通信の保護といった用途にも適用できる。
 また、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
 また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する制御プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。
 [実施形態の他の表現]
 上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
 (付記1)平文を入力する平文入力手段と、
 初期ベクトルを生成する初期ベクトル生成手段と、
 前記初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化手段と、
 前記暗号化初期ベクトルを入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
 前記擬似乱数系列と前記平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュ手段と、
 前記ハッシュ値と前記暗号化初期ベクトルとを排他的論理和した前記暗号文の第2部分と前記第1部分とを連結して暗号文として出力する暗号文出力手段と、
 を備える情報処理装置。
 (付記2)前記初期ベクトル生成手段は、最初は任意の固定値を生成し、2回目以降は直前に生成した初期ベクトルの値に1を加えた値を生成することにより、過去の値と重複がないように前記初期ベクトルを生成する付記1に記載の情報処理装置。
 (付記3)前記共通鍵ブロック暗号化手段は、1ブロックの前記初期ベクトルを共通鍵ブロック暗号の暗号化関数により暗号化し、同じ長さの暗号化された初期ベクトルを出力する付記1または2に記載の情報処理装置。
 (付記4)前記擬似乱数生成手段は、修正カウンタモード(modified counter mode)または修正OFBモード(modified OFB mode)の固定長入力および可変長出力の擬似ランダム関数により、1ブロックの前記暗号化された初期ベクトルを用いて、前記平文と同じ長さの前記擬似乱数系列を生成する付記1乃至3のいずれか1項に記載の情報処理装置。
 (付記5)前記鍵付きハッシュ手段は、ブロック暗号を用いるCMAC(cipher-based message authentication code)アルゴリズム、または、有限体上の多項式ハッシュとブロック暗号の暗号化とを組み合わせる方法により、前記第1部分を入力として前記ハッシュ値を出力する付記1乃至4のいずれか1項に記載の情報処理装置。
 (付記6)平文を入力する平文入力ステップと、
 初期ベクトルを生成する初期ベクトル生成ステップと、
 前記初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化ステップと、
 前記暗号化初期ベクトルを入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
 前記擬似乱数系列と前記平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュステップと、
 前記ハッシュ値と前記暗号化初期ベクトルとを排他的論理和した前記暗号文の第2部分と前記第1部分とを連結して暗号文として出力する暗号文出力ステップと、
 をコンピュータに実行させる情報処理装置の制御プログラム。
 (付記7)平文を入力する平文入力手段と、
 初期ベクトルを生成する初期ベクトル生成手段と、
 前記平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
 前記初期ベクトルと前記ハッシュ値とを排他的論理和したマスク付き初期ベクトルを共通鍵ブロック暗号化し、暗号文の第2部分を生成する共通鍵ブロック暗号化手段と、
 前記第2部分を入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
 前記擬似乱数系列と前記平文とを排他的論理和した前記暗号文の第1部分と前記第2部分とを連結して暗号文として出力する暗号文出力手段と、
 を備える情報処理装置。
 (付記8)前記初期ベクトル生成手段は、最初は任意の固定値を生成し、2回目以降は直前に生成した初期ベクトルの値に1を加えた値を生成することにより、過去の値と重複がないように前記初期ベクトルを生成する付記7に記載の情報処理装置。
 (付記9)前記鍵付きハッシュ手段は、ブロック暗号を用いるCMAC(cipher-based message authentication code)アルゴリズム、または、有限体上の多項式ハッシュとブロック暗号の暗号化とを組み合わせる方法により、前記平文を入力として前記ハッシュ値を出力する付記7または8に記載の情報処理装置。
 (付記10)前記共通鍵ブロック暗号化手段は、前記マスク付き初期ベクトルを共通鍵ブロック暗号の暗号化関数により暗号化し、前記第2部分を出力する付記7乃至9のいずれか1項に記載の情報処理装置。
 (付記11)前記擬似乱数生成手段は、修正カウンタモード(modified counter mode)または修正OFBモード(modified OFB mode)の固定長入力および可変長出力の擬似ランダム関数により、前記第2部分を用いて、前記平文と同じ長さの前記擬似乱数系列を生成する付記7乃至10のいずれか1項に記載の情報処理装置。
 (付記12)平文を入力する平文入力ステップと、
 初期ベクトルを生成する初期ベクトル生成ステップと、
 前記平文を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
 前記初期ベクトルと前記ハッシュ値とを排他的論理和したマスク付き初期ベクトルを共通鍵ブロック暗号化し、暗号文の第2部分を生成する共通鍵ブロック暗号化ステップと、
 前記第2部分を入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
 前記擬似乱数系列と前記平文とを排他的論理和した前記暗号文の第1部分と前記第2部分とを連結して暗号文として出力する暗号文出力ステップと、
 をコンピュータに実行させる情報処理装置の制御プログラム。
 (付記13)暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力手段と、
 前記第1部分を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
 前記ハッシュ値と前記暗号文の第2部分とを排他的論理和して得た暗号化初期ベクトルを入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
 前記暗号化初期ベクトルを共通鍵ブロック復号して、初期ベクトルを生成する共通鍵ブロック復号手段と、
 前記復号された初期ベクトルと初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
 前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を出力する平文出力手段と、
 を備える情報処理装置。
 (付記14)前記第2部分は前記暗号文の一端の1ブロックであり、前記第1部分は前記暗号文の残りのブロックである付記13に記載の情報処理装置。
 (付記15)前記初期ベクトル検査手段は、
  前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合、前記平文の出力を許可する信号を出力すると共に、前記初期ベクトル期待値を次の暗号文に期待される値に更新し、
  前記復号された初期ベクトルと前記初期ベクトル期待値とが一致しない場合、前記平文の出力を停止する信号を出力すると共に、前記初期ベクトル期待値を維持し、
 前記平文出力手段は、前記許可する信号を受信すると前記平文を出力し、前記停止する信号を受信するとエラーメッセージを出力する、付記13または14に記載の情報処理装置。
 (付記16)暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力ステップと、
 前記第1部分を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
 前記ハッシュ値と前記第2部分とを排他的論理和して得た暗号化初期ベクトルを入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
 前記暗号化初期ベクトルを共通鍵ブロック復号して、初期ベクトルを生成する共通鍵ブロック復号ステップと、
 前記生成された初期ベクトルと初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査ステップと、
 前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を出力する平文出力ステップと、
 をコンピュータに実行させる情報処理装置の制御プログラム。
 (付記17)暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力手段と、
 前記第2部分を入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
 前記第2部分を共通鍵ブロック復号し、マスク付き初期ベクトルを生成する共通鍵ブロック復号手段と、
 前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
 前記ハッシュ値と前記マスク付き初期ベクトルとを排他的論理和して復号された初期ベクトルと、初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
 前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記平文を出力する平文出力手段と、
 を備える情報処理装置。
 (付記18)前記第2部分は前記暗号文の一端の1ブロックであり、前記第1部分は前記暗号文の残りのブロックである付記17に記載の情報処理装置。
 (付記19)前記初期ベクトル検査手段は、
  前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合、前記平文の出力を許可する信号を出力すると共に、前記初期ベクトル期待値を次の暗号文に期待される値に更新し、
  前記復号された初期ベクトルと前記初期ベクトル期待値とが一致しない場合、前記平文の出力を停止する信号を出力すると共に、前記初期ベクトル期待値を維持し、
 前記平文出力手段は、前記許可する信号を受信すると前記平文を出力し、前記停止する信号を受信するとエラーメッセージを出力する、付記17に記載の情報処理装置。
 (付記20)暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力ステップと、
 前記第2部分を入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
 前記第2部分を共通鍵ブロック復号し、マスク付き初期ベクトルを生成する共通鍵ブロック復号ステップと、
 前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
 前記ハッシュ値と前記マスク付き初期ベクトルとを排他的論理和して復号された初期ベクトルと、初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査ステップと、
 前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記平文を出力する平文出力ステップと、
 をコンピュータに実行させる情報処理装置の制御プログラム。
 (付記21)初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化手段と、
 暗号化初期ベクトルをブロック復号して初期ベクトルを生成する共通鍵ブロック復号手段と、
 前記暗号化された暗号化初期ベクトルを入力として、平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
 前記擬似乱数系列との排他的論理和により、前記平文と暗号文の第1部分との間で相互に変換する第1変換手段と、
 前記暗号文の一部を入力としてハッシュ値を生成する鍵付きハッシュ手段と、
 前記ハッシュ値との排他的論理和により、暗号化初期ベクトルと暗号文の第2部分との間で相互に変換する第2変換手段と、
 を備え、
 前記暗号化初期ベクトルと前記ハッシュ値とを排他的論理和して得た前記暗号文の第2部分と、入力した平文と前記擬似乱数系列とを排他的論理和した前記暗号文の第1部分とを連結して、暗号文として出力する暗号化処理と、
 入力した暗号文を前記暗号文の第1部分と前記暗号文の第2部分とに分離して、前記暗号文の第2部分とハッシュ値とを排他的論理和して得た暗号化初期ベクトルをブロック復号して初期ベクトルを生成すると共に、前記暗号文の第1部分と前記擬似乱数系列とを排他的論理和して平文として出力する復号処理と、
 を行なう情報処理装置。
 (付記22)認証暗号化装置と認証復号装置とを含む認証暗号化システムであって、
 前記認証暗号化装置は、
  平文を入力する平文入力手段と、
  初期ベクトルを生成する初期ベクトル生成手段と、
  前記初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化手段と、
  前記暗号化初期ベクトルを入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
  前記擬似乱数系列と前記平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュ手段と、
  前記ハッシュ値と前記暗号化初期ベクトルとを排他的論理和した前記暗号文の第2部分と前記第1部分とを連結して暗号文として出力する暗号文出力手段と、
 を備え、
 前記認証復号装置は、
  前記暗号文を入力して、前記暗号文を前記第1部分と前記第2部分とに分離して出力する暗号文入力手段と、
  前記第1部分を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
  前記ハッシュ値と前記暗号文の第2部分とを排他的論理和して得た暗号化初期ベクトルを入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
  前記暗号化初期ベクトルを共通鍵ブロック復号して、初期ベクトルを生成する共通鍵ブロック復号手段と、
  前記復号された初期ベクトルと初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
  前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を出力する平文出力手段と、
 を備える認証暗号化システム。
 (付記23)認証暗号化装置と認証復号装置とを含む認証暗号化システムであって、
 前記認証暗号化装置は、
  平文を入力する平文入力手段と、
  初期ベクトルを生成する初期ベクトル生成手段と、
  前記平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
  前記初期ベクトルと前記ハッシュ値とを排他的論理和したマスク付き初期ベクトルを共通鍵ブロック暗号化し、暗号文の第2部分を生成する共通鍵ブロック暗号化手段と、
  前記第2部分を入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
  前記擬似乱数系列と前記平文とを排他的論理和した前記暗号文の第1部分と前記第2部分とを連結して暗号文として出力する暗号文出力手段と、
 を備え、
 前記認証復号装置は、
  前記暗号文を入力して、前記暗号文を前記第1部分と前記第2部分とに分離して出力する暗号文入力手段と、
  前記第2部分を入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
  前記第2部分を共通鍵ブロック復号し、マスク付き初期ベクトルを生成する共通鍵ブロック復号手段と、
  前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
  前記ハッシュ値と前記マスク付き初期ベクトルとを排他的論理和して復号された初期ベクトルと、初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
  前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記平文を出力する平文出力手段と、
 を備える認証暗号化システム。
 (付記24)平文と、過去の値と重複がないように生成された初期ベクトルとに基づいて暗号文を生成する認証暗号化方法であって、
 前記初期ベクトルを元に共通鍵ブロック暗号化を行ない、暗号化初期ベクトルを生成し、
 前記平文から前記暗号文の第1部分を生成するため、前記平文と排他的論理和する擬似乱数を、前記暗号化初期ベクトルを元に生成し、
 前記初期ベクトルから前記暗号文の第2部分を生成するため、前記暗号化初期ベクトルの生成における前記初期ベクトルの共通鍵ブロック暗号化に加えて前記初期ベクトルと排他的論理和する鍵付きハッシュ値を、前記平文を元に生成する、
 認証暗号化方法。
 (付記25)暗号文から、前記暗号文の元となった平文と、前記暗号文の生成に使用された初期ベクトルとを復号する認証復号方法であって、
 前記暗号文の第1部分から前記平文を復号するため、前記第1部分と排他的論理和する擬似乱数を、前記暗号文の第2部分を元に生成し、
 前記暗号文の第2部分を元に共通鍵ブロック復号を行ない、
 前記暗号文の第2部分から前記初期ベクトルを復号するため、前記共通鍵ブロック復号における前記第2部分の共通鍵ブロック復号に加えて前記第2部分と排他的論理和する鍵付きハッシュ値を、前記第1部分を元に生成する、
 認証復号方法。
 (付記26)付記6、12、16および20のいずれか1つに記載の前記制御プログラムを記録したコンピュータ読み取り可能な非一時的記録媒体。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2014年8月20日に出願された日本出願特願2014-167424を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 100  情報処理装置
 200  認証暗号化システム
 204  情報処理装置
 210  認証暗号化部
 220  認証復号部
 311  平文入力部
 312  初期ベクトル生成部
 313  共通鍵ブロック暗号化部
 314  擬似乱数生成部
 315  鍵付きハッシュ部
 316  暗号文出力部
 401  共通鍵暗号化部E
 402  GHash
 403  カウンタモード暗号化
 404  GHash
 405  共通鍵復号部D
 910  CPU
 940  RAM
 941  入力平文M
 942  初期ベクトルN
 943  初期ベクトルS
 944  擬似乱数系列V
 945  ハッシュ値H
 950  ストレージ
 951  共通鍵ブロック暗号化アルゴリズム
 952  擬似乱数生成アルゴリズム
 953  鍵付きハッシュアルゴリズム
 954  認証暗号化プログラム
 955  共通鍵ブロック暗号化モジュール
 956  擬似乱数生成モジュール
 957  鍵付きハッシュモジュール
 1101  暗号文入力部
 1102  鍵付きハッシュ部
 1103  擬似乱数生成部
 1104  共通鍵ブロック復号部
 1105  初期ベクトル検査部
 1106  平文出力部
 1301  初期ベクトル期待値保持部
 1302  初期ベクトル比較部
 1303  初期ベクトル期待値更新部
 1410  CPU
 1440  RAM
 1441  入力暗号文C
 1442  ハッシュ値H
 1443  排他的論理和S
 1444  擬似乱数系列V
 1445  排他的論理和M
 1446  初期ベクトルN
 1448  初期ベクトル検証結果B
 1449  出力平文M
 1450  ストレージ
 1451  共通鍵ブロック復号アルゴリズム
 1454  認証復号プログラム
 1455  共通鍵ブロック復号モジュール
 1458  初期ベクトル検査モジュール
 1610  認証暗号化部
 1820  認証復号部

Claims (10)

  1.  平文を入力する平文入力手段と、
     初期ベクトルを生成する初期ベクトル生成手段と、
     前記初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化手段と、
     前記暗号化初期ベクトルを入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
     前記擬似乱数系列と前記平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュ手段と、
     前記ハッシュ値と前記暗号化初期ベクトルとを排他的論理和した前記暗号文の第2部分と前記第1部分とを連結して暗号文として出力する暗号文出力手段と、
     を備える情報処理装置。
  2.  平文を入力する平文入力ステップと、
     初期ベクトルを生成する初期ベクトル生成ステップと、
     前記初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化ステップと、
     前記暗号化初期ベクトルを入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
     前記擬似乱数系列と前記平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュステップと、
     前記ハッシュ値と前記暗号化初期ベクトルとを排他的論理和した前記暗号文の第2部分と前記第1部分とを連結して暗号文として出力する暗号文出力ステップと、
     をコンピュータに実行させる情報処理装置の制御プログラムを記録したコンピュータ読み取り可能な非一時的記録媒体。
  3.  平文を入力する平文入力手段と、
     初期ベクトルを生成する初期ベクトル生成手段と、
     前記平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
     前記初期ベクトルと前記ハッシュ値とを排他的論理和したマスク付き初期ベクトルを共通鍵ブロック暗号化し、暗号文の第2部分を生成する共通鍵ブロック暗号化手段と、
     前記第2部分を入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
     前記擬似乱数系列と前記平文とを排他的論理和した前記暗号文の第1部分と前記第2部分とを連結して暗号文として出力する暗号文出力手段と、
     を備える情報処理装置。
  4.  平文を入力する平文入力ステップと、
     初期ベクトルを生成する初期ベクトル生成ステップと、
     前記平文を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
     前記初期ベクトルと前記ハッシュ値とを排他的論理和したマスク付き初期ベクトルを共通鍵ブロック暗号化し、暗号文の第2部分を生成する共通鍵ブロック暗号化ステップと、
     前記第2部分を入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
     前記擬似乱数系列と前記平文とを排他的論理和した前記暗号文の第1部分と前記第2部分とを連結して暗号文として出力する暗号文出力ステップと、
     をコンピュータに実行させる情報処理装置の制御プログラムを記録したコンピュータ読み取り可能な非一時的記録媒体。
  5.  暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力手段と、
     前記第1部分を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
     前記ハッシュ値と前記暗号文の第2部分とを排他的論理和して得た暗号化初期ベクトルを入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
     前記暗号化初期ベクトルを共通鍵ブロック復号して、初期ベクトルを生成する共通鍵ブロック復号手段と、
     前記復号された初期ベクトルと初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
     前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を出力する平文出力手段と、
     を備える情報処理装置。
  6.  暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力ステップと、
     前記第1部分を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
     前記ハッシュ値と前記第2部分とを排他的論理和して得た暗号化初期ベクトルを入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
     前記暗号化初期ベクトルを共通鍵ブロック復号して、初期ベクトルを生成する共通鍵ブロック復号ステップと、
     前記生成された初期ベクトルと初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査ステップと、
     前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を出力する平文出力ステップと、
     をコンピュータに実行させる情報処理装置の制御プログラムを記録したコンピュータ読み取り可能な非一時的記録媒体。
  7.  暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力手段と、
     前記第2部分を入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
     前記第2部分を共通鍵ブロック復号し、マスク付き初期ベクトルを生成する共通鍵ブロック復号手段と、
     前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
     前記ハッシュ値と前記マスク付き初期ベクトルとを排他的論理和して復号された初期ベクトルと、初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
     前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記平文を出力する平文出力手段と、
     を備える情報処理装置。
  8.  暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力ステップと、
     前記第2部分を入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
     前記第2部分を共通鍵ブロック復号し、マスク付き初期ベクトルを生成する共通鍵ブロック復号ステップと、
     前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
     前記ハッシュ値と前記マスク付き初期ベクトルとを排他的論理和して復号された初期ベクトルと、初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査ステップと、
     前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記平文を出力する平文出力ステップと、
     をコンピュータに実行させる情報処理装置の制御プログラムを記録したコンピュータ読み取り可能な非一時的記録媒体。
  9.  平文と、過去の値と重複がないように生成された初期ベクトルとに基づいて暗号文を生成する認証暗号化方法であって、
     前記初期ベクトルを元に共通鍵ブロック暗号化を行ない、暗号化初期ベクトルを生成し、
     前記平文から前記暗号文の第1部分を生成するため、前記平文と排他的論理和する擬似乱数を、前記暗号化初期ベクトルを元に生成し、
     前記初期ベクトルから前記暗号文の第2部分を生成するため、前記暗号化初期ベクトルの生成における前記初期ベクトルの共通鍵ブロック暗号化に加えて前記初期ベクトルと排他的論理和する鍵付きハッシュ値を、前記平文を元に生成する、
     認証暗号化方法。
  10.  暗号文から、前記暗号文の元となった平文と、前記暗号文の生成に使用された初期ベクトルとを復号する認証復号方法であって、
     前記暗号文の第1部分から前記平文を復号するため、前記第1部分と排他的論理和する擬似乱数を、前記暗号文の第2部分を元に生成し、
     前記暗号文の第2部分を元に共通鍵ブロック復号を行ない、
     前記暗号文の第2部分から前記初期ベクトルを復号するため、前記共通鍵ブロック復号における前記第2部分の共通鍵ブロック復号に加えて前記第2部分と排他的論理和する鍵付きハッシュ値を、前記第1部分を元に生成する、
     認証復号方法。
PCT/JP2015/004099 2014-08-20 2015-08-18 認証暗号化方法、認証復号方法および情報処理装置 WO2016027454A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016543814A JP6740902B2 (ja) 2014-08-20 2015-08-18 認証暗号化方法、認証復号方法および情報処理装置
US15/504,886 US10623176B2 (en) 2014-08-20 2015-08-18 Authentication encryption method, authentication decryption method, and information-processing device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014167424 2014-08-20
JP2014-167424 2014-08-20

Publications (1)

Publication Number Publication Date
WO2016027454A1 true WO2016027454A1 (ja) 2016-02-25

Family

ID=55350417

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/004099 WO2016027454A1 (ja) 2014-08-20 2015-08-18 認証暗号化方法、認証復号方法および情報処理装置

Country Status (3)

Country Link
US (1) US10623176B2 (ja)
JP (1) JP6740902B2 (ja)
WO (1) WO2016027454A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112385175A (zh) * 2018-06-18 2021-02-19 皇家飞利浦有限公司 一种用于数据加密和完整性的设备
US11349668B2 (en) 2017-02-21 2022-05-31 Mitsubishi Electric Corporation Encryption device and decryption device

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10015152B2 (en) * 2014-04-02 2018-07-03 International Business Machines Corporation Securing data in a dispersed storage network
JP6557727B2 (ja) * 2014-12-03 2019-08-07 ナグラビジョン エス アー メッセージを暗号化/復号化するためのブロック暗号方法及びこの方法を実施するための暗号装置
US11438137B2 (en) * 2017-09-01 2022-09-06 Mitsubishi Electric Corporation Encryption device, decryption device, encryption method, decryption method, and computer readable medium
US11005663B2 (en) * 2018-08-13 2021-05-11 Seagate Technology Llc Secure audit scheme in a distributed data storage system
CN110995411B (zh) * 2019-11-13 2022-04-26 京东科技控股股份有限公司 加密、解密方法、装置、电子设备及存储介质
CN111600717B (zh) * 2020-05-12 2024-01-12 京东科技信息技术有限公司 基于sm2的解密方法、系统、电子设备及存储介质
CN111865584B (zh) * 2020-07-21 2023-02-28 南方电网科学研究院有限责任公司 基于伪随机数的数据破碎安全传输方法及装置
CN111934847B (zh) * 2020-08-18 2023-11-07 中金金融认证中心有限公司 一种基于des运算功耗获取密码设备密钥的方法
CN112152805A (zh) * 2020-09-25 2020-12-29 兴唐通信科技有限公司 一种认证加密方法、验证解密方法和通信方法
CN112187446A (zh) * 2020-09-25 2021-01-05 兴唐通信科技有限公司 一种认证加密方法、验证解密方法和通信方法
US11997189B2 (en) * 2021-02-26 2024-05-28 International Business Machines Corporation Encrypted communication using counter mode encryption and secret keys
US11838424B2 (en) * 2021-05-13 2023-12-05 Huawei Technologies Co., Ltd. Authenticated encryption apparatus with initialization-vector misuse resistance and method therefor
CN115412244B (zh) * 2022-10-31 2023-03-24 中孚信息股份有限公司 一种加密固件在线更新方法、系统及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6410750A (en) * 1987-07-02 1989-01-13 Mitsubishi Electric Corp Block encipherment device
JP2008122967A (ja) * 2006-11-13 2008-05-29 Korea Electronics Telecommun ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法
JP2012151805A (ja) * 2011-01-21 2012-08-09 Sharp Corp データ暗号化装置、及び、メモリカード

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10303883A (ja) 1997-04-24 1998-11-13 Fuji Xerox Co Ltd 暗号化方法
US7046802B2 (en) * 2000-10-12 2006-05-16 Rogaway Phillip W Method and apparatus for facilitating efficient authenticated encryption
JP3724399B2 (ja) * 2001-01-23 2005-12-07 株式会社日立製作所 疑似乱数生成装置またはそれを用いた暗号復号処理装置
US7418100B2 (en) 2004-10-20 2008-08-26 Cisco Technology, Inc. Enciphering method
US8213611B2 (en) * 2004-11-03 2012-07-03 Broadcom Corporation Two-stage block synchronization and scrambling
JP4750105B2 (ja) * 2005-03-23 2011-08-17 Kddi株式会社 キーストリーム暗号化装置および方法ならびにプログラム
JP5131187B2 (ja) * 2006-03-14 2013-01-30 日本電気株式会社 情報処理システム、情報処理方法および情報処理プログラム
JP5141558B2 (ja) * 2006-10-30 2013-02-13 日本電気株式会社 共通鍵ブロック暗号化装置、その方法、そのプログラム、及び記録媒体
JP5416544B2 (ja) 2009-10-20 2014-02-12 日本放送協会 データ配信装置、データ受信装置、データ配信プログラム、及び、データ受信プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6410750A (en) * 1987-07-02 1989-01-13 Mitsubishi Electric Corp Block encipherment device
JP2008122967A (ja) * 2006-11-13 2008-05-29 Korea Electronics Telecommun ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法
JP2012151805A (ja) * 2011-01-21 2012-08-09 Sharp Corp データ暗号化装置、及び、メモリカード

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHAE HOON LIM: "Message Encryption and Authentication Using One-Way Hash Functions", PROC. OF 3RD ANNUAL WORKSHOP ON SELECTED AREAS IN CRYPTOLOGY (SAC '96), August 1996 (1996-08-01), pages 1 - 11, Retrieved from the Internet <URL:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.51.3421&rep=repl&type=pdf> [retrieved on 20151028] *
MORRIS DWORKIN: "Recommendation for Block Ciper Modes of Operation: Galois/Counter Mode (GCM) and GMAC", NIST SPECIAL PUBLICATION 800-38D, 2007.11, COMPUTER SECURITY, pages 1 - 31, Retrieved from the Internet <URL:http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf> [retrieved on 20151028] *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11349668B2 (en) 2017-02-21 2022-05-31 Mitsubishi Electric Corporation Encryption device and decryption device
CN112385175A (zh) * 2018-06-18 2021-02-19 皇家飞利浦有限公司 一种用于数据加密和完整性的设备
US20210266175A1 (en) * 2018-06-18 2021-08-26 Koninklijke Philips N.V. Device for data encryption and integrity
JP2021528899A (ja) * 2018-06-18 2021-10-21 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. データの暗号化および完全性のためのデバイス
JP7362676B2 (ja) 2018-06-18 2023-10-17 コーニンクレッカ フィリップス エヌ ヴェ データの暗号化および完全性のためのデバイス
CN112385175B (zh) * 2018-06-18 2024-04-09 皇家飞利浦有限公司 一种用于数据加密和完整性的设备

Also Published As

Publication number Publication date
JP6740902B2 (ja) 2020-08-19
JPWO2016027454A1 (ja) 2017-06-08
US20170272239A1 (en) 2017-09-21
US10623176B2 (en) 2020-04-14

Similar Documents

Publication Publication Date Title
JP6740902B2 (ja) 認証暗号化方法、認証復号方法および情報処理装置
US8416947B2 (en) Block cipher using multiplication over a finite field of even characteristic
KR101091246B1 (ko) 간단하고 효율적인 원패스 인증 암호화 방법
US9537657B1 (en) Multipart authenticated encryption
JP6519473B2 (ja) 認証暗号装置、認証暗号方法および認証暗号用プログラム
JP5855696B2 (ja) 完全性検証を含むブロック暗号化方法およびブロック復号化方法
RU2005104945A (ru) Эффективное шифрование и аутентификация для систем обработки данных
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
JP7031580B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
WO2011105367A1 (ja) ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム
KR20140143210A (ko) 암호화 장치, 복호화 장치, 암호화 방법, 복호화 방법, 및 프로그램
WO2016067524A1 (ja) 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム
CN114844728B (zh) 序列化数据安全通信方法及大数据平台
US8804953B2 (en) Extensive ciphertext feedback
US20140198912A1 (en) Block Cipher Modes of Non-Malleable Operation
WO2020213114A1 (ja) Macタグリスト生成装置、macタグリスト検証装置、方法及びプログラム
JP6167721B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム
CN103634113B (zh) 一种带用户/设备身份认证的加解密方法及装置
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
Sarkar et al. A Survey on the Advanced Encryption Standard (AES): A Pillar of Modern Cryptography
Alenezi et al. On the performance of AES algorithm variants
WO2009081975A1 (ja) 暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
Jasim A Proposed Intelligent Stream Cipher to Advance Network Security
US20160156459A1 (en) Method for encryption authentication and decryption verification and electronic apparatus suitable for small memory implementation environment
Narayanan et al. A Comparative Study and Performance Evaluation of Cryptographic Algorithms: AES and Blowfish

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016543814

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15504886

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15833107

Country of ref document: EP

Kind code of ref document: A1