암호학

21.06.26 key

슈팅스타제제 2021. 6. 30. 15:16

암호화는 특정 수신자만 를 사용하여 데이터를 읽을 수 있도록 데이터를 변환하는 과정을 말한다. 

여기서 키는 종류가 많은데 하나씩 살펴보도록 하겠다. 

 

-키의 종류

암호화용 키, 역암호화용 키 - 암호화 용도에 따라

암호화용 키 : 암호화를 할 때 사용하는 키

역암호화용 키 : 암호화된 것을 풀 때 사용하는 키

 

대칭키, 비대칭키 - 암호화, 복호화 과정에 따라

대칭키 : 송수진자가 같은 키를 쓰는 방식

비대칭키 : 암호화와 역암호화가 서로 다른 키를 쓰는 방식

주로 암호화할 때는 공개키를 사용하고 이를 역암호화할 때는 개인키를 사용

 

비밀키, 개인키, 공개키 - 공개 여부에 따라

비밀키/공유비밀키 secret key : 대칭키 방식에서의 비밀키, 주로 기호열 / 비트열

개인키 private key : 비대칭키 방식에서의 각 개인별로 관리하는  비밀키, 주로 1 이상의 숫자로 구성

공개키 public key : 비대칭키 방식에서 공개되는 키, 신뢰할 만한 인증기관 또는 인증서버에 공개하는 키

 

디지털 서명 키 digital signature key디지털 서명을 할 때는 개인키로 하고 서명을 검증할 때는 공개키를 사용

메세지 인증 코드 : 송수신자가 공통의 공유키를 사용하여 인증 수행

 

마스터키, 세션키 - 키 관리에 따라

마스터키 : 서버에서 세션키를 마스터키로 암호화해서 전달한다.

세션키 : 세션에서만 사용되는 일시적인 대칭키(암호화키)

 

-대략적인 비대칭키 방식 

1. 상대방에게 내 공개키를 알려준다. 

2. 상대방은 자신의 공개키를 알려준다. 

3. 상대방은 내 공개키를 이용해서 정보를 암호화하여 나에게 전송한다. 

4. 나는 내 개인키로 이 암호화 정보를 복호화한다. 

5. 내 정보를 상대방에게 상대방의 공개키로 암호화하여 전송한다. 

6. 상대방은 자신의 개인키로 내 정보를 복호화한다. 

 

대칭키와 비대칭키를 이용하여 인증하는 예로는 SSL이 있다. HTTPS의 S 가 SSL(Secure Socket Layer)프로토콜로 웹 서버와 웹 브라우저 간의  보안을 위해 만들어졌다. 

 

-SSL 보안의 핵심은

✔ 사용자는 웹 브라우저를 통해 사이트에 접속하고 인증 관리하는 주체인 인증기관이 존재한다. 

✔ 웹 브라우저와 사이트는 최종적으로 데이터를 주고 받기 위해 대칭키 방식을 이용한다. 

✔ 인증기관을 통해 인증 및 검증할 때는 비대칭키 방식을 이용한다. 

✔개인키를 갖고 있는 사람이 자신의 정보를 암호화하여 자신의 공개키를 갖고 있는 사람에게 전송한다. 

(이때, 공개키를 갖고 있다면 누구나 복호화가 가능하다. )

✔받은 정보를 보낸 사람의 공개키로 복호화가 가능하면 비밀키를 갖고 있는 사람이 전송했다는 것을 인증할 수 있다.

이고,

 

-그 과정은 다음과 같다. 

1. 사이트가 인증 요청을 하면 

2. 인증 기관에서 사이트 정보와 사이트의 공개키를 인증기관의 개인키로 암호화 => 사이트 인증서 제작

3-1. 인증기관은 사이트에 인증서 발급

3-2. 웹 브라우저에 인증기관의 공개키 제공하여 브라우저에 내장된다.

4. 사용자가 사이트에 접속 요청을 하게 되면 

5. 사이트에서 발급 받은 인증서를 전달한다. 

6. 웹 브라우저는 인증기관의 공개키로 인증서를 검증한다. 

7. 사이트 정보와 공개키를 획득하여 

8. 대칭키를 암호화하여 전송한다. 

9. 사이트 개인키로 해독하여 대칭키를 획득한다. 

10. 안전하게 전달된 대칭키를 이용하여 암호문을 주고 받는다. 

'암호학' 카테고리의 다른 글

21.12.11 암호 공격  (0) 2021.12.11
21.10.01 MPC & SMPC [정리 중!]  (0) 2021.10.01
21.09.05 RSA [작성 중!]  (0) 2021.09.06
21.09.05 RSA 알고리즘  (0) 2021.09.05
21.08.10 생일 공격  (0) 2021.08.12