본문 바로가기
IT

컴퓨터 암호학의 역사

by 이슈플러스_진다D 2023. 3. 11.

컴퓨터암호학

암호학의 역사는 고대암호 방식과, 기계식, 현대로 크게 구분하며 양자암호화 방식이 향후의 암호화 방식으로 대두되고 있다.

 

고대암호

최초의 암호 유형은 고대 그리스에서 사용한 방식으로 암호화라기보다는 스테가노그래피(Steganography)에 가까운 방법이다. 노예의 머리를 깎아 통신문을 머리에 작성하고, 머리카락이 자란 후 제삼자에게 발견되지 않게 상대방에게 노예를 보내고 상대방 측에서 다시 머리를 깎아 통신문을 읽는 방법을 사용하여 메시지를 전달하였다. 비슷한 방법으로 과일즙으로 글자를 쓰고, 열을 가하면 나타나도록 하는 방법도 사용되었다.

 

1. Scytale 암호

가장 오래된 암호방식으로 대표적인 전치 암호(Transposition Cipher) 방식이다. B.C.500년경 고대 그리스의 스파르탄에서 전쟁 중에 사용되었으며, 막대에 종이를 감아 평문을 횡으로 쓴 다음 종이를 풀면 평문의 각 문자는 재배치되어 평문의 내용을 인식하지 못하게 하는 방식이다. 이 암호화 방식의 핵심은 송수신자가 동일한 직경의 막대를 키(Key)로 사용한다는 점이다.

 

2. 시저(Caesar) 암호

최초의 치환 암호(Substitution Cipher)방식으로 알파벳 문자의 위치를 3 문자씩 뒤로 이동시켜 평문의 내용을 변경하여 암호화하는 방식이다. 이 방식은 일반화되어 평문의 각 문자를 우측으로 n문자씩 이동시켜 그 위치에 대응하는 다른 문자를 치환함으로써 암호문으로 변환하는 암호 방식이다.

 

The Mechanical Era

17세기 근대 수학의 발전과 더불어 다양한 암호가 발전하기 시작하였으며, 과학적인 근대 암호는 20세기에 들어와서 발전하기 시작했다. 가장 유명한 기계식 암호화 방식은 애니그마라는 독일의 세르비우스에 의해 20세기 초에 발명된 암/복호화 기계이다.

애니그마란 독일어로 수수께끼를 의미하며 송수신자가 애니그마를 1대씩 가지고 있어야 암호화 통신 가능한 방식이다. 송수신자가 동일한 키를 가지지 못하면 암호화 통신이 불가능한 방식으로 송/수신자는 사전에 보유한 코드북을 참조하여 그날의 날짜별 키를 조사하여 그 날짜별 키 설정하여 암호화 통신을 수행하도록 하는 방식이다. 이 암호화 방식은 폴란드 수학자 르옙스키와 영국의 앨런 튜링을 통해 해독되었다.

 

현대암호

1960년대에는 컴퓨터와 통신 시스템의 발달로 디지털 형태의 자료를 보호 및 보안하는 서비스 제공의 필요성이 증가하였다. 1970년대에 IBM의 Feistel이 개발을 시작해서 1977년에 미국 표준 암호화 알고리즘으로 채택된 비밀키 암호법 DES 탄생하였다. 1976년 Diffie와 Hellman이 [New Directions in Cryptography]란 책에서 공개키 암호법을 제안하였고, 1978년에는 Rivest, Shamir와 Adleman이 최초의 공개키 암호화 알고리즘 RSA를 개발하였다.

 

양자 암호학

최근의 기술인 양자 암호학은 양자역학의 원리를 응용한 암호방식으로 하이젠베르크의 불확정성원리를 응용한 암호화 방식이다. 불확정성 원리는 '전자의 위치와 운동량을 동시에 정확히 측정할 수 없다.'라는 이론으로 양자의 중첩상태에 있는 양자를 외부에서 한 번이라도 관측을 하게 되면 0과 1의 양쪽 값을 동시에 취하고 있던 상태가 0이나 1, 어느 한쪽으로 결정되어버린다는 성질을 이용한 것이다.

이는 완벽한 암호전달 방법을 구현하기 위해서 물리학자들이 생각해낸 방법으로 정보를 보낼 때 아무도 그 내용을 알아낼 수 없도록 하는 것이 아니라, 누구라도 정보전달 당사자 사이에서 도청을 수행할 때 정보의 내용이 변해버려 결국 쓸모없게 만들어 버리는 것이다.

즉, 튼튼해서 누구도 열 수 없는 암호 전송용 상자를 만드는 것이 아니라 통신 당사자가 아닌 누구라도 엿보려고 시도하는 순간 부서져 버리는 매우 약한 상자를 만들어서 만일 상자가 손상됐을 때 그 당시 보냈던 문서를 폐기하도록 하는 방법이다. 이 방법은 주로 비밀 키를 생성 전달할 때 사용하고, 데이터 암호화 전송은 기존의 방법을 그대로 사용하는 것이 일반적인 방법이다.

댓글