고1 공통수학 컴퓨터공학과 비밀번호는 왜 길수록 안전할까 — 경우의 수와 순열
공통수학1 · 경우의 수 · 컴퓨터공학
관련 성취기준
- [10공수1-03-01] 합의 법칙과 곱의 법칙을 이해하고, 적절한 전략을 사용하여 경우의 수와 관련된 문제를 해결...
- [10공수1-03-02] 순열의 개념을 이해하고, 순열의 수를 구하는 방법을 설명할 수 있다.
1비밀번호 규칙이 많을수록 왜 더 안전한지 문제 제기
스마트폰 잠금 화면의 PIN은 보통 숫자만 입력하는 짧은 형식인 경우가 많지만, 학교 사이트 비밀번호는 영문과 숫자를 함께 요구하는 경우가 많고, 게임 계정이나 메일 계정은 여기에 특수문자까지 포함하도록 안내하는 경우가 많다. 같은 ‘비밀번호’인데도 서비스마다 규칙이 다른 모습을 보며, 처음에는 단순히 운영 방식의 차이라고 생각했다. 그러나 입력 가능한 문자의 종류와 길이 조건이 조금만 달라져도 만들 수 있는 비밀번호 수가 크게 달라질 수 있다는 점에서, 이 차이는 편의성의 문제가 아니라 보안성의 차이와 연결된다고 판단했다.[1]
관찰한 규칙 차이를 정리하면 다음과 같았다.
| 서비스 유형 | 자주 보이는 규칙 예시 | 규칙 차이에서 생긴 궁금증 |
|---|---|---|
| 스마트폰 PIN | 숫자 6자리 | 숫자만 허용해도 충분히 안전한가? |
| 학교 사이트 | 영문+숫자, 8자리 이상 | 문자를 추가하면 경우의 수가 얼마나 늘어나는가? |
| 게임/메일 계정 | 영문 대소문자+숫자+특수문자, 8자리 이상 | 복잡한 조건이 실제 보안성 증가로 이어지는가? |

이 관찰을 바탕으로 탐구 질문을 두 가지로 좁혔다. 첫째, 문자 종류가 늘어나면 가능한 비밀번호 수는 얼마나 증가하는가? 둘째, 길이를 8자리에서 10자리로 늘리는 것과, 필수 포함 조건을 추가하는 것 중 어느 변화가 경우의 수 증가에 더 크게 작용하는가?처럼 변수는 ‘문자 집합의 크기’와 ‘길이’로 한정하였다. 막연히 ‘복잡하면 더 안전하다’고 말하는 대신, 실제로 계산 가능한 질문으로 바꾸어 보안 규칙을 수학적으로 해석하고자 했다.
교과서에서 배운 경우의 수, 순열, 조합은 단순히 문제집 속 배열 계산에 그치지 않고, 암호와 인증 방식에도 직접 연결된다. 특히 비밀번호는 각 자리에 어떤 문자를 넣을지 선택하는 과정이므로, 자리마다 가능한 선택 수를 세어 전체 경우를 계산할 수 있다. 교과서의 암호 관련 읽을거리에서도 보안 시스템이 순열·조합과 관련된다는 점이 제시되어 있었는데, 이를 보고 비밀번호 규칙 자체가 하나의 수학적 모델이 될 수 있음을 확인하였다. 즉, 안내문에 적힌 ‘영문, 숫자, 특수문자 포함’이라는 문장은 단순한 문장 규칙이 아니라, 가능한 문자열의 개수를 바꾸는 계산 조건이다.
따라서 이번 탐구에서는 비밀번호 정책을 몇 가지로 나누고, 각 정책에서 가능한 문자열 수를 직접 계산해 비교하려 한다. 특히 뒤의 섹션에서는 자리 수 결정 → 각 자리의 선택 수 계산 → 조건이 있으면 제외하거나 나누어 세기의 흐름으로 식을 세워 볼 것이다. 이를 통해 ‘규칙이 많다’는 표현을 감각적인 인상이 아니라 구체적인 수치 비교로 바꾸는 것을 탐구의 출발점으로 삼았다.
2곱의법칙·순열·조건부 경우 나누기 구조 정리

앞서 비밀번호 규칙 차이를 수학적으로 비교할 수 있다는 문제의식을 세웠다면, 실제 계산을 위해서는 어떤 개념을 어디에 적용할지 먼저 정리해야 한다. 비밀번호는 여러 자리에 문자를 배열하는 구조이므로, 공통수학1에서 배운 곱의법칙이 가장 기본이 된다. 예를 들어 숫자만 사용하는 4자리 비밀번호는 각 자리에 0부터 9까지 10개가 올 수 있으므로, 첫째 자리 10가지, 둘째 자리 10가지, 셋째 자리 10가지, 넷째 자리 10가지를 곱해 로 계산한다. 여기서 길이 은 자리 수, 각 자리의 선택 수 는 허용된 문자 종류 수를 뜻하며, 전체 경우의 수는 의 형태가 된다.
비밀번호는 겉으로 보면 순열과 비슷하지만, 교과서에서 배우는 ‘서로 다른 것을 한 번씩 나열하는 순열’과는 차이가 있다. 실제 비밀번호는 같은 문자를 여러 번 써도 되는 경우가 많아 중복 허용 배열로 보는 편이 더 정확하다. 예를 들어 ‘a1a1’ 같은 비밀번호는 일반적인 순열로는 설명하기 어렵지만, 각 자리를 독립적으로 고르는 방식으로는 자연스럽게 설명된다. 따라서 비밀번호 계산에서는 ‘서로 다른 문자 개를 한 번씩 배열’하는 문제보다, 자리마다 문자를 다시 선택할 수 있는 구조로 해석해야 한다.
조건이 없는 경우에는 곱의법칙만으로 충분하지만, ‘숫자를 최소 1개 포함’, ‘대문자를 반드시 포함’ 같은 조건이 붙으면 바로 세기가 복잡해진다. 이때는 전체 경우를 먼저 구한 뒤 조건을 만족하지 않는 경우를 빼는 여집합이 효율적일 수 있다. 예를 들어 영문 소문자와 숫자를 허용하는 8자리 비밀번호에서 ‘숫자를 1개 이상 포함’해야 한다면, 전체 에서 숫자가 전혀 없는 경우 을 빼는 식으로 접근할 수 있다. 반대로 조건 종류가 적고 자리가 짧으면 숫자가 1개인 경우, 2개인 경우처럼 경우를 나누어 세는 방법도 가능하다. 즉, 어떤 방법이 더 좋은지는 조건의 구조에 따라 달라진다.
이번 탐구의 계산 틀은 다음과 같이 정리할 수 있다.
| 단계 | 적용할 교과 개념 | 비밀번호 해석 |
|---|---|---|
| 1 | 자리 수 결정 | 전체 길이 을 정한다 |
| 2 | 곱의법칙 | 각 자리에 올 수 있는 문자 수 를 곱한다 |
| 3 | 순열과의 구별 | 중복 허용 여부를 확인하고 일반 순열과 구분한다 |
| 4 | 조건 검토 | 필수 포함 조건이 있으면 경우 나누기 또는 여집합을 쓴다 |
이 흐름은 뒤의 계산 섹션에서 직접 사용될 핵심 틀이다. 즉, 비밀번호 문제는 ‘자리 선택 → 문자 배치 → 조건 검토’의 순서로 해석해야 하며, 앞서 제기한 탐구 질문도 결국 이 구조 속에서 답할 수 있다. 따라서 다음 계산에서는 단순히 숫자를 대입하는 데 그치지 않고, 어떤 정책이 왜 곱의법칙으로 되고 어떤 정책이 왜 여집합이 필요한지까지 함께 설명할 것이다.
3인증 시스템 설계에서 경우의 수가 갖는 의미 분석
앞의 섹션 1에서 비밀번호 규칙 차이가 왜 수학적 질문이 되는지 문제를 세웠고, 섹션 2에서는 이를 계산하기 위한 곱의법칙과 조건부 경우 나누기 구조를 정리하였다. 이제 이 계산이 왜 실제 시스템 설계와 연결되는지 생각해 보면, 로그인 정책은 단순히 사용자를 번거롭게 만들기 위한 규정이 아니라 공격자가 시도해야 하는 후보의 범위를 넓히는 설계라고 볼 수 있다. 개발자 입장에서는 사용자가 입력할 수 있는 비밀번호 형식을 정하는 순간, 동시에 공격자가 추측해야 할 후보 목록의 크기도 정하게 된다.
컴퓨터공학에서 이를 탐색 공간의 크기로 이해할 수 있다. 예를 들어 같은 8자리라도 숫자만 허용하면 후보 공간은 작아지고, 영문 대소문자와 숫자, 특수문자까지 허용하면 후보 공간은 훨씬 커진다. 무차별 대입 공격은 이 공간 속 후보를 하나씩 시도하는 방식이므로, 경우의 수 증가는 곧 필요한 시도 횟수의 증가와 연결된다. 물론 실제 공격 속도는 시스템의 차단 정책, 해시 저장 방식, 시도 제한 등에 따라 달라지지만, 기본적으로 탐색 공간이 넓을수록 추측 난도가 올라간다는 점은 변하지 않는다.[2]
한국인터넷진흥원과 개인정보보호위원회의 비밀번호·인증 관련 안내를 읽어 보면, 공통적으로 길이를 충분히 확보하고 예측하기 쉬운 조합을 피하라고 권고한다. 이를 내 말로 바꾸면, 공식 기관의 규칙은 단순히 ‘특수문자를 넣어라’는 형식적 요구가 아니라, 길이와 다양성을 통해 추측 가능성을 낮추려는 정책 판단이라고 해석할 수 있다. 특히 비밀번호의 안전성을 볼 때는 표면적인 복잡함보다 실제로 가능한 후보 공간이 얼마나 커지는지가 중요하며, 이는 순열·조합으로 설명할 수 있는 부분이다.[4]
다만 수학적 계산만으로 실제 보안을 전부 설명할 수는 없다. 경우의 수는 정책이 만들어 내는 잠재적 규모를 보여 주지만, 사용자가 생일이나 반복 패턴처럼 예측 가능한 문자열을 선호하면 실제 보안 수준은 이론보다 낮아질 수 있다. 그럼에도 개발자가 정책을 설계할 때 경우의 수를 먼저 따지는 이유는, 최소한 시스템이 허용하는 후보 공간 자체는 충분히 넓혀 두어야 하기 때문이다. 따라서 이번 탐구의 계산은 실제 인증 시스템 설계의 1차 판단 근거로 의미가 있으며, 뒤의 섹션 4에서는 이러한 관점을 바탕으로 서로 다른 비밀번호 정책 4종의 경우의 수를 직접 비교해 보려 한다.