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

정보 보안의 핵심 기술, 비대칭 키 암호화란 무엇인가?

비대칭 키 암호화(공개 키 암호화)의 개념

비대칭 암호화(asymmetric cryptography)는 암호학의 두 가지 기본 형태 중 하나로, '공개 키 암호화(public-key cryptography)'라고도 불립니다. 이 방식은 서로 다른 두 개의 키를 사용합니다. 하나의 키로 메시지를 암호화하면, 오직 그에 짝을 이루는 다른 키만이 복호화할 수 있습니다. 즉, 암호화에 사용된 초기 키조차 해당 메시지를 해독할 수 없습니다. 이러한 설계 방식 덕분에 통신 당사자는 단 하나의 키 쌍(key pair)만으로 수많은 상대방과 안전하게 통신할 수 있습니다.

비대칭 암호화의 확장성과 활용

비대칭 암호화는 다양한 통신 상대 간에 데이터가 끊임없이 교환되는 대규모 환경에서도 손쉽게 확장할 수 있다는 장점이 있습니다. 실제로 비대칭 암호화는 대칭 암호화(symmetric cryptography)를 본격적으로 사용하기 전, 비밀 키(secret key)를 안전하게 교환하는 용도로 활용됩니다.

키 교환 과정에서는 한쪽 당사자가 비밀 키를 생성한 뒤, 상대방의 공개 키(public key)로 이를 암호화하여 전송합니다. 수신자는 자신의 개인 키(private key)로 이를 복호화하며, 이후 남은 통신은 해당 비밀 키를 암호화 키로 사용해 진행됩니다. 이처럼 비대칭 암호화는 키 교환, 이메일 보안, 웹 보안, 그리고 공용 네트워크를 통한 키 교환이 필요한 각종 암호 시스템 등에 널리 사용되고 있습니다.

공개 키의 신뢰성 문제와 해결 방안

비대칭 키 암호화의 가장 큰 난제는 공개 키가 진짜이며, 악의적인 제3자에 의해 변조되거나 교체되지 않았음을 입증하는 것입니다. 이 문제에 대한 대표적인 해결책은 공개 키 인프라(PKI, Public-Key Infrastructure)입니다. PKI에서는 인증 기관(CA, Certificate Authority)이라 불리는 제3자가 키 쌍의 소유권을 인증해 줍니다. 또 다른 방식으로는 PGP에서 채택한 '웹 오브 트러스트(web of trust)' 방식이 있으며, 이는 참여자들이 서로의 키를 검증함으로써 키 쌍의 진위성을 보장합니다.

스마트 카드 인증에서의 비대칭 키 암호화

스마트 카드 분야에서 비대칭 키 암호화는 카드가 사용하는 증명 키(proving key)와 CAD(Card Acceptance Device, 카드 접수 장치)가 사용하는 검증 키(verification key)를 서로 다르게 운영하는 기술입니다. 이 방식은 일반적으로 '트랩도어 일방향 함수(trapdoor one-way function)'를 이용해 구현됩니다. 스마트 카드는 자신의 비밀 키로 전자 서명을 생성하고, CAD는 공개 키를 통해 해당 서명의 유효성을 검증합니다.

RSA 알고리즘

Rivest-Shamir-Adelman(RSA) 공개 키 암호 시스템은 가장 널리 구현되는 비대칭 키 인증 방식입니다. RSA의 보안성은 큰 소수를 인수분해하는 계산상의 어려움에 기반을 두고 있습니다.

DSS(Digital Signature Standard)

미국 국립표준기술연구원(NIST)이 개발한 디지털 서명 표준(DSS) 역시 스마트 카드 인증에 활용될 수 있습니다. DSS는 미국 정부의 문서 서명용으로 만들어졌기 때문에 정부 기관 응용 프로그램의 인증에 선호되는 선택지입니다. 이 방식의 강점은 이산 로그(discrete logarithm) 계산의 복잡성에 있으며, 인증에 필요한 여러 중간값을 사전에 계산해 둘 수 있어 인증 시간을 단축할 수 있다는 장점도 지닙니다.

키 분배: 공개 키 시스템의 핵심 과제

특히 인증 목적으로 사용되는 공개 키 시스템의 핵심은 바로 키 분배(key distribution)입니다. 인증서(certificate)는 스마트 카드가 CAD에 검증 키를 제공할 수 있게 해주는 장치로, 카드가 부팅될 때 시스템 전역의 비밀 키를 사용해 생성됩니다.