KR102372682B1 - 주기적 시더 계승을 이용한 p2p 네트워크 기반 검증 가능한 난수 생성 방법 및 시스템 - Google Patents

주기적 시더 계승을 이용한 p2p 네트워크 기반 검증 가능한 난수 생성 방법 및 시스템 Download PDF

Info

Publication number
KR102372682B1
KR102372682B1 KR1020190132002A KR20190132002A KR102372682B1 KR 102372682 B1 KR102372682 B1 KR 102372682B1 KR 1020190132002 A KR1020190132002 A KR 1020190132002A KR 20190132002 A KR20190132002 A KR 20190132002A KR 102372682 B1 KR102372682 B1 KR 102372682B1
Authority
KR
South Korea
Prior art keywords
random number
generating
seed
network
representative
Prior art date
Application number
KR1020190132002A
Other languages
English (en)
Other versions
KR20210048120A (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 KR1020190132002A priority Critical patent/KR102372682B1/ko
Publication of KR20210048120A publication Critical patent/KR20210048120A/ko
Application granted granted Critical
Publication of KR102372682B1 publication Critical patent/KR102372682B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/582Pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

주기적 시더 계승을 이용한 p2p 네트워크 기반 검증 가능한 난수 생성 방법 및 시스템이 제공된다. 본 발명의 실시예에 따른 난수 생성 방법은, 난수의 시드를 생성하고, 네트워크 참여자들이 생성된 시드를 검증하며, 네트워크 참여자들이 검증된 시드를 기반으로 난수를 생성한다. 이에 의해, 분산 컴퓨팅 환경과 같은 p2p 네트워크에서 난수의 생성에 다수의 노드들이 개입하여 검증이 가능함과 동시에 예측이 불가능한 난수를 생성할 수 있게 된다.

Description

주기적 시더 계승을 이용한 p2p 네트워크 기반 검증 가능한 난수 생성 방법 및 시스템{P2P Network based Verifiable Random Number Generation Method and System using Periodic Seeder Inheritance}
본 발명은 난수 생성 기술에 관한 것으로, 더욱 상세하게는 중앙 서버가 존재하지 않는 탈중앙화된 p2p 네트워크에서 주기적으로 시더를 변경하면서 시드를 생성하고 검증하는 난수 생성 방법 및 시스템에 관한 것이다.
컴퓨터 환경에서의 난수생성은 아주 오랜 기간 연구 된 문제 중 하나이다. 정해진 작업만을 수행하는 컴퓨터만으로는 자연계와 같은 무작위성이 가미된 난수를 생성할 수 없다. 따라서, 컴퓨터 환경에서는 시드(seed)를 활용하여 의도적으로 무작위성을 부여하는 방식으로 난수를 생성하는 것이 일반적이다. 이를 의사난수(pseudorandom number)라 한다.
난수는 예측 불가능성(unpredictability)에 그 의의가 있다. 이는 난수를 생성함에 있어 누군가의 의도가 개입하지 않아야 함을 의미한다. 예를 들어, 난수를 생성하여 어떤 추첨을 할 때, 추첨에 참여한 누군가에게도 유리한 방법으로 난수가 생성되면 안 될 것이다. 하지만, 생성된 난수만을 받아 보는 입장으로서는 해당 난수가 공정하게 생성되었는지, 혹은 누군가에게 유리하게 생성되었는지 알 수 없다. 난수를 생성하는 입장에서는 이를 악용할 수 있다. 누군가에게 유리한 난수 생성이 이루어진다면, 이 난수는 어느정도 예측이 가능하다고 할 수 있다.
실제로, 유료 추첨을 주요 수입원으로 하는 모바일 게임 분야에서는 확률 조작 문제가 끊임 없이 제기되고 있다. 게임상에서 표기된 확률과 여러 번의 시행을 통해 도출한 당첨 확률에 차이가 발생하여 추첨이 조작된 것이라는 의혹이 왕왕 발생하고 있다. 이는 당첨 결과만을 받아 보는 사용자 입장에서 난수가 어떤 방식으로 생성되었는지 확인할 수 없기에 발생하는 문제이다.
이런 문제에 대한 해결법 중 한 가지는 p2p 환경에서 난수를 생성하는 것이다. 분산화된 p2p 플랫폼에서 위조가 불가능한 방식으로 난수를 생성한다면 모두에게 공평한 방식으로 난수를 생성할 수 있다.
하지만, p2p 네트워크 상에서 난수 생성이 쉽지만은 않다. p2p 환경에서의 난수는, 예측 불가능함(unpredictable)과 동시에 검증 가능(verifiable)이어야 하기 때문이다. 일반적으로 난수 생성은 그 결과에 대한 예측이 불가능해야 의미가 있는데, 이 특징은 모든 참여자가 동일한 결과를 얻고 이에 대한 검증 역시 가능해야 한다는 p2p 네트워크의 특징과는 위배되는 것으로 생각할 수 있다. 중앙화된 서버가 없기 때문에 p2p 네트워크 상에서 무작위 난수를 생성하는 것이 어렵고, 그리고 그것이 올바르게 생성된 난수인지 검증하는 것 역시 쉽지 않다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 분산 컴퓨팅 환경과 같은 p2p 네트워크에서 난수의 생성에 다수의 노드(node)가 개입하여 검증이 가능함과 동시에 예측이 불가능한 난수를 생성하는 방법 및 시스템을 제공함에 있다.
또한, 본 발명의 다른 목적은, 생성된 난수를 활용하여 차기 대표자를 선택함으로써 주기적으로 시더를 변경하면서 시드를 생성할 수 있는 난수 생성 방법 및 시스템을 제공함에 있다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 난수 생성 방법은, 난수의 시드를 생성하는 단계; 네트워크 참여자들이, 생성된 시드를 검증하는 단계; 및 네트워크 참여자들이, 검증된 시드를 기반으로 난수를 생성하는 단계;를 포함한다.
그리고, 본 발명의 실시예에 따른 난수 생성 방법은, 네트워크 참여자들이, 난수의 시드를 생성할 대표자를 확인하는 단계;를 더 포함하고, 생성 단계는, 네트워크 참여자들 중 대표자로 확인된 네트워크 참여자가, 난수의 시드를 생성할 수 있다.
또한, 시드 생성 단계는, 네트워크 참여자들에게 공개된 값을 대표자의 개인 키로 서명하여, 난수의 시드를 생성할 수 있다.
그리고, 네트워크 참여자들에게 공개된 값은, 난수가 생성될 때마다 또는 특정 시간이 경과할 때마다 변경될 수 있다.
또한, 네트워크 참여자들에게 공개된 값은, 가장 최근에 생성된 난수가 몇 번째 생성된 난수인가에 대한 번호일 수 있다.
그리고, 시드 검증 단계는, 대표자의 개인 키로 서명한 공개된 값을 대표자의 공개 키로 복원한 후 공개된 값과 일치하는지 비교하여, 시드를 검증할 수 있다.
또한, 난수 생성 단계는, 네트워크 참여자들끼리 합의한 방식을 이용하여, 검증된 시드로부터 난수를 생성할 수 있다.
그리고, 본 발명의 실시예에 따른 난수 생성 방법은, 생성된 난수를 이용하여, 차기 대표자를 선정하는 단계;를 더 포함할 수 있다.
또한, 차기 대표자 선정 단계는, 네트워크 참여자들끼리 합의한 방식을 이용하여, 생성된 난수로부터 차기 대표자를 선정할 수 있다.
그리고, 차기 대표자 선정 단계는, 생성된 난수에 의해 지정되는 id를 갖는 네트워크 참여자를 차기 대표자를 선정할 수 있다.
또한, 본 발명의 실시예에 따른 난수 생성 방법은, 생성된 시드를 이용하여, 차기 대표자를 선정하는 단계;를 더 포함할 수 있다.
그리고, 시드 검증 단계는, 대표자로부터 직접 또는 다른 네트워크 참여자를 통해 수신된 시드를 검증할 수 있다.
또한, 네트워크 참여자들에 의해 구성되는 네트워크는, p2p 네트워크일 수 있다.
한편, 본 발명의 다른 실시예에 따른, 네트워크를 구성하는 난수 생성 시스템은, 네트워크를 구성하는 다른 난수 생성 시스템들과 통신하는 통신부; 및 난수의 시드를 생성하고, 생성된 시드를 검증하며, 검증된 시드를 기반으로 난수를 생성하는 프로세서;를 포함한다.
이상 설명한 바와 같이, 본 발명의 실시예들에 따르면, 분산 컴퓨팅 환경과 같은 p2p 네트워크에서 난수의 생성에 다수의 노드, 즉 네트워크 참여자들이 개입하여 검증이 가능함과 동시에 예측이 불가능한 난수를 생성할 수 있게 된다.
또한, 본 발명의 실시예들에 따르면, 생성된 난수를 활용하여 차기에 난수를 생성할 대표자를 선택함으로써, 주기적으로 시더를 변경하면서 시드를 생성할 수 있게 된다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 난수 생성 방법을 개략적으로 나타낸 도면,
도 2는 시드 생성 방법의 설명에 제공되는 흐름도,
도 3은 시드 검증, 난수 생성 및 대표자 선정 과정의 설명에 제공되는 흐름도,
도 4는 본 발명의 다른 실시예에 따른 난수 생성 시스템의 블럭도이다.
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술 되어 있는 상세한 설명을 통하여 더욱 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 난수 생성 방법을 개략적으로 나타낸 도면이다. 본 발명의 실시예에 따른 난수 생성 방법은 블록체인을 기반으로 하여, 도시된 바와 같이, 공개된 값(110)으로부터 서명된 값(120)을 생성하고, 서명된 값(120)으로부터 난수(130)를 생성하며, 생성된 난수(130)로부터 차기의 공개된 값(110)이 결정되는 과정을 반복한다.
구체적으로, 난수 생성을 위해, 먼저 공개된 값(110)을 대표자의 개인 키로 서명하여(S210), 서명된 값(120)을 얻는다, 다음, 서명된 값(120)을 시드(seed)로 하여 난수생성 알고리즘으로 난수(130)를 얻는다(S220). 그리고, 난수(130)를 기반으로 차기 대표자를 선정한다(S225).
공개된 값(110)은 네트워크 상에 공개된 어떤 값이다. 네트워크 참여자가 동일하게 공유하는 공개된 값이라면 어떤 값이든 가능하다. 예를 들어, 이 값은 가장 최근에 생성된 난수(130)가 몇 번째 생성된 난수인가에 대한 번호(이를 테면, 가장 최근에 생성된 난수(130)가 25번째 생성된 난수라면, 공개된 값(110)은 '25'가 됨)일 수 있다.
공개된 값(110)은 주기적으로 변경된다. 구체적으로, 도 1에 도시된 바와 같이, 난수(130)가 생성될 때마다 변경될 수 있음은 물론, 그 밖의 다른 방법, 이를 테면, 특정 시간이 경과할 때마다 주기적으로 갱신되는 타임스탬프에 의해 공개된 값(110)이 변경되도록 구현가능하다. 더 나아가, 그 밖의 다른 기법으로 공개된 값(110)이 주기적으로 변경되도록 할 수도 있다.
공개된 값(110)을 대표자의 개인 키로 서명하여 서명된 값(120)을 얻는다(S210). 대표자의 개인 키로 서명할 때 서명하는 방식은, 개인 키(private key)와 공개 키(public key)가 한 쌍(pair)를 이루어 비대칭 암호화(asymmetric cryptography) 방식으로써 올바르게 작동해야 한다. 예를 들어, 선출된 대표자는 최근 난수번호를 타원곡선전자서명알고리즘(Elliptic Curve Digital Signature Algorithm; ECDSA)으로 서명할 수 있다.
서명된 값(120)이 시드로 활용되어, 네트워크 참여자는 미리 정한 난수생성 알고리즘에 의하여 난수(130)를 생성한다(S220). 예를 들어, 메르센 트위스터 난수생성 알고리즘의 시드로써 서명된 값(120)을 활용할 수 있다.
생성된 난수(130)는 다음 난수 생성을 위한 차기 대표자를 선정하는 데 사용된다(S225). 예를 들어, 생성된 난수(130)를 통해 다음 대표자의 id를 지목할 수 있다.
도 1에 도시한 위 과정들은 반복적으로 수행된다. 예를 들어, 새로운 난수 생성 요청이 발생할 때 마다 위 과정들이 수행될 수 있다.
이하에서, 도 1에 도시된 공개된 값(110)을 대표자의 개인 키로 서명하여 서명된 값(120)을 시드로 생성하는 과정(S210)에 대해, 이하에서 도 2를 참조하여 상세히 설명한다. 도 2는 시드 생성 방법의 설명에 제공되는 흐름도이다. 시드 생성 과정(S210)은 선출된 대표자에 의해 수행된다.
도 2에 도시된 바와 같이, 공개된 값(110)을 대표자가 서명하기 위해서는, 우선 대표자 확인이 필요하다(S211). 대표자는 이전에 생성된 난수(즉, 가장 최근에 생성된 난수)에 의해 선정된다.
모든 노드들, 즉 네트워크 참여자들은 이전 난수 생성 과정에서 선정된 대표자가 자기 자신인지를 확인하는 과정을 거친다. 예를 들어, 이전에 난수를 생성할 때 생성된 난수가 '25'일 경우, 모든 네트워크 참여자들은 생성된 25가 자기 자신을 가리키는지 확인한다.
자신이 대표자가 아닌 것으로 확인되면(S211-N), 네트워크 참여자는 난수의 시드를 생성하지 않는다. 반면, 자신이 대표자인 것으로 확인되면(S211-Y), 네트워크 참여자는 공개된 값(110)을 대표자인 자신의 개인 키로 서명하여, 난수의 시드를 생성한다(S212). 즉, S212단계에서 대표자의 서명은 난수의 시드가 되는 것이다.
서명한 후에, 대표자는 서명된 값을 네트워크 내 다른 네트워크 참여자들에 전달한다(S213). 이 때 대표자는 난수를 검증하는 모든 참여자가 동일한 값을 받도록 전달해야 한다. 전달하는 방법은 네트워크 참여자끼리 미리 정한 방법으로 한다.
한편, 모든 참여자들이 대표자로부터 직접 전달받는 것 뿐만 아니라 다른 참여자에 의해 간접적으로 전달받는 것도 가능하다. 예를 들어, 대표자는 자신의 서명을 다른 참여자들에게 방송(broadcast)을 통해 일대일로 전달할 수도 있고, 가십(gossip)을 통해 여러 참여자들을 거쳐서 전달할 수도 있다.
이하에서는, 네트워크 참여가 난수의 시드를 검증하고 난수를 생성하는 과정(S220) 및 이후 차기 대표자를 선정하는 과정(S225)에 대해, 도 3을 참조하여 상세히 설명한다.
도 3은 시드 검증, 난수 생성 및 대표자 선정 과정의 설명에 제공되는 흐름도이다. 이 과정은 대표자로부터 시드를 전달받은 네트워크 참여자들에 의해 수행된다.
시드 검증 및 난수 생성을 위해, 먼저, 네트워크 참여자는 S213단계에서 전달된 대표자의 서명을 수신한다(S221). S221단계에서 수신한 서명은 검증 후에 난수를 생성할 시드로 역할 한다.
이후, 네트워크 참여자는 수신한 값을 대표자의 공개 키로 복호화한다(S222). 여기서 사용하는 공개 키는 도 2의 S212단계에서 이용한 개인 키와 짝을 이루어 비대칭 암호화 방식으로써 올바르게 동작해야 한다. 예를 들어, 대표자가 타원곡선전자서명을 이용하여 자신의 개인키로 서명했을 경우, 이는 대표자의 공개키로 복호화할 수 있어야 한다.
다음, 네트워크 사용자는 복호화한 값을 대표자가 서명하기로 한 공개된 값과 동일한지 비교하여 서명을 검증한다(S223). 이 과정은 대표자가 올바르게 난수의 시드를 생성했는지 검증하는 역할을 할 수 있다. 예를 들어, 대표자가 도 2의 과정을 무시하고 자신에게 유리하도록 난수의 시드를 네트워크에 전달했다면, 네트워크 참여자는 이를 복호화하고 공개된 값과 비교함으로써 해당 시드가 도 2의 과정으로 생성되지 않았음을 확인할 수 있다.
S222단계에서 복호화한 값이 대표자가 서명하기로 한 공개된 값과 다른 것으로 판단되면(S223-Y), 네트워크 참여자는 난수를 생성하지 않는다. 이 때, 네트워크 참여자는 대표자의 새로운 서명 수신을 대기할 수도 있다. 혹은 네트워크에 따라 새로운 대표자의 선출이 진행될 수도 있다.
반면, S222단계에서 복호화한 값이 대표자가 서명하기로 한 공개된 값과 같은 것으로 판단되면(S223-N), 네트워크 참여자는 대표자의 서명을 시드로 활용하여 난수를 생성한다(S224).
S224단계에서 사용하는 난수 생성 알고리즘은 해당 네트워크 참여자들끼리 동일하게 사용하도록 합의되어야 한다. 예를 들어, 대표자의 서명을 복호화 해서 '25'라는 값을 얻었고, 생성될 난수가 해당 네트워크에서 발생하는 25번째 난수라는 것을 확인했다면, 모든 네트워크 참여자는 메르센 트위스터 난수생성 알고리즘에 대표자의 서명을 시드로써 입력할 수 있다.
난수가 생성되면, 생성된 난수를 기반으로 차기 대표자가 선정된다(S225). 차기 대표자는 다음 난수를 생성할 때 대표자의 역할을 수행한다. 예를 들어, 대표자의 서명을 입력한 메르센 트위스터의 결과값이 '47'일 경우, 이 숫자는 차기 난수 생성시 대표자의 역할을 할 노드의 id를 가리킬 수 있다.
한편, 위 실시예에서, 차기 대표자 선정은 생성된 난수에 기반하는 것으로 구현하였는데, 변형이 가능하다. 이를 테면, 도 2의 S212단계에서 생성된 시드를 기반으로 차기 대표자를 선정하는 경우에도, 본 발명의 기술적 사상이 적용될 수 있음은 물론이다.
지금까지, 주기적 시더 계승을 이용한 p2p 네트워크 기반 검증 가능한 난수 생성 방법에 대해 바람직한 실시예를 들어 상세히 설명하였다. 이하에서는, 위 실시예에 따라 난수를 생성하는 p2p 네트워크를 구성하는 네트워크 참여자 단말인 난수 생성 시스템의 구성에 대해 도 4를 참조하여 상세히 설명한다.
도 4는 본 발명의 다른 실시예에 따른 난수 생성 시스템의 블럭도이다. 본 발명의 실시예에 따른 난수 생성 시스템은, 도 4에 도시된 바와 같이, 통신부(310), 출력부(320), 프로세서(330), 입력부(340) 및 저장부(350)를 포함하는 컴퓨팅 시스템으로 구현가능하다.
통신부(310)는 p2p 네트워크를 함께 구성하는 다른 네트워크 참여자 단말들과 통신하기 위한 수단이다. 출력부(320)는 연산 결과가 표시되는 디스플레이이고, 입력부(340)는 사용자 명령을 입력받기 위한 키보드, 마우스 등의 입력 수단이다.
프로세서(330)는 전술한 난수 생성 방법에 따라 난수를 생성함에 있어 필요한 절차들을 수행한다. 구체적으로, 대표자 모드에서 프로세서(330)는 공개된 값을 개인 키로 서명하여 시드를 생성하고, 생성한 시드를 통신부(310)를 통해 다른 네트워크 참여자들로 전달한다. 또한, 참여자(비대표자) 모드에서 프로세서(330)는 통신부(310)를 통해 시드를 수신하여 시드를 검증한다.
나아가, 프로세서(330)는 시드를 이용하여 난수를 생성하며, 생성된 난수를 기반으로 자신이 차기 난수 생성의 대표자인지 판단한다.
저장부(350)는 프로세서(330)가 기능하고 동작함에 있어 필요한 저장 공간을 제공한다.
지금까지, 난수 생성 방법 및 시스템에 대해 바람직한 실시예들을 들어 상세히 설명하였다.
본 발명의 실시예에서는, 중앙 서버가 존재하지 않는 탈중앙화된 네트워크에서 주기적으로 시더를 변경하며 시드를 생성하여 작동하는 난수 생성방법과 이를 검증하는 기법을 제시하였다.
이에 의해, 난수의 생성에 p2p 네트워크의 다수의 노드가 개입하여 검증이 가능함과 동시에 예측이 불가능한 난수를 생성할 수 있는데, 추첨에서부터 게임, 시뮬레이션, 통계분석 등 현재 난수가 사용되는 작업들을 모두 분산 컴퓨팅 환경에서 진행할 수 있다.
또한, 최근 각광받고 있는 블록체인 환경에서 블록을 생성할 대표자를 선정할 때 이용될 수도 있는데, 이 과정에서 발생한 난수는 균일하고 모든 네트워크 참여자에게 그 생성과정이 공개된다는 점에서 가치가 크다.
한편, 본 실시예에 따른 장치와 방법의 기능을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 등이 될 수 있음은 물론이다. 또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터간에 연결된 네트워크를 통해 전송될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
110 : 공개된 값
120 : 서명된 값
130 : 난수

Claims (14)

  1. 네트워크 참여자들 중 현재 대표자로 확인된 네트워크 참여자가, 난수의 시드를 생성하는 단계;
    현재 대표자를 제외한 네트워크 참여자들이, 생성된 시드를 검증하는 단계; 및
    현재 대표자를 제외한 네트워크 참여자들이, 검증된 시드를 기반으로 난수를 생성하는 단계;를 포함하고,
    차기 대표자는,
    생성된 난수를 기초로 선정되는 것을 특징으로 하는 난수 생성 방법.
  2. 청구항 1에 있어서,
    네트워크 참여자들이, 난수의 시드를 생성할 현재 대표자를 확인하는 단계;를 더 포함하는 것을 특징으로 하는 난수 생성 방법.
  3. 청구항 1에 있어서,
    시드 생성 단계는,
    네트워크 참여자들에게 공개된 값을 현재 대표자의 개인 키로 서명하여, 난수의 시드를 생성하는 것을 특징으로 하는 난수 생성 방법.
  4. 청구항 3에 있어서,
    네트워크 참여자들에게 공개된 값은,
    난수가 생성될 때마다 또는 특정 시간이 경과할 때마다 변경되는 것을 특징으로 하는 난수 생성 방법.
  5. 청구항 4에 있어서,
    네트워크 참여자들에게 공개된 값은,
    가장 최근에 생성된 난수가 몇 번째 생성된 난수인가에 대한 번호인 것을 특징으로 하는 난수 생성 방법.
  6. 청구항 3에 있어서,
    시드 검증 단계는,
    현재 대표자의 개인 키로 서명한 공개된 값을 현재 대표자의 공개 키로 복원한 후 공개된 값과 일치하는지 비교하여, 시드를 검증하는 것을 특징으로 하는 난수 생성 방법.
  7. 청구항 1에 있어서,
    난수 생성 단계는,
    네트워크 참여자들끼리 합의한 방식을 이용하여, 검증된 시드로부터 난수를 생성하는 것을 특징으로 하는 난수 생성 방법.
  8. 삭제
  9. 청구항 1에 있어서,
    차기 대표자는,
    네트워크 참여자들끼리 합의한 방식을 이용하여, 생성된 난수로부터 선정되는 것을 특징으로 하는 난수 생성 방법.
  10. 청구항 9에 있어서,
    차기 대표자는,
    생성된 난수에 의해 지정되는 id를 갖는 네트워크 참여자인 것을 특징으로 하는 난수 생성 방법.
  11. 네트워크 참여자들 중 현재 대표자로 확인된 네트워크 참여자가, 난수의 시드를 생성하는 단계;
    현재 대표자를 제외한 네트워크 참여자들이, 생성된 시드를 검증하는 단계;
    현재 대표자를 제외한 네트워크 참여자들이, 검증된 시드를 기반으로 난수를 생성하는 단계;를 포함하고,
    차기 대표자는,
    생성된 시드를 기초로 선정되는 것을 특징으로 하는 난수 생성 방법.
  12. 청구항 1에 있어서,
    시드 검증 단계는,
    현재 대표자로부터 직접 또는 다른 네트워크 참여자를 통해 수신된 시드를 검증하는 것을 특징으로 하는 난수 생성 방법.
  13. 청구항 1에 있어서,
    네트워크 참여자들에 의해 구성되는 네트워크는,
    p2p 네트워크인 것을 특징으로 하는 난수 생성 방법.
  14. 네트워크를 구성하는 난수 생성 시스템에 있어서,
    네트워크를 구성하는 다른 난수 생성 시스템들과 통신하는 통신부; 및
    난수의 시드를 생성하고, 생성된 시드를 검증하며, 검증된 시드를 기반으로 난수를 생성하는 프로세서;를 포함하고,
    차기 대표자는,
    생성된 난수를 기초로 선정되는 것을 특징으로 하는 난수 생성 시스템.
KR1020190132002A 2019-10-23 2019-10-23 주기적 시더 계승을 이용한 p2p 네트워크 기반 검증 가능한 난수 생성 방법 및 시스템 KR102372682B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190132002A KR102372682B1 (ko) 2019-10-23 2019-10-23 주기적 시더 계승을 이용한 p2p 네트워크 기반 검증 가능한 난수 생성 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190132002A KR102372682B1 (ko) 2019-10-23 2019-10-23 주기적 시더 계승을 이용한 p2p 네트워크 기반 검증 가능한 난수 생성 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20210048120A KR20210048120A (ko) 2021-05-03
KR102372682B1 true KR102372682B1 (ko) 2022-03-10

Family

ID=75910981

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190132002A KR102372682B1 (ko) 2019-10-23 2019-10-23 주기적 시더 계승을 이용한 p2p 네트워크 기반 검증 가능한 난수 생성 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102372682B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102553441B1 (ko) * 2021-09-30 2023-07-11 한국전력공사 경쟁입찰을 활용한 블록체인 네트워크의 대표자 및 후보자 선정 방법 및 블록체인 네트워크

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060251258A1 (en) * 2005-04-05 2006-11-09 Mcafee, Inc. System, method and computer program product for updating security criteria in wireless networks
KR100917996B1 (ko) * 2005-02-01 2009-09-18 (주)엠더블유스토리 특정한 성질을 가진 파일의 불법 유통차단 기능과 파일공유 추적 기능을 가지며, 합법적 파일 생산자와 파일 공유자들에게 차등적 수익 분배가 가능한 p2p 시스템 구현설계
WO2019046420A1 (en) 2017-08-29 2019-03-07 Robert Bosch Gmbh METHODS AND SYSTEMS FOR TRANSFER SECRET LINEAR KEY AGREEMENT USING UNSECURED SHARED COMMUNICATION MEDIUM

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100917996B1 (ko) * 2005-02-01 2009-09-18 (주)엠더블유스토리 특정한 성질을 가진 파일의 불법 유통차단 기능과 파일공유 추적 기능을 가지며, 합법적 파일 생산자와 파일 공유자들에게 차등적 수익 분배가 가능한 p2p 시스템 구현설계
US20060251258A1 (en) * 2005-04-05 2006-11-09 Mcafee, Inc. System, method and computer program product for updating security criteria in wireless networks
WO2019046420A1 (en) 2017-08-29 2019-03-07 Robert Bosch Gmbh METHODS AND SYSTEMS FOR TRANSFER SECRET LINEAR KEY AGREEMENT USING UNSECURED SHARED COMMUNICATION MEDIUM

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Li Lu 외 6명, Pseudo Trust: Zero-Knowledge Authentication in Anonymous P2Ps, IEEE TRANSACTION ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL.19, NO.10 (2008.10.)*

Also Published As

Publication number Publication date
KR20210048120A (ko) 2021-05-03

Similar Documents

Publication Publication Date Title
CN110971413B (zh) 一种随机数的生成方法、生成装置及存储介质
Baughman et al. Cheat-proof playout for centralized and distributed online games
US10797867B2 (en) System and method for electronic bidding
CN115660675A (zh) 由计算机设备执行的方法及相应系统和存储介质
KR20210135495A (ko) 블록체인 스마트 컨트랙트들에서 난수들을 발생하기 위한 방법
US20210111883A1 (en) Quantum tokens
US9276735B2 (en) Information processing apparatus, signature generation apparatus, information processing method, signature generation method, and program
CN113191863B (zh) 投标方法、第三方设备、发标方设备及投标方设备
JP2017157910A (ja) 電子抽選システム及び電子抽選方法
CN110505067A (zh) 区块链的处理方法、装置、设备及可读存储介质
CN110400162A (zh) 一种数据处理方法、装置、服务器及系统
JP2022538697A (ja) ブラインド識別情報を有する分散ネットワーク
KR102372682B1 (ko) 주기적 시더 계승을 이용한 p2p 네트워크 기반 검증 가능한 난수 생성 방법 및 시스템
US11729231B2 (en) Secure multi-party random bit generation
CN113282418A (zh) 一种模型聚合处理方法及装置
JP2019208140A (ja) 投票システム、投票中継サーバ、クライアント端末、投票方法、広告配信システム、及びプログラム
CN107277054A (zh) 一种数据完整性验证的方法及系统
KR20210045285A (ko) 양자 엔트로피 운용 서비스 시스템
CN107113305A (zh) 用于发送和验证签名的装置和方法
Simić et al. A review on generating random numbers in decentralised environments
US20180197362A1 (en) Method for generating winning numbers and apparatus
CN111429119B (zh) 区块链技术用于数字货币的加密、支付、查询和提交方法
US20240163115A1 (en) Communication devices for use in challenge-response rounds and corresponding operating methods
CN111435911B (zh) 一种在线多方安全数据处理方法及装置
CN116436621A (zh) 多等级网络会议加密通信方法、装置及系统

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right