보안/암호학 / / 2025. 1. 11. 01:13

공개 키 암호화 방식 정리 : 원리, 과정, 키쌍 개념까지

1. 공개 키 암호화 방식 소개

공개 키 암호화 방식(Public Key Cryptography)은 암호화와 복호화에 서로 다른 키를 사용하는 암호화 기법으로, 비대칭 키 암호화 방식이라고도 불린다. 이 방식의 핵심 원리는 두 개의 수학적으로 연결된 키를 사용하는 데 있다. 따라서 하나의 키로 암호화된 데이터는 다른 키로만 복호화될 수 있다. 공개 키 암호화 방식으로 HTTPS를 기반으로 안전한 통신을 가능하게 하며, 공개 키 기반 구조(PKI:Public Key Infrastructure)를 활용한 인증도 지원한다. 공개 키 암호화 방식의 대표적인 알고리즘으로는 RSA, ECC 등이 있으며, 주로 데이터 암호화, 디지털 서명, 키 교환 등과 같은 용도로 사용된다.

 

2. 암복호화 기본 개념

다음은 암호학에서 사용되는 기본 개념에 대한 설명이다.

< 암호화 및 복호화 기본 개념 >

 

  • 메시지(Plaintext) : 일반적으로 암호화되지 않고 전송 또는 저장된 데이터를 의미한다.
  • 암호화(Encryption) : 특별한 지식을 소유한 사람들을 제외하고는 누구든지 읽어볼 수 없도록 알고리즘을 이용하여 처리하는 방식을 말한다.
  • 암호문(Ciphertext) : 암호 알고리즘을 이용하여 평문에 수행한 암호화의 결과이다.
  • 복호화(Decryption) : 암호화된 정보를 원래의 형태로 되돌리는 처리 방식을 말한다.

 

3. 공개 키 암호화 방식의 원리

공개 키 암호화 방식의 이해를 돕기 위해 다음과 같이 두 가지의 과정으로 나누어 설명한다.

 

3-1. 키쌍 생성

< 공개 키 암호화 방식을 채택하기 위한 사전 조건 : 키쌍 생성 >

 

  1. 카리나와 윈터는 수학적으로 연결된 한쌍의 열쇠(AB)를 생성한다.
  2. 한쌍의 열쇠를 둘로 나눠 카리나(A)와 윈터(B)가 하나씩 가져간다.
  3. 이후 한국에 있는 카리나는 해외에 있는 윈터에게 메시지를 보내려고 한다. 단, 메시지는 유출되선 안된다.

 

3-2. 암호화 및 복호화 과정

< 공개 키 암호화 방식 >

 

  1. 카리나는 메시지를 작성한다.
  2. 카리나는 메시지를 A열쇠로 암호화한다.
  3. 카리나는 윈터에게 암호문을 전송한다.
  4. 윈터는 암호문을 B열쇠로 복호화한다.
  5. 윈터는 메시지를 확인한다.

 

4. 공개 키 암호화 과정 상세 설명

위에서 살펴보았다시피 공개 키 암호화 방식의 원리는 간단해 보인다. 하지만 큰 개념을 이해한 후 구체적인 것들을 살펴보기 시작하면 그렇지 않을 수도 있다. 우선, 카리나와 윈터가 생성한 한쌍의 열쇠(AB)에 대해 알아보자.

 

4-1. 키쌍

  • 키쌍(Key Pair) : 카리나와 윈터가가 생성한 한쌍의 열쇠(AB)를 의미한다.
  • 공개 키(Public Key) : 카리나가 암호화하기 위해 가져간 A 열쇠를 의미한다.
  • 개인 키(Private Key) : 윈터가 복호화하기 위해 가져간 B 열쇠를 의미한다.

 

키쌍 생성 시 공개 키와 개인 키는 수학적으로 연결되어 있어서, 공개 키로 암호화하였다면 반드시 연결된 개인 키로만 복호화할 수 있다. 만약 ☠️ 해킹범이 전송 중인 암호문을 획득하여도 무슨 내용인지 알 수 없을 뿐 아니라 복호화할 수 없다. 윈터만이 유일하게 개인 키를 가지고 있기 때문이다.

 

다음은 A열쇠 → 공개 키, B열쇠 → 개인 키로 치환하여 표현한 그림이다.

 

< 개인 키가 없는 해커는 메시지 확인 불가 >

 

4-2. 개인 키 및 공개 키

키를 부르는 명칭 또한 나름대로의 의미가 존재한다.

 

  • 공개 키(Public Key) : 누구에게나 공개하는 키.
  • 개인 키(Private Key) : 반드시 소유자만이 안전하게 보관해야 하는 키.

 

그럼 이렇게도 생각해 볼 수 있다. 닝닝이와 지젤도 각자 전달하고 싶은 메시지가 있는데 카리나가 소유한 공개 키를 전달받아 윈터에게 암호문을 전송할 수 있지 않을까? 대답은 '그렇다'이다.

 

< 누구나 접근하고 사용할 수 있는 공개 키 >

 

  1. 카리나는 닝닝, 지젤에게 공개 키를 공유한다.
  2. 2명의 멤버는 각자 메시지를 작성한다.
  3. 2명의 멤버는 공유받은 공개 키로 각각의 메시지를 암호화한다.
  4. 2명의 멤버는 윈터에게 암호문을 전송한다.
  5. 윈터는 자신이 소유한 개인 키로 각각의 암호문을 복호화한다.
  6. 윈터는 닝닝, 지젤의 메시지를 확인한다.

 

여기서 중요한 것은 '윈터는 보유 중인 개인 키를 잃어버려서는 안 된다는 것'이다. 개인 키안전하게 관리하는 것이 가장 중요하며, 만약 유출됐다면 해당 개인 키는 더 이상 유효하지 않으므로 즉시 폐기해야 한다. 만약 유출된 개인 키를 해킹범이 획득하였다면 암호화된 내용을 복호화하여 확인할 수 있기 때문이다.

 

5. 암호화와 서명

지금까지 살펴본 내용을 한 줄로 요약하자면, '공개 키로 암호화한다.'라고 표현할 수 있다. 이쯤 되면 한 가지 의문이 들 수도 있다.

 

지금까지와는 반대로 개인 키로 암호화하고 공개 키로 복호화한다면 어떻게 될 것인가?

우리는 이것을 '개인 키로 서명한다.'라고 표현한다. 즉, '개인 키로 서명한다면, 해당 서명은 개인 키의 소유자가 작성한 것임을 증명할 수 있다.'는 것이다.

 

< 서명 : 자기 동일성을 표시하기 위해 작성한 것 >

 

해당 개념을 연구하신 분들이 서명(Signature)이라고 명칭을 붙인 이유를 짐작해 보면 단 한 명만이 소유한 개인 키로 암호화 시 수학적으로 연결된 공개 키로만 복호화되기 때문에 '개인 키 소유자가 보낸 내용이구나(=진위성)'를 판별할 수 있어서가 아닐까 생각한다. 이는 PKI의 기본 개념으로 사용된다.

 

내용을 정리하면, 공개 키 암호화 방식으로 암호화와 서명을 수행할 수 있다는 것이다. 전자 서명에 대해 자세히 알고 싶다면 링크를 활용한다.

 

6. 마무리

이번 글을 정리하면 다음과 같다.

 

  • 공개 키 암호화 방식을 사용하기 위해서는 키쌍을 생성해야 한다.
  • 생성된 키쌍은 공개 키와 개인 키로 나뉘며, 수학적으로 연결되어 있다. 연결되지 않은 키는 서로 사용할 수 없다.
  • 공개 키 암호화 방식으로 암호화 혹은 서명을 수행할 수 있다.
    • 암호화 : 공개 키로 암호화하면 개인 키로 복호화를 수행한다.
    • 서명 : 개인 키로 서명하면 공개 키로 검증할 수 있다.

개인 키는 유출되지 않도록 유의해야 하지만, 공개 키는 누구에게나 공개할 수 있다.

 

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유