KR20190085387A - 반도체 장치 및 반도체 장치의 동작 방법 - Google Patents

반도체 장치 및 반도체 장치의 동작 방법 Download PDF

Info

Publication number
KR20190085387A
KR20190085387A KR1020180003456A KR20180003456A KR20190085387A KR 20190085387 A KR20190085387 A KR 20190085387A KR 1020180003456 A KR1020180003456 A KR 1020180003456A KR 20180003456 A KR20180003456 A KR 20180003456A KR 20190085387 A KR20190085387 A KR 20190085387A
Authority
KR
South Korea
Prior art keywords
key
register
protection
enable bit
otp memory
Prior art date
Application number
KR1020180003456A
Other languages
English (en)
Other versions
KR102432451B1 (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 KR1020180003456A priority Critical patent/KR102432451B1/ko
Priority to US16/106,267 priority patent/US10923203B2/en
Priority to CN201811258060.8A priority patent/CN110020561B/zh
Publication of KR20190085387A publication Critical patent/KR20190085387A/ko
Application granted granted Critical
Publication of KR102432451B1 publication Critical patent/KR102432451B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/16Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • 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
    • G06F21/575Secure boot
    • 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
    • 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/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/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/08Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards using semiconductor devices, e.g. bipolar elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/143Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using laser-fusible links
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/18Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • 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/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

Landscapes

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

Abstract

반도체 장치 및 반도체 장치의 동작 방법이 제공된다. 반도체 장치는 키(key)를 저장하는 키 프로그램 영역 및 상기 키 프로그램 영역에 저장된 상기 키를 보호하기 위한 설정 값이 프로그램되는 키 보호 설정 영역을 포함하는 OTP 메모리(One-Time Programmable Memory); 상기 OTP 메모리에 저장된 상기 키를 로드(load)하여 보안 소프트웨어(secure software)에 제공하는 키 레지스터; 및 상기 OTP 메모리의 상기 키 보호 설정 영역의 프로그램 여부에 따라, 상기 OTP 메모리에 저장된 상기 키를 상기 키 레지스터에 로드하는 키 보호 제어 로직을 포함한다.

Description

반도체 장치 및 반도체 장치의 동작 방법{SEMICONDUCTOR DEVICE AND METHOD FOR OPERATING SEMICONDUCTOR DEVICE}
본 발명은 반도체 장치 및 반도체 장치의 동작 방법에 관한 것이다.
보안 어플리케이션(secure application)을 비롯한 보안 소프트웨어(secure software)를 실행할 수 있는 반도체 장치는, 보안 소프트웨어가 사용하는 키(key)를 영구적으로 프로그램하기 위해, 그 내부에 키를 저장해 둘 필요가 있다. 예를 들어, 상기 반도체 장치에 탑재되는 칩 또는 칩셋을 제조하는 공정에서, 예컨대 반도체 장치의 일 구성으로 포함된 OTP 메모리(One-Time Programmable Memory)에 키의 값을 퓨징(fusing)해 놓을 수 있다.
그런데 이와 같은 제조 공정이 완료된 후, 칩이 다른 곳으로 유통되거나 상기 칩을 이용하여 제품 개발이 되는 경우에, 허가되지 않은 제3자가 칩에 퓨징되어 있는 키를 유출할 우려가 있다.
즉, 보안 키가 퓨징된 칩을 탑재한 반도체 장치에 대해, 보안 부팅(secure boot) 기능 및 디버그 포트 보호(debug port protection) 기능 등을 비롯한 보안 기능(security feature)이 활성화될 때까지, 상기 칩에 퓨징되어 있는 키를 제3자로부터 보호하기 위한 방안이 요구된다.
본 발명이 해결하고자 하는 기술적 과제는 보안 기능(security feature)이 활성화되기 전에 OTP 메모리(One-Time Programmable Memory)에 퓨징(fusing)된 키(key)가 유출되는 것을 방지하기 위한 반도체 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 보안 기능이 활성화되기 전에 OTP 메모리에 퓨징된 키가 유출되는 것을 방지하기 위한 반도체 장치의 동작 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 해당 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 반도체 장치는, 키(key)를 저장하는 키 프로그램 영역 및 키 프로그램 영역에 저장된 키를 보호하기 위한 설정 값이 프로그램되는 키 보호 설정 영역을 포함하는 OTP 메모리(One-Time Programmable Memory); OTP 메모리에 저장된 키를 로드(load)하여 보안 소프트웨어(secure software)에 제공하는 키 레지스터(Key Register); 및 OTP 메모리의 키 보호 설정 영역의 프로그램 여부에 따라, OTP 메모리에 저장된 키를 키 레지스터에 로드하는 키 보호 제어 로직(Key Protection Control Logic)을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 반도체 장치는, 키를 저장하는 키 프로그램 영역 및 키 프로그램 영역에 저장된 키를 보호하기 위한 설정 값이 저장되는 키 보호 설정 영역을 포함하는 OTP 메모리; OTP 메모리에 저장된 키를 로드하여 보안 소프트웨어에 제공하는 키 레지스터; 및 OTP 메모리의 키 보호 설정 영역에 저장된 설정 값에 대해 하나 이상의 논리 연산을 수행하여, 그 결과 값에 따라 OTP 메모리에 저장된 키를 키 레지스터에 로드할 지 여부를 결정하는 키 보호 제어 로직을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법은, OTP 메모리의 키 보호 설정 영역으로부터 하나 이상의 설정 값을 제공받고, 하나 이상의 설정 값에 대해 하나 이상의 논리 연산을 수행하고, 하나 이상의 논리 연산을 수행한 결과에 따라, OTP 메모리에 저장된 키를 키 레지스터에 로드할 지 여부를 결정하는 것을 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 반도체 장치를 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 반도체 장치를 설명하기 위한 개략도이다.
도 3은 본 발명의 일 실시예에 따른 반도체 장치를 설명하기 위한 개략도이다.
도 4는 본 발명의 일 실시예에 따른 반도체 장치를 설명하기 위한 개략도이다.
도 5는 본 발명의 일 실시예에 따른 반도체 장치를 설명하기 위한 개략도이다.
도 6은 본 발명의 일 실시예에 따른 반도체 장치를 설명하기 위한 개략도이다.
도 7은 본 발명의 일 실시예에 따른 반도체 장치를 설명하기 위한 개략도이다.
도 8은 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 개략도이다.
도 9는 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 개략도이다.
도 10은 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 개략도이다.
도 1은 본 발명의 일 실시예에 따른 반도체 장치를 설명하기 위한 블록도이고, 도 2는 본 발명의 일 실시예에 따른 반도체 장치를 설명하기 위한 개략도이다.
도 1 및 도 2를 함께 참조하면, 본 발명의 일 실시예에 따른 반도체 장치(1)는 어플리케이션 프로세서(Application Processor)(5), OTP 메모리(One-Time Programmable Memory)(10), OTP 메모리 컨트롤러(OTP Memory Controller)(20), 접근 제어기(Access Controller)(30), ROM(Read-Only Memory)(40), 디버그 포트 보호 로직(Debug Port Protection Logic)(50), 디버그 포트(60), 키 보호 제어 로직(Key Protection Control Logic)(100) 및 키 레지스터(Key Register)(110)를 포함할 수 있다.
또한, 본 발명의 몇몇의 실시예에서, 본 발명의 일 실시예에 따른 반도체 장치(1)는 키 보호 활성화 레지스터(Key Protection Enable Register)(120)를 더 포함할 수 있다.
어플리케이션 프로세서(5)는 반도체 장치(1)의 여러 구성 요소들을 제어하고, 다양한 종류의 소프트웨어를 실행시킬 수 있다. 예를 들어, 어플리케이션 프로세서(5)는 미리 정해진 기준에 따라 허가된 작업만을 실행하기 위한 보안 소프트웨어(secure software)를 실행시킬 수도 있고, 허가 여부에 무관하게 임의의 작업을 실행할 수 있는 비보안 소프트웨어(non-secure software)를 실행시킬 수도 있다. 일례로, 어플리케이션 프로세서(5)는 반도체 장치(1)의 부팅(booting) 과정에서 인증된 부트 이미지(boot image)와 같은 바이너리(binary)를 실행할 수 있다.
본 발명의 몇몇의 실시예에서, 어플리케이션 프로세서(5)는 복수의 CPU 코어(Central Processing Unit Cores)를 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
OTP 메모리(10)는 어플리케이션 프로세서(5)가 보안 소프트웨어를 실행하기 위해 사용되는 키(key)를 저장할 수 있다. 본 발명의 몇몇의 실시예에서, 키는 반도체 장치(1)가 제조되는 공정에서, 미리 정해진 값으로 OTP 메모리(10)에 영구적으로 프로그램될 수 있다.
본 실시예에서, OTP 메모리(100)는 특히 키 프로그램 영역(12) 및 키 보호 설정 영역(14, 16, 18)을 포함한다.
키 프로그램 영역(12)은 어플리케이션 프로세서(5)가 보안 소프트웨어를 실행하기 위해 사용되는 키가 프로그램되는 영역으로서, 어플리케이션 프로세서(5)에 의해 실행되는 소프트웨어는 키 프로그램 영역(12)을 직접 접근할 수는 없다. 어플리케이션 프로세서(5)에 의해 실행되는 소프트웨어가 키를 접근하기 위해서는 후술할 키 레지스터(110)를 이용하여야 한다.
키 보호 설정 영역(14, 16, 18)은 키 프로그램 영역(12)에 저장된 키를 보호하기 위한 설정 값이 프로그램되는 영역이다. 키 보호 설정 영역(14, 16, 18)은 키 보호 활성화(Key Protection Enable) 비트(14), 보안 부팅 활성화(Secure Boot Enable) 비트(16), 디버깅 포트 보호 활성화(Debug Port Protection Enable) 비트(18)를 포함할 수 있다.
키 보호 제어 로직(100)은 키 보호 설정 영역(14, 16, 18)에 프로그램된 값에 기초하여, OTP 메모리(100)의 키 프로그램 영역(12)에 프로그램된 키를 어플리케이션 프로세서(5)에 의해 실행되는 소프트웨어가 접근할 수 있는 키 레지스터(110)에 로드(load)할 지 여부를 결정한다.
키 보호 설정 영역(14, 16, 18)에 대한 세부적인 내용과, 키 보호 제어 로직(100)이 키 보호 설정 영역(14, 16, 18)에 프로그램된 값에 따라 키를 키 레지스터(110)에 로드할 지 여부를 결정하는 구체적인 내용에 대해서는 도 3 내지 도 7과 관련하여 후술하도록 한다.
키 보호 설정 영역(14, 16, 18) 역시 소프트웨어에 의한 접근이 불가능하다. 키 보호 설정 영역(14, 16, 18)은 하드웨어로 구현된 키 보호 제어 로직(100)에 의해 접근 가능하다.
OTP 메모리 컨트롤러(20)는 키 보호 제어 로직(100)에 의해 결정된 내용에 따라 OTP 메모리(100)에 저장된 키를 키 레지스터(110)에 로드하는 작업을 수행한다. OTP 메모리 컨트롤러(20)는 오로지 보안 소프트웨어에 의해서만 제어될 수 있다.
키 레지스터(110)는 로드된 키를 보안 소프트웨어에 제공할 수 있는 하드웨어 인터페이스(hardware interface)이다. 다시 말해, 보안 소프트웨어는 키 레지스터(110)에 로드된 키를 리드(read)할 수 있다. 또한, 키 레지스터(110)는 후술할 디버그 포트(60)를 통한 접근이 불가능하다.
키 보호 제어 로직(100)은 앞서 설명한 것과 같이, OTP 메모리(10)의 키 보호 설정 영역(14, 16, 18)의 프로그램 여부에 따라, OTP 메모리(10)에 저장된 키를 상기 키 레지스터(110)에 로드할 지 여부를 결정한다.
예를 들어, 키 보호 제어 로직(100)은 키 보호 설정 영역(14, 16, 18)에 저장된 설정 값들에 대해 하나 이상의 논리 연산을 수행하여, 그 결과 값에 따라 OTP 메모리(10)에 저장된 키를 키 레지스터(110)에 로드할 지 여부를 결정할 수 있다.
접근 제어기(30)는 키 레지스터(110)에 대한 비보안 소프트웨어의 접근을 차단한다. 나아가, 접근 제어기(30)는 비보안 소프트웨어가 OTP 메모리 컨트롤러(20), 키 보호 제어 로직(100), 키 보호 활성화 레지스터(120) 등과 같은 보안이 요구되는 요소들에 대해 접근하는 것을 차단한다.
ROM(40)은 반도체 장치(1)의 부팅 시 실행되는 바이너리를 저장하고, 이에 대한 서명 검증을 수행할 수 있다. 특히, ROM(40)은, OTP 메모리(10)의 키 보호 설정 영역(14, 16, 18) 중 보안 부팅 활성화 비트(16)의 값에 따라 바이너리에 대한 서명 검증을 수행 또는 비수행할 수 있다.
디버그 포트(60)는 사용자에게 디버그 인터페이스(debug interface)를 제공한다. 특히 디버그 포트(60)는 디버스 포트 보호 로직(50)의 제어 하에, OTP 메모리(10)의 키 보호 설정 영역(14, 16, 18) 중 디버깅 포트 보호 활성화 비트(18)의 값에 따라 사용자의 접근을 허용 또는 비허용할 수 있다.
키 보호 활성화 레지스터(120)는 보안 소프트웨어에 의해 접근 가능하며, 키 보호 제어 로직(100)은 키 보호 활성화 레지스터(120)에 프로그램된 값에 기초하여, OTP 메모리(100)의 키 프로그램 영역(12)에 프로그램된 키를 키 레지스터(110)에 로드할 지 여부를 결정할 수도 있다. 구체적으로, 보안 소프트웨어가 키 보호 활성화 레지스터(120)에 미리 정해진 값을 프로그램하면, 키 보호 제어 로직(100)은 OTP 메모리(10)에 저장된 키를 키 레지스터(110)에 로드하지 않을 수 있다.
본 발명의 몇몇의 실시예에서, 키 보호 활성화 레지스터(120)는 반도체 장치(1)의 동작 중 1회에 한해 변경 가능하도록 구현된다. 다시 말해서, 키 보호 활성화 레지스터(120)에 저장된 설정 값은, 반도체 장치(1)가 재부팅되기 전에는 반도체 장치(1)의 동작 중 1회에 한해 변경 가능하다.
이하에서는 보안 기능이 활성화되기 전에 OTP 메모리(10)에 퓨징된 키가 유출되는 것을 방지하기 위한 반도체 장치(1)의 구체적인 동작을 설명하도록 한다.
도 3은 본 발명의 일 실시예에 따른 반도체 장치를 설명하기 위한 개략도이다.
도 3을 참조하면, 먼저 OTP 메모리(10)의 키 보호 설정 영역(14, 16, 18)은 디폴트(default)로 제1 값(예컨대 0)을 갖는 것으로 가정한다. 또한, 키 보호 활성화 레지스터(120)에 저장된 설정 값 역시 디폴트로 제1 값(예컨대 0)을 갖는 것으로 가정한다.
본 명세서에서는 제1 값과 제2 값을 예컨대 바이너리 숫자 0과 1로 표현하고 있으나, 이것은 일 구현례를 의미하는 것에 불과하여 본 발명의 범위가 이에 제한되는 것은 아니다.
예를 들어, 구현 방식에 따라 제1 값과 제2 값은 각각 바이너리 숫자 1과 0으로 구현될 수도 있다. 나아가 구현 방식에 따라 키 보호 활성화 비트(14)의 제1 값과, 보안 부팅 활성화 비트(16)의 제1 값과, 디버깅 포트 보호 활성화 비트(18)의 제1 값은 실제 구현에 있어서 동일한 값으로 구현되지 않을 수 있다. 즉, 키 보호 활성화 비트(14)의 제1 값이 바이너리 숫자 0으로 구현된다고 해서, 보안 부팅 활성화 비트(16)의 제1 값이나 디버깅 포트 보호 활성화 비트(18)의 제1 값이 반드시 바이너리 숫자 0으로 구현되어야 하는 것은 아니다.
이와 같은 구현 상 변경 사항들은 본 발명의 범위를 제한하지 않으며 해당 기술 분야의 통상의 기술자가 이해할 수 있는 사항에 불과하다.
다시 도 3을 참조하면, 본 발명의 일 실시예에 따른 반도체 장치(1)에서, OTP 메모리(10)의 키 프로그램 영역(12)에는 키 "0x123456789ABC..."가 프로그램되어 있다. 키 "0x123456789ABC..."는 반도체 장치(1)가 제조되는 공정에서 OTP 메모리(10)에 퓨징된 것이다.
그리고 본 실시예에서 OTP 메모리(10)의 키 보호 활성화 비트(14)는 디폴트 값인 제1 값(예컨대 0)이다. 이 경우 키 보호 제어 로직(100)은 OTP 메모리(10)의 키 프로그램 영역(12)에 저장된 키를 키 레지스터(110)에 로드하는 것으로 결정한다.
예를 들어, 키 보호 제어 로직(100)은 제2 값(예컨대 1)을 갖는 출력 신호를 키 레지스터(110)에 제공하여 키 레지스터(110)가 키 프로그램 영역(12)에 저장된 키를 노출하도록 설정한다. 상기 제2 값을 갖는 키 보호 제어 로직(100)의 출력 신호는, 키 레지스터(110)에 키가 로드되어 보안 소프트웨어가 리드할 수 있다("Key Enable=ON")는 신호에 해당한다.
이에 따라 도 3의 키 레지스터(110)에는 키 "0x123456789ABC..."가 로드되었음을 확인할 수 있다. 즉, 본 실시예는 키에 대한 보호가 비활성화(disable)되어 있는 경우를 나타낸다.
한편, 도 2 내지 도 7에서는 키 보호 제어 로직(100) 내부에 인버터, AND 논리 게이트, OR 논리 게이트를 포함하는 논리 회로도가 도시되어 있으나, 상기 논리 회로도는 키 보호 제어 로직(100)의 동작을 개념적으로 설명하기 위해 표현한 것에 불과하다. 즉, 키 보호 제어 로직(100)은 도시된 논리 회로도에 따라 그 구현이 제한되는 것이 아니며, 반드시 물리적으로 도시된 논리 회로를 포함하는 것도 아니다.
도 4는 본 발명의 일 실시예에 따른 반도체 장치를 설명하기 위한 개략도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 반도체 장치(1)에서, OTP 메모리(10)의 키 보호 활성화 비트(14)는 제2 값(예컨대 1)으로 프로그램될 수 있다. 그리고 나머지 키 보호 설정 영역의 나머지 영역(16, 18)과 키 보호 활성화 레지스터(120)에 저장된 설정 값은 디폴트 값을 유지하고 있다.
키 보호 활성화 비트(14)가 제2 값(예컨대 1)인 경우, 키 보호 제어 로직(100)은 OTP 메모리(10)의 키 프로그램 영역(12)에 저장된 키를 키 레지스터(110)에 로드하지 않는 것으로 결정한다.
예를 들어, 키 보호 제어 로직(100)은 제1 값(예컨대 0)을 갖는 출력 신호를 키 레지스터(110)에 제공하여 키 레지스터(110)가 키 프로그램 영역(12)에 저장된 키를 노출하지 않도록 설정한다. 상기 제1 값을 갖는 키 보호 제어 로직(100)의 출력 신호는, 키 레지스터(110)에 키가 로드되지 않아 보안 소프트웨어가 리드할 수 없다("Key Enable=OFF")는 신호에 해당한다.
이에 따라 도 4의 OTP 메모리(10)의 키 프로그램 영역(12)에 프로그램된 키 "0x123456789ABC..."가 키 레지스터(110)에는 로드되지 않았음을 확인할 수 있다. 즉, 본 실시예는 키에 대한 보호가 활성화되어 있는 경우를 나타낸다.
이와 같은 하드웨어로서 구현되는 키 보호 제어 로직(100)에 의한 키 보호 방식에 따라, 소프트웨어, 나아가 보안 소프트웨어 조차도 키를 리드하는 것을 원천적으로 차단할 수 있다.
한편, 본 명세서에서, 키에 대한 보호가 활성화된 경우, 도면 상으로 키 레지스터(110)에 "0x000000000000..."로 표시하였으나, 이 역시 설명을 위한 개념적인 표시에 해당할 뿐, 실제 키 레지스터(110)의 구현은 이에 제한되지 않는다. 예를 들어, 키에 대한 보호가 활성화된 경우, 키 레지스터(110)가 의미 없는 쓰레기 값(garbage value)을 갖도록 구현할 수도 있다.
도 5는 본 발명의 일 실시예에 따른 반도체 장치를 설명하기 위한 개략도이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 반도체 장치(1)에서, OTP 메모리(10)의 키 보호 활성화 비트(14), 보안 부팅 활성화 비트(16) 및 디버깅 포트 보호 활성화 비트(18)는 제2 값(예컨대 1)으로 프로그램될 수 있다. 그리고 키 보호 활성화 레지스터(120)에 저장된 설정 값은 디폴트 값을 유지하고 있다.
키 보호 활성화 비트(14) 및 보안 부팅 활성화 비트(16)가 프로그램된 경우, 키 보호 제어 로직(100)은 보안 기능 중 보안 부팅(secure boot) 기능이 활성화된 것으로 인지하고, OTP 메모리(10)의 키 프로그램 영역(12)에 저장된 키를 키 레지스터(110)에 로드할 수 있다.
또한, 키 보호 활성화 비트(14) 및 디버깅 포트 보호 활성화 비트(18)가 프로그램된 경우, 키 보호 제어 로직(100)은 보안 기능 중 디버그 포트 보호(debug port protection) 기능이 활성화된 것으로 인지하고, OTP 메모리(10)의 키 프로그램 영역(12)에 저장된 키를 키 레지스터(110)에 로드할 수 있다.
특히, 키 보호 제어 로직(100)은, 보안 부팅 활성화 비트(16) 및 상기 디버깅 포트 보호 활성화 비트(18)에 대해 제1 논리 연산을 수행하고, 제1 논리 연산의 결과와 키 보호 활성화 비트(14)에 대해 제2 논리 연산을 수행하여, 그 값에 따라 OTP 메모리(10)의 키 프로그램 영역(12)에 저장된 키를 키 레지스터(110)에 로드할 지 여부를 결정할 수 있다. 즉, 키 보호 제어 로직(100)은 보안 부팅 기능과 디버그 포트 보호 기능이 모두 활성화되었음을 확인하고, 보안 소프트웨어가 키에 접근할 수 있도록 허용할 수 있다.
본 발명의 몇몇의 실시예에서, 디버그 포트 보호 기능은, 예를 들어, 디버그 포트를 영구적으로 차단할 수도 있고, 비영구적으로 차단할 수도 있다. 디버그 포트 보호 기능은 디버그 포트를 비영구적으로 차단하는 경우, 보안 인증(secure JTAG)을 비롯한 사용자 인증을 적용할 수 있다.
본 발명의 몇몇의 실시예에서, 제1 논리 연산은 AND 논리 연산을 포함하고, 제2 논리 연산은 OR 논리 연산을 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
예를 들어, 보안 부팅 활성화 비트(16) 및 디버깅 포트 보호 활성화 비트(18)가 제2 값(예컨대 1)이므로, 키 보호 제어 로직(100)은 이에 대해 AND 논리 연산을 수행한다.
다음으로 키 보호 제어 로직(100)은 AND 논리 연산의 결과(예컨대 1)와 제2 값(예컨대 1)을 갖는 키 보호 활성화 비트(14)의 반전된 값에 대해 OR 논리 연산을 수행한다.
다음으로 키 보호 제어 로직(100)은 OR 논리 연산의 결과(예컨대 1)에 따라 제2 값(예컨대 1)을 갖는 출력 신호를 키 레지스터(110)에 제공하여 키 레지스터(110)가 키 프로그램 영역(12)에 저장된 키를 노출하도록 설정한다.
이에 따라 도 5의 OTP 메모리(10)의 키 프로그램 영역(12)에 프로그램된 키 "0x123456789ABC..."가 키 레지스터(110)에는 로드되었음을 확인할 수 있다. 즉, 본 실시예는 키에 대한 보호가 비활성화되어 있으나 이미 보안 기능이 작동하고 있는 경우를 나타낸다.
이와 같은 하드웨어로서 구현되는 키 보호 제어 로직(100)에 의한 키 보호 방식에 따라, 반도체 장치(1)는 허용된 소프트웨어만을 실행시키고 디버그 포트(60)의 사용을 제한할 수 있어, OTP 메모리(10)에 저장된 키를 안전하게 보호할 수 있다.
도 6은 본 발명의 일 실시예에 따른 반도체 장치를 설명하기 위한 개략도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 반도체 장치(1)에서, OTP 메모리(10)의 키 보호 활성화 비트(14), 보안 부팅 활성화 비트(16) 및 디버깅 포트 보호 활성화 비트(18)뿐 아니라, 키 보호 활성화 레지스터(120) 역시 제2 값(예컨대 1)으로 프로그램될 수 있다.
이 경우, 보안 기능 중 디버그 포트 보호 기능이 활성화되었음에도 불구하고, 키 보호 활성화 레지스터(120)가 프로그램된 경우, 키 보호 제어 로직(100)은 OTP 메모리(10)의 키 프로그램 영역(12)에 저장된 키를 키 레지스터(110)에 로드하지 않는다.
특히, 키 보호 제어 로직(100)은, 보안 부팅 활성화 비트(16) 및 상기 디버깅 포트 보호 활성화 비트(18)에 대해 제1 논리 연산을 수행하고, 제1 논리 연산의 결과와 키 보호 활성화 비트(14)에 대해 제2 논리 연산을 수행하고, 제2 논리 연산의 결과와 키 보호 활성화 레지스터(120)로부터 제공된 설정 값에 대해 제3 논리 연산을 수행하여, 그 값에 따라 OTP 메모리(10)의 키 프로그램 영역(12)에 저장된 키를 키 레지스터(110)에 로드할 지 여부를 결정할 수 있다. 즉, 키 보호 제어 로직(100)은 보안 부팅 기능과 디버그 포트 보호 기능이 모두 활성화되었음을 확인한 후에도, 필요에 따라 보안 소프트웨어가 키에 접근하는 것을 차단할 수 있다.
본 발명의 몇몇의 실시예에서, 제1 논리 연산 및 제3 논리 연산은 AND 논리 연산을 포함하고, 제2 논리 연산은 OR 논리 연산을 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
예를 들어, 보안 부팅 활성화 비트(16) 및 디버깅 포트 보호 활성화 비트(18)가 제2 값(예컨대 1)이므로, 키 보호 제어 로직(100)은 이에 대해 AND 논리 연산을 수행한다.
다음으로 키 보호 제어 로직(100)은 AND 논리 연산의 결과(예컨대 1)와 제2 값(예컨대 1)을 갖는 키 보호 활성화 비트(14)의 반전된 값에 대해 OR 논리 연산을 수행한다.
다음으로 키 보호 제어 로직(100)은 OR 논리 연산의 결과(예컨대 1)와 제2 값(예컨대 1)을 갖는 키 보호 활성화 비트(14)의 반전된 값에 대해 AND 논리 연산을 수행한다.
다음으로 키 보호 제어 로직(100)은 AND 논리 연산의 결과(예컨대 0)에 따라 제1 값(예컨대 0)을 갖는 출력 신호를 키 레지스터(110)에 제공하여 키 레지스터(110)가 키 프로그램 영역(12)에 저장된 키를 노출하지 않도록 설정한다.
이에 따라 도 6의 OTP 메모리(10)의 키 프로그램 영역(12)에 프로그램된 키 "0x123456789ABC..."가 키 레지스터(110)에는 로드되지 않았음을 확인할 수 있다. 즉, 본 실시예는 보안 기능이 작동하고 있더라도 필요에 따라 키에 대한 보호가 활성화된 경우를 나타낸다.
본 발명의 몇몇의 실시예에서, 키 보호 활성화 레지스터(120)는 반도체 장치(1)의 동작 중 1회에 한해 변경 가능하도록 구현된다. 다시 말해서, 키 보호 활성화 레지스터(120)에 저장된 설정 값은, 반도체 장치(1)가 재부팅되기 전에는 반도체 장치(1)의 동작 중 1회에 한해 변경 가능하다.
이와 같은 하드웨어로서 구현되는 키 보호 제어 로직(100)에 의한 키 보호 방식에 따라, 예컨대 반도체 장치(1)가 부팅 시 OTP 메모리(10)에 저장된 키를 사용한 후, 반도체 장치(1)의 리셋(reset) 전까지 더 이상 키를 사용하지 않기 위해 키에 대한 보호를 활성화함으로써, OTP 메모리(10)에 저장된 키의 보호 수준을 더 높일 수 있다.
도 7은 본 발명의 일 실시예에 따른 반도체 장치를 설명하기 위한 개략도이다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 반도체 장치(1)에서, OTP 메모리(10)의 키 보호 활성화 비트(14), 보안 부팅 활성화 비트(16) 및 디버깅 포트 보호 활성화 비트(18)는 모두 디폴트 값인 제1 값(예컨대 0)이다. 즉, 도 3의 키에 대한 보호가 비활성화되어 있는 경우와 마찬가지의 상태이다.
본 실시예에서, OTP 메모리(10)의 키 보호 활성화 비트(14), 보안 부팅 활성화 비트(16) 및 디버깅 포트 보호 활성화 비트(18)가 프로그램되지 않더라도, 사용자의 필요에 따라, 키 보호 활성화 레지스터(120) 역시 제2 값(예컨대 1)으로 프로그램함으로써 키에 대한 보호를 활성화할 수도 있다.
앞서 설명한 바와 같이, 키 보호 활성화 비트(14), 보안 부팅 활성화 비트(16) 및 디버깅 포트 보호 활성화 비트(18)로부터 키에 대한 보호 여부를 결정하는 키 보호 제어 로직(100)은 하드웨어 요소인 반면, 키 보호 활성화 레지스터(120)는 보안 소프트웨어에 의해 접근되어 그 내용이 변경되는 요소이다.
다시 말해, 반도체 장치(1)에 대한 보안 기능과 무관하게, 보안 소프트웨어 고유의 정책에 따라 키에 대한 보호를 활성화할 수 있다.
본 발명의 몇몇의 실시예에서, 키 보호 활성화 레지스터(120)는 반도체 장치(1)의 동작 중 1회에 한해 변경 가능하도록 구현된다. 다시 말해서, 키 보호 활성화 레지스터(120)에 저장된 설정 값은, 반도체 장치(1)가 재부팅되기 전에는 반도체 장치(1)의 동작 중 1회에 한해 변경 가능하다.
이와 같은 보안 소프트웨어의 제어 하에 키 보호 여부를 결정할 수도 있어, 예컨대 사용자가 특정 시점에만 OTP 메모리(10)에 저장된 키를 사용한 후, 반도체 장치(1)의 리셋 전까지 더 이상 키를 사용하지 않기 위해 키에 대한 보호를 활성화함으로써, OTP 메모리(10)에 저장된 키를 안전하게 보호할 수 있다.
도 8은 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 개략도이다.
도 8을 참조하면, 본 발명의 일 실시예에 따른 반도체 장치(1)의 동작 방법은 OTP 메모리(10)의 키 프로그램 영역(12)에 어플리케이션 프로세서(5)가 보안 소프트웨어를 실행하기 위해 사용될 키를 퓨징(S801)한다.
다음으로, 상기 방법은 OTP 메모리(100)의 키 보호 설정 영역(14, 16, 18) 중 키 보호 활성화 비트(14)를 퓨징(S803)한다. 이에 따라 키에 대한 보호를 활성화할 수 있다.
다음으로, 상기 방법은 OTP 메모리(100)의 키 보호 설정 영역(14, 16, 18) 중 보안 부팅 활성화 비트(16) 및 디버깅 포트 보호 활성화 비트(18)를 퓨징(S805)한다. 이에 따라 보안 부팅 기능과 디버그 포트 보호 기능이 모두 활성화된 경우, 보안 소프트웨어가 키에 접근할 수 있도록 허용할 수 있다.
도 9는 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 개략도이다.
도 9를 참조하면, 본 발명의 일 실시예에 따른 반도체 장치(1)의 동작 방법은 OTP 메모리(10)의 키 프로그램 영역(12)에 어플리케이션 프로세서(5)가 보안 소프트웨어를 실행하기 위해 사용될 키를 퓨징(S901)한다.
다음으로, 상기 방법은 OTP 메모리(100)의 키 보호 설정 영역(14, 16, 18) 중 키 보호 활성화 비트(14)를 퓨징(S903)한다. 이에 따라 키에 대한 보호를 활성화할 수 있다.
다음으로, 상기 방법은 OTP 메모리(100)의 키 보호 설정 영역(14, 16, 18) 중 보안 부팅 활성화 비트(16) 및 디버깅 포트 보호 활성화 비트(18)를 퓨징(S905)한다. 이에 따라 보안 부팅 기능과 디버그 포트 보호 기능이 모두 활성화된 경우, 보안 소프트웨어가 키에 접근할 수 있도록 허용할 수 있다.
다음으로, 상기 방법은 보안 소프트웨어의 제어 하에, 키 보호 활성화 레지스터(120)를 프로그램(S907)한다. 이에 따라 보안 부팅 기능과 디버그 포트 보호 기능이 모두 활성화되었음을 확인한 후에도, 필요에 따라 보안 소프트웨어가 키에 접근하는 것을 차단할 수 있다.
도 10은 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 개략도이다.
도 10을 참조하면, 본 발명의 일 실시예에 따른 반도체 장치(1)의 동작 방법은 OTP 메모리(10)의 키 프로그램 영역(12)에 어플리케이션 프로세서(5)가 보안 소프트웨어를 실행하기 위해 사용될 키를 퓨징(S1001)한다.
다음으로, 상기 방법은 보안 소프트웨어의 제어 하에, 키 보호 활성화 레지스터(120)를 프로그램(S1003)한다. 이에 따라 반도체 장치(1)에 대한 보안 기능과 무관하게, 보안 소프트웨어 고유의 정책에 따라 키에 대한 보호를 활성화할 수 있다.
특히, 도 8 내지 도 10에 있어서, 상기 방법은, OTP 메모리(10)의 키 보호 설정 영역(14, 16, 18)으로부터 하나 이상의 설정 값을 제공받고, 상기 하나 이상의 설정 값에 대해 하나 이상의 논리 연산을 수행하고, 상기 하나 이상의 논리 연산을 수행한 결과에 따라, OTP 메모리(10)에 저장된 키를 키 레지스터(110)에 로드할 지 여부를 결정한다.
이에 대한 구체적인 방법은 도 3 내지 도 7에 걸쳐 상세하게 설명한 바 있으므로, 중복되는 설명은 생략하도록 한다.
이제까지 설명한 본 발명의 다양한 실시예에 따른 키 보호 제어 로직(100)에 의한 키 보호 방식에 따라, 소프트웨어, 나아가 보안 소프트웨어 조차도 키를 리드하는 것을 원천적으로 차단할 수 있다.
나아가, 상기 방식에 따라 반도체 장치(1)는 허용된 소프트웨어만을 실행시키고 디버그 포트(60)의 사용을 제한할 수 있어, OTP 메모리(10)에 저장된 키를 안전하게 보호할 수 있다.
나아가, 예컨대 반도체 장치(1)가 부팅 시 OTP 메모리(10)에 저장된 키를 사용한 후, 반도체 장치(1)의 리셋 전까지 더 이상 키를 사용하지 않기 위해 키에 대한 보호를 활성화함으로써, OTP 메모리(10)에 저장된 키의 보호 수준을 더 높일 수 있다.
나아가, 예컨대 사용자가 특정 시점에만 OTP 메모리(10)에 저장된 키를 사용한 후, 반도체 장치(1)의 리셋 전까지 더 이상 키를 사용하지 않기 위해 키에 대한 보호를 활성화함으로써, OTP 메모리(10)에 저장된 키를 안전하게 보호할 수 있다.
결국 키가 칩에 퓨징되는 제조 공정이 완료된 후, 칩이 다른 곳으로 유통되거나 상기 칩을 이용하여 제품 개발이 되는 경우에, 보안 부팅 기능 및 디버그 포트 보호 기능 등을 비롯한 보안 기능이 활성화될 때까지, 허가되지 않은 제3자가 칩에 퓨징되어 있는 키를 유출하는 것을 효과적으로 방지할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1: 반도체 장치 5: 어플리케이션 프로세서
10: OTP 메모리 12: 키 프로그램 영역
14: 키 보호 활성화 비트 16: 보안 부팅 활성화 비트
18: 디버깅 포트 보호 활성화 비트 20: OTP 메모리 컨트롤러
30: 접근 제어기 40: ROM
50: 디버그 포트 보호 로직 60: 디버그 포트
100: 키 보호 제어 로직 110: 키 레지스터
120: 키 보호 활성화 레지스터

Claims (20)

  1. 키(key)를 저장하는 키 프로그램 영역 및 상기 키 프로그램 영역에 저장된 상기 키를 보호하기 위한 설정 값이 프로그램되는 키 보호 설정 영역을 포함하는 OTP 메모리(One-Time Programmable Memory);
    상기 OTP 메모리에 저장된 상기 키를 로드(load)하여 보안 소프트웨어(secure software)에 제공하는 키 레지스터(Key Register); 및
    상기 OTP 메모리의 상기 키 보호 설정 영역의 프로그램 여부에 따라, 상기 OTP 메모리에 저장된 상기 키를 상기 키 레지스터에 로드하는 키 보호 제어 로직(Key Protection Control Logic)을 포함하는 반도체 장치.
  2. 제1항에 있어서,
    상기 키 보호 설정 영역은 키 보호 활성화(Key Protection Enable) 비트를 포함하고,
    상기 키 보호 활성화 비트가 프로그램된 경우, 상기 키 보호 제어 로직은 상기 OTP 메모리에 저장된 상기 키를 상기 키 레지스터에 로드하지 않는 반도체 장치.
  3. 제2항에 있어서,
    상기 키 보호 설정 영역은 보안 부팅 활성화(Secure Boot Enable) 비트를 포함하고,
    부팅(booting) 시 실행되는 바이너리(binary)에 대한 서명 검증을 수행하되, 상기 보안 부팅 활성화 비트의 값에 따라 상기 서명 검증을 수행 또는 비수행하는 ROM(Read-Only Memory)을 더 포함하는 반도체 장치.
  4. 제3항에 있어서,
    상기 키 보호 활성화 비트 및 상기 보안 부팅 활성화 비트가 프로그램된 경우, 상기 키 보호 제어 로직은 상기 OTP 메모리에 저장된 상기 키를 상기 키 레지스터에 로드하는 반도체 장치.
  5. 제2항에 있어서,
    상기 키 보호 설정 영역은 디버깅 포트 보호 활성화(Debug Port Protection Enable) 비트를 포함하고,
    사용자에게 디버그 인터페이스(debug interface)를 제공하되, 상기 디버깅 포트 보호 활성화 비트의 값에 따라 상기 사용자의 접근을 허용 또는 비허용하는 디버그 포트를 더 포함하는 반도체 장치.
  6. 제5항에 있어서,
    상기 키 보호 활성화 비트 및 상기 디버깅 포트 보호 활성화 비트가 프로그램된 경우, 상기 키 보호 제어 로직은 상기 OTP 메모리에 저장된 상기 키를 상기 키 레지스터에 로드하는 반도체 장치.
  7. 제5항에 있어서,
    상기 키 레지스터는 상기 디버그 포트를 통한 접근이 불가능한 반도체 장치.
  8. 제1항에 있어서,
    상기 보안 소프트웨어에 의해 설정 값이 기록되는 키 보호 활성화 레지스터(Key Protection Enable Register)를 더 포함하고,
    상기 키 보호 활성화 레지스터가 프로그램된 경우, 상기 키 보호 제어 로직은 상기 OTP 메모리에 저장된 상기 키를 상기 키 레지스터에 로드하지 않는 반도체 장치.
  9. 제8항에 있어서,
    상기 키 보호 활성화 레지스터에 저장된 설정 값은, 상기 반도체 장치의 동작 중 1회에 한해 변경 가능한 반도체 장치.
  10. 제1항에 있어서,
    상기 키 레지스터에 대한 비보안 소프트웨어(non-secure software)의 접근을 차단하는 접근 제어기(Access Controller)를 더 포함하는 반도체 장치.
  11. 키(key)를 저장하는 키 프로그램 영역 및 상기 키 프로그램 영역에 저장된 상기 키를 보호하기 위한 설정 값이 저장되는 키 보호 설정 영역을 포함하는 OTP 메모리(One-Time Programmable Memory);
    상기 OTP 메모리에 저장된 상기 키를 로드(load)하여 보안 소프트웨어(secure software)에 제공하는 키 레지스터(Key Register); 및
    상기 OTP 메모리의 상기 키 보호 설정 영역에 저장된 설정 값에 대해 하나 이상의 논리 연산을 수행하여, 그 결과 값에 따라 상기 OTP 메모리에 저장된 상기 키를 상기 키 레지스터에 로드할 지 여부를 결정하는 키 보호 제어 로직(Key Protection Control Logic)을 포함하는 반도체 장치.
  12. 제1항에 있어서,
    상기 키 보호 설정 영역은 키 보호 활성화(Key Protection Enable) 비트를 포함하고,
    상기 키 보호 활성화 비트가 제1 값인 경우, 상기 키 보호 제어 로직은 상기 OTP 메모리에 저장된 상기 키를 상기 키 레지스터에 로드하는 것으로 결정하고,
    상기 키 보호 활성화 비트가 제2 값인 경우, 상기 키 보호 제어 로직은 상기 OTP 메모리에 저장된 상기 키를 상기 키 레지스터에 로드하지 않는 것으로 결정하는 반도체 장치.
  13. 제12항에 있어서,
    상기 키 보호 설정 영역은 보안 부팅 활성화(Secure Boot Enable) 비트 및 디버깅 포트 보호 활성화(Debug Port Protection Enable) 비트를 포함하고,
    상기 반도체 장치는,
    부팅(booting) 시 실행되는 바이너리(binary)에 대한 서명 검증을 수행하되, 상기 보안 부팅 활성화 비트의 값에 따라 상기 서명 검증을 수행 또는 비수행하는 ROM(Read-Only Memory)와,
    사용자에게 디버그 인터페이스(debug interface)를 제공하되, 상기 디버깅 포트 보호 활성화 비트의 값에 따라 상기 사용자의 접근을 허용 또는 비허용하는 디버그 포트를 더 포함하는 반도체 장치.
  14. 제13항에 있어서,
    상기 키 보호 제어 로직은, 보안 부팅 활성화 비트 및 상기 디버깅 포트 보호 활성화 비트에 대해 제1 논리 연산을 수행하고, 상기 제1 논리 연산의 결과와 상기 키 보호 활성화 비트에 대해 제2 논리 연산을 수행하여, 그 값에 따라 상기 OTP 메모리에 저장된 상기 키를 상기 키 레지스터에 로드할 지 여부를 결정하는 반도체 장치.
  15. 제14항에 있어서,
    상기 보안 소프트웨어에 의해 설정 값이 기록되는 키 보호 활성화 레지스터(Key Protection Enable Register)를 더 포함하고,
    상기 키 보호 제어 로직은, 상기 제2 논리 연산의 결과와 상기 키 보호 활성화 레지스터에 기록된 값에 대해 제3 논리 연산을 수행하여, 그 값에 따라 상기 OTP 메모리에 저장된 상기 키를 상기 키 레지스터에 로드할 지 여부를 결정하는 반도체 장치.
  16. 제15항에 있어서,
    상기 키 보호 활성화 레지스터에 저장된 설정 값은, 상기 반도체 장치의 동작 중 1회에 한해 변경 가능한 반도체 장치.
  17. 제13항에 있어서,
    상기 키 레지스터는 상기 디버그 포트를 통한 접근이 불가능한 반도체 장치.
  18. 제11항에 있어서,
    상기 보안 소프트웨어에 의해 설정 값이 기록되는 키 보호 활성화 레지스터(Key Protection Enable Register)를 더 포함하고,
    상기 키 보호 활성화 레지스터가 프로그램된 경우, 상기 키 보호 제어 로직은 상기 OTP 메모리에 저장된 상기 키를 상기 키 레지스터에 로드하지 않는 반도체 장치.
  19. 제18항에 있어서,
    상기 키 보호 활성화 레지스터에 저장된 설정 값은, 상기 반도체 장치의 동작 중 1회에 한해 변경 가능한 반도체 장치.
  20. 제11항에 있어서,
    상기 키 레지스터에 대한 비보안 소프트웨어(non-secure software)의 접근을 차단하는 접근 제어기(Access Controller)를 더 포함하는 반도체 장치.
KR1020180003456A 2018-01-10 2018-01-10 반도체 장치 및 반도체 장치의 동작 방법 KR102432451B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180003456A KR102432451B1 (ko) 2018-01-10 2018-01-10 반도체 장치 및 반도체 장치의 동작 방법
US16/106,267 US10923203B2 (en) 2018-01-10 2018-08-21 Semiconductor device and method of operating semiconductor device
CN201811258060.8A CN110020561B (zh) 2018-01-10 2018-10-26 半导体装置和操作半导体装置的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180003456A KR102432451B1 (ko) 2018-01-10 2018-01-10 반도체 장치 및 반도체 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20190085387A true KR20190085387A (ko) 2019-07-18
KR102432451B1 KR102432451B1 (ko) 2022-08-12

Family

ID=67140188

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180003456A KR102432451B1 (ko) 2018-01-10 2018-01-10 반도체 장치 및 반도체 장치의 동작 방법

Country Status (3)

Country Link
US (1) US10923203B2 (ko)
KR (1) KR102432451B1 (ko)
CN (1) CN110020561B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468296B (zh) * 2020-11-26 2022-10-14 湖南国科微电子股份有限公司 一种密钥编程方法、系统、电子设备及存储介质
US20230083979A1 (en) * 2021-09-10 2023-03-16 Ampere Computing Llc Method and system for secure boot and rma intervention
CN114785512A (zh) * 2022-03-03 2022-07-22 瑞芯微电子股份有限公司 处理安全密钥的方法和装置及电子设备
US12008107B2 (en) * 2022-06-27 2024-06-11 Nuvoton Technology Corporation Chip and method capable of authenticating off-chip debug firmware program and debug user

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080148001A1 (en) * 2006-12-14 2008-06-19 Telefonaktiebolaget L M Ericsson (Publ) Virtual Secure On-Chip One Time Programming
US20130163764A1 (en) * 2011-03-28 2013-06-27 Nxp B.V. Secure dynamic on chip key programming
KR20140019599A (ko) * 2012-08-06 2014-02-17 삼성전자주식회사 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US20160078251A1 (en) * 2014-09-16 2016-03-17 Freescale Semiconductor, Inc. Key storage and revocation in a secure memory system

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3734408B2 (ja) * 2000-07-03 2006-01-11 シャープ株式会社 半導体記憶装置
US6996692B2 (en) * 2002-04-17 2006-02-07 Matsushita Electric Industrial Co., Ltd. Nonvolatile semiconductor memory device and method for providing security for the same
KR100636150B1 (ko) * 2004-07-01 2006-10-19 삼성전자주식회사 암호화 모듈을 포함하는 멀티미디어 장치
US7725738B1 (en) * 2005-01-25 2010-05-25 Altera Corporation FPGA configuration bitstream protection using multiple keys
US7757295B1 (en) * 2005-02-09 2010-07-13 Lsi Corporation Methods and structure for serially controlled chip security
ATE499658T1 (de) * 2005-08-03 2011-03-15 St Ericsson Sa Sicheres endgerät, routine und verfahren zum schützen eines geheimen schlüssels
US20070094507A1 (en) * 2005-10-21 2007-04-26 Rush Frederick A Method and system for securing a wireless communication apparatus
CN101174942A (zh) * 2006-10-31 2008-05-07 华为技术有限公司 一种实现密钥保护的方法及系统
US7778074B2 (en) * 2007-03-23 2010-08-17 Sigmatel, Inc. System and method to control one time programmable memory
US8594333B2 (en) * 2008-09-05 2013-11-26 Vixs Systems, Inc Secure key access with one-time programmable memory and applications thereof
US9501429B2 (en) * 2008-09-05 2016-11-22 Vixs Systems Inc. Dynamic key and rule storage protection
US8781127B2 (en) * 2008-09-05 2014-07-15 Vixs Systems, Inc. Device with privileged memory and applications thereof
US8644499B2 (en) * 2009-09-14 2014-02-04 Broadcom Corporation Method and system for securely protecting a semiconductor chip without compromising test and debug capabilities
KR101061313B1 (ko) * 2010-01-28 2011-08-31 주식회사 하이닉스반도체 보안 제어장치를 포함하는 반도체 메모리 장치
US9019791B2 (en) * 2010-11-03 2015-04-28 Shine C. Chung Low-pin-count non-volatile memory interface for 3D IC
KR20130008939A (ko) * 2011-07-13 2013-01-23 삼성전자주식회사 휴대 단말기에서 단말 고유 정보의 복제를 방지하는 장치 및 방법
CN104025500B (zh) * 2011-12-29 2017-07-25 英特尔公司 使用在物理上不可克隆的函数的安全密钥存储
CN104350500B (zh) * 2012-05-30 2017-04-12 飞思卡尔半导体公司 半导体装置以及制造半导体装置的方法
KR20140073384A (ko) * 2012-12-06 2014-06-16 삼성전자주식회사 보안 부팅을 수행하는 칩 시스템과 이를 이용하는 화상형성장치 및 그 보안 부팅 방법
US20140164753A1 (en) * 2012-12-06 2014-06-12 Samsung Electronics Co., Ltd System on chip for performing secure boot, image forming apparatus using the same, and method thereof
US9390246B2 (en) 2013-09-25 2016-07-12 Intel Corporation Creating secure original equipment manufacturer (OEM) identification
KR102104564B1 (ko) * 2013-11-21 2020-04-24 삼성전자주식회사 디지털 상관 이중 샘플링 회로 및 이를 포함하는 이미지 센서
JP2015176501A (ja) * 2014-03-17 2015-10-05 株式会社リコー 情報処理プログラム、情報処理装置、および画像処理システム
US10353638B2 (en) * 2014-11-18 2019-07-16 Microsemi SoC Corporation Security method and apparatus to prevent replay of external memory data to integrated circuits having only one-time programmable non-volatile memory
TW201633207A (zh) * 2014-12-12 2016-09-16 納格維遜股份有限公司 裝置金鑰保護
US20170053716A1 (en) * 2015-08-20 2017-02-23 Samsung Electronics Co., Ltd. Otp memory including test cell array and method of testing the same
US10521618B1 (en) * 2015-10-20 2019-12-31 Marvell International Ltd. Methods and apparatus for secure root key provisioning
US10302857B2 (en) * 2017-05-03 2019-05-28 Corning Incorporated Low bend loss optical fiber with a germania doped core

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080148001A1 (en) * 2006-12-14 2008-06-19 Telefonaktiebolaget L M Ericsson (Publ) Virtual Secure On-Chip One Time Programming
US20130163764A1 (en) * 2011-03-28 2013-06-27 Nxp B.V. Secure dynamic on chip key programming
KR20140019599A (ko) * 2012-08-06 2014-02-17 삼성전자주식회사 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US20160078251A1 (en) * 2014-09-16 2016-03-17 Freescale Semiconductor, Inc. Key storage and revocation in a secure memory system

Also Published As

Publication number Publication date
CN110020561B (zh) 2023-12-15
US20190214102A1 (en) 2019-07-11
US10923203B2 (en) 2021-02-16
KR102432451B1 (ko) 2022-08-12
CN110020561A (zh) 2019-07-16

Similar Documents

Publication Publication Date Title
JP5114617B2 (ja) 秘密鍵を保護する、セキュア端末、プログラム、および方法
US9389793B2 (en) Trusted execution and access protection for embedded memory
KR100294829B1 (ko) 플래시 메모리를 보호하는 방법 및 장치
TWI581099B (zh) 積體電路裝置及控制積體電路裝置上記憶體存取的方法
US20150058979A1 (en) Processing system
KR100929870B1 (ko) 컴퓨터 시스템의 바이오스 보안 유지방법
US20030140238A1 (en) Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory
KR20190085387A (ko) 반도체 장치 및 반도체 장치의 동작 방법
CN109918919A (zh) 认证变量的管理
US9355276B2 (en) Processing system
US20070237325A1 (en) Method and apparatus to improve security of cryptographic systems
JP2014513348A (ja) 統合拡張ファームウェアインタフェース準拠計算装置内のシステムセキュリティデータベースおよびファームウェア格納部を変更する要求を処理するシステムおよび方法
KR20060135467A (ko) 보호된 비휘발성 메모리를 사용하는 시스템 및 방법
JP4256859B2 (ja) 半導体記憶装置
JP2017033149A (ja) 情報処理装置、コントローラ、及び、情報処理装置の制御方法
TW201821998A (zh) 記憶體保護邏輯
US11544413B2 (en) Cryptographic key distribution
WO2020063975A1 (zh) 一种非易失性存储器的分区保护方法及装置
JP6652669B2 (ja) 情報処理装置及び情報処理装置の制御方法
JP2005535953A (ja) セキュアモードまたは非セキュアモードでプログラムを実行するコンピュータアーキテクチャ
CN114785512A (zh) 处理安全密钥的方法和装置及电子设备
CN114968117A (zh) 存储器保护系统
JP2000322319A (ja) 半導体記憶装置用セキュリティ回路およびセキュリティシステム

Legal Events

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