2의 256승은 얼마? 78자리 계산값과 비트코인 개인키·AES-256이 안전한 이유

예전에 쓴 ‘2의 128승’ 글에 “그럼 2의 256승은 얼마냐”는 검색이 꾸준히 들어옵니다. 비트코인 개인키도 256비트, AES-256도 256비트라서 궁금해지는 숫자죠. 이번 글에서는 2의 256승을 직접 계산한 값과 읽는 법, 그리고 보안 일을 하는 입장에서 이 숫자가 실제로 무엇을 지켜 주는지(그리고 무엇은 못 지켜 주는지)를 정리했습니다.

2의 256승 계산 결과

2를 256번 곱한 값입니다. 파이썬에서 2**256을 입력하면 바로 나옵니다.

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936

  • 자릿수: 78자리
  • 지수 표기: 약 1.16 × 1077
  • 한글로 읽으면: 약 11억 5792만 무량대수

한자 수 단위는 무량대수(1068)가 마지막이라, 2의 256승은 무량대수를 넘어 “무량대수가 11억 개 넘게” 있는 크기입니다. 끝자리까지 풀어 쓰면 11억 5792만 0892무량대수 3731불가사의 6195나유타 … 9936처럼 이어집니다.

2의 거듭제곱 비교표

값 대략 보안에서 만나는 곳
232 약 43억 IPv4 주소 전체
264 약 1.8 × 1019 64비트 정수 범위
2128 약 3.4 × 1038 AES-128 키, IPv6 주소
2160 약 1.5 × 1048 비트코인 레거시 주소의 해시(HASH160) 공간
2256 약 1.16 × 1077 AES-256 키, 비트코인 개인키, SHA-256 출력

2의 128승과 2의 256승은 지수가 두 배 차이일 뿐이지만, 값으로는 2의 128승을 2의 128승 번 곱한 차이입니다. 비트 하나가 늘 때마다 경우의 수가 두 배가 된다는 점이 핵심입니다.

우주 원자 수보다 많다? 정확히 말하면

“2의 256승은 우주의 원자 수와 비슷하다”는 말을 자주 봅니다. 관측 가능한 우주의 원자 수는 보통 1078~1082개 정도로 추정합니다. 2의 256승(1077대)은 이 추정치보다 오히려 조금 작습니다. 그래서 “원자 수와 비슷한 규모”라고 말하는 게 정확합니다. 반면 2의 128승(1038대)은 원자 수에 비하면 아주 작은 수입니다.

무차별 대입으로는 왜 못 뚫나

공격자가 키를 하나씩 대입한다고 가정하고 계산해 봤습니다. 넉넉하게 1초에 1018개(100경 개)를 시도하는 가상의 장비를 놓겠습니다.

키 길이 전부 시도하는 데 걸리는 시간
128비트 약 1.1 × 1013년 (약 10조 년)
256비트 약 3.7 × 1051년

우주의 나이가 약 138억 년이니, 128비트만 해도 우주 나이의 수백 배가 걸립니다. 256비트는 비교하는 의미가 없을 정도입니다. 평균적으로는 절반쯤에서 맞힌다고 해도 결론은 같습니다.

비트코인 개인키는 정말 2의 256승개일까

비트코인 개인키는 256비트 숫자입니다. 다만 secp256k1 곡선 규칙 때문에 유효한 범위는 1부터 곡선의 차수 n-1까지이고, n은 2의 256승보다 아주 조금 작습니다(약 1.158 × 1077). 사실상 거의 모든 256비트 숫자가 개인키가 될 수 있다고 보면 됩니다.

여기서 보안 실무자로서 꼭 덧붙이고 싶은 점이 두 가지 있습니다.

  • 공개키에서 개인키를 역산하는 공격은 2의 256승이 아니라 약 2의 128승 수준의 작업이 필요한 것으로 봅니다(타원곡선 암호의 일반적인 안전성 평가). 그래도 위 표처럼 현실적으로 불가능한 수준입니다.
  • 실제 사고는 숫자가 아니라 사람과 기기에서 납니다. 엉성한 난수로 만든 키, 사진으로 찍어 둔 니모닉, 가짜 지갑 앱 입력처럼 키가 새는 경로가 진짜 위험입니다. 2의 256승은 “아무도 내 키를 추측할 수 없다”는 보장이지, “키를 유출해도 안전하다”는 뜻이 아닙니다.

AES-256과 양자컴퓨터

AES는 미국 NIST 표준(FIPS 197)으로, 키 길이 128·192·256비트를 씁니다. 양자컴퓨터 이야기가 나오면 늘 따라오는 게 그로버(Grover) 알고리즘입니다. 이론상 키 탐색을 제곱근 수준으로 줄여 256비트 키를 128비트 수준으로 낮춘다는 계산입니다.

그런데 NIST는 실제로는 그로버 알고리즘을 병렬로 돌리기 어려워 이점이 훨씬 작을 것이라 보고, AES-128도 수십 년간 안전하고 AES-192·256은 매우 오랫동안 안전할 것이라는 입장입니다. NIST의 양자내성 보안 등급에서도 AES-256 키 탐색은 가장 높은 5등급의 기준으로 쓰입니다.

오히려 양자컴퓨터가 위협하는 쪽은 RSA, 타원곡선(ECDSA 등) 같은 공개키 암호입니다. 쇼어(Shor) 알고리즘 때문인데, 비트코인 서명도 타원곡선이라 이 부분은 장기 과제로 논의되고 있습니다. 대칭키(AES)와 공개키(비트코인 서명)는 양자 위협의 크기가 다르다는 점을 구분해 두면 뉴스가 훨씬 잘 읽힙니다.

정리

  • 2의 256승 = 78자리, 약 1.16 × 1077, 한글로 약 11억 5792만 무량대수
  • 우주 원자 수 추정치(1078~1082)와 비슷하거나 조금 작은 규모
  • 256비트 키를 무차별 대입으로 찾는 것은 현실적으로 불가능
  • 위험은 숫자보다 키 관리(난수, 니모닉 보관, 가짜 앱)에서 생긴다

함께 보면 좋은 글