WO2006019152A1 - メッセージ認証装置及び認証暗号装置 - Google Patents

メッセージ認証装置及び認証暗号装置 Download PDF

Info

Publication number
WO2006019152A1
WO2006019152A1 PCT/JP2005/015124 JP2005015124W WO2006019152A1 WO 2006019152 A1 WO2006019152 A1 WO 2006019152A1 JP 2005015124 W JP2005015124 W JP 2005015124W WO 2006019152 A1 WO2006019152 A1 WO 2006019152A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
message
register
input
message authenticator
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2005/015124
Other languages
English (en)
French (fr)
Inventor
Dai Watanabe
Soichi Furuya
Hirotaka Yoshida
Kazuo Takaragi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006531866A priority Critical patent/JPWO2006019152A1/ja
Publication of WO2006019152A1 publication Critical patent/WO2006019152A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Definitions

  • the present invention relates to a technique for generating a message authenticator having an arbitrary length at high speed.
  • the method using MAC confirms whether a message has been tampered with by comparing MACs generated by performing predetermined processing on transmission data.
  • the message transmission side and the message reception side have the same MAC generation function.
  • the message power to send also generates a MAC (first MAC) and sends it with the message.
  • a MAC second MAC
  • first MAC first MAC
  • second MAC second MAC
  • Non-Patent Document 1 P. Hawkes and G. Rose, Primitive Specification for SOBER-128, "IA CR ePrint Archive, http://eprint.iacr.org/2003/81/, 2003.
  • Each of the above methods has its own problems.
  • the method of generating MAC using block cipher and hash function has a problem in processing speed.
  • SOBER-128 using a pseudo-random number generator has been reported to have safety concerns. Specifically, SOBER-128 has a nonlinear converter inside, and the output length from the nonlinear converter is the same as the length of the message input to the nonlinear converter. . This means that output differences can be completely controlled by message differences.
  • Helix and UMAC which is a dedicated algorithm, lack high versatility, such as being unsuitable for high-speed hardware implementation on specific platforms.
  • Helix has a 160-bit output length and is unlikely to be a MAC generation algorithm that can guarantee high security in the future.
  • the present invention has been made in view of such circumstances, and has practical performance and safety that can be applied to any platform that performs IP communication that transmits and receives a large amount of small data.
  • the present invention provides this MAC generation function that overcomes the weaknesses of SOBER-128.
  • the size of the message input to the non-linear transformation unit shall be 1Z2 or less of the output length.
  • a message authenticator generating device that also generates a message authenticator for verifying the integrity of message data to be transmitted and received, and that performs the initial processing on the first parameter.
  • An initialization device that outputs data having a random bit string power of a fixed length, a register that stores data output from the initialization device, and a message of a fixed length after dividing the input message data into a fixed length
  • the message data of a certain length and the data stored in the register are mixed, and the data mixing device that stores the mixed data in the register and the data stored in the register.
  • the data mixing device compresses the data after mixing to a predetermined data length and outputs it as a message authenticator.
  • a data authenticator that performs processing, wherein the data agitation device comprises a non-linear conversion device having an output that is at least twice the size of the fixed-length message data. I will provide a.
  • the present invention provides a technology that includes this message authenticator generation device and performs message authenticator generation and data encryption at the same time.
  • the present invention particularly relates to a pseudo-random number generator (hereinafter referred to as JP-A-2003-37482). (Referred to as MUGI) at low cost. That is, the present invention can provide MUG I with a function of generating a MAC at a low cost. Further, the present invention can provide an authentication encryption function to MUGI.
  • JP-A-2003-37482 a pseudo-random number generator
  • FIG. 1 is a diagram illustrating a schematic configuration of a MAC generation device according to an embodiment.
  • FIG. 2 is a flowchart illustrating the operation of the MAC generation device of this embodiment.
  • FIG. 3 is a diagram illustrating a schematic configuration of a stirring device according to the present embodiment.
  • FIG. 4 is a flowchart illustrating the operation of the stirring device of the present embodiment.
  • FIG. 5 is a diagram illustrating a configuration of a nonlinear conversion device of the present embodiment.
  • FIG. 6 is a diagram illustrating a configuration of nonlinear replacement according to the present embodiment.
  • FIG. 7 is a diagram illustrating a configuration of a linear conversion apparatus according to the present embodiment.
  • FIG. 8 is a diagram illustrating a configuration of a data agitating device according to the present embodiment.
  • FIG. 9 is a diagram illustrating a configuration of an initialization apparatus according to the present embodiment.
  • FIG. 10 is a flowchart illustrating the processing of the initialization apparatus of the present embodiment.
  • FIG. 11 is a diagram illustrating a configuration of a data compression device according to the present embodiment.
  • FIG. 12 is a flowchart illustrating the process of the data compression device according to the embodiment.
  • FIG. 13 is a diagram illustrating a schematic configuration of a MAC verification device of the present embodiment.
  • FIG. 14 is a flowchart illustrating an operation of the MAC verification apparatus of the present embodiment.
  • FIG. 15 is a diagram illustrating a configuration of a communication system using the message authentication method of the present embodiment.
  • FIG. 16 is a diagram illustrating a schematic configuration of an authentication encryption device of the present embodiment.
  • FIG. 17 is a flowchart illustrating an operation of the authentication encryption device according to the embodiment.
  • FIG. 18 is a diagram illustrating a schematic configuration of an authentication decryption apparatus according to the present embodiment.
  • FIG. 19 is a flowchart illustrating an operation of the authentication decryption apparatus of the present embodiment.
  • FIG. 20 is a diagram illustrating a configuration of a communication system using the authentication encryption technology of the present embodiment.
  • FIG. 21 is a diagram illustrating another configuration of the nonlinear conversion apparatus of the present embodiment.
  • the authentication encryption device of this embodiment uses a message authenticator generation device having a register. Therefore, first, a message authenticator generation device that is most suitable for the authentication encryption device of this embodiment will be described.
  • FIG. 1 is an image diagram of a message authenticator (MAC) generation device that is most suitable for the authentication encryption device of the present embodiment.
  • the MAC generation device 201 of the present embodiment performs processing on the message M205 input via the message input control device 209 according to the clock signal input from the clock generation device 203, A message authenticator T207 is generated.
  • Input from the outside to the MAC generation device 201 of the present embodiment is a parameter K204 input via the parameter input control device 218 in addition to the message M205 input via the message input control device 209. And a security parameter D206 and a clock signal generated by the clock generation device 203.
  • the message input control device 209 divides a message M205 of an arbitrary size into processing units inside the MAC generation device 201 and inputs them to the MAC generation device 201.
  • the parameter input control device 218 divides a parameter K204 of an arbitrary size into processing units inside the MAC generation device 210 and inputs them to the MAC generation device 201.
  • the clock generation device 203 generates a clock signal and inputs it to the MAC generation device 201 and the message input control device 209.
  • the MAC generation device 201 includes an initialization device 211, a register 212, a memory 210, a switch 215,
  • the initialization device 211 cuts out the parameter K 204 input via the parameter input control device 218 for each register 212 length and outputs it to the register 212. [0032]
  • the register 212 temporarily holds the parameter K204 or the output from the data agitator 208.
  • the memory 210 temporarily holds the message M205 input via the message input control device 209.
  • the switch 215 switches to input the data held in the register 212 to either the data agitating device 208 or the data compressing device 216 in accordance with an instruction from the control device 214.
  • the switch 217 switches between data input to the data agitation device 208 and whether or not the data held in the memory 210 is input according to an instruction from the control device 214.
  • the control device 214 switches the switch 21 according to the security parameter D206 and the counter 213.
  • the counter 213 counts the number of inputs from the clock generator 203, and is updated so that the value held is incremented by 1 each time a clock signal is input from the clock generator 203.
  • the data agitator 208 agitates the data input to the data agitator 208 and outputs it.
  • the data compression device 216 performs predetermined processing on the data input to the data compression device 216, generates a message authenticator T207, and outputs it.
  • the input parameter K204 is basically secret information combined with a secret key. However, a part of the value may be a public value such as a counter.
  • the security parameter D206 is an index representing the security of the encryption method of the MAC generation device 201, and the key length or the like may be used as the security parameter D206.
  • the security parameter D206 is a parameter that serves as a basis for determining the number of times of stirring, which will be described later, performed in each function in the MAC generation device 201 such as the initialization device 211 and the data compression device 216.
  • the control device 214 controls the number of times of stirring in each function according to the number of times of stirring in each function determined according to a predetermined calculation method.
  • the data agitating device 208 and the initialization device 211 accept data having a predetermined data length (hereinafter referred to as L) and perform processing.
  • L predetermined data length
  • the message input control device 209 will be described as a representative.
  • the message input control device 209 cuts out the message M205 power L bits each time it receives a clock from the clock generation device 203 and stores it in the memory 210. If the message M205 is not an integer multiple of L, data padding is performed in advance using a bit string 100...
  • the message ⁇ 205 is divided into message blocks Ml, ⁇ 2, and ⁇ in the message input control device 209 (the size of each message block ⁇ 1, ⁇ 2,... ⁇ is L).
  • N is the quotient when the post-padding message M205 is divided by L.
  • the operation of the parameter input controller 218 is basically the same, and the parameter K204 is ⁇ 1, ⁇ 2, ⁇ ⁇ (The size of ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ of the parameter after division is L. Also, ⁇ is the quotient when the parameter ⁇ 204 after padding is divided by L.
  • is a natural number. Yes, here is a natural number less than ⁇ ) ⁇
  • FIG. 2 is a flowchart for explaining an outline of the operation of the MAC generation device 201.
  • Step 301 The MAC generating apparatus 201 receives a parameter K204 and a message M205.
  • the parameter K204 is input to the initialization device 211 via the parameter input control device 218, and the message M205 is input to the memory 210 via the message input control device 209.
  • the message input control device 209 divides the message M205 into blocks having a fixed length L, and outputs the message M205 to the memory 210 each time a clock signal is input from the clock generation device 203.
  • the parameter input control device 218 divides the parameter K204 into blocks of a fixed length L, and outputs it to the initialization device 211 every time a clock signal is input from the clock generation device 203.
  • the MAC generator 201 Upon receiving these inputs, the MAC generator 201 receives an input from the clock generator 203. The following processing is performed according to the clock signal.
  • Step 302 The message M205 is divided into message blocks Mn.
  • Step 303 The parameter K 204 (K ⁇ ) input via the parameter input control device 218 is input to the initialization device 211.
  • the initialization device 211 causes the input parameter ⁇ 204 ( ⁇ ) to be initialized, which will be described later, and outputs the register 212 length data. Data output from the initialization device 211 is stored in the register 212.
  • Step 304 The value of the counter 213 is initialized. In this embodiment, all bit values are set to 0.
  • Steps 305 and 306 Each time a clock signal is input, the message block ⁇ ( ⁇ is a natural number equal to or less than ⁇ and is currently held by the counter 213 through the message input control device 209. The message ⁇ 205 divided as a value) is stored in the memory 210. The data agitation device 208 is caused to agitate the message block ⁇ ⁇ ⁇ ⁇ stored in the memory 210 and the data stored in the register 212, and the data of the register 212 length is output. The output data is stored in the register 212. Then, the counter 213 value is increased by one.
  • Steps 305 and 306 are repeated until all message blocks ⁇ are processed, that is, until ⁇ changes from 1 to ⁇ .
  • Step 307 When the value of the counter 213 becomes ⁇ , the control device 214 switches the switch 215 so that the data held in the register 212 is input to the data compression device 216. Then, the data force held in the register 212 at that time is input to the data compression device 216.
  • Step 308 The data compression device 216 compresses the input data, and generates data shorter than the bit length of the register 212 according to the security parameter D205.
  • the generated data is output as a message authentication code 207.
  • the initialization device 211, the data agitation device 208, and the data compression device 216 may be configured using independent functions, but can also be configured using the same agitation function. Implementation If the strike is taken into account, it is better to use the same stirring function. Below we define one agitation function
  • FIG. 3 is a diagram for explaining the outline of the stirring device 601 that realizes the processing of the stirring function applicable to the above three devices.
  • FIG. 4 is a diagram for explaining an outline of the operation of the stirring device 601.
  • the input to the stirring device 601 is the data stored in the register 602 and the data stored in the external input 603. Whether or not the data of the external input 603 is input is controlled by a switch 609. That is, the agitation device 601 performs the process of agitating the data in the register 602 with the data input of the external input 603 and the process of agitating the data in the register 602 without the data input of the external input 603. Can do.
  • the register 602 is divided into two registers, which are referred to as a register A604 and a register B605, respectively.
  • the stirring device 601 of the present embodiment includes a non-linear conversion device 606, a linear conversion device 607, and an input filter 611.
  • a non-repetitive function is used as the function for realizing the linear conversion device 6 07.
  • a function that realizes the linear conversion device 606 uses a reversible function with respect to the input from the register A604. Details of each will be described later.
  • the switch 609 performs input switching in accordance with a switching instruction from the control device 608.
  • Step 702 The data stored in the external input 603 is checked for the presence of data and the signal from the control device 608.
  • Steps 703, 704, 705 When data is not stored in the external input 603, that is, when data is not input from the external input 603, or from the control device 608, data from the external input 603 When a signal ignoring is received, switch 609 is switched so that external input 603 does not input to input filter 611. Meanwhile, external input 603 If the control device 608 does not output a signal to ignore, the switch 609 is input to the data force input filter 611 held by the external input 603. Switch.
  • Step 706 The input from the switch and the data in the memory are input to the input filter 610.
  • the input filter 611 outputs a certain length of data according to the input.
  • the input filter 611 performs a process of taking an exclusive OR of the input from the switch and the data in the memory. In addition, replace the result of exclusive OR with non-linear replacement A801 described later.
  • Step 707 The data stored in the registers A604 and B605 and the data held in the external input 603 received via the switch 609 or the data stored in the register B605 are nonlinearly Input to the converter 606 and stir the data.
  • Step 708 The output of the nonlinear device 606 and the data held in the register B 605 are input to the linear conversion device 607.
  • Step 709 The output from the linear conversion device 607 is stored in the register A604 and the register B605.
  • the data length L is assumed to be 64 bits.
  • the size of the external input 603 is 64 bits.
  • Register A604 and register B605 will be described assuming that three and 16 64-bit small registers are configured, respectively. Each small register is represented as AO, Al, A2, BO, Bl, “ ⁇ ⁇ 15.
  • each register has a higher rank (left power rule, AO, Al, A2, BO, Bl,--: 615.
  • FIG. 5 is a diagram for explaining the configuration of the nonlinear conversion device 606 of the present embodiment.
  • the circled cross symbol represents exclusive OR.
  • exclusive logical sum is expressed as "XOR”.
  • Nonlinear device 606 includes nonlinear substitution A801, nonlinear substitution B802, and cyclic shift device 803. The details of nonlinear replacement A801 and nonlinear replacement B802 will be described later.
  • the nonlinear conversion device 606 includes the data stored in the register A604, the data stored in B10 of the register B605, and the external input 603 selected by the switch 609 or B4 of the register B. And the data stored in are input. Non-linear conversion device 606 performs processing on the above three inputs at time t and stores the result in register A604 at time t + 1 to update the state of register A604.
  • the non-linear replacement A801 is F
  • the non-linear replacement B802 is G
  • the input data from the switch 609 is P (t).
  • FIG. 21 is a diagram for explaining the configuration of the nonlinear conversion device 606 of this another example.
  • the circle cross symbol “XOR” has the same meaning as in FIG.
  • the details of the state update of the register A604 by the non-linear conversion device 606 of this example are given by the following equations.
  • the non-linear conversion device 606 obtains an output of 192 (64 ⁇ 3) bits from the 64-bit input data P (. That is, the size of the input message Is less than 1/2 of the output length.
  • FIG. 6 is a diagram for explaining the configuration of the nonlinear replacement A801.
  • the nonlinear replacement A801 processes the input 904 and outputs the result as an output 905.
  • Si and Li for example, an 8-bit replacement table S-box S and MixColumn O described in FIPS197 can be used.
  • nonlinear replacement A801 is given by the following equation.
  • the 64-bit input 904 is manually input to the SO, Sl, and S7, respectively, 8 bits from the high-order bits, and processed.
  • the SO power and the S3i or LO are applied to the S4 power.
  • La S7i or L1 will be manpowered.
  • the upper 16 bits of L0 and the upper 16 bits of L1 are swapped and output 905 is obtained.
  • FIG. 7 is a diagram for explaining the configuration of the linear conversion device 607 of the present embodiment.
  • one line represents the flow of 64-bit data.
  • the linear conversion device 607 receives two values: data stored in the register B605 and data stored in the AO of the register A604.
  • the linear conversion device 607 updates the state of the register B605 by processing the above two inputs at time t and storing the result in the register B605 at time t + 1.
  • linear conversion device 607 does not update the data held in the register A604.
  • FIG. 8 is a diagram for explaining a configuration when the stirring device 601 is used as the data stirring device 208.
  • the agitator 601 is the data agitator 208
  • the register 602 is the register 212
  • the outer manpower 603 force S memory 210
  • the switch 610 force S switch 215
  • the switch 609 is switch. Corresponds to 217.
  • data input to the memory 210 in units of message blocks Mn is sent to the data agitation device 208 in accordance with an instruction from the control device 214 that operates according to the clock signal from the clock generation device 203. And stir.
  • the control device 214 operates the switch 215 and outputs the data stored in the register 212 to the data compression device 216.
  • the data agitation device 208 of the present embodiment is configured to input and agitate data stored in the memory 210 once every clock.
  • the number of data agitation is determined according to security parameter D 206, and after all message blocks Mn have been entered, the data agitation number is switched to switch 217 without external input 603 (input from memory 210).
  • the data may be configured to be agitated.
  • FIG. 9 shows a configuration for realizing the initialization device 211.
  • the initialization device 211 of the present embodiment includes the above-described stirring device 601, register 602, switch 609, switch 610, and input filter 611.
  • Control device 608 shown in FIG. 3 corresponds to control device 214 shown in FIG.
  • the external input 6003 is obtained after the parameter K204 is divided into the data length L by the parameter input controller 218.
  • the number of times of stirring in the initialization device 211 is determined based on the security parameter D2 06.
  • FIG. 10 is a processing flow of the MAC generation device 201 when the initialization device 211 is realized by the stirring device 601.
  • Step 1101 A parameter K204 and a security parameter D206 are given as inputs.
  • Step 1102 In the initialization apparatus 211, the parameter K204 is divided into P blocks in accordance with the input size of the stirring apparatus 601 (here, the initialization apparatus 211). Padding is performed as necessary.
  • the input size is L of the size of the external input 603, that is, 64 bits in this embodiment.
  • Step 1103 Register 602 is cleared to zero.
  • Steps 1105, 1106 Kn becomes an external input 603 until n becomes larger than n force (n> P), and every time a clock signal is input, the stirrer 601 is operated to stir the data in the register 602 Repeatedly increase n by 1.
  • L (D) is a value indicating the number of agitation in the initialization process, and is determined according to the security parameter D206.
  • Step 1110 After the stirring is completed, the data in the register 602 at this time is output. In this embodiment, the data is output to the register 212.
  • FIG. 11 shows a configuration for realizing the data compression device 216. Since the data compression device 216 does not have anything other than register data as input, the input filter 611 is omitted in the figure.
  • the data compression device 216 of the present embodiment includes a stirring device 601, a register 602, a switch 609, and a switch 610.
  • Control device 608 shown in FIG. 3 corresponds to control device 214 shown in FIG.
  • the data compression device 216 there is nothing equivalent to the external input 603.
  • a buffer T'216a that temporarily holds the processing result and data in buffer T'216a are output according to the instruction from controller 214.
  • Switch 216b Before outputting the final result as message authenticator T207, a buffer T'216a that temporarily holds the processing result and data in buffer T'216a are output according to the instruction from controller 214. Switch 216b.
  • the number of agitation in the data compression device 216 is determined according to the security parameter D206.
  • FIG. 12 is a processing flow of the MAC generation device 201 when the data compression device 216 is realized by the stirring device 601.
  • Step 1201 The data of the register 212 and the security parameter D206 are given as inputs.
  • the data in the register 212 is held in the register 602.
  • Steps 1203 and 1204 The stirrer 601 is operated without an external input 603 every clock until the n force f (D) exceeds (n> L '(D)), and the data in the register 602 is stored. Stir and repeat the process of increasing n by 1.
  • V (D) is a value indicating the first number of agitation in the data compression process, and is determined according to the security parameter D206.
  • Steps 1206, 1207, 1208 Stirrer without external input 603 each time a clock signal is input until n is greater than L "(D) (n> L" (D)) Operate 601 and repeat the process of incrementing n.
  • L ′′ (D) is a value indicating the second number of agitation of the data compression process, and is determined according to the security parameter D206. Then, the agitation device 601 is operated for each clock, that is, the agitation is performed. The following operations are performed each time.
  • Step 1209 When n becomes larger than L ′′ (D), the data in the buffer T ′ 216a is output as the message authenticator T207.
  • the data length of the message authenticator T to be output can be adjusted by the value of L ′′ (D), that is, by the second number of agitation. Therefore, the MAC generation device 201 of this embodiment can be adjusted. Then, an arbitrary length message authenticator can be generated.
  • the number of agitation is determined depending on the security parameter D206.
  • this security parameter D206 may be a fixed value.
  • the external input 603 is input to the nonlinear conversion device 606, but is configured to be input to the linear conversion device 607. Also good.
  • the state update of the register B603 is expressed by the following equation.
  • the external input 603 may be configured to input to both the nonlinear conversion device 606 and the linear conversion device 607. In this case, the external input 603 is configured to be added to B0 (t) of the linear conversion device 607.
  • the message authenticator verification device has the same configuration as the message generation device, and receives the received message.
  • the message and MAC are extracted from the set of MAC and MAC, respectively.
  • the extracted message power MAC is generated, and verification is performed by comparing the generated MAC with the extracted MAC.
  • the message authenticator verification device for verifying the authenticity of the received message authenticator basically has the same structure as the MAC generation device 201 described above. It has a function to perform MAC generation processing and a function to compare the received MAC with the MAC generated by the message authenticator verification device.
  • FIG. 13 is a diagram for explaining the outline of the message authenticator (MAC) verification device 401 of this embodiment
  • FIG. 14 is a processing flow by the MAC verification device of FIG.
  • the MAC verification device 401 of this embodiment includes a MAC generation device 201 and a data comparison device 402.
  • the input to the MAC verification device 401 is the input to the MAC generation device 201, the parameter K204, the message ⁇ 205, the security parameter D206, the input signal from the clock generation device 404, and the input to the data comparison device 402.
  • a tag 405 is a MAC extracted from the received message card.
  • the message M205 and the parameter K204 are divided into blocks of a predetermined length L and input via the message input control device 209 and the parameter input control device 218, respectively.
  • Step 502 Input the parameter K204, message ⁇ 205, and security parameter D206 to the MAC generation device 201, perform the MAC generation processing, and output the result.
  • Step 503 The output as the processing result of step 502 is compared with the value of the tag T405.
  • Steps 504 and 505 In the comparison of step 503, 0 is output if both values are equal, and 1 is output otherwise. In other words, 0 is output when the message is verified as authentic, and 1 is output as the verification result 406 in other cases.
  • Step 506 The process is terminated.
  • FIG. 16 is an image diagram of the authentication encryption device 1601 of the present embodiment.
  • the authentication encryption device 1601 of the present embodiment has a message authentication having the register 212 shown in FIG. Tester (MAC) generator 201, bit string output filter 1605, switch 1606 for controlling input from register 212 to output filter 1605, encryption device 1608, switch 1607 for controlling message input to encryption device 1608, encryption
  • the memory 1612 that stores the output of the converter 1608 is provided. The detailed configuration of each component will be described later.
  • the authentication encryption device 1601 of the present embodiment performs processing on the message M205 input via the message input control device 209 according to the clock signal input from the clock generation device 203, and encrypts the message M205. And ciphertext C1609 is output. Further, the authentication encryption device 1601 generates a message authentication code T207 after processing all the messages M205.
  • an external input to the authentication encryption device 1601 is a parameter K204 input via the parameter input control device 218 in addition to the message M205 input via the message input control device 209. And a security parameter D206, a cipher key flag F1610 for determining whether or not to perform encryption processing, and a clock signal generated by the clock generator 203.
  • FIG. 17 is a flowchart for explaining an outline of the operation of the authentication encryption device 1601.
  • Step 1701 Authentication encryption apparatus 1701 receives parameter K204 and message M205.
  • the parameter K204 is input to the message authenticator generating device 201 via the parameter input control device 218, and the message authenticator generating device 201 is initialized.
  • the message M205 is input to the message authenticator generation device 201 via the message input control device 209, and further to the encryption device 1608 via the switch 1607.
  • the message input control device 209 divides the message M205 into blocks of a fixed length L, and each time a clock signal is input from the clock generation device 203, the message authentication control device 201 and the encryption device 1608 Output toward.
  • the parameter input control device 218 operates in the same manner as the message authenticator generation device 201 described with reference to FIG.
  • authentication encryption device 1601 Upon receiving these inputs, authentication encryption device 1601 receives the input from clock generation device 203. The following processing is performed according to the clock signal.
  • Step 1702 Message M205 is changed to message block Ml, M with block length L bits.
  • Step 1703 Parameter K204 (via parameter input controller 218)
  • Step 1704 Counter (213; FIG. 1) included in the message authenticator generation device 201
  • the value of (not shown in 6) is initialized. In this embodiment, all bit values are set to 0.
  • Step 1705 Steps 1706 and 1707 are repeated until the value of counter 213 becomes ⁇ .
  • Step 1706 Each time a clock signal is input, the message authenticator generation apparatus 201 performs processing according to Step 306 in FIG.
  • Step 1707 The value of the register 212 is input to the output filter 1605 through the switch 1606.
  • the output filter 1605 generates a constant-length bit string Rn (n is a natural number less than or equal to ⁇ , and is the value currently held by the counter) from the value input from the register 212.
  • the encryption device 1608 generates a ciphertext block Cn from the message block Mn input via the message input control device 209 and the switch 1607 and the bit string Rn, and outputs it to the memory 1612.
  • Step 1710 The process ends.
  • the above is the configuration and operation flow of the authentication encryption device 1601.
  • the encryption flag F1610 is a flag that determines whether or not the message is encrypted.
  • the switches 1606 and 1607 are connected to S and operate as the authentication encryption device 1601 described above.
  • switch 1606, 1607 is disconnected and encryption processing is not performed.
  • the authentication encryption device 1601 operates as the message authenticator generation device 201 described above, and outputs only the message authenticator T207.
  • the output filter 1605 included in the authentication encryption device 1601 outputs the lowest block A2 (t) of the register A (604).
  • the above configuration example is an example of the simplest output filter, and it is possible to further increase the safety by further performing non-linear conversion on a plurality of blocks of the register 212.
  • Nonlinear replacement When the conversion by A801 is represented by F and the output filter 1605 is represented by Fout,
  • FIG. 18 is an image diagram of the authentication decryption apparatus 1801 of the present embodiment.
  • the structure of the authentication decryption device 18 01 is basically the same as that of the authentication encryption device 1601.
  • the decryption device 1806 is provided instead of the encryption device 1608, and the tag T1804 is compared with the output of the message authenticator generation device 201.
  • a memory 1807 for holding the outputs of the tag comparison device 1808 and the decoding device 1806.
  • the input to the authentication decryption apparatus 1801 is not the message M205 but the ciphertext C1803.
  • the ciphertext C1803 is input to the message authenticator generation device 201 and the decryption device 1806 via the ciphertext input control device 1805. As an additional input, there is a tag T1804.
  • FIG. 19 is a flowchart for explaining an outline of the operation of the authentication decryption apparatus 1801.
  • Step 1901 Authentication / decryption device 1801 is powered by parameter K204, ciphertext 1803, and tag T1804.
  • the message input control device 209 divides the ciphertext C1803 into blocks of a fixed length L, and each time a clock signal is input from the clock generation device 203, the message authenticator generation device 2
  • the parameter input control device 218 operates in the same manner as the message authenticator generation device 201 described in FIG.
  • authentication decryption apparatus 1801 Upon receiving these inputs, authentication decryption apparatus 1801 performs the following processing according to the clock signal input from clock generation apparatus 203.
  • Step 1902 The ciphertext C1803 is converted to a ciphertext block Cl, C2,...
  • Step 1903 The parameter K204 ( ⁇ ) input via the parameter input control device 218 is sequentially input to the message authenticator generation device 201, and the register 212 is initialized.
  • Step 1904 The value of a counter (213; not shown in FIG. 18) included in the message authenticator generation device 201 is initialized. In this embodiment, all bit values are set to 0.
  • Step 1905 Steps 1706 and 1707 are repeated until the value of counter 213 becomes ⁇ .
  • Step 1906 Every time a clock signal is input, the value of the register 212 is input to the output filter 1605 via the switch 1606.
  • the output filter 1605 generates a constant-length random number sequence Rn (n is a natural number less than or equal to ⁇ and is a value currently held by the counter) from the value input from the register 212, and is a decoding device.
  • Rn a constant-length random number sequence
  • the decryption device 1806 generates a decrypted text Mn ′ from the ciphertext block C n input via the ciphertext input control device 1805 and the switch 1607, and outputs it.
  • Step 1907 The message authenticator generation device 201 performs processing according to Step 306 in FIG.
  • Steps 1908 and 1709 When the value of the counter 213 becomes N, the message authenticator generator 201 performs the processing of steps 307 and 308 in Fig. 3 and outputs the message authenticator T 'for the decrypted text M To do.
  • Steps 1911 and 1912 In the comparison of Step 1910, if the two values are equal, the decrypted sentence M ′ is output. In other cases, an error signal indicating that authentication has failed, for example, 1 is output.
  • Step 1913 The process ends.
  • FIG. 15 is a configuration diagram of a communication system in which message authentication is performed by the MAC generation device 201 and the MAC verification device 401 of the present embodiment.
  • IC cards 1301 and 1309 will be described as examples for realizing the MAC generation device 201 and the MAC verification device 401.
  • the communication system of the present embodiment includes an IC card 1301 that implements a MAC generation device 201, a message input control device 209, and a parameter input control device 218, a MAC verification device 401, a message input control device 209, and parameter input control.
  • IC device 1311 for realizing device 218, message authentication code and message generated by IC card 1301 are transmitted to the partner device via network 1340, and transmission device 1320 is transmitted via network 1340.
  • a receiving side communication device 1330 that receives the message authenticator and the message transmitted from the communication device 1320 and passes them to the IC card 1311 is provided.
  • IC card 1301, 1311 ⁇ this figure [As shown], CPU1302, 1313, Memory 1303, 1313, Storage devices 1304, 1314, Input / output interfaces 1305, 1315
  • storage devices 1304 and 1314 have secret keys 1306 and 1316, message numbers 1307 and 1317, security parameters D206, a message authenticator generation program 1308, and message authenticator verification.
  • Program 1318 and force are stored respectively.
  • the message authenticator generation program 1308 is loaded into the memory 1303 and executed by the CPU 1302, thereby realizing the functions of the MAC generation device 201, the message input control device 209, and the parameter input control device 218. Also, the private key 1306 and the message The pair with the page number 1307 is used as the parameter K204 of the MAC generation device 201.
  • the message authenticator verification program 1318 is loaded into the memory 1313 and executed by the CPU 1312, thereby realizing the functions of the MAC verification device 401, the message input control device 209, and the parameter input control device 218 described above. . Also, the pair of the secret key 1316 and the message number 1317 is used as the parameter K204 of the MAC verification device 401.
  • Step 1401 The data sender and the data receiver secretly share the secret keys 1306 and 1316 in advance.
  • Message numbers 1307 and 1317 and security parameter D206 do not need to be kept secret, but are shared in advance. That is, the same data is held in the secret key 1306 of the IC card 1301, the secret key 1316 of the IC card 1311, and the message numbers 1307 and 1317, respectively.
  • the technology for sharing these pieces of information can be realized by using, for example, public key cryptography.
  • Step 1402 The message sender inputs the message M205 to the IC card 1301 via the I / O interface 1305.
  • the IC card 1301 (MAC generation device 201) accepts the input of message M205, it uses the parameter consisting of secret key 1306 and message number 1307, and security parameter D206, to input message M205.
  • a message authenticator T207 is generated and passed to the transmission side communication device 1320 together with the message M205.
  • Step 1403 When the message M205 and the message authenticator T207 are received from the IC card 1301, the transmitting communication device 1320 transmits them to the receiving communication device 1330 via the network 1340.
  • Step 1404 The receiving side communication device 1340 receives the message M205 and the message authenticator T207, and inputs them to the IC card 1311 (MAC verification device 401) via the I / O interface 1315.
  • Step 1405 Upon receiving the message M205 and the message authenticator T207, the IC card 1311 receives the message M205 and the message key 1316, which are parameters including the secret key 1316 and the message number 1317. , And the security parameter D206 is used to verify the message authenticator T207, determine the authenticity of the input message M205, and output 0 if it is authentic and 1 otherwise. The result is output.
  • a message authenticator T207 ' is generated on the receiving side, and compared with the received message authenticator T207. If they match, it is determined to be authentic, and if they do not match, it is determined not to be authentic. , 1 is output.
  • FIG. 20 is a configuration example of a communication system including IC cards 2001 and 2011.
  • the system shown in FIG. 20 has almost the same configuration as the communication system having the message authentication function described in FIG.
  • the IC card 2001 stores the authentication encryption program 2002 instead of the message authenticator generation program 1308, and the IC card 2011 stores the authentication decryption program 2012 instead of the message authenticator verification device 1318.
  • encryption key flags 2003 and 2013 for determining whether to perform encryption processing are stored.
  • Step 2201 The data sender and the data receiver share the secret keys 1306 and 1316 in advance. This is the same as step 1401 of the message authentication system.
  • the data sender and the data receiver synchronize the encryption key flags 2003 and 2004 to determine whether or not to encrypt the data. It is determined in advance.
  • the encryption key flag can be synchronized with the data communication by including the encryption key flag in the ciphertext packet 1611.
  • Step 2202 The message sender inputs the message M205 to the IC card 2001 via the I / O interface 1305.
  • the IC card 2001 authentication encryption device 1601 accepts the input of message M (205), it uses the private key 1306, message number 1307, and the parameters and security parameter D206 to input the message M (2 05 ) Is processed.
  • the cipher key flag 2003 does not instruct cipher key processing, the IC card 2001 generates a message authenticator T (207) for message M (205) using the above parameters, and message ⁇ (205 ) And the transmission side communication device 1320.
  • the encryption key flag 2003 indicates encryption key processing, the IC card 2001 uses the above parameters to encrypt message M (205) and
  • Step 2203 When the ciphertext C (1309) and the ciphertext bucket (1611) that also has the message authenticator T (207) are received from the IC card 2001, the communication device 1320 on the transmitting side sends them to the network. The data is transmitted to the receiving communication device 1330 via 1340.
  • Step 2204 Receiving side communication device 1330 receives ciphertext C (1803) and tag T (1804), and inputs them to IC card 2011 (authentication decryption device 1801) via interface 1315.
  • Step 2205 When the IC card 2011 receives the ciphertext C (1803) and the tag T (1804), the parameter consisting of the secret key 1316 and message number 1317, which are shared information, and the security parameter D206 Are used to decrypt the ciphertext and verify tag ⁇ ⁇ (1804). If no alteration of the ciphertext is detected as a result of the verification (if the value of the message authenticator calculated from the ciphertext C1803 matches the value of tag ⁇ (1804)), the decrypted message ⁇ , (1809) Is output. Otherwise, a signal (for example, 0) indicating that the message authenticator values do not match is output.
  • a signal for example, 0
  • the MAC authentication device 201 and the MAC verification device 401 in the present embodiment a high-speed processing is possible, and a safe MAC generation device and MAC verification that can withstand long-term use.
  • a device can be provided.
  • the authentication encryption device 1601 and the authentication decryption device 1801 in the present embodiment it is possible to provide a secure authentication encryption device and authentication decryption device that can perform high-speed processing and withstand long-term use.
  • the MAC generation device 201 of the present embodiment used in each of the above devices is configured to determine the number of stirrings by a security parameter such as a key length, it is easy to change the number of times stirring processing is applied. . This means that the safety level and processing speed can be set flexibly.
  • any of the methods has the following problems.
  • the message authentication of the present embodiment uses a stream encryption technique. Therefore, the MAC generation device and the MAC verification device according to the present embodiment can be used as a cheaper and faster alternative to the message authenticator generation function and the authenticator verification function in an arbitrary message authentication system. Further, according to the MAC generation device and the MAC verification device of the present embodiment, it is possible to provide an authentication encryption function that simultaneously performs the MAC generation and the data encryption at a lower cost.
  • the message authenticity verification function by the MAC generation device and the MAC verification device in the present embodiment has the following advantages over the conventional method.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

 従来技術の弱点である、出力差分をメッセージ差分で完全にコントロールできる性質を克服し、任意のプラットフォームで動作可能な、高速で安全性の高いMAC生成および認証暗号技術を提供する。  入力するメッセージのサイズが出力長の1/2以下となる非線形変換部を備える攪拌装置を採用することにより、出力差分値のコントロール不可能にする。本発明のMAC生成装置は、上記攪拌装置をメッセージの攪拌処理だけでなく、初期化処理、データ圧縮処理にも採用可能である。

Description

明 細 書
メッセージ認証装置及び認証暗号装置 参照による取り込み
[0001] 本発明は 2004年 8月 19曰に出願された曰本特願 2004— 239359の優先権を主 張し、文献の参照による織りみ込みが認められる指定国については、上記出願の開 示内容および特開 2003— 37482号公報の開示内容は参照により本出願に織り込 まれる。
技術分野
[0002] 本発明は、任意長のメッセージ認証子を高速に生成する技術に関する。
背景技術
[0003] 現在、インターネットを代表とする公開通信路を用いた通信は増加の一途をたどつ ている。このような通信路では、通信路上で、送信されたメッセージが悪意ある第三 者によって改ざんされる可能性があり、受信したメッセージの真贋を確認する方法が 必要となる。
[0004] メッセージの真贋を確認する方法として、共通鍵暗号技術を用いたメッセージ認証 子 (Message Authentication Code:以下 MACと呼ぶ。)を用いるものと、公開鍵暗号 技術による電子署名を用いるものとがある。電子署名を用いる方法は、 MACを用い るものに比べて処理に時間を要する。従って、小さなパケットを大量に送受信する IP 通信などでは、一般的に電子署名による方法よりも MACによる方法が用いられてい る。
[0005] MACを用いる方法は、送信データに所定の処理を施して生成される MACを比較 することにより、メッセージの改ざんの有無を確認するものである。
[0006] 一般に、 MACによる受信メッセージへの改ざんの有無の検証は、以下のように行 われる。
[0007] メッセージ送信側とメッセージ受信側とが、同じ MAC生成機能を有する。送信側で は、送信するメッセージ力も MAC (第 1の MAC)を生成し、メッセージと共に送信す る。受信側では、受信したメッセージから同様に MAC (第 2の MAC)を生成し、上記メ ッセージと共に受信した第 1の MACと第 2の MACとを比較する。両者が合致すれば 、メッセージの改ざんはないものと検証される。
[0008] この MACを生成する方法としては、ブロック暗号を用いた OMAC、ノ、ッシュ関数を 用いた HMAC、擬似乱数生成器を転用した Helix、 SOBER— 128 (非特許文献 1 参照。)などが知られている。また、 MACを生成する専用アルゴリズムとして、 UMA Cなどが知られている。また、前記 SOBER— 128や Helixは MACの生成とデータの 暗号ィ匕を同時に行うことができる方式である。 MACの生成とデータの暗号化を同時 に行う暗号化方式を認証暗号と呼ぶ。
[0009] 非特許文献 1 : P. Hawkes and G. Rose, Primitive Specification for SOBER- 128," IA CR ePrint Archive, http://eprint.iacr.org/2003/81/, 2003.
発明の開示
発明が解決しょうとする課題
[0010] 上記の各方法は、それぞれ問題がある。例えば、ブロック暗号、ハッシュ関数を用 Vヽて MACを生成する方法は、処理速度に問題がある。
[0011] 擬似乱数生成器を用いた SOBER— 128は、安全性に懸念があることが報告され ている。具体的には、 SOBER— 128では、内部に、非線形変換部を有し、その非線 形変換部からの出力長と、非線形変換部に対して入力されるメッセージの長さとが同 じである。これは、出力差分をメッセージ差分で完全にコントロールできることを意味 する。
[0012] また、 Helixや専用アルゴリズムである UMACは、特定のプラットフォームでは高速 だ力 ハードウ ア実装には向かないなど、汎用性に欠ける。さらに、 Helixは、出力 長が 160ビットであり、将来的に高い安全性を保証できる MAC生成アルゴリズムとは 言い難い。
課題を解決するための手段
[0013] 本発明は、このような事情に鑑みてなされたもので、小さなデータを大量に送受信 する IP通信などを行う任意のプラットフォームに適用可能な、実用に耐え得る性能と 安全性とを備えた、 MAC生成の技術を提供する。また、この MAC生成装置を備え、 MAC生成とデータの暗号ィ匕を同時に行う技術を提供する。
[0014] 本発明は、この MAC生成機能であって、 SOBER— 128の弱点を克服するものを 提供する。
[0015] 本発明では、上記弱点を克服するために、以下の構成をとる。
(1)非線形変換部に入力されるメッセージのサイズを出力長の 1Z2以下とする。
(2)非線形変換部からの出力をバッファにフィードバックする。
[0016] 具体的には、送受信するメッセージデータの完全性を検証するためのメッセージ認 証子を当該メッセージデータ力も生成するメッセージ認証子生成装置であって、第 1 のパラメータに初期化処理を施し、一定長のランダムなビット列力 なるデータを出力 する初期化装置と、前記初期化装置の出力したデータを格納するレジスタと、入力さ れる前記メッセージデータを一定長に分割した後、一定長のメッセージデータ毎に、 当該一定長のメッセージデータと前記レジスタに格納されているデータとを攪拌し、 攪拌後のデータを前記レジスタに格納するデータ攪拌装置と、前記レジスタに格納さ れているデータであって、前記データ攪拌装置において攪拌後のデータを、所定の データ長に圧縮し、メッセージ認証子として出力する圧縮処理を行うデータ圧縮装置 と、を備え、前記データ攪拌装置は、前記一定長のメッセージデータの 2倍以上のサ ィズの出力を有する非線形変換装置を備えることを特徴とするメッセージ認証子生成 装置を提供する。
[0017] また、このメッセージ認証子生成装置を備え、メッセージ認証子生成とデータの暗 号化とを同時に行う技術を提供するものである。
[0018] 上記態様の、非線形変換部に入力されるメッセージのサイズを出力長の 1Z2以下 とする構成により、出力差分値のコントロールを困難にする。また、本発明の非線形 変換部からの出力をバッファにフィードバックする構成により、バッファの状態更新を 非線形にすることができ、結果として、暗号学的な強度が増すことが期待できる。
[0019] また、上記態様によれば、ノッファ部と非線形変換部のデータの相関が小さくなるこ とが期待できる。このため、任意のプラットフォームで高速に動作する MAC生成装置 、および MAC検証装置を提供することができる。
[0020] 本発明は、特に、特開 2003— 37482号公報に開示する擬似乱数生成器 (以下、 MUGIと称す)に、低コストで適用することが可能である。すなわち、本発明は、 MUG Iに、 MACを生成する機能を安価に提供することができる。また、本発明は、 MUGI に認証暗号の機能を提供することができる。
発明の効果
[0021] 本発明によれば、任意のプラットフォームに適用可能な、実用に耐え得る性能と安 全性とを備えた MAC生成および認証暗号の技術を提供できる。
図面の簡単な説明
[0022] [図 1]本実施形態の MAC生成装置の概略構成を例示する図である。
[図 2]本実施形態の MAC生成装置の動作を例示するフローチャートである。
[図 3]本実施形態の攪拌装置の概略構成を例示する図である。
[図 4]本実施形態の攪拌装置の動作を例示するフローチャートである。
[図 5]本実施形態の非線形変換装置の構成を例示する図である。
[図 6]本実施形態の非線形置換の構成を例示する図である。
[図 7]本実施形態の線形変換装置の構成を例示する図である。
[図 8]本実施形態のデータ攪拌装置の構成を例示する図である。
[図 9]本実施形態の初期化装置の構成を例示する図である。
[図 10]本実施形態の初期化装置の処理を例示するフローチャートである。
[図 11]本実施形態のデータ圧縮装置の構成を例示する図である。
[図 12]本実施形態のデータ圧縮装置の処理を例示するフローチャートである。
[図 13]本実施形態の MAC検証装置の概略構成を例示する図である。
[図 14]本実施形態の MAC検証装置の動作を例示するフローチャートである。
[図 15]本実施形態のメッセージ認証方式を用いた通信システムの構成を例示する図 である。
[図 16]本実施形態の認証暗号装置の概略構成を例示する図である。
[図 17]本実施形態の認証暗号装置の動作を例示するフローチャートである。
[図 18]本実施形態の認証復号装置の概略構成を例示する図である。
[図 19]本実施形態の認証復号装置の動作を例示するフローチャートである。
[図 20]本実施形態の認証暗号技術を用いた通信システムの構成を例示する図であ る。
[図 21]本実施形態の非線形変換装置の他の構成を例示する図である。
発明を実施するための最良の形態
[0023] 以下に、本発明を適用する実施形態を説明する。
[0024] ここでは、本発明を認証暗号装置に適用した場合を実施形態として説明する。本実 施形態の認証暗号装置は、レジスタを持つメッセージ認証子生成装置を利用する。 そこでまず、本実施形態の認証暗号装置に最適なメッセージ認証子生成装置を説 明する。
[0025] 図 1は、本実施形態の認証暗号装置に最適なメッセージ認証子 (MAC)生成装置 のイメージ図である。本図に示すように、本実施形態の MAC生成装置 201は、メッセ ージ入力制御装置 209を介して入力されたメッセージ M205に、クロック生成装置 20 3から入力されるクロック信号に従って処理を施し、メッセージ認証子 T207を生成す る。
[0026] 本実施形態の MAC生成装置 201への外部からの入力は、メッセージ入力制御装 置 209を介して入力されるメッセージ M205の他に、パラメータ入力制御装置 218を 介して入力されるパラメータ K204と、セキュリティパラメータ D206と、クロック生成装 置 203の生成するクロック信号とがある。
[0027] メッセージ入力制御装置 209は、任意のサイズのメッセージ M205を、 MAC生成 装置 201の内部での処理単位に分割して、 MAC生成装置 201に入力する。
[0028] パラメータ入力制御装置 218は、任意のサイズのパラメータ K204を、 MAC生成装 置 210の内部での処理単位に分割して、 MAC生成装置 201に入力する。
[0029] クロック生成装置 203は、クロック信号を生成し、 MAC生成装置 201およびメッセ ージ入力制御装置 209に入力する。
[0030] MAC生成装置 201は、初期化装置 211、レジスタ 212、メモリ 210、スィッチ 215、
217、データ攪拌装置 208、制御装置 214、データ圧縮装置 216、カウンタ 213とを 備える。
[0031] 初期化装置 211は、パラメータ入力制御装置 218を介して入力されたパラメータ K 204をレジスタ 212長毎【こ切り出して、レジスタ 212【こ出力する。 [0032] レジスタ 212は、パラメータ K204またはデータ攪拌装置 208からの出力を一時的 に保持する。
[0033] メモリ 210は、メッセージ入力制御装置 209を介して入力されたメッセージ M205を 一時的に保持する。
[0034] スィッチ 215は、制御装置 214の指示に従って、レジスタ 212に保持されているデ ータを、データ攪拌装置 208およびデータ圧縮装置 216のいずれかに入力するよう 切り替える。
[0035] スィッチ 217は、制御装置 214の指示に従って、メモリ 210に保持されているデータ を、データ攪拌装置 208に入力する力否かを切り替える。
[0036] 制御装置 214は、セキュリティパラメータ D206、カウンタ 213に従って、スィッチ 21
5およびスィッチ 217を制御する。
[0037] カウンタ 213は、クロック生成装置 203からの入力回数をカウントするもので、クロッ ク生成装置 203からクロック信号が入力される毎に、保持する値が 1ずつ増加する よう更新される。
[0038] データ攪拌装置 208は、データ攪拌装置 208に入力されたデータを攪拌して出力 する。
[0039] データ圧縮装置 216は、データ圧縮装置 216に入力されたデータに所定の処理を 施し、メッセージ認証子 T207を生成し、出力する。
[0040] 初期化装置 211、データ攪拌装置 208、データ圧縮装置 216の詳細については、 後述する。
[0041] また、入力されるパラメータ K204は、基本的には、秘密鍵と ヽつた秘密情報である 。しかし、その一部をカウンタのような公開値としてもよい。
[0042] セキュリティパラメータ D206は、 MAC生成装置 201の暗号方式の安全性を表す 指標であり、鍵長などをセキュリティパラメータ D206としてもよい。セキュリティパラメ ータ D206は、初期化装置 211、データ圧縮装置 216等の MAC生成装置 201内の 各機能において行われる、後述する攪拌回数を決定する基礎となるパラメータである 。セキュリティパラメータ D206に基づいて、所定の算出方法に従って決定された各 機能での攪拌回数に従って、制御装置 214は、各機能での攪拌回数を制御する。 [0043] 本実施形態では、データ攪拌装置 208および初期化装置 211は、予め定められた データ長(以後、 Lとする)のデータを受け入れ、処理を行う。上記のメッセージ入力 制御装置 209およびパラメータ入力制御装置 218は、任意サイズのメッセージ M20 5およびパラメータ K204を、本実施形態のデータ攪拌装置 208および初期化装置 2 11でそれぞれ処理するために設けられて ヽる。
[0044] メッセージ入力制御装置 209を代表として説明すると、メッセージ入力制御装置 20 9は、クロック生成装置 203からクロックを受信する毎に、メッセージ M205力 Lビット 切り出し、メモリ 210に格納する。メッセージ M205が Lの整数倍でない場合は、予め ビット列 100· · ·0などを用いてデータパディングを行 、、 Lの整数倍となるようにする。 本実施形態では、メッセージ Μ205は、メッセージ入力制御装置 209において、各メ ッセージブロック Ml、 Μ2、〜ΜΝに分割される(各メッセージブロック Μ1、 Μ2· ··Μ Νのサイズは Lである。また、 Nは、パディング後のメッセージ M205を Lで割った場合 の商である。 ) oパラメータ入力制御装置 218の動作も基本的に同様であり、パラメ一 タ K204は、 Κ1、 Κ2、〜Κη· ··ΚΡに分割される(分割後のパラメータの Κηのサイズ は Lである。また、 Ρは、パディング後のパラメータ Κ204を Lで割った場合の商である 。ここで、 ηは自然数であり、ここでは、 Ρ以下の自然数である。 ) ο
[0045] 次に、 MAC生成装置 201の動作の概要を説明する。図 2は、 MAC生成装置 201 の動作概要を説明するためのフローチャートである。
[0046] ステップ 301: MAC生成装置 201には、パラメータ K204とメッセージ M205とが入 力される。パラメータ K204は、パラメータ入力制御装置 218を介して初期化装置 21 1に、メッセージ M205は、メッセージ入力制御装置 209を介してメモリ 210に入力さ れる。
[0047] メッセージ入力制御装置 209は、メッセージ M205を、一定長 Lのブロックに分割し 、クロック生成装置 203からクロック信号が入力されるごとにメモリ 210にむけて出力 する。パラメータ入力制御装置 218も、同様に、パラメータ K204を、一定長 Lのプロ ックの分割し、クロック生成装置 203からクロック信号が入力されるごとに、初期化装 置 211にむけて出力する。
[0048] MAC生成装置 201は、これらの入力を受けると、クロック生成装置 203から入力さ れるクロック信号に従って、以下の処理を行う。
[0049] ステップ 302 :メッセージ M205を、メッセージブロック Mnに分割する。
[0050] ステップ 303 :パラメータ入力制御装置 218を介して入力されたパラメータ K204 (K η)を初期化装置 211に入力する。初期化装置 211に、入力されたパラメータ Κ204 ( Κη)に後述する初期化処理を施させ、レジスタ 212長のデータを出力させる。初期化 装置 211から出力されたデータは、レジスタ 212に格納される。
[0051] ステップ 304 :カウンタ 213の値を初期化する。本実施形態では、全てのビット値を 0 にセットする。
[0052] ステップ 305、 306 :クロック信号が入力される毎に、メッセージ入力制御装置 209 を介することにより、メッセージブロック Μη (ηは、 Ν以下の自然数であり、カウンタ 21 3が現在保持している値となる。)として分割されたメッセージ Μ205が、メモリ 210に 格納される。データ攪拌装置 208に、メモリ 210に格納されているメッセージブロック Μηとレジスタ 212に格納されているデータとを攪拌させ、レジスタ 212長のデータを 出力させる。出力されたデータは、レジスタ 212に格納される。そして、カウンタ 213 の値を 1増カロさせる。
[0053] ステップ 305、 306の処理を、全てのメッセージブロック Μηを処理し終えるまで、す なわち、 ηが 1から Νになるまで繰り返す。
[0054] ステップ 307 :カウンタ 213の値が Νになると、制御装置 214に、レジスタ 212に保 持されるデータがデータ圧縮装置 216に入力されるようにスィッチ 215を切り替えさ せる。そして、その時点でレジスタ 212に保持されるデータ力 データ圧縮装置 216 に入力される。
[0055] ステップ 308 :データ圧縮装置 216に、入力されたデータの圧縮を行わせ、セキユリ ティパラメータ D205に応じて、レジスタ 212のビット長よりも短いデータを生成させる 。そして、生成されたデータをメッセージ認証子 Τ207として出力する。
[0056] 次に、初期化装置 211、データ攪拌装置 208、データ圧縮装置 216について説明 する。
[0057] 初期化装置 211、データ攪拌装置 208、データ圧縮装置 216は、それぞれ独立な 関数を用いて構成してもよいが、同じ攪拌関数によっても構成が可能である。実装コ ストを勘案すれば、同じ攪拌関数を用いる方がよい。以下、一つの攪拌関数を定義し
、上記 3装置を、この攪拌関数により実現する場合を例にあげ、説明する。
[0058] 図 3は、上記 3装置に適用可能な攪拌関数の処理を実現する攪拌装置 601の概略 を説明するための図である。また、図 4は、攪拌装置 601の動作概要を説明するため の図である。
[0059] 図 3に示すように、攪拌装置 601への入力は、レジスタ 602に格納されているデー タと、外部入力 603に格納されているデータとである。外部入力 603のデータは、スィ ツチ 609により、入力の有無を制御される。すなわち、攪拌装置 601は、外部入力 60 3のデータ入力ありで、レジスタ 602内のデータを攪拌する処理と、外部入力 603の データ入力なしで、レジスタ 602内のデータを攪拌する処理とを行うことができる。
[0060] 以下、説明のため、レジスタ 602を、 2つのレジスタに分割し、それぞれレジスタ A6 04、レジスタ B605とする。
[0061] 図 3に示すように、本実施形態の攪拌装置 601は、非線形変換装置 606と、線形変 換装置 607、および入力フィルタ 611とを備える。本実施形態では、線形変換装置 6 07を実現する関数は、非退ィ匕なものを用いる。また、線形変換装置 606を実現する 関数は、レジスタ A604からの入力に関して、可逆なものを用いる。それぞれ詳細は、 後述する。
[0062] 図 3に示すように、攪拌装置 601は、スィッチ 609と制御装置 608とスィッチ 610と によって切り替えられるレジスタ 602からの入力と外部入力 603からの入力とを受ける と、以下の処理を行う。
[0063] なお、スィッチ 609は、制御装置 608からの切り替え指示に従って、入力の切り替え を行う。
[0064] ステップ 702:外部入力 603に格納されて!、るデータの有無および制御装置 608か らの信号を確認する。
[0065] ステップ 703、 704、 705 :外部入力 603にデータが保持されていない場合、すな わち、外部入力 603からデータが入力されない場合、もしくは、制御装置 608から、 外部入力 603からのデータを無視する信号を受信した場合には、スィッチ 609を、外 部入力 603が入力フィルタ 611に入力しないように切り替える。一方、外部入力 603 にデータが保持され、かつ、制御装置 608から無視を指示する信号が出力されてい ない場合には、スィッチ 609を、外部入力 603が保持しているデータ力 入力フィル タ 611に入力されるように切り替える。
[0066] ステップ 706 :スィッチからの入力およびメモリのデータを入力フィルタ 610に入力 する。入力フィルタ 611は入力に応じて、一定長のデータを出力する。
[0067] ここで、入力フィルタ 611は、スィッチからの入力とメモリのデータとの排他的論理和 をとる処理を行う。また、さらに排他的論理和の結果を後述する非線形置換 A801に より置換してちょい。
[0068] ステップ 707 :レジスタ A604とレジスタ B605とに格納されているデータ、および、ス イッチ 609を介して受け取る外部入力 603が保持しているデータまたはレジスタ B60 5に格納されているデータを、非線形変換装置 606に入力し、データを攪拌する。
[0069] ステップ 708 :非線形装置 606の出力およびレジスタ B605が保持しているデータを 、線形変換装置 607に入力する。
[0070] ステップ 709 :線形変換装置 607からの出力を、レジスタ A604、レジスタ B605に 格納する。
[0071] ここで、非線形変換装置 606、線形変換装置 607の詳細について、説明する。以 下において、前記のデータ長 Lを 64ビットとする。すなわち、外部入力 603のサイズ を 64ビットとする。
[0072] また、レジスタ A604、レジスタ B605は、それぞれ、 3個、 16個の 64ビット小レジス タカも構成されるものとして説明する。また、それぞれの小レジスタを、 AO、 Al、 A2、 BO、 Bl、 "·Β15と表す。
[0073] 図 3におけるレジスタ Α604、レジスタ Β605からの非線形変換装置 606、線形変換 装置 607への細線は、それぞれ 1本の線が 64ビットデータの流れを表す。また、各レ ジスタとも、上位(左 Μ則力ら、 AO, Al、 A2、 BO、 Bl、 - --:615とする。
[0074] また、以下の処理では、各小レジスタが保持するデータは、時刻とともに更新されて 行く。時刻 tに状態更新がなされた時点でのレジスタ AOを、 AO (t)と記述する。これ は、状態更新を記述する際に、時刻 tを明記する必要がある場合のみ採用する。さら に、 1^+1) 八0(1:)+八1(1:)との記述は、矢印の右辺のレジスタ AO(t)とレジスタ Al(t) とに格納されているデータを結合し、矢印の左辺のレジスタ Bl(t+1)に代入することを 示す。
[0075] 図 5は、本実施形態の非線形変換装置 606の構成を説明するための図である。本 図において、丸に十字の記号は、排他的論理和を表す。また、式中では、排他的論 理和は、 "XOR"で表す。
[0076] 非線形装置 606は、非線形置換 A801と非線形置換 B802と巡回シフト装置 803と を備える。非線形置換 A801および非線形置換 B802の詳細については、後述する
[0077] 非線形変換装置 606には、レジスタ A604に格納されているデータと、レジスタ B60 5の B10に格納されているデータと、スィッチ 609により選択される、外部入力 603ま たはレジスタ Bの B4に格納されているデータと、の 3つのデータが入力される。非線 形変換装置 606は、時刻 t〖こおける、上記 3つの入力に処理を施し、その結果を、時 刻 t+1において、レジスタ A604に格納することにより、レジスタ A604の状態を更新 する。
[0078] 非線形変換装置 606によるレジスタ A604の状態更新の詳細は、以下の式で与え られる。ここでは、非線形置換 A801を F、非線形置換 B802を G、スィッチ 609からの 入力データを P(t)とする。
[0079] AO(t+l)^Al(t)
Al(t+1 A2(t) XOR G(Al(t) XOR P(t》
A2(t+l)^A0(t) XOR F(Al(t) XOR B10(t) «< 17)
ここで、上記式中の記号"〈くぐ,は、 64ビットレジスタにおける nビット左巡回シフトを 表す。以下、本明細書中、同様である。
[0080] レジスタ A604の状態更新の別例を説明する。図 21は、本別例の非線形変換装置 606の構成を説明するための図である。本図における丸に十字の記号、 "XOR"は、 図 5と同様の意味である。本別例の非線形変換装置 606によるレジスタ A604の状態 更新の詳細は以下の式で与えられる。
[0081] A0(t+l)^Al(t)
Al(t+1 A2(t) XOR G(Al(t) XOR B4(t》 A2(t+l)^A0(t) XOR F(Al(t) XOR P(t) «< 17)
以上説明したように、本実施形態および本別例では、非線形変換装置 606は、 64 ビット入力データ P ( から、 192 (64 X 3)ビットの出力を得ている。すなわち、入カメ ッセージのサイズを出力長の 1/2以下としている。
[0082] 次に、上記の非線形置換 A801、 B802について説明する。
[0083] 図 6は、非線形置換 A801の構成を説明するための図である。非線形置換 A801は 、入力 904に処理を施し、その結果を出力 905として出力する。
[0084] 本図において、 Si (0く =i< 8 ;iは自然数)(902)は、入力、出力ともに 8ビットの変 換テーブルであり、非線形変換を行う。また、 Li(0く =i< = 1 ;iは自然数) (903)は 、入力、出力ともに 32ビットの線形変換を表す。 Si、 Liとしては、例えば、 FIPS197 に記述されている 8ビットの置換テーブル S— box S、 MixColumn Oなどを用いる ことができる。
[0085] 本実施形態において、非線形置換 A801の処理は、次の式で与えられる。
[0086] x0||xl||...||x7 入力 (904)、
yi Si(xi)、 (0 =i 8)、
Figure imgf000014_0001
(z4, z5, z6, z7 Ll(y4, y5, y6, y7),
出力 (905)— Z4||z5||z2||z3||z0||zl||z6||z7.
ただし、上記式中で、記号' ΊΓΊまデータの連結を表す。以下、本明細書中、同様であ る。
[0087] すなわち、 64ビットの入力 904を、上位ビットから 8ビットずつ、それぞれ、 SO、 Sl、 •••S7に人力し、処理を施し、その結果、 SO力ら S3iま LOに、 S4力ら S7iま L1に人力 される。 L0、 L1での処理後、 L0の上位 16ビットと L1の上位 16ビットとを入れ替え、 出力 905とする。
[0088] 非線形置換 B802も基本的に上記非線形置換 A801と同様の構成で実現すること ができる。このように、同様の置換処理を用いることにより、実装規模を小さく抑えるこ とができる。ただし、実装に対する制限が少ない場合には、異なる 8ビット変換テープ ル Si (0 < =i< 8; iは自然数) (902)や、異なる線形変換 Li (0< =i< = 1; iは自然 数)(903)を用いることで、より高い安全性を実現できる。
[0089] 次に、線形変換装置 607について説明する。
[0090] 図 7は、本実施形態の線形変換装置 607の構成を説明するための図である。本図 において、 1本の線は、 64ビットデータの流れを表す。
[0091] 線形変換装置 607には、レジスタ B605に格納されているデータと、レジスタ A604 の AOに格納されているデータとの 2つの値が入力される。線形変換装置 607は、時 刻 tにおける、上記 2つの入力に処理を施し、その結果を、時刻 t+1において、レジス タ B605に格納することにより、レジスタ B605の状態を更新する。
[0092] 線形変換装置 607によるレジスタ B605の状態更新の詳細は、以下の式で与えら れる。
[0093] Bi(t+l)^B (i—l) (t)、(iは、 0<i≤15を満たす自然数、ただし、 4、 10を除く)、
BO(t+l B15(t) XOR AO(t)
B4(t+1 B3(t) XOR B7(t)
B10(t+1 B9(t) XOR (B13(t) «< 32)
なお、本線形変換装置 607では、レジスタ A604に保持されているデータは更新し ない。
[0094] 次に、以上説明した攪拌装置 601を、本実施形態の MAC生成装置内の、初期化 、データ攪拌、データ圧縮の各処理に適用する場合を説明する。
[0095] 図 8は、データ攪拌装置 208として、攪拌装置 601を利用する場合の構成を説明す るための図である。
[0096] 本図に示すように、攪拌装置 601がデータ攪拌装置 208に、レジスタ 602がレジス タ 212に、外咅人力 603力 Sメモリ 210に、スィッチ 610力 Sスィッチ 215に、スィッチ 609 がスィッチ 217に対応する。
[0097] 上述のように、本実施形態では、メモリ 210にメッセージブロック Mn単位で入力さ れるデータを、クロック生成装置 203からのクロック信号に従って動作する制御装置 2 14の指示で、データ攪拌装置 208に入力し、攪拌を行う。メモリ 210からの入力が完 了したら、制御装置 214がスィッチ 215を操作し、レジスタ 212に格納されているデー タを、データ圧縮装置 216に出力する。 [0098] なお、本実施形態のデータ攪拌装置 208は、クロック毎に、メモリ 210に格納された データの入力と攪拌とを 1回行うよう構成されている。しかし、セキュリティパラメータ D 206に応じて、データ攪拌回数を決定し、全てのメッセージブロック Mnの入力終了 後、当該データ攪拌回数、スィッチ 217の切り替えて外部入力 603 (メモリ 210からの 入力)無しに、データを攪拌するよう構成してもよい。
[0099] 次に、上述の攪拌装置 601により、初期化装置 211を実現する構成を説明する。図 9に、初期化装置 211を実現する構成を示す。
[0100] 本図に示すように、本実施形態の初期化装置 211は、上述の攪拌装置 601および レジスタ 602、スィッチ 609、スィッチ 610、入力フィルタ 611により構成される。
[0101] 図 3に示す制御装置 608は図 1に示す制御装置 214に対応する。また、外部入力 6 03は、パラメータ K204をパラメータ入力制御装置 218によりデータ長 Lに分割した 後のものである。初期化装置 211における攪拌の回数は、セキュリティパラメータ D2 06に基づいて定められる。
[0102] 図 10は、攪拌装置 601により初期化装置 211を実現する場合の、 MAC生成装置 201の処理フローである。
[0103] ステップ 1101 :入力としてパラメータ K204とセキュリティパラメータ D206とが与え られる。
[0104] ステップ 1102:初期化装置 211にお 、て、パラメータ K204を、攪拌装置 601 (ここ では、初期化装置 211)の入力サイズにあわせて、 P個のブロックに分割する。必要 に応じてパディング処理を行う。各分割後のパラメータ K204を、 Knとする (Κ=Κ1、 !^…!^!…!^?;!!は?以下の自然数。;)。また、入力サイズは、外部入力 603のサイ ズの L、すなわち、本実施形態では、 64ビットである。
[0105] ステップ 1103:レジスタ 602をゼロクリアする。
[0106] ステップ 1104:カウンタ 213の値を 1にセットする(n= 1)。
[0107] ステップ 1105、 1106 :n力 より大きくなる(n>P)まで、 Knを外部入力 603として、 クロック信号が入力される毎に、攪拌装置 601を動作させ、レジスタ 602のデータを 攪拌し、 nを 1増加させることを繰り返す。
[0108] ステップ 1107:カウンタ 213の値を再度 1にセットする(n= 1)。 [0109] ステップ 1108、 1109 :nが L (D)より大きくなる(n>L (D) )まで、外部入力 603無 しで、クロック信号が入力される毎に、攪拌装置 601を動作させ、レジスタ 602のデー タを攪拌し、 nを 1増加させる処理を繰り返す。ここで、 L (D)は、初期化処理の攪拌 回数を示す値であって、セキュリティパラメータ D206に従って定められる。
[0110] ステップ 1110 :攪拌終了後、この時点でのレジスタ 602のデータを出力する。本実 施形態では、レジスタ 212に出力する。
[0111] 次に、上述の攪拌装置 601により、データ圧縮装置 216を実現する構成を説明す る。図 11にデータ圧縮装置 216を実現する構成を示す。なお、データ圧縮装置 216 は、レジスタのデータ以外を入力として持たないため、図中では、入力フィルタ 611を 省略する。
[0112] 本図に示すように、本実施形態のデータ圧縮装置 216は、攪拌装置 601およびレ ジスタ 602、スィッチ 609、スィッチ 610により構成される。
[0113] 図 3に示す制御装置 608は図 1に示す制御装置 214に対応する。また、データ圧 縮装置 216の場合、外部入力 603に相当するものは無い。また、メッセージ認証子 T 207として最終結果を出力する前に、処理結果を一時的に保持するノ ッファ T'216a と、制御装置 214からの指示し従って、バッファ T'216aのデータを出力するためのス イッチ 216bとを備える。
[0114] データ圧縮装置 216における攪拌の回数は、セキュリティパラメータ D206に従って 定められる。
[0115] 図 12は、攪拌装置 601により、データ圧縮装置 216を実現する場合の、 MAC生成 装置 201の処理フローである。
[0116] ステツ 1201 :入力としてレジスタ 212のデータと、セキュリティパラメータ D206とが 与えられる。レジスタ 212のデータは、レジスタ 602に保持される。
[0117] ステップ 1202:カウンタ 213の値を 1にセットする(n= 1)。
[0118] ステップ 1203、 1204 :n力 f (D)より大きく(n>L' (D)と)なるまで、クロック毎に、 外部入力 603無しで攪拌装置 601を動作させ、レジスタ 602のデータを攪拌し、 nを 1増加させる処理を繰り返す。ここで、 V (D)は、データ圧縮処理の第一の攪拌回数 を示す値であって、セキュリティパラメータ D206に従って定められる。 [0119] ステップ 1205 :nが L' (D)より大きくなつた時点で、カウンタ 213の値を 1にセットす る(n= l)。また、出力するデータを一時的に格納するノ ッファ T'216aをクリアする。
[0120] ステップ 1206、 1207、 1208 :nが L" (D)より大きく(n>L" (D)と)なるまで、クロッ ク信号が入力される毎に、外部入力 603無しで、攪拌装置 601を動作させ、 nを 1増 加させる処理を繰り返す。ここで、 L" (D)は、データ圧縮処理の第二の攪拌回数を 示す値であって、セキュリティパラメータ D206に従って定められる。そして、各クロッ ク毎、すなわち、攪拌装置 601を動作させて攪拌する毎に、以下の操作を行う。
[0121] T'^T'||A2 (n)
ステップ 1209: nが L" (D)より大きくなつた場合、バッファ T' 216a内のデータをメッ セージ認証子 T207として出力する。
[0122] これにより、 L" (D)の値により、すなわち、第二の攪拌回数により、出力されるメッセ ージ認証子 Tのデータ長を調整できる。従って、本実施形態の MAC生成装置 201 では、任意長のメッセージ認証子を生成することができる。
[0123] 本実施形態では、上記のように、セキュリティパラメータ D206に依存して、攪拌回 数が決定されるよう構成されている。しかし、このセキュリティパラメータ D206は、固 定値であってもよい。
[0124] また、上述のように、本実施形態の攪拌装置 601では、外部入力 603は、非線形変 換装置 606への入力とされているが、線形変換装置 607に入力されるよう構成しても よい。この場合、レジスタ B603の状態更新は、以下の式で表される。
[0125] Bi(t+ 1) B(i— l)(t)、 (iは、 0<i≤ 15を満たす自然数、ただし、 4、 10を除く)、
BO(t+ l B15(t) XOR P(t)ゝ
B4(t+ 1 B3(t) XOR B7(t)、
B10(t+ 1 B9(t) XOR (B13(t) «< 32) .
さらに、外部入力 603は、非線形変換装置 606および線形変換装置 607の両方に 入力するよう構成してもよい。この場合は、外部入力 603を、線形変換装置 607の B0 (t)に足しこむように構成する。
[0126] 次に、本実施形態による、メッセージ認証子検証装置について説明する。メッセ一 ジ認証子検証装置は、メッセージ生成装置と同様の構成を有し、受信したメッセージ と MACとの組から、メッセージと MACとをそれぞれ抽出する。そして、抽出したメッセ ージ力 MACを生成し、生成した MACと抽出した MACとを比較することにより検証 を行う。
[0127] 従って、以下に説明するように、受信したメッセージ認証子の真正性を検証する本 実施形態のメッセージ認証子検証装置は、上述の MAC生成装置 201と基本的に同 様の構造を有する MAC生成処理を行う機能と、受信した MACとメッセージ認証子 検証装置で生成した MACとを比較する機能とを備える。
[0128] 図 13は、本実施形態のメッセージ認証子 (MAC)検証装置 401の概要を説明する ための図であり、図 14は、図 13の MAC検証装置による処理フローである。
[0129] 本実施形態の MAC検証装置 401は、 MAC生成装置 201と、データ比較装置 40 2とを備える。 MAC検証装置 401への入力は、 MAC生成装置 201への入力である 、ノ ラメータ K204、メッセージ Μ205、セキュリティパラメータ D206と、クロック生成 装置 404からの入力信号と、データ比較装置 402への入力であり、メッセージの真正 性を検証するためのタグ Τ405とである。タグ Τ405は、受信したメッセージカゝら抽出 した MACである。また、メッセージ M205およびパラメータ K204は、 MAC生成装置 201の場合と同様、それぞれメッセージ入力制御装置 209およびパラメータ入力制 御装置 218を介して、所定長 Lのブロック単位に分割されて、入力される。
[0130] MAC検証装置 401によるメッセージ認証子検証処理について以下に説明する。
[0131] ステップ 502: MAC生成装置 201に、ノ ラメータ K204、メッセージ Μ205、セキュ リティパラメータ D206を入力し、 MAC生成処理を行い、結果を出力する。
[0132] ステップ 503:ステップ 502の処理結果である出力とタグ T405の値とを比較する。
[0133] ステップ 504、 505 :ステップ 503の比較〖こおいて、両者の値が等しければ 0を出力 し、それ以外の場合は 1を出力する。すなわち、メッセージが真正と検証された場合、 0を出力し、それ以外の場合 1を検証結果 406として出力する。
[0134] ステップ 506 :処理を終了する。
[0135] 次に、本実施形態の認証暗号装置について説明する。
[0136] 図 16は、本実施形態の認証暗号装置 1601のイメージ図である。本図に示すように 、本実施形態の認証暗号装置 1601は、図 1に示すレジスタ 212を持つメッセージ認 証子(MAC)生成装置 201、ビット列出力フィルタ 1605、レジスタ 212から出力フィ ルタ 1605への入力を制御するスィッチ 1606、暗号化装置 1608、暗号化装置 1608 へのメッセージ入力を制御するスィッチ 1607、暗号化装置 1608の出力を蓄えるメモ リ 1612を備える。それぞれの構成要素の詳細な構成については後述する。
[0137] 次に、上記のメッセージ認証子生成装置 201を備えた認証暗号装 1601置の処理 動作について説明する。
[0138] 本実施形態の認証暗号装置 1601は、メッセージ入力制御装置 209を介して入力 されたメッセージ M205に、クロック生成装置 203から入力されるクロック信号に従つ て処理を施し、メッセージ M205を暗号化し、暗号文 C1609を出力する。また、認証 暗号装置 1601は、全てのメッセージ M205に処理を施した後、メッセージ認証子 T2 07を生成する。
[0139] 本実施形態で認証暗号装置 1601への外部からの入力は、メッセージ入力制御装 置 209を介して入力されるメッセージ M205の他に、パラメータ入力制御装置 218を 介して入力されるパラメータ K204と、セキュリティパラメータ D206と、暗号化処理を する力否かを決定する暗号ィ匕フラグ F1610と、クロック生成装置 203が生成するクロ ック信号とがある。
[0140] 次に、認証暗号装置 1601の動作の概要を説明する。図 17は、認証暗号装置 160 1の動作概要を説明するためのフローチャートである。
[0141] ステップ 1701:認証暗号装置 1701には、パラメータ K204とメッセージ M205とが 入力される。パラメータ K204は、ノ ラメータ入力制御装置 218を介してメッセージ認 証子生成装置 201に入力され、メッセージ認証子生成装置 201の初期化を行う。メッ セージ M205は、メッセージ入力制御装置 209を介してメッセージ認証子生成装置 2 01に、さらに、スィッチ 1607を介して暗号化装置 1608に入力される。
[0142] メッセージ入力制御装置 209は、メッセージ M205を、一定長 Lのブロックに分割し 、クロック生成装置 203からクロック信号が入力されるごとにメッセージ認証子生成装 置 201と暗号ィ匕装置 1608に向けて出力する。パラメータ入力制御装置 218は、図 3 で説明したメッセージ認証子生成装置 201の場合と同様に動作する。
[0143] 認証暗号装置 1601は、これらの入力を受けると、クロック生成装置 203から入力さ れるクロック信号に従って、以下の処理を行う。
[0144] ステップ 1702 :メッセージ M205を、ブロック長 Lビットのメッセージブロック Ml、 M
2、 · ··、 MNに分割する。
[0145] ステップ 1703 :パラメータ入力制御装置 218を介して入力されたパラメータ K204 (
Κη)を順にメッセージ認証子生成装置 201に入力し、レジスタ 212の初期化を行う。
[0146] ステップ 1704 :メッセージ認証子生成装置 201に含まれているカウンタ(213 ;図 1
6では不図示)の値を初期化する。本実施形態では、全てのビット値を 0にセットする
[0147] ステップ 1705 :カウンタ 213の値が Νになるまでステップ 1706、 1707の処理を繰り 返す。
[0148] ステップ 1706 :クロック信号が入力されるごとに、メッセージ認証子生成装置 201は 図 3のステップ 306に従い処理を行う。
[0149] ステップ 1707 :レジスタ 212の値がスィッチ 1606を介して出力フィルタ 1605に入 力される。出力フィルタ 1605は、レジスタ 212から入力された値から、一定長のビット 列 Rn(nは Ν以下の自然数であり、カウンタが現在保持している値となる)を生成し、 暗号ィ匕装置 1608に向けて出力する。暗号化装置 1608は、メッセージ入力制御装 置 209およびスィッチ 1607を介して入力されたメッセージブロック Mnと前記のビット 列 Rnとから暗号文ブロック Cnを生成し、メモリ 1612に向けて出力する。
[0150] ステップ 1708、 1709 :カウンタ 213の値が Nになると、メッセージ認証子生成装置 201は図 3におけるステップ 307、 308の処理を行い、メッセージ認証子 T207を出 力する。同時にメモリ 1612は暗号文 C (暗号文パケット 1611) =C1||C2|卜 -IICNを出 力する。
[0151] ステップ 1710 :処理を終了する。
[0152] 以上が認証暗号装置 1601の構成と動作のフローである。
[0153] なお、認証暗号装置 1601への入力のうち、暗号化フラグ F1610はメッセージを暗 号ィ匕する力否かを決定するフラグである。暗号ィ匕フラグ F1610が暗号ィ匕を指示して いる場合には、スィッチ 1606、 1607力 S接続され、上記の認証暗号装置 1601として 動作する。一方、暗号ィ匕フラグが暗号ィ匕を指示していない場合には、スィッチ 1606、 1607は切断され、暗号化処理は行われない。この場合には、認証暗号装置 1601 は前述のメッセージ認証子生成装置 201として動作し、メッセージ認証子 T207のみ を出力する。
[0154] 上記の構成例では、暗号文ブロック Cnをー且メモリ 1612に格納し、メッセージ認 証子 T207と同時に暗号文バケツト 1611として出力した力 十分なメモリが確保でき な 、場合などには、暗号文ブロック Cnは逐次出力しても良 、。
[0155] 認証暗号装置 1601が備えている出力フィルタ 1605は、レジスタ A (604)の最下 位ブロック A2 (t)を出力する。上記の構成例は、最も単純な出力フィルタの例であり、 レジスタ 212の複数ブロックにさらに非線形変換を施して安全性を高めることも可能 である。
[0156] 非線形な出力フィルタの例として、図 6に挙げた非線形置換 A801を用いる例を以 下に説明する。非線形置換 A801による変換を Fで、出力フィルタ 1605を Foutで表 すとき、
Fout(A0(t), Al(t), A2(t), B0(t), · ··, B15(t》 = F(A2(t) XOR Bi(t》 XOR Bj(t) で定義される出力フィルタは、出力されるビット列とレジスタの値との相関を小さくする 働きがあり、結果として、より安全な認証暗号装置を実現することができる。
[0157] 次に、認証暗号装置 1601で暗号ィ匕されたデータの完全性を検証しつつデータを 復号する認証復号装置を説明する。
[0158] 図 18は、本実施形態の認証復号装置 1801のイメージ図である。認証復号装置 18 01の構成は、基本的に認証暗号装置 1601と同様である力 暗号化装置 1608の代 わりに復号装置 1806を備え、また、タグ T1804とメッセージ認証子生成装置 201の 出力とを比較するタグ比較装置 1808、復号装置 1806の出力を保持するメモリ 1807 を備える。
[0159] 認証復号装置 1801への入力は、メッセージ M205ではなく暗号文 C1803である。
暗号文 C1803は暗号文入力制御装置 1805を介してメッセージ認証子生成装置 20 1と復号装置 1806とに入力される。また、付カ卩的な入力として、タグ T1804がある。
[0160] 次に、認証復号装置 1801の動作の概要を説明する。図 19は、認証復号装置 180 1の動作概要を説明するためのフローチャートである。 [0161] ステップ 1901:認証復号装置 1801は、パラメータ K204と暗号文 1803とタグ T18 04と力人力される。
[0162] メッセージ入力制御装置 209は、暗号文 C1803を一定長 Lのブロックに分割し、ク ロック生成装置 203からクロック信号が入力されるごとにメッセージ認証子生成装置 2
01と復号装置 1806とに向けて出力する。
[0163] ノ ラメータ入力制御装置 218は、図 3で説明したメッセージ認証子生成装置 201の 場合と同様に動作する。
[0164] 認証復号装置 1801は、これらの入力を受けると、クロック生成装置 203から入力さ れるクロック信号に従って、以下の処理を行う。
[0165] ステップ 1902 :暗号文 C1803を、ブロック長 Lビットの暗号文ブロック Cl、 C2、 · ··、
CNに分割する。
[0166] ステップ 1903 :パラメータ入力制御装置 218を介して入力されたパラメータ K204 ( Κη)を順にメッセージ認証子生成装置 201に入力し、レジスタ 212の初期化を行う。
[0167] ステップ 1904:メッセージ認証子生成装置 201に含まれているカウンタ(213 ;図 18 では不図示)の値を初期化する。本実施形態では、全てのビット値を 0にセットする。
[0168] ステップ 1905 :カウンタ 213の値が Νになるまでステップ 1706、 1707の処理を繰り 返す。
[0169] ステップ 1906 :クロック信号が入力されるごとに、レジスタ 212の値がスィッチ 1606 を介して出力フィルタ 1605に入力される。出力フィルタ 1605は、レジスタ 212から入 力された値から、一定長の乱数列 Rn (nは Ν以下の自然数であり、カウンタが現在保 持している値となる。)を生成し、復号装置 1806に向けて出力する。復号装置 1806 は、暗号文入力制御装置 1805、スィッチ 1607を介して入力された暗号文ブロック C nから復号文 Mn'を生成し、出力する。
[0170] ステップ 1907:メッセージ認証子生成装置 201は図 3のステップ 306に従い処理を 行う。
[0171] ステップ 1908、 1709 :カウンタ 213の値が Nになると、メッセージ認証子生成装置 201は図 3〖こおけるステップ 307、 308の処理を行い、復号文 M,に対するメッセージ 認証子 T'を出力する。 [0172] ステップ 1910 :ステップ 1909で出力されたメッセージ認証子 T'とタグ T1804の値 と比較する。
[0173] ステップ 1911、 1912 :ステップ 1910の比較において、両者の値が等しければ復 号文 M'を出力する。それ以外の場合には、認証が失敗したことを示すエラー信号、 たとえば 1を出力する。
[0174] ステップ 1913 :処理を終了する。
[0175] 次に、本実施形態の MAC生成装置 201および MAC検証装置 401を用いたメッセ ージ認証方法にっ 、て説明する。
[0176] 図 15は、本実施形態の MAC生成装置 201および MAC検証装置 401によりメッセ ージ認証を行う通信システムの構成図である。
[0177] ここでは、 MAC生成装置 201、 MAC検証装置 401を実現するものとして、例えば 、 ICカード 1301、 1309を例にあげて説明する。
[0178] 本実施形態の通信システムは、 MAC生成装置 201、メッセージ入力制御装置 209 およびパラメータ入力制御装置 218を実現する ICカード 1301と、 MAC検証装置 40 1、メッセージ入力制御装置 209およびパラメータ入力制御装置 218を実現する IC力 ード 1311と、 ICカード 1301で生成したメッセージ認証子とメッセージとをネットワーク 1340を介して相手装置に送信する送信側通信装置 1320と、ネットワーク 1340を介 して送信側通信装置 1320から送信されたメッセージ認証子とメッセージとを受信し、 ICカード 1311に受け渡す受信側通信装置 1330とを備える。
[0179] ICカード 1301、 1311ίま、本図【こ示すよう【こ、 CPU1302、 1313、メモリ 1303、 13 13、記憶装置 1304、 1314、入出力インタフェース 1305、 1315とをそれぞれ備える
[0180] また、記憶装置 1304、 1314には、本図に示すように、秘密鍵 1306、 1316、メッセ ージ番号 1307、 1317、セキュリティパラメータ D206、メッセージ認証子生成プログ ラム 1308、メッセージ認証子検証プログラム 1318と力 それぞれ格納されている。
[0181] メッセージ認証子生成プログラム 1308は、メモリ 1303にロードされ、 CPU1302に て実行されることにより、上記の MAC生成装置 201、メッセージ入力制御装置 209 およびパラメータ入力制御装置 218の機能を実現する。また、秘密鍵 1306とメッセ ージ番号 1307との対を、 MAC生成装置 201のパラメータ K204として用いる。
[0182] メッセージ認証子検証プログラム 1318は、メモリ 1313にロードされ、 CPU1312に て実行されること〖こより、上記の MAC検証装置 401、メッセージ入力制御装置 209 およびパラメータ入力制御装置 218の機能を実現する。また、秘密鍵 1316とメッセ ージ番号 1317との対を、 MAC検証装置 401のパラメータ K204として用いる。
[0183] なお、クロック信号は、 ICカード 1301、 1311内のクロック生成機能により生成され るものを利用する。
[0184] 以下、本通信システムにおける、メッセージ認証の処理手順にっ 、て、説明する。
[0185] ステップ 1401:データ送信者とデータ受信者は、事前に秘密鍵 1306、 1316を秘 密裏に共有しておく。また、メッセージ番号 1307、 1317およびセキュリティパラメ一 タ D206は、秘密裏である必要はないが、事前に共有しておく。すなわち、 ICカード 1 301の秘密鍵 1306と ICカード 1311の秘密鍵 1316、および、メッセージ番号 1307 と 1317とには、それぞれ同じデータが保持される。これらの情報を共有する技術は、 例えば、公開鍵暗号技術を用いることで、実現できる。
[0186] ステップ 1402 :メッセージ送信者は、 I/Oインタフェース 1305を介して、メッセージ M205を ICカード 1301に入力する。 ICカード 1301 (MAC生成装置 201)は、メッセ ージ M205の入力を受け付けると、秘密鍵 1306とメッセージ番号 1307とからなるパ ラメータ、および、セキュリティパラメータ D206を用いて、入力されたメッセージ M20 5に対するメッセージ認証子 T207を生成し、メッセージ M205とともに送信側通信装 置 1320に受け渡す。
[0187] ステップ 1403 :メッセージ M205とメッセージ認証子 T207とを ICカード 1301から 受け取ると、送信側通信装置 1320は、それらを、ネットワーク 1340を介して、受信側 通信装置 1330に送信する。
[0188] ステップ 1404:受信側通信装置 1340は、メッセージ M205およびメッセージ認証 子 T207を受信し、 I/Oインタフェース 1315を介して、 ICカード 1311 (MAC検証装 置 401)に入力する。
[0189] ステップ 1405 :ICカード 1311は、メッセージ M205とメッセージ認証子 T207とを 受け取ると、共有情報である秘密鍵 1316とメッセージ番号 1317とからなるパラメータ 、および、セキュリティパラメータ D206とを用いて、メッセージ認証子 T207を検証し 、入力されたメッセージ M205の真正性を判断し、真正である場合は 0、そうでない場 合は 1を出力することにより、その結果を出力する。
[0190] 具体的には、受信側でメッセージ認証子 T207'を生成し、受け取ったメッセージ認 証子 T207と比較し、合致すれば、真正、合致しない場合は真正でないものと判断し 、上記 0、 1を出力する。
[0191] 次に、認証暗号装置 1601、認証復号装置 1801を実現するものとして、 ICカード 2 001、 2011を例に挙げて説明する。
[0192] 図 20は ICカード 2001、 2011を含む通信システムの構成例である。図 20のシステ ムは、図 15で説明したメッセージ認証機能を備えた通信システムとほぼ同様の構成 を備える。ただし、 ICカード 2001は、メッセージ認証子生成プログラム 1308の代わり に認証暗号プログラム 2002を、そして、 ICカード 2011は、メッセージ認証子検証装 置 1318の代わりに、認証復号プログラム 2012を格納する。また、暗号処理を行うか どうかを決定する暗号ィ匕フラグ 2003、 2013をそれぞれ格納する。
[0193] 以下、本通信システムにおける、データ処理の手順について説明する。
[0194] ステップ 2201:データ送信者とデータ受信者とは、事前に秘密鍵 1306、 1316を 共有しておく。これはメッセージ認証システムのステップ 1401と同様である力 この他 に、データ送信者とデータ受信者とは暗号ィ匕フラグ 2003と 2004とを同期させ、デー タの暗号ィ匕を行うか否かを予め決定しておく。ただし、暗号ィ匕フラグを暗号文パケット 1611に含めることで、データ通信と同時に暗号ィ匕フラグの同期を行うこともできる。
[0195] ステップ 2202 :メッセージ送信者は、 I/Oインターフェース 1305を介して、メッセ ージ M205を ICカード 2001に入力する。 ICカード 2001(認証暗号装置 1601)は、メ ッセージ M (205)の入力を受け付けると、秘密鍵 1306とメッセージ番号 1307と力ら なるパラメータおよびセキュリティパラメータ D206を用い、入力されたメッセージ M (2 05)に対するデータ処理を行う。暗号ィ匕フラグ 2003が暗号ィ匕処理を指示していない 場合は、 ICカード 2001は上記パラメータを用いてメッセージ M (205)に対するメッセ ージ認証子 T(207)を生成し、メッセージ Μ (205)と共に送信側通信装置 1320に 受け渡す。また、暗号ィ匕フラグ 2003が暗号ィ匕処理を指示している場合には、 ICカー ド 2001は上記パラメータを用いてメッセージ M (205)に暗号化処理を施し、暗号文
C (1609)を生成すると同時に、メッセージ M (205)に対するメッセージ認証子 T (20
7)を生成し、暗号文 C (1609)と共に送信側通信装置 1320に受け渡す。
[0196] 暗号化処理を行わない場合の ICカード 2001、 2002の動作は前記のメッセージ認 証システムの処理手順と同じなので、以下では記述を省略する。
[0197] ステップ 2203:暗号文 C (1309)とメッセージ認証子 T (207)力もなる暗号文バケツ ト(1611)とを ICカード 2001から受け取ると、送信側通信装置 1320は、それらを、ネ ットワーク 1340を介して、受信側通信装置 1330に送信する。
[0198] ステップ 2204 :受信側通信装置 1330は、暗号文 C (1803)およびタグ T(1804)を 受信し、 ΙΖΟインターフェース 1315を介して、 ICカード 2011(認証復号装置 1801) に入力する。
[0199] ステップ 2205 :ICカード 2011は、暗号文 C (1803)およびタグ T(1804)を受け取 ると、共有情報である秘密鍵 1316とメッセージ番号 1317とからなるパラメータ、およ びセキュリティパラメータ D206とを用いて、暗号文の復号とタグ Τ( 1804)の検証を 行う。検証の結果、暗号文の改ざんが検出されなければ (暗号文 C1803から計算し たメッセージ認証子の値とタグ Τ( 1804)の値とがー致すれば)、復号したメッセージ Μ,(1809)を出力する。そうでない場合には、メッセージ認証子の値が一致しなかつ たことを意味する信号 (たとえば 0)を出力する。
[0200] 以上説明したように、本実施形態における MAC認証装置 201および MAC検証装 置 401によれば、高速な処理が可能であり、長期間の使用に耐え得る安全な MAC 生成装置および MAC検証装置が提供できる。また、本実施形態における認証暗号 装置 1601および認証復号装置 1801によれば、高速な処理が可能であり、長期間 の使用に耐え得る安全な認証暗号装置および認証復号装置が提供できる。さらに、 上記各装置で用いられる本実施形態の MAC生成装置 201は、攪拌回数を、鍵長な どのセキュリティパラメータで決定する構成となって 、るため、攪拌処理の適用回数 の変更が容易である。これは、安全性レベルと処理速度とをフレキシブルに設定でき ることを意味する。
[0201] インターネットのように、公開通信路を用いた通信では、メッセージの真正性検証は 、信頼できる通信路を確保するために必須の技術である。
[0202] 従来力 知られているブロック暗号を利用した方式は、高速な処理が困難である。
また、ハッシュ関数を用いた構成では、いずれの方式でも、以下の問題点がある。
(1)処理速度が遅い。
(2)出力長が短 、(安全性のレベルが低 、)。
[0203] ブロック暗号技術を利用した方式に比べ、ストリーム暗号技術を利用するメッセージ 認証は、安価かつ高速に処理を行うことができるため、広い範囲での応用が見込ま れる。
[0204] 本実施形態のメッセージ認証は、ストリーム暗号技術を用いたものである。従って、 本実施形態による MAC生成装置、 MAC検証装置は、任意のメッセージ認証システ ムにおけるメッセージ認証子生成機能、および認証子検証機能の、より安価で高速 な代替として用いることができる。また、本実施形態の MAC生成装置および MAC検 証装置によれば、上記 MAC生成とデータの暗号化とを同時に行う認証暗号の機能 を、より安価に提供することができる。
[0205] 本実施形態における MAC生成装置および MAC検証装置によるメッセージの真正 性検証機能は、従来方式に比べ、以下の利点を有する。
(1)メッセージの真正性を検証するための実装コストを最小限に抑えられる。
(2)ブロック暗号を用いるものに比べて高速な処理を行うことができ、計算機に対する 負荷が少ない。
[0206] 一般的に、組み込み機器や携帯端末では、実装やコストに制約があり、メッセージ の真正性検証は軽視されがちである。このような計算機の能力に制限がある環境に おける暗号処理では、コストパフォーマンスに優れるストリーム暗号を用いる場合が多 V、。本実施形態の MAC生成装置および MAC検証装置はこのような環境でのメッセ ージ検証機能の導入コストを最小限に抑えることができ、今後のュビキタス情報端末 での広、応用が期待される。

Claims

請求の範囲
[1] 送受信するメッセージデータの完全性を検証するためのメッセージ認証子を当該メ ッセージデータから生成するメッセージ認証子生成装置であって、
第 1のパラメータに初期化処理を施し、一定長のランダムなビット列力もなるデータ を出力する初期化装置と、
前記初期化装置の出力したデータを格納するレジスタと、
入力される前記メッセージデータを一定長に分割した後、一定長のメッセージデー タ毎に、当該一定長のメッセージデータと前記レジスタに格納されているデータとを 攪拌し、攪拌後のデータを前記レジスタに格納するデータ攪拌装置と、
前記レジスタに格納されて 、るデータであって、前記データ攪拌装置にぉ 、て攪拌 後のデータを、所定のデータ長に圧縮し、メッセージ認証子として出力する圧縮処理 を行うデータ圧縮装置と、
を備え、前記データ攪拌装置は、前記一定長のメッセージデータの 2倍以上のサイズ の出力を有する非線形変換装置と、を備えること
を特徴とするメッセージ認証子生成装置。
[2] 請求項 1記載のメッセージ認証子生成装置であって、
前記レジスタは、前記初期化装置の出力したデータを分割して格納する第 1の小レ ジスタと第 2の小レジスタとを備え、
前記第 1の小レジスタのサイズは、前記非線形変換装置の出力データのサイズであ り、
前記非線形変換装置は、
前記第 1の小レジスタに格納されているデータと前記第 2の小レジスタに格納されて V、るデータの一部と前記メッセージデータとを非線形に攪拌し、攪拌後のデータを前 記第 1の小レジスタに格納し、
前記データ攪拌装置は、
前記第 2の小レジスタに格納されているデータと前記第 1の小レジスタに格納されて いるデータの一部とを線形に攪拌し、攪拌後のデータを前記第 2の小レジスタに格納 する線形変換装置を備えること を特徴とするメッセージ認証子生成装置。
[3] 請求項 2記載のメッセージ認証子生成装置であって、
前記データ攪拌装置は、前記メッセージデータの入力を制御するスィッチをさらに 備え、
前記非線形変換装置は、
前記スィッチにより前記メッセージデータの入力が制限されている場合または前記 メッセージデータの入力が無い場合は、前記第 1の小レジスタに格納されているデー タと前記第 2の小レジスタに格納されているデータの一部とのみを入力として非線形 に攪拌し、攪拌後のデータを前記第 1の小レジスタに格納すること
を特徴とするメッセージ認証子生成装置。
[4] 請求項 3記載のメッセージ認証子生成装置であって、
前記第 1の小レジスタは、 nビット (nは、前記一定長のメッセージのサイズを示す数 字以上の任意の自然数)サイズのブロック、 3ブロック分の容量を備え、
前記第 2の小レジスタは、前記ブロック、 m(mは任意の自然数)ブロック分の容量を 備え、
前記非線形変換装置は、
前記 1ブロックのデータを処理して、前記 1ブロックのデータを出力する第 1の非線 形置換および第 2の非線形置換を備えること
を特徴とするメッセージ認証子生成装置。
[5] 請求項 4記載のメッセージ認証子生成装置であって、
前記非線形変換装置は、前記第 1の非線形置換および前記第 2の非線形置換とを 用いて以下の処理を行い
X0 A1,
XI A2 XOR G(A1 XOR M),
X2^A0 XOR F(A1 XOR (BIO «< 17)),
(ただし、前記第 1の小レジスタの記憶内容を上位ブロック力も順に AO, Al, A2、前 記第 2の小レジスタの第 iブロックを Bi (lく =K=m)、前記第 1の非線形置換を F、前記第 2の非線形置換を G、前記スィッチを介して入力されるデータを M、レジスタ Xのブロッ ク幅での左 nビット巡回シフトを (xくくく n)、データの代入を 、前記非線形データ変換 装置の出力を上位ブロック力も XO, XI, X2と表す。;)、
前記 XO, XI, X2を、それぞれ、前記小レジスタの上位ブロック力も順に格納すること を特徴とするメッセージ認証子生成装置。
[6] 請求項 5記載のメッセージ認証子生成装置であって、
前記ブロックは 64ビットで構成され、
前記第 1の非線形置換及び前記第 2の非線形置換は、それぞれ、
入力されるブロックを 8ビット単位に分けて非線形変換処理を行う変換テーブルと、 32ビット単位で線形変換処理を行う第 1の線形変換および第 2の線形変換と、をさ らに備え、
前記変換テーブルと前記第 1の線形変換および第 2の線形変換とを用いて、以下 の処理を行うこと
p0||pl||...||p7— p,
ti^S[pi] (0 <= i <= 7),
u0||ul||u2||u3^L0(t0, tl, t2, t3),
u4||u5||u6||u7^Ll(t4, t5, t6, t7),
c— U4||u5||u2||u3||u0||ul||u6||u7,
(ただし、前記第 1および第 2の非線形置換への入力を p、前記変換テーブルによる 変換を S[x]、 32 X 32行列による前記第 1の線形変換を L0、 32 X 32行列による前記第 2の線形変換を Ll、データ Xと yとの連結を x||yと表す。 )
を特徴とするメッセージ認証子生成装置。
[7] 請求項 4記載のメッセージ認証子生成装置であって、
前記第 2の小レジスタの容量は 64ビットサイズのブロック 16ブロック分であり、 前記線形変換装置は、以下の処理を行うこと
Yi^B(i-l), (l =i =15, i!= 4, 10)
Y0 B15 XOR AO,
Y4 B3 XOR B7,
Y10 B9 XOR (B13 «< 32), (ただし、 iは自然数、 XORは排他的論理和、前記第 1の小レジスタの記憶内容を上位 ブロック力 順に AO, Al, A2、前記第 2の小レジスタの記憶内容を上位ブロック力 順 に BO, B1, · ··, B15、線形変換装置の出力データを上位ブロックから Y0, Y1, · ··, Y15 、レジスタ Xのブロック幅での左 nビット巡回シフトを (X «< n)、とする。)
を特徴とするメッセージ認証子生成装置。
[8] 請求項 3記載のメッセージ認証子生成装置であって、
前記初期化装置は、前記レジスタと前記データ攪拌装置と前記スィッチとを備え、 当該レジスタと当該データ攪拌装置と当該スィッチとにより、前記初期化処理を行い 前記データ圧縮装置は、前記レジスタと前記データ攪拌装置と前記スィッチとを備 え、当該レジスタと当該データ攪拌装置と当該スィッチとにより、前記圧縮処理を行う こと
を特徴とするメッセージ認証子生成装置。
[9] 請求項 1記載のメッセージ認証子生成装置であって、
前記データ攪拌装置の攪拌回数を制御する制御装置を備え、
前記制御装置は、予め与えられる前記メッセージ認証子生成装置の安全性の指標 である第 2のパラメータにより、前記攪拌回数を決定し、制御すること
を特徴とするメッセージ認証子生成装置。
[10] 受信するメッセージデータとともに受信する当該メッセージデータの完全性を検証 するためのメッセージ認証子を検証するメッセージ認証子検証装置であって、 請求項 1記載のメッセージ認証子生成装置と、
前記メッセージ認証子生成装置を用いて、受信したメッセージデータから、第 2のメ ッセージ認証子を生成し、生成した前記第 2のメッセージ認証子と、前記受信したメッ セージ認証子とを比較し、比較結果を出力する比較手段と、
を備えることを特徴とするメッセージ認証子検証装置。
[11] 送受信するメッセージデータの完全性を検証するメッセージ検証システムであって 請求項 1記載のメッセージ認証子生成装置を備える送信側通信装置と、 請求項 10のメッセージ認証子検証装置を備える受信側通信装置と、 を備えることを特徴とするメッセージ検証システム。
[12] 送受信するメッセージデータの完全性を検証するためのメッセージ認証子を生成 するメッセージ認証子生成方法であって、
第 1のパラメータに初期化処理を施し、一定長のランダムなビット列力もなるデータ をレジスタに格納する初期化処理ステップと、
入力される前記メッセージデータを一定長に分割した後、一定長のメッセージデー タ毎に、当該一定長のメッセージデータと前記レジスタに格納されているデータとを 攪拌し、攪拌後のデータを前記レジスタに格納するデータ攪拌ステップと、
前記データ攪拌ステップにお 、て攪拌後のデータであって、前記レジスタに格納さ れているデータを、所定のデータ長に圧縮し、メッセージ認証子として出力するデー タ圧縮ステップと、を備え、
前記攪拌は、前記一定長のメッセージデータの 2倍以上のサイズの出力を有する 非線形変換装置を有する攪拌装置により行われること、
を特徴とするメッセージ認証子生成方法。
[13] 送受信するメッセージデータを暗号ィ匕するとともに完全性を検証するためのメッセ ージ認証子を当該メッセージデータ力 生成する認証暗号装置であって、
請求項 1記載のメッセージ認証子生成装置と、
前記メッセージ認証子生成装置の備える前記レジスタから一定長のビット列を選択 して出力する出力フィルタと、
前記出力フィルタ力 出力される出力ビット列と前記メッセージ認証子生成装置へ 入力される一定長のメッセージデータとの排他的論理和をとり暗号文ブロックを生成 する暗号化装置と、を備えること
を特徴とする認証暗号装置。
[14] 一定長の暗号文ブロック単位で受信する暗号化されたメッセージデータを復号する とともに当該メッセージデータの完全性を検証するためのタグを検証する認証復号装 置であって、
請求項 10に記載のメッセージ認証子検証装置と、 復号した前記メッセージデータである復号文を蓄えるメモリと、
前記メッセージ認証子検証装置が備える前記メッセージ認証子生成装置の前記レ ジスタカ 一定長のビット列を選択して出力する出力フィルタと、
前記出力フィルタ力 出力される出力ビット列と、前記一定長の暗号文ブロック単位 のメッセージデータとの排他的論理和をとることにより前記メッセージデータを復号し 復号文として、前記メモリに出力する復号装置と、を備え、
前記メッセージ認証子検証装置が完全性を検証した後に、前記メモリに蓄えられた 復号文を出力すること
を特徴とする認証復号装置。
送受信するメッセージを暗号ィ匕して送信するとともに前記メッセージの完全性を検 証するメッセージ検証システムであって、
請求項 13の認証暗号装置を備える送信側通信装置と、
請求項 14の認証復号装置を備える受信側通信装置と、
を備えることを特徴とするメッセージ検証システム。
PCT/JP2005/015124 2004-08-19 2005-08-19 メッセージ認証装置及び認証暗号装置 Ceased WO2006019152A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006531866A JPWO2006019152A1 (ja) 2004-08-19 2005-08-19 メッセージ認証子生成装置、メッセージ認証子検証装置、およびメッセージ認証子生成方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-239359 2004-08-19
JP2004239359 2004-08-19

Publications (1)

Publication Number Publication Date
WO2006019152A1 true WO2006019152A1 (ja) 2006-02-23

Family

ID=35907535

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/015124 Ceased WO2006019152A1 (ja) 2004-08-19 2005-08-19 メッセージ認証装置及び認証暗号装置

Country Status (2)

Country Link
JP (1) JPWO2006019152A1 (ja)
WO (1) WO2006019152A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008276728A (ja) * 2007-03-30 2008-11-13 Hitachi Ltd 疑似乱数生成装置及びそれを用いた暗号化処理装置
JP2009129391A (ja) * 2007-11-28 2009-06-11 Nippon Telegr & Teleph Corp <Ntt> メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体
WO2011155039A1 (ja) * 2010-06-10 2011-12-15 三菱電機株式会社 メッセージ認証コード演算装置、メッセージ認証コード演算方法およびメッセージ認証コード演算プログラム
JP2012501579A (ja) * 2008-08-28 2012-01-19 アルカテル−ルーセント ユーエスエー インコーポレーテッド セキュアなメモリに応用するメッセージ認証コードの事前計算
JP2016157054A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラム
JP2016157053A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法
JP2016157055A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法
JP2016157052A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FERGUSON N. ET AL: "Encryption and Authentication in a Single Cryptographic Primitive", LECTURE NOTES IN COMPUTER SCIENCE, vol. 2887, 2003, pages 330 - 346, XP002993795 *
WATANABE D. ET AL: "New Keystream Generator MUGI", LECTURE NOTES IN COMPUTER SCIENCE, vol. 2365, 2002, pages 179 - 194, XP002993796 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008276728A (ja) * 2007-03-30 2008-11-13 Hitachi Ltd 疑似乱数生成装置及びそれを用いた暗号化処理装置
JP2009129391A (ja) * 2007-11-28 2009-06-11 Nippon Telegr & Teleph Corp <Ntt> メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体
JP2012501579A (ja) * 2008-08-28 2012-01-19 アルカテル−ルーセント ユーエスエー インコーポレーテッド セキュアなメモリに応用するメッセージ認証コードの事前計算
WO2011155039A1 (ja) * 2010-06-10 2011-12-15 三菱電機株式会社 メッセージ認証コード演算装置、メッセージ認証コード演算方法およびメッセージ認証コード演算プログラム
JP2016157054A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラム
JP2016157053A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法
JP2016157055A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法
JP2016157052A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラム

Also Published As

Publication number Publication date
JPWO2006019152A1 (ja) 2008-05-08

Similar Documents

Publication Publication Date Title
Alenezi et al. Symmetric encryption algorithms: Review and evaluation study
Callas et al. OpenPGP message format
US6950517B2 (en) Efficient encryption and authentication for data processing systems
JP4712017B2 (ja) ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法
EP2691906B1 (en) Method and system for protecting execution of cryptographic hash functions
US20170104584A1 (en) Construction and uses of variable-input-length tweakable ciphers
AU2004218638A1 (en) Use of isogenies for design of cryptosystems
WO2007105709A1 (ja) 情報処理システム、情報処理方法および情報処理プログラム
WO2002017554A2 (en) Parallel bock encryption method and modes for data confidentiality and integrity protection
WO2014136386A1 (ja) タグ生成装置、タグ生成方法およびタグ生成プログラム
US8122075B2 (en) Pseudorandom number generator and encryption device using the same
Callas et al. RFC 4880: OpenPGP message format
WO2021171543A1 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法および記録媒体
JP4737334B2 (ja) 暗号装置、復号装置、暗号プログラム、復号プログラム、及び記録媒体
Rajasekar et al. Introduction to classical cryptography
WO2006019152A1 (ja) メッセージ認証装置及び認証暗号装置
US8891761B2 (en) Block encryption device, decryption device, encrypting method, decrypting method and program
KR101445339B1 (ko) 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법
KR100551992B1 (ko) 어플리케이션 데이터의 암호화 및 복호화 방법
JP4857230B2 (ja) 疑似乱数生成装置及びそれを用いた暗号化処理装置
JP5489115B2 (ja) 原本性保証装置、原本性保証プログラム、及びこのプログラムを記録する記録媒体
JP3694242B2 (ja) 署名付き暗号通信方法及びその装置
Tiwari et al. Cryptographic hash function: an elevated view
Assa-Agyei Enhancing the Performance of Cryptographic Algorithms for Secured Data Transmission
JP2015082077A (ja) 暗号化装置、制御方法、及びプログラム

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006531866

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase