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

시저 암호부터 시작하는 암호 이야기

암호라고 하면 복잡한 수식이나 컴퓨터를 떠올리기 쉽지만, 역사에 남은 가장 유명한 암호 가운데 하나는 연필과 종이만 있으면 만들 수 있을 만큼 단순합니다. 바로 알파벳을 일정한 칸수만큼 밀어서 쓰는 시저 암호입니다. 이 글에서는 시저 암호가 어떻게 생겨났는지, 직접 손으로 암호화하고 푸는 방법은 무엇인지, 그리고 이렇게 단순한 암호가 왜 오늘날에는 장난감 수준으로 평가받는지를 차근차근 살펴봅니다.

카이사르는 정말 암호를 썼을까

시저 암호라는 이름은 고대 로마의 정치가이자 장군인 율리우스 카이사르(영어식 발음으로 줄리어스 시저)에서 왔습니다. 로마의 역사가 수에토니우스가 쓴 《열두 명의 카이사르》에는, 카이사르가 중요한 편지를 보낼 때 글자를 바꿔 쓰는 방식을 사용했다는 기록이 남아 있습니다. 그 방법은 알파벳의 각 글자를 세 칸 뒤의 글자로 바꾸는 것이었다고 전해집니다. 즉 A는 D가 되고, B는 E가 되는 식입니다.

당시에는 글을 읽을 수 있는 사람 자체가 많지 않았고, 전령이 편지를 가로채더라도 글자가 뒤섞여 있으면 곧바로 내용을 알아보기 어려웠을 것입니다. 오늘날의 기준으로는 보안이라 부르기 민망한 수준이지만, 당시에는 이것만으로도 충분히 실용적인 비밀 유지 수단이었다고 볼 수 있습니다. 수에토니우스는 초대 황제 아우구스투스도 비슷한 방식을 썼다고 전하는데, 그는 한 칸만 밀었다고 합니다.

손으로 해 보는 시저 암호

원리를 이해하는 가장 좋은 방법은 직접 해 보는 것입니다. 알파벳을 한 줄로 적고, 그 아래에 세 칸 밀린 줄을 맞춰 적으면 됩니다.

이제 HELLO를 암호화해 보겠습니다. H는 세 칸 뒤인 K, E는 H, L은 O가 되고 다음 L도 O, 마지막 O는 R이 됩니다. 결과는 KHOOR입니다. 받는 사람은 반대로 세 칸씩 앞으로 당기기만 하면 원문을 얻습니다.

끝부분을 넘어가는 글자는 처음으로 돌아갑니다. 예를 들어 X는 세 칸 뒤가 알파벳 끝을 넘어가므로 A로, Y는 B로, Z는 C로 바뀝니다. 이렇게 순환하는 계산을 수학에서는 나머지 연산이라고 부르는데, 알파벳 26개를 기준으로 하기 때문에 "26으로 나눈 나머지"를 쓴다고 이해하면 됩니다.

연습 삼아 한 가지 더 해 보겠습니다. 다음 암호문은 같은 규칙으로 만든 것입니다.

WKLV LV D VHFUHW

각 글자를 세 칸씩 앞으로 당기면 W는 T, K는 H, L은 I, V는 S가 되어 THIS가 됩니다. 이어서 LV는 IS, D는 A, VHFUHW는 SECRET이 됩니다. 전체 문장은 THIS IS A SECRET입니다.

열쇠를 바꾸면 더 안전할까

세 칸이라는 숫자는 카이사르가 정한 값일 뿐, 꼭 3일 필요는 없습니다. 밀어 주는 칸수를 바꾸면 다른 암호가 되는데, 이 칸수가 바로 암호의 열쇠(키)입니다. 암호를 만드는 방법, 즉 알고리즘은 "글자를 일정하게 민다"로 공개되어 있어도, 몇 칸을 미는지만 모르면 읽을 수 없다는 구조입니다. 이 구조는 훗날 현대 암호에서도 그대로 이어지는 기본 발상입니다.

인터넷 게시판에서 스포일러를 가릴 때 쓰던 ROT13도 시저 암호의 한 종류입니다. 13칸을 미는 방식인데, 알파벳이 26자이므로 13칸을 두 번 밀면 정확히 제자리로 돌아옵니다. 그래서 암호화와 복호화에 똑같은 작업을 쓸 수 있다는 재미있는 특징이 있습니다. 다만 이것은 보안이 아니라 "눈에 바로 띄지 않게 하는 용도"였습니다.

왜 시저 암호는 쉽게 깨질까

문제는 열쇠로 쓸 수 있는 값이 너무 적다는 점입니다. 영어 알파벳 기준으로 0칸은 아무 변화가 없으니 제외하면, 가능한 열쇠는 1칸부터 25칸까지 겨우 25가지입니다. 상대가 "시저 암호구나"라고 눈치채기만 하면 25가지를 전부 시험해 보면 됩니다. 이런 방식을 무차별 대입 공격이라고 합니다.

앞서 본 KHOOR를 예로 들면, 1칸을 당겼을 때는 JGNNQ, 2칸이면 IFMMP, 3칸이면 HELLO입니다. 세 번째에서 뜻이 통하는 영어 단어가 나오므로 곧바로 답을 알 수 있습니다. 종이에 쓰더라도 몇 분이면 끝나고, 컴퓨터라면 눈 깜짝할 사이입니다.

열쇠를 몰라도 푸는 방법이 하나 더 있습니다. 글자마다 항상 같은 글자로 바뀌기 때문에, 원문에서 자주 나오는 글자는 암호문에서도 자주 나옵니다. 영어에서 가장 흔한 글자는 E인데, 암호문에서 H가 가장 많이 보인다면 E가 H로 바뀌었다고 추측할 수 있고, 그러면 3칸을 밀었다는 사실이 바로 드러납니다. 이 원리는 빈도 분석: 암호는 어떻게 깨지는가에서 더 자세히 다룹니다.

한글로도 밀어 볼 수 있을까

시저 암호는 알파벳 26자를 기준으로 설명하지만 원리는 어떤 글자 체계에도 적용됩니다. 한글 자음 14개를 순서대로 놓고 한 칸씩 밀거나, 모음 10개를 따로 밀어 볼 수도 있습니다. 예를 들어 자음만 한 칸씩 민다면 "ㄱ"은 "ㄴ"이 되고 "ㄴ"은 "ㄷ"이 됩니다. 다만 글자 수가 적어서 열쇠의 경우의 수가 더 줄어들고, 한글은 자음과 모음이 합쳐진 음절 단위로 쓰기 때문에 손으로 계산하기가 훨씬 번거롭습니다. 그래서 놀이로는 재미있어도 실제 비밀 유지 수단으로는 더욱 부적합합니다. 규칙이 단순할수록 만들기도 풀기도 쉽다는 것을 몸으로 느껴 보는 정도가 알맞습니다.

스스로 풀어 보는 연습 문제

읽기만 해서는 손에 익지 않으니 세 문제를 풀어 보시기 바랍니다. 풀이는 바로 아래에 있으니 먼저 종이에 적어 본 뒤 확인해 보세요.

  1. 세 칸 밀기로 만든 FDHVDU를 풀어 보세요.
  2. ZOO를 다섯 칸 밀어서 암호화해 보세요.
  3. 열쇠를 모르는 MJQQT를 25가지 후보 중에서 찾아 풀어 보세요.

풀이

첫 번째는 각 글자를 세 칸씩 앞으로 당깁니다. F는 C, D는 A, H는 E, V는 S, D는 A, U는 R이므로 답은 CAESAR입니다. 두 번째는 Z에서 다섯 칸을 가면 알파벳 끝을 넘어 처음으로 돌아가 E가 되고, O는 T가 되니 ETT입니다. 세 번째는 한 칸씩 당겨 보면 LIPPS, 두 칸이면 KHOOR처럼 뜻 없는 글자가 나오다가 다섯 칸에서 HELLO가 나옵니다. 즉 열쇠는 5입니다.

여기서 규칙 하나를 발견할 수 있습니다. 5칸 밀어서 만든 암호는 같은 방향으로 21칸 밀어도 풀립니다. 알파벳이 26개이므로 암호화한 칸수와 푸는 칸수를 더해 26이 되면 제자리로 돌아오기 때문입니다.

시저 암호에 대한 흔한 오해

자주 묻는 질문

숫자나 문장부호도 밀어야 하나요?

전통적인 방식은 알파벳 글자만 밀고 숫자와 기호는 그대로 둡니다. 숫자까지 밀려면 0부터 9까지 10개를 따로 순환시키는 규칙을 약속하면 되지만, 어느 쪽이든 안전성이 달라지지는 않습니다.

이 사이트의 번역기는 시저 암호를 쓰나요?

아닙니다. 번역기는 브라우저 안에서 AES-GCM으로 암호화한 결과를 한글 비밀어나 영문숫자 문자열로 보기 좋게 바꾸어 보여 줄 뿐입니다. 글자를 밀어서 만드는 방식이 아니므로 시저 암호처럼 몇 가지 후보를 시험해서 풀 수는 없습니다.

시저 암호는 어디에 쓸 만한가요?

수업에서 암호의 기본 개념을 보여 주거나, 친구끼리 쪽지를 주고받는 놀이로는 훌륭합니다. 다만 개인정보나 비밀번호처럼 실제로 지켜야 할 내용에는 쓰면 안 됩니다.

시저 암호가 남긴 것

시저 암호는 안전하지 않지만 암호학을 처음 배울 때 빠지지 않는 입문서입니다. "평문을 규칙에 따라 암호문으로 바꾸고, 열쇠를 아는 사람만 되돌릴 수 있다"는 현대 암호의 뼈대가 이미 이 안에 모두 들어 있기 때문입니다. 다만 현대 암호는 열쇠의 경우의 수가 천문학적으로 많고, 글자 하나하나가 서로 복잡하게 섞이도록 설계되어 있다는 점에서 근본적으로 다릅니다.

예를 들어 오늘날 널리 쓰이는 AES-256은 가능한 열쇠가 2의 256제곱 가지입니다. 25가지와는 비교조차 할 수 없는 규모입니다. 이 사이트의 번역기도 브라우저 안에서 AES-GCM이라는 현대 암호를 사용합니다. 그래도 "글자를 바꿔 친구에게만 통하게 한다"는 놀이의 감각은 2천 년 전 카이사르의 편지와 크게 다르지 않습니다. 직접 만들어 보고 싶다면 번역기 열기에서 가볍게 체험해 볼 수 있습니다. 종이 위의 세 칸 밀기에서 출발해, 이 이야기의 다음 장인 비제네르 암호에서 에니그마까지로 이어서 읽어 보시기 바랍니다.

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

함께 읽으면 좋은 글

다음 글: 비제네르 암호에서 에니그마까지 → 번역기 열기