这种基于RSA的签名(带恢复)方案是否加密声音?

时间:2009-07-20 05:12:37

标签: cryptography signature

我正在实施一个简单的许可证文件系统,并且想知道我目前的实施方式是否存在任何错误。

消息数据小于密钥。我正在使用RSA,密钥大小为3072位。

许可证的颁发者生成要签名的消息,并使用直接的基于RSA的方法对其进行签名,然后应用类似的方法来加密消息。加密的消息和签名一起存储为许可证文件。

  1. Sha512留言。
  2. 使用私钥对哈希进行签名。
  3. 使用私钥对邮件进行签名。
  4. 连接并传输。
  5. 收到后,验证过程为:

    1. 使用公钥解密邮件
    2. 哈希消息
    3. 使用公钥解密文件中的哈希值,并与本地哈希进行比较。
    4. 到目前为止,实现工作正常,出现有效。

      我目前正在填充消息以匹配密钥大小,这可能是 一个糟糕的举动(我认为我应该使用PKCS填充算法,如1或1.5?)

      此策略似乎有效吗? 我有什么明显的缺陷或观点吗?

1 个答案:

答案 0 :(得分:3)

我注意到的主要缺陷:当您解密时,必须验证填充是否仍然存在。

(如果您事先知道消息长度,那么您可能可以使用自己的填充方案,但是如您所述,使用现有的方案可能仍然是一个好主意。)

我不确定你为什么要加密邮件本身 - 因为你已经注意到任何拥有公钥的人都可以对它进行解密,因此它不会添加除了混淆之外的任何内容。您也可以发送消息和encrypted-padded-hash。

我建议使用提供“签名消息”功能的高级库,例如cryptlibKeyCzar(如果可以的话)。与代码可能看到的相比,它们可以从更多的眼球中受益,并且可以处理所有笨重的填充问题以及类似问题。

相关问题