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

정보 보안에서 DES 키 생성 과정: 단계별 완벽 정리

DES(데이터 암호화 표준)란?

DES(Data Encryption Standard, 데이터 암호화 표준)는 64비트 블록 단위의 평문을 48비트 키를 사용해 암호문으로 변환하는 블록 암호 알고리즘입니다. DES는 대칭키 알고리즘이므로, 정보를 암호화할 때와 복호화할 때 동일한 키가 사용됩니다.

DES는 64비트 평문을 입력받아 64비트 암호문을 생성하며, 복호화 측에서는 64비트 암호문을 입력받아 64비트 평문 블록을 출력합니다. 즉, 동일한 56비트 암호화 키가 암호화와 복호화 양쪽 모두에 활용됩니다.

DES의 핵심 특징은 알고리즘 자체는 고정되어 있고 공개되어 있다는 점입니다. 다만 실제로 사용되는 키는 전송의 발신자와 수신자 사이에서만 공유되는 비밀 값입니다.

DES의 발전된 형태로는 키 길이를 128비트로 확장한 방식과, 일반적으로 세 번의 암호화·복호화 과정에 여러 개의 키를 적용하는 다중 패스(multi-pass) DES가 있습니다.

DES는 1960년대 후반 IBM(International Business Machines)이 착수한 연구 프로젝트의 산물로, 그 결과 탄생한 암호가 바로 LUCIFER입니다. 이후 1970년대 초반에 LUCIFER를 축소하면서 여러 혁신적인 기술이 도입되었습니다.

DES 키 생성 단계

DES 알고리즘은 총 16라운드의 암호화를 수행하며, 각 라운드마다 고유한 키가 생성됩니다. 단계를 살펴보기 전에, 평문의 비트는 1부터 64까지 번호가 매겨지며 1번 비트가 최상위 비트(MSB), 64번 비트가 최하위 비트(LSB)라는 점을 먼저 이해해야 합니다. 키 생성 과정은 다음과 같습니다.

  • 라운드 키 생성기: 56비트 암호화 키로부터 16개의 48비트 키를 생성합니다. 암호화 키는 64비트 형태로 제공되며, 이 중 8개의 추가 비트는 패리티 비트로서 실제 키 생성 과정이 시작되기 전에 제거됩니다.
  • 패리티 비트 제거: 패리티 비트 제거 과정에서는 64비트 키에서 패리티 비트(8, 16, 24, 32…64번째 비트)를 삭제하고, 나머지 비트들을 아래의 패리티 비트 제거 표에 정의된 규칙에 따라 치환(permutation)합니다.
  • 치환 후 남은 56비트가 실제 키 생성에 사용됩니다.
  • 치환이 끝나면 키는 두 개의 28비트 부분으로 나뉘며, 각 부분은 라운드에 따라 1비트 또는 2비트씩 왼쪽으로 순환 이동(circular left shift)됩니다.
  • 1, 2, 9, 16라운드에서는 1비트 이동이 적용되고, 나머지 라운드에서는 2비트씩 이동합니다. 이동이 완료되면 두 부분이 다시 결합되어 56비트 구조를 이룹니다.
  • 마지막으로 압축 D-박스(compression D-box)가 이 56비트를 48비트로 변환하며, 변환된 48비트가 해당 라운드의 키로 사용됩니다.
5749413325170901
5850423426181002
5951433527191103
6052443663554739
3123150762544638
3022140661534537
2921130528201204

정보 보안에서 DES 키 생성 과정: 단계별 완벽 정리