KR102609406B1 - Tls 프로토콜 기반 통신 장치 및 공유키 확장 방법 - Google Patents

Tls 프로토콜 기반 통신 장치 및 공유키 확장 방법 Download PDF

Info

Publication number
KR102609406B1
KR102609406B1 KR1020230074202A KR20230074202A KR102609406B1 KR 102609406 B1 KR102609406 B1 KR 102609406B1 KR 1020230074202 A KR1020230074202 A KR 1020230074202A KR 20230074202 A KR20230074202 A KR 20230074202A KR 102609406 B1 KR102609406 B1 KR 102609406B1
Authority
KR
South Korea
Prior art keywords
key
algorithm
shared
pqc
node
Prior art date
Application number
KR1020230074202A
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 한국과학기술정보연구원
Application granted granted Critical
Publication of KR102609406B1 publication Critical patent/KR102609406B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 TLS(Transport Layer Security) 프로토콜의 공유키 설정을 위한 공유키 알고리즘에 대해 양자암호 기술을 접목하여 보안성을 향상시키기 위한 방안에 관한 것이다.

Description

TLS 프로토콜 기반 통신 장치 및 공유키 확장 방법{COMMUNICATION APPARATUS BASED ON TRANSPORT LAYER SECURITY PROTOCOL, SHARED KEY EXTENSION METHOD}
본 발명은 TLS(Transport Layer Security) 프로토콜의 공유키 설정을 위한 공유키 알고리즘에 대해 양자암호 기술을 접목하여 보안성을 향상시키기 위한 방안에 관한 것이다.
TLS(Transport Layer Security) 프로토콜은 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약으로 TCP/IP 네트워크를 사용하는 통신에 적용되며, 통신 과정에서 전송계층 종단 간 보안과 데이터의 무결성을 확보해 준다.
이러한, TLS 표준에서는 핸드셰이크(Handshake) 과정을 통하여 클라이언트와 서버 양단 간 키 정보를 교환함으로써, 인증 및 암호화 데이터 전송에 필요한 공유키(대칭키)를 설정(생성)할 수 있다.
이처럼, 인증 및 암호화 데이터 전송을 위해 필요한 공유키의 경우, RSA 알고리즘과 이산대수 문제에 기반한 DH(Diffie-Hellman) 알고리즘, 및 타원곡선 이산대수 문제에 기반한 ECDH(Elliptic Curve Diffie-Hellman) 알고리즘 등의 현대 암호 알고리즘을 통해서 설정(생성)될 수 있다.
그러나, TLS 프로토콜에서 사용되는 전술의 공유키 알고리즘은 양자 컴퓨터의 발전에 따라, 양자 알고리즘인 쇼어(Shor) 알고리즘이 구현된 양자 컴퓨터에 의하여 더 이상 안전하지 않으며, 때문에, 해당 알고리즘을 사용하여 설정(생성)되는 공유키 또한 보안에 있어서 취약할 수 있다는 한계점을 가진다.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은, TLS(Transport Layer Security) 프로토콜의 공유키 설정을 위한 공유키 알고리즘에 대해 양자암호 기술을 접목하여 보안성을 향상시키는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 TLS(Transport Layer Security) 프로토콜 기반의 통신 장치에 있어서, 핸드셰이크 확장기능(Handshake extension)의 메시지 구조로 정의되는 공개키 알고리즘의 키 정보 교환 방식에 따라 공유키를 설정하는 설정부; 및 상기 공유키를 키 유도 함수의 입력으로 사용하여 핸드셰이크 시크릿(Handshake_secret)을 생성하는 생성부를 포함하는 것을 특징으로 한다.
구체적으로, 상기 공개키 알고리즘은, 상기 TLS 프로토콜에 정의된 표준 알고리즘에 대해서 적어도 하나의 양자암호 알고리즘이 추가로 결합되거나, 또는 상기 표준 알고리즘이 상기 적어도 하나의 양자암호 알고리즘으로 대체될 수 있다.
구체적으로, 상기 생성부는, 상기 공개키 알고리즘이 2 이상의 알고리즘이 결합된 하이브리드 형태인 경우, 상기 2 이상의 알고리즘에 의해 각각 설정되는 공유키를 서로 연접하여 상기 키 유도 함수인 HKDF-Extract()의 입력으로 사용할 수 있다.
구체적으로, 상기 양자암호 알고리즘은, PQC(Post Quantum Cryptography)-KEM(Key Encapsulation Mechanism) 알고리즘을 포함하며, 상기 설정부는, 상기 PQC-KEM 알고리즘을 따르는 경우, 개인키와 쌍으로 생성되는 공개키를 사용한 캡슐화(Encapsulate), 또는 상기 캡슐화(Encapsulate)를 통해 생성되는 암호문(Ciphertext)을 사용한 역캡슐화(Decapsulate)를 통해서 공유키(PQC-SharedKey)를 설정할 수 있다.
구체적으로, 상기 설정부는, 상기 통신 장치가 클라이언트인 경우, 상기 개인키와 쌍으로 생성되는 상기 공개키를 ClientHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 서버로 전송하며, 상기 통신 장치가 서버인 경우, 상기 ClientHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 클라이언트로부터 수신되는 상기 공개키, 및 난수를 사용한 캡슐화(Encapsulate)를 통해 상기 공유키(PQC-SharedKey)와 상기 암호문(Ciphertext)을 생성하며, 상기 통신 장치가 클라이언트인 경우, ServerHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 서버로부터 수신되는 상기 암호문(Ciphertext), 상기 개인키, 및 상기 공개키를 사용한 역캡슐화(Decapsulate)를 통해서 상기 공유키(PQC-SharedKey)를 생성할 수 있다.
구체적으로, 상기 양자암호 알고리즘은, QKD(Quantum Key Distribution) 알고리즘을 포함하며, 상기 설정부는, 상기 QKD 알고리즘을 따르는 경우, 양자암호통신 네트워크의 양자키분배계층의 QKD 노드가 전달하는 양자키를 이용하여 서비스계층을 위한 서비스키(Service Key)를 생성하는 양자키관리계층의 KMS(Key Management System) 노드로부터 상기 서비스키를 공유키(Q-Key)로 획득할 수 있다.
구체적으로, 상기 설정부는, 상기 통신 장치가 클라이언트인 경우, 양자키가 전달되는 마스터 QKD 노드와 슬레이브 QKD 노드 중, 상기 마스터 QKD 노드와 매칭된 마스터 KMS 노드에서 생성되는 서비스 키가 상기 공유키(Q-Key)로 획득되면, 상기 공유키(Q-Key)와 관련된 식별자를 ClientHello의 확장 메시지(EXT_Q_KEY_SHARE)를 이용하여 서버로 전송하며, 상기 통신 장치가 상기 서버인 경우, 상기 ClientHello의 확장 메시지(EXT_Q_KEY_SHARE)를 이용하여 클라이언트로부터 수신되는 상기 공유키(Q-Key)와 관련된 식별자를 이용하여 상기 슬레이브 QKD 노드와 매칭된 슬레이브 KMS 노드에서 상기 마스터 KMS 노드와 동일하게 생성한 서비스 키를 상기 공유키(Q-Key)로 획득할 수 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 TLS(Transport Layer Security) 프로토콜 기반의 통신 장치에서 수행되는 공유키 확장 방법은, 핸드셰이크 확장기능(Handshake extension)의 메시지 구조로 정의되는 공개키 알고리즘의 키 정보 교환 방식에 따라 공유키를 설정하는 설정단계; 및 상기 공유키를 키 유도 함수의 입력으로 사용하여 핸드셰이크 시크릿(Handshake_secret)을 생성하는 생성단계를 포함하는 것을 특징으로 한다.
구체적으로, 상기 공개키 알고리즘은, 상기 TLS 프로토콜에 정의된 표준 알고리즘에 대해서 적어도 하나의 양자암호 알고리즘이 추가로 결합되거나, 또는 상기 표준 알고리즘이 상기 적어도 하나의 양자암호 알고리즘으로 대체될 수 있다.
구체적으로, 상기 생성단계는, 상기 공개키 알고리즘이 2 이상의 알고리즘이 결합된 하이브리드 형태인 경우, 상기 2 이상의 알고리즘에 의해 각각 설정되는 공유키를 서로 연접하여 상기 키 유도 함수인 HKDF-Extract()의 입력으로 사용할 수 있다.
구체적으로, 상기 양자암호 알고리즘은, PQC(Post Quantum Cryptography)-KEM(Key Encapsulation Mechanism) 알고리즘을 포함하며, 상기 설정단계는, 상기 PQC-KEM 알고리즘을 따르는 경우, 개인키와 쌍으로 생성되는 공개키를 사용한 캡슐화(Encapsulate), 또는 상기 캡슐화(Encapsulate)를 통해 생성되는 암호문(Ciphertext)을 사용한 역캡슐화(Decapsulate)를 통해서 공유키(PQC-SharedKey)를 설정할 수 있다.
구체적으로, 상기 설정단계는, 상기 통신 장치가 클라이언트인 경우, 상기 개인키와 쌍으로 생성되는 상기 공개키를 ClientHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 서버로 전송하며, 상기 통신 장치가 서버인 경우, 상기 ClientHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 클라이언트로부터 수신되는 상기 공개키, 및 난수를 사용한 캡슐화(Encapsulate)를 통해 상기 공유키(PQC-SharedKey)와 상기 암호문(Ciphertext)을 생성하며, 상기 통신 장치가 클라이언트인 경우, ServerHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 서버로부터 수신되는 상기 암호문(Ciphertext), 상기 개인키, 및 상기 공개키를 사용한 역캡슐화(Decapsulate)를 통해서 상기 공유키(PQC-SharedKey)를 생성할 수 있다.
구체적으로, 상기 양자암호 알고리즘은, QKD(Quantum Key Distribution) 알고리즘을 포함하며, 상기 설정단계는, 상기 QKD 알고리즘을 따르는 경우, 양자암호통신 네트워크의 양자키분배계층의 QKD 노드가 전달하는 양자키를 이용하여 서비스계층을 위한 서비스키(Service Key)를 생성하는 양자키관리계층의 KMS(Key Management System) 노드로부터 상기 서비스키를 공유키(Q-Key)로 획득할 수 있다.
구체적으로, 상기 설정단계는, 상기 통신 장치가 클라이언트인 경우, 양자키가 전달되는 마스터 QKD 노드와 슬레이브 QKD 노드 중, 상기 마스터 QKD 노드와 매칭된 마스터 KMS 노드에서 생성되는 서비스 키가 상기 공유키(Q-Key)로 획득되면, 상기 공유키(Q-Key)와 관련된 식별자를 ClientHello의 확장 메시지(EXT_Q_KEY_SHARE)를 이용하여 서버로 전송하며, 상기 통신 장치가 상기 서버인 경우, 상기 ClientHello의 확장 메시지(EXT_Q_KEY_SHARE)를 이용하여 클라이언트로부터 수신되는 상기 공유키(Q-Key)와 관련된 식별자를 이용하여 상기 슬레이브 QKD 노드와 매칭된 슬레이브 KMS 노드에서 상기 마스터 KMS 노드와 동일하게 생성한 서비스 키를 상기 공유키(Q-Key)로 획득할 수 있다.
이에, 본 발명의 통신 장치 및 공유키 확장 방법에서는, TLS(Transport Layer Security) 프로토콜의 표준 공유키 알고리즘을 이용한 공유키 설정 과정에서, 적어도 하나의 양자암호 알고리즘에 의해서 설정되는 공유키를 하이브리드 형태로 결합하여 사용하는 것이 가능해지므로, 양자암호 기술이 가지는 보안 대응의 장점과의 결합을 통해 TLS 프로토콜의 보안성을 크게 제고시킬 수 있다.
도 1은 기존 TLS 표준(TLS v1.3)에서의 핸드셰이크 과정을 설명하기 위한 예시도.
도 2는 기존 TLS 핸드셰이크 과정에서 키 정보 교환과 관련된 메시지 타입을 설명하기 위한 예시도.
도 3은 본 발명의 일 실시예에 따른 TLS 프로토콜 기반 통신 환경을 설명하기 위한 예시도.
도 4는 본 발명의 일 실시예에 따른 통신 장치를 설명하기 위한 구성도.
도 5는 본 발명의 일 실시예에 따른 양자암호 알고리즘의 핸드셰이크 확장기능 메시지를 설명하기 위한 예시도.
도 6은 본 발명의 일 실시예에 따른 PQC-KEM 알고리즘에서의 공유키 설정 과정을 설명하기 위한 예시도.
도 7 내지 도 10은 본 발명의 일 실시예에 따른 QKD 알고리즘에서의 공유키 설정 과정을 설명하기 위한 예시도.
도 11은 본 발명의 일 실시예에 따른 공유키 확장 방법을 설명하기 위한 순서도.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명한다.
본 발명의 일 실시예에서는, TLS(Transport Layer Security) 프로토콜의 공유키(대칭키) 설정에 관한 기술을 다룬다.
TLS 프로토콜은 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약으로 TCP/IP 네트워크를 사용하는 통신에 적용되며, 통신 과정에서 전송계층 종단 간 보안과 데이터의 무결성을 확보해 준다.
이러한, TLS 프로토콜은, 클라이언트와 서버 간 동일한 공유키(대칭키)를 설정하는 과정, 클라이언트와 서버 간 설정된 공유키를 사용하여 인증서 등을 암호화 및 전송하여 인증을 수행하는 과정, 및 클라이언트와 서버의 인증에 성공하는 경우 어플리케이션 데이터를 서로 암호화하여 송수신하는 과정으로 진행된다.
이때, 설정된 공유키는 그대로 사용되지 않고 키 유도 함수 등을 통하여 적당한 형태로 변경되어 사용된다.
이와 관련하여, TLS 표준(TLS v1.3)에 따르면 예컨대, 도 1에서와 같은 핸드셰이크(handshake) 과정을 통하여 클라이언트와 서버 양단 간 인증 및 암호화 데이터 전송에 필요한 키 정보를 교환함으로써, 공유키(대칭키)를 설정할 수 있다.
이러한 핸드셰이크(handshake) 과정에서, 클라이언트와 서버는, (EC)DH[(Elliptic Curve) Diffie-Hellman] 알고리즘을 통해서 키 정보를 서로 교환함으로써, 공유 시크릿(shared secret)을 설정할 수 있다.
여기서, (EC)DH는 DH(Diffie-Hellman) 알고리즘과 ECDH(Elliptic Curve Diffie-Hellman) 알고리즘을 하나의 형태로 나타내기 위한 표기이다.
또한, TLS 표준에 표시된 DHE 알고리즘은 DH 알고리즘의 수행 과정에 공개키와 개인키를 매번 생성한다는 의미(Ephemeral Diffie-Hellman)이며, 마찬가지로 ECDH 알고리즘의 Ephemeral은 ECDHE로 표기될 수 있다.
이처럼, 클라이언트와 서버 간 교환되는 키 정보는, 예컨대, 도 2에서와 같이 핸드셰이크 확장기능(Handshake extension) 중, 'key_share'타입의 메시지로 송수신될 수 있다.
참고로, 이러한 key_share 타입의 메시지 구조는 예컨대, 아래 [표 1]에서와 같이 정의될 수 있다.
struct {
NamedGroup group;
opaque key_exchange<1..2^16-1>;
} KeyShareEntry;
이렇듯, 클라이언트와 서버 간에는, key_share 타입의 메시지를 사용한 키 정보 교환을 통해서 공유 시크릿(shared secret)을 설정(생성)할 수 있으며, 나아가, 이렇게 설정(생성)된 공유 시크릿(shared secret)은 키 유도 함수인 HKDF-Extract()의 입력으로 사용되어 핸드셰이크 시크릿(Handshake secret)이 생성된다.참고로, 이러한 핸드셰이크 시크릿(Handshake secret) 생성 과정은 아래 [표 2]에서와 같이 진행될 수 있다.
Client: shared_secret = ECDHE(Client_PrivateKey, Server_PublicKey)
Server: shared_secret = ECDHE(Server_PrivateKey, Client_PublicKey)
salt = derived_secret
key = shared_secret
handshake_secret = HKDF-Extract(salt, key)
한편, 양자 컴퓨터의 발전에 따라 기존의 소인수 분해 문제에 기반한 RSA 알고리즘과 이산대수 문제에 기반한 DH 알고리즘, 및 타원곡선 이산대수 문제에 기반한 ECDH 알고리즘 등의 현대 암호 알고리즘은 양자 알고리즘인 쇼어(Shor) 알고리즘이 구현된 양자 컴퓨터에 의하여 안전하지 않다.이로 인하여 TLS 프로토콜의 공유키 설정(분배)에 사용된 (EC)DH 알고리즘의 사용은 보안적인 문제가 있으며, 때문에, 전술한 바와 같이 (EC)DH 알고리즘을 사용하여 설정(생성)되는 공유 시크릿(shared secret) 역시, 보안에 있어서 취약할 수 있다는 한계점을 가진다.
이에, 본 발명의 일 실시예에서는, TLS 프로토콜의 공유키 설정을 위한 공유키 알고리즘에 대해 양자암호 기술을 접목하여 보안성을 향상시킬 수 있는 새로운 방안을 제안하고자 한다.
이와 관련하여, 도 3에는 본 발명의 일 실시예에 따른 TLS 프로토콜 기반 통신 환경을 예시적으로 보여주고 있다.
도 3에 도시된 바와 같이, 본 발명의 일 실시예에 따른 통신 환경에서는, 클라이언트(Client)와 서버(Server)를 포함하며, 이러한 클라이언트와 서버는, TLS 프로토콜에 정의된 핸드셰이크(handshake) 과정을 통해 키 정보를 서로 교환함으로써, 양단 간 인증 및 암호화 데이터 전송에 필요한 공유키(대칭키)를 설정할 수 있다.
이러한, 클라이언트와 서버는, 예컨대, TLS 표준(TLS v1.3)을 채택함에 따라 (EC)DH 알고리즘을 통해 공유키에 해당하는 공유 시크릿(shared secret)을 설정하게 되며, 특히, 양자암호 기술인, PQC(Post-Quantum Cryptography)-KEM(Key Encapsulation Mechanism) 알고리즘과 QKD(Quantum Key Distribution) 알고리즘을 하이브리드 형태로 (EC)DH 알고리즘과 접목하여 공유 시크릿을 설정할 수 있다.
이상 본 발명의 일 실시예에 따른 TLS 프로토콜 기반 통신 환경에서는, 전술한 구성을 기반으로, 공유키 알고리즘에 대해 양자암호 기술을 접목하여 보안성을 향상시킬 수 있는데, 이하에서는 이를 실현하기 위한 클라이언트와 서버의 구성에 대해 보다 구체적으로 설명하기로 한다.
한편, 이하에서는 클라이언트와 서버를 '통신 장치'로 동일하게 명명하고, 이러한 통신 장치에 대해서 필요 시 클라이언트와 서버로서의 역할을 구분하여 설명하기로 한다.
도 4에서는 본 발명의 일 실시예에 따른 통신 장치(100)의 구성을 보여주고 있다.
도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 통신 장치(100)는 공유키(이하, '공유 시크릿(shared secret)'이라 칭함)를 설정(생성)하는 설정부(110), 및 핸드셰이크 시크릿(Handshake_secret)을 생성하는 생성부(120)를 포함하는 구성을 가질 수 있다.
이상의 설정부(110), 및 생성부(120)를 포함하는 통신 장치(100)의 전체 구성 내지는 적어도 일부 구성은 하드웨어 모듈 형태 또는 소프트웨어 모듈 형태로 구현되거나, 하드웨어 모듈과 소프트웨어 모듈이 조합된 형태로 구현될 수 있다
여기서, 소프트웨어 모듈이란, 예컨대, 통신 장치(100) 내에서 연산을 제어하는 프로세서에 의해 실행되는 명령어로 이해될 수 있으며, 이러한 명령어는 통신 장치(100) 내 메모리에 탑재된 형태를 가질 수 있을 것이다.
이상 본 발명의 일 실시예에 따른 통신 장치(100)는 전술한 구성을 통해서 TLS 프로토콜의 공유키 설정을 위한 공유키 알고리즘에 대해 양자암호 기술을 접목하여 보안성을 향상시킬 수 있는데, 이하에서는 이를 실현하기 위한 통신 장치(100) 내부 구성을 보다 구체적으로 설명하기로 한다.
설정부(110)는 공유 시크릿(shared secret)을 설정(생성)하는 기능을 담당한다.
보다 구체적으로, 설정부(110)는 핸드셰이크 확장기능(Handshake extension)의 메시지 구조로 정의되는 공개키 알고리즘의 키 정보 교환 방식에 따라 공유 시크릿(shared secret)을 설정하게 된다.
이때, 설정부(110)는 TLS 프로토콜에 정의된 표준 알고리즘인 (EC)DH 알고리즘을 양자암호 기술인, PQC-KEM 알고리즘으로 대체하여 단독으로 공유 시크릿(shared secret)을 설정할 수 있다.
이 경우, 통신 장치(100)는 PQC-KEM 알고리즘의 보안성을 가지게 되므로 양자 컴퓨터에 안전한 양자 내성을 가질 수 있다.
이처럼, (EC)DH 알고리즘과 대체되는 양자암호 기술의 경우, 전술의 PQC-KEM 알고리즘뿐만 아니라 QKD 알고리즘도 포함될 수 있음은 물론이다.
즉, 본 발명의 일 실시예에서는, TLS 프로토콜에 정의된 표준 알고리즘인 (EC)DH 알고리즘을 양자암호 기술인 PQC-KEM 알고리즘, 및 QKD 알고리즘 중 적어도 하나로 대체하는 것이 가능하다.
또한, 설정부(110)는 TLS 프로토콜에 정의된 표준 알고리즘인 (EC)DH 알고리즘에 대해 PQC-KEM 알고리즘, 및 QKD 알고리즘을 결합하는 방식으로, 하이브리드 형태의 공유 시크릿(shared secret)을 설정할 수 있다.
본 발명의 일 실시예에서 (EC)DH 알고리즘을 통해 생성되는 공유 시크릿(shared secret)은, (EC)DH-SharedKey(이하, ‘ECDH-SKey’라 칭함)이고, PQC-KEM 알고리즘을 통해 생성되는 공유 시크릿(shared secret)은 PQC-SharedKey(이하, ‘PQC-SKey’라 칭함)이며, QKD 알고리즘을 통해 생성되는 공유 시크릿(shared secret)은 Q-Key로 표기될 수 있다.
결국, 본 발명의 일 실시예에서는, TLS 프로토콜에 정의된 표준 알고리즘인 (EC)DH 알고리즘에 대해 PQC-KEM 알고리즘, 및 QKD 알고리즘을 결합하는 방식으로, ECDH-SKey, PQC-SKey, 및 Q-Key가 하이브리드 형태로 결합된 공유 시크릿(shared secret)을 설정할 수 있다.
예를 들어, TLS 프로토콜에 정의된 표준 알고리즘인 (EC)DH 알고리즘을 그대로 사용 시에는 ECDH-SKey가 단독 운용되며, (EC)DH 알고리즘과 PQC-KEM 알고리즘의 결합 시에는 ECDH-SKey와 PQC-SKey가 서로 결합되며, (EC)DH 알고리즘과 QKD 알고리즘의 결합 시에는 ECDH-SKey와 Q-Key가 서로 결합되며, (EC)DH 알고리즘에 대해 PQC-KEM 알고리즘과 QKD 알고리즘 모두 결합 시에는 ECDH-SKey와 PQC-SKey, 그리고 Q-Key가 결합된 형태로 공유 시크릿(shared secret)이 설정될 수 있는 것이다.
한편, 이와 관련하여 설정부(110)는 TLS 프로토콜에 정의된 표준 알고리즘인 (EC)DH 알고리즘 이외에, PQC-KEM 알고리즘, 및 QKD 알고리즘을 추가하기 위해, 예컨대, 도 5에서와 같이, PQC-KEM 알고리즘에 대한 확장기능(Handshake extension) 메시지 구조로서, 'PQC_key_share'을 추가로 정의하고, 또한, QKD 알고리즘에 대한 확장기능(Handshake extension) 메시지 구조로서, 'qkey_share'를 추가로 정의할 필요가 있다.
이하에서는 설명의 이해를 돕기 위해, 양자암호 기술인 PQC-KEM 알고리즘, 및 QKD 알고리즘 각각에서의 공유 시크릿(shared secret) 설정 과정을 보다 구체적으로 살펴보기로 한다.
우선, 도 6을 참조하여 PQC-KEM 알고리즘에 따른 공유 시크릿(PQC-SKey) 설정 과정을 클라이언트와 서버의 관점으로 구분하여 살펴보면 다음과 같다.
먼저, PQC-KEM 알고리즘을 따르는 경우, 클라이언트(Client)는 개인키와 쌍으로 생성되는 공개키를 ClientHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 서버로 전송한다.
이때, 확장 메시지(EXT_PQC_KEY_SHARE)의 구조는 예컨대, 아래 [표 3]에서와 같이 정의될 수 있다.
struct {
Algorithmidentifier identifier;
opaque key_exchange<1..2^13-1>;
} pqckeyShareEntry;
이에 대해 서버(Server)는, ClientHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 클라이언트로부터 수신되는 공개키, 및 별도의 난수를 사용한 캡슐화(Encapsulate)를 통해 공유 시크릿(PQC-SKey)와 암호문(Ciphertext)을 설정(생성)하며, 이어서 ServerHello의 확장 메시지(EXT_PQC_KEY_SHARE)에 암호문(Ciphertext)을 추가하여 클라이언트로 전송한다.나아가, 클라이언트는, ServerHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 서버로부터 수신되는 암호문(Ciphertext), 기 생성된 개인키와 공개키 쌍을 사용한 역캡슐화(Decapsulate)를 통해서 서버와 동일한 공유 시크릿(PQC-SKey)을 설정(생성)한다.
이렇듯, 본 발명의 일 실시예에서는, PQC-KEM 알고리즘을 따르는 경우, 서버는 개인키와 쌍으로 생성되는 공개키를 사용한 캡슐화(Encapsulate)를 통해 공유 시크릿(PQC-SKey)을 설정하며, 클라이언트는, 캡슐화(Encapsulate)를 통해 생성되는 암호문(Ciphertext)을 사용한 역캡슐화(Decapsulate)를 통해서 서버와 동일한 공유 시크릿(PQC-SKey)을 설정할 수 있는 것이다.
다음, 도 7을 참조하여 QKD 알고리즘에 따른 공유 시크릿(Q-Key) 설정 과정을 클라이언트와 서버의 관점으로 구분하여 살펴보기로 한다.
먼저, QKD 알고리즘을 따르는 경우, 클라이언트(Client)는, 마스터(Master) QKD 노드와 매칭된 마스터 KMS 노드에 대한 공유 시크릿 요청(getKey())을 통해 마스터 KMS 노드에서 생성된 서비스키(Service Key)가 공유 시크릿(Q-Key)으로 획득되면, 해당 공유 시크릿(Q-Key)과 관련된 식별자를 ClientHello의 확장 메시지(EXT_Q_KEY_SHARE)를 이용하여 서버로 전송한다.
이때, 공유 시크릿(Q-Key)과 관련된 식별자에는, KMS 노드와 프로토콜을 식별할 수 있는 식별자, 및 Key ID가 포함될 수 있다.
그리고, Key ID가 수록되는 확장 메시지(EXT_Q_KEY_SHARE)의 구조는 예컨대, 아래 [표 4]에서와 같이 정의될 수 있다.
struct {
Algorithmidentifier identifier;
opaque key_exchange<1..2^13-1>;
} QKeyShareEntry;
나아가, 이에 대해 서버(Server)는, ClientHello의 확장 메시지(EXT_Q_KEY_SHARE)를 이용하여 클라이언트로부터 수신되는 공유 시크릿(Q-Key)과 관련된 식별자를 이용하여 슬레이브(Slave) KMS 노드에 대한 공유 시크릿 요청(getKeyWithID) 요청을 통해 마스터 KMS 노드와 동일하게 생성된 서비스 키를 공유 시크릿(Q-Key)로 획득하고, 그 결과를 ServerHello를 통해 클라이언트로 전달한다.이렇듯, 본 발명의 일 실시예에서는, QKD 알고리즘을 따르는 경우, 클라이언트와 서버는, 양자암호통신 네트워크의 양자키분배계층의 QKD 노드가 전달하는 양자키를 이용하여 서비스계층을 위한 서비스키(Service Key)를 생성하는 양자키관리계층의 KMS 노드와 연동함으로써, 종단 즉, 마스터 KMS 노드와 슬레이브 KMS 노드에서 생성되는 동일한 서비스키를 공유 시크릿(Q-Key)으로서 획득할 수 있는 것이다.
한편, QKD 알고리즘을 따르는 경우에 대한 전술의 설명에서, 클라이언트와 서버가 KMS 노드로부터 공유 시크릿(Q-Key)를 획득하는 과정은 ETSI 표준에 의거하여 처리될 수 있다.
이와 관련하여, 클라이언트와 서버로부터 공유 시크릿(Q-Key) 요청을 수신하는 KMS 노드의 경우, 예컨대, 도 8에서와 같이, KSA(Key Supply Agent), KMA(Key Management Agent), 및 KM Interface를 포함하는 구성을 가질 수 있다.
여기서, KSA는 서비스와의 인터페이스를 위한 노스바운드 API를 구현하며, QKD 응용서비스에 양자키를 서비스 보안 요구사항에 맞게 할당하고 관리하는 기능을 제공한다.
그리고, KMA는 QKD 노드와의 인터페이스를 위한 사우스바운드 API를 구현하며, QKD 노드로부터 양자 키를 수신하여 저장, 동기화, 및 삭제 등을 관리 하는 기능을 제공하며, 또한 KM Interface의 경우 KMS 노드 간 인터페이스를 위해 이스트-웨스트 API를 구현하며, 중/장거리 및 다대다 QKD 노드를 제공하기 위한 토폴로지 설정, 경로 테이블 설정, 및 신뢰 노드 기반 양자키 전달을 위한 인터페이스 등을 제공할 수 있다.
이하에서는, 이러한 KMS 노드의 구성을 전제로 클라이언트와 서버로부터 수신되는 공유 시크릿(Q-Key) 요청 처리 과정을 보다 구체적으로 살펴보기로 한다.
우선, 도 9를 참조하여 마스터(Master) KMS 노드가 클라이언트의 공유 시크릿(Q-Key) 요청을 처리하는 과정을 설명한다.
먼저, 마스터 측 KSA는 클라이언트로(Client)부터 공유 시크릿 요청(getKey)을 수신하여 서버와 클라이언트로부터 요구되는 서비스키(Service Key) 정보를 받고, 해당하는 서비스키의 생성 및 관리를 위한 초기화를 마스터 측 KMA에 요청한다.
이에 대해, 마스터 측 KMA는 KSA로부터 수신한 서버 식별자(TLS Server ID)를 활용하여 슬레이브(Slave) KMS 노드를 검색하고 마스터 KMS 노드와 슬레이브 KMS 노드 간의 키 정보(Key Profile)를 획득하여 TLS 요구 사항에 따른 서비스키를 생성한다.
그리고 나서, 마스터 측 KMA는 KM 인터페이스를 통하여 슬레이브 KMS 노드에 서비스키 생성 정보(QKD Key Profile, Service Key ID(s), 생성 방법, 요구사항 등)를 포함하는 서비스키 생성 요청 메시지를 전송한다.
이 때, 마스터 KMS 노드와 슬레이브 KMS 노드 간에는 동기화 과정 및 경로 설정 절차 등이 이루어질 수 있다.
나아가, 슬레이브 측 KMS/KMA는 서비스키 생성 정보를 활용하여 마스터 KMS 노드와 동일한 서비스키를 생성하고 이에 대한 초기화 및 생애주기관리를 수행한다.
이후, 슬레이브 KMS 노드로부터의 응답 과정에 따라 마스터 측 KMS/KSA에서는 서비스키에 대한 생애주기관리를 수행하고 해당 서비스키와 식별자 (ID)를 클라이언트에 응답한다.
다음, 도 10을 참조하여 슬레이브(Slave) KMS 노드가 서버의 공유 시크릿(Q-Key) 요청을 처리하는 과정을 설명한다.
먼저, 슬레이브 측 KSA는 서버(Server)로부터 공유 시크릿 요청(getKeyWithID) 요청을 수신하여 클라이언트와 요구하는 서비스 식별자(Service ID(s))를 받고, 슬레이브 측 KMA에 서비스키(Service Key)를 요청한다.
이에 대해 슬레이브 측 KMA는 KSA로부터 수신한 클라이언트 식별자(TLS Client ID)를 활용하여 마스터 KMS 노드를 검색하고 서비스키 정보(Service Key Profile)를 통해 서비스 식별자(Service ID(s))에 대응하는 서비스키를 검색한다.
이어서, 슬레이브 측 KMA는 KM 인터페이스를 통하여 마스터 KMS 노드에 서비스키 상태 정보를 포함하는 서비스키 관리 요청 메시지를 전송한다.
이 때, 슬레이브 KMS 노드와 마스터 KMS 간에는 동기화 과정 및 경로 설정 절차 등이 이루어질 수 있다.
이에 대해, 마스터 측 KMA/KMS는 서비스키 상태 정보에 따라 해당 서비스키에 대한 생애주기관리를 수행한다.
이후, 마스터 KMS노드로부터의 응답 과정에 따라 슬레이브 측 KMA/KSA는 서비스키에 대한 생애주기관리를 수행하고 해당 서비스키와 식별자 (ID)를 서버에 응답한다.
이상 공유 시크릿(Q-Key) 요청 처리 과정에 대한 설명을 마치고, 다시 도 4를 참조한 통신 장치(100)의 구성에 대한 설명을 이어 가기로 한다.
생성부(120)는 핸드셰이크 시크릿(Handshake_secret)을 생성하는 기능을 담당한다.
보다 구체적으로, 생성부(120)는 핸드셰이크 확장기능(Handshake extension)의 메시지 구조로 정의되는 공개키 알고리즘의 키 정보 교환 방식에 따라 공유 시크릿(shared secret)을 키 유도 함수인 HKDF-Extract()의 입력으로 사용하여 핸드셰이크 시크릿(Handshake_secret)을 생성하게 된다.
이때, 생성부(120)는 TLS 프로토콜에 정의된 표준 알고리즘인 (EC)DH 알고리즘을 단독으로 사용 시에는 공유 시크릿(shared secret)인 ECDH-SKey를 단독으로 키 유도 함수인 HKDF-Extract()의 입력으로 사용하여 핸드셰이크 시크릿(Handshake_secret)을 생성할 수 있다.
반면, 생성부(120)는 (EC)DH 알고리즘, PQC-KEM 알고리즘, 및 ECDH-SKey와 PQC-SKey가 서로 결합되어 하이브리드 형태의 공유 시크릿(shared secret)이 설정된 경우라면, 각각의 알고리즘에 의해 설정된 ECDH-SKey와 PQC-SKey, 그리고 Q-Key를 연접하고, 연접된 시크릿을 키 유도 함수인 HKDF-Extract()의 입력으로 사용하여 핸드셰이크 시크릿(Handshake_secret)을 생성할 수 있다.
이러한 핸드셰이크 시크릿(Handshake_secret)의 생성과 관련하여, TLS 표준(v1.3)에서는, 예컨대, 도 10에서와 같이, PQC-Key를 'pqckey'로 나타내고, Q-Key를 'qkey'로 나타내며, 그리고 ECDH-Skey는 'shared_secret'으로 나타내고 있다.
이와 관련하여, 본 발명의 일 실시예에 따른 서버와 클라이언트에서 수행되는 핸드셰이크 시크릿(Handshake_secret) 생성 과정을 보다 구체적으로 살펴보면 다음과 같다.
먼저, Q-Key, PQC-Key, 및 ECDH-Skey를 결합하여 사용하는 경우를 살펴보면, Client Hello에는 Q-Key, 및 PQC-Key에 관한 메시지가 추가되며, 이에 대해 서버는 아래 [표 5]의 수식으로 핸드셰이크 시크릿(Handshake_secret)를 생성한다.
handshake_secret = HKDF-Extract(
salt = derived_secret,
key = pqckey||qkey||shared_secret)
이처럼, 생성된 핸드셰이크 시크릿(Handshake_secret)은 Server Hello에 추가되며, 이러한 Server Hello를 수신한 클라이언트에서는 HKDF-Extract() 함수를 통해 서버와 동일한 핸드셰이크 시크릿(Handshake_secret)을 생성할 수 있다.또한, Q-Key, 및 ECDH-Skey를 결합하여 사용하는 경우를 살펴보면, Client Hello에는 Q-Key에 관한 메시지가 추가되며, 이에 대해 서버는 아래 [표 6]의 수식으로 핸드셰이크 시크릿(Handshake_secret)를 생성한다.
handshake_secret = HKDF-Extract(
salt = derived_secret,
key = qkey||shared_secret)
이처럼, 생성된 핸드셰이크 시크릿(Handshake_secret)은 Server Hello에 추가되며, 이러한 Server Hello를 수신한 클라이언트에서는 HKDF-Extract() 함수를 통해 서버와 동일한 핸드셰이크 시크릿(Handshake_secret)을 생성할 수 있다.또한, PQC-Key, 및 ECDH-Skey를 결합하여 사용하는 경우를 살펴보면, Client Hello에는 PQC-Key에 관한 메시지가 추가되며, 이에 대해 서버는 아래 [표 7]의 수식으로 핸드셰이크 시크릿(Handshake_secret)를 생성한다.
handshake_secret = HKDF-Extract(
salt = derived_secret,
key = pqckey||shared_secret)
이처럼, 생성된 핸드셰이크 시크릿(Handshake_secret)은 Server Hello에 추가되며, 이러한 Server Hello를 수신한 클라이언트에서는 HKDF-Extract() 함수를 통해 서버와 동일한 핸드셰이크 시크릿(Handshake_secret)을 생성할 수 있다.마지막으로, ECDH-Skey를 단독으로 사용하는 경우를 살펴보면, Client Hello에는 Q-Key, 및 PQC-Key에 관한 메시지가 추가되지 않으며, 이에 대해 서버는 아래 [표 8]의 수식으로 핸드셰이크 시크릿(Handshake_secret)를 생성한다.
handshake_secret = HKDF-Extract(
salt = derived_secret,
key = shared_secret)
이처럼, 생성된 핸드셰이크 시크릿(Handshake_secret)은 Server Hello에 추가되며, 이러한 Server Hello를 수신한 클라이언트에서는 HKDF-Extract() 함수를 통해 서버와 동일한 핸드셰이크 시크릿(Handshake_secret)을 생성할 수 있다.한편, 이러한 핸드셰이크 시크릿(Handshake_secret)의 생성과 관련하여, 서버 단에서는, Client Hello에 추가된 메시지를 선택적으로 사용하여 Q-Key와 PQC-Key를 선택적으로 추가할 수 있고 이렇게 선택적으로 추가하는 방법을 통해 TLS 표준을 그대로 사용한 TLS 프로토콜 통신, Q-Key만을 결합하는 TLS 프로토콜 통신, PQC-Key만을 결합하는 TLS 프로토콜 통신, Q-Key와 PQC-Key를 모두 결합하는 TLS 프로토콜 통신을 자동으로 판단하여 처리하거나 TLS 프로토콜 통신을 원하는 방법으로 제한하여 처리할 수 있다.
이상에서 살펴본 바와 같이, 본 발명의 일 실시예에 따른 통신 장치(100)의 구성에 따르면, TLS 프로토콜의 표준 공유키 알고리즘을 이용한 공유 시크릿 공유 시크릿(shared secret) 설정 과정에서, 양자암호 기술인 PQC-KEM알고리즘과 QKD 알고리즘에 의해 설정되는 공유 시크릿(shared secret)을 하이브리드 형태로 결합하여 사용하는 것이 가능해지므로, 양자암호 기술이 가지는 보안 대응의 장점과의 결합을 통해서 TLS 프로토콜의 보안성을 크게 제고시킬 수 있음을 알 수 있다.
이하에서는, 도 11을 참조하여, 본 발명의 일 실시예에 따른 공유키 확장 방법을 설명하기로 한다.
본 발명의 일 실시예에 따른 공유키 확장 방법의 동작 주체는 앞서 도 4를 참조하여 설명한 통신 장치(100)가 되므로, 이하에서는 해당 참조번호를 언급하여 설명을 이어 가기로 한다.
먼저, 통신 장치(100)는 핸드셰이크 확장기능(Handshake extension)의 메시지 구조로 정의되는 공개키 알고리즘의 키 정보 교환 방식에 따라 공유 시크릿(shared secret)을 설정(생성) 한다(S110).
이때, 통신 장치(100)는 TLS 프로토콜에 정의된 표준 알고리즘인 (EC)DH 알고리즘을 양자암호 기술인, PQC-KEM 알고리즘으로 대체하여 단독으로 공유 시크릿(shared secret)을 설정할 수 있다.
이 경우, 통신 장치(100)는 PQC-KEM 알고리즘의 보안성을 가지게 되므로 양자 컴퓨터에 안전한 양자 내성을 가질 수 있다.
이처럼, (EC)DH 알고리즘과 대체되는 양자암호 기술의 경우, 전술의 PQC-KEM 알고리즘뿐만 아니라 QKD 알고리즘도 포함될 수 있음은 물론이다.
즉, 본 발명의 일 실시예에서는, TLS 프로토콜에 정의된 표준 알고리즘인 (EC)DH 알고리즘을 양자암호 기술인 PQC-KEM 알고리즘, 및 QKD 알고리즘 중 적어도 하나로 대체하는 것이 가능하다.
또한, 통신 장치(100)는 TLS 프로토콜에 정의된 표준 알고리즘인 (EC)DH 알고리즘에 대해 PQC-KEM 알고리즘, 및 QKD 알고리즘을 결합하는 방식으로, 하이브리드 형태의 공유 시크릿(shared secret)을 설정할 수 있다.
본 발명의 일 실시예에서 (EC)DH 알고리즘을 통해 생성되는 공유 시크릿(shared secret)은, (EC)DH-SharedKey(이하, ‘ECDH-SKey’라 칭함)이고, PQC-KEM 알고리즘을 통해 생성되는 공유 시크릿(shared secret)은 PQC-SharedKey(이하, ‘PQC-SKey’라 칭함)이며, QKD 알고리즘을 통해 생성되는 공유 시크릿(shared secret)은 Q-Key로 표기될 수 있다.
결국, 본 발명의 일 실시예에서는, TLS 프로토콜에 정의된 표준 알고리즘인 (EC)DH 알고리즘에 대해 PQC-KEM 알고리즘, 및 QKD 알고리즘을 결합하는 방식으로, ECDH-SKey, PQC-SKey, 및 Q-Key가 하이브리드 형태로 결합된 공유 시크릿(shared secret)을 설정할 수 있다.
예를 들어, TLS 프로토콜에 정의된 표준 알고리즘인 (EC)DH 알고리즘을 그대로 사용 시에는 ECDH-SKey가 단독 운용되며, (EC)DH 알고리즘과 PQC-KEM 알고리즘의 결합 시에는 ECDH-SKey와 PQC-SKey가 서로 결합되며, (EC)DH 알고리즘과 QKD 알고리즘의 결합 시에는 ECDH-SKey와 Q-Key가 서로 결합되며, (EC)DH 알고리즘에 대해 PQC-KEM 알고리즘과 QKD 알고리즘 모두 결합 시에는 ECDH-SKey와 PQC-SKey, 그리고 Q-Key가 결합된 형태로 공유 시크릿(shared secret)이 설정될 수 있는 것이다.
한편, 이와 관련하여 통신 장치(100)는 TLS 프로토콜에 정의된 표준 알고리즘인 (EC)DH 알고리즘 이외에, PQC-KEM 알고리즘, 및 QKD 알고리즘을 추가하기 위해, 앞서 예시한, 도 5에서와 같이, PQC-KEM 알고리즘에 대한 확장기능(Handshake extension) 메시지 구조로서, 'PQC_key_share'을 추가로 정의하고, 또한, QKD 알고리즘에 대한 확장기능(Handshake extension) 메시지 구조로서, 'qkey_share'를 추가로 정의할 필요가 있다.
이하에서는 설명의 이해를 돕기 위해, 양자암호 기술인 PQC-KEM 알고리즘, 및 QKD 알고리즘 각각에서의 공유 시크릿(shared secret) 설정 과정을 보다 구체적으로 살펴보기로 한다.
우선, 앞서 예시한 도 6을 참조하여 PQC-KEM 알고리즘에 따른 공유 시크릿(PQC-SKey) 설정 과정을 클라이언트와 서버의 관점으로 구분하여 살펴보면 다음과 같다.
먼저, PQC-KEM 알고리즘을 따르는 경우, 클라이언트(Client)는 개인키와 쌍으로 생성되는 공개키를 ClientHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 서버로 전송한다.
이에 대해 서버(Server)는, ClientHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 클라이언트로부터 수신되는 공개키, 및 별도의 난수를 사용한 캡슐화(Encapsulate)를 통해 공유 시크릿(PQC-SKey)와 암호문(Ciphertext)을 설정(생성)하며, 이어서 ServerHello의 확장 메시지(EXT_PQC_KEY_SHARE)에 암호문(Ciphertext)을 추가하여 클라이언트로 전송한다.
나아가, 클라이언트는, ServerHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 서버로부터 수신되는 암호문(Ciphertext), 기 생성된 개인키와 공개키 쌍을 사용한 역캡슐화(Decapsulate)를 통해서 서버와 동일한 공유 시크릿(PQC-SKey)을 설정(생성)한다.
이렇듯, 본 발명의 일 실시예에서는, PQC-KEM 알고리즘을 따르는 경우, 서버는 개인키와 쌍으로 생성되는 공개키를 사용한 캡슐화(Encapsulate)를 통해 공유 시크릿(PQC-SKey)을 설정하며, 클라이언트는, 캡슐화(Encapsulate)를 통해 생성되는 암호문(Ciphertext)을 사용한 역캡슐화(Decapsulate)를 통해서 서버와 동일한 공유 시크릿(PQC-SKey)을 설정할 수 있는 것이다.
다음, 앞서 예시한 도 7을 참조하여 QKD 알고리즘에 따른 공유 시크릿(Q-Key) 설정 과정을 클라이언트와 서버의 관점으로 구분하여 살펴보기로 한다.
먼저, QKD 알고리즘을 따르는 경우, 클라이언트(Client)는, 마스터(Master) QKD 노드와 매칭된 마스터 KMS 노드에 대한 공유 시크릿 요청(getKey())을 통해 마스터 KMS 노드에서 생성된 서비스키(Service Key)가 공유 시크릿(Q-Key)으로 획득되면, 해당 공유 시크릿(Q-Key)과 관련된 식별자를 ClientHello의 확장 메시지(EXT_Q_KEY_SHARE)를 이용하여 서버로 전송한다.
이때, 공유 시크릿(Q-Key)과 관련된 식별자에는, KMS 노드와 프로토콜을 식별할 수 있는 식별자, 및 Key ID가 포함될 수 있다.
이에 대해 서버(Server)는, ClientHello의 확장 메시지(EXT_Q_KEY_SHARE)를 이용하여 클라이언트로부터 수신되는 공유 시크릿(Q-Key)과 관련된 식별자를 이용하여 슬레이브(Slave) KMS 노드에 대한 공유 시크릿 요청(getKeyWithID) 요청을 통해 마스터 KMS 노드와 동일하게 생성된 서비스 키를 공유 시크릿(Q-Key)로 획득하고, 그 결과를 ServerHello를 통해 클라이언트로 전달한다.
이렇듯, 본 발명의 일 실시예에서는, QKD 알고리즘을 따르는 경우, 클라이언트와 서버는, 양자암호통신 네트워크의 양자키분배계층의 QKD 노드가 전달하는 양자키를 이용하여 서비스계층을 위한 서비스키(Service Key)를 생성하는 양자키관리계층의 KMS 노드와 연동함으로써, 종단 즉, 마스터 KMS 노드와 슬레이브 KMS 노드에서 생성되는 동일한 서비스키를 공유 시크릿(Q-Key)으로서 획득할 수 있는 것이다.
한편, QKD 알고리즘을 따르는 경우에 대한 전술의 설명에서, 클라이언트와 서버가 KMS 노드로부터 공유 시크릿(Q-Key)를 획득하는 과정은 ETSI 표준에 의거하여 처리될 수 있다.
이와 관련하여, 클라이언트와 서버로부터 공유 시크릿(Q-Key) 요청을 수신하는 KMS 노드의 경우, 앞서 예시한, 도 8에서와 같이, KSA(Key Supply Agent), KMA(Key Management Agent), 및 KM Interface를 포함하는 구성을 가질 수 있다.
여기서, KSA는 서비스와의 인터페이스를 위한 노스바운드 API를 구현하며, QKD 응용서비스에 양자키를 서비스 보안 요구사항에 맞게 할당하고 관리하는 기능을 제공한다.
그리고, KMA는 QKD 노드와의 인터페이스를 위한 사우스바운드 API를 구현하며, QKD 노드로부터 양자 키를 수신하여 저장, 동기화, 및 삭제 등을 관리 하는 기능을 제공하며, 또한 KM Interface의 경우 KMS 노드 간 인터페이스를 위해 이스트-웨스트 API를 구현하며, 중/장거리 및 다대다 QKD 노드를 제공하기 위한 토폴로지 설정, 경로 테이블 설정, 및 신뢰 노드 기반 양자키 전달을 위한 인터페이스 등을 제공할 수 있다.
이하에서는, 이러한 KMS 노드의 구성을 전제로 클라이언트와 서버로부터 수신되는 공유 시크릿(Q-Key) 요청 처리 과정을 보다 구체적으로 살펴보기로 한다.
우선, 앞서 예시한 도 9를 참조하여 마스터(Master) KMS 노드가 클라이언트(Client)의 공유 시크릿(Q-Key) 요청을 처리하는 과정을 설명한다.
먼저, 마스터 측 KSA는 클라이언트(Client)로부터 공유 시크릿 요청(getKey)을 수신하여 서버와 클라이언트로부터 요구되는 서비스키(Service Key) 정보를 받고, 해당하는 서비스키의 생성 및 관리를 위한 초기화를 마스터 측 KMA에 요청한다.
이에 대해, 마스터 측 KMA는 KSA로부터 수신한 서버 식별자(TLS Server ID)를 활용하여 슬레이브(Slave) KMS 노드를 검색하고 마스터 KMS 노드와 슬레이브 KMS 노드 간의 키 정보(Key Profile)를 획득하여 TLS 요구 사항에 따른 서비스키를 생성한다.
그리고 나서, 마스터 측 KMA는 KM 인터페이스를 통하여 슬레이브 KMS 노드에 서비스키 생성 정보(QKD Key Profile, Service Key ID(s), 생성 방법, 요구사항 등)를 포함하는 서비스키 생성 요청 메시지를 전송한다.
이 때, 마스터 KMS 노드와 슬레이브 KMS 노드 간에는 동기화 과정 및 경로 설정 절차 등이 이루어질 수 있다.
나아가, 슬레이브 측 KMS/KMA는 서비스키 생성 정보를 활용하여 마스터 KMS 노드와 동일한 서비스키를 생성하고 이에 대한 초기화 및 생애주기관리를 수행한다.
이후, 슬레이브 KMS 노드로부터의 응답 과정에 따라 마스터 측 KMS/KSA에서는 서비스키에 대한 생애주기관리를 수행하고 해당 서비스키와 식별자 (ID)를 클라이언트에 응답한다.
다음, 앞서 예시한 도 10을 참조하여 슬레이브(Slave) KMS 노드가 서버의 공유 시크릿(Q-Key) 요청을 처리하는 과정을 설명한다.
먼저, 슬레이브 측 KSA는 서버(Server)로부터 공유 시크릿 요청(getKeyWithID) 요청을 수신하여 클라이언트와 요구하는 서비스 식별자(Service ID(s))를 받고, 슬레이브 측 KMA에 서비스키(Service Key)를 요청한다.
이에 대해 슬레이브 측 KMA는 KSA로부터 수신한 클라이언트 식별자(TLS Client ID)를 활용하여 마스터 KMS 노드를 검색하고 서비스키 정보(Service Key Profile)를 통해 서비스 식별자(Service ID(s))에 대응하는 서비스키를 검색한다.
이어서, 슬레이브 측 KMA는 KM 인터페이스를 통하여 마스터 KMS 노드에 서비스키 상태 정보를 포함하는 서비스키 관리 요청 메시지를 전송한다.
이 때, 슬레이브 KMS 노드와 마스터 KMS 간에는 동기화 과정 및 경로 설정 절차 등이 이루어질 수 있다.
이에 대해, 마스터 측 KMA/KMS는 서비스키 상태 정보에 따라 해당 서비스키에 대한 생애주기관리를 수행한다.
이후, 마스터 KMS노드로부터의 응답 과정에 따라 슬레이브 측 KMA/KSA는 서비스키에 대한 생애주기관리를 수행하고 해당 서비스키와 식별자 (ID)를 서버에 응답한다.
이상 공유 시크릿(Q-Key) 요청 처리 과정에 대한 설명을 마치고, 도 11을 참조한 공유키 확장 방법에 대한 설명을 이어 가기로 한다.
이후, 통신 장치(100)는 핸드셰이크 확장기능(Handshake extension)의 메시지 구조로 정의되는 공개키 알고리즘의 키 정보 교환 방식에 따라 공유 시크릿(shared secret)을 키 유도 함수인 HKDF-Extract()의 입력으로 사용하여 핸드셰이크 시크릿(Handshake_secret)을 생성한다(S120-S140).
이때, 통신 장치(100)는 TLS 프로토콜에 정의된 표준 알고리즘인 (EC)DH 알고리즘을 단독으로 사용 시에는 공유 시크릿(shared secret)인 ECDH-SKey를 단독으로 키 유도 함수인 HKDF-Extract()의 입력으로 사용하여 핸드셰이크 시크릿(Handshake_secret)을 생성할 수 있다.
반면, 통신 장치(100)는 (EC)DH 알고리즘, PQC-KEM 알고리즘, 및 ECDH-SKey와 PQC-SKey가 서로 결합되어 하이브리드 형태의 공유 시크릿(shared secret)이 설정된 경우라면, 각각의 알고리즘에 의해 설정된 ECDH-SKey와 PQC-SKey, 그리고 Q-Key를 연접하고, 연접된 시크릿을 키 유도 함수인 HKDF-Extract()의 입력으로 사용하여 핸드셰이크 시크릿(Handshake_secret)을 생성할 수 있다.
이러한 핸드셰이크 시크릿(Handshake_secret)의 생성과 관련하여, TLS 표준(v1.3)에서는, 앞서 예시한, 도 10에서와 같이, PQC-Key를 'pqckey'로 나타내고, Q-Key를 'qkey'로 나타내며, 그리고 ECDH-Skey는 'shared_secret'으로 나타내고 있다.
이와 관련하여, 본 발명의 일 실시예에 따른 서버와 클라이언트에서 수행되는 핸드셰이크 시크릿(Handshake_secret) 생성 과정을 보다 구체적으로 살펴보면 다음과 같다.
먼저, Q-Key, PQC-Key, 및 ECDH-Skey를 결합하여 사용하는 경우를 살펴보면, Client Hello에는 Q-Key, 및 PQC-Key에 관한 메시지가 추가되며, 이에 대해 서버는 pqckey, qkey, 및 shared_secret을 연접하여 핸드셰이크 시크릿(Handshake_secret)를 생성한다.
이처럼, 생성된 핸드셰이크 시크릿(Handshake_secret)은 Server Hello에 추가되며, 이러한 Server Hello를 수신한 클라이언트에서는 HKDF-Extract() 함수를 통해 서버와 동일한 핸드셰이크 시크릿(Handshake_secret)을 생성할 수 있다.
또한, Q-Key, 및 ECDH-Skey를 결합하여 사용하는 경우를 살펴보면, Client Hello에는 Q-Key에 관한 메시지가 추가되며, 이에 대해 서버는 qkey, 및 shared_secret을 연접하여 핸드셰이크 시크릿(Handshake_secret)를 생성한다.
이처럼, 생성된 핸드셰이크 시크릿(Handshake_secret)은 Server Hello에 추가되며, 이러한 Server Hello를 수신한 클라이언트에서는 HKDF-Extract() 함수를 통해 서버와 동일한 핸드셰이크 시크릿(Handshake_secret)을 생성할 수 있다.
또한, PQC-Key, 및 ECDH-Skey를 결합하여 사용하는 경우를 살펴보면, Client Hello에는 PQC-Key에 관한 메시지가 추가되며, 이에 대해 서버는 pqckey, 및 shared_secret을 연접하여 핸드셰이크 시크릿(Handshake_secret)를 생성한다.
이처럼, 생성된 핸드셰이크 시크릿(Handshake_secret)은 Server Hello에 추가되며, 이러한 Server Hello를 수신한 클라이언트에서는 HKDF-Extract() 함수를 통해 서버와 동일한 핸드셰이크 시크릿(Handshake_secret)을 생성할 수 있다.
마지막으로, ECDH-Skey를 단독으로 사용하는 경우를 살펴보면, Client Hello에는 Q-Key, 및 PQC-Key에 관한 메시지가 추가되지 않으며, 이에 대해 서버는 shared_secret을 단독으로 사용하여 핸드셰이크 시크릿(Handshake_secret)를 생성한다.
이처럼, 생성된 핸드셰이크 시크릿(Handshake_secret)은 Server Hello에 추가되며, 이러한 Server Hello를 수신한 클라이언트에서는 HKDF-Extract() 함수를 통해 서버와 동일한 핸드셰이크 시크릿(Handshake_secret)을 생성할 수 있다.
한편, 이러한 핸드셰이크 시크릿(Handshake_secret)의 생성과 관련하여, 서버 단에서는, Client Hello에 추가된 메시지를 선택적으로 사용하여 Q-Key와 PQC-Key를 선택적으로 추가할 수 있고 이렇게 선택적으로 추가하는 방법을 통해 TLS 표준을 그대로 사용한 TLS 프로토콜 통신, Q-Key만을 결합하는 TLS 프로토콜 통신, PQC-Key만을 결합하는 TLS 프로토콜 통신, Q-Key와 PQC-Key를 모두 결합하는 TLS 프로토콜 통신을 자동으로 판단하여 처리하거나 TLS 프로토콜 통신을 원하는 방법으로 제한하여 처리할 수 있다.
이상에서 살펴본 바와 같이, 본 발명의 일 실시예에 따른 공유키 확장 방법에 따르면, TLS 프로토콜의 표준 공유키 알고리즘을 이용한 공유 시크릿 공유 시크릿(shared secret) 설정 과정에서, 양자암호 기술인 PQC-KEM알고리즘과 QKD 알고리즘에 의해 설정되는 공유 시크릿(shared secret)을 하이브리드 형태로 결합하여 사용하는 것이 가능해지므로, 양자암호 기술이 가지는 보안 대응의 장점과의 결합을 통해서 TLS 프로토콜의 보안성을 크게 제고시킬 수 있음을 알 수 있다.
한편, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 처리 시스템의 동작을 처리하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다.
컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 혹은 이들 중 하나 이상의 조합일 수 있다.
본 명세서에서 "시스템"이나 "장치"라 함은 예컨대 프로그래머블 프로세서, 컴퓨터 혹은 다중 프로세서나 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 기구, 장치 및 기계를 포괄한다. 처리 시스템은, 하드웨어에 부가하여, 예컨대 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 혹은 이들 중 하나 이상의 조합 등 요청 시 컴퓨터 프로그램에 대한 실행 환경을 형성하는 코드를 포함할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.
한편, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 EPROM, EEPROM 및 플래시메모리 장치와 같은 반도체 메모리 장치, 예컨대 내부 하드디스크나 외장형 디스크와 같은 자기 디스크, 자기광학 디스크 및 CD-ROM과 DVD-ROM 디스크를 포함하여 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함할 수 있다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.
본 명세서에서 설명한 주제의 구현물은 예컨대 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 예컨대 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 예컨대 사용자가 본 명세서에서 설명한 주제의 구현물과 상호 작용할 수 있는 웹 브라우저나 그래픽 유저 인터페이스를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트 혹은 그러한 백엔드, 미들웨어 혹은 프론트엔드 컴포넌트의 하나 이상의 모든 조합을 포함하는 연산 시스템에서 구현될 수도 있다. 시스템의 컴포넌트는 예컨대 통신 네트워크와 같은 디지털 데이터 통신의 어떠한 형태나 매체에 의해서도 상호 접속 가능하다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 마찬가지로, 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
또한, 본 명세서에서는 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다
이와 같이, 본 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하려는 의도가 아니다. 따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명에 따른 통신 장치 및 공유키 확장 방법에 따르면, TLS(Transport Layer Security) 프로토콜의 공유키 설정을 위한 공유키 알고리즘에 대해 양자암호 기술을 접목하여 보안성을 향상시킬 수 있다는 점에서, 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.
100: 양자키분배 네트워크 제어장치
110: 설정부 120: 전달부

Claims (16)

  1. TLS(Transport Layer Security) 프로토콜 기반의 통신 장치에 있어서,
    핸드셰이크 확장기능(Handshake extension)의 메시지 구조로 정의되는 공개키 알고리즘의 키 정보 교환 방식에 따라 공유키를 설정하는 설정부; 및
    상기 공유키를 키 유도 함수의 입력으로 사용하여 핸드셰이크 시크릿(Handshake_secret)을 생성하는 생성부를 포함하며,
    상기 공개키 알고리즘은,
    상기 TLS 프로토콜에 정의된 표준 알고리즘에 대해서 추가되거나, 또는 상기 표준 알고리즘을 대체하는 적어도 하나의 양자암호 알고리즘을 포함하며,
    상기 설정부는,
    상기 적어도 하나의 양자암호 알고리즘이 QKD(Quantum Key Distribution) 알고리즘을 포함하는 경우, 상기 QKD 알고리즘에 따라 양자암호통신 네트워크의 양자키분배계층의 QKD 노드가 전달하는 양자키를 이용하여 서비스계층을 위한 서비스키(Service Key)를 생성하는 양자키관리계층의 KMS(Key Management System) 노드로부터 상기 서비스키를 공유키(Q-Key)로 획득하며,
    상기 통신 장치가 클라이언트인 경우, 양자키가 전달되는 마스터 QKD 노드와 슬레이브 QKD 노드 중, 상기 마스터 QKD 노드와 매칭된 마스터 KMS 노드에서 생성되는 서비스 키가 상기 공유키(Q-Key)로 획득되면, 상기 공유키(Q-Key)와 관련된 식별자를 ClientHello의 확장 메시지(EXT_Q_KEY_SHARE)를 이용하여 서버로 전송하고,
    상기 통신 장치가 상기 서버인 경우, 상기 ClientHello의 확장 메시지(EXT_Q_KEY_SHARE)를 이용하여 클라이언트로부터 수신되는 상기 공유키(Q-Key)와 관련된 식별자를 이용하여 상기 슬레이브 QKD 노드와 매칭된 슬레이브 KMS 노드에서 상기 마스터 KMS 노드와 동일하게 생성한 서비스 키를 상기 공유키(Q-Key)로 획득하는 것을 특징으로 하는 통신 장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 생성부는,
    상기 공개키 알고리즘이 2 이상의 알고리즘이 결합된 하이브리드 형태인 경우, 상기 2 이상의 알고리즘에 의해 각각 설정되는 공유키를 서로 연접하여 상기 키 유도 함수인 HKDF-Extract()의 입력으로 사용하는 것을 특징으로 하는 통신 장치.
  4. 제 1 항에 있어서,
    상기 적어도 하나의 양자암호 알고리즘은,
    PQC(Post Quantum Cryptography)-KEM(Key Encapsulation Mechanism) 알고리즘을 포함하며,
    상기 설정부는,
    상기 PQC-KEM 알고리즘을 따르는 경우, 개인키와 쌍으로 생성되는 공개키를 사용한 캡슐화(Encapsulate), 또는 상기 캡슐화(Encapsulate)를 통해 생성되는 암호문(Ciphertext)을 사용한 역캡슐화(Decapsulate)를 통해서 공유키(PQC-SharedKey)를 설정하는 것을 특징으로 하는 통신 장치.
  5. 제 4 항에 있어서
    상기 설정부는,
    상기 통신 장치가 클라이언트인 경우, 상기 개인키와 쌍으로 생성되는 상기 공개키를 ClientHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 서버로 전송하며,
    상기 통신 장치가 서버인 경우, 상기 ClientHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 클라이언트로부터 수신되는 상기 공개키, 및 난수를 사용한 캡슐화(Encapsulate)를 통해 상기 공유키(PQC-SharedKey)와 상기 암호문(Ciphertext)을 생성하며,
    상기 통신 장치가 클라이언트인 경우, ServerHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 서버로부터 수신되는 상기 암호문(Ciphertext), 상기 개인키, 및 상기 공개키를 사용한 역캡슐화(Decapsulate)를 통해서 상기 공유키(PQC-SharedKey)를 생성하는 것을 특징으로 하는 통신 장치.
  6. 삭제
  7. 삭제
  8. TLS(Transport Layer Security) 프로토콜 기반의 통신 장치에서 수행되는 공유키 확장 방법에 있어서,
    핸드셰이크 확장기능(Handshake extension)의 메시지 구조로 정의되는 공개키 알고리즘의 키 정보 교환 방식에 따라 공유키를 설정하는 설정단계; 및
    상기 공유키를 키 유도 함수의 입력으로 사용하여 핸드셰이크 시크릿(Handshake_secret)을 생성하는 생성단계를 포함하며,
    상기 공개키 알고리즘은,
    상기 TLS 프로토콜에 정의된 표준 알고리즘에 대해서 추가되거나, 또는 상기 표준 알고리즘을 대체하는 적어도 하나의 양자암호 알고리즘을 포함하며,
    상기 설정단계는,
    상기 적어도 하나의 양자암호 알고리즘이 QKD(Quantum Key Distribution) 알고리즘을 포함하는 경우, 상기 QKD 알고리즘에 따라, 양자암호통신 네트워크의 양자키분배계층의 QKD 노드가 전달하는 양자키를 이용하여 서비스계층을 위한 서비스키(Service Key)를 생성하는 양자키관리계층의 KMS(Key Management System) 노드로부터 상기 서비스키를 공유키(Q-Key)로 획득하며,
    상기 통신 장치가 클라이언트인 경우, 양자키가 전달되는 마스터 QKD 노드와 슬레이브 QKD 노드 중, 상기 마스터 QKD 노드와 매칭된 마스터 KMS 노드에서 생성되는 서비스 키가 상기 공유키(Q-Key)로 획득되면, 상기 공유키(Q-Key)와 관련된 식별자를 ClientHello의 확장 메시지(EXT_Q_KEY_SHARE)를 이용하여 서버로 전송하고,
    상기 통신 장치가 상기 서버인 경우, 상기 ClientHello의 확장 메시지(EXT_Q_KEY_SHARE)를 이용하여 클라이언트로부터 수신되는 상기 공유키(Q-Key)와 관련된 식별자를 이용하여 상기 슬레이브 QKD 노드와 매칭된 슬레이브 KMS 노드에서 상기 마스터 KMS 노드와 동일하게 생성한 서비스 키를 상기 공유키(Q-Key)로 획득하는 것을 특징으로 하는 공유키 확장 방법.
  9. 삭제
  10. 제 8 항에 있어서,
    상기 생성단계는,
    상기 공개키 알고리즘이 2 이상의 알고리즘이 결합된 하이브리드 형태인 경우, 상기 2 이상의 알고리즘에 의해 각각 설정되는 공유키를 서로 연접하여 상기 키 유도 함수인 HKDF-Extract()의 입력으로 사용하는 것을 특징으로 하는 공유키 확장 방법.
  11. 제 8 항에 있어서,
    상기 적어도 하나의 양자암호 알고리즘은,
    PQC(Post Quantum Cryptography)-KEM(Key Encapsulation Mechanism) 알고리즘을 포함하며,
    상기 설정단계는,
    상기 PQC-KEM 알고리즘을 따르는 경우, 개인키와 쌍으로 생성되는 공개키를 사용한 캡슐화(Encapsulate), 또는 상기 캡슐화(Encapsulate)를 통해 생성되는 암호문(Ciphertext)을 사용한 역캡슐화(Decapsulate)를 통해서 공유키(PQC-SharedKey)를 설정하는 것을 특징으로 하는 공유키 확장 방법.
  12. 제 11 항에 있어서
    상기 설정단계는,
    상기 통신 장치가 클라이언트인 경우, 상기 개인키와 쌍으로 생성되는 상기 공개키를 ClientHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 서버로 전송하며,
    상기 통신 장치가 서버인 경우, 상기 ClientHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 클라이언트로부터 수신되는 상기 공개키, 및 난수를 사용한 캡슐화(Encapsulate)를 통해 상기 공유키(PQC-SharedKey)와 상기 암호문(Ciphertext)을 생성하며,
    상기 통신 장치가 클라이언트인 경우, ServerHello의 확장 메시지(EXT_PQC_KEY_SHARE)를 이용하여 서버로부터 수신되는 상기 암호문(Ciphertext), 상기 개인키, 및 상기 공개키를 사용한 역캡슐화(Decapsulate)를 통해서 상기 공유키(PQC-SharedKey)를 생성하는 것을 특징으로 하는 공유키 확장 방법.
  13. 삭제
  14. 삭제
  15. 제 8 항, 제 10 항 내지 제 12 항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능 기록매체.
  16. 하드웨어와 결합되어, 제 8 항, 제 10 항 내지 제 12 항 중 어느 한 항의 방법을 실행시키기 위해 매체에 저장된 컴퓨터 프로그램.
KR1020230074202A 2022-06-17 2023-06-09 Tls 프로토콜 기반 통신 장치 및 공유키 확장 방법 KR102609406B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20220074005 2022-06-17
KR1020220074005 2022-06-17

Publications (1)

Publication Number Publication Date
KR102609406B1 true KR102609406B1 (ko) 2023-12-04

Family

ID=89165090

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230074202A KR102609406B1 (ko) 2022-06-17 2023-06-09 Tls 프로토콜 기반 통신 장치 및 공유키 확장 방법

Country Status (1)

Country Link
KR (1) KR102609406B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11218301B1 (en) * 2019-09-10 2022-01-04 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography communications channels
US20220006835A1 (en) * 2020-07-02 2022-01-06 International Business Machines Corporation Tls integration of post quantum cryptographic algorithms
KR20220004877A (ko) * 2020-07-03 2022-01-12 한국전자통신연구원 양자 키 분배 노드 장치 및 그 장치에서의 양자키 분배 방법
US20220038269A1 (en) * 2020-07-29 2022-02-03 John A. Nix Device Securing Communications Using Two Post-Quantum Cryptography Key Encapsulation Mechanisms
WO2022115491A1 (en) * 2020-11-24 2022-06-02 Nix John A Multiple post-quantum cryptography key encapsulations with authentication and forward secrecy

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11218301B1 (en) * 2019-09-10 2022-01-04 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography communications channels
US20220006835A1 (en) * 2020-07-02 2022-01-06 International Business Machines Corporation Tls integration of post quantum cryptographic algorithms
KR20220004877A (ko) * 2020-07-03 2022-01-12 한국전자통신연구원 양자 키 분배 노드 장치 및 그 장치에서의 양자키 분배 방법
US20220038269A1 (en) * 2020-07-29 2022-02-03 John A. Nix Device Securing Communications Using Two Post-Quantum Cryptography Key Encapsulation Mechanisms
WO2022115491A1 (en) * 2020-11-24 2022-06-02 Nix John A Multiple post-quantum cryptography key encapsulations with authentication and forward secrecy

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
E. Rescorla, The Transport Layer Security (TLS) Protocol Version 1.3, Request for Comments: 8446 (2018.08.)* *

Similar Documents

Publication Publication Date Title
CN111740828B (zh) 一种密钥生成方法以及装置、设备、加解密方法
US11038854B2 (en) Terminating SSL connections without locally-accessible private keys
CN107018134B (zh) 一种配电终端安全接入平台及其实现方法
US10270601B2 (en) Providing forward secrecy in a terminating SSL/TLS connection proxy using ephemeral Diffie-Hellman key exchange
CN102318258B (zh) 基于身份的认证密钥协商协议
US20040161110A1 (en) Server apparatus, key management apparatus, and encrypted communication method
US11212265B2 (en) Perfect forward secrecy (PFS) protected media access control security (MACSEC) key distribution
CN104660602A (zh) 一种量子密钥传输控制方法及系统
CN107172001B (zh) 网站代理服务器的控制方法及装置、密钥代理服务器
US20050160269A1 (en) Common security key generation apparatus
CN115174267B (zh) 一种tls协议协商方法、设备及介质
CN115174061A (zh) 基于区块链中继通信网络系统的消息传输方法及装置
CN114142995B (zh) 面向区块链中继通信网络的密钥安全分发方法及装置
KR20210061801A (ko) Mqtt-sn 프로토콜의 보안을 위한 mqtt-sn 보안 관리 방법 및 시스템
EP3216163B1 (en) Providing forward secrecy in a terminating ssl/tls connection proxy using ephemeral diffie-hellman key exchange
US20210218581A1 (en) Computing device and method for performing a secure neighbor discovery
CN113612612A (zh) 一种数据加密传输方法、系统、设备及存储介质
US11616640B2 (en) Method for encryption and decryption, programmable switch and computer program product
KR102609406B1 (ko) Tls 프로토콜 기반 통신 장치 및 공유키 확장 방법
CN113810432B (zh) 一种量子安全的数据加密方法、加密设备及存储介质
CN112787819B (zh) 一种工业控制安全通信系统及通信方法
CN113452514B (zh) 密钥分发方法、装置和系统
CN109361684B (zh) 一种vxlan隧道的动态加密方法和系统
CN115669209A (zh) 接入认证方法、装置、设备及存储介质
JP2016039456A (ja) 通信システム、通信方法、ノード、データ処理装置、及び通信制御装置

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant