Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

공개 키 암호화란? 핵심 기능 3가지 총정리

공개 키 암호화의 개요

공개 키 암호화(Public-key Cryptography)는 비대칭 암호화(Asymmetric Cryptography)라고도 불리며, 사용자가 한 쌍의 암호화 키, 즉 공개 키(Public Key)개인 키(Private Key)를 보유하는 암호화 방식입니다. 이 두 키는 수학적으로 연결되어 있지만, 공개 키로는 개인 키를 유추할 수 없도록 설계되어 있습니다.

공개 키 암호화가 제공하는 핵심 기능은 크게 세 가지로 나눌 수 있습니다.

1. 암호화(Encryption)

암호화 기능은 정보의 기밀성(Confidentiality)무결성(Integrity)이라는 보안 서비스를 지원합니다. 또한 공개 키는 인증(Authentication)과 부인 방지(Non-repudiation)와 같은 보안 서비스를 제공합니다.

암호화는 키를 사용하여 평문(Plaintext) 메시지를 읽을 수 없는 형태로 변환하는 과정이며, 수신자는 복호화(Decryption) 절차를 통해 원래의 메시지로 되돌릴 수 있습니다.

공개 키 암호화의 동작 원리

이 과정에서 각 사용자는 수신자의 공개 키로 메시지를 암호화하며, 암호화된 메시지는 오직 수신자의 개인 키로만 복호화할 수 있습니다.

예를 들어, 사용자 B의 개인 키를 PrvB, 공개 키를 PubB라고 가정해 보겠습니다. 사용자 A가 사용자 B에게 메시지 M을 전송해야 하는 경우 다음과 같은 순서로 진행됩니다.

① 사용자 A는 메시지 M을 사용자 B의 공개 키 PubB로 암호화한 후 B에게 전송합니다.
② 사용자 B는 자신의 개인 키 PrvB를 사용하여 암호화된 메시지를 복호화합니다.

이러한 구조 덕분에 메시지가 네트워크상에서 가로채이더라도 개인 키가 없으면 내용을 알아볼 수 없어 안전하게 통신할 수 있습니다.

2. 디지털 서명(Digital Signature)

디지털 서명은 네트워크에서 메시지 발신자의 신원을 검증하기 위해 메시지에 서명하는 데 사용됩니다. 문서나 거래가 실제로 해당 사용자가 보낸 것임을 증명하는 전자적 서명 역할을 합니다.

디지털 서명의 동작 과정

사용자 A가 디지털 서명을 첨부하여 메시지 M을 사용자 B에게 보내는 경우를 예로 들면 다음과 같습니다.

① 사용자 A는 자신의 개인 키 PrvA로 메시지에 서명합니다.
② 서명된 메시지는 별도의 암호화 없이 사용자 B에게 전송됩니다.
③ 사용자 B는 메시지를 받은 후 사용자 A의 공개 키 PubA로 서명을 검증합니다.

디지털 서명은 온라인 애플리케이션에서 매우 유용하며, 사용자의 인증과 보안을 지원합니다. 디지털 서명은 사용자의 개인 키로 생성되며, 암호화된 정보에 해싱(Hashing)을 적용하여 무결성을 더욱 강화합니다. 그리고 해당 사용자의 공개 키를 통해 디지털 서명의 유효성을 확인할 수 있습니다.

3. 인증서(Certificate)

디지털 인증서는 사용자의 공개 키가 진짜임을 검증하는 데 사용됩니다. 공개 키 암호화 환경에서는 네트워크상의 공격자가 사용자의 공개 키를 자신의 키로 바꿔치기할 가능성이 존재합니다. 이러한 공개 키 인증 문제를 방지하기 위해 디지털 인증서가 활용됩니다.

X.509 표준 형식

디지털 인증서는 일반적으로 X.509 형식으로 작성됩니다. X.509는 공개 키 기반 구조(PKI, Public-Key Infrastructure)에서 인정받는 표준 형식으로, 현재 인터넷 환경에서 가장 널리 사용되는 유연한 표준으로 자리 잡았습니다.

인증서 발급 과정

각 사용자는 자신의 공개 키와 개인 키를 생성합니다. 개인 키는 사용자가 비밀로 안전하게 보관하고, 공개 키는 네트워크에 공개됩니다. 공개 키를 네트워크에 배포할 때, 각 사용자는 인증 기관(CA, Certificate Authority)에 요청하여 자신의 공개 키에 대한 디지털 인증서를 발급받습니다.

디지털 인증서에는 다음과 같은 정보가 포함됩니다.

- 사용자의 공개 키
- 사용자 이름
- 사용자 서명
- 유효 기간 등

마무리

공개 키 암호화는 암호화를 통한 기밀성 확보, 디지털 서명을 통한 발신자 인증, 디지털 인증서를 통한 공개 키 신뢰성 검증이라는 세 가지 핵심 기능을 통해 현대 인터넷 보안의 근간을 이루고 있습니다. 온라인 뱅킹, 전자상거래, SSL/TLS 기반 웹 통신 등 우리가 일상적으로 사용하는 대부분의 보안 시스템이 이러한 공개 키 암호화 기술 위에서 동작하고 있습니다.