首页
社区
课程
招聘
[求助]RSA的一个问题
发表于: 2005-2-22 16:43 4658

[求助]RSA的一个问题

2005-2-22 16:43
4658
rsa的算法一般都是这么描述的,但我其中的 m 如何用辗转相除法求出(就是具体的实现过程):

首先, 找出三个数, p, q, r,
其中 p, q 是两个相异的质数, r 是与 (p-1)(q-1) 互质的数......
p, q, r 这三个数便是 private key

接著, 找出 m, 使得 rm == 1 mod (p-1)(q-1).....
这个 m 一定存在, 因为 r 与 (p-1)(q-1) 互质, 用辗转相除法就可以得到了.....
再来, 计算 n = pq.......
m, n 这两个数便是 public key

如果谁有具体的 C 程序的RSA,谢谢共享~~:(

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 3686
活跃值: (1036)
能力值: (RANK:760 )
在线值:
发帖
回帖
粉丝
2
RSA源程序:
http://bbs.pediy.com/showthread.php?s=&threadid=8568
另外你很想深入研究RSA的具体实现的话,请参考看雪论坛精华中的<<RSA与大数运算>> 一文,实现的话可以参考miracl的内部实现
2005-2-22 17:14
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好复杂,我只想知道M的求法,我是用在LISP里的
2005-2-22 17:57
0
雪    币: 3686
活跃值: (1036)
能力值: (RANK:760 )
在线值:
发帖
回帖
粉丝
4
你想用LISP来实现RSA吗?如果不是的话可以直接用RSA Tool生成
模数n,私钥d.
2005-2-22 18:34
0
雪    币: 231
活跃值: (115)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
http://www.pediy.com/tools/Cryptography/RsaKit/RsaKit_V1.0.rar
看这个
2005-2-23 08:17
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢大家的帮助!!

她是这样求的:

vlong modinv( const vlong &a, const vlong &m ) // modular inverse
// returns i in range 1..m-1 such that i*a = 1 mod m
// a must be in range 1..m-1
{
  vlong j=1,i=0,b=m,c=a,x,y;
  while ( c != 0 )
  {
    x = b / c;
    y = b - x*c;
    b = c;
    c = y;
    y = j;
    j = i - j*x;
    i = y;
  }
  if ( i < 0 )
    i += m;
  return i;
}
________________________________________
但"将 a 表成 s 进位"是什么意思?能写成算法更好了!

编码过程是, 若资料为 a, 将其看成是一个大整数, 假设 a < n....
如果 a >= n 的话, 就将 a 表成 s 进位 (s <= n, 通常取 s = 2^t),
则每一位数均小於 n, 然後分段编码......

---------
还有 cnbragon  斑竹好好噢~
2005-2-23 15:56
0
雪    币: 3686
活跃值: (1036)
能力值: (RANK:760 )
在线值:
发帖
回帖
粉丝
7
看看论坛精华中的<<RSA与大数运算>>吧,它是和这个程序的配套说明
2005-2-23 16:09
0
游客
登录 | 注册 方可回帖
返回
//