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

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

Info

Publication number
WO2019043921A1
WO2019043921A1 PCT/JP2017/031639 JP2017031639W WO2019043921A1 WO 2019043921 A1 WO2019043921 A1 WO 2019043921A1 JP 2017031639 W JP2017031639 W JP 2017031639W WO 2019043921 A1 WO2019043921 A1 WO 2019043921A1
Authority
WO
WIPO (PCT)
Prior art keywords
variable
data
bits
updated
encryption
Prior art date
Application number
PCT/JP2017/031639
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 JP2019538890A priority Critical patent/JP6735926B2/ja
Priority to PCT/JP2017/031639 priority patent/WO2019043921A1/ja
Priority to US16/630,741 priority patent/US11438137B2/en
Priority to CN201780094168.5A priority patent/CN111052670B/zh
Priority to EP17923165.9A priority patent/EP3661115B1/en
Publication of WO2019043921A1 publication Critical patent/WO2019043921A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating the length of blocks of bits, e.g. padding or block truncation

Definitions

  • the present invention relates to an authentication encryption algorithm using a block cipher.
  • the authentication encryption algorithm is an encryption algorithm that realizes the concealment function and the tampering detection function. Using the authentication encryption algorithm, the two parties can communicate after concealing the message, and the recipient can confirm whether or not the transmitted message has been falsified.
  • the authentication encryption algorithm comprises two algorithms: an encryption function Enc and a decryption function Dec.
  • the encryption function Enc is a function that receives the secret key K, the initial parameter N, the public data A, and the message m, and outputs a ciphertext C and an authentication code T for tampering detection. Note that a different value is used for the initial parameter N for each encryption.
  • the decryption function Dec receives the secret key K, the initial parameter N, the public data A, the ciphertext C, and the authentication code T for tampering detection. If the ciphertext C or the like is not tampered with, the message is a message It is a function that outputs m and does not output the message m when the ciphertext C or the like is falsified.
  • the sender Alice and the receiver Bob communicate using an authentication encryption algorithm.
  • the sender Alice calculates the ciphertext C and the authentication code T for tampering detection from the secret key K, the initial parameter N, the public data A, and the message m using the encryption function Enc. .
  • the sender Alice sends the initial parameter N, the public data A, the ciphertext C, and the authenticator T for tampering detection to the receiver Bob.
  • the recipient Bob uses the secret key K, the initial parameter N, the public data A, the ciphertext C, and the authentication code T for tampering detection as the input of the decryption function Dec.
  • the decryption function Dec outputs a message m when none of the initial parameter N, the public data A, the ciphertext C, and the authentication code T for tampering detection is tampered with.
  • the secret key K is shared in advance by Alice and Bob.
  • the public data A is a value that may be published.
  • the public data A may be absent.
  • the block cipher comprises an encryption function E and a decryption function D.
  • the size n of the message m of the block cipher and the ciphertext c is called a block size.
  • the encryption function E and the decryption function D of the block cipher become n-bit permutation functions.
  • the encryption function Enc of the authentication encryption is configured using the encryption function E of the block encryption. Further, the decryption function Dec of the authentication encryption is configured using the encryption function E or the decryption function D of the block encryption.
  • both the encryption function E and the decryption function D of the block encryption will be used in the authentication encryption.
  • both the encryption function E and the decryption function D of the block encryption in the authentication encryption it is necessary to implement both the encryption function E and the decryption function D.
  • both programs of the encryption function E and the decryption function D are required, and in the case of hardware implementation, circuits of both the encryption function E and the decryption function D are required.
  • the decryption function Dec of the authentication encryption uses the encryption function E of the block encryption
  • only the encryption function E of the block encryption is used in the authentication encryption.
  • the implementation of the decryption function D is unnecessary. Therefore, the size of software or hardware is reduced. The size of software and the size of hardware are called implementation size.
  • AES-GCM described in Non-Patent Document 2 as an authentication encryption algorithm that can be implemented only by block encryption E.
  • the AES-GCM implements the encryption function Enc and the decryption function Dec of the authentication encryption using counter mode in order to realize the concealment function.
  • AES-GCM uses multiplication on the Galois field GF (2 n ) in order to realize the tampering detection function.
  • the counter mode which is an algorithm of the concealment function
  • an exclusive OR XOR operation is used in addition to the encryption function E of the block cipher. Therefore, in AES-GCM, in addition to the encryption function E, it is necessary to implement multiplication on the Galois field GF (2 n ) and exclusive OR.
  • Non-Patent Document 3 describes an authentication encryption algorithm JAMBU configured only by an encryption function E and an exclusive OR XOR. Since JAMBU does not require multiplication on the Galois field GF (2 n ), the implementation size is smaller than that of AES-GCM. In the encryption function Enc or the decryption function Dec of the authentication encryption algorithm JAMBU, encryption is performed while updating the 3n / 2-bit internal variable using E of the block encryption.
  • FIPS 197 Advanced Encryption Standard (AES).
  • AES Advanced Encryption Standard
  • NIST Special Publication 800-38D Recommendation for Block Cipher Modes of Operation: Galois / Counter Mode (GCM) and GMAC.
  • GCM Galois / Counter Mode
  • GMAC GMAC
  • the size of the internal variables used when executing the authentication encryption algorithm is also important. If it becomes an inexpensive device such as an embedded device, the RAM size and the ROM size become smaller. Thus, when the implementation environment is limited, it is desirable that the implementation size and the internal variable size be as small as possible.
  • the internal variables are values updated by the block cipher E. For example, the internal variable size of JAMBU is 3n / 2 bits. Also, the internal variable size of AES-GCM needs 2n bits or more.
  • An object of the present invention is to realize an authentication encryption algorithm capable of reducing the implementation size and the internal variable size.
  • a ciphertext generation unit that generates the ciphertext C of the message M by concatenating the data C [i] for each integer i of m and m; And an authenticator generation unit for extracting an integer t bit of 1 or more from the variable S last updated by the function calculation unit as an authenticator T.
  • the authentication encryption algorithm can be configured from the encryption function E of the block encryption and the exclusive OR XOR. Also, the size of the variable S which is an internal variable is n bits. Therefore, it is possible to make the size of the internal variable smaller than that of the authentication encryption algorithm JAMBU while making the mounting size equal to that of the authentication encryption algorithm JAMBU.
  • FIG. 1 is a block diagram of an encryption device 10 according to a first embodiment.
  • FIG. 2 is a configuration diagram of a decoding device 20 according to Embodiment 1.
  • 6 is a flowchart showing the operation of the encryption device 10 according to the first embodiment. Explanatory drawing of operation
  • FIG. 6 is a flowchart showing an operation of the decoding device 20 according to Embodiment 1. Explanatory drawing of operation
  • FIG. FIG. 8 is a block diagram of an encryption device 10 according to a first modification.
  • FIG. 8 is a block diagram of a decoding device 20 according to a modification 1; FIG.
  • FIG. 6 is a block diagram of an encryption device 10 according to a second embodiment.
  • FIG. 8 is a block diagram of a decoding device 20 according to a second embodiment.
  • 6 is a flowchart showing the operation of the encryption device 10 and the decryption device 20 according to the second embodiment. Explanatory drawing of operation
  • Embodiment 1 In the first embodiment, an authentication encryption algorithm configured using an encryption function E of a block encryption of block size n will be described.
  • the integer t satisfies the relationship of t ⁇ n.
  • y the y-bit representation of the integer x be str [y] (x).
  • str [4] (2) 0010.
  • the upper w bits of the n-bit bit string z are msb [w] (z), and the lower w bits are Lsb [w] (z).
  • the bit length of the bit string w be Len (w). const [1], const [2] and const [3] are non-zero integers and all have different values.
  • the configuration of the encryption device 10 according to the first embodiment will be described with reference to FIG.
  • the encryption device 10 includes hardware of a processor 11, a memory 12, a storage 13, and a communication interface 14.
  • the processor 11 is connected to other hardware via a signal line to control these other hardware.
  • the encryption device 10 includes, as functional components, the reception unit 111, the division unit 112, the variable setting unit 113, the function calculation unit 114, the authenticator generation unit 115, the ciphertext generation unit 116, and the output unit 117. And
  • the function of each functional component of the encryption device 10 is realized by software.
  • the storage 13 stores programs for realizing the functions of the functional components of the encryption device 10. The program is read into the memory 12 by the processor 11 and executed by the processor 11. Thereby, the function of each functional component of the encryption device 10 is realized.
  • the decryption device 20 includes hardware of a processor 21, a memory 22, a storage 23, and a communication interface 24.
  • the processor 21 is connected to other hardware via a signal line to control these other hardware.
  • the decryption apparatus 20 includes, as functional components, a reception unit 211, a division unit 212, a variable setting unit 213, a function calculation unit 214, an authentication code generation unit 215, a message generation unit 216, and an output unit 217.
  • the function of each functional component of the decoding device 20 is realized by software.
  • the storage 23 stores a program for realizing the function of each functional component of the decryption device 20.
  • the program is read into the memory 22 by the processor 21 and executed by the processor 21. Thereby, the function of each functional component of the decoding device 20 is realized.
  • the processors 11 and 21 are integrated circuits (ICs) that perform processing.
  • the processors 11 and 21 are a central processing unit (CPU), a digital signal processor (DSP), and a graphics processing unit (GPU).
  • CPU central processing unit
  • DSP digital signal processor
  • GPU graphics processing unit
  • the memories 12 and 22 are storage devices for temporarily storing data.
  • the memories 12 and 22 are a static random access memory (SRAM) and a dynamic random access memory (DRAM).
  • the storages 13 and 23 are storage devices for storing data.
  • the storages 13 and 23 are HDDs (Hard Disk Drives) as a specific example.
  • the storages 13 and 23 may be SD (Secure Digital) memory card, CF (Compact Flash (registered trademark)), NAND flash, flexible disk, optical disk, compact disk, Blu-ray (registered trademark) disk, DVD (Digital Versatile Disk), etc. It may be a portable storage medium.
  • the communication interfaces 14 and 24 are interfaces for communicating with an external device.
  • the communication interfaces 14 and 24 are ports of Ethernet (registered trademark), USB (Universal Serial Bus), and HDMI (registered trademark, High-Definition Multimedia Interface) as a specific example.
  • the operation of the encryption device 10 according to the first embodiment corresponds to the encryption method according to the first embodiment.
  • the operation of the encryption device 10 according to the first embodiment corresponds to the process of the encryption program according to the first embodiment.
  • the operation of the decoding device 20 according to the first embodiment corresponds to the decoding method according to the first embodiment. Also, the operation of the decoding device 20 according to the first embodiment corresponds to the process of the decoding program according to the first embodiment.
  • Step S11 Reception process
  • the receiving unit 111 receives an input of the message M to be encrypted. Specifically, the receiving unit 111 receives, via the communication interface 14, the message M input by the user operating the input device.
  • Step S12 split processing
  • the division unit 112 determines whether or not the length Len (M) of the message M accepted in step S11 is a multiple of b bits. If the length Len (M) is not a multiple of b bits, add 1 after message M and a bit string of 0 after that so that the length Len (M) will be a multiple of b bits. To generate data M * . On the other hand, when the length Len (M) is a multiple of b bits, the message M is treated as data M * .
  • Dividing section 112 divides data M * into b bits from the beginning to generate data M [1],. . . , M [m] are generated. “M” is an integer of 1 or more.
  • Step S13 Variable setting process
  • the variable setting unit 113 receives the n-bit data S 0 and the data Y in which the c ′ ′ bit constant const [1] is connected to the b ′ ′ bit initial parameter N and calculates the exclusive OR.
  • data S 0 is fixed data IV.
  • the variable S inside the encryption device 10 is a variable stored in the memory 12 of the encryption device 10.
  • Step S14 Function Calculation Processing
  • the following processes A to C are executed in ascending order with respect to each integer i of m and m.
  • the function calculator 114 updates the variable S by setting the obtained data to the variable S by calculating the encryption function E of the block cipher with the variable S and the key K as inputs.
  • the function calculation unit 114 is obtained by calculating the exclusive OR with the variable S updated in the process A and the data X [i] obtained by adding the bit string of c bits to the data M [i].
  • the variable S is updated by setting data to the variable S.
  • the function calculator 114 extracts b bits from the variable S updated in the process B to generate data C [i].
  • Step S15 Authenticator Generation Processing
  • the authenticator generation unit 115 calculates an exclusive OR by using the variable S calculated in step S14 and the constant const [2] as inputs.
  • the variable S is updated by setting the obtained data to the variable S.
  • the authenticator generation unit 115 calculates an exclusive OR by using the variable S calculated in step S14 and the constant const [3] as inputs.
  • the variable S is updated by setting the obtained data to the variable S.
  • Step S16 Ciphertext Generation Process
  • Step S17 Output process
  • the output unit 117 outputs the authenticator T calculated in step S15 and the ciphertext C generated in step S16. Specifically, the output unit 117 transmits the authenticator T and the ciphertext C to the decryption device 20 via the communication interface 14.
  • Step S21 Reception process
  • the accepting unit 211 accepts inputs of the authenticator T and the ciphertext C. Specifically, the accepting unit 111 receives the authenticator T and the ciphertext C transmitted by the encryption device 10 via the communication interface 24.
  • Step S22 split processing
  • the dividing unit 212 divides the ciphertext C accepted in step S21 into b bits from the beginning, and generates data C [1],. . . , Data C [m] are generated. If the length Len (C) of the ciphertext C is not a multiple of b bits, the length Len (C [m]) of the data C [m] is shorter than the b bits, and the length Len (C) is If it is a multiple of b bits, then the length Len (C [m]) will be b bits.
  • Step S23 Variable setting process
  • the variable setting unit 213 calculates an exclusive OR by using n-bit data S 0 and data Y in which the c ′ ′ bit constant const [1] is connected to the b ′ ′ bit initial parameter N.
  • data S 0 is a fixed value IV.
  • Data S 0 to be set here is the same data as the data S 0 to be set in step S13 in FIG.
  • the variable S inside the decoding device 20 is a variable stored in the memory 22 of the decoding device 20.
  • Step S24 Function Calculation Processing
  • the following processes A ′ to C ′ are executed in ascending order with respect to each integer i of m and m ⁇ 1. Thereafter, the function calculation unit 214 executes processing E ′ from processing D ′.
  • the function calculation unit 214 updates the variable S by setting the obtained data to the variable S by calculating the encryption function E of the block cipher with the variable S and the key K as inputs.
  • the function calculator 214 calculates data X [i] by calculating exclusive OR with the b bits extracted from the variable S updated in the process A ′ and the data C [i] as inputs.
  • the function calculation unit 214 obtains an exclusive OR by using the variable S updated in the process A ′ and data X [i] obtained by adding a bit string of c bits to data M [i] as input.
  • the variable S is updated by setting the obtained data to the variable S.
  • the function calculation unit 214 receives the variable S updated in the process C ′ and the data X [m] obtained by adding the bit string of c bits to the data M * [m] as an input and calculates an exclusive OR.
  • the variable S is updated by setting the obtained data to the variable S.
  • Step S25 Authenticator Generation Processing
  • the authenticator generation unit 215 calculates an exclusive OR by using the variable S calculated in step S24 and the constant const [2] as inputs.
  • the variable S is updated by setting the obtained data to the variable S.
  • the authenticator generation unit 215 calculates an exclusive OR by using the variable S calculated in step S24 and the constant const [3] as inputs. Then, the variable S is updated by setting the obtained data to the variable S.
  • Step S26 Message generation processing
  • Step S27 Output process
  • the output unit 217 outputs the message M generated in step S26 when the authenticator T accepted in step S21 matches the authenticator T 'calculated in step S26. Specifically, the output unit 217 transmits the message M to a display device or the like via the communication interface 24. On the other hand, when the authenticator T accepted in step S21 does not match the authenticator T 'calculated in step S26, the output unit 217 indicates that the authenticator T and the authenticator T' do not coincide. Print out the indicated message.
  • the encryption device 10 and the decryption device 20 according to the first embodiment do not use the decryption function of the block encryption, and use the authentication encryption algorithm from the encryption function E of the block encryption and the exclusive OR XOR. It is configurable. Also, the size of the variable S which is an internal variable is n bits. Therefore, it is possible to make the size of the internal variable smaller than that of the authentication encryption algorithm JAMBU while making the mounting size equal to that of the authentication encryption algorithm JAMBU.
  • the encryption device 10 includes an electronic circuit 15 instead of the processor 11, the memory 12, and the storage 13.
  • the electronic circuit 15 is a dedicated electronic circuit that realizes the functions of each part of the encryption device 10 and the functions of the memory 12 and the storage 13.
  • the decoding device 20 includes an electronic circuit 25 instead of the processor 21, the memory 22, and the storage 23.
  • the electronic circuit 25 is a dedicated electronic circuit that realizes the functions of each part of the decoding device 20 and the functions of the memory 22 and the storage 23.
  • the electronic circuits 15 and 25 are a single circuit, a complex circuit, a programmed processor, a parallel programmed processor, a logic IC, a gate array (GA), an application specific integrated circuit (ASIC), and a field-programmable gate array (FPGA). Is assumed.
  • the function of each part of the encryption device 10 may be realized by one electronic circuit 15, or the function of each part of the encryption device 10 may be distributed to a plurality of electronic circuits 15.
  • the function of each part of the decoding device 20 may be realized by one electronic circuit 25, or the function of each part of the decoding device 20 may be distributed to a plurality of electronic circuits 25.
  • ⁇ Modification 2> As a second modification, some functions may be realized by hardware, and other functions may be realized by software. That is, among the functional components of the encryption device 10, some functions may be realized by hardware and other functions may be realized by software. Similarly, in the decoding device 20, among the functional components, some functions may be implemented by hardware and other functions may be implemented by software.
  • the processors 11 and 21, the memories 12 and 22, the storages 13 and 23, and the electronic circuits 15 and 25 are referred to as processing circuits. That is, the functions of the respective units of the encryption device 10 and the decryption device 20 are realized by the processing circuit.
  • the second embodiment differs from the first embodiment in that public data A is present. In the second embodiment, this difference will be described, and the description of the same point will be omitted.
  • const [4] and const [5] are different values. Also, const [4] and const [5] are different values from const [1].
  • the configuration of the encryption device 10 according to the second embodiment will be described with reference to FIG.
  • the encryption device 10 differs from the encryption device 10 shown in FIG. 1 in that the encryption device 10 includes a pre-calculation unit 118 as a functional component.
  • the pre-calculation unit 118 is implemented by software or hardware, as with other functional components.
  • the configuration of the decoding apparatus 20 according to the second embodiment will be described with reference to FIG.
  • the decoding device 20 differs from the decoding device 20 illustrated in FIG. 2 in that the pre-calculation unit 218 is provided as a functional component.
  • the pre-calculation unit 218 is implemented by software or hardware, as with other functional components.
  • the operations of the encryption device 10 and the decryption device 20 according to the second embodiment will be described with reference to FIGS. 11 to 12.
  • the operation of the encryption device 10 according to the second embodiment corresponds to the encryption method according to the second embodiment.
  • the operation of the encryption device 10 according to the second embodiment corresponds to the process of the encryption program according to the second embodiment.
  • the operation of the decoding device 20 according to the second embodiment corresponds to the decoding method according to the second embodiment.
  • the operation of the decoding device 20 according to the second embodiment corresponds to the processing of the decoding program according to the second embodiment.
  • the encryption apparatus 10 executes the process shown in FIG. Specifically, the encryption device 10 executes the process shown in FIG. 3 with the variable S calculated in the process E ′ ′ in FIG. 11 as the data S 0 in step S13 in FIG. 3.
  • the decoding device 20 executes the process shown in FIG. Specifically, the decoding device 20 performs the process shown in FIG. 5 with the variable S calculated in the process E ′ ′ in FIG. 11 as the data S 0 in step S23 in FIG.
  • the decryption apparatus 20 executes the process shown in FIG. 11, the receiving unit 111, the dividing unit 112, the precalculation unit 118, and the communication interface 14 are used, and the receiving unit 211, the division unit 212, the precalculation unit 218, and the communication interface It should be read as 24.
  • Step S31 Reception process
  • the receiving unit 111 receives an input of the public data A. Specifically, the reception unit 111 receives, via the communication interface 14, the public data A input by the user operating the input device.
  • the accepting unit 111 may acquire the public data A from an external server or the like.
  • Step S32 split processing
  • the division unit 112 determines whether or not the length Len (A) of the open data A accepted in step S31 is a multiple of the b ′ bit.
  • the length Len (A) is not a multiple of b 'bits, 1 is added after the public data A so that the length Len (A) is a multiple of b' bits, and a bit string of 0 after that To generate data A * .
  • the length Len (A) is a multiple of b 'bits
  • the public data A is treated as data A * .
  • Division unit 112 divides public data A accepted in step S31 into b 'bits, and generates b'-bit data A [1],. . . , Data A [a] are generated.
  • "A" is an integer of 1 or more.
  • Step S33 Variable setting process
  • the variable setting unit 113 sets n-bit fixed data IV to a variable S inside the encryption device 10.
  • const [1], const [2], const [3], const [4] and const [5] are data in which the lower c ′ bits are different.
  • Step S34 Pre-calculation processing
  • Process a ′ ′ to process b ′ ′ are executed in ascending order with respect to each integer i of, a ⁇ 1. Thereafter, the process E ′ ′ is executed from the process C ′ ′.
  • the pre-calculation unit 118 receives the variable S and data X * [i] obtained by adding the bit sequence of c ′ bits to the data A [i] as an input and calculates the exclusive OR, and obtains the obtained data as the variable S
  • the variable S is updated by setting.
  • the pre-calculation unit 118 receives the variable S and data X * [a] obtained by adding the bit string of c ′ bits to the data A [a] as an input to calculate an exclusive OR, and obtains the obtained data as a variable S
  • the variable S is updated by setting.
  • the pre-calculation unit 118 receives the variable S calculated in the process B''and the constant const [4] as an exclusive OR.
  • the variable S is updated by calculating and setting the obtained data as the variable S.
  • the pre-calculation unit 118 receives the variable S calculated in the process B''and the constant const [5] as an exclusive OR. Is calculated, and the variable S is updated by setting the obtained data to the variable S.
  • the encryption apparatus 10 and the decryption apparatus 20 according to the second embodiment are exclusive with the encryption function E of the block cipher without using the decryption function of the block cipher even when there is public data A.
  • the authentication encryption algorithm can be configured from the logical sum XOR.
  • the size of the variable S which is an internal variable is n bits. Therefore, it is possible to make the size of the internal variable smaller than that of the authentication encryption algorithm JAMBU while making the mounting size equal to that of the authentication encryption algorithm JAMBU.
  • the value of the integer c is determined in consideration of safety.
  • the authentication encryption algorithm described in the first and second embodiments is called when the number of times of the encryption function E of the block cipher called by the encryption function Enc exceeds 2 n / 2 times or when the verification function Dec fails verification. Security can be secured until the number of times of the encryption function E of the block cipher exceeds 2 c . If the number of times of the encryption function E of the block cipher to be called exceeds these times, it is necessary to exchange the key K to secure the security. For example, to limit the number of times of the encryption function E of a block cipher to be called upon verification failure in decryption function Dec 2 16, the minimum value of an integer c is 16.
  • DESCRIPTION OF SYMBOLS 10 Encryption device, 11 processor, 12 memory, 13 storage, 14 communication interface, 15 electronic circuit, 111 reception part, 112 division part, 113 variable setting part, 114 function calculation part, 115 authenticator generation part, 116 ciphertext generation , 117 output unit, 118 pre-calculation unit, 20 decoding device, 21 processor, 22 memory, 23 storage, 24 communication interface, 25 electronic circuit, 211 reception unit, 212 division unit, 213 variable setting unit, 214 function calculation unit, 215 authenticator generation unit, 216 message generation unit, 217 output unit, 218 pre-calculation unit.

Landscapes

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

Abstract

暗号化装置(10)は、メッセージMをbビット毎に分割してデータM[1],...,データM[m]を生成する。暗号化装置(10)は、n=b+cビットのデータS0を変数Sに設定し、i=1,...,mの各整数iについて昇順に、変数Sを入力としてブロック暗号Eを計算して変数Sを更新し、更新された変数SとデータM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して変数Sを更新し、更新された変数Sからbビットを抽出してデータC[i]を生成する。暗号化装置(10)は、i=1,...,mの各整数iについてのデータC[i]を連結してメッセージMの暗号文Cを生成する。暗号化装置(10)は、変数Sから1以上の整数tビットを認証子Tとして抽出する。

Description

暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
 この発明は、ブロック暗号を用いた認証暗号アルゴリズムに関する。
 認証暗号アルゴリズムは、秘匿機能と改ざん検知機能とを実現する暗号アルゴリズムである。認証暗号アルゴリズムを用いると、2者間でメッセージを秘匿した上で通信できるとともに、送信されたメッセージが改ざんされているか否かを受信者が確認できる。
 認証暗号アルゴリズムは、暗号化関数Encと復号関数Decとの2つのアルゴリズムを備える。
 暗号化関数Encは、秘密鍵Kと、初期パラメータNと、公開データAと、メッセージmとを入力とし、暗号文Cと改ざん検知用の認証子Tとを出力する関数である。なお、初期パラメータNは暗号化毎に異なる値が用いられる。
 復号関数Decは、秘密鍵Kと、初期パラメータNと、公開データAと、暗号文Cと、改ざん検知用の認証子Tとを入力とし、暗号文C等が改ざんされていない場合にはメッセージmを出力し、暗号文C等が改ざんされている場合にはメッセージmを出力しない関数である。
 送信者Aliceと受信者Bobとが認証暗号アルゴリズムを用いた通信を行うとする。この場合、送信者Aliceは、秘密鍵Kと、初期パラメータNと、公開データAと、メッセージmとから暗号化関数Encを用いて、暗号文Cと改ざん検知用の認証子Tとを計算する。そして、送信者Aliceは、初期パラメータNと、公開データAと、暗号文Cと、改ざん検知用の認証子Tとを受信者Bobに送信する。受信者Bobは、秘密鍵Kと、初期パラメータNと、公開データAと、暗号文Cと、改ざん検知用の認証子Tとを復号関数Decの入力とする。復号関数Decは、初期パラメータNと、公開データAと、暗号文Cと、改ざん検知用の認証子Tとのいずれも改ざんされていない場合はメッセージmを出力する。
 なお、秘密鍵Kは、事前にAliceとBobとで共有されている。また、公開データAは公開してもよい値である。公開データAは、無くても構わない。
 認証暗号アルゴリズムの構成方法として、非特許文献1に記載されたAES(Advanced Encryption Standard)等のブロック暗号を用いる方法がある。
 ブロック暗号は、暗号化関数Eと復号関数Dとから構成される。暗号化関数Eは、鍵Kとnビットのメッセージmとを入力とし、nビットの暗号文cを出力する関数である。これをc=E(m)と書く。復号関数Dは、鍵Kとnビットの暗号文cとを入力とし、nビットのメッセージmを出力する関数である。これをm=D(c)と書く。
 ブロック暗号のメッセージm及び暗号文cのサイズnはブロックサイズと呼ばれる。ブロック暗号の暗号化関数E及び復号関数Dは、鍵Kを固定するとnビットの置換関数となる。ブロックサイズnはブロック暗号によって定義されるパラメータで、AESの場合n=128である。
 認証暗号の暗号化関数Encは、ブロック暗号の暗号化関数Eを用いて構成される。また、認証暗号の復号関数Decは、ブロック暗号の暗号化関数E又は復号関数Dを用いて構成される。
 認証暗号の復号関数Decがブロック暗号の復号関数Dを用いて構成される場合、認証暗号でブロック暗号の暗号化関数E及び復号関数Dの両方を用いることになる。認証暗号でブロック暗号の暗号化関数E及び復号関数Dの両方を用いる場合、暗号化関数E及び復号関数Dを両方実装する必要がある。例えば、ソフトウェアで実装する場合、暗号化関数E及び復号関数Dの両方のプログラムが必要となり、ハードウェアで実装する場合、暗号化関数E及び復号関数Dの両方の回路等が必要となる。
 一方、認証暗号の復号関数Decがブロック暗号の暗号化関数Eを用いる場合、認証暗号でブロック暗号の暗号化関数Eのみを用いることになる。認証暗号でブロック暗号の暗号化関数Eのみを用いる場合、復号関数Dの実装が不要となる。そのため、ソフトウェア又はハードウェアのサイズが小さくなる。ソフトウェアのサイズ及びハードウェアのサイズを実装サイズと呼ぶ。
 ブロック暗号のEのみで実装可能な認証暗号アルゴリズムとして、非特許文献2に記載されたAES-GCMがある。AES-GCMは、秘匿機能を実現するためにカウンターモードを用いて認証暗号の暗号化関数Enc及び復号関数Decを実現している。また、AES-GCMは、改ざん検知機能を実現するために、ガロア体GF(2)上の掛け算を用いている。秘匿機能のアルゴリズムであるカウンターモードでは、ブロック暗号の暗号化関数Eの他に、排他的論理和XOR演算を用いる。
 よって、AES-GCMでは、暗号化関数Eの他に、ガロア体GF(2)上の掛け算と排他的論理和とを実装する必要がある。
 非特許文献3には、暗号化関数Eと排他的論理和XORのみから構成される認証暗号アルゴリズムJAMBUが記載されている。JAMBUは、ガロア体GF(2)上の掛け算が必要ないため、AES-GCMと比べ実装サイズが小さい。
 認証暗号アルゴリズムJAMBUの暗号化関数Encまたは復号関数Decでは、ブロック暗号のEを用いて3n/2ビットの内部変数を更新しながら暗号化を行っていく。
FIPS 197, Advanced Encryption Standard (AES). NIST Special Publication 800-38D, Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC. Submitted to the CAESAR competition, The JAMBU Lightweight Authentication Encryption Mode (v2.1).
 実装サイズに加え、認証暗号アルゴリズムの実行時に使用される内部変数のサイズも重要である。組み込み機器といった安価な機器になるとRAMサイズ及びROMサイズが小さくなる。このように、実装環境が制限されている場合、実装サイズ及び内部変数サイズはできるだけ小さいほうが望ましい。内部変数は、ブロック暗号Eによってアップデートされる値である。例えば、JAMBUの内部変数サイズは3n/2ビットである。また、AES-GCMの内部変数サイズは2nビット以上必要となる。
 この発明は、実装サイズ及び内部変数サイズが小さくすることが可能な認証暗号アルゴリズムを実現することを目的とする。
 この発明に係る暗号化装置は、
 メッセージMをbビット毎に分割して、bビットのデータM[1],...,データM[m]を生成する分割部と、
 n=b+cビットのデータSを変数Sに設定し、i=1,...,mの各整数iについて昇順に、前記変数Sを入力としてブロック暗号Eを計算したデータにより前記変数Sを更新し、更新された前記変数SとデータM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算したデータにより前記変数Sを更新し、更新された前記変数Sからbビットを抽出してデータC[i]を生成する関数計算部と、
 i=1,...,mの各整数iについての前記データC[i]を連結して前記メッセージMの暗号文Cを生成する暗号文生成部と、
 前記関数計算部によって最後に更新された前記変数Sから1以上の整数tビットを認証子Tとして抽出する認証子生成部と
を備える。
 この発明では、ブロック暗号の暗号化関数Eと排他的論理和XORとから認証暗号アルゴリズムを構成可能である。また、内部変数である変数Sのサイズはnビットである。したがって、実装サイズを認証暗号アルゴリズムJAMBUと同等にしつつ、内部変数のサイズを認証暗号アルゴリズムJAMBUよりも小さくすることができる。
実施の形態1に係る暗号化装置10の構成図。 実施の形態1に係る復号装置20の構成図。 実施の形態1に係る暗号化装置10の動作を示すフローチャート。 実施の形態1に係る暗号化装置10の動作の説明図。 実施の形態1に係る復号装置20の動作を示すフローチャート。 実施の形態1に係る復号装置20の動作の説明図。 変形例1に係る暗号化装置10の構成図。 変形例1に係る復号装置20の構成図。 実施の形態2に係る暗号化装置10の構成図。 実施の形態2に係る復号装置20の構成図。 実施の形態2に係る暗号化装置10及び復号装置20の動作を示すフローチャート。 実施の形態2に係る暗号化装置10及び復号装置20の動作の説明図。
 実施の形態1.
 実施の形態1では、ブロックサイズnのブロック暗号の暗号化関数Eを用いて構成された認証暗号アルゴリズムを説明する。
 ***変数及び記法の説明***
 以下の説明における変数及び記法について説明する。
 整数bと整数cと整数b’’と整数c’’とは、c=n-b、c’’=n-b’’の関係を満たす。また、整数tは、t≦nの関係を満たす。
 整数xのyビット表現をstr[y](x)とする。例えば、str[4](2)=0010である。nビットのビット列zの上位wビットをmsb[w](z)、下位wビットをLsb[w](z)とする。ビット列wのビット長をLen(w)とする。
 const[1]とconst[2]とconst[3]とは、0ではない整数であり、すべて異なる値である。
 ***構成の説明***
 図1を参照して、実施の形態1に係る暗号化装置10の構成を説明する。
 暗号化装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 暗号化装置10は、機能構成要素として、受付部111と、分割部112と、変数設定部113と、関数計算部114と、認証子生成部115と、暗号文生成部116と、出力部117とを備える。暗号化装置10の各機能構成要素の機能はソフトウェアにより実現される。
 ストレージ13には、暗号化装置10の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、暗号化装置10の各機能構成要素の機能が実現される。
 図2を参照して、実施の形態1に係る復号装置20の構成を説明する。
 復号装置20は、プロセッサ21と、メモリ22と、ストレージ23と、通信インタフェース24とのハードウェアを備える。プロセッサ21は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 復号装置20は、機能構成要素として、受付部211と、分割部212と、変数設定部213と、関数計算部214と、認証子生成部215と、メッセージ生成部216と、出力部217とを備える。復号装置20の各機能構成要素の機能はソフトウェアにより実現される。
 ストレージ23には、復号装置20の各機能構成要素の機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ21によりメモリ22に読み込まれ、プロセッサ21によって実行される。これにより、復号装置20の各機能構成要素の機能が実現される。
 プロセッサ11,21は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ11,21は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
 メモリ12,22は、データを一時的に記憶する記憶装置である。メモリ12,22は、具体例としては、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
 ストレージ13,23は、データを保管する記憶装置である。ストレージ13,23は、具体例としては、HDD(Hard Disk Drive)である。また、ストレージ13,23は、SD(Secure Digital)メモリカード、CF(CompactFlash,登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記憶媒体であってもよい。
 通信インタフェース14,24は、外部の装置と通信するためのインタフェースである。通信インタフェース14,24は、具体例としては、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標,High-Definition Multimedia Interface)のポートである。
 ***動作の説明***
 図3から図6を参照して、実施の形態1に係る暗号化装置10及び復号装置20の動作を説明する。
 実施の形態1に係る暗号化装置10の動作は、実施の形態1に係る暗号化方法に相当する。また、実施の形態1に係る暗号化装置10の動作は、実施の形態1に係る暗号化プログラムの処理に相当する。
 実施の形態1に係る復号装置20の動作は、実施の形態1に係る復号方法に相当する。また、実施の形態1に係る復号装置20の動作は、実施の形態1に係る復号プログラムの処理に相当する。
 図3及び図4を参照して、実施の形態1に係る暗号化装置10の動作を説明する。
 (ステップS11:受付処理)
 受付部111は、暗号化する対象のメッセージMの入力を受け付ける。
 具体的には、受付部111は、利用者によって入力装置が操作され入力されたメッセージMを、通信インタフェース14を介して受信する。
 (ステップS12:分割処理)
 分割部112は、ステップS11で受け付けられたメッセージMの長さLen(M)がbビットの倍数であるか否かを判定する。長さLen(M)がbビットの倍数でない場合には、長さLen(M)がbビットの倍数になるように、メッセージMの後に1を付加し、さらに後ろに0のビット列を付加して、データMを生成する。一方、長さLen(M)がbビットの倍数である場合には、メッセージMをデータMとして扱う。
 分割部112は、データMを、先頭からbビット毎に分割して、データM[1],...,データM[m]を生成する。“m”は1以上の整数である。
 (ステップS13:変数設定処理)
 変数設定部113は、nビットのデータSと、b’’ビットの初期パラメータNにc’’ビットの定数const[1]が連結されたデータYとを入力として前記排他的論理和を計算して得られたデータを、暗号化装置10の内部の変数Sに設定する。つまり、変数設定部113は、S=S XOR (N||const[1])を計算する。
 実施の形態1では、データSは、固定データIVである。暗号化装置10の内部の変数Sは、暗号化装置10のメモリ12に記憶された変数である。
 (ステップS14:関数計算処理)
 関数計算部114は、i=1,...,mの各整数iについて昇順に以下の処理Aから処理Cを実行する。
 (処理A)
 関数計算部114は、変数S及び鍵Kを入力としてブロック暗号の暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここで、鍵Kは、暗号化装置10と復号装置20との間で事前に共有されている。
 つまり、関数計算部114は、S=E(S)を計算する。
 (処理B)
 関数計算部114は、処理Aで更新された変数Sと、データM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、関数計算部114は、データM[i]の後に0をcビット付加したデータX[i]を用いる。
 つまり、関数計算部114は、S=S XOR (M[i]||0)を計算する。
 (処理C)
 関数計算部114は、処理Bで更新された変数Sからbビットを抽出してデータC[i]を生成する。ここでは、関数計算部114は、変数Sの上位bビットを抽出してデータC[i]を生成する。
 つまり、関数計算部114は、C[i]=msb[b](S)を計算する。
 (ステップS15:認証子生成処理)
 認証子生成部115は、メッセージMの長さがbビットの倍数である場合には、ステップS14で計算された変数Sと、定数const[2]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、認証子生成部115は、変数Sと、定数const[2]をcビット表現したビット列の前に0をbビット付加したデータとを入力として、排他的論理和を計算する。つまり、認証子生成部115は、S=S XOR (0||str[c](const[2]))を計算する。
 一方、認証子生成部115は、メッセージMの長さがbビットの倍数でない場合には、ステップS14で計算された変数Sと、定数const[3]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、認証子生成部115は、変数Sと、定数const[3]をcビット表現したビット列の前に0をbビット付加したデータとを入力として、排他的論理和を計算する。つまり、認証子生成部115は、S=S XOR (0||str[c](const[3]))を計算する。
 認証子生成部115は、更新された変数Sを入力として暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。つまり、認証子生成部115は、S=E(S)を計算する。
 そして、認証子生成部115は、更新された変数Sからtビット抽出して、認証子Tとする。ここでは、認証子生成部115は、変数Sから上位tビット抽出して、認証子Tを生成する。つまり、認証子生成部115は、T=msb[t](S)を計算する。
 (ステップS16:暗号文生成処理)
 暗号文生成部116は、ステップS14で計算されたi=1,...,mの各整数iについてのデータC[i]を連結する。暗号文生成部116は、連結されたデータから上位のメッセージMの長さLen(M)ビットだけ抽出して、メッセージMを暗号化した暗号文Cを生成する。
 つまり、暗号文生成部116は、C=msb[Len(M)](C[1]||...||C[m-1]||C[m])を計算する。
 (ステップS17:出力処理)
 出力部117は、ステップS15で計算された認証子Tと、ステップS16で生成された暗号文Cとを出力する。
 具体的には、出力部117は、認証子T及び暗号文Cを、通信インタフェース14を介して復号装置20に送信する。
 図5及び図6を参照して、実施の形態1に係る復号装置20の動作を説明する。
 (ステップS21:受付処理)
 受付部211は、認証子T及び暗号文Cの入力を受け付ける。
 具体的には、受付部111は、暗号化装置10よって送信された認証子T及び暗号文Cを、通信インタフェース24を介して受信する。
 (ステップS22:分割処理)
 分割部212は、ステップS21で受け付けられた暗号文Cを、先頭からbビット毎に分割して、データC[1],...,データC[m]を生成する。
 暗号文Cの長さLen(C)がbビットの倍数でない場合には、データC[m]の長さLen(C[m])はbビットよりも短くなり、長さLen(C)がbビットの倍数である場合には、長さLen(C[m])はbビットになる。
 (ステップS23:変数設定処理)
 変数設定部213は、nビットのデータSと、b’’ビットの初期パラメータNにc’’ビットの定数const[1]が連結されたデータYとを入力として排他的論理和を計算して得られたデータを、復号装置20の内部の変数Sに設定する。つまり、変数設定部213は、S=S XOR (N||const[1])を計算する。
 実施の形態1では、データSは、固定値IVである。ここで設定されるデータSは、図3のステップS13で設定されるデータSと同じデータである。復号装置20の内部の変数Sは、復号装置20のメモリ22に記憶された変数である。
 (ステップS24:関数計算処理)
 関数計算部214は、i=1,...,m-1の各整数iについて昇順に以下の処理A’から処理C’を実行する。その後、関数計算部214は、処理D’から処理E’を実行する。
 (処理A’)
 関数計算部214は、変数S及び鍵Kを入力としてブロック暗号の暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここで、鍵Kは、暗号化装置10と復号装置20との間で事前に共有されている。
 つまり、関数計算部214は、S=E(S)を計算する。
 (処理B’)
 関数計算部214は、処理A’で更新された変数Sから抽出されたbビットと、データC[i]とを入力として排他的論理和を計算してデータM[i]を計算する。ここでは、関数計算部214は、処理A’で更新された変数Sの上位bビットを抽出し、抽出されたデータと、データC[i]とを入力として排他的論理和を計算する。
 つまり、関数計算部214は、M[i]=C[i] XOR msb[b](S)を計算する。
 (処理C’)
 関数計算部214は、処理A’で更新された変数Sと、データM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、関数計算部214は、データM[i]の後に0をcビット付加したデータX[i]を用いる。
 つまり、関数計算部214は、S=S XOR (M[i]||0)を計算する。
 (処理D’)
 関数計算部214は、処理A’で更新された変数Sの先頭から抽出された長さLen(C[m])ビットと、データC[m]とを入力として排他的論理和を計算してデータM[m]を計算する。
 つまり、関数計算部214は、M[m]=C[m] XOR msb[Len(C[m])](S)を計算する。
 (処理E’)
 関数計算部214は、処理D’で生成されたデータM[m]の長さLen(M[m])がbビットよりも短い場合には、長さLen(M[m])がbビットになるように、データM[m]の後に1を付加し、さらに後ろに0のビット列を付加して、データM[m]を生成する。一方、長さLen(M[m])がbビットである場合には、データM[m]をデータM[m]として扱う。
 そして、関数計算部214は、処理C’で更新された変数Sと、データM[m]にcビットのビット列を付加したデータX[m]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、関数計算部214は、データM[m]の後に0をcビット付加したデータX[m]を用いる。
 つまり、関数計算部214は、S=S XOR (M[m]||0)を計算する。
 (ステップS25:認証子生成処理)
 認証子生成部215は、暗号文Cの長さがbビットの倍数である場合には、ステップS24で計算された変数Sと、定数const[2]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、認証子生成部215は、変数Sと、定数const[2]をcビット表現したビット列の前に0をbビット付加したデータとを入力として、排他的論理和を計算する。つまり、認証子生成部215は、S=S XOR (0||str[c](const[2]))を計算する。
 一方、認証子生成部215は、暗号文Cの長さがbビットの倍数でない場合には、ステップS24で計算された変数Sと、定数const[3]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、認証子生成部215は、変数Sと、定数const[3]をcビット表現したビット列の前に0をbビット付加したデータとを入力として、排他的論理和を計算する。つまり、認証子生成部215は、S=S XOR (0||str[c](const[3]))を計算する。
 認証子生成部215は、更新された変数Sを入力として暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。つまり、認証子生成部215は、S=E(S)を計算する。
 そして、認証子生成部215は、更新された変数Sからtビット抽出して、認証子T’とする。ここでは、認証子生成部215は、変数Sから上位tビット抽出して、認証子T’を生成する。つまり、認証子生成部215は、T=msb[t](S)を計算する。
 (ステップS26:メッセージ生成処理)
 メッセージ生成部216は、ステップS24で計算されたi=1,...,mの各整数iについてのデータM[i]を連結する。暗号文生成部116は、連結されたデータから上位の暗号文Cの長さLen(C)ビットだけ抽出して、暗号文Cを復号したメッセージMを生成する。
 つまり、暗号文生成部116は、M=msb[Len(C)](M[1]||...||M[m-1]||M[m])を計算する。
 (ステップS27:出力処理)
 出力部217は、ステップS21で受け付けられた認証子Tと、ステップS26で計算された認証子T’とが一致する場合には、ステップS26で生成されたメッセージMを出力する。具体的には、出力部217は、メッセージMを、通信インタフェース24を介して表示装置等に送信する。
 一方、出力部217は、ステップS21で受け付けられた認証子Tと、ステップS26で計算された認証子T’とが一致しない場合には、認証子Tと認証子T’とが一致しないことを示すメッセージを出力する。
 ***実施の形態1の効果***
 以上のように、実施の形態1に係る暗号化装置10及び復号装置20は、ブロック暗号の復号関数を用いることなく、ブロック暗号の暗号化関数Eと排他的論理和XORとから認証暗号アルゴリズムを構成可能である。また、内部変数である変数Sのサイズはnビットである。したがって、実装サイズを認証暗号アルゴリズムJAMBUと同等にしつつ、内部変数のサイズを認証暗号アルゴリズムJAMBUよりも小さくすることができる。
 ***他の構成***
 <変形例1>
 実施の形態1では、暗号化装置10及び復号装置20の各機能構成要素の機能がソフトウェアで実現された。しかし、変形例1として、暗号化装置10及び復号装置20の各機能構成要素の機能はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
 図7を参照して、変形例1に係る暗号化装置10の構成を説明する。
 各機能構成要素の機能がハードウェアで実現される場合、暗号化装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路15を備える。電子回路15は、暗号化装置10の各部の機能とメモリ12とストレージ13との機能とを実現する専用の電子回路である。
 図8を参照して、変形例1に係る復号装置20の構成を説明する。
 各機能構成要素の機能がハードウェアで実現される場合、復号装置20は、プロセッサ21とメモリ22とストレージ23とに代えて、電子回路25を備える。電子回路25は、復号装置20の各部の機能とメモリ22とストレージ23との機能とを実現する専用の電子回路である。
 電子回路15,25は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)が想定される。
 暗号化装置10の各部の機能を1つの電子回路15で実現してもよいし、暗号化装置10の各部の機能を複数の電子回路15に分散させて実現してもよい。同様に、復号装置20の各部の機能を1つの電子回路25で実現してもよいし、復号装置20の各部の機能を複数の電子回路25に分散させて実現してもよい。
 <変形例2>
 変形例2として、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。つまり、暗号化装置10の各機能構成要素のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。同様に、復号装置20についても、各機能構成要素のうち、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。
 プロセッサ11,21とメモリ12,22とストレージ13,23と電子回路15,25とを、処理回路という。つまり、暗号化装置10及び復号装置20の各部の機能は、処理回路により実現される。
 実施の形態2.
 実施の形態2では、公開データAがある点が実施の形態1と異なる。実施の形態2では、この異なる点を説明し、同一の点については説明を省略する。
 ***変数及び記法の説明***
 整数b’と整数c’とは、c’=n-b’の関係を満たす。
 const[4]とconst[5]とは、異なる値である。また、const[4]とconst[5]とは、const[1]とは異なる値である。
 ***構成の説明***
 図9を参照して、実施の形態2に係る暗号化装置10の構成を説明する。
 暗号化装置10は、機能構成要素として、事前計算部118を備える点が図1に示す暗号化装置10と異なる。事前計算部118は、他の機能構成要素と同様に、ソフトウェア又はハードウェアで実現される。
 図10を参照して、実施の形態2に係る復号装置20の構成を説明する。
 復号装置20は、機能構成要素として、事前計算部218を備える点が図2に示す復号装置20と異なる。事前計算部218は、他の機能構成要素と同様に、ソフトウェア又はハードウェアで実現される。
 ***動作の説明***
 図11から図12を参照して、実施の形態2に係る暗号化装置10及び復号装置20の動作を説明する。
 実施の形態2に係る暗号化装置10の動作は、実施の形態2に係る暗号化方法に相当する。また、実施の形態2に係る暗号化装置10の動作は、実施の形態2に係る暗号化プログラムの処理に相当する。
 実施の形態2に係る復号装置20の動作は、実施の形態2に係る復号方法に相当する。また、実施の形態2に係る復号装置20の動作は、実施の形態2に係る復号プログラムの処理に相当する。
 図11及び図12を参照して、実施の形態2に係る暗号化装置10及び復号装置20の動作を説明する。
 暗号化装置10は、図11に示す処理を実行した後、図3に示す処理を実行する。具体的には、暗号化装置10は、図11の処理E’’で計算された変数Sを、図3のステップS13におけるデータSとして、図3に示す処理を実行する。
 同様に、復号装置20は、図11に示す処理を実行した後、図5に示す処理を実行する。具体的には、復号装置20は、図11の処理E’’で計算された変数Sを、図5のステップS23におけるデータSとして、図5に示す処理を実行する。
 以下の説明では、暗号化装置10が図11に示す処理を実行する場合を説明する。復号装置20が図11に示す処理を実行する場合には、受付部111と分割部112と事前計算部118と通信インタフェース14とを、受付部211と分割部212と事前計算部218と通信インタフェース24と読み替えればよい。
 (ステップS31:受付処理)
 受付部111は、公開データAの入力を受け付ける。
 具体的には、受付部111は、利用者によって入力装置が操作され入力された公開データAを、通信インタフェース14を介して受信する。受付部111は、公開データAを外部のサーバ等から取得してもよい。
 (ステップS32:分割処理)
 分割部112は、ステップS31で受け付けられた公開データAの長さLen(A)がb’ビットの倍数であるか否かを判定する。長さLen(A)がb’ビットの倍数でない場合には、長さLen(A)がb’ビットの倍数になるように、公開データAの後に1を付加し、さらに後ろに0のビット列を付加して、データAを生成する。一方、長さLen(A)がb’ビットの倍数である場合には、公開データAをデータAとして扱う。
 分割部112は、ステップS31で受け付けられた公開データAを、b’ビット毎に分割して、b’ビットのデータA[1],...,データA[a]を生成する。“a”は1以上の整数である。
 (ステップS33:変数設定処理)
 変数設定部113は、nビットの固定データIVを暗号化装置10の内部の変数Sに設定する。固定データIVは、const[1]とconst[2]とconst[3]とconst[4]とconst[5]とは、下位c’ビットが異なるデータである。
 (ステップS34:事前計算処理)
 事前計算部118は、i=1,...,a-1の各整数iについて昇順に以下の処理A’’から処理B’’を実行する。その後、処理C’’から処理E’’を実行する。
 (処理A’’)
 事前計算部118は、変数SとデータA[i]にc’ビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、事前計算部118は、データA[i]の後に0をc’ビット付加したデータX[i]を用いる。
 つまり、事前計算部118は、S=S XOR (A[i]||0c’)を計算する。
 (処理B’’)
 事前計算部118は、処理A’’で更新された変数Sと鍵Kとを入力として暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。
 つまり、事前計算部118は、S=E(S)を計算する。
 (処理C’’)
 事前計算部118は、変数SとデータA[a]にc’ビットのビット列を付加したデータX[a]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、事前計算部118は、データA[a]の後に0をc’ビット付加したデータX[a]を用いる。
 つまり、事前計算部118は、S=S XOR (A[a]||0c’)を計算する。
 (処理D’’)
 事前計算部118は、公開データAの長さがb’ビットの倍数である場合には、処理B’’で計算された変数Sと、定数const[4]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、事前計算部118は、変数Sと、定数const[4]をc’ビット表現したビット列の前に0をb’ビット付加したデータとを入力として、排他的論理和を計算する。つまり、事前計算部118は、S=S XOR (0b’||str[c’](const[4]))を計算する。
 一方、事前計算部118は、公開データAの長さがb’ビットの倍数でない場合には、処理B’’で計算された変数Sと、定数const[5]とを入力として排他的論理和を計算して、得られたデータを変数Sに設定することにより変数Sを更新する。ここでは、事前計算部118は、変数Sと、定数const[5]をc’ビット表現したビット列の前に0をb’ビット付加したデータとを入力として、排他的論理和を計算する。つまり、事前計算部118は、S=S XOR (0b’||str[c’](const[5]))を計算する。
 (処理E’’)
 事前計算部118は、処理D’’で更新された変数Sを入力として暗号化関数Eを計算して、得られたデータを変数Sに設定することにより変数Sを更新する。つまり、事前計算部118は、S=E(S)を計算する。
 ***実施の形態2の効果***
 以上のように、実施の形態2に係る暗号化装置10及び復号装置20は、公開データAがある場合にも、ブロック暗号の復号関数を用いることなく、ブロック暗号の暗号化関数Eと排他的論理和XORとから認証暗号アルゴリズムを構成可能である。また、内部変数である変数Sのサイズはnビットである。したがって、実装サイズを認証暗号アルゴリズムJAMBUと同等にしつつ、内部変数のサイズを認証暗号アルゴリズムJAMBUよりも小さくすることができる。
 固定データIVとconst[1]とconst[2]とconst[3]とconst[4]とconst[5]との例を説明する。例えば、固定データIV=0、const[1]=3、const[2]=1、const[3]=2、const[4]=1、const[5]=2である。この場合、整数c’≧3、整数c’’≧3であればよい。
 整数cの値は、安全性を考慮して決定される。実施の形態1,2で説明した認証暗号アルゴリズムは、暗号化関数Encで呼び出されるブロック暗号の暗号化関数Eの回数が2n/2回を超える、又は、復号関数Decで検証失敗時に呼び出されるブロック暗号の暗号化関数Eの回数が2を超えるまで安全性を担保できる。呼び出されるブロック暗号の暗号化関数Eの回数がこれらの回数を超えた場合には、安全性を担保するためには、鍵Kを交換する必要がある。
 例えば、復号関数Decで検証失敗時に呼び出されるブロック暗号の暗号化関数Eの回数を216に制限する場合には、整数cの最小値は16になる。
 10 暗号化装置、11 プロセッサ、12 メモリ、13 ストレージ、14 通信インタフェース、15 電子回路、111 受付部、112 分割部、113 変数設定部、114 関数計算部、115 認証子生成部、116 暗号文生成部、117 出力部、118 事前計算部、20 復号装置、21 プロセッサ、22 メモリ、23 ストレージ、24 通信インタフェース、25 電子回路、211 受付部、212 分割部、213 変数設定部、214 関数計算部、215 認証子生成部、216 メッセージ生成部、217 出力部、218 事前計算部。

Claims (15)

  1.  メッセージMをbビット毎に分割して、bビットのデータM[1],...,データM[m]を生成する分割部と、
     n=b+cビットのデータを変数Sに設定する変数設定部と、
     i=1,...,mの各整数iについて昇順に、前記変数Sを入力としてブロック暗号の暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数SとデータM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sからbビットを抽出してデータC[i]を生成する関数計算部と、
     i=1,...,mの各整数iについての前記データC[i]を連結して前記メッセージMの暗号文Cを生成する暗号文生成部と、
     前記関数計算部によって最後に更新された前記変数Sから1以上の整数tビットの認証子Tを生成する認証子生成部と
    を備える暗号化装置。
  2.  前記認証子生成部は、前記メッセージMの長さがbビットの倍数である場合には、前記変数Sと定数const[2]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、前記メッセージMの長さがbビットの倍数でない場合には、前記変数Sと前記定数const[2]とは異なる定数const[3]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sを入力として前記暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sからtビット抽出して前記認証子Tを生成する
    請求項1に記載の暗号化装置。
  3.  前記変数設定部は、nビットのデータSと、初期パラメータNに定数const[1]が連結されたデータYとを入力として前記排他的論理和を計算して得られたデータを、前記変数Sに設定する
    請求項1又は2に記載の暗号化装置。
  4.  前記分割部は、公開データAをb’ビット毎に分割して、b’ビットのデータA[1],...,データA[a]を生成し、
     前記変数設定部は、nビットの固定データIVを前記変数Sに設定し、
     前記暗号化装置は、さらに、
     i=1,...,aの各整数iについて昇順に、前記変数SとデータA[i]にc’=n-b’ビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して得られたデータにより変数Sを更新し、更新された前記変数Sを入力として前記暗号化関数Eを計算して得られたデータにより前記変数Sを更新する事前計算部
    を備え、
     前記変数設定部は、前記事前計算部によって更新された前記変数Sを前記データSとする
    請求項3に記載の暗号化装置。
  5.  前記データX[i]は、前記データM[i]の下位にcビットのビット列が付加され、
     前記データC[i]は、前記変数Sの上位bビットを抽出してを生成される
    請求項1から4までのいずれか1項に記載の暗号化装置。
  6.  暗号文Cをbビット毎に分割して、bビットのデータC[1],...,データC[m]を生成する分割部と、
     n=b+cビットのデータを変数Sに設定する変数設定部と、
     i=1,...,mの各整数iについて昇順に、前記変数Sを入力としてブロック暗号の暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sから抽出されたbビットとデータC[i]とを入力として排他的論理和を計算してデータM[i]を計算し、更新された前記変数Sと前記データM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新する関数計算部と、
     i=1,...,mの各整数iについて、前記データM[i]を連結して前記暗号文Cを復号したメッセージMを生成するメッセージ生成部と、
     前記関数計算部によって最後に更新された前記変数Sから1以上の整数tビットの認証子T’を生成する認証子生成部と
    を備える復号装置。
  7.  前記認証子生成部は、前記暗号文Cの長さがbビットの倍数である場合には、前記変数Sと定数const[2]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、前記メッセージMの長さがbビットの倍数でない場合には、前記変数Sと前記定数const[2]とは異なる定数const[3]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sを入力として前記暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sからtビット抽出して前記認証子T’を生成する
    請求項6に記載の復号装置。
  8.  前記変数設定部は、nビットのデータSと、初期パラメータNに定数const[1]が連結されたデータYとを入力として前記排他的論理和を計算して、前記変数Sに設定する
    請求項6又は7に記載の復号装置。
  9.  前記分割部は、公開データAをb’ビット毎に分割して、b’ビットのデータA[1],...,データA[a]を生成し、
     前記変数設定部は、nビットの固定データIVを前記変数Sに設定し、
     前記復号装置は、さらに、
     i=1,...,aの各整数iについて昇順に、前記変数SとデータA[i]にc’=n-b’ビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して得られたデータにより変数Sを更新し、更新された前記変数Sを入力として前記暗号化関数Eを計算して得られたデータにより前記変数Sを更新する事前計算部
    を備え、
     前記変数設定部は、前記事前計算部によって更新された前記変数Sを前記データSとする
    請求項8に記載の復号装置。
  10.  前記データX[i]は、前記データM[i]の下位にcビットのビット列が付加され、
     前記データC[i]は、前記変数Sの上位bビットを抽出してを生成される
    請求項6から9までのいずれか1項に記載の復号装置。
  11.  前記認証子生成部は、前記認証子T’と、前記メッセージMに対応する認証子Tとが一致するか否かを判定する
    請求項6から10までのいずれか1項に記載の復号装置。
  12.  メッセージMをbビット毎に分割して、bビットのデータM[1],...,データM[m]を生成し、
     n=b+cビットのデータを変数Sに設定する変数設定し、
     i=1,...,mの各整数iについて昇順に、前記変数Sを入力としてブロック暗号の暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数SとデータM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sからbビットを抽出してデータC[i]を生成し、
     i=1,...,mの各整数iについての前記データC[i]を連結して前記メッセージMの暗号文Cを生成し、
     最後に更新された前記変数Sから1以上の整数tビットの認証子Tを生成する暗号化方法。
  13.  暗号文Cをbビット毎に分割して、bビットのデータC[1],...,データC[m]を生成し、
     n=b+cビットのデータを変数Sに設定し、
     i=1,...,mの各整数iについて昇順に、前記変数Sを入力としてブロック暗号の暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sから抽出されたbビットとデータC[i]とを入力として排他的論理和を計算してデータM[i]を計算し、更新された前記変数Sと前記データM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、
     i=1,...,mの各整数iについて、前記データM[i]を連結して前記暗号文Cを復号したメッセージMを生成し、
     最後に更新された前記変数Sから1以上の整数tビットの認証子T’を生成する復号方法。
  14.  メッセージMをbビット毎に分割して、bビットのデータM[1],...,データM[m]を生成する分割処理と、
     n=b+cビットのデータを変数Sに設定する変数設定処理と、
     i=1,...,mの各整数iについて昇順に、前記変数Sを入力としてブロック暗号の暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数SとデータM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sからbビットを抽出してデータC[i]を生成する関数計算処理と、
     i=1,...,mの各整数iについての前記データC[i]を連結して前記メッセージMの暗号文Cを生成する暗号文生成処理と、
     前記関数計算処理によって最後に更新された前記変数Sから1以上の整数tビットの認証子Tを生成する認証子生成処理と
    をコンピュータに実行させる暗号化プログラム。
  15.  暗号文Cをbビット毎に分割して、bビットのデータC[1],...,データC[m]を生成する分割処理と、
     n=b+cビットのデータを変数Sに設定する変数設定処理と、
     i=1,...,mの各整数iについて昇順に、前記変数Sを入力としてブロック暗号の暗号化関数Eを計算して得られたデータにより前記変数Sを更新し、更新された前記変数Sから抽出されたbビットとデータC[i]とを入力として排他的論理和を計算してデータM[i]を計算し、更新された前記変数Sと前記データM[i]にcビットのビット列を付加したデータX[i]とを入力として排他的論理和を計算して得られたデータにより前記変数Sを更新する関数計算処理と、
     i=1,...,mの各整数iについて、前記データM[i]を連結して前記暗号文Cを復号したメッセージMを生成するメッセージ生成処理と、
     前記関数計算処理によって最後に更新された前記変数Sから1以上の整数tビットの認証子T’を生成する認証子生成処理と
    をコンピュータに実行させる復号プログラム。
PCT/JP2017/031639 2017-09-01 2017-09-01 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム WO2019043921A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2019538890A JP6735926B2 (ja) 2017-09-01 2017-09-01 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
PCT/JP2017/031639 WO2019043921A1 (ja) 2017-09-01 2017-09-01 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
US16/630,741 US11438137B2 (en) 2017-09-01 2017-09-01 Encryption device, decryption device, encryption method, decryption method, and computer readable medium
CN201780094168.5A CN111052670B (zh) 2017-09-01 2017-09-01 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质
EP17923165.9A EP3661115B1 (en) 2017-09-01 2017-09-01 Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/031639 WO2019043921A1 (ja) 2017-09-01 2017-09-01 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム

Publications (1)

Publication Number Publication Date
WO2019043921A1 true WO2019043921A1 (ja) 2019-03-07

Family

ID=65527314

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/031639 WO2019043921A1 (ja) 2017-09-01 2017-09-01 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム

Country Status (5)

Country Link
US (1) US11438137B2 (ja)
EP (1) EP3661115B1 (ja)
JP (1) JP6735926B2 (ja)
CN (1) CN111052670B (ja)
WO (1) WO2019043921A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022215249A1 (ja) * 2021-04-09 2022-10-13 三菱電機株式会社 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
WO2022239163A1 (ja) * 2021-05-12 2022-11-17 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111052670B (zh) * 2017-09-01 2024-02-09 三菱电机株式会社 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质
CN112468993B (zh) * 2020-09-25 2023-07-04 中信科智联科技有限公司 消息发送方法、接收方法、装置及设备
CN116865949B (zh) * 2023-08-01 2024-04-26 重庆明东新科技有限公司 Aes密钥生成方法、改进aes的数据加密方法及汽车安防系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016157055A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法

Family Cites Families (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1039752A (ja) * 1996-07-18 1998-02-13 Nippon Telegr & Teleph Corp <Ntt> 公開鍵暗号による通信および認証方法、ならびにそれらの装置
AUPO323496A0 (en) * 1996-10-25 1996-11-21 Monash University Digital message encryption and authentication
US6570989B1 (en) * 1998-04-27 2003-05-27 Matsushita Electric Industrial Co., Ltd. Cryptographic processing apparatus, cryptographic processing method, and storage medium storing cryptographic processing program for realizing high-speed cryptographic processing without impairing security
US6832316B1 (en) * 1999-12-22 2004-12-14 Intertrust Technologies, Corp. Systems and methods for protecting data secrecy and integrity
SG117471A1 (en) * 2000-01-14 2005-12-29 Mitsubishi Electric Corp Method and apparatus for encryption, method and apparatus for decryption, and computer-readable med ium storing program
US7046802B2 (en) * 2000-10-12 2006-05-16 Rogaway Phillip W Method and apparatus for facilitating efficient authenticated encryption
FR2826811B1 (fr) * 2001-06-27 2003-11-07 France Telecom Procede d'authentification cryptographique
US7200227B2 (en) * 2001-07-30 2007-04-03 Phillip Rogaway Method and apparatus for facilitating efficient authenticated encryption
GB2374260B (en) * 2001-10-12 2003-08-13 F Secure Oyj Data encryption
US20060195402A1 (en) * 2002-02-27 2006-08-31 Imagineer Software, Inc. Secure data transmission using undiscoverable or black data
JP2003333036A (ja) * 2002-05-09 2003-11-21 Nippon Telegr & Teleph Corp <Ntt> メッセージ認証装置、メッセージ認証方法とメッセージ認証プログラムおよび該プログラムを記録したコンピュータ読取り可能な記録媒体
US7305084B2 (en) * 2002-07-24 2007-12-04 Qualcomm Incorporated Fast encryption and authentication for data processing systems
JP4553565B2 (ja) * 2002-08-26 2010-09-29 パナソニック株式会社 電子バリューの認証方式と認証システムと装置
JP2004126323A (ja) * 2002-10-04 2004-04-22 Sony Corp ブロック暗号方法、ブロック暗号回路、暗号装置、ブロック復号方法、ブロック復号回路および復号装置
US7657757B2 (en) * 2003-04-30 2010-02-02 Freescale Semiconductor, Inc. Semiconductor device and method utilizing variable mode control with block ciphers
JP2004363739A (ja) * 2003-06-03 2004-12-24 Hitachi Ltd 改竄検知可能な、共通鍵暗号の暗号化装置または復号化装置
JP2006039206A (ja) 2004-07-27 2006-02-09 Canon Inc 暗号化装置および復号化装置
US7418100B2 (en) * 2004-10-20 2008-08-26 Cisco Technology, Inc. Enciphering method
WO2006130991A1 (en) * 2005-06-10 2006-12-14 Davies Traverse A Method of and system for encryption and authentication
JP4612501B2 (ja) * 2005-07-29 2011-01-12 日本電信電話株式会社 ブロック暗号装置、ブロック復号装置、それらの方法及びプログラム
US8509427B2 (en) * 2005-08-01 2013-08-13 Eric Myron Smith Hybrid mode cryptographic method and system with message authentication
CA2627136A1 (en) 2005-11-04 2007-05-10 Nec Corporation Message authentication device, message authentication method, message authentication program and storage medium therefor
US8121284B2 (en) 2006-03-14 2012-02-21 Nec Corporation Information processing system, information processing method, and information processing program
US7565539B2 (en) * 2006-07-03 2009-07-21 Viasat Inc. Method and apparatus for secure communications
JP5182091B2 (ja) * 2006-08-10 2013-04-10 日本電気株式会社 調整機能付きブロック暗号装置と方法とプログラム
EP2076799A4 (en) * 2006-09-08 2011-03-09 Certicom Corp AUTHENTICATED HIGH FREQUENCY IDENTIFICATION AND KEY DISTRIBUTION SYSTEM THEREFOR
GB2443244A (en) * 2006-10-05 2008-04-30 Hewlett Packard Development Co Authenticated Encryption Method and Apparatus
US8090098B2 (en) * 2006-11-13 2012-01-03 Electronics And Telecommunications Research Institute Method of generating message authentication code using stream cipher and authentication/encryption and authentication/decryption methods using stream cipher
US20080172562A1 (en) * 2007-01-12 2008-07-17 Christian Cachin Encryption and authentication of data and for decryption and verification of authenticity of data
WO2008105343A1 (ja) * 2007-02-28 2008-09-04 Nec Corporation メッセージ認証装置
US8131998B2 (en) * 2007-03-05 2012-03-06 George Mason Intellectual Properties, Inc. Transparent authentication of continuous data streams
US9209967B2 (en) * 2007-03-12 2015-12-08 Exelis, Inc. Precalculated encryption key
TWI341096B (en) * 2007-04-03 2011-04-21 Ind Tech Res Inst Method and system for calculating crc
KR101520617B1 (ko) * 2007-04-17 2015-05-15 삼성전자주식회사 메시지의 무결성 유지를 위한 메시지 암호화 방법 및 장치,메시지의 무결성 유지를 위한 메시지 복호화 방법 및 장치
JP2008301152A (ja) * 2007-05-31 2008-12-11 Sony Corp 復号装置および方法、並びにプログラム
JP4886614B2 (ja) * 2007-06-22 2012-02-29 日本電信電話株式会社 メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体
US7827408B1 (en) * 2007-07-10 2010-11-02 The United States Of America As Represented By The Director Of The National Security Agency Device for and method of authenticated cryptography
JP4914381B2 (ja) * 2008-02-07 2012-04-11 日本電信電話株式会社 メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体
GB2457670B (en) * 2008-02-20 2012-01-04 Hewlett Packard Development Co Data transfer device
JP5156540B2 (ja) * 2008-08-22 2013-03-06 株式会社日立製作所 ハッシュ値生成装置
JPWO2010024003A1 (ja) * 2008-08-29 2012-01-26 日本電気株式会社 倍ブロック長ブロック暗号化装置、復号装置、暗号化方法及び復号方法、及びそのプログラム
US8582771B2 (en) * 2008-09-10 2013-11-12 Lg Electronics Inc. Method for selectively encrypting control signal
US8788830B2 (en) * 2008-10-02 2014-07-22 Ricoh Co., Ltd. Method and apparatus for logging based identification
CN101741560B (zh) * 2008-11-14 2014-07-02 北京石油化工学院 基于整数非线性映射的散列函数构造方法
US8218759B2 (en) * 2009-04-17 2012-07-10 Oracle America, Inc. System and method for encrypting data
CN102687457A (zh) * 2009-05-15 2012-09-19 里维尔技术有限责任公司 用于加密和解密纯文本消息的具有认证的系统
US20100303229A1 (en) * 2009-05-27 2010-12-02 Unruh Gregory Modified counter mode encryption
US8577024B2 (en) * 2009-07-28 2013-11-05 Vixs Systems, Inc Concealing plain text in scrambled blocks
EP2290872B1 (en) * 2009-08-27 2014-06-18 Nxp B.V. Device for generating a message authentication code for authenticating a message
CN102725737B (zh) * 2009-12-04 2016-04-20 密码研究公司 可验证防泄漏的加密和解密
CA2697687C (en) * 2010-03-24 2014-02-18 Diversinet Corp. Method and system for secure communication using hash-based message authentication codes
US20110255689A1 (en) * 2010-04-15 2011-10-20 Lsi Corporation Multiple-mode cryptographic module usable with memory controllers
WO2011155039A1 (ja) * 2010-06-10 2011-12-15 三菱電機株式会社 メッセージ認証コード演算装置、メッセージ認証コード演算方法およびメッセージ認証コード演算プログラム
JP2013539295A (ja) * 2010-10-15 2013-10-17 サーティコム コーポレーション メッセージ復元を伴うデジタル署名の認証された暗号化
EP2442484A1 (en) * 2010-10-15 2012-04-18 Certicom Corp. Authenticated encryption for digital signatures with message recovery
US20140317407A1 (en) * 2011-10-31 2014-10-23 Nec Corporation Incremental mac tag generation device, method, and program, and message authentication device
US9166793B2 (en) * 2011-12-05 2015-10-20 University Of Washington Efficient authentication for mobile and pervasive computing
CA2860437C (en) * 2011-12-28 2016-03-15 Certicom Corp. Generating digital signatures
WO2014058971A1 (en) * 2012-10-09 2014-04-17 Huawei Technologies Co., Ltd. Authenticated encryption support in iso/iec 23009-4
WO2014084886A1 (en) * 2012-11-29 2014-06-05 Blackberry Limited Authenticated encryption method using working blocks
US8971528B2 (en) * 2013-01-29 2015-03-03 Certicom Corp. Modified elliptic curve signature algorithm for message recovery
WO2014136386A1 (ja) * 2013-03-04 2014-09-12 日本電気株式会社 タグ生成装置、タグ生成方法およびタグ生成プログラム
AU2014297854B2 (en) 2013-08-02 2016-12-22 Nec Corporation Authenticated encryption device, authenticated encryption method, and program for authenticated encryption
CN104683093B (zh) * 2013-11-27 2018-01-26 财团法人资讯工业策进会 兼具完整性验证的区块加密装置、区块加密方法、区块解密装置及区块解密方法
US9496897B1 (en) * 2014-03-31 2016-11-15 EMC IP Holding Company LLC Methods and apparatus for generating authenticated error correcting codes
US9537657B1 (en) * 2014-05-29 2017-01-03 Amazon Technologies, Inc. Multipart authenticated encryption
JP6190404B2 (ja) * 2014-06-05 2017-08-30 Kddi株式会社 受信ノード、メッセージ受信方法およびコンピュータプログラム
EP2966802A1 (en) * 2014-07-07 2016-01-13 Thomson Licensing Method for ciphering and deciphering digital data, based on an identity, in a multi-authorities context
US9438416B2 (en) * 2014-07-18 2016-09-06 Harris Corporation Customizable encryption algorithm based on a sponge construction with authenticated and non-authenticated modes of operation
WO2016027454A1 (ja) * 2014-08-20 2016-02-25 日本電気株式会社 認証暗号化方法、認証復号方法および情報処理装置
CN107005415B (zh) * 2014-12-03 2021-03-23 耐瑞唯信有限公司 用于加密/解密消息的块加密方法及设备
WO2016116999A1 (ja) * 2015-01-19 2016-07-28 三菱電機株式会社 パケット送信装置、パケット受信装置、パケット送信プログラムおよびパケット受信プログラム
JP6273224B2 (ja) * 2015-02-26 2018-01-31 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法
US9880960B1 (en) * 2015-06-19 2018-01-30 Amazon Technologies, Inc. Configurable sponge function engine
US10313129B2 (en) * 2015-06-26 2019-06-04 Intel Corporation Keyed-hash message authentication code processors, methods, systems, and instructions
US9773432B2 (en) * 2015-06-27 2017-09-26 Intel Corporation Lightweight cryptographic engine
US10326589B2 (en) * 2015-09-28 2019-06-18 Mitsubishi Electric Corporation Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium
US9929863B2 (en) * 2015-10-30 2018-03-27 Palo Alto Research Center Incorporated System and method for efficient and semantically secure symmetric encryption over channels with limited bandwidth
JP6260064B2 (ja) * 2016-03-14 2018-01-17 Kddi株式会社 通信ネットワークシステム及び車両
US10140458B2 (en) * 2016-04-07 2018-11-27 Intel Corporation Parallelized authentication encoding
WO2017203992A1 (ja) * 2016-05-23 2017-11-30 ソニー株式会社 暗号化装置、暗号化方法、復号化装置、及び復号化方法
US10552620B2 (en) * 2016-06-20 2020-02-04 Intel Corporation Technologies for trusted I/O protection of I/O data with header information
US9800403B1 (en) * 2016-09-30 2017-10-24 International Business Machines Corporation Message processing using extended output functions
US9680653B1 (en) * 2016-10-13 2017-06-13 International Business Machines Corporation Cipher message with authentication instruction
JP6693574B2 (ja) * 2016-12-15 2020-05-13 日本電気株式会社 メッセージ認証システム、装置及びメッセージ検証方法
US11309994B2 (en) * 2016-12-21 2022-04-19 Infinera Corporation Highly parallel and scalable cyclic redundancy check
US20180253559A1 (en) * 2017-03-01 2018-09-06 Intel Corporation Secured lossless data compression using encrypted headers
US10783269B1 (en) * 2017-03-02 2020-09-22 Apple Inc. Cloud messaging system
US10484352B2 (en) * 2017-03-31 2019-11-19 Microsoft Technology Licensing, Llc Data operations using a proxy encryption key
US10560269B2 (en) * 2017-04-05 2020-02-11 Trellisware Technologies, Inc. Methods and systems for improved authenticated encryption in counter-based cipher systems
US10268832B1 (en) * 2017-06-26 2019-04-23 Amazon Technologies, Inc. Streaming authenticated encryption
CN111052670B (zh) * 2017-09-01 2024-02-09 三菱电机株式会社 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质
US11218291B2 (en) * 2018-02-26 2022-01-04 Stmicroelectronics (Rousset) Sas Method and circuit for performing a substitution operation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016157055A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
BOGADANOV, A. ET AL.: "ALE: AES-Based Lightweight Authenticated Encryption", FSE 2013: FAST SOFTWARE ENCRYPTION - 20TH INTERNATIONAL WORKSHOP - FSE 2013, SINGAPORE, MARCH 11-13, 2013, 1 February 2013 (2013-02-01), pages 1 - 20, XP009519070, Retrieved from the Internet <URL:https://www.iacr.org/archive/fse2013/84240416/84240416.pdf> [retrieved on 20171121] *
CHAKRABORTI.A.: "Blockcipher-based Authenticated Encryption: How Small Can We Go?", REPORT 2017/649, CRYPTOLOGY EPRINT ARCHIVE, 5 July 2017 (2017-07-05), pages 277 - 298, XP047446607, Retrieved from the Internet <URL:https://eprint.iacr.org/2017/649> [retrieved on 20171122] *
DOBRAUNIG, C. ET AL.: "ASCON V1. 2 Submission to the CAESAR Competition", 1.3 NOTATION, 1.4 MODE OF OPERATION, 15 September 2016 (2016-09-15), XP055579691, Retrieved from the Internet <URL:URL:https://competitions.cr.yp.to/ceaser-submissions.html> [retrieved on 20171122] *
MEACHAM, J. ET AL.: "Is a strong block cipher usable as a strong sponge funciton?", CRYPTOGRAPHY STACK EXCHANGE, 1 September 2015 (2015-09-01), pages 1 - 2, XP055671407, Retrieved from the Internet <URL:URL:https://crypto. stackexchange. com/questions/20718/is-a-strong- block-cipher-usable-as-a-strong-sponge-funciton> [retrieved on 20171122] *
ROSE, E.: "Can we use the sponge construct to efficiently authenticate any cipher?", CRYPTOGRAPHY STACK EXCHANGE, 13 April 2017 (2017-04-13), pages 1 - 2, XP055671403, Retrieved from the Internet <URL:URL:https://crypto. stackexchange. com/questions/33396/can-we-use-the- sponge-construct-to-efficiently-authenticate-any-cipher> [retrieved on 20171122] *
See also references of EP3661115A4 *
WU, H. ET AL.: "The JAMBU Lightweight Authentication Encryption Mode", THE JAMBU MODE OF OPERATION, 15 September 2016 (2016-09-15), pages 1 - 19, XP055579687, Retrieved from the Internet <URL:URL:https://competitions. cr. yp. to/ceaser-submissions. html> [retrieved on 20171122] *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022215249A1 (ja) * 2021-04-09 2022-10-13 三菱電機株式会社 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
JPWO2022215249A1 (ja) * 2021-04-09 2022-10-13
JP7317261B2 (ja) 2021-04-09 2023-07-28 三菱電機株式会社 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
WO2022239163A1 (ja) * 2021-05-12 2022-11-17 日本電気株式会社 認証暗号化装置、認証復号装置、認証暗号システム、方法及びコンピュータ可読媒体

Also Published As

Publication number Publication date
JP6735926B2 (ja) 2020-08-05
JPWO2019043921A1 (ja) 2020-04-16
EP3661115B1 (en) 2024-01-17
US20200186328A1 (en) 2020-06-11
CN111052670B (zh) 2024-02-09
CN111052670A (zh) 2020-04-21
EP3661115A1 (en) 2020-06-03
US11438137B2 (en) 2022-09-06
EP3661115A4 (en) 2020-06-03

Similar Documents

Publication Publication Date Title
JP6735926B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
US8010587B2 (en) Random number generator
JP7116050B2 (ja) 認証命令を含む暗号メッセージを実現するコンピュータ・プログラム製品、コンピュータ・システム、およびコンピュータ実装方法
US11349668B2 (en) Encryption device and decryption device
CN108141352B (zh) 密码设备、方法、装置和计算机可读介质和编码设备、方法、装置和计算机可读介质
US11436946B2 (en) Encryption device, encryption method, decryption device, and decryption method
CN112740618A (zh) 签名装置、验证装置、签名系统、签名方法、签名程序、验证方法以及验证程序
US11876888B2 (en) Encryption device, decryption device, encryption method, decryption method, and computer readable medium
JP6194136B2 (ja) 疑似乱数生成装置及び疑似乱数生成プログラム
US11177936B2 (en) Message authenticator generation apparatus
US20230132163A1 (en) Memory processing apparatus, memory verification apparatus, memory updating apparatus, memory protection system, method, and computer readable medium
CN112640359B (zh) 消息认证装置、消息认证方法及计算机可读取的存储介质
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
JP6830867B2 (ja) 追加データ付き認証暗号システム、復号装置、追加データ付き認証暗号方法、およびプログラム
JP6033504B1 (ja) メッセージ認証子生成装置
JP6732698B2 (ja) 追加データ付き認証暗号システム、暗号化装置、復号装置、追加データ付き認証暗号方法、およびプログラム
JP7317261B2 (ja) 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム

Legal Events

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

Ref document number: 17923165

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019538890

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017923165

Country of ref document: EP

Effective date: 20200228