KR20090007433A - 반도체 장치 및 그 식별자 생성 방법 - Google Patents

반도체 장치 및 그 식별자 생성 방법 Download PDF

Info

Publication number
KR20090007433A
KR20090007433A KR20087027757A KR20087027757A KR20090007433A KR 20090007433 A KR20090007433 A KR 20090007433A KR 20087027757 A KR20087027757 A KR 20087027757A KR 20087027757 A KR20087027757 A KR 20087027757A KR 20090007433 A KR20090007433 A KR 20090007433A
Authority
KR
South Korea
Prior art keywords
identifier
key
semiconductor device
memory
create
Prior art date
Application number
KR20087027757A
Other languages
English (en)
Other versions
KR101059005B1 (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 KR20090007433A publication Critical patent/KR20090007433A/ko
Application granted granted Critical
Publication of KR101059005B1 publication Critical patent/KR101059005B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/02Manufacture or treatment of semiconductor devices or of parts thereof
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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
    • 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
    • G11C16/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0407Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals on power on
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5002Characteristic
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Manufacturing & Machinery (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Static Random-Access Memory (AREA)
  • Storage Device Security (AREA)
  • Dram (AREA)

Abstract

다수의 메모리 셀을 갖는 휘발성 메모리(610)를 포함하는 반도체 장치(600)로부터 식별자를 생성하는 방법(100)이 개시된다. 이 방법은 메모리 셀로 하여금 메모리 셀의 마이크로구조의 변화에 고유한 다수의 의사-랜덤 비트 값을 취하도록 하는 단계(110)와, 다수의 메모리 셀의 적어도 하나의 서브세트로부터 비트 값을 검색하는 단계(120)와, 검색된 비트 값으로부터 상기 식별자를 생성하는 단계를 포함한다. 이 방법은 휘발성 메모리의 셀의 많은 양이 제조 공정 파라미터의 기저 변화에 의해 지배를 받는 비트 값을 취할 수 있고, 이것은 예를 들어 SRAM의 파워업시에 또는 DRAM의 리프레시가 없는 기간 이후에 발생한다. 이것은 몇몇 식별 목적, 예를 들어 휘발성 메모리(610)를 포함하는 반도체 장치(600)를 식별하거나, 또는 에러 교정 코드 워드를 식별자 비트 위치에 매핑함으로써 보안키를 생성하려는 목적에 사용될 수 있다. 본 발명은 본 발명의 방법(100)을 적용할 수 있도록 구성된 반도체 장치(600,1000)를 더 포함한다.

Description

반도체 장치 및 그 식별자 생성 방법{SEMICONDUCTOR DEVICE IDENTIFIER GENERATION METHOD AND SEMICONDUCTOR DEVICE}
본 발명은 다수의 메모리 셀을 갖는 휘발성 메모리를 포함하는 반도체 장치로부터 식별자(identifier)를 생성하는 방법에 관한 것이다.
본 발명은 또한 이러한 반도체 장치를 식별하는 방법에 관한 것이다.
본 발명은 더 나아가 이러한 반도체 장치에 관한 것이다.
여러 가지 인유로 인해, 집적 회로(IC)와 같은 반도체 장치를, 특히 패키지화된 이후에 식별할 수 있는 것이 중요하다. 예를 들어, 패키징 전에 얻어진 패키지 IC의 테스트 결과, 예를 들어 IC가 여전히 웨이퍼에 있는 동안에 얻어진 IC 테스트 결과를 역추적하기 위해서는 식별이 필요할 수 있다. 이와 달리, 현장 반환(즉, 소비자에 의한 반환)의 경우 IC를 특정 배치(batch)까지 역추적하여 잠재적으로 다른 결함을 가진 IC의 현장 검색을 용이하게 하거나 또는 반환된 결함 IC의 생산 공정의 평가를 용이하게 하여 향후 IC의 생산 공정을 개선하는 것이 중요할 수 있다. 또한, 보안 목적을 위해 고유 IC 식별자(ID)가 사용될 수 있다.
IC에 대한 식별자를 생성하는 방법에는 몇 가지가 알려져 있다. 예를 들어, IC는 패키징 이후 ID가 찍혀지는 래커(lacquer)로 처리될 수 있다. 그러나, 이것은 비교적 고가의 공정이다. 또한, 식별자는 전용의 메모리 위치에 저장될 수 있다. 이것은 메모리 리소스가 이 목적을 위해 희생 또는 부가되어야 한다는 단점을 갖는다.
또 다른 식별 기법은 식별 목적을 위해 고유 장치 특성을 이용하는 것이다. 이러한 식별 방법의 예는 "'IC' identification Circuit Using Device Mismatch' by Lofstrom et al. in Proceedings of the ISSCC, IEEE Feb. 9 2000, pp372-373"에 개시되어 있다. 이 문헌에서는, 어드레싱가능한 MOSFET의 어레이를 구비한 IC가 개시되어 있다. MOSFET 내에서의 부조화로 인해, 이들 장치의 드레인 전류는 무작위로 상이할 것이며, 따라서 어레이에 의해 구동되는 부하에 걸쳐 랜덤한 전압 시그너쳐를 생성한다. 이들 전압은 단일 IC에 대해 재생성가능하기 때문에, 이들 전압 시그너쳐는 IC에 대한 식별자로서 역할을 할 수 있다. 이 방법의 단점은 부가적인, 전용의 하드웨어가 IC 보드 상에 존재하도록 요구하며, 이로 인해 IC 비용의 증가를 가져온다는 것이다.
이러한 방법의 다른 예는 미국 특허 출원 US2004/0162959 A1에 개시되어 있다. 이 출원에 개시되어 있는 발명은 메모리를 구비한 반도체 장치에 관한 것으로, 메모리가 결함있는 메모리 블록을 가질 수 있다는 사실을 이용한다. 결함 메모리 블록의 위치는 다소 랜덤하기 때문에, 반도체 장치는 메모리 내에서의 결함 블록의 위치에 적어도 부분적으로 기초하는 식별자에 의해 식별될 수 있다. 이 방 법의 단점은 식별자를 결정하기 위해 전체 메모리가 조사되어야 한다는 것이며, 이는 특히 큰 메모리에 대해서는 시간 소모적이고 고비용의 공정이다.
US2006/0063286 A1에서는, 공정 변화에 민감하나 정적 랜덤 액세스 메모리(SRAM)의 셀의 수집물의 고유 시작 값과 같은 시불변 값을 갖는 전기적 파라미터를 가지는 보다 많은 반도체 장치 회로 소자들 중 하나의 선택에 기초하여 반도체 장치에 대한 식별자를 제공하는 방법이 개시되어 있다. 선택된 회로 소자의 파라미터 값의 시불변성은 반도체 장치에 대한 식별자로서 사용된다. 공정 변화의 무작위성은 이 식별자가 고유성을 갖도록 보장한다.
그러나, 본 발명의 발명자는 SRAM 셀의 수집물로부터 시작 값을 유도하는 것과 관련된 문제는 모든 SRAM 셀이 고유 시작 값을 갖고 있는 것이 아니라는데 있음을 알게 되었다. 따라서, SRAM 시작으로부터 식별자를 유도하는 것은 시간 소모적인 과정인데, 그 이유는 고유 시작 값을 갖는 셀이 신뢰성 있게 식별될 수 있기 전에 SRAM 시작 동작에 대한 주의 깊은 평가가 요구되며, 이는 전형적으로 충분한 정도의 신뢰성이 보장될 수 있기 전에 SRAM을 여러 번 시작할 것을 요구하기 때문이다
본 발명은 서두의 반도체 장치로부터 식별자를 생성하는 보다 적절한 방법을 제공하려 한다.
본 발명은 본 발명의 방법이 적용될 수 있는 반도체 장치를 제공하려 한다.
본 발명의 일 측면에 따르면, 다수의 메모리 셀을 갖는 휘발성 메모리를 포함하는 반도체 장치로부터 식별자를 생성하는 방법이 제공되는데, 이 방법은,
(a) 메모리 셀로 하여금 메모리 셀의 마이크로구조의 변화에 고유한 다수의 의사-랜덤 비트 값을 취하도록 하는 단계와,
(b) 다수의 메모리 셀의 적어도 하나의 서브세트로부터 비트 값을 검색하는 단계와,
(c) 검색된 비트 값으로부터 식별자를 생성하는 단계를 포함한다.
본 발명은 정적 랜덤 액세스 메모리(SRAM)와 같은 휘발성 메모리를 파워업(power up)하는 경우 또는 동적 램덤 액세스 메모리(DRAM)로부터 전하가 사전결정된 기간 동안 누설되는 것을 허용하는 경우, 그 메모리 셀들의 적어도 일부는 시작시 특정 비트 값, 예를 들어 선호하는 비트 값을 취하거나 또는 사전결정된 기간 동안 소정의 비트 값을 유지하는 선호도를 갖는다. 각각의 개별 메모리 셀마다 상이하고 따라서 각 메모리마다 상이한 이러한 동작은 셀의 마이크로구조의 차이에 의해 야기된다. 따라서, 메모리 셀의 서브세트로부터의 의사-랜덤 비트 값, 즉, 단일 검색 단계에서 랜덤한 것으로 보이나 셀의 마이크로구조와의 상관으로 인해 적어도 소정의 범위까지 재생가능한 비트 값을 검색함으로써, 이들 값은 메모리가 속하는 반도체 장치에 할당될 수 있는 식별자로서 사용될 수 있다.
그러나, 본 발명의 문맥에서는, 의사 랜덤 비트 값은 단일 검색 단계에서 랜덤한 값으로 나타날 뿐만 아니라, 후속하는 검색 단계 사이에서 어느 정도의 변화를 나타낼 수 있음을 인지해야 한다. 예를 들어, 다수의 메모리 셀의 적어도 하나의 서브세트로부터 비트 값을 검색하는 단계는 SRAM로부터 비트 값을 검색하는 단계를 포함하되, 이 비트 값의 적어도 일부는 본 발명의 방법의 단계(a)가 또 다시 실행되는 경우 상이한 시작 값을 취한다. 다시 말해, 검색된 비트 값의 적어도 일부는 고유 시작 값 뿐만 아니라, 선호하는 시작 값을 갖는다. 즉, 셀은 SRAM의 상이한 시작에서 상이한 비트 값을 채용하나 그의 보완 값보다 자주 특정 시작 비트 값을 채용한다.
메모리를 파워업함으로써 의사 랜덤 비트 값을 생성하는 경우, 비록 메모리 셀 모두가 비트-선호의 시작 동작을 나타내지는 않지만, 즉 일부 셀이 다소의 랜덤 시작 동작을 나타내지만, 상이한 시작시 동일한 메모리로부터 검색된 비트 값의 차이는 상이한 메모리로부터 검색된 비트 값의 차이보다 상당히 작다는 것이 판명되었다. 이것은 이러한 식으로 메모리로부터 검색된 비트 값이 식별 목적으로 사용될 수 있음을 증명한다.
다시 말해, 본 발명은 US2006/0063286에 비해 현저한 개선을 제공하는데, 그 이유는 메모리의 셀의 수집물의 시작 값의 소정의 변화는 수용가능하며, 이 변화는 상이한 메모리의 시작 값 사이보다 동일한 메모리의 상이한 시작 사이에서 실질적으로 더 작도록 실현되었기 때문이다. 이러한 실현은 식별 목적으로 사용될 메모리 셀의 서브세트의 선택이 US2006/0063286 A1의 경우에서보다 훨씬 수월하도록 하는데, 그 이유는 진정으로 고유한 시작 값을 갖는 SRAM 내의 셀을 더 이상 식별할 필요가 없기 때문이다. 식별 목적으로 검색된 비트의 선택을 사용하는 경우에 필요로 하는 것은 오직 이러한 메모리로부터 검색된 비트와 데이터베이스로부터의 식별자 간의 차이가 사전결정된 임계값을 초과하는지 여부를 체크하는 것인데, 이에 대해서는 이하에서 보다 자세히 설명될 것이다.
메모리 셀의 시작 값을 사용하는 중요한 장점은 서브세트의 크기가 작게 유지될 수 있다는 것인데, 예를 들어, 고유 장치의 수가 ~107개 정도인 경우, 메모리와 이 메모리가 속하는 반도체 장치를 성공적으로 식별하는데 256 메모리 셀의 서브세트 크기로도 충분하다. 또 다른 장점은 메모리 리소스가 식별자를 저장하는데 전용될 필요가 없다는 것이다.
대부분의 식별 목적에서, 단일 의사 랜덤 비트 값 생성 단계로부터 검색된 비트 값이 충분히 신뢰성이 있지만, 이 방법은 단계(a) 및 단계(b)를 반복하는 단계를 더 포함할 수 있으며, 이 반복 단계는 상이한 파워업 전압 및/또는 상이한 온도에 대해 수행될 수 있고, 검색된 비트 값을 사용하는 단계는 다양한 반복 단계(b)로부터 검색된 비트 값의 결합을 사용하는 단계를 포함한다.
의사 랜덤 비트 값 생성의 반복, 예를 들어 메모리 파워업의 반복, 및 후속하는 여러번의 데이터 검색은 어느 메모리 셀이 주로 상이한 파워업에서 동일한 비트 값을 채용하는지를 입증하는 것을 용이하게 하는데, 상기 상이한 파워업에서의 동일한 비트 값은 이들 셀이 파워업에서 이 비트 값을 취하려는 경향을 가지는 것으로 식별된다. 또한, 메모리 셀은 인가된 시작 전압 및 인가된 동작 온도와 같은 상이한 동작 조건에 따라 상이한 시작 특성을 가질 수 있다. 이들 상이한 특성을 고려함으로써, 보다 신뢰성 있는 식별자가 얻어질 수 있다.
얻어진 식별자는 데이터베이스에 저장될 수 있다. 이것은 훗날 반도체 장치의 식별을 용이하게 한다.
또 다른 실시예에 따르면, 방법은 식별자의 데이터베이스를 로딩하는 단계와, 상기 검색된 비트 값을 다수의 반도체 장치의 제각기의 식별자와 비교함으로써 반도체 장치를 식별한 단계와, 상기 검색된 비트 값과 가장 잘 매칭되는 식별자를 선택하는 단계를 더 포함한다. 검색된 비트 값과 식별자의 데이터베이스 내의 식별자 사이에서 최상의 매칭을 발견하는 단계는 검색된 비트 값과 데이터베이스로부터의 식별자 간의 차이, 예를 들어 비트 드리프트 값 또는 해밍 거리를 결정하는 단계를 포함할 수 있다. 이러한 차이는 사전결정된 임계값과 비교되어 검색된 비트 값과 식별자가 반도체 장치의 긍정의 식별을 선언할 만큼 충분히 유사한지를 결정한다. 따라서, 식별될 장치의 메모리로부터 비트 값의 세트를 검색하고 그것을 앞서 검색한 비트 값에 기초하는 식별자와 비교함으로써, 반도체 장치는 용이하게 식별될 수 있다.
본 발명의 또 다른 실시예는 식별자에 기초하여 보안 키의 생성을 가능하게 하는 것이다. 반도체 장치는 그의 동작을 위해 그와 같은 키를 필요로 하는 기능을 포함할 수 있다. 예를 들어, 반도체 장치는 보안 통신을 인코딩 또는 디코딩하는데 키를 사용할 수 있고 또는 검증을 목적으로 키를 사용할 수 있는데, 예를 들어 키를 외부에서 수신된 키와 비교하여 반도체 장치의 보호 부분에 대한 액세스가 허용될 수 있는지에 대해 검증할 수 있다.
이를 위해, 방법은 각각의 코드 워드가 또 다른 다수의 정보 심볼을 포함하고 있는 코드 워드의 패밀리를 제공하는 단계와, 패밀리로부터 하나 이상의 코드 워드를 선택하는 단계와, 하나 이상의 코드 워드의 정보 심볼로부터 키를 생성하는 단계와, 출력측에서 키를 이용가능하게 하는 단계를 더 포함하되, 식별자를 생성하는 단계는 하나 이상의 코드 워드가 대응하는 식별자 비트 값이 검색되는 제각기의 메모리 셀로 매핑되도록 매핑 기능을 생성하는 단계와, 상기 매핑 기능을 반도체 장치 상에 저장하는 단계를 포함한다.
따라서, 하나의 코드 워드, 또는 단일 코드 워드가 보안 키에 대해 충분한 정보 심볼을 제공하지 않는 경우에는 다수의 코드 워드의 비트를 식별자에 매핑하는 단계, 하나 이상의 코드 워드의 정보 심볼로부터 키를 생성하는 단계 및 매핑 정보를 저장하는 단계를 통해, 휘발성 메모리로부터의 식별자는 키 생성기로서 사용되는데, 그 이유는 하나 이상의 코드 워드는 이후의 단계에서 휘발성 메모리로부터 검색될 수 있고, 키는 검색된 코드 워드의 정보 심볼로부터 재구성될 수 있기 때문이다. 키는 반도체 장치의 출력에 이용될 수 있고, 그에 따라 예를 들어 키를 장치의 제조자에게 공개할 수 있다. 키는 이용될 수 있기 전에 수정될 수 있는데, 예를 들어 공개키가 생성된 개인키로부터 추출될 수 있고 공개키만이 이용될 수 있다.
바람직하게, 반도체 장치는 키를 출력측에서 이용가능하는 수단을 포함하며, 이 수단은 키를 출력측에 이용가능하게 한 이후 디스플레이블, 예를 들어 파괴되어 반도체 장치로부터 허가를 받지 않고 키를 검색하는 것을 방지한다. 이러한 수단은 예를 들어 코드 워드 선택 또는 인코딩 수단을 포함할 수 있다.
매핑 기능은 여러 방식으로 구현될 수 있다. 제각기의 선택된 메모리 셀에 대한 포인터의 리스트가 생성되고 반도체 장치의 비휘발성 메모리, 예를 들어 소거가능한 판독전용 메모리에 저장될 수 있다. 이와 다르게, 매핑 기능은 각각의 비트 테이블 셀이 휘발성 메모리의 적어도 서브세트의 메모리 셀에 대응하는 비트 테이블을 생성하는 단계와, 매핑 기능에서 대응하는 메모리 셀의 존재를 나타내는 비트 값을 각각의 비트 테이블 셀에 제공하는 단계에 의해 구현될 수 있다. 매핑된 정보 심볼의 값은 대응하는 메모리 셀의 비트 값과 파워업 비트 값의 곱일 수 있다.
매핑 기능은 또한 메모리 셀의 세트에 대한 치환 테이블(permutation table)로서 구현될 수 있다. 예를 들어, 매핑 기능은 랜덤한 순서로 하나 이상의 코드 워드의 비트 값을 매핑하되, 매핑 기능을 성공적으로 검색하기 위해서는 랜덤한 순서를 정의하는 정보가 필요하다. 이러한 정보는 또한 반도체 장치 상에 저장될 수 있다.
본 발명의 방법의 다른 실시에에 따르면 키는 반도체 장치 내에서 재생성되어 그의 키 의존 기능의 동작을 허용할 수 있다. 이 실시예에 따르면, 방법은 매핑 기능을 사용하여 식별자로부터 하나 이상의 코드 워드를 검색하는 단계와, 검색된 하나 이상의 코드 워드를 에러 교정하는 단계와, 에러 교정된 하나 이상의 코드 워드의 정보 심볼로부터 키를 생성하는 단계와, 키를 사용하여 기능을 동작시키는 단계를 더 포함한다.
전형적으로, 코드 워드는 BCH-코드, 리드-솔로몬 코드, 해밍 코드 등과 같은 에러 교정 코드 워드의 코드 북으로부터의 코드 워드이다. 에러 교정 코드 워드의 사용은 상이한 파워업 단계에서 검색된 파워업 값의 변화가 코드 워드의 패리티 비트를 사용하는 에러 교정 단계에서 교정될 수 있다는 장점을 갖는다.
이러한 식으로, 반도체 장치의 키-의존 기능을 동작시키는 방법이 얻어지며, 이 방법에서는 키가 위조될 수 없는데, 그 이유는 키 특성은 반도체 장치의 휘발성 메모리에 고유한 특성에 기초하기 때문이다.
바람직하게, 키를 포함하는 코드 워드는 비교 단계 이후 메모리로부터 삭제되어 키에 대한 비허가 액세스의 위험을 최소화한다.
본 발명의 또 다른 측면에 따르면, 다수의 메모리 셀을 갖는 휘발성 메모리와, 메모리 셀의 마이크로구조의 변화에 고유한 제각기의 의사-랜덤 비트 값을 포함하는 식별자를 다수의 메모리 셀의 적어도 서브세트로부터 검색하도록 구성된 제어기를 포함하는 반도체 장치가 제공된다. 예를 들어 자동화 테스트 장비 또는 컴퓨터로부터의 외부 식별자 생성 요청 신호에 응답할 수 있는 이러한 반도체 장치는 본 발명의 방법에 따라 식별자를 생성할 수 있다.
식별자가 식별 목적으로 사용되는 경우, 반도체 장치는 휘발성 메모리에 결합된 출력을 더 포함할 수 있고, 제어기는 제각기의 비트 값을 출력에 제공하도록 구성된다. 이것은 생성된 식별자에 대한 용이한 액세스를 가능하게 한다. 반도체 장치는 메모리 제어기가 반응하게 되는 이러한 신호를 처리하기 위한 바운더리 스캔(IEEE 1149.1 또는 IEEE 1500) 순응 테스트 액세스 포트(TAP) 제어기를 포함할 수 있다. 이것은 TAP의 가용 핀, 예를 들어 식별자 생성 요청 신호 및 검색된 비트 값의 통신을 위한 TDI(Test Data In) 및 TDO(Test Data Out)이 사용될 수 있다.
메모리 제어기는 서브세트의 크기를 저장하는 프로그램가능 메모리 수단을 더 포함할 수 있다. 이것은 서브세트 크기의 동적 구성을 용이하게 하며, 이러한 동적 구성은 반도체 장치의 배치(batch)가 얼마나 클지에 대해 알려지지 않은 경우 유리할 수 있다.
식별자는 반도체 장치에 대한 액세스를 허가하는 키를 생성하는 목적을 또한 가질 수 있다. 이를 위해, 반도체 장치는 각 코드 워드가 또 다른 다수의 정보 심볼을 포함하는 코드 워드의 패밀리로부터의 하나 이상의 코드 워드의 정보 심볼로부터 키를 생성하는 출력부와, 코드 워드의 비트를 식별자의 제각기의 비트 값으로 매핑하는 매핑 기능을 생성하는 수단과, 매핑 기능을 저장하는 비휘발성 메모리와, 키를 출력으로 통신하되 키가 이미 생성된 경우에는 디스에이블될 수 있는 수단과, 또 다른 키를 수신하는 입력부와, 매핑 기능을 통해 식별자로부터 키를 추출하는 추출 수단, 및 반도체 장치의 적어도 일부에 대한 액세스를 허가하며, 키를 또 다른 키와 비교하는 비교기를 포함하는 인증 수단을 더 포함할 수 있다.
이 반도체 장치는 반도체 장치의 적어도 일부분에 대한 액세스를 허용하는 키가 반도체 장치의 휘발성 메모리의 고유 특성에 기초한다는 사실 때문에 부정 사용을 방지하는 인증 메카니즘을 이용한다. 반도체 장치가 매핑 기능을 포함하여 복제될 수 있을지라도, 이 복제본은 동작하지 않을 것인데, 그 이유는 복제된 휘발성 메모리는 상이한 파워업 동작을 나타낼 것이며, 이는 선택된 하나 이상의 코드 워드의 재생성을 용이하게 할 수 없기 때문이다.
본 발명은 첨부한 도면을 참조하여 예시적으로 보다 자세히 설명된다.
도 1은 본 발명의 방법의 흐름도,
도 2는 본 발명의 방법을 사용하여 반도체 장치로부터 검색된 비트 값을 개략적으로 나타내는 도면,
도 3은 본 발명의 방법을 사용하여 반도체 장치로부터의 평균화된 검색된 비트 값을 개략적으로 나타내는 도면,
도 4는 본 발명의 방법을 사용하여 다수의 반도체 장치의 메모리 셀의 서브세트로부터 평균화된 시작 비트 값의 그레이스케일 매핑을 나타내는 도면,
도 5는 본 발명의 방법의 또 다른 실시예에 대한 흐름도,
도 6은 본 발명의 반도체 장치를 나타내는 도면,
도 7은 본 발명의 방법의 또 다른 실시예에 대한 흐름도,
도 8은 도 7의 방법의 측면에 따른 매핑 기능을 개략적으로 나타내는 도면,
도 9는 본 발명의 방법의 또 다른 실시예의 흐름도,
도 10은 본 발명의 또 다른 반도체 장치를 나타내는 도면.
도면은 단지 개략적이며 실제 축적대로 도시되어 있지 않다는 것을 이해해야 한다. 또한, 동일한 또는 유사한 부분을 나타내기 위해 도면 전체에 걸쳐 동일한 참조번호가 사용되고 있음을 이해해야 한다.
SRAM과 같은 다수의 메모리 셀을 갖는 휘발성 메모리를 구비한 반도체 장치에 식별자를 할당하는 방법의 실시예가 도 1에 도시되어 있다. 본 출원의 문맥에서, 메모리 셀은 단위 데이터 요소, 예를 들어 일 비트를 저장하도록 구성된다. 방법(100)은 먼저 SRAM 타입 휘발성 메모리, 즉, 파워업시 의사-랜덤 비트 패턴을 취하는 메모리에 대해 설명될 것이다. 제 1 단계(110)에서, 반도체 장치의 메모리는 사전결정된 동작 조건, 즉 사전정의된 파워업 전압(V) 및 사전결정된 온도(T) 하에서 파워업되어 메모리의 셀이 제각기의 의사-랜덤 비트 값을 취하도록 한다. 휘발성 메모리는 임의의 정보를 포함하지 않는 상태, 즉 임의의 실질적 전하 상태로부터 파워업된다는 것은 자명할 것이다.
비트 값은 의사-랜덤한데, 그 이유는 이들 비트 값은 사전에 예측될 수 없지만 큰 범위까지 재생성될 수 있기 때문이며, 이에 대해서는 이하에서 보다 자세히 기술될 것이다. 각 메모리 셀이 메모리 셀 사이에서 공정 파라미터의 기저 변화로부터 유래하는 고유 동작을 나타낸다는 사실로부터 비트 값의 무작위성 및 재생성이 야기된다. 다시 말해, 모든 셀은 셀이 상이한 동작, 예를 들어 SRAM 타입 메모리 셀에 대한 상이한 시작 동작을 가지도록 하는 고유 마이크로구조를 갖는다. 그것은 이러한 동작의 차이이며, 이 차이가 본 발명에서 이용된다.
파워업 전압의 값은 메모리의 트랜지스터의 임계 전압을 초과하도록 선택된다. V의 실제 적절한 값은 휘발성 메모리가 구현되는 기술에 따라 달라지는데, 예 를 들어 CMOS12 기술로 개발된 메모리의 경우, 0.7V - 1.5V 범위의 임의의 값(V)이 적절하나, 예를 들어 다른 반도체 기술의 경우에는 이 범위를 벗어나는 값이 또한 사용될 수 있다.
단계(110)는 식별자 생성 요청 신호, 즉 본 발명의 방법의 실행을 개시하도록 반도체 장치를 트리거하는 신호에 의해 개시될 수 있다.
다음 단계(120)에서, 메모리의 적어도 서브세트에 저장된 데이터가 검색된다. 전체 메모리보다는 메모리의 일부분으로부터의 데이터 획득이 바람직한데, 그 이유는 전체 메모리로부터의 데이터 판독은 특히 메모리의 크기가 큰 경우, 예를 들어 수 메가비트인 경우 다소 시간 소모적일 수 있다. 또한, 휘발성 메모리로부터 비트 값을 판독하는데 사용되는 일부 장비는 제한된 데이터량만을 처리할 수 있고, 따라서 메모리 전체를 판독할 없다.
단계(125)에서, 또 다른 측정이 필요한지에 대한 결정이 이루어진다. 비트 값의 상이한 세트는 상이한 검색 단계, 예를 들어 상이한 온도, 상이한 파워업 전압 또는 이들 상이한 조건의 결합에서 존재할 수 있는 상이한 SRAM 타입 메모리 파워업으로부터 검색될 수 있고, 각각의 파워업 단계 및 데이터 검색 단계는 고정된 T 및 V에서 여러 번 반복되어 다양한 시작 사이에서 휘발성 메모리의 선택된 서브세트에 대해 시작 비트 값의 변화를 용이하게 검출할 수 있다. 이것은 예를 들어 서브세트 내의 각 메모리 셀의 시작 동작의 무작위성의 결정, 예를 들어 셀이 시작시 특정 비트 값을 채택하려는 강한 경향이 있는지를 결정할 수 있게 해준다. 단계(125)에서 다수의 시작 및 데이터 검색이 수행되어야 할 지에 대한 결정이 이루 어지고, 그 후 선택적인 단계(130)에서 T 및/또는 V가 변경될 수 있다.
단계(135)에서 검사된 이러한 데이터 검색으로부터의 다수의 데이터 세트가 제공되는 경우, 이들 데이터 세트는 단계(140)에서 예를 들어 데이터 세트를 평균화함으로써 결합될 수 있다. 이것은 이하에서 보다 자세히 기술될 것이다. 단계(140)에서 데이터 결합될 수 있는 검색된 데이터는 단계(150)에서 반도체 장치에 식별자로서 할당되고 단계(160)에서 적절한 데이터베이스에 저장된다. 식별자 생성을 위해 사용되는 휘발성 메모리 서브세트의 크기는 식별자의 크기가 데이터베이스에 저장되기에 적절하도록, 예를 들어 과도한 데이터베이스 크기를 야기하지 않도록 선택될 수 있다.
방법(100)은 CMOS12 공정의 개발, 품질검사 및 모니터링을 위해 본 출원인에 의해 사내에서 사용되는 운송수단인 VEQTOR12로 지칭되는 반도체 장치의 배치(batch)에 대해 테스트되었다. VEQTOR12는 휘발성 메모리의 실시예로서 SRAM을 포함한다. 파워업된 휘발성 메모리의 메모리 셀의 비트 값은 파워업 과정의 결과인데, 그 이유는 휘발성 메모리의 콘텐츠는 메모리가 파워다운되는 경우 소거되기 때문이라는 것을 강조한다. 비트 값, 즉 메모리 셀에 저장된 비트 값은 셀이 로직 '0' 또는 '1'을 취하려는 경향을 가지지 않는 경우 랜덤하게 생성되거나 또는 셀이 '0' 또는 '1'을 취하려는 경향을 가지고 있는 경우 예측가능한 값을 가질 것이다. 다시 말해, 메모리 셀 내의 비트 값은 휘발성 메모리의 파워업에 의해 생성된다.
특정 비트 값을 취하는 것은 SRAM 셀의 인버터 쌍의 인버터가 공정 변화로 인해 완전히 동일하지 않다는 사실에 기인한다. 따라서, 셀의 상호보완적인 절반 이 필적하여 충전된 상태에 도달하는 경우, 절반들 중 하나는 이들 변화로 인해 보다 쉽게 도달할 것이다.
도 2는 V=1.2V 및 T=25℃에서 VEQTOR12 장치에 대해 수행된 단일 파워업 및 데이터 검색 단계의 결과를 제공한다. 256 비트의 크기(16비트의 16 벡터)를 갖는 메모리 서브세트로부터의 데이터 검색 결과가 도시되어 있다. 이 평가에서, 서브세트의 전체 크기는 2848 비트이다(도 3은 그 일부를 도시한다). 서브세트의 크기는 평가에서 신뢰성있는 통계치를 획득하도록 선택되었음을 강조한다. 식별 목적을 위해, 보다 작은 서브세트가 사용될 수 있는데, 예를 들어, 수백 비트의 서브세트가 수 천만개의 장치를 식별하는데 충분할 만큼 크다.
표 Ⅰ
Figure 112008078445998-PCT00001
도 3은 V=0.8V, V=1.2V, T=-20℃, T=25℃ 및 T=80℃의 모든 조합에서 수행된 총 42번의 파워업 및 후속하는 데이터 검색 단계에 대한 결과를 제공하는데, 7번의 독립적인 파워업 및 후속하는 데이터 검색 단계는 T 및 V의 각 조합에 대해 수행된다. 도 4에서, 10진수 값은 모든 42개의 측정에 걸쳐 대응하는 메모리 위치로부터 검색된 비트의 평균 값을 나타낸다. 표(I)는 100개 초과의 VEQTOR12 장치의 배 치(batch)로부터 랜덤하게 선택된 VEQTOR12 장치(IC 18)에 대한 이들 측정의 결과를 요약한 것이다. 이것은 선택된 서브세트 내의 다수의 메모리 위치는 시작시 시종일관 동일한 비트 값을 채택하며, 이는 검색된 데이터를 식별자 또는 시그너쳐로서 사용하는 토대를 제공한다는 것을 나타낸다.
100개 초과의 VEQTOR12 장치의 세트로부터 랜덤하게 선택된 총 3개의 VEQTOR12 장치가 평가되었다. 식별 목적을 위해, 단일 장치로부터 검색된 비트 값의 변화는 상이한 장치로부터 검색된 비트 값의 차이보다 훨씬 작아서 잘못된 식별을 장치에 할당하는 것을 피할수 있다는 것이 중요하다. 이것이 계산될 수 있는 방법에는 몇 가지가 있다. 예를 들어, 해밍 거리, 즉, 상이한 비트 위치의 총 수는 이진 데이터의 두 세트 사이에서 계산될 수 있다. 이것은 비트 드리프트를 계산하는데 사용될 수 있다.
비트 드리프트=(상이한 비트의 수/비트의 총 수)*100%
표(Ⅱ)는 세트로부터 랜덤하게 선택된 세 개의 VEQCTOR12 장치의 비트 드리프트의 개요를 제공한다.
표 Ⅱ
Figure 112008078445998-PCT00002
장치마다 비트 드리프트는 매우 낮으며, 전형적으로 약 10의 해밍 거리에 대 응한다는 것을 상기 측정이 보여주고 있다. 또한, Vdd=0.8V인 경우, 비트 드리프트는 온도가 증가하는 경우 보다 작아지는 분명한 경향이 있다. 따라서, 데이터의 이들 세트로부터, 보다 안정적인 시그너쳐(즉, 비트 값)가 보다 높은 온도에서 적절한 시작 전압에 대해 얻어질 수 있다는 결론을 내릴 수 있다.
장치 사이에서 비트 드리프트 또는 해밍 거리의 표시는 도 4로부터 얻어질 수 있다. 본 명세서에서, 그레이스케일 표현은 세 개의 랜덤하게 선택된 장치에 대한 42개의 측정에 걸쳐 평균화된 비트 값으로부터 주어진다. 백색 정사각형은 시종일관 로직 '1'을 생성한 메모리 위치를 나타내고, 흑색 정사각형은 시종일관 로직 '0'을 생성한 메모리 위치를 나타내는 반면, 회색 정사각형은 42개의 측정에 걸쳐 '0' 및 '1'의 혼합을 생성하는 메모리 위치를 나타내며, 보다 어두운 회색 스케일은 보다 낮은 평균 값을 나타내고, 예를 들어 위치(410)는 0.4의 평균 값에 대응하는 반면, 위치(420)는 0.7의 평균 값에 대응한다.
세 개의 장치의 시그너쳐, 즉, 수신된 비트 값의 패턴은 완전히 다르다는 것을 도 4로부터 바로 알 수 있다. 이것은 예를 들어 상이한 장치로부터 검색된 비트 값의 개별 세트 사이의 해밍 거리, 각각 121인 장치(I) 및 장치(II)의 검색된 비트 값의 세트 사이의 해밍 거리, 각각 121인 장치(I) 및 장치(III)의 검색된 비트 값의 세트 사이의 해밍 거리 및 각각 118인 장치(II) 및 장치(III)의 검색된 비트 값의 세트 사이의 해밍 거리로 표현된다. 이들 해밍 거리는 단일 장치의 검색된 비트 값의 두 세트 사이의 해밍 거리보다 10배 크다. 이것은 또 다시 검색된 데이터 세트가 식별 목적으로 사용될 수 있음을 나타낸다.
이 시점에서, 방법(100)은 다른 유형의 휘발성 메모리, 예를 들어 DRAM 타입 메모리에 사용될 수 있다는 것을 강조한다. 이러한 메모리에서, 상이한 셀의 전하 누설 비율은 셀의 마이크로구조의 변화로 인해 서로 다르다. 이를 위해, 단계(110)에서, 휘발성 메모리의 파워업은 사전결정된 비트 값의 세트, 예를 들어 모든 '1' 비트의 세트를 메모리 셀에 저장하는 단계를 포함하고, 단계(120)는 사전결정된 기간이후 비트 값의 서브세트를 검색하는 단계를 포함하는데, 상기 기간은 DRAM 메모리 셀의 모두가 아닌 일부만이 그들의 사전정의된 비트 값을 손실하도록 선택된다. 이것은 도 4에 도시된 시그너쳐와 유사한 시그너쳐를 DRAM 메모리에 제공할 것이며, DRAM의 검색된 비트 값으로부터 생성된 식별자는 유사한 방식으로 사용될 수 있다.
도 5는 본 발명의 방법의 또 다른 실시에에 대한 흐름도이다. 초기에 기술한 단계(110,120,125,130,135,140,150)에 덧붙여, 방법(500)은 식별자의 데이터베이스를 로딩하는 단계(510)를 포함한다. 이 데이터베이스 내의 식별자는 방법(100)에 의해 생성된 식별자일 것이며, 데이터베이스는 본 발명의 방법의 단계(160)에서 생성된 데이터베이스일 것이다. 다시 말해, 데이터베이스는 도 1에 도시된 방법(100)의 실시예에 따라 다수의 반도체 장치의 제각기의 휘발성 메모리로부터 추출된 식별자를 포함한다.
다음 단계(520)에서, 식별자는 데이터베이스로부터 선택되고, 이 선택된 식별자는 단계(530)에서 식별될 반도체 장치로부터 검색된 비트 값에 비교된다. 이 비교는 여러 방식으로 수행될 수 있다. 예를 들어, 해밍 거리 또는 비트 드리프트 는 선택된 식별자와 검색된 비트 값 사이에서 계산될 수 있다. 식별자 및/또는 검색된 데이터가 다수의 시작 및 그에 후속하는 데이터 검색 단계에 기초하는 경우, 이것은 평균화된 해밍 거리 또는 비트 트리프트일 수 있고, 또는 도 3에 도시되어 있는 셀의 재생성가능 비트 값을 채택하려는 경향의 세기에 기초하여 각 메모리 셀마다 가중 계수가 사용되는 해밍 타입 거리 계산과 같은 다른 비교 기법이 사용될 수 있다.
비교는 전형적으로 데이터베이스로부터의 식별자와 식별될 반도체 장치로부터 검색된 비트 값 사이의 거리의 유사성을 나타내는 값을 산출한다. 단계(535)에서, 이 값은 식별자와 검색된 비트 값 사이에서 필요한 유사성 레벨 또는 최대 허용 차이를 정의하는 사전정의된 임계값에 비교된다. 예를 들어, VEQTOR12 장치에 대해 수행된 실험에서, 단일 장치에 대해, 상이한 측정으로부터 검색된 비트 값 사이의 관측된 해밍 거리는 전형적으로 5-15 정도인 반면, 상이한 장치로부터 검색된 비트 값 사이의 해밍 거리는 전형적으로 100을 초과하였다. 따라서, 이 특정 예에서, 10-20 정도의 임계값의 선택은 데이터베이스 내의 식별자를 통한 올바른 장치의 성공적인 식별을 야기할 수 있다.
단계(535)에서, 데이터베이스 내의 식별자가 검색된 비트 값과 일치하지 않는 것으로 판정된 경우, 단계(520,530, 535)는 일치하는 식별자가 발견될 때까지 반복되고, 그 이후 식별은 식별된 반도체 장치와 관련된 정보, 예를 들어 그의 배치(batch) 번호, 생산 위치 등을 사용자에게 통신하는 알려진 방식을 포함할 수 있는 단계(540)에서 종결된다.
도 6은 본 발명의 반도체 장치(600)를 개략적으로 도시한다. 장치(600)는 메모리 제어기(620)에 결합된 휘발성 메모리(610)를 갖는다. 메모리 제어기(620)는 식별자 생성 목적으로 메모리(610)의 메모리 셀의 사전정의된 서브세트로부터 의사-랜덤 비트 값을 검색하도록 구성된다. 의사-랜덤 비트 값은 앞에서 설명한 바와 같이 이들 값이 검색되는 대응하는 메모리 셀의 마이크로구조에 고유하다. 제어기(620)는 SRAM 타입 메모리의 경우 메모리(610)의 파워업시 비트 값을 검색하거나 또는 DRAM 타입 메모리의 파우업시 메모리에 사전정의된 비트 패턴을 저장하고 프로그램가능한 사전정의된 지연 이후 메모리로부터 의사 랜덤 비트 값을 검색하도록 구성될 수 있다.
서브세트의 크기는 제어기(620) 내에서 하드 코딩될 수 있고 또는 프로그래밍될 수 있다. 이를 위해, 메모리 제어기(620)는 데이터 저장 설비(620), 예를 들어 작은 플래시 메모리, 하나의 이상의 적절한 레지스터 등을 구비하여 서브세트의 프로그램가능 크기를 저장할 수 있다. 메모리 제어기(620)는 입력(642)을 통해 제공된 신호에 응답할 수 있다. 신호는 전형적으로 식별자의 생성을 요청하고 따라서 메모리(610)의 파워업을 또한 트리거할 것이다. 출력(644)은 메모리(610)로부터 검색된 데이터를 수신하도록 구성된다.
메모리 제어기(620)는 입력(642)에 직접 결합될 수 있다. 이와 달리, 반도체 장치(600)는 예를 들어 장치(600)의 테스트 모드를 제어하는 것을 포함할 수 있는 IEEE 1149.1 순응 테스트 액세스 포트(TAP) 제어기(630)를 더 포함할 수 있다. TAP 제어기는 TAP(640)로부터 인스트럭션을 수신하는 인스트럭션 레지스터(미도시) 를 구비할 수 있다. 바운더리 스캔 표준은 독점 인스트럭션의 사용을 허용하기 때문에, 메모리 제어기(620)의 제어 하에서 메모리(610)의 파워업 및 데이터 검색을 트리거하는 TAP 제어기(630)에 대한 인스트럭션 세트에 인스트럭션이 추가될 수 있다. 입력(642)은 TDI일 수 있고, 출력(644)은 TAP(640)의 TDO일 수 있으며, 메모리(610)로부터 출력(644)으로의 데이터 경로는 TAP 제어기(630)의 제어 하에 놓이는 스캔 체인을 포함할 수 있다.
본 발명이 집적 휘발성 메모리 장치의 셀의 마이크로구조의 고유 변화를 이용하는 것에 국한되지 않고, 분산형 휘발성 메모리, 예를 들어 이러한 의사 랜덤 동작을 나타내는 반도체 장치 보드 상의 플립-플롭의 수집물이 마찬가지로 이용된다는 것이 이해될 것이다. 임의의 경우, 메모리 셀의 설계는 특정 비트 값을 향한 설계 기반 경향을 피하여 전술한 마이크로구조 의존 결과의 검출을 허용하는 것이 바람직하다.
이 시점에서, 본 발명의 방법은 또한 보안 목적의 식별자, 즉 IC(의 일부)로의 액세스를 인증하는 고유 키를 생성하여 확실한 또는 안전한 데이터 통신 등을 검증 또는 야기하는데 사용될 수 있음을 강조한다. 본 발명의 문맥에서, 액세스의 인증은 반도체 장치, 예를 들어 셋탑 박스와 같은 디코더에 의해 처리되는 콘텐츠에 대한 액세스를 포함한다.
도 7은 키 생성 목적으로 휘발성 메모리 시그너쳐를 이용하는 제 1 실시예를 제공하는 방법(700)의 흐름도를 나타낸다. 방법(700)은 방법(100)에 대한 자세한 설명에서 이미 기술한 단계(110,120,125,130,140)로 시작한다. 또한, 코드 워드는 단계(710)에서 코드북으로부터 선택된다. 적절한 코드북의 예는 에러 교정 코드 워드의 패밀리의 요소들을 포함하는 코드북, 예를 들어 BCH-코드북, 해밍 코드북, 리드솔로몬 코드북 등이다. 코드북의 각 코드 워드는 전형적으로 k개의 정보 심볼을 갖는 길이(n) 및 최소 거리(d)를 갖는데, n,k,d는 코드북 특정의 양의 정수이고, 각 코드 워드는 바람직하게 정보 심볼의 고유 세트를 갖는다.
정보 심볼은 코드 워드의 비트 패턴, 즉 비트의 서브세트인 반면, 코드 워드는 정보 심볼의 검색에서의 에러를 교정하기 위한 다수의 패리티 비트를 더 포함한다. 따라서, 에러 교정 코드의 사용은 상이한 시작으로부터의 식별자 비트 값 사이의 해밍 거리가 0보다 큰 경우에 필요하다. 에러 교정 코딩의 이론은 당업자에게는 일반적인 지식이며, 예를 들어 Wicker의 "Error Control Systems for Digital Communication and Storage", Prentice-Hall 1995, 또는 Lin 및 Costello의 "Error Control Coding: Fundamentals and Applications", Prentice-Hall 1983을 참조하며, 상술한 바와 같이 일반적인 지식이므로 더 설명하지는 않을 것이다. 에러 교정 코드의 k개의 정보 심볼이 특정 반도체 장치 기능을 포함하는 반도체 장치(의 일부분)에 대한 액세스를 허용하는 인증키로서 사용될 수 있다는 것을 언급하는 것으로 충분하다.
본 발명의 방법은 잡음이 있는 데이터로부터 키와 같은 인코딩된 정보의 검색을 용이하게 하는 소위 "헬퍼 데이터(helper data)" 방법의 특정 예이다. 헬퍼 데이터의 사용 이외의 이론에 대한 자세한 설명은 "J.P. Linnartz, P. Tuyls, New Shielding Functions to Enhance Privacy and Prevent Misuse of Biometric Templates" 및 "J.Kittler and M. Nixon, editors, Proceeding of 3rd Conference on Audio and Video Base Person Authentication, volume 2688 of Lecture Notes in Computer Science, page 238-250, Springer-Vergla, 2003"에서 알 수 있다.
코드 워드가 선택된 이후, 단계(720)에서, 선택된 코드 워드의 비트는 식별자의 대응하는 비트 값, 즉 이들 식별자가 검색되는 메모리 셀로 매핑된다. 메모리 셀은 전술한 바와 같이 단계(110,120,125,130,140)를 여러 번 반복함으로써 결정될 수 있는 상이한 파워업 조건 하에서 동일한 파워업 비트를 재생성하는 경향과 같은 기초 적합성 기준(basis suitability criteria)에 따라 선택될 수 있다.
도 8은 코드 워드의 매핑 기능이 구성될 수 있는 방법에 대한 몇몇 개략적인 예를 나타낸다. 코드 워드(810)의 네 개의 비트는 반도체 장치의 휘발성 메모리의 서브세트(820)에 매핑된다. 본 명세서에서는 명료성을 이유로, 휘발성 메모리의 4-비트 코드 워드 및 16-비트 서브세트가 도시되어 있지만, 전형적으로 코드 워드(810) 및 서브세트(820)의 보다 큰 크기가 사용될 것이다. 또한, 전술한 바와 같이, 서브세트는 단지 예시로서 사용되며, 식별 목적을 위한 완전한 메모리의 사용이 또한 가능하다.
매핑에서, 적절한 메모리 셀, 즉 코드(810)의 제각기의 비트에 대응하는 비트 값을 파워업에서 채용하는 메모리 셀이 심볼(810)과 서브세트(820) 사이의 화살표로 표시되어 있는 바와 같이 선택된다. 매핑 기능은 반도체 장치, 예를 들어 ROM, PROM 또는 EEPROM과 같은 휘발성 메모리에 저장될 수 있는 서브세트(820)의 선택된 메모리 셀에 대한 포인터의 테이블로서 구현될 수 있다. 포인터는 치환 방 식으로 저장될 수 있는데, 포인터의 시퀀스는 코드 워드 비트의 스크램블링된 순서를 지시하며, 예를 들어 제 1 포인터는 코드 워드의 제 3 비트를 지시하고, 제 2 포인터는 코드 워드의 7번째 비트를 지시한다.
이와 달리, 비트 테이블(830)이 형성될 수 있다. 이러한 비트 테이블(830)은 서브세트(820)의 오버레이의 마스크로서 역할을 하고 어느 메모리 셀이 코드 워드의 정보 심볼에 매핑되는지를 식별한다. 도 8에서, '1'로 표시된 비트 테이블(830)의 셀은 코드 워드 비트 매핑을 위해 선택된 서브세트(820)의 메모리 셀을 나타낸다. 코드 워드(810)의 비트의 실제 비트 값은 비트 테이블(830)의 라벨의 값과 기저 메모리 셀의 파워업 비트 값의 곱이다. 비트 테이블(830)은 또한 치환 형태로 저장될 수도 있다.
코드 워드가 휘발성 메모리에 매핑되는 방식은 본 발명의 본질이 아님이 이해될 것이다. 그 밖의 다른, 동일하게 실행가능한 매핑 알고리즘이 본 발명의 가르침을 벗어나지 않고서 사용될 수 있다.
도 7을 참조하면, 선택된 코드 워드의 정보 심볼은 동작을 위해 반도체 장치의 일부 기능에 의해 요구되는 키로서 사용된다. 이러한 기능은 외부로부터 수신된 키를 식별자 기반 키를 이용하여 검출하는 것과, 식별자 기반 키를 이용하여 데이터 통신을 인코딩 또는 디코딩하는 것과, 다른 공지된 키 기반 기능을 포함할 수 있다. 코드 워드의 정보 심볼은 단계(730)에서 키에 할당된다.
단일 코드 워드 내의 정보 심볼의 개수는 보안 키를 생성하기에는 불충분할 수 있다. 예를 들어, 하나의 코드 워드는 16개의 정보 심볼을 제공할 수 있지만, 보안 키는 64개의 정보 심볼을 요구한다. 이것은 단계(735)에서 확인된다. 키가 단일 코드 워드에 의해 제공되는 정보 심볼보다 많은 정보 심볼을 요구하는 경우, 단계(710,720,730)는 충분한 양의 정보 심볼이 얻어질 때까지 반복될 수 있다. 상이한 코드 워드로부터 얻어진 정보 심볼(IS)은 연쇄적으로 단일 보안 키에 할당될 수 있다.
<키>=<ISword1><ISword2><ISword3><ISword4>
키 생성이 완료되는 경우, 단계(750)에서 키가 외부에서 이용되도록 하는 한편, 단계(740)에서 매핑 기능은 반도체 장치, 예를 들어 비휘발성 메모리에 저장된다. 단계(750,740)가 실행되는 순서는 중요하지 않으며 도 7에 도시된 순서를 벗어날 수 있다. 바람직하게, 키가 외부에서 이용될 수 있게 되면, 이 통신을 용이하게 한 반도체 장치에 내장된 회로는 단계(760)에서 디스에이블되어, 예를 들어 파괴되어 비허가된 당사자가 키에 대한 액세스를 획득하려는 것을 방지한다. 회로의 파괴는 공지된 파괴 기법, 예를 들어 통신에 중요한 도전성 경로에 있는 퓨즈의 차단을 이용하여 수행될 수 있고, 하드웨어 존재하는 경우 코드 워드의 인코더의 디스에이블링, 예를 들어 파괴를 포함할 수 있다.
키는 수정된 형태로, 예를 들어 식별자, 즉 개인키 상에 매핑된 키로부터 생성되는 공개키의 형태로 외부에 이용될 수 있다. 공개키 및 개인키 모두를 사용하는 보안 시스템의 이론, 즉 비대칭 암호화는 당업자에게 잘 알려져 있으며, 따라서 더 설명하지는 않을 것이다.
도 9에 도시된 방법(900)의 흐름도는 동작을 위해 키를 필요로 하는 반도체 장치의 기능이 방법(700)에서 생성된 키를 이용할 수 있는 방법을 설명한다. 방법(900)은 방법(100)과 공통적인 단계, 특히 단계(110,120,125,130,135,140)를 갖는다. 방법(900)의 경우, 이들 모든 단계는 반도체 장치의 보드 상에서 실행될 수 있는데, 실제로 이것이 의미하는 바는, 가열 소자가 반도체 장치의 보드 상에 포함되지 않는다면 선택적인 단계(130)에서의 온도 조절은 불가능하다는 것이다. 그러나, 이것은 바람직한 실시예가 아니다.
휘발성 메모리의 파워업시, 또는 메모리에 저장된 사전정의된 비트 값의 일부가 메모리에서 손실되기를 대기하는 경우, 방법(900)은 방법(700)에 의해 생성된 키를 검색하는 단계(910)를 더 포함한다. 이를 위해, 단계(730)에서 저장된 매핑 기능이 사용되어 코드 워드, 또는 키가 둘 이상의 코드 워드로부터의 정보 심볼을 포함하는 경우에는 다중 코드 워드의 비트를 반도체 장치의 휘발성 메모리의 선택된 메모리 셀로부터 검색한다. 검색된 코드 워드는 디코딩되어 코드 워드의 정보 심볼을 검색한다. 전형적으로, 디코당 단계는 코드 워드를 에러 교정하여 코드 워드 매핑 및 추출 단계 각각으로부터의 식별자의 파워업 값 간의 차이를 없앤다. 전형적으로, 코드 워드는 에러 교정될 수 있고 단계(720)에서 선택된 메모리 셀의 비트 값과 방법(900)의 단계(120)에서 이들 셀로부터 검색된 비트 값 간의 해밍 거리가 거리(d)를 초과하지 않은 경우 에러 교정된 코드 워드로부터 정보 심볼이 검색될 있으며, 이는 당업자에는 잘 알려져 있다. 단계(910)는 키의 모든 정보 심볼이 검색되고 키에 할당될 때까지 반복된다.
단계(920)에서, 키는 반도체 장치의 키 의존 기능의 동작을 가능하게 하는데 사용된다. 앞서 설명한 바와 같이, 이러한 기능은 보안 데이터 통신, 예를 들어 인터넷을 통한 데이터 통신을 키를 이용하여 인코딩 또는 디코딩하는 것, 수신된 메시지의 시그너쳐의 검증, 전송될 메시지를 키를 이용하여 서명하는 것 등을 포함할 수 있고, 또는 외부로부터 제공되는 키의 유효화를 포함할 수 있다.
후자의 예는 단지 예로서 도시되어 있는 방법(900)의 부분(925)에 주어진다. 단계(930)에서, 또 다른 키가 외부로부터 수신된다. 휘발성 메모리 식별자에 기초하는 키 및 외부로부터 수신된 키는 단계(935)에서 비교된다. 키가 동일한 경우, 단계(950)에서는 반도체 장치의 보안 부분 또는 기능에 대한 액세스가 승인되고, 키가 일치하지 않는 경우, 단계(940)에서 이러한 액세스는 거부된다.
비허가된 당사자가 반도체 장치로의 또 다른 키의 통신을 엿들음으로써 키에 대한 액세스를 획득하려는 것을 방지하기 위해 또 다른 키는 인코딩된 형태로 제공될 수 있다. 암호화된 형태로 또 다른 키를 제공하는 예는 메시지를 또 다른 키로 인코딩하는 반도체 장치로부터 랜덤 메시지의 생성을 요청하고, 또 다른 키를 인코딩된 메시지 형태로 반도체 장치에 제공하며 메시지를 휘발성 메모리로부터의 식별자에 기초하는 키를 이용하여 디코딩하는 것이다. 단계(935)에서 검사할 때 디코딩된 메시지가 랜덤 메시지에 대응하는 경우, 또 다른 키는 휘발성 메모리로부터의 식별자에 기초한 키와 동일하고 반도체 장치로의 액세스는 단계(950)에서 승인될 수 있다. 이 키 통신 프로토콜은 그 자체가 알려져 있고, 다른 공지된 보안 통신 프로토콜이 동일하게 가능하다는 것을 강조한다. 이 예에서, 단계(910, 930)는 임의의 특정 순서로 수행될 수 있는데, 예를 들어 단계(910)의 실행은 단계(920)에서 의 또 다른 키의 수신에 의해 트리거될 수 있다.
일반적으로, 수신된 코드 워드로부터 구성된 키, 및 존재하는 경우 외부로부터 수신된 또 다른 키는 키(들)에 대한 비허가 액세스를 피하기 위해 키-제어형 기능의 동작이 완료되는 경우 단계(960)에서 반도체 장치로부터 제거, 예를 들어 삭제된다. 이것은 키들이 일시적으로 저장되어 있는 메모리로부터 키를 삭제함으로써 구현될 수 있다.
보안 반도체 장치(1000)의 일 예가 도 10에 도시되어 있다. 반도체 장치(1000)는 에러 교정 코딩 및 디코딩 알고리즘, 즉 코드 워드를 생성 및 검색하는 알고리즘이 소프트웨어로 구현되는 프로세서(1010)를 구비한다. 프로세서(1010)는 본 발명의 방법(700)에 따라 키를 생성하는 외부 신호 소스(미도시)에 응답할 수 있다. 이와 다르게, 프로세서(1010)는 휘발성 메모리(610)의 제 1 파워업에서만 이와 같은 키를 생성할 수 있다. 프로세서(1010)는 프로세서(1010)에 내장될 수 있는 제어기(620)로 하여금 메모리(610)로부터 식별자를 검색하도록 지시하도록 구성된다. 프로세서는 또한 식별자를 평가하고 프로세서(1010)에 의해 생성된 코드 워드의 비트 값을 적절한 식별자 비트 값, 즉 적절한 메모리 셀에 매핑하도로 구성된다.
반도체 장치는 코드 워드 비트의 매핑 기능을 메모리 셀에 저장하는 비휘발성 메모리(1020)를 더 포함한다. 프로세서(1010)는 생성된 키를 출력(1040)에 통신하는 파괴가능 통신 회로(1030)를 통해 출력(1044)에 결합될 수 있다. 파괴가능 통신 회로(1030)는 예를 들어 프로세서(1010)로부터 출력(1044)으로의 신호 경로에 위치하는 차단가능 퓨즈를 포함하며, 다른 공지된 파괴 기법이 동일하게 적용가능하다. 전형적으로 통신 회로(1030)는 키가 출력(1044)에 통신되면 디스에이블될 것이다.
프로세서(1010)는 식별자 기반 키를 필요로 하는 기능을 수행하도록 더 구성된다. 예를 들어, 프로세서(1010)는 반도체 장치(1000)의 보호될 기능에 대한 액세스를 인증할 목적으로, 전술한 바와 같이 인코딩된 형태로 제공될 수 있는 또 다른 키를 수신하는 입력(1042)에 결합될 수 있다. 프로세서(1010)는 또 다른 키의 수신시 비휘발성 메모리(1020)에 저장된 매핑 기능을 사용하여 메모리(610)로부터 식별자 기반 키를 검색하도록 구성될 수 있다. 이를 위해, 프로세서(1010)는 필요하다면 파워 다운이 선행되는, 휘발성 메모리(610)의 파워업을 강제하도록 구성되고, 그 이후, 제어기(620)는 매핑 기능에 따라 메모리 셀의 비트 값을 검색하도록 트리거된다. 이와 다르게, 프로세서(1010)는 사전정의된 비트 값 세트를 이용하여 DRAM 타입 휘발성 메모리를 프로그램하고 제어기(620)로 하여금 사전정의된 지연 이후 매핑 기능에 따라 메모리(610)로부터 비트 값을 검색하게 지시하도록 구성될 수 있다.
프로세서(1010)는 메모리(610)로부터 검색된 비트를 디코딩하여 키의 정보 심볼을 검색하고 키가 매칭되는 경우 반도체 장치(1000)의 키-보호 부분에 대한 액세스를 승인하기 위해 키를 입력(1042)으로부터 수신된 또 다른 키와 비교하도록 구성된다. 프로세서(1010)는 이와 다르게 데이터 통신 인코딩 및/또는 디코딩과 같은 식별자 기반 키의 사용을 필요로 하는 다른 기능을 동작시키도록 구성될 수 있음이 이해될 것이다.
끝으로, 프로세서(1010)는 비교를 완료한 후 그의 내부 메모리, 예를 들어 레지스터 또는 다른 메모리로부터 키 및 존재하는 경우 또 다른 키를 삭제하도록 구성된다.
전술한 반도체 장치(1000)의 소프트웨어 기반 실시예는 단지 예시적일 뿐이며, 예를 들어 하드웨어 구현 에러 교정 인코더 및 디코더, 및/또는 키 기반 데이터 통신 암호화 또는 복호화 블록 및/또는 키와 또 다른 키의 하드웨어 구현 비교기가 제공되는 다른 실시예가 동일하게 가능하다. 이러한 구현은 그 자체가 알려져 있으며 명료성을 위해 더 자세히 설명되지는 않을 것이다.
전술한 실시예는 본 발명을 제한하기 보다는 예시적일 뿐이며, 당업자라면 첨부된 청구항의 범주를 벗어나지 않으면서 또 다른 다수의 실시예를 설계할 수 있을 것이다. 청구항에서, 괄호 안의 참조 부호는 청구항을 제한하는 것으로서 해석되어서는 안된다. "포함하는"이라는 용어는 청구항에 기재되어 있는 것 이외의 요소 또는 단계의 존재를 배제하는 것은 아니다. "단수"의 표현은 복수의 존재를 배제하는 것은 아니다. 본 발명은 몇몇 구별되는 요소를 포함하는 하드웨어로 구현될 수 있다. 몇몇 수단을 나열하는 장치 청구항에서, 이들 몇몇 수단은 동일한 하드웨어의 항목으로 구현될 수 있다. 소정의 수단들이 서로 다른 종속항에서 기재되어 있다는 단순한 사실은 이들 수단들의 조합이 사용될 수 없다는 것을 의미하는 것은 아니다.

Claims (36)

  1. 다수의 메모리 셀을 갖는 휘발성 메모리(610)를 포함하는 반도체 장치(600)로부터 식별자를 생성하는 방법(100,500,700,900)에 있어서,
    (a) 상기 메모리 셀로 하여금 상기 메모리 셀의 마이크로구조의 변화(variations)에 고유한 다수의 의사-랜덤 비트 값을 취하도록 하는 단계(110)와,
    (b) 상기 다수의 메모리 셀의 적어도 하나의 서브세트로부터 상기 의사-랜덤 비트 값을 검색하는 단계(120)와,
    (c) 상기 검색된 비트 값으로부터 상기 식별자를 생성하는 단계를 포함하는
    식별자 생성 방법.
  2. 제 1 항에 있어서,
    식별자 생성 요청 신호를 수신하는 단계와,
    상기 신호의 수신에 응답하여 상기 단계(a) 내지 단계(c)를 수행하는 단계를 더 포함하는
    식별자 생성 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 메모리 셀로 하여금 다수의 의사-랜덤 비트 값을 취하도록 하는 상기 단계는 상기 휘발성 메모리를 파워업(power up)하는 단계를 포함하는
    식별자 생성 방법.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 메모리 셀로 하여금 다수의 의사-랜덤 비트 값을 취하도록 하는 상기 단계는 사전정의된 비트 값의 세트를 상기 메모리 셀에 저장하는 단계와, 상기 다수의 메모리 셀의 전부가 아닌 일부가 그들의 사전정의된 비트 값을 분실하는 것을 허용하도록 상기 검색 단계를 지연시키는 단계를 포함하는
    식별자 생성 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    단계(a) 및 단계(b)를 반복하는 단계를 더 포함하되,
    상기 식별자를 생성하는 단계는 다양한 반복 단계(b)로부터 검색된 비트 값을 결합하는 단계를 포함하는
    식별자 생성 방법.
  6. 제 4 항에 있어서,
    단계(a) 및 단계(b)는 상기 메모리에 대해 상이한 파워업 전압을 사용하여 반복되는
    식별자 생성 방법.
  7. 제 5 항 또는 제 6 항에 있어서,
    단계(a) 및 단계(b)는 상이한 온도에서 반복되는
    식별자 생성 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 식별자를 상기 반도체 장치에 할당하는 단계(160)를 더 포함하는
    식별자 생성 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 식별자를 데이터베이스에 저장하는 단계(170)를 더 포함하는
    식별자 생성 방법.
  10. 제 8 항에 있어서,
    식별자의 데이터베이스를 로딩하는 단계(510)와,
    상기 검색된 비트 값을 데이터베이스 내의 제각기의 식별자와 비교하는 단계(530)와 상기 검색된 비트 값과 가장 잘 일치하는 식별자를 선택하는 단계를 통해 상기 반도체 장치를 식별하는 단계를 더 포함하는
    식별자 생성 방법.
  11. 제 10 항에 있어서,
    상기 가장 잘 일치하는 식별자를 선택하는 단계는 상기 검색된 비트 값과 상기 식별자 사이의 차이를 결정하는 단계를 포함하는
    식별자 생성 방법.
  12. 제 11 항에 있어서,
    상기 차이를 결정하는 단계는 해밍 거리(Hamming distance)를 결정하는 단계를 포함하는
    식별자 생성 방법.
  13. 제 11 항에 있어서,
    상기 차이를 결정하는 단계는 비트 드리프트 값을 결정하는 단계를 포함하는
    식별자 생성 방법.
  14. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 반도체 장치(1000)는,
    동작을 위해 다수의 정보 심볼을 포함하는 키를 요구하는 기능부와,
    출력부(1044)와,
    상기 출력부(1044)에서 상기 키가 이용가능하도록 하는 수단(1030)을 더 포함하고,
    상기 방법은,
    각각의 코드 워드가 또 다른 다수의 정보 심볼을 포함하는 코드 워드의 패밀리를 제공하는 단계와,
    상기 패밀리로부터 하나 이상의 코드 워드를 선택하는 단계와,
    상기 하나 이상의 코드 워드의 상기 정보 심볼로부터 상기 키를 생성하는 단계와,
    상기 키를 상기 출력부(1044)에서 이용가능하도록 하는 단계(740)를 더 포함하되,
    상기 식별자를 생성하는 단계는 대응하는 식별자 비트 값이 검색되는 제각기의 메모리 셀로 상기 하나 이상의 코드 워드의 각 비트 값이 매핑되도록 하는 매핑 기능을 생성하는 단계(720)와, 상기 매핑 기능을 상기 반도체 장치에 저장하는 단계(730)를 포함하는
    식별자 생성 방법.
  15. 제 14 항에 있어서,
    상기 키가 이용될 수 있도록 하기 전에 상기 키를 수정하는 단계를 더 포함하는
    식별자 생성 방법.
  16. 제 14 항 또는 제 15 항에 있어서,
    상기 키가 이용되게 한 후에는 상기 출력부에 상기 키를 제공하는 상기 수단을 디스에이블링하는 단계(750)를 더 포함하는
    식별자 생성 방법.
  17. 제 14 항 내지 제 16 항 중 어느 한 항에 있어서,
    매핑 기능을 생성하는 상기 단계는 상기 제각기의 메모리 셀에 대한 다수의 포인터를 생성하는 단계를 포함하는
    식별자 생성 방법.
  18. 제 14 항 내지 제 16 항 중 어느 한 항에 있어서,
    매핑 기능을 생성하는 상기 단계는,
    각 비트 테이블 셀이 상기 휘발성 메모리의 상기 적어도 하나의 서브세트(820)의 메모리 셀에 대응하는 비트 테이블(830)을 생성하는 단계와,
    상기 매핑 기능에서 상기 대응하는 메모리 셀의 존재를 나타내는 비트 값을 각 비트 테이블 셀에 제공하는 단계를 포함하는
    식별자 생성 방법.
  19. 제 14 항 내지 제 16 항 중 어느 한 항에 있어서,
    매핑 기능을 생성하는 상기 단계는 메모리 셀의 세트에 대한 치환 테이블(permutation table)을 생성하는 단계를 포함하는
    식별자 생성 방법.
  20. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 반도체 장치(1000)는,
    동작을 위해 다수의 정보 심볼을 포함하는 키를 필요로 하는 기능부와,
    각각의 코드 워드가 또 다른 다수의 정보 심볼을 포함하는 코드 워드의 패밀리로부터 하나 이상의 코드 워드의 비트 값을 상기 식별자의 제각기의 비트 값에 매핑하는 매핑 기능을 더 포함하고,
    상기 방법은,
    상기 매핑 기능을 사용하여 상기 식별자로부터 상기 하나 이상의 코드 워드를 검색하는 단계(910)와,
    검색된 상기 하나 이상의 코드 워드를 에러 교정하는 단계와,
    에러 교정된 상기 하나 이상의 코드 워드의 정보 심볼로부터 상기 키를 생성하는 단계와,
    상기 키를 사용하여 상기 기능부를 동작시키는 단계(920)를 더 포함하는
    식별자 생성 방법.
  21. 제 20 항에 있어서,
    상기 기능부를 동작시키는 단계(920)는
    또 다른 키를 수신하는 단계(930)와,
    상기 키를 상기 또 다른 키에 비교하는 단계(935)와,
    상기 키가 상기 또 다른 키와 일치하는 경우 상기 반도체 장치의 적어도 일부분의 동작을 허용하는 단계를 포함하는
    식별자 생성 방법.
  22. 제 20 항에 있어서,
    상기 기능부를 동작시키는 단계(920)는 암호화된 데이터를 수신하고 상기 암호화된 데이터를 상기 키를 이용하여 처리하는 단계를 포함하는
    식별자 생성 방법.
  23. 제 20 항에 있어서,
    상기 기능부를 동작시키는 단계(920)는 상기 키를 이용하여 데이터를 인코딩하고 상기 인코딩된 데이터를 전송하는 단계를 포함하는
    식별자 생성 방법.
  24. 제 20 항에 있어서,
    상기 기능부를 동작시킨 이후 상기 키를 삭제하는 단계(960)를 더 포함하는
    식별자 생성 방법.
  25. 다수의 메모리 셀을 갖는 휘발성 메모리(610)와,
    상기 메모리 셀의 마이크로구조의 변화에 고유한 제각기의 의사-랜덤 비트 값을 포함하는 식별자를 상기 다수의 메모리 셀의 적어도 하나의 서브세트로부터 검색하도록 구성된 제어기(620)를 포함하는
    반도체 장치(600,1000).
  26. 제 25 항에 있어서,
    상기 제어기는 상기 휘발성 메모리의 파워업에 응답하여 상기 비트 값을 검색하도록 구성된
    반도체 장치.
  27. 제 25 항 또는 제 26 항에 있어서,
    상기 휘발성 메모리(610)에 결합된 출력부(644)를 더 포함하고, 상기 제어기(620)는 상기 출력부(644)에 상기 제각기의 비트 값을 제공하도록 구성된
    반도체 장치.
  28. 제 25 항 내지 제 27 항 중 어느 한 항에 있어서,
    상기 메모리 제어기(620)는 외부의 식별자 생성 요청 신호에 응답하는
    반도체 장치.
  29. 제 25 항 내지 제 28 항 중 어느 한 항에 있어서,
    상기 메모리 제어기(620)는 상기 서브세트의 크기를 저장하는 프로그램가능한 메모리 수단(622)을 포함하는
    반도체 장치.
  30. 제 28 항에 있어서,
    상기 메모리 제어기(620)는 상기 외부의 식별자 생성 요청 신호를 처리하도록 구성된 바운더리 스캔 순응 테스트 액세스 포트 제어기(boundary scan compliant test access port controller)(630)에 응답하는
    반도체 장치.
  31. 제 25 항 또는 제 26 항에 있어서,
    출력부(1044)와,
    동작을 위해 다수의 정보 심볼을 포함하는 키를 요구하는 기능부(1010)와,
    코드 워드의 패밀리로부터의 하나 이상의 코드 워드의 정보 심볼로부터 상기 키를 생성하는 수단(1010)과,
    상기 하나 이상의 코드 워드의 비트를 상기 식별자의 제각기의 비트 값에 매핑하는 매핑 기능을 생성하는 수단(1010)과,
    상기 매핑 기능을 저장하는 비휘발성 메모리(1020)와,
    상기 매핑 기능을 이용하여 상기 식별자로부터 상기 키를 추출하는 추출 수단(1010)을 더 포함하는
    반도체 장치.
  32. 제 31 항에 있어서,
    또 다른 키를 수신하는 입력부(1042)를 더 포함하되,
    상기 기능부는 상기 반도체 장치의 적어도 일부분에 대한 액세스를 인증하는 인증 수단(1010)을 포함하고, 상기 인증 수단은 상기 키를 상기 또 다른 키와 비교하는 비교기를 포함하는
    반도체 장치.
  33. 제 32 항에 있어서,
    상기 기능부는 상기 키를 이용하여 데이터를 인코딩하는 인코더를 포함하는
    반도체 장치.
  34. 제 31 항 또는 제 33 항에 있어서,
    상기 기능부는 상기 키를 이용하여 데이터를 디코딩하는 디코더를 포함하는
    반도체 장치.
  35. 제 31 항에 있어서,
    상기 키를 상기 출력부에 통신하는 수단(1030)을 더 포함하는
    반도체 장치.
  36. 제 34 항에 있어서,
    상기 키를 통신하는 수단(1030)은 디스에이블링되는
    반도체 장치.
KR20087027757A 2006-04-13 2007-04-04 반도체 장치, 그 식별자 생성 방법 및 그 식별 방법 KR101059005B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP06112656.1 2006-04-13
EP06112656 2006-04-13
PCT/IB2007/051213 WO2007119190A2 (en) 2006-04-13 2007-04-04 Semiconductor device identifier generation method and semiconductor device

Publications (2)

Publication Number Publication Date
KR20090007433A true KR20090007433A (ko) 2009-01-16
KR101059005B1 KR101059005B1 (ko) 2011-08-23

Family

ID=38447441

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20087027757A KR101059005B1 (ko) 2006-04-13 2007-04-04 반도체 장치, 그 식별자 생성 방법 및 그 식별 방법

Country Status (7)

Country Link
US (1) US9129671B2 (ko)
EP (1) EP2011123B1 (ko)
JP (1) JP4913861B2 (ko)
KR (1) KR101059005B1 (ko)
CN (1) CN101421792B (ko)
TW (1) TW200822137A (ko)
WO (1) WO2007119190A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100926214B1 (ko) * 2009-04-23 2009-11-09 한양대학교 산학협력단 공정편차를 이용한 디지털 값 생성 장치 및 방법
KR101139630B1 (ko) * 2010-12-09 2012-05-30 한양대학교 산학협력단 식별키 생성 장치 및 방법
KR101332517B1 (ko) * 2012-08-21 2013-11-22 한양대학교 산학협력단 인증 정보 처리 장치 및 방법
KR20190084269A (ko) * 2016-12-05 2019-07-16 삼성에스디아이 주식회사 배터리 시스템용 제어 유닛

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499316B (zh) * 2008-01-30 2011-10-19 群联电子股份有限公司 快闪存储器区块管理方法及使用此方法的控制器
US9158906B2 (en) * 2008-09-26 2015-10-13 Koninklijke Philips N.V. Authenticating a device and a user
WO2010035241A1 (en) 2008-09-28 2010-04-01 Ramot At Tel Aviv University Ltd. Method and system for adaptive coding in flash memories
US8671327B2 (en) 2008-09-28 2014-03-11 Sandisk Technologies Inc. Method and system for adaptive coding in flash memories
US9031232B2 (en) 2010-01-15 2015-05-12 Mitsubishi Electric Corporation Bit sequence generation apparatus and bit sequence generation method
US7928762B1 (en) * 2010-05-14 2011-04-19 Raytheon Company Systems and methods for digitally decoding integrated circuit blocks
FR2964278A1 (fr) * 2010-08-31 2012-03-02 St Microelectronics Rousset Extraction de cle dans un circuit integre
JP5484595B2 (ja) 2011-01-13 2014-05-07 三菱電機株式会社 ビット生成装置及びビット生成方法
KR101118826B1 (ko) 2011-02-15 2012-04-20 한양대학교 산학협력단 물리적 공격을 방어하는 암호화 장치 및 암호화 방법
KR101237456B1 (ko) * 2011-03-31 2013-02-26 (주) 아이씨티케이 디지털 값 생성 장치 및 방법
WO2012164721A1 (ja) 2011-06-02 2012-12-06 三菱電機株式会社 鍵情報生成装置及び鍵情報生成方法
US20140137211A1 (en) * 2011-06-27 2014-05-15 Nec Corporation Apparatus-specific information generation device, apparatus-specific information generation method, terminal apparatus, and authentication system
US9612977B2 (en) * 2011-07-15 2017-04-04 Standard Microsystems Corporation Method and system for controlling access to embedded nonvolatile memories
US10078112B2 (en) * 2012-02-07 2018-09-18 Mcube, Inc. Security system and methods for integrated devices
JP5906821B2 (ja) * 2012-03-06 2016-04-20 日本電気株式会社 デバイス固有情報生成装置及びデバイス固有情報生成方法
US9426517B2 (en) * 2012-06-08 2016-08-23 Ntt Docomo, Inc. Method and apparatus for low delay access to key-value based storage systems using FEC techniques
JP6063679B2 (ja) * 2012-09-10 2017-01-18 ルネサスエレクトロニクス株式会社 半導体装置
US20140101368A1 (en) * 2012-10-04 2014-04-10 Qualcomm Incorporated Binding microprocessor to memory chips to prevent re-use of microprocessor
JP5956313B2 (ja) * 2012-11-13 2016-07-27 ルネサスエレクトロニクス株式会社 認証回路
CN104838617B (zh) 2012-12-11 2018-01-02 三菱电机株式会社 整合安全装置及整合安全装置中使用的信号处理方法
EP2999156B1 (en) 2013-05-15 2019-07-31 Mitsubishi Electric Corporation Device authenticity determination system and device authenticity determination method
KR101488616B1 (ko) * 2013-09-06 2015-02-06 (주) 아이씨티케이 식별키 생성 장치 및 방법
KR101504025B1 (ko) 2013-09-06 2015-03-18 (주) 아이씨티케이 식별 키 생성 장치 및 방법
KR101489091B1 (ko) * 2013-09-30 2015-02-04 (주) 아이씨티케이 반도체 공정을 이용한 식별키 생성 장치 및 방법
EP3057032B1 (en) * 2013-10-08 2023-05-31 ICTK Holdings Co., Ltd. Apparatus and method for generating identification key
KR101457305B1 (ko) 2013-10-10 2014-11-03 (주) 아이씨티케이 식별키 생성 장치 및 방법
WO2015089346A1 (en) 2013-12-13 2015-06-18 Battelle Memorial Institute Electronic component classification
KR102186475B1 (ko) 2013-12-31 2020-12-03 주식회사 아이씨티케이 홀딩스 랜덤한 디지털 값을 생성하는 장치 및 방법
JP6587188B2 (ja) 2015-06-18 2019-10-09 パナソニックIpマネジメント株式会社 乱数処理装置、集積回路カード、および乱数処理方法
US9967094B2 (en) 2015-08-25 2018-05-08 Nxp Usa, Inc. Data processing system with secure key generation
KR102373544B1 (ko) 2015-11-06 2022-03-11 삼성전자주식회사 요청 기반의 리프레쉬를 수행하는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법
KR20180094170A (ko) 2017-02-13 2018-08-23 에스케이하이닉스 주식회사 식별자를 생성하기 위한 메모리 장치, 메모리 컨트롤러, 및 그의 동작 방법
US10789550B2 (en) 2017-04-13 2020-09-29 Battelle Memorial Institute System and method for generating test vectors
US11043164B2 (en) * 2018-01-31 2021-06-22 Ignis Innovation Inc. Display panel compensation methods
US11734409B2 (en) 2020-04-17 2023-08-22 University Of South Florida Determining electronic component authenticity via electronic signal signature measurement
US11301343B2 (en) * 2020-06-12 2022-04-12 Taiwan Semiconductor Manufacturing Company Limited Memory block age detection

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3736882C2 (de) * 1987-10-30 1997-04-30 Gao Ges Automation Org Verfahren zur Echtheitsprüfung eines Datenträgers mit integriertem Schaltkreis
US5774545A (en) * 1996-03-28 1998-06-30 Lucent Technologies Inc. Method and apparatus for enhancing security in and discouraging theft of VLSI and ULSI devices
US6161213A (en) * 1999-02-17 2000-12-12 Icid, Llc System for providing an integrated circuit with a unique identification
JPWO2002050910A1 (ja) * 2000-12-01 2004-04-22 株式会社日立製作所 半導体集積回路装置の識別方法と半導体集積回路装置の製造方法及び半導体集積回路装置
US6601008B1 (en) 2001-08-02 2003-07-29 Lsi Logic Corporation Parametric device signature
US7840803B2 (en) * 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
US6802447B2 (en) 2002-08-26 2004-10-12 Icid, Llc Method of authenticating an object or entity using a random binary ID code subject to bit drift
US6738294B2 (en) * 2002-09-30 2004-05-18 Agere Systems Inc. Electronic fingerprinting of semiconductor integrated circuits
US6889305B2 (en) 2003-02-14 2005-05-03 Hewlett-Packard Development Company, L.P. Device identification using a memory profile
US7200057B2 (en) 2003-03-12 2007-04-03 Nxp B.V. Test for weak SRAM cells
JP2007514987A (ja) 2003-05-26 2007-06-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 半導体デバイス、認証方法およびシステム
JP2006060109A (ja) * 2004-08-23 2006-03-02 Matsushita Electric Ind Co Ltd 半導体装置の識別コード作成方法および半導体装置の識別方法並びに半導体装置
US7291507B2 (en) * 2004-09-23 2007-11-06 Pixim, Inc. Using a time invariant statistical process variable of a semiconductor chip as the chip identifier
US7216272B2 (en) * 2005-02-23 2007-05-08 Texas Instruments Incorporated Method for reducing SRAM test time by applying power-up state knowledge
US7222040B1 (en) * 2005-12-22 2007-05-22 Sony Computer Entertainment Inc. Methods and apparatus for producing an IC identification number
US7388781B2 (en) * 2006-03-06 2008-06-17 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100926214B1 (ko) * 2009-04-23 2009-11-09 한양대학교 산학협력단 공정편차를 이용한 디지털 값 생성 장치 및 방법
KR101139630B1 (ko) * 2010-12-09 2012-05-30 한양대학교 산학협력단 식별키 생성 장치 및 방법
KR101332517B1 (ko) * 2012-08-21 2013-11-22 한양대학교 산학협력단 인증 정보 처리 장치 및 방법
WO2014030911A1 (ko) * 2012-08-21 2014-02-27 (주) 아이씨티케이 인증 정보 처리 장치 및 방법
US9722786B2 (en) 2012-08-21 2017-08-01 Ictk Co., Ltd. Apparatus and method for processing authentication information
US10193701B2 (en) 2012-08-21 2019-01-29 Ictk Holdings Co., Ltd. Apparatus and method for processing authentication information
US10848328B2 (en) 2012-08-21 2020-11-24 Ictk Holdings Co., Ltd. Apparatus and method for processing authentication information
US11729005B2 (en) 2012-08-21 2023-08-15 Ictk Holdings Co., Ltd. Apparatus and method for processing authentication information
KR20190084269A (ko) * 2016-12-05 2019-07-16 삼성에스디아이 주식회사 배터리 시스템용 제어 유닛
US11693947B2 (en) 2016-12-05 2023-07-04 Samsung Sdi Co., Ltd. Control unit for a battery system

Also Published As

Publication number Publication date
KR101059005B1 (ko) 2011-08-23
US20100070777A1 (en) 2010-03-18
CN101421792B (zh) 2015-09-23
US9129671B2 (en) 2015-09-08
JP2009533741A (ja) 2009-09-17
TW200822137A (en) 2008-05-16
EP2011123A2 (en) 2009-01-07
EP2011123B1 (en) 2015-03-04
WO2007119190A2 (en) 2007-10-25
WO2007119190A3 (en) 2008-01-17
CN101421792A (zh) 2009-04-29
JP4913861B2 (ja) 2012-04-11

Similar Documents

Publication Publication Date Title
KR101059005B1 (ko) 반도체 장치, 그 식별자 생성 방법 및 그 식별 방법
US11777747B2 (en) Authentication based on physically unclonable functions
JP5248328B2 (ja) 信号発生器をベースとした装置セキュリティ
US7945791B2 (en) Protected storage of a datum in an integrated circuit
KR102080375B1 (ko) 높은 신뢰성을 갖는 물리적 복제 방지 기능을 사용하는 비밀 키 생성 시스템
US20190147967A1 (en) Programming device arranged to obtain and store a random bit string in a memory device
KR20170051424A (ko) 정보 암호화 및 해독
US11075770B2 (en) Semiconductor device and security system
Roelke et al. Attacking an SRAM-based PUF through wearout
US7813507B2 (en) Method and system for creating random cryptographic keys in hardware
US9762391B2 (en) Chip authentication technology using carbon nanotubes
JPWO2013088939A1 (ja) 識別情報生成装置及び識別情報生成方法
CN114521261A (zh) 用于管理集成电路器件的安全性的未定义生命周期状态标识符
US10892890B2 (en) Hash offset based key version embedding
Lee et al. Samsung physically unclonable function (SAMPUF™) and its integration with Samsung security system
US11736286B2 (en) Method and secure boot control circuit for controlling secure boot of electronic device and method for controlling enrollment of electronic device
US20230377676A1 (en) Integrated circuit and operation method and inspection method thereof
EP3811220A1 (en) Generating a target data based on a function associated with a physical variation of a device
US20200401690A1 (en) Techniques for authenticating and sanitizing semiconductor devices
US20220400003A1 (en) Apparatus for generating non-copyable digital value, and method therefor
Zalivaka et al. NAND Flash Memory Devices Security Enhancement Based on Physical Unclonable Functions
CN118133310A (zh) 数据存储方法、数据解密方法及芯片

Legal Events

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

Payment date: 20160801

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170811

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180801

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190801

Year of fee payment: 9