KR20140111844A - 난수 발생기 및 난수 품질 테스트 방법 - Google Patents

난수 발생기 및 난수 품질 테스트 방법 Download PDF

Info

Publication number
KR20140111844A
KR20140111844A KR1020130026257A KR20130026257A KR20140111844A KR 20140111844 A KR20140111844 A KR 20140111844A KR 1020130026257 A KR1020130026257 A KR 1020130026257A KR 20130026257 A KR20130026257 A KR 20130026257A KR 20140111844 A KR20140111844 A KR 20140111844A
Authority
KR
South Korea
Prior art keywords
hmin
word
random number
minimum entropy
calculating
Prior art date
Application number
KR1020130026257A
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 KR1020130026257A priority Critical patent/KR20140111844A/ko
Priority to US14/088,622 priority patent/US20140279813A1/en
Publication of KR20140111844A publication Critical patent/KR20140111844A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명에 따른 난수 품질 테스트 방법은, 난수를 발생하는 단계; 상기 발생된 난수에서 적어도 2개의 워드들을 카운트하는 단계; 상기 카운트된 워드들의 확률값들을 계산하는 단계; 상기 계산된 확률값들의 최소 엔트로피(Hmin)들을 계산하는 단계; 및 상기 계산된 최소 엔트로피(Hmin)들을 이용하여 상기 발생된 난수의 품질을 결정하는 단계를 포함한다.

Description

난수 발생기 및 난수 품질 테스트 방법{RANDOM NUMBER GENERATOR AND RANDOM NUMBER HEALTH TEST METHOD THEREOF}
본 발명은 난수 발생기 및 그것의 난수 품질 테스트 방법에 관한 것이다.
일반적으로, 난수들은 수학 공식 및 소프트웨어에 의하여 만들어지는 의사 난수(pseudo random number)와 물리적 노이즈 원(physical noise source)으로부터 생성되는 참난수(true random number, 'TRN')가 있다. 의사 난수의 경우, 일정 수학공식들에 따라서 만들어진다. 의사 난수는 상황에 따라 예측이 가능하고, 생성 방법에 따라 주기성과 규칙성을 갖게 되며, 따라서 완전한 난수 일 수 없다. 그러므로 중요한 개인 정보 등 보안이 매우 중요시 되는 시스템에 있어서는, 시스템의 보안을 의사 난수를 이용하여 수행할 수 없다.
난수 발생기에서 출력되는 난수의 품질은 곧 보안 시스템 전체의 보안 유지와 직결되기 때문이다. 그러므로, 철저한 보안을 요구하는 시스템의 경우, 참난수(TRN)를 발생시켜야 할 필요성이 있다. 참난수 발생의 발생에 있어서, 외부의 노이즈 원을 이용하여 난수를 발생시키는 난수 발생기는, 서로 다른 외부 요인의 영향을 받는다. 이러한 외부 요인의 영향은, 발생되는 난수의 품질(quality)을 변동시킬 수 있다. 즉, 외부 요인의 영향으로 인하여, 통계적으로 약한 데이터(statistically weak data)가 출력될 수 있다.
난수의 품질(quality)은 시스템의 보안과 직결된다. 난수가 통계적 특성을 만족하지 못하고 일정 주기성 또는 일정 규칙성을 가진다면, 난수의 값은 예측될 수 있다. 그리고 상기 예측 가능한 난수는 시스템의 보안키로 쓰이게 되므로, 시스템의 보안이 위협받게 되는 것이다. 따라서, 통계적 특성이 만족되지 못하는 통계적으로 약한 데이터(statistically weak data)는 시스템에 이용되는 난수로써 출력되면 안 된다. 최종 출력되는 난수는 통계적 특성 요구(예를 들어, NIST SP 800-90)를 만족시켜야 한다.
본 발명의 목적은 최소 엔트로피(Hmin)를 이용하여 간단하게 난수 품질을 테스트하는 난수 품질 테스트 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 난수 품질 테스트 방법은, 난수를 발생하는 단계; 상기 발생된 난수에서 적어도 2개의 워드들을 카운트하는 단계; 상기 카운트된 워드들의 확률값들을 계산하는 단계; 상기 계산된 확률값들의 최소 엔트로피(Hmin)들을 계산하는 단계; 및 상기 계산된 최소 엔트로피(Hmin)들을 이용하여 상기 발생된 난수의 품질을 결정하는 단계를 포함한다.
실시 예에 있어서, 상기 난수를 발생하는 단계는, 물리적 노이즈 소스로부터 발생되는 참난수를 발생하는 단계를 포함한다.
실시 예에 있어서, 상기 적어도 2개의 워드들의 크기는 서로 다르다.
실시 예에 있어서, 상기 적어도 2개의 워드들은 '1'로 구성된 제 1 워드와 상기 제 1 워드와 동일한 워드 크기이며 '0'으로 구성된 제 2 워드를 포함하고, 상기 워드들을 카운트하는 단계는, 상기 제 1 및 상기 제 2 워드들을 모두 카운트하는 단계를 포함한다.
실시 예에 있어서, 상기 확률값을 계산하는 단계는, 상기 제 1 워드의 확률값과 상기 제 2 워드의 확률값을 계산하는 단계를 포함한다.
실시 예에 있어서, 상기 확률값을 계산하는 단계는, 상기 제 1 워드의 카운트 값과 상기 제 2 워드의 카운트 값 중에서 큰 값의 확률값을 계산하는 단계를 포함한다.
실시 예에 있어서, 상기 최소 엔트로피(Hmin)들을 계산하는 단계는, 상기 큰 값의 확률값에 대한 최소 엔트로피(Hmin)를 계산하는 단계를 더 포함한다.
실시 예에 있어서, 상기 서로 다른 적어도 2개의 워드들 각각은, '1'로 구성된 제 1 워드이거나 '0'으로 구성된 제 2 워드이다.
실시 예에 있어서, 상기 최소 엔트로피(Hmin)들을 계산하는 단계는, 아래의 최소 엔트로피(Hmin) 계산 수식,
Figure pat00001
를 이용하여 최소 엔트로피(Hmin)들을 계산하는 단계를 포함하고, 여기서 Pmax는 상기 적어도 2개의 워드들 각각의 확률값이다.
실시 예에 있어서, 상기 최소 엔트로피(Hmin)들을 계산하는 단계는, 구간 선형 근사화 기법을 이용하여 최소 엔트로피(Hmin)들을 계산하는 단계를 포함한다.
실시 예에 있어서, 상기 구간 선형 근사 기법은 복수의 구간들 각각에 대응하는 계수들을 저장하는 테이블을 이용한다.
실시 예에 있어서, 상기 난수 품질을 결정하는 단계는, 상기 최소 엔트로피(Hmin)들과 상기 적어도 2개의 워드들의 크기들 사이에 연관된 품질 결정 함수값을 이용하여 난수의 품질을 결정하는 단계를 포함한다.
실시 예에 있어서, 상기 난수 품질을 결정한 뒤, 상기 난수의 품질의 결과값으로써 상기 최소 엔트로피(Hmin)들 중에서 가장 작은 최소 엔트로피(Hmin)를 출력하는 단계를 더 포함한다.
본 발명의 다른 실시 예에 따른 난수 품질 테스트 방법은, 난수를 발생하는 단계; 상기 발생된 난수에서 '1'로 구성된 제 1 워드의 제 1 최소 엔트로피(Hmin)를 계산하는 단계; 상기 발생된 난수에서 '0'으로 구성된 제 2 워드의 제 2 최소 엔트로피(Hmin)를 계산하는 단계; 상기 제 1 및 제 2 최소 엔트로피(Hmin)들을 이용하는 품질 결정 함수값이 기준값보다 작은 지를 판별하는 단계; 및 상기 품질 결정 함수값이 상기 기준값보다 작지 않으면 에러를 출력하는 단계를 포함한다.
실시 예에 있어서, 상기 제 1 워드의 크기가 동일한 워드 크기이며 '0'으로 구성된 제 3 워드의 제 3 최소 엔트로피(Hmin)를 계산하는 단계를 더 포함한다.
실시 예에 있어서, 상기 품질 결정 함수값이 상기 기준값보다 작으면, 상기 제 1 및 제 3 최소 엔트로피(Hmin)들 중에서 최소값을 최소 엔트로피(Hmin)로 출력하는 단계를 더 포함한다.
실시 예에 있어서, 상기 제 1 워드를 카운트하고, 상기 카운트된 제 1 워드의 확률값을 계산하는 단계; 및 상기 제 2 워드를 카운트하고, 상기 카운트된 제 2 워드의 확률값을 계산하는 단계를 더 포함한다.
실시 예에 있어서, 상기 제 1 워드와 동일한 워드 크기이며 '0'으로 구성된 제 3 워드를 카운트하는 단계를 더 포함한다.
실시 예에 있어서, 상기 제 1 워드와 동일한 워드 크기이며 '0'으로 구성된 제 3 워드의 확률값을 계산하기 위하여 상기 난수에서 '1'을 '0'으로 변경하는 단계를 더 포함한다.
실시 예에 있어서, 상기 제 1 워드는 '1'이고, 상기 제 2 워드는 '11'이다.
본 발명의 실시 예에 따른 난수 발생기는, 난수를 발생하는 난수 발생부; 상기 발생된 난수에서 적어도 2개의 워드들의 최소 엔트로피(Hmin)들을 계산하고, 상기 계산된 최소 엔트로피(Hmin)들을 이용한 품질 결정 함수값에 따라 상기 발생된 난수의 품질을 결정하는 품질 테스트부; 및 상기 품질 테스트부의 결과에 따라 상기 발생된 난수를 출력하는 출력부를 포함한다.
실시 예에 있어서, 상기 적어도 2개의 워드들은 '1'을 구성된 제 1 워드와 '0'으로 구성된 제 2 워드를 포함한다.
실시 에에 있어서, 상기 적어도 2개의 워드들은 i(i는 자연수) 워드 크기의 제 1 워드와, j(j는 i보다 큰 자연수) 워드 크기의 제 2 워드를 포함하고, 상기 품질 결정 함수값(T)은, T = Hmin_j - (j/i)Hmin_i 을 만족하고, 여기서 Hmin_i는 상기 제 1 워드의 최소 엔트로피(Hmin)이고, Hmin_j는 상기 제 2 워드의 최소 엔트로피(Hmin)이다.
본 발명의 실시 예에 따른 난수 발생기의 최소 엔트로피(Hmin) 근사화 방법은, 발생된 난수에서 어느 하나의 워드의 확률값을 계산하는 단계; 상기 계산된 확률값에 대응하는 구간을 선택하는 단계; 상기 선택된 구간에 대응하는 계수들을 계산 블록으로 인가하는 단계; 상기 계산 블록에서 상기 인가된 계수들을 이용하여 최소 엔트로피(Hmin)를 계산하는 단계를 포함한다.
실시 예에 있어서, 상기 계수들은 메모리 테이블에 저장된다.
실시 예에 있어서, 상기 계산 블록은 사전에 결정된 숫자들과 상기 계수들을 쉬프트 연산을 이용하여 곱셈한다.
실시 예에 있어서, 상기 구간은 상기 사전에 결정된 숫자들의 개수가 서로 다른 제 1 및 제 2 구간으로 구분되고, 상기 제 1 및 제 2 구간들에 대응하는 상기 계수들은 서로 다르다.
실시 예에 있어서, 상기 구간은 상기 사전에 결정된 숫자들의 개수가 서로 동일한 제 1 및 제 2 구간으로 구분되고, 상기 제 1 및 제 2 구간들에 대응하는 상기 계수들은 서로 다르다.
실시 예에 있어서, 상기 구간은 제 1 및 제 2 구간으로 구분되고, 상기 제 1 및 제 2 구간들에 대응하는 상기 계수들은 서로 다르고, 상기 계수들 각각에 대응하는 사전에 결정된 숫자를 곱셈하면서 동시에 최소 엔트로피(Hmin)가 계산된다.
상술한 바와 같이 본 발명에 따른 난수 품질 테스트 방법은, 적어도 2개의 워드들에 대한 최소 엔트로피(Hmin)들을 계산하고, 계산된 최소 엔트로피(Hmin)들을 이용하여 난수의 품질을 간단하게 테스트할 수 있다.
도 1은 본 발명의 실시 예에 따른 난수 발생기를 보여주는 블록도이다.
도 2는 도 1에 도시된 품질 테스트부의 난수 품질 테스트 방법을 예시적으로 보여주는 흐름도이다.
도 3은 본 발명의 실시 예에 따른 난수 품질 테스트 방법을 예시적으로 보여주는 흐름도이다.
도 4는 본 발명에 따른 난수 품질 테스트 방법을 구현한 실시 예를 보여주는 블록도이다.
도 5는 본 발명에 따른 난수 품질 테스트 방법을 구현한 다른 실시 예를 보여주는 블록도이다.
도 6은 본 발명에 따른 난수 품질 테스트 방법을 구현한 또 다른 실시 예를 보여주는 블록도이다.
도 7은 Pr(1) 값에 의존하는 최소 엔트로피(Hmin) 함수의 2-구간 선형 근사화(2-piece liner approximation)를 예시적으로 보여주는 도면이다.
도 8은 이상적으로 계산된 최소 엔트로피(Hmin) 값을 고려하여 에러율 퍼센트를 예시적으로 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따른 최소 엔트로피(Hmin) 함수에 대한 구간 선형 근사화 방법을 예시적으로 보여주는 흐름도이다.
도 10은 본 발명의 실시 예에 따른 최소 엔트로피(Hmin) 함수의 구간 선형 근사화 방법을 예시적으로 보여주는 도면이다.
도 11은 본 발명의 실시 예에 따른 최소 엔트로피(Hmin) 함수의 2-구간 선형 근사화 방법에 대한 제 1 실시 예를 보여주는 도면이다.
도 12는 본 발명의 실시 예에 따른 최소 엔트로피(Hmin) 함수의 2-구간 선형 근사화 방법에 대한 제 2 실시 예를 보여주는 도면이다.
도 13은 본 발명의 실시 예에 따른 최소 엔트로피(Hmin) 함수의 2-구간 선형 근사화 방법에 대한 제 3 실시 예를 보여주는 도면이다.
도 14는 본 발명의 실시 예에 따른 난수 발생기를 갖는 암호 프로세서를 포함하는 보안 시스템을 예시적으로 보여주는 블록도이다.
도 15는 본 발명의 실시 예에 따른 eMMC를 예시적으로 보여주는 블록도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시 예를 첨부된 도면을 참조하여 설명할 것이다.
도 1은 본 발명의 실시 예에 따른 난수 발생기를 보여주는 블록도이다. 도 1을 참조하면, 난수 발생기(100)는 난수 발생부(120), 품질 테스트부(140), 및 출력부(160)를 포함한다.
난수 발생부(120)는 물리적 노이즈 소스로부터 참난수(true random number; TRN)을 발생한다. 실시 예에 있어서, 물리적 노이즈 소스는 메타-오실레이터(meta-oscillator)로 구현될 수 있다.
품질 테스트부(140)는 최소 엔트로피(Hmin)를 이용하여 참난수(TRN)의 품질을 평가하고, 품질 평가 결과에 따라 에러 신호(ERR)를 출력하거나, 참난수(TRN)의 품질을 지시하는 최소 엔트로피(Hmin)를 출력할 것이다. 여기서 난수의 품질은 최소 엔트로피(Hmin)을 이용한 다양한 방법 및 기준에 의거하여 평가될 수 있다. 예를 들어, 난수 발생부(120)는 NIST SP 800-90의 규정에 따른 난수 품질 요구를 만족시킬 수 있다. NIST SP 800-90 규정은 최소 엔트로피(Hmin) 평가(minimum entropy estimation, MEE)를 이용하여 난수 품질을 결정한다. 여기서, 최소 엔트로피(Hmin)는 아래의 같은 수식을 만족할 것이다.
Figure pat00002
여기서 Pmax 는 난수 발생부(120)로부터 출력되는 특정한 워드 크기(w)의 모든 확률(Pi) 중에서 최대값이다. 온라인 테스트 구현을 위하여 최소 엔트로피(Hmin) 매트릭이 이용될 수 있다. 워드 크기(w)가 1일 때는 심각한 약점을 감지할 수 있지만, 워드 크기(w)가 4 이상일 때의 많은 리소스들이 요구되지 않는다.
최소 엔트로피(Hmin) 평가를 이용하여 효율적인 온라인 테스트 구현을 하기 위해서 아래와 같은 특성들을 이용할 것이다. 첫째로, 확률 값들의 분포는 워드 크기(w) 및 랜덤 샘플에서 '1'의 확률 값(Pr(1))에 의존한다. 둘째로, 독립적인 비트들의 분포를 위하여, 워드 '000...'의 확률은 항상 극한 Pr('000...') → min┃max 되는 경향이 있고, '111...'의 확률은 항상 반대의 극한 Pr('111...') → max┃min 되는 경향이 있다. 셋째로, 서로 다른 워드 크기들(w1, w2, ...)의 최소 엔트로피(Hmin) 값들 사이의 관계는 동일한 랜덤 샘플(Hmin_w1 ~ Hmin_w2)내에서 항상 선형적이다.
출력부(160)는 품질 테스트부(140)의 평가 결과에 따라 난수(RN)를 출력하거나 출력하지 않을 것이다. 예를 들어, 난수(RN)가 통계적 범위를 만족할 때, 난수(RN)는 출력될 것이고, 그렇지 않을 때 출력되지 않을 것이다.
본 발명의 실시 예에 따른 난수 발생기(100)는 최소 엔트로피(Hmin)를 이용하여 난수 품질을 테스트하고, 그 결과에 따라 발생된 난수를 출력할 것이다.
도 2는 도 1에 도시된 품질 테스트부(140)의 난수 품질 테스트 방법을 예시적으로 보여주는 흐름도이다. 도 1 및 도 2를 참조하면, 난수 품질 테스트 방법은 다음과 같다. 난수 발생부(120)는 참난수(TRN) 샘플을 발생한다. 품질 테스트부(140)는 발생된 참난수(TRN) 샘플에서 적어도 2개의 워드들의 발생 개수들을 카운트한다(S110). 여기서 적어도 2개의 워드들의 크기는 서로 다를 것이다. 카운트된 워드들의 발생 개수에 대응하는 확률 값들이 계산될 것이다(S120). 적어도 2개의 워드들에 대한 확률 값들 각각의 최소 엔트로피(Hmin)가 계산될 것이다(S130). 계산된 최소 엔트로피(Hmin)를 이용하여 난수의 품질이 결정될 것이다(S140). 예를 들어, 복수의 최소 엔트로피(Hmin)들과 워드 크기들에 관련된 품질 결정 함수(health determination function) 에 의해 난수 품질이 결정될 것이다.
일반적인 난수 발생기는 발생된 난수에 대하여 소정의 워드 크기의 모든 워드들에 대하여 카운트함으로써 최소 엔트로피(Hmin)를 계산하고, 그 결과에 따라 난수의 품질을 결정하였다. 이러한 난수 발생기는 난수 품질을 결정하기 위하여 모든 워드들에 대한 카운팅을 수행하기 때문에, 물리적인 공간이 많이 필요하고, 또한 난수 품질을 결정하는 시간도 많이 소모된다.
반면에, 본 발명의 실시 예에 따른 난수 발생기(100)는 서로 다른 워드 크기의 적어도 2 워드들에 대응하는 최소 엔트로피(Hmin)들(Hmin)을 이용하여 난수의 품질을 계산함으로써, 종래의 그것과 비교하여 구현에 필요한 물리적인 공간이 줄어들고 및 난수 품질 결정 시간을 상당하게 줄일 수 있다.
좀 더 구체적으로 본 발명의 난수 품질 테스트 방법은 랜덤 시퀀스의 통계 특성 및 최소 엔트로피(Hmin) 값의 대수 특성을 근거로 하여 수행될 수 있다.
도 3은 본 발명의 실시 예에 따른 난수 품질 테스트 방법을 예시적으로 보여주는 흐름도이다. 도 3을 참조하면, 난수 발생부(120, 도 1 참조)로부터 n 비트 입력 스트림(n, input stream)이 출력된다. 모든 선택된 워드 크기 (w1, w2, ...)에 대하여, n 비트 입력 스트림(n)에서 발생된 '00...' 및 '11...' 워드들의 개수가 카운트되고, 이러한 발생 확률들이 정의될 것이다. 이에 대응하는 최소 엔트로피(Hmin) 값들(
Figure pat00003
)이 계산될 것이다.
실시 예에 있어서, Hmin 메트릭 계산을 위하여, 계산 리소들을 줄이기 위하여 효율적인 선형 근사 방법들이 이용될 수 있다. 예를 들어, 구간 선형 근사 방법이 이용될 수 있다.
서로 다른 워드 크기들(
Figure pat00004
)의 모든 선택된 쌍에 대하여, 아래와 같은 수식으로 분산값들이 계산된다.
Figure pat00005
마지막, 난수 발생부(120)로부터 출력되는 난수의 품질에 대한 결정은 아래의 수식에 따른 기준에 따라 결정될 것이다.
Figure pat00006
여기서, wi는 제 1 워드 크기이고, wj는 제 2 워드 크기, n은 참난수(TRN)으로써의 입력 스트림(n)이고, e는 기준값이다.
본 발명의 실시 예에 따른 난수 품질 테스트 방법은, 랜덤 시퀀스의 통계 특성과 최소 엔트로피(Hmin) 평가 매트릭의 대수 특성을 이용함으로써, 매우 효율적으로 난수에 대하여 온라인 테스트를 수행할 수 있다. 본 발명의 실시 예에 따른 난수 품질 테스트 방법은 입력 스트림(n)의 워드 크기 및 테스트에 요구되는 정밀도에 따라 확장성을 가짐으로써, 다른 보안 응용을 위하여 유연하게 구현될 수 있다.
아래에서는 본 발명에 따른 난수 품질 테스트 방법이 구현된 방법들을 예시적으로 설명하도록 하겠다. 설명의 편의를 위하여 적어도 2개의 워드들은 '1'로 구성된 제 1 워드('1...') 및 '0'으로 구성된 제 2 워드('0...')로만 한정하겠다.
도 4는 본 발명에 따른 난수 품질 테스트 방법을 구현한 실시 예를 보여주는 블록도이다. 도 4를 참조하면, '0', '1', '0000', '1111'의 워드들의 발생 숫자를 카운트하기 위한 4개의 카운터들이 이용될 것이다. 카운팅을 완료한 후에, 최대값 블록에서 적합한 큰 값이 선택되고, 대응하는 Pr(1)이 계산될 것이다. 그 후에, 최소 엔트로피(Hmin) 값들 (Hmin,w1, Hmin,w2)이 계산되고, 분산값(Vw2,w1)이 아래의 수식으로 정의될 것이다.
Figure pat00007
도 4에서는, 제 1 워드 크기(w1)는 1, 제 2 워드 크기(w2)는 4이다. 따라서, 품질 결정 함수값(T)은 Hmin_4 - 4Hmin_1이 될 것이다.
분산값(Vw2,w1), 즉, 품질 결정 함수값(T)은 난수의 품질이 기준값(e)보다 작은 지가 판별된다. 그 결과로써, 난수들의 품질이 결정될 것이다. 만일 계산된 품질 결정 함수값(T)이 기준값(e) 아래에 있다면, 최소 엔트로피(Hmin) 값(Hmin)이 품질 평가로써 출력될 것이다. 반면에 그렇지 못하다면 입력 스트림(n)에 대한 에러(ERR)가 출력될 것이다.
도 4에서는 동일한 워드 크기의 모든 워드들(예를 들어, w=1일 때, '1', '0', w=4일 때, '1111', '0000')에 대한 카운트 동작을 수행하고, 그 중에서 최대로 카운트된 워드에 대한 확률값을 계산하고, 계산된 확률값을 이용하여 최소 엔트로피(Hmin)를 계산하였다. 그러나 본 발명이 반드시 여기에 제한될 필요는 없다. 본 발명은 동일한 워드 크기의 모든 워드들에 대한 카운트 동작을 수행할 필요가 없다.
도 5는 본 발명에 따른 난수 품질 테스트 방법을 구현한 다른 실시 예를 보여주는 블록도이다. 도 5를 참조하면, 도 4와 비교하여 계산 리소스를 줄이기 위하여 '0', '1' 및 '11' 워드들의 발생 숫자를 카운트하기 위하여 3개의 카운터들이 이용될 것이다.
'0'의 제 1 최소 엔트로피(Hmin_1 = f(Pr('0'))), '1'의 제 2 최소 엔트로피(Hmin_1 = f(Pr('1')), '11'의 제 3 최소 엔트로피(Hmin_2 = f(Pr('11)) 계산되고, 제 2 최소 엔트로피(Hmin_1 = f(Pr('1'))와 제 3 최소 엔트로피(Hmin_2 = f(Pr('11))를 이용하여 품질 평가 함수값(T)이 계산된다. 여기서 품질 평가 함수값(T)이 기준값(e)보다 작으면, 제 1 최소 엔트로피(Hmin_1 = f(Pr('0')))와 제 2 최소 엔트로피(Hmin_1 = f(Pr('1')) 중에서 최소값이 최소 엔트로피(Hmin)로 출력될 것이다.
도 5에서는 하나의 워드 크기 (예를 들어, w=1)에 대한 모든 워드들(예를 들어, '0', '1')에 대한 카운트 동작이 수행되었다. 그러나 본 발명이 여기에 제한되지 않을 것이다. 본 발명은 계산 리소스를 줄이기 위하여 하나의 워드 크기에 대하여 하나의 카운트 동작이 수행되도록 구현될 수도 있다.
도 6은 발명에 따른 난수 품질 테스트 방법을 구현한 실시 예를 보여주는 블록도이다. 도 6를 참조하면, 도 5과 비교하여 계산 리소스를 좀더 줄이기 위하여 '1'과 '1111' 워드들의 발생 횟수를 카운트하기 위하여 단지 2개의 카운터들이 이용될 것이다. '0' 워드를 위하여 필요한 발생 회수는 '1' 워드를 위한 발생 회수를 간단하게 변경함으로써 얻어질 수 있다. 도 6에 도시된 난수 품질 테스트 방법은, '0'에 대한 카운트 동작을 '1'을 '0'으로 변경하는 과정을 제외하고는 도 5와 동일하다.
한편, 제한된 환경(예를 들어, 임베디드 장치들)에서 난수 발생기를 구현하기 위하여, 최소 엔트로피(Hmin) 값을 계산하기 위하여 효율적인 방법이 상당히 중요하다. 아래에서는 이러한 목적을 위하여 최소 엔트로피(Hmin)의 특성을 근거로 하여 효율적으로 최소 엔트로피(Hmin) 근사화 방법을 제안하겠다. 여기서 최소 엔트로피(Hmin)의 특성은 특정 구간에서 거의 선형적으로 행동한다는 것이다.
도 7은 Pr(1) 값에 의존하는 최소 엔트로피(Hmin) 함수의 2-구간 선형 근사화(2-piece liner approximation)를 예시적으로 보여주는 도면이다.
도 8은 이상적으로 계산된 최소 엔트로피(Hmin) 값을 고려하여 에러율 퍼센트를 예시적으로 보여주는 도면이다. 선형 근사화에서 구간들의 개수가 필요한 만큼의 계산 에러를 줄이도록 이용될 수 있다.
본 발명의 실시 예에 따른 최소 엔트로피(Hmin) 근사화 방법은 최소 엔트로피(Hmin) 함수의 선형 특성을 이용하고, 임의의 범위에서 log2 함수의 구간 선형 근사(piece-linear approximation)를 이용할 것이다. 또한, 효율적인 최소 엔트로피(Hmin) 계산을 위하여 숫자들의 분해 및 곱셈이 이용될 것이다. 여기서 곱셈은 적은 비용으로 구현 가능한 쉬프트 연산을 이용할 것이다. 본 발명에 따른 최소 엔트로피(Hmin) 근사화 방법은 입력 스트림(n)의 워드 크기 및 계산의 정밀도를 확장시킬 수 있다.
도 9는 본 발명의 실시 예에 따른 최소 엔트로피(Hmin) 함수에 대한 구간 선형 근사화 방법을 예시적으로 보여주는 흐름도이다. 도 9를 참조하면, 어느 하나의 워드의 확률값에 대응하는 근사화 계수들의 범위가 선택된다(S210). 선택된 범위에 대응하는 구간 선형 계수들이 계산 블록에 인가된다(S220). 여기서 구간 선형 계수들은 선택된 구간에 따라 서로 다를 것이다. 계산 블록은 인가된 구간 선형 계수들을 이용하여 최소 엔트로피(Hmin)을 계산한다(S230).
도 10은 본 발명의 실시 예에 따른 최소 엔트로피(Hmin) 함수의 구간 선형 근사화 방법을 예시적으로 보여주는 도면이다. 도 10을 참조하면, 구간 선형 근사화 방법은 아래의 수식을 만족할 것이다.
Figure pat00008
여기서,
Figure pat00009
이다. 상술된 방정식을 구원하기 위하여 메모리 테이블이 이용될 수 있다. 메모리 테이블에는 구간 선형 근사화의 복수의 분해된 계수들이 저장될 것이다. 메모리 테이블의 모든 행에는 Pr(1)의 적합한 범위를 위한 계수들이 존재한다. 모든 범위는 임의의 숫자들(bx1, bx2)로 정의되고, 임의의 계수들은 0일 수 있다.
최소 엔트로피(Hmin)의 함수의 구간 선형 근사화 방법은 다음과 같이 진행될 것이다. 첫째로, 계산된 Pr(1) 값이 입력되고, 입력된 값에 따라 복수의 범위들 중에서 어느 하나의 범위가 어드레스 선택 블록에 의해 활성화될 것이다. 여기서 어드레스 선택 블록은 내장되거나 재구성 블록으로 구현될 수 있다. 둘째로, 계산 과정이 시작될 것이다. 활성 범위에 따라, 구간 선형 근사화의 적합한 계수들이 계산 블록으로 인가될 것이다. 그리고 병렬적으로 연속적인 임시 값들이 계산될 것이다. 이러한 계산의 성능을 향상시키기 위하여 계수들의 계산에 쉬프트 동작이 이용될 것이다. 즉, 구간 선형 근사화의 실제 계수들은 인수 분해된 형태로 메모리 테이블로 로딩될 것이다. 셋째로, 최종적으로 최소 엔트로피(Hmin)값은 계산된 임시값들의 합으로 계산될 것이다. 여기서 합은 양수 혹은 음수로 표시될 것이다.
본 발명의 실시 예에 따른 최소 엔트로피(Hmin) 구간 선형 근사화 방법은 다양하게 구현될 수 있다. 아래에서는 설명의 편의를 위하여 구간 선형 근사화 방법이 2-구간 선형 근사화 방법이라고 한정하겠다.
도 11은 본 발명의 실시 예에 따른 최소 엔트로피(Hmin) 함수의 2-구간 선형 근사화 방법에 대한 제 1 실시 예를 보여주는 도면이다. 도 11을 참조하면, 제 1 구간 계수(2.625)는 (2 + 0.5 + 0.125)로 분해되고, 제 2 구간 계수(2.125)는 (2 + 0.125)로 분해될 것이다.
도 11에 도시된 바와 같이, 제 1 구간의 계수들의 개수(4개)와 제 2 구간의 계수들의 개수(3개)가 서로 다르다. 하지만 본 발명이 반드시 여기에 제한되지 않을 것이다. 제 1 구간의 계수들의 개수와 제 2 구간의 계수들의 개수는 동일할 수도 있다.
도 12는 본 발명의 실시 예에 따른 최소 엔트로피(Hmin) 함수의 2-구간 선형 근사화 방법에 대한 제 2 실시 예를 보여주는 도면이다. 도 12를 참조하면, 최소 엔트로피(Hmin) 계산은 제 1 및 제 2 구간에서 각각 3 단계로 진행된다.
도 12에 도시된 바와 같이, 제 1 구간의 계수들과 제 2 구간들의 계수들은 서로 다르다.
한편, 계산을 위해 요구되는 메모리의 워드 크기를 줄이도록 계수들 각각에 대응하는 숫자를 곱셈하면서 동시에 최소 엔트로피(Hmin)가 계산될 수도 있다.
도 13은 본 발명의 실시 예에 따른 최소 엔트로피(Hmin) 함수의 2-구간 선형 근사화 방법에 대한 제 3 실시 예를 보여주는 도면이다. 도 13을 참조하면, 최소 엔트로피(Hmin) 계산은 바이너리 표현의 고정된 워드 크기 내에서 진행될 것이다.
본 발명의 실시 예에 따른 난수 발생기는 다양한 보안 시스템에 적용 가능하다.
도 14는 본 발명의 실시 예에 따른 보안 시스템(1000)을 예시적으로 보여주는 블록도이다. 도 14를 참조하면, 보안 시스템(1000)은 중앙처리장치(1100), 암호 프로세서(1200), 롬(1300), 램(1400), 및 암호 프로세서용 메모리(1500)를 포함한다. 중앙처리장치(1100)는 보안 시스템(1000)의 전반적인 동작을 제어한다. 암호 프로세서(1200)는 중앙처리장치(1100)의 제어에 따라 암호, 인증 및 전자 서명을 가능하게 하는 명령을 해독하고, 데이터를 처리한다. 암호 프로세서(1200)는 도 1 내지 도 13에서 설명된 최소 엔트로피(Hmin)을 이용하여 난수 품질을 테스트하는 난수 발생기를 포함한다. 롬(1300)과 램(1400)은 보안 시스템(1000)을 구동하는데 필요한 데이터를 저장한다. 암호 프로세서용 메모리(1500)는 암호 프로세서(1200)의 구동에 필요한 데이터를 저장한다.
또한, 본 발명의 실시 예에 따른 난수 발생기는 eMMC(embedded multimedia card)에도 적용 가능하다.
도 15는 본 발명의 실시 예에 따른 eMMC를 예시적으로 보여주는 블록도이다. 도 15를 참조하면, eMMC(3000)는 적어도 하나의 낸드 플래시 메모리 장치(3100) 및 제어기(3200)를 포함할 수 있다. eMMC(3000)는 eMMC 4.4 규격을 지원할 수 있다.
낸드 플래시 메모리 장치(3100)는 SDR(single data rate) 낸드, DDR(double data date) 낸드, 토글(toggle) 낸드일 수 있다. 실시 예에 있어서, 낸드 플래시 메모리 장치(3100)는 단품의 낸드 플래시 메모리 장치들을 포함할 수 있다. 여기서, 단품의 낸드 플래시 메모리 장치들은 하나의 패키지(예를 들어, FBGA, Fine-pitch Ball Grid Array)에 적층 될 수 있다. 메모리 제어기(3200)는 복수의 채널들을 통하여 플래시 메모리 장치(3100)에 연결된다. 제어기(3200)는 적어도 하나의 제어기 코어(3210), 호스트 인터페이스(3250) 및 낸드 인터페이스(3260)를 포함한다.
적어도 하나의 제어기 코어(3210)는 eMMC(3000)의 전반적인 동작을 제어한다. 제어기 코어(3210)는 에러 정정하는데 이용하는 난수를 발생하는 난수 발생기(3212)를 포함한다. 여기서 난수 발생기(3212)는 도 1 내지 도 13에서 설명된 최소 엔트로피(Hmin)을 이용하여 난수의 품질을 테스트하는 난수 발생기로 구현될 수 있다. 호스트 인터페이스(3250)는 제어기(3210)와 호스트의 인터페이싱을 수행한다. 낸드 인터페이스(3260)는 낸드 플래시 메모리 장치(3100)와 제어기(3200)의 인터페이싱을 수행한다. 실시 예에 있어서, 호스트 인터페이스(3250)는 병렬 인터페이스(예를 들어, MMC 인터페이스)일 수 있다. 다른 실시 예에 있어서, eMMC(3000)의 호스트 인터페이스(3250)는 직렬 인터페이스(예를 들어, UHS-II, UFS 인터페이스)일 수 있다.
eMMC(3000)는 호스트로부터 전원 전압들(Vcc, Vccq)을 제공받는다. 여기서, 제 1 전원 전압(Vcc: 3.3V)은 낸드 플래시 메모리 장치(3100) 및 낸드 인터페이스(3230)에 제공되고, 제 2 전원 전압(Vccq: 1.8V/3.3V)은 제어기(3200)에 제공된다. 실시 예에 있어서, eMMC(3000)는 외부 고전압(Vpp)을 옵션적으로 제공받을 수 있다.
본 발명의 실시 예에 따른 eMMC(3000)는 대용량의 데이터를 저장하는 데 유리할 뿐 아니라, 향상된 쓰기 동작 특성을 갖는다. 본 발명의 실시 예에 따른 eMMC(3000)는 소형 및 저전력이 요구되는 모바일 제품(예를 들어, 갤럭시S, 갤럭시노트, 갤럭시탭, 아이폰, 아이패드 등)에 응용 가능하다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허 청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
Hmin: 최소 엔트로피(Hmin)
100: 난수 발생기
120: 난수 발생부
140: 품질 테스트부
160: 출력부

Claims (10)

  1. 난수를 발생하는 단계;
    상기 발생된 난수에서 적어도 2개의 워드들을 카운트하는 단계;
    상기 카운트된 워드들의 확률값들을 계산하는 단계;
    상기 계산된 확률값들의 최소 엔트로피(Hmin)들을 계산하는 단계; 및
    상기 계산된 최소 엔트로피(Hmin)들을 이용하여 상기 발생된 난수의 품질을 결정하는 단계를 포함하는 난수 품질 테스트 방법.
  2. 제 1 항에 있어서,
    상기 적어도 2개의 워드들의 크기는 서로 다른 난수 품질 테스트 방법.
  3. 제 2 항에 있어서,
    상기 적어도 2개의 워드들은 '1'로 구성된 제 1 워드와 상기 제 1 워드와 동일한 워드 크기이며 '0'으로 구성된 제 2 워드를 포함하고,
    상기 워드들을 카운트하는 단계는,
    상기 제 1 및 상기 제 2 워드들을 모두 카운트하는 단계를 포함하는 난수 품질 테스트 방법.
  4. 제 3 항에 있어서,
    상기 확률값을 계산하는 단계는,
    상기 제 1 워드의 확률값과 상기 제 2 워드의 확률값을 계산하는 단계를 포함하는 난수 품질 테스트 방법.
  5. 제 3 항에 있어서,
    상기 확률값을 계산하는 단계는,
    상기 제 1 워드의 카운트 값과 상기 제 2 워드의 카운트 값 중에서 큰 값의 확률값을 계산하는 단계를 포함하는 난수 품질 테스트 방법.
  6. 제 5 항에 있어서,
    상기 최소 엔트로피(Hmin)들을 계산하는 단계는,
    상기 큰 값의 확률값에 대한 최소 엔트로피(Hmin)를 계산하는 단계를 더 포함하고,
    상기 서로 다른 적어도 2개의 워드들 각각은, '1'로 구성된 제 1 워드이거나 '0'으로 구성된 제 2 워드인 난수 품질 테스트 방법.
  7. 제 1 항에 있어서,
    상기 최소 엔트로피(Hmin)들을 계산하는 단계는,
    아래의 최소 엔트로피(Hmin) 계산 수식,
    Figure pat00010
    를 이용하여 최소 엔트로피(Hmin)들을 계산하는 단계를 포함하고,
    여기서 Pmax는 상기 적어도 2개의 워드들 각각의 확률값인 난수 품질 테스트 방법.
  8. 제 1 항에 있어서,
    상기 최소 엔트로피(Hmin)들을 계산하는 단계는,
    구간 선형 근사화 기법을 이용하여 최소 엔트로피(Hmin)들을 계산하는 단계를 포함하고,
    상기 구간 선형 근사 기법은 복수의 구간들 각각에 대응하는 계수들을 저장하는 테이블을 이용하는 난수 품질 테스트 방법.
  9. 제 1 항에 있어서,
    상기 난수 품질을 결정하는 단계는,
    상기 최소 엔트로피(Hmin)들과 상기 적어도 2개의 워드들의 크기들 사이에 연관된 품질 결정 함수값을 이용하여 난수의 품질을 결정하는 단계를 포함하는 난수 품질 테스트 방법.
  10. 난수를 발생하는 난수 발생부;
    상기 발생된 난수에서 적어도 2개의 워드들의 최소 엔트로피(Hmin)들을 계산하고, 상기 계산된 최소 엔트로피(Hmin)들을 이용한 품질 결정 함수값에 따라 상기 발생된 난수의 품질을 결정하는 품질 테스트부; 및
    상기 품질 테스트부의 결과에 따라 상기 발생된 난수를 출력하는 출력부를 포함하고,
    상기 적어도 2개의 워드들은 '1'을 구성된 제 1 워드와 '0'으로 구성된 제 2 워드를 포함하고,
    상기 적어도 2개의 워드들은 i(i는 자연수) 워드 크기의 제 1 워드와, j(j는 i보다 큰 자연수) 워드 크기의 제 2 워드를 포함하고,
    상기 품질 결정 함수값(T)은,
    T = Hmin_j - (j/i)Hmin_i
    을 만족하고, 여기서 Hmin_i는 상기 제 1 워드의 최소 엔트로피(Hmin)이고, Hmin_j는 상기 제 2 워드의 최소 엔트로피(Hmin)인 난수 발생기.
KR1020130026257A 2013-03-12 2013-03-12 난수 발생기 및 난수 품질 테스트 방법 KR20140111844A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130026257A KR20140111844A (ko) 2013-03-12 2013-03-12 난수 발생기 및 난수 품질 테스트 방법
US14/088,622 US20140279813A1 (en) 2013-03-12 2013-11-25 Random number generator and random number health test method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130026257A KR20140111844A (ko) 2013-03-12 2013-03-12 난수 발생기 및 난수 품질 테스트 방법

Publications (1)

Publication Number Publication Date
KR20140111844A true KR20140111844A (ko) 2014-09-22

Family

ID=51532905

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130026257A KR20140111844A (ko) 2013-03-12 2013-03-12 난수 발생기 및 난수 품질 테스트 방법

Country Status (2)

Country Link
US (1) US20140279813A1 (ko)
KR (1) KR20140111844A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190049283A (ko) 2017-11-01 2019-05-09 국민대학교산학협력단 경량 난수 헬쓰 테스트 장치
KR20200003572A (ko) * 2018-07-02 2020-01-10 한국전자통신연구원 난수 발생 장치
WO2023013844A1 (ko) * 2021-08-02 2023-02-09 재단법인대구경북과학기술원 최소 엔트로피 추정 방법 및 장치
KR20230095749A (ko) 2021-12-22 2023-06-29 국민대학교산학협력단 이미지 센서 기반 난수발생기 헬스 테스트 장치 및 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6176076B2 (ja) * 2013-11-22 2017-08-09 富士通株式会社 物理乱数生成装置、物理乱数生成方法、及び物理乱数生成システム
KR20180055299A (ko) 2016-11-16 2018-05-25 삼성전자주식회사 난수 생성기의 랜덤성 시험 장치 및 방법
CN107976206B (zh) * 2017-11-06 2020-06-02 湖北三江航天万峰科技发展有限公司 一种基于信息熵的mems陀螺性能评价方法
EP3525085A1 (en) * 2018-02-12 2019-08-14 Siemens Aktiengesellschaft Testing of physical random number generators

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745409B2 (en) * 2002-12-18 2014-06-03 Sandisk Il Ltd. System and method for securing portable data

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190049283A (ko) 2017-11-01 2019-05-09 국민대학교산학협력단 경량 난수 헬쓰 테스트 장치
KR20200003572A (ko) * 2018-07-02 2020-01-10 한국전자통신연구원 난수 발생 장치
WO2023013844A1 (ko) * 2021-08-02 2023-02-09 재단법인대구경북과학기술원 최소 엔트로피 추정 방법 및 장치
KR20230019549A (ko) * 2021-08-02 2023-02-09 재단법인대구경북과학기술원 최소 엔트로피 추정 방법 및 장치
KR20230095749A (ko) 2021-12-22 2023-06-29 국민대학교산학협력단 이미지 센서 기반 난수발생기 헬스 테스트 장치 및 방법

Also Published As

Publication number Publication date
US20140279813A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
KR20140111844A (ko) 난수 발생기 및 난수 품질 테스트 방법
JP6093014B2 (ja) 記憶装置に格納されたデータを消去する装置、システム、方法及びコンピュータプログラム
CN104052493B (zh) 数据处理系统以及操作数据处理系统的方法
US20130007081A1 (en) Device and method for processing data
US20180285317A1 (en) Model generation system and model generation method
US7340496B2 (en) System and method for determining the Nth state of linear feedback shift registers
US11411714B2 (en) Apparatus and method for performing operation using approximation function
US9672105B2 (en) Device and method for processing data using logical information and physical information
US20100115230A1 (en) Hash functions using recurrency and arithmetic
CN114049530A (zh) 混合精度神经网络量化方法、装置及设备
US11526740B2 (en) Optimization apparatus and optimization method
Addabbo et al. Pseudo-chaotic lossy compressors for true random number generation
US11157239B2 (en) Method of verifying randomness of bitstream and system thereof
CN105027074A (zh) 质数产生
CN112052194A (zh) 三态内容可寻址存储器及其操作方法
Araki et al. A study on precision of pseudorandom number generators using the logistic map
CN115862653A (zh) 音频去噪方法、装置、计算机设备和存储介质
US20210191899A1 (en) Data processing circuit, data storage device including the same, and operating method thereof
WO2021247737A1 (en) Automatic selection of quantization and filter removal optimization under energy constraints
Beirami et al. A performance metric for discrete-time chaos-based truly random number generators
Esfandiari et al. Online stochastic reordering buffer scheduling
Walter et al. Rare event simulation: a point process interpretation with application in probability and quantile estimation
Liang et al. Likelihood ratio inference for mean residual life of length-biased random variable
Lee SRB measures in chaotic dynamical systems
Huber Perfect simulation with exponential tails on the running time

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid