KR20090131696A - 암/복호화 장치 및 이를 포함하는 보안 저장 장치 - Google Patents

암/복호화 장치 및 이를 포함하는 보안 저장 장치 Download PDF

Info

Publication number
KR20090131696A
KR20090131696A KR1020080057585A KR20080057585A KR20090131696A KR 20090131696 A KR20090131696 A KR 20090131696A KR 1020080057585 A KR1020080057585 A KR 1020080057585A KR 20080057585 A KR20080057585 A KR 20080057585A KR 20090131696 A KR20090131696 A KR 20090131696A
Authority
KR
South Korea
Prior art keywords
encryption
data
decryptor
decoder
response
Prior art date
Application number
KR1020080057585A
Other languages
English (en)
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 KR1020080057585A priority Critical patent/KR20090131696A/ko
Priority to US12/475,642 priority patent/US20090316899A1/en
Publication of KR20090131696A publication Critical patent/KR20090131696A/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

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

Abstract

암/복호화 장치 및 이를 포함하는 보안 저장 장치가 개시된다. 본 발명의 실시예에 따른 암/복호화 장치는 복수 개의 암/복호화기를 포함하며, 상기 암/복호화기들은 암/복호 컨트롤러로부터 출력되는 제어 신호 중에서 어느 하나의 제어 신호에 응답하여 직렬 또는 병렬로 연결된다. 또한, 암/복호 컨트롤러로부터 출력되는 제어 신호들 중에서 다른 제어 신호들에 기초하여 상기 암/복호화기들의 동작 모드, 암호키, 초기화 벡터, 또는 암/복호화 수행 여부 등을 설정할 수 있다. 본 발명의 실시예에 따르면, 복수 개의 암/복호화 장치를 효율적이고 유연하게 구성함으로써 제한된 자원으로 다양한 암호 알고리즘을 수행할 수 있는 효과가 있다.
암/복호화, 보안, 암/복호 컨트롤러, 직렬, 병렬

Description

암/복호화 장치 및 이를 포함하는 보안 저장 장치{Enc/decryption device and security storage device including the same}
본 발명의 실시예는 암/복호화 장치 및 이를 포함하는 보안 저장 장치에 관한 것이다.
초고속 통신망의 보편화로 인해 인터넷 트래픽(traffic)이 증가하고, 그 결과 개인, 공공기관, 또는 기업 등이 처리해야하는 데이터의 양이 급격하게 증가하고 있다. 또한, 이러한 데이터들은 악의 있는 제3자로부터의 침입을 방지할 수 있도록, 안전성이 있는 보안 시스템에 의해 관리되는 것이 바람직하다.
이러한 시대적 상황과 함께 다양한 보안 알고리즘(secure algorithm)이 개발되어 사용되고 있으며, 이러한 보안 알고리즘을 이용하여 보안 저장 장치에 보호하고자 하는 데이터를 저장한다.
상기 보안 저장 장치라 함은, HDD(Hard Disk Drive), SSD(Solid State Drive) 등과 같이, 데이터를 안전하게 저장하기 위해 암호 연산용 엔진을 장착하여 보호하고자 하는 데이터를 암호화하여 저장할 수 있는 장치이다.
상기 보안 저장 장치는 데이터를 고속으로 암호화하기 위하여 암호 엔진(예 컨대, DES(Data Encryption Standard), T-DES(Tripple-Data Encryption Standard), AES(Advanced Encryption Standard) 등)을 포함한다.
그러나, SATA(Serial Advanced Technology Attachment)나 SAS(Serial Attached SCSI)와 같이 고속 인터페이스를 사용하여 통신하는 경우, 상기 암호 엔진들의 데이터 프로세싱 속도는 데이터의 입력 속도보다 느리기 때문에, 암호화 연산 시에 많은 지연을 야기한다. 특히, CBC(Cipher Block Chaining, 암호 블록 연쇄) 모드의 경우는 현재 블럭의 암호화 연산시 이전 블럭의 암호화 값을 이용함으로써 데이터의 보안성을 더욱 강화시킬 수 있는 장점이 있지만, 한 블럭의 암호 연산이 종료되어야만 다음 블럭의 암호 연산을 진행할 수 있기 때문에 데이터 프로세싱 속도가 상당히 지연되는 단점이 있다.
또한, 기암호화된 데이터가 암호 엔진에 입력되는 경우에, 종래에는 상기 기암호화된 데이터를 암호 엔진을 이용하여 복호화하고 복호화된 데이터를 소정의 메모리에 일시적으로 저장한 후, 다시 상기 암호 엔진을 이용하여 상기 메모리에 저장된 데이터를 암호화하는 방법을 사용하기 때문에, 데이터 프로세싱 속도를 증가시키는데 한계가 있다.
또한, 종래의 암호 엔진은 기설정된 고정 상태로서만 동작하고, 따라서 구동시에 발생할 수 있는 다양한 환경에 유연하게 적응할 수 없다는 문제점이 있다.
따라서, 본 발명은 상기의 문제점을 해결하고자 안출된 것으로서, 본 발명의 목적은 복수 개의 암/복호화기를 이용하여 고정된 방식이 아니라 여러 가지의 암/복호화기의 조합을 유연하고 효율적으로 이용할 수 있는 암/복호화 장치 및 이를 이용한 보안 저장 장치를 제공하는 것이다.
상기의 과제를 해결하기 위한 암/복호화 장치는, 제1 암/복호화기; 제2 암/복호화기; 설정 신호에 응답하여 다수의 제어 신호들을 출력하는 암/복호 컨트롤러; 및 상기 암/복호 컨트롤러로부터 출력되는 상기 다수의 제어 신호들 중에서 어느 하나의 제어 신호에 응답하여 상기 제1 암/복호화기 및 상기 제2 암/복호화기를 직렬 또는 병렬로 연결하기 위한 경로 선택 회로를 포함한다.
상기의 과제를 해결하기 위한 보안 저장 장치는, 암/복호화 장치; 및 상기 암/복호화 장치에서 암호화된 데이터를 저장하거나 또는 상기 암/복호화 장치에서 복호화할 데이터를 제공하는 데이터 저장 장치를 포함하며, 상기 암/복호화 장치는, 제1 암/복호화기; 제2 암/복호화기; 설정 신호에 응답하여 다수의 제어 신호들을 출력하는 암/복호 컨트롤러; 및 상기 암/복호 컨트롤러로부터 출력되는 상기 다수의 제어 신호들 중에서 어느 하나의 제어 신호에 응답하여 상기 제1 암/복호화기 및 상기 제2 암/복호화기를 직렬 또는 병렬로 연결하기 위한 경로 선택 회로를 포함한다.
본 발명에 따르면, 복수 개의 암/복호화기를 다양한 환경에 적응할 수 있도록 유연하고 효율적으로 이용할 수 있다.
또한, 데이터 보안 수준의 저하 없이도 데이터 프로세싱 속도를 증가시킬 수 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조해야만 한다.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 이해하고 실시할 수 있도록 본 발명의 바람직한 실시예를 상세히 설명하도록 한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 실시예에 따른 암/복호화 장치(100)의 구성을 나타내는 블럭도이다.
보안 엔진(secure engine)이라고도 불리는 상기 암/복호화 장치(100)는, 암/복호화부(enc/decryption unit, 110), 암/복호 컨트롤러(controller, 120), 경로 선택 회로(path selection circuit, 130), 데이터 분배기(data distributor, 140), 데이터 수집기(data collector, 150), 또는 암호키 데이터베이스(key database, 160) 등을 포함할 수 있다.
상기 암/복호화부(110)는 입력데이터(Data Input)를 암호화(encryption)하거나 또는 복호화(decryption)한다. 상기 암/복호화부(110)는 복수 개의 암/복호화기(111 및 112)를 포함할 수 있다.
암호화 또는 복호화할 입력데이터는 호스트 인터페이스를 통해 데이터 스트림(data stream) 형태로 구현되어 순차적으로 입력되거나, 또는 소정의 메모리(예컨대, RAM)에 저장되어 있는 상태에서 호스트로부터의 명령을 통해 입력될 수 있다. 상기 암/복호화기(111 및 112)는 상기 입력데이터를 블럭 단위로 암호화 또는 복호화하고, 상기 블럭 단위는 N 바이트(예컨대, N은 16)의 크기를 갖는다.
본 명세서에서는 본 발명에 따른 실시예의 용이한 이해를 위하여 상기 암/복호화부(110)가 두 개의 암/복호화기(111 및 112)를 포함하는 것으로 예시하였으나, 본 발명의 실시예는 이에 한정되지 않고 본 발명의 보호 범위 또한 이에 한정되지 않는다.
보다 구체적으로, 상기 암/복호화기(111 및 112)는 상기 암/복호 컨트롤러(120)로부터 출력되는 암/복호 제어 신호(Enc/Dec)에 응답하여 암호와 또는 복호화 중 어느 하나의 연산을 수행한다.
즉, 상기 암/복호 제어 신호(Enc/Dec)에 응답하여, 상기 제1 암/복호화기(111) 및 상기 제2 암/복호화기(112)가 모두 암호화를 수행할 수 있고, 상기 제1 암/복호화기(111) 및 상기 제2 암/복호화기(112)가 모두 복호화를 수행할 수 있으며, 상기 제1 암/복호화기(111) 및 상기 제2 암/복호화기(112)가 서로 상이한 연산 을 수행할 수도 있다.
상기 암/복호 컨트롤러(Controller, 120)는 호스트로부터의 설정 신호(setting signal, SS)에 응답하여 데이터 선택 신호(Data Select)를 출력한다. 상기 설정 신호(SS)는 상기 제1 암/복호화기(111) 및 상기 제2 암/복호화기(112)의 연결 관계, 동작 모드, 암호키, 초기화 벡터, 또는 암/복호화 정보 등을 포함한다.
또한, 상기 설정 신호(SS)는 암호키 길이(예컨대, 128비트, 256비트 등), 암/복호화에 사용할 암/복호화기의 개수 등에 대한 정보를 더 포함할 수 있다.
이때, 상기 암/복호 컨트롤러(120)는 상기 설정 신호(SS)를 수신하여 수신된 상기 설정 신호(SS)를 저장하는 컨트롤 레지스터(control register, 121)를 더 포함할 수 있다.
상기 암/복호 컨트롤러(120)는 상기 설정 신호(SS)에 응답하여 입력데이터 제어 신호(DIOC; Data Input Order Control)를 더 출력하고, 상기 데이터 분배기(140)는 상기 입력데이터 제어 신호(DIOC)에 응답하여 입력데이터(Data Input)를 상기 제1 암/복호화기(111) 또는 상기 경로 선택 회로(130) 중에서 적어도 하나로 분배한다.
예컨대, 상기 경로 선택 회로(130)는 멀티플렉서(multiplexer)로 구현될 수 있다.
상기 데이터 분배기(data distributor, 140)는 상기 암/복호 컨트롤러(120)로부터 출력된 입력데이터 제어 신호(DIOC)에 응답하여, 상기 입력데이터(Data Input)를 상기 제1 암/복호화기(111)로만 전송할 수 있고, 상기 경로 선택 회 로(130)로만 전송할 수 있으며, 또는 상기 제1 암/복호화기(111)와 상기 경로 선택 회로(130) 모두에 전송할 수 있다.
특히, 상기 입력데이터(Data Input)를 상기 제1 암/복호화기(111)와 상기 경로 선택 회로(130) 모두에 전송하는 경우에는, 상기 데이터 분배기(140)는 상기 입력데이터(Data Input)를 다수의 기본 단위들로 분할할 수 있다.
분할된 데이터 중 어느 하나는 상기 제1 암/복호화기(111)로 전송되고, 상기 분할된 데이터 중 다른 하나는 상기 경로 선택 회로(130)로 전송된다. 예컨대, 상기 데이터 분배기(140)는 상기 입력데이터(Data Input)를 홀수 번째 데이터(D1, D3, D5...)와 짝수 번째 데이터(D2, D4, D6...)로 분할할 수 있으며, 분할된 홀수 번째 데이터(D1, D3, D5...)를 상기 제1 암/복호화기(111)로 전송하고 분할된 짝수 번째 데이터(D2, D4, D6...)를 상기 경로 선택 회로(130)로 전송할 수 있다.
또는 실시예에 따라, 분할된 홀수 번째 데이터(D1, D3, D5...)를 상기 경로 선택 회로(130)로 전송하고 분할된 짝수 번째 데이터(D2, D4, D6...)를 상기 제1 암/복호화기(111)로 전송할 수도 있다.
또는, 상기한 바와 같이 입력데이터가 소정의 메모리에 저장된 상태에서 입력되는 경우에는, 상기 입력데이터를 영역별로 분할하여 각각 전송할 수도 있다.
상기 경로 선택 회로(130)는 상기 암/복호 컨트롤러(120)에서 출력된 데이터 선택 신호(Data Select)에 응답하여 상기 제1 암/복호화기(110)로부터 출력된 데이터(Data-Out1) 또는 상기 데이터 분배기(140)로부터 상기 경로 선택 회로(130)로 분배되는 데이터 중 어느 하나를 선택적으로 출력한다.
예컨대, 상기 데이터 선택 신호(Data Select)는 제1 데이터 선택 신호 및 제2 데이터 선택 신호를 포함할 수 있고, 상기 경로 선택 회로(130)는 상기 제1 데이터 선택 신호에 응답하여 상기 제1 암/복호화기(110)로부터 출력된 데이터(Data-Out1)를 선택하여 출력하고, 또는 상기 제2 데이터 선택 신호에 응답하여 상기 데이터 분배기(140)로부터 상기 경로 선택 회로(130)로 분배되는 데이터를 선택하여 출력할 수 있다.
본 발명의 실시예에 따른 암/복호화 장치(100)에서, 상기 암/복호 컨트롤러(120)는 입력데이터(Data Input)가 기암호화된 데이터인지 여부에 기초하여 상기 데이터 선택 신호(Data Select)를 출력할 수 있다.
보다 구체적으로, 상기 입력데이터(Data Input)가 기암호화된 데이터이면, 상기 기암호화된 데이터를 복호화한 후 사용자만이 알고 있는 암호키를 이용하여 암호화하는 것이 보안에 유리하므로, 상기 다수의 암/복호화기들(111 및 112)을 직렬로 연결하는 것이 효율적이다.
따라서, 상기 암/복호 컨트롤러(120)는 상기 데이터 선택 신호(Data Select) 중 어느 하나의 신호(예컨대, 제1 데이터 선택 신호)를 출력하고, 상기 경로 선택 회로(130)는 상기 제1 데이터 선택 신호에 응답하여 상기 제1 암/복호화기(111)로부터 출력된 데이터(Data-Out1)를 선택하여 출력한다.
즉, 제1 암/복호화기(111)의 출력데이터(Data-Out1)가 제2 암/복호화기(112)의 입력단에 전달되므로, 상기 다수의 암/복호화기들(111 및 112)은 서로 직렬로 연결된다. 이 실시예에 대해서는 도 3에서 좀더 상세히 기술하도록 한다.
다른 경우로서, 상기 입력데이터(Data Input)가 기암호화되지 않은 데이터이면, 다수의 암/복호화기들(111 및 112)을 병렬로 연결하여 데이터 프로세싱 속도를 증가시키는 것이 효율적이다.
따라서, 상기 암/복호 컨트롤러(120)는 상기 데이터 선택 신호(Data Select) 중 어느 하나의 신호(예컨대, 제2 데이터 선택 신호)를 출력하고, 상기 경로 선택 회로(130)는 상기 제2 데이터 선택 신호에 응답하여 상기 데이터 분배기(140)에서 분배되는 데이터를 선택하여 출력한다.
즉, 상기 데이터 분배기(140)에서 데이터가 분할되고 분할된 데이터가 각각 상기 제1 암/복호화기(111)의 입력단 및 상기 제2 암/복호화기(112)의 입력단으로 전송되므로, 상기 다수의 암/복호화기들(111 및 112)은 서로 병렬로 연결된다. 이 실시예에 대해서는 도 2에서 좀더 상세히 기술하도록 한다.
또한, 상기 암/복호 컨트롤러(120)는 상기 설정 신호(SS)에 응답하여 상기 제1 암/복호화기(111) 또는 상기 제2 암/복호화기(112)의 동작 모드를 제어하는 동작 모드 제어 신호(Mode)를 더 출력할 수 있다.
상기 동작 모드(operation mode)는 상기 암/복호화기가 블럭 단위의 데이터를 암호화/복호화하는 방법에 따라 ECB(Electronic CodeBook) 모드, CBC(Cipher Block Chaining) 모드, CFB(Cipher FeedBack) 모드, OFB(Output FeedBack) 모드, 또는 CTR(CounTeR) 모드 등으로 분류할 수 있다.
상기 ECB 모드(전자 부호표 모드)는 평문 블럭(plain block)을 블럭 단위로 개별적으로 암호화/복호화하는 방법이다. 따라서, 상기 ECB 모드는 구현하기가 매 우 간단하고 고속 처리가 가능하지만, 기밀성이 낮고 평문 블럭과 암호문 블럭이 일대일의 관계를 유지하게 되어 보안성이 취약하다.
상기 CBC 모드(암호 블록 연쇄 모드)는 현재 평문 블럭의 암호화를 수행할 때 이전 평문 블럭이 암호화된 암호 블럭을 함께 이용한다. 따라서, 각각의 암호 블럭은 현재의 평문 블럭뿐만 아니라 이전 암호 블럭들의 영향을 받게 되므로, 상기 ECB 모드에 비해 보안성이 한층 강화된 방법이다. 예컨대, IPSec(Internet Protocol Security protocol)에서는 통신의 기밀성을 강화하기 위해서 상기 CBC 모드(예컨대, 3DES-CBC, AES-CBC 등)를 사용하고 있다.
상기 CFB 모드(암호 피드백 모드)는 이전 블럭의 암호화 블럭을 암호 알고리즘의 입력으로 사용하는 방법이다. 암호화된 블럭이 다음의 연산의 입력으로 사용된다는 의미에서 피드백의 용어가 사용된다. 상기 CFB 모드에서는 평문 블럭과 암호 알고리즘의 출력을 XOR(eXclusive OR)하여 암호문 블럭을 만드는 방법이다.
상기 OFB 모드(출력 피드백 모드)는 암호 알고리즘의 출력을 암호 알고리즘의 입력으로 피드백하는 방법이다.
상기 CTR 모드(카운터 모드)는 1씩 증가하는 카운터(counter)를 암호화해서 키 스트림(key stream)을 만들어내는 스트림 암호 방법이다. 즉, 카운터를 암호화한 비트열과 평문 블럭과의 XOR을 취한 결과가 암호문 블럭이 된다. 상기 카운터의 초기값은 암호화 때마다 서로 상이한 값을 기초로 하여 만들 수 있다. 상기 CTR 모드는 프로그램으로 구현하기 매우 간단하고, 블럭을 임의의 순서로 암호화/복호화할 수 있는 특징이 있다.
상기 제1 암/복호화기(111) 또는 상기 제2 암/복호화기(112)는 상기 암/복호 컨트롤러(120)로부터 출력되는 상기 동작 모드 제어 신호(Mode)에 응답하여, 상기 복수 개의 모드 중 어느 하나로 동작한다.
이때, 상기 제1 암/복호화기(111)와 상기 제2 암/복호화기(112)는 서로 동일한 동작 모드로 동작할 수 있고, 또는 서로 상이한 동작 모드로 동작할 수 있다.
또한, 상기 암/복호 컨트롤러(120)는 상기 설정 신호(SS)에 응답하여 상기 제1 암/복호화기(111) 또는 상기 제2 암/복호화기(112)에 사용되는 암호키(encryption key)를 제어하는 암호키 제어 신호(Key)를 더 출력할 수 있다. 상기 암호키는 데이터를 암호화 또는 복호화하는데 필요한 데이터로서, 데이터 보안을 위한 저장 장치에서 가장 중요한 요소 중 하나이다.
상기 암/복호화 장치(100)는 암호키 데이터베이스(160)를 더 포함할 수 있고, 상기 암호키 데이터베이스(160)는 상기 암호키 제어 신호(Key)에 응답하여 상기 제1 암/복호화기(111) 또는 상기 제2 암/복호화기(112)에 제공한다.
상기 암호키 데이터베이스(160)는 암호키가 저장되는 영역 주변의 입/출력 회로(I/O circuit)를 포함할 수 있다.
상기 제1 암/복호화기(111)와 상기 제2 암/복호화기(112)가 사용하는 암호키는 서로 동일할 수 있으며, 실시예에 따라 서로 상이할 수도 있다.
또한, 상기 암/복호 컨트롤러(120)는 상기 설정 신호(SS)에 응답하여 상기 제1 암/복호화기(111) 또는 상기 제2 암/복호화기(112)가 암호화 또는 복호화 중에서 어떠한 연산을 수행할지를 제어하는 암/복호 제어 신호(Enc/Dec)를 더 출력할 수 있다.
따라서, 상기 제1 암/복호화기(111) 또는 상기 제2 암/복호화기(112)는 상기 암/복호 제어 신호(Enc/Dec)에 응답하여 암호화 또는 복호화를 수행할 수 있다. 예컨대, 상기 제1 암/복호화기(111) 및 상기 제2 암/복호화기(112)가 모두 암호화를 수행할 수 있고, 또는 모두 복호화를 수행할 수 있으며, 또는 서로 상이한 연산을 수행할 수도 있다.
또한, 상기 암/복호 컨트롤러(120)는 상기 설정 신호(SS)에 응답하여 상기 제1 암/복호화기(111) 또는 상기 제2 암/복호화기(112)가 어떠한 초기화 벡터(Initailization Vector)를 사용할지를 제어하는 초기화 벡터 제어 신호(IV)를 더 출력할 수 있다.
예컨대, 상기 CBC 모드의 경우에 최초 평문 블럭을 암호화하는 경우에 이전 단계의 암호화된 블럭이 존재하지 않으므로 이를 대신할 수 있는 초기화 벡터가 필요하고, 상기 초기화 벡터는 비트열의 한 블럭 데이터로 구현될 수 있다.
상기 초기화 벡터는 암호화가 수행되는 데이터의 블럭 길이와 동일한 길이를 가질 수 있고, 또한 상기 초기화 벡터는 암/복호화 연산을 수행하기 위해 최초 평문 블럭 이전에 삽입되는 것이기 때문에 데이터의 특성에는 영향을 주지 않는다.
또한, 상기 암/복호 컨트롤러(120)는 상기 설정 신호(SS)에 응답하여 출력데이터 제어 신호(DOOC; Data Output Order Control)를 더 출력할 수 있고, 상기 데이터 수집기(150)는 상기 제1 암/복호화기(111)로부터의 출력데이터(Data-Out1) 또는 상기 제2 암/복호화기(112)로부터의 출력데이터(Data-Out2)를 수집한다.
보다 구체적으로, 상기 데이터 수집기(150)는 상기 제1 암/복호화기(111)에서 출력된 데이터(Data-Out1)만을 수집할 수 있고, 또는 상기 제2 암/복호화기(112)에서 출력된 데이터(Data-Out2)만을 수집할 수 있으며, 또는 상기 제1 암/복호화기(111)로부터의 출력데이터(Data-Out1)와 상기 제2 암/복호화기(112)로부터의 출력데이터(Data-Out2) 모두를 수집할 수 있다.
상기 제1 암/복호화기(111)로부터의 출력데이터(Data-Out1)와 상기 제2 암/복호화기(112)로부터의 출력데이터(Data-Out2) 모두를 수집하는 경우에, 상기한 바와 같이 상기 제1 암/복호화기(111)에는 홀수 번째 입력데이터(D1, D3, D5...)가 입력되고, 암호화 또는 복호화 이후에 홀수 번째 출력데이터(OD1, OD3, OD5...)가 출력될 수 있다.
유사하게, 상기 제2 암/복호화기(112)에는 짝수 번째 입력데이터(D2, D4, D6...)가 입력되고, 암호화 또는 복호화 이후에 짝수 번째 출력데이터(OD2, OD4, OD6...)가 출력될 수 있다.
상기 데이터 수집기(150)는 상기 홀수 번째 출력데이터(OD1, OD3, OD5...)와 상기 짝수 번째 출력데이터(OD2, OD4, OD6...)를 순차적으로 선택하여 출력함으로써 출력데이터(Data Output)를 생성한다. 생성된 출력데이터(Data Output)는 보안 저장 장치에 구비되는 메모리(예컨대, RAM)에 저장된다.
이와 같이, 호스트로부터의 설정 신호(SS)에 응답하여 상기 암/복호 컨트롤러가 다양한 제어 신호들을 출력하고, 상기 암/복호화부(110), 상기 경로 선택 회로(130), 상기 데이터 분배기(140), 상기 데이터 수집기(150), 또는 상기 암호키 데이터베이스(160) 등이 상기 제어 신호들에 응답하여 상기 압/복호화 장치(100)의 구성을 유연하게 변경시킬 수 있는 효과가 있다.
도 2는 본 발명의 실시예에 따라, 암/복호화기가 병렬로 연결된 경우를 나타낸 블럭도이다.
상기한 바와 같이, 입력데이터(Data Input)가 기암호화되지 않은 데이터이면 프로세싱 속도를 향상시키기 위해서 암/복호화기들(111 및 112)을 병렬로 연결할 수 있다.
또한, 성능 향상을 위해 필요한 경우에는 상기 입력데이터(Data Input)가 기암호화된 데이터라도 상기 암/복호화기들(111 및 112)을 병렬로 연결할 수도 있다.
상기 데이터 분배기(140)는 암/복호 컨트롤러로부터 출력되는 입력데이터 제어 신호(DIOC)에 응답하여 입력데이터(Data Input)를 분할하여 상기 제1 암/복호화기(111) 및 상기 제2 암/복호화기(112)에 전송할 수 있다.
도 2에서는 예시적으로 제1 암/복호화기(111)에는 홀수 번째 데이터(D1, D3, D5...)가 전송되고, 제2 암/복호화기(112)에는 짝수 번째 데이터(D2, D4, D6...)가 전송되는 것으로 예시하였지만, 데이터의 분할 방식 또는 분배 방향은 본 발명의 실시예에 한정되지 않는다.
예컨대 입력데이터가 데이터 스트림으로서 구현된다면 도 2에서와 같이 블럭 단위로 순차적으로 데이터를 분배할 수 있고, 만약 입력데이터가 소정의 메모리에 저장되어 있는 경우라면 상기 입력데이터의 전체 사이즈를 알 수 있으므로 입력데 이터를 소정 개수의 영역으로 분할하여 각 분할된 영역의 데이터를 상기 암/복호화기들(111 및 112)에 분배할 수도 있다.
상기 데이터 분배기(140)에 의해 분배된 데이터는 각각 제1 암/복호화기(111)의 입력데이터(Data-In1)와 제2 암/복호화기(112)의 입력데이터(Data-In2)를 형성한다.
또한, 상기 제1 암/복호화기(111) 또는 상기 제2 암/복호화기(112)는 암/복호 컨트롤러로부터 출력되는 동작 모드 제어 신호(Mode), 암호키 제어 신호(Key), 암/복호 제어 신호(Enc/Dec), 또는 초기화벡터 제어 신호(IV) 등에 응답하여 다양한 환경에 유연하게 적응할 수 있다.
상기 제1 암/복호화기(111)의 출력데이터(Data-Out1) 및 제2 암/복호화기(112)의 출력데이터(Data-Out2)는 각각 데이터 수집기(150)로 전달된다.
상기 데이터 수집기(150)는 상기 암/복호 컨트롤러로부터의 출력데이터 제어 신호(DOOC)에 응답하여 상기 수신된 데이터를 선택적으로 출력하고, 원래의 데이터 순서대로 출력데이터(Data Output)를 생성한다.
이와 같이, 입력데이터를 다수 개로 분할하여 암/복호화를 수행함으로써 종래의 암호 엔진에 비해 데이터 프로세싱 속도를 상당히 증가시킬 수 있게 된다.
도 3은 본 발명의 실시예에 따라, 암/복호화기가 직렬로 연결된 경우를 나타낸 블럭도이다.
상기한 바와 같이, 입력데이터(Data Input)가 기암호화된 데이터인 경우에 는, 상기 기암호화된 데이터를 복호화하고 복호된 상기 데이터를 내부에서 생성하여 외부에서는 알 수 없는 암호키를 이용하여 암호화하는 것이 안전하므로 상기 제1 암/복호화기(111)와 상기 제2 암/복호화기(112)를 직렬로 연결하여 복호화 및 암호화를 연속적으로 수행할 수 있다.
예컨대, 호스트(host)로부터 전달되는 데이터가 세션키(session key)로 이미 암호화되는 경우가 있다. 이 경우에 상기 호스트와 보안 채널(secure channel)을 형성할 때 상기 세션키를 획득할 수 있고, 상기 세션키를 이용하여 상기 암호문을 복호화한다. 다음으로, 암호키 데이터베이스에 저장된 암호키 중 어느 하나를 이용하여 상기 복호화된 데이터를 암호화함으로써 데이터 보안을 강화시킬 수 있다.
도 3을 참고하면, 상기 데이터 분배기(140)는 암/복호 컨트롤러로부터의 입력데이터 제어 신호(DIOC)에 응답하여 데이터(D1, D2, D3...)를 상기 제1 암/복호화기(111)에만 전송할 수 있다.
상기 제1 암/복호화기(111) 또는 상기 제2 암/복호화기(112)는 상기 암/복호 컨트롤러로부터의 다양한 제어 신호에 응답하여 다양한 환경에 유연적으로 적응할 수 있다.
예컨대, 제1 암/복호화기(111) 또는 상기 제2 암/복호화기(112)는 상기 암/복호 컨트롤러로부터의 암/복호 제어 신호(Enc/Dec)에 응답하여 암호화 또는 복호화 중 어느 하나의 연산을 수행할 수 있고, 보다 효율적으로는 상기 제1 암/복호화기(111)에는 복호화 연산 제어 신호(Dec)를 출력하고 상기 제2 암/복호화기(112)에는 암호화 연산 제어 신호(Enc)를 출력할 수 있다.
상기 제1 암/복호화기(111)에서 출력된 데이터(Data-Out1)는 상기 제2 암/복호화기(112)의 입력단으로 연결되고, 상기 제2 암/복호화기(112)에서 소정의 연산을 수행한 후 출력데이터(Data-Out2)가 상기 데이터 수집기(150)로 전달된다.
상기 데이터 수집기(150)는 암/복호 컨트롤러로부터의 출력데이터 제어 신호(DOOC)에 응답하여 상기 제2 암/복호화기(112)에서 출력된 데이터(Data-Out2)만을 수집하고,출력데이터(Data Output)를 생성한다. 상기 생성된 출력데이터(Data Output)는 보안 저장 장치에 구비된 메모리에 저장된다.
다른 실시예로서, 상기 제1 암/복호화기(111)과 상기 제2 암/복호화기(112)가 모두 암호화를 수행하도록 제어할 수 있다. 이때에는 특수한 목적 하에 데이터가 두 번 암호화되어 저장된다.
이상은 상기 암/복호화기들의 연결 관계를 직렬 또는 병렬로 예시하였지만, 상기 암/복호화기가 4개 이상인 경우에는 직·병렬 연결도 가능하다. 예컨대, 입력데이터가 기암호화된 데이터인 경우에 상기 기암호화된 데이터를 두 개로 분할하고, 분할된 각 데이터들이 각 병렬 경로로 전달되어 상기 도 3에서와 같이 복호화와 암호화를 수행할 수 있다.
또한, 본 명세서에서 기술되는 보안 저장 장치는 데이터 저장시에 암호화를 수행하는 임의의 저장 장치를 모두 포함하고, 예컨대 HDD(Hard Disk Drive), SSD(Soid State Drive), 플래시 메모리 카드(Flash Memory Card), 또는 스마트 카드(Smart Card) 등을 예시할 수 있다.
도 4는 본 발명의 실시예에 따른 보안 저장 장치(secure storage device, 1000)의 구성을 나타내는 블럭도이다.
본 발명의 실시예에 따른 보안 저장 장치(1000)는, 암/복호화 장치(100); 및 상기 암/복호화 장치(100)에서 암호화된 데이터를 저장하거나 또는 상기 암/복호화 장치(100)에서 복호화할 데이터를 제공하는 데이터 저장 장치(700)를 포함할 수 있다. 상기 암/복호화 장치(100)는 다수의 암/복호화기를 포함하여 직렬 또는 병렬로 암/복호화를 수행할 수 있다.
또한, 상기 보안 저장 장치(1000)는, 각 요소들의 제어나 데이터 계산, 가공 등을 수행하는 CPU(central processing unit, 200), 상기 데이터 저장 장치(700)의 물리적 특성에 맞도록 데이터를 리드(read)하거나 라이트(write)하는 미디어 컨트롤러(media controller, 600), 호스트(2000)와 데이터를 주고 받기 위해 인터페이스 프로토콜(예컨대, PATA(Parallel Advanced Technology Attachment), SATA(Serial Advanced Technology Attachment), SAS(Serial Attached SCSI) 등)을 수행하는 호스트 인터페이스(host interface, 300), 연산 수행시 필요한 코드 등을 저장하는 롬(Read Only Memory, 400), 또는 상기 보안 저장 장치(1000)가 구동시에 필요한 데이터나 코드들이 저장되는 램(Read Access Memory, 500)을 더 포함할 수 있다.
본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변 형 및 균등한 타 실시예가 가능하다는 것을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 좀더 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시예에 따른 암/복호화 장치의 구성을 나타내는 블럭도.
도 2는 본 발명의 실시예에 따라, 암/복호화기가 병렬로 연결된 경우를 나타낸 블럭도.
도 3은 본 발명의 실시예에 따라, 암/복호화기가 직렬로 연결된 경우를 나타낸 블럭도.
도 4는 본 발명의 실시예에 따른 보안 저장 장치의 구성을 나타내는 블럭도.

Claims (9)

  1. 제1 암/복호화기;
    제2 암/복호화기;
    설정 신호에 응답하여 다수의 제어 신호들을 출력하는 암/복호 컨트롤러; 및
    상기 암/복호 컨트롤러로부터 출력되는 상기 다수의 제어 신호들 중에서 어느 하나의 제어 신호에 응답하여 상기 제1 암/복호화기 및 상기 제2 암/복호화기를 직렬 또는 병렬로 연결하기 위한 경로 선택 회로를 포함하는 암/복호화 장치.
  2. 제1항에 있어서, 상기 암/복호화 장치는,
    상기 다수의 제어 신호들 중에서 다른 하나의 제어 신호에 응답하여 입력데이터를 상기 제1 암/복호화기 또는 상기 경로 선택 회로 중 적어도 하나로 분배하는 데이터 분배기를 더 포함하는 암/복호화 장치.
  3. 제1항에 있어서, 상기 암/복호화 장치는,
    상기 다수의 제어 신호들 중에서 다른 하나의 제어 신호에 응답하여 상기 제1 암/복호화기로부터의 출력데이터 또는 상기 제2 암/복호화기로부터의 출력데이터를 수집하는 데이터 수집기를 더 포함하는 암/복호화 장치.
  4. 제1항에 있어서, 상기 경로 선택 회로는,
    상기 다수의 제어 신호들 중에서 어느 하나의 제어 신호에 응답하여 상기 제1 암/복호화기로부터 출력된 데이터 또는 입력데이터 중 어느 하나를 선택적으로 출력하는 암/복호화 장치.
  5. 제1항에 있어서, 제1 암/복호화기 또는 상기 제2 암/복호화기는,
    상기 다수의 제어 신호들 중에서 다른 하나의 제어 신호에 응답하여, ECB(Electronic CodeBook) 모드, CBC(Cipher Block Chaining) 모드, CFB(Cipher FeedBack) 모드, OFB(Output FeedBack) 모드, 또는 CTR(CounTeR) 모드로 동작하는 암/복호화 장치.
  6. 제1항에 있어서, 상기 암/복호화 장치는,
    상기 제1 암/복호화기 또는 상기 제2 암/복호화기에 암호화 또는 복호화 연산시에 사용되는 암호키를 저장하는 암호키 데이터베이스를 더 포함하고,
    상기 다수의 제어 신호들 중에서 다른 하나의 제어 신호에 응답하여, 상기 암호키 데이터베이스로부터 상기 제1 암/복호화기 또는 상기 제2 암/복호화기에 암호키가 제공되는 암/복호화 장치.
  7. 제1항에 있어서,
    상기 제1 암/복호화기 또는 상기 제2 암/복호화기는 상기 다수의 제어 신호들 중에서 다른 하나의 제어 신호에 응답하여 암호기 또는 복호화기로서 사용되는 암/복호화 장치.
  8. 암/복호화 장치; 및
    상기 암/복호화 장치에서 암호화된 데이터를 저장하거나 또는 상기 암/복호화 장치에서 복호화할 데이터를 제공하는 데이터 저장 장치를 포함하며,
    상기 암/복호화 장치는,
    제1 암/복호화기;
    제2 암/복호화기;
    설정 신호에 응답하여 다수의 제어 신호들을 출력하는 암/복호 컨트롤러; 및
    상기 암/복호 컨트롤러로부터 출력되는 상기 다수의 제어 신호들 중에서 어느 하나의 제어 신호에 응답하여 상기 제1 암/복호화기 및 상기 제2 암/복호화기를 직렬 또는 병렬로 연결하기 위한 경로 선택 회로를 포함하는 보안 저장 장치.
  9. 제8항에 있어서, 상기 보안 저장 장치는,
    HDD(Hard Disk Drive), SSD(Solid State Drive), 플래시 메모리 카드, 또는 스마트 카드인 보안 저장 장치.
KR1020080057585A 2008-06-19 2008-06-19 암/복호화 장치 및 이를 포함하는 보안 저장 장치 KR20090131696A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080057585A KR20090131696A (ko) 2008-06-19 2008-06-19 암/복호화 장치 및 이를 포함하는 보안 저장 장치
US12/475,642 US20090316899A1 (en) 2008-06-19 2009-06-01 Encryption/decryption device and security storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080057585A KR20090131696A (ko) 2008-06-19 2008-06-19 암/복호화 장치 및 이를 포함하는 보안 저장 장치

Publications (1)

Publication Number Publication Date
KR20090131696A true KR20090131696A (ko) 2009-12-30

Family

ID=41431310

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080057585A KR20090131696A (ko) 2008-06-19 2008-06-19 암/복호화 장치 및 이를 포함하는 보안 저장 장치

Country Status (2)

Country Link
US (1) US20090316899A1 (ko)
KR (1) KR20090131696A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101224021B1 (ko) * 2011-04-29 2013-01-21 (주)네오와인 암복호화 장치 및 방법
KR20170006334A (ko) * 2015-07-07 2017-01-18 (주)이더블유비엠 보안기능을 가지는 SoC 및 SoC의 보안방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110255689A1 (en) * 2010-04-15 2011-10-20 Lsi Corporation Multiple-mode cryptographic module usable with memory controllers
JP5574858B2 (ja) * 2010-07-07 2014-08-20 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、プログラム
US8725788B2 (en) 2011-05-27 2014-05-13 Adobe Systems Incorporated System and method for decryption of content including partial-block discard
US8687809B2 (en) * 2011-05-27 2014-04-01 Adobe Systems Incorporated System and method for decryption of content including disconnected encryption chains
US9215067B2 (en) * 2013-04-05 2015-12-15 International Business Machines Corporation Achieving storage efficiency in presence of end-to-end encryption using downstream decrypters
KR102263880B1 (ko) * 2014-06-19 2021-06-11 삼성전자주식회사 호스트 컨트롤러 및 시스템-온-칩
KR102249826B1 (ko) * 2015-01-06 2021-05-11 삼성전자주식회사 데이터 관리 방법 및 이를 수행하는 전자 장치
CN106709329B (zh) 2015-11-12 2020-07-03 意法半导体(鲁塞)公司 由处理单元处理期间对经加密的信息的保护
CN105933090B (zh) * 2016-04-14 2019-07-16 电子科技大学 一种多核并行scma译码***
US11463236B2 (en) * 2016-12-09 2022-10-04 Cryptography Research, Inc. Programmable block cipher with masked inputs
US11526618B2 (en) 2020-01-29 2022-12-13 Samsung Electronics Co., Ltd. Methods and apparatus for offloading encryption

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3864675B2 (ja) * 2000-03-09 2007-01-10 株式会社日立製作所 共通鍵暗号装置
US7142675B2 (en) * 2002-02-12 2006-11-28 City University Of Hong Kong Sequence generator and method of generating a pseudo random sequence
US7639798B1 (en) * 2005-09-15 2009-12-29 Rockwell Collins, Inc. High speed data encryption architecture

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101224021B1 (ko) * 2011-04-29 2013-01-21 (주)네오와인 암복호화 장치 및 방법
KR20170006334A (ko) * 2015-07-07 2017-01-18 (주)이더블유비엠 보안기능을 가지는 SoC 및 SoC의 보안방법

Also Published As

Publication number Publication date
US20090316899A1 (en) 2009-12-24

Similar Documents

Publication Publication Date Title
KR20090131696A (ko) 암/복호화 장치 및 이를 포함하는 보안 저장 장치
US8737606B2 (en) Method and system for high throughput blockwise independent encryption/decryption
EP2016525B1 (en) Encryption apparatus and method for providing an encrypted file system
CN100379194C (zh) 存储器加密
US8416947B2 (en) Block cipher using multiplication over a finite field of even characteristic
KR101847492B1 (ko) 데이터 암호화 장치 및 방법, 데이터 복호화 장치 및 방법
US8555084B2 (en) Data encryption device and memory card
JP6345237B2 (ja) 平文データを暗号化するための方法および装置
US20130016832A1 (en) Security device
US20090220083A1 (en) Stream cipher using multiplication over a finite field of even characteristic
US11387980B2 (en) Hardware multiple cipher engine
KR101815175B1 (ko) 데이터 암호화 장치 및 방법, 데이터 복호화 장치 및 방법
US20100111298A1 (en) Block cipher decryption apparatus and method
US10439802B2 (en) System for scrambling and methods for use therewith
CN103580851A (zh) 信息加密及解密方法
JP7226829B2 (ja) データ処理装置、方法及びコンピュータプログラム
KR20080072345A (ko) 암호화 장치 및 그 방법
JP4287397B2 (ja) 暗号文生成装置、暗号文復号装置、暗号文生成プログラム及び暗号文復号プログラム
JP2013098722A (ja) ストリーム暗号の暗号化装置、ストリーム暗号の復号装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号方法、およびプログラム
KR101824315B1 (ko) 데이터 암호화 방법 및 장치, 및 데이터 복호화 방법 및 장치
US10360820B2 (en) Instrumentation privacy apparatus and method
JP2007158967A (ja) 情報処理装置、耐タンパーデバイス、暗号処理方法及びコンピュータプログラム
WO2017164882A1 (en) Text encryption
JP6162556B2 (ja) 記憶装置及び情報処理システム
JP2015102692A (ja) 情報処理装置およびその方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid