EP2568655B1 - Method for authenticating a storage device, machine-readable storage medium, and host device - Google Patents
Method for authenticating a storage device, machine-readable storage medium, and host device Download PDFInfo
- Publication number
- EP2568655B1 EP2568655B1 EP11777615.3A EP11777615A EP2568655B1 EP 2568655 B1 EP2568655 B1 EP 2568655B1 EP 11777615 A EP11777615 A EP 11777615A EP 2568655 B1 EP2568655 B1 EP 2568655B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- sampling function
- sampling
- storage device
- version
- stored
- 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.)
- Not-in-force
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/00094—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised record carriers
- G11B20/00123—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which result in a restriction to authorised record carriers the record carrier being identified by recognising some of its unique characteristics, e.g. a unique defect pattern serving as a physical signature of the record carrier
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/00855—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a step of exchanging information with a remote server
- G11B20/00862—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a step of exchanging information with a remote server wherein the remote server can grant the permission to use a content
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
- G11B20/0092—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which are linked to media defects or read/write errors
- G11B20/00963—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving measures which are linked to media defects or read/write errors wherein said defects or errors are not generated on purpose, e.g. random defect patterns occurring during the normal manufacture
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/60—Solid state media
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Definitions
- the present invention relates to an authentication method and apparatus for identifying a target device, and more particularly, to a method and apparatus for authenticating a storage device.
- NVM Non-Volatile Memory
- SSD Solid State Disk
- HDW hardware
- DRM Content Protection for Recordable Media
- SD Secure Digital
- AACS Advanced Access Content System
- PKI Public Key Infrastructure
- WO 98/41979 A1 describes a technique for copy-protecting an optical medium in which the optical medium is purposefully damaged when information stored thereon is initially accessed so that subsequent attempts at accessing the information can be detected by the errors purposefully generated.
- a physical change to the optical disk is detected as a number, density or pattern of errors in a fixed sampling of locations in an area of the optical disk.
- an aspect of the present invention is to provide a method that prevents cloning in advance, is efficient in mass production, and verifies suitability of a device at the time of transaction.
- a method according to claim 1 there is provided a method according to claim 1.
- a machine-readable storage medium in which a program for executing the method for authenticating a storage device is recorded.
- a host device including the machine-readable storage medium.
- efficiency in authenticating a storage medium may be maximized using one of a step of sampling a few of all unit storage areas, a step of updating a sampling function used in the sampling step, and a step of determining subsumption relation or similarity between a result of a test with respect to the sampled areas and a reference physical property, or a combination thereof.
- efficiency in a verification step may be maximized by sampling a few of all unit storage areas.
- a low collision probability comparable to an authentication method performed with respect to all unit storage areas, may be secured by applying a random sampling function and utilizing information of areas greater than or equal to a predetermined threshold value.
- the threat of cloning caused due to a weak point and disclosure of a sampling function may be minimized by updating the sampling function.
- complexity of a cloning attack may be decreased to cloning of the second, third, and tenth block information, as opposed to cloning of an entire memory. Accordingly, embodiments of the present invention may increase the complexity of the cloning attack by using variable sampling and updating the sampling function.
- a most basic required security technology in a scenario that sells/rents high-value content using a storage device or a memory device is an anti-cloning technology that prevents massive illegal H/W cloning.
- To increase complexity of an H/W cloning attack it is desirable to utilize a unique property of each storage device, that is, a physical property that has a low collision probability.
- the embodiments of the present invention provide a method that authenticates a storage device by utilizing a unique physical property of the storage device (for example, a positional distribution of a reference unit storage area having a physical defect such as a bad block), a method of effectively authenticating the storage device by sampling a few of all unit storage areas of the storage device, and a method of updating a sampling function.
- the unit storage areas may form the storage device, and may refer to storage areas that are distinguishable and have the same size, for example, pages or cells (bits, bytes, words, and the like).
- a general memory may have a layer structure in which cells form a page, pages form a block, and blocks form the entire memory.
- FIG. 1 is a diagram illustrating a configuration of an authentication system according to an embodiment of the present invention.
- An authentication system 100 includes a sever 110, a host device 200 that is connected to the server 110 through a network 120 such as the Internet, and a storage device 300 that is disposed inside or outside the host device 200 and is wiredly or wirelessly connected to the host device 200.
- Examples of the host device 200 may include a computer, a laptop, a mobile device, a portable device, an internet protocol television, a portable media player, and a Personal Digital Assistant (PDA), but the examples may not be limited thereto.
- Examples of the network 120 may include a Local Area Network (LAN), a Wireless Local Area Network (WLAN), a Wide Area Network (WAN), the Internet, and a Small Area Network (SAN), but the examples may not be limited thereto.
- LAN Local Area Network
- WLAN Wireless Local Area Network
- WAN Wide Area Network
- SAN Small Area Network
- the host device 200 may request update information of a sampling function from the server 110, and the server 110 may transmit update data to the host device 200.
- the server 110 may compare a version of the sampling function received from the host device 200 and a version of a recent sampling function stored in a database (not illustrated) of the server 110, and may transmit, to the host device 200, the recent sampling function itself or difference data corresponding to a difference between the two versions of the sampling functions when the version of the received sampling function is lower than the version of the recent sampling function. Also, the server 110 may transmit the difference data and update data including a command to instruct copy, insertion, or deletion of data, so as to reduce a size of the update data.
- the server 110 may notify the host device 200 that updating is not required through a message.
- the server 110 may not perform the comparison process, and may transmit the recent sampling function to the host device 200.
- the comparison process may be performed in the host device 200, and the host device 200 may determine whether to perform updating based on a result of the comparison.
- Examples of the storage device 300 may include Non-Volatile Memory (NVM) such as a Solid State Disk (SSD) and a flash memory card. Although embodiments of the present invention will be described based on a NAND flash memory, the embodiments may not be limited thereto.
- Examples of the storage device may include a floppy disk, a flexible disk, a hard disk, a magnetic tape, a compact disc read-only memory (CD-RM), an optical disc, a Blue-ray disc, a RAM, a Programmable Read-Only Memory (PROM), an Erasable PROM (EPROM), and a FLASH-EPROM.
- FIG. 2 is a diagram illustrating a detailed configuration of the storage device 300 of FIG. 1
- FIG. 3 is a diagram illustrating a detailed configuration of the controller 230 of FIG. 1
- the host device 200 may be a personal computer
- the storage device 300 may be a NAND flash memory device contained in a memory slot of the personal computer.
- the host device 200 and the storage device 300 may perform data communication through a bus in the host device 200.
- the host device 200 may include a controller 230 corresponding to a verifier, and the controller 230 may authenticate the storage device 300. Authentication of the storage device 300 may be performed through software and hardware authentication procedures.
- the controller 230 may include an authenticator to perform software and hardware authentication, a sampling function block 240 to set a sampling size and to perform sampling of unit storage areas of the storage device 300 based on a sampling function for hardware authentication, and a sampling function updater 250 to select a sampling function and to update the sampling function.
- the host device 200 may include a wired or wireless communication unit 210 to perform communication with the server 110, and a storage unit 220 for storing data.
- the storage device 300 may include a host interface 310 to perform data communication with the host device 200, a memory 320 including unit storage areas having the same size, and a memory controller 330 to perform data communication with the controller 230 of the host device 200, to provide a response in response to a request from the host device 200, and to output, to the memory 320, a control command with respect to a predetermined unit storage area, such as reading, writing (that is, programming), or deleting.
- the memory controller 330 may include an Error Correction Code (ECC) to detect and correct an error included in data read from the memory 320.
- ECC Error Correction Code
- the error detection and correction technologies may effectively restore data that is damaged by various causes.
- data may be damaged by various causes in a process of storing data in a memory, and data may be damaged by perturbations of a data transmission channel through which the data is transmitted from a source to a destination.
- Various methods have been provided so as to detect and correct damaged data.
- Well-known error detection technologies may include a Reed-Solomon (RS) code, a Hamming code, a Bose-Chaudhuri-Hocquenghem (BCH) code, a Cyclic Redundancy Code (CRC) code, and the like.
- RS Reed-Solomon
- BCH Bose-Chaudhuri-Hocquenghem
- CRC Cyclic Redundancy Code
- source data from a host device may be stored in a memory together with ECC data.
- the ECC data may be used for correcting an error occurring during a read operation of the memory, and a number of error bits that may be corrected by the ECC data may be limited.
- FIG. 4 is a flowchart illustrating a method of authenticating a storage device according to an embodiment of the present invention.
- the authentication method may include a step of selecting a sampling function (step S5), a step of determining a version of the sampling function (step S10), a step of updating the sampling function (step S20), a step of sampling unit storage areas (step S30), a step of obtaining a physical property of sampled unit storage areas (step S40), a step of obtaining authentication information (step S50), a step of performing primary authentication information verification (step S60), and a step of performing secondary authentication information verification (step S70).
- the sampling function updater 250 selects one of a plurality of different types of sampling functions stored in the storage unit 220 of the host device 200.
- the sampling function updater 250 may request sampling function selection information from the storage device 300, and the memory controller 330 of the storage device 300 may transmit the sampling function selection information stored in the memory 320 to the host device 200.
- the sampling function selection information may have a predetermined manufacturer, or may be in a form of a file stored in the memory 320.
- the sampling function selection information may be information that designates a predetermined type (or category) of sampling function, and the information may be a number mapped to a predetermined type of sampling function (for example, 1 may correspond to a first type, 2 may correspond to a second type, and the like), or may be a predetermined type, condition, or the like. Also, the sampling function selection information may further include other information such as a variant or an initial value input to the predetermined type of sampling function.
- the sampling function updater 250 may select a corresponding sampling function based on the sampling function selection information received from the storage device 300.
- the sampling function selection information may designate a predetermined type of sampling function, and the designated type of sampling function may not be included in the host device 200 and thus, the sampling function selection information may designate various types of sampling functions based on priorities.
- the sampling function updater 250 may select a sampling function of a second priority when a sampling function of a first priority does not exist.
- the sampling function updater 250 may receive the designated type of sampling function from the server 110 or the storage device 300.
- updating may include the reception of a sampling function.
- step S10 The step of determining the version of the sampling function (step S10) and the step of updating the sampling function (step S20) will be described under an assumption that the designated type of sampling function is stored in the host device 200.
- the designated type of sampling function stored in one of the server 110 and the storage device 300 may be received or the designated type of sampling functions stored in the server 110 and the storage device 300 may be compared and received.
- the sampling function updater 250 may compare a version of a selected sampling function stored in the storage unit 220 of the host device 200 (hereinafter, referred to as a first sampling function) with a version of a sampling function of another available device, so that the sampling function block 240 may use a recent sampling function.
- the sampling function updater 250 may compare the version of the first sampling function and a version of a sampling function stored in the storage device 300 (hereinafter, referred to as a second sampling function).
- the sampling function updater 250 may request the second sampling function or the version of the second sampling function, and the memory controller 330 of the storage device 300 may transmit the second sampling function or the version of the second sampling function stored in the memory 320 to the host device 200.
- the second sampling function stored in the memory 320 may be encrypted by a License agency or a reliable third party so that only a legal host device may decrypt the second sampling function, and the sampling function updater 250 may decrypt the second sampling function received from the storage device 300 through use of an encryption key that the sampling function updater 250 is aware of in advance.
- the sampling function updater 250 may compare the version of the decrypted second sampling function or the version of the second sampling function with the version of the first sampling function.
- the sampling function updater 250 may request a sampling function stored in the server 110 (hereinafter, referred to as a third sampling function) or a version of the third sampling function through use of the wired or wireless communication unit 210, and the server 110 may transmit, to the host device 200, the third sampling function or the version of the third sampling function stored in a database (not illustrated).
- the sampling function updater 250 may compare the received third sampling function or the version of the third sampling function with the version of the first sampling function.
- the sampling function updater 250 may update the first sampling function to be used by the sampling function block 240.
- the first sampling function may be replaced with the second or third sampling function.
- the sampling function updater 250 may determine the version of the second sampling function stored in the storage device 300, and when the version of the second sampling function is lower than the version of the third sampling function, the sampling function updater 250 may replace the second sampling function with the third sampling function.
- the sampling function updater 250 may encrypt the third sampling function received from the server 110 through use of an encryption key that another legal host device may be aware of (for example, an encryption key provided from a License agency of the storage device) so that the other legal host device may decrypt the encrypted third sampling function, and may store the encrypted third sampling function in the storage device 300.
- update data of the sampling function may be the sampling function itself or variants input to the sampling function.
- variants may be input to a sampling function and the variants may be received from the outside of the host device 200 through the updating step (step S20).
- the host device 200 may operate an operation performed in the off-line mode. Also, the host device 200 may compare at least two of the first through third sampling functions, and may select a recent sampling function or an appropriate sampling function.
- the sampling function block may sample (select) unit storage areas corresponding to a predetermined sampling size, based on the predetermined or previously obtained sampling size.
- a size of unit storage areas of the memory 320 (for example, a number of unit storage areas), which are to be verified, that is, the sampling size, may be a value stored in advance, a value received from the server 100, a value obtained from the storage device 300, a value calculated from a predetermined calculation equation, or a value randomly set using a random number generator.
- the sampling size is randomly set, a value that is less than a number of all blocks of the memory 320 may be set to be a maximum value.
- the memory 320 may be formed of a plurality of blocks, and each block has a size of 64 Kbytes through 512 Kbytes and deletion may be performed based on a block unit.
- a single block may be formed of a plurality of pages, and each page has a size of 512 bytes through 8 Kbytes and may be a basic unit of reading and writing.
- An NOR flash memory may perform reading and writing based on a byte or word unit.
- Each page may have an additional data area which is referred to as an Out Of Band (OOB) or a spare area of a few through a few hundred bytes. The spare area may be used for recording bad block marking, ECC, file system information, and the like.
- OOB Out Of Band
- the memory 320 may have a Bad Block Table (BBT) that records statuses of all the blocks of the memory 320, and each block may have a status of "good", “bad", or “reserved".
- BBT Bad Block Table
- the "reserved" status indicates a block that may not be programmed or deleted by a user who is different from a manufacturer of the storage device, and that may only be read by the user.
- the bad block table may be stored in a block (desirably, a block in the reserved status), and the bad block table may be stored in a block in the reserved status.
- FIGS. 5 and 6 are diagrams illustrating a step of setting a sampling size.
- FIG. 5 illustrates a poor cell pattern of a predetermined page, and a poor cell 420 having a physical defect may be expressed as "F" in a 6*6 cell array 410 and 420.
- the sampling size may be set based on a probability that a pair of corresponding areas of two manufactured storage devices have an identical poor cell pattern (that is, an identical positional distribution).
- Equation 1 used for calculating the sampling size is expressed as below.
- CR denotes an average collision ratio, that is, a probability that a pair of corresponding areas x and y (each having N bits) of two manufactured storage devices have an identical pattern.
- a cell may correspond to a single bit.
- Equation 2 may be formulated in association with Equation 1.
- Equation 2 X denotes production, and C denotes an expected value of an average collision probability. That is, when two storage devices from the production X, CR may be approximated to C/X.
- N denotes a minimum number of cells to be sampled, and the calculated sampling size may be set to z pages including N cells or to blocks (z is a natural number).
- a bit unit may be replaced with a block unit.
- N denotes a minimum number of blocks to be sampled.
- locations of unit storage areas may be arbitrarily set. That is, unit storage areas corresponding to the set sampling size may be sampled from a predetermined location of the memory 320, or unit storage areas may be randomly sampled through use of a random number generator.
- FIG. 7 is a diagram illustrating a step of sampling unit storage areas based on a set sampling size.
- the sampling size is set based on a block unit
- the block of FIG. 7 may be replaced with a page when the sampling size is determined based on a page unit.
- the memory 320 is formed of blocks a through p 510, and each block 510 may have a main area 520 formed of a plurality of pages and spare areas 530 following the pages.
- Blocks j, k, m, o, and p having a physical defect from among the blocks a through p 510 may be utilized as physical property information of the memory, and may indicate reference unit storage areas used for uniquely identifying the storage device 300.
- Information associated with a positional distribution of bad blocks is recorded in a bad block table.
- a table including location information of each bad block and a poor cell in the bad block may be stored in a block (desirably, a block in a reserved status).
- the sampling function block 240 may calculate a number of blocks N corresponding to a sampling size, based on variants, for example, a production X substituted in Equation 1, an expected value C of an average collision probability, and a block error rate p (bit error rate may be replaced with a block error rate in a block unit).
- the N blocks for example, blocks k, o, and p may be randomly sampled.
- the sampling function block 240 may output test data used for verifying the unit storage areas sampled in the secondary authentication information verification (step S70).
- the test data may be a bit stream of the identical value ('0' or '1') having a size of a page or a block.
- the step of obtaining a physical property of the sampled unit storage areas corresponds to a step of identifying a positional distribution of areas having a physical defect from among the sampled areas.
- the authenticator 260 may request a test with respect to the sampled unit storage areas, and the memory controller 330 may transmit, to the host device, a result of the test requested with respect to the sampled unit storage areas.
- the test corresponds to one of general memory operations, that is, reading, writing (that is, programming), and deleting, or a combination thereof, and the test data may be used for a write operation.
- a first-stage test corresponds to program/delete test based on a block unit. When a result of the test corresponds to failure, a corresponding block is marked to be a bad block (for example, a reserved word such as 000h is marked in a spare area).
- a second-stage test corresponds to a Read Disturbance test based on a page unit. A block that exceeds an error correction limit of an ECC block from among the blocks (or all blocks) that pass the first-stage test may be marked to be a bad block. Also, in addition to the bad block table, a table including location information of each block and a poor cell in the block may be stored in a block (desirably, a reserved block).
- the memory defect is basically caused by a defect in a memory cell (a bit unit, a byte unit, or a word unit), and a poor cell having a physical defect may have a common property.
- the poor cell may return a uniform value of '0' or '1' with respect to a read operation, may return a predetermined failure value with respect to a delete operation, and may return a predetermined completion value with respect to a write operation.
- the test may correspond to a process of detecting a poor cell or a bad block based on a return value obtained by performing one of the reading, writing, and deleting, or a combination thereof, or based on a return timing, for example, a response that takes longer than a predetermined normal time.
- a test command return value associated with the sampled blocks and an authentication criterion may be as follows.
- Get_PartialPhysicalProperty (Sampling_Region, TestData) command may be configured of the combination of a program command, a read command, and a delete command, which are basic program operations provided by a conventional NAND flash memory.
- Get PartialPhysicalProperty may be understood as a process that obtains a return value of the program, read, and delete command, and obtains time information associated with a time expended in the memory controller 330.
- a block becomes a bad block due to program failure and the like it is generally read to be a value of 0 when a read operation is performed.
- a program operation When a program operation is performed, completion of an operation is immediately reported without a time delay since the program is already started. Particularly, with respect to a delete operation, deletion failure is returned.
- the operating time and the return value associated with the operation which are different from a normal block, may be compared with a physical property value used for generating Authentication Value and thus, authentication may be determined.
- a property of the bad block may be obtained through the memory controller 330 by marking a location of a poor cell where the program failure occurs in each page buffer or through use of an ECC algorithm, and the physical property may be distinguished.
- the test in the step of obtaining the physical property may be one of the tests described in the manufacturing process, or a combination thereof.
- the authenticator 260 may request the memory controller 330 to perform a test (for example, the Read Disturbance test as described in the foregoing) with respect to blocks k, o, and p through use of Get_PartialPhysicalProperty (Sampling_Region, TestData) command and the like, and the memory controller 330 may perform the test with respect to the blocks k, o, and p and may transmit a result of the test to the authenticator 260.
- test data may be set to 'null'. For example, it is assumed that the blocks k and o are bad blocks.
- the memory 320 may store status data indicating positional distribution information associated with poor cells (that is, direct or indirect information indicating locations of poor cells) based on the test result.
- the memory controller 330 may transmit, to the host device 200 as a return value, status data stored in the memory 320 or a predetermined failure value (that is, a value indicating abnormality) associated with k and o and a predetermined success value (that is, a value indicating normality) associated with the block p.
- the authenticator 260 may request the memory controller 330 to perform a test with respect to the page through use of Get PartialPhysicalProperty (Sampling_Region, TestData) command and the like.
- the memory controller 330 may perform the test with respect to the page, and may transmit a result of the test to the host device 200.
- test data is set to 'null'.
- the ECC block 340 may store positional distribution information associated with poor cells 420 (that is, direct or indirect information indicating locations of poor cells) based on the test result.
- the memory controller 330 may transmit, to the host device 200 as a return value, data stored in the ECC block 340 or location information of a poor cell recognized by the data stored in the ECC block 340.
- the memory 320 may include a page buffer that is generally referred to as an access circuit, and the page buffer may store status data generated as a result of performing a memory operation, that is, a program (write) operation, a read operation, or a delete operation.
- the status data may include a plurality of bits, for example, bits corresponding to a page unit.
- the memory controller 330 may detect a location of a poor cell from the status data stored in the memory 320, and may identify a block including the poor cell to be a bad block. The memory controller 330 may provide the host device 200 with the status data, location information of the poor cell, or a bad block identification result, as a result of the test.
- FIG. 8 is a diagram illustrating an example of status data stored in a memory based on a delete test. For ease of descriptions, it is assumed that each bit value of the status data is set to 0 before the delete operation starts.
- the bit value of the status data may indicate a status of a corresponding memory cell (a value of 0 or 1).
- the delete operation is a memory operation that changes, into 1, a status of a memory cell included in each of a plurality of pages forming a single block.
- a poor cell generated in the delete operation refers to a cell of which a status is not changed into 1 and remains to be 0.
- the memory controller 330 may detect a location of a poor cell based on the bit values of the status data stored in the memory 320.
- the memory controller 330 may provide the host device 200 with the status data, location information of the poor cell, or a bad block identification result, as a result of the test.
- FIG. 9 is a diagram illustrating an example of status data stored in a memory based on a program test.
- each bit value of the status data is set to 1 before a program operation starts.
- the program operation is a memory operation that changes a status of a few of all memory cells included in a single block or page into 0 based on source data. Also, the program test may change statuses of all the memory cells into 0.
- a poor cell generated in the program operation refers to a cell of which a status is not changed into 0 and remains to be 1.
- the memory controller 330 may detect a location of a poor cell based on the bit values of the status data stored in the memory 320.
- the memory controller 330 may provide the host device 200 with the state data, the location information of the poor cell, or the bad block identification result, as a result of the test.
- the read test or the Read Disturbance test will be described as follows.
- the memory controller 330 may control the memory 320 to perform a read operation.
- the memory controller 330 may transmit a read command and an address to the memory 320 at a predetermined timing, and the memory 320 may read data from a page of a memory block corresponding to the address in response to the read command.
- the read data may be transmitted to the ECC block 340.
- the ECC block 340 may detect a read error associated with the read data, through use of ECC data stored in a spare area of the page.
- the ECC block 340 may store, in an internal register, a number of error bits (that is, a number of poor cells) and error location information (for example, address information) indicating a location where an error occurs (that is, a location of a poor cell).
- the memory controller 330 may determine whether the number of poor cells is greater than or equal to a predetermined ECC allow criterion (that is, an allowed number of poor cells), based on information stored in the ECC block 340. When the number of poor cells is greater than the predetermined ECC allow criterion, the memory controller 330 may identify the memory block to be a bad block. When a poor cell is generated in the read test, the memory controller 330 may detect a location of a poor cell from the information stored in the ECC block 340. The memory controller 330 may provide the host device 200 with the register data, the location information of the poor cell, or the bad block identification result, as a result of the test.
- a predetermined ECC allow criterion that is, an allowed number of poor cells
- the step of obtaining the authentication information may correspond to a step of obtaining information associated with a positional distribution of reference defect areas used for uniquely identifying the storage device 300.
- the authenticator 260 may request authentication information from the memory controller 330, and the memory controller 330 may transmit the authentication information stored in the memory 320 to the host device 200.
- the authentication information may be stored in a tamper resistance area (for example, a reserved block as described in the foregoing) by applying an encryption technology and the like during a process of manufacturing the storage device 300 or a trust worthy transaction time.
- the authentication information may include bad block pattern information, poor cell pattern information, and the like.
- the authentication information is information generated by a license agency or a reliable third party, and may include a block address, information associated with a defect included in a block or a cell, and the like.
- the authentication information Authentication Value may be data stored in the memory 320 in advance, or data generated by the memory controller 330 through use of component elements stored in the memory 320, that is, the private key PK_LicenseAgency of the license agency and the physical property.
- the step of performing the primary authentication information verification corresponds to a software authentication process of a Public Key Infrastructure (PKI).
- the authenticator 260 may apply an already known public key of the license agency to the electronic signature value so as to decode the original hash value of the physical property, and may calculate a hash value of the physical property, and compare both values so as to perform primary authentication.
- the primary authentication information verification step (step S60) may be an additional step which may be omissible.
- the present embodiment of the present invention illustrates the Public Key Infrastructure (PKI), an encryption scheme such as a symmetric key encryption scheme and the like may be used.
- PKI Public Key Infrastructure
- the step of performing the secondary authentication information verification corresponds to a hardware authentication process, and simultaneously, to a step of determining similarity between a positional distribution obtained in the step of obtaining the authentication information (step S50) and a positional distribution identified in the step of obtaining the physical property (step S40).
- the authenticator 260 may determine whether a result of a test with respect to sampled unit storage areas received from the memory controller 330 (that is, return values) is identical or similar to the physical property.
- the authenticator 260 may determine that the return values with respect to sampled blocks received from the memory controller 330 are identical to the physical property. In the case of determining the similarity, whether a concordance rate between the return values and the physical property is greater than or equal to a predetermined threshold value (for example, 90%) may be determined.
- a predetermined threshold value for example, 90%
- step S50 the step of obtaining the authentication information
- step S10 the step of determining the version of the sampling function
- the above-described exemplary embodiments of the invention may be embodied as hardware, software or a combination of hardware and software.
- Software may be stored in a volatile or non-volatile storage device such as read only memory (ROM) and the like irrespective of erasing or rewriting, a memory such as a random access memory (RAM), a memory chip, a device, and a integrated circuit, or a storage medium that is capable of performing optical or magnetic recording and machine-reading such as compact disc (CD), digital versatile disc (DVD), optical disc, magnetic tape, and the like.
- ROM read only memory
- RAM random access memory
- a storage unit may be an example of machine-readable storage media that are suitable for storing a program including instructions to implement the exemplary embodiments, or programs.
- the invention may include a program including a code to implement a system or a method claimed in a claim of the specification, and a machine-readable storage medium including the program.
- the program may be transferred electronically through a medium such as a communication signal transferred through a wired or wireless connection, and the invention may appropriately include an equivalent medium.
- the embodiments of the present invention may be applied to an SSD, a flash memory card, a floppy disk, a flexible disk, a hard disk, a magnetic tape, a compact disc read-only memory (CD-ROM), an optical disc, a Blue-ray disc, a RAM, a Programmable Read-Only Memory (PROM), an erasable PROM (EPROM), and a FLASH-EPROM.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Storage Device Security (AREA)
Description
- The present invention relates to an authentication method and apparatus for identifying a target device, and more particularly, to a method and apparatus for authenticating a storage device.
- As technologies such as Digital Rights Management (DRM), copy protection, and the like have been required to secure content, a technology to authenticate a storage device including a Non-Volatile Memory (NVM) device, such as a Solid State Disk (SSD) and a flash memory card, and the like has been required. That is, a technology that encrypts content and verifies suitability of hardware (H/W) of the storage device has been required.
- Although the DRM technology, a Content Protection for Recordable Media (CPRM) technology for a Secure Digital (SD) card, an Advanced Access Content System (AACS) for a Blue-ray disc provide a device authentication method based on a Public Key Infrastructure (PKI) or a cryptographic technology, it is difficult to prevent cloning the storage device.
- Conventionally, there has been a technology that inserts a watermark or a fingerprint into a chip of H/W while the chip is designed, so as to identify H/W in which a problem occurs. However, the technology is to trace security piracy after the problem occurs, fails to prevent the cloning in advance, is inefficient in mass production, and is difficult to be used as a method of verifying suitability of the device at the time of transaction.
-
WO 98/41979 A1 - Therefore, the present invention has been made in view of the above-mentioned problems, and an aspect of the present invention is to provide a method that prevents cloning in advance, is efficient in mass production, and verifies suitability of a device at the time of transaction.
- In accordance with an aspect of the present invention, there is provided a method according to claim 1. In accordance with another aspect of the present invention, there is provided a machine-readable storage medium in which a program for executing the method for authenticating a storage device is recorded.
- In accordance with another aspect of the present invention, there is provided a host device including the machine-readable storage medium.
- According to embodiments of the present invention, when a physical property of a storage device is utilized for authenticating a device and the like, efficiency in authenticating a storage medium may be maximized using one of a step of sampling a few of all unit storage areas, a step of updating a sampling function used in the sampling step, and a step of determining subsumption relation or similarity between a result of a test with respect to the sampled areas and a reference physical property, or a combination thereof.
- In particular, according to embodiments of the present invention, efficiency in a verification step may be maximized by sampling a few of all unit storage areas. Also, a low collision probability, comparable to an authentication method performed with respect to all unit storage areas, may be secured by applying a random sampling function and utilizing information of areas greater than or equal to a predetermined threshold value.
- Also, according to embodiments of the present invention, the threat of cloning caused due to a weak point and disclosure of a sampling function may be minimized by updating the sampling function. For example, when a fact that a predetermined sampling function deterministically uses second, third, and tenth block information of a physical property is disclosed, complexity of a cloning attack may be decreased to cloning of the second, third, and tenth block information, as opposed to cloning of an entire memory. Accordingly, embodiments of the present invention may increase the complexity of the cloning attack by using variable sampling and updating the sampling function.
-
-
FIG. 1 is a diagram illustrating a configuration of an authentication system according to an embodiment of the present invention; -
FIG. 2 is a diagram illustrating a detailed configuration of a storage device ofFIG. 1 ; -
FIG. 3 is a diagram illustrating a detailed configuration of a controller ofFIG. 1 ; -
FIG. 4 is a flowchart illustrating a method of authenticating a storage device according to an embodiment of the present invention; -
FIGS. 5 and 6 are diagrams illustrating a step of setting a sampling size; -
FIG. 7 is a diagram illustrating a step of sampling unit storage areas based on a set sampling size; -
FIG. 8 is a diagram illustrating an example of status data stored in a memory based on a delete test; and -
FIG. 9 is a diagram illustrating an example of status data stored in a memory based on a program test. - Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.
- A most basic required security technology in a scenario that sells/rents high-value content using a storage device or a memory device is an anti-cloning technology that prevents massive illegal H/W cloning. To increase complexity of an H/W cloning attack, it is desirable to utilize a unique property of each storage device, that is, a physical property that has a low collision probability.
- However, due to a size of a memory increased up to a few through a few hundred Gigabytes, it is inefficient to use a physical property of an entire memory. Also, a method that uses a predetermined limited area may decrease the complexity of the cloning attack and thus, it may be inappropriate to be used as the anti-cloning technology.
- The embodiments of the present invention provide a method that authenticates a storage device by utilizing a unique physical property of the storage device (for example, a positional distribution of a reference unit storage area having a physical defect such as a bad block), a method of effectively authenticating the storage device by sampling a few of all unit storage areas of the storage device, and a method of updating a sampling function. In brief, the unit storage areas may form the storage device, and may refer to storage areas that are distinguishable and have the same size, for example, pages or cells (bits, bytes, words, and the like). Also, a general memory may have a layer structure in which cells form a page, pages form a block, and blocks form the entire memory.
-
FIG. 1 is a diagram illustrating a configuration of an authentication system according to an embodiment of the present invention. - An
authentication system 100 includes asever 110, ahost device 200 that is connected to theserver 110 through anetwork 120 such as the Internet, and astorage device 300 that is disposed inside or outside thehost device 200 and is wiredly or wirelessly connected to thehost device 200. - Examples of the
host device 200 may include a computer, a laptop, a mobile device, a portable device, an internet protocol television, a portable media player, and a Personal Digital Assistant (PDA), but the examples may not be limited thereto. Examples of thenetwork 120 may include a Local Area Network (LAN), a Wireless Local Area Network (WLAN), a Wide Area Network (WAN), the Internet, and a Small Area Network (SAN), but the examples may not be limited thereto. - The
host device 200 may request update information of a sampling function from theserver 110, and theserver 110 may transmit update data to thehost device 200. Theserver 110 may compare a version of the sampling function received from thehost device 200 and a version of a recent sampling function stored in a database (not illustrated) of theserver 110, and may transmit, to thehost device 200, the recent sampling function itself or difference data corresponding to a difference between the two versions of the sampling functions when the version of the received sampling function is lower than the version of the recent sampling function. Also, theserver 110 may transmit the difference data and update data including a command to instruct copy, insertion, or deletion of data, so as to reduce a size of the update data. When the version of the received sampling function is identical to the version of the recent sampling function, theserver 110 may notify thehost device 200 that updating is not required through a message. Theserver 110 may not perform the comparison process, and may transmit the recent sampling function to thehost device 200. The comparison process may be performed in thehost device 200, and thehost device 200 may determine whether to perform updating based on a result of the comparison. - Examples of the
storage device 300 may include Non-Volatile Memory (NVM) such as a Solid State Disk (SSD) and a flash memory card. Although embodiments of the present invention will be described based on a NAND flash memory, the embodiments may not be limited thereto. Examples of the storage device may include a floppy disk, a flexible disk, a hard disk, a magnetic tape, a compact disc read-only memory (CD-RM), an optical disc, a Blue-ray disc, a RAM, a Programmable Read-Only Memory (PROM), an Erasable PROM (EPROM), and a FLASH-EPROM. -
FIG. 2 is a diagram illustrating a detailed configuration of thestorage device 300 ofFIG. 1 , andFIG. 3 is a diagram illustrating a detailed configuration of thecontroller 230 ofFIG. 1 . For example, thehost device 200 may be a personal computer, and thestorage device 300 may be a NAND flash memory device contained in a memory slot of the personal computer. In this example, thehost device 200 and thestorage device 300 may perform data communication through a bus in thehost device 200. - The
host device 200 may include acontroller 230 corresponding to a verifier, and thecontroller 230 may authenticate thestorage device 300. Authentication of thestorage device 300 may be performed through software and hardware authentication procedures. Thecontroller 230 may include an authenticator to perform software and hardware authentication, asampling function block 240 to set a sampling size and to perform sampling of unit storage areas of thestorage device 300 based on a sampling function for hardware authentication, and a sampling function updater 250 to select a sampling function and to update the sampling function. - Also, the
host device 200 may include a wired orwireless communication unit 210 to perform communication with theserver 110, and astorage unit 220 for storing data. - The
storage device 300 may include ahost interface 310 to perform data communication with thehost device 200, amemory 320 including unit storage areas having the same size, and amemory controller 330 to perform data communication with thecontroller 230 of thehost device 200, to provide a response in response to a request from thehost device 200, and to output, to thememory 320, a control command with respect to a predetermined unit storage area, such as reading, writing (that is, programming), or deleting. Thememory controller 330 may include an Error Correction Code (ECC) to detect and correct an error included in data read from thememory 320. - The error detection and correction technologies may effectively restore data that is damaged by various causes. For example, data may be damaged by various causes in a process of storing data in a memory, and data may be damaged by perturbations of a data transmission channel through which the data is transmitted from a source to a destination. Various methods have been provided so as to detect and correct damaged data. Well-known error detection technologies may include a Reed-Solomon (RS) code, a Hamming code, a Bose-Chaudhuri-Hocquenghem (BCH) code, a Cyclic Redundancy Code (CRC) code, and the like. The damaged data may be detected and corrected through use of the codes. In most application fields where a NVM device is utilized, source data from a host device may be stored in a memory together with ECC data. The ECC data may be used for correcting an error occurring during a read operation of the memory, and a number of error bits that may be corrected by the ECC data may be limited.
-
FIG. 4 is a flowchart illustrating a method of authenticating a storage device according to an embodiment of the present invention. - The authentication method may include a step of selecting a sampling function (step S5), a step of determining a version of the sampling function (step S10), a step of updating the sampling function (step S20), a step of sampling unit storage areas (step S30), a step of obtaining a physical property of sampled unit storage areas (step S40), a step of obtaining authentication information (step S50), a step of performing primary authentication information verification (step S60), and a step of performing secondary authentication information verification (step S70).
- In the step of selecting the sampling function (step S5), the sampling function updater 250 selects one of a plurality of different types of sampling functions stored in the
storage unit 220 of thehost device 200. The sampling function updater 250 may request sampling function selection information from thestorage device 300, and thememory controller 330 of thestorage device 300 may transmit the sampling function selection information stored in thememory 320 to thehost device 200. For example, the sampling function selection information may have a predetermined manufacturer, or may be in a form of a file stored in thememory 320. The sampling function selection information may be information that designates a predetermined type (or category) of sampling function, and the information may be a number mapped to a predetermined type of sampling function (for example, 1 may correspond to a first type, 2 may correspond to a second type, and the like), or may be a predetermined type, condition, or the like. Also, the sampling function selection information may further include other information such as a variant or an initial value input to the predetermined type of sampling function. The sampling function updater 250 may select a corresponding sampling function based on the sampling function selection information received from thestorage device 300. Also, the sampling function selection information may designate a predetermined type of sampling function, and the designated type of sampling function may not be included in thehost device 200 and thus, the sampling function selection information may designate various types of sampling functions based on priorities. For example, the sampling function updater 250 may select a sampling function of a second priority when a sampling function of a first priority does not exist. Unlike this, when the designated type of sampling function is not stored in thehost device 200, the sampling function updater 250 may receive the designated type of sampling function from theserver 110 or thestorage device 300. In the embodiments of the present invention, updating may include the reception of a sampling function. - The step of determining the version of the sampling function (step S10) and the step of updating the sampling function (step S20) will be described under an assumption that the designated type of sampling function is stored in the
host device 200. However, in different cases, the designated type of sampling function stored in one of theserver 110 and thestorage device 300 may be received or the designated type of sampling functions stored in theserver 110 and thestorage device 300 may be compared and received. - In the step of determining the version of the sampling function (step S10), the sampling function updater 250 may compare a version of a selected sampling function stored in the
storage unit 220 of the host device 200 (hereinafter, referred to as a first sampling function) with a version of a sampling function of another available device, so that thesampling function block 240 may use a recent sampling function. - When the
host device 200 operates in an off-line mode, the sampling function updater 250 may compare the version of the first sampling function and a version of a sampling function stored in the storage device 300 (hereinafter, referred to as a second sampling function). The sampling function updater 250 may request the second sampling function or the version of the second sampling function, and thememory controller 330 of thestorage device 300 may transmit the second sampling function or the version of the second sampling function stored in thememory 320 to thehost device 200. In this example, the second sampling function stored in thememory 320 may be encrypted by a License agency or a reliable third party so that only a legal host device may decrypt the second sampling function, and the sampling function updater 250 may decrypt the second sampling function received from thestorage device 300 through use of an encryption key that the sampling function updater 250 is aware of in advance. The sampling function updater 250 may compare the version of the decrypted second sampling function or the version of the second sampling function with the version of the first sampling function. - When the
host device 200 operates in an on-line mode, the sampling function updater 250 may request a sampling function stored in the server 110 (hereinafter, referred to as a third sampling function) or a version of the third sampling function through use of the wired orwireless communication unit 210, and theserver 110 may transmit, to thehost device 200, the third sampling function or the version of the third sampling function stored in a database (not illustrated). The sampling function updater 250 may compare the received third sampling function or the version of the third sampling function with the version of the first sampling function. - In the step of updating the sampling function (step S20), the sampling function updater 250 may update the first sampling function to be used by the
sampling function block 240. When the version of the first sampling function is lower than the version of the second or third sampling function, the first sampling function may be replaced with the second or third sampling function. Selectively, the sampling function updater 250 may determine the version of the second sampling function stored in thestorage device 300, and when the version of the second sampling function is lower than the version of the third sampling function, the sampling function updater 250 may replace the second sampling function with the third sampling function. In this example, the sampling function updater 250 may encrypt the third sampling function received from theserver 110 through use of an encryption key that another legal host device may be aware of (for example, an encryption key provided from a License agency of the storage device) so that the other legal host device may decrypt the encrypted third sampling function, and may store the encrypted third sampling function in thestorage device 300. - In the present embodiment of the present invention, updating of a sampling function is illustrated, and update data of the sampling function may be the sampling function itself or variants input to the sampling function. Referring to Equations 1 and 2, variants may be input to a sampling function and the variants may be received from the outside of the
host device 200 through the updating step (step S20). - Also, in the present embodiment of the present invention, even when the
host device 200 operates in an on-line mode, thehost device 200 may operate an operation performed in the off-line mode. Also, thehost device 200 may compare at least two of the first through third sampling functions, and may select a recent sampling function or an appropriate sampling function. - In the step of sampling the unit storage areas (step S30), the sampling function block may sample (select) unit storage areas corresponding to a predetermined sampling size, based on the predetermined or previously obtained sampling size. A size of unit storage areas of the memory 320 (for example, a number of unit storage areas), which are to be verified, that is, the sampling size, may be a value stored in advance, a value received from the
server 100, a value obtained from thestorage device 300, a value calculated from a predetermined calculation equation, or a value randomly set using a random number generator. When the sampling size is randomly set, a value that is less than a number of all blocks of thememory 320 may be set to be a maximum value. - The
memory 320 may be formed of a plurality of blocks, and each block has a size of 64 Kbytes through 512 Kbytes and deletion may be performed based on a block unit. A single block may be formed of a plurality of pages, and each page has a size of 512 bytes through 8 Kbytes and may be a basic unit of reading and writing. An NOR flash memory may perform reading and writing based on a byte or word unit. Each page may have an additional data area which is referred to as an Out Of Band (OOB) or a spare area of a few through a few hundred bytes. The spare area may be used for recording bad block marking, ECC, file system information, and the like. Thememory 320 may have a Bad Block Table (BBT) that records statuses of all the blocks of thememory 320, and each block may have a status of "good", "bad", or "reserved". In the embodiments of the present invention, the "reserved" status indicates a block that may not be programmed or deleted by a user who is different from a manufacturer of the storage device, and that may only be read by the user. The bad block table may be stored in a block (desirably, a block in the reserved status), and the bad block table may be stored in a block in the reserved status. -
FIGS. 5 and 6 are diagrams illustrating a step of setting a sampling size.FIG. 5 illustrates a poor cell pattern of a predetermined page, and apoor cell 420 having a physical defect may be expressed as "F" in a 6*6cell array - The sampling size may be set based on a probability that a pair of corresponding areas of two manufactured storage devices have an identical poor cell pattern (that is, an identical positional distribution).
-
- In Equation 1, CR denotes an average collision ratio, that is, a probability that a pair of corresponding areas x and y (each having N bits) of two manufactured storage devices have an identical pattern. P(x=y) denotes a probability that ith bit of x and ith bit of y are identical to each other. p denotes a bit error rate (BER) and q=1-p. In the present example, a cell may correspond to a single bit.
-
- In Equation 2, X denotes production, and C denotes an expected value of an average collision probability. That is, when two storage devices from the production X, CR may be approximated to C/X.
- For example, when C=1/10000, X=108, and p=10(-7∼-9) area substituted in Equation 1, N may be obtained, and N may be used for calculating the sampling size. In this example, N denotes a minimum number of cells to be sampled, and the calculated sampling size may be set to z pages including N cells or to blocks (z is a natural number).
- Also, in Equations 1 and 2, a bit unit may be replaced with a block unit. In this example, N denotes a minimum number of blocks to be sampled.
- Based on the set sampling size, locations of unit storage areas may be arbitrarily set. That is, unit storage areas corresponding to the set sampling size may be sampled from a predetermined location of the
memory 320, or unit storage areas may be randomly sampled through use of a random number generator. -
FIG. 7 is a diagram illustrating a step of sampling unit storage areas based on a set sampling size. Although the present embodiment describes the case in which the sampling size is set based on a block unit, the block ofFIG. 7 may be replaced with a page when the sampling size is determined based on a page unit. - The
memory 320 is formed of blocks a throughp 510, and eachblock 510 may have amain area 520 formed of a plurality of pages andspare areas 530 following the pages. Blocks j, k, m, o, and p having a physical defect from among the blocks a throughp 510 may be utilized as physical property information of the memory, and may indicate reference unit storage areas used for uniquely identifying thestorage device 300. Information associated with a positional distribution of bad blocks is recorded in a bad block table. Also, in addition to the bad block table, a table including location information of each bad block and a poor cell in the bad block may be stored in a block (desirably, a block in a reserved status). - The
sampling function block 240 may calculate a number of blocks N corresponding to a sampling size, based on variants, for example, a production X substituted in Equation 1, an expected value C of an average collision probability, and a block error rate p (bit error rate may be replaced with a block error rate in a block unit). The N blocks, for example, blocks k, o, and p may be randomly sampled. - Also, the
sampling function block 240 may output test data used for verifying the unit storage areas sampled in the secondary authentication information verification (step S70). For example, the test data may be a bit stream of the identical value ('0' or '1') having a size of a page or a block. - The step of obtaining a physical property of the sampled unit storage areas (step S40) corresponds to a step of identifying a positional distribution of areas having a physical defect from among the sampled areas. In the step of obtaining the physical property of the sampled unit storage areas, the
authenticator 260 may request a test with respect to the sampled unit storage areas, and thememory controller 330 may transmit, to the host device, a result of the test requested with respect to the sampled unit storage areas. The test corresponds to one of general memory operations, that is, reading, writing (that is, programming), and deleting, or a combination thereof, and the test data may be used for a write operation. - In the process of manufacturing the
storage device 300, two stages of tests may be performed in association with a memory defect. A first-stage test corresponds to program/delete test based on a block unit. When a result of the test corresponds to failure, a corresponding block is marked to be a bad block (for example, a reserved word such as 000h is marked in a spare area). A second-stage test corresponds to a Read Disturbance test based on a page unit. A block that exceeds an error correction limit of an ECC block from among the blocks (or all blocks) that pass the first-stage test may be marked to be a bad block. Also, in addition to the bad block table, a table including location information of each block and a poor cell in the block may be stored in a block (desirably, a reserved block). - The memory defect is basically caused by a defect in a memory cell (a bit unit, a byte unit, or a word unit), and a poor cell having a physical defect may have a common property. For example, the poor cell may return a uniform value of '0' or '1' with respect to a read operation, may return a predetermined failure value with respect to a delete operation, and may return a predetermined completion value with respect to a write operation. The test may correspond to a process of detecting a poor cell or a bad block based on a return value obtained by performing one of the reading, writing, and deleting, or a combination thereof, or based on a return timing, for example, a response that takes longer than a predetermined normal time.
- In detail, a test command return value associated with the sampled blocks and an authentication criterion may be as follows. Particularly, Get_PartialPhysicalProperty (Sampling_Region, TestData) command may be configured of the combination of a program command, a read command, and a delete command, which are basic program operations provided by a conventional NAND flash memory. When an authenticated physical property is defined to be a return value of the program, read, and delete command and an operating time, Get PartialPhysicalProperty may be understood as a process that obtains a return value of the program, read, and delete command, and obtains time information associated with a time expended in the
memory controller 330. In more detail, in the case where a block becomes a bad block due to program failure and the like, it is generally read to be a value of 0 when a read operation is performed. When a program operation is performed, completion of an operation is immediately reported without a time delay since the program is already started. Particularly, with respect to a delete operation, deletion failure is returned. The operating time and the return value associated with the operation, which are different from a normal block, may be compared with a physical property value used for generating Authentication Value and thus, authentication may be determined. In addition, a property of the bad block may be obtained through thememory controller 330 by marking a location of a poor cell where the program failure occurs in each page buffer or through use of an ECC algorithm, and the physical property may be distinguished. - The test in the step of obtaining the physical property (step S40) may be one of the tests described in the manufacturing process, or a combination thereof.
- The case of obtaining a bad block pattern will be described as follows.
- Referring to
FIG. 5 , theauthenticator 260 may request thememory controller 330 to perform a test (for example, the Read Disturbance test as described in the foregoing) with respect to blocks k, o, and p through use of Get_PartialPhysicalProperty (Sampling_Region, TestData) command and the like, and thememory controller 330 may perform the test with respect to the blocks k, o, and p and may transmit a result of the test to theauthenticator 260. In this example, test data may be set to 'null'. For example, it is assumed that the blocks k and o are bad blocks. Thememory 320 may store status data indicating positional distribution information associated with poor cells (that is, direct or indirect information indicating locations of poor cells) based on the test result. When the authenticator 260 requests thememory controller 330 to perform a read operation simultaneously or sequentially with respect to the blocks k, o, and p, thememory controller 330 may transmit, to thehost device 200 as a return value, status data stored in thememory 320 or a predetermined failure value (that is, a value indicating abnormality) associated with k and o and a predetermined success value (that is, a value indicating normality) associated with the block p. - The case of obtaining a poor cell pattern will be described in detail.
- The
authenticator 260 may request thememory controller 330 to perform a test with respect to the page through use of Get PartialPhysicalProperty (Sampling_Region, TestData) command and the like. Thememory controller 330 may perform the test with respect to the page, and may transmit a result of the test to thehost device 200. In this example, test data is set to 'null'. TheECC block 340 may store positional distribution information associated with poor cells 420 (that is, direct or indirect information indicating locations of poor cells) based on the test result. Thememory controller 330 may transmit, to thehost device 200 as a return value, data stored in the ECC block 340 or location information of a poor cell recognized by the data stored in theECC block 340. - Hereinafter, a method of obtaining a physical property will be described for each test described in the foregoing, that is, a delete test, a program test, and a read test.
- Hereinafter, the delete test will be described, first.
- The
memory 320 may include a page buffer that is generally referred to as an access circuit, and the page buffer may store status data generated as a result of performing a memory operation, that is, a program (write) operation, a read operation, or a delete operation. The status data may include a plurality of bits, for example, bits corresponding to a page unit. - The
memory controller 330 may detect a location of a poor cell from the status data stored in thememory 320, and may identify a block including the poor cell to be a bad block. Thememory controller 330 may provide thehost device 200 with the status data, location information of the poor cell, or a bad block identification result, as a result of the test. -
FIG. 8 is a diagram illustrating an example of status data stored in a memory based on a delete test. For ease of descriptions, it is assumed that each bit value of the status data is set to 0 before the delete operation starts. The bit value of the status data may indicate a status of a corresponding memory cell (a value of 0 or 1). The delete operation is a memory operation that changes, into 1, a status of a memory cell included in each of a plurality of pages forming a single block. A poor cell generated in the delete operation refers to a cell of which a status is not changed into 1 and remains to be 0. - As illustrated in
FIG. 8 , only a status of a sixth bit from among all bits forming the status data remains to be 0, and statuses of remaining bits are changed into 1. Therefore, thememory controller 330 may detect a location of a poor cell based on the bit values of the status data stored in thememory 320. Thememory controller 330 may provide thehost device 200 with the status data, location information of the poor cell, or a bad block identification result, as a result of the test. - The program test will be described as follows.
-
FIG. 9 is a diagram illustrating an example of status data stored in a memory based on a program test. - For ease of descriptions, it is assumed that each bit value of the status data is set to 1 before a program operation starts. The program operation is a memory operation that changes a status of a few of all memory cells included in a single block or page into 0 based on source data. Also, the program test may change statuses of all the memory cells into 0. A poor cell generated in the program operation refers to a cell of which a status is not changed into 0 and remains to be 1.
- As illustrated in
FIG. 9 , only a status of a sixth bit from among all bits forming the status data remains to be 1, and statuses of remaining bits are changed into 0. Therefore, thememory controller 330 may detect a location of a poor cell based on the bit values of the status data stored in thememory 320. Thememory controller 330 may provide thehost device 200 with the state data, the location information of the poor cell, or the bad block identification result, as a result of the test. - The read test or the Read Disturbance test will be described as follows.
- In response to a request for a test from the
host device 200, thememory controller 330 may control thememory 320 to perform a read operation. Thememory controller 330 may transmit a read command and an address to thememory 320 at a predetermined timing, and thememory 320 may read data from a page of a memory block corresponding to the address in response to the read command. The read data may be transmitted to theECC block 340. TheECC block 340 may detect a read error associated with the read data, through use of ECC data stored in a spare area of the page. TheECC block 340 may store, in an internal register, a number of error bits (that is, a number of poor cells) and error location information (for example, address information) indicating a location where an error occurs (that is, a location of a poor cell). - The
memory controller 330 may determine whether the number of poor cells is greater than or equal to a predetermined ECC allow criterion (that is, an allowed number of poor cells), based on information stored in theECC block 340. When the number of poor cells is greater than the predetermined ECC allow criterion, thememory controller 330 may identify the memory block to be a bad block. When a poor cell is generated in the read test, thememory controller 330 may detect a location of a poor cell from the information stored in theECC block 340. Thememory controller 330 may provide thehost device 200 with the register data, the location information of the poor cell, or the bad block identification result, as a result of the test. - The step of obtaining the authentication information (step S50) may correspond to a step of obtaining information associated with a positional distribution of reference defect areas used for uniquely identifying the
storage device 300. In the step of obtaining the authentication information (step S50), theauthenticator 260 may request authentication information from thememory controller 330, and thememory controller 330 may transmit the authentication information stored in thememory 320 to thehost device 200. - The authentication information may be stored in a tamper resistance area (for example, a reserved block as described in the foregoing) by applying an encryption technology and the like during a process of manufacturing the
storage device 300 or a trust worthy transaction time. For example, the authentication information may include bad block pattern information, poor cell pattern information, and the like. - The authentication information is information generated by a license agency or a reliable third party, and may include a block address, information associated with a defect included in a block or a cell, and the like. For example, it may be expressed that Authentication Value = (Physical Property, Signature = Sign (PK_LicenseAgency, Physical Property)). That is, authentication information Authentication Value may be formed of a physical property and an electronic signature value Signature of the license agency, and the electronic signature value may be a value obtained by signing on a hash value of a physical property through use of a private key PK_LicenseAgency of the license agency. The authentication information Authentication Value may be data stored in the
memory 320 in advance, or data generated by thememory controller 330 through use of component elements stored in thememory 320, that is, the private key PK_LicenseAgency of the license agency and the physical property. - The step of performing the primary authentication information verification (step S60) corresponds to a software authentication process of a Public Key Infrastructure (PKI). In the primary authentication information verification step (step S60), the
authenticator 260 may apply an already known public key of the license agency to the electronic signature value so as to decode the original hash value of the physical property, and may calculate a hash value of the physical property, and compare both values so as to perform primary authentication. The primary authentication information verification step (step S60) may be an additional step which may be omissible. Although the present embodiment of the present invention illustrates the Public Key Infrastructure (PKI), an encryption scheme such as a symmetric key encryption scheme and the like may be used. - The step of performing the secondary authentication information verification (step S70) corresponds to a hardware authentication process, and simultaneously, to a step of determining similarity between a positional distribution obtained in the step of obtaining the authentication information (step S50) and a positional distribution identified in the step of obtaining the physical property (step S40). In the secondary authentication information verification step (step S70), the
authenticator 260 may determine whether a result of a test with respect to sampled unit storage areas received from the memory controller 330 (that is, return values) is identical or similar to the physical property. - Referring to
FIG. 5 , in the physical property, for example, a bad block table or pattern, blocks j, k, m, and o are marked to be bad blocks and remaining blocks are marked to be normal blocks. The test result indicates that the blocks k and o are bad blocks and the block p is a normal block. Therefore, theauthenticator 260 may determine that the return values with respect to sampled blocks received from thememory controller 330 are identical to the physical property. In the case of determining the similarity, whether a concordance rate between the return values and the physical property is greater than or equal to a predetermined threshold value (for example, 90%) may be determined. - Although the embodiment described with reference to
FIG. 4 sequentially illustrates predetermined steps, the embodiments of the present invention may not be limited thereto. For example, the step of obtaining the authentication information (step S50) may be performed before the step of determining the version of the sampling function (step S10). - The above-described exemplary embodiments of the invention may be embodied as hardware, software or a combination of hardware and software. Software may be stored in a volatile or non-volatile storage device such as read only memory (ROM) and the like irrespective of erasing or rewriting, a memory such as a random access memory (RAM), a memory chip, a device, and a integrated circuit, or a storage medium that is capable of performing optical or magnetic recording and machine-reading such as compact disc (CD), digital versatile disc (DVD), optical disc, magnetic tape, and the like. A storage unit may be an example of machine-readable storage media that are suitable for storing a program including instructions to implement the exemplary embodiments, or programs. Therefore, the invention may include a program including a code to implement a system or a method claimed in a claim of the specification, and a machine-readable storage medium including the program. The program may be transferred electronically through a medium such as a communication signal transferred through a wired or wireless connection, and the invention may appropriately include an equivalent medium.
- The embodiments of the present invention may be applied to an SSD, a flash memory card, a floppy disk, a flexible disk, a hard disk, a magnetic tape, a compact disc read-only memory (CD-ROM), an optical disc, a Blue-ray disc, a RAM, a Programmable Read-Only Memory (PROM), an erasable PROM (EPROM), and a FLASH-EPROM.
Claims (9)
- A method for a host device (200) to authenticate a storage device (300) having a plurality of unit storage areas, the method comprising:updating (S20) a first sampling function in the host device to vary sampling; obtaining (S50) a positional distribution of reference defect areas used for uniquely identifying the storage device (300);sampling (S30) a few of all the unit storage areas of the storage device (300) according to the updated first sampling function;identifying (S40) a positional distribution of areas having a physical defect from among the sampled areas;determining (S70) similarity between the obtained positional distribution and the identified positional distribution; andauthenticating the storage device (300) based on a result of the determination,wherein updating (S20) the sampling function includes one of:wherein the sampling is performed based on the received sampling function.comparing a version of a second sampling function stored in the storage device (300) and a version of the first sampling function stored in the host device (200) and replacing the first sampling function with the second sampling function when the version of the first sampling function is lower than the version of the second sampling function;comparing a version of a third sampling function stored in a server (110) connected through a network (120) and the version of the first sampling function stored in the host device (200) and replacing the first sampling function with the third sampling function when the version of the first sampling function is lower than the version of the third sampling function; andreceiving a sampling function stored in the server (110) connected through the network (120) or the storage device (300), based on sampling function selection information stored in the storage device (300),
- The method as claimed in claim 1, wherein the information associated with the positional distribution of the reference defect areas corresponds to bad block pattern information or poor cell pattern information stored in the storage device (300).
- The method as claimed in claim 1, wherein sampling (S30) comprises:setting a sampling size; andsampling unit storage areas corresponding to the sampling size from among all the unit storage areas of the storage device (300).
- The method as claimed in claim 1, wherein identifying (S40) comprises:performing a test on a predetermined memory operation with respect to the sampled areas; anddetermining whether the identified positional distribution is identical to the obtained positional distribution based on a return value associated with the test.
- The method as claimed in claim 1, wherein identifying (S40) comprises:performing a test on a predetermined memory operation with respect to the sampled area; anddetermining whether a concordance rate between the identified positional distribution and the obtained positional distribution is greater than or equal to a predetermined threshold value, based on a return value associated with the test.
- The method as claimed in claim 1, wherein updating (S20) the sampling function further includes:comparing the version of the updated third sampling function and the version of the second sampling function stored in the storage device (300); andreplacing the second sampling function with the third sampling function when the version of the second sampling function is lower than the version of the third sampling function.
- The method as claimed in claim 1, further comprising:selecting one of a plurality of sampling functions stored in the host device (200) based on the sampling function selection information stored in the storage device (300),wherein the first sampling function is the selected sampling function.
- A machine-readable storage medium in which a program for executing the method for authenticating a storage device (300) as claimed in any of claims 1 to 7 is recorded.
- A host device (200) including the machine-readable storage medium of claim 8.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100043220A KR101698211B1 (en) | 2010-05-07 | 2010-05-07 | Method for authenticating a storage device, machine-readable storage medium and host device |
PCT/KR2011/003443 WO2011139134A2 (en) | 2010-05-07 | 2011-05-09 | Method for authenticating a storage device, machine-readable storage medium, and host device |
Publications (3)
Publication Number | Publication Date |
---|---|
EP2568655A2 EP2568655A2 (en) | 2013-03-13 |
EP2568655A4 EP2568655A4 (en) | 2013-12-25 |
EP2568655B1 true EP2568655B1 (en) | 2018-02-07 |
Family
ID=44904258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP11777615.3A Not-in-force EP2568655B1 (en) | 2010-05-07 | 2011-05-09 | Method for authenticating a storage device, machine-readable storage medium, and host device |
Country Status (5)
Country | Link |
---|---|
US (1) | US9245152B2 (en) |
EP (1) | EP2568655B1 (en) |
KR (1) | KR101698211B1 (en) |
CN (1) | CN102971984B (en) |
WO (1) | WO2011139134A2 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8646054B1 (en) * | 2012-03-23 | 2014-02-04 | Western Digital Technologies, Inc. | Mechanism to manage access to user data area with bridged direct-attached storage devices |
US20160156459A1 (en) * | 2013-06-20 | 2016-06-02 | Dong Hoon HANG | Method for encryption authentication and decryption verification and electronic apparatus suitable for small memory implementation environment |
JP6129699B2 (en) * | 2013-09-18 | 2017-05-17 | 株式会社東芝 | Individual identification device, storage device, individual identification system, method thereof, and program |
KR102160523B1 (en) * | 2014-07-15 | 2020-09-28 | 삼성전자주식회사 | Method and apparatus for encrypting and decrypting a multimedia content |
CN104640201A (en) * | 2014-12-31 | 2015-05-20 | 智慧城市信息技术有限公司 | Positioning method and device based on WIFI (wireless fidelity) fingerprint technology |
KR102538258B1 (en) * | 2016-07-25 | 2023-05-31 | 삼성전자주식회사 | Data storage device and data processing system having the same |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5412718A (en) * | 1993-09-13 | 1995-05-02 | Institute Of Systems Science | Method for utilizing medium nonuniformities to minimize unauthorized duplication of digital information |
US6747930B1 (en) | 1996-12-24 | 2004-06-08 | Hide & Seek Technologies, Inc. | Data protection on an optical disk |
ATE302461T1 (en) * | 1997-03-14 | 2005-09-15 | Hide And Seek Technologies Inc | COPY PROTECTED OPTICAL MEDIUM AND ASSOCIATED METHOD |
US7143445B1 (en) * | 1999-05-31 | 2006-11-28 | Sony Corporation | Information processing apparatus, information processing method, and program storage medium |
US7017044B1 (en) * | 2000-08-02 | 2006-03-21 | Maxtor Corporation | Extremely secure method for keying stored contents to a specific storage device |
US20060136729A1 (en) * | 2004-12-20 | 2006-06-22 | Macrovision Europe Limited | Copy protection for optical discs |
US8837721B2 (en) * | 2007-03-22 | 2014-09-16 | Microsoft Corporation | Optical DNA based on non-deterministic errors |
KR20080088911A (en) * | 2007-03-30 | 2008-10-06 | 슬림디스크 주식회사 | New data storage card, interface device and method by memory's bad pattern |
CN101567218B (en) * | 2008-09-22 | 2012-05-23 | 深圳桑达电子集团有限公司 | Method for generating flash memory identification code |
-
2010
- 2010-05-07 KR KR1020100043220A patent/KR101698211B1/en active IP Right Grant
-
2011
- 2011-05-09 US US13/696,760 patent/US9245152B2/en active Active
- 2011-05-09 EP EP11777615.3A patent/EP2568655B1/en not_active Not-in-force
- 2011-05-09 CN CN201180033643.0A patent/CN102971984B/en not_active Expired - Fee Related
- 2011-05-09 WO PCT/KR2011/003443 patent/WO2011139134A2/en active Application Filing
Non-Patent Citations (1)
Title |
---|
None * |
Also Published As
Publication number | Publication date |
---|---|
EP2568655A2 (en) | 2013-03-13 |
CN102971984A (en) | 2013-03-13 |
WO2011139134A2 (en) | 2011-11-10 |
US9245152B2 (en) | 2016-01-26 |
WO2011139134A3 (en) | 2012-02-02 |
EP2568655A4 (en) | 2013-12-25 |
US20130061287A1 (en) | 2013-03-07 |
KR101698211B1 (en) | 2017-01-19 |
KR20110123629A (en) | 2011-11-15 |
CN102971984B (en) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9136010B2 (en) | Method for generating physical identifier in storage device and machine-readable storage medium | |
JP5839659B2 (en) | Semiconductor device | |
US9442833B1 (en) | Managing device identity | |
US11409872B2 (en) | Confirming a version of firmware loaded to a processor-based device | |
EP2568655B1 (en) | Method for authenticating a storage device, machine-readable storage medium, and host device | |
US20120110343A1 (en) | Trustworthy timestamps on data storage devices | |
JP2001297038A (en) | Data storage device, recording medium, and recording medium control method | |
WO2012002009A1 (en) | Recording apparatus, writing apparatus, reading apparatus, and method of controlling recording apparatus | |
TWI443517B (en) | Memory stroage apparatus, memory controller and password verification method | |
US11755406B2 (en) | Error identification in executed code | |
WO2009057092A1 (en) | Caching for structural integrity schemes | |
TW201207862A (en) | Memory identification code generating method, management method, controller and storage system | |
CN115576483A (en) | Secure identity linking between trusted computing based components | |
CN101609492B (en) | Method and system for encrypting/decrypting embedded device | |
JP5986279B2 (en) | Semiconductor device | |
CN110516457B (en) | Data storage method, data reading method and storage device | |
CN115599407B (en) | Firmware burning method, firmware burning system and memory storage device | |
US20230057004A1 (en) | Secure Collection of Diagnostics Data about Integrated Circuit Memory Cells | |
KR102692669B1 (en) | Method and apparatus for generating key using characteristic of memory | |
CN118094521A (en) | Data protection method and security chip | |
CN118694516A (en) | The device verifies the public key without having a secret for generating the corresponding private key | |
EP2945092A1 (en) | Memory device with secure test mode |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20121205 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
DAX | Request for extension of the european patent (deleted) | ||
A4 | Supplementary search report drawn up and despatched |
Effective date: 20131127 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: G11B 20/00 20060101ALI20131121BHEP Ipc: G06F 21/73 20130101ALI20131121BHEP Ipc: H04L 9/32 20060101AFI20131121BHEP |
|
17Q | First examination report despatched |
Effective date: 20140819 |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
INTG | Intention to grant announced |
Effective date: 20170921 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE PATENT HAS BEEN GRANTED |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: REF Ref document number: 969166 Country of ref document: AT Kind code of ref document: T Effective date: 20180215 Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602011045534 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: MP Effective date: 20180207 |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK05 Ref document number: 969166 Country of ref document: AT Kind code of ref document: T Effective date: 20180207 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: LT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180507 Ref country code: HR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: RS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180507 Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180607 Ref country code: LV Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180508 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: AL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602011045534 Country of ref document: DE |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: SM Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20181108 |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 20180509 |
|
REG | Reference to a national code |
Ref country code: BE Ref legal event code: MM Effective date: 20180531 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: MM4A |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180531 Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180531 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180509 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180531 Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180509 Ref country code: GB Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180509 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: BE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180531 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20190423 Year of fee payment: 9 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MT Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180509 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: TR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20180207 Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO Effective date: 20110509 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MK Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20180207 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R119 Ref document number: 602011045534 Country of ref document: DE |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20201201 |