[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

US20120224695A1 - Communicating device and communicating method - Google Patents

Communicating device and communicating method Download PDF

Info

Publication number
US20120224695A1
US20120224695A1 US13/234,518 US201113234518A US2012224695A1 US 20120224695 A1 US20120224695 A1 US 20120224695A1 US 201113234518 A US201113234518 A US 201113234518A US 2012224695 A1 US2012224695 A1 US 2012224695A1
Authority
US
United States
Prior art keywords
key
unit
random number
individual
storage unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US13/234,518
Other versions
US9042553B2 (en
Inventor
Mikio Hashimoto
Shinji Yamanaka
Yuichi Komano
Taku Kato
Hiroshi Isozaki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Assigned to KABUSHIKI KAISHA TOSHIBA reassignment KABUSHIKI KAISHA TOSHIBA ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KOMANO, YUICHI, ISOZAKI, HIROSHI, KATO, TAKU, YAMANAKA, SHINJI, HASHIMOTO, MIKIO
Publication of US20120224695A1 publication Critical patent/US20120224695A1/en
Application granted granted Critical
Publication of US9042553B2 publication Critical patent/US9042553B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Definitions

  • An embodiment of the present invention relates to a communicating device and a communicating method and particularly relates to a technique for safely obtaining an individual key from a key issuing server.
  • a product having key information and cryptography hardware in a chip is known as a CPU for a security device; however, such a product is generally expensive due to key management cost and small production quantity. Also, there is known a mechanism in which a memory dump and a debugging function are used by a developer in a development process so as to prevent confidential information from being fraudulently obtained.
  • FIG. 1 is a block diagram showing a hardware configuration of a meter device according to an embodiment
  • FIG. 2 is a drawing showing a configuration of a key writing system according to the embodiment
  • FIG. 3 is a drawing showing a configuration of a system in which the meter device according to the embodiment communicates with servers;
  • FIG. 4 is a block diagram showing a hardware configuration of a CPU (microcomputer) according to the embodiment
  • FIG. 5 is a flow chart showing an outline of an individual-key writing procedure according to the embodiment.
  • FIG. 6 is a block diagram showing a functional configuration of the meter device according to the embodiment.
  • a communicating device there is provided with a communicating device.
  • the communicating device includes a storage unit, a debugging unit, an instruction executing unit, a random-number generating unit, a debug disabling unit, a public-key encrypting unit, a transmitting unit, a receiving unit and an individual-key writing unit.
  • the debugging unit writes a public key of the key issuing server and an initializing program given from outside, to the storage unit.
  • the instruction executing unit reads and executes the initializing program stored in the storage unit.
  • the random-number generating generates a random number.
  • the debug disabling unit disables the debugging unit by the initializing program being executed.
  • the public-key encrypting unit encrypts the random number by the public key in the storage unit by the initializing program being executed, the random number generated by the random number generating unit after the debugging unit is disabled.
  • the transmitting unit transmits the encrypted random number to the key issuing server by the initializing program being executed.
  • the receiving unit receives an individual key encrypted by the random number from the key issuing server by the initializing program being executed.
  • the individual-key writing unit decrypts the encrypted individual key by the random number to obtain the individual key and write the individual key to the storage unit, by the initializing program being executed.
  • the present embodiment explained below provides a mechanism which safely embeds and retains an individual key to be used in communication (encryption, authentication) with a server in the side of an electric power company in a manufacturing process of a meter device to be installed in a house of an end-user.
  • the meter device After the individual key is safely written by the present embodiment in the manufacturing process, the meter device finally is shipped from the manufacturer and is installed in the house of the end-user.
  • the meter device installed in the house is subjected to the operation of measuring the power consumption of equipment in the house and notifying an electric-power measuring server of the meter measurement results via a network or subjected to the operation of, for example, adjusting the amount of electric power supply based on control messages from an electric-power measuring server.
  • the individual key written to the meter device functions as the root of trust in mutual authentication in the communication between the server thereof and the meter device.
  • 802.1x/TLS is utilized as a method of client authentication in a LAN
  • intrusion of an unauthorized device, which does not have the legitimate individual key, into a network and the attack that an unauthorized device impersonates a different meter device can be eliminated.
  • the individual key stored in a non-volatile memory in a CPU is safe against attacks from the outside.
  • the direct access to the internal memory can be disabled by prohibiting the debugger function in the manner described in the section of background techniques even if an attacker obtains the meter device during operation.
  • advanced techniques such as chip physical analysis or side channel attack are required to obtain the secret key written therein, and the individual key serving as the root of trust is safe against attacks.
  • the individual key is not at risk of leakage as long as the selection and implementation of a protocol for communication with outside are appropriate.
  • the integrity (falsification prevention) of data write to a device and protection of confidentiality have the following characteristics.
  • the present embodiment provides a mechanism which safely writes an individual key to a meter device and safely retains the written individual key even in such a manufacturing process having a low management level.
  • FIG. 1 shows a hardware configuration of a meter device provided with a communicating device according to the embodiment of the present invention.
  • the meter device 100 is provided with: a CPU 101 serving as the communicating device, an electric-power measuring device 230 , a wireless IF 220 , an EEPROM (Electrically Erasable Programmable Read-Only Memory) 210 , a debug port 111 , a network port 112 , and an AD port 115 .
  • the CPU 101 is a one-chip microcomputer.
  • the electric-power measuring device 230 measures the electric power consumed by equipment provided in a facility such as a user-end house or a building.
  • the wireless IF 220 executes wireless communication in accordance with a predetermined specification.
  • the communication may be wireless communication in accordance with the specification of IEEE802.11 or Zigbee or may be ground communication, for example, by a 3G mobile communication system.
  • the network port 112 is a port for connecting a network cable such as a LAN cable and is electrically connected to a wired IF in the CPU 101 .
  • a network cable such as a LAN cable
  • wired IF in the CPU 101 .
  • wired communication that of Ethernet (R) is carried out; however, the communication is not limited thereto.
  • the CPU 101 obtains an individual key (common key) from a key issuing server by an initializing process (described later) carried out in a manufacturing process of the meter device and writes the key to a storage unit (non-volatile memory) therein.
  • a storage unit non-volatile memory
  • an application server electrical-power measuring server, electric-power managing server, or the like
  • authentication with an electric-power measuring server is carried out, and measurement result data of electric power consumption is encrypted and transmitted to the electric-power measuring server.
  • the EEPROM 210 stores configuration information of equipment (for example, configuration information of the wired IF), measurement result data, etc.
  • the debug port 111 is a port for connecting a debugging device to the meter device in order to carry out debugging of software and hardware in the manufacturing process.
  • the debug port 111 serves as a part which inputs the signals of instructions/data to a debugging function (debugging unit) provided in the CPU.
  • the debug port 111 is electrically connected to the debugging unit in the CPU via a terminal (debugging terminal) of the CPU.
  • the AD port 115 is a port to be connected to an external noise generating device in order to input a noise signal for random-number generation in the manufacturing process of the meter device.
  • the input signal is converted to a digital signal by an ADC provided in the CPU 101 .
  • the ports 111 , 115 , and 112 are disposed on a board of the meter device.
  • the disposing positions thereof are not limited to that, and, for example, the ports may be disposed on a housing which stores the meter device.
  • the meter device of the present embodiment is characterized by, in the manufacturing process thereof, safely obtaining an individual key from a key managing server 2 , writing the key to the non-volatile memory of the CPU 101 , and safely retaining the written individual key.
  • FIG. 2 shows an entire configuration of a key writing system for safely writing the individual key to the meter device according to the embodiment of the present invention.
  • the key writing system 1 includes: the meter device 100 of FIG. 1 , an initializing-program writing device 10 , a noise generating device 20 , a VPN terminating device 30 , a FW writing device 40 , and a local network 50 .
  • the key writing system 1 is connected to the key issuing server 2 via a wide area network 3 such as the Internet.
  • the key issuing server 2 issues the individual key for the meter device.
  • the key issuing server 2 is controlled in a safe place.
  • a VPN logical connection 4 is formed by the VPN terminating device 30 between the VPN terminating device 30 and the key issuing server 2 , and the communication between the key writing system 1 and the key issuing server 2 is carried out by utilizing the VPN logical connection 4 .
  • the meter device 100 safely receives and retains the individual key from the key issuing server 2 will be explained.
  • the initializing-program writing device 10 is connected to the debug port 111 of the meter device 100 .
  • the initializing-program writing device 10 writes an initializing program 12 and a public key of the key exchanging server 2 to the non-volatile memory of the meter device 100 via the debugging unit of the meter device 100 .
  • the connection between the writing device and the meter device is cancelled, and the meter device 100 is caused to execute the initializing program.
  • the initializing process is carried out. An outline of an operating example of the initializing process will be described below.
  • the debug port 111 is disabled, and a random number is then generated by utilizing the noise signal from the noise generating device 20 .
  • Combined data of the generated random number and a unique identifier of the meter device is encrypted by the public key of the key exchanging server 2 , and the encrypted data is transmitted to the key exchanging server 2 via the Ethernet 50 and VPN 4 .
  • the encrypted data is decrypted by a secret key corresponding to the public key, and an individual key is allocated to the meter device 100 . Then, a signature of the random number is generated by the secret key, combined data of the individual key and the signature data is encrypted by the random number, and the encrypted data is transmitted to the meter device 100 .
  • the encrypted data is decrypted by the random number to retrieve the individual key and the signature, the validity of the signature is verified based on the public key and the random number, and, when determined valid, the decrypted individual key is written to the non-volatile memory.
  • FW includes an application program having a function of collecting measurement result data measured by the electric-power measuring device 230 of the meter device 100 , encrypting the measurement result data by the individual key, and transmitting the data to the electric-power measuring server or an application program which adjusts the amount of electric power supply based on a control message from the electric-power managing server.
  • the meter device which has undergone the manufacturing process is shipped out and is disposed in a facility such as a user-end house or a building as shown in FIG. 3 .
  • the meter device 100 communicates with an electric-power measuring server 501 or an electric-power managing server 502 via a smart grid network 500 .
  • the electric-power measuring server 501 or the electric-power managing server 502 has a key (common key or public key pair for authentication) same as the individual key of the meter device 100 . By utilizing this individual key, encryption, decryption, and authentication is carried out between the meter device 100 and the server.
  • the electric-power measuring server 501 or the electric-power managing server 502 may be physically in the same device as that of the key issuing server 2 .
  • FIG. 4 shows a hardware configuration of the CPU 101 (microcomputer) provided in the meter device 100 of FIG. 1 .
  • the CPU 101 is provided with: the debugging unit 190 , a control register 150 , the instruction executing unit 120 , the non-volatile memory 130 , a RAM 140 , a unique identifier register 180 , a UART (Universal Asynchronous Receiver Transmitter) 184 , an I2C (Inter-Integrated Circuit) 183 , the wired IF 182 , a random-number generating unit (RNG: Random Number Generator) 160 , the ADC 170 , and a bus 185 .
  • the elements 150 , 160 , 170 , 180 , 184 , 183 , and 182 are mutually connected via the bus.
  • a single bus structure is shown herein; however, a plurality of buses may be mutually coupled via a controller.
  • the debugging unit 190 accesses the non-volatile memory 130 in accordance with the signals of instructions/data input from the external debug port 111 .
  • the control register 150 stores a value for controlling the operation of the debugging unit 190 .
  • the function of the debugging unit 190 can be disabled so that the input from the debug port 111 is not received by the debugging unit 190 .
  • the act of disabling the function of the debugging unit 190 in this manner is sometimes expressed as “disabling the debug port 111 ”.
  • the instruction executing unit 120 executes an instruction code included in a program.
  • the instruction executing unit 120 reads a specified program from the non-volatile memory 130 , deploys the program to the RAM 140 , and executes the program.
  • the RAM 140 also stores operation data generated during program execution.
  • the unique identifier register 180 stores a unique identifier (Chip ID) of the CPU.
  • the unique identifier is, for example, a numerical value expressed by a predetermined number of bits.
  • the ADC 170 converts the noise signal, which is input from the noise generating device 20 (see FIG. 2 ) via the AD port 115 , to a digital signal. For example, an amplitude signal of noise is converted to a bit value of, for example, 8 bits or 16 bits.
  • the noise generating device 20 may utilize, for example, thermal noise generated therein.
  • the wired IF 182 (transmitting unit, receiving unit) carries out wired communication in accordance with a predetermined specification.
  • the present embodiment shows an example in which the wired IF 182 is an Ethernet controller.
  • the wired IF 182 carries out communication by Ethernet with the devices on the local network 50 .
  • the wireless IF 220 (transmitting unit, receiving unit) is provided outside the chip in the example of FIG. 1 ; however, the IF may be provided in the chip.
  • the random-number generating unit 160 generates a random number in accordance with the instruction of the instruction executing unit 120 .
  • the random-number generating unit 160 retains a function which generates a predetermined pseudo random number sequence based on an input parameter in the case in which a pseudo random number method is employed.
  • a noise value which is the value of the bit signal obtained by the ADC 170 may be provided, or the value of an address specified in advance on the RAM 140 or the non-volatile memory 130 or a randomly-determined. address may be provided.
  • the configuration having a circuit which converts internally-generated thermal noise to a random number instead of the pseudo random number sequence may be employed.
  • a noise value which is the value of the bit signal obtained by the ADC 170 may be used as the random number without change.
  • the ADC 170 functions as the random-number generating unit.
  • the I2C 183 carries out serial communication with the EEPROM 210 of FIG. 1 and reads and writes data to/from the EEPROM 210 .
  • the UART 184 subjects the signal, which is to be transmitted to the wireless IF 220 of FIG. 1 , to parallel/serial conversion and subjects the signal, which is from the wireless IF 220 , to serial/parallel conversion.
  • FIG. 5 shows an example of the flow of the initializing process by the meter device 100 .
  • the meter device 100 is connected to the initializing-program writing device 10 of FIG. 2 via the debug port 111 (step S 501 ).
  • the initializing program 12 is written from the debug port 111 to the non-volatile memory 130 in the CPU chip 101 (step S 502 ).
  • the initializing program 12 includes the public key of the key issuing server 2 .
  • step S 503 the connection between the meter device 100 and the writing device 10 is cancelled, and the instruction executing unit 120 of the meter device 100 is caused to execute the initializing program (step S 503 ). If a resetting switch for reactivation is present, activation of the initializing program can be carried out by pressing down the resetting switch; and, if the resetting switch is not provided, the activation can be carried out by once turning off the power of the device and then turning on the power again.
  • the debug port 111 of the meter device 100 is disabled (in other words, the debugging unit 190 is disabled) (step S 504 ). Specifically, the debug port 111 is disabled by writing a predetermined value from the instruction executing unit 120 to the control register 150 of the CPU 101 . As a result, access to the non-volatile memory via the debug port 111 by unauthorized persons can be prevented.
  • communication software included as part of the initializing program is executed, thereby writing a predetermined value (MAC address, storage-destination memory address of a received packet, etc.) is written to the Ethernet controller 182 .
  • a predetermined value MAC address, storage-destination memory address of a received packet, etc.
  • the Ethernet controller 182 is enabled (step S 505 ).
  • a random number R is generated (step S 506 ).
  • the random number utilizes the random-number generating unit 160 or the conversion result of the noise signal by the ADC 170 .
  • the generated random number is used as a temporary key of the communication with the key issuing server.
  • Z EP_Kp[A]: Asymmetric encryption (for example, RSA) of data A by a public key Kp. Output is “Z”.
  • I V_Kp[Msg, Sig] Signature verification according to the public key Kp with respect to a message Msg and a signature Sig. Predetermined padding such as PSS is desired to be used.
  • a verification result is represented by “I” (“1” represents successful verification, “0” represents failed verification).
  • Y E_S[X]: Common key block encryption of “X” by a secret key “S”. “Y” is calculated. The data size of all of “S”, “X”, and “Y” matches a block length.
  • AES128 is taken as an example, and explanation is given on the assumption that the block length is 128 bits (16 bytes); however, using a different encryption algorithm will not cause any problem.
  • ChipID A unique identification number of a chip which can be obtained from the unique identifier register 180 .
  • a message M 1 requesting the key issuing server 2 to issue an individual key is created in accordance with the following equation 1. Then, the created message M 1 is transmitted to the key issuing server 2 via the Ethernet controller 182 (step S 507 ).
  • the unique identification number (ChipID) of the chip stored in the unique identifier register 180 and the generated random number R are combined, thereby obtaining combined data.
  • the combined data is encrypted by the public key of the key issuing server 2 .
  • the message M 1 is obtained.
  • the key issuing server 2 receives the message M 1 and decrypts the message M 1 by the secret key Ks corresponding to the public key Kp. Thus, “ChipID” and the random number R are retrieved.
  • the key issuing server 2 allocates an individual key Kroot to “ChipID” and records the correspondence between “ChipID” and the individual key Kroot in a database of its own. The individual key is allocated so that the same value is not redundant among meter devices.
  • the key issuing server 2 may transmit the recorded correspondence between the individual key Kroot and “ChipID” to a different server (electric-power measuring server or electric-power managing server) by a secure method.
  • the key issuing server 2 generates a message M 2 by following equation 2 and transmits the message to the meter device 100 .
  • the individual key Kroot is safely transmitted to the meter device 100 .
  • the random number R is signed with the secret key Ks of the key issuing server 2 , thereby creating a signature Sig.
  • a conventionally-known arbitrary algorithm can be used as the method of signing. For example, a hash value is calculated by the random number R and a hash function, and the signature Sig is obtained by encrypting the hash value by the secret key Ks.
  • the individual key Kroot and the signature Sig are combined to obtain combined data, and the combined data is encrypted by the random number R. As a result, the message M 2 is obtained.
  • the meter device 100 which has received the message M 2 decrypts the message M 2 by the retaining random number R (step S 508 ).
  • the individual key Kroot and the signature Sig are retrieved by the decryption.
  • step S 509 verification of the signature Sig is carried out.
  • the verification is carried out in the following manner.
  • the signature Sig is decrypted by the public key Kp to obtain a decrypted value.
  • the hash value is calculated from the random number R by using a predetermined hash function (same as that used in the key issuing server 2 ). Whether the calculated hash value matches the decrypted value or not is examined. If matched, it is determined that the verification has succeeded. If not matched, it is determined that the verification has failed.
  • the individual key Kroot is written to the internal non-volatile memory 130 (step S 510 ). If the verification has failed, the fact that the verification failed is displayed (S 521 ). As a method of displaying the verification failure, for example, the display may be carried out by transmitting a data frame indicating an abnormal state to the terminal of an administrator via the Ethernet controller 182 or the wireless IF 220 , or a buzzer may be beeped if a speaker is provided.
  • FW software which realizes individual functions for each delivery destination is written to the meter device, to which the individual key has been written, by the FW writing device 40 .
  • the initializing program receives the data of FW from the FW writing device 40 and stores the data in the RAM 140 .
  • the data of FW is written by giving a transfer instruction to a write-dedicated DMA controller (not shown) while specifying the RAM address of the transfer source, the address of the non-volatile memory serving as the transfer destination, and the block size thereof for each writing unit (for example, block to 512 bytes) of the non-volatile memory 130 .
  • the interface of such writing includes several types, and the method is not limited to a particular method.
  • the meter device of which writing has been finished is then shipped out from a factory.
  • the meter device 100 communicated with the key exchanging server 2 via Ethernet; however, the communication with the key exchanging server 2 may be carried out by wireless communication by using the wireless IF 220 .
  • the wireless IF 220 a mechanism which does not allow third persons to intrude into the wireless network (equipment such as a radio-wave shielding room or general wireless LAN security by encryption) is required.
  • FIG. 6 is a functional block diagram showing a functional configuration of the meter device according to the present embodiment.
  • the debugging unit 190 receives an instruction to write the initializing program and a public-key of the key issuing server from the initializing-program writing device 10 of FIG. 2 via the debug port 111 .
  • the debugging unit 190 writes the initializing program and the public key to the non-volatile memory 130 .
  • An initializing unit 410 is substantiated by execution of the initializing program.
  • a debug-port disabling unit (a debug disabling unit) 404 of the initializing unit 410 disables the debugging unit 190 , thereby disabling the debug port.
  • a LAN enabling unit 405 carries out a predetermined initializing operation, writes a predetermined value (for example, MAC address) to the Ethernet controller 182 , and enables Ethernet communication.
  • a predetermined value for example, MAC address
  • a random number generator 406 generates the random number R by utilizing the random-number generating unit 160 or the AD conversion result of a noise signal by the noise generating device 20 .
  • the encryption by the public key Kp is carried out by a public-key encrypting unit 421 .
  • the public-key encrypting unit 421 encrypts “ChipID ⁇ R” (combination of “ChipID” and the random number R) by the public key Kp and returns the encrypted data to the transmitting-message creating/transmitting unit 407 .
  • the decryption is carried out by using a common-key decrypting unit 423 , and the common-key decrypting unit 423 decrypts the message M 2 by the random number R (common key or temporary key).
  • the individual key Kroot and the signature Sig are retrieved by the decryption.
  • the received-message decrypting/verifying unit 408 carries out verification of the signature Sig with respect to the random number R by using a public-key verifying unit 424 .
  • the public-key verifying unit 424 carries out verification of the signature Sig by using the random number R and the public key Kp.
  • an individual-key storing unit 409 writes the individual key Kroot to the internal non-volatile memory 130 . If the verification has failed, the fact that the verification has failed is displayed.
  • An operating unit 431 carries out communication with a corresponding server (for example, electric-power measuring server, electric-power managing server) upon operation of the meter device by utilizing the public-key encrypting unit 421 , a common-key encrypting unit 422 , the common-key decrypting unit 423 , and the public-key verifying unit 424 .
  • a corresponding server for example, electric-power measuring server, electric-power managing server
  • the combination of “ChipID” and the random number R is encrypted by the public key; however, only the random number R may be encrypted by the public key to transmit them without encrypting “ChipID”.
  • the configuration in which only the random number R is encrypted by the public key and transmitted without transmitting “ChipID” can be also employed.
  • the key issuing server is required to obtain the correspondence between the meter device and the individual key by a different method. For example, a transmission-source address described in a frame received from the meter device may be associated with the issued individual key.
  • the individual key can be safely obtained even during the manufacturing process of the meter device, and the individual key can be prevented from being leaked to unauthorized persons or attackers.
  • the messages M 1 and M 2 transmitted/received via the network interface are encrypted by the public key Kp and the temporary key (random number) R, respectively, it is difficult for a person who is monitoring them to obtain effective information therefrom.
  • the message M 2 includes the signature with respect to “R” hidden in advance and transmitted, and verification thereof is carried out (S 509 of FIG. 5 ); therefore, the message falsified by the attacker who does not know the random number R does not pass the verification in the verifying step and is not accepted by the meter device.
  • the message M 1 includes ChipID (unique identifier) of each individual CPU, and the key issuing server 2 records that. Therefore, whether the meter device is a device produced through an authentic process or not can be checked by “ChipID” by confirming whether this “ChipID” has been recorded in the key issuing server 2 or not.
  • ChipID unique identifier
  • the present invention is not limited to the exact embodiments described above and can be embodied with its components modified in an implementation phase without departing from the scope of the invention. Also, arbitrary combinations of the components disclosed in the above-described embodiments can form various inventions. For example, some of the all components shown in the embodiments may be omitted. Furthermore, components from different embodiments may be combined as appropriate.

Landscapes

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

Abstract

The debugging unit writes a public key of the key issuing server and an initializing program given from outside, to the storage unit. The instruction executing unit reads and executes the initializing program stored in the storage unit. The debug disabling unit disables the debugging unit. The public-key encrypting unit encrypts the random number by the public key in the storage unit, the random number generated by the random number generating unit after the debugging unit is disabled. The transmitting unit transmits the encrypted random number to the key issuing server. The receiving unit receives an individual key encrypted by the random number from the key issuing server. The individual-key writing unit decrypts the encrypted individual key by the random number to obtain the individual key and write the individual key to the storage unit.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application is based upon and claims the benefit of priority from the prior Japanese Patent Application No. 2011-046757, filed on Mar. 3, 2011, the entire contents of which are incorporated herein by reference.
  • FIELD
  • An embodiment of the present invention relates to a communicating device and a communicating method and particularly relates to a technique for safely obtaining an individual key from a key issuing server.
  • BACKGROUND
  • There is known a product having a program protecting function which disables a port for program-writing and debugging of a microcomputer on-chip memory after writing a program in order to prevent the know-how of written software from being leaked and prevent a third person from carrying out unauthorized modification in a one-chip microcomputer for an embedded device.
  • Also, a product having key information and cryptography hardware in a chip is known as a CPU for a security device; however, such a product is generally expensive due to key management cost and small production quantity. Also, there is known a mechanism in which a memory dump and a debugging function are used by a developer in a development process so as to prevent confidential information from being fraudulently obtained.
  • In the case in which the product having the above described program protecting function is applied to a device having a secret key (individual key) for authentication, when the debug port is disabled after the secret key is written to a built-in memory of a chip together with software, the secret key thereafter is safe unless a special technique such as chip analysis is applied.
  • However, if the above described method is simply applied, it is not safe with respect to the threat of internal fraudulent persons since the secret key is handled in plain text in the manufacturing process thereof. In a low-price microcomputer, the method that simply encrypts write data cannot be applied since no secret key is provided in the first place not to mention the multilevel key management employed in a manufacturing process of an IC card. A method capable of safely carrying out secret key writing is required also for a system to which such a microcomputer is applied.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram showing a hardware configuration of a meter device according to an embodiment;
  • FIG. 2 is a drawing showing a configuration of a key writing system according to the embodiment;
  • FIG. 3 is a drawing showing a configuration of a system in which the meter device according to the embodiment communicates with servers;
  • FIG. 4 is a block diagram showing a hardware configuration of a CPU (microcomputer) according to the embodiment;
  • FIG. 5 is a flow chart showing an outline of an individual-key writing procedure according to the embodiment; and
  • FIG. 6 is a block diagram showing a functional configuration of the meter device according to the embodiment.
  • DETAILED DESCRIPTION
  • According to an aspect of the present invention, there is provided with a communicating device.
  • The communicating device includes a storage unit, a debugging unit, an instruction executing unit, a random-number generating unit, a debug disabling unit, a public-key encrypting unit, a transmitting unit, a receiving unit and an individual-key writing unit.
  • The debugging unit writes a public key of the key issuing server and an initializing program given from outside, to the storage unit.
  • The instruction executing unit reads and executes the initializing program stored in the storage unit.
  • The random-number generating generates a random number.
  • The debug disabling unit disables the debugging unit by the initializing program being executed.
  • The public-key encrypting unit encrypts the random number by the public key in the storage unit by the initializing program being executed, the random number generated by the random number generating unit after the debugging unit is disabled.
  • The transmitting unit transmits the encrypted random number to the key issuing server by the initializing program being executed.
  • The receiving unit receives an individual key encrypted by the random number from the key issuing server by the initializing program being executed.
  • The individual-key writing unit decrypts the encrypted individual key by the random number to obtain the individual key and write the individual key to the storage unit, by the initializing program being executed.
  • The present embodiment explained below provides a mechanism which safely embeds and retains an individual key to be used in communication (encryption, authentication) with a server in the side of an electric power company in a manufacturing process of a meter device to be installed in a house of an end-user.
  • After the individual key is safely written by the present embodiment in the manufacturing process, the meter device finally is shipped from the manufacturer and is installed in the house of the end-user. The meter device installed in the house is subjected to the operation of measuring the power consumption of equipment in the house and notifying an electric-power measuring server of the meter measurement results via a network or subjected to the operation of, for example, adjusting the amount of electric power supply based on control messages from an electric-power measuring server.
  • The individual key written to the meter device functions as the root of trust in mutual authentication in the communication between the server thereof and the meter device. For example, in the case in which 802.1x/TLS is utilized as a method of client authentication in a LAN, when authentication is carried out based on the individual key of the meter device, intrusion of an unauthorized device, which does not have the legitimate individual key, into a network and the attack that an unauthorized device impersonates a different meter device can be eliminated.
  • Therefore, such an individual key requires secrecy.
  • During the operations after the meter device is disposed in the user-end house, the individual key stored in a non-volatile memory in a CPU is safe against attacks from the outside.
  • Specifically, the direct access to the internal memory (non-volatile memory) can be disabled by prohibiting the debugger function in the manner described in the section of background techniques even if an attacker obtains the meter device during operation. In this state, advanced techniques such as chip physical analysis or side channel attack are required to obtain the secret key written therein, and the individual key serving as the root of trust is safe against attacks. Although there is communication via a network interface, the individual key is not at risk of leakage as long as the selection and implementation of a protocol for communication with outside are appropriate.
  • However, when focusing on the manufacturing process, there is a large risk. In the manufacturing process, the level of safety often stays only in countermeasures against efficient attacking methods which can be easily implemented, and the countermeasures are not enough in many cases even when the countermeasures for safety are provided.
  • Depending on the characteristics of attacks, the degrees of difficulty of countermeasures are different. The integrity (falsification prevention) of data write to a device and protection of confidentiality have the following characteristics. First, the records of writing processes of respective devices in manufacturing processes are controlled for quality management, and the records remain in many cases. Falsification of information leaves a record; therefore, the possibility that the attack will be found out is high. Executing falsification of information is more difficult than stealing information. On the other hand, in the case in which a file operation on a key writing device is required, when the operation of creating a partial copy of file contents or copying an entire file is carried out by an operator as a non-routine process, the attack of taking away the information can be carried out comparatively easily, and the record thereof is not left in many cases since it is a non-routine process. There are some methods for preventing such take-away of files; however, the methods take cost and require high-level people management. For example, even when a rule such as USB memory connection prohibition is set or the device side is configured to prohibit USB memory connection, these are changed in many cases because of on-site demands. Production of the devices is a labor-intensive process and is often transferred to another factory due to process restructuring. Therefore, it is difficult to control the people management of the production site at a high level.
  • Therefore, the present embodiment provides a mechanism which safely writes an individual key to a meter device and safely retains the written individual key even in such a manufacturing process having a low management level.
  • FIG. 1 shows a hardware configuration of a meter device provided with a communicating device according to the embodiment of the present invention.
  • The meter device 100 is provided with: a CPU 101 serving as the communicating device, an electric-power measuring device 230, a wireless IF 220, an EEPROM (Electrically Erasable Programmable Read-Only Memory) 210, a debug port 111, a network port 112, and an AD port 115. The CPU 101 is a one-chip microcomputer.
  • The electric-power measuring device 230 measures the electric power consumed by equipment provided in a facility such as a user-end house or a building.
  • The wireless IF 220 executes wireless communication in accordance with a predetermined specification. The communication may be wireless communication in accordance with the specification of IEEE802.11 or Zigbee or may be ground communication, for example, by a 3G mobile communication system.
  • The network port 112 is a port for connecting a network cable such as a LAN cable and is electrically connected to a wired IF in the CPU 101. In the present embodiment, as wired communication, that of Ethernet (R) is carried out; however, the communication is not limited thereto.
  • The CPU 101 obtains an individual key (common key) from a key issuing server by an initializing process (described later) carried out in a manufacturing process of the meter device and writes the key to a storage unit (non-volatile memory) therein. During operation after the device is disposed in the user-end house, encrypted or authenticated communication with an application server (electric-power measuring server, electric-power managing server, or the like) is carried out with the individual key. For example, authentication with an electric-power measuring server is carried out, and measurement result data of electric power consumption is encrypted and transmitted to the electric-power measuring server.
  • The EEPROM 210 stores configuration information of equipment (for example, configuration information of the wired IF), measurement result data, etc.
  • The debug port 111 is a port for connecting a debugging device to the meter device in order to carry out debugging of software and hardware in the manufacturing process. The debug port 111 serves as a part which inputs the signals of instructions/data to a debugging function (debugging unit) provided in the CPU. The debug port 111 is electrically connected to the debugging unit in the CPU via a terminal (debugging terminal) of the CPU. When the debug port 111 and the debugging unit are utilized, access (write, read) to the non-volatile memory of the CPU 101 can be made, and instructions can be given to an instruction executing unit.
  • The AD port 115 is a port to be connected to an external noise generating device in order to input a noise signal for random-number generation in the manufacturing process of the meter device. The input signal is converted to a digital signal by an ADC provided in the CPU 101.
  • In the example shown in the drawings, the ports 111, 115, and 112 are disposed on a board of the meter device. However, the disposing positions thereof are not limited to that, and, for example, the ports may be disposed on a housing which stores the meter device.
  • The meter device of the present embodiment is characterized by, in the manufacturing process thereof, safely obtaining an individual key from a key managing server 2, writing the key to the non-volatile memory of the CPU 101, and safely retaining the written individual key.
  • FIG. 2 shows an entire configuration of a key writing system for safely writing the individual key to the meter device according to the embodiment of the present invention.
  • The key writing system 1 includes: the meter device 100 of FIG. 1, an initializing-program writing device 10, a noise generating device 20, a VPN terminating device 30, a FW writing device 40, and a local network 50. The key writing system 1 is connected to the key issuing server 2 via a wide area network 3 such as the Internet. The key issuing server 2 issues the individual key for the meter device. The key issuing server 2 is controlled in a safe place.
  • A VPN logical connection 4 is formed by the VPN terminating device 30 between the VPN terminating device 30 and the key issuing server 2, and the communication between the key writing system 1 and the key issuing server 2 is carried out by utilizing the VPN logical connection 4. Hereinafter, an outline of the operation in which the meter device 100 safely receives and retains the individual key from the key issuing server 2 will be explained.
  • First of all, the initializing-program writing device 10 is connected to the debug port 111 of the meter device 100. The initializing-program writing device 10 writes an initializing program 12 and a public key of the key exchanging server 2 to the non-volatile memory of the meter device 100 via the debugging unit of the meter device 100. Subsequently, the connection between the writing device and the meter device is cancelled, and the meter device 100 is caused to execute the initializing program. As a result, the initializing process is carried out. An outline of an operating example of the initializing process will be described below.
  • First, the debug port 111 is disabled, and a random number is then generated by utilizing the noise signal from the noise generating device 20. Combined data of the generated random number and a unique identifier of the meter device is encrypted by the public key of the key exchanging server 2, and the encrypted data is transmitted to the key exchanging server 2 via the Ethernet 50 and VPN 4.
  • In the key exchanging server 2, the encrypted data is decrypted by a secret key corresponding to the public key, and an individual key is allocated to the meter device 100. Then, a signature of the random number is generated by the secret key, combined data of the individual key and the signature data is encrypted by the random number, and the encrypted data is transmitted to the meter device 100.
  • In the meter device 100, the encrypted data is decrypted by the random number to retrieve the individual key and the signature, the validity of the signature is verified based on the public key and the random number, and, when determined valid, the decrypted individual key is written to the non-volatile memory.
  • Then, connection to the FW writing device 40 is established via Ethernet 50, FW (software) which realizes the functions customized for each delivery destination is downloaded, and the downloaded FW is written to the non-volatile memory of the meter device. In the present embodiment, FW includes an application program having a function of collecting measurement result data measured by the electric-power measuring device 230 of the meter device 100, encrypting the measurement result data by the individual key, and transmitting the data to the electric-power measuring server or an application program which adjusts the amount of electric power supply based on a control message from the electric-power managing server.
  • The meter device which has undergone the manufacturing process is shipped out and is disposed in a facility such as a user-end house or a building as shown in FIG. 3. The meter device 100 communicates with an electric-power measuring server 501 or an electric-power managing server 502 via a smart grid network 500. The electric-power measuring server 501 or the electric-power managing server 502 has a key (common key or public key pair for authentication) same as the individual key of the meter device 100. By utilizing this individual key, encryption, decryption, and authentication is carried out between the meter device 100 and the server. The electric-power measuring server 501 or the electric-power managing server 502 may be physically in the same device as that of the key issuing server 2.
  • Hereinafter, the configuration and working of the meter device 100 which safely obtains and retains the individual key by the initializing process will be explained in further detail.
  • FIG. 4 shows a hardware configuration of the CPU 101 (microcomputer) provided in the meter device 100 of FIG. 1.
  • The CPU 101 is provided with: the debugging unit 190, a control register 150, the instruction executing unit 120, the non-volatile memory 130, a RAM 140, a unique identifier register 180, a UART (Universal Asynchronous Receiver Transmitter) 184, an I2C (Inter-Integrated Circuit) 183, the wired IF 182, a random-number generating unit (RNG: Random Number Generator) 160, the ADC 170, and a bus 185. The elements 150, 160, 170, 180, 184, 183, and 182 are mutually connected via the bus. A single bus structure is shown herein; however, a plurality of buses may be mutually coupled via a controller.
  • The debugging unit 190 accesses the non-volatile memory 130 in accordance with the signals of instructions/data input from the external debug port 111.
  • The control register 150 stores a value for controlling the operation of the debugging unit 190. When a predetermined value is written to the control register 150, the function of the debugging unit 190 can be disabled so that the input from the debug port 111 is not received by the debugging unit 190. The act of disabling the function of the debugging unit 190 in this manner is sometimes expressed as “disabling the debug port 111”.
  • The instruction executing unit 120 executes an instruction code included in a program. The instruction executing unit 120 reads a specified program from the non-volatile memory 130, deploys the program to the RAM 140, and executes the program. The RAM 140 also stores operation data generated during program execution.
  • The unique identifier register 180 stores a unique identifier (Chip ID) of the CPU. The unique identifier is, for example, a numerical value expressed by a predetermined number of bits.
  • The ADC 170 converts the noise signal, which is input from the noise generating device 20 (see FIG. 2) via the AD port 115, to a digital signal. For example, an amplitude signal of noise is converted to a bit value of, for example, 8 bits or 16 bits. Upon generation of the noise signal, the noise generating device 20 may utilize, for example, thermal noise generated therein.
  • The wired IF 182 (transmitting unit, receiving unit) carries out wired communication in accordance with a predetermined specification. The present embodiment shows an example in which the wired IF 182 is an Ethernet controller. In the case of the example of a key embedding system of FIG. 2, the wired IF 182 carries out communication by Ethernet with the devices on the local network 50. The wireless IF 220 (transmitting unit, receiving unit) is provided outside the chip in the example of FIG. 1; however, the IF may be provided in the chip.
  • The random-number generating unit 160 generates a random number in accordance with the instruction of the instruction executing unit 120. The random-number generating unit 160 retains a function which generates a predetermined pseudo random number sequence based on an input parameter in the case in which a pseudo random number method is employed. As the input parameter, a noise value which is the value of the bit signal obtained by the ADC 170 may be provided, or the value of an address specified in advance on the RAM 140 or the non-volatile memory 130 or a randomly-determined. address may be provided. The configuration having a circuit which converts internally-generated thermal noise to a random number instead of the pseudo random number sequence may be employed.
  • Regarding the random number, other than the generation using the random-number generating unit 160, a noise value which is the value of the bit signal obtained by the ADC 170 may be used as the random number without change. In this case, the ADC 170 functions as the random-number generating unit.
  • When the noise value is utilized in this manner, a random number which cannot be easily guessed by a third person is obtained.
  • The I2C 183 carries out serial communication with the EEPROM 210 of FIG. 1 and reads and writes data to/from the EEPROM 210.
  • The UART 184 subjects the signal, which is to be transmitted to the wireless IF 220 of FIG. 1, to parallel/serial conversion and subjects the signal, which is from the wireless IF 220, to serial/parallel conversion.
  • FIG. 5 shows an example of the flow of the initializing process by the meter device 100.
  • First, the meter device 100 is connected to the initializing-program writing device 10 of FIG. 2 via the debug port 111 (step S501).
  • Subsequently, the initializing program 12 is written from the debug port 111 to the non-volatile memory 130 in the CPU chip 101 (step S502). The initializing program 12 includes the public key of the key issuing server 2.
  • Subsequently, the connection between the meter device 100 and the writing device 10 is cancelled, and the instruction executing unit 120 of the meter device 100 is caused to execute the initializing program (step S503). If a resetting switch for reactivation is present, activation of the initializing program can be carried out by pressing down the resetting switch; and, if the resetting switch is not provided, the activation can be carried out by once turning off the power of the device and then turning on the power again.
  • When the present initializing program is executed, the following steps S504 to S511 are carried out.
  • First, the debug port 111 of the meter device 100 is disabled (in other words, the debugging unit 190 is disabled) (step S504). Specifically, the debug port 111 is disabled by writing a predetermined value from the instruction executing unit 120 to the control register 150 of the CPU 101. As a result, access to the non-volatile memory via the debug port 111 by unauthorized persons can be prevented.
  • Subsequently, communication software included as part of the initializing program is executed, thereby writing a predetermined value (MAC address, storage-destination memory address of a received packet, etc.) is written to the Ethernet controller 182. As a result, the LAN communication via the Ethernet controller 182 is enabled (step S505). Then, a random number R is generated (step S506).
  • The random number utilizes the random-number generating unit 160 or the conversion result of the noise signal by the ADC 170. The generated random number is used as a temporary key of the communication with the key issuing server.
  • Here, encrypting processes and constants used in the following explanation will be explained.
  • Z=EP_Kp[A]: Asymmetric encryption (for example, RSA) of data A by a public key Kp. Output is “Z”.
  • I=V_Kp[Msg, Sig] Signature verification according to the public key Kp with respect to a message Msg and a signature Sig. Predetermined padding such as PSS is desired to be used. A verification result is represented by “I” (“1” represents successful verification, “0” represents failed verification).
  • Sig=S_Ks[Msg]: Signature generation by “Ks” with respect to “Msg”.
  • Y=E_S[X]: Common key block encryption of “X” by a secret key “S”. “Y” is calculated. The data size of all of “S”, “X”, and “Y” matches a block length. In the following embodiment, “AES128” is taken as an example, and explanation is given on the assumption that the block length is 128 bits (16 bytes); however, using a different encryption algorithm will not cause any problem.
  • X=D_S[Y]: Common key block decryption of “X” by the secret key “5”.
  • ChipID: A unique identification number of a chip which can be obtained from the unique identifier register 180.
  • Next, a message M1 requesting the key issuing server 2 to issue an individual key is created in accordance with the following equation 1. Then, the created message M1 is transmitted to the key issuing server 2 via the Ethernet controller 182 (step S507).

  • M1=EP_Kp[ChipID∥R]  Equation 1
  • The meaning of the equation 1 is described below. That is, the unique identification number (ChipID) of the chip stored in the unique identifier register 180 and the generated random number R are combined, thereby obtaining combined data. Then, the combined data is encrypted by the public key of the key issuing server 2. As a result, the message M1 is obtained.
  • The key issuing server 2 receives the message M1 and decrypts the message M1 by the secret key Ks corresponding to the public key Kp. Thus, “ChipID” and the random number R are retrieved. The key issuing server 2 allocates an individual key Kroot to “ChipID” and records the correspondence between “ChipID” and the individual key Kroot in a database of its own. The individual key is allocated so that the same value is not redundant among meter devices. The key issuing server 2 may transmit the recorded correspondence between the individual key Kroot and “ChipID” to a different server (electric-power measuring server or electric-power managing server) by a secure method.
  • Then, the key issuing server 2 generates a message M2 by following equation 2 and transmits the message to the meter device 100. As a result, the individual key Kroot is safely transmitted to the meter device 100.

  • Sig=S_Ks[R]

  • M2=E_R[Kroot∥Sig]  Equation 2
  • The meaning of the equation 2 is described below. That is, the random number R is signed with the secret key Ks of the key issuing server 2, thereby creating a signature Sig. A conventionally-known arbitrary algorithm can be used as the method of signing. For example, a hash value is calculated by the random number R and a hash function, and the signature Sig is obtained by encrypting the hash value by the secret key Ks.
  • Then, the individual key Kroot and the signature Sig are combined to obtain combined data, and the combined data is encrypted by the random number R. As a result, the message M2 is obtained.
  • The meter device 100 which has received the message M2 decrypts the message M2 by the retaining random number R (step S508). The individual key Kroot and the signature Sig are retrieved by the decryption.
  • Subsequently, verification of the signature Sig is carried out (step S509). In the case in which the signature is generated by the above described example, the verification is carried out in the following manner. First, the signature Sig is decrypted by the public key Kp to obtain a decrypted value. The hash value is calculated from the random number R by using a predetermined hash function (same as that used in the key issuing server 2). Whether the calculated hash value matches the decrypted value or not is examined. If matched, it is determined that the verification has succeeded. If not matched, it is determined that the verification has failed.
  • If the verification has succeeded, the individual key Kroot is written to the internal non-volatile memory 130 (step S510). If the verification has failed, the fact that the verification failed is displayed (S521). As a method of displaying the verification failure, for example, the display may be carried out by transmitting a data frame indicating an abnormal state to the terminal of an administrator via the Ethernet controller 182 or the wireless IF 220, or a buzzer may be beeped if a speaker is provided.
  • Then, FW (software) which realizes individual functions for each delivery destination is written to the meter device, to which the individual key has been written, by the FW writing device 40. More specifically, the initializing program receives the data of FW from the FW writing device 40 and stores the data in the RAM 140. After the contents of FW are confirmed to be authentic by signature verification, the data of FW is written by giving a transfer instruction to a write-dedicated DMA controller (not shown) while specifying the RAM address of the transfer source, the address of the non-volatile memory serving as the transfer destination, and the block size thereof for each writing unit (for example, block to 512 bytes) of the non-volatile memory 130. The interface of such writing includes several types, and the method is not limited to a particular method. The meter device of which writing has been finished is then shipped out from a factory.
  • In the above process, the meter device 100 communicated with the key exchanging server 2 via Ethernet; however, the communication with the key exchanging server 2 may be carried out by wireless communication by using the wireless IF 220. However, in the case with the intermediation by the wireless IF, a mechanism which does not allow third persons to intrude into the wireless network (equipment such as a radio-wave shielding room or general wireless LAN security by encryption) is required.
  • FIG. 6 is a functional block diagram showing a functional configuration of the meter device according to the present embodiment.
  • The debugging unit 190 receives an instruction to write the initializing program and a public-key of the key issuing server from the initializing-program writing device 10 of FIG. 2 via the debug port 111. The debugging unit 190 writes the initializing program and the public key to the non-volatile memory 130.
  • An initializing unit 410 is substantiated by execution of the initializing program. A debug-port disabling unit (a debug disabling unit) 404 of the initializing unit 410 disables the debugging unit 190, thereby disabling the debug port.
  • A LAN enabling unit 405 carries out a predetermined initializing operation, writes a predetermined value (for example, MAC address) to the Ethernet controller 182, and enables Ethernet communication.
  • A random number generator 406 generates the random number R by utilizing the random-number generating unit 160 or the AD conversion result of a noise signal by the noise generating device 20.
  • A transmitting-message creating/transmitting unit 407 creates the message M1 (for example, above described M1=EP_Kp[ChipID∥R]) requesting the key issuing server 2 to issue an individual key and transmits the message to the key issuing server 2 via the Ethernet controller 182. The encryption by the public key Kp is carried out by a public-key encrypting unit 421. The public-key encrypting unit 421 encrypts “ChipID∥R” (combination of “ChipID” and the random number R) by the public key Kp and returns the encrypted data to the transmitting-message creating/transmitting unit 407.
  • A received-message decrypting/verifying unit 408 receives the message M2 (for example, above described M2=E_R[Kroot∥Sig], Sig=S_Ks[R]) from the key issuing server 2 and decrypts the message M2. The decryption is carried out by using a common-key decrypting unit 423, and the common-key decrypting unit 423 decrypts the message M2 by the random number R (common key or temporary key). The individual key Kroot and the signature Sig are retrieved by the decryption.
  • The received-message decrypting/verifying unit 408 carries out verification of the signature Sig with respect to the random number R by using a public-key verifying unit 424. The public-key verifying unit 424 carries out verification of the signature Sig by using the random number R and the public key Kp.
  • If the verification has succeeded, an individual-key storing unit 409 writes the individual key Kroot to the internal non-volatile memory 130. If the verification has failed, the fact that the verification has failed is displayed.
  • An operating unit 431 carries out communication with a corresponding server (for example, electric-power measuring server, electric-power managing server) upon operation of the meter device by utilizing the public-key encrypting unit 421, a common-key encrypting unit 422, the common-key decrypting unit 423, and the public-key verifying unit 424. For example, by using the common-key encrypting unit 422, the measurement result data obtained by the electric-power measuring device 230 of FIG. 1 is encrypted by the individual key and transmitted to the electric-power measuring server. In this process, encryption by the public key of the server may be carried out by using the public-key encrypting unit 421, or server authentication may be carried out by utilizing the public-key verifying unit 424 and the common-key decrypting unit 423.
  • In the above described embodiment, upon creation of the message M1, the combination of “ChipID” and the random number R is encrypted by the public key; however, only the random number R may be encrypted by the public key to transmit them without encrypting “ChipID”.
  • The configuration in which only the random number R is encrypted by the public key and transmitted without transmitting “ChipID” can be also employed. In this case, the key issuing server is required to obtain the correspondence between the meter device and the individual key by a different method. For example, a transmission-source address described in a frame received from the meter device may be associated with the issued individual key.
  • According to the above described present embodiment, the individual key can be safely obtained even during the manufacturing process of the meter device, and the individual key can be prevented from being leaked to unauthorized persons or attackers.
  • More specifically, since the messages M1 and M2 transmitted/received via the network interface are encrypted by the public key Kp and the temporary key (random number) R, respectively, it is difficult for a person who is monitoring them to obtain effective information therefrom. Also, with respect to the attack in which an attacker impersonates an authentic verifying server, falsifies the message M2, and transmits an unauthorized key to the meter device, the message M2 includes the signature with respect to “R” hidden in advance and transmitted, and verification thereof is carried out (S509 of FIG. 5); therefore, the message falsified by the attacker who does not know the random number R does not pass the verification in the verifying step and is not accepted by the meter device.
  • However, impersonating the meter device and requesting key issue to the key issuing server 2 is possible in the above described communication procedure. The reason therefor is that confirming that it is an authenticate meter device by the initializing program is difficult since it is difficult to hide the initializing program 12, which is written in the manufacturing process, due to a reason in terms of above described management.
  • Therefore, for example, the attack in which: an attacker uniquely creates an unauthentic device not provided with the disabling of the debugging unit, brings the device into the above described production system, takes away the unauthentic device from the production system after receiving issue of an individual key from the key issuing server 2, and exposes the individual key by utilizing the debugging unit cannot be prevented by the above described mechanism alone.
  • However, in some cases, there is a variation of the CPU that is not provided with the disabling of the debugging unit. However, in such a case, upon implementation of the disabling of the debugging unit, the attack can be avoided by confirming the presence of the function by the initializing software and cancelling the processes thereafter in the device that is not provided with the function.
  • The message M1 includes ChipID (unique identifier) of each individual CPU, and the key issuing server 2 records that. Therefore, whether the meter device is a device produced through an authentic process or not can be checked by “ChipID” by confirming whether this “ChipID” has been recorded in the key issuing server 2 or not.
  • As a matter of logic, there is a possibility that the initializing program 12 has been replaced by an unauthentic program. However, if the program on the initializing-program writing device has been replaced by an unauthentic program, evidence of a fraudulent operation remains. Replacing the writing device per se with an unauthentic device is difficult since the write of the initializing program is carried out via the debug port of one-to-one connection and the fraud in which the unauthentic writing device is connected in this process can be found out by appearance.
  • The present invention is not limited to the exact embodiments described above and can be embodied with its components modified in an implementation phase without departing from the scope of the invention. Also, arbitrary combinations of the components disclosed in the above-described embodiments can form various inventions. For example, some of the all components shown in the embodiments may be omitted. Furthermore, components from different embodiments may be combined as appropriate.

Claims (5)

1. A communicating device comprising:
a storage unit;
a debugging unit configured to write a public key of the key issuing server and an initializing program given from outside, to the storage unit;
an instruction executing unit configured to read and execute the initializing program stored in the storage unit;
a random-number generating unit configured to generate a random number;
a debug disabling unit configured to disable the debugging unit by the initializing program being executed;
a public-key encrypting unit configured to encrypt the random number by the public key in the storage unit by the initializing program being executed, the random number generated by the random number generating unit after the debugging unit is disabled;
a transmitting unit configured to transmit the encrypted random number to the key issuing server by the initializing program being executed;
a receiving unit configured to receive an individual key encrypted by the random number from the key issuing server by the initializing program being executed; and
an individual-key writing unit configured to decrypt the encrypted individual key by the random number to obtain the individual key and write the individual key to the storage unit, by the initializing program being executed.
2. The device according to claim 1, wherein
the receiving unit receives signature data of the random number, signed by a secret key of the key issuing server, from the key issuing server; and
the individual-key writing unit carries out verification of the signature data based on the random number and the public key and, only when the verification succeeds, writes the individual key to the storage unit.
3. The device according to claim 1, further comprising
a unique identifier register configured to store a unique identifier; wherein
the public-key encrypting unit encrypts combined data of the random number and the unique identifier by the public key; and
the transmitting unit outputs the encrypted combined data to the key issuing server.
4. The device according to claim 1, wherein
the storage unit stores an application program; and
the instruction-executing unit carries out encrypted communication with a predetermined application server by using the individual key stored in the storage unit by executing the application program.
5. A communicating method comprising:
receiving at a debugging unit a public key of a key issuing server and an initializing program from outside and writing the public key and the initializing program to a storage unit;
reading and executing the initializing program stored in the storage unit;
disabling the debugging unit by the initializing program being executed;
encrypting a random number by the public key in the storage unit by the initializing program being executed, the random number generated after the debugging unit is disabled;
transmitting the encrypted random number to the key issuing server by the initializing program being executed;
receiving an individual key encrypted by the random number from the key issuing server by the initializing program being executed; and
decrypting the encrypted individual key by the random number to obtain the individual key and write the individual key to the storage unit, by the initializing program being executed.
US13/234,518 2011-03-03 2011-09-16 Communicating device and communicating method Active 2031-11-14 US9042553B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-046757 2011-03-03
JP2011046757A JP5225412B2 (en) 2011-03-03 2011-03-03 Communication apparatus and communication method

Publications (2)

Publication Number Publication Date
US20120224695A1 true US20120224695A1 (en) 2012-09-06
US9042553B2 US9042553B2 (en) 2015-05-26

Family

ID=46753304

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/234,518 Active 2031-11-14 US9042553B2 (en) 2011-03-03 2011-09-16 Communicating device and communicating method

Country Status (2)

Country Link
US (1) US9042553B2 (en)
JP (1) JP5225412B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130067178A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Memory dump with expanded data and user privacy protection
US20130074145A1 (en) * 2011-09-15 2013-03-21 Cubic Corporation Secure key self-generation
CN103401681A (en) * 2013-07-02 2013-11-20 北京华大信安科技有限公司 Modulus taking method, modulus taking device and chip
US8645763B2 (en) 2011-09-12 2014-02-04 Microsoft Corporation Memory dump with expanded data and user privacy protection
US20140093074A1 (en) * 2012-09-28 2014-04-03 Kevin C. Gotze Secure provisioning of secret keys during integrated circuit manufacturing
US8938792B2 (en) 2012-12-28 2015-01-20 Intel Corporation Device authentication using a physically unclonable functions based key generation system
US9544141B2 (en) 2011-12-29 2017-01-10 Intel Corporation Secure key storage using physically unclonable functions

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6373888B2 (en) 2016-03-01 2018-08-15 株式会社東芝 Information processing apparatus and control method
EP3618475A1 (en) * 2018-08-27 2020-03-04 Koninklijke Philips N.V. Method and device to establish a wireless secure link while maintaining privacy against tracking
WO2023089882A1 (en) * 2021-11-19 2023-05-25 日立Astemo株式会社 Information processing device and key management device

Citations (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047242A (en) * 1997-05-28 2000-04-04 Siemens Aktiengesellschaft Computer system for protecting software and a method for protecting software
US6105012A (en) * 1997-04-22 2000-08-15 Sun Microsystems, Inc. Security system and method for financial institution server and client web browser
US20020007453A1 (en) * 2000-05-23 2002-01-17 Nemovicher C. Kerry Secured electronic mail system and method
JP2002244757A (en) * 2001-02-19 2002-08-30 Sony Corp Semiconductor circuit
US6601172B1 (en) * 1997-12-31 2003-07-29 Philips Electronics North America Corp. Transmitting revisions with digital signatures
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US7136997B2 (en) * 2001-09-26 2006-11-14 Kabushiki Kaisha Toshiba Radio network system using multiple authentication servers with consistently maintained information
US7143436B2 (en) * 2001-09-25 2006-11-28 Kabushiki Kaisha Toshiba Device authentication management system
US20070086345A1 (en) * 2005-10-14 2007-04-19 Daisuke Yashima Digital content use apparatus and method
US7240345B2 (en) * 2001-02-16 2007-07-03 Sony Corporation Data processing apparatus and associated method
US7299356B2 (en) * 2003-09-02 2007-11-20 Authernative, Inc. Key conversion method for communication session encryption and authentication system
US7310821B2 (en) * 2001-08-27 2007-12-18 Dphi Acquisitions, Inc. Host certification method and system
US7343496B1 (en) * 2004-08-13 2008-03-11 Zilog, Inc. Secure transaction microcontroller with secure boot loader
US20090075630A1 (en) * 2007-09-18 2009-03-19 Mclean Ivan H Method and Apparatus for Creating a Remotely Activated Secure Backup Service for Mobile Handsets
US7555464B2 (en) * 2006-03-01 2009-06-30 Sony Corporation Multiple DRM management
US20090307495A1 (en) * 2008-06-04 2009-12-10 Panasonic Corporation Confidential communication method
US20100046746A1 (en) * 2008-08-25 2010-02-25 Kabushiki Kaisha Toshiba Parameter generating device and cryptographic processing system
US7702921B2 (en) * 2003-03-10 2010-04-20 Giesecke & Devrient Gmbh Loading media data into a portable data carrier
US7707645B2 (en) * 2004-06-24 2010-04-27 Kabushiki Kaisha Toshiba Microprocessor
US7707418B2 (en) * 2003-06-30 2010-04-27 Panasonic Corporation Communication system, communication method, base station apparatus, controller, device, and recording medium storing control program
US20100125735A1 (en) * 2005-09-28 2010-05-20 Ontela Inc. Method and System for Establishing a User-Friendly Data Transfer Service Application Executing Within a Heterogeneous Distributed Service Application Execution Environment
US20100211779A1 (en) * 2009-02-17 2010-08-19 Sundaram Ganapathy S Identity Based Authenticated Key Agreement Protocol
US7873168B2 (en) * 2006-10-18 2011-01-18 Kabushiki Kaisha Toshiba Secret information management apparatus and secret information management system
US20110040964A1 (en) * 2007-12-21 2011-02-17 Lawrence Edward Nussbaum System and method for securing data
US20110055567A1 (en) * 2009-08-28 2011-03-03 Sundaram Ganapathy S Secure Key Management in Multimedia Communication System
US20110071841A1 (en) * 2008-02-15 2011-03-24 Ddn Ip Holdings Limited Distribution of digital content
US7937587B2 (en) * 2008-12-26 2011-05-03 Kabushiki Kaisha Toshiba Communication terminal apparatus and information communication method
US7958370B2 (en) * 2005-09-29 2011-06-07 Hitachi Global Storage Technologies, Netherlands, B.V. System and device for managing control data
US20110213983A1 (en) * 2008-07-21 2011-09-01 Paul Staugaitis Authentication system for a plug-in electric drive vehicle
US20110246767A1 (en) * 2010-03-30 2011-10-06 Pradeep Kumar Chaturvedi Secure virtual machine memory
US20120008766A1 (en) * 2010-07-09 2012-01-12 Research In Motion Limited Securing a component prior to manufacture of a device
US20120023336A1 (en) * 2009-12-10 2012-01-26 Vijayarangan Natarajan System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
US20120143767A1 (en) * 2010-12-02 2012-06-07 Essam Ernest Abadir Secure Distributed Single Action Payment System
US8205083B2 (en) * 2007-04-17 2012-06-19 Kabushiki Kaisha Toshiba System and method for providing program information, and recording medium used therefor
US20120198243A1 (en) * 2003-08-26 2012-08-02 Hideki Matsushima Program execution device
US20120260095A1 (en) * 2011-04-05 2012-10-11 Jerrold Von Hauck Apparatus and methods for controlling distribution of electronic access clients
US8332641B2 (en) * 2009-01-30 2012-12-11 Freescale Semiconductor, Inc. Authenticated debug access for field returns

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003317086A (en) * 2002-04-25 2003-11-07 Taiko Denki Co Ltd Apparatus and method for individual authentication
JP4691337B2 (en) * 2003-08-26 2011-06-01 パナソニック株式会社 Program execution device, certificate authority device
JP2006157336A (en) * 2004-11-29 2006-06-15 Ntt Software Corp Method of transmitting and receiving secret information and program
CN101233525A (en) * 2005-05-26 2008-07-30 松下电器产业株式会社 Data processing device
JP2007249996A (en) 2007-05-02 2007-09-27 Matsushita Electric Ind Co Ltd Program development support device and program installation method

Patent Citations (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6105012A (en) * 1997-04-22 2000-08-15 Sun Microsystems, Inc. Security system and method for financial institution server and client web browser
US6047242A (en) * 1997-05-28 2000-04-04 Siemens Aktiengesellschaft Computer system for protecting software and a method for protecting software
US6601172B1 (en) * 1997-12-31 2003-07-29 Philips Electronics North America Corp. Transmitting revisions with digital signatures
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US20020007453A1 (en) * 2000-05-23 2002-01-17 Nemovicher C. Kerry Secured electronic mail system and method
US7240345B2 (en) * 2001-02-16 2007-07-03 Sony Corporation Data processing apparatus and associated method
JP2002244757A (en) * 2001-02-19 2002-08-30 Sony Corp Semiconductor circuit
US7310821B2 (en) * 2001-08-27 2007-12-18 Dphi Acquisitions, Inc. Host certification method and system
US7143436B2 (en) * 2001-09-25 2006-11-28 Kabushiki Kaisha Toshiba Device authentication management system
US7136997B2 (en) * 2001-09-26 2006-11-14 Kabushiki Kaisha Toshiba Radio network system using multiple authentication servers with consistently maintained information
US7702921B2 (en) * 2003-03-10 2010-04-20 Giesecke & Devrient Gmbh Loading media data into a portable data carrier
US7707418B2 (en) * 2003-06-30 2010-04-27 Panasonic Corporation Communication system, communication method, base station apparatus, controller, device, and recording medium storing control program
US20120198243A1 (en) * 2003-08-26 2012-08-02 Hideki Matsushima Program execution device
US7299356B2 (en) * 2003-09-02 2007-11-20 Authernative, Inc. Key conversion method for communication session encryption and authentication system
US7707645B2 (en) * 2004-06-24 2010-04-27 Kabushiki Kaisha Toshiba Microprocessor
US7953989B1 (en) * 2004-08-13 2011-05-31 Maxim Integrated Products, Inc. Secure transaction microcontroller with tamper control circuitry
US7343496B1 (en) * 2004-08-13 2008-03-11 Zilog, Inc. Secure transaction microcontroller with secure boot loader
US20100125735A1 (en) * 2005-09-28 2010-05-20 Ontela Inc. Method and System for Establishing a User-Friendly Data Transfer Service Application Executing Within a Heterogeneous Distributed Service Application Execution Environment
US7958370B2 (en) * 2005-09-29 2011-06-07 Hitachi Global Storage Technologies, Netherlands, B.V. System and device for managing control data
US20070086345A1 (en) * 2005-10-14 2007-04-19 Daisuke Yashima Digital content use apparatus and method
US7555464B2 (en) * 2006-03-01 2009-06-30 Sony Corporation Multiple DRM management
US7873168B2 (en) * 2006-10-18 2011-01-18 Kabushiki Kaisha Toshiba Secret information management apparatus and secret information management system
US8205083B2 (en) * 2007-04-17 2012-06-19 Kabushiki Kaisha Toshiba System and method for providing program information, and recording medium used therefor
US20090075630A1 (en) * 2007-09-18 2009-03-19 Mclean Ivan H Method and Apparatus for Creating a Remotely Activated Secure Backup Service for Mobile Handsets
US20110040964A1 (en) * 2007-12-21 2011-02-17 Lawrence Edward Nussbaum System and method for securing data
US20110071841A1 (en) * 2008-02-15 2011-03-24 Ddn Ip Holdings Limited Distribution of digital content
US20090307495A1 (en) * 2008-06-04 2009-12-10 Panasonic Corporation Confidential communication method
US8307208B2 (en) * 2008-06-04 2012-11-06 Panasonic Corporation Confidential communication method
US20110213983A1 (en) * 2008-07-21 2011-09-01 Paul Staugaitis Authentication system for a plug-in electric drive vehicle
US20100046746A1 (en) * 2008-08-25 2010-02-25 Kabushiki Kaisha Toshiba Parameter generating device and cryptographic processing system
US7937587B2 (en) * 2008-12-26 2011-05-03 Kabushiki Kaisha Toshiba Communication terminal apparatus and information communication method
US8332641B2 (en) * 2009-01-30 2012-12-11 Freescale Semiconductor, Inc. Authenticated debug access for field returns
US20100211779A1 (en) * 2009-02-17 2010-08-19 Sundaram Ganapathy S Identity Based Authenticated Key Agreement Protocol
US20110055567A1 (en) * 2009-08-28 2011-03-03 Sundaram Ganapathy S Secure Key Management in Multimedia Communication System
US20120023336A1 (en) * 2009-12-10 2012-01-26 Vijayarangan Natarajan System and method for designing secure client-server communication protocols based on certificateless public key infrastructure
US20110246767A1 (en) * 2010-03-30 2011-10-06 Pradeep Kumar Chaturvedi Secure virtual machine memory
US20120008766A1 (en) * 2010-07-09 2012-01-12 Research In Motion Limited Securing a component prior to manufacture of a device
US20120143772A1 (en) * 2010-12-02 2012-06-07 Essam Ernest Abadir Secure Distributed Single Action Payment Authorization System
US20120143767A1 (en) * 2010-12-02 2012-06-07 Essam Ernest Abadir Secure Distributed Single Action Payment System
US20120260095A1 (en) * 2011-04-05 2012-10-11 Jerrold Von Hauck Apparatus and methods for controlling distribution of electronic access clients

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130067178A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Memory dump with expanded data and user privacy protection
US8510523B2 (en) * 2011-09-12 2013-08-13 Microsoft Corporation Memory dump with expanded data and user privacy protection
US8645763B2 (en) 2011-09-12 2014-02-04 Microsoft Corporation Memory dump with expanded data and user privacy protection
US20130074145A1 (en) * 2011-09-15 2013-03-21 Cubic Corporation Secure key self-generation
US8832781B2 (en) * 2011-09-15 2014-09-09 Cubic Corporation Secure key self-generation
US9544141B2 (en) 2011-12-29 2017-01-10 Intel Corporation Secure key storage using physically unclonable functions
US10284368B2 (en) 2011-12-29 2019-05-07 Intel Corporation Secure key storage
US20140093074A1 (en) * 2012-09-28 2014-04-03 Kevin C. Gotze Secure provisioning of secret keys during integrated circuit manufacturing
US9742563B2 (en) * 2012-09-28 2017-08-22 Intel Corporation Secure provisioning of secret keys during integrated circuit manufacturing
US8938792B2 (en) 2012-12-28 2015-01-20 Intel Corporation Device authentication using a physically unclonable functions based key generation system
CN103401681A (en) * 2013-07-02 2013-11-20 北京华大信安科技有限公司 Modulus taking method, modulus taking device and chip

Also Published As

Publication number Publication date
JP5225412B2 (en) 2013-07-03
JP2012186553A (en) 2012-09-27
US9042553B2 (en) 2015-05-26

Similar Documents

Publication Publication Date Title
US9042553B2 (en) Communicating device and communicating method
CN108667608B (en) Method, device and system for protecting data key
JP5563067B2 (en) Method for authenticating access to secured chip by test equipment
CN105144626B (en) The method and apparatus of safety is provided
CN102396251B (en) Validation and/or authentication of device for communication with network
EP3522580B1 (en) Credential provisioning
JP4912879B2 (en) Security protection method for access to protected resources of processor
CN107004083B (en) Device key protection
US20130086385A1 (en) System and Method for Providing Hardware-Based Security
KR100670005B1 (en) Apparatus for verifying memory integrity remotely for mobile platform and system thereof and method for verifying integrity
US20080205651A1 (en) Secure processor system without need for manufacturer and user to know encryption information of each other
JPH10247905A (en) Access qualification authentication device and its method
JP2015065495A (en) Encryption key supply method, semiconductor integrated circuit and encryption key management device
CN104268447A (en) Encryption method of embedded software
WO2007148258A2 (en) Integrity checking and reporting model for hardware rooted trust enabled e-voting platform
JP7087172B2 (en) Unlock PQA
CN101770559A (en) Data protecting device and data protecting method
JP2008005408A (en) Recorded data processing apparatus
EP2701101B1 (en) Information processing devices and information processing methods
WO2009109811A1 (en) Platform security model for networking solution platforms
KR101262844B1 (en) Apparatus for relaying remote meter data for controlling network access and method thereof
US10949527B2 (en) Semiconductor device, authentication system, and authentication method
EP2575068A1 (en) System and method for providing hardware-based security
CN114329522A (en) Private key protection method, device, system and storage medium
KR100880512B1 (en) An entrance terminal with a built-in sam

Legal Events

Date Code Title Description
AS Assignment

Owner name: KABUSHIKI KAISHA TOSHIBA, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HASHIMOTO, MIKIO;YAMANAKA, SHINJI;KOMANO, YUICHI;AND OTHERS;SIGNING DATES FROM 20111020 TO 20111025;REEL/FRAME:027226/0255

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8