Post-Quantum Cryptography, PQC
이 중에서 카이버는 PQC 암호화 표준 후보로 선정
Transport Layer Security 프로토콜
기존에는 RSA, ECC와 같은 공개키 암호화 방식을 사용
하지만 양자 컴퓨터에 의해 깨질 수 있다.
그래서 카이버와 같은 양자 내성 알고리즘이 필요함.
TLS 프로토콜에 카이버를 추가하면 양자 내성 키 교환 메커니즘이 구현됨.
먼저 TCP 핸드 쉐이크로 연결이 수립되면, TLS로 보안 연결 구성
1. 서버가 클라이언트에게 디지털 인증서 제공
RSA보다 diffi-hellman이 최근 트렌드임
그럼 보안이 약하지 않을까?
비대칭키는 연산 속도가 느리다.
그래서 최초 대칭키를 교환하는 건 보안이 높은 비대칭키 방식을 쓰고,
이걸로 대칭키(세션키)가 교환되면, 그 이후 통신은 대칭키로 해서 성능상의 이점을 가져오는 것
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
03:de:50:35:56:d1:4c:bb:66:f0:a3:e2:1b:1b:c3:97
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3
Validity
Not Before: Mar 15 12:00:00 2020 GMT
Not After : Jun 13 12:00:00 2020 GMT
Subject: CN=example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)
Modulus (2048 bit):
00:c3:ac:66:87:03:3f:fb:83:0b:.....(생략).....
Exponent: 65537 (0x10001)
Signature Algorithm: sha256WithRSAEncryption
3d:9f:....(생략)....:ce:38:4a:6d:83:03:04:8c:79:3e
두 통신 당사자가 각자의 공개 키와 개인 키 쌍을 생성,
상대방의 공개 키와 자신의 개인키로 공통의 비밀키를 독립적으로 계산할 수 있음.
X25519Kyber768 알고리즘은 타원 곡선 기반 X25519와 Kyber768 포스트 양자 키 교환 체계를 결합하여 HTTPS 통신 보안을 위한 강력하고 양자 저항적인 솔루션을 제공합니다.
기존 TLS에서 클라이언트에서 Kyber 알고리즘이 추가되서 양자 내성 강화
클라이언트와 서버가 독립적으로 X25519 및 Kyber 키 쌍 생성
(X25519는 Diffie-Hellman 키교환 알고리즘임)
클라이언트가 X25519와 Kyber 공개키를 ClientHello 요청 시 서버로 전송함.
서버는 Kyber의 공개키로 Keber 공유 키와 캡슐화 생성.
서버는 캡슐화된 Kyber 공유키와 자기가 별도로 생성한 X25591 공개키를 클라이언트에세 보냄(ServerHello 응답 시)
클라이언트는 ServerHello 응답에서 X25519 개인 키로 X25519 공유 비밀(공유 키) 도출
그리고 Keyber 개인 키로 캡슐화된 Kyber 공유 키 캡슐 해제.
동시에 서버는 자체 X25519 공개 키 계산
(공유 비밀은 대칭키 계산 시 사용 됨)
공유 비밀(공유 키)은 Diffie-Hellman에서 상대방의 공개키와 개인키를 사용해서 계산 가능.
이 계산 결과로 나온 공유 비밀은 양측이 동일하게 가지데 되며,
세션키 생성에 사용됨.
이렇게 하면 클라이언트와 서버는 각각 X25519와 Kyber768의 공유키를 갖게 됨.
그러나 X25519Kyber768의 공유 키 크기는 기존 X25519보다 훨씬 크기 때문에 키 교환 프로세스의 효율성이 저하될 수 있습니다.
X25519는 키 교환 프로토콜임.
당사자가 안전하게 비밀키를 공유할 수 있게 함.
Kyber768은 암호화 기술임.
TLS 하이브리드 디자인에서 사용되는 Kyber768Draft00 및 X25519 조합에 관한 설명에서, Kyber 키는 각 세션마다 새로 생성되며 일회용으로 사용됩니다. 이는 각 키 교환 세션의 보안을 강화하기 위해 중요하며, 다른 세션들과 키를 공유하지 않습니다. 이러한 방식은 각 세션의 독립성을 보장하며, 한 세션의 키가 손상되어도 다른 세션들은 영향을 받지 않습니다.
TLS 설정에서 X25519와 Kyber768Draft00을 결합할 때, 클라이언트의 공유는 X25519 일시적(ephemeral) 키와 Kyber 공개 키의 조합으로, 서버의 공유는 X25519 일시적 키와 Kyber 암호문의 조합으로 구성됩니다. 이렇게 생성된 공유 비밀키는 세션의 암호화에 사용되며, 두 키에서 파생된 비밀키는 양자 컴퓨터 공격에 대한 강력한 보안을 제공합니다.
이와 같은 일회성 키 생성 방식은 향후 키가 손상되더라도 과거의 통신 내용이 보호받는 포워드 시크릿(forward secrecy) 원칙을 따릅니다. 이 방식은 각 통신 세션의 보안을 강화하는 데 중요한 역할을 합니다.