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

정보 보안에서 비대칭 키 인증이란? 개념부터 작동 원리까지

비대칭 암호화(Asymmetric Encryption)는 서로 다르면서도 수학적으로 연관된 두 개의 키를 사용해 정보를 암호화하고 복호화하는 방식입니다. 공개 키(public key)로 데이터를 암호화하면, 이에 짝을 이루는 개인 키(private key)로만 복호화할 수 있습니다.

비대칭 키 인증의 개념

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

RSA 공개 키 암호 시스템

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

트랩도어 함수를 이용한 인증 절차

트랩도어 함수를 활용한 비대칭 키 인증은 다음 단계로 진행됩니다.

  • CAD가 임의의 난수(X)를 스마트 카드에 전송합니다.
  • 스마트 카드는 자신의 식별자(I)와 함께, 내장된 비밀 키(k)로 암호화한 난수(Y)를 CAD에 되돌려 보냅니다. 또한 n과 I로 구성된 인증서 형태로 자신의 공개 키(n)를 제공하며, 이 인증서는 CAD가 공개 키의 유효성을 검증할 수 있는 근거가 됩니다.
  • CAD는 받은 값을 복호화하여 얻은 결과(X')를 처음 전송했던 난수와 비교함으로써 카드의 응답이 정당한지 확인합니다.

RSA 구현의 요구 사항

RSA를 실제로 구현하려면 전자 서명을 계산하기 위한 거듭제곱 연산 구조, 중간값을 저장하기 위한 상당히 큰 용량의 RAM, 알고리즘이 요구하는 더 많은 명령어를 담기 위한 넉넉한 프로그램 메모리, 그리고 더 많은 연산 시간이 필요합니다.

현재 비대칭 키 암호화를 탑재한 카드는 일반 범용 카드보다 높은 가격에 판매되고 있지만, 문서에 대한 전자 서명을 생성할 수 있다는 강력한 장점을 갖추고 있습니다.

DSS(디지털 서명 표준)의 활용

미국 국립표준기술연구소(NIST)가 개발한 DSS(Digital Signature Standard) 역시 스마트 카드 인증에 활용할 수 있습니다. DSS는 원래 미국 정부의 문서 서명을 위해 설계된 것으로, 정부 기관의 응용 프로그램 인증에 특히 적합한 선택입니다. DSS의 보안 강도는 이산 로그(discrete logarithm) 계산의 어려움에 기반하며, 인증에 필요한 여러 중간값을 미리 계산해 둘 수 있는 '사전 평가(pre-evaluation)'가 가능해 인증 소요 시간을 크게 줄일 수 있다는 실질적인 이점도 지니고 있습니다.

키 분배와 인증서의 역할

공개 키 시스템, 특히 인증 목적으로 사용되는 시스템의 핵심 과제는 바로 키 분배(key distribution)입니다. 인증서(certificate)를 통해 스마트 카드는 CAD에게 자신의 검증 키를 안전하게 전달할 수 있습니다. 인증서는 카드가 초기화되는 시점에 시스템 전역 비밀 키를 이용해 생성됩니다.

CAD에는 시스템 전역 검증 키가 미리 탑재되어 있어, 스마트 카드가 제출한 인증서를 검증할 수 있습니다. 카드가 인증서를 제시하면 CAD는 이를 스마트 카드의 검증 키와 카드 식별 번호로 해석합니다. 이때 식별 번호는 검사 값(check value)으로 활용되어 해당 공개 키의 진위성을 최종적으로 확인하는 역할을 수행합니다.