하나의 비밀키(Secret Key)를 Client(송신자)와 Server(수신자)가 같이 사용
Client와 Server 둘 중 한 쪽이라도 키가 노출되면 그 Secret Key는 안전을 보장할 수 없음
대칭키를 사용하는 암호 알고리즘 기법으로 DES, 3-DES, AES, SEED, ARIA, MASK등이 있다.
암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 다른 암호화 방식
public key : 사람들에게 공개된 키
private key : 사용자만 알고 있는 키
Flow
1. public key를 동봉해 요청
2. 전송할 데이터를 public key를 이용해 암호화를 한 후 전송
3. client는 자신이 가지고 있는 private key를 이용해 복호화한다.
전자 서명
Flow
1. private key로 암호화한 데이터와 public key를 함께 전송
2. server에서 public key를 통해 복호화
3. 인증 완료
대칭키는 암호화 속도가 빠르고, 비대칭키는 속도가 느리다
그래서 이 둘을 혼합해서 사용
이 알고리즘의 수식은 안적겠다.. 내가 이해를 못하겠어서..
% 상황 설명 %
1. server가 secret key를 만들고 그 key를 client의 public key를 통해 암호화한다.
2. 암호화 된 secret key를 client에게 전송
3. client가 가진 private key를 통해 복호화.
3.5. 이때 server와 client는 똑같은 secret key를 가지고 있음
4. 통신 시작
한줄 설명 : 대칭키를 비대칭키로 암호화하여 전송, 받는 쪽에서 대칭키를 복호화한 데이터(대칭키)를 이용해 통신
이 때 이 Symmetric key(대칭키)는 Session key(세션)라고도 불림