KR20210126767A - 다중 소스 엔트로피 무작위성 집계 및 분배 네트워크 - Google Patents

다중 소스 엔트로피 무작위성 집계 및 분배 네트워크 Download PDF

Info

Publication number
KR20210126767A
KR20210126767A KR1020217030575A KR20217030575A KR20210126767A KR 20210126767 A KR20210126767 A KR 20210126767A KR 1020217030575 A KR1020217030575 A KR 1020217030575A KR 20217030575 A KR20217030575 A KR 20217030575A KR 20210126767 A KR20210126767 A KR 20210126767A
Authority
KR
South Korea
Prior art keywords
random number
sequence
entropy
random
tagged
Prior art date
Application number
KR1020217030575A
Other languages
English (en)
Other versions
KR102626613B1 (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 KR1020247001005A priority Critical patent/KR102667156B1/ko
Publication of KR20210126767A publication Critical patent/KR20210126767A/ko
Application granted granted Critical
Publication of KR102626613B1 publication Critical patent/KR102626613B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • 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
    • 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
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • H04L9/0858Details about key distillation or coding, e.g. reconciliation, error correction, privacy amplification, polarisation coding or phase coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Electromagnetism (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

양자 엔트로피 소스를 포함하고, 잠재적으로 다수의 출처 포인트에 위치되는 다수의 난수 소스로부터 제공되는 추적 기능하고 검증 가능한 난수 시퀀스를 생성하여, 분산 컴퓨팅 환경에서 다수의 최종 목적지로 다수의 채널 및 프로토콜에 걸쳐 검증 가능한 숫자 시퀀스를 분배할 수 있는 소프트웨어 및 하드웨어 인프라 스트럭처가 제공된다. 고유 엔트로피 소스로부터 획득된 난수 시퀀스는 각각의 숫자 시퀀스의 생성에 대한 출처 및/또는 기타 상세에 대한 정보로 태깅될(tagged) 수 있다. 태그는 각각의 태그드(tagged) 숫자 시퀀스 및/또는 이의 연관된 소스의 신뢰성을 검증하는데 사용될 수 있다. 또한, 태그는 태그드 숫자 시퀀스의 재사용을 방지하기 위한 사용 표시자(use indicator)를 포함할 수 있다.

Description

다중 소스 엔트로피 무작위성 집계 및 분배 네트워크
관련 출원에 대한 교차 참조
본 출원은 전체가 참조에 의해 본 명세서에 편입되는 2019년 2월 28일 출원된 미국 특허 출원 No. 16/288,722에 대한 우선권을 주장한다.
기술분야
본 출원은 일반적으로 난수 생성 및 분배에 관한 것으로, 특히, 양자 엔트로피 소스로부터 난수를 생성하고 난수를 외부 컴퓨팅 네트워크로 분배하는 것에 관한 것이다.
암호화 알고리즘, 과학적 모델 및 분석 도구와 같은 많은 컴퓨터화된 애플리케이션은 난수를 필요로 한다. 난수를 생성하기 위한 전통적인 접근 방식은 시드 입력(seed input)이 제공되고 시드 입력을 조작함으로써 이른바 "무작위(random)" 숫자(난수)를 생성하는 소프트웨어 알고리즘을 이용하는 것을 수반한다. 비무작위적 시드의 사용은 출발 바이어스(starting bias)를 알고리즘으로 주입한다. 또한, 시드를 조작하는 데 사용되는 복잡한 처리도 바이어스를 부여하며, 그 결과는 진정으로 무작위적인 숫자가 아니다. 난수 생성 소프트웨어 알고리즘의 바이어스된 출력에 주어진 이름은 "의사 난수(pseudo random number)"이며, 따라서, 이러한 알고리즘은 더욱 적합하게는 의사 난수 생성기(pseudo random number generator(PRNG))라 한다.
의사 난수가 이의 값을 예측하는 바이어스와 이로부터 유도된 임의의 양의 값을 가지기 때문에, 진정한 난수의 값을 예측하는 것이 훨씬 쉽다. 의사 난수가 컴퓨터화된 통신을 위하여 암호화 키를 생성하는 데 사용될 때, 결과적인 키는 진정한 무작위 소스로부터 생성된 키보다 크랙하기 더 쉽다. 수학 및 양자 컴퓨팅에서의 발전이 계속됨에 따라, PRNG는 많은 컴퓨터 보안 애플리케이션에 대하여 사용되지 않을 것으로 예상된다. 또한, 의사 난수가 과학적 실험을 검증하는 데 사용될 때, 바이어스가 오류를 야기할 수 있다.
PRNG와 연관된 단점 때문에, 난수를 필요로 하는 애플리케이션에 대하여 진정한 난수를 사용하는 것이 바람직하다. 진정한 난수는 현재 값이 시퀀스에서 어떠한 다른 숫자의 값에도 의존하지 않거나 그에 관련되지 않는 것이다; 즉, 숫자의 현재 값은 바어어스되지 않은 운(chance)에 의해서만 결정된다. 숫자의 값이 바이어스되지 않는다면, 특정 숫자가 나타날 가능성은 시간이 지나도 변하지 않을 것이다; 다른 말로 하면, 이는 항상 예측이 불가능할 것이다. 진정한 난수는 기본적으로 확률적 거동을 갖는 물리적 프로세스를 샘플링함으로써 생성될 수 있다. 이러한 물리적 프로세스는 제한된 수의 물리적 활동 또는 현상에서 비롯된다. 고전 물리학과 달리 양자 물리학이 기본적으로 무작위이기 때문에, 양자 엔트로피 소스가 난수 생성에 바람직하다. 그러나, 양자 엔트로피 소스에 대한 액세스는 현재 제한되어 있다. 또한, 단일 액세스 채널을 이용하는 단일 엔트로피 소스는 출력 무결성의 악용, 수정 및/또는 손상에 취약할 수 있다.
따라서, 양자 엔트로피와 같은 확률적인 물리적 프로세스를 기초로 생성된 난수 시퀀스에 대한 광범위한 액세스를 제공하는 시스템, 장치 및 방법에 대한 요구가 있다.
본 발명의 과제는 전술된 요구를 충족하는 시스템, 장치 및 방법을 제공하는 것이다. 일반적으로, 본 발명의 과제는 다수의 출처에 위치되는 난수 소스로부터 생성되는 난수 시퀀스 및 의사 난수 시퀀스를 생성하고, 분산 컴퓨팅 환경에서 다수의 최종 목적지로 다수의 채널 및 프로토콜에 걸쳐 숫자 시퀀스를 분배할 수 있는 소프트웨어 및 하드웨어 인프라 스트럭처를 제공하는 것이다. 일부 예에서, 엔트로피 소스를 포함하는 다수의 독립적이고 고유한 하드웨어 또는 소프트웨어 기반 소스로부터 생성된 숫자 시퀀스는 캐싱을 이용하거나 이용하지 않고 집계되어 다양한 채널 및 프로토콜을 통해 분배된다. 숫자 시퀀스는 각각의 숫자 시퀀스의 생성에 대한 출처 및/또는 기타 상세에 대한 정보와 조합되고 그리고/또는 이와 함께 전송될 수 있다. 이 정보는 각각의 숫자 시퀀스 및/또는 이의 연관된 소스의 신뢰성을 검증하는데 사용될 수 있다. 또한, 숫자 시퀀스의 재사용을 방지하기 위하여 사용 표시자(use identifier)가 숫자 시퀀스와 조합되고 그리고/또는 이와 함께 전송될 수 있다.
식별 가능한 난수 시퀀스를 분배하는 예시적인 방법은 특정 순서 없이 제시된 다음의 단계들 중 하나 이상을 포함할 수 있고, 방법은 여기에 포함되지 않은 추가 단계들을 포함할 수 있다. 하나 이상의 프로세서를 갖는 계산 시스템이 제공될 수 있다. 계산 시스템은 2개의 엔트로피 소스 및 외부 네트워크와 통신할 수 있다. 계산 시스템은 각각의 엔트로피 소스로부터 엔트로피 측정값을 나타내는 전기 신호를 수신하고, 전기 신호에 기초하여 난수 시퀀스를 생성하고, 각각 해당하는 엔트로피 소스와 연관된 식별자를 생성하고, 난수 시퀀스가 유래하는 엔트로피 소스에 기초하여 각각의 식별자를 난수 시퀀스에 할당하고, 그리고/또는 난수 시퀀스와 식별자를 외부 네트워크에 분배할 수 있다.
계산 시스템은 각각 식별자 중 하나를 포함하는 태그를 생성하고, 태그와 그 태그 내의 식별자와 연관된 난수 시퀀스를 포함하는 태그드(tagged) 난수 시퀀스를 생성하고, 그리고/또는 태그드 난수 시퀀스를 외부 네트워크에 분배할 수 있다. 하나의 엔트로피 소스로부터 유래하는 난수 시퀀스와 식별자의 일부 또는 전부는 집계 풀(aggregation pool)로 집계될 수 있고, 다른 엔트로피 소스로부터 유래하는 난수 시퀀스와 식별자의 일부 또는 전부는 다른 집계 풀로 집계될 수 있다. 집계 헤더 및 집계 시퀀스가 생성될 수 있고, 각각의 집계 시퀀스는 태그드 난수 시퀀스와 연결된 집계 헤더를 포함할 수 있다. 각각의 난수 시퀀스는 암호화, 캡슐화 및/또는 기타 수단에 의해 변환되어, 결과적으로 변환된 난수 시퀀스를 제공할 수 있다. 변환된 난수 시퀀스는 외부 네트워크로 분배될 수 있다.
계산 시스템은 2개의 엔트로피 소스 중 하나로부터 유래하는 난수 시퀀스에 대한 요청을 외부 컴퓨팅 네트워크로부터 수신할 수 있고, 계산 시스템은 요청된 엔트로피 소스와 연관된 식별자와 연관된 난수 시퀀스를 외부 네트워크에 제공할 수 있다. 계산 시스템은 이의 난수 시퀀스 및 식별자를 메모리에 저장하고, 요청된 난수 시퀀스를 메모리로부터 검색하고, 요청된 난수 시퀀스를 외부 네트워크에 제공할 수 있다.
계산 시스템은 식별자를 메모리에 저장할 수 있고, 각각의 엔트로피 소스와 연관된 식별자는 메모리 내의 데이터에 기초하여 생성될 수 있다. 식별자의 각각은, 각각의 난수 시퀀스가 고유 식별자와 연관되도록, 모든 다른 식별자로부터 구별 가능할 수 있다.
계산 시스템은 난수 시퀀스를 외부 컴퓨팅 네트워크에 분배하기 전에 저장하고, 단일 사용 분배를 용이하게 하기 위하여 이것이 단 한번 외부 네트워크로 분배된 후에 난수 시퀀스를 덮어쓰기(overwrite)할 수 있다. 대안적으로, 저장된 난수 시퀀스는 여러 번 외부 네트워크로 분배될 수 있다. 대안에 추가하여, 또는 다른 대안으로서, 난수 시퀀스의 단일 사용 또는 다중 사용을 용이하게 하기 위하여 각각 난수 시퀀스와 연관된 사용 표시자가 생성되어 해당하는 난수 시퀀스로 외부 네트워크로 분배될 수 있다.
예시적인 엔트로피 전달 시스템은 랜덤 전기 신호를 생성하기 위한 2개의 엔트로피 기기와, 랜덤 전기 신호를 처리하고 랜덤 전기 신호에 기초하여 식별된 난수 시퀀스를 분배하기 위한 계산 시스템을 포함한 수 있다. 각각의 엔트로피 기기는 자신의 엔트로피 소스를 가질 수 있고, 각각은 해당하는 엔트로피 소스의 물리적 프로세스에 기초하여 해당하는 랜덤 전기 신호를 생성할 수 있다. 계산 시스템은 엔트로피 기기로부터의 출력과 통신하는 하나 이상의 입력, 외부 네트워크와 통신하는 출력, 프로세서 및 다음을 포함하는 단계들을 실행하기 위하여 프로세서에 의해 실행될 수 있는 명령어를 갖는 메모리를 가질 수 있다: 각각의 해당하는 엔트로피 소스로부터의 전기 신호에 각각 기초하여 식별자를 생성하는 단계, 각각의 해당하는 엔트로피 소스로부터의 전기 신호에 기초하여 난수 시퀀스를 생성하는 단계 및 식별자와 난수 시퀀스를 나타내는 통신 신호를 외부 네트워크와 통신하는 출력에 제공하는 단계.
메모리는 대안적으로 또는 추가적으로 상기 예시적인 방법에서의 하나 이상의 단계를 수행하기 위하여 프로세서에 의해 실행될 수 있는 명령어를 포함할 수 있다.
메모리는 다음을 포함하는 단계들을 수행하기 위하여 계산 시스템의 프로세서에 의해 실행될 수 있는 추가 명령어를 포함할 수 있다: 각각의 식별자 내의 엔트로피 소스 데이터에 기초하여 난수 시퀀스 및 연관된 식별자를 별개의 집계 풀로 집계하는 단계, 각각 식별자를 포함하는 태그를 생성하는 단계, 각각의 태그를 난수 시퀀스와 연결하여 태그드 난수 시퀀스를 생성하는 단계, 집계 헤더를 생성하는 단계, 각각의 집계 헤더를 태그드 난수 시퀀스와 연결하여 집계된 난수 시퀀스를 생성하는 단계 및/또는 난수 시퀀스를 변환하여 변환된 난수 시퀀스를 생성하는 단계. 프로세서에 의해 제공된 통신 신호는 태그드 난수 시퀀스, 집계된 난수 시퀀스 및/또는 변환된 난수 시퀀스에 더 기초할 수 있다.
엔트로피 전달 시스템은 추가적으로 계산 시스템과 통신하는 식별자 메모리 저장소를 포함할 수 있다. 프로세서 명령어를 갖는 메모리는 식별자 메모리 저장소 내의 데이터에 기초하여 식별자를 생성하도록 프로세서에 의해 실행될 수 있는 명령어를 더 포함할 수 있다.
엔트로피 전달 시스템은 라우터와 대역 외(out of band) 관리 시스템을 포함할 수 있다. 대역 외 관리 시스템은 계산 시스템과 통신하는 2개의 엔트로피 기기 중 하나를 포함할 수 있고, 대역 외 관리 시스템의 엔트로피 기기는 라우터를 통해 계산 시스템과 통신할 수 있다.
예시적인 분산 컴퓨팅 환경은 랜덤 분배 서비스 엔진과 제어 시스템을 포함할 수 있다. 랜덤 분배 서비스 엔진은 엔트로피 소스로부터 전기 신호를 수신하기 위한 입력, 프로세서 및 다음의 단계들을 실행하도록 프로세서에 의해 실행될 수 있는 명령어를 갖는 메모리를 포함할 수 있다: 상이한 엔트로피 소스로부터 유래하는 전기 신호를 구별하는 단계 및 각각 전기 신호로부터 유도되고 각각 엔트로피 소스와 연관된 태그를 포함하는 태그드 난수 시퀀스를 생성하는 단계. 제어 시스템은 외부 네트워크와 연결될 수 있고, 프로세서 및 다음의 단계들을 실행하도록 프로세서에 의해 실행될 수 있는 명령어를 갖는 메모리를 포함할 수 있다: 요청된 엔트로피 소스에 대하여 난수 시퀀스에 대해 외부 네트워크로부터 요청을 수신하는 단계, 랜덤 분배 서비스의 프로세서에 의해 실행될 때 랜덤 분배 서비스가 요청된 엔트로피 소스를 나타내는 태그를 갖는 태그드 난수 시퀀스를 제공하게 하는 명령어를 랜덤 분배 서비스에 제공하는 단계, 랜덤 분배 서비스로부터 요청된 태그드 난수 시퀀스를 수신하는 단계 및 요청된 태그드 난수 시퀀스를 외부 네트워크로 전송하는 단계.
랜덤 분배 서비스 엔진의 메모리는 다음의 단계들을 실행하도록 엔진의 프로세서에 의해 실행될 수 있는 명령어를 가지 수 있다: 태그드 난수 시퀀스 조합과, 태그드 난수 시퀀스 조합을 나타내는 데이터를 갖는 집계 헤더를 각각 포함하는 집계 시퀀스를 생성하는 단계. 제어 시스템의 메모리는 다음의 단계들을 실행하도록 제어 시스템의 프로세서에 의해 실행될 수 있는 명령어를 가지 수 있다: 외부 네트워크로부터 특정 난수 시퀀스 조합에 대한 요청을 수신하는 단계, 랜덤 분배 서비스가 요청된 특정 난수 시퀀스 조합을 나타내는 집계 시퀀스를 제공하게 하도록 서비스의 프로세서에 의해 실행될 수 있는 실행 가능한 명령어를 랜덤 분배 서비스에 전송하는 단계, 랜덤 분배 서비스로부터 요청된 집계 시퀀스를 수신하는 단계 및 요청된 집계 시퀀스를 외부 네트워크에 전송하는 단계.
분산 컴퓨팅 환경은 전기 신호를 랜덤 분배 서비스에 제공하는 적어도 하나의 양자 엔트로피 소스를 더 포함할 수 있다.
예시적인 엔트로피 시스템 노드는 엔트로피 소스, 엔트로피 인터페이스, 식별자 엔진 및 분배 엔진을 포함할 수 있다. 엔트로피 소스는 물리적 엔트로피 프로세스를 나타내는 전기 신호를 제공할 수 있다. 엔트로피 인터페이스는 전기 신호에 기초하여 랜덤 비트 스트림을 제공할 수 있다. 식별자 엔진은 랜덤 비트 스트림에 기초하고 엔트로피 소스를 나타내는 정보를 포함하는 태그드 난수를 제공할 수 있다. 분배 엔진은 태그드 난수 시퀀스에 기초하여 검증 가능한 난수 시퀀스를 외부 네트워크에 제공할 수 있다. 엔트로피 시스템 노드는 휴대 전화기, 태블릿 컴퓨터, 랩탑 컴퓨터 등과 같은 휴대용 장치일 수 있다. 엔트로피 시스템 노드는 태그드 난수 시퀀스와 하나 이상의 추가 난수 시퀀스를 포함하는 집계된 난수 시퀀스를 제공할 수 있는 집계기 엔진을 더 포함할 수 있고, 검증 가능한 난수 시퀀스는 집계된 난수 시퀀스에 기초할 수 있다.
엔트로피 시스템 노드는 제2 엔트로피 소스를 갖는 제2 엔트로피 시스템 노드와 외부 네트워크를 통해 통신할 수 있다.
다른 예시적인 엔트로피 시스템 노드는 랜덤 데이터 시퀀스가 저장된 메모리, 식별자 엔진 및 분배 엔진을 포함할 수 있다. 식별자 엔진은 랜덤 데이터 시퀀스에 기초하는 난수와 엔트로피 시스템 노드를 식별하는 태그를 포함하는 태그드 난수 시퀀스를 제공할 수 있다. 분배 엔진은 태그드 난수 시퀀스에 기초하여 검증 가능한 난수 시퀀스를 외부 네트워크에 제공할 수 있다.
엔트로피 시스템 노드는 센서 데이터를 제공하는 센서와, 센서 데이터를 암호화하여 암호화된 센서 데이터를 외부 네트워크에 전달할 수 있는 암호화 엔진을 더 포함할 수 있다. 센서 데이터는 검증 가능한 난수 시퀀스가 센서 데이터를 암호 해독 및/또는 암호화하기 위한 단계에서 사용되도록 검증 가능한 난수 시퀀스에 기초하여 암호화 엔진에 의해 암호화될 수 있다.
본 발명의 전술한 양태 및 추가 양태는 다양한 도면에서 유사한 도면 부호가 유사한 구성 요소 및 특징을 나타내는 첨부된 도면과 함께 이어지는 설명을 참조하여 논의될 것이다. 도면은 반드시 축적에 맞을 필요는 없으며, 대신에 본 발명의 원리를 나타냄에 따라 강조될 수 있다. 도면들은 본 발명의 장치의 하나 이상의 구현예를 한정이 아니라 단지 예시로서만 도시한다.
도 1은 본 발명의 양태에 따라 검증 가능한 난수 시퀀스의 생성 및 전송과, 이를 위한 예시적인 시스템 컴포넌트, 기능 블록 및 데이터 구조를 도시하는 순서도이다;
도 2는 본 발명의 양태에 따라 난수 시퀀스를 추적하고 최종 사용자에게 전달하기 위한 예시적인 데이터 구조를 도시하는 블록도이다;
도 3은 본 발명의 양태에 따라 검증 가능한 난수 시퀀스를 생성하여 최종 사용자에게 전송하기 위한 시스템 또는 시스템 노드의 예시적인 시스템 컴포넌트 및 기능 블록을 도시하는 블록도이다;
도 4는 본 발명의 양태에 따라 난수 시퀀스의 집계, 처리 및 분배를 제어하기 위한 시스템 또는 시스템 노드의 예시적인 시스템 컴포넌트 및 기능 블록을 도시하는 블록도이다;
도 5는 본 발명의 양태에 따라 소외(off site) 엔트로피 소스와 통신하고 단말 서비스에 의해 요청된 바에 따라 난수 시퀀스를 생성하여 단말 서비스에 제공하는 시스템의 예시적인 시스템 컴포넌트 및 기능 블록을 도시하는 블록도이다;
도 6은 본 발명의 양태에 따른 다수의 랜덤 서비스 분배 노드를 포함하는 예시적인 시스템의 블록도이다; 그리고,
도 7은 본 발명의 양태에 따른 다수의 가상 및 물리적 엔트로피 소스와 통신하는 가상 관리 랜덤 분배 시스템을 도시하는 블록도이다.
이하, 다음의 두문자가 본 명세서에서 사용될 것이다:
API Application Program Interface(애플리케이션 프로그램 인터페이스)
CaaS Cryptography as a Service(서비스로서의 암호화)
PRNG Pseudo Random Number Generator(의사 난수 생성기)
RaaS Randomness as a Service(서비스로서의 무작위성)
REST Representational State Transfer(표현 상태 변경)
컴퓨터 및 수학에서의 발전이 현재 결정론적 소스 및/또는 낮은 엔트로피 소스에 의해 생성된 의사 랜덤 및 난수에 의존하는 컴퓨터 보안 시스템을 구식으로 만들 것으로 예상되기 때문에, 제조업체, 소프트웨어 개발자 및 서드 파티 통신 제공자는 암호화를 위한 이러한 소스에 대한 의존을 줄이려고 할 것으로 예상된다. 따라서, 본 발명의 목적은 응용 프로그램 인터페이스(API) 및 기타 인터페이스를 통해 주문형 양자 엔트로피 소스를 포함하는 엔트로피 소스로부터 고품질의 검증 가능한 난수에 대한 액세스를 제공하는 것이다.
IaaS(Infrastructure as a Service), SaaS(Software as a Service) 등과 같은 클라우드 컴퓨팅 및 연관된 기술의 개념은 RaaS(Randomness as a Service) 및 CaaS(Cryptography as a Service)를 포함하도록 확장될 수 있다. 양자 소스 및 CaaS로부터의 RaaS의 가용성은 원칙적으로 기존의 많은 암호 시스템을 깨뜨릴 수 있는 양자 컴퓨터의 출현으로 인해 유래 없이 중요할 것으로 예상된다. 양자 엔트로피는 진정한 난수가 검증 가능하게 추출할 수 있는 진정한 확률론적 프로세스이며 EaaS(Entropy as a Service)로서 정확하게 설명될 수 있다.
일부 예에서, 프로세서 및 프로세서에 의해 실행될 때 프로세서가 엔트로피로부터 난수를 조작, 기록, 확장 및 집계하고, 이러한 집계된 난수에 고유 식별자를 할당하고, 집계된 난수를 메모리에 저장하고, 집계된 난수를 단일 장치(예를 들어, 모바일 또는 현장 배포 장치(field deployed device) 내의 시스템 온 칩)에 분배하거나 네트워크를 걸쳐 분배하는 것을 포함하는 다양한 작업을 수행할 수 있는 컴퓨터 실행 가능 명령을 저장하는 메모리를 포함할 수 있는 컴퓨터 시스템이 제공될 수 있다. 이러한 컴퓨터 시스템 중 몇몇은 물리적이거나 가상화될 수 있는 개별 노드들의 더 큰 네트워크 구조를 형성하는 시스템 그룹으로 집합될 수 있다. 현재, 많은 모바일 및 현장 배포 장치는 가상화된 노드 역할을 하기에 충분한 컴퓨팅 성능을 가지고 있으며, 기술이 발전함에 따라 모바일 및 현장 배포 장치가 독립형 RaaS의 역할 또는 RaaS 내의 노드 역할을 할 수 있도록 물리적 엔트로피 소스를 시스템 온 칩 또는 기타 소형 폼 팩터 회로에 통합하는 것이 가능하고 비용 효율적으로 될 것이라고 예상된다. 컴퓨터 시스템은 수많은 네트워크 프로토콜을 통한 난수 시퀀스의 전송과 고정 또는 모바일 장치에서 API를 통한 최종 사용자의 난수 시퀀스의 액세스를 용이하게 할 수 있다. 일부 예에서, 난수는 장치 내에서 독점적으로 안전하게 소비되거나 저장될 수 있어, 다른 장치 또는 사용자에 대한 난수의 액세스를 방지한다.
일부 예에서, 컴퓨터 시스템 및/또는 더 큰 네트워크 인프라 스트럭처는 각각의 특정 엔트로피 소스의 종단간(end-to-end) 추적 및 검증과 난수 시퀀스에 대하여 엔트로피를 생성하는 방법을 가능하게 할 수 있다. 소스 식별자가 각각의 생성된 무작위 시퀀스에 할당될 수 있어, 애플리케이션에서의 이의 사용을 위한 프로세스 차별화를 가능하게 한다. 일부 예에서, 물리적 하드웨어는 단일 노드에서 혼합 및 매칭되어 사용자 정의 가능한 애플리케이션 요구 사항에 대한 랜덤 시퀀스의 추가 변형을 생성할 수 있다. 예를 들어, 2 이상의 소스를 갖는 시퀀스는 소스 식별자를 이용하거나 이용하지 않고 인터리빙될 수 있다.
일부 예에서, 중앙 집중화된 저장소 및 분산 노드는 각각의 랜덤 시퀀스에 큰 고유 식별자를 할당할 수 있다. 이 중앙 집중화 특징은 난수가 다른 곳에서 복제되지 않고 단일 저장 위치, 어드레스 또는 사용자 종단점(endpoint)으로 전달되는 것을 보장할 수 있다. 다수의 종단점을 동시에 서비스하는 동안, 중앙 집중화된 특징은 동일한 캐시 또는 저장 매체에 액세스하는 데 서로 다른 네트워크 프로토콜이 사용되는 경우에도 동일한 랜덤 시퀀스를 2 이상의 종단점에 노출시키는 위험을 줄이거나 없앨 수 있다. 선택적 캐시와 병행하여, 서비스 레벨은 랜덤 시퀀스 분배 및 제공을 보장할 수 있다.
일부 예에서, 각각의 무작위 시퀀스가 자신의 내부 일관성 검사(consistency check), 식별 정보 및/또는 소스 식별자를 전달할 수 있기 때문에, 단순히 서버를 추가하여 다중 노드 분배(수평 확장)로의 확장이 달성될 수 있다. 이 모델은 노드 간 충돌 없이 추가 시스템 노드를 추가하여 다양한 요구를 충족하도록 맞춤 생성된 난수 시퀀스로 확장 가능할 수 있다.
일부 예에서, 컴퓨터에 의해 수행되는 방법은 고유 엔트로피 소스에 직접 액세스하고 특정 랜덤 스트림 또는 블록을 추출하는 것을 또한 포함할 수도 있다. 특정 랜덤 스트림 또는 블록은 최종 사용자로의 분배 전에 간헐적으로 저장되거나 캐싱될 수 있다. 캐싱 전에 자매 노드 및 네트워크로부터의 외부 소스의 조합으로부터 랜덤 스트림 또는 블록이 생성될 수 있다. 랜덤 스트림 또는 블록을 조합 및/또는 캐싱하기 위한 프로세스는 가상화된 환경 또는 네트워크로 확장 가능할 수 있고, 클라우드 네트워크에서 배치될 수 있다.
도 1은 검증 가능한 난수 시퀀스를 생성하여 최종 사용자에게 전송하기 위한 예시적인 시스템 컴포넌트, 기능 블록 및 데이터 구조를 도시하는 순서도이다. 개략적으로, 본 명세서에서의 예시적인 시스템은 네트워크(10)를 통해 최종 사용자(20)에게 검증 가능한 난수 시퀀스(155)를 전달할 수 있는 RaaS(Randomness as a Service) 제공자 시스템(100)을 포함한다. RaaS(100)는 엔트로피 측정값(115을 생성하기 위한 엔트로피 소스 기능 블록(110)과, 엔트로피 측정값(115)을 랜덤 비트 스트림(125)으로 변환하기 위한 엔트로피 인터페이스 기능 블록(120)과, 랜덤 비트 스트림(125)을 태그드(tagged) 랜덤 시퀀스(135)로 변환하기 위한 식별자 엔진 기능 블록(130)과, 태그드 랜덤 시퀀스(135)를 집계 랜덤 시퀀스(145)로 조합하기 위한 집계기 엔진 기능 블록(140)과, 집계 랜덤 시퀀스를 변환하여 네트워크(10)를 통해 최종 사용자(20)로 안전하게 전송될 수 있는 변환된 랜덤 시퀀스(155)를 생성하기 위한 분배 엔진 기능 블록(140)과, 기능 블록들의 일부 또는 전부에 명령을 제공할 수 있는 컨트롤러 기능 블록(160)을 포함할 수 있다. 이들의 각각은 아래에서 더 상세히 논의될 것이다.
RaaS 제공자 시스템(100), 네트워크(10) 및 최종 사용자 시스템(20)은 단일 사이트에서 지리적으로 위치되는 단일 계산 장치 또는 기기 내(예를 들어, 슈퍼 컴퓨터의 노드들 사이, 모바일 개인 전자 장치 내 또는 전송 센서 내)에 제한될 수 있거나, RaaS 제공자 시스템(100)은 인터넷 또는 기타 이러한 네트워크를 통해 통신하는 다수의 이질적인 지리적 위치에 위치된 다수의 계산 장치 또는 기기를 포함할 수 있다. 당해 업계에서의 통상의 기술자에 의해 인식되고 이해되는 바와 같이, 본 명세서에 제시된 다른 예시적인 RaaS 시스템, 기능 블록 및 시스템 노드는 유사하게 제한되거나 분산될 수 있다. 도 1에 도시된 각각의 기능 블록은 단일 하드웨어 컴포넌트 또는 소프트웨어 모듈이나, 유사하고, 동일하고 그리고/또는 조직화된 기능을 갖는 복수의 하드웨어 컴포넌트 및/또는 소프트웨어 모듈을 나타낼 수 있다. 네트워크(10)는 인터넷과 같은 외부 네트워크, 조직 내부의 네트워크, 단일 장치 내의 연결 등일 수 있다. 네트워크는 보안되거나 보안되지 않을 수 있다. 최종 사용자 시스템(20)은 난수 시퀀스를 수신하고 난수 시퀀스를 최종 사용자에게 제공할 수 있는 시스템일 수 있다.
엔트로피 소스 기능 블록(110)은 단일 엔트로피 소스 또는 하나 이상의 엔트로피 소스의 조합을 포함할 수 있다. 또한, 엔트로피 소스 기능 블록(110)은 하나 이상의 비엔트로피 소스를 포함할 수 있다. 엔트로피 소스 기능 블록(110)은 하나 이상의 양자 엔트로피 소스 및/또는 하나 이상의 비양자 엔트로피 소스를 포함할 수 있다. 엔트로피 소스 기능 블록(110)은 출력으로서 엔트로피 측정값(115)을 생성할 수 있다. 엔트로피 측정값(115)은 하나 이상의 전기 신호일 수 있고, 각각의 전기 신호는 엔트로피 소스 기능 블록(110)에서의 엔트로피 소스 내의 엔트로피 때문에 발생하는 확률적인 물리적 현상을 나타내거나 적어도 부분적으로 이에 기초할 수 있다. 양자 엔트로피 소스의 예는, 붕괴하는 방사성 기질(decaying radioactive substrate), 위상 융합(phased fusion), 헤테로다인(heterodyne) 및 호모다인(homodyne) 검출, 광자 번칭(photon bunching) 및 장치 독립성을 포함하지만 이에 한정되지 않는다. 비양자 엔트로피 소스의 예는, 저항기 또는 반도체 다이오드로부터의 열 잡음 및 자유 작동 발진기의 주파수 불안정성을 포함하지만 이에 한정되지 않는다.
엔트로피 인터페이스 기능 블록(120)은 각각이 엔트로피 측정값(115)으로부터 하나 이상의 전기 신호를 수신하기 위한 입력, 각각의 전기 신호를 샘플링하고 디지털화하기 위한 전기 회로 및 각각 엔트로피 측정값(115)을 나타내거나 이에 적어도 부분적으로 기초하는 하나 이상의 랜덤 비트 스트림(125)을 제공하기 위한 출력을 갖는 하나 이상의 하드웨어 컴포넌트를 포함할 수 있다. 각각의 하드웨어 컴포넌트는 하나 이상의 엔트로피 소스와 연관될 수 있고; 따라서, 엔트로피 소스 기능 블록(110)이 다수의 엔트로피 소스를 포함하는 경우, 엔트로피 인터페이스 기능 블록(120)은 다수의 하드웨어 컴포넌트를 포함할 수 있다.
엔트로피 소스 기능 블록(110) 및 엔트로피 인터페이스 기능 블록(120)은 하나 이상의 엔트로피 기기에 의해 총괄적으로 실현될 수 있다.
엔트로피 인터페이스 기능 블록(120)으로부터 출력된 랜덤 비트 스트림 또는 스트림들(125)은 식별자 엔진 기능 블록(130)에 대한 입력으로서 제공될 수 있다. 식별자 엔진 기능 블록(130)은 인터페이스 기능 블록(120)의 하나 이상의 하드웨어 컴포넌트로부터 랜덤 비트 스트림 또는 스트림들(125)을 수신함에 따라, 랜덤 비트 스트림을 엔트로피 소스 기능 블록(110)으로부터의 소스와 연관시키고 원시 랜덤 비트 스트림(125)에 기초하고 연관된 소스에 관련된 데이터를 포함하는 태그드 랜덤 시퀀스(135)를 생성할 수 있는 하나 이상의 계산 장치를 포함할 수 있다. 식별자 엔진 기능 블록(120)의 계산 장치의 예는 범용 컴퓨터, 서버, FPGA(Field Programmable Gate Array), 프로세서 어레이, 네트워크 어레이, 전용 ASIC(Applications Specific Integrated Circuit), 가상 기계(Virtual Machine(VM)) 등을 포함할 수 있지만 이에 한정되지 않는다.
일부 예에서, 컴퓨팅 환경에서의 변동 및 신뢰를 지원하기 위해, 각각의 난수 스트림에 대하여 사용되는 태깅(tagging) 및 파라미터의 양은 분배 프로세스 전반에 걸쳐 다양한 시점에서 조정되거나 첨부될 수 있다. 예시적인 구현에서, 헤더 및/또는 다른 식별자를 포함하는 난수 시퀀스가 그룹 내의 사용자에게 전송될 수 있으며, 각각의 사용자는 상이한 레벨의 보안 액세스를 가진다. 낮은 레벨의 액세스 권한을 가진 사용자는 난수에서의 자릿수들(digit) 중 일부에만 액세스할 수 있고, 슈퍼 사용자는 전체 난수에 액세스할 수 있다. 난수 시퀀스에서의 헤더 및/또는 기타 식별자는 사용자의 클리어런스(clearance) 레벨을 결정하는 데 사용될 수 있다.
식별자 엔진 기능 블록(130)의 계산 장치는 캐시 저장소(138)와 통신할 수 있다. 캐시 저장소(138)는 식별자의 저장소 역할을 할 수 있다. 일부 예에서, 캐시 저장소(138)는 식별자 엔진 기능 블록(130) 내의 계산 장치들에 의해 사용될 식별자의 글로벌 디렉토리를 포함할 수 있다. 식별자 엔진 기능 블록(130) 내의 계산 장치들의 일부 또는 전부는 글로벌 디렉토리를 유지 관리하기 위해 조직화 채널(coordination channel)을 통해 서로 통신할 수 있다. 글로벌 디렉토리는 난수 블록 또는 난수 스트림의 충돌 회피 및 중앙 집중화된 목록 작성(cataloging)의 지점 역할을 할 수 있다.
식별자 엔진 기능 블록(130)으로부터 출력된 태그드 랜덤 시퀀스(135)는 집계기 엔진 기능 블록(140)에 대한 입력으로서 제공될 수 있다. 집계기 엔진 기능 블록(140)은, 태그드 랜덤 비트 시퀀스(135)를 수신한 것에 따라, 태그드 랜덤 시퀀스(135)를 분배를 위한 준비를 위해 집계 풀(aggregation pool)로 정렬할 수 있는 하나 이상의 계산 장치를 포함할 수 있다. 집계 풀은 캐시(148)와 같은 물리적 메모리 저장소 또는 가상 메모리 저장소에서 개별 카테고리로 분할될 수 있다. 집계 카테고리의 예는 다음을 포함하지만 이에 한정되지 않는다: 차별화되지 않은 비양자 고유 태그드 난수, 차별화되지 않은 양자 고유 태그드 난수, 단일 소스로부터의 동일한 태그를 갖는 차별화된 양자 고유 태그드 난수, 다수의 소스로부터의 동일한 태그를 갖는 차별화된 양자 고유 태그드 난수, 단일 소스로부터의 동일한 태그를 갖는 차별화된 양자 및 비양자 고유 태그드 난수, 단일 소스로부터의 동일한 태그를 갖는 차별화되지 않고 인터리빙된 양자 및 비양자 태그드 난수 및 이들의 기타 순열(permutation).
집계 랜덤 시퀀스(145)는 분배 엔진 기능 블록(150)에 의해 수집될 수 있다. 분배 엔진 기능 블록(150)은 각각 네트워크 서버, 데이터 스토리지, 인터넷 액세스 장치 및 장비 등과 같은 네트워크 제공(provisioning) 하드웨어를 포함하는 하나 이상의 네트워크 제공 시스템을 포함할 수 있다. 분배 엔진 기능 블록(150)은 태그드 랜덤 시퀀스(135) 및/또는 집계 랜덤 시퀀스(145)를 네트워크(10)를 통한 최종 사용자 시스템(20)으로의 전송을 위한 검증 가능한 랜덤 시퀀스(155)로 변환 및 분배할 수 있는 무작위성 서비스 제공 계층의 역할을 할 수 있다. 분배 엔진 기능 블록(150)은 네트워크 요구 사항 및 최종 사용자 요구 사항을 충족하기 위해 RESTful 아키텍처, 명시된 서비스, 스트리밍 서비스 등과 호환 가능하도록 난수 시퀀스를 변환할 수 있다.
제어 기능 블록(160)은 하나 이상의 컨트롤러를 포함할 수 있고, 각각의 컨트롤러는 하나 이상의 프로세서를 갖는다. 일부 예에서, 엔트로피 소스 기능 블록(110)이 다수의 엔트로피 소스를 가지고, 엔트로피 인터페이스 기능 블록(120)이 다수의 하드웨어 컴포넌트를 가지고, 식별자 엔진 기능 블록(130)이 다수의 컴퓨팅 장치를 가지고, 집계기 엔진(140)이 다수의 컴퓨팅 장치를 가지고 그리고/또는 분배 엔진(150)이 다수의 네트워크 제공 장치를 가지더라도, 제어 기능 블록(160)은 단일 제어 유닛을 포함할 수 있고, 단일 제어 유닛이 RaaS 제공자 시스템(100)의 난수 생성, 태깅, 집계 및 분배 활동을 조직화하는 명령을 제공할 수 있다. 대안적으로, RaaS 제공자 시스템(100)은 다수의 노드를 포함할 수 있고, 각각의 노드는 하나 이상의 컨트롤러를 가질 수 있으며, 각각의 노드는 기능 블록들(110, 120, 130, 140, 150, 160)의 일부 또는 전부의 기능을 수행하기 위한 하드웨어 및/또는 소프트웨어를 가질 수 있다. 또한, 제어 기능 블록(160)은 마스터 컨트롤러가 개별 노드의 컨트롤러와 통신할 수 있고 각각의 노드의 활동들을 조직화하는 역할을 할 수 있도록 제어 계층을 포함할 수 있다.
제어 기능 블록(160)에서의 컨트롤러들의 일부 또는 전부는 네트워크(10)를 통해 최종 사용자 시스템(20)과 통신할 수 있다. 최종 사용자 시스템(20)은 제어 기능 블록(160)에 정보 및/또는 요청을 제공할 수 있고, 기능 블록(160)은 최종 사용자 시스템(20)에 최종 사용자 및 최종 사용자 시스템(20)의 요구 사항 및/또는 요청을 충족하는 검증 가능한 난수 시퀀스(155)가 제공되도록 RaaS 제공자 시스템(100)의 다른 기능 블록들(110, 120, 130, 140, 150)의 일부 또는 전부의 활동을 조직화할 수 있다.
네트워크(10)는 무선 전송, 자유 공간 광 전송, 음향 전송, 광섬유 전송, 유선 네트워크 전송 등을 포함하는 다수의 전송 수단 중 하나 이상을 포함할 수 있다. 또한, 네트워크(10)는 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 네트워크(10)는 인터넷 프로토콜, 무선 네트워크 프로토콜, 네트워크 라우팅 프로토콜 등과 같은 네트워크 프로토콜 또는 통신 표준에 기초하여 데이터 트래픽을 지향시킬 수 있다.
최종 사용자 시스템(20)은 검증 가능한 랜덤 시퀀스(155)를 수신하고, 검증 가능한 랜덤 시퀀스(155)를 해독, 분해(decapsulate) 또는 변환하고, 랜덤 시퀀스에 첨부되거나 이와 연관된 태그 및/또는 헤더에 기초하여 랜덤 시퀀스를 검증하고, 최종 사용 애플리케이션을 위하여 랜덤 시퀀스를 활용하기 위한 계산 장치 및/또는 시스템을 포함할 수 있다.
일부 예에서, RaaS 시스템(100)의 각각의 기능 블록(110, 120, 130, 140, 150, 160)은 상이한 장치 상에서, 상이한 위치에서 그리고/또는 상이한 소유자에 의해 실행될 수 있다. 다양한 네트워크 연결을 통해 별도의 장치들 사이에서 엔트로피 측정값(115), 랜덤 비트 스트림(125), 태그드 난수 시퀀스(135), 집계 랜덤 시퀀스(145)의 전송을 용이하게 하기 위해 추가적인 네트워크 분배 계층이 RaaS 시스템(100)에 추가될 수 있다.
일부 예에서, RaaS 시스템(100)이 최종 사용자 시스템의 집계 방식에 대한 가시성을 갖지 않도록 최종 사용자 시스템(20)에서 집계가 발생하는 것이 유리할 수 있으며, 이에 따라 최종 사용자 시스템(20)에서 비밀성(secrecy)이 증가한다. 이러한 예에서, RaaS 시스템(100)은 집계기 엔진 기능 블록(140)을 가질 필요가 없다.
일부 예에서, RaaS 시스템의 각각의 기능 블록(110, 120, 130, 140, 150, 160)은 모바일 장치에 통합될 수 있다. 현재, 휴대 전화, 테이블, 랩톱 등과 같은 대부분의 모바일 개인 전자 장치는 - 하드웨어 엔트로피 소스로부터 난수를 수신하고 수신된 난수를 재조합하여 새로운 난수 시퀀스를 생성하는 - 가상 엔트로피 소스 역할을 하기에 충분한 네트워크 연결성 및 컴퓨팅 성능을 가지고 있다. 하드웨어 양자 엔트로피 소스가 집적 회로에 집적되기가 더 쉬워짐에 따라, 양자 엔트로피 하드웨어를 포함하는 기능 블록(110, 120, 130, 150, 160)이 휴대 가능한 크기의 모바일 개인 전자 장치에 통합될 수 있는 시스템 온 칩 또는 기타 소형 폼 팩터 회로로서 집적될 수 있다는 것이 고려된다. 하드웨어 엔트로피 소스(110) 및 집적된 RaaS 시스템(100)을 갖는 모바일 장치는 그 자신의 최종 사용자(20)의 역할을 할 수 있고, 그리고/또는 RaaS 시스템(100) 내의 노드의 역할을 할 수 있다.
일부 예에서, 네트워크로부터 격리된 메모리 저장소를 갖는 컴퓨팅 시스템(예를 들어, 격리된 내부 하드 드라이브 또는 플래시 메모리를 갖는 전송 센서)이 도 1에 도시된 것과 유사한 기능을 갖는 RaaS 제공자 시스템의 역할을 할 수 있다. 메모리 저장소는 외부 엔트로피 기기에 의해 생성된 하나 이상의 큰 랜덤 비트 스트림으로 사전 로딩될 수 있다. 사전 로딩되면, 컴퓨터 시스템은 데이터를 수집하고 사전 로딩된 랜덤 비트 스트림을 사용하여 안전한 데이터 전송을 위한 암호화 키 합의(cryptographic key agreement)를 설정하도록 현장에 배포될 수 있다. 도 1에 도시된 RaaS 시스템(100)과 비교하여, 배포된 컴퓨팅 시스템의 격리된 사전 로딩된 메모리는 도 1에 도시된 엔트로피 소스(110) 및 엔트로피 인터페이스(120) 대신에 사용될 수 있고, 그렇지 않으면 배포된 컴퓨팅 시스템이 도 1에 관련하여 설명된 바와 같은 기능을 가질 수 있다.
컴퓨팅 시스템은 도 1에 도시된 식별자 엔진 기능 블록(130) 및 분배 엔진 기능 블록(150)과 관련하여 설명된 바와 같은 식별자 엔진 및 분배 엔진을 포함할 수 있다. 컴퓨팅 시스템은 메모리로부터 랜덤 비트 스트림을 액세스하고, 식별자 엔진으로 난수 시퀀스를 생성하고, 분배를 위해 난수 시퀀스를 변환하고, 변환된 난수를 홈 네트워크로 전송할 수 있다. 태그는 홈 네트워크가 컴퓨팅 시스템을 식별할 수 있도록 하는 정보를 포함할 수 있다. 일부 예에서, 컴퓨팅 시스템은 또한 도 1에 도시된 집계기 엔진 기능 블록(140) 및 캐시(148)와 본 명세서에 제시된 다른 예시적인 RaaS 시스템과 관련하여 설명된 것과 유사한 기능을 갖는 집계기 엔진 및 연관된 캐시를 포함할 수 있다.
도 2는 난수 시퀀스를 추적하고 최종 사용자 시스템에 전달하기 위한 예시적인 데이터 구조를 도시하는 블록도이다. 태그드 난수 시퀀스(235)는 원시 난수 시퀀스(234)와, 소스 식별 파라미터(232), 소스 품질 파라미터(236), 소스 검증 파라미터(238) 및/또는 기타 태그 및 메트릭(metrics)을 포함하는 하나 이상의 태그를 포함할 수 있다. 태그드 난수 시퀀스(235)는 도 1에 도시된 식별자 엔진 기능 블록(130)의 출력(135)으로서 또는 본 명세서에 제시된 다른 예에서 설명된 바와 같은 계산 장치 및/또는 식별자 엔진의 출력으로서 생성될 수 있다.
소스 식별 파라미터(232)는 식별자 엔진에 의해 생성될 수 있고 그리고/또는 엔트로피 인터페이스로부터 수신될 수 있고, 특정 엔트로피 소스 또는 도 1에 도시되고 또한 본 명세서에 제시된 다른 예에서 설명된 바와 같은 엔트로피 소스 기능 블록(110)의 소스와 같은, 난수 또는 의사 난수 소스의 그룹을 나타낼 수 있다.
원시 난수 시퀀스(234)는 식별 파라미터(232)가 연관되는 엔트로피 소스 또는 소스들로부터 유도된 랜덤 비트 스트림의 바이너리, 기호 또는 다른 컴퓨터 판독 가능한 표현을 포함할 수 있다. 원시 난수 시퀀스(234)는 도 1에 도시되고 또한 본 명세서에 제시된 다른 예에서 설명된 바와 같은 랜덤 비트 스트림(125)의 표현일 수 있다.
소스 품질 파라미터(236)는 소스 데이터의 무작위성, 즉 엔트로피 소스에 대한 건전성 검사(health check)를 나타내는 데이터를 포함할 수 있다. 랜덤 시퀀스 및 패킷은 생성 시점에 물리적 하드웨어 레벨에서 내부 일관성에 대한 무결성 및 무작위성 검사를 포함할 수 있다. 이것은 미국 표준 기술 연구소(National Institute of Standards and Technology)의 통계적 테스트 세트 및 기타 통계적 분석으로부터의 도구를 포함할 수 있다. 일부 예에서, 소스 품질 파라미터(236)는 난수 시퀀스가 전송되는 전송 채널 상의 노이즈로 인한 예상되는 에러율을 나타낼 수 있다.
소스 검증 파라미터(238)는 최종 사용자가 태그드 난수 시퀀스(235) 또는 이의 변환이나 수정을 포함하는 수신된 검증 가능한 랜덤 시퀀스의 변조 및/또는 열화를 검출하는 데 사용할 수 있는 검사로서 태그드 난수 시퀀스(235) 내에서 교차 비교될 수 있는 데이터를 포함할 수 있다. 무작위성 출처로부터 최종 사용자에 의한 수신까지의 각각의 프로토콜 레벨에서, 본 명세서에 제시된 일부 예는 내부 일관성 숫자에 대한 검증을 용이하게 할 수 있다. 이러한 추가 제어 및 분석은 컴퓨터 네트워크에 대한 임의의 비무작위화 행동 및 바이어스의 분배, 전송 중 또는 정지 중 난수의 우발적 손상 및/또는 악의적인 행위자에 의한 난수의 손상을 방지할 수 있다.
태그드 난수 시퀀스(235)는 집계 단계(240)에서 하나 이상의 다른 태그드 난수 시퀀스와 함께 집계되어 집계 랜덤 시퀀스(245)를 형성할 수 있다. 집계 시퀀스(245)는 집계 헤더 및 유형 식별자(241)와, 다른 연결된 태그드 난수 시퀀스들(242, 244, 246)과 연결된 앞서 언급된 태그드 난수 시퀀스(245)의 표현(249)과, 집계 검증 파라미터(248)를 포함할 수 있다.
집계 단계(240)는 도 1에 도시되고 또한 본 명세서에 제시된 다른 예에서 설명된 바와 같은 집계기 엔진 기능 블록(140)의 계산 장치를 포함하는 집계기 엔진에 의해 수행될 수 있다. 집계 시퀀스(245)는 도 1에 도시된 집계기 엔진 기능 블록(140)의 출력(145)일 수 있거나 아니면 본 명세서에 제시된 다른 예에서 설명된 바와 같은 집계기로부터의 출력일 수 있다.
집계 헤더 및 유형 식별자(241)는 집계의 출처에 대한 정보 또는 추적 가능성 및/또는 품질 검사의 목적에 유용할 수 있는 다른 정보와 같은 집계 시퀀스(245)와 연관된 고유 정보를 포함할 수 있다.
집계 시퀀스(245)에서의 태그드 난수 시퀀스(249)는 수정되지 않고, 집계 시퀀스(245)로 집계될 때 단순히 연결될 수 있거나, 또는 태그드 난수 시퀀스(249)는 이것이 기초하는 태그드 난수 시퀀스(235)로부터 변환되거나 아니면 수정될 수 있다. 유사하게, 집계 시퀀스(245)의 연결된 태그드 난수 시퀀스(242, 244, 246)는 수정되지 않거나 집계 단계(240) 동안 수정될 수 있다.
집계 검증 파라미터(248)는 집계 시퀀스(245) 또는 이의 수정이나 변환을 포함하는 수신된 검증 가능한 랜덤 시퀀스의 변조 및/또는 열화를 검출하기 위해 최종 사용자가 사용하는 검사로서 집계 시퀀스(245) 내에서 교차 비교될 수 있는 데이터를 포함할 수 있다.
집계 시퀀스(245) 및/또는 개별 태그드 난수 시퀀스(242, 244, 246, 249)는 변환 단계(250)에서 네트워크를 통한 전달을 위해 변환될 수 있다. 변환된 태그드 난수 시퀀스(255)는 소스 식별 파라미터(252), 변환된 난수 시퀀스(259), 소스 품질 파라미터(256), 소스 검증 파라미터(258) 및 기타 태그와 데이터를 포함할 수 있다. 일부 예에서, 개별 태그드 난수 시퀀스(242, 244, 246, 249)는 집계 시퀀스(245)로부터 추출되고, 변환되어, 도 1에 도시되고 본 명세서에 제시된 다른 예에 예시된 검증 가능한 난수 시퀀스(155)와 같은 검증 가능한 랜덤 시퀀스로서 네트워크를 통해 전달될 수 있다.
추가적으로 또는 대안적으로, 일부 예에서, 개별 태그드 난수 시퀀스(242, 244, 246, 249)는 집계 시퀀스(245)로부터 추출되지 않고 변환된 태그드 난수 시퀀스(262, 264, 266, 269)로 변환될 수 있으며, 그 결과 변환된 집계 시퀀스(265)를 제공하며, 변환된 집계 시퀀스(265)는 도 1에 도시되고 본 명세서에 제시된 다른 예에 예시된 검증 가능한 난수 시퀀스(155)와 같은 검증 가능한 랜덤 시퀀스로서 네트워크를 통해 전송될 수 있다.
검증 가능한 난수가 변환된 태그 난수(255)인지, 변환된 집계 시퀀스(265)인지 또는 단순히 태그드 난수 시퀀스(235)인지에 관계없이, 검증 가능한 난수 시퀀스(255, 265)는 도 1에 도시된 분배 엔진 기능 블록(150)의 출력(155)일 수 있거나 아니면 본 명세서에 제시된 다른 예에서 설명된 바와 같은 네트워크 제공 장치 및/또는 분배 엔진으로부터의 출력일 수 있다.
변환된 태그드 난수 시퀀스(255)를 참조하면, 소스 식별 파라미터(252)는 변환된 난수 시퀀스(255)가 기초로 하는 변환되지 않은 태그드 난수 시퀀스(235)의 소스 식별 파라미터(232)와 동일하거나 적어도 부분적으로 이에 기초할 수 있다. 일부 예에서, 소스 식별 파라미터(252)는 추가 태그 데이터를 포함하도록 집계 단계(240) 동안 수정될 수 있거나, 아니면 달리 수정될 수 있다. 일부 예에서, 집계 시퀀스(245)에서의 개별 태그드 난수 시퀀스(249)의 소스 식별 파라미터는 암호화되거나, 캡슐화되거나, 아니면 변환 및/또는 수정되도록 변환 단계 동안 수정될 수 있다. 유사하게, 소스 품질 파라미터(256), 소스 검증 파라미터(258) 및 다른 태그에 대해, 상기 파라미터(256, 258) 및 태그는 집계 단계(240) 동안 그리고/또는 변환 단계(250) 동안 수정될 수 있거나, 또는 상기 파라미터(256, 258) 및 태그는 변환된 난수 시퀀스(255)가 기초로 하는 태그드 난수 시퀀스(235)의 파라미터(236, 238) 및 태그와 동일할 수 있다.
변환된 난수 시퀀스(259)는 변환된 태그드 난수 시퀀스(255)가 기초로 하는 태그드 난수 시퀀스(235)의 원시 난수 시퀀스(234)의 변환(예를 들어, XOR 연산, 인터리빙, 암호화, 체크섬 추출, 코드 생성, 암호화 해싱, 캡슐화, 기타 변환 또는 변환들의 조합)일 수 있다.
변환된 집계 시퀀스(265)를 참조하면, 집계 헤더 및 유형 식별자(261)는 변환된 집계 시퀀스(255)가 기초로 하는 변환되지 않은 집계 시퀀스(245)의 집계 헤더 및 유형 식별자(241)와 동일하거나 적어도 부분적으로 이에 기초할 수 있다. 일부 예에서, 변환 단계(250)는 추가 데이터를 추가하고, 캡슐화하고, 암호화하고, 및/또는 다른 수정을 함으로써 집계 헤더 및 유형 식별자(241)를 수정하는 것을 포함할 수 있다. 유사하게, 변환된 집계 시퀀스(265)의 집계 검증 파라미터(268) 및 다른 태그는 변환된 집계 시퀀스(245)가 기초하는 변환되지 않은 집계 시퀀스(245)의 집계 검증 파라미터(248) 및 태그와 동일하거나 이에 기초하여 수정될 수 있다.
변환된 집계 시퀀스(265)의 각각의 변환된 태그드 난수 시퀀스(262, 264, 266, 269)는 도시된 변환된 태그드 난수 시퀀스(255)와 유사하게 구성될 수 있다. 대안적으로, 집계된 태그드 난수 시퀀스(249, 242, 244, 246)의 원시 난수 시퀀스(234)는 대안적인 변환된 집계 시퀀스 내에서 조합 및 변환될 수 있다. 대안적인 예에서, 개별 난수 시퀀스(249, 242, 244, 246)의 소스 식별 파라미터(232), 소스 품질 파라미터(236), 소스 검증 파라미터(238) 및/또는 다른 파라미터 또는 태그는 보존되거나 폐기될 수 있다. 보존된 경우, 파라미터 및 태그의 일부 또는 전체는 대안적인 변환된 집계 시퀀스의 새로운 또는 기존의 헤더, 파라미터 및/또는 태그로 기록될 수 있고, 파라미터 및 태그의 일부 또는 전부는 원시 난수 시퀀스와 함께 변환될 수 있고, 그리고/또는 파라미터 및 태그의 일부 또는 전부는 대안적인 변환된 집계 시퀀스에 달리 보존될 수 있다.
도 3은 최종 사용자에게 검증 가능한 난수 시퀀스를 전달하도록 구성된 예시적인 RaaS 노드(300) 내의 시스템 컴포넌트의 블록도 예시이다. 노드(300)는 물리적 프로세스를 나타내는 전기 신호를 생성하기 위한 엔트로피 기기(312, 314, 316), 전기 신호에 기초하여 태그드 및/또는 집계 난수 시퀀스를 생성하기 위한 계산 장치(322, 324), 조직화된 식별자를 위한 저장소 역할을 하는 식별자 캐시(338), 네트워크(12, 14)를 통해 최종 사용자(22, 24)에게 검증 가능한 난수 시퀀스를 제공하기 위한 네트워크 제공 시스템(350) 및 태깅되고 집계된 난수 시퀀스에 대한 저장소 역할을 하는 캐시 서비스(358)를 포함할 수 있다. 또한, 노드(300)는 원시 랜덤 전기 신호(318)를 제공하는 링크(318) 및/또는 식별자 캐시(338)로의 링크(328)를 통해 더 큰 RaaS 시스템을 형성하기 위해 하나 이상의 자매 노드에 링크될 수 있다.
엔트로피 기기(312, 314, 316)는 각각 양자 또는 비양자인 엔트로피 소스를 포함할 수 있다. 노드(300)는 양자 및 비양자 엔트로피 기기(312, 314, 316)의 조합을 포함할 수 있다. 각각의 엔트로피 기기(312, 314, 316)는 컴퓨터 판독 가능 신호를 생성하기 위해 물리적 프로세스를 개별적으로 감지, 샘플링, 측정 및 디지털화할 수 있다. 개별 기기(312)는 자신의 엔트로피 기반 랜덤 전기 신호를 하나 이상의 계산 장치(322, 324)에 제공할 수 있다. 도 3에 도시된 바와 같이, 제1 엔트로피 기기(312) 및 제2 엔트로피 기기(314)는 자신의 각각의 전기 신호를 제1 계산 장치(322)에 대한 입력으로서 제공할 수 있고, 제3 엔트로피 장치(316)는 자신의 전기 신호를 제2 계산 장치로, 그리고 자매 노드에 대한 연결일 수 있는 연결(318)을 통해 추가 계산 장치로 제공할 수 있다.
계산 장치(322, 324)는 엔트로피 기기(312, 314, 316)로부터의 전기 신호를 처리하여 컴퓨터 판독 가능한 난수 시퀀스를 생성하고 난수 시퀀스를 네트워크 제공 시스템(350)에 제공할 수 있다. 생성된 난수 시퀀스는 가공되지 않을 수 있고, 태깅될 수 있고, 집계될 수 있고 그리고/또는 태깅 및 집계될 수 있다. 계산 장치(322, 324)는 본 명세서에 제시된 예에 따라 그리고 당해 업계에서의 통상의 기술자에 의해 인식되고 이해되는 바와 같이 난수 시퀀스를 생성할 수 있다.
계산 장치(322, 324)는 복수의 엔트로피 소스를 범용 컴퓨터 및 서버, FPGA(Field Programmable Gate Array), 프로세서 어레이 및 네트워크, 전용 ASIC(Applications Specific Integrated Circuit) 및 가상 기계(Virtual Machine(VM)) 등을 포함할 수 있지만 이에 한정되지 않는 컴퓨팅 장치에 의해 판독 가능한 난수의 디지털 스트림 또는 블록으로 변환하기 위하여 하나 이상의 다양한 수단을 포함할 수 있다.
노드(300) 내의 계산 장치(322, 324)는 조직(coordination) 채널(326)을 통해 서로 통신할 수 있다. 조직 채널(326)은 난수 시퀀스의 조직화된 태깅 및 집계를 용이하게 할 수 있다.
추가적으로 또는 대안적으로, 계산 장치(322, 324)는 식별자 캐시(338)와 통신할 수 있다. 식별자 캐시(338)는 고유 식별자의 글로벌 디렉토리를 포함할 수 있고 난수 시퀀스의 블록 또는 스트림의 충돌 방지 및 중앙 집중화된 목록 작성(cataloging)의 지점 역할을 할 수 있다. 일부 예에서, 노드(300)의 식별자 캐시는 통신 링크(328)를 통해 자매 노드 내의 식별자 캐시와 통신할 수 있다. 식별자 캐시(300)와 자매 노드 식별자 캐시 사이의 통신은 노드(300)와 이의 자매 노드 사이의 난수 시퀀스의 조직화된 식별 및/또는 집계를 용이하게 할 수 있다.
네트워크 제공 시스템(350)은 계산 장치(322, 324)로부터 난수 시퀀스(원시, 태그드, 집계 및/또는 태그드 및 집계)를 수신할 수 있다. 네트워크 제공 시스템은 외부 네트워크(12, 14)를 통한 분배를 위해 난수 시퀀스를 변환하고 네트워크(12, 14)를 통해 변환된 난수 시퀀스를 분배하기 위한 하드웨어 및 소프트웨어 모듈을 포함할 수 있다. 난수 시퀀스는 최종 사용자(22, 24)가 이전에 생성된 난수 시퀀스를 요청할 수 있도록 분배 전에 캐시 서비스(358)에 의해 캐싱될 수 있다. 일부 예에서, 변환된 난수 시퀀스는 타임 스탬프를 포함할 수 있고, 최종 사용자(22, 24)는 특정 타임 스탬프를 갖는 난수 시퀀스를 요청할 수 있다.
최종 사용자(22, 24)는 해당하는 네트워크(12, 14)에 포함된 단일 또는 다중 경로를 통해 RaaS 노드(300)에 액세스할 수 있다. 최종 사용자(22, 24)는 적합한 태깅을 갖는 특정 기기(312, 314, 316)로부터 난수를 직접 요청하여 수신할 수 있어, 특정 기기로부터의 유형을 추적할 수 있다. 최종 사용자(22, 24)에 의해 수신되면, 난수 시퀀스는 컴퓨터 프로그램, 단일 또는 다중 애플리케이션에 대한 연구 데이터 세트, 복수의 미디어 소스에 대한 암호화 서비스, 시뮬레이션 및 데이터 과학 프로세스, 암호화 및 기타 네트워크 서비스를 포함할 수 있는 난수 시퀀스를 소비하는 최종 애플리케이션에서 사용될 수 있다.
도 1 및 3에 예시된 시스템과 관련하여, 도 3에 도시된 엔트로피 기기(312, 314, 316)는 도 1에 도시된 엔트로피 소스 및 엔트로피 인터페이스 기능 블록(110, 120)의 일부일 수 있고, 도 3에 도시된 계산 장치(322, 324)는 도 1에 도시된 식별자 엔진(130) 및 집계기 엔진(140) 기능 블록의 일부일 수 있고, 도 3에 도시된 식별자 캐시(338)는 도 1에 도시된 식별자 엔진(130)과 통신하는 캐시(138)의 일부일 수 있고, 도 3에 도시된 네트워크 제공 시스템(350)은 도 1에 도시된 분배 엔진 기능 블록(150)의 일부일 수 있고, 도 3에 도시된 캐시 서비스(358)는 도 1에 도시된 분배 엔진 기능 블록(150)과 통신하는 캐시(158)의 일부일 수 있다. 도 1에 도시된 RaaS 시스템(100)은 도 3에 도시된 RaaS 노드(300) 및 이의 변형과 같은 다수의 RaaS 노드를 포함할 수 있다.
도 3에 도시된 예시적인 시스템의 특정 구현의 예시로서, 노드(300)는 제1 비양자 엔트로피 기기(312), 제2 비양자 엔트로피 기기(314) 및 양자 엔트로피 기기(316)를 포함할 수 있다. 제1 및 제2 비양자 엔트로피 기기는 범용 컴퓨터일 수 있고 고유 태그드 비양자 난수 시퀀스를 생성하여 차별화되지 않은 비양자 고유 태그드 난수로서 지정된 집계 풀 내의 태그드 시퀀스의 집합을 집계할 수 있는 제1 계산 장치(322)에 공급할 수 있다. 집계 풀은 네트워크 제공 시스템(350)으로 전송될 수 있고, 네트워크 제공 시스템(350)은 집계 풀을 최종 사용자(22, 24)로의 나중의 분배를 위해 캐시 서비스(358)에 저장할 수 있다. 동시에, FPGA일 수 있는 제2 계산 장치(324)는 고유 태그드 양자 난수 시퀀스를 생성하여 태그드 난수 시퀀스를 앞서 언급된 집계 풀과 별개인 집계 풀 내로 집계할 수 있고, 별개의 집계 풀은 차별화되지 않은 양자 고유 태그드 난수로서 지정된다. 별개의 집계 풀은 풀 내의 난수 시퀀스의 일부를 광섬유 네트워크(12)를 통해 제1 최종 사용자(22)로 즉시 분배하고 나머지를 캐시 서비스(358)에 저장할 수 있는 네트워크 제공 시스템(350)으로 전송될 수 있다. 제2 최종 사용자(24)는 비양자 숫자 시퀀스의 풀 또는 양자 숫자 시퀀스의 풀이나, 둘 모두의 풀로부터의 난수 시퀀스를 요청할 수 있다. 제2 최종 사용자(24)는 특정 날짜 및 시간에 엔트로피 기기로부터 유래하는 난수 시퀀스를 요청할 수 있으며, 네트워크 제공 시스템(350)은 제공된 난수 시퀀스의 태그에서의 날짜 및 시간 파라미터에 기초하여 제2 최종 사용자(24)의 요청에 충족하도록 난수 시퀀스를 제공할 수 있다.
도 3에 도시된 예시적인 시스템의 다른 특정 구현의 예시로서, 노드(300)는 단일 하드웨어 패키지에 통합된(예를 들어, 단일 하우징에 포함되거나, 단일 인쇄 회로 기판에 포함되거나, 단일 랙에 함께 장착되거나, 시스템 패키지로서 함께 번들로 되거나 하는 등) 제1 양자 기기(312), 비양자 기기(314) 및 제1 계산 장치(322)를 포함할 수 있고, 제1 계산 장치(322)는 난수 시퀀스 생성을 수행하기 위한 전용 프로세서를 포함할 수 있다. 또한, 노드(300)는 프로세서 어레이(324)에 공급하는 제2 양자 엔트로피 기기(316)를 포함할 수 있다. 제1 계산 장치(322)를 포함하는 하드웨어 패키지는 고유하게 태깅된 비양자 난수 시퀀스 및 동일하게 태깅된 양자 난수 시퀀스일 수 있다. 하드웨어 패키지는 태그드 시퀀스를 2개의 풀로 집계할 수 있고, 제1 풀은 양자 소스 숫자에 대해 동일한 태그를 갖는 차별화된 양자 및 비양자 태그드 난수로 지정되고, 제2 풀은 양자 소스 숫자에 대해 동일한 태그를 갖는 차별화되지 않고 인터리빙된 양자 및 비양자 태그드 난수로 지정된다. 동시에, 제2 계산 장치(324)는 동일하게 태깅된 양자 숫자를 생성하고 차별화된 양자 고유 태그드 난수로 지정된 집계 풀을 생성할 수 있다. 제1 계산 장치(322) 및 제2 계산 장치(324)는 장치(322, 324)에 의해 할당된 태그가 서로 조직화되도록(예를 들어, 제1 양자 소스(312)와 연관된 양자 숫자 태그는 제2 양자 소스(316)와 연관된 양자 숫자 태그로부터 차별될 수 있도록) 조직 채널(326)을 통해 서로 통신할 수 있다. 네트워크 제공 시스템(350)은 특정 풀 또는 풀들의 조합 내의 난수 시퀀스에 대해 네트워크(12, 14)를 통해 각각의 최종 사용자(22, 24)로부터 요청을 수신할 수 있고, 네트워크 제공 시스템(350)은 검증 가능한 난수 시퀀스를 각각의 최종 사용자(22, 24)에게 캐싱 없이 스트리밍할 수 있다.
도 4는 집계기(440)에 결합된, 양자 및 비양자 모두인, 복수의 엔트로피 소스(412, 414, 416, 418)의 개략도이며, RaaS 시스템 내의 프로세싱 시스템(450)과 외부 네트워크(470) 사이에서 통신될 수 있는 난수 시퀀스 및 통신의 유형을 도시한다. 엔트로피 소스(412, 414, 416, 418)로부터의 라인은 개별 소스(412, 414, 416, 418)로부터 집계기(440)로의 상이한 출력 경로들을 나타낸다. 난수 시퀀스는 각각의 소스(412, 414, 416, 418)에서 또는 소스(412, 414, 416, 418)로부터 집계기기(440)로의 경로 내의 소정의 지점에서 생성 및/또는 태깅될 수 있거나, 집계기(440)가 원시의 수정되지 않은 랜덤 시퀀스를 수신할 수 있다. 일부 예에서, 하나 이상의 소스(414, 416)로부터의 출력은 집계기(440)로 가는 도중에 조합될 수 있다. 집계기(440)의 출력은 제1 경로(442)를 통해 처리 시스템(450)에 공급되거나 제2 경로(444)를 통해 수정되지 않은 랜덤으로서 프로세서를 우회할 수 있다. 처리 시스템(450)은 개별 소스(418)로부터의 특정의 번들링된 랜덤(452)을 출력하거나, 다수의 소스를 조합하거나, 또는 외부 엔티티(470)로의 전달을 위해 패킷화된 랜덤(454)을 번들링할 수 있다. 처리 시스템(450)은 외부 엔티티(470)로의 링크(460)를 통해 명령 및 제어 신호를 수신하고, 자신의 출력을 수정하거나 소스의 선택 및/또는 랜덤의 번들링을 포함하는 집계기(440)의 동작을 지시함으로써 외부 명령 및 제어에 응답할 수 있다.
도 5는 랜덤 소스(510)의 대역 외(out of band) 관리 시스템에 의해 공급되고 소비자 서비스 시스템(530)에 검증 가능한 랜덤 시퀀스를 제공하는 다중 소스 랜덤 제공 및 관리 노드(500)를 포함하는 예시적인 서비스 플랫폼을 도시하는 블록도이다. 예시적인 관리 노드(500)는 캐시(558)에 연결된 랜덤 분배 서비스(550)를 포함할 수 있다. 관리 노드(500)는 추가 처리(580)와, 키 생성, 키 분할, 키 관리 및 저장을 포함하는 암호화 애플리케이션을 위해 부착된 무작위성 키 저장소(588)를 포함할 수 있다. 랜덤 분배 서비스(550)는 자율적으로 동작하거나 명령, 제어 및 통신 관리 시스템(560)에 의해 제어될 수 있다. 명령, 제어 및 통신 관리 시스템(560)은 방화벽(590)에 의해 인터넷 또는 다른 유형의 컴퓨터 네트워크(16)에 연결될 수 있다. 랜덤 분배 서비스(550)에는, 독립형 외부 소스(514)를 포함하기 위하여 인터넷, 인트라넷 또는 다른 유형의 컴퓨터 네트워크(16)로 대역 외 관리 시스템(510)과 또한 연결될 수 있는 다수의 랜덤 데이터 기기(512, 514)로부터의 난수를 제공받을 수 있다. 또한, 대역 외 관리 시스템은 라우터 및/또는 방화벽(518)을 포함할 수 있다. 라우터 및/또는 방화벽(590)이 관리 노드(500)에 추가될 수 있거나, 기기 레벨(512)에서 직접 액세스될 수 있다. 대역 외 관리 시스템(510) 내의 다중 소스 기기(514)는 랜덤 분배 서비스(550)에 난수 스트림을 공급할 수 있고, 랜덤 소스 제공 노드(500)는 자신의 랜덤 소스(512)를 가질 필요가 없다.
랜덤 분배 서비스(550)는 직접적으로 또는 명령, 제어, 통신 및 관리 시스템(560)을 통해 난수 시퀀스를 하나 이상의 서비스(530)로 내보낼 수 있다. 서비스(530)는 단말 서비스(532), 부착된 메타데이터 저장소(536)를 갖는 메타데이터 서비스(534) 및/또는 키 분배 서비스(544)를 포함할 수 있다. 키 분배 서비스(544)의 예는 암호화 키를 클라이언트에 공급하고 있을 수 있고, 키 분배 서비스(544)는 서비스의 상이한 그룹 또는 티어(tier)에 대한 다중 키 관리 서비스(542)와 통신할 수 있다.
도 6은 함께 또는 독립적으로 동작하는 유사하거나, 동일하거나, 호환 가능한 아키텍처를 갖는 다수의 RaaS 노드(600)를 포함하는 예시적인 RaaS 시스템을 도시하는 블록도이다. 일부 예에서, 도 1에 도시된 RaaS 시스템(100) 아키텍처와, 도 3에 도시된 RaaS 노드(300)와, 도 4에 도시된 집계기(440) 및 처리 시스템(450)과, 도 5에 도시된 RaaS 노드(500) 및 외부 소스 관리 시스템(510)과, 이들의 변형 및 조합은 협력 노드, 공용 및 사설 네트워크, 기업 내부에서 지리적으로 분산되거나 논리적으로 분리될 수 있는 격리된 노드를 포함하는 다양한 구성으로 복제될 수 있다. 노드(600)는 클라우드 아키텍처에서 가상 인스턴스로 존재할 수 있으며 물리적 배치에 제한되지 않는다. 도 6의 예는 각각의 노드(600)에서 동일한(또는, 호환 가능한) 아키텍처를 이용하는 복수의 링, 스포크 및 기타 직렬 및 병렬 구성을 보여준다.
도 7은 가상 기계 관리자, 가상화 계층 및/또는 하이퍼바이저(760)에 의해 관리되는 랜덤 비트 스트림, 숫자, 시퀀스 등의 하나 이상의 가상 소스(712)를 포함하는 예시적인 RaaS 시스템(700)을 나타내는 블록도이다. RaaS 시스템(700)은 랜덤 비트 스트림, 숫자, 시퀀스 등의 하나 이상의 물리적 소스(714)를 추가로 포함할 수 있다. 가상 소스(712) 및/또는 하이퍼바이저(760)는 클라우드 호스트에 상주할 수 있다. 하이퍼바이저(760)는 가상 소스(712) 및/또는 각각의 가상 소스의 연관된 RaaS 노드의 일부 또는 전부를 에뮬레이트할 수 있다. 일부 예에서, 물리적 랜덤 분배 서비스 자원(714)은 공용 및 사설 데이터센터 자원의 혼성체(hybrid)로부터 개별적으로 풀링될 수 있다. 물리적 소스(714)는 하이퍼바이저(760)에 의해 분리될 수 있고, 물리적 기계와 상호 작용하는 모습을 보일 수 있다.
일부 예에서, 가상 소스(712)는 물리적 소스들(714)에 의해 공급받을 수 있다. 예시적인 구현에서, 각각의 가상 소스(712)는 물리적 소스(714)의 서브 컴비네이션 또는 전부의 랜덤 출력(예를 들어, 비트 스트림 또는 난수 시퀀스)을 샘플링하고, 샘플링된 랜덤 출력을 새로운 랜덤 출력으로 조합할 수 있다. 예시적인 구현에서, 제1 가상 소스(712)는 제1 쌍의 물리적 소스(714)를 샘플링하고, 그 쌍에서의 각각의 물리적 소스로부터 일부 비트를 풀링하고 풀링된 비트를 조합하여 그 쌍에서의 어느 소스로부터의 어느 비트 스트림과도 상이한 새로운 양자 랜덤 비트 스트림을 생성할 수 있고; 그리고, 제2 가상 소스(712)는 제1 쌍의 물리적 소스(714)와는 상이한 제2 쌍의 물리적 소스(714)를 샘플링하고, 제2 가상 소스(712)는 제2 쌍의 물리적 소스에서의 각각의 물리적 소스(714)로부터 일부 비트를 풀링하고 풀링된 비트를 조합하여 물리적 소스(714) 및 제1 가상 소스(712)의 출력과 상이한 새로운 양자 비트 스트림을 생성할 수 있다. 다른 예시적인 구현에서, 가상 소스(712)는 물리적 소스(714)의 일부 조합으로부터 샘플링하고, 샘플링된 비트 또는 숫자를 조합한 후, 샘플링된 비트 또는 숫자를 샘플링된 물리적 소스(714) 또는 추가의 샘플링되지 않은 물리적 소스(714) 중 하나의 비트 스트림 또는 랜덤 스트림 출력과 함께 변환할 수 있다. 당해 업계에서의 통상의 기술자에 의해 인식되고 이해되는 바와 같이, 생성될 수 있는 가상 소스(712)의 수는 물리적 소스(714)가 시스템(700)에 추가됨에 따라 기하급수적으로 증가한다. 따라서, 가상화된 소스(712)를 활용하는 것은 많은 양의 하드웨어 엔트로피 소스를 추가할 필요 없이 많은 양의 랜덤 출력의 생성을 용이하게 할 수 있다.
다수의 RaaS 시스템(100, 300, 500, 700)은 위와 같이 난수 시퀀스를 분배할 수 있으며, 식별 가능한 진정한 난수 시퀀스의 새롭고 고유한 조합을 생성하도록 시스템 내부 또는 외부에서 조합될 수 있다. 이러한 자손(daughter) 시퀀스의 계보는 새로운 식별자로 재패키징되거나 난독화 및 익명화될 수 있어, 랜덤 시퀀스의 진정한 소스는 제3자에게 알려지지 않는다. 이러한 난독화 및 익명화는, 예를 들어, 난수 시퀀스를 이용한 암호화 키에 대한 공격에 대한 추가적인 보안 레벨을 추가할 수 있다. 악의적인 행위자가 난수가 어떻게 생성되는지 모르기 때문에, 시스템은 키에 영향을 미치는 변조(예를 들어, 시딩(seeding))에 저항할 수 있다. 위에서 언급된 바와 같이, 동작은 이 분산 컴퓨팅 환경에서의 소프트웨어 컴포넌트로부터 블록 또는 스트림의 난수를 수신하는 것을 포함할 수 있다. 난수는 소프트웨어를 통해 컴퓨터 시스템 및 하드웨어로부터 더 분리될 수 있다.
난수 시퀀스는 본 명세서에 제시된 예시적인 시스템(100, 300, 500, 700)과 같은 RaaS 시스템, 본 명세서에 예시적인 최종 사용자 시스템(20, 22, 24)과 같은 최종 사용자 시스템, 본 명세서에 제시된 예시적인 외부 네트워크(470, 534, 532, 544)와 같은 외부 네트워크, 이들의 조합 및/또는 이들의 변형에 의한 단일 사용 또는 재사용을 위하여 관리될 수 있다. 일부 예에서 RaaS 시스템, 외부 네트워크 및 최종 사용자 시스템은 각각 난수 시퀀스의 단일 사용 또는 재사용을 위한 자체 관리 체계를 가질 수 있다. 관리 체계는 시스템/네트워크 사이에서 조직화될 수 있거나, 각각의 시스템/네트워크가 다른 시스템/네트워크로부터 숨겨진 재사용 관리 체계를 가질 수 있다.
일부 예에서, RaaS 시스템, 외부 네트워크 및/또는 최종 사용자 시스템은 최종 사용자 시스템 또는 외부 네트워크로부터의 요청에 기초하여 액세스될 수 있는 난수 시퀀스를 포함하는 캐시 또는 메모리 저장소를 포함할 수 있고; 시스템/네트워크는 난수 시퀀스를 포함하는 메모리 부분이 액세스되었을 때를 모니터링하고 액세스된 난수 시퀀스가 한 번만 액세스되거나 미리 결정된 횟수만큼 액세스되거나, 시간 한계 내에 액세스되도록 액세스된 난수 시퀀스를 덮어쓰기할 수 있다.
일부 예에서, 사용 표시자는 헤더, 파라미터 또는 다른 태그 내의 태그드 난수 시퀀스에 포함될 수 있다. 사용 표시자는 RaaS 시스템, 최종 사용자 시스템 또는 외부 네트워크에 의해 생성될 수 있다. 사용 표시자는 의도된 재사용 횟수, 실제 재사용 횟수 및/또는 시간적 만료에 대한 정보를 포함할 수 있다. RaaS 시스템에 의해 생성될 때, 일부 태그드 난수 시퀀스들은 각각 사용 표시자를 포함할 수 있으며, 태그드 난수 시퀀스들은 사용 표시자 내의 정보에 따라 집계 및 분배될 수 있다. 일부 구현에서, 재사용 가능한 난수 시퀀스는 단일 사용 난수에 비해 더 낮은 재무적 비용으로 제공될 수 있으며, 이는 비암호화(예를 들어, 실험적) 애플리케이션 또는 중요하지 않은 암호화에서 바람직할 수 있다.
본 명세서에 포함된 설명은 본 발명의 실시예이고, 어떠한 방식으로도 본 발명의 범위를 제한하려고 의도되지 않는다. 본 명세서에 설명된 바와 같이, 본 발명은, 기능 블록의 대안적인 배열, 추가적인 그리고/또는 대안적인 기능 블록, 대안 태깅 및 집계 방식, 추가적인 캐싱, 추가적인 제어 기능, 추가적인 통신 기능, 본 명세서에 구체적으로 설명되지 않은 최종 사용자 요구를 충족시키는 추가적인 기능, 추가적인 그리고/또는 대안적인 난수 소스, 랜덤 비트 스트림을 생성하기 위한 추가적인 그리고/또는 대안적인 방식 및 수단, 보안되지 않은 네트워크를 통한 보안 전송을 위해 난수를 암호화 및/또는 캡슐화하기 위한 추가적인 그리고/또는 대안적인 방식, 가상 엔트로피 소스를 생성하기 위한 추가적인 그리고/또는 대안적인 방식 등을 포함하는, RaaS 제공자 시스템에 대한 많은 변형 및 수정을 고려한다. 이러한 수정은 본 발명이 관련된 기술 분야에서의 통상의 기술자에게 명백할 것이고, 이어지는 청구범위의 범위 내에 있도록 의도된다.

Claims (30)

  1. 하나 이상의 프로세서를 포함하는 계산 시스템을 제공하는 단계 - 상기 계산 시스템은 제1 엔트로피 소스, 제2 엔트로피 소스 및 외부 컴퓨팅 네트워크와 통신함 -;
    상기 계산 시스템에 의해, 상기 제1 엔트로피 소스로부터, 상기 제1 엔트로피 소스의 엔트로피 측정값을 나타내는 제1 전기 신호를 수신하는 단계;
    상기 계산 시스템에 의해, 상기 제2 엔트로피 소스로부터, 상기 제2 엔트로피 소스의 엔트로피 측정값을 나타내는 제2 전기 신호를 수신하는 단계;
    상기 계산 시스템에 의해, 상기 제1 전기 신호에 적어도 부분적으로 기초하여 제1 복수의 난수 시퀀스를 생성하고, 상기 제2 전기 신호에 적어도 부분적으로 기초하여 제2 복수의 난수 시퀀스를 생성하는 단계;
    상기 계산 시스템에 의해, 각각 상기 제1 엔트로피 소스를 나타내는 제1 복수의 식별자를 생성하고, 각각 상기 제2 엔트로피 소스를 나타내는 제2 복수의 식별자를 생성하는 단계;
    상기 계산 시스템에 의해, 상기 제1 복수의 식별자의 각각의 식별자를 상기 제1 복수의 난수 시퀀스의 해당하는 난수 시퀀스에 할당하고, 상기 제2 복수의 식별자의 각각의 식별자를 상기 제2 복수의 난수 시퀀스의 해당하는 난수 시퀀스에 할당하는 단계; 및
    상기 계산 시스템에 의해, 상기 제1 복수의 난수 시퀀스, 상기 제1 복수의 식별자, 상기 제2 복수의 난수 시퀀스 및 상기 제2 복수의 식별자를 상기 외부 컴퓨팅 네트워크에 분배하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 계산 시스템에 의해, 상기 제1 복수의 난수 시퀀스의 하나 이상의 난수 시퀀스 및 상기 제1 복수의 식별자의 하나 이상의 할당된 식별자를 제1 집계 풀(aggregation pool)에 집계하는 단계; 및
    상기 계산 시스템에 의해, 상기 제2 복수의 난수 시퀀스의 하나 이상의 난수 시퀀스 및 상기 제2 복수의 식별자의 하나 이상의 할당된 식별자를 제2 집계 풀에 집계하는 단계
    를 더 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 계산 시스템에 의해, 각각 상기 제1 복수의 식별자의 식별자를 포함하는 제1 복수의 태그를 생성하고, 각각 상기 제2 복수의 식별자의 식별자를 포함하는 제2 복수의 태그를 생성하는 단계;
    상기 계산 시스템에 의해, 각각 상기 제1 복수의 태그의 태그와 상기 제1 복수의 난수 시퀀스의 난수 시퀀스를 포함하는 제1 복수의 태그드(tagged) 난수 시퀀스를 생성하는 단계; 및
    상기 계산 시스템에 의해, 각각 상기 제2 복수의 태그의 태그와 상기 제2 복수의 난수 시퀀스의 난수 시퀀스를 포함하는 제2 복수의 태그드 난수 시퀀스를 생성하는 단계
    를 더 포함하고,
    상기 계산 시스템에 의해, 상기 제1 복수의 난수 시퀀스, 상기 제1 복수의 식별자, 상기 제2 복수의 난수 시퀀스 및 상기 제2 복수의 식별자를 상기 외부 컴퓨팅 네트워크에 분배하는 단계는, 상기 계산 시스템에 의해, 상기 제1 복수의 태그드 난수 시퀀스 및 상기 제2 복수의 태그드 난수 시퀀스를 상기 외부 컴퓨팅 네트워크에 분배하는 단계를 포함하는, 방법.
  4. 제3항에 있어서,
    상기 계산 시스템에 의해, 제1 집계 헤더 및 제2 집계 헤더를 생성하는 단계; 및
    상기 계산 시스템에 의해, 상기 제1 복수의 난수 시퀀스의 하나 이상의 태그드 난수 시퀀스와 연결된 상기 제1 집계 헤더를 포함하는 제1 집계 시퀀스를 생성하고, 상기 제2 복수의 난수 시퀀스의 하나 이상의 태그드 난수 시퀀스와 연결된 상기 제2 집계 헤더를 포함하는 제2 집계 시퀀스를 생성하는 단계
    를 포함하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 계산 시스템에 의해, 상기 제1 복수의 난수 시퀀스의 각각의 난수 시퀀스를 변환하여 제1 복수의 변환된 난수 시퀀스를 생성하고, 상기 제2 복수의 난수 시퀀스의 각각의 난수 시퀀스를 변환하여 제2 복수의 변환된 난수 시퀀스를 생성하는 단계를 더 포함하고,
    상기 계산 시스템에 의해, 상기 제1 복수의 난수 시퀀스, 상기 제1 복수의 식별자, 상기 제2 복수의 난수 시퀀스 및 상기 제2 복수의 식별자를 상기 외부 컴퓨팅 네트워크에 분배하는 단계는, 상기 제1 복수의 난수 시퀀스의 변환된 난수 시퀀스로서 상기 제1 복수의 난수 시퀀스를 분배하고, 상기 제2 복수의 변환된 난수 시퀀스의 변환된 난수 시퀀스로서 상기 제2 복수의 난수 시퀀스를 분배하는 단계를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 계산 시스템에 의해, 상기 제1 복수의 난수 시퀀스의 각각의 난수 시퀀스를 변환하는 단계는, 각각의 난수 시퀀스를 암호화 및/또는 캡슐화하는 단계를 포함하는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 계산 시스템에 의해, 상기 외부 컴퓨팅 네트워크로부터, 상기 제1 엔트로피 소스로부터 유래하는 난수 시퀀스에 대한 요청을 수신하는 단계; 및
    상기 계산 시스템에 의해, 상기 요청에 응답하여, 상기 제1 복수의 식별자의 식별자와 연관된 상기 제1 복수의 난수 시퀀스의 난수 시퀀스를 상기 외부 컴퓨팅 네트워크에 제공하는 단계 - 상기 식별자는 상기 제1 엔트로피 소스와 연관됨 -
    를 더 포함하는, 벙법.
  8. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 계산 시스템에 의해, 상기 제1 복수의 난수 시퀀스, 상기 제1 복수의 식별자, 상기 제2 복수의 난수 시퀀스 및 상기 제2 복수의 식별자를 메모리 저장소에 저장하는 단계;
    상기 계산 시스템에 의해, 상기 외부 컴퓨팅 네트워크로부터, 상기 제1 엔트로피 소스로부터 유래하는 난수 시퀀스에 대한 요청을 수신하는 단계;
    상기 계산 시스템에 의해, 상기 메모리 저장소로부터, 상기 요청에 응답하여, 검색 시퀀스를 검색하는 단계 - 상기 검색 시퀀스는 상기 제1 복수의 식별자의 식별자와 연관된 상기 제1 복수의 난수 시퀀스의 난수 시퀀스이고, 상기 식별자는 상기 제1 엔트로피 소스와 연관됨 -; 및
    상기 계산 시스템에 의해, 상기 요청에 응답하여, 상기 검색 시퀀스를 상기 외부 컴퓨팅 네트워크에 제공하는 단계
    를 더 포함하는, 방법.
  9. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 계산 시스템에 의해, 상기 제1 복수의 식별자 및 상기 제2 복수의 식별자를 메모리 저장소에 저장하는 단계를 더 포함하고,
    상기 계산 시스템에 의해, 각각 상기 제1 엔트로피 소스와 연관된 제1 복수의 식별자를 생성하고, 각각 상기 제2 엔트로피 소스와 연관된 제2 복수의 식별자를 생성하는 단계는, 상기 메모리 저장소에 저장된 데이터에 기초하여 상기 제1 복수의 식별자 및 상기 제2 복수의 식별자를 생성하는 단계를 포함하는, 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 제1 복수의 식별자의 각각은 상기 제1 복수의 식별자의 다른 모든 식별자에 대하여 구별 가능하고, 상기 제2 복수의 식별자의 각각은 상기 제2 복수의 식별자의 다른 모든 식별자에 대하여 구별 가능한, 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 계산 시스템에 의해, 상기 제1 복수의 난수 시퀀스의 난수 시퀀스를 저장하는 단계; 및
    상기 계산 시스템에 의해, 상기 난수 시퀀스를 상기 외부 컴퓨팅 네트워크에 단 한번만 분배한 후에, 저장된 상기 난수 시퀀스를 덮어쓰기하는 단계
    를 더 포함하는, 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 계산 시스템에 의해, 상기 제1 복수의 난수 시퀀스의 난수 시퀀스를 저장하는 단계; 및
    상기 계산 시스템에 의해, 저장된 상기 난수 시퀀스를 상기 외부 컴퓨팅 네트워크에 여러 번 분배하는 단계
    를 더 포함하는, 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 계산 시스템에 의해, 상기 제1 복수의 난수 시퀀스의 난수 시퀀스와 연관된 사용 표시자(use indicator)를 생성하는 단계; 및
    상기 계산 시스템에 의해, 상기 외부 컴퓨팅 네트워크로, 상기 사용 표시자 및 상기 난수 시퀀스를 분배하는 단계
    를 포함하는, 방법.
  14. 제1 엔트로피 소스, 상기 제1 엔트로피 소스의 물리적 프로세스에 기초하여 제1 전기 신호를 생성하도록 동작하는 제1 전기 회로 및 상기 제1 전기 신호를 제공하도록 동작하는 출력을 포함하는, 제1 엔트로피 기기;
    제2 엔트로피 소스, 상기 제2 엔트로피 소스의 물리적 프로세스에 기초하여 제2 전기 신호를 생성하도록 동작하는 제2 전기 회로 및 상기 제2 전기 신호를 제공하도록 동작하는 출력을 포함하는, 제2 엔트로피 기기; 및
    상기 제1 엔트로피 기기의 출력 및 상기 제2 엔트로피 기기의 출력과 통신하는 입력, 외부 네트워크와 통신하도록 동작하는 출력, 프로세서 및 컴퓨터 판독 가능한 매체를 포함하는 계산 시스템
    을 포함하고, 상기 컴퓨터 판독 가능한 매체는, 상기 프로세서에 의해 실행될 때, 상기 프로세서가,
    상기 제1 전기 신호에 기초하여 제1 식별자 및 제1 난수 시퀀스를 생성하는 단계 - 상기 제1 식별자는 상기 제1 엔트로피 소스를 나타내는 데이터를 포함함 -;
    상기 제2 전기 신호에 기초하여 제2 식별자 및 제2 난수 시퀀스를 생성하는 단계 - 상기 제2 식별자는 상기 제2 엔트로피 소스를 나타내는 데이터를 포함함 -; 및
    상기 제1 식별자, 상기 제1 난수 시퀀스, 상기 제2 식별자 및 상기 제2 난수 시퀀스를 나타내는 통신 신호를 상기 계산 시스템의 출력에 제공하는 단계
    를 수행하는 명령어를 포함하는, 엔트로피 전달 시스템.
  15. 제14항에 있어서,
    상기 계산 시스템의 상기 컴퓨터 판독 가능한 매체는, 상기 프로세서에 의해 실행될 때, 상기 프로세서가,
    상기 제1 난수 시퀀스 및 상기 제1 식별자를 하나 이상의 추가 난수 시퀀스와 함께 제1 집계 풀에 집계하는 단계; 및
    상기 제2 난수 시퀀스 및 상기 제2 식별자를 하나 이상의 추가 난수 시퀀스와 함께 제2 집계 풀에 집계하는 단계
    를 수행하는 명령어를 더 포함하는, 엔트로피 전달 시스템.
  16. 제14항 또는 제15항에 있어서,
    상기 계산 시스템의 상기 컴퓨터 판독 가능한 매체는, 상기 프로세서에 의해 실행될 때, 상기 프로세서가,
    상기 제1 식별자를 포함하는 제1 태그를 생성하는 단계;
    상기 제2 식별자를 포함하는 제2 태그를 생성하는 단계;
    상기 제1 태그를 상기 제1 난수 시퀀스와 연결하여 제1 태그드(tagged) 난수 시퀀스를 생성하는 단계; 및
    상기 제2 태그를 상기 제2 난수 시퀀스와 연결하여 제2 태그드 난수 시퀀스를 생성하는 단계
    를 수행하는 명령어를 더 포함하고,
    상기 통신 신호는 상기 제1 태그드 난수 시퀀스 및 상기 제2 태그드 난수 시퀀스를 나타내는, 엔트로피 전달 시스템.
  17. 제16항에 있어서,
    상기 계산 시스템의 상기 컴퓨터 판독 가능한 매체는, 상기 프로세서에 의해 실행될 때, 상기 프로세서가,
    제1 집계 헤더를 생성하는 단계; 및
    상기 제1 집계 헤더를 상기 제1 태그드 난수 시퀀스 및 상기 제2 태그드 난수 시퀀스와 연결하여 집계 시퀀스를 생성하는 단계
    를 수행하는 명령어를 더 포함하고
    상기 통신 신호는 상기 집계 시퀀스를 나타내는, 엔트로피 전달 시스템.
  18. 제14항 내지 제17항 중 어느 한 항에 있어서,
    상기 계산 시스템의 상기 컴퓨터 판독 가능한 매체는, 상기 프로세서에 의해 실행될 때, 상기 프로세서가,
    상기 제1 난수 시퀀스를 변환하여 제1 변환 난수 시퀀스를 생성하는 단계; 및
    상기 제2 난수 시퀀스를 변환하여 제2 변환 난수 시퀀스를 생성하는 단계;
    를 수행하게 하는 명령어를 더 포함하고,
    상기 통신 신호는 상기 제1 변환 난수 시퀀스 및 상기 제2 변환 난수 시퀀스를 나타내는, 엔트로피 전달 시스템.
  19. 제14항 내지 제18항 중 어느 한 항에 있어서,
    상기 계산 시스템과 통신하는 제1 메모리 저장소를 더 포함하고,
    상기 계산 시스템의 상기 컴퓨터 판독 가능한 매체는, 상기 프로세서에 의해 실행될 때, 상기 프로세서가,
    상기 제1 메모리 저장소에 저장된 데이터에 기초하여 상기 제1 식별자 및 상기 제2 식별자를 생성하는 단계; 및
    상기 제1 식별자 및 상기 제2 식별자를 상기 제1 메모리 저장소에 저장하는 단계
    를 수행하게 하는 명령어를 더 포함하는, 엔트로피 전달 시스템.
  20. 제14항 내지 제19항 중 어느 한 항에 있어서,
    라우터; 및
    상기 제1 엔트로피 기기를 포함하는 대역 외(out of band) 관리 시스템
    을 더 포함하고,
    상기 계산 시스템의 입력은 상기 라우터를 통해 상기 제1 엔트로피 기기의 출력과 통신하는, 엔트로피 전달 시스템.
  21. 복수의 엔트로피 소스로부터 복수의 전기 신호를 수신하도록 동작하는 입력, 제1 프로세서 및 상기 프로세서와 통신하는 제1 컴퓨터 판독 가능한 매체를 포함하는 랜덤 분배 서비스 엔진; 및
    상기 랜덤 분배 서비스와 통신하고, 외부 네트워크와 통신하도록 동작하는 출력, 제2 프로세서 및 상기 프로세서와 통신하는 제2 컴퓨터 판독 가능한 매체를 포함하는 제어 시스템
    을 포함하고,
    상기 랜덤 분배 서비스 엔진의 상기 제1 컴퓨터 판독 가능한 매체는, 상기 제1 프로세서에 의해 실행될 때, 상기 제1 프로세서가,
    복수의 엔트로피 소스 중의 고유 엔트로피 소스로부터 유래하는 것으로 상기 복수의 전기 신호의 각각의 전기 신호를 구별하는 단계; 및
    각각 난수 및 태그를 포함하는 복수의 태그드(tagged) 난수 시퀀스를 생성하는 단계 - 상기 난수는 상기 복수의 전기 신호 중 구별된 전기 신호를 나타내는 컴퓨터 판독 가능한 표현이고, 상기 태그는 상기 구별된 전기 신호가 유래하는 상기 고유 엔트로피 소스를 나타내는 데이터를 포함함 -
    를 수행하는 명령어를 포함하고,
    상기 제어 시스템의 상기 제2 컴퓨터 판독 가능한 매체는, 상기 제2 프로세서에 의해 실행될 때, 상기 제2 프로세서가,
    상기 외부 네트워크로부터, 특정 엔트로피 소스로부터의 난수 시퀀스에 대한 제1 요청을 수신하는 단계;
    상기 랜덤 분배 서비스로, 상기 제1 요청에 응답하여, 상기 랜덤 분배 서비스의 상기 제1 프로세서에 의해 실행될 때, 상기 제1 프로세서가, 요청된 태그드 난수 시퀀스를 제공하게 하는 실행 가능한 명령어를 전송하는 단계 - 상기 요청된 태그드 난수 시퀀스는 상기 특정 엔트로피 소스를 나타내는 데이터를 갖는 태그를 포함하는 상기 복수의 태그드 난수 시퀀스의 태그드 난수 시퀀스임 -;
    상기 랜덤 분배 서비스로부터, 상기 요청된 태그드 난수 시퀀스를 수신하는 단계; 및
    상기 외부 네트워크로, 상기 요청된 태그드 난수 시퀀스를 전송하는 단계
    를 수행하는 명령어를 포함하는, 분산 컴퓨팅 환경.
  22. 제21항에 있어서,
    상기 랜덤 분배 서비스 엔진의 상기 제1 컴퓨터 판독 가능한 매체는, 상기 제1 프로세서에 의해 실행될 때, 상기 제1 프로세서가,
    각각 상기 복수의 태그드 난수 시퀀스의 적어도 일부의 조합을 나타내는 데이터를 포함하는 복수의 집계 헤더를 생성하는 단계; 및
    각각 상기 복수의 집계 헤더 중의 집계 헤더와 상기 집계 헤더가 나타내는 상기 복수의 태그드 난수 시퀀스의 상기 적어도 일부의 상기 조합의 각각의 태그드 난수 시퀀스의 연결을 포함하는 복수의 집계 시퀀스를 생성하는 단계
    를 수행하는 명령어를 포함하고,
    상기 제어 시스템의 상기 제2 컴퓨터 판독 가능한 매체는, 상기 제2 프로세서에 의해 실행될 때, 상기 제2 프로세서가,
    상기 외부 네트워크로부터, 특정 난수 시퀀스 조합에 대한 제2 요청을 수신하는 단계;
    상기 랜덤 분배 서비스로, 상기 제2 요청에 응답하여, 상기 랜덤 분배 서비스의 상기 제1 프로세서에 의해 실행될 때, 상기 제1 프로세서가, 요청된 집계 시퀀스를 제공하게 하는 실행 가능한 명령어를 전송하는 단계 - 상기 요청된 집계 시퀀스는 상기 특정 난수 시퀀스 조합을 나타내는 데이터를 갖는 집계 헤더를 포함하는 상기 복수의 집계 시퀀스의 집계 시퀀스임 -;
    상기 랜덤 분배 서비스로부터, 상기 요청된 집계 시퀀스를 수신하는 단계; 및
    상기 외부 네트워크로, 상기 요청된 집계 시퀀스를 전송하는 단계
    를 수행하는 명령어를 포함하는, 분산 컴퓨팅 환경.
  23. 제21항 또는 제22항에 있어서,
    상기 복수의 엔트로피 소스의 양자 엔트로피 소스를 더 포함하고, 상기 양자 엔트로피 소스는 상기 복수의 전기 신호의 전기 신호를 상기 랜덤 분배 서비스 엔진으로 제공하는, 분산 컴퓨팅 환경.
  24. 물리적 엔트로피 프로세스를 나타내는 전기 신호를 제공하는 엔트로피 소스;
    상기 전기 신호에 적어도 부분적으로 기초하여 랜덤 비트 스트림을 제공하는 엔트로피 인터페이스;
    상기 랜덤 비트 스트림에 적어도 부분적으로 기초하고 상기 엔트로피 소스를 나타내는 정보를 포함하는 태그드(tagged) 난수 시퀀스를 제공하고 식별자 엔진; 및
    외부 네트워크와 통신하고 상기 태그드 난수 시퀀스에 적어도 부분적으로 기초하여 검증 가능한 난수 시퀀스를 상기 외부 네트워크에 제공하는 분배 엔진
    을 포함하는, 엔트로피 시스템 노드.
  25. 제24항에 있어서,
    상기 엔트로피 시스템 노드는 휴대용 전자 장치인, 엔트로피 시스템 노드.
  26. 제24항 또는 제25항에 있어서,
    상기 엔트로피 시스템 노드는 휴대 전화기, 태블릿 컴퓨터 및 랩탑 컴퓨터 중 하나인, 엔트로피 시스템 노드.
  27. 제24항 내지 제26항 중 어느 한 항에 있어서,
    상기 태그드 난수 시퀀스 및 하나 이상의 추가 난수 시퀀스를 포함하는 집계 난수 시퀀스를 제공하는 집계기 엔진을 더 포함하고,
    상기 검증 가능한 난수 시퀀스는 상기 집계 난수 시퀀스에 적어도 부분적으로 기초하는, 엔트로피 시스템 노드.
  28. 제24항 내지 제27항 중 어느 한 항에 있어서,
    상기 엔트로피 시스템 노드는 상기 외부 네트워크를 통해 제2 엔트로피 시스템 노드와 통신하고,
    상기 제2 엔트로피 시스템 노드는 제2 엔트로피 소스를 포함하는, 엔트로피 시스템 노드.
  29. 엔트로피 시스템 노드에 있어서,
    랜덤 데이터 시퀀스를 갖는 컴퓨터 판독 가능한 메모리 저장소;
    상기 랜덤 데이터 시퀀스에 적어도 부분적으로 기초하고 상기 엔트로피 시스템 노드를 식별하는 데이터를 포함하는 태그드(tagged) 난수 시퀀스를 제공하는 식별자 엔진; 및
    외부 네트워크(10)와 통신하고, 상기 태그드 난수 시퀀스에 적어도 부분적으로 기초하여 검증 가능한 난수 시퀀스를 상기 외부 네트워크(10)에 제공하는 분배 엔진
    을 포함하는, 엔트로피 시스템 노드.
  30. 제29항에 있어서,
    센서 데이터를 제공하는 센서;
    상기 외부 네트워크(10)와 통신하고, 상기 검증 가능한 난수 시퀀스에 적어도 부분적으로 기초하여 암호화된 상기 센서 데이터를 포함하는 암호화된 신호를 제공하는 암호화 엔진
    을 더 포함하는, 엔트로피 시스템 노드.
KR1020217030575A 2019-02-28 2019-08-30 다중 소스 엔트로피 무작위성 집계 및 분배 네트워크 KR102626613B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247001005A KR102667156B1 (ko) 2019-02-28 2019-08-30 다중 소스 엔트로피 무작위성 집계 및 분배 네트워크

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/288,722 US10402172B1 (en) 2019-02-28 2019-02-28 Multi-source entropy and randomness aggregation and distribution network
US16/288,722 2019-02-28
PCT/US2019/048950 WO2020176131A1 (en) 2019-02-28 2019-08-30 Multi-source entropy randomness aggregation and distribution network

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020247001005A Division KR102667156B1 (ko) 2019-02-28 2019-08-30 다중 소스 엔트로피 무작위성 집계 및 분배 네트워크

Publications (2)

Publication Number Publication Date
KR20210126767A true KR20210126767A (ko) 2021-10-20
KR102626613B1 KR102626613B1 (ko) 2024-01-19

Family

ID=67770308

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217030575A KR102626613B1 (ko) 2019-02-28 2019-08-30 다중 소스 엔트로피 무작위성 집계 및 분배 네트워크

Country Status (5)

Country Link
US (2) US10402172B1 (ko)
EP (1) EP3931682A1 (ko)
JP (1) JP7399975B2 (ko)
KR (1) KR102626613B1 (ko)
WO (1) WO2020176131A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963283B2 (en) * 2018-12-27 2021-03-30 Nutanix, Inc. Configuration management for hybrid cloud
US11177946B2 (en) * 2019-06-21 2021-11-16 Verizon Patent And Licensing Inc. Quantum entropy distributed via software defined perimeter connections
US11949711B2 (en) * 2019-07-08 2024-04-02 Caci International, Inc. Systems and methods for securing information
US11360743B2 (en) 2019-07-21 2022-06-14 Cyber Reliant Corp. Data set including a secure key
CN110737424A (zh) * 2019-09-10 2020-01-31 成都四方伟业软件股份有限公司 一种随机数产生方法及系统
US11301215B2 (en) * 2020-01-27 2022-04-12 International Business Machines Corporation Real time configuration of multiple true random number generator sources for optimized entropy generation
US20210240444A1 (en) * 2020-02-05 2021-08-05 Cyber Reliant Corp. Random number generator utilizing sensor entropy
US11956347B2 (en) * 2020-06-30 2024-04-09 Samsung Electronics Co., Ltd. Method and apparatus with mobile payment and verification
US11329811B1 (en) * 2021-03-15 2022-05-10 Motorola Mobility Llc Quantum-based security for hardware devices
US20240022400A1 (en) * 2022-07-12 2024-01-18 Veiovia Ltd. Computer implemented methods, apparatuses and software for random number generation based on genetic information

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160124716A1 (en) * 2014-10-30 2016-05-05 Seagate Technology Llc Deriving Entropy From Multiple Sources Having Different Trust Levels
US20160342394A1 (en) * 2015-05-18 2016-11-24 Red Hat Israel, Ltd. Multi-factor entropy sourcing for random number generators
US20170168776A1 (en) * 2015-12-09 2017-06-15 International Business Machines Corporation Extracting Entropy From Mobile Devices To Generate Random Numbers

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778069A (en) * 1996-04-10 1998-07-07 Microsoft Corporation Non-biased pseudo random number generator
US6628786B1 (en) 1997-09-30 2003-09-30 Sun Microsystems, Inc. Distributed state random number generator and method for utilizing same
US6667980B1 (en) 1999-10-21 2003-12-23 Sun Microsystems, Inc. Method and apparatus for providing scalable services using a packet distribution table
US6826186B1 (en) 2000-03-07 2004-11-30 Cisco Technology, Inc. Method and apparatus for distributing packets across multiple paths leading to a destination
US7242776B1 (en) 2000-08-08 2007-07-10 Verizon Corporate Services Group Inc. Method and apparatus for the generation and distribution of random bits
US6931128B2 (en) 2001-01-16 2005-08-16 Microsoft Corporation Methods and systems for generating encryption keys using random bit generators
US6871206B2 (en) 2001-11-20 2005-03-22 Ip-First, Llc Continuous multi-buffering random number generator
US7190696B1 (en) 2002-03-05 2007-03-13 Force10 Networks, Inc. System and method for distributing packets among a plurality of paths to a destination
US7304999B2 (en) 2002-08-24 2007-12-04 Cisco Technology Inc. Methods and apparatus for processing packets including distributing packets across multiple packet processing engines and gathering the processed packets from the processing engines
US8718089B2 (en) 2003-09-08 2014-05-06 Toshiba America Research Inc. Aggregation and fragmentation of multiplexed downlink packets
US7706365B2 (en) 2003-11-25 2010-04-27 California Institute Of Technology Randomized distributed network coding
US7930332B2 (en) * 2007-03-23 2011-04-19 Microsoft Corporation Weighted entropy pool service
JP4917478B2 (ja) 2007-05-25 2012-04-18 株式会社ケーヒン 乱数発生装置及び車両制御装置
WO2010022767A1 (en) 2008-08-26 2010-03-04 Telefonaktiebolaget Lm Ericsson (Publ) Packet forwarding in a network
US8380768B2 (en) 2009-01-30 2013-02-19 Freescale Semiconductor, Inc. Random number generator
WO2011128268A1 (en) 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Probability interval partioning encoder and decoder
US8429408B2 (en) 2010-06-11 2013-04-23 Certicom Corp. Masking the output of random number generators in key generation protocols
US9128791B1 (en) * 2011-03-21 2015-09-08 Board Of Regents Of The University Of Texas System Generation of distinct pseudorandom number streams based on program context
US9383969B2 (en) 2011-04-05 2016-07-05 Intrinsic Id B.V. Random number generating system based on memory start-up noise
US8750309B2 (en) 2012-02-29 2014-06-10 Telefonaktiebolaget L M Ericsson (Publ) Compound masking and entropy for data packet classification using tree-based binary pattern matching
US9086936B2 (en) 2012-07-31 2015-07-21 International Business Machines Corporation Method of entropy distribution on a parallel computer
SG11201506784TA (en) 2013-02-28 2015-09-29 Amazon Tech Inc Configurable-quality random data service
US10275268B2 (en) * 2013-08-26 2019-04-30 Red Hat, Inc. Providing entropy to a guest operating system
WO2015112753A1 (en) 2014-01-24 2015-07-30 Footmarks, Inc. Multi-broadcast beacon signals
US9507566B2 (en) 2014-04-01 2016-11-29 Oracle International Corporation Entropy generation for a distributed computing system
US9749127B1 (en) * 2014-06-03 2017-08-29 Amazon Technologies, Inc. Establishing entropy on a system
US10348704B2 (en) * 2015-07-30 2019-07-09 Helder Silvestre Paiva Figueira Method for a dynamic perpetual encryption cryptosystem
JP7013447B2 (ja) * 2016-08-19 2022-01-31 オラクル・インターナショナル・コーポレイション 多様なソースからのエントロピの収集
US10372419B2 (en) 2017-04-18 2019-08-06 International Business Machines Corporation Trusted random number generation by a cloud server
WO2020096614A1 (en) * 2018-11-09 2020-05-14 Visa International Service Association Distributed entropy system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160124716A1 (en) * 2014-10-30 2016-05-05 Seagate Technology Llc Deriving Entropy From Multiple Sources Having Different Trust Levels
US20160342394A1 (en) * 2015-05-18 2016-11-24 Red Hat Israel, Ltd. Multi-factor entropy sourcing for random number generators
US20170168776A1 (en) * 2015-12-09 2017-06-15 International Business Machines Corporation Extracting Entropy From Mobile Devices To Generate Random Numbers

Also Published As

Publication number Publication date
US10402172B1 (en) 2019-09-03
JP2022522287A (ja) 2022-04-15
KR20240009536A (ko) 2024-01-22
WO2020176131A1 (en) 2020-09-03
KR102626613B1 (ko) 2024-01-19
US20220150051A1 (en) 2022-05-12
EP3931682A1 (en) 2022-01-05
JP7399975B2 (ja) 2023-12-18

Similar Documents

Publication Publication Date Title
KR102626613B1 (ko) 다중 소스 엔트로피 무작위성 집계 및 분배 네트워크
US20220277099A1 (en) Encrypting data records and processing encrypted records without exposing plaintext
US9680809B2 (en) Secure data storage on a cloud environment
US9111106B2 (en) Data processing apparatus and data storage apparatus
KR20220137788A (ko) 암호화된 사용자 데이터 송신 및 저장
CN103098070A (zh) 用于监视网络服务中数据位置的方法、装置和系统
CN109067732A (zh) 物联网设备及数据接入系统、方法及计算机可读存储介质
CN114041134A (zh) 用于基于区块链的安全存储的系统和方法
CN114844688A (zh) 数据传输方法、装置、设备及计算机存储介质
CN106062749A (zh) 使用查询数据提供流行率信息
Zhang et al. Privacy-preserving network provenance
Hoang et al. A multi-server oblivious dynamic searchable encryption framework
KR20200142588A (ko) 저선형 공개-키 동작들을 사용하는 개인 정보 리트리벌
US20190340389A1 (en) Search device, monitoring system, and computer readable medium
CN116633701A (zh) 信息传输方法、装置、计算机设备和存储介质
KR102667156B1 (ko) 다중 소스 엔트로피 무작위성 집계 및 분배 네트워크
EP3001346B1 (en) Directory service device, client device, key cloud system, method thereof, and program
EP3657318A1 (en) Client-side entropy collection for server-side usage
Gao et al. Secure contact tracing platform from simplest private set intersection cardinality
AU2016253706B2 (en) Data structure and algorithm to track machines
US20230011742A1 (en) Selective encryption delineation
Cui et al. Privacy-preserving searchable databases with controllable leakage
US20240061941A1 (en) Distribution of Secure Data for Networked Transactions
Zhang et al. Achieving proof of shared ownership for the shared file in collaborative cloud applications
George et al. Safest Secure and Consistent Data Services in the Storage of Cloud Computing

Legal Events

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