본문 바로가기

암호학

[암호학] 암호학의 역사


암호학이란?

암호와 암호 해독을 연구하는 정보 보호 이론과 기술에 대한 학문입니다.

 

쉽게 말해 알아볼 수 없는 암호를 해독하는 학문이라고 생각하시면 됩니다.

 

이 암호학은 가장 오래된 학문 중 하나이며 수학과 밀접한 관련이 있습니다.

 

대충 이런거 해독한다고 생각하면 됨

 

암호의 역사 - 고대 암호

  • Scytale 암호

곤봉에 종이를 감은 모습!

 

기원전 400년경 고대 그리스인들이 사용한 암호입니다.

 

먼저 곤봉에 종이를 감은 후 옆으로 전달하고 싶은 글을 적습니다.

 

이제 빈 공간에 아무 문자나 채워주면 암호문이 완성됩니다.

 

이 암호문을 풀기 위해선 같은 크기의 곤봉이 필요합니다.

 

  • Caesar 암호

알파벳을 치환

 

고대 로마시절 카이사르 장군이 사용한 암호입니다.

 

평문의 각 문자를 우측 또는 좌측으로 원하는 만큼 이동시켜 치환하여 암호문으로 변환합니다.

 

예를 들어 hello를 우측으로 3칸 이동시키면 Khoor 이 됩니다.

 

이 암호는 원리만 알면 사실상 쉽게 뚫리는 단점이 있습니다(한 칸씩 25번만 돌리면 알 수 있음).

 

  • Monoalphabetic 암호

규칙성이 없는 문자 치환

 

모노 알파베틱 암호는 위에서 배운 시저암호의 상위버전입니다.

 

시저 암호가 옆으로 밀어 치환하였다면

 

이 암호는 각각의 문자에 다른 문자를 랜덤으로 매칭시켜 치환시킵니다.

 

이를 brute force 방식으로 풀기 위해선 26!(403,291,461,126,605,635,584,000,000) 가지의 경우의 수가 생긴다고 합니다..

 

brute force: 무차별대입공격, 가능한 모든 문자열을 하나씩 대입하여 암호를 푸는 방식. 

 

암호의 역사 - 근대 암호

2차 세계대전 당시 독일군이 사용한 에니그마 기계

 

17세기 근대 수학의 발전과 더불어 암호기술도 발전하기 시작하였습니다. 

 

이후 1920년에 Freidman이 발표한 "일치 반복률과 암호 응용"과 Shannon 이 발표한 "비밀 시스템의 통신이론"이라는 

논문은 근대 암호의 기초가 되었습니다.

 

Freidman은 제2차 세계대전 중 독일군이 사용하던 에니그마 암호와 일본군이 사용하던 무라사키 암호를 해독한 사람이며, Shannon은 원리적으로 해독 불가능한 암호 방식을 제안하며 확률론을 기초로 한 정보이론을 창시한 사람입니다.

 

근대 암호화의 연구를 촉진시킨 것은 두 차례의 세계대전이며 기술적으로 전신 기술이 발달하고 전자계산기의 출현으로 암호화, 복호화, 암호 해독의 속도가 향상됨으로써 암호 실용화 연구가 활발해졌습니다.

 

암호의 역사 - 현대 암호

논문 일부

 

1976년 스탠퍼드 대학의 Diffie와 Hellman이 논문 "New Direction in Cryptography'에서 공개키 암호 방식의 개념을 처음 발표하였습니다. 

 

이들은 암호화를 하기 위한 키와 복호화를 하기 위한 키를 분리하자고 제안하였습니다.

 

이때 암호화키는 공개하고 복호화 키는 비밀리에 보관하여

 

암호화키를 사전에 전송할 필요 없이(이미 공개가 되어있으므로) 불특정 다수 비밀 통신 가입자 사이에 암호 통신망 구축이 쉽도록 하였습니다.

 

1977년

미국 상무성 표준국(NBS 현 NIST)은 암호화 알고리즘을 표준화하고자 하여 암호알고리즘을 공개모집하였다.

 

이때 IBM사가 제안한 DES를 채택하여 상업용으로 사용하게 되었습니다.

 

또한 전자우편, 전자 문서 교환, 전자 현금 등을 실현하기 위한 암호리즘, 디지털 서명 알고리즘 등도 발표하였습니다.

 

후에 컴퓨터의 급속한 발전에 의해 DES가 뚫릴 가능성이 있어서 NIST는 AES라는 새로운 대칭키 암호 알고리즘을 채택하였습니다.

 


 

+ 암호화 알고리즘을 공개하는 이유?

**알고리즘이 비공개일때**

 

A와 B가 E1이라는 암호화 알고리즘을 사용하여 통신을 한다고 가정하자.

 

이때 A가 C와 통신할 때 만약 E1이라는 알고리즘을 사용하면 안 된다.

 

그 이유는 만약 A와 B의 통신 내용을 C가 훔쳤을 때 그 내용을 알아볼 수 있기 때문이다. 

 

그러므로 n명의 사람이 있다고 가정하면 암호화 알고리즘의 개수는 n(n-1)/2개가 된다.

 

알고리즘을 만드는 것이 쉬운 것이 아니기 때문에 이는 사실상 불가능하다고 할 수 있다.

 

그래서 알고리즘을 표준화하고 대신 키를 바꾸게 하여 이 문제를 해결하였다. 

'암호학' 카테고리의 다른 글

[암호학] 암호화 기반 인증기술  (1) 2024.10.30
[암호학] 키 관리와 해쉬 함수  (1) 2024.10.29
[암호학] 공개키 암호화 방식  (2) 2024.10.28
[암호학] DES란?  (1) 2024.10.25
[암호학] 대칭키 암호화 방식  (1) 2024.10.22