암호문
암호문이란 평문으로 된 정보를 암호 처리하여 특정인만 이용할 수 있도록 암호화한 문서이다. 암호 해독 열쇠를 갖고 있는 특정인만 해독하여 이용할 수 있는데,보통 자료, 데이터의 보안을 위해 암호화를 해 평문을 변환한다.
암호
암호에는 패스워드(Password)와 사이퍼(Cipger) 두 가지 종류가 있따. 둘은 전혀 다른 의미이지만, 한국에서의 암호는 두 가지 모두의 의미를 갖는다. 패스워드는 특정한 자원에 대해 접근 권한이 있는지를 검사하기 위한 것이며, 사이퍼는 해당 정보를 변형하여 비밀을 알고 있지 않은 사람은 이용할 수 없게 만드는 것이다. 보통 암호라는 말은 대부분 패스워드를 의미하지만 학문적, 상업적인 분야에서 암호는 대부분 사이퍼를 의미하며, 이 경우 패스워드에 해당되는 것은 키(Key)라는 이름으로 부르는 경우가 많다. 사이퍼는 암호문이라고 부르기도 한다.
암호의 역사
인류의 수천 년 역사 속에서 위대한 왕과 장군들은 모두 효율적인 통신 수단에 의존해 나라를 다스리고 군대를 움직여 왔다 해도 과언이 아니다. 하지만 동시에 지도자들은 이러한 통신 내용이 적의 손에 들어가 귀중한 비밀이 누설되거나 중요한 정보가 들어가지 않을까 늘 우려했다. 그런 의미에서 적이 중요한 정보를 가로챌 수 있다는 위협이야말로 암호를 발시킨 원동력이었다고 할 수 있다. 이렇듯 비밀 보장이 절실히 필요해짐에 따라 각국 정부는 가능한 한 가장 안전한 암호를 만들어 내고, 이를 이용해 통신의 보안성을 확보하는 부서를 운영하게 된다.
이에 맞서 적국에서는 거기에 담긴 비밀을 빼내려는 암호 해독가를 동시에 양성했다. 암호 해독가들은 언어를 재료로 이용하는 연금술사로, 무작위로 모아놓은 듯한 부호에서 의미를 가진 단어를 뽑아내기 위해 일생을 바치는 신비하고도 특별한 분야의 사람들이다. 암호의 역사는 바로 암호를 만드는 사람들과 이를 해독하려는 사람들이 수백 년에 걸쳐 벌여온 전쟁의 역사이다. 지성을 무기로 한 이 군비 경쟁은 때로는 역사에 극적인 영향을 미치며 그 경로를 바꿔놓기도 했다.
암호의 어원은 그리스어의 비밀이란 뜻을 가진 크립토스(Kryptos)로 알려져 있다. 이는 평문을 해독 불가능한 형태로 변형하거나 암호화된 통신문을 원래의 해독 가능한 상태로 변환하기 위한 모든 수학적인 원리, 수단, 방법 등을 취급하는 기술이나 과학을 말한다. 즉, 암호란 중요한 정보를 다른 사람들이 보지 못하도록 하는 방법을 의미한다.
암호 기술의 발전 역사를 구분할 때 흔히 두 번의 큰 전환점을 기준으로 고대 암호, 근대 암호, 현대 암호 등의 세 단계로 나눠진다. 첫 번째 전환점은 1920년대, 1, 2차 세계 대전에서 무선 통신 기술의 발전을 기반으로 여러 가지 기계적, 전자적 암호 장치를 개발하고 사용한 것이었고, 두 번째 전환점은 1970년대 들어 컴퓨터 사용이 활발해지면서 컴퓨터를 이용한 암호 기술이 발전한 것이다.
이러한 전환점을 기준으로 고대로부터 1, 2차 세계 대전 이전가지 사용된 초보적인 암호 기술들을 고대 암호라고 하면, 1970년대까지 복잡한 기계 장치와 전자 장치들을 이용한 암호 기술을 근대 암호, 컴퓨터가 개발된 이후 컴퓨터를 이용하는 암호 기술을 현대 암호라고 부른다.
- 고대 암호
고대 봉건 사회에서는 황제나 군주가 지방 관리에게 보내는 비밀문서, 전쟁 중의 작전 지시와 보고, 첩자들과의 통신 등 전쟁이나 첩보 시에 정보를 전달해야 하는 경우에 다양한 비밀 통신 기법들이 사용되었다. 예를 들어, 멀리 기밀 정보를 전달해야 하는 경우에는 사자의 머리를 깎고 메시지를 쓴 후 머리를 길러서 보내면 받는 측에서는 사자의 머리를 깎고 메시지를 읽도록 하였다. 또 종이에 쓴 메시지가 그냥 보이지 않지만 불빛에 약품 처리를 하면 메시지가 나타나도록 하는 방법, 비밀 노출을 방지하기 위해 말로 전달하도록 하는 방법 등이 다양하게 사용되었다. 이러한 비밀 통신 방법을 스테가노그래피(Steganography)라고 하는데 적들도 이 통신 방식을 알고 있으면 비밀을 유지하기 어렵다는 한계를 갖고 있다.
- 근대 암호
17세기 근대 수학의 발전과 함께 암호 기술도 발전하기 시작했는데, 프랑스 외교관이었던 Vigenere가 고안한 키워드를 이용한 복수 시저 암호형 방식, Playfair가 만든 2문자 조합 암호 등 다양한 암호 방식으로 발전하였다. 20세기 들어서는 통신 기술의 발전과 기계식 계산기에 대한 연구를 바탕으로 두 차례의 세계 대전을 통해 암호 설계와 해독에 대한 필요성이 높아지면서 암호에 대한 연구가 더욱 활발하게 진행되었다. 근대 암호의 이론적 기초가 된 논문은 1920년 Freidman이 발표한 ‘일치 반복률과 암호 응용’과 1949년 Shannon이 발표한 ‘비밀 시스템의 통신 이론’을 들 수 있다. Shannon은 논문에서 일회성 암호 체계가 안전함을 증명했고, 암호 체계 설계의 두 가지 기본 원칙인 ‘혼돈과 확신 이론’을 제시하였다. 암호 체계를 설계함에 있어 ‘혼돈(Confusion)’은 평문과 암호문 사이의 상관관계를 숨기는 반면, ‘확산(Diffusion)’은 평문의 통계적 성격을 암호문 전반에 확산시켜 숨기는 역할을 한다. 혼돈과 확산이라는 두 가지 개념은 오늘날의 암호 체계 설계에도 여전히 적용되고 있다.
- 현대 암호
현대 암호는 1970년대 후반 스탠퍼드 대학과 MIT 대학에서 시작되었다. 1976년 스탠퍼드 대학의 Diffie와 Hellman은 ‘암호의 새로운 방향(New Directions in Cryptography)’이라는 논문에서 처음으로 공개키 암호의 개념을 발표하였다. 종래의 관용 암호 방식 또는 대칭키 암호 방식에서는 암호화키와 복호화키가 동일한 비밀키를 사용하기 때문에 송신자와 수신자는 비밀 통신을 하기 전에 비밀키를 공유하고 있어야 한다. 반면 공개키 암호 방식에서는 하나의 쌍이 되는 공개키와 비밀키를 생성하여 암호화에 사용되는 공개키는 공개하고, 복호화에 사용되는 비밀키는 사용자가 안전하게 보관하도록 한다. 공개키 암호 방식에서는 송신자와 수신자가 사전에 키를 공유할 필요가 없기 때문에 불특정 다수 사용자 간에 사전 준비가 없이도 암호 통신망을 구축하는데 유용하게 사용할 수 있다. 이어 1978년 MIT 대학의 Rivest, Shamir, Adleman은 소인수 분해 문제에 기반을 둔 RSA 공개키 암호를 개발했는데, 이것은 오늘까지도 가장 널리 사용되는 공개키 암호 방식이다. 공개키 암호의 도입은 현대 암호의 발전에 중요한 계기가 되었다.
한편, 1977년 미국 상무성 표준국(NBS, 현 NIST)은 전자계산기 데이터 보호를 위한 암호 알고리즘을 공개 모집하여, IBM 사가 제안한 DES (Data Encryption Standard)를 표준 암호 알고리즘으로 채택했다. DES의 표준화를 계기로 하여 금융 시스템을 중심으로 상업용 암호화의 이용이 증가하게 되었고 컴퓨터 통신망을 이용한 문서 전송, 전자 자금 이체 등이 활성화되었으며 암호 방식이 일반인들에게 알려지고 널리 사용되는 계기가 되었다. 이전의 암호 방식에서는 사용하는 키뿐만 아니라 암호 알고리즘도 비밀로 하여 암호문의 비밀을 지키려고 하는 경우도 있었으나, 현대 암호에서는 암호 알고리즘을 공개하도록 하고 있다. 1883년 Auguste Kerckhoff는 암호 시스템의 안전성에 대해 ‘키 이외에 암호 시스템의 모든 것이 공개되어도 안전해야 한다’고 했는데 이것을 Kerckhoff’s principle이라고 한다. 이렇게 함으로써 암호 방식의 안전성을 공개적으로 검토하게 하여 안전성을 확인하는 것이다.
표준화된 암호와 표준화된 컴퓨팅 기기들을 사용하는 현대 암호에서는 암호 알고리즘을 감추기가 매우 어렵다. 또한 암호 알고리즘을 감춘다고 해서 암호의 보안성이 높아지는 것도 아니다. 비밀로 다루어진 암호 알고리즘이 일단 공개되고 나면 그 안전성에 문제가 발견되는 사례가 많다. 그러므로 암호 분야에서는 어떤 암호 알고리즘이 많은 암호 학자들에 의해 장기간 세부적으로 수행된 분석에서도 잘 견디어 낼 때까지는 그 알고리즘을 안전하다고 인정하지 않는다. 즉, 암호 체계는 ‘무죄가 증명될 때까지는 유죄’이다.
- 차세대 암호
양자 기반 알고리즘인 Shor알고리즘은 인수분해 문제의 해결 속도를 감소시켜 RSA, ECC 등 인수분해 및 이산대수 기반의 공개키 암호 알고리즘을 더 이상 사용할 수 없게 한다. 또한, Grover알고리즘은 정렬되지 않은 데이터베이스의 원소를 검색하는 속도를 향상시켜 대칭키 암호는 키 사이즈를 2배, 해시 함수의 출력길이를 3배 증가시켜야 기존의 안전성을 가질수 있게 된다.
이러한 환경의 변화같이 특정 상황에서 기존 현대 암호기술(RSA, ECC 등)이 해결하지 못하는 경우를 대비하여, 새로운 암호기술들에 대한 연구가 활발히 진행되고 있다. 양자컴퓨팅 환경에서도 안전하게 사용할 수 있는 공개키 암호 기술인 양자내성암호와 더불어, 동형암호(암호화된 상태로 연산 가능한 암호), 형태보존암호(암호문이 평문과 동일한 형태를 가지는 암호), 경량암호(계산능력이 떨어지는 IoT 환경 등에서 효율적으로 사용할 수 있는 암호) 등이 있다.
유명한 암호문
- 풀린 암호문
- 치머만 전보
- ‘The Magic Words are Squeamish Ossifrage’ — RSA의 개발자들이 1977년에 RSA를 사용하여 만든 암호문.
- 《황금 벌레》의 암호문
- 스미시 암호 — 2006년 《다빈치 코드》 관련 소송의 판결문에 담긴 암호.
- 풀리지 않은 암호문
- 빌 암호 (세 개 중 하나만 풀림)
- 보이니치 문서
- 도라벨라 암호
- 크립토스 (네 부분 중 세 개가 풀림)
- 별자리 살인자의 암호 (일부 풀림)
- 디아가페예프 암호[1]
각주
- ↑ 〈유명한 암호문의 목록〉, 《위키백과》
참고자료
- 〈암호〉, 《나무위키》