본문 바로가기

OS & network/linux

오라클 리눅스 10을 이용한 양자 내성 암호화 활성화

안녕하세요. 테크넷 마스터 김재벌 입니다.

 

오라클 리눅스 10(OL10)의 기능 중에 많은 분들이 관심을 가지고 있지만, 쉽게 접근하지 못했던 기술....퀀텀..(양자) 컴퓨팅 기술의 테크 프리뷰가 탑재되어 있다는 사실 아시나요?

 

양자 컴퓨팅에 대항하는 내성 암호화 기술을 탑재 (PQC) 하고 있는데, 이는 양자 기술은 아니죠.

 

따라서, 이는 정확한 표현은 아닙니다.

 

정확하게 양자 기술과 양자 내성 보안 암호화은 전혀 다른 것이니까요.

 

양자컴퓨팅이 발전하면 기존 암호화가 쉽게 무력화 될 수 있다는 점에서 이에 대한 내성을 갖도록 설계된 암호화 기술이 양자 내성 암호화 기술이죠.

 

PQC(Post-Quantum Cryptography, 양자내성암호)는 강력한 연산 능력을 갖춘 양자 컴퓨터의 공격을 견딜 수 있도록 설계된 차세대 암호화 알고리즘입니다.

기존의 RSA나 ECC 암호 체계는 양자 알고리즘에 의해 쉽게 해독될 수 있어, 민감한 데이터를 보호하기 위한 필수적인 대체 기술로 주목받고 있습니다.

 

왜 PQC가 필요한가요? 현재 널리 사용되는 공개키 암호화 방식(RSA, 타원곡선 암호 등)은 큰 숫자를 소인수분해하거나 이산대수를 구하는 수학적 난제에 기반을 두고 있습니다.

하지만 충분한 성능을 갖춘 양자 컴퓨터는 '쇼어 알고리즘(Shor's Algorithm)'을 통해 이러한 난제들을 순식간에 풀어버릴 수 있습니다.

따라서 미래의 양자 컴퓨터가 상용화되었을 때 기존 암호화 체계가 무력화되는 것을 막기 위해, 양자 컴퓨터로도 풀기 어려운 복잡한 수학적 문제(격자 기반, 다변수 기반 등)를 적용한 새로운 보안 시스템이 바로 PQC입니다.

 

PQC 도입 및 표준화 현황미국 국립표준기술연구소(NIST)는 PQC 알고리즘의 표준화를 주도하고 있으며, 이미 최종 표준을 발표하고 지속적으로 알고리즘을 확장 및 추가하고 있습니다.

한국 또한 과학기술정보통신부와 한국인터넷진흥원(KISA)을 중심으로 공공 인프라에 한국형 양자내성암호(KPQC) 및 표준 PQC를 적용하는 사업을 진행 중입니다.

 

또한 국내외 금융 및 빅테크 기업들은 기존 암호 체계와 PQC를 동시에 사용하는 '하이브리드(Hybrid)' 방식을 도입해, 인프라를 전면 교체하지 않고도 선제적으로 양자 보안을 강화하고 있습니다.

 

 

양자 컴퓨터는 현재 RSA·ECDSA 같은 전통 공개키 암호를 이론적으로 해독할 수 있습니다. 

OL10은 OpenSSL에 NIST가 표준화한 격자 기반·해시 기반 포스트 퀀텀 알고리즘을 실험적(Experimental)으로 지원합니다.

 

실험적 지원이라는 점은 아직은 공식 제공할 정도로 안정성이 확보되지 않은 경우 제공되는 것을 말합니다.

따라서, 실무 환경에 적용해서는 안됩니다... 그 누구도 보증해 주지 않으며, 예측 불가능한 오류 발생시 대응이 어렵습니다.

 

오라클 리눅스 10(OL10)에서의  지원하는 NIST 표준 메커니즘

 

ML-KEM (FIPS 203)
키 캡슐화 메커니즘. TLS 키 교환을 양자 내성으로 대체. ML-KEM-512/768/1024 레벨 지원.

ML-DSA / SLH-DSA (FIPS 204/205)
디지털 서명 알고리즘. 기존 ECDSA·RSA 서명을 양자 내성으로 대체. OL 10.1에서 추가.

 

 

PQC 정책을 활성화하려면 아래 단계에 따라 진행합니다.


1. 필요한 rpm 패키지를 설치합니다. 

   이 패키지는 ol10_appstream 저장소에서 사용할 수 있습니다. 

# dnf install crypto-policies-pq-preview

 

2. 다음 명령어를 실행하여 PQC 암호화 정책을 활성화 합니다.

# update-crypto-policies --set DEFAULT:TEST-PQ

 

3. 서버 재부팅  

# reboot

 

4. 다음 파일에는 지원되는 알고리즘 목록이 포함되어 있습니다. 

# cat /usr/share/crypto-policies/policies/modules/TEST-PQ.pmod

 

 

ML-KEM 키 캡슐화 예

# OpenSSL 버전 및 PQC 지원 확인
openssl version
openssl list -key-exchange-algorithms | grep -i "ml\|kem"

# ML-KEM-768 키 쌍 생성
openssl genpkey -algorithm ml-kem-768 \
  -out mlkem768_priv.pem

# 공개키 추출
openssl pkey -in mlkem768_priv.pem \
  -pubout -out mlkem768_pub.pem

# 키 캡슐화 (encapsulation) — 비밀키 생성
openssl pkeyutl -encap \
  -inkey mlkem768_pub.pem -pubin \
  -secret shared_secret.bin \
  -out ciphertext.bin

# 키 복원 (decapsulation)
openssl pkeyutl -decap \
  -inkey mlkem768_priv.pem \
  -in ciphertext.bin \
  -out recovered_secret.bin

# 비밀키 일치 여부 확인
diff shared_secret.bin recovered_secret.bin \
  && echo "✓ 키 캡슐화 성공" || echo "✗ 불일치"


TLS에서 하이브리드 PQC 적용 (실험적 지원)

# 하이브리드 키 교환 설정
# /etc/ssl/openssl.cnf 에 추가:
[openssl_init]
providers = provider_sect

[provider_sect]
default = default_sect
oqsprovider = oqs_sect

[oqs_sect]
activate = 1

# TLS 서버에서 ML-KEM 하이브리드 암호 그룹 사용
openssl s_server -key server.key -cert server.crt \
  -groups x25519_mlkem768 -port 4433