KR101727678B1 - Otp(one-time programmable) 집적 회로 보안 - Google Patents

Otp(one-time programmable) 집적 회로 보안 Download PDF

Info

Publication number
KR101727678B1
KR101727678B1 KR1020157021541A KR20157021541A KR101727678B1 KR 101727678 B1 KR101727678 B1 KR 101727678B1 KR 1020157021541 A KR1020157021541 A KR 1020157021541A KR 20157021541 A KR20157021541 A KR 20157021541A KR 101727678 B1 KR101727678 B1 KR 101727678B1
Authority
KR
South Korea
Prior art keywords
otp memory
integrated circuit
value
memory array
otp
Prior art date
Application number
KR1020157021541A
Other languages
English (en)
Other versions
KR20150106431A (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 퀄컴 인코포레이티드
Publication of KR20150106431A publication Critical patent/KR20150106431A/ko
Application granted granted Critical
Publication of KR101727678B1 publication Critical patent/KR101727678B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • 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/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
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

OTP(one-time programmable) 집적 회로 보안이 설명된다. 집적 회로의 메모리 자산들(memory assets)을 보호하기 위한 방법(300)의 예는, 다수의 OTP 메모리 어레이들(124, 128)의 값들을 샘플링하는 단계(320) 및 각각의 OTP 메모리 어레이의 샘플링된 값을, 각각의 다른 OTP 메모리 어레이의 샘플링된 값 및 프로그래밍되지 않은 OTP 메모리 어레이 값과 비교하는 단계(340)를 포함한다. 방법은 비교된 샘플링된 값들에 기초하여, 집적 회로 성능 장애가 발생했는지 결정하는 단계(360), 집적 회로를 부팅하는 단계(370), 및 장애 발생 결정에 의해 결정된, 메모리(184, 188)에 대한 액세스를 이용하여 집적 회로를 동작시키는 단계(380)를 더 포함한다.

Description

OTP(ONE-TIME PROGRAMMABLE) 집적 회로 보안{ONE-TIME PROGRAMMABLE INTEGRATED CIRCUIT SECURITY}
[0001] 집적 회로(IC)를 포함하는 전자 시스템들은 종종, 사용자가 비밀을 유지하기를 원하는 또는 비밀을 유지할 필요가 있는 프로비저닝된 데이터(provisioned data)를 저장하기 위해 그리고 해커 공격들로부터 보호하기 위해, IC의 보안 메모리(secure memory), 예를 들어 보안 RAM(random access memory)을 활용한다. 일반적으로, 프로비저닝된 데이터는 제조 후에 IC 메모리에 저장된 임의의 데이터일 수 있다. 보안 메모리에 저장된 프로비저닝된 데이터는 예를 들어, 이에 한정되는 것은 아니지만, 코드들, 키들, 패스워드들, 계정 정보(account information), 개인 정보, 사유 정보(proprietary information), 및 연락처 정보(contact information)를 포함할 수 있다. 예시적인 전자 시스템들 또는 엔드 디바이스(end device)들은 셋톱 박스들, 개인용 컴퓨터들, 랩톱 컴퓨터들, 핸드-헬드 디바이스들, 태블릿들, 및 모뎀들을 포함한다. 보안 메모리에 저장된 이러한 프로비저닝된 데이터는, 보안 메모리에 대한 비인가 액세스(unauthorized access)를 획득하도록 설계된 해커 공격들에 취약할 수 있다. 보안 메모리의 프로비저닝된 데이터를 보호하기 위해, 시스템-온-칩(SOC) IC들을 포함할 수 있는 IC들은, IC가 해커 공격을 받았는지의 여부를 결정하기 위해 하드웨어 임베디드 보안 시퀀스(hardware embedded security sequence)들을 활용할 수 있는 보안 시스템을 포함할 수 있다. IC가 공격받은 경우, 보안 시스템은, IC가, 보안 메모리 및 보안 메모리에 저장된 프로비저닝된 데이터에 대한 액세스를 차단(block) 또는 제한하는 것을 가능하게 할 수 있다.
[0002] 하드웨어 임베디드 보안 시퀀스들은 OTP(one-time programmable) 메모리를 이용하여 구현될 수 있다. OTP 메모리는 적어도 하나의 OTP 메모리 디바이스, 및 프로그램가능 디바이스(programmable device)의 프로그래밍된 상태를 샘플링 및 캡처링하는 샘플링 및 캡처링 회로소자를 포함하는(그러나, 이에 한정되지 않음) 임의의 연관된 전자 회로소자를 포함한다. 다수의 OTP 메모리 디바이스들 및 연관된 전자 회로소자는 OTP 메모리 어레이를 구성한다. OTP 메모리 디바이스는 1회 프로그래밍될 수 있고, 재프로그래밍될 수 없다. OTP 메모리 디바이스들의 예들은 퓨즈들 및 앤티-퓨즈(anti-fuse)들이다.
[0003] 예시적인 퓨즈 OTP 메모리 어레이에서, 어레이의 각각의 퓨즈 디바이스는 2개의 상태들 중 하나의 상태로 존재할 수 있다. 초기 프로그래밍되지 않은 상태에서, 퓨즈 디바이스는 전류의 전도를 허용하는 전기 연결의 라인으로서 기능할 수 있다. 프로그래밍 전압 또는 전류의 인가시, 각각의 퓨즈 디바이스는 프로그래밍된 상태로 변환될 수 있고, 프로그래밍된 상태에서 퓨즈 디바이스는 퓨즈를 통하는 전류의 전도를 제한하는 개방 회로로서 기능할 수 있다. 프로그래밍 전압 또는 전류는 퓨즈를 구성하는 디바이스에 의존한다. 예를 들어, 퓨즈가 트랜지스터에 의해 형성되는 경우, 프로그래밍 전압은 트랜지스터의 동작 전압보다 다소 더 높은 전압일 수 있다. 프로그래밍 전압은 퓨즈 디바이스의 전기적 특성들 및/또는 퓨즈 디바이스의 구성 재료(constituent material)들을 영구적으로 변경할 수 있다. 어레이의 개별적인 퓨즈 디바이스들을 선택적으로 프로그래밍함으로써 또는 "버닝(burning)"함으로써, 값이 퓨즈 OTP 메모리 어레이에 프로그래밍될 수 있다.
[0004] 퓨즈 OTP 메모리 어레이의 퓨즈 디바이스들의 상태의 리드아웃(readout) 또는 샘플링 동안, 각각의 퓨즈는 논리값 "0" 또는 "1"에 대응할 수 있고, 이는 연관된 전자 회로소자에 의해 샘플링 및 캡처링될 수 있다. 예를 들어, 프로그래밍되지 않은 퓨즈는 논리값 "0"에 대응할 수 있고, 프로그래밍된 퓨즈는 논리값 "1"에 대응할 수 있다. 함께 고려하면, 어레이의 프로그래밍된 및 프로그래밍되지 않은 퓨즈 디바이스들의 대응하는 논리값들은 어레이 값을 결정할 수 있다. 이러한 어레이 값은 하드웨어 임베디드 보안 시퀀스에 대응할 수 있다.
[0005] OTP 메모리 어레이를 포함하는 IC가 제조될 때, 프로그래밍되지 않은 OTP 메모리 어레이는 모든 프로그래밍되지 않은 디바이스들을 포함할 수 있다. 일반적으로, 프로그래밍되지 않은 OTP 메모리 어레이를 갖는 IC는 "버진 칩(virgin chip)"으로 지칭된다. 프로그래밍되지 않은 OTP 메모리 어레이의 프로그램가능 엘리먼트들 모두의 샘플링된 상태는 동일한 논리값에 대응할 수 있다. 예를 들어, 프로그래밍되지 않은 OTP 디바이스가 논리값 "0"에 대응할 수 있는 경우, 버진 칩의 OTP 메모리 어레이의 각각의 프로그램가능 디바이스의 샘플링된 상태는 "0"일 수 있다. 이러한 경우, 프로그래밍되지 않은 또는 버진 칩 OTP 메모리 어레이 값은 제로일 수 있다. 다른 예에서, 프로그래밍되지 않은 OTP 디바이스가 논리값 "1"에 대응할 수 있는 경우, 버진 칩의 OTP 메모리 어레이의 각각의 프로그램가능 디바이스의 샘플링된 상태는 "1"일 수 있다. 이러한 경우, 프로그래밍되지 않은 또는 버진 칩 OTP 메모리 어레이 값은 (2n-1)(예를 들어, 2의 n차 지수 마이너스 1)일 수 있으며, 여기서 지수 n은 OTP 메모리 어레이의 프로그램가능 디바이스들의 수와 동등한 비트들의 수이며; n은 1보다 더 큰 또는 1과 동등한 값을 가질 수 있다.
[0006] IC에 대한 해커 공격의 일 유형은 글리치 공격(glitch attack)으로 알려져 있다. 글리치 공격은, IC 성능의 장애를 생성할 수 있는, IC 동작 파라미터의 물리적 교란(physical disturbance)일 수 있으며, 이는 악의적으로 활용될 수 있다. 물리적 교란은, 예를 들어 동작 전압 변동들, 칩 온도 변화들, 인가되는 전기장들, 및 입사 전자기 방사(incident electromagnetic radiation)를 이용하여 구현될 수 있다. 글리치 공격으로부터 초래되는 예시적인 장애로서, 예를 들어 IC의 보안 메모리, 프로세싱 루틴(processing routine)들, 및/또는 임의의 다른 기능들, 기능 엘리먼트들 또는 양상들을 보호하도록 설계된 IC 보안 시스템들을 디스에이블 또는 바이패스하려는 시도로, 하드웨어 임베디드 보안 시퀀스가 스푸핑(spoof)될 수 있다.
[0007] OTP 메모리 어레이를 포함하는 IC에 대한 예시적인 글리치 공격에서, 칩의 물리적 컨디션이 변경될 수 있어서, 프로그램가능 디바이스 상태들의 샘플링동안, 각각의 프로그램가능 디바이스의 상태에 대응하는 논리값이, "0" 또는 "1"로서 모호하지 않게 해석(interpret)될 수 없다. 글리치 공격으로부터 초래되는 예시적인 장애로서, 시퀀스, 예를 들어 보안 시퀀스를 이용하여 프로그래밍된 OTP 메모리 어레이에 대한 샘플링된 OTP 메모리 어레이 값이, 프로그래밍된 시퀀스와 동등할 수 있기보다는 스푸핑된 값일 수 있다. 앞서의 예시적인 공격에서, OTP 메모리 어레이는 퓨즈 OTP 메모리 어레이, 앤티-퓨즈 OTP 메모리 어레이, 또는 임의의 다른 유형의 OTP 메모리 어레이 또는 디바이스일 수 있다.
[0008] 실시예에서, IC는, IC 성능에서 장애가 발생했는지 결정하기 위해, 샘플링된 OTP 메모리 어레이 값을 이용함으로써 보안 메모리의 프로비저닝된 데이터를 보호할 수 있다. 장애가 발생했다고 결정되는 경우, 보안 메모리에 대한 액세스는 제한 또는 차단될 수 있다. 결과적으로, 적어도 글리치 공격을 개시한 해커들에 의해, 보안 메모리의 프로비저닝된 데이터가 추후에 악용(misuse)될 수 있는 확률이 감소될 수 있다.
[0009] 본원에 따른, 집적 회로의 메모리 자산들(memory assets)을 보호하기 위한 방법의 예는, 다수의 OTP 메모리 어레이들 각각의 값을 샘플링하는 단계, 각각의 OTP 메모리 어레이의 샘플링된 값을, 각각의 다른 OTP 메모리 어레이의 샘플링된 값 및 프로그래밍되지 않은 OTP 메모리 어레이 값과 비교하는 단계, 비교된 샘플링된 값들에 기초하여, 집적 회로 성능 장애가 발생했는지 결정하는 단계, 집적 회로를 부팅하는 단계, 및 장애 발생 결정에 의해 결정된, 메모리에 대한 액세스를 이용하여 집적 회로를 동작시키는 단계를 포함한다.
[0010] 이러한 방법의 구현들은 다음의 특징들 중 하나 또는 둘 이상을 포함할 수 있다. 장애가 발생했는지 결정하는 단계는, 적어도 하나의 OTP 메모리 어레이의 샘플링된 값이 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등한 경우 및 각각의 OTP 메모리 어레이의 샘플링된 값이 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하지 않은 경우, 장애가 발생했음을 결정하는 단계를 포함할 수 있다. 장애가 발생했는지 결정하는 단계는, 각각의 OTP 메모리 어레이의 샘플링된 값이 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하고 각각의 OTP 메모리 어레이의 샘플링된 값이 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등하지 않은 경우, 장애가 발생하지 않았음을 결정하는 단계를 포함할 수 있다. 프로그래밍되지 않은 OTP 메모리 어레이 값은 제로일 수 있다. 프로그래밍되지 않은 OTP 메모리 어레이 값은 (2n-1)일 수 있고, 여기서 n은 비트들의 수일 수 있다.
[0011] 방법의 예시적인 구현은, 보안 신호의 표시를 결정하는 단계를 포함할 수 있다. 보안 신호는, 장애가 발생하지 않았다고 결정되는 경우, 보안 동작 모드(secure mode of operation)를 표시할 수 있다. 보안 신호는, 장애 발생이 발생했다고 결정되는 경우, 비-보안 동작 모드(non-secure mode of operation)를 표시할 수 있다. 장애가 발생했다고 결정되는 경우, 메모리에 대한 액세스는, 보안 메모리에 대한 제한된 액세스를 포함할 수 있다. 집적 회로를 부팅하는 단계는 장애 발생 결정에 의해 영향받지 않을 수 있다. 집적 회로는 시스템-온-칩(system-on-chip)일 수 있다.
[0012] 본원에 따른, 집적 회로의 메모리 자산들을 보호하기 위한 방법의 예는, 제 1 OTP 메모리 어레이의 값 및 제 2 OTP 메모리 어레이의 값을 샘플링하는 단계, 제 1 OTP 메모리 어레이 및 제 2 OTP 메모리 어레이의 샘플링된 값들을 서로 그리고 프로그래밍되지 않은 OTP 메모리 어레이 값과 비교하는 단계, 비교된 샘플링된 값들에 기초하여, 집적 회로 성능 장애가 발생했는지 결정하는 단계, 집적 회로를 부팅하는 단계, 및 장애 발생 결정에 의해 결정된, 메모리에 대한 액세스를 이용하여 집적 회로를 동작시키는 단계를 포함할 수 있다.
[0013] 이러한 방법의 구현은 다음의 특징들 중 하나 또는 둘 이상을 포함할 수 있다. 장애가 발생했는지 결정하는 단계는, 제 1 OTP 메모리 어레이의 샘플링된 값이 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등하거나, 제 2 OTP 메모리 어레이의 샘플링된 값이 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등하거나, 제 1 OTP 메모리 어레이 및 제 2 OTP 메모리 어레이 양쪽 모두의 샘플링된 값들이 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등한 경우, 장애가 발생했음을 결정하는 단계를 포함할 수 있다. 장애가 발생했는지 결정하는 단계는, 제 1 OTP 메모리 어레이의 샘플링된 값이 제 2 OTP 메모리 어레이의 샘플링된 값과 동등하지 않은 경우, 장애가 발생했음을 결정하는 단계를 포함할 수 있다. 장애가 발생했는지 결정하는 단계는, 제 1 OTP 메모리 어레이의 샘플링된 값이 제 2 OTP 메모리 어레이의 샘플링된 값과 동등하고, 제 1 OTP 메모리 어레이의 샘플링된 값이 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등하지 않고, 제 2 OTP 메모리 어레이의 샘플링된 값이 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등하지 않은 경우, 장애가 발생하지 않았음을 결정하는 단계를 포함할 수 있다. 프로그래밍되지 않은 OTP 메모리 어레이 값은 제로일 수 있다. 프로그래밍되지 않은 OTP 메모리 어레이 값은 (2n-1)일 수 있고, 여기서 n은 비트들의 수일 수 있다.
[0014] 방법의 예시적인 구현은 보안 신호의 표시를 결정하는 단계를 포함할 수 있다. 보안 신호는, 장애가 발생하지 않았다고 결정되는 경우, 보안 동작 모드를 표시할 수 있다. 보안 신호는, 장애가 발생했다고 결정되는 경우, 비-보안 동작 모드를 표시할 수 있다. 장애 발생이 발생했다고 결정되는 경우, 메모리에 대한 액세스는, 보안 메모리에 대한 제한된 액세스를 포함할 수 있다. 집적 회로를 부팅하는 단계는 장애 발생 결정에 의해 영향받지 않을 수 있다. 집적 회로는 시스템-온-칩일 수 있다.
[0015] 본원에 따른, 집적 회로의 메모리 자산들을 보호하기 위한 시스템의 예는, 복수의 OTP 메모리 어레이들, 복수의 OTP 메모리 어레이들 각각의 값을 샘플링하도록 구성된 회로소자, 비교 논리 블록, 및 적어도 하나의 프로세싱 모듈을 포함할 수 있고, 비교 논리 블록은, 각각의 OTP 메모리 어레이의 샘플링된 값을, 각각의 다른 OTP 메모리 어레이의 샘플링된 값 및 프로그래밍되지 않은 OTP 메모리 어레이 값과 비교하고, 비교된 샘플링된 값들에 기초하여, 집적 회로 성능 장애가 발생했는지 결정하도록 구성되고, 적어도 하나의 프로세싱 모듈은, 집적 회로를 부팅하고, 장애 발생 결정에 의해 결정된, 메모리에 대한 액세스를 이용하여 집적 회로를 동작시키도록 구성된다.
[0016] 시스템의 예시적인 구현은 비교 논리 블록을 포함할 수 있고, 비교 논리 블록은, 적어도 하나의 OTP 메모리 어레이의 샘플링된 값이 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등한 경우, 장애가 발생했음을 결정하고, 각각의 OTP 메모리 어레이의 샘플링된 값이 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하지 않은 경우, 장애가 발생했음을 결정하고, 각각의 OTP 메모리 어레이의 샘플링된 값이 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하고 각각의 OTP 메모리 어레이의 샘플링된 값이 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등하지 않은 경우, 장애가 발생하지 않았음을 결정하도록 구성된다. 프로그래밍되지 않은 OTP 메모리 어레이 값은 제로일 수 있다. 프로그래밍되지 않은 OTP 메모리 어레이 값은 (2n-1)일 수 있고, 여기서 n은 비트들의 수일 수 있다.
[0017] 시스템의 예는 비교 논리 블록을 포함할 수 있고, 비교 논리 블록은, 보안 신호의 표시를 결정하도록 구성된다. 보안 신호는, 장애가 발생하지 않았다고 결정되는 경우, 보안 동작 모드를 표시할 수 있다. 보안 신호는, 장애가 발생했다고 결정되는 경우, 비-보안 동작 모드를 표시할 수 있다. 장애가 발생했다고 결정되는 경우, 메모리에 대한 액세스는, 보안 메모리에 대한 제한된 액세스를 포함할 수 있다. 집적 회로를 부팅하는 것은 장애 발생 결정에 의해 영향받지 않을 수 있다. 집적 회로는 시스템-온-칩일 수 있다.
[0018] 본원에 따른, 집적 회로들의 메모리 자산들을 보호하기 위한 시스템의 예는, 복수의 OTP 메모리 어레이들 각각의 값을 샘플링하기 위한 수단, 복수의 OTP 메모리 어레이들의 각각의 OTP 메모리 어레이의 샘플링된 값을, 복수의 OTP 메모리 어레이들의 각각의 다른 OTP 메모리 어레이의 샘플링된 값 및 프로그래밍되지 않은 OTP 메모리 어레이 값과 비교하기 위한 수단, 비교된 샘플링된 값들에 기초하여, 집적 회로 성능 장애 발생을 검출하기 위한 수단, 집적 회로를 부팅하기 위한 수단, 및 장애 발생 결정에 의해 결정된, 메모리에 대한 액세스를 이용하여 집적 회로를 동작시키기 위한 수단을 포함할 수 있다.
[0019] 시스템의 예시적인 구현은, 적어도 하나의 OTP 메모리 어레이의 샘플링된 값이 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등한 경우, 장애가 발생했음을 결정하는 것, 각각의 OTP 메모리 어레이의 샘플링된 값이 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하지 않은 경우, 장애가 발생했음을 결정하는 것, 및 각각의 OTP 메모리 어레이의 샘플링된 값이 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하고 각각의 OTP 메모리 어레이의 샘플링된 값이 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등하지 않은 경우, 장애가 발생하지 않았음을 결정하는 것을 포함할 수 있다. 프로그래밍되지 않은 OTP 메모리 어레이 값은 제로일 수 있다. 프로그래밍되지 않은 OTP 메모리 어레이 값은 (2n-1)일 수 있고, 여기서 n은 비트들의 수일 수 있다.
[0020] 시스템의 예는, 보안 신호의 표시를 결정하기 위한 수단을 포함할 수 있다. 보안 신호는, 장애 발생이 발생하지 않았다고 결정되는 경우, 보안 동작 모드를 표시할 수 있다. 보안 신호는, 장애가 발생했다고 결정되는 경우, 비-보안 동작 모드를 표시할 수 있다. 장애가 발생했다고 결정되는 경우, 메모리에 대한 액세스는, 보안 메모리에 대한 제한된 액세스를 포함할 수 있다. 집적 회로를 부팅하는 것은 장애 발생 결정에 의해 영향받지 않을 수 있다. 집적 회로는 시스템-온-칩일 수 있다.
[0021] 본원에 따른 프로세서-판독가능 비-일시적 저장 매체 상에 상주하는 컴퓨터 프로그램 물건의 예는, 하나 또는 둘 이상의 프로세서들에 의해 실행가능한 프로세서-판독가능 명령들을 포함할 수 있으며, 프로세서-판독가능 명령들은, 회로소자로 하여금 복수의 OTP 메모리 어레이들 각각의 값을 샘플링하게 하고, 비교 논리 블록으로 하여금 각각의 OTP 메모리 어레이의 샘플링된 값을, 각각의 다른 OTP 메모리 어레이의 샘플링된 값 및 프로그래밍되지 않은 OTP 메모리 어레이 값과 비교하게 하고, 비교된 샘플링된 값들에 기초하여, 집적 회로 성능 장애가 발생했는지 결정하게 하고, 집적 회로를 부팅하게 하고, 장애 발생 결정에 의해 결정된, 메모리에 대한 액세스를 이용하여 집적 회로를 동작시키게 한다.
[0022] 컴퓨터 프로그램 물건의 예시적인 구현은 프로세서-판독가능 명령들을 포함할 수 있으며, 프로세서-판독가능 명령들은, 비교 논리 블록으로 하여금 적어도 하나의 OTP 메모리 어레이의 샘플링된 값이 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등한 경우, 장애가 발생했음을 결정하게 하고, 각각의 OTP 메모리 어레이들의 샘플링된 값이 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하지 않은 경우, 장애가 발생했음을 결정하게 하고, 각각의 OTP 메모리 어레이의 샘플링된 값이 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하고 각각의 OTP 메모리 어레이의 샘플링된 값이 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등하지 않은 경우, 장애가 발생하지 않았음을 결정하게 한다. 프로그래밍되지 않은 OTP 메모리 어레이 값은 제로일 수 있다. 프로그래밍되지 않은 OTP 메모리 어레이 값은 (2n-1)일 수 있고, 여기서 n은 비트들의 수일 수 있다.
[0023] 컴퓨터 프로그램 물건의 예는, 비교 논리 블록으로 하여금, 보안 신호의 표시를 결정하게 하는 프로세서-판독가능 명령들을 포함할 수 있다. 보안 신호는, 장애가 발생하지 않았다고 결정되는 경우, 보안 동작 모드를 표시할 수 있다. 보안 신호는, 장애가 발생했다고 결정되는 경우, 비-보안 동작 모드를 표시할 수 있다. 장애가 발생했다고 결정되는 경우, 메모리에 대한 액세스는, 보안 메모리에 대한 제한된 액세스를 포함할 수 있다. 집적 회로를 부팅하는 것은 장애 발생 결정에 의해 영향받지 않을 수 있다. 집적 회로는 시스템-온-칩일 수 있다.
[0024] 본 발명의 구현들에 따르면, 다음의 능력들 중 하나 또는 둘 이상이 제공될 수 있다. 집적 회로에 대한 글리치 공격은, 장애가 발생했음을 결정함으로써 검출될 수 있다. 둘 또는 셋 이상의 OTP 어레이들의 값들은 서로 그리고 프로그래밍되지 않은 OTP 어레이 값과 비교될 수 있다. 비교 결과들이, 장애가 발생했음을 결정하는 경우, 집적 회로의 메모리 자산들은 보호될 수 있다. 집적 회로를 부팅하는 것은 장애가 발생했다는 결정에 의해 영향받지 않는다. 본 발명 그 자체를 비롯하여, 본 발명의 이러한 그리고 다른 능력들은, 다음의 도면들, 상세한 설명 및 청구항들의 리뷰 후에 더 완전히 이해될 것이다. 다른 능력들이 제공될 수 있으며, 본원에 따른 모든 각각의 구현이, 논의된 능력들 모두는 물론이고 능력들 중 임의의 능력을 제공해야 하는 것은 아니다. 또한, 앞서 언급된 효과가, 언급된 것 이외의 수단에 의해 달성되는 것이 가능할 수 있으며, 언급된 항목/기법은 반드시 언급된 효과를 가져오는 것은 아닐 수 있다.
[0025] 도 1은 2개의 퓨즈 OTP 메모리 어레이들을 포함하는 SoC의 하드웨어 임베디드 보안 시스템의 실시예를 예시하는 블록도이다.
[0026] 도 2는 2개의 퓨즈 OTP 메모리 어레이들을 포함하는 하드웨어 임베디드 보안 방법에 대한 프로세스 다이어그램이다.
[0027] 도 3은 M개의 OTP 메모리 어레이들을 포함하는 하드웨어 임베디드 보안 방법에 대한 프로세스 다이어그램이다.
[0028] 본 발명의 실시예들은, 예를 들어 글리치 공격에 의해 유도된 SoC 성능의 장애의 발생을 검출 또는 결정하기 위해 하드웨어 임베디드 보안 시스템을 활용하기 위한 기법들을 제공한다. 그러나, 본원에 따른 다른 구현들이 가능하기 때문에, 아래에서 논의되는 기법들은 예시적이며, 본 발명을 제한하지 않는다. 설명된 기법들은 방법, 장치, 또는 시스템으로서 구현될 수 있고, 컴퓨터-판독가능 매체들에 구현될 수 있다.
[0029] 퓨즈 OTP 메모리 어레이 값들은, SoC가 파워 온 또는 리셋될 때 샘플링된다. 퓨즈 OTP 메모리 어레이의 값은 프로그래밍되지 않은 또는 버진 칩 퓨즈 OTP 메모리 어레이 값 및 하나 또는 둘 이상의 다른 퓨즈 OTP 메모리 어레이들의 값과 비교된다. 퓨즈 OTP 메모리 어레이 값들 각각이 동등하고, 어떠한 어레이 값도 프로그래밍되지 않은 값과 동등하지 않은 경우, 어떠한 장애도 발생했다고 결정되지 않으며, SoC는 글리치 공격을 받지 않았다고 결정되고, 보안 신호는 보안 동작 모드를 표시하도록 설정된다. 퓨즈 OTP 메모리 어레이들에 대한 어레이 값들이 모두 동등하지 않거나, 어레이 값들 중 적어도 하나의 어레이 값이 프로그래밍되지 않은 값과 동등한 경우, 장애가 발생했다고 결정되고, SoC는 글리치 공격을 받았다고 결정되고, 보안 신호는 비-보안 동작 모드를 표시하도록 설정된다. SoC는 보안 동작 모드 및 비-보안 동작 모드 양쪽 모두에 대해 동일한 프로시저들에 따라 부팅된다. SoC가 부팅된 후에, 비-보안 동작 모드에서, SoC는 보안 신호 표시에 응답하여, 보안 메모리 및 보안 메모리에 저장된 임의의 프로비저닝된 데이터에 대한 제한된, 차단된, 또는 다른 방식으로 제어된 액세스를 이용하여 동작된다. 보안 동작 모드에서, SoC는 보안 메모리 및 보안 메모리에 저장된 임의의 프로비저닝된 데이터에 대한 액세스를 이용하여 동작된다. 보안 동작 모드에서, 보안 메모리 및 보안 메모리에 저장된 임의의 프로비저닝된 데이터에 대한 액세스의 정도(degree), 레벨, 또는 유형은, 보안 신호 표시에 응답하여 제한되지 않지만, 보안 신호 표시 이외의 파라미터들에 응답하여 제한, 차단, 또는 다른 방식으로 제어될 수 있다. 이러한 프로시저는, SoC가 파워 온 또는 리셋될 때마다 반복된다.
[0030] 도 1을 참조하면, SoC의 메모리 자산들을 보호하기 위한 하드웨어 임베디드 보안 시스템(100)의 실시예를 예시하는 블록도가 도시된다. 시스템(100)은 예시적이며, 또한 다른 유형의 IC일 수 있으며, SoC로 제한되지 않는다. 시스템(100)은 제한적이지 않으며, 예를 들어, 부가된, 제거된, 또는 재배열된 컴포넌트들을 가짐으로써 변경될 수 있다.
[0031] 시스템(100)은 도 1에 도시되지 않은 전자 시스템 또는 엔드 디바이스의 부분일 수 있다. 엔드 디바이스는 IC들, 예를 들어, 셋톱 박스들, 개인용 컴퓨터들, 랩톱 컴퓨터들, 핸드-헬드 디바이스들, 태블릿들, 및 모뎀들을 포함하는 임의의 전자 시스템일 수 있다.
[0032] 실시예에서, 시스템(100)은 OTP 메모리 어레이 블록(120), 비교 논리 블록(140), 프로세싱 모듈(170), 비-보안 메모리(184), 및 보안 메모리(188)를 포함할 수 있다. OTP 메모리 어레이 블록(120)은 2개의 퓨즈 OTP 메모리 어레이들, 즉, 퓨즈 OTP 메모리 어레이 A(124) 및 퓨즈 OTP 메모리 어레이 B(128)를 포함할 수 있다. 퓨즈 OTP 메모리 어레이 A(124)는 n개의 퓨즈 디바이스들(121) ― 여기서 n은 1보다 더 크거나 1과 동등한 정수임 ―, 및 샘플링 및 캡처링 회로소자(123)를 포함할 수 있다. 유사하게, 퓨즈 OTP 메모리 어레이 B(128)는 n개의 퓨즈 디바이스들(125) ― 여기서 n은 퓨즈 OTP 메모리 어레이 A와 동일한 값을 가짐 ―, 및 샘플링 및 캡처링 회로소자(127)를 포함할 수 있다. 도 1에 도시된 퓨즈 OTP 메모리 어레이 A(124) 및 퓨즈 OTP 메모리 어레이 B(128)의 컴포넌트들은 예시적이고 제한적이지 않으며; 퓨즈 OTP 메모리 어레이들 양쪽 모두는 또한, 도시되지 않은 다른 컴포넌트들을 포함할 수 있다.
[0033] 샘플링 및 캡처링 회로소자(123 및 127)는 각각, n개의 퓨즈 디바이스들(121 및 125)의 프로그래밍된/프로그래밍되지 않은 상태들에 대응하는 논리 값들을 샘플링 및 캡처링할 수 있다.
[0034] 실시예에서, 프로그래밍되지 않은 퓨즈는 논리값 "0"에 대응할 수 있고, 프로그래밍된 퓨즈는 논리값 "1"에 대응할 수 있다. 특정한 예시적인 구현들에서, 프로그래밍되지 않은 퓨즈는 논리값 "1"에 대응할 수 있고, 프로그래밍된 퓨즈는 논리값 "0"에 대응할 수 있다. 실시예에서, OTP 메모리 어레이 블록(120)은, 프로그래밍되지 않은 퓨즈 OTP 디바이스가 논리값 "1"에 대응하게 하고 프로그래밍된 퓨즈 OTP 디바이스가 논리값 "0"에 대응하게 할 수 있는 하나 또는 둘 이상의 인버터 디바이스들을 포함할 수 있다. 예시적인 애플리케이션들에서, OTP 메모리 어레이 블록(120)은 앤티-퓨즈 디바이스들 또는 임의의 다른 유형들의 OTP 디바이스들을 포함할 수 있다.
[0035] OTP 메모리 어레이 블록(120)은 2개의 비트 라인 버스들, 즉, 비트 라인 버스 A(134) 및 비트 라인 버스 B(138)를 통해 비교 논리 블록(140)에 커플링될 수 있다. 각각의 비트 라인 버스(134 및 138)는 각각 퓨즈 OTP 메모리 어레이들(124 및 128)로부터 n개의 신호들을 캐리할 수 있다. n개의 신호들 각각은 n개의 퓨즈 OTP 디바이스들 중 하나의 퓨즈 OTP 디바이스의 샘플링된 및/또는 캡처링된 논리값에 대응할 수 있다.
[0036] 비교 논리 블록은 프로세싱 모듈(170)에 커플링될 수 있다. 보안 신호(160)는, 전기 연결, 또는 신호를 전파하도록 구성된 임의의 다른 유형의 연결을 통해 비교 논리 블록(140)으로부터 프로세싱 모듈(170)로 전송될 수 있다.
[0037] 프로세싱 모듈(170)은, RAM(random access memory) 또는 임의의 다른 유형의 IC 메모리를 포함할 수 있는 메모리 블록들(184 및 188)에 커플링될 수 있다. 메모리 블록(184)은 비-보안 메모리일 수 있고, 메모리 블록(188)은 보안 메모리일 수 있다. 비-보안 메모리(184) 및 보안 메모리(188) 양쪽 모두는 프로비저닝된 데이터를 포함할 수 있다.
[0038] 도 1에 도시된, 시스템(100)의 엘리먼트들 사이의 연결들은 예시적이다. 엘리먼트들 사이의 부가적인 연결들이 이용될 수 있다. 도 1에 도시된 엘리먼트들과, 도 1에 도시되지 않았지만 하드웨어 임베디드 보안 시스템 및/또는 SoC 또는 다른 IC에 포함된 다른 엘리먼트들 사이에 연결들이 또한 존재할 수 있다. 도시되지 않은 하나 또는 둘 이상의 다른 프로세서들이 시스템(100)에 포함될 수 있다.
[0039] 시스템(100)의 보안 메모리 블록(188), 또는 프로세싱 모듈(170)에 액세스가능한 다른 보안 메모리에 저장될 수 있는 프로비저닝된 데이터를 보호하기 위해, 퓨즈 OTP 메모리 어레이들 A(124) 및 B(128)는, 칩 제조 후에, 예를 들어 시스템(100)을 포함한 전자 시스템 또는 엔드 디바이스의 제조 동안, 동일한 보안 시퀀스들로 프로그래밍될 수 있다.
[0040] 실시예에서, OTP 메모리 어레이 블록(120)은, 버진 칩의 프로그래밍되지 않은 OTP 메모리 어레이에 대해, 퓨즈 OTP 메모리 어레이 A(124) 및 퓨즈 OTP 메모리 어레이 B(128) 모두의 프로그래밍되지 않은 퓨즈 디바이스들 모두의 샘플링된 상태들이 동일한 논리값 "0"에 대응할 수 있는 방식으로 구성된 퓨즈 OTP 디바이스들을 포함할 수 있다. 따라서, n개의 프로그래밍되지 않은 퓨즈 디바이스들을 이용시, 퓨즈 OTP 메모리 어레이 A(124)의 샘플링된 상태는 n-비트 값 제로에 대응할 수 있다. 마찬가지로, 퓨즈 OTP 메모리 어레이 B(128)의 샘플링된 상태는 n-비트 값 제로에 대응할 수 있다. 특정한 예시적인 구현에서, 프로그래밍되지 않은 OTP 디바이스들의 샘플링된 상태는 논리값 "1"에 대응할 수 있고, 프로그래밍된 OTP 디바이스들의 샘플링된 상태는 논리값 "0"에 대응할 수 있다. 그러므로, 이러한 예시적인 구현에서, OTP 메모리 어레이 블록(120)의 각각의 OTP 메모리 어레이의 샘플링된 n-비트 값은, 모두가 논리값 "1"인 n 비트들에 대응하는 (2n-1)일 수 있다. n의 값에 의해 결정된, (2n-1)의 이러한 비-제로 값(non-zero value)은 버진 칩의 프로그래밍되지 않은 OTP 메모리 어레이 값일 수 있다.
[0041] 실시예에서, 퓨즈 OTP 메모리 어레이들 A(124) 및 B(128)는 동일한 보안 시퀀스들로 프로그래밍될 수 있다. 보안 시퀀스를 퓨즈 OTP 메모리 어레이들 A(124) 및 B(128)에 프로그래밍하는 것은, OTP 메모리 어레이들의 퓨즈들을 선택적으로 프로그래밍함으로써 구현될 수 있다. 프로그래밍 이후에, 퓨즈 OTP 메모리 어레이 A(124)의 샘플링된 어레이 값은 퓨즈 OTP 메모리 어레이 B(128)의 샘플링된 어레이 값과 동일할 수 있다. 또한, 샘플링된 어레이 값들은 프로그래밍되지 않은 버진 칩 OTP 메모리 어레이 값과 동등하지 않을 수 있다.
[0042] 실시예에서, 시스템(100)을 포함하는 SoC가 파워 온 또는 리셋될 때, 퓨즈 OTP 메모리 어레이 A(124)의 n개의 퓨즈 디바이스들(121)에 대한 퓨즈 상태들 및 퓨즈 OTP 메모리 어레이 B(128)의 n개의 퓨즈 디바이스들(125)에 대한 퓨즈 상태들은, 각각 퓨즈 OTP 메모리 어레이 A(124) 및 퓨즈 OTP 메모리 어레이 B(128)에 대해, 샘플링 및 캡처링 회로소자(123 및 127)에 의해 샘플링 및 캡처링될 수 있다. 퓨즈 OTP 메모리 어레이 A(124)에 대한 샘플링된 어레이 값은 비트 라인 버스 A(134)를 통해 비교 논리 블록(140)에 전송될 수 있다. 유사하게, 퓨즈 OTP 메모리 어레이 B(128)에 대한 샘플링된 어레이 값은 비트 라인 버스 B(138)를 통해 비교 논리 블록(140)에 전송될 수 있다.
[0043] 비교 논리 블록(140)은 디지털 논리 회로소자(145)를 포함할 수 있다. 디지털 논리 회로소자(145)는 이에 제한되는 것은 아니지만, AND 게이트들, NAND 게이트들, OR 게이트들, NOR 게이트들, XOR 게이트들 및 이들의 임의의 결합들을 포함할 수 있다. 실시예에서, 디지털 논리 회로소자(145)는 각각의 퓨즈 OTP 메모리 어레이(124 및 128)에 대한 샘플링된 값을 프로그래밍되지 않은 버진 칩 어레이 값과 비교할 수 있고, 퓨즈 OTP 메모리 어레이 A(124)에 대한 샘플링된 값을 퓨즈 OTP 메모리 어레이 B(128)에 대한 샘플링된 값과 또한 비교할 수 있다. 이러한 비교들에 기초하여, 비교 논리 블록(140)은 예를 들어, 글리치 공격으로 인해 장애가 발생했는지의 여부를 결정할 수 있다.
[0044] 특정 구현들에서, 각각의 어레이에 대한 프로그래밍되지 않은 버진 칩 값은 제로일 수 있다. 이러한 경우, 각각의 퓨즈 OTP 메모리 어레이(124 및 128)에 대한 샘플링된 값은, 디지털 논리 회로소자(145)에 의해 제로와 비교될 수 있다. 다른 예시적인 구현들에서, n개의 엘리먼트들의 각각의 어레이에 대한 프로그래밍되지 않은 버진 칩 값은 (2n-1)일 수 있다. 이러한 구현들에서, 각각의 퓨즈 OTP 메모리 어레이(124 및 128)에 대한 샘플링된 값은 (2n-1)과 비교될 수 있다.
[0045] 특정 구현에서, 비교 논리 블록(140)은, 퓨즈 OTP 메모리 어레이 A(124)에 대한 그리고 퓨즈 OTP 메모리 어레이 B(128)에 대한 샘플링된 값들이 동일하고 비-제로인 경우, 어떠한 장애도 발생하지 않았음을 결정할 수 있다. 이러한 경우, 퓨즈 OTP 메모리 어레이들(124 및 128) 양쪽 모두에 대한 샘플링된 값들은, 퓨즈 OTP 메모리 어레이들(124 및 128) 양쪽 모두에 프로그래밍될 수 있는 동일한 보안 시퀀스들에 대응할 수 있다. 다른 특정 구현에서, 비교 논리 블록(140)은, 퓨즈 OTP 메모리 어레이 A(124)에 대한 그리고 퓨즈 OTP 메모리 어레이 B(128)에 대한 샘플링된 값들이 동일하고, (2n-1)과 동등하지 않은 경우, 어떠한 장애도 발생하지 않았음을 결정할 수 있다.
[0046] 실시예에서, 비교 논리 블록(140)은, 퓨즈 OTP 메모리 어레이 A(124) 및 퓨즈 OTP 메모리 어레이 B에 대한 샘플링된 값들이 동일하지 않은 경우, 장애가 발생했음을 결정할 수 있다. 앞서 논의된 바와 같이, 예를 들어 글리치 공격으로 인해 장애가 발생한 경우, 퓨즈 OTP 메모리 어레이들(124 및/또는 128)의 샘플링된 값들은 스푸핑될 수 있고, 그러므로, 프로그래밍된 보안 시퀀스와 동일하지도 않고 동등하지도 않을 수 있다.
[0047] 특정 구현에서, 비교 논리 블록(140)은, 퓨즈 OTP 메모리 어레이 A(124)에 대한 샘플링된 값 및/또는 퓨즈 OTP 메모리 어레이 B(128)에 대한 샘플링된 값이 제로와 동등한 경우, 장애가 발생했음을 결정할 수 있다. 이러한 경우는 버진 칩에 대응할 수 있다.
[0048] 특정 구현에서, 비교 논리 블록(140)은, 퓨즈 OTP 메모리 어레이 A(124)에 대한 샘플링된 값 및/또는 퓨즈 OTP 메모리 어레이 B(128)에 대한 샘플링된 값이 (2n-1)에 대응하는 경우, 장애가 발생했음을 결정할 수 있다. 이러한 경우는 버진 칩에 대응할 수 있다.
[0049] 버진 칩의 경우에서, 장애가 발생했다는 결정과 관련하여 폴스 포지티브(false positive)가 실현될 수 있다. 비교 논리 블록(140)은, 퓨즈 OTP 메모리 어레이들의 샘플링된 값들에 대해 앞서 설명된 비교 기준들에 기초하여, 이러한 장애 또는 공격의 부재시에도, 예를 들어 글리치 공격으로 인해 장애가 발생했다고 표시할 수 있다. 예를 들어, 버진 칩의 보안 메모리가, 보호가 필요한 및/또는 소망되는 프로비저닝된 데이터를 포함하지 않을 수 있기 때문에, 버진 칩의 보안 메모리에 대한 차단된 또는 제한된 액세스가 칩의 동작에서 사소할 수 있으므로, 이러한 폴스 포지티브 결과는 완화(mitigate)될 수 있다.
[0050] 장애 발생 결정에 기초하여, 비교 논리 블록(140)은 보안 신호(160)를 발생시킬 수 있고, 보안 신호(160)는 보안 동작 모드 또는 비-보안 동작 모드를 표시할 수 있다. 비교 논리 블록(140)이 장애가 발생했음을 결정하는 경우, 보안 신호(160)는 비-보안 동작 모드를 표시할 수 있다. 버진 칩이 장애의 발생에 관하여 폴스 포지티브를 발생시킬 수 있기 때문에, 보안 신호(160)는 버진 칩의 경우, 비-보안 동작 모드를 표시할 수 있다. 비교 논리 블록(140)이 장애가 발생하지 않았음을 결정하는 경우, 보안 신호(160)는 보안 동작 모드를 표시할 수 있다.
[0051] 보안 신호(160)는 비교 논리 블록(140)에 의해 프로세싱 모듈(170)에 전송될 수 있다. 실시예에서, 프로세싱 모듈(170)은, 보안 동작 모드 또는 비-보안 동작 모드의 보안 신호 표시와 무관하게 동일한 프로세싱 루틴들에 따라 SoC를 부팅할 수 있다. 부팅 프로세서 루틴들은 보안 메모리(188)에 대한 제한된 또는 차단된 액세스에 의해 영향받지 않을 수 있다. 특정 애플리케이션들에서, 프로세싱 모듈(170)은 SoC의 디바이스들 또는 기능들을 테스트할 수 있다. 테스팅 프로세서 루틴들은 보안 메모리(188)에 대한 제한된 또는 차단된 액세스에 의해 영향받지 않을 수 있다. 그러므로, SoC의 적어도 부팅 및 테스팅은 보안 신호 표시에 의해 영향받지 않을 수 있다.
[0052] 일단 SoC가 부팅되면, SoC는, 보안 신호 표시에 의해 결정된 바와 같은 메모리에 대한 액세스를 이용하여 동작할 수 있다. 보안 신호(160)가 보안 동작 모드를 표시하는 경우, SoC는 비-보안 메모리(184), 보안 메모리(188)를 비롯하여 보안 메모리(188)에 저장될 수 있는 프로비저닝된 데이터, 및 SoC 동작에서 이용되는 임의의 다른 메모리에 액세스할 수 있다. 실시예에서, 보안 동작 모드에서, 보안 메모리 및 보안 메모리에 저장된 임의의 프로비저닝된 데이터에 대한 액세스는 무제한(unlimited)일 수 있다. 특정 실시예에서, 보안 동작 모드에서, 보안 메모리 및 보안 메모리에 저장된 임의의 프로비저닝된 데이터에 대한 액세스는, 보안 신호 표시를 제외한 파라미터들에 응답하여 제한, 차단, 또는 다른 방식으로 제어될 수 있다. 역으로, 보안 신호(160)가 비-보안 동작 모드를 표시하는 경우, 보안 신호 표시에 응답하여, SoC는, 보안 메모리(188)를 비롯하여 보안 메모리(188)에 저장될 수 있는 프로비저닝된 데이터에 대한 액세스를 제한 또는 차단할 수 있다.
[0053] 실시예에서, 버진 칩의 경우에서 폴스 포지티브에 의해 발생된 비-보안 동작 모드의 보안 신호 표시는 SoC의 부팅 및 테스팅에 영향을 미치지 않을 수 있다. 예를 들어, 버진 칩이 프로비저닝된 데이터를 보안 메모리(188)에 포함하지 않을 수도 있기 때문에, SoC 동작 동안 보안 메모리(188)에 대한 액세스의 결여(lack of access) 또는 제한된 액세스는 무관할 수 있다.
[0054] 시스템(100)을 포함하는 전자 시스템 또는 엔드 디바이스의 제조 동안, 보안 시퀀스들이 OTP 메모리 어레이 블록(120)에 프로그래밍될 수 있다. 그 후에, 프로비저닝된 데이터가 보안 메모리(188)에 저장될 때, 시스템(100)은, 예를 들어 글리치 공격, 해커 공격, 또는 다른 물리적 교란으로 인한 장애 발생을 결정하기 위해, 프로그래밍된 보안 시퀀스들을 이용할 수 있다. 검출된 또는 결정된 장애 발생에 응답하여, 시스템(100)은, 보안 메모리(188)에 대한 액세스를 차단 또는 제한함으로써, 보안 메모리(188) 및 보안 메모리(188)에 저장될 수 있는 임의의 프로비저닝된 데이터를 보호할 수 있다.
[0055] 동작에서, 도 1에 대한 추가의 참조와 함께, 도 2를 참조하면, 시스템(100)을 이용한 하드웨어 임베디드 보안 방법(200)은 도시된 스테이지들을 포함한다. 그러나, 방법(200)은 예시적일뿐이며, 제한적이지 않다. 방법(200)은, 예를 들어 스테이지들이 부가, 제거, 또는 재정렬됨으로써 변경될 수 있다.
[0056] 방법(200)은 퓨즈 OTP 메모리 어레이들을 샘플링하는 단계(220), 샘플링된 퓨즈 OTP 메모리 어레이 값들을 비교하는 단계(240), 장애 발생을 결정하는 단계(260), SoC를 부팅하는 단계(270), 및 SoC를 동작시키는 단계(280)를 포함한다.
[0057] 스테이지(220)에서, SoC가 파워 온 또는 리셋될 때, OTP 메모리 어레이 블록(120)의 구성 OTP 메모리 어레이(constituent OTP memory array)들에 대한 퓨즈 디바이스 상태들이 샘플링 및 캡처링된다. 스테이지(224)에서, 퓨즈 OTP 메모리 어레이 A(124)의 n개의 퓨즈 디바이스들(121)의 퓨즈 상태들은, 도 1에 도시된 샘플링 및 캡처링 회로소자(123)에 의해 샘플링 및 캡처링된다. 유사하게, 스테이지(226)에서, 퓨즈 OTP 메모리 어레이 B에 대한 n개의 퓨즈 디바이스들(125)의 퓨즈 상태들은, 도 1에 도시된 샘플링 및 캡처링 회로소자(127)에 의해 샘플링 및 캡처링된다.
[0058] 스테이지(240)에서, 디지털 논리 회로소자(145)를 이용하여, 비트 라인 버스 A(134) 및 비트 라인 버스 B(138)에 의해 비교 논리 블록(140)에 제공된, 샘플링된 퓨즈 OTP 메모리 어레이 값들이 서로 그리고 버진 칩 또는 프로그래밍되지 않은 OTP 메모리 어레이 값과 비교된다. 실시예에서, 샘플링된 어레이 값 제로는 버진 칩 값에 대응한다. 특정 애플리케이션들에서, 모두가 값 "1"인 n 비트들에 대해, 샘플링된 n-비트 어레이 값 (2n-1)은 버진 칩 값에 대응한다.
[0059] 스테이지(260)에서, 장애의 발생이 결정될 수 있다. 퓨즈 OTP 메모리 어레이 A(124) 및/또는 퓨즈 OTP 메모리 어레이 B(128)에 대한 샘플링된 값들이 버진 칩을 표시하는 경우(즉, 다양한 실시예들에서, 어레이들 양쪽 모두의 모든 n개의 퓨즈 디바이스들(121 및 125)에 대해 모두가 "1"이거나 모두가 "0"인 것 중 어느 하나임), 장애가 발생한 것으로 스테이지(264)에서 결정된다. 버진 칩의 이러한 경우에서, 장애 검출은 폴스 포지티브이다. 퓨즈 OTP 메모리 어레이 A(124) 및 퓨즈 OTP 메모리 어레이 B(128)에 대한 샘플링된 값들이 동일하지 않은 경우, 장애가 발생한 것으로 스테이지(266)에서 결정된다. 퓨즈 OTP 메모리 어레이 A(124) 및 퓨즈 OTP 메모리 어레이 B에 대한 샘플링된 값들이 동일하고, 어느 것도 버진 칩을 표시하지 않는 경우, 스테이지(268)에서, 장애가 발생하지 않은 것으로 결정된다. 스테이지들(264, 266, 및 268)은 상호 배타적이어서, 이러한 상태들 중 단지 하나의 상태만이 방법(200)의 스테이지(260)에 존재할 수 있다.
[0060] 부가적으로, 스테이지(260)에서, 보안 신호(160)의 표시가, 예를 들어 글리치 공격, 해커 공격, 또는 다른 물리적 교란에 의해 생성된 장애 발생의 결정에 의해 결정되도록, 보안 신호(160)가 비교 논리 블록(140)에 의해 발생된다. 장애가 발생한 것으로 결정되는 경우에 비-보안 동작 모드의 보안 신호 표시가 발생되고, 장애가 발생하지 않은 것으로 결정되는 경우에 보안 동작 모드의 보안 신호 표시가 발생된다.
[0061] 스테이지(270)에서, SoC는, 보안 신호(160)의 표시와 무관하게 동일한 프로세싱 루틴들을 이용하여 프로세싱 모듈(170)에 의해 부팅된다. SoC는 비-보안 동작 모드 및 보안 동작 모드 양쪽 모두에서 동일한 루틴들 또는 프로시저들에 따라 부팅될 수 있다. SoC에 대한 부팅 루틴들은 보안 메모리(188)에 대한 액세스를 요구하지 않을 수 있다. 예시적인 구현에서, SoC 컴포넌트들은 또한, 스테이지(270)에서 테스팅될 수 있다. 테스팅 루틴들은 보안 메모리(188)에 대한 액세스를 요구하지 않을 수 있다. 테스팅 루틴들 또는 프로시저들은 비-보안 동작 모드 및 보안 동작 모드 양쪽 모두에 대해 동일할 수 있다.
[0062] 스테이지(280)에서, SoC는 보안 신호(160)의 표시에 의해 결정된, 보안 메모리(188)에 대한 액세스를 이용하여 동작된다. 비-보안 동작 모드에 있어서, SoC는 보안 메모리(188)에 대해 차단된 또는 제한된 액세스를 이용하여 동작되고, 이에 의해, 보안 메모리(188)에 저장될 수 있는 프로비저닝된 데이터를 보호한다. 역으로, 보안 동작 모드에 있어서, SoC는 보안 메모리(188) 및 보안 메모리(188)에 저장될 수 있는 프로비저닝된 데이터에 대한 액세스를 이용하여 동작된다. 실시예에서, 보안 동작 모드에서, 보안 메모리 및 보안 메모리에 저장된 임의의 프로비저닝된 데이터에 대한 액세스는 무제한일 수 있다. 특정 실시예에서, 보안 동작 모드에서, 보안 메모리 및 보안 메모리에 저장된 임의의 프로비저닝된 데이터에 대한 액세스는, 보안 신호 표시를 제외한 파라미터들에 응답하여 제한, 차단, 또는 다른 방식으로 제어될 수 있다.
[0063] 도 1과 관련하여 앞서 논의된 바와 같이, 버진 칩과 연관된 폴스 포지티브의 부정적 영향력(negative implication)들이 완화되는데, 그 이유는 부팅 및 테스팅 루틴들이 보안 메모리(188)에 대한 차단된 액세스에 의해 영향받지 않을 수 있기 때문이다. 부가적으로, 버진 칩의 보안 메모리(188)는 프로비저닝된 데이터를 포함하지 않을 수 있고, 그러므로, 보안 메모리(188)에 대한 액세스의 결여는 버진 칩과 무관할 수 있다.
[0064] 실시예에서, 방법(200)은, SoC가 파워 온 또는 리셋될 때마다 반복될 수 있다.
[0065] 도 1을 추가로 참조하면, 실시예에서, OTP 메모리 어레이 블록(120)은 복수의 M개의 퓨즈 OTP 메모리 어레이들 및 연관된 샘플링 및 캡처링 회로소자를 포함할 수 있고, 여기서 M은 2보다 더 큰 또는 2와 동등한 정수이다. M개의 퓨즈 OTP 메모리 어레이들의 각각의 퓨즈 OTP 메모리 어레이는 n개의 퓨즈 디바이스들을 포함할 수 있고, 여기서 n은 1보다 더 큰 또는 1과 동등한 정수이고, M개의 퓨즈 OTP 메모리 어레이들 모두에 대해 동일한 값을 갖는다. 특정 애플리케이션에서, OTP 메모리 어레이 블록(120)은 앤티-퓨즈 OTP 디바이스들 또는 임의의 다른 유형들의 OTP 디바이스들을 활용하는 M개의 OTP 메모리 어레이들을 포함할 수 있다.
[0066] 실시예에서, OTP 메모리 어레이 블록(120)은 M개의 비트 라인 버스들을 통해 비교 논리 블록(140)에 커플링될 수 있다. 각각의 비트 라인 버스는 M개의 OTP 메모리 어레이들 중 하나로부터의 n개의 신호들을 캐리할 수 있다.
[0067] 실시예에서, 비교 논리 블록(140)의 디지털 논리 회로소자(145)는 M개의 퓨즈 OTP 메모리 어레이들에 대한 샘플링된 값을 프로그래밍되지 않은 버진 칩 어레이 값 및 나머지 (M-1)개의 퓨즈 OTP 메모리 어레이들 각각과 비교할 수 있다. 도 1을 참조하여 앞서 설명된 바와 같이, 이러한 비교에 기초하여, 비교 논리 블록(140)은 장애가 발생했는지 결정할 수 있다.
[0068] 실시예에서, 비교 논리 블록(140)은, M개의 퓨즈 OTP 메모리 어레이들에 대한 샘플링된 값들이 동일하고, 버진 칩 값과 동등하지 않은 경우, 어떠한 장애도 발생하지 않았음을 결정할 수 있다. 전자 시스템 또는 엔드 디바이스의 제조 동안, 동일한 보안 시퀀스들이 M개의 퓨즈 OTP 메모리 어레이들 모두에 프로그래밍될 수 있다. 장애의 부재시, M개의 퓨즈 OTP 메모리 어레이들에 대한 샘플링된 값들은 프로그래밍된 보안 시퀀스와 모두 동등할 수 있다.
[0069] 특정 구현들에서, 각각의 어레이에 대한 프로그래밍되지 않은 버진 칩 값은 제로일 수 있다. 이러한 경우, M개의 퓨즈 OTP 메모리 어레이들 각각에 대한 샘플링된 값은 디지털 논리 회로소자(145)에 의해 제로와 비교될 수 있다. 다른 예시적인 구현들에서, 각각의 어레이에 대한 프로그래밍되지 않은 버진 칩 값은 (2n-1)일 수 있다. 이러한 구현들에서, M개의 퓨즈 OTP 메모리 어레이들 각각에 대한 샘플링된 값은 (2n-1)과 비교될 수 있다.
[0070] 실시예에서, 비교 논리 블록(140)은, M개의 퓨즈 OTP 메모리 어레이들 모두에 대한 샘플링된 값들이 동일하지 않거나, 동등하지 않거나, 또는 M개의 퓨즈 OTP 메모리 어레이들 중 적어도 하나에 대한 샘플링된 값이 제로와 동등한 경우, 장애가 발생했음을 결정할 수 있다. 이러한 후자의 경우는, 버진 칩에 대응할 수 있다. 앞서 논의된 바와 같이, 장애가 발생한 경우, M개의 퓨즈 OTP 메모리 어레이들 중 임의의 또는 모든 퓨즈 OTP 메모리 어레이들의 샘플링된 값들은 스푸핑될 수 있고, 그러므로 프로그래밍된 보안 시퀀스와 동일하지도 않고 동등하지도 않을 수 있다.
[0071] 구현에서, 비교 논리 블록(140)은, M개의 퓨즈 OTP 메모리 어레이들에 대한 샘플링된 값들이 동일하지 않은 경우 또는 M개의 퓨즈 OTP 메모리 어레이들 중 적어도 하나에 대한 샘플링된 값이 (2n-1)과 동등한 경우, 장애가 발생했음을 결정할 수 있다. 이러한 후자의 경우는 프로그래밍되지 않은 버진 칩에 대응할 수 있다.
[0072] 동작에서, 도 1에 대한 추가의 참조와 함께, 도 3을 참조하면, 하드웨어 임베디드 보안 방법(300)은 도시된 스테이지들을 포함한다. 그러나, 방법(300)은 예시적일뿐이며, 제한적이지 않다. 방법(300)은, 예를 들어 스테이지들이 부가, 제거, 또는 재정렬됨으로써 변경될 수 있다.
[0073] 앞서 설명된 바와 같은 시스템(100)의 실시예를 이용하여 SoC 칩 상에서의 장애의 발생을 식별하기 위한 방법 실시예(300)는 방법(200)과 유사할 수 있지만 그 방법(200)에 의존하지 않을 수 있으며, 시스템(100)은 복수의 M개의 퓨즈 OTP 메모리 어레이들 및 연관된 샘플링 및 캡처링 회로소자를 포함하고, 여기서 M은 2보다 더 큰 또는 2와 동등한 정수이다.
[0074] 방법(300)은 M개의 퓨즈 OTP 메모리 어레이들의 값을 샘플링하는 단계(320), 각각의 퓨즈 OTP 메모리 어레이의 샘플링된 값을 각각의 다른 퓨즈 OTP 메모리 어레이 값의 샘플링된 값과 비교하는 단계(340), 장애의 발생을 결정하는 단계(360), SoC를 부팅하는 단계(370), 및 SoC를 동작시키는 단계(380)를 포함한다.
[0075] 스테이지(320)에서, SoC가 파워 온 또는 리셋될 때, OTP 메모리 어레이 블록(120)의 M개의 퓨즈 OTP 메모리 어레이들에 대한 n개의 퓨즈 디바이스 상태들이 샘플링 및 캡처링될 수 있다.
[0076] 실시예에서, 스테이지(340)에서, 디지털 논리 회로소자(145)를 이용하여, M개의 비트 라인 버스들에 의해 비교 논리 블록(140)에 제공된 샘플링된 퓨즈 OTP 메모리 어레이 값들이 서로 그리고 프로그래밍되지 않은 버진 칩 OTP 메모리 어레이 값과 비교된다.
[0077] 실시예에서, 스테이지(360)에서, 장애의 발생이 결정된다. M개의 퓨즈 OTP 메모리 어레이들 중 적어도 하나에 대한 샘플링된 값은 버진 칩을 표시하는 경우(즉, 다양한 실시예들에서, 어레이 값 제로 또는 어레이 값 (2n-1) 중 어느 하나임), 장애가 발생했다고 스테이지(364)에서 결정된다. 버진 칩에 있어서, 장애 검출은 폴스 포지티브이다. M개의 퓨즈 OTP 메모리 어레이들에 대한 샘플링된 값들이 동일하지 않고 버진 칩 값과 동등하지 않은 경우, 장애가 발생했다고 스테이지(366)에서 결정된다. M개의 퓨즈 OTP 메모리 어레이들에 대한 샘플링된 값들이 동일하고, 전혀 버진 칩을 표시하지 않는 경우, 장애가 발생하지 않았다고 스테이지(368)에서 결정된다. 스테이지들(364, 366, 및 368)은 상호 배타적이어서, 이러한 상태들 중 단지 하나의 상태만이 방법(300) 실시예의 스테이지(360)에 존재할 수 있다.
[0078] M개의 퓨즈 OTP 메모리 어레이들을 활용하는 방법(300) 실시예에서, 스테이지들(370 및 380)은 각각 방법(200)의 스테이지들(270 및 280)과 관련하여 앞서 설명된 바와 같이 그리고 도 2에 도시된 바와 진행된다.
[0079] 다른 실시예들이 본 발명의 범주 및 사상 내에 있다. 예를 들어, 소프트웨어의 특성으로 인해, 앞서 설명된 기능들은 소프트웨어, 하드웨어, 펌웨어, 하드와이어링, 또는 이들 중 임의의 것들의 결합들을 이용하여 구현될 수 있다. 기능들을 구현하는 특징부들은 또한, 기능들의 부분들이 상이한 물리적 위치들에서 구현되도록 분산되는 것을 포함하여, 다양한 포지션들에 물리적으로 로케이팅될 수 있다.
[0080] 당업자들은, 정보 및 신호들이 여러 가지 상이한 기술들 및 기법들 중 임의의 것을 이용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 앞서의 설명 전체에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 자기 입자들, 광학 필드들 또는 광학 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.
[0081] 당업자들은, 본 명세서에서 본원과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들이, 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 결합들로서 구현될 수 있다는 것을 추가로 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호교환가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 일반적으로 그들의 기능성의 관점들에서 앞서 설명되었다. 그러한 기능성이 하드웨어로 구현되는지 소프트웨어로 구현되는지는 특정 애플리케이션 및 전체 시스템에 부과된 설계 제약들에 따른다. 당업자들은 설명된 기능성을 각각의 특정 애플리케이션에 대해 변화하는 방식들로 구현할 수 있지만, 이러한 구현 결정들은 본원의 범주로부터 벗어나는 것을 야기하는 것으로 해석되지 않아야 한다.
[0082] 본 명세서에서 본원과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP(digital signal processor), ASIC(application specific integrated circuit), FPGA(field programmable gate array) 또는 다른 프로그램가능 논리 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에 설명된 기능들을 수행하도록 설계된 이들의 임의의 결합으로 구현되거나 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 결합, 예를 들어 DSP와 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 또는 둘 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수 있다.
[0083] 본 명세서에서 본원과 관련하여 설명된 알고리즘 또는 방법의 단계들은 직접적으로 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이 둘의 결합으로 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 착탈식 디스크, CD-ROM, 또는 당해 기술 분야에 알려진 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있도록, 프로세서에 커플링된다. 대안으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC에 상주할 수 있다. ASIC는 사용자 단말에 상주할 수 있다. 대안으로, 프로세서 및 저장 매체는 사용자 단말에서 이산 컴포넌트들로서 상주할 수 있다.
[0084] 더 많은 예시적인 설계들 중 하나에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 결합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능들은 하나 또는 둘 이상의 명령들 또는 코드로서 컴퓨터-판독가능 매체 상에 저장 또는 전송될 수 있다. 컴퓨터-판독가능 매체들은, 하나의 위치로부터 다른 위치로의 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 통신 매체들 및 컴퓨터 저장 매체들 양쪽 모두를 포함한다. 저장 매체는 하나의 위치로부터 다른 위치로의 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함한다. 저장 매체들은 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수 있다. 제한들이 아닌 예로서, 이러한 컴퓨터-판독가능 매체들은 RAM, ROM, EEPROM, CD-RIM 또는 다른 광학 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태의 원하는 프로그램 코드 수단을 캐리 또는 저장하기 위해 이용될 수 있고 범용 또는 특수 목적 컴퓨터, 또는 범용 또는 특수-목적 프로세서에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결은 적절하게 지칭된 컴퓨터-판독가능 매체이다. 예를 들어, 소프트웨어가, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL(digital subscriber line), 또는 무선 기술들, 이를테면, 적외선, 무선, 및 마이크로파를 이용하여, 웹사이트, 서버, 또는 다른 원격 소스로부터 전송되는 경우, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 무선 기술들, 이를테면, 적외선, 무선, 및 마이크로파는 매체의 정의에 포함된다. 본 명세서에서 사용된 바와 같은 디스크(disk) 및 디스크(disc)는 CD(compact disc), 레이저 디스크(laser disc), 광 디스크(optical disc), DVD(digital versatile disc), 플로피 디스크(floppy disk) 및 블루레이 디스크(blu-ray disc)를 포함하며, 여기서 디스크(disk)들은 일반적으로 데이터를 자기적으로 재생하는 한편, 디스크(disc)들은 레이저들을 이용하여 데이터를 광학적으로 재생한다. 앞서의 것들의 결합들이 또한 컴퓨터-판독가능 매체들의 범주 내에 포함되어야 한다.
[0085] 본원의 이전의 설명은, 임의의 당업자가 본원을 이루거나 이용하는 것을 가능하게 하기 위해 제공된다. 본원에 대한 다양한 수정들은 당업자들에게 용이하게 명백해질 것이며, 본 명세서에서 정의된 일반적인 원리들은 본원의 범주로부터 벗어남이 없이 다른 변형들에 적용될 수 있다. 따라서, 본원은, 본 명세서에 설명된 예들 및 설계들로 한정되는 것이 아니라, 본 명세서에서 개시된 원리들 및 신규한 특징들과 일치하는 가장 넓은 범주에 부합하도록 의도된다.
[0086] 또한, 앞서의 설명이 본원을 나타내지만, 본 설명은 하나보다 많은 수의 발명을 포함할 수 있다.
[0087] 청구항들을 비롯하여 본 명세서에서 이용된 바와 같이, 달리 서술되지 않는 한, 기능 또는 동작이 아이템 또는 컨디션에 "기초한다"는 서술은, 기능 또는 동작이, 서술된 아이템 또는 컨디션에 기초하며 서술된 아이템 또는 컨디션에 부가하여 하나 또는 둘 이상의 아이템들 및/또는 컨디션들에 기초할 수 있다는 것을 의미한다.

Claims (40)

  1. 집적 회로의 메모리 자산(memory asset)들을 보호하는 방법으로서,
    복수의 OTP(one-time programmable) 메모리 어레이들 각각의 값을 샘플링하는 단계;
    상기 복수의 OTP 메모리 어레이들의 각각의 OTP 메모리 어레이의 샘플링된 값을, 상기 복수의 OTP 메모리 어레이들의 각각의 다른 OTP 메모리 어레이의 샘플링된 값 및 프로그래밍되지 않은 OTP 메모리 어레이 값과 비교하는 단계 ― 상기 프로그래밍되지 않은 OTP 메모리 어레이 값은 n 비트들에 대응하고, n 비트들 모두는, 제조 상태의(as-manufactured) OTP 메모리 어레이와 연관된 동일한 논리값을 갖고, n은 상기 복수의 OTP 메모리 어레이들 각각에서의 메모리 디바이스들의 수임 ―;
    상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등한지 여부를 결정하는 단계;
    상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하고, 그리고 상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등한 경우, 집적 회로 성능 장애가 발생했음을 결정하는 단계; 및
    장애 발생 결정에 의해 결정된, 메모리에 대한 액세스를 이용하여 상기 집적 회로를 동작시키는 단계
    를 포함하는,
    집적 회로의 메모리 자산들을 보호하는 방법.
  2. 제 1 항에 있어서,
    상기 집적 회로 성능 장애가 발생했음을 결정하는 단계는:
    상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하지 않은 경우, 상기 장애가 발생했음을 결정하는 단계; 및
    상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하고, 그리고 상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등하지 않은 경우, 상기 장애가 발생하지 않았음을 결정하는 단계를 더 포함하는,
    집적 회로의 메모리 자산들을 보호하는 방법.
  3. 제 1 항에 있어서,
    상기 프로그래밍되지 않은 OTP 메모리 어레이 값은 제로인,
    집적 회로의 메모리 자산들을 보호하는 방법.
  4. 제 1 항에 있어서,
    상기 프로그래밍되지 않은 OTP 메모리 어레이 값은 (2n-1)인,
    집적 회로의 메모리 자산들을 보호하는 방법.
  5. 제 1 항에 있어서,
    보안 신호의 표시를 결정하는 단계
    를 포함하고,
    상기 보안 신호는, 상기 장애가 발생하지 않았다고 결정되는 경우, 보안 동작 모드를 표시하고, 그리고
    상기 보안 신호는, 상기 장애가 발생했다고 결정되는 경우, 비-보안 동작 모드를 표시하는,
    집적 회로의 메모리 자산들을 보호하는 방법.
  6. 제 1 항에 있어서,
    상기 장애가 발생했다고 결정되는 경우, 메모리에 대한 액세스는, 보안 메모리에 대한 제한된 액세스를 포함하는,
    집적 회로의 메모리 자산들을 보호하는 방법.
  7. 제 1 항에 있어서,
    상기 집적 회로를 부팅하는 것은 상기 장애 발생 결정에 의해 영향받지 않는,
    집적 회로의 메모리 자산들을 보호하는 방법.
  8. 제 1 항에 있어서,
    상기 집적 회로는 시스템-온-칩(system-on-chip)을 포함하는,
    집적 회로의 메모리 자산들을 보호하는 방법.
  9. 집적 회로의 메모리 자산들을 보호하는 방법으로서,
    제 1 OTP(one-time programmable) 메모리 어레이의 값 및 제 2 OTP 메모리 어레이의 값을 샘플링하는 단계;
    상기 제 1 OTP 메모리 어레이 및 상기 제 2 OTP 메모리 어레이의 샘플링된 값들을 서로 그리고 프로그래밍되지 않은 OTP 메모리 어레이 값과 비교하는 단계 ― 상기 프로그래밍되지 않은 OTP 메모리 어레이 값은 n 비트들에 대응하고, n 비트들 모두는, 제조 상태의 OTP 메모리 어레이와 연관된 동일한 논리값을 갖고, n은 상기 제 1 OTP 메모리 어레이 및 상기 제 2 OTP 메모리 어레이 각각에서의 메모리 디바이스들의 수임 ―;
    상기 제 1 OTP 메모리 어레이의 샘플링된 값이 상기 제 2 OTP 메모리 어레이의 샘플링된 값과 동등한지 여부를 결정하는 단계;
    상기 제 1 OTP 메모리 어레이의 샘플링된 값이 상기 제 2 OTP 메모리 어레이의 샘플링된 값과 동등하고, 그리고 상기 제 1 OTP 메모리 어레이 및 상기 제 2 OTP 메모리 어레이 각각의 샘플링된 값이 상기 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등한 경우, 집적 회로 성능 장애가 발생했음을 결정하는 단계; 및
    장애 발생 결정에 의해 결정된, 메모리에 대한 액세스를 이용하여 상기 집적 회로를 동작시키는 단계
    를 포함하는,
    집적 회로의 메모리 자산들을 보호하는 방법.
  10. 제 9 항에 있어서,
    상기 집적 회로 성능 장애가 발생했음을 결정하는 단계는:
    상기 제 1 OTP 메모리 어레이의 샘플링된 값이 상기 제 2 OTP 메모리 어레이의 샘플링된 값과 동등하지 않은 경우, 상기 장애가 발생했음을 결정하는 단계; 및
    상기 제 1 OTP 메모리 어레이의 샘플링된 값이 상기 제 2 OTP 메모리 어레이의 샘플링된 값과 동등하고, 그리고 상기 제 1 OTP 메모리 어레이의 샘플링된 값이 상기 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등하지 않고, 그리고 상기 제 2 OTP 메모리 어레이의 샘플링된 값이 상기 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등하지 않은 경우, 상기 장애가 발생하지 않았음을 결정하는 단계를 더 포함하는,
    집적 회로의 메모리 자산들을 보호하는 방법.
  11. 제 9 항에 있어서,
    상기 프로그래밍되지 않은 OTP 메모리 어레이 값은 제로인,
    집적 회로의 메모리 자산들을 보호하는 방법.
  12. 제 9 항에 있어서,
    상기 프로그래밍되지 않은 OTP 메모리 어레이 값은 (2n-1)인,
    집적 회로의 메모리 자산들을 보호하는 방법.
  13. 제 9 항에 있어서,
    보안 신호의 표시를 결정하는 단계
    를 포함하고,
    상기 보안 신호는, 상기 장애 발생이 발생하지 않았다고 결정되는 경우, 보안 동작 모드를 표시하고, 그리고
    상기 보안 신호는, 상기 장애가 발생했다고 결정되는 경우, 비-보안 동작 모드를 표시하는,
    집적 회로의 메모리 자산들을 보호하는 방법.
  14. 제 9 항에 있어서,
    상기 장애가 발생했다고 결정되는 경우, 메모리에 대한 액세스는, 보안 메모리에 대한 제한된 액세스를 포함하는,
    집적 회로의 메모리 자산들을 보호하는 방법.
  15. 제 9 항에 있어서,
    상기 집적 회로를 부팅하는 것은 상기 장애 발생의 검출에 의해 영향받지 않는,
    집적 회로의 메모리 자산들을 보호하는 방법.
  16. 제 9 항에 있어서,
    상기 집적 회로는 시스템-온-칩을 포함하는,
    집적 회로의 메모리 자산들을 보호하는 방법.
  17. 집적 회로의 메모리 자산들을 보호하기 위한 시스템으로서,
    복수의 OTP(one-time programmable) 메모리 어레이들;
    상기 복수의 OTP 메모리 어레이들 각각의 값을 샘플링하도록 구성된 회로소자;
    비교 논리 블록; 및
    적어도 하나의 프로세싱 모듈
    을 포함하고,
    상기 비교 논리 블록은,
    상기 복수의 OTP 메모리 어레이들의 각각의 OTP 메모리 어레이의 샘플링된 값을, 상기 복수의 OTP 메모리 어레이들의 각각의 다른 OTP 메모리 어레이의 샘플링된 값 및 프로그래밍되지 않은 OTP 메모리 어레이 값과 비교하고 ― 상기 프로그래밍되지 않은 OTP 메모리 어레이 값은 n 비트들에 대응하고, n 비트들 모두는, 제조 상태의 OTP 메모리 어레이와 연관된 동일한 논리값을 갖고, n은 상기 복수의 OTP 메모리 어레이들 각각에서의 메모리 디바이스들의 수임 ―, 그리고
    상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등한지 여부를 결정하도록 구성되고,
    상기 비교 논리 블록은 추가로, 상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하고, 그리고 상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등한 경우, 장애가 발생했음을 결정하도록 구성되고, 그리고
    상기 적어도 하나의 프로세싱 모듈은, 장애 발생 결정에 의해 결정된, 메모리에 대한 액세스를 이용하여 상기 집적 회로를 동작시키도록 구성되는,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  18. 제 17 항에 있어서,
    상기 비교 논리 블록은 추가로:
    상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하지 않은 경우, 상기 장애가 발생했음을 결정하고; 그리고
    상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하고, 그리고 상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등하지 않은 경우, 상기 장애가 발생하지 않았음을 결정하도록 구성되는,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  19. 제 17 항에 있어서,
    상기 프로그래밍되지 않은 OTP 메모리 어레이 값은 제로인,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  20. 제 17 항에 있어서,
    상기 프로그래밍되지 않은 OTP 메모리 어레이 값은 (2n-1)인,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  21. 제 17 항에 있어서,
    상기 비교 논리 블록은, 보안 신호의 표시를 결정하도록 구성되고,
    상기 보안 신호는, 상기 장애가 발생하지 않았다고 결정되는 경우, 보안 동작 모드를 표시하고, 그리고
    상기 보안 신호는, 상기 장애 발생이 발생했다고 결정되는 경우, 비-보안 동작 모드를 표시하는,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  22. 제 17 항에 있어서,
    상기 장애가 발생했다고 결정되는 경우, 메모리에 대한 액세스는, 보안 메모리에 대한 제한된 액세스를 포함하는,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  23. 제 17 항에 있어서,
    상기 집적 회로는 상기 장애 발생 결정에 의해 영향받지 않는 루틴(routine)들에 의해 부팅되는,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  24. 제 17 항에 있어서,
    상기 집적 회로는 시스템-온-칩을 포함하는,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  25. 집적 회로의 메모리 자산들을 보호하기 위한 시스템으로서,
    복수의 OTP(one-time programmable) 메모리 어레이들 각각의 값을 샘플링하기 위한 수단;
    상기 복수의 OTP 메모리 어레이들의 각각의 OTP 메모리 어레이의 샘플링된 값을, 상기 복수의 OTP 메모리 어레이들의 각각의 다른 OTP 메모리 어레이의 샘플링된 값 및 프로그래밍되지 않은 OTP 메모리 어레이 값과 비교하기 위한 수단 ― 상기 프로그래밍되지 않은 OTP 메모리 어레이 값은 n 비트들에 대응하고, n 비트들 모두는, 제조 상태의 OTP 메모리 어레이와 연관된 동일한 논리값을 갖고, n은 상기 복수의 OTP 메모리 어레이들 각각에서의 메모리 디바이스들의 수임 ―;
    상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등한지 여부를 결정하기 위한 수단;
    제 1 OTP 메모리 어레이의 샘플링된 값이 제 2 OTP 메모리 어레이의 샘플링된 값과 동등하고, 그리고 상기 제 1 OTP 메모리 어레이 및 상기 제 2 OTP 메모리 어레이 각각의 샘플링된 값이 상기 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등한 경우, 집적 회로 성능 장애가 발생했음을 결정하기 위한 수단; 및
    장애 발생 결정에 의해 결정된, 메모리에 대한 액세스를 이용하여 상기 집적 회로를 동작시키기 위한 수단
    을 포함하는,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  26. 제 25 항에 있어서,
    상기 집적 회로 성능 장애가 발생했음을 결정하기 위한 수단은:
    상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하지 않은 경우, 상기 집적 회로 성능 장애가 발생했음을 결정하기 위한 수단; 및
    상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 각각의 다른 OTP 메모리 어레이의 샘플링된 값과 동등하고, 그리고 상기 각각의 OTP 메모리 어레이의 샘플링된 값이 상기 프로그래밍되지 않은 OTP 메모리 어레이 값과 동등하지 않은 경우, 상기 집적 회로 성능 장애가 발생하지 않았음을 결정하기 위한 수단을 포함하는,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  27. 제 25 항에 있어서,
    상기 프로그래밍되지 않은 OTP 메모리 어레이 값은 제로인,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  28. 제 25 항에 있어서,
    상기 프로그래밍되지 않은 OTP 메모리 어레이 값은 (2n-1)인,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  29. 제 25 항에 있어서,
    보안 신호의 표시를 결정하기 위한 수단
    을 포함하고,
    상기 보안 신호는, 상기 장애가 발생하지 않았다고 결정되는 경우, 보안 동작 모드를 표시하고, 그리고
    상기 보안 신호는, 상기 장애가 발생했다고 결정되는 경우, 비-보안 동작 모드를 표시하는,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  30. 제 25 항에 있어서,
    상기 장애가 발생했다고 결정되는 경우, 메모리에 대한 액세스는, 보안 메모리에 대한 제한된 액세스를 포함하는,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  31. 제 25 항에 있어서,
    상기 집적 회로를 부팅하는 것은 상기 장애 발생 결정에 의해 영향받지 않는,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  32. 제 25 항에 있어서,
    상기 집적 회로는 시스템-온-칩을 포함하는,
    집적 회로의 메모리 자산들을 보호하기 위한 시스템.
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
KR1020157021541A 2013-01-14 2014-01-14 Otp(one-time programmable) 집적 회로 보안 KR101727678B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/741,248 US9262259B2 (en) 2013-01-14 2013-01-14 One-time programmable integrated circuit security
US13/741,248 2013-01-14
PCT/US2014/011412 WO2014110550A1 (en) 2013-01-14 2014-01-14 One-time programmable integrated circuit security

Publications (2)

Publication Number Publication Date
KR20150106431A KR20150106431A (ko) 2015-09-21
KR101727678B1 true KR101727678B1 (ko) 2017-04-17

Family

ID=50073447

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157021541A KR101727678B1 (ko) 2013-01-14 2014-01-14 Otp(one-time programmable) 집적 회로 보안

Country Status (7)

Country Link
US (1) US9262259B2 (ko)
EP (1) EP2943908B1 (ko)
JP (1) JP6050523B2 (ko)
KR (1) KR101727678B1 (ko)
CN (1) CN104903911B (ko)
TW (1) TWI509405B (ko)
WO (1) WO2014110550A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262259B2 (en) * 2013-01-14 2016-02-16 Qualcomm Incorporated One-time programmable integrated circuit security
KR102132247B1 (ko) * 2014-04-03 2020-07-13 에스케이하이닉스 주식회사 원-타임 프로그램 메모리
US10095889B2 (en) * 2016-03-04 2018-10-09 Altera Corporation Techniques for protecting security features of integrated circuits
US10296738B2 (en) * 2017-05-03 2019-05-21 Nuvoton Technology Corporation Secure integrated-circuit state management
US20190050570A1 (en) * 2017-08-14 2019-02-14 Qualcomm Incorporated Computer resource access control based on the state of a non-accessing component
US10659054B2 (en) 2018-02-23 2020-05-19 Nxp B.V. Trusted monotonic counter using internal and external non-volatile memory
WO2020086087A1 (en) * 2018-10-25 2020-04-30 Hewlett-Packard Development Company, L.P. Integrated circuit(s) with anti-glitch canary circuit(s)
CN109977049B (zh) * 2019-03-01 2020-06-23 京微齐力(深圳)科技有限公司 一种控制器及方法、系统
CN112673263B (zh) * 2019-08-15 2023-05-12 深圳市汇顶科技股份有限公司 毛刺信号检测电路、安全芯片和电子设备
US11977662B2 (en) * 2020-04-30 2024-05-07 Dell Products, L.P. One-time programmable features for storage devices
CN112181896B (zh) * 2020-09-25 2024-03-29 加特兰微电子科技(上海)有限公司 运行控制设备、集成电路、无线电器件以及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7398554B1 (en) 2002-04-02 2008-07-08 Winbond Electronics Corporation Secure lock mechanism based on a lock word

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0194090A3 (en) * 1985-03-04 1987-12-23 Lattice Semiconductor Corporation Programmable data security circuit for programmable logic device
KR100274099B1 (ko) * 1991-08-02 2001-01-15 비센트 비.인그라시아 점진적으로 프로그램가능한 비휘발성 메모리 및 이를 구비한 집적 회로와 비휘발성 메모리 프로그래밍 방법
DE10162306A1 (de) * 2001-12-19 2003-07-03 Philips Intellectual Property Verfahren und Anordnung zur Verifikation von NV-Fuses sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
US7840803B2 (en) 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
KR100440451B1 (ko) 2002-05-31 2004-07-14 삼성전자주식회사 전압 글리치 검출 회로, 그것을 구비하는 집적회로장치,그리고 전압 글리치 어택으로부터 집적회로장치를보호하는 장치 및 방법
US6707696B1 (en) 2003-05-15 2004-03-16 Broadcom Corporation Hacker-proof one time programmable memory
US6944083B2 (en) * 2003-11-17 2005-09-13 Sony Corporation Method for detecting and preventing tampering with one-time programmable digital devices
US8112618B2 (en) 2004-04-08 2012-02-07 Texas Instruments Incorporated Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making
US7102951B2 (en) 2004-11-01 2006-09-05 Intel Corporation OTP antifuse cell and cell array
US7442583B2 (en) * 2004-12-17 2008-10-28 International Business Machines Corporation Using electrically programmable fuses to hide architecture, prevent reverse engineering, and make a device inoperable
US7818584B1 (en) 2005-01-25 2010-10-19 Altera Corporation One-time programmable memories for key storage
US20080086781A1 (en) 2006-10-06 2008-04-10 Stephane Rodgers Method and system for glitch protection in a secure system
US7917788B2 (en) 2006-11-01 2011-03-29 Freescale Semiconductor, Inc. SOC with low power and performance modes
US7593248B2 (en) 2006-11-16 2009-09-22 Aptina Imaging Corporation Method, apparatus and system providing a one-time programmable memory device
US8046571B1 (en) 2006-12-18 2011-10-25 Marvell International Ltd. System-on-a-chip (SoC) security using one-time programmable memories
GB2446658B (en) 2007-02-19 2011-06-08 Advanced Risc Mach Ltd Hibernating a processing apparatus for processing secure data
US8150039B2 (en) 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
US8594333B2 (en) 2008-09-05 2013-11-26 Vixs Systems, Inc Secure key access with one-time programmable memory and applications thereof
US8230495B2 (en) * 2009-03-27 2012-07-24 International Business Machines Corporation Method for security in electronically fused encryption keys
US7969179B2 (en) 2009-03-31 2011-06-28 Freescale Semiconductor, Inc. Method and apparatus for increasing security in a system using an integrated circuit
US9111098B2 (en) 2009-07-10 2015-08-18 Certicom Corp. System and method for managing electronic assets
JP5337121B2 (ja) * 2009-09-17 2013-11-06 株式会社東芝 不揮発性半導体記憶装置
US8261011B2 (en) * 2009-10-29 2012-09-04 Freescale Semiconductor, Inc. One-time programmable memory device and methods thereof
JP5118718B2 (ja) * 2010-03-25 2013-01-16 シャープ株式会社 半導体集積回路および電子機器
WO2011119985A2 (en) 2010-03-26 2011-09-29 Maxlinear, Inc. Firmware authentication and deciphering for secure tv receiver
JP2011210316A (ja) * 2010-03-30 2011-10-20 Renesas Electronics Corp 半導体装置及びヒューズ回路の状態判定方法
US8547736B2 (en) 2010-08-03 2013-10-01 Qualcomm Incorporated Generating a non-reversible state at a bitcell having a first magnetic tunnel junction and a second magnetic tunnel junction
GB2483907A (en) 2010-09-24 2012-03-28 Advanced Risc Mach Ltd Privilege level switching for data processing circuitry when in a debug mode
US8613074B2 (en) 2010-09-30 2013-12-17 Micron Technology, Inc. Security protection for memory content of processor main memory
CN103187095B (zh) * 2011-12-30 2017-03-08 联芯科技有限公司 efuse模块的控制方法及带efuse模块的芯片
US8913450B2 (en) * 2012-11-19 2014-12-16 Qualcomm Incorporated Memory cell array with reserved sector for storing configuration information
CN103035077A (zh) * 2012-11-29 2013-04-10 深圳市新国都技术股份有限公司 一种pos机数据信息保护电路
US9262259B2 (en) * 2013-01-14 2016-02-16 Qualcomm Incorporated One-time programmable integrated circuit security

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7398554B1 (en) 2002-04-02 2008-07-08 Winbond Electronics Corporation Secure lock mechanism based on a lock word

Also Published As

Publication number Publication date
CN104903911B (zh) 2017-05-10
JP6050523B2 (ja) 2016-12-21
US9262259B2 (en) 2016-02-16
US20140201607A1 (en) 2014-07-17
CN104903911A (zh) 2015-09-09
TW201439748A (zh) 2014-10-16
EP2943908B1 (en) 2017-07-05
EP2943908A1 (en) 2015-11-18
TWI509405B (zh) 2015-11-21
WO2014110550A1 (en) 2014-07-17
JP2016507829A (ja) 2016-03-10
KR20150106431A (ko) 2015-09-21

Similar Documents

Publication Publication Date Title
KR101727678B1 (ko) Otp(one-time programmable) 집적 회로 보안
TWI483139B (zh) 使用物理性不可複製功能的安全金鑰儲存器
US10205747B2 (en) Protection for computing systems from revoked system updates
TWI640863B (zh) 測試隨機性的儀器以及方法
KR101484331B1 (ko) 데이터 저장 디바이스의 데이터 무결성 검증
TW201600998A (zh) 偵測錯誤注入的方法與裝置
US10068089B1 (en) Systems and methods for network security
TW201644227A (zh) 產生識別金鑰之裝置及方法
JP2016507829A5 (ko)
JP6518798B2 (ja) 安全な集積回路状態を管理する装置およびその方法
EP3407535B1 (en) Apparatus for generating identification key and management method thereof
KR101922931B1 (ko) 보안 장치 및 그 동작 방법
US20100250943A1 (en) Method for security in electronically fused encryption keys
US10339979B2 (en) Secure protection block and function block system and method
US10725935B2 (en) Method for writing in a non-volatile memory of an electronic entity, and related electronic entity
CN114521261A (zh) 用于管理集成电路器件的安全性的未定义生命周期状态标识符
CN106935266B (zh) 从存储器中读取配置信息的控制方法、装置和系统
JP7483174B2 (ja) 攻撃検知装置、攻撃検知方法、及び攻撃検知プログラム
CN112685754A (zh) 一种调试接口的解锁电路及解锁方法
US20140164788A1 (en) Secure Switch Between Modes

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