할 거면 제대로 하세요.
퍼즐 탐색에서 초보자가 가장 많이 낭비하는 건 GPU 시간이 아니라 잘못된 도구로 돌린 몇 주입니다. 공개키가 있는데 주소 완전탐색을 돌리거나, 범위를 잘못 잡거나, 압축/비압축을 헷갈리거나, 여러 대가 같은 구간을 중복해서 돌거나. 아래 생성기가 그걸 대신 판정해 줍니다.
탐색 명령어 생성기
퍼즐을 고르면 공개키 노출 여부를 보고 쓸 수 있는 도구부터 가릅니다. 공개키가 있으면 이산로그를 직접 푸는 Kangaroo·keyhunt BSGS, 없으면 주소를 만들어 대조하는 BitCrack·keyhunt address입니다. 못 쓰는 도구는 왜 못 쓰는지도 같이 적어 뒀습니다 — 이걸 반대로 골라서 몇 주를 날리는 경우가 제일 많습니다.
GPU를 여러 장 쓰거나 친구들과 나눠 돌릴 거면 작업 나누기를 켜세요. 도구마다 맞는 방식(BitCrack은 --share, keyhunt는 -r)으로 구간이 겹치지 않게 만들어 줍니다.
CUDA 빌드와 OpenCL 빌드가 별개의 바이너리입니다. 세 도구 중 AMD 에서 도는 건 BitCrack 뿐입니다.
--list-devices 로 확인할 수 있습니다.
셋 다 GPU마다 최적값이 다릅니다. 기본값으로 속도를 본 뒤 조정하세요.
한 대로 다 돌립니다. GPU를 여러 장 쓰거나 친구들과 나눠 돌릴 거면 켜세요 — 도구별로 맞는 방식(--share, -r)으로 알아서 만들어 줍니다.
공개키가 없는 퍼즐은 주소를 하나씩 만들어 대조하는 수밖에 없습니다. BitCrack 은 그걸 GPU에서 합니다. NVIDIA 라 CUDA 빌드(cuBitCrack)를 씁니다.
git clone https://github.com/brichard19/BitCrack cd BitCrack make BUILD_CUDA=1 # 윈도우는 BitCrack.sln 을 Visual Studio 로 열어 cuKeyFinder 프로젝트를 빌드하면 # cuBitCrack.exe 가 나옵니다. macOS 는 지원하지 않습니다.
./cuBitCrack -d 0 -b 288 -t 256 -p 1024 -c --keyspace 400000000000000000:7fffffffffffffffff --continue progress-71.txt -o found-71.txt 1PWo3JeB9jrGwfHDNpdGK54CRas7fsVzXU
- -b/-t/-p 는 GPU 마다 최적값이 다릅니다. 기본값으로 한 번 돌려 속도를 본 뒤 조정하세요.
- --continue 를 꼭 넣으세요. 껐다 켜도 진행 위치가 유지됩니다.
- 여러 대로 나누려면 위 '작업 나누기'를 켜세요. --share 로 겹치지 않게 분배합니다.
- 이 구간은 400000000000000000 ~ 7fffffffffffffffff 입니다.
소요 시간 · 성공 확률 계산기
장비를 얼마나 모아야 의미가 생기는지 직접 굴려보세요. 슬라이더를 움직이다 보면 두 가지가 보입니다 — 비트 하나 차이가 두 배라는 것, 그리고 공개키 노출 여부가 장비 1만 대보다 크다는 것.
퍼즐 번호 = 비트 수입니다. #71이면 71.
이 설정으로는 사람의 수명 안에 끝나지 않습니다. 비트를 낮추거나(더 쉬운 퍼즐), 공개키가 노출된 퍼즐을 고르거나, 장비를 자릿수 단위로 늘려야 합니다.
- · 공개키 미노출: 평균 2n-1번 시도하면 맞는다고 봅니다 (구간의 절반).
- · 공개키 노출: Pollard's Kangaroo의 기대 연산량 ≈ 2n/2.
- · 성공 확률은 균등분포 가정입니다. “오래 돌렸으니 곧 나올 차례”는 없습니다.