A claim of priority under 35 U.S.C. § 119 is made to Korean Patent Application No. 2004-106395 filed on Dec. 15, 2004, the entire contents of which are hereby incorporated by reference.
Example embodiments of the present invention generally relate to an integrated circuit (IC) chip card, for example, a smart card. In particular, example embodiments of the present invention relate to an IC chip card capable of determining whether data of the IC chip card has been attacked by an external source.
Generally, integrated circuit (IC) chip cards are capable of processing various transactions. An IC chip card may include a microprocessor, card operation systems, security modules, and memories. IC chip cards may have a security advantage over conventional magnetic stripe cards. For example, data cannot be easily erased in an IC chip card. Accordingly, IC chip cards may be considered the next generation of information media devices. However, as IC chip cards have increasingly been used in finance, communications, distribution, and other industries, security concerns regarding the IC chip cards have increased.
Conventionally, an IC chip card has been protected from external attacks, for example, hacking, by the use of detectors capable of detecting current, temperature, frequency, and light fluctuations, and also de-capsulation of the IC chip. If a fluctuation occurs, internal circuits including the microprocessors may be reset when at least one of the detectors outputs a detection signal. However, data may be lost or damaged by an external attack or an abnormal operation by a circuit. In addition, the detectors may not easily detect logical invasions, because the detectors may not be distributed throughout the entire IC chip card, but rather detectors may be located in limited regions. In addition, it may be difficult to detect external attacks from non-detectable light, temperature, and/or frequency.
In an example embodiment of the present invention, an integrated circuit (IC) chip card includes a memory device adapted to store data including a stored integrity identification value, an integrity identification value generating unit adapted to calculate an integrity identification value of the data, and a microprocessor adapted to compare the stored integrity identification value with the calculated integrity identification value to determine whether the data of the memory device has been compromised.
In another example embodiment of the present invention, a method of detecting whether data of a memory device in an integrated circuit (IC) chip card has been compromised includes receiving a stored integrity identification value output from the memory device, calculating an integrity identification value for the data of the memory device, and comparing the calculated integrity identification value with the stored integrity identification value to determined whether the data of the memory device has been compromised.
The accompanying drawings are included to provide a further understanding of example embodiments of the invention, and are incorporated in and constitute a part of the specification. The drawings illustrate example embodiments of the present invention and, together with the description, serve to explain principles of the present invention, wherein in the drawings:
Hereinafter, example embodiments of the present invention in conjunction with the accompanying drawings will be described. Although example embodiments of the present invention will be described, the present invention is not limited thereto. It will be apparent to those skilled in the art that various substitution, modifications and changes may be thereto without departing from the scope of the invention. Like reference numerals refer to similar or identical elements throughout the specification and the drawings.
The transmitting/receiving interface unit 10 may transfer data, addresses, and/or commands between the IC chip card 100 and an external device (not shown). The ROM 20 may be used as a program memory, and may set a command operating system and a basic command. The RAM 30 may manage temporary data and store interim calculation results in a working register. Although not shown in
According to an example embodiment of the present invention, to determine the integrity of programming data, a calculation unit 75 may be used to determine whether data has been tampered with by comparing an integrity identification value with a previously calculated and stored integrity identification value.
The integrity identification value generation unit 70 may include a controller 71, a storage register 73, and/or a calculation block 75. The controller 71 may detect the processor 40, a memory (e.g., ROM, RAM, and/or NVM) and the memory's operational state (e.g., writing, reading, and/or erasing). Accordingly, based on the detected information, the controller 71 may control the calculation unit 75. The calculation block 75 may receive data from a bus 80 and calculate the data. The calculation block 75 may receive data from the bus 80 and obtain the integrity identification value independent of the processor 40. Therefore, additional calculation time may be unnecessary.
The integrity identification value obtained from the calculation of the data may be stored in the storage register 73. A calculation for generating an integrity identification value can be performed by dividing each of memories into the operation state of the memory. Therefore, an example embodiment of the present invention may detect whether data has been compromised by only selecting data necessary to be protected. In addition, if the processor 40 is writing to the memory, and information such as a high-voltage is applied to the controller 71, the controller 71 may automatically stop a calculation, because prior to actual writing the memory, a dummy high-voltage may be applied to the memory, and therefore a calculation is not needed. When the high voltage is disabled, the calculation is continued.
According to an example embodiment of the present invention, an integrity identification value stored in a memory (e.g., ROM, RAM, and/or NVM) is calculated prior to when a command is applied to an IC chip card for the first time or before the IC chip card is provided to a user, and then the data values, together with the integrity identification value, may be stored in the memory. The integrity identification value (IIV) can be obtained by using the integrity identification value generation unit 70 and a separate program. The processor 40 may receive an integrity identification value from the storage register 73 and compare the IIV with the integrity identification value that was previously calculated and stored in memory. The processor 40 may detect whether or not data has been compromised. In an example embodiment, if both the values are equal, the data has not been compromised. If the compared values are not equal, the data has been compromised by an external attack. Accordingly, it is possible to protect internal data from damage by performing subsequent operations such as a rest or stop operation.
In an example embodiment of the present invention, if the bus 80 processes data in units of bytes, one CRC calculator may be provided for each byte. An “exclusive or” (XOR) and a shift register may perform the CRC calculation, which may be capable of processing an input of 8-bits in parallel. Referring to
Although the present invention has been described in connection with example embodiments of the present invention illustrated in the accompanying drawings, it is not limited thereto. It will be apparent to those skilled in the art that various substitution, modifications and changes may be thereto without departing from the scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2004-106395 | Dec 2004 | KR | national |