通行证 | 帐号: 密码: 注册 | 登录
网站地图| 免费获取| 鐠佺儤鏋冩禒锝囨倞
免费论文网


閼奉亜濮╅崠锟� 濡€冲徔 閺堢儤顫� 閻㈤潧鐡� 闁矮淇� 閸斻劎鏁� 閼昏精顕㈢挧鍕灐 瀹搞儳鈻肩粻锛勬倞 闁叉垼鐎虹挧鍕灐 閺冨懏鐖剁粻锛勬倞 瀹搞儰绗熷銉р柤 閻㈢喓澧垮銉р柤 缂佹瑦甯撳纾嬬カ閺傦拷 鐟楀潡妫€涙€璍C 閸樺棗褰剁€涳拷 娑撳褰礟LC
閸楁洜澧栭張锟� 鐠愩垹濮� 娴兼俺顓� 濞夋洖绶� 鐞涘本鏂� 閻椻晝鎮� 閻椻晜绁︾挧鍕灐 閻㈤潧鐡欓崯鍡楀 閸掓儼宓傚銉р柤 閸栧懓顥婂銉р柤 閸︾喐婀銉р柤 閺夋劖鏋$粔鎴濐劅 濮瑰顕㈢懛鈧挧鍕灐 濞喲冾潒姒┊LC 閻㈤潧甯囩悰锟� 閺夊彞绗匬LC
鐠侊紕鐣婚張锟� 閸栨牕浼� 閺佹壆鏁� 瀹搞儱鏅� 妞嬬喎鎼� 瀵扮柉顕� 閸ュ€熼敜鐠у嫭鏋� 娴滃搫濮忕挧鍕爱 閺佹瑨鍋涚粻锛勬倞 娴溿倝鈧艾浼愮粙锟� 鐢倸婧€閽€銉╂敘 閸楁澘鍩涘銉р柤 閺堣櫣鏁告稉鈧担鎾冲 閺佺増甯剁挧鍕灐 閸欐ḿ鏁哥粩锟� 閺傚洤瀵叉禍褌绗�

  • 网站首页|
  • 论文范文|
  • 修改降重|
  • 职称论文|
  • 合作期刊|
  • 论文下载|
  • 计算机论文|
  • 外文翻译|
  • 免费论文|
  • 原创论文|
  • 开题报告论文
搜索
鏁欒偛绠$悊鍘熷垱璧勬枡  瀛﹀墠鏁欒偛鍘熷垱璧勬枡  蹇€熼檷閲�  灏忓鏁欒偛璧勬枡  姹夎瑷€鏂囧

当前位置:免费论文网 -> 免费论文 -> 计算机论文 -> RSA文件加密原理及代码实现(三)
计算机论文| ASP设计| Delphi| VB设计| JSP设计| ASP.NET设计| VB.NET| java设计| VC| pb| VS| dreamweaver| c#.net| vf| VC++| 计算机论文范文| 论文下载| 自动化论文
路鐢靛瓙鍟嗗姟鍘熷垱姣曚笟璁烘枃
路娉曞涓撲笟鍘熷垱姣曚笟璁烘枃
路鍦熸湪宸ョ▼鍘熷垱姣曚笟璁烘枃
路宸ュ晢绠$悊涓撲笟鍘熷垱璁烘枃
路鐢垫皵鑷姩鍖栧師鍒涙瘯涓氳鏂�
路姹夎瑷€鏂囧涓撲笟鍘熷垱璁烘枃
路浼氳涓撲笟鍘熷垱姣曚笟璁烘枃
路璁$畻鏈烘妧鏈師鍒涙瘯涓氳鏂�
路浜哄姏璧勬簮涓撲笟鍘熷垱姣曚笟璁烘枃
路甯傚満钀ラ攢涓撲笟鍘熷垱璁烘枃
路淇℃伅绠$悊涓撲笟鍘熷垱姣曚笟璁烘枃
路瀛﹀墠鏁欒偛涓撲笟鍘熷垱璁烘枃
路鏁欒偛绠$悊涓撲笟鍘熷垱璁烘枃
路灏忓鏁欒偛涓撲笟鍘熷垱璁烘枃
路搴旂敤蹇冪悊瀛︿笓涓氬師鍒涜鏂�
路鑻辫涓撲笟鍘熷垱璁烘枃
路鎾煶涓庝富鎸佸師鍒涙瘯涓氳鏂�
路琛屾斂绠$悊涓撲笟鍘熷垱璁烘枃
路骞挎挱鐢佃缂栧鍘熷垱姣曚笟璁烘枃
路鎽勫奖涓撲笟鍘熷垱姣曚笟璁烘枃
路骞垮憡瀛︿笓涓氬師鍒涙瘯涓氳鏂�
路鏂伴椈瀛︿笓涓氬師鍒涙瘯涓氳鏂�
路鏂囧寲浜т笟绠$悊鍘熷垱姣曚笟璁烘枃
路瑙嗚浼犺揪璁捐鍘熷垱姣曚笟璁烘枃
路琛ㄦ紨涓撲笟鍘熷垱姣曚笟璁烘枃
路鍔ㄧ敾涓撲笟鍘熷垱姣曚笟璁烘枃
路褰曢煶鑹烘湳鍘熷垱姣曚笟璁烘枃
路鎶ょ悊涓撲笟鍘熷垱姣曚笟璁烘枃
路閫氫俊宸ョ▼鍘熷垱姣曚笟璁烘枃
路閲戣瀺涓撲笟鍘熷垱姣曚笟璁烘枃

RSA文件加密原理及代码实现(三)

RSA文件加密原理及代码实现(三)  
 在flex_unit的存储功能基础上,将其派生,得到vlong_value,在vlong_value中实现四则运算函数,并实现强制转换运算符unsigned,以方便大数类型和普通整数的互相赋值。当大数被强制转换为unsigned时,将取其最低四字节的值。四则运算实现的原理十分简单,都是按最基本的算术原理实现的,四则运算过程的本质就是按一定数制对数字的计算,比如相加,就是低位单元对齐,逐单元相加并进位,减法同理。而乘除法和取余也都是按照竖式运算的原理实现,并进行了必要的优化。虽然实现了四则运算函数,但是若是程序里的运算都要调用函数,显得烦琐而且看起来不美观,所以我们另写一个类vlong,关联(Associate,即使用vlong_value类型的对象或其指针作为成员)vlong_value,在vlong重载运算符。这样,当我们操作vlong大数对象的时候,就可以像使用一个简单类型一样使用各种运算符号了。之所以将vlong_value的指针作为成员而不是直接构造的对象,也是为了提高执行效率,因为大型对象的拷贝要消耗不少机器时间。
 2. 大数幂模与乘模运算•Montgomery幂模算法
 在实现了vlong类型后,大数的存储和四则运算的功能都完成了。考虑到RSA算法需要进行幂模运算,需要准备实现这些运算的方法。所以写一个vlong的友元,完成幂模运算功能。幂模运算是RSA 算法中比重最大的计算,最直接地决定了RSA 算法的性能,针对快速幂模运算这一课题,西方现代数学家提出了很多的解决方案。经查阅相关数学著作,发现通常都是依据乘模的性质,先将幂模运算化简为乘模运算。
 通常的分解习惯是指数不断的对半分,如果指数是奇数,就先减去一变成偶数,然后再对半分,例如求D=,E=15,可分解为如下6个乘模运算。
 
  
 
 归纳分析以上方法,对于任意指数E,可采用如图2-4的算法流程计算 。
 
 图2-4 幂模运算分解为乘模运算的一种流程
 按照上述流程,列举两个简单的幂模运算实例来形象的说明这种方法。
 ① 求的值
 开始  D = 1     P = 2 mod 17 = 2     E = 15
 E奇数  D = DP mod n = 2  P = PP mod n = 4    E = (E-1)/2 =7
 E奇数  D = DP mod n = 8  P = PP mod n = 16    E = (E-1)/2 =3
 E奇数  D = DP mod n = 9  P = PP mod n = 1    E = (E-1)/2 =1
 E奇数  D = DP mod n = 9  P = PP mod n = 1    E = (E-1)/2 =0
 最终D = 9 即为所求。
 ② 求的值
 开始  D = 1     P = 2 mod 17 = 2     E = 8
 E偶数  D = 1     P = PP mod n = 4    E = E/2 =4
 E偶数  D = 1     P = PP mod n = 3    E = E/2 =2
 E偶数  D = 1     P = PP mod n = 9    E = E/2 =1
 E奇数  D = DP mod n = 9  P = 不需要计算     E = (E-1)/2 =0
 最终D = 9 即为所求。
 观察上述算法,发现E根据奇偶除以二或减一除以二实际就是二进制的移位操作,所以要知道需要如何乘模变量,并不需要反复对E 进行除以二或减一除以二的操作,只需要验证E 的二进制各位是0 还是1 就可以了。同样是计算,下面给出从右到左扫描二进制位进行的幂模算法描述,设中间变量D,P,E的二进制各位下标从左到右为u,u-1,u-2,…,0。
 Powmod(C,E,n)
 {
         D=1;
         P=C mod n;
         for i=0 to u do
           {
                if(Ei=1)D=D*P(mod n);
              P=P*P(mod n);
         }
    return D;
 }
 有些文献将上述算法称为平方乘积二进制快速算法,例如参考文献中的《基于RSA算法的一种新的加密核设计》,其实这种算法本质上和图2-4的流程完全一致,只是把根据指数奇偶分开的减一和除以二合并成对指数二进制各位的判断而已。在本软件的代码中采用直接扫描vlong二进制各位的办法。
 剩下的问题就是乘模运算了。提高乘模运算的速度是提高模幂运算速度的关键。一般情况下,n是数百位乃至千位以上的二进制整数,用普通的除法求模而进行乘模运算是不能满足速度的要求的。为此,Montgomery在1983年提出了一种模加右移的乘模算法(主要著作发表于1985年),从而避免了通常求模算法中费时的除法步骤。本软件仅仅是应用Montgomery(蒙哥马利)算法,算法的具体推导证明需要颇多数论知识,不在本文的讨论范围内,如需了解可参见蒙哥马利的相关著作。下面简单描述RSA中常用的Montgomery(蒙哥马利)算法供参考理解源程序。
 选择与模数n互素的基数R=2k,n满足2k-1≤n<2k, n应为奇数。并且选择R-1及n’,满足0< R-1<n, 0< n’<n,使得 RR-1-nn’=1。对于0≤m<Rn的任意整数,Montgomery给出求模乘法mR-1 mod n 的快速算法M(m):
 M(m)
 {
 
 if (t≥n) return (t-n);
 else return t;
 }
 因为,故t为整数;同时,得。由于,M(m) 中t结果范围是0≤t<2n,返回时如果t不小于n,应返回t-n。
 本软件程序中,RSA核心运算使用的乘模算法就是 M(A*B)。虽然M(A*B)并不是乘模所需要的真正结果,但只要在幂模算法中进行相应的修改,就可以调用这个乘模算法进行计算了。本软件起初未使用Montgomery 乘模算法时,加密速度比使用Montgomery乘模算法慢,但速度相差不到一个数量级。
 将上述乘模算法结合前面叙述的幂模算法,构成标准Montgomery幂模算法,即本软件所使用的流程,叙述如下。
 M(m)
 {
 k = ( m * n’ ) mod R;
 x = (m + k*n ) / R;
    if (x>=n) x -= n;
  return x;
 }
 exp(C,E,n)
 {
         D=R-n;
         P=C*R mod n;
   i=0;
         while(true)
            {
               if(E的当前二进制位Ei==1)D=M(D*P); //从低位到高位检测二进制位
    i+=1;
    if(i==E的二进制位数)break;
              P=M(P*P);
         }
    return D*R-1 (mod n);
 }
 在具体的实现中,对应monty类的mul和exp方法。全局函数modexp初始化monty对象并调用其exp方法,使用的时候直接调用modexp即可。
 3. 寻找素数•Eratosthenes筛选与Fermat素数测试
 首先要说明的是,事实上,当今的计算机还不足以聪明到立刻计算生成一个很大的随机素数。一般来说,要得到100%准确的大素数,都是通过查已经计算好的素数表的方式。但是素数表的方式给RSA的安全性带来隐患,因为攻击者如果得到了密钥生成时所使用的素数表,攻破RSA加密的难度将会大大降低。本程序起初使用素数表的方式,后来考虑到安全性问题,生成密钥的方式改为随机计算生成。这样,短时间内如果要得到一个100%准确的大素数是很困难的,只能以尽可能高的概率得到一个大素数。

首页 上一页 1 2 3 4 5 下一页 尾页 3/5/5

赞赏
RSA文件加密原理及代码实现(三)由免费论文网(www.jaoyuw.com)会员上传。
原创论文流程 相关论文
基于Node.js的单页面WebApp的设计与实..
基于WEB的毕业生综合评价系统设计与实..
基于.NET的网上购物商城系统的设计与..
基于Android平台的共享图书系统的设计..
关于图书馆借阅管理系统设计与实现的..
关于计算机实现应用的心得体会
(信息化教育电子绩效支持系统ITEEPSS..
璐㈠姟绠$悊 甯傚満钀ラ攢 骞煎効鏁欒偛 PLC 鍗曠墖鏈� 鏁欒偛 骞煎効鍥� 涓皬浼佷笟 鏁欏笀 鍐呴儴鎺у埗 宸ョ▼閫犱环 鐢靛瓙鍟嗗姟 PLC 鍙橀璋冮€� 渚涙按 绯荤粺 搴旂敤 鎺у埗 浜ゆ祦 鍙橀 鐢垫 璁捐 鐏伨 鑷姩 鎶ヨ绯荤粺 鍗曠墖鏈� 鐑熼浘 妫€娴� 绡悆 姣旇禌 璁℃椂鍣�  鑷姩鍞揣鏈� 鎺у埗绯荤粺 鐢电儹姘村櫒 娓╁害 寮傛鐢靛姩鏈� MATLAB 10kV 閰嶇數 绾胯矾 鎺у埗鍣� 鏅鸿兘浜ら€�  鏈哄簥  鏈烘鎵� 鍙樼數绔� 鍙樺帇鍣� 鑷姩鍖� 鍞揣鏈� 鑺辨牱鍠锋硥 绔嬩綋杞﹀簱 娲楄。鏈� 瑗块棬瀛怭LC 缁勬€佹帶鍒� 鎶㈢瓟鍣� 鏁版帶杞﹀簥 鑷杞� 閲岀▼ 杞﹂€� 瓒呭0娉� 娑蹭綅 浼犳劅鍣� 瀵嗙爜閿� 鏈烘瀯 鏁版帶婵€鍏� 鍒囧壊鏈鸿璁� 鍚庢墭鏋� 鍔犲伐宸ヨ壓 澶瑰叿璁捐 CA6140 浼犲姩杞� 娉ㄥ 妯″叿璁捐 娑插帇 椋庨櫓绠$悊 閾惰 绔炰簤鍔� 涓皬浼佷笟 鍐呴儴鎺у埗 鐘跺喌 璋冩煡鎶ュ憡 铻嶈祫 绠$悊 涓棿涓氬姟 瀹炰範鎶ュ憡 閲戣瀺 鐩戠 鍒跺害  鍐滄潙 鍏昏€佷繚闄� 鍚堜綔鍖荤枟 澶栬锤 鐞嗚储 瑙勫垝 缃戜笂閾惰 鍙戝睍鐜扮姸 涓汉鐞嗚储 浜烘皯甯� 鍗囧€�
上一篇:五子棋游戏的开发 下一篇:计算机信息管理专业自考本科论文..
推荐论文 本专业最新论文
贸易公司信息管理系统+VB
VB高速公路票据管理系统
电子教务管理系统vb
delphi+access通用会员管理系统[开题..
个人网站设计之上网导航设计
互联网发展的利与弊
计算机网络安全探究
计算机带来的利弊
计算机网络故障及其解决方案
网络安全的现状以及发展趋势
浅析大数据时代下计算机辅助翻译的发..
计算机应用教育改革分析
Tags:RSA 文件 加密 原理 代码 实现 2011-02-13 11:35:46【返回顶部】
鐢垫皵宸ョ▼鑷姩鍖栧師鍒涜祫鏂�  鐢靛瓙鍟嗗姟鍘熷垱璧勬枡
浜哄姏璧勬簮涓撲笟鍘熷垱璧勬枡 鍦熸湪宸ョ▼鍘熷垱璧勬枡
宸ュ晢绠$悊涓撲笟鍘熷垱璧勬枡    鑽涓撲笟鍘熷垱璧勬枡
姹夎瑷€鏂囧涓撲笟鍘熷垱璧勬枡  浼氳涓撲笟鍘熷垱璧勬枡
璁$畻鏈烘妧鏈師鍒涜祫鏂�  閲戣瀺瀛﹀師鍒涜祫鏂�
娉曞涓撲笟鍘熷垱璧勬枡   甯傚満钀ラ攢涓撲笟鍘熷垱璧勬枡
淇℃伅绠$悊涓撲笟鍘熷垱璧勬枡 瀛﹀墠鏁欒偛涓撲笟鍘熷垱璧勬枡
鍏叡浜嬩笟绠$悊涓撲笟鍘熷垱璧勬枡 鑻辫涓撲笟鍘熷垱璧勬枡
鏁欒偛绠$悊涓撲笟鍘熷垱璧勬枡   琛屾斂绠$悊涓撲笟鍘熷垱璧勬枡
精彩推荐
发表论文
PLC 鍙橀璋冮€� 渚涙按 绯荤粺 搴旂敤 鎺у埗 浜ゆ祦 鍙橀 鐢垫 璁捐 鐏伨 鑷姩 鎶ヨ绯荤粺 鍗曠墖鏈� 鐑熼浘 妫€娴� 绡悆 姣旇禌 璁℃椂鍣�  鑷姩鍞揣鏈� 鎺у埗绯荤粺 鐢电儹姘村櫒 娓╁害 寮傛鐢靛姩鏈� MATLAB 10kV 閰嶇數 绾胯矾 鎺у埗鍣� 鏅鸿兘浜ら€�  鏈哄簥  鏈烘鎵� 鍙樼數绔� 鍙樺帇鍣� 鑷姩鍖� 鍞揣鏈� 鑺辨牱鍠锋硥 绔嬩綋杞﹀簱 娲楄。鏈� 瑗块棬瀛怭LC 缁勬€佹帶鍒� 鎶㈢瓟鍣� 鏁版帶杞﹀簥 鑷杞� 閲岀▼ 杞﹂€� 瓒呭0娉� 娑蹭綅 浼犳劅鍣� 瀵嗙爜閿� 鏈烘瀯 鏁版帶婵€鍏� 鍒囧壊鏈鸿璁� 鍚庢墭鏋� 鍔犲伐宸ヨ壓 澶瑰叿璁捐 CA6140 浼犲姩杞� 娉ㄥ 妯″叿璁捐 娑插帇
鐢垫皵宸ョ▼鑷姩鍖栧師鍒涙枃妗�  鐢靛瓙鍟嗗姟鍘熷垱璧勬枡鏂囨。
浜哄姏璧勬簮涓撲笟鍘熷垱璧勬枡鏂囨。鍦熸湪宸ョ▼鍘熷垱璧勬枡鏂囨。
宸ュ晢绠$悊涓撲笟鍘熷垱鏂囨。    鑽涓撲笟鍘熷垱鏂囨。
姹夎瑷€鏂囧涓撲笟鍘熷垱鏂囨。  浼氳涓撲笟鍘熷垱璧勬枡鏂囨。
璁$畻鏈烘妧鏈師鍒涜祫鏂欐枃妗�  閲戣瀺瀛﹀師鍒涜祫鏂欐枃妗�
娉曞涓撲笟鍘熷垱璧勬枡鏂囨。  甯傚満钀ラ攢涓撲笟鍘熷垱鏂囨。
淇℃伅绠$悊涓撲笟鍘熷垱璧勬枡鏂囨。 瀛﹀墠鏁欒偛涓撲笟鍘熷垱鏂囨。
鍏叡浜嬩笟绠$悊涓撲笟鍘熷垱鏂囨。 鑻辫涓撲笟鍘熷垱鏂囨。
鏁欒偛绠$悊涓撲笟鍘熷垱鏂囨。   琛屾斂绠$悊涓撲笟鍘熷垱鏂囨。

联系方式 | 论文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士论文


免费论文网提供论文范文,论文代发,原创论文

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2020 免费论文网 版权所有 湘ICP备19027999