虾扯蛋实验室 2018-03-21 02:54 采纳率: 0%
浏览 1338
已采纳

RSA等非对称加密解密的问题

已知明文为123
用私钥加密123得到密文456
(不使用数据填充,每次加密相同的明文都会得到相同的密文)
使用公钥解密456会得到123
我的问题是
已知公钥和明文123能计算出私钥加密生产的密文456吗

  • 写回答

3条回答 默认 最新

  • a1570853041 2018-03-21 03:49
    关注

    1、非对称公钥体制的两个用途:

    (1)做加密使用,保障数据的机密性。采用公钥加密,私钥加密。只有私钥才能解密,所以保障了数据的机密性。

    (2)做签名使用,进行身份认证。采用私钥加密,公钥解密。公钥公开,任何人都可以对数据进行签名验证,这时的私钥加密的数据只是作为一个
    只有拥有私钥的人才能生成的认证符号,所以能够进行对拥有私钥的人进行身份认证。签名原理如图:
    图片说明

    你的这个问题一个是第二种情况,用作数字签名使用的。已知公钥和明文是不能计算出密文的,一般商用的密钥长度都要求达到1000比特才能保证
    RSA密码的安全性,你举的例子太过简单,如果私钥过短,是可以使用穷举搜索攻击得出私钥,从而得到加密的密文的。假设我们在密钥长度达到安全性要求的前提下进行讨论,已知公钥和明文是不能计算出密文的。

    2.RSA算法的理论基础
    大数分解:两个大素数相乘在计算上是容易实现的,但将该乘积分解为两个大素数因子的计算量却相当巨大。
    素数检测:素数检测就是判定一个给定的正整数是否为素数。

    3.签名的过程:设计密钥,设计签名,验证签名
    (1)设计密钥
    1)随机产生两个不同的大素数p和q,计算n=p x q和ψ(n)=(p-1)(q-1);
    2)随机选择数e,满足1<e<ψ(n),且gcd(e,ψ(n))=1(e和ψ(n)的最大公约数为1),那么公钥就是(e,n);
    3)计算d,满足ed=1modψ(n),私钥就是d;
    (2)设计签名
    签名s=明文的d次方 mod n
    (3)验证签名
    取得发送方的公钥(e,n),明文=签名s的e次方 mod n;在将计算出来的明文和接收方收到的明文做对比,两者一致,说明签名有效。

    4 RSA算法的安全性依赖于大数分解困难性。
    原理:
    假设在知道公钥(e,n)的条件下,我们能进行大数分解,即找到两个不同的大素数p和q,使得n=p x q,那么ψ(n)=(p-1)(q-1)可以计算出来,
    那么由ed=1modψ(n),可以计算出私钥d;私钥d计算出来后,通过:密文s=明文的d次方 mod n可以计算出密文。

    5 结论:在密钥长度达到安全性的条件下,大数分解具有困难性,因此RSA公钥体制是安全的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 matlab appdesigner私有函数嵌套整合
  • ¥15 给我一个openharmony跑通webrtc实现视频会议的简单demo项目,sdk为12
  • ¥15 vb6.0使用jmail接收smtp邮件并另存附件到D盘
  • ¥30 vb net 使用 sendMessage 如何输入鼠标坐标
  • ¥15 关于freesurfer使用freeview可视化的问题
  • ¥100 谁能在荣耀自带系统MagicOS版本下,隐藏手机桌面图标?
  • ¥15 求SC-LIWC词典!
  • ¥20 有关esp8266连接阿里云
  • ¥15 C# 调用Bartender打印机打印
  • ¥15 我这个代码哪里有问题 acm 平台上显示错误 90%,我自己运行好像没什么问题