RSA加密算法对字符串加密(C++语言)看见你之前回答过这个问题,可不可以把源代码给我? 10

 我来答
df20070608
2011-05-06
知道答主
回答量:16
采纳率:0%
帮助的人:6.1万
展开全部
我来说几句没代码的吧,另外我是搞JAVA的!
RSA是不对称的加密算法,涉及到一对密钥:公钥和私钥,公钥是公开的,别人想给我发送信息就用公钥进行加密,私钥是自己独有,收到别人发送的密文,就用私钥进行解密。
生成公钥与私钥
选择一对不同的、足够大(是后面的n大于消息数)的素数p、q,计算n=p*q,f(n)=p*q。
找一个与f(n)互质的数e,计算d,让d*e模f(n)=1(打不出同余符号,就是让d*e与1模f(n)结果一样)。
公钥(e,n),私钥(d,n)
设明文为M,
加密:密文=M的e次方 mod n
解密:明文=密文的d次方 mod n
例子:取p=5、q=11。
n=55,f(n)=40,
去e=3
d=27,
公钥(3,55),私钥(27,55)
对字符串 “FLY”加密,先将按A-1,B-2……,z-26将其数字化,得到6,12,25
6的3次方mod55=51,
12的3次方mod55=23,
25的3次方mod55=5,
密文51,23,5
解密:
51的27次方mod55=6,
23的27次方mod55=12
5的27次方mod55=25,

基本思路就这样,不过实现过程会涉及到大数,推荐一个算mod的方法:
(A+B)的n次方对C取模,设A mod C=0,那么(A+B)的n次方mod C=B的n次方mod C,
以上面51的27次方mod55为例:
51的27次方=51的3次方的9次方=132651的9次方,132651=2411*55+46,
那么51的27次方mod55=(2411*55+46)的9次方mod55=46的9次方mod55,
以此类推,上式继续=97336的三次方mod55=41的三次方mod55=6;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式