[发明专利]一种SM2算法并行多路硬件实现方法有效
申请号: | 201910010722.8 | 申请日: | 2019-01-07 |
公开(公告)号: | CN111416717B | 公开(公告)日: | 2023-01-03 |
发明(设计)人: | 刘歆;彭涛;郭春碌;朱剑;王训 | 申请(专利权)人: | 中安网脉(北京)技术股份有限公司 |
主分类号: | H04L9/30 | 分类号: | H04L9/30 |
代理公司: | 北京君有知识产权代理事务所(普通合伙) 11630 | 代理人: | 潘丹 |
地址: | 100070 北京市丰台*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 sm2 算法 并行 硬件 实现 方法 | ||
1.一种SM2算法并行多路硬件实现方法,包括:客户端、FPGA、密码模块以及主控处理器;其中,所述客户端:用于创建会话,使用密码设备应用接口,以会话方式调用SM2密码运算接口;每个所述FPGA包含有FPGA模块1至模块4,每个模块均内置有卡内接口寄存器和PC侧接口寄存器,且所述卡内接口寄存器和PC侧接口寄存器共用存储器内的计算资源,减少数据复制带来的开销; 所述主控处理器内置有处理核,每个处理核含有1-4个内核,所述内核中轮询线程获取 状态队列中的状态数据,根据数据中的通道号唤醒对应通道的处理线程;其特征在于,每个客户端会话对应一路通道,每个通道的请求由对应的通道处理线程进行处理,FPGA为每个通道预分配计算资源,由于每个内核支持64个通道,4个内核支持256个多路通道,因此最大支持可以256个客户端会话;所述FPGA 的卡内寄存器接口组数与主控处理器的内核数目一致,以支持无锁并行计算;运行时,所述FPGA通过状态队列通知客户端、主控处理器;其中,状态队列与主控处理器的内核数目一致,以支持无锁并行计算;该方法中所述内接口寄存器、PC侧接口寄存器与状态队列分离设计,以减少数据复制带来的开销;
该方法包括:初始阶段和运行阶段;
初始阶段:1)FPGA为每个通道分配卡内、PC侧接口寄存器资源,计算资源;2) 主控处理器分配DMA资源、配置卡内寄存器,为每个处理核创建一个轮询线程,和FPGA进行通信,为每个通道创建处理线程;
运行阶段:1)客户端创建会话,调用SM2密码运算接口;
2)客户端将SM2密码运算请求数据发送到会话对应的通道中,同时写PC侧接口寄存器;
3)FPGA获取SM2密码运算请求数据,将数据写入到卡内寄存器,通过状态队列通知主控处理器;
4)主控处理器轮询线程获取状态队列中的状态数据,根据数据中的通道号唤醒对应通道处理线程;
5)通道处理线程从卡内寄存器中获取待处理数据,解析并处理请求转化为SM2运算原语请求写入到卡内接口寄存器,进入睡眠状态;
6)FPGA获取到卡内寄存器中的请求数据,调用对应通道计算资源进行SM2运算,将计算结果写入到卡内寄存器,通过状态队列通知主控处理器;
7)主控处理器轮询线程获取到状态数据后,唤醒对应通道处理线程继续处理,主线程处理结束后将处理结果写入卡内寄存;
8)FPGA获取处理结果,写入PC侧接口寄存器,通过状态队列通知客户端;
9)客户端从会话对应的通道中获取SM2响应数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中安网脉(北京)技术股份有限公司,未经中安网脉(北京)技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910010722.8/1.html,转载请声明来源钻瓜专利网。