KR20210142820A - 공개키와 비밀키를 저장하는 비휘발성 메모리 장치, 전자 장치 및 서비스 제공자 - Google Patents

공개키와 비밀키를 저장하는 비휘발성 메모리 장치, 전자 장치 및 서비스 제공자 Download PDF

Info

Publication number
KR20210142820A
KR20210142820A KR1020200059441A KR20200059441A KR20210142820A KR 20210142820 A KR20210142820 A KR 20210142820A KR 1020200059441 A KR1020200059441 A KR 1020200059441A KR 20200059441 A KR20200059441 A KR 20200059441A KR 20210142820 A KR20210142820 A KR 20210142820A
Authority
KR
South Korea
Prior art keywords
data
encryption key
key
memory device
memory
Prior art date
Application number
KR1020200059441A
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 KR1020200059441A priority Critical patent/KR20210142820A/ko
Priority to US17/161,124 priority patent/US11716205B2/en
Priority to CN202110498504.0A priority patent/CN113688440A/zh
Publication of KR20210142820A publication Critical patent/KR20210142820A/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • 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/80Protecting 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 storage media based on magnetic or optical technology, e.g. disks with sectors
    • 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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/73Protecting 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 by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • 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/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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
    • 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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

보안이 향상된 비휘발성 메모리 장치가 제공된다. 비휘발성 메모리 장치는 메모리 셀 어레이 및 보안 모듈을 포함하는 비휘발성 메모리 장치로서, 보안 모듈은, 메모리 셀 어레이에 저장된 비휘발성 메모리 장치에 대한 정보를 포함하는 제1 데이터를 가공하여 제1 암호키를 생성하고, 메모리 셀 어레이에 저장된 비휘발성 메모리 장치에 대한 정보를 포함하는 제2 데이터를 가공하여 제2 암호키를 생성하고, 제1 암호키와 제2 암호키를 이용하여, RSA(Rivest Shamir Adleman) 알고리즘을 통해 공개키(public key)와 비밀키(secret key)를 생성하고, 제1 암호키, 제2 암호키, 공개키 및 비밀키를 메모리 셀 어레이에 제공하고, 메모리 셀 어레이는 제1 암호키, 제2 암호키, 공개키 및 비밀키를 저장하고, 제2 데이터는 제1 데이터와 다르고, 제1 암호키의 값(value)과 제2 암호키의 값은 소수(prime number)이고, 공개키는 비휘발성 메모리 장치와 연결된 호스트에 제공된다.

Description

공개키와 비밀키를 저장하는 비휘발성 메모리 장치, 전자 장치 및 서비스 제공자 {A NON VOLATILE MEMORY DEVICE STORING A PUBLIC KEY AND A SECRET KEY, AN ELECTRONIC DEVICE COMPRISING THE SAME AND A SERVICE PROVIDER}
본 발명은 공개키와 비밀키를 저장하는 비휘발성 메모리 장치, 전자 장치 및 서비스 제공자에 관한 것이다.
인공지능(AI)(Artificial Intelligence)의 발달로 인해, 기존의 비휘발성 메모리 장치(non-volatile memory device)의 데이터를 처리함에 있어서 비휘발성 메모리 장치에 저장된 데이터의 보안에 문제가 있을 수 있다. 예를 들어, 생체 정보 등의 개인 정보의 보호를 위한 보다 강화된 보안 기술이 필요하다.
RSA (Rivest Shamir Adleman) 알고리즘을 통해 생성되는 RSA 암호는 공개키 암호 시스템의 하나로, 전자 서명이 가능한 최초의 알고리즘으로 알려져 있다. RSA 암호를 이용하여 데이터를 보호하는 비휘발성 메모리 장치가 요구될 수 있다.
본 발명이 해결하고자 하는 기술적 과제는, 보안이 향상된 비휘발성 메모리 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 보안이 향상된 전자 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 보안이 향상된 전자 장치와 데이터를 주고받는 서비스 제공자를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치는 메모리 셀 어레이 및 보안 모듈을 포함하는 비휘발성 메모리 장치로서, 보안 모듈은, 메모리 셀 어레이에 저장된 비휘발성 메모리 장치에 대한 정보를 포함하는 제1 데이터를 가공하여 제1 암호키를 생성하고, 메모리 셀 어레이에 저장된 비휘발성 메모리 장치에 대한 정보를 포함하는 제2 데이터를 가공하여 제2 암호키를 생성하고, 제1 암호키와 제2 암호키를 이용하여, RSA(Rivest Shamir Adleman) 알고리즘을 통해 공개키(public key)와 비밀키(secret key)를 생성하고, 제1 암호키, 제2 암호키, 공개키 및 비밀키를 메모리 셀 어레이에 제공하고, 메모리 셀 어레이는 제1 암호키, 제2 암호키, 공개키 및 비밀키를 저장하고, 제2 데이터는 제1 데이터와 다르고, 제1 암호키의 값(value)과 제2 암호키의 값은 소수(prime number)이고, 공개키는 비휘발성 메모리 장치와 연결된 호스트에 제공될 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 전자 장치는 제1 메모리 셀 어레이를 포함하는 제1 메모리 장치, 및 제2 메모리 셀 어레이를 포함하는 제2 메모리 장치를 포함하고, 제1 메모리 장치는, 제1 메모리 장치에 대한 정보를 포함하는 제1 데이터 및 제2 데이터를 제1 메모리 셀 어레이에 저장하고, 제2 메모리 장치는, 제2 메모리 장치에 대한 정보를 포함하는 제3 데이터 및 제4 데이터를 제2 메모리 셀 어레이에 저장하고, 제1 내지 제4 데이터는 서로 다르고, 제1 메모리 장치는 제1 데이터를 가공하여 제1 암호키를 생성하고, 제2 데이터를 가공하여 제2 암호키를 생성하고, 제1 암호키의 값과 제2 암호키의 값은 소수이고, 제1 암호키와 제2 암호키를 이용하여 RSA 알고리즘을 통해 제1 공개키와 제1 비밀키를 생성하고, 제1 암호키, 제2 암호키, 제1 공개키 및 제1 비밀키를 제1 메모리 셀 어레이에 저장하고, 제2 메모리 장치는 제3 데이터를 가공하여 제3 암호키를 생성하고, 제4 데이터를 가공하여 제4 암호키를 생성하고, 제3 암호키의 값과 제4 암호키의 값은 소수이고, 제3 암호키와 제4 암호키를 이용하여 RSA 알고리즘을 통해 제2 공개키와 제2 비밀키를 생성하고, 제3 암호키, 제4 암호키, 제2 공개키 및 제2 비밀키를 제2 메모리 셀 어레이에 저장하고, 제1 내지 제4 암호키는 서로 다르고, 제1 및 제2 공개키는 서로 다르고, 제1 및 제2 비밀키는 서로 다를 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 서비스 제공자는 복호화 장치, 암호화 장치, 전자 장치로부터 제1 신호를 제공받는 수신부, 및 전자 장치에 제2 신호를 제공하는 송신부를 포함하고, 제1 신호는 전자 장치의 비밀키를 이용하여 생성된 암호화 데이터를 포함하고, 비밀키는 전자 장치의 제1 암호키 및 제2 암호키를 이용하여 RSA 알고리즘을 통해 공개키와 함께 생성되고, 제1 암호키는 전자 장치에 포함된 메모리 장치에 대한 정보를 포함하는 제1 데이터를 가공하여 생성되고, 제2 암호키는 제1 데이터와 다른 전자 장치에 포함된 메모리 장치에 대한 정보를 포함하는 제2 데이터를 가공하여 생성되고, 복호화 장치는 암호화 데이터를 복호화할 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 몇몇 실시예에 따른 전자 장치를 설명하기 위한 블록도이다.
도 2는 도 1의 반도체 장치를 설명하기 위한 블록도이다.
도 3은 도 2의 메모리 블록을 설명하기 위한 도면이다.
도 4는 몇몇 실시예에 따른 반도체 장치의 암호키 생성을 설명하기 위한 블록도이다.
도 5는 몇몇 실시예에 따른 반도체 장치의 암호키 생성을 설명하기 위한 도면이다.
도 6은 몇몇 실시예에 따른 반도체 장치의 암호키 생성을 설명하기 위한 순서도이다.
도 7은 몇몇 실시예에 따른 반도체 장치의 암호키 생성을 설명하기 위한 블록도이다.
도 8은 본 발명의 몇몇 실시예에 따른 전자 장치를 설명하기 위한 블록도이다.
도 9는 본 발명의 몇몇 실시예에 따른 전자 장치를 설명하기 위한 블록도이다.
도 10은 도 9의 전자 장치의 데이터 전달을 설명하기 위한 순서도이다.
도 11은 본 발명의 몇몇 실시예에 따른 전자 장치를 설명하기 위한 블록도이다.
도 12는 도 11의 전자 장치의 데이터 전달을 설명하기 위한 순서도이다.
도 13은 본 발명의 몇몇 실시예에 따른 통신 시스템을 설명하기 위한 블록도이다.
도 14는 본 발명의 몇몇 실시예에 따른 통신 시스템을 설명하기 위한 블록도이다.
도 15는 본 발명의 몇몇 실시예에 따른 통신 시스템을 설명하기 위한 블록도이다.
이하 첨부된 도면을 참조하여, 본 발명의 기술적 사상에 따른 실시예들에 대해 설명한다.
이하 도 1 내지 도 7을 참조하여 반도체 장치(100)를 포함하는 전자 장치(1)를 설명한다.
도 1은 본 발명의 몇몇 실시예에 따른 전자 장치를 설명하기 위한 블록도이다. 도 2는 도 1의 반도체 장치를 설명하기 위한 블록도이다. 도 3은 도 2의 메모리 블록을 설명하기 위한 도면이다.
본 발명의 몇몇 실시예에 따른 전자 장치(1)는 반도체 장치(100)와 메모리 컨트롤러(200)를 포함할 수 있다.
전자 장치(1)는 예를 들어 스마트 카드, SD(secure digital) 카드, 멀티미디어 카드(multimedia card(MMC)), 임베디드 MMC(embedded MMC (eMMC)), 임베디드 멀티-칩 패키지 (embedded multi-chip package(eMCP)), PPN(perfect page NAND), 유니버셜 플래시 스토리지(universal flash storage(UFS)), USB 플래시 드라이브, 솔리드 스테이트 드라이브(solid state drive(SSD)), 또는 임베디드 SSD(embedded SSD(eSSD))로 구현될 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 전자 장치(1)는 디지털 카메라, 디지털 캠코더, 모바일 폰 및 태블릿 컴퓨터를 포함할 수 있다.
반도체 장치(100)는, 예를 들어, 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magneto resistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등을 포함할 수 있으나, 실시예들이 이러한 예시들에 제한되는 것은 아니다.
메모리 컨트롤러(200)는 반도체 장치(100)의 동작을 전반적으로 제어한다. 메모리 컨트롤러(200)는 호스트(HOST)로부터 제공되는 명령어를 해석하고, 해석결과에 따라 반도체 장치(100)의 동작, 예를 들어, 프로그램, 리드, 이레이즈 동작 등을 제어할 수 있다.
이하에서는 반도체 장치(100)가 수직형 낸드 플래시 메모리(VNAND)인 것을 예로 들어, 본 발명의 기술적 사상에 대해 설명할 것이나, 본 발명의 기술적 사상에 따른 실시예들이 이러한 예시에 제한되는 것은 아니다. 즉, 본 발명의 기술적 사상에 따른 실시예들은 앞서 설명한 비휘발성 메모리들에 적용 가능할 수 있다.
도 2를 참조하면, 반도체 장치(100)는 전압 생성기(110), 어드레스 디코더(130), 입출력 회로(140), 컨트롤러(150), 메모리 셀 어레이(160) 및 보안 모듈(170)을 포함할 수 있다.
전압 생성기(110)는, 전원 전압(Vcc)을 이용하여 반도체 장치(100)의 동작에 필요한 동작 전압(Vg)을 생성할 수 있다. 이러한 동작 전압(Vg)의 예로는, 프로그램 전압, 패스 전압, 리드 전압, 리드 패스 전압, 검증 전압, 소거 전압, 공통 소스 라인 전압, 웰 전압 등을 들 수 있으나, 실시예들이 이에 제한되는 것은 아니다.
전압 생성기(110)는, 메모리 셀 어레이(160)에 배치된 메모리 셀에 새로운 데이터를 프로그램하거나, 메모리 셀에 저장된 데이터를 리드하거나, 메모리 셀에 저장된 데이터를 소거하는데 필요한 워드 라인 전압을 생성할 수 있다.
어드레스 디코더(130)는 어드레스(ADDR)에 응답하여 메모리 셀 어레이(160)의 메모리 블록(예를 들어, 161 및 162)을 선택할 수 있다. 또한, 어드레스 디코더(130)는 복수의 워드 라인(WL), 적어도 하나의 스트링 선택 라인(SSL) 및 적어도 하나의 접지 선택 라인(GSL)을 통해 메모리 셀 어레이(160)에 접속될 수 있다.
어드레스 디코더(130)는 디코딩된 로우(row) 어드레스를 이용하여 워드 라인(WL), 스트링 선택 라인(SSL) 및 접지 선택 라인(GSL)을 선택할 수 있다. 또한, 어드레스 디코더(130)는 입력된 어드레스 중 컬럼(column) 어드레스를 디코딩 할 수 있다. 여기서 디코딩된 컬럼 어드레스는 입출력 회로(140)에 전송될 수 있다. 몇몇 실시예에서, 어드레스 디코더(130)는 로우 디코더, 컬럼 디코더, 어드레스 버퍼 등을 포함할 수 있다.
입출력 회로(140)는 비트 라인(BL)을 통해 메모리 셀 어레이(160)에 접속될 수 있다. 입출력 회로(140)는 어드레스 디코더(130)로부터 디코딩된 컬럼 어드레스를 입력 받을 수 있다. 입출력 회로(140)는 디코딩된 컬럼 어드레스를 이용하여 비트 라인들(BL)을 선택할 수 있다.
입출력 회로(140)는 반도체 장치(100)가 프로그램 동작을 수행할 때 프로그램 될 데이터를 저장하거나, 리드 동작을 수행할 때 리드된 데이터를 저장하는 페이지 버퍼(141)를 포함할 수 있다. 여기서 페이지 버퍼(141)는 복수의 래치를 포함할 수 있다.
프로그램 동작 시, 페이지 버퍼(141)에 저장된 데이터는 비트 라인(BL)을 통해 선택된 메모리 블록에 대응하는 페이지에 프로그램 될 수 있다. 리드 동작 시 선택된 메모리 블록에 대응하는 페이지로부터 리드된 데이터는 비트 라인(BL)을 통하여 페이지 버퍼(141)에 저장될 수 있다.
컨트롤러(150)는 반도체 장치(100)의 전반적인 동작(프로그램, 리드, 소거 등)을 제어할 수 있다. 구체적으로, 컨트롤러(150)는 반도체 장치(100)가 동작하는 동안, 전압 생성기(110), 어드레스 디코더(130), 및 입출력 회로(140)의 동작을 제어할 수 있다. 컨트롤러(150)은 외부로부터 입력된 제어 신호들(CTRL) 또는 명령(CMD)에 응답하여 동작할 수 있다. 도면에서는 컨트롤러(150)가 전압 생성기(110), 어드레스 디코더(130), 및 입출력 회로(140)의 동작을 제어하는 구성만 도시되어 있으나, 실시예들이 이에 제한되는 것은 아니다. 필요에 따라 반도체 장치(100)는 도시된 구성요소 외에 더 많은 구성요소를 포함할 수 있고, 컨트롤러(150)는 이들 구성요소들의 전반적인 동작을 제어할 수 있다.
메모리 셀 어레이(160)는 어드레스 디코더(130) 및 입출력 회로(140)와 접속될 수 있다. 메모리 셀 어레이(160)는 메모리 블록(161) 및 보안 메모리 블록(162)을 포함할 수 있다. 어드레스 디코더(130)는 워드 라인(WL), 스트링 선택 라인(SSL) 및 접지 선택 라인(GSL)을 통해 메모리 블록(161) 및 보안 메모리 블록(162)과 접속할 수 있다. 입출력 회로(140)는 비트 라인(BL)을 통해 메모리 블록(161) 및 보안 메모리 블록(162)과 접속할 수 있다.
메모리 셀 어레이(160)는 3차원 어레이 구조(3 dimensional memory array structure)일 수 있다. 예를 들어, 메모리 블록(161) 및 보안 메모리 블록(162)은 3차원 어레이 구조일 수 있다. 메모리 블록(161) 및 보안 메모리 블록(162)은 기판 상에서 제1 방향 및 제1 방향과 다른 제2 방향에 따라 배열되고, 제1 및 제2 방향에 의해 형성된 평면에 수직한 제3 방향으로 배열되는 3차원 구조의 복수의 스트링(string)을 포함할 수 있다. 여기서 복수의 스트링 각각은, 비트 라인(BL)과 공통 소스 라인(common source line) 사이에서 직렬 연결된 적어도 하나의 스트링 선택 트랜지스터, 복수의 메모리 셀, 적어도 하나의 접지 선택 트랜지스터로 구성될 수 있다. 여기서 복수의 메모리 셀 각각은 적어도 하나의 비트를 저장할 수 있다. 몇몇 실시예에서, 적어도 하나의 스트링 선택 트랜지스터 및 복수의 메모리 셀 사이에 적어도 하나의 더미 셀이 포함될 수 있다. 몇몇 실시예에서, 복수의 메모리 셀과 적어도 하나의 접지 선택 트랜지스터들 사이에 적어도 하나의 더미 셀이 포함될 수 있다.
도 3을 참조하면, 메모리 블록(161)은 기판(SUB)과 수직 방향으로 형성될 수 있다. 도면에서는 메모리 블록(161)을 도시하였으나, 본 발명의 기술적 사상에 따른 실시예는 이에 제한되지 않고, 보안 메모리 블록(162) 또한 도 3과 같은 형태일 수 있다. 기판(SUB)에는 불순물을 포함하는 예를 들어, n+ 도핑 영역(186)이 형성될 수 있다. 이러한 도핑 영역(186)은 공통 소스 라인으로 이용될 수 있다.
기판(SUB) 상에 게이트 전극(185)과 절연막(184)이 교대로 적층될 수 있다. 게이트 전극(185)과 절연막(184) 사이에는 데이터 저장막(181)이 형성될 수 있다.
필라(pillar)(188)는 게이트 전극(185)과 절연막(184)을 수직 방향으로 관통할 수 있다. 필라(188)는 도시된 것과 같이 V자 형상으로 형성될 수 있다. 필라(188)는 게이트 전극(185)과 절연막(184)을 관통하여 기판(SUB)과 연결될 수 있다. 필라(188)의 내부는 충전 유전 패턴(183)으로 실리콘 산화물(Silicon Oxide)과 같은 절연 물질로 구성될 수 있다. 필라의 외부는 수직 활성 패턴(182)으로 채널 반도체로 구성될 수 있다.
메모리 블록(161)의 게이트 전극(185)은 접지 선택 라인(GSL), 복수의 워드 라인(WL1 ~ WL8), 그리고 스트링 선택 라인(SSL)에 접속될 수 있다. 수직 활성 패턴(182)은 비트 라인 컨택(BC)을 통해 복수의 비트 라인(BL1 ~ BL3)에 접속될 수 있다. 도 3에서는, 메모리 블록(161)이 8개의 워드 라인(WL1 ~ WL8) 및 3개의 비트 라인(BL1 ~ BL3)을 갖는 것으로 도시되어 있으나, 실시예가 이에 제한되는 것은 아니다.
다시 도 2를 참조하면, 보안 모듈(170)은 입출력 회로(140) 및 컨트롤러(150)과 접속될 수 있으나, 본 발명의 기술적 사상에 따른 실시예는 이에 제한되지 않는다. 예를 들어, 보안 모듈(170)은 컨트롤러(150)에 포함될 수 있고, 보안 모듈(170)의 기능은 컨트롤러(150)에 의해 구현될 수 있다. 다른 예를 들어, 보안 모듈(170)의 기능은 메모리 컨트롤러(도 1의 200)에 의해 구현될 수 있다. 보안 모듈(170)은 메모리 셀 어레이(160)로부터 데이터를 독출하여 후술되는 방법을 통하여 암호키, 공개키 및 비밀키를 생성할 수 있다. 보안 모듈(170)은 생성한 암호키, 공개키 및 비밀키를 메모리 셀 어레이(160)(예를 들어, 보안 메모리 블록(162))에 저장할 수 있다. 보안 모듈(170)은 호스트(HOST)에 공개키만을 제공할 수 있으며, 암호키 및 비밀키를 제공하지 않을 수 있다.
호스트(HOST)는 메모리 셀 어레이(160)에 액세스할 수 있다. 예를 들어, 호스트(HOST)는 메모리 블록(161) 및 보안 메모리 블록(162)에 액세스할 수 있다. 메모리 블록(161)은 호스트(HOST)로부터 제공되는 일반 액세스 명령에 의하여 액세스될 수 있다. 보안 메모리 블록(162)는 호스트(HOST)로부터 제공되는 보안 액세스 명령에 의하여 액세스될 수 있다.
메모리 블록(161)은 호스트(HOST)가 라이트하고자 하거나, 리드하고자 하는 데이터를 저장할 수 있다. 보안 메모리 블록(162)은 반도체 장치(100)의 보안에 관련된 데이터를 저장할 수 있다. 예를 들어, 보안 메모리 블록(162)은 후술될 암호키, 공개키 및 비밀키에 대한 데이터를 저장할 수 있다.
호스트(HOST)는 일반 액세스 명령으로 보안 메모리 블록(162)에 저장된 데이터를 액세스하지 못한다. 즉, 보안 메모리 블록(162)에 저장된 데이터는 외부(예를 들어, 호스트(HOST))에 의해 액세스되지 못한다.
이하 도 4 내지 도 7을 참조하여 반도체 장치(100)의 암호키(p 및 q), 비밀키(SK) 및 공개키(PK)를 생성하는 것을 설명한다.
도 4는 몇몇 실시예에 따른 반도체 장치의 암호키 생성을 설명하기 위한 블록도이다. 도 5는 몇몇 실시예에 따른 반도체 장치의 암호키 생성을 설명하기 위한 도면이다. 도 6은 몇몇 실시예에 따른 반도체 장치의 암호키 생성을 설명하기 위한 순서도이다. 도 7은 몇몇 실시예에 따른 반도체 장치의 암호키 생성을 설명하기 위한 블록도이다.
도 4를 참조하면, 메모리 셀 어레이(160)와 보안 모듈(170)은 데이터(a, b, p, q, SK 및 PK)를 주고받을 수 있다. 예를 들어, 보안 메모리 블록(162)에 저장된 제1 데이터(a) 및 제2 데이터(b)는 보안 모듈(170)에 제공될 수 있다. 보안 모듈(170)은 메모리 셀 어레이(160)에 제1 암호키(p), 제2 암호키(q), 비밀키(SK) 및 공개키(PK)를 제공할 수 있다.
몇몇 실시예에서, 보안 메모리 블록(162)는 제1 데이터(a) 및 제2 데이터(b)와 생성된 제1 암호키(p), 제2 암호키(q), 비밀키(SK) 및 공개키(PK)를 저장할 수 있다. 하지만 본 발명의 기술적 사상에 따른 실시예는 이에 제한되지 않으며, 공개키(PK)는 메모리 블록(161)에 저장될 수도 있다.
제1 데이터(a)는 반도체 장치(100)의 생산 정보를 포함하는 유니크 ID 데이터(unique ID data)를 포함할 수 있다. 유니크 ID 데이터는 반도체 장치(100)마다 다른 고유의 정보에 해당할 수 있다. 예를 들어, 유니크 ID 데이터는 반도체 장치(100)가 생산된 Fab의 번호, 웨이퍼의 번호, 웨이퍼 테스트 시간 및 임의의 숫자를 포함할 수 있다. 제1 데이터(a)는 보안 메모리 블록(162)에 저장되어, 호스트(HOST)의 일반 액세스 명령에 의해 액세스될 수 없다. 즉, 제1 데이터(a)는 외부에 의해 액세스되지 못한다.
제2 데이터(b)는 반도체 장치(100)의 동작 특성의 정보를 포함하는 DC 트림 데이터(DC trim data)를 포함할 수 있다. DC 트림 데이터는 반도체 장치(100)마다 다른 고유의 정보에 해당할 수 있다. 예를 들어, DC 트림 데이터는 각각의 반도체 장치(100)의 동작 특성을 맞추기 위한 것이고, 각각의 반도체 장치(100)마다 모두 다를 수 있다. DC 트림 데이터는 외부에 공개되지 않을 수 있다. 제2 데이터(b)는 보안 메모리 블록(162)에 저장되어, 호스트(HOST)의 일반 액세스 명령에 의해 액세스될 수 없다. 즉, 제2 데이터(b)는 외부에 의해 액세스되지 못한다. 이에 따라, 보안이 향상된 반도체 장치(100)가 제공될 수 있다.
제1 데이터(a) 및 제2 데이터(b)는 상기 내용에서 설명한 데이터에 제한되지 않고 다른 데이터를 포함할 수 있다. 즉, 제1 데이터(a) 및 제2 데이터(b)는 반도체 장치(100) 고유의 정보에 대한 데이터를 포함할 수 있고, 보안 메모리 블록(162)에 저장되어 외부에 의해 액세스되지 못한다.
도 5 및 도 6을 참조하면, 보안 모듈(170)은 메모리 셀 어레이(160)로부터 제공된 제1 데이터(a) 및 제2 데이터(b)를 이용하여 제1 암호키(p) 및 제2 암호키(q)를 생성할 수 있다.
보안 모듈(170)은 원본 데이터에 데이터를 삽입하여 암호키를 생성할 수 있다(S190). 예를 들어, 보안 모듈(170)은 제1 데이터(a)에 데이터(x1)를 삽입하여 제1 암호키(p)를 생성할 수 있다. 데이터(x1)는 임의의(random) 난수를 포함하는 m 개의 비트를 포함하는 데이터일 수 있다. 예를 들어, 보안 모듈(170)은 제2 데이터(b)에 데이터(x2)를 삽입하여 제2 암호키(q)를 생성할 수 있다. 데이터(x2)는 임의의 난수를 포함하는 n 개의 비트를 포함하는 데이터일 수 있다. 여기서, m 및 n은 1 이상의 자연수일 수 있다.
보안 모듈(170)은 상기 과정을 통해 생성된 암호키의 값(value)이 소수(prime number)인지 판단할 수 있다(S191). 여기서, 소수는 1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수이다. 예를 들어, 소수는 2, 3, 5, 7, 11, 13 등일 수 있다. 보안 모듈(170)은 제1 암호키(p)의 값이 소수인지 판단할 수 있다. 보안 모듈(170)은 제2 암호키(q)의 값이 소수인지 판단할 수 있다. 여기서, 제1 암호키(p)의 값과 제2 암호키(q)의 값은 서로 다를 수 있다.
암호키(p 또는 q)의 값이 소수로 판단되는 경우(S191-Y), 보안 모듈은 생성된 제1 암호키(p) 또는 제2 암호키(q)를 메모리 셀 어레이(160)에 제공할 수 있다. 메모리 셀 어레이(160)에 제공된 제1 암호키(p) 및 제2 암호키(q)는 보안 메모리 블록(162)에 저장될 수 있다(S192).
암호키(p 또는 q)의 값이 소수로 판단되지 않는 경우(S191-N), 보안 모듈은 제1 데이터(a)에 삽입한 데이터와 다른 데이터(x1)를 삽입하거나, 제2 데이터(b)에 삽입한 데이터와 다른 데이터(x2)를 삽입할 수 있다(S193). 이를 통해 생성된 제1 데이터(a) 및 제2 데이터(b)는 다시 소수인지 판단될 수 있다(S191).
생성된 암호키의 값이 소수인 제1 암호키(p) 및 제2 암호키(q)는 일시적으로 보안 모듈(170)에 저장될 수 있다. 예를 들어, 제1 암호키(p) 및 제2 암호키(q)는 휘발성 메모리 장치(예를 들어 DRAM(dynamic RAM))에 저장될 수 있다. 하지만, 본 발명의 기술적 사상에 따른 실시예는 이에 제한되지 않으며, 다른 메모리 장치에 저장될 수 있다.
도 7을 참조하면, 보안 모듈(170)은 키 생성 모듈(171)을 포함할 수 있다. 하지만, 본 발명의 기술적 사상에 따른 실시예는 이에 제한되지 않고, 반도체 장치(100)의 다른 구성에 의해 구현될 수 있다.
키 생성 모듈(171)은 제1 암호키(p) 및 제2 암호키(q)를 이용하여 비밀키(SK) 및 공개키(PK)를 생성할 수 있다. 키 생성 모듈(171)은 RSA (Rivest Shamir Adleman) 알고리즘을 이용하여 비밀키(SK) 및 공개키(PK)를 생성할 수 있으나, 본 발명의 기술적 사상에 따른 실시예는 이에 제한되지 않고, 비밀키(SK) 및 공개키(PK)를 생성하는 알고리즘은 DES(Data Encryption Standard) 및 AES(Advanced Encryption Standard) 알고리즘을 포함할 수 있다.
이하에서, 제1 암호키(p) 및 제2 암호키(q)를 이용하여 비밀키(SK) 및 공개키(PK)를 생성하는 방법을 설명한다. 하지만, 해당 방법은 하나의 실시예에 불과하고, 본 발명의 기술적 사상에 따른 실시예는 이에 제한되지 않으며, 다른 제1 암호키(p), 제2 암호키(q), 비밀키(SK) 및 공개키(PK)를 포함할 수 있다.
제1 암호키(p)의 값과 제2 암호키(q)의 값은 소수일 수 있다. 예를 들어, 제1 암호키(p)의 값은 13이고, 제2 암호키(q)의 값은 11인 것으로 가정한다. 제1 암호키(p)와 제2 암호키(q)를 곱하여 공개키(PK)를 생성한다. 예를 들어, 공개키(PK)의 값은 13과 11을 곱한 143일 수 있다.
수학식 1에 의해 Ψ(PK)를 구할 수 있다.
<수학식 1>
Ψ(PK) = (p-1)*(q-1)
예를 들어, Ψ(PK)는 (13-1)*(11-1)=12*10=120일 수 있다.
Ψ(PK)보다 작고 Ψ(PK)와 서로소인 자연수 e를 구할 수 있다. 예를 들어, 1보다 크고 120보다 작고, 120과 서로소인 자연수 e를 구할 수 있다. 예를 들어, e는 23일 수 있다.
수학식 2를 만족하는 d를 선택할 수 있다. 여기서, e*d ≡ 1(mod Ψ(PK))은 e*d를 Ψ(PK)로 나누었을 때 나머지가 1이 된다는 의미이다.
<수학식 2>
e*d ≡ 1(mod Ψ(PK)), 1<d<Ψ(PK)
예를 들어, 23*d ≡ 1(mod 120)과 1<d<120을 만족하는 47을 d로 선택할 수 있다. d는 47일 수 있다.
{PK, e}는 공개키이고, {PK, d}는 비밀키일 수 있다. 예를 들어, 상기 과정을 통해 생성된 공개키는 {143, 23}이고, 비밀키는 {143, 47}일 수 있다.
공개키(PK)는 {PK, e}를 포함할 수 있고, 비밀키(SK)는 {PK, d}를 포함할 수 있다. 하지만, 본 발명의 기술적 사상에 따른 실시예는 이에 제한되지 않으며, 공개키(PK) 및 비밀키(SK)는 다른 값을 가질 수 있다.
몇몇 실시예에서, 생성된 공개키(PK) 및 비밀키(SK)는 메모리 셀 어레이(160)에 저장될 수 있다. 공개키(PK) 및 비밀키(SK)는 메모리 셀 어레이(160)를 제외한 반도체 장치(100)의 구성요소에 저장되지 않을 수 있다. 예를 들어, 공개키(PK) 및 비밀키(SK)는 보안 모듈(170)에서 삭제될 수 있다. 공개키(PK) 및 비밀키(SK)는 보안 메모리 블록(162)에 저장될 수 있다. 다른 실시예에서, 공개키(PK)는 메모리 블록(161)에 저장될 수 있다. 공개키(PK)는 호스트(HOST)에 의해 액세스되어 호스트(HOST)에 제공될 수 있다.
반도체 장치(100) 고유의 데이터(예를 들어, 유니크 ID 데이터 및 DC 트림 데이터 등)를 이용하여 암호키(예를 들어, 제1 암호키(p) 및 제2 암호키(q) 등)를 생성하고, 암호키를 이용하여 RSA 알고리즘을 통해 공개키(PK) 및 비밀키(SK)를 생성하고, 제1 암호키(p), 제2 암호키(q), 공개키(PK) 및 비밀키(SK)를 메모리 셀 어레이(160)(예를 들어, 보안 메모리 블록(162))에 저장함으로써, 외부(예를 들어 호스트(HOST))로부터 액세스할 수 없는 암호키를 저장할 수 있다. 이를 통해, 보안이 향상된 반도체 장치(100)가 제공될 수 있다.
예를 들어, 외부의 구성요소(예를 들어 호스트(HOST))가 제1 암호키(p), 제2 암호키(q) 및 공개키(PK) 중 하나를 알더라도, 그 값이 큰 소수를 소인수분해하여 비밀키(SK)를 도출하는 것은 오랜 시간이 걸리므로, 반도체 장치(100)의 보안은 향상될 수 있다.
도 8은 본 발명의 몇몇 실시예에 따른 전자 장치를 설명하기 위한 블록도이다. 설명의 편의를 위해, 도 1 내지 도 7을 이용하여 설명한 것과 중복되는 부분은 간략히 설명하거나 생략한다.
도 8을 참조하면, 전자 장치(2)는 메모리 컨트롤러(200), 반도체 장치(100), 반도체 장치(101) 및 반도체 장치(102)를 포함할 수 있다. 반도체 장치(101) 및 반도체 장치(102)는 도 1 내지 도 7을 이용하여 설명한 반도체 장치(100)와 동일한 구조일 수 있으나, 본 발명의 기술적 사상에 따른 실시예는 이에 제한되지 않고, 서로 다른 구조일 수 있다.
메모리 컨트롤러(200)는 보안 모듈(210)을 포함할 수 있다. 보안 모듈(210)은 도 4를 이용하여 설명한 보안 모듈(170)과 동일할 수 있다. 보안 모듈(210)은 메모리 컨트롤러(200)에 포함된 것으로 도시되지만, 본 발명의 기술적 사상에 따른 실시예는 이에 제한되지 않으며, 각각의 반도체 장치(100), 반도체 장치(101) 및 반도체 장치(102)에 포함되어 구현될 수 있다.
몇몇 실시예에서, 반도체 장치(100)는 반도체 장치(100)에 대한 정보를 포함하는 제1 데이터(a1) 및 제2 데이터(b1)를 저장할 수 있다. 반도체 장치(101)는 반도체 장치(101)에 대한 정보를 포함하는 제1 데이터(a2) 및 제2 데이터(b2)를 저장할 수 있다. 반도체 장치(102)는 반도체 장치(102)에 대한 정보를 포함하는 제1 데이터(a3) 및 제2 데이터(b3)를 저장할 수 있다. 제1 데이터(a1), 제2 데이터(b1), 제1 데이터(a2), 제2 데이터(b2), 제1 데이터(a3) 및 제2 데이터(b3)는 서로 다른 값일 수 있다.
반도체 장치(100)는 메모리 컨트롤러(200)에 제1 데이터(a1) 및 제2 데이터(b1)를 제공할 수 있다. 반도체 장치(101)는 메모리 컨트롤러(200)에 제1 데이터(a2) 및 제2 데이터(b2)를 제공할 수 있다. 반도체 장치(102)는 메모리 컨트롤러(200)에 제1 데이터(a3) 및 제2 데이터(b3)를 제공할 수 있다.
보안 모듈(210)은 제공된 제1 데이터(a1) 및 제2 데이터(b1)를 이용하여 제1 암호키(p1), 제2 암호키(q1), 비밀키(SK1) 및 공개키(PK1)를 생성할 수 있다. 보안 모듈(210)은 제공된 제1 데이터(a2) 및 제2 데이터(b2)를 이용하여 제1 암호키(p2), 제2 암호키(q2), 비밀키(SK2) 및 공개키(PK2)를 생성할 수 있다. 보안 모듈(210)은 제공된 제1 데이터(a3) 및 제2 데이터(b3)를 이용하여 제1 암호키(p3), 제2 암호키(q3), 비밀키(SK3) 및 공개키(PK3)를 생성할 수 있다.
반도체 장치(100)는 메모리 컨트롤러(200)로부터 제공된 제1 암호키(p1), 제2 암호키(q1), 비밀키(SK1) 및 공개키(PK1)를 저장할 수 있다. 반도체 장치(101)는 메모리 컨트롤러(200)로부터 제공된 제1 암호키(p2), 제2 암호키(q2), 비밀키(SK2) 및 공개키(PK2)를 저장할 수 있다. 반도체 장치(102)는 메모리 컨트롤러(200)로부터 제공된 제1 암호키(p3), 제2 암호키(q3), 비밀키(SK3) 및 공개키(PK3)를 저장할 수 있다. 공개키(PK1), 공개키(PK2) 및 공개키(PK3)는 호스트(HOST)에 제공될 수 있다.
반도체 장치(100)에 저장된 제1 암호키(p1) 및 제2 암호키(q1), 반도체 장치(101)에 저장된 제1 암호키(p2) 및 제2 암호키(q2), 그리고 반도체 장치(102)에 저장된 제1 암호키(p3) 및 제2 암호키(q3)는 서로 다른 값일 수 있다.
반도체 장치(100)에 저장된 비밀키(SK1), 반도체 장치(101)에 저장된 비밀키(SK2) 그리고 반도체 장치(102)에 저장된 비밀키(SK3)는 서로 다른 값일 수 있다.
반도체 장치(100)에 저장된 공개키(PK1), 반도체 장치(101)에 저장된 공개키(PK2) 그리고 반도체 장치(102)에 저장된 공개키(PK3)는 서로 다른 값일 수 있다.
이를 통해, 반도체 장치(100), 반도체 장치(101) 및 반도체 장치(102)는 서로 다른 암호키를 갖고, 외부에서 액세스 하는 경우 모두 다른 암호키로 액세스해야 하므로, 보안이 향상된 전자 장치(2)가 제공될 수 있다.
이하 도 9 및 도 10을 참조하여 반도체 장치(100)를 포함하는 전자 장치(3)를 설명한다.
도 9는 본 발명의 몇몇 실시예에 따른 전자 장치를 설명하기 위한 블록도이다. 도 10은 도 9의 전자 장치의 데이터 전달을 설명하기 위한 순서도이다. 설명의 편의를 위해, 도 1 내지 도 7을 이용하여 설명한 것과 중복되는 부분은 간략히 설명하거나 생략한다.
도 9 및 도 10을 참조하면, 전자 장치(3)는 반도체 장치(100), 암호화 장치(300) 및 복호화 장치(400)를 포함할 수 있다. 도 9는 반도체 장치(100)가 암호화 장치(300) 및 복호화 장치(400)와 분리된 것으로 도시되었으나, 본 발명의 기술적 사상에 따른 실시예는 이에 제한되지 않는다. 예를 들어, 반도체 장치(100)는 암호화 장치(300)를 포함할 수 있고, 반도체 장치(100)는 복호화 장치(400)를 포함할 수 있고, 반도체 장치(100)는 암호화 장치(300) 및 복호화 장치(400)를 모두 포함할 수 있다.
반도체 장치(100)는 평온 데이터(plain data)(m)와 비밀키(SK)를 암호화 장치(300)에 제공할 수 있다(S310). 예를 들어, 반도체 장치(100)는 메모리 블록(161)에 저장된 평온 데이터(m)를 암호화 장치(300)에 제공할 수 있다. 예를 들어, 반도체 장치(100)는 보안 메모리 블록(162)에 저장된 비밀키(SK)를 암호화 장치(300)에 제공할 수 있다.
암호화 장치(300)는 평온 데이터(m)와 비밀키(SK)를 이용하여 암호화 데이터(c)를 생성할 수 있다(S311). 예를 들어, 암호화 장치(300)는 소수인 제1 암호키(p) 및 제2 암호키(q)를 이용하여 RSA 알고리즘을 통해 생성된 비밀키(SK)와 전달하고자 하는 평온 데이터(m)를 이용하여 암호화된 내용을 포함하는 암호화 데이터(c)를 생성할 수 있다.
암호화 데이터(c) 및 공개키(PK)는 복호화 장치(400)에 제공될 수 있다(S312). 예를 들어, 암호화 장치(300)는 생성된 암호화 데이터(c)를 복호화 장치(400)에 제공할 수 있다. 예를 들어, 반도체 장치(100)는 메모리 블록(161) 또는 보안 메모리 블록(162)에 저장된 공개키(PK)를 복호화 장치(400)에 제공할 수 있다.
복호화 장치(400)는 암호화 데이터(c)와 공개키(PK)를 이용하여 평온 데이터(m')를 생성할 수 있다(S313). 예를 들어, 복호화 장치(400)는 전달받은 암호화 데이터(c)를 공개된 공개키(PK)를 이용하여 복호화함으로써 평온 데이터(m')를 생성할 수 있다. 평온 데이터(m)는 평온 데이터(m')와 동일할 수 있으나, 실시예는 이에 제한되지 않는다. 복호화된 평온 데이터(m')는 복호화 장치(400)로부터 호스트(HOST)로 전달될 수 있다. 이를 통해, 호스트(HOST)는 암호화 데이터(c)가 반도체 장치(100)로부터 전달된 것임을 알 수 있고, 보안이 향상된 전자 장치(3)가 제공될 수 있다.
이하 도 11 및 도 12을 참조하여 반도체 장치(100)를 포함하는 전자 장치(4)를 설명한다.
도 11은 본 발명의 몇몇 실시예에 따른 전자 장치를 설명하기 위한 블록도이다. 도 12는 도 11의 전자 장치의 데이터 전달을 설명하기 위한 순서도이다. 설명의 편의를 위해, 도 1 내지 도 7을 이용하여 설명한 것과 중복되는 부분은 간략히 설명하거나 생략한다.
도 11 및 도 12를 참조하면, 전자 장치(4)는 반도체 장치(100), 암호화 장치(300) 및 복호화 장치(400)를 포함할 수 있다. 도 11은 반도체 장치(100)가 암호화 장치(300) 및 복호화 장치(400)와 분리된 것으로 도시되었으나, 본 발명의 기술적 사상에 따른 실시예는 이에 제한되지 않는다. 예를 들어, 반도체 장치(100)는 암호화 장치(300)를 포함할 수 있고, 반도체 장치(100)는 복호화 장치(400)를 포함할 수 있고, 반도체 장치(100)는 암호화 장치(300) 및 복호화 장치(400)를 모두 포함할 수 있다.
암호화 장치(300)는 평온 데이터(m) 및 공개키(PK)를 제공받을 수 있다(S320). 예를 들어, 호스트(HOST)는 평온 데이터(m)를 암호화 장치(300)에 제공할 수 있다. 예를 들어, 반도체 장치(100)는 메모리 블록(161) 또는 보안 메모리 블록(162)에 저장된 공개키(PK)를 암호화 장치(300)에 제공할 수 있다.
암호화 장치(300)는 제공받은 평온 데이터(m) 및 공개키(PK)를 이용하여 암호화 데이터(c)를 생성할 수 있다(S321). 예를 들어, 암호화 장치(300)는 공개키(PK)와 전달하고자 하는 평온 데이터(m)를 이용하여 암호화된 내용을 포함하는 암호화 데이터(c)를 생성할 수 있다.
복호화 장치(400)는 암호화 데이터(c)와 비밀키(SK)를 제공받을 수 있다(S322). 예를 들어, 암호화 장치(300)는 생성된 암호화 데이터(c)를 복호화 장치(400)에 제공할 수 있다. 예를 들어, 반도체 장치(100)는 보안 메모리 블록(162)에 저장된 비밀키(SK)를 복호화 장치(400)에 제공할 수 있다.
복호화 장치(400)는 암호화 데이터(c)와 비밀키(SK)를 이용하여 평온 데이터(m')를 생성할 수 있다(S323). 예를 들어, 복호화 장치(400)는 전달받은 암호화 데이터(c)를 비밀로 유지되는 비밀키(SK)를 이용하여 복호화함으로써 평온 데이터(m')를 생성할 수 있다. 평온 데이터(m)는 평온 데이터(m')와 동일할 수 있으나, 실시예는 이에 제한되지 않는다. 복호화된 평온 데이터(m')는 복호화 장치(400)로부터 반도체 장치(100)로 전달될 수 있다. 이를 통해, 제3 자가 암호화 데이터(c)를 알아내더라도, 공개키(PK)만으로는 복호화할 수 없고, 비밀키(SK)는 반도체 장치(100)에 저장되어 있으므로, 보안이 향상된 전자 장치(4)가 제공될 수 있다.
이하 도 13을 참조하여 전자 장치(1)를 포함하는 통신 시스템(5)을 설명한다.
도 13은 본 발명의 몇몇 실시예에 따른 통신 시스템을 설명하기 위한 블록도이다. 설명의 편의를 위해, 도 1 내지 도 7을 이용하여 설명한 것과 중복되는 부분은 간략히 설명하거나 생략한다.
도 13을 참조하면, 통신 시스템(5)은 전자 장치(1), 기지국(600) 및 서비스 제공자(700)를 포함할 수 있다.
몇몇 실시예에서, 전자 장치(1)는 반도체 장치(100), 암호화 장치(300) 및 통신 모듈(500)을 포함할 수 있다. 반도체 장치(100)는 도 1 내지 도 7을 이용하여 설명된 반도체 장치(100)와 동일할 수 있다.
암호화 장치(300)는 반도체 장치(100)로부터 제공된 비밀키(SK) 및 평온 데이터(m)를 이용하여 암호화 데이터(c)를 생성할 수 있다. 암호화 장치(300)는 생성된 암호화 데이터(c)를 통신 모듈(500)에 제공할 수 있다.
통신 모듈(500)은 무선 채널을 통해 신호를 송수신하기 위한 기능을 수행할 수 있다. 예를 들어, 통신 모듈(500)은 시스템의 물리 계층 규격에 따라 기저대역 신호 및 비트열 간 변환 기능을 수행할 수 있다. 또한, 통신 모듈(500)은 기저대역 신호를 RF 대역 신호로 상향변환한 후 안테나를 통해 송신하고, 안테나를 통해 수신되는 RF 대역 신호를 기저대역 신호로 하향 변환할 수 있다. 예를 들어, 통신 모듈(500)은 송신 필터, 수신 필터, 증폭기, 믹서(mixer), 오실레이터(oscillator), DAC(digital to analog convertor), ADC(anaglog to digital convertor) 등을 포함할 수 있다.
또한, 통신 모듈(500)은 서로 다른 주파수 대역의 신호들을 처리하기 위해 서로 다른 통신 모듈들을 포함할 수 있다. 나아가, 통신 모듈(500)은 서로 다른 다수의 무선 접속 기술들을 지원하기 위해 다수의 통신 모듈들을 포함할 수 있다. 예를 들어, 서로 다른 무선 접속 기술들은 블루투스 저 에너지(bluetooth low energy, BLE), Wi-Fi(Wireless Fidelity), WiGig(WiFi Gigabyte), 셀룰러 망(예: LTE(Long Term Evolution) 등을 포함할 수 있다. 또한, 서로 다른 주파수 대역들은 극고단파(SHF:super high frequency)(예: 2.5GHz, 5Ghz) 대역, mm파(millimeter wave)(예: 60GHz) 대역을 포함할 수 있다.
통신 모듈(500)은 수신한 암호화 데이터(c)를 상기 과정을 거쳐 변환하여, 기지국(600)에 신호를 송신할 수 있다.
몇몇 실시예에 따른 기지국(600)은 전자 장치(1)와 직접적으로 통신을 수행하는 네트워크의 종단 노드(terminal node)로서의 의미를 갖는다. 본 출원에서 기지국에 의해 수행되는 것으로 설명된 특정 동작은 경우에 따라서는 기지국의 상위 노드(upper node)에 의해 수행될 수도 있다. 즉, 기지국을 포함하는 다수의 네트워크 노드들(network nodes)로 이루어지는 네트워크에서 단말과의 통신을 위해 수행되는 다양한 동작들은 기지국 또는 기지국 이외의 다른 네트워크 노드들에 의해 수행될 수 있음은 자명하다. 기지국(RSU: Road Side Unit)은 고정국(fixed station), BS(Base Station), Node B, eNB(evolved-NodeB), BTS(base transceiver system), 액세스 포인트(AP: Access Point), MeNB(Macro eNB), SeNB(Secondary eNB) 등의 용어에 의해 대체될 수 있다.
몇몇 실시예에 따른 기지국(600)은 통신 모듈(610), 네트워크 통신 모듈(620), 연산 장치(630) 및 서버(640)를 포함할 수 있다.
통신 모듈(610)은 전자 장치(1)의 통신 모듈(500)과 기능 및 구성이 동일 또는 유사할 수 있다. 기지국(600)의 통신 모듈(610)에 관한 설명은 상기 전자 장치(1)의 통신 모듈(500)의 설명으로 대체될 수 있다. 통신 모듈(610)은 전자 장치(1)의 통신 모듈(500)로부터 전송된 암호화 데이터(c)를 수신할 수 있다. 통신 모듈(610)은 전송된 암호화 데이터(c)를 변환하여 네트워크 통신 모듈(620)에 제공할 수 있다.
연산 장치(630)는 다양한 종류의 하드웨어(또는, 프로세서) 가속기 또는 소프트웨어를 포함할 수 있고, 예시적으로 CPU나 GPU 등의 하드웨어 가속기를 포함할 수 있다. 상기 하드웨어에서 add, multiplication, shift, XOR, AND, OR, NOR, NAND가 수행될 수 있으며, 뿐만 아니라 Modular addition, Modular multiplication 등의 modular 연산과 같은 RSA, ECC 공개 키에서의 연산 또한 수행될 수 있다.
서버(640)는 모바일 엣지 컴퓨팅(Mobile edge computing) 방식으로 데이터를 처리할 수 있다. 상기 모바일 엣지 컴퓨팅은 4G 및 5G 환경에서도 적용될 수 있으며, 이에 한정되지 않는다. 상기 모바일 엣지 컴퓨팅은 기지국(600)을 하나의 엣지(Edge)로 컴퓨팅을 수행하여 전자 장치(1)에 서비스를 제공할 수 있다. 예를 들어, 서버(640)는 암호화 데이터(c)와 같은 데이터를 저장할 수 있다.
네트워크 통신 모듈(620)은 서비스 제공자(700)에게 데이터를 전송할 수 있다. 예를 들어, 네트워크 통신 모듈(620)은 통신 모듈(610)로부터 제공된 암호화 데이터(c)를 서비스 제공자(700)에 전송할 수 있다.
몇몇 실시예에 따른 서비스 제공자(700)는 복호화 장치(400) 및 데이터 베이스(710)를 포함할 수 있다.
복호화 장치(400)는 다양한 종류의 하드웨어(또는, 프로세서) 가속기 또는 소프트웨어를 포함할 수 있고, 예시적으로 CPU나 GPU 등의 하드웨어 가속기를 포함할 수 있다. 상기 하드웨어에서 add, multiplication, shift, XOR, AND, OR, NOR, NAND가 수행될 수 있으며, 뿐만 아니라 Modular addition, Modular multiplication 등의 modular 연산과 같은 RSA, ECC 공개 키에서의 연산 또한 수행될 수 있다.
데이터 베이스(710)는 전자 장치(1)로부터 제공받아 등록한 공개키(PK)를 저장할 수 있다. 데이터 베이스(710)는 복호화 장치(400)에 공개키(PK)를 제공할 수 있다.
서비스 제공자(700)는 네트워크 통신 모듈(620)로부터 서비스 제공자(700)에 내장된 송신부와 수신부를 통해 신호를 송수신할 수 있다.
복호화 장치(400)는 공개키(PK)를 이용하여 암호화 데이터(c)를 복호화할 수 있다. 서비스 제공자(700)는 복호화된 평온 데이터(m')를 데이터 베이스(710)에 제공하여 저장할 수 있다. 전자 장치(1)로부터 제공된 암호화 데이터(c)를 공개키(PK)로 확인하여, 서비스 제공자(700)는 암호화 데이터(c)가 전자 장치(1)로부터 전송된 신호인 것을 확인할 수 있다. 이를 통해, 보안이 향상된 통신 시스템(5)이 제공될 수 있다.
이하 도 14을 참조하여 전자 장치(1)를 포함하는 통신 시스템(6)을 설명한다.
도 14는 본 발명의 몇몇 실시예에 따른 통신 시스템을 설명하기 위한 블록도이다. 설명의 편의를 위해, 도 1 내지 도 7 및 도 13을 이용하여 설명한 것과 중복되는 부분은 간략히 설명하거나 생략한다.
도 14를 참조하면, 통신 시스템(6)은 전자 장치(1), 기지국(600) 및 서비스 제공자(700)를 포함할 수 있다. 몇몇 실시예에서, 전자 장치(1)는 복호화 장치(400)를 포함할 수 있고, 서비스 제공자(700)는 암호화 장치(300)를 포함할 수 있다. 데이터 베이스(710)에는 전자 장치(1)로부터 제공된 공개키(PK)가 저장될 수 있다.
몇몇 실시예에서, 데이터 베이스(710)는 공개키(PK)와 평온 데이터(m)를 암호화 장치(300)에 제공할 수 있다. 암호화 장치(300)는 공개키(PK)와 평온 데이터(m)를 이용하여 암호화 데이터(c)를 생성할 수 있다. 즉, 암호화 장치(300)는 공개키(PK)를 이용하여 전달하고자 하는 평온 데이터(m)를 암호화 데이터(c)로 변환할 수 있다. 서비스 제공자(700)의 암호화 장치(300)는 기지국(600)에 암호화 데이터(c)를 제공할 수 있다.
몇몇 실시예에서, 기지국(600)의 네트워크 통신 모듈(620)은 기지국(600)으로부터 암호화 데이터(c)를 제공받을 수 있다. 네트워크 통신 모듈(620)은 통신 모듈(610)에 암호화 데이터(c)를 전달할 수 있다. 통신 모듈(610)은 암호화 데이터(c)를 변환한 신호를 전자 장치(1)에 전송할 수 있다.
몇몇 실시예에서, 전자 장치(1)의 통신 모듈(500)은 기지국(600)으로부터 전송된 신호를 변환하여 암호화 데이터(c)를 생성할 수 있다. 통신 모듈(500)은 복호화 장치(400)에 암호화 데이터(c)를 전달할 수 있다. 복호화 장치(400)는 통신 모듈(500)로부터 제공된 암호화 데이터(c)와 반도체 장치(100)(예를 들어, 도 2의 보안 메모리 블록(162))로부터 제공된 비밀키(SK)를 이용하여 평온 데이터(m')를 생성할 수 있다. 다시 말해, 복호화 장치(400)는 비밀키(SK)를 이용하여 암호화 데이터(c)를 복호화할 수 있다.
복호화 장치(400)는 서비스 제공자(700)로부터 제공된 암호화 데이터(c)를 비밀키(SK)를 이용하여 복호화 하여 평온 데이터(m')를 복원할 수 있다. 전자 장치(1)는 내장된 비밀키(SK)를 이용하여 암호화된 데이터를 복원할 수 있다. 하지만, 제3 자는 중간에 암호화 데이터(c)를 알더라도 공개키(PK)만으로는 평온 데이터(m')의 내용을 알 수 없다. 이를 통해, 보안이 향상된 통신 시스템(6)이 제공될 수 있다.
이하 도 15를 참조하여 전자 장치(1) 및 데이터 센터(3000)를 포함하는 통신 시스템(7)을 설명한다.
도 15는 본 발명의 몇몇 실시예에 따른 통신 시스템을 설명하기 위한 블록도이다. 설명의 편의를 위해, 도 1 내지 도 7, 도 13 및 도 14를 이용하여 설명한 것과 중복되는 부분은 간략히 설명하거나 생략한다.
도 15를 참조하면, 통신 시스템(7)은 전자 장치(1) 및 데이터 센터(3000)를 포함할 수 있다.
몇몇 실시예에서, 전자 장치(1)는 도 1 내지 도 7, 도 13 및 도 14를 설명한 것과 같은 반도체 장치(100), 통신 모듈(500), 암호화 장치(300) 및 복호화 장치(400)를 포함할 수 있다. 암호화 장치(300)는 비밀키(SK) 및 평온 데이터(m)를 이용하여 암호화 데이터(c)를 생성하여 통신 모듈(500)에 전송할 수 있다. 통신 모듈(500)은 생성된 암호화 데이터(c)를 안테나를 통해 외부에 전송할 수 있다. 복호화 장치(400)는 통신 모듈(500)을 통해 수신한 암호화 데이터(c)를 비밀키(SK)를 통해 복호화하여 평온 데이터(m')를 생성할 수 있다. 복호화 장치(400)는 생성된 평온 데이터(m')를 반도체 장치(100)에 전달할 수 있다.
전자 장치(1)는 통신 모듈(500)을 통해 데이터 센터(3000)와 신호를 주고받을 수 있다. 예를 들어, 전자 장치(1)는 생성된 암호화 데이터(c)를 데이터 센터(3000)(예를 들어, 네트워크(3300))에 제공할 수 있다. 예를 들어, 전자 장치(1)는 데이터 센터(3000)(예를 들어, 어플리케이션 서버들(3100 내지 3100n) 및 스토리지 서버들(3200 내지 3200m))에서 생성된 암호화 데이터(c)를 제공받을 수 있다.
데이터 센터(3000)는 각종 데이터를 모아두고 서비스를 제공하는 시설로서, 데이터 스토리지 센터라고 지칭될 수도 있다. 데이터 센터(3000)는 검색 엔진 및 데이터 베이스 운용을 위한 시스템일 수 있으며, 은행 등의 기업 또는 정부기관에서 사용되는 컴퓨팅 시스템일 수 있다. 데이터 센터(3000)는 어플리케이션 서버들(3100 내지 3100n) 및 스토리지 서버들(3200 내지 3200m)을 포함할 수 있다. 어플리케이션 서버들(3100 내지 3100n)의 개수 및 스토리지 서버들(3200 내지 3200m)의 개수는 실시예에 따라 다양하게 선택될 수 있고, 어플리케이션 서버들(3100 내지 3100n)의 개수 및 스토리지 서버들(3200 내지 3200m)의 개수는 서로 다를 수 있다.
어플리케이션 서버(3100) 또는 스토리지 서버(3200)는 프로세서(3110, 3210) 및 메모리(3120, 3220) 중 적어도 하나를 포함할 수 있다. 스토리지 서버(3200)를 예시로 설명하면, 프로세서(3210)는 스토리지 서버(3200)의 전반적인 동작을 제어할 수 있고, 메모리(3220)에 액세스하여 메모리(3220)에 로딩된 명령어 및/또는 데이터를 실행할 수 있다. 메모리(3220)는 DDR SDRAM(Double Data Rate Synchronous DRAM), HBM(High Bandwidth Memory), HMC(Hybrid Memory Cube), DIMM(Dual In-line Memory Module), Optane DIMM 또는 NVMDIMM(Non-Volatile DIMM)일 수 있다. 실시예에 따라, 스토리지 서버(3200)에 포함되는 프로세서(3210)의 개수 및 메모리(3220)의 개수는 다양하게 선택될 수 있다. 몇몇 실시예에서, 프로세서(3210)와 메모리(3220)는 프로세서-메모리 페어를 제공할 수 있다. 몇몇 실시예에서, 프로세서(3210)와 메모리(3220)의 개수는 서로 다를 수도 있다. 프로세서(3210)는 단일 코어 프로세서 또는 다중 코어 프로세서를 포함할 수 있다. 스토리지 서버(3200)에 대한 상기 설명은, 어플리케이션 서버(3100)에도 유사하게 적용될 수 있다. 실시예에 따라, 어플리케이션 서버(3100)는 스토리지 장치(3150)를 포함하지 않을 수도 있다. 스토리지 서버(3200)는 적어도 하나 이상의 스토리지 장치(3250)를 포함할 수 있다. 스토리지 서버(3200)에 포함되는 스토리지 장치(3250)의 개수는 실시예에 따라 다양하게 선택될 수 있다.
어플리케이션 서버들(3100 내지 3100n) 및 스토리지 서버들(3200 내지 3200m)은 네트워크(3300)를 통해 서로 통신할 수 있다. 또한, 전자 장치(1)는 네트워크(3300)를 통해 어플리케이션 서버들(3100 내지 3100n) 및 스토리지 서버들(3200 내지 3200m)과 통신할 수 있다. 네트워크(3300)는 FC(Fibre Channel) 또는 이더넷(Ethernet) 등을 이용하여 구현될 수 있다. 이 때, FC는 상대적으로 고속의 데이터 전송에 사용되는 매체이며, 고성능/고가용성을 제공하는 광 스위치를 사용할 수 있다. 네트워크(3300)의 액세스 방식에 따라 스토리지 서버들(3200 내지 3200m)은 파일 스토리지, 블록 스토리지, 또는 오브젝트 스토리지로서 제공될 수 있다.
이하에서는, 어플리케이션 서버(3100) 및 스토리지 서버(3200)를 중심으로 설명하기로 한다. 어플리케이션 서버(3100)에 대한 설명은 다른 어플리케이션 서버(3100n)에도 적용될 수 있고, 스토리지 서버(3200)에 대한 설명은 다른 스토리지 서버(3200m)에도 적용될 수 있다.
어플리케이션 서버(3100)는 사용자 또는 클라이언트가 저장 요청한 데이터를 네트워크(3300)를 통해 스토리지 서버들(3200 내지 3200m) 중 하나에 저장할 수 있다. 예를 들어, 어플리케이션 서버(3100)는 전자 장치(1)로부터 암호화 데이터(c)를 수신하여, 복호화한 평온 데이터(m)를 네트워크(3300)를 통해 스토리지 서버들(3200 내지 3200m) 중 하나에 저장할 수 있다. 또한, 어플리케이션 서버(3100)는 사용자 또는 클라이언트가 독출 요청한 데이터를 스토리지 서버들(3200 내지 3200m) 중 하나로부터 네트워크(3300)를 통해 획득할 수 있다. 예를 들어, 어플리케이션 서버(3100)는 웹 서버 또는 DBMS(Database Management System) 등으로 구현될 수 있다.
어플리케이션 서버(3100)는 네트워크(3300)를 통해 다른 어플리케이션 서버(3100n)에 포함된 메모리(3120n) 또는 스토리지 장치(3150n)에 액세스할 수 있고, 또는 네트워크(3300)를 통해 스토리지 서버(3200-3200m)에 포함된 메모리(3220-3220m) 또는 스토리지 장치(3250-3250m)에 액세스할 수 있다. 이로써, 어플리케이션 서버(3100)는 어플리케이션 서버들(3100-3100n) 및/또는 스토리지 서버들(3200-3200m)에 저장된 데이터에 대해 다양한 동작들을 수행할 수 있다. 예를 들어, 어플리케이션 서버(3100)는 어플리케이션 서버들(3100-3100n) 및/또는 스토리지 서버들(3200-3200m) 사이에서 데이터를 이동 또는 카피(copy)하기 위한 명령어를 실행할 수 있다. 이 때 데이터는 스토리지 서버들(3200-3200m)의 스토리지 장치로(3250-3250m)부터 스토리지 서버들(3200-3200m)의 메모리들(3220-3220m)을 거쳐서, 또는 바로 어플리케이션 서버들(3100-3100n)의 메모리(3120-3120n)로 이동될 수 있다.
네트워크(3300)를 통해 이동하는 데이터는 보안 또는 프라이버시를 위해 암호화된 데이터일 수 있다. 예를 들어, 네트워크(3300)를 통해 이동하는 데이터는 전자 장치(1)로부터 제공된 암호화 데이터(c)를 포함할 수 있고, 전자 장치(1)에 제공되는 암호화 데이터(c)를 포함할 수 있다.
스토리지 서버(3200)를 예시로 설명하면, 인터페이스(3254)는 프로세서(3210)와 컨트롤러(3251)의 물리적 연결 및 NIC(3240)와 컨트롤러(3251)의 물리적 연결을 제공할 수 있다. 예를 들어, 인터페이스(3254)는 스토리지 장치(3250)를 전용 케이블로 직접 접속하는 DAS(Direct Attached Storage) 방식으로 구현될 수 있다.
스토리지 서버(3200)는 스위치(3230) 및 NIC(3240)을 더 포함할 수 있다. 스위치(3230)는 프로세서(3210)의 제어에 따라 프로세서(3210)와 스토리지 장치(3250)를 선택적으로 연결시키거나, NIC(3240)과 스토리지 장치(3250)를 선택적으로 연결시킬 수 있다.
몇몇 실시예에서 NIC(3240)는 네트워크 인터페이스 카드, 네트워크 어댑터 등을 포함할 수 있다. NIC(3240)는 유선 인터페이스, 무선 인터페이스, 블루투스 인터페이스, 광학 인터페이스 등에 의해 네트워크(3300)에 연결될 수 있다. NIC(3240)는 내부 메모리, DSP, 호스트 버스 인터페이스 등을 포함할 수 있으며, 호스트 버스 인터페이스를 통해 프로세서(3210) 및/또는 스위치(3230) 등과 연결될 수 있다. 호스트 버스 인터페이스는, 앞서 설명한 인터페이스(3254)의 예시들 중 하나로 구현될 수도 있다. 몇몇 실시예에서, NIC(3240)는 프로세서(3210), 스위치(3230), 스토리지 장치(3250) 중 적어도 하나와 통합될 수도 있다.
스토리지 서버(3200-3200m) 또는 어플리케이션 서버(3100-3100n)에서 프로세서는 스토리지 장치(3150-3150n, 3250-3250m) 또는 메모리(3120-3120n, 3220-3220m)로 커맨드를 전송하여 데이터를 프로그램하거나 리드할 수 있다.
스토리지 장치(3150-3150m, 3250-3250m)는 프로세서로부터 수신된 리드 커맨드에 응답하여, 제어 신호 및 커맨드/어드레스 신호를 NAND 플래시 메모리 장치(3252-3252m)로 전송할 수 있다. 이에 따라 NAND 플래시 메모리 장치(3252-3252m)로부터 데이터를 독출하는 경우, RE(Read Enable) 신호는 데이터 출력 제어 신호로 입력되어, 데이터를 DQ 버스로 출력하는 역할을 할 수 있다. RE 신호를 이용하여 DQS(Data Strobe)를 생성할 수 있다. 커맨드와 어드레스 신호는 WE(Write Enable) 신호의 상승 엣지 또는 하강 엣지에 따라 페이지 버퍼에 래치될 수 있다.
몇몇 실시예에서, NAND 플래시 메모리 장치(3252-3252m)는 NAND 플래시 메모리 장치(3252-3252m) 고유의 정보에 대한 데이터를 포함할 수 있다. NAND 플래시 메모리 장치(3252-3252m)는 데이터를 가공하여 값이 소수인 암호키를 생성할 수 있다. NAND 플래시 메모리 장치(3252-3252m)는 암호키를 이용하여 공개키와 비밀키를 생성할 수 있다. NAND 플래시 메모리 장치(3252-3252m)는 비밀키를 이용하여 데이터를 암호화 또는 복호화할 수 있다. NAND 플래시 메모리 장치(3252-3252m)로부터 출력되는 데이터는 비밀키를 이용하여 암호화 또는 복호화된 데이터일 수 있다. NAND 플래시 메모리 장치(3252-3252m)의 암호키 및 비밀키는 각각의 NAND 플래시 메모리 장치(3252-3252m)마다 다를 수 있다.
컨트롤러(3251)는 스토리지 장치(3250)의 동작을 전반적으로 제어할 수 있다. 몇몇 실시예에서, 컨트롤러(3251)는 SRAM(Static Random Access Memory)을 포함할 수 있다. 컨트롤러(3251)는 기입 커맨드에 응답하여 NAND 플래시(3252)에 데이터를 기입할 수 있고, 또는 독출 커맨드에 응답하여 NAND 플래시(3252)로부터 데이터를 독출할 수 있다. 예를 들어, 기입 커맨드 및/또는 독출 커맨드는 스토리지 서버(3200) 내의 프로세서(3210), 다른 스토리지 서버(3200m) 내의 프로세서(3210m) 또는 어플리케이션 서버(3100, 3100n) 내의 프로세서(3110, 3110n)로부터 제공될 수 있다.
DRAM(3253)은 NAND 플래시(3252)에 기입될 데이터 또는 NAND 플래시(3252)로부터 독출된 데이터를 임시 저장(버퍼링)할 수 있다. 또한, DRAM(3253)은 메타 데이터를 저장할 수 있다. 여기서, 메타 데이터는 사용자 데이터 또는 NAND 플래시(3252)를 관리하기 위해 컨트롤러(3251)에서 생성된 데이터이다. 스토리지 장치(3250)는 보안 또는 프라이버시를 위해 SE(Secure Element)를 포함할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1: 전자 장치 100: 반도체 장치
160: 메모리 셀 어레이 161: 메모리 블록
162: 보안 메모리 블록 170: 보안 모듈
a: 제1 데이터 b: 제2 데이터
p: 제1 암호키 q: 제2 암호키
SK: 비밀키 PK: 공개키

Claims (10)

  1. 메모리 셀 어레이 및 보안 모듈을 포함하는 비휘발성 메모리 장치로서,
    상기 보안 모듈은, 상기 메모리 셀 어레이에 저장된 상기 비휘발성 메모리 장치에 대한 정보를 포함하는 제1 데이터를 가공하여 제1 암호키를 생성하고, 상기 메모리 셀 어레이에 저장된 상기 비휘발성 메모리 장치에 대한 정보를 포함하는 제2 데이터를 가공하여 제2 암호키를 생성하고, 상기 제1 암호키와 상기 제2 암호키를 이용하여, RSA(Rivest Shamir Adleman) 알고리즘을 통해 공개키(public key)와 비밀키(secret key)를 생성하고, 상기 제1 암호키, 상기 제2 암호키, 상기 공개키 및 상기 비밀키를 상기 메모리 셀 어레이에 제공하고,
    상기 메모리 셀 어레이는 상기 제1 암호키, 상기 제2 암호키, 상기 공개키 및 상기 비밀키를 저장하고,
    상기 제2 데이터는 상기 제1 데이터와 다르고,
    상기 제1 암호키의 값(value)과 상기 제2 암호키의 값은 소수(prime number)이고,
    상기 공개키는 상기 비휘발성 메모리 장치와 연결된 호스트에 제공되는 비휘발성 메모리 장치.
  2. 제 1항에 있어서,
    상기 제1 데이터는 상기 비휘발성 메모리 장치의 생산 정보를 포함하는 유니크 ID 데이터를 포함하는 비휘발성 메모리 장치.
  3. 제 1항에 있어서,
    상기 제1 데이터를 가공하는 것은 상기 제1 데이터에 임의의(random) m 개의 비트를 삽입하여 상기 제1 암호키를 생성하는 것을 포함하고, 상기 제2 데이터를 가공하는 것은 상기 제2 데이터에 임의의 n 개의 비트를 삽입하여 상기 제2 암호키를 생성하는 것을 포함하고, 상기 m 및 n은 1 이상의 자연수인 비휘발성 메모리 장치.
  4. 제 1항에 있어서,
    상기 메모리 셀 어레이는 일반 메모리 블록 및 보안 메모리 블록을 포함하고,
    상기 일반 메모리 블록은 상기 호스트로부터 제공되는 일반 액세스 명령(general access command)에 의해 액세스되고,
    상기 보안 메모리 블록은 상기 호스트로부터 제공되는 보안 액세스 명령(secure access command)에 의해 액세스되는 비휘발성 메모리 장치.
  5. 제 4항에 있어서,
    상기 보안 메모리 블록은 상기 일반 액세스 명령에 의해 액세스되지 않고,
    상기 제1 암호키, 상기 제2 암호키 및 상기 비밀키는 상기 보안 메모리 블록에 저장되는 비휘발성 메모리 장치.
  6. 제 1항에 있어서,
    상기 비밀키를 이용하여 상기 메모리 셀 어레이에 저장된 데이터를 암호화(encryption)한 암호화 데이터를 생성하고, 상기 암호화 데이터를 상기 호스트에 제공하는 비휘발성 메모리 장치.
  7. 제1 메모리 셀 어레이를 포함하는 제1 메모리 장치; 및
    제2 메모리 셀 어레이를 포함하는 제2 메모리 장치를 포함하고,
    상기 제1 메모리 장치는, 상기 제1 메모리 장치에 대한 정보를 포함하는 제1 데이터 및 제2 데이터를 상기 제1 메모리 셀 어레이에 저장하고,
    상기 제2 메모리 장치는, 상기 제2 메모리 장치에 대한 정보를 포함하는 제3 데이터 및 제4 데이터를 상기 제2 메모리 셀 어레이에 저장하고,
    상기 제1 내지 제4 데이터는 서로 다르고,
    상기 제1 메모리 장치는 상기 제1 데이터를 가공하여 제1 암호키를 생성하고, 상기 제2 데이터를 가공하여 제2 암호키를 생성하고, 상기 제1 암호키의 값과 상기 제2 암호키의 값은 소수이고, 상기 제1 암호키와 상기 제2 암호키를 이용하여 RSA 알고리즘을 통해 제1 공개키와 제1 비밀키를 생성하고, 상기 제1 암호키, 상기 제2 암호키, 상기 제1 공개키 및 상기 제1 비밀키를 상기 제1 메모리 셀 어레이에 저장하고,
    상기 제2 메모리 장치는 상기 제3 데이터를 가공하여 제3 암호키를 생성하고, 상기 제4 데이터를 가공하여 제4 암호키를 생성하고, 상기 제3 암호키의 값과 상기 제4 암호키의 값은 소수이고, 상기 제3 암호키와 상기 제4 암호키를 이용하여 RSA 알고리즘을 통해 제2 공개키와 제2 비밀키를 생성하고, 상기 제3 암호키, 상기 제4 암호키, 상기 제2 공개키 및 상기 제2 비밀키를 상기 제2 메모리 셀 어레이에 저장하고,
    상기 제1 내지 제4 암호키는 서로 다르고, 상기 제1 및 제2 공개키는 서로 다르고, 상기 제1 및 제2 비밀키는 서로 다른 전자 장치.
  8. 제 7항에 있어서,
    상기 제1 메모리 장치 및 상기 제2 메모리 장치와 데이터를 주고받는 호스트를 더 포함하고,
    상기 제1 공개키 및 상기 제2 공개키는 상기 호스트에 제공되고,
    상기 호스트는 상기 호스트에 저장된 제1 데이터를 상기 제1 공개키를 이용하여 암호화한 제1 암호화 데이터를 상기 제1 메모리 장치에 제공하고, 상기 호스트에 저장된 제2 데이터를 상기 제2 공개키를 이용하여 암호화한 제2 암호화 데이터를 상기 제2 메모리 장치에 제공하는 전자 장치.
  9. 복호화 장치;
    암호화 장치;
    전자 장치로부터 제1 신호를 제공받는 수신부; 및
    상기 전자 장치에 제2 신호를 제공하는 송신부를 포함하고,
    상기 제1 신호는 상기 전자 장치의 비밀키를 이용하여 생성된 암호화 데이터를 포함하고,
    상기 비밀키는 상기 전자 장치의 제1 암호키 및 제2 암호키를 이용하여 RSA 알고리즘을 통해 공개키와 함께 생성되고,
    상기 제1 암호키는 상기 전자 장치에 포함된 메모리 장치에 대한 정보를 포함하는 제1 데이터를 가공하여 생성되고,
    상기 제2 암호키는 상기 제1 데이터와 다른 상기 전자 장치에 포함된 상기 메모리 장치에 대한 정보를 포함하는 제2 데이터를 가공하여 생성되고,
    상기 복호화 장치는 상기 암호화 데이터를 복호화하는 서비스 제공자.
  10. 제 9항에 있어서,
    상기 제1 신호는 상기 공개키를 더 포함하는 서비스 제공자.
KR1020200059441A 2020-05-19 2020-05-19 공개키와 비밀키를 저장하는 비휘발성 메모리 장치, 전자 장치 및 서비스 제공자 KR20210142820A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200059441A KR20210142820A (ko) 2020-05-19 2020-05-19 공개키와 비밀키를 저장하는 비휘발성 메모리 장치, 전자 장치 및 서비스 제공자
US17/161,124 US11716205B2 (en) 2020-05-19 2021-01-28 Nonvolatile memory device storing a public key and a secret key, and an electronic device comprising the same
CN202110498504.0A CN113688440A (zh) 2020-05-19 2021-05-08 非易失性存储器装置、电子装置和服务提供方接口

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200059441A KR20210142820A (ko) 2020-05-19 2020-05-19 공개키와 비밀키를 저장하는 비휘발성 메모리 장치, 전자 장치 및 서비스 제공자

Publications (1)

Publication Number Publication Date
KR20210142820A true KR20210142820A (ko) 2021-11-26

Family

ID=78575359

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200059441A KR20210142820A (ko) 2020-05-19 2020-05-19 공개키와 비밀키를 저장하는 비휘발성 메모리 장치, 전자 장치 및 서비스 제공자

Country Status (3)

Country Link
US (1) US11716205B2 (ko)
KR (1) KR20210142820A (ko)
CN (1) CN113688440A (ko)

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986052B1 (en) 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US7840803B2 (en) * 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
US9800410B1 (en) 2006-08-14 2017-10-24 Key Holdings, LLC Data encryption system and method
US20080263361A1 (en) * 2007-04-20 2008-10-23 Microsoft Corporation Cryptographically strong key derivation using password, audio-visual and mental means
KR100857760B1 (ko) 2007-05-15 2008-09-10 삼성전자주식회사 플래시 메모리를 이용한 암호키 저장 장치 및 그것의 보안방법
US8971530B2 (en) 2009-06-24 2015-03-03 Intel Corporation Cryptographic key generation using a stored input value and a stored count value
DE102010030590A1 (de) * 2010-06-28 2011-12-29 Bundesdruckerei Gmbh Verfahren zur Erzeugung eines Zertifikats
US8885820B1 (en) 2012-02-09 2014-11-11 Marvell International Ltd. Key expansion using seed values
US9800407B2 (en) 2013-08-30 2017-10-24 Qualcomm Incorporated Methods and apparatuses for prime number generation and storage
US9660806B2 (en) * 2014-12-30 2017-05-23 International Business Machines Corporation Carbon nanotube array for cryptographic key generation and protection
US9893885B1 (en) 2015-03-13 2018-02-13 Amazon Technologies, Inc. Updating cryptographic key pair
US11400887B2 (en) * 2019-02-11 2022-08-02 Byton North America Corporation Frunk delivery system for vehicles
US11233650B2 (en) * 2019-03-25 2022-01-25 Micron Technology, Inc. Verifying identity of a vehicle entering a trust zone
US11455258B2 (en) * 2019-08-05 2022-09-27 Cyberswarm, Inc. Method and system for data validation using memristors

Also Published As

Publication number Publication date
US11716205B2 (en) 2023-08-01
CN113688440A (zh) 2021-11-23
US20210367792A1 (en) 2021-11-25

Similar Documents

Publication Publication Date Title
US20150242657A1 (en) Self-encrypting drive and user device including the same
US20230139330A1 (en) Storage device for a blockchain network based on proof of space and system including the same
US11184170B2 (en) Public key protection techniques
US20160191235A1 (en) Memory controllers, operating methods thereof, and memory systems including the same
US9569371B2 (en) Memory device, memory system, and operating method of memory system
CN110008148B (zh) 存储器控制器以及用于对存储模块进行访问控制的方法
WO2022119819A1 (en) Memory systems and devices including examples of generating access codes for memory regions using authentication logic
CN112149155B (zh) 用于存储器系统的有效负载验证
US20230025127A1 (en) Security descriptor generation
KR20210142820A (ko) 공개키와 비밀키를 저장하는 비휘발성 메모리 장치, 전자 장치 및 서비스 제공자
KR20210132721A (ko) 네트워크에 액세스 시의 보안 통신
KR102499614B1 (ko) 호스트 장치, 저장 장치, 이들을 포함하는 vuc 인증 시스템 및 vuc 인증 방법
US11567879B2 (en) Method of encrypting data in nonvolatile memory device, nonvolatile memory device and user device
US20220070004A1 (en) Memory write access control
US20220283731A1 (en) Storage device and operating method of storage device
KR102430495B1 (ko) 저장 장치, 호스트 장치 및 그것의 데이터 전송 방법
US12003632B2 (en) Secure communication in accessing a network
US20230350580A1 (en) Techniques for non-volatile data protection
US20230325507A1 (en) Secure operating system update
US20210406410A1 (en) Method and device to ensure a secure memory access
KR20220010408A (ko) 보호 영역에 데이터를 기입하기 위한 시스템, 장치 및 방법
CN108496159A (zh) 数据密码引擎
CN116361769A (zh) 使用唯一标识符验证易失性存储器

Legal Events

Date Code Title Description
A201 Request for examination