암호화-복호화-암호화 (Encipher-Decipher-Encipher, EDE)

고급암호학수정일

암호화-복호화-암호화(EDE)는 같은 블록 암호를 서로 다른 키로 세 번 적용하되 가운데 단계를 복호화로 두는 구성 방식입니다. 대표적인 예는 3중 DES(TDEA)로, 암호문은 C = EK3(DK2(EK1(P)))로 계산합니다.

자세히 알아보기

평문 블록 P를 키 K1으로 암호화하고, 그 결과를 키 K2로 복호화 연산에 넣은 뒤, 다시 키 K3로 암호화합니다. K2가 K1과 다르면 가운데 복호화는 앞 단계를 되돌리지 않고 또 하나의 뒤섞기 단계로 작동합니다. 받는 쪽은 반대 순서로 P = DK1(EK2(DK3(C)))를 계산합니다.

가운데를 복호화로 둔 이유는 보안 강화가 아니라 하위 호환성입니다. 세 키를 모두 같은 K로 두면 DK가 앞의 EK를 정확히 되돌려 결과가 EK(P), 즉 단일 DES와 같아집니다. 그래서 3중 DES 장비가 설정만 바꿔 기존 단일 DES 장비와 통신할 수 있었습니다. 보안 강도는 가운데가 복호화라서가 아니라 서로 다른 키를 여러 개 쓰는 데서 나옵니다. 두 번만 암호화하는 2중 DES는 중간 일치 공격 때문에 단일 DES보다 크게 강해지지 않으므로, 세 단계 구성이 표준이 되었습니다.

키 구성은 두 가지가 쓰였습니다. 세 키가 모두 다른 3키 TDEA(3TDEA)와 K3 = K1인 2키 TDEA(2TDEA)입니다. DES 키의 실제 길이는 56비트이므로 3키 방식의 키는 168비트이지만, 중간 일치 공격(meet-in-the-middle) 때문에 실효 보안 강도는 약 112비트로 평가됩니다. 2키 방식은 이보다 약해 NIST는 2017년 개정에서 2TDEA를 보호 용도로 쓰지 못하게 했습니다.

오늘날 3중 DES는 은퇴한 알고리즘입니다. NIST SP 800-131A Rev. 2에 따라 TDEA로 새로 암호화하거나 MAC을 생성하는 것은 2023년 12월 31일 이후 허용되지 않으며, NIST는 TDEA 규격 SP 800-67 Rev. 2를 2024년 1월 1일 철회한다고 발표했습니다. 이미 보호된 데이터를 복호화하고 검증하는 용도로만 계속 쓸 수 있습니다. 블록 크기가 64비트로 작아, 이 규격은 키 묶음 하나로 220개를 넘는 블록을 암호화하지 말도록 제한했습니다. 새 시스템에는 AES 같은 현대 블록 암호를 씁니다.

블록체인·암호화폐에서는

주요 블록체인 프로토콜은 3중 DES를 쓰지 않습니다. 이 용어는 주로 카드 결제나 은행 간 통신 같은 기존 금융 시스템의 레거시 암호화를 다룰 때, 또는 보안 문서에서 과거 방식과 현대 방식을 비교할 때 등장합니다.

쉽게 말하면

새 기기에 예전 기기용 호환 모드가 들어 있는 것과 비슷합니다. 세 단계에 서로 다른 키를 넣으면 새 방식으로 동작하고, 세 키를 같게 맞추면 예전 단일 DES 기기와 똑같이 동작합니다. 가운데 복호화 단계는 성능이나 강도를 높이는 장치가 아니라 이 호환 스위치 역할을 합니다.

예시

K1, K2, K3를 서로 다르게 정하면 C = EK3(DK2(EK1(P)))가 3키 TDEA 암호문입니다. 같은 장비에서 K1 = K2 = K3 = K로 설정하면 EK(DK(EK(P))) = EK(P)가 되어 단일 DES 암호문이 나옵니다. 다만 NIST SP 800-67 Rev. 2는 세 키가 서로 달라야 한다고 규정해, 이런 세 키가 같은 묶음을 TDEA 키로 허용하지 않았습니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.