首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >X509 signatureValue尺寸

X509 signatureValue尺寸
EN

Stack Overflow用户
提问于 2020-04-23 15:50:34
回答 1查看 370关注 0票数 0

问题是,如果signatureValue是基于散列的,它为什么这么大?假设签名算法是sha256RSA。按照以下步骤,它不应该更小吗?

  1. tbsCertificate中计算SHA256哈希。输出=> 256位.
  2. 用RSA私钥签名256位散列.输出=> 256位?

但是如果你看到signatureValue的大小,它可能有2048年,4096,更大?比特。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-23 17:09:05

签名大小不取决于用于散列签名数据的散列算法。它只取决于键的大小。

RSA签名基于模幂,即sig = m ^ d mod N,其中:

  • m是signed
  • d私有指数的消息(其大小为N / 2,即RSA 2048).
  • N modulus
  • sig签名值

的1024位)。

对于这样的计算,最终结果是剩余的m ^ d结果除以模数(粗略地说,RSA密钥大小)。md是相当大的值,当你一个接一个地加电时,这个值将是巨大的,并且不适合偶数长度,这就是为什么使用最后一个mod操作的原因。你可以看到,没有像“散列”这样的术语。有时(当使用非常小的值时),结果值大小可能小于模数大小。在这种情况下,填充签名值以匹配模数长度。

从原始签名中可以推断出RSA密钥大小,但不能推断嵌入在签名中的哈希算法,这就是为什么签名包含非对称算法和哈希名称(如sha256RSA ),否则,必须将哈希算法存储在消息的某个位置。由于组合(不对称算法和哈希算法)是有限的和相当小的,所以很好地为这种组合分配唯一的OID。

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

https://stackoverflow.com/questions/61391468

复制
相关文章

相似问题

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