인코딩 할 때 사용하는 키와 디코딩을 할 때 사용하는 키가 같은 암호화 방법을 대칭키 암호라 한다.
대칭키 암호에서, 발송자와 송신자 모두 통신을 위해 k라는 비밀 키를 똑같이 공유해서 사용한다.
:memo: 공개키 암호법
한 쌍의 호스트가 하나의 인코딩/디코딩 키를 사용하는 대신, 두 개의 비대칭 키를 사용한다.
한 개의 비대칭 키는 메시지를 인코딩 하기 위해 사용된다.
다른 한 개의 비대칭 키는 메시지를 디코딩 하기 위해 사용된다.
클라이언트쪽의 비대칭 키는 보통 공개가 된 키라 불리는 공개 키를 가지고 있다.
서버쪽의 비대칭 키는 메시지를 디코딩 하기위해 서버측만 아는 개인 키를 가지고 있다.
:label: 대칭키 암호법과 공개키 암호법의 차이점
대칭 키 암호를 사용할 경우에 클라이언트와 서버 양 측 모두 공유키를 가져야 하는데 이는 서버 측에서는 클라이언트 수 N만큼 있다 할 때, 각 노드들이 다른 노드들과 통신을 하려면, 대략 N^2개의 비밀 키가 필요하다. 이는 곧 서버측에서 관리해야 할 포인트가 그만큼 늘어난다는 뜻이다.
공개 키 암호를 사용할 경우에는 서버 측에서 자신의 인코딩 키를 공개적으로 배포할 수 있는데 해당 서버만이 메시지를 디코딩 할 수 있는 개인 키를 가지고 있기 때문이다.
공개키 암호법과 대칭키 암호법의 차이점은 무엇인가요?
섹션: 14장, 보안 HTTP