보안

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

머핀맨 2022. 9. 7. 14:59

암호 방식의 한 종류로 비밀 키 암호 방식과 달리 암호화와 복호화에 이용하는 키가 다른 방식을 말한다. 비대칭 암호라고 부르기도 한다.

원리

공개 키 암호 방식은 출제자만이 알고 있는 특정한 종류의 정보(비밀 키) 없이는 매우 풀기 어려운 수학적 문제(공개 키)를 바탕으로 만들어진다.

키를 만드는 사람은 이 문제(공개 키)를 일반에 공개하고 특정한 정보(비밀 키)는 자신만이 알 수 있도록 숨긴다. 그러면 어떤 사람이건 이 문제를 이용해 메시지를 암호화하면 키를 만든 사람만이 이 문제를 풀어 원래 메시지를 해독할 수 있다.

기밀성

언제 대칭 암호화를 사용하고, 언제 비대칭 암호화를 사용할까? 비대칭 암호화는 클라이언트와 서버 간 시크릿을 교환할 때 사용한다. 실생활에서는 양방향 비대칭 통신이 필요하지 않다. 당사자 중 한쪽이(서버라고 하자) 일련의 키를 가지고 있으므로 암호화된 메시지를 받을 수 있다는 것만으로 충분하다. 이는 공개 키로 암호화한 정보는 개인키를 사용해야만 복호화되기 때문에 클라이언트에서 서버로 향하는 단방향으로만 정보를 보호한다. 그러므로 서버에서만 그 정보를 복호화할 수 있다. 반대 방향은 보호되지 않는다. 서버의 개인 키로 암호화된 정보는 공개 키를 가진 누구든지 복호화할 수 있다. 상대편(클라이언트라고 하자)은 서버의 공개 키를 사용해 무작위로 생성된 세션 시크릿을 암호화해 통신을 시작한다. 그 다음 암호문을 다시 서버로 보내고, 서버는 다시 자신의 개인 키로 복호화하면 그 시크릿을 갖게 된다.

무결성

(1)전체 정보가 잘 도착했으며, (2)전송 중에 누가 변조하지 않았음을 보장한다. 정보가 잘 전송되었음을 보장하기 위해 메시지 다이제스트(message digest) 알고리즘을 사용한다.

인증

공개 키 인프라의 실제 애플리케이션이 갖는 문제는 양쪽 당사자가 (물리적으로 떨어져 있는) 상대편이 실제로 누구인지 알 방법이 없다는 것이다. 그래서 상대편의 신원을 보증하기 위해 상호 신뢰할 수 있는 제3자, 즉 인증 기관certificate authority, CA 이 필수다. 인증 기관은 example.com이라는 도메인 이름(고유한 식별자)이 공개 키 XXX와 연결되어 있음을 기술한 인증서를 발행한다.

SSL 공개 키 파일로 획득 방법

https://www.lesstif.com/gitbook/https-ssl-curl-web-browser-16744456.html

비대칭키 방식 정리

[참조] https://limvo.tistory.com/21

  • 공개키로 암호화한 내용은 공개키로 복호화할 수 없고 개인키로 복호화가 가능하다.
  • 개인키로 암호화한 내용은 개인키로 복호화할 수 없고 공개키로 복호화가 가능하다.

비대칭 키 시스템에서 개인 키는 자신만 가지고 있는 단일 소유권이고 공개 키는 여러 사용자가 소유할 수 있는 분산 소유권이다.

두개의 노드가 통신한다고 했을 때 주로 공개 키로 암호화된 메시지를 개인 키로 복호화하여 통신하고 개인키로 암호화된 메시지는 공개 키를 가진 모든 소유자들이 전부 복호화할 수 있기 때문에 주로 메시지 서명에 사용한다.

메시지 서명은 작성자가 해시값을 개인키로 암호화하여 모든 사용자가 공개키로 해시값을 복호화하고 수신된 해시값과 비교하여 올바른 작성자임을 증명하는 것이다.


Ref

위키백과 : https://ko.wikipedia.org/wiki/공개_키_암호_방식

https://m.blog.naver.com/errorsoft666/221557573037

https://webactually.com/2018/11/16/http에서-https로-전환하기-위한-완벽-가이드/