当前位置: 首页 > 知识库问答 >
问题:

RSA私钥是否小于公钥?

罗昊明
2023-03-14

当我用OpenSSL生成RSA密钥对时,似乎私钥(私有指数)总是小于公钥(模)。它是由RSA设计的吗?

共有2个答案

仲孙阳
2023-03-14

不,这对密码本身并不重要。(查看维基百科rsa的工作原理)。也许它是这样实现的,但对于algo来说它不是必须的

孙永嘉
2023-03-14

这不是要求,但没有理由大于模量:

私有指数d由公共指数e和模n计算,以满足:

ed ≡ 1 mod φ(n)

现在,如果我们假设<代码>d

ed' ≡ 1 mod φ(n)

因此d'也是一个有效的私有指数,并且由于φ(n)

由于较大的私有指数需要更多的存储空间,并且(至少在初始实现中)会使解密速度变慢,因此最小的私有指数是最合适的。

 类似资料:
  • 我使用命令“ssh-keygen-t rsa”创建了一个没有密码的公钥,我打算将其用于github,但我错误地发送了公钥和私钥...... 这到底意味着什么?

  • 我看到钥匙和mModulas是相等的,有人知道吗?

  • 并且我将这个函数称为用RSA公钥加密DSA密钥的函数:

  • 我一直在阅读一些RSA文献和堆栈溢出问题,但我没有得到明确的答案。 仅给定一个RSA私钥模和私钥指数,这是我所拥有的全部(也足够用于所有密码相关操作),我能得到相关的公钥模和公钥指数吗? 另外,我是否可以仅用这两个参数获得私钥的编码形式?我在java中尝试了以下方法(java不是实际的请求),但是支持它的OpenSSL引擎失败,错误为:04000090:RSA例程:openSSL_internal

  • 主要的问题是,我对C相当陌生,OpenSSL留档对我来说不够清晰,我尝试过使用读和写rsa键到C中的pem文件,但我不太明白。例如,函数如何创建私有和公共?而从何而来?pcszPassphrase的意义是什么? 我会解释,好像这是某种伪代码,这就是我想做的,粗体部分是我不知道如何做的: 生成私钥和公钥作为十六进制缓冲区(客户端) 基本上,我知道如何处理AES加密/解密和通信协议,反正他们已经实现了

  • (我正在用MAC) 我的id_rsa以 但我希望一开始 我已将我的身份证发送给rsa。发布给服务器管理员以获得对服务器的访问权,因此我不想生成新密钥。 > 有什么方法可以将我的id_rsaopenssh私钥转移到RSA私钥吗?(请指挥。) 如果我可以传输,我是否还需要传输id_rsa。酒吧(请发命令。)看来是我的错。pub没有像id_rsa这样的头,所以我不确定是否也应该传输它。 非常感谢。