KR101630791B1 - 의사 난수로부터 진성 난수를 생성하는 방법 및 이 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 - Google Patents

의사 난수로부터 진성 난수를 생성하는 방법 및 이 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 Download PDF

Info

Publication number
KR101630791B1
KR101630791B1 KR1020150042949A KR20150042949A KR101630791B1 KR 101630791 B1 KR101630791 B1 KR 101630791B1 KR 1020150042949 A KR1020150042949 A KR 1020150042949A KR 20150042949 A KR20150042949 A KR 20150042949A KR 101630791 B1 KR101630791 B1 KR 101630791B1
Authority
KR
South Korea
Prior art keywords
random number
pseudo
generating
intrinsic
function
Prior art date
Application number
KR1020150042949A
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 KR1020150042949A priority Critical patent/KR101630791B1/ko
Application granted granted Critical
Publication of KR101630791B1 publication Critical patent/KR101630791B1/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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Abstract

본 발명은 의사 난수로부터 진성 난수를 생성하는 방법 및 이 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
본 발명은 시드(seed)를 제1 의사 난수 함수에 적용하여 1차 의사 난수 집합을 생성하는 1차 의사난수집합 생성단계, 상기 1차 의사 난수 집합에 포함된 1차 의사 난수에 위치번호를 부여하는 위치번호 부여단계, 상기 1차 의사 난수에 제2 의사 난수 함수를 적용하여 2차 의사 난수 집합을 생성하는 2차 의사난수집합 생성단계 및 상기 2차 의사 난수 집합에 포함된 2차 의사 난수에 대응하는 위치번호를 갖는 1차 의사 난수를 추출하여 진성 난수를 생성하는 진성난수 생성단계를 포함한다.
본 발명에 따르면, 실질적으로 진성 난수(True Random Number)와 동일한 수준의 무작위성(Randomness)이 보장되는 난수를 컴퓨터상에서 소프트웨어적으로 생성하는 방법이 제공되는 효과가 있다.

Description

의사 난수로부터 진성 난수를 생성하는 방법 및 이 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체{METHOD OF GENERATING TRUE RANDOM NUMBER FROM PSEUDO RANDOM NUMBER AND COMPUTER READABLE MEDIUM}
본 발명은 의사 난수로부터 진성 난수를 생성하는 방법 및 이 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다. 보다 구체적으로, 본 발명은 실질적으로 진성 난수와 동일한 수준의 무작위성(Randomness)이 보장되는 난수를 컴퓨터상에서 소프트웨어적으로 생성하는 방법에 관한 것이다.
일반적으로 진성 난수(True Random Number)는 무작위성(randomness)을 갖는 수로 정의할 수 있다.
무작위성(Randomness)은 아래의 세 가지 조건을 모두 충족시켜야 한다.
첫째, 균일분포 원칙을 충족시켜야 한다. 균일분포 원칙은 주어진 숫자 집합의 각 원소가 나올 확률이 모두 동일해야 하는 원칙이다.
즉, 집합 A={0,1,2,3,4,5,6,7,8,9}인 경우, 숫자를 하나 뽑을 때 0~9까지의 숫자가 뽑힐 확률이 모두 1/10로 동일하면, 균일분포의 원칙이 충족된다. 즉, P(0)=P(1)=P(2)=P(3)=P(4)=P(5)=P(6)=P(7)=P(8)=P(9)=1/10인 경우이다. 만일, 집합 B={00,01,02.........98,99}인 경우에는 P(00)=P(01)=P(02)=...=P(99)=1/100이 되어야 균일분포의 원칙이 충족된다.
둘째, 예측 불가능성 원칙이 충족되어야 한다. 예측 불가능성 원칙은 숫자를 추출하는 경우 어느 숫자가 뽑힐지 예측할 수 없어야 한다는 원칙이다.
숫자를 추출하기 위한 미리 정해진 규칙이 있으면 그 정해진 규칙에 따라 어떤 숫자가 추출될지 알 수 있다. 따라서, 이 경우는 그 규칙을 모르는 사람의 입장에서 예측 불가하다고 할 수 있으나, 본질적으로는 예측 불가능성 원칙에 위배된다.
셋째, 독립성 원칙이 충족되어야 한다. 독립성 원칙은 순서상 앞에 추출된 수와 뒤에 추출된 수간의 아무런 연관성이 없어야 한다는 원칙이다.
예를 들어, 앞에서 추출된 수에 어떤 영향을 받아 뒤에 추출되는 수가 결정된다면, 뒤에 추출되는 수에 대한 예측가능성이 발생하므로 독립성의 원칙에 위배된다.
한편, 의사 난수(Pseudo Random Number)는 의사 난수 생성기에 의해 생성되는 것으로서, 초기값인 시드(seed)와 알고리즘을 알면 계산될 수도 있기 때문에 진성 난수와는 구별된다.
컴퓨터에 의해 생성된 모든 난수는 의사 난수이다. 컴퓨터는 계산된 결과만 가지고 난수를 생성할 수 있는데 이 계산된 결과는 입력값에 의해 결정된 값이기 때문에 이 값을 가지고는 진성 난수를 생성할 수 없다. 컴퓨터의 최초 시동시 난수표가 생성되어 컴퓨터내에 보관된다. 하지만 컴퓨터 프로그래밍에서 매번 같은 방법으로 이 값을 가지고 오려고 한다면, 매번 그 값은 같기 때문에 최초 한번 호출할 때를 제외하고는 난수라고 볼 수 없다. 그래서 매번 다른 시드값을 주어, 매번 다른 의사 난수를 추출하여 사용한다. 이 시드는 보통 시간을 이용한다. 여기서 시간은 보통 현재 시간을 의미한다. 매 순간 현재시간이 바뀌며 한 번 지나간 시간은 다시 돌아오지 않는다는 특성은 이전에 발생했던 의사 난수 또는 의사 난수열을 재현 불가능하게 만들며, 이 시간이 밀리초 단위로 섬세하게 표현된다면 사람에 의한 임의적 조작도 사실상 불가능해진다고 볼 수 있다.
하지만 근본적으로 시드를 기반으로 한 랜덤함수는 확률에 있어서 완전히 무작위라고 보기가 힘들다. 물론 일반적인 경우 시드 값만 바꿔주면 충분히 무작위처럼 보이는 효과를 낼 수 있다. 예를 들어, 32비트 기반이라면 시드의 개수가 232이고, 패턴의 수도 시드의 개수에 대응한다. 이 값은 충분히 커 보이지만, 무한하지 않기 때문에, 완전한 의미의 무작위성은 보장되지 않는다는 문제가 있다.
따라서, 종래의 의사 난수 생성방식이 갖는 한계 즉, 진성한 의미의 무작위성이 보장되지 않는다는 문제점을 극복할 수 있는 방안이 시급히 요구된다.
대한민국 공개특허공보 제10-2003-0054756호(공개일자: 2003년 07월 02일, 명칭: 의사 난수 발생 장치 및 방법) 대한민국 공개특허공보 제10-2005-0084153호(공개일자: 2005년 08월 26일, 명칭: 진성한 난수 생성 방법 및 시스템)
본 발명은 실질적으로 진성 난수(True Random Number)와 동일한 수준의 무작위성(Randomness)이 보장되는 난수를 컴퓨터상에서 소프트웨어적으로 생성하는 방법을 제공하는 것을 기술적 과제로 한다.
또한, 본 발명은 시드(seed)와 의사 난수 함수 중 하나 이상이 노출되어도 동일하게 재현할 수 없는 난수를 컴퓨터상에서 소프트웨어적으로 생성하는 방법을 제공하는 것을 기술적 과제로 한다.
본 발명에 따른 의사 난수(Pseudo Random Number)로부터 진성 난수(True Random Number)를 생성하는 방법은 시드(seed)를 제1 의사 난수 함수에 적용하여 1차 의사 난수 집합을 생성하는 1차 의사난수집합 생성단계, 상기 1차 의사 난수 집합에 포함된 1차 의사 난수에 위치번호를 부여하는 위치번호 부여단계, 상기 1차 의사 난수 집합에 제2 의사 난수 함수를 적용하여 2차 의사 난수 집합을 생성하는 2차 의사난수집합 생성단계 및 상기 2차 의사 난수 집합에 포함된 2차 의사 난수에 대응하는 위치번호를 갖는 1차 의사 난수를 추출하여 진성 난수를 생성하는 진성난수 생성단계를 포함한다.
본 발명에 따른 의사 난수로부터 진성 난수를 생성하는 방법에 있어서, 상기 위치번호 부여단계에서는, 상기 1차 의사 난수 집합에 포함된 1차 의사 난수의 생성순서에 따라 상기 1차 의사 난수에 상기 위치번호를 부여하는 것을 특징으로 한다.
본 발명에 따른 의사 난수로부터 진성 난수를 생성하는 방법에 있어서, 상기 2차 의사 난수의 개수는 상기 1차 의사 난수의 위치번호의 자릿수 이상이고 상기 1차 의사 난수의 개수 이하인 것을 특징으로 하는, 의사 난수로부터 진성 난수를 생성하는 방법.
본 발명에 따른 의사 난수로부터 진성 난수를 생성하는 방법에 있어서, 상기 진성난수 생성단계에서는, 상기 2차 의사 난수와 일치하는 위치번호를 갖는 1차 의사 난수를 상기 진성 난수로 추출하거나, 상기 2차 의사 난수를 기 설정된 변환함수에 대입하여 획득한 결과값과 일치하는 위치번호를 갖는 1차 의사 난수를 상기 진성 난수로 추출하는 것을 특징으로 한다.
본 발명에 따른 의사 난수로부터 진성 난수를 생성하는 방법에 있어서, 상기 제1 의사 난수 함수와 상기 제2 의사 난수 함수는 동일한 함수이거나 상이한 함수인 것을 특징으로 한다.
본 발명에 따른 컴퓨터로 읽을 수 있는 기록매체에는 본 발명에 따른 의사 난수로부터 진성 난수를 생성하는 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록되어 있다.
본 발명에 따르면, 실질적으로 진성 난수(True Random Number)와 동일한 수준의 무작위성(Randomness)이 보장되는 난수를 컴퓨터상에서 소프트웨어적으로 생성하는 방법이 제공되는 효과가 있다.
또한, 시드(seed)와 의사 난수 함수 중 하나 이상이 노출되어도 동일하게 재현할 수 없는 난수를 컴퓨터상에서 소프트웨어적으로 생성하는 방법이 제공되는 효과가 있다.
도 1은 본 발명의 일 실시 예에 따른 의사 난수로부터 진성 난수를 생성하는 방법을 나타낸 도면이다.
도 2는 본 발명의 일 실시 예에 따른 의사 난수로부터 진성 난수를 생성하는 방법이 실행되는 장치 구성의 예를 나타낸 도면이다.
도 3은 본 발명의 일 실시 예에 있어서, 진성 난수가 생성되는 구체적인 과정을 예시한 도면이다.
이하에서는 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 의사 난수(Pseudo Random Number)로부터 진성 난수(True Random Number)를 생성하는 방법을 나타낸 도면이고, 도 2는 본 발명의 일 실시 예에 따른 의사 난수로부터 진성 난수를 생성하는 방법이 실행되는 장치 구성의 예를 나타낸 도면이다.
도 1 및 도 2를 참조하면, 본 발명의 일 실시 예에 따른 의사 난수로부터 진성 난수를 생성하는 방법은 1차 의사난수집합 생성단계(S10), 위치번호 부여단계(S20), 2차 의사난수집합 생성단계(S30) 및 진성난수 생성단계(S40)를 포함하여 구성된다. 본 발명의 일 실시 예는 의사 난수를 이용하여 진성 난수를 생성하는 프로그램으로 구현될 수 있으며, 이하에서 설명할 진성 난수 생성 과정은 사용자가 컴퓨터에 설치된 프로그램 즉, 난수 생성기를 실행시킨 경우 자동적으로 수행되도록 구성될 수 있다. 본 발명의 일 실시 예에 따라 획득되는 난수는 소프트웨어적으로 생성된다는 측면에서는, 사전적 의미에서의 진성 난수(True Random Number)가 아니라고 할 수도 있지만, 실질적으로 진성 난수와 동일한 수준의 무작위성(Randomness)이 보장된다. 따라서, 본 발명의 일 실시 예에 따라 획득되는 난수에 진성 난수라는 명칭을 부여하였음을 밝혀둔다.
1차 의사난수집합 생성단계(S10)에서는, 1차 의사난수집합 생성부(10)가 시드(seed)를 제1 의사 난수 함수에 적용하여 1차 의사 난수 집합을 생성하는 과정이 수행된다.
시드는 1차 의사 난수 생성을 위해 초기에 입력되는 값이며, 외부에서 예측 불가능한 조건을 충족시키는 임의의 값이 될 수 있다. 예를 들어, 이러한 시드는 랜덤(random)한 소스(source)로부터 도출되는 값일 수 있으며, 사용자가 난수 생성기를 실행시킨 시점, 사용자에 의한 키보드 입력 타이밍 패턴이나 마우스의 움직임 패턴 등을 이용하여 생성된 난수가 시드로 적용될 수 있다. 물론 이들 이외에도, 외부에서 예측 불가능한 조건을 충족시키는 임의의 값이 시드로 적용될 수 있다.
예를 들어, 제1 의사 난수 함수로는 DES, RC4, MD5, SHA, RSA 등이 적용될 수 있다. 이들 이외에도, 균일분포의 원칙을 충족시키는 다양한 의사 난수 함수가 제1 의사 난수 함수로 적용될 수 있다.
1차 의사 난수 집합에 포함된 원소의 개수 즉, 1차 의사 난수의 개수는 필요에 따라 결정될 수 있다.
위치번호 부여단계(S20)에서는, 위치번호 부여부(20)가 1차 의사 난수 집합에 포함된 1차 의사 난수에 위치번호를 부여하는 과정이 수행된다.
예를 들어, 위치번호 부여단계(S20)는, 1차 의사 난수 집합에 포함된 1차 의사 난수의 생성순서에 따라, 1차 의사 난수에 위치번호를 부여하도록 구성될 수 있다. 보다 구체적으로, 1차 의사 난수 집합에 포함된 1차 의사 난수의 개수가 100인 경우, 첫번째로 생성된 1차 의사 난수의 위치번호는 00이고, 두번째로 생성된 1차 의사 난수의 위치번호는 01이고, 세번째로 생성된 1차 의사 난수의 위치번호는 02이고, 마지막인 100번째로 생성된 1차 의사 난수의 위치번호는 99가 될 수 있다.
2차 의사난수집합 생성단계(S30)에서는, 2차 의사난수집합 생성부(30)가 1차 의사 난수 집합에 제2 의사 난수 함수를 적용하여 2차 의사 난수 집합을 생성하는 과정이 수행된다. 제1 의사 난수 함수와 마찬가지로, 제2 의사 난수 함수로는 DES, RC4, MD5, SHA, RSA 등이 적용될 수 있다. 이들 이외에도, 균일분포의 원칙을 충족시키는 다양한 의사 난수 함수가 제2 의사 난수 함수로 적용될 수 있다. 제1 의사 난수 함수와 제2 의사 난수 함수는 동일한 함수이거나 상이한 함수일 수 있다.
예를 들어, 2차 의사 난수의 모집단에 속한 난수의 개수는 1차 의사 난수의 위치번호 개수의 배수이고, 추출된 2차 의사 난수의 개수는 1차 의사 난수의 개수 이하인 것이 바람직하다. 1차 의사 난수의 개수가 100이면, 1차 의사 난수의 위치번호의 개수 역시 100이 되고, 2차 의사 난수의 모집단에 속한 원소의 개수는 100의 배수가 된다. 만일 1차 의사 난수의 개수가 1000이면, 1차 의사 난수의 위치번호의 개수 역시 1,000이 되고, 2차 의사 난수의 모집단에 속한 원소의 개수는 1000의 배수가 된다.
1차 의사 난수의 개수가 100이고, 1차 의사 난수의 위치번호의 자릿수가 2인 경우, 2차 의사 난수의 개수는 2 이상 100 이하이다. 2차 의사 난수의 개수가 2 이상이 되어야 하는 이유는 1차 의사 난수의 위치번호의 자릿수 2이기 때문이다. 만일 1차 의사 난수의 개수가 1000이고, 1차 의사 난수의 위치번호의 자릿수가 3인 경우에는, 2차 의사 난수의 개수는 3 이상 1000 이하이다.
진성난수 생성단계(S40)에서는, 진성난수 생성부(40)가 2차 의사 난수 집합에 포함된 2차 의사 난수에 대응하는 위치번호를 갖는 1차 의사 난수를 추출하여 진성 난수를 생성하는 과정이 수행된다.
하나의 예로, 진성난수 생성단계(S40)는, 2차 의사 난수와 일치하는 위치번호를 갖는 1차 의사 난수를 진성 난수로 추출하도록 구성될 수 있다. 구체적인 예로, 2차 의사 난수로 생성된 숫자가 96이고, 96번째로 생성된 1차 의사 난수 즉, 위치번호가 96인 1차 의사 난수가 7인 경우, 7이 진성 난수가 된다.
다른 예로, 진성난수 생성단계(S40)는, 2차 의사 난수를 기 설정된 변환함수에 대입하여 획득한 결과값과 일치하는 위치번호를 갖는 1차 의사 난수를 진성 난수로 추출하도록 구성될 수 있다. 구체적인 예로, 2차 의사 난수로 생성된 숫자가 96인 경우, 96의 제곱근을 연산하여 9.7958...을 획득하고, 이 값의 소수점 두번째 수인 9와 소수점 4번째 수인 8을 조합한 98을 획득한다. 여기서, 98번째로 생성된 1차 의사 난수 즉, 위치번호가 98인 1차 의사 난수가 1인 경우, 1이 진성 난수가 된다.
이하에서는, 도 3을 추가적으로 참조하여 진성 난수가 생성되는 구체적인 과정의 예를 설명한다.
도 3의 (a)는 1차 의사난수집합 생성부(10)에 의해 생성된 1차 의사 난수를 그 생성순서에 따라 배열한 예를 개시하고 있다. 즉 이 경우, 1차 의사난수집합(A)은 {3, 7, 0, 1, 2, ..., 7, 3, 1, 4}이고, 개수는 100이다.
도 3의 (b)는 위치번호 부여부(20)가 1차 의사난수집합(A)에 포함된 1차 의사 난수들에 위치번호들을 부여한 예를 개시하고 있다. 즉 이 경우, 첫번째로 생성된 1차 의사 난수인 3의 위치번호는 00이고, 두번째로 생성된 1차 의사 난수인 7의 위치번호는 01이고, 세번째로 생성된 1차 의사 난수인 0의 위치번호는 02이고, 네번째로 생성된 1차 의사 난수인 1의 위치번호는 03이고, 97번째로 생성된 1차 의사 난수인 7의 위치번호는 96이고, 98번째로 생성된 1차 의사 난수인 3의 위치번호는 97이고, 99번째로 생성된 1차 의사 난수인 1의 위치번호는 98이고, 마지막인 100번쩨로 생성된 1차 의사 난수인 4의 위치번호는 99이다.
도 3의 (c)는 2차 의사난수집합 생성부(30)에 의해 생성된 2차 의사 난수를 배열한 예를 개시하고 있다. 즉 이 경우, 2차 의사난수집합(B)은 {31, 8, 96, 7, 20, ..., 61, 57, 49, 89}이고, 2차 의사난수집합(B)의 원소의 개수는 1 이상 100 이하가 될 수 있다.
도 3의 (d)는 진성난수 생성부(40)에 의해 추출된 진성 난수의 예를 개시하고 있다. 즉 이 경우, 2차 의사 난수 96에 대응하는 위치번호를 갖는 1차 의사 난수인 7이 진성 난수로 추출된다.
이하에서는 본 실시 예에 따라 2차 의사 난수를 이용하여 1차 의사 난수의 위치번호를 찾고, 해당 위치번호를 갖는 1차 의사 난수를 추출하는 경우, 추출된 1차 의사 난수가 진성 난수가 되는 이유에 대하여 구체적으로 설명한다.
첫째, 기본적으로 1차 및 2차 의사 난수는 균일분포 원칙을 충족시킨다. 즉, 1차 및 2차 의사 난수는 균일분포가 검증된 의사 난수 함수(Pseudo Random Function)를 사용하여 추출한 것이다.
둘째, 예측 불가능성 원칙을 충족시킨다. 이를 구체적으로 설명하면 다음과 같다. 2차 의사 난수는 1차 의사 난수 집합에 포함된 1차 의사 난수들의 위치번호가 되기 때문에 2차 의사 난수로부터 추출되는 1차 의사 난수는 예측이 불가능하다. 통상의 의사 난수 생성방법은 특정한 규칙(알고리즘이나 함수)을 이용하여 난수를 추출하므로, 그 규칙에 따라 추출될 숫자가 예측 가능하다는 점에서 진성 난수가 될 수 없다. 반면, 본 발명의 일 실시 예는 비록 2차 의사 난수가 1차 의사 난수를 추출하는 규칙이기는 하지만 그 규칙으로부터 1차 난수를 예측할 수 없다는 특징을 갖고 있다.
셋째, 독립성의 원칙을 충족시킨다. 이를 구체적으로 설명하면 다음과 같다. 1차 의사 난수 집합에서 난수를 추출할 때 추출될 난수의 위치를 결정하는 값인 2차 의사 난수를 반복하여 발생시킬 때 첫번째 발생시킨 2차 의사난수와 독립적 시행을 통해 두번째 의사 난수를 발생시키는 방식을 사용하면, 위치값이 되는 두 숫자 간에 독립성이 확보되므로 1차 난수 집합에서 첫번째로 특정되는 숫자와 두번 째로 특정되는 숫자 간의 독립성이 확보된다. 또한, 2차 의사 난수에서 두 개의 위치번호를 동시에 추출한다고 하여도 두 개의 2차 의사 난수가 서로 독립적이지 않을 수 있으나 두 개의 2차 의사 난수의 위치에 있는 두 개의 1차 의사 난수는 서로 독립적이다. 왜냐하면 위치번호와 그 위치에 해당하는 1차 의사 난수는 아무런 상관관계가 없기 때문이다.
본 발명의 일 실시 예에 따른 컴퓨터로 읽을 수 있는 기록매체에는 앞서 상세히 설명한 본 발명의 일 실시 예에 따른 의사 난수로부터 진성 난수를 생성하는 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록되어 있다. 기록매체는 데이터를 전기적으로 기록할 수 있다는 조건을 충족시키면, 어떠한 매체라도 본 실시 예에 적용 가능하다.
이상에서 상세히 설명한 바와 같이 본 발명에 따르면, 실질적으로 진성 난수(True Random Number)와 동일한 수준의 무작위성(Randomness)이 보장되는 난수를 컴퓨터상에서 소프트웨어적으로 생성하는 방법이 제공되는 효과가 있다.
또한, 시드(seed)와 의사 난수 함수 중 하나 이상이 노출되어도 동일하게 재현할 수 없는 난수를 컴퓨터상에서 소프트웨어적으로 생성하는 방법이 제공되는 효과가 있다.
이상에서 본 발명에 대한 기술사상을 첨부된 도면과 함께 서술하였지만 이는 본 발명의 바람직한 실시 예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술 분야의 통상의 지식을 가진 자라면 누구나 본 발명의 기술사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.
10: 1차 의사난수집합 생성부
20: 위치번호 부여부
30: 2차 의사난수집합 생성부
40: 진성난수 생성부
S10: 1차 의사난수집합 생성단계
S20: 위치번호 부여단계
S30: 2차 의사난수집합 생성단계
S40: 진성난수 생성단계

Claims (5)

  1. 의사 난수(Pseudo Random Number)로부터 진성 난수(True Random Number)를 생성하는 방법에 있어서,
    1차 의사난수집합 생성부가 시드(seed)를 제1 의사 난수 함수에 적용하여 1차 의사 난수 집합을 생성하는 1차 의사난수집합 생성단계;
    위치번호 부여부가 상기 1차 의사 난수 집합에 포함된 1차 의사 난수에 위치번호를 부여하는 위치번호 부여단계;
    2차 의사난수집합 생성부가 상기 1차 의사 난수 집합에 제2 의사 난수 함수를 적용하여 2차 의사 난수 집합을 생성하는 2차 의사난수집합 생성단계; 및
    진성난수 생성부가 상기 2차 의사 난수 집합에 포함된 2차 의사 난수에 대응하는 위치번호를 갖는 1차 의사 난수를 추출하여 진성 난수를 생성하는 진성난수 생성단계를 포함하는, 의사 난수로부터 진성 난수를 생성하는 방법.
  2. 제1항에 있어서,
    상기 위치번호 부여단계에서는,
    상기 1차 의사 난수 집합에 포함된 1차 의사 난수의 생성순서에 따라 상기 1차 의사 난수에 상기 위치번호를 부여하는 것을 특징으로 하는, 의사 난수로부터 진성 난수를 생성하는 방법.
  3. 제1항에 있어서,
    상기 진성난수 생성단계에서는,
    상기 2차 의사 난수와 일치하는 위치번호를 갖는 1차 의사 난수를 상기 진성 난수로 추출하거나,
    상기 2차 의사 난수를 기 설정된 변환함수에 대입하여 획득한 결과값과 일치하는 위치번호를 갖는 1차 의사 난수를 상기 진성 난수로 추출하는 것을 특징으로 하는, 의사 난수로부터 진성 난수를 생성하는 방법.
  4. 제1항에 있어서,
    상기 제1 의사 난수 함수와 상기 제2 의사 난수 함수는 동일한 함수이거나 상이한 함수인 것을 특징으로 하는, 의사 난수로부터 진성 난수를 생성하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 기재된 의사 난수로부터 진성 난수를 생성하는 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
KR1020150042949A 2015-03-27 2015-03-27 의사 난수로부터 진성 난수를 생성하는 방법 및 이 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 KR101630791B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150042949A KR101630791B1 (ko) 2015-03-27 2015-03-27 의사 난수로부터 진성 난수를 생성하는 방법 및 이 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150042949A KR101630791B1 (ko) 2015-03-27 2015-03-27 의사 난수로부터 진성 난수를 생성하는 방법 및 이 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체

Publications (1)

Publication Number Publication Date
KR101630791B1 true KR101630791B1 (ko) 2016-06-16

Family

ID=56354978

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150042949A KR101630791B1 (ko) 2015-03-27 2015-03-27 의사 난수로부터 진성 난수를 생성하는 방법 및 이 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체

Country Status (1)

Country Link
KR (1) KR101630791B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210043916A (ko) * 2019-10-14 2021-04-22 한국전력공사 난수용 시드 생성 장치 및 그 방법
CN113377338A (zh) * 2021-07-09 2021-09-10 广东电网有限责任公司 基于电力物联网的自反馈真随机数生成方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030054756A (ko) 2001-12-26 2003-07-02 한국전자통신연구원 의사 난수 발생 장치 및 방법
KR20050084153A (ko) 2002-12-05 2005-08-26 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 진정한 난수 생성 방법 및 시스템
JP2007287079A (ja) * 2006-04-20 2007-11-01 Fujitsu Fip Corp 擬似乱数生成装置、擬似乱数生成方法および擬似乱数生成プログラム並びに暗号化装置および復号化装置
JP2008177654A (ja) * 2007-01-16 2008-07-31 Sony Corp データ処理装置、およびデータ処理方法、並びにコンピュータ・プログラム
JP2009098869A (ja) * 2007-10-16 2009-05-07 Kyocera Mita Corp 情報処理装置
KR20130006195A (ko) * 2011-07-08 2013-01-16 삼성전자주식회사 메모리 컨트롤러, 이의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 전자 장치들

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030054756A (ko) 2001-12-26 2003-07-02 한국전자통신연구원 의사 난수 발생 장치 및 방법
KR20050084153A (ko) 2002-12-05 2005-08-26 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 진정한 난수 생성 방법 및 시스템
JP2007287079A (ja) * 2006-04-20 2007-11-01 Fujitsu Fip Corp 擬似乱数生成装置、擬似乱数生成方法および擬似乱数生成プログラム並びに暗号化装置および復号化装置
JP2008177654A (ja) * 2007-01-16 2008-07-31 Sony Corp データ処理装置、およびデータ処理方法、並びにコンピュータ・プログラム
JP2009098869A (ja) * 2007-10-16 2009-05-07 Kyocera Mita Corp 情報処理装置
KR20130006195A (ko) * 2011-07-08 2013-01-16 삼성전자주식회사 메모리 컨트롤러, 이의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 전자 장치들

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210043916A (ko) * 2019-10-14 2021-04-22 한국전력공사 난수용 시드 생성 장치 및 그 방법
KR102359509B1 (ko) * 2019-10-14 2022-02-09 한국전력공사 난수용 시드 생성 장치 및 그 방법
CN113377338A (zh) * 2021-07-09 2021-09-10 广东电网有限责任公司 基于电力物联网的自反馈真随机数生成方法及系统
CN113377338B (zh) * 2021-07-09 2023-07-14 广东电网有限责任公司 基于电力物联网的自反馈真随机数生成方法及系统

Similar Documents

Publication Publication Date Title
US10635399B2 (en) Stochastic processing
EP2388730A1 (en) Method for generating software code
KR20090024804A (ko) 난수 발생기 시스템, 난수 생성 방법 및 컴퓨터 판독가능 매체
JP2013524305A (ja) サイドチャネル攻撃および反復起動攻撃に耐える動的可変タイミング演算パスのシステムおよび方法
KR20160008560A (ko) 데이터 암호화 시스템 및 방법
CN102063285A (zh) 一种软件实现的真随机数产生方法
KR101630791B1 (ko) 의사 난수로부터 진성 난수를 생성하는 방법 및 이 방법을 컴퓨터상에서 실행할 수 있는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
Nguyen et al. Designing a pseudorandom bit generator with a novel five-dimensional-hyperchaotic system
EP2002330B1 (en) Method and apparatus for generating random numbers
US20080005532A1 (en) Random number generator and random number generating method
JP2021515314A (ja) コンパイルデバイス及び方法
US20190197216A1 (en) Method, apparatus, and computer-readable medium for executing a logic on a computing device and protecting the logic against reverse engineering
EP3918494A1 (en) Systems, methods, and storage media for obfuscating a computer program by representing the control flow of the computer program as data
CA3150187C (en) Method and apparatus for protecting web script codes
WO2016133573A2 (en) Systems and methods for generating random numbers using physical variations present in material samples
JP2010267209A (ja) 検証支援プログラム、検証支援装置および検証支援方法
CN111078413A (zh) 一种定时任务的执行方法、装置、计算机设备及存储介质
JP6203028B2 (ja) 疑似乱数生成装置及び方法、並びにプログラム難読化装置及び方法
CN106470108B (zh) 一种生成目标事件的口令的方法及装置
JP4160150B2 (ja) 遊技機用乱数装置
JP5455664B2 (ja) 擬似乱数生成装置及び擬似乱数生成用プログラム
WO2014125639A1 (ja) 制御プログラム管理装置及びコントローラ装置及び制御システム
CN106708593B (zh) 一种程序链接的编译方法及装置
Chen Uniform Random Number Generation With Jumping Facilities
GB2521358A (en) Passcode determination or verification

Legal Events

Date Code Title Description
GRNT Written decision to grant