KR101625857B1 - 난수 생성 장치 및 그 방법 - Google Patents

난수 생성 장치 및 그 방법 Download PDF

Info

Publication number
KR101625857B1
KR101625857B1 KR1020090027043A KR20090027043A KR101625857B1 KR 101625857 B1 KR101625857 B1 KR 101625857B1 KR 1020090027043 A KR1020090027043 A KR 1020090027043A KR 20090027043 A KR20090027043 A KR 20090027043A KR 101625857 B1 KR101625857 B1 KR 101625857B1
Authority
KR
South Korea
Prior art keywords
random number
noise
bit
random
digital signals
Prior art date
Application number
KR1020090027043A
Other languages
English (en)
Other versions
KR20100108815A (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 KR1020090027043A priority Critical patent/KR101625857B1/ko
Priority to US12/749,689 priority patent/US8996596B2/en
Publication of KR20100108815A publication Critical patent/KR20100108815A/ko
Application granted granted Critical
Publication of KR101625857B1 publication Critical patent/KR101625857B1/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
    • 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
    • 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)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

난수 생성 속도를 향상시킬 수 있는 난수 생성 장치 및 그 방법이 제공된다. 본 발명의 실시예에 따른 난수 생성 방법은, 다양한 스토리지 장치 내에 존재하는 복수 개의 디지털 신호들에 기초하여 난수를 생성함으로써 난수 생성 속도를 상당히 증가시킬 수 있다.

Description

난수 생성 장치 및 그 방법{Apparatus for generating a random number and method thereof}
본 발명에 따른 실시예는 데이터 암호화 기술에 관한 것으로서, 보다 구체적으로 암호화에 사용되는 키를 생성하고자 하는 경우에 상기 키를 구성하는 난수를 보다 신속하고 효율적으로 생성할 수 있는 난수 생성 장치 및 그 방법에 관한 것이다.
난수 생성기는 난수(random number)를 생성하기 위한 장치이며, 이러한 난수 생성기에서 생성된 난수는 메시지를 암호화하는 장치나 사용자 인증 장치 등에서 사용될 수 있다. 예컨대, 공개키(public key)를 이용한 인증 방식에서는 사용자가 난수 생성기에 의해 생성된 난수를 공개키에 의해 암호화하여 서버로 전송하면 서버는 비밀키(secret key)에 의해 암호값을 복호화하고 복호화된 결과와 난수가 일치할 경우 정당한 사용자인 것으로 인증하게 된다.
한편, 최근에 들어 하드 디스크 드라이브는 랜덤 액세스가 가능하고 데이터 전송 속도가 우수하며 다른 보조 기억 장치들에 비해 저가이면서도 대용량화가 용이하다는 장점으로 인하여 멀티미디어 데이터 저장을 위해 많이 사용되고 있는 추세이다.
이러한 하드 디스크 드라이브의 사용이 증가함에 따라 하드 디스크 드라이브에 저장된 데이터에 대한 보안 문제가 중요한 이슈로 떠오르고 있으며, 따라서 하드 디스크 드라이브에 저장된 데이터 등을 암호화하거나 사용자 인증 등의 절차를 수행하는 경우가 상당히 증가하고 있다.
하지만, 상기 암호화 또는 사용자 인증 등에 필요한 난수를 생성함에 있어서 난수 생성 속도의 한계가 존재하고, 이는 암호화 시스템 또는 보안 시스템의 성능을 향상시키는데 있어서 제약 사항이 되고 있다.
본 발명은 상기의 문제점을 해결하고자 안출된 것으로서, 본 발명에 따른 실시예는 난수의 생성 속도를 증가시킬 수 있는 난수 생성 장치 및 그 방법을 제공하는 것을 목적으로 한다.
상기의 기술적 과제를 해결하기 위한 난수 생성 방법은, (a) 스토리지 장치 내에 존재하는 복수 개의 디지털 신호들을 추출하는 단계; 및 b) 추출된 상기 복수 개의 디지털 신호들을 이용하여 난수를 생성하는 단계를 포함할 수 있다.
상기 난수를 생성하는 단계는, b-1) 추출된 상기 복수 개의 디지털 신호들 각각으로부터 노이즈 비트를 추출하는 단계; b-2) 추출된 상기 노이즈 비트를 이용하여 랜덤 워드를 생성하는 단계; 및 b-3) 생성된 상기 랜덤 워드를 적어도 한번 샘플링하여 상기 난수를 생성하는 단계를 포함할 수 있다.
상기 노이즈 비트를 추출하는 단계는, 추출된 상기 복수 개의 디지털 신호들 각각의 최하위 비트로부터 상기 노이즈 비트를 추출하는 단계일 수 있다.
상기 난수 생성 방법은, (c) 생성된 상기 난수가 소수인지 여부를 판단하는 단계; 및 (d) 판단 결과 생성된 상기 난수가 소수가 아니면 상기 (a) 단계 내지 상기 (c) 단계를 반복하는 단계를 더 포함할 수 있다.
상기의 기술적 과제를 해결하기 위한 난수 생성 장치는, 스토리지 장치 내에 존재하는 복수 개의 디지털 신호들을 추출하기 위한 신호 추출부; 및 상기 신호 추출부에서 추출된 상기 복수 개의 디지털 신호들에 기초하여 난수를 생성하기 위한 난수 생성부를 포함할 수 있다.
상기 난수 생성부는, 상기 복수 개의 디지털 신호들 각각으로부터 노이즈 비트를 추출하기 위한 노이즈 비트 추출부; 상기 노이즈 비트 추출부에서 추출된 상기 노이즈 비트를 이용하여 랜덤 워드를 생성하기 위한 랜덤 워드 생성부; 및 상기 랜덤 워드 생성부에서 생성된 상기 랜덤 워드를 샘플링하여 상기 난수를 생성하기 위한 샘플링부를 포함할 수 있다.
상기 노이즈 비트 추출부는, 상기 복수 개의 디지털 신호들 각각의 최하위비트로부터 상기 노이즈 비트를 추출할 수 있다.
상기 샘플링부는, 상기 랜덤 워드를 각각 상이한 시간에 복수 회 샘플링하여 상기 난수를 생성할 수 있다.
상기 난수 생성 장치는, 상기 신호 추출부 및 상기 난수 생성부를 제어하기 위한 제어부를 더 포함하고, 상기 제어부는 생성된 상기 난수가 소수가 아닐 경우에 생성된 상기 난수를 파기하고 새로운 난수를 생성하도록 상기 신호 추출부 및 상기 난수 생성부를 제어할 수 있다.
상기 스토리지 장치는 하드 디스크 드라이브이고, 상기 복수 개의 디지털 신호들은, 위치 에러 신호(position error signal), 스핀들 속도 에러 신호(spindle speed error signal), 리드 채널 신호(read channel signal), 온도 신호(temperature signal), 프리폴 센서 신호(freefall sensor signal), 및 쇼크 센서 신호(shock sensor signal) 중에서 적어도 하나를 포함할 수 있다.
본 발명의 실시예에 따른 난수 생성 방법 또는 장치는, 난수의 생성 속도를 상당히 증가시킬 수 있다.
또한, 본 발명의 실시예에 따른 난수 생성 방법 또는 장치는, 스토리지 장치의 보안 시스템 또는 암호화 시스템의 성능을 상당히 향상시킬 수 있다.
특정한 구조 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니된다.
본 발명의 개념에 따른 실시예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시예들은 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시 형태에 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 한정되지는 않는다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소들로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.
어떠한 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떠한 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 또는 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하기 위한 다른 표현들, 즉 '∼사이에'와 '바로 ∼사이에' 또는 '∼에 이웃하는'과 '∼에 직접 이웃하는' 등의 표현도 마찬가지로 해석되어야 한다.
본 명세서에서 사용하는 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서 '포함하다' 또는 '가지다' 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전의 정의 되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명하도록 한다.
도 1은 스토리지 장치 내에 존재하는 신호들에 포함된 노이즈에 대한 주파수별 스펙트럼(spectrum) 성분을 나타내는 그래프이다.
본 발명에 따른 실시예에서는 본 발명의 용이한 이해를 위하여 상기 스토리지 장치로서 하드 디스크 드라이브(hard disk drive)를 예시하고 있지만 본 발명에 따른 실시예는 이에 한정되지 않고, 본 발명에 따른 실시예는 솔리드 스테이트 드라이브(SSD; solid state drive), 불휘발성 메모리(NVM; non-volatile memory), 휘발성 메모리(VM; volatile momery), 광학디스크드라이브(ODD; optical disk drive) 등에 모두 적용될 수 있다.
본 발명의 실시예에 따른 난수 생성 방법은 스토리지 장치(예컨대, 하드 디스크 드라이브) 내에 존재하는 디지털 신호들에 기초하여 난수를 생성할 수 있다. 스토리지 장치 내에는 상기 스토리지 장치를 구동하기 위한 다수의 신호들이 존재할 수 있으며, 각 신호에는 노이즈가 포함되어 있다.
상기 하드 디스크 드라이브에 존재하는 상기 노이즈는 화이트 노이즈(white noise, 백색 잡음)에 근접하며, 따라서 주파수 대역(예컨대, 가청 주파수 대역) 내에서 주파수별 노이즈 성분이 실질적으로 일정할 수 있다.
즉, 노이즈 성분이 주파수별로 일정하게 분포하기 때문에 상기 노이즈의 랜덤성(randomness)이 우수하며, 그 결과 본 발명에 따른 실시예는 상기 다수의 신호들에 포함되어 있는 노이즈들에 기초하여 난수를 생성할 수 있다.
도 1에 도시된 바와 같이, 노이즈는 주파수 대역(도 1에서는 약 100Hz 내지 20KHz)에서 노이즈 성분이 일정하게 분포되는 것을 알 수 있으며, 이러한 노이즈의 특징으로 인하여 난수의 랜덤성이 상당히 개선될 수 있다. 노이즈를 이용하여 난수를 생성하는 구체적인 방법이나 장치에 대해서는 도 2에서 상술하기로 한다.
도 2는 본 발명의 실시예에 따른 난수 생성 장치(1)의 개략적인 블록도이다. 도 2를 참조하면, 본 발명의 실시예에 따른 난수 생성 장치(1)는, 신호 추출부(20)와 난수 생성부(10)를 포함할 수 있다.
상기 신호 추출부(signal extracting unit, 20)는 스토리지 장치 내에 존재하는 복수 개의 디지털 신호들을 추출할 수 있다. 본 발명의 실시예예 따른 난수 생성 장치(1)는 외부의 신호들을 이용하지 않고 내부에 존재하는 다양한 신호들을 이용하여 난수를 생성할 수 있으며, 따라서 난수 생성 장치(1)의 복잡도를 상당히 낮출 수 있다.
예컨대, 상기 스토리지 장치로서 하드 디스크 드라이브를 예시할 경우에, 상기 신호 추출부(20)가 하드 디스크 드라이브에서 추출할 수 있는 상기 복수 개의 신호들은, 위치 에러 신호(position error signal), 스핀들 속도 에러 신호(spindle speed error signal), 리드 채널 신호(read channel signal), 온도 신호(temperature signal), 프리폴 센서 신호(freefall sensor signal), 및 쇼크 센서 신호(shock sensor signal) 중에서 적어도 하나를 포함할 수 있는데, 이러한 신호들은 상기의 특징을 갖는 노이즈들을 포함하고 있다.
상기 위치 에러 신호는 리드 채널 칩(read channel chip)의 서보 블록(servo block)으로부터 출력될 수 있으며, 데이터 독출 헤드의 트랙 오프 정도에 상응할 수 있다. 상기 스핀들 속도 에러 신호는 스핀들 모터(spindle motor)로부터 출력될 수 있으며, 스핀들 속도의 에러 값에 상응할 수 있다.
또한, 상기 리드 채널 신호는 상기 리드 채널 칩의 데이터 블록(data block)으로부터 출력될 수 있고, 상기 온도 신호는 프리앰프(preamp)로부터 출력될 수 있으며, 상기 프리폴 센서 신호는 프리폴 센서(freefall sensor)로부터 출력될 수 있고, 상기 쇼크 센서 신호는 쇼크 센서(shock sensor)로부터 출력될 수 있다.
또한, 상기 예시한 신호들은 하드 디스크 드라이브 내에서 디지털화되어 사용될 수도 있다. 이러한 경우에는 상기 신호 추출부(20)는 디지털화되어 있는 복수 개의 디지털 신호들을 추출하여 상기 난수 생성부(10)로 전송할 수 있다.
또한, 실시예에 따라, 예시한 신호들이 아날로그 타입으로 출력될 수도 있으며, 이 경우에 상기 신호 추출부(20)는 추출된 아날로그 신호를 디지털 신호로 변환하기 위한 아날로그-디지털 변환부(analog-digital conversion unit, 미도시)를 더 포함할 수도 있다.
또한, 상기 난수 생성부(10)는, 노이즈 비트 추출부(noise bit extracting unit, 11), 랜덤 워드 생성부(random word generating unit, 12), 및 샘플링부(sampling unit, 13)를 포함할 수 있다.
상기 노이즈 비트 추출부(11)는 상기 신호 추출부(20)에서 출력되는 다수의 디지털 신호들 각각으로부터 노이즈 비트를 추출할 수 있다. 보다 구체적으로, 상기 스토리지 장치에 존재하는 신호에는 노이즈 성분이 포함될 수 있는데, 일반적으로 노이즈의 크기는 노이즈를 제외한 신호의 크기보다 상당히 작다. 예컨대, 신호대잡음비(SNR; signal to noise)가 약 40dB의 값을 갖는 경우라면 본래 신호의 크기가 노이즈의 크기보다 약 100배 정도 크기 때문에, 이러한 신호들이 디지털 값으로 변환될 경우에 노이즈 성분은 상당히 적은 비중을 차지하게 된다.
즉, 스토리지 장치 내에 존재하는 임의의 신호를 디지털화할 경우에, 상기 노이즈 비트 추출부(11)는 디지털 신호의 최하위비트(LSB; least significant bit)를 노이즈 비트로 간주할 수 있다. 따라서, 이를 수학식으로 나타내면 다음과 같다.
NB(=Noise Bit) = LSB(Digital Signal)
상기 노이즈 비트 추출부(11)는 상기 디지털 신호로부터 최하위비트(LSB)만을 추출하여 추출된 최하위비트(LSB)를 상기 노이즈 비트로 간주하기 때문에, 상기 노이즈 비트는 1 비트 크기를 가질 수 있다.
또한, 본 발명에 따른 실시예는 복수 개의 디지털 신호들을 이용하여 난수를 생성하는 것을 특징으로 하는데, 상기한 노이즈 비트의 추출 동작이 상기 복수 개의 디지털 신호들에 모두 동일하게 적용될 수 있다.
따라서, 복수 개의 디지털 신호들을 이용하여 노이즈 비트를 추출할 경우에, 이를 수학식으로 나타내면 다음과 같다.
NB_1 = LSB(Digital Signal_1)
NB_2 = LSB(Digital Signal_2)
. .
. .
NB_N = LSB(Digital Signal_N)
상기 수학식 2는 N개의 디지털 신호들로부터 각각 노이즈 비트들(NB_1 내지 NB_N)을 추출할 때의 수식에 관한 것이며, 상기 랜덤 워드 생성부(12)는 상기 노이즈 비트 추출부(11)에서 출력된 상기 노이즈 비트들(NB_1 내지 NB_N)을 이용하여 랜덤 워드(random word)를 생성할 수 있다.
상기 노이즈 비트들(NB_1 내지 NB_N)이 합성되어 랜덤 워드를 생성하기 위한 수학식은 다음과 같다.
RW(Random word) = [NB_1 NB_2 ... NB_N]
이때, 상기 다수의 디지털 신호들이 모두 서로 독립적(independent)이고 어떠한 연관성(correlation)도 존재하지 않기 때문에, 상기 다수의 노이즈 비트들(NB_1 내지 NB_N) 사이의 랜덤성이 상당히 커질 수 있다. 또한, 상기 랜덤 워드(RW)의 길이는 상기 합성에 사용된 상기 디지털 신호들의 개수와 동일하며(예컨대, N 비트), 따라서 난수 생성에 사용되는 디지털 신호들의 개수가 증가할수록 상기 랜덤 워드의 크기도 증가할 수 있다.
상기 랜덤 워드 생성부(12)에서 출력된 상기 랜덤 워드(RW)는 상기 샘플링부(13)로 전송될 수 있으며, 상기 샘플링부(13)는 상기 랜덤 워드(RW)에 대해 적어도 한번의 샘플링 동작을 수행하여 최종적인 난수를 생성할 수 있다. 보다 구체적으로, 데이터 암호화나 사용자 인증에 사용되는 키를 생성하기 위한 난수의 길이는 알고리즘의 키 길이와 동일해야 하는데, 상기 랜덤 워드 생성부(12)에서 생성된 난수의 길이(예컨대, M 비트)가 상기 키 길이보다 작으면 상기 샘플링부(13)는 상기 랜덤 워드(RW)를 다수 회 샘플링함으로써 상기 키 길이에 상응하는 난수를 생성할 수 있다. 상기 샘플링부(13)에서 출력된 상기 난수(RN)는 암호키 생성부(2)로 전송될 수 있으며, 상기 암호키 생성부(2)는 수신된 난수에 기초하여 데이터 암호화에 필요한 암호키(encryption key)를 생성할 수 있다.
또한, 상기 샘플링부(13)에 의한 복수 회의 샘플링 동작은 각각 상이한 시간에 수행될 수 있고, 따라서 다수의 랜덤 워드들 간에도 랜덤성이 보장될 수 있다. 상기 샘플링부(13)의 샘플링 연산을 수학식으로 나타내면 다음과 같다.
RN(Random Number) = [RW(n=1) RW(n=2) ... RW(n=M)]
여기서, n은 샘플링 횟수를 나타내며, 수학식 4에서는 M번의 샘플링이 수행된 것을 예시하고 있다. 따라서, 상기 난수(RN)는 총 N×M 비트의 길이를 가질 수 있게 된다.
예컨대, 256비트의 크기를 갖는 난수를 생성하고자 할 경우에, 종래와 같이 단일의 디지털 신호만을 이용하면 상기 랜덤 워드(RW)가 1비트의 크기를 갖기 때문에, 256번의 샘플링 동작이 수행되어야만 하나의 난수가 생성될 수 있다.
하지만, 본 발명의 실시예에 다른 난수 생성 방법에 따르면 다수의 디지털 신호들(예컨대, 8개)을 이용하여 난수를 생성하기 때문에, 상기 랜덤 워드(RW)가 8비트의 크기를 갖고, 따라서 32번(= 256 / 8)의 샘플링 동작만이 수행되면 난수가 생성될 수 있다. 즉, 난수 생성에 사용되는 디지털 신호들의 개수에 비례하여 상기 난수의 생성 속도가 증가할 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 상기 노이즈 비트 추출부(11)가 상기 다수의 디지털 신호들 각각으로부터 최하위비트(LSB)와 그 이전 비트(LSB-1)를 노이즈 비트로서 추출할 수 있고, 이 경우에는 노이즈 비트의 랜덤성이 다소 약화될 수는 있으나 랜덤 워드(RW)의 크기가 증가됨으로써 난수 생성 속도가 더욱 향상될 수 있는 효과가 있다.
본 발명에 따른 실시예에서는 상기 난수 생성에 사용되는 신호들로서, 위치 에러 신호(position error signal), 스핀들 속도 에러 신호(spindle speed error signal), 리드 채널 신호(read channel signal), 온도 신호(temperature signal), 프리폴 센서 신호(freefall sensor signal), 및 쇼크 센서 신호(shock sensor signal) 등을 예시하고 있지만 이는 본 발명의 용이한 이해를 위해 예시한 것일 뿐이며, 난수 생성에 이용되는 신호들은 하드 디스크 드라이브 내에 존재하여 임의의 노이즈를 포함하고 있는 모든 신호들을 포함할 수 있다.
또한, 본 발명의 실시예에 따른 난수 생성 장치(1)는 제어부(control unit, 30)를 더 포함할 수 있다. 본 발명의 실시예에 따른 암호화 알고리즘이 RSA(Rivest-Shamir-Adleman) 알고리즘인 경우에는 상기 난수 생성부(10)에서 출력되는 난수가 소수(素數, prime number)인 경우에만 해당 난수가 암호화 키로 사용될 수 있다.
따라서, RSA 알고리즘에 기초하여 구동되는 난수 생성 장치(1)는 상기 제어부(30)를 더 포함할 수 있으며, 상기 제어부(30)는 상기 샘플링부(13)에서 출력되는 난수가 소수인지 여부를 판단할 수 있다. 판단 결과, 상기 샘플링부(13)에서 출력되는 난수가 소수가 아닌 경우에 상기 제어부(30)는 출력된 난수를 파기하고 다시 새로운 난수를 생성하도록 상기 신호 추출부(20)와 상기 난수 생성부(10)를 제어할 수 있다. 물론, 출력된 상기 난수가 소수인 경우에는 출력된 난수가 암호키 생성을 위해 이용될 수 있다.
또한, 상기 샘플링부(13)에서 출력된 난수는 디지털 값으로 구현되기 때문에, 상기 제어부(30)는 상기 샘플링부(13)에서 출력된 디지털 값의 난수를 10진법(decimal)의 자연수로 변환하는 과정을 더 수행할 수 있다. 따라서, 상기 제어부(30)는 10진법으로 변환된 난수가 소수인지 여부를 판단할 수 있다.
도 3은 본 발명의 실시예에 따른 난수 생성 방법의 과정을 설명하기 위한 개략도이다.
도 2 및 도 3을 참조하면, 상기 노이즈 비트 추출부(11)는 다수의 신호들(signal 1 내지 signal N) 각각으로부터 노이즈 비트(NB)를 추출할 수 있다. 또한, 도 3에 도시된 바와 같이, 상기 노이즈 비트 추출부(11)는 각 디지털 신호의 최하위비트(LSB)를 노이즈 비트로서 추출할 수 있으며, 추출된 노이즈 비트들은 상기 랜덤 워드 생성부(12)로 전송될 수 있다.
예컨대, 제1 디지털 신호(signal 1)는 디지털 값으로 '0111...0100'을 가질 수 있고, 상기 노이즈 비트 추출부(11)는 상기 디지털 값 중에서 최하위비트(LSB)인 '0'을 추출하여 이를 노이즈 비트(NB)로 간주할 수 있다. 유사하게, 제2 디지털 신호(signal 2)는 디지털 값으로 '1001...0011'을 가질 수 있고, 상기 노이즈 비트 추출부(11)는 상기 디지털 값 중에서 최하위비트(LSB)인 '1'을 추출하여 이를 노이즈 비트(NB)로 간주할 수 있다.
즉, 노이즈 비트 추출부(11)는 상기 복수의 디지털 신호들(signal 1 내지 signal N) 각각으로부터 노이즈 비트를 추출할 수 있으며, 추출된 노이즈 비트들은 상기 랜덤 워드 생성부(12)로 전송될 수 있다. 이때, 상기한 바와 같이, 복수 개의 디지털 신호들은 서로 독립적이고 랜덤하기 때문에, 상기 다수의 노이즈 비트들 또한 서로 랜덤할 수 있다.
상기 랜덤 워드 생성부(12)는 상기 노이즈 비트 추출부(11)에서 추출된 노이즈 비트들을 이용하여 랜덤 워드(RW)를 생성할 수 있다. 도 3에 예시된 바와 같이, 랜덤 워드(RW)는 N 비트의 크기를 가질 수 있으며, 상기 랜덤 워드(RW)를 구성하는 비트 값들 각각은 상기 다수의 디지털 신호들의 최하위비트(LSB)에 대응할 수 있다.
상기 샘플링부(13)는 상기 랜덤 워드 생성부(12)에서 출력된 랜덤 워드(RW)를 적어도 한번 샘플링하여 난수를 생성할 수 있다. 예컨대, 도 3에서는 상기 랜덤 워드(RW)를 각각 상이한 시간에 M번 샘플링하여 난수를 생성하는 과정을 예시하고 있으며, 따라서 상기 난수는 N×M 비트의 크기를 가질 수 있다.
도 4a 및 도 4b는 본 발명의 실시예에 따른 난수 생성 방법을 설명하기 위한 순서도이다.
도 4a는 일반적인 암호화 알고리즘을 기반으로 하는 난수 생성 방법에 대한 순서도이다. 도 2 내지 도 4a를 참조하면, 상기 신호 추출부(20)는 스토리지 장치에 존재하는 복수 개의 디지털 신호들을 추출할 수 있다(S405). 상기 노이즈 비트 추출부(11)는 상기 복수 개의 디지털 신호들 각각으로부터 노이즈 비트를 추출할 수 있다(S410). 상기한 바와 같이, 상기 노이즈 비트는 상기 디지털 신호들 각각의 최하위비트(LSB)에 상응할 수 있다.
또한, 상기 핸덤 워드 생성부(12)는 상기 노이즈 비트들에 기초하여 랜덤 워드(RW)를 생성할 수 있다(S415). 상기 샘플링부(13)는 상기 랜덤 워드를 적어도 한번 샘플링함으로써 난수(RN)를 생성할 수 있다(S420).
도 4b는 RSA(Rivest-Shamir-Adleman) 암호화 알고리즘을 기반으로 하는 난수 생성 방법에 대한 순서도이다. 도 2 내지 도 4b를 참조하면, 상기 신호 추출부(20)는 스토리지 장치에 존재하는 복수 개의 디지털 신호들을 추출할 수 있다(S505). 상기 노이즈 비트 추출부(11)는 상기 복수 개의 디지털 신호들 각각으로부터 노이즈 비트를 추출할 수 있다(S510). 상기한 바와 같이, 상기 노이즈 비트는 상기 디지털 신호들 각각의 최하위비트(LSB)에 상응할 수 있다.
또한, 상기 핸덤 워드 생성부(12)는 상기 노이즈 비트들에 기초하여 랜덤 워드(RW)를 생성할 수 있다(S515). 상기 샘플링부(13)는 상기 랜덤 워드를 적어도 한번 샘플링함으로써 난수를 생성할 수 있다(S520). 이때 상기 제어부(30)는 상기 생성된 난수가 소수인지 여부를 판단할 수 있으며(S525), 난수가 소수이면 해당 난수를 암호키에 이용할 수 있고, 난수가 소수가 아니면 해당 난수를 파기하고 난수 생성 과정을 반복하도록 상기 신호 추출부(20) 및 상기 난수 생성부(10)를 제어할 수 있다.
또한, 본 발명에 따른 실시예는 컴퓨터로 판독할 수 있는 기록 매체에 컴퓨터가 판독할 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 판독할 수 있는 기록 매체는 컴퓨터 시스템에 의하여 판독될 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함할 수 있다. 컴퓨터가 판독할 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예컨대, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함될 수 있다. 또한, 컴퓨터가 판독할 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터가 판독할 수 있는 코드로 저장되고 실행될 수 있다.
본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 것을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 스토리지 장치에 존재하는 신호들에 포함된 노이즈에 대한 주파수별 스펙트럼 성분을 나타내는 그래프.
도 2는 본 발명의 실시예에 따른 난수 생성 장치의 개략적인 블록도.
도 3은 본 발명의 실시예에 따른 난수 생성 방법의 과정을 설명하기 위한 개략도.
도 4a 및 도 4b는 본 발명의 실시예에 따른 난수 생성 방법을 설명하기 위한 순서도.

Claims (15)

  1. 방법으로서,
    데이터 스토리지 장치로부터 복수 개의 디지털 신호들을 수신하는 단계 ― 상기 복수 개의 디지털 신호들은 상기 데이터 스토리지 장치 내에서 사용됨 ―;
    상기 복수 개의 디지털 신호들 각각으로부터 노이즈를 나타내는 적어도 하나의 비트를 추출함으로써 노이즈 비트들을 결정하는 단계; 및
    상기 노이즈 비트들 각각으로부터 제 1 난수(random number)를 생성하는 단계
    를 포함하고,
    상기 제 1 난수를 생성하는 단계는,
    랜덤 워드를 형성하기 위해 상기 노이즈 비트들을 조합함으로써 상기 랜덤 워드를 샘플링하는 단계; 및
    상기 제 1 난수를 생성하기 위해 상기 랜덤 워드를 상이한 시간에 다수 회 샘플링하는 단계
    를 포함하는,
    방법.
  2. 제 1 항에 있어서,
    노이즈를 나타내는 상기 적어도 하나의 비트를 추출하는 것은 상기 복수 개의 디지털 신호들 각각의 최하위비트(LSB; least significant bit)를 추출하는 것을 더 포함하는,
    방법.
  3. 제 1 항에 있어서,
    상기 제 1 난수가 소수인지 여부를 판단하는 단계; 및
    상기 제 1 난수가 소수가 아닌 경우, 상기 복수 개의 디지털 신호들을 추출하는 단계, 제 2 난수를 생성하는 단계, 및 상기 제 2 난수가 소수인지 여부를 판단하는 단계를 반복하는 단계
    를 더 포함하는,
    방법.
  4. 제 1 항에 있어서,
    노이즈를 나타내는 상기 적어도 하나의 비트를 추출하는 것은 상기 복수 개의 디지털 신호들 각각의 최하위비트(LSB) 및 다음 LSB로부터 상기 적어도 하나의 노이즈 비트를 추출하는 것을 포함하는,
    방법.
  5. 제 1 항에 있어서,
    상기 랜덤 워드를 샘플링하는 단계는 상기 제 1 난수의 비트 길이가 미리결정된 비트 길이와 동일해질 때까지 상기 랜덤 워드를 샘플링하는 단계를 더 포함하는,
    방법.
  6. 제 1 항에 있어서,
    상기 복수 개의 디지털 신호들은 상기 데이터 스토리지 장치 내에서 상이한 목적들을 위해 사용되는,
    방법.
  7. 장치로서,
    데이터 스토리지 장치; 및
    난수 생성부를 포함하고,
    상기 데이터 스토리지 장치는 상기 데이터 스토리지 장치로부터 복수 개의 디지털 신호들을 추출하는 신호 추출부를 포함하고, 상기 복수 개의 디지털 신호들 중 적어도 두 개의 디지털 신호들은 서로 상이한 발신원(originating source)들을 가지며,
    상기 난수 생성부는, 상기 복수 개의 디지털 신호들 각각으로부터 노이즈를 나타내는 적어도 하나의 비트를 추출함으로써 노이즈 비트들을 결정하고; 그리고 상기 노이즈 비트들로부터 제 1 난수를 생성하도록 구성되며,
    상기 난수 생성부는 상기 복수 개의 디지털 신호들 각각으로부터 상기 적어도 하나의 비트를 추출하는 노이즈 비트 추출부;
    상기 노이즈 비트들을 조합함으로써 랜덤 워드를 생성하는 랜덤 워드 생성부; 및
    상기 제 1 난수를 생성하기 위해 상기 랜덤 워드를 상이한 시간들에 적어도 두 번 샘플링하는 샘플링부
    를 포함하는,
    장치.
  8. 제 7 항에 있어서,
    상기 노이즈 비트 추출부는 상기 디지털 신호들 각각의 최하위비트(LSB)로부터 상기 적어도 하나의 비트를 추출하는,
    장치.
  9. 제 7 항에 있어서,
    상기 신호 추출부 및 상기 난수 생성부를 제어하는 제어부를 더 포함하고,
    상기 제어부는 상기 제 1 난수가 소수가 아닌 경우, 상기 제 1 난수를 파기하고 제 2 난수를 생성하기 위해 상기 신호 추출부 및 상기 난수 생성부를 제어(direct)하는,
    장치.
  10. 제 7 항에 있어서,
    상기 노이즈 비트 추출부는 상기 디지털 신호들 각각의 최하위비트(LSB) 및 다음 LSB로부터 상기 적어도 하나의 비트를 추출하는,
    장치.
  11. 제 7 항에 있어서,
    상기 샘플링부는 상기 제 1 난수의 비트 길이가 미리결정된 비트 길이와 동일해질 때까지 상기 랜덤 워드를 샘플링하는,
    장치.
  12. 제 7 항에 있어서,
    상기 장치는 하드 디스크 드라이브이고, 상기 복수 개의 디지털 신호들은, 위치 에러 신호(position error signal), 스핀들 속도 에러 신호(spindle speed error signal), 리드 채널 신호(read channel signal), 온도 신호(temperature signal), 프리폴 센서 신호(freefall sensor signal), 및 쇼크 센서 신호(shock sensor signal) 중에서 적어도 하나를 포함하는,
    장치.
  13. 장치로서,
    다수의 신호들을 수신하도록 구성된 신호 추출부 ― 상기 다수의 신호들 중 적어도 두 개의 신호들은 서로 다른 발신원들을 가짐 ― ;
    상기 다수의 신호들 각각으로부터 최하위비트를 추출하도록 구성된 비트 추출부;
    상기 다수의 신호들로부터 추출된 각각의 최하위비트로부터 난수를 생성하도록 구성된 난수 생성부;
    랜덤 워드를 형성하기 위해 상기 다수의 신호들로부터 각각의 최하위비트들을 조합하도록 구성된 워드 생성부;
    상기 난수를 생성하기 위해 상기 랜덤 워드를 샘플링하도록 구성된 샘플링부; 및
    상기 난수로부터 암호키를 생성하도록 구성된 암호키 생성부
    를 포함하고,
    상기 샘플링부는, 상기 암호키를 생성하기 위해 상기 난수의 길이가 미리 결정된 길이가 되도록 상기 랜덤 워드를 상이한 시간들에 복수 회 샘플링하도록 구성되는,
    장치.
  14. 제 13 항에 있어서,
    이전에 생성된 난수가 소수가 아닌 경우 또 다른 난수를 생성하기 위해 상기 신호 추출부 및 상기 난수 생성부를 제어하도록 구성된 제어부를 더 포함하는,
    장치.
  15. 제 13 항에 있어서,
    상기 장치는 데이터 스토리지 장치이고, 상기 다수의 신호들은 상기 데이터 스토리지 장치 내에서 생성되고 서로 독립적이며, 그리고 상기 랜덤 워드의 길이는 상기 다수의 신호들의 개수와 동일한,
    장치.
KR1020090027043A 2009-03-30 2009-03-30 난수 생성 장치 및 그 방법 KR101625857B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090027043A KR101625857B1 (ko) 2009-03-30 2009-03-30 난수 생성 장치 및 그 방법
US12/749,689 US8996596B2 (en) 2009-03-30 2010-03-30 Apparatus and method of generating random number

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090027043A KR101625857B1 (ko) 2009-03-30 2009-03-30 난수 생성 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20100108815A KR20100108815A (ko) 2010-10-08
KR101625857B1 true KR101625857B1 (ko) 2016-05-31

Family

ID=42785569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090027043A KR101625857B1 (ko) 2009-03-30 2009-03-30 난수 생성 장치 및 그 방법

Country Status (2)

Country Link
US (1) US8996596B2 (ko)
KR (1) KR101625857B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210035076A (ko) * 2019-09-20 2021-03-31 센젠 인스티튜트스 오브 어드밴스트 테크놀로지, 차이니즈 아카데미 오브 사이언시스 무선 신체 영역 네트워크 및 이의 키 생성 방법, 분배 방법 및 관련 장치
KR102270413B1 (ko) * 2020-01-23 2021-06-29 주식회사 피에스디엘 보안 장치
WO2021150082A1 (ko) * 2020-01-23 2021-07-29 주식회사 피에스디엘 보안 장치 및 보안 프로그램

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013004795A1 (de) 2012-03-21 2013-09-26 Gabriele Trinkel System und Verfahren zum erzeugen von thermische Hot Spot zur Generierung von Zufallszahlen mit thermischen Rauschquellen im Cloud Computing
US10102382B1 (en) * 2013-03-14 2018-10-16 Lawrence Livermore National Security, Llc Intrinsic use control for system and use controlled component security
GB2528983A (en) * 2014-08-08 2016-02-10 Apply Mobile Ltd Improvements in and relating to random number generation apparatus
US11650795B2 (en) 2019-08-23 2023-05-16 SK Hynix Inc. Raw read based physically unclonable function for flash memory
KR102359509B1 (ko) * 2019-10-14 2022-02-09 한국전력공사 난수용 시드 생성 장치 및 그 방법
KR102336068B1 (ko) * 2020-12-30 2021-12-07 주식회사 피에스디엘 도어락, 도어락 컨트롤 장치, 도어락 컨트롤 프로그램 및 도어락 관리 서버

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408317B1 (en) 1999-02-19 2002-06-18 Integrated Device Technology, Inc. Random number conditioner
US20050008154A1 (en) 1999-10-18 2005-01-13 Sandip Sarkar Random number generation for encrypting cellular communications
US6886023B2 (en) 2002-01-14 2005-04-26 Ip-First, Llc Apparatus for generating random numbers

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4286228A (en) 1979-05-31 1981-08-25 Westinghouse Electric Corp. Frequency spectrum noise generator
JP3034516B1 (ja) 1999-03-08 2000-04-17 株式会社東芝 物理乱数発生装置
US6774916B2 (en) * 2000-02-24 2004-08-10 Texas Instruments Incorporated Contour mitigation using parallel blue noise dithering system
US6687721B1 (en) 2000-03-31 2004-02-03 Intel Corporation Random number generator with entropy accumulation
US6735606B2 (en) * 2001-05-15 2004-05-11 Qualcomm Incorporated Multi-sequence fast slewing pseudorandom noise generator
US7219112B2 (en) 2001-11-20 2007-05-15 Ip-First, Llc Microprocessor with instruction translator for translating an instruction for storing random data bytes
US9111122B2 (en) * 2007-07-02 2015-08-18 Freescale Semiconductor, Inc. Asymmetric cryptographic device with local private key generation and method therefor
US8379848B2 (en) * 2011-07-07 2013-02-19 Cape Light Institute, Inc. Method of providing a portable true random number generator based on the microstructure and noise found in digital images

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408317B1 (en) 1999-02-19 2002-06-18 Integrated Device Technology, Inc. Random number conditioner
US20050008154A1 (en) 1999-10-18 2005-01-13 Sandip Sarkar Random number generation for encrypting cellular communications
US6886023B2 (en) 2002-01-14 2005-04-26 Ip-First, Llc Apparatus for generating random numbers

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210035076A (ko) * 2019-09-20 2021-03-31 센젠 인스티튜트스 오브 어드밴스트 테크놀로지, 차이니즈 아카데미 오브 사이언시스 무선 신체 영역 네트워크 및 이의 키 생성 방법, 분배 방법 및 관련 장치
KR102477582B1 (ko) * 2019-09-20 2022-12-14 센젠 인스티튜트스 오브 어드밴스트 테크놀로지, 차이니즈 아카데미 오브 사이언시스 무선 신체 영역 네트워크의 키 분배 장치, 무선 신체 영역 네트워크의 키 생성 방법, 무선 신체 영역 네트워크의 분배 방법 및 관련 장치
KR102270413B1 (ko) * 2020-01-23 2021-06-29 주식회사 피에스디엘 보안 장치
WO2021150082A1 (ko) * 2020-01-23 2021-07-29 주식회사 피에스디엘 보안 장치 및 보안 프로그램
KR20210095577A (ko) * 2020-01-23 2021-08-02 주식회사 피에스디엘 보안 장치 및 보안 프로그램
KR102476077B1 (ko) * 2020-01-23 2022-12-09 주식회사 피에스디엘 보안 장치 및 보안 프로그램

Also Published As

Publication number Publication date
KR20100108815A (ko) 2010-10-08
US20100250637A1 (en) 2010-09-30
US8996596B2 (en) 2015-03-31

Similar Documents

Publication Publication Date Title
KR101625857B1 (ko) 난수 생성 장치 및 그 방법
US8015224B1 (en) Entropy source for random number generation
RU2257677C2 (ru) Способ шифрования, устройство шифрования, способ дешифрирования и устройство дешифрирования
JP5060119B2 (ja) 暗号処理プログラム、暗号処理方法および暗号処理装置
US20070297602A1 (en) Multimedia output device having embedded encryption functionality
US8054967B2 (en) Computer system and computer program executing encryption or decryption
US20030212886A1 (en) Encryption/decryption system and encryption/decryption method
KR19980033370A (ko) 일방향 데이터 변환장치 및 기기 인증 시스템
US20080219455A1 (en) Method and apparatus for encoding and decoding noise signal
Kheddar et al. Pitch and fourier magnitude based steganography for hiding 2.4 kbps melp bitstream
Pathak et al. A new audio steganography scheme based on location selection with enhanced security
JP5060079B2 (ja) 暗号処理プログラム
JP2005011356A (ja) ディスクドライブにおける乱数発生方法及びそのシステム
US20240048377A1 (en) Ciphertext conversion system, conversion key generation method, and non-transitory computer readable medium
JP3876324B2 (ja) 乱数列共有システム、乱数列共有装置、暗号復号システム、暗号装置、復号装置、乱数列共有方法、暗号方法、復号方法、ならびに、プログラム
CN111954035A (zh) 影音信号流的加密方法与装置
EP1151433B1 (en) Data encoding/decoding device and apparatus using the same
JP2007306171A (ja) 情報処理システムおよび方法、情報処理装置および方法、並びにプログラム
CN107483194A (zh) 基于非零脉冲位置和幅度信息的g.729语音信息隐藏算法
CN100444188C (zh) 声纹密码锁系统
CN1637854A (zh) 音乐内容使用装置及其方法
TWI430644B (zh) 音訊資料傳輸方法及其音訊處理系統
JP2001358708A (ja) コンテンツ情報変換装置、コンテンツ情報変換方法、及びプログラム記憶媒体
Paira et al. Audio cryptanalysis-An application of symmetric key cryptography and audio steganography
Shoaib et al. Performance improvement of threshold based audio steganography using parallel computation

Legal Events

Date Code Title Description
N231 Notification of change of applicant
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: 20190311

Year of fee payment: 4