现代密码学:从算术到信息安全与隐藏
1. RSA加密算法
RSA公钥加密算法由Ron Rivest、Adi Shamir和Leonard Adleman在1978年发明。该算法允许通信双方无需事先协商共享密钥,从而避免了密钥分发问题。实际上,英国政府通信总部(GCHQ)的Clifford Cocks早在1973年就独立开发出类似方案,但直到1997年才解密。
在Alice向Bob发送消息前,Bob需要完成以下准备工作:
1. 选择两个大质数p和q,计算N = p * q 以及 Φ(N) = (p - 1) * (q - 1)。由于只有Bob知道p和q,所以只有他能进行这些计算。
2. 选择一个与Φ(N)互质的小整数e,并计算e在模Φ(N)下的乘法逆元d,即满足e * d ≡ 1 (mod Φ(N))。
此时,(N, e)是Bob的公钥,可公开;(N, d)是Bob的私钥,需保密。通信流程如下:
1. 加密阶段 :Alice使用Bob的公钥(N, e)对明文M进行加密,得到密文C = M^e (mod N)。
2. 传输阶段 :Alice将密文C发送给Bob。
3. 解密阶段 :Bob使用私钥(N, d)对密文C进行解密,恢复出明文M = C^d (mod N)。
下面通过一个具体例子说明:
假设Bob选择p = 5,q = 11,则N = 55,Φ(N) = 40。他选择e = 7(因为gcd(e, Φ(N)) = 1),并计算出d = 23(满足e * d = 161 ≡ 1 (mod
超级会员免费看
订阅专栏 解锁全文
1148

被折叠的 条评论
为什么被折叠?



