피드로 돌아가기
Dev.toSecurity
원문 읽기
ML-KEM-768 도입을 통한 양자 내성 암호화 및 2KB 핸드셰이크 설계
My road to ML-KEM-768 over X25519 for my messaging app
AI 요약
Context
X25519 기반의 기존 ECC 암호체계가 양자 컴퓨터의 Shor 알고리즘으로 인해 해독될 위험 존재. 특히 장기적 비밀 유지가 필요한 메시징 앱 특성상 'Harvest Now, Decrypt Later' 공격에 취약한 구조적 한계 파악.
Technical Solution
- NIST FIPS 203 표준인 ML-KEM-768을 채택하여 Post-quantum 보안성 확보
- 보안 등급(AES-192 상당)과 오버헤드 사이의 최적점인 768 파라미터 세트 선택
- KEM의 Shared Secret을 ChaCha20-Poly1305의 키로 직접 사용하지 않고 HKDF를 통해 도메인 분리 및 메시지별 키 파생
- 세션 수립 시에만 1,088 bytes의 Ciphertext를 전송하고 세션 내에서는 캐싱된 Room Secret을 사용하는 효율적 핸드셰이크 설계
- HKDF info 필드에 버전 관리(v3)를 도입하여 향후 알고리즘 교체 시 하위 호환성 유지
- 단순성 및 감사 효율성 증대를 위해 하이브리드 방식 대신 Pure ML-KEM-768 구조 채택
실천 포인트
- Post-quantum 도입 시 보안 요구 수준에 맞는 파라미터(512/768/1024) 선정 여부 검토 - KEM-Cipher 간 결합 시 HKDF를 통한 Domain Separation 적용 여부 확인 - Kotlin Multiplatform 환경에서 플랫폼별(iOS/Android) 암호화 키 직렬화 호환성 사전 테스트 - 알고리즘 로테이션을 대비한 버전 관리 식별자(Version Tag) 포함 여부 점검