| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 2178 人关注过本帖
标题:请大侠帮忙:RSA加密算法
取消只看楼主 加入收藏
Crocodile_JX
Rank: 5Rank: 5
等 级:职业侠客
帖 子:161
专家分:335
注 册:2010-9-13
收藏
得分:0 
回复 14楼 BlueGuy
RSA算法,主要过程如下:
取两素数p和q 。(保密)
计算n=p*q 。(公开)
计算t=(p-1)*(q-1) 。(保密)
取加密密钥e,要求e与t互素。 (公开)
取解密密钥d,要求d*e % t = 1。 (保密)

设消息为数M (要求M <n)
加密过程:c=(M^e) % n   (中间那里不是等号,他的意思是 c-M^e 被 n 整除 )
解密过程:m=(c^d) % n    (这里也是,中间那里不是等号,他的意思是 m-c^d 被 n 整除 )

则有m==M
2010-11-30 14:04
Crocodile_JX
Rank: 5Rank: 5
等 级:职业侠客
帖 子:161
专家分:335
注 册:2010-9-13
收藏
得分:0 
回复 16楼 我是西瓜
无法解密 是因为 在算 c 的 d 次方的时候 数据太大了。超出了整型的取值范围。有时候用 unsigned long  都不够存!
2010-11-30 18:24
Crocodile_JX
Rank: 5Rank: 5
等 级:职业侠客
帖 子:161
专家分:335
注 册:2010-9-13
收藏
得分:0 
你取的 c 和 d分别是多少?
2010-11-30 18:40
Crocodile_JX
Rank: 5Rank: 5
等 级:职业侠客
帖 子:161
专家分:335
注 册:2010-9-13
收藏
得分:0 
回复 21楼 Kabie
unsigned long high_exp(unsigned long c,unsigned long d,unsigned long n) /*计算a 满足 a≡c^d(mod n)*/
{
  unsigned long e,f;
  f=c%n;
  while(d!=1)
  {
    e=c*f;
    f=e%n;
    d--;
  }
  return f;
}
这个是我的朋友给我的代码。他不解释,让我自己去折磨。都没有看明白呢。数学不好啊。其实我想弄明白如何才可以满足大数计算的
2010-12-01 16:27
Crocodile_JX
Rank: 5Rank: 5
等 级:职业侠客
帖 子:161
专家分:335
注 册:2010-9-13
收藏
得分:0 
回复 24楼 pangding
所以只要求 f^d 则必有 f^d ~ c^d (mod n)
而实际上,f^d 也不用求,只要能求 f^d % n 就行了。/*这一步为什么可以这样呢*/
c = kn + f  /*这一步也看不懂呢...嘻嘻。。。请大侠再说详细一点吧。我的数学领悟能力太差!谢谢哦~*/
e = cf = knf + f^2
e % n = f^2 % n
这就得到了 f^2 % n,往后继续迭代出 f^d % n 就行了。
2010-12-01 22:12
Crocodile_JX
Rank: 5Rank: 5
等 级:职业侠客
帖 子:161
专家分:335
注 册:2010-9-13
收藏
得分:0 
所以只要求 f^d 则必有 f^d ~ c^d (mod n)
而实际上,f^d 也不用求,只要能求 f^d % n 就行了。/*这一步为什么可以这样呢,还没有看懂*/
c = kn + f  /*这一步看懂了...嘻嘻。。。~*/
e = cf = knf + f^2
e % n = f^2 % n
这就得到了 f^2 % n,往后继续迭代出 f^d % n 就行了。
2010-12-01 23:23
Crocodile_JX
Rank: 5Rank: 5
等 级:职业侠客
帖 子:161
专家分:335
注 册:2010-9-13
收藏
得分:0 
回复 27楼 pangding
谢谢...感激不尽啊! 你的数学很好,厉害。
千言万语不知道该怎么谢谢你呢。让我学到了很多很多...谢谢!
2010-12-02 21:00
快速回复:请大侠帮忙:RSA加密算法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017450 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved