대칭키
무엇인가?
- 암호화나 복호화에 사용하는 키가 동일한 방식을 말한다.
- 대표적인 알고리즘으로 DES, 3DES, AES, SEED, ARIA 등이 존재한다.
장단점
- 공개키 암호화는 속도가 빠르다는 장점이 있으나, 복호화하는 상대도 암호화한 상대와 동일한 키를 가져야하므로 키를 교환해야한다는 단점이 존재한다.
- 키의 교환이 필요하게되면 해당 과정중 키를 탈취당할 우려가 있기 때문이다. 또한 암호화가 필요한 데이터가 많아질수록 관리해야하는 키의 양이 늘어난다.
- 이러한 문제를 해결하기 위해 키의 사전공유, 키 배포센터, Diffie-Hellman 키교환, 공개키 암호화와 같은 해결책들이 존재한다.
비대칭키(공개키)
무엇인가?
- 해당 방식은 대칭키의 키교환 문제를 해결하기 위한 암호화 방식이다.
- 여기서 키는 누구든지 알 수 있는 공개키와 각 사용자만이 알 수 있는 개인키로 나누어진다.
- 상대방이 공개된 키로 암호화해서 나에게 전달하면 나는 내가 가지고 있는 개인키를 사용하여 복호화하고 그 내용을 정상적으로 받을 수 있는 것이다.
장단점
- 비대칭키 암호화의 경우 나만 개인키를 가지고 있으며, 나에게 암호화된 데이터를 보내기 위해서는 공개된 키를 가지고 있으면 되므로 키분배의 필요성이 사라진다는 장점이 있음.
- 기밀성, 부인방지의 기능을 제공한다.
- 암호화하는 키와 복호화하는 키가 다르므로 굉장히 복잡하여 속도가 대칭키에 비해서 느리기다.
SSL의 기초
- 위에서 언급한 내용처럼 공개키는 대칭키의 교환에 쓰이고, 대칭키의 교환이 끝나면 이후 데이터의 암호화는 대칭키에 의해 이루어진다. 이것은 SSL의 기초라고 볼 수 있다.
- A가 B의 공개키로 암호화 통신에 사용할 대칭키를 암호화하고 B에게 보냄
- B는 암호문을 받고, 자신의 비밀키로 복호화함
- B는 A로부터 얻은 대칭키로 A에게 보낼 평문을 암호화하여 A에게 보냄
- A는 자신의 대칭키로 암호문을 복호화함
- 앞으로 이 대칭키로 암호화를 통신함
https에 관련한 내용은 아래의 블로그에 쉽고 자세히 나와있는듯 하여 링크 남깁니다.
https://nuritech.tistory.com/25