본문 바로가기
system_fundamentals/security_cryptography

Argon2 vs bcrypt

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

Argon2 vs bcrypt

현대 시스템에서 비밀번호 저장은 단순 해시가 아니라:

"공격자가 최대한 느리게 크래킹하도록 만드는 것"
 

이 핵심이다.

그래서 현재 가장 많이 비교되는 패스워드 해시 알고리즘이:

  • bcrypt
  • Argon2

이다.

결론부터 말하면:

현재는 Argon2가 더 현대적이고 강력한 설계
 

로 평가받는다.

하지만 bcrypt도 여전히 실무에서 엄청 많이 사용된다.


1. 왜 SHA-256 같은 일반 해시를 안 쓰나?

많은 사람들이 처음엔:

SHA-256(password)
 

하면 안전할 거라 생각한다.

하지만 문제는:

SHA-256이 너무 빠르다
 

는 것.


GPU 사용 시:

초당 수십억 번 계산 가능
 

하다.

즉 공격자도 엄청 빠르게 brute-force 가능.


그래서 패스워드 저장용 해시는:

일부러 느리게
 

설계한다.


2. bcrypt란?

bcrypt는 1999년에 등장한 패스워드 해시 알고리즘이다.

핵심 특징:

  • Salt 내장
  • Cost 조절 가능
  • 일부러 느림

예:

$2b$12$...
 

여기서:

12
 

는 cost factor.


cost가 올라가면:

계산 시간이 기하급수적으로 증가
 

한다.


3. bcrypt의 핵심 아이디어

bcrypt는:

CPU 시간을 많이 사용하게 만들어
brute-force를 어렵게 함
 

.

즉:

공격자도 느려지게
 

만든다.


4. bcrypt의 문제점

bcrypt는 오래됐기 때문에 몇 가지 한계가 있다.


1) GPU 대응 한계

bcrypt는:

CPU 중심 설계
 

다.

현대 GPU/ASIC 공격에 완벽하지 않다.


2) 메모리 사용량이 적음

즉 병렬 하드웨어 공격에 상대적으로 약하다.


3) 입력 길이 제한

보통:

72byte 제한
 

이 있다.


5. Argon2란?

Argon2는 2015년 Password Hashing Competition(PHC) 우승 알고리즘이다.

즉 bcrypt 이후 세대라고 보면 된다.


핵심 특징:

  • 메모리 사용량 증가
  • 병렬 처리 제어
  • GPU 공격 저항성 강화

즉 단순히:

느리게만
 

하는 게 아니라:

메모리까지 많이 먹게
 

만든다.


6. 왜 메모리가 중요해졌나?

현대 공격은 GPU 사용이 핵심이다.

GPU는:

엄청난 병렬 연산
 

에 강하다.


하지만 GPU는:

메모리는 상대적으로 비쌈
 

.

그래서 Argon2는:

메모리를 많이 요구
 

해서 GPU 효율을 떨어뜨린다.


7. Argon2 종류

Argon2는 3종류 있다.

종류 특징
Argon2d GPU 공격 저항 강함
Argon2i Side-channel 공격 방어
Argon2id 둘 혼합 (권장)

현재 실무 권장은 거의:

Argon2id
 

.


8. bcrypt vs Argon2 핵심 차이

항목 bcrypt Argon2
등장 시기 1999 2015
기본 철학 CPU 느리게 CPU + 메모리 많이 사용
GPU 저항성 보통 강함
메모리 제어 거의 없음 매우 강력
병렬 제어 약함 가능
현대성 오래됨 최신 설계
실무 사용량 매우 많음 점점 증가

9. 실무에서는 뭐 쓰나?

신규 서비스

가능하면:

Argon2id
 

추천.

특히 보안 민감 시스템.


기존 시스템

여전히:

bcrypt 엄청 많음
 

.

왜냐면:

  • 검증됨
  • 라이브러리 안정적
  • 레거시 많음

10. 중요한 건 알고리즘보다 설정값

사실 bcrypt든 Argon2든:

설정(cost parameter)
 

이 엄청 중요하다.


예:

bcrypt

cost=4
 

면 너무 빠름.


Argon2

  • memory cost
  • iterations
  • parallelism

낮게 잡으면 의미 없음.


11. 패스워드 저장의 핵심 철학

중요한 건:

패스워드 해시는
"복호화 방지"보다
"대량 추측 공격 지연"
 

이 목적이라는 것.

즉:

공격 비용을 최대한 비싸게 만드는 것
 

이 핵심이다.


12. 결국 어떤 걸 선택해야 하나?

현재 기준 정리하면:


bcrypt

장점:

  • 검증된 역사
  • 라이브러리 많음
  • 아직 충분히 안전

단점:

  • 오래된 설계
  • GPU 대응 한계

Argon2id

장점:

  • 최신 설계
  • GPU/ASIC 대응 우수
  • 메모리 공격 저항성

단점:

  • 상대적으로 레거시 적음
  • 환경별 튜닝 필요

13. 현실적인 실무 결론

현재 실무 기준으로는:

신규 시스템:
Argon2id 우선 고려
 

하지만:

bcrypt도 올바른 cost로 사용하면
여전히 매우 강력
 

하다.

즉 진짜 중요한 건:

  • Salt 사용
  • 충분한 cost
  • 최신 라이브러리
  • rate limiting
  • MFA

같은 전체 인증 시스템 설계다.

반응형

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

파일 checksum 원리  (0) 2026.05.13
무결성이란 무엇인가  (0) 2026.05.13
SHA-256은 어떻게 동작하는가  (0) 2026.05.13
MD5는 왜 위험해졌는가  (0) 2026.05.13
해시는 왜 복호화가 안될까  (0) 2026.05.13

댓글