我有一个广播系统。发送者知道要发送什么,接收者就知道发送者发送了什么。现在,发送方将用自己的私钥签署消息,接收方将使用提供的公钥进行验证。
现在,所有接收者都将拥有相同的公钥,而发送方将拥有一个用于消息签名的受保护的私钥。
键在很长一段时间内是不会改变的。所以发送者和接收者最终将拥有永恒的相同的钥匙。
哪种加密方法适用于此用例,以确保没有其他人能够签署消息并发送给接收者?
发布于 2016-11-30 21:57:21
这个问题有很多混淆:
现在,您在您的问题中遗漏了接收方的密钥对。这使得无法为接收方加密消息,因为您无法确定试图与您联系的实体的身份。您仍然可以使用Diffie-Hellman密钥协议来建立一个秘密密钥,以防止被动攻击,但该方案将无法安全地抵御主动攻击。
公钥通常不受攻击保护。例如,RSA公钥指数通常设置为65537,因此处理模数的任何人只需一次猜测即可猜出公钥。公钥操作通常也不受公钥泄漏的保护。因此,任何要求公钥必须是秘密的方案都是建立在流沙上的。
您需要向接收方提供共享密钥或具有可信任公钥的密钥对,以创建安全方案。
更新后的更新似乎只请求消息身份验证和完整性。这可以使用任何安全的数字签名格式来执行。大密钥大小的RSA和PKCS#1 v2.1pss填充可能是最好的选择。
虽然密钥旋转总是比较可取的,但是一个足够大的密钥对可能是足够安全的,除非量子计算机开始扩展得很好。目前,QC安全算法并不完全标准化,因此在这方面您没有太多的选择。ECDSA也可以使用。
为此最好使用现有的容器格式。通常建议使用CMS作为协议。
https://crypto.stackexchange.com/questions/41938
复制相似问题