我希望这个问题有道理。但是,我要说我用MAKECERT.EXE创建一个证书:
makecert -r -sr LocalMachine -ss my -a sha256 -sky exchange -n "CN=Hello World"
现在让我说我在两台不同的(Windows)机器上运行它。从统计上看,两台不同机器上的证书具有相同公钥的可能性是多少?
如果这个问题没有意义,我会理解为什么它没有解释。
感谢。
答案 0 :(得分:2)
makecert
默认为1024位RSA密钥。e
= 65537。1e151
中两个素数相对较小的几率约为1。1e75
标记周围。
4.5e74
1.5e75
2.4e75
3.7e75
5.3e75
9.6e75
p < q
)那么我们得到:
5e150
* 1e151
〜= 5e301
不同的1024位RSA值n
。1e150
运行后1%的碰撞几率。3e150
5e150
8e150
1e151
2e151
每天所有~86000秒的每秒100万个密钥(1e6
),每天获得8.6e10
个密钥。要获得“百万分之一百分之一”的碰撞机会(1/1e8
),您需要超过1e136
天的计算时间。那是3e133
年。目前,宇宙被认为是1.4e10
岁。所以,你需要大约有2.3e123
个宇宙才能获得很高的机会(给予或接受几个宇宙)。
除非我们在CSPRNG状态冲突和VM回滚中建模(导致CSPRNG状态冲突),否则答案是:实际上是不可能的。