본문으로 건너뛰기
튜토리얼

비밀번호 엔트로피: 길이가 복잡성을 이기는 진짜 수학

· 12 분 소요

비밀번호 조언은 20년 동안 “대문자, 소문자, 숫자, 기호를 쓰세요”의 어떤 변형에 머물러 있었습니다. 수학은 그것이 대부분 틀렸다고 말합니다 — 적어도 우선순위가 크게 잘못되어 있습니다. 무작위로 생성된 비밀번호의 강도는 하나의 공식에 의해 결정되며, 그 공식은 문자 집합의 확장보다 길이를 훨씬 더 강하게 보상합니다. 이것은 우연이 아니라 NIST가 SP 800-63B(2017, 2024 개정) 이후로 말해온 것입니다.

이 글은 실제 수학을 단계별로 살펴보고, 실제 엔트로피 값을 계산하며, 가정을 명시한 brute-force 추정치를 제시하고, 이를 적용 가능한 규칙으로 바�니다.

엔트로피 공식

크기 P의 문자 풀에서 균일하게 무작위로 길이 L로 추출된 비밀번호에 대해, 가능한 비밀번호의 수는 P^L이며, 비트 단위 엔트로피는 다음과 같습니다:

H = log2(P^L) = L × log2(P)

이것이 모델의 전부입니다. 엔트로피는 공격자가 열거해야 하는 탐색 공간의 크기를 측정합니다. 비트 하나가 추가될 때마다 작업량이 두 배가 됩니다.

두 개의 레버는 P(풀 크기)와 L(길이)이며, 둘은 동등하지 않습니다. 한 문자를 추가하면 탐색 공간이 P배로 �해지고, 풀을 확장하면 비율로 곱해집니다. 중요한 풀과 그 문자당 엔트로피 기여는 다음과 같습니다:

문자 풀크기 (P)문자당 비트, log2(P)
숫자만 (0–9)103.32
소문자만 (a–z)264.70
소문자 + 대문자 (a–zA–Z)525.70
영숫자 (a–zA–Z0–9)625.95
전체 출력 가능 ASCII(기호 포함 94자)946.55

풀 확장에서의 체감 수익률 감소에 주목하세요: 소문자만(26)에서 전체 출력 가능 집합(94)으로 가면 풀은 거의 4배가 되지만 문자당 엔트로피는 4.70에서 6.55 비트로 — 문자당 39% 증가에 불과합니다. 반면 어떤 풀 크기에서든 8자에서 16자로 가면 엔트로피는 정확히 두 배가 됩니다. 길이는 천장 없이 선형으로 스케일되고, 풀 크기는 표준 키보드에서 ~94가 상한입니다.

실제 엔트로피 값, 계산됨

H = L × log2(P)를 적용하면:

전체 출력 가능 ASCII 풀(94자):

길이엔트로피(비트)탐색 공간
852.4~6.1 × 10^15
1065.5~4.4 × 10^19
1278.7~4.8 × 10^23
1491.8~5.1 × 10^27
16104.9~3.7 × 10^31
20131.1~2.9 × 10^39

소문자만 풀(26자):

길이엔트로피(비트)
837.6
1256.4
1675.2
2094.0

영숫자 풀(62자):

길이엔트로피(비트)
847.6
1271.5
1695.3
20119.1

이제 요점을 만드는 비교를 보세요. 서로 다른 정책의 그럴듯한 결과인 이 세 비밀번호를 보세요:

  • xQ9#mK2! — 8자, 전체 94자 풀: 52.4 비트
  • hkbwvztdpqrm — 12자, 소문자만: 56.4 비트
  • hkbwvztdpqrmjfyc — 16자, 소문자만: 75.2 비트

“단순한” 12자 소문자 비밀번호는 이미 “복잡한” 8자 비밀번호를 이기고, 16자 소문자 비밀번호는 23 비트로 앞서는데 — 탐색 공간에서 약 800만 배 — 그에 비해 입력과 기억이 훨씬 쉽습니다. 4개의 추가 문자가 전체 기호 집합보다 더 가치가 있습니다.

이것이 길이가 복잡성을 이긴다는 의미입니다: 복잡성이 무가치하다는 것이 아니라(고정 길이에서 더 넓은 풀은 항상 도움이 됩니다), 인간이 무작위로 복잡성을 만들어내는 일은 형편없으며, 추가된 문자당 한계 엔트로피가 어떤 현실적 풀에 대해서도 풀 확장으로 얻는 한계 엔트로피보다 크기 때문입니다.

거대한 단서: 이것은 무작위 비밀번호에만 작동한다

H = L × log2(P) 공식은 균일 무작위 추출을 가정합니다. 사람이 고른 비밀번호는 그런 것이 전혀 아닙니다. Summer2026!은 ~90자 풀의 11자 — 명목상 ~71 비트 — 이지만 어떤 크래킹 도구도 첫 수천 번의 추측 안에 시도합니다. 왜냐하면 사전 단어, 연도, 가장 흔한 기호가 가장 흔한 배열로 놓여 있기 때문입니다.

인간 비밀번호의 엔트로피는 공식이 아니라 예측 가능성에 의해 지배됩니다. 유출된 비밀번호 코퍼스에 대한 경험적 분석은 일관되게 공통 비밀번호의 작은 사전에 변형 규칙(첫 글자 대문자, 숫자 추가, ! 추가)을 더한 것이 실제 비밀번호의 큰 비율을 커버한다는 것을 발견합니다. 그래서:

  1. 엔트로피 수학은 생성된 비밀번호, 단어 리스트의 패스프레이즈, 매니저가 만든 비밀에 적용됩니다 — 사람이 도움 없이 발명한 어떤 것에도 적용되지 않습니다.
  2. 사람이 고른 비밀번호에 대한 방어는 엔트로피 추정이 아니라 유출된 비밀번호와 흔한 비밀번호 목록에 대한 검사입니다 — 이것이 바로 NIST가 요구하는 것입니다.

패스프레이즈와 Diceware

Diceware 방법은 기억 가능한 비밀에 대해 수학을 구체화합니다: 주사위를 굴려 7,776개 단어 리스트(6^5)에서 균일하게 단어를 고릅니다. 각 단어는 log2(7776) ≈ 12.9 비트를 제공합니다:

  • 5단어: 64.6 비트
  • 6단어: 77.5 비트
  • 7단어: 90.4 비트

correct horse battery staple 스타일의 6단어 패스프레이즈(유명한 XKCD 예시가 같은 수학을 보여줍니다)는 78.7 비트의 무작위 12자 문자열보다 훨씬 기억하기 쉬우면서 ~77 비트를 제공합니다. 같은 보안 등급, 매우 다른 사용성.

Brute-force 시간 추정 — 가정을 명시한 채로

“크랙까지 시간” 숫자는 공격 모델 없이는 의미가 없습니다. 여기 명시적으로 표현된 모델이 있습니다:

가정: 빠르고 솔트 없는 해시(예: 원시 MD5/SHA-1)에 대한 오프라인 공격, 초당 10^10(100억) 추측 — 적당한 멀티 GPU 장비로 달성 가능. 전체 공간의 완전 탐색; 비밀번호를 찾는 기대 시간은 그 절반. 스로틀링 없음, 유출 목록 지름길 없음(무작위 비밀번호를 가정하므로 유효).

비밀번호 종류탐색 공간완전 탐색 시간 @ 10^10/s
8자, 소문자(26)2.1 × 10^11~21초
8자, 전체 풀(94)6.1 × 10^15~7일
12자, 소문자(26)9.5 × 10^16~110일
12자, 전체 풀(94)4.8 × 10^23~150만 년
16자, 소문자(26)4.4 × 10^22~14만 년
16자, 전체 풀(94)3.7 × 10^31~1.2 × 10^14년

이것들은 보증이 아니라 예시적인 크기 비교로 취급하세요. 양쪽 방향으로 변합니다:

  • 현실에서는 더 느린 경우: 사이트가 적절한 비밀번호 해시 함수를 사용할 때. 합리적 매개변수의 bcrypt, scrypt 또는 Argon2는 원시 MD5 대비 추측 처리량을 4–7 자릿수 줄일 수 있어, “~7일”을 “누구나 신경 쓰는 열사태보다 더 긴 시간”으로 바꿔놓습니다. 이것이 해시 알고리즘 선택이 사용자가 하는 거의 모든 것보다 중요한 이유입니다.
  • 더 빠른 경우: 비밀번호가 무작위가 아니거나(사전 공격), 공격자가 국가 차원의 하드웨어를 가지고 있거나, 도난당한 해시가 가치를 지니는 수년에 걸쳐 무어의 법칙 같은 개선이 누적되는 경우.
  • 온라인 공격(라이브 로그인 엔드포인트에 대한 추측)은 완전히 다른 모델입니다: 속도 제한과 잠금이 공격자를 어쩌면 수백 번의 추측으로 제한하므로 ~20비트 비밀도 살아남습니다 — 이것이 NIST가 스로틀링을 요구하는 이유이며, 비밀번호 매니저의 사이트별 비밀번호가 어떤 단일 비밀번호의 강도보다 더 중요한 이유입니다.

표의 실용적 결론: 빠르게 해시될 무엇이든 8자는 충분하지 않습니다, 결론적으로; 12+ 무작위 문자는 편안합니다; 16은 좋은 쪽으로 과잉입니다. 그리고 다시, 16자 소문자 문자열이 12자 전체 풀 문자열을 더 오래 견딥니다 — 길이가 이깁니다.

NIST SP 800-63B가 실제로 무엇이라 말하는가

NIST의 Digital Identity Guidelines(SP 800-63B, 원래 2017; Revision 4는 2024 발행)는 이 많은 것을 미국 연방 정책으로 코드화했습니다. 비밀번호(“memorized secret”) 검증자에 대한 무게 있는 권고:

  1. 복잡성이 아닌 최소 길이. 사용자가 고른 비밀번호는 최소 8자 요구(Revision 4는 단일 요인으로 사용될 때 15로 올림, 두 번째 요인이 있을 때는 8). 최소 64자 허용. 조합 규칙을 강제하지 말 것 (“대문자, 숫자, 기호 포함 필수” 없음) — 이는 사용자를 예측 가능한 패턴(Password1!)으로 밀어붙여 실제 보안을 약화시킵니다.
  2. 강제된 주기적 변경 없음. 2017 개정은 이미 “90일마다 회전” 교리를 폐기했고 Revision 4가 이를 재확인합니다. 비밀번호는 침해 증거가 있을 때만 변경하세요. 강제 회전은 안정적으로 Summer2026!Autumn2026!을 만듭니다 — 크래킹 규칙이 trivial하게 다루는 증가입니다.
  3. 유출 및 흔한 비밀번호 목록에 대한 검사. 검증자는 후보 비밀번호를 알려진 침해 비밀번호, 사전 단어, 반복/연속 문자열, 맥락 특정 단어(서비스 이름, 사용자명)의 사전과 비교해야 합니다. 이것은 사람이 고른 비밀의 실제 방어로 조합 규칙을 대체합니다.
  4. 붙여넣기와 비밀번호 매니저 허용. 검증자는 붙여넣기 입력을 허용해야 합니다 — 이는 비밀번호 매니저에 대한 명시적 보증이며, 생성된 20자 무작위 문자열이 바로 가이드라인이 사용자에게 갖길 원하는 것입니다.
  5. 지식 기반 힌트나 보안 질문 없음. 비밀번호 힌트와 KBA(“어머니의 처녀 성”)는 비밀을 누설하거나 trivial하게 드러내므로 금지됩니다.
  6. 솔트, 메모리 하드 해싱으로 저장. 검증자는 적절한 일방향 함수로 해시된 비밀번호를 저장해야 합니다 — 가이던스는 적절한 작업 계수를 가진 Argon2, bcrypt 또는 PBKDF2 같은 방식을 가리키며 — 사용자당 최소 32비트의 솔트를 둡니다.

이들이 엔트로피 수학과 어떻게 일관되는지 주목하세요: 조합 규칙은 인간에게 실제 엔트로피를 더하지 않고, 길이는 더합니다; 회전은 사용자가 가진 엔트로피를 패턴으로 밀어붙여 파괴합니다; 유출 목록 검사는 인간의 엔트로피가 측정 불가능하다는 사실을 다룹니다. 표준은 수학의 제도화입니다.

실제로 쓸 수 있는 규칙

  1. 생성기가 비밀번호를 만들게 하세요. 무작위 생성이 엔트로피 공식을 적용할 수 있는 유일한 방법입니다. 우리의 비밀번호 생성기는 브라우저에서 암호학적으로 무작위인 비밀번호를 만듭니다 — 어디로도 전송되지 않습니다. 16+ 자로 설정하고 더 이상 생각하지 마세요.
  2. 중요한 것은 기본 16자. 소문자만이라도 95+ 비트에서, 적절히 해시된 저장소에 대한 어떤 상상 가능한 brute-force 예산을 넘습니다.
  3. 기억해야 하는 것은 6단어 패스프레이즈. ~77 비트, 입력 가능, 기억 가능. 같은 도구의 패스프레이즈/단어 리스트 모드가 있으면 그것으로 후보를 생성하거나 Diceware를 사용하세요.
  4. 사이트마다 고유하게, 항상. 엔트로피는 한 사이트를 보호합니다; 재사용은 하나의 침해를 모든 침해로 바꿉니다. 이것이 비밀번호 매니저의 존재 이유입니다.
  5. 가능하면 두 번째 요인을 추가하세요. NIST의 길이 요구사항은 MFA가 있을 때 명시적으로 완화되는데, 두 번째 요인이 비밀번호 엔트로피를 더하는 것보다 훨씬 저렴하게 공격자 작업을 곱하기 때문입니다.
  6. 복잡성 연기는 무시하세요. “대문자 하나, 숫자 하나, 기호 하나”를 요구하면서 12자로 제한하는 사이트는 정책이 거꾸로입니다. 기계적으로 따르되, 그것을 강함으로 착각하지 마세요.

요약

  • 무작위 비밀번호 엔트로피는 H = L × log2(P): 각 문자가 풀 크기에만 의존하는 고정된 수의 비트를 더합니다.
  • 풀 확장(26 → 94자)은 문자당 ~1.85 비트를 얻고; 추가된 각 문자는 4.7–6.6 비트를 얻습니다. 길이가 결정적으로 이깁니다.
  • 8 무작위 문자 ≈ 52 비트 ≈ 빠른 오프라인 해시에 대한 일-수-크랙; 12 무작위 문자 ≈ 78+ 비트 ≈ 그 모델에서 사실상 크랙 불가능.
  • 공식은 무작위 생성에만 적용됩니다. 인간이 고른 비밀번호는 사전에 의해 패배하며, 이것이 NIST가 유출 목록 검사를 의무화하고 조합 규칙과 강제 회전을 금지하는 이유입니다.
  • 비밀번호 생성기로 16자 무작위 비밀번호를 생성하고, 매니저에 저장하고, MFA를 활성화하세요. 그 스택이 수학이 권장하는 것입니다.