Self-Improvement

공개키(PKI, 하이브리드, RSA, 소인수분해, 이산로그) 본문

개인

공개키(PKI, 하이브리드, RSA, 소인수분해, 이산로그)

JoGeun 2020. 3. 28. 17:31

1. 공개키 암호란

공개키 암호는 한 쌍의 키가 존재하며 하나는 특정 사람많이 가진느 개인키이고 다른 하나는 누구나 가질 수 있는 공개키입니다.

개인키로 암호화 한 정보는 그 쌍이 되는 공개키로만 복호화 가능하고, 반대로 공개키로 암호화 한 정보는 그 쌍이 되는 개인키로만 복호화가 가능합니다.

즉 공개키 암호 방식은 암호화할 때 사용하는 암호키와 복호하할때 사용하는 암호키가 다르기 때문에 비대칭키 암호라고도 합니다

공개키 암호로는 DH, DSA, ECDH, ECDSA, EIGamal, RSA 등이 있습니다.

 

2. 하이브리드 암호화

공개키 암호는 대칭키 기반 암호의 취약점인 키 전달에 대한 문제를 해결했지만 암호화, 복호화를 위해 복잡한 수학연산을 수행하기 때문에 대칭키 암호에 비해 속도가 느리다는 단점이 있습니다. 작은 정보를 암호화하고 복호화하는 것은 문제가 없지만 용량이 큰 정보를 공개키 암호로 적용하는 것은 문제가 있을 수 있습니다.

대칭키 암호의 장점과 공개키 암호의 장점을 채택하여 용량이 큰 정보는 대칭키로 암호화하고 암호화에 사용된 대칭키는 공개키로 암호화하여 대상에게 전달하는 하이브리드 암호화 방법이 일반적으로 활용되고 있습니다.

하이브리드 암호화를 적용한 대표적인 프로그램이 GNU Privacy Guard입니다. 

 

3. 공개키 암호 원리

공개키 암호방식은 특정한 정보 없이는 매우 풀기 어려운 수학문제를 바탕으로 만들어집니다. "매우 큰 수의 소인수분해", "이산로그 방정식의 해 구하기" 등이 알려져 있는 매우 어려운 문제들입니다.

매우 큰 수의 소인수분해에 기반한 공개키 암호 원리는 다음과 같습니다.

 

소수 a,b가 있으며 이 두 수의 곱인 c를 쉽게 구할 수 있다. 하지만 c를 먼저 제시하고 곱해진 두 소수 a,b를 구하는 문제는 풀기가 쉽지 않습니다. 여기서 c를 공개해도 a 또는 b를 구하는 것이 대단히 힘들 것이므로, c는 공개키로 a는 개인키로 합니다.

정보를 a로 암호화하면 c에 의해서만 복호화 가능하고 정보를 c로 암호화하면 a에 의해서만 복호화 되도록 특변한 수식을 사용한다. 이 원리에 기반한 대표적인 공개키 암호가 RSA 암호이다.

이산로그문제에 기반한 공개키 암호는 타원곡선 암호인 ECDH, ECDSA 등이 있다.

 

4. 공개키 서명

A와 B 두사람이 있다고 생각해 봅니다. A는 B의 공개키로 정보를 암호화하고 B에게 전달합니다.

B는 자신의 개인키로 복호화하여 정보를 확인합니다. 이는 B의 공개키로 암호화 했기 때문에 B의 개인키로만 복호화 가능합니다.

 

이제는 B가 자신의 개인키로 어떤 정보를 암호화하고 A에게 전달합니다. A는 자신이 가지고 있는 B의 공개키를 가지고 암호화 된 정보를 복호화 할 수 있습니다 만약 B의 공개키로 복호화 되지 않으면 이 정보는 B가 보낸 정보가 아닌 것입니다. 즉, 암호화 된 정보가 B의 공개키로 복호화 된다면 이는 B가 보낸 정보가 틀림 없습니다.

 

이와 같이 어떤 사람이 자신의 개인키로 암호화하고 이를 다른 사람이 공개키로 복호화 하여 전달 받은 정보가 특정사람이 보넀다는 것을 확신할 수 있게 하는 방식을 공개키 서명이라고 한다.

 

5. 공개키 기반 구조(PKI)

공개키 암호는 보안이 보장되지 않은 네트워크에서 키 전달 문제점을 해결하여 보안통신을 가능하게 합니다. 또한, 특정 사람의 공개키 서명을 통해 정보를 보낸 사람이 당사자인지 확인 가능한 암호 기술이라고 앞서 말하였습니다.

과연 어떤 공개키가 특정한 사람의 공개키라는 것을 보장할 수 있도록 디지털 인증서를 도입하게 되었고 디지털 인증서를 활용하는 소프트웨어, 하드웨어, 정책, 제도, 사용자등을 총칭하여 공개키 기반 구조라고 합니다.

 

디지털 인증서는 어떤 사람의 공개키와 이 공개키의 소유자 정보를 포함하고 있는 일종의 신분증 입니다. 디지털 인증서는 공개키 증명서, 디지털 증명서, 전자 증명서 등으로도 불립니다. 인증기관에서 발급한 디지털 인증서에게 공개키와 함께 인증기관의 전자서명이 포함되어 있습니다. 디지털 인증서는 개인이 소유하고있는 개인키와 쌍으로 존재하며 디지털 인증서와 개인키가 함께 동봉된 것이 우리가 흔히 말하는 공인인증서 입니다.