[Network] 15. 비대칭키 또는 공개키 암호화 방식은 무엇인가요?
naneun opened this issue · 1 comments
naneun commented
15. 비대칭키 또는 공개키 암호화 방식은 무엇인가요?
키워드
대칭키
, 공개키
, 암호화
naneun commented
대칭키 암호화 방식
- 암복호화에 서로 같은 키를 사용한다. 따라서, 키를 나누는 과정이 필요하다.
- 내가 키로 암호화한 내용을 대칭키를 갖고 있는 다른 사용자가 해당 키로 복호화할 수 있다.
- 키의 길이가 짧아 암복호화가 빠르다.
공개키 암호화 방식
- 암복호화에 서로 다른 키를 사용한다.
- 비밀키는 나 이외의 다른 사용자가 알아서는 안 되는 키다.
- 공개키는 누구나 알 수 있도록 공개되어있기 때문에 따로 키를 나누는 과정이 필요 없다.
- 내가 비밀키로 암호화하면 공개키를 알고 있는 다른 사용자가 공개키로 복호화할 수 있다
- 다른 사용자가 공개키로 암호화하면 나는 비밀키로 복호화할 수 있다.
- 키의 길이가 길어서 암복호화가 느리다.
ex) 디지털 서명
- 공개키 암호화 방식을 사용한다.
- 전달하고자 하는 정보를 비밀키로 암호화하면 서명을 얻어낼 수 있다.
- 이 서명을 다른 사용자에게 전달하고 해당 사용자는 이 서명을 공개키로 복호화하면 정보를 얻어낼 수 있다.
ex) HTTPS
서버 측 사전 준비
- 서버는 인증기관 (CA) 로부터 인증서를 발급 받기 위해 서버의 정보가 포함된 인증서 발급 요청을 한다.
- 인증기관은 서버, 인증기관에 대한 정보 및 서버 측 공개키가 포함된 인증서를 서버에 발급해 준다.
클라이언트의 요청
- 클라이언트가 서버에 요청하면 서버는 클라이언트에게 인증기관으로부터 발급 받은 인증서를 발급한다.
- 웹 브라우저가 사전에 인증기관의 공개키를 갖고 있기 때문에 이를 통해 클라이언트는 인증서 내의 서버의 공개키를 얻을 수 있다.
- 클라이언트는 대칭키를 만든 후 이를 인증서로부터 얻어낸 서버 측의 공개키로 암호화하여 서버에 전달한다.
데이터 교환
- 서버는 클라이언트가 전달한 암호화된 대칭키를 받고 이를 비밀키로 복호화하여 대칭키를 얻어낼 수 있다.
- 클라이언트, 서버 양측 모두 대칭키를 갖게 되고 이로써, 이후 데이터를 주고 받을 때 대칭키 암호화 방식을 사용할 수 있게 된다.
대칭키 암호화 방식을 사용하는 이유
- 대칭키 암호화 방식이 공개키 암호화 방식에 비해 빠르다.
- 따라서, 데이터를 전송하는데 있어서는 대칭키 암호화 방식을 사용하기 위해 대칭키를 공개키로 암호화해서 전달한다.