Cryptography 识别您自己的消息RSA

Cryptography 识别您自己的消息RSA,cryptography,rsa,aes,sha256,Cryptography,Rsa,Aes,Sha256,我有一个使用AES加密消息的软件,随机生成的AES密钥由接收方的RSA公钥加密。现在当我向多个用户发送消息时 发送方: 消息由随机散列(sha256)AES密钥加密 然后多次加密AES密钥,并使用每个接收方的公钥将其附加到加密消息中 该消息具有[接收者编号,[加密密钥列表],加密消息] 接收端: 获取接收器的数量 循环通过附加的加密密钥,并使用您的专用RSA进行解密。直到你找到你想要的。这样,当他/她解密密钥时,他们就会得到AES密钥 3.使用AES密钥解密消息 知道密钥是以64为基数的字符串,

我有一个使用AES加密消息的软件,随机生成的AES密钥由接收方的RSA公钥加密。现在当我向多个用户发送消息时

发送方:

  • 消息由随机散列(sha256)AES密钥加密

  • 然后多次加密AES密钥,并使用每个接收方的公钥将其附加到加密消息中

  • 该消息具有[接收者编号,[加密密钥列表],加密消息]

  • 接收端:

  • 获取接收器的数量

  • 循环通过附加的加密密钥,并使用您的专用RSA进行解密。直到你找到你想要的。这样,当他/她解密密钥时,他们就会得到AES密钥

  • 3.使用AES密钥解密消息

    知道密钥是以64为基数的字符串,这意味着它以“=”结尾,并且由于sha,长度为256

    问题是: 我如何知道(如果我是接收者)使用我的私有RSA解密的密钥自动正确


    提前谢谢。

    无法找到此加密邮件属于哪个收件人


    但是您可以尝试解密消息,如果解密成功,那么这就是接收方

    无法找到此加密消息属于哪个接收方


    但是,如果解密成功,您可以尝试解密消息,这就是接收者。有两个问题:您描述的协议是固定的,还是可以以任何方式修改?如果它是固定的,您对RSA使用哪种填充方案?PKCS#1 v1.5、OAEP还是根本没有

  • 如果协议可能被修改,您可以使用带有身份验证的密码模式,例如EAX、CCM或GCM。如果RSA密钥传输解密以静默方式失败,那么经过身份验证的AES解密也会失败

  • 对密钥传输使用RSA-OAEP的变体,以提供“纯文本感知”,如下所述:


  • 两个问题:您描述的协议是固定的,还是可以以任何方式进行修改?如果它是固定的,您对RSA使用哪种填充方案?PKCS#1 v1.5、OAEP还是根本没有

  • 如果协议可能被修改,您可以使用带有身份验证的密码模式,例如EAX、CCM或GCM。如果RSA密钥传输解密以静默方式失败,那么经过身份验证的AES解密也会失败

  • 对密钥传输使用RSA-OAEP的变体,以提供“纯文本感知”,如下所述:


  • 如果你想得到一个有用的回答,你必须编辑问题并使其更清楚。正确的问题并不清楚。当您向收件人发送邮件时,收件人如何知道您的AES密钥?当您的私人RSA密钥从未使用您的公共RSA密钥加密时,您如何使用您的私人RSA密钥解密密钥?感谢您的提示,我已经编辑了Q,希望它现在清楚
    AES密钥然后被多次加密,并使用每个接收者的公共密钥附加到加密消息中。
    -我们应该如何解释这一点?如果有三个收件人的公钥分别为P_1、P_2和P_3,您是附加ENC(ENC(aes_密钥,P_1)、P_2、P_3)还是附加ENC(aes_密钥,P_1)、ENC(aes_密钥,P_2)和ENC(aes_密钥,P_3)?
    ENC(aes_密钥,P_1)、ENC(aes_密钥,P_2)和ENC(aes_密钥,P_3)
    如果您想得到有用的回答,您必须编辑问题并使其更清晰。正确的问题并不清楚。当您向收件人发送邮件时,收件人如何知道您的AES密钥?当您的私人RSA密钥从未使用您的公共RSA密钥加密时,您如何使用您的私人RSA密钥解密密钥?感谢您的提示,我已经编辑了Q,希望它现在清楚
    AES密钥然后被多次加密,并使用每个接收者的公共密钥附加到加密消息中。
    -我们应该如何解释这一点?如果有三个收件人的公钥分别为P_1、P_2和P_3,您会附加ENC(ENC(aes_密钥,P_1)、P_2、P_3)还是附加ENC(aes_密钥,P_1)、ENC(aes_密钥,P_2)和ENC(aes_密钥,P_3)?
    ENC(aes_密钥,P_1)、ENC(aes_密钥,P_2)和ENC(aes_密钥,P_3)
    ,RSA加密密钥结构应该包括密钥id(例如公钥的64位散列)之类的内容,以便很容易识别您想要的RSA加密密钥。我可以使用
    PKCS#1v1.5
    OAEP
    您在这里的建议是什么?\\您说的话听起来很有趣,但我的应用程序是在本地机器上运行的,我们仍然不想通过任何类型的网络使其工作。当我阅读时,如果我完全理解;在这种情况下不能使用CCM。[目前为止]如果只使用解密的返回值来查找用于您的加密密钥,则常规RSA-OAEP可能没有问题。不过,如果您能够更详细地描述您的确切安全需求和威胁场景,可能会有所帮助。您是否只需要保密,或者还需要身份验证和完整性?顺便说一句,GregS绝对正确地认为RSA加密密钥应该与密钥id配对,以便收件人更容易找到正确的加密密钥。您可能还应该做一些其他事情,但这取决于您确切的安全需求。例如,您是否确定您使用的发送机制确实需要保密性(AES加密),但不需要身份验证或不可否认性(如证明消息来自特定发件人的数字签名)?此外,RSA加密密钥结构应包括密钥id之类的内容(例如,公钥的64位散列)这样识别哪个RSA加密密钥是为您准备的就很容易了。我可以使用
    PKCS#1 v1.5
    OAEP
    您在这里的建议是什么?\\您所说的听起来很有趣,但我的应用程序在本地机器上运行,我们仍然不想通过任何类型的