RSA密码系统:原理、攻击与实践
1. RSA密码系统简介
1978年,Rivest、Shamir和Adleman引入了第一个实用且最流行的公钥密码系统——RSA密码系统。该系统基于分解大合数的困难性,下面对其进行简要描述。
- 密钥生成 :
- Bob精心选择两个大素数p和q,计算n = pq和φ(n) = (p - 1)(q - 1)。
- 选择一个加密密钥e < φ(n),使得gcd(e, φ(n)) = 1。
- 计算解密密钥d,使得ed = 1 (mod φ(n))。
- Bob的公钥是(n, e),私钥是d,明文空间是Zn。
- 加密过程 :Alice要加密消息m ∈ Z⋆n,使用Bob的公钥计算c = me (mod n),并将密文c发送给Bob。
- 解密过程 :Bob收到密文c后,通过计算m = cd (mod n)得到明文。
正确性证明 :由于ed = 1 (mod φ(n)),则ed = k×φ(n) + 1(k为整数),所以cd = med (mod n) = m1 + kφ(n) (mod n) = m(根据欧拉定理),方程ed = 1 (mod φ(n))被称为RSA方程。
注意事项 :一般将RSA密码系统的明文和密文空间设为Zn,但明文m必须是Z⋆n