视频字幕
传统的对称加密算法存在一个根本问题:密钥分发。Alice和Bob要进行安全通信,必须事先共享同一个密钥,但如何安全地传输这个密钥本身就是个难题。非对称加密算法巧妙地解决了这个问题,它使用一对相关的密钥:公钥可以公开分享给任何人,而私钥必须严格保密。这样就彻底解决了密钥分发的安全问题。
公钥和私钥是数学上相关的一对密钥。它们的核心特性是:用公钥加密的数据只能用对应的私钥解密,用私钥签名的数据只能用对应的公钥验证。在加密过程中,发送方使用接收方的公钥对明文进行加密生成密文,接收方使用自己的私钥对密文进行解密还原明文。在数字签名过程中,签名方使用自己的私钥对消息进行签名,验证方使用签名方的公钥来验证签名的真实性。
RSA算法的安全性基于大数分解的困难性。首先选择两个大质数p和q,在我们的示例中选择p等于3,q等于11。然后计算n等于p乘以q,得到33。接下来计算欧拉函数φ(n)等于(p-1)乘以(q-1),得到20。选择公钥指数e,要求e与φ(n)互质,我们选择7。最后计算私钥指数d,使得e乘以d模φ(n)等于1,通过扩展欧几里得算法可以得到d等于3。这样就完成了RSA密钥对的生成过程。
现在我们使用前面生成的密钥对来演示RSA的加密解密过程。公钥是(7, 33),私钥是(3, 33)。假设要加密的明文是2。使用加密公式C等于M的e次方模n,即2的7次方模33。首先计算2的7次方等于128,然后计算128模33等于29,所以密文是29。解密时使用解密公式M等于C的d次方模n,即29的3次方模33。计算29的3次方等于24389,然后24389模33等于2,成功恢复了原始明文。这个过程展示了RSA算法的核心:只有拥有私钥的人才能解密密文。
数字签名是非对称加密的重要应用,它能够提供身份认证、完整性保证和不可否认性。数字签名的过程是这样的:首先发送方对原始消息计算哈希值,然后使用自己的私钥对哈希值进行签名,生成数字签名。发送方将原始消息和数字签名一起发送给接收方。接收方收到后,使用发送方的公钥对签名进行验证,同时对收到的消息计算哈希值。如果验证结果与计算的哈希值一致,就说明消息确实来自发送方且未被篡改。这个过程确保了通信的安全性和可信度。