# 균형 결합기 (Balanced Combiner)

암호학적 맥락에서 결합기(combiner)는 두 개의 입력 값을 혼합하여 하나의 결과 값을 만들어 내는 구성 요소입니다. 스트림 암호에서는 평문과 키 스트림을 결합해 암호문을 만드는 단계가 대표적입니다. 균형 결합기(balanced combiner)는 각 입력과 결과 사이에 균형 잡힌 관계를 제공해야 합니다. 정적으로 균형 잡힌 결합기에서는 한 입력에 어떤 값이 오든, 다른 입력에 적절한 값을 고르면 원하는 특정 결과 값을 만들 수 있습니다. 그래서 출력 값만 알아서는 입력에 대한 어떠한 정보도, 심지어 통계적 정보도 얻을 수 없습니다.

## 정적으로 균형 잡힌 결합기: 출력이 입력을 드러내지 않는 성질

특정 결과를 얻었다고 가정해 봅시다. 정적으로 균형 잡힌 결합기에서는 두 번째 입력을 알맞게 고르기만 하면 그 결과가 첫 번째 입력의 *어떤* 값에서든 나올 수 있습니다. 따라서 두 번째 입력이 고르게 분포되어 있다면 결과의 분포도 첫 번째 입력과 무관하게 고르며, 출력에서 입력에 대한 통계적 단서가 나오지 않습니다. 다만 이 성질은 결합기 단계에 대한 것이며, 전체 암호의 안전성은 키와 다른 구성 요소에 따라 달라집니다.

귀금속 상인에 비유할 수 있습니다. 금과 은으로 합금 “A”를 만들 때 금 1kg과 은 9kg을 쓸 수도, 금 5kg과 은 5kg을 쓸 수도 있고, 어떤 조합으로도 *정확히 같은* 합금 “A”가 나온다면, 합금만 분석해서는 금과 은을 각각 얼마나 썼는지 전혀 알 수 없습니다.

## 예: XOR, 모듈러 덧셈, 라틴 방진

- **XOR:** 가장 흔한 균형 결합기입니다. 결과 c = a ⊕ b에서 어떤 a와 어떤 c가 주어져도 b = a ⊕ c로 정확히 하나의 b가 정해집니다. 버냄(Vernam) 암호와 대부분의 스트림 암호가 평문과 키 스트림을 XOR로 결합합니다.
- **모듈러 덧셈:** c = (a + b) mod n도 같은 성질을 가집니다. 어떤 a와 c에 대해서도 b = (c − a) mod n이 하나씩 존재합니다.
- **라틴 방진:** n×n 표에서 각 행과 각 열에 n개의 기호가 정확히 한 번씩 나타나도록 채운 것입니다. 행을 한 입력, 열을 다른 입력으로 보고 칸의 기호를 결과로 쓰면 균형 결합기가 됩니다. 표를 키에 따라 바꾸면 XOR와 달리 비선형 결합기를 만들 수 있습니다.

XOR와 모듈러 덧셈은 균형적이지만 선형이어서, 평문과 암호문을 함께 알면 키 스트림이 바로 드러납니다. 이 때문에 키 의존적인 라틴 방진처럼 균형을 유지하면서도 비선형인 결합기가 연구되었습니다.

## 장점

- **정보 비노출:** 입력과 출력 간의 균형 잡힌 관계 덕분에 공격자가 출력만으로 원래 입력을 추론하기 어렵습니다.
- **통계적 공격에 대한 저항:** 특히 정적으로 균형 잡힌 결합기는 출력에 대한 통계적 분석이 입력에 대한 정보를 드러내지 못하게 합니다.

## 단점

- **설계의 어려움:** 균형적이면서 비선형이고 효율적인 결합기를 설계하고 구현하는 것은 복잡합니다.
- **성능 오버헤드:** 키에 따라 바뀌는 표를 쓰는 결합기는 단순한 XOR보다 계산과 메모리가 더 듭니다.

## 응용 분야

1. **스트림 암호:** 평문과 키 스트림을 결합해 암호문을 만들고, 같은 결합기의 역연산으로 복호화합니다.
2. **블록 암호와 해시 함수:** 라운드 안에서 데이터와 라운드 키를 섞는 단계에 XOR나 모듈러 덧셈 같은 균형 결합 연산이 쓰입니다.
3. **의사 난수 생성기:** 여러 생성기의 출력을 섞어 고르게 분포된 시퀀스를 만드는 데 쓰입니다.

---
출처: https://achivx.kr/glossary/balanced-combiner-%EA%B7%A0%ED%98%95-%EA%B2%B0%ED%95%A9%EA%B8%B0/ · ACHIVX 용어 사전 · 수정일 2026-10-20
