公钥密码学:原理、风险与密钥生成
1. 公钥密码学基础
公钥密码学使用两个密钥来解决加密问题,一个用于加密(公钥),一个用于解密(私钥),这是一种非对称密码体制。与之相对,使用相同密钥进行加密和解密的密码体制,如许多传统密码,是对称密码体制。
使用公钥加密的消息只能用对应的私钥解密。即使有人获取了公钥,也无法读取原始消息,因为公钥不能用于解密。公钥可以公开共享,而私钥必须严格保密。
例如,Alice 想给 Bob 发送消息,她获取 Bob 的公钥并使用它加密消息。Bob 收到加密消息后,用自己的私钥解密。如果 Bob 要回复 Alice,他获取 Alice 的公钥进行加密,只有 Alice 能用私钥解密回复。
我们将实现的公钥密码基于 RSA 密码体制,它由 Ron Rivest、Adi Shamir 和 Leonard Adleman 在 1977 年发明。RSA 算法使用数百位长的大素数,通过复杂的数学运算生成公钥和私钥。
2. 教科书 RSA 的风险
基于 RSA 的程序(教科书 RSA)虽然技术上正确实现了 RSA 算法,但存在被攻击的风险。例如,使用伪随机数生成函数会使密码体制变得脆弱,Rabin - Miller 素性测试也不能保证完全正确。因此,要确保文件安全,应使用专业的加密软件。
3. 认证问题
公钥密码体制虽然能保证消息的机密性,但在认证方面存在问题。例如,收到一封自称是 Emmanuel Goldstein 的邮件并附带公钥,无法确定发送者是否真的是他,可能是间谍机构伪装。
对称密码体制在交换密钥时可以确认对方身份,而公钥加密不需要
超级会员免费看
订阅专栏 解锁全文
1315

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



