대칭키
동일한 키로 암호화 및 복호화를 수행하는 방식이다. 예를 들어 우리가 특정한 데이터에 대해 <google> 이라는 키로 암호화를 수행하였다. 그리고 이 값을 다시 복호화하기 위해서는 <google> 이라는 키로 복호화를 수행하여야 한다. 대칭키의 단점은 만일 누군가 <google> 이라는 키를 획득하였다면 암호화된 데이터의 값을 쉽게 복호화할 수 있는 위험이 존재한다.
그리고 위와 같은 대칭키의 단점을 보완하기 위해서 나온 것이 비대칭키, 공개키 방식이다.
비대칭키
비대칭키는 두 개의 키가 존재한다. 하나는 특정한 데이터를 암호화하기 위한 키1과 암호화된 특정 데이터의 값을 복호화하기 위한 키2이다. 이 키1과 키2를 공개키 그리고 개인키(=비밀키) 라고 칭한다. 사실 비대칭키에서 어떤 키를 기준으로 암호화 하는 가에 따라서 보안의 중점사안이 달라진다.
(1) 공개키로 데이터를 암호화하는 경우, 데이터의 보안에 중점을 두는 방식이다.
(2) 개인키, 즉 비밀키로 암호화하는 경우, 사용자 인증과정에 중점을 두는 방식이다.
우선, (1) 의 사항을 살펴보자. 공개키로 데이터를 암호화한다.
1) A 가 공개키로 데이터를 암호화하여 B 에게 전달한다.
2) B 는 암호화된 데이터를 전달받고, 본인이 가진 개인키로 암호화된 데이터를 복호화한다.
여기서 A 와 B 라는 인물은 서로 공유하는 <공개키> 저장소가 존재하기 때문에 A 는 데이터를 암호화하기 이전에 <공개키> 저장소에서 B 의 공개키를 획득할 수 있는 것이다.
그리고 (2) 의 사항을 살펴보자. 개인키로 데이터를 암호화한다.
1) A 가 개인키로 데이터를 암호화하여 B 에게 전달한다.
2) B 는 공개키와 암호화된 데이터를 전달받고, 전달받은 공개키를 가지고 데이터를 복호화한다.
여기서 공개키로 암호화하여 데이터를 전달하는 방식은 위험하지만, 데이터 제공자의 신원을 보장할 수 있다. 암호화된 데이터가 전달받은 공개키로 복호화되었다는 것은 공개키와 쌍을 이루는 개인키에 의해 암호화되었다는 것을 의미하기 때문이다. 그리고 개인키 암호화를 전자 서명 혹은 디지털 서명 (Digital Signature) 이라고 부르기도 한다.
+) 추가사항 (20190309)
디지털 암호학에 관해서 약간 개념적으로 정리를 간략히 해보려고 한다.
암호
텍스트를 아무나 읽지 못하도록 인코딩 하는 알고리즘키
암호의 동작을 변경하는 숫자로 된 매개변수대칭키 암호체계 및 비대칭키 암호체계 및 공개키 암호법
디지털 서명
메시지가 위조 혹은 변조되지 않았음을 증명하는 체크섬디지털 인증서
신뢰할 만한 조직에 의해 서명되고 검증된 신원 확인 정보
디지털 서명 (Digital Signing)
암호체계는 메시지를 암호화하고 해독하는 것뿐만 아니라, 누가 메시지를 썻는지 알려주고 그 메시지가 위조되지 않았음을 증명하기 위해 메시지에 서명을 하도록 하는데에 이용할 수 있다. 디지털 서명(digital signing) 이라 불리는 이 기법은 인터넷 보안 인증서에서 매우 중요하다.
서명은 암호 체크섬
'알아두면 쓸모있는 SW 지식' 카테고리의 다른 글
20200602 서버리스란. (0) | 2020.06.03 |
---|---|
20190717 API 란 무엇인가? (0) | 2019.07.17 |
20180710 해시테이블(HashTable) (갱신 : 20190110) (0) | 2018.11.03 |
20181024 빅엔디안 & 리틀엔디안 (0) | 2018.10.24 |
20180112 프로그래밍 언어? (0) | 2018.01.12 |