【技术实现步骤摘要】
一种基于有限域的SM9标识密码算法硬件实现系统
[0001]本专利技术属于信息安全领域,尤其涉及一种有限域下的SM9标识密码算法硬件实现系统。
技术介绍
[0002]1984年,标识密码算法的概念首次被提出。在标识密码算法系统中,用户的私钥由密钥生成中心根据主密钥和用户标识计算得出,用户的公钥由用户标识唯一确定,从而用户不需要通过第三方保证其公钥的真实性。国密SM9算法是基于椭圆曲线对构造的公钥密码算法,其安全性基于椭圆曲线对的双线性的性质,当椭圆曲线离散对数问题和扩域离散对数问题的求解难度相当时,可用椭圆曲线对构造出安全性和实现效率兼顾的标识密码算法。
[0003]SM9标识密码算法作为基于双线性对的公钥密码算法,省去了第三方机构的证书认证,同时也具有很高的安全性。但是由于涉及到椭圆曲线和有限域的计算,计算复杂度较大,计算较慢,制约着算法的应用。因此,提高SM9算法的运算速度具有重要意义。
技术实现思路
[0004]为了解决上述问题,本专利技术在遵循国密SM9算法标准的情况下,设计了一种基于有限域下 ...
【技术保护点】
【技术特征摘要】
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标识密码算法硬件实现系统,其特征在于,所述双线性对模块包括素域计算模块,二次扩域运算模块,四次扩域运算模块,十二次扩域运算模块,二次扩域椭圆曲线运算模块、线函数运算模块,最终幂运算模块和双线性对计算状态机;所述素域计算模块用于完成素域中的模运算及椭圆曲线点的运算;所述二次扩域运算模块用于实现素域经二次扩张后得到的二次扩...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。