레일 펜스 암호
메시지를 여러 레일에 걸쳐 대각선으로 쓴 다음 한 줄씩 읽어 내려가는 고전적인 지그재그 전치 암호, 레일 펜스 암호를 암호화하고 복호화해 보세요. 레일과 오프셋을 조정하면 울타리가 실시간으로 만들어지는 모습을 볼 수 있습니다. 모든 작업은 브라우저에서 실행됩니다.
레일
오프셋
레일은 지그재그가 사용하는 줄 수를 정합니다. 오프셋은 첫 글자가 울타리의 어느 위치에서 시작할지를 옮기는데, 표준 암호를 쓰려면 0으로 두세요.
위에 텍스트를 입력하면 레일 펜스 결과가 여기에 표시됩니다.
지그재그 울타리 도식
WEAREDISCOVERED라는 단어를 사용한 예시입니다. 위에 직접 텍스트를 입력하면 울타리 위에 나타납니다.
레일 펜스 암호 사용 방법
- 1
암호화 또는 복호화 선택
평문을 레일 펜스 암호문으로 바꾸려면 암호화를, 암호문에서 원래 메시지를 되살리려면 복호화를 선택하세요.
- 2
레일과 오프셋 설정
지그재그가 사용할 레일 개수를 고르세요. 표준 암호를 쓰려면 오프셋을 0으로 두고, 오프셋을 적용해 암호화한 메시지에 맞추려면 값을 바꾸세요. 복호화할 때는 암호화에 쓰였던 것과 같은 설정을 사용하세요.
- 3
텍스트 입력 또는 붙여넣기
메시지를 입력하세요. 입력하는 즉시 암호가 자동으로 적용되고, 아래의 지그재그 울타리 도식이 갱신되어 텍스트가 레일 위에 정확히 어떻게 놓이는지 보여 줍니다.
- 4
결과 읽기, 보기, 공유
변환된 텍스트가 즉시 나타납니다. 울타리 도식을 열어 지그재그를 확인한 뒤, 결과를 복사하거나 텍스트 파일로 다운로드하거나, 입력한 설정과 텍스트를 그대로 다시 불러오는 링크로 공유하세요.
레일 펜스 암호 이해하기
레일 펜스 암호란 무엇인가요?
레일 펜스 암호는 지그재그 암호라고도 불리는 고전적인 전치 암호입니다. 치환 암호처럼 글자를 다른 글자로 바꾸는 대신, 모든 글자를 그대로 둔 채 그 순서만 재배열합니다. 메시지는 레일이라 부르는 여러 개의 가상 가로줄을 따라 내려갔다 올라가는 지그재그 모양으로 쓰이고, 그 레일을 차례차례 읽어 암호문이 만들어집니다.
비밀이라고는 레일의 개수뿐이므로 레일 펜스는 손으로 쓰기에 가장 단순한 암호 중 하나입니다. 미국 남북 전쟁에서 빠른 야전 암호로 쓰였고, 지금도 퍼즐과 방 탈출 게임, 캡처 더 플래그 대회, 그리고 전치를 처음 소개할 때 으레 첫 예시로 등장하는 입문 암호학 수업에서 빠지지 않는 단골입니다.
레일 펜스 암호의 작동 원리
예를 들어 레일을 세 개 고른다고 합시다. 맨 위 레일에서 시작해 한 칸에 한 글자씩 메시지를 쓰면서, 대각선으로 맨 아래 레일까지 내려갔다가 다시 맨 위로 튀어 올라오고, 또 내려가며 지그재그를 그립니다. 모든 글자를 배치하고 나면, 맨 위 레일부터 맨 아래까지 한 레일씩 통째로 읽어 내려가 그 조각들을 이어 붙여 암호문을 만듭니다.
모든 글자가 지그재그에 참여하므로, 공백과 문장 부호도 제자리에 남지 않고 글자와 똑같이 자리를 옮깁니다. 글자 수는 결코 변하지 않는데, 바로 이것이 전치 암호의 특징입니다. 암호문은 언제나 원래 메시지의 글자를 재배열한 애너그램입니다.
실제 예시
메시지 WEAREDISCOVEREDFLEEATONCE를 레일 세 개로 써 봅시다. 지그재그로 쓰면 맨 위 레일에는 W, E, C, R, L, T, E가, 가운데 레일에는 E, R, D, S, O, E, E, F, E, A, O, C가, 맨 아래 레일에는 A, I, V, D, E, N이 놓입니다. 레일을 순서대로 읽으면 WECRLTE, 그다음 ERDSOEEFEAOC, 그다음 AIVDEN이 됩니다.
이어 붙이면 암호문은 WECRLTEERDSOEEFEAOCAIVDEN입니다. 원래 글자가 모두 그대로 남아 있고 새로운 순서로 뒤섞였을 뿐이며, 결과의 길이가 입력과 정확히 같다는 점을 눈여겨보세요.
레일 펜스 암호를 복호화하는 방법
복호화하려면 먼저 알려진 레일 개수와 같은 메시지 길이에 맞춰 빈 울타리를 다시 세우고, 각 위치가 어느 레일에 속하는지 표시합니다. 그 표시를 세어 보면 각 레일에 글자가 몇 개씩 놓이는지 알 수 있어, 암호문을 레일마다 알맞은 크기의 조각으로 자를 수 있습니다.
그런 다음 각 조각을 제 레일에 다시 올려놓고, 원래의 지그재그 순서대로(맨 위 레일에서 맨 아래로 튀었다가 다시 올라오는 식으로) 울타리를 읽어 평문을 되살립니다. 이 도구는 그 모든 과정을 대신 해 줍니다. 복호화로 전환하고, 암호화에 쓰였던 것과 같은 레일 개수와 오프셋을 설정한 뒤 암호문을 붙여넣으세요.
레일, 오프셋, 그리고 키
레일의 개수가 곧 암호 키입니다. 레일이 하나면 지그재그가 없어 텍스트가 그대로 남으므로, 쓸모 있는 범위는 레일 두 개부터 시작합니다. 레일 수가 메시지 길이에 가까워질수록 지그재그가 평평해지고 뒤섞이는 정도가 약해지기 때문에, 대략 두 개에서 메시지 길이의 절반 사이 값만이 텍스트를 의미 있게 재배열합니다.
선택적 오프셋은 마치 첫 글자가 맨 위 레일이 아니라 울타리 중간쯤에서 시작한 것처럼 지그재그의 출발점을 옮깁니다. 오프셋을 0으로 두면 교과서에 나오는 표준 암호가 되고, 값을 바꾸면 관련된 변형이 만들어지며, 복호화하려면 같은 오프셋을 다시 설정해야 합니다. 패턴이 반복되기 전까지 한 번의 완전한 지그재그 주기는 2 × (rails − 1) 칸에 걸쳐 있습니다.
레일 펜스 암호를 깨는 방법
레일 펜스는 키 공간이 아주 작습니다. 주어진 길이의 메시지에 대해 시도해 볼 만한 레일 개수가 몇 가지뿐이라, 공격자는 그저 레일 두 개로 복호화해 보고, 그다음 세 개, 그다음 네 개 식으로 해 보면서 말이 되는 결과를 읽으면 됩니다. 이 전수 탐색은 손으로 해도 잠깐이면 끝나고 컴퓨터로는 순식간입니다.
이 암호는 순수한 전치이므로 글자 자체는 손대지 않아, 암호문의 글자 빈도가 보통의 텍스트와 정확히 일치합니다. 바로 그 점이 단서가 됩니다. 글자 통계는 정상인데 읽으면 횡설수설인 텍스트는, 레일 펜스 같은 전치 암호가 쓰였다는 강력한 신호입니다.
레일 펜스 암호는 안전한가요?
아닙니다. 가능한 키가 워낙 적고 전수 탐색으로 금세 깨지므로, 레일 펜스는 비밀로 지켜야 하는 정보에 아무런 실질적 보호도 제공하지 못합니다. 역사적으로는 강력함보다 야전에서의 속도와 단순함 때문에 높이 평가되었고, 더 강한 합성 암호를 만들기 위해 치환 단계와 결합되기도 했습니다.
오늘날 그 가치는 교육용이자 오락용입니다. 전치라는 개념을 가르치는 이상적인 방법이고, 퍼즐과 게임을 위한 즐거운 장치이며, 암호학 역사의 작은 한 조각입니다. 진정한 보안을 위해서는 AES 같은 현대 알고리즘을 대신 사용합니다.
자주 묻는 질문
레일 펜스 암호란 무엇인가요?
레일 펜스 암호는 어떻게 작동하나요?
레일 펜스 예시를 보여 줄 수 있나요?
레일 펜스 암호를 어떻게 복호화하나요?
레일 개수는 무슨 역할을 하나요?
레일 펜스 암호에서 오프셋이란 무엇인가요?
레일 펜스 암호는 공백과 문장 부호를 바꾸나요?
레일 펜스 암호는 어떻게 깨나요?
레일 펜스는 왜 전치 암호라고 부르나요?
레일 펜스 암호는 안전한가요?
내 텍스트가 서버로 전송되나요?
레일 펜스 암호를 코드로 어떻게 작성하나요?
관련 도구
이런 편리한 도구도 함께 사용해 보세요