2014년 12월 25일 목요일

옛날에는 어떤 암호를 사용했을까?

기원전 100년경 알파벳 일정한 수만큼 평행이동하는 '시저암호' 사용했죠
바둑판 모양 안에 가로로 나열한 후 세로로 읽어서 만드는 암호도 있어요
개인 정보 유출 사건 많은 요즘, 자신만의 암호를 만들어 보세요


"한 인터넷 포털사이트의 이메일 계정에 포함된 개인 정보가 유출됐다고 합니다. 유출된 개인 정보에는 사용자 이름과 주민등록번호, 휴대전화번호, 비밀번호까지 포함된 것으로 알려졌습니다."

저녁을 먹고 나서 우빈이가 아빠와 함께 거실에서 뉴스를 보고 있었어요. 인터넷 사용자의 개인 정보가 또 유출되었다는 소식에 아빠께서 한숨을 쉬시네요.

"개인 정보 유출 사건이 점점 많아져 걱정이구나. 이메일 계정 암호를 또 어떻게 바꿔야 하나."

"아빠, 요즘에는 자동으로 비밀번호를 만들어주는 애플리케이션이나 프로그램도 있대요. 그런데 컴퓨터가 없던 옛날에는 비밀번호와 같은 암호를 만들지 못했겠지요?"

"그렇지 않아. 지금처럼 발달한 암호 체계는 아니었지만, 옛날 사람들도 전쟁이나 외교에서 다양한 방식의 암호를 사용했단다. 어떤 내용을 다른 사람 모르게 비밀스럽게 전달하고자 했거든. 지금부터 옛날에는 암호가 어떻게 이용되었고, 이런 암호 체계에 수학이 어떻게 사용되었는지 이야기해줄게."

우아~ 옛날 사람들도 암호를 사용했군요! 그런데 암호 속에도 수학의 원리가 쓰였다니 참 신기하지요? 우빈이는 아빠 말씀에 귀를 기울였어요.

기사 관련 일러스트
"암호란 중요한 정보를 지키기 위해 만든 신호나 부호를 말해. 옛날에는 원래 메시지의 특정 문자를 어떤 규칙에 따라 다른 문자로 바꾸거나 문자들의 위치를 서로 바꾸는 방식으로 암호를 만들었어. 암호가 처음 사용된 시기는 기원전 5세기 무렵으로 알려졌는데, 기원전 1세기경에는 알파벳을 일정하게 건너뛰어 원래 메시지의 문자를 바꾸는 암호가 있었단다."

"수학 시간에 배운 '뛰어 세기(수를 일정하게 커지거나 작아지도록 건너서 세는 것)'와 비슷한 건가요?"

"그렇지. 기원전 100년경 로마에서 활약한 줄리어스 시저(Julius Caesar)가 수하 장군들에게 비밀리에 명령을 내리기 위해 이러한 암호를 썼어. 그래서 '시저 암호(Caesar cipher)'라고 부르지. 이 암호는 원래 메시지의 각 문자를 정해진 규칙에 따라 다른 문자로 대체하는 방식인데, 원래 문장의 알파벳을 일정한 수만큼 평행이동하여 암호를 만든단다."

"음…. 말로만 들어서는 잘 모르겠어요. 간단한 예를 들어주시면 안 돼요?"

"만약 시저가 수하 장군들에게 오후 2시에 공격을 시작하라는 내용의 메시지 'TWO PM'을 보내고 싶어 한다고 해보자. 시저 암호에서는 'TWO PM'의 각 문자를 알파벳 순서로 볼 때 3자리 뒤에 있는 알파벳으로 바꿔주는 거야. 다시 말해 T는 'W', W는 'Z', O는 'R'이 된단다."

"아하! 그렇다면 시저의 장군들은 'WZR SP'라는 메시지를 받았겠네요?"

아빠의 설명을 듣던 우빈이가 자신 있게 대답했어요.

"옳지! 우리 우빈이가 제대로 이해했구나."

"그런데 계속 3자리 뒤로 이동한 알파벳으로 바꾸면 암호를 모든 사람이 다 알게 되지 않을까요?"

"물론이야. 시저 암호는 알파벳 순서에서 3자리 뒤로 이동했지만, 1자리 또는 10자리, 20자리 뒤로 이동하는 암호도 사용되었지."

"그럼 50자리, 100자리 뒤로 이동하는 것도 되나요?"

"그렇지 않아. 알파벳은 26자밖에 없기 때문에 26자리를 이동하면 원래의 알파벳과 같아지거든. 그래서 25자리까지의 이동만 의미가 있단다."

"아하~ 그렇구나. 암호를 만드는 또 다른 방식은 없나요?"

"원래 메시지에서 사용한 문자를 적절한 규칙에 따라 위치(순서)를 바꾸는 방법도 있단다. 문장 형태를 바꿔 암호를 풀기 어렵게 만드는 것이지. 대표적으로는 바둑판 모양으로 된 'A(열의 수)×B(행의 수)' 형태의 사각형 안에 원래 메시지에 쓰인 문자들을 행(行) 방향으로 나열한 다음, 이를 열(列) 방향으로 읽어서 암호문으로 출력하는 방법이 있단다. 즉, 원래 메시지의 문장을 바둑판 모양의 사각형 안에 가로로 한 줄씩 나열한 후 세로로 한 줄씩 읽으면 되는 거란다."

"아빠, 이번 암호도 너무 어려워요. 이해하기 쉽게 예를 또 하나 들어주세요."

"그럴까? 'park at twelve o'clock am'이라는 메시지를 암호로 만든다고 해보자. 암호를 만들 때 쓰는 바둑판 모양 사각형의 크기는 원래 메시지에 들어있는 문자 수의 약수(約數)로 결정할 수 있어. 이 메시지에는 총 20개의 문자가 쓰였지? 따라서 암호를 만들려면 총 20개 칸을 가진 'A(열의 수)×B(행의 수)' 형태의 바둑판 모양 사각형이 필요하단다. 20을 약수의 곱으로 나타내면, 1×20, 2×10, 4×5, 5×4, 10×2, 20×1 등으로 나타낼 수 있잖니? 이 중 '4×5' 형태의 사각형을 써서 암호를 만든다고 하면, 위의 그림과 같이 나타낼 수 있단다. '4×5' 형태의 바둑판 모양 사각형에 문자를 가로로 한 줄씩 나열한 다음, 세로로 한 줄씩 읽어서 암호를 만드는 거야."

"아하! 그렇다면 메시지를 받는 사람은 'paeoc atlck rtvla kweom'으로 바뀐 암호를 받겠네요?"

"딩동댕~ 우빈이가 잘 이해해서 아빠도 뿌듯하구나. 다음에 기회가 되면 현대의 암호에 대해서도 설명해 주마."
[함께 생각해봐요]

고대 그리스인들이 쓰던 막대 암호 사진
다음은 고대 그리스인들이 쓰던 암호 방법입니다. 막대에 기다란 종이테이프를 둘둘 말아 가로로 글을 써넣은 다음, 다시 펴면 세로로 쓰인 글자 순서가 뒤죽박죽이 됩니다. 이렇게 다른 사람은 알아볼 수 없도록 만들고, 나중에 똑같은 굵기의 막대에 종이테이프를 감으면 원래의 문장이 나타나게 하는 방식이에요. 여러분도 나만의 막대 암호를 만들어 봅시다.
[관련 교과] 4학년 2학기 '규칙 찾기와 문제 해결'


 조선일보

댓글 없음: