KR102169468B1 - 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기 및 챌린지 혼합 방법 - Google Patents

물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기 및 챌린지 혼합 방법 Download PDF

Info

Publication number
KR102169468B1
KR102169468B1 KR1020190058932A KR20190058932A KR102169468B1 KR 102169468 B1 KR102169468 B1 KR 102169468B1 KR 1020190058932 A KR1020190058932 A KR 1020190058932A KR 20190058932 A KR20190058932 A KR 20190058932A KR 102169468 B1 KR102169468 B1 KR 102169468B1
Authority
KR
South Korea
Prior art keywords
bit string
bit
challenge
same
mixer
Prior art date
Application number
KR1020190058932A
Other languages
English (en)
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 충북대학교 산학협력단
Priority to KR1020190058932A priority Critical patent/KR102169468B1/ko
Application granted granted Critical
Publication of KR102169468B1 publication Critical patent/KR102169468B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
    • HELECTRICITY
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Logic Circuits (AREA)

Abstract

챌린지 혼합기에 연관된다. 일실시예에서 제어 신호에 따라, 설정되는 크기의 난수를 입력 받고 상기 난수를 제1 비트열, 제2 비트열, 제3 비트열, 제4 비트열로 분할하는 초기화부; 상기 제1 비트열과 상기 제2 비트열, 상기 제3 비트열과 상기 제4 비트열의 1의 개수가 동일한지 비교하는 비교기; 및 비트열의 1의 개수가 동일하지 않은 경우에 1의 개수가 적은 비트열을 제1 방향으로 시프트하는 시프트 레지스터를 포함할 수 있다.

Description

물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기 및 챌린지 혼합 방법{CHALLENGE SCRAMBLER FOR PHYSICAL UNCLONABLE FUNCTION}
하드웨어를 이용한 보안 기술에 연관된다. 보다 상세하게는 반도체를 이용한 물리적 복제 불가능 함수 시스템에 적용 가능한 챌린지 혼합기 회로에 연관된다.
고집적 그리고 저비용의 장점을 가지고 있는 CMOS 공정을 기반으로 하는 물리적 복제 불가능 함수(Physical Unclonable Function) 시스템은 특정한 입력 챌린지(Challenge)에 의해 고유한 응답 값(ID 또는 Response)을 무작위로 빠르게 생성 할 수 있다.
이러한 무작위의 고유 값은 CMOS를 이용한 물리적 복제 불가능 칩이 만들어질 때, 동일한 구조(동일한 레이아웃)를 갖는 칩을 생산하더라도 공정상의 불일치에 의해 생성된다.
하지만, 물리적 복제 불가능 함수의 구조에 따라 임의의 챌린지가 아닌 비교되는 요소별로 동일한 강도(Strength)를 갖는 챌린지를 입력해야만 위의 특성을 갖는 응답(Response)이 생성될 수 있다는 특징을 갖는다.
한국 공개특허 10-2015-0064148호 (공개일자 2015년06월10일)는 물리적 복제방지 기능으로서 이용되는 메모리로부터 암호 키를 생성하기 위한 시스템을 제시한다.
일실시예에 따르면 제어 신호에 따라, 설정되는 크기의 난수를 입력 받고 상기 난수를 제1 비트열, 제2 비트열, 제3 비트열, 제4 비트열로 분할하는 초기화부; 상기 제1 비트열과 상기 제2 비트열, 상기 제3 비트열과 상기 제4 비트열의 1의 개수가 동일한지 비교하는 비교기; 및 비트열의 1의 개수가 동일하지 않은 경우에 1의 개수가 적은 비트열을 제1 방향으로 시프트하는 시프트 레지스터를 포함하는 챌린지 혼합기가 개시된다.
다른 일실시예에 따르면 상기 제1 비트열과 상기 제2 비트열, 상기 제3 비트열과 상기 제4 비트열을 병합하고, 상기 제1 비트열과 상기 제2 비트열이 병합된 비트열과 상기 제3 비트열과 상기 제4 비트열이 병합된 비트열을 다시 병합하여 최종 비트열을 출력하는 출력부를 더 포함하는 챌린지 혼합기도 개시된다.
또 다른 일실시예에 따르면 상기 시프트 레지스터는 상기 비교기에 의해 비교되는 결과의 비트열의 1의 개수가 동일할 때까지 반복적으로 상기 1의 개수가 적은 비트열을 상기 제1 방향으로 시프트하는, 챌린지 혼합기도 가능하다.
일측에 따르면 상기 비교기는 비트열의 비교 횟수가 미리 지정되는 횟수를 초과하는 경우에 0비트열을 출력부로 제공하는, 챌린지 혼합기가 제시된다.
다른 일측에 따르면 제어 신호에 따라, 설정되는 크기의 난수가 입력되는 단계; 상기 난수를 제1 비트열, 제2 비트열, 제3 비트열, 제4 비트열로 분할하는 단계; 상기 제1 비트열과 상기 제2 비트열, 상기 제3 비트열과 상기 제4 비트열의 1의 개수가 동일한지 비교하는 단계; 비트열의 1의 개수가 동일하지 않은 경우에 1의 개수가 적은 비트열을 제1 방향으로 시프트하는 단계; 상기 제1 비트열과 상기 제2 비트열, 상기 제3 비트열과 상기 제4 비트열을 병합하는 단계; 및 상기 제1 비트열과 상기 제2 비트열이 병합된 비트열과 상기 제3 비트열과 상기 제4 비트열이 병합된 비트열을 다시 병합하여 최종 비트열을 출력하는 단계를 포함하는 챌린지 혼합 방법이 개시된다.
도 1은 일실시예에 따른 종래의 물리적 복제 불가능 함수의 특성을 도시한다.
도 2는 일실시예에 따른 종래의 챌린지-응답 쌍을 가지는 물리적 복제 불가능 함수의 단일 셀을 나타낸 것이다
도 3은 일실시예에 따른 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기의 동작을 나타낸 흐름도이다.
도 4는 일실시예에 따른 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기의 동작을 상세하게 나타낸 흐름도이다.
도 5는 일실시예에 따른 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기의 블록도를 도시한다.
도 6은 일실시예에 따른 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기 시뮬레이션 결과를 도시한다.
이하에서, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 권리범위는 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.
또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.
일실시예에 따른 챌린지 혼합기는 기존의 물리적 복제 불가능 함수가 가지는 비교되는 요소별로 동일한 강도(Strength)를 갖는 챌린지를 입력해야 물리적 복제 불가능 함수의 특성을 이용한 응답이 생성될 수 있는 문제점을 해결할 수 있다.
또 다른 일실시예에서 챌린지 혼합기는 강도가 불균형한 임의의 난수를 입력하였을 때, 비교되는 요소별로 동일한 강도를 갖는 난수를 출력할 수 있다.
도 1은 종래의 물리적 복제 불가능 함수의 특성을 나타낸다. 구체적으로 반도체 특성을 이용하여 제작되는 물리적 복제 불가능 함수(PUF)는 챌린지와 응답이라는 입력-출력 관계를 가질 수 있다. 이 경우 동일한 물리적 복제 불가능 함수 칩에 대해 동일한 입력 값을 반복 인가 시, 동일한 출력 값을 생성할 수 있고 이를 재현성(Reproducibility)이라고 한다.
또한, 공정상의 불일치 효과를 활용하기 때문에 동일한 레이아웃으로 제작된 칩일지라도, 서로 다른 칩 간에는 다른 출력 값을 생성하고 이를 유일성(Uniqueness)이라 한다.
그러나, 물리적 복제 불가능 함수의 구조에 따라 비교되는 요소별로 동일한 강도를 갖는 챌린지를 입력해야만, 상기 재현성 및 유일성을 갖는 응답이 생성될 수 있다. 이러한 동일한 강도를 갖는 물리적 복제 불가능 함수의 구조는 래치(Latch) 기반의 구조부터 신호의 지연 시간을 활용하는 구조까지 다양하게 개발되어 있다.
도 2는 종래의 챌린지-응답 쌍(CRP)을 가지는 물리적 복제 불가능 함수의 단일 셀의 일실시예를 도시한다. 구체적으로 종래의 SRAM 구조에서, 인버터를 구성하는 PMOS와 NMOS를 각각 병렬로 구성하고, 캐스코드(Cascode)로 연결되는 트랜지스터를 PMOS와 NMOS에 각각 추가한다. 추가로 캐스코드 연결되는 트랜지스터의 게이트 입력을 챌린지(Challenge)로 하는 물리적 복제 불가능 함수가 도시된다.
여기서 BL은 비트라인(BitLine)을 의미하고, BL_B는 비트라인 바(
Figure 112019051494546-pat00001
)를 의미하며 WL은 워드라인(WordLine)을 의미한다. 그리고 EN은 인에이블신호를 의미한다.
도 2의 물리적 복제 불가능 함수는 8비트 챌린지 입력(C0, C1, C2, C3, C4, C5, C6, C7)에 따라 교차결합을 구성하는 인버터의 핑거를 조절하면 동작특성이 달라지고, 조절에 따라 셀의 챌린지-응답 쌍이 증가할 수 있고 면적대비 효율성을 높일 수 있다.
그리고 챌린지를 선택할 때는 좌우 대칭으로 구성해야하기 때문에 PMOS와 NMOS 각각 양측에 선택되는 핑거의 수(C0C1 vs C2C3, 그리고 C4C5 vs C6C7)를 동일하게 해야 한다. 따라서 일실시예에 따른 종래의 물리적 복제 불가능 함수는 도 2에서 도시되는 것처럼 챌린지 선택 시 동등한 또는 균형 잡힌 강도(Strength)를 가져야 한다는 문제가 존재한다.
도 3은 일실시예에 따른 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기의 동작을 나타낸 순서도이다. 일실시예에 따른 챌린지 혼합기는 난수의 크기를 설정하는 단계(310), 난수를 입력받는 단계(320), 제1 비트열 및 제2 비트열을 추출하는 단계(331), 제3 비트열 및 제4 비트열을 추출하는 단계(332) 두 비트열의 1의 개수가 동일한지 비교하는 단계(340), 1의 개수가 적은 비트열을 제1 방향으로 시프트하는 단계(350), 두 비트열을 병합하는 단계(360) 및 최종 비트열을 출력하는 단계(370)로 동작할 수 있다.
난수의 크기를 설정하는 단계(310)는 제어신호에 따라 챌린지를 생성하는데 활용될 입력 난수의 크기(N-bit)를 정하는 단계이다. 다음으로 난수를 입력받는 단계(320)는 앞선 단계에서 설정된 난수의 크기에 대응하는 N-bit의 난수를 입력받는 단계이다.
제1 비트열 및 제2 비트열을 추출하는 단계(331)와 제3 비트열 및 제4 비트열을 추출하는 단계(332)에서는 입력된 N-bit의 난수를 총 4구분으로 추출할 수 있다. 예시적으로 그러나 한정되지 않게 입력되는 난수가 32비트인 경우로 설명한다. 먼저 최상위비트(Most Significant Bit, MSB) 16비트와 최하위비트(Least Significant Bit, LSB) 16비트를 추출하여 두 개의 16비트 난수열을 추출하고, 이를 한 번 더 구분하여 4개의 8비트 난수열(제1 비트열, 제2 비트열, 제3 비트열, 제4 비트열)을 추출할 수 있다.
두 비트열의 1의 개수가 동일한지 비교하는 단계(340)는 추출된 비트열에서 두 비트열씩 비트열이 포함하고 있는 1의 개수를 계수하여 비교하는 단계이다. 즉, 제1 비트열과 제2 비트열의 1의 개수를 계수하고 동일한지 여부를 비교한다. 또한 제3 비트열과 제4 비트열의 1의 개수를 계수하고 동일한지 여부를 비교한다.
1의 개수가 적은 비트열을 제1 방향으로 시프트하는 단계(350)는 만약 포함하고 있는 1의 개수가 서로 동일하지 않다면, 1의 개수가 더 적은 비트열을 왼쪽 또는 오른쪽으로 한 비트 시프트(Shift) 연산을 수행하는 단계이다. 시프트 연산은 두 비트열이 포함하는 1의 개수가 동일할 때 까지 반복적으로 수행될 수 있다.
두 비트열을 병합하는 단계(360)는 제1 비트열과 제2 비트열을 병합하고, 제3 비트열과 제4 비트열을 병합하는 단계이다. 각각 나뉘어 비트열의 1의 개수가 동일한지 비교된 비트열끼리 병합을 수행할 수 있다.
마지막으로 최종 비트열을 출력하는 단계(370)는 상기 제1 비트열과 상기 제2 비트열이 병합된 비트열과 상기 제3 비트열과 상기 제4 비트열이 병합된 비트열을 다시 병합하여 최종 비트열을 생성하고 이를 출력할 수 있다. 즉, 두 비트열을 병합한 비트열 끼리 다시 병합하여 최종 비트열을 생성하고 출력하는 단계이다.
일실시예에서 4개의 8비트 난수열을 병합하여 1개의 32비트의 난수 비트열을 출력할 수 있다. 이는 예시적일뿐 이에 한정되는 것은 아니며, 제어신호의 유무, 역할, 입력/출력비트의 크기, 연산을 위해 추출하는 비트열의 크기, 위치, 시프트 연산 종류 등은 통상의 기술자의 입장에서 변경이 가능하다.
도 4는 일실시예에 따른 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기의 동작 과정을 상세하게 나타낸 흐름도이다. 도 4에서는 도 3에서와 달리 구체적인 예를 들어 상세히 설명하나 이에 한정되는 것은 아니다.
가장 먼저 챌린지 혼합기는 먼저, 제어신호에 따라 입력 난수의 크기(N-bit)를 설정(410)할 수 있다. 입력 난수의 크기가 설정되면, 설정된 크기의 N-bit 난수(M)를 입력(420) 받는다. 난수의 입력과 함께 연산에 활용될 c1 그리고 c2 변수를 0으로 초기화 할 수 있다. 예시적으로 그러나 한정되지 않게 입력 난수의 크기와 출력 난수의 크기는 32비트인 경우로 설명한다.
다음으로 최상위비트 2개(M[N-1:N-8], M[N-9:N-16])와 최하위비트 2개(M[15:8], M[7:0])를 추출(430)할 수 있다. 먼저 입력된 난수를 16비트 크기의 최상위비트(M[N-1:N-16])와 최하위비트(M[15:0])로 분할하고, 각각의 비트를 다시 분할하여 최상위비트 2개(M[N-1:N-8], M[N-9:N-16])와 최하위비트 2개(M[15:8], M[7:0])로 분할하여 최종적으로 총 4개의 8비트 난수열이 추출될 수 있다. 도 3에서 표현한 제1 난수열 내지 제4 난수열에 대응한다.
추출되는 난수열에서 두 비트열의 1의 개수가 동일한지 여부를 비교(440)할 수 있다. 비트열의 비교는 1차 분할된 그룹끼리 1의 개수를 비교할 수 있다. 구체적으로 M[N-1:N-8] 비트열과 M[N-9:N-16] 비트열의 1의 개수를 비교하고, M[15:8] 비트열과 M[7:0] 비트열의 1의 개수를 비교할 수 있다.
만약 서로 비교되는 두 비트열이 포함하는 1의 개수가 동일하다면 두 비트열을 병합하여 병합 비트열을 생성할 수 있다.
반면에 1의 개수가 동일하지 않다면 다음의 동작을 수행한다. 일실시예에서 두 비트열 중 1의 개수가 더 많은 비트열을 A 비트열, 전체 32비트 비트열에서 A 비트열을 제외한 비트열을 B 비트열로 설명한다.
먼저 최상위비트열의 비교를 설명하면 A 비트열(M[N-9:N-16], 8비트)과 B 비트열(24비트)의 특정 8비트를 추출하여 1의 개수를 다시 검사한다. 상기 B 비트열의 특정 8비트는 B[N-9-c1:N-16-c1]일 수 있다.
한편, 최하위비트열의 비교인 경우에는 B 비트열의 특정 8비트는 B[7+c2:0+c2]일 수 있다.
만약 1의 개수가 동일하다면 A 비트열과 B 비트열의 특정 8비트를 병합하여 16비트 비트열을 출력하며, 동일하지 않은 경우에는 c1 및/또는 c2 변수를 1 증가시킨 후, 다시 1의 개수를 비교한다. 즉, B 비트열의 특정 8비트는 c1 및/또는 c2 변수의 증가에 의해 제1 방향으로 이동하여 선택될 수 있다. 이 때 B 비트열의 특정 8비트가 이동하는 방향은 최상위비트열인 경우와 최하위비트열인 경우 서로 다른 방향(제1 방향 및 제2 방향)으로 이동할 수 있으나, 서로 동일한 방향(제1 방향)으로 이동하는 것도 가능하다.
비교 과정은 비교하는 두 비트열의 1의 개수가 동일할 때 까지 반복하여 수행한다. 그러나 c1 또는 c2 변수가 N-16이상이 되는 경우에, 오버플로우(Overflow)가 발생한 것으로 간주하여 16비트 크기의 0 비트열을 출력할 수 있다.
상기 과정을 거쳐서 최상위비트열의 16비트 비트열 그리고 최하위비트열의 16비트 비트열이 생성(450)된다. 생성된 두 16비트 비트열에서 둘 중 어느 하나라도 오버플로우가 발생하여 0 비트열이 생성되었는지를 확인(460)할 수 있다.
두 비교 모두 성공적으로 끝나 0 비트열이 아닌 16비트의 비트열 2개가 생성되었다면, 이를 다시 병합하여 32비트의 비트열로 최종 출력(470)하게 된다. 그러나 둘 중 하나라도 16비트의 0 비트열이 있다면 32비트의 0 비트열을 최종 출력(471)할 수 있다.
도 5는 일실시예에 따른 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기(500)의 구성을 도시한 블록도이다.
먼저 입출력 신호에 대해서 설명한다. 클록(CLK) 신호는 챌린지 혼합기(500)를 제어하는 마스터 클록이며, 리셋(
Figure 112019051494546-pat00002
) 신호는 챌린지 혼합기(500)를 리셋하는 마스터 리셋(Active Low) 신호이다. 모드(Mode) 신호는 챌린지 생성에 활용될 난수의 크기를 설정하는 2비트 제어신호일 수 있다. 예시적으로 그러나 한정되지 않게 00부터 11까지 32비트 간격으로 128비트까지 활용 난수의 크기를 증가시킬 수 있다.
데이터인레디(DataInReady) 신호는 데이터인(DataIn) 신호가 준비되었음을 알리는 준비 신호이고, 데이터인(DataIn)은 입력 난수 신호를 의미한다. 인에이블(Enable) 신호는 챌린지 혼합기(500)의 동작을 활성화하는 신호이다.
출력유효(OutputValid) 신호는 출력이 준비되었음을 알리는 신호이고, 데이터아웃(DataOut)은 챌린지 혼합기(500)의 출력 난수 신호이다.
다음으로 챌린지 혼합기(500)의 각 구성을 설명한다.
입력 제어부(Input Controller)응 모드 신호와 준비(Ready) 신호에 따라 MSB/LSB 혼합기(MSB/LSB Scrambler Block)에 데이터인(DataIn) 신호를 총 4 구분으로 나누어 추출하는 구성이다.
MSB 혼합기는 MSB 16비트를 혼합하는 구성이며, LSB 혼합기는 LSB 16비트를 혼합하는 구성이다. 각 혼합기는 초기화부(510), 시프트 레지스터(520) 및 비교기(530)를 포함할 수 있다.
출력부(540)는 출력유효 제어부(OutputValid Controller)와 출력 제어부(Output Controller)를 포함할 수 있다. 상기 출력유효 제어부는 최종 출력 유효 출력 신호를 위해 MSB 혼합기와 LSB 혼합기의 출력 유효 신호를 병합할 수 있다. 그리고 출력 제어부는 최종 데이터아웃(DataOut) 신호를 출력하기 위해 MSB 혼합기와 LSB 혼합기의 데이터아웃(DataOut) 신호를 병합할 수 있다.
마지막으로 챌린지 혼합기의 각 구성의 동작을 상세히 설명한다.
모드 신호에 따라 입력되는 난수를 총 네 개의 비트열로 구분 및 추출하여, 각각 MSB 혼합기와 LSB 혼합기에 전달한다. 각각의 혼합기에서는 초기화부(510)에서 입력된 데이터인 두 개의 비트열을 시프트 레지스터(520)로 전달한다.
상기 두 개의 비트열을 다시 비교기(530)로 전달하고, 초기 비교 연산을 수행한다. 그 후, 비교 결과에 따라 1의 개수가 동일한 경우에는 바로 출력하지만, 1의 개수가 다른 경우에는 다시 시프트 레지스터(520)로 돌아가 시프트 연산을 수행할 수 있다. 비교 및 시프트 과정은 두 비트열의 1의 개수가 동일할 때 까지 반복하여 수행되고, 연산이 끝나면 1의 개수가 동일한 두 비트열을 병합하여 데이터아웃(DataOut)과 출력유효(OutputValid) 신호로 출력한다.
도 6은 도 5에서 설명한 블록도의 시뮬레이션 결과를 도시한다. 일실시예에 따른 챌린지 혼합기의 신호를 도시하며, 난수 구성은 임의의 샘플로 설명하므로 이에 한정되는 것은 아니다.
가장 먼저 리셋(
Figure 112019051494546-pat00003
) 신호를 통해 챌린지 혼합기 전체 구성의 리셋을 수행한다. 데이터인레디(DataInReady)와 인에이블(Enable) 신호의 상승에 따라 데이터인(DataIn) 신호가 입력되고, 챌린지 혼합기가 동작을 시작한다.
모드(Mode) 신호가 00에 의해, 128비트의 데이터인(DataIn) 중에서 임의의 32비트 신호 709E_EAA3 (610)가 추출된다. 추출된 상기 709E_EAA3 (610)를 이용하여 챌린지 혼합기는 759E_EAEA (620)의 출력을 생성할 수 있다.
즉, 챌린지 혼합기의 연산을 거치기 전 동일한 1의 개수를 가지지 않았던 비트열들(610)은 혼합기를 통해 동일한 강도(Strength)를 갖는 챌린지 비트열(620)로 출력될 수 있다.
도 6의 입력 값에 따른 출력 값의 연산 과정을 구체적으로 설명한다.
비트열 EA와 A3의 1의 개수를 비교하기 위해 2진수로 변경하면, 1110 1010 와 1010 0011 가 된다. 1의 개수를 비교하면 각각 5개와 4개로 동일하지 않다. 따라서 1110 1010 (EA)를 비트열 A라 하고, 전체 비트열 중 EA를 제외한 나머지 비트열 0111 0000 1001 1110 1010 0011 (709E_A3)를 비트열 B라 한다.
비트열 A(1110 1010, EA)와 비트열 B에서 임의로 추출된 8비트 비트열 1010 0011 (A3)의 1의 개수를 비교하면 5개와 4개로 차이가 있다. 따라서 추출된 8비트 비트열을 좌측으로 하나 시프트 시키면, 0101 0001 (51)가 된다. 이 경우는 1의 개수가 3개가 되므로 여전히 비트열 A와 비교할 때에 1의 개수가 동일하지 않다.
그에 따라 1의 개수가 비트열 A와 동일할 때 까지 반복적으로 비트열을 좌측으로 시프트 시키면 1010 1000 (A8) 그리고 1101 0100 (D4)를 거쳐 1110 1010 (EA) 에 도달한다. 이 때에 1110 1010 (EA)와 비트열 A가 1의 개수가 동일해져 시프트를 종료하고 두 비트열을 병합하여 EAEA를 출력하게 된다.
다음으로 비트열 70과 9E의 비교 과정을 살펴본다. 각각을 2진수로 변경하고, 1의 개수를 비교하면 0111 0000(70) 와 1001 1110(9E) 는 3개와 5개로 1의 개수가 동일하지 않다. 따라서 1001 1110 (9E)를 비트열 A'라 하고, 전체 32비트 비트열에서 비트열 A'를 제외한 나머지 0111 0000 1110 1010 1010 0011 (70_EAA3)를 비트열 B'라 한다.
비트열 A'(1001 1110, 9E)와 비트열 B'에서 임의로 추출된 8비트 비트열 0111 0000 (70)의 1의 개수를 비교하면 5개와 4개로 차이가 있다. 따라서 추출된 8비트 비트열을 좌측으로 하나 시프트 시키면, 1110 0001 (E1)이 된다. 이 경우는 1의 개수가 4개가 되므로 여전히 비트열 A'와 비교할 때에 1의 개수가 동일하지 않다.
그에 따라 1의 개수가 비트열 A'와 동일할 때 까지 반복적으로 비트열을 좌측으로 시프트 시키면 1100 0011 (C3), 1000 0111 (87), 0000 1110 (0E), 0001 1101 (1D), 0011 1010 (3A)를 거쳐 0111 0101 (75) 에 도달한다. 이 때에 0111 0101 (75)와 비트열 A'가 1의 개수가 5개로 동일해지므로 시프트를 종료하고 두 비트열을 병합하여 759E를 출력하게 된다.
일실시예에 따른 챌린지 혼합기에서 생성 가능한 챌린지의 개수는 다음과 같이 계산할 수 있다. 물리적 복제 불가능 함수를 구성하는 균형 잡힌 강도를 가져야하는 요소의 개수(또는 챌린지의 비트폭)는 총 4N개(또는 4N 비트)라고 가정한다.
이 때, 전체 4n 비트(n1, n2, n3, n4) 중 n1, n2가 동일한 강도를 가지고, n3, n4가 동일한 강도를 가져야한다.
n1, n2가 동일한 강도를 갖는 경우의 수는 n개 중 최저 1개를 선택하는 경우부터 n개 전체를 선택하는 경우의 수로 계산하면 다음과 같다.
n=1 일 때, 챌린지의 수는 1개
n=2 일 때, 챌린지의 수는 2*2+1 = 5개 (1개 선택 + 2개 선택)
n=3 일 때, 챌린지의 수는 3*3+3*3+1 = 19개
n=n 일 때, 챌린지의 수는
Figure 112019051494546-pat00004
동일한 방법으로 나머지 n3, n4에 대한 경우의 수도 계산할 수 있다. 전체 4n 비트를 고려한 경우의 수는 다음 식과 같이 계산된다.
Figure 112019051494546-pat00005
만약, n=8인 32비트 챌린지라면, 생성 가능한 챌린지의 총 개수는 다음 식과 같이 계산할 수 있다.
Figure 112019051494546-pat00006
개 이다.
본 발명의 일실시예에 따르면 기존의 물리적 복제 불가능 함수가 동일한 강도를 갖지 않는 챌린지를 입력하더라도 올바르게 난수를 생성할 수 있다는 효과가 있다. 임의의 난수를 입력하면 비교되는 요소별로 동일한 강도를 갖는 난수 챌린지 비트열을 자동으로 생성하기 때문에 이를 물리적 복제 불가능 함수에 입력하여 응답을 생성할 수 있다. 또한, 설계자의 목적, 보안 칩의 용도 또는 특성에 따라 추가 회로를 통해 새로운 규칙을 갖는 챌린지를 생성하여 이를 물리적 복제 불가능 함수의 입력으로 활용할 수도 있다.
일실시예에 따른 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기 기법은 물리적 복제 불가능 함수와 함께 보안이 필요하지만 소프트웨어를 이용한 보안시스템을 적용하기 힘든 다양한 분야에서 활용될 수 있다.
구체적으로 효율 상 마이크로프로세서를 활용하기 어려운 저 전력 초소형 사물인터넷(IoT)장치에 적용하여 효율적으로 보안성을 향상시킬 수 있다. 또한 저 가격(Low Cost), 저 전력(Low Power), 고 효율(High Efficiency)의 난수 발생기 그리고 신원 인증 시스템으로 활용할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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 (5)

  1. 제어 신호에 따라, 설정되는 크기의 난수를 입력 받고 상기 난수를 제1 비트열, 제2 비트열, 제3 비트열, 제4 비트열로 분할하는 초기화부;
    상기 제1 비트열과 상기 제2 비트열, 상기 제3 비트열과 상기 제4 비트열의 1의 개수가 동일한지 비교하는 비교기; 및
    비트열의 1의 개수가 동일하지 않은 경우에 1의 개수가 적은 비트열을 제1 방향으로 시프트하는 시프트 레지스터
    를 포함하는 챌린지 혼합기.
  2. 제1항에 있어서,
    상기 제1 비트열과 상기 제2 비트열, 상기 제3 비트열과 상기 제4 비트열을 병합하고, 상기 제1 비트열과 상기 제2 비트열이 병합된 비트열과 상기 제3 비트열과 상기 제4 비트열이 병합된 비트열을 다시 병합하여 최종 비트열을 출력하는 출력부
    를 더 포함하는 챌린지 혼합기.
  3. 제2항에 있어서,
    상기 시프트 레지스터는
    상기 비교기에 의해 비교되는 결과의 비트열의 1의 개수가 동일할 때까지 반복적으로 상기 1의 개수가 적은 비트열을 상기 제1 방향으로 시프트하는, 챌린지 혼합기.
  4. 제3항에 있어서,
    상기 비교기는
    비트열의 비교 횟수가 미리 지정되는 횟수를 초과하는 경우에 0비트열을 출력부로 제공하는, 챌린지 혼합기.
  5. 제어 신호에 따라, 설정되는 크기의 난수가 입력되는 단계;
    상기 난수를 제1 비트열, 제2 비트열, 제3 비트열, 제4 비트열로 분할하는 단계;
    상기 제1 비트열과 상기 제2 비트열, 상기 제3 비트열과 상기 제4 비트열의 1의 개수가 동일한지 비교하는 단계;
    비트열의 1의 개수가 동일하지 않은 경우에 1의 개수가 적은 비트열을 제1 방향으로 시프트하는 단계;
    상기 제1 비트열과 상기 제2 비트열, 상기 제3 비트열과 상기 제4 비트열을 병합하는 단계; 및
    상기 제1 비트열과 상기 제2 비트열이 병합된 비트열과 상기 제3 비트열과 상기 제4 비트열이 병합된 비트열을 다시 병합하여 최종 비트열을 출력하는 단계
    를 포함하는 챌린지 혼합 방법.
KR1020190058932A 2019-05-20 2019-05-20 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기 및 챌린지 혼합 방법 KR102169468B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190058932A KR102169468B1 (ko) 2019-05-20 2019-05-20 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기 및 챌린지 혼합 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190058932A KR102169468B1 (ko) 2019-05-20 2019-05-20 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기 및 챌린지 혼합 방법

Publications (1)

Publication Number Publication Date
KR102169468B1 true KR102169468B1 (ko) 2020-10-23

Family

ID=73039403

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190058932A KR102169468B1 (ko) 2019-05-20 2019-05-20 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기 및 챌린지 혼합 방법

Country Status (1)

Country Link
KR (1) KR102169468B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101408619B1 (ko) * 2013-01-14 2014-06-17 충북대학교 산학협력단 커패시터 용량 편차 기반 물리적 복제 방지 기능 시스템
US8782396B2 (en) * 2007-09-19 2014-07-15 Verayo, Inc. Authentication with physical unclonable functions
US8949493B1 (en) * 2010-07-30 2015-02-03 Altera Corporation Configurable multi-lane scrambler for flexible protocol support
KR20150064148A (ko) 2012-10-04 2015-06-10 인트린직 아이디 비브이 물리적 복제방지 기능으로서 이용되는 메모리로부터 암호 키를 생성하기 위한 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782396B2 (en) * 2007-09-19 2014-07-15 Verayo, Inc. Authentication with physical unclonable functions
US8949493B1 (en) * 2010-07-30 2015-02-03 Altera Corporation Configurable multi-lane scrambler for flexible protocol support
KR20150064148A (ko) 2012-10-04 2015-06-10 인트린직 아이디 비브이 물리적 복제방지 기능으로서 이용되는 메모리로부터 암호 키를 생성하기 위한 시스템
KR101408619B1 (ko) * 2013-01-14 2014-06-17 충북대학교 산학협력단 커패시터 용량 편차 기반 물리적 복제 방지 기능 시스템

Similar Documents

Publication Publication Date Title
Aseeri et al. A machine learning-based security vulnerability study on xor pufs for resource-constraint internet of things
US9729317B2 (en) Optical physical uncloneable function
Sklyarov et al. High-performance implementation of regular and easily scalable sorting networks on an FPGA
KR101773490B1 (ko) 데이터-의존 회로 경로 응답들을 이용하는 고유하고 복제불가한 플랫폼 식별자들
US7346862B2 (en) Method and apparatus for optimizing a logic network in a digital circuit
Zhou et al. Vulnerability and remedy of stripped function logic locking
US11296866B2 (en) Dynamic transform in blockchain header validation
KR102165427B1 (ko) 메모리 기반 puf 장치 및 그 동작 방법
US3436737A (en) Shift enable algorithm implementation means
KR102169468B1 (ko) 물리적 복제 불가능 함수에 적용 가능한 챌린지 혼합기 및 챌린지 혼합 방법
KR102129668B1 (ko) 공정편차를 이용한 디지털 값 생성 장치 및 방법
TWI659329B (zh) 資料存取裝置及方法
US11209993B2 (en) Physical unclonable function (PUF) for NAND operator
CN107003856B (zh) 用于寄存器内容的快速修改的系统和方法
KR102192845B1 (ko) 물리적 복제 불가능 함수에 적용 가능한 응답 다중 비교를 통한 응답 불안정성 감지 장치 및 방법
US10115463B1 (en) Verification of a RAM-based TCAM
US9100015B1 (en) Find-first-set bit circuit and method
Dasgupta et al. An Asic for cellular automata based message authentication
Yoshimura et al. CRLock: A SAT and FALL attacks resistant logic locking method at register transfer level
US9830131B2 (en) Trailing or leading zero counter having parallel and combinational logic
US20190088307A1 (en) Bit processing
US11237800B2 (en) Time-shifted seed for random number generator
KR102515902B1 (ko) 물리적 복제 방지 기술을 이용한 인증 장치
KR102170395B1 (ko) 상호 보완적인 응답을 갖는 물리적 복제 방지 기능 회로에 적용 가능한 응답 결정 시간을 이용한 응답 신호의 불안정성을 감지하는 장치 및 방법
US20240045998A1 (en) Data-gating based masking

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant