Computer >> 컴퓨터 >  >> 네트워킹 >> 네트워크 보안

네트워크 보안의 핵심, RSA 암호화 완벽 정리

RSA란 무엇인가?

RSA(Rivest–Shamir–Adleman)는 1977년 로널드 라이베스트(Ron Rivest), 아디 샤미르(Adi Shamir), 레너드 앨먼(Leonard Adleman) 세 사람이 개발한 공개키 암호화 알고리즘입니다. 알고리즘 이름은 세 발명자의 성씨 이니셜에서 따왔으며, 현재 전 세계에서 가장 널리 사용되는 비대칭키 암호 방식 중 하나입니다.

암호 시스템(Cryptosystem)은 특정 암호화 알고리즘을 사용해 특정 기능을 수행합니다. RSA는 공개키 암호 방식을 활용하여, 보안이 취약한 인터넷망을 통해 전송되는 민감한 데이터를 암호화하는 대표적인 기술입니다.

RSA의 주요 용도

RSA는 이메일 암호화와 온라인 거래 등 인터넷상의 다양한 보안 목적으로 폭넓게 활용됩니다. 구체적인 활용 분야는 다음과 같습니다.

  • 웹 브라우징: 웹 브라우저를 통해 웹사이트에 안전하게 접속할 때 RSA 암호화가 사용됩니다.
  • VPN 연결: VPN 클라이언트와 서버 간 보안 채널을 구축하는 데 활용됩니다. OpenVPN에서도 핸드셰이크 과정에 RSA 키 교환 알고리즘이 사용됩니다.
  • TLS/SSL 및 PGP: TLS 프로토콜과 PGP 암호화 알고리즘에 적용됩니다.
  • 전자 상거래와 금융: MasterCard, VISA, 전자은행(e-banking), Magento 같은 전자상거래 플랫폼 등 광범위한 산업에서 사용됩니다.
  • Bluetooth 통신: 물리적으로 분리된 두 장치 간의 보안 통신에도 활용됩니다.

또한 puTTY 같은 도구를 사용하면 RSA로 보호되는 암호화 서버에 접속할 수 있습니다.

RSA의 작동 원리

RSA는 비대칭 암호화 방식으로, 수학적으로 연결된 두 개의 키, 즉 공개키(public key)와 개인키(private key)를 사용합니다. 공개키는 누구에게나 공개되므로 누구든 메시지를 암호화할 수 있습니다. 반면 개인키는 생성자만 보유해야 하며, 암호문을 해독하려면 매우 큰 소수를 활용한 연산이 필요합니다.

RSA 공개키의 복잡성은 두 개의 크고 무작위로 생성된 소수의 곱에서 비롯됩니다. RSA 알고리즘은 소인수분해를 일방향 암호화 방법으로 사용하기 때문에, 그 보안의 근본 전제는 '큰 수의 소인수분해가 사실상 불가능하다'는 점에 기반합니다.

쉽게 이해하는 공개키 암호화

공개키 암호화는 다음과 같은 비유로 설명할 수 있습니다. 밥(Bob)이 앨리스(Alice)에게 값비싼 다이아몬드를 보내달라고 요청했다고 생각해 봅시다. 아무런 보호 장치 없이 다이아몬드를 보내면 도난당할 위험이 있습니다. 마찬가지로, 안전하지 않은 네트워크로 귀중한 데이터를 전송할 때는 잠금 장치, 즉 공개키 암호화가 반드시 필요합니다.

RSA 토큰과 SecurID

RSA Data Security가 개발한 RSA SecurID 같은 2차 인증(two-factor) 공개키 인증 시스템은 데이터를 암호화하고 사용자가 엔드포인트에 물리적으로 접근하도록 요구함으로써 네트워크를 보호합니다. RSA Authentication Manager는 스마트폰 인증, 생체 인증 등을 통해 일반적인 아이디·비밀번호 방식에 추가 보안을 제공하며, SecurID 토큰은 하드웨어형과 소프트웨어형 모두로 제공됩니다.

기업들은 RSA 토큰을 통해 직원들에게 네트워크 접근 권한을 부여하고, 데스크톱 아키텍처 보안 강화, 웹 포털 방어, 웹 서버 보호 등에 활용할 수 있습니다.

RSA vs AES: 무엇이 더 안전한가?

AES는 대칭키 방식의 블록 암호인 반면, RSA는 비대칭키 암호화 방식입니다. 일반적으로 AES가 더 높은 보안성과 처리 속도를 제공하지만, SSL/TLS 인증서는 키 교환의 특성상 RSA나 ECDSA 같은 비대칭 방식을 사용해야 합니다.

실제로 SSL 데이터 세션에서는 AES 암호화가 사용되며, SSL 협상(negotiation) 과정에서 데이터 전송에 사용할 AES 키가 정의됩니다. 즉, RSA와 AES는 경쟁 관계라기보다 서로 보완하며 함께 사용되는 관계입니다.

RSA 키 계산 예시

간단한 예를 통해 RSA 키 생성 과정을 살펴보겠습니다.

  1. 두 소수 선택: p = 3, q = 11
  2. 모듈러스 n 계산: n = p × q = 3 × 11 = 33
  3. 오일러 파이 함수 계산: φ(n) = (p − 1) × (q − 1) = 2 × 10 = 20
  4. 공개키 e 선택: 1 < e < φ(n)을 만족하고, e와 φ(n)이 서로소(coprime)여야 함
  5. 개인키 d 계산: (d × e) % φ(n) = 1을 만족하는 d를 구함

이 예시에서 공개키는 (e, n) = (7, 33), 개인키는 (d, n) = (3, 33)이 됩니다. 참고로 RSA 모듈러스 N은 두 소수 p와 q의 곱(pq)으로 이루어진 정수입니다.

자주 묻는 질문(FAQ)

RSA는 회사 이름이기도 한가요?

네. RSA Data Security Inc.는 1982년에 설립되어 공개키 암호화 기술을 개발해 온 기업으로, 전 세계 고객에게 서비스를 제공하고 있습니다. 사이버 보안 및 기술 업계에서 RSA는 회사명이자 기술명으로 널리 알려져 있으며, RSA라는 이니셜은 세 명의 발명자를 상징합니다.

'RSA'가 가리키는 다른 의미가 있나요?

금융 분야에서 RSA는 Risk Self Assessment(위험 자체 평가)의 약자로 사용되기도 합니다. 또한 호주 등 일부 국가에서는 Responsible Service of Alcohol(책임 음주 서비스) 교육 과정을 의미하기도 하는데, 이는 음주 운전, 미성년자 음주, 만취 등으로 발생할 수 있는 문제와 범죄를 줄이기 위한 제도이며, 해당 업계에 종사하기 전에 RSA 자격증을 취득해 두면 취업에 도움이 됩니다.

RSA는 여전히 널리 사용되고 있나요?

그렇습니다. 현재도 수많은 웹 브라우저, 이메일 프로그램, VPN, 채팅 프로그램 등 다양한 통신 채널에서 RSA가 사용되고 있습니다. 특히 VPN 클라이언트와 서버를 연결해 보안 채널을 만드는 데 널리 쓰이며, 우리 일상 곳곳에서 비대칭 암호화가 활용되고 있습니다.