KR102197744B1 - 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치 - Google Patents

무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치 Download PDF

Info

Publication number
KR102197744B1
KR102197744B1 KR1020200013030A KR20200013030A KR102197744B1 KR 102197744 B1 KR102197744 B1 KR 102197744B1 KR 1020200013030 A KR1020200013030 A KR 1020200013030A KR 20200013030 A KR20200013030 A KR 20200013030A KR 102197744 B1 KR102197744 B1 KR 102197744B1
Authority
KR
South Korea
Prior art keywords
data
random
random number
transition rule
rule
Prior art date
Application number
KR1020200013030A
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 KR1020200013030A priority Critical patent/KR102197744B1/ko
Application granted granted Critical
Publication of KR102197744B1 publication Critical patent/KR102197744B1/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/588Random number generators, i.e. based on natural stochastic processes

Abstract

본 발명은 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치에 관한 것으로, 복수의 입력신호에 따라 지연라인을 통해 무작위 데이터를 생성하여 출력하는 복수의 D셀(Dcell)과, 무작위 데이터를 입력으로 하여 다음 시간 단계에서 사용될 천이 규칙을 생성하여 출력하는 룰박스(Rule Box)와, 천이 규칙에 따라 다음 시간 단계의 무작위 난수를 생성하여 출력하는 복수의 N셀(Ncell)을 포함함으로써, 낮은 난수 생성 속도를 향상시킬 수 있을 뿐만 아니라 CARM의 큰 하드웨어 요구량을 감소시킬 수 있다.

Description

무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치{TRUE RANDOM NUMBER GENERATOR BASED ON CELLULAR AUTOMATA WITH RANDOM TRANSITION RULES}
본 발명은 셀룰러 오토마타(cellular automata)에 무작위 천이 규칙을 도입하여 난수를 생성할 수 있는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치에 관한 것이다.
잘 알려진 바와 같이, 무작위 난수(random number)는 고전적으로 몬테 카를로(Monte Carlo) 시뮬레이션, 수치해석, 산업분야의 테스트와 라벨링, 컴퓨터 프로그래밍, 게임과 도박 그리고 암호학 등 다양한 분야에서 필수적으로 사용되어 왔다.
최근에는 RSA와 ECC(Elliptic Curve Cryptography) 공개키 암호, AES(Advanced Encryption Standard), LEA(Lightweight Encryption Algorithm) 등의 대칭키 암호 그리고 DSA(Digital Signature Algorithm) 등 대부분의 정보보안 시스템에서 무작위 난수가 핵심 요소로 사용되고 있다. 이러한 정보보안 시스템의 안전성은 사용되는 난수에 따라 성능이 크게 좌우되기 때문에 무작위 난수의 생성이 매우 중요하다.
한편, 난수 생성기는 크게 나누어 의사 난수 생성기(Pseudo Random Number Generator; PRNG)와 참 난수 생성기(True Random Number Generator; TRNG)로 구분될 수 있는데, 의사 난수 발생기인 PRNG는 결정론적 알고리듬을 이용하여 난수를 생성하는 것으로, 초기 데이터를 이용하여 긴 패턴을 갖는 숫자 배열을 출력하는 형태인데 그 배열이 매우 길면 난수로 취급 가능하다는 점을 이용하며, 대표적인 방법으로는 LFSR(Linear Feedback Shift Register), B.B.S(Blum Blum Shub), 셀룰러 오토마타(cellular automata) 등이 있다.
이러한 PRNG는 초기상태 값에 의해 숫자 시퀀스가 영향을 받으며, 0과 1 사이의 완전한 균형을 갖지만 긴 범위의 상관관계를 가져 암호학적 강도가 약하다는 단점이 있고, 결정론적 알고리듬을 이용하기 때문에 초기 데이터가 동일하면 출력 난수 값 또한 동일한 특성이 있으며, 알고리듬 특성상 나타나는 패턴을 계산에 의해 유추할 수 있는 단점을 갖는다.
또한, 참 난수 발생기인 TRNG는 생성되는 난수가 초기값에 영향 받지 않고 주기성을 갖지 않아 암호학적 강도가 강하여 대부분의 정보보안 시스템에서 사용되는 난수 발생 방식으로, TRNG에서는 엔트로피 소스로 불규칙한 자연 현상을 이용하는데, 회로에 사용된 부품의 전자 잡음, 회로나 물질의 준안정성(metastability), 반도체 제조공정 변이 등 다양한 물리적 프로세스가 사용되며, 대표적인 예로는 열 잡음, 지연 잡음, Zener 잡음 등 잡음을 이용하는 방법과 링 발진기(ring oscillator), 준안전성(metastability), 양자(quantum) 시스템 특성 등을 이용하는 방법들이 있다.
한편, 셀룰러 오토마타(cellular automata)는 PRNG 구현 방법의 하나로서, 이웃 셀의 상태에 천이 규칙을 적용하여 시간 단계를 통해 진화하는 셀의 집합으로, Von Neumann 등에 의해 고안되었는데, 1950년대에 생물학적 시스템의 모델로 연구되었고, 그 이후 수학, 물리학 등 다양한 분야에서 연구되어 사용되고 있다.
이러한 셀룰러 오토마타는 크게 4가지 속성을 가지는데, 첫 번째는 셀의 연결 구조로, 각 셀의 1차원적 선 형태, 2차원적 면 형태, 3차원적 입체 형태 등으로 구현할 수 있다.
두 번째 속성은 각 셀이 가질 수 있는 상태의 수이며, 상태를 색상으로 나타내기도 하는데, 가장 간단한 예로는 0(흰색), 1(검은색)을 이용할 수 있고, 연속 가능한 범위의 값을 갖는 셀을 구현할 수도 있다.
세 번째 속성은 각 셀이 서로 영향을 미치는 범위로서, 각 셀이 바로 인접한 셀, 혹은 그 이상 범위에 있는 셀들에 영향을 미치고, 영향 받을 수 있도록 구현할 수 있다.
마지막 속성은 이웃 셀의 데이터를 이용하여 다음 시간 단계의 값을 결정하는 천이 규칙으로, 상술한 바와 같은 4개의 속성을 적절히 이용하여 다양한 셀룰러 오토마타 설계가 가능하다.
상술한 바와 같은 의사 난수 생성을 위한 셀룰러 오토마타의 한 예인 CAM(Cellular Automata with Memory)는 메모리를 갖는 셀룰러 오토마타이며, 현재의 셀 데이터뿐만 아니라 메모리에 저장된 과거의 셀 데이터를 이용하여 셀룰러 오토마타의 세 번째 속성에 변화를 주는 방식이다.
또 다른 변형된 방식인 CARM(Cellular Automata with Random Memory)는 셀룰러 오토마타의 모든 셀에 지연라인(delay line)을 포함시켜 이전 셀 데이터와 현재 셀 데이터 중 무작위로 입력되도록 함으로써 다음 시간 단계의 출력 데이터를 예측할 수 없도록 만든 TRNG 구조이다.
또한, TRNG에 사용되는 링 발진기, 준안정성 기반의 난수 생성 방법은 난수생성 속도가 느리고 또한 생성 속도의 조정이 어렵다는 단점이 있고, CARM은 난수 생성 속도가 빠르다는 장점이 있지만 모든 셀에 지연라인 (delay line)을 삽입시켜야 하므로 하드웨어적 구현에 비효율성이 있다.
1. 한국등록특허 제10-1374427호(2014.03.07.등록)
본 발명은 셀룰러 오토마타(cellular automata)에 무작위 천이 규칙을 도입하여 난수를 생성함으로써, 낮은 난수 생성 속도를 향상시킬 수 있을 뿐만 아니라 CARM의 큰 하드웨어 요구량을 감소시킬 수 있는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치를 제공하고자 한다.
또한, 본 발명은 복수의 입력신호에 따라 지연라인을 통해 무작위 데이터를 생성하여 출력하는 복수의 D셀(Dcell)과, 무작위 데이터를 입력으로 하여 다음 시간 단계에서 사용될 천이 규칙을 생성하여 출력하는 룰박스(Rule Box)와, 천이 규칙에 따라 상기 다음 시간 단계의 무작위 난수를 생성하여 출력하는 복수의 N셀(Ncell)을 포함함으로써, 효율적인 참 난수를 발생시킬 수 있고, 무작위 천이 규칙을 이용하여 매 시간 단계마다 원하는 비트의 무작위 난수를 출력할 수 있는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치를 제공하고자 한다.
그리고, 본 발명은 복수의 D셀(Dcell)에 지연라인을 갖도록 하여 무작위 데이터를 출력하고, 그 무작위 데이터가 룰박스에 입력될 경우 룰박스에서 무작위 천이 규칙이 생성되어 지연라인을 갖지 않은 복수의 N셀(Ncell)에 전달되며, 이를 통해 매 시간 단계마다 천이 규칙이 다르게 적용되어 지연라인이 없는 셀에서도 무작위성 데이터가 생성되도록 할 수 있을 뿐만 아니라 지연라인에 XOR 게이트를 추가하여 지터 잡음의 영향을 증폭시켜 무작위성을 증가시킬 수 있는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치를 제공하고자 한다.
본 발명의 실시예들의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 실시예에 따르면, 복수의 입력신호에 따라 지연라인을 통해 무작위 데이터를 생성하여 출력하는 복수의 D셀(Dcell)과, 상기 무작위 데이터를 입력으로 하여 다음 시간 단계에서 사용될 천이 규칙을 생성하여 출력하는 룰박스(Rule Box)와, 상기 천이 규칙에 따라 상기 다음 시간 단계의 무작위 난수를 생성하여 출력하는 복수의 N셀(Ncell)을 포함하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치가 제공될 수 있다.
또한, 본 발명의 실시예에 따르면, 상기 복수의 D셀은 각각, 상기 천이 규칙에 따라 자신 셀의 현재 데이터와 주변 데이터를 이용하여 상기 다음 시간 단계의 데이터를 결정하는 제 1 조합회로와, 셀의 현재 데이터를 저장하는 플립플롭(flip-flop)을 포함하며, 상기 D셀의 동작을 제어하여 상기 다음 시간 단계의 데이터를 입력으로 하여 상기 무작위 데이터를 출력하는 제 1 유한상태머신(FSM : finite state machine)과, 상기 제 1 유한상태머신의 출력 라인에 구비되어 발생된 지터잡음에 따라 현재 또는 직전의 데이터 중 무작위로 상기 플립플롭에 입력시키는 지연라인과, 상기 지연라인의 출력 라인에 구비되어 복수의 출력 중에서 홀수 개 값들을 취하여 연산하는 XOR게이트를 포함하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치가 제공될 수 있다.
또한, 본 발명의 실시예에 따르면, 상기 제 1 조합회로는, 상기 무작위 데이터를 출력하기 위해 상기 지연라인의 길이를 변화시키는 방식으로 클록 주기에 대응하여 크리티컬 패스(critical path)를 설정하여 상기 플립플롭에 입력하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치가 제공될 수 있다.
또한, 본 발명의 실시예에 따르면, 상기 제 1 유한상태머신은, 상기 플립플롭의 준비시간 및 유지시간에 대한 위반이 발생하여 상기 무작위 데이터를 생성 및 출력하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치가 제공될 수 있다.
또한, 본 발명의 실시예에 따르면, 상기 룰박스는, 영향을 받는 주변 데이터들의 조합을 왼쪽 셀데이터, 자신 셀데이터 및 오른쪽 셀데이터의 순서로 나열한 후에, 다음 시간 단계에서 갖는 다음 셀데이터를 순서대로 읽은 2진수 데이터를 10진수로 변환한 값을 상기 천이 규칙의 이름으로 부여하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치가 제공될 수 있다.
또한, 본 발명의 실시예에 따르면, 상기 룰박스는, 복수의 천이 규칙을 미리 정의하여 저장하고, 상기 D셀에서 입력되는 상기 무작위 데이터를 주소로 하여 상기 복수의 천이 규칙 중 어느 하나가 무작위로 선택되도록 하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치가 제공될 수 있다.
또한, 본 발명의 실시예에 따르면, 상기 룰박스는, 룩업테이블(Look-Up Table) 형태로 제공되는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치가 제공될 수 있다.
또한, 본 발명의 실시예에 따르면, 상기 복수의 N셀은 각각, 상기 천이 규칙에 따라 자신 셀의 현재 데이터와 주변 데이터를 이용하여 상기 다음 시간 단계의 데이터를 결정하는 제 2 조합회로와, 상기 N셀의 동작을 제어하여 상기 다음 시간 단계의 데이터를 입력으로 하여 상기 무작위 난수를 출력하는 제 2 유한상태머신(FSM)을 포함하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치가 제공될 수 있다.
또한, 본 발명의 실시예에 따르면, 상기 복수의 입력신호는, 클록신호, 리셋신호, 초기값 및 시작신호를 포함하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치가 제공될 수 있다.
또한, 본 발명의 실시예에 따르면, 상기 참 난수 생성 장치는, 상기 초기값이 입력될 경우 상기 시작신호에 의해 난수 생성을 시작하며, 매 시간 단계마다 모든 셀의 출력 데이터를 수집하여 상기 무작위 난수를 출력하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치가 제공될 수 있다.
본 발명은 셀룰러 오토마타(cellular automata)에 무작위 천이 규칙을 도입하여 난수를 생성함으로써, 낮은 난수 생성 속도를 향상시킬 수 있을 뿐만 아니라 CARM의 큰 하드웨어 요구량을 감소시킬 수 있다.
또한, 본 발명은 복수의 입력신호에 따라 지연라인을 통해 무작위 데이터를 생성하여 출력하는 복수의 D셀(Dcell)과, 무작위 데이터를 입력으로 하여 다음 시간 단계에서 사용될 천이 규칙을 생성하여 출력하는 룰박스(Rule Box)와, 천이 규칙에 따라 상기 다음 시간 단계의 무작위 난수를 생성하여 출력하는 복수의 N셀(Ncell)을 포함함으로써, 효율적인 참 난수를 발생시킬 수 있고, 무작위 천이 규칙을 이용하여 매 시간 단계마다 원하는 비트의 무작위 난수를 출력할 수 있다.
그리고, 본 발명은 복수의 D셀(Dcell)에 지연라인을 갖도록 하여 무작위 데이터를 출력하고, 그 무작위 데이터가 룰박스에 입력될 경우 룰박스에서 무작위 천이 규칙이 생성되어 지연라인을 갖지 않은 복수의 N셀(Ncell)에 전달되며, 이를 통해 매 시간 단계마다 천이 규칙이 다르게 적용되어 지연라인이 없는 셀에서도 무작위성 데이터가 생성되도록 할 수 있을 뿐만 아니라 지연라인에 XOR 게이트를 추가하여 지터 잡음의 영향을 증폭시켜 무작위성을 증가시킬 수 있다.
아울러, 본 발명은 잡음을 이용하는 방법, 물질의 준안전성, 링 발진기 등과 같은 종래의 기법에 비해 참 난수 발생 속도를 월등히 향상시킬 수 있으며, 지연라인이 없는 셀의 개수를 줄이고 늘임에 따라 생성되는 난수 양을 쉽게 조절할 수 있을 뿐만 아니라 CARM에 비해 셀 구조가 간단하여 셀의 개수 증가에 따른 하드웨어 효율성을 향상시킬 수 있다.
도 1은 본 발명의 실시예에 따른 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치의 블록구성도이고,
도 2는 본 발명의 실시예에 따른 D셀의 블록구성도이며,
도 3 및 도 4는 본 발명의 실시예에 따른 룰박스의 천이 규칙 명명 기법을 설명하기 위한 도면이고,
도 5는 본 발명의 실시예에 따른 N셀의 블록구성도이며,
도 6은 본 발명의 실시예에 따른 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치의 참 난수 생성 동작을 설명하기 위한 도면이고,
도 7은 본 발명의 실시예에 따른 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치의 무작위성 검증을 설명하기 위한 도면이다.
본 발명의 실시예들에 대한 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치의 블록구성도이고, 도 2는 본 발명의 실시예에 따른 D셀의 블록구성도이며, 도 3 및 도 4는 본 발명의 실시예에 따른 룰박스의 천이 규칙 명명 기법 및 출력 천이 규칙을 설명하기 위한 도면이고, 도 5는 본 발명의 실시예에 따른 N셀의 블록구성도이며, 도 6은 본 발명의 실시예에 따른 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치의 참 난수 생성 동작을 설명하기 위한 도면이다.
도 1 내지 도 6을 참조하면, 본 발명의 실시예에 따른 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치는 복수의 D셀(Dcell, 110), 룰박스(Rule Box, 120), 복수의 N셀(Ncell, 130) 등을 포함할 수 있다.
복수의 D셀(Dcell, 110)은 복수의 입력신호에 따라 지연라인을 통해 무작위 데이터를 생성하여 출력할 수 있는데, 제 1 조합회로(111), 제 1 유한상태머신(FSM : finite state machine, 112), 지연라인(113), XOR 게이트(114) 등을 각각 포함할 수 있다.
구체적으로 제 1 조합회로(111)는 천이 규칙에 따라 자신 셀의 현재 데이터와 주변 데이터를 이용하여 다음 시간 단계의 데이터를 결정할 수 있는데, 무작위 데이터를 출력하기 위해 지연라인(113)의 길이를 변화시키는 방식으로 클록 주기에 대응하여 크리티컬 패스(critical path)를 설정하여 제 1 유한상태머신(112)에 구비되는 플립플롭(flip-flop)에 입력시킬 수 있다.
제 1 유한상태머신(112)는 셀의 현재 데이터를 저장하는 플립플롭을 포함하며, D셀(110)의 동작을 제어하여 다음 시간 단계의 데이터를 입력으로 하여 무작위 데이터를 출력할 수 있는데, 플립플롭의 준비시간 및 유지시간에 대한 위반이 발생하여 무작위 데이터를 생성 및 출력할 수 있다.
지연라인(113)은 제 1 유한상태머신(112)의 출력 라인에 구비되어 발생된 지터잡음에 따라 현재 또는 직전의 데이터 중 무작위로 플립플롭에 입력시킬 수 있다.
XOR게이트(114)는 지연라인(113)의 출력 라인에 구비되어 복수의 출력 중에서 홀수 개 값들을 취하여 연산할 수 있다.
여기에서, 복수의 입력신호는 클록신호, 리셋신호, 초기값 및 시작신호를 포함하는데, 본 발명의 실시예에 따른 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치는 초기값이 입력될 경우 시작신호에 의해 난수 생성을 시작하며, 매 시간 단계마다 모든 셀의 출력 데이터를 수집하여 무작위 난수를 출력할 수 있다.
예를 들면, 본 발명의 실시예에 따른 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치는 셀룰러 오토마타의 속성 중, 천이 규칙을 매 시간 단계마다 무작위로 적용하여 참 난수를 생성하는 TRNG 장치로서, 도 1에 도시한 바와 같은 무작위 천이 규칙을 적용한 셀룰러 오토마타(CARR)에서는 복수의 입력신호로 클록신호(Clock), 리셋신호(Reset), 초기값이 입력되는 입력포트(Initial_Data), 그리고 회로의 동작 시작을 알리는 시작신호(start_sig)가 있고, 생성된 난수가 출력되는 출력포트(Data_out)가 구비될 수 있다.
여기에서, 입력포트(Initial_Data)로 입력되는 초기값은 셀룰러 오토마타가 동작하기 전 복수의 D셀(110)과 복수의 N셀(130)에 설정되는 초기값이며, 셀의 개수만큼의 비트 크기를 가지는데, 초기값이 입력포트(Initial_Data)로 입력될 경우, 시작신호(Start_sig)에 의해 CARR에서 난수 생성을 시작하며, 매 시간 단계마다 모든 셀의 출력 데이터를 모아 출력포트(Data_out)로 무작위 난수가 출력될 수 있다.
또한, 도 2에 도시한 바와 같이 복수의 D셀(110)은 각각, 제 1 조합회로(111), 제 1 유한상태머신(Finite State Machine; FSM, 112), 인버터 체인으로 구성되는 지연라인(delay line, 113), XOR 게이트(114)로 구성될 수 있는데, 제 1 유한상태머신(112)은 CARR 셀의 동작을 제어하며, 셀의 현재 데이터를 저장하는 플립플롭을 포함할 수 있다.
그리고, 제 1 조합회로(111)는 천이 규칙에 따라 자신 셀의 현재 데이터와 주변 데이터를 이용하여 다음 시간 단계의 데이터를 결정할 수 있고, 무작위 데이터를 출력하기 위해 D셀(110)의 지연라인(113)의 길이를 변화시켜 클록 주기와 비슷하게 크리티컬 패스(critical path)를 설정하여 제 1 유한상태머신(112) 내부의 플립플롭에 입력할 수 있다.
여기에서, 지연라인(113, 예를 들면, 인버터 체인)을 지날 때 지터 잡음이 발생되고, 발생된 지터 잡음에 의해 현재 또는 직전의 데이터 중 무작위로 플립플롭에 입력될 수 있으며, 제 1 유한상태머신(112) 내부 플립플롭의 준비시간(setup time), 유지시간(hold time) 위반이 발생하여 무작위 데이터가 출력될 수 있을 뿐만 아니라, 본 발명에서는 지연라인(113)을 구성하는 인버터 출력들 중 일정 홀수 개 값들을 취하여 XOR 연산함으로써 지터 잡음에 더욱 민감해지도록 하여 무작위성을 향상시킬 수 있다.
룰박스(120)는 무작위 데이터를 입력으로 하여 다음 시간 단계에서 사용될 천이 규칙을 생성하여 출력할 수 있는데, 영향을 받는 주변 데이터들의 조합을 왼쪽 셀데이터, 자신 셀데이터 및 오른쪽 셀데이터의 순서로 나열한 후에, 다음 시간 단계에서 갖는 다음 셀데이터를 순서대로 읽은 2진수 데이터를 10진수로 변환한 값을 상기 천이 규칙의 이름으로 부여할 수 있다.
그리고, 룰박스(120)는 복수의 천이 규칙을 미리 정의하여 저장하고, D셀(110)에서 입력되는 무작위 데이터를 주소로 하여 복수의 천이 규칙 중 어느 하나가 무작위로 선택되도록 할 수 있으며, 룩업테이블(Look-Up Table) 형태로 제공될 수 있다.
예를 들면, 셀룰러 오토마타는 천이 규칙과 현재의 데이터에 따라 다음 시간 단계의 데이터가 결정될 수 있는데, 도 3에 도시한 바와 같은 1차원 셀룰러 오토마타 구조의 Rule30에서 셀이 가질 수 있는 값이 0 또는 1이고, 1차원 셀 구조를 가지며, 양옆의 셀 데이터에 영향 받는 구조를 나타내며, 영향을 받는 주변 데이터들의 가능한 모든 조합을 왼쪽의 셀 데이터(
Figure 112020011542010-pat00001
), 자신 셀 데이터(
Figure 112020011542010-pat00002
), 오른쪽 셀 데이터(
Figure 112020011542010-pat00003
)의 순서로 나열한 후, 그 조합에 따라 다음 시간 단계에서 갖는 데이터(
Figure 112020011542010-pat00004
)을 순서대로 읽은 2진수 데이터를 10진수로 변환한 값을 천이 규칙의 이름으로 부여할 수 있다.
또한, 복수의 D셀(110, 즉 n개의 D셀)에서 출력되는 무작위 데이터들을 룰박스(120)의 입력으로 사용하고, 룰박스(120)에서는 이 값을 토대로 천이 규칙이 무작위로 결정될 수 있는데, 룰박스(120)에서 천이 규칙을 생성할 때 D셀(110)의 데이터를 변화 없이 그대로 사용하면, 출력되는 난수 값들이 편향성을 띄게 되기 때문에, 이 단점을 제거하기 위해서 룰박스(120)에 몇 가지의 천이 규칙을 미리 정의하여 저장하고, D셀(110)에서 입력되는 데이터를 주소로 사용하여 저장된 천이 규칙 중 하나가 무작위로 선택되도록 할 수 있다.
그리고, 룰박스(120)는 룩업테이블(LUT : Look-Up Table) 형태로 구현할 수 있으며, 천이 규칙의 한 예로 Rule30, Rule45, Rule90, Rule150을 이용할 수 있다. 여기에서, 룰박스(120)의 주소로 사용되는 D셀(110) 출력 데이터의 비트 수, 룰박스(120)에 저장되는 천이 규칙 값 등을 변경할 경우, 생성되는 난수 값의 편향도가 바뀌므로, 룰박스(120)를 바꾸는 것만으로도 생성되는 난수를 유추하기 어려워지는 장점이 있다. 이러한 룰박스(120)의 일 실시 예로서 D셀(110)에서 입력 데이터(LUT의 주소)와 그에 따른 천이 규칙 값을 도 4에 도시한 바와 같이 표로 나타낼 수 있다.
복수의 N셀(130)은 천이 규칙에 따라 다음 시간 단계의 무작위 난수를 생성하여 출력할 수 있는데, 제 2 조합회로(131), 제 2 유한상태머신(132) 등을 각각 포함할 수 있다.
구체적으로 제 2 조합회로(131)는 현재의 천이 규칙에 따라 자신 셀의 현재 데이터와 주변 데이터를 이용하여 다음 시간 단계의 데이터를 결정할 수 있다.
제 2 유한상태머신(132)은 N셀(130)의 동작을 제어하며, 다음 시간 단계의 데이터를 입력으로 하여 무작위 난수를 출력할 수 있다.
예를 들면, 도 5에 도시한 바와 같이 N셀(130)에서는 룰박스(120)에서 입력되는 천이 규칙에 따라 무작위 데이터를 출력할 수 있는데, 입력된 천이 규칙은 N셀(130)의 제 2 조합회로(131)에 입력되며, 입력된 천이 규칙에 따라 제 2 조합회로(131) 내부에서 다음 시간 단계의 데이터가 결정될 수 있다. 이와 같은 구조를 통해 D셀(110) 뿐만 아니라 셀룰러 오토마타의 모든 셀에서 무작위성을 획득할 수 있다.
상술한 바와 같은 본 발병의 무작위 천이 규칙을 적용한 셀룰러 오토마타 (CARR)는 복수의 D셀(110)과 복수의 N셀(130) 그리고 룰박스(120)로 구성될 수 있으며, 룰박스(120)는 D셀(110)의 데이터를 입력받아 N셀(130)의 천이 규칙을 출력할 수 있다. 여기에서, D셀(110)은 내부에 지연라인(delay line, 113)을 갖는 셀이고, N셀(130)은 내부에 지연라인(delay line)을 갖지 않는 셀이다.
상술한 바와 같은 CARR의 동작 원리는, 지연라인(113)을 갖는 복수의 D셀(110)에서 무작위 데이터를 생성하고, 생성된 무작위 데이터를 룰박스(120)에 입력하여 다음 시간 단계에서 사용될 천이 규칙을 출력하며, 룰박스(120)에서 출력된 천이 규칙에 의해 복수의 N셀(130)의 다음 시간 단계의 값을 출력하는 방식으로 동작할 수 있다.
본 발명의 참 난수 생성 장치는 도 3에서 설명한 천이 규칙을 매 시간 단계마다 무작위로 적용하여 무작위 난수를 생성하는데, 도 6에는 무작위 천이 규칙에 의해 난수가 생성되는 동작을 나타내고 있다.
도 6을 참조하면, 가로축은 각 셀의 값 0(흰색) 또는 1(검은색)을 나타내고, 세로축은 매 시간 단계별로 생성되는 데이터를 나타내며, 매 시간 단계마다 적용한 천이 규칙을 그림의 오른쪽에 표시하였다.
여기에서, 도 6의 시작 데이터는 두 경우 모두 동일하지만, 매 시간 단계마다 천이 규칙이 다르게 적용되어 매 시간 단계마다 서로 다른 데이터가 생성되는 것을 확인할 수 있는데, 이 예에서 확인할 수 있듯이 천이 규칙이 다르게 적용될 경우 다른 값이 출력됨을 확인할 수 있으며, 따라서 천이 규칙이 무작위성을 가지면 그 출력 데이터도 무작위성을 갖는다는 점을 알 수 있다.
한편, 도 7은 본 발명의 실시예에 따른 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치의 무작위성 검증을 설명하기 위한 도면이다.
도 7을 참조하면, 설계된 CARR은 Spartan-6 FPGA 디바이스에 구현하여 참 난수 발생기의 하드웨어 동작을 검증하였는데, 설계한 CARR은 지연라인을 이용하여 10 ns와 근사하게 설정하여 무작위성을 부여하였기에 100 MHz의 동작 주파수에서 참 난수 발생기의 기능을 수행할 수 있고, 본 설계에서는 6개의 셀데이터만을 사용하기 때문에 600 Mbps 속도로 난수를 생성할 수 있다.
상술한 바와 같이 설계된 CARR을 이용하여 20 Mbit 데이터를 출력하였고, NIST 800-22 test를 통해 데이터의 무작위성을 검증하였고, 도 7의 (a)와 (b)는 각각 동일한 초기값을 주고 동작시킬 경우 60개 셀의 출력 데이터를 나타낸 것으로, 이를 통해 동일한 조건에서 동작시킬 경우 다른 결과가 출력됨을 확인하였고, CARR이 TRNG로 동작함을 확인하였다.
따라서, 본 발명은 셀룰러 오토마타(cellular automata)에 무작위 천이 규칙을 도입하여 난수를 생성함으로써, 낮은 난수 생성 속도를 향상시킬 수 있을 뿐만 아니라 CARM의 큰 하드웨어 요구량을 감소시킬 수 있다.
또한, 본 발명은 복수의 입력신호에 따라 지연라인을 통해 무작위 데이터를 생성하여 출력하는 복수의 D셀(Dcell)과, 무작위 데이터를 입력으로 하여 다음 시간 단계에서 사용될 천이 규칙을 생성하여 출력하는 룰박스(Rule Box)와, 천이 규칙에 따라 상기 다음 시간 단계의 무작위 난수를 생성하여 출력하는 복수의 N셀(Ncell)을 포함함으로써, 무작위 천이 규칙을 이용하여 효율적인 참 난수를 발생시킬 수 있고, 매 시간 단계마다 원하는 비트의 무작위 난수를 출력할 수 있다.
그리고, 본 발명은 복수의 D셀(Dcell)에 지연라인을 갖도록 하여 무작위 데이터를 출력하고, 그 무작위 데이터가 룰박스에 입력될 경우 룰박스에서 무작위 천이 규칙이 생성되어 지연라인을 갖지 않은 복수의 N셀(Ncell)에 전달되며, 이를 통해 매 시간 단계마다 천이 규칙이 다르게 적용되어 지연라인이 없는 셀에서도 무작위성 데이터가 생성되도록 할 수 있을 뿐만 아니라 지연라인에 XOR 게이트를 추가하여 지터 잡음의 영향을 증폭시켜 무작위성을 증가시킬 수 있다.
아울러, 본 발명은 잡음을 이용하는 방법, 물질의 준안전성, 링 발진기 등과 같은 종래의 기법에 비해 난수 발생 속도를 월등히 향상시킬 수 있으며, 지연라인이 없는 셀의 개수를 줄이고 늘임에 따라 생성되는 난수 양을 쉽게 조절할 수 있을 뿐만 아니라 CARM에 비해 셀 구조가 간단하여 셀의 개수 증가에 따른 하드웨어 효율성을 향상시킬 수 있다.
이상의 설명에서는 본 발명의 다양한 실시예들을 제시하여 설명하였으나 본 발명이 반드시 이에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능함을 쉽게 알 수 있을 것이다.
110 : 복수의 D셀 111 : 제 1 조합회로
112 : 제 1 유한상태머신 113 : 지연라인
114 : XOR 게이트 120 : 룰박스
130 : 복수의 N셀 131 : 제 2 조합회로
132 : 제 2 유한상태머신

Claims (10)

  1. 복수의 입력신호에 따라 지연라인을 통해 무작위 데이터를 생성하여 출력하는 복수의 D셀(Dcell)과,
    상기 무작위 데이터를 입력으로 하여 다음 시간 단계에서 사용될 천이 규칙을 생성하여 출력하는 룰박스(Rule Box)와,
    상기 천이 규칙에 따라 상기 다음 시간 단계의 무작위 난수를 생성하여 출력하는 복수의 N셀(Ncell)
    을 포함하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치.
  2. 제 1 항에 있어서,
    상기 복수의 D셀은 각각,
    상기 천이 규칙에 따라 자신 셀의 현재 데이터와 주변 데이터를 이용하여 상기 다음 시간 단계의 데이터를 결정하는 제 1 조합회로와,
    셀의 현재 데이터를 저장하는 플립플롭(flip-flop)을 포함하며, 상기 D셀의 동작을 제어하여 상기 다음 시간 단계의 데이터를 입력으로 하여 상기 무작위 데이터를 출력하는 제 1 유한상태머신(FSM : finite state machine)과,
    상기 제 1 유한상태머신의 출력 라인에 구비되어 발생된 지터잡음에 따라 현재 또는 직전의 데이터 중 무작위로 상기 플립플롭에 입력시키는 지연라인과,
    상기 지연라인의 출력 라인에 구비되어 복수의 출력 중에서 홀수 개 값들을 취하여 연산하는 XOR게이트
    를 포함하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치.
  3. 제 2 항에 있어서,
    상기 제 1 조합회로는, 상기 무작위 데이터를 출력하기 위해 상기 지연라인의 길이를 변화시키는 방식으로 클록 주기에 대응하여 크리티컬 패스(critical path)를 설정하여 상기 플립플롭에 입력하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치.
  4. 제 3 항에 있어서,
    상기 제 1 유한상태머신은, 상기 플립플롭의 준비시간 및 유지시간에 대한 위반이 발생하여 상기 무작위 데이터를 생성 및 출력하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치.
  5. 제 1 항에 있어서,
    상기 룰박스는, 영향을 받는 주변 데이터들의 조합을 왼쪽 셀데이터, 자신 셀데이터 및 오른쪽 셀데이터의 순서로 나열한 후에, 다음 시간 단계에서 갖는 다음 셀데이터를 순서대로 읽은 2진수 데이터를 10진수로 변환한 값을 상기 천이 규칙의 이름으로 부여하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치.
  6. 제 5 항에 있어서,
    상기 룰박스는, 복수의 천이 규칙을 미리 정의하여 저장하고, 상기 D셀에서 입력되는 상기 무작위 데이터를 주소로 하여 상기 복수의 천이 규칙 중 어느 하나가 무작위로 선택되도록 하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치.
  7. 제 6 항에 있어서,
    상기 룰박스는, 룩업테이블(Look-Up Table) 형태로 제공되는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치.
  8. 제 1 항에 있어서,
    상기 복수의 N셀은 각각,
    상기 천이 규칙에 따라 자신 셀의 현재 데이터와 주변 데이터를 이용하여 상기 다음 시간 단계의 데이터를 결정하는 제 2 조합회로와,
    상기 N셀의 동작을 제어하여 상기 다음 시간 단계의 데이터를 입력으로 하여 상기 무작위 난수를 출력하는 제 2 유한상태머신(FSM)
    을 포함하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 복수의 입력신호는, 클록신호, 리셋신호, 초기값 및 시작신호를 포함하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치.
  10. 제 9 항에 있어서,
    상기 참 난수 생성 장치는, 상기 초기값이 입력될 경우 상기 시작신호에 의해 난수 생성을 시작하며, 매 시간 단계마다 모든 셀의 출력 데이터를 수집하여 상기 무작위 난수를 출력하는 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치.
KR1020200013030A 2020-02-04 2020-02-04 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치 KR102197744B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200013030A KR102197744B1 (ko) 2020-02-04 2020-02-04 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200013030A KR102197744B1 (ko) 2020-02-04 2020-02-04 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치

Publications (1)

Publication Number Publication Date
KR102197744B1 true KR102197744B1 (ko) 2021-01-04

Family

ID=74127199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200013030A KR102197744B1 (ko) 2020-02-04 2020-02-04 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치

Country Status (1)

Country Link
KR (1) KR102197744B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377339A (zh) * 2021-07-09 2021-09-10 广东电网有限责任公司 基于电力物联网的分组编码真随机数生成方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990062338A (ko) * 1997-12-23 1999-07-26 김재겸 셀룰라 오토마타를 이용한 난수 열 발생 시스템과 이를 이용한 데이터 암호화 및 복호화 방법
KR20020004022A (ko) * 2000-06-29 2002-01-16 이상성 다차원 셀룰라 오토마타를 이용한 난수 발생 방법 및 장치
KR101374427B1 (ko) 2008-05-23 2014-03-17 에이저 시스템즈 엘엘시 보안 난수 생성기

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990062338A (ko) * 1997-12-23 1999-07-26 김재겸 셀룰라 오토마타를 이용한 난수 열 발생 시스템과 이를 이용한 데이터 암호화 및 복호화 방법
KR20020004022A (ko) * 2000-06-29 2002-01-16 이상성 다차원 셀룰라 오토마타를 이용한 난수 발생 방법 및 장치
KR101374427B1 (ko) 2008-05-23 2014-03-17 에이저 시스템즈 엘엘시 보안 난수 생성기

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377339A (zh) * 2021-07-09 2021-09-10 广东电网有限责任公司 基于电力物联网的分组编码真随机数生成方法及系统
CN113377339B (zh) * 2021-07-09 2023-07-11 广东电网有限责任公司 基于电力物联网的分组编码真随机数生成方法及系统

Similar Documents

Publication Publication Date Title
Kocarev et al. Pseudorandom bits generated by chaotic maps
Golic New methods for digital generation and postprocessing of random data
Ravichandran et al. Encrypted biography of biomedical image-a pentalayer cryptosystem on FPGA
Tuncer The implementation of chaos-based PUF designs in field programmable gate array
JP5831202B2 (ja) 個体別情報生成装置及び個体別情報生成方法
Merah et al. A pseudo random number generator based on the chaotic system of Chua’s circuit, and its real time FPGA implementation
Tuncer et al. Random number generation with LFSR based stream cipher algorithms
Nguyen et al. Designing a pseudorandom bit generator with a novel five-dimensional-hyperchaotic system
AVAROĞLU et al. A novel S-box-based postprocessing method for true random number generation
CN103049242B (zh) 数字式真随机数发生器电路
Pundir et al. Novel technique to improve strength of weak arbiter PUF
Garipcan et al. Design, FPGA implementation and statistical analysis of a high-speed and low-area TRNG based on an AES s-box post-processing technique
Reddy et al. BHARKS: Built-in hardware authentication using random key sequence
Addabbo et al. The digital tent map: Performance analysis and optimized design as a low-complexity source of pseudorandom bits
KR102197744B1 (ko) 무작위 천이 규칙을 적용한 셀룰러 오토마타 기반 참 난수 생성 장치
Yakut et al. Secure and efficient hybrid random number generator based on sponge constructions for cryptographic applications
Babu et al. Higher dimensional chaos for Audio encryption
Jothi et al. Parallel RC4 Key Searching System Based on FPGA
KR100735953B1 (ko) 일련 번호 생성 장치, 그 방법 및 컴퓨터 판독가능 저장매체
Yadav Design and analysis of digital true random number generator
Garipcan et al. Implementation of a digital TRNG using jitter based multiple entropy source on FPGA
Rubio et al. The Use of Linear Hybrid Cellular Automata as Pseudo Random Bit Generators in Cryptography.
Paul et al. Triple pendulum based nonlinear chaos generator and its applications in cryptography
Klimushyn et al. Crypto-resistant methods and random number generators in internet of things (iot) devices
Garipcan et al. FPGA modeling of a novel fully-synthesizable and secure TRNG based on key-dependent s-box

Legal Events

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