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

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条)

报告相同问题?

悬赏问题

  • ¥15 C# P/Invoke的效率问题
  • ¥20 thinkphp适配人大金仓问题
  • ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理