首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果我同时签名和解密,RSA私钥泄漏可能吗?

如果我同时签名和解密,RSA私钥泄漏可能吗?
EN

Cryptography用户
提问于 2021-09-22 16:22:11
回答 1查看 430关注 0票数 0

如果攻击者控制签名请求,是否有可能泄漏私钥数据?

每个人都知道NE,因为它们是公开的。

我的服务器被设计来解密传入的请求,该请求是用公钥加密的。

对于具有SHA-2的解密数据,请返回该数据的RSA符号。

攻击者有可能知道我的私钥吗?

为了教育目的,我正在当地的工作坊里测试这一点。

对于传入的请求,我使用PKCS#1公钥加密消息;数据由我的私钥解密,它有SHA-2,所以我只需将签名数据签名并返回给客户端。

Python中的示例:

消息和密钥对生成:

代码语言:javascript
运行
复制
message = struct.pack('>IIII', 0, 0, 0, 1)
(pub, priv) = rsa.newkeys(512) //only for example, I know no one uses 512 bit

收到的请求:

代码语言:javascript
运行
复制
encrypted = pkcs1.encrypt(message, pub) 

服务器操作:

代码语言:javascript
运行
复制
decrypted = pkcs1.decrypt(encrypted, priv)
signature = pkcs1.sign(decrypted, priv, 'SHA-256')

然后返回答案。

EN

回答 1

Cryptography用户

发布于 2021-09-23 12:22:42

从示例中可以看出,加密和签名使用了PKCS#1中的一些填充模式;可能是RSAES-PKCS1 1 1-v1_5用于加密,RSASSA-PKCS1-v1_5使用SHA-256作为签名。

是否有可能泄露私钥数据?

据我们所知,no,它解密了一条消息并使用相同的密钥对其进行签名,这一事实不会泄露私钥数据。这与加密和签名所使用的确切填充方案无关:我们只是不知道,任何限制在没有侧通道的黑匣子中计算x\mapsto x^d\bmod n的RSA私钥D6的使用,都不可能泄漏私钥数据。

在可能发生的类似事件中:

  • 该实现可能通过侧通道泄漏私钥;例如运行在平台上的脚踏实地的特洛伊木马程序或差分功率分析。还有许多其他方面--恐惧的渠道。
  • RSAES-PKCS1-v1_5解密的实现可能是许多易受Bleichenbacher攻击变体的人的一部分。这可能允许将服务器转换为允许(有足够查询的)函数x\mapsto x^d\bmod n计算任意x的甲骨文,给出一个(非常慢的)相当于知道可与服务器通信的私钥的攻击者。

在学术上使用相同的公钥/私钥对进行加密和签名是不正确的,但是在PKCS#1中的四种加密和签名模式下,它不允许任何已知的攻击。安全链中最薄弱的环节是

  • 服务器本身的功能:它允许获取任何符合加密大小限制(117个字节)的签名。
  • 512位模数,可以被考虑在内(这在20世纪已经是可能的)。
  • 使用RSAES-PKCS1-v1_5解密未经认证的密文从公开。
票数 1
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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