rsa算法的彻底剖析,无法写出注册机的算法(50分)

  • 主题发起人 主题发起人 rejoise
  • 开始时间 开始时间
R

rejoise

Unregistered / Unconfirmed
GUEST, unregistred user!
现在正研究rsa算法,原理简单,但有一处不明
在网上一篇文章中写到
密钥可通过以下方式得到:
p=17
q=11
e=7
e*d = 1 (mod (p-1)*(q-1))
7*d = 1 (mod 160)
e*d = 1 (mod (p-1)*(q-1))
7*d = 1 (mod 160)
使用Euclides算法将计算出d=23.
大虾请看,怎么会算出d等于23呢????
怎么不是1/7啊???请指教
 
RSA算法,是建立在大数的基础上
如128位的整数,在大数中寻找一些符合条件的数都很困难,
如果数太小,极短的时间就可以破解,
 
我知道是需要用大数的,上面只是简单的原理演示罢了,请给个解释,谢谢!
如果用大数,用上面的算法好象仍然算不出啊
算法高手请进!
 
easy:
for m=1 to MAXdo
解7*d=160*m+1;//m:integer
if d 是整数 then
exit;
end;
算出m=1时,d是整数23;d=(160*1+1)/7
关键是理解模的定义!
 
7*d = 1 (mod 160)
怎么会转变成以下等式了呢???
请vc3000指教!
for m=1 to MAXdo
解7*d=160*m+1;//m:integer
if d 是整数 then
exit;
end;
算出m=1时,d是整数23;d=(160*1+1)/7
7*23=1 mod 160吗 令人费解
d*79=1 mod 3220是不是转换成以下等式呢
for m=1 to MAXdo
解79*d=3220*m+1;//m:integer
if d 是整数 then
exit;
end;

请解释一下,为什么这么转换,1 mod 大数不是总是等于1吗?
 
d*79=1 mod 3220是转换成以下等式:
for m=1 to MAXdo
解79*d=3220*m+1;//m:integer
if d 是整数 then
exit;
end;
de mod x=1数学上就是写成de=1 mod x,没有理由。
 
在这里max是未知数,求出来的d不只是一个呀,d可是密钥啊,难道能是多个吗?
再问大虾,什么1024bit,256bit是什么意思,是指什么数字的位数吗?是十进制,
还是十六进制???
一般为了安全,p,q,e,d,n应该是取多少位数?是十进制,还是十六进制?
好象公钥是可以取常用值的,如65537等,不懂,请指教,谢谢
 
当然是最小的m了
二进制
p,q最少应为512位
找本密码学的书来看吧,不太容易说清楚。
 
多人接受答案了。
 
to vc3000:
可否看看我的问题 ?
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1522524
 
后退
顶部