대칭키 (Symmetric Key)
- 대칭키 암호화 방식은 암호화와 복호화에 같은 암호키를 사용하는 알고리즘입니다.
- 하나의 키를 클라이언트와 서버 양쪽이 같이 사용합니다.
- 공개키 암호화 방식에 비해 암호화 및 복호화 속도가 빠르고 비교적 간편합니다.
- 암호화 통신을 하는 사용자끼리 같은 암호키를 공유해야만 하기 때문에 보안에 매우 취약할 수 있습니다.
- 여러 사용자들과 각각 암호화 통신을 하기 위해서는 암호키가 여러 개 필요하기 때문에 관리해야 할 키의 개수가 방대해질 수 있습니다.
- 대표 알고리즘 : DES, 3DES, AES, SEED, ARIA 등
대칭키 암호화 시나리오
1. A는 사전에 공유된 대칭키로 데이터를 암호화하여 B에게 전송합니다.
2. B는 같은 대칭키로 데이터를 복호화합니다.
공개키 (Public Key)
- 공개키 암호화 방식은 암호화와 복호화에 사용하는 암호키를 분리한 알고리즘입니다.
- 따라서, 비대칭키 암호화라고도 부릅니다.
- 공개키(Public Key)만 대중에게 공개하고, 암호화 된 데이터는 자신만의 고유한 비밀키(Private Key)로만 복호화할 수 있습니다.
- 이 비밀키를 가진 사용자만이 내용을 열어볼 수 있기 때문에 안전합니다.
- 암호화와 복호화를 위해 복잡한 수학 연산을 수행하기 때문에 대칭키 암호화 방식에 비해 속도가 느리고 복잡합니다.
- 대표 알고리즘 : RSA 등
공개키 암호화 시나리오
1. A가 웹 상에 공개된 B의 공개키를 이용하여 평문을 암호화합니다.
2. B는 B의 비밀키로 암호문을 복호화하여 평문을 확인합니다.
3. B가 A의 공개키로 A에게 응답을 암호화하여 보냅니다.
4. A는 A의 비밀키로 암호화 된 응답문을 복호화합니다.
이론적으로 완벽한 암호화 시나리오
대칭키와 공개키 암호화 방식을 모두 사용하면 이론적으로 완벽한 암호화 시나리오를 만들 수 있습니다.
대칭키를 주고 받을 때만 공개키 암호화 방식을 사용하고, 이후에는 계속 대칭키 암호화 방식으로 통신합니다.
이 방식은 SSL(Secure Socket Layer)의 시초가 되었습니다.
1. A가 암호화 통신에 사용할 대칭키를 B의 공개키로 암호화하여 B에게 보냅니다.
2. B는 암호문을 받아 B의 비밀키로 복호화합니다.
3. B는 A로부터 얻은 대칭키로 평문을 암호화하여 A에게 보냅니다.
4. A는 A의 대칭키로 암호문을 복호화합니다.
5. 이후에는 계속 대칭키로 암호화 통신을 합니다.
728x90
반응형
'CS 지식 > 네트워크' 카테고리의 다른 글
[CS] 브라우저로 웹사이트에 접속할 때 일어나는 일 (0) | 2023.12.25 |
---|---|
[CS] HTTP, HTTPS 그리고 SSL (0) | 2023.12.13 |
[CS] 3-Way Handshake와 4-Way Handshake (0) | 2023.12.11 |
[CS] UDP (0) | 2023.12.10 |
[CS] TCP (0) | 2023.12.07 |