# 펜싱 레이어 (Fencing Layer)

펜싱 레이어(fencing layer)는 미국의 암호 설계자 테리 리터(Terry Ritter)가 쓴 용어로, 작은(따라서 구현하기 쉬운) 키 지정 치환 테이블을 블록의 각 위치에 나란히 적용하는 가변 크기 블록 암호의 레이어입니다. 이 레이어는 여러 개의 분리된 키 지정 치환 테이블을 포함합니다. 레이어를 확장 가능하게 만들기 위해 치환은 어떤 순서나 미리 결정된 순서로 재사용하거나, 계산된 값에 의해 선택된 각 위치에서 테이블을 사용할 수 있습니다. 다른 유형의 암호에도 구성 요소로 사용할 수 있습니다.

## 작동 방식

펜싱 레이어는 블록을 바이트와 같은 작은 단위로 나누고, 각 단위를 키로 섞어 만든 작은 치환 테이블(예: 8비트 입력·8비트 출력)에 통과시킵니다. 치환 테이블의 내용은 키에 따라 정해지므로, 키를 모르면 각 위치에서 어떤 값이 어떤 값으로 바뀌는지 알 수 없습니다.

- **치환 재사용:** 테이블 수가 블록의 위치 수보다 적어도 같은 테이블을 정해진 순서로 반복해 쓰면 더 넓은 블록으로 확장할 수 있습니다.
- **계산된 위치 지정:** 각 위치에서 어떤 테이블을 쓸지를 계산된 값으로 정할 수도 있습니다.

## 암호 설계에서의 위치

치환 레이어만으로는 블록 안의 한 위치의 변화가 다른 위치로 퍼지지 않습니다. 그래서 리터의 설계에서 펜싱 레이어는 블록 전체에 영향을 퍼뜨리는 혼합(mixing) 레이어와 번갈아 배치됩니다. 대표적인 예가 DES 블록의 앞뒤를 펜싱 레이어로 감싼 Fenced DES와, 펜싱 레이어와 균형 블록 혼합(Balanced Block Mixing) 레이어를 겹쳐 블록 크기를 자유롭게 정할 수 있게 한 가변 크기 블록 암호(VSBC) 구성입니다. 이 구성에서 치환 레이어는 혼돈(confusion)을, 혼합 레이어는 확산(diffusion)을 주로 담당합니다.

## 장점

- **유연성 및 확장성:** 블록 크기와 사용하는 테이블 수를 보안 및 성능 요구 사항에 맞춰 조정할 수 있습니다.
- **구현 효율성:** 작은 치환 테이블은 하드웨어와 소프트웨어 모두에서 구현하기 쉽고 빠르게 처리할 수 있습니다.
- **보안 강화:** 여러 개의 키 지정 테이블을 쓰면, 특히 혼합 레이어와 결합될 때 암호 분석에 대한 저항력을 높이는 데 기여합니다.

## 단점

- **키 스케줄 복잡성:** 많은 테이블을 키로 생성하고 관리해야 하므로, 주의 깊게 설계하지 않으면 취약점이 생길 수 있습니다.
- **성능 고려 사항:** 테이블 하나하나는 효율적이지만 계산된 테이블 선택이나 복잡한 재사용 패턴에 지나치게 의존하면 리소스가 제한된 환경에서 병목이 생길 수 있습니다.
- **단독 사용의 한계:** 치환만으로는 확산이 생기지 않으므로 혼합 레이어 없이 쓰면 안전한 블록 암호가 되지 않습니다.

이 개념은 단일 유형의 암호에 한정되지 않으며, 다른 블록 암호 설계에도 작은 키 지정 치환을 통한 추가 보호 계층으로 넣을 수 있습니다.

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