본문 바로가기
system_fundamentals/security_cryptography

AES는 왜 빠른가

by 죄니안죄니 2026. 5. 14.
반응형

AES(Advanced Encryption Standard)가 빠른 이유는 단순히 “좋은 알고리즘이라서”가 아니라, 현대 CPU 구조에 엄청 잘 맞게 설계되었기 때문이야.
실무 관점에서 보면 크게 5가지 이유가 핵심이다.


1. 대칭키 암호라서 연산 자체가 단순함

AES는 대칭키 암호화다.

즉:

  • 암호화 키 = 복호화 키
  • 공개키/개인키 수학이 없음
  • 큰 소수 계산 없음
  • 지수승(mod exp) 같은 무거운 연산 없음

예를 들어:

  • RSA cryptosystem) → 엄청 큰 숫자 연산
  • AES → 바이트 치환 + XOR + 비트 이동 수준

즉 CPU 입장에서는:

AES:
메모리 읽기
XOR
비트 섞기
테이블 lookup
 

정도라서 매우 빠르다.


2. AES는 “비트 연산” 위주라 CPU가 매우 잘 처리함

AES 내부는 대부분 이런 연산이다:

  • XOR
  • Shift
  • Rotate
  • Lookup Table
  • Matrix 연산(GF(2^8))

이런 건 CPU가 원래 제일 잘하는 작업이다.

특히 XOR는 CPU 한 사이클에 여러 바이트를 동시에 처리 가능하다.

예:

10101010
XOR
11001100
=
01100110
 

이런 건 CPU가 거의 즉시 처리한다.

AES
AES는 데이터를 계속 섞고(Substitute) 회전시키고(Shift) 뒤섞고(Mix) 키와 XOR(AddRoundKey)
AES
AES 치환-회전-섞기-키XOR

3. 블록 단위 병렬처리가 쉬움

AES는 128bit 블록 단위로 동작한다.

즉:

[128bit]
[128bit]
[128bit]
 

이렇게 끊어서 처리 가능하다.

그래서:

  • SIMD
  • 벡터 연산
  • 병렬 처리

와 궁합이 엄청 좋다.

현대 CPU는:

  • AVX
  • SSE
  • ARM NEON

같은 벡터 명령어로 여러 블록을 동시에 처리한다.

 
 
 

4. CPU에 AES 전용 명령어가 들어있음 (핵심)

이게 진짜 크다.

현대 CPU는 AES를 너무 많이 쓰니까 아예 하드웨어에 내장했다.

대표적으로:

  • Intel 의 AES-NI
  • AMD 의 AES 명령어
  • Apple Silicon AES 가속
  • ARM Crypto Extension

AES-NI 같은 경우는:

AES 한 라운드
=
CPU 명령어 1~2개 수준
 

으로 처리한다.

즉 원래 소프트웨어로 해야 할 복잡한 과정을 CPU 회로가 직접 수행한다.

그래서 속도가 엄청 올라간다.


5. 메모리 사용량이 작고 캐시 친화적

AES는:

  • 상태 크기 고정
  • 128bit block
  • 작은 round key

만 사용한다.

그래서:

  • CPU cache miss 적음
  • RAM 접근 적음
  • branch prediction 문제 적음

즉 CPU pipeline 효율이 매우 좋다.


실제 속도 차이 체감

대략적인 느낌으로 보면:

알고리즘 속도
AES 매우 빠름
SHA-256 빠름
RSA 매우 느림
ECC RSA보다 빠르지만 AES보단 훨씬 느림

실제 HTTPS에서도:

  1. 처음 연결:
    • RSA/ECDHE 사용
    • 느림
  2. 세션키 생성 후:
    • AES 사용
    • 초고속 통신

이 구조다.

즉 인터넷에서 대용량 데이터 암호화는 거의 AES가 담당한다.


AES가 특히 실무에서 강한 이유

실제로:

  • HTTPS
  • VPN
  • Wi-Fi WPA2/WPA3
  • 디스크 암호화
  • DB 암호화
  • 메신저

거의 전부 AES 기반이다.

왜냐면:

보안 강도 대비 속도가 미쳤기 때문
 

이다.


반대로 bcrypt/Argon2는 왜 느리게 만들었을까?

재밌는 점은 비밀번호 저장용 해시는 일부러 느리게 만든다.

예:

  • bcrypt
  • Argon2

이건 공격자가 GPU 병렬처리 못 하게 일부러:

  • 메모리 많이 쓰고
  • 반복 많이 하고
  • 캐시 효율 나쁘게

설계한다.

반면 AES는:

빠르게 암호화하는 게 목적
 

이라 CPU 친화적으로 설계된 거다.


한 줄 요약

AES가 빠른 이유는:

CPU가 가장 잘하는 XOR/비트연산 기반으로 설계되었고,
현대 CPU에 AES 전용 하드웨어 명령어까지 내장되어 있기 때문
 

이다.

반응형

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

IV는 왜 필요한가  (0) 2026.05.14
CBC/GCM 차이  (1) 2026.05.14
ECB 모드는 왜 위험한가  (0) 2026.05.14
파일 checksum 원리  (0) 2026.05.13
무결성이란 무엇인가  (0) 2026.05.13

댓글