# 비밀번호 아이디어: 당신의 아이디어가 소용없는 이유

> 이름 더하기 연도, 글자를 숫자로 바꾸기, 강아지 이름, 자동차 번호, 키보드 훑기. 당신에게 떠오르는 아이디어가 곧 공격자가 가장 먼저 시도하는 목록이다. 하나씩 실제로 측정했다.

2026-09-04 · David Carrero · password.es
Original: https://password.es/ko/blog/bimilbeonho-aidieoga-sosoyongeopsneun-iyu/

---

끝없이 반복되는 검색어가 있다. **비밀번호 아이디어**. 이해가 간다. 입력란은 기다리고
있고, 뭔가는 지어내야 하고, 어떻게 하는지 아무도 알려준 적이 없으니까.

문제는 *아이디어*라는 말 자체가 이미 실패라는 점이다. 좋은 비밀번호는 좋은 아이디어가
아니다. **뒤에 아무 아이디어도 없는 비밀번호다.**

이건 글을 열기 위한 근사한 문장이 아니다. 공격은 말 그대로 그렇게 작동한다.

## 당신에게 떠오르는 아이디어 목록이 곧 그가 가장 먼저 돌리는 목록이다

사전 공격은 `aaaaaaaa`에서 시작해 위로 세어 올라가지 않는다. 이미 수백만 번 유출된
비밀번호에서 시작해, 사람 이름, 보통명사, 도시, 축구 클럽, 네 자리 연도로 이어진다.
그리고 그 토대 위에 규칙을 얹는다. 앞에 대문자, 뒤에 숫자나 `!`, `a`는 `@`로, `e`는
`3`으로, `o`는 `0`으로, 단어를 거꾸로, 단어를 두 번.

이 규칙들은 비밀도 아니고 새롭지도 않다. 수십 년째 문서로 남아 있고, 어떤 공격 도구든
기본으로 갖고 있다. 달리 말하면 **당신이 「비밀번호 아이디어」라고 부를 착상들의 목록은,
거의 그 순서 그대로, 당신을 공격하는 쪽의 설정 파일이다.**

여기서부터 모든 숫자는 이 집의 [검사기](/ko/checker/)에서 나온다. 검사기는 **빠른 해시를
상대로 한 오프라인 공격, 초당 10¹² 회 시도**를 가정한다. 결과 아래에 그렇게 적혀 있고,
그 전제 없이는 어떤 시간도 아무 의미가 없다. 모든 숫자는 직접 재현할 수 있다. 예를
입력하고 보면 된다.

## 첫 번째 아이디어: 당신의 이름과 태어난 해

`Minji1985`. 아홉 글자, 대문자 하나, 숫자 넷. 인터넷 절반이 요구하는 조건을 충족한다.

검사기는 `1985`에 **「연도나 날짜 같습니다」**를 붙이고, **1,0 × 10⁷ 회**를 내놓는다.
그 속도라면 여전히 *1초 미만*이다.

여기서 정직하게 짚어야 할 것이 있다. 검사기의 사전은 우리말 사전이라 로마자로 적은
`Minji`를 잡아내지 못한다. 그러니까 이 숫자는 **후하게 계산한 값**이다. 로마자 한국
이름 목록은 이미 존재하고, 그 목록을 가진 사람에게는 이것이 아홉 번의 결정이 아니라
두 번의 결정이다. 어떤 이름과 어떤 해.

## 두 번째 아이디어: 글자를 숫자로 바꾸기

이건 모두가 통한다고 믿는 잔재주이고, 가장 빨리 낡는 잔재주다.

`M1nji1985`는 **1,0 × 10⁷ 회**다. 조금 오른 게 아니라, 마지막 자리까지 앞의 숫자와
똑같다. **치환은 여기서 문자 그대로 아무것도 벌어주지 못한다.** 새 비밀번호를 만든 게
아니라, 공격자가 이미 계산에 넣어둔 예/아니오 질문 하나를 더했을 뿐이기 때문이다. 이
사람은 `i`를 바꿨는가, 안 바꿨는가.

얼마나 멀리 가는지 보고 싶다면 정석 예제를 넣어 보자. 대문자와 골뱅이와 0을 갖추고
잘 고민한 티가 나는 `P@ssw0rd`는 **17 회**에 무너진다. 열일곱. 두 손 손가락과 약간의
인내면 셀 수 있다. 이 경우 검사기는 「사전에 있습니다」라고 말하고, *글자를 숫자로 바꾼
것*이라는 꼬리표를 단다. 단어는 그대로 찾아낸 것이다.

## 세 번째 아이디어: 거꾸로 쓰기

`ijnim1985`도 **1,0 × 10⁷ 회**다. 역시 같은 숫자다.

뒤집기가 조금밖에 도움이 안 되는 게 아니다. **아무것도 바꾸지 못한다.** 단어를 뒤집는
것은 사전이 기본으로 갖고 있는 규칙 중 하나다. 검사기가 사전에서 찾아내는 경우에는
똑같이 찾아내고 똑같이 분류하며, *거꾸로 쓴 것*이라는 꼬리표만 덧붙는다.

반복도 마찬가지다. `MinjiMinji`는 **200,003 회**로 *떨어진다*. 글자를 두 배로 쳤는데
앞보다 나빠진다. 「일부를 반복합니다」 역시 이름이 붙은 패턴이기 때문이다.

## 네 번째 아이디어: 손가락으로 키보드 훑기

생각하기 싫을 때 사람은 키보드를 보고 모양을 따라간다. 그렇게 `qwerty123`,
`1qaz2wsx`, `1q2w3e4r`, `asdfghjkl`이 나온다.

의미가 없으니 무작위처럼 느껴진다. 하지만 키보드에는 고정되고 아주 좁은 기하가 있고,
그 위를 훑는 일이야말로 프로그램이 당신보다 잘하는 일이다.

- `qwerty123` → **273 회**.
- `1qaz2wsx` → **29 회**.

스물아홉. 이 비밀번호들은 너무 닳아서 키보드 규칙조차 필요 없다. 유출된 비밀번호 목록에
그 형태 그대로 실려 있고, 검사기는 「사전에 있습니다」 한마디로 처리한다.

## 다섯 번째 아이디어: 강아지, 그리고 절대 잊지 않는 날짜

`Toby2015!`는 이력을 가진 비밀번호다. 강아지 이름, 집에 온 해, 그리고 입력란을 달래기
위한 느낌표. **1,2 × 10⁸ 회**가 나오고, 그래도 여전히 *1초 미만*이다.

가장 흔한 반려동물 이름은 몇천 개 수준이고, 사람 이름과 같은 목록에 들어 있다. 끝의
`!`는 모두가 적용하는 규칙이 기여하는 만큼 기여한다. 즉 0이다.

기념일은 더 불편하다. `24121985` — 일, 월, 연 — 은 여덟 자리 숫자로 읽히지만, 검사기는
「날짜가 들어 있습니다」라는 꼬리표를 붙이고 **14,966 회**에 끝낸다. 이유는 달력에 있다.
날은 31, 달은 12, 그럴듯한 해는 한 세기 남짓. 천만 가지 조합처럼 보이는 여덟 자리가
실제로는 만 오천 정도다.

이것이 날짜의 함정이다. **길이는 주지만 불확실성은 주지 않는다.** 그리고 값이 매겨지는
것은 불확실성뿐이다.

## 여섯 번째 아이디어: 자동차 번호, 그리고 검사기가 볼 수 없는 것

`4521KDR`은 다른 경우이고, 잠시 멈춰 볼 가치가 있다.

여기서 검사기는 **「알려진 패턴을 찾지 못했습니다」**라고 말하고 **3,9 × 10¹⁰ 회**를
계산한다. 하지만 그 숫자에 **상한**이라는 표시를 단다. 바로 그 단어가 핵심이다. 당신의
패턴을 못 찾았을 뿐, 당신에게 패턴이 없다는 증명은 아니다. 그렇게 후하게 잡아도 시간은
여전히 *1초 미만*이다.

여기에 이해해야 할 간극이 있다. 검사기는 당신이 어떤 차를 타는지 모른다. 당신을 아는
사람, 당신의 인스타그램을 펼쳐 놓은 사람, 당신의 차량번호가 들어 있는 유출 데이터를 산
사람에게는 3,9 × 10¹⁰ 회가 필요 없다. 한 번이면 된다. **패턴이 없을 때 보이는 숫자는
낯선 사람의 무지를 재는 것이지, 당신을 찾아본 사람의 무지를 재는 것이 아니다.**

집 번지, 주민등록번호, 전화번호, 결혼기념일도 똑같다.

## 여섯 가지의 공통점

이 아이디어들 중 어느 것도 「덜 복잡해서」 실패하지 않는다. 모두 같은 이유로 실패한다.
**전부 자서전이기 때문이다.** 그리고 자서전은 맞힐 수 있다. 당신의 이름, 당신의 연도,
당신의 강아지, 당신의 차, 당신이 키보드를 훑는 방식. 그 결정 하나하나가 개인적이고
당신의 것처럼 느껴지고, 바로 그래서 누군가 이미 적어 놓은 짧은 목록에 속한다.

복잡함을 더해도 해결되지 않는다. *당신이* 적용하는 복잡함 또한 당신의 결정이고 역시
그 목록에 있기 때문이다. 그래서 `M1nji1985`는 한 자리도 벌지 못하고 `ijnim1985`도
마찬가지다.

숫자로 된 논증을 원한다면 [엔트로피 비트](/ko/blog/entropi-biteuran-mueosinga/)에 있다.
중요한 것은 당신이 *쓸 수 있었던* 비밀번호가 몇 개인가가 아니라, 당신의 취향에 관해
알려진 것을 모두 뺀 뒤 몇 개가 남는가다.

## 출구는 더 나은 아이디어가 아니라, 아이디어를 그만두는 것

그 목록에서 벗어나는 유일한 방법은 비밀번호가 당신 머리에서 나오지 않는 것이다.

[Diceware](/ko/blog/diceware-jusawi-bimilbeonho/)가 하는 일이 정확히 그것이다. 주사위
다섯 개를 굴리고, 그 숫자를 7,776개 단어 목록에서 찾아, 나온 것을 적는다. 한 번 굴릴
때마다 12.9비트이고, 그것은 진짜 12.9비트다. 주사위에는 취향도, 기억도, 당신의 출생
연도도 없기 때문이다. 여섯 단어면 약 77비트다.

그것을 검사기에 넣고 무엇이 달라지는지 보라. 주사위로 뽑은 평범한 여섯 단어는 「매우
약함」에서 **「매우 강함」**으로 올라가고, 시간은 더 이상 초로 재지 않는다. 정교해서가
아니다 — 정교하지 않다, 평범한 여섯 단어다 — **당신이 결정하지 않은 유일한 부분이기
때문이다**. 브라우저가 대신 굴려 주기를 원한다면 [생성기](/ko/)가 같은 추첨을 하고,
그러는 동안 비트 수를 보여 준다.

그러니 「비밀번호 아이디어를 달라」는 요청에 대한 정직한 답은 이렇다. 필요 없다, 오히려
너무 많다. 없는 것은 주사위 한 개다.

---

*출처: 이 글의 모든 숫자는 password.es의 검사기에서 나왔다. 검사기는 결과 아래에 자신의
모델을 밝힌다 — 초당 10¹² 회 시도, 오프라인 공격, 빠른 해시 — 그리고 각 예를
[/ko/checker/](/ko/checker/)에 입력하면 재현할 수 있다 · 패턴 분석 엔진은 Daniel Lowe
Wheeler(Dropbox)의 zxcvbn으로, USENIX Security 2016에서 「zxcvbn: Low-Budget Password
Strength Estimation」으로 발표되었다 · 인용한 치환·역순·반복 규칙은 사전 공격 도구가
기본으로 갖고 있는 규칙이다 · Arnold G. Reinhold, 「The Diceware Passphrase Home
Page」(1995), 7,776개 단어와 한 번 굴릴 때 12.9비트에 관하여.*
