KR20130130622A - Method of ramdom number generation using low power microprocessor and apparatus for the same - Google Patents

Method of ramdom number generation using low power microprocessor and apparatus for the same Download PDF

Info

Publication number
KR20130130622A
KR20130130622A KR1020130016983A KR20130016983A KR20130130622A KR 20130130622 A KR20130130622 A KR 20130130622A KR 1020130016983 A KR1020130016983 A KR 1020130016983A KR 20130016983 A KR20130016983 A KR 20130016983A KR 20130130622 A KR20130130622 A KR 20130130622A
Authority
KR
South Korea
Prior art keywords
random number
internal state
number generator
power
noise source
Prior art date
Application number
KR1020130016983A
Other languages
Korean (ko)
Other versions
KR101438010B1 (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 US13/896,390 priority Critical patent/US9032005B2/en
Publication of KR20130130622A publication Critical patent/KR20130130622A/en
Application granted granted Critical
Publication of KR101438010B1 publication Critical patent/KR101438010B1/en

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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Sources (AREA)

Abstract

A random number generating method using low power microprocessor and a device therefor are disclosed. The random number generating method includes a step that the microprocessor determines whether external power is supplied to a random number generator, a step that the microprocessor updates an internal state of the random number generator with a first method when the external power is supplied, and a step that the microprocessor updates the internal state of the random number generator with a second method different from the first method when the external power is not supplied. [Reference numerals] (301) External power supply;(302) Power switching circuit;(303) Battery;(304) Hardware noise source;(305) Low-power micro processor;(307) Random number generation algorithm unit;(308) Initial value providing unit

Description

저전력 마이크로프로세서를 이용한 난수 발생 방법 및 이를 위한 장치 {METHOD OF RAMDOM NUMBER GENERATION USING LOW POWER MICROPROCESSOR AND APPARATUS FOR THE SAME}TECHNICAL FIELD [0001] The present invention relates to a random-number generating method using a low-power microprocessor,

본 발명은 난수 발생 기술에 관한 것으로, 특히 난수 발생기 시드를 예측 불가능하도록 관리하여 인증 및 암호화에 필요한 난수의 기밀성 및 무결성을 제공하는 난수 발생기에 관한 것이다.The present invention relates to a random number generation technique, and more particularly, to a random number generator that manages a seed of a random number generator in an unpredictable manner to provide confidentiality and integrity of a random number necessary for authentication and encryption.

마이크로프로세서 기반의 난수 발생기는 크게 외부 하드웨어 잡음원(hardware noise source)에서 수집된 잡음에 대한 선행 처리 및 보정 처리를 통해 응용프로그램에서 필요로 하는 난수를 발생시키는 방식과, 난수 시드 초기값과 난수 발생 알고리즘을 이용하여 마이크로프로세서가 직접 난수를 발생시키는 두 가지 방식으로 나뉜다.A microprocessor-based random number generator can be classified into two types: a method of generating a random number needed in an application program through pre-processing and correction processing of noise collected from an external hardware noise source, a method of generating a random number seed initial value and a random number generation algorithm And the microprocessor directly generates random numbers using the two methods.

응용 프로그램은 생성된 난수를 이용하여 어플리케이션의 기밀성 및 무결성을 제공하며, 인증 및 암호화와 같은 서비스를 제공할 수 있다.The application uses the generated random number to provide the confidentiality and integrity of the application and can provide services such as authentication and encryption.

도 1 및 도 2는 종래 기술에 따른 난수 발생기의 블록도이다.1 and 2 are block diagrams of a conventional random number generator.

도 1을 참조하면, 난수 발생기(110)는 하드웨어 잡음원(101), 보정 알고리즘부(102), 외부 전원(103) 및 마이크로프로세서(104)를 포함한다.1, the random number generator 110 includes a hardware noise source 101, a correction algorithm unit 102, an external power source 103, and a microprocessor 104. [

하드웨어 잡음원(hardware noise source; 101)은 링 오실레이터(ring oscillator) 또는 열잡음 다이오드 등을 이용하여 난수 발생에 사용되는 잡음을 생성한다.A hardware noise source 101 generates a noise used for random number generation using a ring oscillator or a thermal noise diode.

보정 알고리즘부(102)는 수집된 하드웨어 잡음을 소프트웨어적으로 보정하여 난수 특성을 개선시킨다.The correction algorithm unit 102 improves the random number characteristics by software correction of the collected hardware noise.

외부 전원(103)은 난수 발생기(110)에 전원을 공급한다.The external power supply 103 supplies power to the random number generator 110.

마이크로프로세서(104)는 수집된 하드웨어 잡음을 이용하여 난수열(random number sequence)을 생성하고 응용 프로그램부(105)의 요청시 생성된 난수열을 제공한다.The microprocessor 104 generates a random number sequence using the collected hardware noise and provides a random number sequence generated at the request of the application program unit 105.

응용 프로그램부(105)는 암호화 또는 인증에 필요한 난수를 요청한다.The application program unit 105 requests a random number necessary for encryption or authentication.

도 2를 참조하면, 난수 발생기(210)는 외부 전원(206), 마이크로프로세서(207), 초기값 제공부(209) 및 난수 발생 알고리즘부(201)를 포함한다.2, the random number generator 210 includes an external power source 206, a microprocessor 207, an initial value providing unit 209, and a random number generating algorithm unit 201.

외부 전원(206)은 난수 발생기(210)에 전원을 공급한다.The external power supply 206 supplies power to the random number generator 210.

마이크로프로세서(207)는 초기값과 난수 발생 알고리즘을 이용하여 난수열(random number sequence)을 생성하고 응용 프로그램부(208)의 요청시 생성된 난수열을 제공한다.The microprocessor 207 generates a random number sequence using the initial value and the random number generation algorithm, and provides the random number sequence generated at the request of the application program unit 208.

응용 프로그램부(208)는 암호화 또는 인증에 필요한 난수를 요청한다.The application program unit 208 requests a random number necessary for encryption or authentication.

초기값 제공부(209)는 난수 발생 알고리즘에 사용되는 시드 초기값을 제공한다.The initial value providing unit 209 provides a seed initial value used in the random number generating algorithm.

난수 발생 알고리즘부(201)는 SHA(Secure Hashing Algorithm)과 같은 메시지 압축 알고리즘 등을 이용하여 난수가 생성되도록 한다.The random number generation algorithm unit 201 generates a random number using a message compression algorithm such as SHA (Secure Hashing Algorithm).

도 1 및 도 2에 도시된 난수 발생기는 이전 시점의 시드와 함께 여러 가지 다양한 엔트로피 소스를 이용하여 구성된 내부 상태로부터 예측 불가능한 새로운 시드를 생성하는 방식으로 시드를 업데이트한다. 결국, 시드를 기반으로 하는 난수 발생 알고리즘에서 외부의 잡음원에 충분한 엔트로피가 보장되지 않으면 다음 시점의 난수가 예측 가능하게 된다.The random number generator shown in FIG. 1 and FIG. 2 updates the seed in such a manner as to generate a new seed that can not be predicted from the internal state configured using various various entropy sources together with the seed at the previous time. As a result, in a seed-based random number generation algorithm, if sufficient entropy is not ensured in an external noise source, a random number at the next time point can be predicted.

나아가, 도 1 및 도 2에 도시된 종래의 난수 발생기는 마이크로프로세서에 전원이 공급되고 있는 상태에서만 동작하는 것으로, 전원이 공급되지 않는 상태에서는 난수 발생기가 동작하지 아니하므로 난수 발생기의 시드(seed)가 업데이트되지 않는다는 단점이 있다.The conventional random number generator shown in FIGS. 1 and 2 operates only when the power is supplied to the microprocessor. When the power is not supplied, the random number generator does not operate. Therefore, Is not updated.

따라서, 외부의 하드웨어 잡음원과 시드가 사용되는 난수 발생 알고리즘을 이용하여 항상 예측이 불가능한 난수를 발생시키기 위한 새로운 난수 발생 방식 및 시드 관리 방식의 필요성이 절실하게 대두된다.Therefore, there is an urgent need for a new random number generation method and a seed management method for generating a random number that can not always be predicted by using a random number generation algorithm in which an external hardware noise source and a seed are used.

관련 선행기술로는 시드 알고리즘을 이용하여 예측 불가능한 난수를 생성하는 시스템 및 방법(SYSTEM AND METHOD FOR GENERATING AN UNPREDICTABLE NUMBER USING A SEEDED ALGORITHM)에 관한 미국등록특허 8,001,054호가 있다.Related prior art is U.S. Patent No. 8,001,054, entitled SYSTEM AND METHOD FOR GENERATING AN UNPREDICTABLE NUMBER USING A SEEDED ALGORITHM,

본 발명의 목적은 전원이 공급되고 있지 아니한 상황에서도 적절한 시드(내부 상태) 업데이트가 수행되도록 함으로써, 전원 공급 상태와 상관 없이 생성된 난수가 예측 불가능하도록 하여 인증 및 암호화의 기밀성 및 무결성을 보장하는 것이다.An object of the present invention is to ensure an appropriate seed (internal state) update even in a situation where no power is supplied, thereby ensuring the confidentiality and integrity of authentication and encryption by making the generated random number irrelevant to the power supply state .

또한, 본 발명의 목적은 전원이 공급되는 경우와 공급되지 않는 경우에 서로 다른 시드(내부 상태) 업데이트 방식을 사용하여 효율적으로, 생성된 난수가 예측 불가능하도록 하고 동일한 출력 난수열 생성을 방지하는 것이다.It is also an object of the present invention to efficiently generate the generated random number by using different seed (internal state) update schemes when the power is supplied and not supplied, thereby preventing generation of the same output random number sequence .

또한, 본 발명의 목적은 배터리를 이용하여 동작하는 경우에도 최소한의 시드(내부 상태) 업데이트가 수행되도록 하여 예측 불가능한 난수를 제공하는 것이다.It is also an object of the present invention to provide a random number that can not be predicted by performing a minimum seed (internal state) update even when operating using a battery.

상기한 목적을 달성하기 위한 본 발명에 따른 저전력 마이크로프로세서를 이용한 난수 발생 방법은, 저전력 마이크로프로세서가 난수 발생기에 외부 전원이 공급되는지 여부를 판단하는 단계; 상기 외부 전원이 공급되는 것으로 판단되는 경우 상기 저전력프로세서가 제1 방식으로 상기 난수 발생기의 내부 상태를 업데이트하는 단계; 및 상기 외부 전원이 공급되는 것으로 판단되지 않는 경우, 상기 저전력프로세서가 상기 제1 방식과 상이한 제2 방식으로 상기 난수 발생기의 내부 상태를 업데이트하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of generating a random number using a low power microprocessor, the method comprising: determining whether a low power microprocessor is supplied with an external power source; Updating the internal state of the random number generator in a first manner when the low power processor determines that the external power is supplied; And if the external power is not determined to be supplied, the low power processor updates the internal state of the random number generator in a second manner different from the first mode.

이 때, 상기 제2 방식으로 상기 난수 발생기의 내부 상태를 업데이트하는 단계는 배터리에서 제공되는 전력을 이용하여, 타이머 이벤트 발생 여부 및 상기 난수 발생기의 내부 상태의 기설정된 조건 만족 여부 중 하나 이상을 고려하여 상기 난수 발생기의 내부 상태를 업데이트할 수 있다.At this time, the step of updating the internal state of the random number generator in the second scheme considers at least one of whether a timer event is generated and whether the internal state of the random number generator satisfies predetermined conditions, using the power provided by the battery Thereby updating the internal state of the random number generator.

이 때, 기설정된 조건은 상기 내부 상태의 기설정된 비트가 기설정된 값으로 설정되어 있는지 여부일 수 있다.At this time, the predetermined condition may be whether or not the preset bit of the internal state is set to a predetermined value.

이 때, 제1 방식으로 상기 난수 발생기의 내부 상태를 업데이트하는 단계는 대기 상태에서 지속적으로 난수를 생성하고 상기 내부 상태를 업데이트하며, 응용 프로그램에서 난수를 요청하면 요청된 난수를 생성하여 제공한 후 다시 상기 대기 상태로 돌아갈 수 있다.At this time, the step of updating the internal state of the random number generator in the first method continuously generates a random number in a waiting state, updates the internal state, and when a random number is requested in an application program, And can return to the standby state again.

이 때, 내부 상태는 이전 내부 상태, 외부의 하드웨어 잡음원을 이용하여 생성된 잡음원 데이터 및 RTC(Real Time Counter)의 시간값을 이용하여 난수를 생성함으로써 업데이트될 수 있다.At this time, the internal state can be updated by generating a random number using the previous internal state, the noise source data generated using the external hardware noise source, and the time value of the RTC (Real Time Counter).

이 때, 잡음원 데이터는 난수 특성을 개선하기 위하여 기설정된 보정 알고리즘에 의해 보정된 것일 수 있다.In this case, the noise source data may be corrected by a predetermined correction algorithm to improve the random number characteristic.

또한, 본 발명의 일실시예에 따른 난수 발생기는, 외부 전원이 공급되지 않는 경우 전원을 공급하기 위한 배터리; 외부 전원 및 상기 배터리에서 공급되는 전원의 전압 차이에 기반하여 상기 외부 전원 및 상기 배터리에서 공급되는 전원 중 하나를 선택하는 전원 스위칭 회로; 및 상기 외부 전원을 이용하여 제1 방식으로 난수 발생을 위한 내부 상태를 업데이트하고, 상기 배터리에서 공급되는 전원을 이용하여 상기 제1 방식과 상이한 제2 방식으로 상기 내부 상태를 업데이트하는 저전력 마이크로프로세서를 포함한다.Also, a random number generator according to an embodiment of the present invention includes: a battery for supplying power when external power is not supplied; A power switching circuit for selecting one of the external power and the power supplied from the battery based on a voltage difference between the external power and the power supplied from the battery; And a low power microprocessor for updating the internal state for generating a random number in a first manner using the external power supply and updating the internal state in a second manner different from the first scheme by using power supplied from the battery, .

이 때, 난수 발생기는 상기 난수 발생에 사용되는 잡음원 데이터를 생성하기 위한 하드웨어 잡음원; 및 상기 난수 발생에 사용되는 시간값을 생성하기 위한 RTC(Real Time Clock)를 더 포함할 수 있다.In this case, the random number generator is a hardware noise source for generating noise source data used for generating the random number; And a real time clock (RTC) for generating a time value used for generating the random number.

이 때, 제2 방식은 상기 배터리에서 제공되는 전력을 이용하여, 타이머 이벤트 발생 여부 및 상기 난수 발생기의 내부 상태의 기설정된 조건 만족 여부 중 하나 이상을 고려하여 상기 내부 상태를 업데이트할 수 있다.In this case, the second scheme may update the internal state by taking into account at least one of whether a timer event has occurred and whether the internal state of the random number generator satisfies a predetermined condition, using the power provided by the battery.

이 때, 기설정된 조건은 내부 상태의 기설정된 비트가 기설정된 값으로 설정되어 있는지 여부일 수 있다.At this time, the predetermined condition may be whether or not the predetermined bit of the internal state is set to a predetermined value.

이 때, 제1 방식은 대기 상태에서 지속적으로 난수를 생성하고 상기 내부 상태를 업데이트하며, 응용 프로그램에서 난수를 요청하면 요청된 난수를 생성하여 제공한 후 다시 상기 대기 상태로 돌아갈 수 있다.At this time, the first scheme continuously generates a random number in the waiting state, updates the internal state, and when the application requests a random number, it generates and provides the requested random number, and then returns to the standby state.

이 때, 상기 내부 상태는 이전 내부 상태, 상기 하드웨어 잡음원을 이용하여 생성된 잡음원 데이터 및 상기 RTC의 시간값을 이용하여 난수를 생성함으로써 업데이트될 수 있다.At this time, the internal state can be updated by generating a random number using the previous internal state, the noise source data generated using the hardware noise source, and the time value of the RTC.

이 때, 상기 잡음원 데이터는 난수 특성을 개선하기 위한 보정 알고리즘에 의해 보정된 것일 수 있다.In this case, the noise source data may be corrected by a correction algorithm for improving the random number characteristic.

본 발명에 따르면, 타이머 이벤트가 발생한 경우에 배터리 전원을 이용한 액티브 모드에 상응하는 내부 상태 업데이트가 이루어지도록 함으로써 발생된 난수가 예측 불가능하도록 하고 인증 및 암호화의 기밀성 및 무결성을 보장할 수 있다.According to the present invention, when a timer event occurs, an internal state update corresponding to an active mode using battery power is performed, thereby making it impossible to predict a random number generated and guaranteeing the confidentiality and integrity of authentication and encryption.

또한, 본 발명은 전원이 공급되는 경우와 공급되지 않는 경우에 서로 다른 시드(내부 상태) 업데이트 방식을 사용하여 효율적으로, 생성된 난수가 예측 불가능하도록 하고 동일한 출력 난수열 생성을 방지할 수 있다.In addition, the present invention can efficiently generate the generated random number using different seed (internal state) update methods when power is supplied and not supplied, and can prevent generation of the same output random number sequence.

또한, 본 발명은 배터리를 이용하여 동작하는 경우에도 최소한의 시드(내부 상태) 업데이트가 수행되도록 하여 예측 불가능한 난수를 제공할 수 있다.In addition, the present invention can perform a minimum seed (internal state) update even when operating using a battery, thereby providing an unpredictable random number.

도 1 및 도 2는 종래 기술에 따른 난수 발생기의 블록도이다.
도 3은 본 발명의 일실시예에 따른 난수 발생기를 나타낸 블록도이다.
도 4는 본 발명의 일실시예에 따른 저전력 마이크로프로세서를 이용한 난수 발생 방법을 나타낸 동작 흐름도이다.
도 5는 도 4에 도시된 제1 방식으로 내부 상태를 업데이트하는 단계의 일 예를 나타낸 동작 흐름도이다.
도 6은 도 4에 도시된 제2 방식으로 내부 상태를 업데이트하는 단계의 일 예를 나타낸 동작 흐름도이다.
도 7은 내부 상태 업데이트의 일 예를 나타낸 동작 흐름도이다.
1 and 2 are block diagrams of a conventional random number generator.
3 is a block diagram illustrating a random number generator according to an embodiment of the present invention.
4 is a flowchart illustrating a random number generating method using a low power microprocessor according to an embodiment of the present invention.
5 is an operational flowchart showing an example of a step of updating the internal state in the first scheme shown in FIG.
FIG. 6 is an operation flowchart showing an example of a step of updating the internal state in the second scheme shown in FIG.
7 is an operational flowchart showing an example of the internal state update.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.The present invention will now be described in detail with reference to the accompanying drawings. Hereinafter, a repeated description, a known function that may obscure the gist of the present invention, and a detailed description of the configuration will be omitted. Embodiments of the present invention are provided to more fully describe the present invention to those skilled in the art. Accordingly, the shapes and sizes of the elements in the drawings and the like can be exaggerated for clarity.

본 발명에서 저전력 마이크로프로세서는 타이머 이벤트가 발생하는 경우 배터리 전원을 이용한 액티브 모드로 전환된다. 이 때, 이전 시점에 업데이트된 난수 발생기 내부 상태(상태 정보)의 특정 비트를 확인하여 난수 발생기 내부 상태를 업데이트한다. 난수 발생기 내부 상태 업데이트는 이전 시점의 난수 발생기 내부 상태, 별도의 하드웨어 잡음원, 시간 정보 및 온도 정보 등을 이용하여 업데이트될 수 있으며, 업데이트된 상태 정보는 다시 메모리에 저장될 수 있다.In the present invention, the low power microprocessor is switched to an active mode using battery power when a timer event occurs. At this time, the internal state of the random number generator is updated by checking a specific bit of the internal state (state information) of the updated random number generator at the previous time. The internal state update of the random number generator may be updated using the internal state of the random number generator at the previous time, a separate hardware noise source, time information, and temperature information, and the updated state information may be stored again in the memory.

전원이 공급되는 경우, 마이크로프로세서는 내부 메모리에 저장되어 있는 내부 상태(상태 정보)를 이용하여 난수 발생기를 초기화하고, 대기 상태에서 난수 발생기 내부 상태를 지속적으로 업데이트하면서 대기할 수 있다. 이 때, 응용 프로그램에서 난수를 요청하면 마이크로프로세서는 요청된 난수를 생성하여 전송한 후 다시 대기상태로 전환된다. 이와 같은 방식으로 생성되어 응용 프로그램으로 전달된 난수는 인증 및 암/복호에 활용될 수 있다.When the power is supplied, the microprocessor can initialize the random number generator using the internal state (state information) stored in the internal memory, and wait while continuously updating the internal state of the random number generator in the standby state. At this time, when the application requests a random number, the microprocessor generates the requested random number, transmits the random number, and then returns to the standby state. Random numbers generated in this way and transferred to the application program can be used for authentication and encryption / decryption.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 3은 본 발명의 일실시예에 따른 난수 발생기를 나타낸 블록도이다.3 is a block diagram illustrating a random number generator according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일실시예에 따른 난수 발생기는 외부 전원(301), 전원 스위칭 회로(302), 배터리(303), 하드웨어 잡음원(304), 저전력 마이크로프로세서(305) 및 RTC(Real Time Clock; 306)를 포함한다.3, a random number generator according to an embodiment of the present invention includes an external power source 301, a power switching circuit 302, a battery 303, a hardware noise source 304, a low power microprocessor 305, And a Real Time Clock 306.

이 때, 난수 발생기는 난수 발생 알고리즘부(307) 및 초기값 제공부(308)를 더 포함할 수 있고, 실시예에 따라 난수 발생 알고리즘부(307) 및 초기값 제공부(308)는 저전력 마이크로프로세서(305) 내부에 구비될 수도 있다. 예를 들어, 난수 발생 알고리즘부(307)는 저전력 마이크로프로세서(305)의 내부 메모리에 저장되어 있을 수 있고, 난수를 생성하고 시드(내부 상태)를 업데이트하며 응용 프로그램 요청시 난수를 전달하는 기능까지 수행할 수 있다. 이 때, 난수 발생 알고리즘은 SHA와 같이 메시지를 압축하는 알고리즘을 소프트웨어적으로 구현한 것일 수 있다.In this case, the random number generator may further include a random number generating algorithm unit 307 and an initial value providing unit 308. According to the embodiment, the random number generating algorithm unit 307 and the initial value providing unit 308 may be a low- And may be provided inside the processor 305. [ For example, the random number generation algorithm unit 307 may be stored in the internal memory of the low-power microprocessor 305, and may generate random numbers, update seeds (internal states), and transmit a random number when requesting an application program Can be performed. In this case, the random number generation algorithm may be a software implementation of a message compression algorithm such as SHA.

외부 전원(301)은 난수 발생기에 전원을 공급한다.The external power supply 301 supplies power to the random number generator.

배터리(303)는 외부 전원(301)이 공급되지 않는 경우 전원을 공급한다.The battery 303 supplies power when the external power source 301 is not supplied.

전원 스위칭 회로(302)는 외부 전원(301) 및 배터리(303)에서 공급되는 전원의 전압 차이에 기반하여 외부 전원(301) 및 배터리(303) 중 어느 하나가 선택되도록 공급 전원 전환 기능을 수행한다.The power supply switching circuit 302 performs a power supply switching function such that any one of the external power supply 301 and the battery 303 is selected based on the voltage difference between the external power supply 301 and the battery 303 .

하드웨어 잡음원(304)은 링 오실레이터 또는 열잡음 다이오드와 같은 잡음원으로 사용된다.The hardware noise source 304 is used as a noise source such as a ring oscillator or a thermal noise diode.

저전력 마이크로프로세서(305)는 하드웨어 잡음원(304)을 보정하고, 난수 발생 알고리즘부(307)로부터 제공된 난수 발생 알고리즘을 실행시켜서 난수 시드(seed; 내부 상태)를 업데이트하며 응용 프로그램에 생성된 난수를 전달한다.The low power microprocessor 305 updates the random number seed (internal state) by correcting the hardware noise source 304, executing the random number generation algorithm provided from the random number generation algorithm unit 307, and transmitting the generated random number to the application program do.

RTC(306)는 난수 발생 알고리즘의 외부 입력 요소로 사용되는 시간값을 제공한다.The RTC 306 provides a time value used as an external input element of the random number generation algorithm.

난수 발생 알고리즘부(307)는 이전 시점의 시드(내부 상태)와 하드웨어 잡음원(304) 및 RTC(306)를 이용하여 난수를 생성하는 알고리즘을 제공한다.The random number generation algorithm unit 307 provides an algorithm for generating a random number using the seed (internal state) at the previous time point and the hardware noise source 304 and the RTC 306.

초기값 제공부(308)는 난수 발생기의 초기 시드(초기 내부 상태)를 제공한다.The initial value providing unit 308 provides an initial seed (initial internal state) of the random number generator.

외부 전원(301)은 본 발명의 난수 발생기가 동작하기 위하여 필요한 전원을 공급한다. 배터리(303)는 외부 전원(301)이 공급되지 않는 경우 저전력 마이크로프로세서(305), RTC(306) 및 하드웨어 잡음원(304) 등이 동작하기 위하여 필요한 전원을 공급한다.The external power supply 301 supplies power necessary for the random number generator of the present invention to operate. The battery 303 supplies power necessary for the low power microprocessor 305, the RTC 306 and the hardware noise source 304 to operate when the external power supply 301 is not supplied.

본 발명에 따른 난수 발생기는 이와 같이 외부 전원이 공급되는 경우뿐만 아니라 외부 전원이 공급되지 않는 경우에도 동작이 가능하다. 이 때, 전원 스위칭 회로(302)는 외부 전원(301)과 배터리(303)의 전압 차이를 판단하여 난수 발생기에서 사용될 전원을 선택하여 공급한다.The random number generator according to the present invention can operate not only when external power is supplied but also when external power is not supplied. At this time, the power supply switching circuit 302 determines the voltage difference between the external power supply 301 and the battery 303 and selects and supplies the power to be used in the random number generator.

하드웨어 잡음원(304)은 링 오실레이터 또는 열잡음 다이오드와 같은 외부 잡음원으로써, 난수 발생 알고리즘 실행시 필요한 특정 길이의 잡음원 데이터를 제공한다. 이 때, 하드웨어 잡음원(304)의 잡음 특성을 개선하기 위한 별도의 보정 알고리즘이 사용될 수 있다. 하드웨어 잡음원(304)과 함께 RTC(306)는 저전력 마이크로프로세서(305)의 제어에 의하여 난수 발생 알고리즘의 입력 엔트로피 소스로 사용되며 응용 프로그램 필요시 시스템의 시간 값을 제공한다.The hardware noise source 304 is an external noise source such as a ring oscillator or a thermal noise diode, and provides noise source data of a specific length required when executing the random number generation algorithm. At this time, a separate correction algorithm for improving the noise characteristic of the hardware noise source 304 may be used. The RTC 306 together with the hardware noise source 304 is used as the input entropy source of the random number generation algorithm under the control of the low power microprocessor 305 and provides the time value of the system when the application program is required.

저전력 프로세서(305)는 전원이 공급되지 않는 경우 내부 메모리 영역에 저장되어 있는 난수 발생기 시드(내부 상태)를 읽고, 이전 시점의 난수 발생기 시드와 현재 시점에서 수집된 하드웨어 잡음원 데이터 및 RTC를 이용하여 확인된 시간값을 읽어서 난수 발생 알고리즘을 실행한다.The low power processor 305 reads the random number generator seed (internal state) stored in the internal memory area when power is not supplied and confirms using the random number generator seed at the previous time and the hardware noise source data and the RTC collected at the present time And then executes the random number generation algorithm.

외부 전원이 공급되는 경우, 저전력 마이크로프로세서(305)는 이전 시점의 난수 발생기 시드(내부 상태)를 이용하여 난수 발생기를 초기화하고 응용 프로그램 요청시 필요한 난수를 제공한다. 요청된 난수를 제공한 후, 저전력 마이크로프로세서(305)는 시스템 대기상태에서 지속적으로 난수 발생 알고리즘 실행을 위하여 난수 발생기 내부 상태를 업데이트할 수 있다.When the external power is supplied, the low power microprocessor 305 initializes the random number generator using the seed of the random number generator (internal state) at the previous point of time and provides a random number necessary for an application program request. After providing the requested random number, the low power microprocessor 305 can continuously update the random number generator internal state to execute the random number generation algorithm continuously in the system standby state.

이 때, 난수 발생 알고리즘은 SHA(Secure Hashing Algorithm)과 같이 메시지를 압축하는 함수를 이용하여 수행되는 알고리즘일 수 있고, 난수 발생기 내부 상태의 초기값과 하드웨어 잡음원(304) 및 RTC(306)로부터 제공된 난수 발생 시점의 시간값을 이용하여 난수를 생성하고 내부 상태(시드)를 업데이트할 수 있다.In this case, the random number generation algorithm may be an algorithm that is performed using a function of compressing a message, such as a SHA (Secure Hashing Algorithm), and may include an initial value of a random number generator internal state and an initial value of a random noise generator provided from the hardware noise source 304 and the RTC 306 The time value at the time of the random number generation can be used to generate a random number and update the internal state (seed).

저전력 마이크로프로세서(305)는 외부 전원이 공급되지 않는 경우 내부 메모리 영역에 저장되어 있는 내부 상태(시드)를 읽고, 이전 시점의 난수 발생기 내부 상태와 현재 시점에서 수집된 하드웨어 잡음원 데이터 및 시간값을 읽어 난수 발생 알고리즘을 실행한다. 외부 전원(301)이 공급되는 경우 본 발명의 난수 발생기는 이전 시점의 난수 발생기 내부 상태를 이용하여 난수 발생기를 초기화한 후 응용 프로그램 요청 시 필요한 난수를 제공한다. 또한, 요청된 난수를 제공한 후 시스템 대기상태에서 지속적으로 난수 발생 알고리즘 실행을 위하여 내부 상태를 업데이트한다.When the external power is not supplied, the low-power microprocessor 305 reads the internal state (seed) stored in the internal memory area and reads the internal state of the random number generator at the previous time point and the hardware noise source data and the time value collected at the present time Execute the random number generation algorithm. When the external power supply 301 is supplied, the random number generator of the present invention initializes the random number generator using the internal state of the random number generator at the previous time point, and then provides a random number necessary for an application program request. In addition, after providing the requested random number, the system continuously updates the internal state to execute the random number generation algorithm in the system standby state.

즉, 저전력 마이크로프로세서(305)는 외부 전원(301)을 이용하여 제1 방식으로 난수 발생을 위한 내부 상태를 업데이트하고, 배터리(303)에서 공급되는 전원을 이용하여 제1 방식과 상이한 제2 방식으로 내부 상태를 업데이트한다.
That is, the low-power microprocessor 305 updates the internal state for generating the random number in the first scheme using the external power source 301, and updates the internal state for generating the random number in the second scheme different from the first scheme using the power supplied from the battery 303 To update the internal state.

도 4는 본 발명의 일실시예에 따른 저전력 마이크로프로세서를 이용한 난수 발생 방법을 나타낸 동작 흐름도이다.4 is a flowchart illustrating a random number generating method using a low power microprocessor according to an embodiment of the present invention.

도 4를 참조하면, 본 발명의 일실시예에 따른 난수 발생 방법은 난수 발생기의 시스템 초기화에 필요한 동작을 수행한다(S410).Referring to FIG. 4, a random number generating method according to an embodiment of the present invention performs operations necessary for system initialization of a random number generator (S410).

이 때, 단계(S410)는 시스템을 사용하기 위하여 필요한 메모리 자원 및 기타 주요 장치들의 초기화를 수행할 수 있다.At this time, step S410 may perform initialization of memory resources and other major devices necessary for using the system.

또한, 본 발명의 일실시예에 따른 난수 발생 방법은 난수 발생기에 외부 전원이 공급되는지 여부를 판단한다(S420).In addition, the random number generating method according to an embodiment of the present invention determines whether external power is supplied to the random number generator (S420).

이 때, 단계(S420)는 외부 전원과 배터리 전원 레벨을 비교하여 수행될 수 있다.At this time, step S420 may be performed by comparing the external power source and the battery power level.

단계(S420)의 판단 결과, 난수 발생기에 외부 전원이 공급되는 것으로 판단되는 경우 본 발명의 일실시예에 따른 난수 발생 방법은 제1 방식으로 난수 발생기의 내부 상태를 업데이트한다(S430).If it is determined in step S420 that external power is supplied to the random number generator, the random number generating method according to an embodiment of the present invention updates the internal state of the random number generator in the first method (S430).

단계(S420)의 판단 결과, 난수 발생기에 외부 전원이 공급되는 것으로 판단되지 아니하면 본 발명의 일실시예에 따른 난수 발생 방법은 제2 방식으로 난수 발생기의 내부 상태를 업데이트한다(S440).If it is determined in step S420 that external power is not supplied to the random number generator, the random number generating method according to the embodiment of the present invention updates the internal state of the random number generator in the second method (S440).

이 때, 제2 방식은 제1 방식과 상이한 방식이다.At this time, the second scheme is different from the first scheme.

이 때, 단계(S440)는 배터리에서 제공되는 전력을 이용하여, 타이머 이벤트 발생 여부 및 상기 난수 발생기의 내부 상태의 기설정된 조건 만족 여부 중 하나 이상을 고려하여 난수 발생기의 내부 상태를 업데이트할 수 있다.At this time, the internal state of the random number generator may be updated in consideration of at least one of whether or not a timer event has occurred and whether the internal state of the random number generator satisfies predetermined conditions by using the power provided by the battery .

이 때, 기설정된 조건은 내부 상태의 기설정된 비트가 기설정된 값으로 설정되어 있는지 여부일 수 있다.At this time, the predetermined condition may be whether or not the predetermined bit of the internal state is set to a predetermined value.

이 때, 단계(S430)는 대기 상태에서 지속적으로 난수를 생성하고 상기 내부 상태를 업데이트하며, 응용 프로그램에서 난수를 요청하면 요청된 난수를 생성하여 제공한 후, 다시 상기 대기 상태로 돌아가는 것일 수 있다.At this time, in step S430, the random number is continuously generated in the waiting state, the internal state is updated, and when the random number is requested by the application program, the requested random number may be generated and provided and then returned to the standby state .

이 때, 내부 상태는 이전 내부 상태, 외부의 하드웨어 잡음원을 이용하여 생성된 잡음원 데이터 및 RTC의 시간값을 이용하여 난수를 생성함으로써 업데이트될 수 있다.At this time, the internal state can be updated by generating a random number using the previous internal state, the noise source data generated using an external hardware noise source, and the time value of the RTC.

이 때, 잡음원 데이터는 난수 특성을 개선하기 위해 기설정된 보정 알고리즘에 의해 보정된 것일 수 있다.
In this case, the noise source data may be corrected by a predetermined correction algorithm to improve the random number characteristic.

도 5는 도 4에 도시된 제1 방식으로 내부 상태를 업데이트하는 단계의 일 예를 나타낸 동작 흐름도이다.5 is an operational flowchart showing an example of a step of updating the internal state in the first scheme shown in FIG.

도 5를 참조하면, 제1 방식으로 내부 상태를 업데이트하는 단계는 먼저 난수 발생기를 초기화한다(S510).Referring to FIG. 5, updating the internal state in the first method first initializes the random number generator (S510).

제1 방식으로 내부 상태를 업데이트하는 단계는 난수 발생기 초기화 후, 대기 상태에서 지속적으로 난수 생성 및 난수 내부 상태(시드)를 업데이트한다(S520).The step of updating the internal state in the first method continuously updates the random number generation and the random number internal state (seed) in the standby state after initialization of the random number generator (S520).

또한, 제1 방식으로 내부 상태를 업데이트하는 단계는 대기 상태 동작 중 응용 프로그램에서 특정 길이의 난수를 요청하는지 여부를 판단한다(S530).In addition, the step of updating the internal state in the first method determines whether the application requests a random number of a certain length during the standby state operation (S530).

단계(S530)의 판단 결과, 특정 길이의 난수가 요청된 것으로 판단되면 제1 방식으로 내부 상태를 업데이트하는 단계는 요청된 난수를 생성하고 난수 시드(내부 상태)를 업데이트한다(S540).If it is determined in step S530 that the random number of a specific length is requested, the step of updating the internal state in the first method generates the requested random number and updates the random number seed (internal state) in step S540.

이후, 생성된 난수는 응용 프로그램으로 제공되고(S550), 다시 단계(S520)에서 난수 생성 및 시드 업데이트가 지속적으로 수행된다.
Thereafter, the generated random number is provided to the application program (S550), and random number generation and seed updating are continuously performed again in step S520.

도 6은 도 4에 도시된 제2 방식으로 내부 상태를 업데이트하는 단계의 일 예를 나타낸 동작 흐름도이다.FIG. 6 is an operation flowchart showing an example of a step of updating the internal state in the second scheme shown in FIG.

도 6을 참조하면, 외부 전원이 공급되지 아니하여 제2 방식으로 내부 상태를 업데이트하는 단계는 먼저 타이머와 난수 발생기의 초기화 동작을 수행한다(S610).Referring to FIG. 6, in the step of updating the internal state in the second method after the external power is not supplied, the initialization operation of the timer and the random number generator is performed (S610).

타이머와 난수 발생기 초기화 후, 제2 방식으로 내부 상태를 업데이트하는 단계는 타이머 이벤트(인터럽트)의 발생을 대기한다(S620).After initializing the timer and the random number generator, updating the internal state in the second method waits for the occurrence of a timer event (interrupt) (S620).

타이머 이벤트(인터럽트)가 발생하지 않으면 단계(S620)는 유지된다.If the timer event (interrupt) does not occur, step S620 is maintained.

타이머 이벤트(인터럽트)가 발생하면, 제2 방식으로 내부 상태를 업데이트하는 단계는 이전 시점의 난수 발생기 내부 상태(시드)의 특정 비트를 확인하여 기설정된 비트 조건을 만족하는지 여부를 확인한다(S630).When a timer event (interrupt) occurs, the step of updating the internal state in the second scheme checks a specific bit of the internal state (seed) of the random number generator at the previous time and confirms whether or not the preset bit condition is satisfied (S630) .

예를 들어, 단계(S630)는 난수 발생기 시드의 최하위 비트가 기설정된 조건을 만족하는지 여부를 확인할 수 있다.For example, step S630 may check whether the least significant bit of the random number generator seed meets predetermined conditions.

단계(S630)의 판단 결과, 기설정된 비트 조건을 만족하면 난수가 생성되고 난수 발생기의 내부 상태가 업데이트된다(S640).If it is determined in step S630 that the predetermined bit condition is satisfied, a random number is generated and the internal state of the random number generator is updated (S640).

난수 발생기 내부 상태 업데이트 후 저전력 마이크로프로세서는 다음 이벤트 발생 전까지 대기 상태에서 대기할 수 있다.After updating the internal state of the random number generator, the low power microprocessor can wait in the wait state until the next event occurs.

단계(S630)의 판단 결과, 기설정된 비트 조건이 만족되지 않으면 저전력 마이크로프로세서는 대기 상태에서 대기할 수 있다.
As a result of the determination in step S630, if the predetermined bit condition is not satisfied, the low power microprocessor can wait in the standby state.

도 7은 내부 상태 업데이트의 일 예를 나타낸 동작 흐름도이다.7 is an operational flowchart showing an example of the internal state update.

도 5 또는 도 6에 도시된 난수 생성 및 내부 상태 업데이트는 하드웨어 잡음원 등의 엔트로피 소스들을 이용하여 저전력 마이크로프로세서에서 수행된다.The random number generation and internal state update shown in FIG. 5 or 6 is performed in a low power microprocessor using entropy sources such as a hardware noise source.

도 7을 참조하면, 이전 시점의 난수 발생기 내부 상태(Stateold)가 수신된다(S701).Referring to FIG. 7, the random number generator internal state at the previous time point (State old ) is received (S701).

또한, RTC 시간값(r)이 수신되고(S702), 하드웨어 잡음원으로부터 생성(S703)된 하드웨어 잡음원이 보정을 통하여 생성된 보정된 하드웨어 잡음원(e)이 수신된다(S704).In addition, the RTC time value r is received (S702), and the corrected hardware noise source e generated by the correction of the hardware noise source generated from the hardware noise source (S703) is received (S704).

저전력 마이크로프로세서는 이전 시점의 난수 발생기 내부 상태(시드; Stateold), RTC 시간값(r) 및 보정된 하드웨어 잡음원(e)을 입력으로 하여 하기 수학식 1과 같은 프로세스를 수행한다(S705).Low-power microprocessor, a random number generator internal state of the previous time point; performs a process such as the equation (1) below with the (seed State old), RTC time value (r) and the corrected hardware noise source (e) to the input (S705).

[수학식 1] [Equation 1]

Statenew = RNG( Stateold || r || e )State new = RNG (State old || r || e)

상기 수학식 1에서 Statenew는 새로운 내부 상태를 나타내고, RNG()는 난수 발생 알고리즘을 나타낸다.In Equation (1), State new represents a new internal state, and RNG () represents a random number generation algorithm.

난수 발생 알고리즘 실행 후, 저전력 마이크로프로세서는 난수 출력과 함께 시드(내부 상태)를 갱신한다(S706).After executing the random number generation algorithm, the low power microprocessor updates the seed (internal state) together with the random number output (S706).

갱신된 시드는 저전력 마이크로프로세서의 내부 특정 메모리 영역에 저장된다(S707).The updated seed is stored in an internal specific memory area of the low power microprocessor (S707).

저장된 갱신 시드는 다음 난수 발생 알고리즘 실행시 시드로 사용된다.
The stored update seed is used as a seed when executing the next random number generation algorithm.

이상에서와 같이 본 발명에 따른 저전력 마이크로프로세서를 이용한 난수 발생 방법 및 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the method and apparatus for generating a random number using a low-power microprocessor according to the present invention are not limited to the configuration and method of the embodiments described above, but the embodiments may be modified in various ways All or some of the embodiments may be selectively combined.

301: 외부 전원
302: 전원 스위칭 회로
303: 배터리
304: 하드웨어 잡음원
305: 저전력 마이크로프로세서
306: RTC
307: 난수 발생 알고리즘부
308: 초기값 제공부
301: External power source
302: Power supply switching circuit
303: battery
304: Hardware noise source
305: Low Power Microprocessor
306: RTC
307: Random number generation algorithm unit
308: Initial Value Offering

Claims (13)

저전력 마이크로프로세서가 난수 발생기에 외부 전원이 공급되는지 여부를 판단하는 단계;
상기 외부 전원이 공급되는 것으로 판단되는 경우 상기 저전력프로세서가 제1 방식으로 상기 난수 발생기의 내부 상태를 업데이트하는 단계; 및
상기 외부 전원이 공급되는 것으로 판단되지 않는 경우, 상기 저전력프로세서가 상기 제1 방식과 상이한 제2 방식으로 상기 난수 발생기의 내부 상태를 업데이트하는 단계
를 포함하는 것을 특징으로 하는 난수 발생 방법.
Determining whether the low power microprocessor is supplied with external power to the random number generator;
Updating, by the low power processor, an internal state of the random number generator in a first manner when it is determined that the external power is supplied; And
If it is not determined that the external power is supplied, updating, by the low power processor, an internal state of the random number generator in a second manner different from the first scheme
Random number generation method comprising a.
청구항 1에 있어서,
상기 제2 방식으로 상기 난수 발생기의 내부 상태를 업데이트하는 단계는
배터리에서 제공되는 전력을 이용하여, 타이머 이벤트 발생 여부 및 상기 난수 발생기의 내부 상태의 기설정된 조건 만족 여부 중 하나 이상을 고려하여 상기 난수 발생기의 내부 상태를 업데이트하는 것을 특징으로 하는 난수 발생 방법.
The method according to claim 1,
Wherein updating the internal state of the random number generator in the second manner comprises:
Wherein the internal state of the random number generator is updated in consideration of at least one of whether a timer event has occurred and whether a predetermined condition of the internal state of the random number generator is satisfied by using power provided from the battery.
청구항 2에 있어서,
상기 기설정된 조건은
상기 내부 상태의 기설정된 비트가 기설정된 값으로 설정되어 있는지 여부인 것을 특징으로 하는 난수 발생 방법.
The method according to claim 2,
The predetermined condition is
And whether a predetermined bit of the internal state is set to a predetermined value.
청구항 2에 있어서,
상기 제1 방식으로 상기 난수 발생기의 내부 상태를 업데이트하는 단계는
대기 상태에서 지속적으로 난수를 생성하고 상기 내부 상태를 업데이트하며, 응용 프로그램에서 난수를 요청하면 요청된 난수를 생성하여 제공한 후, 다시 상기 대기 상태로 돌아가는 것을 특징으로 하는 난수 발생 방법.
The method according to claim 2,
Wherein updating the internal state of the random number generator in the first manner comprises:
Wherein the random number generating unit continuously generates a random number in a waiting state, updates the internal state, and generates a random number by requesting a random number from an application program, and then returns to the standby state.
청구항 3에 있어서,
상기 내부 상태는
이전 내부 상태, 외부의 하드웨어 잡음원을 이용하여 생성된 잡음원 데이터 및 RTC(Real Time Clock)의 시간값을 이용하여 난수를 생성함으로써 업데이트되는 것을 특징으로 하는 난수 발생 방법.
The method according to claim 3,
The internal state
Wherein the random number generator is updated by generating a random number using a previous internal state, noise source data generated using an external hardware noise source, and a time value of an RTC (Real Time Clock).
청구항 5에 있어서,
상기 잡음원 데이터는 난수 특성을 개선하기 위해 기설정된 보정 알고리즘에 의해 보정된 것을 특징으로 하는 난수 발생 방법.
The method according to claim 5,
Wherein the noise source data is corrected by a predetermined correction algorithm to improve a random number characteristic.
외부 전원이 공급되지 않는 경우 전원을 공급하기 위한 배터리;
외부 전원 및 상기 배터리에서 공급되는 전원의 전압 차이에 기반하여 상기 외부 전원 및 상기 배터리에서 공급되는 전원 중 하나를 선택하는 전원 스위칭 회로; 및
상기 외부 전원을 이용하여 제1 방식으로 난수 발생을 위한 내부 상태를 업데이트하고, 상기 배터리에서 공급되는 전원을 이용하여 상기 제1 방식과 상이한 제2 방식으로 상기 내부 상태를 업데이트하는 저전력 마이크로프로세서를 포함하는 것을 특징으로 하는 난수 발생기.
A battery for supplying power when external power is not supplied;
A power switching circuit for selecting one of the external power and the power supplied from the battery based on a voltage difference between the external power and the power supplied from the battery; And
A low power microprocessor that updates the internal state for random number generation in a first manner using the external power source, and updates the internal state in a second manner different from the first manner by using power supplied from the battery; Random number generator, characterized in that.
청구항 7에 있어서,
상기 난수 발생기는
상기 난수 발생에 사용되는 잡음원 데이터를 생성하기 위한 하드웨어 잡음원; 및
상기 난수 발생에 사용되는 시간값을 생성하기 위한 RTC(Real Time Clock)를 더 포함하는 것을 특징으로 하는 난수 발생기.
The method of claim 7,
The random number generator
A hardware noise source for generating noise source data used for generating the random number; And
And a RTC (Real Time Clock) for generating a time value used for generating the random number.
청구항 8에 있어서,
상기 제2 방식은
상기 배터리에서 제공되는 전력을 이용하여, 타이머 이벤트 발생 여부 및 상기 난수 발생기의 내부 상태의 기설정된 조건 만족 여부 중 하나 이상을 고려하여 상기 내부 상태를 업데이트하는 것을 특징으로 하는 난수 발생기.
The method according to claim 8,
The second scheme
Wherein the internal state is updated in consideration of at least one of whether a timer event has occurred and whether or not the internal state of the random number generator satisfies predetermined conditions by using power provided from the battery.
청구항 9에 있어서,
상기 기설정된 조건은
상기 내부 상태의 기설정된 비트가 기설정된 값으로 설정되어 있는지 여부인 것을 특징으로 하는 난수 발생기.
The method of claim 9,
The predetermined condition is
And whether or not a predetermined bit of the internal state is set to a predetermined value.
청구항 9에 있어서,
상기 제1 방식은
대기 상태에서 지속적으로 난수를 생성하고 상기 내부 상태를 업데이트하며, 응용 프로그램에서 난수를 요청하면 요청된 난수를 생성하여 제공한 후 다시 상기 대기 상태로 돌아가는 것을 특징으로 하는 난수 발생기.
The method of claim 9,
The first scheme
Generates a random number continuously in a waiting state, updates the internal state, and generates a requested random number when an application requests a random number, and then returns to the standby state after generating the random number.
청구항 9에 있어서,
상기 내부 상태는
이전 내부 상태, 상기 하드웨어 잡음원을 이용하여 생성된 잡음원 데이터 및 상기 RTC의 시간값을 이용하여 난수를 생성함으로써 업데이트되는 것을 특징으로 하는 난수 발생기.
The method of claim 9,
The internal state
Wherein the random number generator is updated by generating a random number using the previous internal state, the noise source data generated using the hardware noise source, and the time value of the RTC.
청구항 12에 있어서,
상기 잡음원 데이터는 난수 특성을 개선하기 위한 보정 알고리즘에 의해 보정된 것을 특징으로 하는 난수 발생기.
The method of claim 12,
Wherein the noise source data is corrected by a correction algorithm for improving a random number characteristic.
KR1020130016983A 2012-05-22 2013-02-18 Method of ramdom number generation using low power microprocessor and apparatus for the same KR101438010B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/896,390 US9032005B2 (en) 2012-05-22 2013-05-17 Random number generation method and apparatus using low-power microprocessor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20120053990 2012-05-22
KR1020120053990 2012-05-22

Publications (2)

Publication Number Publication Date
KR20130130622A true KR20130130622A (en) 2013-12-02
KR101438010B1 KR101438010B1 (en) 2014-09-05

Family

ID=49980255

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130016983A KR101438010B1 (en) 2012-05-22 2013-02-18 Method of ramdom number generation using low power microprocessor and apparatus for the same

Country Status (1)

Country Link
KR (1) KR101438010B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180005900A (en) * 2016-07-07 2018-01-17 국민대학교산학협력단 Random number generator for supporting multi entropy pool

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100829793B1 (en) * 2006-08-14 2008-05-16 삼성전자주식회사 Random signal generator and Random number generator including the same
US20080263117A1 (en) * 2007-04-23 2008-10-23 Gregory Gordon Rose Initial seed management for pseudorandom number generator
US8189778B2 (en) * 2008-07-07 2012-05-29 General Instrument Corporation Adaptive generation of a pseudo random number generator seed
JP4405569B1 (en) * 2008-07-23 2010-01-27 株式会社東芝 Electronic device and communication control method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180005900A (en) * 2016-07-07 2018-01-17 국민대학교산학협력단 Random number generator for supporting multi entropy pool
KR101872329B1 (en) * 2016-07-07 2018-06-28 국민대학교산학협력단 Random number generator for supporting multi entropy pool

Also Published As

Publication number Publication date
KR101438010B1 (en) 2014-09-05

Similar Documents

Publication Publication Date Title
US10715335B2 (en) Methods and apparatus to provide for efficient and secure software updates
US9032005B2 (en) Random number generation method and apparatus using low-power microprocessor
Hu et al. Toward trusted wireless sensor networks
EP2695052B1 (en) Random number generating system based on memory start-up noise
Hu et al. secfleck: A public key technology platform for wireless sensor networks
US10305892B2 (en) Device system for performing group authentication and operating method thereof
CN110008689A (en) A kind of BMC starting method, apparatus, equipment and computer readable storage medium
US9384682B2 (en) Electronic circuit, electronic apparatus, and authentication system
KR20190014444A (en) Security device, electronic device including the same and method of operating electronic device
KR20180046593A (en) Internet of things device firmware update system for firmware signature verification and security key management
US20170212701A1 (en) Device, system and method for storing data
CN108898026B (en) Data encryption method and device
KR101438010B1 (en) Method of ramdom number generation using low power microprocessor and apparatus for the same
US11190351B2 (en) Key generation method and acquisition method, private key update method, chip, and server
CN109428712B (en) Data encryption and decryption method and data encryption and decryption system
CN109426727B (en) Data encryption method, data decryption method, data encryption system and data decryption system
Scott On TLS for the Internet of Things, in a Post Quantum world
Salas A secure framework for OTA smart device ecosystems using ECC encryption and biometrics
Aitchison et al. On the integration of physically unclonable functions into ARM trustzone security technology
EP3771978B1 (en) Information processing apparatus
US10354094B2 (en) Systems and methods for cache memory authentication
US20150281343A1 (en) Information processing device, information processing system, and processing method
US20210194705A1 (en) Certificate generation method
US7483537B2 (en) Selecting cached RSA keys in response to RSA key requests
CN117610089B (en) Encryption method, system, equipment and storage medium of multi-core heterogeneous chip

Legal Events

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

Payment date: 20170703

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 6