一种基于有限域的SM9标识密码算法硬件实现系统技术方案

技术编号:30822337 阅读:93 留言:0更新日期:2021-11-18 12:07
本发明专利技术属于信息安全领域,公开了一种基于有限域的SM9标识密码算法硬件实现系统,包括寄存器模块、数据通路模块、底层控制模块、存储器模块、辅助函数模块、随机数模块和算法功能模块;本系统的底层运算实现了模块化设计,运算功能多,接口灵活,在支持SM9上层运算实现的同时,还能够支持SM2国密算法、ECDSA等公钥密码算法的核心运算步骤。本系统所有运算步骤均由硬件实现,总面积小,同时保持较高的运算性能,相比于软件实现的性能有很大提高。相比于软件实现的性能有很大提高。相比于软件实现的性能有很大提高。

【技术实现步骤摘要】
一种基于有限域的SM9标识密码算法硬件实现系统


[0001]本专利技术属于信息安全领域,尤其涉及一种有限域下的SM9标识密码算法硬件实现系统。

技术介绍

[0002]1984年,标识密码算法的概念首次被提出。在标识密码算法系统中,用户的私钥由密钥生成中心根据主密钥和用户标识计算得出,用户的公钥由用户标识唯一确定,从而用户不需要通过第三方保证其公钥的真实性。国密SM9算法是基于椭圆曲线对构造的公钥密码算法,其安全性基于椭圆曲线对的双线性的性质,当椭圆曲线离散对数问题和扩域离散对数问题的求解难度相当时,可用椭圆曲线对构造出安全性和实现效率兼顾的标识密码算法。
[0003]SM9标识密码算法作为基于双线性对的公钥密码算法,省去了第三方机构的证书认证,同时也具有很高的安全性。但是由于涉及到椭圆曲线和有限域的计算,计算复杂度较大,计算较慢,制约着算法的应用。因此,提高SM9算法的运算速度具有重要意义。

技术实现思路

[0004]为了解决上述问题,本专利技术在遵循国密SM9算法标准的情况下,设计了一种基于有限域下的SM9标识密码算法硬件实现系统,以实现SM9算法的快速运算。本专利技术的一种基于有限域的SM9标识密码算法硬件实现系统的具体技术方案如下:
[0005]一种基于有限域的SM9标识密码算法硬件实现系统,包括寄存器模块、数据通路模块、底层控制模块、存储器模块、辅助函数模块、随机数模块和算法功能模块;
[0006]所述寄存器模块用于读取用户的配置信息以及控制信息;
[0007]所述数据通路模块用于完成对参与运算的数据的各类操作,实现数据在寄存器和存储器之间的传输和对数据进行简单的操作,包括将数据从寄存器写入存储器和从存储器读取数据,用户写入寄存器的初始参数、标识和明文数据通过数据通入模块传输至存储器;
[0008]所述存储器模块用于存储各类运算数据,包括初始参数、计算中间值和计算结果;
[0009]所述底层控制模块用于调用底层的算法模块以完成各类有限域计算、椭圆曲线计算和加密操作;
[0010]所述辅助函数模块用于实现SM9算法中的密码函数H1/H2和密钥派生函数KDF,密钥派生函数用于产生SM9算法中的加解密密钥;
[0011]所述随机数模块用于产生算法所需的1到(N

1)之间的随机数;
[0012]所述算法功能模块用于调用其余各模块以实现SM9算法中的各种算法功能。
[0013]进一步地,所述寄存器模块的具体功能包括:用户将控制信息及配置信息写入寄存器模块,寄存器模块将用户写入的初始参数、标识和明文数据传输至存储器模块,再根据控制信息启动相应的算法功能运算;若运算成功,寄存器模块将计算结果从存储器模块读出并传输给用户;若运算失败,寄存器模块将计算失败信号传输给用户。
[0014]进一步地,所述数据通路模块能实现数据在存储器中不同地址之间进行搬运操作,包括将两个数据进行比较、将两个数据进行首尾拼接和将数据进行移位。
[0015]进一步地,所述底层的算法模块包括双线性对模块、SM3运算模块和 SM4运算模块,所述双线性对模块包括有限域计算、椭圆曲线计算和双线性对计算的功能;所述SM3运算模块是硬件实现的SM3算法功能模块,所述SM3算法是一种杂凑算法,适用于SM9算法应用中的数字签名和验证以及消息认证码的生成和验证;所述SM4运算模块是硬件实现的SM4 算法功能模块,所述SM4算法是一种分组密码算法,用于SM9算法中的公钥加密和解密。
[0016]进一步地,所述双线性对模块包括素域计算模块,二次扩域运算模块,四次扩域运算模块,十二次扩域运算模块,二次扩域椭圆曲线运算模块、线函数运算模块,最终幂运算模块和双线性对计算状态机;
[0017]所述素域计算模块用于完成素域中的模运算及椭圆曲线点的运算;
[0018]所述二次扩域运算模块用于实现素域经二次扩张后得到的二次扩域中的各类运算,包括:模加、模减、模乘、模逆及二次域元素frobenius运算;
[0019]所述四次扩域运算模块用于实现素域经四次扩张后得到的四次扩域中的各类运算,包括:模加、模减、模乘、模逆及四次域元素frobenius运算;
[0020]所述十二次扩域运算模块用于实现素域经十二次扩张后得到的十二次扩域中的各类运算,包括:模乘、模逆、模幂及十二次域元素frobenius 运算;
[0021]所述二次扩域椭圆曲线运算模块用于实现二次扩域下椭圆曲线的各类运算,包括:二次域点的坐标系转换、二次域点加、二次域倍点、二次域点乘、二次域点的frobenius运算;所述二次域点的坐标转系换指的是二次域中的椭圆曲线点在仿射坐标系和射影坐标系之间的转换;
[0022]所述线函数运算模块用于实现R

ate对计算的中的函数g
U,V
(Q)的运算,即两椭圆曲线点的连线方程的计算;函数g
U,V
(Q)计算流程按照SM9算法标准总则中定义实现;计算中,若两椭圆曲线点为不同点且均不为无穷远点,则结果为过两点的直线方程;若两椭圆曲线点为相同点且均不为无穷远点,则结果为过该点的椭圆曲线的切线方程;若其中有一椭圆曲线点为无穷远点,则结果为过另一点做x轴垂线的方程;
[0023]所述最终幂运算模块用于实现R

ate对计算步骤中的最后一步,即 f=f^((q12

1)/r);
[0024]所述双线性对计算状态机用于控制并调用各模块以完成双线性对的计算。
[0025]进一步地,所述素域计算模块中包括模加减计算硬件模块、蒙哥马利模乘硬件模块、模逆计算硬件模块和素域椭圆曲线计算模块;所述模加减计算硬件模块用于实现素域运算中的模加、模减、取模运算;所述蒙哥马利模乘硬件模块用于实现素域中的模乘运算,蒙哥马利模乘硬件模块是基于优化的蒙哥马利模乘算法实现的;所述模逆计算硬件模块用于实现素域中的模逆运算;所述素域椭圆曲线计算模块用于实现素域中的点加、点乘和验点运算。
[0026]进一步地,所述辅助函数模块的密码函数H1/H2、密钥派生函数KDF 的运算步骤均按照SM9算法标准中步骤实现;密码函数H1/H2及密钥派生函数KDF中需要调用密码杂凑函数Hv(),密码杂凑函数Hv()通过SM3 运算模块实现。
[0027]进一步地,所述SM9算法的算法功能包括:数字签名生成、数字签名验证、密钥交换
协议、公钥加密和公钥解密;所述算法功能按照SM9算法标准中的步骤实现计算。
[0028]本专利技术的一种基于有限域下的SM9标识密码算法硬件实现系统具有以下优点:
[0029]1.本系统的底层运算实现了模块化设计,运算功能多,接口灵活,在支持SM9上层运算实现的同时,还能够支持SM2国密算法、ECDSA等公钥密码算法的核心运算步骤。
[0030]2.本系统所有运算步骤均由硬件实现,总面积小,同时保持较高的运算性能,相比于软件实现的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于有限域的SM9标识密码算法硬件实现系统,包括寄存器模块、数据通路模块、底层控制模块、存储器模块、辅助函数模块、随机数模块和算法功能模块;其特征在于,所述寄存器模块用于读取用户的配置信息以及控制信息;所述数据通路模块用于完成对参与运算的数据的各类操作,实现数据在寄存器和存储器之间的传输和对数据进行简单的操作,包括将数据从寄存器写入存储器和从存储器读取数据,用户写入寄存器的初始参数、标识和明文数据通过数据通入模块传输至存储器;所述存储器模块用于存储各类运算数据,包括初始参数、计算中间值和计算结果;所述底层控制模块用于调用底层的算法模块以完成各类有限域计算、椭圆曲线计算和加密操作;所述辅助函数模块用于实现SM9算法中的密码函数H1/H2和密钥派生函数KDF,密钥派生函数用于产生SM9算法中的加解密密钥;所述随机数模块用于产生算法所需的1到(N

1)之间的随机数;所述算法功能模块用于调用其余各模块以实现SM9算法中的各种算法功能。2.根据权利要求1所述的基于有限域的SM9标识密码算法硬件实现系统,其特征在于,所述寄存器模块的具体功能包括:用户将控制信息及配置信息写入寄存器模块,寄存器模块将用户写入的初始参数、标识和明文数据传输至存储器模块,再根据控制信息启动相应的算法功能运算;若运算成功,寄存器模块将计算结果从存储器模块读出并传输给用户;若运算失败,寄存器模块将计算失败信号传输给用户。3.根据权利要求1所述的基于有限域的SM9标识密码算法硬件实现系统,其特征在于,所述数据通路模块能实现数据在存储器中不同地址之间进行搬运操作,包括将两个数据进行比较、将两个数据进行首尾拼接和将数据进行移位。4.根据权利要求1所述的基于有限域的SM9标识密码算法硬件实现系统,其特征在于,所述底层的算法模块包括双线性对模块、SM3运算模块和SM4运算模块,所述双线性对模块包括有限域计算、椭圆曲线计算和双线性对计算的功能;所述SM3运算模块是硬件实现的SM3算法功能模块,所述SM3算法是一种杂凑算法,适用于SM9算法应用中的数字签名和验证以及消息认证码的生成和验证;所述SM4运算模块是硬件实现的SM4算法功能模块,所述SM4算法是一种分组密码算法,用于SM9算法中的公钥加密和解密。5.根据权利要求4所述的基于有限域的SM9标识密码算法硬件实现系统,其特征在于,所述双线性对模块包括素域计算模块,二次扩域运算模块,四次扩域运算模块,十二次扩域运算模块,二次扩域椭圆曲线运算模块、线函数运算模块,最终幂运算模块和双线性对计算状态机;所述素域计算模块用于完成素域中的模运算及椭圆曲线点的运算;所述二次扩域运算模块用于实现素域经二次扩张后得到的二次扩...

【专利技术属性】
技术研发人员:陈华锋
申请(专利权)人:浙江传媒学院
类型:发明
国别省市:

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

1