본문
No. 02 | Cryptography |
# 암호의 역사 |
암호의 역사에 대해서 간단하게 알아봅시다.
1. 암호의 역사 |
원문: Kisa 암호의 역사 (http://seed.kisa.or.kr/iwt/ko/intro/EgovHistory.do)
인류의 수천 년 역사 속에서 위대한 왕과 장군들은 모두 효율적인 통신 수단에 의존해 나라를 다스리고 군대를 움직여 왔다 해도 과언이 아니다. 하지만 동시에 지도자들은 이러한 통신 내용이 적의 손에 들어가 귀중한 비밀이 누설되거나 중요한 정보가 들어가지 않을까 늘 우려했다. 그런 의미에서 적이 중요한 정보를 가로챌 수 있다는 위협이야말로 암호를 발시킨 원동력이었다고 할 수 있다. 이렇듯 비밀 보장이 절실히 필요해짐에 따라 각국 정부는 가능한 한 가장 안전한 암호를 만들어 내고, 이를 이용해 통신의 보안성을 확보하는 부서를 운영하게 된다.
이에 맞서 적국에서는 거기에 담긴 비밀을 빼내려는 암호 해독가를 동시에 양성했다. 암호 해독가들은 언어를 재료로 이용하는 연금술사로, 무작위로 모아놓은 듯한 부호에서 의미를 가진 단어를 뽑아내기 위해 일생을 바치는 신비하고도 특별한 분야의 사람들이다. 암호의 역사는 바로 암호를 만드는 사람들과 이를 해독하려는 사람들이 수백 년에 걸쳐 벌여온 전쟁의 역사이다. 지성을 무기로 한 이 군비 경쟁은 때로는 역사에 극적인 영향을 미치며 그 경로를 바꿔놓기도 했다.
암호의 어원은 그리스어의 비밀이란 뜻을 가진 크립토스(Kryptos)로 알려져 있다. 이는 평문을 해독 불가능한 형태로 변형하거나 암호화된 통신문을 원래의 해독 가능한 상태로 변환하기 위한 모든 수학적인 원리, 수단, 방법 등을 취급하는 기술이나 과학을 말한다. 즉, 암호란 중요한 정보를 다른 사람들이 보지 못하도록 하는 방법을 의미한다.
암호 기술의 발전 역사를 구분할 때 흔히 두 번의 큰 전환점을 기준으로 고대 암호, 근대 암호, 현대 암호 등의 세 단계로 나눠진다. 첫 번째 전환점은 1920년대, 1, 2차 세계 대전에서 무선 통신 기술의 발전을 기반으로 여러 가지 기계적, 전자적 암호 장치를 개발하고 사용한 것이었고, 두 번째 전환점은 1970년대 들어 컴퓨터 사용이 활발해지면서 컴퓨터를 이용한 암호 기술이 발전한 것이다.
이러한 전환점을 기준으로 고대로부터 1, 2차 세계 대전 이전가지 사용된 초보적인 암호 기술들을 고대 암호라고 하면, 1970년대까지 복잡한 기계 장치와 전자 장치들을 이용한 암호 기술을 근대 암호, 컴퓨터가 개발된 이후 컴퓨터를 이용하는 암호 기술을 현대 암호라고 부른다.
2. 스테가노그래피 (Steganography) |
스테가노그래피(Steganography)의 유래는 기원전 5세기 그리스의 왕 히스티에우스가 그의 양아들에게 밀서를 전달하기 위해서 노예의 머리를 깎아 메세지를 문신으로 세겼다. 이후 노예의 머리카락이 자라서 문신이 보이지 않게해 양아들에게 보냈다. 이것이 문서로 기록된 인류 최초의 스테가노그래피 이다. 이와 유사한 방법으로 고대 로마인들은 과일주스, 우유, 소변을 이용해 만든 투명잉크를 사용해 편지를 썼으며 이 편지는 불을 쬐어야만 읽을 수 있었다.
현대에서도 스테가노그래피는 디지털 통신에서 사용되고 있다. 가장 대표적인 사례로 9.11 테러 사건에서 당시 오사마 빈 라덴이 미국정부의 감시를 피해 테러리스트에게 지령을 내릴때, 스테가노그래피 기법을 이용해 그림파일에 숨겨진 메세지를 보냈다고 한다.
엄밀히 말하면 스테가노그래피는 암호기법은 아니다. 암호기법과 달리 스테가노그래피는 메시지 존재 자체를 은폐하는데 비해, 암호기법은 외부인이 그 의미를 알지 못하도록 메시지를 변형시킨다는 차이가 있다. 스테가노그래피 기법은 기존의 데이터에 비해 오버헤드가 발생하며, 데이터 비트의 미묘한 차이가 있다. 저작권을 보호하는데 '디지털 워터마킹(Digital Watermaking)'에 활용되고 있으며, '은닉채널(Covert channel)'에서도 이용되고 있다.
3. 혼돈과 확산 |
▲ Caesar 기법 (좌), 스키테일 (우)
모든 암호화에 사용되는 기초 기법은 크게 '혼돈'과 '확산'으로 나눌수 있다.
혼돈(Confusion)이란 평문의 문자들을 다른 문자, 숫자, 기호 또는 심벌로 바꾸는 것을 의미한다.
대표적으로 Caesar 기법은, 로마의 황제였던 줄리어스 시저(Julius Caesar)가 사용했다. 시저는 가족과 비밀 통신을 할 때 각 알파벳순으로 세자씩 뒤로 물려 읽는 방법으로 글을 작성했다. 즉 A는 D로, B는 E로 바꿔 읽는 방식으로 수신자가 암호문을 복호화하려면 암호문 문자를 좌측으로 3문자씩 당겨서 읽으면 원래의 평문을 얻을 수 있다. 송신자와 수신자는 몇 문자씩 이동할지를 비밀키로 하여 바꿔가면서 사용할 수 있다. 또다른 기법들로 Vigenere, Hill, Rotor 등이 있다.
확산(Diffusion)이란 글자의 위치를 변경하는 기법이다.
대표적으로 스키테일(Scytale) 이라는 특정 지름을 갖는 막대에 종이를 감고 평문을 횡으로 쓴 다음 종이를 풀면 평문의 각 문자는 재배치되어 정보를 인식할 수 없게 되는데, 암호문 수신자가 송신자가 사용한 막대와 지름이 같은 막대에 종이를 감고 횡으로 읽으면 평문을 읽을 수 있다. 여기서 막대의 지름은 송신자와 수신자 사이에 공유된 비밀키가 된다.
혼돈 = 치환기법 = Confusion, Substitution
확산 = 전치기법 = Diffusion, Transposition, Permutation
4. 키(Key)의 중요성 |
앞서 본 Caesar 기법에서 3문자씩 이동한다는 약속, Scytale 에서 사용한 막대의 지름은
해당 암호문(ciphertext) 를 다시 평문(plaintext) 으로 만들기 위해 필요한 열쇠(Key) 입니다.
암호화에서 가장 중요한 핵심은 강력한 알고리즘을 만드는것 이외에, 아무리 강력한 암호화 알고리즘이라 할지라도 해당 암호화에 사용한 키값을 알고 있다면, 이는 무용지물이겠죠.
따라서 암호화에 사용한 '키를 어떻게 안전하게 관리' 할 것인가 또한 암호화의 핵심이라해도 무방합니다.
다음 장에서는 암호화 키에 대한 이야기를 하겠습니다.
▶ 본 글이 조금이도 도움이 됐다면 더 많은 사람들이 볼 수 있게
▶ '로그인이 필요없는' 공감 ♡ 버튼을 눌러주세요.
'Basic Knowledge > 암호학' 카테고리의 다른 글
[Cryptography - No.03] 암호와 키(Key) (2) | 2015.03.08 |
---|---|
[Cryptography - No.02] 암호의 역사 (0) | 2015.02.06 |
[Cryptography - No.01] 암호학 분류 (0) | 2015.02.03 |
[Cryptography - No.00] 암호학 시작 (0) | 2015.01.30 |