KR20210145341A - 비휘발성 메모리 장치에서의 데이터 암호화 방법, 비휘발성 메모리 장치 및 사용자 장치 - Google Patents

비휘발성 메모리 장치에서의 데이터 암호화 방법, 비휘발성 메모리 장치 및 사용자 장치 Download PDF

Info

Publication number
KR20210145341A
KR20210145341A KR1020200062047A KR20200062047A KR20210145341A KR 20210145341 A KR20210145341 A KR 20210145341A KR 1020200062047 A KR1020200062047 A KR 1020200062047A KR 20200062047 A KR20200062047 A KR 20200062047A KR 20210145341 A KR20210145341 A KR 20210145341A
Authority
KR
South Korea
Prior art keywords
data
secure
memory cells
circuit
page
Prior art date
Application number
KR1020200062047A
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 KR1020200062047A priority Critical patent/KR20210145341A/ko
Priority to US17/118,091 priority patent/US11567879B2/en
Priority to CN202110275852.1A priority patent/CN113724765A/zh
Publication of KR20210145341A publication Critical patent/KR20210145341A/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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • 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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Read Only Memory (AREA)

Abstract

복수의 워드라인들에 연결되는 복수의 페이지들을 구비하고, 상기 복수의 페이지들은 각각 적어도 하나의 데이터 비트를 저장할 수 있는 복수의 메모리 셀들을 구비하는 메모리 셀 어레이를 포함하는 비휘발성 메모리 장치의 데이터 암호화 방법에서는 데이터를 상기 복수의 페이지들 중 선택된 페이지의 선택된 메모리 셀들에 프로그램하고, 복수의 비트라인들을 통하여 상기 메모리 셀 어레이에 연결되는 페이지 버퍼 회로에서 디벨롭 구간의 서로 다른 제1 시점과 제2 시점에서 상기 선택된 메모리 셀들을 두 번 센싱하여 각각 랜덤 데이터와 메인 데이터로 제공하고, 상기 페이지 버퍼 회로에 연결되는 암호화 회로에서 상기 랜덤 데이터를 이용하여 상기 메인 데이터를 암호화하고, 상기 암호화된 메인 데이터를 상기 비휘발성 메모리 장치 외부로 출력한다. 상기 랜덤 데이터는 상기 선택된 메모리 셀들의 문턱 전압 산포에 기초한 랜덤성을 가진다.

Description

비휘발성 메모리 장치에서의 데이터 암호화 방법, 비휘발성 메모리 장치 및 사용자 장치{METHOD OF ENCRYPTING DATA IN NONVOLATILE MEMORY DEVICES, NONVOLATILE MEMORY DEVICES AND USER DEVICES INCLDUNIG THE SAME}
본 발명은 메모리 장치에 관한 것으로, 보다 상세하게는 비휘발성 메모리 장치에서의 데이터 암호화 방법, 이를 수행하는 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치를 포함하는 사용자 장치에 관한 것이다.
반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화 인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile Memory Device) 및 비휘발성 메모리 장치(Nonvolatile Memory Device)로 구분된다.
휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 비휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다.
플래시 메모리는 저소음, 저전력, 빠른 동작 속도 등의 장점을 갖기 때문에, 다양한 분야에서 사용된다.
플래시 메모리를 비롯한 메모리 장치에 데이터를 저장할 때, 암호화된 데이터(encrypted DTAa)를 저장할 수 있다. 데이터를 암호화할 때에는 암호화 키(encryption key)를 사용한다. 암호화 키는 일반적으로 사용자 정보(user information), 암호, 또는 난수(random number)로부터 생성하거나 이들을 조합하여 생성한다. 메모리 시스템은 난수를 생성하기 위해서 난수 발생기(random number generator)를 별도로 구비한다.
본 발명의 일 목적은 별도의 난수 발생기를 구비하지 않고 데이터를 암호화할 수 있는 비휘발성 메모리 장치에서의 데이터 암호화 방법을 제공하는데 있다.
본 발명의 일 목적은 별도의 난수 발생기를 구비하지 않고 데이터를 암호화할 수 있는 비휘발성 메모리 장치를 제공하는데 있다.
본 발명의 일 목적은 별도의 난수 발생기를 구비하지 않고 데이터를 암호화할 수 있는 비휘발성 메모리 장치를 포함하는 사용자 장치를 제공하는데 있다.
본 발명의 실시예들에 따른 복수의 워드라인들에 연결되는 복수의 페이지들을 구비하고, 상기 복수의 페이지들은 각각 적어도 하나의 데이터 비트를 저장할 수 있는 복수의 메모리 셀들을 구비하는 메모리 셀 어레이를 포함하는 비휘발성 메모리 장치의 데이터 암호화 방법에서는 데이터를 상기 복수의 페이지들 중 선택된 페이지의 선택된 메모리 셀들에 프로그램하고, 복수의 비트라인들을 통하여 상기 메모리 셀 어레이에 연결되는 페이지 버퍼 회로에서 디벨롭 구간의 서로 다른 제1 시점과 제2 시점에서 상기 선택된 메모리 셀들을 두 번 센싱하여 각각 랜덤 데이터와 메인 데이터로 제공하고, 상기 페이지 버퍼 회로에 연결되는 암호화 회로에서 상기 랜덤 데이터를 이용하여 상기 메인 데이터를 암호화하고, 상기 암호화된 메인 데이터를 상기 비휘발성 메모리 장치 외부로 출력한다. 상기 랜덤 데이터는 상기 선택된 메모리 셀들의 문턱 전압 산포에 기초한 랜덤성을 가진다.
본 발명의 실시예들에 따른 비휘발성 메모리 장치는 메모리 셀 어레이, 페이지 버퍼 회로, 암호화 회로, 데이터 입출력 회로 및 제어 회로를 포함한다. 상기 메모리 셀 어레이는 복수의 워드라인들에 연결되는 복수의 페이지들을 구비하고, 상기 복수의 페이지들은 각각 적어도 하나의 데이터 비트를 저장할 수 있는 복수의 메모리 셀들을 구비한다. 상기 페이지 버퍼 회로는 복수의 비트라인들을 통하여 상기 메모리 셀 어레이에 연결되며, 상기 비트라인들을 통하여 디벨롭 구간의 서로 다른 제1 시점과 제2 시점에서 상기 선택된 페이지의 선택된 메모리 셀들을 두 번 센싱하여 각각 랜덤 데이터와 메인 데이터로 제공하는 복수의 페이지 버퍼들을 구비한다. 상기 암호화 회로는 상기 페이지 버퍼 회로에 연결되고, 상기 랜덤 데이터를 이용하여 상기 메인 데이터를 암호화한다. 상기 데이터 입출력 회로는 상기 암호화 회로에 연결되고, 상기 암호화된 메인 데이터를 상기 비휘발성 메모리 장치 외부로 출력한다. 상기 제어 회로는 상기 페이지 버퍼 회로, 상기 암호화 회로 및 상기 데이터 입출력 회로를 제어한다. 상기 랜덤 데이터는 상기 선택된 메모리 셀들의 문턱 전압 산포에 기초한 랜덤성을 가진다.
본 발명의 실시예들에 따른 사용자 장치는 보안 소자, 메모리 및 프로세서를 포함한다. 상기 보안 소자는 보안 데이터를 저장한다. 상기 메모리는 사용자 데이터를 저장한다. 상기 프로세서는 상기 보안 소자 및 상기 메모리와 버스를 통하여 연결된다. 상기 프로세서는 보안 모드로 동작하는 동안에 외부 디바이스와 핸드 쉐이크 동작을 수행하여 상기 외부 장치와의 사이에 제1 보안 세션을 형성하고, 상기 제1 보안 세션의 형성에 의해 발생된 세션 정보 및 마스터 키를 상기 보안 소자에 저장하고, 비보안 모드로 동작하는 동안에 상기 핸드쉐이크 동작 없이 상기 보안 소자에 저장된 상기 세션 정보를 로딩하여, 상기 외부 장치와의 사이에 제2 보안 세션을 형성하고, 상기 보안 소자에 저장된 상기 마스터 키를 이용하여 상기 제2 보안 세션을 통해 상기 메모리로부터 제공된 암호화된 데이터를 상기 외부 장치에 제공한다. 상기 메모리는 메모리 셀들의 물리적 특성을 이용하여 내부에 저장된 상기 사용자 데이터를 자체적으로 암호화하여 상기 암호화된 데이터를 출력한다.
본 발명의 실시예들에 따르면, 메모리 셀들의 물리적 특성(메모리 셀들의 문턱 전압 산포)를 이용하여 비휘발성 메모리 장치 내부에서 자체적으로 랜덤 데이터를 생성하고, 상기 비휘발성 메모리 장치 내부에서 상기 랜덤 데이터를 이용하여 상기 메인 데이터를 암호화하고, 암호화된 메인 데이터를 비휘발성 메모리 장치 외부로 출력할 수 있다. 따라서 별도의 난수 발생기를 구비하지 않고서 랜덤 데이터를 생성하여 메인 데이터를 암호화하여 비휘발성 메모리 장치에서 출력되는 데이터가 해킹되거나 탈취되는 것을 방지할 수 있다.
도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 장치에서의 데이터 암호화 방법을 나타내는 흐름도이다.
도 2는 본 발명의 실시예들에 따른 비휘발성 메모리 장치를 나타내는 블록도이다.
도 3은 도 2의 비휘발성 메모리 장치에서 메모리 셀 어레이의 예를 나타내는 블록도이다.
도 4는 도 3의 메모리 블록들(BLK1~BLKz) 중 하나(BLKi)를 나타내는 회로도이다.
도 5는 본 발명의 실시예들에 따른 도 2의 비휘발성 메모리 장치에서 제어 회로의 구성을 나타내는 블록도이다.
도 6은 도 2 비휘발성 메모리 장치에서 페이지 버퍼 회로에 포함되는 복수의 페이지 버퍼들 중 하나를 나타내는 회로도이다.
도 7은 본 발명의 실시예들에 따른 도 7의 비휘발성 메모리 장치에서 전압 생성기의 구성을 나타내는 블록도이다.
도 8은 본 발명의 실시예들에 따른 도 2의 비휘발성 메모리 장치에서 페이지 버퍼 회로의 구성을 나타낸다.
도 9a 및 도 9b는 도 2의 메모리 셀 어레이의 하나의 페이지의 복수의 문턱 전압 산포들을 설명하기 위한 도면들이다.
도 10a는 도 2의 비휘발성 메모리 장치에서 메모리 셀 어레이, 페이비 버퍼 회로, 암호화 회로 및 데이터 입출력 회로를 나타낸다.
도 10b는 도 10a의 복수의 논리 게이트들 중 하나를 나타내는 회로도이다.
도 10c는 도 10a의 복수의 논리 게이트들 중 하나를 나타내는 회로도이다.
도 11a는 도 6의 페이지 버퍼의 센싱 노드의 레벨 변화를 나타내는 파형도이다.
도 11b는 서로 다른 문턱 전압 분포를 가지는 메모리 셀들에서 래치되는 논리 레벨을 나타낸다.
도 12는 본 발명의 실시예들에 따른 비휘발성 메모리 장치에서 도 8의 페이지 버퍼 회로의 동작을 나타낸다.
도 13은 본 발명의 실시예들에 따른 기기간 보안 통신 방법을 나타내는 순서도이다.
도 14는 본 발명의 실시예들에 따른 기기간 보안 통신 방법을 수행하는 제1 기기의 예를 나타내는 블록도들이다.
도 15 및 16은 본 발명의 실시예들에 따른 기기간 보안 통신 방법을 설명하기 위한 도면들이다.
도 17은 도 16의 제1 보안 세션을 형성하는 단계의 일 예를 나타내는 도면이다.
도 18은 도 16의 세션 정보 및 마스터 키를 보안 소자에 저장하는 단계의 일 예를 나타내는 도면이다.
도 19는 도 16의 제2 보안 세션을 형성하는 단계의 일 예를 나타내는 도면이다.
도 20 및 21은 도 16의 제1 기기와 제2 기기가 제2 보안 세션을 통해 암호화된 데이터를 주고받는 단계의 예들을 나타내는 도면들이다.
도 22는 본 발명의 실시예들에 따른 기기간 보안 통신 방법을 수행하는 IoT 네트워크 시스템을 나타내는 도면이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 장치에서의 데이터 암호화 방법을 나타내는 흐름도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 비휘발성 메모리 장치에서의 데이터 암호화 방법에 제공된다.
상기 비휘발성 메모리 장치는 복수의 워드라인들에 연결되는 복수의 페이지들을 구비하고, 상기 복수의 페이지들은 각각 적어도 하나의 데이터 비트를 저장할 수 있는 복수의 메모리 셀들을 구비하는 메모리 셀 어레이를 포함할 수 있다. 상기 방법에 의하면 데이터를 상기 복수의 페이지들 중 선택된 페이지의 선택된 메모리 셀들에 프로그램한다(단계 S10). 실시예에 있어서, 상기 메모리 셀들은 각각 복수의 문턱 전압 산포들을 이용하여 복수의 데이터 비트들을 저장할 수 있다.
복수의 비트라인들을 통하여 상기 메모리 셀 어레이에 연결되는 페이지 버퍼 회로에서 디벨롭 구간의 서로 다른 제1 시점과 제2 시점에서 상기 선택된 페이지의 선택된 메모리 셀들을 두 번 센싱하여 각각 랜덤 데이터와 메인 데이터로 제공한다(단계 S20). 실시예예 있어서, 상기 선택된 페이지에 연결되는 선택 워드라인에 제1 독출 전압이 인가되는 동안 상기 페이지 버퍼 회로는 상기 디벨롭 구간의 상기 제1 시점과 상기 제2 시점에서 상기 선택된 메모리 셀들에 더블 샘플링을 수행하여 상기 랜덤 데이터와 메인 데이터를 제공할 수 있다. 상기 랜덤 데이터는 상기 선택된 메모리 셀들의 문턱 전압 산포에 기초한 랜덤성을 가질 수 있다.
실시예에 있어서, 상기 랜덤 데이터와 메인 데이터로 제공하기 위하여 상기 제1 시점에서 상기 선택 페이지의 메모리 셀들을 제1 센싱하여 상기 페이지 버퍼 회로의 페이지 버퍼들 각각에 상기 랜덤 데이터로 저장하고, 상기 제2 시점에서 상기 선택 페이지의 메모리 셀들을 제2 센싱하여 상기 페이지 버퍼들 각각에 상기 메인 데이터로서 저장할 수 있다.
상기 랜덤 데이터는 상기 페이지 버퍼들 각각의 센싱 래치를 통하여 상기 페이지 퍼버들 각각의 제1 데이터 래치에 저장될 수 있다. 상기 메인 데이터는 상기 센싱 래치를 통하여 상기 페이지 버퍼들 각각의 제2 데이터 래치에 저장될 수 있다.
실시예에 있어서, 상기 제1 시점은 상기 제2 시점보다 선행할 수 있다. 실시예에 있어서, 상기 제2 시점은 상기 디벨롭 구간의 시작 시점보다 상기 디벨롭 구간의 종료 시점에 더 가까울 수 있다.
상기 페이지 버퍼 회로에 연결되는 암호화 회로에서 상기 랜덤 데이터를 이용하여 상기 메인 데이터를 암호화한다(단계 S30). 실시예에 있어서, 상기 암호화 회로는 상기 메인 데이터와 상기 랜덤 데이터에 대하여 논리 연산을 수행하여 상기 암호화된 메인 데이터를 생성할 수 있다. 상기 논리 연산은 상기 메인 데이터와 상기 랜덤 데이터에 대한 배타적 오어 연산일 수 있다. 상기 논리 연산은 상기 상기 메인 데이터와 상기 랜덤 데이터에 대한 배타적 노어 연산일 수 있다.
상기 페이지 버퍼 회로에 연결되는 데이터 입출력 회로에서 상기 암호화된 메인 데이터를 상기 비휘발성 메모리 장치의 외부로 출력할 수 있다(단계 S40).
따라서 본 발명의 실시예들에 따른 비휘발성 메모리 장치에서의 데이터 암호화 방법에서는 비휘발성 메모리 장치에 포함되는 메모리 셀들의 물리적 특성(메모리 셀들의 문턱 전압 산포)를 이용하여 비휘발성 메모리 장치 내부에서 자체적으로 랜덤 데이터를 생성하고, 상기 비휘발성 메모리 장치 내부에서 상기 랜덤 데이터를 이용하여 상기 메인 데이터를 암호화하고, 암호화된 메인 데이터를 비휘발성 메모리 장치 외부로 출력할 수 있다. 따라서 별도의 난수 발생기를 구비하지 않고서 랜덤 데이터를 생성하여 메인 데이터를 암호화하여 비휘발성 메모리 장치에서 출력되는 데이터가 해킹되거나 탈취되는 것을 방지할 수 있다.
도 2는 본 발명의 실시예들에 따른 비휘발성 메모리 장치를 나타내는 블록도이다.
도 2를 참조하면, 비휘발성 메모리 장치(300)는 메모리 셀 어레이(310), 어드레스 디코더(405), 페이지 버퍼 회로(410), 암호화 회로(470), 데이터 입출력 회로(480), 제어 회로(500) 및 전압 생성기(700)를 포함할 수 있다.
메모리 셀 어레이(310)는 스트링 선택 라인(SSL), 복수의 워드라인들(WLs) 및 접지 선택 라인(GSL)을 통해 어드레스 디코더(405)와 연결될 수 있다. 또한, 메모리 셀 어레이(310)는 복수의 비트 라인들(BL1~BL2n))을 통해 페이지 버퍼 회로(410)와 연결될 수 있다. 메모리 셀 어레이(310)는 복수의 워드 라인들(WLs) 및 복수의 비트 라인들(BLs)에 연결되는 복수의 메모리 셀들을 포함할 수 있다.
실시예에 있어서, 메모리 셀 어레이(310)는 기판 상에 삼차원 구조(또는 수직 구조)로 형성되는 삼차원(three dimensional) 메모리 셀 어레이일 수 있다. 이 경우, 메모리 셀 어레이(310)는 서로 적층되어 형성되는 복수의 메모리 셀들을 포함하는 수직 메모리 셀 스트링들을 포함할 수 있다.
실시예에 있어서, 메모리 셀 어레이(310)는 기판 상에 2차원 구조(로 형성되는 평판형 메모리 셀 어레이일 수 있다.
도 3은 도 2의 비휘발성 메모리 장치에서 메모리 셀 어레이의 예를 나타내는 블록도이다.
도 3를 참조하면, 메모리 셀 어레이(310)는 복수의 메모리 블록들(BLK1~BLKz, z는 3 이상의 자연수)을 포함한다.
실시예에 있어서, 메모리 블록들은 도 2에 도시된 어드레스 디코더(405)에 의해 선택된다. 예를 들면, 어드레스 디코더(405)는 메모리 블록들(BLK1~BLKz) 중 블록 어드레스에 대응하는 메모리 블록(BLK)을 선택할 수 있다.
도 4는 도 3의 메모리 블록들(BLK1~BLKz) 중 하나(BLKi)를 나타내는 회로도이다.
도 4에 도시된 메모리 블록(BLKi, i는 1에서 z 중 하나)은 기판 상에 삼차원 구조로 형성되는 삼차원 메모리 블록을 나타낸다. 예를 들어, 메모리 블록(BLKi)에 포함되는 복수의 메모리 셀 스트링들은 상기 기판과 수직한 방향으로 형성될 수 있다.
도 4를 참조하면, 메모리 블록(BLKi)은 비트 라인들(BL1, BL2, BL3)과 공통 소스 라인(CSL) 사이에 연결되는 복수의 메모리 셀 스트링들(또는 낸드 스트링들, NS11~NS33)을 포함할 수 있다.
복수의 메모리 셀 스트링들(NS11~NS33) 각각은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1, MC2, ..., MC8) 및 접지 선택 트랜지스터(GST)를 포함할 수 있다. 스트링 선택 트랜지스터(SST)는 상응하는 스트링 선택 라인(SSL1, SSL2, SSL3)에 연결될 수 있다. 복수의 메모리 셀들(MC1, MC2, ..., MC8)은 각각 상응하는 워드 라인(WL1, WL2, ..., WL8)에 연결될 수 있다. 접지 선택 트랜지스터(GST)는 상응하는 접지 선택 라인(GSL1, GSL2, GSL3)에 연결될 수 있다. 스트링 선택 트랜지스터(SST)는 상응하는 비트 라인(BL1, BL2, BL3)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결될 수 있다. 동일 높이의 워드 라인(예를 들면, WL1)은 공통으로 연결되고, 접지 선택 라인(GSL1, GSL2, GSL3) 및 스트링 선택 라인(SSL1, SSL2, SSL3)은 각각 분리될 수 있다.
다시 도 2를 참조하면, 제어 회로(500)는 외부 장치(메모리 컨트롤러또는 프로세서)로부터 커맨드 신호(CMD) 및 어드레스 신호(ADDR)를 수신하고, 커맨드 신호(CMD) 및 어드레스 신호(ADDR)에 기초하여 비휘발성 메모리 장치(300)의 소거 루프, 프로그램 루프 및 독출 동작을 제어할 수 있다. 여기서 프로그램 루프는 프로그램 동작과 프로그램 검증 동작을 포함할 수 있고, 소거 루프는 소거 동작과 소거 검증 동작을 포함할 수 있다.
예를 들어, 제어 회로(500)는 커맨드 신호(CMD)에 기초하여 전압 생성기(700)를 제어하기 위한 제어 신호들(CTLs), 페이지 버퍼 회로(410)를 제어하기 위한 페이지 버퍼 제어 신호(PCTL), 암호화 회로(470)를 제어하기 위한 제어 신호(ECTL) 및 데이터 입출력 회로를 제어하기 위한 제어 신호(DCTL)을 생성하고, 제어 신호들(CTLs)을 전압 생성기(700)에 제공하고, 페이지 버퍼 제어 신호(PCTL)를 페이지 버퍼 회로(410)에 제공하고, 제어 신호(ECTL)를 암호화 회로(470)에 제공하고, 제어 신호(DCTL)를 데이터 입출력 회로(480)에 제공할 수 있다.
제어 회로(500)는 또한 어드레스 신호(ADDR)에 기초하여 로우 어드레스(R_ADDR) 및 컬럼 어드레스(C_ADDR)를 생성할 수 있다. 제어 회로(500)는 로우 어드레스(R_ADDR)를 어드레스 디코더(405)에 제공하고, 컬럼 어드레스(C_ADDR)를 데이터 입출력 회로(480)에 제공할 수 있다.
어드레스 디코더(405)는 스트링 선택 라인(SSL), 복수의 워드 라인들(WLs) 및 접지 선택 라인(GSL)을 통해 메모리 셀 어레이(300)와 연결될 수 있다. 프로그램 동작 또는 독출 동작 시, 어드레스 디코더(405)는 제어 회로(500)로부터 제공되는 로우 어드레스(R_ADDR)에 기초하여 복수의 워드 라인들(WLs) 중의 하나를 선택 워드라인으로 결정하고, 복수의 워드 라인들(WLs) 중에서 선택 워드라인을 제외한 나머지 워드 라인들을 비선택 워드라인들로 결정할 수 있다.
전압 생성기(700)는 제어 회로(500)로부터 제공되는 제어 신호들(CTLs)에 기초하여 비휘발성 메모리 장치(200)의 동작에 필요한 워드 라인 전압들(VWLs) 및 전압(Vdd)을 생성할 수 있다. 전압 생성기(700)로부터 생성되는 워드 라인 전압들(VWLs)은 어드레스 디코더(430)를 통해 복수의 워드 라인들(WLs)에 인가될 수 있다. 또한 전압 생성기(700)로부터 생성되는 전압(Vdd)은 페이지 버퍼 회로(410)에 제공될 수 있다.
예를 들어, 소거 동작 시, 전압 생성기(700)는 메모리 블록의 웰에 소거 전압을 인가하고 메모리 블록의 모든 워드라인들에 접지 전압을 인가할 수 있다. 소거 검증 동작 시, 전압 생성기(700)는 하나의 메모리 블록의 모든 워드라인들에 소거 검증 전압을 인가하거나 워드라인 단위로 소거 검증 전압을 인가할 수 있다. 예를 들어, 프로그램 동작 시, 전압 생성기(700)는 선택 워드라인에 프로그램 전압을 인가하고, 비선택 워드라인들에는 프로그램 패스 전압을 인가할 수 있다. 또한 프로그램 검증 동작 시, 전압 생성기(700)는 선택 워드라인에 프로그램 검증 전압을 인가하고, 비선택 워드라인들에는 검증 패스 전압을 인가할 수 있다. 또한, 독출 동작 시, 전압 생성기(700)는 선택 워드라인에 기본 독출 전압을 인가하고, 비선택 워드라인들에는 독출 패스 전압을 인가할 수 있다.
페이지 버퍼 회로(410)는 복수의 비트 라인들(BLs)을 통해 메모리 셀 어레이(300)와 연결될 수 있다. 페이지 버퍼 회로(410)는 복수의 페이지 버퍼를 포함할 수 있다. 페이지 버퍼 회로(410)는 프로그램 동작 시 선택된 페이지에 프로그램될 데이터를 임시로 저장하고, 독출 동작 시 선택된 페이지로부터 독출된 데이터를 임시로 저장할 수 있다.
복수의 페이지 버퍼들은 각각 적어도 두 개의 래치들을 포함할 수 있고, 복수의 페이지 버퍼들은 비트라인들(BLs)을 통하여 디벨롭 구간의 서로 다른 제1 시점과 제2 시점에서 선택된 페이지의 선택된 메모리 셀들을 두 번 센싱하여 각각 랜덤 데이터(RDN)와 메인 데이터(MDTA)로 저장하고, 저장된 랜덤 데이터(RDN)와 메인 데이터(MDTA)를 암호화 회로(470)에 제공할 수 있다. 상기 랜덤 데이터(RDN)는 상기 선택된 메모리 셀들의 문턱 전압 산포에 기초한 랜덤성을 가질 수 있다.
암호화 회로(470)는 페이지 버퍼 회로(410)로부터 랜덤 데이터(RDN)와 메인 데이터(MDTA)를 수신하고, 랜덤 데이터(RDN)를 이용하여 메인 데이터(MDTA)를 암호화하고, 암호화된 메인 데이터(ENDTA)를 데이터 입출력 회로에 제공할 수 있다.
데이터 입출력 회로(480)는 페이지 버퍼 회로(410) 및 암호화 회로(480)에 연결될 수 있다. 프로그램 동작 시, 데이터 입출력 회로(480)는 외부 장치로부터 프로그램 데이터(DTA)를 수신하고, 제어 회로(500)로부터 제공되는 컬럼 어드레스(C_ADDR)에 기초하여 프로그램 데이터(DTA)를 페이지 버퍼 회로(410)에 제공할 수 있다. 독출 동작 시, 데이터 입출력 회로(420)는 제어 회로(500)로부터 제공되는 컬럼 어드레스(C_ADDR)에 기초하여 암호화 회로(470)에서 제공되는 암호화된 메인 데이터(ENDTA)를 상기 외부 장치에 제공할 수 있다.
따라서 비휘발성 메모리 장치(300)는 메모리 셀 어레이(310)에 포함되는 메모리 셀들의 물리적 특성(메모리 셀들의 문턱 전압 산포)을 이용하여 디벨롭 구간의 제1 시점에서 선택된 메모리 셀들을 센싱하여 랜덤 데이터를 생성하고, 랜덤 데이터를 이용하여 메인 데이터를 내부에서 암호화하고, 암호화된 메인 데이터(ENDTA)를 비휘발성 메모리 장치(300) 외부로 출력할 수 있다.
도 5는 본 발명의 실시예들에 따른 도 2의 비휘발성 메모리 장치에서 제어 회로의 구성을 나타내는 블록도이다.
도 5를 참조하면, 제어 회로(500)는 커맨드 디코더(510), 어드레스 버퍼(520) 및 제어 신호 생성기(530)를 포함할 수 있다.
커맨드 디코더(510)는 커맨드 신호(CMD)를 디코딩하여 디코딩된 커맨드(D_CMD)를 제어 신호 생성기(530)에 제공할 수 있다. 어드레스 버퍼(520)는 어드레스 신호(ADDR)를 수신하고, 어드레스 신호(ADDR) 중 로우 어드레스(R_ADDR)는 어드레스 디코더(405)에 제공하고 컬럼 어드레스(C_ADDR)는 데이터 입출력 회로(480)에 제공할 수 있다.
제어 신호 생성기(530)는 디코딩된 커맨드(D_CMD)를 수신하고, 디코딩된 커맨드(D_CMD)가 지시하는 동작에 기초하여 제어 신호들(CTLs)을 생성하여 전압 생성기(600)에 제공하고, 페이지 버퍼 제어 신호(PCTL)를 생성하여 페이지 버퍼 회로(410)에 제공하고, 제어 신호(DCTL)를 생성하여 데이터 입출력 회로(480)에 제공하고, 제어 신호(ECTL)를 생성하여 암호화 회로(470)에 제공할 수 있다.
도 6은 도 2 비휘발성 메모리 장치에서 페이지 버퍼 회로에 포함되는 복수의 페이지 버퍼들 중 하나를 나타내는 회로도이다.
도 6을 참조하면, 페이지 버퍼(PB)는 프리차지 회로(430), 스위치 회로(435) 및 감지 및 래치 회로(440)를 포함할 수 있다.
페이지 버퍼(PB)의 프리차지 회로(430), 스위치 회로(435) 및 감지 및 래치 회로(440)는 제어 회로(500)의 페이지 버퍼 제어 신호(PBC)에 응답하여 동작한다. 페이지 버퍼 제어 신호(PBC)는 로드 신호(LOAD), 비트라인 셋-업 신호(BLSTP), 비트라인 전압 제어 신호(BLSHF), 비트라인 선택 신호(BLSLT), 실드 신호(SHLD), 리프레쉬 신호(RFR) 세트 신호(SET) 및 센스 인에이블 신호(SEN_EN)를 포함할 수 있다.
프리차지 회로(430)는 센싱 노드(SO)에 프리차지 전압(Vdd)을 공급한다. 프리차지 회로(430)는 프리차지 전압(Vdd)과 센싱 노드(SO) 사이에 직렬로 연결되는 제1 피모스 트랜지스터(431) 및 제2 피모스 트랜지스터(432)를 포함한다. 제1 피모스 트랜지스터(431)는 로드 신호(LOAD)에 응답하여 온/오프 되고, 제2 피모스 트랜지스터(432)는 비트라인 셋-업 신호(BLSTP1)에 응답하여 온/오프될 수 있다.
스위치 회로(435)는 트랜지스터들(M1, M2, M3)을 포함할 수 있다. 트랜지스터(M1)는 비트라인 전압 제어 신호(BLSHF)에 응답하여 소정의 전압 레벨로 비트라인(BL)을 프리차지한다. 트랜지스터(M2)는 비트라인 선택 신호(BLSLT)에 응답하여 비트 라인(BL)을 선택한다. 트랜지스터(M3)는 실드 신호(SHLD)에 응답하여 비트 라인(BL)을 방전한다.
감지 및 래치 회로(440)는 센싱 노드(SO)의 전압 레벨을 검출한다. 검출된 센싱 노드(SO)의 전압 레벨에 따라 데이터가 래치된다. 감지 및 래치 회로(440)는 래치(441) 및 엔모스 트랜지스터들(MT1~MT4)을 포함할 수 있다.
래치(441)는 인버터들(INV1, INV2)을 포함할 수 있다. 엔모스 트랜지스터들(MT1, MT3)는 제1 노드(N11)와 접지 전압 사이에 연결되고, 엔모스 트랜지스터들(MT2, MT4)는 제2 노드(N12)와 접지 전압 사이에 연결된다. 엔모스 트랜지스터(MT1)의 게이트에는 세트 신호(SET)가 인가되고, 엔모스 트랜지스터(MT2)의 게이트에는 센싱 인에이블 신호(SEN_EN)가 인가되고, 엔모스 트랜지스터(MT3)의 게이트에는 리프레쉬 신호(RFR)가 인가되고, 엔모스 트랜지스터(MT4)의 게이트는 센싱 노드(SO)에 연결될 수 있다. 감지 및 래치 회로(440)는 제어 신호(PBC)에 포함되는 제어 신호들(SET, SEN_EN, RFR)에 응답하여 동작한다. 특히, 디벨롭 구간의 제1 시점과 제2 시점에서 센싱 인에이블 신호(SEN_EN)가 각각 활성화되어 선택된 메모리 셀들에 대한 제1 센싱과 제2 센싱을 수행할 수 있다.
도 7은 본 발명의 실시예들에 따른 도 7의 비휘발성 메모리 장치에서 전압 생성기의 구성을 나타내는 블록도이다.
도 7을 참조하면, 전압 생성기(700)는 고전압 생성기(710) 및 저전압 생성기(730)를 포함할 수 있다. 실시예에 있어서, 전압 생성기(700)는 음전압(negative voltage) 생성기(750) 및 전원 전압 생성기(Vdd generator)(770)를 더 포함할 수 있다.
고전압 생성기(710)는 제1 제어 신호(CTL1)에 응답하여 커맨드(CMD)가 지시하는 동작에 따라 프로그램 전압(VPGM), 프로그램 패스 전압(VPPASS), 검증 패스 전압(VVPASS), 독출 패스 전압(VRPASS) 및 소거 전압(VRES)을 생성할 수 있다.
프로그램 전압(VPGM)은 선택 워드라인에 인가되고, 프로그램 패스 전압(VPPASS), 프로그램 검증 패스 전압(VVPASS), 독출 패스 전압(VRPASS)은 비선택 워드라인들에 인가되고, 소거 전압(VRES)은 메모리 블록의 웰에 인가될 수 있다. 제1 제어 신호(CTL1)는 복수의 비트들을 포함하여 디코딩된 커맨드(D_CMD)가 지시하는 동작을 나타낼 수 있다.
저전압 생성기(730)는 제2 제어 신호(CTL2)에 응답하여 커맨드(CMD)가 지시하는 동작에 따라 프로그램 검증 전압(VPV), 기본 독출 전압(VRD), 및 소거 검증 전압(VEV)을 생성할 수 있다. 프로그램 검증 전압(VPV), 기본 독출 전압(VRD) 및 소거 검증 전압(VEV)은 동작에 따라 선택 워드라인에 인가될 수 있다. 제2 제어 신호(CTL2)는 복수의 비트들을 포함하여 디코딩된 커맨드(D_CMD)가 지시하는 동작을 나타낼 수 있다.
음전압 생성기(750)는 제3 제어 신호(CTL3)에 응답하여 커맨드(CMD)가 지시하는 동작에 따라 음의 레벨을 가지는 프로그램 검증 전압(VPV'), 독출 전압(VRD'), 및 소거 검증 전압(VEV')을 생성할 수 있다. 제3 제어 신호(CTL3)는 복수의 비트들을 포함하여 디코딩된 커맨드(D_CMD)가 지시하는 동작을 나타낼 수 있다.
전원 전압 생성기(770)는 제4 제어 신호(CTL4)에 응답하여 커맨드(CMD)가 지시하는 동작에 따라 전원 전압(Vdd) 및 페이지 버퍼 회로(410)의 동작에 필요한 전압들을 생성할 수 있다. 제4 제어 신호(CTL4)는 복수의 비트들을 포함하여 디코딩된 커맨드(D_CMD)가 지시하는 동작을 나타낼 수 있다.
도 8은 본 발명의 실시예들에 따른 도 2의 비휘발성 메모리 장치에서 페이지 버퍼 회로의 구성을 나타낸다.
도 8을 참조하면, 페이지 버퍼 회로(410)는 비트라인들(BL1~BLn, n은 3 이상의 자연수)을 통하여 메모리 셀 어레이(310)에 연결되는 복수의 페이지 버퍼들(411~41n)을 포함할 수 있다. 복수의 페이지 버퍼들(411~411n)은 각각 감지 래치(SL), 데이터 래치들(DL1~DL3) 및 캐시 래치(CL)를 포함할 수 있다.
도 9a 및 도 9b는 도 2의 메모리 셀 어레이의 하나의 페이지의 복수의 문턱 전압 산포들을 설명하기 위한 도면들이다.
간결한 설명을 위하여, 비휘발성 메모리 장치(300)에 포함된 메모리 셀들은 3-비트를 저장하는 삼중 레벨 셀(TLC, Triple Level Cell)이며, 메모리 셀들의 프로그램 상태를 판별하기 위한 독출 전압 세트는 7개의 읽기 전압들을 포함하는 것으로 가정한다.
도 9a를 참조하면, 비휘발성 메모리 장치(300)에 포함된 메모리 셀들은 소거 상태(E) 및 제 1 내지 제 7 프로그램 상태들(P1~P7) 중 어느 하나의 상태를 가질 수 있다. 비휘발성 메모리 장치(300)는 외부의 메모리 컨트롤러의 제어에 따라 기본 독출 전압 세트(VRD1~VRD7)를 기반으로 메모리 셀들의 프로그램 상태를 판별하여 독출 데이터를 출력할 수 있다. 예시적으로, 기본 독출 전압 세트(VRD1~VRD7)의 전압 레벨들은 메모리 셀들의 특성을 고려하여 미리 정해진 전압 레벨들일 수 있다. 예를 들어, 기본 독출 전압 세트(VRD1~VRD7)의 전압 레벨들은 메모리 셀들이 프로그램된 직후의 문턱 전압 산포를 고려하여 결정된 레벨들일 수 있다.
다음으로, 도 9b를 참조하면, 메모리 셀들의 물리적 특성 또는 외부 요인으로 인하여 메모리 셀들이 프로그램된 이후 시간이 경과함에 따라 메모리 셀들의 문턱 전압 산포가 도 9b에 도시된 바와 같이 변화할 수 있다. 프로그램과 소거의 반복에 따라 메모리 셀들의 문턱 전압 산포는 더욱 변화할 수 있다.
본 발명의 실시예들에서는 메모리 셀들의 문턱 전압 산포의 랜덤성을 이용하여 디벨롭 구간의 제1 시점에서 선택된 메모리 셀들을 센싱하여 랜덤데이터를 제공할 수 있다.
도 10a는 도 2의 비휘발성 메모리 장치에서 메모리 셀 어레이, 페이비 버퍼 회로, 암호화 회로 및 데이터 입출력 회로를 나타낸다.
도 10a를 참조하면, 메모리 셀 어레이(310a)는 공통 소스 라인(CSL)과 비트라인들(BL1~BLn, n은 3이상의 자연수) 사이에 연결되는 낸드 스트링들(NS1~NSn)을 포함할 수 있다. 낸드 스트링들(NS1~NSn) 각각은 스트링 선택 라인(SSL)에 연결되는 스트링 선택 트랜지스터, 워드라인들(WL1~WLm)에 연결되는 직렬 연결되는 메모리 셀들 및 접지 선택 라인(GSL)에 연결되는 접지 선택 트랜지스터를 포함할 수 있다. 워드라인들(WL1~WLm) 각각의 방향으로 연결되는 메모리 셀들을 페이지라 하고, 도 10에서는 선택된 워드라인(WLj)에 연결되는 페이지(PG)에 포함되는 메모리 셀들을 선택된 메모리 셀들이라 한다.
페이지 버퍼 회로(410)는 비트라인들(BL1~BLn) 각각을 통하여 낸드 스트링들(NS1~NSn) 각각에 연결되는 페이지 버퍼들(411~41n)을 포함할 수 있다. 페이지 버퍼들(411~41n)은 페이지 버퍼 제어 신호(PCTL)에 응답하여 디벨롭 구간의 제1 시점과 제2 시점에서 선택된 페이지(PG)의 선택된 메모리 셀들을 각각 센싱하여 랜덤 데이터(RDN)의 비트들(RD1~RDn)과 메인 데이터(MDTA)의 비트들(MD1~MDn)을 암호화 회로(470)에 제공할 수 있다. 비트들(RD1~RDn)들은 랜덤 데이터(RDN)를 구성할 수 있고, 비트들(MD1~MDn)은 메인 데이터(MDTA)를 구성할 수 있다.
암호화 회로(470)는 페이지 버퍼들(411~41n) 각각에 대응되는 복수의 논리 게이트(LG)들(471~47n)을 포함할 수 있다. 논리 게이트들(471~47n) 각각은 제어 신호(ECTL)에 응답하여 랜덤 데이터(RDN)의 비트들(RD1~RDn) 각각과 메인 데이터(MDTA)의 비트들(MD1~MDn) 각각에 대하여 논리 연산을 수행하여 암호화된 메인 데이터(ENDTA)의 각 비트들(ENB1~ENBn)을 출력할 수 있다. 상기 논리 연산은 배타적 오어 연산 또는 배타적 노어 연산일 수 있다.
데이터 입출력 회로(480)는 제어 신호(DCTL)에 응답하여 암호화된 메인 데이터(ENDTA)를 비휘발성 메모리 장치(300) 외부로 출력할 수 있다.
도 10b는 도 10a의 복수의 논리 게이트들 중 하나를 나타내는 회로도이다.
도 10b에서는 논리 게이트(471)를 나타내지만, 논리 게이트들(472~47n) 각각은 논리 게이트(471)와 동일할 수 있다.
도 10b를 참조하면, 논리 게이트(471a)는 배타적 오어 게이트(XOR)로 구성될 수 있다. 배타적 오어 게이트(XOR)는 랜덤 데이터 비트(RD1)와 메인 데이터 비트(MD1)에 대하여 배타적 오어 연산을 수행하여 암호화된 비트(ENB1)를 출력할 수 있다.
도 10c는 도 10a의 복수의 논리 게이트들 중 하나를 나타내는 회로도이다.
도 10c에서는 논리 게이트(471)를 나타내지만, 논리 게이트들(472~47n) 각각은 논리 게이트(471)와 동일할 수 있다.
도 10c를 참조하면, 논리 게이트(471b)는 배타적 노어 게이트(XNOR)로 구성될 수 있다. 배타적 노어 게이트(XNOR)는 랜덤 데이터 비트(RD1)와 메인 데이터 비트(MD1)에 대하여 배타적 오어 연산을 수행하여 암호화된 비트(ENB1)를 출력할 수 있다.
도 11a는 도 6의 페이지 버퍼의 센싱 노드의 레벨 변화를 나타내는 파형도이고, 도 11b는 서로 다른 문턱 전압 분포를 가지는 메모리 셀들에서 래치되는 논리 레벨을 나타낸다.
도 11a를 참조하면, 메모리 셀들의 문턱 전압 레벨에 따른 센싱 노드(SO)의 레벨 변화 및 디벨롭 시점에 따른 센싱 결과를 간략히 나타내고 있다. TO 시점부터 T1 시점까지는 프리차지 구간(Precharge), T1 시점부터 T4시점까지 디벨롭 구간(Develop), 그리고 T4 시점부터 T5 시점까지는 암호화 구간(Encryption)이라 칭하기로 한다. 실시예에 있어서, 암호화 구간(Encryption)은 래치 구간을 포함할 수 있다. 디벨롭(Deveiop) 구간에서는 로드 신호(LOAD)가 비활성화되고, 래치 구간에서는 비트라인 전압 제어 신호(BLSHF)가 비활성화된다.
도 6 및 도 11a를 참조하면 프리차지 구간(Precharge)에서, 로드 신호(LOAD) 및 비트라인 전압 제어신호(BLSHF)가 모두 활성화되어 비트라인(BL) 및 센싱 노드(SO)가 프리차지된다. 프리차지 구간(Precharge)에서, 센싱 노드(SO)는 프리차지 전압(VPRE)으로 충전된다.
디벨롭 구간(Develop)이 시작되는 T1 시점에서, 로드 신호(LOAD)가 비활성화된다. 이 구간에서 비트라인 전압 제어 신호(BLSHF)는 여전히 활성화 상태를 유지한다. 따라서, 메모리 셀의 프로그램 상태에 따른 문턱 전압 상태에 따라 센싱 노드(SO)에 충전된 전하가 비트 라인(BL)으로 이동한다. 메모리 셀들의 문턱 전압 분포(C_DIS)에 따라 메모리 센싱 노드(SO)의 레벨은 참조 번호들(611, 613)이 도시하는 바와 같이 변화할 수 있다. 참조 번호(611)는 제1 메모리 셀(#1)에 연결되는 센싱 노드(SO)의 레벨 변화를 나타내고, 참조 번호(613)는 제2 메모리 셀(#2) 에 연결되는 센싱 노드(SO)의 레벨 변화를 나타낸다.
디벨롭 구간(Develop)의 T2 시점(제1 시점)에서 센싱 인에이블 신호(SEN_EN)를 활성화시켜 센싱 노드(SO)를 래치하면(메모리 셀들을 제1 센싱(SEN1)하면), 제1 메모리 셀(#1)에 연결되는 센싱 노드(SO)의 레벨은 기준 전압(VREF)보다 높으므로 논리 '0'의 랜덤 데이터의 비트가 래치되고, 제2 메모리 셀(#2)에 연결되는 센싱 노드(SO)의 레벨은 기준 전압(VREF)보다 낮으므로 논리 '1'의 랜덤 데이터의 비트가 래치된다.
디벨롭 구간(Develop)의 T3 시점(제2 시점)에서 센싱 인에이블 신호(SEN_EN)를 활성화시켜 센싱 노드(SO)를 래치하면(메모리 셀들을 제2 센싱(SEN2)하면), 제1 메모리 셀(#1)에 연결되는 센싱 노드(SO)의 레벨은 기준 전압(VREF)보다 낮으므로 논리 '1'의 메인 데이터의 비트가 래치되고, 제2 메모리 셀(#2)에 연결되는 센싱 노드(SO)의 레벨은 기준 전압(VREF)보다 낮으므로 논리 '1'의 랜덤 데이터의 비트가 래치된다.
T4 시점 내지 T5 시점의 암호화 구간(Encryption)에서 제1 메모리 셀 및 제2 메모리 셀들 각각의 랜덤 데이터와 메인 데이터에 대하여 배타적 오어 연산(XOR)을 수행하여 암호화된 메인 데이터(ENDTA)를 출력할 수 있다.
도 12는 본 발명의 실시예들에 따른 비휘발성 메모리 장치에서 도 8의 페이지 버퍼 회로의 동작을 나타낸다.
도 12에서는 도 10의 페이지 버퍼들(411~41n)중 페이지 버퍼(411)의 동작을 나타내지만, 다른 페이지 버퍼들(412~41n)의 동작도 페이지 버퍼(411)의 동작과 실질적으로 유사하다.
도 12를 참조하면, 페이지 버퍼(411)는 감지 노드(SO)에서 비트라인(BL1)과 병렬로 연결되는 감지 래치(SL), 데이터 래치들(DL1~DL3) 및 캐시 래치(CL)를 포함한다. 제1 센싱에서 제1 독출 전압을 이용하여 감지된 랜덤 데이터는 참조 번호(621)가 나타내는 바와 같이, 감지 래치(SL)를 통하여 제1 데이터 래치(DL1)에 저장되고, 제2 센싱에서 제1 독출 전압을 이용하여 감지된 메인 데이터는 참조 번호(622)가 나타내는 바와 같이, 감지 래치(SL)를 통하여 제2 데이터 래치(DL2)에 저장될 수 있다. 데이터 래치들(DL1, DL2)에 저장된 데이터는 페이지 버퍼 제어 신호(PCTL)에 응답하여 암호화 회로(470)에 제공될 수 있다.
따라서 본 발명의 실시예들에 따른 비휘발성 메모리 장치에서는 메모리 셀들의 물리적 특성(메모리 셀들의 문턱 전압 산포)를 이용하여 비휘발성 메모리 장치 내부에서 자체적으로 랜덤 데이터를 생성하고, 상기 비휘발성 메모리 장치 내부에서 상기 랜덤 데이터를 이용하여 상기 메인 데이터를 암호화하고, 암호화된 메인 데이터를 비휘발성 메모리 장치 외부로 출력할 수 있다. 따라서 별도의 난수 발생기를 구비하지 않고서 랜덤 데이터를 생성하여 메인 데이터를 암호화하여 비휘발성 메모리 장치에서 출력되는 데이터가 해킹되거나 탈취되는 것을 방지할 수 있다.
도 13은 본 발명의 실시예들에 따른 기기간 보안 통신 방법을 나타내는 순서도이다.
도 13을 참조하면, 본 발명의 실시예들에 따른 기기간 보안 통신 방법에서는, 제1 기기가 보안 모드로 동작하는 동안에, 상기 제1 기기와 제2 기기가 핸드쉐이크(handshake) 동작을 수행하여, 상기 제1 기기와 상기 제2 기기 사이의 제1 보안 세션(session)을 형성한다(단계 S100). 도 15를 참조하여 후술하는 것처럼, 상기 제1 기기는 상기 보안 모드 및 비보안 모드 중 하나로 동작할 수 있다. 상기 제1 보안 세션은 상기 보안 모드에서 형성될 수 있으며, 상기 보안 모드에서만 사용될 수 있다. 다시 말하면, 상기 제1 보안 세션은 상기 보안 모드에서만 유효한 세션일 수 있다. 상기 핸드쉐이크 동작에 대해서는 도 17을 참조하여 후술하도록 한다.
이하에서 제1 기기는 사용자 장치(user device)에 해당할 수 있고, 제2 기기는 외부 장치(external device)에 해당할 수 있다.
상기 제1 보안 세션의 형성에 의해 발생된 세션 정보 및 마스터 키(master key 또는 master secret)를 상기 제1 기기에 포함되는 보안 소자(secure element)에 저장한다(단계 S200). 예를 들어, 단계 S200은 상기 제1 기기가 상기 보안 모드로 동작하는 동안에 수행될 수 있다. 상기 세션 정보는 IP(internet protocol) 어드레스, 포트(port) 번호, 인증서(certificate) 등을 포함할 수 있다. 상기 마스터 키는 상기 제1 기기와 상기 제2 기기가 보안 통신을 수행하는데 이용될 수 있다. 상기 보안 소자를 포함하는 상기 제1 기기의 구조에 대해서는 도 14를 참조하여 후술하도록 한다.
상기 제1 기기가 상기 비보안 모드로 동작하는 동안에, 상기 핸드쉐이크 동작 없이 상기 보안 소자에 저장된 상기 세션 정보를 로딩하여, 상기 제1 기기와 상기 제2 기기 사이의 제2 보안 세션을 형성한다(단계 S300). 이 때, 상기 보안 소자에 저장된 상기 마스터 키는 로딩되지 않는다. 상기 제2 보안 세션은 상기 비보안 모드에서 형성될 수 있으며, 상기 비보안 모드에서만 사용될 수 있다. 다시 말하면, 상기 제2 보안 세션은 상기 비보안 모드에서만 유효한 세션일 수 있다. 또한, 도 15를 참조하여 후술하는 것처럼, 상기 제2 보안 세션은 상기 제1 보안 세션과 논리적으로 구분될 뿐이며, 동일한 세션 정보를 이용하여 형성될 수 있고, 따라서 물리적으로 동일한 하나의 채널을 통해 형성될 수 있다.
상기 제1 기기와 상기 제2 기기 사이의 제2 보안 세션이 형성된 후에 제1 기기의 메모리에서 내부에 저장된 사용자 데이터를 자체적으로 암호화하여 암호화된 데이터를 상기 보안 소자에 제공한다(S400). 상기 제1 기기의 메모리는 도 1 내지 도 12를 참조하여 설명한 비휘발성 메모리 장치(300)에 해당할 수 있다. 따라서 메모리는 비휘발성 메모리 장치의 물리적 특성을 이용하여 디벨롭 구간의 제1 시점과 제2 점에서 선택된 메모리 셀들을 센싱하여 랜덤 데이터와 사용자 데이터를 제공하고, 그 내부에서 랜덤 데이터와 사용자 데이터를 암호화하여 암호화된 데이터를 보안 소자에 제공할 수 있다.
상기 보안 소자에 저장된 상기 마스터 키를 이용하여, 상기 제1 상기 제2 보안 세션을 통해 암호화된 데이터를 상기 제2 기기에 전송한다(단계 S500). 예를 들어, 단계 S500은 상기 제1 기기가 상기 비보안 모드로 동작하는 동안에 수행될 수 있다. 상술한 것처럼, 상기 제2 보안 세션을 형성할 때에는 상기 마스터 키가 상기 보안 소자로부터 로딩되지 않는다. 따라서, 상기 제2 기기에 상기 암호화된 데이터를 전송하기 위해서, 상기 제1 기기는 상기 제2 기기에 전송하고자 하는 데이터를 상기 보안 소자에 전달할 수 있으며, 상기 보안 소자에서 상기 전송하고자 하는 데이터를 다시 암호화할 수 있다.
본 발명의 실시예들에 따른 기기간 보안 통신 방법에서는, 제1 기기가 보안 모드 및 비보안 모드 중 하나로 동작할 수 있고, 보안 모드 및 비보안 모드 각각에서 제2 기기와 보안 세션을 형성할 수 있다. 이 때, 제1 기기의 보안성 향상을 위해, 보안 모드에서만 핸드쉐이크 동작을 수행하여 보안 세션을 형성하고 세션 정보를 생성할 수 있고, 비보안 모드에서는 핸드쉐이크 동작 없이 보안 모드에서 안전하게 생성된 세션 정보를 활용하여 보안 세션을 형성할 수 있으며, 보안 모드와 비보안 모드에서 세션 정보를 공유하기 위해 보안 소자가 이용될 수 있다. 따라서, 보안 모드와 비보안 모드 모두에서 동일한 보안 수준을 유지하면서 세션 형성을 위한 프로토콜을 경량화시킬 수 있으며, 상기와 같은 기기간 보안 통신 방법을 수행하는 보안 통신 시스템의 성능이 향상될 수 있다.
도 14는 본 발명의 실시예들에 따른 기기간 보안 통신 방법을 수행하는 제1 기기의 예를 나타내는 블록도들이다.
도 14를 참조하면, 제1 기기(사용자 장치, 100)는 프로세서(110) 및 보안 소자(120)를 포함한다. 제1 기기(100)는 버스(101), 메모리(130) 및 인터페이스부(140)를 더 포함할 수 있다. 도시의 편의상, 본 발명의 실시예들에 따른 기기간 보안 통신 방법의 수행과 관련성이 적은 구성요소들은 생략하였다.
프로세서(110)는 제1 기기(100)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(110)는 제1 기기(100)를 구동하기 위한 운영 체제(operating system; OS)를 실행할 수 있고, 인터넷 브라우저, 게임, 동영상, 카메라 등을 제공하는 다양한 어플리케이션들을 실행할 수 있다. 예를 들어, 프로세서(110)는 어플리케이션 프로세서(application processor), 중앙 처리 유닛(central processing unit), 마이크로프로세서(microprocessor) 등을 포함할 수 있다. 실시예에 따라서, 프로세서(110)는 하나의 프로세서 코어를 포함하는 형태(single core)로 구현되거나 복수의 프로세서 코어들을 포함하는 형태(multi-core)로 구현될 수 있다.
일 실시예에서, 도 15를 참조하여 후술하는 것처럼, 프로세서(110)는 보안 운영 체제 및 비보안 운영 체제 중 하나에 의해 구동될 수 있다. 프로세서(110) 및 이를 포함하는 제1 기기(100)는 상기 보안 운영 체제에 기초하여 보안 모드로 동작하고 보안 어플리케이션을 실행할 수 있고, 상기 비보안 운영 체제에 기초하여 비보안 모드로 동작하고 비보안 어플리케이션을 실행할 수 있다.
보안 소자(120)는 암호키(cryptographic key), 주요 데이터(sensitive DTAa), 주요 코드 등의 보안 데이터를 처리 및/또는 저장한다. 예를 들어, 보안 소자(120)는 마이크로프로빙(microprobing), 소프트웨어 공격(software attack), 도청(eavesdropping), 오류 주입(fault injection) 등과 같은 부정 조작(tampering) 공격으로부터 보호되도록 부정 조작 방지(tamper-resistant) 기능을 가질 수 있다.
일 실시예에서, 프로세서(110) 및 보안 소자(120)는 본 발명의 실시예들에 따른 기기간 보안 통신 방법을 수행하는데 이용되는 사전 공유 키(pre-shared key)를 미리 저장할 수 있다. 예를 들어, 상기 사전 공유 키는 제1 기기(100)의 제조 시에 제1 기기(100) 내의 ROM(read-only memory)과 같은 저장 공간에 미리 저장될 수 있다. 예를 들어, 프로세서(110) 및 보안 소자(120)는 보안성 향상을 위해, 상기 사전 공유 키를 각각 별도의 저장 공간(예를 들어, 도 4의 201a, 201b, 226)에 저장할 수 있다.
메모리(130)는 프로세서(110)에 의해 처리되는 데이터를 저장한다. 예를 들어, 메모리(130)는 제1 기기(100)를 부팅하기 위한 부트 이미지(boot image), 제1 기기(100)를 구동하기 위한 운영 체제와 관련된 파일 시스템(file system), 제1 기기(100)와 연결되는 외부 장치와 관련된 장치 드라이버(device driver), 제1 기기(100)에서 실행되는 어플리케이션 및 사용자와 관련된 사용자 데이터 등을 저장할 수 있다. 예를 들어, 메모리(130)는 플래시 메모리(flash memory)를 포함할 수 있다. 상술한 바와 같이 메모리(130)는 도 2의 비휘발성 메모리 장치(300)를 채용할 수 있다.
인터페이스부(140)는 외부 장치와 통신을 수행한다. 상기 외부 장치는 제1 기기(100)와 본 발명의 실시예들에 따른 기기간 보안 통신 방법을 수행하는 제2 기기일 수 있다.
예를 들어, 인터페이스부(140)는 상기 외부 장치와 와이파이(Wifi) 통신을 수행할 수도 있고, 3G 통신, LTE(long term evolution) 통신 등과 같은 무선 이동 통신(wireless mobile communication)을 수행할 수도 있으며, 그 밖에 블루투스(bluetooth), NFC(near field communication), RFID(radio-frequency identification) 등과 같은 임의의 통신을 수행할 수도 있다. 또한, 인터페이스부(140)는 외부 저장 장치 및/또는 외부 메모리 장치와 통신을 수행하는 메모리 인터페이스를 더 포함할 수 있다.
프로세서(110), 보안 소자(120), 메모리(130) 및 인터페이스부(140)는 버스(101)를 통해 서로 연결될 수 있다.
도 15 및 16은 본 발명의 실시예들에 따른 기기간 보안 통신 방법을 설명하기 위한 도면들이다. 도 15는 본 발명의 실시예들에 따른 보안 통신 시스템에서 보안 세션을 형성하기 위한 소프트웨어 및 하드웨어 구조의 일 예를 나타낸다. 도 16은 도 15의 소프트웨어 및 하드웨어 구조에 기초한 보안 통신 방법을 나타낸다.
도 15를 참조하면, 본 발명의 실시예들에 따른 보안 통신 시스템은 제1 기기(사용자 장치, 200) 및 제2 기기(외부 장치, 800)를 포함하며, 제1 기기(200)와 제2 기기(800)를 연결하는 유선 및/또는 무선의 채널(CH)을 더 포함할 수 있다.
일 실시예에서, 제1 기기(200)는 클라이언트(client) 장치일 수 있고, 제2 기기(800)는 서버(server)일 수 있다. 예를 들어, 상기 클라이언트 장치는 휴대폰(mobile phone), 스마트 폰(smart phone), 태블릿(tablet) PC(personal computer), 개인 정보 단말기(personal digital assistant; PDA), 휴대형 멀티미디어 플레이어(portable multimedia player; PMP), 디지털 카메라(digital Camera), 음악 재생기(music player), 휴대용 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, 사물 인터넷(internet of things; IoT) 기기, 만물 인터넷(internet of everything: IoE) 기기, e-북(e-book) 등과 같은 임의의 컴퓨팅 장치일 수 있다.
일 실시예에서, 상기 보안 통신 시스템이 IoT 시스템인 경우에, 제1 기기(200)는 IoT 기기일 수 있고, 제2 기기(800)는 인터넷 공유기(router)일 수 있다. 예를 들어, 상기 IoT 기기는 홈 가젯(home garget) 그룹(예를 들어, 도 22의 1010), 가전제품/가구(home appliances) 그룹(예를 들어, 도 22의 1020), 엔터테인먼트(entertainment) 그룹(예를 들어, 도 22의 1030) 및 이동 수단(예를 들어, 도 22의 1040)으로 그룹화될 수 있다. 상기 인터넷 공유기는 허브(hub), AP(access point) 등을 포함할 수 있다.
예를 들어, 상기 홈 가젯 그룹은 심박수 센서 패치, 혈당 측정용 의료 기기, 조명 기구, 습도계, 감시 카메라, 스마트 워치, 보안키 패드, 온도 조절장치, 방향 장치, 창문 블라인드 등을 포함할 수 있다. 상기 가전제품/가구 그룹은 로봇 청소기, 세탁기, 냉장고, 에어컨, TV, 가구(예를 들어, 센서를 포함하는 침대) 등을 포함할 수 있다. 상기 엔터테인먼트 그룹은 TV, 스마트 TV, 스마트 폰, 멀티미디어 영상 장치 등을 포함할 수 있다.
제1 기기(200)는 보안 모드 및 비보안 모드 중 하나로 동작할 수 있다. 상기 보안 모드에서 보안 운영 체제가 실행될 수 있고, 이에 따라 보안 환경(trusted execution environment; TEE)(202)이 구현될 수 있다. 상기 보안 모드 및 보안 환경(202)에서 보안 어플리케이션(212)이 실행될 수 있다. 상기 비보안 모드에서 비보안 운영 체제가 실행될 수 있고, 이에 따라 비보안 환경(non-trusted execution environment; NTEE)(204)이 구현될 수 있다. 상기 비보안 모드 및 비보안 환경(204)에서 비보안 어플리케이션(214)이 실행될 수 있다.
예를 들어, 상기 보안 모드 및 보안 환경(202)은 ARM사의 TrustZone® 기술에 의해 구현될 수 있다. 이 경우, 도시하지는 않았지만, 제1 기기(200)는 GIC(generic interrupt controller), TZPC(TrustZone protection controller), TZMA(TrustZone memory adapter), CFW(contents firewall), ASP(address space protector) 등을 더 포함할 수 있다. 예를 들어, 비보안 환경(204)은 리치 환경(rich execution environment; REE)이라고 부를 수 있다. 비보안 어플리케이션(214)은 일반(normal) 어플리케이션 또는 클라이언트 어플리케이션이라고 부를 수 있다.
상기 보안 모드 및 보안 환경(202)에서 동작하거나 보안 어플리케이션(212)을 실행하는 제1 기기(200)는 제1 보안 세션(SS1)을 통해 제2 기기(800)와 통신할 수 있고, 상기 비보안 모드 및 비보안 환경(204)에서 동작하거나 비보안 어플리케이션(214)을 실행하는 제1 기기(200)는 제2 보안 세션(SS2)을 통해 제2 기기(800)와 통신할 수 있다. 제1 보안 세션(SS1)과 제2 보안 세션(SS2)은 논리적으로 구분될 뿐이며, 동일한 세션 정보(SINF)를 이용하여 형성될 수 있고, 따라서 물리적으로 동일한 하나의 채널(CH)을 통해 형성될 수 있다. 예를 들어, TLS(transport layer security) 방식에 기초하여 제1 및 제2 보안 세션들(SS1, SS2)이 형성될 수 있으며, 이 때 채널(CH)은 TLS 채널이라 부를 수 있다.
제1 기기(200)는 보안 소자(220) 및 내부 채널(ICH)을 포함할 수 있다. 보안 소자(220)는 보안 데이터를 처리하는 처리부(processing unit, PU)(222), 상기 보안 데이터를 저장하는 저장부(storage, STG)(224), 및 사전 공유 키를 미리 저장하는 사전 저장 영역(pre-stored region, PS)(226)을 포함할 수 있다.
내부 채널(ICH)을 통해 보안 소자(secure element, SE)(220)와의 내부 통신이 수행될 수 있으며, 상기 보안 소자(220)와의 내부 통신을 수행하기 위해 상기 사전 공유 키가 이용될 수 있다. 예를 들어, 상기 보안 모드 및 보안 환경(202)에서 동작하거나 보안 어플리케이션(212)을 실행하는 경우에는 사전 저장 영역(201a)에 미리 저장된 상기 사전 공유 키를 이용할 수 있고, 상기 비보안 모드 및 비보안 환경(204)에서 동작하거나 비보안 어플리케이션(214)을 실행하는 경우에는 사전 저장 영역(201b)에 미리 상기 저장된 사전 공유 키를 이용할 수 있다. 예를 들어, 내부 채널(ICH)은 SE 채널로 부를 수 있다.
일 실시예에서, 상기 보안 모드 및 보안 환경(202)과 상기 비보안 모드 및 비보안 환경(204)이 동일한 하나의 프로세서(예를 들어, 도 2의 110)에 의해 구현되는 경우에, 사전 저장 영역(201a)과 사전 저장 영역(201b)은 물리적으로 동일한 영역일 수 있다. 다른 실시예에서, 상기 보안 모드 및 보안 환경(202)과 상기 비보안 모드 및 비보안 환경(204)이 서로 다른 프로세서들에 의해 구현되는 경우에, 사전 저장 영역(201a)과 사전 저장 영역(201b)은 물리적으로 서로 다른 영역일 수 있다. 일 실시예에서, 사전 저장 영역들(201a, 201b)은 사전 저장 영역(226)과는 물리적으로 서로 다른 영역일 수 있다.
도 15 및 16을 참조하면, 소프트웨어 및 하드웨어 구조와 관련하여 본 발명의 실시예들에 따른 보안 통신 시스템에 포함되는 기기간 보안 통신 방법을 설명할 수 있다.
먼저, 제1 기기(200) 내의 프로세서(예를 들어, 도 2의 110)는 보안 운영 체제 및 보안 어플리케이션(212)을 실행할 수 있고, 이에 따라 제1 기기(200) 및 상기 프로세서는 보안 모드 및 보안 환경(202)으로 동작할 수 있다. 도 16와 이후의 도 17 및 18에서, 보안 어플리케이션(212) 블록은 제1 기기(200)에 포함되고 상기 보안 모드로 동작하는 상기 프로세서에 대응할 수 있다. 상기 보안 모드로 동작하는 상기 프로세서는, 제2 기기(800)와 핸드쉐이크 동작을 수행하고, 이에 따라 제1 보안 세션(SS1)이 형성된다(단계 S100).
상기 보안 모드로 동작하는 상기 프로세서는, 제1 보안 세션(SS1)의 형성에 의해 발생된 세션 정보(SINF) 및 마스터 키(MKEY)를 제1 기기(200)에 포함되는 보안 소자(220)에 저장한다(단계 S200).
이후에, 제1 기기(200) 내의 프로세서(예를 들어, 도 2의 110)는 비보안 운영 체제 및 비보안 어플리케이션(214)을 실행할 수 있고, 이에 따라 제1 기기(200) 및 상기 프로세서는 비보안 모드 및 비보안 환경(204)으로 동작할 수 있다. 도 16과 이후의 도 19, 20 및 21에서, 비보안 어플리케이션(214) 블록은 제1 기기(200)에 포함되고 상기 비보안 모드로 동작하는 상기 프로세서에 대응할 수 있다. 상기 비보안 모드로 동작하는 상기 프로세서는, 제2 기기(800)와의 핸드쉐이크 동작 없이 보안 소자(220)에 저장된 세션 정보(SINF)를 로딩하며, 이에 따라 제2 보안 세션(SS2)이 형성된다(단계 S300).
제2 보안 세선(SS2)이 형성된 동안, 메모리(예를 들어, 도 2의 130)는 내부에 저장된 사용자 데이터를 자체적으로 암호화하여 암호화된 데이터를 보안 소자(220)에 제공한다(S400).
상기 비보안 모드로 동작하는 상기 프로세서는, 보안 소자(220)에 저장된 마스터 키(MKEY)를 이용하여, 제2 기기(800)에 제2 보안 세션(SS2)을 통해 암호화된 데이터를 전송한다(단계 S500).
도 16의 단계 S100, S200, S300, S400 및 S500은 도 13의 단계 S100, S200, S300, S400 및 S500과 각각 실질적으로 동일할 수 있다.
도 17은 도 16의 제1 보안 세션을 형성하는 단계의 일 예를 나타내는 도면이다. 도 17에서, 점선으로 표시된 화살표는 선택적으로 수행되는(즉, optional한) 동작을 나타낸다.
도 16 및 17을 참조하면, 제1 보안 세션(SS1)을 형성(단계 S100)하는데 있어서, 제1 기기(200)에 포함되고 보안 모드로 동작하는 프로세서(예를 들어, 도 2의 110)와 제2 기기(800)는 제1 연결 시도 메시지 및 제2 연결 시도 메시지를 교환할 수 있다. 예를 들어, 상기 프로세서는 상기 제1 연결 시도 메시지를 제2 기기(800)에 전송할 수 있고(단계 S112), 제2 기기(800)는 상기 제1 연결 시도 메시지에 응답하여 상기 제2 연결 시도 메시지를 상기 프로세서에 전송할 수 있다(단계 S114).
일 실시예에서, 상기 제1 연결 시도 메시지를 나타내는 "Client_Hello"는, 제1 기기(200)가 통신하고자 하는 프로토콜 버전, 제1 기기(200)의 랜덤 넘버, 제1 기기(200)의 세션 ID(identification), 제1 기기(200)가 지원하는 암호화 방식의 리스트(예를 들어, cipher suites, compression methods) 등을 포함할 수 있다. 상기 제2 연결 시도 메시지를 나타내는 "Server_Hello"는, "Client_Hello"에 포함된 상기 프로토콜 버전에 대응하여 제2 기기(800)가 동의한 프로토콜 버전, 제2 기기(300)의 랜덤 넘버, 제2 기기(800)의 세션 ID, "Client_Hello"에 포함된 상기 암호화 방식의 리스트 중 제2 기기(300)가 선택한 암호화 방식 등을 포함할 수 있다. 또한, 상기 제1 및 제2 연결 시도 메시지들 각각은 세션 정보(SINF)에 포함되는 IP 어드레스, 포트 번호를 포함할 수 있다.
상기 제1 및 제2 연결 시도 메시지들이 교환된 이후에, 상기 보안 모드로 동작하는 상기 프로세서와 제2 기기(800)는 제1 키 정보 및 제2 키 정보를 교환할 수 있다. 예를 들어, 상기 프로세서 및 제2 기기(800) 각각은 개인 키를 발생할 수 있고, 상기 개인 키와 상기 제1 및 제2 연결 시도 메시지들에 포함된 상기 랜덤 넘버에 기초하여 상기 제1 및 제2 키 정보들을 발생할 수 있다. 제2 기기(800)는 상기 제1 키 정보를 포함하는 "Server_Key_Exchange"를 상기 프로세서에 전송할 수 있고(단계 S122), 상기 프로세서는 상기 제2 키 정보를 포함하는 "Client_Key_Exchange"를 제2 기기(300)에 전송할 수 있다(단계 S134). 예를 들어, 상기 제2 키 정보는 사전 마스터 키(pre-master key)라고 부를 수 있다.
일 실시예에서, 상기 개인 키 및/또는 상기 제1 및 제2 키 정보들은 DH(Diffie-Hellman) 알고리즘, DES(DTAa encryption standard) 알고리즘, RSA(Rivest, Shamir & Adelman) 알고리즘, SHA(secure hash algorithm) 등과 같은 다양한 암호화 알고리즘 중 하나에 기초하여 발생될 수 있다.
실시예에 따라서, "Server_Key_Exchange"가 생략되는 경우에 상기 제1 키 정보는 제2 기기(800)의 인증서를 나타내는 "Server_Certificate"(미도시)에 포함될 수도 있고, "Server_Key_Exchange" 및 "Server_Certificate"가 모두 생략되는 경우에 상기 제1 키 정보는 "Server_Hello"에 포함될 수도 있다.
한편, 단계 S122 이후 및 단계 S134 이전에, 제2 기기(300)는 제1 기기(200)의 인증서를 요청하는 "Certificate_Request"를 상기 프로세서에 선택적으로 전송할 수도 있고(단계 S124), 제2 기기(800)는 모든 메시지가 전송되었음을 나타내는 "Server_Hello_Done"을 상기 프로세서에 전송할 수 있으며(단계 S126), 상기 프로세서는 "Certificate_Request"에 응답하여 상기 제1 기기(200)의 인증서를 나타내는 "Client_Certificate"를 제2 기기(300)에 전송할 수도 있다. 단계 S134 이후에, 상기 프로세서가 "Client_Certificate"에 대응하여 "Certificate_Verify"를 제2 기기(800)에 전송할 수도 있다.
상기 제1 및 제2 키 정보들이 교환된 이후에, 상기 보안 모드로 동작하는 상기 프로세서 및 제2 기기(800)는 상기 제1 키 정보 및 상기 제2 키 정보에 기초하여 마스터 키(MKEY)를 각각 발생할 수 있다(단계 S142 및 S144). 예를 들어, 상기 프로세서 및 제2 기기(800) 각각은 상기 사전 마스터 키에 기초하여 마스터 키(MKEY)를 발생할 수 있다.
마스터 키(MKEY)를 발생한 이후에, 상기 보안 모드로 동작하는 상기 프로세서와 제2 기기(800)는 제1 연결 완료 메시지 및 제2 연결 완료 메시지를 교환할 수 있다. 예를 들어, 상기 프로세서는 상기 제1 연결 완료 메시지를 나타내는 "Client_Finished"를 제2 기기(300)에 전송할 수 있고(단계 S152), 제2 기기(800)는 상기 제1 연결 완료 메시지에 응답하여 상기 제2 연결 완료 메시지를 나타내는 "Server_Finished"를 상기 프로세서에 전송할 수 있다(단계 S154).
결과적으로, 제1 기기(200)와 제2 기기(800) 사이에, 즉 상기 보안 모드로 동작하는 상기 프로세서와 제2 기기(800) 사이에 핸드쉐이크 동작이 안전하게 수행될 수 있으며, 제1 보안 세션(SS1)은 상기 보안 모드에서 안전하게 형성될 수 있다. 제1 보안 세션(SS1)의 형성 결과로서 세션 정보(도 15의 SINF) 및 마스터 키(MKEY)가 발생될 수 있다. 예를 들어, 세션 정보(SINF)는 IP 어드레스, 포트 번호, 인증서 등을 포함할 수 있고, 이 때 세션 정보(SINF)에 포함되는 인증서는 제1 기기(200)의 인증서일 수 있다.
한편, 도시하지는 않았으나, 단계 S152 이전에 상기 프로세서는 "Client_Change_Cipher_Spec"을 제2 기기(800)에 전송할 수 있다. 단계 S154 이전에 제2 기기(800)는 "Server_Change_Cipher_Spec"을 상기 프로세서에 전송할 수 있다.
도 18은 도 16의 세션 정보 및 마스터 키를 보안 소자에 저장하는 단계의 일 예를 나타내는 도면이다.
도 16 및 18을 참조하면, 제1 보안 세션(SS1)의 형성에 의해 발생된 세션 정보(SINF) 및 마스터 키(MKEY)를 보안 소자(220)에 저장(단계 S200)하는데 있어서, 제1 기기(200)에 포함되고 보안 모드로 동작하는 프로세서(예를 들어, 도 14의 110)와 보안 소자(220)는 제1 랜덤 넘버(RN_T) 및 제2 랜덤 넘버(RN_S1)를 교환할 수 있다. 예를 들어, 상기 프로세서는 제1 랜덤 넘버(RN_T)를 보안 소자(220)에 전송할 수 있고(단계 S212), 보안 소자(220)는 제2 랜덤 넘버(RN_S1)를 상기 프로세서에 전송할 수 있다(단계 S214).
제1 및 제2 랜덤 넘버들(RN_T, RN_S1)이 교환된 이후에, 상기 보안 모드로 동작하는 상기 프로세서와 보안 소자(220)는 제1 랜덤 넘버(RN_T), 제2 랜덤 넘버(RN_S1) 및 사전 공유 키(PSK)에 기초하여 검증 동작을 수행할 수 있다.
구체적으로, 상기 프로세서 및 보안 소자(220)는 제1 랜덤 넘버(RN_T), 제2 랜덤 넘버(RN_S1) 및 사전 공유 키(PSK)에 기초하여 세션 키(SKEY1)를 각각 발생할 수 있다(단계 S222 및 S224). 예를 들어, 세션 키(SKEY1)는 하기의 [수학식 1]을 만족할 수 있다.
[수학식 1]
SKEY1 = SHA-256(RN_T | RN_S1 | PSK)
예를 들어, 상기 프로세서는 사전 저장 영역(도 15의 201a)에 미리 저장된 사전 공유 키(PSK)를 이용하여 세션 키(SKEY1)를 발생할 수 있고, 보안 소자(220)는 사전 저장 영역(도 15의 226)에 미리 저장된 사전 공유 키(PSK)를 이용하여 세션 키(SKEY1)를 발생할 수 있다.
상기 프로세서는 세션 키(SKEY1)를 기초로 제1 검증자(verifier)(Verifier_T)를 발생할 수 있고(단계 S226), 제1 검증자(Verifier_T)를 보안 소자(220)에 전송할 수 있다(단계 S228). 예를 들어, 제1 검증자(Verifier_T)는 하기의 [수학식 2]를 만족할 수 있다.
[수학식 2]
Verifier_T = SHA-256(RN_T | RN_S1 | SKEY1)
보안 소자(220)는 제1 검증자(Verifier_T)를 검증할 수 있다(단계 S230). 제1 검증자(Verifier_T)에 대한 검증이 성공적으로 완료된 경우에, 보안 소자(220)는 세션 키(SKEY1) 및 제1 검증자(Verifier_T)를 기초로 제2 검증자(Verifier_S1)를 발생할 수 있고(단계 S232), 제2 검증자(Verifier_S1)를 상기 프로세서에 전송할 수 있다(단계 S234). 예를 들어, 제2 검증자(Verifier_S1)는 하기의 [수학식 3]을 만족할 수 있다.
[수학식 3]
Verifier_S1 = SHA-256(RN_T | RN_S1 | SKEY1 | Verifier_T)
상기 프로세서는 제2 검증자(Verifier_S1)를 검증할 수 있다(단계 S236).
상기 검증 동작이 성공적으로 완료된 경우에, 즉 단계 S230의 제1 검증자(Verifier_T)에 대한 검증 및 단계 S236의 제2 검증자(Verifier_S1)에 대한 검증이 모두 성공적으로 완료된 경우에, 상기 보안 모드로 동작하는 상기 프로세서는 세션 정보(SINF) 및 마스터 키(MKEY)를 보안 소자(220)에 전송할 수 있다(단계 S242). 따라서, 상기 보안 모드에서 발생된 세션 정보(SINF) 및 마스터 키(MKEY)는 보안 소자(220)에 안전하게 저장될 수 있다.
일 실시예에서, 도 18의 단계 S224, S230 및 S232는 보안 소자(220)에 포함되는 처리부(도 15의 222)에 의해 수행될 수 있고, 세션 정보(SINF) 및 마스터 키(MKEY)는 보안 소자(220)에 포함되는 저장부(224)에 저장될 수 있다.
한편, 도 18을 참조하여 세션 키(SKEY1), 제1 검증자(Verifier_T) 및 제2 검증자(Verifier_S1)가 SHA-256 알고리즘에 기초하여 발생되는 경우를 예시하였으나, 상기 세션 키 및 상기 검증자들은 상술한 다양한 암호화 알고리즘 중 하나에 기초하여 발생될 수 있다.
도 19는 도 16의 제2 보안 세션을 형성하는 단계의 일 예를 나타내는 도면이다.
도 16 및 19를 참조하면, 제2 보안 세션(SS2)을 형성(단계 S300)하는데 있어서, 제1 기기(200)에 포함되고 비보안 모드로 동작하는 프로세서(예를 들어, 도 14의 110)와 보안 소자(220)는 제3 랜덤 넘버(RN_C) 및 제4 랜덤 넘버(RN_S2)를 교환할 수 있다. 예를 들어, 상기 프로세서는 제3 랜덤 넘버(RN_C)를 보안 소자(220)에 전송할 수 있고(단계 S312), 보안 소자(220)는 제4 랜덤 넘버(RN_S2)를 상기 프로세서에 전송할 수 있다(단계 S314). 단계 S312 및 S314는 도 18의 단계 S212 및 S214와 각각 유사할 수 있다.
제3 및 제4 랜덤 넘버들(RN_C, RN_S2)이 교환된 이후에, 상기 비보안 모드로 동작하는 상기 프로세서와 보안 소자(220)는 제3 랜덤 넘버(RN_C), 제4 랜덤 넘버(RN_S2) 및 사전 공유 키(PSK)에 기초하여 검증 동작을 수행할 수 있다.
구체적으로, 상기 프로세서 및 보안 소자(220)는 제3 랜덤 넘버(RN_C), 제4 랜덤 넘버(RN_S2) 및 사전 공유 키(PSK)에 기초하여 세션 키(SKEY2)를 각각 발생할 수 있다(단계 S322 및 S324). 예를 들어, 상기 프로세서는 사전 저장 영역(도 15의 201b)에 미리 저장된 사전 공유 키(PSK)를 이용할 수 있고, 보안 소자(220)는 사전 저장 영역(도 15의 226)에 미리 저장된 사전 공유 키(PSK)를 이용할 수 있다.
상기 프로세서는 세션 키(SKEY2)를 기초로 제3 검증자(Verifier_C)를 발생할 수 있고(단계 S326), 제3 검증자(Verifier_C)를 보안 소자(220)에 전송할 수 있다(단계 S328). 보안 소자(220)는 제3 검증자(Verifier_C)를 검증할 수 있다(단계 S330). 제3 검증자(Verifier_C)에 대한 검증이 성공적으로 완료된 경우에, 보안 소자(220)는 세션 키(SKEY2) 및 제3 검증자(Verifier_C)를 기초로 제4 검증자(Verifier_S2)를 발생할 수 있고(단계 S332), 제4 검증자(Verifier_S2)를 상기 프로세서에 전송할 수 있다(단계 S334). 상기 프로세서는 제4 검증자(Verifier_S2)를 검증할 수 있다(단계 S336). 단계 S322, S324, S326, S328, S330, S332, S334 및 S336은 도 18의 단계 S222, S224, S226, S228, S230, S232, S234 및 S236과 각각 유사할 수 있다. 상기의 [수학식 1], [수학식 2] 및 [수학식 3]과 유사하게, 세션 키(SKEY2), 제3 검증자(Verifier_C) 및 제4 검증자(Verifier_S2)는 각각 하기의 [수학식 4], [수학식 5] 및 [수학식 6]을 만족할 수 있다.
[수학식 4]
SKEY2 = SHA-256(RN_C | RN_S2 | PSK)
[수학식 5]
Verifier_C = SHA-256(RN_C | RN_S2 | SKEY2)
[수학식 6]
Verifier_S2 = SHA-256(RN_C | RN_S2 | SKEY2 | Verifier_C)
상기 검증 동작이 성공적으로 완료된 경우에, 즉 단계 S330 및 S336의 제3 및 제4 검증자들(Verifier_C, Verifier_S2)에 대한 검증이 모두 성공적으로 완료된 경우에, 상기 비보안 모드로 동작하는 상기 프로세서는 세션 정보(SINF)를 보안 소자(220)로부터 로딩할 수 있다(단계 S342).
결과적으로, 제1 기기(200)와 제2 기기(800) 사이에, 즉 상기 비보안 모드로 동작하는 상기 프로세서와 제2 기기(800) 사이에, 핸드쉐이크 동작 없이 보안 소자(220)로부터 로딩된 세션 정보(SINF)에 기초하여 제2 보안 세션(SS2)이 형성될 수 있다. 제2 보안 세션(SS2)이 형성되는 경우에, 보안 소자(220)에 저장된 마스터 키(MKEY)는 노출되지 않을 수 있다.
도 20 및 21은 도 16의 제1 기기와 제2 기기가 제2 보안 세션을 통해 암호화된 데이터를 주고받는 단계의 예들을 나타내는 도면들이다.
도 16 및 20를 참조하면, 제1 기기(200)가 제2 기기(800)로 제2 보안 세션(SS2)을 통해 암호화된 데이터를 데이터를 교환하는데(단계 S500) 있어서, 제1 기기(200)에 포함되고 비보안 모드로 동작하는 프로세서(예를 들어, 도 14의 110)는 보안 소자(220)를 이용하여 제2 기기(300)에 암호화된 데이터를 전송할 수 있다.
구체적으로, 마스터 키(MKEY)는 보안 소자(220)에만 저장되어 있으며, 상기 비보안 모드로 동작하는 상기 프로세서는 마스터 키(MKEY)를 알지 못하므로, 상기 비보안 모드로 동작하는 상기 프로세서는 제2 기기(300)에 전송하고자 하는 제1 데이터(DTA1)를 보안 소자(220)에 전송할 수 있다(단계 S512). 제1 데이터(DTA1)는 메모리(130) 내부에서 자체적으로 암호화된 데이터일 수 있다.
제1 데이터(DTA1)가 보안 소자(220)에 전송된 이후에, 보안 소자(220)는 마스터 키(MKEY)를 기초로 제1 데이터(DTA1)를 암호화하여 제2 데이터(TDTA)를 발생할 수 있다. 예를 들어, 보안 소자(220)는 마스터 키(MKEY)를 기초로 제1 데이터(DTA1)를 암호화(예를 들어, compress)할 수 있고(단계 S522), 마스터 키(MKEY)를 기초로 메시지 인증 코드(message authentication code)(MAC)를 발생할 수 있으며(단계 S524), 상기 암호화된 제1 데이터(DTA1)와 메시지 인증 코드(MAC)를 결합하고 암호화(예를 들어, encrypt)하여 제2 데이터(TDTA)가 획득될 수 있다.
일 실시예에서, 제1 데이터(DTA1)를 암호화하는데 마스터 키(MKEY)의 제1 부분이 이용될 수 있고, 메시지 인증 코드(MAC)를 발생하는데 마스터 키(MKEY)의 제2 부분이 이용될 수 있다. 예를 들어, 마스터 키(MKEY)는 복수의 비트들의 조합으로 표현될 수 있다. 상기 복수의 비트들 중 약 절반 정도의 하위 비트들(least significant bits; LSBs)이 마스터 키(MKEY)의 상기 제1 부분에 대응할 수 있고, 상기 복수의 비트들 중 나머지 절반 정도의 상위 비트들(most significant bits; MSBs)이 마스터 키(MKEY)의 상기 제2 부분에 대응할 수 있다.
제2 데이터(TDTA)가 발생된 이후에, 보안 소자(220)는 제2 데이터(TDTA)를 상기 비보안 모드로 동작하는 상기 프로세서에 전송할 수 있고(단계 S532), 상기 비보안 모드로 동작하는 상기 프로세서는 제2 데이터(TDTA)를 제2 보안 세션(SS2)을 통해 제2 기기(800)에 전송할 수 있다(단계 S542).
따라서, 마스터 키(MKEY)를 노출시키지 않고, 보안 소자(220)를 통해 제1 데이터(DTA1)를 안전하게 암호화하여 제2 기기(800)에 전송할 수 있다.
도 16 및 21을 참조하면, 제1 기기(200)와 제2 기기(300)가 제2 보안 세션(SS2)을 통해 암호화된 데이터를 교환하는데(단계 S500) 있어서, 제1 기기(200)에 포함되고 비보안 모드로 동작하는 프로세서(예를 들어, 도 14의 110)는 제2 기기(800)로부터 암호화된 데이터를 수신할 수 있다.
구체적으로, 제2 기기(800)는 암호화된 제3 데이터(RDTA)를 상기 비보안 모드로 동작하는 상기 프로세서에 전송할 수 있다(단계 S552).
제3 데이터(RDTA)가 수신된 이후에, 상기 비보안 모드로 동작하는 상기 프로세서는 제2 기기(800)로부터 수신된 제3 데이터(RDTA)를 보안 소자(220)에 전송할 수 있다(단계 S562). 마스터 키(MKEY)는 보안 소자(220)에만 저장되어 있으며, 상기 비보안 모드로 동작하는 상기 프로세서는 마스터 키(MKEY)를 알지 못하기 때문이다.
제3 데이터(RDTA)가 보안 소자(220)에 전송된 이후에, 보안 소자(220)는 마스터 키(MKEY)를 기초로 제3 데이터(RDTA)를 복호화할 수 있고(단계 S572), 이에 따라 제4 데이터(DTA2)가 발생될 수 있다. 상기 복호화 과정은 도 20을 참조하여 상술한 암호화 과정의 역에 해당할 수 있다. 예를 들어, 제3 데이터(RDTA)를 복호화(예를 들어, decrypt)한 후에 메시지 인증 코드(MAC)를 분리할 수 있고, 메시지 인증 코드가 분리된 데이터를 복호화(예를 들어, decompress)하여 제4 데이터(DTA2)가 획득될 수 있다.
제4 데이터(DTA2)가 발생된 이후에, 보안 소자(220)는 제4 데이터(DTA2)를 상기 비보안 모드로 동작하는 상기 프로세서에 전송할 수 있다(단계 S582).
따라서, 마스터 키(MKEY)를 노출시키지 않고, 보안 소자(220)를 통해 제2 기기(800)로부터 수신된 암호화된 제3 데이터(RDTA)를 안전하게 복호화하여 제4 데이터(DTA2)를 획득할 수 있다.
도 22는 본 발명의 실시예들에 따른 기기간 보안 통신 방법을 수행하는 IoT 네트워크 시스템을 나타내는 도면이다.
도 22를 참조하면, IoT 네트워크 시스템(1000)은 IoT 장치들(1010, 1020, 1030, 1040), 허브(1100), 게이트웨이(1110), 통신망(1120), 관리 서버(1130) 및 서버(1140)를 포함할 수 있다.
IoT 장치들(1010, 1020, 1030, 1040)은 홈 가젯 그룹(610), 가전제품/가구 그룹(620), 엔터테인먼트 그룹(630) 및 이동 수단(640)을 포함할 수 있고, 허브(1100), 게이트웨이(1110) 및 통신망(1120) 중 적어도 하나를 통해 관리 서버(1130) 및/또는 서버(1140)와 통신할 수 있다. 관리 서버(1130) 및 서버(1140)는 IoT 장치들(1010, 1020, 1030, 1040), 허브(1100), 게이트웨이(1110) 및 통신망(1120)의 상태를 관리/분석할 수 있다.
일 실시예에서, IoT 장치들(1010, 1020, 1030) 중 하나가 도 13 내지 21을 참조하여 상술한 제1 장치에 대응할 수 있고, 허브(1100)가 도 13 내지 21을 참조하여 상술한 제2 장치에 대응할 수 있다. 다른 실시예에서, IoT 장치들(1030, 1040), 허브(1100) 및 게이트웨이(1110) 중 하나가 도 1 내지 21을 참조하여 상술한 제1 장치에 대응할 수 있고, 관리 서버(1130) 및 서버(1140) 중 하나가 도 13 내지 21을 참조하여 상술한 제2 장치에 대응할 수 있다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (10)

  1. 복수의 워드라인들에 연결되는 복수의 페이지들을 구비하고, 상기 복수의 페이지들은 각각 적어도 하나의 데이터 비트를 저장할 수 있는 복수의 메모리 셀들을 구비하는 메모리 셀 어레이를 포함하는 비휘발성 메모리 장치의 데이터 암호화 방법으로서,
    데이터를 상기 복수의 페이지들 중 선택된 페이지의 선택된 메모리 셀들에 프로그램하는 단계;
    복수의 비트라인들을 통하여 상기 메모리 셀 어레이에 연결되는 페이지 버퍼 회로에서 디벨롭 구간의 서로 다른 제1 시점과 제2 시점에서 상기 선택된 메모리 셀들을 두 번 센싱하여 각각 랜덤 데이터와 메인 데이터로 제공하는 단계;
    상기 페이지 버퍼 회로에 연결되는 암호화 회로에서 상기 랜덤 데이터를 이용하여 상기 메인 데이터를 암호화하는 단계;
    상기 암호화된 메인 데이터를 상기 비휘발성 메모리 장치 외부로 출력하는 단계를 포함하고,
    상기 랜덤 데이터는 상기 선택된 메모리 셀들의 문턱 전압 산포에 기초한 랜덤성을 가지는 데이터 암호화 방법.
  2. 제1항에 있어서,
    상기 랜덤 데이터와 상기 메인 데이터로 제공하는 단계는
    상기 선택된 페이지에 연결되는 선택 워드라인에 제1 독출 전압을 인가하는 동안 상기 비트라인들을 통하여 상기 선택된 메모리 셀들에 더블 샘플링을 수행하는 단계를 포함하고,
    상기 메인 데이터를 암호화하는 단계는 별도의 난수 생성 회로의 사용없이 수행되는 데이터 암호화 방법.
  3. 제1항에 있어서,
    상기 제1 시점은 상기 제2 시점보다 선행하고,
    상기 제2 시점은 상기 디벨롭 구간의 시작 시점보다 상기 디벨롭 구간의 종료 시점에 더 가까운 데이터 암호화 방법.
  4. 제1항에 있어서,
    상기 암호화하는 단계는 상기 암호화 회로에서 상기 메인 데이터와 상기 랜덤 데이터에 대하여 논리 연산을 수행하여 상기 암호화된 메인 데이터를 생성하는 단계를 포함하고,
    상기 논리 연산은 상기 메인 데이터와 상기 랜덤 데이터에 대한 배타적 오어 연산이거나 배타적 노어 연산인 데이터 암호화 방법.
  5. 제1항에 있어서,
    상기 선택 페이지의 메모리 셀들을 두 번 센싱하는 동안 상기 선택 페이지에 연결되는 선택 워드라인에는 제1 독출 전압이 인가되고,
    상기 메모리 셀들은 각각 복수의 문턱 전압 산포들을 이용하여 복수의 데이터 비트들을 저장할 수 있는 데이터 암호화 방법.
  6. 제1항에 있어서, 상기 랜덤 데이터와 상기 메인 데이터로 제공하는 단계는,
    상기 제1 시점에서 상기 선택 페이지의 메모리 셀들을 제1 센싱하여 상기 페이지 버퍼 회로의 페이지 버퍼들 각각에 상기 랜덤 데이터로서 저장하는 단계; 및
    상기 제2 시점에서 상기 선택 페이지의 메모리 셀들을 제2 센싱하여 상기 페이지 버퍼들 각각에 상기 메인 데이터로서 저장하는 단계를 포함하고,
    상기 랜덤 데이터는 상기 페이지 버퍼들 각각의 센싱 래치를 통하여 상기 페이지 퍼버들 각각의 제1 데이터 래치에 저장되고,
    상기 메인 데이터는 상기 센싱 래치를 통하여 상기 페이지 버퍼들 각각의 제2 데이터 래치에 저장되는 데이터 암호화 방법.
  7. 비휘발성 메모리 장치로서,
    복수의 워드라인들에 연결되는 복수의 페이지들을 구비하고, 상기 복수의 페이지들은 각각 적어도 하나의 데이터 비트를 저장할 수 있는 복수의 메모리 셀들을 구비하는 메모리 셀 어레이;
    복수의 비트라인들을 통하여 상기 메모리 셀 어레이에 연결되며, 상기 비트라인들을 통하여 디벨롭 구간의 서로 다른 제1 시점과 제2 시점에서 상기 선택된 페이지의 선택된 메모리 셀들을 두 번 센싱하여 각각 랜덤 데이터와 메인 데이터로 제공하는 복수의 페이지 버퍼들을 구비하는 페이지 버퍼 회로;
    상기 페이지 버퍼 회로에 연결되고, 상기 랜덤 데이터를 이용하여 상기 메인 데이터를 암호화하는 암호화 회로;
    상기 암호화 회로에 연결되고, 상기 암호화된 메인 데이터를 상기 비휘발성 메모리 장치 외부로 출력하는 데이터 입출력 회로; 및
    상기 페이지 버퍼 회로, 상기 암호화 회로 및 상기 데이터 입출력 회로를 제어하는 제어 회로를 포함하고,
    상기 랜덤 데이터는 상기 선택된 메모리 셀들의 문턱 전압 산포에 기초한 랜덤성을 가지는 비휘발성 메모리 장치.
  8. 제7항에 있어서,
    상기 선택된 페이지에 연결되는 선택 워드라인에 제1 독출 전압이 인가되는 동안 상기 제어 회로는 상기 비트라인들을 통하여 상기 선택된 페이지의 메모리 셀들에 더블 샘플링을 수행하도록 상기 페이지 버퍼 회로를 제어하고,
    상기 암호화 회로는 상기 메인 데이터와 상기 랜덤 데이터에 대하여 논리 연산을 수행하여 상기 암호화된 메인 데이터를 생성하는 비휘발성 메모리 장치.
  9. 제7항에 있어서, 상기 복수의 페이지 버퍼들 각각은
    전원 전압과 센싱 노드 사이에 직렬로 연결되는 제1 피모스 트랜지스터 및 제2 피모스 트랜지스터를 구비하는 프리차지 회로;
    상기 복수의 비트라인들 중 상응하는 비트라인과 상기 센싱 노드 사이에 연결되는 스위치 회로; 및
    상기 센싱 노드와 접지 전압 사이에 연결되는 감지 및 래치 회로를 포함하고,
    상기 감지 및 래치 회로는
    래치;
    상기 래치의 제1 노드와 상기 접지 전압 사이에 직렬로 연결되는 제1 엔모스 트랜지스터 및 제2 엔모스 트랜지스터; 및
    상기 래치의 제2 노드와 상기 접지 전압 사이에 직렬로 연결되는 제3 엔모스 트랜지스터 및 제4 엔모스 트랜지스터를 포함하고,
    상기 제4 엔모스 트랜지스터의 게이트는 상기 센싱 노드에 연결되고,
    상기 제어 회로는 상기 제1 시점과 상기 제2 시점에서 상기 제3 엔모스 트랜지스터에 센싱 인에이블 신호를 인가하여 제1 센싱과 제2 센싱을 수행하는 비휘발성 메모리 장치.
  10. 보안 데이터를 저장하는 보안 소자;
    사용자 데이터를 저장하는 메모리; 및
    상기 보안 소자 및 상기 메모리와 버스를 통하여 연결되는 프로세서를 포함하고,
    상기 프로세서는
    보안 모드로 동작하는 동안에 외부 디바이스와 핸드 쉐이크 동작을 수행하여 상기 외부 장치와의 사이에 제1 보안 세션을 형성하고,
    상기 제1 보안 세션의 형성에 의해 발생된 세션 정보 및 마스터 키를 상기 보안 소자에 저장하고,
    비보안 모드로 동작하는 동안에 상기 핸드쉐이크 동작 없이 상기 보안 소자에 저장된 상기 세션 정보를 로딩하여, 상기 외부 장치와의 사이에 제2 보안 세션을 형성하고,
    상기 보안 소자에 저장된 상기 마스터 키를 이용하여 상기 제2 보안 세션을 통해 상기 메모리로부터 제공된 암호화된 데이터를 상기 외부 장치에 제공하고,
    상기 메모리는 메모리 셀들의 물리적 특성을 이용하여 내부에 저장된 상기 사용자 데이터를 자체적으로 암호화하여 상기 암호화된 데이터를 출력하는 사용자 장치.
KR1020200062047A 2020-05-25 2020-05-25 비휘발성 메모리 장치에서의 데이터 암호화 방법, 비휘발성 메모리 장치 및 사용자 장치 KR20210145341A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200062047A KR20210145341A (ko) 2020-05-25 2020-05-25 비휘발성 메모리 장치에서의 데이터 암호화 방법, 비휘발성 메모리 장치 및 사용자 장치
US17/118,091 US11567879B2 (en) 2020-05-25 2020-12-10 Method of encrypting data in nonvolatile memory device, nonvolatile memory device and user device
CN202110275852.1A CN113724765A (zh) 2020-05-25 2021-03-15 数据加密方法、非易失性存储器装置和用户装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200062047A KR20210145341A (ko) 2020-05-25 2020-05-25 비휘발성 메모리 장치에서의 데이터 암호화 방법, 비휘발성 메모리 장치 및 사용자 장치

Publications (1)

Publication Number Publication Date
KR20210145341A true KR20210145341A (ko) 2021-12-02

Family

ID=78609019

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200062047A KR20210145341A (ko) 2020-05-25 2020-05-25 비휘발성 메모리 장치에서의 데이터 암호화 방법, 비휘발성 메모리 장치 및 사용자 장치

Country Status (3)

Country Link
US (1) US11567879B2 (ko)
KR (1) KR20210145341A (ko)
CN (1) CN113724765A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114866241B (zh) * 2022-07-06 2022-10-21 深圳华大北斗科技股份有限公司 Se芯片的通信加密方法、装置及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6337808B1 (en) * 1999-08-30 2002-01-08 Micron Technology, Inc. Memory circuit and method of using same
EP1616229B1 (en) 2003-03-31 2008-10-08 NDS Limited Method and apparatus for preventing cloning of security elements
US8130955B2 (en) 2007-12-21 2012-03-06 Spansion Llc Random number generation through use of memory cell activity
JP2012034268A (ja) 2010-08-02 2012-02-16 Nec Corp 不揮発性メモリ装置および暗号キー生成方法
JP5813380B2 (ja) 2011-06-03 2015-11-17 株式会社東芝 半導体記憶装置
KR102083271B1 (ko) * 2012-07-31 2020-03-02 삼성전자주식회사 플래시 메모리의 물리적 특성을 이용하여 난수를 생성하는 플래시 메모리 시스템 및 그것의 난수 생성 방법
KR20140020057A (ko) * 2012-08-07 2014-02-18 삼성전자주식회사 키 제어 로직을 포함하는 플래시 메모리 장치 및 그것의 암호화 키 저장 방법
TWI545580B (zh) 2014-01-07 2016-08-11 群聯電子股份有限公司 隨機數產生方法、記憶體儲存裝置及控制電路
US9966146B2 (en) 2014-08-13 2018-05-08 Toshiba Memory Corporation Memory system and method of controlling non-volatile memory
US9971566B2 (en) 2015-08-13 2018-05-15 Arizona Board Of Regents Acting For And On Behalf Of Northern Arizona University Random number generating systems and related methods
US10534554B2 (en) 2017-10-13 2020-01-14 Silicon Storage Technology, Inc. Anti-hacking mechanisms for flash memory device
US11522724B2 (en) * 2017-12-11 2022-12-06 International Business Machines Corporation SRAM as random number generator

Also Published As

Publication number Publication date
CN113724765A (zh) 2021-11-30
US11567879B2 (en) 2023-01-31
US20210365388A1 (en) 2021-11-25

Similar Documents

Publication Publication Date Title
US10680809B2 (en) Physical unclonable function for security key
US9767303B2 (en) Authenticated memory and controller slave
US10877531B2 (en) Methods and apparatus to create a physically unclonable function
EP2751732B1 (en) Authenticator, authenticatee and authentication method
KR101546204B1 (ko) 호스트 디바이스, 반도체 메모리 디바이스, 및 인증 방법
TWI461951B (zh) 資料記錄裝置及處理資料記錄裝置之方法
US20220138113A1 (en) Secure data communication with memory sub-system
TWI523514B (zh) 資料記錄裝置、主機裝置及處理資料記錄裝置之方法
US11928192B2 (en) Vendor unique command authentication system, and a host device, storage device, and method employing the same
US9569371B2 (en) Memory device, memory system, and operating method of memory system
US20140344582A1 (en) Information recording device
KR102068485B1 (ko) 불 휘발성 메모리 모듈 및 그것의 동작 방법
KR20210145341A (ko) 비휘발성 메모리 장치에서의 데이터 암호화 방법, 비휘발성 메모리 장치 및 사용자 장치
US20230185483A1 (en) Solid State Drives with Hardware Accelerators for Proof of Space Computations
KR20210089486A (ko) 키를 안전하게 관리하기 위한 장치 및 방법
KR20200129776A (ko) 재전송 공격에 대한 방어책을 포함하는 메모리 시스템의 구동 방법 및 이를 수행하는 메모리 시스템
KR102246513B1 (ko) 물리적 복제 방지 기능을 가진 난수 발생 장치
KR20150101232A (ko) 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치의 동작 방법
KR20220124923A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
TW202403773A (zh) 半導體裝置及用以管理其之安全操作的系統與方法

Legal Events

Date Code Title Description
A201 Request for examination