专利名称:一种基于串并结合实现有限域乘法的方法及装置的制作方法
技术领域:
本发明涉及信息技术领域,特别是一种基于串并结合实现有限域乘法的方法及装置。
背景技术:
有限域运算在差错控制、密码学领域均得到广泛应用。特别是在加密认证算法中, 有限域运算应用广泛,它是指在特定的规则下进行的两类运算加法运算和乘法运算。有限域GF⑵仅包含两个元素0和1,加法运算很容易利用一个异或门来实现,而乘法运算利用一个与门也可以轻易实现。特别地,有限域GW2m)可以看做GW2)的m维扩域,包括2-个元素。此时,有限域加法可由m个异或门实现,而乘法运算的实现则要复杂很
^^ ο在实现上,加法运算对应相应位数的异或门,而乘法的实现,效率远低于加法,资源消耗则远高于加法,是有限域运算的关键。另一方面,其他运算,如指数运算、除法运算、 求逆运算等都是通过乘法的多次运算来实现。因而乘法器的性能是有限域运算在上述领域应用的关键。目前已提出的有限域乘法器主要有两类比特串行乘法器和比特并行乘法器。在输入位宽为m的情况下。比特串行乘法器具有0(m)空间复杂度(0(m)表示算法的空间消耗与m成正比),该方法对同一个模块进行轮询操作,能够将资源消耗降至最低。但该方案需要等待m个周期后才能得到输出,时延大。比特并行乘法器具有(0(m2))空间复杂度,该方法结构紧凑,易于硬件实现,能够实现较高的吞吐量,适宜于现今高速的通信系统,但其消耗大量资源,不适宜成本的节约。
发明内容
本发明提供了一种基于串并结合实现有限域乘法的方法,该方法能将简化乘法器结构,提高有限域内乘法运算的效率。为达到上述目的,该方法是这样实现的本发明公开了一种基于串并结合实现有限域乘法的方法,本方法用于实现有限域内m位乘法因子A和m位乘法因子B的相乘运算,该方法包括对m位的乘法因子A按从低位到高位进行分组,以k位为一组,分为P组,分组后的各组表示为 ei;其中「m/k] = p,i = 0,1,... ,P-I ;将%与乘法因子B进行有限域内的乘法运算,得到D' ^ ;将D' ^作下一步中的 C'工输出;对乘法因子B进行有限域内左移k位操作,得到E1;将。与P进行有限域内乘法运算,得到D' y将D'彳与C'彳进行有限域内的加法运算,得到C' J+1 ;将Ej进行有限域内左移k位操作,得到E” ;其中,j = 1,2,3... p-2 ;将Vl与Elri进行有限域内乘法运算,得到D' ;将D' 与C' 进行有限域内的加法运算,得到C' ;输出C' D即为乘法因子A和乘法因子B在有限域内的乘积。
本发明还提供了一种基于串并结合实现有限域乘法的装置,该装置用于实现有限域内m位乘法因子A和m位乘法因子B的相乘运算,所述装置包括输入模块,分组模块,输出模块,P个PM模块,ρ个PM模块包括PM1模块、PM2模块...、PMp模块;输入模块,用于将m位乘法因子A发送给分组模块,将m位乘法因子B发送给PM1 模块;分组模块,用于接收输入模块发送的乘法因子A,将乘法因子A从低位到高位进行分组操作,以k位为一组,分成ρ组,分组后的各组表示为ei,将ei依次发送给相应的PMi+1 模块;其中「m/k] = p ,i = 0,1,... ,p-1 ;PM1模块,用于接收分组模块发送的e(l,以及输入模块发送的乘法因子B ;将%和B 进行有限域内的乘法运算,得到D' ^将D' J乍为C'工发送给PM2模块;将乘法因子B进行有限域内左移k位操作,得到E1Jf E1发送给PM2模块;PMJ+1模块,用于接收分组模块发送的e」,以及PMj模块发送的E^与C' j ;将ej与 E^进行有限域内的乘法运算,得到D' y将D'彳与C'彳进行有限域内的加法运算,得到 C' m,将C' J+1发送给PMp2模块;将E^进行有限域内左移k位操作,得到E^df Ε”1发送给 PMj+2 模块,其中,j = 1,2,3. . . p-2 ;PMp模块,用于接收分组模块发送的,以及PMlri模块发送的Elri与C' ;将y 与Elri进行有限域内乘法运算,得到D' ,将D' 与C' 进行有限域内的加法运算, 得到C' p,将C' p发送给输出模块;输出模块,用于接收PMp模块发送的C' p,将C' p输出。有上述可知,本发明这种通过串并结合的方法,将高位宽的相乘运算分解成多个低位宽的相乘运算,缩短了有限域乘法计算的关键路径,降低了空间复杂度,提高了有限域内乘法运算的效率。
图1是本发明中的一种基于串并结合实现有限域乘法的方法的流程图;图2是本发明中一种基于串并结合实现有限域乘法的装置的整体结构示意图;图3是本发明中一种基于串并结合实现有限域乘法的装置的PM1模块的内部结构图;图4是本发明中一种基于串并结合实现有限域乘法的装置的PMp1模块的内部结构图;图5是本发明中一种基于串并结合实现有限域乘法的装置的PMp模块的内部结构图;图6是本发明中一种基于串并结合实现有限域乘法的装置的改进的Arash乘法器模块结构示意图;图7是本发明中一种基于串并结合实现有限域乘法的装置的MTP单元的结构示意图;图8是本发明中一种基于串并结合实现有限域乘法的装置的移位模块的结构示意图;图9是本发明中一种基于串并结合实现有限域乘法的装置的异或门阵列模块结构示意图;图10是本发明中一种基于串并结合实现有限域乘法的装置的实施例的结构示意图。
具体实施例方式本发明公开了一种基于串并结合实现有限域乘法的方法,本方法用于实现有限域内m位乘法因子A和m位乘法因子B的相乘运算,为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。图1是本发明中的一种基于串并结合实现有限域乘法的方法的流程图,如图1所示步骤101,对m位的乘法因子A按从低位到高位进行分组,以k位为一组,分为ρ 组,分组后的各组表示为其中「m/k>p,i = 0,1,...,ρ-1 ;步骤102,将%与乘法因子B进行有限域内的乘法运算,得到D' ^ ;将D' ^作下一步中的C'工输出;对乘法因子B进行有限域内左移k位操作,得到E1;步骤103,将4与P进行有限域内乘法运算,得到D'」;将0'」与('」进行有限域内的加法运算,得到C' J+1 ;将P进行有限域内左移k位操作,得到P1 ;其中,j = 1, 2, 3. . . ρ-2 ;步骤104,将Vl与Elri进行有限域内乘法运算,得到D'“;将D' ^与C' ^进行有限域内的加法运算,得到C' p;输出C' p即为乘法因子A和乘法因子B在有限域内的乘积。本发明这种将有限域内的高阶乘法运算分解成有限域内多个低阶乘法运算,其中,将上一个低阶乘法运算的结果作为下一个低阶乘法运算的输入;「1表示向上取整函数,「m/k> ρ,即分组个数ρ的值等于将m/k的值向上取整;其中,最高位不足k位时, 将不足的位数进行补0操作,补成k位。本发明中,乘法因子A的第一个分组%与B进行有限域内的乘法运算得到D ‘ ^与将ej与E^进行有限域内乘法运算得到D' j的过程相同,其中E^由乘法因子B经过j次左移操作得到;下面以。与E^进行有限域内乘法运算得到D' j为例说明;首先,E^进行m次左移位操作,每次左移一位,得到m个m位的数,将依次得到的数构成矩阵Lm, m ;将矩阵Lm, m进行矩阵列截短得到m行k列的矩阵Lm, k,将矩阵Lm, k与。进行相乘运算,得到LnukXej ;Ej进行m-1次右移位操作,每次右移一位,得到m-1个m位的数,将依次得到的数构成矩阵Um-U ;将矩阵Um-U进行矩阵行列截短得到k-Ι行k列矩阵Uk+k,将矩阵UkIk与 ej进行相乘运算,得到矩阵U1^kXej ;将U1^kX &进行矩阵化简运算后,与Lm,kX & —起进行异或操作,所述异或操作即得进行相加运算;得到D' JO本发明还公开了一种基于串并结合实现有限域乘法的装置,该装置用于实现有限域内m位乘法因子A和m位乘法因子B的相乘运算,如图2所示,图2是本发明中一种基于串并结合实现有限域乘法的装置的整体结构示意图。该装置包括输入模块201,分组模块 202,输出模块206,ρ个PM模块,该ρ个PM模块包括PM1模块203、. . . PMJ+1模块204...、
7PMp 模块 205 ;输入模块201,用于将m位乘法因子A发送给分组模块202,将m位乘法因子B发送给PM1模块203;分组模块202,用于接收输入模块201发送的乘法因子A,将乘法因子A从低位到高位进行分组操作,以k位为一组,分成ρ组,分后的各组表示为ei,将ei依次发送给相应的 PMi+1 模块;其中「m/k] = ρ,i = 0,1,· · ·,p-1 ;PM1模块203,用于接收分组模块202发送的%,输入模块201发送的乘法因子B ; 将%和8进行有限域内的乘法运算,得到D' ^将D' J乍为C'工发送给PM2模块;将乘法因子B进行有限域内左移k位操作,得到E1Jf E1发送给PM2模块;PMJ+1204模块,用于接收分组模块202发送的PMj模块发送的E^与C' j ;将ej 与P进行有限域内的乘法运算,得到D' y将D'彳与C'彳进行有限域内的加法运算,得到 C' m,将C' J+1发送给PMp2模块;将E^进行有限域内左移k位操作,得到E^df Ε”1发送给 PMj+2 模块,其中,j = 1,2,3. . . p-2 ;PMp模块205,用于接收分组模块发送的^v1,PMlri模块发送的Elri与C' p+1 ;将
与Elri进行有限域内乘法运算,得到D' ,将D' 与C' 进行有限域内的加法运算, 得到C' p,将C' 送给输出模块206;输出模块206,用于接收PMp模块205发送的C' p,将C' p输出。所述输出模块 206输出的C' p即为m位乘法因子A和m位乘法因子B在有限域内的相乘运算的结果。如图2所示,该装置中共有ρ个PM模块,其中「m/kl = ρ ,在该ρ个PM模块中,除 PM1模块203和PMp模块205夕卜,其余的Bl2模块至PMlri模块都有相同的结构,并且该ρ个 PM模块依次相连。图3是本发明中一种基于串并结合实现有限域乘法的装置的PM1模块的内部结构图,如图3所示,所示PM1模块203包括改进的Arash乘法器模块302,移位模块301,寄存 ^IZ1 303,寄存器 C1 304 ;改进的Arash乘法器模块302,用于接收输入模块201发送的乘法因子B,分组模块202发送的% ^fB与%进行有限域内的乘法运算,将得到的相乘结果D' ^乍为C'工发送寄存器C1 304 ;移位模块301,用于接收输入模块201发送的乘法因子B,将乘法因子B进行在有限域内左移k位操作,得到E1Jf E1发送给寄存器\ 303 ;寄存器\ 303,用于存储移位模块301发送的E1 ;寄存器C1 304,用于存储改进的Arash乘法器模块302发送的C' 10PM1模块203的输入由图2中的输入模块201和分组模块202提供输入。图4是本发明中一种基于串并结合实现有限域乘法的装置的PMp1模块的内部结构图,如图4所示,所述PMp1模块204包括改进的Arash乘法器模块401,移位模块402, 异或阵列模块403,寄存器404,寄存器Cp1 405;其中,改进的Arash乘法器模块401,用于从寄存器&中读取Ej,接收分组模块202发送的 将P与。进行有限域内的乘法运算,得到D' y将D'彳发送异或阵列模块403 ;移位模块402,用于读取寄存器\中的E^将E^进行有限域内左移k位操作,得到 Ej+1,将P1发送给寄存器
异或阵列模块403,用于读取寄存器Cj中的C'」,接收改进的Arash乘法器模块 401发送的D'」;将('」与0'」进行有限域内的加法运算;得到C' j+1,将C' m发送给寄存器CV1 404 ;寄存器Zj+1 405,用于存储移位模块402发送的E”1 ;寄存器Cp1 404,用于存储异或阵列模块403发送的C' J+1。其中寄存器τ、和寄存器&是PM^模块中的寄存器模块。图5是本发明中一种基于串并结合实现有限域乘法的装置的PMp模块的内部结构图,如图5所示,所述PMp模块205包括改进的Arash乘法器模块501,异或阵列模块502, 寄存器Cp 503 ;其中,改进的Arash乘法器模块501,用于从寄存器^ri中读取Ep.1,接收分组模块202发送的^V1,将Elri与Vl进行有限域内的乘法运算;得到D' ,将D' 发送异或阵列模块 502 ;异或阵列模块502,用于从寄存器Clri读取C' ,接收改进的Arash乘法器模块 501发送的D' ;将C' 与D' 进行有限域内的加法运算,得到C'p发送给寄存器Cp 503 ;寄存器Cp 503,用于存储异或阵列模块502发送的C' p。在各PM模块中,所包含的改进的Arash乘法器模块、异或阵列模块、移位模块、寄存器都具有相同的结构。图6是本发明中一种基于串并结合实现有限域乘法的装置的改进的Arash乘法器模块结构示意图;如图6所示,所述改进的Arash乘法器模块包括左移位模块601,矩阵列截短模块602,矩阵相乘模块605,右移位模块603,矩阵行列截短模块604,矩阵简化模块 606,二元异或门列模块607 ;其中,左移位模块601,用于接收输入模块201发送的乘法因子B或读取寄存器&存储的E^将获取到的操作数进行m次左移位操作,得到m行m列的矩阵Lm,将所述矩阵Lm发送给矩阵列截短模块602 ;所述左移位模块601包括m个m位的移位寄存器,将所获得的操作数E^或是乘法因子B进行左移位操作,将每次左移得到的数存放在对应的移位寄存器中,经过m次左移位操作,得到m个m位的数,将该m个m位寄存器中的数构成一个m行m列的矩阵Lm ;其中, 每个操作数都有一个与之相对应的矩阵Lm,m。矩阵列截短模块602,用于接收左移位模块601发送的矩阵Lm,m,将所述矩阵Lm, m 进行矩阵列截短操作,得到m行k列的矩阵Lm,k ;将矩阵Lm,k发送给矩阵相乘模块605,其中 Lffl, k即在矩阵Lm,m中取前m行k列的数构成;右移位模块603,用于接收输入模块201发送的乘法因子B或读取寄存器&中存储的E^将获取到的操作数进行m-1次右移位操作,得到m-1行m列的矩阵Un^m,将所述矩阵 U11^m发送给矩阵行列截短模块604 ;所述右移位模块603包括m-1个m位的移位寄存器,;矩阵行列截短模块604,用于接收右移位模块603发送的矩阵Un^m,将所述矩阵 Unrl,m进行矩阵行列截短操作,得到k-1行k列的矩阵UkIk ;将矩阵Uk-U发送给矩阵相乘模块 605 ;矩阵相乘模块605,用于将矩阵列截短模块602发送的与E^相对应的左移矩阵Lm,
9k和分组模块202发送的ej进行相乘运算,得到Lm,kX ej ;将Lffl,kXej发送给二元异或门列模块607 ;用于将矩阵行列截短模块604发送的与E^相对应的右移矩阵U1^k和分组模块202 发送的h进行相乘运算,得到U1^kXh ;将Uk^ukXej发送给矩阵简化模块606 ;如图6所示,矩阵相乘模块605包括m+k-1个MTP单元,其中,m个MTP单元与矩阵列截短模块602相连,用于实现矩阵Lm,k与ej的相乘运算,将得到中间结果LnbkXej发送给二元异或门列模块607,其中,中间结果Lm,kXh为m行1列的矩阵;该m个MTP从第1列到到k列依次为MTP” MTP2. · · MTPk ;从第k+Ι列到m列都为MTPko矩阵相乘模块605中k-Ι个MTP单元与矩阵行列截短模块604相连,用于实现矩阵UkIk与h的相乘运算得到中间结果为UkIkXh,该Uk^ukXej为k-Ι行1列的矩阵。该 k-Ι 个 MTP 单元分别为 MTPlri、. . .、MTP2、MTP115矩阵简化模块606,用于接收矩阵相乘模块605发送的U1^kX 将U1^kX ^化简成m行1列的矩阵Rnbl ;将矩阵Rnbl发送给二元异或门列模块607 ;上述矩阵简化模块606用于实现矩阵相乘模块605发送的U1^kX e」与简化矩阵R 相乘,将k-Ι行1列的矩阵转换成m行1列的矩阵Rnult5所述简化矩阵R矩阵由有限域上的不可约多项式P(X) = xm+xkt+.. +xk2+xkl+l确定且具有唯一性,其生成规则如下R矩阵的第0行有t+Ι列1,其余列为0,1的分布分别在0,kl,k2,. . .,kt列,其中0,kl,k2,· · ·,kt为表示P(X) = xm+xkt+. · +xk2+xkl+l中X的幂,t为计数单位,表示为第几个;R矩阵的第1行至m-kt-1行由第0行依次右移位得到。R矩阵的第m-kt至m-2行的构造规则如下当i行最后一列以1结尾时,i+1行向右移一位并与第0行的值进行异或运算;当i行最后一列以0结尾时,i+1行向右移一位。在本发明中按照上述构造规则,构造第0行至第k_2行,得到的简化矩阵R为k_l 行m列矩阵。二元异或门列模块607,用于接收矩阵相乘模块605发送的Lm,kX e」和矩阵简化模块606发送的相对应的矩阵I^1JfLnbkXh与Rnbl进行异或操作,得到D' P将D'彳输出。 其中Lm,kXh为m行1列的矩阵,Rnbl也是m行1列的矩阵,将Lm,kXh与Rnbl进行异或操作得到的结果即D' JO D'彳即低阶乘法装置将m位乘法因子与k位的乘法因子相乘得到的结果。该结果D'彳与寄存器&中的C'彳进行异或操作,将得到的结果C' μ存储在寄存器CV1中,将用于下一个低阶乘法装置的输入,依次进行运算,得到最终结果C' ρ。图7是本发明中一种基于串并结合实现有限域乘法的装置的MTPx单元的结构示意图,如图7所示,所述MTPx单元包括χ个与门和X-I个异或门,其中,χ个与门为并列结构,位于第一级,x-1个异或门为树形结构,χ个与门与x-1异或门次级连接。图8是本发明中一种基于串并结合实现有限域乘法的装置的移位模块的结构示意图,所述移位模块用于对操作数Ei依次进行有限域内左移K位的操作,得到结果为Ei+1。 如图8所示,所述移位模块包括I k,m矩阵模块801和异或门结果802。其中,I k,m矩阵模块 801中的矩阵与矩阵简化模块606中的矩阵Rm的原理与生成规则相同,即都是由简化矩阵R转换得到的;所述由简化矩阵R中的k行m列构造而成。以操作数Ε"为例,其中E” (j = 0... m-1)用来表示E"的第j位的位值;所述Ε—1共有m为分别为Ε;-1、ΕΓ1 ,…. 或门模块802,从E二到E=发送给R1 相乘后将m位数,分别为玛、E丨、
E=。如图所示,其中从机-1、…、E二4直接发送给异 ,m矩阵模块801,经Rk, m矩阵模块801的简化矩阵Rk, m ...E^1 ;其中玛、…、E^1直接输出,其余的发送给
EInI1进行异或操作得到Ε;
E1
异或门模块802,通过异或门模块802与机-1、...、 所述输出的数共m位即Ei-1经过左移k位得到的E、图9是本发明中一种基于串并结合实现有限域乘法的装置的异或门阵列模块结构示意图,如图9所示,所述异或门阵列模块901有m个并列结构的异或门构成。下面结合具体实施例来说明本发明。GCM(Galois/Counter Mode)是一种在二元 (ialois域使用泛散列提供加密认证的分组密码算法。其中认证方案核心为1 位乘法装置。即实现m位的乘法因子A和m位的乘法因子B的乘法运算,其中m= 128。图10是本发明中一种基于串并结合实现有限域乘法的装置的实施例的结构示意图;如图10所示,步骤l,m = 128,对1 位宽的乘法因子A进行位宽分割,以k = 8比特位宽为一组,可以分为P= [128/8] = 16个组;即乘法因子A的[7:0]为eQ,[15:8]为ei,L[127:120] 记为ep_i ;乘法因子B不进行分组,直接由输入模块发送给PM1模块。可知其所对应的有限域 GF(2128)上的不可约多项式为 P(x) = x128+x7+x2+x+l,BP kl = l,k2 = 2,k3 = 7,共有 3 个数则t = 3。则构造的简化矩阵R的第0行有t+1 = 4个1,分别在0,1,2,7列;简化矩阵R的第1行至6行由第0行依次右移位得到。得到简化矩阵R为
权利要求
1.一种基于串并结合实现有限域乘法的方法,本方法用于实现有限域内m位乘法因子 A和m位乘法因子B的相乘运算,其特征在于,该方法包括对m位的乘法因子A按从低位到高位进行分组,以k位为一组,分为ρ组,分组后的各组表示为 e”其中「m/k] = p,i = 0,1,· · ·,p-l ;将%与乘法因子B进行有限域内的乘法运算,得到D' ^将D' J乍下一步中的C'工输出;对乘法因子B进行有限域内左移k位操作,得到E1 ;将h与P进行有限域内乘法运算,得到D' y将D'彳与C'彳进行有限域内的加法运算,得到C' J+1 ;将Ej进行有限域内左移k位操作,得到Ε”1 ;其中,j = 1,2,3. . . p-2 ;将 ―与Elri进行有限域内乘法运算,得到D' ;将D' 与C' 进行有限域内的加法运算,得到C' p;输出C' p即为乘法因子A和乘法因子B在有限域内的乘积。
2.根据权利要求1所述的方法,其特征在于,所述将%与B进行有限域内乘法运算,得到D'。包括B进行m次左移位操作,将依次得到的数构成矩阵Lm, m ;将矩阵Lm, m进行矩阵列截短得到矩阵Lm,k,将矩阵Lm,k与%进行相乘运算,得到Lm,kX% ;B进行m-1次右移位操作,将依次得到的数构成矩阵Um_Um ;将矩阵Un^m进行矩阵行列截短得到矩阵Uk+k,将矩阵Ulri,k与%进行相乘运算,得到U1^kXi5ci ;将U1^kXi5ci进行矩阵化简运算后,与LnbkXi5ci —起进行异或操作,得到D'。;
3.根据权利要求1所述的方法,其特征在于,所述将。与E^进行有限域内乘法运算, 得到D'彳包括Ej进行m次左移位操作,将依次得到的数构成矩阵Lm ;将矩阵Lm进行矩阵列截短得到矩阵Lm,k,将矩阵Lm,k与&进行相乘运算,得到LnukXej ;Ej进行m-1次右移位操作,将依次得到的数构成矩阵U11^m ;将矩阵U1^m进行矩阵行列截短得到矩阵Uk+k,将矩阵Ulri,k与&进行相乘运算,得到U1^kXej ;将U1^kXh进行矩阵化简运算后,与Lm,kXh —起进行异或操作,得到D' j ; 其中,j = 1,2,3. . .p-2。
4.根据权利要求1所述的方法,其特征在于,将^v1与Elri进行有限域内乘法运算,得到D' ^包括Ε5"1进行m次左移位操作,将依次得到的数构成矩阵Lm, m ;将矩阵Lm, m进行矩阵列截短得到矩阵Lm,k,将矩阵Lm,k与进行相乘运算,得到LnbkXelri ;Elri进行m-1次右移位操作,将依次得到的数构成矩阵Uirl, m ;将矩阵Uirl, m进行矩阵行列截短得到矩阵Uk+k,将矩阵Ulri,k与Vl进行相乘运算,得到U1^kXvi ;将U1^kXvi进行矩阵化简运算后,与LnukXelri—起进行异或操作,得到D' ;
5.一种基于串并结合实现有限域乘法的装置,该装置用于实现有限域内m位乘法因子 A和m位乘法因子B的相乘运算,其特征在于,该乘法器包括输入模块,分组模块,输出模块,ρ个PM模块,这ρ个PM模块分别为=PM1模块、PM2模块.....PMp模块;输入模块,用于将m位乘法因子A发送给分组模块,将m位乘法因子B发送给PM1模块; 分组模块,用于接收输入模块发送的乘法因子A,将乘法因子A从低位到高位进行分组操作,以k位为一组,分成ρ组,分组后的各组表示为ei,将ei依次发送给相应的PMi+1模块;其中「m/k] = p,i = 0,1,···,p-1 ;PM1模块,用于接收分组模块发送的%,以及输入模块发送的乘法因子B ;将%和8进行有限域内的乘法运算,得到D' ^将D' J乍为C'工发送给PM2模块;将乘法因子B进行有限域内左移k位操作,得到E1Jf E1发送给PM2模块;PMJ+1模块,用于接收分组模块发送的 以及PM^模块发送的E^与C' j ;将ej与E^进行有限域内的乘法运算,得到D' ^将D'彳与C'彳进行有限域内的加法运算,得到C' j+1, 将C' J+1发送给PMp2模块;将E^进行有限域内左移k位操作,得到E^df E^发送给PMj+2 模块,其中,j = 1,2,3···ρ-2 ;PMp模块,用于接收分组模块发送的^v1,以及PMlri模块发送的Elri与C' ;将Vl与 Elri进行有限域内乘法运算,得到D' ^JfD' 与C' 进行有限域内的加法运算,得到 C' p,将C' p发送给输出模块;输出模块,用于接收PMp模块发送的C' p,将C' p输出。
6.根据权利要求5所述的装置,所述PM1模块包括改进的Arash乘法器模块,移位模块,寄存器Z1,寄存器C1 ;其中,改进的Arash乘法器模块,用于接收输入模块发送的乘法因子B,分组模块发送的% ; 将B与%进行有限域内的乘法运算,将得到的相乘结果D' J乍为C'工发送寄存器C1;移位模块,用于接收输入模块发送的乘法因子B,将乘法因子B进行在有限域内左移k 位操作,得到E1Jf E1发送给寄存器Z1 ; 寄存器&,用于存储移位模块发送的E1 ; 寄存器C1,用于存储改进的Arash乘法器模块发送的C' 10
7.根据权利要求5所述的装置,所述PMp1模块包括改进的Arash乘法器模块,移位模块,异或阵列模块,寄存器Zj+1,寄存器Cp1 ;其中,改进的Arash乘法器模块,用于从寄存器τ、中读取E^接收分组模块发送的e」,将E^与 ej进行有限域内的乘法运算,得到D' j ;将D' j发送异或阵列模块;移位模块,用于读取寄存器τ、中的E^将E^进行有限域内左移k位操作,得到E”1,将 EJ+1发送给寄存器;异或阵列模块,用于读取寄存器Cj中的C'」,接收改进的Arash乘法器模块发送的 D' y将C'彳与D'彳进行有限域内的加法运算;得到C' m,将C' Μ发送给寄存器Cj+1 ; 寄存器,用于存储移位模块发送的Ε”1 ; 寄存器C^1,用于存储异或阵列模块发送的C' J+1 ; 其中,j = 1,2,3. · ·ρ-2。
8.根据权利要求5所述的装置,所述PMp模块包括改进的Arash乘法器模块,异或阵列模块,寄存器Cp;其中,改进的Arash乘法器模块,用于从寄存器Zlri中读取Ep4,接收分组模块发送的 ―,将 Elri与^v1进行有限域内的乘法运算;得到D' ^JfD' 发送异或阵列模块;异或阵列模块,用于从寄存器Clri读取C' ,接收改进的Arash乘法器模块发送的 D' H^fC' 与D' 进行有限域内的加法运算,得到C'p发送给寄存器Cp;寄存器Cp,用于存储异或阵列模块发送的C' p。
9.根据权利要求6至8中任一项所述的装置,其特征在于,所述改进的Arash乘法器模块包括左移位模块,矩阵列截短模块,矩阵相乘模块,右移位模块,矩阵行列截短模块,矩阵简化模块,二元异或门列模块;其中,左移位模块,用于接收输入模块发送的乘法因子B或读取寄存器τ、存储的E^将获取到的操作数进行m次左移位操作,得到m行m列的矩阵Lm, m,将所述矩阵Lm, m发送给矩阵列截短模块;矩阵列截短模块,用于接收左移位模块发送的矩阵Lm, m,将所述矩阵Lm, m进行矩阵列截短操作,得到m行k列的矩阵Lm, k ;将矩阵Lm, k发送给矩阵相乘模块;右移位模块,用于接收输入模块发送的乘法因子B或读取寄存器τ、中存储的E^将获取到的操作数进行m-1次右移位操作,得到m-1行m列的矩阵U11^m,将所述矩阵Un^m发送给矩阵行列截短模块;矩阵行列截短模块,用于接收右移位模块发送的矩阵Un^m,将所述矩阵Un^m进行矩阵行列截短操作,得到k-Ι行k列的矩阵U1^k ;将矩阵Unk发送给矩阵相乘模块;矩阵相乘模块,用于将矩阵列截短模块发送的与E^相对应的左移矩阵Lm, k和分组模块发送的h进行相乘运算,得到Lm,kX。;将Lm,kX。发送给二元异或门列模块;用于将矩阵行列截短模块发送的与E^相对应的右移矩阵Uh’ k和分组模块发送的。进行相乘运算,得到 Uk-^kXej ;将U1^kXej发送给矩阵简化模块;矩阵简化模块,用于接收矩阵相乘模块发送的Ulrl, kX ep将Ulrl, kX &化简成m列1行的矩阵I^1 ;将矩阵Rmil发送给二元异或门列模块;二元异或门列模块,用于接收矩阵相乘模块发送的Lm, kX。和矩阵简化模块发送的相对应的矩阵Rnbl ;将Lm,与Rnbl进行异或操作,得到D' ρ将D'彳输出。
10.根据权利要求9所述的装置,其特征在于,所述矩阵相乘模块包括m+k-1个MTP单元其中的m个MTP单元用于实现与E^相对应的矩阵Lm, k和输入模块发送的e」的相乘运算;这 m 个 MTP 单元依次为 MTP1, MTP2. · · MTPk、· · ·、MTPk ;k-Ι个MTP单元用于实现输入模块发送的e」和与E^相对应的矩阵Ulri, k的相乘运算; 该 k-Ι 个 MTP 单元分别为 MTPh、· · ·、MTP2, MTP1 ;MTPx单元包括χ个与门和x-1个异或门,其中,χ个与门为并列结构,x-1个异或门为树形结构,χ个与门与x-1异或门次级连接;χ = 1,2,...,k。
全文摘要
本发明公开了一种基于串并结合实现有限域乘法的方法及装置,所述方法包括对m位的乘法因子A按从低位到高位进行分组,以k位为一组,分为p组,分组后的各组表示为ei,其中i=0,1,...,p-1;将e0与乘法因子B进行有限域内的乘法运算,得到D0;将D′0作下一步中的C′1输出;对乘法因子B进行有限域内左移k位操作,得到E1;将ej与Ej进行有限域内乘法运算,得到D′j;将D′j与C′j进行有限域内的加法运算,得到C′j+1;将Ej进行有限域内左移k位操作,得到Ej+1;其中,j=1,2,3...p-2;将ep-1与Ep-1进行有限域内乘法运算,得到D′p-1;将D′p-1与C′p-1进行有限域内的加法运算,得到C′p;输出C′p即为乘法因子A和乘法因子B在有限域内的乘积。本发明的技术方案能提高有限域乘法的运算效率。
文档编号G06F7/72GK102184088SQ201110071080
公开日2011年9月14日 申请日期2011年3月23日 优先权日2011年3月23日
发明者寿国础, 张学茹, 毛泽湘, 白岩, 胡怡红, 郭志刚 申请人:北京邮电大学