KR20100117006A - 공정편차를 이용한 디지털 값 생성 장치 및 방법 - Google Patents
공정편차를 이용한 디지털 값 생성 장치 및 방법 Download PDFInfo
- Publication number
- KR20100117006A KR20100117006A KR1020090066726A KR20090066726A KR20100117006A KR 20100117006 A KR20100117006 A KR 20100117006A KR 1020090066726 A KR1020090066726 A KR 1020090066726A KR 20090066726 A KR20090066726 A KR 20090066726A KR 20100117006 A KR20100117006 A KR 20100117006A
- Authority
- KR
- South Korea
- Prior art keywords
- inverter
- node
- terminal
- semiconductor chip
- voltage
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/067—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
- G06K19/07—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
- G06K19/073—Special arrangements for circuits, e.g. for protecting identification code in memory
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
식별키 생성을 위한 반도체 칩이 제공된다. 상기 반도체 칩은, 제1 논리 임계치를 갖는 제1 인버터, 제2 논리 임계치를 갖는 제2 인버터, 및 제1 스위치를 포함할 수 있다. 상기 제1 스위치는, 제1 단자 및 제2 단자를 구비할 수 있고, 입력되는 제1 전압 값에 따라 상기 제1 단자와 상기 제2 단자 사이를 단락 하거나 또는 개방하는 특성을 가질 수 있다. 또한, 상기 제1 인버터의 입력 단자, 상기 제2 인버터의 출력 단자, 및 상기 제1 스위치의 제1 단자는 제1 노드에 연결되고, 상기 제1 인버터의 출력 단자, 상기 제2 인버터의 입력 단자, 및 상기 제1 스위치의 제2 단자는 제2 노드에 연결된다.
공정편차, 식별, 아이디, 무작위적 디지털 값
Description
본 발명의 실시예들은 식별키 생성을 위한 반도체 칩 및 식별 키 생성 방법에 관한 것이다.
최근 전자태그 등의 기술이 발달하면서 대량으로 생산하는 칩에 고유의 아이디(이하에서는 식별 키라 함)를 삽입해야 할 필요성이 증가하였다. 따라서, 무작위의 디지털 값(이를테면, 식별 키 또는 고유 아이디 등)을 생성하는 시스템 및 방법의 개발이 필요하게 되었다.
기존에는 무작위의 디지털 값을 생산하기 위한 방법의 일 예로 하드웨어 또는 소프트웨어를 통한 방법이 제시되었다.
그러나, 하드웨어 또는 소프트웨어를 통한 디지털 값의 생성은 하드웨어 및 소프트웨어 개발 또는 제작에 소요되는 경비로 인하여 칩 단가가 증가하는 문제점과 생산 속도의 한계를 가지고 있다.
따라서, 제작 비용이 낮고, 제작 과정이 간단하며, 복제가 불가능한 디지털 값을 생성하고 관리하는 시스템 및 방법은 절실하게 요구되고 있다.
한편, IC 칩 제작에 있어서, 하나의 칩 내에 복수 개의 동일한 회로 소자가 집적되는 경우가 있다. 이 경우에, 상기 복수 개의 동일한 소자는, 동일한 제조 공정에 의해, 동일한 웨이퍼(waper) 위에서, 동일한 디자인 룰에 따라 제작된다.
따라서, 거시적인 전기적 특성(characteristic) (또는 디지털 특성)은 동일하지만, 미시적인 전기적 특성(또는 아날로그 특성)은, 완전히 동일하지 못하다. 이러한 약간의 차이는 반도체 공정 내에 존재하는 공정편차(process variation)에 기인하며, 아무리 훌륭한 공정이라도 상기 공정편차를 (측정이 어려울 정도로)줄일 수 있을 뿐, 완전히 제거하는 것은 불가능하다.
본 발명의 일부 실시예는, 반도체 칩의 제조 공정의 공정편차를 이용하여, 구조가 간단하고, 물리적인 복제가 불가능한 디지털 값(이하에서는 "식별 키"라고도 함)을 생성하는 반도체 칩을 제공하기 위한 것이다.
본 발명의 다른 일부 실시예는, 인버터 소자의 정확한 논리 임계치를 알지 못하는 경우라도 동일한 공정에서 제조된 두 개의 인버터 소자의 논리 임계치를 비교함으로써 식별 키를 생성할 수 있는, 반도체 칩을 제공하기 위한 것이다.
본 발명의 일 실시예에 따르면, 반도체 칩에 있어서, N 비트(단, N은 자연수)의 디지털 값을 출력하는 N 개의 단위 셀을 포함하고, 상기 N 개의 단위 셀의 각각은, 한 쌍의 소자를 포함하고, 상기 한 쌍의 소자 중 제1 소자의 출력은 제2 소자의 입력에 연결되고, 상기 제2 소자의 출력은 상기 제1 소자의 입력에 연결되어, 서로 피드백 구조를 이루고, 상기 한 쌍의 소자 중 제1 소자 및 제2 소자 각각의 전기적 특성 값의 차이에 의해 제1 소자의 출력 값과 상기 제2 소자의 출력 값이 서로 다른 디지털 값으로 생성되는 반도체 칩이 제공된다.
여기서, 상기 한 쌍의 소자는 동일한 공정에서 제조되며, 상기 전기적 특성 값의 차이는 공정 편차(Process variation)에 기인할 수 있다.
본 발명의 일 실시예에 따르면, N 개(단, N은 자연수)의 단위 셀을 포함하고, 상기 N 개의 단위 셀의 출력 전압 값의 논리적 레벨을 이용하여 N 비트의 식별 키를 생성하는, 반도체 칩이 제공된다.
이 경우, 상기 N 개의 단위 셀의 각각은 한 쌍의 인버터 및 스위치를 포함할 수 있다. 이 경우, 상기 N 개의 단위 셀 중 적어도 하나는, 제1 논리 임계치를 갖는 제1 인버터, 제2 논리 임계치를 갖는 제2 인버터, 및 제1 스위치를 포함한다.
그리고 상기 제1 스위치는 제1 단자 및 제2 단자를 포함하며, 입력되는 제1 전압 값에 따라 상기 제1 단자와 상기 제2 단자 사이를 단락 하거나 또는 개방한다. 또한, 상기 제1 인버터의 입력 단자, 상기 제2 인버터의 출력 단자, 및 상기 제1 스위치의 제1 단자는 제1 노드에 연결되고, 상기 제1 인버터의 출력 단자, 상기 제2 인버터의 입력 단자, 및 상기 제1 스위치의 제2 단자는 제2 노드에 연결된다.
한편, 상기 제1 인버터 및 상기 제2 인버터는 동일한 공정에서 제조되며, 상기 제1 논리 임계치 및 상기 제2 논리 임계치는 상기 공정의 공정 편차에 기인하여 서로 동일하지 않을 수 있다.
한편, 상기 제1 스위치가 닫히는 경우, 상기 제1 노드와 상기 제2 노드가 단락되고, 상기 단락된 제1 노드 및 제2 노드의 전압 값은 상기 제1 논리 임계치와 상기 제2 논리 임계치 사이의 값이 된다.
그리고, 상기 제1 스위치가 닫힌 후 다시 열리는 경우, 상기 제1 인버터의 출력 단자 및 상기 제2 인버터의 출력 단자 중 적어도 하나의 전압 값의 논리적 레벨에 기초하여, 상기 식별 키가 생성된다.
본 발명의 일 실시예에 따르면, 상기 스위치가 닫힌 후 다시 열리는 경우, 상기 제1 인버터의 출력 단자의 전압 값의 논리적 레벨이 하이인 경우 상기 식별 키를 1으로 생성하고, 상기 제1 인버터의 출력 단자의 전압 값의 논리적 레벨이 로우인 경우 상기 식별 키를 0으로 생성한다.
상기 반도체 칩의 상기 제1 단위 셀은, 상기 제1 노드와 접지 사이에 연결되며, 항상 개방 상태에 있는 제2 스위치, 및 상기 제2 노드와 상기 제1 단위 셀의 출력 단자 사이에 연결되며, 상기 식별 키의 인식이 요구되는 경우 상기 제2 노드의 전압을 상기 제1 단위 셀의 출력 단자로 전달하는 제3 스위치를 더 포함할 수 있다
본 발명의 다른 일 실시예에 따르면, N 비트의 식별 키를 생성하는 식별 키 생성부, 및 생성된 상기 식별 키를 이용하여 보안 키를 생성하는 보안 키 생성부를 포함하는 반도체 칩이 제공된다. 이 경우, 상기 식별 키 생성부는 N 개의 단 위 셀을 포함하고, 상기 N 개의 단위 셀의 각각은 공정편차에 기반하여 1 비트의 식별 키를 생성할 수 있다.
이 경우, 상기 N 개의 단위 셀 중 제1 단위 셀은, 제1 논리 임계치를 갖는 제1 인버터, 및 제2 논리 임계치를 갖는 제2 인버터를 포함하고, 상기 제1 인버터의 입력 단자 및 상기 제2 인버터의 출력 단자는 제1 노드에 연결되고, 상기 제1 인버터의 출력 단자 및 상기 제2 인버터의 입력 단자는 제2 노드에 연결될 수 있다.
이 경우, 상기 제1 인버터 및 상기 제2 인버터는 동일한 공정에서 제조된 것이며, 상기 제1 논리 임계치 및 상기 제2 논리 임계치는 상기 공정의 공정 편차에 기인하여 동일하지 않을 수 있다.
상기 제1 노드와 상기 제2 노드를 단락한 후, 상기 제1 노드와 상기 제2 노드를 개방하는 경우, 상기 제1 노드 및 상기 제2 노드 중 적어도 하나의 전압 값의 논리적 레벨에 기초하여, 상기 제1 단위 셀에 대응하는 1 비트의 식별 키가 생성될 수 있다.
또한, 상기 반도체 칩은, 상기 보안 키를 이용하여 디지털 서명, 사용자 식별/인증 또는 데이터 암호화/복호화 중 적어도 하나를 수행하는 처리부를 더 포함할 수 있다.
본 발명의 또 다른 일 실시예에 따르면, 제1 논리 임계치(Logic threshold)를 갖는 제1 인버터, 제2 논리 임계치를 갖는 제2 인버터, 및 제1 스위치를 포함하는 반도체 칩이 제공된다. 상기 반도체 칩은 1 비트의 식별 키를 생성 할 수 있다.
이 경우, 상기 제1 스위치는 제1 단자 및 제2 단자를 구비하며, 입력되는 제1 전압 값에 따라 상기 제1 단자와 상기 제2 단자 사이를 단락 하거나 또는 개방한다. 한편 상기 제1 인버터의 입력 단자, 상기 제2 인버터의 출력 단자, 및 상기 제1 스위치의 제1 단자는 제1 노드에 연결되고, 상기 제1 인버터의 출력 단자, 상기 제2 인버터의 입력 단자, 및 상기 제1 스위치의 제2 단자는 제2 노드에 연결된다.
이 경우, 상기 제1 인버터 및 상기 제2 인버터는 동일한 공정에서 제조되며, 상기 제1 논리 임계치 및 상기 제2 논리 임계치는 서로 동일하지 않은데, 이것은 상기 공정의 공정편차에 기인한다.
본 실시예에서, 상기 입력되는 제1 전압 값의 논리적 레벨이 하이인 경우, 상기 제1 스위치는 상기 제1 노드 및 상기 제2 노드 사이를 단락한다. 이 경우, 단락된 상기 제1 노드 및 상기 제2 노드의 전압 값은 상기 제1 논리 임계치와 상기 제2 논리 임계치 사이의 값일 수 있다.
그리고, 상기 제1 노드와 상기 제2 노드가 단락된 이후에, 상기 입력되는 제1 전압 값의 논리적 레벨이 하이에서 로우로 변경되면, 상기 제1 스위치는 개방된다. 따라서 상기 제1 노드의 전압 값 및 상기 제2 노드의 전압 값은 서로 다르다.
이 경우, 상기 제1 노드의 전압 값의 논리적 레벨과 상기 제2 노드의 전압 값의 논리적 레벨은 다를 수 있다(이를테면, 둘 중 하나의 논리적 레벨이 "1"이면 다른 하나의 논리적 레벨은 "0"일 수 있음). 따라서, 본 실시예에서 상기 제1 노드 또는 상기 제2 노드 중 적어도 하나의 논리적 레벨에 기초하여, 식별 키를 생성할 수 있다
본 발명의 일 실시예에 따르면, 상기 제1 스위치의 개방 이후에, 상기 제2 노드의 전압 값의 논리적 레벨이 하이인 경우, 상기 식별 키를 1로 인식하고, 상기 제2 노드의 전압 값의 논리적 레벨이 로우인 경우, 상기 식별 키를 0으로 인식한다.
본 발명의 일 실시예에 따르면, 상기 반도체 칩은, 상기 제1 노드와 접지 사이에 연결되며 항상 개방 상태에 있는 제2 스위치, 및 상기 제2 노드와 출력 단자 사이에 연결되며 입력되는 제2 전압 값에 따라 상기 제2 노드와 상기 출력 단자 사이를 단락 하거나 또는 개방하는 특성을 갖는 제3 스위치를 더 포함한다.
본 발명의 또 다른 일 실시예에 따르면, 공정편차에 기반하여 N 비트(단, N은 자연수)의 식별 키를 생성하는 식별 키 생성부, 및 생성된 상기 식별 키를 이용하여 보안 키를 생성하는 보안 키 생성부를 포함하는 반도체 칩이 제공된다. 이 경우, 상기 식별 키 생성부는, N 개의 단위 셀을 포함하고, 상기 N 개의 단위 셀의 각각은 공정편차에 기반하여 1 비트의 식별 키를 생성할 수 있다.
한편, 상기 반도체 칩은, 상기 보안 키를 이용하여 디지털 서명, 사용자 식별/인증 또는 데이터 암호화/복호화 중 적어도 하나를 수행하는 처리부를 더 포함할 수 있다.
본 발명의 또 다른 일 실시예에 따르면, 제1 논리 임계치를 갖는 제1 인버 터, 제2 논리 임계치를 갖는 제2 인버터, 및 비교기를 포함하는, 반도체 칩이 제공된다. 이 경우, 상기 비교기는, 제1 입력 단자, 제2 입력 단자 및 출력 단자를 포함하고, 상기 제1 입력 단자의 전압과 상기 제2 입력 단자의 전압을 비교한 결과에 따라 출력 단자의 전압의 논리적 레벨을 결정한다.
또한, 상기 제1 인버터의 입력 단자 및 상기 제1 인버터의 출력 단자는 상기 비교기의 제1 입력 단자에 연결되고, 상기 제2 인버터의 입력 단자 및 상기 제2 인버터의 출력 단자는 상기 비교기의 제2 입력 단자에 연결된다.
이 경우, 상기 제1 인버터 및 상기 제2 인버터는 동일한 공정에서 제조된 것이며, 상기 제1 논리 임계치 및 상기 제2 논리 임계치는 상기 공정의 공정 편차에 기인하여 동일하지 않을 수 있다.
본 발명의 또 다른 일 실시예에 따르면, 입력 단자와 출력 단자가 단락되어 있는 N 개(단, N은 자연수)의 인버터, 상기 N 개의 인버터 중 제1 논리 임계치를 갖는 제1 인버터와 제2 논리 임계치를 갖는 제2 인버터를 선택하는 선택부, 및 상기 선택된 제1 인버터의 출력 단자의 전압과 상기 선택된 제2 인버터의 출력 단자의 전압을 비교하는 비교기를 포함하는, 반도체 칩이 제공된다. 이 경우, 상기 비교기는, 상기 비교 결과에 따라, 상기 비교기의 출력 단자의 전압의 논리적 레벨을 결정한다.
한편, 상기 제1 인버터 및 상기 제2 인버터는 동일한 공정에서 제조된 것이며, 상기 제1 논리 임계치 및 상기 제2 논리 임계치는 상기 공정의 공정 편차에 기인하여 동일하지 않을 수 있다.
본 발명의 또 다른 일 실시예에 따르면, 차동 증폭기 및 비교기를 포함하는, 반도체 칩이 제공된다. 이 경우, 상기 차동 증폭기는, 제1 입력 단자, 제2 입력 단자, 제1 출력 단자 및 제2 출력 단자를 포함한다. 또한, 상기 제1 입력 단자와 상기 제2 입력 단자가 단락되어 동일한 전압이 입력되는 경우, 상기 제1 출력 단자와 상기 제2 출력 단자의 전압이 공정편차로 인해 서로 동일하지 않다. 그리고, 상기 비교기는 상기 차동 증폭기의 제1 출력 단자의 전압과 상기 차동 증폭기의 제2 출력 단자의 전압을 비교한 결과에 따라, 상기 비교기의 출력 전압의 논리적 레벨을 결정한다.
본 발명의 또 다른 일 실시예에 따르면, N 개(단, N은 자연수)의 차동 증폭기, 상기 N 개의 차동 증폭기 중 제1 차동 증폭기를 선택하는 선택부(단, 상기 제1 차동 증폭기는 제1 입력 단자, 제2 입력 단자, 제1 출력 단자 및 제2 출력 단자를 포함 함), 및 상기 선택된 제1 차동 증폭기의 제1 출력 단자의 전압과 상기 선택된 제1 차동 증폭기의 제2 출력 단자의 전압을 비교하는 비교기를 포함하는, 반도체 칩이 제공된다.
이 경우, 상기 제1 차동 증폭기는, 상기 제1 입력 단자와 상기 제2 입력 단자가 단락되어 동일한 전압이 입력되는 경우, 상기 제1 출력 단자와 상기 제2 출력 단자의 전압이 공정편차로 인해 서로 동일하지 않을 수 있다. 또한 상기 비교기는, 상기 비교 결과에 따라, 상기 비교기의 출력 단자의 전압의 논리적 레벨을 결정할 수 있다.
본 발명의 또 다른 일 실시예에 따르면, 제1 논리 임계치를 갖는 제1 인버 터의 입력 단자 및 제2 논리 임계치를 갖는 제2 인버터의 출력 단자에 연결되는 제1 노드와, 상기 제1 인버터의 출력 단자 및 상기 제2 인버터의 입력 단자에 연결되는 제2 노드 사이에 연결되는 제1 스위치를 닫아서, 상기 제1 노드와 상기 제2 노드 사이를 단락시키는 단계, 닫아진 상기 제1 스위치를 다시 열어서, 상기 제1 노드와 상기 제2 노드 사이를 개방 시키는 단계, 및 상기 제1 노드 및 상기 제2 노드 중 적어도 하나의 전압 값의 논리적 레벨에 기초하여 식별 키를 인식하는 단계를 포함하는, 식별 키 생성 방법이 제공된다.
이 경우, 상기 제1 인버터 및 상기 제2 인버터는 동일한 공정에서 제조된 것일 수 있고, 상기 제1 논리 임계치 및 상기 제2 논리 임계치는 상기 공정의 공정편차에 기인하여 동일하지 않을 수 있다.
한편, 상기 식별 키를 인식하는 단계에서, 상기 제2 노드의 전압 값의 논리적 레벨이 하이인 경우 상기 식별 키를 "1"로 생성하고, 상기 제2 노드의 전압 값의 논리적 레벨이 로우인 경우, 상기 식별 키를 "0"으로 생성할 수 있다.
본 발명의 일부 실시예에 따르면, 반도체 칩의 제조 공정의 공정편차를 이용하여 식별 키를 생성하는 회로의 구조가 간단하게 되고, 제조 단가가 낮아진다.
또한, 회로의 물리적인 복제가 불가능(동일한 설계 하에서 다른 회로를 만들더라도 동일한 식별 키가 생성되지 않음)하므로, 높은 보안성을 보장한다.
본 발명의 다른 일부 실시예에 따르면, 인버터 소자의 정확한 논리 임계치를 알지 못하는 경우라도, 동일한 공정에서 제조된 두 개의 인버터 소자의 논리 임 계치를 비교함으로써 식별 키를 생성할 수 있다. 따라서, 생성되는 식별 키(디지털 값)에 있어서, "0"의 생성 빈도와 "1"의 생성 빈도가 유사해지는 효과가 있다.
또한, 본 발명의 다른 일부 실시예에 따르면, 반도체 칩 상의 매우 작은 면적을 이용하면서도, 생성되는 식별 키의 비트 수를 높일 수 있다.
이하에서, 본 발명의 일부 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 식별 키 생성 반도체 칩(100)을 도시한다. 본 발명의 일부 실시예에 의한 상기 식별 키 생성 반도체 칩(100)은 하나의 반도체 칩 상에서 구현될 수 있으나, 본 발명이 일부 실시예에 국한되어 제한적으로 해석되어서는 안 되며, 복수 개의 반도체 칩의 상호 연결 또는, 동일한 기능을 하는 다른 어떤 등가 회로/장치(equivalent circuit or apparatus)에 의한 구현을 배제하는 것이 아니다.
현대 전자산업의 기초가 되고 있는 반도체 칩은 수 많은 공정과 수 많은 소자를 이용하여 제작되고, 다양한 산업 분야에서 활용되고 있다. 이러한 반도체 칩 제작 공정 시의 공정 편차로 인하여 발생하는 소자간의 전기적 특성 차이를 활용하면, 복제가 불가능하고, 영구적인 속성을 가질 수 있는 무작위적인(Random) 디지털 값(이하에서는 "식별 키(identification key)"라 한다)을 생성할 수 있다.
또한, 상기 반도체 칩은, 여러 반도체 소자를 이용하여 제작 가능한 여러 가지 형태의 칩, 모듈, 기타 시스템을 의미할 수 있다. 따라서, 이하에서 언급되는 반도체 칩은, 반도체 공정 이외의 공정에서 생산되는 다양한 종류의 칩까지 모두 포함하는 것으로 해석하여야 한다.
일반적으로 반도체 칩을 생산하는 공정은 다양하게 존재하고 있으나, 공정의 종류에 상관없이, 반도체 칩은 동일한 회로를 적어도 하나 포함할 수 있다.
이 경우, 반도체 칩 상에서 구현되는 소자에는, 능동소자와 수동소자가 있다. 이 때, 상기 능동소자는 트랜지스터 또는 다이오드이고, 상기 수동소자는 저항, 캐패시터, 인덕터 및 소자 간의 배선 중 적어도 하나일 수 있다. 다만 상기 트랜지스터, 다이오드, 저항, 캐패시터, 인덕터 및 배선은 능/수동 소자의 일 예에 불과하다.
본 발명의 실시예들은, 반도체 칩 상에서 구현되는 소자(또는 복수 개의 소자로 구성되는 회로, 이하 같다)를 제조하는 공정의 편차를 이용하여 무작위적이고(random), 물리적인 복제가 불가능하고, 한 번 제조된 이후에는 변하지 않는 식별 키를 생성한다.
여기서, 상기 언급된 구체적인 소자들은, 예시적인 것에 불과하며, 본 발명은 다양한 소자 또는 회로의 제조 과정에 존재하는 공정편차를 이용하여 무작위적 디지털 값을 생성하는 것에 그 권리범위가 미친다.
본 발명의 일부 실시예에서, 상기 회로는 트랜지스터 회로, 인버터 회로, 증폭기 회로(이를테면, 차동 증폭기 회로 등) 일 수 있다. 다만, 이러한 회로는 상기 소자로 구성되는 회로의 일예에 불과하다. 즉, 본 발명은 상기 칩에 포함된 소자로 구성되는 회로를 이용한 실시예를 폭넓게 포함할 수 있다. 예를 들면, 상기 회로는 트랜지스터, 저항, 캐패시터 및 인덕터 중 적어도 하나를 포함하는 단일소자회로 또는 복수소자회로일 수 있다.
한편, 상기 공정편차는, 소자 또는 회로의 제조 공정 내에서, 다양한 파라미터의 편차에 기인할 수 있다. 이를테면, 트랜지스터의 경우, 유효 게이트 길이, 도핑 농도 관련 지수, 산화물 두께 관련 지수 또는 문턱전압 등의 파라미터가 상기 공정편차를 만들 수 있다.
본 발명의 일 실시예에 따르면, 상기 반도체 칩(100)은 1 비트(bit)의 디지털 식별 키(이를테면, "0" 또는 "1")를 생성할 수 있다.
그리고, 상기 반도체 칩(100)은 더 큰 회로의 단위 셀(Unit cell)로서 활용될 수도 있다. 따라서, 본 발명의 일부 실시예에 따르면, 상기 반도체 칩(100) 단위 셀을 N 개(단, N은 자연수) 배치함으로써, N 비트의 디지털 식별 키를 생성할 수도 있다.
제1 인버터(110)은 제1 논리 임계치(Logic threshold)를 갖는다. 그리고, 제2 인버터는 제2 논리 임계치를 갖는다.
상기 제1 인버터(110)와 상기 제2 인버터(120)는 동일한 제조 공정에 의해 제조되며, 상기 제1 논리 임계치와 상기 제2 논리 임계치는 상기 공정편차에 기인하여 동일하지 않다.
제1 스위치(130)는 제1 단자 및 제2 단자를 포함하며, reset 단자(131)에 입력되는 제1 전압 값에 따라 상기 제1 단자와 상기 제2 단자 사이를 단락 하거나 또는 개방한다. 도 1에 도시된 바와 같이, 상기 제1 스위치(130)은 transmission gate를 이용하여 구현될 수 있으나, 본 발명은 이에 한정되지 않으며, 노드들 사이를 단락(short)시키거나 개방(open)시키는 스위치 소자라면, 다른 응용 예도 가능하다.
이 경우, 상기 제1 인버터(110)의 입력 단자, 상기 제2 인버터(120)의 출력 단자, 및 상기 제1 스위치(130)의 제1 단자는 제1 노드(101)에 연결된다. 그리고, 상기 제1 인버터(110)의 출력 단자, 상기 제2 인버터(120)의 입력 단자, 및 상기 제1 스위치의 제2 단자는 제2 노드(102)에 연결된다.
본 발명의 일 실시예에 따르면, 제1 스위치(130)는 트랜스미션 게이트(Transmission gate)에 의해 구현될 수 있다. 이는 후술할 제2 스위치(150) 및 제3 스위치(140) 또한 마찬가지이다.
제1 스위치(130)의 reset 단자(131)에 논리적 레벨(Logical level) 하이(High)의 전압이 입력되는 경우, 상기 제1 스위치(130)는 상기 제1 노드(101) 및 상기 제2 노드 사이(102)를 단락한다. 이 때 reset bar 단자(132)에는 논리적 레벨 로우의 전압이 입력될 수 있다.
이 경우, 단락된 상기 제1 노드(101) 및 상기 제2 노드(102)의 전압 값은 상기 제1 논리 임계치와 상기 제2 논리 임계치 사이의 값일 수 있다.
그리고, 상기 제1 노드(101)와 상기 제2 노드(102)가 단락된 이후에, 상기 reset 단자(131)의 전압 값의 논리적 레벨이 하이(High)에서 로우(Low)로 변경되면, 상기 제1 스위치(130)는 개방된다. 따라서 상기 제1 노드(101)의 전압 값 및 상기 제2 노드(102)의 전압 값은 서로 다르다.
이를테면, 두 노드 중 하나의 논리적 레벨이 "1"이면 다른 하나의 논리적 레벨은 "0"일 수 있다. 이 경우, 제3 스위치(140)의 sel 단자(141)에 논리적 레벨 하이의 전압이 입력되고 sel bar 단자(142)에 논리적 레벨 로우의 전압이 입력되어, 상기 제3 스위치(140)가 닫히면(closed), 제2 노드(102)와 output 단자(143)이 단락되고, 상기 제2 노드(102)의 전압이 output 단자(143)에 전달된다.
그러면, output 단자(143)의 전압의 논리적 레벨을 판단하여, 상기 반도체 칩(100)이 생성하는 식별 키를 "1" 또는 "0"으로 판단할 수 있다.
한편, 제2 스위치(150)은 입력 단자(151)가 접지되어 있고, 입력 bar 단자(152)가 VDD에 연결되어 있으므로, 항상 개방(open)되어 있다. 제2 스위치(150)은 회로의 대칭성(symmetry)을 유지하기 위한 더미 스위치(dummy switch)로서 기능한다.
도 2는 본 발명의 일 실시예에 따른 식별키 생성 반도체 칩의 동작을 설명하기 위한 개념도이다.
제1 인버터(210)은 제1 논리 임계치를 갖는다. 그리고 제2 인버터(220)은 제2 논리 임계치를 갖는다. 논리 임계치(logic threshold)는 인버터의 입력 전압과 출력 전압이 동일한 값을 가지는 경우의 전압 값이다. 이러한 논리 임계치는, 동작 중인 인버터의 출력 단자와 입력 단자를 단락(short)시키는 경우의 전압 값으로 측정될 수 있다.
동일한 공정에서 제조되는 인버터들은, 이론상 동일한 논리 임계치를 갖도 록 디자인 되지만, 상기한 바와 같이 실제 제조 공정에서는 공정편차가 존재하기 때문에, 실제로는 어느 두 개의 인버터도 완벽히 동일한 논리 임계치를 가질 수 없다.
본 발명의 일 실시예에 따르면, 상기 제1 인버터(210)와 상기 제2 인버터(220)는 동일한 제조 공정에서 제조된 것으로서, 공정편차에 기인한 논리 임계치의 차이를 갖는다.
상기 논리 임계치의 차이는, 공정에 따라 상이하지만, 이를테면 수 내지 수십 밀리볼트 정도의 크기일 수 있다. 따라서, 상기 제1 인버터(210)의 논리 임계치와 상기 제2 인버터(220)의 논리 임계치를 별도의 비교기 회로를 이용하여 측정하는 것은, 측정 상 오차 때문에 정확하지 않을 수 있다.
따라서, 두 인버터의 논리 임계치를 상대적으로 비교할 수 있는(즉, 별도의 비교기 회로를 이용하지 않고 측정하는) 방법이 요구된다. 본 발명의 일부 실시예들에서는, 두 개의 인버터 사이의 논리 임계치를 상대적으로(별도의 비교기 회로를 이용하지 않고 자체적으로) 비교하여, 어느 쪽의 논리 임계치가 큰지 판단할 수 있다.
만약 제2 인버터(220)가 존재하지 않는 경우라면, 제1 인버터(210)의 입력 단자와 출력 단자를 단락시키는 경우 제1 인버터(210)의 출력 전압은 상기 제1 인버터(210)의 논리 임계치와 같을 것이다. 또한, 제1 인버터(210)가 존재하지 않는 경우라면, 제2 인버터(220)의 입력 단자와 출력 단자를 단락시키는 경우 제2 인버터(220)의 출력 전압은 상기 제2 인버터(220)의 논리 임계치와 같을 것이다.
그러나, 도 2와 같이 제1 인버터(210)의 입력 단자와 제2 인버터(220)의 출력 단자가 단락되어 제1 노드에 연결되어 있고, 제1 인버터(210)의 출력 단자와 제2 인버터(220)의 입력 단자가 단락되어 제2 노드에 연결되는 경우는 위의 경우들과 다른 결과를 가져온다.
스위치(230)를 이용하여 상기 제1 노드와 상기 제2 노드를 단락시키는 경우, 단락된 상기 두 노드의 전압 값은, 상기 제1 인버터(210)의 논리 임계치와 상기 제2 인버터(220)의 논리 임계치의 사이의 값(평균 값이 아닐 수 있음, 이하 같다)이 된다.
상기 두 인버터의 논리 임계치 중 어느 쪽의 값이 높은 지와 무관하게, 상기 스위치(230)가 닫혀있는 동안은, 출력 전압의 값이 상기 두 인버터의 논리 임계치들의 사이의 값이 된다.
그리고, 그 후 스위치(230)을 열어서, 상기 제1 노드와 상기 제2 노드를 개방(open)시키는 경우, 상기 제1 노드와 상기 제2 노드 중 어느 하나의 전압 값의 논리적 레벨(logical level)은 "0"이 되고, 다른 하나의 논리적 레벨은 "1"이 된다.
이를테면, 만약 제1 인버터(210)의 논리 임계치가 상기 제2 인버터(220)의 논리적 임계치 보다 낮다고 가정하는 경우, 상기 스위치(230)가 닫혀서 제1 노드와 제2 노드가 단락된 동안의 제1 노드의 전압은 상기 제1 인버터(210)의 논리 임계치보다 높다.
따라서, 상기 스위치(230)가 다시 열려서 상기 제1 노드와 상기 제2 노드 가 개방된 후, 제1 인버터(210)는 (자신의 입력 단자인) 제1 노드의 전압을 논리적 레벨 하이(High)로 인식하고, 따라서, 제1 인버터(210)의 출력 단자인 제2 노드의 전압을 논리적 레벨 로우(Low)로 만든다.
이 경우, 제2 인버터(220)는 (자신의 입력 단자인) 제2 노드의 전압을 논리적 레벨 로우로 인식하고, 따라서, 제2 인버터(220)의 출력 단자인 제1 노드의 전압을 논리적 레벨 하이로 만든다.
결국, 도 2의 출력 단자("Out")인 제2 단자의 전압의 논리적 레벨은 하이가 된다.
반대로, 만약 제1 인버터(210)의 논리 임계치가 상기 제2 인버터(220)의 논리적 임계치 보다 높다고 가정하는 경우, 상기 스위치(230)가 닫혀서 제1 노드와 제2 노드가 단락된 동안의 제1 노드의 전압은 상기 제1 인버터(210)의 논리 임계치보다 낮다.
따라서, 상기 스위치(230)가 다시 열려서 상기 제1 노드와 상기 제2 노드가 개방된 후, 제1 인버터(210)는 (자신의 입력 단자인) 제1 노드의 전압을 논리적 레벨 로우로 인식하고, 따라서, 제1 인버터(210)의 출력 단자인 제2 노드의 전압을 논리적 레벨 하이로 만든다.
이 경우, 제2 인버터(220)는 (자신의 입력 단자인) 제2 노드의 전압을 논리적 레벨 하이로 인식하고, 따라서, 제2 인버터(220)의 출력 단자인 제1 노드의 전압을 논리적 레벨 로우로 만든다.
결국, 도 2의 출력 단자("Out")인 제2 단자의 전압의 논리적 레벨은 로우 가 된다.
상기한 바와 같이, 제1 인버터(210)의 논리 임계치와 제2 인버터(220)의 논리 임계치 중 어느 쪽이 높은 가에 따라, 스위치(230)의 단락-개방 이후의 출력 단자("Out")의 논리적 레벨은 하이(또는 "1")로 되거나, 또는 로우(또는 "0")으로 된다.
그런데, 동일한 제조 공정에서 제조된 상기 제1 인버터(210)와 제2 인버터(220) 중, 어느 쪽의 논리 임계치가 높을지는 랜덤하다. 그리고, 일단 제조되고 나서는, 상기 논리 임계치가 높은 쪽이 어느 쪽인지는 바뀌지 않는다.
결국, 도 2의 실시예를 통해, 1 비트의 식별 키("1"이 되거나 "0"이 될 확률은 동일하지만, 한 번 결정되고 나면 바뀌지 않는 값)를 생성할 수 있다.
상기 과정은, 도 3의 그래프를 참조하는 경우, 보다 명확히 이해될 수 있다.
도 3은 도 2를 참조하여 상술한 실시예 중, 제1 인버터(210)의 논리 임계치가 제2 인버터(220)의 논리 임계치보다 낮은 경우의 전압 특성(voltage characteristic) 곡선을 도시한다.
곡선(310)은 제1 인버터(210)의 전압 특성 곡선이고, 곡선(320)은 제2 인버터(220)의 전압 특성 곡선이다. 본 발명의 일 실시예에 따라 제1 인버터(210)와 제2 인버터(220)가 동일한 제조 공정에서 제조되는 경우, 곡선(310)과 곡선(320)은 거의 일치하지만, 공정편차 때문에 약간의 차이를 가진다.
곡선(310)과 기울기가 1인 직선(330)의 교점을 찾으면, 제1 인버터(210)의 논리 임계치인 V1을 결정할 수 있다. 또한, 곡선(320)과 직선(330)의 교점을 찾으면, 제2 인버터(220)의 논리 임계치인 V2를 결정할 수 있다.
본 실시예에서 V1은 V2보다 낮다. 따라서, 도 2의 스위치(230)가 닫혀서, 상기 제1 노드와 상기 제2 노드가 단락되는 경우("Reset"이라 함, 이하 같다), 제1 노드와 제2 노드의 전압(VReset)은 V1과 V2 사이의 어느 값이 된다.
그리고, 상기 스위치(230)가 다시 열려서 상기 제1 노드와 상기 제2 노드가 개방된 후, 제1 인버터(210)는 제1 노드의 전압(VReset)을 논리적 레벨 하이로 인식하고, 따라서, 제1 인버터(210)의 출력 단자인 제2 노드의 전압을 논리적 레벨 로우로 만든다.
이 경우, 제2 인버터(220)는 제2 노드의 전압(VReset)을 논리적 레벨 로우로 인식하고, 따라서, 제2 인버터(220)의 출력 단자인 제1 노드의 전압을 논리적 레벨 하이로 만든다.
따라서, 도 2의 출력 단자("Out")인 제2 단자의 전압의 논리적 레벨은 하이가 된다.
도 4는 본 발명의 일 실시예에 따라, CMOS 인버터와 트랜스미션 게이트를 이용하여 도 1의 회로를 구현한 모습을 도시한다.
반도체 칩 상에서 인버터 소자로 배치될 수 있는 예는 CMOS(Complementary Metal-Oxide Semiconductor) 인버터이다. 하나의 PMOS와 하나의 NMOS를 포함하며, 입력 단자의 논리적 레벨을 반전(inverting)하여, 출력 단자의 논리적 레벨로 제공한다.
제1 인버터(410)의 입력 단자 및 제2 인버터(420)의 출력 단자는 제1 노드에 연결되어 있다. 그리고, 제1 인버터(410)의 출력 단자 및 제2 인버터(420)의 입력 단자는 제2 노드에 연결되어 있다.
그리고, 제1 스위치(430)의 Reset 단자에 논리적 레벨 "1"이 입력되면, 상기 제1 노드와 상기 제2 노드는 단락된다. 이 경우, Out 단자와 제2 노드 사이의 제2 스위치(440)의 Sel 단자에는 논리적 레벨 "0"이 입력되고, 따라서 상기 제2 스위치(440)는 열려 있다.
한편, 상기 제1 노드와 접지 사이에 연결된 제3 스위치(450)은 항상 열려 있는 더미 스위치(Dummy switch)이다. 상기 제3 스위치가 존재함으로써, 회로의 대칭성(Symmetry)을 유지하고, 따라서 회로 양쪽의 전기적 특성(이를 테면 커패시턴스(Capacitance) 등)이 동일하게 유지되는 것은, 도 1을 참조하여 전술한 바와 같다.
상기 Reset 단자의 논리적 레벨이 "1"으로부터 "0"으로 바뀌면, 제1 스위치(430)은 열리게 되고, 상기 제1 노드와 상기 제2 노드 중 어느 하나의 전압의 논리적 레벨은 "1"이 되고, 다른 하나의 전압의 논리적 레벨은 "0"이 된다. 아직까지는 제2 스위치(440)의 Sel 단자의 논리적 레벨도 "0"으로 유지된다.
그리고, Sel 단자에 논리적 레벨 "1"이 입력되면, 제2 스위치(440)이 닫히게 되고, 상기 제2 노드의 전압이 Out 단자로 전달된다. 이 경우, Out 단자의 전 압의 논리적 레벨을 측정하여 도 4의 반도체 칩이 생성하는 1 비트의 식별 키를 인식할 수 있다.
도 5는 도 1의 실시예에 따른 반도체 칩을 단위 셀 블록으로 표현한 모습을 도시한다.
본 발명의 일 실시예에 따르면, 도 1의 공정 편차를 이용한 식별 키 생성 반도체 칩(100)은 보다 큰 스케일의 반도체 칩의 일부에 포함될 수 있으며, 이 경우 반도체 칩(100)이 단위 셀(500)로써 표현할 수 있다.
상기 반도체 칩(100) 내에 포함될 수 있는 제1 스위치(130)의 reset 단자(131)는 단자(501)로, 제2 스위치(140)의 sel 단자(141)는 단자(502)로, 그리고 output 단자(143)은 단자(503)으로 각각 대표된다. DC 전압과 접지 단자 등 다른 단자는, 도시되지 않았다.
본 발명의 일 실시예에 따르면, 먼저, reset 단자(501)과 Sel 단자(502)에 각각 논리적 레벨 "1"과 "0"이 입력된다. 그리고, 상기 reset 단자(501)의 논리적 레벨이 "1"에서 "0"으로 바뀐다. 그 후, Sel 단자(502)의 논리적 레벨을 "0"에서 "1"로 바꾸고, output 단자(503)의 논리적 레벨을 측정하여 "1" 또는 "0"의 식별 키를 인식할 수 있다.
상기한 바와 같이, 이 경우, 상기 output 단자(503)의 논리적 레벨이 "1"일 확률과 "0"일 확률은 동일할 수 있으며, 여러 번 상기 과정을 반복하더라도 값은 바뀌지 않을 수 있다.
물론, 도 4를 참조하여 도시된 회로 역시 단위 셀(500)으로 표현될 수 있 다.
도 6은 본 발명의 일 실시예에 따라, 도 5의 단위 셀 블록의 각 단자에 입력되는 전압의 논리적 레벨의 흐름도이다.
단계(S610)에서, 단위 셀(500)의 reset 단자(501)와 Sel 단자(502)에 각각 논리적 레벨 "1"과 "0"이 입력된다. 이 경우, 도 1의 제1 노드(101)와 제2 노드(102)가 단락된다. 그리고, 상기 제1 노드(101)과 상기 제2 노드(102)의 전압은, 상기 제1 인버터(110)의 논리 임계치와 제2 인버터의 논리 임계치 사이의 값이 된다.
단계(S620)에서, 상기 reset 단자(501)의 논리적 레벨이 "1"에서 "0"으로 바뀐다. Sel 단자(502)의 논리적 레벨은 "0"으로 유지된다.
그리고 단계(S630)에서, Sel 단자(502)의 논리적 레벨을 "0"에서 "1"로 바꾼다. 이 경우, Reset 단자(501)의 논리적 레벨은 여전히 "0"으로 유지된다. 그러면 스위치(140)이 닫히고, 제2 노드(102)의 전압이 output 단자(503)로 전달된다.
단계(S640)에서, 상기 output 단자(503)의 전압의 논리적 레벨이 "0"인지, 또는 "1"인지가 인식된다. 이 경우, 상기 output 단자(503)의 논리적 레벨이 "1"일 확률과 "0"일 확률은 동일할 수 있다.
또한, 하나의 단위 셀(500)에 상기 단계(S610) 내지 단계(S620)을 여러 번 반복하더라도 상기 단계(S640)의 판단 결과는 동일하다.
도 7은 본 발명의 일 실시예에 따라, 도 5의 단위 셀을 M*N개(단, M 및 N 은 자연수) 이용하여, (M*N) 비트의 식별 키를 생성하는 반도체 칩(700)을 도시한다.
Column 라인 제어부(Column line control logic)(710)는, 각 단위 셀들의 Reset 단자에 제1 입력 신호를 주고, 각 단위 셀들의 output 단자의 전압의 논리적 레벨을 측정하여 식별 키를 얻는다.
Row 라인 제어부(Row line control logic)(720)는, 각 단위 셀들의 Sel 단자에 입력 신호를 제2 입력 신호를 준다.
본 발명의 일 실시예에 따르면, Column 라인 제어부(710)가 "reset 1" 내지 "reset M"의 M 개의 단자에 논리적 레벨 "1"의 전압을 인가한다. 이 경우, Row 라인 제어부(720)는 "row 1" 내지 "row N"의 N 개의 단자에 논리적 레벨 "0"을 유지한다.
그리고, Column 라인 제어부(710)가 "reset 1" 내지 "reset M"의 M 개의 단자에 논리적 레벨 "1"의 전압을, 논리적 레벨 "0"으로 바꾼다.
그 후에, Row 라인 제어부(720)가 "row 1" 단자의 논리적 레벨을 "0"에서 "1"로 바꾸면, Column 라인 제어부(710)는 단위 셀(Unitcell 11) 내지 단위 셀(Unitcell 1M)의 M 비트의 식별 키를 인식한다.
그리고, Row 라인 제어부(720)가 "row 1" 단자의 논리적 레벨을 다시 "1"에서 "0"로 바꾸고, "row 2" 단자의 논리적 레벨을 "0"에서 "1"로 바꾼다. 그러면, Column 라인 제어부(710)는 단위 셀(Unitcell 21) 내지 단위 셀(Unitcell 2M)의 M 비트의 식별 키를 인식한다.
이러한 과정을 "row N"까지 반복하는 경우, M 비트의 식별 키를 N 회 인식하므로, 상기 식별 키 생성 반도체 칩(700)은 총 (M*N) 비트의 식별 키를 인식하게 된다.
도 8은 본 발명의 일 실시예에 따른 반도체 칩을 포함하는, RFID 통신 장치를 도시한다.
통신 장치(800)는 안테나(830)를 통해 외부와 식별 정보(identification information) 등의 데이터를 송수신할 수 있다.
이 경우, 상기 통신 장치(800)는 고유 식별 키(이를 테면 128 비트의 이진수)를 보유할 수 있다. 본 발명의 일 실시예에 따르면, 도 7의 반도체 칩(700)에 의해, M*N 비트의 식별 키가 생성된다.
그리고, 식별키 생성 반도체 칩(700)에 의해 생성된 M*N 비트의 식별 키는, 제어부(810)에 의해 접근될 수 있으며, 제어부(810)는 상기 통신 장치(800)의 식별 정보를 외부와 교환하기 위해, 상기 식별 키를 이용할 수 있다.
상기 반도체 칩(700)에 의해 생성된 M*N 비트의 식별 키는, 메모리(820) 기타 저장장치에 저장되지 않고, 판독이 필요한 경우에만 직접 제어부(810)로부터 판독되기 때문에 보안 수준이 높다.
만약, 외부로부터 메모리(820)의 데이터 복제가 수행되는 경우라도, 상기 통신 장치(800)의 고유 식별 키는 노출되지 않을 수 있다.
도 9는 본 발명의 일 실시예에 따른 반도체 칩을 포함하는, 임베디드 시스템(900)을 도시한다.
임베디드 시스템(900)은 대칭키 암호화 알고리즘을 통해 전자서명 등의 기능을 수행할 수 있다. 본 발명의 일 실시예에 따르면, 상기 임베디드 시스템(900)은 병원의 처방전 발급 자동화 기기일 수 있다. 그러나, 본 발명은 일부 응용 예에만 한정되지 않으며, 다양한 임베디드 시스템(이를 테면, 현금자동지급기(ATM))의 예가 가능하다.
식별 키 생성 반도체 칩(700)은, 생성된 M*N 비트의 식별 키를 암호화 모듈(Crypto Module)(910)에게 제공한다. 상기 암호화 모듈(910)은 상기 M*N 비트의 식별 키를 이용하여 암호화 키(Encrypted Key)를 생성할 수 있다. 그리고, 상기 생성된 암호화 키는 저장장치(이를테면 NAND 플래시 메모리)(920)에 저장될 수 있다.
그리고, 처리부(930)는 상기 암호화 키를 이용하여, 입출력 인터페이스(940)를 통해 외부와 통신할 수 있다.
도 10은 본 발명의 일 실시예에 따른 반도체 칩을 포함하는, 공개키(Public Key) 기반의 통신 시스템을 도시한다.
공개키 기반의 통신 시스템에서, 식별 키 생성 반도체 칩(700)은, M*N 비트의 식별 키를 생성하여, 공개키 생성부(1010)에게 제공한다. 그리고, 상기 공개키 생성부(1010)는 상기 식별 키를 이용하여 공개키를 생성하고, 이를 중간 처리부(1020)(이를 테면, RSA(R. Rivest, A. Shamir, L. Adleman) 암호화 처리부 또는 ECC(Elliptic Curve Cryptosystem, 타원곡선암호시스템) 암호화 처리부 등)로 전달한다.
시스템(1000)의 중앙 처리부(1030)은 암호화 통신에 있어서, 이러한 공개키 암호화 방식을 통해 외부와 통신할 수 있다.
도 11은 본 발명의 일 실시예에 따른 반도체 칩을 포함하는, HMAC(Hash Message Authentication Code) 모듈을 도시한다.
본 발명의 일 실시예에 따르면, 시스템(1100)은, 식별 키 생성 반도체 칩(700) 및 HMAC 처리부(1110)을 포함한다.
MAC(Message Authentication Code)는 메시지의 정확성을 확인하는 코드이다. 이러한 MAC에는 1) Unconditionally secure 방법, 2) Hash function을 기반으로 한 방법, 3) Stream cipher를 기반으로 한 방법, 및 4) block cipher를 기반으로 한 방법 등이 있다.
본 발명의 일 실시예에 따르면, HMAC 처리부(1110)는, Hash function을 이용하여, 메시지(M)을 처리하여, 처리된 메시지 (HMAC(M))을 생성한다. 이러한 과정에서, HMAC 처리부(1110)는, 상기 식별 키 생성 반도체 칩(700)에 의해 생성된 식별 키를 이용할 수 있다.
도 12는 본 발명의 일 실시예에 따라, 두 개의 인버터의 공정편차에 기인한 논리 임계치의 차이를 이용하여 식별 키를 생성하는 반도체 칩을 도시한다.
본 발명의 일 실시예에 따르면, 반도체 칩(1200)은 제1 인버터(1210), 제2 인버터(1220), 및 비교기(Comparator)(1230)을 포함한다.
본 발명의 일 실시예에 따르면, 제1 인버터(1210)와 제2 인버터(1220)는 동일한 공정에서 제조된 것이다. 그러나, 제1 인버터(1210)의 논리 임계치와 제2 인버터(1220)의 논리 임계치가 공정편차 때문에 서로 동일하지 않음은, 도 1 내지 도 3을 참조하여 상술한 바와 같다.
본 실시예에서는, 제1 인버터(1210)의 입력 단자와 출력 단자가 서로 단락되고, 상기 비교기(1230)의 제1 입력 단자에 연결된다. 그리고, 제2 인버터(1220)의 입력 단자와 출력 단자가 서로 단락되고, 상기 비교기(1230)의 제2 입력 단자에 연결된다.
이 경우, 상기 비교기(1230)의 제1 입력 단자의 전압 값은 상기 제1 인버터(1210)의 논리 임계치일 수 있다. 또한, 상기 비교기(1230)의 제2 입력 단자의 전압 값은 상기 제2 인버터(1220)의 논리 임계치일 수 있다.
결국, 비교기(1230)은 상기 제1 인버터(1210)와 상기 제2 인버터(1220)의 논리 임계치를 비교하여 어느 쪽이 더 높은 지에 따라, Out 단자의 전압 값을 달리하라 수 있다.
본 발명의 일 실시예에 따르면, 상기 Out 단자의 전압 값에 따라, 반도체 칩(1200)이 생성하는 식별 키를 "1" 또는 "0"의 1 비트 디지털 값으로 인식할 수 있다.
본 발명의 일 실시예에 따르면, 상기 반도체 칩(1200)은, 도 1의 반도체 칩(100)과 마찬가지로, 단위 셀(Unit cell)로써 기능할 수 있으며, 이 경우, 단위 셀인 반도체 칩(1200)을 여러 개 이용하여, N 비트의 식별 키를 생성할 수 있다. 상기 응용예는 도 13을 참조하여 보다 상세히 후술한다.
도 13은 본 발명의 일 실시예에 따른 반도체 칩을 도시한다.
본 발명의 일 실시예에 따르면, 반도체 칩(1300)은, 인버터(1311) 내지 인버터(1315)의 5 개의 인버터, 선택부(1320) 및 비교기(1330)을 포함한다.
선택부(1320)는 도 13에 도시된 5 개의 인버터 중, 어느 두 개를 선택한다. 이를테면, 인버터(1312)와 인버터(1313)가 선택될 수 있다.
이 경우, 비교기(1330)는, 인버터(1312)의 논리 임계치와 인버터(1313)의 논리 임계치를 비교하고, 상기 비교 결과에 따라 Out 단자로 출력 전압을 제공한다. 그리고 상기 Out 단자의 출력 전압의 논리적 레벨에 따라 1 비트의 식별 키가 생성될 수 있다.
그리고, 선택부(1320)가 다른 두 개의 인버터를 선택하는 경우, 상기 비교기(1330)은 다시 1 비트의 식별 키를 생성할 수 있다.
상기한 바와 같이, 선택부(1320)가 5 개의 인버터(1311 내지 1315) 중 두 개를 선택하고, 비교기(1330)가 선택된 두 개의 인버터의 논리 임계치를 비교함으로써 식별 키를 생성하는 경우, 최대 10 비트의 식별 키가 얻어질 수 있다.
본 실시예에서는 인버터가 5 개 포함되었으나, 본 발명은 이에 한정되지 않으며, 생성하고자 하는 식별 키의 비트 수, 회로의 면적 등을 고려하여 다양한 변경이 가능하다.
그리고, 반도체 칩 내에 집적될 수 있는 비교기(1330)의 면적이 인버터들(1331 내지 1335)의 면적에 비해 상당히 큰 것을 고려했기 때문에, 본 실시예에서는 선택부(1320)를 통해 복수 개의 인버터와 하나의 비교기(1330)가 연결되었다. 그러나, 다른 응용 예에서는 인버터 두 개 당 비교기 하나가 짝을 이루어, N 비트 의 식별 키를 생성할 수 있다.
도 14는 본 발명의 일 실시예에 따라, 차동 증폭기의 공정편차를 이용하여 식별 키를 생성하는 반도체 칩을 도시한다.
트랜지스터 및 저항 중 적어도 하나의 소자로 구성되는 차동 증폭기를 포함하는 반도체 칩(1400)은 제1 입력 단자(1411)와 제2 입력 단자의 전압의 차이를 증폭하여, 제1 출력 단자(1421)와 제2 출력 단자(1422) 사이의 전압 차이로서 제공한다.
따라서, 상기 제1 입력 단자(1411)과 제2 입력 단자(1422)를 단락시키는 경우, 이론적으로는, 출력 전압 값인 제1 출력 단자(1421)와 제2 출력 단자(1422) 사이의 전압 차이가 0이어야 한다.
그러나, 상기 공정편차에 의한 소자간의 전기적 특성 차이 때문에, 제1 출력 단자(1421)의 전압과 제2 출력 단자(1422)의 전압은 완전히 같지 않다.
따라서, 도 12의 인버터의 논리 임계치를 비교한 것과 같은 방법으로, 두 출력 단자 중 어느 출력 단자의 전압이 높은 지를 비교한다면, 1 비트의 식별 키를 생성할 수 있다.
이를테면, 제1 입력 단자(1411)와 제2 입력 단자(1412)를 단락시킨 경우에, 제1 출력 단자(1421)의 전압 값이 제2 출력 단자(1422)의 전압 값보다 높은 경우, 디지털 값 "1"로 인식하고, 반대의 경우에는 디지털 값 "0"으로 인식할 수 있다.
나아가, 상기 반도체 칩(1400)을 단위 셀로 하여, N 개의 단위 셀을 구성 한다면, N 비트의 식별 키를 생성할 수 있다. 이러한 구성의 일 실시예는 도 15를 참조하여 보다 상세히 후술된다.
이러한 차동 증폭기 회로의 출력 단자 전압들의 차이는 트랜지스터 소자의 전기적 특성 차이뿐만 아니라, 상기 반도체 칩(1400) 내에 포함될 수 있는 저항, 캐패시터 또는 인덕터와 등의 수동소자(도시되지 않음)의 전기적 특성 차이에 의하여 발생할 수도 있다.
즉, 칩 제작 시의 공정 편차는 상기 수동소자의 형상/구조적 차이를 야기할 수 있으며, 이로 인하여 상기 수동소자는 실제 수치 값에 차이를 가질 수 있다.
한편, 도 14에서는 도시되지 않았으나, 상기 제1 출력 단자(1421)와 제2 출력 단자(1422)의 전압 값을 비교하는 데에는 도 12의 비교기(1230)와 같은 소자가 이용될 수 있다.
도 15는 본 발명의 일 실시예에 따른 반도체 칩을 도시한다.
본 발명의 일 실시예에 따르면, 반도체 칩(1500)은 6 개의 차동 증폭기(1511 내지 1516), 상기 6 개의 차동 증폭기 중 어느 하나를 선택하는 선택부(1520), 및 상기 선택부(1520)에 의해 선택된 차동 증폭기의 두 개의 출력 전압을 비교하여 1 비트의 식별 키를 생성하는 비교부(1530)를 포함한다.
이 경우, 상기 6 개의 차동 증폭기(1511 내지 1516)의 전체 입력 단자는 단락되며, 동일한 전압을 갖는다.
본 발명의 일 실시예에 따르면, 선택부(1520)는 6:1 MUX 소자일 수 있다. 다만, 이는 본 발명의 구현을 위한 일 실시예에 불과하며, 본 발명은 특정한 실시 예에 한정되지 않는다. 따라서, MUX 소자의 입력/출력 포트의 수는 변경될 수 있으며, 나아가 선택부(1520)는 MUX 소자가 아닌 다른 소자일 수도 있다. 상기 6:1 MUX 소자는 12 개의 입력 단자를 통해 입력 되는 6 개의 차동 증폭기의 출력 전압을 두 개의 출력 단자로 출력한다. 그리고, 이 두 개의 출력 단자는 비교부(1530)의 두 개의 입력 단자에 연결된다.
상기 실시예에서, 반도체 칩(1500)은 6 비트의 디지털 식별키를 생성할 수 있다.
그리고, 본 실시예에서, 반도체 칩 내에 집적될 수 있는 비교기(1330)의 면적이 차동 증폭기들(1511 내지 1516)의 면적에 비해 상당히 큰 것을 고려했기 때문에, 선택부(1530)를 통해 복수 개의 차동 증폭기와 하나의 비교기(1330)가 연결되었다. 그러나, 상기 비교기 하나에 연결될 수 있는 차동 증폭기의 개수는 생성하고자 하는 식별 키의 비트 수, 회로의 면적, 공정상 여러 가지 제약 사항 등에 따라 다양하게 변경될 수 있으며, 이러한 변형 역시 본 발명의 범위 내에 포함되는 것으로 이해되어야 한다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하 드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일 실시예에 따른 반도체 칩을 도시한다.
도 2는 본 발명의 일 실시예에 따른 반도체 칩의 동작을 설명하기 위한 개념도이다.
도 3은 도 2의 실시예에 따른 두 개의 인버터의 논리 임계치 차이를 도시하는 그래프이다.
도 4는 본 발명의 일 실시예에 따라, CMOS 인버터와 트랜스미션 게이트를 이용하여 도 1의 회로를 구현한 모습을 도시한다.
도 5는 도 1의 실시예에 따른 반도체 칩을 단위 셀 블록으로 표현한 모습을 도시한다.
도 6은 본 발명의 일 실시예에 따라, 도 5의 단위 셀 블록의 각 단자에 입력되는 전압의 논리적 레벨의 흐름도이다.
도 7은 본 발명의 일 실시예에 따라, 도 5의 단위 셀을 M*N개 이용하여, (M+N) 비트의 식별 키를 생성하는 반도체 칩을 도시한다.
도 8은 본 발명의 일 실시예에 따른 반도체 칩을 포함하는, RFID 통신 장치를 도시한다.
도 9는 본 발명의 일 실시예에 따른 반도체 칩을 포함하는, 임베디드 시스템을 도시한다.
도 10은 본 발명의 일 실시예에 따른 반도체 칩을 포함하는, 공개키 기반의 통신 시스템을 도시한다.
도 11은 본 발명의 일 실시예에 따른 반도체 칩을 포함하는, HMAC(Hash Message Authentication Code) 모듈을 도시한다.
도 12는 본 발명의 일 실시예에 따라, 두 개의 인버터의 논리 임계치의 공정편차에 기반한 시스템을 도시한다.
도 13은 본 발명의 일 실시예에 따른 반도체 칩을 도시한다.
도 14는 본 발명의 일 실시예에 따라, 차동 증폭기의 공정편차에 기반한 반도체 칩을 도시한다.
도 15는 본 발명의 일 실시예에 따른 반도체 칩을 도시한다.
Claims (1)
- 반도체 칩에 있어서,피드백 구조를 이루는 한 쌍의 인버터 소자부; 및상기 한 쌍의 소자 사이에 연결된 리셋 스위치를 포함하는 반도체 칩.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090066726A KR20100117006A (ko) | 2009-07-22 | 2009-07-22 | 공정편차를 이용한 디지털 값 생성 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090066726A KR20100117006A (ko) | 2009-07-22 | 2009-07-22 | 공정편차를 이용한 디지털 값 생성 장치 및 방법 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20090035416A Division KR100926214B1 (ko) | 2009-04-23 | 2009-04-23 | 공정편차를 이용한 디지털 값 생성 장치 및 방법 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150163234A Division KR20150137045A (ko) | 2015-11-20 | 2015-11-20 | 공정편차를 이용한 디지털 값 생성 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100117006A true KR20100117006A (ko) | 2010-11-02 |
Family
ID=43403788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090066726A KR20100117006A (ko) | 2009-07-22 | 2009-07-22 | 공정편차를 이용한 디지털 값 생성 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20100117006A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101139630B1 (ko) * | 2010-12-09 | 2012-05-30 | 한양대학교 산학협력단 | 식별키 생성 장치 및 방법 |
WO2012134239A3 (ko) * | 2011-03-31 | 2013-01-03 | (주)아이씨티케이 | 디지털 값 생성 장치 및 방법 |
-
2009
- 2009-07-22 KR KR1020090066726A patent/KR20100117006A/ko active Application Filing
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101139630B1 (ko) * | 2010-12-09 | 2012-05-30 | 한양대학교 산학협력단 | 식별키 생성 장치 및 방법 |
WO2012134239A3 (ko) * | 2011-03-31 | 2013-01-03 | (주)아이씨티케이 | 디지털 값 생성 장치 및 방법 |
KR101237456B1 (ko) * | 2011-03-31 | 2013-02-26 | (주) 아이씨티케이 | 디지털 값 생성 장치 및 방법 |
US9105432B2 (en) | 2011-03-31 | 2015-08-11 | Ictk Co., Ltd | Apparatus and method for generating digital value |
US9729334B2 (en) | 2011-03-31 | 2017-08-08 | Ictk Co., Ltd | Apparatus and method for generating digital value |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100926214B1 (ko) | 공정편차를 이용한 디지털 값 생성 장치 및 방법 | |
US20200364374A1 (en) | Apparatus and method for generating identification key | |
KR101118826B1 (ko) | 물리적 공격을 방어하는 암호화 장치 및 암호화 방법 | |
Chen et al. | The bistable ring PUF: A new architecture for strong physical unclonable functions | |
Bhargava et al. | An efficient reliable PUF-based cryptographic key generator in 65nm CMOS | |
US9590804B2 (en) | Identification information generation device and identification information generation method | |
KR101663341B1 (ko) | 식별키 생성 장치 및 방법 | |
KR101359783B1 (ko) | 부정합 부하 저항 소자 기반 물리적 복제 불가 함수 시스템 | |
Zhou et al. | FPGA‐based RO PUF with low overhead and high stability | |
He et al. | Reliable and efficient PUF‐based cryptographic key generator using bit self‐tests | |
Papakonstantinou et al. | Physical unclonable functions (pufs) design technologies: Advantages and trade offs | |
KR102071937B1 (ko) | 식별키 생성장치 및 식별키 생성방법 | |
US10848327B2 (en) | Two bit/cell SRAM PUF with enhanced reliability | |
Tehranipoor et al. | Hardware security primitives | |
KR20100117006A (ko) | 공정편차를 이용한 디지털 값 생성 장치 및 방법 | |
KR20170132120A (ko) | 공정편차를 이용한 디지털 값 생성 장치 및 방법 | |
Tariguliyev et al. | Reliability and security of arbiter‐based physical unclonable function circuits | |
KR20160145529A (ko) | 공정편차를 이용한 디지털 값 생성 장치 및 방법 | |
KR20160030157A (ko) | 공정편차를 이용한 디지털 값 생성 장치 및 방법 | |
KR20150137045A (ko) | 공정편차를 이용한 디지털 값 생성 장치 및 방법 | |
KR102050021B1 (ko) | 식별키 유용성 판별장치 | |
US20200092117A1 (en) | Detecting unreliable bits in transistor circuitry | |
Ju | A Physical Unclonable Function Based on Inter-Metal Layer Resistance Variations and an Evaluation of its Temperature and Voltage Stability | |
Idriss et al. | Highly Reliable Arbiter PUF Architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
N231 | Notification of change of applicant | ||
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E601 | Decision to refuse application | ||
J201 | Request for trial against refusal decision | ||
A107 | Divisional application of patent | ||
J301 | Trial decision |
Free format text: TRIAL NUMBER: 2015101006183; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20151021 Effective date: 20170215 |