← Back to Blog

비밀번호 엔트로피란: 강도를 실제로 계산하는 방법

2025-12-26

"강력한 비밀번호를 사용하세요"는 흔한 조언이지만 "강력함"이란 모호합니다. 엔트로피는 이 조언 뒤에 있는 실제 척도로, 최악의 경우 공격자가 몇 번을 시도해야 하는지를 비트 단위로 나타내는 숫자입니다. 이 글에서는 그 숫자가 무엇을 의미하는지, 그리고 실제로 선택하는 비밀번호에 대해 어떻게 계산하는지 설명합니다.

요약

  • 엔트로피(비트 단위)는 공격자가 무차별 대입으로 탐색해야 하는 검색 공간의 크기를 측정합니다: 엔트로피 = log2(문자 집합 크기 ^ 길이).
  • 문자를 하나 추가할 때마다 검색 공간은 배가되지만, 문자 유형을 하나 추가할 때는 고정된, 상대적으로 작은 배수만큼만 늘어납니다.
  • 소문자만 사용한 12자리 비밀번호는 네 가지 문자 유형을 모두 섞은 8자리 비밀번호보다 엔트로피가 낮지만, 소문자로만 이루어진 20자리 암호 문구는 둘 다를 능가합니다.
  • CSPRNG로 생성된 비밀번호는 이론적 엔트로피를 정확히 달성하지만, 사람이 선택한 비밀번호는 거의 그렇지 못합니다. 사람은 무작위가 아니기 때문입니다.

짧은 답변

비트 단위의 엔트로피는 log2(N)이며, 여기서 N은 해당 길이와 문자 집합에서 동일하게 가능한 비밀번호의 총 개수입니다. 실제로는: 엔트로피 = 길이 × log2(문자 집합 크기). 인쇄 가능한 ASCII 문자 95개에서 균등하게 추출한 16자리 비밀번호는 약 16 × log2(95) ≈ 105비트의 엔트로피를 가집니다 — 이는 실용적인 무차별 대입 저항성 측면에서 256비트 AES 키와 비교할 만하며, 비교하자면 과도한 수준이지만, 105비트는 이미 현재 또는 예측 가능한 하드웨어가 소진할 수 있는 범위를 훨씬 뛰어넘습니다. PassGenerate는 Web Crypto API의 CSPRNG를 사용하여 이러한 방식으로 비밀번호를 생성하므로, 이 엔트로피 수치는 이론적인 것이 아니라 실제입니다.

엔트로피 공식, 단계별로 살펴보기

엔트로피는 각 문자가 고정된 집합에서 독립적이고 균등하게 무작위로 선택된다고 가정합니다. 크기가 C인 문자 집합과 길이가 L인 비밀번호가 주어지면, 가능한 비밀번호의 수는 C^L이며, 비트 단위의 엔트로피는 다음과 같습니다:

엔트로피 = L × log2(C)
문자 집합집합 크기 (C)문자당 비트 수 (log2 C)
숫자만 (0-9)103.32
소문자 (a-z)264.70
소문자 + 숫자365.17
대소문자 혼합 + 숫자625.95
대소문자 혼합 + 숫자 + 기호 (일반적으로 약 33개)956.57

길이 vs 문자 집합 크기: 왜 길이가 이기는가

이 표는 NIST SP 800-63B가 강제적인 복잡성 규칙보다 길이를 왜 더 중요하게 여기는지를 보여줍니다:

길이숫자만소문자대소문자+숫자+기호 혼합
827비트38비트52비트
1240비트56비트79비트
1653비트75비트105비트
2066비트94비트131비트
2480비트113비트157비트
32106비트150비트210비트

네 가지 문자 유형을 모두 사용하는 8자리 비밀번호(52비트)가 소문자로만 이루어진 12자리 비밀번호(56비트)보다 엔트로피가 더 낮다는 점에 주목하세요. 이것이 잘 알려진 결론의 수학적 근거입니다: 짧은 비밀번호에 기호와 숫자를 강제로 넣는 것보다 무작위 문자 네 개를 더 추가하는 것이 보안에 더 도움이 됩니다. 이는 또한 사전에서 무작위로 뽑은 여러 단어로 이루어진 긴 암호 문구가 짧은 기호 뭉치보다 더 강력하면서도 입력하기 쉬운 이유이기도 합니다 — 수천 개 단어 목록에서 추출할 경우 단어 하나가 추가될 때마다 일반적으로 1113비트가 더해지며, 이는 46개 단어에서 빠르게 누적됩니다.

왜 "무작위처럼 보이는 것"이 실제 무작위와 같지 않은가

엔트로피 계산은 진정한 균등 무작위성을 전제로 합니다. 사람이 만든 비밀번호는 복잡해 보이더라도 이 전제를 체계적으로 위반합니다: 키보드 배열 패턴(Qwerty123!), 리트스피크 치환(P@ssw0rd), 그리고 기호가 붙은 날짜나 이름은 모두 문자 수가 암시하는 수준보다 실질 엔트로피를 크게 낮춥니다. 공격자의 크래킹 도구가 정확히 이런 패턴을 중심으로 만들어졌기 때문입니다. 비밀번호는 사람의 눈에는 무작위처럼 보여도 표적화된 사전 공격의 첫 수백만 번 시도 안에서 뚫릴 수 있습니다.

이것이 스스로 비밀번호를 고안하기보다 암호학적으로 안전한 의사난수 생성기(CSPRNG)를 사용하는 생성기를 선호해야 하는 실질적인 이유입니다. JavaScript의 Math.random()은 암호학적으로 안전하지 않으며 비밀번호 생성에는 부적합합니다 — 일부 엔진에서는 몇 개의 출력값만으로 재구성할 수 있을 만큼 예측 가능한 알고리즘에 의해 시드가 설정되고 생성됩니다. Web Crypto API의 crypto.getRandomValues()는 운영체제의 암호학적 난수 소스에서 값을 가져오므로, 각 문자는 진정으로 독립적이고 무작위이며 위의 엔트로피 수학이 실제로 적용됩니다.

실제 하드웨어에서는 어떻게 보이는가

위의 비트 수치는 비교하기에는 유용하지만, 실제 공격에 얼마나 시간이 걸리는지는 알려주지 않습니다 — 이는 추측을 수행하는 하드웨어에 달려 있으며, 그 하드웨어는 매년 빨라지고 있습니다. Hive Systems는 매년 정확히 이 부분에 대한 벤치마크를 발표하며, 대여한 소비자용 GPU 군단을 이용해 무차별 대입 속도를 테스트합니다. 2026년 자료에 따르면, 전체 혼합 문자 집합(대문자, 소문자, 숫자, 기호)으로 무작위 생성된 8자리 비밀번호를 해독하는 데 약 132년이 걸리는 것으로 나타났습니다 — 이는 2025년의 164년, 2024년의 225년보다 줄어든 수치로, GPU 하드웨어가 개선됨에 따라 연간 약 20~25%씩 감소하고 있습니다. 소문자만 사용한 8자리 비밀번호는 더 빠르게 줄었습니다: 2025년 해독에 3주가 걸리던 것이 2026년에는 약 2주로 단축되었습니다.

이 벤치마크에서 알아둘 만한 두 가지가 있습니다. 첫째, 이 추세는 한쪽 방향으로만 진행됩니다 — 오늘 "안전해" 보이는 것도 하드웨어 개선만으로 매년 약해지며, 이는 현재의 최소 기준보다 더 긴 비밀번호를 선택해야 한다는 현실적인 근거가 됩니다. 둘째, 다소 직관에 반하는 사실인데, 언어 모델 훈련을 위해 만들어진 전용 AI 가속기 칩은 동급 게이밍 GPU보다 비밀번호 무차별 대입 해독에서 더 빠르지 않았고, 일부 테스트에서는 오히려 더 느렸습니다 — 비밀번호 해독은 순전히 숫자 계산 문제이며, AI 하드웨어가 기반으로 하는 행렬 곱셈 최적화의 혜택을 받지 못하기 때문입니다.

실제로 몇 비트가 필요한가

무엇으로부터 방어하느냐에 따라 다르기 때문에 단일한 보편적 숫자는 없습니다:

  • 약 40-60비트: 무작위 추측이나 소규모 자동화 공격에는 저항력이 있지만, 약하게 해시된 데이터베이스에 대한 자원이 풍부한 오프라인 공격의 사정권 안에 있습니다. 정말로 저가치이고 저위험인 계정에만 적합합니다.
  • 약 70-90비트: 최적화된 크래킹 하드웨어를 사용하더라도 현실적인 공격 시간 범위에서 무차별 대입 범위를 충분히 벗어납니다. 대부분의 개인 계정에 합리적인 목표입니다.
  • 100비트 이상: 현재 또는 예측 가능한 컴퓨팅 능력으로는 사실상 무차별 대입으로 도달할 수 없으며, 강력한 암호화 키와 같은 의미에서 암호학적입니다. 비밀번호 관리자의 마스터 비밀번호나 다른 단일 장애점에 적합합니다.

핵심 요점

  • 엔트로피는 길이 × log2(문자 집합 크기)입니다 — 길이는 선형적 효과를, 문자 집합 크기는 로그적 효과를 가지므로 길이가 지배적입니다.
  • 모든 문자 유형을 사용한 짧은 비밀번호가 한 가지 유형만 사용한 긴 비밀번호보다 엔트로피가 낮을 수 있습니다.
  • 실질 엔트로피가 이론적 엔트로피와 같아지는 것은 문자가 진정으로 균등하게 무작위일 때뿐입니다 — 이는 CSPRNG가 보장하는 것이며 사람의 선택으로는 일반적으로 달성하지 못합니다.
  • 일상적인 계정에는 70비트 이상, 마스터 비밀번호나 다른 단일 장애점에는 100비트 이상을 목표로 하세요.

PassGenerate를 신뢰할 수 있는 이유

  • 비밀번호는 Web Crypto API를 사용해 브라우저에서 로컬로 생성됩니다.
  • 어떤 비밀번호도 서버로 전송되지 않습니다.
  • 암호학적으로 안전한 의사난수 생성기(CSPRNG)를 사용합니다.
  • NIST와 OWASP가 권장하는 현대적인 보안 모범 사례를 따릅니다.

참고 자료

  • Hive Systems 2026 비밀번호 표(무차별 대입 벤치마크 데이터)
  • NIST SP 800-63B – 디지털 신원 가이드라인
  • OWASP 인증 치트 시트

결론

엔트로피는 비밀번호 강도에 대한 정확하고 계산 가능한 척도이며, "복잡성"이라는 막연한 개념이 아닙니다. 길이는 검색 공간을 선형적으로 늘리는 반면 문자 집합 크기는 로그적으로만 늘리기 때문에, 문자 유형을 강제로 혼합하는 것보다 길이가 더 중요합니다 — 그리고 문자가 실제로 무작위가 아니라면 이 모든 것이 성립하지 않습니다. 그래서 PassGenerate와 같은 CSPRNG 기반 생성기가 사람이 선택한 비밀번호는 사실상 결코 달성하지 못하는, 이론적 엔트로피를 정확히 달성하는 비밀번호를 만들어내는 것입니다.