KR20080023595A - 메모리 카드의 암호화 장치 및 그것에 따른 데이터 기입 및독출 방법 - Google Patents

메모리 카드의 암호화 장치 및 그것에 따른 데이터 기입 및독출 방법 Download PDF

Info

Publication number
KR20080023595A
KR20080023595A KR1020060087665A KR20060087665A KR20080023595A KR 20080023595 A KR20080023595 A KR 20080023595A KR 1020060087665 A KR1020060087665 A KR 1020060087665A KR 20060087665 A KR20060087665 A KR 20060087665A KR 20080023595 A KR20080023595 A KR 20080023595A
Authority
KR
South Korea
Prior art keywords
data
predetermined
memory
keys
xor
Prior art date
Application number
KR1020060087665A
Other languages
English (en)
Other versions
KR100836758B1 (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 KR1020060087665A priority Critical patent/KR100836758B1/ko
Priority to DE102007044330A priority patent/DE102007044330A1/de
Priority to US11/853,041 priority patent/US8054972B2/en
Priority to CN2007101676702A priority patent/CN101149709B/zh
Publication of KR20080023595A publication Critical patent/KR20080023595A/ko
Application granted granted Critical
Publication of KR100836758B1 publication Critical patent/KR100836758B1/ko
Priority to US13/236,897 priority patent/US20120005488A1/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
    • 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/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • 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/34Encoding or coding, e.g. Huffman coding or error correction

Abstract

본 발명에 따른 암호화된 데이터를 메모리칩에 저장하는 메모리 카드의 암호처리 장치는: 제 1 신호(DFS)에 응답하여 소정의 데이터들을 차례로 출력하는 선입선출 메모리; 제 2 신호(EES)에 응답하여 소정의 암호화된 키들을 생성하고, 제 3 신호(XFS)에 응답하여 상기 소정의 암호화된 키들을 차례로 출력하는 암호키 생성기; 데이터 기입 동작 시에는 상기 선입선출 메모리에서 출력된 상기 소정의 데이터들과 상기 암호키 생성기에서 출력된 상기 소정의 암호키들을 각각 논리 연산하여 상기 소정의 데이터들을 차례로 암호화하여 메모리 인터페이스에 전송하는 논리 연산기; 및 상기 데이터 기입 동작 시에 기입 명령과 기입 어드레스에 응답하여 상기 제 1 내지 제 3 신호를 생성하는 제어회로를 포함하되, 상기 제 2 신호는 상기 기입 명령과 동시에 생성된다.
Figure P1020060087665
FIFO, XOR, DES, ECC

Description

메모리 카드의 암호화 장치 및 그것에 따른 데이터 기입 및 독출 방법{ CRYTO DEVICE OF MEMORY CARD AND DATA WRITING AND READING METHOD USING ITS}
도 1은 본 발명에 따른 암호처리 장치를 구비한 메모리 카드 시스템을 보여 주고 있다.
도 2는 본 발명에 따른 암호처리장치에 대한 실시예이다.
도 3은 도 2의 암호엔진에 대한 실시예이다.
도 4는 본 발명의 암호처리장치를 이용하여 데이터를 기입하는 방법을 보여주고 있다.
도 5는 데이터 기입시 플래시 메모리의 타이밍도와 그에 따른 암호처리장치의 동작상태를 보여주는 실시예이다.
도 6은 본 발명의 암호처리장치를 이용하여 데이터를 독출하는 방법을 보여주고 있다.
도 7은 데이터 독출시 플래시 메모리의 타이밍도와 그에 따른 암호처리장치의 동작상태를 보여주는 실시예이다.
*도면의 주요부분에 대한 부호의 설명*
10: 메모리 카드 20: 호스트
100: 제어칩 200: 플래시 메모리
150: CPU 130: 암호처리장치
110: 호스트 인터페이스 140: 플래시 인터페이스
120: 버퍼 메모리 132: 선입선출 메모리
133: 암호키 발생기 134: XOR
135: ECC 131: 제어회로
136: 멀티 플렉서 137: 암호 엔진
138: XOR키 레지스터 139: XOR키 선입선출 메모리
본 발명은 메모리 카드에 관한 것으로, 좀 더 구체적으로 메모리 카드의 암호처리 장치 및 그것을 이용한 데이터 기입 및 독출 방법에 관한 것이다.
디지털 카메라,PDA, 휴대용 오디오, 휴대전화, 퍼스널 컴퓨터 등의 디지털기기에서 정보의 기록 및 판독에 메모리 카드가 이용되고 있다. 메모리 카드에는 플래시 메모리와 제어칩 등 2개의 칩으로 구성되어 있다. 최근 메모리 카드에 탑재되는 플래시 메모리는 대용량화되고 있다.
일반적인 메모리 카드는 디지털기기로부터의 데이터를 그대로 플래시 메모리에 저장한다. 그러나 제어칩과 플래시 메모리사이의 버스를 모니터링 함으로 플래시 메모리를 덤핑할 수 있어 데어터가 노출되기 쉽다. 이 때문에 최근의 제어칩은 암호처리장치를 구비하여 데이터를 암호화하여 플래시 메모리에 저장하고 있다.
종래의 암호처리장치는 데이터를 암호화하여 저장하고자 할 때, 소정의 데이터를 먼저 암호화시킨 후 이를 소정단위로 선입선출 메모리에 저장한다. 선입선출 메모리에 저장된 데이터의 ECC 값을 계산하여 플래시 인터페이스를 통하여 플래시 메모리에 저장한다. 또한 암호화된 데이터를 복호화하고자 할 때는, 플래시 인터페이스가 플래시 메모리로부터 암호화된 데이터를 읽어와 이를 선입선출 메모리에 저장한다. CPU는 선입선출 메모리에 저장된 데이터를 읽어와 내부 메모리(예를 들어 RAM 혹은 EEPROM, NOR Flash)에 전달한다. 이때 암호처리 장치는 내부 메모리에 저장된 데이터를 복호화하여 원하는 데이터를 얻게 된다.
그런데 종래의 암호처리장치는 데이터를 암호화하거나 복호화할 때 시간이 많이 걸리고, CPU에 많은 부담을 주고 있다.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은 보다 빠르게 데이터에 대한 암호처리를 할 수 있는 메모리 카드의 암호처리 장치 및 그것을 이용한 데이터 기입 및 독출 방법을 제공하는데 있다.
본 발명에 따른 암호화된 데이터를 메모리칩에 저장하는 메모리 카드의 암호처리 장치는: 제 1 신호(DFS)에 응답하여 소정의 데이터들을 차례로 출력하는 선입선출 메모리; 제 2 신호(EES)에 응답하여 소정의 암호화된 키들을 생성하고, 제 3 신호(XFS)에 응답하여 상기 소정의 암호화된 키들을 차례로 출력하는 암호키 생성기; 데이터 기입 동작 시에는 상기 선입선출 메모리에서 출력된 상기 소정의 데이 터들과 상기 암호키 생성기에서 출력된 상기 소정의 암호키들을 각각 논리 연산하여 상기 소정의 데이터들을 차례로 암호화하여 메모리 인터페이스에 전송하는 논리 연산기; 및 상기 데이터 기입 동작 시에 기입 명령과 기입 어드레스에 응답하여 상기 제 1 내지 제 3 신호를 생성하는 제어회로를 포함하되, 상기 제 2 신호는 상기 기입 명령과 동시에 생성된다.
이 실시예에 있어서, 상기 논리 연산기와 상기 메모리 인터페이스 사이에 통신되는 상기 소정의 암호화된 데이터에 대한 오류를 검출하기 위해 에러검출회로를 더 포함한다.
이 실시예에 있어서, 상기 에러검출회로는 ECC(Error Correcting Code)을 이용한다.
이 실시예에 있어서, 상기 암호키 생성기는 DES(Data Encryption Standard)을 이용한다.
이 실시예에 있어서, 상기 논리 연산기는 XOR 연산을 한다.
이 실시예에 있어서, 상기 암호키 생성기는 상기 제 2 신호에 응답하여 초기화 키들을 입력받아 암호화된 XOR키들을 생성한다.
이 실시예에 있어서, 상기 암호키 생성기는 상기 초기화 키들이 동일하면 동일한 상기 암호화된 XOR키들을 생성한다.
이 실시예에 있어서, 상기 소정의 데이터를 암호화하여 상기 소정의 암호화된 데이터를 만드는데 사용된 상기 초기화 키들은 상기 소정의 암호화된 데이터를 복호화할 때 이용된다.
이 실시예에 있어서, 상기 소정의 데이터를 암호화하여 상기 소정의 암호화된 데이터를 만드는데 사용된 상기 초기화 키들을 저장하는 메모리를 더 포함한다.
이 실시예에 있어서, 상기 암호키 발생기는 상기 제 2 신호에 응답하여 상기 초기화 키들을 입력받아 상기 소정의 암호화된 XOR키를 생성한 후에, 상기 초기화된 키들을 입력받지 아니하고, 상기 소정의 XOR키를 입력으로 받아 계속적으로 상기 소정의 암호화된 XOR키들을 생성한다.
이 실시예에 있어서, 상기 암호키 발생기는 상기 소정의 암호화된 XOR키들을 저장하는 레지스터; 및 상기 레지스터로부터 상기 XOR키들을 임시로 저장하며, 상기 제 3 신호에 응답하여 상기 XOR키들을 차례로 출력하는 XOR키 선입선출메모리를 포함한다.
본 발명의 암호화된 데이터를 메모리칩에 저장하는 메모리 카드의 또다른 암호처리 장치는: 제 1 신호(EES)에 응답하여 소정의 암호화된 키들을 생성하고, 제 2 신호(XFS)에 응답하여 상기 소정의 암호화된 키들을 차례로 출력하는 암호키 생성기; 데이터 독출 동작 시에는 메모리 인터페이스로부터 전달된 소정의 암호화된 데이터들과 상기 암호키 생성기에서 출력된 상기 소정의 암호키들을 각각 논리 연산하여 상기 소정의 암호화된 데이터들을 차례로 복호화하는 논리 연산기; 및 상기 데이터 독출 동작 시에 독출 명령과 독출 어드레스에 응답하여 상기 제 1 및 제 2 신호를 생성하는 제어회로를 포함하되, 상기 제 1 신호는 상기 기입 명령과 동시에 생된다.
본 발명의 암호화된 데이터를 메모리칩에 저장하는 메모리 카드의 또 다른 암호처리 장치는: 제 1 신호(DFS)에 응답하여 소정의 데이터들을 차례로 출력하는 선입선출 메모리; 제 2 신호(EES)에 응답하여 소정의 암호화된 키들을 생성하고, 제 3 신호(XFS)에 응답하여 상기 소정의 암호화된 키들을 차례로 출력하는 암호키 생성기; 데이터 기입 동작 시에는 상기 선입선출 메모리에서 출력된 상기 소정의 데이터들과 상기 암호키 생성기에서 출력된 상기 소정의 암호키들을 각각 논리 연산하여 상기 소정의 데이터들을 차례로 암호화하여 메모리 인터페이스에 전송하고, 데이터 독출 동작 시에는 메모리 인터페이스로부터 전달된 소정의 암호화된 데이터들과 상기 암호키 생성기에서 출력된 상기 소정의 암호키들을 각각 논리 연산하여 상기 소정의 암호화된 데이터들을 차례로 복호화하여 상기 선입선출 메모리에 전송하는 논리 연산기; 및 상기 데이터 기입 동작 시에 기입 명령과 기입 어드레스에 응답하여 상기 제 1 내지 제 3 신호를 생성하고, 상기 데이터 독출 동작 시에 독출 명령과 독출 어드레스에 응답하여 상기 제 2 및 제 3 신호를 생성하는 제어회로를 포함하되, 상기 제 2 신호는 상기 기입 명령 혹은 상기 독출 명령과 동시에 생성된다.
이 실시예에 있어서, 상기 메모리 칩은 플래시 메모리이다.
이 실시예에 있어서, 상기 메모리 카드는 SIM(Subscribe Identity Module) 카드이다.
본 발명의 메모리 카드의 메모리 칩에 암호키를 이용하여 데이터를 암호화하거나 복호화하는 데이터 기입 및 독출하는 방법은: a) 데이터 기입 명령과 동시에 소정의 암호화된 XOR 키들을 생성하는 단계; b) 상기 소정의 데이터들을 상기 소정 의 암호화된 XOR 키들과 차례로 XOR연산하여 암호화시키는 단계; c) 상기 소정의 암호화된 데이터들을 상기 메모리 칩에 저장하는 단계 d) 데이터 독출 명령과 동시에 상기 소정의 암호화된 XOR 키들을 생성하는 단계; e) 상기 메모리칩에 저장된 상기 소정의 암호화된 데이터들을 독출하여 상기 소정의 암호화된 XOR 키들과 차례로 XOR 연산하여 복호화시키는 단계; 및 f) 상기 복호화된 소정의 데이터를 외부장치 혹은 상기 메모리 카드의 내부 장치로 전달하는 단계를 포함한다.
이 실시예에 있어서, 상기 a) 단계에서 데이터를 상기 메모리 칩에 기입할 때, 상기 외부장치는 상기 메모리 카드에 데이터를 전송하고, 상기 메모리 카드는 상기 데이터 기입 명령과 기입 어드레스를 만드는 단계를 포함한다.
이 실시예에 있어서, 상기 d) 단계에서 상기 메모리 카드는 데이터 독출 명령 및 데이터 독출 어드레스를 만드는 단계를 포함한다.
이 실시예에 있어서, 상기 a) 단계에서 데이터를 상기 메모리 칩에 기입할 때, 상기 외부장치는 상기 메모리 카드에 데이터 기입 명령, 기입 어드레스 및 데이터를 전송하는 단계을 포함하고, 상기 d)단계에서 데이터를 상기 메모리칩으로부터 독출할 때, 상기 외부장치는 상기 메모리 카드에 데이터 독출 명령 및 독출 어드레스를 전송하는 단계를 포함한다.
이 실시예에 있어서, 상기 a) 단계에서 상기 데이터를 소정의 데이터 단위로 구분하여 저장하는 단계를 포함한다.
이 실시예에 있어서, 상기 메모리 카드는 상기 소정의 데이터를 저장하는 선입선출 메모리를 포함한다.
이 실시예에 있어서, 상기 메모리 카드는 암호키 발생기를 포함하되, 상기 암호키 발생기는 상기 외부 장치로부터 데이터 기입 명령과 독출 명령을 전송받았을 때, 초기화 키들을 입력받아 상기 소정의 암호화된 XOR 키들을 생성하고, 여기서 초기화 키들은 상기 메모리 카드의 중앙처리장치에서 제공된다.
이 실시예에 있어서, 상기 암호키 발생기는 초기화 키들이 동일하면 동일한 상기 소정의 암호화된 XOR 키들을 생성한다.
이 실시예에 있어서, 상기 소정의 데이터를 암호화하여 상기 소정의 암호화된 데이터를 만드는데 사용된 상기 초기화 키들은 상기 소정의 암호화된 데이터를 복호화할 때 이용된다.
이 실시예에 있어서, 상기 메모리 카드는 상기 소정의 데이터를 암호화하여 상기 소정의 암호화된 데이터를 만드는데 사용된 상기 초기화 키들을 저장하는 메모리를 더 포함한다.
이 실시예에 있어서, 상기 암호키 발생기는 상기 초기화 키들을 입력받아 상기 소정의 암호화된 XOR키를 생성한 후에는 상기 초기화된 키들을 더이상 입력받지 않고, 상기 생성된 소정의 XOR키를 입력으로 받아 계속적으로 상기 소정의 암호화된 XOR키들을 생성한다.
이 실시예에 있어서, 상기 암호키 발생기는 상기 소정의 암호화된 XOR키들을 저장하는 XOR키 선입선출 메모리를 포함한다.
이 실시예에 있어서, 상기 메모리 카드는 제어회로를 포함하되, 상기 제어회로는 상기 데이터 기입 명령과 상기 기입 어드레스를 전달받아 제 1 신호를 생성하 며, 상기 b)단계에서는 상기 제 1 신호에 응답하여 상기 선입선출 메모리로부터 상기 소정의 데이터를 출력하고 상기 제 1 신호에 응답하여 상기 XOR키 선입선출메모리로부터 상기 소정의 암호화된 XOR키를 출력하여 XOR 연산한다.
이 실시예에 있어서, 상기 메모리 카드는 상기 소정의 암호화된 데이터를 상기 메모리칩에 전송할 때 발생하는 데이터 오류를 검출하고 정정하는 오류검출회로를 더 포함하되, 상기 c)단계는 상기 오류검출회로로부터 상기 소정의 암호화된 데이터에 해당하는 ECC(Error Correcting Code)값을 계산하여 저장하는 단계를 더 포함한다.
이 실시예에 있어서, 상기 메모리 카드는 메모리 인터페이스를 포함하되, 상기 메모리 인터페이스는 상기 데이터 기입 명령 및 상기 기입 어드레스에 따라 상기 메모리 칩에 상기 소정의 암호화된 데이터를 저장하며, 상기 메모리 인터페이스에서 제 1 소정의 XOR키에 의해 암호화된 상기 제 1 소정의 암호화된 데이터를 상기 메모리칩에 저장하는 동안에, 상기 a)단계에서는 제 2 소정의 XOR 키를 생성하고, 상기 c)단계에서는 상기 제 2 소정의 XOR 키를 이용하여 제 2 소정의 암호화된 데이터를 생성한다.
이 실시예에 있어서, 상기 d) 단계에서 상기 메모리 인퍼페이스가 상기 데이터 독출 명령과 상기 독출 어드레스에 따라 상기 메모리 칩으로부터 암호화된 데이터를 독출하여, 상기 소정의 암호화된 데이터들로 저장하는 단계를 포함한다.
이 실시예에 있어서, 상기 e) 단계에서 상기 메모리 인터페이스에 저장된 상기 소정의 암호화된 데이터들을 전송할 때, 상기 에러검출회로의 저장된 ECC값에 따라 데이터 전송 에러를 정정하는 단계를 더 포함한다.
이 실시예에 있어서, 상기 제어회로는 상기 데이터 독출 명령과 상기 독출 어드레스를 전달받아 제 2 신호를 생성하며, 상기 e)단계에서는 상기 제 2 신호에 응답하여 상기 소정의 암호화된 데이터를 출력하고 상기 제 2 신호에 응답하여 상기 XOR키 선입선출메모리로부터 상기 소정의 암호화된 XOR키를 출력하여 XOR 연산한다.
이 실시예에 있어서, 상기 f) 단계에서 상기 복호화된 소정의 데이터들을 상기 선입선출 메모리에 저장하는 단계를 포함한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예를 첨부된 도면을 참조하여 설명한다.
도 1은 본 발명에 따른 암호처리 장치를 구비한 메모리 카드 시스템을 보여 주고 있다. 메모리 카드 시스템은 메모리 카드(10) 및 호스트(20)을 포함하고 있다.
호스트(20)는 컴퓨터 시스템, PDA(Pesonal Digital Assistant), 디지털 카메라, 핸드폰, 카드 리더와 같은 다양한 장치일 수 있다. 메모리 카드(10) 호스트(20)으로부터 전기적으로 연결되거나 혹은 분리된다. 호스트(20)는 메모리 카드(10)에 데이터 독출(read), 기입(write) 및 소거(erase) 등의 명령과 그에 따른 어드레스, 데이터 및 제어신호들을 제공한다.
메모리 카드(10)는 호스트(20)의 명령에 응답해서 데이터를 플래시 메모 리(200)에 기입하거나 독출하거나 소거한다. 메모리 카드(10)는 기입, 독출 또는 소거 동작을 수행하는 동안 비지신호를 준다.
도 1을 참조하면, 메모리 카드(10)는 제어칩(100) 및 플래시 메모리(200)를 포함하고 있다. 제어칩(100)은 호스트(20)와 플래시 메모리(200) 사이의 데이터의 송수신을 제어한다. 제어칩(100)은 호스트 인터페이스(110), 버퍼 메모리(120), 암호처리장치(130), 플래시 인터페이스(140) 및 CPU(150)를 포함하고 있다.
호스트 인터페이스(110)는 호스트(20)와 메모리 카드(10) 사이의 인터페이스을 돕는 장치이다. 호스트 인터페이스(110)는 호스트(20)로부터 명령어, 어드레스,및 제어 신호 등을 전달받아 CPU(150)에 전달한다. 여기서 명령어는 기입, 독출 및 소거 명령어일 수 있다. 호스트 인터페이스(110)는 전기적인 연결이 다양한 인터페이스 방식들(예를 들면, PCMCIA, USB, PS2 등)을 이용할 수 있다.
버퍼 메모리(120)는 플래시 메모리(200)에 기입될 혹은 플래시 메모리(200)로부터 독출된 데이터를 임시로 저장한다. 데이터 기입시, 버퍼 메모리(120)는 호스트 인터페이스(110)으로부터 기입할 데이터를 전달받는다. 이 버퍼 메모리(120)는 SRAM(Static Random Access Memory)일 수 있다.
암호처리장치(130)는 버퍼 메모리(120)에 저장된 데이터를 암호화하여 플래시 인터페이스(140)에 전달한다. 또한 암호처리장치(130)는 플래시 메모리(200)에서 독출한 데이터를 복호화하여 버퍼 메모리(120)에 전달한다.
플래시 인터페이스(140)는 제어칩(100)과 플래시 메모리(200)사이의 인터페이스를 돕는 장치이다. 플래시 인터페이스(140)는 암호처리장치(130)에 의해 암호 화된 데이터들을 플래시 메모리(200)로 전송한다. 또한 플래시 인터페이스(140)는 플래시 메모리(200)으로부터 독출된 데이터들을 암호처리장치(130)에 전송한다.
CPU(150)는 중앙처리장치로서, 제어칩(100)의 동작을 제어한다. CPU(150)는 호스트 인터페이스(110)로부터 전달받은 명령어, 어드레스, 및 제어신호에 따라 호스트 인터페이스(110), 버퍼 메모리(120), 암호처리장치(130)을 제어한다.
도 2는 본 발명에 따른 암호처리장치(130)에 대한 실시예이다. 도 2를 참조하면, 암호처리장치(130)는 제어회로(131), 선입선출 메모리(132), 암호키 발생기(133), XOR 연산기(134) 및 ECC(135)을 포함하고 있다.
제어회로(131)는 CPU(150)로부터 데이터 기입, 독출 및 소거에 해당하는 명령어들 및 어드레스를 전달받아 제어신호들(DFS,EES,XFS,ES,FIS)을 생성한다. 제어회로(131)는 생성된 제어신호들(DFS,EES,XFS,ES,FIS)에 따라 선입선출 메모리(132), 암호키 발생기(133), ECC(135), 플래시 인터페이스(140)를 제어한다.
선입선출 메모리(132)는 가장 먼저 입력된 데이터를 우선 출력할 수 있는 저장 장치이다. 선입선출 방법은 선입 후출 목록을 유지함으로써 동작한다. 여기서 선입선출 메모리(132)는 복수의 m 바이트(byte) 레지스터들(도시되어 있지 않음)을 포함하고 있다. 선입선출 메모리(132)는 기입동작시 제어신호(DFS)에 응답하여 버퍼 메모리(120)로부터 m 바이트 데이터들(D1,D2,....)로 차례로 전달받고, 전달된 m 바이트 데이터들(D1,D2,...)을 차례로 XOR 연산기(134)에 전송한다. 또한 선입선출 메모리(132)는 독출 동작시 제어신호(DFS)에 응답하여 XOR 연산기(134)로부터 m 바이트 데이터들(D1,D2,....)을 차례로 전달받아, 전달된 m 바이트 데이터 들(D1,D2,....)을 차례로 버퍼 메모리(120)에 전송한다. 여기서 기입동작 및 독출동작시 사용된 제어신호(DFS)는 제어회로(131)로부터 전달된 신호이다. 제어회로(131)는 CPU(150)로부터 플래시 메모리(200)의 데이터 독출 및 기입 명령을 전달받아 제어신호(DFS)를 생성하여 선입선출 메모리(132)에 전송한다.
암호키 발생기(133)는 제어신호(EES)에 응답하여 m 바이트의 암호화된 XOR키들(XK1,XK2,....)을 생성한다. 좀더 자세하게, 암호키 발생기(133)는 CPU(150)로부터 암호키(EK)와 마스터 XOR키(MK)을 입력받아 복수의 암호화된 XOR키들(XK1,XK2,....)을 생성한다. CPU(150)로부터 동일한 암호키(EK)와 동일한 마스터 XOR키(MK)를 입력받으면, 암호키 발생기(133)는 동일한 암호화된 XOR키들(XK1,XK2,.....)을 생성한다. 암호키 발생기(133)는 복수의 암호화된 XOR키들(XK1,XK2,....)을 저장할 수 있는 레지스터들(도시되어 있지 않음)을 포함하고 있다.
암호키(EK)와 마스터 XOR키(MK)는 CPU(150)에서 생성되거나, 별도의 초기화키 생성기(도시되어 있지 않음)을 통하여 생성될 수 있다. 소정의 데이터를 암호화할 때 사용된 암호키(EK)와 마스터 XOR키(MK)는 암호화된 소정의 데이터를 복호화할 때도 동일하게 사용된다. 이를 위해, CPU(150) 혹은 초기화키 생성기는 소정의 데이터를 암호화할 때 암호키 발생기(133)에 전달된 암호키(EK)와 마스터 XOR키(MK)을 저장해 둔다. 그 후, 암호화된 소정의 데이터를 복호화할 때, CPU(150) 혹은 초기화키 생성기는 저장된 암호키(EK)와 마스터 XOR키(MK)을 암호키 발생기(133)에 전달한다.
XOR 연산기(134)는 데이터 기입시 선입선출 메모리(132)으로부터 전달된 데이터들(D1,D2,.....)과 암호키 발생기(133)에서 생성된 암호화된 XOR키들(XK1,XK2,...)을 차례로 XOR 연산하여 플래시 인터페이스(140)에 전송한다. 이때 XOR 연산된 값은 소정의 암호화된 데이터들(ED1,ED2,....)이 된다. 여기서 암호화된 데이터들(ED1,ED2,....)은 다음 수식을 만족한다.
Figure 112006065583827-PAT00001
또한 XOR 연산기(134)는 데이터 독출시 플래시 인터페이스(140)로부터 전달된 암호화된 데이터들(ED1,ED2,....)과 암호키 발생기(133)에서 생성된 XOR키들(XK1,XK2,...)을 XOR 연산하여 선입선출 메모리(132)에 전송한다. 여기서, 암호키 발생기(133)에서 생성된 XOR키들(XK1,XK2,...)은 소정의 데이터들(D1,D2,...)을 암호화할 때 사용되었던 XOR키들(XK1,XK2,.....)과 동일하다. 왜냐하면, CPU(150) 혹은 초기화키 발생기는 데이터 기입 혹은 독출시 동일한 암호키(EK) 및 마스터 XOR키(MK)을 암호키 발생기(133)에 전달하기 때문이다. 따라서 XOR 연산된 값은 복호화된 데이터들(D1,D2,...)이 된다. 여기서 복호화된 데이터들(D1,D2,...)는 XOR 연산 성질에 의해 다음 수식을 만족한다.
Figure 112006065583827-PAT00002
ECC(135)는 플래시 인터페이스(140)와 XOR 연산기(134)사이에 연결되어 있어 암호화된 데이터들(ED1,ED2,....)이 전송될 때 발생하는 전송 오류를 수정하여 준다. ECC(135)는 암호화된 데이터들(ED1,ED2,...)의 에러정정코드(Error Correcting Code) 값을 계산하여 플래시 인터페이스(140)에 저장해 둔다. ECC(135)는 데이터 독출시 플래시 인터페이스(140)에 저장된 에러정정코드 값과 비교하여 데이터 전송 오류를 수정하게 된다. ECC(135)는 데이터 기입 및 독출시 제어신호(ES)에 응답하여 동작을 시작한다.
한편 ECC(135)는 전송중인 암호화된 데이터들(ED1,ED2,...)에 대한 오류를 수정하지 아니하고, 오류만 감지할 수도 있다. 그 과정은 다음과 같다. ECC(135)는 암호화된 데이터들(ED1,ED2,...) 중에서 오류가 있는 비트를 기억하고 있다. 암호화된 데이터들(ED1,ED2,....)을 암호키들(XK1,XK2,....)로 XOR 연산하여 복호화시킨다. 이때 복호화된 데이터들(D1',D2',...)은 오류가 있다. CPU(150)는 ECC(135)로부터 오류가 있는 비트를 전달받아 복호화된 데이터들(D1',D2',....)에서 해당비트를 수정하게 된다. 여기서 해당비트 오류는 XOR 연산 특성에 따라 논리 "0"을 논리 "1"로 혹은 논리 "1"을 논리 "0"으로 수정한다.
본 발명의 암호처리장치(130)는 플래시 메모리(200)에 데이터를 기입 및 독출할 때, 기입 및 독출 명령를 전달함과 동시에 암호키들(XK1,XK2,....)을 생성하게 한다. 암호처리장치(130)는 데이터 기입시 생성된 암호키들(XK1,XK2)과 데이터들(D1,D2,...)을 XOR 연산하여 암호화하여 플래시 인터페이스(140)에 전송한다. 또한, 암호처리장치(130)는 데이터 독출시 데이터 기입시 사용된 동일한 암호키들(XK1,XK2,...)과 암호화된 데이터들(ED1,ED2,....)을 XOR 연산하여 복호화하여 버퍼 메모리(120)에 전송한다. 따라서, 데이터들(D1,D2,....)을 암호화하거나, 암호화된 데이터들(ED1,ED2,....)을 복호화하는 시간이 종래기술보다 줄어들게 된다.
종래의 암호처리장치를 이용한 메모리 카드는 소정의 데이터를 암호화하거나 암호화된 소정의 데이터를 복호화하기 위해 버퍼 메모리를 중간 매개로 사용하였다. 그러나 본 발명의 암호처리장치(130)는 소정의 데이터를 암호화하거나 복호화할 때 버퍼 메모리를 이용할 필요가 없어졌다. 따라서 본 발명의 암호처리장치(130)의 이용한 메모리 카드는 종래의 메모리 카드보다 CPU에서 처리해야 할 일이 줄어들게 된다.
도 3은 도 2의 암호키 발생기(133)에 대한 실시예이다. 도 3을 참조하면, 암호키 발생기(133)는 멀티플렉서(136), 암호엔진(137), XOR키 레지스터(138) 및 XOR키 선입선출 메모리(139)를 포함하고 있다.
도 3을 참조하면, 암호키 발생기(133)는 CPU(150)로부터 전달된 암호키(EK)와 마스터 XOR키(MK)를 입력받아, 복수의 암호화된 XOR키들(XK1,XK2,....)을 생성한다.
멀티플렉서(136)은 CPU(150)로부터 전달된 마스터 XOR키(MK)와 생성된 XOR키들(XK1,XK2,...)중에서 하나를 선택하여, 암호엔진(137)에 전달한다.
암호엔진(137)은 CPU에서 전달된 암호키(EK)와 멀티 플렉서(136)에서 전달된 키를 입력받아, 소정의 암호화된 XOR키들(XK1,XK2,....)을 차례로 생성해 낸다. 암호엔진(137)은 DES(Data Encryption Standard)을 이용할 수 있다.
여기서 DES는 IBM에서 개발된 암호화 도구로 1974년 미국의 NBS(National Bureau of Standard)에서 채택된 공개암호시스템이다. DES 알고리즘은 주로 자리바꿈(Permutation), 치환(Substitution)과 modulo 연산(XOR)을 사용하여 구성된다. 시스템의 안전성은 전적으로 키에 의존한다. 즉, 키를 모르면 암호문에서 평문을 유추할 수 없으며 비록 암호문과 그에 대한 평문을 획득했다 할지라도 그로부터 키값을 유추할 수 없다. 일명 해밍함수라고 하는 일방향 함수가 적용된다. y=f(x)에서 x로부터 y를 구할 수는 있지만 y로부터 x는 구할 수 없음을 뜻한다. 즉, 키를 이용하여 암호문을 구할 수 있지만 암호문으로부터 키를 모르면 평문을 구하기 힘든 함수를 만드는 것이다.
XOR키 레지스터(138)는 암호엔진(137)에서 생성된 암호화된 XOR키들(XK1,XK2,...)을 저장해 둔다.
XOR키 선입선출 메모리(139)는 XOR키 레지스터(138)에 저장된 암호화된 XOR키들(XK1,XK2,...)를 임시로 저장해 둔다. XOR키 선입선출 메모리(139)는 제어신호(EES)에 응답하여 XOR키들(XK1,XK2,....)을 XOR 연산기(134)로 차례로 전송한다.
도 4는 본 발명의 암호처리장치(130)를 이용하여 데이터를 기입하는 방법을 보여주고 있다. 도 5는 데이터 기입시 플래시 메모리의 타이밍도와 그에 따른 암호처리장치(130)의 동작상태를 보여주는 실시예이다. 도 4와 도5을 참조하면, 플래시 메모리(200)에 데이터를 기입하는 방법은 다음과 같다.
S10단계에서는, 데이터 기입 명령과 동시에 암호화된 소정의 XOR키들을 생성한다. 데이터 기입시 CPU(150)는 제어회로(131)에 데이터 기입 명령 및 어드레스를 제어회로(131)에 전송하고, 호스트 인터페이스(110)로부터 버퍼 메모리(120)로 기입할 데이터를 전송하도록 제어한다. CPU(150)는 버퍼 메모리(120)에 전송된 데이터를 소정의 단위로 선입선출 메모리(132)에 저장한다. 또한 CPU(150)는 기입할 데이터를 암호화하는데 사용되는 위한 키들(EK,MK)을 암호키 발생기(133)에 전송한다. 이때 CPU(150)는 전송된 키들(EK,MK)을 레지스터(도시되어 있지 않음)에 저장해 둔다.
암호키 발생기(133)는 CPU(150)으로부터 키들(EK,MK)을 입력받아, 소정의 암호화된 XOR키들(XK1,XK2,....)을 생성한다. 도 5를 참조하면, 엑스오와키들(XK1,XK2,....)은 단계별로 생성되고 있다. 암호키 발생기(133)는 플래시 메모리(200)에 어드레스를 전달하기까지 소정의 암호화된 XOR키들(XK1,...,XKn)을 생성한다. 생성된 XOR키들(XK1,...XKn)은 XOR 선입선출 메모리(139)에 저장된다. 이때 XOR 연산기(134)는 제어신호(DFS)에 응답하여 선입선출 메모리(132)로부터 소정의 데이터들(D1,...Dn)을 전송받고, 제어신호(XFS)에 응답하여 XOR 선입선출 메모리(139)로부터 소정의 XOR키들(XK1,...XKn)을 전송받아 각각 차례로 XOR 연산하여 소정의 암호화된 데이터들(ED1,...EDn)을 생성한다. 생성된 암호화된 데이터들(ED
호(FIS)에 응답하여, 전송된 소정의 암호화된 데이터(ED1,...,EDn)을 플래시 메모리(200)에 저장한다.
도 5를 참조하면, 소정의 암호화된 데이터(ED1)를 플래시 메모리(200)에 저장하면서, 암호키 발생기(133)는 XOR키(XK(n+1),....XK(2n))을 생성한다. 소정의 암호화된 데이터(ED(n+1),....ED(2n))을 플래시 메모리(200)에 저장하는 동안에, XOR 연산기(134)는 데이터(D(n+1),...D(2n))와 XOR키(XK(n+1),...XK(2n))을 XOR 연산하여, 암호화된 데이터(D(n+1),...D(2n))을 생성한다. 생성된 암호화된 데이터(ED(n+1),...ED(2n))을 플래시 메모리(200)에 저장하면서, 암호키 발생기(133)는 XOR키(XK(2n+1),....XK(3n))을 생성한다. 그 후 선입선출 메모리(132)의 데이터(D(2n+1)....D(3n))와 XOR키(XK(2n+1),...XK(3n))을 XOR 연산하여, 암호화된 데이터(ED(2n+1),...ED(3n))을 생성한다. 이와 같이, 본 발명의 암호처리장치(130)는 암호화된 데이터들(ED1,ED2,....)을 플래시 메모리(200)에 저장하면서, 암호키 발생기(133)는 XOR키들(XK2,XK3,.....)을 생성하고, 새로운 암호화된 데이터들(ED2,ED3,.....)을 생성한다.
도 5에서 XOR키들(XK1,XK2,...)은 암호화된 데이터 전송한 다음 생성되고 있으나 이는 실시예에 불과하다. 암호키 발생기(133)는 데이터 기입 명령시 XOR키들(XK1,XK2,...)을 다수로 생성해 놓고 XOR키 선입선출 메모리(139)에 저장에 둘 수 있다.
S12단계에서는 소정의 데이터를 소정의 XOR키와 XOR 연산하여 암호화시킨다. S10 단계에서 생성된 암호화된 XOR키들(XK1,XK2,...)이 생성되면, 제어회로(131)는 제어신호(DFS)와 제어신호(XFS)을 생성하여 각각 선입선출 메모리(132)와 XOR키 선입선출 메모리(139)에 전송한다. 제어신호(DFS)에 응답하여, 선입선출 메모리(132)는 소정의 데이터를 XOR 연산기(134)에 전송한다. 제어신호(XFS)에 응답하여, XOR키 선입선출 메모리(139)는 소정의 XOR키를 XOR 연산기(134)에 전송한다. XOR 연산기(134)는 전달된 데이터와 XOR키를 XOR 연산하여 소정의 암호화된 데이터를 생성한다.
S14단계에서는 암호화된 데이터를 플래시 메모리(200)에 저장한다. S12단계에서 소정의 암호화된 데이터들(ED1,ED2,....)은 플래시 메모리(200)에 저장된다. 도 1의 플래시 메모리(200)는 제어칩(100)과 분리되어 있으나, 반드시 분리될 필요는 없다. 메모리 카드(10)는 한개의 칩 안에 플래시 메모리(200)를 포함할 수도 있다.
도 6은 본 발명의 암호처리장치(130)를 이용하여 데이터를 독출하는 방법을 보여주고 있다. 도 7은 데이터 독출시 플래시 메모리의 타이밍도와 그에 따른 암호처리장치(130)의 동작상태를 보여주는 실시예이다. 도 6과 도 7을 참조하면, 플래시 메모리(200)에서 데이터를 독출하는 방법은 다음과 같다.
S20단계에서는 데이터 독출 명령과 동시에 암호화된 소정의 XOR키들(XK1,XK2,...)를 생성한다. 데이터 독출시 CPU(150)는 제어회로(131)에 데이터 독출 명령 및 어드레스를 제어회로(131)에 전송한다. 또한 CPU(150)는 기입할 데이터를 암호화하는데 사용되는 위한 키들(EK,MK)을 암호키 발생기(133)에 전송한다. 이때 CPU(150)는 전송된 키들(EK,MK)은 데이터들(D1,D2,.....)을 암호화할 때 사용 되었던 것이다. 따라서, 암호화할 때 사용된 키들(EK,MK)이 복호화할 때도 사용된다. 암호키 발생기(133)는 CPU(150)으로부터 암호키(EK),마스터 XOR키(MK)을 입력받아, 복수의 암호화된 XOR키들(XK1,XK2,....)을 생성한다. 도 7을 참조하면, 데이터 독출 명령이 입력되고 나서, 데이터가 독출될 때까지 XOR키들(XK1,XK2,......) 생성할 충분한 시간이 있다. 생성된 XOR키들(XK1,XK2,....)은 XOR키 선입선출 메모리(139)에 저장된다.
S22단계에서는 암호화된 소정의 데이터를 소정의 XOR키와 XOR 연산하여 복호화시킨다. 제어회로(131)는 CPU(150)의 독출 명령 및 어드레스를 전달받아 제어신호(FIS)와 제어신호(XFS)을 생성한다. 제어신호(FIS)에 응답하여, 플래시 인터페이스(140)는 도7에 보았듯이 소정의 암호화된 데이터들(ED1,ED2,....)을 차례로 XOR 연산기(134)에 전송한다. 또한 제어신호(XFS)에 응답하여, XOR키 선입선출 메모리(139)에 저장된 소정의 암호화된 XOR키들(XK1,XK2,....)을 차례로 XOR 연산기(134)에 전송하다. XOR 연산기(134)는 전송된 데이터들(ED1,ED2,.....)과 XOR키들(XK1,XK2,....)을 각각 차례로 XOR 연산하여 암호화된 데이터들(ED1,ED2,.....)을 복호화한다. 복호화된 데이터들(D1,D2,....)는 선입선출 메모리(132)로 전송된다.
S24단계에서는 복호화된 데이터를 외부장치로 전달한다. CPU(150) S22단계에서 선입선출 메모리에 저장된 데이터들(D1,D2,.....)은 버퍼 메모리(120)에 전송시킨다. 버퍼 메모리(120)에 전송된 데이터는 CPU(150)을 거쳐, 외부장치로 전달된다. 여기서 외부장치는 호스트(20)가 될 수도 있고, 제어칩(100)의 내부 블럭이 될 수도 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명에 따른 암호처리 장치 및 방법은 데이터 기입 및 독출시 암호화된 XOR키들을 생성하여, 보다 빠르게 데이터를 암호화하거나 복호화할 수 있게 된다. 또한, CPU에서 처리해야 할 부담이 줄어든다.

Claims (34)

  1. 암호화된 데이터를 메모리칩에 저장하는 메모리 카드의 암호처리 장치에 있어서:
    제 1 신호(DFS)에 응답하여 소정의 데이터들을 차례로 출력하는 선입선출 메모리;
    제 2 신호(EES)에 응답하여 소정의 암호화된 키들을 생성하고, 제 3 신호(XFS)에 응답하여 상기 소정의 암호화된 키들을 차례로 출력하는 암호키 생성기;
    데이터 기입 동작 시에는 상기 선입선출 메모리에서 출력된 상기 소정의 데이터들과 상기 암호키 생성기에서 출력된 상기 소정의 암호키들을 각각 논리 연산하여 상기 소정의 데이터들을 차례로 암호화하여 메모리 인터페이스에 전송하는 논리 연산기; 및
    상기 데이터 기입 동작 시에 기입 명령과 기입 어드레스에 응답하여 상기 제 1 내지 제 3 신호를 생성하는 제어회로를 포함하되, 상기 제 2 신호는 상기 기입 명령과 동시에 생성되는 메모리 카드의 암호처리 장치.
  2. 제 1 항에 있어서,
    상기 논리 연산기와 상기 메모리 인터페이스 사이에 통신되는 상기 소정의 암호화된 데이터에 대한 오류를 검출하기 위해 에러검출회로를 더 포함하는 메모리 카드의 암호처리 장치.
  3. 제 2 항에 있어서,
    상기 에러검출회로는 ECC(Error Correcting Code)을 이용하는 메모리 카드의 암호처리 장치.
  4. 제 1 항에 있어서,
    상기 암호키 생성기는 DES(Data Encryption Standard)을 이용하는 메모리 카드의 암호처리 장치.
  5. 제 4 항에 있어서,
    상기 논리 연산기는 XOR 연산을 하는 메모리 카드의 암호처리 장치.
  6. 제 5 항에 있어서,
    상기 암호키 생성기는 상기 제 2 신호에 응답하여 초기화 키들을 입력받아 암호화된 XOR키들을 생성하는 메모리 카드의 암호처리 장치.
  7. 제 6 항에 있어서,
    상기 암호키 생성기는 상기 초기화 키들이 동일하면 동일한 상기 암호화된 XOR키들을 생성하는 메모리 카드의 암호처리 장치.
  8. 제 7 항에 있어서,
    상기 소정의 데이터를 암호화하여 상기 소정의 암호화된 데이터를 만드는데 사용된 상기 초기화 키들은 상기 소정의 암호화된 데이터를 복호화할 때 이용되는 메모리 카드의 암호처리 장치.
  9. 제 8 항에 있어서,
    상기 소정의 데이터를 암호화하여 상기 소정의 암호화된 데이터를 만드는데 사용된 상기 초기화 키들을 저장하는 메모리를 더 포함하는 메모리 카드의 암호처리 장치.
  10. 제 6 항에 있어서,
    상기 암호키 발생기는 상기 제 2 신호에 응답하여 상기 초기화 키들을 입력받아 상기 소정의 암호화된 XOR키를 생성한 후에, 상기 초기화된 키들을 입력받지 아니하고, 상기 소정의 XOR키를 입력으로 받아 계속적으로 상기 소정의 암호화된 XOR키들을 생성하는 메모리 카드의 암호처리 장치.
  11. 제 10 항에 있어서,
    상기 암호키 발생기는
    상기 소정의 암호화된 XOR키들을 저장하는 레지스터; 및
    상기 레지스터로부터 상기 XOR키들을 임시로 저장하며, 상기 제 3 신호(XFS) 에 응답하여 상기 XOR키들을 차례로 출력하는 XOR키 선입선출메모리를 포함하는 메모리 카드의 암호처리 장치.
  12. 암호화된 데이터를 메모리칩에 저장하는 메모리 카드의 암호처리 장치에 있어서:
    제 1 신호(EES)에 응답하여 소정의 암호화된 키들을 생성하고, 제 2 신호(XFS)에 응답하여 상기 소정의 암호화된 키들을 차례로 출력하는 암호키 생성기;
    데이터 독출 동작 시에는 메모리 인터페이스로부터 전달된 소정의 암호화된 데이터들과 상기 암호키 생성기에서 출력된 상기 소정의 암호키들을 각각 논리 연산하여 상기 소정의 암호화된 데이터들을 차례로 복호화하는 논리 연산기; 및
    상기 데이터 독출 동작 시에 독출 명령과 독출 어드레스에 응답하여 상기 제 1 및 제 2 신호를 생성하는 제어회로를 포함하되, 상기 제 1 신호는 상기 기입 명령과 동시에 생성되는 메모리 카드의 암호처리 장치.
  13. 암호화된 데이터를 메모리칩에 저장하는 메모리 카드의 암호처리 장치에 있어서:
    제 1 신호(DFS)에 응답하여 소정의 데이터들을 차례로 출력하는 선입선출 메모리;
    제 2 신호(EES)에 응답하여 소정의 암호화된 키들을 생성하고, 제 3 신호(XFS)에 응답하여 상기 소정의 암호화된 키들을 차례로 출력하는 암호키 생성기;
    데이터 기입 동작 시에는 상기 선입선출 메모리에서 출력된 상기 소정의 데이터들과 상기 암호키 생성기에서 출력된 상기 소정의 암호키들을 각각 논리 연산하여 상기 소정의 데이터들을 차례로 암호화하여 메모리 인터페이스에 전송하고, 데이터 독출 동작 시에는 메모리 인터페이스로부터 전달된 소정의 암호화된 데이터들과 상기 암호키 생성기에서 출력된 상기 소정의 암호키들을 각각 논리 연산하여 상기 소정의 암호화된 데이터들을 차례로 복호화하여 상기 선입선출 메모리에 전송하는 논리 연산기; 및
    상기 데이터 기입 동작 시에 기입 명령과 기입 어드레스에 응답하여 상기 제 1 내지 제 3 신호를 생성하고, 상기 데이터 독출 동작 시에 독출 명령과 독출 어드레스에 응답하여 상기 제 2 및 제 3 신호를 생성하는 제어회로를 포함하되, 상기 제 2 신호는 상기 기입 명령 혹은 상기 독출 명령과 동시에 생성되는 메모리 카드의 암호처리 장치.
  14. 제 1 항에 있어서,
    상기 메모리 칩은 플래시 메모리인 메모리 카드의 암호처리 장치.
  15. 제 1 항에 있어서,
    상기 메모리 카드는 SIM(Subscribe Identity Module) 카드인 암호처리 장치.
  16. 메모리 카드의 메모리 칩에 암호키를 이용하여 데이터를 암호화하거나 복호 화하는 데이터 기입 및 독출하는 방법에 있어서:
    a) 데이터 기입 명령과 동시에 소정의 암호화된 XOR 키들을 생성하는 단계;
    b) 상기 소정의 데이터들을 상기 소정의 암호화된 XOR 키들과 차례로 XOR연산하여 암호화시키는 단계;
    c) 상기 소정의 암호화된 데이터들을 상기 메모리 칩에 저장하는 단계;
    d) 데이터 독출 명령과 동시에 상기 소정의 암호화된 XOR 키들을 생성하는 단계;
    e) 상기 메모리칩에 저장된 상기 소정의 암호화된 데이터들을 독출하여 상기 소정의 암호화된 XOR 키들과 차례로 XOR 연산하여 복호화시키는 단계; 및
    f) 상기 복호화된 소정의 데이터를 외부장치 혹은 상기 메모리 카드의 내부 장치로 전달하는 단계를 포함하는 암호화된 메모리 카드의 데이터 기입 및 독출 방법.
  17. 제 16 항에 있어서,
    상기 a) 단계에서 데이터를 상기 메모리 칩에 기입할 때, 상기 외부장치는 상기 메모리 카드에 데이터를 전송하고, 상기 메모리 카드는 상기 데이터 기입 명령과 기입 어드레스를 만드는 단계를 포함하는 메모리 카드의 데이터 기입 및 독출 방법.
  18. 제 16 항에 있어서,
    상기 d) 단계에서 상기 메모리 카드는 데이터 독출 명령 및 데이터 독출 어드레스를 만드는 단계를 포함하는 메모리 카드의 데이터 기입 및 독출 방법.
  19. 제 16 항에 있어서,
    상기 a) 단계에서 데이터를 상기 메모리 칩에 기입할 때, 상기 외부장치는 상기 메모리 카드에 데이터 기입 명령, 기입 어드레스 및 데이터를 전송하는 단계을 포함하고,
    상기 d)단계에서 데이터를 상기 메모리칩으로부터 독출할 때, 상기 외부장치는 상기 메모리 카드에 데이터 독출 명령 및 독출 어드레스를 전송하는 단계를 포함하는 메모리 카드의 데이터 기입 및 독출 방법.
  20. 제 19 항에 있어서,
    상기 a) 단계에서 상기 데이터를 소정의 데이터 단위로 구분하여 저장하는 단계를 포함하는 메모리 카드의 데이터 기입 및 독출 방법.
  21. 제 20 항에 있어서,
    상기 메모리 카드는 상기 소정의 데이터를 저장하는 선입선출 메모리를 포함하는 메모리 카드의 데이터 기입 및 독출 방법.
  22. 제 21 항에 있어서,
    상기 메모리 카드는 암호키 발생기를 포함하되, 상기 암호키 발생기는 상기 외부 장치로부터 데이터 기입 명령과 독출 명령을 전송받았을 때, 초기화 키들을 입력받아 상기 소정의 암호화된 XOR 키들을 생성하고, 여기서 초기화 키들은 상기 메모리 카드의 중앙처리장치에서 제공되는 메모리 카드의 데이터 기입 및 독출 방법.
  23. 제 22 항에 있어서,
    상기 암호키 발생기는 초기화 키들이 동일하면 동일한 상기 소정의 암호화된 XOR 키들을 생성하는 메모리 카드의 데이터 기입 및 독출 방법.
  24. 제 23 항에 있어서,
    상기 소정의 데이터를 암호화하여 상기 소정의 암호화된 데이터를 만드는데 사용된 상기 초기화 키들은 상기 소정의 암호화된 데이터를 복호화할 때 이용되는 메모리 카드의 데이터 기입 및 독출 방법.
  25. 제 24 항에 있어서,
    상기 메모리 카드는 상기 소정의 데이터를 암호화하여 상기 소정의 암호화된 데이터를 만드는데 사용된 상기 초기화 키들을 저장하는 메모리를 더 포함하는 메모리 카드의 데이터 기입 및 독출 방법.
  26. 제 24 항에 있어서,
    상기 암호키 발생기는 상기 초기화 키들을 입력받아 상기 소정의 암호화된 XOR키를 생성한 후에는 상기 초기화된 키들을 더이상 입력받지 않고, 상기 생성된 소정의 XOR키를 입력으로 받아 계속적으로 상기 소정의 암호화된 XOR키들을 생성하는 메모리 카드의 데이터 기입 및 독출 방법.
  27. 제 26 항에 있어서,
    상기 암호키 발생기는 상기 소정의 암호화된 XOR키들을 저장하는 XOR키 선입선출메모리를 포함하는 메모리 카드의 데이터 기입 및 독출 방법.
  28. 제 27 항에 있어서,
    상기 메모리 카드는 제어회로를 포함하되, 상기 제어회로는 상기 데이터 기입 명령과 상기 기입 어드레스를 전달받아 제 1 신호를 생성하며,
    상기 b)단계에서는 상기 제 1 신호에 응답하여 상기 선입선출 메모리로부터 상기 소정의 데이터를 출력하고 상기 제 1 신호에 응답하여 상기 XOR키 선입선출메모리로부터 상기 소정의 암호화된 XOR키를 출력하여 XOR 연산하는 메모리 카드의 데이터 기입 및 독출 방법.
  29. 제 28 항에 있어서,
    상기 메모리 카드는 상기 소정의 암호화된 데이터를 상기 메모리칩에 전송할 때 발생하는 데이터 오류를 검출하고 정정하는 오류검출회로를 더 포함하되,
    상기 c)단계에서는 상기 오류검출회로로부터 상기 소정의 암호화된 데이터에 해당하는 ECC(Error Correcting Code)값을 계산하여 저장하는 단계를 더 포함하는 메모리 카드의 데이터 기입 및 독출 방법.
  30. 제 29 항에 있어서,
    상기 메모리 카드는 메모리 인터페이스를 포함하되, 상기 메모리 인터페이스는 상기 데이터 기입 명령 및 상기 기입 어드레스에 따라 상기 메모리 칩에 상기 소정의 암호화된 데이터를 저장하며
    상기 메모리 인터페이스에서 제 1 소정의 XOR키에 의해 암호화된 상기 제 1 소정의 암호화된 데이터를 상기 메모리칩에 저장하는 동안에, 상기 a)단계에서는 제 2 소정의 XOR 키를 생성하고, 상기 c)단계에서는 상기 제 2 소정의 XOR 키를 이용하여 제 2 소정의 암호화된 데이터를 생성하는 메모리 카드의 데이터 기입 및 독출 방법.
  31. 제 30 항에 있어서,
    상기 d) 단계에서 상기 메모리 인터페이스가 상기 데이터 독출 명령과 상기 독출 어드레스에 따라 상기 메모리 칩으로부터 암호화된 데이터를 독출하여, 상기 소정의 암호화된 데이터들로 저장하는 단계를 포함하는 메모리 카드의 데이터 기입 및 독출 방법.
  32. 제 31 항에 있어서,
    상기 e) 단계에서 상기 메모리 인터페이스에 저장된 상기 소정의 암호화된 데이터들을 전송할 때, 상기 에러검출회로의 저장된 ECC값에 따라 데이터 전송 에러를 정정하는 단계를 더 포함하는 메모리 카드의 데이터 기입 및 독출 방법.
  33. 제 32 항에 있어서,
    상기 제어회로는 상기 데이터 독출 명령과 상기 독출 어드레스를 전달받아 제 2 신호를 생성하며,
    상기 e)단계에서는 상기 제 2 신호에 응답하여 상기 선입선출 메모리로부터 상기 소정의 데이터를 출력하고 상기 제 2 신호에 응답하여 상기 XOR키 선입선출메모리로부터 상기 소정의 암호화된 XOR키를 출력하여 XOR 연산하는 메모리 카드의 데이터 기입 및 독출 방법.
  34. 제 33 항에 있어서,
    상기 f) 단계에서 상기 복호화된 소정의 데이터들을 상기 선입선출 메모리에 저장하는 단계를 포함하는 메모리 카드의 데이터 기입 및 독출 방법.
KR1020060087665A 2006-09-11 2006-09-11 메모리 카드의 암호화 장치 및 그것에 따른 데이터 기입 및독출 방법 KR100836758B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020060087665A KR100836758B1 (ko) 2006-09-11 2006-09-11 메모리 카드의 암호화 장치 및 그것에 따른 데이터 기입 및독출 방법
DE102007044330A DE102007044330A1 (de) 2006-09-11 2007-09-06 Verschlüsselungsprozessor und Verfahren zum Schreiben und Lesen von Daten
US11/853,041 US8054972B2 (en) 2006-09-11 2007-09-11 Encryption processor of memory card and method for writing and reading data using the same
CN2007101676702A CN101149709B (zh) 2006-09-11 2007-09-11 存储卡的加密处理器和使用其进行数据读写的方法
US13/236,897 US20120005488A1 (en) 2006-09-11 2011-09-20 Encryption processor of memory card and method for writing and reading data using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060087665A KR100836758B1 (ko) 2006-09-11 2006-09-11 메모리 카드의 암호화 장치 및 그것에 따른 데이터 기입 및독출 방법

Publications (2)

Publication Number Publication Date
KR20080023595A true KR20080023595A (ko) 2008-03-14
KR100836758B1 KR100836758B1 (ko) 2008-06-10

Family

ID=39134666

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060087665A KR100836758B1 (ko) 2006-09-11 2006-09-11 메모리 카드의 암호화 장치 및 그것에 따른 데이터 기입 및독출 방법

Country Status (4)

Country Link
US (2) US8054972B2 (ko)
KR (1) KR100836758B1 (ko)
CN (1) CN101149709B (ko)
DE (1) DE102007044330A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101363161B1 (ko) * 2011-11-04 2014-02-13 주식회사 엘지씨엔에스 공유 관리 시스템
KR101537018B1 (ko) * 2008-10-01 2015-07-17 삼성전자주식회사 보안 메모리 인터페이스, 이를 포함하는 시스템 및 스마트카드
KR20200073709A (ko) 2018-12-14 2020-06-24 한국기초과학지원연구원 에피갈로카테킨 갈레이트 이량체, 이의 제조방법 및 이를 이용한 화장료 조성물
US11422738B2 (en) 2018-11-12 2022-08-23 SK Hynix Inc. Data storage device, method of operating the same, and storage system having the same

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291218B2 (en) * 2008-12-02 2012-10-16 International Business Machines Corporation Creating and using secure communications channels for virtual universes
JP5272751B2 (ja) * 2009-01-26 2013-08-28 富士通セミコンダクター株式会社 プロセッサ
CN101510245B (zh) * 2009-03-06 2011-08-03 同方股份有限公司 高速加解密usb桥接芯片以及芯片高速加解密方法
KR20100133184A (ko) * 2009-06-11 2010-12-21 삼성전자주식회사 고체 상태 드라이브 장치
US8526363B2 (en) * 2010-01-13 2013-09-03 Sony Corporation Method and system for transferring data between wireless devices
US8958550B2 (en) 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
US9449169B2 (en) * 2012-03-26 2016-09-20 Vmware, Inc. Block storage virtualization on commodity secure digital cards
US10387662B2 (en) * 2014-07-16 2019-08-20 Jeffrey B. Canter Flash memory device for storing sensitive information and other data
EP3170087B1 (en) * 2014-07-16 2019-05-01 BAE SYSTEMS Information and Electronic Systems Integration Inc. Flash memory device for storing sensitive information and other data
JP6941971B2 (ja) * 2017-05-15 2021-09-29 ラピスセミコンダクタ株式会社 半導体記憶装置、メモリコントローラ及びメモリの監視方法
FR3074936B1 (fr) * 2017-12-11 2020-08-14 Stmicroelectronics (Grenoble 2) Sas Procede d'ecriture d'un ensemble d'informations, par exemple un code programme, cryptees dans une memoire externe d'un circuit integre et circuit integre correspondant
GB201802582D0 (en) * 2018-02-16 2018-04-04 Nordic Semiconductor Asa Protecting cryptographic key data
WO2020186125A1 (en) 2019-03-13 2020-09-17 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
CN110298181A (zh) * 2019-05-14 2019-10-01 北京航空航天大学 数据加密存储方法、数据解密方法以及加密存储器芯片
CN114996725B (zh) * 2022-05-06 2023-07-28 北京中科昊芯科技有限公司 一种保护开发程序的方法以及处理器

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH113284A (ja) 1997-06-10 1999-01-06 Mitsubishi Electric Corp 情報記憶媒体およびそのセキュリティ方法
DE19882748T1 (de) * 1997-10-23 2000-09-28 Seagate Technology Abwechselndes Umrechnen mit Zufallsdaten für gerade/ungerade Datenspuren
US20020044651A1 (en) * 2000-05-16 2002-04-18 Tuvell Walter E. Method and apparatus for improving the security of cryptographic ciphers
JP2002328845A (ja) * 2001-05-07 2002-11-15 Fujitsu Ltd 半導体集積回路及びicカードのセキュリティー保護方法
JP2003256282A (ja) * 2002-02-28 2003-09-10 Matsushita Electric Ind Co Ltd メモリカード
TWI227395B (en) * 2003-06-02 2005-02-01 Genesys Logic Inc Method for parallel processing of memory data and error correction code and related device thereof
WO2005004382A1 (ja) 2003-07-08 2005-01-13 Fujitsu Limited 暗号処理装置
DE60321783D1 (de) * 2003-07-24 2008-08-07 Hitachi Ltd Fehlerkorrektur für kryptographische Schlüssel
DE10345385B4 (de) * 2003-09-30 2005-10-06 Infineon Technologies Ag Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher
CN100356342C (zh) * 2003-11-18 2007-12-19 株式会社瑞萨科技 信息处理装置
CN1632828A (zh) * 2003-12-24 2005-06-29 劲永国际股份有限公司 一种对资料加密保护的usb界面资料处理卡
EP1587037A1 (en) 2004-03-16 2005-10-19 Infineon Technologies AG Method and system for storing and accessing data
KR20050115151A (ko) * 2004-06-03 2005-12-07 삼성전자주식회사 보안 데이터를 저장할 수 있는 메모리 카드 및 메모리카드의 동작 방법
JP2006023957A (ja) 2004-07-07 2006-01-26 Sony Corp 半導体集積回路及び情報処理装置
US7602905B2 (en) * 2004-09-01 2009-10-13 Texas Instruments Incorporated Processes, circuits, devices, and systems for encryption and decryption and other purposes, and processes of making
TW200616405A (en) * 2004-09-30 2006-05-16 Synaptic Lab Ltd Method of and apparatus for partitioning of a bitstream
US7184327B2 (en) * 2005-04-14 2007-02-27 Micron Technology, Inc. System and method for enhanced mode register definitions
DE102005028221B4 (de) * 2005-06-17 2007-10-11 Infineon Technologies Ag Vorrichtung und Verfahren zum Schutz der Integrität von Daten
US7437500B2 (en) * 2005-08-05 2008-10-14 Lsi Corporation Configurable high-speed memory interface subsystem

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101537018B1 (ko) * 2008-10-01 2015-07-17 삼성전자주식회사 보안 메모리 인터페이스, 이를 포함하는 시스템 및 스마트카드
KR101363161B1 (ko) * 2011-11-04 2014-02-13 주식회사 엘지씨엔에스 공유 관리 시스템
US11422738B2 (en) 2018-11-12 2022-08-23 SK Hynix Inc. Data storage device, method of operating the same, and storage system having the same
KR20200073709A (ko) 2018-12-14 2020-06-24 한국기초과학지원연구원 에피갈로카테킨 갈레이트 이량체, 이의 제조방법 및 이를 이용한 화장료 조성물

Also Published As

Publication number Publication date
CN101149709B (zh) 2011-07-06
US20080075279A1 (en) 2008-03-27
US8054972B2 (en) 2011-11-08
CN101149709A (zh) 2008-03-26
DE102007044330A1 (de) 2008-04-03
KR100836758B1 (ko) 2008-06-10
US20120005488A1 (en) 2012-01-05

Similar Documents

Publication Publication Date Title
KR100836758B1 (ko) 메모리 카드의 암호화 장치 및 그것에 따른 데이터 기입 및독출 방법
US9002002B1 (en) Method and apparatus of high speed encryption and decryption
US20090125726A1 (en) Method and Apparatus of Providing the Security and Error Correction Capability for Memory Storage Devices
KR101612518B1 (ko) 병렬 처리 가능한 암복호화기 및 그것의 암복호 방법
US7336783B2 (en) Cryptographic systems and methods supporting multiple modes
JP4684550B2 (ja) 多数の動作モードを支援する暗号化装置
CN202650015U (zh) 用于经加密存储器存取的系统
US11387980B2 (en) Hardware multiple cipher engine
US20090316899A1 (en) Encryption/decryption device and security storage device
JP2012151805A (ja) データ暗号化装置、及び、メモリカード
CN112887077A (zh) 一种ssd主控芯片随机缓存保密方法和电路
US11050575B2 (en) Entanglement and recall system using physically unclonable function technology
US11797717B2 (en) Bus encryption for non-volatile memories
CN114070552B (zh) 数据加密方法及装置、数据解密方法及装置、设备及介质
TWI776351B (zh) 利用借助於進階加密標準處理電路之資料保護的資料存取方法、應用於記憶體裝置之記憶體控制器以及應用於記憶體裝置之記憶體控制器的進階加密標準處理電路
CN114327255A (zh) 存储器接口控制器及存储器
US20070258582A1 (en) Hardware key encryption for data scrambling
TWI804439B (zh) 資料加密的錯誤偵測裝置及方法
US20230068302A1 (en) Memory device and method for data encryption/decryption of memory device
TWI835381B (zh) 資料加密的錯誤偵測裝置
US20240143791A1 (en) Apparatus and method for detecting errors during data encryption
TWI835601B (zh) 資料加密的回合密鑰擴展裝置及方法
US20230198754A1 (en) Apparatus and method for detecting errors during data encryption
US20230198755A1 (en) Apparatus and method for detecting errors during data encryption
CN101763485A (zh) 数据保护方法

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: 20130531

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140530

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150601

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160531

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 12