# 화이트닝 (Whitening)

화이트닝은 데이터나 신호를 백색 잡음처럼 치우침과 상관관계가 없는 형태로 바꾸는 처리로, 암호학에서는 주로 블록 암호의 입·출력에 키 값을 XOR하는 키 화이트닝을 뜻합니다.

## 자세히 알아보기

백색 잡음은 모든 주파수에 에너지가 고르게 퍼져 있어 패턴이 보이지 않는 신호입니다. 일반 신호 처리와 통계에서 화이트닝은 데이터의 주파수 스펙트럼을 평평하게 하거나 변수 간 상관관계를 없애는 변환을 말하며, 머신러닝 전처리(PCA·ZCA 화이트닝)에도 쓰입니다.

암호학에서는 두 가지 뜻이 중요합니다.

**키 화이트닝(key whitening)**: 블록 암호의 첫 라운드 전과 마지막 라운드 후에 추가 키 값을 XOR하는 기법입니다. 공격자가 암호 내부 라운드 함수의 입력과 출력을 직접 볼 수 없게 만들어 분석을 어렵게 합니다. 리베스트가 제안한 DESX는 DES 앞뒤에 각각 64비트 키를 XOR해 전수 조사 비용을 크게 늘렸고, Twofish도 입력·출력 화이트닝을 사용합니다. AES의 첫 AddRoundKey 단계도 같은 역할을 합니다. 계산 비용은 XOR 두 번뿐이라 매우 저렴합니다.

**난수 화이트닝**: 하드웨어 난수 발생기가 내놓는 원시 비트는 0과 1의 비율이 치우치거나 앞뒤 비트가 연관될 수 있습니다. 폰 노이만 디바이어싱이나 암호학적 해시를 이용한 후처리로 이 치우침을 제거하는 것도 화이트닝이라고 부릅니다. 다만 화이트닝은 엔트로피를 새로 만들어 내지 못합니다. 원래 무작위성이 부족하면 결과가 고르게 "보일" 뿐 예측 가능할 수 있습니다.

## 블록체인·암호화폐에서는

지갑이 개인 키와 니모닉을 만들 때 쓰는 난수는 운영체제의 암호학적 난수 생성기를 거치며, 그 내부에서 하드웨어 잡음원의 출력이 후처리(화이트닝)됩니다. 엔트로피가 부족한 난수로 만든 키는 실제로 대규모 도난으로 이어진 사례가 있으므로, 직접 만든 난수 대신 검증된 생성기를 써야 합니다.

### 키 화이트닝이 효과적인 이유

DESX를 예로 들면, 암호화는 C = K2 ⊕ DES_K(P ⊕ K1) 형태입니다. 공격자가 DES 키 K만 전수 조사하려 해도 앞뒤 화이트닝 키 K1, K2를 모르면 DES 내부에 들어가는 실제 입력과 나오는 출력을 알 수 없습니다. 그 결과 단순 전수 조사의 비용이 크게 늘어납니다. 다만 화이트닝은 기반 암호의 근본적 약점, 예를 들어 짧은 블록 크기 문제까지 해결하지는 못합니다. DES와 DESX 모두 오늘날에는 새 시스템에 쓰지 않으며, AES를 쓰는 것이 표준입니다.

## 쉽게 말하면

얼룩이 있는 천을 표백하는 것이 아니라, 무늬가 드러나지 않도록 고르게 섞어 회색 잡음처럼 만드는 작업입니다.

---
출처: https://achivx.kr/glossary/whitening-%ED%99%94%EC%9D%B4%ED%8A%B8%EB%8B%9D/ · ACHIVX 용어 사전 · 수정일 2026-10-20
