# RSA (Rivest–Shamir–Adleman)

RSA는 1977년 론 리베스트(Ron Rivest), 아디 샤미르(Adi Shamir), 레너드 애들먼(Leonard Adleman)이 발표한 공개 키 암호로, 큰 두 소수의 곱을 다시 소인수분해하기 어렵다는 점에 안전성을 둡니다. 암호화와 전자서명 모두에 사용할 수 있으며, 현재 표준은 PKCS #1(RFC 8017)입니다.

## 자세히 알아보기

키 생성은 다음과 같습니다. 큰 소수 p, q를 골라 n = p·q를 만들고, 공개 지수 e(보통 65537)를 정한 뒤 e·d ≡ 1 (mod λ(n))을 만족하는 개인 지수 d를 계산합니다. 공개 키는 (n, e), 개인 키는 d입니다. 암호화는 c = mᵉ mod n, 복호화는 m = cᵈ mod n이며, 서명은 반대로 개인 키로 만들고 공개 키로 검증합니다.

수식 그대로의 '교과서 RSA'는 안전하지 않습니다. 같은 평문이 항상 같은 암호문이 되고, 곱셈 성질을 이용한 조작이 가능하기 때문입니다. 실무에서는 암호화에 OAEP, 서명에 PSS 패딩을 사용해야 합니다. 오래된 PKCS #1 v1.5 암호화 패딩은 1998년 블라이헨바허(Bleichenbacher) 공격 이후 여러 변형 공격이 계속 발견되어 새 시스템에서는 피하는 것이 좋습니다.

키 길이는 최소 2048비트(약 112비트 보안)이며, 128비트 보안에는 3072비트가 필요합니다(NIST SP 800-57). 같은 보안 수준에서 타원곡선 암호보다 키와 서명이 훨씬 커서 블록체인처럼 공간이 비싼 환경에는 잘 맞지 않습니다. 또한 쇼어 알고리즘을 돌릴 수 있는 양자 컴퓨터가 나오면 깨지므로, NIST는 RSA와 ECC를 양자 내성 알고리즘으로 단계적으로 전환하는 계획을 제시하고 있습니다.

## 블록체인·암호화폐에서는

주요 블록체인은 트랜잭션 서명에 RSA 대신 타원곡선 서명(ECDSA, 슈노르, Ed25519)을 사용합니다. 그러나 RSA는 여전히 거래소·지갑 웹사이트의 TLS 인증서, 코드 서명, 일부 하드웨어 보안 모듈(HSM)과 기업 인증 체계에서 널리 쓰입니다. 즉 사용자가 거래소에 접속해 USDT를 출금할 때, 온체인 서명은 ECC로, 웹 접속의 인증서 검증은 RSA나 ECDSA로 이루어지는 경우가 많습니다.

## 쉽게 말하면

두 소수를 곱하기는 쉽지만, 곱한 결과만 보고 원래 두 소수를 찾기는 어렵다는 사실을 자물쇠로 만든 것입니다.

## 예시

교육용 작은 예: p = 61, q = 53 → n = 3233, φ(n) = 3120, e = 17, d = 2753(17 × 2753 = 15 × 3120 + 1). 평문 65를 암호화하면 65¹⁷ mod 3233 = 2790입니다. 실제 키는 이보다 수백 자리 더 큽니다.

---
출처: https://achivx.kr/glossary/rsa-rsa-%EC%95%94%ED%98%B8/ · ACHIVX 용어 사전 · 수정일 2026-10-20
