Did you know that you can navigate the posts by swiping left and right?
▲ 앨런 튜링의 최초의 프로그래밍 가능한 컴퓨터 만드는 영화 :: 이미테이션 게임암호학(Cryptology)은 암호법이나 암호 해독법을 연구하는 학문이다. 암호법(Cryptology)은 암호를 사용해 비밀 통신을 하는 절차를 의미한다. 암호 해독법(Cryptanalysis)은 비밀 통신을 크랙하거나 해독하는 절차를 의미한다.
암호학은 전쟁 중에 많이 발전 했다. 전쟁 중에는 암호 코드를 사용해서 아군과 통신하면서 적의 암호 코드를 해독해야만 했다. 영화 ‘이미테이션 게임(2014, Imitation Game)’에서 이런 상황을 많이 볼 수 있다. 영화 내용을 간략하게 요약하자면, 이것은 실화라고 한다. 주인공인 ‘앨런 튜링(Alan Mathison Turing)’은 영국의 수학자였는데, 2차 세계 대전이 발발하고 적의 전략이 담긴 암호를 해독하기 위해서 영국 정보부에서 튜링을 섭외한다. 독일군은 당시 ‘에니그마(Enigma)’라는 암호기를 사용, 아무도 해독할 수 없는 암호 체계를 가지고 있었다. 튜링은 영화의 후반부에 에니그마 암호의 해독 힌트를 얻고, 크리스토퍼(실제로는 콜러서스)라는 기계 프로그래밍 가능한 전자 컴퓨터의 조상 격 를 제작한다. 에니그마를 해독하게 된 튜링은 그 정보로 연합군을 승리로 이끈 장본인이 되었다.
위의 영화에서 볼 수 있듯이, 다시 말하지만, 실화를 바탕으로 한 영화이다. 전쟁 중의 암호는 필수불가결한 요소였으며, 암호학은 수학·과학적 발전에 도움이 되었다. 요즘은 인터넷에서 암호법이 가장 많이 사용된다. 비밀번호, 신용카드 정보 등을 암호화 되지 않은 프로토콜로 보낸다면 공격자는 쉽게 네트워크 스니핑을 통해서 알아낼 수 있다. 예를 들어 SSL 흔히 OpenSSL이라고 알려져있다. 오픈소스이 없었다면, 인터넷에서 신용카드로 결제하는 것은 불편하거나, 위험한 행위였을 것이다.
이런 데이터는 암호 알고리즘으로 보호받는다. 완벽한 암호 알고리즘이라는게 현실적으로 불가능하기 때문에 그런게 존재하는 지도 의문이지만.. 실질적으로 안전한 암호 시스템을 많이 사용한다. 뭐 굳이 예를 든다면, RSA와 같이 소인수분해를 이용한 알고리즘의 경우, 소인수분해라는 간단한 방법으로 암호를 크랙할 수 있지만, 시간이 엄청 많이 걸리기 때문에 최소 수년이상 걸린다. 실질적으로 안전한 암호라고 할 수 있다. 물론, 개발중인 양자 컴퓨터가 완성된다면..
암호 보안 개념의 대부분을 클라우드 셰넌(Claude Shannon)이라는 사람이 고안하였다. 그는 암호학의 확산(Diffusion)과 혼동(Confusion) 개념에 많은 영향을 미쳤다.
- 확산(Diffusion) : 평문을 구성하는 각각의 비트들의 정보가 여러개의 암호문 비트에 영향을 주어야한다.
- 혼동(Confusion) : 평문과 암호문 사이의 관계를 알기 어려워야한다.
다시 말해서, 확산이란 평문의 성격을 암호문 전반에 숨겨야하고, 혼동은 평문과 암호문의 상관관계를 숨겨야한다는 의미이다. 엄청, 당연한 말인 것 같지만, 암호 체계의 기본 원칙이다. 이 원칙은 1949년 셰넌의 논문, “비밀 시스템의 통신 이론”에서 나왔는데, 오늘날 암호체계에도 여전히 적용되고 있다.
일회성 패드는 패드라는 임의 데이터 블록을 이용하는 암호 시스템이다. 자세한 내용을 알고싶다면 여기를 클릭하기 바란다.
양자 컴퓨팅이 발전함에 따라 파생된 연구 주제로, 양자 키 분배를 이용한 일회성 패드(One-Time Pad)를 구현하는 것이다. 양자의 특성을 이용해서 안전하고 믿을 수 있는 방법으로 키를 분배할 수 있다는 장점이 있다. 자세한 내용은 여기를 클릭하기 바란다.