KR101576408B1 - 디바이스 고유 정보 생성 장치 및 디바이스 고유 정보 생성 방법 - Google Patents
디바이스 고유 정보 생성 장치 및 디바이스 고유 정보 생성 방법 Download PDFInfo
- Publication number
- KR101576408B1 KR101576408B1 KR1020147016455A KR20147016455A KR101576408B1 KR 101576408 B1 KR101576408 B1 KR 101576408B1 KR 1020147016455 A KR1020147016455 A KR 1020147016455A KR 20147016455 A KR20147016455 A KR 20147016455A KR 101576408 B1 KR101576408 B1 KR 101576408B1
- Authority
- KR
- South Korea
- Prior art keywords
- circuit
- glitch
- bit
- information
- performance evaluation
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3271—Cryptographic 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/3278—Cryptographic 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]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Semiconductor Integrated Circuits (AREA)
- Computer Hardware Design (AREA)
- Manipulation Of Pulses (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
디바이스 제조시의 영향, 혹은 디바이스의 경년 열화의 영향을 받지 않고서, 소망하는 성능을 만족시키는 글리치를 출력하는 장치를 얻는다. 글리치 발생 회로(330)와, 글리치의 형상을 정보 비트로 변환하는 비트 변환 회로(340)를 갖는 비트 생성부(310)를 구비하고, 글리치 발생 회로는, 복수의 조합 회로(331)가 탑재되는 것에 의해, 복수의 상이한 글리치를 출력하고, 비트 생성부는, 선택 신호에 따라, 복수의 상이한 글리치 중에서 1개의 글리치를 선택하여 비트 변환 회로에 대하여 출력하는 셀렉터(332)를 더 갖고, 선택 신호를 출력하는 것에 의해, 복수의 상이한 글리치의 각각에 대응하는 비트 정보를 취득하고, 각각의 비트 정보에 근거하여, 소망하는 성능을 만족시키고 있는 글리치를 특정하는 성능 평가ㆍ제어부(350)를 더 구비한다.
Description
본 발명은, 인증이나 암호화 등의 시큐리티에 관한 것이고, 보다 구체적으로는, 인증에서 필요하게 되는 디바이스 고유의 식별자나, 암호화에서 필요하게 되는 비밀 키 등을 생성하는 것을 목적으로 한 디바이스 고유 정보 생성 장치 및 디바이스 고유 정보 생성 방법에 관한 것이다.
ASIC나 FPGA 등의 반도체 디바이스에 있어서, 동일 종류의 디바이스에 동일한 회로를 실장한 경우에도, 게이트 지연 등의 디바이스 특성이 디바이스 개체마다 다른 것에 의해, 디바이스 개체마다 다른 출력이 얻어지는 현상이 존재한다. 이와 같은 현상을 낳는 회로 또는 그 기술은, Physical Unclonable Function이나 Physical Uncloning 기술 등으로 불리고(이하의 설명에서는, 이 기술을 PUF라고 칭한다), 인증이나 암호화라고 하는 용도로의 응용이 기대되고 있다.
PUF의 예로서, 조합 회로의 출력 신호에 발생하는 글리치를 이용한 종래 기술이 있다(예컨대, 특허 문헌 1 참조). 도 13은 특허 문헌 1에 나타나고 있는 PUF(이하, 글리치 PUF라고 칭한다)의 기본 구성도 및 구체적인 신호 처리의 설명도이다. 도 13(a)에 나타낸 글리치 PUF(1301)는, 데이터 레지스터군(1320), 글리치 발생 회로(1330) 및 비트 변환 회로(1340)를 구비하여 구성되어 있다.
여기서, 글리치란, 신호의 값이 변화할 때의 과도 상태로 보여지는, 값이 0과 1로 격렬하게 변화를 반복하는 현상이다. 그때, 신호 파형에 발생하는 산(peak)도, 여기서는, 글리치라고 부른다.
도 13(a)에서는, 조합 회로로 구성된 글리치 발생 회로(1330)로의 입력 신호(1311)의 값을 변화시키면, 그것에 따라 출력 신호(1312)의 값이 변화한다. 그 변화가 완료될 때까지의 과도 상태에 있어서, 글리치가 발생한다. 이후, 글리치를 포함하는 신호를, 글리치 신호라고 부른다.
글리치는, 글리치 발생 회로(1330)가 실장된 디바이스 개체의 특성에 따라 변화한다. 다시 말해, 같은 글리치 발생 회로(1330)라도, 각 디바이스마다 다른 글리치가 발생한다. 그래서, 글리치의 형상에 따라서, 0 또는 1의 값을 결정하는 것에 의해, 각 디바이스마다 다른 비트를 생성하는 것이 가능하게 된다. 값의 결정의 방법으로서, 예컨대, 글리치에 포함되는 산의 수가 짝수이면 0, 홀수이면 1로 하는 방법이 있다.
이상의, 글리치 PUF(1301)에 의한 비트 생성 처리의 흐름이, 도 13(b)에 나타나고 있다. 또한, 글리치 형상을 비트로 변환하는 비트 변환 회로(1340)에서의 처리의 실장의 예가, 도 13(c)에 나타나고 있다. 도 13(c)에서는, 토글 플립플롭(이하, 토글 FF라고 칭한다)을 이용한 비트 변환 회로(1340) 및 그 동작의 타이밍 차트가 나타나고 있다.
토글 FF는, 1회의 상승 신호의 입력에 대하여, 출력의 값이 반전(0이면 1로, 1이면 0으로 변화)하는 회로이다. 이 원리에 의해, 글리치에 포함되는 산의 수가 짝수, 홀수의 어느 것인지가, 출력의 반전 횟수의 짝수, 홀수에 1대 1 대응하고, 결과, 0, 1의 비트값에 1대 1 대응한다.
도 13에 나타낸 바와 같은 일련의 처리로, 입력 신호(1311)에 대응하여 1비트가 생성되게 된다. 이 처리를, 입력 신호(1311)를 변화시키는 방법을 바꾸어 여러 차례 행함으로써, 복수의 비트로 이루어지는 비트열을 생성할 수 있다. 다시 말해, 글리치 발생 회로(1330)로의 입력 신호를 n비트로 하면, 예컨대, 0→1, 0→2, …, 0→2n-1이라고 하는 2n-1개의 변화 방법을 행함으로써, 2n-1비트의 비트열을 생성할 수 있다.
(선행 기술 문헌)
(특허 문헌)
(특허 문헌 1) 국제 공개 제 11/086688호 팜플렛
그렇지만, 특허 문헌 1에 나타나는 글리치 PUF(1301)의 구성에는, 다음에 말하는 과제가 있었다. 글리치 PUF(1301)를 FPGA나 ASIC 등의 디바이스에 실장했을 때의 성능은, 실제로 디바이스를 제조할 때까지 불명이다. 이 때문에, 실제로 디바이스를 제조했을 때에 소망하는 성능을 만족시키고 있지 않을 가능성이 있다. 여기서, 성능이란, 예컨대, 정보량이나 에러 레이트이다.
또한, 디바이스의 제조 초기에는, 소망하는 성능을 만족시키고 있더라도, 디바이스의 경년 열화에 따라 소망하는 성능을 만족시키지 않게 될 가능성이 있다. 그래서, 디바이스의 경년 열화에 의해 정보량이 줄어드는 이유를 다음에 설명한다. 글리치는, 글리치 발생 회로(1330)를 구성하는 게이트의 지연 특성에 근거하여 발생한다. 이 지연 특성은, 디바이스의 경년 열화에 의해 변화하므로, 글리치의 발생 패턴도 디바이스의 경년 열화에 의해 변화하게 된다.
도 14는 종래의 글리치 PUF에 있어서의 글리치 발생 회로의 경년 변화 상태를 나타내는 설명도이다. 도 14에 나타내는 바와 같이, 글리치 발생 회로(1430)가 경년 변화하면, 글리치가 발생하기 어려워지거나, 혹은 글리치가 발생하지 않게 된다고 하는 상황이 발생한다. 그 결과, 생성되는 정보량이 줄어들게 된다. 왜냐하면, 예컨대, 상술한 바와 같이 글리치의 산의 수가 짝수인지 홀수인지에 따라 비트를 결정하는 방법에 있어서는, 글리치가 애초에 발생하지 않으면(산의 개수가 0), 비트가 반드시 0이 되어 버리기 때문이다.
소망하는 정보량이나 에러 레이트를 만족시키지 않는 결과로서, 소망하는 비트 길이의 식별자나 암호 키의 생성을 행하지 못하고, 제품 기기가 기능하지 않는 문제가 발생하게 된다.
본 발명은, 상기와 같은 과제를 해결하기 위해 이루어진 것으로, 디바이스 제조시의 영향, 혹은 디바이스의 경년 열화의 영향을 받지 않고서, 소망하는 성능을 만족시키는 글리치를 출력할 수 있는 디바이스 고유 정보 생성 장치 및 디바이스 고유 정보 생성 방법을 얻는 것을 목적으로 한다.
본 발명에 따른 디바이스 고유 정보 생성 장치는, 조합 회로의 출력 신호에 발생하는 글리치를 출력하는 글리치 발생 회로와, 글리치의 형상을 정보 비트로 변환하는 비트 변환 회로를 갖는 비트 생성부를 구비하는 것에 의해, 반도체 디바이스 내에서 반도체 디바이스의 고유 정보를 생성하는 디바이스 고유 정보 생성 장치로서, 글리치 발생 회로는, 복수의 조합 회로가 탑재되는 것에 의해, 복수의 상이한 글리치를 출력하는 글리치 발생 회로 톱(top)으로서 구성되고, 비트 생성부는, 외부로부터 선택 신호를 수신하는 것에 의해, 글리치 발생 회로로부터 출력되는 복수의 상이한 글리치 중에서 1개의 글리치를 선택하여 비트 변환 회로에 대하여 출력하는 셀렉터를 더 갖고, 복수의 상이한 글리치 중에서 1개를 순차 선택하도록 선택 신호를 출력하는 것에 의해, 복수의 상이한 글리치의 각각에 대응하여 비트 변환 회로에서 변환된 각각의 비트 정보를 취득하고, 각각의 비트 정보에 근거하여, 소망하는 성능을 만족시키고 있는 글리치를 특정하고, 특정한 글리치를 반도체 디바이스의 고유 정보로서 출력하도록, 선택 신호를 특정하는 성능 평가ㆍ제어부를 더 구비하는 것이다.
또한, 본 발명에 따른 디바이스 고유 정보 생성 방법은, 조합 회로의 출력 신호에 발생하는 글리치를 출력하는 글리치 발생 회로와, 글리치의 형상을 정보 비트로 변환하는 비트 변환 회로를 갖는 디바이스 고유 정보 생성 장치에 적용되어, 반도체 디바이스 내에서 반도체 디바이스의 고유 정보를 생성하기 위한 디바이스 고유 정보 생성 방법으로서, 글리치 발생 회로에 탑재된 복수의 조합 회로를 거쳐서 출력되는 복수의 상이한 글리치 중에서 1개의 글리치를 선택하여 비트 변환 회로에 대하여 출력시키는 선택 신호를 출력하는 단계와, 복수의 상이한 글리치 중에서 1개를 순차 선택하도록 선택 신호를 출력하는 것에 의해, 복수의 상이한 글리치의 각각에 대응하여 비트 변환 회로에서 변환된 각각의 비트 정보를 취득하고, 각각의 비트 정보에 근거하여, 소망하는 성능을 만족시키고 있는 글리치를 특정하는 단계와, 특정한 글리치를 반도체 디바이스의 고유 정보로서 출력하도록, 선택 신호를 특정하는 단계를 구비하는 것이다.
본 발명에 따른 디바이스 고유 정보 생성 장치 및 디바이스 고유 정보 생성 방법에 의하면, 글리치 발생 회로를 복수 탑재하고, 그 중에서 소망하는 성능에 가까운 글리치 발생 회로를 선택 가능하게 하는 것에 의해, 디바이스 제조시의 영향, 혹은 디바이스의 경년 열화의 영향을 받지 않고서, 소망하는 성능을 만족시키는 글리치를 출력할 수 있는 디바이스 고유 정보 생성 장치 및 디바이스 고유 정보 생성 방법을 얻을 수 있다.
도 1은 본 발명의 실시의 형태 1에 있어서의 디바이스 고유 정보 생성 장치 내의 글리치 발생 회로의 기본 아이디어를 설명하기 위한 도면이다.
도 2는 본 발명의 실시의 형태 1에 있어서의 글리치의 안정성에 관한 설명도이다.
도 3은 본 발명의 실시의 형태 1에 있어서의 디바이스 고유 정보 생성 장치의 제 1 구성예를 나타내는 도면이다.
도 4는 본 발명의 실시의 형태 1에 있어서의 디바이스 고유 정보 생성 장치의 제 2 구성예를 나타내는 도면이다.
도 5는 본 발명의 실시의 형태 1에 있어서의 성능 평가ㆍ제어부에 포함되는 에러 레이트 평가 회로의 구성예를 나타내는 도면이다.
도 6은 본 발명의 실시의 형태 1에 있어서의 정보량을 평가하기 위한 디바이스 고유 정보 생성 장치의 구성예 및 성능 평가ㆍ제어부에 포함되는 정보량 평가 회로의 구성예를 나타내는 도면이다.
도 7은 본 발명의 실시의 형태 1에 있어서의 디바이스 고유 정보 생성 장치를 포함하는 시스템 구성예를 나타내는 도면이다.
도 8은 본 발명의 실시의 형태 1에 있어서의 도 7에 나타내는 글리치 PUF의 초기 설정의 플로차트이다.
도 9는 본 발명의 실시의 형태 1에 있어서의 도 7에 나타내는 글리치 PUF의 재설정의 플로차트이다.
도 10은 본 발명의 실시의 형태 2에 있어서의 키 생성을 행하는 경우의 성능 평가ㆍ제어부의 구성도이다.
도 11은 본 발명의 실시의 형태 2에 있어서의 도 10에 나타내는 글리치 PUF의 초기 설정의 플로차트이다.
도 12는 본 발명의 실시의 형태 2에 있어서의 도 10에 나타내는 글리치 PUF의 재설정의 플로차트이다.
도 13은 특허 문헌 1에 나타나 있는 PUF의 기본 구성도 및 구체적인 신호 처리의 설명도이다.
도 14는 종래의 글리치 PUF에 있어서의 글리치 발생 회로의 경년 변화 상태를 나타내는 설명도이다.
도 2는 본 발명의 실시의 형태 1에 있어서의 글리치의 안정성에 관한 설명도이다.
도 3은 본 발명의 실시의 형태 1에 있어서의 디바이스 고유 정보 생성 장치의 제 1 구성예를 나타내는 도면이다.
도 4는 본 발명의 실시의 형태 1에 있어서의 디바이스 고유 정보 생성 장치의 제 2 구성예를 나타내는 도면이다.
도 5는 본 발명의 실시의 형태 1에 있어서의 성능 평가ㆍ제어부에 포함되는 에러 레이트 평가 회로의 구성예를 나타내는 도면이다.
도 6은 본 발명의 실시의 형태 1에 있어서의 정보량을 평가하기 위한 디바이스 고유 정보 생성 장치의 구성예 및 성능 평가ㆍ제어부에 포함되는 정보량 평가 회로의 구성예를 나타내는 도면이다.
도 7은 본 발명의 실시의 형태 1에 있어서의 디바이스 고유 정보 생성 장치를 포함하는 시스템 구성예를 나타내는 도면이다.
도 8은 본 발명의 실시의 형태 1에 있어서의 도 7에 나타내는 글리치 PUF의 초기 설정의 플로차트이다.
도 9는 본 발명의 실시의 형태 1에 있어서의 도 7에 나타내는 글리치 PUF의 재설정의 플로차트이다.
도 10은 본 발명의 실시의 형태 2에 있어서의 키 생성을 행하는 경우의 성능 평가ㆍ제어부의 구성도이다.
도 11은 본 발명의 실시의 형태 2에 있어서의 도 10에 나타내는 글리치 PUF의 초기 설정의 플로차트이다.
도 12는 본 발명의 실시의 형태 2에 있어서의 도 10에 나타내는 글리치 PUF의 재설정의 플로차트이다.
도 13은 특허 문헌 1에 나타나 있는 PUF의 기본 구성도 및 구체적인 신호 처리의 설명도이다.
도 14는 종래의 글리치 PUF에 있어서의 글리치 발생 회로의 경년 변화 상태를 나타내는 설명도이다.
이하, 본 발명의 디바이스 고유 정보 생성 장치 및 디바이스 고유 정보 생성 방법의 적합한 실시의 형태에 대하여 도면을 이용하여 설명한다.
실시의 형태 1.
본 발명의 기본 아이디어는, 글리치 발생 회로로서, 특성이 다른 것을 복수 탑재하는 것이다. 특성으로서, 글리치의 발생 개수에 주목하여, 그다지 글리치가 발생하지 않는 글리치 발생 회로로부터, 글리치가 대량으로 발생하는 글리치 발생 회로까지를, 다수 탑재한다. 그 목적으로부터, 특히, 단순하고 작은 논리 회로를 직렬로 접속하여 가는 것에 의해, 단계적으로 논리의 복잡함을 늘려, 글리치의 발생을 증가시켜 가는 구성을 기본으로 한다.
도 1은 본 발명의 실시의 형태 1에 있어서의 디바이스 고유 정보 생성 장치 내의 글리치 발생 회로의 기본 아이디어를 설명하기 위한 도면이다. 도 1에 나타낸 글리치 발생 회로(130)는, 동일한 논리 회로 A를 4개(논리 회로(131(1)~131(4))에 상당), 직렬로 접속하여 구성되어 있다. 여기서, 논리 회로 A는, 선형 회로라도 좋고, 비선형 회로라도 좋다.
글리치 발생 회로(130)로의 입력 신호를 변화시키면, 각 논리 회로(131(1)~131(4))의 출력에 글리치가 발생한다. 이들 출력은, 같은 논리 회로 A를 직렬로 접속한 1단째ㆍ2단째ㆍ3단째ㆍ4단째의 출력이고, 단수가 늘어남에 따라서, 글리치가 보다 많이 발생하게 된다.
이것에 의해, 예컨대, 도 1의 예에서는, 1단째의 논리 회로(131(1))의 출력은, 글리치가 적고 정보량이 적다. 한편, 3단째의 논리 회로(131(3)) 및 4단째의 논리 회로(131(4))의 출력은, 글리치가 많아 불안정하다. 이것에 비하여, 2단째의 논리 회로(131(2))의 출력은, 글리치와 안정성의 밸런스가 좋다고 하는 상황이 일어난다.
여기서, 안정성에 대하여, 도 2를 이용하여 설명한다. 도 2는 본 발명의 실시의 형태 1에 있어서의 글리치의 안정성에 관한 설명도이고, 구체적으로는, 같은 입력 신호에 대하여, 동작마다 상이한 패턴의 글리치가 발생하고, 매회 생성되는 비트가 다른 상황을 나타내고 있다. 이와 같은 상태를 불안정이라고 부른다. 불안정한 상태에서는, 동작마다의 비트의 재현성이 없기 때문에, 생성된 비트를 정보로서 사용할 수 없다. 다시 말해, PUF로서 사용 가능한 정보량이 줄어드는 것을 의미한다.
앞의 도 1에 있어서, 글리치가 많이 발생(3단째의 논리 회로(131(3))의 출력, 혹은 4단째의 논리 회로(131(4))의 출력에 상당)하는 것이, 정보량은 높아지지만, 동시에, 글리치가 많이 발생하는 상태는 불안정하다. 따라서, 논리 회로 A의 단수를 늘려서 글리치를 늘리면, 처음은 PUF로서 사용 가능한 정보량이 증가하지만, 어딘가의 시점에서 감소로 변한다. 그것이 2단째와 3단째의 경계이다. 이것으로부터, 글리치의 수와 안정성의 양립을 고려하면, 도 1에 나타낸 예에서는, 2단째의 논리 회로(131(2))의 출력이, PUF로서의 이용에 최적이라고 말할 수 있다.
또한, 3단째의 논리 회로(131(3))의 출력은, 경년 열화 후에 PUF로서 최적이 될 가능성이 있다. 다시 말해, 현시점에서는 글리치가 많아 불안정하지만, 경년 열화에 의해 글리치가 발생하기 어려워졌을 때에는, 이 3단째의 논리 회로(131(3))의 출력이, PUF로서 최적이 될 수 있다.
또한, 4단째의 논리 회로(131(4))의 출력은, PUF로서가 아닌, 난수 발생기로서의 이용이 가능하다. 즉, 4단째의 논리 회로(131(4))의 출력은, 글리치가 매우 많아 불안정하기 때문에, 도 2에 나타낸 바와 같이, 매회의 출력이 안정되지 않는다. 따라서, 이 4단째의 논리 회로(131(4))의 출력은, PUF로서는 사용할 수 없지만, 반대로, 난수로서 사용할 수 있게 되는 것이다.
이상의 원리를 근거로 하여, 본 실시의 형태 1에 있어서의 디바이스 고유 정보 생성 장치의 내부 구성에 대하여, 몇몇의 구체적인 예를 도시하면서, 다음에 설명한다. 도 3은 본 발명의 실시의 형태 1에 있어서의 디바이스 고유 정보 생성 장치의 제 1 구성예를 나타내는 도면이다. 도 3에 나타낸 디바이스 고유 정보 생성 장치에 상당하는 글리치 PUF(301)는, 비트 생성부(310)와 성능 평가ㆍ제어부(350)를 구비하여 구성되어 있다.
여기서, 비트 생성부(310)는, 비트 생성을 행하는 기능을 갖고, 데이터 레지스터군(320), 글리치 발생 회로 톱(330) 및 비트 변환 회로(340)를 구비하고 있다. 한편, 성능 평가ㆍ제어부(350)는, 비트 생성부(310)에서 생성되는 비트의 성능 평가를 행함과 아울러, 소망하는 성능에 가까운 글리치가 발생하도록, 비트 생성부(310)를 제어하는 기능을 갖고 있다.
다음으로, 비트 생성부(310)의 내부 구성에 대하여, 상세하게 설명한다. 비트 생성부(310) 내의 데이터 레지스터군(320)은, 글리치 발생 회로 톱(330)에 입력되는 데이터를 유지하는 레지스터군이다.
그리고, 글리치 발생 회로 톱(330)은, 같은 논리 회로 A를 N단 직렬로 접속하여 이루어지는 논리 회로(331(1)~331(N)) 및 셀렉터(332)를 구비하고 있다. 여기서, 논리 회로(331(1)~331(N))의 동작은, 앞의 도 1에 있어서의 4단의 논리 회로를 갖는 글리치 발생 회로(130)와 같다.
또한, 셀렉터(332)는, 성능 평가ㆍ제어부(350)로부터 출력되는 선택 신호에 근거하여, 논리 회로(331(1)~331(N))의 어느 단의 출력을 선택하여 비트 변환 회로(340)에 주는지를 선택 전환한다. 이와 같은 구성을 구비하는 것에 의해, 글리치 발생 회로 톱(330)은, 글리치의 발생수를 단계적으로 증가시키는 구성을 구비함과 아울러, 성능 평가ㆍ제어부(350)로부터 출력되는 선택 신호에 의해, N개의 글리치 신호 중에서, 어느 1개를 선택하는 것을 가능하게 하고 있다.
또, 논리 회로 A에 관해서는, 앞의 도 1에서 설명한 바와 같이, 선형 회로라도, 비선형 회로라도 좋다. 설계 방침의 일례로서는, 실장 사이즈를 억제하는 목적을 위해, 단독으로는 단순하고 작은 논리 회로를 이용하여, 그 단수 N을 늘리는 것에 의해, 논리의 복잡도를 늘려 가는 구성을 들 수 있다.
다음으로, 도 4는 본 발명의 실시의 형태 1에 있어서의 디바이스 고유 정보 생성 장치의 제 2 구성예를 나타내는 도면이다. 도 4에 나타낸 디바이스 고유 정보 생성 장치에 상당하는 글리치 PUF(401)는, 비트 생성부(410)와 성능 평가ㆍ제어부(450)를 구비하여 구성되어 있다. 또한, 비트 생성부(410)는, 데이터 레지스터군(420), 글리치 발생 회로 톱(430) 및 비트 변환 회로(440)를 구비하고 있다.
도 4에 나타낸 제 2 구성예와, 앞의 도 3에서 나타낸 제 1 구성예를 비교하면, 기본적인 구성은 같지만, 글리치 발생 회로 톱의 내부 구성이 다르다. 그래서, 이 차이점을 중심으로, 이하에 설명한다. 앞의 도 3에서 나타낸 제 1 구성예에 있어서의 글리치 발생 회로 톱(330)은, 논리 회로 A를 N단 접속하고, 그 각 단으로부터의 출력을 선택하는 것에 의해, 합계 N개의 글리치 신호를 생성하고 있었다.
한편, 도 4에 나타낸 제 2 구성예에 있어서의 글리치 발생 회로 톱(430)은, 완전히 다른 N개의 글리치 발생 회로(431(1)~431(N)) 및 셀렉터(432)를 구비하고 있다. 즉, 글리치 발생 회로 톱(430)은, 완전히 다른 글리치 발생 회로를 N개 실장하는 것에 의해, N개의 글리치 신호를 생성하고 있다.
이 도 4의 구성에 있어서의 글리치 발생 회로(431(1)~431(N))의 예로서는, 암호 알고리즘의 S-box를 들 수 있다. DES, AES, MISTY, Camellia 등의 다양한 암호 알고리즘의 S-box를 이용하는 것에 의해, 서로 다른 글리치 발생 회로를 실장하는 것이 가능하다.
다음으로, 도 3에 있어서의 성능 평가ㆍ제어부(350) 및 도 4에 있어서의 성능 평가ㆍ제어부(450)에 대하여 설명한다. 양자의 기능은 동일하고, 여기서는, 도 3을 이용하여, 성능 평가ㆍ제어부(350)의 기능에 대하여, 구체적으로 설명한다.
성능 평가ㆍ제어부(350)는, 셀렉터(332)를 제어하고, N개의 글리치 신호를 1개씩 선택한다. 이것에 의해, 비트 변환 회로(340)는, 각 단에 대응하는 글리치 신호를 비트로 변환하는 것에 의해, 각 단에 대응하는 비트를 생성할 수 있다. 여기서, 성능 평가ㆍ제어부(350)는, 어느 단에 대한 비트 생성을 반복하여(예컨대 100회) 행하게 하도록 셀렉터(332)를 제어하고, 그때에, 비트 변환 회로(340)의 출력으로서, 첫 회에 얻어진 값과, 2회째 이후에 얻어진 값을 비교하는 것에 의해, 에러 레이트의 평가를 행할 수 있다.
도 5는 본 발명의 실시의 형태 1에 있어서의 성능 평가ㆍ제어부에 포함되는 에러 레이트 평가 회로의 구성예를 나타내는 도면이다. 에러 레이트 평가 회로(560)는, 첫 회의 비트값을 유지하는 레지스터(561), 첫 회의 비트값과 2회째 이후의 비트값을 비교하는 비교기(562) 및 그 비교 결과가 불일치한 횟수를 세어 유지하는 레지스터(563)를 구비하고 있다.
비교기(562)는, 비교 결과가 불일치한 경우에는, 레지스터(563)의 인에이블 신호를 생성한다. 그리고, 레지스터(563)는, 인에이블 신호에 따라 레지스터의 값을 1 늘리는 것에 의해, 불일치 횟수를 셀 수 있다. 예컨대, 100회의 비교를 행한 후의 레지스터(563)의 값이 10이면, 에러 레이트 평가 회로(560)는, 에러 레이트가 10%라고 판정한다.
이와 같이, 에러 레이트는, 동일한 디바이스 내에서의 비트 생성을, 예컨대 100회 반복하고, 그 100개의 비트값을 이용하여 평가할 수 있다. 한편, 정보량을 평가하기 위해서는, 복수의, 예컨대 100개의 다른 디바이스에 대하여 생성된 100개의 비트값이 필요하다. 따라서, 동일한 디바이스 내에, 모의적으로 복수 디바이스가 존재하는 상황을 만들 필요가 있다.
도 6은 본 발명의 실시의 형태 1에 있어서의 정보량을 평가하기 위한 디바이스 고유 정보 생성 장치의 구성예 및 성능 평가ㆍ제어부에 포함되는 정보량 평가 회로의 구성예를 나타내는 도면이다. 도 6(a)에 나타낸 디바이스 고유 정보 생성 장치에 상당하는 글리치 PUF(601)는, 데이터 레지스터군(620), M개의 글리치 발생 회로 톱(630(1)~630(M)), 셀렉터(632), 비트 변환 회로(640) 및 성능 평가ㆍ제어부(650)를 구비하여 구성되어 있다.
여기서, 데이터 레지스터군(620), 셀렉터(632), 비트 변환 회로(640) 및 성능 평가ㆍ제어부(650)의 각각은, 앞의 도 3에 있어서의 데이터 레지스터군(320), 셀렉터(332), 비트 변환 회로(340) 및 성능 평가ㆍ제어부(350)와 동일한 기능을 갖는 것이다.
또한, M개의 글리치 발생 회로 톱(630(1)~630(M))은, 앞의 도 3에 있어서의 글리치 발생 회로 톱(330), 혹은 앞의 도 4에 있어서의 글리치 발생 회로 톱(430)에 상당하는 글리치 발생 회로 톱(즉, N개의 글리치 신호를 생성하기 위해, 글리치 발생 회로를 N개 갖는 것)을, 동일한 레이아웃으로 M개, 디바이스에 실장한 것이다.
그리고, 성능 평가ㆍ제어부(650)는, 셀렉터(632)를 제어하는 것에 의해, M개의 글리치 발생 회로 톱(630(1)~630(M)) 중 어느 1개의 출력을 선택 가능하게 하고 있다. 이것에 의해, 글리치 PUF(601)는, 모의적으로 M개의 디바이스에 대한 글리치 PUF를 구성하고, 모의적으로 M개의 디바이스에 대한 비트를 생성하고 있다. 또한, 글리치 PUF(601)는, 모의적으로 생성한 M개의 비트값에 대한 통계 처리를 성능 평가ㆍ제어부(650)에서 행하는 것에 의해, 정보량을 평가하는 것이 가능하게 된다.
어느 비트가 갖는 정보량은, 예컨대, 섀넌의 엔트로피에 의해 측정된다. 섀넌의 엔트로피는, 비트가 0이 될 확률이 p(1이 될 확률이 1-p)일 때,
-p×log2(p)-(1-p)×log2(1-p) … (1)
로 정의된다. 또, log2는, 2를 밑으로 하는 로그함수이다.
로그함수를 회로로서 실현하면, 실장 사이즈가 커지기 때문에, p의 값으로부터만 정보량에 관한 평가를 행하는 것이 바람직하다. 여기서, 위의 식 (1)은, p=0.5에서 최대치를 취하는 좌우 대칭의 볼록 함수이기 때문에, 정보량의 대체적인 대소는, p의 값으로부터 판정할 수 있다. 그래서, 도 6(b)를 이용하여, 성능 평가ㆍ제어부(650)에 포함되는 정보량 평가 회로(670)의 기능에 대하여 설명한다.
도 6(b)에 나타낸 정보량 평가 회로(670)는, 비교기(671) 및 2개의 레지스터(672, 673)를 구비하여 구성되어 있다. 비교기(671)는, 비트 변환 회로(640)에서 생성된 비트값이 0인지 여부를 판정하고, 그 결과로부터 레지스터(672) 및 레지스터(673)의 인에이블 신호를 생성한다.
2개의 레지스터(672, 673)의 인에이블 신호는, 서로의 반전으로 되어 있고, 레지스터(672)는, 비트값이 0일 때에 값이 증가하는 카운터로서 기능하고, 레지스터(673)는, 비트값이 1일 때에 값이 증가하는 카운터로서 기능한다. 상술한, 글리치 PUF(601)에서 생성되는 M개의 비트값에 대하여, 성능 평가ㆍ제어부(650)로서 이 정보량 평가 회로(670)를 이용하는 것에 의해, M개 중의 0과 1의 개수를 세는 것이 가능하게 되고, 그 결과, 정보량의 평가가 가능하게 된다.
이 회로는, 또한, 미국의 NIST SP800-22가 정하는 난수 검정의, 비트의 0/1 등의 빈도성 평가의 목적으로도 사용 가능하다.
다음으로, 여기까지 설명한 비트 생성부 및 성능 평가ㆍ제어부를, CPU나 메모리도 포함하는 시스템으로서 구성하는 예에 대하여 설명한다. 도 7은 본 발명의 실시의 형태 1에 있어서의 디바이스 고유 정보 생성 장치를 포함하는 시스템 구성예를 나타내는 도면이다. 도 7에 나타낸 디바이스 고유 정보 생성 장치에 상당하는 글리치 PUF(701)는, 비트 생성부(710)와 성능 평가ㆍ제어부(750)를 구비하여 구성되어 있다.
비트 생성부(710)는, 데이터 레지스터군(720), M개의 글리치 발생 회로 톱(730(1)~730(M)), 셀렉터(732) 및 비트 변환 회로(740)를 구비하고 있고, 이전의 도 6(a)와 같이, 동일한 레이아웃으로 M개, 디바이스에 실장된 글리치 발생 회로 톱(730(1)~730(M))을 갖고 있다. 그리고, 비트 생성부(710)에서 생성된 비트열은, 성능 평가ㆍ제어부(750)에 입력된다.
성능 평가ㆍ제어부(750)는, 오류 정정 회로(751), OWHF 회로(752), 비교ㆍ판정 회로(753), 성능 평가 회로(754) 및 제어 회로(755)를 구비하고 있다. 오류 정정 회로(751)는, 성능 평가ㆍ제어부(750)에 입력된 비트열이 포함하는 오류를 정정하기 위한 회로이다. OWHF 회로(752)는, 오류 정정 후의 비트열의 해시값을 취하는 회로이다.
비교ㆍ판정 회로(753)는, 생성한 해시값을 이전 생성한 해시값과 비교하는 회로이다. 성능 평가 회로(754)는, 성능 평가ㆍ제어부(750)에 입력된 비트열의 성능을 평가하는 회로이다. 또한, 제어 회로(755)는, 비교ㆍ판정 회로(753)에 의한 판정 결과 및 성능 평가 회로(754)에 의한 평가 결과에 근거하여, 비트 생성부(710)를 제어하는 회로이다.
또한, 도 7에 나타내는 글리치 PUF(701)는, 시스템 버스(780)를 거쳐서, CPU(781), 메모리(782), I/O(783)와 접속되어 있다.
다음으로, 플로차트를 이용하여, 도 7에 나타낸 구성을 구비하는 글리치 PUF(701)의 동작에 대하여, 상세하게 설명한다. 도 8은 본 발명의 실시의 형태 1에 있어서의 도 7에 나타내는 글리치 PUF(701)의 초기 설정의 플로차트이다. 또한, 도 9는 본 발명의 실시의 형태 1에 있어서의 도 7에 나타내는 글리치 PUF(701)의 재설정의 플로차트이다.
우선 처음으로, 도 8을 이용하여, 초기 설정의 일련 처리에 대하여, 각각의 단계마다 설명한다.
단계 S801 : 제어 회로(755)가, 비트 b(1, 1, 1)~비트 b(N, M, 2n-1)을 얻는 단계이다. 여기서, b(i, j, k)의 1번째의 첨자 i는, 글리치 발생 회로의 번호이다(i=1, …, N). 즉, 이전의 도 3에 있어서는, 논리 회로(331(1)~331(N))의 어느 하나를 선택하는 번호에 상당하고, 이전의 도 4에 있어서는, 글리치 발생 회로(431(1)~431(N))의 어느 하나를 선택하는 번호에 상당한다.
또한, 2번째의 첨자 j는, 동일 레이아웃으로 M개 실장한 글리치 발생 회로 톱(730(1)~730(M))의 어느 하나를 선택하는 번호에 상당한다(j=1, …, M). 또한, 3번째의 첨자 k는, 글리치 발생 회로로의 입력 변화 패턴을 나타내는 번호이고, 입력 신호를 n비트로 하면, 2n-1비트의 비트열에 상당한다.
단계 S802 : 성능 평가 회로(754)가, 비트 b(1, 1, 1), …, b(N, M, 2n-1)의 성능을 평가하는 단계이다. 성능 평가 회로(754)는, 그 평가 결과로부터, 소망하는 성능을 만족시키는 첨자 i(i=1, …, N)를 선택하고, 첨자 i를 메모리(782)에 유지한다.
또, 첨자 j에 관해서는, 정보량을 평가하기 위해 M개의 디바이스를 모의적으로 실장한 것을 나타내는 첨자이므로, 평가 후, 실제로 사용하는 것은, 이 중 하나로 좋다. 이후, j=1을 사용하는 것으로 하여 설명한다.
단계 S803 : 오류 정정 회로(751)가, j=1로 한 경우의, 소망하는 성능을 만족시키는 첨자 i에 대응하는 비트열 w(i)=(b(i, 1, 1), …, b(i, 1, 2n-1))에 대하여, 오류 정정에 필요한 신드롬 s를 생성하고, 메모리(782)에 유지하는 단계이다.
단계 S804 : OWHF 회로(752)가, 비트열 w(i)의 해시값 h를 계산하고, 메모리(782)에 유지하는 단계이다.
이상이, 초기 설정의 플로차트이다. 이와 같은 일련 처리에 의해, 성능 평가ㆍ제어부(750)는, 소망하는 성능을 만족시키는 첨자 i, 비트열 w(i)의 오류 정정에 필요한 신드롬 s 및 비트열 w(i)의 해시값 h를, 초기 설정할 수 있다.
다음으로, 도 9를 이용하여, 재설정의 일련 처리에 대하여, 각각의 단계마다 설명한다.
단계 S901 : 제어 회로(755)가, 카운터 cnt의 값을 0으로 초기화하는 단계이다. 이 카운터 cnt는, 단계 S903의 오류 정정이 실패한 횟수를 나타내고 있다.
단계 S902 : 제어 회로(755)가, 비트 생성부(710)를 제어하는 것에 의해, 이전의 초기 설정에서 결정한 첨자 i에 대응하는 비트열 w(i)'를 생성하는 단계이다. 제어 회로(755)는, 첨자 i를 메모리(782)로부터 읽어낸다. 그리고, 제어 회로(755)는, 글리치 발생 회로 i를 선택하기 위한 선택 신호를 생성하고, 이 선택 신호는, 1대째(j=1에 상당)의 글리치 발생 회로 톱(730(1)) 내의 셀렉터에 입력된다. 이것에 의해, 비트열 w(i)'의 생성이 가능하게 된다. 또, 비트열 w(i)'는, 통상, 오류를 포함하기 때문에, 초기 설정에서 생성한 w(i)와는 다른 값이 되어, 「'」를 붙이고 있다.
단계 S903 : 오류 정정 회로(751)가, 비트열 w(i)'에 대하여 오류 정정 처리를 행하고, 비트열 w(i)''를 얻는 단계이다. 오류 정정 회로(751)는, 초기 설정에서 생성한 오류 정정용의 신드롬 s를 메모리(782)로부터 읽어내고, 비트열 w(i)'에 대하여 오류 정정 처리를 행한다. 오류 정정 후의 비트열 w(i)''는, 초기 설정에서 생성한 비트열 w(i)와 일치할 것이 기대된다.
단계 S904 : OWHF 회로(752)가, 비트열 w(i)''의 해시값 h''를 계산하는 단계이다.
단계 S905 : 비교ㆍ판정 회로(753)가, 해시값 h''를, 초기 설정에서 생성한 해시값 h와 비교하고, 비교 결과에 의해 처리를 분기시키는 단계이다. h=h''가 된 경우는, 단계 S903에 있어서의 오류 정정이 성공하고, 초기 설정에서 생성한 비트열 w(i)를 재생성할 수 있었던 것을 의미한다. 반대로, h≠h''가 된 경우는, 단계 S903에 있어서의 오류 정정에 실패하고, 초기 설정에서 생성한 비트열 w(i)의 재생성을 할 수 없었던 것을 의미한다.
단계 S906 : 제어 회로(755)가, 단계 S905에서 h≠h''가 된 경우에, 오류 정정의 실패 횟수를 나타내는 카운터 cnt의 값을 1 늘리고, 다음의 단계 S907로 진행하는 단계이다.
단계 S907 : 카운터 cnt의 값이, 어느 소정의 임계치 U를 넘고 있는지 여부를, 제어 회로(755)가 판정하는 단계이다. 카운터 cnt가 U를 넘고 있지 않은 경우, 단계 S902로 돌아가, 제어 회로(755)는, 다시 비트열 생성과 오류 정정을 행한다.
단계 S908 : 단계 S907에 있어서, cnt>U가 된 경우, 제어 회로(755)가, 실패 통지를 행하는 단계이다. 이것은, 제어 회로(755)가, 이 이상 비트열 생성과 오류 정정을 계속하더라도, 비트열 w(i)를 재생성할 수 없다고 판정한 것을 의미한다.
단계 S909 : 단계 S905에 있어서, 해시값이 h=h''가 되고, 비트열 w(i)의 재생성에 성공했을 때, 카운터 cnt의 값이, 어느 임계치 V를 넘고 있는지 여부를 제어 회로(755)가 판정하는 단계이다. 제어 회로(755)는, cnt가 V를 넘고 있지 않은 경우에는, 재설정 처리를 종료한다. 또, U와 V의 관계는, U>V이다.
단계 S910 : 단계 S909에 있어서, cnt>V가 된 경우, 성능 평가ㆍ제어부(750)가, 초기 설정의 처리를 행하여 새로운 첨자 i'를 선택하는 단계이다. 이것은, 비트열 w(i)의 재생성에 몇 번이나 실패했기 때문에, 성능 평가ㆍ제어부(750)가, 회로 특성이 대폭 바뀌었다고 판단하고, 비트열 w(i)의 재생성을 할 수 없게 되기 전에, 초기 설정을 다시 하는 것에 의해, 새로운 i'를 다시 선택한 것을 의미한다.
이상이, 재설정의 플로차트이다. 이와 같은 일련 처리에 의해, 성능 평가ㆍ제어부(750)는, 디바이스 제조의 영향, 혹은 디바이스의 경년 열화의 영향을 받지 않고서, 소망하는 성능(정보량이나 에러 레이트)을 만족시키는 글리치를 출력하는 것을 보증할 수 있고, 필요에 따라 초기 설정을 다시 할 수 있다.
이상과 같이, 실시의 형태 1에 의하면, 글리치 발생 회로를 복수 탑재하고, 그들의 정보량 평가가 가능하다. 따라서, 복수의 글리치 발생 회로 중에서 사용하는 글리치 발생 회로를 선택 가능하게 하는 것에 의해, 소망하는 성능을 만족시킬 가능성을 높일 수 있다. 또한, 성능 평가ㆍ제어부를 구비하는 것에 의해, 실제로, 소망하는 성능을 만족시키고 있는 글리치 발생 회로의 선택이 가능하게 된다.
또한, 이들 특징을 갖는 것에 의해, 디바이스 제조시나 디바이스의 경년 열화 후에, 글리치 PUF가 소망하는 정보량을 만족시키는 것을 보증할 수 있다. 이 결과, 글리치 PUF를 이용한 제품 기기의 기능이 정상적으로 동작하는 것을 보증하거나, 혹은 기능의 보증 기간을 보다 길게 하는 것 등이 가능하게 된다.
또한, 복수의 글리치 발생 회로를 탑재하고, 특히, 글리치가 발생하기 쉽고 매회의 비트 생성의 재현성이 낮은 글리치 발생 회로를 탑재하고, 생성한 비트의 0/1 등의 빈도성 평가를 행할 수 있는 것으로부터, 글리치 PUF의 난수 생성기로서의 사용도 가능하게 된다.
실시의 형태 2.
이전의 실시의 형태 1에서는, 최적의 글리치 발생 회로의 선택을 행하는 초기 설정 및 글리치 발생 회로의 특성이 변화했을 때의 재설정에 관하여 설명했다. 이것에 비하여, 본 실시의 형태 2에서는, 글리치 발생 회로를 이용한 구체적인 응용예에 대하여 설명한다.
글리치 PUF에 의한 비트열 생성을 이용하여, 암호 알고리즘에서 사용하기 위한 키 생성을 행할 수 있다. 도 10은 본 발명의 실시의 형태 2에 있어서의 키 생성을 행하는 경우의 성능 평가ㆍ제어부의 구성도이다. 본 실시의 형태 2에 있어서의 성능 평가ㆍ제어부(1050)는, 오류 정정 회로(1051), OWHF 회로(1052), 비교ㆍ판정 회로(1053), 성능 평가 회로(1054), 제어 회로(1055) 및 HF 회로(1056)를 구비하고 있다. 또한, 본 실시의 형태 2에 있어서의 도 10의 구성에서는, 암호 회로(1090)가 포함되어 있다.
이전의 실시의 형태 1에 있어서의 도 7의 구성과 비교하면, 본 실시의 형태 2에 있어서의 도 10의 성능 평가ㆍ제어부(1050)는, 비트열을 랜덤화하는 것을 목적으로 한 해시 함수(HF 회로(1056))를 더 구비하고 있는 점이 다르다. 이 HF 회로(1056)의 기능에 의해, 글리치 PUF(1001)에서 생성한 비트열을, 암호 알고리즘의 키로서 사용하는 것이 가능하게 된다.
다음으로, 플로차트를 이용하여, 도 10에 나타낸 구성을 구비하는 글리치 PUF(1001)의 동작에 대하여, 상세하게 설명한다. 도 11은 본 발명의 실시의 형태 2에 있어서의 도 10에 나타내는 글리치 PUF(1001)의 초기 설정의 플로차트이다. 또한, 도 12는 본 발명의 실시의 형태 2에 있어서의 도 10에 나타내는 글리치 PUF(1001)의 재설정의 플로차트이다.
우선 처음으로, 도 11을 이용하여, 초기 설정의 일련 처리에 대하여, 각각의 단계마다 설명한다. 또, 이 도 11의 플로차트는, 이전의 실시의 형태 1에 있어서의 도 8의 플로차트에, 키 생성에 관한 처리를 추가한 것으로 되어 있다. 구체적으로는, 단계 S1102~S1105는, 단계 S801~S804와 동일하고, 단계 S1101, S1105~S1108이, 키 생성에 관한 처리로서 새롭게 추가된 단계에 상당한다.
단계 S1101 : 암호 회로(1090)가, I/O(1083)로부터 마스터 키 mk를 입력하고, 내부의 레지스터에 유지하는 단계이다.
단계 S1102 : 제어 회로(1055)가, 비트 b(1, 1, 1)~비트 b(N, M, 2n-1)을 얻는 단계이다.
단계 S1103 : 성능 평가 회로(1054)가, 비트 b(1, 1, 1), …, b(N, M, 2n-1)의 성능을 평가하는 단계이다. 성능 평가 회로(1054)는, 그 평가 결과로부터, 소망하는 성능을 만족시키는 첨자 i(i=1, …, N)를 선택하고, 첨자 i를 메모리(1082)에 유지한다.
단계 S1104 : 오류 정정 회로(1051)가, j=1로 한 경우의, 소망하는 성능을 만족시키는 첨자 i에 대응하는 비트열 w(i)=(b(i, 1, 1), …, b(i, 1, 2n-1))에 대하여, 오류 정정에 필요한 신드롬 s를 생성하고, 메모리에 유지하는 단계이다.
단계 S1105 : OWHF 회로(1052)가, 비트열 w(i)의 해시값 h를 계산하고, 메모리(1082)에 유지하는 단계이다.
단계 S1106 : HF 회로(1056)가, 비트열 w(i)의 해시값 k를 계산하고, 암호 회로(1090)의 내부 레지스터에 유지하는 단계이다. 이 k가, 글리치 PUF(1001)를 이용하여 생성한 암호 키에 상당한다.
단계 S1107 : 암호 회로(1090)가, 단계 S1106에서 생성한 암호 키 k를 이용하여 마스터 키 mk를 암호화하고, 암호화 데이터 x를 얻는 단계이다. 암호 회로(1090)는, 암호화 데이터 x를 메모리(1082)에 유지한다.
단계 S1108 : 암호 회로(1090)가, 내부의 레지스터에 유지하고 있던 마스터 키 mk와 암호 키 k를 소거하는 단계이다.
상술한 도 11에 있어서의 플로차트에는, 2개의 암호 키 mk와 k가 존재하지만, 마스터 키 mk가 실제로 데이터를 암호화하기 위한 키이고, 글리치 PUF에서 생성한 암호 키 k는, 마스터 키 mk를 암호화하기 위한 키이다. 여기서, 암호 키 k를 데이터의 암호화에 사용하지 않는 이유는, 글리치 PUF(1001)의 출력은, 디바이스의 경년 열화에 의해 변화하고, 초기 설정과 같은 암호 키 k를 재생성하는 것이, 어느 시점에 불가능하게 되기 때문이다.
이상이, 초기 설정의 플로차트이다. 이와 같은 일련 처리에 의해, 성능 평가ㆍ제어부(1050)는, 소망하는 성능을 만족시키는 첨자 i, 비트열 w(i)의 오류 정정에 필요한 신드롬 s 및 비트열 w(i)의 해시값 h를, 초기 설정할 수 있다. 또한, 성능 평가ㆍ제어부(1050)는, 마스터 키 mk의 입수, 암호 키 k의 생성 및 암호화 데이터 x의 생성을 행할 수 있다.
다음으로, 도 12를 이용하여, 재설정의 일련 처리에 대하여, 각각의 단계마다 설명한다. 또, 이 도 12의 플로차트는, 이전의 실시의 형태 1에 있어서의 도 9의 플로차트에, 키 관리에 관한 처리를 추가한 것으로 되어 있다. 구체적으로는, 단계 S1201~S1208은, 단계 S901~S908과 동일하고, 단계 S1211은, 단계 S909와 동일하고, 단계 S1209, S1210, S1212가, 키 관리에 관한 처리로서 새롭게 추가된 단계에 상당한다.
단계 S1201 : 제어 회로(1055)가, 카운터 cnt의 값을 0으로 초기화하는 단계이다.
단계 S1202 : 제어 회로(1055)가, 비트 생성부(1010)를 제어하는 것에 의해, 이전의 초기 설정에서 결정한 첨자 i에 대응하는 비트열 w(i)'를 생성하는 단계이다.
단계 S1203 : 오류 정정 회로(1051)가, 비트열 w(i)'에 대하여 오류 정정 처리를 행하고, 비트열 w(i)''를 얻는 단계이다.
단계 S1204 : OWHF 회로(1052)가, 비트열 w(i)''의 해시값 h''를 계산하는 단계이다.
단계 S1205 : 비교ㆍ판정 회로(1053)가, 해시값 h''를, 초기 설정에서 생성한 해시값 h와 비교하고, 비교 결과에 의해 처리를 분기시키는 단계이다.
단계 S1206 : 제어 회로(1055)가, 단계 S1205에서 h≠h''가 된 경우에, 오류 정정의 실패 횟수를 나타내는 카운터 cnt의 값을 1 늘리고, 다음의 단계 S1207로 진행하는 단계이다.
단계 S1207 : 카운터 cnt의 값이, 어느 소정의 임계치 U를 넘고 있는지 여부를, 제어 회로(1055)가 판정하는 단계이다. 카운터 cnt가 U를 넘고 있지 않은 경우, 단계 S1202로 돌아가, 제어 회로(1055)는, 다시 비트열 생성과 오류 정정을 행한다.
단계 S1208 : 단계 S1207에 있어서, cnt>U가 된 경우, 제어 회로(1055)가, 실패 통지를 행하는 단계이다.
단계 S1209 : HF 회로(1056)가, 비트열 w(i)''의 해시값 k를 계산하는 단계이다. S1205에 있어서, h=h''인 것으로부터, w(i)''=w(i)이므로, 여기서 구한 해시값 k는, w(i)의 해시값 k와 일치한다. 이것은, 초기 설정에서 생성한 키의 재생성에 성공한 것을 의미한다. OWHF 회로(1052)는, 계산한 해시값 k를, 재생성한 키 k로서, 암호 회로(1090)의 내부의 레지스터에 유지한다.
단계 S1210 : 암호 회로(1090)가, 재생성한 키 k를 이용하여 데이터 x를 복호하고, 마스터 키 mk를 얻는 단계이다. 암호 회로(1090)는, 마스터 키 mk를 내부의 레지스터에 유지한다.
단계 S1211 : 카운터 cnt의 값이, 어느 임계치 V를 넘고 있는지 여부를, 제어 회로(1055)가 판정하는 단계이다. 제어 회로(1055)는, cnt가 V를 넘고 있지 않은 경우에는, S1212로 진행한다.
단계 S1212 : 암호 회로(1090)가, 마스터 키 mk를 이용하여 암호 처리를 행하는 단계이다.
단계 S1213 : 단계 S1211에 있어서, cnt>V가 된 경우, 성능 평가ㆍ제어부(1050)가, 초기 설정의 처리를 행하여 새로운 첨자 i'의 선택 및 그것에 대응하는 새로운 키 k'에 의한 mk의 암호화를 행하는 단계이다. 이것은, 비트열 w(i)의 재생성에 몇 번이나 실패했기 때문에, 성능 평가ㆍ제어부(1050)가, 회로 특성이 대폭 바뀌었다고 판단하고, 비트열 w(i)의 재생성을 할 수 없게 되기(따라서, k를 재생성할 수 없게 되기) 전에, 초기 설정을 다시 하는 것에 의해, 새로운 i'를 다시 선택한 것을 의미한다.
이상이, 재설정의 플로차트이다. 이와 같은 일련 처리에 의해, 성능 평가ㆍ제어부(1050)는, 디바이스 제조의 영향, 혹은 디바이스의 경년 열화의 영향을 받지 않고서, 소망하는 성능(정보량이나 에러 레이트)을 만족시키는 글리치를 출력하는 것을 보증할 수 있고, 필요에 따라 초기 설정을 다시 할 수 있다. 또한, 키 관리에 관한 처리에 응용할 수 있다.
이상과 같이, 실시의 형태 2에 의하면, 이전의 실시의 형태 1의 효과를 갖는 글리치 PUF에 의한 비트열 생성을 이용하여, 암호 알고리즘에서 사용하기 위한 키 생성을 행할 수 있어, 암호 처리로의 응용이 가능하게 된다.
Claims (9)
- 반도체 디바이스 내에서 상기 반도체 디바이스의 고유 정보를 생성하는 디바이스 고유 정보 생성 장치로서,
논리 회로를 직렬로 접속하여 다단 구성되고, 각 단의 출력 신호에 발생하는 복수의 상이한 글리치(glitch)를 출력하는 글리치 발생 회로와,
외부로부터 선택 신호를 수신하고, 상기 글리치 발생 회로로부터 출력되는 상기 복수의 상이한 글리치 중에서 1개의 글리치를 선택하여 출력하는 셀렉터와,
상기 셀렉터에 의해 선택된 상기 글리치의 형상을 비트 정보로 변환하는 비트 변환 회로와,
상기 복수의 상이한 글리치를 1개씩 선택하도록 상기 선택 신호를 출력하는 것에 의해, 상기 복수의 상이한 글리치의 각각에 대응하여 상기 비트 변환 회로에서 변환된 각각의 비트 정보를 취득하고, 취득한 상기 비트 정보의 성능을 평가하여 선택하는 글리치를 특정하고, 특정한 글리치를 상기 반도체 디바이스의 상기 고유 정보로서 출력하도록, 상기 선택 신호를 특정하는 성능 평가 제어부
를 구비하는 디바이스 고유 정보 생성 장치.
- 제 1 항에 있어서,
회로 구성이 상이한 복수의 글리치 발생 회로를 구비하고, 상기 복수의 글리치 발생 회로의 각각의 출력 신호를 상기 복수의 상이한 글리치로서 출력하는 디바이스 고유 정보 생성 장치.
- 제 1 항 또는 제 2 항에 있어서,
상기 성능 평가 제어부는, 상기 복수의 상이한 글리치 중에서 1개씩 선택하도록 상기 선택 신호를 출력하는 것에 의해, 상기 복수의 상이한 글리치의 각각에 대응하여 상기 비트 변환 회로에서 변환된 각각의 비트 정보를 취득하는 조작을 반복하여 실행하고, 반복 횟수에 대한 상기 비트 정보의 일치도로부터, 상기 복수의 상이한 글리치의 각각의 에러 레이트의 평가를 행하는 에러 레이트 평가 회로를 포함하는 디바이스 고유 정보 생성 장치.
- 제 1 항 또는 제 2 항에 있어서,
회로 구성이 상이한 복수의 글리치 발생 회로를 구비한 글리치 발생 회로군이, 1개의 상기 반도체 디바이스상에 복수개 탑재하여 구성되고,
외부로부터 제 2 선택 신호를 수신하는 것에 의해, 복수의 글리치 발생 회로군의 각각의 출력 중에서 1개를 선택하여 상기 비트 변환 회로에 대하여 출력하는 제 2 셀렉터를 구비하고,
상기 성능 평가 제어부는, 상기 복수의 글리치 발생 회로군의 각각의 출력 중에서 1개씩 선택하도록 상기 제 2 선택 신호를 출력함과 아울러, 각각의 글리치 발생 회로군에 대한 n비트(n은 2 이상의 정수)의 입력 신호를 변화시키는 것에 의해, 상기 복수의 글리치 발생 회로군의 각각에 대응하여 상기 비트 변환 회로에서 변환된 각각의 비트 정보를 2n-1비트의 비트열로서 취득하는 조작을 실행하고, 비트열에 포함되는 비트값이 1인 비트수를 카운트하는 것에 의해 상기 복수의 글리치 발생 회로군의 각각의 정보량 평가를 행하는 정보량 평가 회로를 포함하는
디바이스 고유 정보 생성 장치.
- 제 3 항에 있어서,
상기 성능 평가 제어부는,
상기 비트 변환 회로를 거쳐서 입력된 비트열에 포함되는 오류를 정정하기 위한 오류 정정 회로와,
상기 오류 정정 회로에 의한 오류 정정 후의 비트열의 해시값을 생성하는 OWHF 회로와,
상기 OWHF 회로에서 생성된 상기 해시값을, 그 이전에 생성한 해시값과 비교하는 비교ㆍ판정 회로와,
상기 비트열의 성능으로서, 상기 에러 레이트 평가를 행하는 성능 평가 회로와,
상기 비교ㆍ판정 회로에 의한 판정 결과 및 성능 평가 회로에 의한 평가 결과에 근거하여, 상기 비트 변환 회로에서 변환된 상기 비트 정보가, 소망하는 성능을 만족시키고 있는 글리치로부터 생성되도록 제어하는 제어 회로
를 구비한 디바이스 고유 정보 생성 장치.
- 제 4 항에 있어서,
상기 성능 평가 제어부는,
상기 비트 변환 회로를 거쳐서 입력된 비트열에 포함되는 오류를 정정하기 위한 오류 정정 회로와,
상기 오류 정정 회로에 의한 오류 정정 후의 비트열의 해시값을 생성하는 OWHF 회로와,
상기 OWHF 회로에서 생성된 상기 해시값을, 그 이전에 생성한 해시값과 비교하는 비교ㆍ판정 회로와,
상기 비트열의 성능으로서, 상기 정보량 평가를 행하는 성능 평가 회로와,
상기 비교ㆍ판정 회로에 의한 판정 결과 및 성능 평가 회로에 의한 평가 결과에 근거하여, 상기 비트 변환 회로에서 변환된 상기 비트 정보가, 소망하는 성능을 만족시키고 있는 글리치로부터 생성되도록 제어하는 제어 회로
를 구비한 디바이스 고유 정보 생성 장치.
- 제 5 항에 있어서,
상기 성능 평가 제어부는, 상기 오류 정정 회로에 의한 오류 정정 후의 비트열을 랜덤화하여 해시값을 구하는 것에 의해, 암호 키를 생성하는 HF 회로를 구비한 디바이스 고유 정보 생성 장치.
- 제 6 항에 있어서,
상기 성능 평가 제어부는, 상기 오류 정정 회로에 의한 오류 정정 후의 비트열을 랜덤화하여 해시값을 구하는 것에 의해, 암호 키를 생성하는 HF 회로를 구비한 디바이스 고유 정보 생성 장치.
- 반도체 디바이스 내에서 상기 반도체 디바이스의 고유 정보를 생성하기 위한 디바이스 고유 정보 생성 방법으로서,
논리 회로를 직렬로 접속하여 다단 구성된 회로를 이용하여, 각 단의 출력 신호에 발생하는 복수의 상이한 글리치를 출력하는 글리치 발생 단계와,
외부로부터 선택 신호를 수신하고, 상기 글리치 발생 단계로부터 출력되는 상기 복수의 상이한 글리치 중에서 1개의 글리치를 선택하여 출력하는 글리치 선택 단계와,
상기 글리치 선택 단계에 의해 선택된 상기 글리치의 형상을 비트 정보로 변환하는 비트 변환 단계와,
상기 복수의 상이한 글리치를 1개씩 선택하도록 상기 선택 신호를 출력하는 것에 의해, 상기 복수의 상이한 글리치의 각각에 대응하여 상기 비트 변환 단계에서 변환된 각각의 비트 정보를 취득하고, 취득한 상기 비트 정보의 성능을 평가하여 선택하는 글리치를 특정하고, 특정한 글리치를 상기 반도체 디바이스의 상기 고유 정보로서 출력하도록, 상기 선택 신호를 특정하는 성능 평가 단계
를 구비하는 디바이스 고유 정보 생성 방법.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/079820 WO2013094056A1 (ja) | 2011-12-22 | 2011-12-22 | デバイス固有情報生成装置およびデバイス固有情報生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140093276A KR20140093276A (ko) | 2014-07-25 |
KR101576408B1 true KR101576408B1 (ko) | 2015-12-09 |
Family
ID=48667980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147016455A KR101576408B1 (ko) | 2011-12-22 | 2011-12-22 | 디바이스 고유 정보 생성 장치 및 디바이스 고유 정보 생성 방법 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9361482B2 (ko) |
JP (1) | JP5646091B2 (ko) |
KR (1) | KR101576408B1 (ko) |
CN (1) | CN103946909B (ko) |
DE (1) | DE112011106024B4 (ko) |
IN (1) | IN2014CN03264A (ko) |
TW (1) | TWI505641B (ko) |
WO (1) | WO2013094056A1 (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2508052A (en) * | 2012-11-18 | 2014-05-21 | Nds Ltd | Glitch resistant device |
JP6213345B2 (ja) * | 2014-03-31 | 2017-10-18 | 富士通株式会社 | 転送装置、決定方法、及びデータ処理装置 |
JP2016046719A (ja) | 2014-08-25 | 2016-04-04 | 株式会社東芝 | データ生成装置、通信装置、移動体、データ生成方法およびプログラム |
JP2016091177A (ja) * | 2014-10-31 | 2016-05-23 | 株式会社アドバンテスト | 認証端末 |
KR102201642B1 (ko) | 2014-11-28 | 2021-01-13 | 삼성전자주식회사 | Puf 회로 및 그것의 키 등록 방법 |
US9501664B1 (en) * | 2014-12-15 | 2016-11-22 | Sandia Corporation | Method, apparatus and system to compensate for drift by physically unclonable function circuitry |
US9703989B1 (en) * | 2014-12-23 | 2017-07-11 | Altera Corporation | Secure physically unclonable function (PUF) error correction |
US20170132434A1 (en) * | 2015-11-06 | 2017-05-11 | Mentor Graphics Corporation | Measure variation tolerant physical unclonable function device |
US10579339B2 (en) * | 2017-04-05 | 2020-03-03 | Intel Corporation | Random number generator that includes physically unclonable circuits |
JP6585215B2 (ja) * | 2018-03-16 | 2019-10-02 | 株式会社東芝 | データ生成装置、通信装置、移動体、データ生成方法およびプログラム |
US20210119812A1 (en) * | 2020-12-23 | 2021-04-22 | Intel Corporation | Time-based multi-dimensional key recreation mechanism using puf technologies |
CN113268745B (zh) * | 2021-04-12 | 2022-06-21 | 温州大学 | 基于Camellia加密算法的软PUF |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008056612A1 (fr) | 2006-11-06 | 2008-05-15 | Panasonic Corporation | Appareil de sécurité d'informations |
WO2011086688A1 (ja) | 2010-01-15 | 2011-07-21 | 三菱電機株式会社 | ビット列生成装置及びビット列生成方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1278221C (zh) * | 2000-10-24 | 2006-10-04 | 日本电脑警备有限公司 | 随机数发生装置 |
US7840803B2 (en) | 2002-04-16 | 2010-11-23 | Massachusetts Institute Of Technology | Authentication of integrated circuits |
JP3732188B2 (ja) * | 2003-03-31 | 2006-01-05 | Necマイクロシステム株式会社 | 擬似乱数発生回路 |
US7233212B2 (en) * | 2005-03-31 | 2007-06-19 | International Business Machines Corporation | Oscillator array with row and column control |
CN101263503A (zh) * | 2005-09-14 | 2008-09-10 | 皇家飞利浦电子股份有限公司 | 用于确定项目的真实性的改进设备、系统和方法 |
DE602006005957D1 (de) * | 2005-11-29 | 2009-05-07 | Koninkl Philips Electronics Nv | Physisches verteilen von geheimnissen und beweisen der nähe unter verwendung von pufs |
WO2009156904A1 (en) | 2008-06-27 | 2009-12-30 | Koninklijke Philips Electronics N.V. | Device, system and method for verifying the authenticity integrity and/or physical condition of an item |
-
2011
- 2011-12-22 US US14/361,543 patent/US9361482B2/en active Active
- 2011-12-22 WO PCT/JP2011/079820 patent/WO2013094056A1/ja active Application Filing
- 2011-12-22 JP JP2013550030A patent/JP5646091B2/ja active Active
- 2011-12-22 KR KR1020147016455A patent/KR101576408B1/ko active IP Right Grant
- 2011-12-22 DE DE112011106024.6T patent/DE112011106024B4/de active Active
- 2011-12-22 CN CN201180074942.9A patent/CN103946909B/zh active Active
-
2012
- 2012-05-30 TW TW101119285A patent/TWI505641B/zh active
-
2014
- 2014-04-30 IN IN3264CHN2014 patent/IN2014CN03264A/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008056612A1 (fr) | 2006-11-06 | 2008-05-15 | Panasonic Corporation | Appareil de sécurité d'informations |
WO2011086688A1 (ja) | 2010-01-15 | 2011-07-21 | 三菱電機株式会社 | ビット列生成装置及びビット列生成方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI505641B (zh) | 2015-10-21 |
US9361482B2 (en) | 2016-06-07 |
DE112011106024B4 (de) | 2023-07-06 |
US20140325241A1 (en) | 2014-10-30 |
TW201328190A (zh) | 2013-07-01 |
IN2014CN03264A (ko) | 2015-07-03 |
CN103946909A (zh) | 2014-07-23 |
WO2013094056A1 (ja) | 2013-06-27 |
JPWO2013094056A1 (ja) | 2015-04-27 |
DE112011106024T5 (de) | 2014-09-18 |
JP5646091B2 (ja) | 2014-12-24 |
CN103946909B (zh) | 2016-05-11 |
KR20140093276A (ko) | 2014-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101576408B1 (ko) | 디바이스 고유 정보 생성 장치 및 디바이스 고유 정보 생성 방법 | |
KR101860461B1 (ko) | 암호화 방법 및 암호화 장치 | |
JP5113074B2 (ja) | 情報セキュリティ装置 | |
RU2383934C2 (ru) | Устройство криптографической обработки, способ криптографической обработки | |
Rahim | Combination of the Blowfish and Lempel-Ziv-Welch algorithms for text compression | |
KR101516574B1 (ko) | 형태보존 암호화를 위한 가변길이 블록암호 장치 및 방법 | |
Hiller et al. | Cherry-picking reliable PUF bits with differential sequence coding | |
JP6305642B2 (ja) | メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム | |
US10903978B2 (en) | Method of encryption with dynamic diffusion and confusion layers | |
CN104838617B (zh) | 整合安全装置及整合安全装置中使用的信号处理方法 | |
JP6187462B2 (ja) | ユニバーサルハッシュ関数演算装置、方法およびプログラム | |
Liu et al. | A joint encryption and error correction scheme based on chaos and LDPC | |
Klapper et al. | Register synthesis for algebraic feedback shift registers based on non-primes | |
AlTawy et al. | Towards a cryptographic minimal design: The sLiSCP family of permutations | |
Ariffin et al. | Randomness analysis on 3D-AES block cipher | |
Kadhim et al. | Proposal of new keys generator for DES algorithms depending on multi techniques | |
Cardell et al. | Recovering the MSS-sequence via CA | |
Tokareva | Connections between graph theory and cryptography | |
CN115801227B (zh) | 一种生成置换表的方法及装置 | |
Praveen et al. | A highly secured three-phase symmetric cipher technique | |
JP5488608B2 (ja) | ブロック暗号装置、ブロック暗号化方法およびプログラム | |
Marraro et al. | A new challenge for automated reasoning: Verification and cryptanalysis of cryptographic algorithms | |
Alawadhi et al. | A Crypto-System with Embedded Error Control for Secure and Reliable Communication | |
Smart et al. | Modern Stream Ciphers | |
Fúster-Sabater et al. | Solving Linear Difference Equations by Means of Cellular Automata |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20181121 Year of fee payment: 4 |