你每次打开 https 网站,服务器都在赌一件事:这个几百位的大数「大概率」是质数。它没法证明,只是把赌错的概率压到比中彩票还小。这就是米勒-拉宾素性测试——概率论给整个互联网加密打的地基。
分解一个 600 位的数,用尽全世界的算力也要跑到宇宙热寂。但你的手机造一对这样的质数只要几十毫秒。秘密在于:它根本不去证明,而是找一群随机「证人」投票。一票有罪就当场定罪,全票通过也只说「大概率是质数」。
选一个数字,然后一个个召唤随机「证人」(底数 a)。每位证人做一次快速运算:只要有一位喊「有罪」,这个数就铁定是合数,不用再问;如果证人都说「看着像质数」,它是质数的把握就越来越大——但永远差一点点到 100%。
证人只会说「看着像」或「抓到了」——放行靠人数堆概率,定罪只要一票。
费马测试更早也更简单,但有个致命死角:卡迈克尔数——一种能骗过费马所有互质证人的合数。561 就是最小的一个。下面用同一批证人,看两种测试谁被骗、谁识破。现场计算
卡迈克尔数:披着「质数」面具的合数。
生成 RSA 密钥的第一步就是找大质数。做法很暴力:随机摇一个大奇数,用米勒-拉宾测一遍,不是就再摇一个,直到摇中。选个位数,亲眼看它摇了多少次、丢了多少个合数。现场计算
放行一个数字时,误判概率的上界是 (1/4)k,k 是通过的证人数。拖动滑块,看这条线怎么跌下去,以及它什么时候比「被闪电劈中」「中彩票头奖」还小。
对照概率来源:单年被闪电击中约 1/1,222,000(美国国家气象局 NWS);双色球一等奖 1/17,721,088(红球 C(33,6)×蓝球 16,中国福利彩票官方赔率);可观测宇宙原子总数约 10⁸⁰(常见天体物理估计)。
把当前受审数字和证人投票结果复制带走,方便分享。
只要一个证人揭穿,这个数必定是合数,这个结论 100% 可靠,没有例外。
说「是质数」永远差一点点到 100%。但每多一位证人,误判上界就除以 4,很快小到可以忽略。
测几十轮后,误判概率比硬件本身出错还小。密码学要的不是绝对确定,而是「错到不可能发生」。