KR101496975B1 - 고체 상태 디스크 및 이에 대한 입출력방법 - Google Patents

고체 상태 디스크 및 이에 대한 입출력방법 Download PDF

Info

Publication number
KR101496975B1
KR101496975B1 KR1020080049774A KR20080049774A KR101496975B1 KR 101496975 B1 KR101496975 B1 KR 101496975B1 KR 1020080049774 A KR1020080049774 A KR 1020080049774A KR 20080049774 A KR20080049774 A KR 20080049774A KR 101496975 B1 KR101496975 B1 KR 101496975B1
Authority
KR
South Korea
Prior art keywords
data
initial vector
key value
present
disk
Prior art date
Application number
KR1020080049774A
Other languages
English (en)
Other versions
KR20090123614A (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 KR1020080049774A priority Critical patent/KR101496975B1/ko
Priority to US12/464,914 priority patent/US9270445B2/en
Publication of KR20090123614A publication Critical patent/KR20090123614A/ko
Application granted granted Critical
Publication of KR101496975B1 publication Critical patent/KR101496975B1/ko

Links

Images

Classifications

    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B9/00Recording or reproducing using a method not covered by one of the main groups G11B3/00 - G11B7/00; Record carriers therefor
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 고체상태 디스크에 관한 것이다. 본 발명에 따른 메모리 시스템은 데이터를 저장하는 저장부; 및 키값과 초기 벡터를 이용하여 상기 디스크로부터 상기 데이터를 암호화하여 기입하는 동작과 복호화하여 독출하는 동작을 제어하는 제어부를 포함하되, 상기 초기 벡터는 상기 데이터에 대응하는 어드레스를 가공하여 생성된다.

Description

고체 상태 디스크 및 이에 대한 입출력방법{SOLID-STATE-DISK AND INPUT/OUTPUT METHOD THEREOF}
본 발명은 고체상태 디스크에 관한 것으로, 더욱 상세하게는 고체상태 디스크내 대용량의 모든 데이터를 암호화하여 저장하고, 복호화하여 독출하는 장치 및 방법에 관한 것이다.
근래의 하드 디스크(HDD) 트랜드에 따르면, 자기 디스크 장치를 대신하는 기억 소자로 플래시 메모리를 채택한 반도체 디스크(Solid State Disk : SSD) 장치에 대한 요구가 점차 증가하고 있다. 이것은 컴퓨터 시스템이나 휴대용 기기의 대용량 저장 장치로서 하드 디스크(HDD)와 같은 자기 디스크 장치에 비하여 반도체 디스크 장치는 기억 용량이나 비용면에서는 불리하지만 액세스 속도와 소형화 및 충격으로부터의 안정성 등에 우위를 점하고 있기 때문이다. 또한 공정 기술과 설계 기술의 진보에 따라 점차 반도체 디스크의 기억 용량 증가와 비용의 감소가 예상되며, 머지않아 반도체 디스크가 자기 디스크를 대체할 것으로 전망된다.
상술한 반도체 디스크를 컴퓨터 시스템이나 기타 휴대용 기기의 대용량 저장 장치로 사용할 경우, 호스트 측의 데이터 교환 프로토콜과 플래시 메모리와의 호환 을 위한 제어 장치가 필수적이다. 일반적인 컴퓨터 시스템에서는 디스크 드라이버의 데이터 전송 프로토콜로 미국의 IBM사가 제안한 하드디스크용 규격인 ATA(Advanced Technology Attachment) 방식이 사용되고 있다. 이러한 프로토콜과 호환성을 갖기 위해서는 ATA 방식으로 데이터를 교환하기 위한 인터페이스(Interface)가 필요하다. 또한 플래시 메모리와의 인터페이싱이 필요하다. 상술한 데이터 교환의 제반 동작들을 제어하는 장치를 반도체 디스크 제어 장치(SSD Controller)라 한다.
본 발명의 목적은 프로세서의 부하없이 고체상태 디스크내의 대용량의 데이터를 암호화하여 저장하고, 복호화하여 독출하는 장치 및 방법을 제공하는 데 있다.
본 발명에 따른 고체상태 디스크는 데이터를 저장하는 저장부; 및 키값과 초기 벡터를 이용하여 상기 데이터를 암호화하여 기입하는 동작을 제어하는 제어부를 포함하되, 상기 초기 벡터는 상기 데이터에 대응하는 어드레스를 가공하여 생성된다.
실시 예로서, 상기 데이터를 임시로 저장하는 버퍼를 더 포함하는 고체상태 디스크.
실시 예로서, 상기 버퍼는 SDRAM, DDR, DDR2, DDR3 중 어느 하나를 포함한 다.
실시 예로서, 상기 제어부는 상기 키를 생성하는 램덤넘버 생성기를 포함한다.
실시 예로서, 상기 초기 벡터는 상기 어드레스에 더미 비트를 추가하여 생성된다.
실시 예로서, 상기 제어부는 익스클루시브-오어(EX-OR) 논리연산을 통해 상기 초기 벡터와 상기 데이터를 스크램블한다.
실시 예로서, 상기 저장부는 복수의 섹터를 포함한다.
실시 예로서, 상기 저장부는 복수의 플래시 메모리를 포함한다.
실시 예로서, 상기 저장부는 상기 키를 저장한다.
본 발명에 따른 컴퓨터 시스템은 호스트에 의해 요청된 어드레스를 초기 벡터로 사용하여 중앙처리장치에 부하를 주지않고, 모든 데이터를 암호화하여 저장하고, 복호화하여 독출한다. 따라서, 컴퓨터 시스템의 중앙처리장치에 부하를 주지않는 풀 디스크 암호화 장치 및 방법을 제공한다. 또한, 섹터의 고유한 어드레스를 이용하여 초기 벡터를 생성하므로, 본 발명에 따른 컴퓨터 시스템은 복수의 섹터들에 따른 초기 벡터들을 저장할 필요가 없다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명 의 실시 예를 첨부된 도면을 참조하여 설명한다.
저장장치 내에 중요한 데이터를 저장하는 경우 저장장치(예를 들면, 하드디스크(Hard Disk) 또는 고체상태디스크(SSD:Solid State Disk) ) 내의 데이터는 암호화되어있지 않기 때문에 저장장치 또는 저장장치가 포함된 시스템이 도난 또는 해킹당하는 경우 저장장치 내의 데이터는 안전하지 않다. 따라서, 저장장치 내의 데이터를 선택적으로 또는 모두 암호화할 필요가 있다.
이하에서는 도면을 참조하여, 본 발명에 따른 컴퓨터 시스템(도 1 내지 도 2), 그리고 본 발명에 따른 CBC 모드에 따른 컴퓨터 시스템의 암호화 및 복호화 과정(도 6 내지 도 9)이 차례대로 설명될 것이다. 본 발명의 실시 예에서, 컴퓨터 시스템에 내장되는 디스크에는 고체상태 디스크(SSD) 이외에도 하드 디스크, 광학 디스크 등이 포함된다.
도 1는 본 발명의 실시예에 따른 고체상태 디스크를 도시한 블록도이다.
도 1를 참조하면, 본 발명에 따른 컴퓨터 시스템(100)은 고체상태 디스크 컨트롤러(SSD Controller;10), 버퍼(20), 저장부(30) 및 버스(40)을 포함한다.
본 발명에 따른 컴퓨터 시스템(100)은 시스템 버스로부터 SATA1 또는 SATA2 인터페이스(즉, 1.5 Gbps 또는 3.0 Gbps)의 전송속도로 전송된 데이터를 버스(40)를 통하여 버퍼(20)에 임시로 저장한 후, 저장부(30)에 저장한다. 저장부(30)는 복수의 섹터(Sector)를 포함한다. 저장부(30)는 복수의 플래시 메모리로 구현된다. 저장부(30)에는 제1 및 제2 플래시 메모리(31,32)만이 도시되어 있으나, 그 이상의 플래시 메모리들로 구현가능하다.
도 2는 도 1에 도시된 고체상태디스크 컨트롤러를 도시한 블록도이다.
도 1 및 도 2를 참조하면, 본 발명에 따른 고체상태디스크 컨트롤러(10)은 중앙처리장치(CPU ; 11), 롬(ROM ; 12), 랜덤넘버 생성기(PRNG: Pseudo-Random Number Generator; 13), 저장 유닛 컨트롤러(Storage Unit Controller ; 14), 버퍼 관리부(Buffer Manager ; 15), SATA 인터페이스(SATA Interface ; 16) 및 AES(Advanced Encryption Standard ; 17) 블록을 포함한다.
중앙처리장치(11)는 롬(12), 랜덤넘버 생성기(13), 저장 유닛 컨트롤러(14), 버퍼 관리부(15), SATA 인터페이스(16) 및 AES(17) 블록을 제어한다. 롬(12)은 본 발명에 따른 컴퓨터 시스템(100)을 부팅(Booting)하는 바이오스(BIOS) 정보 등을 저장한다. 또한, 저장부(30)에도 BIOS 정보가 저장될 수 있다.
랜덤넘버 생성기(13)는 중앙처리장치(11)의 제어에 응답하여 키(Key)값을 생성한다. 본 발명에 따른 랜덤넘버 생성기(13)는 컴퓨터 시스템이 부팅될 때마다 서로 다른 키값을 생성하고, 생성된 키값은 저장부(30)에 저장된다. 키값 소거 명령이 실행되면, 중앙처리장치(11)는 저장부(30)에 저장된 키값을 소거한다. 이 경우, 저장부(30)에 저장된 데이터의 복구는 불가능하다.
저장 유닛 컨트롤러(14)는 저장부(30)를 제어하고, 버퍼 관리부(15)는 버퍼(20)를 제어한다. 버퍼(20)는 SDRAM, DDR, DDR2, DDR3 중 어느 하나를 포함한다.
SATA 인터페이스(16)는 시스템 버스로부터 SATA 인터페이스에 따라 데이터를 전송받는다.
AES(17) 블록은 SATA 인터페이스로부터 수신된 데이터를 키값과 초기 벡터를 이용하여 암호화한다. 또한, AES(17)는 저장부(30)에 저장된 암호화된 데이터를 키값과 초기 벡터를 이용하여 복호화한다. 초기 벡터는 SATA 인터페이스(16)로부터 수신된 명령어에서 억세스하고자하는 섹터의 어드레스를 가공하여 생성된다.
예를 들면, 도 3에는 예시적인 원영상(즉, 펭귄 그림)이 도시된다. 이것을 ECB(Electronic Codebook) 모드로 암호화한 것을 도시한 것이 도 4이고, CBC(Cipher Block Chaining) 모드로 암호화한 것을 도시한 것이 도 5이다.
ECB 모드란 키(Key)값만을 이용하여 암호화하는 것이다. 원영상을 ECB 모드로 암호화하여 도시된 도 4를 참조하면, ECB 모드로 암호화된 영상으로부터 원영상이 추정된다. 즉, 도 4를 참조하면, 명암의 차이를 통해서 원영상(즉, 펭귄 그림)이 추정된다.
따라서, 초기 벡터(Initial Vector)를 이용하여 데이터를 스크램블하고 암호화할 필요가 있다. 이것을 CBC 모드 암호화라 한다. 원영상을 CBC 모드로 암호화하여 도시된 도 5를 참조하면, CBC 모드로 암호화된 영상으로부터 더 이상 원영상이 추정되지 않는다. 일반적으로, 하이레벨(High-Level)의 암호화를 위하여 CBC 모드 암호화가 사용된다.
본 발명에 따른 암호화 과정은 도 6에서 그리고 복호화 과정은 도 7에서 상세히 설명된다. 또한, 초기 벡터를 생성하는 구체적인 방법은 도 8 내지 도 10에서 상세히 설명된다.
도 6은 본 발명에 따른 암호화 과정을 도시한 블록도이다. 본 발명에 따른 암호화 과정은 CBC 모드에 따른다.
도 6을 참조하면, AES(17)는 블록 암호화부(Block Cipher Encryption ; 17a) 및 exclusive-OR 게이트(17d)를 포함한다.
제1 스테이지(STAGE1) 동안, 블록 암호화부(17a)는 평문(Plaintext)을 암호문(Ciphertext)으로 변환한다. exclusive-OR 게이트(17d)는 평문과 초기 벡터를 스크램블한다. 본 발명의 실시예에 따른 스크램블은 exclusive-OR 논리연산이다.
exclusive-OR 게이트(17d)는 제1 평문(Plaintext1)과 초기 벡터를 스크램블하고, 그 결과를 블록 암호화부(17a)에 전송한다. 블록 암호화부(17a)는 상기 스크램블된 결과를 키값을 이용하여 제1 암호문(Ciphertext1)으로 변환한다.
제2 스테이지(STAGE2) 동안, exclusive-OR 게이트(17d)는 제2 평문(Plaintext2)과 제1 암호문(Ciphertext1)를 스크램블하고, 그 결과를 블록 암호화부(17a)에 전송한다. 블록 암호화부(17a)는 상기 스크램블된 결과를 키값을 이용하여 제2 암호문(Ciphertext2)으로 변환한다.
제3 스테이지(STAGE3) 동안, exclusive-OR 게이트(17d)는 제3 평문(Plaintext3)과 제2 암호문(Ciphertext2)를 스크램블하고, 그 결과를 블록 암호화부(17a)에 전송한다. 블록 암호화부(17a)는 상기 스크램블된 결과를 키값을 이용하여 제3 암호문(Ciphertext3)으로 변환한다.
도 6에 도시된 블록 암호화부(17a) 및 exclusive-OR(17d)는 각각 3개씩 도시되었으나, 이것은 순차적으로 동작하는 것이다. 따라서, 하나의 블록 암호화부(17a)와 하나의 exclusive-OR(17d)가 존재한다.
도 7은 본 발명에 따른 복호화 과정을 도시한 블록도이다. 본 발명에 따른 복호화 과정은 CBC 모드에 따른다.
도 7을 참조하면, AES(17)는 블록 복호화부(Block Cipher Decryption ; 17e) 및 exclusive-OR 게이트(17f)를 포함한다. 블록 복호화부(17e)는 암호문(Ciphertext)을 평문(Plaintext)으로 변환한다. exclusive-OR 게이트(17f)는 복호화된 결과와 초기 벡터를 스크램블한다.
제1 스테이지(STAGE1) 동안, 블록 복호화부(17e)는 제1 암호문(Ciphertext1)을 키값을 이용하여 복호화한다. exclusive-OR 게이트(17f)는 상기 복호화된 결과와 초기 벡터를 스크램블하여 제1 평문(Plaintext1)을 생성한다.
제2 스테이지(STAGE2) 동안, 블록 복호화부(17e)는 제2 암호문(Ciphertext2)을 키값을 이용하여 복호화한다. exclusive-OR 게이트(17f)는 상기 복호화된 결과와 제1 암호문(Ciphertext1)을 스크램블하여 제2 평문(Plaintext2)을 생성한다.
제3 스테이지(STAGE3) 동안, 블록 복호화부(17e)는 제3 암호문(Ciphertext3)을 키값을 이용하여 복호화한다. exclusive-OR 게이트(17f)는 상기 복호화된 결과와 제2 암호문(Ciphertext2)을 스크램블하여 제3 평문(Plaintext3)을 생성한다.
도 7에 도시된 블록 복호화부(17e) 및 exclusive-OR(17f)는 각각 3개씩 도시되었으나, 이것은 순차적으로 동작하는 것이다. 따라서, 하나의 블록 복호화부(17e)와 하나의 exclusive-OR(17f)가 존재한다.
본 발명에 따른 컴퓨터 시스템은 초기 벡터를 어떻게 생성하고, 어떻게 할당하는 가에 따라 컴퓨터 시스템의 성능이 크게 좌우된다. 본 발명에 따라 초기 벡터를 생성하는 경우는 도 8 및 도 9에서 설명된다. 또한, 중앙처리장치가 초기 벡터 를 생성하고, 할당하고, 그리고 저장하는 경우는 도 10에서 설명된다.
도 8은 도 5에 도시된 AES을 도시한 블록도이다.
도 8을 참조하면, AES(17)은 블록 암호화부(17a), 플립플럽(Flip-Flop ; 17b) 및 합산기(Adder ; 17c)를 포함한다.
합산기(17c)는 외부의 호스트로부터 요청된 LBA(Logical Block Addressing)에 따른 해당 섹터에 대한 어드레스를 전송받는다. 만약 외부의 호스트로부터 요청된 명령이 버스트(Burst) 명령인 경우 합산기(17c)는 섹터의 카운트 정보 또한 입력받는다.
예를 들면, 만약 외부의 호스트로부터 요청된 명령이 버스트(Burst) 명령이 아닌 경우 합산기(17c)는 섹터의 어드레스만을 출력한다. 만약 외부의 호스트로부터 요청된 명령이 버스트(Burst) 명령인 경우 합산기(17c)는 섹터의 어드레스와 카운트 정보를 합산한다. 즉, 억세스하는 섹터의 어드레스가 증가할 때마다 카운트가 증가된다.
플립플럽(17b)은 합산기(17c)의 출력을 임시로 저장하여 블록 암호화부(17a)에 출력한다. 즉, 플립플럽(17b)은 각 섹터에 해당하는 유니크(Unique)한 어드레스를 저장한다.
블록 암호화부(17a)는 각 섹터에 따른 유니크한 어드레스를 입력받고, 이것을 초기 벡터로 변환한다. 예를 들면, 해당 섹터에 대한 어드레스가 48bit라면, 초기 벡터는 16byte(즉, 128 bit)이므로, 어드레스 48bit에 전후에 더미(Dummy)로 80bit를 추가한다.
따라서, 본 발명에 따른 컴퓨터 시스템는 모든 섹터에 대하여 서로 다른 초기 벡터를 가진다.
도 9는 도 8에 도시된 AES에 따라 암호화 및 복호화가 섹터에 따라 동작되는 것을 도시한다.
도 4, 도 5, 도 8 및 도 9를 참조하면, 본 발명에 따른 저장부(30)은 제1 내지 제10의 섹터(30a-30j)가 도시되었으나, 그 이상의 섹터로 구현될 수 있음은 이 분야의 당업자에 있어서 자명하다.
외부의 호스트로 요청된 어드레스는 SATA 인터페이스(16)을 통하여 AES(17)에 전송된다. AES(17)는 SATA 인터페이스(16)로부터 어드레스를 입력받고, 상기 어드레스를 이용하여 초기 벡터를 생성한다.
AES(17)는 상기 초기 벡터와 랜덤넘버 생성기(13)로부터 받은 키값을 이용하여 요청된 데이터를 암호화하여 기입하거나 복호화하여 독출한다. 따라서, 중앙처리장치(11)에 부하를 주지 않는다. 또한, AES(17)가 데이터를 암호화하여 기입하거나 복호화하여 독출하는 시간은 각 섹터의 데이터를 SATA 인터페이스를 통하여 송수신하는 시간동안 이루어진다.
도 10는 초기 벡터를 중앙처리장치에서 생성하고, 로딩하는 경우 암호화 및 복호화가 섹터에 따라 동작되는 것을 도시한다.
도 4, 도 5 및 도 10을 참조하면, 저장부(30')은 제1 내지 제10의 섹터(30'a-30'j)를 포함한다. 중앙처리장치(11)는 각 섹터에 따른 초기 벡터를 생성하고, 각 섹터를 억세스할 때 생성된 초기 벡터를 AES(17)에 할당한다. 또한, 중앙 처리장치(11)는 생성된 초기 벡터를 저장부(30)에 저장한다. 외부의 호스트가 데이터를 요청할 때마다 중앙처리장치(11)는 초기 벡터를 생성하거나, 생성된 초기 벡터를 AES(17)에 전송하는 시간(33a-33c)이 필요하다. AES(17)는 상기 초기 벡터와 랜덤넘버 생성기(13)로부터 받은 키값을 이용하여 요청된 데이터를 암호화하여 기입하거나 복호화하여 독출한다.
따라서, 중앙처리장치(11)는 AES(17)가 암호화 또는 복호화하기 전에 초기 벡터를 생성 및 전송하는 작업을 수행하므로, 풀 디스크 암호화의 성능이 떨어진다.
실제적으로, 중앙처리장치(11)가 각 섹터를 억세스할 때마다 링크(Link)를 멈춰서 초기벡터를 생성하고, 전송하는 펌웨어(F/W : Firmware)를 셋팅(Setting)하는 동작을 구현하는 것은 불가능하다.
도 11은 본 발명의 제1 실시예에 따른 고체상태 디스크 시스템을 도시한 블록도이다.
도 11을 참조하면, 본 발명의 제1 실시예에 따른 고체상태 디스크 시스템(150)은 고체상태 디스크(100), SATA 인터페이스(110), 램(120), 중앙처리장치(130) 및 버스(140)을 포함한다.
본 발명의 제1 실시예에 따른 고체상태 디스크(100)에 관해서는 도 1 내지 도 10을 통해서 설명되었다. 따라서, 본 발명의 제1 실시예에 따른 고체상태 디스크(100)에 관한 설명은 생략한다.
중앙처리장치(130)는 버스(140)에 연결된 SATA 인터페이스(110)를 통하여 고 체상태 디스크(100)을 억세스한다. 램(120)은 시스템 메모리로 사용된다. 고체상태 디스크(100)는 중앙처리장치(130)로부터 요청된 데이터를 암호화하여 저장하고, 복호화하여 독출한다.
도 12는 본 발명의 제2 실시예에 따른 하드 디스크 시스템을 도시한 블록도이다.
도 12을 참조하면, 본 발명의 제2 실시예에 따른 하드 디스크 시스템(250)은 하드 디스크(200), SATA 인터페이스(210), 램(220), 중앙처리장치(230) 및 버스(240)을 포함한다. 본 발명의 제2 실시예에 따른 하드 디스크(200)는 SATA1 또는 SATA2 인터페이스를 가지는 하드 디스크를 예시한다.
중앙처리장치(230)는 버스(240)에 연결된 SATA 인터페이스(210)를 통하여 하드 디스크(200)을 억세스한다. 램(220)은 시스템 메모리로 사용된다. 하드 디스크(200)는 중앙처리장치(230)로부터 요청된 데이터를 암호화하여 저장하고, 복호화하여 독출한다.
도 13은 본 발명의 제3 실시예에 따른 광학 디스크 시스템을 도시한 블록도이다.
도 13을 참조하면, 본 발명의 제3 실시예에 따른 광학 디스크 시스템(350)은 광학 디스크(300), SATA 인터페이스(310), 램(320), 중앙처리장치(330) 및 버스(340)을 포함한다. 본 발명의 제3 실시예에 따른 광학 디스크(200)는 SATA1 또는 SATA2 인터페이스를 가지는 광학 디스크로, 기입 및 독출을 할 수 있는 CD-RW, DVD-RW, DVD+RW, DVD-RAM 및 블루레이(Blu-Ray)를 예시한다.
중앙처리장치(330)는 버스(340)에 연결된 SATA 인터페이스(310)를 통하여 광학 디스크(300)을 억세스한다. 램(320)은 시스템 메모리로 사용된다. 광학 디스크(300)는 중앙처리장치(330)로부터 요청된 데이터를 암호화하여 저장하고, 복호화하여 독출한다.
본 발명에 따른 컴퓨터 시스템은 호스트에 의해 요청된 어드레스를 초기 벡터로 사용하여 중앙처리장치에 부하를 주지않고, 모든 데이터를 암호화하여 저장하고, 복호화하여 독출한다. 또한, 섹터의 고유한 어드레스를 이용하여 초기 벡터를 생성하므로, 본 발명에 따른 컴퓨터 시스템은 복수의 섹터들에 따른 초기 벡터들을 저장할 필요가 없다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
도 1는 본 발명의 실시예에 따른 고체상태디스크를 도시한 블록도이다.
도 2는 도 2에 도시된 고체상태디스크 컨트롤러를 도시한 블록도이다.
도 3은 예시적인 원영상이다.
도 4는 도 3에 도시된 원영상 데이터를 ECB 모드로 암호화하여 암호화된 데이터를 도시한다.
도 5은 도 3에 도시된 원영상 데이터를 CBC 모드로 암호화하여 암호화된 데이터를 도시한다.
도 6은 본 발명에 따른 암호화 과정을 도시한 블록도이다.
도 7은 본 발명에 따른 복호화 과정을 도시한 블록도이다.
도 8은 도 5에 도시된 AES을 도시한 블록도이다.
도 9는 도 8에 도시된 AES에 따라 암호화 및 복호화가 섹터에 따라 동작되는 것을 도시한다.
도 10는 초기 벡터를 중앙처리장치에서 생성하고, 로딩하는 경우 암호화 및 복호화가 섹터에 따라 동작되는 것을 도시한다.
도 11은 본 발명의 제1 실시예에 따른 고체상태 디스크를 포함하는 시스템을 도시한 블록도이다.
도 12는 본 발명의 제2 실시예에 따른 하드 디스크를 포함하는 시스템을 도시한 블록도이다.
도 13은 본 발명의 제3 실시예에 따른 광학 디스크를 포함하는 시스템을 도 시한 블록도이다.

Claims (16)

  1. 호스트로부터 제공되는 섹터 어드레스에 따라 상기 호스트로부터 수신되는 데이터를 저장하는 고체상태 디스크에 있어서:
    상기 데이터를 저장하는 저장부; 그리고
    상기 섹터 어드레스를 수신하는 입출력 인터페이스, 및 상기 입출력 인터페이스로부터 상기 섹터 어드레스를 수신하고 상기 섹터 어드레스에 대응하는 논리적 블록 어드레스를 초기 벡터로 변환하는 스크램블링 하드웨어 로직을 포함하는 컨트롤러를 포함하되,
    상기 컨트롤러는 상기 데이터와 상기 초기 벡터를 사용하여 스크램블 된 데이터를 생성하고, 상기 스크램블 된 데이터와 키 값을 사용하여 암호화된 데이터를 생성하고, 그리고 상기 암호화된 데이터를 상기 저장부에 저장하는 고체상태 디스크.
  2. 제 1 항에 있어서,
    상기 데이터를 임시로 저장하는 버퍼를 더 포함하는 고체상태 디스크.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 컨트롤러는 상기 키 값을 생성하는 램덤넘버 생성기를 포함하는 고체상태 디스크.
  5. 제 1 항에 있어서,
    상기 초기 벡터는 상기 논리적 블록 어드레스에 더미 비트를 추가하여 생성되는 고체상태 디스크.
  6. 제 1 항에 있어서,
    상기 컨트롤러는 익스클루시브-오어(EX-OR) 논리연산을 통해 상기 초기 벡터와 상기 데이터를 스크램블하는 고체상태 디스크.
  7. 삭제
  8. 삭제
  9. 제 1 항에 있어서,
    상기 저장부는 상기 키 값을 저장하는 고체상태 디스크.
  10. 컨트롤러의 입출력 인터페이스에서, 호스트로부터 데이터 및 상기 데이터와 관련된 섹터 어드레스를 수신하는 단계;
    상기 섹터 어드레스를 상기 컨트롤러의 스크램블링 하드웨어 로직으로 전송하는 단계;
    상기 스크램블링 하드웨어 로직에 의해, 상기 섹터 어드레스에 대응하는 논리적 블록 어드레스를 초기 벡터로 변환시키는 단계;
    상기 데이터를 상기 초기 벡터와 스크램블하는 단계; 그리고
    상기 스크램블된 데이터를 키 값을 이용하여 암호화하는 단계를 포함하는 고체상태 디스크의 동작 방법.
  11. 제 10 항에 있어서,
    상기 암호화된 데이터를 디스크에 기입하는 단계를 더 포함하는 고체상태 디스크의 동작 방법.
  12. 제 10 항에 있어서,
    상기 암호화된 데이터를 상기 키 값을 이용하여 복호화하는 단계; 그리고
    상기 복호화된 데이터를 상기 초기 벡터와 스크램블하여 출력하는 단계를 더 포함하는 고체상태 디스크의 동작 방법.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
KR1020080049774A 2008-05-28 2008-05-28 고체 상태 디스크 및 이에 대한 입출력방법 KR101496975B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080049774A KR101496975B1 (ko) 2008-05-28 2008-05-28 고체 상태 디스크 및 이에 대한 입출력방법
US12/464,914 US9270445B2 (en) 2008-05-28 2009-05-13 Solid state disk and input/output method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080049774A KR101496975B1 (ko) 2008-05-28 2008-05-28 고체 상태 디스크 및 이에 대한 입출력방법

Publications (2)

Publication Number Publication Date
KR20090123614A KR20090123614A (ko) 2009-12-02
KR101496975B1 true KR101496975B1 (ko) 2015-03-02

Family

ID=41381289

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080049774A KR101496975B1 (ko) 2008-05-28 2008-05-28 고체 상태 디스크 및 이에 대한 입출력방법

Country Status (2)

Country Link
US (1) US9270445B2 (ko)
KR (1) KR101496975B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007202001A (ja) * 2006-01-30 2007-08-09 Kyocera Corp 携帯通信機器およびその制御方法
WO2012047200A1 (en) * 2010-10-05 2012-04-12 Hewlett-Packard Development Company, L. P. Scrambling an address and encrypting write data for storing in a storage device
WO2013101185A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Preventing pattern recognition in electronic code book encryption
JP5875441B2 (ja) * 2012-03-29 2016-03-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データを暗号化する装置及び方法
KR102244617B1 (ko) * 2014-03-13 2021-04-26 삼성전자 주식회사 논리 정보와 물리 정보를 이용하여 데이터를 처리할 수 있는 장치와 방법
CN108537048B (zh) * 2018-03-13 2021-08-17 超越科技股份有限公司 一种加密固态硬盘与授权计算机的安全关联方法及系统
US11321244B2 (en) 2019-12-16 2022-05-03 Samsung Electronics Co., Ltd. Block interface emulation for key value device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083282A1 (en) * 2000-10-20 2002-06-27 Kenji Yoshino Data processing device, data storage device, data processing method, and program providing medium
US20070121943A1 (en) * 2004-03-18 2007-05-31 Stmicroelectronics Limited Data obfuscation

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0232134B1 (en) * 1986-02-07 1994-08-24 Matsushita Electric Industrial Co., Ltd. Optical disc and disc drive apparatus for writing/reading data into/from the disc
DE3901457A1 (de) * 1989-01-19 1990-08-02 Strahlen Umweltforsch Gmbh Verfahren zur adressbereichsueberwachung bei datenverarbeitungsgeraeten in echtzeit
WO2004077300A1 (ja) * 1992-01-22 2004-09-10 Yoshimasa Kadooka Icメモリカード及びそのデータ保護方法
US5559883A (en) * 1993-08-19 1996-09-24 Chipcom Corporation Method and apparatus for secure data packet bus communication
US5377264A (en) * 1993-12-09 1994-12-27 Pitney Bowes Inc. Memory access protection circuit with encryption key
US5483596A (en) * 1994-01-24 1996-01-09 Paralon Technologies, Inc. Apparatus and method for controlling access to and interconnection of computer system resources
US5673319A (en) 1995-02-06 1997-09-30 International Business Machines Corporation Block cipher mode of operation for secure, length-preserving encryption
US5828753A (en) 1996-10-25 1998-10-27 Intel Corporation Circuit and method for ensuring interconnect security within a multi-chip integrated circuit package
US6003014A (en) * 1997-08-22 1999-12-14 Visa International Service Association Method and apparatus for acquiring access using a smart card
US6345359B1 (en) * 1997-11-14 2002-02-05 Raytheon Company In-line decryption for protecting embedded software
US6016533A (en) * 1997-12-16 2000-01-18 Advanced Micro Devices, Inc. Way prediction logic for cache array
WO2000048063A1 (en) * 1999-02-15 2000-08-17 Hewlett-Packard Company Trusted computing platform
US6631359B1 (en) * 1999-09-10 2003-10-07 Dphi Acquisitions, Inc. Writeable medium access control using a medium writeable area
US7228342B2 (en) * 2001-02-20 2007-06-05 Sony Computer Entertainment America Inc. System for utilizing an incentive point system based on disc and user identification
JP3678164B2 (ja) * 2001-04-13 2005-08-03 ソニー株式会社 データ転送システム、データ転送装置、データ記録装置、データ転送方法
US6986050B2 (en) * 2001-10-12 2006-01-10 F-Secure Oyj Computer security method and apparatus
US7437472B2 (en) * 2001-11-28 2008-10-14 Interactive Content Engines, Llc. Interactive broadband server system
US7076035B2 (en) * 2002-01-04 2006-07-11 Medialab Solutions Llc Methods for providing on-hold music using auto-composition
KR100420555B1 (ko) 2002-04-19 2004-03-02 한국전자통신연구원 고속 세션 변경이 가능한 블록 암호화 장치 및 그 구동 방법
DE10345454A1 (de) * 2003-09-30 2005-04-28 Infineon Technologies Ag Wortindividuelle Schlüsselerzeugung
US7940932B2 (en) * 2004-04-08 2011-05-10 Texas Instruments Incorporated Methods, apparatus, and systems for securing SIM (subscriber identity module) personalization and other data on a first processor and secure communication of the SIM data to a second processor
JP2007086704A (ja) 2005-09-22 2007-04-05 Chaosware Inc 初期ベクトル値設定方法
US8464073B2 (en) * 2006-09-13 2013-06-11 Stec, Inc. Method and system for secure data storage
CN1936842B (zh) * 2006-10-23 2011-03-23 北京飞天诚信科技有限公司 一种外接存储设备的智能密钥装置及其使用方法
US7876894B2 (en) * 2006-11-14 2011-01-25 Mcm Portfolio Llc Method and system to provide security implementation for storage devices
US8171309B1 (en) * 2007-11-16 2012-05-01 Marvell International Ltd. Secure memory controlled access
WO2009096955A1 (en) * 2008-01-30 2009-08-06 Hewlett-Packard Development Company, L.P. Encryption based storage lock
US8526605B2 (en) * 2009-10-09 2013-09-03 Seagate Technology Llc Data encryption to provide data security and memory cell bit wear leveling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083282A1 (en) * 2000-10-20 2002-06-27 Kenji Yoshino Data processing device, data storage device, data processing method, and program providing medium
US20070121943A1 (en) * 2004-03-18 2007-05-31 Stmicroelectronics Limited Data obfuscation

Also Published As

Publication number Publication date
US9270445B2 (en) 2016-02-23
US20090300372A1 (en) 2009-12-03
KR20090123614A (ko) 2009-12-02

Similar Documents

Publication Publication Date Title
KR101975027B1 (ko) 시스템 온 칩, 이의 동작 방법, 이를 포함하는 장치들
JP5662037B2 (ja) 不揮発性メモリに対してデータの読み出しおよび書き込みを行うためのデータホワイトニング
JP5648209B2 (ja) 暗号キー選択装置を具備するストレージ・システム及び暗号キー選択方法
EP3355232B1 (en) Input/output data encryption
KR101496975B1 (ko) 고체 상태 디스크 및 이에 대한 입출력방법
EP2803012B1 (en) Using storage controller bus interfaces to secure data transfer between storage devices and hosts
KR102176612B1 (ko) 보안 서브시스템
KR20090080032A (ko) 저장 장치들에 대한 보안을 제공하는 방법 및 시스템
US20120137139A1 (en) Data storage device, data control device and method for encrypting data
US9323943B2 (en) Decrypt and encrypt data of storage device
CN112887077A (zh) 一种ssd主控芯片随机缓存保密方法和电路
JP2004199688A (ja) 安全なドライバ
KR102588600B1 (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN112115076A (zh) 使用者数据的加解密装置及方法
JP5017136B2 (ja) ハードディスクドライブ用の暗号化復号化装置、及びハードディスクドライブ装置
US20100138670A1 (en) Storage apparatus and data writing method
KR20180059217A (ko) 메모리 데이터 보안 처리 장치 및 방법
JP2007336446A (ja) データ暗号化装置
US20160026582A1 (en) Encrypt data of storage device
KR20100094862A (ko) 스토리지 장치 및 그것의 데이터 관리 방법
JP2005172866A (ja) 暗号化/復号化システム
US20240078322A1 (en) Memory system, memory controller and operation method thereof
CN101727408A (zh) 一种基于硬盘接口控制器的数据加密方法
JP5539024B2 (ja) データ暗号化装置およびその制御方法
KR20230166408A (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: 20200131

Year of fee payment: 6