피드로 돌아가기
My road to ML-KEM-768 over X25519 for my messaging app
Dev.toDev.to
Security

ML-KEM-768 도입을 통한 양자 내성 암호화 및 2KB 핸드셰이크 설계

My road to ML-KEM-768 over X25519 for my messaging app

Martin Kambla2026년 4월 28일6advanced

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) 포함 여부 점검

원문 읽기