首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果公钥不能解密密码文本,那么私钥怎么能解密?

如果公钥不能解密密码文本,那么私钥怎么能解密?
EN

Security用户
提问于 2015-07-17 17:53:57
回答 1查看 788关注 0票数 3

我理解公钥密码学中的“公共”部分。而不是“私人”部分。

例如,假设我们的公钥是%7 (模块7)。要加密的信息是22。

我们知道22 %7=1

这里,1是加密的消息。

公钥工作的原因是,尽管知道公钥(%7)和加密消息(1),但我不能确认原始消息是22。

因此,这就引出了一个问题,私钥是如何确定原始消息是22的?

EN

回答 1

Security用户

回答已采纳

发布于 2015-07-17 18:37:52

您所提供的不是加密方案,您只需取一个数字并将其修改为7。这不可能是加密方案,因为有多个“消息”将产生相同的“密码文本”,例如:

  • 消息22生成密码文本22 %7=1
  • 消息29产生相同的密码文本29 %7=1
  • 消息36产生相同的密码文本36 %7=1
  • 。。。

所以你的问题是:

私钥是如何确定原始消息为22的?

这并不是因为对于密码文本"1",有无限多可能的原始消息。

你所拥有的看起来有点像RSA,所以我猜你读了一些关于RSA的东西,并且正在努力解决这个数学问题。有一个很好的简单的这里样本计算,您可以尝试通过。

要更详细地描述RSA的数学,您可以转到RSA维基百科页面

编辑:在评论中你说:

如果一个模(公钥)产生的结果不能反向工程,那么私钥如何能够做到这一点?

好的,让我们来看看RSA的例子。

  • 你选择两个素数,让我们取p= 3,q= 11
  • 计算n为n=p*q=3* 11 = 33
  • 计算φ(n) = (p-1)*(q-1) =2* 10 = 20
  • 你选择一个公共指数e,使得1
  • 您选择一个私有指数d,使(d * e) %φ(n) =1.d=3工作,因为(3 * 7) % 20 = (21) % 20 =1

现在您的公钥是(7,33),(e,n),您的私钥是(3,33),(d,n)。

好的,现在假设您想加密明文消息"22",就像在您的问题中一样。加密计算是: m^e %n= c,其中m是原始消息,c是密文,所以22^7 % 33 = 22 (heh,这是一个巧合),所以加密消息是"22“。

现在,拥有私有指数d的人可以通过计算c^d %n= m来解密密文,这是我们的例子22^3 % 33 = 22。

票数 6
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/94254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档