반응형
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가 거의 즉시 처리한다.


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에서도:
- 처음 연결:
- RSA/ECDHE 사용
- 느림
- 세션키 생성 후:
- 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 |
댓글