보안

[보안] 공개키 암호화

재담 2022. 2. 28. 23:11

공개키 암호화란?

공개키 암호화 방식은 대칭키 암호화 방식과 달리 암호화와 복호화에 다른 키를 사용하는 방식을 의미한다. 공개키 암호화는 대칭키 암호화의 키 전달에 있어서 취약점을 해결하고자 탄생했다. 공개키 알고리즘에는 개인키공개키 쌍이 존재한다. 개인키는 특정 사람만이 가질 수 있는 키(비밀키)이고, 공개키는 누구나 알 수 있는 키이다.

 

개인키로 암호화한 정보는 그 쌍이 되는 공개키로만 복호화가 가능하고, 공개키로 암호화한 정보는 그 쌍이 되는 개인키로만 복호화가 가능하다. 대칭키를 사용하면 다수가 통신을 할 때에 키의 개수가 급증하게 되어 큰 어려움이 따른다. 공개키는 이런 어려움을 극복하기 위해 나타났다고 볼 수 있다. 공개키 암호화의 종류에는 RSA, ElGamal, ECC, 전자서명 등이 있다.

 

원리

공개키 암호화 방식은 매우 풀기 어려운 수학적 문제를 바탕으로 만들어진다.

 

RSA 같은 초기 암호화 방식은 두 개의 큰 소수를 곱한 숫자를 문제로 사용하였다. 큰 수의 소인수분해는 대단히 풀기 어려운 문제에 속하기 때문에 다른 사람들은 개인키를 알 수 없을 것이라는 사실이 보장된다. 그러나 최근 이 분야의 연구가 진전되어 RSA의 안전성을 보장하기 위해서는 수천 비트 이상의 큰 소수를 키로 사용해야 한다.

 

또 다른 종류의 문제로는 a와 c가 알려진 상태에서 방정식 a^b = c의 해 b를 구하는 문제가 있다. 유한군에서는 이런 문제를 풀기 어려운 것으로 알려져 있으며 이런 문제를 이산 로그 문제라 부른다. 타원곡선암호를 비롯한 여러 가지 공개키 암호화 방식들이 이산 로그 문제를 바탕으로 만들어져 있다.

 

통신 절차

공개키 암호화 방식의 통신 절차는 일반적으로 다음과 같다.

  1. 송신자는 수신자의 공개키를 구한다.
  2. 송신자는 수신자의 공개키로 평문을 암호화한다.
  3. 송신자는 암호화된 메시지를 상대방에게 전달한다. 도중에 유출되어도 원문을 알아내기 어렵다.
  4. 수신자는 자신의 비밀키로 암호화된 메시지를 복호화해서 평문을 얻는다.

 

공개키 암호화의 종류

공개키 암호화 방식은 크게 두 가지로 나눌 수 있다.

  • 공개키 암호화 : 특정한 개인키를 가지고 있는 사용자만 내용을 열어볼 수 있다.
  • 공개키 서명 : 특정한 개인키로 만들었다는 것을 누구나 확인할 수 있다.

 

공개키 암호화 방식에는 다음과 같은 장점과 단점이 있다.

 

장점

  • 다른 사용자와 키를 공유하지 않더라도 안전한 통신을 한다.
  • 키 관리와 키 분배가 용이하다.
  • 보안의 강도가 높다.

 

단점

  • 복잡한 수학 연산을 기반으로 구성되기 때문에 효율성이 낮다.
  • 대칭키 알고리즘보다 속도가 약 1000배 느리다.

Reference

'보안' 카테고리의 다른 글

[보안] 대칭키 암호화  (0) 2022.02.28