KR101565968B1 - 데이터 보호를 위한 메모리, 이를 포함하는 메모리 시스템 및 이의 동작 방법 - Google Patents

데이터 보호를 위한 메모리, 이를 포함하는 메모리 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR101565968B1
KR101565968B1 KR1020090018425A KR20090018425A KR101565968B1 KR 101565968 B1 KR101565968 B1 KR 101565968B1 KR 1020090018425 A KR1020090018425 A KR 1020090018425A KR 20090018425 A KR20090018425 A KR 20090018425A KR 101565968 B1 KR101565968 B1 KR 101565968B1
Authority
KR
South Korea
Prior art keywords
storage area
user
data
memory
cipher
Prior art date
Application number
KR1020090018425A
Other languages
English (en)
Other versions
KR20100099871A (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 KR1020090018425A priority Critical patent/KR101565968B1/ko
Priority to US12/708,221 priority patent/US8539251B2/en
Publication of KR20100099871A publication Critical patent/KR20100099871A/ko
Application granted granted Critical
Publication of KR101565968B1 publication Critical patent/KR101565968B1/ko

Links

Images

Classifications

    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Abstract

데이터 보호를 위한 메모리 및 이를 포함하는 메모리 시스템이 제공된다. 메모리는, 사용자로부터 입력되는 N(N은 자연수)개의 암호키들을 저장하는 제1 저장 영역, 제1 저장 영역으로부터 N개의 암호키들을 제공받아 재저장하는 제2 저장 영역 및 사용자로부터 입력되는 제어 신호에 따라 제2 저장 영역에 저장된 N개의 암호키들 중에서 하나의 암호키를 선택하고, 선택된 하나의 암호키를 이용하여 외부로부터 입력된 데이터를 암호화하거나 제1 저장 영역으로부터 출력된 암호화된 데이터를 복호화하는 선택 유닛을 포함한다.
메모리, 암호키, 암호화/복호화

Description

데이터 보호를 위한 메모리, 이를 포함하는 메모리 시스템 및 이의 동작 방법{Memory for protecting data, memory system including of the same and driving method for thereof}
본 발명의 실시예는 메모리 및 이를 포함하는 메모리 시스템에 관한 것으로서, 보다 상세하게는 암호키 또는 데이터가 외부로 노출되는 것을 방지할 수 있는 메모리 및 이를 포함하는 메모리 시스템에 관한 것이다.
개인 정보 또는 중요한 데이터가 저장된 메모리를 포함하는 메모리 시스템에서 외부의 공격자로부터 메모리에 저장된 데이터가 모니터링 되는 것을 방지하기 위하여 메모리의 데이터 암호화/복호화 방법이 사용되고 있다.
종래의 메모리의 데이터 암호화/복호화 방법은 고정된 길이, 예컨대 1바이트(byte)의 고정된 길이를 가지는 하나의 암호키를 사용하여 외부로부터 입력되는 데이터를 암호화하여 저장하거나 또는 내부의 암호화된 데이터를 복호화하여 출력하는 방법이 사용되었다.
그러나, 상술한 메모리의 데이터 암호화/복호화 방법은 메모리에 저장된 모든 데이터 또는 외부로부터 입력되는 모든 데이터에 대하여 동일한 암호키를 사용 하기 때문에 외부의 해킹 공격으로부터 데이터 또는 암호키가 노출될 위험이 있다. 또한, 종래의 암호키는 메모리의 고정된 영역에 저장되기 때문에 저장 영역이 노출될 경우, 외부의 해킹 공격에 취약할 수 있다.
본 발명이 해결하고자 하는 과제는, 데이터 보호를 위한 메모리를 제공하고자 하는데 있다.
본 발명이 해결하고자 하는 다른 과제는, 이러한 메모리를 포함하는 메모리 시스템을 제공하고자 하는데 있다.
본 발명이 해결하고자 하는 또 다른 과제는, 이러한 메모리의 동작 방법을 제공하고자 하는데 있다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 데이터 보호를 위한 메모리는, 사용자로부터 입력되는 N(N은 자연수)개의 암호키들을 저장하는 제1 저장 영역, 제1 저장 영역으로부터 N개의 암호키들을 제공받아 재저장하는 제2 저장 영역 및 사용자로부터 입력되는 제어 신호에 따라 제2 저장 영역에 저장된 N개의 암호키들 중에서 하나의 암호키를 선택하고, 선택된 하나의 암호키를 이용하여 외부로부터 입력된 데이터를 암호화하거나 상기 제1 저장 영역으로부터 출력된 암호화된 데이터를 복호화하는 선택 유닛을 포함한다.
상기 다른 과제를 해결하기 위한 본 발명의 일 실시예에 따른 메모리 시스템 은, CPU 및 CPU와 통신하며 데이터를 주고받는 메모리를 포함한다.
상기 또 다른 과제를 해결하기 위한 데이터 보호를 위한 메모리의 동작 방법은, 사용자로부터 N(N은 자연수)개의 암호키들을 입력받아 제1 저장 영역에 저장하는 단계, 제1 저장 영역에 저장된 상기 N개의 암호키들을 제2 저장 영역으로 재저장하는 단계, 사용자로부터 입력된 제어 신호에 따라 제2 저장 영역에 저장된 N개의 암호키들 중에서 하나의 암호키를 선택하는 단계, 및 선택된 하나의 암호키를 이용하여 외부로부터 입력된 데이터를 암호화하거나 상기 제1 저장 영역으로부터 출력된 암호화된 데이터를 복호화하는 단계를 포함한다.
본 발명의 실시예에 따른 데이터 보호를 위한 메모리, 이를 포함하는 메모리 시스템 및 이의 동작 방법에 따르면, 메모리가 암호화 또는 복호화 동작을 수행함에 있어서, 사용자로부터 직접 암호키를 입력받아 사용자가 알고 있는 영역에 저장하고, 메모리의 특정 영역 또는 어드레스별로 서로 다른 암호키를 적용하도록 선택함으로써, 외부의 공격 등에 따라 메모리의 데이터 또는 암호키가 노출되는 것을 방지할 수 있으며, 신뢰성 있는 메모리 데이터의 암호화 또는 복호화 동작을 수행할 수 있는 효과가 있다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다 양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 데이터 보호를 위한 메모리의 개략적인 블록도이고, 도 2는 도 1에 도시된 메모리의 동작 순서도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 메모리(100)는 제1 저장 영역(110), 제2 저장 영역(120) 및 선택 유닛(130)을 포함할 수 있다.
제1 저장 영역(110)에는 다수의 영역들이 형성될 수 있는데, 예컨대 제1 저장 영역(110)은 데이터 저장 영역(DA1, DA2, … DAn), 사용자 저장 영역(UA) 및 리셋 영역(Reset)을 포함할 수 있다.
데이터 저장 영역(DA1, DA2, … DAn)에는 외부로부터 제공된 데이터(Data)가 암호화되어 저장될 수 있다. 데이터 저장 영역(DA1, DA2, … DAn)에 저장되는 암호화된 데이터(E_Data)는 후술될 선택 유닛(130)에 의해 생성될 수 있다.
사용자 저장 영역(UA)에는 사용자로부터 입력된 다수의 암호키들, 예컨대 N(N은 자연수)개의 암호키들(Kn)이 저장될 수 있다. N개의 암호키들(Kn) 각각은 1 바이트(byte) 단위의 코드, 즉 8 비트(bit)의 코드로 구성될 수 있다.
리셋 영역(Reset)에는 리셋 핸들러(reset handler)가 저장될 수 있다. 리셋 핸들러는 외부로부터 입력되는 리셋 신호(rst), 예컨대 사용자가 메모리(100)를 리셋한 경우에 발생되는 리셋 신호(rst)에 의해 구동될 수 있으며, 미리 정해진 명령 루틴에 의해 사용자 저장 영역(UA)에서부터 메모리(100)의 구동을 시작할 수 있다.
예컨대, 사용자 저장 영역(UA)에는 사용자로부터 입력된 N개의 암호키들(Kn) 외에 다수의 구동 명령어들, 예컨대 메모리(100)의 초기 구동을 수행할 수 있는 메모리 인에이블 코드 등과 같은 명령어들이 더 저장될 수 있다.
또한, 리셋 영역(Reset)의 리셋 핸들러에는 외부로부터 리셋 신호(rst)가 입력되면, 제1 저장 영역(110)의 사용자 저장 영역(UA)으로 점프(jump)하여 사용자 저장 영역(UA)부터 메모리(100)의 구동을 시작하기 위한 명령어들이 저장될 수 있다.
이에 따라, 외부로부터 메모리(100)에 리셋 신호(rst)가 입력되면, 메모리(100)의 제1 저장 영역(110)의 리셋 영역(Reset)은 리셋 핸들러에 의하여 사용자 저장 영역(UA)으로 점프(jump)하게 되고, 사용자 저장 영역(UA)에 저장된 메모리(100)의 초기 구동 명령어들에 의하여 메모리(100)가 구동을 시작하게 된다.
제2 저장 영역(120)에는 다수의 영역들이 형성될 수 있다. 예컨대, 제2 저장 영역(120)은 사용자에 의해 제1 저장 영역(110)의 사용자 저장 영역(UA)에 입력되어 저장된 N개의 암호키들(Kn) 각각을 재저장하기 위한 다수의 암호키 저장 영역들(KA1, KA2, … KAn)을 포함할 수 있다.
다시 말하면, 제2 저장 영역(120)의 다수의 암호키 저장 영역들(KA1, KA2, … KAn)은 사용자로부터 제1 저장 영역(110)의 사용자 저장 영역(UA)에 N개의 암호키들(Kn)이 저장된 후, 제1 저장 영역(110)으로부터 N개의 암호키들(Kn)을 제공받아 N개의 암호키들(Kn) 각각을 재저장할 수 있다. 이는 메모리(100)의 암호화/복호화 동작에서 발생할 수 있는 로직 속도 저하를 방지하기 위함이다.
제2 저장 영역(120)은 외부로부터 입력되는 리셋 신호(rst)에 의하여 리셋될 수 있다. 이때, 제2 저장 영역(120)의 다수의 암호키 저장 영역들(KA1, KA2, … KAn)은 리셋 신호(rst)에 의해 제1 저장 영역(110)의 사용자 저장 영역(UA)으로부터 메모리(100)의 구동이 시작되면, 제1 저장 영역(110)으로부터 N개의 암호키들(Kn)을 제공받아 재저장하는 동작을 다시 수행할 수 있다.
선택 유닛(130)은 선택부(131), 먹스(MUX)(133) 및 암호화/복호화부(135)를 포함할 수 있다.
선택부(131)는 사용자로부터 입력되는 제어 신호(CNT)에 따라 선택 신호(CS)를 출력할 수 있다. 선택 신호(CS)는 먹스(133)로 제공되며, 제2 저장 영역(120)으로부터 먹스(133)에 입력되는 N개의 암호키들(Kn) 중에서 하나의 암호키(S_K)를 선택하기 위한 신호로써 사용될 수 있다.
사용자로부터 입력되는 제어 신호(CNT)에는 제1 저장 영역(110)의 각각의 데이터 저장 영역(DA1, DA2, … DAn)의 어드레스(address)가 포함될 수 있다. 이에 따라, 사용자는 제1 저장 영역(110)의 어드레스별로 암호키를 다르게 선택하기 위한 제어 신호(CNT)를 출력할 수 있다.
예컨대, 선택부(131)는 사용자로부터 입력되는 제어 신호(CNT)에 의해 데이터 저장 영역(DA1, DA2, … DAn)의 다수의 어드레스들의 LSB(Least Significant Bit; LSB)에 따라 N개의 암호키들(Kn) 중에서 서로 다른 암호키를 선택할 수 있는 선택 신호(CS)를 출력할 수 있다.
예를 들어, 데이터 저장 영역(DA1, DA2, … DAn)의 제1 데이터 저장 영역(DA1)이 어드레스 00000으로 정의되고, 제2 데이터 저장 영역(DA2)이 어드레스 00001로 정의된 경우에, 사용자는 두 개의 서로 다른 어드레스 LSB에 따라 제1 데이터 저장 영역(DA1)과 제2 데이터 저장 영역(DA2)에 각각 다른 암호키가 사용되도록 제어 신호(CNT)를 입력할 수 있다.
이에 따라, 선택부(131)는 사용자로부터 입력된 제어 신호(CNT)에 따라 외부로부터 메모리(100)의 제1 데이터 저장 영역(DA1)에 입력되는 데이터(Data)를 암호화하거나 또는 제1 데이터 저장 영역(DA1)에 저장된 암호화된 데이터(E_Data)를 복 호화하기 위하여 제2 저장 영역(120)의 N개의 암호키들(Kn) 중에서 제1 암호키(k1)를 사용하기 위한 선택 신호(CS)를 출력할 수 있다.
또한, 선택부(131)는 사용자로부터 입력된 제어 신호(CNT)에 따라 외부로부터 메모리(100)의 제2 데이터 저장 영역(DA2)에 입력되는 데이터(Data)를 암호화하거나 또는 제2 데이터 저장 영역(DA2)에 저장된 암호화된 데이터(E_Data)를 복호화하기 위하여 제2 저장 영역(120)의 N개의 암호키들(Kn) 중에서 제2 암호키(k2)를 사용하기 위한 선택 신호(CS)를 출력할 수 있다.
또한, 선택부(131)는 사용자로부터 입력되는 제어 신호(CNT)에 의해 데이터 저장 영역(DA1, DA2, … DAn)의 다수의 어드레스들의 MSB(Most Significant Bit; MSB)에 따라 N개의 암호키들(Kn) 중에서 서로 다른 암호키를 선택할 수 있는 선택 신호(CS)를 출력할 수 있다.
예를 들어, 데이터 저장 영역(DA1, DA2, … DAn)의 제1 데이터 저장 영역(DA1)이 어드레스 00000으로 정의되고, 제2 데이터 저장 영역(DA2)이 어드레스 00001로 정의된 경우에, 사용자는 두 개의 서로 동일한 어드레스 MSB에 따라 제1 데이터 저장 영역(DA1)과 제2 데이터 저장 영역(DA2)에 각각 동일한 암호키가 사용되도록 제어 신호(CNT)를 입력할 수 있다.
이에 따라, 선택부(131)는 사용자로부터 입력된 제어 신호(CNT)에 따라 외부로부터 메모리(100)의 제1 데이터 저장 영역(DA1)과 제2 데이터 저장 영역(DA2) 각각에 입력되는 데이터(Data)를 암호화하거나 또는 제1 데이터 저장 영역(DA1)과 제2 데이터 저장 영역(DA2) 각각에 저장된 암호화된 데이터(E_Data)를 복호화하기 위 하여 제2 저장 영역(120)의 N개의 암호키들(Kn) 중에서 제1 암호키(k1)를 사용하기 위한 선택 신호(CS)를 출력할 수 있다.
한편, 사용자는 선택부(131)에 제어 신호(CNT)와 함께 새로운 암호키(Km)를 입력하여 제2 저장 영역(120)의 N개의 암호키들(Kn) 중에서 하나의 암호키(S_K)를 선택하기 위한 선택 신호(CS)를 출력할 수도 있다.
먹스(133)는 제2 저장 영역(120)으로부터 N개의 암호키들(Kn)을 입력받고, 선택부(131)로부터 출력되는 선택 신호(CS)에 따라 N개의 암호키들(Kn) 중에서 하나의 암호키(S_K)를 선택하여 출력할 수 있다.
암호화/복호화부(135)는 먹스(133)로부터 출력된 하나의 암호키(S_K)에 기초하여 외부로부터 입력되는 데이터(Data)를 암호화하고, 암호화된 데이터(E_Data)를 제1 저장 영역(110)의 데이터 저장 영역(DA1, DA2, … DAn)으로 출력할 수 있다. 이때, 암호화된 데이터(E_Data)는 데이터 저장 영역(DA1, DA2, … DAn) 각각의 어드레스에 따라 저장될 수 있다.
또한, 암호화/복호화부(135)는 먹스(133)로부터 출력된 하나의 암호키(S_K)에 기초하여 제1 저장 영역(110)에 저장된 암호화된 데이터(E_Data)를 복호화하여 외부로 출력할 수 있다.
이하, 도 1 및 도 2를 참조하여, 상술한 메모리(100)의 동작 방법에 대하여 상세히 설명한다.
도 1 및 도 2를 참조하면, 본 실시예의 메모리(100)는 두 개의 동작 단계를 포함할 수 있다. 예컨대, 메모리(100)는 코드 발급 단계(A) 및 코드 수행 단계(B) 를 포함할 수 있다.
코드 발급 단계(A)는 메모리(100)의 제1 저장 영역(110)에 N개의 암호키들(Kn) 및 암호화된 데이터(E_Data)를 입력시키는 단계일 수 있다.
메모리(100)는 사용자로부터 N개의 암호키들(Kn)을 입력받고, 메모리(100)의 제1 저장 영역(110)의 사용자 저장 영역(UA)에 N개의 암호키들(Kn)을 저장할 수 있다(S10).
이때, 사용자 저장 영역(UA)에는 사용자로부터 입력된 N개의 암호키들(Kn) 외에 다수의 구동 명령어들 더 저장될 수 있으며, 리셋 영역(Reset)에는 리셋 신호(rst)가 입력되어 메모리(100)가 리셋된 후, 사용자 저장 영역(UA)으로 점프하여 동작을 시작할 수 있는 리셋 핸들러가 저장될 수 있다.
사용자로부터 N개의 암호키들(Kn)의 입력이 완료되면, 메모리(100)는 입력된 N개의 암호키들(Kn)에 대하여 적합성을 검사한다(S20).
적합성 검사가 완료되면, 사용자 저장 영역(UA)에 저장된 N개의 암호키들(Kn)은 제2 저장 영역(120)으로 이동하고, 제2 저장 영역(120)의 다수의 암호키 저장 영역들(KA1, KA2, … KAn) 각각에 재저장될 수 있다(S30).
N개의 암호키들(Kn)이 제2 저장 영역(120)에 재저장 된 후, 메모리(100)는 외부로부터 데이터(Data)를 입력받을 수 있으며, 선택 유닛(130)으로부터 출력되는 하나의 암호키(S_K)에 의하여 입력되는 데이터(Data)를 암호화할 수 있다(S40).
예컨대, N개의 암호키들(Kn)이 제2 저장 영역(120)에 재저장 된 후에, 사용자는 선택 유닛(130)의 선택부(131)로 제어 신호(CNT)를 입력할 수 있다. 제어 신 호(CNT)는 선택부(131)가 제2 저장 영역(120)에 저장된 N개의 암호키들(Kn) 중에서 하나의 암호키(S_K)를 선택하는 선택 신호(CS)를 출력하도록 하기 위한 신호일 수 있다. 사용자는 메모리(100)의 제1 저장 영역(110)의 어드레스별로 암호키를 다르게 선택하기 위한 제어 신호(CNT)를 선택부(131)로 입력할 수 있다.
사용자에 의해 입력된 제어 신호(CNT)에 따라 하나의 암호키(S_K)가 선택되면, 선택 유닛(130)은 외부로부터 입력되는 데이터(Data)에 대하여 하나의 암호키(S_K)를 이용하여 암호화할 수 있다.
암호화된 데이터(E_Data)는 제1 저장 영역(110)의 데이터 저장 영역(DA1, DA2, … DAn)에 각각 저장될 수 있다.
선택 유닛(130)에 의한 데이터 암호화가 완료되면, 메모리(100)는 저장된 암호화된 데이터(E_Data)에 대하여 적합성을 검사한다(S50).
이와 같이, 메모리(100)의 제1 저장 영역(110)에 N개의 암호키들(Kn) 및 암호화된 데이터(E_Data)가 저장 완료됨으로써, 암호화된 데이터(E_Data)를 포함하는 메모리(100)가 완성될 수 있다.
코드 수행 단계(B)는 제1 저장 영역(110)에 입력된 암호화된 데이터(E_Data)를 복호화하여 외부로 출력하는 단계일 수 있다.
우선, 메모리(100)의 코드 발급 단계(A)가 완료되면, 외부로부터 메모리(100)에 리셋 신호(rst)가 입력될 수 있다(S110).
리셋 신호(rst)가 입력되면, 메모리(100)의 제2 저장 영역(120)은 리셋되고, 제1 저장 영역(110)의 리셋 영역(Reset)에 저장된 리셋 핸들러가 동작하게 된다.
리셋 핸들러는 정해진 명령 루틴에 의하여 제1 저장 영역(110)의 사용자 저장 영역(UA)으로 점프하고, 사용자 저장 영역(UA)에서부터 메모리(100)의 구동을 시작하게 된다.
이어, 사용자 저장 영역(UA)에 저장된 N개의 암호키들(Kn)은 제2 저장 영역(120)으로 이동하고, 제2 저장 영역(120)의 다수의 암호키 저장 영역들(KA1, KA2, … KAn) 각각에 재저장될 수 있다(S120).
선택 유닛(130)은 사용자로부터 입력되는 제어 신호(CNT)에 따라 제2 저장 영역(120)에 저장된 N개의 암호키들(Kn) 중에서 하나의 암호키(S_K)를 선택하고, 메모리(100)의 제1 저장 영역(110)으로부터 제공되는 암호화된 데이터(E_Data)를 하나의 암호키(S_K)를 이용하여 복호화하여 출력할 수 있다(S130).
사용자는 메모리(100)의 제1 저장 영역(110)의 어드레스별로 암호키를 다르게 선택하기 위한 제어 신호(CNT)를 선택부(131)로 입력할 수 있는데, 앞서 메모리(100)의 코드 발급 단계(A)에서의 동작에서와 동일한 조건으로 제어 신호(CNT)를 입력하는 것이 바람직할 수 있다.
메모리(100)로부터 출력된 데이터(Data)는 CPU(미도시) 또는 인터페이스(미도시)를 통해 외부로 출력될 수 있다.
도 3은 도 1에 도시된 메모리를 포함하는 메모리 시스템의 개략적인 블록도이다. 본 실시예의 메모리 시스템(200)은 다양한 분야에서 사용될 수 있는데, 예컨대 메모리 카드 또는 스마트 카드 등과 같이 개인 정보가 저장되는 카드 시스템 또는 보안이 필요한 통신 시스템 또는 RF 시스템 등에서 사용될 수 있다.
도 1 내지 도 3을 참조하면, 본 실시예의 메모리 시스템(200)은 CPU(210), 인터페이스(I/F)(230) 및 메모리(100)를 포함할 수 있다.
메모리(100)는 앞서 도 1 및 도 2를 참조하여 설명한 것과 동일하며, 따라서 상세한 설명은 생략한다.
CPU(210)는 버스(220)를 통해 메모리(100)와 통신하면서, 외부로부터 입력된 데이터(Data)를 메모리(100)로 출력하거나 또는 메모리(100)로부터 출력된 데이터(Data)를 외부로 출력할 수 있다.
인터페이스(230)는 외부의 다른 전자 기기와 통신할 수 있으며, 외부로부터 입력된 데이터(Data)를 CPU(210) 또는 메모리(100)로 제공하거나, 메모리(100) 또는 CPU(210)로부터 제공된 데이터(Data)를 외부로 전송할 수 있다.
이러한 인터페이스(230)는 무선 또는 유선 인터페이스일 수 있으며, 무선 또는 유선의 통신 프로토콜에 의해 동작할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 데이터 보호를 위한 메모리의 개략적인 블록도이다.
도 2는 도 1에 도시된 메모리의 동작 순서도이다.
도 3은 도 1에 도시된 메모리를 포함하는 메모리 시스템의 개략적인 블록도이다.

Claims (10)

  1. 사용자로부터 입력되는 N(N은 자연수)개의 암호키들을 저장하는 제1 저장 영역;
    상기 제1 저장 영역으로부터 상기 N개의 암호키들을 제공받아 재저장하는 제2 저장 영역; 및
    상기 사용자로부터 입력되는 제어 신호에 따라 상기 제2 저장 영역에 저장된 상기 N개의 암호키들 중에서 하나의 암호키를 선택하고, 선택된 상기 하나의 암호키를 이용하여 외부로부터 입력된 데이터를 암호화하거나 상기 제1 저장 영역으로부터 출력된 암호화된 데이터를 복호화하는 선택 유닛을 포함하는 데이터 보호를 위한 메모리.
  2. 제1 항에 있어서, 상기 선택 유닛은,
    상기 사용자로부터 입력된 상기 제어 신호에 따라 선택 신호를 출력하는 선택부;
    상기 선택 신호에 따라 상기 제2 저장 영역에 저장된 상기 N개의 암호키들 중에서 상기 하나의 암호키를 선택하는 먹스(MUX); 및
    선택된 상기 하나의 암호키에 기초하여 상기 외부로부터 입력된 데이터를 암호화하거나 상기 제1 저장 영역으로부터 출력된 암호화된 데이터를 복호화하는 암호화/복호화부를 포함하는 데이터 보호를 위한 메모리.
  3. 제2 항에 있어서,
    상기 선택부는 상기 제어 신호에 따라 상기 제1 저장 영역의 어드레스별로 서로 다른 상기 하나의 암호키를 선택하기 위한 상기 선택 신호를 출력하는 데이터 보호를 위한 메모리.
  4. 제2 항에 있어서,
    상기 선택부는 상기 사용자로부터 상기 제어 신호와 함께 입력된 새로운 암호키에 기초하여 상기 하나의 암호키를 선택하기 위한 상기 선택 신호를 출력하는 데이터 보호를 위한 메모리.
  5. 제1 항에 있어서, 제1 저장 영역은,
    암호화된 데이터가 저장되는 데이터 저장 영역;
    상기 사용자로부터 입력된 상기 N개의 암호키들이 저장되는 사용자 저장 영역; 및
    외부로부터 입력되는 리셋 신호에 따라 상기 사용자 저장 영역에서부터 동작을 시작하기 위한 리셋 핸들러가 저장된 리셋 영역을 포함하고,
    상기 외부로부터 상기 리셋 신호가 입력되면, 상기 제2 저장 영역은 상기 리셋 신호에 의해 리셋되고, 상기 리셋 핸들러에 의해 동작하는 상기 제1 저장 영역의 상기 사용자 저장 영역으로부터 상기 N개의 암호키들을 제공받아 재저장하는 데 이터 보호를 위한 메모리.
  6. 제1 항에 있어서,
    상기 N개의 암호키들 각각은 1 바이트(byte) 코드 데이터인 데이터 보호를 위한 메모리.
  7. CPU; 및
    상기 CPU와 통신하며 데이터를 주고받는 메모리를 포함하고,
    상기 메모리는,
    사용자로부터 입력되는 N(N은 자연수)개의 암호키들을 저장하는 제1 저장 영역;
    상기 제1 저장 영역으로부터 상기 N개의 암호키들을 제공받아 재저장하는 제2 저장 영역; 및
    상기 사용자로부터 입력되는 제어 신호에 따라 상기 제2 저장 영역에 저장된 상기 N개의 암호키들 중에서 하나의 암호키를 선택하고, 선택된 상기 하나의 암호키를 이용하여 상기 CPU로부터 입력된 데이터를 암호화하거나 상기 제1 저장 영역으로부터 출력된 암호화된 데이터를 복호화하여 상기 CPU로 출력하기 위한 선택 유닛을 포함하는 데이터 보호를 위한 메모리 시스템.
  8. 제7 항에 있어서, 상기 선택 유닛은,
    상기 사용자로부터 입력된 상기 제어 신호에 따라 선택 신호를 출력하는 선택부;
    상기 선택 신호에 따라 상기 제2 저장 영역에 저장된 상기 N개의 암호키들 중에서 상기 하나의 암호키를 선택하는 먹스(MUX); 및
    선택된 상기 하나의 암호키에 기초하여 상기 CPU로부터 입력된 데이터를 암호화하거나 상기 제1 저장 영역으로부터 출력된 암호화된 데이터를 복호화하여 상기 CPU로 출력하기 위한 암호화/복호화부를 포함하는 데이터 보호를 위한 메모리 시스템.
  9. 사용자로부터 N(N은 자연수)개의 암호키들을 입력받아 제1 저장 영역에 저장하는 단계;
    상기 제1 저장 영역에 저장된 상기 N개의 암호키들을 제2 저장 영역으로 재저장하는 단계;
    상기 사용자로부터 입력된 제어 신호에 따라 상기 제2 저장 영역에 저장된 상기 N개의 암호키들 중에서 하나의 암호키를 선택하는 단계; 및
    선택된 상기 하나의 암호키를 이용하여 외부로부터 입력된 데이터를 암호화하거나 상기 제1 저장 영역으로부터 출력된 암호화된 데이터를 복호화하는 단계를 포함하는 데이터 보호를 위한 메모리의 동작 방법.
  10. 제9 항에 있어서, 상기 제2 저장 영역에 저장된 상기 N개의 암호키들 중에서 하나의 암호키를 선택하는 단계는,
    상기 사용자로부터 입력된 상기 제어 신호에 따라 선택 신호를 출력하는 단계; 및
    상기 선택 신호에 따라 상기 제2 저장 영역에 저장된 상기 N개의 암호키들 중에서 상기 하나의 암호키를 선택하는 단계를 포함하고,
    상기 제어 신호에 따라 선택 신호를 출력하는 단계는, 선택부가 상기 제어 신호에 따라 상기 제1 저장 영역의 어드레스별로 서로 다른 상기 하나의 암호키를 선택하기 위한 상기 선택 신호를 출력하거나 상기 사용자로부터 상기 제어 신호와 함께 입력된 새로운 암호키에 기초하여 상기 하나의 암호키를 선택하기 위한 상기 선택 신호를 출력하는 데이터 보호를 위한 메모리의 동작 방법.
KR1020090018425A 2009-03-04 2009-03-04 데이터 보호를 위한 메모리, 이를 포함하는 메모리 시스템 및 이의 동작 방법 KR101565968B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090018425A KR101565968B1 (ko) 2009-03-04 2009-03-04 데이터 보호를 위한 메모리, 이를 포함하는 메모리 시스템 및 이의 동작 방법
US12/708,221 US8539251B2 (en) 2009-03-04 2010-02-18 Memory for protecting data, memory system including the memory, and method of driving the memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090018425A KR101565968B1 (ko) 2009-03-04 2009-03-04 데이터 보호를 위한 메모리, 이를 포함하는 메모리 시스템 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
KR20100099871A KR20100099871A (ko) 2010-09-15
KR101565968B1 true KR101565968B1 (ko) 2015-11-05

Family

ID=42679292

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090018425A KR101565968B1 (ko) 2009-03-04 2009-03-04 데이터 보호를 위한 메모리, 이를 포함하는 메모리 시스템 및 이의 동작 방법

Country Status (2)

Country Link
US (1) US8539251B2 (ko)
KR (1) KR101565968B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101859646B1 (ko) 2011-12-16 2018-05-18 삼성전자주식회사 보안 데이터를 보호하는 메모리 장치 및 보안 데이터를 이용한 데이터 보호 방법
KR101888382B1 (ko) 2011-12-16 2018-09-21 삼성전자 주식회사 복수 키 활용 지원 저장 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070028112A1 (en) 2005-07-29 2007-02-01 Mackelden John M Data transfer device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0476749A (ja) 1990-07-19 1992-03-11 Toshiba Corp セキュリティ回路
KR100192490B1 (ko) 1996-07-24 1999-06-15 구본준 오티피 인크립션 회로
JP2002328845A (ja) 2001-05-07 2002-11-15 Fujitsu Ltd 半導体集積回路及びicカードのセキュリティー保護方法
US7376234B1 (en) * 2001-05-14 2008-05-20 Hand Held Products, Inc. Portable keying device and method
JP3875153B2 (ja) 2002-07-04 2007-01-31 Necエレクトロニクス株式会社 不揮発性半導体記憶装置およびその書き換え禁止制御方法
DE10254320A1 (de) * 2002-11-21 2004-06-03 Philips Intellectual Property & Standards Gmbh Schaltungsanordnung mit nicht-flüchtigem Speichermodul und Verfahren zum Ver-/Entschlüsseln von Daten des nicht-flüchtigen Speichermoduls

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070028112A1 (en) 2005-07-29 2007-02-01 Mackelden John M Data transfer device

Also Published As

Publication number Publication date
KR20100099871A (ko) 2010-09-15
US20100229006A1 (en) 2010-09-09
US8539251B2 (en) 2013-09-17

Similar Documents

Publication Publication Date Title
KR102446866B1 (ko) 부채널 공격을 방지하는 암복호화기 및 이의 구동 방법 그리고 이를 포함하는 제어 장치
US8347114B2 (en) Method and apparatus for enforcing a predetermined memory mapping
JP4865694B2 (ja) プロセッサ装置
US8428251B2 (en) System and method for stream/block cipher with internal random states
US9418246B2 (en) Decryption systems and related methods for on-the-fly decryption within integrated circuits
US6691921B2 (en) Information processing device
US8045712B2 (en) Stream ciphering of the content of a memory external to a processor
JP2014089640A (ja) 半導体装置及び暗号鍵書き込み方法
JP2006277411A (ja) プロセッサ、メモリ、コンピュータシステムおよびデータ転送方法
JP4758904B2 (ja) 機密情報処理方法
US20090262940A1 (en) Memory controller and memory device including the memory controller
US8826042B2 (en) Memory controller, memory control apparatus, memory device, memory information protection system, control method for memory control apparatus, and control method for memory device
US7657034B2 (en) Data encryption in a symmetric multiprocessor electronic apparatus
JP2007328789A (ja) 入力データに関するアドレスを使用して入力データを符号化するための暗号システム、エラー検出回路、及びそれの動作方法
KR101565968B1 (ko) 데이터 보호를 위한 메모리, 이를 포함하는 메모리 시스템 및 이의 동작 방법
KR20180059217A (ko) 메모리 데이터 보안 처리 장치 및 방법
US20120321079A1 (en) System and method for generating round keys
JP2008109276A (ja) 携帯可能電子装置
JP2007193800A (ja) カード認証システムのセキュリティレベルを向上させる装置及び方法
JP2007067942A (ja) Icカード、および、icカード用プログラム
CN109902492B (zh) 集成电路外部存储器中写加密信息集合的方法和集成电路
JP2006025366A (ja) 暗号化装置及び半導体集積回路
US11061996B2 (en) Intrinsic authentication of program code
US20210143978A1 (en) Method to secure a software code performing accesses to look-up tables
JPH0744375A (ja) 暗号化データ処理装置

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

Payment date: 20180927

Year of fee payment: 4