WO2012120671A1 - 共通鍵暗号を用いた認証システム - Google Patents

共通鍵暗号を用いた認証システム Download PDF

Info

Publication number
WO2012120671A1
WO2012120671A1 PCT/JP2011/055557 JP2011055557W WO2012120671A1 WO 2012120671 A1 WO2012120671 A1 WO 2012120671A1 JP 2011055557 W JP2011055557 W JP 2011055557W WO 2012120671 A1 WO2012120671 A1 WO 2012120671A1
Authority
WO
WIPO (PCT)
Prior art keywords
authentication chip
value
authentication
response
conversion function
Prior art date
Application number
PCT/JP2011/055557
Other languages
English (en)
French (fr)
Inventor
伊藤孝一
武仲正彦
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2011/055557 priority Critical patent/WO2012120671A1/ja
Publication of WO2012120671A1 publication Critical patent/WO2012120671A1/ja
Priority to US14/020,129 priority patent/US9166800B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic 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 challenge-response
    • H04L9/3273Cryptographic 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 challenge-response for mutual authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Definitions

  • the present invention relates to an electronic device authentication apparatus and method using common key encryption, and more particularly to an authentication system technique for preventing forgery of an embedded device having a common key encryption function.
  • the encryption method is used as a core function.
  • Encryption methods are roughly classified into public key encryption methods and common key encryption methods.
  • Public key cryptography is a scheme that uses different keys for encryption and decryption, and instead of publicly disclosing the key for encryption (public key), the key for decrypting the ciphertext (secret key) Is a method of maintaining security by making secret information only for the receiver.
  • secret key what is called a common key cryptosystem is a scheme that uses the same key (secret key) for encryption and decryption, and makes this secret key information unknown to a third party other than the sender and receiver. This is a method to keep safety. Regardless of which encryption method is used, it is a major security premise that the secret key does not leak outside.
  • Tamper resistance means prevention of peeping, and indicates that it is difficult to illegally leak important information such as a secret key stored inside an embedded device from the outside.
  • Tamper resistance not only information leakage by accessing from the regular input / output terminals of embedded devices but also information leakage prevention for unauthorized access that directly looks into the internal circuit using a microprobe.
  • the hardware configuration of a normal IC chip cannot withstand an attack that directly looks into the internal circuit using a microprobe. Therefore, in order to realize tamper resistance, it is necessary to manufacture an IC chip having a dedicated hardware configuration for preventing physical and logical unauthorized access from the outside.
  • a secret key used for authentication at the time of device manufacture is written inside, and the key is not taken out after manufacture. Used. By doing so, an unauthorized third party can obtain a secret key and prevent forgery of the authentication device.
  • Secure authentication is achieved by executing an authentication protocol between authentication devices in a state where a secret key is written to the authentication device with tamper resistance and the key is not extracted to the outside. It is believed that customers can be protected from damage caused by
  • a method in which a processor that controls a parent device including a parent device authentication chip authenticates a child device including a child device authentication chip includes: generating a random number; and transmitting the random number to the parent device authentication chip and the child device authentication chip. And setting the output value generated by applying an encryption function for encrypting the integer and the random number stored as a secret key in the master authentication chip to the master authentication chip.
  • the authentication system includes: random number generating means for generating a random number; random number transmitting means for transmitting the random number to the master authentication chip and the slave authentication chip; the master authentication chip and the slave authentication.
  • Response value receiving means for receiving a first response value and a second response value as a response to the random number from the chip, and authenticating the slave unit using the first response value and the second response value
  • a processor including a handset authentication unit that performs; a first random number receiving unit that receives the random number; a first storage unit that stores an integer as a secret key; and a cipher for encrypting the random number and the integer.
  • a first cryptographic operation means for generating an output value by applying an activation function, and a first conversion function determined by a first set value for the output value to be applied to the first value.
  • a first response value generating means for generating a pounce value; and a master authentication chip connected to the processor; a second random number receiving means for receiving the random number; and storing an integer as a secret key Second storage means, second cryptographic operation means for generating an output value by applying an encryption function for encryption to the random number and the integer, and the output value is set to a second value
  • a second response value generating means for generating a second response value by applying a second conversion function determined by a value, and including at least a slave unit authentication chip connected to the processor,
  • the slave unit authentication means of the processor uses a third conversion function determined by an absolute value of a difference between the first set value and the second set value as the first response value. And the number obtained by acting The slave unit is authenticated by comparing the second response value or comparing the first response value with the number obtained
  • the authentication chip is generated by: a memory for storing a secret key that is an integer; a receiving means for receiving the integer; and an encryption function for encryption applied to the integer and the secret key.
  • Response value generating means for generating a response value obtained by applying a conversion function to the output value; and transmitting means for transmitting the response value.
  • FIG. 1 is a diagram illustrating a system according to a first embodiment of the present invention.
  • FIG. 1 is a diagram illustrating a system according to a first embodiment of the present invention.
  • FIG. 1 is a diagram illustrating a system according to a first embodiment of the present invention.
  • FIG. 1 is a diagram illustrating a system according to a first embodiment of the present invention.
  • FIG. 1 is a diagram illustrating a system according to a first embodiment of the present invention.
  • FIG. 4 is a diagram showing a system according to a second embodiment of the present invention. It is a figure which shows the flowchart of the process performed with CPU of the system according to the 2nd Embodiment of this invention. It is a figure which shows the flowchart of the process performed with the authentication chip
  • FIG. 4 is a diagram showing a system according to a third embodiment of the present invention. It is a figure which shows the flowchart of the process performed by CPU of the system according to the 3rd Embodiment of this invention. It is a figure which shows the flowchart of the process performed with the authentication chip
  • FIG. 6 is a diagram showing a system according to a fourth embodiment of the present invention. It is a figure which shows the flowchart of the process performed by CPU when attaching the authentication chip
  • FIG. 7 is a diagram showing a system according to a fifth embodiment of the present invention. It is a figure which shows the flowchart of the process performed by CPU of the system according to the 5th Embodiment of this invention. It is a figure which shows the flowchart of the process performed with the authentication chip
  • FIG. 7 is a diagram showing a system according to a sixth embodiment of the present invention.
  • FIG. 9 is a diagram showing a system according to a seventh embodiment of the present invention. It is a figure which shows the flowchart of the process performed by CPU when attaching the authentication chip
  • a system in which a first device authenticates a second device using common key cryptography will be described.
  • the first device that performs authentication is referred to as “master”, and the second device that is authenticated is referred to as “slave” as appropriate.
  • the parent device includes the CPU 100 and the parent device authentication chip 200, and the child device has three restrictions on the system including the authentication chip 300: the secret key is not leaked to the outside, the production cost is reduced, and the communication topology is simplified as much as possible. The possible system is described below.
  • FIG. 1 is an overview of the challenge and response authentication protocol.
  • Challenge-and-response authentication is a secret word using digital information, and a random number called “change” is transmitted from the authenticating side (master unit) to the authenticated side (slave unit).
  • a response called “response” is generated in response to “changing range” and returned to the master unit.
  • the parent device determines the value of “response” for “challenge”, and if it is correct, determines that the child device is a valid device.
  • the retransmission attack is an attack that impersonates a legitimate device by repeating responses observed from outside in the past.
  • the pair of the response and response becomes a completely fixed value, so the attacker can know the appropriate response corresponding to the challenge by observing this pair and return this response This is because chip forgery is facilitated by manufacturing the chip. For example, if a malicious third party can know that the system uses only the secret word “river” for “mountain”, it can be impersonated by always responding with “river”.
  • a method using a cryptographic function is used to generate a “response” for a “challenge”.
  • FIG. 2 is a challenge and response authentication protocol using common key cryptography.
  • the secret key K is pre-shared between the authentication chip of the parent device and the child device. This can be realized by writing the value of the secret key K when the chip is manufactured. It is an important security premise that this value does not leak outside.
  • the parent device on the authentication side generates a random number C and transmits it to the child device to be authenticated. This random number C is called “challenge”.
  • the challenge and response protocol itself is a theoretically secure authentication protocol.
  • real world authentication is limited, leaving the possibility of being insecure.
  • Constraint 1 Secret key does not leak outside
  • Constraint 2 Production cost constraint
  • Constraint 3 Communication topology constraint
  • restriction on the production cost of restriction 2 it is possible to keep the production cost of the authentication chip low by making the parent device and the child device side of the authentication chip have the same hardware configuration.
  • the restriction on the communication topology of restriction 3 is derived from the fact that it is necessary to make the communication form (topology) as simple as possible in a low-cost device.
  • Constraint 1 can be solved by using a generally known tamper resistance technique.
  • secure authentication cannot be realized only by using the conventional technology.
  • the implementation form of the authentication chip is determined by constraint 2, and the communication topology is determined by constraint 3. These determined combinations may be a factor that threatens the security of certification. First, the mounting form of the authentication chip determined by the constraint 2 will be described with reference to FIG.
  • FIG. 3 shows the types of mounting forms on the master unit and slave units in the authentication system.
  • the basic requirements of the authentication system are as follows. -Consists of a main unit and a sub unit. -An authentication chip or CPU is attached to each of the master unit and the slave unit. However, a CPU as a controller for performing overall function management is always mounted on the base unit side. -The parent device and the authentication chip or CPU mounted on the child device communicate with each other and execute the authentication protocol, so that the parent device side determines whether or not the child device is a genuine product. -When the parent device determines that the child device is a genuine product, the CPU on the parent device side is permitted to use the resource of the child device for the parent device.
  • the master printer permits the use of ink from the slave unit, and in the case of a medical device, the master unit permits the use of an optional device of the slave unit.
  • the key value does not leak to the outside, and encryption and decryption processing using a fixed key may be targeted by side channel attacks. .
  • Form 1 The parent device side is mounted by the CPU 100, and the child device side is mounted by the authentication chip 300.
  • Form 2 The parent device side is mounted by a CPU 100 ′ with built-in authentication chip, and the child device side is mounted by an authentication chip 300.
  • Form 3 A combination of the CPU 100 and the authentication chip 200 is mounted on the parent device side, and the authentication chip 300 is mounted on the child device side.
  • the parent device includes the CPU 100
  • the child device includes the authentication chip 300.
  • the authentication chip 300 included in the slave unit includes a communication control unit 301, an encryption circuit 302, and a memory 303 that stores a secret key.
  • the communication control unit 301 may process communication with the outside of the processor and may be implemented as a processor.
  • the encryption circuit 302 generates an output value as a response by applying an encryption function to an input (for example, challenge), and may be a dedicated circuit or implemented as a general-purpose computer. .
  • the secret key can be read from the encryption circuit 302 and stored in the memory 303, but the memory 303 is preferably non-volatile.
  • the parent device includes an authentication chip built-in CPU 100 ′ including an authentication chip 200 ′.
  • the authentication chip 200 ′ is different from the authentication chip 200 described below in that it is built in the CPU, but the configuration is the same. That is, the authentication chip 200 ′ includes the communication control unit 301, the encryption circuit 302, and the memory 303 that stores the secret key, the same communication control unit 201, the encryption circuit 202, and the memory 203 that stores the secret key of the authentication chip 300. .
  • the cordless handset is the same as in Form 1.
  • the authentication chip 200 ′ having a tamper-proof function is built in the CPU 100 ′, so that the risk of secret key leakage from the CPU disappears.
  • restriction 2 is not satisfied because the parent device side is a CPU 100 ′ with built-in authentication chip and the child device side is a normal authentication chip 300.
  • the parent device includes the CPU 100 and the authentication chip 200
  • the child device includes the authentication chip 300.
  • the restriction 1 is satisfied.
  • the restriction 2 is satisfied.
  • FIG. 4 shows the types of communication topology forms based on form 3.
  • the bridge type of topology 1 is a form in which communication lines are separately connected from the authentication chip on the parent device side to each of the parent device CPU and the child device authentication chip. Since two communication ports are required for the parent device authentication chip (two communication ports are also required for the child device authentication chip having the same hardware configuration), it is not suitable for low cost. That is, constraint 3 is not satisfied.
  • the hub type of topology 2 is a form in which communication lines are separately connected from the CPU 100 included in the parent device to the authentication chip 200 of the parent device and the authentication chip 300 of the child device. Since two communication ports are required for the CPU, it is not suitable for low cost. That is, constraint 3 is not satisfied.
  • the serial bus type of topology 3 is a form in which the CPU 100 included in the parent device, the authentication chip 200 of the parent device, and the authentication chip 300 of the child device are all connected in a bus shape with a shared communication line. Since all the communication ports of the CPU 100 of the parent device, the authentication chip 200 of the parent device, and the authentication chip 300 of the child device may be one, it is suitable for low cost. That is, the constraint 3 is satisfied.
  • serial bus type connection based on the form 3 is a preferred form for satisfying the above constraints 1, 2, and 3.
  • the following security problems may occur.
  • FIG. 5 is a diagram illustrating a combination example of the form 3 and the topology 3.
  • Various types of serial bus I / Fs are known.
  • the CPU 101, the authentication chip 200 of the parent device, and the authentication chip 300 of the child device are connected to each other by an I2C bus 400.
  • All devices of the I2C bus 400 are connected by two lines of a data line 420 and a clock line 440.
  • the I2C bus 400 has the advantage of being able to connect multiple devices using only one 2-wire communication line, but it is easy to wiretap or tamper with data because all devices are connected by a single line. There are known problems.
  • the CPU 100 transmits a challenge C to the authentication chip 200 of the parent device and the authentication chip 300 of the child device via the bus 400, the response RQ from the authentication chip 300 of the child device, and the authentication chip 200 of the parent device. comparing the response R P from, if R P and R Q are matched, CPU 100 is the slave unit including the authentication chip 300 of the mobile device is determined to be genuine. There are two methods depending on whether the order in which the CPU 100 transmits the challenge C starts from the slave unit including the authentication chip 300 of the slave unit or from the master unit including the authentication chip 200 of the master unit. .
  • the CPU 100 When transmitting the challenge C to the parent device first, the CPU 100 outputs the challenge C to the authentication chip 200 of the parent device via the bus 400.
  • the authentication chip 200 of the parent machine includes a communication control unit 201, an encryption circuit 202, and a key 203, and the challenge C output from the CPU 100 is received by the communication control unit 201. Thereafter, the challenge C is input to the encryption circuit 202, the encryption circuit 202, using the key 203 to obtain the response R P. The response R P via the bus 400 and sent to CPU 100. Next, the CPU 100 outputs a challenge C to the authentication chip 300 of the slave device via the bus 400.
  • the challenge C is received by the communication control unit 301 of the authentication chip 300 of the slave unit, and then input to the encryption circuit 302 of the authentication chip 300 of the slave unit.
  • the response RQ is obtained using the challenge, the key 303, and the encryption function.
  • the response R Q via the bus 400 and sent to CPU 100.
  • CPU100 received the response R P from the base unit, the response R Q from the slave unit compares both handset if they match determines that genuine.
  • attack methods 1 and 2 will be described with reference to FIGS.
  • FIG. 7 shows an attack method when wiretapping on the I2C bus 400 is used for the protocol of FIG. 6 (hereinafter referred to as attack method 1).
  • the attack target is a protocol for generating a response in the order of the parent device including the authentication chip 200 of the parent device and the child device including the authentication chip 300 of the child device.
  • CPU 100 receives the master unit, the response R P from the slave unit, the R Q in this order, a determination is genuine.
  • the authentication chip of the handset that is a counterfeit product behaves as follows.
  • Counterfeit verifying chip 300 ' through the I2C bus 400, and observing the response R P master unit replies to CPU 100, forgery authentication chip 300' of the (not shown) stored in the internal register. Then, since the challenge C to the CPU slave unit is transmitted, and returns an R P observed by eavesdropping contrast as a response R Q neat handset. In this way, CPU is to receive the same response, R P and R Q are coincident, CPU 100 would determine the forgery authentication chip and genuine. As described above, in the attack method 1, the forged authentication chip only has to wiretap the data on the I2C bus, so that the attack succeeds without knowing the secret key value.
  • FIG. 8 shows an attack method when tampering is used with respect to the protocol of FIG. 6 (hereinafter referred to as attack method 2).
  • the attack target is a protocol for generating responses in the order of the slave unit and the master unit.
  • CPU 100 receives child machine, the response R Q from the base unit, the R P in this order, a determination is genuine.
  • the authentication chip 300 ′ of the child device that is a counterfeit product behaves as follows. Counterfeit verifying chip 300 'generates appropriate values X, and returns as a response R Q to the challenge C from CPU 100. This X may be any value.
  • the slave unit including the authentication chip 300 ′ wiretap the data on the I2C bus 400, and if the challenge C to the master unit including the authentication chip 200 of the master unit is input from the CPU 100, the value X generated earlier Is returned instead of the master authentication chip 200 (spoofing).
  • This impersonation is possible in principle, although the communication processing timing on the counterfeit authentication chip side is very severe.
  • As a technique for an attacker to avoid this severe timing control there is a method of cutting the communication line 400 between the CPU 100 and the authentication chip 200 of the parent device. Although physical modification of the circuit on the parent device side is required, using this attack method 2 makes it easy to impersonate the child device, and makes it possible to misidentify a counterfeit product as a regular product.
  • the response R Q from the response R P and the slave unit from the master unit has determined the success or failure of authentication on whether the same, attacks 1 to eavesdropping and spoofing
  • the security of authentication may be threatened.
  • FIG. 1 A system according to the first embodiment of the present invention is shown in FIG.
  • the same response was returned to both the parent device authentication chip and the child device authentication chip, so that an attack by eavesdropping or impersonation was easy.
  • a plurality of response generation units that generate responses to a challenge are prepared in the authentication chip, and which response generation unit is used is determined in the authentication chip included in the parent device and the child device. The selection is made based on information stored in the non-volatile memory. This information is information used to identify whether the authentication chip of the parent device and the child device having the same hardware configuration is the authentication chip of the parent device side or the child device side. May be address information of the I2C bus.
  • the system according to the present embodiment is a system for authenticating a child device by the parent device, and includes a CPU 100 included in the parent device, an authentication chip 200 of the parent device, and a child included in the child device. And a bus 400 for connecting the CPU 100, the authentication chip 200 of the parent device, and the authentication chip 300 of the child device.
  • the CPU 100, the parent device authentication chip 200, and the child device authentication chip 300 are connected via a serial bus via a bus 400.
  • An example of the bus interface (I / F) is an I2C bus.
  • the CPU 100 generates a challenge C, which is a random number, and outputs it to the authentication chip 200 of the parent device and the authentication chip 300 of the child device.
  • the random number is preferably an integer.
  • CPU100 receives the response R Q from the response R P and the child device from the parent device. Then, CPU 100 is allowed to act the function F in response R Q from the slave unit F and (R Q) by comparing the response R P, authenticates the handset. That, CPU 100 stores the function F to compensate for the difference in response R Q from the response R P and handset from the base unit.
  • a function F is applied to the response R with the authentication chip 200 of the master unit, the function F is applied to the response R Q from the slave unit in the CPU of the same function.
  • the random number may be generated by random number generation means included in the CPU 100.
  • the random number is preferably an integer.
  • the output (transmission) of the challenge C to the outside may be performed by random number transmission means.
  • Receiving (receiving) the response may be performed by response value receiving means. Further CPU100 compares the response R Q from the response R P and handset from the base unit, the slave unit includes a handset authentication means judges whether genuine.
  • Authentication chips 200 and 300 include first response generation units 220a and 320a, second response generation units 220b and 320b, response selection unit 230, and address information holding units 240 and 340, respectively.
  • the first response generation units 220a and 320a store the encryption function, and generate the output value R as a response by applying the encryption function to the input (challenge C) and the key from the CPU 100 as in the conventional case.
  • the encryption function may be a known one.
  • This first response generation unit is also called a cryptographic operation means.
  • the second response generators 220b and 320b store the function F, and further apply the function F to the input (challenge C) from the CPU 100 and the output value R obtained by applying the encryption function to the key. Thus, a number F (R) different from the output value R is generated.
  • the second response generation unit is also called first response value generation means.
  • the address information holding units 240 and 340 may be nonvolatile memories that store addresses unique to individual authentication chips.
  • the authentication chip 200 of the parent device and the authentication chip 300 of the child device receive a signal from an external device such as the CPU 100 or transmit a signal to the external device (not shown).
  • No includes communication means. Examples of the communication means include data input / output interfaces (I / F) 260 and 360 shown in FIG.
  • the data input / output interface (I / F) functions as a reception unit that receives a random number generated by the processor 100 or a transmission unit that transmits a response generated by the response generation unit to the processor 100.
  • the key is a common key (also called a secret key). That is, the first response generation unit 220a, 320a executes a common key encryption algorithm.
  • the response selection units 230 and 330 select a response generation unit according to the serial bus address value stored in the address information holding units 240 and 340.
  • the first response generation unit and the second response generation unit form a response value generation unit.
  • the authentication chip 300 of the slave unit may also return H (Enc (C, K)) obtained by applying the function H in Enc (C, K).
  • CPU 100 is, if the storing function to compensate for the difference in response R Q from the response R P and handset from the base unit, said authentication method works.
  • the memories 240 and 340 constitute address storage means.
  • the authentication chip 200 of the parent device and the authentication chip 300 of the child device have the same configuration, but when used as the authentication chip 200 of the parent device, the second response generation unit 220b uses the authentication chip 300 of the child device. May be set at the time of shipment so that the first response generation unit 320a functions. By being set at the time of shipment in this way, it is possible to obtain advantages such as the fact that the same authentication chip can be mass-produced and that the security can be ensured because it is set at the time of shipment.
  • the authentication system 10 authenticates because the response from the authentication chip 200 of the parent device is different from the response from the authentication chip 300 of the child device. Can improve the safety.
  • the authentication chip 200 of the parent device and the authentication chip 300 of the child device have the same configuration.
  • the CPU 100, the authentication chip 200 of the parent device, and the authentication chip 300 of the child device are connected by an I2C bus.
  • each authentication chip 200, 300 may have only one communication port for communication with the outside, and the authentication chip can be manufactured in a small size while suppressing the manufacturing cost. it can.
  • the conversion function is not disclosed to the outside, that is, stored in a nonvolatile memory. Therefore, high safety can be obtained.
  • a maximum of n child devices are connected to the parent device.
  • the parent device includes a CPU 100 and an authentication chip (authentication chip 0) 200, and each of up to n child devices has one authentication chip (authentication chip 1 to n) 300_1,. . . 300_n.
  • n is an arbitrary natural number, and depending on the application, a plurality of authentication chips may be connected to the handset side. For example, when four colors of ink cartridges are used, the slave unit has one authentication chip for each color, and has a total of four authentication chips.
  • Each authentication chip 300_1,. . . 300_n has the same hardware configuration, and the address value of the serial bus is written in the nonvolatile memory 326 inside each chip.
  • This address value is a value used for distinguishing communication entities on the serial bus, and is used for the CPU 100, the authentication chips 300_1,. . . A unique value is given for 300_n. The uniqueness of this address only needs to be maintained between the communication entities connected to the serial bus 400 in FIG. 13, and does not have to be a value different between all authentication chips that are distributed.
  • Each authentication chip includes n + 1 data conversion means.
  • Each authentication chip includes a response generation circuit 224 that generates a response R from the received challenge C using a secret key stored in the memory 226, arithmetic units 220a to 220n that execute conversions 0 to n, and a conversion function. And a selector 223 for selecting one of the arithmetic units 220a to 220n based on the address information stored in the memory 240.
  • the arithmetic units 220a to 220n store conversion functions of conversions 0 to n, respectively.
  • Y F ti (X) can be exemplified using the function F as an example of the relationship between X and Y. .
  • t i is a constant determined from the address information stored in the memory 240 and represents the number of times the function F is repeatedly applied corresponding to the conversion means used by the i-th authentication chip.
  • the function F (X) may be any function as long as it is a 1-input 1-output function that is a function that is not disclosed to the outside, but considering the hardware implementation, the circuit scale should be as small as possible. For example, the following processing is desirable. (1) The shift process by the feedback shift register (LFSR) is repeated by a constant number of bits. (2) After shifting the left 1 bit, the remainder operation of the characteristic polynomial on the GF (2 m ) over the expanded Galois field having 2 m elements Repeat the process for a constant number of bits (mod) (3) Hash function
  • F (X) LFSR (X, 128)
  • LFSR (X, 1) includes a value obtained by shifting X by 1 bit by LFSR (linear feedback shift register) processing.
  • F (X) X 64 mod q (X),
  • q (X) represents a 128-bit irreducible polynomial
  • mod represents a remainder
  • F (X) the least significant 128 bits of SHA1 (X)
  • SHA1 (X) is the SHA-1 hash function output of X.
  • Base unit CPU100 received response R P and R Q and verifying chip 0 from the authentication chip i is performed by the following these responses comparison.
  • F ti ⁇ t0 (R P ) R Q
  • t i ⁇ t 0 : R P F t0 ⁇ ti (R If Q )
  • FIG. 10 is a diagram showing a system 10 according to the second embodiment of the present invention.
  • the system 10 is similar to the system shown in FIG. 9 in that the CPU 100 included in the parent device and the authentication chip 200 of the parent device, the authentication chips 300_1,. . . , 300_n, and the CPU 100, a bus 400 for connecting the authentication chip 200 of the parent device and the authentication chip 300 of the child device.
  • the CPU 100, the parent device authentication chip 200, and the child device authentication chip 300 are connected via a bus 400 to an I2C bus serial bus.
  • the 0th authentication chip 200 (hereinafter also referred to as the authentication chip 0) included in the parent device receives a signal from the CPU 100 via the bus 400 and transmits a signal to the CPU 100.
  • (I / F) 260 a response generation circuit 224 that generates an output value R as a response by applying an encryption function to the challenge C received by the data input / output I / F 260, and an output generated by the response generation circuit 224
  • Operation units 222a to n that apply conversions 0 to n to the value R
  • memory 240 that stores address information as parameters of the conversion function, and one of the operation units 222a to 222n based on the address information stored in the memory 240 It includes a selector 223 to select.
  • the selector 223 corresponds to a response selection unit.
  • the response generation circuit 224 includes a memory 226 in which a secret key is stored.
  • the system in FIG. 9 is a case where the number of slave units is one in this system, and the first response generation unit 220a in FIG. 9 corresponds to the response generation circuit 224, the calculation unit 222a that performs conversion 0, and the selector 223.
  • Response value generation means is formed from the arithmetic units 220a to 220n, the selector 223, the response generation circuit 224, and the memory 240 for storing address information.
  • Child device authentication chips 300_1,. . . , 300_n have the same configuration as the authentication chip 200 of the parent device. That is, a data input / output interface (I / F) 360 for receiving a signal from the CPU 100 via the bus 400 and transmitting a signal to the CPU 100, and an encryption function for the challenge C received by the data input / output I / F 360.
  • I / F data input / output interface
  • a response generation circuit 324 that generates an output value R as a response, arithmetic units 322a to n that operate conversions 0 to n on the response generated by the response generation circuit 324 that generates a response R, and a conversion function
  • a memory 340 for storing address information as a parameter and a selector 223 for selecting one from the arithmetic units 322a to 322n based on the address information stored in the memory 340 are included.
  • the response generation circuit 324 includes a memory 326 in which a secret key is stored.
  • the second response generation unit 320b in FIG. 9 corresponds to the response generation circuit 324, the calculation unit 322b that executes conversion 1, and the selector 323.
  • the calculation units 320a to 320n store conversion functions F of conversions 0 to n, respectively.
  • Response value generation means is formed from the arithmetic units 320a to 320n, the selector 323, the response generation circuit 324, and the memory 340 for storing address information.
  • the selectors 223 and 323 also function as a response selection unit that selects a conversion function according to the serial bus address values stored in the memories 240 and 340, respectively.
  • the bus 400 is an I2C bus in this embodiment. By using the I2C bus, the connection between the CPU and the authentication chip can be simplified, and the cost of the entire system can be suppressed.
  • FIG. 11 is a diagram showing a flowchart of processing executed by the CPU 100 of the system 10 according to the second embodiment of the present invention
  • FIG. 12 is executed by the authentication chip of the system according to the second embodiment of the present invention. It is a figure which shows the flowchart of a process.
  • the CPU 100 determines the slave number i to be authenticated in S1101 and proceeds to S1102. In S1102, a random number is generated for use as challenge C. In S1103 subsequent to S1102, the challenge C generated in S1102 is transmitted to the authentication chip 300_i of the i-th slave device determined in S1101.
  • the authentication chip 300_i of the i-th child device receives the challenge C transmitted by the CPU 100 of the parent device in S1151.
  • the output value R Enc (C, K) as a response is obtained.
  • the number of conversion repetitions t i is determined based on the address information stored in the internal nonvolatile memory 340.
  • the number of repetitions t i may be, for example, an integer created by sequentially arranging the numbers appearing at the address.
  • 0 is substituted into a dummy variable j that is an integer in S1154.
  • the value of the dummy variable is incremented 1 at S1155, compares j and t i at S1156.
  • J is reacted with the function F to the current response values at S1157 is smaller than the t i in S1156, updates the response value, the flow returns to S1154.
  • J In S1156 sends each value of current response R is greater than t i to CPU 100, and ends the processing of the authentication chip 300_i of the i-th slave unit.
  • CPU100 receives the value of the response R from the authentication chip 300_i of the i-th slave unit as a response R Q at S1104. Next, in step S1105, the challenge C is transmitted to the authentication chip 200 of the parent device this time.
  • the authentication chip 200 of the parent device performs the same processing as the authentication chip 300_i of the previous i-th child device, but the number of times that the function F is applied is t 0 in the case of the authentication chip 300_i of the i-th child device. There, different from the t i.
  • CPU100 receives the value of the response R from the verifying chip 200 of the master unit as a response R P in S1106.
  • step S1107 t i and t 0 are compared. If t i is larger than t 0 , the process proceeds to step S1108; otherwise, the process proceeds to step S1109.
  • step S1108 it determines whether the function F to R P, t i values were reacted -t 0 times and R Q are equal. If they are equal, the i-th slave is determined to be a genuine product and the processing of the CPU 100 is terminated. Otherwise, it is determined that the i-th slave is not a regular product.
  • the responses RP and RQ are different, so that attacks by eavesdropping and tampering as shown in attack method 1 and attack method 2 can be prevented. it can.
  • FIG. 13 is a diagram showing the system 20 of the present embodiment
  • FIG. 14 is a diagram showing a flowchart of processing executed by the CPU 1100 of the system according to the present embodiment
  • FIG. 15 is an authentication chip of the system 20 according to the present embodiment. It is a figure which shows the flowchart of the process performed by 1200, 1300_i.
  • the function F is a secret function
  • the types of F that can be processed efficiently on hardware are very limited. There is no possibility of being identified. If the content of the function F is specified by the attacker, the secret key is changed by using an attack method that is modified to return a response modified by the function F, based on the same idea as the attack 1 and attack 2. It becomes possible to manufacture a counterfeit product without knowing the value.
  • a system 20 is provided in which it is more difficult to specify a conversion means from wiretapping of communication data.
  • the handset authentication system 20 is basically the same as the system 10 of the second embodiment, but a nonvolatile memory 1280 in which a pre-shared constant S (shared value S) is written, 1380 includes authentication chips 1300_1 to 1300_n (authentication chip 1 to authentication chip n).
  • F S, C (X) represents a 1-input 1-output function with a constant S and a challenge C as parameters, and examples include the following operations. (4) XOR addition with parameters (5) Remainder operation with parameters (6) Parameter hash operation (7) LFSR-XOR subtraction with parameters
  • the CPU 1100 of the system 20 of this embodiment is the same as the CPU 100 of the previous embodiment, except that it includes a memory 1140 that stores shared values.
  • the authentication chip 1200 of the parent device has a configuration similar to that of the authentication chip 200 of the parent device of the second embodiment, except that it includes a memory 1280 that stores the shared value S.
  • Child machine authentication chips 1300_1,. . . 1300_n has a configuration similar to that of the authentication chip authentication chip 300 of the slave unit of the second embodiment, except that a memory 1380 that stores the shared value S is included. Further, the authentication chips 1300_1,. . . 1300_n has the same configuration as the authentication chip 1200 of the parent device.
  • FIG. 14 is a diagram showing a flowchart of processing executed by the CPU 1100 of the system according to the third embodiment of the present invention
  • FIG. 15 shows processing executed by the authentication chip of the system according to the third embodiment of the present invention. It is a figure which shows a flowchart.
  • the CPU 1100 determines the slave number i to be authenticated in S1301, and proceeds to S1302.
  • a random number is generated for use as challenge C.
  • the challenge C generated in step S1302 is transmitted to the authentication chip 1300_i of the i-th child device determined in step S1301.
  • the authentication chip 1300_i of the i-th child device receives the challenge C transmitted by the CPU 1100 of the parent device in S1351.
  • the output value R Enc (C, K) as a response is obtained.
  • the number of conversion repetitions t i is determined based on the address information stored in the internal nonvolatile memory 340. Similar to the second embodiment, the number of repetitions t i may be an integer obtained by sequentially arranging the numbers appearing in the address, for example.
  • the function F S, C is applied to the output value R t i times.
  • the function F S, C depends on the shared value S and the challenge C. More specifically, 0 is substituted into a dummy variable j that is an integer in S1354. The value of the dummy variable is incremented 1 at S1355, compares j and t i at S1356.
  • Function F S to the current response value j is at S1357 is smaller than t i in S1356, by the action of C, and updates the response value, the flow returns to S1354. If j is greater than t i in S1356 to send the value of the current response R to CPU 1100, and ends the processing of the authentication chip 1300_i of the i-th slave unit.
  • CPU1100 receives the value of the response R from the authentication chip 1300_i of the i-th slave unit as a response R Q at S1304. Next, in step S1305, challenge C is transmitted to the authentication chip 1200 of the parent device this time.
  • the authentication chip 1200 of the parent device performs the same processing as the authentication chip 1300_i of the previous i-th child device, but the number of times the functions F S and C are applied is different from the case of the authentication chip 1300_i of the i-th child device. t 0 , different from t i .
  • CPU1100 receives the value of the response R as a response R P from the authentication chip 1200 of the parent device in S1306.
  • step S1307 t i and t 0 are compared. If t i is larger than t 0 , the process proceeds to step S1308; otherwise, the process proceeds to step S1309.
  • step S1308 it determines whether R P to the function F S, the C, t i values were reacted -t 0 times and R Q are equal. If they are equal, the i-th slave unit including the authentication chip 1300_i is determined as a regular product. Otherwise, it is determined that the i-th slave is not a regular product.
  • the R P, R Q is a readily observable values to the attacker.
  • the conversion means is affected by the challenge C and the constant S that cannot be observed from the outside, so that variations in conversion can be greatly increased. This makes it difficult for an attacker to decrypt the conversion means using the communication data wiretapping described above. For example, by setting the constants S and 128-bit parameter, brute force total number of attackers becomes unintelligible within 2 128, and the real time. That is, by using the system 20 according to the present embodiment, it is possible to further enhance the resistance to the attack using the decryption of the conversion means by wiretapping of communication data with respect to the system 10 according to the second embodiment.
  • FIG. 16 is a diagram showing a system 30 according to the present embodiment
  • FIG. 17 is a diagram showing a flowchart of processing executed by the CPU when the authentication chip 2200 (authentication chip 0) is attached to the CPU in the system 30 according to the present embodiment
  • 18 is a system 30 according to the present embodiment, showing a flowchart of processing executed by the authentication chip 2200 when the authentication chip 2200 (authentication chip 0) is attached to the CPU 2100
  • FIG. 19 is a system according to the present embodiment.
  • FIG. 30 is a diagram showing a flowchart of processing executed by the CPU 2100 when authenticating the i-th child device including the authentication chip 2300_i (authentication chip i), and FIG. 20 shows the authentication chip in the system 30 according to the present embodiment. Processing executed by authentication chip i when authenticating the i-th child device including 2300_i (authentication chip i) It is a diagram showing a flowchart.
  • the above-described shared value S may be specified.
  • the attacker can specify the conversion means F S, C () by analyzing the ROM code of the program executed by the CPU.
  • the present embodiment provides a system in which it is difficult to specify the conversion means F S, C () even when advanced reverse engineering is performed on the CPU.
  • the system 30 shown in FIG. 16 is basically the same as the system 20 of the previous embodiment shown in FIG. 13, but the authentication chip 2200 (authentication chip 0) attached to the parent device. And the CPU 2100 share the eigenvalue I.
  • the eigenvalue I is shared between the CPU 2100 and the authentication chip 2200 when the authentication chip 2200 (authentication chip 0) is first attached to the CPU 2100 of the parent device when the entire parent device is manufactured. 2160 and 2232, and values that cannot be rewritten thereafter. This value is different among CPU solids. Since the slave unit is attached to the master unit after the CPU and the authentication chip 0 complete the sharing of the eigenvalue, the authentication chips 2300_1 to 2300_n (authentication chip 1 to authentication chip n) cannot know the eigenvalue I. .
  • the conversion means 0 used by the master unit is executed in advance after executing the conversion means F S, C t0 () using S and C.
  • a response R P G I ( FS , C t0 (X)) is output.
  • all i 1, 2,. . .
  • G I (X) may be any function as long as it is a 1-input 1-output function with eigenvalue I as a parameter. For example, by using the following function, an efficient implementation with reduced circuit scale can be achieved. It becomes possible. (8) XOR with parameters (9) Remainder operation with parameters (10) Hash operation with parameters (11) LFSR subtraction with parameters
  • I includes a parameter (eigenvalue).
  • SHA1 (X) includes the SHA-1 hash function output of X.
  • GI (X) LFSR (I, 75) ⁇ LFSR (X, 33) Is included.
  • the CPU 2100 of the system 30 of this embodiment includes a memory 1140 that stores the shared value S and a memory 2160 that stores the eigenvalue I.
  • the authentication chip 2200 of the parent device has a configuration similar to that of the authentication chip 1200 of the parent device of the third embodiment, but includes a non-volatile memory 2232 that stores the eigenvalue I, a circuit 222a that performs conversion 0, and a selector It is different that it includes a circuit 2230 for converting G using a function G I during 223.
  • the circuit 2230 that performs the conversion G is also connected to a memory 2280 that stores the shared value S.
  • Child machine authentication chips 2300_1,. . . 2300_n has the same configuration as the authentication chip 2200 of the parent device except that it does not include the memory 2232 for storing the eigenvalue I.
  • the conversion by the conversion means 0 on the parent device side is performed based on the unique value I that is shared between the CPU and the authentication chip 0 and is not changed thereafter when the parent device is manufactured. Since this value cannot be observed from the handset side, it is difficult for an attacker to estimate this value. For example, by the eigenvalues I and 128-bit parameter, brute force total number of attackers becomes unintelligible within 2 128, and the real time. However, since the eigenvalue I is a value that is also stored in the CPU, an attacker may be able to decipher by performing advanced reverse engineering on the CPU.
  • the eigenvalue I is different for each CPU, even if an attacker succeeds in deciphering the eigenvalue I using an advanced technique, it does not pose a great threat on authentication chip counterfeiting. Because the decrypted eigenvalue I is different for each parent machine, the attacker can produce counterfeit chips that can only be used for a specific machine. It is not a common counterfeit chip. In the system 40 according to the present embodiment, even if the advanced reverse engineering technology using the analysis of the ROM code of the CPU is successful, the conversion means of the authentication chip 0 mounted on the parent device is different for each CPU, It is impossible to mass-produce counterfeit products of the handset authentication chip that can be used for the master unit, and the attacker can prevent the counterfeit product from being distributed to the market.
  • step S1501 the CPU 2100 generates a unique eigenvalue I for each individual using the random number generated in the CPU 2100, the current time, the CPU ID, the serial number, and the like.
  • step S1502 the eigenvalue I is transmitted to the authentication chip (authentication chip 0) 2200 of the parent device.
  • the authentication chip 2200 of the parent device receives the eigenvalue I from the CPU 2100 via the bus 400.
  • the eigenvalue I is written in the nonvolatile memory 2232 of the authentication chip 2200, and the process proceeds to S1553.
  • a response is transmitted to the parent device. This response is information that can confirm the processing of S1552 such as a result of comparing the value written in the nonvolatile memory 2232 with the eigenvalue I, for example.
  • the CPU 2100 receives the response from the authentication chip 2200 of the parent device in S1503.
  • the CPU 2100 performs S1505.
  • the eigenvalue I is written in the nonvolatile memory 2160 of the CPU 2100, and the processing of the CPU 2100 is terminated.
  • the determination in S1504 shows that the response from the authentication chip 2200 of the parent device received in S1503 indicates that the writing operation of the eigenvalue I in the authentication chip 2200 of the parent device has not been performed normally.
  • the CPU 2100 ends in error.
  • FIG. 19 is a diagram showing a flowchart of processing executed by the CPU 2100 when authenticating the i-th child device including the authentication chip i in the system 30 according to the present embodiment
  • FIG. 20 is a system according to the present embodiment
  • FIG. 10 is a diagram showing a flowchart of processing executed by the authentication chip 2300_i when authenticating the i-th child device including the authentication chip i.
  • step S1601 the CPU 2100 determines the slave unit number i to be authenticated, and proceeds to step S1602.
  • step S1602 a random number is generated for use as challenge C.
  • step S1603 the challenge C generated in S1602 is transmitted to the authentication chip 2300_i of the i-th slave device determined in S1601.
  • the authentication chip 2300_i of the i-th child device receives the challenge C transmitted by the CPU 2100 of the parent device in S1651.
  • the output value R Enc (C, K) as a response is obtained.
  • the number of conversion repetitions t i is determined based on the address information stored in the internal nonvolatile memory 340.
  • t i times the response R function F S, the action of C.
  • the function F S, C depends on the shared value S and the challenge C.
  • 0 is substituted into a dummy variable j that is an integer in S1654.
  • the value of the dummy variable is incremented 1 at S1655, compares j and t i at S1656. If j is less than t i in S1656 the function F S to the current response values, by the action of C, and updates the response value, the flow returns to S1655. If j is greater than t i in S1656 to send the value of the current response R to CPU 2100, and ends the processing of the authentication chip 2300_i of the i-th slave unit.
  • CPU2100 receives the value of the response R from the authentication chip 2300_i of the i-th slave unit as a response R Q at S1604. Next, in step S1605, the challenge C is transmitted to the authentication chip 2200 of the parent device this time.
  • the authentication chip 2200 of the parent device performs the same processing as the authentication chip 2300_i of the previous i-th child device, but the number of times the functions F S and C are applied is different from the case of the authentication chip 2300_i of the i-th child device. t 0 , different from t i .
  • CPU2100 receives the value of the response R from the authentication chip 2200 of the master unit as a response R P in S1606. Next, it is determined whether R P is equal to G I (F S, C t0 -ti (X)) at S1607. If they are equal, the i-th slave is determined to be a genuine product and the processing of the CPU 100 is terminated. Otherwise, it is determined that the i-th slave is not a regular product, and the processing of the CPU 2100 is terminated.
  • the processes of S1605 and S1606 are executed after the processes of S1603 and S1604.
  • the processing of S1603 and S1604 may be performed after the processing of S1605 and S1606.
  • the order of reception of the transmission and the response R Q challenge C to the authentication chip 2300_i of the receiver and the slave unit of transmission and response R P challenge C to the authentication chip 2200 of the master unit is optional.
  • An authentication chip 3200 is connected to the parent device, and an authentication chip 3300 is connected to the child device.
  • the challenge, response, and secret key are all 128 bits.
  • the function F the least significant 128 bits of the SHA-1 output are used.
  • the CPU 100 that has received R P and R Q calculates F (R Q ), and determines that the slave unit is a genuine product if it matches R P, and if it does not match, the CPU 100 determines that it is an unauthorized product.
  • FIG. 22 is a diagram showing a flowchart of processing executed by the CPU 100 of the system 40 according to the present embodiment
  • FIG. 23 is executed by the authentication chip 3200 of the parent device and the authentication chip 3300 of the child device of the system 40 according to the present embodiment. It is a figure which shows the flowchart of the process performed.
  • CPU 100 generates a random number for use as challenge C in S1801, and proceeds to S1802.
  • the challenge C generated in S1802 is transmitted to the authentication chip 3300 of the slave unit.
  • the challenge C transmitted by the CPU 100 of the master unit in S1851 is received.
  • the number of conversion repetitions t i is determined based on the address information stored in the internal nonvolatile memory 340.
  • t 1 1.
  • 0 is substituted into a dummy variable j that is an integer in S1854.
  • the value of the dummy variable is incremented 1 at S1855, compares j and t 1 at S1856.
  • S1856 j is reacted with the function F in S1857 the current response value is smaller than t 1, with updating the response value, the flow returns to S1855.
  • J In S1856 sends each value of current response R is greater than t i to CPU 100, and ends the processing of the authentication chip 3300 of the slave unit.
  • CPU100 receives the value of the response R from the authentication chip 3300 of the mobile device as a response R Q at S1803. Next, S18054 challenge C is transmitted to the authentication chip 200 of the parent device this time.
  • CPU100 receives the value of the response R from the authentication chip 2200 of the master unit as a response R P in S1805. Next, in S1806, it determines whether a value obtained by applying a function F to R P F and (R P) R Q are equal. If they are equal, the slave unit is determined to be a genuine product and the processing of the CPU 100 is terminated. Otherwise, it is determined that the handset is not genuine.
  • the CPU 2100 executes the processes of S1804 and S1805 after the processes of S1802 and S1803.
  • the processing of S1802 and S1803 may be performed after the processing of S1804 and S1805.
  • the authentication chip of the slave unit includes two authentication chips 4300_1 of the slave unit 1 and 4300_2 of the slave unit 2, and functions as a function acting on the response generated by the response generation circuit 324. Is prepared.
  • FIG. 1 An authentication chip 4200 is connected to the parent device, and two authentication chips 4300_1 and 4300_2 are connected to the child device.
  • the challenge, response, and secret key are all 128 bits.
  • Function FS , C as parameter XOR addition Is used.
  • FIG. 25 is a diagram illustrating a flowchart of processing executed by the CPU 1100 of the system 50 according to the present embodiment.
  • CPU 100 determines the slave number i to be authenticated in S2001, and proceeds to S2002.
  • i 1 or 2.
  • a random number is generated for use as challenge C.
  • the challenge C generated in S2002 is transmitted to the authentication chip 4300_i of the i-th child device determined in S2001.
  • the authentication chip 4300_i of the i-th child device receives the challenge C transmitted by the CPU 1100 of the parent device in S2051.
  • the output value R Enc (C, K) as a response is obtained.
  • the number of conversion repetitions t i is determined based on the address information stored in the internal nonvolatile memory 340.
  • t i times the response R function F S, the action of C.
  • the function F S, C depends on the shared value S and the challenge C.
  • 0 is substituted into a dummy variable j that is an integer in S2054.
  • the value of the dummy variable is incremented 1 at S2055, compares j and t i at S2056.
  • J is t smaller than i function to the current response values at S2057 F S at S2056, it reacted with C, and updates the response value, the flow returns to S2055. If j is greater than t i in S2056 to send the value of the current response R to CPU 1100, and ends the processing of the authentication chip 1300_i of the i-th slave unit.
  • CPU1100 receives the value of the response R as a response R Q from the verifying chip 4300_i of the i-th slave unit at S2004.
  • step S2005 the challenge C is transmitted to the authentication chip 4200 of the parent device this time.
  • CPU1100 receives the value of the response R from the authentication chip 4200 of the master unit as a response R P in S2006. Next, in S2007, it determines whether R Q is equal to F S, C t0-ti ( R P). If they are equal, the i-th slave is determined to be a genuine product and the processing of the CPU 1100 is terminated. Otherwise, it is determined that the i-th slave is not a regular product, and the processing of the CPU 1100 is terminated.
  • FIGS. A system 60 according to a seventh embodiment of the present invention will be described with reference to FIGS.
  • An authentication chip 5200 is connected to the parent device, and two authentication chips 5300_1 and 5300_2 are connected to the child device.
  • the challenge, response, and secret key are all 128 bits.
  • Function F S, the parameter with remainder calculation as C F S, C a (X) (S
  • q (X) is a 128-bit irreducible polynomial.
  • step S2201 the CPU 2100 generates a unique eigenvalue I for each CPU using the random number generated in the CPU 2100, the current time, the CPU ID, the serial number, and the like.
  • step S2202 the eigenvalue I is transmitted to the authentication chip (authentication chip 0) 5200 of the parent device.
  • step S2251 the base unit authentication chip 5200 receives the eigenvalue I from the CPU 2100 via the bus 400.
  • the eigenvalue I is written in the non-volatile memory 2232 of the authentication chip 5200, and the process proceeds to S2253.
  • a response is transmitted to the parent device. This response is information with which the processing of S2252 can be confirmed, such as a result of comparing the value written in the nonvolatile memory 2232 and the eigenvalue I, for example.
  • the CPU 2100 receives the response from the authentication chip 5200 of the parent device in S2203.
  • step S2204 if the response from the authentication chip 5200 of the parent device received in step S2203 indicates that the writing operation of the eigenvalue I in the authentication chip 5200 of the parent device has been normally performed, the CPU 2100 performs step S2205. Then, the eigenvalue I is written in the nonvolatile memory 2160 of the CPU 2100, and the processing of the CPU 2100 is terminated.
  • the determination in S2204 indicates that the response from the authentication chip 5200 of the parent device received in S2203 indicates that the writing operation of the eigenvalue I in the authentication chip 5200 of the parent device has not been performed normally.
  • the CPU 2100 ends in error.
  • FIG. 30 is a flowchart of processing executed by the CPU 2100 when authenticating the parent device including the authentication chips (authentication chips to 2) 5200, 5300_1, and 5300_2 and the i-th child device in the system 60 according to the present embodiment.
  • CPU 2100 determines the slave number i to be authenticated in S2301, and proceeds to S2302.
  • S2302 a random number is generated for use as challenge C.
  • the challenge C generated in S2302 is transmitted to the authentication chip 5300_i of the i-th slave device determined in S2301.
  • the authentication chip 5300_i of the i-th child device receives the challenge C transmitted by the CPU 2100 of the parent device in S2351.
  • the number of conversion repetitions t i is determined based on the address information stored in the internal nonvolatile memory 340.
  • t i times the response R function F S, the action of C.
  • the function F S, C depends on the shared value S and the challenge C.
  • 0 is substituted into a dummy variable j that is an integer in S1654.
  • the value of the dummy variable is incremented 1 at S2355, compares j and t i at S2356.
  • Function F S to the current response value j is at S2357 is smaller than t i in S2356, by the action of C, and updates the response value, the flow returns to S2355.
  • Be smaller j is than t i in S2356, the process proceeds to S2358.
  • S2358 it is determined whether the currently authenticated chip is the parent device. In this case, since the authentication chip is not of the parent device, the current response R value is transmitted to the CPU 2100, and the processing of the authentication chip 5300_i of the i-th child device is terminated.
  • CPU2100 receives the value of the response R from the authentication chip 2300_i of the i-th slave unit as a response R Q at S2304. Next, in step S2305, challenge C is transmitted to the authentication chip 5200 of the parent device this time.
  • the authentication chip 5200 of the parent device performs the same processing as the authentication chip 5300_i of the previous i-th child device, but the number of times the functions F S and C are applied is different from the case of the authentication chip 5300_i of the i-th child device. It is t 0 and is different from t i, and it is determined in S2358 whether the currently authenticated chip is the parent device. In this case, since it is the parent device, the process proceeds to S2359. In s2359, using the eigenvalues I and G I calculating circuit 2230 calculates the G I (F S, C 2 -ti (R Q)).
  • CPU2100 receives the value of the response R from the authentication chip 2200 of the master unit as a response R P in S2306. Next, it is determined whether R P is equal to G I (F S, C 2 -ti (R Q)) in S1607. If they are equal, the i-th slave is determined to be a genuine product and the processing of the CPU 2100 is terminated. Otherwise, it is determined that the i-th slave is not a regular product, and the processing of the CPU 2100 is terminated.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

親機を制御するプロセッサが子機を認証する方法であって、乱数を生成し;前記乱数を前記親機認証チップおよび前記子機認証チップに送信し;前記親機認証チップに記憶された整数および前記乱数に対して暗号化関数を作用させて生成された出力値に、前記親機認証チップに設定された値で決まる第1の変換関数を作用させて得られる第1のレスポンス値を前記親機認証チップから受信し;前記子機認証チップに記憶された前記整数および前記乱数に対して暗号化関数を作用させて生成された前記出力値に、前記子機認証チップに設定された値で決まる第2の変換関数を作用させて得られる第2のレスポ ンス値を前記子機認証チップから受信し;前記第1のレスポンス値に、前記親機認証チップに設定された値と前記子機認証チップに設定された値の大きさの差の数で決まる第3の変換関数を作用させて得られる値と前記第2のレスポンス値を比較して前記子機を認証する方法。

Description

共通鍵暗号を用いた認証システム
 本発明は、共通鍵暗号による電子デバイスの認証装置および方法に関し、特に共通鍵暗号機能を備えた組み込み機器の偽造防止を行うための認証システム技術に関するものである。
 プリンタカートリッジや医療機器の分野で、正規品と偽造品を区別するために、認証機能を持つ組み込み機器を用いることで、粗悪な偽造品により発生する被害から顧客を守ることができる。すなわち、認証機能を持つ組み込み機器の偽造品を防ぐことが、製品を利用する顧客の利益を守ることに直結するため、認証機能を持つ組み込み機器の偽造防止は、産業上の非常に重要な課題である。
 認証においては、暗号方式がコア機能として使用される。暗号方式は、公開鍵暗号方式と共通鍵暗号方式に大別される。公開鍵暗号方式とは、暗号化と復号で異なる鍵を用いる方式であり、暗号化を行うための鍵(公開鍵)を一般に公開する代わりに、暗号文を復号するための鍵(秘密鍵)を受信者のみの秘密情報とすることで安全性を保つ方式である。これに対し、共通鍵暗号方式と呼ばれるものは、暗号化と復号で同一の鍵(秘密鍵)を用いる方式であり、この秘密鍵を送信者と受信者以外の第三者にわからない情報とすることで安全性を保つ方式である。いずれの暗号方式を用いた場合でも、秘密鍵が外部に漏洩しないことがセキュリティ上の大きな前提となる。この前提が守られる限りは、公開鍵暗号、共通鍵暗号のいずれを用いた認証も安全となるが、共通鍵暗号の方が公開鍵暗号より回路規模が小さく、低コスト化には適しているため、特に組み込み機器においては共通鍵暗号を用いた認証が広く普及している。
 セキュリティ機能を備えた組み込み機器に求められる性質として、耐タンパ性と呼ばれるものがある。耐タンパとは、覗き見防止の意味であり、組み込み機器の内部に格納されている秘密鍵等の重要情報を、外部から不正に漏洩させるのが困難な性質をさす。耐タンパ性を実現するためには、組み込み機器が備える正規の入出力端子からのアクセスによる情報漏洩防止はもちろんのこと、マイクロプローブを用いて内部回路を直接覗き込む非正規アクセスに対する情報漏洩防止も実現しなければならない。通常のICチップのハードウェア構成では、マイクロプローブを用いて内部回路を直接覗き込む攻撃に耐えることはできない。よって、耐タンパ性を実現するには、外部からの物理的・論理的な不正アクセスを防ぐための専用のハードウェア構成をもったICチップとして製造する必要がある。
 安全な認証を実現するための一般的な方法としては、耐タンパ性をもつ認証機器に対して、機器製造時に認証に用いる秘密鍵を内部に書き込み、製造後は鍵を外部に取り出さない方法が用いられる。こうすることで、不正な第三者が秘密鍵を入手し、認証機器の偽造を防止することができる。耐タンパ性をもつ認証機器に対して、秘密鍵を書き込み、鍵を外部に取り出すことがない状態で、認証機器間で認証プロトコルを実行することで、安全な認証を実現し、粗悪な偽造品により発生する被害から顧客を守ることができると考えられている。
 共通鍵暗号を用いた認証において、秘密鍵が外部に漏洩しない、生産コストを削減する、通信トポロジをなるべく簡素にするという3つの制約下での安全な認証を実現するのは困難であり、これらの制約下でも偽造品をふせぐ安全でコンパクトな認証プロトコルおよびシステムが望まれている。
 親機認証チップを含む親機を制御するプロセッサが子機認証チップを含む子機を認証する方法は:乱数を生成することと;前記乱数を前記親機認証チップおよび前記子機認証チップに送信することと;前記親機認証チップに秘密鍵として記憶された整数および前記乱数に対して暗号化をするための暗号化関数を作用させて生成された出力値に、前記親機認証チップに設定された値で決まる第1の変換関数を作用させて得られる第1のレスポンス値を前記親機認証チップから受信することと;前記子機認証チップに秘密鍵として記憶された前記整数および前記乱数に対して暗号化をするための暗号化関数を作用させて生成された前記出力値に、前記子機認証チップに設定された値で決まる第2の変換関数を作用させて得られる第2のレスポンス値を前記子機認証チップから受信することと;前記第1のレスポンス値に、前記親機認証チップに設定された値と前記子機認証チップに設定された値の大きさの差の数で決まる第3の変換関数を作用させて得られる値と前記第2のレスポンス値を比較して、または前記第2のレスポンス値に前記第3の変換関数を作用させて得られる値と前記第1のレスポンス値を比較して、前記子機を認証すること、を含む。
 また、本発明に従う認証システムは:乱数を生成する乱数生成手段と、前記乱数を前記親機認証チップおよび前記子機認証チップに送信する乱数送信手段と、前記親機認証チップおよび前記子機認証チップから、前記乱数に対する応答として第1のレスポンス値および第2のレスポンス値を受信するレスポンス値受信手段と、前記第1のレスポンス値および前記第2のレスポンス値を用いて、前記子機を認証する子機認証手段を含むプロセッサと;前記乱数を受信する第1の乱数受信手段と、秘密鍵としての整数を記憶する第1の記憶手段と、前記乱数および前記整数に暗号化のための暗号化関数を作用させて出力値を生成する第1の暗号演算手段と、前記出力値に、第1の設定された値で決まる第1の変換関数を作用させて前記第1のレスポンス値を生成する第1のレスポンス値生成手段と、を含み、前記プロセッサに接続されている親機認証チップと;前記乱数を受信する第2の乱数受信手段と、秘密鍵としての整数を記憶する第2の記憶手段と、前記乱数および前記整数に暗号化のための暗号化関数を作用させて出力値を生成する第2の暗号演算手段と、前記出力値に、第2の設定された値で決まる第2の変換関数を作用させて前記第2のレスポンス値を生成する第2のレスポンス値生成手段と、を含み、少なくとも前記プロセッサに接続されている子機認証チップと、を含み、前記プロセッサの前記子機認証手段は、前記第1のレスポンス値に、前記第1の設定された値と前記第2の設定された値の大きさの差の絶対値で決まる第3の変換関数を作用させて得られる数と前記第2のレスポンス値を比較して、または前記第2のレスポンス値に前記第3の変換関数を作用させて得られる数と前記第1のレスポンス値を比較して、前記子機を認証すること、を特徴とする。
 また、本発明に従う認証チップは:整数である秘密鍵を記憶するメモリと;整数を受信する受信手段と;前記整数および前記秘密鍵に暗号化のための暗号化関数を作用させて生成された出力値に、変換関数を作用させて得られるレスポンス値を生成するレスポンス値生成手段と;前記レスポンス値を送信する送信手段、を含む。
 親機と子機に同一の値をチャレンジとして送信しても、レスポンスとして返ってくる値が異なるので、安全性が高く、安価に製造可能で、外部装置との通信機能が簡素な認証システムを得ることが出来る。
チャレンジアンドレスポンス認証プロトコルの概要である。 共通鍵暗号を用いたチャレンジアンドレスポンス認証のプロトコルである。 認証システムにおける、親機・子機側の実装形態の種類を示す図である。 形態3をベースとした、通信トポロジの形態の種類を示す図である。 形態3とトポロジ3の組み合わせ例(I2Cバス)を示す図である。 チャレンジアンドレスポンスプロトコルを示す図である。 盗聴を利用した攻撃法を示す図である。 改ざんを利用した攻撃法を示す図である。 本発明の第1の実施形態に従うシステムを示す図である。 本発明の第2の実施形態に従うシステムを示す図である。 本発明の第2の実施形態に従うシステムのCPUで実行される処理のフローチャートを示す図である。 本発明の第2の実施形態に従うシステムの認証チップで実行される処理のフローチャートを示す図である。 本発明の第3の実施形態に従うシステムを示す図である。 本発明の第3の実施形態に従うシステムのCPUで実行される処理のフローチャートを示す図である。 本発明の第3の実施形態に従うシステムの認証チップで実行される処理のフローチャートを示す図である。 本発明の第4の実施形態に従うシステムを示す図である。 本発明の第4の実施形態に従うシステムで、認証チップ0をCPUに装着する際にCPUで実行される処理のフローチャートを示す図である。 本発明の第4の実施形態に従うシステムで、認証チップ0をCPUに装着する際に認証チップ0で実行される処理のフローチャートを示す図である。 本発明の第4の実施形態に従うシステムで、認証チップiを含むi番目の子機を認証する際に、CPUで実行される処理のフローチャートを示す図である。 本発明の第4の実施形態に従うシステムで、認証チップiを含むi番目の子機を認証する際に、認証チップiで実行される処理のフローチャートを示す図である。 本発明の第5の実施形態に従うシステムを示す図である。 本発明の第5の実施形態に従うシステムのCPUで実行される処理のフローチャートを示す図である。 本発明の第5の実施形態に従うシステムの認証チップ0で実行される処理のフローチャートを示す図である。 本発明の第6の実施形態に従うシステムを示す図である。 本発明の第6の実施形態に従うシステムのCPUで実行される処理のフローチャートを示す図である。 本発明の第6の実施形態に従うシステムの認証チップ0で実行される処理のフローチャートを示す図である。 本発明の第7の実施形態に従うシステムを示す図である。 本発明の第7の実施形態に従うシステムで、認証チップ0をCPUに装着する際にCPUで実行される処理のフローチャートを示す図である。 本発明の第7の実施形態に従うシステムで、認証チップ0をCPUに装着する際に認証チップ0で実行される処理のフローチャートを示す図である。 本発明の第7の実施形態に従うシステムで、認証チップiを含むi番目の子機を認証する際に、CPUで実行される処理のフローチャートを示す図である。 本発明の第7の実施形態に従うシステムで、認証チップiを含むi番目の子機を認証する際に、認証チップiで実行される処理のフローチャートを示す図である。
 以下で図面を参照しながら、本発明に従う共通鍵を用いた認証システムを説明する。最初に比較例を説明するが、その後、本発明の第1から第7の実施形態を、比較例に対する利点を含めて説明する。尚、以下の説明において、複数の図面にわたり類似の構成要素または類似の機能を有する構成要素には、類似の参照符号を付して初出時以外、詳細な説明を省略する。
(比較例)
 共通鍵暗号を用いて第一の装置が第二の装置を認証するシステムについて説明する。実施の形態における説明では、認証を行う側である第一の装置を「親機」、認証される側である第二の装置を「子機」と適宜称して説明する。親機はCPU100と親機認証チップ200を含み、子機は認証チップ300を含むシステムについて、秘密鍵が外部に漏洩しない、生産コストを削減する、通信トポロジをなるべく簡素にするという3つの制約の下で考えられるシステムについて説明する。
 認証チップにおいては、機器の正当性を確認するために、チャレンジアンドレスポンス認証プロトコルと呼ばれる通信プロトコルが利用されている。図1はチャレンジアンドレスポンス認証プロトコルの概要である。チャレンジアンドレスポンス認証とは、デジタル情報を用いた合言葉であり、認証を行う側(親機)から認証される側(子機)に対し、「チャンレジ」と呼ばれる乱数を送信する。これに対し、子機側では「チャンレンジ」に対して「レスポンス」と呼ばれる応答を生成し、親機に返信する。親機は、「チャレンジ」に対する「レスポンス」の値を判断し、もし正しいならば、子機が正当な機器であると判断する。
 「チャレンジ」として乱数を用いることで、対応する「レスポンス」が毎回変化する。これにより、再送攻撃に対する防止措置が実現される。再送攻撃とは、過去に外部から観察された応答を繰り返すことで、正当な機器の成りすましを行う攻撃である。つまり、乱数を用いない場合、チャンレジとレスポンスのペアが完全に固定値になるため、攻撃者がこのペアを観察することで、チャレンジに対応する適切なレスポンスを知ることができ、このレスポンスを返すチップを製造することでチップ偽造が容易となるからである。例えるならば、「山」に対する「川」という合言葉しか用いないシステムであることを、悪意のある第三者が知ることができれば、常に「川」と応答することで成りすましが可能となる。
 「チャレンジ」に対する「レスポンス」の生成は、暗号関数を用いた方法が一般的である。どの暗号関数を用いるかによってメリットとデメリットがあるが、認証チップの場合、回路規模の小ささを優先できるメリットがある共通鍵暗号を用いる方法が広く用いられている。
 図2は、共通鍵暗号を用いたチャレンジアンドレスポンス認証のプロトコルである。
 図2に示すプロトコルでは、親機と子機の認証チップ間で、秘密鍵Kを事前共有している。これは、チップの製造時に秘密鍵Kの値を書き込むことで実現できる。この値が外部に漏洩しないことがセキュリティ上の重要な前提である。S100で、認証を行う側の親機は、乱数Cを生成し、認証される側の子機に送信する。この乱数Cは、「チャレンジ」と呼ばれる。S110で、子機は、受け取ったチャレンジCに対し、秘密鍵Kによる暗号化処理を実行し出力値R=Enc(C、K)を得る。そして、出力値Rを「レスポンスR」として、親機に返信する。ただし、b=Enc(a、K)とは、共通鍵暗号を用いて、平文aを鍵Kにより暗号化した結果が暗号文bであることを表す。S120では、子機からのレスポンスRを受け取った親機は、子機と同様に、秘密鍵Kによる暗号化処理を実行し出力値R=Enc(C、K)を得て、レスポンスの正解値R=Rを得る。子機からのレスポンスRが正解値R=Rと一致するならば、親機は子機を正当な機器と認定する。チャレンジCに対応した正当なレスポンスRを生成できるのは、秘密鍵Kを有する場合に限られるので、親機は子機の正当性を確認することができる。
 たとえば、図2に示されているような、チャレンジアンドレスポンスプロトコル自体は、理論上は安全な認証プロトコルである。しかし、現実世界の認証には制約があるため、安全にならない可能性が残される。特に、以下の3つの制約下での安全な認証を実現するのは困難であり、これらの制約下でも偽造品をふせぐことができる安全な認証プロトコル(システム)の実現が望まれている。
制約1:秘密鍵が外部に漏洩しないこと
制約2:生産コストの制約
制約3:通信トポロジの制約
 制約1の秘密鍵が外部に漏洩しないことは、耐タンパ性を有する認証チップを用いることで実現可能である。制約2の生産コストの制約については、認証チップの親機・子機側を同一のハードウェア構成とすることで、認証チップの生産コストを低く抑えることができる。制約3の通信トポロジの制約は、低コスト向けの機器では、通信形態(トポロジ)をなるべく簡素なものとする必要があることに由来する。本発明に従うシステムでは、制約1、2、3の下でも、認証機器を偽造不可能な認証プロトコル(システム)を実現することができる。特に、制約1は、一般的に知られている耐タンパ技術を用いることで解決可能である。しかし制約2および3の下では、従来技術を用いただけでは安全な認証を実現することはできない。
 制約2により認証チップの実装形態が決定し、制約3によって通信トポロジが決定する。これらの決定された組み合わせが、認証の安全性を脅かす要因となることがある。最初に、図3を参照しながら、制約2により決定される認証チップの実装形態について説明する。
 認証システムにおける、親機、子機側の実装形態の種類を図3に示す。認証システムの基本要件は以下の通りである。
-親機と子機から構成される。
-親機と子機それぞれに、認証チップまたはCPUが装着される。ただし、親機側には全体の機能管理を行うためのコントローラとしてのCPUが必ず装着される。
-親機と子機に装着された認証チップもしくはCPUが通信を行い、認証プロコトルを実行することで、子機が正規品であるかどうかを親機側が判定する。
-子機が正規品であると親機側が判定した場合、親機側のCPUが子機のリソースを親機のために利用することを許可する。例としては、プリンタカートリッジの場合、親機のプリンタが子機のインク使用を許可すること、医療機器の場合、親機の機器が子機のオプション機器使用を許可することを含む。このように、チャレンジアンドレスポンスプロトコルでは、不正を防ぐためには、鍵の値が外部に漏れないことが前提であり、固定鍵による暗号化、復号処理は、サイドチャンネル攻撃で狙われる可能性がある。
 このシステムの実装形態として、図3に示されるように、以下の形態1~3が考えられる。
形態1:親機側をCPU100、子機側を認証チップ300により実装する。
形態2:親機側を、認証チップ内蔵型のCPU100’、子機側を認証チップ300により実装する。
形態3:親機側をCPU100と認証チップ200の組み合わせ、子機側を認証チップ300により実装する。
 形態1では、親機はCPU100を含み、子機は認証チップ300を含む。子機に含まれる認証チップ300は、通信制御部301、暗号回路302および秘密鍵を記憶するメモリ303を含む。通信制御部301はプロセッサ外部との通信を処理し、プロセッサとして実装されても良い。暗号回路302は入力(たとえばチャレンジ)に対して、暗号化関数を作用させて、レスポンス(応答)として出力値を生成するもので、専用の回路であっても、汎用コンピュータとして実装されても良い。秘密鍵は暗号回路302から読み出され、メモリ303に記憶され得るが、メモリ303は不揮発性であることが好ましい。認証プロトコルとして共通鍵暗号を用いた場合、親機のCPU100に秘密鍵を書き込む必要がある。この秘密鍵の値は、すべての親機、子機を通じて製品に共通の鍵であるため、耐タンパ性がないCPU100から秘密鍵が漏洩する可能性が高く、偽造が容易となる。すなわち、制約1が満たされない。
 形態2では、親機は認証チップ200’を含む認証チップ内蔵型CPU100’を含む。認証チップ200’は、CPUに内蔵されている点で、以下で述べる認証チップ200と異なるが構成は同一である。すなわち、認証チップ200’は、認証チップ300の通信制御部301、暗号回路302および秘密鍵を記憶するメモリ303と同一である通信制御部201、暗号回路202および秘密鍵を記憶するメモリ203を含む。子機は形態1と同様である。本形態では、耐タンパ機能を備えた認証チップ200’をCPU100’に内蔵することで、CPUからの秘密鍵漏洩リスクが消えるため、制約1を満たす。しかし、親機側が認証チップ内蔵型のCPU100’、子機側が通常の認証チップ300であるため、制約2が満たされない。
 形態3では、親機はCPU100および認証チップ200を含み、子機は認証チップ300を含む。本実施形態では、親機、子機ともに耐タンパ機能を備えた認証チップ200、300を用いるため、制約1を満たす。さらに、親機、子機共に、同一の認証チップを用いるため、制約2を満たす。
 そこで、形態3をベースとした、通信トポロジの形態の種類を図4に示す。
 トポロジ1のブリッジ型は、親機側の認証チップから、親機CPUと子機認証チップそれぞれに対し別々に通信線を結ぶ形式である。親機認証チップに2つの通信ポートが必要とされる(同じハードウェア構成である子機認証チップにも2つの通信ポートが必要)ため、低コストに向かない。すなわち、制約3が満たされない。
 トポロジ2のハブ型は、親機に含まれるCPU100から、親機の認証チップ200と子機の認証チップ300それぞれに対し別々に通信線を結ぶ形式である。CPUに2つの通信ポートが必要とされるため、低コストに向かない。すなわち、制約3が満たされない。
 トポロジ3のシリアルバス型は、親機に含まれるCPU100、親機の認証チップ200および子機の認証チップ300の全てを、共有する通信線でバス状に接続する形式である。親機のCPU100、親機の認証チップ200、および子機の認証チップ300の全ての通信ポートが1つで良いため、低コストに向く。すなわち、制約3を満たす。
 すなわち、形態3をベースにシリアルバス型の接続を行うのが、上記制約1、2、3を満たすための好適な形態である。
 しかし、これらの制約を満たしても、以下のようなセキュリティ上の問題が発生することがある。
 図5は、形態3とトポロジ3の組み合わせ例を示す図である。シリアルバスI/Fとしては、多様な種類が知られているが、図5ではI2Cバス400によって、CPU101、親機の認証チップ200、および子機の認証チップ300がバス接続されている。I2Cバス400は、データ線420とクロック線440の2線により、全ての機器が接続されている。I2Cバス400は、2線の通信線1本のみを用いて複数の機器を接続可能、というメリットがある反面、全機器が一本の線でつながっているため、データの盗聴や改ざんが容易という問題があることが知られている。
 図6~8を用いてセキュリティ上の問題について説明する。
 I2Cバス上のデータの盗聴や改ざんが容易である、という性質を利用すると、図5に示した通信トポロジ上で、図2に示したチャレンジアンドレスポンスプロトコルをそのまま実行すると、図6に示されるような状態となる。
 図6では、CPU100が親機の認証チップ200および子機の認証チップ300それぞれにバス400を介してチャレンジCを送信し、子機の認証チップ300からのレスポンスRQと、親機の認証チップ200からのレスポンスRを比較し、RとRが一致したならば、CPU100は子機の認証チップ300を含む子機が正規品であると判断する。CPU100がチャレンジCを送信する順序を、子機の認証チップ300を含む子機から開始するか、親機の認証チップ200を含む親機から開始するかに応じて、2通りの方法が存在する。
 親機に先にチャレンジCを送信する場合、CPU100は、バス400を介して、親機の認証チップ200にチャレンジCを出力する。親機の認証チップ200は、通信制御部201、暗号回路202、鍵203を含み、CPU100から出力されたチャレンジCは、通信制御部201で受信される。その後、チャレンジCは、暗号回路202に入力され、暗号回路202では、鍵203を用いて、レスポンスRを得る。このレスポンスRはバス400を介して、CPU100に送られる。次に、CPU100は、バス400を介して、子機の認証チップ300にチャレンジCを出力する。チャレンジCは、子機の認証チップ300の通信制御部301で受信され、その後、子機の認証チップ300の暗号回路302に入力される。暗号回路302では、チャレンジ及び鍵303と暗号化関数を用いて、レスポンスRを得る。このレスポンスRは、バス400を介して、CPU100に送られる。親機からのレスポンスRと、子機からのレスポンスRを受け取ったCPU100は、両者を比較し、一致すれば子機は正規品と判定する。
 子機に先にチャレンジCを送信する場合は、CPUはまず、子機の認証チップ300にチャレンジCを出力し、子機の認証チップ300からレスポンスRを得たのち、親機の認証チップ200にチャレンジCを出力し、親機の認証チップ200からレスポンスRを得る。その後、両者を比較し、一致すれば子機は正規品と判定する。
 子機が正規品である限りは、子機の認証チップ300を含む子機から認証を開始しても、親機の認証チップ200を含む親機から認証を開始しても問題はない。
 しかし、発明者独自の分析により、図6のプロトコルの安全性評価を行った結果、上の2通りの方法に対して異なる攻撃法1、2で、I2Cバス400上の通信データの盗聴・改ざんを利用することで、秘密鍵を知らなくとも偽造品の製造が可能であることが判明した。以下に、図7、8を参照しながら、攻撃法1、2を説明する。
(攻撃法1)
 図7は、図6のプロトコルに対して、I2Cバス400上の盗聴を用いた場合の攻撃法である(以下、攻撃法1と呼ぶ)。攻撃対象は、親機の認証チップ200を含む親機、子機の認証チップ300を含む子機の順にレスポンスを生成する場合のプロトコルである。子機の認証チップ300が正規品の場合、CPU100は親機、子機からのレスポンスR、Rをこの順番で受信し、正規品の判定を行う。これに対し、偽造品である子機の認証チップは、次のように振舞う。偽造認証チップ300’は、I2Cバス400を通じて、親機がCPU100に返信するレスポンスRを観察し、偽造認証チップ300’の(図示されていない)内部レジスタに格納する。次に、CPUから子機へのチャレンジCが送信されるので、これに対して盗聴により観察されたRをそのまま子機のレスポンスRとして返す。こうすることで、CPUは同一のレスポンスを受け取るため、RとRが一致し、CPU100は偽造認証チップを正規品と判定してしまう。このように攻撃法1では、偽造認証チップは、I2Cバス上のデータを単純に盗聴すればよいため、秘密鍵の値を知らなくとも攻撃が成功する。
(攻撃法2)
 図8は、図6のプロトコルに対して、改ざんを用いた場合の攻撃法である(以下、攻撃法2と呼ぶ)。攻撃対象は、子機、親機の順にレスポンスを生成する場合のプロトコルである。子機の認証チップ300が正規品の場合、CPU100は子機、親機からのレスポンスR、Rをこの順番で受信し、正規品の判定を行う。これに対し、偽造品である子機の認証チップ300’は、次のように振舞う。偽造認証チップ300’は、適当な値Xを生成し、CPU100からのチャレンジCに対するレスポンスRとして返信する。このXはどんな値でも良い。次に、認証チップ300’を含む子機はI2Cバス400上のデータを盗聴し、CPU100から親機の認証チップ200を含む親機へのチャレンジCが入力されたならば、先ほど生成した値Xを親機認証チップ200の代わりに返信する(成りすまし)。この成りすましは、偽造認証チップ側の通信処理タイミングが非常にシビアであるが、原理的には可能である。このタイミング制御のシビアさを攻撃者が回避する手法としては、CPU100と親機の認証チップ200の間の通信線400を切断する方法が挙げられる。親機側の回路の物理改変が必要となるが、この攻撃法2を用いることで、子機によるなり済ましを容易にすることができ、偽造品を正規品と誤認させることができる。
 上述のように、比較例では、親機からのレスポンスRと子機からのレスポンスRが同じであるかどうかで認証の成否を判断しており、盗聴をする攻撃法1、成りすましをする攻撃法2等を用いることによって、認証の安全性が脅かされるおそれがある。
 以下では、上記制約1、2、3を満たす形態3をベースにシリアルバス型の接続を行ったシステムであって、認証の安全性が改善されたシステムについて説明する。
(第1実施形態)
 図9を参照して、本発明の第1実施形態に従う共通鍵暗号を用いた認証システムを説明する。本実施形態は本発明の基本的実施形態でもある。本実施形態では、制約1、2、3を満たす図6のプロトコルは、上記攻撃法1、攻撃法2に脆弱である、という問題に対し、攻撃法1、2に対しても安全な認証を実現するコンパクトなシステムを実現することができる。
 本発明の第1実施形態に従うシステムを図9に示す。上記比較例では、親機認証チップ、子機認証チップともに、同一のレスポンスを返信していたため、盗聴や成りすましによる攻撃が容易であった。これに対し、本実施形態では、チャレンジに対してレスポンスを生成するレスポンス生成部を認証チップ内で複数準備し、いずれのレスポンス生成部を用いるかを、親機および子機に含まれる認証チップ内部の不揮発性メモリに格納されている情報に基づいて選択することを特徴とする。この情報は、同一ハードウェア構成を持つ親機および子機の認証チップが、自分自身が親機側か、子機側の認証チップであるかを識別するために用いられる情報であり、一般的にはI2Cバスのアドレス情報であって良い。すなわち、I2Cアドレスにより、認証チップが親機であるか、子機であるかが決定される。このアドレス情報が子機側であった場合、子機は通常のレスポンス(出力値と呼ぶ)R=Enc(C、K)を返信する。これに対し、アドレス情報が親機側であった場合、親機側は通常のレスポンス、すなわち出力値を関数Fで変形させたレスポンスR=F(Enc(C、K))を生成する。ただし、関数Fは外部に対して非公開の関数である。これらのレスポンスR、Rを受け取ったCPUはRから計算されたF(R)がRに等しいか判定を行い、もし等しいならば子機が正規品であると判断する。正規品によるレスポンスならば、F(R)=F(Enc(C、K))=Rであり等しい値となる。外部非公開の関数Fによりレスポンスが変形されているため、攻撃1、攻撃2に示したような方法を用いて、親機および子機のレスポンス値RおよびRが同一とするような、CPUに対して偽装する攻撃は通用しないため、安全な認証を実現することができる。
 図9に示されているように、本実施形態に従うシステムは、親機によって子機を認証するシステムであって、親機に含まれるCPU100および親機の認証チップ200、子機に含まれる子機の認証チップ300、ならびにCPU100、親機の認証チップ200および子機の認証チップ300を接続するバス400を含んでいる。CPU100、親機の認証チップ200および子機の認証チップ300はバス400を介してシリアルバス接続されている。バスインターフェイス(I/F)としては、I2Cバスを例示することができる。
 CPU100は、乱数であるチャレンジCを生成し、親機の認証チップ200および子機の認証チップ300に出力する。乱数は整数であることが望ましい。また、CPU100は、親機からのレスポンスRと子機からのレスポンスRを受ける。そして、CPU100は、子機からのレスポンスRに関数Fを作用させたF(R)とレスポンスRを比較して、子機の認証を行う。すなわち、CPU100は、親機からのレスポンスRと子機からのレスポンスRの差を補償する関数Fを記憶している。本実施形態では、親機の認証チップ200でレスポンスRに作用される関数Fと、CPUで子機からのレスポンスRに作用される関数Fは同一の関数である。
 乱数はCPU100に含まれる乱数生成手段で生成されても良い。乱数は整数であることが好ましい。チャレンジCの外部への出力(送信)は乱数送信手段によって行われても良い。レスポンスを受けること(受信)は、レスポンス値受信手段によって行われても良い。さらにCPU100は、親機からのレスポンスRと子機からのレスポンスRを比較し、子機が正規品かどうか判定する子機認証手段を含む。
 親機の認証チップ200および子機の認証チップ300は、上記制約2の観点からは同一の構造を有することが好ましい。認証チップ200、300はそれぞれ、第1のレスポンス生成部220a、320a、第2のレスポンス生成部220b、320b、レスポンス選択部230、アドレス情報保持部240、340を含む。
 第1のレスポンス生成部220a、320aは、暗号化関数を記憶し、従来のようにCPU100からの入力(チャレンジC)および鍵に暗号化関数を作用させてレスポンスとして出力値Rを生成する。暗号化関数は公知のもので良い。この第1のレスポンス生成部は、暗号演算手段とも呼ばれる。第2のレスポンス生成部220b、320bは、関数Fを記憶しており、CPU100からの入力(チャレンジC)および鍵に暗号化関数を作用させて得られた出力値Rに、さらに関数Fを作用させて、出力値Rとは異なる数F(R)を生成する。この第2のレスポンス生成部は、第1のレスポンス値生成手段とも呼ばれる。アドレス情報保持部240、340は個々の認証チップに固有のアドレスを記憶する不揮発性メモリであっても良い。親機の認証チップ200および子機の認証チップ300は、上記の構成要素のほかに、たとえばCPU100などの外部装置からの信号を受信したり、外部装置に信号を送信したりする(図示されていない)通信手段を含む。通信手段の例には、図10に示されているデータ入出力インターフェイス(I/F)260、360が含まれる。データ入出力インターフェイス(I/F)は、プロセッサ100で生成された乱数を受信する受信手段、またはレスポンス生成部で生成されたレスポンスをプロセッサ100に送信する送信手段として機能する。
 本実施形態では、鍵は共通鍵(秘密鍵とも呼ばれる)である。つまり、第1のレスポンス生成部220a、320aでは共通鍵暗号のアルゴリズムが実行される。レスポンス選択部230、330では、アドレス情報保持部240、340に記憶されたシリアルバスのアドレス値に応じてレスポンス生成部を選択する。第1のレスポンス生成手段と第2のレスポンス生成手段とでレスポンス値生成手段が形成される。
 上記では、子機の認証チップ300は、CPU100から入力されるチャレンジCに対して、通常のレスポンスR=Enc(C、K)を返すものとした。しかし、子機の認証チップ300も、Enc(C、K)にある関数Hを作用させたH(Enc(C、K))を返しても良い。この場合でも、CPU100が、親機からのレスポンスRと子機からのレスポンスRの差を補償する関数を記憶していれば、上記の認証方法は機能する。レスポンスRとRの差を補償する関数は、親機の認証チップ200のメモリ240に記憶されているアドレス情報と子機の認証チップ300のメモリ340に記憶されているアドレス情報から一意に決まることが好ましい。メモリ240、340はアドレス記憶手段を構成する。
 親機の認証チップ200および子機の認証チップ300は同一の構成であるが、親機の認証チップ200として用いられるものでは、第2のレスポンス生成部220bが、子機の認証チップ300として用いられるものでは、第1のレスポンス生成部320aが機能するように、出荷時に設定されてもよい。このように出荷時に設定されることによって、認証チップとしては同一のものを大量生産することができること、出荷時に設定するので高い安全性を確保できること、などの利点を得ることができる。
 このような構成を採用することによって、認証システム10は、仮にバス400がI2Cバスであっても、親機の認証チップ200からのレスポンスと子機の認証チップ300からのレスポンスが異なるため、認証の安全性を高めることができる。
 また、本実施形態では、親機の認証チップ200および子機の認証チップ300は同一の構成を有している。また、CPU100、親機の認証チップ200および子機の認証チップ300はI2Cバス接続されている。このような構成を採用することによって、各認証チップ200、300が外部との通信のために備える通信ポートは1つでよく、認証チップは、製造コストを抑えつつも、小型に製造することができる。
 また、各認証チップにおいて、変換関数は外部に対して非公開、即ち不揮発性メモリに記憶されている。従って、高い安全性を得ることができる。
(第2実施形態)
 図10から12を参照しながら、本発明の第2実施形態を説明する。
 本実施形態に従うシステム10では、親機に対して、最大n個の子機が接続されている。親機はCPU100と認証チップ(認証チップ0)200を備え、最大n個の子機はそれぞれ1個ずつの認証チップ(認証チップ1~n)300_1、...300_nを備える。nは任意の自然数であり、用途によっては子機側に複数の認証チップが接続される場合がある。例えば、インクカートリッジを4色用いる場合、子機はそれぞれの色に対して1個ずつの認証チップを有し、計4個の認証チップを備えることになる。それぞれの認証チップ300_1、...300_nは、同一ハードウェア構成を持ち、各チップ内部の不揮発性メモリ326にはシリアルバスのアドレス値が書かれている。このアドレス値は、シリアルバス上の通信エンティティを区別するために用いられる値であり、CPU100、認証チップ300_1、...300_nに対してユニークな値が与えられる。このアドレスのユニーク性は、図13のシリアルバス400に接続されている通信エンティティ間で保たれればよく、流通している全ての認証チップ固体間で異なる値である必要はない。
 親機のCPU100は、i番目の子機が正規品であるかの確認を行うために、認証チップ0および認証チップiそれぞれに対してチャレンジCを送信し、認証チップiからのレスポンスRと、認証チップ0からのレスポンスRの比較を行う。それぞれの認証チップは、n+1個のデータ変換手段を備える。それぞれの認証チップは、受信したチャレンジCからメモリ226に格納されている秘密鍵を用いてレスポンスRを生成するレスポンス生成回路224と、変換0~nの実行を行う演算部220a~n、変換関数のパラメータとしてのアドレス情報を記憶するメモリ240およびメモリ240に記憶されたアドレス情報を元に演算部220a~nから一つを選択するセレクタ223を含む。演算部220a~nはそれぞれ、変換0~nの変換関数を記憶している。
 i番目の認証チップが選択するデータ変換手段への入力をX、出力をYとすると、XとYの関係の例として、関数Fを用いてY=Fti(X)を例示することができる。ただし、Y=F(X)は、Xを関数Fに対してz回連続適用した結果である。例えばF(X)=X+1の場合、F(10)=F(10)=10+1=11、F(10)=F(F(10))=12、F(10)=14、F(10)=10、である。tはメモリ240に記憶されているアドレス情報から決まる定数であり、i番目の認証チップが用いる変換手段に対応する関数Fの繰り返し適用回数を表す。関数F(X)は外部に対して非公開の関数である1入力1出力関数ならばどのような関数でもよいが、ハードウェア実装を考慮すると、なるべく回路規模が小さいものであることが良く、例えば、以下の処理が望ましい。
(1)フィードバックシフトレジスタ(LFSR)によるシフト処理を定数ビット分繰り返す
(2)左1ビットのシフト後、2個の要素を有する拡大ガロア体上GF(2)上の特性多項式の剰余演算処理を定数ビット分繰り返す(mod)
(3)ハッシュ(Hash)関数
 上記(1)の例としては、
F(X)=LFSR(X、128)、
ただしLFSR(X、1)は、XをLFSR(線形フィードバックシフトレジスタ)処理により1ビットだけシフトした値、が含まれる。
 上記(2)の例としては、
F(X)=X64 mod q(X)、
ただしq(X)は128ビット既約多項式、modは剰余、を表す。
 上記(3)の例としては、
F(X)=SHA1(X)の最下位128ビット、
ただしSHA1(X)はXのSHA-1ハッシュ関数出力、である。
 もちろん、(1)~(3)の具体例は、上記関数に限定されない。
 変換手段の差異は、同一関数を繰り返す回数のみに関する差異であるため、認証チップでは関数Fを処理する回路のみ実装すればよく、n+1個の変換手段それぞれに対して異なる回路を実装する必要は無いため、製造コストを低く抑えることができる。
 認証チップ0と認証チップiからの応答RとRを受け取った親機CPU100は、これらのレスポンス比較を以下により行う。
>tの場合:Fti-t0(R)=Rなら正規品、そうでなければ偽造品と判定され、t<tの場合:R=Ft0-ti(R)なら正規品、そうでなければ偽造品と判定される。
 上記の比較が正しい理由は、正規品の場合、R=Ft0(R)、R=Fti(R)であり、もしt>tならば、Fti-t0(R)=Fti-t0(Ft0(R))=Fti(R)がRと一致するからであり、もしt<tならば、Ft0-ti(R)=Ft0-ti(Fti(R))=Ft0(R)がRと一致するからである。
 図10は本発明の第2の実施形態に従うシステム10を示す図である。本システム10は、図9に示されたシステムと同様、親機に含まれるCPU100および親機の認証チップ200、子機に含まれる子機の認証チップ300_1、...、300_n、ならびにCPU100、親機の認証チップ200および子機の認証チップ300を接続するバス400を含んでいる。CPU100、親機の認証チップ200および子機の認証チップ300はバス400を介してI2Cバスシリアルバス接続されている。
 親機に含まれる0番目の認証チップ200(以下、認証チップ0としても参照する)は、バス400を介してCPU100からの信号を受信したり、CPU100に信号を送信したりするデータ入出力インターフェイス(I/F)260、データ入出力I/F260で受信したチャレンジCに暗号化関数を作用させて、レスポンスとしての出力値Rを生成するレスポンス生成回路224、レスポンス生成回路224で生成された出力値Rに変換0~nを作用させる演算部222a~n、変換関数のパラメータとしてのアドレス情報を記憶するメモリ240およびメモリ240に記憶されたアドレス情報を元に演算部222a~nから一つを選択するセレクタ223を含む。セレクタ223はレスポンス選択部に相当する。レスポンス生成回路224には秘密鍵が記憶されているメモリ226が含まれている。図9のシステムは、本システムで子機の数が1つの場合であり、図9の第1のレスポンス生成部220aは、レスポンス生成回路224、変換0を行う演算部222a、およびセレクタ223に相当する。演算部220a~n、セレクタ223、レスポンス生成回路224、アドレス情報を記憶するメモリ240からレスポンス値生成手段が形成される。
 子機の認証チップ300_1、...、300_nも親機の認証チップ200と同様の構成をしている。すなわち、バス400を介してCPU100からの信号を受信したり、CPU100に信号を送信したりするデータ入出力インターフェイス(I/F)360、データ入出力I/F360で受信したチャレンジCに暗号化関数を作用させて、レスポンスとしての出力値Rを生成するレスポンス生成回路324、レスポンスRを生成するレスポンス生成回路324で生成されたレスポンスに変換0~nを作用させる演算部322a~n、変換関数のパラメータとしてのアドレス情報を記憶するメモリ340およびメモリ340に記憶されたアドレス情報を元に演算部322a~nから一つを選択するセレクタ223を含む。レスポンス生成回路324には秘密鍵が記憶されているメモリ326が含まれている。図9の第2のレスポンス生成部320bは、レスポンス生成回路324、変換1を実行する演算部322b、およびセレクタ323に相当する。演算部320a~nはそれぞれ、変換0~nの変換関数Fを記憶している。演算部320a~n、セレクタ323、レスポンス生成回路324、アドレス情報を記憶するメモリ340からレスポンス値生成手段が形成される。
 セレクタ223、323は、それぞれメモリ240、340に記憶されたシリアルバスのアドレス値に応じて変換関数を選択するレスポンス選択部としても機能する。
 バス400は本実施形態ではI2Cバスである。I2Cバスを用いることによって、CPUと認証チップの接続は簡素なものとすることができ、システム全体のコストを抑えることができる。
 図11は、本発明の第2の実施形態に従うシステム10のCPU100で実行される処理のフローチャートを示す図であり、図12は本発明の第2の実施形態に従うシステムの認証チップで実行される処理のフローチャートを示す図である。
 CPU100は、S1101で認証対象の子機番号iを決定し、S1102に進む。S1102では、チャレンジCとして用いるために乱数を生成する。S1102の次のS1103では、S1102で生成されたチャレンジCをS1101で決定されたi番目の子機の認証チップ300_iに送信する。
 i番目の子機の認証チップ300_iでは、S1151で親機のCPU100によって送信されたチャレンジCを受信する。次に、S1152では、認証チップ300_iのレスポンス生成回路324中の秘密鍵記憶部326に記憶されている秘密鍵KとチャレンジCを用いて、レスポンスとしての出力値R=Enc(C、K)を生成する。次のS1153では、内部不揮発性メモリ340に記憶されたアドレス情報を元に、変換の繰り返し回数tを決定する。繰り返し回数tは、たとえば、アドレスに現れる数を順に並べて作られる整数であっても良い。S1153に引き続くS1154からS1157では、レスポンスRにt回関数Fを作用させる。より詳細には、S1154で整数であるダミー変数jに0を代入する。S1155でダミー変数の値を1つ増加させ、S1156でjとtを比較する。S1156でjがtより小さければS1157で現在のレスポンス値に関数Fを作用させ、レスポンス値を更新して、S1154に戻る。S1156でjがtより大きければ現在のレスポンスRの値をCPU100に送信して、i番目の子機の認証チップ300_iの処理を終了する。
 CPU100は、S1104でi番目の子機の認証チップ300_iからのレスポンスRの値をレスポンスRとして受信する。次に、S1105でチャレンジCを今度は、親機の認証チップ200に送信する。
 親機の認証チップ200では、先のi番目の子機の認証チップ300_iと同じ処理を行うが、i番目の子機の認証チップ300_iの場合とは、関数Fを作用させる回数がtであり、tとは異なる。
 CPU100は、S1106で親機の認証チップ200からのレスポンスRの値をレスポンスRとして受信する。次に、S1107でtとtを比較し、tがtより大きければS1108に進み、そうでなければS1109に進む。S1108では、Rに関数Fを、t-t回作用させた値とRが等しいかどうかを判定する。もし等しければi番目の子機を正規品と判定してCPU100の処理を終了する。そうでなければ、i番目の子機を正規品ではないと判定する。S1109では、Rに関数Fを、t-t回作用させた値とRが等しいかどうかを判定してCPU100の処理を終了する。もし等しければi番目の子機を正規品と判定してCPU100の処理を終了する。そうでなければ、i番目の子機を正規品ではないと判定してCPU100の処理を終了する。
 このような構成を採用することによって、本実施形態のシステム10では、レスポンスR、Rが異なるため、攻撃法1、攻撃法2に示したような、盗聴及び改ざんによる攻撃を防ぐことができる。
(第3実施形態)
 図13~15を参照して本実施形態に従う認証システム20を説明する。図13は、本実施形態のシステム20を示す図、図14は、本実施形態に従うシステムのCPU1100で実行される処理のフローチャートを示す図であり、図15は本実施形態に従うシステム20の認証チップ1200、1300_iで実行される処理のフローチャートを示す図である。
 実施形態2に従うシステム10では、関数Fは非公開関数であっても、ハードウェア上で効率よい処理ができるFの種類は非常に限定的であるため、データ盗聴の結果から正しいFの内容が特定される可能性はなくはない。関数Fの内容が攻撃者に特定されたならば、攻撃1、攻撃2と同様の考え方に基づきつつ、関数Fにより変形されたレスポンスを返すように変更した攻撃法を用いることで、秘密鍵の値を知らなくとも偽造品を製造することが可能となる。本実施形態では、通信データの盗聴から変換手段を特定することがより困難なシステム20が提供される。
 本実施形態に従う子機認証システム20は、基本的には、第2実施形態のシステム10と同じであるが、事前共有された定数S(共有値S)が書き込まれている不揮発性メモリ1280、1380を認証チップ1300_1~1300_n(認証チップ1~認証チップn)が含んでいる。この定数Sは、CPU1100および認証チップ1200、1300_1~1300_nの製造時に書き込まれる値である。i番目の認証チップが選択するデータ変換手段への入力をX、出力をYとすると、XとYの関係は、関数FS,Cを用いてY=FS,C ti(X)と表すことができる。ただし、FS,C(X)は定数S、チャレンジCをパラメータとした1入力1出力関数を表し、例えば、以下のような演算が挙げられる。
(4)パラメータ付XOR加算
(5)パラメータ付剰余演算
(6)パラメータハッシュ演算
(7)パラメータ付LFSR-XOR減算 
 上記(4)の例としては
Figure JPOXMLDOC01-appb-M000001
が含まれる。
 上記(5)の例としては、||をビット結合、q(X)を128ビット既約多項式、modを剰余として、
S,C(X)=(S||C ||X) mod q(X)、
が含まれる。
 上記(6)の例としては、
Figure JPOXMLDOC01-appb-M000002
の最下位128ビット、が含まれる。
 上記(7)の例としては、
Figure JPOXMLDOC01-appb-M000003
が含まれる。
 (4)~(7)の具体例は、上記関数に限定されない。
 変換手段がチャレンジCと、外部から観察できない定数Sの影響を受けるため、変換のバリエーションが大きく増える。これにより、前述の通信データ盗聴を用いた変換手段の解読が攻撃者にとって困難となる。例えば、Sを128ビットパラメータとすることで、攻撃者の総当り総数は2128となり、現実時間内では解読不可能となる。すなわち、本実施形態のシステム20を用いることで、通信データ盗聴による変換手段の解読を用いた攻撃を回避することができる。また、本実施形態に従うシステム20では、攻撃者がCPU1100に対して高度なリバースエンジアリングを行い、関数Fの処理内容を解読した場合にも安全性を確保することができる。
 本実施形態のシステム20のCPU1100は、共有値を記憶するメモリ1140を含んでいる点を除けば、前実施形態のCPU100と同一である。
 親機の認証チップ1200は、実施形態2の親機の認証チップ200と類似の構成を有しているが、共有値Sを記憶するメモリ1280を含む点が異なっている。
 子機の認証チップ1300_1、...、1300_nは、実施形態2の子機の認証チップ認証チップ300と類似の構成を有するが、共有値Sを記憶するメモリ1380を含む点が異なっている。また、子機の認証チップ1300_1、...、1300_nは、親機の認証チップ1200と同じ構成を有する。
 図14は、本発明の第3実施形態に従うシステムのCPU1100で実行される処理のフローチャートを示す図であり、図15は本発明の第3の実施形態に従うシステムの認証チップで実行される処理のフローチャートを示す図である。
 CPU1100は、S1301で認証対象の子機番号iを決定し、S1302に進む。S1302では、チャレンジCとして用いるために乱数を生成する。S1302の次のS1303では、S1302で生成されたチャレンジCをS1301で決定されたi番目の子機の認証チップ1300_iに送信する。
 i番目の子機の認証チップ1300_iでは、S1351で親機のCPU1100によって送信されたチャレンジCを受信する。次に、S1352では、認証チップ1300_iのレスポンス生成回路324中の秘密鍵記憶部326に記憶されている秘密鍵KとチャレンジCを用いて、レスポンスとしての出力値R=Enc(C、K)を生成する。次のS1353では、内部不揮発性メモリ340に記憶されたアドレス情報を元に、変換の繰り返し回数tを決定する。実施形態2と同様、繰り返し回数tは、たとえば、アドレスに現れる数を順に並べて得られる整数であっても良い。S1353に引き続くS1354からS1357では、出力値Rにt回関数FS、Cを作用させる。関数FS、Cは、共有値SおよびチャレンジCによって決まる。より詳細には、S1354で整数であるダミー変数jに0を代入する。S1355でダミー変数の値を1つ増加させ、S1356でjとtを比較する。S1356でjがtより小さければS1357で現在のレスポンス値に関数FS、Cを作用させ、レスポンス値を更新して、S1354に戻る。S1356でjがtより大きければ現在のレスポンスRの値をCPU1100に送信して、i番目の子機の認証チップ1300_iの処理を終了する。
 CPU1100は、S1304でi番目の子機の認証チップ1300_iからのレスポンスRの値をレスポンスRとして受信する。次に、S1305でチャレンジCを今度は、親機の認証チップ1200に送信する。
 親機の認証チップ1200では、先のi番目の子機の認証チップ1300_iと同じ処理を行うが、i番目の子機の認証チップ1300_iの場合とは、関数FS、Cを作用させる回数がtであり、tとは異なる。
 CPU1100は、S1306で親機の認証チップ1200からレスポンスRの値をレスポンスRとして受信する。次に、S1307でtとtを比較し、tがtより大きければS1308に進み、そうでなければS1309に進む。S1308では、Rに関数FS、Cを、t-t回作用させた値とRが等しいかどうかを判定する。もし等しければ認証チップ1300_iを含むi番目の子機を正規品と判定する。そうでなければ、i番目の子機を正規品ではないと判定する。S1309では、Rに関数FS、Cを、t-t回作用させた値とRが等しいかどうかを判定してCPU100の処理を終了する。もし等しければ認証チップ1300_iを含むi番目の子機を正規品と判定してCPU100の処理を終了する。そうでなければ、i番目の子機を正規品ではないと判定してCPU100の処理を終了する。
 前述のように、上記第2実施形態に従うシステム10では、関数Fのおよその内容を攻撃者が推定しながら、シリアルバス上のデータ盗聴を用いることで、変換手段0~変換手段nの内容を完全に特定する攻撃に弱い可能性があった。関数Fは、ハードウェア実装において効率的な処理である必要があるため、LFSR、加算、XOR、剰余演算、ハッシュ関数などその手段は限られる。よって、攻撃者は、Fはこれらのいずれであるか、組み合わせであるかを推定しながら、その推定が実際に正しいかを、シリアルバス上のデータ盗聴を用いて判定することができる。例えば認証チップ0、認証チップ1の2つを用いて、かつt=0、t=1にセットした場合、R=R、R=F(R)となる。このR、Rは、攻撃者にも容易に観察可能な値である。このとき、攻撃者はFの演算内容の推定を行い、その推定が実際に正しいかを、R=F(R)が成立するかどうか盗聴されたR、Rから判定することで確認することが出来てしまうおそれがあった。しかし、本実施形態に従うシステム20では、変換手段がチャレンジCと、外部から観察できない定数Sの影響を受けるため、変換のバリエーションを大きく増やすことができる。これにより、前述の通信データ盗聴を用いた変換手段の解読が攻撃者にとって困難となる。例えば、定数Sを128ビットパラメータとすることで、攻撃者の総当り総数は2128となり、現実時間内では解読不可能となる。すなわち、本実施形態に従うシステム20を用いることで、第2実施形態に従うシステム10に対する、通信データ盗聴による変換手段の解読を用いた攻撃に対する耐性をさらに高めることができる。
(第4実施形態)
 図16~20を参照して本発明の第4の実施形態に従う認証システム30を説明する。図16は本実施形態に従うシステム30を示す図、図17は本実施形態に従うシステム30で、認証チップ2200(認証チップ0)をCPUに装着する際にCPUで実行される処理のフローチャートを示す図、図18は本実施形態に従うシステム30で、認証チップ2200(認証チップ0)をCPU2100に装着する際に認証チップ2200で実行される処理のフローチャートを示す図、図19は、本実施形態に従うシステム30で、認証チップ2300_i(認証チップi)を含むi番目の子機を認証する際に、CPU2100で実行される処理のフローチャートを示す図、図20は、本実施形態に従うシステム30で、認証チップ2300_i(認証チップi)を含むi番目の子機を認証する際に、認証チップiで実行される処理のフローチャートを示す図である。
 第3実施形態に従うシステム20では、CPUに対する高度なリバースエンジニアリングを行った場合に、前述の共有値Sが特定できてしまう可能性がある。攻撃者は、CPUが実行するプログラムのROMコードを解析することで、変換手段FS、C()を特定できる可能性がある。しかし、本実施形態では、CPUに対する高度なリバースエンジニアリングを行った場合でも、変換手段FS、C()を特定することが難しいシステムが提供される。
 図16に示されているシステム30は、基本的には、図13に示されている前実施形態のシステム20と同じであるが、親機に装着されている認証チップ2200(認証チップ0)とCPU2100の間のみで、固有値Iが共有されている。この固有値Iは、親機全体の製造時に、親機のCPU2100に認証チップ2200(認証チップ0)を最初に装着した時点でCPU2100と認証チップ2200の間で共有され、それぞれの内部の不揮発性メモリ2160、2232に格納され、以降書き換えられない値である。この値は、CPU固体間で異なる値である。子機は、CPUと認証チップ0が固有値の共有を完了した後に、親機に対して取り付けられるため、認証チップ2300_1~2300_n(認証チップ1~認証チップn)は、固有値Iを知ることはできない。
 認証チップ内で提供される複数の変換手段のうち、親機が用いる変換手段0だけは、S、Cを用いた変換手段FS,C t0()を実行した後、この出力に対しさらに事前固有値Iをパラメータに含めた変換関数G()を実行することで、レスポンスR=G(FS,C t0(X))を出力する。変換手段1~nについては、実施形態3と同じ方法を用いる。すなわち、変換手段iは、レスポンスR=FS,C ti(X)を出力する。ただし、実施形態2、3と異なり、本実施形態においては、全てのi=1、2、...、nに対してt>t、すなわちtが最大の繰り返し回数として設定されなければならないという制約がある。この制約は、CPU2100が正規品の子機からのレスポンスRを識別するための条件である。G(X)は、固有値Iをパラメータとした1入力1出力関数ならば、どのような関数でも良いが、例えば以下のような関数を用いることで、回路規模を抑えた効率的な実装が可能となる。
(8)パラメータつきXOR
(9)パラメータつき剰余演算
(10)パラメータつきハッシュ演算
(11)パラメータつきLFSR減算
 上記(8)の例としては、
Figure JPOXMLDOC01-appb-M000004
ただしIはパラメータ(固有値)、が含まれる。
 上記(9)の例としては、||はビット結合、q(X)は128ビット既約多項式、modを剰余として、
(X)=(I||X) mod q(X)
が含まれる。
 上記(10)の例としては、
Figure JPOXMLDOC01-appb-M000005
の最下位128ビットであり、ただし、SHA1(X)はXのSHA-1ハッシュ関数出力、が含まれる。
 上記(11)の例としては、
GI(X)=LFSR(I、75)-LFSR(X、33)
が含まれる。
 本実施形態のシステム30のCPU2100は、共有値Sを記憶するメモリ1140および固有値Iを記憶するメモリ2160を含んでいる。
 親機の認証チップ2200は、実施形態3の親機の認証チップ1200と類似の構成を有しているが、固有値Iを記憶する不揮発性メモリ2232を含むこと、変換0を行う回路222aとセレクタ223の間に関数Gを用いて変換Gを行う回路2230を含む点が異なっている。変換Gを行う回路2230は、共有値Sを記憶するメモリ2280にも接続されている。
 子機の認証チップ2300_1、...、2300_nは、固有値Iを記憶するメモリ2232を含まないことを除けば、親機の認証チップ2200と同一の構成を有している。
 親機側の変換手段0による変換では、親機製造時にCPUと認証チップ0の間で共有され、以後変更されない固有値Iに基づいて行われる。この値は、子機側から観察できないため、この値を攻撃者が推定することは困難である。例えば、固有値Iを128ビットパラメータとすることで、攻撃者の総当り総数は2128となり、現実時間内では解読不可能となる。ただし、固有値IはCPU内部にも格納されている値であるため、CPUに対して高度なリバースエンジニアリングを行うことで、攻撃者が解読できる可能性がある。しかし、固有値IはCPU固体ごとに異なる値であるため、例え高度な技法を用いて固有値Iを解読することに攻撃者が成功したとしても、認証チップ偽造上の大きな脅威にはならない。なぜなら、解読された固有値Iは、親機の固体ごとに異なる値であるため、攻撃者は特定固体の親機に対してのみ利用可能な偽造チップを製造することができるが、全ての固体に共通する偽造チップにはならない。本実施形態に従うシステム40では、CPUのROMコードの解析を用いた高度なリバースエンジニアリング技術に成功したとしても、親機に搭載される認証チップ0の変換手段はCPU固体ごとに異なるため、全ての親機に用いることが可能な子機認証チップの偽造品の量産は不可能となり、攻撃者は偽造品を市場に流通させることを防ぐことが出来る。
 図17および18を参照して、本実施形態に従うシステム30で、認証チップ0をCPUに装着する際の処理を説明する。
 CPU2100は、S1501で、CPU2100内で発生させた乱数、現在時刻、CPUID、シリアル番号などを用いて、個体ごとにユニークな固有値Iを生成する。次にS1502で、固有値Iを親機の認証チップ(認証チップ0)2200に送信する。
 S1551で、親機の認証チップ2200は、バス400を介してCPU2100から固有値Iを受信する。次に、S1552で、固有値Iを認証チップ2200の不揮発性メモリ2232に書き込み、S1553に進む。S1553では、親機に応答を送信する。この応答は、たとえば、不揮発性メモリ2232に書き込まれた値と固有値Iを比較した結果など、S1552の処理を確認できる情報である。
 CPU2100は、この親機の認証チップ2200からの応答をS1503で受信する。次のS1504でCPU2100は、S1503で受信した親機の認証チップ2200からの応答が、親機の認証チップ2200での固有値Iの書き込み動作が正常に行われたことを示している場合にはS1505に進み、固有値IをCPU2100の不揮発性メモリ2160に書き込んでCPU2100の処理を終了する。S1504での判定が、S1503で受信した親機の認証チップ2200からの応答が、親機の認証チップ2200での固有値Iの書き込み動作が正常に行われなかったことを示している場合には、CPU2100はエラー終了する。
 図19は本実施形態に従うシステム30で、認証チップiを含むi番目の子機を認証する際に、CPU2100で実行される処理のフローチャートを示す図であり、図20は、本実施形態に従うシステムで、認証チップiを含むi番目の子機を認証する際に、認証チップ2300_iで実行される処理のフローチャートを示す図である。
 CPU2100は、S1601で認証対象の子機番号iを決定し、S1602に進む。S1602では、チャレンジCとして用いるために乱数を生成する。S1602の次のS1603では、S1602で生成されたチャレンジCをS1601で決定されたi番目の子機の認証チップ2300_iに送信する。
 i番目の子機の認証チップ2300_iでは、S1651で親機のCPU2100によって送信されたチャレンジCを受信する。次に、S1652では、認証チップ300_iのレスポンス生成回路324中の秘密鍵記憶部326に記憶されている秘密鍵KとチャレンジCを用いて、レスポンスとしての出力値R=Enc(C、K)を生成する。次のS1653では、内部不揮発性メモリ340に記憶されたアドレス情報を元に、変換の繰り返し回数tを決定する。S1653に引き続くS1654からS1657では、レスポンスRにt回関数FS、Cを作用させる。関数FS、Cは、共有値SおよびチャレンジCによって決まる。より詳細には、S1654で整数であるダミー変数jに0を代入する。S1655でダミー変数の値を1つ増加させ、S1656でjとtを比較する。S1656でjがtより小さければ現在のレスポンス値に関数FS、Cを作用させ、レスポンス値を更新して、S1655に戻る。S1656でjがtより大きければ現在のレスポンスRの値をCPU2100に送信して、i番目の子機の認証チップ2300_iの処理を終了する。
 CPU2100は、S1604でi番目の子機の認証チップ2300_iからのレスポンスRの値をレスポンスRとして受信する。次に、S1605でチャレンジCを今度は、親機の認証チップ2200に送信する。
 親機の認証チップ2200では、先のi番目の子機の認証チップ2300_iと同じ処理を行うが、i番目の子機の認証チップ2300_iの場合とは、関数FS、Cを作用させる回数がtであり、tとは異なる。
 CPU2100は、S1606で親機の認証チップ2200からのレスポンスRの値をレスポンスRとして受信する。次に、S1607でRがG(FS、C t0-ti(X))に等しいかどうかを判定する。もし等しければi番目の子機を正規品と判定してCPU100の処理を終了する。そうでなければ、i番目の子機を正規品ではないと判定してCPU2100の処理を終了する。
 上の説明では、S1603およびS1604の処理後にS1605およびS1606の処理を実行した。しかしながら、S1605およびS1606の処理の後でS1603およびS1604の処理を行っても良い。つまり、親機の認証チップ2200へのチャレンジCの送信およびレスポンスRの受信と子機の認証チップ2300_iへのチャレンジCの送信およびレスポンスRの受信の順序は任意である。
 このような構成を用いることによって、高度なリバースエンジニアリングを用いた攻撃すらも回避した安全な認証を実現することができる。また、通信データの盗聴から変換手段を特定することを困難とすることができる。
(第5実施形態)
 図21から23を参照して、本発明の第5の実施形態に従うシステム40を説明する。本実施形態は、図10に示されている第2実施形態のシステム10の特別な場合である。即ち、本実施形態では、変換関数はF(X)=XとF(X)=SHA-1出力の最下位128ビットの2種である。
 親機に認証チップ3200、子機に認証チップ3300が接続されている。チャレンジ、レスポンス、秘密鍵全て128ビットである。関数Fとして、SHA-1出力の最下位128ビットを利用する。関数Fの繰り返し回数は、t=1、t=0である。すなわち、CPU100から送信されるチャレンジCに対して、AES暗号化を用いて出力値R=Enc(C、K)を生成し、認証チップのアドレスが親機ならばR=F(R)を、子機ならばR=RをレスポンスとしてCPU100に返信する。R、Rを受け取ったCPU100は、F(R)を計算し、Rと一致するならば子機を正規品と判定し、不一致ならば非正規品と判定する。
 図22は、本実施形態に従うシステム40のCPU100で実行される処理のフローチャートを示す図であり、図23は本実施形態に従うシステム40の親機の認証チップ3200および子機の認証チップ3300で実行される処理のフローチャートを示す図である。
 CPU100は、S1801でチャレンジCとして用いるために乱数を生成し、S1802に進む。S1802では、S1802で生成されたチャレンジCを子機の認証チップ3300に送信する。
 子機の認証チップ3300では、S1851で親機のCPU100によって送信されたチャレンジCを受信する。次に、S1852では、認証チップ3300のレスポンス生成回路324中の秘密鍵記憶部326に記憶されている秘密鍵KとチャレンジCを用いて、レスポンスとしての出力値R=Enc(C、K)を生成する。次のS1853では、内部不揮発性メモリ340に記憶されたアドレス情報を元に、変換の繰り返し回数tを決定する。ここでt=1である。S1853に引き続くS1854からS1857では、出力値Rにt回関数F=SHA-1出力の最下位128ビット、を作用させる。より詳細には、S1854で整数であるダミー変数jに0を代入する。S1855でダミー変数の値を1つ増加させ、S1856でjとtを比較する。S1856でjがtより小さければ現在のレスポンス値にS1857で関数Fを作用させ、レスポンス値を更新して、S1855に戻る。S1856でjがtより大きければ現在のレスポンスRの値をCPU100に送信して、子機の認証チップ3300の処理を終了する。
 CPU100は、S1803で子機の認証チップ3300からのレスポンスRの値をレスポンスRとして受信する。次に、S18054チャレンジCを今度は、親機の認証チップ200に送信する。
 親機の認証チップ2200では、先の子機の認証チップ3300と同じ処理を行うが、子機の認証チップ3300の場合とは、関数Fを作用させる回数がt=1であり、t=0とは異なっている。
 CPU100は、S1805で親機の認証チップ2200からのレスポンスRの値をレスポンスRとして受信する。次に、S1806で、Rに関数Fを作用させた値F(R)とRが等しいかどうかを判定する。もし等しければ子機を正規品と判定してCPU100の処理を終了する。そうでなければ、子機を正規品ではないと判定する。
 上の説明では、CPU2100は、S1802およびS1803の処理後にS1804およびS1805の処理を実行した。しかしながら、S1804およびS1805の処理の後でS1802およびS1803の処理を行っても良い。
(第6実施形態)
 図24から26を参照して、本発明の第6の実施形態に従うシステム50を説明する。本実施形態は、図13に示されている第3実施形態のシステム20の特別な場合である。即ち、本実施形態では、子機の認証チップは子機1の認証チップ4300_1と子機2の認証チップ4300_2の2つを含み、レスポンス生成回路324で生成されたレスポンスに作用する関数として、
Figure JPOXMLDOC01-appb-M000006
が用意されている。
 本実施形態の構成を図24に示す。親機に認証チップ4200、子機に2個の認証チップ4300_1、4300_2が接続されている。チャレンジ、レスポンス、秘密鍵全て128ビットである。関数FS、Cとして、パラメータ付XOR加算
Figure JPOXMLDOC01-appb-M000007
を利用する。関数FS、Cの繰り返し回数は、t=0、t=1、t=2である。すなわち、CPU1100から送信されるチャレンジCに対して、レスポンス生成回路224、324においてAES暗号化を用いてR=Enc(C、K)を生成し、認証チップのアドレスが親機ならばR=Rを、子機1ならばR=FS、C(R)を、子機2ならR=FS、C (R)を、レスポンスとしてCPU100に返信する。R、Rを受け取ったCPU1100は、Fti-t0(R)を計算し、Rと一致するならば子機を正規品と判定し、不一致ならば非正規品と判定する。すなわち、i=1の場合はFS、C(R)=Rであるか、i=2の場合はFS、C (R)=Rであるかを判定する。
 本実施形態の認証システム50の処理を説明する。
 図25は、本実施形態に従うシステム50のCPU1100で実行される処理のフローチャートを示す図であり、図26は本実施形態に従うシステム50の親機または子機の認証チップ4200、4300_i(i=1、2)で実行される処理のフローチャートを示す図である。
 CPU100は、S2001で認証対象の子機番号iを決定し、S2002に進む。ここでi=1または2である。S2002では、チャレンジCとして用いるために乱数を生成する。S2002の次のS2003では、S2002で生成されたチャレンジCをS2001で決定されたi番目の子機の認証チップ4300_iに送信する。
 i番目の子機の認証チップ4300_iでは、S2051で親機のCPU1100によって送信されたチャレンジCを受信する。次に、S2052では、認証チップ4300_iのレスポンス生成回路324中の秘密鍵記憶部326に記憶されている秘密鍵KとチャレンジCを用いて、レスポンスとしての出力値R=Enc(C、K)を生成する。次のS2053では、内部不揮発性メモリ340に記憶されたアドレス情報を元に、変換の繰り返し回数tを決定する。S2053に引き続くS2054からS2057では、レスポンスRにt回関数FS、Cを作用させる。関数FS、Cは、共有値SおよびチャレンジCによって決まる。より詳細には、S2054で整数であるダミー変数jに0を代入する。S2055でダミー変数の値を1つ増加させ、S2056でjとtを比較する。S2056でjがtより小さければ現在のレスポンス値にS2057で関数FS、Cを作用させ、レスポンス値を更新して、S2055に戻る。S2056でjがtより大きければ現在のレスポンスRの値をCPU1100に送信して、i番目の子機の認証チップ1300_iの処理を終了する。
 CPU1100は、S2004でi番目の子機の認証チップ4300_iからレスポンスRの値をレスポンスRとして受信する。次に、S2005でチャレンジCを今度は、親機の認証チップ4200に送信する。
 親機の認証チップ4200では、先のi番目の子機の認証チップ4300_iと同じ処理を行うが、i番目の子機の認証チップ4300_iの場合、関数FS、Cを作用させる回数がtであり、tとは異なる。今の場合、t=0であるので、関数FS、Cは作用させない。
 CPU1100は、S2006で親機の認証チップ4200からのレスポンスRの値をレスポンスRとして受信する。次にS2007では、RがFS、C t0-ti(R)に等しいかどうかを判定する。もし等しければi番目の子機を正規品と判定してCPU1100の処理を終了する。そうでなければ、i番目の子機を正規品ではないと判定してCPU1100の処理を終了する。
(第7実施形態)
 図27から31を参照して、本発明の第7の実施形態に従うシステム60を説明する。本実施形態は、図16に示されている第4実施形態のシステム30の特別な場合である。即ち、本実施形態では、子機の認証チップは子機1の認証チップ5300_1と子機2の認証チップ5300_2の2つを含み、レスポンス生成回路324で生成されたレスポンスに作用する変換関数FS、Cとしてパラメータ付剰余算FS、C(X)=(S||C||X) mod q(X)、変換関数Gとして、
Figure JPOXMLDOC01-appb-M000008
の最下位128ビットを用いる。
 親機に認証チップ5200、子機に2個の認証チップ5300_1、5300_2が接続されている。チャレンジ、レスポンス、秘密鍵全て128ビットである。関数FS、Cとしてパラメータ付剰余算FS、C(X)=(S||C||X) mod q(X)を、関数Gとしてパラメータつきハッシュ演算:
Figure JPOXMLDOC01-appb-M000009
の最下位128ビット、を利用する。ただし、q(X)は128ビット既約多項式である。関数FS、Cの繰り返し回数は、t=2、t=1,t=0である。つまり、CPU2100から送信されるチャレンジCに対して、AES暗号化を用いてR=Enc(C、K)を生成し、認証チップのアドレスが親機ならばR=G(FS、C (R))を、子機1ならばR=FS、C(R)を、子機2ならR=Rを、レスポンスとしてCPU2100に返信する。R、Rを受け取ったCPU2100は、G(FS、C 2-ti(R))を計算し、Rと一致するならば子機を正規品と判定し、不一致ならば非正規品と判定する。すなわち、i=1の場合はG(FS、C(R))=Rであるか、i=2の場合はG(FS、C (R))=Rであるかを判定する。
 図28および29を参照して、本実施形態に従うシステム60で、認証チップ5200をCPU2100に装着する際の処理を説明する。
 CPU2100は、S2201で、CPU2100内で発生させた乱数、現在時刻、CPUID、シリアル番号などを用いて、CPU固体ごとにユニークな固有値Iを生成する。次にS2202で、固有値Iを親機の認証チップ(認証チップ0)5200に送信する。
 S2251で、親機の認証チップ5200は、バス400を介してCPU2100から固有値Iを受信する。次に、S2252で、固有値Iを認証チップ5200の不揮発性メモリ2232に書き込み、S2253に進む。S2253では、親機に応答を送信する。この応答は、たとえば、不揮発性メモリ2232に書き込まれた値と固有値Iを比較した結果など、S2252の処理を確認できる情報である。
 CPU2100は、この親機の認証チップ5200からの応答をS2203で受信する。次のS2204でCPU2100は、S2203で受信した親機の認証チップ5200からの応答が、親機の認証チップ5200での固有値Iの書き込み動作が正常に行われたことを示している場合にはS2205に進み、固有値IをCPU2100の不揮発性メモリ2160に書き込んでCPU2100の処理を終了する。S2204での判定が、S2203で受信した親機の認証チップ5200からの応答が、親機の認証チップ5200での固有値Iの書き込み動作が正常に行われなかったことを示している場合には、CPU2100はエラー終了する。
 図30は本実施形態に従うシステム60で、認証チップ(認証チップ~2)5200、5300_1、5300_2を含む親機およびi番目の子機を認証する際に、CPU2100で実行される処理のフローチャートを示す図であり、図31は、本実施形態に従うシステムで、認証チップiを含む親機またはi番目の子機を認証する際に、認証チップ5200、5300_i(i=1、2)で実行される処理のフローチャートを示す図である。
 CPU2100は、S2301で認証対象の子機番号iを決定し、S2302に進む。S2302では、チャレンジCとして用いるために乱数を生成する。S2302の次のS2303では、S2302で生成されたチャレンジCをS2301で決定されたi番目の子機の認証チップ5300_iに送信する。
 i番目の子機の認証チップ5300_iでは、S2351で親機のCPU2100によって送信されたチャレンジCを受信する。次に、S2352では、認証チップ5300_iのレスポンス生成回路324中の秘密鍵記憶部326に記憶されている秘密鍵KとチャレンジCを用いて、レスポンスとしての出力値R=Enc(C、K)を生成する。次のS2353では、内部不揮発性メモリ340に記憶されたアドレス情報を元に、変換の繰り返し回数tを決定する。S2353に引き続くS2354からS2357では、レスポンスRにt回関数FS、Cを作用させる。関数FS、Cは、共有値SおよびチャレンジCによって決まる。より詳細には、S1654で整数であるダミー変数jに0を代入する。S2355でダミー変数の値を1つ増加させ、S2356でjとtを比較する。S2356でjがtより小さければS2357で現在のレスポンス値に関数FS、Cを作用させ、レスポンス値を更新して、S2355に戻る。S2356でjがtより小さくなければ、S2358に進む。S2358では、現在認証中のチップが親機であるかを判定する。今の場合、認証チップは親機のものではないので、現在のレスポンスRの値をCPU2100に送信して、i番目の子機の認証チップ5300_iの処理を終了する。
 CPU2100は、S2304でi番目の子機の認証チップ2300_iからのレスポンスRの値をレスポンスRとして受信する。次に、S2305でチャレンジCを今度は、親機の認証チップ5200に送信する。
 親機の認証チップ5200では、先のi番目の子機の認証チップ5300_iと同じ処理を行うが、i番目の子機の認証チップ5300_iの場合とは、関数FS、Cを作用させる回数がtであり、tとは異なること、S2358での現在認証中のチップが親機であるかの判定で、今の場合、親機であるから、S2359に進むことが異なる。S2359では、固有値IとG計算回路2230を用いて、G(FS、C 2-ti(R))を計算する。
 CPU2100は、S2306で親機の認証チップ2200からのレスポンスRの値をレスポンスRとして受信する。次に、S1607でRがG(FS、C 2-ti(R))に等しいかどうかを判定する。もし等しければi番目の子機を正規品と判定してCPU2100の処理を終了する。そうでなければ、i番目の子機を正規品ではないと判定してCPU2100の処理を終了する。

Claims (27)

  1.  第1の認証チップを含む第1の装置を制御するプロセッサにより、第2の認証チップを含む第2の装置を認証する認証方法であって、
     乱数を生成し、
     前記乱数を前記第2の認証チップおよび前記第2の認証チップに送信し、
     前記第1の認証チップに秘密鍵として記憶された整数と、前記乱数に対して暗号化をするための暗号化関数を作用させて生成された出力値に、前記第1の認証チップに設定された値で決まる第1の変換関数を作用させて得られる第1のレスポンス値を前記第1の認証チップから受信し、
     前記第2の認証チップに秘密鍵として記憶された前記第1の認証チップに秘密鍵として記憶された前記整数と同じ整数と、前記乱数に対して暗号化をするための暗号化関数を作用させて生成された前記出力値に、前記第2の認証チップに設定された値で決まる第2の変換関数を作用させて得られる第2のレスポンス値を前記第2の認証チップから受信し、
     前記第1のレスポンス値に、前記第1の認証チップに設定された値と前記第2の認証チップに設定された値の大きさの差の数で決まる第3の変換関数を作用させて得られる値と前記第2のレスポンス値を比較して、または前記第2のレスポンス値に前記第3の変換関数を作用させて得られる値と前記第1のレスポンス値を比較して、前記第2の装置を認証する、
    認証方法。
  2.  前記第1の認証チップに設定された値で決まる前記第1の変換関数は所定の関数の冪乗であり、その指数は前記第1の認証チップに設定された値で決まる第1の指数であり、前記第2の認証チップに設定された値で決まる第2の変換関数は前記所定の関数の冪乗であり、その指数は前記第2の認証チップに設定された値で決まり前記第1の指数と異なる第2の指数であり、前記第1の認証チップに設定された値と前記第2の認証チップに設定された値の大きさの差の数で決まる前記第3の変換関数は、前記所定の関数の冪乗であり、その指数は、前記第1の指数と前記第2の指数の差の絶対値に等しい第3の指数である、請求項1の方法。
  3.  前記所定の関数はハッシュ関数である、請求項2の方法。
  4.  前記所定の関数は定数ビットシフトである、請求項2の方法。
  5.  前記所定の関数は左1ビットシフト後、GF(2)上の特性多項式の剰余演算処理を定数ビット分の繰り返しである、請求項2の方法。
  6.  前記第1の変換関数は前記第1の認証チップに設定された値と予め前記第2の認証チップと共通に設定された整数である共有値により決定され、前記第2の変換関数は前記第2の認証チップに設定された値と前記共有値により決定される、請求項1乃至5のいずれか一項の方法。
  7.  前記第1のレスポンス値は、前記出力値に、前記第1の変換関数に加えて、前記プロセッサに特有の値である固有値で決まる第4の変換関数を作用させて得られる、請求項1乃至6のいずれか一項の方法。
  8.  前記第2の認証チップに設定された値および前記共有値で決まる前記第2の変換関数は、パラメータ付XOR演算である、請求項6又は7の方法。
  9.  前記第2の認証チップに設定された値および前記共有値で決まる前記第2の変換関数は、パラメータつき剰余演算である、請求項6又は7の方法。
  10.  前記第2の認証チップに設定された値および前記共有値で決まる前記第2の変換関数は、パラメータハッシュ演算の最下位の定数ビット幅のデータ値を取る出す演算である、請求項6又は7の方法。
  11.  前記第2の認証チップに設定された値および前記共有値で決まる前記第2の変換関数は、パラメータ付定数ビットシフト、XORおよび減算の組み合わせの演算である、請求項6又は7の方法。
  12.  前記プロセッサ、前記第1の認証チップ、および前記第2の認証チップは互いの通信のためにシリアルバス接続されており、前記親機認証チップおよび前記子機認証チップは前記通信のためにそれぞれ第1のアドレスおよび第2のアドレスを有し、前記親機認証チップに設定された値および前記子機認証チップに設定された値は、それぞれ前記第1のアドレスおよび前記第2のアドレスから決まる、請求項1乃至12のいずれか一項の方法。
  13.  第1の装置が第2の装置の認証を行う認証システムであって、
     前記第1の装置に含まれ、乱数を生成し、前記乱数を前記第1の装置が含む第1の認証チップと前記第2の装置が含む第2の認証チップとに送信し、前記第1の認証チップと前記第2の認証チップから、前記乱数に対する応答として第1のレスポンス値と第2のレスポンス値とをそれぞれ受信し、前記第1のレスポンス値と前記第2のレスポンス値を用いて前記第2の装置を認証する処理を実行するプロセッサと、
     前記乱数を受信する第1の乱数受信手段と、秘密鍵としての整数を記憶する第1の記憶手段と、秘密鍵として記憶された整数および前記乱数に対して暗号化をするための暗号化関数を作用させて出力値を生成する第1の暗号演算手段と、生成された前記出力値に、第1の設定された値で決まる第1の変換関数を作用させて前記第1のレスポンス値を生成する第1のレスポンス値生成手段と、を含み、前記プロセッサに接続されている第1の認証チップと、
     前記乱数を受信する第2の乱数受信手段と、秘密鍵としての整数を記憶する第2の記憶手段と、秘密鍵として記憶された整数および前記乱数に対して暗号化をするための暗号化関数を作用させて前記出力値を生成する第2の暗号演算手段と、前記出力値に、第2の設定された値で決まる第2の変換関数を作用させて前記第2のレスポンス値を生成する第2のレスポンス値生成手段と、を含み、少なくとも前記プロセッサに接続されている第2の認証チップと、
    を含み、
     前記プロセッサは、前記第1のレスポンス値に、前記第1の設定された値と前記第2の設定された値の大きさの差の絶対値で決まる第3の変換関数を作用させて得られる数と前記第2のレスポンス値を比較して、または前記第2のレスポンス値に前記第3の変換関数を作用させて得られる数と前記第1のレスポンス値を比較して、前記子機を認証する処理を実行すること、
    を特徴とする認証システム。
  14.  前記プロセッサと前記第1の認証チップおよび前記第2の認証チップをシリアルバス接続で接続するバスを含む、請求項13の認証システム。
  15.  前記所定の関数は、ハッシュ関数、定数ビットシフト、左1ビットシフト後、GF(2)上の特性多項式の剰余演算処理を定数ビット分の繰り返しからなる群から選択される、請求項13または14の認証システム。
  16.  前記第1の認証チップおよび前記第2の認証チップは前記通信のためにそれぞれ第1のアドレスおよび第2のアドレスを有し、前記第1の認証チップに設定された値および前記第2の認証チップに設定された値は、それぞれ前記第1のアドレスおよび前記第2のアドレスから決まる、請求項13乃至15のいずれか一項の認証システム。
  17.  前記第1の認証チップに設定された値で決まる前記第1の変換関数は所定の関数の冪乗であり、その指数は前記第1の認証チップに設定された値で決まる第1の指数であり、前記第2の認証チップに設定された値で決まる第2の変換関数は前記所定の関数の冪乗であり、その指数は前記第2の認証チップに設定された値で決まり前記第1の指数と異なる第2の指数である、請求項13乃至16のいずれか一項の認証システム。
  18.  前記第1の変換関数は前記第1の認証チップに設定された値および予め前記第2の認証チップと共通に設定された整数である共有値で決まり、前記第2の変換関数は前記第2の認証チップに設定された値および前記共有値で決まる、請求項13乃至17のいずれか一項の認証システム。
  19.  前記第1のレスポンス値は、前記出力値に、前記第1の変換関数に加えて、前記プロセッサに特有の値である固有値で決まる第4の変換関数を作用させて得られる、請求項13乃至18のいずれか一項の認証システム。
  20.  前記第2の変換関数は、パラメータ付XOR演算、パラメータつき剰余演算、パラメータハッシュ演算の最下位の定数ビット幅のデータ値を取る出す演算、パラメータ付定数ビットシフト、XORおよび減算の組み合わせの演算からなる群から選択される、請求項13乃至20のいずれか一項の認証システム。
  21.  整数である秘密鍵を記憶するメモリと、
     整数を受信する受信手段と、
     前記整数および前記秘密鍵に暗号化のための暗号化関数を作用させて生成された出力値に、変換関数を作用させて得られるレスポンス値を生成するレスポンス値生成手段と、
     前記レスポンス値を送信する送信手段、
    を含む認証チップ。
  22.  前記レスポンス値生成手段は、さらに、前記通信におけるアドレスを記憶するアドレス記憶手段を含み、
     前記変換関数は、前記レスポンス値は前記アドレスで決まる、
    請求項21の認証チップ。
  23.  前記レスポンス値生成手段は、それぞれ関数を記憶するメモリを含む複数の演算部を含み、
     前記変換関数は、前記複数の関数から選択される、
    請求項22の認証チップ。
  24.  前記変換関数は、前記変換関数は、ハッシュ関数、定数ビットシフト、左1ビットシフト後、GF(2)上の特性多項式の剰余演算処理を定数ビット分の繰り返しからなる群から選択される、
    請求項21乃至23のいずれか一項の認証チップ。
  25.  さらに、
     整数である共有値を記憶するメモリを含み、
     前記変換関数は前記アドレスおよび前記共有値で決まる、
    請求項21乃至24のいずれか一項の認証チップ。
  26.  前記認証チップはプロセッサに接続され、
     前記レスポンス値は、前記出力値に前記変換関数を作用させ、さらに前記プロセッサに特有の値である固有値で決まる別の変換関数を作用させて得られる、
    請求項21乃至25のいずれか一項の認証チップ。
  27.  前記プロセッサに特有の値である固有値で決まる前記別の変換関数は、パラメータ付XOR演算、パラメータつき剰余演算、パラメータハッシュ演算の最下位の定数ビット幅のデータ値を取る出す演算、パラメータ付定数ビットシフト、XORおよび減算の組み合わせの演算からなる群から選択される、
    請求項25の認証チップ。
PCT/JP2011/055557 2011-03-09 2011-03-09 共通鍵暗号を用いた認証システム WO2012120671A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2011/055557 WO2012120671A1 (ja) 2011-03-09 2011-03-09 共通鍵暗号を用いた認証システム
US14/020,129 US9166800B2 (en) 2011-03-09 2013-09-06 Authentication method, authentication system, and authentication chip using common key cryptography

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/055557 WO2012120671A1 (ja) 2011-03-09 2011-03-09 共通鍵暗号を用いた認証システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/020,129 Continuation US9166800B2 (en) 2011-03-09 2013-09-06 Authentication method, authentication system, and authentication chip using common key cryptography

Publications (1)

Publication Number Publication Date
WO2012120671A1 true WO2012120671A1 (ja) 2012-09-13

Family

ID=46797670

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/055557 WO2012120671A1 (ja) 2011-03-09 2011-03-09 共通鍵暗号を用いた認証システム

Country Status (2)

Country Link
US (1) US9166800B2 (ja)
WO (1) WO2012120671A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017079419A (ja) * 2015-10-21 2017-04-27 日本電信電話株式会社 サーバ認証システム、端末、サーバ、サーバ認証方法、プログラム
JP2018537733A (ja) * 2016-10-27 2018-12-20 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 交換可能なアイテムの認証

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9787568B2 (en) * 2012-11-05 2017-10-10 Cercacor Laboratories, Inc. Physiological test credit method
WO2014140917A2 (en) * 2013-03-15 2014-09-18 Assa Abloy Ab Tamper credential
CN104331383B (zh) * 2014-09-25 2017-09-22 广东万家乐燃气具有限公司 热水器用一主多从操作设备通信地址分配方法
CN107070658B (zh) * 2016-11-29 2020-09-01 珠海市一微半导体有限公司 一种***加密认证机制的改进方法
SG11201906661RA (en) * 2017-01-25 2019-08-27 Tendyron Corp Legal chip identification method and system
CN107358128B (zh) * 2017-01-25 2019-12-10 天地融科技股份有限公司 一种合法芯片的识别方法及***
EP4368104A2 (en) 2017-04-28 2024-05-15 Masimo Corporation Spot check measurement system
US10419641B1 (en) * 2018-04-13 2019-09-17 Lexmark International, Inc. Chip and supply item for imaging device, including communication
US10375273B1 (en) * 2018-04-13 2019-08-06 Lexmark International, Inc. Chip and supply item for imaging device, including communication
US10542172B2 (en) 2018-04-13 2020-01-21 Lexmark International, Inc. Chip and supply item for imaging device, including communication
US11799643B2 (en) * 2021-01-19 2023-10-24 Bank Of America Corporation Collaborative architecture for secure data sharing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06289781A (ja) * 1993-03-31 1994-10-18 Fujitsu Ltd 認証方式
WO2003107712A1 (en) * 2002-06-12 2003-12-24 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for challenge-response user authentication
JP2006099509A (ja) * 2004-09-30 2006-04-13 Felica Networks Inc 情報管理装置および方法、並びにプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685423B1 (en) * 2000-02-15 2010-03-23 Silverbrook Research Pty Ltd Validation protocol and system
EP2120393A1 (en) * 2008-05-14 2009-11-18 Nederlandse Centrale Organisatie Voor Toegepast Natuurwetenschappelijk Onderzoek TNO Shared secret verification method
US20100235900A1 (en) * 2009-03-13 2010-09-16 Assa Abloy Ab Efficient two-factor authentication
JP2012174195A (ja) 2011-02-24 2012-09-10 Renesas Electronics Corp 認証システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06289781A (ja) * 1993-03-31 1994-10-18 Fujitsu Ltd 認証方式
WO2003107712A1 (en) * 2002-06-12 2003-12-24 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for challenge-response user authentication
JP2006099509A (ja) * 2004-09-30 2006-04-13 Felica Networks Inc 情報管理装置および方法、並びにプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017079419A (ja) * 2015-10-21 2017-04-27 日本電信電話株式会社 サーバ認証システム、端末、サーバ、サーバ認証方法、プログラム
JP2018537733A (ja) * 2016-10-27 2018-12-20 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. 交換可能なアイテムの認証
US11001069B2 (en) 2016-10-27 2021-05-11 Hewlett-Packard Development Company, L.P. Replaceable item authentication

Also Published As

Publication number Publication date
US20140181524A1 (en) 2014-06-26
US9166800B2 (en) 2015-10-20

Similar Documents

Publication Publication Date Title
JP5621907B2 (ja) 共通鍵暗号を用いた認証システム
WO2012120671A1 (ja) 共通鍵暗号を用いた認証システム
CN106411521B (zh) 用于量子密钥分发过程的身份认证方法、装置及***
AU2007294624B2 (en) A method and apparatus to provide authentication and privacy with low complexity devices
CN1708942B (zh) 设备特定安全性数据的安全实现及利用
US7571320B2 (en) Circuit and method for providing secure communications between devices
US8670563B2 (en) System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
US8744078B2 (en) System and method for securing multiple data segments having different lengths using pattern keys having multiple different strengths
JP5954030B2 (ja) 暗号処理装置および方法
US20200076614A1 (en) Method of rsa signature or decryption protected using a homomorphic encryption
WO2013014778A1 (ja) 暗号化処理装置および認証方法
CN101433014A (zh) 通信装置及通信***
Koko et al. Comparison of Various Encryption Algorithms and Techniques for improving secured data Communication
US20110085663A1 (en) Method for the access-related or communication-related random encryption and decryption of data
CN112202544A (zh) 一种基于Paillier同态加密算法的智能电网数据安全聚合方法
Wu et al. JAMBU lightweight authenticated encryption mode and AES-JAMBU
Hwang et al. Robust stream‐cipher mode of authenticated encryption for secure communication in wireless sensor network
CN114257402B (zh) 加密算法确定方法、装置、计算机设备和存储介质
US7415110B1 (en) Method and apparatus for the generation of cryptographic keys
KR101105384B1 (ko) 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법
KR101955484B1 (ko) 양자 채널 기반의 인증 수행 방법 및 인증 요청 방법
Francis et al. Secure Image Communication: Integrating Diffie-Hellman Key Exchange for Enhanced Confidentiality
Halder et al. Information Security Using Key Management
CN115913561A (zh) 一种面向泄露检测的口令认证方法
JP2003283485A (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: 11860463

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013503296

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11860463

Country of ref document: EP

Kind code of ref document: A1