피드로 돌아가기
Dev.toSecurity
원문 읽기
ML-KEM-768 도입을 통한 Post-quantum 보안 강화 및 2KB 핸드셰이크 설계
My road to ML-KEM-768 over X25519 for my messaging app
AI 요약
Context
양자 컴퓨터의 Shor's algorithm으로 인해 X25519와 같은 기존 타원 곡선 암호화의 Discrete Log Problem 기반 보안 체계 붕괴 위험 발생. 특히 장기적인 데이터 프라이버시가 요구되는 메시징 앱 특성상 'Harvest Now, Decrypt Later' 공격에 대비한 Post-quantum ready 설계가 필수적인 상황.
Technical Solution
- NIST FIPS 203 표준인 ML-KEM-768을 채택하여 AES-192 수준의 보안 강도와 리소스 효율성의 균형 확보
- KEM을 통한 Shared Secret 생성 후 ChaCha20-Poly1305 대칭키 암호화로 연결하는 계층적 암호 구조 설계
- HKDF와 per-message nonce를 통한 Domain Separation을 적용하여 동일한 Shared Secret 내에서도 메시지별 독립적 키 생성
- 세션 수립 시에만 ML-KEM Ciphertext를 전송하고 이후 세션 내에서는 캐싱된 Room Secret을 활용하는 방식으로 네트워크 오버헤드 최소화
- 버전 기반 Domain Separator("v3") 설계를 통해 향후 Post-quantum 표준 변경 시 하위 호환성을 유지하는 회전 전략 구축
- 복잡성을 줄이기 위해 Hybrid 방식 대신 순수 ML-KEM-768 단일 스택을 채택하여 감사 가능성(Auditability) 향상
실천 포인트
- PQC 도입 시 Public Key 및 Ciphertext 크기 증가에 따른 네트워크 핸드셰이크 비용 검토 - KEM 출력값을 직접 키로 쓰지 말고 HKDF를 통해 도메인 분리 및 키 유도 과정 거칠 것 - Kotlin Multiplatform 환경에서 암호화 키의 직렬화/역직렬화 동작이 플랫폼별로 상이하므로 조기 테스트 수행 - 향후 알고리즘 교체를 대비해 HKDF info 필드 등에 버전 식별자를 포함하는 설계 적용