CN117749379A - 一种数据处理方法、装置、设备以及计算机可读存储介质 - Google Patents

一种数据处理方法、装置、设备以及计算机可读存储介质 Download PDF

Info

Publication number
CN117749379A
CN117749379A CN202211123183.7A CN202211123183A CN117749379A CN 117749379 A CN117749379 A CN 117749379A CN 202211123183 A CN202211123183 A CN 202211123183A CN 117749379 A CN117749379 A CN 117749379A
Authority
CN
China
Prior art keywords
signature
private key
signature component
elliptic curve
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211123183.7A
Other languages
English (en)
Inventor
彭石坚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202211123183.7A priority Critical patent/CN117749379A/zh
Publication of CN117749379A publication Critical patent/CN117749379A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请实施例公开了一种数据处理方法、装置、设备以及计算机可读存储介质,该方法包括:将业务消息对应的消息摘要以及椭圆曲线点Q均发送至第二签名设备,以使第二签名设备在根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量时,根据第二私钥片段以及第一签名分量,生成局部签名分量;根据第一私钥片段、第一签名分量以及局部签名分量,生成第二签名分量;将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备,以使验证设备根据与第一私钥片段以及第二私钥片段相关联的全局公钥,对获取到的待验证数据进行合法性验证。采用本申请,不仅可以提高私钥的安全性,还可以提高共同参与签名的安全性。

Description

一种数据处理方法、装置、设备以及计算机可读存储介质
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据处理方法、装置、设备以及计算机可读存储介质。
背景技术
随着互联网的发展,许多事务在网络上开展,这些电子事务的完成通常涉及若干个参与方。为了提升安全性和参与者之间的公平性,催生了各参与者共同对相关消息进行签名的需求。
在现有技术中,若电子事务的参与方包括参与方1以及参与方2,且双方想要共同对消息进行签名,则参与方1通过自己的私钥1对消息进行签名,得到第一参与签名,将携带第一参与签名的消息转发给参与方2。参与方2首先通过参与方1的公钥1对第一参与签名进行验签,在验签通过时,通过自己的私钥2对消息进行签名,得到第二参与签名,然后将携带第一参与签名以及第二参与签名的消息转发给验证方。验证方通过参与方1的公钥1对第一参与签名进行验签,得到第一验签结果;通过参与方2的公钥2对第二参与签名进行验签,得到第二验签结果;在第一验签结果以及第二验签结果均为验签通过结果时,验证方确认消息是参与方1以及参与方2发送的,同时,也确认消息的合法性。但由于私钥1仅与参与方1相关(包括私钥1的生成、存储等),私钥 2也仅于参与方2相关,故可以较容易地利用参与方的信息获取到其对应的私钥。例如,获取到私钥2,且通过私钥2,对修改过的消息进行非法签名,并传输给验证方,此时验证方通过公钥2仍可以对非法签名验签通过。明显地,现有技术中私钥的安全性不高,且由于私钥安全性不高,还降低了共同参与签名的安全性。
发明内容
本申请实施例提供一种数据处理方法、装置、设备以及计算机可读存储介质,不仅可以提高私钥的安全性,还可以提高共同参与签名的安全性。
本申请实施例一方面提供了一种数据处理方法,该方法由具有第一私钥片段的第一签名设备执行,方法包括:
将业务消息对应的消息摘要以及椭圆曲线点Q均发送至第二签名设备,以使第二签名设备在根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量时,根据第二私钥片段以及第一签名分量,生成局部签名分量;
获取第二签名设备发送的第一签名分量以及局部签名分量,根据第一私钥片段、第一签名分量以及局部签名分量,生成第二签名分量;
将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备,以使验证设备根据与第一私钥片段以及第二私钥片段相关联的全局公钥,对获取到的待验证数据进行合法性验证。
本申请实施例一方面提供了一种数据处理方法,该方法由具有第二私钥片段的第二签名设备执行,方法包括:
获取第一签名设备发送的业务消息对应的消息摘要以及椭圆曲线点Q;
根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量,根据第二私钥片段以及第一签名分量,生成局部签名分量;
将第一签名分量以及局部签名分量均发送至第一签名设备,以使第一签名设备在根据第一私钥片段、第一签名分量以及局部签名分量,生成第二签名分量时,将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备;验证设备用于根据与第一私钥片段以及第二私钥片段相关联的全局公钥,对获取到的待验证数据进行合法性验证。
本申请实施例一方面提供了一种数据处理装置,该装置运行于具有第一私钥片段的第一签名设备,装置包括:
第一发送模块,用于将业务消息对应的消息摘要以及椭圆曲线点Q均发送至第二签名设备,以使第二签名设备在根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量时,根据第二私钥片段以及第一签名分量,生成局部签名分量;
第一生成模块,用于获取第二签名设备发送的第一签名分量以及局部签名分量,根据第一私钥片段、第一签名分量以及局部签名分量,生成第二签名分量;
第二发送模块,用于将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备,以使验证设备根据与第一私钥片段以及第二私钥片段相关联的全局公钥,对获取到的待验证数据进行合法性验证。
其中,数据处理装置,还包括:
第二生成模块,用于获取椭圆曲线的基点,根据基点的阶,生成候选私钥片段集合,从候选私钥片段集合中获取候选私钥片段;
第一确定模块,用于若候选私钥片段满足私钥确定条件,则将候选私钥片段确定为第一私钥片段;
第一确定模块,还用于根据第一私钥片段以及基点,生成局部公钥,将局部公钥发送至第二签名设备,以使第二签名设备根据局部公钥以及第二私钥片段,生成全局公钥。
其中,数据处理装置,还包括:
第三生成模块,用于根据第一对象标识、第二对象标识、椭圆曲线***参数以及全局公钥,生成待压缩杂凑值;椭圆曲线***参数包括椭圆曲线的基点;
第三生成模块,还用于对待压缩杂凑值以及业务消息进行压缩处理,得到消息摘要;
第四生成模块,用于根据基点的阶,生成随机数集合,从随机数集合中获取随机数k1,根据随机数k1以及基点,生成椭圆曲线点Q。
其中,第四生成模块,包括:
第一获取单元,用于若获取到第二签名设备发送的针对历史椭圆曲线点Q 的第一错误提示信息,则从随机数集合中获取不同于历史随机数k1的随机数 k1;历史随机数k1属于随机数集合;历史椭圆曲线点Q是根据历史随机数k1 以及基点所生成的;
乘积运算单元,用于对随机数k1以及基点进行乘积运算,得到椭圆曲线点 Q。
其中,第一生成模块,包括:
第一检验单元,用于对第一签名分量以及局部签名分量分别进行检验,得到第一检验结果;
第二获取单元,用于若第一检验结果为检验通过结果,则获取第一私钥片段与第一数值之间的第一差值,获取随机数k1以及局部签名分量之间的第一总值;随机数k1用于生成椭圆曲线点Q;
候选生成单元,用于根据第一差值、第一总值、第一签名分量以及椭圆曲线的基点的阶,生成候选签名分量;
第二检验单元,用于对候选签名分量进行检验,得到第二检验结果,若第二检验结果为检验通过结果,则将候选签名分量确定为第二签名分量。
其中,第一检验单元,包括:
第一检验子单元,用于检验第一签名分量以及随机数集合之间的第一关联关系;随机数集合是根据基点的阶所生成的;
第一确定子单元,用于若第一关联关系指示随机数集合不包括第一签名分量,则确定第一检验结果为检验失败结果,返回针对第一签名分量的第二错误提示信息至第二签名设备;
第二检验子单元,用于若第一关联关系指示随机数集合包括第一签名分量,则检验局部签名分量以及随机数集合之间的第二关联关系;
第二确定子单元,用于若第二关联关系指示随机数集合不包括局部签名分量,则确定第一检验结果为检验失败结果,返回针对局部签名分量的第三错误提示信息至第二签名设备;
第二确定子单元,还用于若第二关联关系指示随机数集合包括局部签名分量,则确定第一检验结果为检验通过结果。
其中,候选生成单元,包括:
第一运算子单元,用于对差值的倒数以及第一总值进行乘积运算,得到第二数值,获取第二数值以及第一签名分量之间的第二差值;
第二运算子单元,用于对第二差值以及椭圆曲线的基点的阶进行取余运算,将得到的第一余数作为候选签名分量。
其中,第二检验单元,包括:
第三检验子单元,用于检验候选签名分量以及随机数集合之间的第三关联关系;随机数集合是根据基点的阶所生成的;
第三确定子单元,用于若第三关联关系指示随机数集合不包括候选签名分量,则确定第二检验结果为检验失败结果,返回第四错误提示信息至第二签名设备;
第三确定子单元,还用于若第三关联关系指示随机数集合包括候选签名分量,则确定第二检验结果为检验通过结果。
本申请实施例一方面提供了一种数据处理装置,该装置运行于具有第二私钥片段的第二签名设备,装置包括:
第一获取模块,用于获取第一签名设备发送的业务消息对应的消息摘要以及椭圆曲线点Q;
分量生成模块,用于根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量,根据第二私钥片段以及第一签名分量,生成局部签名分量;
分量发送模块,用于将第一签名分量以及局部签名分量均发送至第一签名设备,以使第一签名设备在根据第一私钥片段、第一签名分量以及局部签名分量,生成第二签名分量时,将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备;验证设备用于根据与第一私钥片段以及第二私钥片段相关联的全局公钥,对获取到的待验证数据进行合法性验证。
其中,数据处理装置,还包括:
第二获取模块,用于获取第二私钥片段以及第一数值之间的第三差值,对第三差值以及局部公钥进行乘积运算,得到第三数值;局部公钥是第一签名设备根据第一私钥片段所生成的;
乘积运算模块,用于对第二私钥片段以及椭圆曲线的基点进行乘积运算,得到第四数值;
公钥确定模块,用于将第三数值以及第四数值之间的差值,确定为全局公钥。
其中,分量生成模块,包括:
第一获取单元,用于若检验椭圆曲线点Q属于椭圆曲线,则获取随机数k2,对随机数k2以及椭圆曲线的基点进行乘积运算,得到第五数值;
第二获取单元,用于获取第二私钥片段以及第一数值之间的第三差值,获取椭圆曲线点Q以及第五数值之间的第四差值;
第一确定单元,用于对第五数值以及第四差值进行乘积运算,得到候选椭圆曲线点,若候选椭圆曲线点满足取值条件,则将候选椭圆曲线点确定为椭圆曲线点T;椭圆曲线点T包括目标坐标值;
第三获取单元,用于获取目标指标值以及消息摘要之间的第二总值,对第二总值以及基点的阶进行取余运算,将得到的第二余数作为业务消息的第一签名分量。
其中,第三获取单元,包括:
第一获取子单元,用于获取随机数k1以及随机数k2之间的第五差值;随机数k1用于生成椭圆曲线点Q;
第二获取子单元,用于对第三差值以及第五差值进行乘积运算,得到第六数值,获取第二余数以及第六数值之间的第三总值;
分量确定子单元,用于若第三总值不等于基点的阶,且第二余数不等于第七数值,则将第二余数确定为业务消息的第一签名分量。
其中,分量生成模块,包括:
第四获取单元,用于获取第二私钥片段以及第一数值之间的第三差值,对第三差值的倒数以及第一签名分量进行乘积运算,得到第八数值;
第五获取单元,用于获取第八数值以及随机数k2之间的第六差值;随机数 k2与第一签名分量相关联;
第二确定单元,用于对第六差值以及椭圆曲线的基点的阶进行取余运算,若得到的第三余数不等于第七数值,则将第三余数确定为局部签名分量。
本申请一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
上述处理器与上述存储器、上述网络接口相连,其中,上述网络接口用于提供数据通信功能,上述存储器用于存储计算机程序,上述处理器用于调用上述计算机程序,以使得计算机设备执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,上述计算机程序适于由处理器加载并执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行本申请实施例中的方法。
在本申请实施例中,具有第一私钥片段的第一签名设备可以将业务消息对应的消息摘要以及椭圆曲线点Q均发送至第二签名设备,故第二签名设备在根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量时,可以根据第二私钥片段以及第一签名分量,生成局部签名分量;进一步,第一签名设备获取第二签名设备发送的第一签名分量以及局部签名分量,根据第一私钥片段、第一签名分量以及局部签名分量,可以生成第二签名分量;进一步,第一签名设备将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备,以使验证设备根据与第一私钥片段以及第二私钥片段相关联的全局公钥,可以对获取到的待验证数据进行合法性验证。上述可知,本申请实施例中的第一私钥片段以及第二私钥片段,为两个不同的签名设备所分别拥有的相互独立的私钥片段,且共同对应一个全局公钥,故第一签名设备无法通过第一私钥片段,确定全局公钥对应的全局私钥(其包括第一私钥片段以及第二私钥片段),同理,第二签名设备也无法通过第二私钥片段确定全局公钥对应的全局私钥。因此,采用本申请,可以降低仅由一方保管私钥所造成的私钥泄露风险,即可以提高私钥的安全性。此外,本申请实施例是通过具有第一私钥片段的第一签名设备,以及具有第二私钥片段的第二签名设备的共同协作,对业务消息进行签名操作,故可以实现双方共同参与签名的需求,且通过第一私钥片段以及第二私钥片段,可以提高共同参与签名的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种***架构示意图;
图2是本申请实施例提供的一种数据处理的场景示意图一;
图3是本申请实施例提供的一种数据处理方法的流程示意图一;
图4是本申请实施例提供的一种数据处理的场景示意图二;
图5是本申请实施例提供的一种数据处理方法的流程示意图二;
图6是本申请实施例提供的一种数据处理装置的结构示意图一;
图7是本申请实施例提供的一种数据处理装置的结构示意图二;
图8是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解,首先对部分名词进行以下简单解释:
1、椭圆曲线加密法(EllipticCurveCryptography,ECC),是一种公钥加密技术,以椭圆曲线理论为基础,利用有限域上椭圆曲线的点构成的阿贝尔(Abel) 群离散对数难解性,实现加密、解密和数字签名,将椭圆曲线中的加法运算与离散对数中的模乘运算相对应,就可以建立基于椭圆曲线的对应密码体制。
2、数字签名(digital signature),是公钥密码算法的一类典型应用,应用场景为:发送方使用其私钥对消息进行处理得到签名值(第一签名分量r,第二签名分量s),接收方使用发送方的公钥对消息和签名值进行验证,简称“私钥加签,公钥验签”。在此过程中可能使用到的主要密码算法有:非对称密码算法 (又称公钥密码算法)、哈希算法(又称消息摘要算法、杂凑算法等)。
3、杂凑算法,也称哈希算法,在信息安全领域中用于计算消息的摘要,校验消息的完整性。
4、公钥(public key)与私钥(private key),公钥与私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密数据、验证数字签名等。通过这种算法能够确保得到的密钥对是唯一的,使用这种密钥对的时候,如果用其中一个密钥加密或签名一段数据,必须用另一个密钥解密或验证签名,例如,用公钥加密数据就必须用私钥解密,如果用私钥签名也必须用公钥验证签名,否则验证将不会成功。
请参见图1,图1是本申请实施例提供的一种***架构示意图。如图1所示,该***可以包括业务服务器100以及终端设备集群,终端设备集群可以包括一个或者多个终端设备,本申请不对终端设备的数量进行限制。如图1所示,该终端设备集群可以包括终端设备200a、终端设备200b、终端设备200c、…、终端设备200n。
其中,终端设备集群之间可以存在通信连接,例如终端设备200a与终端设备200b之间存在通信连接,终端设备200a与终端设备200c之间存在通信连接。同时,终端设备集群中的任一终端设备可以与业务服务器100存在通信连接,例如终端设备200a与业务服务器100之间存在通信连接。其中,上述通信连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其它方式,本申请在此不做限制。
应当理解,如图1所示的终端设备集群中的每个终端设备均可以安装有应用客户端,当该应用客户端运行于各终端设备中时,可以分别与上述图1所示的业务服务器100进行数据交互,即上述的通信连接。其中,该应用客户端可以为视频应用、社交应用、即时通信应用、办公软件应用、导航应用、购物应用、金融理财应用、商务应用、浏览器等具有数字签名功能的应用客户端。其中,该应用客户端可以为独立的客户端,也可以为集成在某客户端(例如,社交客户端、教育客户端以及多媒体客户端等)中的嵌入式子客户端,在此不做限定。
以商务应用为例,业务服务器100可以为包括商务应用对应的后台服务器、数据处理服务器等多个服务器的集合,因此,每个终端设备均可以通过该商务应用对应的应用客户端,与业务服务器100进行数据传输。例如每个终端设备均可以通过商务应用的应用客户端,将其本地生成的业务消息的消息摘要上传至业务服务器100,进而业务服务器100可以将业务消息的消息摘要转发给其它终端设备或上传至云服务器。
可以理解的是,在本申请的具体实施方式中,涉及到用户信息(例如业务消息的消息摘要以及椭圆曲线点Q)等相关的数据,当本申请中的实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
为便于后续理解和说明,本申请实施例可以在图1所示的终端设备集群中选择一个终端设备作为第一签名设备,例如以终端设备200a作为第一签名设备;选择一个终端设备作为第二签名设备,例如以终端设备200b作为第二签名设备;其中,验证设备可以为终端设备集群中的一个终端设备(不同于第一签名设备以及第二签名设备),也可以为上述的业务服务器100。
当第一签名设备以及第二签名设备需要对业务消息共同进行签名处理时,首先具有第一私钥片段的第一签名设备获取业务消息对应的消息摘要以及椭圆曲线点Q。其中,第一私钥片段是第一签名设备独立生成的子私钥,其不是一个完整的私钥,第一私钥片段以及第二私钥片段共同组合成一个完整的私钥(为了区分,将组合成的私钥称为全局私钥),全局私钥与下文提及的全局公钥是一对秘钥对。进一步,第一签名设备将业务消息对应的消息摘要以及椭圆曲线点 Q均发送至具有第二私钥片段的第二签名设备,同理,第二私钥片段是第二签名设备独立生成的子私钥,其不是一个完整的私钥。第二签名设备根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量,等同于签名值r,然后根据第二私钥片段以及第一签名分量,生成局部签名分量,即局部签名值s;第二签名设备将第一签名分量以及局部签名分量均发送至第一签名设备。
进一步,第一签名设备获取第二签名设备发送的第一签名分量以及局部签名分量,根据第一私钥片段、第一签名分量以及局部签名分量,第一签名设备生成第二签名分量。明显地,在本申请实施例中,业务消息的消息摘要由第一签名设备生成,然后由第二签名设备基于消息摘要生成第一签名分量,最后由第一签名设备基于第一签名分量生成第二签名分量,即实现了通信双方真正意义上地共同参与签名,而不是通信双方相互独立生成自己的签名,且使业务消息携带两个相互独立的签名值。
进一步,第一签名设备将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备,验证设备根据与第一私钥片段以及第二私钥片段相关联的全局公钥,可以对获取到的待验证数据进行合法性验证。其中,第一签名分量以及局部签名分量的生成、第二签名分量的生成、第一私钥片段以及第二私钥片段的生成,以及全局公钥的生成等,请参见下文图2-图5所分别对应的实施例的描述。
需要说明的是,上述业务服务器100、终端设备200a、终端设备200b、终端设备200c...、终端设备200n均可以为区块链网络中的区块链节点,全文叙述的数据(例如业务消息、第一签名分量以及第二签名分量)可以进行存储,存储方式可以是区块链节点根据数据生成区块,并将区块添加至区块链中进行存储的方式。
区块链是一种分布式数据存储、点对点传输、共识机制以及加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。区块链本质上是一个去中心化的数据库,该数据库中的每个节点均存储一条相同的区块链,区块链网络可以将节点区分为核心节点、数据节点以及轻节点。核心节点、数据节点以及轻节点共同组成区块链节点。其中核心节点负责区块链全网的共识,也就是说核心节点为区块链网络中的共识节点。对于区块链网络中的交易数据被写入账本的流程可以为,区块链网络中的数据节点或轻节点获取到交易数据,将交易数据在区块链网络中传递(也就是节点以接力棒的方式进行传递),直到共识节点收到该交易数据,共识节点再将该交易数据打包进区块,对该区块执行共识,待共识完成后将该交易数据写入账本。此处以业务消息、第一签名分量以及第二签名分量示例交易数据,业务服务器100(区块链节点)在通过对交易数据的共识后,根据交易数据生成区块,将区块存储至区块链网络中;而对于交易数据(即业务消息、第一签名分量以及第二签名分量)的读取,则可以由区块链节点在区块链网络中,获取到包含该交易数据的区块,进一步,在区块中获取交易数据。
可以理解的是,本申请实施例提供的方法可以由计算机设备执行,计算机设备包括但不限于终端设备或业务服务器。其中,业务服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云数据库、云服务、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。其中,终端设备和业务服务器可以通过有线或无线方式进行直接或间接地连接,本申请实施例在此不做限制。
进一步地,请参见图2,图2是本申请实施例提供的一种数据处理的场景示意图一。本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等。本申请实施例可适用于对签名私钥有保护需求的电子商务、物联网、云计算***等;也适用于采用两方协同生成签名的场景。这里将不对具体的业务场景进行一一列举。其中,该数据处理场景的实现过程可以在业务服务器中进行,也可以在终端设备中进行,还可以在终端设备和业务服务器中交互进行,此处不做限制。为了便于叙述以及理解,本申请实施例以在终端设备中进行为例进行叙述,其中,终端设备可以为上述图1所对应实施例的终端设备集群中的任意一个终端设备。
本申请实施例将用于协同签名的两个终端设备,分别称为第一签名设备以及第二签名设备。如图2所示,第一签名设备201a具有第一私钥片段20a,第二签名设备201b具有第二私钥片段20b,其中,第一签名设备201a独立生成第一私钥片段20a,且第二签名设备201b独立生成第二私钥片段20b,故正常情况下,第一签名设备201a获取不到第二私钥片段20b,第二签名设备201b 获取不到第一私钥片段20a,同理,其他的终端或服务端也获取不到第一私钥片段20a以及第二私钥片段20b。在本申请实施例中,第一私钥片段20a以及第二私钥片段20b共同对应一个全局公钥20e。本申请实施例暂不对第一私钥片段20a的生成过程、第二私钥片段20b的生成过程,以及,基于第一私钥片段20a以及第二私钥片段20b得到全局公钥20e的过程展开描述,请参见下文图3对应的实施例中的描述,以及图5对应的实施例中的描述。
请再参见图2,第一签名设备201a将业务消息20d对应的消息摘要202a 以及椭圆曲线点Q均发送至第二签名设备201b。本申请实施例不对业务场景进行限定,包括但不限于电子***的开具以及红冲、数字资产的生成、转移、上链等,故不对业务消息进行限定,可以根据实际应用场景进行设定,具有待签名的需求即可。第一签名设备201a生成消息摘要202a以及椭圆曲线点Q的过程,本申请实施例暂不展开叙述,请参见下文图3所对应的实施例中的描述。
请再参见图2,在获取到第一签名设备201a发送的消息摘要202a以及椭圆曲线点Q时,第二签名设备201b通过椭圆曲线点Q以及第二私钥片段20b,可以对消息摘要202a进行签名处理,得到第一签名分量201c,该第一签名分量201c等同于签名值(r,s)中的签名值分量r。进一步,第二签名设备201b 通过第二私钥片段20b,可以对第一签名分量201c进行签名处理,得到局部签名分量202c。如图2所示,第二签名设备201b将第一签名分量201c以及局部签名分量202c均返回至第一签名设备201a。需要说明的是,本申请实施例中的局部签名分量202c不等同于签名值(r,s)中的签名值分量s。其中,第一签名分量201c以及局部签名分量202c的具体生成过程,此处暂不展开描述,请参见下文图5所对应的实施例中的描述。
请再参见图2,第一签名设备201a获取第二签名设备201b发送的第一签名分量201c以及局部签名分量202c;根据第一私钥片段20a以及第一签名分量201c,第一签名设备201a可以对局部签名分量202c进行签名处理,生成第二签名分量203c。该第二签名分量203c等同于签名值(r,s)中的签名值分量 s,即业务消息对应的签名值(r,s),包括由第二签名设备201b所生成的第一签名分量201c(即签名值分量r),以及由第一签名设备201a所生成的第二签名分量203c(即签名值分量s)。其中,第二签名分量203c的具体生成过程,此处暂不展开描述,请参见下文图3所对应的实施例中的描述。
请再参见图2,第一签名设备201a将携带签名值(r,s)的业务消息20d 作为待验证数据发送至验证设备201e;可以理解的是,签名值(r,s)包括第一签名分量201c以及第二签名分量203c。根据与第一私钥片段20a以及第二私钥片段20b相关联的全局公钥20e,验证设备201e可以对获取到的待验证数据进行合法性验证。合法性验证的具体过程可以为:验证设备201e通过全局公钥20e,对签名值(r,s)进行验证,若验证失败,则可以确定待验证数据为非法数据,此时,不对待验证数据中的业务消息进行业务处理;若验证成功,则可以确定签名值(r,s)是由第一私钥片段20a以及第二私钥片段20b签名所得(验证设备201e不清楚全局私钥的内容,也不知道第一私钥片段20a以及第二私钥片段20b的内容);进一步,验证设备201e获取验证成功所得到第一数字摘要,获取业务消息20d对应的第二数字摘要(正常场景下,与消息摘要202a 相同);验证设备201e将第一数字摘要以及第二数字摘要进行对比,若第一数字摘要以及第二数字摘要相同,则通过全局公钥对签名值(r,s)验签成功,进而确定待验证数据是合法数据;若第一数字摘要以及第二数字摘要不同,则通过全局公钥对签名值(r,s)验签失败,进而确定待验证数据是非法数据。
上述可知,本申请示例是通过第一签名设备以及第二签名设备的协同处理,生成业务消息的签名值(r,s),即第一签名分量以及第二签名分量,实现了真正意义上地参与两方共同参与签名的需求。可以理解的是,若只有第一签名设备利用第一私钥片段参与业务消息的签名,且第一签名设备将自己生成的签名值发送给验证设备,则验证设备利用全局公钥对第一签名设备所生成的签名值进行验签时,所验签失败,因为全局公钥不仅仅与第一私钥片段相关联,还与第二私钥片段相关联。故采用本申请实施例,不仅可以减轻私钥只由一方保管造成的泄漏风险,即提高私钥的安全性,还可以提高共同参与签名的安全性。
进一步地,请参见图3,图3是本申请实施例提供的一种数据处理方法的流程示意图一。该数据处理方法可以由具有第一私钥片段的第一签名设备执行,其中,第一签名设备可以为上述图1所述的终端设备集群中的任意一个终端设备,例如终端设备200a,也可以为上述图1中所述的业务服务器100。如图3 所示,该数据处理方法至少可以包括以下步骤S101-步骤S103。
步骤S101,将业务消息对应的消息摘要以及椭圆曲线点Q均发送至第二签名设备,以使第二签名设备在根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量时,根据第二私钥片段以及第一签名分量,生成局部签名分量。
具体的,获取椭圆曲线的基点,根据基点的阶,生成候选私钥片段集合,从候选私钥片段集合中获取候选私钥片段;若候选私钥片段满足私钥确定条件,则将候选私钥片段确定为第一私钥片段;根据第一私钥片段以及基点,生成局部公钥,将局部公钥发送至第二签名设备,以使第二签名设备根据局部公钥以及第二私钥片段,生成全局公钥。
具体的,根据第一对象标识、第二对象标识、椭圆曲线***参数以及全局公钥,生成待压缩杂凑值;椭圆曲线***参数包括椭圆曲线的基点;对待压缩杂凑值以及业务消息进行压缩处理,得到消息摘要;根据基点的阶,生成随机数集合,从随机数集合中获取随机数k1,根据随机数k1以及基点,生成椭圆曲线点Q。
其中,从随机数集合中获取随机数k1,根据随机数k1以及基点,生成椭圆曲线点Q的具体过程可以包括:若获取到第二签名设备发送的针对历史椭圆曲线点Q的第一错误提示信息,则从随机数集合中获取不同于历史随机数k1 的随机数k1;历史随机数k1属于随机数集合;历史椭圆曲线点Q是根据历史随机数k1以及基点所生成的;对随机数k1以及基点进行乘积运算,得到椭圆曲线点Q。
请一并参见图4,图4是本申请实施例提供的一种数据处理的场景示意图二。如图4所示,第一签名设备40a确定椭圆曲线,或确定椭圆曲线方程,本申请实施例不对椭圆曲线方程进行限定,可以根据实际应用场景进行设定,故本申请实施例不对椭圆曲线***参数的取值进行限定,由椭圆曲线方程确定。椭圆曲线***参数可以包括椭圆曲线方程的两个元素,即元素a以及元素b,还可以包括基点G。进一步,第一签名设备40a可以确定基点G的阶n,根据阶n,第一签名设备40a可以确定第一私钥片段的取值范围,本申请实施例将第一私钥片段的取值范围定义为候选私钥片段集合,如图4中的候选私钥片段集合40b,其可以表述成[2,n-1],n为阶。
第一签名设备40a可以从候选私钥片段集合40b中获取候选私钥片段,或者,第一签名设备40a利用随机数发生器产生私候选私钥片段(属于候选私钥片段集合40b)。进一步,第一签名设备40a判断候选私钥片段是否满足私钥确定条件,判断的过程可以通过如下公式(1)表述。
(d1-1)^(-1)mod n (1)
其中,公式(1)中的d1表示候选私钥片段,mod表示取余运算。第一签名设备40a通过公式(1)可以生成一个数值,若该数值等于1,则确定候选私钥片段不满足私钥确定条件,此时,第一签名设备40a从候选私钥片段集合40b 中,获取不同于候选私钥片段的更新候选私钥片段,然后判断更新候选私钥片段是否满足私钥确定条件,可以理解的是,第一签名设备40a判断更新候选私钥片段是否满足私钥确定条件的过程,与判断候选私钥片段是否满足私钥确定条件的过程相同,故此处不进行赘述,请参见针对候选私钥片段的描述。若通过公式(1)所生成的数值不等于1,则第一签名设备40a确定候选私钥片段满足私钥确定条件,故将候选私钥片段确定为第一私钥片段。由上述描述可知,第一签名设备40a是独立生成自己的私钥片段(也可以称为子私钥)。
请再参见图4,根据第一私钥片段以及基点G,第一签名设备40a生成局部公钥,生成方式如下公式(2)。
P1=d1*G (2)
其中,公式(2)中的P1表示局部公钥。
进一步,第一签名设备40a将局部公钥发送至第二签名设备40c。可以理解的是,第二签名设备40c已获取与第一签名设备40a相同的椭圆曲线,或椭圆曲线方程,即第二签名设备40c获取的椭圆曲线***参数,与第一签名设备40a获取的椭圆曲线***参数相同。此外,可以理解的是,第二签名设备40c 也是独立生成自己的私钥片段,即第二私钥片段,且第二签名设备40c生成第二私钥片段的过程,与第一签名设备40a生成第一私钥片段的过程相同,故此处不再赘述第二签名设备40c生成第二私钥片段的过程。
进一步,第二签名设备40c可以通过如下公式(3)生成全局公钥。
P=(d2-1)*P1-d2*G (3)
其中,公式(3)中的d2表示第二私钥片段,P表示全局公钥。
上述可知,本申请实施例通过参与业务消息的签名的第一签名设备以及第二签名设备,相互独立生成各自的子私钥(即私钥片段),然后通过协同运算产生全局公钥,故双方均无法由己方生成和获得的参数,计算得到全局私钥,故可以提升用于签名的全局私钥的安全性。
第一签名设备具有第一对象标识,第一对象标识用于表征第一签名设备所关联的第一对象,包括但不限于用户、组织或公司;同理,第二签名设备具有第二对象标识,第二对象标识用于表征第二签名设备所关联的第二对象。进一步,第一签名设备根据第一对象和第二对象共同的身份标识(即第一对象标识以及第二对象标识)、图4中所述的椭圆曲线***参数以及全局公钥,生成待压缩杂凑值,该过程可以通过如下公式(4)表示。
ZA=SM3(ENTLA∥ID∥a∥b∥xG∥yG∥xp∥yp) (4)
其中,公式(4)中ID表示第一对象和第二对象共同的身份标识,xG表示基点G在x轴上的坐标,yG表示基点G在y轴上的坐标,xP表示全局公钥在x 轴上的坐标,yP表示全局公钥在y轴上的坐标,ENTLA表示由第一对象和第二对象共同的身份标识(即ID)转换而成的字节,符号“∥”表示拼接,SM3 是一种密码散列函数标准,ZA表示待压缩杂凑值。
进一步,第一签名设备对待压缩杂凑值以及业务消息进行压缩处理,得到消息摘要,该过程可以通过如下公式(5)表示。
e=SM3(ZA∥M) (5)
其中,e表示消息摘要,M表示业务消息。
第一签名设备已获取椭圆曲线***参数,故根据基点G的阶n,可以生成随机数集合,然后从随机数集合中获取随机数k1,根据随机数k1以及基点G,可以生成椭圆曲线点Q,上述过程可以通过如下公式(6)以及公式(7)表示。
k1∈[1,n-1] (6)
Q=(xQ,yQ)=[k1]*G (7)
其中,其中,公式(6)中的[1,n-1]表示随机数集合,公式(7)中的xQ表示椭圆曲线点Q在x轴上的坐标,yQ表示椭圆曲线点Q在y轴上的坐标。另一种可行的实施方式为第一签名设备采用随机数发生器产生随机数k1,该随机数k1属于随机数集合[1,n-1]。
进一步,第一签名设备将消息摘要e和椭圆曲线点Q均发送给第二签名设备。第二签名设备根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量的具体过程,以及根据第二私钥片段以及第一签名分量,生成局部签名分量的具体过程,本申请实施例暂不展开描述,请参见下文图5 所对应的实施例中的描述。
步骤S102,获取第二签名设备发送的第一签名分量以及局部签名分量,根据第一私钥片段、第一签名分量以及局部签名分量,生成第二签名分量。
具体的,对第一签名分量以及局部签名分量分别进行检验,得到第一检验结果;若第一检验结果为检验通过结果,则获取第一私钥片段与第一数值之间的第一差值,获取随机数k1以及局部签名分量之间的第一总值;随机数k1用于生成椭圆曲线点Q;根据第一差值、第一总值、第一签名分量以及椭圆曲线的基点的阶,生成候选签名分量;对候选签名分量进行检验,得到第二检验结果,若第二检验结果为检验通过结果,则将候选签名分量确定为第二签名分量。
其中,对第一签名分量以及局部签名分量分别进行检验,得到第一检验结果的具体过程可以包括:检验第一签名分量以及随机数集合之间的第一关联关系;随机数集合是根据基点的阶所生成的;若第一关联关系指示随机数集合不包括第一签名分量,则确定第一检验结果为检验失败结果,返回针对第一签名分量的第二错误提示信息至第二签名设备;若第一关联关系指示随机数集合包括第一签名分量,则检验局部签名分量以及随机数集合之间的第二关联关系;若第二关联关系指示随机数集合不包括局部签名分量,则确定第一检验结果为检验失败结果,返回针对局部签名分量的第三错误提示信息至第二签名设备;若第二关联关系指示随机数集合包括局部签名分量,则确定第一检验结果为检验通过结果。
其中,根据第一差值、第一总值、第一签名分量以及椭圆曲线的基点的阶,生成候选签名分量的具体过程可以包括:对差值的倒数以及第一总值进行乘积运算,得到第二数值,获取第二数值以及第一签名分量之间的第二差值;对第二差值以及椭圆曲线的基点的阶进行取余运算,将得到的第一余数作为候选签名分量。
其中,对候选签名分量进行检验,得到第二检验结果的具体过程可以包括:检验候选签名分量以及随机数集合之间的第三关联关系;随机数集合是根据基点的阶所生成的;若第三关联关系指示随机数集合不包括候选签名分量,则确定第二检验结果为检验失败结果,返回第四错误提示信息至第二签名设备;若第三关联关系指示随机数集合包括候选签名分量,则确定第二检验结果为检验通过结果。
第一签名设备对第一签名分量以及局部签名分量分别进行检验,得到第一检验结果的具体过程,可以通过如下公式(8)以及公式(9)表示。
r∈[1,n-1] (8)
s1∈[1,n-1] (9)
其中,公式(8)中的r表示第一签名分量,公式(9)中的s1表示局部签名分量。即第一签名设备检验第一签名分量r是否属于随机数集合[1,n-1],若第一签名分量r不属于随机数集合[1,n-1],则返回针对第一签名分量r的第二错误提示信息至第二签名设备,以使第二签名设备根据第二错误提示信息,获取新的随机数k2,并基于新的随机数k2,生成新的第一签名分量以及新的局部签名分量,并将新的第一签名分量以及新的局部签名分量均发送至第一签名设备。第一签名设备对新的第一签名分量以及新的局部签名分量的处理过程,与对第一签名分量以及局部签名分量的处理过程相同,故不再进行赘述。
若第一签名分量r属于随机数集合[1,n-1],则第一签名设备检验局部签名分量s1是否属于随机数集合[1,n-1]。若局部签名分量s1不属于随机数集合[1, n-1],则第一签名设备返回针对局部签名分量s1的第三错误提示信息至第二签名设备,以使第二签名设备根据第三错误提示信息,获取新的随机数k2,并基于新的随机数k2,生成新的第一签名分量以及新的局部签名分量,并将新的第一签名分量以及新的局部签名分量均发送至第一签名设备。第一签名设备对新的第一签名分量以及新的局部签名分量的处理过程,与对第一签名分量以及局部签名分量的处理过程相同,故不再进行赘述。
若局部签名分量s1属于随机数集合[1,n-1],则第一签名设备可以通过如下公式(10)生成候选签名分量。
s’=(((d1-1)^(-1))*(k1+s1)-r)mod n (10)
其中,公式(10)中的d1表示第一私钥片段,本申请实施例中的第一数值等于1,故(d1-1)表示第一差值,(k1+s1)表示第一总值;((d1-1)^(-1))*(k1+s1) 表示第二数值,(((d1-1)^(-1))*(k1+s1)-r)表示第二差值,s’表示第一余数,即候选签名分量。
第一签名设备对候选签名分量s’进行检验,得到第二检验结果的具体过程,可以通过如下公式(11)表示。
s’∈[1,n-1] (11)
其中,公式(11)表示第一签名设备检验候选签名分量s’是否属于随机数集合[1,n-1],若候选签名分量s’不属于随机数集合[1,n-1],则第一签名设备返回第四错误提示信息至第二签名设备,以使第二签名设备根据第四错误提示信息,获取新的随机数k2,并基于新的随机数k2,生成新的第一签名分量以及新的局部签名分量,并将新的第一签名分量以及新的局部签名分量均发送至第一签名设备。第一签名设备对新的第一签名分量以及新的局部签名分量的处理过程,与对第一签名分量以及局部签名分量的处理过程相同,故不再进行赘述。
若候选签名分量s’属于随机数集合[1,n-1],则第一签名设备将候选签名分量s’确定为第二签名分量s。
步骤S103,将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备,以使验证设备根据与第一私钥片段以及第二私钥片段相关联的全局公钥,对获取到的待验证数据进行合法性验证。
具体的,验证设备利用全局公钥,对签名值(r,s),即第一签名分量r以及第二签名分量s进行验签的过程可以如下:验证设备通过全局公钥,对签名值 (r,s)进行验证,即对第一签名分量以及第二签名分量进行验证,若验证失败,则可以确定待验证数据为非法数据,此时,不对待验证数据中的业务消息进行业务处理;若验证成功,则可以确定签名值(r,s)是由第一私钥片段以及第二私钥片段签名所得(验证设备不清楚全局私钥的内容,也不知道第一私钥片段以及第二私钥片段的内容);进一步,验证设备获取验证成功所得到第一数字摘要,获取业务消息对应的第二数字摘要(正常场景下,与消息摘要相同);验证设备将第一数字摘要以及第二数字摘要进行对比,若第一数字摘要以及第二数字摘要相同,则通过全局公钥对签名值(r,s)验签成功,进而确定待验证数据是合法数据;若第一数字摘要以及第二数字摘要不同,则通过全局公钥对签名值(r,s)验签失败,进而确定待验证数据是非法数据。
在本申请实施例中,具有第一私钥片段的第一签名设备可以将业务消息对应的消息摘要以及椭圆曲线点Q均发送至第二签名设备,故第二签名设备在根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量时,可以根据第二私钥片段以及第一签名分量,生成局部签名分量;进一步,第一签名设备获取第二签名设备发送的第一签名分量以及局部签名分量,根据第一私钥片段、第一签名分量以及局部签名分量,可以生成第二签名分量;进一步,第一签名设备将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备,以使验证设备根据与第一私钥片段以及第二私钥片段相关联的全局公钥,可以对获取到的待验证数据进行合法性验证。上述可知,本申请实施例中的第一私钥片段以及第二私钥片段,为两个不同的签名设备所分别拥有的相互独立的私钥片段,且共同对应一个全局公钥,故第一签名设备无法通过第一私钥片段,确定全局公钥对应的全局私钥(其包括第一私钥片段以及第二私钥片段),同理,第二签名设备也无法通过第二私钥片段确定全局公钥对应的全局私钥。因此,采用本申请,可以降低仅由一方保管私钥所造成的私钥泄露风险,即可以提高私钥的安全性。此外,本申请实施例是通过具有第一私钥片段的第一签名设备,以及具有第二私钥片段的第二签名设备的共同协作,对业务消息进行签名操作,故可以实现双方共同参与签名的需求,且通过第一私钥片段以及第二私钥片段,可以提高共同参与签名的安全性。
请参见图5,图5是本申请实施例提供的一种数据处理方法的流程示意图二。该数据处理方法可以由具有第二私钥片段的第二签名设备执行,其中,第二签名设备可以为上述图1所述的终端设备集群中,不同于第一签名设备的任意一个终端设备,例如终端设备200b,也可以为上述图1中所述的业务服务器 100(此时第一签名设备不为业务服务器100)。如图5所示,该数据处理方法至少可以包括以下步骤S201-步骤S203。
步骤S201,获取第一签名设备发送的业务消息对应的消息摘要以及椭圆曲线点Q。
具体的,获取第二私钥片段以及第一数值之间的第三差值,对第三差值以及局部公钥进行乘积运算,得到第三数值;局部公钥是第一签名设备根据第一私钥片段所生成的;对第二私钥片段以及椭圆曲线的基点进行乘积运算,得到第四数值;将第三数值以及第四数值之间的差值,确定为全局公钥。
可以理解的是,第二签名设备是独立生成第二私钥片段,且其生成第二私钥片段的过程,与第一签名设备生成第一私钥片段的过程相同,故此处不再进行赘述,请参见上文图3所对应的实施例中步骤S101的描述。
其中,第三差值等同于上文公式(3)中的(d2-1),第三数值等同于上述公式(3)中的(d2-1)*P1;第四数值等同于上述公式(3)中的d2*G。
步骤S202,根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量,根据第二私钥片段以及第一签名分量,生成局部签名分量。
具体的,若检验椭圆曲线点Q属于椭圆曲线,则获取随机数k2,对随机数 k2以及椭圆曲线的基点进行乘积运算,得到第五数值;获取第二私钥片段以及第一数值之间的第三差值,获取椭圆曲线点Q以及第五数值之间的第四差值;对第五数值以及第四差值进行乘积运算,得到候选椭圆曲线点,若候选椭圆曲线点满足取值条件,则将候选椭圆曲线点确定为椭圆曲线点T;椭圆曲线点T 包括目标坐标值;获取目标指标值以及消息摘要之间的第二总值,对第二总值以及基点的阶进行取余运算,将得到的第二余数作为业务消息的第一签名分量。
其中,将得到的第二余数作为业务消息的第一签名分量的具体过程可以包括:获取随机数k1以及随机数k2之间的第五差值;随机数k1用于生成椭圆曲线点Q;对第三差值以及第五差值进行乘积运算,得到第六数值,获取第二余数以及第六数值之间的第三总值;若第三总值不等于基点的阶,且第二余数不等于第七数值,则将第二余数确定为业务消息的第一签名分量。
具体的,获取第二私钥片段以及第一数值之间的第三差值,对第三差值的倒数以及第一签名分量进行乘积运算,得到第八数值;获取第八数值以及随机数k2之间的第六差值;随机数k2与第一签名分量相关联;对第六差值以及椭圆曲线的基点的阶进行取余运算,若得到的第三余数不等于第七数值,则将第三余数确定为局部签名分量。
第二签名设备获取到第一签名设备发送的椭圆曲线点Q以及消息摘要后,首先检验椭圆曲线点Q是否是椭圆曲线上的点,若椭圆曲线点Q不是椭圆曲线上的点,则返回针对椭圆曲线点Q的第五错误提示信息至第一签名设备,以使第一签名设备根据第五错误提示信息,获取新的随机数k1,并基于新的随机数 k1,生成新的椭圆曲线点Q,并将新的椭圆曲线点Q发送至第二签名设备。可以理解的是,第一签名设备获取新的随机数k1的过程,与第一签名设备获取随机数k1的过程相同,且基于新的随机数k1生成新的椭圆曲线点Q的过程,与基于随机数k1生成椭圆曲线点Q的过程相同。可以理解的是,第二签名设备对新的椭圆曲线点Q的处理过程,与对椭圆曲线点Q的处理过程亦相同。
若椭圆曲线点Q是椭圆曲线上的点,则根据基点G的阶n,可以生成随机数集合,然后从随机数集合中获取随机数k2,该过程与第一签名设备获取随机数k1的过程相同,故此处不再进行赘述。进一步,第二签名设备根据随机数k2、基点G、椭圆曲线点Q以及第二私钥片段生成候选椭圆曲线点,该过程可以通过如下公式(12)表示。
T’=(xT’,yT’)=[d2-1]*(Q-k2*G) (12)
其中,公式(12)中的T’表示候选椭圆曲线点,xT’表示候选椭圆曲线点T’在x轴上的坐标,yT’表示候选椭圆曲线点T’在y轴上的坐标。k2*G表示第五数值,Q-k2*G表示第四差值。
进一步,第二签名设备判断候选椭圆曲线点T’是否满足取值条件,若候选椭圆曲线点T’是无穷远点,则候选椭圆曲线点T’不满足取值条件;若候选椭圆曲线点T’不是无穷远点,则候选椭圆曲线点T’满足取值条件。
若候选椭圆曲线点T’满足取值条件,则第二签名设备将候选椭圆曲线点T’确定为椭圆曲线点T,其中,xT’即为目标坐标值xT。第二签名设备可以通过如下公式(13)得到第一签名分量。
r=(e+xT)mod n (13)
其中,公式(13)中的e+xT表示第二总值。基于公式(13),第二签名设备计算如下公式(14)得到第三总值。
r+(d2-1)*(k1-k2) (14)
其中,公式(14)中k1-k2表示第五差值,(d2-1)*(k1-k2)表示第六数值。
第二签名设备计算公式(14)之后,先确定r是否为0(即上述的第七数值),以及确定第三总值是否等于阶n,若r等于0或第三总值等于阶n,则第二签名设备获取新的随机数k2,并基于新的随机数k2以及公式(13),生成新的r,基于新的r以及公式(14),第二签名设备生成新的第三总值,且第二签名设备再次对新的r以及新的第三总值进行判断。可以理解的是,上述过程,与第二签名设备确定r是否为0以及确定第三总值是否等于阶n的过程相同,故不再一一进行赘述。
若r不等于0且第三总值不等于阶n,则第二签名设备将r确定为第一签名分量。进一步,第二签名设备基于第二私钥片段、第一签名分量r、随机数k2 以及阶n,生成局部签名分量,该过程可以通过如下公式(15)表示。
s1=(((d2-1)^(-1))*r-k2)mod n (15)
其中,((d2-1)^(-1))*r表示第八数值,(((d2-1)^(-1))*r-k2)表示第六差值。若s1等于0,即第七数值,则第二签名设备获取新的随机数k2,并基于新的随机数k2,重新执行上述公式(12)-公式(15)。若s1不等于0,则第二签名设备将s1确定为局部签名分量。
步骤S203,将第一签名分量以及局部签名分量均发送至第一签名设备,以使第一签名设备在根据第一私钥片段、第一签名分量以及局部签名分量,生成第二签名分量时,将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备;验证设备用于根据与第一私钥片段以及第二私钥片段相关联的全局公钥,对获取到的待验证数据进行合法性验证。
具体的,第一签名设备根据第一私钥片段、第一签名分量以及局部签名分量,生成第二签名分量的具体过程,请参见上文图3所对应的实施例中步骤S102 的描述,此处不进行赘述。
下文描述本申请实施例的准确性,常规签名是一个私钥(下文用dA表示) 对应一个公钥,定义常规签名中的随机数为k。通过随机数k生成常规签名中的签名值分量r时,需要判断如下公式(16)是否成立。
r+k=n (16)
其中,r仍可以表示本申请实施例中的第一签名分量,n仍可以表示本申请实施例中的阶。如下公式(17)-公式(28)中各符号的含义,均等于上文中的含义,故不再一一进行赘述。
结合上文公式(14),即判断第三总值是否等于阶n,即r+(d2-1)*(k1-k2) 是否等于n,可以得到如下公式(17)。
k=(d2-1)*(k1-k2) (17)
公式(17)可以转化为如下公式(18)。
(k1-k2)=k*((d2-1)^(-1)) (18)
在常规签名中,第二签名分量s的生成过程可以采用如下公式(19)表示。
s=(((1+dA)^(-1))*(k-r*dA))mod n (19)
其中,公式(19)中的dA表示常规签名中的私钥,其是一个完整的私钥,不同于本申请实施例中的第一私钥片段,也不同于第二私钥片段。
上述公式(19)可以简化,如公式(20)所示。
s=(((1+dA)^(-1))*(k-r*dA))mod n =(((1+dA)^(-1))*(k-r*((dA+1)-1)))mod n =(((1+dA)^(-1))*(k-r*(dA+1)+r))mod n =(((1+dA)^(-1))*((k+r)-r*(dA+1)))mod n =(((1+dA)^(-1))*(k+r)-r)mod n (20)
本申请实施例是两个私钥片段对应一个公钥,定义全局公钥P对应的全局私钥为d,全局公钥P与全局私钥d之间的关系,可以通过如下公式(21)表示。
P=d*G (21)
结合上文的公式(3)以及公式(2),可以得到如下公式(22)。
P=(d2-1)*P1-d2*G=((d2-1)*(d1-1))G-G (22)
故结合公式(22)以及公式(21),可以得到如下公式(23),
d*G=((d2-1)*(d1-1))G-G (23)
进一步,可以得到如下公式(24)。
d+1=(d2-1)*(d1-1) (24)
结合上文公式(7),椭圆曲线点T的公式(类似于上文公式(12)),可以转化为如下公式(25)。
T=(xT,yT)=[d2-1]*(Q-k2*G)=[(d2-1)*(k1-k2)]*G (25)
将上文公式(15)代入至确定第二签名分量的公式(与上文公式(10)相似,即候选签名分量s’属于随机数集合[1,n-1]时,候选签名分量s’为第二签名分量s)中,可以得到如下公式(26)。
s=(((d1-1)^(-1))*(k1+((d2-1)^(-1))*r-k2)-r)mod n =(((d1-1)^(-1))*(((d2-1)^(-1))*r+k1-k2)-r)mod n (26)
将上述公式(17)代入至公式(26),可以得到如下公式(27)。
s=(((d1-1)^(-1))*((d2-1)^(-1))*(r+k)-r)mod n (27)
将上述公式(24)代入至公式(27),可以得到如下公式(28)。
s=(((1+d)^(-1))*(r+k)-r)mod n (28)
而公式(28)就是常规签名中,第二签名分量s的表示公式(20),故可以确定本申请实施例所述的方法是可行且准确的。
在本申请实施例中,具有第一私钥片段的第一签名设备可以将业务消息对应的消息摘要以及椭圆曲线点Q均发送至第二签名设备,故第二签名设备在根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量时,可以根据第二私钥片段以及第一签名分量,生成局部签名分量;进一步,第一签名设备获取第二签名设备发送的第一签名分量以及局部签名分量,根据第一私钥片段、第一签名分量以及局部签名分量,可以生成第二签名分量;进一步,第一签名设备将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备,以使验证设备根据与第一私钥片段以及第二私钥片段相关联的全局公钥,可以对获取到的待验证数据进行合法性验证。上述可知,本申请实施例中的第一私钥片段以及第二私钥片段,为两个不同的签名设备所分别拥有的相互独立的私钥片段,且共同对应一个全局公钥,故第一签名设备无法通过第一私钥片段,确定全局公钥对应的全局私钥(其包括第一私钥片段以及第二私钥片段),同理,第二签名设备也无法通过第二私钥片段确定全局公钥对应的全局私钥。因此,采用本申请,可以降低仅由一方保管私钥所造成的私钥泄露风险,即可以提高私钥的安全性。此外,本申请实施例是通过具有第一私钥片段的第一签名设备,以及具有第二私钥片段的第二签名设备的共同协作,对业务消息进行签名操作,故可以实现双方共同参与签名的需求,且通过第一私钥片段以及第二私钥片段,可以提高共同参与签名的安全性。
进一步地,请参见图6,图6是本申请实施例提供的一种数据处理装置的结构示意图一。上述数据处理装置1可以运行于具有第一私钥片段的第一签名设备,可以用于执行本申请实施例提供的方法中的相应步骤。如图6所示,该数据处理装置1可以包括:第一发送模块11、第一生成模块12以及第二发送模块13。
第一发送模块11,用于将业务消息对应的消息摘要以及椭圆曲线点Q均发送至第二签名设备,以使第二签名设备在根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量时,根据第二私钥片段以及第一签名分量,生成局部签名分量;
第一生成模块12,用于获取第二签名设备发送的第一签名分量以及局部签名分量,根据第一私钥片段、第一签名分量以及局部签名分量,生成第二签名分量;
第二发送模块13,用于将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备,以使验证设备根据与第一私钥片段以及第二私钥片段相关联的全局公钥,对获取到的待验证数据进行合法性验证。
其中,第一发送模块11、第一生成模块12以及第二发送模块13的具体功能实现方式,可以参见上述图3对应实施例中的步骤S101-步骤S103,这里不再进行赘述。
再请参见图6,数据处理装置1还可以包括:第二生成模块14以及第一确定模块15。
第二生成模块14,用于获取椭圆曲线的基点,根据基点的阶,生成候选私钥片段集合,从候选私钥片段集合中获取候选私钥片段;
第一确定模块15,用于若候选私钥片段满足私钥确定条件,则将候选私钥片段确定为第一私钥片段;
第一确定模块15,还用于根据第一私钥片段以及基点,生成局部公钥,将局部公钥发送至第二签名设备,以使第二签名设备根据局部公钥以及第二私钥片段,生成全局公钥。
其中,第二生成模块14以及第一确定模块15的具体功能实现方式,可以参见上述图3对应实施例中的步骤S101,这里不再进行赘述。
再请参见图6,数据处理装置1还可以包括:第三生成模块16以及第四生成模块17。
第三生成模块16,用于根据第一对象标识、第二对象标识、椭圆曲线***参数以及全局公钥,生成待压缩杂凑值;椭圆曲线***参数包括椭圆曲线的基点;
第三生成模块16,还用于对待压缩杂凑值以及业务消息进行压缩处理,得到消息摘要;
第四生成模块17,用于根据基点的阶,生成随机数集合,从随机数集合中获取随机数k1,根据随机数k1以及基点,生成椭圆曲线点Q。
其中,第三生成模块16以及第四生成模块17的具体功能实现方式,可以参见上述图3对应实施例中的步骤S101,这里不再进行赘述。
再请参见图6,第四生成模块17可以包括:第一获取单元171以及乘积运算单元172。
第一获取单元171,用于若获取到第二签名设备发送的针对历史椭圆曲线点Q的第一错误提示信息,则从随机数集合中获取不同于历史随机数k1的随机数k1;历史随机数k1属于随机数集合;历史椭圆曲线点Q是根据历史随机数k1以及基点所生成的;
乘积运算单元172,用于对随机数k1以及基点进行乘积运算,得到椭圆曲线点Q。
其中,第一获取单元171以及乘积运算单元172的具体功能实现方式,可以参见上述图3对应实施例中的步骤S101,这里不再进行赘述。
再请参见图6,第一生成模块12可以包括:第一检验单元121、第二获取单元122、候选生成单元123以及第二检验单元124。
第一检验单元121,用于对第一签名分量以及局部签名分量分别进行检验,得到第一检验结果;
第二获取单元122,用于若第一检验结果为检验通过结果,则获取第一私钥片段与第一数值之间的第一差值,获取随机数k1以及局部签名分量之间的第一总值;随机数k1用于生成椭圆曲线点Q;
候选生成单元123,用于根据第一差值、第一总值、第一签名分量以及椭圆曲线的基点的阶,生成候选签名分量;
第二检验单元124,用于对候选签名分量进行检验,得到第二检验结果,若第二检验结果为检验通过结果,则将候选签名分量确定为第二签名分量。
其中,第一检验单元121、第二获取单元122、候选生成单元123以及第二检验单元124的具体功能实现方式,可以参见上述图3对应实施例中的步骤 S102,这里不再进行赘述。
再请参见图6,第一检验单元121可以包括:第一检验子单元1211、第一确定子单元1212、第二检验子单元1213以及第二确定子单元1214。
第一检验子单元1211,用于检验第一签名分量以及随机数集合之间的第一关联关系;随机数集合是根据基点的阶所生成的;
第一确定子单元1212,用于若第一关联关系指示随机数集合不包括第一签名分量,则确定第一检验结果为检验失败结果,返回针对第一签名分量的第二错误提示信息至第二签名设备;
第二检验子单元1213,用于若第一关联关系指示随机数集合包括第一签名分量,则检验局部签名分量以及随机数集合之间的第二关联关系;
第二确定子单元1214,用于若第二关联关系指示随机数集合不包括局部签名分量,则确定第一检验结果为检验失败结果,返回针对局部签名分量的第三错误提示信息至第二签名设备;
第二确定子单元1214,还用于若第二关联关系指示随机数集合包括局部签名分量,则确定第一检验结果为检验通过结果。
其中,第一检验子单元1211、第一确定子单元1212、第二检验子单元1213 以及第二确定子单元1214的具体功能实现方式,可以参见上述图3对应实施例中的步骤S102,这里不再进行赘述。
再请参见图6,候选生成单元123可以包括:第一运算子单元1231以及第二运算子单元1232。
第一运算子单元1231,用于对差值的倒数以及第一总值进行乘积运算,得到第二数值,获取第二数值以及第一签名分量之间的第二差值;
第二运算子单元1232,用于对第二差值以及椭圆曲线的基点的阶进行取余运算,将得到的第一余数作为候选签名分量。
其中,第一运算子单元1231以及第二运算子单元1232的具体功能实现方式,可以参见上述图3对应实施例中的步骤S102,这里不再进行赘述。
再请参见图6,第二检验单元124可以包括:第三检验子单元1241以及第三确定子单元1242。
第三检验子单元1241,用于检验候选签名分量以及随机数集合之间的第三关联关系;随机数集合是根据基点的阶所生成的;
第三确定子单元1242,用于若第三关联关系指示随机数集合不包括候选签名分量,则确定第二检验结果为检验失败结果,返回第四错误提示信息至第二签名设备;
第三确定子单元1242,还用于若第三关联关系指示随机数集合包括候选签名分量,则确定第二检验结果为检验通过结果。
其中,第三检验子单元1241以及第三确定子单元1242的具体功能实现方式,可以参见上述图3对应实施例中的步骤S102,这里不再进行赘述。
在本申请实施例中,具有第一私钥片段的第一签名设备可以将业务消息对应的消息摘要以及椭圆曲线点Q均发送至第二签名设备,故第二签名设备在根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量时,可以根据第二私钥片段以及第一签名分量,生成局部签名分量;进一步,第一签名设备获取第二签名设备发送的第一签名分量以及局部签名分量,根据第一私钥片段、第一签名分量以及局部签名分量,可以生成第二签名分量;进一步,第一签名设备将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备,以使验证设备根据与第一私钥片段以及第二私钥片段相关联的全局公钥,可以对获取到的待验证数据进行合法性验证。上述可知,本申请实施例中的第一私钥片段以及第二私钥片段,为两个不同的签名设备所分别拥有的相互独立的私钥片段,且共同对应一个全局公钥,故第一签名设备无法通过第一私钥片段,确定全局公钥对应的全局私钥(其包括第一私钥片段以及第二私钥片段),同理,第二签名设备也无法通过第二私钥片段确定全局公钥对应的全局私钥。因此,采用本申请,可以降低仅由一方保管私钥所造成的私钥泄露风险,即可以提高私钥的安全性。此外,本申请实施例是通过具有第一私钥片段的第一签名设备,以及具有第二私钥片段的第二签名设备的共同协作,对业务消息进行签名操作,故可以实现双方共同参与签名的需求,且通过第一私钥片段以及第二私钥片段,可以提高共同参与签名的安全性。
进一步地,请参见图7,图7是本申请实施例提供的一种数据处理装置的结构示意图二。上述数据处理装置2可以运行于具有第二私钥片段的第二签名设备,该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图7所示,该数据处理装置2可以包括:第一获取模块21、分量生成模块22以及分量发送模块23。
第一获取模块21,用于获取第一签名设备发送的业务消息对应的消息摘要以及椭圆曲线点Q;
分量生成模块22,用于根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量,根据第二私钥片段以及第一签名分量,生成局部签名分量;
分量发送模块23,用于将第一签名分量以及局部签名分量均发送至第一签名设备,以使第一签名设备在根据第一私钥片段、第一签名分量以及局部签名分量,生成第二签名分量时,将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备;验证设备用于根据与第一私钥片段以及第二私钥片段相关联的全局公钥,对获取到的待验证数据进行合法性验证。
其中,第一获取模块21、分量生成模块22以及分量发送模块23的具体功能实现方式,可以参见上述图5对应实施例中的步骤S201-步骤S203,这里不再进行赘述。
再请参见图7,数据处理装置2还可以包括:第二获取模块24、乘积运算模块25以及公钥确定模块26。
第二获取模块24,用于获取第二私钥片段以及第一数值之间的第三差值,对第三差值以及局部公钥进行乘积运算,得到第三数值;局部公钥是第一签名设备根据第一私钥片段所生成的;
乘积运算模块25,用于对第二私钥片段以及椭圆曲线的基点进行乘积运算,得到第四数值;
公钥确定模块26,用于将第三数值以及第四数值之间的差值,确定为全局公钥。
其中,第二获取模块24、乘积运算模块25以及公钥确定模块26的具体功能实现方式可以参见上述图5对应实施例中的步骤S201,这里不再进行赘述。
再请参见图7,分量生成模块22可以包括:第一获取单元221、第二获取单元222、第一确定单元223以及第三获取单元224。
第一获取单元221,用于若检验椭圆曲线点Q属于椭圆曲线,则获取随机数k2,对随机数k2以及椭圆曲线的基点进行乘积运算,得到第五数值;
第二获取单元222,用于获取第二私钥片段以及第一数值之间的第三差值,获取椭圆曲线点Q以及第五数值之间的第四差值;
第一确定单元223,用于对第五数值以及第四差值进行乘积运算,得到候选椭圆曲线点,若候选椭圆曲线点满足取值条件,则将候选椭圆曲线点确定为椭圆曲线点T;椭圆曲线点T包括目标坐标值;
第三获取单元224,用于获取目标指标值以及消息摘要之间的第二总值,对第二总值以及基点的阶进行取余运算,将得到的第二余数作为业务消息的第一签名分量。
其中,第一获取单元221、第二获取单元222、第一确定单元223以及第三获取单元224的具体功能实现方式,可以参见上述图5对应实施例中的步骤 S202,这里不再进行赘述。
再请参见图7,第三获取单元224可以包括:第一获取子单元2241、第二获取子单元2242以及分量确定子单元2243。
第一获取子单元2241,用于获取随机数k1以及随机数k2之间的第五差值;随机数k1用于生成椭圆曲线点Q;
第二获取子单元2242,用于对第三差值以及第五差值进行乘积运算,得到第六数值,获取第二余数以及第六数值之间的第三总值;
分量确定子单元2243,用于若第三总值不等于基点的阶,且第二余数不等于第七数值,则将第二余数确定为业务消息的第一签名分量。
其中,第一获取子单元2241、第二获取子单元2242以及分量确定子单元 2243的具体功能实现方式,可以参见上述图5对应实施例中的步骤S202,这里不再进行赘述。
再请参见图7,分量生成模块22可以包括:第四获取单元225、第五获取单元226以及第二确定单元227。
第四获取单元225,用于获取第二私钥片段以及第一数值之间的第三差值,对第三差值的倒数以及第一签名分量进行乘积运算,得到第八数值;
第五获取单元226,用于获取第八数值以及随机数k2之间的第六差值;随机数k2与第一签名分量相关联;
第二确定单元227,用于对第六差值以及椭圆曲线的基点的阶进行取余运算,若得到的第三余数不等于第七数值,则将第三余数确定为局部签名分量。
其中,第四获取单元225、第五获取单元226以及第二确定单元227的具体功能实现方式,可以参见上述图5对应实施例中的步骤S202,这里不再进行赘述。
在本申请实施例中,具有第一私钥片段的第一签名设备可以将业务消息对应的消息摘要以及椭圆曲线点Q均发送至第二签名设备,故第二签名设备在根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量时,可以根据第二私钥片段以及第一签名分量,生成局部签名分量;进一步,第一签名设备获取第二签名设备发送的第一签名分量以及局部签名分量,根据第一私钥片段、第一签名分量以及局部签名分量,可以生成第二签名分量;进一步,第一签名设备将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备,以使验证设备根据与第一私钥片段以及第二私钥片段相关联的全局公钥,可以对获取到的待验证数据进行合法性验证。上述可知,本申请实施例中的第一私钥片段以及第二私钥片段,为两个不同的签名设备所分别拥有的相互独立的私钥片段,且共同对应一个全局公钥,故第一签名设备无法通过第一私钥片段,确定全局公钥对应的全局私钥(其包括第一私钥片段以及第二私钥片段),同理,第二签名设备也无法通过第二私钥片段确定全局公钥对应的全局私钥。因此,采用本申请,可以降低仅由一方保管私钥所造成的私钥泄露风险,即可以提高私钥的安全性。此外,本申请实施例是通过具有第一私钥片段的第一签名设备,以及具有第二私钥片段的第二签名设备的共同协作,对业务消息进行签名操作,故可以实现双方共同参与签名的需求,且通过第一私钥片段以及第二私钥片段,可以提高共同参与签名的安全性。
进一步地,请参见图8,图8是本申请实施例提供的一种计算机设备的结构示意图。如图8所示,该计算机设备1000可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,在一些实施例中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),网络接口1004可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选地还可以是至少一个位于远离前述处理器1001的存储装置。如图8所示,作为一种计算机存储介质的存储器1005可以包括操作***、网络通信模块、用户接口模块以及设备控制应用程序。
在图8所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
将业务消息对应的消息摘要以及椭圆曲线点Q均发送至第二签名设备,以使第二签名设备在根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量时,根据第二私钥片段以及第一签名分量,生成局部签名分量;
获取第二签名设备发送的第一签名分量以及局部签名分量,根据第一私钥片段、第一签名分量以及局部签名分量,生成第二签名分量;
将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备,以使验证设备根据与第一私钥片段以及第二私钥片段相关联的全局公钥,对获取到的待验证数据进行合法性验证。
或者,处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取第一签名设备发送的业务消息对应的消息摘要以及椭圆曲线点Q;
根据椭圆曲线点Q、消息摘要以及第二私钥片段,生成业务消息的第一签名分量,根据第二私钥片段以及第一签名分量,生成局部签名分量;
将第一签名分量以及局部签名分量均发送至第一签名设备,以使第一签名设备在根据第一私钥片段、第一签名分量以及局部签名分量,生成第二签名分量时,将第一签名分量、第二签名分量以及业务消息作为待验证数据发送至验证设备;验证设备用于根据与第一私钥片段以及第二私钥片段相关联的全局公钥,对获取到的待验证数据进行合法性验证。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文各实施例中对数据处理方法或装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现前文各实施例中对数据处理方法或装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital, SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备可执行前文各实施例中对数据处理方法或装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (18)

1.一种数据处理方法,其特征在于,所述方法由具有第一私钥片段的第一签名设备执行,所述方法包括:
将业务消息对应的消息摘要以及椭圆曲线点Q均发送至第二签名设备,以使所述第二签名设备在根据所述椭圆曲线点Q、所述消息摘要以及第二私钥片段,生成所述业务消息的第一签名分量时,根据所述第二私钥片段以及所述第一签名分量,生成局部签名分量;
获取所述第二签名设备发送的所述第一签名分量以及所述局部签名分量,根据所述第一私钥片段、所述第一签名分量以及所述局部签名分量,生成第二签名分量;
将所述第一签名分量、所述第二签名分量以及所述业务消息作为待验证数据发送至验证设备,以使所述验证设备根据与所述第一私钥片段以及所述第二私钥片段相关联的全局公钥,对获取到的所述待验证数据进行合法性验证。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取椭圆曲线的基点,根据所述基点的阶,生成候选私钥片段集合,从所述候选私钥片段集合中获取候选私钥片段;
若所述候选私钥片段满足私钥确定条件,则将所述候选私钥片段确定为所述第一私钥片段;
根据所述第一私钥片段以及所述基点,生成局部公钥,将所述局部公钥发送至所述第二签名设备,以使所述第二签名设备根据所述局部公钥以及所述第二私钥片段,生成所述全局公钥。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据第一对象标识、第二对象标识、椭圆曲线***参数以及所述全局公钥,生成待压缩杂凑值;所述椭圆曲线***参数包括椭圆曲线的基点;
对所述待压缩杂凑值以及所述业务消息进行压缩处理,得到所述消息摘要;
根据所述基点的阶,生成随机数集合,从所述随机数集合中获取随机数k1,根据所述随机数k1以及所述基点,生成所述椭圆曲线点Q。
4.根据权利要求3所述的方法,其特征在于,所述从所述随机数集合中获取随机数k1,根据所述随机数k1以及所述基点,生成所述椭圆曲线点Q,包括:
若获取到所述第二签名设备发送的针对历史椭圆曲线点Q的第一错误提示信息,则从所述随机数集合中获取不同于历史随机数k1的随机数k1;所述历史随机数k1属于所述随机数集合;所述历史椭圆曲线点Q是根据所述历史随机数k1以及所述基点所生成的;
对所述随机数k1以及所述基点进行乘积运算,得到所述椭圆曲线点Q。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一私钥片段、所述第一签名分量以及所述局部签名分量,生成第二签名分量,包括:
对所述第一签名分量以及所述局部签名分量分别进行检验,得到第一检验结果;
若所述第一检验结果为检验通过结果,则获取所述第一私钥片段与第一数值之间的第一差值,获取随机数k1以及所述局部签名分量之间的第一总值;所述随机数k1用于生成所述椭圆曲线点Q;
根据所述第一差值、所述第一总值、所述第一签名分量以及椭圆曲线的基点的阶,生成候选签名分量;
对所述候选签名分量进行检验,得到第二检验结果,若所述第二检验结果为所述检验通过结果,则将所述候选签名分量确定为第二签名分量。
6.根据权利要求5所述的方法,其特征在于,所述对所述第一签名分量以及所述局部签名分量分别进行检验,得到第一检验结果,包括:
检验所述第一签名分量以及随机数集合之间的第一关联关系;所述随机数集合是根据所述基点的阶所生成的;
若所述第一关联关系指示所述随机数集合不包括所述第一签名分量,则确定第一检验结果为检验失败结果,返回针对所述第一签名分量的第二错误提示信息至所述第二签名设备;
若所述第一关联关系指示所述随机数集合包括所述第一签名分量,则检验所述局部签名分量以及所述随机数集合之间的第二关联关系;
若所述第二关联关系指示所述随机数集合不包括所述局部签名分量,则确定所述第一检验结果为所述检验失败结果,返回针对所述局部签名分量的第三错误提示信息至所述第二签名设备;
若所述第二关联关系指示所述随机数集合包括所述局部签名分量,则确定所述第一检验结果为所述检验通过结果。
7.根据权利要求5所述的方法,其特征在于,所述根据所述第一差值、所述第一总值、所述第一签名分量以及椭圆曲线的基点的阶,生成候选签名分量,包括:
对所述差值的倒数以及所述第一总值进行乘积运算,得到第二数值,获取所述第二数值以及所述第一签名分量之间的第二差值;
对所述第二差值以及椭圆曲线的基点的阶进行取余运算,将得到的第一余数作为所述候选签名分量。
8.根据权利要求5所述的方法,其特征在于,所述对所述候选签名分量进行检验,得到第二检验结果,包括:
检验所述候选签名分量以及随机数集合之间的第三关联关系;所述随机数集合是根据所述基点的阶所生成的;
若所述第三关联关系指示所述随机数集合不包括所述候选签名分量,则确定所述第二检验结果为检验失败结果,返回第四错误提示信息至所述第二签名设备;
若所述第三关联关系指示所述随机数集合包括所述候选签名分量,则确定所述第二检验结果为所述检验通过结果。
9.一种数据处理方法,其特征在于,所述方法由具有第二私钥片段的第二签名设备执行,所述方法包括:
获取第一签名设备发送的业务消息对应的消息摘要以及椭圆曲线点Q;
根据所述椭圆曲线点Q、所述消息摘要以及所述第二私钥片段,生成所述业务消息的第一签名分量,根据所述第二私钥片段以及所述第一签名分量,生成局部签名分量;
将所述第一签名分量以及所述局部签名分量均发送至所述第一签名设备,以使所述第一签名设备在根据第一私钥片段、所述第一签名分量以及所述局部签名分量,生成第二签名分量时,将所述第一签名分量、所述第二签名分量以及所述业务消息作为待验证数据发送至验证设备;所述验证设备用于根据与所述第一私钥片段以及所述第二私钥片段相关联的全局公钥,对获取到的所述待验证数据进行合法性验证。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
获取所述第二私钥片段以及第一数值之间的第三差值,对所述第三差值以及局部公钥进行乘积运算,得到第三数值;所述局部公钥是所述第一签名设备根据所述第一私钥片段所生成的;
对所述第二私钥片段以及椭圆曲线的基点进行乘积运算,得到第四数值;
将所述第三数值以及所述第四数值之间的差值,确定为所述全局公钥。
11.根据权利要求9所述的方法,其特征在于,所述根据所述椭圆曲线点Q、所述消息摘要以及所述第二私钥片段,生成所述业务消息的第一签名分量,包括:
若检验所述椭圆曲线点Q属于椭圆曲线,则获取随机数k2,对所述随机数k2以及所述椭圆曲线的基点进行乘积运算,得到第五数值;
获取所述第二私钥片段以及第一数值之间的第三差值,获取所述椭圆曲线点Q以及所述第五数值之间的第四差值;
对所述第五数值以及所述第四差值进行乘积运算,得到候选椭圆曲线点,若候选椭圆曲线点满足取值条件,则将所述候选椭圆曲线点确定为椭圆曲线点T;所述椭圆曲线点T包括目标坐标值;
获取所述目标指标值以及所述消息摘要之间的第二总值,对所述第二总值以及所述基点的阶进行取余运算,将得到的第二余数作为所述业务消息的第一签名分量。
12.根据权利要求11所述的方法,其特征在于,所述将得到的第二余数作为所述业务消息的第一签名分量,包括:
获取随机数k1以及所述随机数k2之间的第五差值;所述随机数k1用于生成所述椭圆曲线点Q;
对所述第三差值以及所述第五差值进行乘积运算,得到第六数值,获取所述第二余数以及所述第六数值之间的第三总值;
若所述第三总值不等于所述基点的阶,且所述第二余数不等于第七数值,则将所述第二余数确定为所述业务消息的第一签名分量。
13.根据权利要求9所述的方法,其特征在于,所述根据所述第二私钥片段以及所述第一签名分量,生成局部签名分量,包括:
获取所述第二私钥片段以及第一数值之间的第三差值,对所述第三差值的倒数以及所述第一签名分量进行乘积运算,得到第八数值;
获取所述第八数值以及随机数k2之间的第六差值;所述随机数k2与所述第一签名分量相关联;
对所述第六差值以及椭圆曲线的基点的阶进行取余运算,若得到的第三余数不等于第七数值,则将所述第三余数确定为局部签名分量。
14.一种数据处理装置,其特征在于,所述装置运行于具有第一私钥片段的第一签名设备,所述装置包括:
第一发送模块,用于将业务消息对应的消息摘要以及椭圆曲线点Q均发送至第二签名设备,以使所述第二签名设备在根据所述椭圆曲线点Q、所述消息摘要以及第二私钥片段,生成所述业务消息的第一签名分量时,根据所述第二私钥片段以及所述第一签名分量,生成局部签名分量;
第一生成模块,用于获取所述第二签名设备发送的所述第一签名分量以及所述局部签名分量,根据所述第一私钥片段、所述第一签名分量以及所述局部签名分量,生成第二签名分量;
第二发送模块,用于将所述第一签名分量、所述第二签名分量以及所述业务消息作为待验证数据发送至验证设备,以使所述验证设备根据与所述第一私钥片段以及所述第二私钥片段相关联的全局公钥,对获取到的所述待验证数据进行合法性验证。
15.一种数据处理装置,其特征在于,所述装置运行于具有第二私钥片段的第二签名设备,所述装置包括:
第一获取模块,用于获取第一签名设备发送的业务消息对应的消息摘要以及椭圆曲线点Q;
分量生成模块,用于根据所述椭圆曲线点Q、所述消息摘要以及所述第二私钥片段,生成所述业务消息的第一签名分量,根据所述第二私钥片段以及所述第一签名分量,生成局部签名分量;
分量发送模块,用于将所述第一签名分量以及所述局部签名分量均发送至所述第一签名设备,以使所述第一签名设备在根据第一私钥片段、所述第一签名分量以及所述局部签名分量,生成第二签名分量时,将所述第一签名分量、所述第二签名分量以及所述业务消息作为待验证数据发送至验证设备;所述验证设备用于根据与所述第一私钥片段以及所述第二私钥片段相关联的全局公钥,对获取到的所述待验证数据进行合法性验证。
16.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供数据通信功能,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1至13任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1-13任一项所述的方法。
18.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,所述计算机程序适于由处理器读取并执行,以使得具有所述处理器的计算机设备执行权利要求1-13任一项所述的方法。
CN202211123183.7A 2022-09-15 2022-09-15 一种数据处理方法、装置、设备以及计算机可读存储介质 Pending CN117749379A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211123183.7A CN117749379A (zh) 2022-09-15 2022-09-15 一种数据处理方法、装置、设备以及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211123183.7A CN117749379A (zh) 2022-09-15 2022-09-15 一种数据处理方法、装置、设备以及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN117749379A true CN117749379A (zh) 2024-03-22

Family

ID=90253212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211123183.7A Pending CN117749379A (zh) 2022-09-15 2022-09-15 一种数据处理方法、装置、设备以及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN117749379A (zh)

Similar Documents

Publication Publication Date Title
CN112446785B (zh) 跨链交易方法、***、装置、设备和存储介质
CN111970129B (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质
CN111628868B (zh) 数字签名生成方法、装置、计算机设备和存储介质
CN111144881B (zh) 对资产转移数据的选择性访问
US20220148111A1 (en) Method of using a blockchain
CN106576043A (zh) 病毒式可分配可信消息传送
CN110096894B (zh) 一种基于区块链的数据匿名共享***及方法
CN114329527A (zh) 交集数据获取方法、设备和***
CN111815321A (zh) 交易提案的处理方法、装置、***、存储介质和电子装置
CN114971796B (zh) 一种基于云服务平台的招投标***
CN112073196B (zh) 业务数据处理方法、装置、电子设备及存储介质
CN115203749B (zh) 一种基于区块链的数据交易方法和***
CN112311779B (zh) 应用于区块链***的数据访问控制方法及装置
CN112464282A (zh) 基于区块链的账户交易信息生成、处理的方法和装置
CN112734423A (zh) 一种基于区块链的交易方法及终端设备
CN113328854B (zh) 基于区块链的业务处理方法及***
CN116975936B (zh) 金融资质证明方法、金融资质验证方法
CN115705601A (zh) 数据处理方法、装置、计算机设备及存储介质
CN117749379A (zh) 一种数据处理方法、装置、设备以及计算机可读存储介质
WO2018128581A1 (en) A transaction management method
CN112184440A (zh) 数据处理方法、装置、节点设备及存储介质
CN113672988A (zh) 基于区块链的信息管理方法、***、介质及电子设备
CN116743377B (zh) 基于区块链密钥的数据处理方法、装置、设备及存储介质
CN117454437B (zh) 交易处理方法、存储介质及电子设备
CN116992470B (zh) 合作授权协议书签署方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination