一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数字签名及验签方法、装置、设备及计算机可读介质与流程

2022-12-07 02:50:37 来源:中国专利 TAG:

技术特征:
1.一种数字签名方法,其特征在于,包括:接收第一对象发送的签名请求,所述签名请求包括待签名数据和目标私钥,其中,所述待签名数据为所述第一对象在接受目标业务的服务时由所述目标业务产生的业务数据,所述目标私钥与目标公钥组成密钥对,所述密钥对为所述第一对象生成的;调取gpu端上的签名服务,并将所述待签名数据和所述目标私钥输入所述签名服务,以基于所述gpu端上的所述签名服务,利用所述目标私钥对所述待签名数据进行签名,得到携带有数字签名的目标数据;接收所述gpu端返回的所述目标数据,将所述目标数据返回给所述第一对象。2.根据权利要求1所述的方法,其特征在于,所述基于所述gpu端上的所述签名服务,利用所述目标私钥对所述待签名数据进行签名,得到携带有数字签名的目标数据包括:置其中,m为所述待签名数据,z
a
为级联字节流(entl||id||a||b||x_g||y_g||x_a||y_a)的sm3杂凑值,“||”表示字节流的拼接,entl是用两个字节表示的所述第一对象的数据标识的比特长度,id为所述第一对象的所述数据标识,a、b、x_g以及y_g是sm2曲线标准中给定的值,x_a和y_a为所述第一对象提供的所述目标公钥;确定其中,h
v
为sm3哈希算法,e为所述待签名数据的哈希值,e的数据类型为整数;用随机数发生器产生随机数k∈[1,n-1],并基于所述随机数k确定椭圆曲线上的目标点(x1,y1)=[k]g,其中,x1的数据类型为整数,g为sm2曲线的基点,n为sm2曲线标准中给定的值;确定r=(e x1)mod n、s=(1 d
a
)-1
·
(k-r
·
d
a
)mod n,得到所述数字签名(r,s);在r=0、r k=n以及s=0三个条件出现其中任意一个的情况下,重新产生随机数进行签名。3.根据权利要求1所述的方法,其特征在于,所述调取gpu端上的签名服务,并将所述待签名数据和所述目标私钥输入所述签名服务之前,所述方法还包括:将所述第一对象的对象信息作为数据标识嵌入到所述待签名数据中,并将所述数据标识作为当前签名任务的格式化标识,以使所述gpu端根据所述格式化标识为对应的所述当前签名任务分配内核;将多个待处理任务填充至一个数据包后打包发送给所述gpu端,其中,所述待处理任务包括签名任务和/或验签任务,所述待处理任务的数量为32的整数倍。4.根据权利要求3所述的方法,其特征在于,所述调取gpu端上的签名服务包括:向所述gpu端发送资源查询请求;接收所述gpu端响应所述资源查询请求返回的gpu可用资源,其中,所述gpu可用资源包括可用gpu数量、每个可用gpu的可用计算资源量以及每个可用gpu的显存数量中的至少一种;根据包含所述当前签名任务的所述数据包的任务量和所述gpu可用资源,对所述gpu的多个内核进行初始化,以在所述多个内核中为所述当前签名任务分配的目标内核上启动所述签名服务。5.根据权利要求1所述的方法,其特征在于,所述调取gpu端上的签名服务,并将所述待
签名数据和所述目标私钥输入所述签名服务之前,所述方法还包括:将所述待签名数据中的点坐标由仿射坐标系转换为雅可比坐标系之后,再调取所述gpu端上的所述签名服务。6.根据权利要求1所述的方法,其特征在于,所述将所述待签名数据和所述目标私钥输入所述签名服务包括:将所述待签名数据和所述目标私钥按照第一数据结构进行组织排布后输入到所述签名服务中,其中,所述第一数据结构用于使所述签名服务访问所述待签名数据和所述目标私钥时减少产生的访存事务的数量;所述接收所述gpu端返回的所述目标数据包括:接收所述gpu端对处理结果按照第二数据结构进行组织排布后返回的所述目标数据,其中,所述第二数据结构用于减少内存缺页的数量。7.根据权利要求1所述的方法,其特征在于,在接收到多个签名请求的情况下,所述方法还包括:将多个所述签名请求缓存至目标队列;按照预设分配策略将多个所述签名请求分配至多个gpu内核,以使多个所述gpu内核按照并行执行策略在所述目标队列中读取并处理所述签名请求,其中,每个所述gpu内核同时处理至少一个所述签名请求。8.一种验签方法,其特征在于,包括:接收第二对象发送的验签请求,所述验签请求包括待验签数据和目标公钥,其中,所述待验签数据为第一对象在接受目标业务的服务时对所述目标业务产生的业务数据进行签名得到的,所述目标公钥与目标私钥组成密钥对,所述密钥对为所述第一对象生成的;调取gpu端上的验签服务,并将所述待验签数据和所述目标公钥输入所述验签服务,以基于所述gpu端上的所述验签服务,利用所述目标公钥对所述待验签数据进行验签,得到验签结果;接收所述gpu端返回的所述验签结果,将所述验签结果返回给所述第二对象。9.根据权利要求8所述的方法,其特征在于,调取gpu端上的验签服务,并将待验签数据和目标公钥输入验签服务之前,所述方法还包括:将第二对象的对象信息作为数据标识嵌入到所述待验签数据中,并将数据标识作为当前验签任务的格式化标识,以使gpu端根据格式化标识为对应的当前验签任务分配内核;将多个待处理任务填充至一个数据包后打包发送给gpu端,其中,待处理任务包括签名任务和/或验签任务,待处理任务的数量为32的整数倍。10.根据权利要求8所述的方法,其特征在于,调取gpu端上的验签服务包括:向gpu端发送资源查询请求;接收gpu端响应资源查询请求返回的gpu可用资源,其中,所述gpu可用资源包括可用gpu数量、每个可用gpu的可用计算资源量以及每个可用gpu的显存数量中的至少一种;根据包含当前验签任务的数据包的任务量和gpu可用资源,对gpu的多个内核进行初始化,以在多个内核中为当前验签任务分配的目标内核上启动验签服务。11.根据权利要求8所述的方法,其特征在于,所述待验签数据为m

,待验签数据中包括数字签名(r

,s

);基于gpu端上的验签服务,利用目标公钥对待验签数据进行验签,得到验
签结果包括:在r

∈[1,n-1]且s

∈[1,n-1]的情况下,置其中,m

为待验签数据,z
a
为级联字节流(entl||id||a||b||x_g||y_g||x_a||y_a)的sm3杂凑值,“||”表示字节流的拼接,entl是用两个字节表示的第一对象的数据标识的比特长度,id为第一对象的数据标识,a、b、x_g以及y_g是sm2曲线标准中给定的值,x_a和y_a为第一对象提供的目标公钥,n为sm2曲线标准中给定的值;确定其中,h
v
为sm3哈希算法,e

为待验签数据的哈希值,e

的数据类型为整数;将r

、s

转换为整数,并确定t=(r

s

)mod n;在t≠0的情况下确定椭圆曲线上的目标点(x1′
,y1′
)=[s

]g [t]p
a
,其中,x1′
的数据类型为整数,g为sm2曲线的基点,p
a
为目标公钥;确定r=(e

x1′
)mod n,并将r与r

进行对比;在r与r

一致的情况下,确定验签通过。12.根据权利要求11所述的方法,其特征在于,将r与r

进行对比具体包括:在雅可比坐标系下对比r与r

。13.根据权利要求8所述的方法,其特征在于,调取gpu端上的验签服务,并将待签名数据和目标私钥输入签名服务之后,所述方法还包括:基于可变时间方式进行验签。14.根据权利要求8所述的方法,其特征在于,所述将所述待验签数据和所述目标公钥输入所述验签服务包括:将所述待验签数据和所述目标公钥按照第一数据结构进行组织排布后输入到所述验签服务中,其中,所述第一数据结构用于使所述验签服务访问所述待验签数据和所述目标公钥时减少产生的访存事务的数量;所述接收所述gpu端返回的所述验签结果包括:接收所述gpu端对处理结果按照第二数据结构进行组织排布后返回的所述验签结果,其中,所述第二数据结构用于减少内存缺页的数量。15.根据权利要求8所述的方法,其特征在于,在接收到多个验签请求的情况下,所述方法还包括:将多个所述验签请求缓存至目标队列;按照预设分配策略将多个所述验签请求分配至多个gpu内核,以使多个所述gpu内核按照并行执行策略在所述目标队列中读取并处理所述验签请求,其中,每个所述gpu内核同时处理至少一个所述验签请求。16.一种数字签名装置,其特征在于,包括:签名请求接收模块,用于接收第一对象发送的签名请求,所述签名请求包括待签名数据和目标私钥,其中,所述待签名数据为所述第一对象在接受目标业务的服务时由所述目标业务产生的业务数据,所述目标私钥与目标公钥组成密钥对,所述密钥对为所述第一对象生成的;签名服务调取模块,用于调取gpu端上的签名服务,并将所述待签名数据和所述目标私钥输入所述签名服务,以基于所述gpu端上的所述签名服务,利用所述目标私钥对所述待签
名数据进行签名,得到携带有数字签名的目标数据;签名结果返回模块,用于接收所述gpu端返回的所述目标数据,将所述目标数据返回给所述第一对象。17.一种验签装置,其特征在于,包括:验签请求接收模块,用于接收第二对象发送的验签请求,所述验签请求包括待验签数据和目标公钥,其中,所述待验签数据为第一对象在接受目标业务的服务时对所述目标业务产生的业务数据进行签名得到的,所述目标公钥与目标私钥组成密钥对,所述密钥对为所述第一对象生成的;验签服务调取模块,用于调取gpu端上的验签服务,并将所述待验签数据和所述目标公钥输入所述验签服务,以基于所述gpu端上的所述验签服务,利用所述目标公钥对所述待验签数据进行验签,得到验签结果;验签结果返回模块,用于接收所述gpu端返回的所述验签结果,将所述验签结果返回给所述第二对象。18.一种电子设备,包括存储器、处理器、通信接口及通信总线,所述存储器中存储有可在所述处理器上运行的计算机程序,所述存储器、所述处理器通过所述通信总线和所述通信接口进行通信,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7或8至15任一项所述的方法的步骤。19.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1至7或8至15任一所述方法。

技术总结
本申请涉及一种数字签名及验签方法、装置、设备及计算机可读介质。该方法包括:接收第一对象发送的签名请求,所述签名请求包括待签名数据和目标私钥,其中,待签名数据为第一对象在接受目标业务的服务时由目标业务产生的业务数据,目标私钥与目标公钥组成密钥对,密钥对为第一对象生成的;调取GPU端上的签名服务,并将待签名数据和目标私钥输入签名服务,以基于GPU端上的签名服务,利用目标私钥对待签名数据进行签名,得到携带有数字签名的目标数据;接收所述GPU端返回的所述目标数据,将目标数据返回给第一对象。本申请解决大体量项目应用中核心业务与签名验签方法高度耦合导致开发难度大,服务器性能不佳的技术问题。服务器性能不佳的技术问题。服务器性能不佳的技术问题。


技术研发人员:黄方蕾 邱炜伟 崔璨 张珂杰 乔沛杨
受保护的技术使用者:杭州趣链科技有限公司
技术研发日:2022.08.30
技术公布日:2022/12/5
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献