[go: nahoru, domu]

WO2020009265A1 - Method and system for generating random numbers - Google Patents

Method and system for generating random numbers Download PDF

Info

Publication number
WO2020009265A1
WO2020009265A1 PCT/KR2018/008747 KR2018008747W WO2020009265A1 WO 2020009265 A1 WO2020009265 A1 WO 2020009265A1 KR 2018008747 W KR2018008747 W KR 2018008747W WO 2020009265 A1 WO2020009265 A1 WO 2020009265A1
Authority
WO
WIPO (PCT)
Prior art keywords
hosts
random number
host
individual
generating
Prior art date
Application number
PCT/KR2018/008747
Other languages
French (fr)
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 주식회사 넘버스
Publication of WO2020009265A1 publication Critical patent/WO2020009265A1/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

Definitions

  • the present application relates to a random number generation method and system, and more specifically, to a method for generating an unpredictable and fair public random number by encrypting, exchanging, verifying, and combining random numbers generated by individual hosts. It is all about the technology that records both the process and the procedure in the blockchain.
  • the conventional random number generation method is centralized and easy to operate, and thus there is a problem that the integrity and fairness of the game can be doubted.
  • an embodiment of the present invention provides a random number generation method using a hash algorithm.
  • Random number generation method using a hash algorithm N host to generate a random number (Random Number) Rn each; Generating Hn by encrypting individual random numbers Rn generated by the N hosts by a hash algorithm; Transmitting, by the N hosts, Hn to N-1 hosts except themselves; Transmitting, by the N hosts, Rn corresponding to the original hash value of Hn to N-1 hosts except themselves; Confirming the integrity of Rn by comparing the result values of hash algorithms using Hn and Rn received from N-1 hosts as factors, respectively; And generating, by the N hosts, a public random number using Rn generated by each of the N hosts and Rn generated by the N-1 hosts except themselves.
  • Another embodiment of the present invention provides a random number generation method using an encryption algorithm.
  • a random number generation method using an encryption algorithm includes: generating, by N hosts, individual random numbers Rn; Generating En by encrypting each random number Rn generated by the N hosts by an encryption algorithm using an encryption key Kn; Transmitting, by the N hosts, N-1 hosts, except for N-1 hosts; Transmitting, by the N hosts, encryption keys Kn for decryption of the En to N-1 hosts except themselves; Acquiring Rn by decrypting each En received from N-1 hosts with an encryption key Kn; And generating, by the N hosts, a public random number using Rn generated by each of the N hosts and Rn generated by the N-1 hosts except themselves.
  • Yet another embodiment of the present invention provides a random number generation system.
  • FIG. 1 is a block diagram of a random number generation system to which an embodiment of the present invention is applied.
  • FIG. 2 is a flowchart of a random number generation method using a hash algorithm according to an embodiment of the present invention.
  • FIG. 3 is a flowchart of a random number generation method using an encryption algorithm according to another embodiment of the present invention.
  • FIG. 4 is a diagram illustrating an example computing environment in which one or more embodiments disclosed herein may be implemented.
  • FIG. 1 is a block diagram of a random number generation system to which an embodiment of the present invention is applied.
  • a random number generation system to which an embodiment of the present invention is applied may include N hosts (eg, a first host, a second host, and a third host) 100, 200, and 300.
  • the host may be a computing device connected to a network, and the number of hosts may be N (N> 1).
  • N N> 1
  • the number of hosts is three, but is not necessarily limited thereto.
  • Each host 100, 200, 300 may be connected to each other through a network to exchange information necessary for generating a common random number.
  • Each host 100, 200, 300 may generate an individual random number, encrypt the random number, and then transmit the encrypted individual random number to other hosts. Accordingly, each host (100, 200, 300) has a separate random number generated and encrypted in each host, respectively.
  • each host 100, 200, 300 decrypts the encrypted individual random numbers received from the other host, and then seeds both the individual random numbers generated by itself and the individual random numbers received and decrypted from the other host. It can be used to generate a public random number.
  • FIG. 2 is a flowchart of a random number generation method using a hash algorithm according to an embodiment of the present invention.
  • the number of hosts is three, but is not necessarily limited thereto.
  • the hash algorithm refers to an encryption technique that cannot be decrypted.
  • a technique for encrypting an individual random number Rn is not necessarily limited thereto, and an individual random number Rn may be encrypted by applying various encryption techniques known to those skilled in the art.
  • all N hosts 100, 200, and 300 transmit Hn to the remaining N-1 hosts except themselves, and exchange Hn, which is an encrypted individual random number, with each other (S230).
  • the first host 100 transmits H1 to the second host 200 and the third host 300
  • the second host 200 transmits the first host 100 and the third host 300
  • H2 is transmitted to the third host 300
  • the third host 300 may transmit H3 to the first host 100 and the second host 200.
  • the individual random number Rn of the other party is encrypted and cannot be decrypted, and the individual random number Rn is no longer changeable.
  • all N hosts 100, 200, and 300 may check whether the remaining N-1 hosts except Hn receive Hn.
  • N hosts 100, 200, and 300 transmit Rn corresponding to the original hash value of Hn to N-1 hosts except themselves, and exchange Rn with each other (S240).
  • the first host 100 transmits R1 to the second host 200 and the third host 300
  • the second host 200 transmits the first host 100 and the third host 300.
  • R2 is transmitted to the third host 300
  • the third host 300 may transmit R3 to the first host 100 and the second host 200.
  • all N hosts 100, 200, and 300 may check whether the remaining N-1 hosts except Rn receive Rn.
  • N hosts 100, 200, 300
  • all N hosts call a common random number generation function that uses both Rn generated by itself and Rn generated by N-1 hosts except itself as a seed.
  • a random random number is generated (S260).
  • FIG. 3 is a flowchart of a random number generation method using an encryption algorithm according to another embodiment of the present invention.
  • the number of hosts is three, but is not necessarily limited thereto.
  • N hosts 100, 200, and 300 generate En by using the encryption algorithms Encrypt (Kn, Rn), respectively, for the individual random numbers Rn generated in S320.
  • Kn means an encryption key used for the encryption algorithm
  • the encryption algorithm may be an encryption algorithm using the encryption key.
  • a technique for encrypting an individual random number Rn is not necessarily limited thereto, and an individual random number Rn may be encrypted by applying various encryption techniques known to those skilled in the art.
  • all N hosts 100, 200, and 300 transmit En to the remaining N-1 hosts except themselves, and exchange the encrypted individual random numbers En with each other (S330).
  • the first host 100 transmits E1 to the second host 200 and the third host 300
  • the second host 200 transmits the first host 100 and the third host 300
  • E2 is transmitted to the third host 300
  • the third host 300 may transmit E3 to the first host 100 and the second host 200.
  • the individual random number Rn of the other party is encrypted and cannot be decrypted, and the individual random number Rn is no longer changeable.
  • all N hosts 100, 200, and 300 may check whether N-1 hosts other than themselves receive En.
  • N hosts 100, 200, and 300 transmit encryption keys Kn for decryption of En to N-1 hosts except themselves, and exchange Kn with each other (S340).
  • the first host 100 transmits K1 to the second host 200 and the third host 300
  • the second host 200 transmits the first host 100 and the third host 300
  • K2 is transmitted to the third host 300
  • the third host 300 may transmit K3 to the first host 100 and the second host 200.
  • all N hosts 100, 200, and 300 may check whether the remaining N-1 hosts except Kn receive Kn.
  • N hosts 100, 200, 300
  • all N hosts call a common random number generation function that uses both Rn generated by itself and Rn generated by other N-1 hosts except itself as a seed.
  • a random random number is generated (S360).
  • FIG. 4 illustrates an example computing environment in which one or more embodiments disclosed herein may be implemented, illustrating an example of a system 1000 that includes a computing device 1100 configured to implement one or more embodiments described above.
  • the computing device 1100 may be a personal computer, server computer, handheld or laptop device, mobile device (mobile phone, PDA, media player, etc.), multiprocessor system, consumer electronics, mini computer, mainframe computer, Distributed computing environments, including, but not limited to, any of the systems or devices described above.
  • the computing device 1100 may include at least one processing unit 1110 and a memory 1120.
  • the processing unit 1110 may include, for example, a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor, an application specific integrated circuit (ASIC), field programmable gate arrays (FPGA), and the like. It may have a plurality of cores.
  • the memory 1120 may be volatile memory (eg, RAM, etc.), nonvolatile memory (eg, ROM, flash memory, etc.), or a combination thereof.
  • computing device 1100 may include additional storage 1130.
  • Storage 1130 includes, but is not limited to, magnetic storage, optical storage, and the like.
  • Storage 1130 may store computer readable instructions for implementing one or more embodiments disclosed herein, and other computer readable instructions for implementing operating systems, application programs, and the like.
  • Computer readable instructions stored in storage 1130 may be loaded into memory 1120 for execution by processing unit 1110.
  • computing device 1100 may include input device (s) 1140 and output device (s) 1150.
  • the input device (s) 1140 may include, for example, a keyboard, mouse, pen, voice input device, touch input device, infrared camera, video input device, or any other input device.
  • output device (s) 1150 may include, for example, one or more displays, speakers, printers, or any other output device.
  • computing device 1100 may use an input device or output device included in another computing device as input device (s) 1140 or output device (s) 1150.
  • computing device 1100 may include communication connection (s) 1160 that enable computing device 1100 to communicate with another device (eg, computing device 1300).
  • the communication connection (s) 1160 may be a modem, a network interface card (NIC), an integrated network interface, a radio frequency transmitter / receiver, an infrared port, a USB connection, or other for connecting the computing device 1100 to another computing device. It may include an interface.
  • communication connection (s) 1160 may include a wired connection or a wireless connection.
  • Each component of the computing device 1100 described above may be connected by various interconnections such as a bus (eg, peripheral component interconnect (PCI), USB, firmware (IEEE 1394), optical bus structure, etc.). And may be interconnected by the network 1200.
  • a bus eg, peripheral component interconnect (PCI), USB, firmware (IEEE 1394), optical bus structure, etc.
  • IEEE 1394 firmware
  • optical bus structure etc.
  • ком ⁇ онент generally refer to a computer-related entity that is hardware, a combination of hardware and software, software, or running software.
  • a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and / or a computer.
  • an application running on a controller and the controller can be a component.
  • One or more components may reside within a thread of process and / or execution, and the components may be localized on one computer and distributed between two or more computers.

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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A method and system for generating random numbers are disclosed. The system for generating random numbers comprises N hosts connected with one another through a network, in which N is a natural number equal to two or greater, wherein each of the N hosts may generate and encode a private random number and then transmit the encoded private random number to (N-1) hosts, and the N hosts may decode the encoded private random numbers received from the (N-1) hosts, and then generate a public random number by using, as factors, the private random number generated by itself and the private random numbers decoded after being received from the (N-1) hosts.

Description

난수 생성 방법 및 시스템Random Number Generation Method and System
본 출원은 난수 생성 방법 및 시스템에 관한 것으로, 구체적으로 개별 호스트에서 생성한 난수(Private Random Number)를 암호화, 교환, 검증, 조합을 통해 예측 불가능하고 공정한 공용 난수(Public Random Number)를 생성하는 방법과 그 절차를 모두 블록체인에 기록하는 기술에 관한 것이다.The present application relates to a random number generation method and system, and more specifically, to a method for generating an unpredictable and fair public random number by encrypting, exchanging, verifying, and combining random numbers generated by individual hosts. It is all about the technology that records both the process and the procedure in the blockchain.
온라인 카지노 등과 같은 온라인 게임에서 가장 문제로 제시되는 것은 기술의 투명성이며, 투명성이 문제로 제시되는 주요 이유는 난수 생성 방식(Random Number Generation; RNG)에 있다.The most problematic problem in online games such as online casinos is the transparency of technology, and the main reason why transparency is a problem is in random number generation (RNG).
종래의 난수 생성 방식은 중앙화되어 있어 조작하기 쉬우며, 이에 따라 게임의 무결성과 공정성을 의심할 수 있다는 문제가 있다.The conventional random number generation method is centralized and easy to operate, and thus there is a problem that the integrity and fairness of the game can be doubted.
당해 기술분야에서는 투명하고 조작 불가능한 방식으로 난수를 생성하기 위한 방안이 요구되고 있다.There is a need in the art for a method for generating random numbers in a transparent and inoperable manner.
상기 과제를 해결하기 위해서, 본 발명의 일 실시예는 해시 알고리즘을 이용한 난수 생성 방법을 제공한다.In order to solve the above problems, an embodiment of the present invention provides a random number generation method using a hash algorithm.
본 발명의 일 실시예에 따른 해시 알고리즘을 이용한 난수 생성 방법은, N개의 호스트가 각각 개별 난수(Random Number) Rn을 생성하는 단계; 상기 N개의 호스트가 각각 생성한 개별 난수 Rn을 해시 알고리즘에 의해 암호화하여 Hn을 생성하는 단계; 상기 N개의 호스트가 각각 자신을 제외한 N-1개의 호스트에게 Hn을 송신하는 단계; 상기 N개의 호스트가 각각 자신을 제외한 N-1개의 호스트에게 상기 Hn의 해시값 원본에 해당하는 Rn을 송신하는 단계; 상기 N개의 호스트가 각각 N-1개의 호스트로부터 수신 받은 각각의 Hn과 Rn을 인자로 사용하는 해시 알고리즘의 결과 값을 비교하여 Rn의 무결성을 확인하는 단계; 및 상기 N개의 호스트가 각각 자신이 생성한 Rn과 자신을 제외한 N-1개의 호스트가 생성한 Rn을 인자로 사용하여 공용 난수(Public Random Number)를 생성하는 단계를 포함할 수 있다.Random number generation method using a hash algorithm according to an embodiment of the present invention, N host to generate a random number (Random Number) Rn each; Generating Hn by encrypting individual random numbers Rn generated by the N hosts by a hash algorithm; Transmitting, by the N hosts, Hn to N-1 hosts except themselves; Transmitting, by the N hosts, Rn corresponding to the original hash value of Hn to N-1 hosts except themselves; Confirming the integrity of Rn by comparing the result values of hash algorithms using Hn and Rn received from N-1 hosts as factors, respectively; And generating, by the N hosts, a public random number using Rn generated by each of the N hosts and Rn generated by the N-1 hosts except themselves.
본 발명의 다른 실시예는 암호화 알고리즘을 이용한 난수 생성 방법을 제공한다.Another embodiment of the present invention provides a random number generation method using an encryption algorithm.
본 발명의 다른 실시예에 따른 암호화 알고리즘을 이용한 난수 생성 방법은, N개의 호스트가 각각 개별 난수(Random Number) Rn을 생성하는 단계; 상기 N개의 호스트가 각각 생성한 개별 난수 Rn을 암호화키 Kn을 사용하는 암호화 알고리즘에 의해 암호화하여 En을 생성하는 단계; 상기 N개의 호스트가 각각 자신을 제외한 N-1개의 호스트에게 En을 송신하는 단계; 상기 N개의 호스트가 각각 자신을 제외한 N-1개의 호스트에게 상기 En의 복호화를 위한 암호화키 Kn을 송신하는 단계; 상기 N개의 호스트가 각각 N-1개의 호스트로부터 수신 받은 각각의 En을 암호화키 Kn으로 복호화하여 Rn을 획득하는 단계; 및 상기 N개의 호스트가 각각 자신이 생성한 Rn과 자신을 제외한 N-1개의 호스트가 생성한 Rn을 인자로 사용하여 공용 난수(Public Random Number)를 생성하는 단계를 포함할 수 있다.According to another embodiment of the present invention, a random number generation method using an encryption algorithm includes: generating, by N hosts, individual random numbers Rn; Generating En by encrypting each random number Rn generated by the N hosts by an encryption algorithm using an encryption key Kn; Transmitting, by the N hosts, N-1 hosts, except for N-1 hosts; Transmitting, by the N hosts, encryption keys Kn for decryption of the En to N-1 hosts except themselves; Acquiring Rn by decrypting each En received from N-1 hosts with an encryption key Kn; And generating, by the N hosts, a public random number using Rn generated by each of the N hosts and Rn generated by the N-1 hosts except themselves.
본 발명의 또 다른 실시예는 난수 생성 시스템을 제공한다.Yet another embodiment of the present invention provides a random number generation system.
본 발명의 또 다른 실시예에 따른 난수 생성 시스템은, 네트워크를 통해 서로 연결된 N개의 호스트를 포함하고, N은 2 이상의 자연수이며, 상기 N개의 호스트는 각각 개별 난수를 생성 및 암호화한 후 암호화된 개별 난수를 N-1개의 호스트에게 송신하고, 상기 N개의 호스트는 각각 N-1개의 호스트로부터 수신한 암호화된 개별 난수를 복호화한 후, 자신이 생성한 개별 난수와 상기 N-1개의 호스트로부터 수신하여 복호화한 개별 난수를 인자로 사용하여 공용 난수를 생성할 수 있다.The random number generation system according to another embodiment of the present invention includes N hosts connected to each other through a network, N is two or more natural numbers, and each of the N hosts is encrypted and then encrypted after generating and encrypting individual random numbers. The random number is transmitted to N-1 hosts, and each of the N hosts decrypts the encrypted individual random numbers received from the N-1 hosts, and then receives the individual random numbers generated by the host and the N-1 hosts. Shared random numbers can be generated using the decoded individual random numbers as arguments.
덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.In addition, the solution of the said subject does not enumerate all the characteristics of this invention. Various features of the present invention and the advantages and effects thereof may be understood in more detail with reference to the following specific embodiments.
본 발명의 실시예에 따르면, 복수의 호스트가 난수 생성에 참여하기 때문에 어느 한 쪽이 유리하도록 난수를 생성하거나, 악의적인 목적을 가지고 난수를 조작하는 것이 불가능해진다.According to the embodiment of the present invention, since a plurality of hosts participate in random number generation, it becomes impossible to generate random numbers for one of them, or to manipulate random numbers for malicious purposes.
또한, 난수 생성 과정이 모두 블록 체인에 기록되므로 언제든지 검증할 수 있게 된다.In addition, since all random number generation processes are recorded in the blockchain, it can be verified at any time.
도 1은 본 발명의 실시예가 적용되는 난수 생성 시스템의 구성도이다.1 is a block diagram of a random number generation system to which an embodiment of the present invention is applied.
도 2는 본 발명의 일 실시예에 따른 해시 알고리즘을 이용한 난수 생성 방법의 흐름도이다.2 is a flowchart of a random number generation method using a hash algorithm according to an embodiment of the present invention.
도 3은 본 발명의 다른 실시예에 따른 암호화 알고리즘을 이용한 난수 생성 방법의 흐름도이다.3 is a flowchart of a random number generation method using an encryption algorithm according to another embodiment of the present invention.
도 4는 본 명세서에 개진된 하나 이상의 실시예가 구현될 수 있는 예시적인 컴퓨팅 환경을 도시하는 도면이다.4 is a diagram illustrating an example computing environment in which one or more embodiments disclosed herein may be implemented.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. However, in describing the preferred embodiment of the present invention in detail, if it is determined that the detailed description of the related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. In addition, the same reference numerals are used throughout the drawings for parts having similar functions and functions.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.In addition, throughout the specification, when a part is 'connected' to another part, it is not only 'directly connected' but also 'indirectly connected' with another element in between. Include. In addition, the term 'comprising' of an element means that the element may further include other elements, not to exclude other elements unless specifically stated otherwise.
도 1은 본 발명의 실시예가 적용되는 난수 생성 시스템의 구성도이다.1 is a block diagram of a random number generation system to which an embodiment of the present invention is applied.
도 1을 참조하면, 본 발명의 실시예가 적용되는 난수 생성 시스템은 N개의 호스트(예를 들어, 제1 호스트, 제2 호스트, 제3 호스트)(100, 200, 300)를 포함할 수 있다. 여기서, 호스트는 네트워크에 연결되어 있는 컴퓨팅 디바이스일 수 있으며, 호스트의 개수는 N(N>1)일 수 있다. 도 1에서는 호스트의 개수가 3개인 경우를 예를 들어 도시하나, 반드시 이로 제한되는 것은 아니다.Referring to FIG. 1, a random number generation system to which an embodiment of the present invention is applied may include N hosts (eg, a first host, a second host, and a third host) 100, 200, and 300. Here, the host may be a computing device connected to a network, and the number of hosts may be N (N> 1). In FIG. 1, for example, the number of hosts is three, but is not necessarily limited thereto.
각각의 호스트(100, 200, 300)는 네트워크를 통해 서로 연결되어 공용 난수 생성을 위해 필요한 정보를 서로 교환할 수 있다.Each host 100, 200, 300 may be connected to each other through a network to exchange information necessary for generating a common random number.
각각의 호스트(100, 200, 300)는 개별 난수를 생성하여 이를 암호화한 후, 암호화된 개별 난수를 다른 호스트들에게 송신할 수 있다. 이에 따라, 각각의 호스트(100, 200, 300)는 모든 호스트에서 각각 생성되어 암호화된 개별 난수를 가지게 된다.Each host 100, 200, 300 may generate an individual random number, encrypt the random number, and then transmit the encrypted individual random number to other hosts. Accordingly, each host (100, 200, 300) has a separate random number generated and encrypted in each host, respectively.
또한, 각각의 호스트(100, 200, 300)는 다른 호스트로부터 수신한 암호화된 개별 난수를 복호화한 후, 자신이 생성한 개별 난수와, 다른 호스트로부터 수신하여 복호화한 개별 난수들을 모두 인자(Seed)로 사용하여 공용 난수(Public Random Number)를 생성할 수 있다.In addition, each host 100, 200, 300 decrypts the encrypted individual random numbers received from the other host, and then seeds both the individual random numbers generated by itself and the individual random numbers received and decrypted from the other host. It can be used to generate a public random number.
또한, 각각의 호스트(100), 200, 300)는 블록체인 기술 기반으로 난수 생성을 위해 수행하는 각 과정을 기록할 수 있다.In addition, each host 100, 200, 300 may record each process performed for random number generation based on blockchain technology.
이하, 도 2 및 도 3을 참조하여 본 발명의 실시예에 따른 난수 생성 방법에 대해 보다 구체적으로 설명한다.Hereinafter, the random number generation method according to an embodiment of the present invention will be described in more detail with reference to FIGS. 2 and 3.
도 2는 본 발명의 일 실시예에 따른 해시 알고리즘을 이용한 난수 생성 방법의 흐름도이다. 도 2에서는 호스트의 개수가 3개인 경우를 예를 들어 도시하나, 반드시 이로 제한되는 것은 아니다.2 is a flowchart of a random number generation method using a hash algorithm according to an embodiment of the present invention. In FIG. 2, for example, the number of hosts is three, but is not necessarily limited thereto.
도 2를 참조하면, 우선 N개의 모든 호스트(100, 200, 300)는 각자 개별 난수(Random Number) Rn을 생성한다(S210).Referring to FIG. 2, first, all N hosts 100, 200, and 300 generate individual random numbers Rn, respectively (S210).
이후, N개의 모든 호스트(100, 200, 300)는 각자 생성한 개별 난수 Rn을 해시 알고리즘 hash(Rn)을 사용하여 Hn을 생성한다(S220). 여기서, 해시 알고리즘은 복호화가 불가능한 암호화 기법을 말한다. 그러나, 본 발명에서 개별 난수 Rn을 암호화하는 기법이 반드시 이로 제한되는 것은 아니며, 통상의 기술자에게 알려진 다양한 암호화 기법을 적용하여 개별 난수 Rn을 암호화할 수 있다.Subsequently, all N hosts 100, 200, and 300 generate Hn by using the hash algorithm hash (Rn) of the respective random numbers Rn generated in operation S220. Here, the hash algorithm refers to an encryption technique that cannot be decrypted. However, in the present invention, a technique for encrypting an individual random number Rn is not necessarily limited thereto, and an individual random number Rn may be encrypted by applying various encryption techniques known to those skilled in the art.
이후, N개의 모든 호스트(100, 200, 300)는 자신을 제외한 나머지 N-1개의 호스트에게 Hn을 송신하여, 암호화된 개별 난수인 Hn을 서로 교환한다(S230). 예를 들어, 제1 호스트(100)는 제2 호스트(200) 및 제3 호스트(300)에게 H1을 송신하고, 제2 호스트(200)는 제1 호스트(100) 및 제3 호스트(300)에게 H2를 송신하며, 제3 호스트(300)는 제1 호스트(100) 및 제2 호스트(200)에게 H3을 송신할 수 있다. 여기서, 상대방의 개별 난수 Rn은 암호화되어 있어 해독할 수 없으며, 개별 난수 Rn은 더 이상 변경이 불가능한 상태가 된다.Thereafter, all N hosts 100, 200, and 300 transmit Hn to the remaining N-1 hosts except themselves, and exchange Hn, which is an encrypted individual random number, with each other (S230). For example, the first host 100 transmits H1 to the second host 200 and the third host 300, and the second host 200 transmits the first host 100 and the third host 300. H2 is transmitted to the third host 300, and the third host 300 may transmit H3 to the first host 100 and the second host 200. Here, the individual random number Rn of the other party is encrypted and cannot be decrypted, and the individual random number Rn is no longer changeable.
이후, 도 2에서 도시되지는 않았으나, N개의 모든 호스트(100, 200, 300)는 자신을 제외한 나머지 N-1개의 호스트가 Hn을 수신하였는지 확인할 수 있다. Subsequently, although not shown in FIG. 2, all N hosts 100, 200, and 300 may check whether the remaining N-1 hosts except Hn receive Hn.
이후, N개의 모든 호스트(100, 200, 300)는 자신을 제외한 나머지 N-1개의 호스트에게 Hn의 해시값 원본에 해당하는 Rn을 송신하여, Rn을 서로 교환한다(S240). 예를 들어, 제1 호스트(100)는 제2 호스트(200) 및 제3 호스트(300)에게 R1을 송신하고, 제2 호스트(200)는 제1 호스트(100) 및 제3 호스트(300)에게 R2를 송신하며, 제3 호스트(300)는 제1 호스트(100) 및 제2 호스트(200)에게 R3을 송신할 수 있다.Thereafter, all N hosts 100, 200, and 300 transmit Rn corresponding to the original hash value of Hn to N-1 hosts except themselves, and exchange Rn with each other (S240). For example, the first host 100 transmits R1 to the second host 200 and the third host 300, and the second host 200 transmits the first host 100 and the third host 300. R2 is transmitted to the third host 300, and the third host 300 may transmit R3 to the first host 100 and the second host 200.
이후, 도 2에서 도시되지는 않았으나, N개의 모든 호스트(100, 200, 300)는 자신을 제외한 나머지 N-1개의 호스트가 Rn을 수신하였는지 확인할 수 있다. Subsequently, although not shown in FIG. 2, all N hosts 100, 200, and 300 may check whether the remaining N-1 hosts except Rn receive Rn.
이후, N개의 모든 호스트(100, 200, 300)는 N-1개의 호스트로부터 수신 받은 각각의 Hn과 Rn을 인자로 사용하는 해시 알고리즘의 결과 값을 비교하여 Rn의 무결성을 확인한다(S250). 즉, Hn = hash(Rn) 인지 확인하여 Rn의 무결성을 확인할 수 있다.Thereafter, all N hosts 100, 200, and 300 check the integrity of Rn by comparing a result of a hash algorithm using Hn and Rn received from N−1 hosts as factors (S250). That is, the integrity of Rn can be checked by checking whether Hn = hash (Rn).
이후, N개의 모든 호스트(100, 200, 300)는 자신이 생성한 Rn과 자신을 제외한 나머지 N-1개의 호스트가 생성한 Rn을 모두 인자(Seed)로 사용하는 공용 난수 생성 함수를 호출하여 공용 난수(Public Random Number)를 생성한다(S260). After that, all N hosts (100, 200, 300) call a common random number generation function that uses both Rn generated by itself and Rn generated by N-1 hosts except itself as a seed. A random random number is generated (S260).
상술한 S210 내지 S260 단계는 모두 블록체인(예를 들어, Smart Contract)에 기록되며, 누구나 검증할 수 있다.The above-described steps S210 to S260 are all recorded in the blockchain (eg, Smart Contract), and anyone can verify it.
결과적으로 N개의 모든 호스트에서 생성한 공용 난수는 예측 불가능한 공정한 난수이다. 또한, 상술한 바와 같이 모든 과정이 탈중앙화 되어 있고, 블록체인에 기록되므로 투명한 기술이다.As a result, the common random number generated by all N hosts is an unpredictable fair random number. In addition, as described above, all the processes are decentralized and written on the blockchain, which is a transparent technology.
도 3은 본 발명의 다른 실시예에 따른 암호화 알고리즘을 이용한 난수 생성 방법의 흐름도이다. 도 3에서는 호스트의 개수가 3개인 경우를 예를 들어 도시하나, 반드시 이로 제한되는 것은 아니다.3 is a flowchart of a random number generation method using an encryption algorithm according to another embodiment of the present invention. In FIG. 3, for example, the number of hosts is three, but is not necessarily limited thereto.
도 3을 참조하면, 우선 N개의 모든 호스트(100, 200, 300)는 각자 개별 난수(Random Number) Rn을 생성한다(S310).Referring to FIG. 3, first, all N hosts 100, 200, and 300 generate individual random numbers Rn, respectively (S310).
이후, N개의 모든 호스트(100, 200, 300)는 각자 생성한 개별 난수 Rn을 암호화 알고리즘 Encrypt(Kn, Rn)을 사용하여 En을 생성한다(S320). 여기서, Kn은 암호화 알고리즘에 사용되는 암호화키를 의미하며, 암호화 알고리즘은 암호화키를 사용한 암호화 알고리즘일 수 있다. 그러나, 본 발명에서 개별 난수 Rn을 암호화하는 기법이 반드시 이로 제한되는 것은 아니며, 통상의 기술자에게 알려진 다양한 암호화 기법을 적용하여 개별 난수 Rn을 암호화할 수 있다.Thereafter, all N hosts 100, 200, and 300 generate En by using the encryption algorithms Encrypt (Kn, Rn), respectively, for the individual random numbers Rn generated in S320. Here, Kn means an encryption key used for the encryption algorithm, and the encryption algorithm may be an encryption algorithm using the encryption key. However, in the present invention, a technique for encrypting an individual random number Rn is not necessarily limited thereto, and an individual random number Rn may be encrypted by applying various encryption techniques known to those skilled in the art.
이후, N개의 모든 호스트(100, 200, 300)는 자신을 제외한 나머지 N-1개의 호스트에게 En을 송신하여, 암호화된 개별 난수인 En을 서로 교환한다(S330). 예를 들어, 제1 호스트(100)는 제2 호스트(200) 및 제3 호스트(300)에게 E1을 송신하고, 제2 호스트(200)는 제1 호스트(100) 및 제3 호스트(300)에게 E2를 송신하며, 제3 호스트(300)는 제1 호스트(100) 및 제2 호스트(200)에게 E3을 송신할 수 있다. 여기서, 상대방의 개별 난수 Rn은 암호화되어 있어 해독할 수 없으며, 개별 난수 Rn은 더 이상 변경이 불가능한 상태가 된다.Thereafter, all N hosts 100, 200, and 300 transmit En to the remaining N-1 hosts except themselves, and exchange the encrypted individual random numbers En with each other (S330). For example, the first host 100 transmits E1 to the second host 200 and the third host 300, and the second host 200 transmits the first host 100 and the third host 300. E2 is transmitted to the third host 300, and the third host 300 may transmit E3 to the first host 100 and the second host 200. Here, the individual random number Rn of the other party is encrypted and cannot be decrypted, and the individual random number Rn is no longer changeable.
이후, 도 3에서 도시되지는 않았으나, N개의 모든 호스트(100, 200, 300)는 자신을 제외한 나머지 N-1개의 호스트가 En을 수신하였는지 확인할 수 있다.Subsequently, although not shown in FIG. 3, all N hosts 100, 200, and 300 may check whether N-1 hosts other than themselves receive En.
이후, N개의 모든 호스트(100, 200, 300)는 자신을 제외한 나머지 N-1개의 호스트에게 En의 복호화를 위한 암호화키 Kn을 송신하여, Kn을 서로 교환한다(S340). 예를 들어, 제1 호스트(100)는 제2 호스트(200) 및 제3 호스트(300)에게 K1을 송신하고, 제2 호스트(200)는 제1 호스트(100) 및 제3 호스트(300)에게 K2를 송신하며, 제3 호스트(300)는 제1 호스트(100) 및 제2 호스트(200)에게 K3을 송신할 수 있다.Thereafter, all N hosts 100, 200, and 300 transmit encryption keys Kn for decryption of En to N-1 hosts except themselves, and exchange Kn with each other (S340). For example, the first host 100 transmits K1 to the second host 200 and the third host 300, and the second host 200 transmits the first host 100 and the third host 300. K2 is transmitted to the third host 300, and the third host 300 may transmit K3 to the first host 100 and the second host 200.
이후, 도 3에서 도시되지는 않았으나, N개의 모든 호스트(100, 200, 300)는 자신을 제외한 나머지 N-1개의 호스트가 Kn을 수신하였는지 확인할 수 있다. Subsequently, although not shown in FIG. 3, all N hosts 100, 200, and 300 may check whether the remaining N-1 hosts except Kn receive Kn.
이후, N개의 모든 호스트(100, 200, 300)는 N-1개의 호스트로부터 수신 받은 각각의 En을 암호화키 Kn으로 복호화하여 Rn을 획득한다(S350). 즉, Rn = Decrypt(En, Kn)가 성립한다.Thereafter, all N hosts 100, 200, and 300 decrypt each En received from the N-1 hosts with an encryption key Kn to obtain Rn (S350). That is, Rn = Decrypt (En, Kn) holds.
이후, N개의 모든 호스트(100, 200, 300)는 자신이 생성한 Rn과 자신을 제외한 나머지 N-1개의 호스트가 생성한 Rn을 모두 인자(Seed)로 사용하는 공용 난수 생성 함수를 호출하여 공용 난수(Public Random Number)를 생성한다(S360).After that, all N hosts (100, 200, 300) call a common random number generation function that uses both Rn generated by itself and Rn generated by other N-1 hosts except itself as a seed. A random random number is generated (S360).
상술한 S310 내지 S360 단계는 모두 블록체인(예를 들어, Smart Contract)에 기록되며, 누구나 검증할 수 있다.The above-described steps S310 to S360 are all recorded in the blockchain (eg, Smart Contract), and anyone can verify it.
결과적으로 N개의 모든 호스트에서 생성한 공용 난수는 예측 불가능한 공정한 난수이다. 또한, 상술한 바와 같이 모든 과정이 탈중앙화 되어 있고, 블록체인에 기록되므로 투명한 기술이다.As a result, the common random number generated by all N hosts is an unpredictable fair random number. In addition, as described above, all the processes are decentralized and written on the blockchain, which is a transparent technology.
도 4는 본 명세서에 개진된 하나 이상의 실시예가 구현될 수 있는 예시적인 컴퓨팅 환경을 도시하는 도면으로, 상술한 하나 이상의 실시예를 구현하도록 구성된 컴퓨팅 디바이스(1100)를 포함하는 시스템(1000)의 예시를 도시한다. 예를 들어, 컴퓨팅 디바이스(1100)는 개인 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩탑 디바이스, 모바일 디바이스(모바일폰, PDA, 미디어 플레이어 등), 멀티프로세서 시스템, 소비자 전자기기, 미니 컴퓨터, 메인프레임 컴퓨터, 임의의 전술된 시스템 또는 디바이스를 포함하는 분산 컴퓨팅 환경 등을 포함하지만, 이것으로 한정되는 것은 아니다.4 illustrates an example computing environment in which one or more embodiments disclosed herein may be implemented, illustrating an example of a system 1000 that includes a computing device 1100 configured to implement one or more embodiments described above. Shows. For example, the computing device 1100 may be a personal computer, server computer, handheld or laptop device, mobile device (mobile phone, PDA, media player, etc.), multiprocessor system, consumer electronics, mini computer, mainframe computer, Distributed computing environments, including, but not limited to, any of the systems or devices described above.
컴퓨팅 디바이스(1100)는 적어도 하나의 프로세싱 유닛(1110) 및 메모리(1120)를 포함할 수 있다. 여기서, 프로세싱 유닛(1110)은 예를 들어 중앙처리장치(CPU), 그래픽처리장치(GPU), 마이크로프로세서, 주문형 반도체(Application Specific Integrated Circuit, ASIC), Field Programmable Gate Arrays(FPGA) 등을 포함할 수 있으며, 복수의 코어를 가질 수 있다. 메모리(1120)는 휘발성 메모리(예를 들어, RAM 등), 비휘발성 메모리(예를 들어, ROM, 플래시 메모리 등) 또는 이들의 조합일 수 있다.The computing device 1100 may include at least one processing unit 1110 and a memory 1120. The processing unit 1110 may include, for example, a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor, an application specific integrated circuit (ASIC), field programmable gate arrays (FPGA), and the like. It may have a plurality of cores. The memory 1120 may be volatile memory (eg, RAM, etc.), nonvolatile memory (eg, ROM, flash memory, etc.), or a combination thereof.
또한, 컴퓨팅 디바이스(1100)는 추가적인 스토리지(1130)를 포함할 수 있다. 스토리지(1130)는 자기 스토리지, 광학 스토리지 등을 포함하지만 이것으로 한정되지 않는다. 스토리지(1130)에는 본 명세서에 개진된 하나 이상의 실시예를 구현하기 위한 컴퓨터 판독 가능한 명령이 저장될 수 있고, 운영 시스템, 애플리케이션 프로그램 등을 구현하기 위한 다른 컴퓨터 판독 가능한 명령도 저장될 수 있다. 스토리지(1130)에 저장된 컴퓨터 판독 가능한 명령은 프로세싱 유닛(1110)에 의해 실행되기 위해 메모리(1120)에 로딩될 수 있다.In addition, computing device 1100 may include additional storage 1130. Storage 1130 includes, but is not limited to, magnetic storage, optical storage, and the like. Storage 1130 may store computer readable instructions for implementing one or more embodiments disclosed herein, and other computer readable instructions for implementing operating systems, application programs, and the like. Computer readable instructions stored in storage 1130 may be loaded into memory 1120 for execution by processing unit 1110.
또한, 컴퓨팅 디바이스(1100)는 입력 디바이스(들)(1140) 및 출력 디바이스(들)(1150)을 포함할 수 있다. 여기서, 입력 디바이스(들)(1140)은 예를 들어 키보드, 마우스, 펜, 음성 입력 디바이스, 터치 입력 디바이스, 적외선 카메라, 비디오 입력 디바이스 또는 임의의 다른 입력 디바이스 등을 포함할 수 있다. 또한, 출력 디바이스(들)(1150)은 예를 들어 하나 이상의 디스플레이, 스피커, 프린터 또는 임의의 다른 출력 디바이스 등을 포함할 수 있다. 또한, 컴퓨팅 디바이스(1100)는 다른 컴퓨팅 디바이스에 구비된 입력 디바이스 또는 출력 디바이스를 입력 디바이스(들)(1140) 또는 출력 디바이스(들)(1150)로서 사용할 수도 있다.In addition, computing device 1100 may include input device (s) 1140 and output device (s) 1150. Here, the input device (s) 1140 may include, for example, a keyboard, mouse, pen, voice input device, touch input device, infrared camera, video input device, or any other input device. Also, output device (s) 1150 may include, for example, one or more displays, speakers, printers, or any other output device. In addition, computing device 1100 may use an input device or output device included in another computing device as input device (s) 1140 or output device (s) 1150.
또한, 컴퓨팅 디바이스(1100)는 컴퓨팅 디바이스(1100)가 다른 디바이스(예를 들어, 컴퓨팅 디바이스(1300))와 통신할 수 있게 하는 통신접속(들)(1160)을 포함할 수 있다. 여기서, 통신 접속(들)(1160)은 모뎀, 네트워크 인터페이스 카드(NIC), 통합 네트워크 인터페이스, 무선 주파수 송신기/수신기, 적외선 포트, USB 접속 또는 컴퓨팅 디바이스(1100)를 다른 컴퓨팅 디바이스에 접속시키기 위한 다른 인터페이스를 포함할 수 있다. 또한, 통신 접속(들)(1160)은 유선 접속 또는 무선 접속을 포함할 수 있다.In addition, computing device 1100 may include communication connection (s) 1160 that enable computing device 1100 to communicate with another device (eg, computing device 1300). Here, the communication connection (s) 1160 may be a modem, a network interface card (NIC), an integrated network interface, a radio frequency transmitter / receiver, an infrared port, a USB connection, or other for connecting the computing device 1100 to another computing device. It may include an interface. In addition, communication connection (s) 1160 may include a wired connection or a wireless connection.
상술한 컴퓨팅 디바이스(1100)의 각 구성요소는 버스 등의 다양한 상호접속(예를 들어, 주변 구성요소 상호접속(PCI), USB, 펌웨어(IEEE 1394), 광학적 버스 구조 등)에 의해 접속될 수도 있고, 네트워크(1200)에 의해 상호접속될 수도 있다.Each component of the computing device 1100 described above may be connected by various interconnections such as a bus (eg, peripheral component interconnect (PCI), USB, firmware (IEEE 1394), optical bus structure, etc.). And may be interconnected by the network 1200.
본 명세서에서 사용되는 "구성요소", "모듈", "시스템", "인터페이스" 등과 같은 용어들은 일반적으로 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어인 컴퓨터 관련 엔티티를 지칭하는 것이다. 예를 들어, 구성요소는 프로세서 상에서 실행중인 프로세스, 프로세서, 객체, 실행 가능물(executable), 실행 스레드, 프로그램 및/또는 컴퓨터일 수 있지만, 이것으로 한정되는 것은 아니다. 예를 들어, 컨트롤러 상에서 구동중인 애플리케이션 및 컨트롤러 모두가 구성요소일 수 있다. 하나 이상의 구성요소는 프로세스 및/또는 실행의 스레드 내에 존재할 수 있으며, 구성요소는 하나의 컴퓨터 상에서 로컬화될 수 있고, 둘 이상의 컴퓨터 사이에서 분산될 수도 있다.As used herein, terms such as "component", "module", "system", "interface", etc. generally refer to a computer-related entity that is hardware, a combination of hardware and software, software, or running software. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and / or a computer. For example, both an application running on a controller and the controller can be a component. One or more components may reside within a thread of process and / or execution, and the components may be localized on one computer and distributed between two or more computers.
본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.The present invention is not limited by the above-described embodiment and the accompanying drawings. It will be apparent to those skilled in the art that the present invention may be substituted, modified, and changed in accordance with the present invention without departing from the spirit of the present invention.

Claims (8)

  1. N개의 호스트가 각각 개별 난수(Random Number) Rn을 생성하는 단계;Generating, by the N hosts, each random number Rn;
    상기 N개의 호스트가 각각 생성한 개별 난수 Rn을 해시 알고리즘에 의해 암호화하여 Hn을 생성하는 단계;Generating Hn by encrypting individual random numbers Rn generated by the N hosts by a hash algorithm;
    상기 N개의 호스트가 각각 자신을 제외한 N-1개의 호스트에게 Hn을 송신하는 단계;Transmitting, by the N hosts, Hn to N-1 hosts except themselves;
    상기 N개의 호스트가 각각 자신을 제외한 N-1개의 호스트에게 상기 Hn의 해시값 원본에 해당하는 Rn을 송신하는 단계;Transmitting, by the N hosts, Rn corresponding to the original hash value of Hn to N-1 hosts except themselves;
    상기 N개의 호스트가 각각 N-1개의 호스트로부터 수신 받은 각각의 Hn과 Rn을 인자로 사용하는 해시 알고리즘의 결과 값을 비교하여 Rn의 무결성을 확인하는 단계; 및Confirming the integrity of Rn by comparing the result values of hash algorithms using Hn and Rn received from N-1 hosts as factors, respectively; And
    상기 N개의 호스트가 각각 자신이 생성한 Rn과 자신을 제외한 N-1개의 호스트가 생성한 Rn을 인자로 사용하여 공용 난수(Public Random Number)를 생성하는 단계를 포함하며,Generating a public random number by the N hosts using Rn generated by each of the N hosts and Rn generated by N-1 hosts except themselves as parameters;
    N은 2 이상의 자연수인 난수 생성 방법.N is a random number generation method of two or more natural numbers.
  2. 제 1 항에 있어서,The method of claim 1,
    각 단계는 블록 체인에 기록되는 난수 생성 방법.Each step is a random number generation method written to the blockchain.
  3. N개의 호스트가 각각 개별 난수(Random Number) Rn을 생성하는 단계;Generating, by the N hosts, each random number Rn;
    상기 N개의 호스트가 각각 생성한 개별 난수 Rn을 암호화키 Kn을 사용하는 암호화 알고리즘에 의해 암호화하여 En을 생성하는 단계;Generating En by encrypting each random number Rn generated by the N hosts by an encryption algorithm using an encryption key Kn;
    상기 N개의 호스트가 각각 자신을 제외한 N-1개의 호스트에게 En을 송신하는 단계;Transmitting, by the N hosts, N-1 hosts, except for N-1 hosts;
    상기 N개의 호스트가 각각 자신을 제외한 N-1개의 호스트에게 상기 En의 복호화를 위한 암호화키 Kn을 송신하는 단계;Transmitting, by the N hosts, encryption keys Kn for decryption of the En to N-1 hosts except themselves;
    상기 N개의 호스트가 각각 N-1개의 호스트로부터 수신 받은 각각의 En을 암호화키 Kn으로 복호화하여 Rn을 획득하는 단계; 및Acquiring Rn by decrypting each En received from N-1 hosts with an encryption key Kn; And
    상기 N개의 호스트가 각각 자신이 생성한 Rn과 자신을 제외한 N-1개의 호스트가 생성한 Rn을 인자로 사용하여 공용 난수(Public Random Number)를 생성하는 단계를 포함하며,Generating a public random number by the N hosts using Rn generated by each of the N hosts and Rn generated by N-1 hosts except themselves as parameters;
    N은 2 이상의 자연수인 난수 생성 방법.N is a random number generation method of two or more natural numbers.
  4. 제 3 항에 있어서,The method of claim 3, wherein
    각 단계는 블록 체인에 기록되는 난수 생성 방법.Each step is a random number generation method written to the blockchain.
  5. 호스트가 제1 개별 난수를 생성하는 단계;The host generating a first individual random number;
    상기 호스트가 타 호스트로부터 상기 타 호스트에 의해 생성 및 해시 알고리즘에 의해 암호화된 제2 개별 난수를 수신하는 단계;Receiving, by the host, from the other host a second individual random number generated and encrypted by a hash algorithm;
    상기 호스트가 상기 타 호스트로부터 상기 제2 개별 난수를 수신하는 단계;The host receiving the second individual random number from the other host;
    상기 호스트가 상기 암호화된 제2 개별 난수와 상기 제2 개별 난수를 인자로 사용하는 해시 알고리즘의 결과 값을 비교하여 상기 제2 개별 난수의 무결성을 확인하는 단계; 및Checking, by the host, the integrity of the second individual random number by comparing a result of a hash algorithm using the encrypted second individual random number and the second individual random number as a factor; And
    상기 호스트가 상기 제1 개별 난수 및 상기 제2 개별 난수를 인자로 사용하여 공용 난수를 생성하는 단계를 포함하는 난수 생성 방법.And generating, by the host, a common random number using the first individual random number and the second individual random number as factors.
  6. 호스트가 제1 개별 난수를 생성하는 단계;The host generating a first individual random number;
    상기 호스트가 타 호스트로부터 상기 타 호스트에 의해 생성 및 암호화 알고리즘에 의해 암호화된 제2 개별 난수를 수신하는 단계;Receiving, by the host, from the other host a second individual random number generated and encrypted by an encryption algorithm;
    상기 호스트가 상기 타 호스트로부터 상기 암호화된 제2 개별 난수의 복호화를 위한 암호화키를 수신하는 단계;Receiving, by the host, an encryption key for decrypting the encrypted second individual random number from the other host;
    상기 호스트가 상기 암호화키를 이용하여 상기 암호화된 제2 개별 난수를 복호화하는 단계; 및Decrypting, by the host, the encrypted second individual random number using the encryption key; And
    상기 호스트가 상기 제1 개별 난수 및 상기 제2 개별 난수를 인자로 사용하여 공용 난수를 생성하는 단계를 포함하는 난수 생성 방법.And generating, by the host, a common random number using the first individual random number and the second individual random number as factors.
  7. 네트워크를 통해 서로 연결된 N개의 호스트를 포함하고, N은 2 이상의 자연수이며,Contains N hosts connected to each other over a network, where N is a natural number of 2 or more,
    상기 N개의 호스트는 각각 개별 난수를 생성 및 암호화한 후 암호화된 개별 난수를 N-1개의 호스트에게 송신하고, Each of the N hosts generates and encrypts individual random numbers, and then transmits encrypted individual random numbers to N-1 hosts.
    상기 N개의 호스트는 각각 N-1개의 호스트로부터 수신한 암호화된 개별 난수를 복호화한 후, 자신이 생성한 개별 난수와 상기 N-1개의 호스트로부터 수신하여 복호화한 개별 난수를 인자로 사용하여 공용 난수를 생성하는 난수 생성 시스템.The N hosts decrypt the encrypted individual random numbers received from the N-1 hosts, respectively, and then use the random numbers generated by the N hosts and the individual random numbers received and decrypted from the N-1 hosts as factors. Random number generation system to generate.
  8. 제 7 항에 있어서,The method of claim 7, wherein
    상기 N개의 호스트는 각각 상기 공용 난수를 생성하기 위해 수행하는 각 과정을 블록체인 기술 기반으로 기록하는 난수 생성 시스템.The N host is a random number generation system for recording each process performed to generate the common random number based on blockchain technology.
PCT/KR2018/008747 2018-07-04 2018-08-01 Method and system for generating random numbers WO2020009265A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20180077620 2018-07-04
KR10-2018-0077620 2018-07-04
KR20180088998 2018-07-31
KR10-2018-0088998 2018-07-31

Publications (1)

Publication Number Publication Date
WO2020009265A1 true WO2020009265A1 (en) 2020-01-09

Family

ID=69060030

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/008747 WO2020009265A1 (en) 2018-07-04 2018-08-01 Method and system for generating random numbers

Country Status (1)

Country Link
WO (1) WO2020009265A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306457A (en) * 2020-08-07 2021-02-02 神州融安科技(北京)有限公司 Random number generation method and device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253223B1 (en) * 1999-06-08 2001-06-26 General Instrument Corporation Robust random number generator
US6628786B1 (en) * 1997-09-30 2003-09-30 Sun Microsystems, Inc. Distributed state random number generator and method for utilizing same
US20090240717A1 (en) * 2008-03-20 2009-09-24 Hitachi, Ltd. Method and apparatus for verifying archived data integrity in integrated storage systems
US20100121896A1 (en) * 2008-11-12 2010-05-13 Gtech Corporation Secure random number generation
US20140136583A1 (en) * 2012-11-15 2014-05-15 Elwha LLC, a limited liability corporation of the State of Delaware Random number generator functions in memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628786B1 (en) * 1997-09-30 2003-09-30 Sun Microsystems, Inc. Distributed state random number generator and method for utilizing same
US6253223B1 (en) * 1999-06-08 2001-06-26 General Instrument Corporation Robust random number generator
US20090240717A1 (en) * 2008-03-20 2009-09-24 Hitachi, Ltd. Method and apparatus for verifying archived data integrity in integrated storage systems
US20100121896A1 (en) * 2008-11-12 2010-05-13 Gtech Corporation Secure random number generation
US20140136583A1 (en) * 2012-11-15 2014-05-15 Elwha LLC, a limited liability corporation of the State of Delaware Random number generator functions in memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306457A (en) * 2020-08-07 2021-02-02 神州融安科技(北京)有限公司 Random number generation method and device

Similar Documents

Publication Publication Date Title
US8411867B2 (en) Scalable and secure key management for cryptographic data processing
WO2020171272A1 (en) System and method for blockchain platform-based service
WO2019074326A1 (en) Method and apparatus for secure offline payment
CN111008863B (en) Lottery drawing method and system based on block chain
WO2018062761A1 (en) Method for initializing device having enhanced security function and method for updating firmware of device
US10943020B2 (en) Data communication system with hierarchical bus encryption system
WO2019139200A1 (en) Method for intention expression identification using block chain, by which anonymity can be guaranteed and sybil attack can be prevented
WO2018186543A1 (en) Data encryption method and system using device authentication key
US20210110009A1 (en) Method and system for signing an artificial intelligence watermark using implicit data
CN109361508A (en) Data transmission method, electronic equipment and computer readable storage medium
WO2024087470A1 (en) Blockchain transaction data supervision method and apparatus, and device and nonvolatile readable storage medium
WO2015178597A1 (en) System and method for updating secret key using puf
US20210110066A1 (en) Method and system for encrypting data using a kernel
CN117708887B (en) Longitudinal logistic regression-based federal learning model acquisition method and system
WO2021137391A1 (en) Blockchain generation method using secret sharing
US11997192B2 (en) Technologies for establishing device locality
WO2020009265A1 (en) Method and system for generating random numbers
US11496287B2 (en) Privacy preserving fully homomorphic encryption with circuit verification
WO2023191216A1 (en) Data encryption and decryption system and method
JP6939313B2 (en) Distributed authentication system
KR101085624B1 (en) Communication of information via a side-band channel, and use of same to verify positional relationship
WO2019066319A1 (en) Method of provisioning key information and apparatus using the method
WO2017183799A1 (en) Data checking apparatus, and method for checking data using same
WO2021090975A1 (en) Method for generating temporary anonymous certificate
WO2016200007A1 (en) Secure chat method using distributed key exchange protocol and self-defense security technology

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18925635

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18925635

Country of ref document: EP

Kind code of ref document: A1