WO2020009265A1 - 난수 생성 방법 및 시스템 - Google Patents

난수 생성 방법 및 시스템 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
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/KR2018/008747
Other languages
English (en)
French (fr)
Inventor
문영오
전성구
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Numbers Inc
Original Assignee
Numbers Inc
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 Numbers Inc filed Critical Numbers Inc
Publication of WO2020009265A1 publication Critical patent/WO2020009265A1/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

난수 생성 방법 및 시스템이 개시된다. 상기 난수 생성 시스템은, 네트워크를 통해 서로 연결된 N개의 호스트를 포함하고, N은 2 이상의 자연수이며, 상기 N개의 호스트는 각각 개별 난수를 생성 및 암호화한 후 암호화된 개별 난수를 N-1개의 호스트에게 송신하고, 상기 N개의 호스트는 각각 N-1개의 호스트로부터 수신한 암호화된 개별 난수를 복호화한 후, 자신이 생성한 개별 난수와 상기 N-1개의 호스트로부터 수신하여 복호화한 개별 난수를 인자로 사용하여 공용 난수를 생성할 수 있다.

Description

난수 생성 방법 및 시스템
본 출원은 난수 생성 방법 및 시스템에 관한 것으로, 구체적으로 개별 호스트에서 생성한 난수(Private Random Number)를 암호화, 교환, 검증, 조합을 통해 예측 불가능하고 공정한 공용 난수(Public Random Number)를 생성하는 방법과 그 절차를 모두 블록체인에 기록하는 기술에 관한 것이다.
온라인 카지노 등과 같은 온라인 게임에서 가장 문제로 제시되는 것은 기술의 투명성이며, 투명성이 문제로 제시되는 주요 이유는 난수 생성 방식(Random Number Generation; RNG)에 있다.
종래의 난수 생성 방식은 중앙화되어 있어 조작하기 쉬우며, 이에 따라 게임의 무결성과 공정성을 의심할 수 있다는 문제가 있다.
당해 기술분야에서는 투명하고 조작 불가능한 방식으로 난수를 생성하기 위한 방안이 요구되고 있다.
상기 과제를 해결하기 위해서, 본 발명의 일 실시예는 해시 알고리즘을 이용한 난수 생성 방법을 제공한다.
본 발명의 일 실시예에 따른 해시 알고리즘을 이용한 난수 생성 방법은, 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)를 생성하는 단계를 포함할 수 있다.
본 발명의 다른 실시예는 암호화 알고리즘을 이용한 난수 생성 방법을 제공한다.
본 발명의 다른 실시예에 따른 암호화 알고리즘을 이용한 난수 생성 방법은, 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)를 생성하는 단계를 포함할 수 있다.
본 발명의 또 다른 실시예는 난수 생성 시스템을 제공한다.
본 발명의 또 다른 실시예에 따른 난수 생성 시스템은, 네트워크를 통해 서로 연결된 N개의 호스트를 포함하고, N은 2 이상의 자연수이며, 상기 N개의 호스트는 각각 개별 난수를 생성 및 암호화한 후 암호화된 개별 난수를 N-1개의 호스트에게 송신하고, 상기 N개의 호스트는 각각 N-1개의 호스트로부터 수신한 암호화된 개별 난수를 복호화한 후, 자신이 생성한 개별 난수와 상기 N-1개의 호스트로부터 수신하여 복호화한 개별 난수를 인자로 사용하여 공용 난수를 생성할 수 있다.
덧붙여 상기한 과제의 해결수단은, 본 발명의 특징을 모두 열거한 것이 아니다. 본 발명의 다양한 특징과 그에 따른 장점과 효과는 아래의 구체적인 실시형태를 참조하여 보다 상세하게 이해될 수 있을 것이다.
본 발명의 실시예에 따르면, 복수의 호스트가 난수 생성에 참여하기 때문에 어느 한 쪽이 유리하도록 난수를 생성하거나, 악의적인 목적을 가지고 난수를 조작하는 것이 불가능해진다.
또한, 난수 생성 과정이 모두 블록 체인에 기록되므로 언제든지 검증할 수 있게 된다.
도 1은 본 발명의 실시예가 적용되는 난수 생성 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 해시 알고리즘을 이용한 난수 생성 방법의 흐름도이다.
도 3은 본 발명의 다른 실시예에 따른 암호화 알고리즘을 이용한 난수 생성 방법의 흐름도이다.
도 4는 본 명세서에 개진된 하나 이상의 실시예가 구현될 수 있는 예시적인 컴퓨팅 환경을 도시하는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
도 1은 본 발명의 실시예가 적용되는 난수 생성 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 실시예가 적용되는 난수 생성 시스템은 N개의 호스트(예를 들어, 제1 호스트, 제2 호스트, 제3 호스트)(100, 200, 300)를 포함할 수 있다. 여기서, 호스트는 네트워크에 연결되어 있는 컴퓨팅 디바이스일 수 있으며, 호스트의 개수는 N(N>1)일 수 있다. 도 1에서는 호스트의 개수가 3개인 경우를 예를 들어 도시하나, 반드시 이로 제한되는 것은 아니다.
각각의 호스트(100, 200, 300)는 네트워크를 통해 서로 연결되어 공용 난수 생성을 위해 필요한 정보를 서로 교환할 수 있다.
각각의 호스트(100, 200, 300)는 개별 난수를 생성하여 이를 암호화한 후, 암호화된 개별 난수를 다른 호스트들에게 송신할 수 있다. 이에 따라, 각각의 호스트(100, 200, 300)는 모든 호스트에서 각각 생성되어 암호화된 개별 난수를 가지게 된다.
또한, 각각의 호스트(100, 200, 300)는 다른 호스트로부터 수신한 암호화된 개별 난수를 복호화한 후, 자신이 생성한 개별 난수와, 다른 호스트로부터 수신하여 복호화한 개별 난수들을 모두 인자(Seed)로 사용하여 공용 난수(Public Random Number)를 생성할 수 있다.
또한, 각각의 호스트(100), 200, 300)는 블록체인 기술 기반으로 난수 생성을 위해 수행하는 각 과정을 기록할 수 있다.
이하, 도 2 및 도 3을 참조하여 본 발명의 실시예에 따른 난수 생성 방법에 대해 보다 구체적으로 설명한다.
도 2는 본 발명의 일 실시예에 따른 해시 알고리즘을 이용한 난수 생성 방법의 흐름도이다. 도 2에서는 호스트의 개수가 3개인 경우를 예를 들어 도시하나, 반드시 이로 제한되는 것은 아니다.
도 2를 참조하면, 우선 N개의 모든 호스트(100, 200, 300)는 각자 개별 난수(Random Number) Rn을 생성한다(S210).
이후, N개의 모든 호스트(100, 200, 300)는 각자 생성한 개별 난수 Rn을 해시 알고리즘 hash(Rn)을 사용하여 Hn을 생성한다(S220). 여기서, 해시 알고리즘은 복호화가 불가능한 암호화 기법을 말한다. 그러나, 본 발명에서 개별 난수 Rn을 암호화하는 기법이 반드시 이로 제한되는 것은 아니며, 통상의 기술자에게 알려진 다양한 암호화 기법을 적용하여 개별 난수 Rn을 암호화할 수 있다.
이후, 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은 더 이상 변경이 불가능한 상태가 된다.
이후, 도 2에서 도시되지는 않았으나, N개의 모든 호스트(100, 200, 300)는 자신을 제외한 나머지 N-1개의 호스트가 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을 송신할 수 있다.
이후, 도 2에서 도시되지는 않았으나, N개의 모든 호스트(100, 200, 300)는 자신을 제외한 나머지 N-1개의 호스트가 Rn을 수신하였는지 확인할 수 있다.
이후, N개의 모든 호스트(100, 200, 300)는 N-1개의 호스트로부터 수신 받은 각각의 Hn과 Rn을 인자로 사용하는 해시 알고리즘의 결과 값을 비교하여 Rn의 무결성을 확인한다(S250). 즉, Hn = hash(Rn) 인지 확인하여 Rn의 무결성을 확인할 수 있다.
이후, N개의 모든 호스트(100, 200, 300)는 자신이 생성한 Rn과 자신을 제외한 나머지 N-1개의 호스트가 생성한 Rn을 모두 인자(Seed)로 사용하는 공용 난수 생성 함수를 호출하여 공용 난수(Public Random Number)를 생성한다(S260).
상술한 S210 내지 S260 단계는 모두 블록체인(예를 들어, Smart Contract)에 기록되며, 누구나 검증할 수 있다.
결과적으로 N개의 모든 호스트에서 생성한 공용 난수는 예측 불가능한 공정한 난수이다. 또한, 상술한 바와 같이 모든 과정이 탈중앙화 되어 있고, 블록체인에 기록되므로 투명한 기술이다.
도 3은 본 발명의 다른 실시예에 따른 암호화 알고리즘을 이용한 난수 생성 방법의 흐름도이다. 도 3에서는 호스트의 개수가 3개인 경우를 예를 들어 도시하나, 반드시 이로 제한되는 것은 아니다.
도 3을 참조하면, 우선 N개의 모든 호스트(100, 200, 300)는 각자 개별 난수(Random Number) Rn을 생성한다(S310).
이후, N개의 모든 호스트(100, 200, 300)는 각자 생성한 개별 난수 Rn을 암호화 알고리즘 Encrypt(Kn, Rn)을 사용하여 En을 생성한다(S320). 여기서, Kn은 암호화 알고리즘에 사용되는 암호화키를 의미하며, 암호화 알고리즘은 암호화키를 사용한 암호화 알고리즘일 수 있다. 그러나, 본 발명에서 개별 난수 Rn을 암호화하는 기법이 반드시 이로 제한되는 것은 아니며, 통상의 기술자에게 알려진 다양한 암호화 기법을 적용하여 개별 난수 Rn을 암호화할 수 있다.
이후, 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은 더 이상 변경이 불가능한 상태가 된다.
이후, 도 3에서 도시되지는 않았으나, N개의 모든 호스트(100, 200, 300)는 자신을 제외한 나머지 N-1개의 호스트가 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을 송신할 수 있다.
이후, 도 3에서 도시되지는 않았으나, N개의 모든 호스트(100, 200, 300)는 자신을 제외한 나머지 N-1개의 호스트가 Kn을 수신하였는지 확인할 수 있다.
이후, N개의 모든 호스트(100, 200, 300)는 N-1개의 호스트로부터 수신 받은 각각의 En을 암호화키 Kn으로 복호화하여 Rn을 획득한다(S350). 즉, Rn = Decrypt(En, Kn)가 성립한다.
이후, N개의 모든 호스트(100, 200, 300)는 자신이 생성한 Rn과 자신을 제외한 나머지 N-1개의 호스트가 생성한 Rn을 모두 인자(Seed)로 사용하는 공용 난수 생성 함수를 호출하여 공용 난수(Public Random Number)를 생성한다(S360).
상술한 S310 내지 S360 단계는 모두 블록체인(예를 들어, Smart Contract)에 기록되며, 누구나 검증할 수 있다.
결과적으로 N개의 모든 호스트에서 생성한 공용 난수는 예측 불가능한 공정한 난수이다. 또한, 상술한 바와 같이 모든 과정이 탈중앙화 되어 있고, 블록체인에 기록되므로 투명한 기술이다.
도 4는 본 명세서에 개진된 하나 이상의 실시예가 구현될 수 있는 예시적인 컴퓨팅 환경을 도시하는 도면으로, 상술한 하나 이상의 실시예를 구현하도록 구성된 컴퓨팅 디바이스(1100)를 포함하는 시스템(1000)의 예시를 도시한다. 예를 들어, 컴퓨팅 디바이스(1100)는 개인 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩탑 디바이스, 모바일 디바이스(모바일폰, PDA, 미디어 플레이어 등), 멀티프로세서 시스템, 소비자 전자기기, 미니 컴퓨터, 메인프레임 컴퓨터, 임의의 전술된 시스템 또는 디바이스를 포함하는 분산 컴퓨팅 환경 등을 포함하지만, 이것으로 한정되는 것은 아니다.
컴퓨팅 디바이스(1100)는 적어도 하나의 프로세싱 유닛(1110) 및 메모리(1120)를 포함할 수 있다. 여기서, 프로세싱 유닛(1110)은 예를 들어 중앙처리장치(CPU), 그래픽처리장치(GPU), 마이크로프로세서, 주문형 반도체(Application Specific Integrated Circuit, ASIC), Field Programmable Gate Arrays(FPGA) 등을 포함할 수 있으며, 복수의 코어를 가질 수 있다. 메모리(1120)는 휘발성 메모리(예를 들어, RAM 등), 비휘발성 메모리(예를 들어, ROM, 플래시 메모리 등) 또는 이들의 조합일 수 있다.
또한, 컴퓨팅 디바이스(1100)는 추가적인 스토리지(1130)를 포함할 수 있다. 스토리지(1130)는 자기 스토리지, 광학 스토리지 등을 포함하지만 이것으로 한정되지 않는다. 스토리지(1130)에는 본 명세서에 개진된 하나 이상의 실시예를 구현하기 위한 컴퓨터 판독 가능한 명령이 저장될 수 있고, 운영 시스템, 애플리케이션 프로그램 등을 구현하기 위한 다른 컴퓨터 판독 가능한 명령도 저장될 수 있다. 스토리지(1130)에 저장된 컴퓨터 판독 가능한 명령은 프로세싱 유닛(1110)에 의해 실행되기 위해 메모리(1120)에 로딩될 수 있다.
또한, 컴퓨팅 디바이스(1100)는 입력 디바이스(들)(1140) 및 출력 디바이스(들)(1150)을 포함할 수 있다. 여기서, 입력 디바이스(들)(1140)은 예를 들어 키보드, 마우스, 펜, 음성 입력 디바이스, 터치 입력 디바이스, 적외선 카메라, 비디오 입력 디바이스 또는 임의의 다른 입력 디바이스 등을 포함할 수 있다. 또한, 출력 디바이스(들)(1150)은 예를 들어 하나 이상의 디스플레이, 스피커, 프린터 또는 임의의 다른 출력 디바이스 등을 포함할 수 있다. 또한, 컴퓨팅 디바이스(1100)는 다른 컴퓨팅 디바이스에 구비된 입력 디바이스 또는 출력 디바이스를 입력 디바이스(들)(1140) 또는 출력 디바이스(들)(1150)로서 사용할 수도 있다.
또한, 컴퓨팅 디바이스(1100)는 컴퓨팅 디바이스(1100)가 다른 디바이스(예를 들어, 컴퓨팅 디바이스(1300))와 통신할 수 있게 하는 통신접속(들)(1160)을 포함할 수 있다. 여기서, 통신 접속(들)(1160)은 모뎀, 네트워크 인터페이스 카드(NIC), 통합 네트워크 인터페이스, 무선 주파수 송신기/수신기, 적외선 포트, USB 접속 또는 컴퓨팅 디바이스(1100)를 다른 컴퓨팅 디바이스에 접속시키기 위한 다른 인터페이스를 포함할 수 있다. 또한, 통신 접속(들)(1160)은 유선 접속 또는 무선 접속을 포함할 수 있다.
상술한 컴퓨팅 디바이스(1100)의 각 구성요소는 버스 등의 다양한 상호접속(예를 들어, 주변 구성요소 상호접속(PCI), USB, 펌웨어(IEEE 1394), 광학적 버스 구조 등)에 의해 접속될 수도 있고, 네트워크(1200)에 의해 상호접속될 수도 있다.
본 명세서에서 사용되는 "구성요소", "모듈", "시스템", "인터페이스" 등과 같은 용어들은 일반적으로 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어인 컴퓨터 관련 엔티티를 지칭하는 것이다. 예를 들어, 구성요소는 프로세서 상에서 실행중인 프로세스, 프로세서, 객체, 실행 가능물(executable), 실행 스레드, 프로그램 및/또는 컴퓨터일 수 있지만, 이것으로 한정되는 것은 아니다. 예를 들어, 컨트롤러 상에서 구동중인 애플리케이션 및 컨트롤러 모두가 구성요소일 수 있다. 하나 이상의 구성요소는 프로세스 및/또는 실행의 스레드 내에 존재할 수 있으며, 구성요소는 하나의 컴퓨터 상에서 로컬화될 수 있고, 둘 이상의 컴퓨터 사이에서 분산될 수도 있다.
본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 본 발명에 따른 구성요소를 치환, 변형 및 변경할 수 있다는 것이 명백할 것이다.

Claims (8)

  1. 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)를 생성하는 단계를 포함하며,
    N은 2 이상의 자연수인 난수 생성 방법.
  2. 제 1 항에 있어서,
    각 단계는 블록 체인에 기록되는 난수 생성 방법.
  3. 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)를 생성하는 단계를 포함하며,
    N은 2 이상의 자연수인 난수 생성 방법.
  4. 제 3 항에 있어서,
    각 단계는 블록 체인에 기록되는 난수 생성 방법.
  5. 호스트가 제1 개별 난수를 생성하는 단계;
    상기 호스트가 타 호스트로부터 상기 타 호스트에 의해 생성 및 해시 알고리즘에 의해 암호화된 제2 개별 난수를 수신하는 단계;
    상기 호스트가 상기 타 호스트로부터 상기 제2 개별 난수를 수신하는 단계;
    상기 호스트가 상기 암호화된 제2 개별 난수와 상기 제2 개별 난수를 인자로 사용하는 해시 알고리즘의 결과 값을 비교하여 상기 제2 개별 난수의 무결성을 확인하는 단계; 및
    상기 호스트가 상기 제1 개별 난수 및 상기 제2 개별 난수를 인자로 사용하여 공용 난수를 생성하는 단계를 포함하는 난수 생성 방법.
  6. 호스트가 제1 개별 난수를 생성하는 단계;
    상기 호스트가 타 호스트로부터 상기 타 호스트에 의해 생성 및 암호화 알고리즘에 의해 암호화된 제2 개별 난수를 수신하는 단계;
    상기 호스트가 상기 타 호스트로부터 상기 암호화된 제2 개별 난수의 복호화를 위한 암호화키를 수신하는 단계;
    상기 호스트가 상기 암호화키를 이용하여 상기 암호화된 제2 개별 난수를 복호화하는 단계; 및
    상기 호스트가 상기 제1 개별 난수 및 상기 제2 개별 난수를 인자로 사용하여 공용 난수를 생성하는 단계를 포함하는 난수 생성 방법.
  7. 네트워크를 통해 서로 연결된 N개의 호스트를 포함하고, N은 2 이상의 자연수이며,
    상기 N개의 호스트는 각각 개별 난수를 생성 및 암호화한 후 암호화된 개별 난수를 N-1개의 호스트에게 송신하고,
    상기 N개의 호스트는 각각 N-1개의 호스트로부터 수신한 암호화된 개별 난수를 복호화한 후, 자신이 생성한 개별 난수와 상기 N-1개의 호스트로부터 수신하여 복호화한 개별 난수를 인자로 사용하여 공용 난수를 생성하는 난수 생성 시스템.
  8. 제 7 항에 있어서,
    상기 N개의 호스트는 각각 상기 공용 난수를 생성하기 위해 수행하는 각 과정을 블록체인 기술 기반으로 기록하는 난수 생성 시스템.
PCT/KR2018/008747 2018-07-04 2018-08-01 난수 생성 방법 및 시스템 Ceased WO2020009265A1 (ko)

Applications Claiming Priority (4)

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

Publications (1)

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

Family

ID=69060030

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/008747 Ceased WO2020009265A1 (ko) 2018-07-04 2018-08-01 난수 생성 방법 및 시스템

Country Status (1)

Country Link
WO (1) WO2020009265A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112306457A (zh) * 2020-08-07 2021-02-02 神州融安科技(北京)有限公司 一种随机数生成方法及装置

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 (zh) * 2020-08-07 2021-02-02 神州融安科技(北京)有限公司 一种随机数生成方法及装置

Similar Documents

Publication Publication Date Title
CN112789825B (zh) 用于转移对数字资源的访问的计算机实现的系统和方法
WO2020171272A1 (ko) 블록체인 플랫폼 기반 서비스 시스템 및 방법
WO2022194276A1 (zh) 一种数据处理方法和相关设备
WO2019074326A1 (en) SECURE OFFLINE PAYMENT METHOD AND APPARATUS
US11436305B2 (en) Method and system for signing an artificial intelligence watermark using implicit data
CN111008863A (zh) 一种基于区块链的抽奖方法及系统
WO2013012120A1 (ko) 생체이미지 정보를 포함하는 일회용 비밀번호를 이용한 인증방법 및 장치
US10943020B2 (en) Data communication system with hierarchical bus encryption system
WO2018186543A1 (ko) 장치 인증키를 이용한 데이터 암호화 방법 및 시스템
WO2019139200A1 (ko) 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법
CN109361508A (zh) 数据传输方法、电子设备及计算机可读存储介质
WO2017105072A1 (ko) 생체 정보 기반 인증 장치 그리고 이의 동작 방법
US11496287B2 (en) Privacy preserving fully homomorphic encryption with circuit verification
WO2024087470A1 (zh) 一种区块链交易数据的监管方法、装置、设备和非易失性可读存储介质
US11775692B2 (en) Method and system for encrypting data using a kernel
US20210126776A1 (en) Technologies for establishing device locality
WO2023191216A1 (ko) 데이터 암호화 및 복호화 시스템, 방법
WO2015178597A1 (ko) Puf를 이용한 비밀키 업데이트 시스템 및 방법
CN115909560A (zh) 数据加密方法、解密方法及门锁系统
JP6939313B2 (ja) 分散認証システム
WO2020009265A1 (ko) 난수 생성 방법 및 시스템
CN118972166B (zh) 用于集成系统的数据安全共享方法、系统、设备及产品
WO2021137391A1 (ko) 비밀 공유를 이용한 블록 체인 생성 방법
CN117708887B (zh) 一种基于纵向逻辑回归的联邦学习模型获取方法及系统
CN114978714B (zh) 基于risc-v的轻量级数据总线加密安全传输方法

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