3DES

반응형


  대칭키 암호의 대표적인 예로는 DES, AES 등이 있다. 1973년, 미국 국립기술표준원(NIST)에서 국가적으로 사용할 대칭키 암호시스템의 제안을 요청했는데, IBM의 제안이 DES(Data Encryption Standard)로 채택된 것이다. 나중에 DES를 세 번 반복하는 3중 DES의 사용이 권고되기도 했다. DES에서의 평문의 길이는 64비트이고 키의 길이는 56비트이며 64비트의 암호문이 생성된다. 이보다 길이가 긴 평문은 64비트 블록으로 나눈다. DES는 Feistel 구조가 사용된 것이며, 라운드 횟수는 16이다. 56비트짜리 원래의 키로부터 16개의 서브키를 생성하고, 그 서브키를 각 라운드에서 사용다. 암호화 과정과 복호화 과정은 근본적으로는 동일한데, 유일하게 다른 점은, 키의 순서이다. 즉 암호화 과정에서 처음으로 사용되었던 마지막 키를 복호화 과정에서 맨 먼저 사용하게 된다. 암호화 과정은 두 개의 P-box와 16개의 Feistel 라운드 함수로 구성된다. 이때, 두 개의 P-box는 각각, 초기 전치(initial permutation), 최종 전치(final permutation)라고 다. 라운드 키 생성기는, 56비트의 키를 48비트짜리 라운드 키로 만들어내고, 이 각각의 라운드 키를 각 라운드에서 사용다. 암호화되는 순서를 정리해보면, 64비트짜리 평문이, 초기 전치(initial permutation)을 거치고, 16번의 라운드를 수행하며, 마지막으로 최종 전치(final permutation)를 거쳐 64비트짜리 암호문으로 나오게 된다. 각각의 라운드 함수는 Feistel 암호로 되어 있으며, 혼합기(mixer)와 교환기(swapper)가 있다. 이때, 라운드 함수에 사용된 함수를 DES 함수라고 하고, 이것이 DES의 핵심이 된다. DES 함수는, 확장 P-box, 키 XOR, 8개의 S-box 그리고 단순 P-box 이렇게 4부분으로 구성되어 있다.


  DES의 설계 기준이 몇 가지 있다. S-box는, 각 라운드에서부터 그다음 라운드까지 혼돈을 만족하도록 설계되었으며 비선형 함수라고 다. 따라서 입력값의 한 비트를 변경한다면, 출력값에서는 두 비트 이상이 변경되게 된다. P-box의 경우, 확장 P-box와 단순 P-box가 있다. 확장 P-box는 32비트에서 48비트로 가며, 단순 P-box는 32비트에서 32비트를 가게 된다. 이 2개의 P-box는, 확산의 성질을 만족시킨다. 한 번 더 상기시켜보면, 혼돈은 암호문과 키의 관계를 숨기는 것이고, 확산은 암호문과 평문의 관계를 숨기는 것이다.


  3중 DES는, 훗날에 DES를 세 번 반복해서 사용하도록 NIST에서 권고한 사항이다. 오늘날 사용하고 있는 3중 DES는, 크게 두 가지 종류가 있다. 하나는 두 개의 키를 갖는 3중 DES이고, 또 다른 하나는 세 개의 키를 갖는 3중 DES이다. 3DES는 하드웨어에서는 효율적이지만 소프트웨어에 대해서는 그다지 효율적이지 않다고 다. 2개의 키를 이용하는 3중 DES에서는, 첫 번째와 세 번째 단계에서 동일한 키를 사용하게 된다. 이 방법은 기지 평문 공격에 취약할 수 있다고 다. 그래서 3개의 키를 이용하는 3중 DES(DES-EDE3)가, PGP와 같은 많은 응용 프로그램에서 사용되고 있는 것이다. DES-EDE3은, 평문을 첫 번째 키로 암호화하고, 그 결과를 두 번째 키로 복호화하고, 그 결과를 세 번째 키로 암호화하여 최종 암호문을 얻어낸다. 복호화 과정은 암호화의 역이 된다. 다시 말해, 암호문을 마지막 키로 복호화하고, 그 결과를 두 번째 키로 암호화하고, 그 결과를 첫 번째 키로 복호화하여 최종 평문을 얻어낸다. 이 DES-EDE3에서 모든 키를 동일하게 한다면 보통의 DES와 같아진다. 암호화->복호화->암호화 과정을 거치는 것이기 때문이다.


( 그림 출처 : Cryptography and Network Security Principle and Practice )


반응형

+ Recent posts