首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅使用RSA加密验证RSA签名

仅使用RSA加密验证RSA签名
EN

Cryptography用户
提问于 2015-09-02 21:18:27
回答 1查看 1.6K关注 0票数 2

我试图验证RSA签名的消息,但是,在该环境中我可以访问的API只有加密和解密。我想我理解使用公钥的验证和加密是相似的。实际上,运行以下代码似乎是有效的:

代码语言:javascript
复制
openssl rsautl -sign -in clear -inkey private_key.pem -out signed
openssl rsautl -encrypt -pubin -inkey public_key.pem -in signed -raw -hexdump

第二个命令将得到初始的清除,填充(然后,我只需要卸载并验证它是否符合清除)。然而,-raw是我遇到问题的地方。由于签名的消息是密钥的大小,所以我无法加密它( API会拒绝,如果省略-raw,openssl也会拒绝)。

我不知道该怎么做。我觉得我想做的应该是可能的。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2015-09-03 06:51:46

您尝试使用的API自动pads (可能是RSAES-PKCS1-v1_5填充)。相反,您需要它在签名验证期间验证和删除填充。

如果不能跳过填充,则不能使用API。试着找一个真正可以验证的库。你不应该自己编程RSA,但最终它只是一个算法。只要您能够访问密钥(最好是一个大整数数学库),您就应该能够自己执行RSA模幂和验证/删除填充。

你不能只是神奇地去掉11个字节,这些字节是在模幂之前添加到明文中的。OAEP会提供更多的支持。

您可以尝试使用公钥对签名进行解密,并希望API检测公钥并执行验证和解填充操作,但这是一次很长的尝试。请注意,如果无法验证填充,则应收到错误消息。

请注意,Diffie-Hellman还执行模幂运算.有时您可以使用DH功能对RSA签名进行“原始解密”。

票数 0
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/27892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档