KR100969758B1 - 플래시 변환 레이어에서 데이터를 암호화하여 처리하기위한 방법 및 장치 - Google Patents

플래시 변환 레이어에서 데이터를 암호화하여 처리하기위한 방법 및 장치 Download PDF

Info

Publication number
KR100969758B1
KR100969758B1 KR1020070006593A KR20070006593A KR100969758B1 KR 100969758 B1 KR100969758 B1 KR 100969758B1 KR 1020070006593 A KR1020070006593 A KR 1020070006593A KR 20070006593 A KR20070006593 A KR 20070006593A KR 100969758 B1 KR100969758 B1 KR 100969758B1
Authority
KR
South Korea
Prior art keywords
data
page
flash
encryption
pages
Prior art date
Application number
KR1020070006593A
Other languages
English (en)
Other versions
KR20080069018A (ko
Inventor
민창우
전진하
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020070006593A priority Critical patent/KR100969758B1/ko
Priority to US12/017,723 priority patent/US8261098B2/en
Publication of KR20080069018A publication Critical patent/KR20080069018A/ko
Application granted granted Critical
Publication of KR100969758B1 publication Critical patent/KR100969758B1/ko
Priority to US13/569,713 priority patent/US8935541B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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/79Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명은 플래시 변환 레이어(FTL: Flash Translation Layer)에서 데이터를 암호화하여 처리하는 것에 관한 것으로, 플래시 메모리부와, 제어부와, 상기 제어부로부터 임의의 데이터의 쓰기가 요청되면, 상기 데이터를 저장할 상기 플래시 메모리부의 페이지를 적어도 하나 이상 검색하며, 상기 검색된 페이지가 암호화를 지원하는 경우, 미리 지정되는 암호화함수에 따라 상기 검색된 페이지 각각에 대응되게 페이지 키(page key)를 생성하여 상기 데이터를 암호화한 후 상기 검색된 페이지 각각에 저장하는 플래시 변환 레이어부를 포함함을 특징으로 한다.
따라서 본 발명은 플래시 메모리에 저장된 임의의 데이터를 추출하여도 데이터에 포함된 정보를 간단하게 파악할 수 없도록 하는 방법 및 장치를 제공한다.
플래시 메모리, 암호화, 복호화, 플래시 변환 레이어

Description

플래시 변환 레이어에서 데이터를 암호화하여 처리하기 위한 방법 및 장치{METHOD AND APPARATUS FOR ENCRYPTING AND PROCESSING DATA IN FLASH TRANSLATION LAYER}
도 1은 본 발명의 일 실시 예에 따른 단말기의 블록 구성도
도 2a는 본 발명의 일 실시 예에 따른 플래시 메모리부의 내부 구성도
도 2b는 본 발명의 일 실시 예에 따른 플래시 메모리부의 데이터 블록의 내부 구성도
도 2c는 본 발명의 일 실시 예에 따른 플래시 메모리부의 페이지에 포함된 스페어 어레이(spare array)의 내부 구성도
도 3은 본 발명의 일 실시 예에 따라 단말기가 임의의 데이터를 플래시 메모리부에 쓰는(writing) 흐름도
도 4는 본 발명의 일 실시 예에 따라 단말기가 임의의 데이터를 플래시 메모리부에서 읽는(reading) 흐름도
본 발명은 플래시 변환 레이어(flash translation layer)에 관한 것으로, 특히 임의의 데이터를 처리하는 플래시 메모리 및 그 방법에 관한 것이다.
일반적으로 플래시 메모리(Flash Memory)는 전력이 공급되지 않아도 미리 저장된 정보가 지워지지 않는 기억장치이다. 좀 더 자세히 설명하면, 플래시 메모리는 소비전력이 작고, 전원이 꺼지더라도 저장된 정보가 사라지지 않은 채 유지되는 특성을 지닌다. 플래시 메모리는 비휘발성 메모리로, 디램과 달리 전원이 끊기더라도 저장된 정보를 그대로 보존할 수 있을 뿐 아니라 정보의 입출력도 자유로워 디지털텔레비전, 디지털캠코더, 휴대전화, 디지털카메라, 개인휴대단말기(PDA), 게임기, MP3플레이어 등에 널리 이용된다.
그러나 현재 플래시 메모리에 임의의 데이터를 저장할 때, 아무런 처리과정 없이 원본 데이터를 저장하므로 플래시 메모리의 데이터를 추출한 후 데이터가 내포하는 정보를 간단하게 파악할 수 있는 문제점이 있었다. 특히, 플래시 메모리에 코드(code) 및 디버깅을 위한 심볼 테이블(debug symbol table) 등이 저장되어 있는 경우, 플래시 메모리의 데이터를 읽음으로 해킹(hacking) 또는 역공학(Reverse Engineering) 등이 가능하다는 문제점이 있었다.
따라서 본 발명은 플래시 메모리에 저장된 임의의 데이터를 추출하여도 데이터에 포함된 정보를 파악할 수 없도록 하는 방법 및 장치를 제공한다.
상기한 문제점을 해결하기 위해 플래시 변환 레이어에서 데이터를 암호화하여 처리하기 위한 방법에 있어서, 데이터의 쓰기가 요청되면, 상기 데이터를 저장할 플래시 메모리부의 페이지를 적어도 하나 이상 검색하며, 상기 검색된 페이지가 암호화를 지원하는 경우, 미리 지정되는 암호화함수에 따라 상기 검색된 페이지 각각에 대응되게 페이지 키(page key)를 생성하고, 상기 생성된 페이지 키로 상기 데이터를 암호화한 후 상기 검색된 페이지 각각에 저장함을 특징으로 한다.
상기한 문제점을 해결하기 위해 플래시 변환 레이어에서 데이터를 암호화하여 처리하기 위한 장치에 있어서, 플래시 메모리부와, 제어부와, 상기 제어부로부터 임의의 데이터의 쓰기가 요청되면, 상기 데이터를 저장할 상기 플래시 메모리부의 페이지를 적어도 하나 이상 검색하며, 상기 검색된 페이지가 암호화를 지원하는 경우, 미리 지정되는 암호화함수에 따라 상기 검색된 페이지 각각에 대응되게 페이지 키(page key)를 생성하여 상기 데이터를 암호화한 후 상기 검색된 페이지 각각에 저장하는 플래시 변환 레이어(Flash Translation Layer)부를 포함함을 특징으로 한다.
이하 본 발명의 바람직한 실시 예들을 첨부한 도면을 참조하여 상세히 설명한다. 또한 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
도 1은 본 발명의 일 실시 예에 따른 단말기의 블록 구성도이다. 도 1을 참조하여 단말기의 구성요소들을 설명하고자 한다.
단말기는 제어부(101) 및 제어부(101)에 연결된 플래시 변환 레이어부(FTL: Flash Translation Layer)(105) 및 플래시 변환 레이어부(105)에 연결된 플래시 메모리부(107)를 포함하여 구성된다.
각각의 구성요소들을 살펴보면, 플래시 메모리부(107)는 제어부(101)의 제어에 따라 임의의 데이터를 저장하거나 미리 쓰인 임의의 데이터를 로드(load)할 수 있다. 특히 본 발명에서 플래시 메모리부(107)는 제어부(101)의 제어에 따라 암호화된 임의의 데이터를 입력받아 저장하거나 미리 암호화되어 저장된 임의의 데이터를 로드할 수 있다.
도 2a를 참조하여 플래시 메모리부(107)의 구성을 설명하면, 플래시 메모리부(107)는 데이터 블록부(Data Blocks)(201)와 파티션 정보 테이블(PIT: Partition Information Table)(203)을 포함하여 구성된다. 여기서 데이터 블록부(201)는 다수개 이상의 블록으로 구성되며, 사용자로부터 쓰기 요청된 임의의 데이터를 저장하는 영역이다. 데이터 블록부(201)는 파티션이 가능하며, 해당 파티션 영역마다 서로 다른 기능이 가능하도록 권한을 부여할 수 있다. 예를 들면, 데이터 블록부(201)가 2개의 파티션으로 분할되는 경우, 임의의 파티션 영역은 읽기 기능, 쓰기 기능 암호화된 임의의 데이터를 저장하는 암호화 저장 기능이 가능하도록 하고, 다른 파티션 영역은 읽기 기능, 쓰기 기능만 가능하도록 권한을 부여할 수 있다.
그리고 파티션 정보 테이블(203)은 플래시 메모리부(107)에 대한 정보를 포함한다. 좀 더 자세히 설명하면, 파티션 정보 테이블(203)은 데이터 블록부(201)의 물리 주소(physical address) 정보 및 파티션 개수 정보 및 각 파티션의 논리 블록 번호(LBN: Logical Block Number) 정보 및 각 파티션의 권한 정보를 포함한다.
파티션의 권한 정보는 해당 파티션 영역에 대해 가능한 권한을 나타낸다. 예를 들면, 임의의 파티션 영역이 읽기 기능(R), 쓰기 기능(W) 및 암호화 저장 기능(C)을 지원하는 경우, 해당 파티션 영역이 이들 기능들을 제공한다는 것을 포함하여 권한 정보를 생성할 수 있다. 그리고 단말기는 파티션 정보 테이블(203)의 권한 정보를 분석하여 임의의 파티션 영역이 제공하는 기능을 확인할 수 있다.
그리고 데이터 블록부(201)를 구성하는 블록의 구성을 도 2b를 참조하여 살펴보면, 임의의 블록(211)은 다수개 이상의 페이지(209)를 포함하여 구성된다. 그리고 임의의 페이지(209)는 메인 어레이부(main array)(205)와 스페어 어레이부 (spare array)(207)로 분할된다. 이 메인 어레이부(205)는 실제로 임의의 데이터를 저장하는 영역이며, 스페어 어레이부(207)는 메인 어레이부(205)에 대한 메타정보를 저장하는 영역이다.
도 2c를 참조하여 스페어 어레이부(207)에 저장되는 메타정보를 살펴보면, 현재 페이지를 포함하는 블록의 논리 블록 번호를 나타내는 논리 블록 번호 정보(213)와 현재 페이지를 포함하는 블록에 해당되는 삭제 횟수를 나타내는 삭제 횟수 정보(215)를 포함한다. 그리고 스페어 어레이부(207)는 현재 페이지에 포함된 메인 어레이부의 오류를 검사하고 정정하기 위한 메인 어레이 오류 검사 정정 정보(MECC: Main array Error Checking and Correction)(217)와 현재 페이지에 포함된 스페어 어레이부의 오류를 검사하고 정정하기 위한 스페어 어레이 오류 검사 정정 정보(SECC: Spare array Error Checking and Correction)(219)를 포함한다. 그 리고 스페어 어레이부(207)는 현재 페이지를 포함하는 블록이 베드 블록인지 여부를 나타내는 베드 블록 정보(BI: Bad Block Information)(221)와 현재 페이지의 상태를 나타내는 상태 정보(AI: Allocation Information)(223)를 포함한다. 그리고 스페어 어레이부(207)는 이외의 정보를 저장하기 위한 영역인 예비 영역(RSV: Reserved)(225)을 포함할 수 있다.
베드 블록 정보(221)와 상태 정보(223)가 저장되는 영역이 각각 1바이트인 경우, 베드 블록 정보(221)가 0xFF이면 정상적인 블록임을 나타내며 0xFF가 아니면 베드 블록임을 나타낼 수 있다. 그리고 상태정보(223)가 0xFF이면 현재 페이지가 사용되지 않음을 나타내며 0xF0이면 현재 페이지에 임의의 데이터가 저장 중임을 나타내고 0x00이면 현재 페이지에 임의의 데이터의 저장이 완료됨을 나타낼 수 있다.
지금까지 도 2a 내지 도 2c를 참조하여 플래시 메모리부(107)의 내부 구성을 살펴보았다. 그러나 도 2a 내지 도 2c는 단지 실시 예이며, 플래시 메모리부(107)에 대한 정보들이 위치하는 영역은 플래시 메모리부(107)를 어떻게 구성하는가에 따라 달라질 수 있다.
다시 도 1로 돌아가서, 플래시 변환 레이어부(105)는 파일 시스템과 응용 프로그램에게 플래시 메모리부(107)를 하드 디스크 드라이브(HDD: Hard Disk Drive) 및 램(RAM: Random Access Memory) 등과 같은 블록 디바이스처럼 사용할 수 있도록 인터페이스를 제공하는 역할을 한다. 다시 말해서, 플래시 변환 레이어부(105)는 제어부(101)가 플래시 메모리부(107)를 하드 디스크 드라이브 및 램으로 인식할 수 있도록 하며, 하드 디스크 드라이브 및 램과 동일한 방식으로 플래시 메모리부(107)를 액세스할 수 있도록 한다. 플래시 변환 레이어부(105)의 기능들은 논리 어드레스-물리 어드레스 사상(寫像) 정보 관리 기능 및 베드 블록 관리 기능 및 데이터 균등 저장(wear leveling) 기능 등을 포함한다.
특히 본 발명에서 플래시 변환 레이어부(105)는 암/복호화부(103)를 포함하여 구성된다. 암/복호화부(103)를 구비하여 플래시 변환 레이어부(105)는 임의의 데이터를 플래시 메모리부(107)에 저장하라는 명령인 쓰기 명령이 제어부(101)로부터 요청되면, 임의의 데이터를 입력받아 임의의 데이터를 암호화하고 암호화된 임의의 데이터를 플래시 메모리부(107)에 저장할 수 있다. 그리고 플래시 변환 레이어부(105)는 플래시 메모리부(107)에 미리 저장된 임의의 데이터를 로드하라는 명령인 읽기 명령이 제어부(101)로부터 요청되면, 플래시 메모리부(107)로부터 암호화된 임의의 데이터를 로드하고, 로드된 임의의 데이터를 복호화하여 제어부(101)로 출력할 수 있다.
플래시 변환 레이어부(105)의 암/복호화부(103)는 암/복호화를 수행하기 위한 암호화 함수(Crypto function)를 제공하며, 암호화 함수를 이용하여 임의의 데이터를 암호화하거나 복호화 할 수 있다. 암/복호화부(103)는 루트 키(root key)로 임의의 데이터를 암호화 하지 않고, 암호화 함수에 루트 키 및 임의의 데이터를 입력하여 가공된 루트 키를 생성할 수 있다. 그리고 암/복호화부(103)는 가공된 루트 키로 임의의 데이터를 암호화 할 수 있으며, 암호화된 임의의 데이터를 복호화 할 수 있다.
예를 들면, 암/복호화부(103)는 암호화 함수로 일방향 해쉬 함수(one-way hash function)를 제공할 수 있다. 일방향 해쉬 함수를 좀 더 자세히 설명하면, 역연산이 불가능한 수식을 말한다. 좀더 설명하자면, 일방향 해쉬 함수란 일방향으로만 임의의 입력값으로 해당 해쉬값을 출력하는 함수를 말한다. 여기서 일방향이란 누구든지 일방향에 대한 해쉬값은 계산할수 있지만, 그 해쉬값에 대한 입력값을 유추할 수 없는 것을 말한다.
특히 본 발명에서 플래시 변환 레이어부(105)는 제어부(101)로부터 쓰기 명령이 입력되면, 플래시 메모리부(107)에 포함된 페이지들 중에서 임의의 데이터를 저장할 페이지(209)를 검색한다. 그리고 플래시 변환 레이어부(105)는 검색된 페이지(209)에 해당되는 물리 주소를 계산한다. 그리고 플래시 변환 레이어부(105)는 검색된 페이지(209)에 포함된 스페어 어레이부(207)를 분석하여 현재 페이지의 논리 블록 번호 정보(213) 및 삭제 횟수 정보(215)를 검색한다. 그리고 플래시 변환 레이어부(105)는 검색된 논리 블록 번호 정보(213) 및 삭제 횟수 정보(215)로 각각 현재 페이지에 해당되는 논리 블록 번호 및 현재 페이지가 포함된 블록의 삭제 횟수를 계산한다. 그리고 플래시 변환 레이어부(105)는 계산된 물리 주소 및 논리 블록 번호 및 삭제 횟수와 함께 루트 키를 암호화 함수에 입력하여 가공된 루트 키를 생성한다. 이 가공된 루트 키를 페이지 키라고 말한다.
예를 들면, 암호화 함수로 일방향 해쉬 함수를 사용할 경우, 플래시 변환 레이어부(105)는 계산된 물리 주소 및 논리 블록 번호 및 삭제 횟수와 루트 키를 일방향 해쉬 함수에 입력하여 가공된 루트 키인 해쉬값을 생성할 수 있다. 이 해쉬값도 페이지 키라고 말할 수 있다.
그리고 플래시 변환 레이어부(105)는 페이지 키로 임의의 데이터를 암호화 하고, 암호화된 임의의 데이터를 검색된 페이지(209)에 저장한다.
그리고 플래시 변환 레이어부(105)는 제어부(101)로부터 읽기 명령이 입력되면, 플래시 메모리부(107)에 포함된 페이지들 중에서 읽기 요청된 데이터를 포함하는 페이지(209)를 검색한다. 그리고 플래시 변환 레이어부(105)는 검색된 페이지(209)에 해당되는 물리 주소를 계산한다. 그리고 플래시 변환 레이어부(105)는 검색된 페이지(209)에 포함된 스페어 어레이부(207)를 분석하여 현재 페이지의 논리 블록 번호 정보(213) 및 삭제 횟수 정보(215)를 검색한다. 그리고 플래시 변환 레이어부(105)는 검색된 논리 블록 번호 정보(213) 및 삭제 횟수 정보(215)로 각각 현재 페이지에 해당되는 논리 블록 번호 및 현재 페이지가 포함된 블록의 삭제 횟수를 계산한다. 그리고 플래시 변환 레이어부(105)는 계산된 물리 주소 및 논리 블록 번호 및 삭제 횟수를 암호화 함수에 입력하여 가공된 루트 키를 생성한다.
그리고 플래시 변환 레이어부(105)는 검색된 페이지(201)에 포함된 임의의 데이터를 로드하고, 로드된 임의의 데이터를 페이지 키로 복호화 한 후 제어부(101)로 출력한다.
제어부(101)는 단말기의 다양한 기능을 제공하기 위해 단말기의 각 구성요소들을 제어한다. 특히 본 발명에서 제어부(101)는 플래시 변환 레이어부(105)를 제어하여 임의의 데이터를 암호화하여 플래시 메모리부(107)에 저장하거나 플래시 메모리부(107)에 암호화되어 저장된 임의의 데이터를 로드하여 복호화한 후 해당 데 이터를 입력받고, 입력된 데이터를 변경 및 출력할 수 있다.
지금까지 도 1 내지 도 2c를 참조하여 본 발명에 따른 단말기의 구성요소들을 설명하였다. 이제부터 도 3 내지 도 4를 참조하여 본 발명에 따른 단말기가 데이터를 저장하거나 로드하는 과정을 살펴보고자 한다.
도 3은 본 발명의 일 실시 예에 따라 단말기가 임의의 데이터를 플래시 메모리부(107)에 저장하는 흐름도이다. 도 3을 참조하여 플래시 메모리부(107)에 임의의 데이터를 저장할 때, 임의의 데이터를 암호화하여 저장하는 과정을 설명하고자 한다.
본 발명을 간단히 설명하기 위해, 임의의 데이터의 크기 및 암호화된 임의의 데이터의 크기가 페이지 영역의 크기보다 크지 않고, 임의의 데이터를 저장할 페이지가 포함된 블록을 포함하는 파티션에 쓰기 기능을 수행할 수 있는 권한이 있는 것으로 가정한다.
301단계에서 플래시 변환 레이어부(105)는 제어부(101)로부터 임의의 데이터를 플래시 메모리부(107)에 저장하는 명령인 쓰기 명령이 입력되는지 여부를 확인한다. 플래시 변환 레이어부(105)는 쓰기 명령이 입력되면 303단계로 진행하고, 쓰기 명령이 입력되지 않으면 쓰기 명령이 입력될 때까지 301단계를 반복 수행한다.
303단계로 진행하는 경우, 플래시 변환 레이어부(105)는 플래시 메모리부(107)의 페이지들 중에서 임의의 데이터를 저장할 페이지를 검색한다.
좀 더 자세히 설명하면, 플래시 변환 레이어부(105)는 제어부(101)로부터 임의의 데이터를 저장할 페이지 번호인 논리 페이지 번호(LPN: Logical Page Number) 를 입력받는다. 그리고 플래시 변환 레이어부(105)는 입력된 논리 페이지 번호에 해당되는 페이지(209)를 검색하고, 검색된 페이지(209)의 메인 어레이부(205) 및 스페어 어레이부(207)에 포함된 데이터들을 입력받는다. 그리고 플래시 변환 레이어부(105)는 스페어 어레이부(207)에 포함된 논리 블록 번호 정보로 논리 블록 번호를 확인하고, 확인된 논리 블록 번호 내에서 현재 페이지의 물리 주소를 계산한다. 플래시 변환 레이어부(105)가 물리 주소를 계산하는 방식은 플래시 메모리부(107)의 블록 영역과 페이지 영역의 크기에 따라 달라질 수 있다.
그리고 305단계에서 플래시 변환 레이어부(105)는 임의의 데이터를 암호화한 후 저장해야 하는지 여부를 확인한다. 플래시 변환 레이어부(105)는 임의의 데이터를 암호화하여 저장해야 하면 307단계로 진행하고, 임의의 데이터를 암호화하지 않고 저장해야 하면 313단계로 진행한다.
예를 들면, 플래시 변환 레이어부(105)는 파티션 정보 테이블(203)을 분석하여 현재 페이지가 포함된 파티션의 권한 정보를 확인한다. 플래시 변환 레이어부(105)는 권한 정보에 따라 파티션에 임의의 데이터를 저장할 때 암호화가 필요한 것으로 확인되면 307단계로 진행하고, 암호화가 필요하지 않은 것으로 확인되면 313단계로 진행할 수 있다.
313단계로 진행하는 경우, 플래시 변환 레이어부(105)는 제어부(101)로부터 임의의 데이터를 입력받고, 입력된 임의의 데이터를 현재 페이지(209)의 메인 어레이부(205)에 저장한다.
307단계로 진행하는 경우, 플래시 변환 레이어부(105)는 임의의 데이터를 암 호화하기 위한 페이지 키를 생성한다.
좀 더 자세히 설명하면, 플래시 변환 레이어부(105)는 스페어 어레이부(209)에 포함된 삭제 횟수 정보를 검출하고, 검출된 삭제 횟수 정보에 따라 현재 페이지(209)가 포함된 블록의 삭제 횟수를 계산한다. 그리고 플래시 변환 레이어부(105)는 303단계에서 계산된 물리 주소 및 논리 블록 번호 및 계산된 삭제 횟수 및 미리 지정된 루트 키를 암호화 함수에 입력하여 페이지 키를 생성한 후 309단계로 진행한다.
그리고 309단계에서 플래시 변환 레이어부(105)는 제어부(101)로부터 임의의 데이터를 입력받고, 입력된 임의의 데이터를 307단계에서 생성된 페이지 키로 암호화 한 후 311단계로 진행한다.
그리고 311단계에서 플래시 변환 레이어부(105)는 301단계에서 검색한 플래시 메모리부(107)의 페이지(201)에 309단계에서 암호화된 임의의 데이터를 저장한다.
상기한 과정을 통하여 단말기는 플래시 메모리부(107)에 임의의 데이터를 저장할 때, 암호화하여 저장할 수 있다.
도 4는 본 발명의 일 실시 예에 따라 단말기가 플래시 메모리부(107)로부터 임의의 데이터를 로드하는 흐름도이다. 도 4를 참조하여 플래시 메모리부(107)로부터 임의의 데이터를 로드할 때, 암호화된 임의의 데이터를 검출하여 복호화하는 과정을 설명하고자 한다.
본 발명을 간단히 설명하기 위해, 임의의 데이터의 크기 및 암호화된 임의의 데이터의 크기가 페이지 영역의 크기보다 크기 않고, 임의의 데이터를 저장할 페이지가 포함된 블록을 포함하는 파티션에 읽기 기능을 수행할 수 있는 권한이 있는 것으로 가정한다.
401단계에서 플래시 변환 레이어부(105)는 제어부(101)로부터 플래시 메모리부(107)에 저장된 임의의 데이터를 로드하라는 명령인 읽기 명령이 입력되는지 여부를 확인한다. 플래시 변환 레이어부(105)는 읽기 명령이 입력되면 403단계로 진행하고, 쓰기 명령이 입력되지 않으면 읽기 명령이 입력될 때까지 401단계를 반복 수행한다.
403단계로 진행하는 경우, 플래시 변환 레이어부(105)는 플래시 메모리부(107)의 페이지들 중에서 현재 읽기 요청된 임의의 데이터를 저장한 페이지를 검색한다.
좀 더 자세히 설명하면, 플래시 변환 레이어부(105)는 제어부(101)로부터 임의의 데이터가 저장된 페이지 번호인 논리 페이지 번호(LPN: Logical Page Number)를 입력받는다. 그리고 플래시 변환 레이어부(105)는 입력된 논리 페이지 번호에 해당되는 페이지(209)를 검색하고, 검색된 페이지(209)의 메인 어레이부(205) 및 스페어 어레이부(207)에 포함된 데이터들을 입력받는다. 그리고 플래시 변환 레이어부(105)는 스페어 어레이부(207)에 포함된 논리 블록 번호 정보로 논리 블록 번호를 확인하고, 확인된 논리 블록 번호 내에서 현재 페이지의 물리 주소를 계산한다. 플래시 변환 레이어부(105)가 물리 주소를 계산하는 방식은 플래시 메모리부(107)의 블록 영역과 페이지 영역의 크기에 따라 달라질 수 있다.
그리고 305단계에서 플래시 변환 레이어부(105)는 임의의 데이터가 암호화되어 있는지 여부를 확인한다. 플래시 변환 레이어부(105)는 임의의 데이터가 암호화되어 있으면 307단계로 진행하고, 임의의 데이터가 암호화되어 있지 않으면 313단계로 진행한다.
예를 들면, 플래시 변환 레이어부(105)는 파티션 정보 테이블(203)을 분석하여 현재 페이지(209)가 포함된 파티션의 권한 정보를 확인한다. 플래시 변환 레이어부(105)는 권한 정보에 따라 현재 페이지(209)에 저장된 임의의 데이터가 암호화 된 것으로 확인되면 407단계로 진행하고, 암호화가 되지 않은 것으로 확인되면 413단계로 진행할 수 있다.
413단계로 진행하는 경우, 플래시 변환 레이어부(105)는 401단계에서 해당 페이지(209)의 메인 어레이부(205)로부터 입력받은 임의의 데이터를 제어부(101)로 출력한다.
407단계로 진행하는 경우, 플래시 변환 레이어부(105)는 임의의 데이터를 복호화하기 위한 페이지 키를 생성한다.
좀 더 자세히 설명하면, 플래시 변환 레이어부(105)는 스페어 어레이부(209)에 포함된 삭제 횟수 정보를 검출하고, 검출된 삭제 횟수 정보에 따라 현재 페이지(209)가 포함된 블록의 삭제 횟수를 계산한다. 그리고 플래시 변환 레이어부(105)는 403단계에서 계산된 물리 주소 및 논리 블록 번호 및 계산된 삭제 횟수 및 미리 지정된 루트 키를 암호화 함수에 입력하여 페이지 키를 생성한 후 409단계로 진행한다.
그리고 409단계에서 플래시 변환 레이어부(105)는 401단계에서 해당 페이지(209)의 메인 어레이부(205)로부터 입력받은 임의의 데이터를 407단계에서 생성된 페이지 키로 복호화 한 후 411단계로 진행한다.
그리고 411단계에서 플래시 변환 레이어부(105)는 409단계에서 복호화된 임의의 데이터를 제어부(101)로 출력하여 제어부(101)가 해당 기능을 수행할 수 있도록 한다.
상기한 과정을 통하여 단말기는 플래시 메모리부(107)로부터 암호화되어 저장된 임의의 데이터를 복호화하여 로드 할 수 있다.
상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 예를 들면, 본 발명의 실시 예에서 단말기에 포함된 플래시 메모리부(107)는 탈/부착이 가능한 플래시 메모리부(107)가 될 수 있다. 따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위 뿐만 아니라 특허청구범위와 균등한 것에 의해 정해져야 한다.
상기와 같이, 본 발명은 플래시 메모리에 저장된 임의의 데이터를 추출하여도 데이터에 포함된 정보를 간단하게 파악하지 못 하도록 할 수 있다.

Claims (16)

  1. 플래시 메모리에 저장되는 데이터를 암호화하여 처리하기 위한 방법에 있어서,
    데이터의 쓰기가 요청되면, 상기 데이터를 저장할 상기 플래시 메모리부의 페이지를 적어도 하나 이상 검색하는 검색단계와,
    상기 검색된 페이지가 암호화를 지원하는 경우, 미리 지정되는 암호화함수에 따라 상기 검색된 페이지 각각에 대응되게 페이지 키(page key)를 생성하는 생성단계와,
    상기 생성된 페이지 키로 상기 데이터를 암호화한 후 상기 검색된 페이지 각각에 저장하는 저장단계를 포함함을 특징으로 하는 암호화 처리 방법.
  2. 제1항에 있어서,
    상기 생성단계는, 상기 검색된 페이지가 암호화를 지원하지 않는 경우, 상기 데이터를 그대로 상기 검색된 페이지 각각에 저장하는 저장단계를 더 포함함을 특징으로 하는 암호화 처리 방법.
  3. 제1항에 있어서,
    상기 암호화 함수는, 일방향 해쉬 함수(one-way hash function)임을 특징으 로 하는 암호화 처리 방법.
  4. 제3항에 있어서,
    상기 생성단계는, 상기 검색된 페이지 각각에 대응되는 물리 주소 및 상기 검색된 페이지가 포함된 블록의 삭제횟수 및 상기 검색된 페이지가 포함된 블록의 논리 블록 번호 중에서 적어도 한 가지를 검출하는 검출단계와,
    상기 검출된 정보와 미리 지정되는 루트 키(root key)를 상기 일방향 해쉬 함수에 입력하여 상기 검색된 페이지 각각에 대응되게 상기 페이지 키를 생성하는 생성단계를 포함함을 특징으로 하는 암호화 처리 방법.
  5. 제1항에 있어서,
    임의의 데이터의 읽기가 요청되면, 상기 데이터가 저장된 플래시 메모리부의 페이지를 적어도 하나 이상 검색하고, 상기 검색된 각각의 페이지에 포함된 데이터를 검출하는 검출단계와,
    상기 검색된 페이지가 암호화를 지원하는 경우, 미리 지정되는 암호화함수에 따라 상기 검색된 페이지 각각에 대응되게 페이지 키(page key)를 생성하는 생성단계와,
    상기 생성된 페이지 키로 상기 검출된 데이터를 복호화한 후 로드(load)하는 로드단계를 더 포함함을 특징으로 하는 암호화 처리 방법.
  6. 제5항에 있어서,
    상기 생성단계는, 상기 데이터가 암호화를 지원하지 않는 경우, 상기 검출된 데이터를 그대로 로드하는 로드단계를 더 포함함을 특징으로 하는 암호화 처리 방법.
  7. 제5항에 있어서,
    상기 암호화 함수는, 일방향 해쉬 함수(one-way hash function)임을 특징으로 하는 암호화 처리 방법.
  8. 제7항에 있어서,
    상기 생성단계는, 상기 검색된 페이지 각각에 대응되는 물리 주소 및 상기 검색된 페이지가 포함된 블록의 삭제횟수 및 상기 검색된 페이지가 포함된 블록의 논리 블록 번호 중에서 상기 데이터를 암호화할 때 검출된 정보를 검출하는 단계와,
    상기 검출된 정보와 루트 키(root key)를 상기 일방향 해쉬 함수에 입력하여 상기 검색된 페이지 각각에 대응되게 페이지 키를 생성하는 생성단계를 포함함을 특징으로 하는 암호화 처리 방법.
  9. 플래시 메모리에 저장되는 데이터를 암호화하여 처리하기 위한 장치에 있어서,
    플래시 메모리부와,
    제어부와,
    상기 제어부로부터 임의의 데이터의 쓰기가 요청되면, 상기 데이터를 저장할 상기 플래시 메모리부의 페이지를 적어도 하나 이상 검색하며, 상기 검색된 페이지가 암호화를 지원하는 경우, 미리 지정되는 암호화함수에 따라 상기 검색된 페이지 각각에 대응되게 페이지 키(page key)를 생성하여 상기 데이터를 암호화한 후 상기 검색된 페이지 각각에 저장하는 플래시 변환 레이어부(Flash Translation Layer)를 포함함을 특징으로 하는 암호화 처리 장치.
  10. 제9항에 있어서,
    상기 플래시 변환 레이어부는, 상기 검색된 페이지가 암호화를 지원하지 않는 경우, 상기 데이터를 그대로 상기 검색된 페이지 각각에 저장함을 특징으로 하는 암호화 처리 장치.
  11. 제9항에 있어서,
    상기 암호화 함수는, 일방향 해쉬 함수(one-way hash function)임을 특징으로 하는 암호화 처리 장치.
  12. 제11항에 있어서,
    상기 플래시 변환 레이어부는, 상기 검색된 페이지 각각에 대응되는 물리 주소 및 상기 검색된 페이지가 포함된 블록의 삭제횟수 및 상기 검색된 페이지가 포함된 블록의 논리 블록 번호 중에서 적어도 한 가지를 검출하고, 상기 검출된 정보와 미리 지정되는 루트 키(root key)를 상기 일방향 해쉬 함수에 입력하여 상기 검색된 페이지 각각에 대응되게 페이지 키를 생성함을 특징으로 하는 암호화 처리 장치.
  13. 제9항에 있어서,
    상기 플래시 변환 레이어부는, 상기 제어부로부터 임의의 데이터의 읽기가 요청되면, 상기 데이터가 저장된 플래시 메모리부의 페이지를 적어도 하나 이상 검색하며, 상기 검색된 각각의 페이지에 포함된 데이터를 검출하며, 상기 검색된 페이지가 암호화를 지원하는 경우, 미리 지정되는 암호화함수에 따라 상기 검색된 페 이지 각각에 대응되게 페이지 키(page key)를 생성하여 상기 검출된 데이터를 복호화한 후 로드(load)함을 특징으로 하는 암호화 처리 장치.
  14. 제13항에 있어서,
    상기 플래시 변환 레이어부는, 상기 검색된 페이지가 암호화를 지원하지 않는 경우, 상기 검출된 데이터를 그대로 로드함을 특징으로 하는 암호화 처리 장치.
  15. 제13항에 있어서,
    상기 암호화 함수는, 일방향 해쉬 함수(one-way hash function)임을 특징으로 하는 암호화 처리 장치.
  16. 제15항에 있어서,
    상기 플래시 변환 레이어부는, 상기 검색된 페이지 각각에 대응되는 물리 주소 및 상기 검색된 페이지가 포함된 블록의 삭제횟수 및 상기 검색된 페이지가 포함된 블록의 논리 블록 번호 중에서 상기 데이터를 암호화할 때 사용된 정보를 검출하고, 상기 검출된 정보와 루트 키(root key)를 상기 일방향 해쉬 함수에 입력하여 상기 검색된 페이지 각각에 대응되게 페이지 키를 생성함을 특징으로 하는 암호화 처리 장치.
KR1020070006593A 2007-01-22 2007-01-22 플래시 변환 레이어에서 데이터를 암호화하여 처리하기위한 방법 및 장치 KR100969758B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020070006593A KR100969758B1 (ko) 2007-01-22 2007-01-22 플래시 변환 레이어에서 데이터를 암호화하여 처리하기위한 방법 및 장치
US12/017,723 US8261098B2 (en) 2007-01-22 2008-01-22 Method and apparatus for encrypting and processing data in flash translation layer
US13/569,713 US8935541B2 (en) 2007-01-22 2012-08-08 Method and apparatus for encrypting and processing data in flash translation layer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070006593A KR100969758B1 (ko) 2007-01-22 2007-01-22 플래시 변환 레이어에서 데이터를 암호화하여 처리하기위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20080069018A KR20080069018A (ko) 2008-07-25
KR100969758B1 true KR100969758B1 (ko) 2010-07-13

Family

ID=39822461

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070006593A KR100969758B1 (ko) 2007-01-22 2007-01-22 플래시 변환 레이어에서 데이터를 암호화하여 처리하기위한 방법 및 장치

Country Status (2)

Country Link
US (2) US8261098B2 (ko)
KR (1) KR100969758B1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100969758B1 (ko) * 2007-01-22 2010-07-13 삼성전자주식회사 플래시 변환 레이어에서 데이터를 암호화하여 처리하기위한 방법 및 장치
TWI370969B (en) 2008-07-09 2012-08-21 Phison Electronics Corp Data accessing method, and storage system and controller using the same
KR20100124087A (ko) * 2009-05-18 2010-11-26 삼성전자주식회사 메모리 컨트롤러, 그것을 포함하는 메모리 시스템 그리고 그것의 동작 방법
KR20120002760A (ko) * 2010-07-01 2012-01-09 삼성전자주식회사 낸드 플래쉬 메모리의 동작 신뢰성을 향상시키는 데이터 기록 방법 및 데이터 기록 장치
JP2012038385A (ja) * 2010-08-06 2012-02-23 Renesas Electronics Corp データ処理装置
US8732431B2 (en) 2011-03-06 2014-05-20 Micron Technology, Inc. Logical address translation
US8843693B2 (en) * 2011-05-17 2014-09-23 SanDisk Technologies, Inc. Non-volatile memory and method with improved data scrambling
US9086999B2 (en) * 2011-07-05 2015-07-21 International Business Machines Corporation Data encryption management
KR102083271B1 (ko) 2012-07-31 2020-03-02 삼성전자주식회사 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법
US9846642B2 (en) 2014-10-21 2017-12-19 Samsung Electronics Co., Ltd. Efficient key collision handling
US9996479B2 (en) 2015-08-17 2018-06-12 Micron Technology, Inc. Encryption of executables in computational memory
CN107122169B (zh) * 2017-03-21 2021-02-02 武汉斗鱼网络科技有限公司 一种Flash函数加密的方法及装置
CN110647288A (zh) * 2018-06-26 2020-01-03 上海宝存信息科技有限公司 数据储存装置及其快取分流方法
US11635906B2 (en) * 2020-08-04 2023-04-25 Micron Technology, Inc. Acceleration of data queries in memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040093472A (ko) * 2002-03-27 2004-11-05 어드밴스드 마이크로 디바이시즈, 인코포레이티드 영역-입도 하드웨어-제어 메모리 암호화를 제공하기 위한시스템 및 방법
KR20040099401A (ko) * 2002-04-17 2004-11-26 마츠시타 덴끼 산교 가부시키가이샤 정보 입출력 및 키 관리 시스템 및 장치
KR20050050530A (ko) * 2003-11-25 2005-05-31 마이크로소프트 코포레이션 시스템 페이징 파일의 암호화
KR100748434B1 (ko) 2004-11-29 2007-08-10 주식회사 안철수연구소 실시간 복호화 기능을 이용한 파일 데이터 보호 방법 및장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708274B2 (en) * 1998-04-30 2004-03-16 Intel Corporation Cryptographically protected paging subsystem
KR100619657B1 (ko) * 2002-06-05 2006-09-08 후지쯔 가부시끼가이샤 메모리 관리 유닛, 코드 검증 장치 및 코드 복호 장치
CN100347731C (zh) * 2003-01-31 2007-11-07 松下电器产业株式会社 半导体存储卡及对其进行控制的程序
DE10345385B4 (de) * 2003-09-30 2005-10-06 Infineon Technologies Ag Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US20060036830A1 (en) * 2004-07-31 2006-02-16 Dinechin Christophe De Method for monitoring access to virtual memory pages
WO2006118436A1 (en) 2005-05-04 2006-11-09 Ahnlab, Inc. Method and device for protecting file data by using real time deciphering technics
KR100969758B1 (ko) * 2007-01-22 2010-07-13 삼성전자주식회사 플래시 변환 레이어에서 데이터를 암호화하여 처리하기위한 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040093472A (ko) * 2002-03-27 2004-11-05 어드밴스드 마이크로 디바이시즈, 인코포레이티드 영역-입도 하드웨어-제어 메모리 암호화를 제공하기 위한시스템 및 방법
KR20040099401A (ko) * 2002-04-17 2004-11-26 마츠시타 덴끼 산교 가부시키가이샤 정보 입출력 및 키 관리 시스템 및 장치
KR20050050530A (ko) * 2003-11-25 2005-05-31 마이크로소프트 코포레이션 시스템 페이징 파일의 암호화
KR100748434B1 (ko) 2004-11-29 2007-08-10 주식회사 안철수연구소 실시간 복호화 기능을 이용한 파일 데이터 보호 방법 및장치

Also Published As

Publication number Publication date
US8935541B2 (en) 2015-01-13
US20120303880A1 (en) 2012-11-29
US20080263369A1 (en) 2008-10-23
US8261098B2 (en) 2012-09-04
KR20080069018A (ko) 2008-07-25

Similar Documents

Publication Publication Date Title
KR100969758B1 (ko) 플래시 변환 레이어에서 데이터를 암호화하여 처리하기위한 방법 및 장치
JP5662037B2 (ja) 不揮発性メモリに対してデータの読み出しおよび書き込みを行うためのデータホワイトニング
KR101869059B1 (ko) 저장 장치 및 그것의 메모리 컨트롤러
US11416417B2 (en) Method and apparatus to generate zero content over garbage data when encryption parameters are changed
US20100058066A1 (en) Method and system for protecting data
TWI679554B (zh) 資料儲存裝置以及其操作方法
US8996933B2 (en) Memory management method, controller, and storage system
US20140032935A1 (en) Memory system and encryption method in memory system
US8886963B2 (en) Secure relocation of encrypted files
CN101169971A (zh) 电子硬盘
TW202215222A (zh) 快閃記憶體局部清除
US20190377693A1 (en) Method to generate pattern data over garbage data when encryption parameters are changed
JP2008009933A (ja) 記憶装置とその制御方法
TW591924B (en) Key management device and method for the encrypted storage of digital data words
CN114064525A (zh) 存储器系统、存储器系统的控制方法以及信息处理系统
US20240086336A1 (en) Storage device deleting encryption key, method of operating the same, and method of operating electronic device including the same
US20230359369A1 (en) Storage compute services for encrypted data
KR20080108119A (ko) 기록 실패 복구용 시스템 및 방법

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
FPAY Annual fee payment

Payment date: 20130627

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140627

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150629

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160629

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190627

Year of fee payment: 10