MK ATLAS· 과학 아틀라스

개념 풀이

암호 — 왜 자물쇠를 온 세상에 나눠 주나

처음 보는 사람과, 남들이 다 듣고 있는 자리에서, 미리 약속한 것도 없이 비밀을 주고받을 수 있을까요. 안 될 것 같은데 우리는 그것을 하루에도 수십 번씩 하고 있습니다. 그 일이 가능한 이유는 어떤 계산은 한쪽 방향으로만 쉽기 때문입니다.

이 글이 꿰는 질문들 25분 분량갱신 2026-09-09

옛날 암호는 열쇠를 나눠 갖는 일이었다

어릴 때 글자를 한 칸씩 밀어 쪽지를 적어 본 적이 있을 겁니다. 이것도 어엿한 이고, 이천 년 전 로마에서 쓰던 방법과 같습니다.

여기에는 방법과 열쇠가 함께 들어 있습니다. 한 칸씩 민다는 것이 방법이고, 몇 칸을 미느냐가 열쇠입니다.

그런데 여기에 오래된 골칫거리가 있습니다. 열쇠를 상대에게 어떻게 전하느냐입니다.

열쇠 말고 자물쇠를 나눠 주면 된다

1970년대에 이 고리를 끊는 생각이 나옵니다. 잠그는 열쇠와 여는 열쇠를 아예 다르게 만들자는 것이었습니다.

우체국에 열린 자물쇠를 잔뜩 쌓아 두고 누구든 가져가라고 합니다. 그 자물쇠를 채울 수는 있지만 여는 열쇠는 제 주머니에만 있습니다. 그러면 처음 보는 사람도 나에게 비밀을 보낼 수 있습니다. 미리 만날 필요가 없습니다.

이것이 입니다. 은행 사이트에 접속할 때마다 실제로 이 일이 일어납니다. 그 은행의 자물쇠를 받아다가 잠가서 보냅니다.

그런데 그런 자물쇠를 어떻게 만드나

여기서 수학이 들어옵니다. 한쪽 방향은 쉬운데 반대 방향은 어려운 계산이 필요합니다.

두 개를 곱해 보라고 하면 누구나 금방 합니다. 그런데 곱한 결과만 주고 원래 두 수를 찾아내라고 하면 이야기가 달라집니다. 수가 충분히 크면 세상의 컴퓨터를 다 붙여도 오래 걸립니다.

곱하기가 잠그는 일이고 되찾기가 여는 일입니다. 그러니 암호가 수학이라는 말은 비유가 아닙니다. 자물쇠의 재료가 쇠가 아니라 계산의 어려움입니다.

여기부터 조금 더

어렵다는 것은 불가능하다는 뜻이 아니다

여기서 정직하게 짚고 갈 대목이 있습니다. 소인수분해가 오래 걸린다는 것은 증명된 사실이 아닙니다.

아직 아무도 빨리 푸는 방법을 못 찾았다는 뜻입니다. 내일 누군가 찾아낼 수도 있습니다. 오늘 인터넷 전체가 그 위에 서 있는데, 그 바닥은 증명이 아니라 아직까지의 실패 위에 있습니다.

그래서 암호를 다루는 사람들은 안전하다고 말하지 않고 지금까지 알려진 공격으로는 몇 년이 걸린다고 말합니다. 컴퓨터가 빨라지면 자릿수를 늘리고, 방식이 흔들리면 갈아탑니다. 암호는 완성되는 물건이 아니라 계속 갈아입는 옷입니다.

방법은 공개하고 열쇠만 감춘다

그러면 방식을 숨겨 두면 더 안전하지 않을까요. 실제로 오랫동안 그렇게 했습니다.

그래서 나라마다 어떤 암호를 표준으로 쓸지 정하고, 그것을 검증하는 기관을 둡니다. 우리나라의 암호 표준을 만들고 검증하는 일을 대전의 국가보안기술연구소가 맡고 있습니다.

열쇠는 예측할 수 없어야 한다

자물쇠가 아무리 좋아도 열쇠를 짐작할 수 있으면 소용이 없습니다. 그래서 가 중요해집니다.

그런데 컴퓨터는 규칙대로만 움직이는 기계라 진짜 우연을 만들지 못합니다. 규칙으로 만든 수는 규칙을 아는 사람에게 예측됩니다. 실제로 뚫린 사고 가운데 상당수가 암호가 약해서가 아니라 열쇠 뽑는 방식이 뻔해서 생겼습니다.

그래서 예측할 수 없는 자연을 빌려 옵니다. 회로의 잡음, 붕괴처럼 언제 일어날지 정해지지 않은 일들입니다. 우연을 만들 수 없으니 자연에서 꿔 오는 것입니다.

양자컴퓨터가 오면

앞에서 곱하기는 쉽고 되찾기는 어렵다고 했습니다. 그 어려움이 오늘 인터넷의 기둥입니다.

그런데 양자컴퓨터라면 그 되찾기를 압도적으로 빨리 할 수 있다는 것이 이미 종이 위에서 증명됐습니다. 기계는 아직 없습니다. 증명만 있습니다.

그런데 실제로 뚫리는 곳은 수학이 아니다

여기까지 읽으면 암호가 전부인 것 같지만, 현장에서 사고가 나는 자리는 대개 다른 데입니다.

  1. 사람 — 그럴듯한 메일에 속아 비밀번호를 직접 넘겨줍니다.
  2. 설정 — 자물쇠는 좋은데 문을 열어 두고 잠갔다고 생각합니다.
  3. 낡음 — 고쳐야 할 프로그램을 몇 년째 그대로 씁니다.
  4. 열쇠 보관 — 가장 튼튼한 자물쇠를 달고 열쇠를 문 앞 화분 밑에 둡니다.

그래서 보안 연구는 절반이 수학이고 절반이 사람과 살림입니다. 어느 쪽 하나만 잘해서는 지켜지지 않습니다.

금고를 부수지 않고 소리를 듣는다

재미있는 공격이 하나 더 있습니다. 암호를 푸는 대신 계산하는 기계를 옆에서 관찰하는 방법입니다.

기계가 계산할 때 쓰는 전기의 양은 다루는 숫자에 따라 아주 조금씩 다릅니다. 걸리는 시간도 그렇습니다. 그 미세한 차이를 오래 재면 열쇠가 드러납니다. 금고를 부수는 대신 다이얼 돌리는 소리를 듣는 셈입니다.

그래서 요즘 보안 칩은 일부러 쓸데없는 계산을 섞어 넣거나 전력 파형을 고르게 만듭니다. 이 대목에서 수학이 아니라 전기와 계측을 아는 사람이 필요해집니다.

이 일을 하는 사람이 되려면

수학만 잘하면 되는 분야가 아닙니다.

  1. 암호 자체를 설계하고 따져 보는 사람 — 수학, 그중에서도 정수론 쪽입니다.
  2. 그것을 프로그램과 칩에 옮기는 사람 — 컴퓨터공학과 전자공학입니다. 여기서 실수가 제일 많이 납니다.
  3. 전기 파형과 시간을 재서 새는 곳을 찾는 사람 — 계측과 전자회로 쪽입니다.
  4. 먼저 공격해 보는 사람 — 지키려면 공격하는 법을 알아야 합니다.
  5. 규칙과 기준을 만드는 사람 — 법과 정책, 인증 심사 쪽입니다.
  6. 사람을 가르치는 사람 — 앞의 목록에서 가장 자주 뚫리는 곳이 사람이니까요.

세 번째 줄이 뜻밖일 겁니다. 암호를 깨는 데 오실로스코프를 쓰는 자리가 있습니다. 회로를 만지던 사람이 그대로 이어지는 길입니다.

네 번째 줄은 자격이 필요한 일입니다. 허락 없이 남의 시스템을 두드리는 것은 범죄입니다. 이 일은 계약과 절차 안에서만 합니다.

이런 일을 하는 곳이 대전 유성구의 국가보안기술연구소입니다. 전자통신연구원에서 갈라져 나왔습니다.

남은 질문안전하다는 말이 아직 아무도 못 풀었다는 뜻뿐이라면 — 우리는 무엇을 믿고 비밀을 맡기는 걸까요?