-
보안 이야기(역사)Team $!9N 구성원의 글 2019. 12. 1. 21:31
보안을 배우는 사람으로서 정확한 보안의 현시점을 알기 위해 보안의 역사에 대해 공부하려한다.
작성자 역시 보안을 공부하는 학생임으로 매우 주관적인 이 글에 많은 피드벡이 있었으면 좋겠다.
보안의 역사에 대해 배우다 보면 맨 처음 1950년대 이전 에그니마, 콜로서스라는 단어가 나온다.
둘다 암호에 관련된 단어들인데 '그렇다면 보안의 시작점은 암호에 있지 않을까?' 라는 생각에 암호의 역사를 공부했다.
먼저 암호란 정보를 수학적, 언어학적으로 변형한 것이고, 암호학이란 정보를 암호화/ 복호화 하는 방법이다.
고대의 암호
최초의 암호는 3900년 전에 살았던 이집트 귀족의 무덤에서 발견되었다는데 정보를 감추기 위한 것이 아닌 글의 언어적 매력을 강화한 것이라고 한다.
고대에도 역시 군사 정보를 보호하기 위해 많이 쓰였는데 대표적으로 카이사르 암호가 있습니다. 카이사르 암호는 치환암호(환자암호)인데 암호화 하고자 하는 내용을 알파벳별로 일정한 거리만큼 밀어서 다른 알파벳으로 치환하는 형식이다. 장점으로 단순하고 간단하지만, 단점으로 철자의 빈도와 자주 사용되는 단어 형태가 보이면 쉽게 풀린다.
중세시대/ 르네상스 암호학
시간이 지나면서 암호학은 점점 중요해져 갔지만, 여전히 카이사르 암호가 표준이었다.
해독에 취약한 대체 암호기가 만들어진 AD800년 경에 아랍의 유명한 수학자인 알-킨디가 빈도해석을 개발한다. 이 때 부터 암호문을 해독하려는 사람들은 체계적인 방법을 모색하기 시작했다. 빈도해석은 평문과 암호문에 사용되는 문자 또는 문자열의 출현빈도를 단서로 이용하는 암호 해독법이다. 르네상스를 통해 유럽에도 퍼져 비즈네르 암호와 같은 다표식 환자(다중 문자 암호)를 고안하는 계기가 되었다. 비즈네르 암호는 두개의 다른 알파벳을 사용해 암호화한다.
에그니마 vs 콜로서스
에그니마라는 세계 2차 대전에서 독일군에 의해 군용 통신 보안 장치로 평문 메세지를 암호화된 메세지로 변환하는데 사용된다고 나와있다. 에그니마는 다중 치환 방식을 사용했다. 다중치환암호의 보안성은 치환 패턴의 반복 주기에 달려 있는데, 에니그마의 치환 패턴은 수만 글자를 암호화하기 전에는 반복 패턴이 나타나지 않았다. 암호의 배열이 한 글자를 칠 때마다 매번 바뀌기 때문이다. 이런 암호문을 해독하려고 제작된 것이 최초의 컴퓨터 콜로서스이다. 콜로서스는 영국에서 앨런 튜링, 토미 플라워스 등 기술자들이 개발했다. 콜로서스는 세계 최초의 프로그래밍 가능한 디지털 컴퓨터로 간주되지만, 저장된 프로그램에 의해서가 아니라 스위치와 플러그에 의해 프로그램되고 작동되었다.
근대의 암호학
컴퓨터의 발달로 암호학은 엄청난 발전을 한다.
현대 암호는 4가지의 보안 목표가 있습니다. 기밀성, 무결성, 인증, 부인봉쇄입니다.
기밀성 보안 알고리즘
대칭 암호 구조
-비밀키(Secrete key): 송신자와 수신자가 동일하게 사용하는 키
송신자(암호화의 주체): 비밀키 사용
수신자(복호화의 주체): 비밀키 사용
디피 헬먼 알고리즘으로 대칭키 암호가 처음 구현된다. 송신자와 수신자는 각각 공개키와 개인키를 생성한다. 그리고 서로 자신의 공개키를 교환한다(물론 이 공개 키는 제 3자에게 드러나도 상관없다) 그리고 각자의 개인키를 꺼내 상대방으로부터 받은 공개키를 끼우면, 비밀 키가 획득된다.
이렇게 비밀키를 이용하는 대칭 암호 구조에는 대표적으로 DES와 AES가 있다.
하지만 공개키, 개인 키는 오직 비밀키를 생성 하는데만 사용할 수 있다. 즉 암호화/ 복호화에는 사용할 수 없다는 것이 한계이다.
그래서 계발된 것이 RSA 알고리즘이고 비대칭 암호의 기원을 열었다.
비대칭 암호 구조
-공개키(Public key)/개인키(Private key): 송신자와 수신자가 상이하게 사용하는 키
송신자(암호화의 주체): 공개키 사용
수신자(복호화의 주체): 개인키 사용
RSA 알고리즘을 사용하는 비대칭 암호 구조에서는 송신자가 수신자에게 공개키를 요청하면 수신자는 자신의 공개키를 송신자에게 전송한다. 송신자는 받은 공개키를 이용해 평문을 암호문으로 변경한 뒤 수신자에게 해당 암호문을 전송한다. 수신자는 전송받은 암호문을 자신의 개인키를 이용해 복호화 한다.
비대칭 암호 구조에서도 공개키의 신뢰성 문제가 있었다. 수신 받은 공개키가 진짜 수신자의 공개키인지, 아니면 공격자가 보낸 공개키인지 보장받을 방법이 없다는 것이다. 그래서 이 문제를 해결한 방법이 바로 PKI(Public key infrastructure) 구조이다.
PKI 구조는 비대칭 암호 구조에서는 사용자마다 각각 공개키와 비밀키를 생성한 뒤 공개키를 공인 인증기관에 등록한다. 공인 인증기관에서는 각각의 사용자 공개키를 데이터베이스에 등록하고, 그에 따른 고유한 일련번호를 공개키에 부여해준다. 이것이 바로 공인 인증서이다.
그러나 이러한 비대칭 암호 구조는 대칭 암호 구조와 비교할 때 상당한 처리 지연이 발생한다. 그렇기 때문에 현실에서는 대칭 암호 구조와 비대칭 암호 구조를 혼합하는 하이브리드 암호 방식을 사용한다.
출처: BINANCE-ACADEMY, LG-CNS, 위키백과, 블로그 들
'Team $!9N 구성원의 글' 카테고리의 다른 글
comsec(한승협)'s Cross Site Script ? (1) 2019.11.30