생일 역설
생일 역설 또는 생일 문제는 무작위로 모인 23명의 그룹에서도 적어도 두 사람의 생일이 같을 확률이 50%를 넘는다는 것입니다. 57명이면 99%입니다.
역설
사람들에게 파티에 손님이 몇 명 있어야 생일이 같은 두 사람이 있을 가능성이 높은지 물으면, 대부분 365의 절반인 180명쯤이라고 답합니다. 진짜 답은 23명이고, 이때 확률은 50.7%입니다. 손님이 57명이면 99%입니다. 이것을 역설이라고 부르는 것은 모순이어서가 아니라, 우리의 직관과 너무나 크게 어긋나기 때문입니다.
직관이 틀리는 이유
방 안에서 우리는 무의식적으로 자신을 기준으로 생각합니다. 나와 생일이 같은 사람이 있을 확률은 얼마일까? 1년이 365일이니 그 확률은 작습니다. 하지만 이 역설은 특정한 한 사람과 일치하는지가 아니라 방 안에서 만들 수 있는 모든 쌍에 관한 것입니다. A와 B, B와 C, A와 C 등입니다. 23명이면 서로 다른 쌍을 253개 만들 수 있고, 어느 쌍이든 생일이 같을 수 있습니다.
쌍은 제곱으로 늘어난다
n명은 n × (n − 1) / 2쌍을 이룹니다. 10명은 45쌍, 23명은 253쌍, 57명은 1,596쌍, 100명은 4,950쌍입니다. 각 쌍의 생일이 같을 확률은 1/365이므로, 253쌍이면 생일이 같은 쌍이 평균 253/365 ≈ 0.69쌍입니다. 인원을 두 배로 늘리면 쌍은 대략 네 배가 되고, 그래서 생일이 같을 확률이 급격히 올라갑니다.
단계별 계산
가장 쉬운 방법은 아무도 생일이 같지 않을 확률을 구해 100%에서 빼는 것입니다. 첫 번째 사람은 아무 날이나 차지합니다. 두 번째 사람이 첫 번째 사람과 생일이 같지 않을 확률은 364/365입니다. 세 번째 사람이 앞의 두 사람과 다를 확률은 363/365이고, 이런 식으로 계속됩니다. 23명이면:
365/365 × 364/365 × 363/365 × … × 343/365 ≈ 49.3%
모두의 생일이 다를 확률이 49.3%이므로, 그 여사건인 '생일이 같은 사람이 적어도 한 쌍 있음'의 확률은 100% − 49.3% = 50.7%입니다.
나와 생일이 같은 사람
누군가 여러분과 생일이 같을 확률은 다른 질문입니다. 나머지 n − 1명은 각각 364/365의 확률로 여러분의 생일을 비켜 가므로, 누군가 여러분과 생일이 같을 확률은 1 − (364/365)ⁿ⁻¹입니다. 23명이면 겨우 5.9%이고, 50%를 넘으려면 다른 사람이 253명 있어야 합니다. 23명 그룹의 253쌍 중 여러분이 포함된 쌍은 22쌍뿐입니다.
제곱근 법칙과 생일 공격
똑같이 일어날 수 있는 값이 N개라면, 약 1.2 × √N번 뽑은 뒤에 중복이 생길 가능성이 높아집니다. √365 ≈ 19이고, 1.2 × 19 ≈ 23입니다. 이것은 컴퓨터 보안에서 아주 중요합니다. 공격자는 생일 공격으로 암호학적 해시가 같은 두 입력, 즉 충돌을 찾습니다. 예를 들어 디지털 서명을 위조하기 위해서입니다. 생일 역설 덕분에 필요한 시도 횟수는 직관이 말하는 것보다 훨씬 적어서, 128비트 해시라면 2¹²⁸번이 아니라 약 2⁶⁴번입니다. 그래서 SHA-256 같은 현대 해시는 출력이 깁니다.
PictorX에서 살펴보기
생일 역설을 열면 23명의 그룹이 한 명씩 원 위에 모입니다. 새로 온 사람은 이미 있는 모든 사람과 선으로 이어지고, 설명 문구가 쌍의 수를 셉니다. 사람들의 생일은 달력 위로 떨어지고, 생일이 두 개 이상 겹친 날이 밝게 빛납니다. 아래에는 그 인원수에 대한 계산과, 테스트한 그룹 중 생일이 같은 사람이 있었던 비율이 나란히 나오고, 차트는 모든 인원수에 대해 생일이 같은 두 사람이 있을 확률과 나와 생일이 같은 사람이 있을 확률을 보여 줍니다. 사람을 한 명씩 추가하거나, 2명에서 366명까지 고르거나, 초당 최대 10,000개 속도로 최대 100,000개 그룹을 테스트하거나, 모든 인원수를 테스트하며 점들이 곡선을 그려 가는 모습을 지켜보세요.
자주 묻는 질문
생일 역설이란 무엇인가요?
겨우 23명인 그룹에서도 두 사람의 생일이 같을 확률이 50%를 넘어 50.7%나 된다는 놀라운 사실입니다.
왜 23명이면 충분한가요?
23명은 253쌍을 이루고, 어느 쌍이든 생일이 같을 기회이기 때문입니다. 우리는 자신이 포함된 22쌍만 세는 경향이 있습니다.
확률이 99%가 되려면 몇 명이 필요한가요?
57명입니다. 70명이면 확률은 99.9%이고, 366명이면 생일이 같은 사람이 반드시 있습니다. 날짜가 365일뿐이기 때문입니다.
생일 공격이란 무엇인가요?
생일 역설을 이용해 암호학적 해시를 공격하는 방법입니다. 가능한 해시 값이 N개일 때 무작위 입력 약 √N개 중에는 해시 값이 같은 두 개가 있을 가능성이 높으므로, 주어진 해시 하나와 일치시키려 할 때보다 훨씬 빨리 충돌을 찾을 수 있습니다.
실제 생일로 하면 결과가 달라지나요?
거의 달라지지 않습니다. 실제 생일은 1년에 완벽히 고르게 퍼져 있지 않으며, 고르지 않게 퍼져 있으면 생일이 같을 가능성이 조금 늘어납니다. 4년에 한 번 오는 2월 29일은 거의 차이를 만들지 않습니다.
시도해 볼 준비가 되셨나요?
브라우저에서 PictorX를 엽니다. 설치가 필요 없고 시작하는 데 신용 카드가 필요하지 않습니다.
생일 역설 해 보기