低功耗乘法器在信息安全中的应用设计.docVIP

低功耗乘法器在信息安全中的应用设计.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文档。上传文档
查看更多
低功耗乘法器在信息安全中的应用设计.doc

低功耗乘法器在信息安全中的应用设计 摘要 保障信息安全主要在于数据加密算法的抗攻击性,基于RSA和椭圆曲线密码的公钥加密机制应用越来越广泛,但由于计算量庞大使其应用受到很大限制;乘法器是现代微处理芯片的关键部件,通过对Montgonmery模乘算法的分析与改进设计一种高速低功耗的乘法器实现对RSA的硬件实现,同时对椭圆曲线密码中的有限域乘法器进行分析设计,最后提供乘法器中低功耗设计方案。 关键词 乘法器 RSA 椭圆曲线密码 低功耗设计 引言 随着网络技术的发展,网络安全问题日益重要,而加密技术则是网络安全技术中的核心技术。在保障信息安全各种功能特性的诸多技术中,密码技术是信息安全的核心和关键技术,通过数据加密技术,可以在一定程度上提高数据传输的安全性,保证传输数据的完整性。由于公开密钥加密算法不仅能实现数据的加密还能够实现数字签名使其应用越来越广泛,其中以RSA和椭圆曲线密码应用尤为突出。密钥长度越长,抗攻击性也就越强,但随着密钥长度的不断增加,加解密需要的时间就成为其实现的主要问题。人们研究出多种方法用硬件和软件实现RSA的快速模幂乘,其中Montgomery算法把选择衰减乘数因子转化为从低位到高位的方式进行,非常适合于用字长为w的乘法器以迭代的方式实现。采用流水线技术,可以大大提高乘法器的吞吐率。在椭圆曲线密码进行加密过程中乘法也是提高性能的关键,可见高性能、低功耗的乘法器在信息安全中有较大的应用。 在RSA上的应用与设计 2.1 RSA算法简介 RSA算法[1]的构造是选择两个大素数p、q,计算n=p.q,(n)=(p-1)(q-1),其中:(n)为欧拉函数;选择一个整数e,它满足(e,(n))=1,1<e<(n)。它有一对密钥,即公钥或加密密钥(e,N)和私钥或解密密钥(d,N)。对明文m,其加密过程:c≡E(m)=me mod N,式中c表示密文。而解密过程m ≡D(c)=cd mod N,m表示明文由Euler定理可以证明加/解密过程的一致性。 加密/解密过程实质上就是一个计算模幂me mod N或cd mod N的过程。但是由于m,e,c,d,N等操作数大于1024比特,直接的模幂运算已不可能,必须先将其分解为基本的大数模乘运算AB mod N。Montgomery算法正是为解决大数模乘运算AB mod N而提出的。 2.2 Montgomery算法描述及在RSA中的实现 Montgomery模乘算法避免了通常求模算法中费时的除法步骤,而采用模加右移方法,下面就是基数R(一般为取2u)的Montgomery模乘算法 MM(A,B,N)。 输入:A为n位二进制被乘数an-1an-2…a1a0 B为n位二进制乘数bn-1bn-2…b1b0 模N为n位二进制基数mn-1mn-2…m1m0  m0=1 A<N,B<N 输出:S=MM(A,B,N)=ABR-1 mod N,S<2N 设N为模数且N>1,R是与N互素的一个基,通常,R=2u,u是N的位数;R-1和N满足0<R-1<N,0<N’<R,RR-1- NN’=1,即RR-1(mod N)=1或NN’(mod N)=-1;对给定大整数T,且0≤T<RN实现的程序: Function MM(T) λ = (T mod R) N’ mod R t = (T+λN) div R if t≥N then return (t-N) , else return t (式子1) 其中mod 表示求余,div表示求商。算法的证明可参阅文献[2]。 上述算法由于模乘运算时T=AB,0≤A<N,0≤B<N,所以算法共进行三次大数乘法运算。当A,B和N都为1024位以上的大整数时,大数相乘给硬件带来了困难,因此必须对大数进行分解。可以看出,Montgomery算法并不是直接求两个数的模乘,而是求Montgomery积 mod ,其中。我们在RSA实现上要做预先处理。 mod (其中)之前,预先求出 mod 和 mod , 再求 mod mod mod , 结果也要做相应的调整: mod mod mod (式子2) 可见这种方法适合于像RSA这样有多次取模乘法的取模幂乘运算。对于整数e和任意整数m,加密或解密信息m即是求解memod n。对输入变换得到M=mR mod n之对于整数e和任意整数m,加密或解密信息m即是求解memod n。对输入变换得到M=mR mod n之后,取模幂乘的乘法-平方循环依式子1用Montgomery乘法来完成,最后按式子2运算,调整得到最终的加密或解密信息。 2.3 乘法器的设计 在设计乘法器的过程中可采用Booth编码可以将乘法运算部分积的数量减半,再利用Wall

文档评论(0)

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

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

1亿VIP精品文档

相关文档