KR101623109B1 - Fpga에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치 - Google Patents

Fpga에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치 Download PDF

Info

Publication number
KR101623109B1
KR101623109B1 KR1020140065121A KR20140065121A KR101623109B1 KR 101623109 B1 KR101623109 B1 KR 101623109B1 KR 1020140065121 A KR1020140065121 A KR 1020140065121A KR 20140065121 A KR20140065121 A KR 20140065121A KR 101623109 B1 KR101623109 B1 KR 101623109B1
Authority
KR
South Korea
Prior art keywords
lut
delay time
output
flip
clock
Prior art date
Application number
KR1020140065121A
Other languages
English (en)
Other versions
KR20150137375A (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 부산대학교 산학협력단
Priority to KR1020140065121A priority Critical patent/KR101623109B1/ko
Publication of KR20150137375A publication Critical patent/KR20150137375A/ko
Application granted granted Critical
Publication of KR101623109B1 publication Critical patent/KR101623109B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/72Protecting 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 in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting 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/73Protecting 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Logic Circuits (AREA)

Abstract

본 발명은 디바이스 식별 및 키 생성 등 암호학적인 용도로 사용되는 물리적 복제 방지 회로를 FPGA(Field Programmable Gate Array)를 통해서 구현하는 물리적 복제 방지 함수 회로를 구현하기 위한 장치를 제공하기 위한 것으로서, FPGA 내부의 룩업테이블(Look-up Table : LUT) 게이트에서 발생하는 지연 시간을 바탕으로 클럭 신호를 방생시키는 클럭 생성부와, 플립플롭 사이에 FPGA LUT를 배치하여 클럭 주기와 비슷한 셋업 타임(Setup Time)을 가지도록 하여 이전 플립플롭 값의 반영 여부를 예측하는 것을 방지하는 출력 생성부와, 전체 회로를 제어하기 위한 제어모듈을 포함하여 구성되는데 있다.

Description

FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치{Apparatus To Implement Physically Unclonable Functions On FPGA}
본 발명은 디바이스 식별 및 키 생성 등 암호학적인 용도로 사용되는 물리적 복제 방지 회로를 FPGA(Field Programmable Gate Array)를 통해서 구현하는 물리적 복제 방지 함수 회로를 구현하기 위한 장치에 관한 것이다.
물리적 복제 방지 함수(Physically Unclonable Functions : PUF)는 물리적으로는 그 구조를 복사해 낼 수 없는 함수로써, 고유한(unique) 특성을 가지는 함수이다. 이 함수는 수학적인 함수라기보다는 어떤 입력에 대해 예측할 수 없는 결과를 출력하는 함수이며, 요청-응답(challenge-response)이라는 형태의 입출력을 가진다. 따라서 PUF는 동일한 제조 방법으로 만들어 지더라도 각각의 PUF가 완전히 다른 CRP(Challenge Response Pair)를 가져야 한다.
또한 단일 PUF에 대해서는 동일한 요청에 대해서 일관성 있게 동일한 응답을 출력해야 한다. 주로 PUF는 칩 제조 공정상에서의 분산(Variance)을 이용해 만들어지기 때문에 이 두 가지의 특성을 동시에 만족시키는 것이 어려운 것으로 알려져 있다.
그리고 지금까지 여러 가지 형태의 PUF가 제시되었으며, 첫 번째 등장하는 방법은 도 1에서 도시하고 있는 것과 같이, 중재기(Arbiter)라고 불리는 플립플롭(10)의 CLK 단과 D 입력단에 동일한 길이의 패스를 만들고, 이 두 개의 라인에 같은 클릭신호를 인가하여, 어느 패스의 신호가 먼저 도착하느냐에 따라 중재기 플립플롭(10)의 출력을 결정하는 것이다. 상기 플립플롭(10)이 클럭신호의 상승 에지(Rising Edge)에서 동작하게 되어 있다면, D 패스의 신호가 일찍 도착할 경우 1이, 클럭 패스의 신호가 일찍 도착할 경우 0이 출력될 것이다.
이때, 동일한 두 패스의 변화를 주기 위해 패스에 스위칭 신호를 주어 입력값에 따라 값이 패스를 바꾸어 가면서 전달 되도록 구성할 수 있으며, 입력값에 따라 미세하게 신호전달이 달라질 수 있어, 입력값에 따라 다른 값을 출력할 수도 있다. 이 방법이 중재기 PUF라고 알려져 있는 방법이다.
또 다른 방법은 도 2에서 도시하고 있는 것과 같이, 인버터 로직을 이용하여 동일한 구조의 링 오실레이터(Ring Oscillator : RO)(20)를 여러 개 구현하고, 이 중 두 개의 RO(20)의 출력을 선택하여 이 신호를 클럭신호로 삼아 카운팅을 한 후 두 개의 값 중 어떤 값이 더 큰지를 판단하여 결과를 출력하는 방법이다.
이 외에도 SRAM에 전원을 인가하여 가장 처음 인가되는 각 메모리 셀의 값을 함수의 출력으로 이용하는 SRAM PUF와 같은 방법이 있다. 이는 메모리 셀이 6개의 트랜지스터를 이용해 대칭형태의 구조를 이루고 있으며, 대칭된 구조의 준안정(Metastable)한 특성으로 인해 초기 구동 시 둘 중 하나의 값으로 수렴하는 현상을 이용한 것이다.
상기 중재기 PUF는 일반적으로 기계학습(Machine Learning)을 통해 일부 CRP를 이용해 함수의 모델을 만들어 나머지 CRP를 추측할 수 있게 하는 모델링 공격에 취약한 것으로 알려져 있으며, 상기 RO PUF는 링 오실레이터(Ring Oscillator : RO)에 의해 발생하는 전자기장으로부터 RO의 주파수(Frequency)를 추출해 내어 공격 가능하다고 알려져 있다. 또한 상기 SRAM 동작 시 발생하는 전자 방출 현상을 관찰하여 초기 SRAM 동작을 모델링 할 수 있으며, 이를 이용해 미세한 식각 기법을 이용하면 SRAM PUF를 복제방지 할 수 있는 것으로 연구를 통해 알려져 있다.
등록특허공보 제10-1092039 : 집적회로의 인증 방법 및 장치
따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 첫째로 스캔(Scan) PUF 기술을 FPGA로 더욱 안전하고 신뢰성 있게 구현하기 위한 더욱 구체적인 구현 방법을 제안하고, 둘째로 출력 예측 공격에 대비할 수 있는 개선 방안을 제시하여, FPGA에서 PUF의 출력을 안정적이고 신뢰성 있게 하도록 하기 위해 Majzoobi 등이 제안한 PDL(Programmable Delay Logic)를 활용하여 스캔 PUF를 구현하는 방안을 제시하고, 또한 이를 활용하여 출력 예측 공격에 대비할 수 있도록 특정 플립플롭(Flip-flop) 이후의 출력을 피드백하여 이전의 플립플롭(Flip-flop) 출력으로 활용할 수 있는 물리적 복제 방지 함수 회로를 구현하기 위한 장치를 제공하는데 그 목적이 있다.
본 발명의 다른 목적은 디바이스 식별 및 키 생성 등 암호학적인 용도로 사용되는 물리적 복제 방지 회로를 FPGA(Field Programmable Gate Array)를 통해서 구현하는 물리적 복제 방지 함수 회로를 구현하기 위한 장치를 제공하는데 있다.
본 발명의 다른 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치의 특징은 FPGA 내부의 룩업테이블(Look-up Table : LUT) 게이트에서 발생하는 지연 시간을 바탕으로 클럭 신호를 방생시키는 클럭 생성부와, 플립플롭 사이에 FPGA LUT를 배치하여 클럭 주기와 비슷한 셋업 타임(Setup Time)을 가지도록 하여 이전 플립플롭 값의 반영 여부를 예측하는 것을 방지하는 출력 생성부와, 전체 회로를 제어하기 위한 제어모듈을 포함하여 구성되는데 있다.
바람직하게 상기 클럭 생성부는 외부에서 공급되는 본래의 제 1 클럭 신호를 출력하는 제 1 클럭 신호부와, LUT를 활용하여 지연시간의 제어가 가능한 PDL을 이용해 LUT의 지연 시간으로부터 약간의 지연 시간 조절이 가능한 또 다른 제 2 클럭 신호를 출력하는 제 2 클럭 신호부와, 상기 지연된 제 2 클럭 신호와 같은 방법으로 이전의 제 1 클럭 신호로 다시 LUT 만큼의 지연 시간이 발생하는 제 3 클럭 신호를 출력하는 제 3 클럭 신호부와, 상기 제 1 내지 제 3 클럭 신호들 중 하나를 출력하는 선택부와, 상기 선택부의 출력을 선택하기 위한 신호 선택부와, 각 LUT의 지연시간을 제어하기 위한 신호 제어부를 포함하여 구성되는 클럭 생성기를 가지는 것을 특징으로 한다.
바람직하게 상기 클럭 생성부는 LUT의 설정을 지연 시간이 조절 가능한 인버터로 설정하여 LUT의 출력을 다시 입력으로 피드백하여, 값이 연속하여 바뀌도록 하게 하는 2개 이상의 링 오실레이터와, 상기 2개 이상의 링 오실레이터의 출력 중 하나를 선택하기 위한 선택부와, 상기 선택부의 출력을 선택하기 위한 신호 선택부와, 각 LUT의 지연시간을 제어하기 위한 신호 제어부로 포함하여 구성되는 클럭 생성기를 가지는 것을 특징으로 한다.
바람직하게 상기 출력 생성부는 두 개 이상의 플립플롭과, 상기 플립플롭과 플립플롭 사이에 있는 두 개 이상의 FPGA LUT를 이용한 지연시간 조절이 가능한 PDL과, 모든 플립플롭에 공급되는 클럭 신호를 출력하는 클럭 신호 생성부를 포함하여 구성되는 것을 특징으로 한다.
바람직하게 상기 클럭 생성부는 LUT의 지연 시간 제어 신호를 특정 신호로 고정시켜 각 FPGA의 각 LUT의 공정상에 따른 특징에 따라, 동일하지만 차이가 있는 지연 시간 특성을 가지는 것을 특징으로 한다.
바람직하게 상기 클럭 생성부는 값을 변경할 수 있는 비휘발성 메모리로부터 LUT의 지연 시간 제어 신호를 입력받아, 필요시마다 LUT의 지연 시간 특성을 바꿀 수 있는 것을 특징으로 한다.
바라직하게 상기 클럭 생성부는 출력 생성부 내부의 각 플립플롭 출력으로부터 LUT의 지연 시간 제어 신호를 입력받아, LUT로 인한 지연 시간을 예측하기 더욱 어렵게 하여 출력 생성부에서의 이전 플립플롭 값의 반영 여부를 예측하는 것을 더욱 방지되도록 하는 것을 특징으로 한다.
바람직하게 상기 출력 생성부는 값을 변경할 수 있는 비휘발성 메모리로부터 LUT의 지연 시간 제어 신호를 입력받아, 필요시마다 LUT의 지연 시간 특성을 바꿀 수 있는 것을 특징으로 한다.
바람직하게 상기 출력 생성부는 출력 생성부 내부의 각 플립플롭 출력으로부터 LUT의 지연 시간 제어 신호를 입력받아, LUT로 인한 지연 시간을 예측하기 더욱 어렵게 하여 이전 플립플롭 값의 반영 여부를 예측하는 것을 더욱 방지되도록 하는 것을 특징으로 한다.
이상에서 설명한 바와 같은 본 발명에 따른 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치는 다음과 같은 효과가 있다.
첫째, 스캔 PUF를 구현함에 있어서 중요한 것은 플립플롭 사이에서 발생하는 게이트 지연 시간과 네트 지연시간의 합이 공급되는 클럭의 주기와 거의 차이가 없을 정도로 유사해야 한다는 것이다. 이때, 도 3과 같이 스캔 패스(Scan Path) 상에 룩업테이블(Look-up Table : LUT)을 배치하고, 도 4와 같이 스캔 플립플롭 사이에 지연시간을 가지도록 구현함에 있어서도 기본 RO 구현에 LUT로 사용하게 되면, 플립플롭 사이의 지연시간과 매우 유사한 시간의 클럭을 얻을 수 있다.
둘째, 이후의 다른 출력을 피드백하여 출력 결정에 영향을 미치는 기법은 이미 기존의 중재기 PUF의 출력 예측 공격에 대한 안전성을 높이기 위해 많이 사용되었으며, Rㆌhrmair 등의 모델링 공격 실험에서 그 안전성을 입증 받은바 있다. 실제 출력 예측 공격에서 아무런 공격 방법 기법이 구현되지 않은 중재기 PUF의 경우 출력을 예측함에 있어 중재기 PUF 및 FeedForward PUF에 대한 출력 예측 공격 결과를 나타는 다음 표 1과 같이 1초 이내의 학습 시간으로 공격이 가능하였지만, 피드백 기법을 활용한 기법의 경우 학습 시간이 몇 십분 단위로 늘어나면서, 피드백 기법으로 인한 효과가 입증될 수 있다.
Figure 112014051052271-pat00001
도 1 은 일반적인 중재기 PUF의 구성을 나타낸 구성도
도 2 는 일반적인 링 오실레이터 PUF의 구성을 나타낸 구성도
도 3 은 본 발명의 스캔 PUF를 구현함에 있어서 스캔 패스(Scan Path)의 구성을 나타낸 구성도
도 4 는 도 3의 스캔 PUF 사이에 지연시간을 가지도록 구현된 구성을 나타낸 구성도
도 5 는 본 발명의 실시예에 따른 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치를 나타낸 블록도
도 6 은 도 5의 클럭 생성부를 상세히 나타낸 구성도
도 7 은 도 6의 LUT로 구성한 PDL을 나타낸 구성도
도 8 은 도 5의 출력 생성부를 나타낸 구성도
도 9 는 도 5의 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치에 재설정부가 추가된 다른 실시예를 나타낸 블록도
도 10 은 도 9의 출력 생성부(200)에서 피드포워드 구조(260)(270)을 활용한 구성을 나타낸 구성도
도 11 은 도 9의 클럭 생성부의 다른 구현 방법을 나타낸 구성도
본 발명의 다른 목적, 특성 및 이점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
본 발명에 따른 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 5 는 본 발명의 실시예에 따른 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치를 나타낸 블록도이다.
도 5에서 도시하고 있는 것과 같이, 본 발명은 클럭 생성부(100)와, 출력 생성부(200)와, 제어 모듈(300)로 구성된다.
상기 클럭 생성부(100)는 도 6에서 도시하고 있는 것과 같이, 본래의 클럭 신호(150)를 비롯하여, 본래의 클럭신호와 일정 지연 시간만큼 차이가 나는 여러 클럭 신호(160)선으로 구성되어 있으며, 이들 중 하나를 선택해 내는 선택기(130) 등으로 구성되어 있다.
이때, 상기 본래의 클럭신호(150)와 그 다음 입력인 클럭 2(clock 2)(160)와는 룩업테이블(Look-up Table : LUT)(110) 게이트의 지연 시간 만큼의 차이가 발생하게 된다. 같은 방법으로 선택기(130)의 연속된 입력들 사이에는 LUT(110) 게이트의 지연 시간 만큼을 차이가 발생한다.
그리고 상기 선택기(130)에서 첫 번째 신호의 클럭이 상승 에지가 출력되는 순간에 셀(sel) 신호(140)를 다음 신호로 바꾸게 되면, 두 번째 신호의 경우 지연 시간으로 인해 여전히 로우(low) 신호이기 때문에, 클럭(CLOCK) 출력(170)은 0으로 바뀌게 되고, 다음 클럭신호의 상승 에지는 정확히 LUT(110)로 인한 지연 시간 이후에 출력되게 된다. 따라서 클럭 생성부(100)에서 출력되는 클럭 신호(170)의 경우 첫 상승 에지 이후에 LUT 만큼의 지연시간이 지나 또 다른 상승 에지를 출력하게 한다.
도 7 은 도 6의 LUT로 구성한 PDL을 나타낸 구성도이다.
도 7에서 도시하고 있는 것과 같이, 상기 LUT(110)는 FPGA에서 조합회로를 구성하기 위한 기본 단위로서, 내부의 SRAM(111)을 어떻게 설정하느냐에 따라 입력 값 I1(113), I2(114), I3(115)을 이용해 다양한 논리연산을 수행할 수 있도록 한다.
내부의 SRAM(111)에는 논리 연산을 정의하기 위한 값이 들어 있으며, 해당 값이 입력 값 I1(113), I2(114), I3(115)에 따라 MUX(112)의 출력이 선택되어 출력(116)을 통해 출력된다. 현재 기술에서는 4개의 입력을 이용해 24개의 논리 값을 만들 수 있는 LUT4 혹은 6개의 입력을 사용하는 LUT6을 많이 사용하고 있으며, 도 7에서는 설명을 간략하게 하기 위해서 3개의 입력을 사용하는 경우의 LUT(110)를 보여주고 있다. LUT(110)의 SRAM(111)을 10101010으로 설정하게 되면, I2(114)와 I3(115) 입력 값과 관계없이 I1(113) 값에 따라 I1(113)과 동일한 값이 출력(116)으로 출력되게 되어 전체 로직을 버퍼와 같은 형태로 운용할 수 있다. I2(114), I3(115)는 출력되는 값 자체에는 영향을 미치지 않지만, 값이 출력되는 경로를 선택하게 됨으로써, 입력 I1(113)에서 출력(116)으로 가는 지연시간의 차이가 발생하게 한다. LUT(110)의 SEL(112) 신호는 도 7의 I2(114) 및 I3(115)에 해당하며, LUT의 지연 시간을 다르게 하는 역할을 한다.
도 8 은 도 5의 출력 생성부를 나타낸 구성도이다.
도 8에서 도시하고 있는 것과 같이, 상기 출력 생성부(200)는 필요한 출력 비트수보다 하나 많은 플립플롭(210)과 플립플롭 사이의 지연시간을 주기 위한 LUT(230)로 구성되어 있다.
클럭 생성부(100)에서 출력되는 클럭 신호(170)는 플립플롭의 입력 클럭 신호(220)로 입력된다. 앞서 살펴본 것과 같이 클럭 생성부(100)에서는 LUT의 지연시간과 유사한 주기의 클럭 신호를 생성하므로, 플립플롭을 제외한 모든 플립플롭의 출력은 PUF의 출력으로 사용될 수가 있다. 이때, LUT(230)는 도 7의 LUT와 동일한 형태로 셋업이 되며, SEL(240) 신호에 의해 지연 사간이 약간 달라질 수 있다.
상기 LUT(110)(230)로 인한 지연 시간은 모든 LUT(110)(203)에서 거의 동일하게 나타나지만, 모든 LUT에서 정확하게 동일한 지연시간을 가지지는 않는다. LUT의 평균 지연시간을
Figure 112014051052271-pat00002
라고 하면, 실질적으로는
Figure 112014051052271-pat00003
의 지연시간을 가지게 되는데, 만약 클럭 생성부(100)에서 출력된 클럭(170)(220)의 주기가 플립플롭 사이의 LUT(230)의 지연시간을 포함하는 시간보다 짧을 경우 셋업 타임(setup time)에 의해 이전 플립플롭(210)의 출력이 다음 플립플롭(210)에 반영되지 않는다.
하지만, 클럭(170)(220)의 주기가 더 길다면, 해당 값이 다음 플립플롭(210)에 반영이 되게 된다. 이와 같은 방법을 사용하면 각 플립플롭 및 LUT, FPGA 칩에 따라서 다 다른 특성을 보이게 되며, 이러한 특성은 곧 PUF의 특성이 된다.
클럭 생성부(100)의 LUT(110)의 SEL(120) 신호와 출력 생성부(200)의 LUT(230)의 SEL 신호(240)는 다음과 같은 방법으로 활용될 수 있다. SEL 신호(120)(240)를 모두 고정 값으로 둘 경우에는 별 다른 기법 없이 가장 기본적인 형태의 PUF가 된다.
도 9 는 도 5의 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치에 재설정부가 추가된 다른 실시예를 나타낸 블록도이다.
도 9에서 도시하고 있는 것과 같이, 일반적인 물리적 복제 방지 함수는 한번 제조되게 되면, 그 특성이 고정되어 내부 구조를 바꾸는 것이 불가능하다. 하지만 도 9의 실시예의 경우, 물리적 복제 방지 회로의 내부 함수 구조를 바꾸기를 원할 경우 재설정(400)의 값만 바꾸어 줌으로써 가능하다. 재설정부(400)는 비휘발성 메모리를 통해 값을 저장할 수 있으며, 저장된 값은 클럭 생성부(100)와 출력 생성부(200)의 LUT(110)(230)의 SEL(120)(240) 입력으로 연결되어, LUT의 지연시간 특성을 변화시켜 재설정부(400)의 값에 따라 내부구조를 변경할 수 있다.
출력 생성부(200)의 LUT(230)의 SET 입력(240)을 활용하는 다른 방법은 전 후방에 있는 플립플롭(210)의 출력을 SEL 입력(240)으로 넣는 방법이다.
도 10 은 도 9의 출력 생성부(200)에서 피드포워드 구조(260)(270)을 활용한 구성을 나타낸 구성도이다.
도 10에서 도시하고 있는 것과 같이, 출력 생성부(200)는 앞뒤 다른 플립플롭(210)의 출력을 LUT(230)의 입력 신호로 넣는 방법을 활용하면 플립플롭(210)의 출력을 더욱 더 예측하기 어려워진다.
한편, 도 10에 있는 방법 외에 후방에 있는 LUT(230)의 SEL(240)에 플립플롭(210)의 출력을 넣어주는 피드백 방법을 활용할 수도 있으며, 두 가지 방법을 함께 사용해도 무방하다.
비슷한 방법으로 출력 생성부(200) 각 플립플롭(210)의 출력을 클럭 생성부(100)내의 LUT(110)에 넣는 방법을 활용할 수도 있다. 이 방법을 사용할 경우 클럭 생성부(100)가 생성하는 클럭 자체도 예측하기가 어려워지면서 출력 값을 예측해내기 어렵도록 할 수 있다.
상기 도 9와 도 10에서 설명한 두 가지 방법은 동시에 적용하는 것이 가능하다. 일반적으로 FPGA를 구성하는 LUT의 경우 입력이 4개나 6개로 구성되어 있기 때문에, 여분의 지연 시간 제어 시그널(114)(115)을 가질 수 있다. 따라서 SEL(240) 입력의 일부는 재설정부(400)에서 입력하고, 일부는 전방이나 후방의 플립플롭(210)의 출력을 입력하게 되면, 두 가지 효과를 모두 얻을 수 있다.
도 11 은 도 9의 클럭 생성부의 다른 구현 방법을 나타낸 구성도이다.
도 11에서 도시하고 있는 것과 같이, 클럭 생성부(100)의 LUT(110)는 도 7과는 반대로 01010101로 세팅이 되어 그 자체는 버퍼가 아닌 인버터로 구동하게 된다. 따라서 약 LUT 지연 시간의 두 배 주기를 가지는 클럭 신호가 만들어 진다. 이렇게 만들어진 여러 개의 링 오실레이터(Ring Oscillator)의 출력은 선택기(130)를 통해 하나의 출력(170)만 출력이 된다.
도 11의 클럭 생성부를 사용할 경우 늘어난 클럭 주기로 인해, 출력 생성부(100)의 LUT(230)는 두 개를 연접해서 사용해야 할 필요가 있다.
상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술적 분야의 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (9)

  1. FPGA 내부의 룩업테이블(Look-up Table : LUT) 게이트에서 발생하는 지연 시간을 바탕으로 클럭 신호를 방생시키는 클럭 생성부와,
    플립플롭 사이에 FPGA LUT를 배치하여 클럭 주기와 비슷한 셋업 타임(Setup Time)을 가지도록 하여 이전 플립플롭 값의 반영 여부를 예측하는 것을 방지하는 출력 생성부와,
    전체 회로를 제어하기 위한 제어모듈을 포함하여 구성되고,
    이때, 상기 출력 생성부는
    두 개 이상의 플립플롭과,
    상기 플립플롭과 플립플롭 사이에 있는 두 개 이상의 FPGA LUT를 이용한 지연시간 조절이 가능한 PDL과,
    모든 플립플롭에 공급되는 클럭 신호를 출력하는 클럭 신호 생성부를 포함하여 구성되는 것을 특징으로 하는 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치.
  2. 제 1 항에 있어서, 상기 클럭 생성부는
    외부에서 공급되는 본래의 제 1 클럭 신호를 출력하는 제 1 클럭 신호부와,
    LUT를 활용하여 지연시간의 제어가 가능한 PDL을 이용해 LUT의 지연 시간으로부터 약간의 지연 시간 조절이 가능한 또 다른 제 2 클럭 신호를 출력하는 제 2 클럭 신호부와,
    상기 지연된 제 2 클럭 신호와 같은 방법으로 이전의 제 1 클럭 신호로 다시 LUT 만큼의 지연 시간이 발생하는 제 3 클럭 신호를 출력하는 제 3 클럭 신호부와,
    상기 제 1 내지 제 3 클럭 신호들 중 하나를 출력하는 선택부와,
    상기 선택부의 출력을 선택하기 위한 신호 선택부와,
    각 LUT의 지연시간을 제어하기 위한 신호 제어부를 포함하여 구성되는 클럭 생성기를 가지는 것을 특징으로 하는 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치.
  3. 제 1 항에 있어서, 상기 클럭 생성부는
    LUT의 설정을 지연 시간이 조절 가능한 인버터로 설정하여 LUT의 출력을 다시 입력으로 피드백하여, 값이 연속하여 바뀌도록 하게 하는 2개 이상의 링 오실레이터와,
    상기 2개 이상의 링 오실레이터의 출력 중 하나를 선택하기 위한 선택부와,
    상기 선택부의 출력을 선택하기 위한 신호 선택부와,
    각 LUT의 지연시간을 제어하기 위한 신호 제어부로 포함하여 구성되는 클럭 생성기를 가지는 것을 특징으로 하는 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치.
  4. 삭제
  5. 제 2 항 또는 제 3 항에 있어서, 상기 클럭 생성부는
    LUT의 지연 시간 제어 신호를 특정 신호로 고정시켜 각 FPGA의 각 LUT의 공정상에 따른 특징에 따라, 동일하지만 차이가 있는 지연 시간 특성을 가지는 것을 특징으로 하는 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치.
  6. 제 2 항 또는 제 3 항에 있어서, 상기 클럭 생성부는
    값을 변경할 수 있는 비휘발성 메모리로부터 LUT의 지연 시간 제어 신호를 입력받아, 필요시마다 LUT의 지연 시간 특성을 바꿀 수 있는 것을 특징으로 하는 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치.
  7. 제 2 항 또는 제 3 항에 있어서, 상기 클럭 생성부는
    출력 생성부 내부의 각 플립플롭 출력으로부터 LUT의 지연 시간 제어 신호를 입력받아, LUT로 인한 지연 시간을 예측하기 더욱 어렵게 하여 출력 생성부에서의 이전 플립플롭 값의 반영 여부를 예측하는 것을 더욱 방지되도록 하는 것을 특징으로 하는 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치.
  8. 제 1 항에 있어서, 상기 출력 생성부는
    값을 변경할 수 있는 비휘발성 메모리로부터 LUT의 지연 시간 제어 신호를 입력받아, 필요시마다 LUT의 지연 시간 특성을 바꿀 수 있는 것을 특징으로 하는 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치.
  9. 제 1 항에 있어서, 상기 출력 생성부는
    출력 생성부 내부의 각 플립플롭 출력으로부터 LUT의 지연 시간 제어 신호를 입력받아, LUT로 인한 지연 시간을 예측하기 더욱 어렵게 하여 이전 플립플롭 값의 반영 여부를 예측하는 것을 더욱 방지되도록 하는 것을 특징으로 하는 FPGA에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치.
KR1020140065121A 2014-05-29 2014-05-29 Fpga에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치 KR101623109B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140065121A KR101623109B1 (ko) 2014-05-29 2014-05-29 Fpga에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140065121A KR101623109B1 (ko) 2014-05-29 2014-05-29 Fpga에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치

Publications (2)

Publication Number Publication Date
KR20150137375A KR20150137375A (ko) 2015-12-09
KR101623109B1 true KR101623109B1 (ko) 2016-05-20

Family

ID=54873317

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140065121A KR101623109B1 (ko) 2014-05-29 2014-05-29 Fpga에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치

Country Status (1)

Country Link
KR (1) KR101623109B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101980964B1 (ko) * 2017-05-24 2019-05-21 성균관대학교산학협력단 카운터 기반 물리적 복제 방지 함수 장치 및 이를 이용한 챌린지-응답 획득 방법
CN108460297B (zh) * 2018-02-11 2019-02-19 复旦大学 物理非克隆功能抗模板攻击和人工智能攻击的方法
KR20200082982A (ko) * 2018-12-31 2020-07-08 삼성전자주식회사 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치
CN115001694B (zh) * 2021-03-02 2023-07-11 清华大学无锡应用技术研究院 基于级联开关和响应筛选电路的apuf电路结构
CN113919012B (zh) * 2021-08-31 2024-03-19 温州大学 基于序列密码的强puf抗机器学习攻击方法及电路

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100549733B1 (ko) * 1996-12-18 2006-02-07 톰슨 콘슈머 일렉트로닉스, 인코포레이티드 방해 받은 소스 데이터가 존재하는 경우에 데이터스트림 연속성을 유지하기 위한 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100549733B1 (ko) * 1996-12-18 2006-02-07 톰슨 콘슈머 일렉트로닉스, 인코포레이티드 방해 받은 소스 데이터가 존재하는 경우에 데이터스트림 연속성을 유지하기 위한 방법 및 장치

Also Published As

Publication number Publication date
KR20150137375A (ko) 2015-12-09

Similar Documents

Publication Publication Date Title
KR101623109B1 (ko) Fpga에서 물리적 복제 방지 함수 회로를 구현하기 위한 장치
US20090110188A1 (en) Configurable random number generator
TWI520055B (zh) 用於產生隨機數之裝置與方法
CN109167664B (zh) 一种基于异或门的可重构环形振荡器puf电路
WO2017186816A1 (en) Strong lightweight flip-flop arbiter physical unclonable function (puf) for fpga
US10445068B2 (en) Random number generator
US8555227B2 (en) Clock tree for pulsed latches
US9858042B1 (en) Configurable ring oscillator
Lozach et al. FPGA design of an open-loop true random number generator
US10187044B1 (en) Bistable-element for random number generation
Fujieda On the feasibility of TERO-based true random number generator on Xilinx FPGAs
US6566907B1 (en) Unclocked digital sequencer circuit with flexibly ordered output signal edges
TWI579763B (zh) 具有亂數產生模式的儲存電路
US20150270839A1 (en) Identification Circuit
US9362899B2 (en) Clock regenerator
US10340898B1 (en) Configurable latch circuit
JP6602849B2 (ja) プログラマブル遅延回路ブロック
US20120166170A1 (en) Delay circuit, and device and method for simulating asynchronous circuit in fpga using delay circuit
Al-Haidary et al. Physically unclonable functions (PUFs): A systematic literature review
Wang et al. An ultra-low overhead LUT-based PUF for FPGA
US20220077858A1 (en) Memory in logic physical unclonable function
KR102170985B1 (ko) 난수 생성기
US9331701B1 (en) Receivers and methods of enabling the calibration of circuits receiving input data
KR101406941B1 (ko) Fpga 기반된 진정한 난수 생성기의 성능 향상을 위한 장치 및 방법
Likhithashree et al. Area-efficient physically unclonable functions for FPGA using ring oscillator

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190502

Year of fee payment: 4