私钥长度>公钥?

时间:2015-02-24 21:37:23

标签: encryption rsa private-key public-key

我正在使用openssl模块处理rsa私钥和公钥/加密/解密/等。但是一个问题仍然没有答案:为什么私钥通常(总是,我不知道)比公钥更长?

这有几个答案吗?

public and private key

这是我生成的公钥和私钥。

2 个答案:

答案 0 :(得分:4)

  

为什么私钥经常(总是,我不知道)比公钥更长?

答案详见PKCS 1(以及RFC 2437之类的朋友)。

公钥是{e, n}对,其中e是公共指数,n是模数。

其中一个私钥表示是三元组{e, d, n},其中e是公共指数,d是私有指数,n是模数。

n-tuple {e, d, n, p, q, dp, dq, qi}的其他私钥表示,其中e是公共指数; d是私人指数; n是模数; pqn的因素。

其余的是中国剩余定理,它允许加速签名(我相信)。 dp是p的指数,是一个正整数,e(dP) ≅ 1 (mod(p-1)); dq是q的指数,是一个正整数,e(dq) ≅ 1 (mod(q-1)); qi是CRT系数,小于p的正整数,q(qInv) ≅ 1 (mod p)

答案 1 :(得分:3)

RSA 私钥包含 RSA 公钥中的值,以及一些私有的值。此外,价值本身也更大。

公钥包含模数和公共指数 e ,它很短(大多数为3或65537)。另一方面,私钥包含私有指数 d e -1 (modφ( n ) )。根据φ( n ), d 可能比 e 大得多。

还有其他公钥算法,这是不同的。一些基于椭圆曲线的算法有一个大整数作为私钥(和组描述),公钥有一个大于整数的曲线点(和组描述)。