CS공부/컴퓨터네트워크

대칭키 & 공개키

kluiop1 2021. 6. 26. 00:12

대칭키와 공개키에 대한 설명에 앞서 네트워크의 안전한 통신에 요구되는 특성 알아보자

기밀성

송신자와 지정된 수신자만이 전송되는 메시지 내용을 이해할 수 있어야한다.

 

메시지 무결성

통신하는 내용이 전송도중에 변경되지 않아야한다.

 

종단점 인증

송신자와 수신자는 통신에 참여하는 상대방이 실제 누구인지 확인하기 위해서 신원을 확인할 수 있어야한다.

 

운영보안

내부 네트워크(회사, 학교의)가 외부로부터의 공격을 방지하기 위한 운영이 필요하다.

 

대칭키 암호화 방식

대칭키 암호화 방식은 암복호화에 사용하는 키가 동일한 암호화 방식을 말한다.

대칭키 암호화 방식에서의 키는 송신자와 수신자사이의 비밀이다.

즉 대칭키는 암복호화키가 동일하며 해당 키를 아는 사람만이 문서 복호화해 볼 수 있게 된다.

 

장점

공개키 암호화 방식에 비해 속도가 빠르다

 

단점

키를 교환해야한다는 문제(대칭키 암호화 방식에서의 키는 송신자와 수신자 둘만 알아야 하기 때문)

발생 키가 탈취 될 수 도 있고 (키 교환시 발생하는 안전문제)

사람이 증가할수록 전부 따로 따로 키 교환을 해야하기 때문에 관리해야할 키가 방대하게 많아진다.

 

키 배송 문제 해결 방법

1. 키 사전 공유

2. 키 배포 센터 설립

3. Diffe-Hellman 키 교환에 의한 해결

4. 공개키 암호에 의한 해결이 있다.

 

Diffe-Hellman 키 교환

두 사람이 암호화되지 않은 통신망을 통해 공통의 비밀 키를 공유할 수 있도록 하는 방법

Alice는 충분히 큰 소수 p와 적당한 g 를 하나씩 정한다.

Alice는 무작위로 정수 a를 하나 고른다.

AliceA=g^a mod p를 구한다.

Alicep,g,ABob에게 전달한다.

Bob은 무작위로 정수 b를 하나 고른다.

BobB=g^b mod p를 구한다.

BobAlice에게 B를 전달한다.

 

공개키 암호화 방식

대칭키 키교환 문제를 해결하기 위해 등장한 것

공개키 암호화 방식은 암복호화에 사용하는 키가 서로 다르며 따라서 비대칭키 암호화라고 한다.

공개키 암호화에서는 송수신자 모두 한쌍의 키(개인키, 공개키)를 갖고 있다.

 

공개키는 모든 사람이 접근 가능한 키

개인키는 각 사용자만이 가지고 있는 키

 

만약 AB에게 데이터를 보낸다고 할 때 AB의 공개키로 암호화한 데이터를 보내고 B는 본인의 개인키로 해당 암호화된 데이터를 복호화해서 보기 때문에 암호화된 데이터는 B의 공개키에 대응되는 개인키를 갖고 있는 B만이 볼 수 있게된다.

 

장점

공개키는 키가 공개되어있기 때문에 따로 키교환이나 분배를 할 필요고 없어진다.

중간 공격자가 B의 공개키를 얻는다고 해도 B의 개인키로만 복호화가 가능하기 때문에 기밀성 제공

개인키를 가지고 있는 수신자만이 암호화된 데이터를 복호화 할 수 있으므로 일종의 인증기능도 제공

 

단점

키 길이가 길고 복잡한 수학적 연산을 이용하기때문에 암호화와 복호화 속도가 느림

 

참고

https://liveyourit.tistory.com/183

https://raonctf.com/essential/study/web/symmetric_key