KR100857760B1 - A method and device to store secret key in flash memory - Google Patents
A method and device to store secret key in flash memory Download PDFInfo
- Publication number
- KR100857760B1 KR100857760B1 KR1020070047146A KR20070047146A KR100857760B1 KR 100857760 B1 KR100857760 B1 KR 100857760B1 KR 1020070047146 A KR1020070047146 A KR 1020070047146A KR 20070047146 A KR20070047146 A KR 20070047146A KR 100857760 B1 KR100857760 B1 KR 100857760B1
- Authority
- KR
- South Korea
- Prior art keywords
- encryption key
- flash memory
- address
- encryption
- memory device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
Description
도 1은 본 발명의 보안 플래시 메모리 장치를 나타내는 블록도;1 is a block diagram illustrating a secure flash memory device of the present invention;
도 2는 본 발명의 보안 플래시 메모리 장치에 암호키가 저장되는 일 예를 설명하는 블록도;2 is a block diagram illustrating an example in which an encryption key is stored in a secure flash memory device of the present invention;
도 3은 본 발명에 따른 보안 플래시 저장 장치에 암호키를 저장하기 위한 방법의 일실시예를 보여주는 순서도;3 is a flow chart showing one embodiment of a method for storing an encryption key in a secure flash storage device in accordance with the present invention;
도 4는 도 3의 실시예에 따라 저장된 암호키를 독출하는 방법을 보여주는 순서도;4 is a flowchart illustrating a method of reading a stored encryption key according to the embodiment of FIG. 3;
도 5는 본 발명에 따른 보안 플래시 저장 장치에 암호키를 저장하기 위한 방법의 다른 실시예를 보여주는 순서도;5 is a flow chart showing another embodiment of a method for storing an encryption key in a secure flash storage device according to the present invention;
도 6은 도 5의 실시예에 따라 저장된 암호키를 독출하는 방법을 보여주는 순서도;6 is a flowchart illustrating a method of reading a stored encryption key according to the embodiment of FIG. 5;
*도면의 주요부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *
100 : 호스트 100: host
120 : 보안 플래시 메모리 장치120: secure flash memory device
200 : 호스트 인터페이스200: host interface
220 : CPU220: CPU
240 : 시큐리티 엔진240: security engine
260 : 제 1 플래시 메모리260: first flash memory
280 : 플래시 콘트롤러280: flash controller
300 : 메인 메모리300: main memory
320 : 제 2 플래시 메모리320: second flash memory
400 : 암호키 저장 공간400: encryption key storage space
420 : 코드 에어리어(code area)420 code area
440 : 암호키 및 가비지(garbage) 데이터440: encryption key and garbage data
본 발명은 반도체 메모리 장치에 관한 것으로, 더욱 상세하게는 암호키를 플래시 메모리에 안전하게 저장할 수 있는 저장 방법 및 그것을 이용하는 플래시 메모리 시스템에 관한 것이다.The present invention relates to a semiconductor memory device, and more particularly, to a storage method capable of securely storing an encryption key in a flash memory, and a flash memory system using the same.
일반적으로, 인터넷 발전으로 인하여 종래의 콘텐츠(contents)들은 디지털 형태로 바뀌면서 불법복제가 용이 해졌다. 따라서, 저작권자의 권리가 침해되는 것을 방지하기 위한 기술적 필요성이 증대되었고 그에 대응하는 신규 보안 기술이 개발되어 왔다. DRM(Digital Rights Management)은 디지털 저작권 관리를 의미한다. DRM은 디지털 콘텐츠 공급자의 이익을 안전하게 보호하며, 불법복제를 막고 사용료 부과와 결제대행 등 콘텐츠의 생성에서 유통·관리까지를 일괄적으로 지원하는 기술이다. 여기에는 적법한 사용자만 콘텐츠를 사용하고 적절한 요금을 지불하도록 만드는 디지털 저작권 관리기술, 저작권 승인과 집행을 위한 소프트웨어 및 보안기술, 지불 및 결제기술이 모두 포함된다. 이러한 이유로, 중요한 권리 또는 정보들을 안전하게 저장 관리하기 위한 장치의 중요성이 높아지고 있다. 본 명세서는 보호되어야 할 데이터를 안전하게 저장하기 위한 장치에 대하여 서술하고자 한다. In general, due to the development of the Internet, the conventional contents (contents) are converted into a digital form, making piracy easier. Therefore, the technical necessity for preventing the rights of copyright holders to be infringed has been increased, and new security technologies corresponding thereto have been developed. Digital Rights Management (DRM) means digital rights management. DRM is a technology that secures the interests of digital content providers, prevents illegal copying, and supports the creation, distribution, and management of contents such as charging royalties and settlement services. This includes digital rights management technology that ensures that only legitimate users use content and pay the appropriate fees, software and security technologies for copyright approval and enforcement, and payment and payment technology. For this reason, the importance of devices for securely storing and managing important rights or information is increasing. This specification is intended to describe an apparatus for securely storing data to be protected.
보안 저장 장치(secure storage system)는 호스트(host)로부터 전달되는 쓰기(write) 요청에 응답하여, 데이터를 비휘발성 메모리(non-volatile memory)의 특정 영역에 저장한다. 또는, 보안 저장 장치(120)는 호스트로부터 전달되는 읽기(read) 요청에 응답하여 내부에 저장된 데이터를 호스트로 전송한다. 이때 호스트와 보안 저장 시스템간 안전한 데이터 전달을 위해서는 암호키가 필요하다. 이 암호키는 외부 불특정 사용자로부터의 공격이나 해킹으로부터 안전하게 보호되어야 하며 암호키가 어떠한 방법으로 어디에 저장되는지에 따라 전체 시스템의 보안성이 결정된다. A secure storage system stores data in a specific area of non-volatile memory in response to a write request from a host. Alternatively, the
종래의 경우, 암호키는 보안 저장 장치의 내부에 구비되는 불휘발성 반도체 메모리에 저장되었다. 암호키는 제품의 양산 단계에서 일괄적이고 규칙적인 순서로 보안 저장 장치 내부의 불휘발성 반도체 메모리에 저장되었다. 일괄적이고 규칙적인 순서를 갖는 보안키는 외부의 해킹이나, 침입에 쉽게 노출될 수 있는 문제점이 존재한다. 또한, 하나의 보안키 정보를 획득하게 되면 다른 동일한 보안키를 갖는 제품도 쉽게 공격 될 수 있는 문제점이 있다. In the related art, the encryption key is stored in a nonvolatile semiconductor memory provided in the secure storage device. The encryption keys were stored in the nonvolatile semiconductor memory inside the secure storage device in a batch and regular order during the mass production stage of the product. There is a problem that security keys with a batch and regular order can be easily exposed to external hacking or intrusion. In addition, if one security key information is obtained, another product having the same security key may be easily attacked.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은 암호키를 제품별로 다른 위치에 저장하여 보안 저장 장치의 보안성을 높이는 방법 및 장치를 제공하는데 있다.The present invention has been proposed to solve the above problems, and an object of the present invention is to provide a method and apparatus for increasing the security of the secure storage device by storing the encryption key in a different location for each product.
상기 목적을 달성하기 위하여 본 발명의 암호키 저장 방법은, 상기 플래시 메모리의 배드 블록 정보를 검색 및 수집하는 단계; 상기 배드 블록 정보를 이용하여 상기 암호키가 저장되는 암호키 주소를 생성하는 단계; 및 상기 암호키 주소에 따라 상기 암호키를 상기 플래시 메모리에 프로그램하는 단계를 포함한다. In order to achieve the above object, the encryption key storage method of the present invention includes: searching and collecting bad block information of the flash memory; Generating an encryption key address in which the encryption key is stored using the bad block information; And programming the encryption key into the flash memory according to the encryption key address.
바람직한 실시예에 있어서, 상기 플래시 메모리는 제 1 플래시 메모리와 제 2 플래시 메모리를 포함한다.In a preferred embodiment, the flash memory comprises a first flash memory and a second flash memory.
바람직한 실시예에 있어서, 상기 제 1 플래시 메모리는 노어형 플래시 메모리인 것을 특징으로 한다.In a preferred embodiment, the first flash memory is a NOR flash memory.
바람직한 실시예에 있어서, 상기 제 2 플래시 메모리는 낸드형 플래시 메모리인 것을 특징으로 한다. In a preferred embodiment, the second flash memory is NAND flash memory.
바람직한 실시예에 있어서, 상기 암호키 주소는 상기 암호키를 상기 제 1 플래시 메모리에 저장하기 위한 주소인 것을 특징으로 한다.In an exemplary embodiment, the encryption key address is an address for storing the encryption key in the first flash memory.
바람직한 실시예에 있어서, 상기 배드 블록 정보는 상기 제 2 플래시 메모리의 배드 블록 주소 또는 배드 블록 개수에 대한 정보를 포함한다. In a preferred embodiment, the bad block information includes information on the bad block address or the number of bad blocks of the second flash memory.
바람직한 실시예에 있어서, 상기 암호키 주소는 상기 배드 블록 정보를 참조 하여 시큐리티 엔진이 암호화 알고리즘을 통하여 생성한 랜덤화된 데이터인 것을 특징으로 한다. In an exemplary embodiment, the encryption key address is randomized data generated by a security engine through an encryption algorithm with reference to the bad block information.
바람직한 실시예에 있어서, 상기 암호키 주소를 상기 플래시 메모리에 저장하는 단계를 더 포함한다.In a preferred embodiment, the method further comprises storing the encryption key address in the flash memory.
상기 목적을 달성하기 위하여 본 발명의 보안 플래시 메모리 시스템은, 암호키가 저장되는 제 1 플래시 메모리; 복수의 배드 블록들을 포함하는 제 2 플래시 메모리; 상기 제 2 플래시 메모리의 배드 블록 정보를 참조하여 상기 암호키가 저장되는 암호키 주소를 생성하는 시큐리티 엔진; 및 상기 제 2 플래시 메모리를 검색하여 상기 배드 블록 정보를 상기 시큐리티 엔진에 제공하고, 상기 암호키 주소에 따라 상기 암호키를 저장하도록 상기 제 1 플래시 메모리 및 상기 제 2 플래시 메모리를 제어하는 중앙처리장치를 포함한다.In order to achieve the above object, the secure flash memory system of the present invention includes a first flash memory in which an encryption key is stored; A second flash memory including a plurality of bad blocks; A security engine generating an encryption key address in which the encryption key is stored by referring to bad block information of the second flash memory; And a central processing unit searching for the second flash memory to provide the bad block information to the security engine, and to control the first flash memory and the second flash memory to store the encryption key according to the encryption key address. It includes.
바람직한 실시예에 있어서, 상기 제 1 플래시 메모리는 노어형 플래시 메모리인 것을 특징으로 한다.In a preferred embodiment, the first flash memory is a NOR flash memory.
바람직한 실시예에 있어서, 상기 제 2 플래시 메모리는 낸드형 플래시 메모리인 것을 특징으로 한다.In a preferred embodiment, the second flash memory is NAND flash memory.
바람직한 실시예에 있어서, 상기 배드 블록 정보는 상기 제 2 플래시 메모리의 배드 블록 주소 또는 배드 블록 개수에 대한 정보를 포함한다.In a preferred embodiment, the bad block information includes information on the bad block address or the number of bad blocks of the second flash memory.
바람직한 실시예에 있어서, 상기 암호키 주소는 상기 시큐리티 엔진에서 Data Encryption Standard(DES), Rivest-Shamir-Adleman(RSA), 그리고 Advanced Encryption Standard(AES) 등의 암호화 알고리즘들 중 어느 하나에 따라 생성된다.In a preferred embodiment, the encryption key address is generated in accordance with any one of encryption algorithms such as Data Encryption Standard (DES), Rivest-Shamir-Adleman (RSA), and Advanced Encryption Standard (AES) in the security engine. .
바람직한 실시예에 있어서, 상기 암호키는 제 1 플래시 메모리에 저장된다.In a preferred embodiment, the encryption key is stored in the first flash memory.
바람직한 실시예에 있어서, 상기 암호키 주소는 제 2 플래시 메모리에 저장된다. In a preferred embodiment, the cryptographic key address is stored in a second flash memory.
바람직한 실시예에 있어서, 상기 제 2 플래시 메모리와의 인터페이싱을 위한 플래시 컨트롤러를 더 포함한다.In a preferred embodiment, further comprising a flash controller for interfacing with the second flash memory.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다. 바람직한 설명을 위하여 SecureMMC(Multi Media Card) 장치를 이용하여 설명하기로 한다. DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings so that those skilled in the art may easily implement the technical idea of the present invention. do. For a preferable description, it will be described using a Secure MMC (Multi Media Card) device.
도 1은 본 발명의 바람직한 구성도를 보여주는 블록도이다. 도 1을 참조하면, 호스트(100)는 컴퓨터 장치, 휴대용 전화기, 디지털 카메라 등의 장치를 포함한다. 호스트(100)는 보안 저장 장치(120)와 프로토콜을 동기화한 후 상호 인터페이스를 경유하여 통신을 개시한다. 호스트(100)와 보안 저장 장치 사이에 사용되는 프로토콜은 SD, MMC 카드, 하드디스크(HDD), USB, SATA, 그리고 PATA 등과 같이 그 응용 목적에 따라 달라진다.1 is a block diagram showing a preferred configuration of the present invention. Referring to FIG. 1, the
보안 저장 장치(120)는 보안 저장 장치를 구동하기 위하여, 호스트 인터페이스(200), CPU(220), 시큐리티 엔진(240), 제 1 플래시 메모리(260), 플래시 콘트롤러(280), 메인 메모리(300)와 제 2 플래시 메모리(320)로 구성된다.The
호스트 인터페이스(200)는 호스트(100)의 요청에 응답하여 보안 저장 장치(120)와 호스트(100) 간 통신을 위한 프로토콜을 매칭시킨다. The
CPU(220)는 호스트(100)의 요청에 응답하여, 보안 저장 장치(120)를 구동하기 위해 각각의 블럭(예를 들면, 호스트 인터페이스(200), 제 1 플래시 메모리(260), 메인 메모리(300), 시큐리티 엔진(240), 플래시 콘트롤러(280), 그리고 제 2 플래시 메모리(320))을 제어한다. CPU(220)는 메인 메모리(300)의 FTL(이하 FTL이라 함)(flash translation layer) 소프트웨어가 구동될 때 플래시 메모리의 배드 블록 정보를 수집하도록 제어한다. In response to a request from the
시큐리티 엔진(240)은 CPU(220)의 제어에 따라 제공되는 데이터를 암호화 또는 복호화한다. 일반적으로, 개인키를 사용하여 데이터를 암호화하는 Data Encryption Standard(DES)와, 보편적으로 사용되는 암호화 알고리즘으로서 Rivest-Shamir-Adleman(RSA)와, 미국 표준 암호 알고리즘인 Advanced Encryption Standard(AES) 등의 알고리즘을 선택적으로 수행한다. FTL에 따라 제공되는 제 2 플래시 메모리(320)의 배드 블록 정보는 시큐리티 엔진(240)에서 다음과 같은 수학식에 따라 랜덤한 주소를 갖는 암호키 주소로 생성된다. The
제 2 플래시 메모리(320)의 배드 블록 주소는 시큐리티 엔진(240)에서 구동되는 암호키 주소 생성 알고리즘을 통해 암호키를 저장하기 위한 암호키 주소로 생성된다. The bad block address of the
제 1 플래시 메모리(260)는 호스트(100)로부터 제공된 데이터를 저장한다. 제 1 플래시 메모리(260)는 본 발명에 있어서 노어 플래시 메모리로 구성될 수 있 으며, 암호키가 저장될 공간을 갖는다. 암호키는 가비지(garbage) 데이터와 혼합되어 저장된다. The
플래시 콘트롤러(280)는 제 2 플래시 메모리(320)와의 데이터 교환을 위한 제어 동작을 수행한다. The
메인 메모리(300)는 코드(code) 또는 어드레스 매핑 테이블, FTL 프로그램, 펌웨어(frimware) 등과 같은 보안 저장 장치(120)를 운용하기 위한 정보가 저장된다. 메인 메모리(300)는 휘발성 메모리인 SRAM, DRAM으로 구성된다. 그리고 메인 메모리(300)은 제 1 플래시 메모리(260)로부터 독출되는 암호키를 전달받아 임시로 저장한다.The
제 2 플래시 메모리(320)는 호스트(100)의 읽기/쓰기 요청에 응답하여 암호키 주소와 일반 데이터를 저장한다. 제 2 플래시 메모리(320)는 본 발명에 있어서 낸드 플래시 메모리로 구성될 수 있으며, RAdd 함수로부터 생성된 암호키 주소를 제 2 플래시 메모리(320)에 저장한다. The
요약하면, 보안 저장 장치(120)는 FTL 프로그램에 따라, 플래시 메모리의 고유한 특성인 배드 블록 정보를 수집한다. 수집된 배드 블록 정보에 따라 시큐리티 엔진(240)의 함수 RAdd로부터 암호키 주소를 생성한다. RAdd 함수로부터 생성된 암호키 주소에 따라 암호키는 제 1 플래시 메모리(260)의 특정 영역에 저장된다. 암호키가 저장되지 않은 제 1 플래시 메모리(260)의 나머지 공간은 가비지 데이터가 저장된다.In summary, the
도 2는 본 발명에 따른 제 1 플래시 메모리(260)의 데이터 영역을 보여주는 블록도이다. 도 2를 참조하면, 제 1 플래시 메모리(260)는 암호키 저장 공간(400)과 코드 에어리어(420)를 포함한다. 암호키 저장 공간(400)은 암호키와 가비지로 구성되는 암호키 저장 영역을 구비한다. 예를 들어, RAdd 함수로부터 생성된 암호키 주소가 3개라고 가정하면, 도 2에 도시된 바와 같이 암호키 "Key 0"은 함수 R_Add로부터 랜덤하게 생성된 암호키 주소에 대응하여 주소 "1"번에 대응하는 영역에 저장된다. 암호키 "Key 1"는 함수 RAdd로부터 랜덤하게 생성된 암호키 주소에 대응하여 주소 "5"번에 위치하고 있다. 암호키 "Key M"은 함수 RAdd로부터 랜덤하게 생성된 암호키 주소에 대응하여 주소 "N"번에 저장된다. 나머지 주소들에는 가비지 데이터들이 입력된다. 시큐리티 엔진(240)의 RAdd 함수로부터 생성되는 랜덤 암호키 주소는 일괄적이고 규칙성을 갖지 않는다. 이로 인해, 각각의 제품마다 다른 특성을 갖는 배드 블록 정보를 이용하면 제품마다 서로 다른 어드레스에 암호키를 저장하기 때문에 보안성을 높일 수 있다. 암호키의 개수는 제품 개발의 목적에 따라 변경될 수 있다. 2 is a block diagram illustrating a data area of the
코드 에어리어(code area)(420)는 보안 저장 장치(120)를 구동하기 위한 코드 또는 펌웨어(firmware) 소프트웨어를 저장한다.
도 3은 본 발명의 일실시예를 보여주는 순서도이다. 보안 저장 장치(120)는 호스트(100)와 호환성을 위해서 디스크 에뮬레이션 소프트웨어(disk emulation software)라 불리는 추가적인 소프트웨어를 필요로 한다. 통신 동작 동안, 호스 트(100)와 보안 저장 장치(120) 사이의 호환성은 플래시 변환 레이어와 같은 내장 시스템을 운영함으로써 달성될 수 있다. 다시 말해서, 호스트(100)는 보안 저장 장치(120)를 하드 드스크와 같이 인식하여 하드 디스크와 동일한 방식으로 접속한다. 도 3를 참조하면, 보안 저장 장치(120)에 전원이 인가되면, FTL 프로그램이 실행된다(S10). FTL 프로그램이 실행되면, 낸드 플래시 메모리의 구조적인 특성인 배드 블록의 위치, 주소 및 개수 등의 배드 블록 정보를 검색한다(S11). 검색된 배드 블록 정보는 시큐리티 엔진(240)으로 전송된다. 시큐리티 엔진(240)은 암호 알고리즘(예를 들면, Rivest-Shamir-Adleman(RSA))로부터 배드 블록 정보를 이용해 암호키 주소로 생성한다(S12). 암호키는 암호 알고리즘으로 생성된 암호키 주소에 따라 제 1 플래시 메모리(260)에 프로그램된다(S13). 그리고 제 2 플래시 메모리(320)에는 암호 알고리즘으로 생성된 암호키 주소가 저장된다(S14). 플래시 메모리의 특성상 보안 저장 장치(120) 전원이 차단되어도 제 2 플래시(320)에 프로그램된 암호키 주소는 삭제되지 않고 유지된다. 3 is a flowchart showing one embodiment of the present invention. The
도 4는 도 3의 실시예에 따라 SecureMMC 카드의 구동예를 보여주는 순서도이다. 도 4는 실제 사용자 환경에서 실시된다. 보안 저장 장치(120)에 외부로부터 전원이 인가되면, FTL 프로그램이 실행된다(S20). 제 2 플래시(320)로부터 암호키 주소가 독출되어 메인 메모리(300)에 로드(load)된다(S21). 독출된 암호키 주소에 따라 제 1 플래시 메모리(260)에 저장되어 있는 암호키를 독출한다(S22). 메인 메모리(300)로부터 독출된 암호키에 따라 암호키를 검증 후 보안 저장 장치(120)가 구동된다(S23). 4 is a flowchart showing an example of driving a SecureMMC card according to the embodiment of FIG. 4 is implemented in a real user environment. When power is applied to the
도 5는 본 발명에 따른 보안 플래시 저장 장치에 암호키를 저장하기 위한 방법의 다른 실시예를 보여주는 순서도이다. 도 5를 참조하면, 보안 저장 장치(120)에 전원이 인가되면, FTL 프로그램이 실행된다(S30). FTL 프로그램이 실행되면, 낸드 플래시 메모리의 구조적인 특성인 배드 블록의 위치, 주소 및 개수 등의 배드 블록 정보를 검색한다(S31). 검색된 배드 블록 정보는 시큐리티 엔진(240)으로 전송된다. 시큐리티 엔진(240)으로 전송된 배드 블록 정보는 암호 알고리즘(예를 들면, Rivest-Shamir-Adleman(RSA))에 의하여 암호키 주소로 생성된다(S32). 암호키는 암호키 주소에 따라 제 1 플래시 메모리(260)에 프로그램된다(S33). 도 3에 서술된 제 1 실시예와는 달리 본 발명의 제 2 실시예에 따르면, 제 2 플래시 메모리(320)에는 암호 알고리즘으로 생성된 암호키 주소가 저장되지 않는다. 따라서, 보안 저장 장치(120)의 전원이 차단되면 메인 메모리(300) 상에서 존재하는 암호키 주소 정보는 삭제된다. 5 is a flowchart illustrating another embodiment of a method for storing an encryption key in a secure flash storage device according to the present invention. Referring to FIG. 5, when power is applied to the
도 6은 도 5의 실시예에 따른 SecureMMC 카드의 구동예를 보여주는 순서도이다. 도 6은 실제 사용자 환경에서 실시된다. 보안 저장 장치(120)에 전원이 인가되면, FTL 프로그램이 실행된다(S40). FTL 프로그램이 실행되면, 낸드 플래시 메모리의 구조적인 특성인 배드 블록의 위치, 주소 및 개수 등의 배드 블록 정보를 검색한다(S41). 검색된 배드 블록 정보는 암호화를 하기 위해 시큐리티 엔진(240)으로 전송된다. 시큐리티 엔진(240)으로 전송된 배드 블록 정보는 암호 알고리즘(예를 들면, Rivest-Shamir-Adleman(RSA))에 의하여 암호키 주소로 생성된다(S42). 암호키 주소에 따라 제 1 플래시 메모리(260)로부터 암호키를 독출한다(S43). 제 1 플 래시 메모리로부터 독출된 암호키에 따라 보안 저장 장치(120)가 구동된다(S44). 6 is a flowchart showing an example of driving a SecureMMC card according to the embodiment of FIG. 6 is implemented in a real user environment. When power is applied to the
요약하면, 설명된 제 1 실시예에 따르면 배드 블록 정보로 생성된 암호키 주소는 제 2 플래시 메모리(320)에 프로그램된다. 따라서, 보안 저장 장치(120)의 전원이 차단되어도 저장된 암호키 주소는 삭제되지 않는다. 반면에, 도 5와 도 6에서 설명된 제 2 실시예에 따르면 배드 블록 정보로 생성된 암호키 주소는 제 2 플래시 메모리(320)에 저장되지 않고 메인 메모리(300) 상에서 구동된다. 보안 저장 장치(120)의 전원이 차단되면 저장된 암호키 주소는 삭제되며 보안 저장 장치(120)에 전원이 인가될 때마다 암호키 주소를 생성한다. In summary, according to the first embodiment described, the encryption key address generated with the bad block information is programmed in the
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.On the other hand, in the detailed description of the present invention has been described with respect to specific embodiments, various modifications are of course possible without departing from the scope of the invention. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be defined by the equivalents of the claims of the present invention as well as the following claims.
상술한 바와 같이 암호키의 주소가 낸드 플래시 메모리의 구조적 특성인 배드 블록 정보를 사용하여 생성된다. 배드 블록 정보를 암호키 주소로 사용하면, 암호키는 메모리 상에서 랜덤한 위치에 프로그램된다. 따라서, 외부의 해킹이나, 침입에 쉽게 노출되기 어렵다. 또한, 하나의 보안키 정보를 획득하더라도 동일 제품군의 다른 제품에 대해서 해킹 되기가 어렵다.As described above, the address of the encryption key is generated using bad block information, which is a structural characteristic of the NAND flash memory. Using bad block information as an encryption key address, the encryption key is programmed at a random location in memory. Therefore, it is hard to be easily exposed to external hacking or intrusion. Also, even if one piece of security key information is acquired, it is difficult to be hacked into other products of the same product family.
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070047146A KR100857760B1 (en) | 2007-05-15 | 2007-05-15 | A method and device to store secret key in flash memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070047146A KR100857760B1 (en) | 2007-05-15 | 2007-05-15 | A method and device to store secret key in flash memory |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100857760B1 true KR100857760B1 (en) | 2008-09-10 |
Family
ID=40022859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070047146A KR100857760B1 (en) | 2007-05-15 | 2007-05-15 | A method and device to store secret key in flash memory |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100857760B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9258111B2 (en) | 2011-12-16 | 2016-02-09 | Samsung Electronics Co., Ltd. | Memory device which protects secure data, method of operating the memory device, and method of generating authentication information |
US10438684B2 (en) | 2014-08-07 | 2019-10-08 | Samsung Electronics Co., Ltd. | Memory device, memory system, and method of operating the memory system |
US11716205B2 (en) | 2020-05-19 | 2023-08-01 | Samsung Electronics Co., Ltd. | Nonvolatile memory device storing a public key and a secret key, and an electronic device comprising the same |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000339417A (en) | 1999-05-25 | 2000-12-08 | Nippon Telegr & Teleph Corp <Ntt> | Ic card security managing method, ic card system and storage medium storing ic card security management program |
KR20050088121A (en) * | 2002-12-16 | 2005-09-01 | 마쯔시다덴기산교 가부시키가이샤 | Memory device and electronic device using the same |
KR20060026478A (en) * | 2006-01-03 | 2006-03-23 | 노키아 코포레이션 | Key storage administration |
KR20070111254A (en) * | 2006-05-17 | 2007-11-21 | 삼성전자주식회사 | Key control system and persistent storage control method using file |
-
2007
- 2007-05-15 KR KR1020070047146A patent/KR100857760B1/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000339417A (en) | 1999-05-25 | 2000-12-08 | Nippon Telegr & Teleph Corp <Ntt> | Ic card security managing method, ic card system and storage medium storing ic card security management program |
KR20050088121A (en) * | 2002-12-16 | 2005-09-01 | 마쯔시다덴기산교 가부시키가이샤 | Memory device and electronic device using the same |
KR20060026478A (en) * | 2006-01-03 | 2006-03-23 | 노키아 코포레이션 | Key storage administration |
KR20070111254A (en) * | 2006-05-17 | 2007-11-21 | 삼성전자주식회사 | Key control system and persistent storage control method using file |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9258111B2 (en) | 2011-12-16 | 2016-02-09 | Samsung Electronics Co., Ltd. | Memory device which protects secure data, method of operating the memory device, and method of generating authentication information |
US10438684B2 (en) | 2014-08-07 | 2019-10-08 | Samsung Electronics Co., Ltd. | Memory device, memory system, and method of operating the memory system |
US11716205B2 (en) | 2020-05-19 | 2023-08-01 | Samsung Electronics Co., Ltd. | Nonvolatile memory device storing a public key and a secret key, and an electronic device comprising the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5175856B2 (en) | Protection and method of flash memory block in secure device system | |
US7269741B2 (en) | Recording apparatus, medium, method, and related computer program | |
US8751795B2 (en) | Secure transfer and tracking of data using removable non-volatile memory devices | |
EP2528004A1 (en) | Secure removable media and method for managing the same | |
KR101081118B1 (en) | System and method for securely restoring a program context from a shared memory | |
JP2013506910A (en) | Write Once Read Many (WORM) Memory Device Authentication and Secure Ring | |
US20090187769A1 (en) | System and method for an autonomous software protection device | |
US8533807B2 (en) | Methods for accessing content based on a session ticket | |
US20180260151A1 (en) | Data Storage Device and Operating Method Therefor | |
WO2006031030A1 (en) | Method and apparatus for searching for rights objects stored in portable storage device using object identifier | |
JP2015172959A (en) | Access method for flash memory | |
US20130073870A1 (en) | Secure relocation of encrypted files | |
US9805186B2 (en) | Hardware protection for encrypted strings and protection of security parameters | |
KR100857760B1 (en) | A method and device to store secret key in flash memory | |
Chen et al. | A cross-layer plausibly deniable encryption system for mobile devices | |
US20080114686A1 (en) | Apparatuses for linking content with license | |
WO2010021975A2 (en) | Memory device upgrade | |
US20190278891A1 (en) | Method and apparatus for preventing and investigating software piracy | |
KR100562255B1 (en) | Method for initializing key of security domain | |
US20080112562A1 (en) | Methods for linking content with license | |
Choi et al. | Password-based single-file encryption and secure data deletion for solid-state drive | |
KR20080088911A (en) | New data storage card, interface device and method by memory's bad pattern | |
JP2011108151A (en) | Security adaptor for external storage | |
Dolgunov | Enabling optimal security for removable storage devices | |
JP2006190011A (en) | Radio ic chip, decoding system using the same, program to be used for the same, recording medium with the program recorded thereon, decoding method, and installation method of program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |