KR20230058685A - 네트워크 코딩 기반 보안 통신 - Google Patents

네트워크 코딩 기반 보안 통신 Download PDF

Info

Publication number
KR20230058685A
KR20230058685A KR1020237010844A KR20237010844A KR20230058685A KR 20230058685 A KR20230058685 A KR 20230058685A KR 1020237010844 A KR1020237010844 A KR 1020237010844A KR 20237010844 A KR20237010844 A KR 20237010844A KR 20230058685 A KR20230058685 A KR 20230058685A
Authority
KR
South Korea
Prior art keywords
message
messages
encoding
unencrypted
data
Prior art date
Application number
KR1020237010844A
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 KR20230058685A publication Critical patent/KR20230058685A/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
    • 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
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3215Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a plurality of channels
    • 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/34Encoding or coding, e.g. Huffman coding or error correction
    • 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/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/304Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy based on error correction codes, e.g. McEliece

Abstract

시스템 및 방법은 포스트 양자 컴퓨터 보안 보장으로 높은 통신 레이트를 달성하는 하이브리드 통신 방식을 제공한다. 안전하게 통신될 메시지들은 먼저 선형 네트워크 코드와 같은 개별 보안 인코딩을 사용하여 혼합되고 일부 인코딩된 메시지들은 추가로 암호화된다. 암호화된 메시지와 암호화되지 않은 메시지는 상이한 통신 채널들을 통해 전송된다. 메시지들 중 하나를 디코딩하려면 암호화된 메시지들을 포함하여 모든 메시지들이 필요하기 때문에 암호화되지 않은 각각의 메시지는 사전-혼합(pre-mixing)으로 인해 거의 암호화된 메시지들만큼 안전해진다. 따라서 매우 적은 수의 암호화된 메시지들이 사용될 수 있으므로 채널들의 수가 증가함에 따라 통신 레이트가 1에 근접할 수 있다. 이는 기존의 공개-키 암호시스템이 분산 데이터 기억 장치 및 기타 응용 분야들에서 잡음이 많은 채널들이 있을 때 전송되거나 저장된 데이터의 일부에서만 사용될 수 있는 경우에 특히 유용하다.

Description

네트워크 코딩 기반 보안 통신
본 명세서에 개시된 개념들, 기술들 및 구조들의 실시예들은 높은 통신 레이트에서 보안 포스트-양자 암호 방식을 획득하기 위해 새로운 하이브리드 범용 네트워크 코딩 암호시스템을 제공한다.
정보 이론(information theory)과 암호 방식(cryptography) 사이의 연결(connection)은 Claude Shannon의 보안 작업(work in security)으로 거슬러 올라가며, 이는 통신들에 대한 그의 중요한 작업에 영감을 주었다. 그곳에서, 그는 Alice와 Bob이라는 두 명의 사용자들이 도청자(eavesdropper)인 Eve 앞에서 개인적으로 통신하기를 원하는 설정(setting)을 연구(study)할 때 완전한 비밀성(perfect secrecy)이라는 정보-이론적 개념(information-theoretic notion)을 정의했다. 완전한 비밀성에서, H(M|X) = H(M)이고, 여기서 H는 엔트로피(entropy), M은 개인 메시지(private message), X는 통신 네트워크(communication network)를 통해 전송(send)되는 암호화된 메시지(encrypted message)이다. Eve가 암호화된 메시지 X를 완전히 관찰할 수 있는 경우(즉, Eve가 "강한(strong)" 경우), Alice와 Bob이 메시지만큼 큰 엔트로피를 가지는 랜덤 키(random key) 또는 "원-타임 패드(one-time pad)" R을 공유하는 경우에만(예: H(R)
Figure pct00001
H(M)) 완전한 비밀성이 획득될 수 있다. 이러한 시스템은 도 1에 도시되어 있고, 도 1에서 Alice는 2개의 다른 경로(path)들을 통해 2개의 메시지들(
Figure pct00002
Figure pct00003
)을 Bob에게 전송하고, 공유 키(shared key)
Figure pct00004
를 제1 경로의
Figure pct00005
에 추가하고 공유 키
Figure pct00006
를 제2 경로의
Figure pct00007
에 추가한다. Alice와 Bob만이 공유 키들을 알고 있기 때문에 이들 합계(sum)들에서 두 메시지(
Figure pct00008
) 및 (
Figure pct00009
)만 복구할 수 있다.
(예를 들어, Alice와 Bob이 지리적으로 멀리 떨어져 있는(geographically distant) 경우,) Alice와 Bob이 큰(large) 비밀 키(secret key)들을 공유해야 하는 이론적 필요성(theoretical necessity)은 종종 비실용적(non-practical)이다. 따라서 완전한 비밀성 조건을 완화하는 대안적인 솔루션(alternative solution)들을 개발하기 위해 많은 노력을 기울였다. 그러한 완화(relaxation) 중 하나는 도청자가 제한된 컴퓨터 능력(limited computational power)을 가지고 있다고 가정하는 것이다. 본 명세서에서 "컴퓨터적인 보안(computationally secure)"으로 지칭되는 이러한 방식(scheme)들은 특정한 단방향 펑션(one-way function)들이 반전(invert)되기 어렵다는 추측(conjecture)에 의존한다. 이러한 방식들에서, Alice는 개인 메시지를 Bob에게 전송하기 전에 단방향 펑션을 사용하여 암호화한다. 이 펑션은 Eve가 반전시키기 어렵겠지만, Bob이 올바른 키(right key)를 소유하고 있는 경우, 효율적이고 Bob에 대한 반전이 가능하다. 이를 달성하는 한 가지 방법은 "공개-키 암호 방식(public-key cryptography)"를 이용하는 것이다.
공개-키 암호시스템(cryptosystem)은 암호화 펑션
Figure pct00010
, 암호해제 펑션
Figure pct00011
, 비밀 키
Figure pct00012
, 공개-키
Figure pct00013
로 구성된다. 암호화 펑션은 공개 키를 사용하여 개인 메시지
Figure pct00014
Figure pct00015
으로 암호화한다. 암호해제 펑션은 비밀 키를 사용하여 암호화된 메시지
Figure pct00016
를 암호해제한다. 중요한 이론적 특성은 비밀 키 없이 암호화된 메시지를 암호해제하는 데 컴퓨터적으로 비용이 많이 든다는 것이다. 이를 특징짓는 방법들은 여러 가지가 있지만 "보안 수준(security level)"이라는 개념에 중점을 둘 것이다. 비공식적으로, 비밀 키에 대한 지식 없이 암호화된 메시지를 디코딩하는 데 필요할 것으로 예상되는 동작(operation)(또는 연산)들의 수가
Figure pct00017
정도인 경우, 공개-키 암호시스템(public-key cryptosystem)은 "
Figure pct00018
-비트 보안(
Figure pct00019
-bit secure)"이라고도 하는 보안 수준
Figure pct00020
을 갖는다. 중요한 실용적 특성(critical practical property)은 비밀 키
Figure pct00021
가 통신 중인 메시지보다 엔트로피가 훨씬 적기 때문에 실용적 비밀 통신(practical secret communication)들이 가능하다는 것이다.
최초이자 가장 널리 사용되는 공개-키 암호시스템 중 하나는 RSA(Rivest-Shamir-Adleman) 암호시스템이다. RSA의 보안은 정수 분해(integer factorization)와 RSA 문제라는 두 가지 수학적 문제들의 추측된 강도(conjectured hardness)에 의존한다. 그러나 1994년에, Peter Shor는 알고리즘이 양자 컴퓨터(quantum computer)에서 실행된다는 경고(caveat)와 함께 Shor의 알고리즘으로 알려진 정수 분해를 위한 다항-시간 알고리즘(polynomial-time algorithm)을 발표했다. 즉, 충분히 큰 양자 컴퓨터를 구축해야 하는 경우, Shor의 알고리즘을 사용하여 RSA 암호시스템을 해독할 수 있다. 이러한 발전으로 인해 "포스트-양자 암호 방식(post-quantum cryptography)"으로 알려진 분야(field)인 양자 공격(quantum attack)들에 탄력적인(resilient) 암호시스템들에 대한 관심이 높아졌다.
"McEliece 암호시스템"으로 알려진 포스트-양자 암호 방식의 초기 후보는 1978년에 도입되었으며 그 동작은 도 2에 도시되어 있다. 이 암호시스템은 Bob이 생성하고 Alice에게 제공된 개인 키
Figure pct00022
를 사용하고, 이 키는 Bob이 사용하는 특정한 선형 코드(linear code)를 지정하며 t로 표시된 특정한 수의 오류들을 정정(correct)할 수 있다. 메시지를 전송하기 위해, Alice는 이진 벡터(binary vector)
Figure pct00023
를 임의로 생성하고 이 벡터를
Figure pct00024
로 지정된 특정한 선형 코드에 따라 메시지의 인코딩에 추가하여 도면과 같이 암호화된 메시지들
Figure pct00025
Figure pct00026
을 형성한다. 벡터
Figure pct00027
의 추가(addition)는 Bob이 적절한 코드(proper code)에 대한 지식(knowledge)으로 정정할 수 있는 t개의 고의적인(deliberate) "오류들"을 도입(introduce)하지만, Eve가 정정하기는 컴퓨터적으로 어렵다.
Shor의 알고리즘을 사용하는 McEliece 암호시스템에 대한 알려진 공격들은 없다. 알려진 양자 공격들이 없는 것 외에도 암호화 알고리즘 및 암호해제 알고리즘이 RSA보다 빠르다. McEliece 암호시스템의 두 가지 주요 단점들은 다음과 같다: 1) 일반적인 응용 분야(application)들에서 공개 키의 크기는 RSA보다 훨씬 크다, 및 2) 원본 논문(original paper)에서 약
Figure pct00028
의 통신 레이트(communication rate)로 큰 통신 오버헤드(communication overhead)가 발생한다. 도 2의 예시적인 McEliece 암호시스템은 후속 개선(subsequent improvement)들을 통해 약 0.76까지 증가된 레이트를 지시하지만, 이 증가조차도 통신 레이트에 다소 큰 페널티(penalty)을 남긴다.
원래 McEliece 방식은 이진 Goppa 코드들을 사용했다. Goppa 코드의 파라미터를 변경하여 통신 레이트를 높이고 싶은 유혹을 받을 수 있다. 그러나 통신 레이트에 관한 문헌(literature)의 주요 결과는 고속 Goppa 코드(high rate Goppa code)의 행렬과 랜덤 행렬을 구별하기 위한 다항 시간 알고리즘을 제공했다. 따라서 고속 Goppa 코드의 보안은 보장되지 않을 수 있다. 또 다른 아이디어는 Goppa 코드 외에 더 높은 레이트들을 산출하는 코드들의 군(family)들을 살펴보는 것이다. 그러나 그러한 코드들에 대한 대부분의 후보들은 이미 암호학적으로 해독되었다.
컴퓨터 보안(computational security)의 발전과 병행하여 완전한 프라이버시(privacy)에 대한 또 다른 완화가 주로 정보 이론가들에 의해 문헌에서 고려되었다. 도청자의 컴퓨터 능력을 제한하는 대신, "물리적 계층 보안(physical layer security)"에서는 Eve가 암호화된 메시지에 대해 획득할 수 있는 정보의 양을 제한하여 소위 "약한 Eve(weak Eve)"로 이어진다. 이와 같은 패러다임에서, "강한 Eve"와 대비를 위해 도 3에 도시된 바와 같이, 약한 도청자
Figure pct00029
Figure pct00030
의 전체로부터 전송된 심볼(symbol)들 중 모든 세트
Figure pct00031
을 관찰할 수 있다고 가정할 수 있고, 여기서 w는 엄격하게 n보다 작다. 이 세트를
Figure pct00032
로 나타내면, 메시지에 대한 정보를 도청자에게 유출(leak)하지 않는 통신 레이트
Figure pct00033
의 암호화 코드들이 존재하는 것으로 나타났고, 즉
Figure pct00034
이다.
그러나 물리적 계층 보안을 사용하는 완전한 비밀성에는 상당한 대가가 따르고, 즉, 합법적인(legitimate) 통신의 레이트가 감소한다. 이것은 Wyner의 중요한 1975년 작업에서 나타났고, 여기서 그는 도 4에 묘사된 NC(non-constructive) 도청 채널(wiretap channel)을 도입했고, 이는 물리적 계층 보안 가정 하에서 기존의(classical) Alice, Bob 및 Eve 트리플의 아날로그(analog)이다.
레이트 측면에서 효율성을 높이기 위한 노력의 일환으로, Shannon의 완전한 비밀성에 대한 또 다른 완화, 즉 도 5와 같은 "개별 비밀성(individual secrecy)"이 도입되었다. 이 개념은 네트워크 설정(network setup)에서 가장 잘 설명되고, 여기서 Alice는 Bob에게 전송할 많은 메시지들(
Figure pct00035
)을 가지고 있고 약한 Eve는 그 중 임의의(any)
Figure pct00036
를 관찰할 수 있다. Wyner의 도청 채널이 부여한 한도(limit)들 이상으로 레이트를 높이는 것에 의해, 정보 유출이 불가피하다. 그러나 개별 비밀성은 개별 메시지에 대한 정보가 전혀 유출되지 않도록 보장한다. 따라서, 도 5에 도시된 바와 같이, Eve가 모든 경로들보다 적은 경로에서 모든 데이터를 가로챌 수 있다는 가정하에(예: 도 5의 단일 경로 2), Alice는 메시지
Figure pct00037
Figure pct00038
의 상이한 선형 조합(linear combination)들을 2개의 상이한 경로들에서 Bob에게 전송한다. Bob은 모든 메시지들을 수신하므로 이러한 선형 조합들을 반전하여 초기 메시지(initial message)들
Figure pct00039
Figure pct00040
을 복구할 수 있다. 도 5의 예에서, Bob은 경로 2 메시지로부터 경로 1 메시지를 빼서
Figure pct00041
를 복구하고, 경로 1 메시지로부터
Figure pct00042
을 빼서
Figure pct00043
을 복구하고; 일반적으로 이 프로세스는 행렬을 반전하는 것에 의해 달성된다. 그러나 Eve는 메시지들의 일부만 수신했기 때문에 메시지들의 조합을 풀 수 없다.
개별 비밀성의 개념은
Figure pct00044
을 모든
Figure pct00045
에 대해 보장하는 것에 의해 이 개념을 구체화한다. 상황(situation)은 메시지의 서브세트(subset), 즉
Figure pct00046
에 대해 완전한 비밀성을 제공하지만, Wyner 모델 또는 Shannon 모델에서와 같이 모든 메시지들에 대해서는 아니다. 즉, Eve가 관찰을 통해 획득한 정보는 개별 메시지를 해독(decipher)하는 데 도움이 되는 것이 아니고, 오히려 이것은 메시지들의 조합에 대한 정보이다. 개별 비밀성은 확실히 보안에 대한 약한 개념이지만, 도 5에 지시된 바와 같이 레이트 측면에서 암호화 프로세스를 자유롭게 만들면서 레이트를 크게 높일 수 있다. 효율적인 레이트가 유익하다는 것은 의심의 여지가 없지만, 물리적 계층 보안의 가정들, 즉 Eve가 Bob보다 더 나쁜 채널을 경험하지 않는다는 가정들은 실제로 시행하기 어렵다.
본 명세서에 개시된 개념들, 기술들 및 구조들의 실시예들은 높은 통신 레이트에서 보안 포스트-양자 암호 방식(secure post-quantum cryptography)을 획득하기 위해 새로운 하이브리드 범용 네트워크 코딩 암호시스템(Hybrid Universal Network-Coding Cryptosystem)(이하 "HUNCC")을 제공한다. 보안 네트워크 코딩 방식(secure network-coding scheme)은 공개-키 암호 방식, 특히 포스트-양자 암호 방식이 제공될 수 있는 정보 이론 보안(information-theory security)과 암호 보안(cryptographic security)을 조합한다는 점에서 하이브리드(hybrid)이다. 또한 이 방식은 일반적이며 모든(any) 통신 네트워크 및 모든 공개-키 암호시스템에 적용될 수 있다. 컴퓨터 관점(computational viewpoint)에서, 임의의(arbitrary) 보안 암호시스템(secure cryptosystem)을 링크들의 서브세트에 이용되고 개별 보안과 유사한 전처리(pre-processing)를 이용하는 코딩 방식을 구성한다. 이 방식에서, 우리는 1) 링크 전체를 관찰하는 적대자(adversary)에 대한 컴퓨터 보안 보장(security guarantee); 2) 링크들의 서브세트만을 관찰하는 적대자에 대한 정보-이론적 보안 보장; 및 3) 네트워크 용량에 접근하는 정보 레이트를 실현한다.
우리 방식의 한 가지 장점은 원하는 컴퓨터 보안 수준을 보장하기 위해 컴퓨터 포스트-양자 방식을 사용하여 단일 링크(single link) 또는 전송된 데이터의 작은 부분을 암호화하는 것으로 충분하다는 것이다. 즉, HUNCC를 사용하면, 네트워크의 모든 링크들에서 공개-키 암호화를 사용할 수 없는 네트워크들에서 포스트-양자 보안을 보장할 수 있다. 또한, 통신 링크들의 수가 증가함에 따라 정보 레이트는 1에 근접한다. 구체적인 예로, 3개의 링크들이 있는 다중경로 네트워크(multipath network)에서 하나의 링크에서만 128비트 컴퓨터적인 보안 McEliece 암호시스템을 사용하여 네트워크에서 총 정보 레이트가 0.91인 모든 경로들에서 128-비트 컴퓨터 보안 수준을 획득한다.
따라서, 제1 실시예는 복수의 데이터 블록(data block)들을 안전하게(securely) 통신(communicate)하는 방법이다. 이 방법은 제1 데이터 채널(data channel)을 사용하여, 복수의 데이터 블록들의 제1 인코딩(encoding)의 암호화(encryption)를 포함하는 제1 메시지를 수신하는 단계를 포함한다. 방법은 또한 제2 데이터 채널을 사용하여, 복수의 데이터 블록들의 암호화되지 않은(unencrypted) 제2 인코딩을 포함하는 제2 메시지를 수신하는 단계를 포함한다. 방법은 복수의 데이터 블록들의 암호화되지 않은 제1 인코딩을 획득하기 위해 제1 메시지의 암호화를 암호해제(decrypt)하는 단계를 더 포함한다. 그리고 방법은 복수의 데이터 블록들의 암호화되지 않은 제1 인코딩 및 암호화되지 않은 제2 인코딩을 사용하여, 복수의 메시지들에서 각각의 메시지를 복구(recover)하는 단계를 포함한다.
일부 실시예들에서, 제1 데이터 채널 및 제2 데이터 채널은, 상이한(different) 전송 매체(transmission media)를 포함한다.
일부 실시예들에서, 제1 데이터 채널 및 제2 데이터 채널은, 단일 전송 매체(single transmission medium)의 상이한 이용 시간(utilization time)들을 포함한다.
일부 실시예들에서, 암호화는, 공개-키 암호화(public-key encryption)를 포함한다.
일부 실시예들에서, 암호화는, 포스트-양자 암호화(post-quantum encryption)를 포함한다.
일부 실시예들에서, 복구하는 단계는, 선형 네트워크 코드(linear network code)에 따라 암호화되지 않은 제1 인코딩 및 암호화되지 않은 제2 인코딩을 디코딩(decoding)하는 단계를 포함한다.
일부 실시예들에서, 디코딩하는 단계는, 개별 보안 코드(individually secure code)에 따라 디코딩하는 단계를 포함한다.
일부 실시예들에서, 제1 메시지를 수신하는 단계 또는 제2 메시지를 수신하는 단계는, 하나 이상의 오류(error)를 정정(correct)하는 단계를 포함한다.
다른 실시예는 복수의 데이터 블록들을 안전하게 통신하기 위한 장치이다. 장치는 컴퓨팅 프로세서(computing processor); 및 컴퓨팅 프로세서에 의해 실행되는 경우에 다양한 프로세스들을 수행하는 컴퓨터 프로그램 코드를 저장하는 비휘발성 메모리를 포함한다. 이들 프로세스들 중 하나의 프로세스는 제1 데이터 채널을 사용하여, 복수의 데이터 블록들의 제1 인코딩의 암호화를 포함하는 제1 메시지를 수신하는 프로세스를 포함한다. 이들 프로세스들 중 다른 프로세스는 제2 데이터 채널을 사용하여, 복수의 데이터 블록들의 암호화되지 않은 제2 인코딩을 포함하는 제2 메시지를 수신하는 프로세스를 포함한다. 이들 프로세스들 중 또 다른 프로세스는 복수의 데이터 블록들의 암호화되지 않은 제1 인코딩을 획득하기 위해 제1 메시지의 암호화를 암호해제하는 프로세스를 포함한다. 또한 이들 프로세스들 중 또 다른 프로세스는 복수의 데이터 블록들의 암호화되지 않은 제1 인코딩 및 암호화되지 않은 제2 인코딩을 사용하여, 복수의 메시지들에서 각각의 메시지를 복구하는 프로세스를 포함한다.
일부 실시예들에서, 제1 데이터 채널 및 제2 데이터 채널은, 상이한(different) 전송 매체(transmission media)를 포함한다.
일부 실시예들에서, 제1 데이터 채널 및 제2 데이터 채널은, 단일 전송 매체(single transmission medium)의 상이한 이용 시간(utilization time)들을 포함한다.
일부 실시예들에서, 암호화는, 공개-키 암호화(public-key encryption) 를 포함한다.
일부 실시예들에서, 암호화는, 포스트-양자 암호화(post-quantum encryption)를 포함한다.
일부 실시예들에서, 복구하는 단계는, 선형 네트워크 코드(linear network code)에 따라 암호화되지 않은 제1 인코딩 및 암호화되지 않은 제2 인코딩을 디코딩(decoding)하는 단계를 포함한다.
일부 실시예들에서, 디코딩하는 단계는, 개별 보안 코드(individually secure code)에 따라 디코딩하는 단계를 포함한다.
일부 실시예들에서, 제1 메시지를 수신하는 단계 또는 제2 메시지를 수신하는 단계는, 하나 이상의 오류(error)를 정정(correct)하는 단계를 포함한다.
본 명세서에 개시된 개념들, 기술들 및 구조들은 본 명세서의 교시로부터 벗어나지 않고 다른 방식으로 당업자에 의해 구현될 수 있음이 이해된다.
개시된 주제를 만들고 사용하는 방식은 동일한 참조 번호들이 동일한 요소들을 식별하는 도면들과 관련된 상세한 설명을 참조함으로써 이해될 수 있다.
도 1은 모든 통신 데이터를 가로챌 수 있는 "강한(strong)" 도청자 Eve로부터 안전한(secure) Alice와 Bob 간의 다중경로 통신을 위한 일회성 패드를 사용하는 암호시스템을 도시한다.
도 2는 양자 컴퓨터에 액세스할 수 있는 강한 Eve에 대해 컴퓨터적으로 보안
Figure pct00047
-Goppa 코드를 사용하는 포스트 양자 McEliece 암호시스템을 도시한다.
도 3은 Alice와 Bob 간의 통신을 위한 최신 다중경로 네트워크(modern multipath network)를 도시하고, 도 3은 전달된 모든 데이터를 가로챌 수 있는 "강한" 도청자 Eve와 그 데이터의 일부만 가로챌 수 있는 "약한" Eve를 모두 도시한다.
도 4는 네트워크 코딩 도청을 가진 약한 Eve에 대해 정보적으로 안전한 Alice와 Bob 간의 통신을 위한 다중경로 네트워크를 도시한다.
도 5는 네트워크들에 대한 개별 보안의 원칙(principle)들을 사용하여 약한 Eve에 대해 정보적으로 안전한 Alice와 Bob 간의 통신을 위한 다중경로 네트워크를 도시한다.
도 6은 본 명세서에 개시된 개념들, 기술들 및 구조들의 실시예들에 따른 하이브리드 범용 네트워크 코딩 암호시스템(HUNCC)을 사용하는 Alice와 Bob 사이의 통신을 위한 다중경로 네트워크를 도시하고, 그것은 강한 Eve에 대해 컴퓨터적으로 안전하고 약한 Eve에 대해 정보적으로 안전하다.
도 7은 도 6의 다중경로 네트워크 방식, 보안, 포스트-양자, 하이브리드의 기능적 구성요소(functional component)들을 도시한다.
도 8은 HUNCC 실시예에 따른 데이터를 인코딩, 전송 및 디코딩하는 방법의 프로세스들을 도시한다.
도 9는 HUNCC 실시예에 따라 Alice에 의해 수행되는 인코딩 방식의 세부 사항들을 도시한다.
도 10은 각각의 암호화된 링크에 대해 약 0.5의 정보 레이트를 가지는 McEliece 코드를 사용하여 암호화된 링크들의 수의 펑션으로서 HUNCC 실시예에서 보안 수준과 통신 레이트 사이의 효율성 및 트레이드-오프를 도시한다.
도 11은 각각의 암호화된 링크에 대해 상이한 컴퓨터 보안 코드들을 사용하는 암호화된 링크들의 수의 펑션으로서 HUNCC 실시예에서 보안 수준과 통신 레이트 사이의 효율성 및 트레이드-오프를 도시한다.
도 12는 실시예에 따른 하이브리드, 포스트-양자, 보안, 단일 경로 통신 방식의 기능적 구성요소들을 도시한다.
도 13은 도청자가 Alice로부터 Bob으로 전송된 패킷들에 오류들을 삽입(inject)할 수 있는 실시예에 따른 근시안적 적대자 모델(myopic adversaries model)을 도시한다.
도 14는 실시예에 따른 비디오 스트리밍을 위한 초신뢰성(ultra-reliable), 저-지연(low-latency) 통신 시스템을 도시한다.
도 15는 본 명세서에 개시된 개념들, 구조들 및 기술들을 구현하기 위해 사용될 수 있는 컴퓨터의 관련 물리적 구성요소들을 개략적으로 도시한다.
도면들은 반드시 시스템의 모든 요소들을 포함하거나 축척에 맞춰진 것은 아니며, 대신 일반적으로 본 명세서에서 보호하고자 하는 개념들, 구조들 및 기술들을 설명하는 데 중점을 둔다.
본 명세서에 개시된 개념들, 기술들 및 구조들의 실시예들에 따르면, 하이브리드 범용 네트워크 코딩 암호시스템(HUNCC)은 높은 정보 레이트들로 포스트-양자 암호 방식을 획득한다. 이 보안 네트워크 코딩 방식에서, 우리는 컴퓨터 보안 원칙(computational security principle)들을 물리적 계층 보안 프리미티브(physical layer security primitive)들과 조합하여 개별 비밀성 및 컴퓨터 보안 암호시스템들에 모두 의존하는 하이브리드 시스템을 도입한다.
다중경로 보안 전송 방식(multi-path secure transmission scheme)을 통해 이 개념을 설명하고, 여기서 다수의 메시지는 병렬 링크들을 사용하여 Alice와 Bob 사이에 전송된다. 그렇게 함으로써, 물리적 계층 보안의 주요 단점들 중 하나, 즉 도청자가 Alice와 Bob 사이에 전송된 모든 메시지들을 관찰할 수 없다는 가정을 해결할 수 있다. 본 명세서에 개시된 시스템에서 Eve는 실제로 Alice와 Bob 사이의 전체 전송을 관찰할 수 있고, 즉 Eve는 강할 수 있다.
그러나 컴퓨터 보안 시스템들과 유사하게 Eve의 컴퓨터 능력을 가정할 것이다. 그러나 공개-키 암호 방식을 사용하여 Alice의 전체 메시지들을 암호화하는 대신, 통신 링크들의 일부만 암호화 하고, 일부 실시예들에서, 링크들 중 단지 하나만큼 적다. 컴퓨터 제한 가정 하에서, 암호화된 링크들은 Eve의 손실(loss)들과 유사하므로 이제 물리적 계층 보안 코드들의 기존 기술들을 사용할 수 있다. 즉, 컴퓨터 제한 가정 하에서 도청자가 암호 방식을 통해 메시지들의 일부만 관찰하도록 강제할 수 있다. 결과적으로, 개별 비밀성에서 수행되는 것과 유사한 통신 레이트의 증가를 허용하는 동시에 컴퓨터적으로 강한 보안 보장들을 제공한다. Alice와 Bob이 더 많은 통신 채널들을 가지고 있다면 통신 레이트는 더욱 커질 것이다. 실제로 채널들의 수가 증가함에 따라 레이트는 1에 근접한다.
많은 실용적인 이기종 네트워크에서, 공개-키가 있는 암호시스템이 모든 경로들에 적용될 수 있다고 가정하지 않을 수 있다. HUNCC 코딩 방식은 하나의 경로를 통해 전송되는 정보에 대해서만 공개-키를 사용하여 전체 네트워크에 걸쳐 포스트-양자 보안을 보장할 수 있다. 또한 HUNCC를 사용할 수 있는 중요한 응용 분야들에 대해 아래에서 논의된다. 특히, 다중경로 통신 외에도, 단일 경로 통신, 분산 기억 장치(distributed storage), 초신뢰성 저-지연 스트리밍 통신들 및 근시안적인 적대자들의 경우에 대해서도 논의한다.
경로가 두 개인 네트워크의 경우, 도 6에서 하이브리드 방식을 설명한다: Alice는
Figure pct00048
인 통신 링크들을 통해 개인 메시지
Figure pct00049
를 Bob에게 보내려고 한다. 도청자인 Eve는 그녀의 강한 정도에 따라 이러한 채널들 중 하나 또는 둘 다에서 통신을 관찰할 수 있다. 도 6의 예제 네트워크에서, 우리는 Eve가 강하고 두 채널들을 모두 관찰할 수 있다고 가정한다.
Alice와 Bob은 공개 키 암호화 방식
Figure pct00050
에 동의한다. Alice는 먼저 생성기 행렬(generator matrix)(예:
Figure pct00051
)이 있는 개별 보안 코드를 사용하여 메시지
Figure pct00052
를 인코딩한다. 이 인코딩을
Figure pct00053
로 표시한다. 그런 다음 Alice는 제1 메시지를
Figure pct00054
로 암호화하고, 채널 1을 통해 Bob에게 전송하고, 채널 2를 통해 암호화되지 않은
Figure pct00055
을 전송한다. 그런 다음 Bob은
Figure pct00056
을 암호해제하여
Figure pct00057
모두를 검색(retrieve)하고 생성기 행렬의 역행렬을 곱하는 것에 의해 원본 메시지
Figure pct00058
를 디코딩하고 검색한다.
Eve가 하나의 통신 채널만 관찰하는 약한 도청자인 경우, 이 방식은 정보-이론적으로 그녀의 컴퓨터 능력에 관계없이 개별적으로 정보를 보호한다. 이는 메시지의 각각의 조각
Figure pct00059
이 단일 인코딩된
Figure pct00060
와 독립적이기 때문에 발생한다. Eve가 두 통신 채널들을 모두 관찰하는 강한 도청자인 경우, 각각의 메시지
Figure pct00061
는 암호화 방식
Figure pct00062
와 거의 동일한 보안 수준으로 컴퓨터적으로 안전하다. 아래에 재현된 Cohen, Alejandro 외의 정리 1, "Network Coding-Based Post-Quantum Cryptography", Sept. 3, 2020, https://arxiv.org/abs/2009.01931 (이하에서 "Cohen 외")에서
Figure pct00063
에 대한 가장 잘 알려진 공격이 그것을 해독하기 위해
Figure pct00064
동작들을 필요로 하는 경우, Eve는 메시지
Figure pct00065
를 결정하기 위해 적어도
Figure pct00066
동작들을 필요하다는 것을 보여주었고, 여기서
Figure pct00067
Figure pct00068
선형 시스템을 해결하기 위해 필요한 동작들의 양이다.
개별 보안 코드
Figure pct00069
이 작동하려면,
Figure pct00070
Figure pct00071
보다 큰 특성을 가져야 한다. 또한 개별 보안 코드의 이미지는 암호화 펑션
Figure pct00072
의 도메인(domain)에 삽입적으로(injectively) 매핑되어야 한다. 우리는 다음 예를 고려한다.
Alice와 Bob이 암호화된 링크에 대해
Figure pct00073
-비트 McEliece 암호시스템을 사용하는 데 동의한다고 가정한다. 최신 컴퓨터 보안 가정들에 대해 보안을 유지하기 위해, Bob은
Figure pct00074
비트의 공개 키로
Figure pct00075
-Goppa 코드를 선택할 수 있다. 이 경우, 암호화 펑션의 도메인은
Figure pct00076
이다. Alice와 Bob은
Figure pct00077
보다 큰 특성을 가지는
Figure pct00078
에 의해 주어진 코드
Figure pct00079
의 이미지로부터
Figure pct00080
로의 삽입 매핑(injective mapping)에 동의해야 한다. 이 경우, 그들은
Figure pct00081
비트가 되도록
Figure pct00082
를 설정할 수 있다. 따라서, Alice는
Figure pct00083
Figure pct00084
비트 벡터로 매핑하고 Goppa 코드를 사용하여
Figure pct00085
으로 인코딩할 수 있다. 그런 다음 Alice는 링크 1을 통해
Figure pct00086
비트를 전송하고 링크 2를 통해
Figure pct00087
비트를 전송한다. 따라서, 총 통신 비용은 도 6에 지시된 것처럼
Figure pct00088
보다 약간 더 큰 통신 레이트를 제공하는 약 5248 비트이다. Cohen 외의 정리 1에 의해, 메시지들
Figure pct00089
Figure pct00090
은 모두
Figure pct00091
-비트 보안이다. 아래에서, Alice와 Bob이 Shor의 알고리즘에 취약(vulnerable)하지만 일반적으로 사용되며 정보 레이트에 대한 페널티가 낮은 RSA 방식을 사용하는 것에 동의하는 예를 살펴본다.
참조 구현(reference implementation)의 세부 사항들을 살펴보기 전에, 우리 방식의 2개의 주요 빌딩 블록(main building block)들에 대한 배경 정보(background information)를 제공한다: 1) 컴퓨터 보안 암호시스템들 및 2) 정보-이론적 개별 보안. 우리는 McEliece 암호시스템에 초점을 맞추고 있지만 모든(any) 컴퓨터적으로 보안 암호시스템이 사용될 수 있다.
정의 1 공개-키 암호화는 튜플
Figure pct00092
이고, 여기서:
*
Figure pct00093
은 암호화 펑션이고,
Figure pct00094
는 암호해제 펑션이고,
Figure pct00095
Figure pct00096
는 각각 공개 키 및 개인 키를 나타내고, 및
* 모든 메시지
Figure pct00097
에 대해, 공개 키는
Figure pct00098
이고, 대응하는 비밀 키는
Figure pct00099
,
Figure pct00100
이다.
공개-키 암호화
Figure pct00101
Figure pct00102
Figure pct00103
의 지식만으로
Figure pct00104
을 복구하는 가장 잘 알려진 알고리즘이 적어도
Figure pct00105
개의 동작들을 수행해야 하는 경우 보안 수준
Figure pct00106
을 갖는다. 마지막으로
Figure pct00107
Figure pct00108
인 경우에 레이트
Figure pct00109
을 갖는다.
McEliece 포스트-양자 공개-키 암호시스템은 다음과 같이 작동한다. Bob은 공개 키
Figure pct00110
를 생성하고, 여기서
Figure pct00111
이다. Alice와 Eve 모두 액세스할 수 있다. 개인 키는
Figure pct00112
으로 구성되고, 여기서
Figure pct00113
Figure pct00114
에 대한 효율적인 디코딩 알고리즘이다. 메시지
Figure pct00115
를 암호화하기 위해, Alice는 가중치(weight)
Figure pct00116
의 벡터
Figure pct00117
를 랜덤으로 선택하고 이를
Figure pct00118
로 암호화한다. 메시지를 암호해제하기 위해, Bob은 먼저
Figure pct00119
을 계산한 다음 디코딩 알고리즘
Figure pct00120
을 적용한다.
Figure pct00121
는 해밍 거리(hamming distance)
Figure pct00122
을 가지므로
Figure pct00123
를 따른다. 그렇다면,
Figure pct00124
Figure pct00125
이 모두 가역적(invertible)이므로 Bob은
Figure pct00126
을 복구한다.
컴퓨터 보안과 달리, 개별 보안은 Eve가 약한 도청자
Figure pct00127
이고, 즉
Figure pct00128
통신 경로들에만 액세스할 수 있다는 가정하에 동작한다. 개인 정보 보호 보장은 Bob이 각각 길이
Figure pct00129
비트의 네트워크를 통해 전송된 모든
Figure pct00130
메시지들을 완전히 디코딩할 수 있는 반면 Eve는 각각의 개별 메시지에 대해 무지하다는 것이다. 따라서,
Figure pct00131
.
다음으로 임의의 선형 코드(arbitrary linear code)에서 개별 보안 코드를 구성하는 방법을 설명한다. 따라서,
Figure pct00132
를, 길이
Figure pct00133
및 크기(dimension)
Figure pct00134
Figure pct00135
를 가지는
Figure pct00136
에 대한 선형 코드라고 하고,
Figure pct00137
을 설정한다.
Figure pct00138
Figure pct00139
에 대한 생성기 행렬이고
Figure pct00140
Figure pct00141
의 널 공간(null space)에 대한 생성기라고 한다.
Figure pct00142
Figure pct00143
를 각각 코드
Figure pct00144
에 대한 패리티 검사 행렬(parity check matrix) 및 기본 행렬(basis matrix)이라 한다(즉,
Figure pct00145
Figure pct00146
Figure pct00147
이도록). 그러면
Figure pct00148
에 의해 개별 보안 코드가 생성된다. 본 명세서에 개시된 개념들, 기술들 및 구조들의 실시예들에서 다른 개별 보안 코드가 사용될 수 있다는 것이 인식된다.
공개-키 암호시스템들, 특히 McEliece 암호시스템과 달리 물리적-계층 보안 방식들에서 생성 행렬(generation matrix)과 코드가 공개된다는 점에 유의하는 것이 중요하다. 따라서 Bob과 Eve 모두 위에서 설명한 모든 행렬들에 액세스할 수 있다고 가정할 수 있다.
개별 보안 코드는 다음과 같이 사용될 수 있다. Alice는 메시지
Figure pct00149
Figure pct00150
로 인코딩한다. 따라서
Figure pct00151
은 개별 보안 코드에 따른
Figure pct00152
의 선형 네트워크 코딩이다. 메시지를 디코딩하기 위해, Bob은 패리티 검사 행렬
Figure pct00153
과 기본 행렬
Figure pct00154
을 사용하여
Figure pct00155
Figure pct00156
를 계산한다. Eve는 암호화된 벡터
Figure pct00157
로부터
Figure pct00158
의 심볼들만 관찰하기 때문에, 그녀는 디코딩할 수 없으며 네트워크를 통해 전송된 정보의 모든 세트
Figure pct00159
의 심볼들에 대해 완전히 무지하다.
다음으로 나머지 개시에서 사용되는 보안 개념들과 위협 모델(threat model)들을 정의한다. 전반적으로, 우리는 암호문 전용 공격 모델(ciphertext-only attack model)을 가정하고, 즉, 적대자 Eve는
Figure pct00160
또는
Figure pct00161
에만 액세스할 수 있다. 먼저 컴퓨터 보안(computational security)의 개념을 정의한다.
정의 2 메시지
Figure pct00162
와 암호문(ciphertext)
Figure pct00163
이 있는 암호시스템은 가장 잘 알려진 알고리즘이 예상되는(in expectation)
Figure pct00164
의 관찰(observation)에서부터 단독으로
Figure pct00165
를 디코딩하기 위해 적어도
Figure pct00166
개의 동작들을 수행해야 하는 경우 보안 수준
Figure pct00167
을 갖는다.
이 보안 수준 정의는 인코딩된 메시지
Figure pct00168
의 크기와 분산(distribution)에 대한 제한을 암시적으로(implicitly) 부과한다는 점에 유의해야 한다. 실제로 공개-키 암호시스템을 가정하면 적대자는 올바른 메시지를 찾을 때까지 잠재적인 메시지 입력(potential message input)들을 추측하는 것에 의해 항상 무차별 대입 공격(brute-force attack) 사용할 수 있다. 일반적으로, 메시지
Figure pct00169
는 세트
Figure pct00170
에서 균일하게 임의의 값을 취한다고 가정하므로
Figure pct00171
를 따른다. 실제로, 대부분의 암호시스템에서는
Figure pct00172
Figure pct00173
보다 엄격하게 커야 한다. 이 개시 전반에 걸쳐, 우리는 이 관계를 암묵적으로 남겨두고 보안 수준
Figure pct00174
에 집중하여 이 보안 수준에 따라 적절한
Figure pct00175
을 선택한다.
정의 2의 계산 보안 수준(computation security level)은 단일 링크 또는 동등하게 단일 메시지의 경우에 관련된다. 각각의 링크에서 여러 메시지들이 전송되는 경우, 각각의 메시지에 개별적으로 적용되는 보안 보장을 제공하는 것이 바람직하다. 약한 Eve에 대해, 이것은 정보-이론적 개별 비밀성을 통해 획득될 수 있다.
정의 3 메시지들
Figure pct00176
이 있는 암호시스템은
Figure pct00177
이고, -
Figure pct00178
,
Figure pct00179
와 함께 모든
Figure pct00180
에 대해 개별적으로 안전하고, 여기서
Figure pct00181
이다.
전송된 메시지들의 전체를 관찰할 수 있는 강한 Eve에게는
Figure pct00182
-개별 보안을 획득할 수 없다. 대신에, 우리는 경로들 중 임의의 것에 있는 메시지를 디코딩하려면
Figure pct00183
동작들이 필요하다는 개별 컴퓨터 보안의 개념을 설명한다.
정의 4 (개별 컴퓨터 비밀성)
Figure pct00184
에 대한 위한 메시지들
Figure pct00185
과 암호문들
Figure pct00186
이 있는 암호시스템은, 가장 잘 알려진 알고리즘이 예상대로 관찰(observation)들
Figure pct00187
에서 임의의
Figure pct00188
,
Figure pct00189
을 디코딩하기 위해 적어도
Figure pct00190
동작들을 수행해야 하는 경우 보안 수준
Figure pct00191
을 갖는다.
개별 컴퓨터 비밀성은
Figure pct00192
Figure pct00193
을 가지는 암호시스템의 컴퓨터 보안을 의미한다. 따라서 엄격하게 더 강한 보안의 개념이다.
이제 도 7을 참조하면,
Figure pct00194
무소음 독립 통신 링크(noiseless independent communication link)들(122)을 통해 목적지 노드(destination node) Bob(130)에 연결된 소스 노드(source node) Alice(110)로 구성된 네트워크(100)의 실시예의 시스템 개요를 고려한다. 목표는 Alice(110)가 도청자 Eve(120)가 있을 때 각각 길이
Figure pct00195
비트의
Figure pct00196
개의 메시지들
Figure pct00197
을 Bob(130)에게 개인적으로 전송하는 것이다. 우리는 Eve(120)가 양자 컴퓨터에 액세스할 수 있다고 가정한다. 다음에서, 통신 링크들(122)은 각각 상이한 전송 매체(예를 들어, 도 3에 몇몇이 도시됨)일 수 있고, 때때로 본 명세서에서 "데이터 채널들" 또는 "경로들"로 지칭된다. 그러나, 본 명세서에서의 개념들, 기술들 및 구조들의 실시예들은 도 12와 관련하여 아래에서 논의되는 바와 같이 단일 경로 내에 존재하는(즉, 단일 전송 매체의 상이한 이용 시간(utilization time)들로서) 다수의 데이터 채널들과 함께 사용될 수 있다는 것이 인식된다.
우리는
Figure pct00198
에 의해 Alice(110)가 각각의 통신 링크(122)를 통해 Bob에게 전송하는 메시지들의 벡터를 표시한다. 이들 메시지들은 Bob(130)이 이들로부터
Figure pct00199
을 디코딩할 수 있는 것이어야 한다. 따라서, 우리는
Figure pct00200
인 경우에
Figure pct00201
이 신뢰할 수 있다고 말한다. 그러나 메시지들
Figure pct00202
은 Eve(120)가
Figure pct00203
을 스스로 디코딩하지 않으려면 특정한 특성들을 충족해야 한다. 이것은 Eve(120)이 얼마나 강한지에 달려 있다.
두 가지 유형들의 Eve(120)을 고려한다. 강한 Eve(120),
Figure pct00204
Figure pct00205
의 전체에 액세스할 수 있는 모든 통신 링크들을 관찰한다. 그리고 약한 Eve(120),
Figure pct00206
는 통신 링크들(122)의 서브세트만을 관찰한다. 각각의 관찰들을
Figure pct00207
Figure pct00208
로 표시한다. 우리는 신뢰성(reliability) 때문에 강한 Eve(120)에 대해 정보-이론적 프라이버시를 획득할 수 없다는 점에 유의한다.
높은 수준에서, 암호시스템은 다음과 같이 작동한다. Alice(110)와 Bob(130)은 정의 1에서와 같이 공개-키 암호시스템
Figure pct00209
에 동의하고 공개-키
Figure pct00210
는 Eve(120)가 액세스할 수 있는 공개 디렉토리(public directory)(124)에 저장된다. 그런 다음 Alice(110)는
Figure pct00211
개의 링크들(122) 중
Figure pct00212
을 암호화된 링크들로 선택한다. 도 7에서, 단일 메시지
Figure pct00213
만이 암호화 프로세서(114)를 통해 암호화된 것으로 도시되어 있으므로
Figure pct00214
이지만, 임의의 수의 링크들이 암호화를 위해 선택될 수 있다는 것이 인식된다. 암호화를 경험하지 않는
Figure pct00215
개의 링크들이 보안되지 않기 때문에 이것만으로는 완전한 보안을 제공하지 않는다. 이 문제를 해결하기 위해, 개별적으로 보안 선형 코드, 특히 선형 네트워크 코드를 사용하여 행렬 곱셈기(matrix multiplier)(112)에 의해 메시지가 혼합(인코딩)되는 암호화(114) 전에 추가 단계(extra step)를 도입한다. 이렇게 함으로써, 우리는 Cohen 외의 정리 1에서 각각의 메시지가 이제 컴퓨터적으로 안전하다는 것을 보여주었다. 방식의 보안 성능(security performance) 및 총 통신 레이트는 공개-키 암호시스템의 파라미터들 및
Figure pct00216
의 선택에 따라 달라진다. Bob(130)은
Figure pct00217
통신 링크들(122)로부터 를 수신하고, 암호해제 프로세서(132)를 사용하여 제1
Figure pct00218
암호화된 메시지들을 암호해제하고, 그런 다음 행렬 곱셈기(134)를 사용하여 제1
Figure pct00219
메시지를 디코딩하고, 전체 초기 메시지(full initial message) 를 복구하기 위해 믹싱 프로세스(mixing process)(112)의 반전(inverse)을 통해 행렬 곱셈기(136)를 사용하여 마지막
Figure pct00220
메시지들을 디코딩한다.
이제 도 7에 도시된 시스템과 도 8에 도시된 전체 알고리즘 1 및 도 9에 도시된 대로 Alice(110)에 의해 수행된 인코딩 프로세스를 다시 참조하여 HUNCC에 대해 더 자세히 설명한다.
Figure pct00221
을 정의 1에 설명된 보안 수준
Figure pct00222
의 공개-키 암호시스템이라고 한다. 평소와 같이, 공개 키
Figure pct00223
는 Bob(130)에 의해 생성되고 일부 공개 통신 채널(예: 공개 디렉토리(124))을 통해 Alice(110)에 제공된다. Alice(110)는 암호화될 경로들(122)의 수
Figure pct00224
를 선택한다. 일반성을 잃지 않고,
Figure pct00225
에 의해 인덱싱된 경로들을 암호화된 경로들로 한다.
Figure pct00226
을 고정하고 메시지들
Figure pct00227
을 가지는 복수의 데이터 블록들을 고려하면, 여기서
Figure pct00228
를 가지는 각각의
Figure pct00229
은 독립적으로 균일하게 랜덤으로 생성된다.
Figure pct00230
Figure pct00231
-개별 보안 선형 코드라고 하고, 여기서
Figure pct00232
이다. 코드의 널 공간에 대한 생성기 행렬
Figure pct00233
을 선택한다.
Figure pct00234
Figure pct00235
이래로 그러한 코드가 존재한다는 것에 유의한다. 개별 비밀성 인코딩 행렬은 위에서 설명한 바와 같이
Figure pct00236
에 의해 주어진다. 따라서, 벡터
Figure pct00237
, 여기서
Figure pct00238
Figure pct00239
Figure pct00240
-개별 비밀성 인코딩에 대응한다(참조: 도 7의 행렬 곱셈기(112), 도 8의 라인 1-5, 및 도 9의 왼쪽).
이제 모든 경로
Figure pct00241
에 대해, 심볼들
Figure pct00242
의 컬렉션(collection)을 고려한다.
Figure pct00243
Figure pct00244
이래로, 컬렉션
Figure pct00245
은 길이가
Figure pct00246
인 일련의 비트들
Figure pct00247
에 삽입적으로 매핑될 수 있다. 이러한 각각의
Figure pct00248
은 전송되기 전에 (예를 들어, 암호화 프로세서(114)를 사용하여) 공개-키 암호화를 통해 암호화되고, 즉, 각각의 링크
Figure pct00249
Figure pct00250
를 전송한다.
Figure pct00251
의 길이는
Figure pct00252
이다. 경로들
Figure pct00253
을 위해, Alice(110)는 암호화되지 않은 컬렉션(collection)
Figure pct00254
을 Bob(130)에게 직접 전송한다. 일관성을 위해, 경로 상에서 전송된 데이터가 비트 시퀀스
Figure pct00255
이고 이 시간 길이
Figure pct00256
라고 가정한다(도 8의 라인 6-16 및 도 9의 오른쪽 참조).
이제 Bob(130)에서의 디코딩 프로세스를 자세히 설명한다. 모든 경로들에 오류가 없다고 가정한다. 따라서, Bob(130)은 통신 링크들(122)을 통해 전송된 모든 메시지들을 획득한다. 각각의
Figure pct00257
개의 암호화된 데이터 채널들에 대해, Bob(130)은 데이터 블록들의 암호화되지 않은 제1 인코딩의 암호화를 포함하는 메시지를 수신하고, 개인 키
Figure pct00258
를 사용하여 메시지를 디코딩한다(도 7의 암호해제 프로세서(132) 및 도 8의 라인 17-20 참조).
따라서 Bob(130)은 모든
Figure pct00259
에 대해
Figure pct00260
를 획득한다. 나머지
Figure pct00261
데이터 채널들을 통해 획득된 메시지들은 원본 데이터 블록들의 암호화되지 않은 인코딩들이었다. 따라서, 제1
Figure pct00262
경로들로부터 암호해제된 메시지들과 함께 Bob(130)은
Figure pct00263
의 전체를 갖는다. 이제 추정된 인코딩된 블록의 각각의
Figure pct00264
번째 칼럼(column)에 대해, Bob(130)은 패리티 검사
Figure pct00265
및 기본 행렬
Figure pct00266
을 사용하여 전송된 복수의 원본 메시지(original message)들(도 6의 행렬 곱셈기들(134, 136) 및 도 8의 라인 21-25 참조), 즉
Figure pct00267
Figure pct00268
에서 각각의 메시지를 복구한다.
위에서 설명한 HUNCC 시스템 및 방법을 사용하는 몇 가지 이점들이 이제 설명된다. HUNCC는 통신 링크들의 전체를 관찰하는 강한 Eve를 처리하는 데 적합하다. 컴퓨터적으로 안전한 것 외에도, Eve가 약한 도청자이고 경로들 중
Figure pct00269
개 이상을 관찰하지 않는 경우, HUNCC는 정보 이론적으로 안전하다. 그리고 정보 레이트(information rate) R은 수렴 레이트(convergence rate)(
Figure pct00270
)와 함께 1에 접근한다. 이러한 관찰들은 Cohen 외에서 증명한 다음 세 가지 정리들로부터 비롯된다.
정리 1.
Figure pct00271
,
Figure pct00272
, 및
Figure pct00273
을 보안 수준이
Figure pct00274
인 공개-키 암호시스템이라고 한다. 그런 다음, 입력
Figure pct00275
이 있는 도 8의 알고리즘은 적어도 수준
Figure pct00276
에서 개별적으로 컴퓨터적으로 안전하고, 여기서
Figure pct00277
은 방정식들, 즉
Figure pct00278
Figure pct00279
선형 시스템을 해결하기 위해 필요한 동작들의 수이다.
정리 2. 도 8의 알고리즘은
Figure pct00280
-개별적으로 안전하다.
정리 3.
Figure pct00281
을 공개-키 암호시스템
Figure pct00282
을 사용하는 암호화된 경로들의 수라고 한다. 그러면 도 8의 알고리즘은 정보 레이트를 갖는다.
Figure pct00283
.
HUNCC에 대한 몇 가지 중요한 리마크(remark)들이 필요하다. 먼저, HUNCC의
Figure pct00284
개의 암호화된 경로들에 사용되는 공개 키는 기본(underlying) 암호시스템의 기존 공개 키(traditional public key)(예: McEliece 암호시스템에서 제공되는 것)일 뿐이라는 것에 유의한다. 따라서, 이 공개 키는 다중경로 네트워크를 통해 전송되는
Figure pct00285
-메시지들과 독립적이며 공개 채널을 통해 미리 Alice에게 제공될 수 있다.
또한, 원-타임 패드의 경우와 같이 전송된 메시지마다 고유한 비밀 키(unique secret key)가 이용되는 정보-이론적 보안과 달리, HUNCC의 공개 키는 다수의 메시지들에 사용될 수 있다. 같은 방식으로, 개별 보안 코드의 생성 행렬
Figure pct00286
은 기밀(confidential)이 아니다. Alice와 Bob은 공개 채널을 통해 이에 동의할 수 있고, 즉, 이 행렬이 Eve에게 공개될 수 있다. 또한 이 행렬은 향후 전송들에 대해 무기한으로 사용될 수 있다.
또 다른 요점은 HUNCC의 보안 수준과 관련이 있다. 정리 1에 명시된 바와 같이, 기본 공개-키 암호시스템의 보안 수준이
Figure pct00287
인 경우, HUNCC는 보안 수준이 적어도
Figure pct00288
인 개별 컴퓨터 보안이고 여기서
Figure pct00289
이다. 이 값은
Figure pct00290
에 매우 가깝다는 것에 유의해야 한다. 실제로, 만약
Figure pct00291
이고 관련 선형 시스템(relevant linear system)들을 해결하기 위해 가우시안 소거법(Gaussian elimination)이 사용된다면, HUNCC는 보안 수준을 1비트라도 감소시키기 위해
Figure pct00292
이 필요하다.
마지막으로, 우리의 주요 초점은 포스트-양자 암호시스템에 있지만, HUNCC는 대칭-키 암호시스템(symmetric-key cryptosystem)과 조합된 것을 포함하여 모든 공개-키 암호시스템과 함께 사용될 수 있다.
도 10과 11은 HUNCC의 성능을 보여준다. 세 가지 조치(measure)들이 지시된다: 정보 레이트, 개별 컴퓨터 비밀성 및 정보-이론적 개별 비밀성. 특히, 도 7-9에서
Figure pct00293
로 표시된 암호화된 링크들의 수가 다양하기 때문에, 이러한 수량들 간의 트레이드-오프를 볼 수 있다.
통신 레이트를 고려하는 것에 의해 시작하고, 위의 정리 3을 참조한다. 암호화된 링크들
Figure pct00294
의 수를 감소시키면 레이트가 증가한다. 반면에, 컴퓨터 보안 수준은 적어도 하나의 경로가 암호화되는 한 사실상 일정하게 유지된다(즉,
Figure pct00295
). 따라서, 본 명세서에 개시된 개념들, 기술들 및 구조들을 구현하는 실용적 시스템(practical system)들은 단일 암호화된 경로, 링크 또는 데이터 채널만을 사용하거나 이들을 통해 전송되는 데이터의 일부에만 적용될 수 있다.
약한 Eve의 경우, 개별 보안 수준은 약한 Eve는 정보를 얻지 못하는 링크들의 수,
Figure pct00296
에 따라 선형적으로 증가한다. 즉, 컴퓨터 비트 수준 보안이 일정하게 유지되는 동안 링크들의 서브세트를 관찰하는 적대자의 불확실성(uncertainty)이 증가한다.
따라서 도 10에서는
Figure pct00297
-Goppa 코드를 사용하는 원래 McEliece 암호시스템을 사용하는 HUNCC에 대해 각 성능 파라미터(performance parameter) 대(versus) 암호화된 링크들의 수
Figure pct00298
를 예시한다. 각각의 암호화된 경로에 대한 정보 레이트는
Figure pct00299
Figure pct00300
이다. 설명을 위해, 정규화된(normalized) 보안의 조치(measure of security)들, 즉 다음을 고려한다: 1) 정규화된 컴퓨터 보안 수준
Figure pct00301
은 보안 수준을 모든 링크들에서 암호시스템을 사용하는 것에 의해 획득될 수 있는 최대 컴퓨터 보안으로 나눈 것이고; 2) 정규화된 개별 보안 수준
Figure pct00302
은 약한 Eve가 볼 수 있는 링크들의 수를 네트워크의 전체 링크들로 나눈 분수(fraction)이다.
도 10에 주어진 예에서, 결과는 동일한 공개 키를 가지는 동일한 McEliece 암호시스템 코드가 모든
Figure pct00303
개의 암호화된 링크들에서 사용되는 경우에 대한 것이다. 따라서 정규화된 컴퓨터 보안 수준은
Figure pct00304
인 경우 0이고,
Figure pct00305
인 경우 1이다. 정리 1을 통해 임의의
Figure pct00306
에 대한 컴퓨터 보안 수준은
Figure pct00307
로 제한되며 여기서
Figure pct00308
이다. 이 차이(difference)는 무시할 수 있으며 본질적으로(essentially) 일정하게 유지되고
Figure pct00309
에 대해 1과 동일한 플롯(plot)에 나타나지 않는다.
본 명세서에 개시된 실시예들은 원래의 McEliece 암호시스템에 제한되지 않는다. 임의의(any) 암호시스템이 이용될 수 있다. 이를 설명하기 위해, 도 11에는 개시된 실시예들의 효율성 및
Figure pct00310
Figure pct00311
인 통신 링크들에 대한 다른 코드들 및 시스템들에 대한 결과적인 트레이드-오프들이 도시되어 있다. 먼저,
Figure pct00312
-비트 컴퓨터 보안을 달성하는 원본 파라미터들, 즉
Figure pct00313
-Goppa 코드를 가지는 McEliece 암호시스템을 보여준다. 다음으로,
Figure pct00314
-비트 컴퓨터 보안을 위한
Figure pct00315
-Goppa 코드 및
Figure pct00316
-비트 컴퓨터 보안을 달성하는
Figure pct00317
-Goppa 코드를 가지는 McEliece 암호시스템을 보여준다. 둘 다 정보 레이트가
Figure pct00318
이다. 또한 QC-LDPC 코드들을 채택한 McEliece 암호시스템을 보여준다. 이 코드들의 군의 경우, 다음 파라미터들이 제안된다:
Figure pct00319
Figure pct00320
, 즉 레이트가
Figure pct00321
인 코드. 이 코드는
Figure pct00322
-비트 컴퓨터 보안을 달성한다 . 다음으로, 우리는 Niederreiter가 제안한
Figure pct00323
의 레이트의 Reed-Solomon 코드를 보여준다(문헌에서 일반화된(generalized) Reed-Solomon 코드들이 해독되었다는 것에 유의함). 원래 McEliece 구성(original McEliece construction)에 의해 사용된 것과 동일한 Goppa 코드를 사용하고 동일한 보안 수준을 가지는 Niederreiter-유형 시스템은, McEliece 암호시스템의 최첨단 공격 하에서 테스트되었으므로,
Figure pct00324
-비트 컴퓨터 보안을 달성하는 것으로 가정한다.
이 비교에서, 도 11에 제시된 바와 같이, 획득된 최대 컴퓨터 보안 수준은
Figure pct00325
-Goppa 코드와 함께 McEliece 암호시스템을 사용하는
Figure pct00326
-비트이다. 따라서, 각각의 가능한 코드에 대해 도 11의 왼쪽에 제시된 결과는
Figure pct00327
으로 정규화된다. 컴퓨터 보안 수준은 암호시스템을 선택할 때 고려되는 주요 파라미터(main parameter)들 중 하나이지만 다른 하나는 공개-키의 크기이다. 또한 HUNCC의 컴퓨터 보안 수준은 위에서 설명한 이유로 암호시스템을 사용하는 링크들의 수가 증가하거나 네트워크의 총 경로들의 수를 변경하더라도 본질적으로 일정하게 유지된다.
다음으로 개시된 HUNCC 방식의 유용성과 성능을 예시하는 기능 및 응용 분야들에 대해 논의한다. 이러한 응용 분야에는 단일 경로 통신(도 12), 근시안적 적대자(도 13), 분산 기억 장치 및 기타 클라우드 응용 분야, 안정적인 저-지연 통신(도 14), 포스트-양자 또는 기타 암호시스템이 아닌 RSA 암호시스템 사용이 포함된다.
도 7에 도시된 네트워크는 다중경로 통신을 사용하지만 본 명세서에서 개시하는 보안 코딩 방식은 모든 통신 네트워크에 적용할 수 있다는 점에서 보편적이다. 예를 들어 기존의 점대점 단일 경로 통신(point-to-point single-path communication)과 이기종 메시 네트워크(heterogeneous mesh network)들에서 사용될 수 있다. 도 12는 개시된 보안 방식이 기존의 점대점 단일 경로 통신에서 어떻게 적용될 수 있는지를 묘사한다. 이 설정(200)에는 위에 제시된 네트워크(100)와 유사하게 하나의 소스 Alice(210), 하나의 합법적인 목적지 Bob(230) 및 도청자 Eve(220)가 있다. 주요 차이점은 설정(200)에서 Alice(210)와 Bob(230) 사이에 정보를 전송하는 경로(222)가 하나만 있다는 것이다. Alice(210)는 단일 경로(222)를 통해 유한 필드(finite field)
Figure pct00328
를 통해
Figure pct00329
개의 심볼들의 메시지
Figure pct00330
를 안전하게 전송하기를 원한다. 이를 위해 Alice(210)와 Bob(230)은 본질적으로 병렬 가상 링크(parallel virtual link)들을 시뮬레이트(simulate)하는 것에 의해(예를 들어, 시분할 다중화(time division multiplexing) 또는 당업계에 알려진 다른 기술에 의해) 전술한 바와 같이 여전히 HUNCC를 이용할 수 있다. 보다 정확하게는 제1 스테이지(stage)에서 Alice(210)는 선형 개별 보안 코드
Figure pct00331
를 사용하여 행렬 곱셈기(212)를 통해
Figure pct00332
개의 심볼들을 인코딩할 것이다. 그런 다음, Alice(210)는 공개 디렉토리(224)에서 Bob이 제공한 공개 키를 사용하여 채널(222)을 통한 전송 전에 심볼들의
Figure pct00333
을 암호화한다. 나머지 프로세스는 위와 같다. 따라서, 우리는 다중경로 네트워크의 경우와 동일한 통신 레이트와 보안 수준을 획득하지만 단일 경로 또는 링크만 사용한다.
문헌에서 고려된 또 다른 중요한 시나리오는 Eve가 네트워크를 통해 전송된 정보를 도청할 수 있을 뿐만 아니라 암호화된 패킷(encrypted packet)들을 손상(corrupt)시킬 수 있는 것이다. 이 시나리오는 예를 들어 소극적 공격(passive attack)들, 근시안적인 적대자들, 중간자 공격,(middle attack)들, 비잔틴 공격(byzantine attack)들 등 다양한 적대자들의 모델들 하에서 문헌에서 고려된다. 도 13에는 패킷 손상(packet corruption)에 대한 일반적인 설명이 나와 있고, 근시안적인 적대자는 최대
Figure pct00334
개(up to
Figure pct00335
)의 경로들을 통해 흐르는 데이터를 손상시킨다.
네트워크의 경로들 중
Figure pct00336
인 서브세트로부터만 정보를 획득할 수 있는 약한 도청자의 경우, 우리는 선형 개별 보안 코드를 보강하여 Eve가 삽입할 수 있는 최대
Figure pct00337
개의 오류들을 정정할 수 있다. 한 가지 솔루션은 코드를 일반화하는 것이지만 그러한 확장(extension)에는 비용이 든다.
Figure pct00338
개의 삽입된 오류들을 정정하려면, 레이트를
Figure pct00339
만큼 줄여야 한다. 그러나, 이 설정에서 코드는 암호화된 경로들 상에 있는지 여부에 관계없이 Eve가 네트워크를 통해 전송된 메시지의 서브세트를 손상시킬 수 있는 경우를 지원(support)할 수 있다. 실제로 정정 특성은 선형 코딩 방식의 디코딩에만 의존하며 해독 페이즈(deciphering phase)와 독립적이다.
네트워크의 모든 경로들로부터 정보를 획득할 수 있는 강한 도청자의 경우, 우리는 동일한 일반화된 코드를 이용하여 Eve가 삽입할 수 있는
Figure pct00340
개의 오류들을 정정할 수 있다. 그러나 이 경우 보안을 보장하기 위해, Alice는 네트워크의 상이한경로들을 통해 전송되는 적어도
Figure pct00341
개의 메시지들을 암호화해야 한다. 따라서, 우리는 오류를 정정하기 위해 전송된 추가적인
Figure pct00342
개의 메시지를 암호화하여 Eve가 전체 메시지를 디코딩하는 데 필요한 랭크(rank)를 가지는 행렬을 제공할 수 있는 선형 코드로 충분한 인코딩된 메시지를 획득하지 못하도록 해야 한다.
위에 개시된 솔루션에서 삽입된 오류들을 정정하는 데 요구되는 오버헤드를 감소시키기 위해 인코딩된 메시지들 간에 인증(Authentication)이 이용될 수 있다. Bob이 손상된 메시지들을 식별(identify)할 수 있는 경우 위에 제시된 모델의 두 메시지들과 달리 Alice는 삽입된 오류당 하나의 추가적인 심볼만 포함하면 된다. 또한 위에서 언급한 일반화된 선형 코드는 네트워크의 경로들에 오류가 없는 시나리오를 지원한다. 암호시스템이 McEliece 암호시스템과 같이 오류-정정 코드(error-correction code)들에 기초하는 경우 소스에 오류 벡터를 추가하는 대신 Alice는 채널의 오류들을 사용하여 Eve를 혼동(confuse)시킬 수 있다. 이러한 경우들의 코드들은 그 오류들이 있는 경우 합법적인 디코더에서 디코딩할 수 있도록 설계되었다. 따라서 Bob은 정보를 디코딩할 수 있다. 이러한 모든 확장을 통해 이 솔루션들의 유효 레이트(effective rate)를 높일 수 있다.
HUNCC는 분산 기억 장치 및 기타 "클라우드" 응용 분야들에도 적용될 수 있다. 분산 기억 장치 시스템의 목표는 신뢰할 수 없는 기억 장치 노드들에 분산된(spread) 데이터에 대한 안정적인 액세스를 제공하는 것이다. 오늘날 데이터 센터와 관련된 응용 분야는 Google의 GFS 및 BigTable, Amazon의 Dynamo, Facebook의 Apache Hadoop, Microsoft의 WAS, LinkedIn의 Voldemort 및 SkyFlok를 포함하여 어디에나 있다.
분산 기억 장치의 주요 단점들 중 하나는 데이터가 점점 더 많은 위치들에 저장됨에 따라 데이터의 보안 및 프라이버시의 위험(risk)이 잠재적으로(potentially) 증가한다는 것이다. 이 문제를 해결하는 한 가지 방법은 문제를 다중경로 네트워크로서 재해석하는 것이다. 이는 Alice와 Bob을 상이한 시간에 동일한 개인(individual)으로 간주하고 통신 링크들을 기억 장치 노드들로 간주하는 것에 의해 수행된다. 이러한 방식으로 HUNCC를 포함하여 다중경로 네트워크에 대한 다양한 개인 정보 보호 솔루션을 쉽게 적용하여 분산 기억 장치 시스템의 데이터를 보호할 수 있다. 확률적(probabilistic) 또는 적대적 성격(adversarial nature)의 삭제(Erasure)들 및 오류들은 위에서 설명한 근시안적인 적대자들에 의해 도입된 오류들을 정정하는 기술들을 사용하여 해결될 수 있으며 유사한 결과들을 얻을 수 있다.
HUNCC는 또한 초신뢰성, 저-지연 통신들을 제공하기 위해 사용될 수 있고, 최근 오디오/비디오 스트리밍, 스마트-시티 통신(smart-city communication)들, 사물인터넷(IoT) 네트워크들 및 제어 응용 분야들, 분산 컴퓨팅 등의 응용 분야들과 함께 저-지연들을 요구하는 스트리밍 통신에 네트워크 코딩을 적용하는 것이 고려되고 있다. 이와 관련하여 도 14는 Alice가 디지털 비디오 패킷들을 생성하거나 수신하고 이를 Bob에게 스트리밍하는 비디오 스트리밍을 위한 다중경로, 저-지연 통신 환경을 도시한다. 높은 처리량(high throughput)을 달성하는 기존의 코딩 솔루션들은 일반적으로 이러한 응용 분야들의 요구 사항인 낮은 순서 전달 지연(in-order delivery delay)을 보장하는 데 적합하지 않다. 이것은 높은-레이트와 저-지연(low-delay) 사이의 트레이드-오프를 탐색하는 방법들을 제안하는 일련의 작업으로 이어졌다.
그러나 통신이 또한 안전해야 하는 경우 HUNCC는 당업계에 알려진 다양한 네트워크 코딩 방식들과 함께 사용될 수 있다. 이러한 코딩 방식들에서, 선형 네트워크 인코딩 프로세스에 포함된 Alice의 메시지들의 수는 원하는 레이트/지연 트레이드-오프에 따라 달라진다. 그러나 HUNCC를 사용하는 보안 응용 분야에서 이 수(number)는 원하는 보안 보장들에 의해 더욱 제한된다. 비밀성을 제공하기 위해 더 많은 메시지들을 함께 혼합해야 할 수 있으므로 지연의 비용이 발생할 수 있다.
마지막으로, HUNCC 응용 분야와 관련하여, 우리는 본 명세서에 개시된 개념들, 기술들 및 구조들의 실시예에 따라 컴퓨터적으로 안전한 모든 암호시스템이 사용될 수 있음을 유의한다. 특히, RSA는 도 6에 주어진 예, 즉 두 개의 경로들이 있는 다중경로 네트워크의 맥락(context)에서 우리의 네트워크-코딩 솔루션에 적용될 수 있다. Alice에서 인코딩의 제1 스테이지로서, 개별 보안 코드의 생성 행렬인
Figure pct00343
Figure pct00344
와 같이 사용된다고 가정한다. 이제 Alice와 Bob이 제1 경로에서만 RSA 방식을 사용하는 데 동의한다고 가정해 보겠다.
Figure pct00345
-비트 보안을 위해 그들은
Figure pct00346
비트 키를 사용하여 결정한다.
Figure pct00347
비트 OAEP 패딩(padding)을 사용하면, 메시지 크기는 최대
Figure pct00348
비트가 될 수 있다. 따라서, Alice는
Figure pct00349
Figure pct00350
비트 벡터로 매핑하고 RSA를 사용하여 이것을
Figure pct00351
로 인코딩할 수 있다. 그런 다음 Alice는 채널 1을 통해
Figure pct00352
비트를 전송하고 채널 2를 통해
Figure pct00353
비트를 전송한다. 따라서 총 통신 비용은
Figure pct00354
보다 약간 더 큰 통신 레이트를 제공하는 약
Figure pct00355
비트가 될 것이다.
도 15는 본 명세서에 개시된 개념들, 구조들 및 기술들을 구현하기 위해 사용될 수 있는 컴퓨터(300)의 관련 물리적 구성요소들을 개략적으로 도시한다. 특히, 컴퓨터(300)는 도 7에 도시된 환경(100) 또는 그 임의의 부분, 특히 Alice의 노드(110) 또는 Bob의 노드(130) 또는 통신 경로(122) 또는 공개 디렉토리(124); 또는 도 8에 도시된 알고리즘 1 또는 그 일부; 또는 9에 도시된 행렬 동작들 및 암호화 동작들; 또는 도 12에 도시된 환경(200) 또는 그 일부, 특히 Alice의 노드(210) 또는 Bob의 노드(230) 또는 단일 통신 경로(222) 또는 공개 디렉토리(224); 또는 도 14에 도시된 비디오 스트리밍 및 플레이백 펑션들을 구현하기 위해 전체적으로 또는 부분적으로 사용될 수 있다. 일반적으로, 컴퓨터(300)는 데이터 버스들을 사용하여 서로 데이터를 통신하는 많은 기능적 구성요소(functional component)들을 갖는다. 도 3의 기능적 구성요소들은 각각 동작해야 하는 속도(speed)와 이러한 동작을 허용하는 데 필요한 속도들로 버스들을 사용하여 데이터를 통신하는 데 사용되는 기술에 따라 물리적으로 배치된다.
따라서, 컴퓨터(300)는 고속 구성요소(high-speed component)들 및 버스(311 내지 316) 및 저속 구성요소(low-speed component)들 및 버스(321 내지 329)로 배치된다. 고속 구성요소들 및 버스들(311 내지 316)은 "북 브리지" 또는 "노스 브리지"라고도 하는 고속 브리지(310)를 사용하여 데이터 통신을 위해 접속(couple)되고, 저속 구성요소들 및 버스들(321 내지 329)은 "남 브리지" 또는 "사우스 브리지"라고도 하는 저속 브리지(320)를 사용하여 접속된다.
컴퓨터(300)는 버스(312)를 통해 고속 브리지(310)에 접속된 중앙 처리 장치(central processing unit)("CPU")(311)를 포함한다. CPU(311)는 컴퓨터 프로그램의 명령들을 수행하는 전자 회로(electronic circuitry)이다. 당업계에 알려진 바와 같이, CPU(311)는 마이크로프로세서로 구현될 수 있다; 즉, 집적 회로("IC"; "칩" 또는 "마이크로칩"이라고도 함)으로서. 일부 실시예들에서, CPU(311)는 임베디드 응용 분야들을 위한 마이크로컨트롤러로서 구현되거나 당업계에 알려진 다른 실시예들에 따라 구현될 수 있다.
버스(312)는 CPU(또는 보다 구체적으로 마이크로프로세서)의 상호연결(interconnection)을 위해 당업계에 알려진 임의의 기술을 사용하여 구현될 수 있다. 예를 들어, 버스(312)는 AMD에 의해 초기에 개발된 HyperTransport 아키텍처, Intel QuickPath Interconnect("QPI") 또는 유사한 기술을 사용하여 구현될 수 있다. 일부 실시예들에서, 고속 브리지(310)의 펑션(function)들은 CPU(311)에 의해 전체적으로 또는 부분적으로 구현되어 버스(312)에 대한 필요성을 제거할 수 있다.
컴퓨터(300)는 그래픽 버스(314)를 통해 고속 브리지(310)에 접속된 하나 이상의 그래픽 처리 장치(GPU)(313)를 포함한다. 각각의 GPU(313)는 CPU(311)로부터의 명령(command)들을 디스플레이 스크린(미도시)에 디스플레이하기 위한 이미지 데이터로 처리하도록 설계된다. 일부 실시예들에서, CPU(311)는 그래픽 처리를 직접 수행하여 별개의(separate) GPU(313) 및 그래픽 버스(314)에 대한 필요성을 제거한다. 다른 실시예들에서, GPU(313)는 물리적으로 CPU(311)와 별개의 집적 회로로 구현되며 비디오 카드와 같은 확장 카드에 구현되는 경우 컴퓨터(300)에서 물리적으로 분리 가능할 수 있다. GPU(313)는 그래픽 버퍼에 이미지 데이터(또는 GPU(313)가 보조 컴퓨팅 프로세서로 사용되는 경우 다른 데이터)를 저장할 수 있다.
그래픽 버스(314)는 CPU와 GPU 간의 데이터 통신을 위해 당업계에 알려진 임의의 기술을 사용하여 구현될 수 있다. 예를 들어, 그래픽 버스(314)는 주변 구성 요소 상호 연결 익스프레스(Peripheral Component Interconnect Express)("PCI Express" 또는 "PCIe") 표준 또는 유사한 기술을 사용하여 구현될 수 있다.
컴퓨터(300)는 메모리 버스(316)를 통해 고속 브리지(310)에 접속된 주기억 장치(315)를 포함한다. 본 명세서에서 "메인 메모리(main memory)" 또는 간단히 "메모리"라고 부를 수 있는 주기억 장치(315)는 CPU(311)에 의해 사용하기 위한 컴퓨터 프로그램 명령들, 데이터 또는 둘 모두를 포함한다. 주기억 장치(315)는 랜덤 액세스 메모리("RAM")를 포함할 수 있다. RAM은 전원(power)이 제거될 때 데이터가 손실되는 경우 "휘발성"이고, 전원이 공급되지 않은 상태에서 데이터가 유지되는 경우 "비휘발성"이다. 일반적으로, 휘발성 RAM은 컴퓨터(300)가 "깨어" 있을 때 프로그램을 실행하고 컴퓨터(300)가 일시적으로 "수면" 상태일 때 사용되며, 비휘발성 RAM("NVRAM")은 컴퓨터(300)가 "동면" 상태일 때 사용되며; 그러나 실시예들은 다를 수 있다. 휘발성 RAM은 예를 들어 동적(dynamic)("DRAM"), 동기식(synchronous)("SDRAM") 및 이중 데이터 레이트(double-data rate)("DDR SDRAM")일 수 있다. 비휘발성 RAM은 예를 들어 솔리드 스테이트 플래시 메모리(solid-state flash memory)일 수 있다. RAM은 물리적으로 하나 이상의 듀얼 인라인 메모리 모듈(dual in-line memory module)("DIMM") 또는 당업계에 알려진 다른 유사한 기술로 제공될 수 있다.
메모리 버스(316)는 CPU와 주기억 장치 사이의 데이터 통신을 위해 당업계에 알려진 모든 기술을 사용하여 구현될 수 있다. 메모리 버스(316)는 기억 장치 주소를 전기적으로 지시하기 위한 주소 버스, 프로그램 명령들 및 데이터를 주기억 장치(315)로 송수신하기 위한 데이터 버스를 포함할 수 있다. 예를 들어 데이터가 한 번에 64비트(8바이트)씩 저장 및 검색되는 경우 데이터 버스의 너비는 64비트이다. 이 예를 계속하면, 주소 버스의 폭이 32비트이면 232개의 메모리 주소에 액세스할 수 있으므로 컴퓨터(300)는 최대 8 * 232 = 32GB의 주기억 장치(315)를 사용할 수 있다. 이 예에서, 메모리 버스(316)는 64 + 32 = 96비트의 전체 너비를 가질 것이다. 컴퓨터(300)는 또한 메모리 버스(316)로부터 수신된 전기 신호들을 주기억 장치(315)의 물리적 핀(physical pin)들에 의해 예상되는 전기 신호들로 변환하는 메모리 컨트롤러 회로(memory controller circuit)(미도시)를 포함할 수 있으며, 그 역도 마찬가지이다.
컴퓨터 메모리는 메모리 응답 시간과 메모리 크기 간의 트레이드오프에 기초하여 계층적으로 구성될 수 있으므로 특정한 물리적 위치들에 있는 메모리의 유형들에 대한 설명들 및 참조들은 단지 설명을 위한 것이다. 따라서, 일부 실시예들(예를 들어, 임베디드 시스템들)는 단일 집적 회로로서 CPU(311), 그래픽 처리 장치(313), 주기억 장치(315) 및 고속 브리지(310) 또는 이들의 모든 조합을 제공한다. 그러한 실시예에서, 버스들(312, 314, 316)은 동일한 집적 회로의 일부를 형성할 수 있고 물리적으로 분리될 필요는 없다. 컴퓨터(300)에 대한 다른 설계들은 버스들(312, 314, 316) 중 하나 이상에 대한 필요성을 제거하면서 상이한 구성들로 CPU(311), 그래픽 처리 장치(313) 및 주기억 장치(315)의 펑션들을 구현할 수 있다.
CPU(311), GPU(313) 및 주기억 장치(315)에 접속된 고속 브리지(310)의 묘사는 단지 예시일 뿐이며, 다른 구성요소들이 고속 브리지(310)와 통신하기 위해 접속될 수 있다. 예를 들어, 네트워크 인터페이스 컨트롤러("NIC" 또는 "네트워크 어댑터")는 데이터 채널을 사용하여 데이터를 송수신하기 위해 고속 브리지(310)에 접속될 수 있다. NIC는 데이터 채널과 송수신할 데이터를 네트워크 데이터 버퍼에 저장할 수 있다.
고속 브리지(310)는 내부 데이터 버스(330)를 사용하여 저속 브리지(320)와 데이터 통신을 위해 접속된다. 상이한 속도들로 데이터를 송수신하기 위해 제어 회로(미도시)가 필요할 수 있다. 내부 데이터 버스(330)는 Intel 다이렉트 미디어 인터페이스(Direct Media Interface)(DMI) 또는 유사한 기술을 사용하여 구현될 수 있다.
컴퓨터(300)는 기억 장치 버스(322)를 통해 저속 브리지(320)에 접속된 보조 기억 장치(secondary storage)(321)를 포함한다. 보조 기억 장치(321)는 본 명세서에서 "보조 메모리(auxiliary memory)", "보조 기억 장치(auxiliary storage)" 또는 "외부 메모리(external memory)"로 불릴 수 있으며, 비교적 저속으로 비교적 긴 지속 시간(duration) 동안 액세스하기 위한 프로그램 명령들 및 데이터를 저장한다. 그러한 지속 시간은 컴퓨터(300)로부터의 전원의 제거를 포함할 수 있기 때문에, 보조 기억 장치(321)는 비휘발성 메모리(랜덤 액세스 가능하거나 액세스 불가능할 수 있음)를 포함할 수 있다.
비휘발성 메모리는 예를 들어 플래시 드라이브 또는 솔리드 스테이트 드라이브와 같이 움직이는 부분들이 없는 솔리드 스테이트 메모리를 포함할 수 있다. 대안적으로, 비휘발성 메모리는 데이터를 저장하기 위한 움직이는 디스크 또는 테이프 및 데이터를 읽기(그리고 아마도 쓰기)하기 위한 장치를 포함할 수 있다. 데이터는 광학적으로, 예를 들어 컴팩트 디스크(compact disc)("CD"), 디지털 비디오 디스크("DVD") 또는 블루레이 디스크("BD")에 저장되거나 자기적으로, 예를 들어 하드 디스크 드라이브("HDD") 또는 플로피 디스크의 디스크 또는 디지털 오디오 테이프(digital audio tape)("DAT")에 저장될 수 있다(및 재기록될 수 있음). 비휘발성 메모리는 예를 들어 읽기 전용("ROM") WORM(Write-once read-many), 프로그래밍 가능("PROM"), 소거 가능("EPROM") 또는 전기적으로 소거 가능("EEPROM")일 수 있다.
기억 장치 버스(322)는 CPU와 보조 기억 장치 사이의 데이터 통신을 위해 당업계에 알려진 임의의 기술을 사용하여 구현될 수 있으며, 저속 브리지(320)로부터의 전기 신호들을 보조 기억 장치(321) 상의 물리적 핀들에 의해 예상되는 포맷(format)으로, 또는 그 반대로 적응시키기 위한 호스트 어댑터(host adaptor)(미도시)를 포함할 수 있다. 예를 들어, 기억 장치 버스(322)는 범용 직렬 버스(Universal Serial Bus)("USB") 표준; 직렬 AT 연결(Serial AT Attachment)("SATA") 표준; 통합 드라이브 장치(Integrated Drive Electronics)("IDE"),향상된 IDE(Enhanced IDE)("EIDE"), ATA 패킷 인터페이스(ATA Packet Interface)("ATAPI") 또는 Ultra ATA와 같은 병렬 AT 연결(Parallel AT Attachment)("PATA") 표준; 소형 컴퓨터 시스템 인터페이스(Small Computer System Interface)("SCSI") 표준 또는 유사한 기술을 사용할 수 있다.
컴퓨터(300)는 또한 각각의 하나 이상의 확장 버스(expansion bus)(324)를 통해 저속 브리지(320)에 접속된 하나 이상의 확장 장치 어댑터(expansion device adapter)(323)를 포함한다. 각 확장 장치 어댑터(323)는 컴퓨터(300)가 추가적인 기능(functionality)을 제공하는 확장 장치(미도시)와 통신할 수 있도록 한다. 이러한 추가적인 기능은 별개의 이동식 확장 카드(removable expansion card)(예: 추가적인 그래픽 카드, 네트워크 카드, 호스트 어댑터 또는 특수 처리 카드(specialized processing card))에 제공될 수 있다.
각각의 확장 버스(324)는 CPU와 확장 장치 어댑터 사이의 데이터 통신을 위해 당업계에 알려진 모든 기술을 사용하여 구현될 수 있다. 예를 들어, 확장 버스(324)는 PCI(Peripheral Component Interconnect) 표준, 이더넷 표준과 같은 데이터 네트워킹 표준 또는 유사한 기술을 사용하여 전기 신호들을 송수신할 수 있다.
컴퓨터(300)는 기본 입력/출력 시스템("BIOS")(325) 및 버스(327)를 통해 저속 브리지(320)에 접속된 슈퍼 I/O 회로(326)를 포함한다. BIOS(325)는 전원-온 프로세스(power-on process) 동안 컴퓨터(300)의 하드웨어를 초기화하기 위해 사용되는 비휘발성 메모리이다. 슈퍼 I/O 회로(326)는 직렬 마우스 및 키보드와 같은 저속 입력 및 출력 장치들(328)을 위한 입력 및 출력("I/O") 인터페이스를 결합(combine)하는 집적 회로이다. 일부 실시예들에서, BIOS 기능은 슈퍼 I/O 회로(326)에 직접 포함되어 별개의 BIOS(325)에 대한 필요성을 제거한다.
버스(327)는 CPU, BIOS(존재하는 경우) 및 슈퍼 I/O 회로 간의 데이터 통신을 위해 당업계에 알려진 모든 기술을 사용하여 구현될 수 있다. 예를 들어, 버스(327)는 LPC(Low Pin Count) 버스, ISA(Industry Standard Architecture) 버스, 또는 유사한 기술을 사용하여 구현될 수 있다. 슈퍼 I/O 회로(326)는 하나 이상의 버스(329)를 통해 I/O 장치(328)에 접속된다. 버스(329)는 컴퓨터(300)에 접속된 I/O 장치(328)의 유형에 따라 직렬 버스들, 병렬 버스들, 당업계에 알려진 다른 버스들 또는 이들의 조합일 수 있다.
본 명세서에서 "일 실시예" 또는 "실시예"에 대한 언급은 실시예와 관련하여 설명된 특정 특징, 구조 또는 특성이 청구 대상의 적어도 하나의 실시예에 포함될 수 있음을 의미한다. 명세서의 다양한 위치에서 "일 실시예에서"라는 문구의 출현은 반드시 모두 동일한 실시예를 지칭하는 것은 아니며, 별개의 실시예 또는 대체 실시예가 반드시 다른 실시예와 상호 배타적인 것도 아니다. "구현"이라는 용어에도 동일하게 적용된다.
본 출원에서 사용된 바와 같이, "예시적인"이라는 단어는 본 명세서에서 예시, 실례 또는 예시로서 제공되는 것을 의미하는 것으로 사용된다. 본 명세서에서 "예시적인" 것으로 기술된 모든 양태 또는 설계는 반드시 다른 양태 또는 설계보다 바람직하거나 유리한 것으로 해석되지 않는다. 오히려 예시라는 단어를 사용하는 것은 구체적인 방식으로 개념을 제시하기 위한 것이다.
또한, "또는"이라는 용어는 배타적인 "또는"이 아니라 포괄적인 "또는"을 의미하도록 의도된다. 즉, 달리 명시되지 않았거나 문맥에서 명확하지 않은 한 "X는 A 또는 B를 사용한다"는 자연스러운 포괄적 순열을 의미한다. 즉, X가 A를 이용한다면; X는 B를 이용하고; 또는 X가 A와 B를 모두 사용하는 경우 "X는 A 또는 B를 사용한다"는 앞의 경우 중 하나에서 충족된다. 또한, 본 출원 및 첨부된 청구범위에 사용된 관사 "a" 및 "an"은 일반적으로 달리 명시되지 않는 한 또는 문맥상 단수형을 가리키는 것으로 명확하지 않는 한 "하나 이상"을 의미하는 것으로 해석되어야 한다.
또한, "시스템", "구성 요소", "모듈", "인터페이스", "모델" 등의 용어들은 일반적으로 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어 또는 실행 중인 소프트웨어와 같은 컴퓨터 관련 개체를 나타낸다. 예를 들어, 구성요소는 프로세서, 프로세서, 개체, 실행 파일, 실행 스레드, 프로그램 및/또는 컴퓨터에서 실행되는 프로세스일 수 있지만 이에 제한되지 않다. 예를 들어, 컨트롤러에서 실행되는 응용 분야와 컨트롤러 모두 구성요소가 될 수 있다. 하나 이상의 구성요소는 프로세스 및/또는 실행 스레드 내에 상주할 수 있으며 구성요소는 한 컴퓨터에 로컬화 및/또는 둘 이상의 컴퓨터 간에 배포될 수 있다.
본 명세서에 기술된 주제가 사용자 상호작용 구성요소를 가지는 컴퓨팅 응용 분야에 대한 하나 이상의 컴퓨팅 응용 분야 특징/동작을 처리하기 위한 예시적인 구현의 맥락에서 설명될 수 있지만 주제는 이들 특정 실시예로 제한되지 않는다. 오히려, 본 명세서에 설명된 기술은 모든 적합한 유형의 사용자 상호작용 구성요소 실행 관리 방법, 시스템, 플랫폼 및/또는 장치에 적용될 수 있다.
일부 실시예는 이러한 방법을 실행하기 위한 방법 및 장치의 형태로 구현될 수 있다. 설명된 실시예들은 또한 자기 기록 매체, 광학 기록 매체, 솔리드 스테이트 메모리, 플로피 디스켓, CD-ROM, 하드 드라이브 또는 모든 다른 기계 판독 가능 저장 매체와 같은 유형 매체에 구현된 프로그램 코드의 형태로 구현될 수 있고, 프로그램 코드가 컴퓨터와 같은 기계에 로드되고 실행될 때 기계는 청구된 발명을 실시하기 위한 장치가 된다. 기술된 실시예는 또한 예를 들어, 저장 매체에 저장되거나, 기계에 로드 및/또는 실행되거나, 전기 배선이나 케이블과 같은 일부 전송 매체 또는 캐리어를 통해 전송되거나, 광섬유를 통해 또는 전자기 복사를 통해 전송되는 경우, 프로그램 코드의 형태로 구현될 수 있고, 프로그램 코드가 컴퓨터와 같은 기계에 로드되고 실행될 때 기계는 청구된 발명을 실시하기 위한 장치가 된다. 범용 프로세서에서 구현될 때 프로그램 코드 세그먼트는 프로세서와 결합하여 특정 논리 회로와 유사하게 동작하는 고유한 장치를 제공한다. 기술된 실시예는 또한 청구된 발명의 방법 및/또는 장치를 사용하여 생성된, 매체를 통해 전기적으로 또는 광학적으로 전송된 비트스트림 또는 신호 값의 다른 시퀀스, 자기 기록 매체에 저장된 자기장 변동 등의 형태로 구현될 수 있다.
본 명세서에 설명된 예시적인 방법의 단계는 반드시 설명된 순서대로 수행되어야 하는 것은 아니며, 이러한 방법의 단계 순서는 단지 예시적인 것으로 이해되어야 한다. 마찬가지로, 이러한 방법에는 추가적인 단계들이 포함될 수 있으며, 다양한 실시예와 일치하는 방법에서는 특정 단계가 생략되거나 결합될 수 있다.
청구된 발명의 본질을 설명하기 위해 기술되고 예시된 일부들의 세부사항, 물질 및 배치의 다양한 변경은 다음 청구범위의 범위를 벗어나지 않고 당업자에 의해 이루어질 수 있다는 것이 이해될 것이다.

Claims (16)

  1. 복수의 데이터 블록들을 안전하게 통신하는 방법에 있어서,
    제1 데이터 채널을 사용하여, 상기 복수의 데이터 블록들의 제1 인코딩의 암호화를 포함하는 제1 메시지를 수신하는 단계;
    제2 데이터 채널을 사용하여, 상기 복수의 데이터 블록들의 암호화되지 않은 제2 인코딩을 포함하는 제2 메시지를 수신하는 단계;
    상기 복수의 데이터 블록들의 암호화되지 않은 상기 제1 인코딩을 획득하기 위해 상기 제1 메시지의 상기 암호화를 암호해제하는 단계; 및
    상기 복수의 데이터 블록들의 상기 암호화되지 않은 제1 인코딩 및 상기 암호화되지 않은 제2 인코딩을 사용하여, 상기 복수의 메시지들에서 각각의 메시지를 복구하는 단계
    를 포함하는,
    방법.
  2. 제1항에 있어서,
    상기 제1 데이터 채널 및 상기 제2 데이터 채널은,
    상이한 전송 매체를 포함하는,
    방법.
  3. 제1항에 있어서,
    상기 제1 데이터 채널 및 상기 제2 데이터 채널은,
    단일 전송 매체의 상이한 이용 시간들을 포함하는,
    방법.
  4. 제1항에 있어서,
    상기 암호화는,
    공개-키 암호화를 포함하는,
    방법.
  5. 제1항에 있어서,
    상기 암호화는,
    포스트-양자 암호화를 포함하는,
    방법.
  6. 제1항에 있어서,
    복구하는 단계는,
    선형 네트워크 코드에 따라 상기 암호화되지 않은 제1 인코딩 및 상기 암호화되지 않은 제2 인코딩을 디코딩하는 단계
    를 포함하는,
    방법.
  7. 제6항에 있어서,
    디코딩하는 단계는,
    개별 보안 코드에 따라 디코딩하는 단계
    를 포함하는,
    방법.
  8. 제1항에 있어서,
    상기 제1 메시지를 수신하는 단계 또는 상기 제2 메시지를 수신하는 단계는,
    하나 이상의 오류를 정정하는 단계
    를 포함하는,
    방법.
  9. 복수의 데이터 블록들을 안전하게 통신하기 위한 장치에 있어서,
    컴퓨팅 프로세서; 및
    컴퓨터 프로그램 코드를 저장하는 비휘발성 메모리
    를 포함하고,
    상기 컴퓨터 프로그램 코드는,
    상기 컴퓨팅 프로세서에 의해 실행되는 경우,
    제1 데이터 채널을 사용하여, 상기 복수의 데이터 블록들의 제1 인코딩의 암호화를 포함하는 제1 메시지를 수신하는 프로세스;
    제2 데이터 채널을 사용하여, 상기 복수의 데이터 블록들의 암호화되지 않은 제2 인코딩을 포함하는 제2 메시지를 수신하는 프로세스;
    상기 복수의 데이터 블록들의 암호화되지 않은 상기 제1 인코딩을 획득하기 위해 상기 제1 메시지의 상기 암호화를 암호해제하는 프로세스; 및
    상기 복수의 데이터 블록들의 상기 암호화되지 않은 제1 인코딩 및 상기 암호화되지 않은 제2 인코딩을 사용하여, 상기 복수의 메시지들에서 각각의 메시지를 복구하는 프로세스
    의 프로세스들을 수행하는,
    장치.
  10. 제9항에 있어서,
    상기 제1 데이터 채널 및 상기 제2 데이터 채널은,
    상이한 전송 매체를 포함하는,
    장치.
  11. 제9항에 있어서,
    상기 제1 데이터 채널 및 상기 제2 데이터 채널은,
    단일 전송 매체의 상이한 이용 시간들을 포함하는,
    장치.
  12. 제9항에 있어서,
    상기 암호화는,
    공개-키 암호화를 포함하는,
    장치.
  13. 제9항에 있어서,
    상기 암호화는,
    포스트-양자 암호화를 포함하는,
    장치.
  14. 제9항에 있어서,
    복구하는 프로세스는,
    선형 네트워크 코드에 따라 상기 암호화되지 않은 제1 인코딩 및 상기 암호화되지 않은 제2 인코딩을 디코딩하는 프로세스
    를 포함하는,
    장치.
  15. 제14항에 있어서,
    디코딩하는 프로세스는,
    개별 보안 코드에 따라 디코딩하는 프로세스
    를 포함하는,
    장치.
  16. 제9항에 있어서,
    상기 제1 메시지를 수신하는 프로세스 또는 상기 제2 메시지를 수신하는 프로세스는,
    하나 이상의 오류를 정정하는 프로세스
    을 포함하는,
    장치.
KR1020237010844A 2020-08-31 2021-08-30 네트워크 코딩 기반 보안 통신 KR20230058685A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063072430P 2020-08-31 2020-08-31
US63/072,430 2020-08-31
PCT/US2021/048209 WO2022047295A1 (en) 2020-08-31 2021-08-30 Network coding-based secure communication

Publications (1)

Publication Number Publication Date
KR20230058685A true KR20230058685A (ko) 2023-05-03

Family

ID=78032508

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237010844A KR20230058685A (ko) 2020-08-31 2021-08-30 네트워크 코딩 기반 보안 통신

Country Status (6)

Country Link
US (1) US20220069987A1 (ko)
EP (1) EP4205345A1 (ko)
JP (1) JP2023539208A (ko)
KR (1) KR20230058685A (ko)
CN (1) CN116018778A (ko)
WO (1) WO2022047295A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114465733A (zh) * 2022-03-11 2022-05-10 大连大学 一种基于改进rsa的安全网络编码方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2848747A1 (fr) * 2002-12-16 2004-06-18 France Telecom Procede et dispositif multi-antenne de transmission de signaux
EP1524771B1 (en) * 2003-05-30 2011-01-05 Sony Corporation Decoding method, decoding device, program, recording/reproduction device and method, and reproduction device and method
US20050047516A1 (en) * 2003-09-01 2005-03-03 Grolmusz Vince I. A method for dense and secure transmission of signals and information using a small number of channels
JP2006121524A (ja) * 2004-10-22 2006-05-11 Toshiba Solutions Corp 公開鍵暗号装置
US8271687B2 (en) * 2007-06-19 2012-09-18 Cisco Technology, Inc. Streaming network coding
US8458556B2 (en) * 2009-10-09 2013-06-04 Stmicroelectronics, Sa Low complexity finite precision decoders and apparatus for LDPC codes
JP2016513825A (ja) * 2013-03-14 2016-05-16 マサチューセッツ インスティテュート オブ テクノロジー 安全通信方法および装置
FR3015815A1 (fr) * 2013-12-20 2015-06-26 Orange Procede de transmission d'un signal numerique pour un systeme marc a plusieurs relais half-duplex dynamiques,produit programme et dispositif relais correspondants
EP3043508B1 (en) * 2015-01-09 2019-06-26 Institut Mines Telecom Hybrid classical quantum cryptography
US11101893B2 (en) * 2015-06-30 2021-08-24 Massachusetts Institute Of Technology Optical cryptography for high speed coherent systems
CN110870251B (zh) * 2017-05-12 2023-04-04 康宁股份有限公司 用于使用纠缠光子在量子密钥分发系统中空脉冲减轻的方法和系统
US10567354B2 (en) * 2017-07-15 2020-02-18 Fujitsu Limited Enhanced communication security
US11177955B2 (en) * 2019-01-23 2021-11-16 Apple Inc. Device-to-device messaging protocol

Also Published As

Publication number Publication date
CN116018778A (zh) 2023-04-25
JP2023539208A (ja) 2023-09-13
WO2022047295A1 (en) 2022-03-03
US20220069987A1 (en) 2022-03-03
EP4205345A1 (en) 2023-07-05

Similar Documents

Publication Publication Date Title
US20230224148A1 (en) System and method for quantum-safe authentication, encryption and decryption of information
CN111034117B (zh) 单节点多方加密
US20120269340A1 (en) Hierarchical encryption/decryption device and method thereof
CN111448779A (zh) 用于混合秘密共享的系统、设备和方法
CN112715016B (zh) 密钥封装协议
US10163370B2 (en) Decoding apparatus, decoding capability providing apparatus, method thereof and program
KR20230058685A (ko) 네트워크 코딩 기반 보안 통신
US20240063999A1 (en) Multi-party cryptographic systems and methods
US10848312B2 (en) Zero-knowledge architecture between multiple systems
KR20180007974A (ko) 데이터의 암호화, 복호화 방법 및 이를 이용하는 장치
US10382199B2 (en) Keyword to set minimum key strength
KR20220085811A (ko) 일회용 패스워드 생성
US11797717B2 (en) Bus encryption for non-volatile memories
US10333703B2 (en) Key exchange process
WO2022239129A1 (ja) 鍵交換システム、機器、鍵交換方法、及びプログラム
US11372984B2 (en) Key-compressible encryption
WO2019220900A1 (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
TW201543862A (zh) 密碼裝置、記憶系統、解碼裝置、密碼方法、解碼方法、密碼程式產品及解碼程式產品
US11909893B2 (en) Composite encryption across cryptographic algorithms
US20220278826A1 (en) Encrypted communication using counter mode encryption and secret keys
WO2023218575A1 (ja) 鍵交換システム、拠点装置、qkd装置、方法、及びプログラム
TWI804179B (zh) 量子安全金鑰交換方案
JP7310938B2 (ja) 暗号システム、暗号化方法、復号方法及びプログラム
US20230299949A1 (en) Key exchange protocol
Shoushtari Securing Wireless Communication via Information-Theoretic Approaches: Innovative Schemes and Code Design Techniques