대칭키 & 공개키
대칭키와 공개키에 대한 설명에 앞서 네트워크의 안전한 통신에 요구되는 특성 알아보자
기밀성
송신자와 지정된 수신자만이 전송되는 메시지 내용을 이해할 수 있어야한다.
메시지 무결성
통신하는 내용이 전송도중에 변경되지 않아야한다.
종단점 인증
송신자와 수신자는 통신에 참여하는 상대방이 실제 누구인지 확인하기 위해서 신원을 확인할 수 있어야한다.
운영보안
내부 네트워크(회사, 학교의)가 외부로부터의 공격을 방지하기 위한 운영이 필요하다.
대칭키 암호화 방식

대칭키 암호화 방식은 암복호화에 사용하는 키가 동일한 암호화 방식을 말한다.
대칭키 암호화 방식에서의 키는 송신자와 수신자사이의 비밀이다.
즉 대칭키는 암복호화키가 동일하며 해당 키를 아는 사람만이 문서 복호화해 볼 수 있게 된다.
장점
공개키 암호화 방식에 비해 속도가 빠르다
단점
키를 교환해야한다는 문제(대칭키 암호화 방식에서의 키는 송신자와 수신자 둘만 알아야 하기 때문)
발생 키가 탈취 될 수 도 있고 (키 교환시 발생하는 안전문제)
사람이 증가할수록 전부 따로 따로 키 교환을 해야하기 때문에 관리해야할 키가 방대하게 많아진다.
키 배송 문제 해결 방법
1. 키 사전 공유
2. 키 배포 센터 설립
3. Diffe-Hellman 키 교환에 의한 해결
4. 공개키 암호에 의한 해결이 있다.
Diffe-Hellman 키 교환
두 사람이 암호화되지 않은 통신망을 통해 공통의 비밀 키를 공유할 수 있도록 하는 방법
Alice는 충분히 큰 소수 p와 적당한 g 를 하나씩 정한다.
Alice는 무작위로 정수 a를 하나 고른다.
Alice는 A=g^a mod p를 구한다.
Alice는 p,g,A를 Bob에게 전달한다.
Bob은 무작위로 정수 b를 하나 고른다.
Bob은 B=g^b mod p를 구한다.
Bob은 Alice에게 B를 전달한다.
공개키 암호화 방식

대칭키 키교환 문제를 해결하기 위해 등장한 것
공개키 암호화 방식은 암복호화에 사용하는 키가 서로 다르며 따라서 비대칭키 암호화라고 한다.
공개키 암호화에서는 송수신자 모두 한쌍의 키(개인키, 공개키)를 갖고 있다.
공개키는 모든 사람이 접근 가능한 키
개인키는 각 사용자만이 가지고 있는 키
만약 A가 B에게 데이터를 보낸다고 할 때 A는 B의 공개키로 암호화한 데이터를 보내고 B는 본인의 개인키로 해당 암호화된 데이터를 복호화해서 보기 때문에 암호화된 데이터는 B의 공개키에 대응되는 개인키를 갖고 있는 B만이 볼 수 있게된다.
장점
공개키는 키가 공개되어있기 때문에 따로 키교환이나 분배를 할 필요고 없어진다.
중간 공격자가 B의 공개키를 얻는다고 해도 B의 개인키로만 복호화가 가능하기 때문에 기밀성 제공
개인키를 가지고 있는 수신자만이 암호화된 데이터를 복호화 할 수 있으므로 일종의 인증기능도 제공
단점
키 길이가 길고 복잡한 수학적 연산을 이용하기때문에 암호화와 복호화 속도가 느림
참고