一种实现伽罗瓦域乘法的装置及其应用方法

文档序号:6639003阅读:220来源:国知局
一种实现伽罗瓦域乘法的装置及其应用方法
【专利摘要】本发明公开了一种实现伽罗瓦域乘法的装置及其应用方法。该装置包括都采用选择器、乘法器、异或电路组成的选择前段模块、选择组件模块和选择后段模块。因此,本发明电路简洁鲜明、方便管理和优化,降低硬件实现以及电路开发的复杂性,达到了无需额外复杂电路同时提高性能的目的,同时减少存储消耗,在增加了处理效率同时降低了处理时间,减少了操作次数。选择前段模块包括选择器、乘法器和异或电路,根据被乘数、选择乘数、伽罗瓦系数得选择前段输出。选择组件模块包括选择器、乘法器和异或电路,根据选择前段输出、乘数、伽罗瓦系数得选择组件输出。选择后段模块包括选择器和异或电路,根据选择组件输出、乘数得伽罗瓦域乘的输出结果。
【专利说明】一种实现伽罗瓦域乘法的装置及其应用方法

【技术领域】
[0001] 本发明属数字信号处理器【技术领域】,涉及一种实现伽罗瓦域乘法的装置及其应用 方法,其是对伽罗瓦域乘法的硬件实现。

【背景技术】
[0002] 有限域包含有限个元素,且目前有限域乘法被广泛应用于密码学领域,许多加密 认证算法都利用了有限域乘法。F域为一种至少包含两个元素的有限域,在F域上有加法和 乘法两种算法操作被定义,且加法和乘法操作均为针对二元的算法操作。伽罗华域(GFQ) 为最小的有限域,只包含〇和1两个元素,同时加法和乘法都只进行模2操作,因此加法与 异或逻辑等效,可以用一个异或门来实现,而乘法等效于与逻辑,可以用一个与门实现。
[0003] 有限域可以用非多项式P(X) = X1^PnrlXnr1+…+PfPtl来定义,令a G GF(2m)是 PU)的根,即PU) =〇则PU) =〇则称{la a a 1为多项式的基或标准基, GF(2m)中每个元素都可以根据多项式来表示,比如对于A = 可以表示为 A = 2?/ G ,其中ai即为基下的坐标,假设a = [I a…a m i]T,a =[已此… am-i],贝丨J a = ct 声。
[0004] 当加罗华域运算扩展应用到很多位时,计算就非常难以实现,同时硬件实现也会 变得不太容易。传统加罗华域乘法的硬件多采用通用处理器实现,因此高数据量的计算效 果主要受限于内部结构,这导致了计算性能无法大幅度提高。目前,伽罗华域的研究成果主 要针对于算法方面,尤其是关于通用多项式算法的各种优化。然而,至今的算法优化方式实 现起来的复杂度比较大,且优化结果也很难达到理想效果。


【发明内容】

[0005] 本发明主要针对硬件的处理速度、硬件的实现简易度以及32位伽罗瓦域乘法算 法的易于实现度,提出一种实现伽罗瓦域乘法的装置及其应用方法,其采用64级32位选 择器组成的易于实现、结构简单的伽罗瓦域乘法的硬件实现。
[0006] 本发明是通过以下技术方案实现的:一种实现伽罗瓦域乘法的装置,其包括:
[0007] 选择前段模块,其包括2个32位第一选择器、1个第一乘法器和1个第一异或电 路;其中一个第一选择器根据被乘数rm的31位,选择乘数rm或者0,得到中间结果ppO ;该 第一乘法器对中间结果PP〇进行乘2操作,得到中间结果ppOO ;该第一异或电路对中间结 果PPOO和伽罗瓦系数进行异或操作,得到中间结果PPOl ;另一个第一选择器根据中间结果 pp〇的31位选择中间结果ppOO或者中间结果ppOl,得到中间结果ppl作为该选择前段模 块的输出;
[0008] 选择组件模块,其包括30个选择组件,每个选择组件的电路完全相同且前后串 接,前一个选择组件输出作为后一个选择组件的输入,每个选择组件包括2个32位第二 选择器、1个第二乘法器和2个第二异或电路,在同一个选择组件中:其中一个第二异或电 路对前一级的中间结果ppi和乘数rm进行异或操作,得到中间结果ppiO,其中,i = 1,3, 2n-l,…,61,n为正整数,其中一个第二选择器根据被乘数rm的32位,选择中间结果ppi 或者中间结果ppi〇,得到中间结果PP (i+1),该第二乘法器对中间结果PP (i+1)进行乘2操 作,得到中间结果PP(i+l)〇,另一个第二异或电路对中间结果PP(i+l)〇和伽罗瓦系数进行 异或操作,得到中间结果口口(1+1)1,另一个第二选择器根据中间结果口口(1+1)的31位选择 中间结果中间结果PP (i+1) 〇或者中间结果PP (i+1) 1,得到中间结果PP (i+2)作为相应选择 组件的输出;其中,该选择组件模块的输入为中间结果PPl,该选择组件模块的输出为中间 结果pp61 ;
[0009] 选择后段模块,其包括1个32位第三选择器和1个第三异或电路,该第三异或 电路对该选择组件模块的输出即中间结果PP61和乘数rm进行异或操作,得到中间结果 pp610,该第三选择器根据被乘数rm的0位,选择中间结果pp61或者中间结果pp610,得到 伽罗瓦域乘的输出rs。
[0010] 本发明还提供上述实现伽罗瓦域乘法的装置的应用方法,该应用方法包括以下步 骤:
[0011] 一、选择前段:
[0012] 其中一个第一选择器根据被乘数rm的31位,选择乘数rm或者0,得到中间结果 pp〇 ;
[0013] 对中间结果ppO进行乘2操作,得到中间结果ppOO ;
[0014] 对中间结果pp〇〇和伽罗瓦系数进行异或操作,得到中间结果ppOl ;
[0015] 根据中间结果PPO的31位选择中间结果ppOO或者中间结果ppO 1,得到中间结果 PPl作为选择前段的输出;
[0016] 二、前后依次进行的若干中间段,在每个中间段中:
[0017] 对前一级的中间结果ppi和乘数rm进行异或操作,得到中间结果ppiO,其中,i = l,3,2n-l,…,61,n为正整数,其中一个第二选择器根据被乘数rm的32位,选择中间结果 ppi或者中间结果ppiO,得到中间结果pp(i+l);
[0018] 对中间结果pp(i+l)进行乘2操作,得到中间结果pp(i+l)0,另一个第二异或电路 对中间结果PP(i+l)〇和伽罗瓦系数进行异或操作,得到中间结果PP(i+l)l ;
[0019] 根据中间结果pp(i+l)的31位选择中间结果中间结果pp(i+l)0或者中间结果 PP(i+l)l,得到中间结果PP(i+2)作为相应选择组件的输出;其中,该选择组件模块的输入 为中间结果PP1,该选择组件模块的输出为中间结果PP61 ;
[0020] 三、选择后段:
[0021] 对该选择组件模块的输出即中间结果PP61和乘数rm进行异或操作,得到中间结 果 pp610 ;
[0022] 根据被乘数rm的0位,选择中间结果pp61或者中间结果pp610,得到伽罗瓦域乘 的输出rs。
[0023] 本发明通过择前段模块、选择组件模块和选择后段模块,每个模块又分别主要由 选择器、乘法器以及异或电路三种简单的逻辑运算部件组成,使得电路更加的简洁鲜明,方 便电路的管理和优化,降低硬件实现以及电路开发的复杂性,达到了无需额外复杂电路同 时提高性能的目的,同时减少存储消耗,在增加了处理效率同时降低了处理时间,减少了操 作次数。

【专利附图】

【附图说明】
[0024] 图1是本发明的实现伽罗瓦域乘法的装置的结构框图;
[0025]
[0026] 图2是图1中选择前段模块的结构示意图;
[0027] 图3是图1中选择组件模块的其中一个选择组件的结构示意图;
[0028] 图4是图1中选择后段模块的结构示意图;
[0029] 图5是伽罗瓦域乘法指令功能框图。

【具体实施方式】
[0030] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施实例, 对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明, 并不用于限定本发明。
[0031] 如图1所示,本发明的实现伽罗瓦域乘法的装置包括选择前段模块1、选择组件模 块2和选择后段模块3。三个模块分别由选择器、乘法器以及异或电路三种简单的逻辑运算 部件组成。
[0032] 如图2所示,选择前段模块1包括2个32位第一选择器(MUX) 11、第一乘法器12 和第一异或电路13。
[0033] 其中一个第一选择器11根据被乘数rm的31位,选择乘数rm或者0,得到中间结 果ppO。该第一乘法器12对中间结果ppO进行乘2操作,得到中间结果ppOO。该第一异或 电路13对中间结果ppOO和伽罗瓦系数(GPLYC)进行异或操作,得到中间结果ppOl。另一 个第一选择器11根据中间结果PP〇的31位选择中间结果pp00或者中间结果ppOl,得到中 间结果PPl作为该选择前段模块1的输出。
[0034] 如图3所示,选择组件模块2包括30个选择组件20,每个选择组件20的电路完 全相同且前后串接,前一个选择组件20输出作为后一个选择组件20的输入,每个选择组件 20包括2个32位第二选择器21、1个第二乘法器22和2个第二异或电路23。
[0035] 在同一个选择组件20中:其中一个第二异或电路23对前一级的中间结果ppi和 乘数rm进行异或操作,得到中间结果ppiO,其中,i = 1,3, 2n-l,…,61,n为正整数;其 中一个第二选择器21根据被乘数rm的32位,选择中间结果ppi或者中间结果ppiO,得 到中间结果PP(i+l);该第二乘法器22对中间结果pp(i+l)进行乘2操作,得到中间结果 PP (i+1) 〇 ;另一个第二异或电路23对中间结果pp (i+l)0和伽罗瓦系数进行异或操作,得 到中间结果PP (i+1) 1 ;另一个第二选择器21根据中间结果pp (i+1)的31位选择中间结果 中间结果PP (i+1) 〇或者中间结果PP (i+1) 1,得到中间结果PP (i+2)作为相应选择组件的输 出。该选择组件模块的输入为中间结果PPl,该选择组件模块的输出为中间结果PP61。
[0036] 也就是说,选择组件20在整个伽罗瓦域乘法硬件实现中选择组件共有30个,每个 选择组件20的电路完全相同。首先对上一级的中间结果ppl和乘数进行异或操作,得到中 间结果PP10,第一个第二选择器21根据被乘数的30位,选择ppl或者ppOl,得到中间结 果pp2,对pp2进行乘2操作,得到中间结果pp20,然后对pp20和伽罗瓦系数(GPLYC)进行 异或操作,得到中间结果PP21,最后,第二个第二选择器21根据pp2的31位选择中间结果 pp20或者pp21,得到选择组件20的输出pp3,选择组件20 -共有30个,其硬件实现完全相 同,不同点是第一个选择的选择信号不同,最后一个选择组件输出为PP61。
[0037] 如图4所示,选择后段模块3包括1个32位第三选择器31和1个第三异或电路 32。该第三异或电路32对该选择组件模块3的输出即中间结果pp61和乘数rm进行异或 操作,得到中间结果PP610。该第三选择器31根据被乘数rm的0位,选择中间结果pp61或 者中间结果PP610,得到伽罗瓦域乘的输出rs。
[0038] 请参阅图5,本发明的实现伽罗瓦域乘法的装置在应用时,其应用方法包括以下步 骤:
[0039] 一、选择前段:
[0040] 其中一个第一选择器根据被乘数rm的31位,选择乘数rm或者0,得到中间结果 pp〇 ;
[0041] 对中间结果pp〇进行乘2操作,得到中间结果ppOO ;
[0042] 对中间结果ppOO和伽罗瓦系数进行异或操作,得到中间结果ppOl ;
[0043] 根据中间结果ppO的31位选择中间结果ppOO或者中间结果ppO 1,得到中间结果 PPl作为选择前段的输出;
[0044] 二、前后依次进行的若干中间段,在每个中间段中:
[0045] 对前一级的中间结果ppi和乘数rm进行异或操作,得到中间结果ppiO,其中,i = 1,3,2n-l,…,61,n为正整数,其中一个第二选择器根据被乘数rm的32位,选择中间结 果ppi或者中间结果ppiO,得到中间结果pp(i+l);
[0046] 对中间结果pp(i+l)进行乘2操作,得到中间结果pp(i+l)0,另一个第二异或电路 对中间结果PP(i+l)〇和伽罗瓦系数进行异或操作,得到中间结果PP(i+l)l ;
[0047] 根据中间结果pp(i+l)的31位选择中间结果中间结果pp(i+l)0或者中间结果 PP(i+l)l,得到中间结果PP(i+2)作为相应选择组件的输出;其中,该选择组件模块的输入 为中间结果PP1,该选择组件模块的输出为中间结果PP61 ;
[0048] 三、选择后段:
[0049] 对该选择组件模块的输出即中间结果pp61和乘数rm进行异或操作,得到中间结 果 pp610 ;
[0050] 根据被乘数rm的0位,选择中间结果pp61或者中间结果pp610,得到伽罗瓦域乘 的输出rs。
[0051] 综上所述,本发明所要解决的技术问题包括:
[0052] 1.提供一种改进的模块化伽罗瓦域乘法的硬件实现系统;
[0053] 2.提供一种利用简单逻辑电路取代复杂逻辑电路的同时提高系统性能的伽罗瓦 域乘法硬件系统;
[0054] 3.提供一种逐级关联执行伽罗瓦域乘法指令的方法。
[0055] 本发明带来的技术效果是:本发明通过择前段模块1、选择组件模块和选择后段 模块3,每个模块又分别主要由选择器、乘法器以及异或电路三种简单的逻辑运算部件组 成,使得电路更加的简洁鲜明,方便电路的管理和优化,降低硬件实现以及电路开发的复杂 性,达到了无需额外复杂电路同时提高性能的目的,同时减少存储消耗,在增加了处理效率 同时降低了处理时间,减少了操作次数。
[0056] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1. 一种实现伽罗瓦域乘法的装置,其特征在于:其包括: 选择前段模块,其包括2个32位第一选择器、1个第一乘法器和1个第一异或电路;其 中一个第一选择器根据被乘数rm的31位,选择乘数rm或者0,得到中间结果ppO;该第一乘 法器对中间结果PP〇进行乘2操作,得到中间结果ppOO ;该第一异或电路对中间结果ppOO 和伽罗瓦系数进行异或操作,得到中间结果PP〇l ;另一个第一选择器根据中间结果PP〇的 31位选择中间结果ppOO或者中间结果ppOl,得到中间结果ppl作为该选择前段模块的输 出; 选择组件模块,其包括30个选择组件,每个选择组件的电路完全相同且前后串接,前 一个选择组件输出作为后一个选择组件的输入,每个选择组件包括2个32位第二选择器、 1个第二乘法器和2个第二异或电路,在同一个选择组件中:其中一个第二异或电路对前一 级的中间结果ppi和乘数rm进行异或操作,得到中间结果ppiO,其中,i = l,3,2n-l,…, 61,n为正整数,其中一个第二选择器根据被乘数rm的32位,选择中间结果ppi或者中间 结果ppi0,得到中间结果PP (i+1),该第二乘法器对中间结果PP (i+1)进行乘2操作,得到 中间结果PP (i+1) 〇,另一个第二异或电路对中间结果PP (i+1) 〇和伽罗瓦系数进行异或操 作,得到中间结果PP(i+l)l,另一个第二选择器根据中间结果PP(i+l)的31位选择中间结 果中间结果PP (i+1) 〇或者中间结果PP (i+1) 1,得到中间结果PP (i+2)作为相应选择组件 的输出;其中,该选择组件模块的输入为中间结果PP1,该选择组件模块的输出为中间结果 PP61 ; 选择后段模块,其包括1个32位第三选择器和1个第三异或电路,该第三异或电路对 该选择组件模块的输出即中间结果PP61和乘数rm进行异或操作,得到中间结果pp610,该 第三选择器根据被乘数rm的0位,选择中间结果pp61或者中间结果pp610,得到伽罗瓦域 乘的输出rs。
2. -种如权利要求1所述的实现伽罗瓦域乘法的装置的应用方法,其特征在于:该应 用方法包括以下步骤: 一、 选择前段: 其中一个第一选择器根据被乘数rm的31位,选择乘数rm或者0,得到中间结果ppO ; 对中间结果PP〇进行乘2操作,得到中间结果ppOO ; 对中间结果PP〇〇和伽罗瓦系数进行异或操作,得到中间结果PP〇l ; 根据中间结果PP〇的31位选择中间结果ppOO或者中间结果ppO 1,得到中间结果pp 1 作为选择前段的输出; 二、 前后依次进行的若干中间段,在每个中间段中: 对前一级的中间结果ppi和乘数rm进行异或操作,得到中间结果ppiO,其中,i = 1,3, 2n-l,…,61,n为正整数,其中一个第二选择器根据被乘数rm的32位,选择中间结果ppi 或者中间结果PPi〇,得到中间结果PP(i+l); 对中间结果PP(i+l)进行乘2操作,得到中间结果pp(i+l)0,另一个第二异或电路对中 间结果pp (i+1) 0和伽罗瓦系数进行异或操作,得到中间结果pp (i+1) 1 ; 根据中间结果PP (i+1)的31位选择中间结果中间结果pp (i+1) 0或者中间结果 PP(i+l)l,得到中间结果PP(i+2)作为相应选择组件的输出;其中,该选择组件模块的输入 为中间结果PP 1,该选择组件模块的输出为中间结果PP61 ; 三、选择后段: 对该选择组件模块的输出即中间结果PP61和乘数rm进行异或操作,得到中间结果 pp610 ; 根据被乘数rm的0位,选择中间结果pp61或者中间结果pp610,得到伽罗瓦域乘的输 出rs〇
【文档编号】G06F7/52GK104407837SQ201410781737
【公开日】2015年3月11日 申请日期:2014年12月16日 优先权日:2014年12月16日
【发明者】王媛, 马强, 胡孔阳, 刘小明, 龚晓华, 万晓佳 申请人:中国电子科技集团公司第三十八研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1