동일한 키를 사용하여 암호화와 복호화
대칭키(secret key) k = 01011001
전송메시지(m = 10110011) XOR 비밀키(k = 01011001) => 암호화된 메세지 (c = 11101010)
암호화된 메세지(c = 11101010) XOR 비밀키(k = 01011001) => 전송메세지(m)
이러한 방법을 통해, 중간에 해커들은 암호화 된 메세지(c=11101010)를 가로챈다고 한들, 전송메세지(m=10110011)를 유추할 수 없게 된다.
예를 들어, XOR 계산을 통해 암호화 된 메세지(c)의 첫 이진수가 0이라면, 전송메세지(m)의 이진수와 비밀키(k)의 이진수가 같다는 뜻이지만, 그 이진수가 0인지 1인지는 알 수 없다.
AES, DES, SEED, ARIA 등
AES 알고리즘 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=zzbksk&logNo=221004912621
RSA, DSA, ECC 등
참고 : https://ko.wikipedia.org/wiki/RSA_%EC%95%94%ED%98%B8
N, e를 알아도 d를 찾기 매우 힘들다
공개키 : <N, e>
비밀키 : <N, d>
<장점>
빠른 속도(대용량 데이터 암호화에 적합)
<단점>
키 교환에 따른 보안상 취약점 발생
=> 대칭키와 비대칭키 함께 사용(비대칭키를 대칭키 교환에 사용)
사람이 많아지면 관리해야 할 키 많아진다
<장점>
키 교환/분배 필요없다
인증/부인방지 기능
<단점>
비교적 느린 속도
사용자 a : a의 개인키 ---> 서버 : 사용자의 공개키
사용자 a의 개인키는 a만 들고있기 때문에 서버에서는 내용을 a가 보낸 것이라는 것을 알 수 있다.
: 웹사이트와 브라우저(혹은 두 서버) 사이에 전송된 데이터를 암호화하여 인터넷 연결 보안을 유지하는 기술
: 더 강력한 버전의 SSL
: SSL/TLS를 통해 암호화한 HTTP 프로토콜의 보안 버전
ex) 해커가 사용자가 사용하는 은행 서버와 똑같이 생긴 서버를 만들어서 개인정보 탈취
-> 인증서를 통해 방지 가능