2015-02-24 193 views
0

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

有几个答案呢?

public and private key

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

+3

此问题似乎属于Stack Exchange网络中的其他站点。也许你应该试试[超级用户](http://超级用户。com /)或[信息安全堆栈交换](http://security.stackexchange.com/)。 – jww 2015-02-24 21:54:45

回答

2

RSA专用键包含在RSA公共密钥值,以及一些更值是私人。而且,价值本身更大。

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

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

+0

谢谢! 您有任何科学文章或其他资源可以向我解释这些价值是什么? – marshallino16 2015-02-24 21:58:57

+0

https://en.wikipedia.org/wiki/RSA_%28cryptosystem%29 – 2015-02-24 22:00:39

4

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

答案详见PKCS 1(以及像RFC 2437这样的朋友)。

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

一个私钥表示的是三重{e, d, n},其中e是公用指数,d是专用指数和n是模数。

其他私钥表示是n元组{e, d, n, p, q, dp, dq, qi},其中e是公开的指数; d是私人指数; n是模数;并且pq是因子n

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