트리플 DES
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
트리플 DES(3DES)는 1978년 월터 투흐만이 제안한 DES(Data Encryption Standard)를 세 번 반복하여 암호화하는 대칭키 암호 알고리즘이다. 3DES는 여러 표준 문서에 정의되어 있으며, 세 가지 키 설정 옵션을 제공한다. 알고리즘은 암호화 → 복호화 → 암호화 순서로 진행되며, 키 설정 옵션에 따라 168비트, 112비트, 56비트의 키 길이를 가질 수 있다. 3DES는 중간자 공격과 블록 충돌 공격에 취약하여 보안 강도가 상대적으로 낮으며, 미국 국립 표준 기술 연구소(NIST)는 2023년 말까지 모든 애플리케이션에서 사용을 중단할 것을 권고하고 있다. 현재는 AES(Advanced Encryption Standard)로 대체되는 추세이나, EMV 등 전자 결제 산업과 일부 소프트웨어에서 사용되고 있다.
더 읽어볼만한 페이지
- 데이터 암호화 표준 - 루시퍼 (암호)
루시퍼는 1970년대 초 IBM에서 개발된 대칭키 블록 암호의 초기 모델로, DES 개발의 기반이 되었고 128비트 키를 사용하여 강력한 암호로 평가받았으나 차분 공격에 취약한 SPN 구조를 지녔으며 대한민국 암호학 발전에 영향을 미쳤다. - 블록 암호 - 데이터 암호화 표준
데이터 암호화 표준(DES)은 미국 국립표준기술연구소에서 개발되어 널리 사용되었던 대칭키 암호 알고리즘이지만, 짧은 키 길이와 취약점 때문에 고급 암호화 표준(AES)으로 대체되었고, 트리플 DES 형태로 일부 시스템에서 사용되며 암호학 발전에 기여한 역사적 의미가 있다. - 블록 암호 - 고급 암호화 표준
고급 암호화 표준(AES)은 미국 국립표준기술연구소에서 제정한 대칭 키 암호화 블록 암호 표준으로, 치환-순열 네트워크 구조에 기반하여 128비트 블록 크기와 다양한 키 크기를 지원하며, 빠른 속도와 효율성으로 널리 사용된다.
트리플 DES | |
---|---|
개요 | |
![]() | |
발표일 | 1981년 |
기반 | DES |
키 크기 | 112 또는 168 비트 |
블록 크기 | 64 비트 |
구조 | 파이스텔 네트워크 |
라운드 | 48 DES 상당 라운드 |
암호 분석 | Lucks: 232개의 알려진 평문, 2113번의 연산 (290번의 DES 암호화 포함), 288 메모리 Biham: 키당 소수의 선택된 평문과 284번의 암호화로 228개의 대상 키 중 하나를 찾음 |
상세 정보 | |
발표일 (ANS X9.52) | 1998년 |
키 크기 (키잉 옵션) | 168 비트 (키잉 옵션 1) 112 비트 (키잉 옵션 2) 56 비트 (키잉 옵션 3) |
구조 | 파이스텔 구조 |
라운드 | 48 |
암호 분석 | Lucks: 232 known plaintexts, 2113 operations including 290 DES encryptions, 288 memory Biham: find one of 228 target keys with a handful of chosen plaintexts per key and 284 encryptions |
2. 역사
1978년, 월터 투흐만은 56비트 키 두 개를 사용하는 DES를 이용한 삼중 암호화 방식을 제안했다. 1981년, 랄프 머클과 마틴 헬만은 112비트의 보안성을 가진 3DES의 더 안전한 삼중 키 버전을 제안했다.[7]
트리플 DES 알고리즘은 여러 표준 문서에 다양하게 정의되어 있다.
3. 표준
4. 알고리즘
트리플 DES는 DES 암호화를 세 번 적용하는 방식으로, 암호화-복호화-암호화 순서로 진행된다. 평문(P)을 암호문(C)으로 만드는 과정은 다음과 같다.
:C = encryptk3(decryptk2(encryptk1(P)))
여기서,
즉, 평문을 K1으로 암호화하고, K2로 복호화한 다음, K3으로 다시 암호화하여 암호문을 생성한다. 복호화는 이와 반대 순서로 K3으로 복호화, K2로 암호화, K1으로 복호화하여 평문을 얻는다. 각 과정에서 64비트의 데이터 블록 하나를 암호화한다.
이러한 방식은 중간 연산이 첫 번째 및 마지막 연산의 반대이기 때문에 알고리즘의 강도를 개선하고, 특정 키 옵션을 통해 DES와의 하위 호환성을 제공한다.
4. 1. 키 옵션
표준은 세 가지 키 설정 옵션을 정의한다.[16][17]- 키 설정 옵션 1 (3TDEA): 세 개의 키(k1, k2, k3)가 모두 독립적이다. 168 (3 × 56)개의 독립적인 키 비트를 갖는다. 중간자 공격에 취약하지만, 이 공격은 2112 (22 × 56) 단계를 필요로 한다.
- 키 설정 옵션 2 (2TDEA): K1과 K2는 독립적이고, K3 = K1이다. 112 (56 × 2) 비트의 더 짧은 키 길이를 제공하며, 공격에 256 단계만 필요한 "이중 DES"보다 개선된 것이다. NIST는 2015년에 이 옵션을 허용하지 않았다.[16]
- 키 설정 옵션 3: 세 개의 키가 모두 동일하다(K1 = K2 = K3). 두 개의 연산이 상쇄되므로 DES와 역호환된다. ISO/IEC 18033-3은 이 옵션을 허용하지 않았으며, NIST는 더 이상 K1 = K2 또는 K2 = K3을 허용하지 않는다.[16][13]
각 DES 키는 56 비트의 키와 8 비트의 오류 감지를 포함하는 8 홀수 패리티 바이트이다.[9] 키 번들은 옵션 1의 경우 24 바이트, 옵션 2의 경우 16 바이트, 옵션 3의 경우 8 바이트를 필요로 한다.
NIST는 다음 64개의 64비트 값 중 임의의 키에 있는 값을 사용하는 것을 허용하지 않는다 (16진수로 표시).
01.01.01.01.01.01.01.01 | FE.FE.FE.FE.FE.FE.FE.FE | E0.FE.FE.E0.F1.FE.FE.F1 | 1F.01.01.1F.0E.01.01.0E |
01.01.FE.FE.01.01.FE.FE | FE.FE.01.01.FE.FE.01.01 | E0.FE.01.1F.F1.FE.01.0E | 1F.01.FE.E0.0E.01.FE.F1 |
01.01.E0.E0.01.01.F1.F1 | FE.FE.1F.1F.FE.FE.0E.0E | E0.FE.1F.01.F1.FE.0E.01 | 1F.01.E0.FE.0E.01.F1.FE |
01.01.1F.1F.01.01.0E.0E | FE.FE.E0.E0.FE.FE.F1.F1 | E0.FE.E0.FE.F1.FE.F1.FE | 1F.01.1F.01.0E.01.0E.01 |
01.FE.01.FE.01.FE.01.FE | FE.01.FE.01.FE.01.FE.01 | E0.01.FE.1F.F1.01.FE.0E | 1F.FE.01.E0.0E.FE.01.F1 |
01.FE.FE.01.01.FE.FE.01 | FE.01.01.FE.FE.01.01.FE | E0.01.01.E0.F1.01.01.F1 | 1F.FE.FE.1F.0E.FE.FE.0E |
01.FE.E0.1F.01.FE.F1.0E | FE.01.1F.E0.FE.01.0E.F1 | E0.01.1F.FE.F1.01.0E.FE | 1F.FE.E0.01.0E.FE.F1.01 |
01.FE.1F.E0.01.FE.0E.F1 | FE.01.E0.1F.FE.01.F1.0E | E0.01.E0.01.F1.01.F1.01 | 1F.FE.1F.FE.0E.FE.0E.FE |
01.E0.01.E0.01.F1.01.F1 | FE.1F.FE.1F.FE.0E.FE.0E | E0.1F.FE.01.F1.0E.FE.01 | 1F.E0.01.FE.0E.F1.01.FE |
01.E0.FE.1F.01.F1.FE.0E | FE.1F.01.E0.FE.0E.01.F1 | E0.1F.01.FE.F1.0E.01.FE | 1F.E0.FE.01.0E.F1.FE.01 |
01.E0.E0.01.01.F1.F1.01 | FE.1F.1F.FE.FE.0E.0E.FE | E0.1F.1F.E0.F1.0E.0E.F1 | 1F.E0.E0.1F.0E.F1.F1.0E |
01.E0.1F.FE.01.F1.0E.FE | FE.1F.E0.01.FE.0E.01.F1 | E0.1F.E0.1F.F1.0E.F1.0E | 1F.E0.1F.E0.0E.F1.0E.F1 |
01.1F.01.1F.01.0E.01.0E | FE.E0.FE.E0.FE.F1.FE.F1 | E0.E0.FE.FE.F1.F1.FE.FE | 1F.1F.01.01.0E.0E.01.01 |
01.1F.FE.E0.01.0E.FE.F1 | FE.E0.01.1F.FE.F1.01.0E | E0.E0.01.01.F1.F1.01.01 | 1F.1F.FE.FE.0E.0E.FE.FE |
01.1F.E0.FE.01.0E.F1.FE | FE.E0.1F.01.FE.F1.0E.01 | E0.E0.1F.1F.F1.F1.0E.0E | 1F.1F.E0.E0.0E.0E.F1.F1 |
01.1F.1F.01.01.0E.0E.01 | FE.E0.E0.FE.FE.F1.F1.FE | E0.E0.E0.E0.F1.F1.F1.F1 | 1F.1F.1F.1F.0E.0E.0E.0E |
이러한 제한 사항으로 인해 트리플 DES는 키 설정 옵션 1과 2만으로 재승인되었다. 일반적으로 세 개의 키는 강력한 난수 생성기에서 24 바이트를 가져와 생성되며, 키 설정 옵션 1만 사용해야 한다.
5. 이론
트리플 DES는 증가하는 컴퓨팅 성능으로 인해 무차별 대입 공격에 취약해진 DES 암호의 키 크기를 늘려 보안을 강화하는 방법이다. 새로운 블록 암호 알고리즘을 설계하는 대신, DES를 세 번 적용하는 방식을 사용한다.
두 개의 키를 사용하여 두 번 암호화하는 방법()은 중간 만남 공격에 취약하다. 이 공격은 단계로 키 쌍을 복구할 수 있어, 비트 키를 사용하는 것과 동등한 보안을 제공하지 못한다. (은 원래 키 길이)
따라서 트리플 DES는 세 개의 DES 키 , , 를 사용한다. 암호화 알고리즘은 다음과 같다.
:
즉, 으로 암호화하고, 로 *복호화*한 다음, 으로 다시 암호화한다. 복호화는 이 순서를 반대로 수행한다.
:
각 트리플 암호화는 64비트의 데이터 블록을 처리한다. 중간 연산(암호화-복호화-암호화 순서에서 두 번째 단계)은 첫 번째 및 마지막 연산의 반대이다. 이는 특정 키 옵션에서 알고리즘의 강도를 개선하고 DES와의 하위 호환성을 제공한다.
트리플 DES는 평문을 단순히 DES로 세 번 암호화하는 것이 아니라, 암호화 → 복호화 → 암호화 순서로 수행한다.
:C = encryptk3(decryptk2(encryptk1(P)))
여기서,
키 선택에는 세 가지 옵션이 있다. (자세한 내용은 #키 옵션 참고)
세 개의 키를 사용하는 트리플 DES가 단일 키 DES보다 안전한 이유는 DES가 군을 이루지 않기 때문이다. 즉, 임의의 두 키 k1, k2에 대해 DESk2(DESk1(*)) == DESk3(*)를 만족하는 k3는 존재하지 않는다. 따라서 DES를 여러 번 사용하면 키 공간이 확장되어 보안이 강화된다.
6. 보안성
일반적으로 세 개의 독립적인 키를 사용하는 트리플 DES(keying option 1)는 168비트의 키 길이를 갖지만, 중간자 공격으로 인해 제공하는 실제 보안 수준은 112비트이다.[16] Keying option 2는 유효 키 크기를 112비트로 줄이지만(세 번째 키가 첫 번째 키와 같기 때문), 이 옵션은 특정 선택 평문 공격 또는 알려진 평문 공격에 취약하며,[21][22] 따라서 NIST는 이 옵션에 대해 80비트의 보안 강도만 부여한다.[16] 이는 안전하지 않다고 간주될 수 있으며, 그 결과 트리플 DES의 계획된 폐기는 2017년 NIST에 의해 발표되었다.[23]
짧은 64비트 블록 크기는 3DES를 동일한 키로 대량의 데이터를 암호화하는 데 사용될 경우 블록 충돌 공격에 취약하게 만든다. Sweet32 공격은 TLS 및 OpenVPN에서 이 취약점이 어떻게 악용될 수 있는지 보여준다.[24] TLS에서 3DES 기반 암호 제품군에 대한 실제 Sweet32 공격은 785GB가 필요했지만, 연구자들은 약 25분만에 충돌을 발견할 수 있었다.
OpenSSL은 1.1.0 버전(2016년 8월)부터 기본적으로 3DES를 포함하지 않으며, 이를 "약한 암호"로 간주한다.[25]
트리플 DES는 3개의 서로 다른 키(Keying option 1)를 사용하면 168비트의 키 길이를 가지지만, 중간자 공격에 의해 안전성은 112비트 상당이 된다. 2개의 서로 다른 키(Keying option 2)를 사용하는 경우 112비트의 키 길이를 가지지만, 선택 평문 공격 또는 알려진 평문 공격에 의해 안전성은 기껏해야 80비트 상당으로 여겨진다. 112비트라도 전수 조사를 위해서는 상당한 컴퓨터 성능이 필요하지만, 매년 성능 향상을 고려하여 NIST는 2023년 말까지 모든 애플리케이션에서 폐지할 것을 권고하고 있다.
DES와 동일한 알고리즘으로 쉽게 구현할 수 있다는 점 때문에 IC 카드 공통 사양인 EMV 등을 비롯하여 현재에도 널리 사용되고 있다. 다만, 안전성이 실질적으로 112비트까지라는 점과, DES를 3번 적용함으로써 계산 부하도 3배가 된다는 점 때문에, 현재는 더 안전하고 빠른 AES로 대체되는 추세이다. AES를 지원하지 않고, 트리플 DES까지의 대응에 그치는 Windows XP 등과의 하위 호환성을 유지할 목적으로 사용되었다.
대한민국의 경우, 정보통신망 이용촉진 및 정보보호 등에 관한 법률(정보통신망법) 및 전자금융감독규정에 따라 3DES 사용이 제한되고 있으며, 금융보안원은 금융권에서 3DES 사용을 중단할 것을 권고하고 있다.
7. 활용
전자 결제 산업에서는 트리플 DES를 사용하고 있으며, EMV와 같이 이를 기반으로 하는 표준을 계속 개발하고 보급하고 있다.[26] 마이크로소프트 원노트[27], 마이크로소프트 아웃룩 2007[28], 시스템 센터 구성 관리자 2012[29] 등 과거 버전의 마이크로소프트 제품군에서는 사용자 콘텐츠 및 시스템 데이터 암호화에 트리플 DES를 사용했다. 그러나 2018년 12월, 마이크로소프트는 Office 365 서비스 전반에서 3DES 지원을 중단한다고 발표했다.[30]
파이어폭스 및 모질라 선더버드는 마스터 암호를 사용하여 웹사이트 로그인 정보를 암호화할 때 CBC 모드에서 트리플 DES를 사용한다.[31] IC 카드 공통 사양인 EMV 등에서 트리플 DES가 널리 사용되기도 한다.
하지만, 트리플 DES는 안전성이 실질적으로 112비트까지라는 점과 DES를 3번 적용하여 계산 부하가 3배가 된다는 단점이 있다. 이 때문에 현재는 더 안전하고 빠른 AES(고급 암호화 표준)로 대체되는 추세이다. Windows XP 등 AES를 지원하지 않고 트리플 DES까지만 지원하는 환경과의 하위 호환성을 위해 사용되기도 한다.
8. 구현 라이브러리
다음은 트리플 DES를 지원하는 암호화 라이브러리 목록이다.
위의 일부 구현은 최신 버전에서 기본 빌드에 3DES를 포함하지 않을 수 있다.
참조
[1]
웹사이트
Transitioning the use of cryptographic algorithms and key lengths
https://nvlpubs.nist[...]
NIST Publications
2022-09-20
[2]
웹사이트
Triple DES Encryption
https://www.ibm.com/[...]
IBM
2010-05-17
[3]
논문
New Comparative Study Between DES, 3DES and AES within Nine Factors
2010-03
[4]
웹사이트
Cisco PIX 515E Security Appliance Getting Started Guide: Obtaining a DES License or a 3DES-AES License
http://instrumentati[...]
Cisco
2017-09-05
[5]
웹사이트
3DES Update: Most Banks Are Done, But...
https://web.archive.[...]
2017-09-05
[6]
간행물
IETF RFC 2828
[7]
문서
'Merkle, R. and M. Hellman, "On the Security of Multiple Encryption", Communications of the ACM, vol. 24, no. 7, pp. 465–467, July 1981.'
[8]
웹사이트
The ESP Triple DES Transform
1995-09
[9]
웹사이트
ANSI X9.52-1998 Triple Data Encryption Algorithm Modes of Operation
https://infostore.sa[...]
2017-09-05
[10]
잡지
Notice of Withdrawal: ANS at least 10 years past approval date
https://share.ansi.o[...]
ANSI
2017-09-05
[11]
웹사이트
FIPS PUB 46-3: Data Encryption Standard (DES)
http://csrc.nist.gov[...]
United States Department of Commerce
2017-09-05
[12]
논문
Announcing Approval of the Withdrawal of Federal Information Processing Standard (FIPS) 46–3....
http://csrc.nist.gov[...]
2017-09-05
[13]
웹사이트
NIST Special Publication 800-67 Revision 2: Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher
https://nvlpubs.nist[...]
NIST
2017-11-21
[14]
뉴스
NIST to Withdraw Special Publication 800-67 Revision 2
https://csrc.nist.go[...]
[15]
웹사이트
ISO/IEC 18033-3:2010 Information technology -- Security techniques -- Encryption algorithms -- Part 3: Block ciphers
https://www.iso.org/[...]
ISO
2017-09-05
[16]
웹사이트
NIST Special Publication 800-57: Recommendation for Key Management Part 1: General
http://nvlpubs.nist.[...]
NIST
2017-09-05
[17]
웹사이트
The Cryptography Guide: Triple DES
https://web.archive.[...]
Cryptography World
2017-09-05
[18]
서적
Introduction to Modern Cryptography
Chapman and Hall/CRC
2015
[19]
문서
NIST Special Publication 800-38A, ''Recommendation for Block Cipher Modes of Operation, Methods and Techniques'', 2001 Edition
http://csrc.nist.gov[...]
[20]
웹사이트
ISO/IEC 10116:2006 Information technology -- Security techniques -- Modes of operation for an n-bit block cipher
https://www.iso.org/[...]
2017-09-05
[21]
논문
On the Security of Multiple Encryption
https://web.archive.[...]
2013-11-15
[22]
간행물
A known-plaintext attack on two-key triple encryption
[23]
웹사이트
Update to Current Use and Deprecation of TDEA
https://csrc.nist.go[...]
2019-08-02
[24]
웹사이트
Sweet32: Birthday attacks on 64-bit block ciphers in TLS and OpenVPN
https://sweet32.info[...]
2017-09-05
[25]
웹사이트
The SWEET32 Issue, CVE-2016-2183
https://openssl-libr[...]
OpenSSL
2024-10-11
[26]
서적
EMV 4.2: Book 2 – Security and Key Management
https://web.archive.[...]
EMVCo
2009-03-21
[27]
웹사이트
Encryption for Password Protected Sections
https://learn.micros[...]
2010-01-28
[28]
웹사이트
Encrypt e-mail messages – Outlook – Microsoft Office Online
https://web.archive.[...]
[29]
문서
Microsoft TechNet product documentation, Technical Reference for Cryptographic Controls Used in Configuration Manager
https://technet.micr[...]
2012-10
[30]
웹사이트
Admin Portal
https://portal.offic[...]
2023-03-14
[31]
문서
Mozilla NSS source code
https://dxr.mozilla.[...]
[32]
웹사이트
The ESP Triple DES Transform
1995-09
[33]
웹인용
ANSI X9.52-1998 Triple Data Encryption Algorithm Modes of Operation
https://infostore.sa[...]
2017-05-01
[34]
잡지
ANSI Standards Action
https://share.ansi.o[...]
ANSI
2017-05-01
[35]
웹인용
FIPS PUB 46-3: Data Encryption Standard (DES)
http://csrc.nist.gov[...]
United States Department of Commerce
2017-05-01
[36]
저널
Announcing Approval of the Withdrawal of Federal Information Processing Standard (FIPS) 46–3....
http://csrc.nist.gov[...]
2005-05-19
[37]
웹인용
Draft NIST Special Publication 800-67 Revision 2: Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher
http://csrc.nist.gov[...]
NIST
2017-07
[38]
웹인용
ISO/IEC 18033-3:2010. Information technology -- Security techniques -- Encryption algorithms -- Part 3: Block ciphers
https://www.iso.org/[...]
ISO
2010-12
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com