KR101518153B1 - 비트 생성 장치 및 비트 생성 방법 - Google Patents

비트 생성 장치 및 비트 생성 방법 Download PDF

Info

Publication number
KR101518153B1
KR101518153B1 KR1020137018145A KR20137018145A KR101518153B1 KR 101518153 B1 KR101518153 B1 KR 101518153B1 KR 1020137018145 A KR1020137018145 A KR 1020137018145A KR 20137018145 A KR20137018145 A KR 20137018145A KR 101518153 B1 KR101518153 B1 KR 101518153B1
Authority
KR
South Korea
Prior art keywords
bit
glitch
signal
bit value
input
Prior art date
Application number
KR1020137018145A
Other languages
English (en)
Other versions
KR20130095832A (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 KR20130095832A publication Critical patent/KR20130095832A/ko
Application granted granted Critical
Publication of KR101518153B1 publication Critical patent/KR101518153B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • 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/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/125Discriminating pulses
    • H03K5/1252Suppression or limitation of noise or interference
    • 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]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/003Modifications for increasing the reliability for protection
    • H03K19/00346Modifications for eliminating interference or parasitic voltages or currents
    • H03K19/00361Modifications for eliminating interference or parasitic voltages or currents in field effect transistor circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Nonlinear Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Manipulation Of Pulses (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

비트 생성 장치(100)는, 복수의 펄스를 포함하는 글리치 신호 y1∼yM을 발생하는 글리치 발생 회로(120)와, 글리치 신호 y1∼yM을 입력하고, 글리치 신호에 포함되는 복수의 펄스의 상승 에지와 하강 에지 중 어느 하나에 기초하여, 0과 1 중 어느 하나의 비트 값을 생성하는 T-FF 비트 생성 회로(131(1)∼131(M))를 구비한다. T-FF 비트 생성 회로(131(1)∼131(M))의 각각은, 복수의 펄스의 상승 에지의 개수의 패리티와, 하강 에지의 개수의 패리티 중 어느 하나에 기초하여, 비트 값 b1∼bM을 생성한다. T-FF 비트 생성 회로(131(1)∼131(M))의 채용에 의해, 종래에는 필요로 하는, 글리치 PUF에 본질적으로는 필요가 없는 회로가 불필요해져, 비트 생성 장치(100)의 회로 규모의 확대나 비트 생성의 처리 시간의 증대를 억제할 수 있다.

Description

비트 생성 장치 및 비트 생성 방법{BIT GENERATION DEVICE AND BIT GENERATION METHOD}
본 발명은, 인증 처리나 암호화 처리 등을 실행하는 보안 장치에 관한 것으로, 예를 들면, 암호 처리에서 이용하는 비밀 정보나, 장치를 인증하기 위해서 필요한 장치 고유의 식별자를, 장치에 고유한 물리량에 기초하여 생성하는 장치에 관한 것이다.
ASIC(Application Specific Integrated Circuit)나 FPGA(Field Programmable Gate Array) 등의 반도체 디바이스에 있어서, 동일 종류의 디바이스상에 동일한 회로를 실장해도, 게이트 지연 등의 디바이스 특성이 디바이스 개체마다 상이한 것에 의해, 디바이스 개체마다 상이한 출력이 얻어지는 현상이 존재한다. 이러한 현상을 낳는 회로 혹은 그 기술은, 「Physical Unclonable Function, 혹은 Physical Uncloning 기술」(이하, PUF라고 함) 등으로 불린다. PUF는, 인증이나 암호화 등으로의 응용이 기대된다.
PUF의 예로서, 비특허 문헌 1이 있다. 비특허 문헌 1은, 조합 회로의 출력 신호에 발생하는 글리치를 이용한다. 도 14, 도 15는, 비특허 문헌 1의 PUF(글리치 PUF라고 부름)의 원리를 나타내는 도면이다. 도 14, 도 15를 참조하여, 비특허 문헌 1 글리치 PUF를 설명한다. 글리치는, 신호가 변화할 때의 과도 상태에 있어서, 값이 0과 1에서 변화를 반복하는 현상이다. 도 14에 있어서, 조합 회로로 구성된 랜덤 로직(201)으로의 입력 신호 x1∼xL의 값을 변화시키면, 그것에 따라 출력 신호 y1∼yM(및 그 중에서 1개 선택한 신호 g)의 값이 변화한다. 그 변화는, 순간적으로 발생하는 것이 아니며, 임의의 시간을 취하여 발생한다. 변화의 과도 상태에 있어서는, 범위(202)로 나타낸 바와 같이, 값이, 0과 1에서 변화를 반복하는 글리치가 발생한다.
글리치의 형상은, 랜덤 로직(201)을 구성하는 게이트의 지연에 의해 결정된다. 게이트 지연은, 디바이스 개체에 따라서 상이하기 때문에, 글리치 형상은 디바이스 개체에 따라서 상이하다. 따라서, 글리치 형상을 0 또는 1에 할당함으로써, 디바이스 고유의 정보 비트를 생성하는 것이 가능해진다. 비특허 문헌 1에서는, 도 15의 (a), (b)와 같이, 글리치에 포함되는 펄스 개수의 패리티를 비트로 변환하는 방법이 진술되어 있다. 이상이 글리치 PUF의 원리이다.
비특허 문헌 1에서는, 글리치 형상을 포착하기 위해서, 글리치를 포함하는 신호(이하, 글리치 신호라고 함)를 샘플링하여, 글리치를 포함하는 파형(글리치 파형이라고 부름)을 취득한다. 글리치는 클럭 주기보다 짧은 시간에 발생하는 현상이다. 이 때문에,
(a) 미소하게 위상을 어긋나게 한 N개의 클럭으로 1개의 글리치 신호를 샘플링할 필요가 있다.
(b) 혹은, 미소한 지연을 부가한 N개의 글리치 신호를 1개의 클럭으로 샘플링할 필요가 있다.
여기서 「미소한 지연」은, 글리치에 포함되는 펄스의 간격을 하회하는 정도의 시간(지연)이다. 비특허 문헌 1은, 후자 (b)를 이용하고 있다(도 16). 또한, 비특허 문헌 1은, 「미소한 지연」을 부가하는 방법으로서, FPGA와 같은 LSI에 있어서 지연이 작게 억제되어 있는 가산 회로의 캐리(자리수 올림) 비트의 배선을 이용하는 방법을 제안하고 있다.
(선행 기술 문헌)
(비특허 문헌)
비특허 문헌 1 : 스즈키 다이스케 등의 「글리치 형상을 이용한 디바이스 고유 키의 생성 방식(1)」SCIS2010, 3F1-1
비특허 문헌 1의 샘플링에 의한 글리치 파형의 포착에는, 글리치 PUF에 본질적으로는 필요가 없는 회로가 필요하게 되기 때문에, 회로 규모나 처리 시간이 증대한다고 하는 과제가 있었다. 또한, 그 결과적으로, 동시에 생성 가능한 비트 수가 적게 된다고 하는 과제도 있었다.
이하에 상기 과제가 발생하는 이유를 기술한다. 도 16에서는, 샘플링용 지연 회로(203)에 의해 미소한 지연을 부가한 N개의 신호 s1∼sN을 생성하고 있다. 이들 신호 s1∼sN은 이상적으로는, 도 17(N=6으로 하고 있음)과 같이, 지연이 부가된 순서를 유지한 채로 샘플링되고, 그 결과로부터 원래의 파형을 재현할 수 있다. 그러나 현실적으로는, 도 16에 있어서 신호 s1∼sN이 샘플링 레지스터군(204)에 도달할 때까지의 배선이나, 샘플링용의 클럭 CLK의 스큐에 의해 발생하는 지연이, 샘플링용 지연 회로(203)에 의해 부가되는 미소한 지연보다 큰 경우가 있다. 그 결과, 도 18과 같이, 지연이 부가된 순서로 역전이 발생한 상태에서 샘플링되어, 원래의 파형을 재현할 수 없게 되어 버리는 과제가 있다.
비특허 문헌 1에서는 이 과제를 해결하기 위해서, 타이밍이 상이한 펄스를 순차적으로 샘플링하고, 그러한 결과로부터 역전한 순서 관계를 학습하고, 정렬을 행한다고 하는 처리(소팅(sorting))이라고 부름)를, PUF의 사전 처리로서 실행하고 있다. 도 19는, 비특허 문헌 1의 비트열 생성 회로(401)의 구성이다. 전령 신호용 지연 회로(402)는, 상술의 타이밍이 상이한 펄스를 발생시키는 회로이다. 그 펄스와 PUF 처리에 이용하는 글리치 신호와의 선택을 위해, 셀렉터(403)가 필요하다. 또한, 샘플링용 지연 회로(404)나 샘플링 레지스터(405)라고 하는, 글리치 PUF와는 직접 관계가 없는 회로가 필요하게 된다. 또한, 샘플링의 타이밍을 조정하기 위해서, 가변 지연 회로(406)도 필요하게 된다. 전령 신호용 지연 회로(402)∼가변 지연 회로(406), 및 글리치 형상 판정 회로(407)에 의해 한 번에 생성 가능한 비트 수는 1이다. 전령 신호용 지연 회로(402)∼글리치 형상 판정 회로(407)를 병렬적으로 실장함으로써, 복수 비트의 동시 생성도 원리적으로는 가능하다. 그러나, 회로 규모가 증대한다고 하는 실용상의 과제가 있다.
본 발명은, 글리치 PUF에 있어서, 글리치 파형의 형상에 근거하는 정보 비트 생성을, 글리치 신호의 샘플링이나 소팅이 수반되지 않고 실현되고, 그 결과, 회로 규모가 작고, 처리 시간이 짧고, 동시에 생성 가능한 비트 수가 많은, 비트 생성 장치의 제공을 목적으로 한다.
본 발명의 비트 생성 장치는,
복수의 펄스를 포함하는 글리치 신호를 발생하는 글리치 발생부와,
상기 글리치 발생부에 의해 발생된 상기 글리치 신호를 입력하고, 입력된 상기 글리치 신호에 포함되는 상기 복수의 펄스의 상승 에지와, 하강 에지 중 어느 하나에 기초하여, 0과 1 중 어느 하나의 비트 값을 생성하는 비트 값 생성부를 구비한 것을 특징으로 한다.
본 발명에 의해, 종래에 필요로 하는, 글리치 PUF에 본질적으로는 필요가 없는 회로가 불필요해져, 회로 규모나 처리 시간의 증대를 억제할 수 있다. 또한, 그 결과적으로, 동시에 생성 가능한 비트 수가 적게 된다고 하는 과제를 해결할 수 있다.
도 1은 실시 형태 1의 비트열 생성 회로(100)의 시스템 LSI로의 탑재예를 나타내는 도면.
도 2는 실시 형태 1의 T-FF를 나타내는 도면.
도 3은 실시 형태 1의 T-FF의 입력 신호 T와 출력 신호 Q를 나타내는 도면.
도 4는 실시 형태 1의 비트열 생성 회로(100)의 블럭도.
도 5는 실시 형태 1의 글리치 발생 회로(120)의 내부 구성을 나타내는 도면.
도 6은 실시 형태 1의 D 플립플롭을 이용한 ASIC에 있어서의 T-FF의 구성을 나타내는 도면.
도 7은 실시 형태 1의 FPGA에 있어서의 F-FF의 구성을 나타내는 도면.
도 8은 실시 형태 1의 T-FF의 전단에 설치된 필터 회로(150)를 나타내는 도면.
도 9는 실시 형태 1의 T-FF 비트 생성 회로(131(1))가 복수의 T-FF와 생성비트 안정화 회로(160)를 구비한 구성을 나타내는 도면.
도 10은 실시 형태 1의 생성 비트 안정화 회로(160)의 구체 구성을 나타내는 도면.
도 11은 실시 형태 1의 생성 비트 안정화 회로(160)의 다른 구체 구성을 나타내는 도면.
도 12는 실시 형태 1의 비트열 생성 회로(100)의 동작을 나타내는 플로우차트.
도 13은 실시 형태 1의 비트열 생성 회로(100)의 동작을 나타내는 다른 플로우차트.
도 14는 종래 기술을 나타내는 도면.
도 15는 종래 기술을 나타내는 도면.
도 16은 종래 기술을 나타내는 도면.
도 17은 종래 기술을 나타내는 도면.
도 18은 종래 기술을 나타내는 도면.
도 19는 종래 기술을 나타내는 도면.
(실시 형태 1)
도 1은, 비트열 생성 회로(100)(비트 생성 장치)를 시스템 LSI(Large Scale Integration)(1000)에 탑재하는 예를 나타내는 도면이다. 도 1은, CPU(Central Processing Unit)(500), 내부 메모리(600)(기억 장치의 일례), 외부 인터페이스(700) 등을 구비하는 일반적인 구성의 시스템 LSI에, 비트열 생성 회로(100)와, 에러 정정 회로(300)(에러 정정부), 암호 처리 회로(400)를 탑재한 예이다. 이하에 설명하지만, 비트열 생성 회로(100)는, 글리치 신호로부터 비트열을 생성한다. 그 경우, 비트열 생성 회로(100)는, 병행 처리에 의해 복수의 비트 값을 생성하고, 생성된 복수의 비트 값으로부터, 비트열인 키 정보 혹은 디바이스의 식별 정보를 생성한다. 이러한 키 정보 등이 글리치 PUF이다. 비트열 생성 회로(100)에 의해 생성된 데이터(비트열)는, 예를 들면, 암호 처리 회로(400)에 의한 암호 처리 등의 정보 보안 처리에서 필요한 키 정보로서 이용된다. 비트열 생성 회로(100)에 대한 제어는, CPU(500)로부터 제어 가능한 것으로 해도 좋다. 비트열 생성 회로(100)는, 후술(도 9)과 같이, 생성 비트의 안정성을 높이는 처리(생성 비트 안정화 회로(160))를 포함하고 있다. 그러나, 여전히 생성되는 비트열에 포함되는 에러를 0으로 하는 것은 어렵다. 도 1에서는, 이 에러를 에러 정정 회로(300)에 의해 정정한다. 에러 정정 회로(300)를 사용함으로써, 비트열 생성 회로(100)에 의해 생성되는 디바이스 고유 정보를, 암호 처리에 필요한 키 정보로서 이용하는 것이 가능해진다.
비트열 생성 회로(100)의 특징은, 글리치 신호에 포함되는 펄스 개수의 홀수, 짝수(패리티)의 판정을, 비트의 반전 회수에 의해 행하는 점이다. 글리치 신호의 패리티의 판정에는, 토글 플립플롭(T-FF라고 표기함)으로 불리는 회로가 사용된다.
도 2는, T-FF(후술의 단위 회로의 일례)를 나타낸다. T-FF는, 도 2와 같은 회로 기호로 나타내어지는 순서 회로이다.
도 3은, 도 2에 나타내는 T-FF의 입력 신호 T와 출력 신호 Q를 나타낸다. 도 3의 (a)는, 글리치 신호에 포함되는 펄스의 개수가 3개(홀수)인 경우를 나타내고, 도 3의 (b)는, 글리치 신호에 포함되는 펄스 개수가 4개(짝수)인 경우를 나타낸다. T-FF는, 입력 신호 T가 상승할 때마다 한 번, 출력 신호 Q의 값이 반전하는 플립플롭이다. 그 결과, 도 3과 같이, 입력 T의 펄스 개수가 짝수인지 홀수인지에 따라서 최종적인 출력 Q의 값이 결정된다. 이 원리에 의해, 글리치 신호를 T-FF의 입력 신호 T로서 입력하고, 그 출력 신호 Q를 이용함으로써, 글리치 PUF를 실현할 수 있다. 즉, 도 3의 (a)에서는 입력 신호 T의 펄스의 개수는 3개(홀수)이다. 이 펄스에 대해서, T-FF는, 상승 에지를 검출할 때마다, 출력 신호 Q의 값이 반전한다. 따라서, 도 3의 (a)의 파선 영역(205)으로 나타낸 바와 같이, 입력 신호 T의 펄스 개수가 3개(홀수)이면 「출력 신호 Q의 최종 값」은 하이 레벨이 된다. 한편, 도 3의 (b)의 파선 영역(206)으로 나타낸 바와 같이, 입력 신호 T의 펄스 개수가 4개(짝수)이면 「출력 신호 Q의 최종 값」은 로우 레벨이 된다.
따라서,
「출력 신호 Q의 최종 값이 하이 레벨」(펄스 수가 홀수)=비트 값 「0」,
「출력 신호 Q의 최종 값이 로우 레벨」(펄스 수가 짝수)=비트 값 「1」,
로 비트를 결정할 수 있다.
또한, 도 3에 있어서 출력 Q의 초기의 신호 레벨을 「하이」로 함으로써,
「출력 신호 Q의 최종 값이 로우 레벨」(펄스 수가 홀수)=비트 값 「0」,
「출력 신호 Q의 최종 값이 하이 레벨」(펄스 수가 짝수)=비트 값 「1」,
로 할 수 있다.
이와 같이, 출력 Q의 반전 횟수(출력 Q의 최종 값)가 펄스의 패리티와 일치하므로, 출력 신호 Q의 최종 값에 의해, 비트 값을 결정할 수 있다. 또한, 도 3에서는 T-FF에 의해 입력 신호 T(글리치 신호)의 펄스의 상승 에지를 검출하는 경우를 설명했지만, 하강 에지를 검출해도 좋음은 명백하다.
(비트열 생성 회로(100)의 구성)
도 4는, 비트열 생성 회로(100)의 블럭도이다. 비트열 생성 회로(100)는, 디바이스 고유의 정보 비트열의 생성을 목적으로 한다. 비트열 생성 회로(100)는, 데이터 버스(101, 102)에 접속된다. 비트열 생성 회로(100)는, 데이터 레지스터군(110), 글리치 발생 회로(120)(글리치 발생부), 비트 생성 회로군(130), 제어 레지스터군(140)을 구비하고 있다. 비트 생성 회로군(130)은, T-FF에 근거하는 T-FF 비트 생성 회로(131)(비트 값 생성부)를 M개 구비하고 있다. 개개의 T-FF 비트 생성 회로(131)를 구별하는 경우에는, T-FF 비트 생성 회로(131(i)(i=1∼M))와 같이 표기한다. 예를 들면, T-FF 비트 생성 회로(131(1))는, 글리치 신호 y1을 입력하고, 비트 b1을 출력한다. T-FF 비트 생성 회로(131(1))는, 하나의 T-FF로 이루어지는 후술의 단위 회로라도 좋고, 도 9에서 후술하는 바와 같이, 복수의 단위 회로로 이루어지는 구성이라도 좋다.
데이터 레지스터군(110)은, 데이터 버스(101)로부터의 데이터 입력에 대해서, 글리치 발생 회로(120)로의 입력 신호 「x1∼xL」을 유지하는 레지스터를 포함한다.
글리치 발생 회로(120)는, 데이터 신호 x1∼xL을 입력으로 하고, 신호 y1∼yM을 반환한다(출력함).
도 5는, 글리치 발생 회로(120)의 내부 구성을 나타낸다. 글리치 발생 회로(120)는, 랜덤 로직부(121)(조합 회로)를 구비하고 있다. 랜덤 로직부(121)는, x1∼xL의 L 비트의 입력을, 임의의 함수의 조합 회로에 의해 처리하고, M 비트의 데이터 y1∼yM을 출력한다. 랜덤 로직부(121)에서 처리하는 함수의 예로서, 공통 키 암호 AES로 정의되는 S-box를 들 수 있다. S-box인 경우, L=M=8로 된다.
비트 생성 회로군(130)은, 글리치 발생 회로(120)의 출력 y1∼yM의 각각을 입력 T로서 입력하고, 입력 신호 y1∼yM에 따라 비트 b1∼bM을 생성하고, 출력하는 M개의 T-FF 비트 생성 회로(131)로 이루어진다. 구체적으로는 도 4에 나타낸 바와 같이,
T-FF 비트 생성 회로(131(1))는, 입력 신호 y1을 입력하고 비트 값 b1을 출력하고,
T-FF 비트 생성 회로(131)(2)는, 입력 신호 y2를 입력하고 비트 값 b2를 출력하고,
마찬가지로,
T-FF 비트 생성 회로(131)(M)는, 입력 신호 yM을 입력하고 비트 값 bM을 출력한다.
도 6, 도 7은, 도 2에서 설명한 T-FF의 LSI에 있어서의 구성예이다.
도 6은, 일반적인 D 플립플롭을 이용한 ASIC에 있어서의 T-FF의 구성이다.
도 6의 T-FF는, D 플립플롭의 반전 출력을 피드백하여 입력한다. 도 6, 도 7의 T-FF는, 단위 회로인 경우의 T-FF 비트 생성 회로(131(1)), 단위 회로인 T-FF 비트 생성 회로(131(1)-1))에 상당한다.
도 7의 T-FF는, FPGA에 있어서의 F-FF의 구성예이다. 일반적으로 FPGA는, 논리 함수를 실현하는 LUT(Look Up Table)와, LUT의 출력을 유지하기 위한 레지스터의 쌍으로 이루어지는 구성요소를 복수 갖는다. 이들 복수의 구성요소의 사이가, 배선 가능한 구성으로 되어 있다.
도 7은, Xilinx사의 Spartan-3A로 불리는 FPGA 시리즈를 예로 한 도면이다. 도 7의 FPGA는, LUT와 레지스터의 쌍을 2개 갖는 슬라이스로 불리는 구성요소와, Switch Matrix로 불리는, 슬라이스끼리, 혹은, 슬라이스를 RAM 등의 다른 구성요소와 배선하기 위한 구성요소를 갖는다. 1개의 슬라이스내의 1개의 레지스터를 이용하여, 그 출력을 Switch Matrix에 의한 배선으로 재차 동일한 슬라이스에 입력한다. 그리고, 슬라이스내에 존재하는 반전 경로를 통해 동일한 레지스터에 입력한다. 이에 의해, 도 7에서는, T-FF가 구성된다. 여기서, 예를 들면, 반전 처리에 LUT를 이용함으로써 배선중에 LUT를 포함하면, 글리치 신호에 있어서의 펄스 발생에 반전 처리가 시간에 맞추지 못하고, 타이밍 위반이 발생할 가능성이 있다. 이 때문에, 반전 처리에는 LUT는 사용하지 않는다.
도 8 내지 도 11을 참조하여, 비트 생성 회로군(130)의 구체적인 내부 구성을 설명한다.
도 8은, T-FF의 전단에, 글리치 신호에 대한 필터 회로(150)(필터부)를 구비한 구성이다. 글리치 신호(도 4의 신호 y1∼yM)의 펄스 중에는, 펄스폭이 극단적으로 좁은 것이 포함되는 것이 있다. 예를 들면, 도 8의 파선(152)으로 둘러싸인 펄스이다. 이러한 펄스는, 게이트를 통과할 때에 사라져 버리거나 도 6, 도 7 등의 T-FF에 있어서, 래치 간격이 너무 짧기 때문에 피드백 입력이 늦게 되거나 하는 등, 비트 생성을 불안정하게 하는 요인이 된다. 그래서, 비트 생성을 안정화시키기 위해서, 폭이 극단적으로 좁은 펄스를 제거하는 필터 회로(150)를, T-FF의 전단에 마련한다. 도 8에서는, 필터 회로(150)의 구체적 구성으로서, 인버터를 직렬로 접속한 필터 회로(151)를 나타낸다.
도 9는, 하나의 글리치 신호(예로서 신호 y1로 함)를 분기시켜, 각각의 T-FF에 입력하는 구성이다. 도 9는, 도 4의 T-FF 비트 생성 회로(131(1))가, K개의 T-FF 비트 생성 회로와, 생성 비트 안정화 회로(160)(변환부)를 구비하였을 경우를 나타낸다. 도 9에 나타내는 K개의 T-FF 비트 생성 회로를, T-FF 비트 생성 회로(131(1)-1∼131(1)―K)라고 표기한다. 이하, T-FF 비트 생성 회로(131(1)-1∼131(1)―K)의 개개를 「단위 회로」라고도 부른다. 「단위 회로」(비트 값 생성부)는, 신호 y1과 같은 하나의 글리치 신호를 입력으로 하여, 하나의 비트를 출력하는 회로를 말한다. T-FF 비트 생성 회로(131(2))∼T-FF 비트 생성 회로(131(M))에 관해서도, T-FF 비트 생성 회로(131(1))와 마찬가지의 구성이다. 동일한 글리치 신호 y1이더라도, 단위 회로에 의해 생성되는 비트 b1이 변화하는 경우가 있다. 환언하면, 글리치 신호 y1에 대해서, 하나의 단위 회로만으로 비트 값 b1을 생성하는 경우, 생성되는 비트 값 b1은, 안정되지 않을 우려가 있다. 즉, 도 4의 T-FF 비트 생성 회로(131(1))를 하나의 단위 회로만으로 했을 경우에는, 출력되는 비트 값 b1이 안정되지 않을 우려가 있다. 그래서, 도 9에 나타내는 바와 같이, T-FF 비트 생성 회로(131(1))가 K개의 단위 회로와, 생성 비트 안정화 회로(160)를 구비하는 구성으로 했다. 도 9에 있어서, 각각의 단위 회로는, 글리치 발생 회로(120)가 발생한 글리치 신호 y1을, 서로 상이한 신호 경로를 거쳐서 입력하고, 비트 값 b'i(i=1∼K)를 출력한다. 생성 비트 안정화 회로(160)는, 각각의 단위 회로에 의해 생성된 K개의 비트 값이 나타내는 0과 1의 개수에 근거하여, K개의 비트 값을, 0과 1 중 어느 하나의 값을 나타내는 대표 비트 값으로 변환한다. 도 9는, 생성 비트 안정화 회로(160)가 K개의 비트 값을, 대표 비트 값 「b1=0」으로 변환했을 경우를 나타낸다. 이와 같이, 생성 비트 안정화 회로(160)는, 글리치 신호 yi(i=1∼M)로부터 생성되는 비트 값 bi(i=1∼M)를 안정화시키는 회로이다.
도 10, 도 11은, 생성 비트 안정화 회로(160)의 구체적인 구성의 생성 비트 안정화 회로(161), 생성 비트 안정화 회로(162)를 나타낸다. 도 10의 생성 비트 안정화 회로(161)는, 각각의 단위 회로에 의해 생성된 K개의 비트를 이루는 1과 0 중, 많이 생성된 비트를 최종적인 출력 비트 b1로 한다. 또한, 도 11의 생성 비트 안정화 회로(162)는, 각각의 단위 회로에 의해 생성된 K개의 비트에 관해서, K개의 비트가 모두 동일한 값(모두 1, 혹은 모두 0)인 때로 한정하여, 그 비트를 정보로서 사용한다. K개의 비트에 0과 1이 혼재하는 경우에는, 생성 비트 안정화 회로(162)는, 출력 비트 b1을 정보로서 사용하지 않는 것을 나타내는 플래그 신호를 출력한다. 즉, 생성 비트 안정화 회로(162)는, 출력 비트를 정보로서 사용하는지 여부를 나타내는 플래그 신호(충족 정보)를 출력 비트 b와 동시에 출력한다. 이 플래그 신호는, 후술의 「마스크」이다.
제어 레지스터군(140)은, 비트열 생성 회로(100)가 T-FF에 근거하는 비트 생성 회로로서 도 8 및 도 9의 구성을 구비한다. 제어 레지스터군(140)은, 비트열 생성 회로(100)가 어느 한쪽을 선택 가능한 기능을 구비하는 경우에, 그 선택 신호를 유지한다. 선택 신호는, 데이터 버스(101)를 거쳐서 외부로부터 입력된다.
도 12, 도 13을 참조하여, 비트열 생성 회로(100)의 동작을 설명한다.
도 12, 도 13은, 비트열 생성 회로(100)에 의한 정보 비트 생성의 동작을 나타내는 플로우차트이다. 이하에 설명하는 도 12, 도 13의 동작에 관해서는, CPU(500)가 비트열 생성 회로(100)을 제어하는 것으로 한다.
우선 도 12를 설명한다. 이하의 설명에서는 도 4, 도 9 등도 참조한다. 우선 초기 설정으로서, CPU(500)에 의해, 비트열 생성 회로(100)의 전체 레지스터가 초기화된다(S1001). 초기 설정 후, CPU(500)는, 데이터 레지스터군(110)에 데이터를 입력한다(S1002, S1003). S1002에 있어서, d가 d=0으로부터 d=2L-1까지 루프한다. 이 d의 루프는, S1003에 나타낸 바와 같이, L 비트의 입력 데이터(x1, x2, …, 85xL)=(0, 0, …, 0)∼(1, 1, …, 1)의 2L개에 대응한다. 예를 들면, d=0은 L 비트의 모두가 0인 (x1, x2, …, xL)=(0, 0, …, 0)에 대응하고, d=2L-1은 L 비트의 모두가 1인 (x1, x2, …, xL)=(1, 1, …, 1)에 대응한다. S1003에 있어서의 x1∼xL의 입력에 의해, 글리치 발생 회로(120)는, x1∼xL의 입력에 수반하는 글리치 신호인 y1∼yM을 출력한다.
글리치 발생 회로(120)에 의해 발생된 글리치 신호 y1∼yM은, 비트 생성 회로군(130)에 의해 처리된다. 즉, 글리치 신호 y1∼yM은, 도 4의 개개의 T-FF 비트 생성 회로(131(i))에 의해 처리된다. 비트 생성 회로군(130)에 의해, 글리치 신호 y1∼yM의 각각에 대해서 1 비트, 합계 M 비트의 정보 비트가 최종적으로 데이터 버스(102)에 출력된다.
도 12의 S1004∼S1009의 스텝은, 비트열 생성의 흐름을 나타낸다. 단, 설명을 간략화하기 위해서, S1004∼S1009는, 생성되는 비트 수가 1 비트의 경우를 나타냈다. 즉, S1004∼S1009는, 예를 들면, 도 4의 T-FF 비트 생성 회로(131(1))에만 주목하고 있다. M 비트의 생성은, S1004∼S1009의 스텝을 M개 병렬로 행함으로써 실현된다. 즉, T-FF 비트 생성 회로(131(1)∼131(M))에 의해 병렬 처리를 실행한다. 이하, T-FF 비트 생성 회로(131(1))를 상정하여, S1004∼S1009를 설명한다.
S1004는, 도 9에 나타내는 구성에 대응하는 스텝이다. S1004는, 비트 생성의 안정화를 목적으로 한다. 글리치 발생 회로(120)에 의해 발생된 글리치 신호 y1에 대해, K개의 T-FF(단위 회로)가 K개의 비트 b'1∼b'K를 생성한다. 「b'1∼b'K」는, 동일한 글리치 신호 y1로부터 생성된 비트이기 때문에, 이상적으로는 동일한 값이 된다. 그러나, 실제의 디바이스상에서는, T-FF(단위 회로)에 도달할 때까지의 배선이나, T-FF 자체의 특성에 의해, 비트 값이 상이할 가능성이 있다. 반대로 말하면, 「b'1∼b'K」의 값이 모두 일치하는 경우, 비트는 안정되어 있다고 말할 수 있다. 일반적으로는, K개 생성된 비트 값 중, 수가 많은 (K/2개보다 많음) 쪽의 비트 값이, 정확한 비트 값이라고 간주할 수 있다. 그리고, 일치도가 높아질수록(0과 1의 어느 한쪽의 비트가 총 수 K에 가까워질수록), 그 비트는, 안정되어 있다고 말할 수 있다.
S1005는, 등록 시와 재생성 시에, 상이한 기준으로 비트 생성을 행하기 위해서, 처리가 분기한다. 「등록」은 생성한 비트열을, 키 정보로서 다른 장치에 등록하는 경우를 의미하고, 통상, 최초의 비트열 생성 시이다. 등록 후, 이후(통상, 2번째 이후)의 정보 비트 생성을 「재생성」이라고 한다. 예를 들면, 「등록」은, 비트열 생성 회로(100)가 내장된 장치를 제조하는 메이커가 키 정보(비트열)를 보관하기 위해서 행하는 처리이다. 「재생성」은, 예를 들면, 비트열 생성 회로(100)가 내장된 장치가 사용자에게 구입되어, 키 정보가 생성되는 경우이다.
(등록 시)
S1006, S1007는 등록 시의 스텝이다. S1006에서는, 생성 비트 안정화 회로(160)는, 「기준 1」에 따라 출력 비트 b1을 결정하고, S1007에서, 출력 비트 b1의 안정성을 나타내는 「마스크」(전술의 플래그 신호)를 출력한다. 또한, 후술의 S1008에 있어서, 생성 비트 안정화 회로(160)는, 「기준 2」에 따라 출력 비트 b1을 결정하지만, 「기준 1」은 S1008의 「기준 2」보다 어려운 기준이다.
(마스크)
이하, 등록 시에 생성되는 마스크를 설명한다. 도 9에 나타내는 생성 비트 안정화 회로(160)에 의해, K개의 비트의 대표 비트로서 출력되는 b1은, 최악이더라도 K/2개보다 많이 생성된 쪽의 비트 값이다. 그러나, K/2를 겨우 넘는 정도에서는, 재생성 시에 비트 값이 역전할 가능성이 있어, 안정성이 낮다. 보다 엄격한 조건을 만족하는 비트, 즉, 생성된 개수가 총 수 K개에 가까운 비트만을 정보 비트 b1로서 사용하면, 비트 생성의 안정성을 높일 수 있다. 즉, 생성 비트 안정화 회로(160)는, K개의 단위 회로에 의해 생성된 「b'1∼b'K」의 K개의 비트 값 중에서, 0과 1 중 어느 한쪽의 비트 값이 소정의 비율을 만족하는 경우에, K개의 비트 값을, 대표 비트로서, 상기 소정의 비율을 만족하는 한쪽의 비트 값으로 변환한다. 생성 비트 안정화 회로(160)는, 상기 소정의 비율을 만족하는지 여부를 나타내는 정보로서, 「마스크」(전술의 플래그 신호)를 생성한다. 여기서 「소정의 비율」은, 도 11에서 기술한 바와 같이 「100%」이라도 좋고, 혹은 「90%」이라도 좋다. 「소정의 비율」은 자유롭게 설정 가능한 것으로 한다. 이와 같이, 생성 비트 안정화 회로(160)는, 출력 비트 b1이 「엄격한 조건」을 만족하는 비트인 것을 나타내는 정보를, 마스크(충족 정보)로서 출력한다. 이에 의해, 그 비트 b1을 사용하는지 여부의 CPU(500)에 의한 판단을 가하게 한다. 「엄격한 조건」의 예로서는, 전술한 바와 같이, 「b'1∼b'K」의 K개의 비트 값의 전체 수 일치의 경우이다.
(재생성 시)
S1008는 재생성 시의 스텝이다. 재생성 시에서는, 생성 비트 안정화 회로(160)는, 「기준 2」에 따라 출력 비트 b1(대표 비트)을 결정한다. 「기준 2」는, 「기준 1」과 동일하더라도 좋고 상이하더라도 좋다. 단, K개 모두 일치라고 하는 조건에서는, 모두 일치하지 않았던 경우의 비트 값을 결정할 수 없기 때문에, 그 이외의 조건으로 한다. 통상, 「기준 2」는 「기준 1」보다 느슨한 기준이다. 예를 들면, 「기준 1」이 도 11에 나타내는 「전체 수 일치」라고 하면, 「기준 2」는, 도 10에 나타내는 「과반수」와 같은 조건이다. 이와 같이, 생성 비트 안정화 회로(160)는, S1008에 있어서, 「기준 2」에 의해 도 9에 나타내는 대표 비트 b1을 출력한다.
또한, 도 12는, 정보 비트 생성을 서브루틴으로서 사용하는 상위의 루틴의 처리를 상정하고 있다. 도 12는 마스크를 생성하고, 기억(S1007)할 뿐이다. 마스크를 수반하는 출력 비트 b를 사용하는지 여부를 마스크에 따라 결정하는 처리는, 그 상위의 루틴이 행한다.
도 13은, 마스크를 이용한 처리를, 정보 비트 생성에 포함하는 경우를 나타낸다. 도 13에서는, 도 12에 대해서, S1101, S1102의 스텝이 추가되었다. S1101에 있어서, 처리가 마스크의 값에 의해 분기된다. 도 13에서는, 마스크의 값이 「1」인 경우에, 비트 b를 사용한다. 마스크가 「1」이면, 도 12와 마찬가지로, 「기준 2」에 따라 비트 b(대표 비트)가 결정된다(S1008). 마스크가 0이면, 비트 b1의 값은 정보 비트로서 사용되지 않는다. 그래서, 기준 2에 의한 결정 처리를 생략하고, 즉석에서 b=0으로 함으로써 처리의 고속화가 가능하다. 이 값은 사용되지 않기 때문에, b=1로 해도 동일하다.
즉, T-FF 비트 생성 회로(131(1)-1∼131(1)-K)는, 도 9에 나타낸 바와 같이, 마스크 생성(S1007)의 소스가 되는 글리치 신호 y1에 대응하는 입력 신호(x1∼xL)와 동일한 입력 신호에 의해 글리치 발생 회로(120)가 발생한 글리치 신호 y1(제 2 글리치 신호)을, 글리치 발생 회로(120)로부터 서로 상이한 신호 경로를 거쳐서 입력한다.
그리고, T-FF 비트 생성 회로(131(1)-1∼131(1)-K)는, 입력된 글리치 신호(제 2 글리치 신호)로부터 비트 b'1∼b'K(제 2 비트 값)을 생성한다. 생성 비트 안정 회로(160)는, 내부 메모리(600) 등의 기억 장치에 기억된 마스크를 참조한다. 생성 비트 안정 회로(160)는, 마스크가 「1」인 경우(마스크가 소정의 비율의 충족을 나타내는 경우)에는 K개의 비트 값 중에서 0과 1 중 어느 한쪽의 비트 값이 기준 1보다 완만한 기준 2를 만족하는지 여부를 판정한다. 생성 비트 안정 회로(160)는, 기준 2를 만족한다고 판정했을 경우에, K개의 비트 값을, 기준 2에 따라 변환되어야 할 비트 값(대표 비트 값)으로 변환한다.
도 12, 도 13의 S1009에서는, 생성된 비트 b가 출력된다. 이상의 처리를, 입력 데이터 「x1∼xL」을 바꾸어 반복하여 행한다(S1002의 루프). 도 4의 비트열 생성 회로(100)의 구성은, M 비트 병렬로 생성 가능하다.
따라서, 최종적으로,
b1(d)∼bM(d)(d=0, 1, ..., 2L-1)의 M×2L 비트의 출력을 얻을 수 있다. 이 중, S1007에 의한 마스크(플래그 신호)로 나타낸 부분을 디바이스 고유의 정보로서 이용한다.
실시 형태 1의 비트열 생성 회로(100)에 의해, 종래에는 필요로 했던 글리치 PUF에 본질적으로는 필요가 없는 회로가 불필요해져, 회로 규모나 처리 시간의 증대를 억제할 수 있다. 또한, 그 결과적으로, 동시에 생성 가능한 비트 수가 적게 된다고 하는 과제를 해결할 수 있다.
종래의 비트열 생성 회로(401)와, 실시 형태 1의 비트열 생성 회로(100)의 비교로부터, 비트열 생성 회로(100)에 의하면, 종래의 글리치 PUF에서 필요했던 샘플링 처리나 소팅 처리에 관한 회로 및 레지스터가 불필요하고, 회로 규모의 축소 효과가 얻어지는 것을 알 수 있다. 제어 레지스터에 관해서도 삭감된다.
비트열 생성 회로(100)에 의하면, 처리 성능에 관해서, 필요한 처리의 삭감에 의해 처리 속도가 향상하고, 또한, 회로 규모의 삭감에 의해, 복수 비트의 동시 생성이 가능해졌다.
또한, 비트 생성에는, 글리치 형상의 샘플링 데이터의 처리만이 아니라, T-FF에 의한 비트 반전이라고 하는 단순한 처리를 이용하고 있다.
이 때문에, 비트 생성의 안정화를 위한 처리를 도 8, 도 10, 도 11에 나타내는 소규모의 회로로, 하드웨어로 행하는 것이 가능해졌다. 이것도, 처리 속도의 향상 효과를 낳고 있다.
이상의 실시 형태에서는 장치로서의 비트열 생성 회로(100)를 설명했지만, 비트열 생성 회로(100)의 구성요소의 각 동작을, 글리치 신호로부터 비트를 생성하는 비트 생성 방법으로서 파악하는 것도 가능하다.
100 : 비트열 생성 회로
101, 102 : 데이터 버스
110 : 데이터 레지스터군
120 : 글리치 발생 회로
121 : 랜덤 로직부
130 : 비트 생성 회로군
131 : T-FF 비트 생성 회로
131(1)-1 : T-FF 비트 생성 회로
140 : 제어 레지스터군
150, 151 : 필터 회로
160, 161, 162 : 생성 비트 안정화 회로
1000 : 시스템 LSI

Claims (11)

  1. 복수의 펄스를 포함하는 글리치(glitch) 신호를 발생하는 글리치 발생부와,
    제 1 내지 제 N(N은 2 이상의 정수)까지의 N개의 반도체 소자의 직렬 접속으로 구성되는 필터부로서, 상기 글리치 발생부에 의해 발생된 상기 글리치 신호를 상기 제 1 반도체 소자로부터 입력하고, 입력된 상기 글리치 신호를 제 1 내지 제 N까지의 각 반도체 소자를 통과시킴으로써 사전 결정된 펄스폭보다 작은 펄스를 제거하고, 사전 결정된 펄스폭보다 작은 상기 펄스가 제거된 상기 글리치 신호를 상기 제 N 반도체 소자로부터 출력하는 필터부와,
    상기 필터부에 의해 출력된 상기 글리치 신호를 입력하고, 입력된 상기 글리치 신호에 포함되는 상기 복수의 펄스의 상승 에지와, 하강 에지 중 어느 하나에 기초하여, 0과 1 중 어느 하나의 비트 값을 생성하는 비트 값 생성부와,
    상기 필터부에 의해서 출력된 동일한 상기 글리치 신호를, 상기 필터부로부터 서로 상이한 신호 경로를 거쳐서 입력하고, 입력된 상기 글리치 신호로부터 복수의 비트 값을 생성하는 복수의 상기 비트 값 생성부와,
    복수의 상기 비트 값 생성부에 의해 생성된 복수의 상기 비트 값이 나타내는 0과 1의 개수에 기초하여, 복수의 상기 비트 값을, 0과 1 중 어느 하나의 값을 나타내는 대표 비트 값으로 변환하는 변환부
    를 구비한 것을 특징으로 하는 비트 생성 장치.
  2. 제 1 항에 있어서,
    상기 필터부는,
    상기 N개의 반도체 소자로서, 제 1 내지 제 N까지의 N개의 NOT 게이트의 직렬 접속으로 구성되는 것을 특징으로 하는 비트 생성 장치.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 변환부는,
    복수의 상기 비트 값 생성부에 의해 생성된 복수의 상기 비트 값 중에서 0과 1 중 어느 한쪽의 비트 값의 개수가 사전 결정된 제 1 비율을 만족하는 경우에, 복수의 상기 비트 값을, 상기 대표 비트 값으로서 상기 사전 결정된 제 1 비율을 만족하는 상기 한쪽의 비트 값으로 변환하는 것을 특징으로 하는 비트 생성 장치.
  5. 제 4 항에 있어서,
    상기 글리치 발생부는,
    상기 글리치 신호를 생성하기 위한 입력 신호를 입력하고, 입력된 상기 입력 신호에 대응하는 상기 글리치 신호를 생성하고,
    상기 필터부는,
    상기 글리치 발생부가 생성한 상기 글리치 신호를 상기 제 1 반도체 소자로부터 입력하고, 입력된 상기 글리치 신호를 상기 제 N 반도체 소자로부터 출력하고,
    상기 복수의 비트 값 생성부의 각 비트 값 생성부는,
    상기 필터부에 의해서 출력된 동일한 상기 글리치 신호를, 상기 필터부로부터 서로 상이한 신호 경로를 거쳐서 입력하고, 입력된 상기 글리치 신호로부터 비트 값을 생성하고,
    상기 변환부는,
    복수의 상기 비트 값 생성부에 의해 생성된 복수의 상기 비트 값이 나타내는 0과 1의 개수에 기초하여, 복수의 상기 비트 값을, 0과 1 중 어느 하나의 값을 나타내는 대표 비트 값으로 변환함과 아울러, 0과 1 중 어느 한쪽의 비트 값의 개수가 상기 사전 결정된 제 1 비율을 만족하는지 여부를 나타내는 충족 정보를 생성하고, 생성된 상기 충족 정보를 기억 장치에 기억하고,
    상기 글리치 발생부는,
    상기 충족 정보가 생성된 복수의 상기 비트 값의 생성의 소스가 되는 상기 글리치 신호를 발생시킨 상기 입력 신호와 동일한 상기 입력 정보를 입력하고, 입력된 상기 입력 신호에 대응하는 글리치 신호인 제 2 글리치 신호를 생성하고,
    상기 필터부는,
    상기 글리치 발생부가 생성한 상기 제 2 글리치 신호를 상기 제 1 반도체 소자로부터 입력하고, 입력된 상기 제 2 글리치 신호를 상기 제 N 반도체 소자로부터 출력하고,
    상기 복수의 비트 값 생성부의 각 비트 값 생성부는,
    상기 필터부에 의해서 출력된 상기 제 2 글리치 신호를, 상기 필터부로부터 서로 상이한 상기 신호 경로를 거쳐서 입력하고, 입력된 상기 제 2 글리치 신호로부터 상기 비트 값인 제 2 비트 값을 생성하고,
    상기 변환부는,
    상기 기억 장치에 기억된 상기 충족 정보를 참조하여, 상기 충족 정보가 상기 사전 결정된 제 1 비율의 충족을 나타내는 경우에는 복수의 상기 제 2 비트 값 중에서 0과 1 중 어느 한쪽의 비트 값의 개수가 상기 사전 결정된 제 1 비율보다 낮은 사전 결정된 제 2 비율을 만족하는지 여부를 판정하고, 상기 사전 결정된 제 1 비율보다 낮은 상기 사전 결정된 제 2 비율을 만족한다고 판정했을 경우에, 복수의 상기 제 2 비트 값을, 상기 대표 비트 값으로서, 상기 사전 결정된 제 1 비율보다 낮은 상기 사전 결정된 제 2 비율을 만족한다고 판정된 비트 값으로 변환하는 것을 특징으로 하는 비트 생성 장치.
  6. 제 5 항에 있어서,
    상기 변환부는,
    0과 1 중 어느 한쪽의 비트 값의 개수가, 50%를 넘는 비율을 만족하는지 여부를 나타내는 상기 충족 정보를 생성하는 것을 특징으로 하는 비트 생성 장치.
  7. 제 1 항에 있어서,
    상기 비트 값 생성부는,
    상기 필터부에 의해 출력된 상기 글리치 신호를 입력하고, 입력된 상기 글리치 신호에 포함되는 상기 복수의 펄스의 상승 에지의 개수의 패리티에 기초하여, 0과 1 중 어느 하나의 비트 값을 생성하고,
    상기 비트 생성 장치는,
    상기 비트 값 생성부로서, 입력된 상기 글리치 신호에 포함되는 상기 복수의 펄스의 상승 에지의 개수의 패리티에 따라, 0과 1 중 어느 하나의 비트 값을 출력하는 토글 플립플롭 회로를 구비한 것을 특징으로 하는 비트 생성 장치.
  8. 글리치 발생부와, 필터부와, 비트 값 생성부를 구비하는 비트 생성 장치가 행하는 비트 생성 방법으로서,
    상기 글리치 발생부가,
    복수의 펄스를 포함하는 글리치 신호를 발생하고,
    제 1 내지 제 N(N은 2 이상의 정수)까지의 N개의 반도체 소자의 직렬 접속으로 구성된 상기 필터부가,
    상기 글리치 발생부에 의해 발생된 상기 글리치 신호를 상기 제 1 반도체 소자로부터 입력하고, 입력된 상기 글리치 신호를 제 1 내지 제 N까지의 각 반도체 소자를 통과시킴으로써 사전 결정된 펄스폭보다 작은 상기 펄스를 제거하고, 사전 결정된 펄스폭보다 작은 상기 펄스가 제거된 상기 글리치 신호를 상기 제 N 반도체 소자로부터 출력하고,
    상기 비트 값 생성부가,
    상기 필터부에 의해 출력된 상기 글리치 신호를 입력하고, 입력된 상기 글리치 신호에 포함되는 상기 복수의 펄스의 상승 에지와, 하강 에지 중 어느 하나에 기초하여, 0과 1 중 어느 하나의 비트 값을 생성하며, 또한
    상기 비트 생성 장치는,
    복수의 상기 비트값 생성부와, 변환부를 더 구비하고,
    복수의 상기 비트값 생성부가,
    상기 필터부에 의해서 출력된 동일한 상기 글리치 신호를, 상기 필터부로부터 서로 상이한 신호 경로를 거쳐서 입력하고, 입력된 상기 글리치 신호로부터 복수의 비트 값을 생성하며,
    상기 변환부가,
    복수의 상기 비트 값 생성부에 의해 생성된 복수의 상기 비트 값이 나타내는 0과 1의 개수에 기초하여, 복수의 상기 비트 값을, 0과 1 중 어느 하나의 값을 나타내는 대표 비트 값으로 변환하는
    것을 특징으로 하는 비트 생성 방법.
  9. 삭제
  10. 삭제
  11. 삭제
KR1020137018145A 2011-01-13 2011-01-13 비트 생성 장치 및 비트 생성 방법 KR101518153B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/050385 WO2012095972A1 (ja) 2011-01-13 2011-01-13 ビット生成装置及びビット生成方法

Publications (2)

Publication Number Publication Date
KR20130095832A KR20130095832A (ko) 2013-08-28
KR101518153B1 true KR101518153B1 (ko) 2015-05-06

Family

ID=46506895

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137018145A KR101518153B1 (ko) 2011-01-13 2011-01-13 비트 생성 장치 및 비트 생성 방법

Country Status (6)

Country Link
US (1) US9106213B2 (ko)
EP (1) EP2665225B1 (ko)
JP (1) JP5484595B2 (ko)
KR (1) KR101518153B1 (ko)
CN (1) CN103299576B (ko)
WO (1) WO2012095972A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5863994B2 (ja) * 2012-12-11 2016-02-17 三菱電機株式会社 統合セキュリティ装置および統合セキュリティ装置に用いられる信号処理方法
US9569616B2 (en) * 2013-12-12 2017-02-14 Cryptography Research, Inc. Gate-level masking
IN2014CH00439A (ko) * 2014-01-30 2015-08-07 Mentor Graphics Corp
JP6617924B2 (ja) 2015-06-18 2019-12-11 パナソニックIpマネジメント株式会社 耐タンパ性を有する不揮発性メモリ装置および集積回路カード、不揮発性メモリ装置の認証方法、個体識別情報生成方法
CN106568994A (zh) * 2016-11-11 2017-04-19 上海华虹集成电路有限责任公司 接触式智能卡芯片毛刺攻击电路
TWI640005B (zh) * 2016-12-27 2018-11-01 旺宏電子股份有限公司 在積體電路上生成資料集的方法、製造積體電路的方法、以及積體電路裝置
CN106919764B (zh) * 2017-03-07 2020-03-17 合肥工业大学 基于fpga的环形振荡器物理不可克隆函数的可靠性检测方法
ES2684846B1 (es) * 2017-03-31 2019-05-10 Univ Madrid Carlos Iii Dispositivo y procedimiento para la identificación unívoca de un circuito integrado
CN108733311B (zh) * 2017-04-17 2021-09-10 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
US20190132137A1 (en) * 2017-11-02 2019-05-02 Qualcomm Incorporated Low noise physically unclonable function (puf) cell
US11218316B2 (en) * 2018-12-05 2022-01-04 Ares Technologies, Inc. Secure computing hardware apparatus
WO2020247059A1 (en) 2019-06-07 2020-12-10 Ohio State Innovation Foundation Systems and methods using hybrid boolean networks as physically unclonable functions
US11271732B2 (en) * 2019-11-12 2022-03-08 Nxp B.V. Robust repeatable entropy extraction from noisy source

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002017295A (ja) 2000-07-05 2002-01-22 Yamagami Suehito 眼疾患改善作用及び眼の機能維持作用を有する健康補助食品

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5018169A (en) * 1989-06-21 1991-05-21 National Semiconductor Corporation High resolution sample clock generator with deglitcher
TW381057B (en) 1997-08-07 2000-02-01 Hitachi Ltd Semiconductor device
EP1061703A3 (de) * 1999-06-16 2003-12-03 Infineon Technologies AG Schaltungsanordnung zur Übertragung von Impulsen über eine Übertragungsstrecke
JP2002171295A (ja) * 2000-12-04 2002-06-14 Nec Microsystems Ltd 非同期シリアル・データ通信方式
US7840803B2 (en) * 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
JP5248328B2 (ja) 2006-01-24 2013-07-31 ヴェラヨ インク 信号発生器をベースとした装置セキュリティ
JP2009533927A (ja) 2006-04-11 2009-09-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ コーティングpufを用いる攻撃検出
EP2011123B1 (en) 2006-04-13 2015-03-04 Nxp B.V. Semiconductor device identifier generation method and semiconductor device
JP4208892B2 (ja) * 2006-05-01 2009-01-14 キヤノン株式会社 固体撮像装置
JP4819707B2 (ja) 2007-01-18 2011-11-24 Necエンジニアリング株式会社 冗長演算システムよび演算部
JP2008191939A (ja) * 2007-02-05 2008-08-21 Toshiba Corp 冗長回路装置
US20100097131A1 (en) * 2007-09-03 2010-04-22 John Bainbridge Hardening of self-timed circuits against glitches
CN102783028B (zh) * 2010-01-15 2016-02-03 三菱电机株式会社 比特列生成装置以及比特列生成方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002017295A (ja) 2000-07-05 2002-01-22 Yamagami Suehito 眼疾患改善作用及び眼の機能維持作用を有する健康補助食品

Also Published As

Publication number Publication date
CN103299576B (zh) 2016-05-25
US20130293274A1 (en) 2013-11-07
WO2012095972A1 (ja) 2012-07-19
JP5484595B2 (ja) 2014-05-07
KR20130095832A (ko) 2013-08-28
US9106213B2 (en) 2015-08-11
EP2665225A4 (en) 2017-04-26
JPWO2012095972A1 (ja) 2014-06-09
CN103299576A (zh) 2013-09-11
EP2665225B1 (en) 2018-04-11
EP2665225A1 (en) 2013-11-20

Similar Documents

Publication Publication Date Title
KR101518153B1 (ko) 비트 생성 장치 및 비트 생성 방법
JP5377667B2 (ja) ビット列生成装置及びビット列生成方法
Liu et al. A bias-bounded digital true random number generator architecture
Zalivaka et al. Multi-valued arbiters for quality enhancement of PUF responses on FPGA implementation
JP5282159B2 (ja) 光子計数装置および光子計数方法
KR100656370B1 (ko) 위상 보간 클럭을 이용한 데이터 복원 장치 및 방법
CN107836094B (zh) 时钟恢复电路
US20150127877A1 (en) Serdes receiver oversampling rate
EP2933944B1 (en) Integrated security device and signal processing method used by integrated security device
EP3106978B1 (en) Digital true random number generator based on s-boxes
JP5086014B2 (ja) データリカバリ方法およびデータリカバリ回路
US10886930B1 (en) Voltage controlled oscillator based analog-to-digital converter including a maximum length sequence generator
JP2008066879A (ja) オーバーサンプリング回路及びオーバーサンプリング方法
GB2359706A (en) Synchronising data and clock signals using a programmable delay circuit
Serrano et al. A fully digital true random number generator with entropy source based in frequency collapse
US20160004510A1 (en) Random number generator
US9755663B1 (en) Parallel-serial conversion circuit, information processing apparatus and timing adjustment method
US7692564B2 (en) Serial-to-parallel conversion circuit and method of designing the same
Xu et al. An N× N multiplier-based multi-bit strong PUF using path delay extraction
Ma et al. A low-cost high-efficiency true random number generator on FPGAs
CN109558111B (zh) 基于d触发器亚稳态特性的真随机数生成装置
US20230315960A1 (en) Spuf based on combinational logic and scan chain
US20150019603A1 (en) Method for checking an output of a random number generator
CN115694832A (zh) 基于ro puf的密钥生成方法及其系统
CN115459746A (zh) 真随机数生成器和用于生成随机数的方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20180418

Year of fee payment: 4