私钥长度 > public 密钥?

Private key length > public key?

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

这个有几个答案吗?

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

RSA 私钥包括 RSA public 密钥中的值,以及更多的值私有。而且,数值本身更大。

public 键包含 modulus 和 public 指数 e,它很短(主要是 3 或 65537)。另一方面,私钥包含私钥指数 de−1 (mod φ(n)).根据 φ(n),d 可能比 e.

大得多

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

why private key are often (are always, i don't know) longer than public key ?

答案详见PKCS 1 (and friends like RFC 2437).

public 键是对 {e, n},其中 e 是 public 指数,n 是模数。

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

另一个私钥表示n元组{e, d, n, p, q, dp, dq, qi},其中e是public指数; 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).