KR20190014444A - 보안 장치, 이를 포함하는 전자 장치 및 전자 장치의 동작 방법 - Google Patents

보안 장치, 이를 포함하는 전자 장치 및 전자 장치의 동작 방법 Download PDF

Info

Publication number
KR20190014444A
KR20190014444A KR1020170151967A KR20170151967A KR20190014444A KR 20190014444 A KR20190014444 A KR 20190014444A KR 1020170151967 A KR1020170151967 A KR 1020170151967A KR 20170151967 A KR20170151967 A KR 20170151967A KR 20190014444 A KR20190014444 A KR 20190014444A
Authority
KR
South Korea
Prior art keywords
security
data
secure
encrypted
encryption
Prior art date
Application number
KR1020170151967A
Other languages
English (en)
Other versions
KR102401088B1 (ko
Inventor
정영진
박재철
배기석
신종훈
염윤호
이혜수
최홍묵
현진수
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US16/023,401 priority Critical patent/US10949546B2/en
Priority to CN201810851268.4A priority patent/CN109388953B/zh
Publication of KR20190014444A publication Critical patent/KR20190014444A/ko
Application granted granted Critical
Publication of KR102401088B1 publication Critical patent/KR102401088B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/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/3271Cryptographic 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 using challenge-response
    • H04L9/3278Cryptographic 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 using challenge-response using physically unclonable functions [PUF]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Power Engineering (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

전자 장치에 포함되는 보안 장치는 보안 프로세서, 메일 박스, 암호화 아이피, 보안 직접 액세스 메모리(direct memory access; 이하 DMA) 회로 및 내부 메모리를 포함한다. 상기 보안 프로세서는 상기 전자 장치의 중앙 처리 장치(Central processing unit; 이하 CPU)의 개입이 없는 고립된 실행 환경(isolated execution environment)을 제공한다. 상기 메일 박스는 상기 CPU로부터의 리퀘스트를 상기 보안 프로세서에 전달한다. 상기 암호화 아이피는 상기 보안 프로세서와 내부 버스를 통하여 연결되며, 상기 고립된 실행 환경에서, 데이터에 대하여 인증, 암/복호화 및 무결성 검증 중 적어도 하나의 보안 동작을 수행한다. 상기 보안 DMA 회로는 상기 내부 버스에 연결되며, 상기 보안 프로세서만이 제어 가능하고, 상기 고립된 실행 환경에서의 상기 보안 동작을 제어한다. 상기 내부 메모리는 상기 내부 버스에 연결되며, 상기 보안 동작이 수행된 보안 데이터를 저장한다. 상기 암호화 아이피는 외부 스토리지로의 데이터 액세스를 제어하는 DMA 회로를 포함한다.

Description

보안 장치, 이를 포함하는 전자 장치 및 전자 장치의 동작 방법{SECURITY DEVICE, ELECTRONIC DEVICE INCLUDING THE SAME AND METHOD OF OPERATING ELECTRONIC DEVICE}
본 발명은 데이터의 보안에 관한 것으로, 보다 상세하게는 보안 장치, 이를 포함하는 전자 장치 및 전자 장치의 동작 방법에 관한 것이다.
최근 모바일 디바이스(mobile device)와 같은 전자 장치에 다양한 기능이 탐재됨에 따라, 전자 장치에서 개인 정보, 암호키(cryptographic key) 등과 같은 주요 데이터(sensitive data)를 처리하는 빈도가 증가하고 있다.
최근의 전자 장치에서는 슬립-모드나 파워 다운과 같은 저전력 모드의 중요성이 증대되고 있는데, 이러한 저전력 모드에서 보다 안전하고 빠르게 상기 주요 데이터를 백업하고 복원하는 기술에 대한 필요성이 대두되고 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은 하드웨어(hardware)로 구현되는 보안 장치를 이용하여 CPU의 개입 없이 고립된 실행 환경에서 보안 데이터를 외부 스토리지에 백-업하고, 외부 스토리지에 백-업된 보안 데이터를 안전하게 복원하는 것에 관한 것이다.
상술한 본 발명의 일 목적을 달성하기 위한 본 발명의 실시예들에 따른 전자 장치에 포함되는 보안 장치는 보안 프로세서, 메일 박스, 암호화 아이피, 보안 직접 액세스 메모리(direct memory access; 이하 DMA) 회로 및 내부 메모리를 포함한다. 상기 보안 프로세서는 상기 전자 장치의 중앙 처리 장치(Central processing unit; 이하 CPU)의 개입이 없는 고립된 실행 환경(isolated execution environment)을 제공한다. 상기 메일 박스는 상기 CPU로부터의 리퀘스트를 상기 보안 프로세서에 전달한다. 상기 암호화 아이피는 상기 보안 프로세서와 내부 버스를 통하여 연결되며, 상기 고립된 실행 환경에서, 데이터에 대하여 인증, 암/복호화 및 무결성 검증 중 적어도 하나의 보안 동작을 수행한다. 상기 보안 DMA 회로는 상기 내부 버스에 연결되며, 상기 보안 프로세서만이 제어 가능하고, 상기 고립된 실행 환경에서의 상기 보안 동작을 제어한다. 상기 내부 메모리는 상기 내부 버스에 연결되며, 상기 보안 동작이 수행된 보안 데이터를 저장한다. 상기 암호화 아이피는 외부 스토리지로의 데이터 액세스를 제어하는 DMA 회로를 포함한다.
상술한 본 발명의 일 목적을 달성하기 위한 본 발명의 실시예들에 따른 전자 장치는 중앙 처리 장치(Central Processing Unit; 이하 CPU), 상기 CPU로부터의 리퀘스트를 고립된 실행 환경에서 수행하는 보안 장치 및 상기 보안 장치에 연결되는 외부 스토리지를 포함한다. 상기 보안 장치는 보안 프로세서, 메일 박스, 암호화 아이피, 보안 직접 액세스 메모리(direct memory access; 이하 DMA) 회로 및 내부 메모리를 포함한다. 상기 보안 프로세서는 상기 고립된 실행 환경을 제공한다. 상기 메일 박스는 상기 리퀘스트를 상기 보안 프로세서에 전달한다. 상기 암호화 아이피는 상기 보안 프로세서와 내부 버스를 통하여 연결되며, 상기 고립된 실행 환경에서, 데이터에 대하여 인증, 암/복호화 및 무결성 검증 중 적어도 하나의 보안 동작을 수행한다. 상기 내부 DMA 회로는 상기 내부 버스에 연결되며, 상기 보안 프로세서만이 제어 가능하고, 상기 고립된 실행 환경에서의 상기 보안 동작을 제어한다. 상기 내부 메모리는 상기 내부 버스에 연결되며, 상기 보안 동작이 수행된 보안 데이터를 저장한다. 상기 암호화 아이피는 외부 스토리지로의 데이터 액세스를 제어하는 DMA 회로를 포함한다.
상술한 본 발명의 목적을 달성하기 위한 본 발명의 실시예들에 따른 중앙 처리 장치(Central Processing Unit; 이하 CPU) 및 상기 CPU로부터의 리퀘스트를 고립된 실행 환경에서 수행하는 보안 장치를 포함하는 전자 장치의 동작 방법에서는 상기 전자 장치를 파워-온 하고, 상기 보안 장치의 암호화 아이피에서 펌웨어 이미지에 대하여 서명 검증을 수행하여 보안 데이터를 상기 보안 장치의 내부 메모리에 저장하고, 상기 전자 장치가 저전력 모드로 진입하는지 여부를 판단하고, 상기 전자 장치가 저전력 모드로 진입하는 경우, 상기 CPU의 개입 없이 상기 암호화 아이피에서 상기 전자 장치의 하드웨어 고유키를 이용하여 상기 보안 데이터를 암호화하고, 상기 암호화된 보안 데이터를 상기 보안 장치에 연결되는 외부 스토리지에 저장하는 보안 백-업을 수행하고, 상기 CPU로부터의 웨이크업 리퀘스트에 응답하여, 상기 CPU의 개입없이, 상기 암호화 아이피에서, 상기 하드웨어 고유키를 이용하여 상기 스토리지에 저장된 상기 보안 데이터에 대하여 복호화를 수행하고, 복원된 보안 데이터를 상기 내부 메모리에 저장하는 보안 복원을 수행한다.
본 발명의 실시예들에 따르면, 고립된 실행 환경에서 사용되던 보안 데이터를 CPU의 개입 없이 암호화하여 암호화된 보안 데이터를 외부 스토리지에 저장하고, 상기 외부 스토리지에 저장된 보안 데이터를 CPU의 개입 없이 복호화하고, 복호화된 보안 데이터에 대하여 무결성 검증을 수행한 후 보안 데이터를 보안 장치에서 사용함으로써 웜-부트 시에도 추가적인 인증 절차 없이 보안 데이터를 사용할 수 있다. 따라서 보안 장치를 포함하는 전자 장치의 성능을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 도 1의 전자 장치에서 외부 스토리지의 구성을 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 도 1의 보안 장치에서 보안 DMA 회로의 구성을 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따른 도 1의 보안 장치에서 암호화 아이피의 구성을 나타내는 블록도이다.
도 5는 본 발명의 실시예들에 따른 도 4의 암호화 아이피에서 DMA 회로의 구성을 나타낸다.
도 6은 본 발명의 실시예들에 따른 도 1의 보안 장치에서 보안 프로세서의 구성을 나타내는 블록도이다.
도 7은 도 1의 보안 장치가 서명 인증을 수행하는 것을 나타내는 흐름도다.
도 8은 도 1의 보안 장치가 서명 인증을 수행하는 경우의 도 5의 DMA 회로의 연결 관계를 나타낸다.
도 9는 도 1의 보안 장치가 보안 백-업을 수행하는 것을 나타내는 흐름도다.
도 10은 도 1의 보안 장치가 보안 백-업을 수행하는 경우의 도 5의 DMA 회로의 연결 관계를 나타낸다.
도 11은 도 1의 보안 장치가 보안 복원을 수행하는 것을 나타내는 흐름도다.
도 12는 도 1의 보안 장치가 보안 복원을 수행하는 경우의 도 5의 DMA 회로의 연결 관계를 나타낸다.
도 13은 본 발명의 실시예들에 따른 도 1의 보안 장치가 데이터 스왑을 수행하는 것을 나타낸다.
도 14는 본 발명의 실시예들에 따른 전자 장치의 동작 방법을 나타내는 흐름도이다.
도 15는 본 발명의 실시예들에 따른 모바일 시스템을 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
도 1을 참조하면, 전자 장치(10)는 중앙 처리 장치(Central Processing Unit; CPU)(50), 보안 장치(security device, 100), 제1 서브 시스템(90), 제2 서브 시스템(95), 외부 스토리지(60), 버퍼 메모리(70) 및 주변 아이피(80)를 포함할 수 있다.
CPU(50)는 제1 시스템 버스(20)를 통하여 보안 장치(security device, 100), 제1 서브 시스템(90) 및 제2 서브 시스템(95)에 연결될 수 있고, 보안 장치(security device, 100), 제1 서브 시스템(90) 및 제2 서브 시스템(95)은 제2 시스템 버스(30)를 통하여 외부 스토리지(60), 버퍼 메모리(70) 및 주변(peripheral) 아이피(intellectual property(IP); 80)에 연결될 수 있다.
CPU(50)는 제1 서브 시스템(90) 및 제2 서브 시스템(95)이 각각의 기능을 수행하도록 제1 서브 시스템(90) 및 제2 서브 시스템(95)을 제어할 수 있다. 보안 장치(100), 제1 서브 시스템(90) 및 제2 서브 시스템(95)은 외부 스토리지(60), 버퍼 메모리(70) 및 주변 아이피(80)를 공통으로 이용할 수 있다.
전자 장치(10)는 보안 장치(100)를 통하여 외부 스토리지(60)와 연결될 수 있다. 전자 장치(10) 또는 보안 장치(100)는 또한 OTP(one-time programmable)/PUF(physically unclonable function)을 가지는 복제 불가능 저장 장치(150)를 포함할 수 있다. 복제 불가능 저장 장치(150)는 전자 장치(10) 고유의 하드웨어 고유키(hardware unique key, HUK)를 저장할 수 있다. 상기 전자 장치(10)는 SoC(system on chip) 또는 모바일 장치일 수 있다.
CPU(50) 및 보안 장치(100)는 시스템 버스(40)를 통해 서로 전기적으로 연결되어 통신을 수행한다.
외부 스토리지(60)는 보안 장치(100)와 데이터를 송수신하기 위한 메모리 컨트롤러를 포함할 수 있다. 외부 스토리지(60)는 USB(universal serial bus) 메모리, UFS(universal flash storage), SSD(solid state drive)와 같은 비휘발성 스토리지일 수 있다.
보안 장치(100)는 보안 서브 시스템(security sub system)이라고 호칭될 수도 있다.
보안 장치(100)는 메일 박스(110), 내부 메모리(120), 롬(130), 내부 직접 메모리 액세스(direct memory access, 이하 DMA) 회로(140), 보안 프로세서(200), 및 암호화 아이피(cryptographic intellectual property (IP)(300)를 포함할 수 있다. 메일 박스(110), 내부 메모리(120), 롬(130), 내부 (DMA) 회로(140) 보안 프로세서(200) 및 암호화 아이피(300)는 내부 버스(40)를 통하여 서로 연결될 수 있다.
보안 프로세서(200)는 보안 동작을 수행할 때, CPU(50)의 간섭을 받지 않고, 즉 CPU(50)에 대하여 독립적으로, 안전하게 보안 동작을 수행할 수 있는 고립 실행 환경(isolated execution environment)을 제공할 수 있다.
메일 박스(110)는 CPU(50)로부터의 리퀘스트를 보안 프로세서(150)에 전달할 수 있다. 즉, CPU(50)는 고립 실행 환경(isolated execution environment)에서 보안 프로세서(200)의 보안 동작에 관여할 수 없고, 메일 박스(110)를 통하여서만 리퀘스트를 보안 프로세서(200)에 전달할 수 있다.
롬(130)에는 보안 프로세서(200)가 실행할 코드 등이 저장될 수 있다. 내부 메모리(140)는 보안 프로세서(200)가 보안 동작을 수행하는데 필요한 데이터나 펌웨어 등을 저장할 수 있다. 내부 메모리(140)는 SRAM 또는 DRAM과 같은 휘발성 메모리 장치로 구현될 수 있다.
암호화 아이피(200)는 인증 동작, 암/복호화 동작 및 및 무결성 검증의 보안 동작들 중 적어도 하나를 수행할 수 있다. 암호화 아이피(200)는 메일 박스(110)를 통하여 CPU(50)로부터 전달되는 리퀘스트에 응답한 보안 프로세서(200)의 제어에 따라 인증 동작, 암/복호화 동작 및 및 무결성 검증의 보안 동작들 중 적어도 하나를 수행할 수 있다.
상기 하드웨어 고유키(HUK)는 보안 장치(100)를 포함한 그 어느 것도 변경시킬 수 없고, 또한 접근 불가능하고, 오직 암호화 아이피(300)에 제공될 수만 있다.
보안 DMA 회로(140)는 고립된 실행 환경에서 보안 장치(100)가 사용하는 코드 및 주요 데이터를 포함하는 보안 데이터의 보안 백-업 동작과 보안 복원 동작을 수행하는데 이용될 수 있다.
보안 DMA 회로(140)는 보안 프로세서(200)만이 액세스하여 제어할 수 있고, 보안 백-업 및 보안 복원 동작에 필요한 설정을 제어할 수 있다.
도 2는 본 발명의 실시예들에 따른 도 1의 전자 장치에서 외부 스토리지의 구성을 나타내는 블록도이다.
도 2를 참조하면, 외부 스토리지(60)는 메모리 컨트롤러(61) 및 메모리 장치(63)를 포함할 수 있다.
메모리 컨트롤러(61)는 암호화 아이피(300)에 포함되는 DMA 회로에 연결되고, 암호화 아이피(300)에서 제공되는 보안 데이터를 메모리 장치(63)에 저장할 수 있다. 또한 메모리 컨트롤러(61)는 메모리 장치(63)에 저장된 보안 데이터를 상기 DMA 회로를 통하여 암호화 아이피(300)에 제공할 수 있다.
메모리 장치(63)는 상술한 바와 같이 낸드 플래시 메모리 장치와 같은 비휘발성 메모리 장치로 구현될 수 있다.
도 3은 본 발명의 실시예들에 따른 도 1의 보안 장치에서 보안 DMA 회로의 구성을 나타내는 블록도이다.
도 3을 참조하면, 보안 DMA 회로(140)는 한정 상태 머신(finite state machine; 141), 해쉬 레지스터(14), 제어 레지스터부(170), 수신 버퍼(181) 및 송신 버퍼(182)를 포함할 수 있다. 제어 레지스터부(170)는 수신 어드레스 레지스터(171), 송신 어드레스 레지스터(172), 길이 레지스터(173), 길이 제어 로직(174)을 포함할 수 있다.
길이 제어 로직(124)은 보안 프로세서(200)로부터 제공되는 해쉬 타입 정보(HYPE)에 기초하여, 해쉬 타입 정보(HYPE)가 지시하는 해쉬 모드에 따라 수신 어드레스 레지스터(171), 송신 어드레스 레지스터(172), 길이 레지스터(173)의 구성을 설정할 수 있다.
수신 어드레스 레지스터(171)는 길이 제어 로직(124)의 설정에 따른 수신 어드레스를 저장할 수 있고, 송신 어드레스 레지스터(172)는 길이 제어 로직(124)의 설정에 따른 송신 어드레스를 저장할 수 있고 길이 레지스터(173)는 수신 어드레스 레지스터(171)와 송신 어드레스 레지스터(172)에 저장되는 어드레스들과 관련된 데이터들의 길이 정보를 저장할 수 있다.
수신 버퍼(181)는 수신 어드레스를 임시로 저장할 수 있고, 송신 버퍼(182)는 송신 어드레스를 임시로 저장할 수 있다.
한정 상태 머신(141)은 보안 장치(100)의 동작 상태를 지정할 수 있고, 해쉬 레지스터(142)는 암호화 아이피(300)에서 제공되는 해쉬 값(HV)을 저장할 수 있다.
해쉬 타입 정보(HYPE)는 SHA-1, SHA-256, SHA-384, SHA-512 중의 하나에 상응하는 해시 연산을 지정할 수 있다. 암호화 아이피(300)에서 SHA-1이 사용되는 경우 상기 해쉬 값(HV)은 160비트의 크기를 갖고, SHA-256이 사용되는 경우 상기 해쉬 값(HV)은 256비트의 크기를 갖고, SHA-384이 사용되는 경우 상기 해쉬 값(HV) 384비트의 크기를 갖고, SHA-512이 사용되는 경우 상기 해쉬 값(HV)은 512비트의 크기를 가질 수 있다.
따라서 길이 제어 로직(174)은 상기 해쉬 타입 정보(HTYPE) 정보에 기초하여 보안 데이터에 대하여 수행되는 해쉬 연산의 결과인 해쉬값(HV)의 길이를 설정할 수 있다.
도 4는 본 발명의 실시예들에 따른 도 1의 보안 장치에서 암호화 아이피의 구성을 나타내는 블록도이다.
도 4를 참조하면, 암호화 아이피(300)는 공개키 가속기(public key accelerator, 310), 난수 발생기(random number generator, 320), 키 매니저(key manager, 330), 블록 사이퍼 엔진(block cipher engine, 340), 해쉬 엔진(hash engine. 350) 및 DMA 회로(400)를 포함할 수 있다.
공개키 가속기(310), 난수 발생기(320), 키 매니저(330), 블록 사이퍼 엔진(340) 및 해쉬 엔진(350)은 내부 버스(305)를 통하여 서로 연결될 수 있고, 키 매니저(330)는 블록 사이퍼 엔진(340)에만 연결될 수 있다.
공개키 가속기(310)는 외부로부터 제공되는 펌웨어 이미지나 인증이 필요한 데이터에 대하여 난수 발생기(320)에서 생성되는 난수와 키 값을 이용하여 서명 인증을 수행할 수 있다.
난수 발생기(320)는 난수를 생성하여 공개키 가속기(310)에 제공할 수 있다.
키 매니저(330)는 복제 불가능 저장 장치(150)에 저장된 하드웨어 고유키(HUK)를 블록 사이퍼 엔진(340)에 제공하고 블록 사이퍼 엔진(340)은 하드웨어 고유키(HUK)를 이용하여 데이터에 대하여 암호화 동작 및 복호화 동작을 수행할 수 있다.
블록 사이퍼 엔진(340)는 블록 단위로 암호화 또는 복호화를 수행하는 블록 암호 알고리즘을 사용하여 입력 데이터에 대하여 암호화 또는 복호화를 수행한다. 예를 들어, 블록 사이퍼 엔진(340)은 DES(Data Encryption Standard), 3DES, AES(Advanced Encryption Standard) 또는 SEED 등의 블록 암호 알고리즘을 이용하여 입력 데이터에 대하여 암호화 또는 복호화를 수행할 수 있다.
해쉬 엔진(350)는 해쉬 타입 정보(HYPE)를 수신하고, 블록 사이퍼 엔진(340)의 출력에 대하여 해쉬 타입 정보(HYPE)에 상응하는 해쉬 연산을 수행하여 해쉬값(HV)을 생성할 수 있다. 따라서, 해쉬값(HV)은 해쉬 타입 정보(HYPE)에 상응하는 데이터 크기를 가질 수 있다.
DMA 회로(400)는 블록 사이퍼 엔진(340)의 출력을 외부 스토리지(60)에 제공하거나, 외부 스토리지(60)로부터 제공되는 데이터를 블록 사이퍼 엔진(340) 및/또는 해쉬 엔진(350)에 제공할 수 있다. 즉 DMA 회로(400)는 외부 스토리지(60)로의 데이터 액세스를 제어할 수 있다.
도 5는 본 발명의 실시예들에 따른 도 4의 암호화 아이피에서 DMA 회로의 구성을 나타낸다.
도 5에서는 설명의 편의를 위하여 내부 메모리(120), 공개키 가속기(310), 블록 사이퍼 엔진(340), 해쉬 엔진(350) 및 외부 스토리지(60)를 DMA 회로(400)와 함께 도시하였다.
도 5를 참조하면, DMA 회로(400)는 메모리 인터페이스(410) 및 스위칭 회로(420)를 포함할 수 있다.
메모리 인터페이스(410)는 외부 스토리지(60)와 연결될 수 있고, 스위칭 회로(420)는 복수의 스위치들(SW1~SW6)을 포함하여, 보안 프로세서(200)로부터의 스위칭 제어 신호(SCS)에 응답하여 내부 메모리(120), 공개키 가속기(310), 블록 사이퍼 엔진(340), 해쉬 엔진(350) 및 메모리 인터페이스(410) 중 적어도 일부를 서로 연결시킬 수 있다. 즉, 보안 프로세서(200)로부터의 스위칭 제어 신호(SCS)를 이용하여 DMA 회로(400)의 구성을 설정하여, 내부 메모리(120), 공개키 가속기(310), 블록 사이퍼 엔진(340), 해쉬 엔진(350) 및 메모리 인터페이스(410) 사이의 연결 경로를 설정할 수 있다.
도 6은 본 발명의 실시예들에 따른 도 1의 보안 장치에서 보안 프로세서의 구성을 나타내는 블록도이다.
도 6을 참조하면, 보안 프로세서(200)는 제어 회로(210), 비교기(220) 및 인터럽트 생성기(230)를 포함할 수 있다. 실시예에 있어서, 보안 프로세서(200)는 구성 테이블(configuration table, 240)을 더 포함할 수 있다.
제어 회로(210)는 CPU(50)로부터 메일 박스(110)를 통하여 전달되는 리퀘스트(REQ)를 수신하고, 상기 리퀘스트(REQ)가 지시하는 보안 동작에 따라서 스위칭 제어 신호(SCS) 및 해쉬 타입 정보(HTYPE)를 생성할 수 있다. 제어 회로(210)는 스위칭 제어 신호(SCS)는 도 5의 스위칭 회로(420)에 제공하고, 해쉬 타입 정보(HTYPE)는 도 3의 길이 제어 로직(174)과 도 4의 해쉬 엔진(350)에 제공할 수 있다.
또한 제어 회로(210)는 보안 DMA 회로(140)로부터 내부 메모리(120)에서 보안 데이터가 저장된 영역의 시작 어드레스(SADDR)와 길이 정보(LENG)를 수신하고, 시작 어드레스(SADDR)와 길이 정보(LENG)를 구성 테이블(240)에 저장할 수 있다. 제어 회로(240)는 또한 해쉬 타입 정보(HTYPE)를 구성 테이블(240)에 저장할 수 있다.
비교 회로(220)는 보안 백-업 동작시 생성된 제1 해쉬값(HV1)과 보안 복원 동작시에 생성된 제2 해쉬값(HV2)를 비교하여 외부 스토리지(60)에 저장된 보안 데이터의 무결성 여부를 나타내는 비교 신호(CMP)를 출력할 수 있다. 인터럽트 생성기(230)는 비교 신호(CMP)의 논리 레벨에 기초하여 외부 스토리지(60)에 저장된 보안 데이터의 무결성 여부를 나타내는 인터럽트 신호(ITR)를 CPU(50)에 제공할 수 있다.
예를 들어, 보안 백-업 동작시 생성된 제1 해쉬값(HV1)과 보안 복원 동작시에 생성된 제2 해쉬값(HV2)이 서로 같은 경우, 비교 신호(CMP)가 제1 논리 레벨(논리 하이 레벨)을 가지므로, 보안 프로세서(200)는 복원된 검증 데이터를 이용하여 보안 어플리케이션을 실행할 수 있다.
예를 들어, 보안 백-업 동작시 생성된 제1 해쉬값(HV1)과 보안 복원 동작시에 생성된 제2 해쉬값(HV2)이 서로 다른 경우, 비교 신호(CMP)가 제2 논리 레벨(논리 로우 레벨)을 가지므로, 인터럽트 생성기(230)는 이를 나타내는 인터럽트 신호(ITR)를 CPU(50)에 제공할 수 있다. CPU(50)는 보안 프로세서(200)로부터 인터럽트 신호(INT)를 수신하는 경우, 외부 스토리지(60)에 저장된 보안 데이터가 외부로부터의 공격에 의해 변경된 것으로 판단하고, 외부 스토리지(60)에 저장된 보안 데이터를 삭제하거나 외부로부터의 공격 탐지 사실을 사용자에게 알리는 등의 조치를 취할 수 있다.
도 7은 도 1의 보안 장치가 서명 인증을 수행하는 것을 나타내는 흐름도이고, 도 8은 도 1의 보안 장치가 서명 인증을 수행하는 경우의 도 5의 DMA 회로의 연결 관계를 나타낸다.
도 1 내지 도 8을 참조하면, 전자 장치(10)에 파워가 인가되는 파워-온 시나 전자 장치(10)에 펌웨어가 업데이트되어 상기 펌웨어에 대한 서명 인증이 필요한 경우에, CPU(50)는 서명 인증을 지시하는 제1 리퀘스트(REQ1)를 메일 박스(50)를 통하여 보안 프로세서(200)에 전달한다(S210).
보안 프로세서(200)는 제1 리퀘스트(REQ1)에 응답하여 제1 스위칭 제어 신호(SCS1)를 스위칭 회로(420)에 제공한다.
보안 프로세서(200)는 공개키 가속기(310)를 제어하여 공개키 가속기(310)가 외부로부터 수신된 펌웨어 이미지(FW_IMG)에 대하여 서명 인증을 수행하도록 한다(S220). 공개키 가속기(310)는 펌웨어 이미지(FW_IMG)를 기초로 해쉬값을 생성하고, 펌웨어 이미지(FW_IMG)와 관련되며 외부로부터 제공된 서명서(SGN)를 이용하여 상기 서명 인증을 수행할 수 있다.
공개키 가속기(310)는 서명 인증된 펌웨어 이미지(FW_IMG)를 스위칭 회로(420)에 제공하고, 스위칭 회로(420)의 스위치(SW6)는 서명 인증된 펌웨어 이미지(FW_IMG)를 보안 DMA 회로(140)에 전달한다(S230).
보안 DMA 회로(140)는 상기 서명 인증된 펌웨어 이미지(FW_IMG)를 보안 데이터(SDTA)로서 내부 메모리(120)의 제1 영역(121)에 저장할 수 있다(S230). 내부 메모리(120)의 제1 영역(121)은 제1 시작 어드레스(SADDR1)와 제1 길이 정보(LENG1)를 가질 수 있다.
보안 DMA 회로(140)는 내부 메모리(120)의 제1 영역(121)의 제1 시작 어드레스(SADDR1)와 제1 길이 정보(LGNG1)를 보안 프로세서(200)에 제공하고, 보안 프로세서(200)는 내부 메모리(120)의 제1 영역(121)의 제1 시작 어드레스(SADDR1)와 제1 길이 정보(LGNG1)를 구성 테이블(240)에 저장할 수 있다. 즉, 보안 프로세서(200)는 내부 메모리(120)에 저장된 보안 데이터(SDTA)의 크기 정보와 저장 정보를 구성 테이블(240)에 저장할 수 있다.
보안 프로세서(200)는 내부 메모리(120)에 저장된 보안 데이터(SDTA)에 기초하여 고립된 실행 환경에서 CPU(50)의 개입 없이 CPU(50)에 대하여 독립적으로 보안 어플리케이션을 실행할 수 있다(S240).
도 9는 도 1의 보안 장치가 보안 백-업을 수행하는 것을 나타내는 흐름도이고, 도 10은 도 1의 보안 장치가 보안 백-업을 수행하는 경우의 도 5의 DMA 회로의 연결 관계를 나타낸다.
도 1 내지 도 6, 도 9 및 도 10을 참조하면, 보안 장치(100)가 고립된 실행 환경에서 보안 어플리케이션을 수행하다가, 전자 장치(10)가 스탠-바이 모드나 슬립 모드 등의 저전력 모드로의 진입이 필요한 경우, CPU(50)는 메일 박스(60)를 통하여 보안 데이터(SDTA)의 보안 백-업을 지시하는 제2 리퀘스트(REQ2)를 보안 프로세서(200)에 전달한다(S310).
보안 프로세서(200)가 제2 리퀘스트(REQ2)를 수신하는 경우, 보안 프로세서(200)는 키 매니저(330)를 제어하여 하드웨어 고유키(HUK)가 복제 불가능 저장 장치(150)로부터 키 매니저(330)로 제공되도록 하여 보안 백-업 동작에 사용할 암호화 키를 설정한다(S320).
보안 프로세서(200)는 키 매니저(330)를 제어하여 하드웨어 고유키(HUK)가 블록 사이퍼 엔진(340)에 제공되도록 하여 블록 사이퍼 엔진(340)의 구성을 설정한다(S330).
보안 프로세서(200)는 해쉬 타입 정보(HTYPE)를 해쉬 엔진(350)에 제공하여 해쉬 엔진(350)의 구성을 설정한다(S350). 해쉬 엔진(350)은 해쉬 타입 정보(HTYPE)를 수신하고, 복수의 해쉬 알고리즘들 중 해쉬 타입 정보(HTYPE)에 상응하는 해쉬 알고리즘을 선택할 수 있다.
보안 프로세서(200)는 제2 리퀘스트(REQ2)에 응답하여 제2 스위칭 제어 신호(SCS2)를 스위칭 회로(420)에 인가하여 DMA 회로(400)의 구성을 설정하고, 해쉬 타입 정보(HTYPE)를 보안 DMA 회로(140)에 제공하여 보안 DMA 회로(140)의 구성을 설정한다(S360). 즉, 제2 스위칭 제어 신호(SCS2)에 응답하여 스위치(SW1)는 내부 메모리(120)를 블록 사이퍼 엔진(340)에 연결시키고, 스위치(SW3)는 내부 메모리(120)를 해쉬 엔진(350)에 연결시키고, 스위치(SW2)와 스위치(SW4) 블록 사이퍼 엔진(340)을 메모리 인터페이스(410)에 연결시킬 수 있다.
보안 프로세서(200)는 보안 DMA 회로(140)를 제어하여 내부 메모리(120)의 제1 영역(121)에 저장된 보안 데이터(SDTA)가 스위칭 회로(420)에 제공되도록 한다(S360).
스위칭 회로(420)의 스위치(SW1)는 보안 데이터(SDTA)를 블록 사이퍼 엔진(340)에 제공하고, 보안 데이터(SDTA)를 블록 사이퍼 엔진(340)에 제공되는 것과 병렬적으로 스위치(SW3)는 보안 데이터(SDTA)를 해쉬 엔진(350)에 제공한다. 블록 사이퍼 엔진(340)은 하드웨어 고유키(HUK)를 이용하여 보안 데이터(SDTA)에 암호화 동작을 수행하고, 암호화된 보안 데이터(SDTA_ECR)를 스위치(SW2)와 스위치(SW4)를 통하여 메모리 인터페이스(410)에 제공한다.
메모리 인터페이스(410)는 보안 DMA 회로(140)로부터 제공된 제1 시작 어드레스(SADDR1), 제1 길이 정보(LENG1) 및 암호화된 보안 데이터(SDTA_ECR)를 외부 스토리지(60)에 제공하고, 외부 스토리지(60)는 제1 시작 어드레스(SADDR1)와 제1 길이 정보(LENG1)에 기초하여 보안 데이터(SDTA_ECR)의 크기를 판단하고, 암호화된 보안 데이터(SDTA_ECR)를 메모리 장치(63)의 제1 영역(631)에 암호학적으로 안전하게 저장할 수 있다(S370). 메모리 장치(63)의 제1 영역(631)은 제2 시작 어드레스(SADDR2)와 제2 길이 정보(LENG2)을 가질 수 있다.
블록 사이퍼 엔진(340)이 보안 데이터(SDTA)에 암호화 동작을 수행하는 것과 병렬적으로 해쉬 엔진(350)은 해쉬 타입 정보(HTYPE)에 상응하는 해쉬 연산을 보안 데이터(SDTA)에 대하여 수행하여 제1 해쉬 값(HV1)을 생성한다(S380). 해쉬 엔진(350)은 생성된 제1 해쉬값(HV1)을 보안 DMA 회로(140)를 통하여 블록 사이퍼 엔진(340)에 제공한다. 이 때, 제1 해쉬값(HV1)은 보안 DMA 회로(140)의 해쉬 레지스터(142)에 저장된다.
블록 사이퍼 엔진(340)은 보안 데이터(SDTA)가 외부 스토리지(60)에 저장될 때 경유한 경로 정보를 이용하여 제1 해쉬값(HV1)을 암호화하고, 암호화된 제1 해쉬값(HV1_ECR)을 스위치(SW2)와 스위치(SW4)를 통하여 메모리 인터페이스(410)에 제공한다.
메모리 인터페이스(410)는 암호화된 제1 해쉬값(HV1_ECR)을 외부 스토리지(60)에 제공하고, 외부 스토리지(60)는 암호화된 제1 해쉬값(HV1_ECR)을 메모리 장치(63)의 제2 영역(633)에 저장할 수 있다(S390). 메모리 장치(63)의 제2 영역(633)은 제1 영역(631)과 연속되는 어드레스들을 가질 수 있다.
이 경우에, 보안 프로세서(200)는 보안 DMA 회로(140)를 통하여 백-업할 보안 데이터(SDTA)가 저장될 외부 스토리지(60)의 시작 어드레스와 DMA 회로(400)의 구성만을 설정하고, 나머지 동작은 보안 장치(100)의 하드웨어가 CPU(50)의 간섭 없이, CPU(50)에 대하여 독립적으로 보안 장치(100)의 하드웨어가 자동으로 수행할 수 있다.
도 11은 도 1의 보안 장치가 보안 복원을 수행하는 것을 나타내는 흐름도이고, 도 12는 도 1의 보안 장치가 보안 복원을 수행하는 경우의 도 5의 DMA 회로의 연결 관계를 나타낸다.
도 1 내지 도 6, 도 11 및 도 12을 참조하면, 전자 장치(10)가 저전력 모드에 진입하였다가 전자 장치(10)가 저전력 모드에서 탈출하려는 경우, CPU(50)는 웨이크-업 리퀘스트를 수신하고 메일 박스(60)를 통하여 보안 복원(restore)를 지시하는 제3 리퀘스트(REQ3) 보안 프로세서(200)에 전달한다(S410).
보안 프로세서(200)는 키 매니저(330)를 제어하여 하드웨어 고유키(HUK)가 복제 불가능 저장 장치(150)로부터 키 매니저(330)로 제공되도록 하여 복원 암호화 키를 설정한다(S420). 즉, 보안 프로세서(200)는 키 매니저(330)를 제어하여 보안 백-업시에 사용하였던 하드웨어 고유키(HUK)가 보안 복원에 사용되도록 한다.
보안 프로세서(200)는 키 매니저(330)를 제어하여 하드웨어 고유키(HUK)가 블록 사이퍼 엔진(340)에 제공되도록 하여 블록 사이퍼 엔진(340)의 구성을 설정한다(S430). 즉, 보안 프로세서(200)는 보안 백-업 시에 사용하였던 하드웨어 고유키(HUK)가 보안 복원에도 사용되도록 키 매니저(330)를 제어할 수 있다.
보안 프로세서(200)는 보안 백-업 시에 사용하였던 해쉬 타입 정보(HTYPE)를 해쉬 엔진(350)에 제공하여 해쉬 엔진(350)의 구성을 보안 백-업 시의 구성과 동일하도록 설정한다(S450).
보안 프로세서(200)는 제3 리퀘스트(REQ3)에 응답하여 제3 스위칭 제어 신호(SCS3)를 스위칭 회로(420)에 인가하여 DMA 회로(400)의 구성을 설정하고, 해쉬 타입 정보(HTYPE)를 보안 DMA 회로(140)에 제공하여 보안 DMA 회로(140)의 구성을 설정한다(S460). 즉, 제3 스위칭 제어 신호(SCS3)에 응답하여 스위치(SW5)와 스위치(SW1)는 메모리 인터페이스(410)를 블록 사이퍼 엔진(340)에 연결시키고, 스위치(SW2)는 블록 사이퍼 엔진(340)을 스위치(SW4)와 스위치(SW3)에 연결시키고, 스위치(SW4)는 내부 메모리(120)에 연결되고, 스위치(SW3)는 해쉬 엔진(350)에 연결될 수 있다.
보안 프로세서(200)는 보안 DMA 회로(140)를 제어하여 외부 스토리지(60)의 메모리 장치(63)에 저장된 암호화된 보안 데이터(SDTA_ECR)와 암호화된 제1 해쉬값(HV1_ECR)이 DMA 회로(400)를 통하여 블록 사이퍼 엔진(340)에 제공되도록 한다(S460).
블록 사이퍼 엔진(340)은 하드웨어 고유키(HUK)를 이용하여 암호화된 보안 데이터(SDTA_ECR)와 암호화된 제1 해쉬값(HV1_ECR)에 대하여 복호화 동작을 수행하고 복원된 보안 데이터(SDTA)와 복원된 제1 해쉬값(HV1)을 출력한다. 복원된 보안 데이터(SDTA)와 복원된 제1 해쉬값(HV1)은 스위치(SW2)와 스위치(SW4)를 통하여 내부 메모리(120)에 저장된다(S470).
해쉬 엔진(350)은 스위치(SW2)와 스위치(SW3)를 통하여 복원된 보안 데이터(SDTA)를 전달받고, 복원된 보안 데이터(SDTA)에 대하여 해쉬 타입 정보(HTYPE)에 상응하는 해쉬 연산을 수행하여 제2 해쉬값(HV2)를 생성하고, 생성된 제2 해쉬값(HV2)를 보안 DMA 회로(140)의 해쉬 레지스터(142)에 제공한다.
보안 프로세서(200)의 비교기(220)는 보안 DMA 회로(140)의 해쉬 레지스터(142)에 저장된 제1 해쉬값(HV1)과 제2 해쉬값(HV2)를 비교하여 복원된 보안 데이터(SDTA)의 무결성 검증(integrity verification)을 수행한다.
예를 들어, 제1 해쉬값(HV1)과 제2 해쉬값(HV2)이 서로 다른 경우, 비교 신호(CMP)가 제2 논리 레벨(논리 로우 레벨)을 가지므로, 인터럽트 생성기(230)는 이를 나타내는 인터럽트 신호(ITR)를 CPU(50)에 제공할 수 있다. CPU(50)는 보안 프로세서(200)로부터 인터럽트 신호(INT)를 수신하는 경우, 외부 스토리지(60)에 저장된 보안 데이터가 외부로부터의 공격에 의해 변경된 것으로 판단하고, 외부 스토리지(60)에 저장된 보안 데이터를 삭제하거나 외부로부터의 공격 탐지 사실을 사용자에게 알리는 등의 조치를 취할 수 있다.
예를 들어, 제1 해쉬값(HV1)과 제2 해쉬값(HV2)이 동일한 경우, 보안 프로세서(200)는 내부 메모리(120)에 저장된 보안 데이터(SDTA)에 기초하여 상응하는 보안 어플리케이션을 수행할 수 있다.
따라서, 전자 장치(10)가 모바일 디바이스이거나 IoT(internet of things) 장치여서 저전력을 위하여 빈번하게 저전력 모드와 웨이크-업을 반복하여도 보안 장치(100) 내에서 사용하던 검증된 보안 데이터를 다시 로딩하거나 다시 검증하는 과정 없이 빠르게 사용할 수 있다.
종래의 전자 장치는 저전력 모드에 진입하기 전에, CPU의 주도 하에 보안 데이터를 외부 스토리에 저장하고, 저전력 모드를 탈출하여 노멀 모드로 복귀하는 웜-부트 시에 CPU(50)의 개입 하에 외부 스토리지에 저장된 보안 데이터에 대하여 다시 서명 검증을 수행하여 보안 데이터를 사용하여 서명 검증을 수행하는데 많은 시간이 소요되었다.
하지만 본 발명의 실시예들에 따른 보안 장치(100)에서는 저전력 모드로 진입하기 전의 보안 백-업 수행 시에 하드웨어로 구성되는 보안 장치(100)가 CPU(50)의 개입 없이 고립된 실행 환경에서 안전하게 사용하던 펌웨어나 생성된 데이터를 포함하는 보안 데이터(SDTA)에 대하여 암호화와 해쉬 연산을 병렬적으로 수행하여 암호화된 보안 데이터와 제1 해쉬 값을 메모리 장치(63)에 저장한다.
또한 보안 장치(100)는 저전력 모드에서 탈출하는 웨이크-업 동작 시에는 보안 장치(100)가 CPU(50)의 개입 없이, 메모리 장치(63)에 저장된 암호화된 보안 데이터와 암호화된 제1 해쉬값에 대하여 복호화를 수행하여 보안 데이터와 제1 해쉬값을 복원하고, 복원된 보안 데이터에 해쉬 연산을 수행하여 제2 해쉬값을 생성한다. 보안 장치(100)는 제1 해쉬값과 제2 해쉬값을 비교하여 복원된 보안 데이터에 대한 무결성 검증을 수행한다.
보안 장치(100)는 하드웨어로만 구성되고, 상술한 보안 백-업 동작과 보안 복원 동작을 수행할 때, CPU(50)의 개입 없이, CPU(50)에 대하여 독립적으로 및 자체적으로 보안 백-업 동작과 보안 복원 동작을 수행하고 복원된 보안 데이터에 대하여 서명 검증 동작을 수행하지 않으므로 웜-부트에 소요되는 시간을 감소시킬 수 있다.
도 13은 본 발명의 실시예들에 따른 도 1의 보안 장치가 데이터 스왑을 수행하는 것을 나타낸다.
도 13에서는 도 1의 버퍼 메모리(70)에 외부로부터 보안 코드(SCODE)가 저장되어 있고, 보안 코드(SCODEA)의 크기가 내부 메모리(120)의 가용 저장 공간의 크기보다 큰 경우를 가정한다. 여기서 보안 코드(SCODE)는 암호화되어 버퍼 메모리(70)에 저장되어 있다고 가정한다. 보안 코드(SCODE)는 복수의 암호화된 세그먼트들(EC_SEG1~EC_SEGk)로 분할되고, 암호화된 세그먼트들(EC_SEG1~EC_SEGk)은 버퍼 메모리(70)의 연속된 어드레스들을 가지는 복수의 영역들(741~74k)에 저장될 수 있다. 보안 장치(100)에서 암호화된 보안 코드(SCODE)의 사용이 필요한 경우에, 암호화 아이피(300)는 암호화된 세그먼트들(EC_SEG1~EC_SEGk)들 각각(EC_SEGi)을 암호화 아이피(300)에서 복호화하고 복호화된 세그먼트(SEGi)를 보안 DMA 회로(140)를 통하여 내부 메모리(120)의 가용 저장 공간에 저장하고, 저장된 세그먼트(SEGi)에 기초하여 상응하는 어플리케이션을 수행하고, 저장된 세그먼트를 다음 세그먼트와 교환하는 데이터 스왑 동작을 수행할 수 있다. 데이터 스왑 동작을 수행하는 경우, 다음 세그먼트와 교환되는 이전 세그먼트는 암호화 아이피(300)에서 다시 암호화되어 암호화된 세그먼트(EC_SEGi)가 버퍼 메모리(70)에 저장될 수 있다.
이와 같은 데이터 스왑 동작을 수행하는 경우에, 도 5의 DMA 회로(400)는 버퍼 메모리(70)에 연결될 수 있다.
IoT(internet of things)와 같이 내부 메모리(120)의 크기가 한정적인 전자 장치나 모바일 장치에서 상술한 바와 같은 데이터 스왑 동작을 적용할 수 있다.
도 14는 본 발명의 실시예들에 따른 전자 장치의 동작 방법을 나타내는 흐름도이다.
도 1 내지 도 12 및 도 14를 참조하면, 중앙 처리 장치(Central Processing Unit; 이하 CPU)(50) 및 상기 CPU(50)로부터의 리퀘스트를 고립된 실행 환경에서 수행하는 보안 장치(100)를 포함하는 전자 장치(10)의 동작 방법에서는, 상기 전자 장치(10)에 파워를 인가하여 전자 장치(10)를 파워-온 시킨다(S510).
보안 장치(100)의 암호화 아이피(300)에서 펌웨어 이미지에 대하여 서명 검증을 수행하여 보안 데이터(SDTA)를 상기 보안 장치(100)의 내부 메모리(120)에 저장한다(S520). 보안 장치(100)의 보안 프로세서(200)는 상기 보안 데이터(SDTA)에 기초하여 보안 어플리케이션을 실행한다(S530).
상기 전자 장치(10)가 저전력 모드로 진입하는지 여부를 판단한다(S540). 상기 전자 장치(10)가 저전력 모드로 진입하지 않으면(S540에서 NO), 단계(S530)로 복귀한다.
상기 전자 장치(10)가 저전력 모드로 진입하면(S540에서 YES), CPU(50)의 개입 없이 상기 암호화 아이피(300)에서 상기 전자 장치(50)의 하드웨어 고유키(HUK)를 이용하여 상기 보안 데이터(SDTA)를 암호화하고, 상기 암호화된 보안 데이터(SDTA_ECR)를 상기 보안 장치(100)에 연결되는 외부 스토리지(60)에 저장하는 보안 백-업을 수행한다(S560).
상기 CPU(50)로부터의 웨이크업 리퀘스트를 수신하고(S560) 상기 웨이크업 리퀘스트에 응답하여, 상기 CPU(50)의 개입 없이, 상기 암호화 아이피(300)에서, 상기 하드웨어 고유키(HUK)를 이용하여 상기 외부 스토리지(60)에 저장된 상기 암호화된 보안 데이터(SDTA_ECR)에 대하여 복호화를 수행하고, 복원된 보안 데이터(SDTA)를 상기 내부 메모리(120)에 저장하는 보안 복원을 수행한다(S570).
암호화 아이피(300)에서 상기 보안 복원을 수행할 때, 암호화된 제1 해쉬값에 대하여 복호화를 수행하고, 복원된 보안 데이터(SDTA)에 대하여 해쉬 연산을 수행하여 제2 해쉬값을 생성하고, 제1 해쉬값과 제2 해쉬값을 비교하여 복원된 보안 데이터(SDTA)의 무결성 검증을 수행할 수 있다.
도 15는 본 발명의 실시예들에 따른 모바일 시스템을 나타내는 블록도이다.
도 15를 참조하면, 모바일 시스템(900)은 어플리케이션 프로세서(910), 메모리 장치(920), 통신(Connectivity) 모듈(930), 비휘발성 스토리지(NVM)(940), 사용자 인퍼페이스(950) 및 파워 서플라이(960)를 포함한다.
실시예에 따라, 모바일 시스템(900)은 휴대폰(Mobile Phone), 스마트 폰(Smart Phone), 개인 정보 단말기(Personal Digital Assistant; PDA), 휴대형 멀티미디어 플레이어(Portable Multimedia Player; PMP), 디지털 카메라(Digital Camera), 음악 재생기(Music Player), 휴대용 게임 콘솔(Portable Game Console), 네비게이션(Navigation) 시스템 등과 같은 임의의 모바일 시스템일 수 있다.
어플리케이션 프로세서(910)는 인터넷 브라우저, 게임, 동영상 등을 제공하는 어플리케이션들을 실행할 수 있다. 실시예에 따라, 어플리케이션 프로세서(1100)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 어플리케이션 프로세서(1100)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다. 또한, 실시예에 따라, 어플리케이션 프로세서(1100)는 내부 또는 외부에 위치한 캐시 메모리(Cache Memory)를 더 포함할 수 있다.
메모리 장치(920)는 어플리케이션 프로세서(910)에 의해 처리되는 데이터를 저장하거나, 동작 메모리(Working Memory)로서 작동할 수 있다.
어플리케이션 프로세서(910)는 CPU(911) 및 보안 장치(913)를 포함한다. 보안 장치(913)는 하드웨어로 구성되고, CPU(911)의 개입 없이 보안 동작을 수행할 수 있는 고립된 실행 환경을 제공할 수 있다.
보안 장치(913)는 고립된 실행 환경에서 서명 검증이 완료된 펌웨어나 사용하던 데이터 등의 보안 데이터를 CPU(911)의 개입 없이 독자적으로 암호화를 수행하고, 상기 보안 데이터에 대하여 해쉬 연산을 수행하여 암호화된 보안 데이터와 암호화된 해쉬값을 비휘발성 스토리지(940)에 백-업하는 보안 백-업 동작과 CPU(911)의 개입 없이 독자적으로 비휘발성 스토리지(940)에 저장된 암호화된 보안 데이터와 암호화된 해쉬값에 대하여 복호화를 수행하고, 무결성을 체크하는 보안 복원 동작을 수행할 수 있다.
보안 장치(913)는 도 1 내지 도 13을 참조하여 설명한 보안 장치(100)를 채용할 수 있다.
통신 모듈(930)는 외부 장치와 무선 통신 또는 유선 통신을 수행할 수 있다. 예를 들어, 통신부(930)는 이더넷(Ethernet) 통신, 근거리 자기장 통신(Near Field Communication; NFC), 무선 식별(Radio Frequency Identification; RFID) 통신, 이동 통신(Mobile Telecommunication), 메모리 카드 통신, 범용 직렬 버스(Universal Serial Bus; USB) 통신 등을 수행할 수 있다.
비휘발성 스토리지(940)는 모바일 시스템(900)을 부팅하기 위한 부트 이미지 및 암호화된 보안 데이터를 저장할 수 있다.
사용자 인터페이스(960)는 키패드, 터치 스크린과 같은 하나 이상의 입력 장치, 및/또는 스피커, 디스플레이 장치와 같은 하나 이상의 출력 장치를 포함할 수 있다. 파워 서플라이(1600)는 모바일 시스템(900)의 동작 전압을 공급할 수 있다.
모바일 시스템(900) 또는 모바일 시스템(900)의 구성요소들은 다양한 형태들의 패키지를 이용하여 실장될 수 있다.
본 발명은 보안 장치를 구비하는 임의의 전자 장치에 유용하게 이용될 수 있다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. 전자 장치에 포함되는 보안 장치로서,
    상기 전자 장치의 중앙 처리 장치(Central processing unit; 이하 CPU)의 개입이 없는 고립된 실행 환경(isolated execution environment)을 제공하는 보안 프로세서;
    상기 CPU로부터의 리퀘스트를 상기 보안 프로세서에 전달하는 메일 박스;
    상기 보안 프로세서와 내부 버스를 통하여 연결되며, 상기 고립된 실행 환경에서, 데이터에 대하여 인증, 암/복호화 및 무결성 검증 중 적어도 하나의 보안 동작을 수행하는 암호화(cryptographic) 아이피(intellectual property; IP);
    상기 내부 버스에 연결되며, 상기 보안 프로세서만이 제어 가능하고, 상기 고립된 실행 환경에서의 상기 보안 동작을 제어하는 보안 직접 액세스 메모리(direct memory access; 이하 DMA) 회로; 및
    상기 내부 버스에 연결되며, 상기 보안 동작이 수행된 보안 데이터를 저장하는 내부 메모리를 포함하고,
    상기 암호화 아이피는 외부 스토리지로의 데이터 액세스를 제어하는 DMA 회로를 포함하는 보안 장치.
  2. 제1항에 있어서,
    상기 보안 프로세서는 상기 CPU로부터의 인증을 지시하는 제1 리퀘스트에 응답하여, 외부로부터 제공된 펌웨어 이미지에 대하여 서명 인증을 수행하도록 상기 암호화 아이피를 제어하고,
    상기 암호화 아이피는 상기 펌웨어 이미지에 대하여 상기 서명 인증을 수행하고,
    상기 보안 DMA 회로는 상기 서명 인증된 상기 펌웨어 이미지를 상기 내부 메모리에 상기 보안 데이터로 저장하는 보안 장치.
  3. 제2항에 있어서,
    상기 암호화 아이피는 상기 펌웨어 이미지를 기초로 해쉬 값을 생성하고, 상기 해쉬값과 상기 외부로부터 제공되며, 상기 펌웨어 이미지와 관련된 서명서를 이용하여 상기 서명 인증을 수행하는 보안 장치.
  4. 제2항에 있어서,
    상기 보안 프로세서는 상기 CPU로부터의, 보안 백-업을 지시하는 제2 리퀘스트에 응답하여, 상기 내부 메모리에 저장된 상기 보안 데이터에 대하여 암호화를 수행하고, 상기 보안 데이터에 대하여 해쉬 연산을 수행하여 제1 해쉬값을 생성하고, 상기 제1 해쉬값에 대하여 암호화를 수행하도록 상기 보안 DMA 회로와 상기 암호화 아이피를 제어하고,
    상기 암호화 아이피는 상기 암호화된 보안 데이터와 상기 암호화된 제1 해쉬값을 상기 DMA 회로에 제공하고,
    상기 DMA 회로는 상기 암호화된 보안 데이터와 상기 암호화된 제1 해쉬값을 상기 외부 스토리지의 메모리 장치에 저장하는 보안 장치.
  5. 제4항에 있어서,
    상기 암호화 아이피는 상기 보안 데이터에 대한 상기 암호화와 상기 보안 데이터에 대한 상기 해쉬 연산을 병렬적으로 수행하는 보안 장치.
  6. 제4항에 있어서,
    상기 암호화 아이피는 복제 불가능 저장 장치로부터 제공받은 상기 전자 장치의 하드웨어 고유키를 이용하여 상기 보안 데이터에 대한 상기 암호화 동작을 수행하고, 상기 보안 프로세서로부터 제공되는 해쉬 타입 정보에 기초하여 복수의 해시 알고리즘 중 적어도 하나를 이용하여 상기 보안 데이터에 대한 상기 해쉬 연산을 수행하는 보안 장치.
  7. 제4항에 있어서,
    상기 DMA 회로는 상기 보안 프로세서로부터 제공되는 시작 어드레스에 응답하여 상기 암호화된 보안 데이터와 상기 암호화된 제1 해쉬값을 상기 메모리 장치의 연속되는 어드레스들에 해당하는 영역에 저장하는 보안 장치.
  8. 제2항에 있어서,
    상기 보안 데이터가 암호화되고, 상기 보안 데이터와 관련된 제1 해쉬값이 암호화되고 상기 암호화된 보안 데이터와 상기 암호화된 제1 해쉬값이 상기 외부 스토리지의 메모리 장치에 저장된 후,
    상기 보안 프로세서는 상기 CPU로부터의 보안 복원을 지시하는 제3 리퀘스트에 응답하여, 상기 메모리 장치에 저장된 상기 암호화된 보안 데이터와와 상기 암호화된 제1 해쉬값이 상기 암호화 아이피에 제공되도록 상기 DMA 회로를 제어하는 보안 장치.
  9. 제8항에 있어서,
    상기 보안 프로세서는 상기 제3 리퀘스트에 응답하여 상기 암호화 아이피를 제어하여 상기 암호화 아이피가 상기 암호화된 보안 데이터와 상기 암호화된 제1 해쉬값에 대하여 복호화 동작을 수행하여 상기 보안 데이터와 상기 제1 해쉬값을 복원하도록 하고, 상기 보안 DMA 회로를 제어하여 상기 복원된 보안 데이터와 상기 복원된 제1 해쉬값이 상기 내부 메모리에 저장되도록 하고, 상기 암호화 아이피를 제어하여 상기 복원된 보안 데이터에 대하여 해쉬 연산을 수행하여 제2 해쉬값을 생성하도록 하는 보안 장치.
  10. 제9항에 있어서,
    상기 보안 프로세서는 상기 제1 해쉬값과 상기 제2 해쉬값을 비교하여 상기 복원된 보안 데이터의 무결성 검증을 수행하는 보안 장치.
  11. 제9항에 있어서,
    상기 암호화 아이피는 복제 불가능 저장 장치로부터 제공받은 상기 전자 장치의 하드웨어 고유키를 이용하여 상기 암호화된 보안 데이터에 대한 상기 복호화 동작을 수행하는 보안 장치.
  12. 제1항에 있어서, 상기 암호화 아이피는
    상기 검증을 수행하는 공개키 가속기;
    상기 암/복호화를 수행하는 블록 사이퍼 엔진; 및
    상기 무결성 검증과 관련된 해쉬 연산을 수행하는 해쉬 엔진을 더 포함하고,
    상기 DMA 회로는
    상기 외부 스토리지와 연결되는 메모리 인터페이스; 및
    복수의 스위치들을 포함하고 상기 보안 프로세서로부터의 스위칭 제어 신호에 응답하여 상기 내부 메모리, 상기 암호화 아이피 및 상기 메모리 인터페이스를 서로 연결시키는 스위칭 회로를 포함하는 보안 장치.
  13. 제12항에 있어서,
    상기 보안 프로세서는 상기 CPU로부터의 보안 부팅을 지시하는 제1 리퀘스트에 응답하여 제1 스위칭 제어 신호를 상기 스위칭 회로에 인가하고,
    상기 스위칭 회로는 상기 제1 스위칭 제어 신호에 응답하여, 상기 암호화 아이피로부터 제공되는 서명 인증된 펌웨어 이미지를 상기 내부 메모리에 제공하는 보안 장치.
  14. 제13항에 있어서,
    상기 보안 프로세서는 상기 CPU로부터의 보안 백업-을 지시하는 제2 리퀘스트에 응답하여 제2 스위칭 제어 신호를 상기 스위칭 회로에 인가하고,
    상기 스위칭 회로는 상기 제2 스위칭 제어 신호에 응답하여
    상기 내부 메모리에 상기 보안 데이터로서 저장된 상기 펌웨어 이미지를 상기 블록 사이퍼 엔진과 상기 해쉬 엔진에 전달하고,
    상기 해쉬 엔진에서 출력되는 제1 해쉬값을 상기 블록 사이퍼 엔진에 전달하고,
    상기 블록 사이퍼 엔진에서 순차적으로 출력되는 암호화된 보안 데이터와 암호화된 제1 해쉬값을 상기 메모리 인터페이스에 전달하는 보안 장치.
  15. 제14항에 있어서,
    상기 보안 프로세서는 상기 CPU로부터 보안 복원을 지시하는 제3 리퀘스트에 응답하여 제3 스위칭 제어 신호를 상기 스위칭 회로에 인가하고,
    상기 스위칭 회로는 상기 제3 스위칭 제어 신호에 응답하여,
    상기 외부 스토리지에 저장된 상기 암호화된 보안 데이터와 상기 암호화된 제1 해쉬값을 상기 메모리 인터페이스로부터 제공받아,
    상기 암호화된 보안 데이터와 상기 암호화된 제1 해쉬값을 상기 블록 사이퍼 엔진에 전달하고,
    상기 블록 사이퍼 엔진에서 출력되는 복원된 보안 데이터와 복원된 제1 해쉬값을 상기 내부 메모리에 전달하고,
    상기 복원된 보안 데이터를 상기 해쉬 엔진에 전달하는 보안 장치.
  16. 제12항에 있어서,
    상기 전자 장치의 하드웨어 고유키를 저장하고, 상기 하드웨어 고유키를 상기 블록 사이퍼 엔진에 제공하는 복제 불가능 저장 장치를 더 포함하고,
    상기 블록 사이퍼 엔진은 상기 하드웨어 고유키를 이용하여 상기 암/복호화 동작을 수행하는 보안 장치.
  17. 제1항에 있어서,
    시스템 버스를 통하여 상기 보안 장치에 연결되는 버퍼 메모리를 더 포함하고,
    상기 버퍼 메모리는 외부로부터 제공된 암호화된 보안 코드를 저장하고,
    상기 암호화된 보안 코드의 크기가 상기 내부 메모리의 가용 저장 공간의 크기보다 큰 경우에,
    상기 DMA 회로는 상기 암호화된 보안 코드가 분할된 복수의 암호화된 세금먼트들을 순차적으로 상기 암호화 아이피에 제공하고,
    상기 암호화 아이피는 암호화된 세그먼트들을 순차적으로 복호화하고, 상기 보안 DMA 회로는 상기 복호화된 세그먼트들 각각을 순차적으로 상기 내부 메모리의 상기 가용 저장 공간에 저장하는 스왑 동작을 수행하는 보안 장치.
  18. 중앙 처리 장치(Central Processing Unit; 이하 CPU);
    상기 CPU로부터의 리퀘스트를 고립된 실행 환경에서 수행하는 보안 장치; 및
    상기 보안 장치에 연결되는 외부 스토리지를 포함하고,
    상기 보안 장치는
    상기 고립된 실행 환경을 제공하는 보안 프로세서;
    상기 리퀘스트를 상기 보안 프로세서에 전달하는 메일 박스;
    상기 보안 프로세서와 내부 버스를 통하여 연결되며, 상기 고립된 실행 환경에서, 데이터에 대하여 인증, 암/복호화 및 무결성 검증 중 적어도 하나의 보안 동작을 수행하는 암호(cryptographic) 아이피(intellectual property; IP);
    상기 내부 버스에 연결되며, 상기 보안 프로세서만이 제어 가능하고, 상기 고립된 실행 환경에서의 상기 보안 동작을 제어하는 보안 직접 액세스 메모리(direct memory access; 이하 DMA) 회로;
    상기 내부 버스에 연결되며, 상기 보안 동작이 수행된 보안된 데이터를 저장하는 내부 메모리; 및
    상기 내부 버스에 연결되며 상기 외부 스토리지로의 데이터 액세스를 제어하는 DMA 회로를 포함하는 전자 장치.
  19. 제18항에 있어서,
    상기 보안 장치는 상기 CPU로부터의 제1 리퀘스트에 응답하여, 상기 CPU의 개입 없이 상기 내부 메모리에 저장된 상기 보안된 데이터에 대하여 암호화와 해쉬 연산을 수행하여 암호화된 보안 데이터와 암호화된 해쉬값을 상기 스토리지에 저장하는 보안 백-업 동작을 수행하고,
    상기 CPU로부터의 제2 리퀘스트에 응답하여 상기 CPU의 개입없이, 상기 스토리지에 저장된 상기 암호화된 보안 데이터와 상기 암호화된 해쉬값에 대하여 복호화 동작을 수행하고 복원된 보안 데이터와 복원된 해쉬값을 상기 내부 메모리에 저장하는 보안 복원 동작을 수행하고,
    상기 스토리지는 비휘발성 스토리지인 전자 장치.
  20. 중앙 처리 장치(Central Processing Unit; 이하 CPU) 및 상기 CPU로부터의 리퀘스트를 고립된 실행 환경에서 수행하는 보안 장치를 포함하는 전자 장치의 동작 방법으로서,
    상기 전자 장치를 파워-온 하는 단계;
    상기 보안 장치의 암호화 아이피에서 펌웨어 이미지에 대하여 서명 검증을 수행하여 보안 데이터를 상기 보안 장치의 내부 메모리에 저장하는 단계;
    상기 전자 장치가 저전력 모드로 진입하는지 여부를 판단하는 단계;
    상기 전자 장치가 저전력 모드로 진입하는 경우, 상기 CPU의 개입 없이 상기 암호화 아이피에서 상기 전자 장치의 하드웨어 고유키를 이용하여 상기 보안 데이터를 암호화하고, 상기 암호화된 보안 데이터를 상기 보안 장치에 연결되는 외부 스토리지에 저장하는 보안 백업을 수행하는 단계; 및
    상기 CPU로부터의 웨이크업 리퀘스트에 응답하여, 상기 CPU의 개입 없이, 상기 암호화 아이피에서, 상기 하드웨어 고유키를 이용하여 상기 스토리지에 저장된 상기 보안 데이터에 대하여 복호화를 수행하고, 복원된 보안 데이터를 상기 내부 메모리에 저장하는 보안 복원을 수행하는 단계를 포함하는 전자 장치의 동작 방법.
KR1020170151967A 2017-08-02 2017-11-15 보안 장치, 이를 포함하는 전자 장치 및 전자 장치의 동작 방법 KR102401088B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/023,401 US10949546B2 (en) 2017-08-02 2018-06-29 Security devices, electronic devices and methods of operating electronic devices
CN201810851268.4A CN109388953B (zh) 2017-08-02 2018-07-27 安全设备、电子设备和操作电子设备的方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20170098249 2017-08-02
KR1020170098249 2017-08-02

Publications (2)

Publication Number Publication Date
KR20190014444A true KR20190014444A (ko) 2019-02-12
KR102401088B1 KR102401088B1 (ko) 2022-05-24

Family

ID=65369349

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170151967A KR102401088B1 (ko) 2017-08-02 2017-11-15 보안 장치, 이를 포함하는 전자 장치 및 전자 장치의 동작 방법

Country Status (2)

Country Link
KR (1) KR102401088B1 (ko)
CN (1) CN109388953B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021080123A1 (ko) * 2019-10-24 2021-04-29 삼성전자주식회사 전자 장치 및 이의 제어 방법
KR102289456B1 (ko) * 2020-05-21 2021-08-12 단국대학교 산학협력단 Plc용 펌웨어 무결성을 검증하기 위한 원격 보증증명 장치 및 방법
US11328097B2 (en) 2018-10-05 2022-05-10 Samsung Electronics Co., Ltd. Encryption circuit for performing virtual encryption operations

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI693600B (zh) * 2019-05-08 2020-05-11 慧榮科技股份有限公司 具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法
KR20210012186A (ko) * 2019-07-24 2021-02-03 삼성전자주식회사 보안 스위치를 이용하여 개인 정보를 보호하는 전자 장치 및 방법
CN112035146B (zh) * 2020-09-11 2023-10-24 百富计算机技术(深圳)有限公司 固件更新方法、安全设备和计算机可读存储介质
CN114553411B (zh) * 2022-02-25 2023-07-14 苏州浪潮智能科技有限公司 用于分布式内存加密装置和用于分布式内存解密装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100064144A1 (en) * 2008-09-10 2010-03-11 Atmel Corporation Data security
US20140089682A1 (en) * 2012-09-25 2014-03-27 Apple Inc. Security Enclave Processor for a System on a Chip
KR20150106219A (ko) * 2014-03-11 2015-09-21 삼성전자주식회사 펌웨어 검증 기능을 갖는 모바일 시스템 그리고 그것의 펌웨어 업데이트 방법

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7389427B1 (en) * 2000-09-28 2008-06-17 Intel Corporation Mechanism to secure computer output from software attack using isolated execution
CN1601490A (zh) * 2003-09-26 2005-03-30 刘任 信息安全认证及其加密装置的方法
US20090204823A1 (en) * 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
WO2010121020A1 (en) * 2009-04-15 2010-10-21 Interdigital Patent Holdings, Inc. Validation and/or authentication of a device for communication with a network
NL2013271B1 (en) * 2014-07-28 2016-09-09 E-Traction Europe B V Electrical installation having high and low voltage circuits with common ground reference.
CN105490811A (zh) * 2015-11-25 2016-04-13 小米科技有限责任公司 签名信息获取方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100064144A1 (en) * 2008-09-10 2010-03-11 Atmel Corporation Data security
US20140089682A1 (en) * 2012-09-25 2014-03-27 Apple Inc. Security Enclave Processor for a System on a Chip
KR20150106219A (ko) * 2014-03-11 2015-09-21 삼성전자주식회사 펌웨어 검증 기능을 갖는 모바일 시스템 그리고 그것의 펌웨어 업데이트 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11328097B2 (en) 2018-10-05 2022-05-10 Samsung Electronics Co., Ltd. Encryption circuit for performing virtual encryption operations
WO2021080123A1 (ko) * 2019-10-24 2021-04-29 삼성전자주식회사 전자 장치 및 이의 제어 방법
KR102289456B1 (ko) * 2020-05-21 2021-08-12 단국대학교 산학협력단 Plc용 펌웨어 무결성을 검증하기 위한 원격 보증증명 장치 및 방법

Also Published As

Publication number Publication date
CN109388953A (zh) 2019-02-26
CN109388953B (zh) 2023-05-16
KR102401088B1 (ko) 2022-05-24

Similar Documents

Publication Publication Date Title
KR102401088B1 (ko) 보안 장치, 이를 포함하는 전자 장치 및 전자 장치의 동작 방법
US10949546B2 (en) Security devices, electronic devices and methods of operating electronic devices
KR102013841B1 (ko) 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
EP3274850B1 (en) Protecting a memory
US9690922B2 (en) System, apparatus, and method for anti-replay protection of data stored in a non-volatile memory device
TWI436280B (zh) 存取基本輸入輸出系統設定的認證方法
US8516232B2 (en) Method and memory device for performing an operation on data
US8108941B2 (en) Processor, memory, computer system, system LSI, and method of authentication
US20230059382A1 (en) Electronic device
EP3757838B1 (en) Warm boot attack mitigations for non-volatile memory modules
US10505927B2 (en) Memory device and host device
US20220100865A1 (en) Platform security mechanism
CN114764512A (zh) 加密密钥管理
US20170147838A1 (en) Systems and methods for cache memory authentication
WO2018233583A1 (zh) 终端设备及数据处理方法
EP3915030B1 (en) Storage of network credentials
CN108399328B (zh) 系统存储器内容认证设备及方法
CN116167060A (zh) 可信只读存储器系统及可信基板管理控制器系统
CN113448915A (zh) 固件弹性机构
CN115481080A (zh) 包括安全处理器的片上系统和包括该片上系统的半导体系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant