블록체인·비트코인·보안

대칭키 암호화와 공개키 암호화, 전자서명

자바머거 2019. 4. 4. 21:24

대칭키 암호화

평문을 암호문으로 암호화할 때 사용하는 키와 암호문을 평문으로 복호화할 때 사용하는 키가 동일한 암호시스템이다.

 

보안장비에서 Pre-Shared Key로 표현되는 방식이며, 영문 그대로 미리 공유된 대칭키라는 의미를 갖고있다.

 

예를들어 A와 B가 있다고 했을 때, A가 B에게 대칭키로 암호화된 암호문을 보내면, B는 미리 공유된 대칭키로 해당 암호문을 평문으로 복호화 하는 방식이다.

 

알고리즘이 상대적으로 단순하지만 송신자와 수신자가 서로 동일한 내용의 대칭키를 이미 암호화가 시작하기 전에 알고 있어야 하므로 폐쇄적이고, 시스템의 사용자들이 매 두 사용자마다 하나의 서로 다른 키를 공유해야하기 때문에 키 관리가 어렵다.

 

또한, 대칭키를 두 사용자가 서로 교환하려고 한다면 둘 중 한명이 다른 한명에게 암호키를 전달해야하는데, 제 3자가 이를 가로챌 수 있고 가로챈 암호키로 원래 두 사용자의 대칭키를 통한 암호화통신을 복호화하여 그 내용을 확인할 수 있다.

 

이러한 약점을 보완하기 위해 나타난 암호시스템이 공개키 암호 시스템이다.

 

 

공개키 암호화 (비대칭키 암호화)

공개키 암호화 시스템에서는 각 사용자는 두 개의 키를 받는다.

 

하나는 공개된 공개키(public key), 다른 하나는 사용자에 의해 비밀리에 관리 되어야 하는 비밀키(private key)인데, 양쪽의 키가 다르기 때문에 비대칭키 암호화라고 한다.

 

대칭키 암호화와는 다르게, 각 사용자는 자신의 비밀키만 관리하면 되므로 키 관리의 어려움을 줄일 수 있다.

 

어떤 사용자의 공개키로 암호화할 경우 해당 사용자의 개인키로만 복호화할 수 있고, 그 반대도 허용이 된다.

 

공개키를 관리하는 공개키 관리 시스템이 있고, 각 사용자는 이 시스템에 자유롭게 접근하여 다른 사용자의 공개키를 열람할 수 있다.

 

예를들어 A와 B가 있다고 했을 때, A가 B의 공개키를 열람해서 그 공개키로 암호화해서 B에게 보내면, B는 자신의 개인키로 복호화를 한다.

 

반대도 똑같이 생각하면 된다. A가 자신의 개인키로 암호화해서 B에게 보내면, B는 A의 공개키를 열람해서 그 공개키로 복호화를 하게된다.

 

공개키 기법의 전자서명

전자서명이란 사이버 공간에서의 인감이다.

 

사이버 공간에서는 수많은 위협들이 존재하고 있고, 정보들의 위변조가 손쉽게 일어난다. 따라서 프로그램의 제작자를 확인하고, 거래를 한 사람이 나 자신이 맞다는 것을 증명하기 위하여 나오게 된 것이 전자서명이다.

 

전자서명은 공개키 암호화 기법을 사용한다. 수학적인 알고리즘으로 암호화되어 절대로 해독이 불가능한 한 쌍의 공개키와 개인키를 생성하는데, 여기서 개인키는 절대적 패스워드라고 보면 된다.

 

이미 발급된 전자문서의 해시(Hash)값을 추출하여 자신의 개인키로 암호화 한다. 그 후 전자문서와 함께 암호화한 해시값을 함께 상대방에게 보낸다. 문서를 받은 상대방은 문서를 보낸 사람의 공개키로 해시값을 복호화 한 후 자신이 전달받은 문서의 해시값과 비교하여 일치하면 문서가 위,변조 되지 않았으며, 자신이 올바른 사람에게서 정보를 전달 받았음을 확인할 수 있다.  여기에서 전자문서의 해시값을 개인키로 암호화 한 것이 바로 오프라인에서의 인감날인 역할을 하는 것이다.