패스프레이즈 생성기: 강력하고 기억하기 쉬운
EFF 단어 목록과 XKCD 방식을 사용하는 패스프레이즈 생성기. 50–100+ 비트 엔트로피의 기억하기 쉬운 비밀번호 생성. 다국어 지원.
패스프레이즈 생성기란?
패스프레이즈 생성기는 기억하기 쉽고 암호학적으로 강력한 무작위 단어 시퀀스를 생성합니다 — XKCD 웹코믹 «correct horse battery staple»로 유명해진 방식을 따릅니다. 7,776개 단어의 diceware 목록에서 4단어 패스프레이즈를 생성하면 약 51.7비트의 엔트로피가 생성됩니다. 8자 무작위 비밀번호보다 무차별 대입 공격이 어렵지만, 사람이 기억하고 입력하기는 훨씬 쉽습니다.
이 도구는 10,000개 이상의 단어로 구성된 통합 풀을 가진 여러 선별된 단어 목록에서 단어를 선택하고, 9개 언어 변형을 지원하며, 단어 수·구분자 스타일·대문자화·추가 숫자를 맞춤 설정할 수 있고, 실시간 엔트로피 계산을 표시하여 각 설정의 강도를 정확히 확인할 수 있습니다. 모든 처리가 브라우저에서 실행됩니다 — 패스프레이즈가 어디로도 전송되지 않습니다.
> 지금 사용해 보세요: 패스프레이즈 생성기 — 무료, 가입 불필요, 100% 클라이언트 사이드.
주요 기능
- 다중 단어 사전 — EFF Diceware(영어), 독일어·스페인어·프랑스어·포르투갈어(BR)·러시아어·힌디어·일본어·중국어·한국어용 언어별 EFF 스타일 목록, 기술 용어 및 자연 어휘 보충 목록 포함. 도구는 브라우저 로케일에 따라 관련 단어 목록을 자동 선택합니다.
- 맞춤 가능한 단어 수(3–10단어) — 범위 슬라이더로 제어. 기본값은 4단어입니다.
- 5가지 구분자 옵션 — 없음(단어 바로 연결), 공백, 하이픈(
-), 밑줄(_), 마침표(.). - 선택적 대문자화 — 활성화 시 각 단어의 첫 글자를 연결 전에 대문자로 변환합니다.
- 선택적 숫자 접미사 — 구성 가능한 범위의 무작위 숫자를 추가합니다(기본값 1–999). 도구는 숫자 범위의 엔트로피 기여를 별도로 계산하여 표시합니다.
- 실시간 엔트로피 계산 — 비트 단위 총 엔트로피, 풀 크기, 단어당 비트를 표시합니다. 엔트로피는 단어 수, 풀 크기, 활성화된 경우 숫자 범위를 고려합니다.
- 7단계 강도 — 비밀번호 생성기와 동일: 약함, 보통, 좋음, 강함, 매우 강함, 요새, 터무니없음.
- 대량 생성(1–100) — 수량 슬라이더로 여러 패스프레이즈를 동시에 생성합니다.
- 배치 모드 — 최대 100개의 독립 패스프레이즈를 일괄 생성하고 테이블에 표시하는 서포터 기능.
- 최소 길이 적용 — 연결된 단어 문자가 최소 길이에 도달하도록 선택적으로 요구하며, 필요 시 추가 단어를 삽입합니다.
패스프레이즈 생성기 사용 방법
1단계: 단어 목록 선택
도구가 인터페이스 로케일에 따라 자동으로 단어 목록을 선택합니다. 영어 사용자는 EFF Diceware, Common English, Technical, Nature 목록을 봅니다. 한국어 사용자는 한국어 EFF 스타일 목록과 영어 폴백을 봅니다.
각 단어 목록 항목에는 이름, 단어 수, 간단한 설명이 표시됩니다. 체크박스로 목록을 켜고 끕니다. 최소 하나의 단어 목록이 활성 상태여야 합니다 — 마지막 목록 선택 해제를 시도하면 오류 토스트가 표시됩니다. 여러 목록을 결합하면 풀 크기가 증가하고 단어당 엔트로피가 향상됩니다.
2단계: 단어 수 설정
단어 수 슬라이더(범위 3–10)를 사용하여 각 패스프레이즈의 단어 수를 선택합니다. 엔트로피 표시가 즉시 업데이트됩니다. 표준 EFF Diceware 목록(~7,776단어)에서 각 단어는 약 12.9비트의 엔트로피를 기여합니다:
| 단어 수 | 대략적 엔트로피 |
|---|---|
| 3 | ~38.7비트 (약함) |
| 4 | ~51.7비트 (보통) |
| 5 | ~64.6비트 (좋음) |
| 6 | ~77.5비트 (강함) |
| 7 | ~90.4비트 (매우 강함) |
3단계: 구분자 선택
5개의 라디오 버튼으로 단어 구분 방식을 제어합니다:
- 없음 — 단어를 직접 연결:
CorrectHorseBatteryStaple - 공백 —
Correct Horse Battery Staple - 하이픈 —
Correct-Horse-Battery-Staple - 밑줄 —
Correct_Horse_Battery_Staple - 마침표 —
Correct.Horse.Battery.Staple
참고: 구분자 옵션은 문자 자체가 아닌 옵션 ID(예: 'hyphen')를 저장합니다. 컴포넌트는 SEPARATOR_OPTIONS.find((s) => s.id === options.separator)를 통해 문자를 조회합니다.
4단계: 추가 옵션 구성
각 단어 대문자화 — 기본적으로 활성. 각 단어의 첫 글자를 대문자로 변환합니다(word.charAt(0).toUpperCase() + word.slice(1)). 공격자가 어떤 단어든 대문자화될 수 있다고 가정할 수 있으므로 의미 있는 엔트로피는 추가되지 않습니다.
무작위 숫자 추가 — 체크하면 구성 가능한 범위의 숫자가 패스프레이즈 끝에 직접 추가됩니다(마지막 단어와 숫자 사이에 구분자 없음). 기본 범위는 1–999입니다. 엔트로피 기여는 log2(max - min + 1)이며, 범위 컨트롤 옆의 엔트로피 표시에 나타납니다.
최소 문자 길이 — 0에서 50 슬라이더. 0보다 크게 설정하면 모든 단어의 연결 문자 수가 최솟값에 도달할 때까지 생성기가 추가 단어를 삽입합니다. 서비스가 최소 문자 수 요건을 부과할 때 유용합니다.
5단계: 생성 및 복사
«Generate»를 클릭합니다. 결과 카드에 각 패스프레이즈의 단어 수, 비트 단위 엔트로피, 색상 코드 강도 표시기가 나타납니다. 임의 행의 복사 아이콘을 클릭하여 해당 패스프레이즈를 복사합니다. «Copy All»을 클릭하면 모든 패스프레이즈가 줄바꿈으로 구분되어 복사됩니다.
실용적인 예시
비밀번호 관리자의 마스터 비밀번호. 매일 입력하고 적어 두어서는 안 되는 패스프레이즈가 필요합니다. 6단어, 하이픈 구분자, 각 단어 대문자화, 100–999 범위 숫자를 선택합니다. EFF Diceware 목록으로 6단어(~77.5비트)에 900개 값 범위에서 ~9.2비트를 더하면 총 엔트로피가 86비트를 초과합니다(매우 강함). 결과는 다음과 같습니다: Marble-Blanket-Curtain-Fossil-Runway-Pencil847.
서버용 SSH 키 패스프레이즈. 자주 입력하지는 않지만 강도가 필요합니다. 7단어, 밑줄 구분자, 대문자화 없음, 숫자 추가 없음을 선택합니다. 7개 EFF Diceware 단어로 ~90비트(매우 강함)가 됩니다. 대문자화를 사용하지 않는 것은 의도적입니다 — 모두 소문자로 입력하는 것이 더 빠르고 엔트로피에는 영향이 없습니다.
공유 사무실 Wi-Fi 비밀번호. 방문객이 스마트폰에서 입력하는 비밀번호입니다. 4단어, 공백 구분자, 각 단어 대문자화를 선택합니다. 결과는 읽기 쉽고 기억하기 쉽습니다: Timber Forest Mirror Flute. ~51.7비트로 패스프레이즈로서는 보통이지만 동등한 길이의 무작위 문자열보다 훨씬 기억하기 쉽습니다.
팁과 모범 사례
엔트로피에는 긴 단어 목록보다 더 많은 단어가 효과적. 두 번째 단어 목록을 추가하면 풀 크기가 두 배가 되어 단어당 약 1비트가 추가됩니다. 단어를 하나 더 추가하면 log2(poolSize)비트가 직접 추가됩니다. 최대 엔트로피를 위해 먼저 단어 수를 늘린 다음 보충 단어 목록을 추가합니다.
구분자는 엔트로피를 추가하지 않음. 구분자는 무작위가 아닙니다 — 패스프레이즈 구성을 모델링하는 공격자는 자주 사용하는 구분자를 알고 있습니다. 구분자는 가독성과 입력 편의성을 향상시키지만 보안에는 기여하지 않습니다. 구분자 선택을 엔트로피 원천으로 의존하지 마세요.
대문자화는 예측 가능. 대문자화 옵션은 각 단어에 결정론적으로 적용됩니다. 보안 기능이 아닌 가독성 기능으로 취급하세요. 엔트로피 계산은 이를 정확하게 반영하며 대문자화로 인해 표시된 엔트로피 값이 증가하지 않습니다.
숫자 범위가 중요하며 개별 값이 아님. 1–999에서 숫자를 추가하면 log2(999) ≈ 10비트가 추가됩니다. 100–999에서는 log2(900) ≈ 9.8비트가 추가됩니다. 1–9999로 범위를 넓히면 log2(9999) ≈ 13.3비트가 추가됩니다. 더 넓은 범위가 더 큰 숫자보다 가치 있습니다.
최소 길이는 제약이며 보안 강화가 아님. 최소 길이를 추가하면 문자 수가 충족될 때까지 생성기가 단어를 추가합니다. 이로 인해 엔트로피가 비례하여 증가하지만 길이 제약 자체는 무작위가 아닙니다 — 이 옵션을 사용한다는 것을 아는 공격자는 이를 모델링할 수 있습니다.
일반적인 문제 및 해결 방법
«Select at least one wordlist» 토스트 표시. 마지막 활성 단어 목록의 선택 해제를 시도했습니다. 현재 선택을 제거하기 전에 다른 단어 목록을 하나 이상 활성화하세요.
엔트로피가 예상보다 낮음. 단어 수 슬라이더를 확인하세요 — 최소 3단어입니다. 또한 의도하지 않은 추가 단어를 최소 길이 제약이 요구하고 있지 않은지도 확인하세요. 엔트로피 표시는 길이 최솟값을 충족하기 위해 추가된 단어를 포함한 생성된 총 단어 수를 계산하기 때문입니다.
숫자 범위에 «Max must be greater than min» 오류 표시. 숫자 범위 유효성 검사에는 numberMax > numberMin이 필요합니다. 두 필드에 같은 값을 입력하면 숫자 범위의 엔트로피가 0으로 떨어지고 오류 메시지가 표시됩니다. max를 최소한 min + 1로 설정하세요.
패스프레이즈에 예상치 못한 언어의 단어 포함. 단어 목록은 결합될 수 있습니다. 영어 EFF Diceware와 한국어 EFF Diceware가 모두 활성 상태라면 두 풀의 단어가 통합 선택에 들어갑니다. 출력 언어를 제한하려면 의도하지 않은 단어 목록을 비활성화하세요.
배치 모드에서 패스프레이즈가 생성되지만 엔트로피가 0. 배치 출력 행의 렌더링 시점에 엔트로피 정보를 사용할 수 없을 때 발생합니다. 현재 설정의 엔트로피 추정치는 옵션 카드의 실시간 엔트로피 표시에서 확인하세요.
개인정보 보호 및 보안
패스프레이즈 생성기는 풀에서 단어를 선택하기 위해 crypto.getRandomValues를 사용합니다. 패스프레이즈는 서버로 전송되지 않습니다 — 단어 목록은 애플리케이션에 번들로 포함되어 있으며 모든 선택 로직은 브라우저에서 실행됩니다. 로드 후에는 오프라인으로 작동합니다. 패스프레이즈는 브라우저 메모리에만 보관됩니다. 기록 패널(서버가 아닌 기기의 IndexedDB에 데이터를 로컬로 저장하는 프리미엄 서포터 기능)을 사용하지 않는 한 애플리케이션에 저장되지 않습니다.
자주 묻는 질문
패스프레이즈 생성기는 무료인가요? 네. 계정, 가입, 사용 제한 없이 완전히 무료입니다.
패스프레이즈의 XKCD 방식이란? XKCD 방식은 2011년 만화(스트립 #936)를 참조합니다. 랜들 먼로가 그린 것으로, 4개의 무작위 일반 단어(예: «correct horse battery staple»)가 치환이 포함된 무작위 문자의 짧은 비밀번호보다 더 안전하고 기억하기 쉽다는 것을 보여줬습니다. 보안은 큰 단어 목록에서 가능한 단어 조합의 수에서 비롯되며, 개별 문자의 복잡성에서 오는 것이 아닙니다.
Diceware란? Diceware는 번호가 매겨진 단어 목록에서 물리적 주사위를 굴려 단어를 선택하는 패스프레이즈 생성 방법입니다. EFF(Electronic Frontier Foundation)가 이 목적을 위해 설계된 선별된 diceware 목록을 발행합니다. 이 도구는 EFF 단어 목록을 디지털로 사용하며, crypto.getRandomValues가 물리적 주사위의 역할을 합니다.
얼마나 많은 엔트로피면 충분한가요? 보안 권장 사항은 사용 사례에 따라 다릅니다. 대부분의 비밀번호 관리자 마스터 비밀번호와 계정 자격 증명에는 현재 하드웨어에 대해 60–80비트(좋음~강함)가 충분하다고 널리 알려져 있습니다. 장기 비밀이나 고가치 대상에는 80–100비트(매우 강함) 이상이 권장됩니다. 도구의 강도 가이드는 일반 소비자 GPU와 국가 수준 위협에서의 해독 시간 추정을 제공합니다.
구분자 선택이 엔트로피에 영향을 미치나요? 아니요. 구분자는 고정된 설정 선택입니다 — 패스프레이즈를 모델링하는 공격자는 사용하는 구분자를 알고 있습니다. 구분자는 가독성과 입력 편의성에만 영향을 미칩니다. 엔트로피 표시에는 구분자 선택의 기여가 포함되지 않습니다.
다른 언어로 패스프레이즈를 생성할 수 있나요? 네. 독일어, 스페인어, 프랑스어, 포르투갈어(브라질), 러시아어, 힌디어, 일본어, 중국어, 한국어 단어 목록이 포함되어 있습니다. 올바른 단어 목록은 브라우저 로케일에 따라 자동으로 표시됩니다. 원하는 조합으로 단어 목록을 수동으로 토글할 수도 있습니다.
단어 대문자화가 엔트로피를 증가시키나요? 아니요. 대문자화 옵션은 각 단어에 결정론적으로 적용됩니다(첫 글자를 대문자로). 이 도구를 사용한다는 것을 아는 공격자는 대문자화 패턴을 모델링할 수 있습니다. 엔트로피 계산은 대문자화에 대해 어떤 비트도 추가하지 않습니다.
한 번에 몇 개의 패스프레이즈를 생성할 수 있나요? 슬라이더로 최대 100개. 배치 모드(서포터 기능)도 배치 실행당 최대 100개.
여러 단어 목록을 결합하면 더 안전한가요? 목록을 결합하면 풀 크기가 증가하여 단어당 log2(새풀크기/원래풀크기)비트 정도가 추가됩니다. 예를 들어 두 개의 7,776단어 목록을 ~15,552단어 풀로 결합하면 단어당 약 1비트가 추가됩니다. 단어 수를 늘리는 것이 일반적으로 더 큰 영향을 미치지만, 목록을 결합하는 것도 유용한 보충 조치입니다.
최소 길이 적용이 엔트로피 계산을 변경하나요? 네. 최소 길이가 활성화되어 요건을 충족하기 위해 추가 단어가 삽입되면 해당 단어들은 전체 엔트로피를 완전히 기여합니다. 엔트로피 표시는 항상 생성된 패스프레이즈의 실제 단어 수를 반영합니다.
관련 도구
- 비밀번호 생성기 — 암호학적 엔트로피와 7단계 강도 측정기를 갖춘 무작위 문자 비밀번호를 생성합니다.
- UUID 생성기 — 비밀번호 외 사용 사례를 위한 RFC 호환 고유 식별자를 생성합니다.
- Base64 인코더/디코더 — Base64 형식으로 자격 증명과 토큰을 인코딩 또는 디코딩합니다.
패스프레이즈 생성기를 지금 사용해 보세요: 패스프레이즈 생성기