| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2655 人关注过本帖
标题:关于RSA加密算法的实现.
取消只看楼主 加入收藏
fxzmodel
Rank: 2
等 级:新手上路
威 望:4
帖 子:50
专家分:0
注 册:2006-2-20
收藏
 问题点数:0 回复次数:8 
关于RSA加密算法的实现.
各位老大,最近我在研究RSA加密技术,在加密c=m^e mod n和解密 m=c^d mod n中涉及到大整数的指数运算.从理论上讲在加密过程中应该先求出明文(M)的E次幂然后在与N进行模数运算算出密文C.(解密过程与此类似)但是在实用化的过程中E一般选择费马数中的65537,要对一个数字进行如此大的指数运算,速度非常之慢.在解密过程中基于安全考虑密匙中的D长度更是高达128位以上.要对其进行指数运算几乎不可能.后来翻到一些相关的资料,将c=m^e mod n变形为c=(m mod n)1*(m mod n)2*.........(m mod n)e.效率有所提高但速度仍然非常缓慢,但是我看到别人写的RSA加密程序速度却很快.那位老大能够赐教一下,在实用话的RSA加密程序中这一过程一般是如何实现的.
搜索更多相关主题的帖子: RSA 算法 
2006-09-21 21:32
fxzmodel
Rank: 2
等 级:新手上路
威 望:4
帖 子:50
专家分:0
注 册:2006-2-20
收藏
得分:0 
我也搞不清楚是为什么.由于RSA加密涉及到大整数的运算,所以在源程序的设计的时候为了避免溢出,不能直接使用程序中整数类型的四则运算.必须另外设计大整数四则运算的函数.我所采用的方式是将数字以字符串的形式存储,然后对其进行逐位运算.不知道是不是这种设计思想自身的缺陷导致了低下的效率..我都晕了,一周了毫无头绪,不知道如何解决这个问题.
2006-09-21 21:53
fxzmodel
Rank: 2
等 级:新手上路
威 望:4
帖 子:50
专家分:0
注 册:2006-2-20
收藏
得分:0 
M是将明文转换为ASCII的值数字长度不会大于4位,而C为加密后的密文取决与E和D的长度.E的长度为5位,而D的长度至少会有128位.
2006-09-21 22:12
fxzmodel
Rank: 2
等 级:新手上路
威 望:4
帖 子:50
专家分:0
注 册:2006-2-20
收藏
得分:0 

?不是吧?N的值是两个长度在90位以上的大素数P,Q.作P*Q后的乘积.其长度高达180位左右.用常规的办法做MOD运算不要说运算就是存储也是一个问题呀.


PS:顺便说一下,如不特殊说明前面提到的数位长度均是指的10进值长度.

[此贴子已经被作者于2006-9-22 2:00:34编辑过]

2006-09-21 22:30
fxzmodel
Rank: 2
等 级:新手上路
威 望:4
帖 子:50
专家分:0
注 册:2006-2-20
收藏
得分:0 
呵呵,不好意思,前面关于N是我没有交代清楚.
2006-09-21 23:41
fxzmodel
Rank: 2
等 级:新手上路
威 望:4
帖 子:50
专家分:0
注 册:2006-2-20
收藏
得分:0 
NO,兄弟关于D的值是固定的,因为要保证D,E之间满足ed = kψ(n) +1.而由于E为公钥所以一般先确定E的值然后再通过E去求出D,然后抛弃P,Q.
2006-09-22 01:55
fxzmodel
Rank: 2
等 级:新手上路
威 望:4
帖 子:50
专家分:0
注 册:2006-2-20
收藏
得分:0 

不我是想写一个完整的RSA加/解密程序.关于速度举个例子计算14^65537 mod 15 耗时12秒. 够慢了吧? 想想看这只是模拟加密过程如果是解密几乎不能完成计算.

2006-09-22 10:56
fxzmodel
Rank: 2
等 级:新手上路
威 望:4
帖 子:50
专家分:0
注 册:2006-2-20
收藏
得分:0 

郁闷ing......我是用DELPHI做的程序.晕!难道真的就没有什么高效.快捷的算法了吗?

[此贴子已经被作者于2006-9-22 21:56:34编辑过]

2006-09-22 21:55
fxzmodel
Rank: 2
等 级:新手上路
威 望:4
帖 子:50
专家分:0
注 册:2006-2-20
收藏
得分:0 
此贴不能沉,求助仍然有效!
2006-10-04 23:12
快速回复:关于RSA加密算法的实现.
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016725 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved