一种用于有限域GF(2制造技术

技术编号:38902047 阅读:12 留言:0更新日期:2023-09-22 14:20
本发明专利技术提出一种用于有限域GF(2

【技术实现步骤摘要】
一种用于有限域GF(2
m
)的可配置模乘方法及系统


[0001]本申请涉及可配置模乘方法,尤其涉及一种用于有限域GF(2
m
)的可配置模乘方法及系统,属于硬件信息安全


技术介绍

[0002]非对称密码体系(又称公钥密码体系)作为现代密码学中的重要组成部分不仅有加密信息的编码技术,还有如数字签名和认证等安全服务。椭圆曲线密码算法(ECC)已经成为了公钥密码算法的主流算法。其具有安全性更高、计算速度更快、存储空间更小、带宽要求更低、抵御密码分析能力更强和硬件实现面积更小的特点。ECC已经被诸多国际和国家标准组织采纳为公钥密码标准(FIPS186

4、IEEE P13634、ANSI X9、ISO/IEC和SECG等),我国也拥有自主研发的SM2椭圆曲线密码算法标准。在互联网方面,基于ECC的网络安全协议也得到了快速发展,例如SSL,TLS,S/MIME,WTLS等均采用了ECC。影响ECC硬件系统性能的核心指标就是标量乘运算的速度,而有限域模乘作为关键单元,其计算时间大约占到标量乘整体运算时间的90%,因此模乘的性能好坏直接影响着整个ECC硬件系统的性能,模乘的研究也是当下的热点之一。
[0003]在有限域中元素的所有表示中,多项式基是最常用的,因为它可以匹配到任何没有外部电路的系统,而且比其它形式的基的复杂性要低得多。已经使用各种结构来实现多项式基模乘,如矩阵乘法、位并行、位串行、数字串行、脉动阵列等。其中脉动阵列结构是非常热的话题,因为其结构的简单性、规律性和模块化,以及使用流水线、并行处理等方式产生高吞吐量而拥有巨大潜力,非常适用于高性能加密应用。而上述模乘中大部分的只能支持特定的曲线上的模乘计算,只有小部分能支持多条曲线上的模乘,但是效率相对较低。因此需要构造一种高速且可配置的模乘算法和架构来提高模的计算效率。

技术实现思路

[0004]在下文中给出了关于本专利技术的简要概述,以便提供关于本专利技术的某些方面的基本理解。应当理解,这个概述并不是关于本专利技术的穷举性概述。它并不是意图确定本专利技术的关键或重要部分,也不是意图限定本专利技术的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
[0005]鉴于此,为解决现有技术的技术问题,本专利技术提供一种用于有限域GF(2
m
)的可配置模乘方法及系统。本专利技术通过优化原有限域GF(2
m
)乘法中所需的大数乘法,利用Karatsuba算法将原需要9次计算的大数乘法减少至6次,降低了整体有限域GF(2
m
)模乘的复杂度;并且基于Karatsuba算法提出新的分解方法,其分解结果非常适用于脉动阵列的结构;提出一种能够支持计算NIST推荐的有限域GF(2
m
)曲线上模乘的可配置的约减方法,同时提出并行计算多条曲线的方法,在不增加原有面积的基础上,提高硬件资源利用率。提出一种新的基于三项Karatsuba分解的可配置模乘算法和其脉动阵列的结构,对于计算复杂度大,寄存器数量多的问题,提出利用共享运算单元和共享寄存器思想,消除冗余的运算单
元和寄存器,以此来减小其面积,可以有效地提高计算效率和硬件利用率。
[0006]方案一、一种用于有限域GF(2
m
)的可配置模乘方法,包括以下步骤:
[0007]S1.输入位宽为571位的操作数A,B,将操作数A,B分别分解为3段192位的子操作数,并计算子操作数加法,当位宽不足时,进行高位补零;
[0008]S2.将子操作数再次进行分解,得到6组32位的子操作数;将每个32位子操作数继续分解得到8个4位的新子操作数;共得到48个4位的新子操作数,0≤i≤47,每8个4位的新子操作数为一组,共分为6组;
[0009]S3.计算模乘部分积,每组新子操作数对应一个部分积;T15个周期完成所有部分积计算,得到乘法结果;
[0010]S4.在T16周期将乘法结果进行约减,约减结果,即为最终的模乘结果。
[0011]优选的,计算模乘部分积的方法是:
[0012]同时计算6组新子操作数对应部分积的T1

T15周期,即G1、G2、G3、G4和G5;部分积包括子部分积G
i,j0
、G
i,j1
、G
i,j2
、G
i,j3
、G
i,j4
和G
i,j5
,其中0≤i≤5,0≤j≤7;
[0013]G
1,00
,G
2,00
,G
3,00
,G
4,00
,G
5,00
在T1周期与G
0,00
并行计算,计算方法如下:
[0014]在T1周期计算子部分积G
0,00
=ω0B0;
[0015]在T2周期计算子部分积G
0,01
=ω8B0x
32
+G
0,00
的同时计算G
0,10
=ω1B0;
[0016]在T3周期计算子部分积G
0,02
=ω
16
B0x
32
+G
0,01
的同时计算G
0,11
=ω9B0x
32
+G
0,10
和G
0,20
=ω2B0;
[0017]在T4周期计算子部分积G
0,03
=ω
24
B0x
32
+G
0,02
的同时计算G
0,12
=ω
17
B0x
32
+G
0,11
、G
0,21
=ω
10
B0x
32
+G
0,20
和G
0,30
=ω3B0;
[0018]在T5周期计算子部分积G
0,04
=ω
32
B0x
32
+G
0,03
的同时计算G
0,13
=ω
25
B0x
32
+G
0,12
、G
0,22
=ω
18
B0x
32
+G
0,21
、G
0,31
=ω
11
B0x
32
+G
0,30
和G
0,40
=ω4B0;
[0019]在T6周期计算子部分积G
0,0
=ω
40
B0x
32
+G
0,04
的同时计算G
0,14本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于有限域GF(2
m
)的可配置模乘方法,其特征在于,包括以下步骤:S1.输入位宽为571位的操作数A,B,将操作数A,B分别分解为3段192位的子操作数,并计算子操作数加法,当位宽不足时,进行高位补零;S2.将子操作数再次进行分解,得到6组32位的子操作数;将每个32位子操作数继续分解得到8个4位的新子操作数;共得到48个4位的新子操作数,0≤i≤47,每8个4位的新子操作数为一组,共分为6组;S3.计算模乘部分积,每组新子操作数对应一个部分积;T15个周期完成所有部分积计算,得到乘法结果;S4.在T16周期将乘法结果进行约减,约减结果,即为最终的模乘结果。2.根据权利要求1所述一种用于有限域GF(2
m
)的可配置模乘方法,其特征在于,计算模乘部分积的方法是:同时计算6组新子操作数对应部分积的T1

T15周期,即G1、G2、G3、G4和G5;部分积包括子部分积G
i,j0
、G
i,j1
、G
i,j2
、G
i,j3
、G
i,j4
和G
i,j5
,其中0≤i≤5,0≤j≤7;G
1,00
,G
2,00
,G
3,00
,G
4,00
,G
5,00
在T1周期与G
0,00
并行计算,计算方法如下:在T1周期计算子部分积G
0,00
=ω0B0;在T2周期计算子部分积G
0,01
=ω8B0x
32
+G
0,00
的同时计算G
0,10
=ω1B0;在T3周期计算子部分积G
0,02
=ω
16
B0x
32
+G
0,01
的同时计算G
0,11
=ω9B0x
32
+G
0,10
和G
0,20
=ω2B0;在T4周期计算子部分积G
0,03
=ω
24
B0x
32
+G
0,02
的同时计算G
0,12
=ω
17
B0x
32
+G
0,11
、G
0,21
=ω
10
B0x
32
+G
0,20
和G
0,30
=ω3B0;在T5周期计算子部分积G
0,04
=ω
32
B0x
32
+G
0,03
的同时计算G
0,13
=ω
25
B0x
32
+G
0,12
、G
0,22
=ω
18
B0x
32
+G
0,21
、G
0,31
=ω
11
B0x
32
+G
0,30
和G
0,40
=ω4B0;在T6周期计算子部分积G
0,0
=ω
40
B0x
32
+G
0,04
的同时计算G
0,14
=ω
33
B0x
32
+G
0,13
、G
0,23
=ω
26
B0x
32
+G
0,22
、G
0,32
=ω
19
B0x
32
+G
0,31
、G
0,41
=ω
12
B0x
32
+G
0,40
和G
0,50
=ω5B0;在T7周期计算子部分积G
0,1
=ω
41
B0x
32
+G
0,14
的同时计算G
0,24
=ω
34
B0x
32
+G
0,23
、G
0,33
=ω
27
B0x
32
+G
0,32
、G
0,42
=ω
20
B0x
32
+G
0,41
、G
0,51
=ω
13
B0x
32
+G
0,50
和G
0,60
=ω6B0;在T8周期计算子部分积G
0,2
=ω
42
B0x
32
+G
0,24
的同时计算G
0,34
=ω
35
B0x
32
+G
0,33
、G
0,43
=ω
28
B0x
32
+G
0,42
、G
0,52
=ω
21
B0x
32
+G
0,51
、G
0,61
=ω
14
B0x
32
+G
0,60
和G
0,70
=ω7B0;在T9周期计算子部分积G
0,3
=ω
43
B0x
32
+G
0,34
的同时计算G
0,44
=ω
36
B0x
32
+G
0,43
、G
0,53
=ω
29
B0x
32
+G
0,52
、G
0,62
=ω
22
B0x
32
+G
0,61
和G
0,71
=ω
15
B0x
32
+G
0,70
;在T10周期计算子部分积G
0,4
=ω
44
B0x
32
+G
0,44
的同时计算G
0,54
=ω
37
B0x
32
+G
0,53
、G
0,63
=ω
30
B0x
32
+G
0,62
和G
0,72
=ω
23
B0x
32
+G
0,71
;在T11周期计算子部分积G
0,5
=ω
45
B0x
32
+G
0,54
的同时计算G
0,64
=ω
38
B0x
32
+G
0,63
和G
0,73
=ω
31
B0x
32
+G
0,72
;在T12周期...

【专利技术属性】
技术研发人员:赵石磊胡殿坤黄海刘志伟于斌马超吴英东
申请(专利权)人:中数深圳时代科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1