KR101931777B1 - Apparatus for generating true random value based on uart and method for the same - Google Patents

Apparatus for generating true random value based on uart and method for the same Download PDF

Info

Publication number
KR101931777B1
KR101931777B1 KR1020170101659A KR20170101659A KR101931777B1 KR 101931777 B1 KR101931777 B1 KR 101931777B1 KR 1020170101659 A KR1020170101659 A KR 1020170101659A KR 20170101659 A KR20170101659 A KR 20170101659A KR 101931777 B1 KR101931777 B1 KR 101931777B1
Authority
KR
South Korea
Prior art keywords
random number
generating
real
uart
enhanced
Prior art date
Application number
KR1020170101659A
Other languages
Korean (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 KR1020170101659A priority Critical patent/KR101931777B1/en
Application granted granted Critical
Publication of KR101931777B1 publication Critical patent/KR101931777B1/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
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

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)
  • Mobile Radio Communication Systems (AREA)

Abstract

One embodiment of the present invention provides an apparatus for generating a real random value based on a universal asynchronous receiver/transmitter (UART). The apparatus comprises: a real random value generating unit using a UART and generating a real random value based on the UART; a randomness reinforcing unit reinforcing randomness of the generated real random value and generating a reinforced random number; and a random number stabilizing unit generating a final random number by stabilizing the reinforced random number. The apparatus may efficiently increase the stability of a security system.

Description

UART 기반 실난수 발생 장치 및 그 방법 {APPARATUS FOR GENERATING TRUE RANDOM VALUE BASED ON UART AND METHOD FOR THE SAME}[0001] UART-BASED RANDOM GENERATION GENERATING TRUE RANDOM VALUE BASED ON UART AND METHOD FOR THE SAME [0002]

본 발명은 UART(Universal Asynchronous Receiver/Transmitter)를 이용하여 실난수를 발생하는 장치 및 그 방법에 관한 것이다.The present invention relates to an apparatus and method for generating real random numbers using a Universal Asynchronous Receiver / Transmitter (UART).

난수란 정의된 범위내에서 무작위로 추출된 수를 일컫는다. 난수는 누구라도 그 다음에 나올 값을 확신할 수 없어야 한다. 특히 난수의 추출에 대해 민감할 수 있는 복권 추첨에서는 난수를 발생하기 위하여 컴퓨터를 사용하지 않는다. 그 대신 도구를 사용하는 물리적인 방법으로 난수를 추출한다. 컴퓨터에 의해 추출된 난수는 조작의 여지를 남길 수 있기 때문이다.A random number is a randomly extracted number within a defined range. Any random number should not be able to convince the next value. Especially, in the lottery lotteries which can be sensitive to the extraction of random numbers, computers are not used to generate random numbers. Instead, it extracts random numbers using a physical method using tools. Random numbers extracted by a computer can leave room for manipulation.

컴퓨터에 의해 생성된 모든 난수는 의사난수이다. 컴퓨터는 계산된 결과만 가지고 난수를 생성할 수 있는데 이 계산된 결과는 입력값에 의해 결정된 값이기 때문에 이 값을 가지고는 실난수를 생성할 수 없다. 컴퓨터의 최초 시동시 난수표가 생성되어 컴퓨터 내에 보관된다. 하지만 컴퓨터 프로그래밍에서 매번 같은 방법으로 이 값을 가지고 오려고 한다면 매번 그 값은 같기 때문에 최초 한번 호출할 때를 제외하고는 난수라고 볼 수 없다.All random numbers generated by the computer are pseudo-random numbers. The computer can generate a random number with only the calculated result. Since the calculated result is a value determined by the input value, it can not generate a real random number with this value. When the computer is first turned on, a random number table is generated and stored in the computer. However, if you try to bring this value in the same way every time in computer programming, the value is the same every time, so it is not a random number except for the first call.

즉, 의사난수 발생기에서 실난수를 사용하지 않는 경우 예측할 수 있는 모든 값을 대응하면 실제 발생할 수 있는 의사난수를 예측할 수 있다. 이러한 의사난수가 예측이 될 경우 보안시스템에서 사용하는 키를 예측할 수 있으므로 사용되는 키가 노출되어 전체 시스템을 붕괴시킬 수 있다. 따라서, 실난수를 발생하는 것은 보안성을 유지하는데 있어 중요하다.That is, if the pseudo random number generator does not use the real random number, it can predict the actual pseudo random number if all the predictable values are corresponded. If such a pseudo-random number is predicted, the key used in the security system can be predicted, so that the used key may be exposed and the whole system may be collapsed. Therefore, generating real random numbers is important for maintaining security.

실난수 발생 장치는 데이터 암호, 영상처리, 음악 작곡이나 회로 테스트 등의 응용분야에서 많이 사용되고 있다. 보다 효과적인 실난수 발생장치는 비예측적이고 모조할 수 없는 그리고 통계적으로 랜덤한 비트열을 제공한다. 따라서, 데이터 암호, 통계적인 시뮬레이션, 추첨식 복권 등과 같은 분야에서 실난수를 이용하는 사례가 증가함에 따라, 실난수 발생 장치와 같은 하드웨어 부품으로 이루어진 난수 발생 장치가 상용화되고 있다.Real random number generators are widely used in applications such as data encryption, image processing, music composition and circuit testing. More efficient random number generators provide unpredictable, non-dodgy and statistically random bit streams. Therefore, as the number of cases of using real random numbers in fields such as data encryption, statistical simulation, lottery lottery, and the like is increasing, a random number generating device composed of hardware parts such as a real random number generating device is being commercialized.

하지만, 현재 개발하고 있는 IoT(Internet Of Things, 사물인터넷)제품이나 임베디드 시스템에 하드웨어 난수 발생기를 적용하기에는 공간과 비용의 제약에 의해 적용하기 어렵다. 그러므로 IoT 제품이나 임베디드 시스템의 보안 안전성을 높이기 위해서 효율적인 실난수 발생기의 적용이 필요하다. However, it is difficult to apply hardware random number generators to the currently developed IoT (Internet Of Things) products or embedded systems due to space and cost constraints. Therefore, it is necessary to apply an efficient random number generator in order to increase security security of IoT products or embedded systems.

전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라할 수는 없다.The above-described background technology is technical information that the inventor holds for the derivation of the present invention or acquired in the process of deriving the present invention, and can not necessarily be a known technology disclosed to the general public prior to the filing of the present invention.

국내 등록특허공보 제10-0512477호Korean Patent Registration No. 10-0512477

본 발명의 목적은 UART를 이용하여 높은 엔트로피를 갖는 실난수를 발생시키는 장치 및 그 방법을 제공하는 것이다.It is an object of the present invention to provide an apparatus and method for generating real random numbers having a high entropy using a UART.

본 발명의 일 실시예는, UART(Universal Asynchronous Receiver/Transmitter)를 이용하여, UART를 기반으로 실난수를 생성하는 실난수 생성부; 상기 생성된 실난수의 난수성을 강화하여 강화된 난수를 생성하는 난수성 강화부; 및 상기 강화된 난수를 안정화하여 최종 난수를 생성하는 난수 안정화부를 포함하는, UART 기반 실난수 발생 장치를 제공한다According to an embodiment of the present invention, there is provided a real-random number generator for generating a real random number based on a UART using a UART (Universal Asynchronous Receiver / Transmitter). A random water strengthening unit for strengthening the randomness of the generated real random water to generate reinforced random water; And a random number stabilization unit for stabilizing the enhanced random number to generate a final random number

이때, 상기 실난수 생성부는 타이머로부터 시작 틱을 획득하고, UART 메시지를 발생하고, 상기 타이머로부터 종료 틱을 획득하여 기설정된 조건의 충족 여부를 판단하고, 기설정된 조건의 충족 여부에 따라 1비트의 실난수를 생성할 수 있다.Here, the real random number generator may acquire a start tick from a timer, generate a UART message, acquire an end tick from the timer to determine whether a predetermined condition is satisfied, Real random numbers can be generated.

이때, 상기 실난수 생성부는 상기 기설정된 조건이 충족된 경우에 난수로서 1을 설정하여 1비트의 실난수를 생성하고, 상기 기설정된 조건이 충족되지 않은 경우에 난수로서 0을 설정하여 1비트의 실난수를 생성할 수 있다.In this case, the real random number generator generates 1-bit real random number by setting 1 as a random number when the predetermined condition is satisfied, and sets 0 as a random number when the predetermined condition is not satisfied, Real random numbers can be generated.

이때, 상기 실난수 생성부는 기설정된 개수만큼 실난수가 생성될 때까지, 상기 1비트의 실난수를 생성하는 과정을 반복할 수 있다.At this time, the real random number generator may repeat the process of generating the 1-bit real random number until a predetermined number of real random numbers are generated.

이때, 상기 기설정된 조건은 상기 시작 틱과 상기 종료 틱의 차이에 상응하는 상기 UART 메시지 처리시간이 평균 처리시간보다 큰지 여부일 수 있다.At this time, the predetermined condition may be whether or not the UART message processing time corresponding to the difference between the start tick and the end tick is larger than the average processing time.

이때, 상기 난수 안정화부는 상기 강화된 난수와 의사난수 시드(seed) 및 사용자 입력값 중 하나 이상을 이용하여 최종 난수를 생성할 수 있다.At this time, the random number stabilizer may generate the final random number using at least one of the enhanced random number, the pseudo random number seed, and the user input value.

이때, 상기 난수 안정화부는 상기 강화된 난수를 이용하여 의사난수 시드를 결정하고, 상기 의사난수 시드를 이용하여 최종 난수를 생성할 수 있다.At this time, the random number stabilizer may determine the pseudo random number seed using the enhanced random number, and generate the final random number using the pseudo random number seed.

이때, 상기 난수성 강화부는 생성된 실난수의 난수 생성 순서를 인덱스(index)로 하여 rotate(회전)하여 회전된 난수를 생성하고, 현재 난수성 강화가 최초 난수성 강화인 경우에는 기설정된 초기값과 상기 회전된 난수에 대해 기설정된 연산을 수행하고, 현재 난수성 강화가 최초 난수성 강화가 아닌 경우에는 이전 강화된 난수와 상기 회전된 난수에 대해 기설정된 연산을 수행하여 강화된 난수를 생성할 수 있다.At this time, the random enhancement unit rotates (rotates) the random number generation order of the generated random number using an index as an index to generate a rotated random number. If the current random enhancement is the initial random enhancement, And performing a predetermined operation on the rotated random number, and if the current random enhancement is not the initial random enhancement, performing a predetermined operation on the previously enhanced random number and the rotated random number to generate an enhanced random number .

이때, 상기 기설정된 연산은 AND, OR, NAND, NOR, XOR, XNOR을 포함하는 연산 중에서 선택되거나 이들의 조합으로 이루어질 수 있다.At this time, the predetermined operation may be selected among operations including AND, OR, NAND, NOR, XOR and XNOR, or a combination thereof.

이때, 상기 난수성 강화부는 길이가 다른 난수열들 간에 상기 기설정된 연산을 수행하기 위하여 난수열들을 수정하여 길이를 동일하게 맞추거나, 난수열들을 기설정된 길이의 단위로 자를 수 있다.In this case, in order to perform the preset operation between the random number sequences having different lengths, the random number enhancement unit may adjust the random number sequences to equalize the length, or may cut the random number sequences into units of predetermined length.

본 발명의 다른 일 실시예는, UART(Universal Asynchronous Receiver/Transmitter)를 이용하여, UART를 기반으로 실난수를 생성하는 단계; 상기 생성된 실난수의 난수성을 강화하여 강화된 난수를 생성하는 단계; 상기 강화된 난수를 안정화하여 최종 난수를 생성하는 단계를 포함하는, UART 기반 실난수 발생 방법을 제공한다According to another embodiment of the present invention, there is provided a method of generating a real random number using a UART (Universal Asynchronous Receiver / Transmitter) Enhancing the randomness of the generated real random number to generate an enhanced random number; And stabilizing the enhanced random number to generate a final random number.

이때, 상기 실난수를 생성하는 단계는 타이머로부터 시작 틱을 획득하는 단계; UART 메시지를 발생하는 단계; 상기 타이머로부터 종료 틱을 획득는 단계; 기설정된 조건의 충족 여부를 판단하는 단계; 및 기설정된 조건의 충족 여부에 따라 1비트의 실난수를 생성하는 단계를 포함할 수 있다.The generating of the real random number may include: obtaining a start tick from a timer; Generating a UART message; Obtaining an end tick from the timer; Determining whether a predetermined condition is satisfied; And generating a 1-bit real random number according to whether or not the predetermined condition is satisfied.

이때, 상기 1비트의 실난수를 생성하는 단계는 상기 기설정된 조건이 충족된 경우에 난수로서 1을 설정하여 1비트의 실난수를 생성하고, 상기 기설정된 조건이 충족되지 않은 경우에 난수로서 0을 설정하여 1비트의 실난수를 생성할 수 있다.The generating of the 1-bit real random number may include generating a 1-bit real random number by setting 1 as a random number when the preset condition is satisfied, and generating 0 as a random number when the predetermined condition is not satisfied Can be set to generate a 1-bit real random number.

이때, 상기 실난수를 생성하는 단계는 기설정된 개수만큼 실난수가 생성될 때까지, 상기 1비트의 실난수를 생성하는 과정을 반복할 수 있다.At this time, the step of generating the real random number may repeat the process of generating the real random number of 1 bit until a predetermined number of real random numbers are generated.

이때, 상기 기설정된 조건은 상기 시작 틱과 상기 종료 틱의 차이에 상응하는 상기 UART 메시지 처리시간이 평균 처리시간보다 큰지 여부일 수 있다.At this time, the predetermined condition may be whether or not the UART message processing time corresponding to the difference between the start tick and the end tick is larger than the average processing time.

이때, 상기 최종 난수를 생성하는 단계는 상기 강화된 난수와 의사난수 시드(seed) 및 사용자 입력값 중 하나 이상을 이용하여 최종 난수를 생성할 수 있다.The generating of the final random number may generate the final random number using at least one of the enhanced random number, the pseudo random number seed, and the user input value.

이때, 상기 최종 난수를 생성하는 단계는 상기 강화된 난수를 이용하여 의사난수 시드를 결정하고, 상기 의사난수 시드를 이용하여 최종 난수를 생성할 수 있다.At this time, the step of generating the final random number may determine the pseudo random number seed using the enhanced random number, and generate the final random number using the pseudo random number seed.

이때, 상기 강화된 난수를 생성하는 단계는 생성된 실난수의 난수 생성 순서를 인덱스(index)로 하여 rotate(회전)하여 회전된 난수를 생성하는 단계; 현재 난수성 강화가 최초 난수성 강화인 경우에는 기설정된 초기값과 상기 회전된 난수에 대해 기설정된 연산을 수행하여 강화된 난수를 생성하는 단계; 및 현재 난수성 강화가 최초 난수성 강화가 아닌 경우에는 이전 강화된 난수와 상기 회전된 난수에 대해 기설정된 연산을 수행하여 강화된 난수를 생성하는 단계를 포함할 수 있다.The step of generating the enhanced random number may include generating a rotated random number by rotating the random number generation order of the generated random number using an index as an index, Generating an enhanced random number by performing a predetermined operation on a predetermined initial value and the rotated random number when the current random enhancement is the initial random enhancement; And generating the enhanced random number by performing a predetermined operation on the previously enhanced random number and the rotated random number if the current random enhancement is not the original random enhancement.

이때, 상기 기설정된 연산은 AND, OR, NAND, NOR, XOR, XNOR을 포함하는 연산 중에서 선택되거나 이들의 조합으로 이루어질 수 있다.At this time, the predetermined operation may be selected among operations including AND, OR, NAND, NOR, XOR and XNOR, or a combination thereof.

이때, 상기 강화된 난수를 생성하는 단계는 길이가 다른 난수열들 간에 상기 기설정된 연산을 수행하기 위하여 난수열들을 수정하여 길이를 동일하게 맞추거나, 난수열들을 기설정된 길이의 단위로 자르는 단계를 더 포함할 수 있다.ㅠThe step of generating the enhanced random number may include the steps of adjusting the random number sequences to equalize the length of the random number sequences to perform the predetermined operation among the random number sequences having different lengths or truncating the random number sequences into units of predetermined lengths You can include more.

본 발명에 따르면, UART를 이용하여 실난수를 발생시키는 장치 및 그 방법에 의해, IoT제품이나 임베디드 시스템에서 하드웨어의 추가 없이 저렴한 비용과 간단한 구현만으로 실난수를 생성하여 효율적으로 보안시스템의 안전성을 높일 수 있다.According to the present invention, an apparatus and a method for generating a real random number using a UART can generate real random numbers with low cost and simple implementation without addition of hardware in an IoT product or an embedded system, thereby enhancing the security of the security system efficiently .

도 1은 본 발명의 일 실시예에 따른 UART 기반 실난수 발생 장치의 일 예를 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 UART 기반 실난수 발생 방법을 나타낸 동작 흐름도이다.
도 3은 도 2에 도시된 실난수를 생성하는 단계(S301)의 일 예를 나타낸 동작 흐름도이다.
도 4는 도 3에 도시된 기설정된 조건 충족 여부를 판단하는 단계(S407)의 일 예를 나타낸 동작 흐름도이다.
도 5는 도 3에 도시된 난수 생성 완료 여부를 판단하는 단계(S415)의 일 예를 나타낸 동작 흐름도이다.
도 6은 도 2에 도시된 난수성을 강화하는 단계(S303)의 일 예를 나타낸 동작 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 UART 송신 지연시간을 이용한 난수 생성의 예를 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 실난수의 난수성을 강화하는 방법을 나타낸 도면이다.
1 is a block diagram illustrating an example of a UART-based real random number generator according to an embodiment of the present invention.
2 is a flowchart illustrating a method of generating a UART-based real random number according to an embodiment of the present invention.
FIG. 3 is an operational flowchart showing an example of generating the random number (S301) shown in FIG.
4 is an operational flowchart illustrating an example of determining whether the predetermined condition shown in FIG. 3 is satisfied (S407).
5 is an operation flowchart illustrating an example of a step S415 of determining whether the random number generation shown in FIG. 3 is completed.
FIG. 6 is an operational flowchart showing an example of the step of enhancing the randomness (S303) shown in FIG.
7 is a diagram illustrating an example of random number generation using UART transmission delay time according to an embodiment of the present invention.
8 is a view illustrating a method for enhancing the randomness of the random random number according to an embodiment of the present invention.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다. The present invention is capable of various modifications and various embodiments, and specific embodiments are illustrated and described in the drawings. The effects and features of the present invention and methods of achieving them will be apparent with reference to the embodiments described in detail below with reference to the 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.

그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성되어 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는한 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다.However, the present invention is not limited to the embodiments described below, but all or some of the embodiments may be selectively combined and implemented in various forms. In the following embodiments, the terms first, second, and the like are used for the purpose of distinguishing one element from another element, not the limitative meaning. Also, the singular expressions include plural expressions unless the context clearly dictates otherwise. Also, the terms include, including, etc. mean that there is a feature, or element, recited in the specification and does not preclude the possibility that one or more other features or components may be added.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, wherein like reference numerals refer to like or corresponding components throughout the drawings, and a duplicate description thereof will be omitted .

도 1은 본 발명의 일 실시예에 따른 UART 기반 실난수 발생 장치(100)의 일 예를 나타낸 블록도이다.1 is a block diagram illustrating an example of a UART-based real random number generator 100 according to an embodiment of the present invention.

UART는 'Universal Asynchronous Receiver/Transmitter'의 약자로, 범용 비동기식 송수신 포트를 말하며, 이에 대한 구체적인 설명은 생략하도록 한다.UART is an abbreviation of 'Universal Asynchronous Receiver / Transmitter' and refers to a general-purpose asynchronous transmission / reception port, and a detailed description thereof will be omitted.

본 발명의 일 실시예에 따른 UART 기반 실난수 발생 장치(100)는 실난수를 생성하기 위하여 UART를 기반으로 실난수를 생성하고, 생성한 실난수의 난수성을 강화하여 강화된 난수를 생성하고, 강화된 난수를 안정화하여 최종 난수를 생성하도록 하는 것을 특징으로 한다.The UART-based real random number generator 100 according to an embodiment of the present invention generates real random numbers based on UARTs to generate real random numbers, and enhances random numbers of the generated real random numbers to generate enhanced random numbers And stabilizes the enhanced random number to generate a final random number.

여기서, UART 기반 실난수 발생 장치(100)는 UART를 이용한 UART 메시지를 생성하여 난수를 생성할 수 있다.Here, the UART-based real random number generator 100 can generate a random number by generating a UART message using a UART.

선택적 실시예에서, UART 기반 실난수 발생 장치(100)는 UART를 기반으로 실난수를 생성할 때, 타이머로부터 시작 틱(tick)을 획득하고, UART 송신 메시지를 발생하며, 타이머로부터 종료 틱을 획득하여 기설정된 조건의 충족 여부를 판단하여 난수로서 0 또는 1을 결정하여 저장하고, 난수 생성이 완료될 때까지 반복할 수 있다.In an alternative embodiment, when generating a real random number based on a UART, the UART-based real random number generator 100 acquires a start tick from the timer, generates a UART transmit message, and obtains an end tick from the timer Determines whether or not the predetermined condition is satisfied, determines 0 or 1 as a random number, stores the random number, and repeats it until the random number generation is completed.

이때, 기설정된 조건은 종료 틱과 시작 틱의 차이로 처리시간을 계산하고, 해당 처리시간이 평균 처리시간보다 큰지 여부를 판단하는 조건일 수 있다.At this time, the predetermined condition may be a condition for calculating the processing time by the difference between the ending tick and the start tick, and determining whether the processing time is larger than the average processing time.

이때, 해당 처리시간이 평균 처리시간보다 큰 경우에는 난수로서 1을 결정하고, 해당 처리시간이 평균 처리시간보다 크지 않은 경우에는 난수로서 0을 결정할 수 있다.At this time, when the processing time is longer than the average processing time, 1 is determined as a random number, and when the processing time is not larger than the average processing time, 0 can be determined as a random number.

이때, 난수 생성의 완료 여부는 원하는 개수만큼의 난수가 생성되었는지 여부를 의미할 수 있다. 즉, 한번의 과정당 1비트의 난수가 생성되며, 원하는 횟수만큼 반복하여 원하는 비트수만큼의 난수열을 생성할 수 있다.At this time, whether or not the generation of the random number is completed may indicate whether or not a desired number of random numbers have been generated. That is, a random number of 1 bit is generated per one process, and a random number sequence of the desired number of bits can be generated by repeating a desired number of times.

선택적 실시예에서, UART 기반 실난수 발생 장치(100)는 난수성을 강화하여 강화된 난수를 생성할 때, 생성된 실난수의 난수 생성 순서를 인덱스(index)로 하여 rotate(회전)하고, 해당 난수성 강화가 최초 난수성 강화인 경우에는 기설정된 초기값과 회전된 난수에 대해 기설정된 연산을 수행하고, 해당 난수성 강화가 최초 난수성 강화가 아닌 경우에는 이전 강화된 난수와 회전된 난수에 대해 기설정된 연산을 수행하여 강화된 난수를 생성할 수 있다.In an alternative embodiment, the UART-based real random number generator 100 rotates (rotates) the random number generating sequence of the generated random number using the index as an index when generating the enhanced random number by enhancing the random number, In the case where the enhancement of the primitive is the initial primitive enhancement, a predetermined operation is performed on the preset initial value and the rotated random number, and if the primitive enhancement is not the initial primitive enhancement, the previous enhanced random number and the rotated random number Can perform the predetermined operation to generate an enhanced random number.

이때, 회전하는 정도는 난수 생성 순서에 해당하는 인덱스만큼 회전하도록 할 수 있다.At this time, the degree of rotation can be made to rotate by the index corresponding to the random number generation order.

이때, 기설정된 연산으로 AND, OR, NAND, NOR, XOR, XNOR을 포함하는 연산 중에서 선택하거나 이들을 조합하여 사용할 수 있다.At this time, it is possible to select among the operations including AND, OR, NAND, NOR, XOR, and XNOR in a predetermined operation or use them in combination.

이때, 난수성을 강화할 때, 동일한 길이의 난수열들 간에 연산을 수행하여 난수성을 강화할 수 있다.At this time, when enhancing the randomness, it is possible to enhance the randomness by performing an operation between the random length sequences.

이때, 난수성을 강화할 때, 길이가 다른 난수열들 간에 연산을 수행하기 위하여 난수열 간에 동일한 길이를 갖도록 길이를 늘리거나 줄일 수 있다. 길이를 늘리기 위하여 기설정된 연산을 수행하여 길이를 늘리도록 할 수도 있고, 해당 난수열의 일부 부분을 복사하여 늘릴 수도 있다. 길이를 줄이기 위하여 난수열의 일부를 자를 수 있다.At this time, when enhancing the randomness, it is possible to increase or decrease the length so as to have the same length among the random numbers in order to perform operations between the random number sequences. In order to increase the length, a predetermined operation may be performed to increase the length, or a portion of the random number sequence may be copied and increased. To reduce the length, I can truncate part of the sequence.

이때, 난수열들을 일정 길이의 단위로 자를 수 있다.At this time, it is possible to cut the random number sequences into units of a predetermined length.

선택적 실시예에서, UART 기반 실난수 발생 장치(100)는 강화된 난수를 안정화하여 최종 난수를 생성할 때, 강화된 난수, 시드(seed) 및 사용자 입력값을 이용하여 수학적으로 안정화된 최종 난수를 생성할 수 있다.In an alternate embodiment, the UART-based real random number generation device 100 may use the enhanced random number, seed, and user input values to stabilize the enhanced random number to produce a final random number that is mathematically stabilized Can be generated.

상세히, 도 1을 참조하면, 본 발명의 일 실시예에 따른 UART 기반 실난수 발생 장치(100)는 제어부(110), 통신부(120), 메모리(130), 실난수 생성부(140), 난수성 강화부(150), 난수 안정화부(160) 및 입력부(170) 등을 포함한다.1, a UART-based real random number generator 100 according to an embodiment of the present invention includes a controller 110, a communication unit 120, a memory 130, a real random number generator 140, An aqueous strengthening unit 150, a random-number stabilizing unit 160, an input unit 170, and the like.

상세히, 제어부(110)는 일종의 중앙처리장치로서 UART 기반 실난수 발생 장치(100)의 전체 동작 과정을 제어한다. 즉, 제어부(110)는 통신부(120), 실난수 생성부(140), 난수성 강화부(150), 난수 안정화부(160) 등을 제어하여 다양한 기능을 제공할 수 있다.In detail, the control unit 110 controls the overall operation of the UART-based random number generator 100 as a kind of central processing unit. That is, the control unit 110 can provide various functions by controlling the communication unit 120, the real random number generating unit 140, the random number enhancing unit 150, the random number stabilizing unit 160, and the like.

여기서, 제어부(110)는 프로세서(processor)와 같이 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.Here, the control unit 110 may include any kind of device capable of processing data, such as a processor. Herein, the term " processor " may refer to a data processing apparatus embedded in hardware, for example, having a circuit physically structured to perform a function represented by a code or an instruction contained in the program. As an example of the data processing apparatus built in hardware, a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, an application-specific integrated circuit (ASIC) circuit, and a field programmable gate array (FPGA), but the scope of the present invention is not limited thereto.

통신부(120)는 UART 제어에 필요한 통신 인터페이스를 제공한다.The communication unit 120 provides a communication interface required for UART control.

여기서, 통신부(120)는 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다. Here, the communication unit 120 may be a device including hardware and software necessary to transmit / receive a signal such as a control signal or a data signal through a wired / wireless connection with another network device.

이때, 통신부(120)는 UART를 포함할 수 있다.At this time, the communication unit 120 may include a UART.

메모리(130)는 제어부(110)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행한다. 여기서, 메모리(130)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.The memory 130 performs a function of temporarily or permanently storing data processed by the controller 110. Here, the memory 130 may include magnetic storage media or flash storage media, but the scope of the present invention is not limited thereto.

실난수 생성부(140)는 UART 메시지를 이용하여 실난수를 생성한다.The real random number generator 140 generates a real random number using a UART message.

이때, 실난수 생성부(140)는 타이머로부터 시작 틱(tick)을 획득하고, UART 송신 메시지를 발생하며, 타이머로부터 종료 틱을 획득하여 기설정된 조건의 충족 여부를 판단하여 난수로서 0 또는 1을 결정하여 저장할 수 있다. 즉, 이 과정으로 1비트의 0 또는 1의 값을 가지는 난수가 생성될 수 있다.At this time, the real random number generator 140 acquires a start tick from the timer, generates a UART transmission message, obtains an end tick from the timer, determines whether or not the preset condition is satisfied, Can be determined and stored. That is, a random number having a value of 0 or 1 of 1 bit can be generated by this process.

이때, 실난수 생성부(140)는 난수의 생성이 완료될 때까지 1비트씩 난수를 생성하는 과정을 반복할 수 있다.At this time, the real random number generation unit 140 may repeat the process of generating a random number bit by bit until generation of the random number is completed.

이때, 실난수 생성부(140)는 난수가 기설정된 개수 또는 기설정된 비트수만큼 생성될 때까지 1비트씩 난수를 생성하는 과정을 반복하여 난수열을 생성할 수 있다.At this time, the real random number generation unit 140 may generate the random number sequence by repeating the process of generating random numbers one bit at a time until a predetermined number of random numbers or predetermined number of bits are generated.

이때, 실난수 생성부(140)에서 기설정된 조건은 종료 틱과 시작 틱의 차이로 처리시간을 계산하고, 해당 처리시간이 평균 처리시간보다 큰지 여부를 판단하는 조건일 수 있다.At this time, the predetermined condition in the real random number generator 140 may be a condition for calculating the processing time by the difference between the end tick and the start tick, and determining whether the processing time is larger than the average processing time.

이때, 실난수 생성부(140)는 해당 처리시간이 평균 처리시간보다 큰 경우에는 난수로서 1을 결정하고, 해당 처리시간이 평균 처리시간보다 크지 않은 경우에는 난수로서 0을 결정할 수 있다.At this time, the real random number generator 140 determines 1 as a random number when the processing time is longer than the average processing time, and may determine 0 as a random number when the processing time is not larger than the average processing time.

난수성 강화부(150)는 실난수 생성부(140)에서 생성된 실난수에 대하여 난수성을 강화하여 강화된 난수를 생성한다.The water-based strengthening unit 150 enhances the hardness of the real random number generated by the real random number generating unit 140 to generate an enhanced random number.

이때, 난수성 강화부(150)는 생성된 실난수의 난수 생성 순서를 인덱스(index)로 하여 rotate(회전)하고, 해당 난수성 강화가 최초 난수성 강화인 경우에는 기설정된 초기값과 회전된 난수에 대해 기설정된 연산을 수행하고, 해당 난수성 강화가 최초 난수성 강화가 아닌 경우에는 이전 강화된 난수와 회전된 난수에 대해 기설정된 연산을 수행하여 강화된 난수를 생성할 수 있다.At this time, the random enhancement unit 150 rotates the random number generating sequence of the generated random number as an index, and when the random enhancement is the initial random enhancement, A predetermined operation is performed on the random number, and if the random enhancement is not the initial random enhancement, the enhanced random number can be generated by performing a predetermined operation on the previously enhanced random number and the rotated random number.

이때, 난수성 강화부(150)에서 생성된 실난수를 회전할 때, 회전하는 정도는 난수 생성 순서에 해당하는 인덱스만큼 회전하도록 할 수 있다.At this time, when rotating the real random number generated by the random number enhancement unit 150, the degree of rotation may be rotated by an index corresponding to a random number generation order.

이때, 난수성 강화부(150)는 기설정된 연산으로 AND, OR, NAND, NOR, XOR, XNOR을 포함하는 연산 중에서 선택하거나 이들을 조합하여 사용할 수 있다.At this time, the water-based strengthening unit 150 can select among operations including AND, OR, NAND, NOR, XOR, and XNOR in a predetermined operation or use them in combination.

이때, 난수성 강화부(150)는 난수성을 강화할 때, 동일한 길이의 난수열들 간에 연산을 수행하여 난수성을 강화할 수 있다.At this time, when the random enhancement unit 150 enhances the randomness, the random enhancement unit 150 may perform the arithmetic operation between the random sequence of the same length to enhance the randomness.

이때, 난수성 강화부(150)는 난수성을 강화할 때, 길이가 다른 난수열들 간에 연산을 수행하기 위하여 난수열간에 동일한 길이를 갖도록 길이를 늘리거나 줄일 수 있다. 길이를 늘리기 위하여 기설정된 연산을 수행하여 길이를 늘리도록 할 수도 있고, 해당 난수열의 일부 부분을 복사하여 늘릴 수도 있다. 길이를 줄이기 위하여 난수열의 일부를 자를 수 있다.At this time, when the random enhancement unit 150 enhances the randomness, the length may be increased or decreased to have the same length between the random number rows in order to perform an operation between the random number sequences having different lengths. In order to increase the length, a predetermined operation may be performed to increase the length, or a portion of the random number sequence may be copied and increased. To reduce the length, I can truncate part of the sequence.

이때, 난수성 강화부(150)는 난수성을 강화할 때, 난수열들을 일정 길이의 단위로 자를 수 있다.At this time, when the irregular strengthening unit 150 strengthens the irregularity, it can cut the random number sequences into a unit of a certain length.

이때, 난수성 강화부(150)는 난수성을 강화할 때, 길이가 다른 난수열들 간에 상기 기설정된 연산을 수행하기 위하여 난수열들을 수정하여 길이를 동일하게 맞추거나, 난수열들을 일정 길이의 단위로 자를 수 있다.At this time, when the random enhancement unit 150 enhances the randomness, the random number sequence may be modified so as to equalize the length of the random number sequence in order to perform the predetermined operation between the random number sequences having different lengths, .

난수 안정화부(160)는 난수성 강화부(150)에서 생성된 강화된 난수를 안정화하여 최종 난수를 생성한다.The random number stabilization unit 160 stabilizes the enhanced random number generated in the random number enhancement unit 150 to generate a final random number.

이때, 강화된 난수를 안정화하여 최종 난수를 생성한다는 것은, 의사난수를 발생하는 기술을 이용하여 강화된 난수로부터 최종 난수를 생성하는 것을 의미할 수 있다.At this time, stabilizing the enhanced random number to generate the final random number may mean generating the final random number from the enhanced random number using a technique of generating a pseudo random number.

이때, 난수 안정화부(160)는 강화된 난수, 시드(seed) 및 입력부(170)로부터 입력 받은 사용자 입력값을 이용하여 수학적으로 안정화된 최종 난수를 생성할 수 있다.At this time, the random number stabilizer 160 may generate a mathematically stabilized final random number using an enhanced random number, a seed, and a user input value input from the input unit 170. [

이때, 난수 안정화부(160)는 강화된 난수를 이용하여 의사난수 생성을 위한 시드를 결정할 수 있다.At this time, the random number stabilizer 160 may determine a seed for pseudo-random number generation using the enhanced random number.

이때, 난수 안정화부(160)는 사용자 입력값을 이용하여 의사난수 생성을 위한 시드를 보완 또는 수정할 수 있다.At this time, the random number stabilizer 160 may supplement or modify the seed for pseudo random number generation using the user input value.

이때, 난수 안정화부(160)는 강화된 난수와 사용자 입력값을 동시에 이용하여 의사난수 생성을 위한 시드를 결정할 수 있다.At this time, the random number stabilizer 160 can determine the seed for pseudo-random number generation by using the enhanced random number and the user input value at the same time.

입력부(170)는 난수 안정화부(160)에서 최종 난수를 생성할 때 이용하기 위하여 사용자로부터 입력을 받을 수 있는 기능을 갖는다.The input unit 170 has a function of receiving input from a user for use in generating a final random number by the random number stabilization unit 160. [

이때, 입력부(170)는 통신부(120)와 별개로 존재하는 구성일 수도 있지만, 통신부(120)의 기능 중에서 사용자의 입력을 수신하는 기능만을 구분한 구성일 수도 있다. 즉, 통신부(120)를 통하여 사용자의 입력을 수신하는 경우에도 입력부(170)를 통한 사용자 입력이라 볼 수 있다.At this time, the input unit 170 may be configured separately from the communication unit 120, but may be configured to distinguish only the function of receiving the user's input from among the functions of the communication unit 120. That is, even when the input of the user is received through the communication unit 120, it can be regarded as a user input through the input unit 170.

이에 따라, 난수를 생성할 때 예측할 수 없는 UART 메시지의 처리 시간을 이용함으로써, 예측이 불가능한 실난수를 생성할 수 있다.Thus, by using the processing time of the UART message which can not be predicted when generating a random number, it is possible to generate a random number that can not be predicted.

또한, 의사난수를 결정하는 매커니즘이나 시드가 결정되는 과정을 실난수를 이용함으로써, 보다 수학적으로 안정화된 실난수를 생성할 수 있다.Further, by using a real random number as a process of determining a pseudo random number or a process of determining a seed, a more mathematically stable real random number can be generated.

도 2는 본 발명의 일 실시예에 따른 UART 기반 실난수 발생 방법을 나타낸 동작 흐름도이다.2 is a flowchart illustrating a method of generating a UART-based real random number according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 UART 기반 실난수 발생 방법은 UART 기반 실난수 발생 장치(도 1의 100 참조)가, UART를 기반으로 실난수를 생성한다(S301).Referring to FIG. 2, in the UART-based real random number generating method according to an embodiment of the present invention, a UART-based real random number generator (see 100 in FIG. 1) generates a real random number based on a UART (S301).

또한, 본 발명의 일 실시예에 따른 UART 기반 실난수 발생 방법은 UART 기반 실난수 발생 장치(도 1의 100 참조)가, 생성된 실난수의 난수성을 강화하여 강화된 난수를 생성한다(S303).In addition, in the UART-based real random number generating method according to an embodiment of the present invention, the UART-based real random number generating device (see 100 in FIG. 1) enhances the randomness of the generated real random number to generate an enhanced random number (S303 ).

또한, 본 발명의 일 실시예에 따른 UART 기반 실난수 발생 방법은 UART 기반 실난수 발생 장치(도 1의 100 참조)가, 강화된 난수를 안정화하여 최종 난수를 생성한다(S305).Also, in the UART-based real random number generating method according to an embodiment of the present invention, a UART-based real random number generating device (see 100 in FIG. 1) stabilizes the enhanced random number to generate a final random number (S305).

이때, 강화된 난수를 안정화하여 최종 난수를 생성한다는 것은, 의사난수를 발생하는 기술을 이용하여 강화된 난수로부터 최종 난수를 생성하는 것을 의미할 수 있다.At this time, stabilizing the enhanced random number to generate the final random number may mean generating the final random number from the enhanced random number using a technique of generating a pseudo random number.

이때, 강화된 난수, 시드(seed) 및 사용자 입력값을 이용하여 수학적으로 안정화된 최종 난수를 생성할 수 있다.At this time, a mathematically stabilized final random number can be generated using the enhanced random number, seed, and user input values.

도 3는 도 2에 도시된 실난수를 생성하는 단계(S301)의 일 예를 나타낸 동작 흐름도이다.FIG. 3 is an operational flowchart showing an example of generating the random number (S301) shown in FIG.

도 3을 참조하면, 도 2에 도시된 실난수를 생성하는 단계(S301)는, 타이머로부터 시작 틱(tick) 정보를 획득한다(S401).Referring to FIG. 3, in step S301 of generating the real random number shown in FIG. 2, start tick information is obtained from the timer (S401).

또한, 도 2에 도시된 실난수를 생성하는 단계(S301)는, UART 메시지를 발생시킨다(S403).In addition, the step of generating a real random number (S301) shown in FIG. 2 generates a UART message (S403).

또한, 도 2에 도시된 실난수를 생성하는 단계(S301)는, 타이머로부터 종료 틱 정보를 획득한다(S405).The step S301 of generating the real random number shown in Fig. 2 acquires the ending tick information from the timer (S405).

또한, 도 2에 도시된 실난수를 생성하는 단계(S301)는, 획득한 정보를 이용하여 기설정된 조건의 충족 여부를 판단한다(S407).In step S301 of generating the real random number shown in FIG. 2, it is determined whether or not predetermined conditions are satisfied by using the acquired information (S407).

단계(S407)의 판단 결과, 기설정된 조건을 충족하는 경우에는, 난수로서 1을 설정하여 1비트의 난수를 생성한다(S409).As a result of the determination in step S407, if the predetermined condition is satisfied, 1 is set as a random number to generate a 1-bit random number (S409).

단계(S407)의 판단 결과, 기설정된 조건을 충족하지 않는 경우에는, 난수로서 0을 설정하여 1비트의 난수를 생성한다(S411).As a result of the determination in step S407, if the predetermined condition is not satisfied, 0 is set as a random number to generate a 1-bit random number (S411).

또한, 도 2에 도시된 실난수를 생성하는 단계(S301)는, 단계(S407) 또는 단계(S409)에서 생성된 1비트의 난수를 저장한다(S413).The step S301 of generating the real random number shown in Fig. 2 stores the 1-bit random number generated in the step S407 or S409 (S413).

또한, 도 2에 도시된 실난수를 생성하는 단계(S301)는, 난수 생성이 완료되었는지 여부를 판단한다(S415).In step S301 of generating the real random number shown in FIG. 2, it is determined whether or not the random number generation is completed (S415).

단계(S415)의 판단 결과, 난수 생성이 완료된 경우에는, 실난수 생성 절차를 완료하여 난수성을 강화하는 단계(S303)로 진행한다.If it is determined in step S415 that the random number generation is completed, the process proceeds to step S303 in which the random number generation procedure is completed to enhance the random number generation.

단계(S415)의 판단 결과, 난수 생성이 완료되지 않은 경우에는, 실난수를 더 생성하기 위하여 단계(S401)로 돌아간다.If it is determined in step S415 that the random number generation is not completed, the process returns to step S401 to further generate the real random number.

도 4는 도 3에 도시된 기설정된 조건 충족 여부를 판단하는 단계(S407)의 일 예를 나타낸 동작 흐름도이다.4 is an operational flowchart illustrating an example of determining whether the predetermined condition shown in FIG. 3 is satisfied (S407).

도 4를 참조하면, 도 3에 도시된 기설정된 조건 충족 여부를 판단하는 단계(S407)는, 수집된 시작 틱 정보와 종료 틱 정보의 차이값을 통하여 UART 처리시간을 계산하며, 해당 처리시간이 평균 처리시간보다 큰지 여부를 판단한다(S501).Referring to FIG. 4, in step S407, it is determined whether or not the predetermined condition shown in FIG. 3 is satisfied. The UART processing time is calculated based on the difference between the collected start tick information and the end tick information. Is greater than the average processing time (S501).

단계(S501)의 판단 결과, 해당 처리시간이 평균 처리시간보다 큰 경우에는, 난수로서 1을 설정하여 1비트의 난수를 생성하는 단계(S409)로 진행한다.If it is determined in step S501 that the processing time is longer than the average processing time, the process proceeds to step S409 in which 1 is set as a random number to generate a 1-bit random number.

단계(S501)의 판단 결과, 해당 처리시간이 평균 처리시간보다 크지 않은 경우에는, 난수로서 0을 설정하여 1비트의 난수를 생성하는 단계(S411)로 진행한다.If it is determined in step S501 that the processing time is not larger than the average processing time, the process proceeds to step S411 in which 0 is set as a random number to generate a 1-bit random number.

이때, 평균 처리시간은 난수를 생성하기 이전에 미리 계산할 수 있다.At this time, the average processing time can be calculated before the random number is generated.

도 5는 도 3에 도시된 난수 생성 완료 여부를 판단하는 단계(S415)의 일 예를 나타낸 동작 흐름도이다.5 is an operation flowchart illustrating an example of a step S415 of determining whether the random number generation shown in FIG. 3 is completed.

도 5를 참조하면, 도 3에 도시된 난수 생성 완료 여부를 판단하는 단계(S415)는, 난수가 기설정된 개수 혹은 기설정된 비트수만큼 생성이 되었는지 여부를 판단한다(S601).Referring to FIG. 5, the step of determining whether the random number generation shown in FIG. 3 is completed (S415) determines whether a random number has been generated for a predetermined number or a predetermined number of bits (S601).

즉, 도 3에 도시된 단계(S401) 내지 단계(S415)를 거치면 1비트의 실난수가 생성되며, 목표하는 개수만큼의 실난수 생성하였는지 여부 혹은 목표하는 길이를 갖는 실난수열을 생성하였는지 여부를 판단한다.In other words, a 1-bit real random number is generated through steps S401 to S415 shown in FIG. 3, and it is determined whether or not a target random number has been generated or a random number sequence having a target length has been generated .

단계(S601)의 판단 결과, 난수가 기설정된 개수만큼 생성된 경우에는, 실난수의 난수성을 강화하여 강화된 난수를 생성하는 단계(S303)로 진행한다.If it is determined in step S601 that a predetermined number of random numbers have been generated, the process proceeds to step S303 in which the random number of the real random number is strengthened to generate an enhanced random number.

단계(S601)의 판단 결과, 난수가 기설정된 개수만큼 생성되지 않은 경우에는, 다시 1비트의 난수를 생성하기 위하여 단계(S401)로 돌아간다.If it is determined in step S601 that no predetermined number of random numbers has been generated, the process returns to step S401 to generate a 1-bit random number again.

도 6은 도 2에 도시된 난수성을 강화하는 단계(S303)의 일 예를 나타낸 동작 흐름도이다.FIG. 6 is an operational flowchart showing an example of the step of enhancing the randomness (S303) shown in FIG.

도 6을 참조하면, 도 2에 도시된 난수성을 강화하는 단계(S303)는, 난수 생성 순서를 인덱스로 하여 해당 난수에 대하여 rotate(회전) 연산을 수행한다(S701).Referring to FIG. 6, in step S303 of enhancing the randomness shown in FIG. 2, a rotate operation is performed on the random number using the random number generation order as an index (S701).

이때, 회전하는 정도는 난수 생성 순서에 해당하는 인덱스만큼 회전하도록 할 수 있다.At this time, the degree of rotation can be made to rotate by the index corresponding to the random number generation order.

또한, 도 2에 도시된 난수성을 강화하는 단계(S303)는, 현재 수행중인 난수성 강화 단계가 최초의 난수성 강화 단계인지 여부를 판단한다(S703).In addition, the step of enhancing irregularity shown in FIG. 2 (S303) determines whether the current irrigation enhancing step is the first irrigation enhancing step (S703).

단계(S703)의 판단 결과, 현재 수행중인 난수성 강화 단계가 최초의 난수성 강화 단계인 경우에는, 기설정된 초기값과 단계(S701)에서 회전된 난수에 대하여 기설정된 연산을 수행한다(S705).As a result of the determination in step S703, if the current random impairment step is the first random impairment step, a predetermined operation is performed on the initial value and the random number rotated in step S701 (step S705) .

이때, 단계(S705)에서 기설정된 연산으로 AND, OR, NAND, NOR, XOR, XNOR을 포함하는 연산 중에서 선택하거나 이들을 조합하여 사용할 수 있다.At this time, it is possible to select one of the operations including AND, OR, NAND, NOR, XOR and XNOR in the pre-set operation in step S705 or use them in combination.

이때, 단계(S705)에서 단계(S701)에서 회전된 난수와 동일한 길이를 갖는 기설정된 초기값을 이용하여 난수열들 간에 연산을 수행하여 난수성을 강화할 수 있다.At this time, in step S705, the randomness may be enhanced by performing arithmetic operation between the random number sequences using a predetermined initial value having the same length as the rotated random number in step S701.

이때, 단계(S705)에서 길이가 다른 난수열들 간에 연산을 수행하기 위하여 난수열 간에 동일한 길이를 갖도록 길이를 늘리거나 줄일 수 있다. 길이를 늘리기 위하여 기설정된 연산을 수행하여 길이를 늘리도록 할 수도 있고, 해당 난수열의 일부 부분을 복사하여 늘릴 수도 있다. 길이를 줄이기 위하여 난수열의 일부를 자를 수 있다.In this case, in order to perform an operation between the random number sequences having different lengths in step S705, the length may be increased or decreased to have the same length between the random number sequences. In order to increase the length, a predetermined operation may be performed to increase the length, or a portion of the random number sequence may be copied and increased. To reduce the length, I can truncate part of the sequence.

이때, 단계(S705)에서 난수열들을 일정 길이의 단위로 자를 수 있다.At this time, in step S705, the random number sequences may be cut in units of a predetermined length.

단계(S703)의 판단 결과, 현재 수행중인 난수성 강화 단계가 최초의 난수성 강화 단계가 아닌 경우에는, 이전에 강화된 난수와 단계(S701)에서 회전된 난수에 대하여 기설정된 연산을 수행한다(S707).As a result of the determination in step S703, if the current random enhancement step is not the first random enhancement step, a predetermined operation is performed on the previously enhanced random number and the random number rotated in step S701 ( S707).

이때, 단계(S707)에서 기설정된 연산으로 AND, OR, NAND, NOR, XOR, XNOR을 포함하는 연산 중에서 선택하거나 이들을 조합하여 사용할 수 있다.At this time, it is possible to select among the operations including AND, OR, NAND, NOR, XOR and XNOR in the pre-set operation in step S707 or use them in combination.

이때, 단계(S707)에서 단계(S701)에서 회전된 난수와 동일한 길이를 갖는 이전에 강화된 난수를 이용하여 난수열들 간에 연산을 수행하여 난수성을 강화할 수 있다.At this time, in step S707, the random number may be enhanced by performing arithmetic operation between the random number sequences using the previously enhanced random number having the same length as the rotated random number in step S701.

이때, 단계(S707)에서 길이가 다른 난수열들 간에 연산을 수행하기 위하여 난수열 간에 동일한 길이를 갖도록 길이를 늘리거나 줄일 수 있다. 길이를 늘리기 위하여 기설정된 연산을 수행하여 길이를 늘리도록 할 수도 있고, 해당 난수열의 일부 부분을 복사하여 늘릴 수도 있다. 길이를 줄이기 위하여 난수열의 일부를 자를 수 있다.At this time, in order to perform an operation between the random number sequences having different lengths in step S707, the length may be increased or decreased to have the same length between the random number sequences. In order to increase the length, a predetermined operation may be performed to increase the length, or a portion of the random number sequence may be copied and increased. To reduce the length, I can truncate part of the sequence.

이때, 단계(S707)에서 난수열들을 일정 길이의 단위로 자를 수 있다.At this time, in step S707, the random number sequences may be cut in units of a predetermined length.

또한, 도 2에 도시된 난수성을 강화하는 단계(S303)는, 단계(S705) 또는 단계(S707)에서의 연산 결과인 강화된 난수를 반환한다(S709).In addition, the step of enhancing the randomization shown in Fig. 2 (S303) returns the enhanced random number which is the calculation result in the step S705 or S707 (S709).

이에 따라, 생성된 실난수들 간의 연산을 통하여 더욱 난수성을 강화시킬 수 있다.Accordingly, the randomness can be further enhanced through the calculation between the generated random numbers.

도 7은 본 발명의 일 실시예에 따른 UART 송신 지연시간을 이용한 난수 생성의 예를 나타낸 도면이다.7 is a diagram illustrating an example of random number generation using UART transmission delay time according to an embodiment of the present invention.

도 7에는 기준이 되는 신호(8c)와 여러 개의 UART 송신 메시지(8a 및 8b)의 예시가 도시되어 있다.FIG. 7 shows an example of a reference signal 8c and several UART transmission messages 8a and 8b.

UART 송신을 하게되면 입출력 처리(I/O 처리)에 의해 도 7과 같이 각 UART 송신 메시지(8a 및 8b)의 처리시간이 무작위로 발생된다. 즉, 메시지(8a)와 메시지(8b)간에는 처리시간의 차이가 diffab만큼 존재하게 된다.When UART transmission is performed, the processing time of each UART transmission message 8a and 8b is randomly generated by the input / output processing (I / O processing) as shown in FIG. That is, the difference in processing time exists between the message 8a and the message 8b by diff ab .

이때, 처리시간(T 또는 t)은 종료시간 E에서 시작시간 S와의 틱의 차이를 나타낼 수 있다.At this time, the processing time (T or t) may indicate the difference of the tick from the start time S to the end time E.

여기서, 메시지(8a)의 처리시간 ta는 종료시간 Ea와 시작시간 Sa의 틱의 차이이고, 메시지(8b)의 처리시간 tb는 종료시간 Eb와 시작시간 Sb의 틱의 차이가 될 수 있다.Here, the processing time t a of the message 8a is the difference between the ticks of the end time E a and the start time S a , and the processing time t b of the message 8b is the difference between the end time E b and the tick of the start time S b .

즉, 시스템 타이머를 이용하여 시작시간과 완료시간을 통해 딜레이를 계산할 수 있다.That is, the delay can be calculated through the start time and the completion time using the system timer.

이때, 타이머 틱의 시작위치에 의한 오차를 줄이기 위해, 메시지(8a 또는 8b)의 변화가 시작되는 시점을 감지하여 기준 신호(8c)와의 비교를 통해 시작시간 S를 획득할 수 있다.At this time, in order to reduce the error due to the start position of the timer tick, the start time S can be obtained by detecting the start of the change of the message 8a or 8b and comparing with the reference signal 8c.

평균 처리시간(AVG)은 하기 수학식 1과 같이 계산할 수 있다.The average processing time AVG can be calculated as shown in the following equation (1).

이때, 평균 처리시간(AVG)는 난수발생이전에 미리 계산해둘 수 있다.At this time, the average processing time (AVG) can be calculated before random number generation.

[수학식 1][Equation 1]

AVG = (ta+...+tn) / nAVG = (t a + ... + t n ) / n

그리고, 현재 메시지의 처리시간 T가 평균 처리시간 AVG보다 큰 경우에는 난수로서 1을 설정하여 저장하고, 그렇지 않은 경우에는 난수로서 0을 설정하여 저장할 수 있다.If the processing time T of the current message is larger than the average processing time AVG, a random number of 1 is set and stored. If not, the random number can be set to 0 and stored.

도 8은 본 발명의 일 실시예에 따른 실난수의 난수성을 강화하는 방법을 나타낸 도면이다.8 is a view illustrating a method for enhancing the randomness of the random random number according to an embodiment of the present invention.

도 8을 참조하면, 본 발명의 일 실시예에 따른 실난수의 난수성을 강화하는 방법은, 각 생성된 실난수들(91a 및 92a)에 대하여 회전(rotate) 연산(91b 및 92b)을 수행한다.Referring to FIG. 8, the method for enhancing the randomness of the real random number according to an embodiment of the present invention includes performing rotate operations 91b and 92b on the generated random numbers 91a and 92a do.

이때, 회전 연산의 회전 정도는 각 실난수들(91a 및 92a)의 생성 순위에 따른 인덱스만큼이 될 수 있다.At this time, the degree of rotation of the rotation calculation may be an index corresponding to the generation order of the real random numbers 91a and 92a.

그리고, 현재 난수성 강화 절차가 최초의 난수성 강화 절차인 경우에는, 기설정된 초기값(90)과 현재 회전된 실난수(91b)에 대하여 기설정된 연산(91c)을 수행하여 강화된 난수(91d)를 생성한다.If the current enhancement procedure is the initial enhancement procedure, the predefined initial value 90 and the currently rotated actual random number 91b are subjected to a predetermined operation 91c to obtain enhanced random numbers 91d ).

이때, 기설정된 연산(91c)은 OR, NOR, AND, NAND, XOR, XNOR을 포함하는 연산 중에서 선택되거나, 이들의 조합일 수 있다.At this time, the predetermined operation 91c may be selected among operations including OR, NOR, AND, NAND, XOR, and XNOR, or a combination thereof.

그리고, 현재 난수성 강화 절차가 최초의 난수성 강화 절차가 아닌 경우에는, 이전에 생성된 강화된 난수(91d)과 현재 회전된 실난수(92b)에 대하여 기설정된 연산(92c)을 수행하여 강화된 난수(92d)를 생성한다.If the current random enhancement procedure is not the first enhancement procedure, the previously performed enhanced random number 91d and the currently rotated random number 92b are subjected to a predetermined operation 92c to perform the enhancement Generated random number 92d.

이때, 기설정된 연산(92c)은 OR, NOR, AND, NAND, XOR, XNOR을 포함하는 연산 중에서 선택되거나, 이들의 조합일 수 있다.At this time, the predetermined operation 92c may be selected among operations including OR, NOR, AND, NAND, XOR, and XNOR, or a combination thereof.

예컨대, 32비트 단위의 난수열을 생성하여 XOR 연산을 통해 난수성을 강화하는 방법은 하기 수도코드 1과 같이 이루어질 수 있다.For example, a method of generating a random number sequence in units of 32 bits and enhancing randomness through an XOR operation may be performed as follows.

[수도코드 1][Water Code 1]

R0 = IVR 0 = IV

for i = 1 to nfor i = 1 to n

output Ri = Rotate( Ri , i mod 32 )

Figure 112017077274290-pat00001
Ri -1 output R i = Rotate (R i , i mod 32)
Figure 112017077274290-pat00001
R i -1

endend

여기서, Ri(i는 1부터 n까지)는 강화된 난수를 의미하고, R0와 IV는 기설정된 초기값을 의미하며,

Figure 112017077274290-pat00002
는 XOR 연산을 의미한다.Here, R i (i is an integer from 1 to n) means an enhanced random number, R 0 and IV are predetermined initial values,
Figure 112017077274290-pat00002
Means an XOR operation.

이에 따라, 생성된 실난수들 간의 연산을 통하여 더욱 난수성을 강화시킬 수 있다.Accordingly, the randomness can be further enhanced through the calculation between the generated random numbers.

본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.The specific acts described in the present invention are, by way of example, not intended to limit the scope of the invention in any way. For brevity of description, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of such systems may be omitted. Also, the connections or connecting members of the lines between the components shown in the figures are illustrative of functional connections and / or physical or circuit connections, which may be replaced or additionally provided by a variety of functional connections, physical Connection, or circuit connections. Also, unless explicitly mentioned, such as " essential ", " importantly ", etc., it may not be a necessary component for application of the present invention.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention should not be construed as being limited to the above-described embodiments, and all ranges that are equivalent to or equivalent to the claims of the present invention as well as the claims .

1: UART 기반 실난수 발생 시스템
100: UART 기반 실난수 발생 장치
110: 제어부 120: 통신부
130: 메모리 140: 실난수 생성부
150: 난수성 강화부 160: 난수 안정화부
170: 입력부
1: UART-based real random number generation system
100: UART based random number generator
110: control unit 120: communication unit
130: memory 140: real random number generator
150: water hardening part 160: random water stabilizing part
170:

Claims (20)

UART(Universal Asynchronous Receiver/Transmitter)를 이용하여, UART를 기반으로 실난수를 생성하는 실난수 생성부;
상기 생성된 실난수의 난수성을 강화하여 강화된 난수를 생성하는 난수성 강화부; 및
상기 강화된 난수를 안정화하여 최종 난수를 생성하는 난수 안정화부
를 포함하는, UART 기반 실난수 발생 장치.
A real random number generator for generating a real random number based on the UART using a UART (Universal Asynchronous Receiver / Transmitter);
A random water strengthening unit for strengthening the randomness of the generated real random water to generate reinforced random water; And
A random number stabilizing unit for stabilizing the enhanced random number to generate a final random number,
Based random number generator.
청구항 1에 있어서,
상기 실난수 생성부는
타이머로부터 시작 틱을 획득하고, UART 메시지를 발생하고, 상기 타이머로부터 종료 틱을 획득하여 기설정된 조건의 충족 여부를 판단하고, 기설정된 조건의 충족 여부에 따라 1비트의 실난수를 생성하는 것인, UART 기반 실난수 발생 장치.
The method according to claim 1,
The real random number generator
Determining whether a predetermined condition is satisfied by acquiring a start tick from a timer, generating a UART message, obtaining an end tick from the timer, and generating a 1-bit real random number according to whether the predetermined condition is satisfied , UART based random number generator.
청구항 2에 있어서,
상기 실난수 생성부는
상기 기설정된 조건이 충족된 경우에 난수로서 1을 설정하여 1비트의 실난수를 생성하고, 상기 기설정된 조건이 충족되지 않은 경우에 난수로서 0을 설정하여 1비트의 실난수를 생성하는 것인, UART 기반 실난수 발생 장치.
The method of claim 2,
Wherein the real random number generating unit
And generating a 1-bit real random number by setting 1 as a random number when the predetermined condition is satisfied, and setting 0 as a random number when the predetermined condition is not satisfied, thereby generating a 1-bit real random number , UART based random number generator.
청구항 3에 있어서,
상기 실난수 생성부는
기설정된 개수만큼 실난수가 생성될 때까지, 상기 1비트의 실난수를 생성하는 과정을 반복하는 것인, UART 기반 실난수 발생 장치.
The method of claim 3,
The real random number generator
And repeating the process of generating the 1-bit real random number until a predetermined number of real random numbers is generated.
청구항 4에 있어서,
상기 기설정된 조건은
상기 시작 틱과 상기 종료 틱의 차이에 상응하는 UART 메시지 처리시간이 평균 처리시간보다 큰지 여부인 것인, UART 기반 실난수 발생 장치.
The method of claim 4,
The predetermined condition is
Wherein a UART message processing time corresponding to a difference between the start tick and the end tick is greater than an average processing time.
청구항 5에 있어서,
상기 난수 안정화부는
상기 강화된 난수와 의사난수 시드(seed) 및 사용자 입력값 중 하나 이상을 이용하여 최종 난수를 생성하는 것인, UART 기반 실난수 발생 장치.
The method of claim 5,
The random number stabilizing unit
And generates a final random number using at least one of the enhanced random number, the pseudorandom seed and the user input value.
청구항 6에 있어서,
상기 난수 안정화부는
상기 강화된 난수를 이용하여 의사난수 시드를 결정하고, 상기 의사난수 시드를 이용하여 최종 난수를 생성하는 것인, UART 기반 실난수 발생 장치.
The method of claim 6,
The random number stabilizing unit
Wherein the pseudo random number seed is determined using the enhanced random number and the final random number is generated using the pseudo random number seed.
청구항 7에 있어서,
상기 난수성 강화부는
생성된 실난수의 난수 생성 순서를 인덱스(index)로 하여 rotate(회전)하여 회전된 난수를 생성하고,
현재 난수성 강화가 최초 난수성 강화인 경우에는 기설정된 초기값과 상기 회전된 난수에 대해 기설정된 연산을 수행하고, 현재 난수성 강화가 최초 난수성 강화가 아닌 경우에는 이전 강화된 난수와 상기 회전된 난수에 대해 기설정된 연산을 수행하여 강화된 난수를 생성하는 것인, UART 기반 실난수 발생 장치.
The method of claim 7,
The non-
Generates a rotated random number by rotating (rotating) the random number generation order of the generated random number with an index,
And performing a predetermined operation on the initial initial value and the rotated random number if the current irrational enhancement is the initial irrational enhancement and if the current irrational enhancement is not the initial intrinsic enhancement, And performs a predetermined operation on the generated random number to generate an enhanced random number.
청구항 8에 있어서,
상기 기설정된 연산은
AND, OR, NAND, NOR, XOR, XNOR을 포함하는 연산 중에서 선택되거나 이들의 조합으로 이루어지는 것인, UART 기반 실난수 발생 장치.
The method of claim 8,
The pre-
An AND operation, an OR operation, a NAND operation, a NOR operation, an XOR operation, and an XNOR operation, or a combination thereof.
청구항 9에 있어서,
상기 난수성 강화부는
길이가 다른 난수열들 간에 상기 기설정된 연산을 수행하기 위하여 난수열들을 수정하여 길이를 동일하게 맞추거나, 난수열들을 기설정된 길이의 단위로 자르는 것인, UART 기반 실난수 발생 장치.
The method of claim 9,
The non-
Wherein the random number sequence is modified to match the length of the random number sequence in order to perform the predetermined operation between the random number sequences having different lengths or to cut the random number sequence into units of predetermined lengths.
UART(Universal Asynchronous Receiver/Transmitter)를 이용하여, UART를 기반으로 실난수를 생성하는 단계;
상기 생성된 실난수의 난수성을 강화하여 강화된 난수를 생성하는 단계;
상기 강화된 난수를 안정화하여 최종 난수를 생성하는 단계
를 포함하는, UART 기반 실난수 발생 방법.
Generating a real random number based on a UART using a Universal Asynchronous Receiver / Transmitter (UART);
Enhancing the randomness of the generated real random number to generate an enhanced random number;
Stabilizing the enhanced random number to generate a final random number
Based UART-based random number generating method.
청구항 11에 있어서,
상기 실난수를 생성하는 단계는
타이머로부터 시작 틱을 획득하는 단계;
UART 메시지를 발생하는 단계;
상기 타이머로부터 종료 틱을 획득는 단계;
기설정된 조건의 충족 여부를 판단하는 단계; 및
기설정된 조건의 충족 여부에 따라 1비트의 실난수를 생성하는 단계
를 포함하는 것인, UART 기반 실난수 발생 방법.
The method of claim 11,
The step of generating the real random number
Obtaining a start tick from a timer;
Generating a UART message;
Obtaining an end tick from the timer;
Determining whether a predetermined condition is satisfied; And
Generating a 1-bit real random number according to whether the predetermined condition is satisfied or not
Based random number generation method.
청구항 12에 있어서,
상기 1비트의 실난수를 생성하는 단계는
상기 기설정된 조건이 충족된 경우에 난수로서 1을 설정하여 1비트의 실난수를 생성하고, 상기 기설정된 조건이 충족되지 않은 경우에 난수로서 0을 설정하여 1비트의 실난수를 생성하는 것인, UART 기반 실난수 발생 방법.
The method of claim 12,
The step of generating the 1-bit real random number
And generating a 1-bit real random number by setting 1 as a random number when the predetermined condition is satisfied, and setting 0 as a random number when the predetermined condition is not satisfied, thereby generating a 1-bit real random number , UART based real random number generation method.
청구항 13에 있어서,
상기 실난수를 생성하는 단계는
기설정된 개수만큼 실난수가 생성될 때까지, 상기 1비트의 실난수를 생성하는 과정을 반복하는 것인, UART 기반 실난수 발생 방법.
14. The method of claim 13,
The step of generating the real random number
And generating the 1-bit real random number until a predetermined number of real random numbers is generated.
청구항 14에 있어서,
상기 기설정된 조건은
상기 시작 틱과 상기 종료 틱의 차이에 상응하는 UART 메시지 처리시간이 평균 처리시간보다 큰지 여부인 것인, UART 기반 실난수 발생 방법.
15. The method of claim 14,
The predetermined condition is
Wherein a UART message processing time corresponding to a difference between the start tick and the end tick is greater than an average processing time.
청구항 15에 있어서,
상기 최종 난수를 생성하는 단계는
상기 강화된 난수와 의사난수 시드(seed) 및 사용자 입력값 중 하나 이상을 이용하여 최종 난수를 생성하는 것인, UART 기반 실난수 발생 방법.
16. The method of claim 15,
The step of generating the final random number
Generating a final random number using at least one of the enhanced random number, the pseudorandom seed and the user input value.
청구항 16에 있어서,
상기 최종 난수를 생성하는 단계는
상기 강화된 난수를 이용하여 의사난수 시드를 결정하고, 상기 의사난수 시드를 이용하여 최종 난수를 생성하는 것인, UART 기반 실난수 발생 방법.
18. The method of claim 16,
The step of generating the final random number
Determining a pseudo-random number seed using the enhanced random number, and generating a final random number using the pseudo random number seed.
청구항 17에 있어서,
상기 강화된 난수를 생성하는 단계는
생성된 실난수의 난수 생성 순서를 인덱스(index)로 하여 rotate(회전)하여 회전된 난수를 생성하는 단계;
현재 난수성 강화가 최초 난수성 강화인 경우에는 기설정된 초기값과 상기 회전된 난수에 대해 기설정된 연산을 수행하여 강화된 난수를 생성하는 단계; 및
현재 난수성 강화가 최초 난수성 강화가 아닌 경우에는 이전 강화된 난수와 상기 회전된 난수에 대해 기설정된 연산을 수행하여 강화된 난수를 생성하는 단계
를 포함하는 것인, UART 기반 실난수 발생 방법.
18. The method of claim 17,
The step of generating the enhanced random number
Generating a rotated random number by rotating (rotating) the random number generation order of the generated random number using an index as an index;
Generating an enhanced random number by performing a predetermined operation on a predetermined initial value and the rotated random number when the current random enhancement is the initial random enhancement; And
If the current enhancement is not initial enhancement, performing a predetermined operation on the previously enhanced random number and the rotated random number to generate an enhanced random number
Based random number generation method.
청구항 18에 있어서,
상기 기설정된 연산은
AND, OR, NAND, NOR, XOR, XNOR을 포함하는 연산 중에서 선택되거나 이들의 조합으로 이루어지는 것인, UART 기반 실난수 발생 방법.
19. The method of claim 18,
The pre-
Wherein the operation is selected from OR operations including AND, OR, NAND, NOR, XOR and XNOR, or a combination thereof.
청구항 19에 있어서,
상기 강화된 난수를 생성하는 단계는
길이가 다른 난수열들 간에 상기 기설정된 연산을 수행하기 위하여 난수열들을 수정하여 길이를 동일하게 맞추거나, 난수열들을 기설정된 길이의 단위로 자르는 단계
를 더 포함하는 것인, UART 기반 실난수 발생 방법.
The method of claim 19,
The step of generating the enhanced random number
A step of correcting the random number sequences to equalize the lengths of the random number sequences in order to perform the predetermined operation among the random number sequences having different lengths or truncating the random number sequences into units of predetermined lengths
And generating a UART-based real random number.
KR1020170101659A 2017-08-10 2017-08-10 Apparatus for generating true random value based on uart and method for the same KR101931777B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170101659A KR101931777B1 (en) 2017-08-10 2017-08-10 Apparatus for generating true random value based on uart and method for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170101659A KR101931777B1 (en) 2017-08-10 2017-08-10 Apparatus for generating true random value based on uart and method for the same

Publications (1)

Publication Number Publication Date
KR101931777B1 true KR101931777B1 (en) 2019-03-13

Family

ID=65761772

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170101659A KR101931777B1 (en) 2017-08-10 2017-08-10 Apparatus for generating true random value based on uart and method for the same

Country Status (1)

Country Link
KR (1) KR101931777B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100512477B1 (en) 2003-04-01 2005-09-06 한국전자통신연구원 Method And Apparatus of Generating Random Number Using Electronic Circuit Noise
KR20090024804A (en) * 2006-06-20 2009-03-09 엔엑스피 비 브이 Random number generator system, method for generating random numbers
KR20150094911A (en) * 2014-02-12 2015-08-20 한국전자통신연구원 Apparatus and method for stabilizing output stream of real random number generator

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100512477B1 (en) 2003-04-01 2005-09-06 한국전자통신연구원 Method And Apparatus of Generating Random Number Using Electronic Circuit Noise
KR20090024804A (en) * 2006-06-20 2009-03-09 엔엑스피 비 브이 Random number generator system, method for generating random numbers
KR20150094911A (en) * 2014-02-12 2015-08-20 한국전자통신연구원 Apparatus and method for stabilizing output stream of real random number generator

Similar Documents

Publication Publication Date Title
RU2661564C2 (en) Random number generator and stream cipher
US8595273B2 (en) Hash algorithm using randomization function
CN108352981B (en) Cryptographic device arranged for computing a target block encryption
US8553880B2 (en) Pseudorandom number generating system, encryption system, and decryption system
WO2019114122A1 (en) Encryption method for login information, device, electronic device, and medium
CN108141352B (en) Cryptographic apparatus, method, apparatus and computer readable medium, and encoding apparatus, method, apparatus and computer readable medium
CN104969508A (en) Method for protecting the integrity of a fixed-length data structure
JP7393862B2 (en) Countermeasures against phase tracking attacks on ring oscillator-based entropy sources
WO2015193789A1 (en) Differential power analysis countermeasures
WO2018167198A1 (en) Elliptic curve point multiplication device and method in a white-box context
JP2021507310A (en) White box calculation of keyed message authentication code
US10841090B2 (en) Plaintexts encrypted with pluralities of keys
EP3078154A1 (en) A computing device for iterative application of table networks
KR101931777B1 (en) Apparatus for generating true random value based on uart and method for the same
JP2017092634A5 (en)
WO2017142563A1 (en) Encryption methods
CN111385092B (en) Cipher device using information blinding and its cipher processing method
RU2710310C2 (en) Electronic forming device
CN109951275B (en) Key generation method and device, computer equipment and storage medium
Churi et al. JSH algorithm: a password encryption technique using Jumbling-Salting-Hashing
US10554399B2 (en) Method and apparatus for encrypting and decrypting data
WO2019091809A1 (en) A computation device and method
Ismat Comparative analysis of AES algorithms and implementation of AES in Arduino
JP6904417B2 (en) Random number calculation device, random number calculation method, encryption device, and random number calculation program
CN117955639A (en) Key preservation and key distribution method, device, equipment and medium