본문 바로가기
system_fundamentals/security_cryptography

RSA가 느린 이유

by 죄니안죄니 2026. 5. 14.
반응형
RSA가 느린 이유RSA가 느린 이유RSA가 느린 이유
 
 
6

RSA(RSA cryptosystem)가 느린 이유는 한 줄로 말하면:

엄청 큰 숫자에 대해
거대한 거듭제곱(mod exponentiation)을 반복하기 때문
 

이다.

반면 AES는:

XOR + 비트연산 중심
 

이라 CPU가 엄청 잘 처리한다.


AES와 RSA의 근본 차이

알고리즘 기반
AES 비트 연산
RSA 거대한 정수 수학

AES는 CPU 친화적

AES 내부:

  • XOR
  • Shift
  • Rotate
  • Lookup Table

정도다.

즉:

CPU가 원래 잘하는 작업
 

이다.

게다가:

  • AES-NI
  • 하드웨어 가속

까지 있음.


RSA는 완전히 다름

RSA는 이런 계산을 한다.

C = M^e mod n 또는 M = C^d mod n


문제는 여기서

실제 RSA에서는:

n = 2048bit 이상
 

이다.

즉 숫자 크기가:

10^600 수준
 

까지 간다.


CPU 입장에서 무슨 일이냐

예를 들어:

123456789...
^
987654321...
mod gigantic_number
 

같은 계산을 계속 해야 한다.


단순 곱셈도 엄청 무거움

우리가 평소 CPU에서 하는 건:

64bit 정수
 

정도다.

근데 RSA는:

2048bit
4096bit
 

같은 초거대 정수 사용.

즉 CPU 기본 레지스터에 안 들어간다.


그래서 BigInteger 연산 필요

Java에서도:

 
BigInteger
 

사용한다.

내부적으로:

  • 배열 단위 계산
  • 다중 정밀도 연산
  • carry 처리

등이 필요하다.


핵심 병목 — 모듈러 거듭제곱

RSA 핵심 계산:

ab  na^b \bmod n

이다.


왜 어려울까?

예:

5^235
 

만 해도 엄청 커진다.

RSA는 이걸:

2048bit 숫자
 

로 수행한다.


그래서 반복 최적화 필요

실제로는:

  • square-and-multiply
  • Montgomery multiplication

같은 최적화 사용.

그래도 무겁다.


AES와 체감 차이

대략 느낌:

작업속도
AES-GCM 초고속
RSA-2048 매우 느림

실제로 RSA는:

AES보다 수백~수천 배 느릴 수 있음
 

왜 HTTPS에서 RSA 안 쓰나?

예를 들어 1GB 파일을 RSA로 암호화하면:

사실상 매우 비효율
 

이다.

그래서 HTTPS는:


STEP 1

RSA/ECC:

AES 세션키만 교환
 

STEP 2

실제 데이터:

AES-GCM 통신
 

한다.


RSA는 작은 데이터만 처리

RSA는 보통:

  • 세션키
  • 해시
  • 전자서명

같은 작은 데이터 처리용이다.


공개키 암호가 느린 이유의 본질

결국 RSA는:

"역산이 어려워야 안전"
 

하다.

즉 일부러 계산이 어려운 수학 위에 만든 거다.


AES는 반대

AES는:

빠르게 암호화하는 게 목적
 

이다.

그래서:

  • CPU 친화적
  • 병렬 처리 가능
  • 하드웨어 가속 가능

하게 설계했다.


ECC가 뜬 이유

RSA 느리니까:

  • Elliptic-curve cryptography

가 많이 사용된다.


ECC 장점

더 작은 키
=
같은 보안성
 

예:

RSAECC
2048bit 256bit 수준

그래서:

  • 모바일
  • TLS 1.3

에서 ECC 많이 사용.


실제 CPU 사용 차이

AES:

CPU 명령어 수준
 

가능.


RSA:

소프트웨어 다중 정밀도 수학
 

필요.


핵심 한 줄

RSA가 느린 이유는:

CPU가 직접 처리하기 어려운
초거대 정수의 거듭제곱 mod 연산을 반복해야 하기 때문
 

이다.

반응형

'system_fundamentals > security_cryptography' 카테고리의 다른 글

DH / ECDHE  (0) 2026.05.14
ECC는 왜 RSA를 대체하는가  (0) 2026.05.14
RSA 원리  (0) 2026.05.14
공개키 암호화는 어떻게 가능한가  (0) 2026.05.14
DB 컬럼 암호화 방식  (0) 2026.05.14

댓글