数字货币里的质数到底是怎么算出来的?比特币底层大质数从哪来
刷到有人问"数字货币里的质数怎么算",这问题我作为教了二十年密码学的人,得纠正一下——质数不是算出来的,是筛出来、验出来的。下面聊聊比特币里那些大质数到底怎么回事。
比特币的核心密码结构是secp256k1椭圆曲线,方程为y²=x³+7,所有坐标运算都在有限域Fp上进行,p就是一个256位的大质数数字货币质数怎么算,量级约10的77次方。你的公钥、私钥、签名,每一步模运算都落在这个质数划定的"舞台"里。

那这个p怎么来的?没人真去"算"。做法是随机取一个256位奇数当候选数字货币里的质数到底是怎么算出来的?比特币底层大质数从哪来,跑米勒-拉宾素性测试:用随机底数a验证a的(p-1)次方mod p是否等于1,重复40轮后,候选是合数的概率低于2的负160次方,直接当质数用。以太坊底层也是同一套逻辑。
为什么非得用这么大的质数? 有限域上离散对数问题的难度直接决定安全性。p越小,攻击者跑Pollard's rho算法所需步数越少。256位质数对应128位安全强度,暴力枚举要2的128次方步,按每秒百亿次也得跑到宇宙热寂。
所以回到最初那个问题:质数不是"算"的,是概率筛加验证得到的。你手机里那个钱包app每笔转账,背后都在做几百次mod p的大数乘法,质数就是那张隐形的桌子。