Symmetric Key (대칭키)
- 암호화와 복호화 같은 암호키(대칭키)를 사용하는 알고리즘
- 동일한 키를 주고 받기 때문에 매우 빠르다는 장점이 있지만 대칭키 전달과정에서 해킹 위험에 노출
공개키(Public Key)/비대칭키(Asymmetric Key)
- 암호화와 복호화에 사용하는 암호키를 분리한 알고리즘
- 대칭키일 때는 송수신자 키를 알아야하기 때문에 분배가 복잡하고 어렵지만 공개키와 비밀키로 분리할 경우 남들이 알아도 되는 공개키만 공개하면 되므로 대칭키의 키 분배 문제를 해결하기 위해 고안됐다.
- 자신이 가지고 있는 고유한 암호키(비밀키)로만 복호화할 수 있는 암호키(공개키)를 대중에 공개한다.
공개키 암호화 방식 진행 과정
- A가 웹 상에 공개된 B의 공개키를 이용하여 평문을 암호화하여 B에 보낸다.
- B는 자신의 비밀키로 복호화한 평문을 확인, A의 공개키로 응답을 암호화하여 A에게 보낸다.
- A는 자신의 비밀키로 암호화된 응답문을 복호화한다.
- 하지만 이 방식은 Confidentiallity만 보장해줄 뿐 Integrity나 Authenticity는 보장해주지 못한다.
- 이는 Mac (Message Authentication Code)나 전자 서명으로 해결
- Mac은 공개키 방식이 아니라 대칭키 방식임을 유의해야 한다.
- 대칭키에 비해 암호화 복호화가 매우 복잡하다.
대칭키와 공개키 암호화 방식을 혼합한다면
SSL 탄생의 시초가 된다.
대칭키를 주고 받을 때만 공개키 암호화 방식을 사용하고 이후에는 계속 대칭키 암호화 방식으로 통신하는 것이다.
- A가 B의 공개키로 암호화 통신에 사용할 대칭키를 암호화하고 B에게 보낸다.
- B는 암호문을 받고 자신의 비밀키로 복호화한다.
- B는 A로부터 얻은 대칭키로 A에 보낼 평문을 암호화하여 A에게 보낸다.
- A는 자신의 대칭키로 암호문을 복호화한다.
- 앞으로 이 대칭키로 암호화를 통신한다.
'기초 CS 정리' 카테고리의 다른 글
TLS/SSL handshaking (0) | 2023.02.09 |
---|---|
HTTP & HTTPS (0) | 2023.02.08 |
TCP/IP의 흐름제어, 혼합제어 (1) | 2023.02.05 |
TCP 3way handshake (0) | 2023.02.05 |
OSI 7계층 (0) | 2023.02.04 |