개요
NIST가 공모하여 한 때 표준으로 이용한 암호 알고리즘이다. 현재는 많이 사용하지 않으며 대부분 AES를 사용하고 간혹 DES 사용하거나 TDES를 사용하기도 한다. 섀넌은 암호다운 암호는 혼돈과 확산을 만족해야 제대로 된 암호라 할 수 있다고 하였다. DES는 파이스텔 구조를 기반으로 한 블록 단위 암호화 알고리즘이다.
대칭키 암호화로 암복호화할 때 쓰는 키가 동일하다. 때문에 키 분배 문제가 있으나 공개키를 이용하여 안전하게 전달할 수 있다.
DES의 특징
- 파이스텔 구조를 기반으로 한 라운드가 있으며 총 16라운드를 실시하여 암호화를 진행한다.
- 64비트 블록 단위로 암호화한다.
- 56비트의 키길이를 갖는다. 키 공간은 64이나 1비트는 패리티 비트이기에 실직적으로는 56비트이다
DES 동작
1 Round
1개의 Round에는 32bit 두 개의 공간으로 나눈다. 키를 이용해 함수를 거치고 난 값과 XOR연산을 하고 그 값을 R과 L자리를 뒤바꾼다. 이 과정을 16번 하면 DES 암호와 알고리즘이다. Subsitiution과 Permutation을 통해 혼돈과 확산을 달성한다 XOR과 DES 함수에서 Substituation, 치환에서 Permutaion을 달성한다.
동작 모드
- ECB모드 (Electronic Code Book)
데이터를 분할하여 블록 단위로 나눈 뒤 결과물을 단순히 합치는 방식이다. 취약한 운영모드로 잘 사용하지 않는다.
2. CBC모드 (Cipher Block Chaining)
암호화된 블록 데이터를 다음 블록에 적용시킨다. 마치 블록끼리 묶인 것처럼 보인다. 첫 번째 원문 블록의 암호화 값이 없어 IV(Initial vector)를 넣는다. 때문에 CBC모드를 운영할 땐 초기화 벡터가 필요하다. 다만 느리다는 단점이 있다.
3. CFB모드 (Cipher Feed Back)
암호화가 완료된 블록을 기반으로 다음 암호를 진행함
4. OFB모드 (Output Feed Back)
암호화가 완전히 끝나지 않은 초기화 벡터 혹은 전 단계를 기반으로 암호화한 것을 다음 암호화에 사용함 CFB보다는 빠르다는 장점이 있음
이 동작 모드 이외 여러 가지가 혹은 더 개선된 형태의 동작 모드가 존재하나 이 정도로만 설명합니다.
3DES
TDEA, Triple DES라고 하며 잠시 동안 임시로 사용한 암호 방식이다. 키 길이를 3배로 늘려 사용한 것으로 DES보다 느리지만 안정성이 조금 더 상향되었다. 다음 암호화 알고리즘이 개발될 때까지 임시로 사용하기 위해 사용되었으며 실제로 오래가진 못하였다. 현재 남아있는 DES들은 대부분 3 DES를 사용하며 제한적으로 사용되고 있다. 다음 알고리즘인 AES가 개발될 때까지 임시 알고리즘 역할을 제대로 수행하였다.
'Security,Hacking > Encryption' 카테고리의 다른 글
공개키 암호, 비대칭키 암호화 RSA (0) | 2021.07.27 |
---|
댓글