암호학의 짧은 역사: 시저에서 오늘까지

암호학의 역사는 수천 년에 이릅니다. 율리우스 카이사르는 군사 통신에 단순 알파벳 이동 암호를 사용했습니다. 각 문자를 알파벳에서 3칸 뒤 문자로 바꾸는 방식이었죠. 오늘날에는 단순해 보이지만, 키를 모르면 당시에는 해독이 매우 어려웠습니다.

16세기에는 블레즈 드 비즈네르가 다중 알파벳 암호를 제시했습니다. 메시지의 각 문자가 반복되는 비밀 키에 따라 서로 다른 이동값으로 암호화되는 방식입니다. 이후 19세기에 찰스 배비지와 프리드리히 카시스키가 통계적 반복 패턴 분석으로 이를 깨는 방법을 밝혔습니다.

20세기의 전환점은 2차 세계대전 당시 나치 독일이 사용한 에니그마입니다. 키 입력마다 암호 변환을 바꾸는 로터 구조 때문에 난공불락처럼 보였지만, 앨런 튜링과 블레츨리 파크 팀이 전기기계식 "봄브"를 활용해 체계적으로 해독했습니다.

오늘날 암호학은 어디에나 있습니다. HTTPS는 브라우징을, Signal은 메시지를, 블록체인은 트랜잭션을 보호합니다. 수학은 시저 시대보다 훨씬 복잡해졌지만, 핵심 직관은 같습니다. 정당한 수신자만 이해할 수 있도록 정보를 변환하는 것입니다.

알아두면 좋은 고전 코드 5가지

1. 치환 암호

각 문자를 고정 규칙에 따라 다른 문자(또는 기호)로 바꿉니다. 시저 암호가 가장 단순한 사례입니다. 완전 단일 치환은 이론상 26! 경우의 수가 있지만, 문자 빈도 분석에는 취약합니다.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

2. 전치 암호

문자를 바꾸지 않고 순서만 재배열합니다. 예를 들어 열 단위로 쓰고 행 단위로 읽는 방식입니다. 문자 빈도 자체는 유지되어 치환보다 탐지가 까다로운 경우가 있습니다.

3. 모스 부호

1836년 새뮤얼 모스가 만든 방식으로, 엄밀히는 암호화보다 인코딩에 가깝습니다. 문자를 점·대시 시퀀스로 바꾸어 전신으로 전달하죠. 정보의 이진 표현이라는 핵심 아이디어를 보여 준다는 점에서 중요합니다.

4. 이진 코드

모든 문자는 ASCII에 따라 0과 1 시퀀스로 표현할 수 있습니다(65=A, 66=B 등). 자체로 비밀 코드는 아니지만, 현대 암호학이 비트 연산 위에서 동작한다는 점을 이해하는 출발점입니다.

5. 시각 코드

프리메이슨 격자(Pigpen), 세마포어, 템플러 코드처럼 문자를 시각 기호로 대체하는 방식입니다. 보안성은 수학적 강도보다 난독화에 기대지만, 암호 사고를 익히는 교육용으로는 매우 유용합니다.

코드 브레이킹의 논리: 해독은 어떻게 이뤄질까?

크립트애널리시스(암호 해독)는 대상 시스템이 달라도 공통된 절차를 따릅니다.

  • 빈도 분석 : 단일 치환 암호는 원문 문자 빈도 특성을 일정 부분 보존합니다. 이를 이용해 후보 치환을 좁힙니다.
  • 반복 패턴 탐지 : 짧고 자주 쓰는 단어 패턴은 암호문에도 흔적을 남깁니다. 이를 통해 부분 치환을 유추할 수 있습니다.
  • 사전 공격 : 무차별 대입 대신 가능한 키 목록(사전)을 우선 시험해 효율을 높입니다.
  • 문맥 제약 활용 : 블레츨리 파크처럼, 메시지 시작 문구의 관습을 단서로 삼아 해독의 출발점을 고정합니다.

Décodeur: Mastermind의 현대적 변주

Kognify의 Décodeur는 1970년 Mordecai Meirovitz가 만든 Mastermind에서 직접 영감을 받았습니다. 규칙은 간단합니다. 임의의 숫자 코드가 생성되고, 플레이어는 제한된 시도 안에 이를 맞혀야 합니다. 매 시도 뒤에는 두 가지 힌트가 주어집니다.

  • 값과 위치가 모두 맞는 숫자
  • 값은 맞지만 위치가 다른 숫자

이 메커니즘은 실제 크립트애널리시스와 동일한 구조를 가집니다. 각 시도는 가설, 각 힌트는 제약이며, 가능한 해 공간은 점점 줄어듭니다. Décodeur 숙련자는 전문 해독가와 유사한 소거 논리를 자연스럽게 사용하게 됩니다.

도널드 크누스는 1977년, 4자리·6색 Mastermind에서 최대 5번 이내에 항상 맞히는 전략이 존재함을 보였습니다. 매 턴 얻는 정보를 최대화하는 minimax 전략으로, 과학적 탐구와 해독 사고의 핵심과 맞닿아 있습니다.

코드·논리를 탐험하는 Kognify 게임 6선

🔐 5분 만에 나만의 비밀 코드를 만들고 해독하기
  • 1단계 — 이동값 정하기 : 1~25 사이 숫자를 고르세요(예: 7). 이것이 키입니다.
  • 2단계 — 암호화 : 메시지의 각 문자를 7칸 뒤 문자로 바꿉니다(A→H, B→I, Z→G).
  • 3단계 — 전송 : 암호문을 보내세요. 이동값 7을 아는 사람만 바로 읽을 수 있습니다.
  • 키 없이 해독하려면 : 25개 이동값을 순서대로 시험하거나, 가장 자주 나온 문자를 기준으로 가설을 세우세요.
  • 상급 단계 : 키워드(예: "KOGNIFY")를 써서 비즈네르 암호를 만들어 보세요. 키워드 각 문자에 따라 이동값이 달라집니다.

일상 속 암호학

브라우저 주소창의 자물쇠 아이콘 뒤에는 복잡한 암호 교환이 숨어 있습니다. HTTPS는 TLS를 사용하며, 키 교환에는 비대칭(RSA/ECC), 데이터 흐름 보호에는 대칭(AES) 방식을 결합합니다. Signal·WhatsApp은 Double Ratchet으로 키 유출 상황에서도 지속 기밀성을 강화합니다.

블록체인은 SHA-256 같은 암호학적 해시 함수에 기반합니다. 해시는 임의 길이 데이터를 고정 길이 지문으로 바꾸는 단방향 함수이며, 무차별 대입 없이 역산이 사실상 불가능합니다. 파일·메시지 무결성 검증도 같은 원리로 동작합니다.

이런 원리를 이해하는 데 고급 수학 학위가 꼭 필요한 것은 아닙니다. 비밀 코드 게임은 매우 좋은 입문 경로입니다. 해 공간, 누적 제약, 점진적 추론에 대한 직관을 길러 주기 때문입니다.

비밀 코드 게임 FAQ

시저 암호란 무엇이며 어떻게 해독하나요?
시저 암호는 가장 단순한 치환 암호입니다. 각 문자를 일정 칸 이동시키며, 고전적으로는 +3 이동(A→D, B→E 등)을 사용합니다. 키를 모르면 25개 이동값을 전부 시도하거나 빈도 분석으로 후보를 줄일 수 있습니다.
Décodeur와 전통적인 암호 게임의 차이는 무엇인가요?
Kognify의 Décodeur는 Mastermind형 숫자 코드 추론 게임입니다. 시도마다 부분 힌트를 받아 가설을 갱신하므로, 빈도 분석·치환 중심의 고전 암호 게임을 더 직관적으로 게임화한 형태라고 볼 수 있습니다.
에니그마는 정말 '게임 같은 방식'으로 해독됐나요?
엄밀히 게임은 아니지만, 앨런 튜링 팀의 접근은 퍼즐식 제약 추론과 매우 닮아 있었습니다. 반복 패턴, 운용 실수, 기계 제약을 단서로 소거해 답을 좁혀 갔고, 이는 Déduction Logique나 Décodeur의 사고 구조와 유사합니다.
치환 암호는 지금도 실제로 쓰이나요?
단순 치환(시저, 비즈네르)은 현대 보안에서는 거의 사용되지 않습니다. 다만 이들이 보여 준 원리(혼돈·확산·치환)는 AES 같은 현대 암호에서도 핵심입니다. 오늘날은 128~256비트 키 기반 수학 연산으로 보안 강도를 확보합니다.
Kognify에서 실제 암호학 사고와 가장 가까운 게임은 무엇인가요?
Décodeur가 가장 가깝습니다. 부분 단서에서 가설을 세우고 반례를 제거하며 정답을 좁히는 과정이 실제 해독 사고와 거의 같습니다. Déduction Logique와 Zone Piégée도 제약 기반 추론 구조를 공유합니다.