본문 바로가기

Des

DES는 닫혀있는가? DES 알고리즘에서 사용되는 키의 길이는 64비트이지만, 실제로 패리티 비트를 제외하면 56비트이다. 따라서, 이론적으로 가능한 키의 종류는 2^56이다. 그런데, 만약 서로 다른 키 K1, K2로 두 번 암호화했을 때의 결과가 또 다른 키 K3로 암호화한 것과 같다면 사용 가능한 키의 종류는 2^56보다 작은 셈이 된다. 즉, 이 문제는 DES가 닫혀있는가, 그렇지 않은가의 문제인데, 1986년에 발표된 칼리스키(Kaliski)의 연구에 의하면 평문 공격 상황에서 2^28 단계를 거치면 중간자 공격이 가능하다고 한다. 그렇지만, 1992년 캠벨(Campbell)이 DES가 닫혀 있지 않다는 것을 수학적으로 증명하였다. 이에 대해, 애초 DES 설계자 중 한 사람이었던 코퍼스미스(Coppersmith)는.. 더보기
Feistel Function DES 알고리즘에서 가장 중요한 부분은, 바로 3단계에서 진행되는 f 연산, Feistel Function이다. f 연산은 크게 세 부분으로 나뉘어진다. 1. 32비트를 48비트로 확장하는 Expansion Permutation 2. 보조키 Ki와 48비트의 XOR 연산 3. 확장된 48비트를 6비트씩 8 묶음으로 나누어 복잡한 처리과정을 거친 뒤 다시 32비트로 바꾸는 s-box 연산 4. 32비트를 단순히 자리만 바꾸는 p-box 연산 먼저, Expasion Permutation은 앞 라운드에서 처리되어 넘어온 64비트 가운데 오른쪽 절반인 32비트인 Ri-1를 48비트로 늘려주는 과정이다. 비트를 늘려주는 이유는, 48비트인 보조키 Ki와 XOR 연산이 가능하도록 크기를 맞추기 위해서이다. Expa.. 더보기
DES 보조키 생성 준비한 키 K는 64비트이지만, 실제로 사용 가능한 부분은 56비트이다. 나머지 8비트는 패리티 비트이며, 8비트째마다 패리티 비트가 삽입되어 앞선 7비트의 에러 유무를 검사하게 된다. 이 비트 배열에 먼저 PC-1 행렬을 적용하는데, PC-1 행렬에는 8, 16, 24, 32, 40, 48, 56, 64라는 수는 없다. 즉, PC-1 행렬을 적용하면 자연스럽게 패리티 비트는 삭제되어 56비트의 결과만 남게 된다. PC-1 행렬은 다음과 같다. 57 49 41 33 25 17 09 01 58 60 42 34 26 18 10 02 59 51 43 35 27 19 11 03 60 52 44 36 63 55 47 39 31 23 15 07 62 54 46 38 30 22 14 06 61 53 45 37 29 .. 더보기
DES Encryption / Decryption Algorithm 현대 암호는 크게 블럭 암호와 스트림 암호, 또는 공개키 암호와 대칭키 암호로 구분하는데, DES는 64비트 단위의 블럭을 사용하는 블럭 암호 시스템이며, Encryption / Decryption 과정에서 동일한 키를 사용하는 대칭키 암호 시스템이다. DES 방식을 이용하여 메세지를 교환하기 위해서는, Encryption / Decryption에 필요한 64비트 키를 준비해 서로 교환해둔다. 이 키는 그대로 사용되는 것이 아니라 적절한 계산을 거쳐 새로운 보조키 열 K1, K2, ... K16으로 변형하여 사용한다. DES 전체 진행 과정은 다음과 같다. 1. IP(Initial Permutation) 치환 2. 좌우 분리 3. 16라운드 진행(Feistel Function) 4. IP 역치환 이 중에.. 더보기
Public Key System 대칭키 암호 시스템은, Encryption / Decryption 과정에서 동일한 키가 사용된, 이와 반대로 비대칭키 암호 시스템에서는, Encryption 과정에서 사용되는 키와 Decryption 과정에서 사용되는 키가 다르다. DES, AES에서와 같은 대칭키, 블럭 암호 시스템에서는 동일한 키가 사용됨으로서 Encrpyion / Decryption 과정을 함께 수행할 수 있기 때문에 상대적으로 속도가 빨라진다는 점을 장점이라고 생각할 수도 있다. 하지만, 결국 Encryption / Decryption 과정에서 키가 필요하므로, Ciphertext를 해석할 키를 상대방에게 안전하게 전달해야 한다는 문제가 생기게 된다. 비대칭 암호 시스템은, 공개키 암호 시스템이라고도 하는데, 이것은 한 키는 비밀.. 더보기