KR102178386B1 - 랜덤성 테스트 장치 및 방법 - Google Patents

랜덤성 테스트 장치 및 방법 Download PDF

Info

Publication number
KR102178386B1
KR102178386B1 KR1020140095917A KR20140095917A KR102178386B1 KR 102178386 B1 KR102178386 B1 KR 102178386B1 KR 1020140095917 A KR1020140095917 A KR 1020140095917A KR 20140095917 A KR20140095917 A KR 20140095917A KR 102178386 B1 KR102178386 B1 KR 102178386B1
Authority
KR
South Korea
Prior art keywords
randomness
test
puf
based hardware
randomness test
Prior art date
Application number
KR1020140095917A
Other languages
English (en)
Other versions
KR20150013091A (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 KR20150013091A publication Critical patent/KR20150013091A/ko
Application granted granted Critical
Publication of KR102178386B1 publication Critical patent/KR102178386B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K23/00Pulse counters comprising counting chains; Frequency dividers comprising counting chains
    • H03K23/004Counters counting in a non-natural counting order, e.g. random counters
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Abstract

랜덤성 테스트 장치가 개시된다. 일 실시 예에 의한 랜덤성 테스트 장치는, PUF(Physically Unclonable Function) 기반 하드웨어에 대하여 랜덤성 테스트를 수행하는 랜덤성 테스트 모듈 및 상기 랜덤성 테스트 수행 결과에 기초하여 상기 PUF 기반 하드웨어의 불량 여부를 결정하는 처리 장치를 포함한다.

Description

랜덤성 테스트 장치 및 방법{APPARATUS AND METHOD FOR TESTING RANDOMNESS}
본 개시는 랜덤성 테스트 장치 및 방법에 관련된 것으로, 더욱 상세하게는 PUF(Physical Unclonable Function) 기반 하드웨어가 가지는 랜덤성을 테스트하는 랜덤성 테스트 장치 및 방법에 관련된 것이다.
정보화 사회가 고도화 됨에 따라 개인 프라이버시 보호의 필요성도 높아지고 있으며, 이와 함께 정보를 암호화 및 복호화하여 안전하게 전송하는 보안 시스템을 구축하는 기술이 반드시 필요한 중요 기술로 자리잡고 있다.
고도화된 정보화 사회에서는 다양한 기기들이 전자화됨에 따라 고성능의 컴퓨터 형태를 벗어난 임베디드 시스템(Embedded System)이나 SoC(System on Chip) 형태의 컴퓨팅 디바이스도 사용이 급속하게 늘어나고 있다. 예를 들면, RFID(Radio-Frequency IDentification), 스마트 카드(Smart Card), USIM(Universal Subscriber Identity Module), OTP(One Time Password) 등의 컴퓨팅 디바이스가 광범위하게 활용되고 있다.
이러한 컴퓨팅 디바이스의 안전한 사용을 위해서는 보안 시스템 구축이 필수적으로 요구되며, 보안 시스템을 통해 암호화 및 복호화 알고리즘을 이용하여 중요 정보를 보호하거나 식별 및 인증 기능을 이용하여 접근권한을 부여하는 등의 보안 기능을 수행할 수 있다. 이러한 보안 기능을 수행하는 과정에서는 암호키(Cryptographic-key)나 고유의 아이디가 사용되는 데, 이는 보안 시스템의 필수 요소이며, 이하에서는 암호키(Cryptographic-key)나 고유의 아이디를 식별키로 언급한다. 이러한 식별키를 생성하는 방법으로는 외부에서 암호학적으로 안전한 PRN(Pseudo Random Number)를 외부에서 생성하여 플래시 메모리(Flash Memory)나 이이피롬(EEPROM, Electrically Erasable Programmable Read-Only Memory, EEPROM) 등의 비휘발성 메모리에 저장하는 방법이 주로 사용되고 있다.
최근에는 컴퓨팅 디바이스에 저장된 식별키에 대하여, 부채널 공격(side channel attack), 역공학(reverse engineering) 공격 등의 다양한 공격이 이루어지고 있는 추세이다. 이런 공격에 대하여 안전하게 식별키를 생성 및 저장할 수 있는 방법 중 하나로 PUF(Physical Unclonable Function) 기술이 개발되고 있다.
PUF(Physically Unclonable Function)는 전자시스템에 존재하는 미세한 물리적 특성 차이를 이용하여 식별키를 생성하고, 변하지 않도록 유지 또는 저장하기 위한 기술로서 하드웨어 핑거프린트(hardware fingerprint)라고도 한다.
PUF를 식별키로 사용하기 위한 한 가지 필요조건으로, 생성된 식별키의 랜덤성이 충분히 확보되어야 한다. 랜덤성이 충분히 확보된 PUF 기반 하드웨어는 양품으로 판정될 수 있으나, 랜덤성이 낮은 PUF 기반 하드웨어는 PUF 값의 낮은 랜덤성으로 인하여 PUF 기반 식별키가 추측될 수 있으므로 불량품으로 판정되어야 한다. 하지만, 종래에는 이와 같은 판정 방법에 대하여 개시된 바가 없으며, PUF 기반 하드웨어가 충분한 랜덤성을 가지는지 여부를 판단할 수 있는 랜덤성 테스트 장치 및 방법의 개발이 요청된다. 또한, 랜덤성 검증을 위해서는 많은 비트의 데이터가 필요한데 PUF 기반 하드웨어는 한정적인 데이터만 생성하는 문제점이 있다.
한편, 반도체 공정상에서 만들어진 모든 회로는 결함(defect)에 의하여 불량품이 발생할 수 있기 때문에, 양품인지 불량인지를 판단하는 테스팅 과정이 요구된다. 다만, PUF 기반 하드웨어는 랜덤값을 생성하므로, 기존의 테스팅 과정으로는 PUF 기반 하드웨어의 불량여부를 판단할 수 없다.
즉, PUF 기반 하드웨어에 대하여 불량 여부와 랜덤성을 테스팅하는 방법의 개발이 요청되는 실정이다.
본 개시는 상술한 개발 요청에 응답하여 안출된 것으로, 본 개시는 PUF 기반 하드웨어의 불량 여부와 PUF 기반 하드웨어가 가지는 랜덤성을 테스트하는 랜덤성 테스트 장치 및 방법을 제공한다.
일 실시 예에 의한 랜덤성 테스트 장치는, PUF(Physically Unclonable Function) 기반 하드웨어에 대하여 랜덤성 테스트를 수행하는 랜덤성 테스트 모듈 및 상기 랜덤성 테스트 수행 결과에 기초하여 상기 PUF 기반 하드웨어의 불량 여부를 결정하는 처리 장치를 포함할 수 있다.
상기 랜덤성 테스트 모듈이 수행하는 테스트 방법은 모노 테스트(mono test)일 수 있다.
이 경우, 상기 테스트 모듈은 상기 PUF 기반 하드웨어가 출력하는 값에 대하여 1과 0의 균등성을 테스트한다.
균등성을 테스트하기 위한 방법으로, 상기 PUF 기반 하드웨어로부터 N 비트의 출력값을 입력 받아 그 중 1인 비트의 개수 또는 0인 비트의 개수를 카운팅하고, 그 값이 N 값에 따라 미리 지정된 제 1 범위를 만족시킬 경우 상기 PUF 기반 하드웨어가 양품인 것으로 판단하는 방법이 사용될 수 있다.
상기 랜덤성 테스트 모듈이 수행하는 테스트 방법은 포커 테스트(poker test)일 수 있다.
이 경우, 상기 테스트 모듈은 상기 PUF 기반 하드웨어가 출력하는 값의 패턴에 대하여 균등성을 테스트한다.
패턴의 균등성을 테스트하기 위한 방법으로, 상기 PUF 기반 하드웨어로부터 받은 N 비트의 출력값을 4비트씩 분리하였을 때, 4 비트가 가질 수 있는 값인 0 내지 15에 대하여 각각의 빈도를 카운팅한 결과가 N에 따라 미리 지정된 제 2 범위를 만족시킬 경우 상기 PUF 기반 하드웨어가 양품인 것으로 판단하는 방법이 사용될 수 있다.
상기 랜덤성 테스트 모듈이 수행하는 테스트 방법은 런 테스트(run test)일 수 있다.
여기서 런(run)은 동일한 값으로 연속된 비트 시퀀스를 의미하며, 연속 시퀀스로 명명될 수 있다.
이 경우, 상기 테스트 모듈은 상기 PUF 기반 하드웨어가 출력하는 값의 연속 시퀀스의 개수가 적절한지에 대한 테스트를 수행한다.
연속 시퀀스의 개수의 적절성을 테스트하기 위한 방법으로, 상기 PUF 기반 하드웨어로부터 받은 N 비트의 출력값을 1 비트씩 연속으로 관찰하였을 때 그 값이 변화하는 빈도가 N에 따라 미리 지정된 제 3 범위를 만족시킬 경우 상기 PUF 기반 하드웨어가 양품인 것으로 판단하는 방법이 사용될 수 있다.
상기 랜덤성 테스트 모듈이 수행하는 테스트 방법은 롱-런 테스트(long run test)일 수 있다.
이 경우, 상기 테스트 모듈은 상기 PUF 기반 하드웨어가 출력하는 값 중 너무 긴 런인 롱 런(long-run)이 존재하지 않는지에 대한 테스트를 수행한다.
롱 런의 존재여부를 테스트하기 위한 방법으로, 상기 PUF 기반 하드웨어로부터 받은 N 비트의 출력값을 1 비트씩 연속으로 관찰하였을 때 동일한 값으로 연속되는 비트의 길이를 카운트하다가 그 길이 값이 N에 따라 미리 지정된 제 4 범위를 벗어나는 경우가 발생하면 상기 PUF 기반 하드웨어가 불량인 것으로 판단하는 방법이 사용될 수 있다.
이상과 같은 테스트 방법들은 테스트 모듈이 수행할 수 있는 테스트 방법의 예시로 상기 PUF 기반 하드웨어가 출력한 값에 대한 랜덤성을 테스트하기 위하여 상기 테스트 방법 중 일부가 다른 방식이 랜덤 테스트로 변경되거나 추가로 더 포함될 수 있다.
다른 실시 예에 의한 랜덤성 테스트 방법은, PUF(Physically Unclonable Function) 기반 하드웨어에 대하여 랜덤성 테스트를 수행하는 단계 및 상기 랜덤성 테스트 수행 결과에 기초하여 상기 PUF 기반 하드웨어의 불량 여부를 결정하는 단계를 포함할 수 있다.
또 다른 실시 예에 의한 랜덤성 테스트 방법은, 제 1 출력값 또는 제 2 출력값을 출력하는 PUF(Physically Unclonable Function) 기반 하드웨어로부터, 상기 제 1 출력값 및 상기 제 2 출력값 중 적어도 하나로 구성되는 비트 시퀀스를 입력받는 단계, 상기 비트 시퀀스에 대하여 랜덤성 테스트를 수행하는 단계 및 상기 랜덤성 테스트 수행 결과에 기초하여 상기 PUF 기반 하드웨어의 불량 여부를 결정하는 단계를 포함할 수 있다.
또 다른 실시 예는, 상술한 랜덤성 테스트 방법을 수록한 컴퓨터 판독 가능 기록 매체일 수 있다.
본 개시의 다양한 실시 예들에 의하여, PUF 기반 하드웨어의 랜덤성을 테스트할 수 있는 랜덤성 테스트 장치 및 방법이 제공된다. 특히, 다양한 실시 예들은 통계적 방법에 기초하여 랜덤성 테스트를 수행함으로써, PUF 기반 하드웨어의 출력값이 외부로 노출되지 않아 보안성이 증대될 수 있다.
뿐만 아니라, PUF 기반 하드웨어의 출력값에 대하여 간단한 통계적 방법의 랜덤성 테스트를 수행함에 따라서, 랜덤성 테스트 장치가 작은 연산량을 요구하는 장치로 구현될 수 있어, 비용적인 측면의 효과도 창출될 수 있다.
아울러, PUF 기반 하드웨어는 랜덤 디지털 값을 출력하기 때문에, 불량 여부를 기존의 방식으로 테스팅을 수행할 수 없었다. 또한, PUF 기반 하드웨어가 비록 양품으로 판정되더라도 랜덤성이 검증이 되지 않으면 암호시스템의 키 값으로 사용할 수 없다. 본 개시의 실시 예에 의하여, 랜덤성 검증 방법이 제작 시의 불량여부를 판단하는 방법으로 흡수될 수 있다. 즉, 하나의 랜덤성 테스트로 두 테스트의 효과가 창출될 수 있다. 특히, 종래의 테스팅 방법에 의하여 불량 여부를 판단할 수 없었던 PUF 기반 하드웨어에 대하여, 불량 여부를 판단할 수 있는 효과 또한 창출될 수 있다.
도 1은 식별키 생성 장치를 도시한다.
도 2는 식별키 생성부의 구성을 설명하기 위한 개념도이다.
도 3은 본 발명의 일실시예에 따른 식별키 생성부(110)가 식별키를 생성하기 위해 반도체 레이어에 형성된 비아 또는 콘택 어레이의 예시적 구조를 도시하는 개념도이다.
도 4a 내지 4c는 다양한 실시 예들에 의한 랜덤성 테스트 장치를 설명하기 위한 블록도들이다.
도 5는 일 실시 예에 의한 랜덤성 테스트 모듈의 블록도이다.
도 6은 일 실시 예에 의한 랜덤성 테스트 방법의 흐름도이다.
도 7은 일 실시 예에 의한 모노 테스트의 흐름도이다.
도 8은 일 실시 예에 의한 포커 테스트의 흐름도이다.
도 9는 일 실시 예에 의한 런 테스트의 흐름도이다.
도 10은 일 실시 예에 의한 롱-런 테스트의 흐름도이다.
도 11은 일 실시 예에 의한 랜덤 테스트 모듈의 블록도이다.
이하에서, 본 발명의 일부 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
우선, 도 1 내지 도 3에서는 PUF 기반 하드웨어에 대하여 설명하도록 하며, 이후에 PUF 기반 하드웨어에 대한 랜덤성 테스트의 장치 및 방법에 대하여 기술하도록 한다.
도 1은 식별키 생성 장치(100)를 도시한다.
식별키 생성부(110)는, 반도체 공정을 이용하여 시간에 따라 변하지 않는 식별키를 생성하며, 생성된 식별키는 무작위적(random)이지만, 시간이 지나더라도 변하지는 않는다.
식별키 생성부(110)가 생성한 식별키는 이를 테면, N 비트(단 N은 자연수)의 디지털 값일 수 있다.
생성되는 식별키의 신뢰성에 있어서 가장 중요한 요소는, 생성된 식별키의 랜덤성 (또는, '무작위성'이라고도 할 수 있음) 과 시간에 따라 값이 변하지 않는 불변성이다.
식별키 생성부(110)는 반도체 제조 공정 상 생성되는 노드(node) 간의 단락(short) 여부가 랜덤성을 갖도록 구성되며, 또한 노드 간의 단락 여부는 시간에 따라 또는 사용 환경에 따라 변하지 않으므로 한 번 생성된 식별키는 변하지 않는다.
식별키 생성부(110)는 반도체 제조 공정 상 생성되는 전도성 레이어들(conductive layers) 사이에 형성되는 콘택 또는 비아(via)에 의해 전도성 레이어들의 단락 여부에 따라 식별키를 생성한다.
콘택 또는 비아는 전도성 레이어들 사이를 연결하도록 설계되는 것이어서, 통상적으로 콘택 또는 비아 사이즈는 전도성 레이어들 사이를 단락시키도록 결정된다. 그리고 통상적인 디자인 룰(rule)에서는 전도성 레이어들 사이를 단락시키는 것이 보장되도록 최소한의 콘택 또는 비아 사이즈가 정해져 있다.
그러나, 본 발명의 일실시예에 따른 식별키 생성부(110)의 구현에 있어서는, 콘택 또는 비아의 사이즈를 디자인 룰에서 정해진 것보다 의도적으로 작게 하여, 일부의 콘택 또는 비아는 전도성 레이어들 사이를 단락시키고, 다른 일부의 콘택 또는 비아는 전도성 레이어들 사이를 단락시키지 못하게 되며, 이러한 단락 여부는 확률적으로 결정된다.
기존의 반도체 공정에서는 콘택 또는 비아가 전도성 레이어들 사이를 단락시키지 못하면 공정 상 실패한 것이 되나, 이를 랜덤성을 갖는 식별키 생성에 이용하는 것이다.
상기 실시예에 따른 콘택 또는 비아의 사이즈 설정은 보다 상세히 후술한다.
한편, 본 발명의 다른 일실시예에 따르면, 식별키 생성부(110)는 반도체 제조 공정 상에서 전도성 라인들 간의 간격 (spacing)을 디자인 룰보다 의도적으로 작게 결정하여, 전도성 라인들 사이의 단락 여부가 확률적으로 결정되도록 하여, 랜덤성을 갖는 식별키를 생성한다.
이러한 실시예 또한, 종래의 반도체 제조 공정에서, 전도성 라인들 사이의 오픈을 보장하는 디자인 룰, 즉, 일정 수준 이상의 간격을 의도적으로 벗어나서, 무작위의 식별키를 생성하는 것이다.
식별키 생성부(110)는 상기한 실시예들에 따라 생성된 식별키를 전기적으로 생성한다. 전도성 레이어 사이를 콘택 또는 비아가 단락시키고 있는지, 또는 전도성 라인들 사이가 단락되고 있는지는, 리드 트랜지스터(read transistor)를 이용하여 식별할 수 있다.
한편, 상기한 콘택 또는 비아의 사이즈 조정을 이용하는 실시예에서, 콘택 또는 비아의 사이즈를 조정하여 전도성 레이어들 사이를 단락하는 콘택 또는 비아와 그렇지 못한 비아의 비율이 가급적 1/2로 동일한 확률을 가지도록 조정한다고 해도, 단락이 되는 경우(이를 테면 디지털 값 0)와 그렇지 않은 경우(이를 테면 디지털 값 1)의 비율이 확률적으로 완전히 동일한 것이 보장되지 않을 수도 있다.
즉, 콘택 또는 비아의 사이즈가 디자인 룰에서 정해진 값으로 커질수록 단락이 되는 확률이 커지고, 반대로 작아질수록 단락이 되지 않는 확률이 커지는데, 단락되는 경우와 단락되지 않는 경우의 확률, 어느 한 쪽이 커지게 되면, 생성된 식별키의 랜덤성이 저하된다.
이러한 문제는 상기한 전도성 라인 사이의 간격(spacing)을 조정하는 실시예에서도 마찬가지이다.
따라서 본 발명의 일실시예에 따르면, 식별키 생성 장치(100)는 식별키 생성부(110)가 생성한 식별키를 처리하여, 랜덤성이 보장되도록 하는 식별키 처리 장치(130)를 더 포함한다. 참고로, 본 명세서에서는 '식별키 처리 장치'라는 용어를 사용하지만, 이는 생성된 식별키를 별도의 기법이나 알고리즘을 통해 가공하는 것으로 한정되어 해석되어서는 안 되며, 생성된 식별키의 랜덤성을 보장하기 위해 0과 1 사이의 밸런싱(balancing)을 수행하는 일련의 구성을 의미하는 것으로 이해되어야 한다.
도 2는 식별키 생성부의 구성을 설명하기 위한 개념도이다.
반도체 제조 공정에서 메탈 1 레이어(202)와 메탈 2 레이어(201) 사이에 비아들이 형성된 모습의 도시되었다.
비아 사이즈를 디자인 룰에 따라 충분히 크게 한 그룹(210)에서는 모든 비아가 메탈 1 레이어(202)와 메탈 2 레이어(201)을 단락시키고 있으며, 단락 여부를 디지털 값으로 표현하면 모두 0이 된다.
한편, 비아 사이즈를 너무 작게 한 그룹(230)에서는 모든 비아가 메탈 1 레이어(202)와 메탈 2 레이어(201)을 단락시키지 못하고 있다. 따라서 단락 여부를 디지털 값으로 표현하면 모두 1이 된다.
그리고, 비아 사이즈를 그룹(210)과 그룹(230) 사이로 한 그룹(220)에서는, 일부의 비아는 메탈 1 레이어(202)와 메탈 2 레이어(201)을 단락시키고, 다른 일부의 비아는 메탈 1 레이어(202)와 메탈 2 레이어(201)을 단락시키지 못하고 있다.
본 발명의 일실시예에 따른 식별키 생성부(110)는, 그룹(220)와 같이, 일부의 비아는 메탈 1 레이어(202)와 메탈 2 레이어(201)을 단락시키고, 다른 일부의 비아는 메탈 1 레이어(202)와 메탈 2 레이어(201)을 단락시키지 못하도록 비아 사이즈를 설정하여 구성된다.
비아 사이즈에 대한 디자인 룰은 반도체 제조 공정에 따라 상이한데, 이를테면 0.18 마이크로미터 공정의 CMOS(Complementary metal oxide semiconductor) 공정에서 비아의 디자인 룰이 0.25 미크론으로 설정된다고 하면, 상기 본 발명의 일실시예에 따른 식별키 생성부(110)에서 비아 사이즈를 0.19 미크론으로 설정하여, 메탈 레이어들 사이의 단락 여부가 확률적으로 분포하도록 한다.
이러한 단락 여부의 확률 분포는 50%의 단락 확률을 갖도록 하는 것이 이상적이며, 본 발명의 일실시예에 따른 식별키 생성부(110)는 상기 확률 분포가 최대한 50%에 가깝게 비아 사이즈를 설정하여 구성된다. 이러한 비아 사이즈 설정에서는 공정에 따른 실험에 의하여 비아 사이즈를 결정할 수 있다.
도 3은 본 발명의 일실시예에 따른 식별키 생성부(110)가 식별키를 생성하기 위해 반도체 레이어에 형성된 비아 또는 콘택 어레이의 예시적 구조를 도시하는 개념도이다.
반도체 기판(substrate)에 적층된 메탈 레이어 사이에 가로 M개, 세로 N 개(단, M 및 N은 자연수), 총 M*N 개의 비아가 형성된 모습이 도시되었다.
식별키 생성부(110)는 M*N 개의 비아들 각각이 메탈 레이어들 사이를 단락시키는지(디지털 값 0) 또는 단락시키지 못하는지(디지털 값 1)의 여부에 따라, M*N 비트(bit)의 식별키를 생성한다.
그리고, 이렇게 생성된 M*N 비트의 식별키는 식별키 독출부(120)에 의해 독출된다.
한편, 상술한 PUF 기반의 하드웨어에 있어서 고도의 랜덤성이 요구된다. 이상적으로는 0의 값이 출력될 확률과 1의 값이 출력될 확률이 1/2로 동일하도록 하는 랜덤성이 요구된다. 즉, 상술한 M*N 비트에 있어서 0의 값이 M*N/2 개이며, 1의 값이 M*N/2 개가 되는 고도의 랜덤성을 가질수록 양호한 PUF 기반 하드웨어로 분류될 수 있다.
이에 따라, 하기에서는 기 제작된 PUF 기반의 하드웨어에 대하여 랜덤성 테스트를 수행할 수 있는 랜덤성 테스트 장치 및 방법이 제공된다. 한편, 상술한 비아에 기초하는 PUF 기반 하드웨어는 단순히 예시적인 것으로, PUF의 종류에는 제한이 없다. 예를 들어, 실시 예에 의한 랜덤성 테스트는 출원된 10-2010-0125633, 10-2011-0013269, 10-2011-0029429, 10-2012-0033362, 10-2009-0035416, 10-2012-0089227, 10-2011-0077271, 10-2009-0096085, 10-2010-0039857, 10-2007-0122914, 10-2012-0091197, 10-2013-0129262, 10-2013-0029616, 10-2013-0043954, 10-2013-0101893, 10-2013-0168530, 10-2013-0168558, 10-2013-0088696, 10-2013-0103939, 2011-0029430, 10-2013-0105385, 10-2013-0105470, 10-2013-0107217, 10-2013-0107304, 10-2013-0116424, 10-2013-0120297, 10-2013-0120141, 10-2013-0120043, 10-2014-0042360, 10-2014-0042362, 10-2014-0046021에 따른 PUF 기반 하드웨어에 대하여서도 테스트를 수행할 수 있음은 자명하다.
한편, 상술한 바와 같이, PUF 기반 하드웨어는 랜덤한 출력값을 출력하기 때문에, 기존의 테스팅 방법으로 불량 테스트를 수행할 수 없다. 또한, PUF 기반 하드웨어는 랜덤성이 소정의 수준으로 획득되어야 하기 때문에, 출력값이 랜덤한지 여부를 파악할 수 있는 방법 또한 요구된다. 이하에서는, 랜덤성 테스트를 통하여, PUF 기반 하드웨어의 불량 테스트와 랜덤성을 동시에 테스팅하는 방법에 대하여 더욱 상세하게 설명하도록 한다.
도 4a 내지 4c는 다양한 실시 예들에 의한 랜덤성 테스트 장치를 설명하기 위한 블록도들이다.
우선, 도 4a를 참조하면 랜덤성 테스트 장치(400)는 PUF 생성부(410) 및 랜덤성 테스트 모듈(420)을 포함할 수 있다.
PUF 생성부(410)는 PUF 기반 하드웨어로부터의 출력값을 생성할 수 있다. 예를 들어, PUF 생성부(410)는 제 1 출력값(예를 들어, 1의 값) 또는 제 2 출력값(예를 들어, 0의 값)을 출력할 수 있다. 여기에서, 제 1 출력값을 1의 값으로 설명하였지만, 제 1 출력값이 0이고 제 2 출력값이 1인 경우도 상정할 수 있다. PUF 생성부(410)는, 예를 들어 N개(N은 자연수)의 출력값을 생성할 수 있다. 출력값은 0의 값 및 1의 값 중 적어도 하나로 구성될 수 있으며, 이에 따라 출력값을 비트 시퀀스로 명명될 수도 있다. 비트 시퀀스는, 예를 들어 1비트 단위 또는 4비트 단위로 관리될 수 있으며, 이에 대하여서는 더욱 상세하게 후술하도록 한다. 여기에서, 1비트 단위 또는 4비트 단위로 관리된다는 것은, 랜덤성 테스트 모듈(420)이 1비트 단위 또는 4비트 단위로 비트 시퀀스를 수신할 수 있음을 의미할 수 있다. 또는, 1비트 단위 또는 4비트 단위로 관리된다는 것은, 랜덤성 테스트 모듈(420)이 임의의 비트 단위로 비트 시퀀스를 수신하고, 1비트 또는 4비트 단위로 랜덤성 테스트를 수행함을 의미할 수 있다. 즉, 랜덤성 테스트 모듈(420)은 수신된 비트 시퀀스의 크기와 관계 없이, 랜덤성 테스트를 1비트 또는 4비트의 단위로 수행할 수 있다. 이 경우, 예를 들어 랜덤성 테스트 모듈(420)은 대상 비트를 모두 수신한 후, 랜덤성 테스트를 1비트 또는 4비트의 단위로 수행할 수도 있다.
PUF 생성부(410)는 PUF 기반 하드웨어로 구현될 수 있다. PUF 생성부(410)가 PUF 기반 하드웨어로 구현되는 경우에는, PUF 생성부(410)는 랜덤성 테스트 장치(400)에 필수적으로 구비되는 것은 아닐 수도 있으며, 테스트 시 입출이 가능하도록 구현될 수 있다. 또는, PUF 생성부(410)는 랜덤성 테스트 장치(400)와 일체형으로 구현될 수도 있다.
또 다른 실시 예에서, PUF 생성부(410)는 PUF 기반 하드웨어로부터 출력값, 즉 비트 시퀀스를 수신하는 인터페이스로 구현될 수도 있다. PUF 생성부(410)가 인터페이스로 구현되는 경우에는, PUF 생성부(410)는 외부의 PUF 기반 하드웨어와 연결되어, PUF 기반 하드웨어로부터 출력값을 수신하여 랜덤성 테스트 모듈(420)로 출력할 수 있다. 이 경우, PUF 생성부(410)는 단순히 테스트 결과만을 출력함으로써, PUF 기반 하드웨어로부터의 출력값이 노출되지 않도록 할 수 있다.
랜덤성 테스트 모듈(420)은 PUF 기반 하드웨어에 대하여 랜덤성 테스트를 수행할 수 있다. 랜덤성 테스트 모듈(420)은 PUF 생성부(410)로부터 PUF 기반 하드웨어로부터의 출력값, 예를 들어 비트 시퀀스를 수신할 수 있다. 랜덤성 테스트 모듈(420)은 수신된 PUF 기반 하드웨어로부터의 출력값에 대한 랜덤성 테스트를 수행할 수 있다. 예를 들어, 랜덤성 테스트 모듈(420)은 비트 시퀀스 내에 0과 1의 분포가 랜덤성을 가지는 지를 테스트할 수 있다.
랜덤성 테스트 모듈(420)은 출력값, 즉 비트 시퀀스를 이용하여 모노 테스트(mono test), 포커 테스트(poker test), 런 테스트(run test) 및 롱-런 테스트(long-run test) 중 적어도 하나를 수행할 수 있다. 각각의 랜덤성 테스트에 대하여서는 더욱 상세하게 후술하도록 한다.
처리 장치(미도시)는 랜덤성 테스트 결과에 기초하여 PUF 기반 하드웨어의 불량 여부를 결정할 수 있다. 처리 장치(미도시)는 PUF 기반 하드웨어의 랜덤성이 기설정된 수준 이상인 경우에는, PUF 기반 하드웨어가 양품인 것으로 판단할 수 있다. 예를 들어, 랜덤성 테스트 모듈(420)이 모노 테스트를 수행하면, 처리 장치(미도시)는 1의 값이 개수가 기설정된 범위 내인 경우에는 PUF 기반 하드웨어가 양품인 것으로 판단할 수 있다. 처리 장치(미도시)는 1의 값의 개수가 기설정된 범위 밖인 경우에는 PUF 기반 하드웨어가 불량인 것으로 판단할 수 있다. 처리 장치(미도시)는 상술한 4가지의 랜덤성 테스트 중 적어도 하나의 결과에 기초하여 PUF 기반 하드웨어의 불량 여부를 판단할 수 있다. 처리 장치(미도시)는 상술한 다양한 랜덤성 테스트에 대하여 가중치를 부여하여 불량 여부를 판단할 수도 있다.
처리 장치(미도시)는 랜덤성 테스트 장치(400)의 외부에 배치될 수도 있으며, 또는 랜덤성 테스트 모듈(420)과 하나의 하드웨어로 결합되어 구현될 수도 있다.
도 4b는 다른 실시 예에 의한 랜덤성 테스트 장치의 블록도이다. 도 4b에 의한 실시 예는, 도 4a에 의한 실시 예와 비교하여 보정 회로(415)를 더 포함할 수 있다. 보정 회로(415)는 PUF 생성부(410)로부터의 출력값에 보정을 수행하여 랜덤성 테스트 모듈(420)로 전달할 수 있다.
도 4c는 또 다른 실시 예에 의한 랜덤성 테스트 장치의 블록도이다. 도 4c에 의한 실시 예에서는 랜덤성 테스트 모듈(420)이 PUF 생성부(410)와는 물리적으로 분리되어 구현될 수도 있다는 점을 명확히 한 것이다.
도 5는 일 실시 예에 의한 랜덤성 테스트 모듈의 블록도이다.
도 5에 도시된 바와 같이, 일 실시 예에 의한 랜덤성 테스트 모듈(420)은 모노 테스트 모듈(421), 포커 테스트 모듈(422), 런 테스트 모듈(423) 및 롱-런 테스트 모듈(424)을 포함할 수 있다. 모노 테스트 모듈(421), 포커 테스트 모듈(422), 런 테스트 모듈(423) 및 롱-런 테스트 모듈(424) 각각은 입력되는 PUF 기반 하드웨어로부터의 출력값에 기초하여 랜덤성 테스트를 수행할 수 있다.
모노 테스트는, 비트 시퀀스 내에서 0과 1의 개수에 대한 균등성을 판단함으로써 랜덤성을 테스트할 수 있다. 모노 테스트는, 비트 시퀀스를 1비트의 단위로 각 비트의 값을 관찰하여 1과 0의 개수에 대한 균등성을 판단할 수 있다.
포커 테스트는, 비트 시퀀스를 4비트 단위로 각각 분리하였을 때 각 4비트로 표현되는 0 내지 15의 빈도수가 균등한지를 판단함으로써 랜덤성을 테스트할 수 있다.
런 테스트는 비트 시퀀스 내의 0 또는 1의 연속성을 판단함으로써 랜덤성을 테스트할 수 있다. 런 테스트는 비트 시퀀스 내의 연속 시퀀스의 개수를 확인하고, 확인된 연속 시퀀스의 개수에 기초하여 랜덤성을 테스트할 수 있다.
롱-런 테스트는 비트 시퀀스 내의 0 또는 1의 연속성을 판단함으로써 랜덤성을 테스트할 수 있다. 롱-런 테스트는, 기설정된 임계치 이상을 넘어가는 길이의 연속 시퀀스가 존재하는지 여부에 따라 랜덤성을 테스트할 수 있다.
상기의 랜덤성 테스트는 각각 병렬로 수행될 수 있으며, 테스트 결과를 출력할 수 있다. 모노 테스트 모듈(421), 포커 테스트 모듈(422), 런 테스트 모듈(423) 및 롱-런 테스트 모듈(424)은 결과값을 1 또는 0으로 출력할 수 있다. 여기에서, "1"은 아직 랜덤성 테스트 중이거나 랜덤성 테스트 결과가 실패임을 의미하며, "0"은 랜덤성 테스트를 통과한 것을 의미할 수 있다.
한편, 상술한 4 가지 종류의 랜덤성 테스트 방법은 단순히 예시적인 것으로, 표준화된 다른 종류의 랜덤성 테스트로 치환하여 설계될 수 있음을 당업자는 용이하게 이해할 수 있을 것이다. 더욱 상세하게, 4 가지 종류의 랜덤성 테스트 방법의 일부 또는 전부가 표준화된 다른 종류의 랜덤성 테스트로 치환될 수 있다. 아울러, 본원의 권리범위는 랜덤성 종류에 의하여 제한되지 않음 또한 당업자는 이해할 것이다.
도 6은 일 실시 예에 의한 랜덤성 테스트 방법의 흐름도이다. 도 6의 실시 예는, 예를 들어 모노 테스트의 흐름도일 수 있다.
단계 610에서, 랜덤성 테스트 방법은 PUF 기반 하드웨어로부터의 출력값, 즉 디지털 값을 읽을 수 있다. 상술한 바와 같이, 출력값은 0 및 1 중 적어도 하나로 구성되는 비트 시퀀스일 수 있다. 본 실시 예에서 비트 시퀀스의 크기는 2500 비트인 것을 상정하도록 한다. 이에 따라, 완벽한 랜덤성을 가지는 PUF 기반 하드웨어로부터의 비트 시퀀스는 1250개의 1과 1250개의 0으로 구성될 수 있다.
단계 620에서, 랜덤성 테스트 방법은 비트 시퀀스 내의 제 1 출력값의 개수를 확인할 수 있다. 여기에서 제 1 출력값은 1 또는 0일 수 있다.
단계 630에서, 랜덤성 테스트 방법은 제 1 출력값의 개수가 기설정된 범위 내에 존재하는지를 판단할 수 있다. 상술한 바와 같이 완벽한 랜덤성을 가지는 PUF 기반 하드웨어로부터의 비트 시퀀스는 1250개의 제 1 값을 가질 수 있다. 하지만, 완벽한 랜덤성에 대하여 편차를 가지는 범위 또한 랜덤성을 가지는 것으로 처리할 수 있다. 일 실시 예에 의한 랜덤성 테스트 방법은, 상기의 편차를 64로 설정할 수 있다. 이 경우, 랜덤성 통과에 대한 기설정된 범위는 1185 초과 1315 미만일 수 있다. 더욱 상세한 기설정된 범위에 속하는지 여부에 대한 판단은 더욱 상세하게 후술하도록 한다.
단계 640에서, 랜덤성 테스트 방법은 제 1 값의 개수가 기설정된 범위 내에 있는 경우, PUF 기반 하드웨어를 양품으로 판단할 수 있다. 단계 650에서, 랜덤성 테스트 방법은 제 1 값의 개수가 상기 기설정된 범위 외에 있는 경우, PUF 기반 하드웨어가 불량한 것으로 판단할 수 있다.
도 7은 모노 테스트의 흐름도이다. 도 7의 실시 예에서, 모노 테스트는 PUF 기반 하드웨어로부터 2500 비트 크기의 비트 시퀀스를 수신하고, 비트 시퀀스의 랜덤성을 테스트하는 것을 상정하도록 한다.
단계 705에서, 모노 테스트는 제 1 값의 개수(cnt_1)의 초기 값을 -1250으로 설정할 수 있다. 이는 추후에 다시 설명할 것으로 런 테스트의 용이성을 위한 것이다. 한편, 모노 테스트는 모노 테스트 결과값(Mono_result)을 1로 설정할 수 있다.
단계 710에서, 모노 테스느는 입력되는 비트가 제 1 값인지 여부를 판단할 수 있다. 본 실시 예에서 제 1 값은 1로 상정하도록 한다.
단계 715에서, 모노 테스트는 입력되는 비트가 제 1 값인 경우에는 제 1 값의 개수(cnt_1)를 1만큼 증가시킨다. 단계 720에서, 모노 테스트는 입력되는 비트가 제 2 값인 경우에는 제 1 값의 개수(cnt_1)를 그대로 유지한다.
단계 720에서, 모노 테스트는 모든 비트에 대하여 단계 710 내지 715가 수행되는지 여부를 판단할 수 있다. 모든 비트에 대하여 수행되지 않은 경우에는, 모노 테스트는 다음 비트에 대하여 단계 710 내지 715를 수행할 수 있다. 모든 비트에 대하여 수행된 경우에는, 단계 725에서 모노 테스트는 제 1 값의 개수(cnt_1)가 음수인지를 판단할 수 있다.
단계 730에서, 제 1 값의 개수(cnt_1)가 음수라면, 제 1 값의 개수(cnt_1)를 양수로 치환할 수 있다. 단계 735에서, 모노 테스트는 제 1 값의 개수(cnt_1)가 64보다 큰지를 판단할 수 있다.
제 1 값의 개수(cnt_1)가 64보다 큰 경우에는, 모노 테스트 결과값(Mono_result)을 1로 유지하여 출력할 수 있다. 여기에서, 모노 테스트 결과값(Mono_result)가 1인 것은 랜덤성이 불량함을 의미할 수 있다. 한편, 제 1 값의 개수(cnt_1)가 64보다 작거나 같은 경우에는, 모노 테스트 결과값(Mono_result)을 0으로 치환하여 출력할 수 있다. 여기에서, 모노 테스트 결과값(Mono_result)가 0인 것은 랜덤성이 양호함을 의미할 수 있다.
도 8은 포커 테스트의 흐름도이다. 도 8의 실시 예에서, 포커 테스트는 PUF 기반 하드웨어로부터 2500 비트 크기의 비트 시퀀스를 수신하고, 비트 시퀀스의 랜덤성을 테스트하는 것을 상정하도록 한다.
포커 테스트는 비트 시퀀스를 4 비트 단위로 구분하여 관리할 수 있다. 포커 테스트는 4 비트로 표현되는 0 내지 15의 빈도 수가 균등한 지를 테스트할 수 있다. 테스트 통과 조건은 수학식 1과 같다.
Figure 112014071267338-pat00001
여기에서 f(i)는 각 4 비트 0000, 0001, 0010, ..., 1111의 빈도 수를 나타낼 수 있다. 한편, 수학식 1의 하드웨어 구현이 어려운 경우에는, 수학식 1을 수학식 1과 동치인 수학식 2로 변환하여 이용할 수 있다.
Figure 112014071267338-pat00002
아울러, 수학식 2 내의 제곱의 연산의 하드웨어 구현이 어려운 경우에는, 제곱의 연산을 계차 수열로 치환한 수학식 3이 이용될 수 있다.
Figure 112014071267338-pat00003
여기에서, k는 계산을 위한 자연수일 수 있다. 수학식 3으로 구현된 경우에는, 하드웨어 구현 시 제곱기 구현이 요구되지 않는다. 일 실시 예에 의한 포커 테스트는 총 합이 25695보다 커지면 f(i)의 계산을 중지하고 실패의 결과를 출력할 수 있다. 포커 테스트는 총 합이 24594보다 작지 않을 경우 결과를 성공으로 변환하여 출력할 수 있다. 상술한 과정을 도 8의 흐름도를 참조하여 더욱 상세하게 설명하도록 한다.
단계 805에서, 포커 테스트는 총 합을 0으로 설정하고, f(0) 내지 f(15)의 값을 모두 0으로 설정할 수 있다. 아울러, 포커 테스트는 결과값(Poker_result)의 초기값을 1로 설정할 수 있다.
단계 810에서, 포커 테스트는 크기가 4 비트인 서브 비트 시퀀스의 값을 판단할 수 있다. 서브 비트 시퀀스의 값에 따라서, 포커 테스트는 단계 815 내지 835로 진행할 수 있다. 예를 들어, 서브 비트 시퀀스의 값이 0인 경우에는, 포커 테스트는 단계 815에서 f(0)의 값을 1만큼 증가시키면서, 단계 820에서 총합의 크기를 f(0)*2+1 만큼 크도록 설정할 수 있다. 아울러, 서브 비트 시퀀스의 값이 1인 경우에는, 포커 테스트는 단계 825에서 f(1)의 값을 1만큼 증가시키면서, 단계 830에서 총합의 크기를 기존의 총합보다 f(1)*2+1 만큼 크도록 설정할 수 있다. 또한, 서브 비트 시퀀스의 값이 15인 경우에는, 포커 테스트는 단계 835에서 f(1)의 값을 1만큼 증가시키면서, 단계 840에서 총합의 크기를 기존의 총합보다 f(15)*2+1 만큼 크도록 설정할 수 있다.
한편, 서브 비트 시퀀스의 값이 2 내지 14인 경우에도 유사한 절차가 수행됨을 당업자는 용이하게 이해할 수 있을 것이다.
단계 845에서, 총합이 25695보다 큰지 여부를 판단할 수 있다. 총합이 25695보다 큰 경우에는, 포커 테스트는 단계 850에서 2500 비트에 대하여 모두 수행하였는지를 판단하여 테스트를 종료할 수 있다. 총합이 25695보다 작거나 같은 경우에는, 포커 테스트는 단계 855에서 2500 비트에 대하여 모두 수행하였는지를 판단할 수 있다. 모두 수행되지 않은 것으로 판단되면, 포커 테스트는 810 단계로 회귀하여 다음 서브 시퀀스에 대하여 테스트를 반복할 수 있다. 모두 수행된 것으로 판단되면, 포커 테스트는 860 단계에서 총합이 24594보다 작은지를 판단할 수 있다. 총합이 24594보다 크거나 같은 경우에는, 포커 테스트는 단계 865에서 결과값(Mono_result)을 0으로 치환하여 출력할 수 있다. 총합이 24594보다 작은 경우에는, 포커 테스트는 결과값(Mono_result)을 1로 유지하여 출력할 수 있다. 여기에서, 결과값(Mono_result)이 0인 것은 랜덤성이 양호한 것을 의미하며, 결과값(Mono_result)이 1인 것은 랜덤성이 불량한 것을 의미할 수 있다.
상술한 방식은 제곱의 연산 대신 계차 수열 연산을 택한 것으로, 이에 따라 연산 면적을 감소시키는 효과가 창출될 수 있다. 예를 들어, 제곱의 연산을 수행하기 위하여서는 f(i)의 크기가 8비트 이므로, 8*8 크기의 제곱 모듈 16개와 16*16 크기의 덧셈 모듈 15개가 요구된다. 상기의 계차 수열에 대하여서는 1개의 덧셈 모듈만이 요구됨에 따라 상술한 대면적의 연산이 요구되지 않는 효과가 창출된다.
아울러, 중간값을 파악할 수 있는 효과 또한 창출될 수 있다. 제곱 연산을 수행하는 경우에는, 특정 값이 비트 시퀀스 내에 특정 부분에 집중되어 포커 테스트의 결과가 조기에 실패로 파악될 수 있음에도 불구하고, 모든 f(i)를 카운팅하여야 총합을 구할 수 있는 비효율성이 존재한다. 계차 수열법에 기초한 경우에는, 계산 도중 중간 합을 파악할 수 있기 때문에, 실패가 조기에 파악될 수 있어 적응적인 랜덤성 테스트가 가능할 수 있다. 이에 따라 추가적인 전력 소모 방지 및 레지스터 크기 감소의 효과가 창출될 수 있다.
하기 표 1은 적응적인 랜덤성 테스트에 따른 레지스터 크기 및 덧셈 모듈 크기의 관계를 나타내는 표이다.

최대값 레지스터 크기(bit) 덧셈 모듈 크기(bit)
총합 f(i) 총합 f(i) 개수 총합 f(i)
최악의 경우 391250 625 19 각10, 총 160 179 19 각 10
계차수열을 이용 25695+160 160 15 각8, 총 128 143 15 각 8
하드웨어의 설계에서는 최악의 경우에 대한 대비가 요구될 수 있다. 최악의 경우는 4 비트의 서브 비트 시퀀스의 입력 패턴이 모두 0000인 경우일 수 있다. 이 경우에는, f(0)는 625, 총합은 391250이 된다. 하지만, 일 실시 예와 같은 계차수열을 이용한 방식에서는, 최악의 경우로 진입하기 이전에 미리 중간 합을 파악하여, 테스트 결과가 실패를 결정하고 랜덤성 테스트를 조기에 중단할 수 있다. 표 1에서와 같이, 최악의 경우에서 필요한 레지스터를 살펴보면, 총합은 391250을 저장할 수 있도록 19비트가 요구되고, 0 내지 15의 i에 대하여 각 f(i)는 625를 저장할 수 있도록 10비트가 요구되므로 총 19+10*16=179 비트가 요구된다.
이와는 대조적으로, 계차수열을 이용한 방식에서는 랜덤성 테스트를 지속하기 위한, 총합의 최대값인 25695보다 커지면 랜덤성 테스트를 중단한다. 이러한 조건 하에서, 상기와 같이 0000의 서브 비트 시퀀스가 계속 입력되는 경우에는, 동일한 패터이 160번 입력되는 경우 총합은 25600이고, 0000의 서브 비트 시퀀스가 한 번 더 입력되는 경우, 즉 f(0)이 161이 되면 총합은 25291이 되어 랜덤성 테스트가 중단될 수 있다. 이 경우, 총합 저장에 요구되는 비트는 15비트이며, f(i)는 161까지 저장하여야 하므로 8비트가 요구된다. 이에 따라, 요구되는 총 비트는 15+8*16= 143 비트로, 요구되는 연산 면적이 현격하게 감소함을 확인할 수 있다.
레지스터뿐만 아니라, 총합의 중간합을 계산하고 f(i)를 카운팅하기 위하여 덧셈 모듈이 요구되는데, 계차수열을 이용한 방식의 경우에는 기존 19비트 덧셈 모듈 1개, 10비트 덧셈 모듈 16개에서 15비트 덧셈 모듈 1개 8비트 덧셈 모듈 16개로 덧셈 모듈이 감소할 수 있다.
도 9는 일 실시 예에 의한 런 테스트의 흐름도이다. 도 9의 실시 예에서, 런 테스트는 PUF 기반 하드웨어로부터 2500 비트 크기의 비트 시퀀스를 수신하고, 비트 시퀀스의 랜덤성을 테스트하는 것을 상정하도록 한다. 런 테스트는 비트 시퀀스 내 연속 시퀀스의 개수가 충분한지 여부에 기초하여 랜덤성을 테스트할 수 있다. 예를 들어, 비트 시퀀스가 11000011101110010인 경우, 연속 시퀀스는 "11", "0000", "111", "0", "111", "00", "1", "0"으로, 연속 시퀀스의 개수는 8개일 수 있다. 연속 시퀀스의 개수가 적을수록 랜덤성은 저하되는 것이며, 연속 시퀀스의 개수가 많을수록 랜덤성이 증가하는 것으로 해석될 수 있으며, 런 테스트는 연속 시퀀스의 개수에 기초하여 랜덤성을 테스트할 수 있다.
런 테스트는 예를 들어, 연속 시퀀스의 개수가 기설정된 범위 내에 있는지 여부에 기초하여 랜덤성을 테스트할 수 있다. 예를 들어, 런 테스트는 수학식 4에 기초하여 랜덤성을 테스트할 수 있다.
Figure 112014071267338-pat00004
여기에서, m은 5000p이며, b는 257.5828p, p는 q*(1-q), q는 제 1 값의 개수/2500일 수 있다. q는 예를 들어 모노 테스트 결과에 기초하여 설정될 수 있다. 한편, 런 테스트를 수행하는 경우에는 m 및 b를 파라미터로서 미리 계산하여 설정할 수 있다. m 및 b는 1의 개수가 1250일 때를 기준으로 대칭된 값을 가지므로, 이를 위하여 모노 테스트에서 |제1값의 개수-1250|이 계산될 수 있으며, 계산 결과는 표 2와 같다.
|제1값의 개수-1250| 0x00 ~
0x15
0x16 ~
0x1c
0x1d ~
0x28
0x29 ~
0x2d
0x2e ~
0x35
0x36 ~
0x3a
0x3b ~
0x40
m-b 1186 1185 1184 1183
m+b 1314 1313 1312 1311
모노 테스트에서는, |제1값의 개수-1250| 값이 64보다 커지는 경우에 런 테스트의 결과가 무의미하여지므로, |제1값의 개수-1250|가 64보다 작거나 같은 경우에만 런 테스트가 수행되도록 설정될 수도 있다.
한편, 단계 905 내지 935, 단계 965는 모노 테스트 과정이며 이에 대하여서는 상술하였기 때문에 여기에서의 더 이상의 설명은 생략하도록 한다. 한편, 도시된 바와 같이, 런 테스트는 모노 테스트와 함께 수행될 수 있다. 런 테스트는 모노 테스트와 병렬적으로 수행될 수 있다.
단계 940에서, 런 테스트는 연속 시퀀스 개수(cnt_run)를 1로 설정할 수 있다. 런 테스트는 런 테스트 결과(Run_result)를 1로 설정할 수 있다. 런 테스트 결과(Run_result)가 1인 것은 랜덤성이 불량하는 것을 의미할 수 있다. 한편, 런 테스트 결과(Run_result)가 0인 것은 랜덤성이 양호한 것을 의미할 수 있다.
단계 945에서, 런 테스트는 사용한 신규 비트(new_bit)를 기존 비트(old_bit)로 치환시키고, 새로 입력된 비트를 신규 비트(new_bit)로 설정한다. 단계 950에서, 런 테스트는 신규 비트(new_bit) 및 기존 비트(old_bit)가 다른지 여부를 판단할 수 있다.
신규 비트(new_bit) 및 기존 비트(old_bit)가 다른 경우에는, 런 테스트는 단계955에서 연속 시퀀스 개수(cnt_run)의 개수를 1만큼 증가시킬 수 있다. 신규 비트(new_bit) 및 기존 비트(old_bit)가 동일한 것으로 판단되면, 런 테스트는 단계 960으로 진행하며, 모든 비트(2500)에 대하여 런 테스트가 수행된지 여부를 판단할 수 있다.
단계 970에서는, 런 테스트는 모노 테스트에서 계산한 비트 시퀀스 내 1의 개수(cnt_1)을 인덱스 값으로 하여 미리 계산된 파라미터 값으로부터 연속 시퀀스 개수의 최소값 및 최대값, 즉 기설정된 범위의 경계값을 읽을 수 있다. 단계 975에서, 런 테스트는 연속 시퀀스 개수(cnt_run)가 상기 최소값보다 작지 않고 최대값보다 크지 않은지 여부를 판단할 수 있다. 즉, 런 테스트는 기설정된 범위 내에 연속 시퀀스 개수(cnt_run)가 포함되는 지를 판단할 수 있다. 연속 시퀀스 개수(cnt_run)가 기설정된 범위 내에 포함된 것으로 판단되면, 단계 980에서 런 테스트는 결과값(Run_result)을 0으로 치환하여 출력할 수 있다. 연속 시퀀스 개수(cnt_run)가 기설정된 범위 내에 포함되지 않은 것으로 판단되면, 런 테스트는 결과값(Run_result)을 1로 유지하여 출력할 수 있다.
도 10은 일 실시 예에 의한 롱-런 테스트의 흐름도이다. 도 10의 실시 예에서, 롱-런 테스트는 PUF 기반 하드웨어로부터 2500 비트 크기의 비트 시퀀스를 수신하고, 비트 시퀀스의 랜덤성을 테스트하는 것을 상정하도록 한다.
롱-런 테스트는 비트 시퀀스 내의 연속 시퀀스의 길이가 기설정된 임계치 이상인 것이 있는지 여부를 판단함에 따라서 랜덤성을 테스트할 수 있다. 예를 들어, 롱-런 테스트는 연속 시퀀스의 길이가 17 이상인 것이 존재하는 경우, 랜덤성 테스트를 종료할 수 있다.
단계 1005에서, 롱-런 테스트는 연속 시퀀스의 길이(cnt_LR)를 1로 설정할 수 있다. 롱-런 테스트는 결과값(LR_result)을 1로 설정할 수 있다.
단계 1010에서, 롱-런 테스트는 사용한 신규 비트(new_bit)를 기존 비트(old_bit)로 치환시키고, 새로 입력된 비트를 신규 비트(new_bit)로 설정할 수 있다. 단계 1015에서, 롱-런 테스트는 신규 비트(new_bit) 및 기존 비트(old_bit)가 다른지 여부를 판단할 수 있다.
신규 비트(new_bit) 및 기존 비트(old_bit)가 다른 경우에는, 단계 1020에서 롱-런 테스트는 연속 시퀀스의 길이(cnt_LR)를 다시 1로 설정할 수 있다. 신규 비트(new_bit) 및 기존 비트(old_bit)가 동일한 경우에는, 단계 1025에서 롱-런 테스트는 연속 시퀀스의 길이(cnt_LR)를 1만큼 증가시킬 수 있다.
단계 1030에서, 롱-런 테스트는 연속 시퀀스의 길이(cnt_LR)가 17과 동일한지 여부를 판단할 수 있다. 연속 시퀀스의 길이(cnt_LR)가 17과 동일한 경우, 바로 테스트를 종료한다. 연속 시퀀스의 길이(cnt_LR)가 17이 아닌 경우에는, 단계1040에서 롱-런 테스트는 모든 비트(2500)가 입력되는 지를 확인할 수 있다. 모든 비트(2500)가 입력되지 않은 경우에는, 롱-런 테스트는 다시 단계 1010으로 복귀하여 상기 작업을 반복할 수 있다. 한편, 연속 시퀀스의 길이(cnt_LR)가 17 이상인 경우가 발생하지 않고 모든 비트(2500)가 입력된 경우에는, 롱-런 테스트는 결과값(LR_result)을 0으로 치환하여 출력할 수 있다. 여기에서, 결과값(LR-result)이 0인 것은 랜덤성이 양호한 것을 의미하며, 결과값(LR-result)이 1인 것은 랜덤성이 불량한 것을 의미할 수 있다.
도 11은 일 실시 예에 의한 랜덤 테스트 모듈의 블록도이다.
도 11에 도시된 바와 같이 랜덤 테스트 모듈(1100)에는 제 1 비트 시퀀스(i_load)가 입력될 수 있다. 여기에서 제 1 비트 시퀀스(i_load)는 1비트 단위로 입력될 수 있다. 한편, 랜덤 테스트 모듈(110)에는 제 2 비트 시퀀스(i_data)가 입력될 수 있다. 여기에서 제 2 비트 시퀀스(i_data)는 4비트 단위로 입력될 수 있다. 제 1 비트 시퀀스(i_load)는 랜덤 테스트 모듈(1100)에 제 2 비트 시퀀스(i_data)가 입력되는 시점을 알려줄 수 있다.
랜덤 테스트 모듈(1100)은 제 1 비트 시퀀스(i_load) 및 제 2 비트 시퀀스(i_data) 중 적어도 하나에 모노 테스트, 포커 테스트, 런 테스트 및 롱-런 테스트를 적용할 수 있다. 랜덤 테스트 모듈(1100)은 모노 테스트 결과(o_mono), 포커 테스트 결과(o_poker), 런 테스트 결과(o_run) 및 롱-런 테스트 결과(o_lr)를 출력할 수 있다. 테스트 결과는 테스트 종료시 4개의 핀을 통하여 표시될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 (21)

  1. 전도성 레이어들 사이의 컨택 또는 비아를 포함하고, 상기 전도성 레이어들의 단락 여부에 기반하여 생성된 값을 출력하는 PUF(Physically Unclonable Function) 기반 하드웨어;
    상기 값에 대하여 랜덤성 테스트를 수행하는 랜덤성 테스트 모듈; 및
    상기 랜덤성 테스트 모듈의 출력에 기초하여 상기 PUF 기반 하드웨어의 불량 여부를 결정하는 처리 장치
    를 포함하고,
    상기 컨택 또는 상기 비아의 사이즈는 상기 전도성 레이어들의 단락 여부가 확률적으로 결정되도록 결정되는 랜덤성 테스트 장치.
  2. 제 1 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 PUF 기반 하드웨어에 대하여 모노 테스트(mono test)를 수행하는 랜덤성 테스트 장치.
  3. 제 2 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 PUF 기반 하드웨어의 1과 0의 분포의 균등성을 테스트하는 랜덤성 테스트 장치.
  4. 제 3 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 PUF 기반 하드웨어로부터 N 비트-상기 N은 자연수임-의 출력값을 입력 받아 그 중 0인 비트의 개수 또는 1인 비트의 개수를 카운팅하고, 카운팅된 값이 N 값 에 따라 미리 결정된 제 1 범위를 만족시키는지 여부로 상기 균등성을 테스트하는 랜덤성 테스트 장치.
  5. 제 1 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 PUF 기반 하드웨어에 대하여 포커 테스트(poker test)를 수행하는 랜덤성 테스트 장치.
  6. 제 5 항에 있어서,
    상기 랜덤성 테스트 모듈은 상기 PUF 기반 하드웨어가 출력하는 값의 패턴에 대하여 균등성을 테스트하는 랜덤성 테스트 장치.
  7. 제 6 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 PUF 기반 하드웨어가 출력하는 N 비트-상기 N은 자연수임-의 출력값을 4비트씩 분리하였을 때, 4 비트가 가질 수 있는 값인 0 내지 15에 대하여 각각의 빈도를 카운팅한 결과가 N에 따라 미리 결정된 제 2 범위를 만족시키는지 여부로 상기 균등성을 테스트하는 랜덤성 테스트 장치.
  8. 제 7 항에 있어서,
    상기 처리 장치는, 상기 0 내지 15의 빈도수의 제곱의 총합이 상기 제 2 범위에 있으면, 상기 PUF 기반 하드웨어가 양품인 것으로 판단하는 랜덤성 테스트 장치.
  9. 제 8 항에 있어서,
    상기 처리 장치는, 상기 제곱의 총합을 계차 수열로 변환하여 계산하는 랜덤성 테스트 장치.
  10. 제 9 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 포커 테스트의 중간합에 기초하여 적응적으로 랜덤성 테스트를 수행하는 랜덤성 테스트 장치.
  11. 제 1 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 PUF 기반 하드웨어에 대하여 런 테스트(run test)를 수행하는 랜덤성 테스트 장치.
  12. 제 11 항에 있어서,
    상기 처리 장치는, 상기 PUF 기반 하드웨어로부터 출력되는 N 비트-상기 N은 자연수임-의 출력값을 1 비트씩 연속으로 관찰하였을 때, 변화하는 빈도가 N에 따라 미리 지정된 제 3 범위를 만족시키면, 상기 PUF 기반 하드웨어가 양품인 것으로 판단하는 랜덤성 테스트 장치.
  13. 제 12 항에 있어서,
    상기 랜덤성 테스트 모듈은, 0 또는 1을 상기 PUF 기반 하드웨어로부터 입력받아, 상기 0 또는 상기 1의 연속성을 테스트함으로써 상기 랜덤성을 테스트하는 랜덤성 테스트 장치.
  14. 제 13 항에 있어서,
    상기 제 3 범위는, 상기 0 또는 1의 전체 개수에 따라 결정되는 랜덤성 테스트 장치.
  15. 제 1 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 PUF 기반 하드웨어에 대하여 롱-런 테스트(long-run test)를 수행하는 랜덤성 테스트 장치.
  16. 제 15 항에 있어서,
    상기 랜덤성 테스트 모듈은, 0 또는 1을 상기 PUF 기반 하드웨어로부터 입력받아, 제 4 범위 이상의 비트 시퀀스가 포함되는지 여부에 기초하여 랜덤성을 테스트하는 랜덤성 테스트 장치.
  17. 제 16 항에 있어서,
    상기 랜덤성 테스트 모듈은, 상기 제 4 범위 이상의 비트 시퀀스가 포함되는 것이 검출되면 상기 랜덤성 테스트를 중단하는 랜덤성 테스트 장치.
  18. 제 16 항에 있어서,
    상기 처리 장치는, 상기 제 4 범위 이상의 비트 시퀀스가 포함되는 경우에는, 상기 PUF 기반 하드웨어를 불량으로 판단하는 랜덤성 테스트 장치.
  19. 전도성 레이어들 사이의 컨택 또는 비아를 포함하는 PUF(Physically Unclonable Function) 기반 하드웨어로부터 상기 전도성 레이어들의 단락 여부에 기반하여 생성된 값을 수신하는 단계;
    상기 값에 대하여 랜덤성 테스트를 수행하는 단계; 및
    상기 랜덤성 테스트의 수행 결과에 기초하여 상기 PUF 기반 하드웨어의 불량 여부를 결정하는 단계
    를 포함하고,
    상기 컨택 또는 상기 비아의 사이즈는 상기 전도성 레이어들의 단락 여부가 확률적으로 결정되도록 결정되는 랜덤성 테스트 방법.
  20. 삭제
  21. 제19항의 랜덤성 테스트 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
KR1020140095917A 2013-07-26 2014-07-28 랜덤성 테스트 장치 및 방법 KR102178386B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20130088696 2013-07-26
KR1020130088696 2013-07-26

Publications (2)

Publication Number Publication Date
KR20150013091A KR20150013091A (ko) 2015-02-04
KR102178386B1 true KR102178386B1 (ko) 2020-11-12

Family

ID=52393598

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140095917A KR102178386B1 (ko) 2013-07-26 2014-07-28 랜덤성 테스트 장치 및 방법

Country Status (5)

Country Link
US (1) US10235261B2 (ko)
EP (1) EP3032421A4 (ko)
KR (1) KR102178386B1 (ko)
TW (1) TWI640863B (ko)
WO (1) WO2015012667A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101489091B1 (ko) * 2013-09-30 2015-02-04 (주) 아이씨티케이 반도체 공정을 이용한 식별키 생성 장치 및 방법
EP3113409A1 (en) * 2015-07-01 2017-01-04 Secure-IC SAS Embedded test circuit for physically unclonable function
KR102050021B1 (ko) * 2017-04-27 2019-11-28 김태욱 식별키 유용성 판별장치
FR3069677A1 (fr) * 2017-07-27 2019-02-01 Stmicroelectronics (Crolles 2) Sas Dispositif de generation d'un nombre aleatoire
EP3454318B1 (en) * 2017-09-12 2022-05-11 eMemory Technology Inc. Security system with entropy bits generated by a puf
CN109032868A (zh) * 2018-07-26 2018-12-18 北京计算机技术及应用研究所 一种物理不可克隆函数ip核自动化验证装置
CN109144668B (zh) * 2018-08-06 2022-08-05 华大恒芯科技有限公司 Rfid仿真用例实现方法及装置
US11263331B2 (en) * 2018-09-27 2022-03-01 Taiwan Semiconductor Manufacturing Company, Ltd. Electronic device for checking randomness of identification key device, random key checker circuit, and method of checking randomness of electronic device
CN112764977A (zh) * 2019-11-05 2021-05-07 深圳宏芯宇电子股份有限公司 存储控制器以及测试数据产生方法
US11282799B2 (en) 2020-01-14 2022-03-22 United Microelectronics Corp. Device for generating security key and manufacturing method thereof
WO2022008553A1 (en) * 2020-07-09 2022-01-13 Telefonaktiebolaget Lm Ericsson (Publ) Processing a series of bits
US11782090B2 (en) 2020-12-11 2023-10-10 PUFsecurity Corporation Built-in self-test circuit and built-in self-test method for physical unclonable function quality check
EP4016282A1 (en) * 2020-12-15 2022-06-22 ID Quantique S.A. Qrng chip mass production method
GB2601846A (en) * 2021-03-15 2022-06-15 Nordic Semiconductor Asa Encoding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103131A1 (en) 2002-11-21 2004-05-27 Ip-First, Llc. Random number generator bit string filter
US20090106615A1 (en) 2007-10-17 2009-04-23 Kabushiki Kaisha Toshiba Test method of integrated circuit with random-number generation circuit and integrated circuit with random-number generation circuit
US20110055649A1 (en) * 2009-08-25 2011-03-03 Farinaz Koushanfar Testing security of mapping functions
US20110066670A1 (en) 2009-08-05 2011-03-17 Verayo, Inc. Combination of values from a pseudo-random source

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461111B2 (en) * 2002-09-30 2008-12-02 Fdk Corporation Method of uniforming physical random number and physical number generation device
WO2006040724A1 (en) * 2004-10-15 2006-04-20 Koninklijke Philips Electronics N.V. Integrated circuit with a true random number generator
JP2008532111A (ja) * 2005-02-02 2008-08-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ キャリブレート方法、装置、デバイス、システム及びプログラム
US8290150B2 (en) * 2007-05-11 2012-10-16 Validity Sensors, Inc. Method and system for electronically securing an electronic device using physically unclonable functions
KR100964845B1 (ko) 2007-11-29 2010-06-24 주식회사 시큐트론 공정편차에 기반한 보안 시스템 및 방법
TW200943897A (en) * 2008-01-02 2009-10-16 Verayo Inc Authentication with physical unclonable functions
HUE026760T2 (en) * 2008-03-20 2016-07-28 Univ Geneve Secure element identification and authentication system and non-cloning properties
US8598743B2 (en) * 2008-09-27 2013-12-03 Witricity Corporation Resonator arrays for wireless energy transfer
KR100926214B1 (ko) 2009-04-23 2009-11-09 한양대학교 산학협력단 공정편차를 이용한 디지털 값 생성 장치 및 방법
KR100937516B1 (ko) 2009-10-09 2010-01-19 (주) 아이씨티케이 스마트카드 테스트 시스템 및 그 방법
KR100980052B1 (ko) 2010-04-29 2010-09-06 (주) 아이씨티케이 Nfc를 이용하는 휴대장치의 전력공급 및 통신분기 인터페이스 시스템
US8427193B1 (en) 2010-12-07 2013-04-23 Xilinx, Inc. Intellectual property core protection for integrated circuits
KR101139630B1 (ko) * 2010-12-09 2012-05-30 한양대학교 산학협력단 식별키 생성 장치 및 방법
KR101118826B1 (ko) 2011-02-15 2012-04-20 한양대학교 산학협력단 물리적 공격을 방어하는 암호화 장치 및 암호화 방법
KR101080529B1 (ko) 2011-03-31 2011-11-04 한양대학교 산학협력단 전력 분석 공격에 안전한 암호화 장치 및 그 동작 방법
EP3467716B1 (en) 2011-03-31 2020-11-04 ICTK Holdings Co., Ltd. Apparatus and method for generating a digital value
KR101169172B1 (ko) 2011-03-31 2012-08-03 한양대학교 산학협력단 공정편차를 이용한 식별 키 생성 장치 및 방법
US8821965B2 (en) * 2011-04-29 2014-09-02 International Business Machines Corporation Accurate deposition of nano-objects on a surface
KR101080511B1 (ko) 2011-08-03 2011-11-04 (주) 아이씨티케이 식별키 누출을 방지하는 ic 칩 및 이의 인증 방법
TWI479870B (zh) 2011-08-16 2015-04-01 Ict Korea Co Ltd 基於puf透過機器對機器溝通在裝置之間認證的設備與方法
US9036891B2 (en) * 2011-10-30 2015-05-19 The United States Of America As Represented By The Secretary Of The Air Force Intrinsic physical layer authentication of integrated circuits
US9054871B2 (en) * 2012-02-21 2015-06-09 California Institute Of Technology Physical key-protected one time pad
KR101663341B1 (ko) * 2012-03-20 2016-10-14 (주) 아이씨티케이 식별키 생성 장치 및 방법
DE102012107024B3 (de) * 2012-08-01 2013-08-29 Infineon Technologies Ag Schaltung zum strombegrenzten Umladen eines Knotens
KR101332517B1 (ko) 2012-08-21 2013-11-22 한양대학교 산학협력단 인증 정보 처리 장치 및 방법
US9279856B2 (en) * 2012-10-22 2016-03-08 Infineon Technologies Ag Die, chip, method for driving a die or a chip and method for manufacturing a die or a chip
US9148796B2 (en) * 2012-12-13 2015-09-29 Ninve Jr. Inc. Resilient antenna disturbance detector
KR101442401B1 (ko) 2013-03-20 2014-09-23 (주) 아이씨티케이 Puf를 생성하는 장치 및 방법
KR20140126787A (ko) 2013-04-22 2014-11-03 (주) 아이씨티케이 PUF 기반 하드웨어 OTP 제공 장치 및 이를 이용한 2-Factor 인증 방법
EP2816756A1 (fr) * 2013-06-18 2014-12-24 Nagravision S.A. Procédé et dispositif cryptographique unique à fonction physiquement induplicable
KR20150024676A (ko) 2013-08-27 2015-03-09 (주) 아이씨티케이 반도체 프로세스의 포토 마스크를 변형하여 puf를 생성하는 방법 및 장치
KR20150032606A (ko) 2013-08-30 2015-03-27 (주) 아이씨티케이 카드 결제 단말 테스트 시스템 및 방법
KR101489088B1 (ko) 2013-09-03 2015-02-04 (주) 아이씨티케이 식별키 생성 장치 및 방법
KR101541597B1 (ko) 2013-09-03 2015-08-03 (주) 아이씨티케이 식별키 생성 장치 및 방법
KR101504025B1 (ko) 2013-09-06 2015-03-18 (주) 아이씨티케이 식별 키 생성 장치 및 방법
KR101488616B1 (ko) 2013-09-06 2015-02-06 (주) 아이씨티케이 식별키 생성 장치 및 방법
KR101489091B1 (ko) 2013-09-30 2015-02-04 (주) 아이씨티케이 반도체 공정을 이용한 식별키 생성 장치 및 방법
KR101457305B1 (ko) 2013-10-10 2014-11-03 (주) 아이씨티케이 식별키 생성 장치 및 방법
KR101495448B1 (ko) 2013-10-29 2015-02-26 (주) 아이씨티케이 사용자 인증을 위한 ic 칩 및 인증 방법
KR102198499B1 (ko) 2013-12-31 2021-01-05 주식회사 아이씨티케이 홀딩스 디지털 값 처리 장치 및 방법
KR102186475B1 (ko) 2013-12-31 2020-12-03 주식회사 아이씨티케이 홀딩스 랜덤한 디지털 값을 생성하는 장치 및 방법
KR20140115278A (ko) 2014-04-17 2014-09-30 (주) 아이씨티케이 Puf를 생성하는 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103131A1 (en) 2002-11-21 2004-05-27 Ip-First, Llc. Random number generator bit string filter
US20090106615A1 (en) 2007-10-17 2009-04-23 Kabushiki Kaisha Toshiba Test method of integrated circuit with random-number generation circuit and integrated circuit with random-number generation circuit
US20110066670A1 (en) 2009-08-05 2011-03-17 Verayo, Inc. Combination of values from a pseudo-random source
US20110055649A1 (en) * 2009-08-25 2011-03-03 Farinaz Koushanfar Testing security of mapping functions

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
간행물

Also Published As

Publication number Publication date
US10235261B2 (en) 2019-03-19
US20160170856A1 (en) 2016-06-16
TW201520761A (zh) 2015-06-01
WO2015012667A1 (ko) 2015-01-29
EP3032421A1 (en) 2016-06-15
TWI640863B (zh) 2018-11-11
EP3032421A4 (en) 2017-04-19
KR20150013091A (ko) 2015-02-04

Similar Documents

Publication Publication Date Title
KR102178386B1 (ko) 랜덤성 테스트 장치 및 방법
US20200364374A1 (en) Apparatus and method for generating identification key
US11729005B2 (en) Apparatus and method for processing authentication information
EP3454318B1 (en) Security system with entropy bits generated by a puf
KR101118826B1 (ko) 물리적 공격을 방어하는 암호화 장치 및 암호화 방법
KR101663341B1 (ko) 식별키 생성 장치 및 방법
KR102198499B1 (ko) 디지털 값 처리 장치 및 방법
KR20150078801A (ko) 랜덤한 디지털 값을 생성하는 장치 및 방법
Koeberl et al. Evaluation of a PUF Device Authentication Scheme on a Discrete 0.13 um SRAM
KR102071937B1 (ko) 식별키 생성장치 및 식별키 생성방법
US10032729B2 (en) Apparatus and method for generating identification key
US10402248B2 (en) Method for controlling error rate of device-specific information and program for controlling error rate of device-specific information
EP3057032A1 (en) Apparatus and method for generating identification key

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right