KR20210039499A - 통신 프로토콜 - Google Patents

통신 프로토콜 Download PDF

Info

Publication number
KR20210039499A
KR20210039499A KR1020217009168A KR20217009168A KR20210039499A KR 20210039499 A KR20210039499 A KR 20210039499A KR 1020217009168 A KR1020217009168 A KR 1020217009168A KR 20217009168 A KR20217009168 A KR 20217009168A KR 20210039499 A KR20210039499 A KR 20210039499A
Authority
KR
South Korea
Prior art keywords
message
communication
encrypted
network
noise data
Prior art date
Application number
KR1020217009168A
Other languages
English (en)
Inventor
벤자민 카프
지부 아브라함
Original Assignee
배 시스템즈 인포메이션 앤드 일렉트로닉 시스템즈 인티크레이션, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 배 시스템즈 인포메이션 앤드 일렉트로닉 시스템즈 인티크레이션, 인크. filed Critical 배 시스템즈 인포메이션 앤드 일렉트로닉 시스템즈 인티크레이션, 인크.
Publication of KR20210039499A publication Critical patent/KR20210039499A/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/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0421Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

모든 메시지를 암호화하고 네트워크를 통해 연속적으로 노이즈 메시지를 발신하며 익명 네트워크를 통해 모든 네트워크 활동을 라우팅함으로써 통신 네트워크를 통해 발송되는 통신을 무조건적으로 보호할 수 있는 지식이 없는 통신 프로토콜이 제공된다. 이러한 구성요소의 조합은 네트워크의 도청자가 통신이 발신된 시기, 통신 내용 및 통계, 발신자, 또는 통신의 의도된 수신자에 대한 어떠한 정보도 수집하지 못하도록 방지한다.

Description

통신 프로토콜
본 개시는 보안 전자 통신 프로토콜에 관한 것이다. 보다 구체적으로, 일 예시에서, 본 개시는 도청자(eavesdropper)이 통신에 관한 임의의 정보를 얻는 것을 방지할 수 있는 전자 통신 프로토콜에 관한 것이다. 다른 예시에서, 본 개시는 도청자가 통신에 관한 임의의 지식을 획득하는 것을 방지하기 위해 OTP(one time pad) 암호화, 지속적인 백그라운드 통신, 및 무조건적인 익명성을 이용하는 보안 전자 통신 프로토콜에 관한 것이다.
원거리 통신(telecommunication) 이벤트에서, 통신 프로토콜은 통신 시스템의 둘 이상의 엔티티가 임의의 종류의 물리량 변화를 통해 정보를 전송할 수 있도록 하는 규칙의 시스템이다. 프로토콜은, 규칙 구문(rules syntax), 의미론(semantics), 및 통신의 동기화, 및 가능한 에러 복구 방법을 규정한다. 프로토콜은 하드웨어, 소프트웨어, 또는 둘 모두의 조합으로 구현될 수 있다. 통신 시스템은 다양한 메시지를 교환하기 위해 잘 규정된 형식(프로토콜)을 사용한다. 각 메시지에는 특정 상황에 대해 가능한 다양한 응답의 범주로부터 응답을 이끌어내기 위한 의도의 정확한 의미를 가진다. 지정된 행동은 전형적으로 어떻게 구현되는지와는 독립적이다.
개인 통신의 내용을 보호하는 것은 오랜 기간 보낸 사람과 받는 사람 모두에 의해 문제가 되어왔다. 메시지를 가로채면 보낸 사람과 받는 사람에 대한 정보의 가상 보물 창고(virtual treasure trove)를 획득할 수 있다. 내용에 액세스하지 않고도, 메시지 자체에 대한 세부 정보를 학습하는 것은 도청자에게 중요한 정보를 줄 수 있다. 누가, 무엇을, 언제, 어디서 메시지를 보내는지는 그 내용만큼이나 중요할 수 있다. 이러한 정보로 무장한 도청자는 종종 메시지의 내용을 추론할 수 있다. 따라서, 이러한 정보를 보호하는 것은 내용 자체를 보호하는 것 만큼이나 통신을 보호하는데 중요할 수 있다.
현대 기술의 출현과 컴퓨터와 하드웨어 및 소프트웨어 모두의 급속한 발전으로 인해 통신을 가로채고, 및/또는 통신에 대한 정보를 배우는 것이 더 쉬워졌지만 보안은 구현하기가 더 어려워졌다.
암호화 기술은 매일 발생하는 위협에 대응하여 더욱 진화하고 있다. 주요 기업과 정부 기관이 해킹당하고, 데이터가 유출되었다는 뉴스 보도를 보는 것이 일반적이 되었다. 이러한 공격과 데이터 침해의 빈도는 컴퓨터 기술과 인간의 기술이 발전함에 따라 계속 증가하는 것처럼 보인다.
현재 사용되는 대부분의 암호학은 큰 소수를 인수분해하는데 기반을 두고 있으며, 이는 일반적으로 매우 어렵긴 하나 깨기가 불가능하지는 않은 것으로 보인다. 대신, 적절한 계산 능력과 충분한 시간이 있다면, 이러한 암호화 기술은 근본적으로 깨질 수 있다. 따라서, 충분한 계산 성능과 충분한 시간이 주어지면, 큰 소수 인수를 인수분해하는 것을 기반으로 하는 모든 시스템은 취약하며, 파손(breach)될 수 있다. 이는 보안 전문가들이 시스템을 "파손된 것으로 가정"한 것으로 간주하는 최신 추세이며, 그들의 시스템이 이미 손상되었다고 가정하고 이에 따라 계획을 세워야한다는 의미이다.
암호 작성학(cryptography)에서, OTP는 깰 수 없는 암호화 기술이지만, 발송된 메시지와 같거나 그보다 긴 크기의 일회성 미리 공유된 키를 사용하는 것을 요구한다. 이러한 기술에서, 일반 텍스트(plaintext)는 임의의 비밀 키(이 또한 OTP(one-time pad)라고도 함)와 쌍을 이룬다. 그런 다음, 일반 텍스트의 각 비트 또는 문자는 모듈식 추가(modular addition)를 사용하여 패드로부터 해당 비트 또는 문자와 결합함으로써 암호화된다. 키가 진정으로 무작위이고, 최소한 일반 텍스트만큼 길며, 전체 또는 일부가 재사용되지 않고 완전히 비밀로 유지되는 경우, 결과 암호문(ciphertext)은 해독하거나 깨는 것이 불가능할 것이다. 또한, 완전한 비밀 속성을 가진 임의의 암호(cipher)는 OTP 키와 효과적으로 동일한 요구 사항을 가진 키를 사용해야 한다는 것이 입증되었다. OTP(one-time pad) 암호의 디지털 버전은 국가에서 사실 상 거의 모든 일급 비밀 외교 및 군사 통신에 사용되지만, 보안 키 배포의 문제로 인해 덜 중요한 응용 프로그램에서는 실용적이지 않다.
"파손된 것으로 가정된" 상태는 시스템이 손상되었다는 가정을 요구하며 현재 OTP 암호화의 비실용성으로 인하여 현재 암호화 통신 시스템에는 문제가 계속 존재한다. 따라서, 향상된 암호화 통신 시스템에 대한 요구가 계속 존재한다. 일 양태에 따라, 본 개시의 예시적인 실시예는, 통신 메시지의 내용을 보호하는 동시에 언제, 어디서, 어떻게, 왜, 누구에 의해, 누구에게 통신 메시지가 보내지는지 마스킹하기 위해 노이즈 메시지 또는 노이즈의 스트림을 전송하는 통신 프로토콜을 제공한다. 하나의 특정 구현에서, 발신자와 수신자 사이의 통신 메시지의 내용은 무조건적으로 안전하다.
일 양태에서, 본 개시의 예시적인 실시예는 보안 통신을 제공하는 방법으로서, 노이즈 데이터를 생성하는 단계; 제1 정의된 전송 프로토콜로 통신 네트워크를 통해 적어도 하나의 다른 네트워크 참가자에게 상기 노이즈 데이터를 전송하는 단계; 발신자가, 통신 메시지를 생성하고 상기 통신 메시지를 암호화 프로토콜로 암호화하여 키를 사용하여 해독되도록 구성된 암호화된 메시지를 생성하는 단계; 도청자가 암호화된 메시지를 노이즈 데이터와 구별하지 못하도록, 상기 암호화된 메시지를 상기 제1 전송 프로토콜과 실질적으로 동일한 제2 정의된 전송 프로토콜로 상기 통신 네트워크를 통해 복수의 네트워크 참가자에게 전송하는 단계; 및 적어도 한 명의 의도된 수신자가, 통신 메시지를 획득하기 위해 상기 키를 사용하여 상기 암호화된 메시지를 해독하는 단계를 포함하는 보안 통신을 제공하는 방법을 제공할 수 있다. 본 실시예 또는 또 다른 실시예는 암호화된 메시지를 전송하는 단계 이후 통신 네트워크를 통해 노이즈 데이터를 계속 전송하는 단계를 더욱 제공할 수 있다. 본 실시예 또는 또 다른 실시예는 n개의 공유를 갖는 라운드로 대역폭을 분할하는 단계 - 여기서 n은 네트워크 참가자의 수와 같고, 상기 네트워크 참가자는: 발신자, 적어도 한 명의 의도된 수신자, 및 적어도 한 명의 다른 네트워크 참가자 중 적어도 하나를 포함함 -; 모든 네트워크 참가자에게 적어도 하나의 공유를 무작위로 할당하는 단계; 및 라운드마다, 노이즈 데이터 및 암호화된 메시지 중 하나를 전송하는 단계를 더욱 제공할 수 있다. 본 실시예 또는 또 다른 실시예는, 적어도 하나의 네트워크 참가자가, 모든 노이즈 데이터 및 암호화된 메시지를 수신하는 단계; 및 키를 사용하여 모든 노이즈 데이터 및 암호화된 메시지의 해독을 시도하는 단계를 더욱 제공할 수 있다. 본 실시예 또는 또 다른 실시예는, 통신 네트워크를 통해 노이즈 데이터를 전송하는 단계 이전에 암호화 프로토콜로 노이즈 데이터를 암호화하는 단계를 더 제공할 수 있다. 본 실시예 또는 또 다른 실시예는, 통신 네트워크가 복수의 네트워크 참가자에 대한 익명 네트워크이고, n이 네트워크 참가자의 수이고, 1/n %의 성공 확률을 가진 추측을 제외하고 어떤 참가자가 암호화된 메시지를 발신하였는지 결정하는 것을 배제하는 단계를 더욱 제공할 수 있다. 본 실시예 또는 또 다른 실시예는, 암호화된 메시지와 암호화된 노이즈 데이터를 동일한 암호화 프로토콜로 암호화하는 단계 - 암호화 프로토콜은 무조건적인 보안 프로세스임 -; 및 익명 네트워크를 통한 대부분의 활동이 도청자에게 균일하게 보이도록 보장하는 단계를 더욱 제공할 수 있다. 본 실시예 또는 또 다른 실시예는, 무조건적인 보안 프로세스가 OTP(One Time Pad) 프로세스를 더 포함하는 것을 더욱 제공할 수 있다. 본 실시예 또는 또 다른 실시예는, 이중 암호화된 메시지를 생성하기 위해 OTP 프로세스를 사용하여 메시지 및 노이즈 데이터를 암호화하기 전에 제1 암호화 층으로 메시지 및 노이즈 데이터를 암호화하는 단계; 및 가능한 모든 해독 가능성이 동일한 암호화 체계를 생성하는 단계를 더욱 제공할 수 있다. 본 실시예 또는 또 다른 실시예는, 익명 네트워크의 각 참가자로부터 암호화된 노이즈 데이터를 생성하는 단계, 및 각 참가자로부터 암호화된 노이즈 데이터를 익명 네트워크의 다른 모든 참가자에게 전송하는 단계를 더 제공할 수 있다. 본 실시예 또는 또 다른 실시예는, 익명 네트워크를 통한 활동을 항상 일정한 레벨로 유지하는 단계를 더욱 제공할 수 있으며, 가능한 모든 암호 해독 가능성이 동일한 암호화 체계를 생성하는 단계는: 각 통신 메시지 및 노이즈 데이터 내의 데이터의 각 비트가 1 또는 0으로 무작위로 변경하는 단계, 및 OTP 프로세스로부터 완전히 난수를 출력하기 위해 모든 비트가 무작위로 켜지거나 (1) 또는 꺼지도록 (0) 무작위로 스위칭하는 단계를 더 포함하는 것을 더욱 제공할 수 있다. 본 실시예 또는 또 다른 실시예는, 통신 메시지와 동일한 개수의 비트를 갖는 일회성 키를 무작위로 구성하는 단계를 더욱 제공할 수 있다. 본 실시예 또는 또 다른 실시예는, 일회성 키는 통신 메시지를 생성하기 전에 구성되며, 추가로: 암호화된 메시지를 전송하는 단계 이전에 암호화된 메시지의 의도된 수신자에게 일회성 키를 안전하게 전달하는 단계를 더 포함하는 것을 더욱 제공할 수 있다. 본 실시예 또는 또 다른 실시예는, 암호화된 메시지를 해독하는데 사용되는 일회성 키의 일부에만 영향을 미치는 단계를 더욱 제공할 수 있다. 본 실시예 또는 또 다른 실시예는, 본 방법이 무작위 오라클(random oracle)에서 구현되는 경우를 더욱 제공할 수 있다.
일 양태에서, 본 개시의 예시적인 실시예는, 명령어가 인코딩되어 있는 비일시적인 컴퓨터 판독 가능한 저장 매체로서, 적어도 하나의 프로세스에 의해 실행되는 경우, 발신자와 의도된 수신자 사이에 메시지를 안전하고 기밀로 메시지를 교환하는 작업을 구현하고, 상기 명령어는: 발신자에 의해 생성된 통신 메시지를 식별하고, 상기 통신 메시지를 암호화 프로토콜로 암호화하여 암호화된 메시지를 생성하는 것; 네트워크를 통해 암호화된 메시지를 복수의 네트워크 참가자에게 발신하는 것; 노이즈 데이터를 생성하고, 모든 노이즈 데이터를 암호화 프로토콜로 암호화하여 암호화된 노이즈를 생성하는 것; 암호화된 노이즈를 복수의 네트워크 참가자들 사이의 네트워크를 통해 전송하는 것; 복수의 네트워크 참가자 중 네트워크 수신자 각각으로부터 암호화된 노이즈 및 암호화된 메시지를 수신하는 것; 메시지 전송과 관련된 대역폭 불일치를 마스킹하는 것; 수신자가 미리 제공된 고유 키를 사용하여 암호화된 노이즈 및 암호화된 메시지를 해독하려고 시도하도록 영향을 주는 것; 성공적으로 해독된 통신 메시지를 적어도 한 명의 의도된 수신자에게 전달하는 것에 영향을 주는 것; 및 다른 모든 수신자가 실패한 모든 암호 해독 시도를 무시하고, 무시된 모든 메시지 및 노이즈를 삭제하도록 영향을 주는 것을 포함하는, 비일시적인 컴퓨터 판독 가능한 저장 매체를 제공할 수 있다.
또 다른 양태에서, 본 개시의 예시적인 실시예는 보안 통신을 제공하는 방법으로서, 네트워크 참가자가, 무작위 노이즈 데이터를 생성하는 단계; 제1 정의된 전송 프로토콜로 통신 네트워크를 통해 적어도 하나의 다른 네트워크 참가자에게 노이즈 데이터를 전송하는 단계; 발신자가, 적어도 하나의 통신 메시지를 생성하고 상기 통신 메시지를 암호화 프로토콜로 암호화하여 키를 사용하여 해독되도록 구성된 암호화된 메시지를 생성하는 단계; 도청자가 암호화된 메시지를 노이즈 데이터와 구별하지 못하도록, 상기 암호화된 메시지를 제1 정의된 전송 프로토콜을 사용하여 통신 네트워크를 통해 복수의 네트워크 참가자에게 전송하는 단계; 및 적어도 한 명의 의도된 수신자가, 통신 메시지를 획득하기 위해 상기 키를 사용하여 상기 암호화된 메시지를 해독하는 단계를 포함하는, 보안 통신을 제공하는 방법을 제공할 수 있다. 본 예시적인 방법 또는 또 다른 예시적인 방법은, 통신 네트워크를 통해 노이즈 데이터를 계속 전송하고, 암호화된 메시지를 간헐적으로 전송하는 단계를 더욱 제공할 수 있다. 본 예시적인 방법 또는 또 다른 예시적인 방법은, n개의 공유를 갖는 라운드로 대역폭을 분할하는 단계 - 여기서 n은 네트워크 참가자의 수와 같고, 상기 네트워크 참가자는: 발신자, 적어도 한 명의 의도된 수신자, 및 임의의 수의 추가 네트워크 참가자 중 적어도 하나를 포함함 -; 적어도 하나의 발신자에게 적어도 하나의 공유를 할당하는 단계; 및 라운드마다, 노이즈 데이터 및 암호화된 메시지 중 하나를 전송하는 단계를 제공할 수 있다. 본 예시적인 방법 또는 또 다른 예시적인 방법은, 적어도 하나의 네트워크 참가자가, 모든 노이즈 데이터 및 암호화된 메시지를 수신하는 단계; 및 키를 사용하여 모든 노이즈 데이터 및 암호화된 메시지의 해독을 시도하는 단계를 더욱 제공할 수 있다. 본 예시적인 방법 또는 또 다른 예시적인 방법은, 통신 네트워크를 통해 노이즈 데이터를 전송하는 단계 이전에 암호화 프로토콜로 노이즈 데이터를 암호화하는 단계를 더 제공할 수 있다. 본 예시적인 방법 또는 또 다른 예시적인 방법은, 통신 네트워크가 네트워크 참가자에 대한 익명 네트워크이고, n이 네트워크 참가자의 수이고, 어떤 참가자가 암호화된 메시지를 발신하였는지 결정하는 것을 배제하는 단계를 더욱 제공할 수 있다. 본 예시적인 방법 또는 또 다른 예시적인 방법은, 익명 네트워크의 각 참가자로부터 암호화된 노이즈 데이터를 생성하고, 각 참가자로부터 암호화된 노이즈 데이터를 익명 네트워크의 다른 모든 참가자에게 전송하는 단계를 더욱 제공할 수 있다. 본 예시적인 방법 또는 또 다른 예시적인 방법은, 암호화된 메시지 및 노이즈 데이터를 동일한 암호화 프로토콜로 암호화하는 단계 - 암호화 프로토콜은 무조건적인 보안 프로세스임 -; 및 통신 네트워크를 통한 활동이 도청자에게 균일하게 보이도록 보장하는 단계를 더욱 제공할 수 있다. 본 예시적인 방법 또는 또 다른 예시적인 방법은, 무조건적인 보안 프로세스가 모든 해독이 동등하게 가능하도록 제공하는 것을 더욱 제공할 수 있다. 본 예시적인 방법 또는 또 다른 예시적인 방법은, 무조건적인 보안 프로세스로 암호화된 메시지를 암호화하는 단계 및 이중 암호화된 메시지를 제공하는 단계를 더욱 제공할 수 있다. 본 예시적인 방법 또는 또 다른 예시적인 방법은, 모든 암호 해독 가능성이 동일한 암호화 프로토콜을 생성하는 단계는: 각 통신 메시지 및 노이즈 데이터 내의 데이터의 각 비트가 1 또는 0으로 무작위로 변경하는 단계, 및 무조건적인 보안 프로세스로부터 완전히 난수를 출력하기 위해 모든 비트가 무작위로 켜지거나 (1) 또는 꺼지도록 (0) 무작위로 스위칭하는 단계를 더 포함하는 것을 더욱 제공할 수 있다. 본 예시적인 방법 또는 또 다른 예시적인 방법은, 통신 네트워크를 통한 활동을 항상 일정한 레벨로 유지하는 단계를 더욱 제공할 수 있다. 본 예시적인 방법 또는 또 다른 예시적인 방법은, 키가 통신 메시지와 동일한 개수의 비트를 갖는 무작위 일회성 키인 것을 더욱 제공할 수 있다. 본 예시적인 방법 또는 또 다른 예시적인 방법은, 암호화된 메시지의 의도된 수신자에게 일회성 키를 안전하게 전달하는 단계를 더 포함하는 것을 더욱 제공할 수 있다.
또 다른 양태에서, 본 개시의 예시적인 실시예는 보안 통신을 제공하는 방법으로서, 연속적으로 노이즈 데이터를 생성하는 단계; 네트워크 참가자에게 익명 네트워크를 통해 노이즈 데이터 스트림을 연속적으로 발신하는 단계; 적어도 하나의 통신 메시지를 생성하는 단계; 암호화된 통신 메시지를 제공하는 무조건적인 보안 프로세스를 사용하여 통신 메시지를 암호화하는 단계; 네트워크 참가자에게 익명 네트워크를 통해 암호화된 통신 메시지를 발신하는 단계; 네트워크 참가자가 노이즈 데이터 및 암호화된 통신 메시지를 수신하는 단계; 키를 사용하여 노이즈 데이터 및 암호화된 통신 메시지에 대해 해독 프로토콜을 실행하는 단계; 및 실패한 해독 시도를 무시하는 단계를 포함하는, 보안 통신을 제공하는 방법을 제공할 수 있다. 이러한 예시적인 방법 또는 다른 예시적인 방법은 암호화된 통신 메시지와 노이즈 데이터를 발신하는 것 사이에서 스위칭하는 때 관찰 가능한 시간적 차이가 없는 경우를 더욱 제공할 수 있다. 이러한 예시적인 방법 또는 또 다른 예시적인 방법은 노이즈 데이터 및 통신 메시지를 중앙 허브로 발신하는 것을 더욱 제공할 수 있다. 이러한 예시적인 방법 또는 또 다른 예시적인 방법은 적어도 한 명의 의도된 수신자에게 성공적으로 해독된 통신 메시지를 전달하는 것을 더욱 제공할 수 있다.
또 다른 양태에서, 본 개시의 예시적인 실시예는, 적어도 하나의 프로세서에 의해 실행될 때, 발신자와 적어도 한 명의 의도된 수신자 사이에 안전하고 기밀적으로 메시지를 교환하는 작업을 구현하는 명령어가 인코딩된 컴퓨터 판독 가능한 저장 매체로서, 상기 명령어는: 발신자에 의해 생성된 적어도 하나의 통신 메시지를 식별하고, 암호화된 메시지를 생성하기 위해 암호화 프로토콜로 통신 메시지를 암호화하고; 암호화된 메시지를 네트워크를 통해 복수의 네트워크 참가자에게 발신하고; 노이즈 데이터를 생성하며; 네트워크 팜가자에게 네트워크를 통해 노이즈 데이터를 전송하고; 노이즈 데이터 및 암호화된 메시지의 메시지 전송과 관련된 대역폭 불일치를 마스킹하고; 노이즈 데이터 및 암호화된 메시지 중 적어도 하나를 수신하고; 적어도 한 명의 의도된 수신자가 키를 사용하여 노이즈 데이터 및 암호화된 메시지를 해독하려고 시도하며; 성공적으로 해독된 통신 메시지를 적어도 한 명의 의도된 수신자에게 전달하고; 그리고 실패한 해독 시도를 무시하는 것을 포함하는, 컴퓨터 판독 가능한 저장 매체를 제공할 수 있다.
또 다른 양태에서, 본 개시의 예시적인 실시예는 보안 통신 시스템으로서, 노이즈 생성기; 노이즈 생성기에 결합된 멀티플렉서 - 노이즈 생성기는 멀티플렉서에 대한 입력인 노이즈 데이터를 생성함 -; 사용자에 의해 생성된 통신 메시지 - 통신 메시지는 멀티플렉서에 대한 입력이며, 통신 메시지는 암호화 모듈에 의해 암호화됨 -; 노이즈 데이터 및 암호화된 통신 메시지를 수신하는 익명 네트워크; 및 암호화된 통신 메시지를 해독하는 해독 모듈 - 암호화된 통신 메시지 및 노이즈 데이터는 구별할 수 없도록 유사한 전송 프로토콜을 사용하여 전송됨 -을 포함하는, 보안 통신 시스템을 제공할 수 있다. 이러한 예시적인 실시예 또는 또 다른 예시적인 실시예는 암호화 모듈이 무조건적인 기밀성 암호화 모듈이고, 통신 메시지가 멀티플렉서에 입력되기 전에 암호화되며, 해독 모듈이 무조건적인 기밀성 해독 모듈인 경우를 더 제공할 수 있다. 이러한 예시적인 실시예 또는 또 다른 예시적인 실시예는 통신 메시지가 멀티플렉서에 입력되기 전에 암호화되고, 멀티플렉서 이후에 노이즈 데이터 및 암호화된 통신 메시지를 암호화하는 무조건적인 기밀성 암호화 모듈에 의한 2차 암호화를 더 포함하고, 해독 모듈이 통신 메시지를 해독하기 전에 제2 해독 메시지를 해독하는 무조건적인 기밀성 해독 모듈을 더 포함하는 경우를 더 제공할 수 있다. 이러한 예시적인 실시예 또는 또 다른 예시적인 실시예는 통신 메시지가 멀티플렉서에 입력되기 전에 암호화되고, 멀티플렉서 이전에 암호화된 통신 메시지를 암호화하는 무조건적인 기밀성 암호화 모듈에 의한 2차 암호화를 더 포함하고, 해독 모듈은 통신 메시지를 해독하는 무조건적인 해독 모듈이다. 이러한 예시적인 실시예 또는 또 다른 예시적인 실시예는 암호화 모듈이 무조건적인 기밀성 암호화 모듈이고, 노이즈 데이터 및 통신 메시지가 멀티플렉서 이후에 암호화되고, 해독 모듈이 무조건적인 기밀성 해독 모듈인 경우를 더 제공할 수 있다.
본 개시의 샘플 실시예는, 이하의 설명에 제시되고, 도면에 도시되며, 또한 첨부된 청구범위에서 특히 명확하게 명시되고 제시된다.
도 1은 본 개시의 일 실시예에 따라 발신자로부터 보안 통신 메시지가 취해져서 수신자로 가는 통로의 도식적 표현이다.
도 2는 본 개시의 일 실시예에 따른 스포크(spoke) 및 허브 통신 네트워크의 개략도이다.
도 3은 본 개시의 일 실시예에 따라 본 명세서에 개시된 통신 프로토콜의 개략적인 흐름도이다.
도 4는 본 개시의 일 실시예에 따라 본 명세서에 개시된 통신 프로토콜 시스템의 시스템 블록도이다.
도 5는 본 개시의 일 실시예에 따라 본 명세서에 개시된 통신 프로토콜 시스템의 시스템 블록도이다.
도 6은 본 개시의 일 실시예에 따라 본 명세서에 개시된 통신 프로토콜 시스템의 시스템 블록도이다.
도 7은 본 개시의 일 실시예에 따라 본 명세서에 개시된 통신 프로토콜 시스템의 시스템 블록도이다.
유사한 부분은 도면 전체에 걸쳐 유사한 도면 부호로 지칭된다.
본 개시의 일 양태에 따른 통신 시스템은 일반적으로 1로 도시된다. 통신 시스템(1)은 발신자(10)와 수신자(12) 사이에서 통신 메시지를 발송하기 위한 통신 프로토콜을 포함한다. 하나의 예시적인 구현에서, 통신 프로토콜은 메시지의 내용 뿐만 아니라 메시지 자체와 관련된 임의의 정보를 보호하기 위해 적어도 3개의 구성 요소를 이용한다. 어떤 경우에는, 통신 메시지는 무조건적으로 보안된다. 통신 프로토콜은 도청자(eavesdropper)(19) (이하에서는 "Eve"(19)라고 지칭함)가 보내지는 통신에 대한 어떠한 지식이나 정보를 획득할 가능성을 줄이거나 제거한다.
도 1은 발신자(10)(이는 본 명세서에서 "Alice"(10)라고도 지칭될 수 있음), 암호화된 메시지(13')를 생성하기 위해 예컨대 OTP(One Time Pad algorithm, OTP)와 같은 무조건적인 보안 프로세스를 통해 암호화될 수 있는 통신 메시지(13), 발신 키(16A), 네트워크(18), 도청자(19), 수신자(이는 "Bob"(12)이라고도 지칭될 수 있음), 및 수신 키(16B)를 포함하는 통신 시스템(1)를 도시한다. 통신 메시지(13)는 네트워크(18)를 통해 경로(17) 또는 다른 경로를 따라 이동하는 노이즈 데이터(21)와 동시에 통신 경로(17)를 따라 이동한다.
일 예시에서, 통신 네트워크(18)는 데이터가 정적이거나 동적일 수 있는 경로를 따라 이동하는 인터넷일 수 있으며, 데이터를 수신하고 전송하는 서버를 포함할 수 있다. 본 시스템은, 발신자(10), 수신자(12), 또는 메시지(13)의 포맷에 관한 정보 뿐만 아니라 통신(13)을 숨기는 익명 네트워크(18)를 정의할 수 있다. 도청자(19)는 메시지 통신(13)을 위해 네트워크를 샅샅히 뒤지거나(scouring), 메시지 통신(13)을 간헐적으로 찾는 모든 당사자가 될 수 있다. 일 예시에 따르면, 도청자(19)는 메시지(13)를 목표로 할 수 있으며, 이미 발신자(10), 수신자(12), 또는 메시지(13)에 대한 일부 정보에 액세스 할 수 있다.
발신자(10)는 통신 메시지(13)를 생성하는 컴퓨터 리소스를 가질 수 있다. 통신 메시지(13)는 비밀로 유지되거나, 그렇지 않더라도 보호될 필요가 있는 내용을 포함할 수 있다. 그러나, 통신 메시지(13)는 또한 통신 메시지(13)의 내용 또는 주제와 별개인 다른 보조 정보를 포함할 수 있다. 예를 들어, 보조 정보는 통신 메시지(13)가 생성된 시간, 통신 메시지(13)를 생성한 사람(예를 들어, 발신자(10))의 정보, 통신 메시지(13)의 디지털 크기 또는 통신 메시지(13)에 대한 첨부 파일의 크기, 의도된 수신자(12)의 식별 정보, 및 메시지(13)의 내용과는 관련이 없지만 그 내용의 외부의 정보를 식별하는 데에 관련된 다른 정보를 또한 포함할 수 있다.
OTP(14)는 매우 어렵거나 깨질 수 없는 무조건적으로 안전한 암호화 기술이며, 발신된 메시지(13)와 같거나 그보다 긴 크기의 일회성 미리 공유된 키(16A, 16B)의 사용을 포함할 수 있다. 일 구현에서, 일반 텍스트(plaintext)는 임의의 비밀 키(16A)와 쌍을 이룰 수 있다. 그런 다음, 일반 텍스트의 각 비트 또는 문자는 모듈식 추가(예를 들어, XOR)를 사용하여 패드로부터 해당 비트 또는 문자와 결합함으로써 암호화된다. 키가 진정으로 무작위이고, 최소한 일반 텍스트만큼 길며, 전체 또는 일부가 재사용되지 않고 완전히 비밀로 유지되는 경우, 결과 암호문(ciphertext)은 해독하거나 깨는 것이 불가능할 것이다. 따라서, OTP(14)를 통한 암호화는 특정 키(16A) 또는 그것의 정확한 복제(예를 들어, 이하에서 기술되는 바와 같은 수신자 키(16B))만이 암호화된 메시지(13')의 해독을 허용할 수 있도록 키(16A)와 연관된다. 이에 따라, 키(16A, 16B)가 모두 분실되거나 손상되면, OTP(14)를 통해 암호화된 메시지(13)는 복구될 수 없다.
OTP(14) 암호화는 메시지(13)가 경로(17)를 따라 이동하기 전에 네트워크(18)로부터 업스트림(upstream)에서 발생할 수 있다. 특정 일 실시예에서, 메시지(13)의 OTP(14) 암호화는 발신자(10)가 메시지(13)를 작성한 후에 발생한다. 다른 구현에서, OTP(14) 암호화는 메시지(13)가 생성하는 동안 연속적으로 발생한다. 대안적으로, OTP(14) 암호화는 메시지(13)가 생성될 때, 그러나 어떠한 실제 내용이 그 안에 작성되기 전에 발생할 수 있다. OTP(14) 암호화가 발생하는 방식은 이하에서 자세히 기술될 것이다.
OTP가 본 명세서에 참조되고 기술되는 동안, Vernam 싸이퍼(cipher), 추가 스트림 싸이퍼 등을 포함하는 다른 암호화 기술이 사용될 수 있음이 이해될 것이나, 이에 한정되지는 않는다.
시스템(1)은 네트워크(18)를 통해 다른 경로 및 경로(17)에서 이동하는 노이즈 데이터(21)(본 명세서에는 단순히 노이즈라고도 지칭됨)를 더 포함한다. 노이즈 데이터(21)는 (ⅰ) 업스트림에서 다운스트림으로, (ⅱ) 다운스트임에서 업스트림으로, 또는 (ⅲ) 업스트림에서 다운스트림으로 그리고 다운스트림에서 업스트림으로 동시에 흐르는 의미없는 디지털 정보 또는 디지털 데이터이다. 노이즈 데이터(21)는 발신자(10)의 컴퓨터 리소스에 의해 생성될 수 있거나, 또는 수신자(12)의 컴퓨터 리소스를 통해 생성될 수 있거나, 또는 네트워크(18)의 일부로서 (도시되지 않은) 다른 노드를 통해 생성될 수 있다. 노이즈 데이터(21)는 의도적으로 도청자(19)를 혼동시키도록 구성된 네트워크에서 노이즈를 생성한다. 노이즈 데이터(21)는 통신 메시지(13)와 완전히 관련이 없는 디지털 정보를 포함할 수 있다. 노이즈 데이터(13)는 무작위의 생성기에서 정보의 비트를 통해 제멋대로인(arbitrary) 신호를 생성하는 무작위의 생성기를 통해 생성될 수 있다. 일 양태에 따르면, 무작위의 생성기는 노이즈 데이터(21)를 생성하기 위한 목적 또는 임의의 다른 원하는 목적을 위해 네트워크에 참여할 수 있다.
일 예시에서, 노이즈 데이터(21)는 지속적이고, 계속하여 생성될 수 있으며, 특정 네트워크 참가자가 네트워크(18)를 떠날 때 또는 네트워크(18) 자체가 해제되거나 그렇지 않으면 중단될 때만 중단된다. 특정 네트워크 참가자가 떠나는 경우, 특정 참가자에 대해 및/또는 특정 참자가로부터 생성되는 노이즈 데이터(21)는 특정 참가자와 관련되는 경우에만 중단될 수 있다. 이러한 경우에, 노이즈 데이터(21)는 무작위의 생성기 참가자를 포함하여 임의의 및/또는 모든 나머지 참가자에 의해 네트워크(18)를 통해 계속 생성되고 전송될 수 있다.
일 양태에 따르면, 메시지(13) 및 노이즈(21) 둘 다 동일한 포맷 및 외양을 가질 수 있다는 점에서, 노이즈(21)는 메시지(13)와 동일한 파라미터를 갖도록 구성될 수 있다. 또한 이 양태에 따르면, 메시지(13) 및 노이즈(21)는 모두 OTP(14)와 같은 동일한 암호화 기술을 사용하여 암호화될 수 있고, 전송 속도 및 전송 주파수가 같은 동일한 전송 프로토콜을 가질 수 있다.
수신자(12)가 메시지(13)를 수신하고, 수신자 키(16B)로 암호화된 메시지(13')를 암호 해제할 수 있도록 하는 것이 시스템(1)의 의도이다. 수신자 키(16B)는 발신자(10)의 컴퓨터에서 메시지(13)의 생성 이전에 수신자(12)에게 제공될 수 있다. 그러나, 키(16B)가 발신자(10)에 의한 메시지(13) 생성 이후 수신자(12)에게 제공되는 것도 전적으로 가능하다. 하나의 특정 구현에서, 키(16B)는 키(16A)의 직접적인 사본이다. 그러나, 키(16B)는 또한 키(16A)의 복제본(replica)일 수도 있다. 다른 경우에, 키(16B)는 키(16A)의 사본(duplicate)일 수도 있다. 각각의 경우에, 키(16B)는 수신자(12)에 의해 수신되면 암호화된 메시지(13')를 해독하도록 구성될 수 있다.
통신 시스템(1)의 예시적인 양태를 기술하였으므로, 이제 시스템(1)의 통신 프로토콜이 논의된다. 통신 프로토콜의 첫번째 구성 요소는 메시지(13) 내용 및 보조 데이터를 인코딩하는데 사용되는 암호화 알고리즘과 관련된다. 둘째로, 통신 프로토콜은 통신 메시지(13)가 보내질 때, 통신 네트워크(18) 내의 노이즈 데이터(21)가 양 쪽 마스크로 일정하게 흐르도록 하고, 도청자(19)가 크기에 대한 정보 또는 메시지(13)와 관련된 임의의 다른 보조 정보를 학습하지 못하도록 하는 것을 포함한다. 마지막으로, 통신 프로토콜의 세번째 구성 요소는 처음 두 구성요소를 익명 네트워크(18)와 통합하여 도청자(19)가 통신 메시지(13)를 발신한 사람, 통신 메시지(13)가 누구에게 발신되었는지, 통신 메시지(13)가 발신된 위치, 그리고 어디로 통신 메시지(13)가 발신되었는지를 학습하는 것을 차단한다.
메시지(13) 내용의 암호화는, 내용이 통신 네트워크(18) 내에서 쉽게 획득되거나 식별되지 않음을 보장할 수 있다. OTP(14)와 같은 무조건적인 보안 프로세스의 사용은 발송되는 메시지에 특정한 고유 일회용 키(16A, 16B)에 액세스하지 않고는 수학적으로 매우 어렵거나 해독이 불가능한 보안 암호화 체계를 제공할 수 있다. OTP(14)는 가능한 모든 해독이 동일하게 가능한 암호화 체계를 생성함으로써 작동하며, 이는 키(16A, 16B) 없이는 어느 누구도 암호화된 데이터로부터 정보를 얻을 수 없다는 것을 보장할 수 있다. OTP(14)는 메시지에 포함된 데이터의 각 단일 비트를 무작위로 1 또는 0으로 변경함으로써 작동한다. 모든 비트가 무작위로 켜지거나 (1) 또는 꺼지므로 (0), OTP(14)로부터의 출력은 완전히 무작위이다. OTP(14) 출력은 완전히 무작위이기 때문에, 암호화 당시 각 비트에 대해 어떤 결과(1 또는 0)가 선택되었는지 알지 못하면 암호화를 되돌리는 것이 거의 불가능하다.
키(16A, 16B)는 메시지와는 별개로 OTP(14)에 의해 생성된 1과 0으로 구성된 동일하게 무작위인 숫자일 수 있다. 키(16A, 16B)는 OTP(14)에 의해 메시지(13) 이전, 이후, 또는 동시에 생성될 수 있다. 일 특정 예시에서, 키(16A)는 미리 생성된다. 대안적으로, 키(16A)는 메시지(13)의 길이를 초과하는 1과 0의 매우 긴 시퀀스일 수 있다. 이 양태에 따르면, 키(16A, 16B)의 일부는 암호화된 메시지(13')를 해독하기 위해 사용될 수 있다. 일단 키(16A, 16B)가 메시지(13')를 해독하기 위해 사용되면, 사용된 키(16A, 16B) 또는 키(16A, 16B)의 일부가 파괴된다. 만일 키(16A, 16B) 또는 그 일부가 두 번 이상 사용되면, 시스템(1)은 침해에 취약할 수 있다.
OTP(14)를 이용하는 보안 통신에서, 수신자 키(16B)는 메시지의 가능한 각 수신자에게 배포되고, 나중에 메시지가 수신될 때 사용하기 위해 저장된다. 시스템(1)은 무작위 키(16A, 16B)를 생성하고, 수신자 키(16B)를 통신 수신자(12)에게 안정하게 전달하는 능력에 의존한다. 키(16A) 및 수신자 키(16B)는 이하에서 더 논의된다.
일 특정 예시에서, OTP(14) 암호화를 사용하여 발신된 통신 메시지(13)는 "배타적 OR"("XOR") 기능을 이용함으로써 수신자(12)에 의해 키(16B)로 해독될 수 있다. XOR은 "둘 중 하나만, 둘 다는 아닌" 것을 지칭하며, 키가 적용되면, 시스템은 XOR 진리표를 사용하여 키의 1 및 0을 메시지의 1 및 0과 비교하여 통신을 디코딩한다. 키(16B) 및 통신 메시지(13)의 암호화가 적절하게 정렬되지 않으면, 메시지는 해독되지 않을 것이고, 키(16B)는 미래의 메시지와 비교하기 위해 보존될 수 있다.
따라서, OTP(14)는 이론적으로 말하자면 무조건적으로 안전한 암호화를 제공한다. 그러나, OTP에 의한 일반 텍스트의 암호화를 통해 도청자는 빈도 통계를 사용하여 일반 텍스트에 대한 일부 정보를 추론할 수 있다. 사용된 난수 생성기(random number generator, RNG)가 실제로 의사 난수 생성기(pseudo random number generator, PRNG)인 경우, 도청자(19)는 잠재적으로 암호를 깰 수 있다.
이에 따라, 통신 시스템(1)의 본 통신 프로토콜의 일 실시예는 이러한 위험을 완화하기 위한 추가 단계를 제공할 수 있다. 특히, 일반 텍스트 통신은 데이터를 무작위화하기 위해 OTP(14)와 같은 무조건적인 보안 암호화 프로세스를 사용하여 두번째 암호화 계층을 적용하기 전에 먼저 첫번째 암호화 계층(예를 들어, AES256과 같은 고급 암호화 표준(advanced encryption standard, AES) 또는 다른 암호화 방법)을 사용하여 암호화될 수 있다. 하나의 특정 구현에서, 이는 도청자(19)가 메시지(13)에 대한 임의의 정보, 보조, 또는 기타 정보를 얻기 위해 빈도 통계를 사용하는 것을 방지할 수 있다.
통신 시스템(1)의 통신 프로토콜은 무작위 오라클, 즉, 완전한 무작위 시스템을 더 가정한다. 이는 현재 통신 프로토콜과 함께 사용되는 난수 생성기가 완전히 다른 엔트로피 소스를 가진 진정한 난수 생성기(true random number generators, TRNG)라는 것을 의미한다. 이렇게 하면, 생성된 난수가 엔트로피를 공유하지 않으며, XOR 함수를 사용하여 함께 결합되어 임의의 특정 TRNG의 잠재적인 약점으로부터 보호할 수 있는 하이브리드 RNG를 생성할 수 있다. 시스템을 깨기 위해, 도청자(19)는 (현재 물리학에 대한 이해를 감안할 때) 물리적으로 불가능에 해당하는 여러 비결정론적 물리적 현상을 결정할 수 있어야 한다. 따라서, 통신 시스템(1)의 현재 통신 프로토콜의 보안은 물리 및 수학의 불변의 법칙을 기반으로 하며, 무조건적으로 안전하다.
상술한 바와 같이, OTP(14) 암호화는 통신 메시지(13)의 내용에 무조건적인 보안을 제공할 수 있지만, 도청자(19)는 메시지가 발신되고 있는지 여부, 메시지의 크기, 메시지의 출처의 위치, 및 메시지의 발신자 및/또는 수신자에 관련된 정보를 여전히 획득할 수 있다. 이러한 정보는 도청자(19)가 메시지가 발신되는 이유를 결정하는데 도움을 줄 수 있다. 일련의 시간, 메시지 및 파일 크기, 발신자, 및 수신자로 무장한 도청자(19)는 조직과 해당 조직의 기능에 대해 많은 것을 학습할 수 있다. 예를 들어, 중요한 이벤트가 발생했을 때, 통신 네트워크 내에 상대적으로 침묵이 있고, 그 직후에 통신이 급증하는 경우 도청자(19)는 이러한 통신이 이벤트와 관련이 있다고 추론하거나 연관지을 수 있다. 도청자(19)가 파일 저장 장치 시스템에 액세스할 수 있으면, 도청자(19)는 이후 메시지의 파일의 크기를 시스템의 파일과 비교할 수 있으며, 어떤 파일이 발신되었고 누구에게 발신되었는지, 그리고 누가 이를 발신하였는지 결정할 수 있다. 군사 정보 또는 국가 안보 문제에서, 그러한 정보에 대한 액세스는 관련자들에게 위협이 될 수 있다.
도청자(19)가 통신 네트워크(18)에 대한 지식을 얻는 것을 추가로 방지하기 위해, 통신 시스템(1)의 본 통신 프로토콜은 네트워크(18) 전체에 걸쳐 노이즈 데이터(21)의 일정하거나 적어도 빈번한 흐름을 이용한다. 단순화된 예시를 사용하여, 만일 앨리스(10)(즉, 발신자)와 밥(12)(즉, 수신자)이 통신 네트워크의 2명의 유일한 구성원이라면, 통신 시스템(1)의 현재 통신 프로토콜은 일정하거나 또는 적어도 빈번하게, 앨리스(10)와 밥(12) 사이에서 무작위 노이즈 데이터(21)의 통신을 앞뒤로 보낼 것이다. 따라서, 통신 네트워크(18) 상의 활동은 항상 동일하게 유지될 것이고, 도청자(19)는 네트워크 활동이 단지 노이즈(21)일 때와 비교하여 통신 메시지(13)가 전송되는 때를 말할 수 없을 것이다.
하나의 예시에서, 네트워크를 통한 노이즈 데이터(21)의 발신에 대한 변화 또는 패턴이 있으면, 도청자(19)는 시간적 분석을 실행할 수 있으며, 어떤 활동이 통신인지와 어떤 활동이 단순히 노이즈(21)인지에 대한 정보를 여전히 수집할 수 있다. 예를 들어, 노이즈 데이터(21)가 통신과 다른 속도로 또는 특정 간격으로 발신되면, 이러한 파라미터 외부에서 발생하는 활동은 잠재적인 통신으로서 도청자(19)에 의해 플래그 지정(flagged)될 수 있다. 네트워크 내에서 플래그가 지정된 활동이 위의 예시와 같이 다른 이벤트와 상관(correlate)되어 있으면, 도청자(19)는 통신이 발신되는 시기와 발신되는 이유를 결정할 수 있다. 따라서, 하나의 특정 실시예에서, 노이즈(21) 파라미터는 통신 메시지(13) 또는 암호화된 통신 메시지(13')의 파라미터와 동일하거나 이를 모방한다.
네트워크의 이러한 변동을 방지하기 위해, 하나의 해결책은 통신 시스템(1)의 통신 프로토콜이 통신 메시지(13)와 동일한 변환을 통해 입력된 노이즈 데이터(21)를 사용하여서 시스템(1)의 통신 네트워크(18) 상의 모든 활동 인스턴스가 균일하게 보이며, 동일한 속성을 갖도록 하는 것이다. 이는 도청자(19)가 볼 때 통신 메시지(13) 대 노이즈 데이터(21) 사이의 임의의 결정 가능한 차이를 방지해야 한다. 구체적으로, 이는 노이즈 데이터(21)가 네트워크(18)를 통해 노이즈 데이터(21)를 발송하기 전에 AES와 같은 제1 암호화 계층에 의해 먼저 암호화된 다음, OTP(14)와 같은 제2 암호화 계층에 의해 암호화된다는 것을 의미한다.
OTP(13) 암호화와 노이즈(21)의 일정한 발송의 조합은 도청자(19)가 통신 메시지(13)가 발송되는지 여부, 발송된 임의의 통신의 크기, 및 발송된 임의의 통신의 내용을 결정하는 것을 방지하거나 적어도 크게 감소시킬 수는 있으나, 이는 여전히 이론적으로는 도청자(19)가 메시지(통신 메시지(13) 및 노이즈 데이터(21) 모두)를 발송하는 사람과 누구에게 발송하는지를 결정하는 것이 가능하다.
따라서, 통신 시스템(1)의 본 통신 프로토콜의 제3 구성 요소가 이제 논의될 것이다. 통신 네트워크의 유일한 구성원인 앨리스(10)와 밥(12)의 상술한 예시를 살펴보면, 앨리스(10)와 밥(12)이 통신 당사자이라는 것을 쉽게 결정할 수 있다. 그러나, 찰리(즉, 제3자)가 이제 네트워크에 참여하면, 네트워크 활동은 여전히 앨리스(10)와 밥(12) 사이에 있으며, 도청자(19)는 이제 앨리스(10)와 밥(12)이 통신하고 있으며, 찰리는 통신하지 않는다고 추측할 수 있다. 이러한 예제를 (n) 네트워크 참가자에게 상세히 설명하면, 여기서 "n"은 2보다 큰 임의의 정수이며, 도청자(19)는 정보의 흐름을 빠르게 맵핑하는 것을 시작할 수 있다.
누가 누구에게 메시지를 발신하고 있는지를 결정하는 도청자(10)의 능력과 싸우기 위해, 본 통신 프로토콜(13)은 익명 네트워크를 사용한다. 오늘날, 이러한 네트워크는 일반적으로 DC 네트(DC nets) 또는 DC 네트워크(DC network)로 알려져 있으며, 여기서 DC는 "식사 암호 사용자"를 의미한다. DC 네트는 네트워크 참가자 사이에 익명성을 제공하기 위해 작동하여서, 도청자(19)는 성공 확률이 1/n % 인 추측 이상으로 누가 통신을 발신하는 사람인지 결정할 수 없으며, n은 네트워크의 참가자 수에 대한 정수를 나타낸다. DC 네트에서, 모든 통신은 모든 참가자에게 전송되므로, 도청자(19)가 심지어 주어진 메시지의 수신자(네트워크의 모든 참가자)를 알고 있더라도, 도청자(19)는 의도된 수신자가 누구인지 추측할 수 있는 동일한 1/n 확률을 갖게될 것이다. 본 프로토콜은, 통신 메시지(13) 및 노이즈 데이터(21)를 포함한 모든 메시지가 DC 네트워크(즉, 네트워크(18)는 DC 네트임)를 통해 발송되도록 제공하므로, 도청자(19)가 획득할 수 있는 정보의 최종 비트를 제거하며 또한 도청자(19)는 통신 네트워크(18)에 대한 지식이 전혀 없게 된다.
본 발명의 일 양태에 따르면, 통신 시스템(1)의 통신 프로토콜은 통신 메시지(13)이거나 노이즈(21)인지에 상관없이 모든 메시지를 OTP(14)를 사용하여 암호화되도록 지시하고, DC 네트워크(18)를 통해 모든 네트워크 참가자에게 전달되게 하면서, 통신 메시지(18)가 발송되고 있는지 여부에 관계없이 네트워크(18)로 그리고 네트워크(18)를 통해 지속적으로 노이즈(21)를 발송한다. 이러한 세가지 구성 요소의 조합은 통신 네트워크(18)에 관한 정보를 획득하는 것으로부터 도청자(19)를 완전히 좌절시킬 수 있다.
동작 중에 그리고 도 1을 참조하면, 묘사된 통신 시스템(1)의 통신 프로토콜에 따라 앨리스(10)(즉, 발신자)로부터 밥(12)(즉, 수신자)로의 예시적인 통신이 도시된다. 먼저, 앨리스(10)는 OTP(14)와 그녀의 개인 키(16A)를 사용하여 통신 메시지(13)를 암호화한다. 그런 다음, 앨리스(10)는 DC 네트워크(18)를 통해 통신 메시지를 발신하여 시스템(1)의 네트워크의 모든 참가자에게 전송된다. 모든 참가자가 DC 네트(18)에 노이즈(21)를 지속적으로 공급하고 있기 때문에, 도청자(19)는메시지가 발신되었음을 알지 못하므로, 앨리스(10)가 통신 메시지(13)를 DC 네트워크(18)로 발신하는 것을 구별할 수 없다. 앨리스(10)의 통신 메시지(13)가 이후 의도된 수신자인 밥(12)을 포함한 모든 네트워크 참가자에게 전달된다. 통신 메시지를 수신하면, 밥(120은 앨리스(10)의 비밀 키(16B)의 사본을 사용하여 OTP(14)를 통한 통신 해독을 시도할 것이다. 밥(12)은 메시지를 암호화하는데 사용된 키의 사본을 가지고 있기 때문에, 통신이 디코딩되고 밥(12)은 통신의 내용의 액세스할 수 있다.
도청자(19)는 통신 메시지(13)가 발송되었음을 알 수 없는데, 왜냐하면 한 명 이상의 참가자가 모든 첨가자에게 발송되는 노이즈(21)를 DC 네트워크(18)에 지속적으로 공급하기 때문이며, 따라서 앨리스(10)가 통신 메시지(13)를 DC 네트워크(18)에 발송하는 것을 구별할 수 없다. 또한, 앨리스(10)의 통신 메시지(14)가 DC 네트(18)를 통해 모든 참가자에게 발송되었기 때문에 도청자(19)는 누가 통신을 수신했는지 알지 못한다. 노이즈(21)로부터 구별할 수 없기 때문에, 도청자(19)는 모든 사람으로부터 모든 사람으로 지속적이고 일정한 활동을 볼 수 있을 뿐이다. 마지막으로, OTP(14) 암호화는 도청자(19)가 임의의 메시지 내용에 대해 어느 것도 알지 못하도록 한다. 따라서, 도청자(19)는 앨리스(10)로부터 밥(12)으로 발송된 통신에 대해 전혀 알지 못하지만, 밥(12)은 메시지를 수신하고 메시지의 내용에 액세스할 수 있다.
밥(12)이 아닌 다른 수신자도 앨리스(10)로부터 통신을 수신하지만, 그들 자신의 암호 해독 시도(메시지를 암호화하는데 사용된 것과는 다른 키를 사용하여)가 실패하면 메시지는 무시되며 폐기된다.
통신 시스템(1)의 통신 프로토콜은 OTP(14) 키(16A)가 모든 참가자 사이에서 안전하게 생성되고 배포될 수 있다는 가정(즉, 배포된 키(16B))을 포함하지만, 실제 어플리케이션에서 키 배포는 메시지(13)의 발송과 동일한 보안 문제의 대상이 된다.
일 양태에 따르면, 키(16A, 16B)는 각 수신자에게 직접 건내질 수 있다. 예를 들어, 앨리스(10)와 밥(12) 사이에서, 키는 개인적으로 전달될 수 있다. 그러나, 네트워크 참가자가 증가함에 따라 이러한 배포 방법은 다루기 어렵고 실용적이지 않게 된다. 예를 들어, 앨리스(10) 및 찰리가 통신을 원하면, 별도의 키가 생성되고 전달되어야만 한다. 마찬가지로, 밥(12)과 찰리가 통신하려면 제2 키가 존재해야만 한다. 이를 n명의 참가자가 있는 네트워크에 대입하여 추론하면, 모든 개인이 n-1 개의 키를 가져야 하므로, 필요한 키의 (n-1 삼각형) 수가 폭발적으로 증가한다.
일 구현에 따르면, 이러한 문제는 키(16B)의 배포 및 보유를 위한 (스포크 및 휠로도 지칭될 수 있는) 스포크 모델 및 허브의 통합을 통해 피해질 수 있다. 도 2를 참조하면, 허브(20) 및 복수의 스포크(22)를 가지는 스포크 휠이 도시된다. 도 2에는, 8개의 스포크(22)를 갖는 것으로 도시되어 있긴 하지만, 본 프로토콜의 구현은, 각 스포크(22)가 통신 네트워크(18)로부터의 단일 참가자 n을 나타내기 때문에 사용되는 스포크(22)의 개수를 지시할 것이다.
일 양태에 따르면, 허브(20)는 각 참가자의 비밀 키(16A)의 사본을 저장할 수 있는 전용 신뢰 서버일 수 있다. 이는 각 참가자가 n-1개의 키에 대한 필요보다는 허브(20)에 대응하는 단일 키(16B) 만을 필요로 하는 것을 허용한다. 이에 따라, 새로운 참가자가 통신 네트워크(18)에 가입할 때, 새로운 스포크(22)가 생성되고, 새로운 참가자는 자신의 키(16A)를 허브(20)에 업로드하고, 대응하는 키를 허브(20)로부터 다시 수신하기만 하면 된다. 이후, 참가자는 통신에서 의도된 수신자(12)를 표시하면서 단순히 모든 통신을 허브(20)에 발송한다. 그러면 허브(20)는 의도된 수신자(12)에게 통신을 전달할 수 있다.
이 양태에 따르면, 허브(20)는 통신 메시지(13) 및 노이즈 메시지(21) 모두를 포함하는 모든 메시지를 수신할 수 있고, 모든 메시지에 대해 해독을 수행할 수 있으며, 의도된 수신자에게 통신을 발신할 수 있다. 허브(20)의 사용으로 도청자(19)는 허브(20)가 모든 메시지의 발신자 또는 수신자임을 알 수 있지만, 허브(20)가 전적으로 통과 역할만 한다는 사실을 고려하면, 도청자(19)는 올바른 발신자 및/또는 의도된 수신자가 누구인지를 추측하는데 여전히 1/n 확률을 가지며, 발신자와 의도된 수신자 모두를 아는 확률은 1/n2의 확률을 가질 것이다. 모든 참가자가 허브(20)로 계속하여 노이즈(21)를 발송하고, 허브(20)로부터 노이즈(21)를 수신하기 때문에, 도청자(19)는 여전히 어떠한 지식도 수신할 수 없으며, 통신 네트워크(18)는 무조건적으로 안전하게 남겨진다.
허브 및 스포크 모델이 키 배포 문제를 해결할 수 있는 하나의 구현이긴 하지만, 다른 배포 해결책이 본 명세서의 범위를 벗어나지 않고 구현될 수 있음을 이해할 수 있을 것이다. 하나의 비제한적인 예시로서, 키(16A, 16B)는 배포 네트워크 내에서 도청자(19)의 존재의 물리적 검출을 허용할 수 있는 양자 암호화를 사용하여 배포될 수 있다. 도청자(19)가 검출되면, 키(16A, 16B)는 도청자(19)가 더이상 존재하지 않을 때까지 보류될 수 있다. 이는 키(16A, 16B)가 가로채지는 것을 방지할 수 있다. 다른 예시는, 물리 기반 배포 방법(physics based distribution methods), 정보 이론 보안 키 배포 방법(information theoretic secure key distribution methods), 또는 심지어는 계산적으로 안전한 키 배포 방법(computationally secure key distribution methods) (이론적으로 안전한 정보보다는 프로토콜을 계산적으로 만들려는 경우) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
도청자(19)가 메시지(13)가 발신되거나 발신되지 않을 때 (즉, 시간)을 발견하는 것을 방지하기 위해, 시스템(1)은 메시지(13)가 발신되지 않을 때 DC 네트워크(18)를 통해 무작위 데이터(즉, 노이즈(21))를 발신한다. 노이즈(21)는 발신자(10), 수신자(12), 또는 단순히 유인(decoy)을 하기 위한 다른 네트워크 참가자(즉, 적어도 하나의 유인용 네트워크 참가자)에 의해 생성될 수 있다. 보다 구체적으로, 본 명세서에서 사용되는 유인용 네트워크 참가자, 또는 유인자는 실제 암호화된 메시지(13')의 발신 또는 수신에 관계없이 연속적이고 지속적으로 네트워크(18)에 전달될 노이즈 데이터(21)를 생성할 수 있는 참가자일 수 있다. 일 양태에 따르면, 유인용 네트워크 참가자는 발신자(10)일 수 있다. 또 다른 양태에 따르면, 유인용 네트워크 참가자는 수신자(12)일 수 있다. 또 다른 양태에 따르면, 유인용 네트워크 참가자는 제3자 일 수 있으며, 대안적으로 특정 메시지(13)의 발신자(10)나 수신자(12)도 아닌 모든 제3자 네트워크 참가자일 수 있다. 또 다른 양태에 따르면, 유인용 네트워크 참가자는 하나 이상의 무작위 생성기일 수 있으며, 이는 도청자(19)에게 정상적인 네트워크 참가자로 보여지며, 따라서 다른 네트워크 참가자로부터 구별할 수 없는 네트워크(18) 내의 하나 이상의 자동화된 컴퓨팅 리소스일 수 있다.
그러나, 스포크(22)가 DC 네트워크(18)를 통해 무작위 데이터를 발신하면, 임의의 다른 스포크(22)가 메시지(13) 또는 노이즈(21)인지 여부에 상관없이 데이터를 동시에 발신하는 것을 방지할 수 있다. 이러한 문제를 해결하기 위해, 시스템(1)은 전체 대역폭을 n개의 공유(share)를 가지는 라운드로 분할할 수 있으며, 각 네트워크 참가자에게 공유를 무작위로 할당하여 각 멤버가 적어도 하나의 공유를 얻도록 할 수 있는 허브(20)를 가질 수 있다. 하나의 특정 실시예에서, 각 네트워크 참가자는 정확히 하나의 공유를 수신한다. 그런 다음, 하나의 비제한적인 예시에 따르면, 각 라운드에 대해, 네트워크의 각 멤버에게는 네트워크 대역폭의 공정한 공유가 주어질 것이며, 메시지(13) 또는 무작위 데이터 노이즈(21)를 발신할 차례를 알 수 있다. 서비스 허브(20)가 임의의 주어진 라운드에서 멤버들을 그들의 공유에 무작위로 할당할 것이기 때문에, 도청자(19)는 메시지를 발신하거나 수신하는 사람을 추측할 확률이 여전히 1/n에 불과할 것이다.
공유의 포맷은 시스템(1)의 구현에 따라 달라질 수 있으며, 통상의 기술자에 의해 선택될 수 있다. 비제한적인 예시로서, 공유는 라운드 당 동일한 개수의 비트를 나타낼 수 있으며, 총 비트는 단일 라운드에서 100%로 표시되고 각 참가자는 발신되는 n/100%의 비트를 수신한다.
다른 비제한적인 예시로서, 공유는 시간에 기초하여 무작위로 할당될 수 있으며, 각 참가자는 라운드 당 동일한 양의 발신 시간을 수신한다. 이 예시에 따르면, 발신 시간은 첫번째 간격 t0-t1; 두번째 간격 t1-t2; 세번째 간격 t2-t3; 및 등등 tn까지의 n개의 간격으로 나눠질 수 있다. 그 후, 허브(20)는 각 참가자가 각 라운드에 할당된 동일한 개수의 시간 간격을 무작위 순서로 얻도록 이러한 간격을 동일하고 무작위로 네트워크 참가자에게 할당할 수 있다.
다른 실시예에 따르면, 시스템(1)은 미리 결정된 간격으로 네트워크(18)를 통해 데이터를 발신할 수 있고, 메시지(13)가 존재할 때 메시지(13) 데이터를 발신하고, 메시지(13)가 존재하지 않을 때 노이즈 데이터(21)를 발신한다. 단순화되고 비제한적인 하나의 예시를 통해 설명된 것처럼, 시스템(1)은 초당 1 비트의 데이터를 매초 발신할 수 있다. 메시지(13)가 작성되고, 암호화되며, 그리고 발신할 준비가 되면, 시스템(1)은 메시지를 큐(queue)에 보관하고 모든 메시지(13') 데이터가 발신될 때까지 1 비트/초의 속도로 메시지를 발신할 수 있다. 한편, 노이즈 데이터(21)는 연속적으로 생성되어 별도의 큐에 보관될 수 있으며, 메시지 데이터 큐가 채워지지 않은 경우 매초 동일한 비트/초의 속도로 발신될 수 있다. 본 실시예에 따르면, 노이즈 데이터(21)가 전송 속도(이 예시에서는 1비트/초)보다 빠르게 생성되는 한, 노이즈 데이터(21) 큐는 고갈되지 않을 것이며, 따라서 네트워크를 통한 데이터 전송이 일정하고 연속적으로 유지될 수 있다.
허브(20) 및 스포크(22) 모델의 경우, 도청자(19)는 허브(20)가 임의의 주어진 메시지(13)의 발신자 또는 수신자라고 믿을 수 있지만, 허브(20)는 단지 통과 역할만을 하고, 실제로 메시지(13)의 발신자(10) 또는 의도된 수신자(12)는 아니므로, 도청자(19)가 임의의 주어진 메시지의 근원지(10)가 누구인지 또는 임의의 주어진 메시지의 최종 수신자(12)가 누구인지 알 확률은 여전히 1/n이다. 따라서, 도청자(19)는 여전히 어떤 스포크(22)가 메시지를 발신하고 수신하는지 알 수 있는 방법이 없으므로, 시스템(1)은 여전히 무조건 익명성을 유지한다.
대역폭 예시에 따라, 시스템(1)은 통신 네트워크(18)를 통해 경로(17)를 따라 암호화된 메시지(13')를 유인자 및 적어도 하나의 의도된 수신자(12)를 포함하는 모든 네트워크 참가자에게 전송할 수 있고, 여기서 암호화된 메시지(13')의 전송 동안 네트워크(18) 대역폭은 도청자(19)가 암호화된 메시지(13')가 전송되었음을 식별할 수 없도록 선택된 레벨에서 유지된다. 특히, 두 명 이상의 네트워크 참가자가 적어도 한 명의 의도된 수신자이며, 동일한 키를 공유하는 것이 가능하다. 달리 명시하면, 두 명 이상의 의도된 수신자(12)가 있을 수 있다.
이 예시에 따르면, 대역폭은 하나의 공유 또는 하나 이상의 공유로 제한될 수 있다. 시스템(1)은 암호화된 메시지(13')를 전송한 후 암호화된 노이즈(21)를 계속 전송할 수 있다. 대역폭 공유 예시를 통해, 시스템(1)은 대역폭을 n개의 공유를 갖는 라운드로 나눌 수 있으며, 여기서 n은 네트워크 참가자의 수와 동일하다. 이후, 시스템(1)은 유인 네트워크 참가자 및 적어도 하나의 의도된 수신자(12)를 포함하는 네트워크 참가자에게 적어도 하나의 공유를 무작위로 할당한다. 시스템(1)은 암호화된 노이즈(21) 및 암호화된 메시지(13') 중 하나를 라운드 또는 라운드-로빈(round-robin) 방식으로 전송한다.
시스템(1)을 통해 발신된 노이즈(21) 및 메시지(13')는 동일한 변환 (예를 들어, 암호화)를 거쳐 실질적으로 동일한 전송 프로토콜로 동일한 간격으로 발신될 수 있으므로, 도청자(19)는 통신이 노이즈(21)인지 또는 임의의 주어진 공유에 대한 의도적인 메시지(13)인지 검출할 방법이 없다.
이에 따라, 시스템(1)은 대역폭으로의 통신 메시지(13)의 유입을 관리하고 자체 조정하는 것이 가능하다. 자동적인 자체 조정은 대역폭을 미리 결정된 레벨로 유지하기 위한 것일 수 있으며, 도청자(19)가 메시지 전송과 관련하여 추론할 수 있는 대역폭 불일치를 마스킹하기 위해 프로세서에 의해 실행 가능한 적어도 하나의 컴퓨터 판독 가능한 저장 매체에 인코딩된 대역폭 조정 로직을 통해 달성될 수 있다. 예를 들어, 앨리스(10)가 밥(12)에게 메시지(13)를 발신해야 할 필요가 있을 때, 메시지(13)는 대역폭을 차지하는 데이터 크기와 연관된다. 시스템(1)은 네트워크의 다른 곳에서 발생하는 노이즈(21)의 보완적이고 동등한 크기를 조정하고 감소시킬 수 있다. 예를 들어, 1 메가 바이트 파일이 앨리스(10)로부터 밥(12)에게 전송될 필요가 있으면, 시스템(1)은 네트워크(18)의 노이즈(21)를 동일한 1 메가바이트만큼 감소시킬 수 있다. 따라서, 도청자(19)는 네트워크 트래픽의 순 변화를 볼 수 없다. 따라서, 네트워크 대역폭은 메시지(13)가 네트워크 참가자들 사이에 발신될 때 대역폭 트래픽의 결과적인 순 변화가 없도록 항상 선택된 상수로 유지될 수 있다.
도 3은 통신 시스템(1)의 통신 프로토콜의 흐름도를 도시한다. 구체적으로, 프로세스(100)는 이하의 단계를 가지는 것으로 도시된다: 통신 메시지(13)는 한 참가자(발신자(10))에 의해 생성되고, 다른 참가자(수신자(12))에게 발신될 수 있으며, 그 동안 노이즈 데이터(21) 메시지(노이즈(21))는 동시에 생성되고, 메시지(13) 및 이와 관련된 임의의 보조 정보를 모호하기 하기 위해 사용될 수 있다. 집합적으로, 프로세스(100)에서 사용되는 바와 같이, 통신 메시지(13) 및 노이즈(21)는 메시지(106)로 지칭된다. 노이즈(21)는 지속적으로 생성되어 프로세스(100)를 거치는 반면, 통신 메시지(13)는 원하거나 필요할 때만 참가자에 의해 생성된다.
생성된 각각의 통신 메시지(13) 및/또는 노이즈(21)는 단계(108)에서 먼저 암호화의 제1 계층, 예를 들어, AES256으로 암호화되고, 암호화는 OTP(14)와 같은 무조건적인 보안 프로세스를 사용하여 수행된다. 일단 암호화되면, 메시지(106)는 단계(110) 동안 통신 네트워크(18)의 모든 참가자에게 발송된다.
다음으로, 단계(112)에 따르면, 통신 네트워크(18)의 모든 참가자는 모든 메시지(106)(메시지(13) 및 노이즈(21))를 수신하고, 이는 그 후 각 메시지(106)를 해독하는 것을 시도하기 위해 저장된 OTP(14) 키(16B)와 비교된다. 각 메시지(106)의 해독은 단계(114)로 묘사된다.
위에서 논의된 바와 같이, 의도된 수신자(들)(12)만이 메시지(106)의 해독에 성공할 것이다. 따라서, 단계(114)가 성공적인 해독을 초래하면, 프로세스(100)의 단계(114)로부터의 좌측 분기에 도시된 바와 같이, 메시지(106)는 통신 메시지(13)인 것으로 결정되고, 단계(116)로서 의도된 수신자(12)에게 전달된다. 단계(114)가 단계(114)로부터의 우측 분기에 예시된 바와 같이 실패한 해독 시도를 초래하면, 메시지(106)는 노이즈 메시지(21)인 것으로 결정되고, 단계(118)로서 무시 및/또는 폐기된다.
대안으로, 단계(114)에서 실패한 해독 시도는, 메시지(106)가 통신 메시지(13)였지만, 실패한 해독 시도를 가지는 참가자는 의도된 수신자(12)가 아니라는 것을 의미할 수 있다. 이 시나리오에서, 수신자가 의도된 수신자(12)가 아닌 통신 메시지(13)는 노이즈 데이터(21)(즉, 노이즈(21))로 취급되고 단계(118)에서 무시 및/또는 폐기될 것이다. 하나의 비 제한적인 예시로서, 앨리스(10)가 통신 메시지(13)를 밥(12)에게 발신하면, 찰리는 또한 통신 메시지(13)를 수신할 것이다. 찰리가 의도된 수신자(12)가 아니기 때문에, 해독하는데 필요한 키의 사본을 가지지 않으며, 따라서 그의 해독 시도는 실패하고, 앨리스(10)로부터의 통신 메시지(13)는 마치 노이즈 데이터(21)인 것처럼 폐기될 것이다.
도 4를 참조하면, 보안 전자 통신 프로토콜 시스템(200)의 요소의 시스템 블록도가 일 실시예에 따라 도시된다. 이 실시예에서, 무작위 노이즈 생성기(205)는 멀티플렉서(220)에 대한 입력인 노이즈 데이터(210)의 스트림을 출력한다. 하나의 예시에서, 노이즈 데이터(210)는 연속적으로 전송되는 반면, 다른 예시에서 노이즈 데이터(210)는 연속적인 것보다 적은 기간에 전송된다. 노이즈 데이터(210)는 멀티플렉서(220)로부터 발신되고, 노이즈 데이터(240)는 익명 네트워크 계층(245)으로 발신되며, 최종 사용자가 이용하는 것이 가능하다. 암호화된 데이터 및 노이즈 데이터(240)로 라벨링되는 동안, 어떤 당사자도 암호화된 데이터를 노이즈 데이터와 구별할 수 없으며, 암호화된 데이터는 어떠한 특정 인스턴스에 존재할 수도 있고 없을 수도 있다.
때때로, 사용자 데이터(225)는 그것이 암호화되는 무조건적인 기밀성 암호화 모듈(230)로 발신된다. 암호화된 데이터(235)는 암호화된 데이터 및 노이즈 데이터(240)를 익명 네트워크 계층으로 전송하는 멀티플렉서(220)로 발신된다. 적절한 경우, 멀티플렉서는 암호화된 데이터를 암호화된 데이터 및 노이즈 데이터(240)의 스트림으로 익명 네트워크 계층(245)으로 전송한다. 있는 경우, 임의의 도청자 뿐 아니라 수신자는 익명 네트워크 계층(245)으로부터 암호화된 데이터 및 노이즈 데이터(240)를 검색할 수 있다. 의도된 수신자(들)는 암호화된 데이터 및 노이즈 데이터(240)를 무조건적인 기밀성 해독 모듈(250)로 다운로드하고 적절한 키를 사용하여 사용자 데이터(225)를 추출할 수 있다. 도청자와 적절한 키를 가지지 않은 사람들에게, 암호화된 데이터 및 노이즈 데이터(240)는 단일 데이터 스트림이고, 발신자, 수신자, 및 사용자 데이터에 대한 정보가 전혀 없는 것으로 보인다.
도 5를 참조하면, 보안 전자 통신 프로토콜 시스템(260)의 다른 실시예가 도시되어 있다. 이 실시예는 도 4 실시예의 일부 양태에서 유사하지만 특정 고유한 측면을 갖는다. 무작위 노이즈 생성기(205)는 멀티플렉서(220)에 입력되는 노이즈 데이터(210)를 생성한다. 멀티플렉서(220)로부터의 노이즈 데이터(210)는 그 후 무조건적인 기밀성 암호화 모듈(265)에 의해 암호화되어 암호화된 데이터 및 암호화된 노이즈 데이터(270)가 익명 네트워크 계층(240)으로 발신된다. 사용자 데이터(225)는 암호화된 데이터(280)를 생성하는 암호화 모듈(275)에 대한 입력이다. 암호화된 데이터(280)는 적절한 경우, 암호화된 데이터(280)를 무조건적인 기밀성 암호화 모듈(265)로 전송하는 멀티플렉서(220)로 발신한다. 노이즈 데이터(210) 및 암호화된 사용자 데이터(280)를 포함하는 스트림은 모듈에 의해 암호화된 사용자 데이터 및 노이즈 데이터(270)로 암호화되고 익명 네트워크 계층(240)으로 발신된다. 사용자 데이터(225)는 암호화된 데이터(280)를 생성하는 암호화 모듈(275)에 대한 입력이다. 암호화된 데이터(280)는 적절한 경우 암호화된 데이터(280)를 무조건적인 기밀성 암호화 모듈(265)로 발신된다. 노이즈 데이터(210) 및 암호화된 사용자 데이터(280)를 포함하는 스트림은 모듈에 의해 암호화된 사용자 데이터 및 노이즈 데이터(270)로 암호화되고, 익명 네트워크 계층(240)으로 발신된다. 암호화된 사용자 데이터 및 노이즈 데이터(270)는 수신자(들)에 의해 검색될 수 있고, 무조건적인 기밀성 해독 모듈(285)에서 적절한 키를 사용하여 해독될 수 있다. 모듈(285)로부터의 출력은 암호 해독 모듈(290)에 의해 사용자 데이터(225)로 해독될 수 있는 암호화된 데이터(280)이다.
도 6은 보안 전자 통신 프로토콜 시스템(300)에 대한 또 다른 실시예를 도시한다. 이 예시에서, 무작위 노이즈 생성기(205)는 멀티플렉서(220)에 입력되는 노이즈 데이터를 생성한다. 노이즈 데이터는 익명 네트워크 계층(240)으로의 암호화된 데이터 및 노이즈 데이터(305)의 스트림의 일부이다. 사용자 데이터(225)는 암호화 모듈(275)에 입력된 다음 무조건적인 기밀성 암호화 모듈(310)에 입력되어 암호화된 데이터(315)를 생성한다. 암호화된 데이터(315)는, 적절한 경우에 암호화된 데이터(315)를 익명 네트워크 계층(240)으로의 암호화된 데이터 및 노이즈 데이터(305)로 전송하는 멀티플렉서(220)에 대한 입력이다. 수신자(들)은 암호화된 데이터 및 노이즈 데이터(305)를 검색하고, 무조건적인 기밀성 해독 모듈(320) 및 해독 모듈(321)에서 적절한 키를 사용하여 해독하여 데이터(225)를 추출할 수 있다.
도 7을 참조하면, 보안 전자 통신 프로토콜 시스템(325)의 추가적인 실시예가 도시되어 있다. 무작위 노이즈 생성기(205)는 멀티플렉서(220)에 대한 입력인 노이즈 데이터(205)를 생성한다. 멀티플렉서로부터의 노이즈 데이터는 익명 네트워크 계층(240)으로 전송되는 암호화된 데이터 및 노이즈 데이터(330)를 생성하는 무조건적인 기밀성 암호화 모델(265)에 대한 입력이다. 사용자 데이터(225)는 또한 적절한 때에 익명 네트워크 계층(240)으로 통신되는 암호화된 데이터 및 노이즈 데이터(330)를 생성하는 무조건적인 기밀성 암호화 모델(265)로 발신되는 멀티플렉서(220)에 대한 입력이다. 암호화된 데이터 및 노이즈 데이터(330)에 액세스하는 수신자(들)는 사용자 데이터(225)를 획득하기 위해 무조건적인 기밀성 해독 모델(285)을 사용하여 신호를 해독한다.
다양한 동작 및 단계가 개인 및/또는 네트워크 참가자에 의해 수행되는 것으로 본 명세서에 기술되었지만, 현재 개시된 프로토콜의 대부분은 본 명세서에서 프로토콜로 프로그래밍된 컴퓨터 또는 로직 시스템에 의해 수행될 수 있음을 이해될 것이다. 따라서, 본 명세서에 기술된 특정 단계 또는 동작은 이러한 단계가 사용자의 지식이나 입력 없이 자동으로 수행될 수 있다는 점이 내재되어 있다. 하나의 비제한적인 예시로서, 사용자의 지식 또는 입력 없이 자동으로 수행되는 이러한 단계 중 하나는 시스템(1)의 통신 네트워크(18)로 노이즈 메시지(21)를 연속적으로 생성, 암호화, 및 발신하는 것일 수 있다.
본 발명의 다양한 개념은 하나 이상의 방법으로 구현될 수 있으며, 그 중 예시가 제공된다. 방법의 일부로 수행되는 행위는 임의의 적절한 방식으로 주문될 수 있다. 따라서, 예시적인 실시예에서 순차적인 동작으로 도시되더라도 일부 동작을 동시에 수행하는 것을 포함할 수 있는, 도시된 것과 다른 순서로 동작이 수행되는 실시예가 구성될 수 있다.
전술한 실시예는 임의의 다양한 방식으로 구현될 수 있다. 예를 들어, 본 명세서에 개시된 기술의 실시예는 하드웨어, 소프트웨어, 또는 이들의 조합을 사용하여 구현될 수 있다. 소프트웨어로 구현될 때, 소프트웨어 코드 또는 명령은 단일 컴퓨터에 제공되거나 여러 컴퓨터에 분산되어 있는지 여부에 관계없이 임의의 적절한 프로세서 또는 프로세서의 조합 상에서 실행될 수 있다. 더욱이, 명령어 또는 소프트웨어 코드는 적어도 하나의 비일시적 컴퓨터 판독 가능한 저장 매체에 저장될 수 있다.
또한, 프로세서를 통해 소프트웨어 코드 또는 명령을 실행하는데 사용되는 컴퓨터 또는 스마트폰은 하나 이상의 입력 및 출력 디바이스를 가질 수 있다. 이러한 디바이스는 무엇보다도 사용자 인터페이스를 표시하는데 사용될 수 있다. 사용자 인터페이스를 제공하는데 사용될 수 있는 출력 디바이스의 예시로는, 출력의 시각적 표현을 위한 프린터 또는 디스플레이 화면과 출력의 청각적 표현을 위한 스피커 또는 기타 사운드 생성 디바이스가 있다. 사용자 인터페이스에 사용될 수 있는 입력 디바이스의 예시로는, 키보드, 및 마우스, 터치 패드, 및 디지털 태블릿과 같은 포인팅 디바이스를 포함할 수 있다. 또 다른 예시로, 컴퓨터는 음성 인식을 통해 또는 다른 가청 포맷으로 입력 정보를 수신할 수 있다.
이러한 컴퓨터 또는 스마트폰은 근거리 통신망 또는 기업 네트워크와 같은 광역 통신망, 및 지능형 네트워크(intelligent network, IN) 또는 인터넷을 포함하는 임의의 적절한 형태의 하나 이상의 네트워크에 의해 상호 연결될 수 있다. 이러한 네트워크는 임의의 적정한 기술에 기초할 수 있으며, 임의의 적절한 프로토콜에 따라 작동할 수 있으며, 무선 네트워크, 유선 네트워크, 또는 광섬유 네트워크를 포함할 수 있다.
본 명세서에 기술된 다양한 방법 또는 프로세스는 다양한 운영 시스템 또는 플랫폼 중 어느 하나를 채용하는 하나 이상의 프로세서에서 실행 가능한 소프트웨어/명령으로 코딩될 수 있다. 추가적으로, 이러한 소프트웨어는 다수의 적절한 프로그래밍 언어 및/또는 프로그래밍 또는 스크립팅 도구 중 임의의 것을 사용하여 작성될 수 있으며, 실행 가능한 기계어 코드 또는 프레임워크(framework) 또는 가상 기계에서 실행되는 중간어로 컴파일될 수도 있다.
이와 관련하여, 다양한 발명 개념은 하나 이상의 컴퓨터 또는 다른 프로세서에서 실행될 때 상술한 바와 같이 개시 내용의 다양한 실시예를 구현하는 방법을 수행하는 하나 이상의 프로그램으로 인코딩된 컴퓨터 판독 가능한 저장 매체 (또는 다중 컴퓨터 판독 가능한 저장 매체) (예를 들어, 컴퓨터 메모리, 하나 이상의 플로피디스크, 콤팩트 디스크, 광 디스크, 자기 테이프, 플래시 메모리, USB 플래시 드라이브, SD 카드, 필드 프로그래밍 가능한 게이트 어레이 또는 기타 반도체 디바이스의 회로 구성, 또는 다른 비일시적인 매체 또는 유형의 컴퓨터 저장 장치 매체)로 구현될 수 있다. 컴퓨터 판독 가능한 매체 또는 미디어는 전송 가능할 수 있어서, 그 안에 저장된 프로그램 또는 프로그램들이 하나 이상의 상이한 컴퓨터 또는 다른 프로세서에 로딩되어서 전술한 바와 같이 본 개시의 다양한 양태를 구현할 수 있다.
용어 "프로그램" 또는 "소프트웨어" 또는 "명령"은 상술한 바와 같이 실시예의 다양한 양태를 구현하기 위해 컴퓨터 또는 다른 프로세서를 프로그래밍하는데 사용될 수 있는 임의의 유형의 컴퓨터 코드 또는 컴퓨터 실행 가능한 명령어 세트를 지칭하기 위한 일반적인 의미로 사용된다. 추가적으로, 일 양태에 따르면, 실행될 때 본 개시 내용의 방법을 수행하는 하나 이상의 컴퓨터 프로그램이 단일 컴퓨터 또는 프로세서에 상주할 필요는 없지만, 본 개시의 다양한 양태들을 구현하기 위해 다수의 상이한 컴퓨터 또는 프로세서들 사이에 모듈러 방식으로 분산될 수 있음을 인식해야 한다.
컴퓨터 실행 가능한 명령은 하나 이상의 컴퓨터 또는 다른 디바이스에 의해 실행되는 프로그램 모듈과 같은 다양한 형태일 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 구성 요소, 데이터 구조 등을 포함한다. 전형적으로, 프로그램 모듈의 기능은 다양한 실시예에서 원하는대로 결합되거나 분산될 수 있다.
또한, 데이터 구조는 임의의 적절한 형태로 컴퓨터 판독 가능한 매체에 저장될 수 있다. 간략한 설명을 위해, 데이터 구조는 데이터 구조에서 위치를 통해 관련된 필드를 갖는 것으로 도시될 수 있다. 이러한 관계는 마찬가지로 필드 사이의 관계를 전달하는 컴퓨터 판독 가능한 매체의 위치를 갖는 필드에 대한 저장 장치를 할당함으로써 달성될 수 있다. 그러나, 포인터, 태그, 또는 데이터 요소 간의 관계를 설정하는 기타 매커니즘의 사용을 포함하여 데이터 구조의 필드에 있는 정보 간의 관계를 설정하는데 적합한 매커니즘이 사용될 수 있다.
본 명세서에 정의되고, 사용된 모든 정의는, 사전적 정의, 참조로 포함된 문서의 정의, 및/또는 정의된 용어의 일반적인 의미를 모두 제어하는 것으로 이해되어야 한다.
본 명세서에서 사용된 "로직"의 기능(들) 또는 동작(들)을 수행하고, 및/또는 또 다른 로직, 방법, 및/또는 시스템으로부터의 기능 또는 동작을 야기하기 위한 하드웨어, 펌웨어, 소프트웨어, 및/또는 각각의 조합을 포함하지만 이에 한정되지는 않는다. 예를 들어, 원하는 어플리케이션 또는 필요에 따라 로직은 소프트웨어 제어된 마이크로프로세서, 프로세서(예를 들어, 마이크로프로세서)와 같은 이산 조직, ASIC(application specific integrated circuit), 프로그래밍된 로직 디바이스, 명령을 포함하는 메모리 디바이스, 메모리를 가지는 전자 디바이스 등을 포함할 수 있다. 로직은 하나 이상의 게이트, 게이트들의 조합, 또는 다른 회로 구성 요소를 포함할 수 있다. 로직은 소프트웨어로 완전히 구현될 수도 있다. 다수의 로직이 기술된 경우, 여러 로직을 하나의 물리적 로직으로 통합하는 것이 가능할 수 있다. 유사하게, 단일 로직이 기술되면, 여러 물리적 로직 사이에 단일 로직을 분산하는 것이 가능할 수 있다.
또한, 이 시스템의 다양한 방법을 수행하기 위해 본 명세서에 제시된 로직(들)은 이전 아날로그 버전을 가지지 않을 수 있는 기존의 컴퓨터 중심 또는 인터넷 중심 기술의 개선을 지향할 수 있다. 로직(들)은 본 명세서에서 식별된 일부 문제들을 해결하고, 해결하는 구조와 직접 관련된 특정 기능을 제공할 수 있다. 로직(들)은 또한 방법 및 시스템의 특정 로직 구조 및 일치하는 기능으로서 예시적인 발명 개념을 제공함으로써 이러한 문제를 해결하기 위해 훨씬 더 많은 장점을 제공할 수 있다. 더욱이, 로직(들)은 기존 기술 프로세스를 개선하는 특정 컴퓨터 구현된 규칙을 또한 제공할 수도 있다. 본 명세서에 제공된 로직(들)은 단순히 데이터를 수집하고, 정보를 분석하고, 결과를 표시하는 것 이상으로 확장된다. 또한, 본 개시 내용의 일부 또는 전부는 본 명세서에 인용된 바와 같은 장비 또는 구성 요소의 특정 배치로부터 도출된 기본 방정식에 의존할 수 있다. 따라서, 구성요소의 특정 배치와 관련된 본 명세서의 일부는 추상적인 아이디어에 관한 것이 아니다. 더욱이, 본 개시 내용 및 첨부된 청구범위는 업계에 이전에 공지된 잘 이해되고 일상적인 통상적인 활동의 수행 이상의 것을 포함하는 교시를 제시한다. 자연 현상의 일부 양태를 포함할 수 있는 본 개시 내용의 방법 또는 프로세스의 일부에서, 프로세스 또는 방법 단계는 새롭고 유용한 추가적인 특징이다.
본 명세서 및 청구범위에서 사용되는 "하나의", "하나"는 반대로 명확하게 표시되지 않는 한 "적어도 하나"를 의미하는 것으로 이해되어야 한다. 명세서 및 청구범위에서 사용된 "및/또는"이라는 문구는 (만약 있다면), 결합된 요소의 "하나 또는 둘 다"를 의미하는 것, 즉, 일부 경우에는 결합적으로 존재하고 다른 경우에는 분리적으로 존재하는 것으로 이해되어야 한다. "및/또는"으로 나열된 다수의 요소는 동일한 방식으로 해석되어야 하며, 즉 결합된 요소의 "하나 이상"이 해당된다. 구체적으로 식별된 요소와 관련이 있는지 여부에 상관없이 "및/또는" 구절에 의해 구체적으로 식별된 요소 이외의 다른 요소가 선택적으로 존재할 수 있다. 따라서, 비제한적인 예시로서, "포함하는"과 같은 개방형 언어와 함께 사용될 때, "A 및/또는 B"에 대한 언급은 일 실이예에서, A만을 지칭할 수 있으며 (선택적으로 B와 다른 요소를 포함할 수 있음), 다른 실시예에서는 B만을 지칭할 수 있으며 (선택적으로 A와 다른 요소를 포함할 수 있음), 또 다른 실시예에서는 A 및 B 모두 (선택적으로 다른 요소를 포함할 수 있음) 등을 지칭할 수 있다. 본 명세서 및 청구범위에서 사용된 "또는"은 상기 정의된 "및/또는"과 동일한 의미를 갖는 것으로 이해되어야 한다. 예를 들어, 목록에서 항목을 구별할 때, "또는" 또는 "및/또는"은 포함되는 것으로 해석되어야 하며, 즉, 하나 이상을 또한 포함하는 적어도 하나를 포함하는 것이며, 요소의 수 또는 목록 및 선택적으로는 목록에 없는 추가 항목을 포함하는 것이다. "다음 중 하나만" 또는 "다음 중 정확히 하나" 또는 청구범위에서 사용되는 경우 "~을 포함하는"과 같이 반대로 명확하게 표시된 용어만이 숫자 또는 요소의 목록 중 정확히 하나의 요소를 포함하는 것을 의미한다. 일반적으로 본 명세서에서 사용된 용어 "또는"은 "둘 중 하나", "~ 중 하나", "중 단지 하나", 또는 "~ 중 정확히 하나"와 같은 독점성 용어에 의해 선행되는 때 배타적인 대안(즉, "하나 또는 다른 것, 그러나 둘 다는 아닌")을 나타내는 것으로 해석되어야 한다. 청구범위에서 사용되는 "본질적으로 구성되는"은 특허법 분야에서 사용되는 일반적인 의미를 갖는다.
명세서 및 청구범위에서 사용된 바와 같이, 하나 이상의 요소의 목록과 관련하여 "적어도 하나"라는 문구는 다음 중 어느 하나 이상의 요소로부터 선택된 적어도 하나의 요소를 의미하는 것으로 이해되어야 하나, 요소 목록에 구체적으로 나열된 각 요소 중 적어도 하나 및 모든 요소를 반드시 포함하는 것은 아니며 요소 목록의 요소 조합을 제외하는 것은 아니다. 이러한 정의는 또한 "적어도 하나"라는 문구가 참조하는 요소 목록 내에서 구체적으로 식별된 요소와 관련이 있는지 여부에 관계없이 구체적으로 식별된 요소가 아닌 다른 요소가 선택적으로 존재할 수 있도록 한다. 따라서, 비제한적인 예시로서, "A 및 B 중 적어도 하나" (또는 동등하게, "A 또는 B 중 적어도 하나" 또는 동등하게 "A 및/또는 B 중 적어도 하나")는, 일 실시예에서, B가 존재하지 않는 (및 선택적으로 B가 아닌 요소를 포함함) 선택적으로 하나 이상을 포함하는 적어도 하나의 A; 또 다른 실시예에서, A가 존재하지 않는 (및 선택적으로 A가 아닌 요소를 포함함) 선택적으로 하나 이상을 포함하는 적어도 하나의 B; 또 다른 실시예에서, 선택적으로 하나 이상을 포함하는 적어도 하나의 A 및 선택적으로 하나 이상을 포함하는 적어도 하나의 B (및 선택적으로 다른 요소를 포함함)를 지칭한다.
상기 명세서 뿐 아니라 청구범위에서, "포함하는", "포함하고", "운반하는", "갖는", "함유하는", "보유하는", "구성된" 등과 같은 모든 과도기적 어구는 개방형, 즉, 이에 한정되는 것은 아니지만 포함하는 것을 의미하는 것으로 이해되어야 한다. "~로 구성되는(consisting of)" 및 "본질적으로 구성되는(consisting essentially of)" 과도기적 어구만이 미국 특허청 특허 심사 절차 매뉴얼에 명시된 바와 같이 폐쇄 또는 반폐쇄 전환 어구이다.
실시예는 본 개시의 구현 또는 예시이다. 명세서에서 "일 실시예", "하나의 실시예", "일부 실시예", "하나의 특정 실시예", "예시적인 실시예", 또는 "다른 실시예" 등의 언급은 특정 특징, 구조, 또는 실시예와 관련하여 설명된 특성은 본 발명의 적어도 일부 실시예를 포함하지만 반드시 모든 실시예를 포함하는 것은 아니다. "일 실시예", "하나의 실시예", "일부 실시예", "하나의 특정 실시예", "예시적인 실시예", 또는 "다른 실시예" 등과 같은 다양한 표현은 반드시 모두 동일한 실시예를 지칭하는 것은 아니다.
본 명세서에서 구성요소, 특징, 구조, 또는 특성이 "~일 수 있다", "~ 일 것이다", "~ 할 수 있다"로 언급하면, 그 특정 구성 요소, 특징, 구조, 또는 특성은 포함될 필요가 없다. 명세서 또는 청구범위가 "하나" 또는 "하나의" 요소를 언급하는 경우, 이는 단지 하나의 요소만을 의미하는 것은 아니다. 명세서 또는 청구범위가 "추가적인" 요소를 지칭하면, 이는 추가 요소 중 하나 이상의 존재하는 것을 배제하지 않는다.
추가적으로, 본 개시의 내용을 수행하는 방법은 본 명세서에 개시된 것과 다른 순서로 발생할 수 있다. 따라러, 명시적으로 언급하지 않는 한 방법의 순서를 제한적으로 읽어서는 안된다. 방법의 일부 단계를 다른 순서로 수행하면 유사한 결과를 얻을 수 있음을 인식할 수 있다.
전술한 설명에서, 간결성, 명확성, 및 이해를 위해 특정 용어가 사용되었다. 이러한 용어는 설명 목적으로 사용되고 광범위하게 해석되도록 의도되었기 때문에 종래 기술의 요구 사항을 넘어서는 불필요한 제한이 그로부터 암시되어서는 안된다.
더욱이, 본 개시의 다양한 실시예의 설명 및 예시는 단지 예시이며, 본 개시는 도시되거나 설명된 정확한 세부 사항으로 제한되지 않는다.

Claims (24)

  1. 보안 통신을 제공하는 방법으로서,
    네트워크 참가자에 의해 무작위 노이즈 데이터를 생성하는 단계;
    상기 노이즈 데이터를 제1 정의된 전송 프로토콜로 통신 네트워크를 통해 적어도 하나의 다른 네트워크 참가자에게 전송하는 단계;
    발신자에 의해 적어도 하나의 통신 메시지를 생성하고 상기 통신 메시지를 암호화 프로토콜로 암호화하여 키를 사용하여 해독되도록 구성된 암호화된 메시지를 생성하는 단계;
    도청자가 암호화된 메시지를 상기 노이즈 데이터와 구별하지 못하도록, 상기 암호화된 메시지를 상기 제1 정의된 전송 프로토콜을 사용하여 상기 통신 네트워크를 통해 복수의 네트워크 참가자에게 전송하는 단계; 및
    적어도 한 명의 의도된 수신자에 의해, 통신 메시지를 획득하기 위해 상기 키를 사용하여 상기 암호화된 메시지를 해독하는 단계
    를 포함하는, 보안 통신을 제공하는 방법.
  2. 제1항에 있어서,
    노이즈 데이터를 상기 통신 네트워크를 통해 연속적으로 전송하고 암호화된 메시지를 간헐적으로 전송하는 단계를 더 포함하는,
    보안 통신을 제공하는 방법.
  3. 제1항에 있어서,
    n개의 공유를 갖는 라운드로 대역폭을 분할하는 단계 - 상기 n은 네트워크 참가자의 수와 같고, 상기 네트워크 참가자는,
    발신자, 의도된 수신자, 및 많은 추가 네트워크 참가자들 중 적어도 하나를 포함함 -;
    적어도 하나의 공유를 적어도 하나의 발신자에게 할당하는 단계; 및
    라운드마다, 노이즈 데이터 및 암호화된 메시지 중 하나를 전송하는 단계를 포함하는,
    보안 통신을 제공하는 방법.
  4. 제1항에 있어서,
    적어도 하나의 네트워크 참가자에 의해 모든 노이즈 데이터 및 암호화된 메시지를 수신하는 단계; 및
    상기 키를 사용하여 모든 노이즈 데이터 및 암호화된 메시지의 해독을 시도하는 단계를 더 포함하는,
    보안 통신을 제공하는 방법.
  5. 제1항에 있어서,
    상기 노이즈 데이터를 상기 통신 네트워크를 통해 전송하기 전에, 상기 노이즈 데이터를 암호화 프로토콜로 암호화하는 단계를 더 포함하는,
    보안 통신을 제공하는 방법.
  6. 제1항에 있어서,
    상기 통신 네트워크는 네트워크 참가자에 대한 익명 네트워크이고, n은 네트워크 참가자의 수와 같고,
    어떤 참가자가 암호화된 메시지를 발신하였는지 결정하는 것을 배제하는,
    보안 통신을 제공하는 방법.
  7. 제6항에 있어서,
    상기 익명 네트워크의 각 참가자로부터 암호화된 노이즈 데이터를 생성하고, 각 참가자로부터 암호화된 노이즈 데이터를 익명 네트워크의 다른 모든 참가자에게 전송하는 단계를 더 포함하는,
    보안 통신을 제공하는 방법.
  8. 제1항에 있어서,
    암호화된 메시지와 노이즈 데이터를 동일한 암호화 프로토콜로 암호화하는 단계 - 상기 암호화 프로토콜은 무조건적인 보안 프로세스(unconditionally secure process)임 -; 및
    통신 네트워크를 통한 활동이 도청자에게 균일하게 보이도록 보장하는 단계를 더 포함하는,
    보안 통신을 제공하는 방법.
  9. 제8항에 있어서,
    상기 무조건적인 보안 프로세스는 동일한 가능성을 가지는 모든 해독을 제공하는,
    보안 통신을 제공하는 방법.
  10. 제9항에 있어서,
    상기 암호화된 메시지를 무조건적인 보안 프로세스를 사용하여 암호화하여 이중 암호화된 메시지를 제공하는 단계를 더 포함하는,
    보안 통신을 제공하는 방법.
  11. 제9항에 있어서,
    모든 해독이 동일한 가능성을 가지는 암호화 프로토콜을 생성하는 단계는,
    각각의 통신 메시지 및 노이즈 데이터 내의 데이터의 각 비트를 무작위로 1 또는 0으로 변경하는 단계; 및
    무조건적인 보안 프로세스로부터 완전한 난수를 출력하기 위해 모든 비트가 무작위로 켜지거나(1), 또는 꺼지도록(0) 무작위로 스위칭하는 단계를 더 포함하는,
    보안 통신을 제공하는 방법.
  12. 제1항에 있어서,
    항상 일정한 레벨로 통신 네트워크에서 활동을 유지하는 단계를 더 포함하는,
    보안 통신을 제공하는 방법.
  13. 제1항에 있어서,
    상기 키는 통신 메시지와 동일한 개수의 비트를 갖는 무작위의 일회성 키인,
    보안 통신을 제공하는 방법.
  14. 제13항에 있어서,
    상기 일회성 키를 암호화된 메시지의 의도된 수신자에게 안전하게 전달하는 단계를 더 포함하는,
    보안 통신을 제공하는 방법.
  15. 보안 통신을 제공하는 방법으로서,
    연속적으로 노이즈 데이터를 생성하는 단계;
    노이즈 데이터의 스트림을 익명 네트워크를 통해 네트워크 참가자에게 연속적으로 발신하는 단계;
    적어도 하나의 통신 메시지를 생성하는 단계;
    암호화된 통신 메시지를 제공하는 무조건적인 보안 프로세스를 사용하여 통신 메시지를 암호화하는 단계;
    암호화된 통신 메시지를 익명 네트워크를 통해 네트워크 참가자에게 발신하는 단계;
    네트워크 참가자에 의해, 노이즈 데이터 및 암호화된 통신 메시지를 수신하는 단계;
    키를 사용하여 노이즈 데이터 및 암호화된 통신 메시지에 대해 해독 프로토콜을 실행하는 단계; 및
    실패한 해독 시도를 무시하는 단계를 포함하는,
    보안 통신을 제공하는 방법.
  16. 제15항에 있어서,
    상기 암호화된 통신 메시지를 발신하는 것과 상기 노이즈 데이터를 발신하는 것 사이에서 스위칭하는 때에 관찰 가능한 시간적 차이가 없는,
    보안 통신을 제공하는 방법.
  17. 제15항에 있어서,
    상기 노이즈 데이터 및 상기 통신 메시지를 중앙 허브에 발신하는 단계를 더 포함하는,
    보안 통신을 제공하는 방법.
  18. 제15항에 있어서,
    성공적으로 해독된 통신 메시지를 적어도 한 명의 의도된 수신자에게 전달하는 단계를 더 포함하는,
    보안 통신을 제공하는 방법.
  19. 적어도 하나의 프로세서에 의해 실행될 때, 발신자와 적어도 한 명의 의도된 수신자 사이에서 안전하고 기밀로 메시지를 교환하는 작업을 구현하는 명령어가 인코딩된 컴퓨터 판독 가능한 저장 매체로서, 상기 명령어는,
    발신자에 의해 생성된 적어도 하나의 통신 메시지를 식별하고, 상기 통신 메시지를 암호화 프로토콜로 암호화하여 암호화된 메시지를 생성하며;
    암호화된 메시지를 네트워크를 통해 복수의 네트워크 참가자에게 발신하고;
    노이즈 데이터를 생성하고;
    상기 노이즈 데이터를 네트워크를 통해 네트워크 참가자에게 전송하며;
    상기 노이즈 데이터 및 암호화된 메시지의 메시지 전송과 관련된 대역폭 불일치를 마스킹하고;
    상기 노이즈 데이터 및 상기 암호화된 메시지 중 적어도 하나를 수신하며;
    적어도 한 명의 의도된 수신자에 의해, 키를 사용하여 상기 노이즈 데이터 및 상기 암호화된 메시지를 해독하려고 시도하고;
    성공적으로 해독된 통신 메시지를 적어도 한 명의 의도된 수신자에게 전달하며; 그리고
    실패한 암호 해독 시도를 무시하는 것을 포함하는,
    컴퓨터 판독 가능한 저장 매체.
  20. 보안 통신 시스템으로서,
    노이즈 생성기;
    상기 노이즈 생성기에 결합된 멀티플렉서 - 상기 노이즈 생성기는 멀티플렉서에 대한 입력인 노이즈 데이터를 생성함 -;
    사용자에 의해 생성된 통신 메시지 - 상기 통신 메시지는 멀티플렉서에 대한 입력이며, 상기 통신 메시지는 암호화 모듈에 의해 암호화됨 -;
    상기 노이즈 데이터 및 상기 암호화된 통신 메시지를 수신하는 익명 네트워크; 및
    암호화된 통신 메시지를 해독하는 해독 모듈을 포함하고,
    상기 암호화된 통신 메시지 및 노이즈 데이터는 구별할 수 없도록 유사한 전송 프로토콜을 사용하여 전송되는, 보안 통신 시스템.
  21. 제20항에 있어서,
    상기 암호화 모듈은 무조건적인 기밀성 암호화 모듈이고,
    상기 통신 메시지는 상기 멀티플렉서에 입력되기 전에 암호화되며,
    상기 해독 모듈은 무조건적인 기밀성 해독 모듈인,
    보안 통신 시스템.
  22. 제20항에 있어서,
    상기 통신 메시지는 멀티플렉서에 입력되기 전에 암호화되고,
    상기 보안 통신 시스템은,
    멀티플렉서 이후의 노이즈 데이터 및 암호화된 통신 메시지를 암호화하는 무조건적인 기밀성 암호화 모듈에 의한 2차 암호화, 및
    상기 해독 모듈이 통신 메시지를 해독하기 전에 제2 해독 메시지를 해독하는 무조건적인 기밀성 해독 모듈을 더 포함하는
    보안 통신 시스템.
  23. 제20항에 있어서,
    상기 통신 메시지는 멀티플렉서에 입력되기 전에 암호화되고,
    상기 보안 통신 시스템은,
    멀티플렉서 이전의 암호화된 통신 메시지를 암호화하는 무조건적인 기밀성 암호화 모듈에 의한 2차 암호화를 더 포함하고,
    상기 해독 모듈은 통신 메시지를 해독하는 무조건적인 해독 모듈인,
    보안 통신 시스템.
  24. 제20항에 있어서,
    상기 암호화 모듈은 무조건적인 기밀성 암호화 모듈이고,
    상기 노이즈 데이터 및 상기 통신 메시지는 멀티플렉서 이후에 암호화되고,
    상기 해독 모듈은 무조건적인 기밀성 해독 모듈인,
    보안 통신 시스템.
KR1020217009168A 2018-08-28 2019-08-26 통신 프로토콜 KR20210039499A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/114,654 US11368436B2 (en) 2018-08-28 2018-08-28 Communication protocol
US16/114,654 2018-08-28
PCT/US2019/048137 WO2020051012A2 (en) 2018-08-28 2019-08-26 Communication protocol

Publications (1)

Publication Number Publication Date
KR20210039499A true KR20210039499A (ko) 2021-04-09

Family

ID=69639202

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217009168A KR20210039499A (ko) 2018-08-28 2019-08-26 통신 프로토콜

Country Status (4)

Country Link
US (1) US11368436B2 (ko)
EP (1) EP3844738A4 (ko)
KR (1) KR20210039499A (ko)
WO (1) WO2020051012A2 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220060510A1 (en) * 2015-10-28 2022-02-24 Qomplx, Inc. System and method for aggregating and securing managed detection and response connection interfaces between multiple networked sources
US11586743B2 (en) * 2018-03-22 2023-02-21 Via Science, Inc. Secure data processing
US11917068B1 (en) * 2020-06-29 2024-02-27 Thomas William Maloney System, apparatus, and method for secure exchange of personal information
FR3119503A1 (fr) * 2021-02-04 2022-08-05 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procédé et dispositif de transmission ou d’échange d’information anonyme au sein d’un réseau de confiance

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021203A (en) 1996-12-11 2000-02-01 Microsoft Corporation Coercion resistant one-time-pad cryptosystem that facilitates transmission of messages having different levels of security
US6502135B1 (en) 1998-10-30 2002-12-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
US7010590B1 (en) * 1999-09-15 2006-03-07 Datawire Communications Networks, Inc. System and method for secure transactions over a network
US7464171B2 (en) * 2004-10-01 2008-12-09 Microsoft Corporation Effective protection of computer data traffic in constrained resource scenarios
KR100827278B1 (ko) * 2005-05-17 2008-05-07 가부시끼가이샤 도시바 광 신호 전송 장치 및 신호 처리 방법
FR2912020B1 (fr) * 2007-01-26 2009-03-06 Thales Sa Procede pour securiser la transmission d'informations.
JP5751039B2 (ja) * 2010-09-16 2015-07-22 株式会社リコー 無線通信方式、無線通信装置、方法、およびプログラム
US8787571B2 (en) * 2011-10-19 2014-07-22 General Electric Company Wired communications systems with improved capacity and security
NO20120611A1 (no) 2012-05-24 2013-08-12 Norsk Tillitsmann Asa Metode og system for å gjøre elektroniske meldinger anonyme
US10311243B2 (en) * 2013-03-14 2019-06-04 Massachusetts Institute Of Technology Method and apparatus for secure communication
US9590951B2 (en) * 2013-05-07 2017-03-07 Robert John Tomkow One-time pad communications network
US9519776B2 (en) * 2013-08-06 2016-12-13 Duquesne University Of The Holy Spirit Computer security system and method
GB2512501A (en) * 2014-02-25 2014-10-01 Cambridge Silicon Radio Ltd Packet identification
US20170033925A1 (en) * 2014-04-11 2017-02-02 Oscar Tango Papa Llc Methods and apparatus for implementing a communications system secured using one-time pads
JP2017527192A (ja) * 2014-09-30 2017-09-14 株式会社東芝 1つまたは複数の計量デバイスから2つ以上の第3者へデータを配布する準同形ベースの方法
US9998434B2 (en) * 2015-01-26 2018-06-12 Listat Ltd. Secure dynamic communication network and protocol
US9973516B2 (en) * 2015-02-13 2018-05-15 International Business Machines Corporation Traffic shape obfuscation when using an encrypted network connection
US9990249B2 (en) * 2015-12-24 2018-06-05 Intel Corporation Memory integrity with error detection and correction
US10643596B2 (en) * 2018-02-13 2020-05-05 Ppip, Llc Apparatus providing uncorrelated noise masking

Also Published As

Publication number Publication date
EP3844738A2 (en) 2021-07-07
US20200076772A1 (en) 2020-03-05
WO2020051012A3 (en) 2020-07-23
US11368436B2 (en) 2022-06-21
WO2020051012A2 (en) 2020-03-12
EP3844738A4 (en) 2022-05-11

Similar Documents

Publication Publication Date Title
JP6976951B2 (ja) 共振暗号化のためのデバイス及び方法
US10187200B1 (en) System and method for generating a multi-stage key for use in cryptographic operations
US11063754B2 (en) Systems, devices, and methods for hybrid secret sharing
KR20210039499A (ko) 통신 프로토콜
US8433066B2 (en) Method for generating an encryption/decryption key
KR101608815B1 (ko) 폐쇄형 네트워크에서 암복호화 서비스 제공 시스템 및 방법
CN103986723B (zh) 一种保密通信控制、保密通信方法及装置
US20150229621A1 (en) One-time-pad data encryption in communication channels
US9130744B1 (en) Sending an encrypted key pair and a secret shared by two devices to a trusted intermediary
CN103986583A (zh) 一种动态加密方法及其加密通信系统
CN103997405B (zh) 一种密钥生成方法及装置
US10699021B2 (en) Method and a device for secure storage of at least one element of digital information, and system comprising such device
CN106850597A (zh) 一种分布式加密方法及系统
US20170070481A1 (en) Communication channel security against packet sniffing
Erondu et al. An encryption and decryption model for data security using vigenere with advanced encryption standard
CN107493287A (zh) 工控网络数据安全系统
CN106487761B (zh) 一种消息传输方法和网络设备
Suresh et al. ETSET: Enhanced Tiny Symmetric Encryption Techniques to Secure Data Transmission among IoT Devices
Peng et al. On the security of fully homomorphic encryption for data privacy in Internet of Things
CN103986640A (zh) 一种可保障用户通讯内容安全的即时通讯方法及其系统
Singh et al. Randomly Generated Algorithms and Dynamic Connections
Chavan et al. Enhancement in Cloud security for web application attacks
Ryabko et al. Cryptography in the information society
Watanabe et al. Representative system and security message transmission using re-encryption scheme based on symmetric-key cryptography
Rishu et al. Advancements in encryption techniques for enhanced data security over cloud