해시/암호화

Scrypt Hash + Verify

scrypt로 비밀번호를 해시화합니다(RFC 7914, 메모리 집약형 KDF), 기존 해시와의 대조 검증 포함.


                    

Scrypt (RFC 7914) was one of the first memory-hard password-hashing algorithms: it deliberately requires a lot of RAM, not just CPU time, to make parallel brute-forcing on GPUs and ASICs harder.

How to use it

Common uses

Things to keep in mind

The N parameter (memory cost) increases both required memory and compute time exponentially — tune it to your server's actual capacity.

Scrypt has been superseded by Argon2 (the official Password Hashing Competition winner) as the recommended choice for new systems, though scrypt itself still isn't considered unsafe.

이 도구에 대한 아티클: Scrypt: 이 알고리즘이 왜 그렇게 많은 메모리를 필요로 하는가

자주 묻는 질문

scrypt는 bcrypt나 PBKDF2와 어떻게 다른가요?

Scrypt는 의도적으로 메모리 집약적이면서 CPU 집약적이기도 해서, 주로 CPU 기반 브루트포스에만 저항하는 bcrypt나 PBKDF2에 비해 GPU나 맞춤형 ASIC 하드웨어로 크랙하는 비용이 훨씬 높습니다.

N, r, p 매개변수는 무엇을 제어하나요?

N은 CPU/메모리 비용을 설정하고(2의 거듭제곱이어야 함), r은 연산당 메모리 사용에 영향을 주는 블록 크기를 설정하며, p는 병렬성을 설정합니다 — 이 중 하나라도 늘리면 정당한 사용과 공격 모두에 대한 자원 비용이 증가합니다.

Argon2에 비해 scrypt는 여전히 좋은 선택인가요?

Scrypt는 여전히 견고하고 검증되었지만, 메모리와 사이드 채널 저항성에 대해 더 세밀한 제어를 제공하기 때문에 새 시스템에는 일반적으로 Argon2(Password Hashing Competition 우승자)가 권장됩니다.

scrypt는 실제로 메모리를 얼마나 사용하나요?

한 번의 계산당 대략 128 × N × r 바이트입니다. 일반적인 매개변수(N=16384, r=8)에서는 해시 하나당 약 16메가바이트로, 로그인 한 번에는 미미하지만 서버에서 수천 건의 동시 인증을 처리할 때는 상당한 부담이 됩니다.

scrypt는 비밀번호 해싱 외에 어디에 사용되나요?

scrypt는 일부 암호화폐(예: Litecoin)에서 proof-of-work 알고리즘으로 알려져 있습니다 — SHA-256을 사용하는 비트코인의 특징인 전용 ASIC 채굴에 대한 저항성 때문에 선택되었습니다.

아티클: 해시/암호화

Hash Generator: MD5, SHA-1, SHA-256은 서로 어떻게 다른가

MD5가 아직도 파일 무결성 검증에는 쓰이지만 비밀번호에는 쓰이지 않는 이유.

Checksum Verifier: 파일이 손상되지 않았는지 확인하는 방법

일치하는 체크섬이 파일의 무결성은 확인해주지만 누가 만들었는지는 확인해주지 않는 이유.

HMAC: 키가 있는 해시는 일반 해시와 어떻게 다른가

일반 SHA-256이 메시지 위변조를 막지 못하지만 HMAC은 막을 수 있는 이유.

Bcrypt: 비밀번호를 빠르게가 아니라 느리게 해시하는 이유

빠른 SHA-256이 비밀번호에는 나쁜 선택이고, 느린 bcrypt가 올바른 선택인 이유.

UUID: 거의 절대 중복되지 않는 식별자는 어떻게 만들어지는가

UUID v4를 수백만 대의 기계에서 충돌 위험 없이 독립적으로 생성할 수 있는 이유.

비밀번호 생성기: 비밀번호를 진짜로 강하게 만드는 것

사전 단어로 만든 긴 비밀번호가 기호와 숫자가 든 짧은 비밀번호보다 강한 이유.

AES: 대칭 암호화는 어떻게 동작하는가

AES에서 같은 키가 데이터를 암호화하고 복호화하는 이유, 그리고 이것이 비대칭 암호화와 다른 점.

Argon2: 이 알고리즘이 비밀번호 해싱 경진대회에서 우승한 이유

Argon2가 오래된 비밀번호 해싱 알고리즘보다 GPU를 이용한 공격을 더 잘 방어하는 방법.

TOTP: 인증 앱의 일회용 코드는 어떻게 작동하는가

Google Authenticator의 코드가 인터넷 없이 작동하고 시간만으로 서버와 동기화되는 이유.

PBKDF2: 가장 오래된 키 스트레칭 표준

PBKDF2의 권장 반복 횟수가 매년 늘어나는 이유.

X.509: SSL 인증서 안에는 무엇이 들어있는가

초록색 자물쇠를 보여주기 전에 브라우저가 사이트 인증서에서 정확히 무엇을 확인하는지.

PGP: 공개 키와 개인 키 암호화는 어떻게 작동하는가

PGP 공개 키는 자유롭게 공유할 수 있지만 개인 키는 절대 공유해서는 안 되는 이유.