目录
为什么素数对密码学很重要?
密码学是基于数论的。根据算术基本定理,每个整数都可以由素数组成,0,1除外。所有数论中有很多涉及到素数的讨论。
例如大整数的质因数分解很困难,由此困难问题我们可以构造RSA算法。
又或者求解离散对数问题,也是基于有限循环群上的。在模素数的情况下定义乘法运算,就可以构成一个有限循环群了。根据求解离散对数的困难性,我们构造了DH密钥交换协议,Elgamal加密算法等。
椭圆曲线密码也涉及到素数,我们将曲线定义在有限域上,其中p是素数或者是素数幂。椭圆曲线密码的安全性取决于求解椭圆曲线上离散对数的困难性。当素数足够大的时候,曲线上的点就越多,此时攻击者想要破解离散对数问题需要搜索的空间就越大,ECC就越安全。
生日悖论和哈希碰撞的关系
生日悖论是指只需要23个人,就存在两个人同一天生日的概率为百分之五十,随着人数的增多,概率会不断增大,这违背了我们的直觉。
生日悖论可以运用于估计哈希函数找碰撞的复杂度。对于输出为n比特的哈希函数,根据生日悖论,只需要穷举次哈希值,就可以以高概率找到一组碰撞。
生日悖论暗示我们哈