公钥丢了,能用私钥重新算出来吗?
能。对常见的 ECC 和 RSA 来说,私钥里本身就包含(或者能确定地推出)算公钥所需的一切。反过来——从公钥算私钥——在设计上就是算不出来的。
椭圆曲线(ECDSA / Ed25519 / …)
公钥 = 私钥数字 × 生成点。只要私钥还在、曲线没搞错,随时都能把公钥重新算一遍。
RSA
RSA 私钥的结构里带着两个大素数(或者 CRT 参数),公钥的模数和指数可以直接拿到或者算出来。只拿着公钥,是推不出那两个素数的。
做不到的事
只有公钥或地址,没法还原私钥——这正是整个体系安全的前提。要是私钥和备份全丢了,这对密钥就彻底没了,就像至尊戒掉进了火山口。