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

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

Info

Publication number
KR102079318B1
KR102079318B1 KR1020180060165A KR20180060165A KR102079318B1 KR 102079318 B1 KR102079318 B1 KR 102079318B1 KR 1020180060165 A KR1020180060165 A KR 1020180060165A KR 20180060165 A KR20180060165 A KR 20180060165A KR 102079318 B1 KR102079318 B1 KR 102079318B1
Authority
KR
South Korea
Prior art keywords
random number
code
sample
seed code
flip
Prior art date
Application number
KR1020180060165A
Other languages
English (en)
Other versions
KR20190135121A (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 KR1020180060165A priority Critical patent/KR102079318B1/ko
Publication of KR20190135121A publication Critical patent/KR20190135121A/ko
Application granted granted Critical
Publication of KR102079318B1 publication Critical patent/KR102079318B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/015Input arrangements based on nervous system activity detection, e.g. brain waves [EEG] detection, electromyograms [EMG] detection, electrodermal response detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Dermatology (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Neurosurgery (AREA)
  • Human Computer Interaction (AREA)
  • Apparatus Associated With Microorganisms And Enzymes (AREA)
  • Investigating Or Analysing Biological Materials (AREA)

Abstract

난수 생성 장치 및 방법이 개시된다. 본 발명의 난수 생성 장치는 센서를 이용하여 사용자의 생체 신호를 측정하는 생체 신호 측정부, 측정된 생체 신호를 디지털 신호로 변환하는 생체 신호 디지털 변환부, 변환된 디지털 신호로부터 기 설정된 시점에 대응되는 샘플을 추출하여, 추출된 샘플의 크기를 난수 생성과 관련된 이진 코드로 변화시킨 시드 코드를 생성하는 시드 코드 생성부 및 생성된 시드 코드를 입력 받아 난수를 생성하는 난수 생성부를 포함한다.

Description

난수 생성 장치 및 그 방법 {RANDOM NUMBER GENERATION APPARATUS AND METHOD THEREOF}
본 발명은 난수 생성 장치 및 그 방법에 관한 것이다. 보다 상세하게는, 본 발명은 사용자 개인의 보안을 강화시키는 난수를 생성하는 난수 생성 장치 및 그 방법에 관한 것이다.
정보 통신 기술이 발전함에 따라, 현대인들은 언제 어디서나 인터넷 및 모바일 커뮤니케이션을 통하여 통신을 하고 원하는 정보를 얻을 수 있게 되었다. 또한, 통신망의 급격한 발전과 더불어 처리할 데이터도 텍스트/음성 데이터에서 화상회의나 동영상 자료 등 점차 멀티미디어 자료 형태로 변모해가고 있다. 그러나 통신 시스템의 개방적 성질 때문에 통신 정보는 제3자에 의해 쉽게 노출되거나 공격 당하기 쉬운 문제점이 발생할 수 있다. 따라서, 정보 보안은 더욱 중요시되고, 그 적용 분야는 단순한 정보 통신 분야뿐만 아니라, 교통, 금융, 의료, 유통 등의 주변 분야에까지 확장된다.
디지털 정보의 암호화 기술 및 복호화 기술은 상술한 정보 보안을 위해서 이용되며, 상술한 암호화 기술 및 복호화 기술은 난수(random number)(또는 키(key))를 생성하고, 생성된 키를 암호화 및 복호화 연산 과정에 사용한다. 따라서, 키의 생성은 정보 보안을 위한 암호화 및 복호화 연산에 있어서 중요하다.
따라서, 난수는 암호화에 있어 필수적인 요소로서, 비밀 값을 생성하거나 PKI(Public Key Infrastructure)에 있어 공개키를 생성하거나, 디지털 서명을 작성할 때, 혹은 인증 프로토콜 등에서 사용되고 있다. 이때, 랜덤을 생성하는 방법에는 난수와 유사한 형태의 의사 난수(pseudo random number)를 생성하는 방법과, 예측 불가능하며 재현 불가능한 진정한 난수(true randon number)를 생성하는 방법이 존재한다.
상술한 의사 난수는 암호화가 아닌 일반 응용 프로그램에서는 랜덤 숫자와 유사한 형태로 사용하기에 부족함이 없지만, 암호화에서 사용될 때는 주의가 필요하다. 즉, 의사 난수는 어디까지나 랜덤 숫자와 비슷한 형태의 숫자일 뿐이며, 의사 난수 생성기로부터 난수가 생성되는 경우 일정 주기 후 난수가 반복되는 문제가 있다. 따라서, 의사 난수 생성이기에 입력된 초기 값을 알게 되면 제3 자가 쉽게 난수를 예측할 수 있는 문제가 있다.
또한, 최근에 많이 사용되고 있는 TRNG IC는 반도체 내부에 노이즈(thermal noise 등)를 강제로 발생시켜 난수를 생성하는 원리로 동작하지만 많은 하드웨어 기반으로 되어 있어 전력 소모가 크며 소형화 시키기 어려운 문제가 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 난수를 생성하기 위한 초기 입력 값을 변화시켜 사용자 개인의 보안을 강화시키는 난수를 생성하는 난수 생성 장치 및 그 방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 난수 생성 장치는 센서를 이용하여 사용자의 생체 신호를 측정하는 생체 신호 측정부; 상기 측정된 생체 신호를 디지털 신호로 변환하는 생체 신호 디지털 변환부; 상기 변환된 디지털 신호로부터 기 설정된 시점에 대응되는 샘플을 추출하여, 상기 추출된 샘플의 크기를 난수 생성과 관련된 이진 코드로 변화시킨 시드 코드를 생성하는 시드 코드 생성부; 및 상기 생성된 시드 코드를 입력 받아 상기 난수를 생성하는 난수 생성부;를 포함할 수 있다.
상기 생체 신호 측정부는, 센서를 이용하여 사용자의 심장 박동과 동기화되어 혈량의 변화를 나타내는 PPG(Photoplethysmogram) 신호를 측정하고, 상기 PPG 신호는 주기를 가질 수 있다.
상기 생체 신호 디지털 변환부는, 상기 측정된 생체 신호를 기 설정된 시간 간격으로 샘플링하고, 상기 샘플링 된 시점에 대응되는 상기 생체 신호의 크기를 정수화로 양자화시킨 디지털 신호로 변환할 수 있다.
상기 시드 코드 생성부는, 상기 변환된 디지털 신호로부터 기 설정된 시점에 대응되는 N 개(상기 N은 2 이상인 자연수)의 샘플 각각을 추출하고, 상기 추출된 N 개의 샘플 크기를 이진 코드로 변환시킨 N 개의 샘플 코드를 생성하며, 상기 생성된 N 개의 샘플 코드를 조합하여 상기 시드 코드를 생성할 수 있다.
상기 시드 코드 생성부는, 상기 추출된 N 개의 샘플 각각에 해당되는 샘플 크기를 M 비트(상기 M은 2 이상인 자연수)인 샘플 코드로 변환하고, 상기 생성된 N 개의 샘플 코드 중에서 2 개의 샘플 코드를 추출하며, 상기 추출된 2 개의 샘플 코드 각각에서 M 비트 중 하나의 비트에 해당하는 값만을 추출하고, 상기 추출된 2 개의 비트 값을 논리 연산하여 상기 시드 코드에 해당하는 하나의 비트 값을 출력하며, 상기 과정을 반복하여 상기 시드 코드를 생성할 수 있다.
상기 시드 코드 생성부는, 상기 추출된 N 개의 샘플 각각에 해당되는 샘플 크기를 M 비트인 샘플 코드로 변환하고, 상기 생성된 N 개의 샘플 코드를 N x M 행렬로 변환시키며, 상기 변환된 행렬에서 상기 N 행을 포함하는 행렬 중 n 행에 대응되는 Nn 행(상기 Nn 은 Nn≤N인 자연수, 상기 n은 자연수) 및 상기 M 열을 포함하는 행렬 중 m 열에 대응되는 Mm 열(상기 Mm 은 Mm≤M인 자연수, 상기 m은 자연수)에 해당하는 코드를 추출하고, 상기 추출된 코드를 조합하여 상기 시드 코드를 생성할 수 있다.
상기 시드 코드 생성부는, 상기 변환된 행렬에서 각 행마다 하나의 코드만을 추출하고, 상기 추출된 코드를 조합하여 상기 시드 코드를 생성할 수 있다.
상기 변환된 행렬은 상기 N과 상기 M이 동일한 행렬이고, 상기 시드 코드 생성부는 상기 변환된 행렬에서 상기 n과 상기 m이 동일하여 상기 변환된 행렬의 대각선에 해당하는 코드만을 추출하고, 상기 추출된 코드를 조합하여 상기 시드 코드를 생성할 수 있다.
상기 난수 생성부는, 상기 생성된 시드 코드를 입력 받아 저장하고, 클락 신호에 응답하여 상기 저장된 시드 코드에 포함된 비트 값 각각을 순차적으로 이동시키면서 난수와 관련된 적어도 하나의 비트 정보를 포함하는 코드를 출력하여 상기 난수를 생성하는 레지스터; 및 상기 레지스터가 상기 코드를 출력하는 것을 반복하도록 상기 클락 신호를 제어하는 제어부;를 포함할 수 있다.
상기 레지스터는, 상기 생성된 시드 코드의 비트 값을 입력 받아 저장하고, 상기 클락 신호에 응답하여 상기 저장된 시드 코드의 비트 값을 출력하는 복수 개의 플립플롭; 및 선택 신호에 응답하여 상기 생성된 시드 코드의 비트 값을 각각 상기 복수 개의 플립플롭으로 선택적으로 출력시키는 복수 개의 멀티플렉서;를 포함하고, 상기 복수 개의 플립플롭은, 상기 복수 개의 플립플롭 중 각각의 플립플롭의 출력이 다음 플립플롭의 입력으로 연결되도록 순차적으로 상기 복수 개의 멀티플렉서와 연결되고, 상기 제어부는 상기 선택 신호를 제어할 수 있다.
상기 복수 개의 플립플롭 중 최종 플립플롭의 출력은 상기 복수 개의 플립플롭 중 제1 플립플롭에 저장되도록 상기 복수 개의 멀티플렉서 중 제1 멀티플렉서의 입력과 연결되고, 상기 최종 플립플롭의 출력은, 상기 난수와 관련된 비트 값 및 제1 플립플롭에 저장되도록 상기 제1 멀티플렉서로 피드백시키는 비트 값을 포함할 수 있다.
상기 난수 생성부는 상기 피드백 된 비트 값 및 상기 최종 플립플롭 이외의 플립플롭의 출력 비트 값을 수신하여 논리 연산하고, 상기 논리 연산된 결과에 따른 비트 값을 출력하여 상기 제1 멀티플렉서로 피드백시키는 논리 연산부;를 더 포함할 수 있다.
상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 난수 생성 방법은 센서를 이용하여 사용자의 생체 신호를 측정하는 단계; 상기 측정된 생체 신호를 디지털 신호로 변환하는 단계; 상기 변환된 디지털 신호로부터 기 설정된 시점에 대응되는 샘플을 추출하는 단계; 상기 추출된 샘플의 크기를 난수 생성과 관련된 이진 코드로 변화시킨 시드 코드를 생성하는 단계; 및 상기 생성된 시드 코드를 입력 받아 상기 난수를 생성하는 단계;를 포함할 수 있다.
상기 생체 신호를 측정하는 단계는 센서를 이용하여 사용자의 심장 박동과 동기화되어 혈량의 변화를 나타내며 주기를 가지는 PPG(Photoplethysmogram) 신호를 측정할 수 있다.
상기 디지털 신호로 변환하는 단계는 상기 측정된 생체 신호를 기 설정된 시간 간격으로 샘플링하는 단계; 및 상기 샘플링 된 시점에 대응되는 상기 생체 신호의 크기를 정수화로 양자화시킨 디지털 신호로 변환하는 단계;를 포함할 수 있다.
상기 샘플을 추출하는 단계는 상기 변환된 디지털 신호로부터 기 설정된 시점에 대응되는 N 개(상기 N은 2 이상인 자연수)의 샘플 각각을 추출하고, 상기 시드 코드를 생성하는 단계는 상기 추출된 N 개의 샘플 크기를 이진 코드로 변환시킨 N 개의 샘플 코드를 생성하는 단계; 및 상기 생성된 N 개의 샘플 코드를 조합하여 상기 시드 코드를 생성하는 단계;를 포함할 수 있다.
상기 난수를 생성하는 단계는 상기 생성된 시드 코드를 입력 받아 저장하는 단계; 상기 저장된 시드 코드에 포함된 비트 값 각각을 추출하여 저장하는 단계; 클락 신호에 응답하여 상기 저장된 비트 값 각각을 순차적으로 이동시키면서 난수와 관련된 적어도 하나의 비트 정보를 포함하는 코드를 출력하는 단계; 및 상기 코드를 출력하는 것을 반복하도록 상기 클락 신호를 제어하는 단계;를 포함할 수 있다.
상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 난수를 생성하는 방법이 컴퓨터에서 실행시키기 위한 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램을 제공할 수 있다.
이상과 같은 본 발명의 실시 예에 따라 사용자 자신만의 고유한 생체 신호를 이용하여 예측 불가능한 난수를 생성하여 보안을 강화할 수 있다.
또한, 본 발명의 일 실시 예에 따라 생성된 난수는 사용자 자신만의 고유한 생체 신호를 이용하므로 개인의 인증에도 쉽게 이용할 수 있다.
또한, 본 발명의 일 실시 예에 따라 난수를 생성하는 경우 간단한 하드웨어 기반을 사용하므로 저전력 및 소형화가 가능한 장점이 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
도 1은 본 발명의 일 실시 예에 따른 난수 생성 장치의 구성을 개략적으로 도시한 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 생체 신호를 디지털 신호로 변화시키는 것을 나타낸 것이다.
도 3 내지 도 5는 본 발명의 일 실시 예에 따른 시드 코드를 생성하는 방법을 나타낸 것이다.
도 6은 본 발명의 일 실시 예에 따른 난수 생성부의 구성을 개략적으로 도시한 블록도이다.
도 7 내지 도 10은 본 발명의 일 실시 예에 따라 난수를 생성하기 위한 회로도를 나타낸 것이다.
도 11은 본 발명의 일 실시 예에 따른 난수 생성 방법을 설명하기 위한 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서 어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 "제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
본 명세서에서 각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 명세서에서, “가진다”, “가질 수 있다”, “포함한다” 또는 “포함할 수 있다”등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
또한, 본 명세서에 기재된 "...부", "...기", "모듈", "블록"등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 난수 생성 장치의 구성을 개략적으로 도시한 블록도이다.
도 1을 참조하면, 난수 생성 장치(100)는 생체 신호 측정부(110), 생체 신호 디지털 변환부(120), 시드 코드 생성부(130) 및 난수 생성부(140)를 포함할 수 있다.
생체 신호 측정부(110)는 센서를 이용하여 사용자의 생체 신호를 측정할 수 있다.
사람들은 각각 자신만의 고유한 생체 신호를 포함하고 있다. 예를 들면 사람들은 심장 박동으로 인해 동맥으로 전달되는 맥파의 전달 속도, 호흡 압력 생체 임피던스 등과 같은 사람들 자신만의 고유한 신체 정보를 포함하고 있다.
생체 신호 측정부(110)는 상술한 사용자의 생체 신호를 센서를 이용하여 측정할 수 있으며, 사용자의 생체 신호를 측정하기 위한 센서는 센서를 구동시키는 센서 구동 수단 및 신호 전처리부를 포함할 수 있다.
생체 신호 측정부(110)는 상술한 센서로부터 심장의 박동과 관련되어 있는 생체 신호인 심전도(electrocardiogram, ECG), 대뇌의 활동 상태에 따라 변화하는 생체 신호인 뇌전도(electroencephalogram, EEG), 근육의 활동 상태를 나타내는 신호인 근전도(electromyogram, EMG) 또는 신체 말단에서 혈관의 용적이 변화하는 신호인 광용정맥파(photoplethysmogram, PPG)와 같은 사용자의 생체 신호를 측정할 수 있다. 단, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것이 아니며, 사용자 자신만의 고유한 생체 신호에 해당되는 모든 신호가 본 발명에 개시된 생체 신호에 해당될 수 있다.
본 발명의 일 실시 예에 따른 생체 신호 측정부(110)는 다수의 센서를 포함할 수 있다.
생체 신호 디지털 변환부(120)는 생체 신호 측정부(110)에서 측정된 사용자의 생체 신호를 입력 받을 수 있고, 입력 받은 생체 신호를 디지털 신호로 변환하여 출력할 수 있다.
본 발명의 일 실시 예에 따른 생체 신호 디지털 변환부(120)는 생체 신호 측정부(110)에서 측정된 일정한 신호를 갖는 생체 신호에서 기 설정된 구간을 선택하여 디지털 신호로 변환할 수 있다.
본 발명의 일 실시 예에 따른 생체 신호 디지털 변환부(120)는 생체 신호 측정부(110)에서 측정된 사용자의 생체 신호를 기 설정된 시간 간격으로 샘플링(sampling) 할 수 있다. 또한, 생체 신호 디지털 변환부(120)는 사용자의 생체 신호를 샘플링 된 시점에 대응되는 생체 신호의 크기를 정수화로 양자화(quantization)시킨 디지털 신호로 변환할 수 있다.
샘플링은 시간 축 방향으로 디지털화 시키는 과정으로, 구체적으로 연속적인 시간에 대해 생성된 아날로그 신호를 기 설정된 시간 간격에 해당하는 이산적인 시간에 대한 신호로 변환시키는 과정을 나타낸다. 상술한 기 설정된 시간 간격은 1초일 수 있으나 이에 한정되는 것은 아니며 2초, 1분 또는 1시간과 같이 다양한 시간 간격에 따라 이산적인 시간에 대한 아날로그 신호 추출이 가능하다. 따라서, 샘플링에 의해 연속적인 아날로그 시간이 이산 시간으로 나타날 수 있다.
따라서, 본 발명의 일 실시 예에 따라 생체 신호 디지털 변환부(120)는 연속적인 시간에 대하여 측정된 생체 신호를 기 설정된 시간 간격을 가지는 신호로 변환할 수 있다.
상술한 바와 같이 샘플링은 연속적인 시간에 대한 신호를 이산적인 시간에 대한 신호로 변환시키는 과정인 반면 양자화는 연속적인 시간 축 상에서 각 시점에 해당되는 신호의 크기를 이산적인 분포를 갖는 신호의 크기로 재구성하는 것을 나타낸다. 상술한 재구성하는 방법에는 정수로 수치화하는 방법이 사용될 수 있다. 수치화하는 방법은 반올림이 해당될 수 있으나 이에 한정되는 것은 아니고 정수로 수치화시키는 다양한 방법이 사용될 수 있다.
예를 들면, 본 발명의 일 실시 예에 따른 생체 신호 디지털 변환부(120)는 어느 한 시점에 해당하는 아날로그 신호의 크기가 10.83568인 경우 10.83568에서 소수점 뒷자리를 버림으로써 아날로그 신호의 크기를 디지털 신호의 크기인 10으로 변환할 수 있다.
또한, 상술한 방법에 의해 측정된 생체 신호의 경우 노이즈가 포함될 수 있다. 본 발명의 또 다른 일 실시 예에 따른 생체 신호 디지털 변환부(120)는 노이즈에 해당하는 고주파 신호를 제거할 수 있는 저역 통과 필터(LPF)를 포함할 수 있다.
시드(seed) 코드 생성부(130)는 생체 신호 디지털 변환부(120)에서 변한된 디지털 신호로부터 기 설정된 시점에 대응되는 샘플을 추출할 수 있고, 추출된 샘플의 크기를 난수 생성과 관련된 이진 코드로 변화시킬 수 있다.
본 명세서에서 상술한 난수 생성과 관련된 이진 코드는 시드 코드라고 나타낸다.
본 발명의 일 실시 예에 따른 시드 코드 생성부(130)는 생체 신호 디지털 변환부(120)에서 변환된 디지털 신호로부터 기 설정된 시점에 대응되는 복수 개인 N 개(N은 2 이상의 자연수에 해당함)의 샘플을 각각 추출할 수 있다. 또한, 시드 코드 생성부(130)는 추출된 N 개의 샘플에 해당되는 샘플의 크기를 이진 코드로 변환시켜 N 개의 샘플 코드를 생성할 수 있다. 시드 코드 생성부(130)는 생성된 N 개의 샘플 코드를 조합하여 시드 코드를 생성할 수 있다. 시드 코드를 생성하는 구체적인 방법은 후술하는 도 3 내지 도 5를 참고하여 설명하도록 한다.
난수 생성부(140)는 시드 코드 생성부(130)에서 생성된 시드 코드를 입력 받아 난수를 생성할 수 있다. 난수를 생성하는 구체적인 방법은 후술하는 도 6 내지 도 10을 참고하여 설명하도록 한다.
도 2는 본 발명의 일 실시 예에 따른 생체 신호를 디지털 신호로 변화시키는 것을 나타낸 것이다.
도 2(a) 및 도 2(b)를 참조하면, 본 발명의 일 실시 예에 따른 생체 신호 측정부는 센서를 이용하여 사용자의 심장 박동과 동기화되어 혈량의 변화를 나타내는 PPG(Photoplethysmogram) 신호를 측정할 수 있다.
사용자의 심장 박동에 동기화되어 손가락 끝 혈관에서의 동맥혈량(Arterial Blood volume) 및 정맥혈량(Venous blood volume)이 증가하고 줄어드는 상태가 반복되고, 빛이 흡수되는 정도는 지나가는 경로에 있는 피부, 조직, 혈액의 양에 비례한다. 따라서, 도 2(a) 및 도 2(b)를 참조하면, 생체 신호 측정부는 센서를 이용하여 도 2(a)에서와 같이 혈량의 변화에 따라 빛을 흡수할 수 있고, 흡수되는 빛의 광량을 이용하여 PPG 신호를 측정할 수 있으며, 측정된 PPG 신호를 그래프로 출력 할 수 있다. 도 2(b)는 출력된 PPG 신호 그래프의 일부분을 추출하여 나타낸 것이며, PPG 신호는 일정한 주기를 가질 수 있다. 단, 상술한 PPG 신호는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니며, 생체 신호와 관련된 다양한 신호일 수 있다.
도 2(c)는 생체 신호 디지털 변환부가 도 2(b)에 나타난 PPG 신호 그래프를 기 설정된 시간 간격으로 샘플링하고, 샘플링 된 시점에 대응되는 생체 신호의 크기를 양자화 레벨 12로 정수화시켜 디지털 신호로 변환한 그래프를 나타낸 것이다. 단, 상술한 샘플링 및 양자화 레벨은 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니다.
도 3은 본 발명의 일 실시 예에 따른 시드 코드를 생성하는 방법을 나타낸 것이다.
도 3(a)에 나타난 그래프는 도 2(c)에서와 동일한 그래프로 PPG 신호 그래프가 양자화 레벨 12로 정수화된 디지털 신호로 변환된 그래프를 나타낸 것이고, 본 발명의 일 실시 예에 따른 시드 코드 생성부는 t 시점에 대응되는 샘플(310)을 추출할 수 있고, 추출된 샘플(310)의 크기는 10을 나타낸다.
도 3(b)를 참조하면, 시드 코드 생성부는 도 3(a)에서 추출된 샘플(310)의 크기 10을 난수 생성과 관련된 이진 코드인 1010(10=23+21)(320)으로 변환할 수 있다. 상술한 4bit 코드인 1010(320)이 시드 코드에 해당한다.
도 4는 본 발명의 또 다른 일 실시 예에 따른 시드 코드를 생성하는 방법을 나타낸 것이다.
본 발명의 일 실시 예에 따른 시드 코드 생성부는 변환된 디지털 신호로부터 기 설정된 시점에 대응되는 N개의 샘플 각각을 추출할 수 있으며, 도 4(a)를 참조하면 시드 코드 생성부는 기 설정된 시점인 t1에 대응되는 샘플 1(410), t2에 대응되는 샘플 2(420), t3에 대응되는 샘플 3(430) 및 t4에 대응되는 샘플 4(440)인 4개의 샘플을 추출할 수 있다. 단, 상술한 예는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니며, 시드 코드 생성부는 다양한 개수의 샘플을 추출할 수 있다.
도 4(b)를 참조하면, 시드 코드 생성부는 추출된 4개의 샘플 각각에 해당되는 샘플 크기를 4 비트인 샘플 코드로 변환할 수 있다. 구체적으로, 추출된 샘플 1(410)의 크기는 10을 나타내며 시드 코드 생성부는 추출된 샘플 1(410)의 크기 10을 이진 코드로 변환시켜 1010인 제1 샘플 코드(411)을 생성할 수 있다. 추출된 샘플 2(420)의 크기는 6을 나타내며 시드 코드 생성부는 추출된 샘플 2(420)의 크기 6을 이진 코드로 변환시켜 0110인 제2 샘플 코드(421)을 생성할 수 있다. 추출된 샘플 3(430)의 크기는 4을 나타내며 시드 코드 생성부는 추출된 샘플 3(430)의 크기 4를 이진 코드로 변환시켜 0100인 제3 샘플 코드(431)을 생성할 수 있다. 추출된 샘플 4(440)의 크기는 6을 나타내며 시드 코드 생성부는 추출된 샘플 4(440)의 크기 6을 이진 코드로 변환시켜 0110인 제4 샘플 코드(441)을 생성할 수 있다.
도 4(c)를 참조하면, 시드 코드 생성부는 생성된 4개의 샘플 코드를 4 x 4행렬로 변환시킬 수 있다. 시드 코드 생성부는 변환된 4 x 4 행렬에서 1행에서 비트 값 0(411a), 2행에서 비트 값 1(421a), 3행에서 비트 값 1(431a) 및 4행에서 비트 값 0(441a)을 추출할 수 있다.
따라서, 본 발명의 일 실시 예에 따른 시드 코드 생성부는 변환된 행렬에서 각 행마다 하나의 코드만을 추출할 수 있다. 또한, 도 4(c)를 참조하면, 변환된 행렬은 행과 열의 수가 같은 정사각형 모양의 행렬일 수 있고, 시드 코드 생성부는 변환된 행렬의 대각선에 해당하는 코드만을 추출할 수 있다.
또한, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니며, 상술한 변환된 행렬은 행과 열의 수가 다른 행렬일 수 있으며 시드 코드 생성부는 하나의 행 또는 하나의 열에서 복수 개의 비트 값을 추출할 수도 있다.
도 4(d)를 참조하면, 시드 코드 생성부는 도 4(c)에서 추출된 비트 값을 조합하여 시드 코드에 해당하는 0110(450)을 생성할 수 있다. 단, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 추출된 비트 값은 다양한 방법으로 조합될 수 있다.
도 5는 본 발명의 또 다른 일 실시 예에 따른 시드 코드를 생성하는 방법을 나타낸 것이다.
도 5(a)에 나타난 4개의 샘플 코드는 도 4(b)에 나타난 4개의 샘플 코드와 동일하다.
도 5(a) 및 도 5(b)를 참조하면, 시드 코드 생성부는 시드 코드(510)의 3rd 비트 값(511a)을 생성하기 위해 제1 샘플 코드(411) 및 제2 샘플 코드(421)를 추출할 수 있다. 시드 코드 생성부는 추출된 2 개의 샘플 코드 각각(411, 421)에서 3rd 비트 값(511)인 1 및 0을 추출할 수 있다. 시드 코드 생성부는 추출된 2 개의 비트 값을 논리 연산하여 시드 코드(510)의 3rd 비트 값(511a)을 생성할 수 있다. 도 5(b)의 시드 코드(510)의 3rd 비트 값(511a)은 추출된 2 개의 비트 값이 배타적 논리합(XOR) 연산으로부터 논리 연산 되어 출력된 비트 값(511a)을 나타낸다.
배타적 논리합(XOR) 연산자는 입력된 2개 중 1개만 참일 때 참이 되는 논리 연산자에 해당한다.
상술한 방법과 동일한 방법을 반복하여, 시드 코드 생성부는 제2 샘플 코드(421) 및 제3 샘플 코드(431)에서 2nd 비트 값(512)을 추출하고, 추출된 2 개의 비트 값을 배타적 논리 연산하여 시드 코드(510)의 2nd 비트 값(512a)을 생성할 수 있다.
상술한 방법과 동일한 방법을 반복하여, 시드 코드 생성부는 제3 샘플 코드(431) 및 제4 샘플 코드(441)에서 1st 비트 값(513)을 추출하고, 추출된 2 개의 비트 값을 배타적 논리 연산하여 시드 코드(510)의 1st 비트 값(513a)을 생성할 수 있다.
마찬가지로, 시드 코드 생성부는 제4 샘플 코드(441) 및 제1 샘플 코드(411)에서 0th 비트 값(514)을 추출하고, 추출된 2 개의 비트 값을 배타적 논리 연산하여 시드 코드(510)의 0th 비트 값(514a)을 생성할 수 있다.
따라서, 시드 코드 생성부는 상술한 방법에 의해 출력된 비트 값을 조합하여 시드 코드를 생성할 수 있다. 단, 상술한 예시는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 다양한 방법에 의해 조합될 수 있으며, 논리 연산 또한 XOR 이외에도 논리합(or), 논리곱(and), 논리곱 부정(nand) 또는 논리합 부정(nor)과 같은 다양한 논리 연산이 가능하다.
도 6은 본 발명의 일 실시 예에 따른 난수 생성부의 구성을 개략적으로 도시한 블록도이다.
도 6을 참조하면, 난수 생성부(140)은 레지스터(141) 및 제어부(142)를 포함할 수 있다.
레지스터(141)는 시드 코드(131)을 입력 받아 저장할 수 있다. 또한, 레지스터(141)는 클락 신호(clock signal)에 응답하여 저장된 시드 코드(131)에 포함된 비트 값 각각을 순차적으로 이동시키면서 난수와 관련된 적어도 하나의 비트 정보를 포함하는 코드를 출력(out)하여 난수를 생성할 수 있다.
제어부(142)는 레지스터(141)가 코드를 출력하는 것을 반복하도록 클락 신호를 제어할 수 있다.
본 발명의 일 실시 예에 따른 클락 신호는 논리상태 H(high,논리 1)와 L(low,논리 0)이 주기적으로 나타나는 방형파 신호를 나타낸다.
난수를 생성하는 방법은 후술하는 도 7 내지 도 10을 참조하여 설명하도록 한다.
도 7 내지 도 10은 본 발명의 일 실시 예에 따라 난수를 생성하기 위한 회로도를 나타낸 것이다.
도 7을 참조하면, 난수 생성부(140)는 레지스터(141) 및 제어부를 포함하며, 본 발명의 일 실시 예에 따른 레지스터(140)는 4개의 플립플롭(flip-flop, FF)(141a 내지 141d) 및 4개의 멀티플렉서(141-1 내지 141-4)를 포함할 수 있다. 단, 상술한 플립플롭 및 멀티플렉서의 개수는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니며 플립플롭 및 멀티플렉서의 개수가 4개 보다 작거나 4개 보다 많을 수 있다.
본 발명의 일 실시 예에 따른 플립플롭은 입력되는 값을 클락 신호의 엣지(edge)에서 캡처해서 출력에 반영하고, 엣지가 발생하지 않는 시간에는 출력이 변하지 않고 유지하는 성질을 가진 D 플립플롭 일 수 있다.
본 명세서에서 도면에는 도시하지 않았지만 레지스터에 포함된 플립플롭에는 클락 신호 라인이 연결되어 있어, 플립플롭은 클락 신호에 응답하여 동작할 수 있다.
4개의 멀티플렉서는 선택 신호(132)에 응답하여 생성된 시드 코드(320)의 비트 값을 각각 4개의 플립플롭(141a 내지 141d)으로 선택적으로 출력시킬 수 있다. 본 발명의 일 실시 예를 설명하기 위해 상술한 시드 코드(320)는 도 3에서 설명한 시드 코드(320)를 예를 들어 설명하도록 한다. 단, 상술한 시드 코드(320)는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니며 다양한 시드 코드가 될 수 있다.
구체적으로 제1 멀티플렉서(141-1)는 선택 신호(132)에 응답하여 시드 코드(320)의 비트 값 중 0th 비트 값인 0을 선택하여 제1 플립플롭(141a)으로 출력시킬 수 있다. 또한, 제2 멀티플렉서(141-2)는 선택 신호(132)에 응답하여 시드 코드(320)의 비트 값 중 1st 비트 값인 1을 선택하여 제2 플립플롭(141b)으로 출력시킬 수 있다. 또한, 제3 멀티플렉서(141-3)는 선택 신호(132)에 응답하여 시드 코드(320)의 비트 값 중 2nd 비트 값인 0을 선택하여 제3 플립플롭(141c)으로 출력시킬 수 있다. 또한, 제4 멀티플렉서(141-4)는 선택 신호(132)에 응답하여 시드 코드(320)의 비트 값 중 3rd 비트 값인 1을 선택하여 제4 플립플롭(141d)으로 출력시킬 수 있다.
본 발명의 일 실시 예에 따른 시드 코드에 해당하는 비트 값 중 ‘1’은 전압(혹은 전류)이 높은 레벨일 때 쓰이는 H(high)를 나타내고, ‘0’은 전압(혹은 전류)이 낮은 레벨일 때 쓰이는 L(low)를 나타낸다.
제어부는 멀티플렉서가 시드 코드(320)로부터 추출하려는 비트 값을 선택하도록 선택 신호(132)를 제어할 수 있다.
4개의 플립플롭(141a 내지 141d)은 생성된 시드 코드(320)의 비트 값을 4개의 멀티플렉서(141-1 내지 141-4)로부터 각각 입력 받을 수 있고, 4개의 플립플롭(141a 내지 141d)은 입력 받은 시드 코드(320)의 비트 값을 저장할 수 있다. 또한, 4개의 플립플롭(141a 내지 141d) 각각은 클락 신호에 응답하여 저장된 시드 코드(131)의 비트 값을 출력(out 1 내지 out 4)할 수 있다. 본 발명의 일 실시 예에 따르면, 제1 플립플롭(141a)은 0을 출력으로, 제2 플립플롭(141b)은 1을 출력으로, 제3 플립플롭(141c)은 0을 출력으로, 제4 플립플롭(141d)은 1을 출력시킬 수 있다.
제1 내지 제4 플립플롭(141a 내지 141d) 중 각각의 플립플롭의 출력은 다음 플립플롭의 입력으로 연결되도록 순차적으로 제1 내지 제4 멀티플렉서(141-1 내지 141-4)와 연결되어 있다. 구체적으로 제1 FF(141a)의 출력은 제2 멀티플렉서(141-2)의 입력에 연결되어 있고 제2 멀티플렉서(141-2)의 출력은 제2 FF(141b)의 입력에 연결되어 있다. 따라서, 제2 멀티플렉서(141-2)는 선택 신호(132)에 응답하여 제1 FF(141a)의 출력을 선택하여 제1 FF(141a)에 저장되어 있던 비트 값을 제2 FF(141b)로 이동시킬 수 있다. 따라서, 제2 FF(141b)는 제1 FF(141a)에 저장되어 있던 비트 값을 전달 받을 수 있고, 제2 FF(141b)는 전달 받은 비트 값을 저장할 수 있다. 마찬가지로, 제2 FF(141b)의 출력은 제3 멀티플렉서(141-3)의 입력에 연결되어 있고, 제3 멀티플렉서(141-3)의 출력은 제3 FF(141c)의 입력에 연결되어 있으므로 제2 FF(141b)의 비트 값은 제3 FF(141c)로 전달될 수 있다. 또한, 제3 FF(141c)의 출력은 제4 멀티플렉서(141-4)의 입력에 연결되어 있고, 제4 멀티플렉서(141-4)의 출력은 제4 FF(141d)의 입력에 연결되어 있으므로 제3 FF(141c)의 비트 값 또한 제4 FF(141d)로 전달될 수 있다.
상술한 방법에 의해 4개의 플립플롭(141a 내지 141d) 각각은 저장된 시드 코드(320)의 비트 값을 출력하여 제1 난수를 생성할 수 있고, 4개의 플립플롭(141a 내지 141d) 각각은 제1 난수를 생성한 후 4개의 플립플롭(141a 내지 141d) 각각에 저장된 시드 코드(320)의 비트 값을 연결되어 있는 다음 플립플롭으로 이동시켜 다시 새로운 비트 값을 출력하여 제2 난수를 생성할 수 있으며, 상술한 방법이 반복될 수 있다.
도 8을 참조하면, 본 발명의 또 다른 일 실시 예에 따른 난수 생성부(140)는 도 7과 다르게 제4 플립플롭(141d)의 출력이 제1 멀티플렉서(141-1)의 입력에 연결되어 있고, 제1 멀티플렉서(141-1)의 출력은 제1 플립플롭(141a)의 입력에 연결되어 있다. 또한, 난수를 생성하기 위한 최종 출력은 제4 플립플롭(141d)의 출력에 의해 결정될 수 있다. 따라서, 제4 플립플롭(141d) 출력은 최종 플립플롭(141d)의 출력에 해당되며 최종 플립플롭(141d)에서 출력되는 출력 값은 난수와 관련된 비트 값 및 제1 플립플롭(141a)에 저장되도록 제1 멀티플렉서(141-1)의 입력으로 피드백시키는 비트 값을 포함한다.
구체적으로, 제4 FF(141d)에 초기 저장된 비트 값이 시드 코드(320)의 3rd 비트 값인 1이라고 하고, 난수 생성 장치는 4 비트의 난수를 생성한다고 할 때 제4 FF(141d)는 난수의 3rd 비트에 해당하는 비트 값인 1을 출력함과 동시에 제4 FF(141d)의 비트 값인 1은 제1 멀티플렉서(141-1)의 입력으로 피드백 되어 제1 FF(141a)에 전달될 수 있고, 제1 FF(141a)는 전달된 비트 값을 저장할 수 있다. 본 발명의 일 실시 예에 따른 난수 생성부(140)는 상술한 방법을 반복하여 난수를 생성할 수 있다.
도 9를 참조하면, 난수 생성부(140)는 논리 연산부(143)를 더 포함할 수 있다. 논리 연산부(143)는 최종 플립플롭(141d)에서 출력된 비트 값 및 최종 플립플롭(141d) 이외의 플립플롭에서 출력된 비트 값을 입력 받을 수 있다. 논리 연산부(143)는 입력 받은 두 비트 값을 논리 연산할 수 있고, 논리 연산된 결과에 해당하는 비트 값을 제1 멀티플렉서(141-1)에 전달할 수 있으며, 제1 멀티플렉서(141-1)는 논리 연산부(143)로부터 전달 받은 비트 값을 선택 신호(132)에 응답하여 제1 FF(141a)로 출력시킬 수 있다. 따라서, 제1 FF(141a)은 논리 연산부(143)에서 논리 연산된 비트 값을 입력 받을 수 있고, 제1 FF(141a)는 입력 받은 비트 값을 저장할 수 있다.
상술한 논리 연산부(143)는 입력된 2개 중 1개만 참일 때 참이 되는 논리 연산에 해당하는 배타적 논리합(XOR) 연산, 입력된 2개 중 적어도 1개가 참이면 참이 되는 논리 연산에 해당하는 논리합(or), 입력된 2개 모두 참일 때 참이 되는 논리 연산에 해당하는 논리곱(and), 논리곱의 출력을 부정(NOT)하는 논리곱 부정(nand) 또는 논리합의 출력을 부정하는 논리합 부정(nor) 등 다양한 논리 연산을 할 수 있다.
따라서, 난수 생성부(140)은 상술한 과정을 반복하면서 도 8과 동일한 방법으로 난수를 생성할 수 있다.
도 10을 참조하면, 본 발명의 또 다른 일 실시 예에 따른 난수 생성부(140)는 복수 개의 논리 연산부를 포함할 수 있으며, 도 10에서 난수 생성부(140)는 제1 논리 연산부(143a) 및 제2 논리 연산부(143b)인 2개의 논리 연산부(143a, 143b)를 포함할 수 있다. 단, 상술한 2개의 논리 연산부(143a, 143b)는 본 발명의 일 실시 예를 설명하기 위한 예시일 뿐 이에 한정되는 것은 아니며 난수 생성부(140)는 2개 이상의 복수 개의 논리 연산부를 포함할 수 있다.
구체적으로 제1 논리 연산부(143a)는 제4 FF(141d)에서 출력된 값과 제3 FF(141c)에서 출력된 값을 입력 받아 논리 연산한 제1 결과 값을 출력할 수 있다. 제2 논리 연산부(143b)는 제1 논리 연산부(143a)에서 출력된 제1 결과 값 및 제2 FF(141b)에서 출력된 값을 입력 받아 논리 연산한 제2 결과 값을 출력할 수 있다. 제2 논리 연산부(143b)는 출력된 제2 결과 값을 제1 멀티플렉서(141-1)에 전달할 수 있으며, 제1 멀티플렉서(141-1)는 전달 받은 제2 결과 값을 선택 신호(132)에 응답하여 제1 FF(141a)로 출력시킬 수 있다. 따라서, 제1 FF(141a)는 제2 논리 연산부(143b)에서 논리 연산된 제2 결과 값을 입력 받을 수 있고, 제1 FF(141a)는 입력 받은 논리 연산된 제2 결과 값을 저장할 수 있다.
상술한 제1 및 제2 논리 연산부(143a, 143b) 각각은 배타적 논리합(XOR), 논리합(or), 논리곱(and), 논리곱 부정(nand) 또는 논리합 부정(nor) 등 다양한 논리 연산을 할 수 있으며, 제1 논리 연산부(143a)와 제2 논리 연산부(143b)는 서로 같은 논리 연산을 할 수 있다. 또한, 제1 논리 연산부(143a)와 제2 논리 연산부(143b)는 서로 다른 논리 연산을 할 수도 있다.
따라서, 난수 생성부(140)는 상술한 과정을 반복하면서 난수를 생성할 수 있다.
도 11은 본 발명의 일 실시 예에 따른 난수 생성 방법을 설명하기 위한 흐름도이다.
도 11을 참조하면, 생체 신호 측정부는 센서를 이용하여 사용자의 생체 신호를 측정한다(S1110).
본 발명의 일 실시 예에 따른 생체 신호 측정부는 센서를 이용하여 사용자의 심장 박동과 동기화되어 혈량의 변화를 나타내며 주기를 가지는 PPG(Photoplethysmogram) 신호를 측정할 수 있다.
생체 신호 디지털 변환부는 생체 신호 측정부에서 측정된 생체 신호를 디지털 신호로 변환한다(S1120).
본 발명의 일 실시 예에 따른 생체 신호 디지털 변환부는 생체 신호 측정부에서 측정된 생체 신호를 기 설정된 시간 간격으로 샘플링할 수 있고, 샘플링 된 시점에 대응되는 생체 신호의 크기를 정수화로 양자화시킨 디지털 신호로 변환할 수 있다.
시드 코드 생성부는 생체 신호 디지털 변환부에서 변환된 디지털 기 설정된 시점에 대응되는 샘플을 추출한다(S1130).
본 발명의 일 실시 예에 따른 시드 코드 생성부는 변환된 디지털 신호로부터 기 설정된 시점에 대응되는 N 개(상기 N은 2 이상인 자연수)의 샘플 각각을 추출할 수 있다.
시드 코드 생성부는 추출된 샘플의 크기를 난수 생성과 관련된 이진 코드로 변화시킨 시드 코드를 생성한다(S1140).
본 발명의 일 실시 예에 따른 시드 코드 생성부는 추출된 N 개의 샘플 크기를 이진 코드로 변환시킨 N 개의 샘플 코드를 생성할 수 있고, 생성된 N 개의 샘플 코드를 조합하여 시드 코드를 생성할 수 있다.
난수 생성부는 시드 코드 생성부에서 생성된 시드 코드를 입력 받아 난수를 생성한다(S1150).
본 발명의 일 실시 예에 따른 난수 생성부는 생성된 시드 코드를 입력 받아 저장할 수 있고, 난수 생성부에 포함된 레지스터는 저장된 시드 코드에 포함된 비트 값 각각을 추출할 수 있고, 레지스터는 추출된 비트 값 각각을 저장할 수 있다. 또한, 레지스터는 클락 신호에 응답하여 저장된 비트 값 각각을 순차적으로 이동시키면서 난수와 관련된 적어도 하나의 비트 정보를 포함하는 코드를 출력할 수 있다.
본 발명의 일 실시 예에 따른 난수 생성부에 포함된 제어부는 코드를 출력하는 것을 반복하도록 클락 신호를 제어할 수 있다.
본 발명의 일 실시 예에 따라 난수를 생성하는 경우 사용자 자신만의 고유한 생체 신호를 이용하여 예측 불가능한 난수를 생성할 수 있으므로 보안의 강화가 가능하며, 생성된 난수는 사용자 자신만의 고유한 생체 신호를 이용한 경우이므로 개인의 인증에도 쉽게 이용될 수 있다.
또한, 본 발명의 일 실시 예에 따른 난수는 종래에 많은 하드웨어 기반인 TRNG IC를 사용하여 난수를 생성하는 것 보다 간단한 하드웨어 기반을 사용하여 난수를 생성하므로 저전력 및 소형화가 가능하다.
이상에서 설명한 본 발명의 실시 예를 구성하는 모든 구성요소들이 하나로 결합하거나 결합하여 동작하는 것으로 기재되어 있다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 또한, 이와 같은 컴퓨터 프로그램은 USB 메모리, CD 디스크, 플래쉬 메모리 등과 같은 컴퓨터가 읽을 수 있는 기록 매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시 예를 구현할 수 있다. 컴퓨터 프로그램의 기록 매체로서는 자기기록매체, 광 기록매체 등이 포함될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
100: 난수 생성 장치
110: 생체 신호 측정부
120: 생체 신호 디지털 변환부
130: 시드 코드 생성부
140: 난수 생성부

Claims (18)

  1. 센서를 이용하여 사용자의 생체 신호를 측정하는 생체 신호 측정부;
    상기 측정된 생체 신호를 디지털 신호로 변환하는 생체 신호 디지털 변환부;
    상기 변환된 디지털 신호로부터 기 설정된 시점에 대응되는 샘플을 추출하여, 상기 추출된 샘플의 크기를 난수 생성과 관련된 이진 코드로 변화시킨 시드 코드를 생성하는 시드 코드 생성부; 및
    상기 생성된 시드 코드를 입력 받아 상기 난수를 생성하는 난수 생성부를 포함하되,
    상기 난수 생성부는,
    상기 생성된 시드 코드를 입력 받아 저장하고, 클락 신호에 응답하여 상기 저장된 시드 코드에 포함된 비트 값 각각을 순차적으로 이동시키면서 난수와 관련된 적어도 하나의 비트 정보를 포함하는 코드를 출력하여 상기 난수를 생성하는 레지스터를 포함하는 것을 특징으로 하는 난수 생성 장치.
  2. 제1항에 있어서,
    상기 생체 신호 측정부는, 센서를 이용하여 사용자의 심장 박동과 동기화되어 혈량의 변화를 나타내는 PPG(Photoplethysmogram) 신호를 측정하고, 상기 PPG 신호는 주기를 가지는 난수 생성 장치.
  3. 제1항에 있어서,
    상기 생체 신호 디지털 변환부는, 상기 측정된 생체 신호를 기 설정된 시간 간격으로 샘플링하고, 상기 샘플링 된 시점에 대응되는 상기 생체 신호의 크기를 정수화로 양자화시킨 디지털 신호로 변환하는 난수 생성 장치.
  4. 제1항에 있어서,
    상기 시드 코드 생성부는, 상기 변환된 디지털 신호로부터 기 설정된 시점에 대응되는 N 개(상기 N은 2 이상인 자연수)의 샘플 각각을 추출하고, 상기 추출된 N 개의 샘플 크기를 이진 코드로 변환시킨 N 개의 샘플 코드를 생성하며, 상기 생성된 N 개의 샘플 코드를 조합하여 상기 시드 코드를 생성하는 난수 생성 장치.
  5. 제4항에 있어서,
    상기 시드 코드 생성부는, 상기 추출된 N 개의 샘플 각각에 해당되는 샘플 크기를 M 비트(상기 M은 2 이상인 자연수)인 샘플 코드로 변환하고, 상기 생성된 N 개의 샘플 코드 중에서 2 개의 샘플 코드를 추출하며, 상기 추출된 2 개의 샘플 코드 각각에서 M 비트 중 하나의 비트에 해당하는 값만을 추출하고, 상기 추출된 2 개의 비트 값을 논리 연산하여 상기 시드 코드에 해당하는 하나의 비트 값을 출력하는 과정을 반복하여 상기 시드 코드를 생성하는 난수 생성 장치.
  6. 제4항에 있어서,
    상기 시드 코드 생성부는,
    상기 추출된 N 개의 샘플 각각에 해당되는 샘플 크기를 M 비트인 샘플 코드로 변환하고, 상기 생성된 N 개의 샘플 코드를 N x M 행렬로 변환시키며, 상기 변환된 행렬에서 상기 N 행을 포함하는 행렬 중 n 행에 대응되는 Nn 행(상기 Nn 은 Nn≤N인 자연수, 상기 n은 자연수) 및 상기 M 열을 포함하는 행렬 중 m 열에 대응되는 Mm 열(상기 Mm 은 Mm≤M인 자연수, 상기 m은 자연수)에 해당하는 코드를 추출하고, 상기 추출된 코드를 조합하여 상기 시드 코드를 생성하는, 난수 생성 장치.
  7. 제6항에 있어서,
    상기 시드 코드 생성부는, 상기 변환된 행렬에서 각 행마다 하나의 코드만을 추출하고, 상기 추출된 코드를 조합하여 상기 시드 코드를 생성하는 난수 생성 장치.
  8. 제6항에 있어서,
    상기 변환된 행렬은 상기 N과 상기 M이 동일한 행렬이고,
    상기 시드 코드 생성부는, 상기 변환된 행렬에서 상기 n과 상기 m이 동일하여 상기 변환된 행렬의 대각선에 해당하는 코드만을 추출하고, 상기 추출된 코드를 조합하여 상기 시드 코드를 생성하는 난수 생성 장치.
  9. 제1항에 있어서,
    상기 난수 생성부는 ,
    상기 레지스터가 상기 코드를 출력하는 것을 반복하도록 상기 클락 신호를 제어하는 제어부;를 포함하는, 난수 생성 장치.
  10. 제9항에 있어서,
    상기 레지스터는,
    상기 생성된 시드 코드의 비트 값을 입력 받아 저장하고, 상기 클락 신호에 응답하여 상기 저장된 시드 코드의 비트 값을 출력하는 복수 개의 플립플롭; 및
    선택 신호에 응답하여 상기 생성된 시드 코드의 비트 값을 각각 상기 복수 개의 플립플롭으로 선택적으로 출력시키는 복수 개의 멀티플렉서;를 포함하고,
    상기 복수 개의 플립플롭은, 상기 복수 개의 플립플롭 중 각각의 플립플롭의 출력이 다음 플립플롭의 입력으로 연결되도록 순차적으로 상기 복수 개의 멀티플렉서와 연결되고,
    상기 제어부는 상기 선택 신호를 제어하는 난수 생성 장치.
  11. 제10항에 있어서,
    상기 복수 개의 플립플롭 중 최종 플립플롭의 출력은 상기 복수 개의 플립플롭 중 제1 플립플롭에 저장되도록 상기 복수 개의 멀티플렉서 중 제1 멀티플렉서의 입력과 연결되고,
    상기 최종 플립플롭의 출력은, 상기 난수와 관련된 비트 값 및 제1 플립플롭에 저장되도록 상기 제1 멀티플렉서로 피드백시키는 비트 값을 포함하는, 난수 생성 장치.
  12. 제11항에 있어서,
    상기 난수 생성부는 피드백 된 상기 비트 값 및 상기 최종 플립플롭 이외의 플립플롭의 출력 비트 값을 수신하여 논리 연산하고, 상기 논리 연산된 결과에 따른 비트 값을 출력하여 상기 제1 멀티플렉서로 피드백시키는 논리 연산부;를 더 포함하는, 난수 생성 장치.
  13. 센서를 이용하여 사용자의 생체 신호를 측정하는 단계;
    상기 측정된 생체 신호를 디지털 신호로 변환하는 단계;
    상기 변환된 디지털 신호로부터 기 설정된 시점에 대응되는 샘플을 추출하는 단계;
    상기 추출된 샘플의 크기를 난수 생성과 관련된 이진 코드로 변화시킨 시드 코드를 생성하는 단계; 및
    상기 생성된 시드 코드를 입력 받아 상기 난수를 생성하는 단계;를 포함하되,
    상기 난수를 생성하는 단계는
    상기 생성된 시드 코드를 입력 받아 저장하는 단계; 상기 저장된 시드 코드에 포함된 비트 값 각각을 추출하여 저장하는 단계; 및 클락 신호에 응답하여 상기 저장된 비트 값 각각을 순차적으로 이동시키면서 난수와 관련된 적어도 하나의 비트 정보를 포함하는 코드를 출력하는 단계를 포함하는 것을 특징으로 하는 난수 생성 방법.
  14. 제13항에 있어서,
    상기 생체 신호를 측정하는 단계는 센서를 이용하여 사용자의 심장 박동과 동기화되어 혈량의 변화를 나타내며 주기를 가지는 PPG(Photoplethysmogram) 신호를 측정하는 난수 생성 방법.
  15. 제13항에 있어서,
    상기 디지털 신호로 변환하는 단계는,
    상기 측정된 생체 신호를 기 설정된 시간 간격으로 샘플링하는 단계; 및
    상기 샘플링 된 시점에 대응되는 상기 생체 신호의 크기를 정수화로 양자화시킨 디지털 신호로 변환하는 단계;를 포함하는, 난수 생성 방법.
  16. 제13항에 있어서,
    상기 샘플을 추출하는 단계는 상기 변환된 디지털 신호로부터 기 설정된 시점에 대응되는 N 개(상기 N은 2 이상인 자연수)의 샘플 각각을 추출하고,
    상기 시드 코드를 생성하는 단계는,
    상기 추출된 N 개의 샘플 크기를 이진 코드로 변환시킨 N 개의 샘플 코드를 생성하는 단계; 및
    상기 생성된 N 개의 샘플 코드를 조합하여 상기 시드 코드를 생성하는 단계;를 포함하는 난수 생성 방법.
  17. 제13항에 있어서,
    상기 난수를 생성하는 단계는,
    상기 코드를 출력하는 것을 반복하도록 상기 클락 신호를 제어하는 단계;를 포함하는 난수 생성 방법.
  18. 컴퓨터에서 제13항 내지 제17항 중 어느 한 항에 따른 난수 생성 방법을 실행시키기 위한 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램.
KR1020180060165A 2018-05-28 2018-05-28 난수 생성 장치 및 그 방법 KR102079318B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180060165A KR102079318B1 (ko) 2018-05-28 2018-05-28 난수 생성 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180060165A KR102079318B1 (ko) 2018-05-28 2018-05-28 난수 생성 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20190135121A KR20190135121A (ko) 2019-12-06
KR102079318B1 true KR102079318B1 (ko) 2020-02-19

Family

ID=68836973

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180060165A KR102079318B1 (ko) 2018-05-28 2018-05-28 난수 생성 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR102079318B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021150082A1 (ko) * 2020-01-23 2021-07-29 주식회사 피에스디엘 보안 장치 및 보안 프로그램

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100718125B1 (ko) * 2005-03-25 2007-05-15 삼성전자주식회사 생체신호와 인공신경회로망을 이용한 생체인식 장치 및방법
KR20120082230A (ko) * 2011-01-13 2012-07-23 에스케이하이닉스 주식회사 랜덤 코드 발생회로를 포함하는 반도체 장치 및 반도체 시스템과, 데이터 프로그래밍 방법
KR101463062B1 (ko) * 2012-12-21 2014-11-19 연세대학교 산학협력단 신호 처리 장치 및 방법, 그를 이용한 수신기 그리고 거리 측정 장치
KR102198953B1 (ko) * 2014-03-12 2021-01-05 삼성전자주식회사 병렬 생체 신호 프로세서 및 병렬 생체 신호 프로세서의 제어 방법

Also Published As

Publication number Publication date
KR20190135121A (ko) 2019-12-06

Similar Documents

Publication Publication Date Title
Rahimi et al. Efficient biosignal processing using hyperdimensional computing: Network templates for combined learning and classification of ExG signals
US8073631B2 (en) Device and method for responding to influences of mind
Mukhopadhyay et al. A lossless ECG data compression technique using ASCII character encoding
Chen et al. VLSI implementation of a cost-efficient micro control unit with an asymmetric encryption for wireless body sensor networks
Sharma et al. IoT-based secure healthcare monitoring system
Sriraam Correlation dimension based lossless compression of EEG signals
Wu et al. Adaptive computing-based biometric security for intelligent medical applications
KR102079318B1 (ko) 난수 생성 장치 및 그 방법
Islam Using ECG signal as an entropy source for efficient generation of long random bit sequences
Liu et al. An energy-efficient compressed sensing-based encryption scheme for wireless neural recording
Zhang et al. Low-cost and confidential ECG acquisition framework using compressed sensing and chaotic systems for wireless body area network
Ben-Romdhane et al. Event-driven ECG sensor in healthcare devices for data transfer optimization
KR102217928B1 (ko) 랜덤 소수 생성 방법 및 그를 위한 장치
Zhao et al. Characterization of EEGs in Alzheimer's disease using information theoretic methods
Moosavi PPG-KeyGen: Using photoplethysmogram for key generation in wearable devices
Camara et al. A true random number generator based on gait data for the internet of you
Hameed et al. Compression and encryption for ECG biomedical signal in healthcare system
Abdel-Ghaffar et al. Personal authentication and cryptographic key generation based on electroencephalographic signals
CN110381461A (zh) 心电信号传输方法、装置、传感器、终端及存储介质
Lyp et al. LISH: A new random number generator using ECG noises
JP3803664B2 (ja) 乱数生成回路、半導体集積回路、icカード及び情報端末機器
Soni et al. AFD and chaotic map‐based integrated approach for ECG compression, steganography and encryption in E‐healthcare paradigm
Raheja et al. An Efficient Encryption-Authentication Scheme for Electrocardiogram Data using the 3DES and Water Cycle Optimization Algorithm
Marcos Rojas et al. Real time identification of motor imagery actions on EEG signals.
Singh et al. An improved ASCII character encoding method for lossless ECG compression

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