[毕业设计 论文 精品]rsa文件加密软件的设计与实现_第1页
[毕业设计 论文 精品]rsa文件加密软件的设计与实现_第2页
[毕业设计 论文 精品]rsa文件加密软件的设计与实现_第3页
[毕业设计 论文 精品]rsa文件加密软件的设计与实现_第4页
[毕业设计 论文 精品]rsa文件加密软件的设计与实现_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

a1a0a2a3a4a5a6a8a9a7a11目录前言.2第1章RSA应用现状及应用于文件加密的分析.31.1RSA算法介绍与应用现状.31.2RSA应用于文件加密的分析.41.2.1文件加密使用RSA的可行性.41.2.2文件加密使用RSA的意义.5第2章RSA文件加密软件的设计与实现.72.1需求分析与总体设计.72.1.1功能分析.72.1.2工程方案选择.82.2各部分的设计与开发.92.2.1实现RSA加密算法的C+核心类库.92.2.2封装C+核心类库的DLL组件.192.2.3引用DLL的.Net类与实现文件操作功能的窗体应用程序.20第3章软件整体测试与分析改进.213.1编写测试各项性能需要的精确计时类.213.2测试数据与分析改进.213.2.1密钥生成测试.213.2.2数据输入输出测试.243.2.3加密解密测试.243.2.4性能分析与改进优化.273.3使用中国余数定理.28第4章可移植模块的简要说明与开发前景.30结束语.31谢辞.32参考文献.33附录.34a1a0a2a3a4a5a6a8a9a7a11前言RSA公钥加密算法是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也十分流行。算法的名字以发明者的姓氏首字母命名:RonRivest,AdiShamir和LeonardAdleman。虽然自1978年提出以来,RSA的安全性一直未能得到理论上的证明,但它经历了各种g6927g1999,g14279g1182g7082006年g709未g15999g4448全g6927g11784。g19555g11540g17246来g17246g3822的g2842g1006应用和g7643g1946化工作,RSAg5062经成g1038g7380g1867g1207g15932性的公钥加密g6228g7427。g57g44g54g36g451g48g68g86g87g72g85g38g68g85g71g451g44g37g48g451g48g76g70g85g82g86g82g73g87g12573公g2508g2339g2159g2058定的安全g11017g4388g1144易g7643g1946g708g54g72g70g88g85g72g3g40g79g72g70g87g85g82g81g76g70g3g55g85g68g81g86g68g70g87g76g82g81g86,g54g40g55g709g4613g18331用了g7643g1946g53g54g36算法,g17837使得g53g54g36g3324g6117g1216的生g8975中g1972g1058g7092g3800g993g3324。g13605上g1144易加密g17842g6521g451g13605上g19146行g17535g1233g20576证g451各种g1461用g2357使用的数字证g1082g451g7246能g12239g2172g11017g16817和g4396g1660g2357的g20576证功能g14467g10267g12573,g3835g3822数使用g53g54g36g6228g7427。g5415g1182公钥加密g7368g5203g8879应用于g1126g13864g13605g17535g1233g16760证,g7424g16850g20076g4570公钥加密算法RSA应用于g4579g3423文件加密。g4570g1231意文件加密成文g7424的解g1927方案,使g1866使用g7368加g9801g8975。g6984个工程的分g4630设计,g13485引用g12239g7905和g2530g13505开发g5114来g1427g2045。a1a0a2a3a4a5a6a8a9a7a11第1章RSA应用现状及应用于文件加密的分析1.1RSA算法介绍与应用现状RSA算法可以g12628g2345g2477g17860g3926g991:g2474g13044数p,q,g1208n=pg104q.g2474与(p-1)g104(q-1)g1126g13044的g6984数e,g11013方程dg104e=1(mod(p-1)g104(q-1)解出d,g1120元组(e,n)作g1038公开密钥,g1120元组(d,n)作g1038私有密钥b=aemodn,c=bdmodn.附录中g13485出了证明a=c(modn).(g1867体的RSA算法g2339议见.au/rsa_alg.html,提及的算法中的字母与g2339议文档中的一致,g993再另做解释)RSA公开密钥加密算法自20世纪70年g1207提出以来,g5062经得到了g5203g8879g16760可和应用。发展g14279g1182,g11017g4388安全领域的各方面g5062经形成了较g1038g4448备的国际规范。RSA作g1038g7380重要的公开密钥算法,g3324各领域的应用数g993胜数。RSAg3324硬件方面,以g6228g7427成熟的IC应用于各种消费类g11017g4388产品。RSAg3324软件方面的应用,主要集中g3324Internet上。加密g17842g6521g451数字签名和数字证g1082的核心算法g5203g8879使用RSA。日常应用中,有比较著名的工g1867包OpenSSL(SSL,SecuritySocketLayer,是一个安全传输g2339议,g3324Internet上进行数据保护和g17535g1233确g16760。OpenSSL是一个开放源g1207码的实现了SSL及相关加密g6228g7427的软件包,g11013加拿g3835的EricYangg12573发起编写的。相关详细介绍见/about/)。OpenSSL应用RSA实现签名和密钥g1144换,g5062经g3324各种操作系统得到非常g5203g8879的应用。另外,家喻户晓的IE浏览器,自然也实现了SSLg2339议,集成了使用RSAg6228g7427的加密功能,结合MD5和SHA1,主要用于数字证g1082和数字签名,对于习惯于使用g13605上购物和g13605上g19146行的用户来说,g1972g1058天天都g3324使用RSAg6228g7427。RSAg7368出现g3324要求高度安全稳定的企g1006级g2842务应用中。g3324g5415g1182的企g1006级g2842务应用中,g993得g993提及使用g7380g5203g8879的平台j2ee。事实上,g3324j2se的g7643g1946库中,g4613g1038安全和加密服务提供了两组API:JCA和JCE。JCA(JavaCryptographyArchitecture)提供基g7424的加密框架,g3926证g1082g451数字签名g451报文摘要和密钥对产生器;JCAg11013g1972个实现了基g7424的加密g6228g7427功能的类和g6521口组成,g1866中g7380主要的是java.security包,此软件包包含的是一组a10a12a13a14a15a16a17a18a19a20a21核心的类和g6521口,Java中数字签名的方法g4613集中g3324此软件包中。JCE(JavaCryptographyExtension)g3324JCA的基础上作了扩展,JCE也是g11013g1972个软件包组成,g1866中g7380主要的是javax.crypto包,此软件包提供了JCE加密g6228g7427操作API。javax.crypto中的Cipher类用于g1867体的加密和解密。g3324上g17860软件包的实现中,集成了应用RSA算法的各种数据加密规范(RSA算法应用规范介绍参见:/rsalabs/node.asp?id=2146,g17837些API内部支持的算法g993仅仅只有RSA,但是RSA是数字签名和证g1082中g7380常用的),用户程序可以直g6521使用javag7643g1946库中提供的API进行数字签名和证g1082的各种操作。g2345机应用程序使用RSA加密尚比较少见,例g3926使用RSA加密g1231意一个文件。1.2RSA应用于文件加密的分析1.2.1文件加密使用RSA的可行性通过1.1节的论g17860,g993难看出RSAg5415g1182的应用g3822g3324于数字签名和证g1082g12573方面。之所以只应用于g17837些短g4579数据的加密解密,是因g1038RSA算法加密极慢,速度是DES对称密钥加密速度的千分之一左右。g8503是因g1038g17837g7691,g6238RSA应用于g7234通文件加密的g5831法一直g15999g5585g11065。通常文件g15999g5831g16949成g3835数据g3371,但是实际上g3324日常应用中,有些极g1866重要的文g7424g17176g7021是g5194g993g3838g3835的,比g3926因g6297心g17963g5548g13792用g7234通文g7424g16772录的g19146行g5092g2507和密码g451g993应g15999g19488生g1166g11705g17959的重要g11017g16817g2507码g451g1972千字节g3835的重要g4579g3282g10267g12573。虽然RSA加密g17828算的速度十分慢,但是g3324PC性能g17246来g17246g3921的g1182天,对于g1972千字节的数据进行一g8437g1972g11346g1313密钥的RSA加密,所消g13803的时g19400应g16825是可以g6521g2475的。g991面结合g3835数g17828算程序的g16855试,g1186理论上g12628g2345的分析消g13803时g19400。g3324一台g7234通g18209g13634的PC机上对一个g6984数进行g5142g8181g17828算,因g1038公开密钥的e通常g2474的较g4579,所以g6363数g2474一个g4579g6984数,比g3926C353,g8181一个70字节g19283的g6984数(140g1313十g1857进g2058,g3835数g2345元以g13459性组方g5347实现,对应到RSA算法中,g17837相g5415于g13434560bit的n),g16855试一个g2001数测试,g6365g2033g12573数论中的g11705g16794对程序进行算法优化,g7380g13468g3324一台g18209g13634g1038AMDAthron2800+,外g20069333MHZ,物理内g4396512MB的PC上测试需要g1343445g8639g12198时g19400。g3926g7536g6365g17837种速度,g17892字节对1KB的数据进行g2528g7691的g17828算,所消g13803的时g19400理论上g103845g8639g12198的1024g1505g2375g1343445g12198。g17837个时g19400g5194g993是非常g19283。g1866实g1186一个g12628g2345的g16294度来说,既然RSA用于数字签名可行,g18039g4613g4448全可以用于g2528g7691g3835g4579的g7234通文件。对于较g3835的文件,g3926g7536分成与数字签名g2528g7691g3835g4579的g8585(g17837g18336g1563设数字签名较短,g993分g8585一g8437计算加密g4448成),分开的各g8585g17892一进行加密g17828算,g18039所需要的时g19400也只是g6365文件g3835g4579g13459性的g3698g19283。通常数字签名g1038g1972十字节,加密g17828算g5194g993需要g5468g19283的g12573g5465,g17837g4613说明对于g1972g11346字节g6122一两K字节g3835g4579的文件来说,g3926g7536进行RSA加密,g5194g993g1262是非常g9471g19283的工作。g5415然,g3926g7536文件g7368g3835,加密g4613g7186得十分g9471g19283了。比g3926g6365g2081面g2477g17860的45g8639g12198g3835数g17828算程序g6524理,加密1M字节g3835g4579的文件需要g134341天的时g19400。所以,要g3324g7234通PC用g1972g11346g1313以上的g19283密钥RSA加密文件,文件g993能过g3835,一g14336可以g6521g2475的上g19492是g1972KB。a22a23a24a25a26a27a28a29a30a31a32g3926g7536要g3324较短时g19400内加密g3835文件,需要g13565短密钥g19283度以g1955g4579g17828算g18339,g17837g4570g5114来安全性g19556g5751。g7424文的第3g12468g4570g7693据实际g16855试g3921的软件,测试g13485出g1867体的时g19400消g13803数据。例g3926,g3324一台g18209g13634g1038AMDAthron2800+,外g20069333MHZ,物理内g4396512MB的PC上测试实现的软件,以560bit的ng17892字节加密一个1KBg3835g4579的文件需要55g12198。通常g16772录g3926g19146行g5092g2507密码g12573重要数据的文g7424文件g3835g4579g993g17287g11346字节,加密只需要数g12198g19059。所以对于g4579g3423文件,进行较g19283密钥的RSA加密是g4448全可行的。1.2.2文件加密使用RSA的意义g39261.2.1节所g17860,g4579g3423文件加密可以使用RSA。比g3926,因g6297心g17963g5548g13792用g7234通文g7424g16772录的g19146行g5092g2507和密码g451g993应g15999g19488生g1166g11705g17959的重要g11017g16817g2507码g451g1972千字节g3835的重要g4579g3282g10267g12573。可行的方法未g5529是g5529要的,g7424g4579节g16764论g1321种文件g17878合用非对称密钥加密,g2375RSA加密文件的意义所g3324。对于g2081面g2477g17860的g5114有重要g1461g5699的g4579g3423文g7424和g1120进g2058数据的g13512护,g311g3926g7536g993加密,g4570g7092法放心的保g4396g3324计算机上,g4600g1866是g17842g13605的g6122机g6163g18336的公g1861计算机。g312g3926g7536g1523g2173功能g5390g3835的g3835g3423g3822用户数据保护程序g13512护g1972个g4579g3423文件,g7186得十分g9914g10724,g3921比g7444g21493用g10287g2004。g313g3926g7536g18331用对称密钥加密,g2375加密解密的密钥相g2528,只g17878合部分g5785g1929。g3324g7588些g5785g1929g991,使用对称密钥加密文件,g1144流使用g993g3827方g1427。比g3926,g5364g989g11013于g7588种g2419因,需要g4570自g5061的g7588个文件g3324公g1861计算机上g11053g13485g7458g3247,g13792g993g5088g7407g2047g1166看到内g4493。g3926g7536g18331用对称密钥加密,g5364g989和g7458g3247提g2081g13434g3921一个密码g4613可以。但是g3926g7536g5364g989g5831要g3324g2528一台公g1861计算机上再g11053一个g12204密文件g13485g10591g1128,g13792g993g5088g7407g2047g1166看到,g4613要和g10591g1128另外g13434定一个密码。g3926g7536需要g3324g17837台公g1861计算机上g11053十个文件g13485g993g2528的g1166,自g5061g4613要g16772和十个g1166g13434定g3921的密码,g17837g7691以来g1144流起来g993g3827方g1427,因g1038对于g5364g989,要自g5061g13512护g3838g3822的密钥。非对称密钥(公开密钥方g5347)g5700g3921解g1927g17837g7691的g19394g20076。只要g3835家都g3324g17837台计算机g6122g17837台计算机可以g16787g19394到的g3332方,g11053g991自g5061的公开密钥,一切g4613变的g4493易解g1927了。g5364g989要g11053g13485g7458g3247的文件,g4613用g7458g3247的公开密钥加密,要g11053g13485g10591g1128的文件,g4613用g10591g1128的公开密钥加密。g7458g3247和g10591g1128只要g6238g11053g13485自g5061的文件用自g5061的私有密钥解密,g4613可以得到g11053g13485自g5061的文件了。g7186然,非对称密钥体g2058g7368g17878合g3822用户g1144流,g13792g4570g17837种加密方g5347直g6521应用于文件加密,使g6117g1216g3324公开场合的g1144流g7368加g9801g8975方g1427。一种g7368实际的g5785g1929是,g6117g1216g5831通过Internet上的公众论坛g6122邮件发送重要保密g1461g5699g13485g7588g1166。例g3926发送一个g19146行g5092g2507和密码g13485g7588g1166。g17837种g5785g1929要保证安全,g3324g5415g1182g1126g13864g13605络上是比较棘手的。g311g3926g7536用公众论坛直g6521g11053言g13485g6363定用户,论坛管理员和服务器管理员通常有方法看到数据。g312g3926g7536发送邮件,虽然传送过程是加密的,但是密码毕竟是g11013邮件服务器g13512护,所以系统管理员通常也有办法看到内g4493。g19394g20076的关键g3324于g6117g1216所有的数据包括密钥保g4396g3324服务器之上。g3324g17837种g5785g1929g991,g6117g1216需要使用公开密钥方g5347,g5194自g5061g13512护私有密钥。RSA文件加密可以g9801g8975的解g1927g17837些g19394g20076。例g3926,g6117g1216可以g4570g1231意一个文件a22a23a24a25a26a27a28a29a30a31a32用g7588g1166的公开密钥加密变换成一g8585可以复g2058粘贴的文g7424,然g2530粘贴g3324公众g1126g13864g13605上,对方只需g6238需要解密的文g7424复g2058保g4396成一个文g7424文件,g3324g7424g3332机用自g5061的私有密钥解密g2375可。g6117g1216可以g4570自g5061的私有密钥通过DES加密g2530保g4396g3324自g5061的g12239g2172磁盘上,使用的时候只要g4570g1866解密读g2474g2375可,用g4448g2530立g2375g1186g5415g2081操作环境清除。g17837g7691,g6117g1216自g5061g13512护自g5061的私有密钥,g2045用g12628g2345g5194且公开的方g5347,可以安全传送g1231意g4579g3423数据,包括一切g1120进g2058文件。所以,对于使用g4579g3423文件进行数据g1144换的g5785g1929,g7368g3921的方案是通过一个g4579g3423应用程序对g17837些文件进行非对称密钥加密。g1038了g17878合g2081面g2477g17860的g3324公g1861BBS与特定的g7588g1166g1144流重要保密g1461g5699的g5785g1929,加密生成的数据应g16825是文g7424,g17837g7691可以方g1427复g2058粘贴。综上所g17860,使用g2081面g2477g17860的方g5347加密文件有两点重要意义:g311应用非对称密钥加密g1231意文件,使非对称密钥的应用g993仅仅局g19492于g1126g13864g13605络。g312非对称加密g2530的数据变换成文g7424,使得g6117g1216可以通过g1972g1058g1231g1321方g5347安全传递g1231意文件,比g3926g3324只有http的环境使用xml方g5347。a22a23a24a25a26a27a28a29a30a31a32第2章RSA文件加密软件的设计与实现2.1需求分析与总体设计2.1.1功能分析经过1.2.2节的论g17860,g6117g1216可以g4570对软件的要求总结g3926g991:g311可以g6365要求的g1313数生成非对称密钥。g312可以保g4396密钥和装载密钥,密钥保g4396g1038纯文g7424。g313可以用g6363定密钥以RSA算法加密g1231意一个文件,加密生成的数据g1038纯文g7424。可以装载加密过的文件,g5194用g6363定的密钥解密还g2419出g2419文件。提示g1461g5699g4448g6984g451操作舒g17878g451g3282形界面雅观g6365上g17860描g17860,g13485出UseCase和Statechartg3926g32822-1。a332-1a34a35a36a37UseCasea38Statechartg7693据以上分析,一g14336来说,需要进行编码的程序有g311RSA密钥生成g312RSA加密解密g313g1231意文件的读g2474和保g4396操作各环节g5529要的数据编码转换g3282形操作界面。a34a39a40a41a42a43a44a45a46a47a482.1.2工程方案选择结合现有的常见开发g8181g5347综合分析,有g3822种实现方案,g991面陈g17860g1866中g1972种,g5194分析选择一种解g1927方案,g5194g13485出工程框架。1.整个工程使用java平台实现RSA密钥生成g451RSA加密解密的功能实现十分g12628g2345,因g1038g7643g1946库中集成g1972g1058所有功能,g993需要g1186RSA算法出发进行编码。g3324j2seg7643g1946库中,javax.crypto中的Cipher类用于g1867体的加密和解密,java.security包直g6521提供了数字签名的相关方法。因g1038有g5390g3835的g7643g1946库支持,文件的读g2474和保g4396操作g451各环节g5529要的数据编码转换g451g3282形操作界面的实现也g5468g12628g2345(使用java.iojava.awtg6122javax.swingg12573包),g3926g7536结合一种快速开发的IDE,比g3926JBuilder,g6984个软件可以g3324g5468短的时g19400内编码g4448成。g3926g7536g993考虑非PC设备和机器效率g12573g19394g20076,java平台g1972g1058是g7380佳解g1927方案。但是缺点也g5468明g7186,g3926g7536g5831g6238核心算法和功能应用到非PC设备(例g3926嵌入g5347手持设备),则要求设备上有支持g2081面提及的加密类库的CVM;对于g3324PC上g17828行,JVM的数据g17828算速度要远远落g2530于g7424g3332化g1207码g3324PC上的g17828算速度,g7424软件需要进行g3835g18339g17828算,g17837一点g993g17878合g11013javag4448成。2.整个工程使用.Net平台实现与使用java平台g4448全类似,加密g12573有.Net基础类库的支持,g993需要g3835g18339编码实现,另外g11013于VisualStudio的g5390g3835g1427g2045,g17837种规g8181的工程可以十分迅速的g4448成。缺点是只能g3324有微软.NetFramework的环境g17828行,g3324Windows操作系统,.NetFramework的机器效率g3921于java平台,但是相比于g7424g3332化的g1207码,还是十分拖沓的。3.整个工程使用Windows本地化程序实现g3324g993应用Windowsg6122第g989方现成组件的g5785g1929g991,需g1186RSA算法出发编码实现。g1866他各功能的设计开发,g3926文件操作g451数据编码转换和g3282形界面g12573,可以使用ATLg451MFCg6122WindowsAPI实现。g17837种工程g1972g1058是g1038Windowsg18339g17535订做,执行效率g7380g3921。但是对于非PC设备,只能方g1427的g12239g7905到g17828行Windows嵌入g5347操作系统的设备,向g1866他操作系统g12239g7905困难,需要重新编写g3835g18339g1207码。通常解g1927g7424g3332化g1207码的g12239g7905g19394g20076,都是使用C+g7643g1946库,g2375功能尽g18339g3822的g11013C+g7643g1946库g4448成,g17837g7691g3324g12239g7905的时候,只需要重新编写操作系统相关的g1207码g2375可。g17837种开发方g5347比起g2081两种,缺点g4613是设计开发g8181g5347陈旧,g1207码g9914g10724,g993方g1427g13512护;流行的.Net上的语言引用各种功能比较麻g9914。4.考虑可能的复用,针对具体情况分层开发实现综合考虑复用性g451可g13512护性和执行效率,较妥g5415的方法是分g4630设计。核心的RSA算法g11013C+类库实现,针对用户所g3324的操作系统封装成g7424g3332化组件。g1866他各功能g3926文件操作g451数据编码转换和g3282形界面g12573,g11013托管g1207码g1523g2173虚拟机平台g7643g1946库的功能快速开发实现(g7424文针对选用.Net上的C#论g17860,选用javag11013JNIg6122g1866他方g5347g16855用g7424g3332组件,设计g8181g5347上是g4448全类似的)。g17837种开发方g5347,核心功能集中g3324g7380底g4630,g3324g993断的封装中针对g1867体环境对组件功能g993断扩充,g1231意一个g4630面的封装都可以g15999直g6521应用到g1866他项目,比g3926g3324a49a50a51a52a53a54a55a56a57a58a59Web使用以g2081g1038g7588窗体程序写的组件g451g13485嵌入g5347设备g1144叉编译算法库g12573。但是每一g4630都需要依赖底g4630的所有组件。g32822-2形g16949的说明了分g4630设计g13485复用g5114来的g3921g3800。a602-2a61a62a63a64a65a66a67a68a69a70a71a67a72a73a74a75a76a77a78a79a57a58选用第g3247种设计方案,上g4630使用C#,底g4630算法使用C+,可以g11013一个VisualStudio解g1927方案管理,g13485g16855试g5114来极g3835的方g1427。g6984个工程分g3247g4630,实现RSA加密算法的C+核心类库g451封装C+核心类库的DLL组件g451引用DLL的.Net类g451实现文件操作功能的.Net窗体应用程序。2.2节详细介绍各部分的设计与开发。考虑到工作g18339,g7424软件加解密数据没有严格遵g1186RSAg7643g1946PKCS#1,g13792是g3324满g17287设计要求的g2081提g991,以一种尽可能g12628g2345的方g5347实现加密和解密。2.2各部分的设计与开发2.2.1实现RSA加密算法的C+核心类库1.大数存储和四则运算g7693据RSA算法的要求,g1038了实现g3835数的各种复杂g17828算,需要首先实现g3835数g4396g1660和基g7424g3247则g17828算的功能。g5415g1182开源的g3835数g17828算C+类有g5468g3822,g3822用于数学分析g451天文计算g12573,g7424文选用了一个流行的g3835数类g3423,g5194针对RSA算法和g7424项目的g1867体需要对g1866进行了扩充和改进。g991面g12628g2345介绍g3835数g4396g1660和g3247则g17828算的实现g2419理。g7380先g4448成的功能是g3835数的g4396g1660,g4396g1660功能g11013flex_unit类提供。和g7234通的类g3423一g7691,每一个g3835数对应一个flex_unit的实例。类flex_unit中,用一个g7092符g2507g6984数g6363针unsigned*ag6363向一g3371内g4396空g19400的首g3332址,g17837g3371内g4396空g19400用来g4396g1660一个g3835数,所以可以说,g3835数是g15999g4396g1660g3324一个以unsignedg1038g2345元的g13459性组中。g3324方法voidreserve(unsignedx)中通过C+的new来g13485a开辟空g19400,g5415flex_unit的实例中g15999g4396入比g5415g2081g4396g1660的数g7368g3835的数时,g4613g1262g16855用reserve来g3698加g4396g1660空g19400,但是g5415flex_unit的实例中g15999g4396入比g5415g2081g4396g1660的数g7368g4579的数a80a81a82a83a84a85a86a87a88a89a90时,g4396g1660空g19400g5194g993g1262自g2172紧g13565,g17837是g1038了g3324g17828算的时候提高执行效率。结合g6363针a,有两个重要的g7092符g2507g6984数来控g2058g4396g1660,unsignedz和unsignedn,z是g15999分g18209空g19400的g2345元数,g19555数字变g3835g993断g3698g3835,g993g1262自g5061紧g13565,g13792n是g5415g2081g4396g1660的g3835数所占的g2345元数,组成一个g3835数的各unsignedg2345元的g4396入和读出g11013setg451get方法g4448成,变g18339n是只读的。类g3423unsignedg332432g1313机是32g1313的,所以对于flex_unitg17837个g3835数类来说,每个g3835数g7380g3835可以达到个字节g19283,g17837g5062经超过了32g1313机通常的g7380g3835内g4396g4493g18339,所以是g17287g3827进行RSA所需要的各种g17828算的。g32822-3形g16949的说明了g3835数g4396g1660类flex_unit对g3835数的管理。a912-3flex_unita92a93a94a95a96a97g3324flex_unit的g4396g1660功能基础上,g4570g1866派生,得到vlong_value,g3324vlong_value中实现g3247则g17828算g2001数,g5194实现g5390g2058转换g17828算符unsigned,以方g1427g3835数类g3423和g7234通g6984数的g1126相赋值。g5415g3835数g15999g5390g2058转换g1038unsigned时,g4570g2474g1866g7380低g3247字节的值。g3247则g17828算实现的g2419理十分g12628g2345,都是g6365g7380基g7424的算g7427g2419理实现的,g3247则g17828算过程的g7424质g4613是g6365一定数g2058对数字的计算,比g3926相加,g4613是低g1313g2345元对齐,g17892g2345元相加g5194进g1313,g1955法g2528理。g13792乘除法和g2474余也都是g6365照竖g5347g17828算的g2419理实现,g5194进行了g5529要的优化。虽然实现了g3247则g17828算g2001数,但是若是程序g18336的g17828算都要g16855用g2001数,g7186得g9914g10724g13792且看起来g993美观,所以g6117g1216另写一个类vlong,关g13864(Associate,g2375使用vlong_value类g3423的对g16949g6122g1866g6363针作g1038成员)vlong_value,g3324vlong重载g17828算符。g17837g7691,g5415g6117g1216操作vlongg3835数对g16949的时候,g4613可以像使用一个g12628g2345类g3423一g7691使用各种g17828算符g2507了。之所以g4570vlong_value的g6363针作g1038成员g13792g993是直g6521构造的对g16949,也是g1038了提高执行效率,因g1038g3835g3423对g16949的拷贝要消g13803g993少机器时g19400。2.大数幂模与乘模运算Montgomery幂模算法g3324实现了vlong类g3423g2530,g3835数的g4396g1660和g3247则g17828算的功能都g4448成了。考虑到RSA算法需要进行g5142g8181g17828算,需要g1946备实现g17837些g17828算的方法。所以写一个vlong的友元,g4448成g5142g8181g17828算功能。g5142g8181g17828算是RSA算法中比重g7380g3835的计算,g7380直g6521g3332g1927定了RSA算法的性能,针对快速g5142g8181g17828算g17837一g16850g20076,西方现g1207数学家提出了g5468g3822的解g1927方案。经查阅相关数学著作,发现通常都是依据乘g8181的性质nnbnanbamod)mod()mod(mod)(=,先g4570g5142g8181g17828算化g12

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论