🧐 TIL
[백엔드 기본 개념 정리] 대칭키 / 비대칭키
앞서 SSL/TLS에 대한 포스트에서 통신 간 기밀성, 무결성, 신뢰 확보를 위해 공개키와 비공개키, 암호화와 복호화가 사용된다는 내용을 작성했다.
이번 포스트에서는 SSL/TLS 프로토콜에서 데이터 암호화를 위해 사용되었던 두 방식인 대칭키와 비대칭키에 대해 알아본다.
대칭키 암호 (Symmetric Key Cryptography)
— 대칭되는 하나의 같은 키를 데이터의 암호화와 복호화에 모두 사용하는 방식.
- 장점: 빠르다 (대용량 데이터 암호화에 적합)
- 단점: 키를 안전하게 주고받는 문제가 있다. 단일 키를 사용하기 때문에 키가 중간에 유출되면 데이터의 기밀성을 잃는다.
- 대표 알고리즘:
- DES (Data Encryption Standard): 과거에 많이 사용되었던 알고리즘. 현재는 안정성이 충분하지 않아 다른 알고리즘을 주로 사용한다.
- 3DES (Triple DES): DES를 강화한 알고리즘
- AES (Advanced Encryption Standard): 현재 가장 널리 사용되는 알고리즘
비대칭키 암호 (Asymmetric Key Cryptography)
— 서로 다른 두 개의 키를 사용하여 데이터를 암호화하고 복호화 하는 방식.
- 두 개의 키는 **공개키(Public Key)**와 **비밀키(Private Key)**로 나뉘며, 공개키로 암호화를 하고 공개키에 대응하는 비밀키만으로 복호화를 할 수 있다. 일종의 우편함처럼 누구나 우편함에 편지를 넣을 수 있지만(공개키로 암호화), 우편함을 열어볼 수 있는 건 열쇠(비밀키)를 가진 사람만 가능한 형태.
- 장점: 대칭키에 비해 보안성이 높다. 공개키가 유출되어도 비교적 안전하다.
- 단점: 연산이 무겁고 느려서 대용량 데이터 암호화에는 부적합하다.
- 대표 알고리즘
- RSA (Rivest-Shamir-Adleman): 현재 가장 널리 사용되는 비대칭키 알고리즘
- DSA (Digital Signature Algorithm): 주로 디지털 서명 생성에 사용되는 알고리즘
- ECC (Elliptic Curve Cryptography): 작은 사이즈의 키로 높은 보안 수준을 제공하여 제한된 환경에서 효율적인 알고리즘