CN117201033A - 一种盲签名设备、***以及方法 - Google Patents
一种盲签名设备、***以及方法 Download PDFInfo
- Publication number
- CN117201033A CN117201033A CN202311179545.9A CN202311179545A CN117201033A CN 117201033 A CN117201033 A CN 117201033A CN 202311179545 A CN202311179545 A CN 202311179545A CN 117201033 A CN117201033 A CN 117201033A
- Authority
- CN
- China
- Prior art keywords
- signature
- blind
- blind signature
- private key
- sgx
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000004590 computer program Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 15
- 238000013461 design Methods 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 22
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本申请属于信息安全技术领域,尤其涉及一种盲签名设备、***以及方法。盲签名设备包括可信认证模块、解密模块以及盲签名模块,可信认证模块用于根据随机数确定加密公钥和解密私钥。解密模块用于在可信计算环境中,根据解密私钥和密文得到签名信息。盲签名模块用于根据签名信息和签名私钥得到盲签名。通过可信认证模块生成加密公钥和解密私钥,结合由用户设备根据加密公钥将签名信息加密得到的密文,通过解密模块利用解密私钥将密文还原为签名信息,最后在盲签名模块中通过签名私钥对签名信息进行盲签名。本申请基于可信计算技术,在盲签名中避免了复杂的密码学构造,使其具备较高的运行效率,从而降低了***的设计难度。
Description
技术领域
本申请涉及信息安全技术领域,特别涉及一种盲签名设备、***以及方法。
背景技术
盲签名技术是一种数字签名技术,该技术允许消息拥有者先将消息盲化,然后让签名者对盲化的消息进行签名,最后消息拥有者对签字除去盲因子,得到签名者关于原消息的签名。这样,会使签名者看不到所签署文件的具体内容,其次,签名被公开后,签名者不能追踪签名。
目前,使用较多的盲签名技术都是基于密码学构造,包括基于非对称加密(RonRivest-Adi Shamir-Leonard Adleman,RSA)算法的盲签名技术,这种盲签名技术需要设置很长的密钥才能保证算法安全,密钥越长则意味着运算效率越低,同时也意味着签名越大。还有基于椭圆曲线公钥密码算法(比如SM2)或基于椭圆曲线的数字签名算法(EllipticCurve Digital Signature Algorithm,ECDSA)的盲签名技术,这类技术需要用户与签名者至少进行多次交互才能完成签名。
发明内容
本申请提供了一种盲签名设备、***以及方法,通过软件保护扩展(SoftwareGuard eXtensions,SGX)可信计算技术,实现用户从签名者处获取盲签名,避免了密码学构造,从而具备较高的运行效率。
所述技术方案如下:
第一方面,本申请实施例提供一种盲签名设备,该盲签名设备包括:可信认证模块、解密模块以及盲签名模块。其中,可信认证模块用于确定加密公钥和解密私钥。比如,可信认证模块用于根据随机数确定加密公钥和解密私钥。
解密模块用于在可信计算环境中,根据解密私钥和密文得到签名信息,可信计算环境由盲签名设备提供,密文由用户设备根据加密公钥将签名信息加密得到,其中,签名信息为需要进行盲签名的明文信息。盲签名模块用于在可信计算环境中,根据签名信息和签名私钥得到盲签名。
可选的,该盲签名设备还用于向用户设备发送盲签名。
本申请提供的一种盲签名设备,其中包括可信认证模块、解密模块以及盲签名模块,通过可信认证模块生成包括加密公钥和解密私钥。结合由用户设备根据加密公钥将签名信息加密得到的密文,通过解密模块利用解密私钥将密文还原为签名信息,最后在盲签名模块中通过签名私钥对签名信息进行盲签名。本申请基于SGX可信计算技术,将其应用于盲签名,避免了复杂的密码学构造,具备较高的运行效率,从而降低了***的设计难度,同时又大幅减少交互次数。
在第一方面的一种可能的实现方式中,可信认证模块还用于响应于来自用户设备的可信认证请求消息,生成SGX报告,SGX报告中携带有加密公钥。可信认证请求消息用于请求盲签名。
第二方面,本申请实施例提供一种盲签名***,包括盲签名设备和用户设备。盲签名设备用于确定可信计算环境,以及在可信计算环境中根据解密私钥解密密文,得到盲签名并向用户设备发送盲签名。用户设备用于根据盲签名设备生成的加密公钥加密签名信息得到密文,以及接收盲签名。
在第二方面的一种可能的实现方式中,用户设备还用于向签名设备发送可信认证请求消息,可信认证请求消息用于请求盲签名。盲签名设备还用于根据可信认证请求消息,生成SGX报告,SGX报告中包括加密公钥。
第三方面,本申请实施例提供一种盲签名方法,应用于盲签名设备,本申请实施例提供的方法包括:
盲签名设备确定可信计算环境中的解密私钥以及确定SGX报告,SGX报告包括加密公钥;
盲签名设备向用户设备发送加密公钥;
盲签名设备接收来自用户设备的密文,密文由用户设备根据盲签名设备生成的加密公钥将签名信息加密得到;
盲签名设备在可信计算环境中根据解密私钥解密密文,以得到签名信息;
盲签名设备根据签名私钥和签名信息确定盲签名,签名私钥由签名设备生;
盲签名设备向用户设备发送盲签名。
在第三方面的一种可能的实现方式中,在确定可信计算环境中的解密私钥以及确定SGX报告之前,本申请实施例提供的方法还包括:
盲签名设备接收来自用户设备的可信认证请求消息,可信认证请求消息用于请求盲签名;
盲签名设备根据可信认证请求消息,调用可信计算环境,并生成SGX报告。
在第三方面的一种可能的实现方式中,根据签名私钥和签名信息确定盲签名,包括:
盲签名设备根据签名私钥和签名信息确定第一数字签名,
盲签名设备根据第一数字签名,确定第二数字签名,第一数字签名和第二数字签名用于组成盲签名。
第四方面,本申请实施例提供一种盲签名方法,用于用户设备,本申请实施例提供的方法包括:
用户设备在确认盲签名设备中的SGX报告有效的情况下,从盲签名设备处获取加密公钥,SGX报告包括加密公钥;
用户设备接收来自盲签名设备的加密公钥;
用户设备根据加密公钥将签名信息加密,得到密文;
用户设备向盲签名设备发送密文;
用户设备接收来自盲签名设备的盲签名。
在第四方面的一种可能的实现方式中,在确认盲签名设备中的SGX报告有效之前,本申请实施例提供的方法还包括:
用户设备向盲签名设备发送可信认证请求消息,可信认证请求消息用于请求盲签名;和/或,对盲签名设备中的SGX报告进行远程认证以确定SGX报告的有效性。
在第四方面的一种可能的实现方式中,用户设备接收来自盲签名设备的盲签名包括:
用户设备接收来自盲签名设备的第一数字签名和第二数字签名;
用户设备根据第一数字签名和第二数字签名确定盲签名。
第五方面,本申请实施例提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第三方面所述的盲签名方法,或第四方面所述的盲签名方法。
第六方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第三方面所述的盲签名方法,或第四方面所述的盲签名方法。
第七方面,本申请提供了一种计算机程序产品,包括计算机程序,当程序在计算机上运行时,使得计算机执行上述第三方面所述的盲签名方法,或第四方面所述的盲签名方法。
可以理解的是,上述第二方面、第三方面、第四方面、第五方面、第六方面以及第七方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种盲签名***示意图;
图2是本申请实施例提供的另一种盲签名***示意图;
图3是本申请实施例提供的一种盲签名方法流程图;
图4是本申请实施例提供的一种盲签名方法具体流程示意图;
图5是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述,在其它情况中,各个实施例中的具体技术细节可以互相参考,在一个实施例中没有描述的具体***可参考其它实施例。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在本申请说明书中描述的参考“本申请实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在另一些实施例中”、“本申请一实施例”、“本申请其他实施例”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
盲签名是接收者在不让签名者获取所签署消息具体内容的情况下所采取的一种特殊的数字签名技术,其使得签名的用户看不到所签署文件的具体内容,允许消息者先将消息盲化,而后让签名者对盲化的消息进行签名,最后消息拥有者对签字除去盲因子,得到签名者关于原消息的签名。
在一些相关技术中,使用较多的是基于密码学构造的盲签名技术,首先是基于RSA算法的盲签名技术,这种盲签名技术需要设置很长的密钥才能保证算法安全,密钥越长则意味着运算效率越低,同时也意味着签名越大。其次是基于椭圆曲线公钥密码算法(比如SM2)或基于椭圆曲线的数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)的盲签名技术,这类技术需要用户与签名者至少进行多次交互才能完成签名。
为了解决目前盲签名技术需要用户通过复杂的密码学构造设置很长的密钥而导致的运算效率低,安全系数差,以及交互的次数较多的问题,本申请实施例提供了一种盲签名设备、***以及方法,仅使用SGX可信计算技术,就可以实现用户从签名方处获取盲签名。
如图1所示,图1为本申请实施例提供一种盲签名***,***包括盲签名设备10和用户设备20。盲签名设备10用于向用户设备20发送盲签名。
本申请实施例中盲签名设备10是指能够进行盲签名的电子设备,比如可以是台式机、便携式电脑、网络服务器、掌上电脑、移动手机、平板电脑、无线终端设备、通信设备等,在本申请实施例中不做限定。
本申请实施例中用户设备20可以是台式机、便携式电脑、网络服务器、掌上电脑、移动手机、平板电脑、无线终端设备、通信设备等,在本申请中不做限定。
盲签名设备10和用户设备20之间可以具有通信连接。比如,盲签名设备10可以通过通信连接接收用户设备20发送的可信认证请求消息,相应的,用户设备20可以利用通信连接向盲签名设备10发送可信认证请求消息。当然,用户设备20还可以通过通信连接从盲签名设备10处获取加密公钥等等。
作为一种示例,盲签名设备10和用户设备20可以是同类型的设备,比如均为计算机,也可以是不同类型的设备,本申请实施例对此不做限定。
在本申请提供一个实施例中,如图1所示,盲签名设备10包括可信认证模块101、解密模块102以及盲签名模块103。用户设备20包括加密模块201。
可信认证模块101,用于确定加密公钥和解密私钥。比如可信认证模块101,用于根据随机数确定加密公钥和解密私钥。
其中,随机数是一串在一定范围内随机产生的数,随机数可以组成加密公钥和解密私钥。
其中,加密公钥(PublicKey,PK)和解密私钥(SecertKey,SK)是通过一种算法得到的一个密钥对,加密公钥是密钥对中公开的部分,解密私钥则是非公开的部分。加密公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的解密私钥解密的数据。密钥对通常具有唯一性,使用这个密钥对的时候,如果用其中一个密钥(比如,加密公钥)加密一段数据,必须用另一个密钥(比如,解密私钥)解密。
比如,用户设备20中的加密模块201用加密公钥pk加密一段数据A后,盲签名设备10中的解密模块102采用与加密公钥pk配对的解密私钥sk解密。
解密模块102,用于在可信计算环境中根据解密私钥将密文解密得到签名信息。可信计算环境由盲签名设备10提供,密文由用户设备20根据加密公钥将签名信息加密得到。加密模块201用于根据加密公钥将签名信息加密,生成密文。
其中,可信计算环境是盲签名设备10基于SGX生成的一个隔离的环境,在这个隔离的环境中运行的应用程序,可以保证不会被外部攻击和篡改。
其中,签名信息又称为明文信息,是未加密的有意义的字符或比特集,或通过某种公开的编码标准就能获得的信息。比如,明文信息可以是通信***中的比特流,比如文本、位图、数字化的语音、数字化的视频图像等。
其中,密文(Cipher Text,CT)为明文信息经过加密后的信息。
举例说明,用户设备20通过加密模块201将明文信息e经过加密公钥pk加密,以生成密文ct。然后用户设备20通过通信模块向盲签名设备10发送密文ct。随后,盲签名设备10接收到密文ct后通过解密模块102将密文ct经过解密私钥sk进行解密,以还原得到明文信息e。其中,解密私钥sk和加密公钥pk为一个密钥对。
盲签名模块103,用于在可信计算环境中,根据签名私钥和签名信息得到盲签名,签名私钥由盲签名设备10生成。
其中,签名私钥用于对签名信息进行盲签名,签名私钥可以由盲签名设备10生成,也可以由数字证书拥有方生成,在本申请中不做限定。
举例说明,盲签名模块103可以通过签名私钥d对明文信息e进行盲签名。其中,由于明文信息e的内容始终在可信计算环境中,因此盲签名设备10是无法获取其真实内容的。
可选的,用户设备20还可以包括通信模块,通信模块用于与盲签名设备10进行通信。
本申请提供的一种盲签名设备,其中包括可信认证模块101、解密模块102以及盲签名模块103,通过可信认证模块101生成包括加密公钥和解密私钥。结合由用户设备20根据加密公钥将签名信息加密得到的密文,通过解密模块102利用解密私钥将密文还原为签名信息,最后在盲签名模块103中通过签名私钥对签名信息进行盲签名。本申请基于SGX可信计算技术,将其应用于盲签名,避免了复杂的密码学构造,具备较高的运行效率,从而降低了***的设计难度,同时又大幅减少交互次数。
在本申请的一个实施例中,可信认证模块101还用于根据可信认证请求消息,生成SGX报告。可信认证请求消息用于请求盲签名。加密公钥附加在SGX报告中。
作为一种示例,盲签名设备10在接收到可信认证请求消息的情况下,在可信计算环境中生成加密公钥pk和解密私钥sk,然后盲签名模块103调用SGX硬件指令集(比如enclu[ereport]),该指令集用于将加密公钥pk公开,并附加到SGX报告中。
可选的,本申请实施例提供的盲签名设备10和用户设备20还可以包括通信模块,如图2所示。通信模块用于盲签名设备10与用户设备20之间通信,或盲签名设备10与其他设备通信,或用户设备20与其他设备通信。
比如,用户设备20通过通信模块获取签名信息;或者盲签名设备10通过通信模块将加密公钥发送至用户设备20,相应的,用户设备20通过通信模块接收来自盲签名设备10的加密公钥。
基于上述实施例描述的盲签名***,本申请实施例提供了一种盲签名方法。参考图3,图3为本申请实施例提供的一种盲签名方法,应用于盲签名设备10,包括:
步骤S301、盲签名设备10确定可信计算环境中的解密私钥以及确定SGX报告。其中,SGX报告包括加密公钥。
比如,盲签名设备10中的可信认证模块101生成SGX报告。换言之,可信认证模块101生成加密公钥pk和解密私钥sk,并将加密公钥pk附加在SGX报告中进行公开,将解密私钥sk保存在可信计算环境中。
步骤S302、盲签名设备10向用户设备20发送加密公钥。相应的,用户设备20接收来自盲签名设备10的加密公钥。
比如,用户设备20中的加密模块201接收来自盲签名设备10中的可信认证模块101的SGX报告,SGX报告中附加有加密公钥pk。
其中,用户设备20还用于获取签名信息,并向加密模块201发送签名信息。可以理解的是,用户设备20获取的签名信息可以是加密模块201获取,也可以是用户设备20的其他模块获取,其他模块获取后向加密模块201发送,在此处不做限定。其中,其他模块在本申请中不做限定。
步骤S303、盲签名设备10接收来自用户设备20的密文。其中,密文由用户设备20根据盲签名设备10生成的加密公钥将签名信息加密得到。相应的,用户设备20向盲签名设备10发送密文。
比如,用户设备20中的加密模块201根据加密公钥pk和明文信息e,将明文信息e加密为密文ct,再向盲签名设备10发送密文ct。
比如,盲签名设备10的解密模块102接收来自用户设备20(比如加密模块201)的密文ct。
步骤S304、盲签名设备10在可信计算环境中,根据解密私钥解密密文,以得到签名信息。
其中,盲签名设备10中,可信认证模块101还用于向解密模块102提供解密私钥。
比如,盲签名设备10中的解密模块102根据解密私钥sk和密文ct,将密文ct还原成明文信息e。
步骤S305、盲签名设备10根据签名私钥和签名信息确定盲签名。其中,签名私钥由盲签名设备10生成。
作为一种示例,盲签名设备10中的盲签名模块103根据签名私钥和签名信息确定第一数字签名,再根据第一数字签名,确定第二数字签名。
举例说明,以签名信息为明文信息e为例,盲签名模块103在可信计算环境中,根据随机数确定第一数字签名r,再根据第一数字签名r、随机数k、签名私钥d和明文信息e确定第二数字签名s。然后由第一数字签名r和第二数字签名s组成盲签名。
步骤S306、盲签名设备10向用户设备20发送盲签名。相应的,用户设备20接收来自盲签名设备10的盲签名。
作为一种示例,以盲签名***接收签名信息为明文信息e为例,用户设备20中的加密模块201获取明文信息e。盲签名设备10中的可信认证模块101生成SGX报告,SGX报告中包括加密公钥pk以及解密私钥sk,盲签名设备10中的可信认证模块101向加密模块201发送加密公钥pk,向解密模块102发送解密私钥sk。加密模块201根据加密公钥pk和明文信息e,生成密文ct。加密模块201向解密模块102发送密文ct,解密模块102接收到密文ct后,根据解密私钥sk,将密文ct还原为明文信息e,并向盲签名模块103发送明文信息e。盲签名设备10获取签名私钥d,并向盲签名模块103发送签名私钥d,盲签名模块103使用签名私钥d对明文信息e进行盲签名。盲签名模块103向用户设备20发送盲签名。
其中,签名私钥d可以是由盲签名设备10生成,也可以是由其他可信第三方生成发送给盲签名设备10,在本申请实施例中不做限定。
在本申请的一种实施例中,在盲签名设备10确定可信计算环境中的解密私钥以及确定SGX报告之前,本申请实施例提供的方法还包括:
用户设备20向盲签名设备10发送可信认证请求消息。相应的,盲签名设备10接收来自用户设备20的可信认证请求消息。可信认证请求消息用于请求盲签名。
盲签名设备10根据可信认证请求消息,调用可信计算环境,以生成SGX报告。
作为一种示例,用户设备20向盲签名设备10发送可信认证请求消息,盲签名设备10根据该可信认证请求消息生成包括加密公钥pk和解密私钥sk的SGX报告,用户设备20在接收加密公钥pk之前还需要使用远程认证确认SGX报告的有效性,以确认SGX内部正确运行的应用逻辑,从而确定加密公钥pk的有效性。在用户设备20确认SGX报告具有有效性之后,盲签名设备10向用户设备20发送加密公钥pk。
可选的,在用户设备20不是首次请求进行盲签名的情况下,用户设备20可以省略向盲签名设备10发送可信认证请求消息来请求盲签名的步骤。
作为一种示例,用户设备20可以在首次向盲签名设备10请求进行盲签名的情况下,向盲签名设备10发送可信认证请求消息来请求盲签名。或者用户设备20可以每次向盲签名设备10请求进行盲签名的情况下,均向盲签名设备10发送可信认证请求消息来请求盲签名。本申请实施例对此不做限定。
值得说明的是,在盲签名设备10首次接收到来自用户设备20的可信认证请求消息之后,盲签名设备10生成包括加密公钥和解密私钥的SGX报告,以及用户设备20使用远程认证确认SGX报告的有效性均是在盲签名***首次请求进行盲签名的情况下进行。换言之,如果用户设备20不是首次请求进行盲签名请求,则盲签名设备10中的SGX报告保留,即加密公钥和解密私钥保留在盲签名设备10中。
举例说明,在用户设备20第二次请求进行盲签名的情况下,用户设备20向盲签名设备10发送请求盲签名的信息,盲签名设备10直接向用户设备20发送加密公钥pk,用户设备20使用加密公钥pk加密明文信息e生成密文ct,向盲签名设备10发送密文ct,盲签名设备10根据解密私钥sk将密文ct还原成明文信息e,并使用签名私钥d对明文信息e进行盲签名,最后向用户设备20发送盲签名。
值得说明的是,对于盲签名设备10而言,如果接收到来自用户设备20的非首次请求盲签名的信息,则可以不生成SGX报告,或者每次接收到用户设备20的请求盲签名的信息均会生成SGX报告,在本申请实施例中不做限定。
在本申请的一种实施例中,根据签名私钥和签名信息确定盲签名,包括:盲签名设备10根据随机数确定第一数字签名;盲签名设备10根据第一数字签名、签名私钥以及签名信息,确定第二数字签名,其中,第一数字签名和第二数字签名用于组成盲签名。
可以理解的是,在盲签名技术中,签名方不应该知晓所签署的签名信息的内容,但是直接计算第一数字签名和第二数字签名则需要知晓签名信息的内容。本申请实施例中,在可信计算环境中,盲签名设备10根据签名私钥和签名信息确定第二数字签名,签名信息的内容始终在可信计算环境中,因此签名方无法获取其真实内容。
作为一种示例,第一数字签名r的计算公式为:r=kG,
其中,k为随机数,G为椭圆曲线基点。
作为一种示例,第二数字签名s的计算公式为:s=(rd+e)k^-1,
其中,d为签名私钥,e为签名信息。
参考图4,图4为本申请实施例提供的一种盲签名方法的流程示意图,包括:用户设备20根据远程认证确定盲签名设备中的SGX报告的有效性,SGX报告包括加密公钥;用户设备20接收来自盲签名设备10的加密公钥;用户设备20根据加密公钥将签名信息加密,得到密文;用户设备20向盲签名设备10发送密文;用户设备20接收来自盲签名设备10的盲签名。
在本申请的一种实施例中,在用户设备20确认盲签名设备10中的SGX报告的有效之前,本申请实施例提供的方法还包括:用户设备20向盲签名设备10发送可信认证请求消息,可信认证请求消息用于请求盲签名;和/或,用户设备20对盲签名设备10中的SGX报告进行远程认证以确定SGX报告的有效性。
在本申请的一种实施例中,用户设备20接收来自盲签名设备10的第一数字签名和第二数字签名,并根据第一数字签名和第二数字签名确定盲签名。
举例说明,用户设备20接收到来自盲签名设备10的盲签名,包括第一数字签名r和第二数字签名s,用户设备20将第一数字签名r和第二数字签名s进行组装,以得到盲签名设备10生成的盲签名。
在本申请的一种实施例中,盲签名设备10中的可信认证模块101用于确定建立可信计算环境,在可信计算环境中生成加密公钥和解密私钥。其中,解密模块102与盲签名模块103也在可信计算环境中执行进行操作。
作为一种示例,如图4所示,以用户设备20首次请求进行盲签名为例,用户设备20向盲签名设备10发送可信认证请求消息。用户设备20获取明文信息e,在盲签名设备10中生成SGX报告,SGX报告中包括加密公钥pk,用户设备20使用远程认证确定SGX报告的有效性。在SGX报告具有有效性的情况下,盲签名设备10向用户设备20发送加密公钥pk。盲签名设备10调用可信计算enclave,进入可信计算环境。用户设备20根据加密公钥pk加密明文信息e,以生成密文ct,然后用户设备20向盲签名设备10发送密文ct,盲签名设备10接收到密文ct后,在可信计算环境中,根据解密私钥sk,将密文ct还原为明文信息e。盲签名设备10生成签名私钥d,在可信计算环境中,使用签名私钥d以及明文信息e确定盲签名。比如,盲签名设备10计算第一数字签名r=kG与第二数字签名s=(rd+e)k^-1,并向用户设备20发送第一数字签名r和第二数字签名s,用户设备20将第一数字签名r与第二数字签名s进行组装得到盲签名。用户设备20得到盲签名后,可以对盲签名除去盲因子,从而得到盲签名设备10关于明文信息e的签名。
图5为本申请实施例提供的一种计算机设备的结构示意图。如图5所示,计算机设备501包括:处理器5011、存储器5012以及存储在存储器5012中并可在处理器5011上运行的计算机程序5013,处理器5011执行计算机程序5013时实现上述实施例中的方法中的步骤。
计算机设备501可以是一个通用计算机设备或一个专用计算机设备。在具体实现中,计算机设备501可以是台式机、便携式电脑、网络服务器、掌上电脑、移动手机、平板电脑、无线终端设备、通信设备或嵌入式设备,本申请实施例不限定计算机设备501的类型。本领域技术人员可以理解,图5仅仅是计算机设备501的举例,并不构成对计算机设备501的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,比如还可以包括输入输出设备、网络接入设备等。
处理器5011可以是中央处理单元(Central Processing Unit,CPU),处理器5011还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器。
存储器5012在一些实施例中可以是计算机设备501的内部存储单元,比如计算机设备501的硬盘或内存。存储器5012在另一些实施例中也可以是计算机设备501的外部存储设备,比如计算机设备501上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器5012还可以既包括计算机设备501的内部存储单元也包括外部存储设备。存储器5012用于存储操作***、应用程序、引导装载程序(BootLoader)、数据以及其他程序等。存储器5012还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时可实现上述盲签名方法中各个实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现上述各实施例的盲签名方法。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述方法实施例中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,该计算机程序包括计算机程序代码,该计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。该计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
本申请实施例还提供了一种芯片,芯片包括处理器,处理器与通信接口耦合,处理器用于运行计算机程序或指令,以实现如上述实施例的盲签名方法,通信接口用于与芯片之外的其它模块进行通信。
应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。该计算机指令可以存储在上述计算机可读存储介质中。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (12)
1.一种盲签名设备,其特征在于,所述设备包括:可信认证模块、解密模块以及盲签名模块;
所述可信认证模块用于确定加密公钥和解密私钥;
所述解密模块用于在可信计算环境中,根据所述解密私钥和密文得到签名信息,所述可信计算环境由所述盲签名设备提供,所述密文由用户设备根据所述加密公钥将所述签名信息加密得到;
所述盲签名模块用于在所述可信计算环境中,根据所述签名信息和签名私钥得到盲签名。
2.根据权利要求1所述的设备,其特征在于,所述可信认证模块还用于响应于来自所述用户设备的可信认证请求消息,生成SGX报告,所述SGX报告中携带有所述加密公钥;
所述可信认证请求消息用于请求所述盲签名。
3.一种盲签名***,其特征在于,所述***包括盲签名设备和用户设备,所述盲签名设备用于确定可信计算环境,以及在所述可信计算环境中根据解密私钥解密密文,得到盲签名并向所述用户设备发送所述盲签名;
所述用户设备用于根据所述盲签名设备生成的加密公钥加密签名信息得到所述密文,以及接收所述盲签名。
4.根据权利要求3所述的***,其特征在于,所述用户设备还用于向所述签名设备发送可信认证请求消息,所述可信认证请求消息用于请求所述盲签名;
所述盲签名设备还用于根据所述可信认证请求消息,生成SGX报告,所述SGX报告中包括所述加密公钥。
5.一种盲签名方法,所述方法用于盲签名设备,其特征在于,所述方法包括:
确定可信计算环境中的解密私钥以及确定SGX报告,所述SGX报告包括加密公钥;
向用户设备发送所述加密公钥;
接收来自所述用户设备的密文,所述密文由所述用户设备根据所述盲签名设备生成的加密公钥将签名信息加密得到;
在所述可信计算环境中根据所述解密私钥解密所述密文,以得到所述签名信息;
根据签名私钥和所述签名信息确定盲签名,所述签名私钥由盲签名设备生成;
向所述用户设备发送所述盲签名。
6.根据权利要求5所述方法,其特征在于,在确定可信计算环境中的解密私钥以及确定SGX报告之前,所述方法还包括:
接收来自所述用户设备的可信认证请求消息,所述可信认证请求消息用于请求所述盲签名;
根据所述可信认证请求消息,调用所述可信计算环境,并生成所述SGX报告。
7.根据权利要求5所述的方法,其特征在于,根据所述签名私钥和所述签名信息确定盲签名,包括:
根据所述签名私钥和所述签名信息确定第一数字签名,
根据所述第一数字签名,确定第二数字签名,所述第一数字签名和所述第二数字签名用于组成所述盲签名。
8.一种盲签名方法,所述方法用于用户设备,其特征在于,所述方法包括:
在确认盲签名设备中的SGX报告有效的情况下,从所述盲签名设备处获取加密公钥,所述SGX报告包括所述加密公钥;
根据所述加密公钥将签名信息加密,得到密文;
向所述盲签名设备发送所述密文;
接收来自所述盲签名设备的盲签名。
9.根据权利要求8所述的方法,其特征在于,在确认盲签名设备中的SGX报告有效之前,所述方法还包括:
向所述盲签名设备发送可信认证请求消息,所述可信认证请求消息用于请求所述盲签名;和/或,对所述盲签名设备中的SGX报告进行远程认证以确定所述SGX报告的有效性。
10.根据权利要求8或9所述的方法,其特征在于,接收来自所述盲签名设备的盲签名包括:
接收来自所述盲签名设备的第一数字签名和第二数字签名;
根据所述第一数字签名和所述第二数字签名确定所述盲签名。
11.一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求5至7任一项所述的盲签名方法,或如权利要求8至10任一项所述的盲签名方法。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求5至7任一项所述的盲签名方法,或如权利要求8至10任一项所述的盲签名方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311179545.9A CN117201033A (zh) | 2023-09-13 | 2023-09-13 | 一种盲签名设备、***以及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311179545.9A CN117201033A (zh) | 2023-09-13 | 2023-09-13 | 一种盲签名设备、***以及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117201033A true CN117201033A (zh) | 2023-12-08 |
Family
ID=88984642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311179545.9A Pending CN117201033A (zh) | 2023-09-13 | 2023-09-13 | 一种盲签名设备、***以及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117201033A (zh) |
-
2023
- 2023-09-13 CN CN202311179545.9A patent/CN117201033A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109067524B (zh) | 一种公私钥对生成方法及*** | |
CN107483212B (zh) | 一种双方协作生成数字签名的方法 | |
CN108809646B (zh) | 安全共享密钥共享*** | |
US20190278919A1 (en) | Method and system for providing an update of code on a memory-constrained device | |
CN110868291B (zh) | 一种数据加密传输方法、装置、***及存储介质 | |
CN110690956B (zh) | 双向认证方法及***、服务器和终端 | |
US11888832B2 (en) | System and method to improve user authentication for enhanced security of cryptographically protected communication sessions | |
CN113572743B (zh) | 数据加密、解密方法、装置、计算机设备和存储介质 | |
CN114900304B (zh) | 数字签名方法和装置、电子设备和计算机可读存储介质 | |
CN110598429B (zh) | 数据加密存储和读取的方法、终端设备及存储介质 | |
CN113811874A (zh) | 加密数据验证方法 | |
CN111970114A (zh) | 文件加密方法、***、服务器和存储介质 | |
CN107947939A (zh) | 支持sm3密码杂凑算法和sm2数字签名算法的pdf签名方法和*** | |
CN111177748A (zh) | 指纹存储加密方法、装置及*** | |
CN114205142A (zh) | 数据传输方法、装置、电子设备和存储介质 | |
US20160148002A1 (en) | Key storage apparatus, key storage method and program therefor | |
CN111836260B (zh) | 一种认证信息处理方法、终端和网络设备 | |
CN116962067A (zh) | 一种信息加密方法、装置和设备 | |
KR102523416B1 (ko) | 이미지에 대한 보안 기능을 제공하는 보안 장치, 이를 포함하는 카메라 장치 및 카메라 장치를 제어하는 시스템 온 칩 | |
JP2003234734A (ja) | 相互認証方法及びサーバ装置及びクライアント装置及び相互認証プログラム及び相互認証プログラムを格納した記憶媒体 | |
CN114553566B (zh) | 数据加密方法、装置、设备及存储介质 | |
CN115549910A (zh) | 一种数据传输方法、设备以及存储介质 | |
CN115442046A (zh) | 签名方法、装置、电子设备和存储介质 | |
CN112560050B (zh) | 安全的电子证件颁发方法、装置、终端设备及存储介质 | |
CN117201033A (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 |