私钥长度字节

hs2*_*s2d 42 cryptography rsa private key

所以即时生成2048 RSA密钥对.但是当我查看私钥时,长度只有1232字节.这与2048有什么关系,还是2048只是模数大小?

Tho*_*nin 60

RSA密钥的大小以位表示,而不是以字节表示.2048位是256字节.

裸骨RSA私钥包含两个整数,模数(一个大的复合整数,其长度,以比特 "RSA密钥长度")和私有指数(另一个大整数,通常具有与模数相同的大小) ).然而,模数和私有指数具有一些内部结构,并且知道关于该结构的细节允许更快的实现(大约4倍).因此,RSA私钥通常包含更多数据.

即,如果模数是n并且是两个素数pq的乘积,那么私钥包括:

  • 模数n(2048位密钥为256字节)
  • 公共指数e(小,通常为65537,即可以编码为3或4个字节)
  • 私有指数d(约256字节)
  • 因子pq(每个128字节)
  • d减少模p-1(128字节)
  • d减少模q-1(128字节)
  • 1/q mod p(q modulo p的倒数; 128字节)

总共大约1160个字节.然后编码有一些开销,因为所有这些整数的长度可能略有不同(例如,没有什么真正要求pq具有完全相同的大小;而且,e可能大于那个).标准结构使用ASN.1,这意味着在这里和那里有一些额外的字节.将结构包装成更大的结构也是很常见的,该结构也将密钥标识为RSA的密钥.1232字节与以PKCS#8格式编码的2048位RSA密钥兼容.

有关RSA的详细信息,请查看PKCS#1.