어린이과학동아&수학동아 기사
암호의 발전과 특징
안녕하세요, 임은규 기자입니다. 오늘은 암호의 발전에 대해 설명해 볼 건데요, 그럼 지금 시작해보겠습니다.
1.스키테일 암호
스키테일 암호는 막대기에다 암호를 쓴 어떤 재료 (종이 같은)를 감고, 그상태 그대로 평문을 씁니다. 그 다음, 막대기를 암호를 받을 사람에게 전해주고, 암호를 썼던 재료를 풉니다. 그러면 그 재료에 쓴 글씨는 알아볼 수가 없게 됩니다. 그리고 암호를 받는 사람은 막대기를 가지고 있으니 재료를 말기만 하면 암호문이 보이는 거죠. 하지만, 여기의 문제점은 2가지입니다. 일단, 막대기의 너비만 알면 암호문은 쉽게 해독 가능합니다.하지만 막대기의 너비를 구하지 않아도, 서로 매칭되는 짝을 골라 그 사이가 자연수인 점을 고려해 구해보면 암호가 풀립니다.
2-1.카이사르 암호
그래서 나온 암호가 카이사르 암호입니다. 카이사르, 즉 시저가 사용했을 것으로 추정됩니다. 이것은 각각의 글자를 기본 암호 숫자 만큼 뒤로 밉니다. 예를 들어, here you are을 기본 암호문 3으로 암호화했을때 h를 3번 밀어낸 k로 (h, i, j, "k"), e는 3번 민 h로 변환하여 이 과정을 반복하면 khuh arx buh가 됩니다.하지만 이것도 문제점이 있습니다.
2-2. 카이사르 암호의 문제점, 그리고 그것을 보완한 새로운 암호.
카이사르 암호는 알파벳의 출현빈도를 통해 쉽게 알아낼 수 있습니다. 조금 더 자세히 설명드리자면,
(출처: https://zrr.kr/a2fJ)
이것은 문장의 알파벳 평균 출연빈도 표입니다. 퍼센트(%)단위로 표시되어 있고요, 상대적으로 E,T,A,O가 많이 출연하는 것을 볼 수 있습니다. 그러면 결국 그 암호문에서 가장 많이 나오는 것과 평소 문장에서 가장 많이 나오는 것을 매칭할 수 있습니다. 예를 들어, 저번의 khuh arx buh는 h의 출연빈도가 가장 높으니 e와 대응합니다. 그리고 그다음으로 많이 나오는 u는 T와 대응합니다. 하지만, 결국 u는 r과 대응했습니다. (이것이 항상 맞지는 않다는 것을 알 수 있습니다.) 그렇게 많이 실행시켜서 제일 말이 되는 문장을 고르면 됩니다.
그러면 카이사르 암호의 이런 문제점을 보완한 암호는 무었일까요? 그것은 비즈네르 암호입니다. 일단, 같은 원리지만 그 '비밀 암호문' 이 여러 개입니다. 이게 무슨 말인가 하면, 비밀 암호문이 1또는 6같은 하나의 수가 아닌, 253, 47804와 같은 길이를 갖는 배열이라는 것입니다. 이때, 암호문은 보통 567과 같은 숫자 형태가 아닌 efg와 같은 문자의 형태로 나타냅니다.그럼, 첫번째 글자에는 암호문의 첫번째 글자 만큼 밀고, 평문의 2번째 글자에는 비밀 키의 2번째만큼 미는 식입니다.
2-3. 비즈네르 암호 해독
비즈네르 암호는 시저 암호보다 더 해독하기 어렵습니다. 일단, 그 암호문의 길이를 알아야 하는데, 2가지 방법이 있지만 조금 더 쉬운 1가지 방법만 소개할게요. 그것은 카지스키 테스트입니다. 일단 같은 문자열이 얼마의 차이를 갖고 있는지 분석한 뒤, 그것들의 공약수가 암호문의 길이라고 생각하시면 됩니다. 이것은 암호문이 길 경우 유용할 겁니다. 그러면 암호문의 길이를 알았으니 그것을 이용해 카이사르와 같은 방법으로 빈도를 각각의 배수에 관해 알아낸 뒤, 그러면 암호문을 알아낼수 있으니 복호화는 쉽습니다.
3. 가장 오래되고 쉬운 암호
지금까지는 고대 암호에 대해 설명했습니다. 고대 암호를 마치기 전에 가장 오래된 암호와 (저의 주관적인 생각으로) 가장 풀기 쉬운 암호를 짚고 넘어가겠습니다.
가장 오래된 암호는 이집트 카누호템 2세 묘비에 새겨진 암호입니다. 이것은 고대 이집트문자를 자체로 대응시켜 다른 문자를 만들어버리는 것입니다. 하지만, 이것은 빈도를 이용해 시저 암호와 같은 방법으로 복호화 수 있습니다.
제 생각에 가장 쉬운 암호는 기원전 5세기 아트바쉬 암호입니다. 이것은 a를 뒤에서 1번째 글자인 z로, 앞에서 두번째 b는 뒤에서 두번째 y로 바꾸는 식입니다. 그리고 복호화는 아주 쉽습니다. 그냥 각각의 글자에 따라 올바른 문자를 매칭하시면 풀립니다.
자, 그러면 근대 암호의 대표' 에니그마' 를 설명해보도록 할게요. 사실 에니그마는 원리 자체는 간단합니다. 일단, 회전키를 비밀 설정에 따라 돌린 다음 그것만큼 시저 암호를 사용합니다. 그리고, 한 번 입력할 때마다 회전바퀴가 한 바퀴 회전하며 암호문을 바꿉니다. 이때 튜링은 이것을 해독하는 데 성공합니다.
기본적으로 에니그마는 100,391,791,500개의 경우의 수를 가지고 있습니다. 회전바퀴 말고도 회전 플러그가 있기 때문이지요.하지만 이겄도 튜링에 의해 풀립니다. 튜링은 모든 메세지에 적용되는 하나의 시작과 끝의 공통된 것을 발견했습니다. 그때는 제 2차 세계대전 독일군이 에니그마를 사용하던 때라 그것을 '하일 히틀러(heil hitler)', 즉 '히틀러 만세' 라고 추측했습니다. 그것으로 경우의 수를 좁혀나가 기계'봄바'로 해독을 성공합니다.(이것 덕분에 제 2차 세계대전이 2년 가량 단축됬다고 합니다.)
이렇게 근대의 암호까지 살펴보았는데요, 이것은 항상 상대방이 암호를 알아야 했습니다. 스키테일도 받는 사람이 막대기가 있어야 하고, 시저 암호는 얼마나 미는지 알아야 하며, 비즈네르 암호는 비밀 키를 알아야 하고, 에니그마는 설정을 알아야 합니다. 하지만 현대에 들어서는 컴퓨터에 쓰이고 있는 RSA암호가 생기기 시작합니다.
4. 공개키암호
공개키암호란 '암호화하는 키'와 '복호화하는 키'가 다릅니다.그래서 비대칭키라고도 부릅니다.
조금 더 자세히 설명하겠습니다.
ㅇㅇ씨가 ^^씨에게 '1344524'라는 숫자를 보내려고 한다고 칩시다. 그러면, ㅇㅇ씨는 ^^씨에게 공개키를 요구합니다. ^^씨는 개인키도 가지고 있고요, ㅇㅇ씨도 개인키가 있습니다. 그리고 해커도 공개키를 받았겠지요. 공개키로 암호화했다고 하면, 비밀키로만 복호화할수 있습니다. 비밀키로 암호화했으면, 공개키로만 복호화할수 있습니다.
(출처: 유튜브 https://www.youtube.com/watch?v=MR4sCU82tgo 캡처)
위와 같이 ^^씨가 준 공개키로 ㅇㅇ씨는 자기의 키로 암호문을 만듭니다. 그리고, 그것을 공개합니다. 이때, 해커는 ^^씨의 개인키를 모르니 암호문을 복호화할 수 없지만(위의 원리), ^^씨는 자신의 개인키로 이것을 복호화할수 있습니다.(그렇게 설계를 합니다.) 그러면 ^^ 씨가 '1344524'라는 정보를 받을 겁니다.
이상 임은규 기자였습니다. 감사합니다.
글쓰기 평가어린이과학동아 기자2024.03.03
오늘날에는 컴퓨터와 스마트폰, 인터넷이 우리 생활에 없어서는 안 되는 것이 되어서 암호의 역할이 이전보다 훨씬 중요해졌어요. 암호의 역사를 조사해서 잘 설명해 주었습니다. 다만, 최근에 안전한 보안을 위해 어떤 암호를 연구하고 있는지, 최신 암호에 대한 내용도 조금 더 보충하면 좋을 것 같네요. ^-^ 자료 조사를 그래도 충분히 해서 글을 완성해 주었네요!