网站大量收购独家精品文档,联系QQ:2885784924

二进制域乘法和求模快速算法.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

乘法运算的一种新方法

在二进制域GF(2)内两元素A,B的乘法运算最常用的是传统的n

“移位相加”算法。通常传统的方法移位操作会产生2s(n-1)位的

中间结果,其中n是比特数。

我们的算法试图减少占计算消耗很大一部分的移位操作的数量。我们

的方法需要2s(w-1)位的移位中间结果,其中w是处理器字长,s=n/w。

这能很大的有助于性能提升,尤其对于小字长的处理器。值得注意的

是域加法的数量依然和传统方法相同,虽然它依赖于被乘数的汉明重

量(哈明权,指其中非零元素的个数)。由于二进制域GF(2)中的

加操作不包含进位,所以将其定义为异或操作,我们的新算法使节省

移位操作成为可能。

有效的域乘法算法

定义1.B=(b…bb)作为乘数B的比特串表示,B可以被分成s

sw-110

块,每块长w位,s=n/w。表示t=A*b*x,i∈{0,1…n-1}。i

ii

域乘法的结果

可以被表示为C

有效的域乘法基于下面的计算模型,首先计算中间结(t,t…t),

0w(s-1)w

然后依次计算(t,t…t),直到(t,t…t),将所有的中

1w+1(s-1)w+1w-12w+1(s-1)w+(w-1)

间结果都计算出来。

算法1.LeftShift(x)表示多项式X的系数表示(字节串)左移一位,

C[j]表示多项式C的系数表示的第j个字,其中j∈{0…(s-1)}.

模约减

域乘法的结果需要2*sw位的存储空间。模约减通过不可约多项式(如

三项式和五项式)的移位和加法可以高效实现。这个想法是使高位为

零然后加上移位后的每一项的系数。Schroeppel等人描述了一种实用

的方法来实现多项式的模约减,那就是分组计算,每次计算一个字长。

n

对于x+x+1类型的三项式模,使n=167,k=6。每当域乘法或平方运

1676

算后都要对结果求模F(x)=x+x+1。

两个次数166的多项式乘积是一个次数为332的多项式。假设需要约

减的多项式为:

1676

模x+x+1的计算需要对每一项求模然后再从结果中减去。可见

由高位到低位每次取一个字节进行降次运算,这里取s/2个字,每次

降次s/2。为了使运算有效,三项式次数要尽量小。

算法2A表示将要进行求模运算的域乘法或平方运算的结果,A的

次数最多为2n-2。将A分成2s组,每组长w位。用A表示域元素

i

的第i组。函数CarryRightShift(Q,d,T)表示将Q右移d位,利用带进

位指令有效的移位操作,进位部分存储在T中。Temp1和Temp2是

w位的寄存器。以下算法表示对A求三项式模

文档评论(0)

霞光满天 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档