CN102184088A - 一种基于串并结合实现有限域乘法的方法及装置 - Google Patents

一种基于串并结合实现有限域乘法的方法及装置 Download PDF

Info

Publication number
CN102184088A
CN102184088A CN2011100710806A CN201110071080A CN102184088A CN 102184088 A CN102184088 A CN 102184088A CN 2011100710806 A CN2011100710806 A CN 2011100710806A CN 201110071080 A CN201110071080 A CN 201110071080A CN 102184088 A CN102184088 A CN 102184088A
Authority
CN
China
Prior art keywords
module
matrix
carry out
multiplication
galois field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011100710806A
Other languages
English (en)
Other versions
CN102184088B (zh
Inventor
寿国础
毛泽湘
白岩
张学茹
胡怡红
郭志刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN 201110071080 priority Critical patent/CN102184088B/zh
Publication of CN102184088A publication Critical patent/CN102184088A/zh
Application granted granted Critical
Publication of CN102184088B publication Critical patent/CN102184088B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明公开了一种基于串并结合实现有限域乘法的方法及装置,所述方法包括:对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在有限域内的乘积。本发明的技术方案能提高有限域乘法的运算效率。

Description

一种基于串并结合实现有限域乘法的方法及装置
技术领域
本发明涉及信息技术领域,特别是一种基于串并结合实现有限域乘法的方法及装置。
背景技术
有限域运算在差错控制、密码学领域均得到广泛应用。特别是在加密认证算法中,有限域运算应用广泛,它是指在特定的规则下进行的两类运算:加法运算和乘法运算。
有限域GF(2)仅包含两个元素0和1,加法运算很容易利用一个异或门来实现,而乘法运算利用一个与门也可以轻易实现。特别地,有限域GF(2m)可以看做GF(2)的m维扩域,包括2m个元素。此时,有限域加法可由m个异或门实现,而乘法运算的实现则要复杂很多。
在实现上,加法运算对应相应位数的异或门,而乘法的实现,效率远低于加法,资源消耗则远高于加法,是有限域运算的关键。另一方面,其他运算,如指数运算、除法运算、求逆运算等都是通过乘法的多次运算来实现。
因而乘法器的性能是有限域运算在上述领域应用的关键。
目前已提出的有限域乘法器主要有两类:比特串行乘法器和比特并行乘法器。在输入位宽为m的情况下。比特串行乘法器具有O(m)空间复杂度(O(m)表示算法的空间消耗与m成正比),该方法对同一个模块进行轮询操作,能够将资源消耗降至最低。但该方案需要等待m个周期后才能得到输出,时延大。比特并行乘法器具有(O(m2))空间复杂度,该方法结构紧凑,易于硬件实现,能够实现较高的吞吐量,适宜于现今高速的通信系统,但其消耗大量资源,不适宜成本的节约。
发明内容
本发明提供了一种基于串并结合实现有限域乘法的方法,该方法能将简化乘法器结构,提高有限域内乘法运算的效率。
为达到上述目的,该方法是这样实现的:
本发明公开了一种基于串并结合实现有限域乘法的方法,本方法用于实现有限域内m位乘法因子A和m位乘法因子B的相乘运算,该方法包括:
对m位的乘法因子A按从低位到高位进行分组,以k位为一组,分为p组,分组后的各组表示为ei,其中
Figure BDA0000051672360000021
i=0,1,...,p-1;
将e0与乘法因子B进行有限域内的乘法运算,得到D′0;将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在有限域内的乘积。
本发明还提供了一种基于串并结合实现有限域乘法的装置,该装置用于实现有限域内m位乘法因子A和m位乘法因子B的相乘运算,所述装置包括:输入模块,分组模块,输出模块,p个PM模块,p个PM模块包括PM1模块、PM2模块...、PMp模块;
输入模块,用于将m位乘法因子A发送给分组模块,将m位乘法因子B发送给PM1模块;
分组模块,用于接收输入模块发送的乘法因子A,将乘法因子A从低位到高位进行分组操作,以k位为一组,分成p组,分组后的各组表示为ei,将ei依次发送给相应的PMi+1模块;其中
Figure BDA0000051672360000031
i=0,1,...,p-1;
PM1模块,用于接收分组模块发送的e0,以及输入模块发送的乘法因子B;将e0和B进行有限域内的乘法运算,得到D′0;将D′0作为C′1发送给PM2模块;将乘法因子B进行有限域内左移k位操作,得到E1,将E1发送给PM2模块;
PMj+1模块,用于接收分组模块发送的ej,以及PMj模块发送的Ej与C′j;将ej与Ej进行有限域内的乘法运算,得到D′j;将D′j与C′j进行有限域内的加法运算,得到C′j+1,将C′j+1发送给PMj+2模块;将Ej进行有限域内左移k位操作,得到Ej+1,将Ej+1发送给PMj+2模块,其中,j=1,2,3...p-2;
PMp模块,用于接收分组模块发送的ep-1,以及PMp-1模块发送的Ep-1与C′p-1;将ep-1与Ep-1进行有限域内乘法运算,得到D′p-1,将D′p-1与C′p-1进行有限域内的加法运算,得到C′p,将C′p发送给输出模块;
输出模块,用于接收PMp模块发送的C′p,将C′p输出。
有上述可知,本发明这种通过串并结合的方法,将高位宽的相乘运算分解成多个低位宽的相乘运算,缩短了有限域乘法计算的关键路径,降低了空间复杂度,提高了有限域内乘法运算的效率。
附图说明
图1是本发明中的一种基于串并结合实现有限域乘法的方法的流程图;
图2是本发明中一种基于串并结合实现有限域乘法的装置的整体结构示意图;
图3是本发明中一种基于串并结合实现有限域乘法的装置的PM1模块的内部结构图;
图4是本发明中一种基于串并结合实现有限域乘法的装置的PMj+1模块的内部结构图;
图5是本发明中一种基于串并结合实现有限域乘法的装置的PMp模块的内部结构图;
图6是本发明中一种基于串并结合实现有限域乘法的装置的改进的Arash乘法器模块结构示意图;
图7是本发明中一种基于串并结合实现有限域乘法的装置的MTP单元的结构示意图;
图8是本发明中一种基于串并结合实现有限域乘法的装置的移位模块的结构示意图;
图9是本发明中一种基于串并结合实现有限域乘法的装置的异或门阵列模块结构示意图;
图10是本发明中一种基于串并结合实现有限域乘法的装置的实施例的结构示意图。
具体实施方式
本发明公开了一种基于串并结合实现有限域乘法的方法,本方法用于实现有限域内m位乘法因子A和m位乘法因子B的相乘运算,为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图1是本发明中的一种基于串并结合实现有限域乘法的方法的流程图,如图1所示:
步骤101,对m位的乘法因子A按从低位到高位进行分组,以k位为一组,分为p组,分组后的各组表示为ei,其中
Figure BDA0000051672360000051
i=0,1,...,p-1;
步骤102,将e0与乘法因子B进行有限域内的乘法运算,得到D′0;将D′0作下一步中的C′1输出;对乘法因子B进行有限域内左移k位操作,得到E1
步骤103,将ej与Ej进行有限域内乘法运算,得到D′j;将D′j与C′j进行有限域内的加法运算,得到C′j+1;将Ej进行有限域内左移k位操作,得到Ej+1;其中,j=1,2,3...p-2;
步骤104,将ep-1与Ep-1进行有限域内乘法运算,得到D′p-1;将D′p-1与C′p-1进行有限域内的加法运算,得到C′p;输出C′p即为乘法因子A和乘法因子B在有限域内的乘积。
本发明这种将有限域内的高阶乘法运算分解成有限域内多个低阶乘法运算,其中,将上一个低阶乘法运算的结果作为下一个低阶乘法运算的输入;
Figure BDA0000051672360000061
表示向上取整函数,
Figure BDA0000051672360000062
即分组个数p的值等于将m/k的值向上取整;其中,最高位ep-1不足k位时,将不足的位数进行补0操作,补成k位。
本发明中,乘法因子A的第一个分组e0与B进行有限域内的乘法运算得到D′0与将ej与Ej进行有限域内乘法运算得到D′j的过程相同,其中Ej由乘法因子B经过j次左移操作得到;下面以ej与Ej进行有限域内乘法运算得到D′j为例说明;
首先,Ej进行m次左移位操作,每次左移一位,得到m个m位的数,将依次得到的数构成矩阵Lm,m;将矩阵Lm,m进行矩阵列截短得到m行k列的矩阵Lm,k,将矩阵Lm,k与ej进行相乘运算,得到Lm,k×ej
Ej进行m-1次右移位操作,每次右移一位,得到m-1个m位的数,将依次得到的数构成矩阵Um-1,m;将矩阵Um-1,m进行矩阵行列截短得到k-1行k列矩阵Uk-1,k,将矩阵Uk-1,k与ej进行相乘运算,得到矩阵Uk-1,k×ej
将Uk-1,k×ej进行矩阵化简运算后,与Lm,k×ej一起进行异或操作,所述异或操作即得进行相加运算;得到D′j
本发明还公开了一种基于串并结合实现有限域乘法的装置,该装置用于实现有限域内m位乘法因子A和m位乘法因子B的相乘运算,如图2所示,图2是本发明中一种基于串并结合实现有限域乘法的装置的整体结构示意图。该装置包括:输入模块201,分组模块202,输出模块206,p个PM模块,该p个PM模块包括PM1模块203、...PMj+1模块204...、PMp模块205;
输入模块201,用于将m位乘法因子A发送给分组模块202,将m位乘法因子B发送给PM1模块203;
分组模块202,用于接收输入模块201发送的乘法因子A,将乘法因子A从低位到高位进行分组操作,以k位为一组,分成p组,分后的各组表示为ei,将ei依次发送给相应的PMi+1模块;其中
Figure BDA0000051672360000071
i=0,1,...,p-1;
PM1模块203,用于接收分组模块202发送的e0,输入模块201发送的乘法因子B;将e0和B进行有限域内的乘法运算,得到D′0;将D′0作为C′1发送给PM2模块;将乘法因子B进行有限域内左移k位操作,得到E1,将E1发送给PM2模块;
PMj+1204模块,用于接收分组模块202发送的ej,PMj模块发送的Ej与C′j;将ej与Ej进行有限域内的乘法运算,得到D′j;将D′j与C′j进行有限域内的加法运算,得到C′j+1,将C′j+1发送给PMj+2模块;将Ej进行有限域内左移k位操作,得到Ej+1,将Ej+1发送给PMj+2模块,其中,j=1,2,3...p-2;
PMp模块205,用于接收分组模块发送的ep-1,PMp-1模块发送的Ep-1与C′p+1;将ep-1与Ep-1进行有限域内乘法运算,得到D′p-1,将D′p-1与C′p-1进行有限域内的加法运算,得到C′p,将C′p发送给输出模块206;
输出模块206,用于接收PMp模块205发送的C′p,将C′p输出。所述输出模块206输出的C′p即为m位乘法因子A和m位乘法因子B在有限域内的相乘运算的结果。
如图2所示,该装置中共有p个PM模块,其中
Figure BDA0000051672360000081
在该p个PM模块中,除PM1模块203和PMp模块205外,其余的PM2模块至PMp-1模块都有相同的结构,并且该p个PM模块依次相连。
图3是本发明中一种基于串并结合实现有限域乘法的装置的PM1模块的内部结构图,如图3所示,所示PM1模块203包括改进的Arash乘法器模块302,移位模块301,寄存器Z1 303,寄存器C1 304;
改进的Arash乘法器模块302,用于接收输入模块201发送的乘法因子B,分组模块202发送的e0;将B与e0进行有限域内的乘法运算,将得到的相乘结果D′0作为C′1发送寄存器C1 304;
移位模块301,用于接收输入模块201发送的乘法因子B,将乘法因子B进行在有限域内左移k位操作,得到E1,将E1发送给寄存器Z1 303;
寄存器Z1 303,用于存储移位模块301发送的E1
寄存器C1 304,用于存储改进的Arash乘法器模块302发送的C′1
PM1模块203的输入由图2中的输入模块201和分组模块202提供输入。
图4是本发明中一种基于串并结合实现有限域乘法的装置的PMj+1模块的内部结构图,如图4所示,所述PMj+1模块204包括:改进的Arash乘法器模块401,移位模块402,异或阵列模块403,寄存器Zj+1 404,寄存器Cj+1 405;其中,
改进的Arash乘法器模块401,用于从寄存器Zj中读取Ej,接收分组模块202发送的ej,将Ej与ej进行有限域内的乘法运算,得到D′j;将D′j发送异或阵列模块403;
移位模块402,用于读取寄存器Zj中的Ej,将Ej进行有限域内左移k位操作,得到Ej+1,将Ej+1发送给寄存器Zj+1
异或阵列模块403,用于读取寄存器Cj中的C′j,接收改进的Arash乘法器模块401发送的D′j;将C′j与D′j进行有限域内的加法运算;得到C′j+1,将C′j+1发送给寄存器Cj+1 404;
寄存器Zj+1 405,用于存储移位模块402发送的Ej+1
寄存器Cj+1 404,用于存储异或阵列模块403发送的C′j+1
其中寄存器Zj和寄存器Cj是PMj模块中的寄存器模块。
图5是本发明中一种基于串并结合实现有限域乘法的装置的PMp模块的内部结构图,如图5所示,所述PMp模块205包括:改进的Arash乘法器模块501,异或阵列模块502,寄存器Cp 503;其中,
改进的Arash乘法器模块501,用于从寄存器Zp-1中读取Ep-1,接收分组模块202发送的ep-1,将Ep-1与ep-1进行有限域内的乘法运算;得到D′p-1,将D′p-1发送异或阵列模块502;
异或阵列模块502,用于从寄存器Cp-1读取C′p-1,接收改进的Arash乘法器模块501发送的D′p-1;将C′p-1与D′p-1进行有限域内的加法运算,得到C′p;将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或读取寄存器Zj存储的Ej,将获取到的操作数进行m次左移位操作,得到m行m列的矩阵Lm,m,将所述矩阵Lm,m发送给矩阵列截短模块602;
所述左移位模块601包括m个m位的移位寄存器,将所获得的操作数Ej或是乘法因子B进行左移位操作,将每次左移得到的数存放在对应的移位寄存器中,经过m次左移位操作,得到m个m位的数,将该m个m位寄存器中的数构成一个m行m列的矩阵Lm,m;其中,每个操作数都有一个与之相对应的矩阵Lm,m
矩阵列截短模块602,用于接收左移位模块601发送的矩阵Lm,m,将所述矩阵Lm,m进行矩阵列截短操作,得到m行k列的矩阵Lm,k;将矩阵Lm,k发送给矩阵相乘模块605,其中Lm,k即在矩阵Lm,m中取前m行k列的数构成;
右移位模块603,用于接收输入模块201发送的乘法因子B或读取寄存器Zj中存储的Ej,将获取到的操作数进行m-1次右移位操作,得到m-1行m列的矩阵Um-1,m,将所述矩阵Um-1,m发送给矩阵行列截短模块604;所述右移位模块603包括m-1个m位的移位寄存器,;
矩阵行列截短模块604,用于接收右移位模块603发送的矩阵Um-1,m,将所述矩阵Um-1,m进行矩阵行列截短操作,得到k-1行k列的矩阵Uk-1,k;将矩阵Uk-1,k发送给矩阵相乘模块605;
矩阵相乘模块605,用于将矩阵列截短模块602发送的与Ej相对应的左移矩阵Lm, k和分组模块202发送的ej进行相乘运算,得到Lm,k×ej;将Lm,k×ej发送给二元异或门列模块607;用于将矩阵行列截短模块604发送的与Ej相对应的右移矩阵Uk-1,k和分组模块202发送的ej进行相乘运算,得到Uk-1,k×ej;将Uk-1,k×ej发送给矩阵简化模块606;
如图6所示,矩阵相乘模块605包括m+k-1个MTP单元,其中,m个MTP单元与矩阵列截短模块602相连,用于实现矩阵Lm,k与ej的相乘运算,将得到中间结果Lm,k×ej发送给二元异或门列模块607,其中,中间结果Lm,k×ej为m行1列的矩阵;该m个MTP从第1列到到k列依次为MTP1、MTP2...MTPk;从第k+1列到m列都为MTPk
矩阵相乘模块605中k-1个MTP单元与矩阵行列截短模块604相连,用于实现矩阵Uk-1,k与ej的相乘运算得到中间结果为Uk-1,k×ej,该Uk-1,k×ej为k-1行1列的矩阵。该k-1个MTP单元分别为MTPk-1、...、MTP2、MTP1
矩阵简化模块606,用于接收矩阵相乘模块605发送的Uk-1,k×ej,将Uk-1,k×ej化简成m行1列的矩阵Rm,1;将矩阵Rm,1发送给二元异或门列模块607;
上述矩阵简化模块606用于实现矩阵相乘模块605发送的Uk-1,k×ej与简化矩阵R相乘,将k-1行1列的矩阵转换成m行1列的矩阵Rm,1。所述简化矩阵R矩阵由有限域上的不可约多项式P(x)=xm+xkt+..+xk2+xk1+1确定且具有唯一性,其生成规则如下:
R矩阵的第0行有t+1列1,其余列为0,1的分布分别在0,k1,k2,...,kt列,其中0,k1,k2,...,kt为表示P(x)=xm+xkt+..+xk2+xk1+1中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-1行m列矩阵。
二元异或门列模块607,用于接收矩阵相乘模块605发送的Lm,k×ej和矩阵简化模块606发送的相对应的矩阵Rm,1;将Lm,k×ej与Rm,1进行异或操作,得到D′j,将D′j输出。其中Lm,k×ej为m行1列的矩阵,Rm,1也是m行1列的矩阵,将Lm,k×ej与Rm,1进行异或操作得到的结果即D′j。D′j即低阶乘法装置将m位乘法因子与k位的乘法因子相乘得到的结果。该结果D′j与寄存器Cj中的C′j进行异或操作,将得到的结果C′j+1存储在寄存器Cj+1中,将用于下一个低阶乘法装置的输入,依次进行运算,得到最终结果C′p
图7是本发明中一种基于串并结合实现有限域乘法的装置的MTPx单元的结构示意图,如图7所示,所述MTPx单元包括x个与门和x-1个异或门,其中,x个与门为并列结构,位于第一级,x-1个异或门为树形结构,x个与门与x-1异或门次级连接。
图8是本发明中一种基于串并结合实现有限域乘法的装置的移位模块的结构示意图,所述移位模块用于对操作数Ei依次进行有限域内左移K位的操作,得到结果为Ei+1。如图8所示,所述移位模块包括Rk,m矩阵模块801和异或门结果802。其中,Rk,m矩阵模块801中的矩阵Rk,m与矩阵简化模块606中的矩阵Rk-1,m的原理与生成规则相同,即都是由简化矩阵R转换得到的;所述Rk,m由简化矩阵R中的k行m列构造而成。
以操作数Ei-1为例,其中
Figure BDA0000051672360000131
(j=0...m-1)用来表示Ei-1的第j位的位值;所述Ei-1共有m为分别为
Figure BDA0000051672360000132
如图所示,其中从
Figure BDA0000051672360000133
直接发送给异或门模块802,从
Figure BDA0000051672360000134
Figure BDA0000051672360000135
发送给Rk,m矩阵模块801,经Rk,m矩阵模块801的简化矩阵Rk,m相乘后将m位数,分别为其中直接输出,其余的发送给异或门模块802,通过异或门模块802与进行异或操作得到
Figure BDA0000051672360000139
所述输出的数共m位即Ei-1经过左移k位得到的Ei
图9是本发明中一种基于串并结合实现有限域乘法的装置的异或门阵列模块结构示意图,如图9所示,所述异或门阵列模块901有m个并列结构的异或门构成。
下面结合具体实施例来说明本发明。GCM(Galois/Counter Mode)是一种在二元Galois域使用泛散列提供加密认证的分组密码算法。其中认证方案核心为128位乘法装置。即实现m位的乘法因子A和m位的乘法因子B的乘法运算,其中m=128。图10是本发明中一种基于串并结合实现有限域乘法的装置的实施例的结构示意图;如图10所示,
步骤1,m=128,对128位宽的乘法因子A进行位宽分割,以k=8比特位宽为一组,可以分为p=[128/8]=16个组;即乘法因子A的[7:0]为e0,[15:8]为e1,L[127:120]记为ep-1;乘法因子B不进行分组,直接由输入模块发送给PM1模块。可知其所对应的有限域GF(2128)上的不可约多项式为P(x)=x128+x7+x2+x+1,即k1=1,k2=2,k3=7,共有3个数则t=3。则构造的简化矩阵R的第0行有t+1=4个1,分别在0,1,2,7列;简化矩阵R的第1行至6行由第0行依次右移位得到。得到简化矩阵R为:
R = 11100001000000 L 00000000 01110000100000 L 00000000 00111000010000 L 00000000 00011100001000 L 00000000 00001110000100 L 00000000 00000111000010 00000011100001 L 00000000 00000000
步骤2,构造128个128为的移位寄存器,每个移位寄存器分别用于将获得的与之相连的上一个移位寄存器中的操作数进行左移一位的操作并将所得到的数存储;共得到128个128位的数,构成矩阵L128,128;将所得到的矩阵发送给矩阵列截短模块,经过矩阵列截短后,得到一个128行8列的矩阵L128,8。将矩阵L128,8发送给矩阵相乘模块。
步骤3,构造127个128为的移位寄存器,每个移位寄存器分别用于将获得的与之相连的上一个移位寄存器中的操作数进行又移一位的操作并将所得到的数存储;共得到127个128位的数,构成矩阵U127,128;将所得到的矩阵发送给矩阵列截短模块,经过矩阵列截短后,得到一个7行8列的矩阵U7,8。将矩阵U7,8发送给矩阵相乘模块。所述矩阵相乘模块包括135个MTP单元,其中,与矩阵列截短模块相连的128个MTP单元,用于实现矩阵L128,8与e0的相乘运算,得到中间结果L128,8×e0,该中间结果L128,8×e0为128行1列的矩阵;其中,与矩阵行列截短模块相连的7个MTP单元,用于实现矩阵e0与U7,8的相乘运算得到中间结果为U7,8×e0,该U7,8×e0为7行1列的矩阵。
步骤5,将该U7,8×e0发送给简化矩阵模块进行与简化矩阵R进行相乘运算,生成RT×U7,8×e0为128行1列的矩阵,在将该RT×U7,8×e0与L128,8×e0进行异或操作。得到的结果即有限域内B与e0的乘积。将该结果存储在寄存器C1
步骤6,乘法因子B进行GF(2128)域内的左移8位的移位操作,将得到的E1存入寄存器Z1中。其中,B在GF(2128)域内的进行左移8位的操作,所用到的Rk,m矩阵模块中的矩阵R8,128如下所示:
R 8.128 = 111000010000000 L 00000000 01110000100000 L 00000000 001110000100000 L 00000000 000111000010000 L 00000000 000011100001000 L 00000000 000001110000100 000000111000010 L 00000000 00000000 000000011100001 00000000
步骤7,取寄存器Z1中的数据与乘法因子A的第二个分组e1进行乘法运算,具体步骤同上步骤1到步骤6,将得到的乘积与寄存器C1中的值异或,并将结果存入寄存器C2中。取寄存器Z1中的数据,经过GF(2128)域内的左移8位操作将结果存入寄存器Z2中。
重复步骤7,直到A的最后一个分组e15,最终得到C16,即为GF(2128)A和B的乘积。
综上所述,本发明采用分治思想,通过串并结合的方法,将高位宽的相乘运算分解成多个低位宽的相乘运算,缩短了有限域乘法计算的关键路径,降低了空间复杂度;本发明中乘法器在结构上采用流水线结构,具有低复杂度、高吞吐量的特性。
有限域乘法器的时间复杂度通常用时延衡量。在m位下的时间复杂度是其中TA是一个而输入与门的时延,TX是一个二输入异或门的时延。有限域乘法器空间复杂度通常用所使用的与门异或门数量衡量,本发明的乘法器在m位下的空间复杂度是:与门数m2,异或门数m2-(3-p-2/p)m-p。
同时参数k(或p)可调整,即调节时间复杂度和空间复杂度的关系,(用时间换低空间复杂度,或用空间复杂度换低时延),以适应不同应用场景对时空复杂度的要求。

Claims (10)

1.一种基于串并结合实现有限域乘法的方法,本方法用于实现有限域内m位乘法因子A和m位乘法因子B的相乘运算,其特征在于,该方法包括:
对m位的乘法因子A按从低位到高位进行分组,以k位为一组,分为p组,分组后的各组表示为ei,其中
Figure FDA0000051672350000011
i=0,1,...,p-1;
将e0与乘法因子B进行有限域内的乘法运算,得到D′0;将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在有限域内的乘积。
2.根据权利要求1所述的方法,其特征在于,所述将e0与B进行有限域内乘法运算,得到D′0包括:
B进行m次左移位操作,将依次得到的数构成矩阵Lm,m;将矩阵Lm,m进行矩阵列截短得到矩阵Lm,k,将矩阵Lm,k与e0进行相乘运算,得到Lm,k×e0
B进行m-1次右移位操作,将依次得到的数构成矩阵Um-1,m;将矩阵Um-1,m进行矩阵行列截短得到矩阵Uk-1,k,将矩阵Uk-1,k与e0进行相乘运算,得到Uk-1,k×e0
将Uk-1,k×e0进行矩阵化简运算后,与Lm,k×e0一起进行异或操作,得到D′0
3.根据权利要求1所述的方法,其特征在于,所述将ej与Ej进行有限域内乘法运算,得到D′j包括:
Ej进行m次左移位操作,将依次得到的数构成矩阵Lm,m;将矩阵Lm,m进行矩阵列截短得到矩阵Lm,k,将矩阵Lm,k与ej进行相乘运算,得到Lm,k×ej
Ej进行m-1次右移位操作,将依次得到的数构成矩阵Um-1,m;将矩阵Um-1,m进行矩阵行列截短得到矩阵Uk-1,k,将矩阵Uk-1,k与ej进行相乘运算,得到Uk-1,k×ej
将Uk-1,k×ej进行矩阵化简运算后,与Lm,k×ej一起进行异或操作,得到D′j
其中,j=1,2,3...p-2。
4.根据权利要求1所述的方法,其特征在于,将ep-1与Ep-1进行有限域内乘法运算,得到D′p-1包括:
Ep-1进行m次左移位操作,将依次得到的数构成矩阵Lm,m;将矩阵Lm,m进行矩阵列截短得到矩阵Lm,k,将矩阵Lm,k与ep-1进行相乘运算,得到Lm,k×ep-1
Ep-1进行m-1次右移位操作,将依次得到的数构成矩阵Um-1,m;将矩阵Um-1,m进行矩阵行列截短得到矩阵Uk-1,k,将矩阵Uk-1,k与ep-1进行相乘运算,得到Uk-1,k×ep-1
将Uk-1,k×ep-1进行矩阵化简运算后,与Lm,k×ep-1一起进行异或操作,得到D′p-1
5.一种基于串并结合实现有限域乘法的装置,该装置用于实现有限域内m位乘法因子A和m位乘法因子B的相乘运算,其特征在于,该乘法器包括:输入模块,分组模块,输出模块,p个PM模块,这p个PM模块分别为:PM1模块、PM2模块、...、PMp模块;
输入模块,用于将m位乘法因子A发送给分组模块,将m位乘法因子B发送给PM1模块;
分组模块,用于接收输入模块发送的乘法因子A,将乘法因子A从低位到高位进行分组操作,以k位为一组,分成p组,分组后的各组表示为ei,将ei依次发送给相应的PMi+1模块;其中
Figure FDA0000051672350000031
i=0,1,...,p-1;
PM1模块,用于接收分组模块发送的e0,以及输入模块发送的乘法因子B;将e0和B进行有限域内的乘法运算,得到D′0;将D′0作为C′1发送给PM2模块;将乘法因子B进行有限域内左移k位操作,得到E1,将E1发送给PM2模块;
PMj+1模块,用于接收分组模块发送的ej,以及PMj模块发送的Ej与C′j;将ej与Ej进行有限域内的乘法运算,得到D′j;将D′j与C′j进行有限域内的加法运算,得到C′j+1,将C′j+1发送给PMj+2模块;将Ej进行有限域内左移k位操作,得到Ej+1,将Ej+1发送给PMj+2模块,其中,j=1,2,3...p-2;
PMp模块,用于接收分组模块发送的ep-1,以及PMp-1模块发送的Ep-1与C′p-1;将ep-1与Ep-1进行有限域内乘法运算,得到D′p-1,将D′p-1与C′p-1进行有限域内的加法运算,得到C′p,将C′p发送给输出模块;
输出模块,用于接收PMp模块发送的C′p,将C′p输出。
6.根据权利要求5所述的装置,所述PM1模块包括:改进的Arash乘法器模块,移位模块,寄存器Z1,寄存器C1;其中,
改进的Arash乘法器模块,用于接收输入模块发送的乘法因子B,分组模块发送的e0;将B与e0进行有限域内的乘法运算,将得到的相乘结果D′0作为C′1发送寄存器C1
移位模块,用于接收输入模块发送的乘法因子B,将乘法因子B进行在有限域内左移k位操作,得到E1,将E1发送给寄存器Z1
寄存器Z1,用于存储移位模块发送的E1
寄存器C1,用于存储改进的Arash乘法器模块发送的C′1
7.根据权利要求5所述的装置,所述PMj+1模块包括:改进的Arash乘法器模块,移位模块,异或阵列模块,寄存器Zj+1,寄存器Cj+1;其中,
改进的Arash乘法器模块,用于从寄存器Zj中读取Ej,接收分组模块发送的ej,将Ej与ej进行有限域内的乘法运算,得到D′j;将D′j发送异或阵列模块;
移位模块,用于读取寄存器Zj中的Ej,将Ej进行有限域内左移k位操作,得到Ej+1,将Ej+1发送给寄存器Zj+1
异或阵列模块,用于读取寄存器Cj中的C′j,接收改进的Arash乘法器模块发送的D′j;将C′j与D′j进行有限域内的加法运算;得到C′j+1,将C′j+1发送给寄存器Cj+1
寄存器Zj+1,用于存储移位模块发送的Ej+1
寄存器Cj+1,用于存储异或阵列模块发送的C′j+1
其中,j=1,2,3...p-2。
8.根据权利要求5所述的装置,所述PMp模块包括:改进的Arash乘法器模块,异或阵列模块,寄存器Cp;其中,
改进的Arash乘法器模块,用于从寄存器Zp-1中读取Ep-1,接收分组模块发送的ep-1,将Ep-1与ep-1进行有限域内的乘法运算;得到D′p-1,将D′p-1发送异或阵列模块;
异或阵列模块,用于从寄存器Cp-1读取C′p-1,接收改进的Arash乘法器模块发送的D′p-1;将C′p-1与D′p-1进行有限域内的加法运算,得到C′p;将C′p发送给寄存器Cp
寄存器Cp,用于存储异或阵列模块发送的C′p
9.根据权利要求6至8中任一项所述的装置,其特征在于,所述改进的Arash乘法器模块包括:左移位模块,矩阵列截短模块,矩阵相乘模块,右移位模块,矩阵行列截短模块,矩阵简化模块,二元异或门列模块;其中,
左移位模块,用于接收输入模块发送的乘法因子B或读取寄存器Zj存储的Ej,将获取到的操作数进行m次左移位操作,得到m行m列的矩阵Lm,m,将所述矩阵Lm,m发送给矩阵列截短模块;
矩阵列截短模块,用于接收左移位模块发送的矩阵Lm,m,将所述矩阵Lm,m进行矩阵列截短操作,得到m行k列的矩阵Lm,k;将矩阵Lm,k发送给矩阵相乘模块;
右移位模块,用于接收输入模块发送的乘法因子B或读取寄存器Zj中存储的Ej,将获取到的操作数进行m-1次右移位操作,得到m-1行m列的矩阵Um-1,m,将所述矩阵Um-1,m发送给矩阵行列截短模块;
矩阵行列截短模块,用于接收右移位模块发送的矩阵Um-1,m,将所述矩阵Um-1,m进行矩阵行列截短操作,得到k-1行k列的矩阵Uk-1,k;将矩阵Uk-1,k发送给矩阵相乘模块;
矩阵相乘模块,用于将矩阵列截短模块发送的与Ej相对应的左移矩阵Lm,k和分组模块发送的ej进行相乘运算,得到Lm,k×ej;将Lm,k×ej发送给二元异或门列模块;用于将矩阵行列截短模块发送的与Ej相对应的右移矩阵Uk-1,k和分组模块发送的ej进行相乘运算,得到Uk-1,k×ej;将Uk-1,k×ej发送给矩阵简化模块;
矩阵简化模块,用于接收矩阵相乘模块发送的Uk-1,k×ej,将Uk-1,k×ej化简成m列1行的矩阵Rm,1;将矩阵Rm,1发送给二元异或门列模块;
二元异或门列模块,用于接收矩阵相乘模块发送的Lm,k×ej和矩阵简化模块发送的相对应的矩阵Rm,1;将Lm,k×ej与Rm,1进行异或操作,得到D′j,将D′j输出。
10.根据权利要求9所述的装置,其特征在于,所述矩阵相乘模块包括m+k-1个MTP单元:
其中的m个MTP单元用于实现与Ej相对应的矩阵Lm,k和输入模块发送的ej的相乘运算;这m个MTP单元依次为MTP1、MTP2...MTPk、...、MTPk
k-1个MTP单元用于实现输入模块发送的ej和与Ej相对应的矩阵Uk-1,k的相乘运算;该k-1个MTP单元分别为MTPk-1、...、MTP2、MTP1
MTPx单元包括x个与门和x-1个异或门,其中,x个与门为并列结构,x-1个异或门为树形结构,x个与门与x-1异或门次级连接;x=1,2,...,k。
CN 201110071080 2011-03-23 2011-03-23 一种基于串并结合实现有限域乘法的方法及装置 Expired - Fee Related CN102184088B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110071080 CN102184088B (zh) 2011-03-23 2011-03-23 一种基于串并结合实现有限域乘法的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110071080 CN102184088B (zh) 2011-03-23 2011-03-23 一种基于串并结合实现有限域乘法的方法及装置

Publications (2)

Publication Number Publication Date
CN102184088A true CN102184088A (zh) 2011-09-14
CN102184088B CN102184088B (zh) 2013-12-25

Family

ID=44570268

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110071080 Expired - Fee Related CN102184088B (zh) 2011-03-23 2011-03-23 一种基于串并结合实现有限域乘法的方法及装置

Country Status (1)

Country Link
CN (1) CN102184088B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970504A (zh) * 2014-05-07 2014-08-06 广东顺德中山大学卡内基梅隆大学国际联合研究院 在ecc中实现位数自适应模乘运算的方法及模乘运算器
CN106909339A (zh) * 2017-02-22 2017-06-30 深圳职业技术学院 一种基于二叉树结构的有限域乘法器
CN107992283A (zh) * 2017-11-09 2018-05-04 中国电子科技集团公司第二十八研究所 一种基于降维实现有限域乘法的方法和装置
CN108363559A (zh) * 2018-02-13 2018-08-03 北京旷视科技有限公司 神经网络的乘法处理方法、设备和计算机可读介质
CN109284827A (zh) * 2017-07-19 2019-01-29 阿里巴巴集团控股有限公司 神经网络计算方法、设备、处理器及计算机可读存储介质
CN110209374A (zh) * 2019-05-23 2019-09-06 浙江大学 一种基于racetrack memory的乘法器及其操作方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1658200A (zh) * 2005-03-21 2005-08-24 西安电子科技大学 基于fpga的有限域乘法器的优化设计方法
US20060080376A1 (en) * 2004-10-13 2006-04-13 Ming Zhang Galois field multiplication system and method
CN101650644A (zh) * 2009-04-10 2010-02-17 北京邮电大学 一种伽罗华域乘法器实现装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060080376A1 (en) * 2004-10-13 2006-04-13 Ming Zhang Galois field multiplication system and method
CN1658200A (zh) * 2005-03-21 2005-08-24 西安电子科技大学 基于fpga的有限域乘法器的优化设计方法
CN101650644A (zh) * 2009-04-10 2010-02-17 北京邮电大学 一种伽罗华域乘法器实现装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
G.SHOU 等: "Low complexity architecture of bit parallel multipliers for GF(2m)", 《ELECTRONICS LETTERS》, vol. 16, no. 19, 16 September 2010 (2010-09-16), pages 1326 - 1327, XP006036935, DOI: doi:10.1049/EL:20101710 *
Z.MAO 等: "Design of multipliers for GF(2m)", 《ELECTRONICS LETTERS》, vol. 46, no. 6, 18 March 2010 (2010-03-18), pages 419 - 420 *
寿国础: "无源光网络安全技术与关键算法研究", 《中国博士学位论文电子期刊网》, 30 April 2012 (2012-04-30) *
毛泽湘: "伽罗华域GF(2m)乘法器研究及实现", 《中国优秀硕士论文电子期刊网》, 30 September 2011 (2011-09-30) *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970504A (zh) * 2014-05-07 2014-08-06 广东顺德中山大学卡内基梅隆大学国际联合研究院 在ecc中实现位数自适应模乘运算的方法及模乘运算器
CN103970504B (zh) * 2014-05-07 2017-03-29 广东顺德中山大学卡内基梅隆大学国际联合研究院 在ecc中实现位数自适应模乘运算的方法及模乘运算器
CN106909339A (zh) * 2017-02-22 2017-06-30 深圳职业技术学院 一种基于二叉树结构的有限域乘法器
CN109284827A (zh) * 2017-07-19 2019-01-29 阿里巴巴集团控股有限公司 神经网络计算方法、设备、处理器及计算机可读存储介质
CN107992283A (zh) * 2017-11-09 2018-05-04 中国电子科技集团公司第二十八研究所 一种基于降维实现有限域乘法的方法和装置
CN108363559A (zh) * 2018-02-13 2018-08-03 北京旷视科技有限公司 神经网络的乘法处理方法、设备和计算机可读介质
CN110209374A (zh) * 2019-05-23 2019-09-06 浙江大学 一种基于racetrack memory的乘法器及其操作方法
CN110209374B (zh) * 2019-05-23 2021-04-20 浙江大学 一种基于racetrack memory的乘法器及其操作方法

Also Published As

Publication number Publication date
CN102184088B (zh) 2013-12-25

Similar Documents

Publication Publication Date Title
CN102184088B (zh) 一种基于串并结合实现有限域乘法的方法及装置
Okada et al. Implementation of Elliptic Curve Cryptographic Coprocessor over GF (2 m) on an FPGA
CN103078732B (zh) 一种素域椭圆曲线加密的点乘加速电路
CN104679474A (zh) 有限域gf(2^227)上的乘法器及模乘算法
GB2323457A (en) A finite field multiplication system
CN105335331A (zh) 一种基于大规模粗粒度可重构处理器的sha256实现方法及系统
CN106484366B (zh) 一种二元域位宽可变模乘运算器
CN103942031A (zh) 椭圆域曲线运算方法和椭圆域曲线运算器
Seo et al. Binary and prime field multiplication for public key cryptography on embedded microprocessors
CN107992283A (zh) 一种基于降维实现有限域乘法的方法和装置
Mrabet et al. A scalable and systolic architectures of montgomery modular multiplication for public key cryptosystems based on dsps
CN101650644B (zh) 一种伽罗华域乘法器实现装置
Lee et al. Improved multi-precision squaring for low-end RISC microcontrollers
CN102521211A (zh) 一种求解有限域上线性方程组的并行装置
Iana et al. RSA encryption algorithm implemented on FPGA
CN103684749A (zh) 一种基于面积与性能平衡优化的klein加密实现方法
CN104580017A (zh) 基于rss的网络会话分发方法及系统
CN103023659B (zh) 一种参数位宽可扩展的ecc加密硬件装置
Rashidi Efficient hardware implementations of point multiplication for binary Edwards curves
Zidarič et al. The welch-gong stream cipher-evolutionary path
CN103488611B (zh) 基于IEEE802.11.ad协议的FFT处理器
Yan et al. Large-scale and high-speed fpga-based privacy amplification for quantum key distribution
CN102929574A (zh) Gf(2163)域上的脉动乘法器设计方法
CN103942027A (zh) 一种可重构的快速并行乘法器
CN107463354A (zh) 一种面向ECC的双域并行度可变的Montgomery模乘电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131225

Termination date: 20150323

EXPY Termination of patent right or utility model