0Pricing
Cryptology Academy · 강의

SIV 모드: 논스 오용에 강한 AEAD

Synthetic IV(SIV) 모드와 이것이 치명적인 논스 재사용을 방지하는 방식을 살펴봅니다.

SIV 모드: 논스 오용에 강한 AEAD은(는) CoddyKit의 무료 Cryptology Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cryptology Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

논스 재사용: 치명적인 실패

AES-GCM과 같은 CTR 모드 기반 AEAD 암호는 모든 암호화에 고유한 논스를 요구합니다. 동일한 키와 함께 같은 논스를 재사용하면 공격자는 두 암호문을 XOR하여 두 평문의 XOR을 복구할 수 있고, 이로 인해 기밀성이 즉시 무너집니다.

GCM 논스 재사용은 인증 키를 유출합니다

AES-GCM에서 논스를 재사용하는 것은 일반 CTR 모드에서 재사용하는 것보다 훨씬 치명적입니다. 동일한 논스와 키로 두 메시지를 암호화하면 공격자는 GHASH 인증 키 H를 완전히 복구할 수 있습니다. H를 알고 있으면 공격자는 임의의 인증된 메시지를 위조할 수 있습니다.

합성 IV 모드 소개

RFC 5297에 정의된 합성 IV(SIV) 모드는 논스 재사용 취약점을 제거하도록 설계되었습니다. 무작위 또는 카운터 기반 논스를 요구하는 대신, SIV는 의사 난수 함수(PRF)를 사용하여 평문 자체에서 IV를 합성 방식으로 도출하므로 결정적이며 논스 오용에 강합니다.

SIV 논스 도출 메커니즘

SIV에서는 논스(합성 IV)를 SIV = PRF(key, plaintext, associated_data)로 계산합니다. 그런 다음 이 IV를 CTR 모드 암호화를 위한 카운터로 사용합니다. IV가 평문에서 도출되므로 동일한 평문을 암호화하면 항상 동일한 암호문이 생성됩니다.

SIV에서 논스를 재사용할 때의 결과

SIV에서 동일한 평문을 두 번 암호화하여 논스를 재사용하더라도, 관찰자는 동일한 메시지가 두 번 전송되었다는 사실만 알 수 있습니다. 평문 내용 자체는 계속 숨겨집니다. 이는 논스를 재사용하면 평문의 XOR가 노출되는 CTR 기반 AEAD보다 크게 개선된 점입니다.

AES-SIV 구성

AES-SIV(RFC 5297)는 S2V 함수(AES-CMAC을 기반으로 연결된 PRF)를 사용하여 합성 IV를 생성한 다음, 두 번째 하위 키를 사용하는 AES-CTR 암호화를 수행합니다. AES 키가 두 개 필요하므로 단일 키 AEAD 모드보다 키 관리가 약간 더 복잡합니다.

AES-GCM-SIV: 현대적 대안

AES-GCM-SIV(RFC 8452)는 GCM의 성능과 SIV와 유사한 안전성을 결합하도록 설계된, 더 효율적인 논스 오용 방지 AEAD입니다. 논스에서 메시지별 하위 키를 도출하고 Polyval 인증자를 사용하므로, 논스 오용 방지 기능을 유지하면서 AES-SIV보다 더 나은 성능을 제공합니다.

두 번의 처리 단계에 따른 성능 비용

SIV는 데이터를 두 번 처리해야 합니다. 한 번은 합성 IV를 계산하고, 다른 한 번은 암호화하는 데 사용됩니다. 따라서 AES-GCM과 같은 한 번만 처리하는 AEAD 모드와 비교하면 계산 비용이 대략 두 배가 됩니다. 지연 시간에 민감하거나 처리량이 높은 애플리케이션에서는 이 추가 비용을 고려해야 합니다.

GCM보다 SIV를 우선해야 하는 경우

논스 생성의 신뢰성이 낮거나, 애플리케이션이 상태를 저장하지 않아 논스 카운터를 관리할 수 없거나, 결정적 암호화가 요구 사항일 때 SIV를 우선합니다. 예를 들어 인덱싱을 위해 동일한 값이 항상 동일한 암호문을 생성해야 하는 데이터베이스 필드 암호화가 이에 해당합니다.

상태 비저장 서비스와 결정적 암호화

복제본 간에 논스 상태를 조정할 수 없는 상태 비저장 마이크로서비스는 SIV 모드에 특히 적합합니다. 전역 카운터를 사용하다가 논스를 실수로 재사용할 위험을 감수하는 대신, SIV가 자동으로 안전성을 제공합니다. 키 래핑(RFC 3394)에도 결정적 키 암호화를 위해 SIV 원칙이 사용됩니다.

실제 SIV 사용

AES-SIV는 libsodium(최근 버전에서는 crypto_aead_aes256gcm_siv로 제공)과 Google Tink를 비롯한 주요 암호 라이브러리에서 사용할 수 있습니다. AES-GCM-SIV는 BoringSSL과 Go 표준 라이브러리에서 지원됩니다. 논스 관리가 어려울 때 이러한 방식은 표준 AES-GCM보다 안전한 기본 선택입니다.

SIV 논스 오용 점검

AES-SIV에서 동일한 키로 동일한 평문을 두 번 암호화하면 어떻게 될까요?

수업 요약: 논스 안전성을 위한 SIV

SIV 모드는 평문 자체에서 IV를 도출하여 논스 재사용으로 인한 치명적인 문제를 없앱니다. 논스를 재사용해도 동일한 메시지가 전송되었다는 사실만 드러날 뿐, 내용은 드러나지 않습니다. AES-GCM-SIV(RFC 8452)는 상태 비저장 또는 결정적 암호화가 필요한 현대 애플리케이션에 효율적인 논스 오용 방지 기능을 제공합니다.

자주 묻는 질문

“SIV 모드: 논스 오용에 강한 AEAD” 강의는 무료인가요?

네 — “SIV 모드: 논스 오용에 강한 AEAD” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cryptology Academy 강의 전체를 잠금 해제할 수 있습니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“SIV 모드: 논스 오용에 강한 AEAD”에서 뭘 배우나요?

Synthetic IV(SIV) 모드와 이것이 치명적인 논스 재사용을 방지하는 방식을 살펴봅니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cryptology Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cryptology Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“SIV 모드: 논스 오용에 강한 AEAD” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cryptology Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cryptology Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 암호화 후 MAC이 MAC 후 암호화보다 뛰어난 이유
  2. SIV 모드: 논스 오용에 강한 AEAD
  3. AEGIS: 고속 인증 암호화
  4. 프로덕션 시스템에 사용할 AEAD 선택
← Cryptology Academy(으)로 돌아가기