已知明文为123
用私钥加密123得到密文456
(不使用数据填充,每次加密相同的明文都会得到相同的密文)
使用公钥解密456会得到123
我的问题是
已知公钥和明文123能计算出私钥加密生产的密文456吗
RSA等非对称加密解密的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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公钥体制是安全的。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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%,我自己运行好像没什么问题