개발 공부

(보안) RSA - 전자서명 - PKI 본문

IT 상식

(보안) RSA - 전자서명 - PKI

아이셩짱셩 2018. 6. 8. 16:39

비밀 통신 시작

A와 B가 비밀통신한다고 가정

1. A는 RSA 공개키를 B에게 줌

2. B는 AES키를 생성해 A의 공개키로 암호화 시켜 A에게 보냄

3. A는 받은 암호화된 메시지를 A의 개인키로 풀어 AES키를 획득

4. 그 이후 통신은 AES키로 암호화 시켜 전달한다.

이 과정속에서 해커가 메시지를 가로채서 해독하기는 어렵겠지만, 

B가 해커라면, 비밀통신하는 의미가 없어진다.

B가 그 B가 맞는지 입증할 수 있어야 한다.

 

일반적인 B입증 방법

1. 제 3의 인증기관(CA)이 필요하다. 

   인증서 비용이 매년 발생하게 된다.(물론 무료도 있다.)

   B는 사전에 B의 공개키+서버 주소등을 CA에 주고, 

   CA는 B가 준 정보를 CA의 개인키로 암호화시킨 인증서로 만들어 B에게 준다.

2. A는 CA의 공개키를 갖고 있어야 하며, 

   B에게서 받은 인증서를 CA 공개키로 복호화하여 서버 주소와 B의 공개키를 얻어낼 수 있다면, 

   B가 입증되는 것이다. 

3. A는 AES키를 생성해 B의 공개키로 암호화하여 전송

4. B는 B의 개인키로 A의 메시지를 복호화하여 AES키 획득 

5. 이후 통신부터는 AES로 암호/복호화 한다.


비대칭키 암호화 vs. 비대칭키 전자서명

1. 비대칭키 암호화
- 내가 뿌린 공개키로 암호화한 메시지를 내가 받아 나만 가지고 있는 비밀키로 열어볼 수 있음

2. 비대칭키 전자사면
- 나만 가지고 있는 비밀키로 암호화한 내용을 내가 뿌린 공개키로 열어볼 수 있음(누구나 내용을 볼 수는 있지만 암호화에 쓰인 비밀키는 한 곳에만 있으므로 이 내용을 열어보는 사람은 이 내용이 내가 작성한 거라는 걸 신뢰하게 됨)


기타

RSA : Ron Rivest, Adi Shamir and Leonard Adleman


사진출처 : https://ko.wikipedia.org/wiki/%EA%B3%B5%EA%B0%9C_%ED%82%A4_%EA%B8%B0%EB%B0%98_%EA%B5%AC%EC%A1%B0

내용출처 : http://yakolla.tistory.com/117

'IT 상식' 카테고리의 다른 글

(용어, 이론) 무어의 법칙  (0) 2018.09.30
(보안) RSA 암호화  (0) 2018.09.27
(개발) python 강의 모음  (0) 2018.08.22
(기타) lorem ipsum  (0) 2018.08.22
(개발) 장고 소개  (0) 2018.08.22
Comments