Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

정보 보안에서 확장 순열(Expansion Permutation)이란 무엇일까?

확장 순열의 개념

확장 순열(Expansion Permutation)은 DES 암호화 과정에서 데이터의 오른쪽 절반(R)을 32비트에서 48비트로 확장하는 연산입니다. 이 과정에서는 비트의 순서가 변경되고, 특정 비트들이 의도적으로 반복됩니다.

확장 순열의 두 가지 목적

이 연산에는 다음과 같은 두 가지 핵심 목적이 있습니다.

  • 오른쪽 절반을 XOR 연산을 수행할 수 있도록 라운드 키와 같은 크기(48비트)로 만드는 것
  • 이후 S-box 치환 단계에서 압축될 수 있는 더 긴 결과값을 생성하는 것

또한 하나의 비트가 두 개의 치환에 영향을 미칠 수 있게 되어, 출력 비트가 입력 비트에 의존하는 정도가 더 빠르게 확산됩니다. 이러한 현상을 눈사태 효과(Avalanche Effect)라고 부릅니다.

DES의 설계 목표

DES는 암호문의 모든 비트가 평문의 각 비트와 키의 각 비트에 최대한 빠르게 의존하도록 설계되었습니다. 확장 순열은 바로 이 목표를 달성하기 위한 중요한 메커니즘입니다.

확장 순열의 동작 방식

  • 32비트 오른쪽 평문(Right Plain Text)은 4비트씩 총 8개의 블록으로 나뉩니다.
  • 각 4비트 블록은 대응하는 6비트 블록으로 확장됩니다. 즉, 4비트 블록마다 2개의 추가 비트가 삽입되며, 이 추가 비트는 해당 블록의 첫 번째 비트와 네 번째 비트를 반복한 것입니다.

두 번째와 세 번째 비트는 입력된 그대로 기록됩니다. 첫 번째 입력 비트는 두 번째 출력 위치로 이동하며, 동시에 48번째 출력 위치에도 배치됩니다. 마찬가지로 32번째 입력 비트는 47번째 출력 위치와 첫 번째 출력 위치 양쪽에 모두 나타납니다.

결국 이 단계는 출력을 생성하면서 입력 비트의 확장과 순열을 동시에 수행합니다. 첫 번째 입력 비트는 두 번째 및 48번째 출력 위치로 들어가고, 두 번째 입력 비트는 세 번째 출력 위치로 들어가는 방식으로 진행됩니다.

RPT 확장 순열 테이블

3212345456789
8910111213121314151617
161718192021202122232425
24252627282928293031321

XOR 연산과의 연계

앞선 키 변환 단계에서 56비트 키는 이미 48비트로 압축되어 있습니다. 이어서 확장 순열 과정이 32비트 RPT(오른쪽 평문)를 48비트로 확장합니다. 그다음 48비트 키가 48비트 RPT와 XOR 연산되며, 그 결과물은 다음 단계인 S-box 치환으로 전달됩니다.

요약하자면, 확장 순열이 완료된 후 DES는 확장된 오른쪽 절반과 라운드 키에 대해 XOR 연산을 수행하게 됩니다.