KR100576714B1 - 디지털 로직을 이용한 난수 발생 장치 및 방법 - Google Patents

디지털 로직을 이용한 난수 발생 장치 및 방법 Download PDF

Info

Publication number
KR100576714B1
KR100576714B1 KR1020030095373A KR20030095373A KR100576714B1 KR 100576714 B1 KR100576714 B1 KR 100576714B1 KR 1020030095373 A KR1020030095373 A KR 1020030095373A KR 20030095373 A KR20030095373 A KR 20030095373A KR 100576714 B1 KR100576714 B1 KR 100576714B1
Authority
KR
South Korea
Prior art keywords
shift register
value
random number
signal
circuit
Prior art date
Application number
KR1020030095373A
Other languages
English (en)
Other versions
KR20050064096A (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 KR1020030095373A priority Critical patent/KR100576714B1/ko
Priority to JP2006546799A priority patent/JP4417389B2/ja
Priority to US10/584,158 priority patent/US20070150531A1/en
Priority to CN2004800416030A priority patent/CN1914847B/zh
Priority to EP04774229A priority patent/EP1698095A4/en
Priority to PCT/KR2004/001911 priority patent/WO2005062523A1/en
Publication of KR20050064096A publication Critical patent/KR20050064096A/ko
Application granted granted Critical
Publication of KR100576714B1 publication Critical patent/KR100576714B1/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
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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

Abstract

디지털 로직을 이용한 난수 발생 장치 및 방법이 개시되어 있다. 난수 발생 장치는, 내부에 저장된 비트 값들을 순차적으로 이동시키는 쉬프트 레지스터, 상기 쉬프트 레지스터에 저장된 비트 값들을 소정 논리 연산하여 생성한 궤환신호를 생성하는 궤환회로, 쉬프트 레지스터로 입력되는 외부 신호를 생성하는 외부신호 생성회로, 및 궤환신호 및 외부신호를 소정 논리연산하여 쉬프트 레지스터로 출력하는 입력 논리회로를 포함하고, 난수 발생 방법은, 쉬프트 레지스터 내부에 저장된 비트 값들을 순차적으로 이동시키는 단계, 쉬프트 레지스터에 저장된 비트 값들을 소정 논리연산하여 궤환신호를 생성하는 단계, 쉬프트 레지스터로 입력되는 외부 신호를 생성하는 단계, 및 궤환신호 및 외부신호를 소정 논리연산하여 쉬프트 레지스터로 출력하는 단계를 포함한다.

Description

디지털 로직을 이용한 난수 발생 장치 및 방법{Apparatus and method for generating random number using digital logic}
도 1은 본 발명에 따른 디지털 로직을 이용한 난수 발생 장치의 일 실시예의 개략적인 블록도이다.
도 2는 도 1의 쉬프트 레지스터 및 궤환회로를 4비트 선형 궤환 쉬프트 레지스터로 구성한 개략적인 블록도이다.
도 3은 도 2의 구성에 고정값 방지회로를 추가한 구성의 개략적인 블록도이다.
도 4는 도 1의 랜덤신호 발생회로를 독립적인 발생원을 가지는 두개의 클럭을 이용하도록 구성한 일 실시예의 개략적인 블록도이다.
도 5는 도 1의 랜덤신호 발생회로를 독립적인 발생원을 가지는 두개의 클럭의 라이징 및 폴링 에지를 이용하도록 구성한 다른 실시예의 개략적인 블록도이다.
도 6은 본 발명에 따른 디지털 로직을 이용한 난수 발생 방법의 일 실시예를 수행하는 흐름도이다.
본 발명은 난수 발생 장치 및 난수 발생 방법에 관한 것으로서, 더욱 상세 하게는 디지털 로직을 이용한 난수 발생 장치 및 난수 발생 방법에 관한 것이다.
난수 발생 장치는 암호연산을 위한 키의 생성 등의 여러 가지 목적에 사용되며 이와 같은 암호연산의 안전을 보장하기 위해서는 난수 발생 장치의 성능이 무엇보다 중요하다고 할 수 있다.
난수가 되기 위해서는 통계적으로 모든 값이 골고루 발생할 수 있는 복잡도를 유지하여야 하며, 난수의 값을 예측할 수 없는 랜덤성을 가지고 있어야 한다. 난수를 발생시키는 기존의 방법으로는 물리현상에서 발생하는 노이즈 성분을 이용한 물리적 난수 생성 방법과 수학적으로 정의된 일정한 수열을 발생시키는 의사 난수생성 방법으로 크게 나눌 수 있다.
물리적 난수를 만들기 위한 기존 방법은 기존에는 열잡음이나 온도, 전원 공급기의 전력 변화 등과 같은 물리현상을 이용하는 것이다. 물리적 현상을 이용함으로써 근본적으로 암호학적으로 안전한 난수라고 볼 수 있으나 난수를 얻기 위해서는 물리 현상의 신호가 매우 작기 때문에 이를 증폭하기 위한 증폭 회로 및 기타 부가적인 아날로그 회로가 필수적이다.
또한, 아날로그 회로는 랜덤성을 가지는 신호를 생성할 뿐이며, 통계적으로 균형 잡히고 충분한 복잡도를 가지는 디지털 난수 값을 얻기 위해서는 아날로그 신호를 샘플링하고 이를 다시 모으는 콜렉터 로직이 필요하다.
기존의 콜렉트 로직은 난수 스트림을 생성하기 위해 많은 시간이 필요로 하여 높은 성능의 암호 처리에는 부적합할 수 있다. 또한 아날로그 회로를 이용한 난수 발생장치는 칩 공정에 맞게 구현이 어려울 뿐만 아니라 난수 발생에 필요한 전 압원이 공격자에 의해 제어되기 쉬운 단점을 가지므로 충분한 성능을 얻기 위해서는 많은 실험 및 노력을 필요로 한다.
이와 같은 물리적 현상을 이용한 난수 외의 또 다른 난수 발생 방법인 의사난수는 디지털 로직만을 이용하므로 구현이 용이하여 많은 시스템에서 사용되고 있다. 종래의 의사 난수 발생 방법은 선형 합동 발생기 알고리즘(Linear Congruential Generator Algorithm) 또는 선형 피드백 쉬프트 레지스터(LFSR : Linear Feedback Shift Register) 등을 이용하고 있다.
그러나, 이들 의사 난수 발생 방법은 수학적으로 정의된 함수로부터 얻어진 수열을 순차적으로 출력함으로써, 생성될 난수 값이 미리 정의되어 있고, 정의된 수열이 순차적으로 출력되다가 일정 시간이 지난 후, 동일한 순서를 다시 반복하므로 충분히 예측할 수 있는 난수를 발생시키게 된다. 예를 들어, 선형 합동 발생기 알고리즘의 경우 동일한 값을 입력하면 동일한 출력을 발생하게 되고, 선형피드백 쉬프트 레지스터 경우도 동일한 초기 입력값 즉, 시드(seed)를 입력한 후 동일한 시간이 지난 후의 출력 값은 항상 동일하다.
결국 의사난수는 통계적으로 모든 값이 골고루 발생할 수 있는 복잡도를 보장할 수는 있지만 특정한 초기 입력값에 대한 동일한 시간의 출력은 예측 가능한 값을 가지므로 랜덤성을 만족시키지 못하고 있다. 따라서 의사난수를 이용하는 시스템은 초기 입력값인 시드를 랜덤하게 얻기 위한 별도의 노력이 필요하게 된다.
본 발명이 이루고자 하는 기술적 과제는 디지털 로직만을 이용하여 구현이 용이하면서도, 아날로그 회로를 이용한 물리적 난수 발생 장치가 가지는 랜덤성을 유지할 수 있는 디지털 난수 발생 장치 및 난수 발생 방법을 제공하는 것이다.
상기의 문제점을 해결하기 위해, 본 발명은 디지털 로직만을 이용하여 아날로그 회로를 이용한 물리적 난수발생장치가 가지는 랜덤성을 유지하면서 구현이 용이한 난수 발생 장치 및 난수 발생 방법을 제공한다. 본 발명은 선형 피드백 쉬프트 레지스터의 피드백 부에 랜덤성을 가지는 신호를 합하여 입력하는 경우 선형피드백 쉬프트레지스터(LFSR)에서 생성되는 값들이 랜덤성을 가지게 되는 점과, 클럭 값이 변화하는 시점이 매 클럭마다 일정치 않은 지트 성분을 가지고 있는 점을 이용하여 디지털 회로만으로 완전 난수를 발생시키는 구성을 제공한다.
본 발명의 제1관점에 따른 디지털 로직을 이용한 난수 발생 장치는, 내부에 저장된 비트 값들을 순차적으로 이동시키는 쉬프트 레지스터, 상기 쉬프트 레지스터에 저장된 비트 값들을 소정 논리연산하여 생성한 궤환신호를 생성하는 궤환회로, 상기 쉬프트 레지스터로 입력되는 외부 신호를 생성하는 외부신호 생성회로, 및 상기 궤환신호 및 외부신호를 소정 논리연산하여 상기 쉬프트 레지스터로 출력하는 입력 논리회로를 포함하는 것을 특징으로 한다.
또한, 바람직하게는 상기 쉬프트 레지스터의 비트 값 및 외부 신호의 논리값이 모두 동일한 경우, 상기 입력 논리회로의 출력값이 상기 쉬프트 레지스터의 비트 값과 다른 값이 되도록 하는 값을 상기 입력 논리회로로 출력하는 고정값 방지회로를 더 포함하는 것을 특징으로 한다.
또한, 바람직하게는 상기 고정값 방지회로의 출력은 논리값 하이(high)인 것을 특징으로 한다.
또한, 바람직하게는 상기 외부 신호 생성회로는 랜덤신호를 생성하는 것을 특징으로 한다.
또한, 바람직하게는 상기 랜덤신호는 발생원이 다른 신호를 샘플링함으로써 생성되는 것을 특징으로 한다.
또한, 바람직하게는 상기 샘플링은 신호의 라이징 에지 및 폴링 에지에서 모두 수행되는 것을 특징으로 한다.
본 발명의 제2관점에 따른 디지털 로직을 이용한 난수 발생 방법은, 쉬프트 레지스터 내부에 저장된 비트 값들을 순차적으로 이동시키는 단계, 상기 쉬프트 레지스터에 저장된 비트 값들을 소정 논리연산하여 궤환신호를 생성하는 단계, 상기 쉬프트 레지스터로 입력되는 외부 신호를 생성하는 단계, 및 상기 궤환신호 및 외부신호를 소정 논리연산하여 상기 쉬프트 레지스터로 출력하는 단계를 포함하는 것을 특징으로 한다.
또한, 바람직하게는 상기 쉬프트 레지스터의 비트 값 및 외부 신호의 논리값이 모두 동일한 경우, 상기 쉬프트 레지스터로의 출력값이 상기 쉬프트 레지스터의 비트 값과 다른 값이 되도록 하는 고정 방지값을 더 논리연산하는 것을 특징으로 한다.
또한, 바람직하게는 상기 고정 방지값은 논리값 하이인 것을 특징으로 한다.
또한, 바람직하게는 상기 외부 신호는 랜덤신호인 것을 특징으로 한다.
또한, 바람직하게는 상기 랜덤신호는 발생원이 다른 신호를 샘플링함으로써 생성되는 것을 특징으로 한다.
또한, 바람직하게는 상기 샘플링은 신호의 라이징 에지 및 폴링 에지에서 모두 수행되는 것을 특징으로 한다.
본 발명에 의해 난수를 발생함에 있어서, 디지털 로직만을 이용하여 구현이 용이하면서도, 아날로그 회로를 이용한 물리적 난수 발생 장치가 가지는 랜덤성을 유지할 수 있게 된다. 또한, 의사 난수 발생 장치인 선형피드백 쉬프트 레지스터가 가지는 특성을 이용함으로써 통계적으로 모든 값이 골고루 발생할 수 있는 복잡도를 만족시키게 된다.
본 특허에서 제시하는 발명 가운데 대표적인 개요를 설명하면 다음과 같다. 기존의 의사 난수 발생 방법에 사용되는 선형 궤환 쉬프트 레지스터는 수학적으로 정의된 함수로부터 얻어진 궤환 회로를 이용하여, 이 궤환회로의 출력을 쉬프트 레지스터로 입력시킴으로써 매 클럭마다 다른 수열을 발생시키게 되지만, 앞서 설명한 바와 같이 발생하는 수열의 순서가 고정되는 단점을 가지고 있다. 이와 같은 단점을 극복하기 위해 본 발명은 쉬프트 레지스터의 입력으로 기존의 궤환회로의 출력 외에 또 다른 외부신호를 함께 합(+)함으로써 다른 특성을 가지는 난수발생장치를 제공한다.
이 외부신호가 0 또는 1의 랜덤신호를 계속하여 발생하게 되면 전혀 다른 특성의 선형 궤환 쉬프트 레지스터가 된다. 외부신호가 0인 경우는 기존의 선형궤환 쉬프트 레지스터와 동일한 순서의 수열이 생성되지만, 반면 이 외부 신호가 1인 경우는 쉬프트 레지스터의 수열 순서가 0인 경우의 반대 순서가 되는 것이 아니라, 또 다른 순서를 가지게 된다. 또한 외부신호가 1인 경우도 레지스터에서 생성되는 수열 값의 발생 분포가 동일하여 0인 경우와 같은 복잡도를 유지하게 된다. 따라서 외부신호가 랜덤 값을 발생하면 선형궤환 쉬프트 레지스터에서 생성되는 수열은 예측 불가능한 난수가 된다.
기존의 난수 발생 장치가 아날로그 회로를 이용하여 생성된 신호의 랜덤성을 지속적으로 누적시키지 못하고 최근에 생성된 랜덤신호만을 이용하여 난수를 발생시키고 있는 것과는 달리, 본 발명이 제시하는 난수발생기의 우수한 특성은 기본적으로 쉬프트 레지스터에 의해 수열이 계속해서 다른 값으로 바뀌고 있는 가운데 랜덤신호 값에 의해 쉬프트 레지스터의 값의 변화 패턴이 달라지기 때문에, 랜덤신호의 변화가 계속해서 누적되어 소프트웨어에서 난수를 필요로 하는 시점이 되면 쉬프트 레지스터에는 예측 불가능한 완전난수가 생성된다.
따라서 본 발명에서 제공하는 선형궤환 쉬프트 레지스터를 이용하면 쉬프트 레지스터에 입력되는 외부신호는 난수를 필요로 하는 시점 이전의 어느 시점이라도 랜덤한 특성을 가지면 쉬프트 레지스터는 예측 불가능한 수열을 생성하게 되므로, 랜덤한 외부신호를 얻기 위해 별도의 아날로그 회로를 이용하지 않고 디지털 로직을 이용하여 간단히 구현될 수 있다.
본 발명에서 제공하는 선형궤환 쉬프트 레지스터에 입력되는 랜덤한 외부신호를 만들기 위해 사용하는 방법은 클럭 신호의 지트를 이용하는 것으로 두 개의 독립적인 소스에서 생성된 클럭을 이용하여 하나의 클럭이 또 다른 클럭의 값을 샘 플링하는 것이다. 이와 같은 방법이 지트의 발생시간이 짧은 관계로 기존의 아날로그 회로를 이용한 랜덤신호 생성 방법에 비해서는 랜덤성이 떨어지는 신호를 발생시키지만, 난수를 필요로 하는 시간에는 충분히 많은 지트의 샘플링이 이루어진 이후이고, 매번 지트를 샘플링할 때마다 선형궤환 쉬프트레지스터의 값은 예측할 수 없는 값으로 바뀌게 되므로 지트의 랜덤 성분에 의해 선형궤환 쉬프트레지스터는 예측할 수 없는 난수를 생성하게 된다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명한다 발명의 이해를 돕기 위해 도면 전체에서 동일한 장치에 대해서는 동일한 부호를 사용한다..
도 1은 본 발명에 따른 디지털 로직을 이용한 난수 발생 장치의 일 실시예의 개략적인 블록도이다. 본 발명이 제시하는 난수 발생 장치는 크게 네 개의 블록으로 나뉘어 지는데 각 블록의 구성 및 동작에 대해 설명한다.
도 1의 난수 발생 장치는 쉬프트레지스터(100), 궤환회로(200), 고정값 방지회로(300), 랜덤신호 생성회로(400) 및 입력 논리회로(500)로 구성된다.
쉬프트 레지스터(100)는 내부에 저장된 비트 값들을 순차적으로 이동시키고, 궤환회로(200)는 쉬프트 레지스터(100)에 저장된 비트 값들을 소정 논리연산하여 생성한 궤환신호를 생성한다. 여기서 쉬프트 레지스터(100)와 궤환회로(200)는 종래의 선형궤환 쉬프트레지스터의 구성 방식을 따르게 되지만, 새로운 형태의 쉬프트 레지스터의 입력신호를 생성하는 방법, 고정값 방지회로(300), 랜덤신호 생성회로(400) 및 궤환회로(200), 고정값 방지회로(300) 및 랜덤신호 생성회로(400)의 출 력을 합하여 쉬프트 레지스터(100)에 입력하기 위한 입력 논리회로(500)를 추가함으로써 전혀 다른 동작 특성을 가지는 난수발생 장치를 만들 수 있다.
본 발명의 난수발생장치의 동작 특성을 설명하기 위하여 하나의 실시예를 들어 설명하면 다음과 같다. 도 2는 새로운 구성 형태를 가지는 4비트 선형궤환 쉬프트레지스터를 나타내고 있다. 쉬프트 레지스터(100) 및 궤환회로(200)의 구성은 기존의 선형궤환 쉬프트레지스터의 방식을 따르게 되는데, 궤환회로(200)의 구성은 미리 정의된 원시 다항식에 의한 연산을 행하기 위한 것으로, 원시다항식은 p(x) = x4 + x3+1을 따른다. 도 2의 선형궤환 쉬프트레지스터가 기존의 것과 다른 부분은 쉬프트 레지스터(100)의 입력 신호가 궤환회로(200)의 출력 신호와 추가적인 외부신호를 합한 신호로 정해진 다는 것이다.
랜덤신호 생성회로(400)는 쉬프트 레지스터(100)로 입력되는 외부신호를 생성하는데 본 실시예에서는 외부신호는 랜덤신호이다. 외부신호가 계속해서 0인 경우는 궤환회로(200)의 출력만이 쉬프트 레지스터(100)의 입력으로 인가 되는 것과 같으므로 기존의 선형 궤환 쉬프트레지스터와 동일하게 된다. 이 경우, 쉬프트 레지스터(100)의 초기 시드(Seed)값이 1010 인 상태로 클럭에 따른 레지스터(110-140)의 변화 값을 나타내면 1010 , 1101 , 0110 , 0011 , 1001 , 0100 , 0010 , 0001 , 1000 , 1100 , 1110 , 1111 , 0111 , 1011 , 0101 , 1010 의 순서가 된다.
반면, 외부신호가 계속해서 1인 경우는 쉬프트 레지스터(100)의 입력값은 궤 환회로(200)의 출력값과 외부신호 값 1을 합한 값으로 결정된다. 이 경우, 쉬프트 레지스터(100)의 초기 시드(Seed)값이 1010 인 상태로 클럭에 따른 레지스터(110-140)의 변화 값을 나타내면 1010 , 0101 , 0010 , 1001 , 1100 , 0110 , 1011 , 1101 , 1110 , 0111 , 0011 , 0001 , 0000 , 1000 , 0100 , 1010 의 순서가 된다. 앞서 설명한 외부신호가 계속해서 0인 경우와 수열의 순서를 비교 해보면, 반대의 수열 순서가 되는 것이 아니라 또 다른 순서를 나타내게 되고, 24-1=15개의 수열 값이 나오게 되므로 수열의 복잡도는 동일하다.
따라서 외부신호를 0과 1을 예측할 수 없는 랜덤신호를 연속적으로 생성하여 궤환회로(200)와 합하여 쉬프트 레지스터(100)로 입력하게 되면 쉬프트 레지스터의 값은 예측이 불가능한 값이 생성된다. 또한 외부신호가 랜덤한 값을 가지다가 어느 시간 이후에는 특정 값 또는 일정한 패턴을 가지는 경우이거나, 또는 랜덤 값을 가지는 신호와 특정 패턴 값을 가지는 신호가 주기적으로 반복되는 경우에도 랜덤 값이 입력되는 동안 쉬프트 레지스터는 이미 예측할 수 없는 값이 되어 있으므로 이후의 입력이 비록 특정 값 또는 특정 패턴이 되더라도 최종 쉬프트 레지스터의 값도 역시 예측이 불가능한 값이 된다. 이와 같은 특성은 기존의 난수 발생 장치에서는 찾아 볼 수 없는 특성으로서, 기존의 난수발생장치에서는 랜덤신호가 생성되다가 일정 시간이 지난 후, 특정 패턴의 신호가 생성되면 최종 난수 값도 특정 패턴의 값이 된다.
도 3은 도 2의 새로운 구성 형태를 가지는 4비트 선형 궤환 쉬프트레지스터에서 쉬프트 레지스터(100)의 수열이 매 클럭마다 바뀌지 않는 경우가 발생하는 것을 방지하는 고정값 방지회로(300)를 추가한 것이다. 기존의 선형궤환 쉬프트레지스터는 궤환회로(200)의 출력만이 쉬프트레지스터의 입력으로 인가되므로 시드 값이 모두 0이 아니라면 어떠한 경우에도 레지스터(110-140)의 값이 모두 0이 되는 경우는 발생하지 않게 되며, 항상 매 클럭마다 정해진 패턴의 다른 값으로 바뀌게 된다.
그러나 본 발명이 제시하는 선형궤환 쉬프트레지스터는 궤환회로(200)의 출력과 추가적인 외부입력을 합하게 되므로 외부신호가 1인 경우에는 위에서 나열한 수열에서 알 수 있듯이 레지스터의 값이 모두 0이 되는 경우가 발생하게 된다. 만약 랜덤한 외부신호에 의해 레지스터(110-140)의 값이 모두 0이 되는 순간 외부 입력값이 0으로 계속해서 고정되면 쉬프트 레지스터(100)는 클럭에 따라 값이 바뀌지 않고 계속해서 모든 값이 0으로 고정되게 된다. 마찬가지로 랜덤한 외부신호에 의해 레지스터(110-140)의 모든 값이 1이 되는 순간 외부 입력값이 1로 계속해서 고정되면 쉬프트 레지스터(100)는 클럭에 따라 값이 바뀌지 않고 계속해서 모든 값이 1로 고정되게 된다. 이와 같이 특정한 상황에서 쉬프트 레지스터(100)의 값이 고정되는 것을 방지하기 위한 수단으로 고정값 방지회로(300)가 필요하다.
이를 위해, 도 3에서는 레지스터(110-140)의 값 및 랜덤신호를 반전한 후 논리곱(또는 논리합한 후 반전)하는 회로(310)와, 레지스터(110-140)의 값 및 랜덤신호를 논리곱하는 회로(320)로부터 얻어지는 두 개의 출력을 논리합 회로(330)에서 논리 합(330)한 후, 이 논리합 회로(330)의 출력값과 랜덤신호의 값 및 궤환회로(200)의 출력값을 입력 논리 회로(500)에서 합하여 쉬프트 레지스터(100)에 입력함으로써 쉬프트 레지스터의 값이 고정되는 것을 방지하는 수단을 제공한다.
레지스터(110-140)의 값이 0000 이고 랜덤신호도 0이 되는 경우에, 고정값 방지회로(300)를 추가하지 않으면 궤환회로(200)의 출력값이 0이므로 이 궤환회로의 출출력값과덤 신호를 합한 쉬프트 레지스터(100)의 입력값도 0이 되어 쉬프트 레지스터의 값은 계속해서 0000 을 유지하게 된다. 반면, 고정값 방지회로(300)를 추가하게 되면 레지스터(110-140)의 값 및 랜덤신호를 반전한 후 논리 곱(310)하는 출력은 1이 되므로, 논리합 회로(330)의 출력인 고정값 방지회로(300)의 출력도 1이 되어, 고정값 방지회로(300)의 출력 값, 랜덤신호, 그리고 궤환회로(200)의 출력값을 합한 회로(500)의 출력인 쉬프트 레지스터(100)의 입력값은 1이 된다. 결국 클럭에 의해 생성되는 쉬프트 레지스터의 다음 값은 1000 이 되어 0000 으로 고정되는 것을 방지한다.
마찬가지로, 레지스터(110-140)의 값이 1111 이고 랜덤신호도 1이 되는 경우에, 고정값방지회로(300)를 추가하지 않으면 궤환회로(200)의 출력값이 0이므로 이 궤환회로 출력값과 랜덤신호를 합한 쉬프트 레지스터(100)의 입력값은 1이 되어 쉬프트 레지스터의 값은 계속해서 1111 을 유지하게 된다. 반면, 고정값방지회로(300)를 추가하게 되면 레지스터(110-140)의 값 및 랜덤신호를 반전한 후 논리 곱(320)하는 출력은 1이 되므로, 논리합(330)의 출력인 고정값 방지회로(300)의 출력도 1이 되어, 고정값 방지회로의 출력 값, 랜덤신호, 그리고 궤환회로의 출력 값을 합한 회로(500)의 출력인 쉬프트 레지스터(100)의 입력값은 0이 된다. 결국 클럭에 의해 생성되는 쉬프트 레지스터(100)의 다음 값은 0111 이 되어 1111 로 고정되는 것을 방지한다. 정리하여 설명하면, 고정값 방지회로(300)는 쉬프트 레지스터(100)의 모든 값 및 랜덤신호가 동일한 값을 가지는 경우에만 1을 출력시켜, 이 경우의 쉬프트 레지스터 입력값을 반전시키는 효과를 유발한다.
이해를 돕기 위해 4비트의 경우를 예를 들었으나, 본 발명의 난수 발생 장치는 특정 비트에 국한되지 않고 기존의 선형궤환 쉬프트레지스터를 구성할 수 있는 어떠한 비트 길이에도 적용된다.
도 4는 독립적인 소스를 가지는 두개의 클럭을 생성한 후 클럭 1은 플립플롭(400A)의 클럭단자에 인가하고 나머지 클럭2는 플립플롭(400A)의 데이터 단자에 인가하여 하나의 클럭이 또 다른 클럭을 샘플링함으로써 랜덤한 신호를 생성하는 회로를 나타낸 것이다. 모든 클럭은 클럭의 값이 변화하는 시점이 매 클럭마다 일정치 않은 지트 성분을 가지고 있으며, 이 지트는 온도 등의 물리적 현상에 의해 발생하며 가운시안 분포를 가지는 랜덤성을 가진다. 만약 샘플링하는 구간이 클럭의 지트가 발생하는 구간이 되면 생성되는 신호는 랜덤한 신호가 된다. 지트의 시간 폭이 작기 때문에 랜덤한 신호가 발생할 확률은 작지만 이 신호를 본 특허에서 제시하는 선형궤환 쉬프트 레지스터에 입력하는 경우는 랜덤신호가 발생할 때마다 레지스터의 값이 예측할 수 없는 값으로 바뀌므로, 아날로그회로를 사용하지 않고 클럭에서 발생하는 랜덤성만을 이용하더라도 물리적 난수를 생성할 수 있다.
도 5는 독립적인 소스를 가지는 두개의 클럭을 이용하여 랜덤신호를 생성하는 또 다른 예이다. 클럭1을 플립플롭의 클럭 단지에 입력하는 경우, 플립플롭 1(410)에는 그대로 입력하고, 플립플롭 2(420)에는 반전하여 입력함으로써 플립플롭 1(410)은 클럭의 라이징 에지에서 클럭 2의 값을 샘플링하고, 플립플롭 2(420)는 클럭의 폴링 에지에서 클럭 2의 값을 샘플링하게 된다. 이 두개의 플립플롭의 출력값을 합(430)하여 랜덤신호를 생성한다.
도 4가 클럭의 라이징 에지에서 다른 클럭을 샘플링하는 경우인 반면, 도 5는 클럭의 라이징 및 폴링 에지 모두에서 다른 클럭을 샘플링함으로써 클럭의 지트를 샘플링할 확률은 두배로 증가하게 된다.
도 6은 본 발명에 따른 디지털 로직을 이용한 난수 발생 방법의 일 실시예의 흐름도이다.
먼저, 쉬프트 레지스터 내부에 저장된 비트 값들을 순차적으로 이동시키고(600), 쉬프트 레지스터에 저장된 비트 값들을 소정 논리연산하여 궤환신호를 생성한다(610).
여기서 쉬프트 레지스터의 동작 및 궤환신호를 생성방법은 종래의 선형 궤환 쉬프트 레지스터의 방식을 따르게 되지만, 새로운 형태의 쉬프트 레지스터의 입력신호를 생성하고, 쉬프트 레지스터의 고정값을 방지하고, 랜덤신호를 생성하며, 고정 방지값, 랜덤신호 및 궤환신호를 합하여 쉬프트 레지스터에 입력하는 단계를 추가함으로써 전혀 다른 동작 특성을 가지는 난수 발생 방법을 만들 수 있다.
이어서, 쉬프트 레지스터로 입력되는 외부 신호를 생성한다(630). 이때, 생성된 외부신호의 논리값이 쉬프트 레지스터에 저장된 비트 값과 모두와 동일한 지 의 여부에 따라 다음의 두 가지 과정을 각각 수행한다.
외부신호의 논리값이 쉬프트 레지스터에 저장된 비트 값과 모두와 동일하지 않은 경우, 외부신호와 궤환신호만을 논리연산하여 쉬프트 레지스터로 출력한다(630).
하지만, 외부신호의 논리값이 쉬프트 레지스터에 저장된 비트 값과 모두와 동일한 경우는 궤환신호, 외부 신호에 쉬프트 레지스터의 비트 값이 고정되지 않도록 하기 위해 생성되는 고정 방지값을 더 논리연산하여 쉬프트 레지스터로 출력한다(640). 본 방법의 보다 상세한 설명은 본 방법의 다른 태양인 장치의 설명을 통해 이미 설명되었으므로 생략한다.
이 상으로 설명한 바와 같이, 본 발명은 디지털 로직만을 이용하여, 규칙성을 가지고 있지 않으면서 비트 수에 해당하는 모든 값이 발생할 수 있는 완전 난수를 생성하기 위한 수단을 제공하고 있다.
또한 본 발명의 난수발생장치는 아날로그 회로를 사용하지 않으므로 공정에 의존하지 않고, 복잡한 알고리즘을 사용하지 않으므로 구현이 용이하며, 디지털 로직의 구성이 작은 면적으로 구현이 가능한 형태이므로 전력의 소모가 작다.
따라서 IC카드와 같은 저전력, 저면적을 필요로 하는 시스템-온-칩(System-On-Chip)의 난수발생장치로 활용될 수 있음은 물론이고, 본 특허의 난수 발생 장치는 기존의 의사 난수 발생 장치처럼 구현이 용이하므로, 보안을 필요로 하는 모든 종류의 시스템에서 활용될 수 있다.
본 발명이 비록 본 발명의 바람직한 실시예에 의해 설명되었지만, 본 발명의 범위는 이에 한정되어서는 아니 되고, 청구범위에 의해 뒷받침되는 한 상기 실시예의 변형이나 개량에도 미쳐야 할 것이다.

Claims (12)

  1. 내부에 저장된 비트 값들을 순차적으로 이동시키는 쉬프트 레지스터;
    상기 쉬프트 레지스터에 저장된 비트 값들을 소정 논리연산하여 궤환신호를 생성하는 궤환회로;
    랜덤한 외부 신호를 생성하여 상기 쉬프트 레지스터로 입력하는 외부신호 생성회로;
    상기 궤환신호 및 상기 외부신호를 소정 논리연산하여 상기 쉬프트 레지스터로 출력하는 입력 논리회로;및
    상기 쉬프트 레지스터의 비트 값과 상기 외부 신호의 논리값이 동일한 경우, 상기 입력논리회로에서 소정의 논리연산을 수행한 출력 값이 상기 쉬프트 레지스터의 비트값과 상이한 값이 되도록 상기 출력 값을 재생성하는 고정값 방지회로;를 포함하는 것을 특징으로 하는 디지털 로직을 이용한 난수 발생 장치.
  2. 삭제
  3. 제 1 항에 있어서, 상기 고정값 방지회로의 출력은 논리값이 하이인 것을 특징으로 하는 디지털 로직을 이용한 난수 발생 장치.
  4. 삭제
  5. 제 1 항에 있어서, 상기 랜덤한 외부 신호는
    적어도 하나 이상의 발생원에서 각각 클럭 신호를 생성한 후 서로 다른 클럭 신호를 샘플링함으로써 생성되는 것을 특징으로 하는 디지털 로직을 이용한 난수 발생 장치.
  6. 제 5항에 있어서, 상기 샘플링은 상기 클럭 신호의 라이징 에지 및 폴링 에지에서 모두 수행되는 것을 특징으로 하는 디지털 로직을 이용한 난수 발생 장치.
  7. (1) 쉬프트 레지스터 내부에 저장된 비트 값들을 순차적으로 이동시키는 단계;
    (2) 상기 쉬프트 레지스터에 저장된 비트 값들을 소정 논리연산하여 궤환신호를 생성하는 단계;
    (3) 상기 쉬프트 레지스터로 입력되는 랜덤한 외부 신호를 생성하는 단계;
    (4) 상기 궤환신호 및 상기 외부신호를 소정 논리연산한 출력 값을 상기 쉬프트 레지스터로 출력하는 단계; 및
    (5) 상기 쉬프트 레지스터의 비트 값과 상기 외부 신호의 논리값이 동일한 경우, 상기 (4) 단계의 출력 값이 상기 쉬프트 레지스터의 비트값과 상이한 값이 되도록 상기 출력 값을 재생성하는 단계;를 포함하는 것을 특징으로 하는 디지털 로직을 이용한 난수 발생 방법.
  8. 삭제
  9. 제 7 항에 있어서, 상기 (5)항의 출력 값은 논리값 하이인 것을 특징으로 하는 디지털 로직을 이용한 난수 발생 방법.
  10. 삭제
  11. 제 7 항에 있어서, 상기 랜덤한 외부 신호는
    적어도 하나 이상의 발생원에서 각각 클럭 신호를 생성한 후 서로 다른 클럭 신호를 샘플링함으로써 생성되는 것을 특징으로 하는 디지털 로직을 이용한 난수 발생 방법.
  12. 제 11항에 있어서, 상기 샘플링은 신호의 라이징 에지 및 폴링 에지에서 모두 수행되는 것을 특징으로 하는 디지털 로직을 이용한 난수 발생 방법.
KR1020030095373A 2003-12-23 2003-12-23 디지털 로직을 이용한 난수 발생 장치 및 방법 KR100576714B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020030095373A KR100576714B1 (ko) 2003-12-23 2003-12-23 디지털 로직을 이용한 난수 발생 장치 및 방법
JP2006546799A JP4417389B2 (ja) 2003-12-23 2004-07-29 デジタルロジックを利用した乱数発生装置及び方法
US10/584,158 US20070150531A1 (en) 2003-12-23 2004-07-29 Apparatus and method for generating random number using digital logic
CN2004800416030A CN1914847B (zh) 2003-12-23 2004-07-29 使用数字逻辑产生随机数的装置和方法
EP04774229A EP1698095A4 (en) 2003-12-23 2004-07-29 DEVICE AND METHOD FOR GENERATING A RANDOM COUNTER THROUGH THE USE OF DIGITAL LOGIC
PCT/KR2004/001911 WO2005062523A1 (en) 2003-12-23 2004-07-29 Apparatus and method for generating random number using digital logic

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030095373A KR100576714B1 (ko) 2003-12-23 2003-12-23 디지털 로직을 이용한 난수 발생 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050064096A KR20050064096A (ko) 2005-06-29
KR100576714B1 true KR100576714B1 (ko) 2006-05-03

Family

ID=36791214

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030095373A KR100576714B1 (ko) 2003-12-23 2003-12-23 디지털 로직을 이용한 난수 발생 장치 및 방법

Country Status (6)

Country Link
US (1) US20070150531A1 (ko)
EP (1) EP1698095A4 (ko)
JP (1) JP4417389B2 (ko)
KR (1) KR100576714B1 (ko)
CN (1) CN1914847B (ko)
WO (1) WO2005062523A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200143183A (ko) * 2019-06-14 2020-12-23 광운대학교 산학협력단 랜덤 소수 생성 방법 및 그를 위한 장치

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019802B2 (en) * 2005-08-24 2011-09-13 Qualcomm Incorporated Cryptographically secure pseudo-random number generator
US8312071B2 (en) 2008-04-11 2012-11-13 International Business Machines Corporation Method and structure for provably fair random number generator
US8522065B2 (en) * 2009-09-06 2013-08-27 Percello Ltd. Generating a random number in an existing system on chip
CN102622205B (zh) * 2012-03-09 2015-02-11 无锡华大国奇科技有限公司 随机数发生器
US9569176B2 (en) 2014-10-30 2017-02-14 Seagate Technology Llc Deriving entropy from multiple sources having different trust levels
KR101649996B1 (ko) 2015-07-07 2016-08-23 동서대학교산학협력단 임계클럭조절형 랜덤 암호 발생기
US10536266B2 (en) 2017-05-02 2020-01-14 Seagate Technology Llc Cryptographically securing entropy for later use
US10541610B1 (en) * 2018-08-21 2020-01-21 Texas Instruments Incorporated Spectral shaping of spread spectrum clocks/frequencies through post processing
TWI754900B (zh) * 2020-01-17 2022-02-11 旺宏電子股份有限公司 亂數產生器、亂數產生電路及亂數產生方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5001361A (en) * 1988-05-13 1991-03-19 Fujitsu Limited Master-slave flip-flop circuit
EP0529512A3 (en) * 1991-08-23 1993-06-16 Fujitsu Limited Method and system for generating random number sequences
US6061819A (en) * 1997-12-29 2000-05-09 Hewlett-Packard Company Generation of reproducible random initial states in RTL simulators
US6282181B1 (en) * 1998-04-24 2001-08-28 Ericsson Inc Pseudorandom number sequence generation in radiocommunication systems
US6560338B1 (en) * 1998-08-28 2003-05-06 Qualcomm Incorporated Limiting delays associated with the generation of encryption stream ciphers
US6240432B1 (en) * 1998-12-28 2001-05-29 Vanguard International Semiconductor Corporation Enhanced random number generator
US6125378A (en) * 1999-01-13 2000-09-26 Barbano; Paolo Emilio Method and apparatus for generating families of code signals using multiscale shuffling
GB2357610B (en) * 1999-12-20 2004-04-28 Mitsubishi Electric Inf Tech Method and apparatus for generating numbers
US6356112B1 (en) * 2000-03-28 2002-03-12 Translogic Technology, Inc. Exclusive or/nor circuit
US6687721B1 (en) * 2000-03-31 2004-02-03 Intel Corporation Random number generator with entropy accumulation
US7253717B2 (en) * 2000-11-29 2007-08-07 Mobile Technics Llc Method and system for communicating with and tracking RFID transponders
US6807553B2 (en) * 2001-04-23 2004-10-19 Safenet B.V. Digital true random number generator circuit
US20040049525A1 (en) * 2002-09-06 2004-03-11 Koninklijke Philips Electronics N.V. Feedback random number generation method and system
US7206797B2 (en) * 2003-04-14 2007-04-17 M-Systems Flash Disk Pioneers Ltd. Random number slip and swap generators

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200143183A (ko) * 2019-06-14 2020-12-23 광운대학교 산학협력단 랜덤 소수 생성 방법 및 그를 위한 장치
KR102217928B1 (ko) * 2019-06-14 2021-02-19 광운대학교 산학협력단 랜덤 소수 생성 방법 및 그를 위한 장치

Also Published As

Publication number Publication date
CN1914847A (zh) 2007-02-14
CN1914847B (zh) 2010-04-28
EP1698095A1 (en) 2006-09-06
US20070150531A1 (en) 2007-06-28
JP2007520798A (ja) 2007-07-26
EP1698095A4 (en) 2010-07-14
KR20050064096A (ko) 2005-06-29
JP4417389B2 (ja) 2010-02-17
WO2005062523A1 (en) 2005-07-07

Similar Documents

Publication Publication Date Title
Golic New methods for digital generation and postprocessing of random data
EP1782181B1 (en) Method and apparatus for generating random data
EP1776757B1 (en) Random number generation based on logic circuits with feedback
US6954770B1 (en) Random number generator
JP3696209B2 (ja) シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器
JP2006139756A (ja) 乱数発生器および乱数を発生する方法
Merah et al. A pseudo random number generator based on the chaotic system of Chua’s circuit, and its real time FPGA implementation
Liu et al. A true random-based differential power analysis countermeasure circuit for an AES engine
KR100576714B1 (ko) 디지털 로직을 이용한 난수 발생 장치 및 방법
Gupta et al. Hardware efficient pseudo-random number generator using chen chaotic system on FPGA
AVAROĞLU et al. A novel S-box-based postprocessing method for true random number generation
Yakut et al. Secure and efficient hybrid random number generator based on sponge constructions for cryptographic applications
Demir et al. Cryptanalysis of a random number generator based on continuous‐time chaos
KR100735953B1 (ko) 일련 번호 생성 장치, 그 방법 및 컴퓨터 판독가능 저장매체
Kasarabada et al. Sled: Sequential logic encryption using dynamic keys
JP2010002959A (ja) 擬似乱数生成装置
Garipcan et al. Implementation of a digital TRNG using jitter based multiple entropy source on FPGA
KR102197744B1 (ko) 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치
Anchana et al. Design of PUF Based Chaotic Random Number Generator
Hussain et al. Enhancing security in iot devices by using pseudo random number generator based on two different lfsr and a comparator
Singh et al. FPGA Implementation of Chaos based Pseudo Random Number Generator
Mita et al. Pseudo-random sequence generators with improved inviolability performance
Sekhar et al. An Efficient Pseudo Random Number Generator for Cryptographic Applications
Alioto et al. On the suitability of digital maps for integrated pseudo-RNGs
Mehra et al. Design of Hexagonal Oscillator for True Random Number Generation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110411

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee