KR20180055299A - 난수 생성기의 랜덤성 시험 장치 및 방법 - Google Patents

난수 생성기의 랜덤성 시험 장치 및 방법 Download PDF

Info

Publication number
KR20180055299A
KR20180055299A KR1020160152968A KR20160152968A KR20180055299A KR 20180055299 A KR20180055299 A KR 20180055299A KR 1020160152968 A KR1020160152968 A KR 1020160152968A KR 20160152968 A KR20160152968 A KR 20160152968A KR 20180055299 A KR20180055299 A KR 20180055299A
Authority
KR
South Korea
Prior art keywords
bits
bit
sum
randomness
reference value
Prior art date
Application number
KR1020160152968A
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 KR1020160152968A priority Critical patent/KR20180055299A/ko
Priority to US15/404,826 priority patent/US10146507B2/en
Priority to CN201710055989.XA priority patent/CN108089840B/zh
Priority to DE102017104441.8A priority patent/DE102017104441A1/de
Publication of KR20180055299A publication Critical patent/KR20180055299A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

본 개시의 예시적 실시예에 따라 난수 생성기를 시험하는 장치는, 난수 생성기가 생성한 비트 스트림에서 동일한 거리로 이격된 양 비트들로 각각 구성된 복수의 비트 쌍들을 추출하고 복수의 비트 쌍들 각각의 양 비트들간 차이들을 합산한 합을 계산함으로써, 상이한 복수의 거리들에 각각 대응하는 복수의 합들을 생성하는 연관성 시험 회로, 및 복수의 합들에 기초하여 비트 스트림의 랜덤성을 결정하는 랜덤성 결정 회로를 포함할 수 있다.

Description

난수 생성기의 랜덤성 시험 장치 및 방법{APPARATUS AND METHOD OF RANDOMNESS TEST FOR RANDOM NUMBER GENERATOR}
본 개시의 기술적 사상은 난수(random number)에 관한 것으로서, 자세하게는 난수 생성기의 랜덤성 시험 장치 및 방법에 관한 것이다.
난수 생성기(random number generator)는, 통계적 샘플링, 컴퓨터 시뮬레이션, 암호학(cryptography) 등과 같이 예측 불가능한 결과를 사용하는 다양한 어플리케이션들에 사용될 수 있다. 특히, 보안 어플리케이션들과 같은 예측 불가능성(unpredictability)이 필수적인 어플리케이션은 난수 생성기의 높은 랜덤성(randomness)을 요구하고, 난수 생성기가 생성한 난수의 랜덤성이 부족한 경우 낮은 보안성을 제공하는 문제가 있다. 이에 따라, 난수 생성기의 랜덤성을, 저비용으로 용이하게 그리고 정확하게 판단함으로써 난수 생성기가 생성한 난수의 사용가능성을 판단하는 것이 중요하다.
본 개시의 기술적 사상은 난수 생성기를 시험하는 장치 및 방법에 관한 것으로서, 난수 생성기가 생성하는 난수의 랜덤성을 시험하는 장치 및 방법에 관한 것이다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 난수 생성기를 시험하는 장치는, 난수 생성기가 생성한 비트 스트림에서 동일한 거리로 이격된 양 비트들로 각각 구성된 복수의 비트 쌍들을 추출하고 복수의 비트 쌍들 각각의 양 비트들간 차이들을 합산한 합을 계산함으로써, 상이한 복수의 거리들에 각각 대응하는 복수의 합들을 생성하는 연관성 시험 회로, 및 복수의 합들에 기초하여 비트 스트림의 랜덤성을 결정하는 랜덤성 결정 회로를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른, 난수 생성기를 시험하는 장치는, 난수 생성기가 생성한 N-비트들을 순차적으로 수신하는 M-비트 시프트 레지스터, 시프트 레지스터가 출력하는 M-비트 시퀀스에서 'K'개의 상이한 비트 쌍들 각각의 양 비트들간 차이를 연산하는 차이 연산 회로, 차이 연산 회로의 K-비트 출력의 각 비트를 누산하는 'K'개의 누산기들, 및 'K'개의 누산기들의 출력들에 기초하여, N-비트들의 랜덤성을 결정하는 랜덤성 결정 회로를 포함할 수 있고, 'K', 'M', 'N'은 2이상의 정수일 수 있다.
본 개시의 기술적 사상의 일측면에 따른, 난수 생성기를 시험하는 방법은, 난수 생성기가 생성한 N-비트들 중 연속적인 M-비트들로 구성된 비트 시퀀스에서 'K'개의 상이한 비트 쌍들 각각의 양 비트들간 차이를 연산하는 단계, 'K'개의 상이한 비트 쌍들에 대응하는 'K'개의 차이들 각각을 복수의 상이한 비트 시퀀스[들]들에 대하여 누산하는 단계, 및 'K'개의 누산된 차이들에 기초하여, N-비트들의 랜덤성을 결정하는 단계를 포함할 수 있고, 'K', 'M', 'N'은 2이상의 정수일 수 있다.
본 개시의 예시적 실시예에 따른 난수 생성기의 랜덤성 시험 장치 및 방법에 의하면, 난수 생성기가 생성하는 난수의 랜덤성이 신속하고 정확하게 판단될 수 있다.
또한, 본 개시의 예시적 실시예에 따른 난수 생성기의 랜덤성 시험 장치 및 방법은, 적은 리소스를 사용함으로써 비용 효율적일 수 있다.
또한, 본 개시의 예시적 실시예에 따른 난수 생성기의 랜덤성 시험 장치 및 방법에 의하면, 난수 생성기에 요구되는 랜덤성의 수준에 따라 용이하게 시험될 수 있으므로 높은 유연성(flexibility)이 제공될 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 랜덤성 검사 장치를 포함하는 시스템의 블록도를 나타낸다.
도 2는 본 개시의 예시적 실시예에 따라 도 1의 랜덤성 검사 장치의 동작의 예시를 나타낸다.
도 3은 본 개시의 예시적 실시예에 따라 도 1의 랜덤성 시험 장치의 블록도를 나타낸다.
도 4는 본 개시의 예시적 실시예에 따라 도 3의 차이 연산 회로 및 누산기들의 예시를 나타낸다.
도 5는 본 개시의 예시적 실시예에 따라 도 3의 랜덤성 결정 회로의 예시를 나타내는 블록도이다.
도 6은 본 개시의 예시적 실시예에 따라 도 3의 랜덤성 시험 장치의 동작을 나타내는 순서도이다.
도 7은 본 개시의 예시적 실시예에 따른 랜덤성 시험 장치의 블록도를 나타낸다.
도 8a 내지 도 8c는 본 개시의 예시적 실시예들에 따라 도 7의 모노비트 시험 회로의 예시들을 나타내는 블록도들이다.
도 9a 및 도 9b는 본 개시의 예시적 실시예들에 따라 도 7의 랜덤성 결정 회로의 예시들을 나타내는 블록도들이다.
도 10a 및 도 10b는 본 개시의 예시적 실시예들에 따라 도 7의 랜덤성 결정 회로의 예시들을 나타내는 블록도들이다.
도 11은 본 개시의 예시적 실시예에 따라 도 7의 랜덤성 시험 장치의 동작을 나타내는 순서도이다.
도 12a 및 도 12b는 본 개시의 예시적 실시예들에 따른 랜덤성 결정 회로의 예시들을 나타내는 블록도들이다.
도 13a 및 도 13b는 본 개시의 예시적 실시예에 따라 도 12a 및 도 12b의 랜덤성 결정 회로의 예시들의 동작들을 나타내는 순서도들이다.
도 14은 본 개시의 예시적 실시예에 따른 난수 생성기의 난수성 시험 방법을 나타내는 순서도이다.
도 15는 본 개시의 예시적 실시예에 따른 난수 생성기의 난수성 시험 방법을 나타내는 순서도이다.
도 16는 본 개시의 예시적 실시예에 따라, 도 15의 단계 S560의 예시를 나타내는 순서도이다.
도 1은 본 개시의 예시적 실시예에 따른 랜덤성 검사 장치(100)를 포함하는 시스템(5)의 블록도를 나타내고, 도 2는 본 개시의 예시적 실시예에 따라 도 1의 랜덤성 검사 장치(100)의 동작의 예시를 나타낸다.
도 1을 참조하면, 시스템(5)은 난수 생성기(10), 컨트롤러(20) 및 랜덤성 검사 장치(100)를 포함할 수 있다. 시스템(5)은 난수 생성기(10), 컨트롤러(20) 및 랜덤성 검사 장치(100)가 모두 집적된, 반도체 공정을 통해서 제조된 하나의 집적 회로일 수도 있고, 랜덤성 검사 장치(100)는 난수 생성기(10) 및/또는 컨트롤러(20)에 탈착가능하게 시스템(5)에 포함될 수도 있다. 도 1에 도시되지 아니하였으나, 시스템(5)은 난수 생성기(10)가 생성한 비트 스트림(STR)을 수신하고, 이를 사용하여 동작을 수행하는 기능 블록을 더 포함할 수 있다.
난수 생성기(10)는, 컨트롤러(20)로부터 수신되는 제어 신호(CTRL) 및 클락 신호(CLK)에 응답하여, 각각의 비트가 불규칙적으로 '0' 또는 '1'의 값을 가지도록 비트 스트림(STR)(또는 바이너리 스트림)을 생성할 수 있다. 예를 들면, 난수 생성기(10)는 제어 신호(CTRL)에 의해서, 비트 스트림(STR)의 생성을 개시할 수도 있고 비트 스트림(STR)의 생성을 중단할 수도 있다. 또한, 난수 생성기(10)는 비트 스트림(STR)의 비트들이 클락 신호(CLK)에 동기되도록 비트 스트림(STR)을 생성할 수 있다.
난수 생성기(10)는 다양한 방식으로 구현될 수 있다. 예를 들면, 난수 생성기(10)는 링 오실레이터(ring oscillator)를 포함할 수 있고, 링 오실레이터에 의해서 생성된 진동하는(oscillating) 신호의 지터(jitter)를 클락 신호(CLK)에 따라 샘플링함으로써 비트 스트림(STR)을 생성할 수 있다.
컨트롤러(20)는 난수 생성기(10)를 제어하기 위하여 제어 신호(CTRL)을 생성할 수 있고, 클락 신호(CLK)를 생성하여 난수 생성기(10)에 제공할 수 있다. 컨트롤러(20)는 제어 신호(CTRL)를 통해서 난수 생성기(10)를 초기화시키거나 난수 생성기(10)의 동작을 재개 또는 중단시킬 수 있다. 예를 들면, 컨트롤러(20)는 랜덤성 시험 장치(100)로부터 난수 생성기(10)의 랜덤성에 관한 정보를 나타내는 결과 신호(RES)를 수신할 수 있고, 결과 신호(RES)에 기초하여, 난수 생성기(10)에 제공되는 제어 신호(CTRL) 및/또는 클락 신호(CLK)를 생성할 수 있다. 즉, 컨트롤러(20)는, 난수 생성기(10)의 랜덤성이 부족한 것을 나타내는 결과 신호(RES)에 응답하여, 난수 생성기(10)를 초기화하거나 난수 생성기(10)의 동작에 변화를 주기 위하여 제어 신호(CTRL) 및/또는 클락 신호(CLK)를 생성할 수 있다.
컨트롤러(20)는 랜덤성 시험 장치(100)에 설정 신호(CFG)를 제공할 수 있다. 예를 들면, 도 1에 도시된 바와 같이, 컨트롤러(20)는 난수 생성기(10)의 특성에 기초하여 랜덤성 시험 장치(100)를 설정하기 위하여 설정 신호(CFG)를 생성하여 랜덤성 시험 장치(100)에 제공할 수 있고, 랜덤성 검사 장치(100)는 설정 신호(CFG)에 기초하여 비트 스트림(STR)을 검사할 수 있다. 후술되는 바와 같이, 컨트롤러(20)는 설정 신호(CFG)에 의해서 랜덤성 시험 장치(100)에서 사용되는 기준값들(예컨대, 도 16의 제1 내지 제4 기준값들) 각각을 설정할 수 있고, 기준값들은 컨트롤러(20)에 의해서 난수 생성기(10)가 생성하는 비트 스트림(STR)에서 요구되는 엔트로피에 기초하여 결정될 수 있다.
랜덤성 검사 장치(100)는, 난수 생성기(10)가 생성하는 비트 스트림(STR), 컨트롤러(20)가 생성하는 클락 신호(CLK) 및 설정 신호(CFG)를 수신할 수 있고, 결과 신호(RES)를 생성하여 컨트롤러(20)에 제공할 수 있다. 전술된 바와 같이, 결과신호(RES)는 비트 스트림(STR)의 랜덤성에 관한 정보를 나타낼 수 있고, 예컨대 활성화된 결과 신호(RES)는 비트 스트림(STR)이 랜덤한 것을 의미하는 합격(PASS)을 나타낼 수 있고, 비활성화된 결과 신호(RES)는 비트 스트림(STR)이 랜덤하지 아니한 것을 의미하는 불합격(FAIL)을 나타낼 수 있다.
본 개시의 예시적 실시예에 따라, 랜덤성 검사 장치(100)는, 비트 스트림(STR)에서 동일한 폭을 가지는 복수의 비트 쌍들(예컨대, PX, PX- 1,..., P1)을 추출할 수 있다. 비트 쌍의 폭은, 비트 스트림(STR)에서 비트 쌍의 양 비트들간 거리를 지칭할 수 있고, 동일한 폭을 가지는(즉, 동일한 거리로 이격된 2개 비트들을 각각 포함하는) 복수의 비트 쌍들(예컨대, PX, PX- 1,..., P1)이 추출될 수 있다. 랜덤성 검사 장치(100)는 복수의 비트 쌍들(예컨대, PX, PX- 1,..., P1) 각각의 양 비트들간 차이들을 합산함으로써 합(예컨대, SUM1)을 생성할 수 있다. 이러한 방식으로, 랜덤성 검사 장치(100)는, 비트 스트림(STR)에서 상이한 복수의 폭들 각각에 대응하는 복수의 합들(SUM1, SUM2,..., SUMK)을 생성할 수 있고, 복수의 합들(SUM1, SUM2,..., SUMK)에 기초하여 비트 스트림(STR)의 랜덤성을 결정할 수 있다. 이와 같이 복수의 합들(SUM1, SUM2,..., SUMK)을 사용함으로써, 상대적으로 적은 양의 리소스를 사용하여 비트 스트림(STR)의 랜덤성은 정확하게 판단될 수 있다. 랜덤성 검사 장치(100)에서 복수의 합들(SUM1, SUM2,..., SUMK)이 생성되는 동작은, 도 2를 참조하여 자세하게 설명될 것이다.
본 개시의 예시적 실시예에 따라, 랜덤성 검사 장치(100)는 복수의 합들(SUM1, SUM2,..., SUMK)의 변화량(variation)에 기초하여 비트 스트림(STR)의 랜덤성을 결정할 수 있다. 즉, 도 1에 도시된 바와 같이, 랜덤성 검사 장치(100)는 복수의 합들(SUM1, SUM2,..., SUMK)의 최대값(MAX) 및 최소값(MIN)의 차이에 대응하는 변화량(VAR)을 생성할 수 있다. 변화량(VAR)을 이용함으로써, 랜덤성 검사 장치(100)는 비트 스트림(STR)의 랜덤성을 정확하게 결정할 수 있다. 예를 들면, 변화량(VAR)이 큰 것은 비트 스트림(STR)에서 엔트로피(entropy)가 부족한 것으로 해석될 수 있으므로, 랜덤성 검사 장치(100)는 변화량(VAR)과 미리 정해진 기준값을 비교함으로써 비트 스트림(STR)의 랜덤성을 결정할 수 있다.
도 2를 참조하면, 난수 생성기(10)에 의해서 생성된 비트 스트림(STR)은 8개의 비트들(b1 내지 b8)로 구성될 수 있다. 비트 스트림(STR)은, 8개의 비트들(b1 내지 b8) 중 최선 비트(b1)(또는 최하위 비트(least significant bit; LSB))부터 최후 비트(b8)(또는 최상위 비트(most significant bit; MSB))까지 순차적으로 랜덤성 시험 장치(100)에 입력될 수 있다. 도 2의 예시에서, 랜덤성 시험 장치(100)는 2개의 상이한 폭들(D1, D2)에 각각 대응하는 2개의 합들(SUM1, SUM2)을 생성할 수 있다.
도 2에 도시된 바와 같이, 랜덤성 시험 장치(100)는 제1 폭(D1)을 가지는 복수의 비트 쌍들 각각의 양 비트들간 차이들을 합산함으로써 제1 합(SUM1)을 생성할 수 있다. 즉, 랜덤성 시험 장치(100)는, 양 비트들간 거리가 1인 5개의 비트 쌍들(<b1, b2>, <b2, b3>, <b3, b4>, <b4, b5> 및 <b5, b6>)을 추출할 수 있고, 5개의 비트 쌍들(<b1, b2>, <b2, b3>, <b3, b4>, <b4, b5> 및 <b5, b6>) 각각의 양 비트들간 차이들을 합산함으로써 제1 합(SUM1)을 생성할 수 있다. 유사하게, 랜덤성 시험 장치(100)는 제2 폭(D2)을 가지는 복수의 비트 쌍들 각각의 양 비트들간 차이들을 합산함으로써 제2 합(SUM2)을 생성할 수 있다. 즉, 랜덤성 시험 장치(100)는, 양 비트들간 거리가 3인 5개의 비트 쌍들(<b1, b4>, <b2, b5>, <b3, b6>, <b4, b7> 및 <b5, b8>)을 추출할 수 있고, 5개의 비트 쌍들(<b1, b4>, <b2, b5>, <b3, b6>, <b4, b7> 및 <b5, b8>) 각각의 양 비트들간 차이들을 합산함으로써 제2 합(SUM2)을 생성할 수 있다.
도 2를 참조하면, 상이한 폭들을 각각 가지는 비트 쌍들로 구성된 비트 시퀀스는 윈도우로 지칭될 수 있다. 예를 들면, 도 2에 도시된 바와 같이, 비트 스트림(STR)의 첫 번째 윈도우는 제1 폭(D1)을 가지는 비트 쌍(<b1, b2>) 및 제2 폭(D2)을 가지는 비트 쌍(<b1, b4>)을 포함할 수 있다. 유사하게 두 번째 윈도우는 제1 폭(D1)을 가지는 비트 쌍(<b2, b3>) 및 제2 폭(D2)을 가지는 비트 쌍(<b2, b5>)을 포함할 수 있고, 도 2에 도시된 바와 같이, 마지막 윈도우는 비트 쌍(<b5, b6>) 및 비트 쌍(<b5, b8>)을 포함할 수 있다. 이에 따라, 도 2의 예시에서 윈도우의 개수는 5개이고, 이는 동일한 폭을 가지는 비트 쌍들의 개수와 일치할 수 있다. 윈도우의 개수는, 비트 스트림(STR)의 길이 및 윈도우의 길이에 의해서 결정될 수 있고, 예컨대 윈도우의 개수(도 2에서 '5')는 비트 스트림(STR)의 길이(도 2에서 '8') 및 윈도우의 길이(도 2에서 '4')의 차에 1을 더한 값일 수 있다. 윈도우의 길이(도 2에서 '4')는, 랜덤 시험 장치(100)가 추출하는 비트 쌍들이 가지는 최대 폭(도 2에서 '3')에 1을 더한 값으로 결정될 수 있고, 이에 따라 동일한 폭을 가지는 비트 쌍들의 개수(즉, 윈도우의 개수) 역시 비트 쌍들이 가지는 최대 폭에 의해서 결정될 수 있다. 즉, 비트 스트림(STR)이 N-비트들로 구성되고 윈도우의 길이가 'M'인 경우, 윈도우의 개수는 'N-M+1'일 수 있고, 비트 쌍들이 가질 수 있는 최대 폭은 'M-1'로 제한될 수 있다. 본 명세서에서, 'K', 'M' 및 'N'은 각각 2이상의 정수일 수 있다.
비록 도 2는, 랜덤성 시험 장치(100)가 2개의 상이한 폭들(D1, D2)에 대응하는 합들(SUM1, SUM2)을 생성하는 동작을 도시하였으나, 후술되는 바와 같이 랜덤성 시험 장치(100)는 3개 이상의 상이한 폭들에 대응하는 합들을 생성할 수도 있다. 또한, 도 2에서 2개의 폭들(D1, D2)은 예시에 불과하며, 1 및 3과 상이한 폭을 가지는 비트 쌍들이 추출될 수도 있음은 이해될 것이다.
도 3은 본 개시의 예시적 실시예에 따라 도 1의 랜덤성 시험 장치(100)의 블록도를 나타낸다. 도 1 및 도 2를 참조하여 전술된 바와 같이, 랜덤성 시험 장치(100)는 비트 스트림(STR)으로부터 추출된 동일한 폭을 가지는 복수의 비트 쌍들을 각각의 양 비트들간 차이들을 합산할 수 있고, 복수의 상이한 폭들에 대응하는 복수의 합들을 생성할 수 있다. 도 3은 비트 스트림(STR)이 N-비트들로 구성되고, 윈도우의 길이가 'M'이고, 'K'개의 상이한 폭들에 대응하는 비트 쌍들이 추출되는 예시를 도시한다. 도 3에 도시된 바와 같이, 랜덤성 시험 장치(100)는 연관성 시험 회로(120) 및 랜덤성 결정 회로(160)를 포함할 수 있다.
연관성 시험 회로(120)는, 클락 신호(CLK) 및 N-비트들로 구성된 비트 스트림(STR)을 수신할 수 있고, K개의 합들(SUM1, SUM2,..., SUMK)을 생성할 수 있다. 도 1을 참조하여 전술된 바와 같이, 도 1의 난수 생성기(10)에 의해서, 비트 스트림(STR)의 각 비트는 클락 신호(CLK)에 동기될 수 있다. 도 3에 도시된 바와 같이, 연관성 시험 회로(120)는 시프트 레지스터(122), 차이 연산 회로(124) 및 누산기들(126)을 포함할 수 있다.
시프트 레지스터(122)는 클락 신호(CLK)에 동기되어 비트 스트림(STR)을 1비트씩 시프트함으로써 M-비트들로 구성된 비트 시퀀스(SEQ)를 출력할 수 있다. 즉, 도 3에서 시프트 레지스터(122)는 M-비트 시프트 레지스터일 수 있다. 도 2를 함께 참조하면, 시프트 레지스터(122)가 출력 하는 비트 시퀀스(SEQ)는 윈도우에 대응할 수 있다. 즉, 시프트 레지스터(122)는 비트 스트림(STR)로부터 'N-K+1'개의 상이한 비트 시퀀스(SEQ)들을 클락 신호(CLK)에 동기하여 순차적으로 출력할 수 있다.
차이 연산 회로(124)는 시프트 레지스터(122)가 출력하는 비트 시퀀스(SEQ)에서 'K'개의 상이한 비트 쌍들 각각의 양 비트들간 차이를 연산함으로써 'K'개의 차이들(DIFF1, DIFF2,..., DIFFK)을 출력할 수 있다. 예를 들면, 차이 연산 회로(124)는 'K'개의 차이 연산들을 병렬적으로 수행함으로써 'K'개의 차이들(DIFF1, DIFF2,..., DIFFK)을 생성할 수도 있고, 'K'보다 작은 수의 차이 연산들을 복수회 수행함으로써 'K'개의 차이들(DIFF1, DIFF2,..., DIFFK)을 생성할 수도 있다.
차이 연산 회로(124)에 입력되는 'K'개의 상이한 비트 쌍들은 다양한 방식으로 결정될 수 있다. 예를 들면, 도 3에 도시된 바와 같이 'K'개의 상이한 비트 쌍들 각각은 비트 시퀀스(SEQ)의 첫 번째 비트(또는 최하위 비트), 즉, 'SEQ[1]'를 포함할 수 있다. 도 3에 도시된 비트 쌍들 중 일부는 예시에 불과하며, 상이한 폭들을 각각 가지는 복수의 비트 쌍들이 차이 연산 회로(124)에 제공될 수 있음은 이해될 것이다.
누산기들(126)은 차이 연산 회로(124)에 의해서 생성되는 'K'개의 차이들(DIFF1, DIFF2,..., DIFFK) 각각을 누산함으로써, 'K'개의 합들(SUM1, SUM2,..., SUMK)을 생성할 수 있다. 누산기들(126)은 시프트 레지스터(122)가 출력하는 비트 시퀀스(SEQ)들의 개수만큼 'K'개의 차이들(DIFF1, DIFF2,..., DIFFK) 각각을 누산할 수 있고, 이에 따라 'K'개의 합들(SUM1, SUM2,..., SUMK) 각각은, 비트 스트림(STR)에서 동일한 폭을 가지는 비트 쌍들 각각의 양 비트들간 차이를 합산한 값을 나타낼 수 있다. 예를 들면, 누산기들(126)은 'K'개의 누산 연산들을 병렬적으로 수행하는 'K'개의 누산기들을 포함할 수 있다.
랜덤성 결정 회로(160)는, 연관성 시험 회로(120)로부터 'K'개의 합들(SUM1, SUM2,..., SUMK)을 수신할 수 있고, 'K'개의 합들(SUM1, SUM2,..., SUMK)에 기초하여 결과 신호(RES)를 출력할 수 있다. 결과 신호(RES)는 비트 스트림(STR)의 랜덤성에 관한 정보를 나타낼 수 있고, 랜덤성 결정 회로(160)는, 예컨대 비트 스트림(STR)이 랜덤한 것으로 결정된 경우 합격(PASS)을 나타내는 활성화된 결과 신호(RES)를 출력할 수 있고, 비트 스트림(STR)이 랜덤한 것으로 결정된 경우 불합격(FAIL)을 나타내는 비활성화된 결과 신호(RES)를 출력할 수 있다. 랜덤성 결정 회로(160)에 관한 자세한 내용은 도 5를 참조하여 후술될 것이다.
도 4는 본 개시의 예시적 실시예에 따라 도 3의 차이 연산 회로(124) 및 누산기들(126)의 예시들(124', 126')을 나타낸다.
도 3을 참조하여 전술된 바와 같이, 차이 연산 회로(124')는 도 3의 시프트 레지스터(122)가 출력하는 비트 시퀀스(SEQ)에서 'K'개의 상이한 비트 쌍들을 수신할 수 있고, 'K'개의 비트 쌍들 각각의 차이를 연산함으로써 'K'개의 차이들(DIFF1, DIFF2,..., DIFFK)을 생성할 수 있다. 본 개시의 예시적 실시예에 따라, 차이 연산 회로(124')는, 도 4에 도시된 바와 같이, 'K'개의 XOR 게이트들(124_1 내지 124_K)을 포함할 수 있다. 'K'개의 XOR 게이트들(124_1 내지 124_K)은 'K'개의 복수의 비트 쌍들을 각각 입력받을 수 있고, 'K'개의 차이들(DIFF1, DIFF2,..., DIFFK)을 출력할 수 있다. 예를 들면, 제1 XOR 게이트(124_1)는 비트 쌍(<SEQ[1], SEQ[2]>)을 입력 받을 수 있고, 양 비트들(SEQ[1], SEQ[2])의 차이(DIFF1)를 출력할 수 있다. 즉, 양 비트들(SEQ[1], SEQ[2])이 모두 '0' 또는 '1'인 경우 차이(DIFF1)는 '0'인 한편, 양 비트들(SEQ[1], SEQ[2])이 상이한 경우 차이(DIFF1)는 '1'일 수 있다.
도 3을 참조하여 전술된 바와 같이, 누산기들(126')은 'K'개의 차이들(DIFF1, DIFF2,..., DIFFK) 각각을 누산함으로써 'K'개의 합들(SUM1, SUM2,..., SUMK)을 생성할 수 있다. 본 개시의 예시적 실시예에 따라, 누산기들(126')은, 도 4에 도시된 바와 같이, 'K'개의 누산기들(126_1 내지 126_K)을 포함할 수 있다. 'K'개의 누산기들(126_1 내지 126_K)은 'K'개의 차이들(DIFF1, DIFF2,..., DIFFK)을 각각 입력받을 수 있고, 'K'개의 합들(SUM1, SUM2,..., SUMK)을 출력할 수 있다. 전술된 바와 같이, 누산기들(126')은 'N-M+1'회 누산 동작을 수행하므로, 'K'개의 합들(SUM1, SUM2,..., SUMK) 각각은 'log2(N-M+1)'보다 많은 비트들로 구성될 수 있고, 'K'개의 누산기들(126_1 내지 126_K) 각각은, 'L'이 'log2(N-M+1)'보다 큰 정수 일때, L-비트 누산기일 수 있다.
도 5는 본 개시의 예시적 실시예에 따라 도 3의 랜덤성 결정 회로(160)의 예시를 나타내는 블록도이다. 도 3을 참조하여 전술된 바와 같이, 랜덤성 결정 회로(160')는, 도 3의 연관성 시험 회로(120)로부터 'K'개의 합들(SUM1, SUM2,..., SUMK)을 수신할 수 있고, 'K'개의 합들(SUM1, SUM2,..., SUMK)에 기초하여 결과 신호(RES)를 출력할 수 있다. 도 5에 도시된 바와 같이, 랜덤성 결정 회로(160)는 변화량 검출기(161) 및 비교기(162)를 포함할 수 있다.
변화량 검출기(161)는 'K'개의 합들(SUM1, SUM2,..., SUMK 또는 SUM)의 변화량(variation)을 검출함으로써 변화량(VAR)을 생성할 수 있다. 예를 들면, 도 5에 도시된 바와 같이, 변화량 검출기(161)는 최대/최소 추출기(161_2) 및 감산기(164_2)를 포함할 수 있다. 최대/최소 추출기(161_2)는 'K'개의 합들(SUM1, SUM2,..., SUMK) 중 최대값(MAX) 및 최소값(MIN)을 추출하여 출력할 수 있고, 감산기(164_2)는 최대값(MAX)에 최소값(MIN)을 감산함으로써 변화량(VAR)을 생성할 수 있다.
비교기(162)는 변화량 검출기(161)가 생성한 변화량(VAR) 및 제1 기준값(REF1)을 비교할 수 있다. 제1 기준값(REF1)은, 도 5에 도시된 바와 같이 랜덤성 결정 회로(160')의 외부로부터 수신될 수도 있고, 도 5에 도시된 바와 상이하게 랜덤성 결정 회로(160') 내부에 저장된 값일 수도 있다. 예를 들면, 제1 기준값(REF1)은 도 1의 컨트롤러(20)가 랜덤성 시험 장치(100)에 제공하는 설정 신호(CFG)에 의해서 결정될 수 있다. 비교기(162)는 변화량(VAR)이 제1 기준값(REF1)보다 낮은 경우 비활성화된 결과 신호(RES)를 출력할 수 있고, 그렇지 아니한 경우 활성화된 결과 신호(RES)를 출력할 수 있다. 즉, 랜덤성 결정 회로(160')는 'K'개의 합들(SUM1, SUM2,..., SUMK)의 변화량(VAR)(즉, 최대값 및 최소값의 차이)이, 제1 기준값(REF1)보다 높은 경우 불합격(FAIL)을 나타내는 비활성화된 결과 신호(RES)를 출력하는 한편, 그렇지 아니한 경우 합격(PASS)을 나타내는 활성화된 결과 신호(RES)를 출력할 수 있다.
전술된 바와 같이, 랜덤성 결정 회로(160')는 상이한 'K'개의 폭들에 각각 대응하는 'K'개의 합들(SUM1, SUM2,..., SUMK)의 변화량(VAR)에 기초하여 도 3의 비트 스트림(STR)의 랜덤성을 정확하게 결정할 수 있다. 즉, 'K'개의 합들(SUM1, SUM2,..., SUMK)의 변화량(VAR)이 충분히 큰 것은 도 3의 비트 스트림(STR)에서 엔트로피(entropy)가 부족한 것으로 해석될 수 있다. 예를 들면, 비트 스트림(STR)에서 폭이 4인 비트 쌍들 각각의 양 비트들 간 연관성에 기인하여, 도 4의 제2 누산기(126_2)가 출력하는 제2 합(SUM2)이, 도 4의 제1 및 제K 누산기(126_1, 126_K)가 각각 출력하는 제1 및 제K 합(SUM1, SUMK)보다 작고 최대값(MAX) 및 최소값(MIN)의 차이(즉, 변화량(VAR))가 제1 기준값(REF1)보다 큰 경우, 비트 스트림(STR)은 엔트로피가 부족한 것으로 결정될 수 있다.
도 6은 본 개시의 예시적 실시예에 따라 도 3의 랜덤성 시험 장치(100)의 동작을 나타내는 순서도이다. 구체적으로, 도 6의 단계 S120은 도 3의 연관성 시험 회로(120)에 의해서 수행될 수 있고, 도 6의 단계 S160은 도 3의 랜덤성 결정 회로(160)에 의해서 수행될 수 있다. 도 6에 도시된 바와 같이, 단계 S120은 복수의 단계들(S121 내지 S126)을 포함할 수 있고, 단계 S160은 복수의 단계들(S161 내지 S164)을 포함할 수 있다. 이하에서 도 6은 도 3을 참조하여 설명될 것이다.
단계 S121에서, 초기화 동작이 수행될 수 있다. 예를 들면, 도 6에 도시된 바와 같이, 'K'개의 합들(SUM1, SUM2,..., SUMK)을 리셋(즉, 0으로 설정)하고 변수 'i'를 1로 설정하는 동작이 수행될 수 있다.
단계 S122에서, 비트 스트림의 1-비트(bi)를 취득하는 동작이 수행될 수 있다. 예를 들면, 랜덤성 시험 장치(100)는 클락 신호(CLK)의 상승(또는 하강) 에지마다 비트 스트림(STR)의 1-비트(bi)를 래치할 수 있다.
단계 S123에서, 변수 'i'가 'M'이상인지 여부를 판단하는 동작이 수행될 수 있다. 'M'은 도 2의 윈도우의 길이일 수 있고, 첫 번째 윈도우가 비트 스트림(STR)의 연속적인 비트들로 채워졌는지 여부가 판단될 수 있다. 다시 말해서, 'M'은 도 3의 시프트 레지스터(122)가 출력하는 비트 시퀀스(SEQ)의 비트들의 개수일 수 있고, 시프트 레지스터(122)가 비트 스트림(STR)의 연속적인 비트들로 채워졌는지 여부가 판단될 수 있다. 변수 'i'가 'M'보다 작은 경우(즉, 도 2의 첫 번째 윈도우가 비트 스트림(STR)의 연속적인 비트들로 가득 채워지지 아니한 경우), 단계 S124에서 변수 'i'를 1만큼 증가시키는 동작이 수행될 수 있고, 그 다음에 비트 스트림의 새로운 1-비트(bi)를 취득하는 동작이 수행될 수 있다. 다른 한편으로, 변수 'i'가 'M' 이상인 경우, 'M'개의 비트들(bi,..., bi -(M-1))로 구성된 비트 시퀀스(SEQ)가 추출될 수 있다.
단계 S125에서, 비트 시퀀스(SEQ)에서 'K'개의 비트 쌍들 각각의 양 비트들간 차이를 누산하는 동작이 수행될 수 있다. 예를 들면, 도 6에 도시된 바와 같이, 비트 쌍(<bi-(M-1), bi-(M-2)>)의 양 비트들(bi-(M-1), bi-(M-2))의 차이가 누산됨으로써 제1 합(SUM1)이 갱신될 수 있다. 이러한 방식으로, 'K'개의 합들(SUM1,..., SUMK)이 갱신될 수 있다.
단계 S126에서, 변수 'i'가 'N'과 일치하는지 여부를 판단하는 동작이 수행될 수 있다. 즉, 비트 스트림(STR)의 모든 비트들의 취득이 완료되었는지 여부가 판단될 수 있다. 변수 'i'가 'N'과 일치하지 아니하는 경우(즉, 비트 스트림(STR)의 모든 비트들이 취득되지 아니한 경우), 단계 S124에서 변수 'i'를 1만큼 증가시키는 동작이 수행될 수 있고, 그 다음에 단계 S122에서 비트 스트림의 새로운 1-비트(bi)를 취득하는 동작이 수행될 수 있다. 다른 한편으로, 변수 'i'가 'N'과 일치하는 경우(즉, 비트 스트림(STR)의 모든 비트들이 취득된 경우), 'K'개의 합들(SUM1,..., SUMK)이 출력될 수 있다.
그 다음에, 단계 S161에서 'K'개의 합들(SUM1,..., SUMK)의 최대값에 'K'개의 합들(SUM1,..., SUMK)의 최소값을 감산하는 동작이 수행될 수 있다. 즉, 'K'개의 합들(SUM1,..., SUMK)의 최대값 및 최소값의 차이를 변화량(VAR)으로서 생성할 수 있다.
단계 S162에서, 변화량(VAR) 및 제1 기준값(REF1)을 비교하는 동작이 수행될 수 있다. 변화량(VAR)이 제1 기준값(REF1)보다 큰 경우, 단계 S163에서 결과신호(RES)는 불합격(FAIL)을 나타낼 수 있다. 다른 한편으로, 변화량(VAR)이 제1 기준값(REF1)보다 작거나 같은 경우, 단계 S164에서 결과 신호(RES)는 합격(PASS)을 나타낼 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 랜덤성 시험 장치(200)의 블록도를 나타낸다. 도 7의 랜덤성 시험 장치(200)는 도 1의 랜덤성 시험 장치(100)와 유사하게, 비트 스트림(STR) 및 클락 신호(CLK)를 수신할 수 있고, 결과 신호(RES)를 출력할 수 있다. 도 7에 도시된 바와 같이, 랜덤성 시험 장치(200)는 연관성 시험 회로(220), 모노비트 시험 회로(240) 및 랜덤성 결정 회로(260)를 포함할 수 있다.
도 3의 랜덤성 시험 장치(100)와 비교할 때, 도 7의 랜덤성 시험 장치(200)는, 카운트 신호들(CNTS)을 생성하는 모노비트 테스트 회로(240)를 더 포함할 수 있다. 연관성 시험 회로(220)는, 도 3 등을 참조하여 전술된 바와 유사하게, 비트 스트림(STR)으로부터 복수의 합들(SUM)을 생성할 수 있고, 랜덤성 결정 회로(260)는 복수의 합들(SUM) 및 카운트 신호들(CNTS)에 기초하여 결과 신호(RES)를 생성할 수 있다.
모노비트 시험 회로(240)는 비트 스트림(STR) 중 동일한 비트값을 가지는 비트를 카운트함으로서 카운트 신호들(CNTS)을 생성할 수 있다. 랜덤성 결정 회로(260)는 카운트 신호들(CNTS)에 기초하여 비트 스트림(STR)에서 '1' 및 '0'의 비율을 검출할 수 있고, 검출된 비율에 기초하여 비트 스트림(STR)의 랜덤성을 결정할 수 있다. 모노비트 시험 회로(240)에 대한 자세한 내용은 도 8a 내지 도 8c를 참조하여 후술될 것이고, 랜덤성 결정 회로(260)에 대한 자세한 내용은 도 9a, 도 9b, 도 10a 및 도 10b를 참조하여 후술될 것이다.
도 8a 내지 도 8c는 본 개시의 예시적 실시예들에 따라 도 7의 모노비트 시험 회로(240)의 예시들(240a, 240b, 240c)을 나타내는 블록도들이다. 도 7을 참조하여 전술된 바와 같이, 모노비트 시험 회로(240a, 240b 또는 240c)는 비트 스트림(STR)에서 동일한 비트값을 가지는 비트들을 카운트함으로써 카운트 신호들(CNTSa, CNTSb 또는 CNTSc)을 출력할 수 있다. 도 1 등을 참조하여 전술된 바와 같이 비트 스트림(STR)의 비트들은 클락 신호(CLK)에 동기될 수 있고, 모노비트 시험 회로(240a, 240b 또는 240c)는 클락 신호(CLK)에 동기되어 비트 스트림(STR)에서 동일한 비트값을 가지는 비트들을 카운트할 수 있다.
비트 스트림(STR)에서 동일한 비트값을 가지는 비트들의 개수가 미리 정해진 개수(예컨대, 도 9a의 제2 기준치(REF2))보다 작은 경우, 비트 스트림(STR)의 엔트로피가 부족한 것으로 해석될 수 있다. 이에 따라, 모노비트 시험 회로(240a, 240b, 240c)는 비트 스트림(STR)에서 동일한 비트값을 가지는 비트들의 개수를 카운트함으로써 비트 스트림(STR)의 랜덤성을 시험할 수 있다
도 8a를 참조하면, 모노비트 시험 회로(240a)는 제1 카운터(241a), 제2 카운터(242a) 및 인버터(245a)를 포함할 수 있다. 도 8a에 도시된 바와 같이, 제1 카운터(241a)는 비트 스트림(STR)을 수신할 수 있고, 제2 카운터(242a)는 인버터(245a)에 의해 반전된 비트 스트림(/STR)을 수신할 수 있다. 이에 따라, 제1 카운터(241a)는 비트 스트림(STR)에서 비트값이 '1'인 비트를 클락 신호(CLK)에 동기되어 카운트할 수 있고, 제1 카운트 신호(CNT1)를 출력할 수 있다. 또한, 제2 카운터(242a)는 비트 스트림(STR)에서 비트값이 '0'인 비트를 클락 신호(CLK)에 동기되어 카운트할 수 있고, 제2 카운트 신호(CNT2)를 출력할 수 있다. 제1 및 제2 카운터들(241a, 242a)이 출력하는 제1 및 제2 카운트 신호(CNT1, CNT2)가 나타내는 값들의 합은, 비트 스트림(STR)의 비트들의 개수와 일치할 수 있다.
도 8b를 참조하면, 모노비트 시험 회로(240b)는 제1 카운터(241b), 제2 카운터(242b), 제3 카운터(243b) 및 인버터(245b)를 포함할 수 있다. 도 8b에 도시된 바와 같이, 제1 카운터(241b)는 비트 스트림(STR)을 수신할 수 있고, 제2 카운터(242b)는 인버터(245b)에 의해 반전된 비트 스트림(/STR)을 수신할 수 있고, 제3 카운터(243b)는 '1'을 수신할 수 있다. 이에 따라, 제1 카운터(241b)는 비트 스트림(STR)에서 비트값이 '1'인 비트를 클락 신호(CLK)에 동기되어 카운트할 수 있고, 제1 카운트 신호(CNT1)를 출력할 수 있다. 또한, 제2 카운터(242b)는 비트 스트림(STR)에서 비트값이 '0'인 비트를 클락 신호(CLK)에 동기되어 카운트할 수 있고, 제2 카운트 신호(CNT2)를 출력할 수 있다. 제3 카운터(243b)는 비트 스트림(STR)의 비트들을 카운트할 수 있고, 제3 카운트 신호(CNT3)를 출력할 수 있다. 즉, 제1 및 제2 카운터들(241b, 242b)이 출력하는 제1 및 제2 카운트 신호(CNT1, CNT2)가 나타내는 값들의 합은 제3 카운터(243b)가 출력하는 제3 카운트 신호(CNT3)가 나타내는 값과 일치할 수 있다.
도 8c를 참조하면, 모노비트 시험 회로(240c)는 제1 카운터(241c), 제3 카운터(243c)를 포함할 수 있다. 도 8c에 도시된 바와 같이, 제1 카운터(241c)는 비트 스트림(STR)을 수신할 수 있고, 제3 카운터(243c)는 '1'을 수신할 수 있다. 이에 따라, 제1 카운터(241c)는 비트 스트림(STR)에서 비트값이 '1'인 비트를 클락 신호(CLK)에 동기되어 카운트할 수 있고, 제1 카운트 신호(CNT1)를 출력할 수 있다. 또한, 제3 카운터(243c)는 비트 스트림(STR)의 비트들을 카운트할 수 있고, 제3 카운트 신호(CNT3)를 출력할 수 있다. 제3 카운트(243c)가 출력하는 제3 카운트 신호(CNT3) 및 제1 카운트(241c)가 출력하는 제1 카운트 신호(CNT1)의 차는 비트 스트림(STR)에서 '0'인 비트들의 개수와 일치할 수 있다. 일 실시예에서, 도 8c에 도시된 바와 상이하게, 제1 카운트 신호(CNT1) 대신 비트 스트림(STR)에서 '0'인 비트들의 개수를 카운트 하는 제2 카운터(예컨대 도 8a의 242a)에 의해서 생성된 제2 카운트 신호(CNT2)가 비트 스트림(STR)의 비트들의 개수를 나타내는 제3 카운트 신호(CNT3)와 함께 출력될 수도 있다.
도 9a 및 도 9b는 본 개시의 예시적 실시예들에 따라 도 7의 랜덤성 결정 회로(260)의 예시들(260a, 260b)을 나타내는 블록도들이다. 도 7을 참조하여 전술된 바와 같이, 랜덤성 결정 회로(260a 또는 260b)는, 연관성 시험 회로(220)가 생성한 복수의 합들(SUM) 및 모노비트 시험 회로(240)가 생성한 카운트 신호들(CNTS)을 수신할 수 있고, 복수의 합들(SUM) 및 카운트 신호들(CNTS)에 기초하여 스트림(STR)의 랜덤성에 관한 정보를 나타내는 결과 신호(RES)를 생성할 수 있다.
도 9a를 참조하면, 랜덤성 결정 회로(260a)는 변화량 검출기(261a), 복수의 비교기들(262a, 263a, 264a) 및 AND 게이트(265a)를 포함할 수 있다. 변화량 검출기(261a)는, 도 5의 변화량 검출기(161)와 유사하게, 복수의 합들(SUM)의 변화량(VAR)을 출력할 수 있다. 제1 비교기(262a)는 제1 기준값(REF1) 및 변화량(VAR)을 비교함으로써 제1 비교 신호(CMP1)를 생성할 수 있다. 제1 비교 신호(CMP1)는 변화량(VAR)이 제1 기준값(REF1)보다 작은 경우 비활성화될 수 있다.
제2 비교기(263a)는, 비트 스트림(STR)에서 '1'인 비트들의 개수를 나타내는 제1 카운트 신호(CNT1)와 제2 기준값(REF2)을 비교함으로써 제2 비교 신호(CMP2)를 출력할 수 있다. 도 9a에 도시된 바와 같이, 제2 비교 신호(CMP2)는 제1 카운트 신호(CNT1)가 제2 기준값(REF2)보다 작은 경우 비활성화될 수 있다. 또한, 제3 비교기(264a)는, 비트 스트림(STR)에서 '0'인 비트들의 개수를 나타내는 제2 카운트 신호(CNT2)와 제2 기준값(REF2)을 비교함으로써 제3 비교 신호(CMP3)를 출력할 수 있다. 도 9a에 도시된 바와 같이, 제3 비교 신호(CMP3)는 제2 카운트 신호(CNT2)가 제2 기준값(REF2)보다 작은 경우 비활성화될 수 있다.
AND 게이트(265a)는 제1, 제2 및 제3 비교 신호(CMP1, CMP2, CMP3)를 입력받을 수 있고, 결과 신호(RES)를 출력할 수 있다. 즉, 결과 신호(RES)는 제1, 제2 및 제3 비교 신호(CMP1, CMP2, CMP3) 중 적어도 하나가 비활성화되는 경우 비활성화, 즉 비트 스트림(STR)의 랜덤성이 불합격(FAIL)임을 나타낼 수 있다. 이에 따라, 복수의 합들(SUM)의 변화량이 제1 기준치(REF1)보다 크지 아니하고 제1 카운트 신호(CNT1) 및 제2 카운트 신호(CNT2) 양자가 제2 기준치(REF2)보다 큰 경우, 비트 스트림(STR)의 랜덤성이 합격인 것으로 결정될 수 있다. 즉, 복수의 합들(SUM)의 변화량이 제1 기준치(REF1)보다 작거나, 제1 카운트 신호(CNT1) 및 제2 카운트 신호(CNT2) 중 적어도 하나가 제2 기준치(REF2)보다 작은 경우, 비트 스트림(STR)의 랜덤성은 불합격인 것으로 결정될 수 있다.
도 9b를 참조하면, 랜덤성 결정 회로(260b)는 변화량 검출기(261b), 복수의 비교기들(262b, 263b, 264b), AND 게이트(265b) 및 제2 기준값 생성기(266b)를 포함할 수 있다. 도 9a의 랜덤성 결정 회로(260a)와 비교할 때, 도 9b의 랜덤성 결정 회로(260b)에서 제1 카운트 신호(CNT1) 또는 제2 카운트 신호(CNT2)가 제2 기준값(REF2')보다 높은 경우, 비트 스트림(STR)의 랜덤성은 불합격인 것으로 결정될 수 있다. 즉, 도 9b의 제2 기준값(REF2')은 도 9a의 제2 기준값(REF2)보다 클 수 있고, 예컨대 도 9b의 기준값(REF2')은 비트 스트림(STR)의 비트들의 개수인 'N'과 도 9a의 제2 기준값(REF2)의 차이와 일치할 수 있다. 이하에서, 본 개시의 예시적 실시예들은, 제1 및 제2 카운트 신호(CNT1, CNT2)와 비교되는 기준값이 도 9a의 제2 기준값(REF2)이고 이에 따라 제1 및 제2 카운트 신호(CNT1, CNT2) 중 하나가 제2 기준값(REF2)보다 작은 경우 비트 스트림(STR)의 랜덤성이 불합격인 것으로서 설명된다.
도 10a 및 도 10b는 본 개시의 예시적 실시예들에 따라 도 7의 랜덤성 결정 회로(260)의 예시들(260c, 260d)을 나타내는 블록도들이다.
도 10a를 참조하면, 랜덤성 결정 회로(260c)는 변화량 검출기(261c), 복수의 비교기들(262c, 263c, 264c), AND 게이트(265c) 및 제2 기준값 생성기(266c)를 포함할 수 있다. 도 9a 및 도 9b의 랜덤성 결정 회로(260a 또는 260b)와 비교할 때, 도 10a의 랜덤성 결정 회로(260c)는 제3 카운트 신호(CNT3)로부터 제2 기준 신호(REF2)를 생성하는 제2 기준값 생성기(266c)를 더 포함할 수 있다.
제2 기준값 생성기(266c)는, 비트 스트림(STR)에 대하여 원하는 엔트로피 수준에 따라 결정된, 비트 스트림(STR)의 비트들의 개수 및 동일한 비트값을 가지는 비트들의 개수의 비율에 기초하여, 비트 스트림(STR)의 비트들의 개수를 나타내는 제3 카운트 신호(CNT3)로부터 제2 기준 신호(REF2)를 생성할 수 있다. 즉, 제2 기준값 생성기(266c)는, 결정된 비율을 제3 카운트 신호(CNT3)가 나타내는 값에 승산함으로써 제2 기준값(REF2)을 생성할 수 있다.
도 10b를 참조하면, 랜덤성 결정 회로(260d)는 변화량 검출기(261d), 복수의 비교기들(262d, 264d), AND 게이트(265d) 및 제2 기준값 생성기(266d)를 포함할 수 있다. 랜덤성 결정 회로(260d)는 제1 카운트 신호(CNT1) 또는 제2 카운트 신호(CNT2)가 일정한 범위 내에 있는지 여부를 판단할 수 있다. 예를 들면, 도 10b에 도시된 바와 같이, 제2 기준값 생성기(266d)는 2개의 제2 기준값들(REF2_H, REF2_L)을 생성할 수 있고, 제2 비교기(263d)는 높은 제2 기준값(REF2_H) 및 제1 또는 제2 카운트 신호(CNT1 또는 CNT2)를 비교함으로써 제2 비교 신호(CMP2)를 생성할 수 있고, 제3 비교기(264d)는 낮은 제2 기준값(REF2_L) 및 제1 또는 제2 카운트 신호(CNT1 또는 CNT2)를 비교함으로써 제3 비교 신호(CMP3)를 생성할 수 있다. 제1 또는 제2 카운트 신호(CNT1 또는 CNT2)가 제2 기준값들(REF2_H, REF2_L) 사이를 벗어나는 경우, 제2 및 제3 비교 신호(CMP2, CMP3) 중 적어도 하나는 비활성화될 수 있고, 이에 따라 결과 신호(RES)는 비활성화될 수 있다.
제2 기준값 생성기(266d)는, 비트 스트림(STR)에 대하여 원하는 엔트로피 수준에 따라 결정된, 비트 스트림(STR)의 비트들의 개수 및 동일한 비트값을 가지는 비트들의 개수의 비율에 기초하여, 제3 카운트 신호(CNT3)로부터 2개의 제2 기준값들(REF2_H, REF2_L)을 생성할 수 있다. 예를 들면, 제2 기준값 생성기(266d)는, 결정된 비율을 제3 카운트 신호(CNT3)가 나타내는 값에 승산함으로써 낮은 제2 기준값(REF2_L)을 생성할 수 있고, 제3 카운트 신호(CNT3)가 나타내는 값에 낮은 제2 기준값(REF2_L)을 감산함으로써 높은 제2 기준값(REF2_H)를 생성할 수 있다.
도 11은 본 개시의 예시적 실시예에 따라 도 7의 랜덤성 시험 장치(200)의 동작을 나타내는 순서도이다. 구체적으로, 도 11의 단계 S240은 도 7의 모노비트 테스트 회로(240)에 의해서 수행될 수 있고, 도 11의 단계 S260은 도 7의 랜덤성 결정 회로(260)에 의해서 수행될 수 있다. 도 11에 도시된 바와 같이, 단계 S240은 복수의 단계들(S241 내지 S247)을 포함할 수 있고, 단계 S260은 복수의 단계들(S261 내지 S265)을 포함할 수 있다.
단계 S241에서, 초기화 동작이 수행될 수 있다. 예를 들면, 도 11에 도시된 바와 같이, 제1 카운트 신호(CNT1) 및 제2 카운트 신호(CNT2)를 리셋(즉, 0으로 설정)하고, 변수 'i'를 1로 설정하는 동작이 수행될 수 있다.
단계 S242에서, 비트 스트림의 1-비트(bi)를 취득하는 동작이 수행될 수 있다. 예를 들면, 랜덤성 시험 장치(200)는 클락 신호(CLK)의 상승(또는 하강) 에지마다 비트 스트림(STR)의 1-비트(bi)를 래치할 수 있다.
단계 S243에서, 취득된 비트(bi)가 '1'인지 여부를 판단하는 동작이 수행될 수 있다. 취득된 비트(bi)가 '1'인 경우, 단계 S244에서 제1 카운트 신호(CNT1)를 1만큼 증가시키는 동작이 수행될 수 있다. 다른 한편으로, 취득된 비트(bi)가 '1'이 아닌 경우(즉, '0'인 경우), 단계 S245에서 제2 카운트 신호(CNT2)를 1만큼 증가시키는 동작이 수행될 수 있다.
단계 S246에서, 변수 'i'가 'N'과 일치하는지 여부를 판단하는 동작이 수행될 수 있다. 즉, 비트 스트림(STR)의 모든 비트들의 취득이 완료되었는지 여부가 판단될 수 있다. 변수 'i'가 'N'과 일치하지 아니하는 경우(즉, 비트 스트림(STR)의 모든 비트들이 취득되지 아니한 경우), 단계 S247에서 변수 'i'를 1만큼 증가시키는 동작이 수행될 수 있고, 그 다음에 단계 S242에서 비트 스트림의 새로운 1-비트(bi)를 취득하는 동작이 수행될 수 있다. 다른 한편으로, 변수 'i'가 'N'과 일치하는 경우(즉, 비트 스트림(STR)의 모든 비트들이 취득된 경우), 제1 카운트 신호(CNT1) 및 제2 카운트 신호(CNT2)가 출력될 수 있다.
단계 S261에서 'K'개의 합들(SUM1,..., SUMK)의 최대값에 'K'개의 합들(SUM1,..., SUMK)의 최소값을 감산하는 동작이 수행될 수 있다. 즉, 'K'개의 합들(SUM1,..., SUMK)의 최대값 및 최소값의 차이를 변화량(VAR)으로서 생성할 수 있다.
단계 S262에서, 변화량(VAR) 및 제1 기준값(REF1)을 비교하는 동작이 수행될 수 있다. 변화량(VAR)이 제1 기준값(REF1)보다 큰 경우, 단계 S265에서 결과 신호(RES)는 불합격(FAIL)을 나타낼 수 있다. 다른 한편으로, 변화량(VAR)이 제1 기준값(REF1)보다 작거나 같은 경우, 단계 S263에서 제1 카운트 신호(CNT1) 또는 제2 카운트 신호(CNT2)가 제2 기준값(REF2)을 비교하는 동작이 수행될 수 있다. 제1 카운트 신호(CNT1) 또는 제2 카운트 신호(CNT2)가 제2 기준값(REF2)보다 작은 경우, 단계 S265에서 결과 신호(RES)는 불합격(FAIL)을 나타낼 수 있다. 다른 한편으로, 제1 카운트 신호(CNT1) 또는 제2 카운트 신호(CNT2)가 제2 기준값(REF2)보다 크거나 같은 경우, S264에서 결과 신호(RES)는 합격(PASS)을 나타낼 수 있다. 'N'이 2048이고, 제2 기준값(REF2)이 880일 때, 실험 결과는 '1'인 비트의 확률이 0.385인 경우에도, 0.99998362의 확률로서 비트 스트림(STR)이 랜덤하지 아니함이 검출되는 것을 보여준다.
도 12a 및 도 12b는 본 개시의 예시적 실시예들에 따른 랜덤성 결정 회로(360)의 예시들을 나타내는 블록도들이다. 도 12a 및 도 12b의 랜덤성 결정 회로(360a, 360b)는 도 3의 랜덤성 결정 회로(160)와 유사하게, 'K'개의 합들(SUM1,..., SUMK)(또는 SUM)을 수신할 수 있고, 결과 신호(RES)를 출력할 수 있다. 이하에서, 도 12a 및 도 12b에 대한 설명 중 중복된 내용은 생략될 것이다.
도 12a를 참조하면, 랜덤성 결정 회로(360a)는 변화량 검출기(361a), 제1 비교기(362a), AND 게이트(365a) 및 온전성 분별 회로(sanity check circuit)(368a)를 포함할 수 있다.
변화량 검출기(361a)는, 도 5의 변화량 검출기(161)와 유사하게, 'K'개의 합들(SUM1,..., SUMK)(또는 SUM)의 변화량을 검출함으로써 변화량(VAR)을 출력할 수 있다. 제1 비교기(362a)는 제1 기준값(REF1) 및 변화량(VAR)을 비교함으로써 제1 비교 신호(CMP1)를 출력할 수 있다.
온전성 분별 회로(368a)는 'K'개의 합들(SUM1,..., SUMK)(또는 SUM) 중 임의의 합(SUMj)(1≤j≤K)이 일정한 범위에 있는지 여부를 시험할 수 있다. 즉, 'K'개의 합들(SUM1,..., SUMK)(또는 SUM) 중 임의의 합(SUMj)이 제3 기준값 및 제4 기준값 사이에 있는지 여부를 시험할 수 있다. 도 12a에 도시된 바와 같이, 온전성 분별 회로(368a)는 비교기들(368_2a) 및 AND 게이트(368_4a)를 포함할 수 있다. 합(SUMj)은 2개의 비교기들(368_2a)에 각각 입력될 수 있고, 제3 및 제4 기준값(REF3, REF4)과 비교될 수 있다. 비교기들(368_2a)의 출력 신호는 AND 게이트(368_4a)에 의해서 AND 연산되고, 이에 따라 AND 게이트(368_4a)가 출력하는 제4 비교 신호(CMP4)는 합(SUMj)이 제3 및 제4 기준값(REF3, REF4) 사이에 있을 때 활성화될 수 있고, 그렇지 아니한 경우 비활성화될 수 있다. 예를 들면, 비트 스트림(STR)에 요구되는 엔트로피가 높을수록, 제3 및 제4 기준값(REF3, REF4)의 차이는 감소할 수 있다.
결과 신호(RES)는 제1 비교 신호(CMP1) 및 제4 비교 신호(CMP4) 중 적어도 하나가 비활성화되는 경우 비활성화될 수 있다. 즉, 'K'개의 합들(SUM1,..., SUMK)(또는 SUM)의 변화량이 제1 기준값(REF1)보다 작고 'K'개의 합들(SUM1,..., SUMK)(또는 SUM) 중 임의의 합(SUMj)이 제3 및 제4 기준값(REF3, REF4) 사이에 있는 경우에만, 결과 신호(RES)는 활성화될 수 있다. 이에 따라, 랜덤성 결정 회로(360)는 'K'개의 합들(SUM1,..., SUMK)(또는 SUM)의 변화량뿐만 아니라 'K'개의 합들(SUM1,..., SUMK)(또는 SUM) 중 임의의 합(SUMj)의 값을 고려함으로써 비트 스트림(STR)의 랜덤성을 검사할 수 있다.
도 12b를 참조하면, 랜덤성 결정 회로(360b)는, 도 12a의 랜덤성 결정 회로(360a)와 유사하게, 변화량 검출기(361b), 제1 비교기(362b), AND 게이트(365b) 및 온전성 분별 회로(368b)를 포함할 수 있다. 도 12a의 온전성 분별 회로(368a)와 비교할 때, 도 12b의 온전성 분별 회로 (368b)는 'K'개의 합들(SUM1,..., SUMK)(또는 SUM) 각각이 일정한 범위에 있는지 여부를 시험할 수 있다. 즉, 'K'개의 합들(SUM1,..., SUMK)(또는 SUM) 각각이 제3 기준값 및 제4 기준값 사이에 있는지 여부를 시험할 수 있다.
도 12b에 도시된 바와 같이, 온전성 분별 회로 (368b)는 비교기들(368_2b) 및 AND 게이트들(368_4b, 368_6b)을 포함할 수 있다. 'K'개의 합들(SUM1,..., SUMK)(또는 SUM) 각각은 2개의 비교기들에 각각 입력될 수 있고, 제3 및 제4 기준값(REF3, REF4)과 각각 비교될 수 있다. 비교기들(368_2b)의 출력 신호들은 AND 게이트들(368_4b, 368_6b)에 의해서 AND 연산되고, 이에 따라 AND 게이트(368_6b)가 출력하는 제4 비교 신호(CMP4)는 'K'개의 합들(SUM1,..., SUMK)(또는 SUM) 각각이 제3 및 제4 기준값(REF3, REF4) 사이에 있을 때 활성화될 수 있고, 그렇지 아니한 경우 비활성화될 수 있다.
도 13a 및 도 13b는 본 개시의 예시적 실시예에 따라 도 12a 및 도 12b의 랜덤성 결정 회로의 예시들의 동작들을 나타내는 순서도들이다. 구체적으로, 도 13a의 단계 S364a는 도 12a의 온전성 분별 회로(368a)에 의해서 수행될 수 있고, 도 13b의 단계 S364b는 도 12b의 온전성 분별 회로(368b)에 의해서 수행될 수 있다.
도 13a를 참조하면, 단계 S361a에서, 'K'개의 합들(SUM1,..., SUMK)의 최대값에 'K'개의 합들(SUM1,..., SUMK)의 최소값을 감산하는 동작이 수행될 수 있다. 즉, 'K'개의 합들(SUM1,..., SUMK)의 최대값 및 최소값의 차이를 변화량(VAR)으로서 생성할 수 있다.
단계 S362a에서 변화량(VAR) 및 제1 기준값(REF1)을 비교하는 동작이 수행될 수 있다. 변화량(VAR)이 제1 기준값(REF1)보다 큰 경우, 단계 S368a에서 결과 신호(RES)는 불합격(FAIL)을 나타낼 수 있다. 다른 한편으로, 변화량(VAR)이 제1 기준값(REF1)보다 작거나 같은 경우, 단계 S364a에서 'K'개의 합들(SUM1,..., SUMK) 중 임의의 합(SUMj)의 범위를 검사하는 동작이 수행될 수 있다. 합(SUMj)이 제3 기준값(REF3) 및 제4 기준값(REF4) 사이를 벗어난 경우, 단계 S368a에서 결과 신호(RES)는 불합격(FAIL)을 나타낼 수 있다. 다른 한편으로, 합(SUMj)이 제3 기준값(REF3) 및 제4 기준값(REF4) 사이에 있는 경우, 단계 S366a에서 결과 신호(RES)는 합격(PASS)을 나타낼 수 있다.
도 13b를 참조하면, 도 13a의 단계들 S361a, S362a와 유사하게, 단계 S361b에서 'K'개의 합들(SUM1,..., SUMK)의 최대값 및 최소값의 차이를 변화량(VAR)으로서 생성될 수 있고, 단계 S362b에서 변화량(VAR) 및 제1 기준값(REF1)을 비교하는 동작이 수행될 수 있다.
단계 S364b에서 'K'개의 합들(SUM1,..., SUMK) 각각의 범위를 검사하는 동작이 수행될 수 있다.
단계 S364_1b에서, 초기화 동작으로서 변수 'j'를 1로 설정하는 동작이 수행될 수 있다. 단계 S364_2b에서, 'K'개의 합들(SUM1,..., SUMK) 중 'j'번째 합(SUMj)이 제3 기준값(REF3) 및 제4 기준값(REF4) 사이에 있는지 여부를 판단하는 동작이 수행될 수 있다. 'j'번째 합(SUMj)이 제3 기준값(REF3) 및 제4 기준값(REF4) 사이를 벗어난 경우, 단계 S368b에서 결과 신호(RES)는 불합격(FAIL)을 나타낼 수 있다. 다른 한편으로, 'j'번째 합(SUMj)이 제3 기준값(REF3) 및 제4 기준값(REF4) 사이에 있는 경우, 단계 S364_3b에서 변수 'j'와 'K'가 일치하는지 여부를 판단하는 동작이 수행될 수 있다. 즉, 'K'개의 합들(SUM1,..., SUMK) 모두에 대하여 범위를 판단하는 동작이 완료되었는지 여부가 판단될 수 있다. 변수 'j'가 'K'와 일치하지 아니하는 경우(즉, 'K'개의 합들(SUM1,..., SUMK) 모두에 대하여 범위가 판단되지 아니한 경우), 단계 S364_4b에서 변수 'j'를 1만큼 증가시키는 동작이 수행될 수 있고, 그 다음에 단계 S364_2b에서 'K'개의 합들(SUM1,..., SUMK) 중 'j'번째 합(SUMj)이 제3 기준값(REF3) 및 제4 기준값(REF4) 사이에 있는지 여부를 판단하는 동작이 수행될 수 있다. 다른 한편으로, 변수 'j'가 'K'와 일치하는 경우(즉, 'K'개의 합들(SUM1,..., SUMK) 모두에 대하여 범위가 판단된 경우), 단계 S366b에서 결과 신호(RES)는 합격(PASS)을 나타낼 수 있다.
도 14은 본 개시의 예시적 실시예에 따른 난수 생성기의 난수성 시험 방법을 나타내는 순서도이다. 도 14에 도시된 바와 같이, 난수성 시험 방법은 복수의 단계들(SS20, S460)을 포함할 수 있다. 예를 들면, 복수의 단계들(S422, S424, S426, S428)로 구성된 단계 S420은 도 3의 연관성 시험 회로(120)에 의해서 수행될 수 있고, 단계 S460은 도 3의 랜덤성 결정 회로(160)에 의해서 수행될 수 있다. 이하에서, 도 14은 도 3을 참조하여 설명될 것이다.
단계 422에서, N-비트의 비트 스트림으로부터 M-비트의 비트 시퀀스를 추출하는 동작이 수행될 수 있다. 예를 들면, 비트 시퀀스는 연속적인 'M'개의 비트들로 구성될 수 있고, 도 3의 시프트 레지스터(122)의 동작과 유사하게, 이전에 추출된 비트 시퀀스의 최하위 비트(LSB)를 버리고, 비트 스트림으로부터 새로운 비트를 최상위 비트(MSB)로서 추가함으로써 새로운 비트 시퀀스가 추출될 수 있다.
단계 S424에서, 비트 시퀀스에서 'K'개의 상이한 비트 쌍들 각각의 양 비트들간 차이를 연산하는 동작이 수행될 수 있다. 'K'개의 상이한 비트 쌍들은 상이한 폭들을 각각 가질 수 있고, 비트 쌍의 양 비트들간 차이는, 예컨대 XOR 연산에 의해서 계산될 수 있다. 비트 쌍의 폭은 비트 쌍의 양 비트들간 거리를 지칭할 수 있다.
단계 S426에서, 'K'개의 상이한 비트 쌍들에 대응하는 'K'개의 차이들 각각을 누산하는 동작이 수행될 수 있다. 즉, 동일한 비트 폭을 가지는 비트 쌍들에 대응하는 차이들이 누산될 수 있고, 이에 따라 'K'개의 누산된 합들이 단계 S426에서 갱신될 수 있다.
단계 S428에서, 마지막 비트 시퀀스인지 여부를 판단하는 동작이 수행될 수 있다. 단계 S422에서 N-비트의 비트 스트림으로부터 'N-M+1'개의 상이한 M-비트의 비트 시퀀스가 추출될 수 있다. 따라서, 단계 422에서 추출된 비트 시퀀스가 'N-M+1'번째 비트 시퀀스인지가 판단될 수 있고, 비트 시퀀스가 'N-M+1'번째인 경우 마지막 비트 시퀀스로서 판단될 수 있다. 추출된 비트 시퀀스가 마지막 비트 시퀀스인 경우, 단계 S422에서 비트 스트림으로부터 새로운 비트 시퀀스를 추출하는 동작이 수행될 수 있다. 다른 한편으로, 추출된 비트 시퀀스가 마지막 비트 시퀀스가 아닌 경우, 단계 S460의 동작이 수행될 수 있다.
단계 S460에서, 'K'개의 누적된 차이들에 기초하여 N-비트의 비트 스트림의 랜덤성을 결정하는 동작이 수행될 수 있다. 단계 S426에서 마지막 비트 시퀀스에 대응하는 차이들까지 누산됨으로써 갱신된 'K'개의 합들에 기초하여, N-비트의 비트 스트림의 랜덤성을 결정하는 동작이 수행될 수 있다. 예를 들면, 도 6 등을 참조하여 전술된 바와 같이, 'K'개의 합들의 최대값 및 최소값의 차이, 즉 'K'개의 합들의 변화량이 검출될 수 있고, 검출된 변화량에 기초하여 N-비트의 비트 스트림의 랜덤성을 결정할 수 있다. 즉, 검출된 'K'개의 합들의 변화량이 특정 값(예컨대, 제1 기준값)보다 큰 경우 N-비트의 비트 스트림은 랜덤하지 아니한 것으로 결정될 수 있는 한편, 그렇지 아니한 경우 N-비트의 비트 스트림은 랜덤한 것으로 결정할 수 있다. 또한, 도 13a 및 도 13b 등을 참조하여 전술된 바와 같이, 'K'개의 합들 중 적어도 하나의 합이 일정한 범위(예컨대, 제3 및 제4 기준값 사이)에 있는지 여부를 시험할 수 있고, 시험된 적어도 하나의 합이 일정한 범위를 벗어나는 경우 N-비트의 비트 스트림은 랜덤하지 아니한 것으로 결정될 수 있는 한편, 그렇지 아니한 경우 N-비트의 비트 스트림은 랜덤한 것으로 결정할 수도 있다.
도 15는 본 개시의 예시적 실시예에 따른 난수 생성기의 난수성 시험 방법을 나타내는 순서도이다. 도 14의 난수성 시험 방법과 비교할 때, 도 15의 난수성 시험 방법은, 비트 스트림에서 동일한 비트값을 가지는 비트들의 개수를 추가적으로 사용할 수 있다. 도 15에 도시된 바와 같이, 난수성 시험 방법은 복수의 단계들(S520, S540, S560)을 포함할 수 있다. 예를 들면, 단계 S520은 도 7의 연관성 시험 회로(220)에 의해서 수행될 수 있고, 단계 S540은 도 7의 모노비트 시험 회로(240)에 의해서 수행될 수 있으며, 단계 S560은 도 7의 랜덤성 결정 회로(260)에 의해서 수행될 수 있다.
단계 S520에서, N-비트의 비트 스트림에서 'K'개의 상이한 비트 쌍들에 대응하는 'K'개의 합들을 생성하는 동작이 수행될 수 있다. 예를 들면, 도 14의 단계 S420과 유사하게, N-비트의 비트 스트림으로부터 추출된 복수의 비트 시퀀스들 각각에서 'K'개의 차이들이 연산될 수 있고, 복수의 비트 시퀀스들에 대하여 'K'개의 차이들 각각을 누산함으로써 'K'개의 합들이 생성될 수 있다.
단계 S540에서, N-비트의 비트 스트림에서 동일한 비트값을 갖는 비트들을 카운트하는 동작이 수행될 수 있다. 예를 들면, 도 11을 참조하여 전술된 바와 같이, N-비트의 비트 스트림에서 '1'인 비트들을 카운트할 수 있고, '0'인 비트들을 카운트할 수 있다.
단계 S560에서, 카운트된 비트들의 개수 및 'K'개의 합들에 기초하여, N-비트의 비트 스트림의 랜덤성을 결정하는 동작이 수행될 수 있다. 예를 들면, 도 11을 참조하여 전술된 바와 같이, 카운트된 비트들의 개수가 특정 개수(예컨대, 제2 기준값) 미만인 경우, N-비트의 비트 스트림는 랜덤하지 아니한 것으로 결정될 수 있다. 또한, 'K'개의 합들의 최대값 및 최소값의 차이, 즉 'K'개의 합들의 변화량이 검출될 수 있고, 검출된 변화량이 특정 값(예컨대, 제1 기준값)보다 큰 경우 N-비트의 비트 스트림는 랜덤하지 아니한 것으로 결정될 수 있다.
도 16는 본 개시의 예시적 실시예에 따라, 도 15의 단계 S560의 예시를 나타내는 순서도이다. 도 15를 참조하여 전술된 바와 같이, 단계 S560'에서, 카운트된 비트들의 개수 및 'K'개의 합들에 기초하여, N-비트의 비트 스트림의 랜덤성을 결정하는 동작이 수행될 수 있다. 도 16에 도시된 바와 같이, 단계 S560'은 복수의 단계들(S561 내지 S565)을 포함할 수 있다.
단계 S561에서, 'K'개의 합들의 최대값과 최소값의 차이가 제1 기준값보다 큰지 여부를 판단하는 동작이 수행될 수 있다. 'K'개의 합들의 최대값과 최소값의 차이가 제1 기준값보다 큰 경우, 단계 S564에서 비트 스트림이 랜덤하지 아니한 것으로 결정되는 동작이 수행될 수 있다. 예를 들면, 도 6, 도 11, 도 13a 및 도 13b 등을 참조하여 전술된 바와 같이, 'K'개의 합들 중 최대값 및 최소값을 추출함으로써 'K'개의 합들의 변화량이 검출될 수 있고, 'K'개의 합들의 변화량이 제1 기준값보다 큰 경우, 비트 스트림의 엔트로피의 부족에 기인하여 비트 스트림은 랜덤하지 아니한 것으로 결정될 수 있다. 다른 한편으로, 'K'개의 합들의 최대값과 최소값의 차이가 제1 기준값보다 큰지 아니한 경우, 단계 S562의 동작이 수행될 수 있다.
단계 S562에서, 동일한 비트값을 가지는 비트들의 개수가 제2 기준값보다 작은지 여부를 판단하는 동작이 수행될 수 있다. 동일한 비트값을 가지는 비트들의 개수가 제2 기준값보다 작은 경우, 단계 S564에서 비트 스트림이 랜덤하지 아니한 것으로 결정되는 동작이 수행될 수 있다. 예를 들면, 도 11을 참조하여 전술된 바와 같이, 비트 스트림에서 동일한 비트값을 가지는 비트들의 개수가 카운트될 수 있고, 카운트된 비트들의 개수가 제2 기준값보다 작은 경우, 비트 스트림의 엔트로피의 부족에 기인하여 비트 스트림은 랜덤하지 아니한 것으로 결정될 수 있다. 다른 한편으로, 동일한 비트값을 가지는 비트들의 개수가 제2 기준값보다 작지 아니한 경우, 단계 S563의 동작이 수행될 수 있다.
단계 S563에서, 'K'개의 합들 중 제3 및 제4 기준값 사이를 벗어난 합이 있는지 여부를 판단하는 동작이 수행될 수 있다. 'K'개의 합들 중 제3 및 제4 기준값 사이를 벗어난 합이 있는 경우, 단계 S564에서 비트 스트림이 랜덤하지 아니한 것으로 결정되는 동작이 수행될 수 있다. 예를 들면, 도 13a 및 도 13b를 참조하여 전술된 바와 같이, 'K'개의 합들 중 적어도 하나의 합은 제3 및 제4 기준값과 비교될 수 있고, 비교된 적어도 하나의 합이 제3 및 제4 기준값 사이를 벗어난 경우, 비트 스트림의 엔트로피의 부족에 기인하여 비트 스트림은 랜덤하지 아니한 것으로 결정될 수 있다. 다른 한편으로, 'K'개의 합들 모두가 제3 및 제4 기준값 사이에 있는 경우, 단계 S565에서 비트 스트림이 랜덤한 것으로 결정하는 동작이 수행될 수 있다.
비록 도 16는 비트 스트림이 랜덤한지 여부를 시험하는 3개의 단계들(S561, S562, S563)을 모두 도시하고 있으나, 본 개시의 예시적 실시예에 따라 도 15의 단계 S560은 3개의 단계들(S561, S562, S563) 중 적어도 하나만을 포함할 수도 있는 점은 이해될 것이다. 또한 도 16에서, 3개의 단계들(S561, S562, S563)이 수행되는 순서는 예시에 불과하며, 도 16에 도시된 순서와 상이한 순서로 3개의 단계들(S561, S562, S563)이 수행될 수도 있는 점은 이해될 것이다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 난수 생성기를 시험하는 장치로서,
    상기 난수 생성기가 생성한 비트 스트림에서 동일한 거리로 이격된 양 비트들로 각각 구성된 복수의 비트 쌍들을 추출하고 상기 복수의 비트 쌍들 각각의 양 비트들간 차이들을 합산한 합을 계산함으로써, 상이한 복수의 거리들에 각각 대응하는 복수의 합들을 생성하는 연관성 시험 회로; 및
    상기 복수의 합들에 기초하여, 상기 비트 스트림의 랜덤성을 결정하는 랜덤성 결정 회로를 포함하는 장치.
  2. 청구항 1에 있어서,
    상기 랜덤성 결정 회로는, 상기 복수의 합들의 최대값 및 최소값의 차이에 기초하여 상기 비트 스트림의 랜덤성을 결정하는 것을 특징으로 하는 장치.
  3. 청구항 2에 있어서,
    상기 랜덤성 결정 회로는, 상기 최대값 및 최소값의 차이가 제1 기준값보다 큰 경우 상기 비트 스트림이 랜덤하지 아니한 것으로 결정하는 것을 특징으로 하는 장치.
  4. 청구항 1에 있어서,
    상기 연관성 시험 회로는, 상기 복수의 비트 쌍들 각각의 양 비트들을 XOR 연산함으로써 상기 차이를 계산하는 것을 특징으로 하는 장치.
  5. 청구항 1에 있어서,
    상기 복수의 비트 쌍들의 개수는, 상기 복수의 거리들 중 최대값과 상기 비트 스트림의 비트들의 개수의 차이와 일치하는 것을 특징으로 하는 장치.
  6. 청구항 1에 있어서,
    상기 비트 스트림 중 동일한 비트값을 가지는 비트들을 카운트함으로써 카운트 출력을 생성하는 모노비트 시험 회로를 더 포함하고,
    상기 랜덤성 결정 회로는, 상기 카운트 출력에 더 기초하여 상기 비트 스트림의 랜덤성을 결정하는 것을 특징으로 하는 장치.
  7. 청구항 6에 있어서,
    상기 랜덤성 결정 회로는, 상기 카운트 출력이 제2 기준값보다 작은 경우 상기 비트 스트림이 랜덤하지 아니한 것으로 결정하는 것을 특징으로 하는 장치.
  8. 청구항 7에 있어서,
    상기 제2 기준값은, 상기 난수 생성기에 요구되는 엔트로피에 기초하여 결정되는 것을 특징으로 하는 장치.
  9. 청구항 6에 있어서,
    상기 모노비트 시험 회로는, '0'인 비트들의 개수 및 '1'인 비트들의 개수를 포함하는 상기 카운트 출력을 생성하는 것을 특징으로 하는 장치.
  10. 청구항 1에 있어서,
    상기 랜덤성 결정 회로는, 상기 복수의 합들 중 적어도 하나의 합을 제3 기준값 및 제4 기준값 각각과 비교하고, 상기 적어도 하나의 합이 상기 제3 및 제4 기준값 사이를 벗어난 합을 포함하는 경우 상기 비트 스트림이 랜덤하지 아니한 것으로 결정하는 것을 특징으로 하는 장치.
  11. 난수 생성기를 시험하는 방법으로서,
    상기 난수 생성기가 생성한 N-비트들 중 연속적인 M-비트들로 구성된 비트 시퀀스에서 'K'개의 상이한 비트 쌍들 각각의 양 비트들간 차이를 연산하는 단계;
    상기 'K'개의 상이한 비트 쌍들에 대응하는 'K'개의 차이들 각각을 복수의 상이한 비트 시퀀스들[들]에 대하여 누산하는 단계; 및
    K개의 누산된 차이들에 기초하여, 상기 N-비트들의 랜덤성을 결정하는 단계를 포함하고,
    상기 'K', 'M', 'N'은 2이상의 정수인 것을 특징으로 하는 방법.
  12. 청구항 11에 있어서,
    상기 결정하는 단계는, 상기 'K'개의 누산된 차이들 중 최대값 및 최소값의 차이에 기초하여 상기 N-비트들의 랜덤성을 결정하는 것을 특징으로 하는 방법.
  13. 청구항 12에 있어서,
    상기 결정하는 단계는, 상기 최대값 및 최소값의 차이가 제1 기준값보다 큰 경우 상기 N-비트들이 랜덤하지 아니한 것으로 결정하는 것을 특징으로 하는 방법.
  14. 청구항 11에 있어서,
    상기 연산하는 단계는, 상기 'K'개의 상이한 비트 쌍들 각각의 양 비트들을 XOR 연산함으로써 상기 차이를 계산하는 것을 특징으로 하는 방법.
  15. 청구항 11에 있어서,
    상기 누산하는 단계는, 상기 'K'개의 차이들 각각을 'N-M+1'개의 상이한 비트 시퀀스들에 대하여 누산하는 것을 특징으로 하는 방법.
  16. 청구항 11에 있어서,
    상기 N-비트들 중 동일한 비트값을 가지는 비트들을 카운트하는 단계를 더 포함하고,
    상기 결정하는 단계는, 상기 동일한 비트값을 가지는 비트의 개수에 더 기초하여 상기 N-비트들의 랜덤성을 결정하는 것을 특징으로 하는 방법.
  17. 청구항 16에 있어서,
    상기 결정하는 단계는, 상기 동일한 비트값을 가지는 비트의 개수가 제2 기준값보다 작은 경우 상기 N-비트들이 랜덤하지 아니한 것으로 결정하는 것을 특징으로 하는 방법.
  18. 청구항 17에 있어서,
    상기 제2 기준값은, 상기 난수 생성기에 요구되는 엔트로피에 기초하여 결정되는 것을 특징으로 하는 방법.
  19. 청구항 17에 있어서,
    상기 카운트하는 단계는,
    상기 N-비트들 중 '0'인 비트를 카운트하는 단계; 및
    상기 N-비트들 중 '1'인 비트를 카운트하는 단계를 포함하고,
    상기 결정하는 단계는, 상기 N-비트들 중 '0'인 비트의 개수 및 상기 N-비트들 중 '1'인 비트의 개수 중 적어도 하나가 상기 제2 기준값보다 작은 경우 상기 N-비트들이 랜덤하지 아니한 것으로 결정하는 것을 특징으로 하는 방법.
  20. 청구항 11에 있어서,
    상기 결정하는 단계는, 상기 'K'개의 누산된 차이들 중 적어도 하나의 누산된 차이를 제3 기준값 및 제4 기준값 각각과 비교하고, 상기 적어도 하나의 누산된 차이가 상기 제3 및 제4 기준값 사이를 벗어난 누산된 차이를 포함하는 경우 상기 N-비트들이 랜덤하지 아니한 것으로 결정하는 것을 특징으로 하는 장치.
KR1020160152968A 2016-11-16 2016-11-16 난수 생성기의 랜덤성 시험 장치 및 방법 KR20180055299A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020160152968A KR20180055299A (ko) 2016-11-16 2016-11-16 난수 생성기의 랜덤성 시험 장치 및 방법
US15/404,826 US10146507B2 (en) 2016-11-16 2017-01-12 Randomness test apparatus and method for random number generator
CN201710055989.XA CN108089840B (zh) 2016-11-16 2017-01-25 用于随机数产生器的随机性测试设备及方法
DE102017104441.8A DE102017104441A1 (de) 2016-11-16 2017-03-03 Zufälligkeitstestvorrichtung und Verfahren für einen Zufallszahlengenerator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160152968A KR20180055299A (ko) 2016-11-16 2016-11-16 난수 생성기의 랜덤성 시험 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20180055299A true KR20180055299A (ko) 2018-05-25

Family

ID=62026378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160152968A KR20180055299A (ko) 2016-11-16 2016-11-16 난수 생성기의 랜덤성 시험 장치 및 방법

Country Status (4)

Country Link
US (1) US10146507B2 (ko)
KR (1) KR20180055299A (ko)
CN (1) CN108089840B (ko)
DE (1) DE102017104441A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200119459A (ko) * 2019-04-09 2020-10-20 한국전자통신연구원 난수 생성 장치 및 이의 동작 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180055299A (ko) * 2016-11-16 2018-05-25 삼성전자주식회사 난수 생성기의 랜덤성 시험 장치 및 방법
WO2018143845A1 (en) * 2017-02-06 2018-08-09 Telefonaktiebolaget Lm Ericsson (Publ) Lawful interception security
CA3112170C (en) * 2018-09-13 2024-04-23 Fujitsu Limited Generation of random numbers when starting, stopping and restarting annealing process
EP3674884A1 (en) 2018-12-27 2020-07-01 Secure-IC SAS Device and method for testing a sequence generated by a random number generator

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1320026A1 (en) * 2001-12-13 2003-06-18 STMicroelectronics S.r.l. Method for generating a random number sequence and a relative random bit generator
US6947960B2 (en) 2002-02-21 2005-09-20 Koninklijke Philips Electronics N.V. Randomness test utilizing auto-correlation
US7295674B2 (en) 2002-02-21 2007-11-13 Nxp B.V. On-line randomness test for detecting irregular pattern
US20030158876A1 (en) 2002-02-21 2003-08-21 Koninklijke Philips Electronics N.V. On-line randomness test through overlapping word counts
US20030187889A1 (en) 2002-03-26 2003-10-02 Koninklijke Philips Electronics N.V. Functional gap average on-line randomness test
US6889236B2 (en) * 2002-03-26 2005-05-03 Koninklijke Philips Electronics N.V. Gap average on-line randomness test
US6675113B2 (en) 2002-03-26 2004-01-06 Koninklijke Philips Electronics N.V. Monobit-run frequency on-line randomness test
US7031991B2 (en) 2002-04-17 2006-04-18 Koninklijke Philips Electronics N.V. Hadamard-transform on-line randomness test
US6993543B2 (en) 2002-04-22 2006-01-31 Koninklijke Philips Electronics N.V. Gap histogram on-line randomness test
US7788479B2 (en) 2002-07-25 2010-08-31 International Business Machines Corporation Apparatus, system and method of ensuring that only randomly-generated numbers that have passed a test are used for cryptographic purposes
JP4094570B2 (ja) 2004-03-02 2008-06-04 株式会社東芝 乱数検査回路、乱数生成回路、半導体集積装置、icカードおよび情報端末機器
US7827223B2 (en) * 2004-04-22 2010-11-02 Fortress Gb Ltd. Accelerated throughput synchronized word stream cipher, message authenticator and zero-knowledge output random number generator
JP4413858B2 (ja) 2005-12-13 2010-02-10 株式会社東芝 乱数検定回路
JP4883273B2 (ja) * 2006-01-11 2012-02-22 日本電気株式会社 乱数品質管理装置および管理方法
JP2008242815A (ja) 2007-03-27 2008-10-09 Toshiba Corp 乱数発生回路用テスト回路及び乱数発生回路用テスト方法
KR20090012528A (ko) * 2007-07-30 2009-02-04 삼성전자주식회사 난수 발생 장치의 자발적인 온라인 테스트 장치 및 방법
US8805905B2 (en) 2007-09-18 2014-08-12 Seagate Technology Llc On-line randomness test for restart random number generators
US8676870B2 (en) 2007-09-18 2014-03-18 Seagate Technology Llc Active test and alteration of sample times for a ring based random number generator
JP2009098973A (ja) 2007-10-17 2009-05-07 Toshiba Corp 乱数生成回路搭載集積回路の検査方法および乱数生成回路搭載集積回路
US8200727B2 (en) 2008-02-14 2012-06-12 Apple Inc. Method and apparatus for verifying and diversifying randomness
US8868630B1 (en) * 2011-03-18 2014-10-21 Board Of Regents Of The University Of Texas System Verification of pseudorandom number streams
US9135129B2 (en) * 2013-01-11 2015-09-15 Freescale Semiconductor, Inc. Method and apparatus for testing a random number generator tester
US20150199175A1 (en) * 2013-02-14 2015-07-16 Yongge Wang Systems and Methods for Performing Randomness and Pseudorandomness Generation, Testing, and Related Cryptographic Techniques
KR20140111844A (ko) 2013-03-12 2014-09-22 삼성전자주식회사 난수 발생기 및 난수 품질 테스트 방법
DE102013213385A1 (de) * 2013-07-09 2015-01-15 Robert Bosch Gmbh Verfahren zur Beurteilung einer Ausgabe eines Zufallsgenerators
JP6176076B2 (ja) * 2013-11-22 2017-08-09 富士通株式会社 物理乱数生成装置、物理乱数生成方法、及び物理乱数生成システム
KR101557761B1 (ko) 2014-02-12 2015-10-06 한국전자통신연구원 실난수 발생기의 출력 수열 안정화 장치 및 방법
KR101583471B1 (ko) 2014-12-31 2016-01-08 고려대학교 산학협력단 임의성을 검증하는 통계적 기법을 이용하여 난수를 공급하는 장치 및 방법
KR20180055299A (ko) * 2016-11-16 2018-05-25 삼성전자주식회사 난수 생성기의 랜덤성 시험 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200119459A (ko) * 2019-04-09 2020-10-20 한국전자통신연구원 난수 생성 장치 및 이의 동작 방법
US11372623B2 (en) 2019-04-09 2022-06-28 Electronics And Telecommunications Research Institute Random number generating device and operating method of the same

Also Published As

Publication number Publication date
CN108089840B (zh) 2022-03-08
DE102017104441A1 (de) 2018-05-17
US10146507B2 (en) 2018-12-04
US20180136907A1 (en) 2018-05-17
CN108089840A (zh) 2018-05-29

Similar Documents

Publication Publication Date Title
KR20180055299A (ko) 난수 생성기의 랜덤성 시험 장치 및 방법
Khan et al. DILAND: An algorithm for distributed sensor localization with noisy distance measurements
US8468186B2 (en) Combination of values from a pseudo-random source
JP2017512017A (ja) パルス振幅変調(pam)ビット・エラーの試験及び測定
US11277272B2 (en) Integrated circuit and method for challenge-response physically unclonable function
JP2017512017A5 (ko)
CN109428721B (zh) 用于确定物理不可克隆功能电路的健康状况的方法或装置
US7734672B2 (en) Checking of a bit flow
Younes et al. Universal approaches for overflow and sign detection in residue number system based on {2n− 1, 2n, 2n+ 1}
CN110507344B (zh) 一种符合判选方法、装置、设备及存储介质
US11586956B2 (en) Searching apparatus utilizing sub-word finite state machines
US10735149B2 (en) Eye diagram measurement device and eye diagram measurement method
KR20140037155A (ko) 코드 보안 검사를 위한 방법 및 회로 장치
EP2759936B1 (en) System and method for three input voting
RU2542900C2 (ru) Способ установления синхронизации псевдослучайных последовательностей
KR101267894B1 (ko) 확장형 오류검출코드 생성기, 그 생성기를 구비한 자가검사 룩업테이블 및 확장형 오류검출코드 생성방법
KR101268998B1 (ko) 프로그래머블 시프트/로테이트 연산 유닛을 위한 확장형 오류검출코드 기반의 오류 검출 장치 및 그 오류 검출 장치를 포함하는 자가검사 프로그래머블 시프트/로테이트 연산 유닛
US20140185799A1 (en) Method for generating large prime number in embedded system
Mishra et al. Generalized avalanche test for stream cipher analysis
Kim et al. Online test based on mutual information for true random number generators
JP2017173068A (ja) 試験回路
JP2019021137A (ja) 乱数信号発生器及び乱数信号発生方法
KR102178275B1 (ko) 인터리빙 주기 추정 장치 및 방법
RU2812335C1 (ru) Способ синхронизации кодовых комбинаций
KR101268996B1 (ko) 프로그래머블 덧셈/뺄셈 연산 유닛을 위한 확장형 오류검출코드 기반의 오류 검출 장치 및 그 오류 검출 장치를 포함하는 자가검사 프로그래머블 덧셈/뺄셈 연산 유닛

Legal Events

Date Code Title Description
A201 Request for examination