[发明专利]一种基于有限域的SM9标识密码算法硬件实现系统有效
申请号: | 202110763602.2 | 申请日: | 2021-07-06 |
公开(公告)号: | CN113660087B | 公开(公告)日: | 2023-09-26 |
发明(设计)人: | 陈华锋 | 申请(专利权)人: | 浙江传媒学院 |
主分类号: | H04L9/30 | 分类号: | H04L9/30;H04L9/08 |
代理公司: | 杭州浙科专利事务所(普通合伙) 33213 | 代理人: | 孙孟辉 |
地址: | 310018 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 有限 sm9 标识 密码 算法 硬件 实现 系统 | ||
1.一种基于有限域的SM9标识密码算法硬件实现系统,包括寄存器模块、数据通路模块、底层控制模块、存储器模块、辅助函数模块、随机数模块和算法功能模块;其特征在于,
所述寄存器模块用于读取用户的配置信息以及控制信息;
所述数据通路模块用于完成对参与运算的数据的各类操作,实现数据在寄存器和存储器之间的传输和对数据进行简单的操作,包括将数据从寄存器写入存储器和从存储器读取数据,用户写入寄存器的初始参数、标识和明文数据通过数据通路模块传输至存储器;
所述存储器模块用于存储各类运算数据,包括初始参数、计算中间值和计算结果;
所述底层控制模块用于调用底层的算法模块以完成各类有限域计算、椭圆曲线计算和加密操作;
所述底层的算法模块包括双线性对模块、SM3运算模块和SM4运算模块,所述双线性对模块包括有限域计算、椭圆曲线计算和双线性对计算的功能;所述SM3运算模块是硬件实现的SM3算法功能模块,所述SM3算法是一种杂凑算法,适用于SM9算法应用中的数字签名和验证以及消息认证码的生成和验证;所述SM4运算模块是硬件实现的SM4算法功能模块,所述SM4算法是一种分组密码算法,用于SM9算法中的公钥加密和解密;
所述双线性对模块包括素域计算模块,二次扩域运算模块,四次扩域运算模块,十二次扩域运算模块,二次扩域椭圆曲线运算模块、线函数运算模块,最终幂运算模块和双线性对计算状态机;
所述素域计算模块用于完成素域中的模运算及椭圆曲线点的运算;
所述素域计算模块中包括模加减计算硬件模块、蒙哥马利模乘硬件模块、模逆计算硬件模块和素域椭圆曲线计算模块;所述模加减计算硬件模块用于实现素域运算中的模加、模减、取模运算;所述蒙哥马利模乘硬件模块用于实现素域中的模乘运算,蒙哥马利模乘硬件模块是基于优化的蒙哥马利模乘算法实现的;所述模逆计算硬件模块用于实现素域中的模逆运算;所述素域椭圆曲线计算模块用于实现素域中的点加、点乘和验点运算;
所述二次扩域运算模块用于实现素域经二次扩张后得到的二次扩域中的各类运算,包括:模加、模减、模乘、模逆及二次域元素frobenius运算;所述四次扩域运算模块用于实现素域经四次扩张后得到的四次扩域中的各类运算,包括:模加、模减、模乘、模逆及四次域元素frobenius运算;所述十二次扩域运算模块用于实现素域经十二次扩张后得到的十二次扩域中的各类运算,包括:模乘、模逆、模幂及十二次域元素frobenius运算;
所述二次扩域椭圆曲线运算模块用于实现二次扩域下椭圆曲线的各类运算,包括:二次域点的坐标系转换、二次域点加、二次域倍点、二次域点乘、二次域点的frobenius运算;所述二次域点的坐标转系换指的是二次域中的椭圆曲线点在仿射坐标系和射影坐标系之间的转换;
所述线函数运算模块用于实现R-ate对计算中的函数gU,V(Q)的运算,即两椭圆曲线点的连线方程的计算;函数gU,V(Q)计算流程按照SM9算法标准总则中定义实现;计算中,若两椭圆曲线点为不同点且均不为无穷远点,则结果为过两点的直线方程;若两椭圆曲线点为相同点且均不为无穷远点,则结果为过该点的椭圆曲线的切线方程;若其中有一椭圆曲线点为无穷远点,则结果为过另一点做x轴垂线的方程;
所述最终幂运算模块用于实现R-ate对计算步骤中的最后一步,即
所述双线性对计算状态机用于控制并调用各模块以完成双线性对的计算;
所述辅助函数模块用于实现SM9算法中的密码函数H1/H2和密钥派生函数KDF,密钥派生函数用于产生SM9算法中的加解密密钥;
所述随机数模块用于产生算法所需的1到(N-1)之间的随机数;
所述算法功能模块用于调用其余各模块以实现SM9算法中的各种算法功能。
2.根据权利要求1所述的基于有限域的SM9标识密码算法硬件实现系统,其特征在于,所述寄存器模块的具体功能包括:用户将控制信息及配置信息写入寄存器模块,寄存器模块将用户写入的初始参数、标识和明文数据传输至存储器模块,再根据控制信息启动相应的算法功能运算;若运算成功,寄存器模块将计算结果从存储器模块读出并传输给用户;若运算失败,寄存器模块将计算失败信号传输给用户。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江传媒学院,未经浙江传媒学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110763602.2/1.html,转载请声明来源钻瓜专利网。