在Python 3中使用RSA,需要签署一条消息(不对消息进行散列)

时间:2017-04-01 01:09:06

标签: python rsa digital-signature

Python 3 lib我正在使用:RSA stuvel

在此库中,sign函数首先生成一个哈希,然后对其进行签名。我可以通过任何方式让它在不先​​散列它的情况下签署消息吗?

或者任何其他可用的库也可以这样做吗?

1 个答案:

答案 0 :(得分:1)

有一个函数here: Package Crypto :: Package PublicKey :: Module RSA :: Class _RSAobj sign

但请注意,通常签名生成是通过散列进行扩展,由DER编码结构扩展,指示散列,然后将其填充并转换为数字以形成实际模幂运算的输入。这种方法只执行最后一步;你必须自己做其他的,并从安全角度注意它们是必需的

这是PKCS#1规范中指定的全部内容。请注意,这是一个棘手的问题,您可能希望从开源实现中复制它。或者你可以提供一个哈希,这是一个非常好的主意 - 首先哈希消息。

还有缩回的ISO / IEC 9796,它描述了带有消息恢复的签名,这是您可能会追求的。我没有直接在Python中看到实现。即使你找到它,也要确保在使用库之前你正在做什么。

祝你好运!