IBM에서 고안되어 NIST가 미국 표준 암호 알고리즘으로 채택된 대칭 암호화 알고리즘
DES는 64비트 평문을 64비트 암호문으로 암호화하는 대칭 암호 알고리즘이야.
키의 비트 길이는 56비트야.
규격 상으로 DES의 키는 64비트 이지만, 7비트 마다 오류 검출을 위한 정보가 1비트씩 들어가기 때문에 실질적으로는 56비트가 돼.
DES는 64비트 평문(비트열)을 하나의 단위로 모아서 암호화 해.
그리고 그 모아진 것을 블록(block)이라고 불러.
일반적으로 블록 단위로 처리를 하는 암호 알고리즘을 블록 암호라고 부르므로 DES도 일종의 블록암호가 되는거지.
DES로 한 번에 암호화할 수 있는 것은 64비트뿐이기 때문에 그것보다 긴 비트 길이의 평문을 암호화하기 위해서는 DES를 이용해서 암호화를 반복 할 필요가 있어.
이렇게 반복하는 방법은 모드라고 해.
그럼 이제 DES의 구조에 대해서 알려줄게.
DES의 기본 구조는 페이스텔 구조(Feistel structure)이야.
페이스텔 네트워크에서는 라운드(round)라는 암호화의 한 단계를 여러 번 반복해서 수행하도록 되어있어.
위의 그림은 페이스텔 네트워크의 여러 라운드 중 첫 번째 라운드를 나타낸 것이야.
DES는 라운드를 16회 반복하는 페이스텔 네트워크야.
페이스텔 네트워크의 특징은 원하는 만큼 라운드 수를 늘리 수 있다는 것, 암호화와 복호화를 완전히 동일한 구조로 실현할 수 있다는 것이야.