基于Knuth与Karatsuba乘法大整数乘法研究.docVIP

基于Knuth与Karatsuba乘法大整数乘法研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Knuth与Karatsuba乘法大整数乘法研究

基于Knuth与Karatsuba乘法大整数乘法研究   (安徽理工大学计算机科学与技术学院,安徽淮南232001)   摘要: 在RSA、DiffieHellman密码系统的算法中都要用到大整数乘法算术。介绍了Knu th经典乘法、Karatsuba乘法以及它们的计算时间复杂性,在此基础上提出了一个新的大整 数乘法技巧,并且在理论上和实践上被证明是有效的。实验结果也显示改进的大整数乘法算 法在实现大整数乘法运算时具有更高的效率。   关键词:Knuth乘法;Karatsuba乘法;大整数乘法;分治法   中图分类号:TP301.6文献标识 码:A[WT]文章编号2008      Research on Large Integer Multiplication Based on Knuth and   Karatsuba Multiplication   HAN Meng,FANG Xianjin,GUO Yuxiu,LI Tao    (School of Computer Science and Engineering,Anhui University of Science and Tec hnology,Huainan Anhui 232001,China) Abstract:Algorithms in cryptosystem such as RSA and DiffieHellman require larg e integer multiplication. In the paper Knuth classical multiplication, Karatsubamultiplication and their time complexity were presented, on the basis of whicha new large integer multiplication trick was put forward and proved available intheory and practice. The experiment showed that the improved multiplication alg orithm is more efficient in implementation of large integer multiplication.   Key words:Knuth multiplication;Karatsuba multiplication;large integer multipl ication;divide and conquer      对大多数的数论问题并且包括象RSA、ECC等公钥密码系统的算法中,大整数乘法是其中的基 本操作。 关于大整数乘法算术的文献有很多, 例如有Karatsuba乘法、 Toom乘法,快速傅 立 叶变换技巧,Sch??o[DD(-*2/3]..nhageStrassen技巧,经典的Knuth 乘法等[17]。   大多数乘法运算的技巧都是利用“分治法”工具:将一个大的乘法问题减小为一组较小的乘 法问题,但是一直用同一个单一的方法进行递归到小问题的做法被认为是一个错误的选择。 因为:① 虽然有很多乘法运算的技巧,但是没有一种技巧适用于所有的情况, 在操作数长 度不同的情况下, 不同的乘法技巧所产生的效率是不一样的, 所以应根据乘法运算中的 操 作数长度的不同选择不同的算法; ② 通常情况下,最佳的乘法运算算法应能在递归的不同 层次使用不同的方法。   文章的主要目标是对Karatsuba算法进行改进,试图找出这样一个条件并加以证明,当满足 这个条件时基于分治法的Karatsuba乘法被反复递归地调用,当不满足这个条件时,使用经 典的Knuth乘法进行运算。   1标记   文中所有的大整数都以??b进制表示, 基本的算术运算包括两个以b??进制表示的单精度整 数的加、 减、 乘、 除。 用??b??进制表示一个正整数??p??通常写成 ??p=(u1u2…un),其中的单精度整数ui (1≤i≤n)称为数字,并且0≤ui≤b-1?? 。例如,如果??b??=2??32=0x100000000,那么0≤??ui??≤0xffffffff(??1≤i≤n ??),则整数(ffffffffffffffff)b有两位数字。   2经典的Knuth乘法及计算时间   若??p,q是b??进制表示的非负整数,??p=(u1u2…un)b, q=(v1v2…vm)b,它们的乘积w可表示成w=p#8226;q=(w1w2…w??m+n)b,??用经典Knuth乘法[

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档