2.2. OpenSSL 암호화 후 알고리즘
OpenSSL 3.5가 포함된 RHEL 9.7부터 OpenSSL TLS 툴킷을 사용하여 키 생성, 서명 메시지 확인, 서명 확인, ML-DSA post-quantum 알고리즘으로 X.509 인증서를 생성할 수 있습니다.
OpenSSL 3.5에서 hybrid ML-KEM(Module-Lattice-Based Key-Encapsulation Mechanism) 방법이 TLS 1.3 핸드셰이크에서 선호됩니다. OpenSSL에는 기존 알고리즘과 ML-KEM이 모두 포함된 키가 포함되어 있습니다. ML-KEM을 사용하면 TLS 연결 시작이 약간 지연됩니다. 그러나 추가 통신은 더 효율적인 대칭 키를 사용하므로 핸드셰이크 후에도 성능에 영향을 미치지 않습니다.
RHEL 9에서 PQC 알고리즘을 사용하려면 update-crypto-policies --set DEFAULT: 명령을 사용하여 현재 시스템 전체 암호화 정책에 PQ 하위 정책을 적용해야 합니다.
PQ
예 2.1. OpenSSL의 키에 ML-DSA 사용
$ OpenSSL genpkey -algorithm mldsa65 -out < mldsa-privatekey.pem>- ML-DSA-65 알고리즘을 사용하여 개인 키를 만듭니다.
$ OpenSSL pkey -in < mldsa-privatekey.pem > -pubout -out < mldsa-publickey.pem>- ML-DSA-65 암호화 개인 키를 기반으로 공개 키를 생성합니다.
$ OpenSSL dgst -sign < mldsa-privatekey.pem > -out < signature_message>- 개인 키를 사용하여 메시지에 서명합니다.
$ OpenSSL dgst -verify < mldsa-publickey.pem > - signature_message>- 공개 키를 사용하여 ML-DSA-65 서명을 확인합니다.
예 2.2. OpenSSL의 인증서에 ML-DSA 사용
현재 쿼리 후 서명을 지원하지 않으므로 ML-DSA 서명에서 로컬 CA 또는 자체 서명 인증서만 사용할 수 있습니다. 예를 들면 다음과 같습니다.
$ openssl req \
-x509 \
-newkey mldsa65 \
-keyout <localhost-mldsa.key> \
-subj /CN=<localhost> \
-addext subjectAltName=DNS:<localhost> \
-days <30> \
-nodes \
-out <localhost-mldsa.crt>
예 2.3. PQC 키 교환 및 PQC 인증서로 연결 설정
OpenSSL 서버와 클라이언트는 기존 알고리즘만 사용하는 post-quantum 연결과 연결을 설정할 수 있습니다.
$ openssl s_server \
-cert <localhost-mldsa.crt> -key <localhost-mldsa.key> \
-dcert <localhost-rsa.crt> -dkey <localhost-rsa.key> >/dev/null &
$ openssl s_client \
-connect <localhost:4433> \
-CAfile <localhost-mldsa.crt> </dev/null \
|& grep -E '(Peer signature type|Negotiated TLS1.3 group)'
Peer signature type: mldsa65
Negotiated TLS1.3 group: X25519MLKEM768
예 2.4. post-post-quantum 암호화 알고리즘만 사용하는 연결 설정
$ openssl s_client \
-connect <localhost:4433> \
-CAfile <localhost-rsa.crt> \
-sigalgs 'rsa_pss_pss_sha256:rsa_pss_rsae_sha256' \
-groups 'X25519:secp256r1:X448:secp521r1:secp384r1' </dev/null \
|& grep -E '(Peer signature type|Server Temp Key)'
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
기존 인증서(RSA, ECDSA 및 EdDSA) 및 post-quantum 인증서를 동시에 사용하도록 서버를 구성할 수 있습니다. 서버는 클라이언트가 선호하고 지원하는 인증서(새 클라이언트의 경우 post-quantum) 및 기존 인증서를 자동으로 투명하게 선택합니다.
자세한 내용은 시스템의 openssl(1), openssl-genpkey(1), openssl-pkey(1), openssl-dgst(1) 및 openssl-verify(1) 도움말 페이지를 참조하십시오.