# 균형 블록 믹서 (Balanced Block Mixer)

**균형 블록 믹서**(Balanced Block Mixer, BBM)는 테리 리터(Terry Ritter)가 제안한 블록 암호 구성 요소로, 여러 입력 블록을 같은 개수의 출력 블록으로 섞되 전체 변환이 일대일이고 역변환이 존재하며, 어느 한 입력의 변화가 모든 출력에 반영되도록 만든 가역 혼합 함수입니다.

## 자세히 알아보기

리터의 정의에 따르면 BBM은 m개의 입력 포트와 m개의 출력 포트를 가진 장치로 다음 성질을 가집니다. 첫째, 전체 사상이 일대일이고 가역입니다. 둘째, 각 출력은 모든 입력의 함수입니다. 셋째, 어느 한 입력이 바뀌면 모든 출력이 바뀝니다. 넷째, 다른 입력을 고정한 채 한 입력을 가능한 모든 값으로 바꾸면 각 출력도 가능한 모든 값을 한 번씩 거칩니다. 마지막 성질이 "균형"의 의미이며, 출력이 특정 입력 값 쪽으로 치우쳐 정보를 흘리지 않게 합니다. 데이터 길이가 늘어나지 않는다는 점도 특징입니다.

가장 기본적인 형태는 두 입력·두 출력이며, 서로 직교하는 라틴 방진 한 쌍으로 표현할 수 있습니다. 두 입력이 행과 열을 고르고, 두 방진에서 선택된 칸이 두 출력이 됩니다. 직교성 때문에 출력 쌍이 모든 칸에서 한 번씩만 나타나므로 원래 입력을 되찾을 수 있습니다.

선형 형태는 mod 2 다항식 유한체에서 계산합니다. 리터가 제시한 식은 X = 3A + 2B, Y = 2A + 3B이며, 같은 식 A = 3X + 2Y, B = 2X + 3Y가 그대로 역변환이 됩니다. 여기서 덧셈은 XOR이고 곱셈은 블록 크기에 맞는 기약 다항식을 법으로 합니다. 이런 선형 혼합은 그 자체로 비밀을 지켜 주지 않으므로, 실제 설계에서는 키에 따라 달라지는 치환 표 같은 비선형 요소와 함께 확산층으로 씁니다. 작은 BBM을 FFT의 버터플라이처럼 여러 단으로 연결하면 큰 블록 전체를 한 번의 통과로 섞을 수 있습니다.

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

BBM은 주로 암호 설계 문헌에서 다루는 개념이며, 주요 블록체인 프로토콜이 표준 구성 요소로 쓰는 것은 아닙니다. 다만 유한체 위의 작은 행렬 곱으로 확산을 얻는 발상은 AES의 MixColumns 단계와 닮았고, 지갑과 노드 통신을 보호하는 대칭 암호를 이해하는 데 도움이 됩니다.

## 쉽게 말하면

두 개의 숫자를 정해진 계산표에 넣어 두 개의 새 숫자를 얻는데, 원래 숫자 중 하나만 바뀌어도 새 숫자 둘이 모두 달라지고, 같은 계산표를 거꾸로 쓰면 원래 숫자를 정확히 되찾을 수 있는 방식과 비슷합니다.

## 예시

2비트 값(유한체 GF(4), 법 다항식 x^2 + x + 1)에서 A = 1, B = 2이면 X = 3·1 + 2·2 = 0, Y = 2·1 + 3·2 = 3입니다. 역변환 3·0 + 2·3 = 1, 2·0 + 3·3 = 2로 A와 B가 복원됩니다. A만 0으로 바꾸면 출력은 (3, 1)이 되어 두 출력이 모두 달라집니다. 16가지 입력 쌍은 모두 서로 다른 출력 쌍으로 대응합니다.

---
출처: https://achivx.kr/glossary/balanced-block-mixer-%EA%B7%A0%ED%98%95-%EB%B8%94%EB%A1%9D-%EB%AF%B9%EC%84%9C/ · ACHIVX 용어 사전 · 수정일 2026-10-20
