CN115952548A - 隐私计算方法以及装置、电子设备、存储介质 - Google Patents
隐私计算方法以及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN115952548A CN115952548A CN202310119162.6A CN202310119162A CN115952548A CN 115952548 A CN115952548 A CN 115952548A CN 202310119162 A CN202310119162 A CN 202310119162A CN 115952548 A CN115952548 A CN 115952548A
- Authority
- CN
- China
- Prior art keywords
- user
- data
- intelligent contract
- public key
- party
- 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
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本申请公开了一种隐私计算方法以及装置、电子设备、存储介质。该方法包括采用可信执行环境和区块链技术,给出一套去中心化的隐私计算解决方案。在其本地的可信执行环境中执行特定分析程序,得到的分析结果通过区块链智能合约进行验证和交付。本申请解决了无法较好地实现隐私计算的技术问题。通过本申请的隐私计算方法确保数据不出域的同时保证结果交付的原子性。
Description
技术领域
本申请涉及软件工程技术领域,具体而言,涉及一种隐私计算方法以及装置、电子设备、存储介质。
背景技术
可信执行环境(TEE),包括intel的SGX,AMD的SEV等,能保证程序在受保护的环境下运行,实现代码无法被窜改,中间变量无法被获取这两个基本目标。其设计原理为在CPU电路这一层加入了对受保护内存访问的权限判断。
传统的隐私计算场景中存在着如下的问题:假设有一个数据提供方(乙方)其拥有原始数据;以及一个数据分析方(甲方),其需求乙方的原始数据在某特定分析程序上的执行结果。隐私计算的场景要求乙方的原始数据不会发生泄露,甲方仅能获得原始数据在分析程序上的执行结果,从而有效的保护了隐私。
针对相关技术中无法较好地实现隐私计算的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种隐私计算方法以及装置、电子设备、存储介质,基于区块链和可信执行环境解决隐私计算的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种隐私计算方法。
根据本申请的隐私计算方法包括:
通过第二用户在可信执行环境中计算原始数据的哈希值hData、公钥Pt以及所述公钥Pt的可信证明proof,并且将所述哈希值hData、所述公钥Pt以及所述可信证明proof发布至链上的智能合约;
通过第一用户生成一对临时非对称秘钥,包括公钥记为Pa、私钥记为Sa;
当所述第一用户向所述智能合约发起交易请求时,将用于支付隐私计算的数字资产存入所述智能合约,并且向所述智能合约发送预设信息;
所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算;
通过所述智能合约验证所述第二用户提交的隐私计算结果;
如果验证通过,则所述第二用户获取所述用于支付隐私计算的数字资产,同时所述第一用户获得所述隐私计算结果。
进一步地,所述预设信息中包括:
所述公钥Pa
第一用户需要第二用户执行的数据分析程序的哈希值hAlg;
第一用户需求的原始数据哈希值hdata;
执行数据分析程序所需的参数para;
c=Enc(Pt,Sa),其表示用所述公钥Pt对私钥Sa进行加密;
s=Sign(Sa,hAlg),其表示用所述私钥Sa对hAlg进行签名。
进一步地,所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算,包括:
所述第二用户在可信执行环境中,根据所述交易请求,从所述智能合约中获取所述预设信息中的所述hAlg、所述hdata、所述Pa、所述para、所述c、所述s,并输入至所述通过所述hAlg确定的数据分析程序;
同时,将所述链上的哈希值hData所对应的原始数据data输入至所述数据分析程序中。
进一步地,所述隐私计算包括:
采用私钥St解密所述c还原出Sa=Dec(St,c);
根据所述哈希值hAlg,验证使用Pa验证签名s的合法性;
如果验证通过,则以data,para为输入执行所述数据分析程序,得到分析结果D;
采用私钥Sa对hdata,para,D的联合进行签名,输出D,r,并经由所述第二用户提交至所述智能合约。
进一步地,所述通过所述智能合约验证所述第二用户提交的隐私计算结果,包括:
根据所述分析结果D和签名r之后,使用Pa验证签名r的合法性vrfy(Pa,r,hdata,para,D)=true。
进一步地,所述para,D均用Pa进行加密,在需要使用时使用所述Sa解密。
进一步地,所述第一用户的公钥Pa、私钥Sa,用于对所述预设信息或者所述隐私计算结果进行签名。
为了实现上述目的,根据本申请的另一方面,提供了一种隐私计算装置。
根据本申请的隐私计算装置包括:
第一准备模块,用于通过第二用户在可信执行环境中计算原始数据的哈希值hData、公钥Pt以及所述公钥Pt的可信证明proof,并且将所述哈希值hData、所述公钥Pt以及所述可信证明proof发布至链上的智能合约;
第二准备模块,用于通过第一用户生成一对临时非对称秘钥,包括公钥记为Pa、私钥记为Sa;
请求模块,用于当所述第一用户向所述智能合约发起交易请求时,将用于支付隐私计算的数字资产存入所述智能合约,并且向所述智能合约发送预设信息;
执行模块,用于所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算;
验证模块,用于通过所述智能合约验证所述第二用户提交的隐私计算结果;
获取模块,用于如果验证通过后,则所述第二用户获取所述用于支付隐私计算的数字资产,同时所述第一用户获得所述隐私计算结果。
根据本申请的又一个方面,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的再一个方面,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
在本申请实施例中,采用通过第二用户在可信执行环境中计算原始数据的哈希值hData、公钥Pt以及所述公钥Pt的可信证明proof,并且将所述哈希值hData、所述公钥Pt以及所述可信证明proof发布至链上的智能合约,通过第一用户生成一对临时非对称秘钥,包括公钥记为Pa、私钥记为Sa的方式,通过当所述第一用户向所述智能合约发起交易请求时,将用于支付隐私计算的数字资产存入所述智能合约,并且向所述智能合约发送预设信息,达到了所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算,通过所述智能合约验证所述第二用户提交的隐私计算结果的目的,从而实现了如果验证通过,则所述第二用户获取所述用于支付隐私计算的数字资产,同时所述第一用户获得所述隐私计算结果的技术效果,进而解决了无法较好地实现隐私计算的技术问题。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的隐私计算方法的流程示意图;
图2是根据本申请实施例的隐私计算装置的结构示意图;
图3是根据本申请实施例的隐私计算方法的实现原理示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。
此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
为了解决背景技术中的相关缺陷,本发明采用的解决方案为“数据不出域”,即乙方在其本地执行分析程序,且除了最后交付的分析结果之外,任何其他数据没有离开过其本地。所以,仍要解决的问题是保证乙方所执行的分析程序的正确性,包括乙方没有擅自篡改程序代码/替换原始数据/替换分析结果等等。同时还需要保证结果交付的原子性,即乙方能收到甲方的支付款项当且仅当甲方收到了正确的分析结果。
具体而言,可采用可信执行环境和区块链技术,给出一套去中心化的隐私计算解决方案。简单来说,乙方在其本地的可信执行环境中执行特定分析程序,得到的分析结果通过区块链智能合约进行验证和交付。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
如图1所示,该方法包括如下的步骤S110至步骤S160:
步骤S110,通过第二用户在可信执行环境中计算原始数据的哈希值hData、公钥Pt以及所述公钥Pt的可信证明proof,并且将所述哈希值hData、所述公钥Pt以及所述可信证明proof发布至链上的智能合约。
可信执行环境TEE所保护的内存地址段外界无法访问。但在设计时可以将可信程序的某些方法能指定为能被外界调用。TEE可以产生一对非对称秘钥,其中私钥只在TEE内部使用,公钥完全公开,同时能提供一个公钥的可信证明,证明其对应私钥确实只能在TEE内部使用。
步骤S120,通过第一用户生成一对临时非对称秘钥,包括公钥记为Pa、私钥记为Sa。
乙方发布数据信息,以及生成甲方隐私计算所需秘钥。其中,甲方的秘钥的作用为之后用到的相关信息(包括输入参数,分析结果等)进行签名,保证乙方执行分析程序的正确性。
在准备阶段:(1)乙方计算原始数据的哈希值hData,可选的,乙方可以拥有多个数据,对应多个哈希值。
(2)乙方本地的TEE,产生一对非对称秘钥,私钥记为St,仅在TEE内部使用;公钥记为Pt;同时乙方能够产生一个Pt的可信证明proof,证明Pt对应的私钥确实只能在TEE内部使用。
(3)乙方将hData,Pt,proof以及数据的相关描述说明发布至区块链智能合约上。
4)甲方生成一对临时的非对称秘钥,公钥记为Pa,完全公开;私钥记为Sa,由甲方保存。
步骤S130,当所述第一用户向所述智能合约发起交易请求时,将用于支付隐私计算的数字资产存入所述智能合约,并且向所述智能合约发送预设信息。
在请求阶段,甲方在区块链上看到乙方发布的数据信息,确认无误后,如决定进行交易,向智能合约发起交易请求,将用于支付此次隐私计算的区块链代币存入智能合约。同时将预设信息提交至智能合约上。
步骤S140,所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算。
乙方收到甲方的请求之后,在本地的TEE部署甲方指定的,哈希值为hAlg的分析程序,获取链上信息hAlg,para,c,s,Pa并输入至分析程序中。同时将链上哈希值hData所对应的原始数据data输入至分析程序中。
在乙方本地TEE的分析程序中进行隐私计算。
步骤S150,通过所述智能合约验证所述第二用户提交的隐私计算结果。
智能合约在收到乙方提交的分析结果D和签名r之后,步骤即智能合约验证乙方提交结果的正确性。验证通过的同时完成支付过程,保证结果交付的原子性。
步骤S160,如果验证通过,则所述第二用户获取所述用于支付隐私计算的数字资产,同时所述第一用户获得所述隐私计算结果。
如果验证成功,将甲方暂存的区块链代币转入乙方地址,支付过程完成。之后甲方可从智能合约获取所需正确的分析结果D。至此,隐私计算全过程执行完毕。
从以上的描述中,可以看出,本申请实现了如下技术效果:采用通过第二用户在可信执行环境中计算原始数据的哈希值hData、公钥Pt以及所述公钥Pt的可信证明proof,并且将所述哈希值hData、所述公钥Pt以及所述可信证明proof发布至链上的智能合约,通过第一用户生成一对临时非对称秘钥,包括公钥记为Pa、私钥记为Sa的方式,通过当所述第一用户向所述智能合约发起交易请求时,将用于支付隐私计算的数字资产存入所述智能合约,并且向所述智能合约发送预设信息,达到了所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算,通过所述智能合约验证所述第二用户提交的隐私计算结果的目的,从而实现了如果验证通过,则所述第二用户获取所述用于支付隐私计算的数字资产,同时所述第一用户获得所述隐私计算结果的技术效果,进而解决了无法较好地实现隐私计算的技术问题。
作为本实施例中的优选,所述预设信息中包括:所述公钥Pa;第一用户需要第二用户执行的数据分析程序的哈希值hAlg;第一用户需求的原始数据哈希值hdata;执行数据分析程序所需的参数para;c=Enc(Pt,Sa),其表示用所述公钥Pt对私钥Sa进行加密;s=Sign(Sa,hAlg),其表示用所述私钥Sa对hAlg进行签名。
具体实施时,甲方在区块链上看到乙方发布的数据信息,确认无误后,如决定进行交易,向智能合约发起交易请求,将用于支付此次隐私计算的区块链代币存入智能合约。同时将如下信息提交至智能合约上:
公钥Pa
甲方需要乙方执行的数据分析程序的哈希值hAlg
甲方需求的原始数据哈希值hdata
执行分析程序所需的参数para,包括随机种子等
c=Enc(Pt,Sa),表示用公钥Pt对私钥Sa进行加密。
s=Sign(Sa,hAlg),表示用私钥Sa对hAlg进行签名。
作为本实施例中的优选,所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算,包括:所述第二用户在可信执行环境中,根据所述交易请求,从所述智能合约中获取所述预设信息中的所述hAlg、所述hdata、所述Pa、所述para、所述c、所述s,并输入至所述通过所述hAlg确定的数据分析程序;同时,将所述链上的哈希值hData所对应的原始数据data输入至所述数据分析程序中。
具体实施时,乙方收到甲方的请求之后,在本地的TEE部署甲方指定的,哈希值为hAlg的分析程序,获取链上信息hAlg,para,c,s,Pa并输入至分析程序中。同时将链上哈希值hData所对应的原始数据data输入至分析程序中。该步骤即将甲方提交的信息以及需求的原始数据传入可信执行环境TEE中。
作为本实施例中的优选,所述隐私计算包括:采用私钥St解密所述c还原出Sa=Dec(St,c);根据所述哈希值hAlg,验证使用Pa验证签名s的合法性;如果验证通过,则以data,para为输入执行所述数据分析程序,得到分析结果D;采用私钥Sa对hdata,para,D的联合进行签名,输出D,r,并经由所述第二用户提交至所述智能合约。
具体实施时执行阶段,在乙方本地TEE的分析程序依次执行如下计算:
计算Sa=Dec(St,c),表示用私钥St解密c还原出Sa
用TEE提供的功能获取分析程序的哈希值hAlg,验证vrfy(Pa,s,hAlg)=true,表示使用Pa验证签名s的合法性。如果验证失败则程序停止执行。
以data,para为输入执行分析程序,得到分析结果D。
计算r=Sign(Sa,hdata,para,D),表示用私钥Sa对hdata,para,D的联合进行签名。
输出D,r,并进一步由乙方提交至智能合约上。
作为本实施例中的优选,所述通过所述智能合约验证所述第二用户提交的隐私计算结果,包括:根据所述分析结果D和签名r之后,使用Pa验证签名r的合法性vrfy(Pa,r,hdata,para,D)=true。作为本实施例中的优选,所述para,D均用Pa进行加密,在需要使用时使用所述Sa解密。
智能合约在收到乙方提交的分析结果D和签名r之后,验证vrfy(Pa,r,hdata,para,D)=true,表示使用Pa验证签名r的合法性,(注:其中用到的各项变量均以在执行阶段由甲方提交)。如果验证失败则停止执行。如果验证成功,将甲方暂存的区块链代币转入乙方地址,支付过程完成。之后甲方可从智能合约获取所需正确的分析结果D。至此,隐私计算全过程执行完毕。
作为本实施例中的优选,所述第一用户的公钥Pa、私钥Sa,用于对所述预设信息或者所述隐私计算结果进行签名。
为保证额外的隐私性,可选的,上述过程中的变量para,D均可以用Pa进行加密,在需要使用时加入使用Sa解密的步骤。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本申请实施例,还提供了一种用于实施上述方法的隐私计算装置,如图2所示,该装置包括:
第一准备模块210,用于通过第二用户在可信执行环境中计算原始数据的哈希值hData、公钥Pt以及所述公钥Pt的可信证明proof,并且将所述哈希值hData、所述公钥Pt以及所述可信证明proof发布至链上的智能合约;
第二准备模块220,用于通过第一用户生成一对临时非对称秘钥,包括公钥记为Pa、私钥记为Sa;
请求模块230,用于当所述第一用户向所述智能合约发起交易请求时,将用于支付隐私计算的数字资产存入所述智能合约,并且向所述智能合约发送预设信息;
执行模块240,用于所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算;
验证模块250,用于通过所述智能合约验证所述第二用户提交的隐私计算结果;
获取模块260,用于如果验证通过后,则所述第二用户获取所述用于支付隐私计算的数字资产,同时所述第一用户获得所述隐私计算结果。
本申请实施例中的所述第一准备模块210中可信执行环境TEE所保护的内存地址段外界无法访问。但在设计时可以将可信程序的某些方法能指定为能被外界调用。TEE可以产生一对非对称秘钥,其中私钥只在TEE内部使用,公钥完全公开,同时能提供一个公钥的可信证明,证明其对应私钥确实只能在TEE内部使用。
本申请实施例中的所述第二准备模块220中乙方发布数据信息,以及生成甲方隐私计算所需秘钥。其中,甲方的秘钥的作用为之后用到的相关信息(包括输入参数,分析结果等)进行签名,保证乙方执行分析程序的正确性。
在准备阶段:(1)乙方计算原始数据的哈希值hData,可选的,乙方可以拥有多个数据,对应多个哈希值。
(2)乙方本地的TEE,产生一对非对称秘钥,私钥记为St,仅在TEE内部使用;公钥记为Pt;同时乙方能够产生一个Pt的可信证明proof,证明Pt对应的私钥确实只能在TEE内部使用。
(3)乙方将hData,Pt,proof以及数据的相关描述说明发布至区块链智能合约上。
4)甲方生成一对临时的非对称秘钥,公钥记为Pa,完全公开;私钥记为Sa,由甲方保存。
本申请实施例中的所述请求模块230中在请求阶段,甲方在区块链上看到乙方发布的数据信息,确认无误后,如决定进行交易,向智能合约发起交易请求,将用于支付此次隐私计算的区块链代币存入智能合约。同时将预设信息提交至智能合约上。
本申请实施例中的所述执行模块240中乙方收到甲方的请求之后,在本地的TEE部署甲方指定的,哈希值为hAlg的分析程序,获取链上信息hAlg,para,c,s,Pa并输入至分析程序中。同时将链上哈希值hData所对应的原始数据data输入至分析程序中。
本申请实施例中的所述验证模块250中智能合约在收到乙方提交的分析结果D和签名r之后,步骤即智能合约验证乙方提交结果的正确性。验证通过的同时完成支付过程,保证结果交付的原子性。
本申请实施例中的所述获取模块260中如果验证成功,将甲方暂存的区块链代币转入乙方地址,支付过程完成。之后甲方可从智能合约获取所需正确的分析结果D。至此,隐私计算全过程执行完毕。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
如图3所示,是根据本申请实施例的隐私计算方法的实现原理示意图,其中具体包括如下的步骤:
步骤1,准备阶段
(1)乙方计算原始数据的哈希值(也叫摘要值,通过计算给定的抗碰撞函数获得)hData(可选的,乙方可以拥有多个数据,对应多个哈希值)。
(2)乙方本地的TEE,产生一对非对称秘钥,私钥记为St,仅在TEE内部使用;公钥记为Pt;同时乙方能够产生一个Pt的可信证明proof,证明Pt对应的私钥确实只能在TEE内部使用。
(3)乙方将hData,Pt,proof以及数据的相关描述说明发布至区块链智能合约上。
(4)甲方生成一对临时的非对称秘钥,公钥记为Pa,完全公开;私钥记为Sa,由甲方保存。
该步骤即乙方发布数据信息,以及生成甲方隐私计算所需秘钥。其中,甲方的秘钥的作用为之后用到的相关信息(包括输入参数,分析结果等)进行签名,保证乙方执行分析程序的正确性。
步骤2,请求阶段。
甲方在区块链上看到乙方发布的数据信息,确认无误后,如决定进行交易,向智能合约发起交易请求,将用于支付此次隐私计算的区块链代币存入智能合约。同时将如下信息提交至智能合约上:
公钥Pa;
甲方需要乙方执行的数据分析程序的哈希值hAlg;
甲方需求的原始数据哈希值hdata;
执行分析程序所需的参数para,包括随机种子等;
c=Enc(Pt,Sa),表示用公钥Pt对私钥Sa进行加密;
s=Sign(Sa,hAlg),表示用私钥Sa对hAlg进行签名。
该步骤即甲方提交请求和相关参数,其中,对hAlg进行签名是为了保证乙方所选取的TEE分析程序的正确性。其他参数均为正确执行分析程序所必须。
步骤3,乙方收到甲方的请求之后,在本地的TEE部署甲方指定的,哈希值为hAlg的分析程序,获取链上信息hAlg,para,c,s,Pa并输入至分析程序中。同时将链上哈希值hData所对应的原始数据data输入至分析程序中。
该步骤即将甲方提交的信息以及需求的原始数据传入TEE中。该方案的数据分析程序支持的指令集更丰富,只要TEE支持的指令均能支持。TEE运行分析程序的效率更高。
步骤4,执行阶段。
在乙方本地TEE的分析程序依次执行如下模计算
计算Sa=Dec(St,c),表示用私钥St解密c还原出Sa;
用TEE提供的功能获取分析程序的哈希值hAlg,验证vrfy(Pa,s,hAlg)=true,表示使用Pa验证签名s的合法性。如果验证失败则程序停止执行;
以data,para为输入执行分析程序,得到分析结果D;
计算r=Sign(Sa,hdata,para,D),表示用私钥Sa对hdata,para,D的联合进行签名;
输出D,r,并进一步由乙方提交至智能合约上。
该步骤即乙方执行分析程序并输出结果。其中签名r的作用为保证分析结果以及各项输入的正确性。
步骤5,验证阶段。
智能合约在收到乙方提交的分析结果D和签名r之后,验证vrfy(Pa,r,hdata,para,D)=true,表示使用Pa验证签名r的合法性,(注:其中用到的各项变量均以在执行阶段由甲方提交)。如果验证失败则停止执行。如果验证成功,将甲方暂存的区块链代币转入乙方地址,支付过程完成。之后甲方可从智能合约获取所需正确的分析结果D。至此,隐私计算全过程执行完毕。
该步骤即智能合约验证乙方提交结果的正确性。验证通过的同时完成支付过程,保证结果交付的原子性。
实施过程中,甲乙双方任何一方有作恶行为都不会造成对方的隐私泄露或交付的原子性丧失。具体而言,签名s的引入和秘钥管理系统技术保证了只有甲方指定的TEE能够解密并使用Sa的值。因为这个TEE不会输出Sa,故乙方无法获得Sa用于伪造签名。而在最终验证过程需要有Sa对分析结果签名r才能通过,这个签名r只有甲方指定的TEE才能生成。故只要合约验证签名通过,D就是甲方指定的TEE执行分析程序的结果,即为甲方所需求的结果。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种隐私计算方法,其特征在于,所述方法包括:
通过第二用户在可信执行环境中计算原始数据的哈希值hData、公钥Pt以及所述公钥Pt的可信证明proof,并且将所述哈希值hData、所述公钥Pt以及所述可信证明proof发布至链上的智能合约;
通过第一用户生成一对临时非对称秘钥,包括公钥记为Pa、私钥记为Sa;
当所述第一用户向所述智能合约发起交易请求时,将用于支付隐私计算的数字资产存入所述智能合约,并且向所述智能合约发送预设信息;
所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算;
通过所述智能合约验证所述第二用户提交的隐私计算结果;
如果验证通过,则所述第二用户获取所述用于支付隐私计算的数字资产,同时所述第一用户获得所述隐私计算结果。
2.根据权利要求1所述的方法,其特征在于,所述预设信息中包括:
所述公钥Pa;
第一用户需要第二用户执行的数据分析程序的哈希值hAlg;
第一用户需求的原始数据哈希值hdata;
执行数据分析程序所需的参数para;
c=Enc(Pt,Sa),其表示用所述公钥Pt对私钥Sa进行加密;
s=Sign(Sa,hAlg),其表示用所述私钥Sa对hAlg进行签名。
3.根据权利要求2所述的方法,其特征在于,所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算,包括:
所述第二用户在可信执行环境中,根据所述交易请求,从所述智能合约中获取所述预设信息中的所述hAlg、所述hdata、所述Pa、所述para、所述c、所述s,并输入至所述通过所述hAlg确定的数据分析程序;
同时,将所述链上的哈希值hData所对应的原始数据data输入至所述数据分析程序中。
4.根据权利要求2所述的方法,其特征在于,所述隐私计算包括:
采用私钥St解密所述c还原出Sa=Dec(St,c);
根据所述哈希值hAlg,验证使用Pa验证签名s的合法性;
如果验证通过,则以data,para为输入执行所述数据分析程序,得到分析结果D;
采用私钥Sa对hdata,para,D的联合进行签名,输出D,r,并经由所述第二用户提交至所述智能合约。
5.根据权利要求4所述的方法,其特征在于,所述通过所述智能合约验证所述第二用户提交的隐私计算结果,包括:
根据所述分析结果D和签名r之后,使用Pa验证签名r的合法性vrfy(Pa,r,hdata,para,D)=true。
6.根据权利要求4所述的方法,其特征在于,所述para,D均用Pa进行加密,在需要使用时使用所述Sa解密。
7.根据权利要求1所述的方法,其特征在于,所述第一用户的公钥Pa、私钥Sa,用于对所述预设信息或者所述隐私计算结果进行签名。
8.一种隐私计算装置,其特征在于,所述装置包括:
第一准备模块,用于通过第二用户在可信执行环境中计算原始数据的哈希值hData、公钥Pt以及所述公钥Pt的可信证明proof,并且将所述哈希值hData、所述公钥Pt以及所述可信证明proof发布至链上的智能合约;
第二准备模块,用于通过第一用户生成一对临时非对称秘钥,包括公钥记为Pa、私钥记为Sa;
请求模块,用于当所述第一用户向所述智能合约发起交易请求时,将用于支付隐私计算的数字资产存入所述智能合约,并且向所述智能合约发送预设信息;
执行模块,用于所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算;
验证模块,用于通过所述智能合约验证所述第二用户提交的隐私计算结果;
获取模块,用于如果验证通过后,则所述第二用户获取所述用于支付隐私计算的数字资产,同时所述第一用户获得所述隐私计算结果。
9.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行所述权利要求1~7之任一所述方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行所述权利要求1~7之任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310119162.6A CN115952548A (zh) | 2023-01-31 | 2023-01-31 | 隐私计算方法以及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310119162.6A CN115952548A (zh) | 2023-01-31 | 2023-01-31 | 隐私计算方法以及装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115952548A true CN115952548A (zh) | 2023-04-11 |
Family
ID=87298007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310119162.6A Pending CN115952548A (zh) | 2023-01-31 | 2023-01-31 | 隐私计算方法以及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115952548A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116629864A (zh) * | 2023-04-27 | 2023-08-22 | 北京熠智科技有限公司 | 一种隐私计算场景下api服务收费方法、平台及存储介质 |
-
2023
- 2023-01-31 CN CN202310119162.6A patent/CN115952548A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116629864A (zh) * | 2023-04-27 | 2023-08-22 | 北京熠智科技有限公司 | 一种隐私计算场景下api服务收费方法、平台及存储介质 |
CN116629864B (zh) * | 2023-04-27 | 2024-04-16 | 北京熠智科技有限公司 | 一种隐私计算场景下api服务收费方法、平台及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108418680B (zh) | 一种基于安全多方计算技术的区块链密钥恢复方法、介质 | |
TWI701573B (zh) | 基於區塊鏈的資料存證方法及裝置、電子設備 | |
JP7544357B2 (ja) | セキュア・ダイナミック閾値署名スキームのための方法、記憶媒体及び電子デバイス | |
US10685099B2 (en) | System and method for mapping decentralized identifiers to real-world entities | |
US20190295069A1 (en) | Systems and methods for integrating cryptocurrency wallet identifiers with digital certificates | |
CN107742212B (zh) | 基于区块链的资产验证方法、装置及系统 | |
TW202018557A (zh) | 基於區塊鏈的資料存證方法及裝置、電子設備 | |
CN110677376B (zh) | 认证方法、相关设备和系统及计算机可读存储介质 | |
CN106341232B (zh) | 一种基于口令的匿名实体鉴别方法 | |
CN110197082A (zh) | 数据处理方法、数据处理装置和计算机系统 | |
CN109617699A (zh) | 一种密钥生成方法、区块链网络服务平台及存储介质 | |
CN109861829B (zh) | 支持动态更新的云数据公正审计系统及其审计方法 | |
CN110188550A (zh) | 一种区块链的数据验证方法和装置 | |
CN113162768A (zh) | 一种基于区块链的智能物联网设备认证方法及系统 | |
CN109861956B (zh) | 基于状态通道的数据验证系统、方法、装置及设备 | |
CN109361508A (zh) | 数据传输方法、电子设备及计算机可读存储介质 | |
CN110737915B (zh) | 基于隐式证书的抗量子计算匿名身份识别方法及系统 | |
CN109981650B (zh) | 区块链中通证的转移方法及系统 | |
CN112470423A (zh) | 用于资产混合的计算机实现的系统和方法 | |
CN109361512A (zh) | 数据传输方法 | |
CN115952548A (zh) | 隐私计算方法以及装置、电子设备、存储介质 | |
CN115147224A (zh) | 基于联盟链的交易数据共享方法及装置 | |
JP2002529778A (ja) | 共有無作為性の分散暗号化への組み込み | |
CN118133311A (zh) | 一种基于改进群签名的联邦学习隐私保护方法 | |
CN110276693A (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 |