A claim of priority is made to Korean Patent Application No. 10-2007-0109598, filed on Oct. 30, 2007, in the Korean Intellectual Property Office, the subject matter of which is hereby incorporated by reference.
Embodiments of the present invention relate to a memory system, and more particularly, to a memory system for sensing an attack, such as a laser attack or a power attack, for example.
Since credit cards were introduced in the 1920s, use of cards has been expanded to include debit cards, identification, stock cards, department cards, etc., as well as credit cards. Recently, integrated circuit (IC) cards, which may be referred to as small computers or microprocessor cards, have attracted attention due to convenience, safety and versatility.
An IC card is configured by attaching a thin semiconductor device to a plastic card, about the size of a credit card. Since the IC cards are more secure than conventional cards, which use magnetic strips, and there is no concern of data loss, IC cards are generally considered the next-generation multimedia information medium. In an IC card, a semiconductor chip, having a thickness of about 0.5 mm, is formed or embedded in plastic, having substantially the same size and thickness of a typical credit card, in the form of chip-on-board (COB).
An IC card that includes a microprocessor is referred to as a “smart card.” The smart card includes a central processing unit, electrically erasable programmable read-only memory (EEPROM) for storing application programs, read only memory (ROM), and random access memory (RAM). The smart card may contain information, such as a user's private key, personal information and key code for security, and provides higher security than conventional magnetic strip cards. It may also store a large amount of data, function as an electronic-purse and can be equipped with various applications. Since the smart card provides two-way communication, distributed data processing and protection of information, it has been used in various fields of applications, such as finance, distribution, factory automation, office automation, medical service, traffic, social security, mobile communication, pay phone, cable television (TV), electric power, gas and water services, education, credit cards, debit cards, prepaid cards, information security, and home banking, for example, and may be used in many other fields of applications.
As stated above, because a smart card has higher security than a conventional magnetic strip card, it may be used to store private or sensitive information, requiring security. In other words, data stored in the smart card may need to be kept securely. If such data were to be revealed to third parties, it may negatively effect both of the user and system operator.
Circuits which are sensitive to security or perform important functions, like smart cards, are equipped with devices and methods for detecting and handling external attacks. For instance, a smart card may include a cryptographic barrier generated with complicated codes to prevent unauthorized access so called “tampering.”
Regardless, illegal manipulation of smart cards still occurs. For instance, circuits may be attacked by externally applying abnormal conditions, such as power supply voltage, operating frequency and/or operating temperature, so that the cryptographic barrier does not function normally. Likewise, radiating a particular portion of a smart card with a laser beam may be used to make circuits act abnormally.
Embodiments of the present invention provide a memory system for detecting attacks, e.g., from hackers, and protecting information stored in a memory area in a circuit, such as a smart card, in which security is important.
According to various embodiments of the present invention, there is provided a memory system that includes a main memory, a sub-memory, a controller, first and second data readers and a comparator. The main memory is configured to store data and the sub-memory is configured to store data extracted from the data stored in the main memory for detection of an attack. The controller is configured to control operations of the memory system through interfacing with a host system. The first data reader is configured to read first data from the main memory based on address information from the controller. The second data reader is configured to store information relating to second data stored in the sub-memory and to read the second data from the sub-memory based on address information from the controller which is the same as the address information received by the first data reader. The comparator is configured to compare the first data read by the first data reader with the second data read by the second data reader to detect the attack.
The sub-memory may back up all data stored at a particular address of the main memory, or only a particular bit in data stored at a particular address of the main memory. The second data reader may store information about the particular address and read the second data from the sub-memory upon receiving the address information, which is the same as the address information about the particular address.
The sub-memory may store 1-bit data representing data stored at each address of the main memory. The 1-bit data may be data stored at a particular input/output (I/O) number per address or a parity bit calculated per address.
The controller may send a repetitive read address to the first data reader as many times as a repetitive read count based on the repetitive read address and the repetitive read count, which may be preset. The controller may change the repetitive read count based on external input information. The first data reader may store data repeatedly read from the main memory in the sub-memory.
The embodiments of the present invention will be described with reference to the attached drawings, in which:
The present invention will now be described more fully with reference to the accompanying drawings, in which exemplary embodiments of the invention are shown. The invention, however, may be embodied in various different forms, and should not be construed as being limited only to the illustrated embodiments. Rather, these embodiments are provided as examples, to convey the concept of the invention to one skilled in the art. Accordingly, known processes, elements, and techniques are not described with respect to some of the embodiments of the present invention. Throughout the drawings and written description, like reference numerals will be used to refer to like or similar elements. Also, in the drawings, the sizes and relative sizes of components and regions may be exaggerated for clarity.
It will be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. In contrast, when an element is referred to as being “directly connected” or “directly coupled” to another element, there are no intervening elements present. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items and may be abbreviated as “/”.
It will be understood that, although the terms first, second, etc., may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first signal could be termed a second signal, and similarly, a second signal could be termed a first signal without departing from the teachings of the disclosure.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” or “includes” and/or “including” when used in this specification, specify the presence of stated features, regions, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, regions, integers, steps, operations, elements, components, and/or groups thereof.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and/or the present application, and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
The main memory 110 stores data, and may be any type of appropriate memory. For instance, when the memory system 100 is a flash memory system, the main memory 110 includes a memory block including multiple memory cells.
The sub-memory 120 stores data extracted from the data stored in the main memory 110 for attack detection. For instance, in various embodiments, the sub-memory 120 may back up all data stored at a particular address in the main memory 110, store 1-bit data at a particular input/output (I/O) number per address in the main memory 110 (e.g., data at I/O number “n” at an address of “n” in the main memory 110), or store a parity bit calculated per address in the main memory 110. Alternatively, the sub-memory 120 may selectively back up particular bits of data stored at a particular address in the main memory 110. For example, the sub-memory 120 may store only even numbered bits in data at an address of “0” or only the first 20 bits in the data at the address of “0”. When storing 1-bit data at a particular I/O number or storing a parity bit, the storing may be performed for every address, or alternatively, just for selected addresses. For example, in various embodiments, after even or odd addresses are selected, the sub-memory 120 may store 1-bit data at the particular I/O number in each even or odd address, or store a parity bit calculated for each even or odd address. In other embodiments, 1-bit data and/or a parity bit may be alternately stored. For example, the sub-memory 120 may store 1-bit data at a particular I/O number for each even address and store a parity bit for each odd address. Accordingly, it is understood that extracting the attack detection data to be stored in the sub-memory 120 from the data stored in the main memory 110 may be performed in a variety ways.
Further, the sub-memory 120 may select (e.g., through the controller 130 and/or the second data reader 150) a first address group and a second address group from addresses of the main memory 110. The first address group may be matched with either data at the particular I/O number per address or the parity bit calculated per address, and the second address group may be matched with the other one of the data at the particular I/O number per address or the parity bit calculated per address.
The sub-memory 120 is a storage area logically separated from the main memory 110, although it may not be physically separated from the main memory 110. For instance, in various embodiments, the main memory 110 and the sub-memory 120 may be implemented in a single memory block including multiple memory cells. Alternatively, the sub-memory 120 may be implemented by logic elements, such as registers or logic gates, instead of memory cells.
The controller 130 controls the operation of the memory system 100 through interfacing with a host system (not shown). Also, the controller 130 sends data read out by the first data reader 140 to the host system and, when an attack (e.g., laser attack) is detected in the main memory 110, the controller 130 informs the host system of the attack.
The first data reader 140 reads data from the main memory 110 based on address information received from the controller 130, and the second data reader 150 reads the data from the sub-memory 120. In addition, the second data reader 150 may store one or more properties, parameters or other information relating to the data stored in the sub-memory 120, and may read the data from the sub-memory 120 when predetermined data read conditions are satisfied. For example, when all data at a particular address in the main memory 110 is stored in the sub-memory 120, the particular address is stored in the second data reader 150. When 1-bit at a particular I/O number in each address of the main memory 110 is stored in the sub-memory 120, the I/O number selection information is stored in the second data reader 150. When a parity bit calculated for each address of the main memory 110 is stored in the sub-memory 120, information indicating this fact is stored in the second data reader 150.
When the second data reader 150 receives the same address information as that sent to the first data reader 140 from the controller 130, it determines whether to read data from the sub-memory 120 based on the data read conditions and reads the data from the sub-memory 120. For instance, when the address received from the controller 130 is the same as a particular address previously stored in the second data reader 150, the second data reader 150 may read data from the sub-memory 120. Alternatively the second data reader 150 may read 1-bit of the data at a particular I/O number in the address or a parity bit corresponding to the address.
The comparator 160 compares first data read by the first data reader 140 with second data read by the second data reader 150 and determines the existence or non-existence of an attack, such as a laser attack. More particularly, when the first data and the second data are different, the comparator 160 determines that an attack has occurred in the main memory 110 and outputs an attack warning signal to the controller 130. The comparator 160 may compare the first data with the second data while the first data is being read, or after the first data reader 140 reads the first data from a current address and before the first data reader 140 reads data from a subsequent address, for example.
When a signal for detecting data from a particular address in the main memory 110 is received from an external host system in operation S130, the controller 130 sends the address information to the first data reader 140 and the second data reader 150 to read data from the main memory 110 and the sub-memory 120, respectively. The controller 130 determines whether an attack has occurred in the main memory 110 according to the process depicted as operation S140, examples of which are discussed below with respect to
Referring to
It is determined in operation S144a whether the first address is the same as the second address, previously stored in the second multiplexer 251. When the first and second addresses are the same, the second multiplexer 251 reads data from the sub-memory 220 in operation 145a and sends the data to the comparator 260 via the second S/As 255. Then, the comparator 260, which also receives the data read from the first address in the main memory 210 via the first S/As 245, compares the data from the main memory 210 with the data from the sub-memory 220 in operation S146a. When the comparator 260 determines that the two data are different from each other in operation S147a, it outputs an attack warning signal in operation S148a. The attack warning signal may be output, for example, by way of an alarm sound or lamp. When the first and second address are not the same, as determined in operation S144a, or when the two data are not different, as determined in operation S147a, the determining process ends, returning to the main process, without outputting the attack warning signal.
Referring to
The comparator 360, which receives the data read from the main memory 310 and the data read from the sub-memory 320, detects I/O data from the data read from the main memory 310 based on the I/O selection information and compares the detected I/O data with the I/O data read from the sub-memory 320 in operation S143b. When the comparator 360 determines that the two I/O data are different from each other in operation S144b, it outputs an attack warning signal in operation S145b. The attack warning signal may be output, for example, by way of an alarm sound or lamp. When the two I/O data are not different, as determined in operation S144b, the determining process ends, returning to the main process, without outputting the attack warning signal.
Referring to
The parity calculator 470 calculates a parity bit with respect to data, which has been read by the first multiplexer 441 from a particular address in the main memory 410 and sent through the first S/As 445. The calculated parity bit is compared with a parity bit previously stored in the sub-memory 420.
The comparator 460 compares the parity bit calculated in operation S142c with the parity bit read from the sub-memory 420 and determines whether the two parity bits are different from each other in operation S144c. When the comparator 460 determines that the two parity bits are different from each other in operation S144c, it outputs an attack warning signal in operation S145c. The attack warning signal may be output, for example, by way of an alarm sound or lamp. When the two parity bits are not different, as determined in operation S144c, the determining process ends, returning to the main process, without outputting the attack warning signal.
The controller 530 sends a repetitive read address to the first data reader 540 a predetermined number of times, as indicated by a repetitive read count, based on the repetitive read address and the repetitive read count, which may be preset. In response, the data at the same address (e.g., of main memory 510) is repeatedly read and compared to previously read data from the repetitive read address to determine whether the data at that address has been attacked. The repetitive read count may vary based on factors, such as a user's selection information, time, operating conditions, etc. Accordingly, the controller 530 may change the repetitive read count based on external input information before starting the operation.
The first data reader 540 is controlled by the controller 530 to store the data repeatedly read from the main memory 510 in the sub-memory 520, which (temporarily) stores the data read by and received from the first data reader 540. In various embodiments, the first data reader 540 may store only data read first or data read most recently from the repetitive read address in the sub-memory 520.
When only data read first is stored, the first data reader 540 sends the data read first from the repetitive read address to the sub-memory 520, which stores the data. Then, when the first data reader 540 subsequently reads data additional times from the repetitive read address, the data is sent to the comparator 560, which compares the subsequently read data with the first read data stored in the sub-memory 520 and sent to the comparator 560 via the second data reader 550. In other words, the comparator 560 compares the stored first read data with second read data from the repetitive read address, then with third read data from the repetitive read address, and so on, until the repetitive reading and comparison are complete. The comparator 560 determines the existence or non-existence of an attack based on the comparison results.
When only most recent data is stored, the first data reader 540 sends the most recently read data from the repetitive read address to the sub-memory 520, which stores the data, e.g., after erasing the previously stored data from the repetitive read address. For example, the first data reader 540 sends first read data from the repetitive read address to the sub-memory 520 to be stored. When second read data is read from the repetitive read address, the comparator 560 compares the second read data with the first read data (stored in the sub-memory 520), and the first data reader 540 erases the first read data from the sub-memory 520 and stores the second read data in the sub-memory 520. Then, when third data is read from the repetitive read address, the comparator 560 compares the third read data with the second read data (stored in the sub-memory 520), and the first data reader 540 erases the second read data from the sub-memory 520 and stores the third read data in the sub-memory 520. This operation is repeated every time data is read from the repetitive read address until last read data is stored in the sub-memory 520. In other words, when the repetitive read count is “n”, the comparator 560 repeats the comparison until data read from the repetitive read address for the n-th time is compared with data read from the repetitive read address for the (n−1)-th time. In various embodiments, the data stored in the sub-memory 520 may be a predetermined number of bits (e.g., 0th through 20th bits) or one particular bit of data corresponding to the repetitive read address. The comparator 560 determines the existence or non-existence of an attack based on the comparison results.
In this example, the first data reader 540 stores only certain data repeatedly read in the sub-memory 520. However, the embodiments are not restricted to the example described above. For example, the first data reader 540 may store all data repeatedly read in the sub-memory 520. In this case, the comparator 560 compares all data at the same time to determine the existence or non-existence of an attack.
The controller 530 may also output signals indicating the beginning and end of the repetitive reading to the second data reader 550. The second data reader 550 reads data from the sub-memory 520 during the repetitive reading.
According to various embodiments of the present invention, at least two of the first through fifth embodiments may be used together. For instance, the fifth embodiment can be used together with one of the first through fourth embodiments. In this case, data read from a predetermined repetitive read address is compared through repetitive reading to determine the existence of non-existence of an attack, and data read from other addresses are compared by a method explained in one of the first through fourth embodiments to determine the existence of non-existence of an attack. In an operation such as this, the sub-memory 520 may include a first memory area for storing repeatedly read data and a second memory area for storing data in accordance with at least one of the other embodiments, e.g., all data read from a particular address of the main memory 510, 1-bit data read from a particular I/O number of each address of the main memory 510, and/or a parity bit calculated per address of the main memory 510. The second data reader 550 may read the data from the first memory area during repetitive reading and otherwise read the data from the second memory area, so that data read by the first data reader 540 is compared with the data read by the second data reader 550 to determine the existence or non-existence of an attack.
In operation S210, it is determined when a signal for reading data from a particular address of the main memory 510 has been received from the external host system. The controller 530 then controls the first data reader 540 to read data from the particular address of the main memory 510 in operation S215. The controller 530 also compares the current particular address with the repetitive read address in operation S220. When the current address is not the same as the repetitive read address, the process proceeds to operation S255, discussed below. When the current address is the same as the repetitive read address, the controller 530 controls the first data reader 540 to store the data read from the main memory 510 in the sub-memory 520 in operation S225.
Next, the controller 530 counts the number of repetitive readings in operation S230. When it is determined that the count is less than the repetitive read count in operation S235, operations S225 and S230 are repeated. In other words, the controller 530 repeatedly reads data of the current particular address. When the count result is equal to (or greater than) the repetitive read count, the comparator 560 compares data stored in the sub-memory 520 with each other in operation S240. When it is determined that data different from the other data exists in operation S245, an attack warning signal is output in operation S250. The form of the attack warning signal has been explained with reference to
In operation S255, it is determined whether reading from the main memory 510 has been completed. When it has not been completed, another (subsequent) address is selected in operation S260 and the operations S215 through S255 are repeated. Otherwise, the process ends.
As indicated above, the method illustrated in
According to the various embodiments described herein, an attack on an IC card, such as a laser attack, can be detected in a memory system storing sensitive information, such as private user keys and personal information requiring security. Accordingly, the information is protected from being revealed and reliability of the memory system is enhanced.
While the present invention has been described with reference to exemplary embodiments, it will be apparent to those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the present invention. For example, embodiments of the present invention can be used for any kinds of memory systems requiring security that may be exposed to external attacks. For example, the present invention may be incorporated into flash memory systems, memories used in card systems, flash memory in card systems, and the like. Further, the various embodiments are not restricted to laser attacks, and can be used to detect power attacks, for example, performed by instantaneously changing electric power, as well as other types of attacks. Therefore, it should be understood that the above embodiments are not limiting, but illustrative.
Number | Date | Country | Kind |
---|---|---|---|
10-2007-0109598 | Oct 2007 | KR | national |