如果攻击者可能每秒尝试100亿(1E10)个随机数。它的攻击持续500年( 500 *365*24*3600 = 1.5768E10秒)。
然后攻击者将尝试1E10*1.5768E10 = 1.5768E20组合。
现在假设我有1000亿(1E11)标记,它们是n位的随机数。
我要计算n
,以便攻击者发现任何令牌的概率大约为1/10亿(1E9)。
我相信答案是n = log2(1E11*1.5768E20/1E9)
= 73.74位。
问题:
n
是多少?我想我应该使用阶乘,我想这与生日悖论有关,但我的数学似乎逃避了我的理解。n
是什么?通过使用https://en.wikipedia.org/wiki/Universally_独一无二_identifier#Collisions中的公式(在WolphramAlpha中使用特定的数字),我得到:sqrt(2*(2^n)*ln(1/(1-(1/1E9))))=1.5768E20
。
Wolphram为n:n=163.088
求解。我想这是我的问题2的答案,我认为我对问题1的计算是正确的,但由于问题2是比较现实的情况,我对此感到满意,并将结束这个问题。
发布于 2017-11-02 22:57:10
虽然AES可以使用256位密钥,但它仍然只接受128位IV,而且AES块的宽度在2017年被认为是安全的。所以这将是一个很好的向导。
此外,有类型4 UUID使用122个不确定位,目前正在广泛使用。除了从我的推荐信中摘录这句话外,没什么可说的:-
因此,要有十亿的复制机会,就必须生成103万亿版本的UUID。
将大小增加到128位将需要8e14个令牌来处理相同的1(10亿)的碰撞风险。应该没事的。
https://crypto.stackexchange.com/questions/52775
复制相似问题