我有一个使用AES加密消息的软件,随机生成的AES密钥由接收者的公共RSA密钥加密。现在,当我向多个用户发送消息时......
发件人方:
消息由随机散列加密(sha256)AES KEY
然后,AES密钥会多次加密,并使用每个接收者的公钥附加到加密消息中。
邮件有[收件人号码,[加密密钥列表],加密邮件]
接收方:
获取接收者数量
循环通过附加的加密密钥并使用您的私有RSA解密。直到找到适合你的那个。这样当他/她解密密钥时,他们就会获得AES密钥。
3.使用AES密钥解密邮件。
知道密钥是base 64字符串,这意味着它以'='结尾,并且长度为256,因为sha
问题是: 我如何知道(如果我是接收者)使用我的私有RSA的解密密钥是否正确自动?
提前谢谢。
答案 0 :(得分:2)
两个问题:您描述的协议是固定的,还是可能以任何方式进行修改?如果它是固定的,你使用哪种填充方案用于RSA? PKCS#1 v1.5,OAEP还是根本没有?
如果协议可能被修改,您可以使用带有身份验证的密码模式,例如EAX,CCM或GCM。如果RSA密钥传输解密无声地失败,则经过身份验证的AES解密也会失败。
使用RSA-OAEP的变体进行密钥传输,提供“纯文本感知”,如下所述:http://www.rsa.com/rsalabs/node.asp?id=2346。
答案 1 :(得分:-1)
无法找到此加密邮件属于哪个接收方。
但你可以做的是尝试解密消息,如果解密成功那么那就是接收者