KR20050002103A - 암호 프로세서를 내장한 휴대용 저장장치 - Google Patents

암호 프로세서를 내장한 휴대용 저장장치 Download PDF

Info

Publication number
KR20050002103A
KR20050002103A KR1020030043416A KR20030043416A KR20050002103A KR 20050002103 A KR20050002103 A KR 20050002103A KR 1020030043416 A KR1020030043416 A KR 1020030043416A KR 20030043416 A KR20030043416 A KR 20030043416A KR 20050002103 A KR20050002103 A KR 20050002103A
Authority
KR
South Korea
Prior art keywords
data
encryption
processor
round
key
Prior art date
Application number
KR1020030043416A
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 KR1020030043416A priority Critical patent/KR20050002103A/ko
Publication of KR20050002103A publication Critical patent/KR20050002103A/ko

Links

Classifications

    • 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/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B33/00Constructional parts, details or accessories not provided for in the other groups of this subclass
    • G11B33/02Cabinets; Cases; Stands; Disposition of apparatus therein or thereon
    • G11B33/022Cases
    • G11B33/025Portable cases
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • 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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]
    • 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/10Digital recording or reproducing
    • G11B20/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B2020/1476Synchronisation patterns; Coping with defects thereof
    • G11B2020/148Synchronisation patterns; Coping with defects thereof using error detecting or error correcting codes
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은, 낸드 플래시 메모리(Nand Flash Memory)를 구비하는 휴대용 대용량 저장장치에 있어서 낸드 플래시 메모리 인터페이스를 통하여 입출력되는 모든 데이터를 에이이에스(AES:Advanced Encryption Standard) 암호 프로세서를 통해 암호화함으로써 저장장치에 저장되는 데이터의 보안을 확보하여 정보의 노출을 차단할 수 있는 암호 프로세서를 내장한 휴대용 저장장치에 관한 것으로서,
외부장치와의 데이터 입출력을 위한 고속 직렬 데이터 통신을 지원하는 유에스비(USB) 인터페이스를 제공하고, 데이터의 암호화 및 저장매체로의 저장을 제어하는 컨트롤러;
입출력되는 데이터를 256 비트 키를 사용하는 블럭 암호 알고리즘을 통해 암호화 및 복호화하는 암호 프로세서; 및
암호화된 데이터를 저장하는 저장매체를 구비하는 것을 특징으로 한다.

Description

암호 프로세서를 내장한 휴대용 저장장치{PORTABLE STORING APPARATUS HAVING ENCRYPTION PROCESSOR}
본 발명은 암호 프로세서를 내장한 휴대용 저장장치에 관한 것으로서, 구체적으로, 낸드 플래시 메모리(Nand Flash Memory)를 구비하는 휴대용 대용량 저장장치에 있어서 낸드 플래시 메모리 인터페이스를 통하여 입출력되는 모든 데이터를 에이이에스(AES:Advanced Encryption Standard) 암호 프로세서를 통해 암호화함으로써 저장장치에 저장되는 데이터의 보안을 확보하여 정보의 노출을 차단할 수 있는 암호 프로세서를 내장한 휴대용 저장장치에 관한 것이다.
컴퓨터의 사용이 급증하고 사용자의 데이터 용량이 증가함에 따라 종래의 플로피 디스크와 같은 소용량의 저장수단는 더 이상 제 기능을 수행하지 못하는 실정이다. 이에 따라 수십 내지 수백 메가 바이트에서 기가 바이트의 데이터를 저장할 수 있는 휴대용 저장장치(USB 메모리, 메모리 스틱 등)가 대두되어 널리 사용되고 있다.
그러나, 이러한 휴대용 저장장치의 경우 저장용량의 대형화에는 성공하였으나 종래의 소용량 저장장치와 같이 별다른 보안 수단을 구비하지 않음으로 인해, 사용자가 데이터에 개별적으로 암호를 설정하거나 별도의 보안 소프트웨어를 통해 보안설정을 하여야 했다. 따라서, 데이터의 보안 수준이 낮을 뿐만 아니라 사용자가 데이터마다 일일이 보안 설정을 하여야 하므로 사용이 불편한 문제점이 있었다. 또한, 별도의 보안 소프트웨어를 통해 보안 설정을 하는 경우, 호스트에 부하가 많이 발생할 뿐만 아니라 실시간으로 암호화를 수행할 수 없으며, 입출력되는 데이터의 전체적인 보안이 아닌 부분적인 데이터 보안만이 가능한 문제점이 있었다. 아울러, 사용자가 자칫 보안 설정을 하지 아니한 경우, 저장장치의 분실 또는 도난로 인해 저장된 중요 데이터가 외부로 유출될 수 있어 심각한 보안상의 문제점을 안고 있었다.
본 발명은 상기와 같은 문제점을 해결하고자 제시된 것으로서, 본 발명의 목적은, 256 비트 AES 암호 알고리즘을 고속 처리하는 전용 보안칩에 의해, 강력한 보안기능을 제공하고, 다양한 보안 소프트웨어와 연동하여 대용량 데이터의 보안 및 저장 기능을 동시에 제공함으로써 종래의 휴대용 저장장치의 보안상의 한계점과 불편함을 극복할 수 있는 암호 프로세서를 내장한 휴대용 저장장치를 제공하는 것이다.
도 1 은 본 발명에 따른 암호 프로세서를 내장한 휴대용 저장장치의 블록 구성도.
도 2 는 AES 암호화 방식을 이용한 암호화 및 복호화 과정을 나타내는 흐름도.
도 3 은 AES 암호화 방식의 라운드에서 수행되는 각 변환의 구조를 나타낸 도.
도 4 는 AES 암호화 방식에 의한 암호화 및 복호화의 예시도.
상기의 목적을 달성하기 위하여, 본 발명에 따른 암호 프로세서를 내장한 휴대용 저장장치는, 소정의 외부장치로부터 입력되는 데이터를 암호화하여 저장매체에 저장하고, 저장매체에 저장된 데이터의 추출시 암호화된 데이터를 복호화하여 출력하는 암호 프로세서를 내장한 휴대용 저장장치로서, 외부장치와의 데이터 입출력을 위한 고속 직렬 데이터 통신을 지원하는 유에스비(USB) 인터페이스를 제공하고, 데이터의 암호화 및 저장매체로의 저장을 제어하는 컨트롤러; 입출력되는 데이터를 256 비트 키를 사용하는 블럭 암호 알고리즘을 통해 암호화 및 복호화하는 암호 프로세서; 및 암호화된 데이터를 저장하는 저장매체를 구비하는 것을 특징으로 한다.
바람직하게는, 컨트롤러가, 시스템 상의 고속 데이터 전송의 제어와, 암호화 및 복호화를 통한 정보 보안 제어를 수행하는 프로세서인 엠씨유(MCU)를 구비하도록 한다.
또한, 암호 프로세서는, 데이터의 암호화 및 복호화를 수행하는 암호 코어; 컨트롤러 및 저장매체와 암호 프로세서 간의 데이터 통신을 위한 인터페이스를 제공하는 인터페이스 유닛; 암호화 및 복호화를 위한 서브 키를 생성하는 키 스케쥴링 유닛; 및 암호 코어, 인터페이스 유닛 및 키 스케쥴링 유닛의 동작을 제어하는 제어 유닛을 구비하도록 한다.
아울러, 블럭 암호 알고리즘으로는 에이이에스(AES) 암호 알고리즘을 사용하도록 하고, 이때, 암호 프로세서가 데이터를 페이지 단위로 암호화하고, 키 사이즈로 256 비트를 할당하고 블럭 사이즈로 128 비트를 할당하도록 한다.
한편, 저장매체로는 낸드 플래시 메모리를 사용하도록 하며, 저장매체가 데이터에 포함된 에러의 검출 및 복원을 위한 에러 정정코드를 사용하도록 한다.
이하에서는, 첨부한 도면을 참조하여 본 발명의 장점, 특징 및 바람직한 실시례에 대해 상세히 설명하도록 한다.
도 1 은 본 발명에 따른 암호 프로세서를 내장한 휴대용 저장장치의 블록 구성도이다. 도 1 에 도시한 바와 같이, 본 발명에 따른 암호 프로세서를 내장한 휴대용 저장장치(100)는, 고속 직렬 데이터 통신과 대용량 저장장치 제어를 위한 USB 플래시 드라이브 컨트롤러(10, USB Flash Drive Controller), 256 비트 AES 암호화 처리를 위한 암호 프로세서(20) 및 데이터 저장을 위한 플래시 메모리(30,Flash Memory)를 구비한다. 또한, 암호 프로세서(20)는 암호 프로세서의 동작을 제어하는 제어 유닛(22), AES 암호화/복호화를 수행하는 AES 암호 코어(24, AES Encryption Core), USB 플래시 드라이브 컨트롤러(10) 및 플래시 메모리(30)와 암호 프로세서(20) 간의 인터페이스를 제공하는 인터페이스 유닛(26) 및 AES 암호화/복호화를 위한 서브키(sub-key)를 생성하는 키 스케쥴링 유닛(28, Key Scheduling Unit)으로 이루어진다.
본 발명에 따른 암호 프로세서를 내장한 휴대용 저장장치(100)는 데이터의 입력/저장시에는, 입력되는 데이터를 암호 프로세서(20)의 256 비트 AES(Advanced Encryption Standard) 암호 알고리즘을 이용하여 페이지 단위로 암호화한 후 플래시 메모리(30)에 저장한다. 또한, 저장된 데이터의 출력시에는, 사용자를 인증한 후 플래시 메모리(30)에 저장된 데이터를 읽어 암호 프로세서(20)를 통해 복호화한 후에 호스트로 출력하게 된다.
본 발명에 따른 USB 플래시 드라이브 컨트롤러(10)는 고속 직렬 데이터 통신과 본 발명에 따른 휴대용 저장장치(100)의 제어를 수행하며, 최대 480 Mbps의 속도를 제공하는 USB 2.0 Function Core와 외부 USB 기기와의 접속을 위한 USB 2.0 트랜시버(Transceiver)로 이루어진다. USB 2.0 Function Core는 최대속도 480 Mbps, 전체 속도(Full Speed) 12 Mbps, 최저(Low Speed) 1.5 Mbps를 지원하도록 한다.
또한, USB 플래시 드라이브 컨트롤러(10)는 대용량 저장장치 기능을 위한MCU(Macro Controller Unit)를 내장하여 암호 프로세서(20)와 플래시 메모리(30)를 상호 유기적으로 동작시키면서 강력한 보안기능을 수행하도록 한다. MCU는 시스템 상의 고속 데이터 전송의 제어, 암복호화를 통한 정보 보안 제어 등의 기능을 지능적으로 제어하는 프로세서 기능을 수행하는 장치로서, 이를 통해 USB 2.0 프로세서와 암호 프로세서를 상호 유기적으로 동작시킴과 동시에 강력한 보안 기능을 수행하여 고속 데이터 전송이 가능하게 할 수 있으며, 플래시 메모리 인터페이스를 통하여 대용량 데이터 관리를 할 수 있게 된다. MCU 코어로는 8 비트 RISC Architecture MCU 코어(Core)를 사용하도록 한다.
본 발명에 따른 USB 플래시 드라이브 컨트롤러(10)는 인텔 UTMI(USB 2.0 Transceiver Macrocell Interface)와 호환되도록 하며, USB 2.0 뿐만 아니라 USB 1.1과도 호환되도록 한다. 또한, 프로토콜로는, USB 인터페이스를 통한 저장장치 구현을 위하여 만들어진 USB Mass Storage Class Specification 1.0에서 정의된 Bulk-Only 프로토콜인 Bi-directional Bulk only 프로토콜을 사용하도록 하고, 운영체제로는 윈도우즈 계열 운영체제(XP, 2000, Me, 98, 98SE), Mac OS 9.x/X 및 Linux 등 다양한 운영체제를 지원하도록 한다. 또한, 8 비트 ALU(Arithmetic Logic Unit)와 8 개의 8 비트 GPR(General Purpose Register)을 사용하도록 하며, 낸드 플래시 메모리 인터페이스를 지원하도록 한다. GPR은 일반적인 입출력 포트를 제어할 수 있는 레지스터를 의미하며, 8 개의 8 비트 GPR을 사용함으로써 8 개의 8 비트 포트를 이 레지스터의 값에 따라 입력 또는 출력포트로 제어할 수 있게 된다.
따라서, 본 발명에 따른 USB 플래시 드라이브 컨트롤러(10)는 높은 성능을 제공하며, Single Cycle 명령어를 수행할 수 있게 된다.
본 발명에 따른 암호 프로세서(20)는 256 비트 AES 암호 알고리즘을 통해 플래시 메모리(30)에 저장되는 데이터를 암호화하고, 저장된 데이터의 출력시 암호화된 데이터를 복호화한다. 따라서, 암호 프로세서(20)는 AES 알고리즘의 고속 암호화 및 복호화를 수행하게 되며 최대 1.5 Gbps의 암호화 데이터 처리속도를 갖는다. 또한, 암호 프로세서(20)는 데이터를 페이지 단위로 암호화 하도록 하며 패스워드로부터 자동으로 암호화/복호화 키를 생성하고 관리할 수 있도록 한다. 이때, 키 사이즈(size)로는 256 비트를, 블럭 사이즈로는 128 비트를 할당하여 사용하도록 한다.
한편, 암호 프로세서(20)는 블럭 암호 알고리즘의 실제 운영시 여러 블록의 암호화/복호화 수행으로 인한 연속 암호화를 수행하기 위해, 운영모드로서 ECB (Electronic Codebook), CBC(Cipher Block Chaining), CFB(Cipher Feedback), OFB (Output Feedback) 및 CTR(Counter)를 지원하도록 한다. 각각은 블록 암호 알고리즘을 운영하기 위한 운영모드로서, 본 발명이 속한 기술분야의 통상의 전문가라면 쉽게 알 수 있는 것이므로 상세한 설명은 생략하도록 한다.
AES(Advanced Encryption Standard) 암호방식은 DES(Data Encryption Standard)를 대체하기 위해 개발된 블럭 암호 알고리즘이다.
DES는 Lucifer를 보완하여 IBM에서 개발한 블럭암호 알고리즘으로 1977년에미국 표준국에서 표준으로 채택되었으며, 64 비트 입력 블럭을 56 비트 비밀키를 이용하여 암호화하는 블럭암호 알고리즘으로, 현재 전세계적으로 가장 널리 사용되고 있다. 그러나, DES는 56 비트라는 짧은 키 길이로 인해 안전성에 의문이 제기되고 있으며, 이를 극복하기 위한 대안으로 3 개의 키로 DES를 3 회 반복하여 사용하는 Triple DES가 사용되고 있다. 3DES는 속도가 DES보다 3배 정도 느리다는 단점에도 불구하고, 종래의 DES를 이용하여 쉽게 구현되고 DES의 안전성 문제를 해결하는 장점으로 인하여 여러 표준에서 사용되었다.
상기한 바와 같이, AES는 1998년을 기점으로 표준 기한이 만료된 DES를 대체할 블럭암호의 필요성에 따라 개발되었으며, Daemen과 Rijmen에 의해 개발되고 RIJNDAEL로 명명된 블럭 암호 알고리즘이다. AES 알고리즘은 비밀키 블록 알고리즘으로, NIST(미국 국립 표준기술원)에서 요구한 128 비트의 블록 길이와 128, 192 및 256 비트의 키 길이를 지원하며, 블록과 키 길이에 따라 라운드 수는 10, 12 또는 14로 가변적이다.
AES 알고리즘에 의한 암호화 및 복호화 과정에 대하여는 이하에서 도 2 의 설명을 통해 보다 상세히 설명하도록 한다.
본 발명에 따른 플래시 메모리(30)은 대용량 저장장치의 디스크 드라이브 섹터에 해당되는 데이터를 저장하고, 데이터의 읽기, 쓰기 및 삭제 등 다양한 기능을 제공하며, 바람직하게는 낸드 플래시 메모리(Nand Flash Memory)를 사용하도록 한다. 또한, 플래시 메모리(30)는 에러 정정코드(ECC, Error Correction Code)를사용하여 입출력되는 데이터의 에러를 검출 및 복원하도록 한다.
도 2 는 AES 암호화 방식을 이용한 암호화 및 복호화 과정을 나타내는 흐름도로서, 도 2a 는 AES 알고리즘을 이용하여 평문을 암호화하는 과정을 나타낸 도이고, 도 2b 는 AES 알고리즘을 이용하여 암호문을 복호화하는 과정을 나타낸 도이다. 도 2a 및 도 2b 에 도시한 바와 같이, AES 알고리즘을 이용한 암호화 및 복호화는 초기 라운드(Initial Round), 스탠다드 라운드(Standard Round) 및 최종 라운드(Final Round)로 이루어지며, 스탠다드 라운드는 라운드 수를 'r'이라고 할 때 r-1 번 반복된다.
라운드는 하나의 평문이 암호화되거나 또는 하나의 암호문이 복호화될 때 어떤 일련의 연산이 반복해서 수행되는 것을 의미한다. 라운드 수는 키의 길이에 따라 달라지며, 예를 들어 암호화시 14 라운드를 수행해야 한다면 일련의 연산이 14번 이루어지게 된다. 이때, 14번 수행되는 일련의 연산이 모두 동일한 것은 아니며, 처음과 마지막에 수행되는 일련의 연산은 나머지 연산과 상이하게 일정한 연산을 제외하고 수행되게 된다. 도 2a 와 도 2b 에서, 하나의 라운드 함수는 'ByteSub/InvByteSub', 'ShiftRow/InvShiftRow', 'MixColumn/InvMixColumn' 및 'AddRoundKey'의 4개 변환으로 구성되며, 스탠다드 라운드에서는 4 개의 변환을 모두 수행하는 반면 초기 라운드에서는 'AddRoundKey' 만을, 그리고 최종 라운드에서는 'MixColumn/InvMixColumn'을 제외한 3 개의 변환만을 수행하게 된다.
도 2a 를 참조하여, 플래시 메모리(30)에 저장을 위해 입력되는 데이터를 암호화하는 과정을 설명하면 이하와 같다.
암호화되지 않은 데이터(평문)이 입력되면, 변수값 t를 0으로 설정한 후 초기 라운드(Initial Round)를 수행한다(ST200 내지 ST210). 변수 t는 스탠다드 라운드를 r-1 번 루프를 돌리기 위한 값이다. 초기 라운드에서는 전체 연산 중, 라운드 값이 0에서는 라운드 키와 XOR 연산을 수행하는 'AddRoundKey' 연산만이 이루어진다(ST210-1).
다음으로, t 값을 1 씩 증가시키면서 t가 r-1 보다 크지 않은 동안 스탠다드 라운드(Standard Round)를 반복 수행한다(ST215 내지 ST225). 따라서, 라운드 수가 14인 경우에는 1 부터 13 라운드까지 스탠다드 라운드가 수행되며, 스탠다드 라운드에서는 4개의 변환, 즉 'ByteSub', 'ShiftRow', 'MixColumn' 및 'AddRoundKey'가 모두 수행된다(ST225-1). 'ByteSub'는 바이트 단위의 독립적인 비선형 치환을 수행하고, 'ShiftRow'는 각 행마다 정해진 크기만큼 왼쪽으로 쉬프트한다. 또한, 'MixColumn'은 각 열에 대해 GF(28) 상에서 정의된 행렬 곱셈 연산하며, 상기한 바와 같이, 'AddRoundKey' 라운드 키와 XOR 연산을 한다. 각각의 변환에 대하여는 이하에서 도 3 을 참조하여 보다 상세히 설명하도록 한다.
스탠다드 라운드를 r-1 번 반복한 후, 즉 t 값이 r-1 보다 크면, 마지막으로 최종 라운드(Final Round)를 수행하여 암호문을 생성 및 출력하도록 한다(ST230, ST235). 최종 라운드에서는 스탠다드 라운드의 4개의 변환 중 'MixColumn'을 제외한 'ByteSub', 'ShiftRow' 및 'AddRoundKey' 변환이 수행된다(ST230-1).
다음으로, 도 2b 를 참조하여, 플래시 메모리(30)에 저장된 암호화된 데이터를 복호화하는 과정을 설명하면 이하와 같다.
암호화된 데이터(암호문)이 입력되면, 변수값 t를 0으로 설정한 후 초기 라운드(Initial Round)를 수행하여, 'AddRoundKey' 연산을 수행한다(ST250 내지 ST260, ST260-1). 한편, 복호화에 사용되는 각 라운드 키의 순서는 암호화에 사용된 각 라운드 키의 순서를 반대로 하여 사용하도록 한다.
다음으로, t 값을 1 증가시킨 후 스탠다드 라운드(Standard Round)를 r-1 번반복 수행한다(ST265 내지 ST275). 복호화의 스탠다드 라운드에서는 암호화의 스탠다드 라운드에서 이루어지는 각 변환의 역변환(inverse)인 'InvByteSub', 'InvShiftRow', 'InvMixColumn' 및 'AddRoundKey'가 수행된다(ST275-1). 각각의 변환에 대하여는 이하에서 도 3 을 참조하여 보다 상세히 설명하도록 한다.
스탠다드 라운드를 r-1 번 반복한 후에는 마지막으로 최종 라운드(Final Round)를 수행하여 암호문을 생성하여 출력한다(ST280, ST285). 최종 라운드에서는 스탠다드 라운드 중 'InvMixColumn'을 제외한 'InvByteSub', 'InvShiftRow' 및 'AddRoundKey' 변환이 수행된다(ST280-1).
도 2a 및 도 2b 와 같이 암호화 및 복호화를 수행하는 AES 암호 코어(24)를 구현함에 있어서는, 하나의 라운드만을 구현한 후 레지스터와 멀티 플렉서를 하나씩 추가하여 라운드 수만큼 반복하여 암호화/복호화를 수행하도록 한다. 보다 구체적으로, 입력 데이터(평문 또는 암호문)는 초기 라운드(Initial Round)에서 'AddRoundKey' 변환을 통해 라운드 키와 XOR 연산된 후 멀티 플렉서를 통해 레지스터에 저장된다. 이후, 한 클럭마다 'ByteSub' 또는 'InvByteSub', 'ShiftRow' 또는 'InvShiftRow', 'MixColumn' 또는 'InvMixColumn' 및 'AddRoundKey'로 이루어진 하나의 라운드를 수행하며, 결과값은 다시 멀티 플렉서를 통해 레지스터에 저장된다. 이와 같은 변환을 라운드 수만큼 반복 수행하면서 데이터를 암호화 또는 복호화하게 된다.
도 3 은 AES 암호화 방식의 라운드에서 수행되는 각 변환의 구조를 나타낸 도로서, 도 3a 는 'ByteSub/InvByteSub'의 변환구조를 나타낸 도이고, 도 3b 는 'ShiftRow/InvShiftRow'의 변환구조를 나타낸 도이며, 도 3c 는 'MixColumn/ InvMixColumn'의 변환구조를 나타낸 도이고, 도 3d 는 'AddRoundKey'의 변환구조를 나타낸 도이며, 도 3e 는 8 바이트 행(row)에 대한 'Rijndael Key Schedule' 구조를 나타낸 도이다. 도 3a 내지 도 3e 를 참조하여 각 변환에 대하여 설명하면 이하와 같다.
먼저, 'ByteSub/InvByteSub'은 바이트 단위의 독립적인 비선형 치환을 수행하는 변환으로, 도 3a 에 도시한 바와 같이, 입력 데이터는 32 바이트 단위씩 분할되어 1 바이트마다 S-box를 어드레싱한다. 따라서, 한 클럭에 하나의 라운드를처리하기 위해서는 동일한 32개의 S-box가 사용되게 된다.
한편, 암호화 과정에서 사용하는 'ByteSub'와 복호화 과정에서 사용하는 'InvByteSub'는 모두 'self-inverse' 성질이 있으므로, 하나 만을 구현한 후 공유하여 사용할 수 있다.
'ByteSub'와 'InvByteSub'를 구현하기 위해서는 LUT(Look-up Table)을 이용하거나, 'Multiplicative Inverse' 연산을 'Extended Euclidean'이나 'Composite Field'와 같은 알고리즘을 이용하여 구현할 수 있다.
LUT를 이용하는 방법은 암호화/복호화 과정을 모두 지원하는 경우, Feistel 구조인 대부분의 블록 암호 알고리즘과 달리 Rijndael은 복호화 과정을 위해 암호화 과정과 다른 LUT가 필요하다. 따라서, LUT로 구현시 바이트 단위로 독립적으로 수행되는 'ByteSub'와 'InvByteSub'의 특성에 따라 16개의 4K 비트 롬이 필요하다. 그러므로, 성능면에서는 우수하지만 메모리를 많이 필요로 하게 된다. 반면, 'Multiplicative Inverse' 연산을 'Extended Euclidean'이나 'Composite Field' 등의 알고리즘을 이용하여 구현할 경우, 성능이 다소 떨어지는 반면 적은 메모리로 사용할 수 있게 된다.
다음으로, 'ShiftRow/InvShiftRow'는, 도 3b 에 도시한 바와 같이, State를 행 단위로 Cyclic Shift한다. 암호화 과정에서 'ShiftRow'는 첫번째 행을 제외한 2, 3, 4,.. 행을 오른쪽으로 1, 2, 3,... 바이트만큼 쉬프트하며, 복호화 과정에서 'InvShiftRow'는 'ShiftRow'와 동일한 방식으로 왼쪽으로 각 행을 쉬프트한다.
도 3c 에 도시한 바와 같이, 'MixColumn'은 한 열의 4 바이트를 입력으로 f(x) = x8 + x4 + x + 1을 'primitive polynomial'로 사용하는 GF(28)에서의 행렬 곱셈으로 이루어져 있으며, 'InvMixColumn'은 'MixColumn'의 역변환으로 이루어진다. 'MixColumn'과 'InvMixColumn'은 '02', '03', '09', '0B', '0D' 및 '0E'로 구성된 상수화의 곱셈을 어떻게 구현하는지가 중요관점이 되며, 이를 위해 Xtime 함수를 이용한 방법을 통한 여러 개의 XOR 연산을 이용한다.
또한, 도 3d 에 도시한 바와 같이, 'AddRoundKey'는 128 비트 데이터와 128 비트 라운드 키의 bitwise-XOR 연산으로 이루어진다. 또한, 복호화 과정에서의 'AddRoundKey'의 역변환은 'AddRoundKey'와 동일하므로 별도의 구현이 필요 없다.
마지막으로, 'Rijndael Key Schedule'은 서브키(sub-key)를 암호화/복호화 이전에 생성하는 방법과 키 저장으로 인한 오버헤드를 줄이기 위해 각 라운드마다 서브키를 생성하는 방법이 있다. 도 3e 에 도시한 바와 같이, 키 스케쥴은 이하와 같이 이루어지게 된다.
우선, 256 비트 키는 4개의 64 비트(8 바이트) 행(row)으로 나뉘어 지며, 각 행의 최하위 바이트는 S-box에 어드레스로 사용된다. S-Box 8 비트 결과 값은 원래의 바이트와 XOR 연산된다. 이때, 병렬 계산을 위해 S-box 4개가 요구된다.
또한, 0 번째 바이트(B0)는 라운드 상수(rcon, Round constant)와 XOR 연산되며, 256 비트 데이터는 4개의 64 비트 행으로 나뉘어져 각 바이트는 이전 바이트와 순차적으로 XOR 연산이 이루어진다. 한편, 키가 256 비트인 경우 멀티 플렉서 (MUX)를 사용하도록 한다.
복호화시에는 추가로 'InvMixColumn'이 필요한데, 이 경우 첫번째와 마지막 라운드 키를 제외한 모든 라운드 키를 'InvMixColumn'을 수행하여 사용하도록 한다.
도 4 는 AES 암호화 방식에 의한 암호화 및 복호화의 예시도로서, 도 4a 및 도 4b 는 평문을 AES 알고리즘을 이용한 암호화 과정을 통해 암호문을 생성하는 과정을 나타낸 도이고, 도 4c 및 도 4d 는 도 4a 및 도 4b 의 암호화 과정을 통해 생성된 암호문을 다시 복호화하여 평문을 생성하는 과정을 나타낸 도이다. 도 4a 내지 도 4d 에서는 암호화 및 복호화 과정에서 거치는 각 라운드에서의 평문 또는 암호문의 변환 모습을 나타내었다.
도 4a 및 도 4b 에 도시한 예는 평문 '00112233445566778899aabbccddeeff'을 키값 '000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f'를 이용하여 AES 암호화하는 것으로서, 최종 라운드인 round[14]를 거친 후 상기 평문은 암호문 '8ea2b7ca516745bfeafc49904b496089'으로 최종 변환되게 된다. 마찬가지로, 암호문 '8ea2b7ca516745bfeafc49904b496089'은 도 4c 및 도 4d 와 같이 복호화 과정을 통해 각 라운드를 거쳐 평문 '00112233445566778899aabbccddeeff'로 복호화된다.
도 4a 내지 도 4d 에서 round[0]은 초기 라운드(Initial round), round[14]는 최종 라운드(Final round)가 되며, round[1] 내지 round[13]은 스탠다드 라운드 (Standard round)가 된다. 또한, 암호화 과정(도 4a 및 도 4b)의 각 라운드에서 'start'는 해당 라운드의 시작 상태를, 's_box'는 'SubBytes' 변환을 거친 후의 상태를 나타내며, 's_row'는 'ShiftRows' 변환을 거친 후의 상태를 나타낸다. 또한, 'm_col'은 'MixColumns' 변환을 거친 후의 상태를, 'k_sch'은 해당 라운드에서의 키 스케쥴 값을 나타낸다.
한편, 복호화 과정(도 4c 및 도 4d)은 암호화 과정의 역변환(inverse)으로서, 'istart'는 해당 라운드의 시작 상태를, 'is_box' 는 'InvSubBytes' 변환을 거친 후의 상태를, 'is_row'는 'InvShiftRows' 변환을 거친 후의 상태를 나타낸다. 또한, 'im_col'은 'InvMixColumns' 변환 이후의 상태를 나타내며, 'ik_sch'은 해당 라운드의 키 스케쥴 값을 나타낸다.
또한, 도 4a 와 도 4d 를 통해 스탠다드 라운드(round[1] 내지 round[13])에서는 상기한 4개의 변환이 모두 이루어지는 반면, 초기 라운드(round[0])와 최종 라운드(round[14])에서는 일부의 변환만이 수행됨을 알 수 있다.
응용례
본 발명에 따른 암호 프로세서를 내장한 휴대용 저장장치는 저장매체로서 낸드 플래시 메모리를 사용하는 경우를 중심으로 설명하였으나, 이외에도 다양한 저장매체를 사용할 수 있다. 예를 들어, 콤팩트 플래시(Compact Flash), 스마트 미디어(Smart Media), XD 카드, 메모리 스틱(Memory Stick), 메모리 스틱 프로, HS 메모리 스틱, 시큐어 디지털(Secure Digital), 멀티미디어 카드(Multimedia Card), CR Form Factor ATA 하드 드라이브 등을 사용할 수 있다. 또한, 상기한 바와 같은 저장매체를 이용하는 경우에도 기본적인 기능은 대용량 저장장치이므로, 본 발명의 구성에 별다른 변형을 가하지 않고도 적용이 가능하게 되어, 다양한 인터페이스를 지원하는 보안장치를 제공할 수 있게 된다.
또한, 저장매체에 대한 파티션 기능을 적용하고, 이를 포맷할 때 암호화하는 Private 영역과 암호화하지 않는 Public 영역으로 분류 정의하여 사용상의 편리를 제공할 수 있으며, 마스터 부트 레코드(Master Boot Record)와 부트 레코드(Boot Record)를 보호함으로써 바이러스나 해킹으로부터 부트섹터를 보호할 수 있게 된다.
또한, 본 발명은 인터넷 뱅킹을 위한 인증서 저장, 개인용 컴퓨터의 보안, 디지털 음악 파일이나 소프트웨어 등의 컨텐츠 보호, 데이터베이스 보안, 인터넷 및 인트라넷 등 네트워크 상에서의 정보보안 및 인증 등에 응용이 가능하다.
아울러, AES 알고리즘을 통한 데이터 암호화 이외에도 사용자 인증을 위해 지문인식 장치와 같은 바이오 메트릭스(biometrics)와 연동함으로써 저장 데이터에 대한 보다 강력한 보안기능을 제공할 수 있다.
이상 설명한 바대로, 본 발명에 따른 암호 프로세서를 내장한 휴대용 저장장치는, 휴대가능한 대용량 저장장치에 대하여 저장되는 데이터를 고속으로 암호화 및 복호화함으로써 저장 데이터의 강력한 보안이 가능하게 하며, 사용자가 데이터의 보호를 위해 별도의 소프트웨어적인 작업이나 조작을 하지 않아도 되므로 사용이 편리한 현저한 효과가 있다.
다시 말해서, 본 발명에 따른 암호 프로세서를 내장한 휴대용 저장장치는,
첫째로, 256 비트 키를 사용하는 AES 암호 알고리즘을 통해 저장데이터를 암호화/복호화 함으로써 데이터의 보안 강도를 높일 수 있으며, 암호 프로세서를 통해 대용량 디지털 데이터의 고속 암호처리와 실시간 처리가 가능하고,
둘째로, 사용자가 저장되는 데이터에 일일이 암호를 설정하거나 별도의 소프트웨어를 통해 데이터를 보호하지 않아도 되므로, 사용이 편리할 뿐만 아니라 호스트에 부하를 발생시키지 않으며,
셋째로, 저장매체를 암호화 영역과 비암호화 영역으로 분할하여 사용상의 편리를 제공할 수 있고, 부트 영역에 대한 바이러스 또는 해킹으로부터의 보호가 가능하며,
넷째로, SI 업체 및 EMS(Enterprise Management System), 데이터베이스 보안 솔루션 등의 기술과 제품에 강화된 보안 기능을 제공할 수 있고,
마지막으로, 다양한 저장매체의 대체 적용이 용이하고, AES 암호화 이외에 별도의 보안/인증 수단(예를 들어 지문인식 장치 등)과 연동할 수 있는 등 변형 및응용의 폭이 넓다.
본 발명의 바람직한 실시례가 특정 용어들을 사용하여 기술되어 왔지만, 그러한 기술은 오로지 설명을 하기 위한 것이며, 다음의 청구범위의 기술적 사상 및 범위로부터 이탈되지 않고서 여러 가지 변경 및 변화가 가해질 수 있는 것으로 이해되어져야 한다.

Claims (8)

  1. 소정의 외부장치로부터 입력되는 데이터를 암호화하여 소정의 저장매체에 저장하고, 상기 저장매체에 저장된 데이터의 추출시 상기 암호화된 데이터를 복호화하여 출력하는 암호 프로세서를 내장한 휴대용 저장장치로서,
    상기 외부장치와의 데이터 입출력을 위한 고속 직렬 데이터 통신을 지원하는 유에스비(USB) 인터페이스를 제공하고, 상기 데이터의 암호화 및 상기 저장매체로의 저장을 제어하는 컨트롤러;
    상기 입출력되는 데이터를 256 비트 키를 사용하는 블럭 암호 알고리즘을 통해 암호화 및 복호화하는 암호 프로세서; 및
    상기 암호화된 데이터를 저장하는 상기 저장매체를 구비하는 것을 특징으로 하는 암호 프로세서를 내장한 휴대용 저장장치.
  2. 제 1 항에 있어서,
    상기 컨트롤러가,
    시스템 상의 고속 데이터 전송의 제어와, 암호화 및 복호화를 통한 정보 보안 제어를 수행하는 프로세서인 엠씨유(MCU)를 구비하는 것을 특징으로 하는 암호 프로세서를 내장한 휴대용 저장장치.
  3. 제 1 항에 있어서,
    상기 암호 프로세서가,
    상기 데이터의 암호화 및 복호화를 수행하는 암호 코어;
    상기 컨트롤러 및 상기 저장매체와 상기 암호 프로세서 간의 데이터 통신을 위한 인터페이스를 제공하는 인터페이스 유닛;
    상기 암호화 및 복호화를 위한 서브 키를 생성하는 키 스케쥴링 유닛; 및
    상기 암호 코어, 상기 인터페이스 유닛 및 상기 키 스케쥴링 유닛의 동작을 제어하는 제어 유닛을 구비하는 것을 특징으로 하는 암호 프로세서를 내장한 휴대용 저장장치.
  4. 제 1 항에 있어서,
    상기 블럭 암호 알고리즘이 에이이에스(AES) 암호 알고리즘인 것을 특징으로 하는 암호 프로세서를 내장한 휴대용 저장장치.
  5. 제 4 항에 있어서,
    상기 암호 프로세서가 상기 데이터를 페이지 단위로 암호화하는 것을 특징으로 하는 암호 프로세서를 내장한 휴대용 저장장치.
  6. 제 4 항에 있어서,
    상기 암호 프로세서가 키 사이즈로 256 비트를 할당하고 블럭 사이즈로 128 비트를 할당하는 것을 특징으로 하는 암호 프로세서를 내장한 휴대용 저장장치.
  7. 제 1 항에 있어서,
    상기 저장매체가 낸드 플래시 메모리인 것을 특징으로 하는 암호 프로세서를 내장한 휴대용 저장장치.
  8. 제 1 항에 있어서,
    상기 저장매체가 상기 데이터에 포함된 에러의 검출 및 복원을 위한 에러 정정코드를 사용하는 것을 특징으로 하는 암호 프로세서를 내장한 휴대용 저장장치.
KR1020030043416A 2003-06-30 2003-06-30 암호 프로세서를 내장한 휴대용 저장장치 KR20050002103A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030043416A KR20050002103A (ko) 2003-06-30 2003-06-30 암호 프로세서를 내장한 휴대용 저장장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030043416A KR20050002103A (ko) 2003-06-30 2003-06-30 암호 프로세서를 내장한 휴대용 저장장치

Publications (1)

Publication Number Publication Date
KR20050002103A true KR20050002103A (ko) 2005-01-07

Family

ID=37217660

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030043416A KR20050002103A (ko) 2003-06-30 2003-06-30 암호 프로세서를 내장한 휴대용 저장장치

Country Status (1)

Country Link
KR (1) KR20050002103A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100583050B1 (ko) * 2004-08-04 2006-05-25 송유권 유에스비 토큰 키를 이용한 파일 암호화 및 복호화 방법과그를 이용한 시스템
KR100727493B1 (ko) * 2005-03-11 2007-06-13 삼성전자주식회사 휴대용 디지털 오디오/비디오 재생 장치
KR100897449B1 (ko) * 2007-05-04 2009-05-14 (주)케이티에프테크놀로지스 휴대용 단말기 및 이에 있어서 보안 기능 제공 방법
CN102081943A (zh) * 2010-04-06 2011-06-01 李勇 一种有数字水印功能的便携存储装置
US9489540B2 (en) 2012-05-04 2016-11-08 Samsung Electronics Co., Ltd. Memory controller with encryption and decryption engine
US9721113B2 (en) 2014-06-19 2017-08-01 Samsung Electronics Co., Ltd. Host controller and system-on-chip

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0750663A (ja) * 1993-08-09 1995-02-21 Fujitsu Ltd カード型暗号通信装置
KR20010048160A (ko) * 1999-11-25 2001-06-15 한승조 Pc 기반의 유.에스.비. 보안 모듈과 암호칩을 사용한정보 보호 장치
KR20010073358A (ko) * 2000-01-14 2001-08-01 이기룡 유.에스.비 포트 방식의 비밀키 보안장치
KR20010082420A (ko) * 2001-06-19 2001-08-30 서정욱 범용 직렬 버스용 암복호화 장치
KR20010106870A (ko) * 2000-05-23 2001-12-07 스마트아이엔티 주식회사 Usb를 내장한 스마트 카드 및 인증 시스템.
KR20020086444A (ko) * 2002-10-26 2002-11-18 주식회사 드림시큐리티 저장 및 연산 기능을 가지는 복합형 유에스비 드라이브
KR20030004022A (ko) * 2001-06-30 2003-01-14 네탁 테크놀로지 컴퍼니 리미티드 다기능 반도체 저장장치

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0750663A (ja) * 1993-08-09 1995-02-21 Fujitsu Ltd カード型暗号通信装置
KR20010048160A (ko) * 1999-11-25 2001-06-15 한승조 Pc 기반의 유.에스.비. 보안 모듈과 암호칩을 사용한정보 보호 장치
KR20010073358A (ko) * 2000-01-14 2001-08-01 이기룡 유.에스.비 포트 방식의 비밀키 보안장치
KR20010106870A (ko) * 2000-05-23 2001-12-07 스마트아이엔티 주식회사 Usb를 내장한 스마트 카드 및 인증 시스템.
KR20010082420A (ko) * 2001-06-19 2001-08-30 서정욱 범용 직렬 버스용 암복호화 장치
KR20030004022A (ko) * 2001-06-30 2003-01-14 네탁 테크놀로지 컴퍼니 리미티드 다기능 반도체 저장장치
KR20020086444A (ko) * 2002-10-26 2002-11-18 주식회사 드림시큐리티 저장 및 연산 기능을 가지는 복합형 유에스비 드라이브

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100583050B1 (ko) * 2004-08-04 2006-05-25 송유권 유에스비 토큰 키를 이용한 파일 암호화 및 복호화 방법과그를 이용한 시스템
KR100727493B1 (ko) * 2005-03-11 2007-06-13 삼성전자주식회사 휴대용 디지털 오디오/비디오 재생 장치
KR100897449B1 (ko) * 2007-05-04 2009-05-14 (주)케이티에프테크놀로지스 휴대용 단말기 및 이에 있어서 보안 기능 제공 방법
CN102081943A (zh) * 2010-04-06 2011-06-01 李勇 一种有数字水印功能的便携存储装置
US9489540B2 (en) 2012-05-04 2016-11-08 Samsung Electronics Co., Ltd. Memory controller with encryption and decryption engine
US9721113B2 (en) 2014-06-19 2017-08-01 Samsung Electronics Co., Ltd. Host controller and system-on-chip

Similar Documents

Publication Publication Date Title
EP1440535B1 (en) Memory encrytion system and method
JP7107670B2 (ja) ビットミキサにより暗号ラウンド鍵を生成するためのシステム及び方法
US9600421B2 (en) Systems and methods for low-latency encrypted storage
US8107621B2 (en) Encrypted file system mechanisms
EP2356771B1 (en) Low latency block cipher
JP5120830B2 (ja) 共用のハードウェアを利用して暗号文及びメッセージ認証コードを生成するための方法及びシステム
US7319751B2 (en) Data encryption
US8745411B2 (en) Protecting external volatile memories using low latency encryption/decryption
CN101520966B (zh) 并行运算模式中优化高级加密标准加解密的方法和装置
US7451288B2 (en) Word-individual key generation
US8301905B2 (en) System and method for encrypting data
KR101302799B1 (ko) 단일 명령어를 이용한 다수 모드에서의 aes 암호화 또는 암호 해독 수행
US8555084B2 (en) Data encryption device and memory card
CN109245881A (zh) 一种照片视频云端加密存储方法
JP2004226969A (ja) 暗号システム及び多様なモードを支援する方法
CN114444140A (zh) 存储器中的不可复制函数应用
US7657034B2 (en) Data encryption in a symmetric multiprocessor electronic apparatus
KR20050002103A (ko) 암호 프로세서를 내장한 휴대용 저장장치
WO2021044465A1 (ja) 暗号化装置、復号装置、コンピュータプログラム、暗号化方法、復号方法及びデータ構造
KR100494560B1 (ko) Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법
EP1629626A1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function
Alenezi et al. On the performance of AES algorithm variants
JPH0744375A (ja) 暗号化データ処理装置
CN117375806A (zh) 密码装置及其密码方法
JP2023130311A (ja) サイドチャネル攻撃から電子コンピュータを保護する方法及び電子コンピュータ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application