🕵️ 친구와 암호 대화
한국어

DES, RSA, AES: 현대 암호가 걸어온 길

종이와 연필로 풀 수 있던 고전 암호는 컴퓨터가 등장하면서 완전히 다른 국면을 맞았습니다. 암호를 만드는 쪽도, 깨뜨리는 쪽도 기계의 계산 능력을 쓰게 된 것입니다. 이 글에서는 1970년대의 DES부터 공개 키 암호의 탄생, RSA, 그리고 오늘날 가장 널리 쓰이는 AES에 이르기까지, 현대 암호가 걸어온 길을 시간 순서대로 살펴봅니다.

컴퓨터 시대의 표준을 찾아서

1970년대 초 미국에서는 은행과 정부 기관이 컴퓨터로 데이터를 주고받기 시작했는데, 각자 다른 방식으로 암호화하면 서로 호환되지 않고 안전성도 검증하기 어려웠습니다. 그래서 미국 국립표준국(오늘날의 NIST)이 공개 표준 암호를 공모했습니다. 이때 채택된 것이 IBM이 개발한 "루시퍼"라는 암호를 바탕으로 한 알고리즘이었고, 1977년에 DES(데이터 암호화 표준)로 발표되었습니다.

DES는 64비트 덩어리를 16번의 반복 라운드로 뒤섞는 블록 암호이며, 열쇠 길이는 56비트였습니다. 알고리즘을 공개하고 열쇠만 비밀로 한다는 원칙을 따랐습니다. 이는 1883년 오귀스트 케르크호프스가 제시한 "암호 체계는 열쇠 외에는 공개되어도 안전해야 한다"는 원칙과 맞닿아 있습니다.

짧은 열쇠의 한계와 DES의 퇴장

DES가 발표되었을 때부터 56비트 열쇠가 너무 짧다는 비판이 있었습니다. 컴퓨터 성능은 해마다 빨라졌고, 1998년 전자 프런티어 재단(EFF)은 약 25만 달러 규모의 전용 장비 "딥 크랙"으로 DES 열쇠를 사흘 안쪽의 시간에 찾아내는 데 성공했습니다. 이로써 56비트 열쇠는 더 이상 안전하지 않다는 점이 명확하게 증명되었습니다.

임시방편으로는 DES를 세 번 겹쳐 적용하는 트리플 DES가 널리 쓰였습니다. 열쇠가 실질적으로 길어져서 안전성이 높아졌지만, 연산이 세 배로 늘어 느리고 블록 크기도 64비트로 작다는 한계가 있었습니다. 새로운 표준이 필요했습니다.

열쇠를 미리 나눠 갖지 않아도 되는 암호

DES 같은 암호에는 근본적인 불편함이 있었습니다. 보내는 사람과 받는 사람이 같은 열쇠를 미리 안전하게 나눠 가져야 한다는 점입니다. 인터넷에서 처음 만난 사이라면 이 열쇠를 어떻게 전달할까요? 1976년 휘트필드 디피와 마틴 헬먼은 논문 〈암호학의 새로운 방향〉에서 이 문제를 풀 방법을 제시했습니다. 두 사람이 공개된 통신으로 정보를 주고받으면서도 도청자는 알 수 없는 공통 비밀을 만들어 내는 디피-헬먼 키 교환이었습니다. 이 논문은 공개 키 암호라는 개념 자체를 학계에 알렸습니다.

이듬해인 1977년 로널드 리베스트, 아디 샤미르, 레너드 애들먼이 이 개념을 구체적인 암호로 구현했습니다. 세 사람의 머리글자를 딴 RSA입니다. 공개 키로는 누구나 암호화할 수 있지만 복호화는 개인 키를 가진 사람만 가능합니다. 안전성은 큰 두 소수를 곱하는 것은 쉬워도, 곱해진 큰 수를 다시 소인수분해하는 것은 매우 어렵다는 사실에 기대고 있습니다. 논문은 1978년에 발표되었습니다. 오늘날 웹사이트 주소창의 자물쇠 표시 뒤에서는 이런 공개 키 방식이 열쇠를 안전하게 교환하는 역할을 합니다.

공개 키 암호는 계산이 무거워서 큰 데이터를 통째로 암호화하는 데는 적합하지 않습니다. 그래서 실제로는 공개 키 방식으로 임시 열쇠를 교환하고, 실제 데이터는 빠른 대칭 키 암호로 처리하는 조합이 표준이 되었습니다.

AES, 공개 경쟁으로 뽑은 새 표준

DES의 후계자를 정하는 방식은 이전과 달랐습니다. NIST는 1997년에 공개 공모를 시작했고, 전 세계 암호학자들이 제출된 후보 알고리즘을 몇 해 동안 공개적으로 검증하고 공격해 보았습니다. 최종 후보 5개 가운데 2000년 10월 벨기에의 요안 대먼과 뱅상 라이먼이 설계한 라인달(Rijndael)이 선정되었고, 2001년에 AES(고급 암호화 표준)로 공표되었습니다.

AES는 128비트 블록을 다루며 열쇠 길이는 128, 192, 256비트 중에서 고를 수 있습니다. 열쇠 후보의 수가 DES의 56비트와는 비교할 수 없이 큽니다. 128비트만 해도 현재 알려진 방법으로 모든 경우를 시험해 보는 것은 현실적으로 불가능합니다. 공개 경쟁이라는 절차 덕분에 숨겨진 약점이 있다는 의심도 상대적으로 적었습니다.

암호문이 바뀌지 않았는지도 확인한다

AES 자체는 블록 하나를 암호화하는 도구일 뿐이고, 실제로 긴 데이터를 다루려면 여러 블록을 이어 붙이는 방식인 "운용 모드"가 필요합니다. 초기에는 암호화만 하는 모드를 많이 썼는데, 암호문이 중간에 조작되어도 알아채지 못한다는 문제가 있었습니다. 그래서 암호화와 함께 변조 여부를 확인해 주는 인증 암호화가 보편화되었습니다. 그중 대표가 AES-GCM이며, NIST가 2007년에 표준 문서로 정리했습니다. 전송 중 보안 프로토콜인 TLS 1.3도 이런 인증 암호화 방식만 허용합니다.

이 사이트의 번역기가 사용하는 것도 이 AES-GCM입니다. 암호화와 복호화가 사용자의 브라우저 안에서 이루어지므로, 입력한 내용이 평문 그대로 서버에 전달되지 않는다는 점이 특징입니다. 1970년대에 정부와 은행이 쓰던 표준 암호 기술을 이제는 웹 브라우저가 기본으로 제공한다는 점이 인상적입니다. 직접 써 보려면 번역기 열기를 이용해 보세요.

역사를 돌아보면 암호 표준의 수명은 생각보다 깁니다. DES는 1970년대 후반부터 1990년대 말까지 20년 넘게 쓰였고, AES도 2001년 이래 지금까지 핵심 자리를 지키고 있습니다. 그동안 컴퓨터는 수만 배 빨라졌지만, 열쇠 길이를 늘리면 공격 비용은 기하급수적으로 커지기 때문에 설계가 탄탄한 암호는 오래 버틸 수 있습니다.

숫자로 따져 보는 열쇠 길이

DES의 56비트와 AES의 128비트가 얼마나 다른지 계산해 보겠습니다. 열쇠가 1비트 길어질 때마다 가능한 열쇠의 수는 정확히 두 배가 됩니다. 56비트라면 2의 56제곱, 즉 약 7.2×10의 16제곱 가지입니다. 128비트는 여기에 2의 72제곱을 곱한 수인데, 이는 약 4.7×10의 21제곱입니다. 즉 128비트 열쇠는 56비트 열쇠보다 약 4.7×10의 21제곱 배 많은 셈입니다. 1998년에 사흘이 걸렸던 일이 같은 방식으로는 천문학적인 시간이 걸린다는 뜻입니다.

그래서 "컴퓨터가 빨라지면 결국 뚫린다"는 말은 열쇠가 짧을 때만 맞습니다. 속도가 천 배 빨라져도 열쇠 길이를 10비트만 늘리면 그 이득이 사라집니다.

알아 두면 좋은 역사 이야기

공개 키 암호의 발상은 디피와 헬먼이 처음은 아니었다는 사실도 알려져 있습니다. 영국 정보통신본부(GCHQ)의 제임스 엘리스, 클리퍼드 콕스, 맬컴 윌리엄슨이 1970년대 초에 비슷한 개념을 먼저 찾아냈지만, 비밀로 분류되어 있다가 1997년에야 공개되었습니다. 학계에서의 공개 발표와 비밀 업무 사이의 이런 시차는 암호 역사에서 종종 나타납니다.

DES를 둘러싸고도 오랜 논쟁이 있었습니다. 설계 과정에 미국 국가안보국(NSA)이 관여했기 때문에, 일부러 약점을 넣었다는 의심이 퍼졌습니다. 이후 학계가 DES의 내부 구조를 오래 분석한 결과, 이론적인 공격에 대해서는 오히려 잘 설계되어 있었지만 열쇠 길이는 짧았다는 평가가 나왔습니다.

흔한 오해

자주 묻는 질문

AES-128과 AES-256 중 무엇을 써야 하나요?

현재 알려진 공격으로는 둘 다 충분히 안전합니다. 이 사이트의 번역기는 256비트 열쇠를 만드는 방식을 사용하는데, 여유를 더 두는 쪽을 택한 것입니다.

DES는 지금도 쓰이나요?

새로운 시스템에서는 쓰지 않습니다. 열쇠가 56비트로 너무 짧아 이미 1998년에 실제로 깨졌기 때문입니다.

공개 키 암호가 왜 이렇게 중요한가요?

미리 만나서 열쇠를 나눠 갖지 못하는 사이에서도 안전한 통신을 시작할 수 있게 해 주기 때문입니다. 웹 브라우저의 보안 연결이 바로 그런 예입니다.

양자 컴퓨터 시대를 준비하며

암호의 역사는 지금도 현재 진행형입니다. 충분히 큰 양자 컴퓨터가 만들어지면 RSA처럼 소인수분해에 기대는 공개 키 암호가 위험해질 수 있다는 점이 이론적으로 알려져 있습니다. 이에 대비해 NIST는 오랜 공모와 검증을 거쳐 2024년에 양자 컴퓨터에도 견딜 것으로 기대되는 최초의 양자 내성 암호 표준들을 발표했습니다. 반면 AES 같은 대칭 키 암호는 열쇠 길이를 충분히 길게 잡으면 큰 문제가 없다는 평가가 일반적입니다.

DES에서 AES로, 비밀 열쇠에서 공개 키로, 그리고 다시 양자 내성으로 이어지는 흐름에는 공통점이 있습니다. 약점은 공개적인 검증을 통해 드러나고, 표준은 그 결과를 반영해 바뀐다는 것입니다. 암호가 얼마나 단순하게 시작했는지 궁금하다면 시저 암호부터 시작하는 암호 이야기를 함께 읽어 보시기 바랍니다.

잘못된 내용이나 보완할 점을 발견하셨다면 소개·문의의 이메일로 알려 주세요. 확인 후 글을 고치고 수정일을 갱신합니다.

함께 읽으면 좋은 글

다음 글: 친구끼리 즐기는 암호 놀이 아이디어 10가지 → 번역기 열기