외우기 쉬운 패스프레이즈 생성기(Diceware 방식)

일반적인 단어를 무작위로 조합해 외우기 쉽고 구두로 전달하기도 편한 패스프레이즈를 생성합니다. 단어 수·구분자·대문자화·끝자리 숫자를 지정할 수 있으며, 모든 처리는 브라우저 안에서 완결됩니다.

이 도구는 단어 선택과 조합을 모두 브라우저 안(Web Crypto API)에서 처리하며, 서버로는 어떤 정보도 전송하지 않습니다.

Diceware 패스프레이즈 방식에 대하여

Diceware는 주사위(또는 다른 무작위 수단)를 이용해 단어 목록에서 여러 단어를 선택하고 이어 붙여 외우기 쉬운 비밀번호를 만드는 방식입니다. 무작위 문자·기호 나열보다 사람이 훨씬 기억하기 쉬우며, 단어 수를 늘릴수록 무차별 대입 공격에 대한 강도(엔트로피)도 선형적으로 증가합니다.

패스프레이즈 생성이란

패스프레이즈는 기호를 섞은 짧은 문자열 대신, 일반적인 단어를 여러 개 이어 붙여 만드는 비밀번호입니다. 사람에게는 단어의 나열로서 외우기 쉬우면서도, 단어 수를 늘리면 무차별 대입 공격에 대한 강도가 직선적으로 올라갑니다. 이 도구는 단어 수·구분 문자·대문자화·숫자의 부가를 지정해 그 자리에서 패스프레이즈를 생성합니다.

생성에는 암호학적으로 안전한 난수를 사용하며, 처리는 모두 브라우저 안에서 완결됩니다. 서버로 전송되지도 저장되지도 않으므로, 표시된 문자열은 그 자리에서 복사해 주세요. 페이지를 다시 읽어들이면 다른 조합으로 바뀝니다. 함께 표시되는 추정 강도는 단어 목록의 규모와 단어 수로부터 산출한 기준값입니다.

패스프레이즈를 만드는 방법

  1. 단어 수를 정합니다 네 개 이상을 권장합니다. 세 개 이하로는 추정 강도가 부족해, 전용 해독 도구에 대해 충분한 내성을 가질 수 없습니다.
  2. 구분 문자를 고릅니다 구두로 전하는 상황에서는 하이픈이 읽기 쉬워 편리합니다. 공백을 허용하지 않는 서비스에서는 다른 기호를 골라 주세요.
  3. 대문자화와 숫자의 부가를 설정합니다 대문자나 숫자를 필수로 하는 서비스를 위한 조정입니다. 요건을 충족하면서 외우기 쉬움을 유지할 수 있습니다.
  4. 생성해서 복사합니다 마음에 드는 조합이 나올 때까지 다시 생성할 수 있습니다. 정해지면 그 자리에서 복사해 보관처에 등록해 주세요.

더 잘 활용하기 위한 팁

  • 단어 수는 4개 이상을 권장합니다. 3개 이하이면 예상 엔트로피가 전용 해독 도구에 충분히 대응하기 어려운 경우가 많습니다.
  • Wi-Fi 비밀번호처럼 다른 사람에게 구두로 전달하거나 메모해야 하는 경우에는 하이픈 구분자가 읽기 쉽고 오타도 줄여 줍니다.
  • 기호 입력을 필수로 요구하는 서비스에서는 "끝에 두 자리 숫자 추가"를 활성화하면 기호 없이도 복잡성 요건을 충족하기 쉬워집니다.
  • 생성된 패스프레이즈는 화면에 표시되기만 하며 저장되지 않습니다. 페이지를 새로고침하면 새로운 조합이 나오므로, 사용하려면 즉시 복사해 두세요.

패스프레이즈의 활용 상황

Wi-Fi 비밀번호를 정하기

손님에게 구두로 전할 기회가 많기 때문에, 단어의 나열은 기호의 나열보다 압도적으로 전하기 쉬워집니다. 하이픈 구분이 읽어 주기에 적합합니다.

비밀번호 관리 도구의 마스터 비밀번호

유일하게 스스로 외워야 하는 비밀번호입니다. 길이를 확보하면서 기억할 수 있는 형태로 만들 수 있습니다.

암호화 파일의 암호

ZIP이나 디스크의 암호화에 쓰는 암호로서, 상대에게 전하기 쉽고 잘못 치기 어려운 형식을 고를 수 있습니다.

일시적인 공유 비밀번호

팀 안에서 짧은 기간만 공유하는 용도에 적합합니다. 채팅에 붙여 넣어도 잘못 읽는 일이 일어나기 어려운 형태가 됩니다.

패스프레이즈에 관한 용어

패스프레이즈
여러 단어를 이어 붙여 만드는 비밀번호입니다. 길이를 확보하기 쉽고, 기억이나 구두 전달이 쉬운 것이 특징입니다.
Diceware
주사위 등의 난수로 단어 목록에서 낱말을 고르는 방식입니다. 이 사고방식이 패스프레이즈 생성의 기초가 되고 있습니다.
엔트로피
추측의 어려움을 비트 수로 나타낸 지표입니다. 수치가 1 늘 때마다 무차별 대입에 필요한 시도 횟수가 두 배가 됩니다.
무차별 대입 공격
생각할 수 있는 조합을 처음부터 끝까지 시도하는 공격입니다. 패스프레이즈의 길이가 그대로 내성으로 이어집니다.
사전 공격
자주 쓰이는 단어나 과거에 유출된 비밀번호를 시도하는 공격입니다. 단어를 무작위로 고름으로써 맞설 수 있습니다.
Web Crypto API
브라우저가 갖추고 있는 암호 처리 구조입니다. 예측하기 어려운 난수의 생성에 이것을 쓰고 있습니다.

자주 묻는 질문

엄격한 구분은 없지만, 일반적으로 "비밀번호"는 무작위 문자열을, "패스프레이즈"는 여러 단어를 이어 붙인 외우기 쉬운 문자열을 가리킵니다. 강도가 비슷하다면 패스프레이즈 쪽이 사람이 외우고 입력하기 훨씬 쉬운 경향이 있습니다.

일반적인 계정이라면 4개 이상을 권장합니다. 금융 서비스나 암호화폐 지갑처럼 특히 중요한 용도라면 5~6개를 사용하면 전용 해독 장비에 대해서도 더 높은 내성을 가질 수 있습니다.

사전 공격은 "단어 하나"를 맞히는 공격이며, 이 도구가 대응하는 것은 "여러 단어의 조합"을 맞혀야 한다는 점입니다. 단어 목록이 공개되어 있더라도 단어 수가 늘어날수록 조합의 총수가 지수적으로 증가하므로 실용적으로 충분한 강도를 확보할 수 있습니다.

아니요. 생성 과정은 모두 브라우저 안에서 완결되며 어디로도 전송·저장되지 않습니다. 페이지를 닫거나 새로고침하면 표시 내용이 사라지므로, 사용하려면 그 자리에서 바로 복사해 안전한 곳에 보관하세요.
툴군

여담 ― "correct horse battery staple"이 바꾼 발상의 전환

Diceware 방식 자체는 1995년 Arnold Reinhold가 고안했지만, 이 방식이 널리 알려진 계기는 2011년 공개된 웹툰 xkcd 936화였습니다. 이 만화는 "Tr0ub4dor&3"처럼 복잡해 보이지만 외우기 어려운 비밀번호와, "correct horse battery staple"이라는 평범한 단어 네 개를 나열한 패스프레이즈를 비교하며, 후자가 훨씬 외우기 쉬움에도 무차별 대입 공격에 대한 이론적 강도는 오히려 더 높다는 점을 보여주었습니다.

이 역설은 정보 이론의 엔트로피 개념으로 설명됩니다. 각 자리의 문자 종류를 늘리는 것보다, 큰 단어 목록에서 여러 단어를 고르는 쪽이 선택 한 번당 더 많은 무작위 비트를 얻을 수 있습니다. 약 853개 단어로 구성된 목록이라도 단어 하나당 약 9.7비트의 정보량을 가지므로, 단어 4개를 조합하면 문자·숫자·기호를 섞은 8자리 비밀번호에 필적하는 강도가 됩니다.

다만 실무적인 trade-off도 있습니다. 패스프레이즈가 길어질수록 입력 실수가 늘어나기 쉽고, 같은 단어 목록을 재사용하면 그 목록이 유출되었을 때 탐색 공간이 사실상 해당 목록 크기로 줄어들어 버립니다. 중요한 계정에서는 이 도구로 생성한 패스프레이즈를 그대로 여러 곳에 재사용하기보다, 비밀번호 관리자를 위한 "외워야 할 소수의 마스터 비밀번호"로만 활용하는 것이 안전합니다.