KR20220022478A - 메모리 기반의 물리적 복제방지 기능들을 제공하기 위한 방법 및 장치 - Google Patents

메모리 기반의 물리적 복제방지 기능들을 제공하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20220022478A
KR20220022478A KR1020217037632A KR20217037632A KR20220022478A KR 20220022478 A KR20220022478 A KR 20220022478A KR 1020217037632 A KR1020217037632 A KR 1020217037632A KR 20217037632 A KR20217037632 A KR 20217037632A KR 20220022478 A KR20220022478 A KR 20220022478A
Authority
KR
South Korea
Prior art keywords
bits
challenge
volatile memory
memory array
shift register
Prior art date
Application number
KR1020217037632A
Other languages
English (en)
Inventor
비크람 비. 수레쉬
마노즈 사흐데브
사누 케이. 매튜
수드히르 케이. 사트파시
Original Assignee
인텔 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코포레이션 filed Critical 인텔 코포레이션
Publication of KR20220022478A publication Critical patent/KR20220022478A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/418Address circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits
    • 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/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/581Generating an LFSR sequence, e.g. an m-sequence; sequence may be generated without LFSR, e.g. using Galois Field arithmetic

Abstract

메모리 셀들 내의 물리적 복제방지 기능 응답은 물리적 복제방지 기능 엔트로피를 더 증대시키기 위해, 열 당 복수의 감지 증폭기(SA) 및 메모리 셀의 재현성을 개선하기 위한 트랜지스터 크기조정, 트랜지스터 임계 전압(VT) 및 메모리 셀 내의 바디 바이어스에 의해 개선된다. 물리적 복제방지 기능은 물리적 복제방지 기능 메모리 어레이에서 이용가능한 많은 수의 판독-시퀀스-순서 조합들을 활용하여, 기하급수적으로 큰 메모리 어레이의 호스팅 및 동작의 면적 및 에너지 비용을 초래하지 않으면서, 기하급수적으로 큰 챌린지-응답 쌍 공간을 생성한다.

Description

메모리 기반의 물리적 복제방지 기능들을 제공하기 위한 방법 및 장치
우선권의 청구
본 출원은 2019년 6월 20일자로 출원되고 발명의 명칭이 "메모리 기반의 물리적 복제방지 기능들을 제공하기 위한 방법 및 장치{METHOD AND APPARATUS TO PROVIDE MEMORY BASED PHYSICALLY UNCLONABLE FUNCTIONS}"인 미국 출원 제16/447,887호에 대해 35 U.S.C.§365(c) 하에서의 우선권을 청구하며, 그것의 전체내용은 참조에 의해 여기에 포함된다.
기술분야
본 개시내용은 물리적 복제방지 기능들, 특히 메모리 기반의 물리적 복제방지 기능들에 관한 것이다.
물리적 복제방지 기능은 칩 식별 디지털 서명들을 저장하기 위해, 그리고 예를 들어 집적 회로들 및 시스템들에서의 비밀 키 생성 및 보안 인증을 위한 암호 기능들에 대한 시드 생성기들로서 사용될 수 있다. 물리적 복제방지 기능은 집적 회로의 물리적 특성들로부터 비밀을 도출한다. 비밀이 집적 회로의 물리적 특성들로부터 도출되기 때문에, 비밀은 회로에 전력이 인가될 때만 추출될 수 있다. 물리적 복제방지 기능은 각각의 집적 회로에 고유한 제조 변동성으로 인한 집적 회로들 간의 차이에 기초한다.
물리적 복제방지 기능은 약한 물리적 복제방지 기능 또는 강력한 물리적 복제방지 기능으로 분류될 수 있다. 약한 물리적 복제방지 기능은 집적 회로의 각각의 파워업 동안 고유한 'n' 비트 값을 생성하고, 이는 주로 비밀 키로서 사용된다. 강력한 물리적 복제방지 기능은 'n-비트 챌린지'를 수락하고 챌린지에 대한 고유 응답(전형적으로 1-비트이지만, 1-비트 초과일 수 있음)을 생성한다. 챌린지-응답 쌍(challenge-response pair)(CRP)은 집적 회로에 고유하며, 집적 회로의 신원을 안전하게 인증하기 위해 사용될 수 있다. 결과적으로, 암호화 회로들을 사용하지 않고서, 강력한 물리적 복제방지 기능이 직접 인증될 수 있다.
메모리 셀들의 제조 변동성은 각각의 파워-온에서 각각의 셀에 대해 각각의 셀에 대해 랜덤 논리 '1' 또는 논리 '0' 상태를 초래하기 때문에, 마이크로프로세서들 및 시스템-온-칩들(System-on-Chip)(SoC)에서 널리 사용되는 메모리 셀들(예를 들어, 정적 랜덤 액세스 메모리(SRAM))은, 각각의 메모리 셀의 파워-온 상태에 기초하는 물리적 복제방지 기능에 대한 잠재적인 엔트로피의 소스이다.
청구된 주제의 실시예들의 특징들은 이하의 상세한 설명이 진행됨에 따라, 그리고 유사한 번호들이 유사한 부분들을 묘사하는 도면을 참조하면 명백해질 것이다.
도 1a는 6 트랜지스터(6T) SRAM 셀의 실시예이다.
도 1b는 도 1a에 도시된 SRAM 셀의 실시예를 도시한다.
도 2는 다중-감지 엔트로피 추출을 갖는 SRAM 메모리 어레이의 부분의 블록도이다.
도 3은 SRAM 어레이 및 SRAM 판독 어드레스 시퀀서에서, 도 1a, 도 1b 및 도 2와 관련하여 설명된 물리적 복제방지 기능 SRAM 셀들을 포함하는 챌린지-응답 물리적 복제방지 기능 회로의 블록도이다.
도 4는 도 3에 도시된 SRAM 판독 어드레스 시퀀서의 실시예이다.
도 5는 SRAM 셀에 의해 제공되는 엔트로피를 갖는 보안 인증을 위한 대규모 챌린지-응답 공간을 제공하는 방법을 도시하는 흐름도이다.
도 6은 챌린지-응답 물리적 복제방지 기능 회로를 포함하는 컴퓨터 시스템의 실시예의 블록도이다.
이하의 상세한 설명이 청구된 주제의 예시적인 실시예들을 참조하여 진행될 것이지만, 그것의 다수의 대안, 수정 및 변형이 본 기술분야의 통상의 기술자에게 명백할 것이다. 따라서, 청구된 주제는 광범위하게 보여지고 첨부된 청구항들에 제시된 대로 정의되도록 의도된다.
그러나, SRAM 셀들은 파워업될 때 시변 거동(time-varying behavior)을 나타낸다. 이로 인해 물리적 복제방지 기능 응답의 재현성 또는 신뢰성이 불량해지고, 에러 정정 코드들(ECC)이 필요할 수 있다.
메모리 기반의 물리적 복제방지 기능(예를 들어, SRAM 셀)은 단 하나의 가능한 챌린지-응답 쌍(파워-업 후의 SRAM 셀들의 상태)만이 존재하는 것으로 인해 약한 물리적 복제방지 기능으로 간주되기 때문에 키 생성을 위한 정적 엔트로피 소스(static entropy source)로서 주로 사용되었다. 강력한 물리적 복제방지 기능들에 대한 요건들 중 하나는 기하급수적으로 큰 챌린지-응답 쌍(CRP) 공간(exponentially large challenge-response pair space)을 갖는 것이므로, 이는 많은 양의 정적 엔트로피를 생성하는 기하급수적으로 큰 메모리 어레이(약한 물리적 복제방지 기능)를 필요로 할 것이다.
SRAM 셀들 내의 물리적 복제방지 기능 응답은 물리적 복제방지 기능 엔트로피를 더 증대시키기 위해, 열 당 복수의 감지 증폭기(SA) 및 SRAM 셀의 재현성을 개선하기 위한 트랜지스터 크기조정, 트랜지스터 임계 전압(VT) 및 SRAM 셀 내의 바디 바이어스에 의해 개선될 수 있다.
강력한 물리적 복제방지 기능은 물리적 복제방지 기능 메모리 어레이에서 이용가능한 많은 수의 판독-시퀀스-순서 조합들을 활용하여, 기하급수적으로 큰 메모리 어레이의 면적 및 에너지 비용을 초래하지 않으면서, 기하급수적으로 큰 챌린지-응답 쌍 공간을 생성한다. 특히, 시스템은 정적 랜덤 액세스 메모리(SRAM) 어레이, 및 챌린지에 의존하는 판독 시퀀스를 갖는 판독 시퀀서를 포함한다. SRAM 어레이는 SRAM 물리적 복제방지 기능들에 의해 사용되는 바와 같은 전력-사이클링 기술을 사용하여 랜덤 값들의 세트를 생성하는 데 사용된다. 물리적 복제방지 기능 챌린지는 mx1 비트 SRAM 어레이로부터 m/2개의 랜덤 비트를 선택하기 위해 사용되며, 여기서 챌린지 비트들은 어레이 어드레스는 물론, 어레이 비트들의 액세스 시퀀스 순서를 결정하여, 인증에 충분한 대규모의 챌린지-응답 공간을 야기한다.
본 발명의 다양한 실시예들 및 양태들은 아래에서 논의되는 세부사항을 참조하여 설명될 것이며, 첨부 도면들은 다양한 실시예들을 도시할 것이다. 아래의 설명 및 도면은 본 발명을 예시하는 것이며 본 발명을 제한하는 것으로 해석되어서는 안 된다. 본 발명의 다양한 실시예들에 대한 완전한 이해를 제공하기 위해 다수의 특정 세부사항이 설명된다. 그러나, 특정한 경우에, 본 발명의 실시예들에 대한 간결한 논의를 제공하기 위해 공지되어 있거나 통상적인 세부사항은 설명되지 않는다.
명세서에서 "일 실시예" 또는 "실시예"에 대한 참조는 그 실시예와 관련하여 설명된 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함될 수 있음을 의미한다. 명세서의 다양한 위치들에서의 "일 실시예에서"라는 문구의 출현은 반드시 모두 동일한 실시예를 지칭하는 것은 아니다.
도 1a는 6 트랜지스터(6T) SRAM 셀(100)의 실시예이다. 각각의 트랜지스터는 금속-산화물-반도체 전계-효과-트랜지스터(MOSFET)일 수 있다. 트랜지스터들 T1 및 T2는 P-채널 MOSFET(NMOS) 트랜지스터들이고, 트랜지스터들 T3, T4, T5 및 T6은 N-채널 MOSFET(PMOS) 트랜지스터들이다. 6T SRAM 셀(100) 내의 각각의 비트는 2개의 교차-결합된 인버터를 형성하는 4개의 트랜지스터(T1, T2, T3, T4)를 포함하는 저장 셀에 저장된다. 저장 셀은 로직 0 또는 로직 1을 저장하는 데 사용되는 두 가지 안정 상태를 갖는다.
2개의 추가 액세스 트랜지스터 T5 및 T6은 판독 및 기입 동작들 동안 저장 셀에 대한 액세스를 제어한다. 액세스 트랜지스터들 T5 및 T6은 워드 라인(WL)이 판독 또는 기입 동작을 위해 활성화될 때마다 턴 온되어, 저장 셀을 상보 비트 라인들(BL, BL#)에 연결한다. 워드 라인이 활성화되지 않을 때, 액세스 트랜지스터들 T5 및 T6이 턴오프되고, 6T SRAM 셀(100)에 전력이 인가되는 동안 데이터가 저장 셀에 유지된다.
SRAM 셀은 휘발성 메모리이고, 즉 전력이 인가되지 않을 때, 저장 셀 내의 데이터가 손실된다. 전력이 인가될 때, 저장 셀 내의 트랜지스터들(T1, T2, T3, T4) 사이의 내재적 불일치(inherent mismatch)로 인해, 저장 셀은 특정한 안정 상태(로직 1 또는 로직 0)에 대한 고유 바이어스(intrinsic bias)를 갖는다. 전형적으로, SRAM 셀(100)은 SRAM 셀(100)이 바이어스되지 않고 프로세스 변동에 대해 강건하도록 설계된다.
이상적인 대칭 SRAM 셀(100)에 대해(즉, 트랜지스터들 간의 불일치가 없음), SRAM 셀(100)의 내부 데이터는 시스템 파워업 동안 준안정 상태를 취한다. 환경적 잡음 소스는 SRAM 셀(100)을 그것의 쌍안정 상태들(로직 1 또는 로직 0) 중 하나를 향해 밀어넣을 수 있다. 쌍을 이루는 트랜지스터들(트랜지스터 쌍 T1(NMOS) 및 T3(PMOS), 또는 트랜지스터 쌍 T2(NMOS) 및 T4(PMOS)) 사이의 임의의 국부적 불일치는 본질적으로 SRAM 셀(100)을 그것의 준안정 시작점으로부터 왜곡(skew)하고, SRAM 셀(100)의 쌍안정 상태들 중 하나를 향한 초기 바이어스를 제공한다. 쌍을 이루는 트랜지스터들 사이의 국부적 불일치에 대한 SRAM 셀(100)의 감도를 증가시킴으로써, 더 큰 초기 바이어스에 대한 확률이 증가되고, 전력이 인가된 후의 SRAM 셀(100) 상태의 재현성은 변동하는 환경 조건에 대해 더 강건해진다. SRAM 셀(100)의 거동에 대한 프로세스 변동의 영향이 클수록, 반복되는 파워-업 사이클들에서의 파워-온 안정 상태의 재현성이 더 높을 것이다.
SRAM 셀 내의 NMOS 드라이버 디바이스들과 PMOS 로드 디바이스들 둘 다는 SRAM 셀의 초기 비대칭 바이어스에 영향을 준다. 셀 변동성(σcell)은 NMOS 드라이버와 PMOS 로드 디바이스의 변동의 합으로서 특성화될 수 있고, 트랜지스터 면적(폭 x 길이)에 의존한다. 예를 들어, 두 개의 트랜지스터 간의 불일치는 각각의 트랜지스터의 면적(W x L)에 의존한다. 따라서, NMOS(또는 PMOS) 트랜지스터들을 PMOS(또는 NMOS)에 비해 크게 만드는 것에 의해, 셀 변동성이 감소될 수 있다. 파워-업 시의 파워-온 안정 상태의 재현성을 보장하기 위해, 각각의 트랜지스터 쌍 내의 트랜지스터들 중 하나는 다른 것보다 큰 면적을 가질 수 있고, 예를 들어 트랜지스터 쌍들 내의 NMOS(또는 PMOS) 트랜지스터는 트랜지스터 쌍들 내의 PMOS(또는 NMOS) 트랜지스터에 비교하여 큰 면적을 가질 수 있다.
트랜지스터의 임계 전압(Vth)은 트랜지스터의 소스와 드레인 단자 사이에 전도 경로를 생성하는 데 필요한 최소 게이트-소스 전압 VGS이다. 파워-업 시의 파워-온 안정 상태의 재현성을 보장하기 위해, NMOS(또는 PMOS) 트랜지스터들은 낮은 임계 전압을 갖고 PMOS(또는 NMOS) 트랜지스터들은 높은 임계 전압을 갖는다.
공급 전압이 상승됨에 따라 턴온되고 있는 PMOS 트랜지스터에 순방향 바디 바이어스(Forward Body Bias)(FBB)를 생성하기 위해 PMOS 트랜지스터 바디의 바디를 PMOS 트랜지스터의 게이트에 연결함으로써, 파워-업시의 파워-온 안정 상태의 재현성이 더 개선될 수 있다. SRAM 셀 내의 다른 PMOS 트랜지스터는 역방향 바디 바이어스 또는 순방향 바디 바이어스를 갖지 않는다. 도 1b는 T1의 바디와 게이트 사이의 제1 연결부(102), 및 T2의 바디와 게이트 사이의 제2 연결부(104)를 갖는, 도 1a에 도시된 SRAM 셀의 실시예를 도시한다.
SRAM 메모리 칩(집적 회로)은 도 1a와 관련하여 설명된 6 트랜지스터(6T) SRAM 셀(100)의 행들 및 열들의 어레이를 포함한다. 행 내의 각각의 SRAM 셀(100)은 행에 연관된 워드 라인(WL)에 결합되고, 열 내의 각각의 SRAM 셀(100)은 2개의 상보 비트 라인(BL, BL#)에 결합된다. 각각의 SRAM 셀(100)은 그것을 "어드레싱"하는 데 사용될 수 있는 특정 워드 라인과 비트 라인의 교차점에 있다. SRAM 셀(100)의 상태를 판독하기 위해, 워드 라인이 활성화되어(예를 들어, 로직 1로 설정됨), 워드 라인에 결합된 행 내의 모든 SRAM 셀(100)을 활성화한다. 상보 비트 라인(BL, BL#)의 신호는 SRAM 셀(100)의 상태에 의존한다. 상보 비트 라인들(BL, BL#)에 결합된 감지 증폭기는 비트 라인의 신호를 감지하여, SRAM 셀의 상태(로직 1 또는 로직 0)를 나타내는 증폭된 신호를 출력한다.
도 2는 다중 감지 엔트로피 추출을 갖는 SRAM 메모리 어레이(200)의 부분의 블록도이다. SRAM 열(201) 내의 복수의 SRAM 셀(100) 각각으로부터의 상보 비트 라인들(BL, BL#)(232)은 홀수 개의 감지 증폭기에 결합되며, 도 2에 도시된 실시예에는 3개의 감지 증폭기(SA)(SA1(202), SA2(204), SA3(206))가 존재한다. 다른 실시예들에서, 3보다 큰 임의의 홀수 개수의 감지 증폭기가 있을 수 있다(예를 들어, 5개, 7개, 9개...). 2개의 추가 감지 증폭기(SA1(202), SA2(204))는 물리적 복제방지 기능의 엔트로피를 증대시키기 위해 SRAM 열(201) 내의 SRAM 셀(100) 내의 상보 비트 라인들(BL, BL#)(232)에 대한 전류 드라이브의 변동성을 캡처하는 데 사용된다.
SRAM 메모리 어레이(200)는 레지스터(214), 타이밍 블록(212), 및 2개의 지연 블록(지연 1(208) 및 지연 2(210))을 포함한다. 타이밍 블록(221)은 제1 제어 신호(216)를 레지스터(214)에 출력하여, 레지스터(214)가 SRAM 열(201)에 어드레스(218)를 출력하여 SRAM 열(201) 내의 SRAM 셀(100)을 선택할 수 있게 한다. 타이밍 블록(221)은 제2 제어 신호(220)를 감지 증폭기 SA3(206)에 출력하여, 감지 증폭기 SA3(206)이 SA3 출력을 출력할 수 있게 한다. 타이밍 블록(221)은 또한 제3 제어 신호를 지연 1(208)에 출력하여, 감지 증폭기 SA2(204)가 SA2 출력을 출력할 수 있게 하기 위한 제4 제어 신호(226)를 출력한다. 타이밍 블록(221)은 또한 제5 제어 신호를 지연 2(210)에 출력하여, 감지 증폭기 SA1(202)이 SA1 출력을 출력할 수 있게 하기 위한 제6 제어 신호(228)를 출력한다.
감지 증폭기 SA1(202)은 신뢰성있는 감지 데이터를 제공하기 위해 (2개의 지연 블록(지연 1(208) 및 지연 2(210))에 의해 제공되는 지연에 기초하는) 완화된 타이밍을 갖는다. 감지 증폭기 SA2(204) 및 감지 증폭기 SA3(206)은 점점 더 공격적인 타이밍을 갖는다(감지 증폭기 SA3(지연 없음), 감지 증폭기 SA2(지연 블록(208)에 의해 제공되는 지연)). 전형적으로, 감지 증폭기 SA1(202) 및 감지 증폭기 SA2(204) 둘 다는 신뢰성 있는 결과, 즉 SA1 출력 및 SA2 출력을 제공한다. 전형적으로, 감지 증폭기 SA3(206)은, SRAM 셀 전류가 공칭보다 높은 경우에는 SA3 출력에서, 감지 증폭기 SA2(204) 및 감지 증폭기 SA1(202) 각각의 출력들 SA2 출력, SA1 출력에서의 감지 증폭기 SA2(204) 및 감지 증폭기 SA1(202)과 동일한 결과를 제공하고, 그렇지 않은 경우에는 반대 결과를 제공한다.
출력 로직(230)은 각각의 감지 증폭기 SA1(202), SA2(204), SA3(206)으로부터 SA 출력(SA1 출력, SA2 출력, SA3 출력)을 수신하고 2개의 결과 R1, R2를 제공하는데, (i) 결과 R1은 과반수 출력(M)이고, (ii) 결과 R2는 1 비트 차이(D)이다. 과반수 출력(M)의 값은 두 개 이상의 감지 증폭기 SA1(202), SA2(204), SA3(206)에 의해 생성된 출력을 의미한다. 차이(D)의 값은 감지 증폭기들 SA1(202), SA2(204), SA3 중 하나가 상보적 출력인 경우에 '참'이다(예를 들어, 감지 증폭기들 중 2개의 출력은 로직 1이고 제3 감지 증폭기의 출력은 로직 0임). 과반수 출력(M)은 물리적 복제방지 기능 응답(R1)을 생성하기 위해 출력 로직(230)에 의해 프로세싱된다. 차이 비트 D는 물리적 복제방지 기능의 고유성에 대한 지원 증거를 제공하는 데 사용되며, R2 응답을 제공하기 위해 출력 로직(230)에 의해 프로세싱될 수 있다.
실시예에서, 출력 로직(230)으로부터 출력된 응답 R1 및 응답 R2 둘 다는 인증 서버에 송신된다. 예를 들어, 인증 서버는 레지스터(214)에 저장된 일련의 m개의 챌린지를 송신할 수 있고, 그에 응답하여, 물리적 복제방지 기능은 각각 m개의 R1 및 R2 응답을 송신한다. R2 응답은 물리적 복제방지 기능의 신뢰성을 확인하기 위해 사용될 수 있다. 이러한 물리적 복제방지 기능에서, 전체 SRAM 셀 엔트로피는 SRAM 셀의 판독 전류뿐만 아니라 SRAM 셀의 논리 레벨(SRAM 셀의 상태)에 의해 결정된다.
감지 증폭기를 인에이블하기 위한 제어 신호들의 타이밍은, 공칭 감지 증폭기들 SA1(202) 및 SA3(206)이 상보적 데이터(하나는 로직 1이고 다른 하나는 로직 0)를 캡처하도록 선택될 수 있다. 예를 들어, 감지 증폭기 SA3(206)에 대한 타이밍이 제약되는 동안 감지 증폭기 SA1(202)에 대한 타이밍은 더 완화될 수 있고, 따라서 감지 증폭기 SA3(206)은 시간의 50%만 정확한 데이터를 캡처한다.
물리적 복제방지 기능(PUF)은 SRAM의 단일 액세스를 사용하여 동일한 챌린지에 대해 각각의 칩 상에서 고유한 응답을 생성한다. 종래의 SRAM의 물리적 복제방지 기능의 챌린지-응답 공간은 SRAM 내의 비트들의 수와 동일하다. 액세스들의 시퀀스의 순서에 의존하는 고유한 응답을 갖는, SRAM에 대한 액세스들의 시퀀스로부터의 챌린지/응답은 머신 알고리즘을 사용하여 고유한 응답을 학습하는 것을 어렵게 함으로써 공격 저항을 증가시킨다.
실시예에서, 소형 메모리 어레이에서 이용가능한 다수의 판독-시퀀스-순서 조합은 대규모 메모리 어레이를 호스팅하고 동작시키는 영역 및 에너지 비용을 초래하지 않으면서, 기하급수적으로 큰 챌린지 응답 공간을 생성하는 데 사용된다. 판독 시퀀서의 판독 시퀀스는 챌린지에 의존한다. 챌린지는 mx1 비트 메모리 어레이로부터 m/2개의 랜덤 비트를 선택하기 위해 사용되고, 여기서 챌린지 비트들은 어레이 어드레스, 및 어레이 비트들의 액세스 시퀀스 순서 둘 다를 결정한다. 챌린지에 의존하여, 두 개(또는 그 이상)의 SRAM 셀 간에 연속적으로 경합이 생성된다. m이 128인 실시예에서, 랜덤 비트들의 수는 64이고, 메모리 어레이는 128비트이고, 챌린지-응답 공간은 2420이다. 다른 실시예들에서, m은 128보다 작거나 클 수 있다.
SRAM이 인증에 사용되는 것을 허용하기 위해, SRAM의 물리적 복제방지 기능들에 대한 챌린지 응답 공간은 SRAM 어드레스 공간의 조합 및 시퀀싱을 통해 증가된다. 기존 SRAM 기반의 강력한 물리적 복제방지 기능은 2420 비트의 챌린지 응답 공간을 생성하기 위해 2420 비트를 필요로 한다. 실시예에서, 2420 비트의 챌린지 응답 공간은 기하급수적으로 큰 챌린지 공간을 실현하기 위해 완전히 합성가능한 주변 로직(fully-synthesizable peripheral logic)을 갖는 기존의 128-비트 SRAM 어레이에 의해 제공된다.
전형적인 SRAM 아키텍처에서, 챌린지들은 어드레스 디코더에 송신되고, 이는 상당히 큰 어레이 크기로 이어진다. 예를 들어, 64 비트 챌린지에 대해, 264개의 SRAM 셀이 요구된다.
도 3은 SRAM 어레이(304) 및 SRAM 판독 어드레스 시퀀서(302)에서 도 1a, 도 1b 및 도 2와 관련하여 설명된 물리적 복제방지 기능 SRAM 셀들을 포함하는 챌린지-응답 물리적 복제방지 기능 회로(300)의 블록도이다. 도시된 실시예에서, SRAM 어레이 내의 m개의 셀들의 어레이는 m개의 행을 갖는 단일 열(즉, m x 1 어레이)을 갖는다. m x 1 SRAM 어레이(304) 내의 m개의 SRAM 셀은 물리적 복제방지 기능 회로에 대한 엔트로피 소스를 제공한다. SRAM 판독 어드레스 시퀀서(302)는 챌린지에 대한 응답을 생성하기 위해 사용되는 SRAM 어레이(304) 내의 m 비트 중의 n개를 무작위로 선택하기 위해, SRAM 판독 어드레스 시퀀서(302)에 입력된 x-비트 챌린지의 상태에 기초하여 SRAM 어레이(304)에 대한 어드레스의 의사-랜덤 선택을 수행한다.
각각의 판독 어드레스에 대해, 비트는 SRAM 어레이(304) 내의 해당 어드레스에 있는 셀로부터 판독되고 n-비트 시프트 레지스터(306)로 로드된다. SRAM 어레이(304) 내의 n개의 개별 비트 위치가 판독된 후, n-비트 시프트 레지스터(306) 내의 n-비트는 n-비트 출력 레지스터(308)에 저장된다. n-비트 출력 레지스터 내의 n-비트는 본 기술분야의 통상의 기술자에게 공지된 기능들을 사용하여 단일 비트 응답으로 압축될 수 있다.
도 4는 도 3에 도시된 SRAM 판독 어드레스 시퀀서(302)의 실시예이다. SRAM 판독 어드레스 시퀀서(302)는 2개의 선형 피드백 시프트 레지스터(linear-feedback shift register)(LFSR)(402, 404)를 포함한다. 선형 피드백 시프트 레지스터(LFSR)는 입력 비트가 그것의 이전 상태의 선형 기능인 시프트 레지스터이다. 선형 기능의 예는 배타적 OR(XOR)이다. LFSR의 초기 값은 시드라고 지칭되고, 의사-랜덤 출력은 현재(또는 이전 상태)에 의해 결정된다.
LFSR(402)은 SRAM(304)에 대한 메모리 어드레스들의 의사-랜덤 선택을 가능하게 한다. LFSR(404)은 선택된 메모리 어드레스들로부터의 메모리 어드레스들의 시퀀스의 선택을 가능하게 한다. LFSR(402)은 (m/2)개 SRAM 어드레스들의 고유한 시퀀스들을 생성한다. 따라서, (m/2)!(1로부터 m/2까지의 정수들의 곱)개의 가능한 시퀀스가 존재한다. LFSR(404)의 가장 큰 크기는 log2((m/2)!)이다.
SRAM 판독 어드레스 시퀀서(302)의 동작은 128개의 SRAM 셀(m=128); 64 응답 비트(n=64); 124-비트 LFSR(402)(p1=124); 및 296-비트 LFSR(404)(p2=296); 420-비트 챌린지(p1+p2)에 대해 설명될 것이다. 어드레스 공간이 m=128인 SRAM에 대해, m/2=64개의 어드레스가 선택되어, mCm /2개의 조합(즉, m 비트로 형성될 수 있는 m/2개의 서브세트)을 제공한다. SRAM 판독 어드레스 시퀀서(302)의 동작은 도 4 및 도 5와 관련하여 설명될 것이다.
도 5는 SRAM 셀에 의해 제공되는 엔트로피를 갖는 보안 인증을 위한 대규모 챌린지-응답 공간을 제공하는 방법을 도시하는 흐름도이다.
블록(500)에서, 420개의 챌린지 비트, 즉 124-비트(p1) 및 296-비트(p2)가 각각 LFSR1 및 LFSR2에 로드된다.
블록(502)에서, LFSR1은 의사-랜덤 시퀀스를 생성하는 몇 개의 미리 결정된 클록 사이클 동안 실행된다. 주기적 간격들로, 64개의 7-비트 SRAM 어드레스가 의사-랜덤 LFSR 데이터 스트림으로부터 추출된다.
LFSR(404)이 최대 길이라고 가정하면, LFSR(404)은 (2p1 - 1)의 사이클 시간을 가지며, 여기서 p1은 LFSR의 길이이다. 결과적으로, 이 선택을 가능하게 하는 가장 큰 LFSR(404)의 크기는 log2(mCm/2)이다. 따라서, LFSR(404)에 송신되는 챌린지들의 수도 log2(mCm/2)와 동일하다.
LFSR(404)과 마찬가지로, LFSR(402)은 몇 개의 미리 결정된 사이클 동안 동작하고, 일정한 간격으로 64개의 6비트 어드레스를 생성한다. LFSR(402)은 (m/2)개 SRAM 어드레스의 고유 시퀀스들을 생성한다. 따라서, (m/2)!(1로부터 m/2까지의 정수들의 곱)개의 가능한 시퀀스가 존재한다. LFSR(404)의 가장 큰 크기는 log2((m/2)!)이다. SRAM 어드레스 공간(예를 들어, m 비트)이 제한 요소이기 때문에, LFSR(402) 및 LFSR(404)의 크기의 추가적인 증가는 챌린지 공간을 증가시키지 않을 것이다. SRAM 판독 어드레스 시퀀서(302)는 SRAM 어드레스 공간의 조합 및 시퀀싱을 가능하게 하고, 상당한 비용 없이 대규모(>400)의 챌린지-응답 쌍 공간을 가능하게 한다.
블록(504)에서, 추출된 어드레스들이 저장된다. LFSR(404)로부터 추출된 어드레스들은 어드레스 레지스터(406)(물리적 복제방지 기능 어드레스 레지스터라고도 지칭될 수 있음)에 저장된다. LFSR(402)로부터 추출된 어드레스들은 어드레스 시퀀서(408)(물리적 복제방지 기능 어드레스 시퀀서라고도 지칭될 수 있음)에 저장된다.
블록(506)에서, LFSR(402)은 SRAM에 대한 고유 어드레스 시퀀스를 생성하기 위해 사용된다. 고유 어드레스 시퀀스는 각각의 챌린지에 대해 고유하다. 어드레스 시퀀서(408)에 저장된 각각의 어드레스는 어드레스 레지스터(406)에서 7-비트 위치를 선택하기 위해 어드레스 디코더(410)에 의해 순차적으로 디코딩된다. 이 위치의 내용(7 비트)은 어드레스 디코더(412)에 의해 디코딩되고 SRAM 내의 위치에 액세스하는 데 사용되는 SRAM 어드레스를 식별한다. 다음으로, 식별된 SRAM 위치의 내용이 판독되어 n-비트 시프트 레지스터(306)(도 3)에 로드된다.
LFSR(402) 및 LFSR(404)은 어드레스 생성은 물론, 그것의 시퀀싱의 병렬 실행을 가능하게 한다. 다른 실시예에서, LFSR(402) 및 LFSR(404)은 LFSR(402) 및 LFSR(404)에 의해 수행되는 2개의 동작을 순차적으로 실행하는 단일 LFSR로서 구현되어, SRAM 판독 어드레스 시퀀서(302)의 면적 및 에너지 풋프린트를 감소시킬 수 있다.
판독 시퀀서 회로는 엔트로피 소스에 독립적이다. 다른 실시예에서, 엔트로피 소스는 다른 메모리 어레이 또는 다른 물리적 복제방지 기능, 예를 들어 중재자 물리적 복제방지 기능, 지연 기반 물리적 복제방지 기능, 전류 미러 물리적 복제방지 기능 또는 다른 비휘발성 메모리 기반의 물리적 복제방지 기능에 의해 제공될 수 있다.
도 6은 챌린지-응답 물리적 복제방지 기능 회로(300)를 포함하는 컴퓨터 시스템(600)의 실시예의 블록도이다. 컴퓨터 시스템(600)은 서버, 워크스테이션 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터 및/또는 태블릿 컴퓨터를 포함하지만 이에 제한되지 않는 컴퓨팅 디바이스에 대응할 수 있다.
컴퓨터 시스템(600)은 프로세서, 그래픽, 메모리, 및 입력/출력(I/O) 제어 로직을 하나의 SoC 패키지로 결합하는 시스템 온 칩(SOC 또는 SoC)(604)을 포함한다. SoC(604)는 적어도 하나의 중앙 처리 장치(CPU) 모듈(608), 휘발성 메모리 컨트롤러(614), 및 그래픽 프로세서 유닛(GPU)(610)을 포함한다. 다른 실시예들에서, 휘발성 메모리 컨트롤러(614)는 SoC(604)의 외부에 있을 수 있다. CPU 모듈(608)은 적어도 하나의 프로세서 코어(602), 레벨 2(L2) 캐시(606), 및 챌린지-응답 물리적 복제방지 기능 회로(300)를 포함한다.
도시되지는 않지만, 프로세서 코어(들)(602) 각각은 하나 이상의 명령어/데이터 캐시, 실행 유닛, 프리페치 버퍼, 명령어 큐, 분기 어드레스 계산 유닛, 명령어 디코더, 부동 소수점 유닛, 리타이어먼트 유닛 등을 내부적으로 포함할 수 있다. CPU 모듈(608)은 일 실시예에 따라 Intel® Corporation에 의해 제공되는 것과 같은 단일 코어 또는 다중 코어 범용 프로세서에 대응할 수 있다.
그래픽 프로세서 유닛(GPU)(610)은 하나 이상의 GPU 코어, 및 GPU 코어에 대한 그래픽 관련 데이터를 저장할 수 있는 GPU 캐시를 포함할 수 있다. GPU 코어는 하나 이상의 실행 유닛과 하나 이상의 명령어 및 데이터 캐시를 내부적으로 포함할 수 있다. 추가적으로, 그래픽 프로세서 유닛(GPU)(610)은 하나 이상의 버텍스 프로세싱 유닛, 래스터화 유닛, 미디어 프로세싱 유닛, 및 코덱과 같은, 도 6에 도시되지 않은 다른 그래픽 로직 유닛들을 포함할 수 있다.
I/O 서브시스템(612) 내에서, 프로세서 코어(들)(602) 내에서 이용되는 호스트 통신 프로토콜을 특정 I/O 디바이스들과 호환가능한 프로토콜로 변환하기 위해 하나 이상의 I/O 어댑터(들)(616)가 존재한다. 변환을 위해 어댑터들이 사용될 수 있는 프로토콜들 중 일부는 PCI(Peripheral Component Interconnect)-익스프레스(PCIe); 범용 직렬 버스(USB); SATA(Serial Advanced Technology Attachment) 및 IEEE(Institute of Electrical and Electronics Engineers) 1594 "Firewire"를 포함한다.
I/O 어댑터(들)(616)는 예를 들어 디스플레이 및/또는 터치 스크린 디스플레이(640)를 포함하는 사용자 인터페이스 디바이스(들), 프린터, 키패드, 키보드, 통신 로직, 하드 디스크 드라이브("HDD"), 고체 상태 드라이브("SSD"), 이동식 저장 매체, 디지털 비디오 디스크(DVD) 드라이브, 컴팩트 디스크(CD) 드라이브, RAID(Redundant Array of Independent Disks), 테이프 드라이브 또는 다른 저장 디바이스를 포함할 수 있는 유선 및/또는 무선의 저장 디바이스(들)를 포함할 수 있는 외부 I/O 디바이스들(624)과 통신할 수 있다. 저장 디바이스들은 직렬 부착 SCSI(Serial Attached SCSI(Small Computer System Interface))(SAS), PCI 익스프레스(Peripheral Component Interconnect Express)(PCIe), NVM 익스프레스(NVMe) 오버 PCI 익스프레스(Peripheral Component Interconnect Express)(PCIe) 및 직렬 ATA(Serial ATA(Advanced Technology Attachment))(SATA)를 포함하지만 그에 제한되지 않는 다양한 프로토콜들 중 하나 이상을 사용하여 하나 이상의 버스를 통해 통신적으로 및/또는 물리적으로 함께 결합될 수 있다. I/O 어댑터(들)(616)는 또한 고체 상태 드라이브("SSD")(618)와 통신할 수 있다.
추가로, 하나 이상의 무선 프로토콜 I/O 어댑터가 존재할 수 있다. 무선 프로토콜들의 예들은 특히, IEEE 802.15 및 Bluetooth, 4.0과 같은 개인 영역 네트워크; IEEE 802.11 기반 무선 프로토콜과 같은 무선 근거리 통신망; 및 셀룰러 프로토콜에서 사용된다.
비휘발성 메모리(NVM) 디바이스는 디바이스에 대한 전력이 차단되어도 상태가 확정적인 메모리이다. 일 실시예에서, NVM 디바이스는 블록 어드레싱가능한 메모리 디바이스, 예컨대 NAND 기술, 또는 더 구체적으로는 다중 임계 레벨 NAND 플래시 메모리(예를 들어, 단일-레벨 셀("SLC"), 다중-레벨 셀("MLC"), 4중-레벨 셀(Quad-Level Cell)("QLC"), 3중-레벨 셀(Tri-Level Cell)("TLC"), 또는 소정의 다른 NAND)를 포함할 수 있다. NVM 디바이스는 또한 바이트 어드레싱가능한 라이트-인-플레이스(write-in-place) 3차원 크로스포인트 메모리 디바이스, 또는 다른 바이트 어드레싱가능한 라이트-인-플레이스 NVM 디바이스들(영구적 메모리라고도 지칭됨), 예컨대 단일 또는 다중 레벨 상 변화 메모리(PCM) 또는 스위치가 있는 상변화 메모리(phase change memory with a switch)(PCMS), 칼코게나이드 상변화 재료(예를 들어, 칼코게나이드 유리)를 사용하는 NVM 디바이스들, 금속 산화물 기반, 산소 결손 기반 및 전도성 브리지 랜덤 액세스 메모리(CB-RAM)를 포함한 저항성 메모리, 나노와이어 메모리, 강유전성 랜덤 액세스 메모리(FeRAM, FRAM), 멤리스터 기술을 통합한 자기저항성 랜덤 액세스 메모리(MRAM), 스핀 전달 토크(STT)-MRAM, 스핀트로닉 자기 접합 메모리 기반 디바이스, 자기 터널링 접합(MTJ) 기반 디바이스, DW(Domain Wall) 및 SOT(Spin Orbit Transfer) 기반 디바이스, 사이리스터 기반 메모리 디바이스, 또는 상술한 것 중 임의의 것의 조합, 또는 다른 메모리를 포함할 수 있다.
I/O 어댑터들(616)은 버스(644)를 통해 NVMe(NVM 익스프레스) 오버 PCIe(PCI 익스프레스) 프로토콜을 사용하여 SSD(618) 내의 호스트 인터페이스(628)에 통신적으로 결합되는 PCI 익스프레스(PCIe) 어댑터를 포함할 수 있다. NVM(Non-Volatile Memory) 익스프레스(NVMe) 표준들은 호스트 소프트웨어가 고속 직렬 컴퓨터 확장 버스인 PCI(Peripheral Component Interconnect) 익스프레스(PCIe)를 통해 비휘발성 메모리 서브시스템(예를 들어, SSD(Solid-State Drive))과 통신하기 위한 레지스터 레벨 인터페이스를 정의한다. NVM 익스프레스 표준은 www.nvmexpress.org에서 입수가능하다. PCIe 표준은 www.pcisig.com에서 입수가능하다.
휘발성 메모리(626)는 휘발성 메모리 컨트롤러(614)에 통신적으로 결합된다. 휘발성 메모리(626)는 디바이스에 대한 전력이 차단될 때 그것의 상태(따라서 이에 저장된 데이터)가 불확정적인 메모리이다. 동적 휘발성 메모리는 상태를 유지하기 위해 디바이스에 저장된 데이터의 리프레시를 필요로 한다. 동적 휘발성 메모리의 일례는 동적 랜덤 액세스 메모리(DRAM) 또는 동기식 DRAM(SDRAM)과 같은 일부 변형을 포함한다. 본 명세서에 설명된 바와 같은 메모리 서브시스템은 DDR3(더블 데이터 레이트 버전 3, 2007년 6월 27일에 JEDEC(Joint Electronic Device Engineering Council)에 의한 최초 릴리스), DDR4(DDR 버전 4, JEDEC에 의해 2012년 9월에 공개된 초기 사양), DDR4E(DDR 버전 4), LPDDR3(저전력 DDR 버전 3, JESD209-3B, JEDEC에 의해 2013년 8월), LPDDR4(LPDDR 버전 4, JESD209-4, 2014년 8월 JEDEC에 의해 최초 공개), WIO2(와이드 입력/출력(Wide Input/Output) 버전 2, JESD229-2, 2014년 8월 JEDEC에 의해 최초 공개), HBM(고대역폭 메모리(High Bandwidth Memory), JESD325, 2013년 10월 JEDEC에 의해 최초 공개), DDR5(DDR 버전 5, JEDEC에 의해 현재 논의 중), LPDDR5(JEDEC에 의해 현재 논의 중), HBM2(HBM 버전 2, JEDEC에 의해 현재 논의 중), 또는 메모리 기술들 중 다른 것들 또는 조합들, 및 이러한 사양들의 파생물들 또는 확장들에 기초하는 기술들과 같은 다수의 메모리 기술과 호환될 수 있다. JEDEC 표준은 www.jedec.org에서 입수가능하다.
운영 체제(642)는 메모리 할당 및 I/O 디바이스에 대한 액세스를 포함하는 컴퓨터 하드웨어 및 소프트웨어를 관리하는 소프트웨어이다. 운영 체제들의 예는 Microsoft® Windows®, Linux®, iOS® 및 Android®를 포함한다.
본 명세서에 도시된 흐름도들은 다양한 프로세스 액션들의 시퀀스들의 예들을 제공한다. 흐름도들은 소프트웨어 또는 펌웨어 루틴에 의해 실행될 동작들은 물론, 물리적 동작들을 나타낼 수 있다. 일 실시예에서, 흐름도는 하드웨어 및/또는 소프트웨어에서 구현될 수 있는 유한 상태 머신(FSM)의 상태를 도시할 수 있다. 특정 시퀀스 또는 순서로 표시되지만, 달리 지정되지 않는 한, 액션들의 순서는 수정될 수 있다. 따라서, 도시된 실시예들은 예로서 이해되어야 하며, 프로세스는 다른 순서로 수행될 수 있고, 일부 액션들은 병렬로 수행될 수 있다. 추가로, 다양한 실시예들에서 하나 이상의 액션이 생략될 수 있으며; 따라서 모든 실시예에서 모든 액션들이 필요한 것은 아니다. 다른 프로세스 흐름들이 가능하다.
다양한 동작들 또는 기능들이 본 명세서에 설명되는 범위 내에서, 그것들은 소프트웨어 코드들, 명령어들, 구성들 및/또는 데이터로서 설명되거나 정의될 수 있다. 콘텐츠는 직접 실행파일("객체" 또는 "실행파일" 형식), 소스 코드 또는 차이 코드("델타" 또는 "패치" 코드)일 수 있다. 본 명세서에 설명된 실시예들의 소프트웨어 콘텐츠는 콘텐츠가 저장된 제품을 통해, 또는 통신 인터페이스를 통해 데이터를 송신하기 위해 통신 인터페이스를 동작시키는 방법을 통해 제공될 수 있다. 머신 판독가능한 저장 매체는 머신으로 하여금 설명된 기능들 또는 동작들을 수행하게 할 수 있으며, 기록가능한/비-기록가능한 매체(예를 들어, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 디바이스 등)와 같이, 머신(예를 들어, 컴퓨팅 디바이스, 전자 시스템 등)에 의해 액세스가능한 형태로 정보를 저장하는 임의의 메커니즘을 포함한다. 통신 인터페이스는 메모리 버스 인터페이스, 프로세서 버스 인터페이스, 인터넷 연결, 디스크 컨트롤러 등과 같이, 다른 디바이스와 통신하기 위해 유선, 무선, 광학 등의 매체 중 임의의 것에 인터페이스하는 임의의 메커니즘을 포함한다. 통신 인터페이스는 소프트웨어 콘텐츠를 설명하는 데이터 신호를 제공하도록 통신 인터페이스를 준비시키기 위해 구성 매개변수들을 제공하고/하거나 신호들을 송신함으로써 구성될 수 있다. 통신 인터페이스는 통신 인터페이스에 송신되는 하나 이상의 커맨드 또는 신호를 통해 액세스될 수 있다.
본 명세서에 설명된 다양한 컴포넌트들은 설명된 동작들 또는 기능들을 수행하기 위한 수단일 수 있다. 본 명세서에 설명된 각각의 컴포넌트는 소프트웨어, 하드웨어, 또는 이들의 조합을 포함한다. 컴포넌트들은 소프트웨어 모듈, 하드웨어 모듈, 특수 목적 하드웨어(예를 들어, 주문형 하드웨어(application specific hardware), 주문형 집적 회로(ASIC), 디지털 신호 프로세서(DSP) 등), 임베디드 컨트롤러, 유선 회로 등으로 구현될 수 있다.
본 명세서에 설명된 것 외에도, 본 발명의 범위를 벗어나지 않고서, 본 발명의 개시된 실시예들 및 구현들에 대해 다양한 수정이 이루어질 수 있다.
따라서, 본 명세서의 도시들 및 예들은 제한적인 의미가 아니라 예시적인 것으로 해석되어야 한다. 본 발명의 범위는 오직 이하의 청구항들을 참조하여 판단되어야 한다.

Claims (22)

  1. 장치로서,
    전력-사이클링 기술(power-cycling technique)을 사용하여 랜덤 값들의 세트를 생성하기 위한 휘발성 메모리 어레이; 및
    복수의 챌린지 비트를 수신하고, 상기 복수의 챌린지 비트를 사용하여 상기 휘발성 메모리 어레이로부터 복수의 랜덤 비트를 선택하기 위한 판독 시퀀서
    를 포함하고, 상기 판독 시퀀서는 복수의 n개 어드레스를 생성하기 위해 상기 챌린지 비트들의 제1 부분을 사용하고, 상기 복수의 랜덤 비트를 선택할 기하급수적으로 큰 챌린지-응답 쌍 공간(exponentially large challenge-response pair space)을 생성하기 위해, 상기 휘발성 메모리 어레이 내의 랜덤 값들을 판독하기 위한 선택된 n개-어드레스로부터의 시퀀스 순서를 선택하기 위해 상기 챌린지 비트들의 제2 부분을 사용하는, 장치.
  2. 제1항에 있어서, 상기 판독 시퀀서는 제1 선형 피드백 시프트 레지스터 및 제2 선형 피드백 시프트 레지스터를 포함하고, 상기 제1 선형 피드백 시프트 레지스터는 상기 복수의 n개 어드레스를 생성하고, 상기 제2 선형 피드백 시프트 레지스터는 상기 선택된 n개-어드레스로부터 상기 시퀀스 순서를 선택하는, 장치.
  3. 제1항에 있어서, 상기 휘발성 메모리 어레이는 m 행 및 1 열을 갖고, 상기 복수의 랜덤 비트는 m/2개이고, 챌린지 비트들의 수는 p이고, 챌린지-응답 쌍 공간은 2p인, 장치.
  4. 제3항에 있어서, m은 128이고, p는 420이고, 상기 챌린지 비트들의 상기 제1 부분은 296이고, 상기 챌린지 비트들의 상기 제2 부분은 124인, 장치.
  5. 제1항에 있어서, 상기 휘발성 메모리 어레이는 정적 랜덤 액세스 메모리인, 장치.
  6. 제5항에 있어서, 상기 정적 랜덤 액세스 메모리는 파워-업 상태의 재현성(reproducibility)을 증대시키기 위해 홀수 개수의 감지 증폭기를 갖는 정적 랜덤 액세스 메모리 셀을 포함하고, 상기 홀수 개수의 감지 증폭기는 2개보다 많은, 장치.
  7. 제6항에 있어서, 상기 정적 랜덤 액세스 메모리는 복수의 지연 블록을 더 포함하고, 각각의 지연 블록은 감지 증폭기들 중 하나에 결합되고, 상기 지연 블록은 상기 휘발성 메모리 어레이로부터의 판독 랜덤 값들을 지연시키는, 장치.
  8. 방법으로서,
    전력-사이클링 기술을 사용하여 휘발성 메모리 어레이 내에 랜덤 값들의 세트를 생성하는 단계;
    복수의 수신된 챌린지 비트를 사용하여, 상기 휘발성 메모리 어레이로부터 복수의 랜덤 비트를 선택하는 단계;
    상기 수신된 챌린지 비트들의 제1 부분을 사용하여, 복수의 n개 어드레스를 생성하는 단계;
    상기 수신된 챌린지 비트들의 제2 부분을 사용하여, 선택된 n개-어드레스로부터의 시퀀스 순서를 선택하는 단계; 및
    상기 복수의 랜덤 비트를 선택할 기하급수적으로 큰 챌린지-응답 쌍 공간을 생성하기 위해, 상기 시퀀스 순서를 사용하여, 상기 휘발성 메모리 어레이 내의 랜덤 값들을 판독하는 단계
    를 포함하는 방법.
  9. 제8항에 있어서, 제1 선형 피드백 시프트 레지스터는 상기 복수의 n개 어드레스를 생성하고, 제2 선형 피드백 시프트 레지스터는 상기 선택된 n개-어드레스로부터 상기 시퀀스 순서를 선택하는, 방법.
  10. 제8항에 있어서, 상기 휘발성 메모리 어레이는 m 행 및 1 열을 갖고, 상기 복수의 랜덤 비트는 m/2개이고, 챌린지 비트들의 수는 p이고, 챌린지-응답 쌍 공간은 2p인, 방법.
  11. 제10항에 있어서, m은 128이고, p는 420이고, 상기 수신된 챌린지 비트들의 상기 제1 부분은 296이고, 상기 수신된 챌린지 비트들의 상기 제2 부분은 124인, 방법.
  12. 제8항에 있어서, 상기 휘발성 메모리 어레이는 정적 랜덤 액세스 메모리인, 방법.
  13. 제9항에 있어서, 상기 정적 랜덤 액세스 메모리는 파워-업 상태의 재현성을 증대시키기 위해 홀수 개수의 감지 증폭기를 갖는 정적 랜덤 액세스 메모리 셀을 포함하고, 상기 홀수 개수의 감지 증폭기는 2개보다 많은, 방법.
  14. 제13항에 있어서, 상기 정적 랜덤 액세스 메모리는 복수의 지연 블록을 더 포함하고, 각각의 지연 블록은 감지 증폭기들 중 하나에 결합되고, 상기 지연 블록은 상기 휘발성 메모리 어레이로부터의 판독 랜덤 값들을 지연시키는, 방법.
  15. 장치로서,
    제8항 내지 제14항 중 어느 한 항의 방법들을 수행하기 위한 수단을 포함하는 장치.
  16. 시스템으로서,
    프로세서; 및
    상기 프로세서에 통신적으로 결합되는 디스플레이
    를 포함하고, 상기 프로세서는:
    전력-사이클링 기술을 사용하여 랜덤 값들의 세트를 생성하기 위한 휘발성 메모리 어레이; 및
    복수의 챌린지 비트를 수신하고, 상기 복수의 챌린지 비트를 사용하여 상기 휘발성 메모리 어레이로부터 복수의 랜덤 비트를 선택하기 위한 판독 시퀀서
    를 포함하고, 상기 판독 시퀀서는 복수의 n개 어드레스를 생성하기 위해 상기 챌린지 비트들의 제1 부분을 사용하고, 상기 복수의 랜덤 비트를 선택할 기하급수적으로 큰 챌린지-응답 쌍 공간을 생성하기 위해, 상기 휘발성 메모리 어레이 내의 랜덤 값들을 판독하기 위한 선택된 n개-어드레스로부터의 시퀀스 순서를 선택하기 위해 상기 챌린지 비트들의 제2 부분을 사용하는, 시스템.
  17. 제16항에 있어서, 상기 판독 시퀀서는 제1 선형 피드백 시프트 레지스터 및 제2 선형 피드백 시프트 레지스터를 포함하고, 상기 제1 선형 피드백 시프트 레지스터는 상기 복수의 n개 어드레스를 생성하고, 상기 제2 선형 피드백 시프트 레지스터는 상기 선택된 n개-어드레스로부터 상기 시퀀스 순서를 선택하는, 시스템.
  18. 제16항에 있어서, 상기 휘발성 메모리 어레이는 m 행 및 1 열을 갖고, 상기 복수의 랜덤 비트는 m/2개이고, 챌린지 비트들의 수는 p이고, 챌린지-응답 쌍 공간은 2p인, 시스템.
  19. 제18항에 있어서, m은 128이고, p는 420이고, 상기 챌린지 비트들의 상기 제1 부분은 296이고, 상기 챌린지 비트들의 상기 제2 부분은 124인, 시스템.
  20. 제16항에 있어서, 상기 휘발성 메모리 어레이는 정적 랜덤 액세스 메모리인, 시스템.
  21. 제20항에 있어서, 상기 정적 랜덤 액세스 메모리는 파워-업 상태의 재현성을 증대시키기 위해 홀수 개수의 감지 증폭기를 갖는 정적 랜덤 액세스 메모리 셀을 포함하고, 상기 홀수 개수의 감지 증폭기는 2개보다 많은, 시스템.
  22. 제21항에 있어서, 상기 정적 랜덤 액세스 메모리는 복수의 지연 블록을 더 포함하고, 각각의 지연 블록은 감지 증폭기들 중 하나에 결합되고, 상기 지연 블록은 상기 휘발성 메모리 어레이로부터의 판독 랜덤 값들을 지연시키는, 시스템.
KR1020217037632A 2019-06-20 2020-04-03 메모리 기반의 물리적 복제방지 기능들을 제공하기 위한 방법 및 장치 KR20220022478A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/447,887 US11483167B2 (en) 2019-06-20 2019-06-20 Method and apparatus to provide memory based physically unclonable functions
US16/447,887 2019-06-20
PCT/US2020/026694 WO2020256809A1 (en) 2019-06-20 2020-04-03 Method and apparatus to provide memory based physically unclonable functions

Publications (1)

Publication Number Publication Date
KR20220022478A true KR20220022478A (ko) 2022-02-25

Family

ID=74037332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217037632A KR20220022478A (ko) 2019-06-20 2020-04-03 메모리 기반의 물리적 복제방지 기능들을 제공하기 위한 방법 및 장치

Country Status (4)

Country Link
US (1) US11483167B2 (ko)
KR (1) KR20220022478A (ko)
CN (1) CN113811876A (ko)
WO (1) WO2020256809A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11309018B2 (en) 2018-01-18 2022-04-19 Regents Of The University Of Minnesota Stable memory cell identification for hardware security
US11537755B1 (en) * 2019-10-09 2022-12-27 University Of South Florida SR flip-flop based physical unclonable functions for hardware security
US11520937B2 (en) * 2020-08-12 2022-12-06 Dell Products L.P. NVMe over fabrics authentication system
US11881258B2 (en) * 2021-07-16 2024-01-23 Globalfoundries U.S. Inc. Apparatus and related method to indicate stability and instability in bit cell
TWI792764B (zh) * 2021-12-13 2023-02-11 華邦電子股份有限公司 記憶體陣列及其操作方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009079050A2 (en) 2007-09-19 2009-06-25 Verayo, Inc. Authentication with physical unclonable functions
US8694856B2 (en) 2009-08-14 2014-04-08 Intrinsic Id B.V. Physically unclonable function with tamper prevention and anti-aging system
CN104025501B (zh) 2011-12-29 2018-03-27 英特尔公司 用于不确定性随机位发生器(nrbg)的方法和装置
US9430406B2 (en) 2012-10-04 2016-08-30 Intrinsic Id B.V. System for generating a cryptographic key from a memory used as a physically unclonable function
US10511451B2 (en) * 2016-11-04 2019-12-17 Taiwan Semiconductor Manufacturing Company Ltd. Physically unclonable function (PUF) device and method of extending challenge/response pairs in a PUF device
KR101980964B1 (ko) 2017-05-24 2019-05-21 성균관대학교산학협력단 카운터 기반 물리적 복제 방지 함수 장치 및 이를 이용한 챌린지-응답 획득 방법
US11082241B2 (en) 2018-03-30 2021-08-03 Intel Corporation Physically unclonable function with feed-forward addressing and variable latency output
US20190342106A1 (en) * 2018-05-02 2019-11-07 Qualcomm Incorporated Physically unclonable function (puf) circuits employing multiple puf memories to decouple a puf challenge input from a puf response output for enhanced security
US11271759B2 (en) * 2018-09-05 2022-03-08 Arizona Board Of Regents On Behalf Of Northern Arizona University Secure digital signatures using physical unclonable function devices with reduced error rates
US11277271B2 (en) * 2019-07-31 2022-03-15 Nxp Usa, Inc. SRAM based physically unclonable function and method for generating a PUF response

Also Published As

Publication number Publication date
US20200403813A1 (en) 2020-12-24
CN113811876A (zh) 2021-12-17
WO2020256809A1 (en) 2020-12-24
US11483167B2 (en) 2022-10-25

Similar Documents

Publication Publication Date Title
US11483167B2 (en) Method and apparatus to provide memory based physically unclonable functions
CN107924705B (zh) 动态随机存取存储器装置、存储器控制器以及存储系统
CN108153609B (zh) 错误检测码生成电路以及包括其的存储器控制器
US10613928B2 (en) Semiconductor devices and semiconductor systems including the same
US20180191512A1 (en) Physically unclonable function generation with direct twin cell activation
CN108630277B (zh) 半导体器件
US20120113732A1 (en) Pseudo-open drain type output driver having de-emphasis function, semiconductor memory device, and control method thereof
US10614871B2 (en) Semiconductor devices and semiconductor systems including the semiconductor devices
US20170286218A1 (en) Semiconductor devices, and semiconductor systems
US9613666B1 (en) Semiconductor devices and semiconductor systems including the same
US10157646B2 (en) Latch control signal generation circuit to reduce row hammering
KR20180119072A (ko) 반도체장치
KR20180029803A (ko) 반도체장치 및 반도체시스템
KR20180000594A (ko) 반도체장치 및 반도체시스템
CN111338565A (zh) 基于存储器单元的噪声特性生成随机值
US11133054B2 (en) Semiconductor devices performing for column operation
US10153028B2 (en) Semiconductor devices
US10319455B2 (en) Semiconductor device
KR20190043043A (ko) 전자장치
KR20180027655A (ko) 테스트방법 및 이를 이용한 반도체시스템
KR20180026868A (ko) 집적회로
US11048602B2 (en) Electronic devices
KR20180086817A (ko) 반도체장치
US20230162770A1 (en) Memory device deserializer circuit with a reduced form factor
KR20170096079A (ko) 반도체장치 및 반도체시스템

Legal Events

Date Code Title Description
A201 Request for examination