# 펜싱 계층 (Fencing)

펜싱(fencing), 또는 펜싱 계층(fencing layer)은 암호 설계에서 작은 치환 표(S-box)를 한 줄로 나란히 늘어놓은 층을 말합니다. 블록 암호의 도식에서 작은 치환 상자들이 양쪽 데이터 사이에 말뚝 울타리(picket fence)처럼 서 있다고 해서 붙은 이름으로, 스포츠 '펜싱'과는 관계가 없습니다. 이 용어는 주로 테리 리터(Terry Ritter)의 암호 용어집과 그의 설계에서 쓰였습니다.

## 자세히 알아보기

블록 전체(예: 64비트나 128비트)를 한 번에 치환하는 표는 너무 커서 만들 수 없습니다. 그래서 블록을 8비트 같은 작은 조각으로 나누고, 조각마다 작은 치환 표를 적용합니다. 이렇게 나란히 놓인 치환 표의 줄이 펜싱 계층입니다. 작은 표는 실제로 구현할 수 있고(리터의 표현으로 '실현 가능한' 크기), 키에 따라 표의 내용을 섞어 만들면(키 기반 치환) 표 자체가 비밀이 됩니다.

펜싱 계층 하나만으로는 각 조각이 서로 독립적으로 바뀔 뿐이라 안전하지 않습니다. 한 조각의 변화가 다른 조각으로 퍼지게 하는 확산 계층(선형 혼합, 순열 등)과 번갈아 쌓아야 합니다. 리터는 이런 구조를 가변 크기 블록 암호에 쓰면서, 블록이 커지면 같은 치환 표를 정해진 순서로 재사용하거나 계산된 값으로 표를 고르는 방식으로 계층을 늘릴 수 있다고 설명했습니다. DES 양쪽에 펜싱 계층을 덧붙인 '펜스드 DES(Fenced DES)'가 대표적인 예입니다.

## 다른 암호와의 관계

현대 블록 암호의 대부분은 비슷한 아이디어를 씁니다. AES의 각 라운드에 있는 SubBytes 단계는 16개의 바이트에 같은 8비트 S-box를 나란히 적용하는 치환 층으로, 구조상 펜싱 계층과 닮았습니다. 다만 AES의 S-box는 키와 무관하게 고정되어 있고, 리터가 말한 펜싱은 보통 키로 만든 여러 개의 서로 다른 표를 전제로 한다는 차이가 있습니다. 'AES가 펜싱을 쓴다'고 단정하는 것은 정확한 표현이 아닙니다.

치환 계층은 혼돈(confusion)을 담당하고, 이를 섞는 계층은 확산(diffusion)을 담당합니다. 치환 표가 잘못 설계되면 차분·선형 암호 분석에 약해질 수 있으므로, 표의 성질을 검증하는 것이 중요합니다.

## 쉽게 말하면

긴 문장을 한 번에 바꾸는 대신, 글자 칸마다 작은 변환표를 하나씩 세워 둔 울타리입니다. 울타리만으로는 부족하고, 칸끼리 내용을 뒤섞는 단계와 함께 써야 튼튼해집니다.

## 예시

128비트 블록을 16개의 바이트로 나누고, 키로 섞어 만든 서로 다른 256칸짜리 치환 표 16개를 각 바이트에 하나씩 적용하면 하나의 펜싱 계층이 됩니다.

---
출처: https://achivx.kr/glossary/fencing-%ED%8E%9C%EC%8B%B1/ · ACHIVX 용어 사전 · 수정일 2026-10-20
