KR20150078801A - 랜덤한 디지털 값을 생성하는 장치 및 방법 - Google Patents
랜덤한 디지털 값을 생성하는 장치 및 방법 Download PDFInfo
- Publication number
- KR20150078801A KR20150078801A KR1020130168530A KR20130168530A KR20150078801A KR 20150078801 A KR20150078801 A KR 20150078801A KR 1020130168530 A KR1020130168530 A KR 1020130168530A KR 20130168530 A KR20130168530 A KR 20130168530A KR 20150078801 A KR20150078801 A KR 20150078801A
- Authority
- KR
- South Korea
- Prior art keywords
- digital
- digital value
- value
- pufs
- puf
- Prior art date
Links
Images
Classifications
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- 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
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
랜덤한 디지털 값을 제공하는 디지털 값 생성 장치가 제공된다. 상기 장치는 반도체 공정 변이를 이용하여 상기 디지털 값을 생성한다. 장치는, 상기 반도체 공정 변이를 이용하여 복수 개의 디지털 값을 생성하는 생성부, 및 상기 복수 개의 디지털 값을 처리하여 제1 디지털 값을 제공하는 처리부를 포함할 수 있다. 그리고, 상기 생성부는, 파라미터가 상이하게 적용되어 상기 복수 개의 디지털 값을 생성하는 복수 개의 PUF를 포함할 수 있다.
Description
보안 분야에 연관되며, 보다 구체적으로는 공정 변이(Process variation)를 이용하여 랜덤한 디지털 값을 생성하는 PUF (Physically Unclonable Function)에 연관된다.
PUF (Physically Unclonable Function)는 예측 불가능한 (Unpredictable) 디지털 값을 제공할 수 있다. 개개의 PUF들은 정확한 제조 공정이 주어지고, 동일한 공정에서 제조되더라도, 상기 개개의 PUF들이 제공하는 디지털 값은 다르다.
PUF는 복제가 불가능한 POWF (Physical One-Way Function practically impossible to be duplicated) 또는 PRF (Physical Random Function)로 지칭될 수도 있다.
이러한 PUF의 특성이 보안 및/또는 인증을 위한 암호 키의 생성에 이용될 수 있다. 이를테면, 디바이스를 다른 디바이스와 구별하기 위한 유니크 키(Unique key to distinguish devices from one another)를 제공하기 위해 PUF가 이용될 수 있다.
한국 등록특허 10-1139630호(이하 '630 특허)에서 PUF를 구현하는 방법이 제시된 바 있다. '630 특허에서는 반도체의 공정 변이를 이용하여 반도체의 전도성 레이어들(Conductive layers or conductive nodes) 사이의 인터-레이어 콘택(Inter-layer contact) 또는 비아(via)의 생성 여부가 확률적으로 결정되도록 하여 PUF를 생성하는 방법이 제시되었다.
'630 특허에서 제시된 실시예들 중 하나는, 전도성 레이어들 사이에 형성될 비아(Via)의 사이즈를 작게 설계함으로써 비아가 형성되는 경우와 그렇지 않은 경우가 랜덤하게 발생하도록 하는 것이다. 그래서 인위적 추측이 불가능한 랜덤 디지털 값이 생성되었다.
'630 특허의 경우, PUF의 수율을 높이기 위해서는 PUF가 생성한 디지털 값에 포함된 개별 비트 값들이 '0' 또는 '1'로 치우치지 않아 진정 난수(True random number)되도록 하는 옵티멀 비아 사이즈를 결정할 필요가 있다.
따라서, 특정 공정에 대해 미리 여러 가지의 비아 사이즈들을 이용해서 PUF를 생성한 다음, PUF가 생성한 디지털 값들을 검수하여, 상기 특정 공정에서 사용할 옵티멀 비아 사이즈를 결정하는 1차 패스(First Pass)가 진행된다.
그리고, 이렇게 결정된 단일의 옵티멀 비아 사이즈를 이용하여 실제 PUF를 생성하는 2차 패스(Second Pass)가 진행된다. 그런데, 상기 특정 공정에서 사용하도록 결정한 상기 옵티멀 비아 사이즈가 어떠한 웨이퍼 및/또는 칩에서는 옵티멀하지 않은 값일 수도 있다. 동일한 공정에서도 공정 변이가 개별 웨이퍼 마다 및/또는 개별 칩 마다 다른 정도로 발생할 수 있기 때문이다. 따라서, PUF 생성의 수율을 높일 수 있는 방법이 요구된다.
일측에 따르면, 반도체 공정 변이를 이용하여 디지털 값을 생성하는 장치가 제공된다.
일실시예에 따르면, 상기 장치는: 상기 반도체 공정 변이를 이용하여 복수 개의 디지털 값을 생성하는 생성부; 및 상기 복수 개의 디지털 값을 처리하여 제1 디지털 값을 제공하는 처리부를 포함할 수 있다. 여기서 상기 생성부는, 복수 개의 PUF를 포함하고, 상기 복수 개의 PUF 중 적어도 일부는 상기 공정 변이를 야기하는 적어도 하나의 파라미터가 서로 상이하게 적용되어 제조되며, 상기 복수 개의 PUF 각각이 디지털 값을 생성할 수 있다.
일실시예에 따르면, 상기 복수 개의 PUF 중 적어도 하나는, 반도체의 전도성 레이어들 사이에 형성되는 적어도 하나의 비아(Via)를 포함하며, 상기 적어도 하나의 비아에 의해 상기 전도성 레이어들이 단락되는지의 여부를 이용하여 상기 복수 개의 디지털 값 중 적어도 하나를 생성할 수 있다.
일실시예에 따르면, 상기 파라미터는 상기 비아의 사이즈를 포함한다.
일실시예에 따르면, 상기 비아의 사이즈는 상기 장치를 생성하는 공정에 대해 선 진행한 테스트 공정에서 상기 전도성 레이어들 사이가 단락되기도 하고 단락되지 않기도 하는 것으로 확인된 비아 사이즈의 최소 값 이상 최대 값 이하의 범위에서 선택되고, 상기 복수 개의 PUF 각각에는 상기 범위 내에서 서로 다른 비아 사이즈가 적용될 수 있다.
한편, 일실시예에 따르면, 상기 처리부는, 상기 복수 개의 디지털 값 중 미리 지정된 조건에 부합하는 값을 상기 제1 디지털 값으로 선택할 수 있다.
이 경우, 상기 미리 지정된 조건은, 비트 시퀀스가 '1' 및 '0'을 모두 포함하는 디지털 값을 제공하는 적어도 하나의 PUF 중, 상기 적용된 파라미터가 최소인 PUF에 의해 생성되는 것일 수 있다.
또한, 다른 일실시예에 따르면, 상기 미리 지정된 조건은, 비트 시퀀스가 '1' 및 '0'을 모두 포함하는 디지털 값을 제공하는 적어도 하나의 PUF 중, 상기 적용된 파라미터가 최소 값과 최대 값의 중앙 값인 PUF에 의해 생성되는 것일 수 있다.
또 다른 일실시예에 따르면, 상기 처리부는, 상기 복수 개의 디지털 값을 비트 시퀀스 별로 논리 연산하여 상기 제1 디지털 값을 계산할 수도 있다.
일실시예에 따르면, 상기 논리 연산은 익스클러시브 오어(XOR) 논리 연산일 수 있다.
다른 일측에 따르면, 반도체 공정 변이를 이용하여 디지털 값을 생성하는 장치가 디지털 값을 생성하는 방법에 있어서, 상기 공정 변이를 야기하는 적어도 하나의 파라미터가 서로 상이하게 적용되어 제조된 복수 개의 PUF가 복수 개의 디지털 값을 생성하는 단계; 및 처리부가 상기 복수 개의 디지털 값을 처리하여 제1 디지털 값을 제공하는 단계를 포함하는 방법이 제공된다.
일실시예에 따르면, 상기 복수 개의 PUF 중 적어도 하나는 반도체의 전도성 레이어들 사이에 형성되는 적어도 하나의 비아(Via)를 포함하며, 상기 생성하는 단계는, 상기 적어도 하나의 비아에 의해 상기 전도성 레이어들이 단락되는지의 여부에 따라 상기 복수 개의 디지털 값 중 적어도 하나를 생성할 수 있다.
일실시예에 따르면, 상기 파라미터는 상기 비아의 사이즈를 포함할 수 있다. 이 경우, 상기 비아의 사이즈는 상기 장치를 생성하는 공정에 대해 선 진행한 테스트 공정에서 상기 전도성 레이어들 사이가 단락되기도 하고 단락되지 않기도 하는 것으로 확인된 비아 사이즈의 최소 값 이상 최대 값 이하의 범위에서 선택될 수 있다. 그리고, 상기 복수 개의 PUF 각각에는 상기 범위 내에서 서로 다른 비아 사이즈가 적용될 수 있다.
일실시예에 따르면, 상기 처리하는 단계는, 상기 복수 개의 디지털 값 중 미리 지정된 조건에 부합하는 값을 상기 제1 디지털 값으로 선택할 수 있다.
이 경우, 상기 미리 지정된 조건은, 비트 시퀀스가 '1' 및 '0'을 모두 포함하는 디지털 값을 제공하는 적어도 하나의 PUF 중, 상기 적용된 파라미터가 최소인 PUF에 의해 생성되는 것일 수 있다.
한편, 상기 미리 지정된 조건은, 비트 시퀀스가 '1' 및 '0'을 모두 포함하는 디지털 값을 제공하는 적어도 하나의 PUF 중, 상기 적용된 파라미터가 최소 값과 최대 값의 중앙 값인 PUF에 의해 생성되는 것일 수도 있다.
다른 일실시예에 따르면, 상기 처리하는 단계는, 상기 복수 개의 디지털 값을 비트 시퀀스 별로 논리 연산하여 상기 제1 디지털 값을 계산할 수 있다.
이 경우, 상기 논리 연산은 익스클러시브 오어(XOR) 논리 연산일 수 있다.
도 1은 일실시예에 따른 디지털 값 생성 장치의 블록도이다.
도 2는 일실시예에 따른 생성부의 세부 구성을 설명하기 위한 개념도이다.
도 3은 일실시예에 따른 처리부의 동작을 설명하기 위한 개념도이다.
도 4는 일실시예에 따른 처리부의 동작을 설명하기 위한 개념도이다.
도 5는 일실시예에 따른 처리부의 동작을 설명하기 위한 개념도이다.
도 6은 일실시예에 따른 디지털 값 생성 방법을 도시하는 흐름도이다.
도 7은 다른 일실시예에 따른 디지털 값 생성 방법을 도시하는 흐름도이다.
도 8은 일실시예에 따른 디지털 값 생성 방법을 도시하는 흐름도이다.
도 2는 일실시예에 따른 생성부의 세부 구성을 설명하기 위한 개념도이다.
도 3은 일실시예에 따른 처리부의 동작을 설명하기 위한 개념도이다.
도 4는 일실시예에 따른 처리부의 동작을 설명하기 위한 개념도이다.
도 5는 일실시예에 따른 처리부의 동작을 설명하기 위한 개념도이다.
도 6은 일실시예에 따른 디지털 값 생성 방법을 도시하는 흐름도이다.
도 7은 다른 일실시예에 따른 디지털 값 생성 방법을 도시하는 흐름도이다.
도 8은 일실시예에 따른 디지털 값 생성 방법을 도시하는 흐름도이다.
이하에서, 일부 실시예들을, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일실시예에 따른 디지털 값 생성 장치(100)의 블록도이다.
일실시예에 따르면, 장치(100)는 반도체 공정 변이를 이용하여 복수 개의 디지털 값을 생성하는 생성부(110) 및 상기 복수 개의 디지털 값을 처리하여 제1 디지털 값을 제공하는 처리부(120)를 포함할 수 있다.
상기 생성부(110)는 반도체 공정 변이에 따라 랜덤한 디지털 값을 생성하는 PUF (Physically Unclonable Function)를 복수 개 포함할 수 있다. 이러한 복수 개의 PUF들은 생성부(110)에 포함되는 반도체 구조 중 개념적으로 구분되는 부분들일 수 있다.
PUF들(PUF1 내지 PUFn)은 반도체 공정 변이에 따라 각각 랜덤한 디지털 값을 생성할 수 있다. 이러한 디지털 값들 각각은 비트 시퀀스일 수 있다. PUF들은 모두 물리적으로 복제 불가능하며, 각각이 생성한 디지털 값들은 시불변성을 가질 수 있다.
이하에서는 PUF들을 PUFi로 구분할 수 있다. 여기서 i는 정수이며, PUF들을 구분하는 개념적 인덱스이다. 다만, 이러한 구분은 실제 회로 내에서의 배치나 구조적 구분과는 다른 개념일 수 있다.
따라서, 생성부(110) 자체가 PUF이고, PUFi들 각각은 생성부(110)의 부분들인 것으로 이해될 수도 있다.
도시된 바와 같이, 생성부(110)에는 PUF들이 n 개 포함될 수 있다. 여기서 n은 자연수이다.
실시예들에 따르면 n 개의 PUF들은, 무작위적으로 생성되는 디지털 값에 포함되는 개별 비트들이 '0'일 확률 (또는 '1'일 확률)에 영향을 주는 여하간의 공정 요소 및/또는 설계 요소 (이하에서는 이 '요소'를 '파라미터'라고 할 수도 있다)를 서로 다르게 하여 생성된다.
일실시예에 따르면, PUFi는 반도체의 전도성 레이어들 사이에 형성되는 k 개의 비아(Via)를 포함할 수 있다. 여기서 k는 자연수이며, PUFi가 포함하는 비아의 수이다.
그리고, PUFi에 포함되는 k 개의 비아 각각이 전도성 레이어들 사이를 단락하는지, 그렇지 않은지에 따라 각각의 비아 마다 디지털 값 '1' 또는 '0'이 생성될 수 있다. 따라서, 하나의 PUFi는 k 비트(bit)의 디지털 값을 제공하며, 생성부(110)에서는 n 개의 디지털 값이 생성된다.
일실시예에 따르면, n 개의 PUF들은 서로 다른 파라미터를 적용하여 생성된 것일 수 있다. 상기 비아에 연관된 실시예에서, 이 파라미터는 비아 사이즈일 수 있다. 이를테면, PUF1 내지 PUFn은 각각 다른 비아 사이즈를 갖도록 설계 및/또는 제조된 것일 수 있다.
물론, 상기한 바와 같이, 비아에 연관된 실시예는 PUF를 만드는 일실시예에 불과하며, PUF를 만드는 다른 실시예들에서는 상기 파라미터는 달라질 수 있다. 따라서, 별다른 언급이 없더라도 상기 비아에 연관된 실시예는 이해를 돕기 위한 예시적인 것으로 해석되어야 한다. 이를테면, 전자회로 내의 동일한 소자의 무작위적인 전기적 특성 차이를 이용하여 PUF를 구현하는 실시예, 반도체의 전도성 레이어 사이의 스패이싱(Spacing between conductive layers) 등 다른 형태의 PUF에 의한 실시예들 또한 가능하다. 따라서, PUF를 구현하는 다른 많은 실시예들이 상기 비아 실시예와 함께 및/또는 이에 대신하여 적용될 수 있다.
상기한 비아에 연관된 예시적 실시예에 따른 PUF들의 구조에 대한 이해를 돕기 위해 도 2가 참조될 수 있다.
도 2는 일실시예에 따른 생성부(110)의 세부 구성을 설명하기 위한 개념도이다.
PUF 인덱스 i가 동일한 PUFi에서는 k 개의 비아들이 모두 동일한 사이즈를 가질 수 있다. 이 사이즈는 k 개의 비아들이 랜덤하게 전도성 레이어들 사이를 단락 시킬 수도 있고 그렇지 않을 수 있는 적절한 사이즈로 선택될 수 있다. 이론적으로는 k 개의 비아들 각각이 전도성 레이어들 사이를 단락시키는 확률과 단락시키지 못할 확률이 동일하게 1/2이 되는 경우가 있으며, 이 경우의 사이즈가 상기한 옵티멀 비아 사이즈이다.
상기한 바와 같이, 종전에는 PUF를 생성하는 특정 공정에 대해 상기한 1차 패스를 미리 진행시켰다. 그래서, 1차 패스의 진행에 따라 상기 특정 공정에서 사용할 옵티멀 비아 사이즈를 결정한 다음, 이 옵티멀 비아 사이즈를 이용하여 실제 사용될 PUF를 양산하는 2차 패스를 진행시킨다.
그런데, 1차 패스를 진행하여 결정된 이 옵티멀 비아 사이즈를 적용하여 2차 패스를 진행하더라도, 개별 웨이퍼 마다 및/또는 (하나의 웨이퍼 상에서도) 개별 PUF 칩 마다 비아가 전도성 레이어들 사이를 단락시키는 확률이 1/2로 유지되지 않는 경우가 있을 수 있다. 이 점은 PUF에 의해 생성된 난수를 다양한 산업 분야, 특히 보안 분야에서 활용하기 위해 해결되어야 할 과제로 인식된다.
참고로, 랜덤성을 테스트하는 여러 가지 방법들에서도 생성된 디지털 값이 진정 난수이기 위해서는 '0'과 '1'의 발생 빈도가 비슷한지의 테스트를 통과해야 한다는 점이 제시되었다.
이를테면, 미국 상무국 기술위원회 산하 NIST(National Institute of Standards and Technology)의 Special Publication 800-22 "A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications"에서도 보안 분야에서 사용되는 난수는 이러한 빈도수 테스트(frequency Test or Monobit Test)를 통과해야 함을 명시하고 있다.
실시예들에 따르면, PUF에 의해 생성된 디지털 값에서 '0'과 '1'의 빈도 차이가 크게 줄어들어 보안용으로 사용될 수 있는 난수를 제공하는 PUF를 높은 수율로 제작할 수 있다.
일실시예에 따르면, 어떤 한 가지 비아 홀 사이즈를 미리 결정하여 모든 비아 홀 사이즈를 동일하게 생성하는 대신, 여러 가지 비아 홀 사이즈를 생성부(110) 내에서 함께 구현한다. 이 경우, 상술한 '공정 편차를 야기하는 파라미터'는 '비아 홀의 사이즈'이다. 즉, 개별 비아 홀을 어떤 사이즈로 디자인 하여야 상기 개별 비아가 전도성 레이어들 사이를 단락할 확률과 단락하지 못할 확률이 같아지는 지를 정확히 알기 어렵고, 또 알더라도 실제 공정에서는 다른 결과가 도출될 수 있다는 점을 감안하여, 하나의 칩 내에 다양한 파라미터를 적용한 PUF들을 구현하는 것이다.
도 2에서 도시된 실시예에서는, 생성부(110) 내에 구현된 PUF1 내지 PUFn은 서로 다른 비아 홀 사이즈를 갖도록 제조되었다. 어느 특정한 PUF 인덱스 i에서는 k 비트 길이의 비트 시퀀스(이하에서는 'PUF 비트 시퀀스'라고 할 수 있음)가 존재한다. 이들 각각을 k 비트의 디지털 값으로 사용하면, 서로 다른 n 개의 디지털 값이 생성될 수 있다. 본 명세서에서는 설명의 편의를 위해 동일한 비아 사이즈를 갖는 k 개의 비아로 구성되는 PUFi가 제공하는 k 비트의 바이너리 비트 시퀀스를 하나의 'PUF 디지털 값'으로 설명한다.
한편, 비트 수 k나, 한 칩에서 구현되는 서로 다른 비아 홀 사이즈의 종류 n은 필요한 난수의 길이, 공정 진행 조건, 랜덤성 테스트를 통과하기 위한 요구 조건, PUF의 응용 분야 등에 따라 다양하게 설정될 수 있다.
도 2에서 제시된 바를 참조하면, PUF1에서는 비아 홀 사이즈가 제일 작고, 순차적으로 커져서 PUFn에서는 비아 홀 사이즈가 제일 크다. 물론, 이러한 순서는 설명의 편의를 위한 것이며 꼭 사이즈가 커지는 순서로 구현될 필요는 없다.
또한, 이러한 비아 홀 사이즈가 커지는 정도도 다양하게 설정할 수 있으며, 일정 비율만큼 커지는 예, 균일한 직경만큼 커지는 예, PUF(n/2) 근처에서는 비아 홀 사이즈 차이를 PUF1이나 PUFn 근처보다 더 작게 하여 정밀도를 높이는 예 등이 가능하다.
참고로, 이 명세서 전반에 걸쳐 비아가 전도성 레이어들 사이를 단락 시키는 경우를 바이너리 값 '1'로 설명하고, 단락시키지 못하는 경우를 바이너리 값 '0'으로 설명한다. 물론, 단락 여부에 따라 바이너리 값을 '1'과 '0' 중 어느 하나로 결정하는 것은 이해를 돕기 위한 예시적 설명일 뿐이며, 판독 회로가 풀-다운 구성인지 풀-업 구성인지에 따라 반대의 경우도 얼마든지 가능하다.
다시 도시된 바를 참조하면, 비아 홀 사이즈가 작은 PUF1의 경우 k 비트의 PUF 비트 시퀀스는 모두 '0'이 될 수 있다. 그리고 비아 홀 사이즈가 큰 PUFn의 경우 k 비트의 PUF 비트 시퀀스는 모두 '1'이 될 수 있다.
일실시예에 따르면, PUF1의 비아 홀 사이즈는, 공정에서 설계 및 제조하여 '0'과 '1'을 만들 수 있을 것으로 예상되는 최소의 비아 홀 사이즈일 수도 있고, 또는 미리 그 공정에서 상기한 1차 패스를 진행한 결과 비트 시퀀스로 '0'과 '1'을 모두 발생시키는 것으로 확인된 최소의 비아 홀 사이즈일 수 있다. 이러한 의미에서 제시된 실시예들이 기존의 2-Pass 방식 공정만을 진행하는 것을 배제하지는 않는다.
그리고, PUFn의 비아 홀 사이즈는, 공정에서 설계 및 제조하여 '0'과 '1'을 만들 수 있을 것으로 예상되는 최대의 비아 홀 사이즈일 수도 있고, 또는 미리 그 공정에서 상기한 1차 패스를 진행한 결과 비트 시퀀스로 '0'과 '1'을 모두 발생시키는 것으로 확인된 최대의 비아 홀 사이즈일 수도 있다.
이렇게 다양한 사이즈의 PUFi를 하나의 생성부(110) 내에 동시에 구현함으로써, 생성된 PUF 디지털 값이 랜덤 테스트를 통과하지 못해 칩 전체가 사용되지 못하는 것을 방지할 수 있다. 이는 생성부(110) 및/또는 디지털 값 생성 장치(100)의 수율에 직접 영향이 있는 부분으로 종래 기술에 비해 중요한 개선이 된다.
생성부(110)가 이러한 방식으로 n 개의 디지털 값들(각각이 k 비트)을 생성하면, 도 1의 처리부(120)는 n 개의 디지털 값을 어떻게 이용하여 디지털 값 생성 장치(100)가 제공하는 최종 디지털 값 (이하에서는 이를 "제1 디지털 값"이라고도 한다)을 제공한다.
이러한 처리 과정에도 다양한 실시예가 있을 수 있으며, 도 3 내이 도 6은 실시예들 중 일부를 설명하기 위한 개념도이다.
도 3은 일실시예에 따른 처리부(120)의 동작을 설명하기 위한 개념도이다.
일실시예에 따르면, 처리부(120)의 판독부(121)는 각각의 PUF들을 판독하여 PUF 디지털 값 A1 내지 An을 읽는다.
도 2의 실시예에서, PUF1은 비아 홀 사이즈가 제일 작고 점점 더 비아 홀 사이즈들이 커지므로, A1은 '0'을 '1'보다 더 많이 포함하고, An은 '1'을 '0'보다 더 많이 포함할 수 있다. 도 3에서 예시적으로 도시된 바와 같이 A1을 포함하여 일부 디지털 값들은 모두 '0'만을 포함할 수도 있고, An을 포함하여 일부 디지털 값들은 모두 '1'만을 포함할 수도 있다.
일실시예에 따르면, 처리부(120)의 결정부(122)는 판독된 A1 내지 An 중 디지털 값 '0'과 '1'을 모두 포함하는 Ap 내지 Aq 중 어느 하나를 선택하여 이를 디지털 값 생성 장치(100)이 제공하는 제1 디지털 값으로 결정할 수 있다.
어떤 디지털 값을 선택할 것인지에 관해서도 다양한 실시예들이 존재한다.
일실시예에 따르면, 결정부(122)는 Ai 중 디지털 값 '0'과 '1'을 모두 포함하는 최초의 디지털 값 Ap를 상기 제1 디지털 값으로 결정할 수 있다.
다른 일실시예에 따르면, 결정부(122)는 Ai 중 디지털 값 '0'과 '1'을 모두 포함하는 마지막 디지털 값 Aq를 상기 제1 디지털 값으로 결정할 수도 있다.
또 다른 일실시예에 따르면, 결정부(122)는 Ai 중 디지털 값 '0'과 '1'을 모두 포함하는 Ap 내지 Aq 중 임의의 값을 상기 제1 디지털 값으로 결정할 수도 있다.
한편, 또 다른 일실시예에 따르면, 결정부(122)는 Ai 중 디지털 값 '0'과 '1'을 모두 포함하는 Ap 내지 Aq 중, 인덱스가 p와 q의 중앙인 Am을 상기 제1 디지털 값으로 결정할 수도 있다. Am이 디지털 값 '0'과 '1'의 분포가 비교적 균등할 것이라는 점에서 이러한 실시예는 합리적이다.
한편, 또 다른 일실시예에 따르면, 결정부(122)는 디지털 값 A1 내지 An 중 적어도 일부를 비트 별로(bit by bit) 논리 연산하여 상기 제1 디지털 값을 계산해 낼 수도 있다. 이 실시예는 제1 디지털 값의 랜덤성을 매우 높은 수준으로 만들 수 있어 보안 분야에 제1 디지털 값을 이용하기에 적합할 수 있다. 이 실시예에 포함되는 몇몇 예시적 방법들을 도 4 내지 도 5를 참조하여 상세히 설명한다.
도 4는 일실시예에 따른 처리부의 동작을 설명하기 위한 개념도이다.
도시된 바와 같이 A1 내지 An의 컬럼 인덱스가 같은 디지털 값들을 논리 연산하여 제1 디지털 값 B의 비트들을 계산할 수 있다.
디지털 값 Ai는 비트 시퀀스 ai1 내지 aik로 구성된다.
그러면, 결정부(122)는 컬럼 인덱스 j (j는 자연수)가 같은 a1j 내지 anj를 논리 연산하여 제1 디지털 값의 비트 bj를 계산할 수 있다. 논리 연산에는 다양한 예가 있을 수 있으나, 일실시예에 따르면 상기 논리 연산은 익스클러시브 오어(eXclusive OR: XOR) 연산일 수 있다. XOR 연산은 입력 값 a1j 내지 anj에 '1'이 홀수 개 포함되어 있으면 '1'을 출력하고, 입력 값 a1j 내지 anj에 '1'이 짝수 개 포함되어 있으면 '0'을 출력한다.
XOR 연산을 이용하는 실시예에 따르면, 복수 개의 디지털 값 A1 내지 An을 제1 디지털 값 B 계산에 사용하므로 복수 개의 디지털 값들의 엔트로피가 합쳐지는, 따라서 전체 엔트로피가 크게 향상되는 효과를 기대할 수 있다.
이러한 XOR 연산은 연산에 사용하는 n이 커질수록 비트 값이 '1'일 확률이 50%에 근접하게 만들기 때문에, 제1 디지털 값 B의 랜덤성을 크게 높인다. 본 실시예에서 결정부(122)가 계산한 k 비트의 제1 디지털 값 B (B=b1b2b3b4b5…bk)는 인터페이스(123)에 의해 출력되어 디지털 값 생성 장치(100)의 출력으로서 제공된다.
한편, 도 4의 실시예에서는 A1 내지 An 모두를 XOR 연산에 이용하였으나, 이는 일실시예에 불과하며 다른 많은 응용들이 가능하다. 이하에서는 몇 가지 다른 응용예들을 설명한다.
도 5는 일실시예에 따른 처리부의 동작을 설명하기 위한 개념도이다.
도시된 바와 같이, 일실시예에 따르면 결정부(122)는 판독된 A1 내지 An 중 비트 값이 모두 '0'이거나 모두 '1'인 디지털 값들을 제외하고, 비트 값이 '0' 및 '1'을 모두 포함하는 범위의 디지털 값들만을 상기 XOR 연산이 이용할 수 있다.
이를 테면, Ap 내지 Aq만을 비트 별로 XOR 연산하여 제1 디지털 값 B를 계산하는 방법이다. XOR 연산에 사용되는 입력 비트가 n 개였던 도 4의 실시예에 비해, XOR 연산에 사용되는 비트 수는 (q-p+1)개로 좀 작아졌지만, 논리 연산을 위한 회로가 줄어들 수 있고, 엔트로피가 높은 입력 값들을 미리 선별하여 이용하는 점은 또 다른 장점이 될 수 있다.
한편, 도 4 및 도 5의 실시예에서는 컬럼 인덱스 j가 동일한 비트 값들끼리 XOR 연산을 하였으나, 이 또한 하나의 예에 불과하며 XOR 연산을 하는 방법은 얼마든지 다른 형태로 변형될 수 있다. 따라서, 컬럼 인덱스 j가 동일한 비트 값들끼리 연산을 하는 외에, 미리 정해진 다른 선정 규칙에 의하거나 또는 무작위로 선정된 비트들끼리 연산을 하는 것도 가능하다.
이를테면, 다른 개별 PUF 비트시퀀스의 디지털 값이 모두 '0'이 아니고 모두 '1'이 아닌 것들 중, PUF 인덱스 i가 동일한 비트 값들끼리 XOR 연산을 하는 것도 가능하다.
나아가, 임의로 선정되는 개별 PUF 비트시퀀스를 이용하여 다른 어떠한 논리 연산을 수행하는 것도 가능하다. 이러한 다양한 변형 실시예는 이 명세서를 통해 당업자에게 자명하게 이해될 수 있는 것들이므로 더 구체적인 언급은 생략하기로 한다.
또한, 상기한 바와 같이 XOR 연산은 다른 논리 연산에 의해 대체될 수 있으며, 논리 연산의 입력을 어떻게 조합하는 지도 다른 실시예들이 가능하다.
도 6은 일실시예에 따라 디지털 값 생성 방법을 도시하는 흐름도이다.
도시된 흐름도는 도 3을 참조하여 설명한 실시예 중, PUF들이 생성한 디지털 값 Ai 중 디지털 값 '0'과 '1'을 모두 포함하는 최초의 디지털 값 Ap를 결정부(122)가 상기 제1 디지털 값 B로 선택하는 실시예에 대응한다.
최초의 인덱스 i는 0으로 설정되며, 단계(610)에서는 인덱스 i 값이 1씩 증가한다.
그리고, 단계(620)에서 현재 인덱스 i가 최종 인덱스 n과 동일한지의 여부를 테스트 한다. 단계(620)의 판단 결과, 아직 제1 디지털 값 B가 결정되지 못한 상태에서 i가 n과 동일해지면 에러를 리턴할 수도 있다(621).
그리고 단계(620)의 판단 결과, i가 n과 동일하지 않다면 단계(630)에서 현재 인덱스에 대응하는 디지털 값 Ai의 전체 비트들이 '0'인지 판단한다.
단계(630)에서 Ai의 전체 비트들이 '0'이라고 판단되면, 단계(610)으로 돌아가 다음 인덱스에 대해 동일한 과정을 수행하며, Ai의 전체 비트들이 '0'인 경우가 아니라고 판단되면 현재 인덱스 i에 대응하는 Ai를 제1 디지털 값 B로 결정한다(640). 도 3을 참조한 실시예와 비교하면, 단계(640)에서 B = Ap가 될 것이다.
도 7은 다른 일실시예에 따른 디지털 값 생성 방법을 도시하는 흐름도이다.
도시된 흐름도는 도 3을 참조하여 설명한 실시예 중, PUF들이 생성한 디지털 값 Ai 중 디지털 값 '0'과 '1'을 모두 포함하는 Ap 내지 Aq를 식별하고, 인덱스 p와 인덱스 q의 중앙 값인 인덱스 m에 대응하는 디지털 값 Am을 결정부(122)가 상기 제1 디지털 값 B로 선택하는 실시예에 대응한다.
최초의 인덱스 i는 0으로 설정되며, 단계(710)에서 인덱스 i 값이 1씩 증가한다.
단계(720)에서 i가 n과 동일하지 않은 경우, 단계(730)에서 Ai의 전체 비트들이 '1'인지가 판단된다. Ai의 전체 비트가 '1'이 아닌 경우에는, 단계(740)에서 Ai의 전체 비트가 '0'인지 판단된다. 이 단계(740)에서 Ai의 전체 비트가 '0'이면 단계(710)으로 돌아가 비트 인덱스를 증가시킨 후 이후 과정이 반복된다. 그러나 단계(740)에서 Ai의 전체 비트가 '0'이 아니라면 현재 인덱스 i를 p로 결정하고 단계(710)으로 돌아간다.
한편, 이러한 아이터레이션(iteration) 과정에서 단계(730)에서 Ai의 전체 비트가 '1'이면 q 값이 결정된다. q 값이 현재 인덱스 i로 결정될 수도 있고, 도시되지는 않았지만 현재 인덱스 보다 작은 (i-1)이 q로 결정될 수도 있다(단계 760). 또한, Ai의 전체 비트가 '1'인 비트 시퀀스를 찾지 못하고 단계(720)에서 i가 n과 동일해지면, 단계(760)에서 현재 인덱스인 n가 q로 결정될 수 있다.
그러면, 단계(770)에서 상기 p와 q의 중앙 값인 median(p, q)를 계산하여, 이 인덱스 median(p, q)에 대응하는 A median(p, q)를 제1 디지털 값 B로 결정할 수 있다.
도 8은 일실시예에 따른 디지털 값 생성 방법을 도시하는 흐름도이다.
단계(810)에서는 디지털 값 생성 장치(100)의 생성부(110)가 생성한 복수 개의 디지털 값들이 판독부(121)에 의해 판독된다. 상기 복수 개의 디지털 값들은 각각 도 1의 PUF들에 의해 생성된 것일 수 있다. 그리고, 상기한 판독 과정은 도 1 및 도 2를 참조하여 예시적으로 설명된 PUF들로부터 Ai 내지 An의 디지털 값을 판독하는 과정일 수 있다.
상기한 바와 같이, 이러한 과정에 의해 n 개의 디지털 값들(각각이 k 비트)이 결정부(122)에 전달될 수 있다. 물론, n 개의 PUF들이 생성한 값들 전부가 판독되어야만 하는 것은 아니고, n 개 중 일부의 디지털 값만 결정부(122)에 전달되는 것도 가능하다.
그러면, 단계(820)에서 결정부(122)가 판독된 디지털 값들을 이용하여 디지털 값 생성 장치(100)가 제공하는 난수인 제1 디지털 값을 결정한다.
일실시예에 따르면, 결정부(122)는 판독된 복수 개의 디지털 값들 A1 내지 An 중, 디지털 값 '0'과 '1'을 모두 포함하는 값들 Ap 내지 Aq를 식별한다. 그리고, Ap 내지 Aq 중 어느 하나를 선택하여 이를 제1 디지털 값 B로 결정할 수 있다. 상기 선택은 미리 결정된 규칙에 의한 것일 수 있으며, 무작위적인 선택일 수도 있다.
이 선택 과정에서 가능한 몇 가지 실시예들이 도 3을 참조하여 설명되었다.
일실시예에 따르면, 결정부(122)는 Ai 중 디지털 값 '0'과 '1'을 모두 포함하는 최초의 디지털 값 Ap를 상기 제1 디지털 값 B로 결정할 수 있다.
다른 일실시예에 따르면, 결정부(122)는 Ai 중 디지털 값 '0'과 '1'을 모두 포함하는 마지막 디지털 값 Aq를 상기 제1 디지털 값 B로 결정할 수도 있다.
또 다른 일실시예에 따르면, 결정부(122)는 Ai 중 디지털 값 '0'과 '1'을 모두 포함하는 Ap 내지 Aq 중 임의의 값을 상기 제1 디지털 값 B로 결정할 수도 있다.
한편, 또 다른 일실시예에 따르면, 결정부(122)는 Ai 중 디지털 값 '0'과 '1'을 모두 포함하는 Ap 내지 Aq 중, 인덱스가 p와 q의 중앙인 Am을 상기 제1 디지털 값 B로 결정할 수도 있다.
한편, 도 4 내지 도 5를 참조하여 설명한 바와 같이, 또 다른 일실시예에 따르면, 결정부(122)는 디지털 값 A1 내지 An 중 적어도 일부를 비트 별로(bit by bit) 논리 연산하여 상기 제1 디지털 값 B를 계산해 낼 수도 있다.
일실시예에 따르면, 결정부(122)는 컬럼 인덱스 j (j는 자연수)가 같은 a1j 내지 anj를 논리 연산, 이를테면 XOR 연산하여 제1 디지털 값 B에 포함되는 비트 값 bj를 계산할 수 있다. 자세한 내용은 도 4를 참조하여 상술한 바와 같다.
또한, 도 5를 참조하여 상술한 바와 같이, 다른 일실시예에 따르면 결정부(122)는 판독된 A1 내지 An 중 비트 값이 모두 '0'이거나 모두 '1'인 디지털 값들을 제외하고, 비트 값이 '0' 및 '1'을 모두 포함하는 범위의 디지털 값들 (Ap 내지 Aq)를 비트 별로 XOR 연산하여 제1 디지털 값 B를 계산할 수도 있다.
단계(820)에서 제1 디지털 값을 결정하는 과정은 도 3 내지 도 5를 참조하여 예시적으로 설명한 실시예들 외에도 다양한 변형이 가능하다. 또한, 논리 연산을 하는 경우, XOR 연산 외에도 디지털 값들의 엔트로피를 높일 수 있는 다른 어떤 연산도 가능함은 상기한 바와 같다.
이렇게 제1 디지털 값 B가 결정되면, 단계(830)에서 디지털 값 생성 장치(100)가 제공하는 난수로 B가 제공될 수 있다.
이러한 다양한 실시예들에 의해, 일부 파라미터를 적용한 PUF에서 랜덤한 디지털 값이 생성되지 않더라도 해당 PUF를 포함한 생성부(110) 칩 전체는 이용 가능하므로, PUF 제작 수율이 높아질 수 있다.
또한, 다양한 파라미터를 적용한 PUF들을 한 번에 구현하여 별도의 1차 패스를 진행하는 시간을 절약할 수도 있으므로, PUF 공정에 소요되는 시간을 최소화 할 수 있다.
또한, 최종적으로 제공되는 제1 디지털 값 B는 엔트로피가 굉장히 높아져 진정 난수로 취급될 수 있는 확률이 높아진다. 따라서, 보안 분야 등 랜덤성이 중요한 분야 응용에 PUF가 사용될 수 있는 신뢰도가 크게 향상될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (18)
- 반도체 공정 변이를 이용하여 디지털 값을 생성하는 장치에 있어서, 상기 장치는:
상기 반도체 공정 변이를 이용하여 복수 개의 디지털 값을 생성하는 생성부; 및
상기 복수 개의 디지털 값을 처리하여 제1 디지털 값을 제공하는 처리부
를 포함하고,
상기 생성부는 복수 개의 PUF (Physically Unclonable Function)를 포함하고, 상기 복수 개의 PUF 중 적어도 일부는 상기 공정 변이를 야기하는 적어도 하나의 파라미터가 서로 상이하게 적용되어 제조되며, 상기 복수 개의 PUF가 상기 복수 개의 디지털 값을 생성하는 장치. - 제1항에 있어서,
상기 복수 개의 PUF 중 적어도 하나는,
반도체의 전도성 레이어들 사이에 형성되는 적어도 하나의 비아(Via)를 포함하며, 상기 적어도 하나의 비아에 의해 상기 전도성 레이어들이 단락되는지의 여부를 이용하여 상기 복수 개의 디지털 값 중 적어도 하나를 생성하는 장치. - 제2항에 있어서,
상기 파라미터는 상기 비아의 사이즈를 포함하는 장치. - 제3항에 있어서,
상기 비아의 사이즈는 상기 장치를 생성하는 공정에 대해 선 진행한 테스트 공정에서 상기 전도성 레이어들 사이가 단락되기도 하고 단락되지 않기도 하는 것으로 확인된 비아 사이즈의 최소 값 이상 최대 값 이하의 범위에서 선택되고, 상기 복수 개의 PUF 각각에는 상기 범위 내에서 서로 다른 비아 사이즈가 적용되는 장치. - 제1항에 있어서,
상기 처리부는,
상기 복수 개의 디지털 값 중 미리 지정된 조건에 부합하는 값을 상기 제1 디지털 값으로 선택하는 장치. - 제5항에 있어서,
상기 미리 지정된 조건은, 비트 시퀀스가 '1' 및 '0'을 모두 포함하는 디지털 값을 제공하는 적어도 하나의 PUF 중, 상기 적용된 파라미터가 최소인 PUF 에 의해 생성되는 것인 장치. - 제5항에 있어서,
상기 미리 지정된 조건은, 비트 시퀀스가 '1' 및 '0'을 모두 포함하는 디지털 값을 제공하는 적어도 하나의 PUF 중, 상기 적용된 파라미터가 최소 값과 최대 값의 중앙 값인 PUF에 의해 생성되는 것인 장치. - 제1항에 있어서,
상기 처리부는,
상기 복수 개의 디지털 값을 비트 시퀀스 별로 논리 연산하여 상기 제1 디지털 값을 계산하는 장치. - 제8항에 있어서,
상기 논리 연산은 익스클러시브 오어(XOR) 논리 연산인 장치. - 반도체 공정 변이를 이용하여 디지털 값을 생성하는 장치가 디지털 값을 생성하는 방법에 있어서,
상기 공정 변이를 야기하는 적어도 하나의 파라미터가 서로 상이하게 적용되어 제조된 복수 개의 PUF가 복수 개의 디지털 값을 생성하는 단계; 및
처리부가 상기 복수 개의 디지털 값을 처리하여 제1 디지털 값을 제공하는 단계
를 포함하는 방법. - 제10항에 있어서,
상기 복수 개의 PUF 중 적어도 하나는 반도체의 전도성 레이어들 사이에 형성되는 적어도 하나의 비아(Via)를 포함하며,
상기 생성하는 단계는, 상기 적어도 하나의 비아에 의해 상기 전도성 레이어들이 단락되는지의 여부에 따라 상기 복수 개의 디지털 값 중 적어도 하나를 생성하는 방법. - 제11항에 있어서,
상기 파라미터는 상기 비아의 사이즈를 포함하는 방법. - 제12항에 있어서,
상기 비아의 사이즈는 상기 장치를 생성하는 공정에 대해 선 진행한 테스트 공정에서 상기 전도성 레이어들 사이가 단락되기도 하고 단락되지 않기도 하는 것으로 확인된 비아 사이즈의 최소 값 이상 최대 값 이하의 범위에서 선택되고, 상기 복수 개의 PUF 각각에는 상기 범위 내에서 서로 다른 비아 사이즈가 적용되는 방법. - 제10항에 있어서,
상기 처리하는 단계는, 상기 복수 개의 디지털 값 중 미리 지정된 조건에 부합하는 값을 상기 제1 디지털 값으로 선택하는 방법. - 제14항에 있어서,
상기 미리 지정된 조건은, 비트 시퀀스가 '1' 및 '0'을 모두 포함하는 디지털 값을 제공하는 적어도 하나의 PUF 중, 상기 적용된 파라미터가 최소인 PUF에 의해 생성되는 것인 방법. - 제14항에 있어서,
상기 미리 지정된 조건은, 비트 시퀀스가 '1' 및 '0'을 모두 포함하는 디지털 값을 제공하는 적어도 하나의 PUF 중, 상기 적용된 파라미터가 최소 값과 최대 값의 중앙 값인 PUF에 의해 생성되는 것인 방법. - 제10항에 있어서,
상기 처리하는 단계는, 상기 복수 개의 디지털 값을 비트 시퀀스 별로 논리 연산하여 상기 제1 디지털 값을 계산하는 방법. - 제17항에 있어서,
상기 논리 연산은 익스클러시브 오어(XOR) 논리 연산인 방법.
Priority Applications (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130168530A KR102186475B1 (ko) | 2013-12-31 | 2013-12-31 | 랜덤한 디지털 값을 생성하는 장치 및 방법 |
JP2016544520A JP2017505047A (ja) | 2013-12-31 | 2014-12-30 | ランダムなデジタル値を生成する装置及び方法 |
CN201480076522.8A CN106062771B (zh) | 2013-12-31 | 2014-12-30 | 随机数字值的生成装置以及方法 |
CN201910312845.7A CN110263587B (zh) | 2013-12-31 | 2014-12-30 | 随机数字值的生成装置以及方法 |
US15/109,327 US10122537B2 (en) | 2013-12-31 | 2014-12-30 | Apparatus and method for generating random digital value |
PCT/KR2014/013020 WO2015102359A1 (ko) | 2013-12-31 | 2014-12-30 | 랜덤한 디지털 값을 생성하는 장치 및 방법 |
EP14877400.3A EP3091471B1 (en) | 2013-12-31 | 2014-12-30 | Apparatus and method for generating random digital value |
TW103146415A TWI676131B (zh) | 2013-12-31 | 2014-12-31 | 產生隨機數值的裝置及方法 |
US16/150,422 US10771268B2 (en) | 2013-12-31 | 2018-10-03 | Apparatus and method for generating random digital value |
JP2019129919A JP6974398B2 (ja) | 2013-12-31 | 2019-07-12 | ランダムなデジタル値を生成する装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130168530A KR102186475B1 (ko) | 2013-12-31 | 2013-12-31 | 랜덤한 디지털 값을 생성하는 장치 및 방법 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200162674A Division KR20200141409A (ko) | 2020-11-27 | 2020-11-27 | 랜덤한 디지털 값을 생성하는 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150078801A true KR20150078801A (ko) | 2015-07-08 |
KR102186475B1 KR102186475B1 (ko) | 2020-12-03 |
Family
ID=53493642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130168530A KR102186475B1 (ko) | 2013-12-31 | 2013-12-31 | 랜덤한 디지털 값을 생성하는 장치 및 방법 |
Country Status (7)
Country | Link |
---|---|
US (2) | US10122537B2 (ko) |
EP (1) | EP3091471B1 (ko) |
JP (2) | JP2017505047A (ko) |
KR (1) | KR102186475B1 (ko) |
CN (2) | CN106062771B (ko) |
TW (1) | TWI676131B (ko) |
WO (1) | WO2015102359A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018199541A1 (ko) * | 2017-04-27 | 2018-11-01 | 김태욱 | 식별키 유용성 판별장치 |
US10235261B2 (en) | 2013-07-26 | 2019-03-19 | Ictk Holdings Co., Ltd. | Apparatus and method for testing randomness |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6445703B2 (ja) * | 2015-08-10 | 2018-12-26 | 国立研究開発法人産業技術総合研究所 | セキュリティ機能を有する回路を含む半導体デバイス |
JP6383384B2 (ja) * | 2016-06-24 | 2018-08-29 | ウィンボンド エレクトロニクス コーポレーション | 半導体装置、半導体装置の製造方法および固有情報の生成方法 |
CA3031291A1 (en) * | 2016-08-08 | 2018-02-15 | Silvio Micali | Counterfeit prevention |
JP6471130B2 (ja) * | 2016-09-20 | 2019-02-13 | ウィンボンド エレクトロニクス コーポレーション | 半導体装置およびセキュリティシステム |
CN107392057A (zh) * | 2016-12-30 | 2017-11-24 | 北京同方微电子有限公司 | 一种物理不可克隆电路结构 |
US11741332B2 (en) * | 2017-04-27 | 2023-08-29 | Silvio Micali | Securing cryptographic keys |
US11270184B2 (en) * | 2017-04-27 | 2022-03-08 | Silvio Micali | Counterfeit prevention |
CN107547200B (zh) * | 2017-05-04 | 2020-04-10 | 华邦电子股份有限公司 | 半导体装置、半导体装置制造方法及特有信息的产生方法 |
FR3069677A1 (fr) * | 2017-07-27 | 2019-02-01 | Stmicroelectronics (Crolles 2) Sas | Dispositif de generation d'un nombre aleatoire |
JP2019121884A (ja) | 2017-12-28 | 2019-07-22 | 三菱重工業株式会社 | 集積回路、制御装置、情報配信方法及び情報配信システム |
US11294640B2 (en) * | 2019-03-13 | 2022-04-05 | Ememory Technology Inc. | Random number generator |
KR20210102740A (ko) * | 2020-02-12 | 2021-08-20 | 삼성전자주식회사 | 물리적 복제 방지 기능에 기초하여 키를 생성하는 보안 장치 및 이의 동작 방법 |
US11239414B2 (en) | 2020-03-24 | 2022-02-01 | International Business Machines Corporation | Physical unclonable function for MRAM structures |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011198317A (ja) * | 2010-03-24 | 2011-10-06 | National Institute Of Advanced Industrial Science & Technology | 認証処理方法及び装置 |
KR101139630B1 (ko) * | 2010-12-09 | 2012-05-30 | 한양대학교 산학협력단 | 식별키 생성 장치 및 방법 |
US8525169B1 (en) * | 2012-08-10 | 2013-09-03 | International Business Machines Corporation | Reliable physical unclonable function for device authentication |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2738971B1 (fr) | 1995-09-19 | 1997-10-10 | Schlumberger Ind Sa | Procede de determination d'une cle de cryptage associee a un circuit integre |
JP3673015B2 (ja) | 1996-04-26 | 2005-07-20 | 沖電気工業株式会社 | 半導体装置における周辺デバイス識別方法 |
US5802592A (en) | 1996-05-31 | 1998-09-01 | International Business Machines Corporation | System and method for protecting integrity of alterable ROM using digital signatures |
US5990701A (en) | 1997-06-25 | 1999-11-23 | Sun Microsystems, Inc. | Method of broadly distributing termination for buses using switched terminators |
US6118279A (en) | 1997-07-30 | 2000-09-12 | Candescent Technologies Corporation | Magnetic detection of short circuit defects in plate structure |
US6555204B1 (en) | 2000-03-14 | 2003-04-29 | International Business Machines Corporation | Method of preventing bridging between polycrystalline micro-scale features |
JPWO2002050910A1 (ja) | 2000-12-01 | 2004-04-22 | 株式会社日立製作所 | 半導体集積回路装置の識別方法と半導体集積回路装置の製造方法及び半導体集積回路装置 |
US8315383B2 (en) * | 2001-07-27 | 2012-11-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for random bit-string generation utilizing environment sensors |
US7085386B2 (en) | 2001-12-07 | 2006-08-01 | Activcard | System and method for secure replacement of high level cryptographic keys in a personal security device |
CN101076775A (zh) * | 2004-10-15 | 2007-11-21 | 皇家飞利浦电子股份有限公司 | 具有真随机数发生器的集成电路 |
JP4524176B2 (ja) | 2004-12-17 | 2010-08-11 | パナソニック株式会社 | 電子デバイスの製造方法 |
KR101059005B1 (ko) | 2006-04-13 | 2011-08-23 | 엔엑스피 비 브이 | 반도체 장치, 그 식별자 생성 방법 및 그 식별 방법 |
EP2081170A1 (en) | 2006-11-06 | 2009-07-22 | Panasonic Corporation | Information security apparatus |
CN101498772B (zh) | 2008-01-29 | 2012-07-18 | 西门子(中国)有限公司 | 磁共振成像***中接收线圈的识别码电路 |
TWI498827B (zh) * | 2008-11-21 | 2015-09-01 | Verayo Inc | 非連網射頻辨識裝置物理不可複製功能之鑑認技術 |
EP2230794A3 (en) | 2009-03-16 | 2011-10-05 | Technische Universität München | Towards Electrical, Integrated Implementations of SIMPL Systems |
KR100926214B1 (ko) | 2009-04-23 | 2009-11-09 | 한양대학교 산학협력단 | 공정편차를 이용한 디지털 값 생성 장치 및 방법 |
US8370787B2 (en) * | 2009-08-25 | 2013-02-05 | Empire Technology Development Llc | Testing security of mapping functions |
US20110080715A1 (en) | 2009-10-07 | 2011-04-07 | Castles Technology Co., Ltd. | Protective structure of electronic component |
US8127151B2 (en) | 2009-10-13 | 2012-02-28 | Lockheed Martin Corporation | Hardware-based key generation and recovery |
US8458489B2 (en) | 2010-03-25 | 2013-06-04 | Empire Technology Development Llc | Differential uncloneable variability-based cryptography |
US8619979B2 (en) * | 2010-06-25 | 2013-12-31 | International Business Machines Corporation | Physically unclonable function implemented through threshold voltage comparison |
JP5333669B2 (ja) * | 2010-06-30 | 2013-11-06 | 富士通株式会社 | 個体別情報生成装置及び個体別情報生成方法 |
JP5474705B2 (ja) * | 2010-08-23 | 2014-04-16 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
ES2593302T3 (es) * | 2011-03-31 | 2016-12-07 | Ictk Co., Ltd. | Aparato y método para generar un valor digital |
WO2012133964A1 (ko) * | 2011-03-31 | 2012-10-04 | 한양대학교 산학협력단 | 디지털 값 생성 장치 및 방법 |
US9787670B2 (en) * | 2011-08-16 | 2017-10-10 | Ictk Co., Ltd | Apparatus and method for authentication between devices based on PUF over machine-to-machine communications |
US20130147511A1 (en) * | 2011-12-07 | 2013-06-13 | Patrick Koeberl | Offline Device Authentication and Anti-Counterfeiting Using Physically Unclonable Functions |
EP2615571A1 (en) * | 2012-01-16 | 2013-07-17 | Gemalto SA | Method of generating an identifier of an electronic device |
CN103448010B (zh) * | 2012-12-14 | 2015-08-12 | 上海欧唯斯工具制造有限公司 | 一种扭力扳手 |
US9083323B2 (en) * | 2013-02-11 | 2015-07-14 | Qualcomm Incorporated | Integrated circuit identification and dependability verification using ring oscillator based physical unclonable function and age detection circuitry |
-
2013
- 2013-12-31 KR KR1020130168530A patent/KR102186475B1/ko active IP Right Grant
-
2014
- 2014-12-30 JP JP2016544520A patent/JP2017505047A/ja active Pending
- 2014-12-30 EP EP14877400.3A patent/EP3091471B1/en active Active
- 2014-12-30 US US15/109,327 patent/US10122537B2/en active Active
- 2014-12-30 CN CN201480076522.8A patent/CN106062771B/zh active Active
- 2014-12-30 CN CN201910312845.7A patent/CN110263587B/zh active Active
- 2014-12-30 WO PCT/KR2014/013020 patent/WO2015102359A1/ko active Application Filing
- 2014-12-31 TW TW103146415A patent/TWI676131B/zh active
-
2018
- 2018-10-03 US US16/150,422 patent/US10771268B2/en active Active
-
2019
- 2019-07-12 JP JP2019129919A patent/JP6974398B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011198317A (ja) * | 2010-03-24 | 2011-10-06 | National Institute Of Advanced Industrial Science & Technology | 認証処理方法及び装置 |
KR101139630B1 (ko) * | 2010-12-09 | 2012-05-30 | 한양대학교 산학협력단 | 식별키 생성 장치 및 방법 |
US8525169B1 (en) * | 2012-08-10 | 2013-09-03 | International Business Machines Corporation | Reliable physical unclonable function for device authentication |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10235261B2 (en) | 2013-07-26 | 2019-03-19 | Ictk Holdings Co., Ltd. | Apparatus and method for testing randomness |
WO2018199541A1 (ko) * | 2017-04-27 | 2018-11-01 | 김태욱 | 식별키 유용성 판별장치 |
KR20180120465A (ko) * | 2017-04-27 | 2018-11-06 | 김태욱 | 식별키 유용성 판별장치 |
Also Published As
Publication number | Publication date |
---|---|
KR102186475B1 (ko) | 2020-12-03 |
JP6974398B2 (ja) | 2021-12-01 |
US20160330038A1 (en) | 2016-11-10 |
CN106062771B (zh) | 2019-05-17 |
JP2017505047A (ja) | 2017-02-09 |
EP3091471A4 (en) | 2017-01-18 |
TWI676131B (zh) | 2019-11-01 |
US10122537B2 (en) | 2018-11-06 |
EP3091471A1 (en) | 2016-11-09 |
CN110263587B (zh) | 2023-04-07 |
JP2019201418A (ja) | 2019-11-21 |
EP3091471B1 (en) | 2020-07-01 |
CN106062771A (zh) | 2016-10-26 |
WO2015102359A1 (ko) | 2015-07-09 |
US10771268B2 (en) | 2020-09-08 |
CN110263587A (zh) | 2019-09-20 |
US20190036714A1 (en) | 2019-01-31 |
TW201531937A (zh) | 2015-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6974398B2 (ja) | ランダムなデジタル値を生成する装置及び方法 | |
KR102198499B1 (ko) | 디지털 값 처리 장치 및 방법 | |
KR102178386B1 (ko) | 랜덤성 테스트 장치 및 방법 | |
Gao et al. | A highly flexible ring oscillator PUF | |
US10121011B2 (en) | Apparatus, method and article of manufacture for partially resisting hardware trojan induced data leakage in sequential logics | |
Chen et al. | Chip-level anti-reverse engineering using transformable interconnects | |
Anandakumar et al. | Design and analysis of FPGA-based PUFs with enhanced performance for hardware-oriented security | |
KR101457305B1 (ko) | 식별키 생성 장치 및 방법 | |
Nassar et al. | CaPUF: Cascaded PUF structure for machine learning resiliency | |
KR101541597B1 (ko) | 식별키 생성 장치 및 방법 | |
Singh et al. | Pa-puf: A novel priority arbiter puf | |
Hu et al. | Compact PUF design with systematic biases mitigation on Xilinx FPGAs | |
Choudhury et al. | Patron: A pragmatic approach for encoding laser fault injection resistant fsms | |
Yin et al. | Obtaining statistically random information from silicon physical unclonable functions | |
Rajendran | An overview of hardware intellectual property protection | |
KR102575638B1 (ko) | 진성 난수 발생기의 성능 개선 방법 | |
KR20200141409A (ko) | 랜덤한 디지털 값을 생성하는 장치 및 방법 | |
Yoshikawa et al. | Helper data aware cloning method for physical unclonable function | |
Douadi et al. | A study of high temperature effects on ring oscillator based physical unclonable functions | |
Yin et al. | A regression-based entropy distiller for ro pufs | |
Yin | A group-based ring oscillator physical unclonable function | |
Mrozek et al. | Analyses of two run march tests with address decimation for BIST procedure | |
Dubrova et al. | Remotely managed logic built-in self-test for secure M2M communications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |