掌桥专利:专业的专利平台
掌桥专利
首页

隐私计算方法以及装置、电子设备、存储介质

文献发布时间:2023-06-19 19:18:24


隐私计算方法以及装置、电子设备、存储介质

技术领域

本申请涉及软件工程技术领域,具体而言,涉及一种隐私计算方法以及装置、电子设备、存储介质。

背景技术

可信执行环境(TEE),包括intel的SGX,AMD的SEV等,能保证程序在受保护的环境下运行,实现代码无法被窜改,中间变量无法被获取这两个基本目标。其设计原理为在CPU电路这一层加入了对受保护内存访问的权限判断。

传统的隐私计算场景中存在着如下的问题:假设有一个数据提供方(乙方)其拥有原始数据;以及一个数据分析方(甲方),其需求乙方的原始数据在某特定分析程序上的执行结果。隐私计算的场景要求乙方的原始数据不会发生泄露,甲方仅能获得原始数据在分析程序上的执行结果,从而有效的保护了隐私。

针对相关技术中无法较好地实现隐私计算的问题,目前尚未提出有效的解决方案。

发明内容

本申请的主要目的在于提供一种隐私计算方法以及装置、电子设备、存储介质,基于区块链和可信执行环境解决隐私计算的问题。

为了实现上述目的,根据本申请的一个方面,提供了一种隐私计算方法。

根据本申请的隐私计算方法包括:

通过第二用户在可信执行环境中计算原始数据的哈希值h

通过第一用户生成一对临时非对称秘钥,包括公钥记为P

当所述第一用户向所述智能合约发起交易请求时,将用于支付隐私计算的数字资产存入所述智能合约,并且向所述智能合约发送预设信息;

所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算;

通过所述智能合约验证所述第二用户提交的隐私计算结果;

如果验证通过,则所述第二用户获取所述用于支付隐私计算的数字资产,同时所述第一用户获得所述隐私计算结果。

进一步地,所述预设信息中包括:

所述公钥P

第一用户需要第二用户执行的数据分析程序的哈希值h

第一用户需求的原始数据哈希值h

执行数据分析程序所需的参数para;

c=Enc(P

s=Sign(S

进一步地,所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算,包括:

所述第二用户在可信执行环境中,根据所述交易请求,从所述智能合约中获取所述预设信息中的所述h

同时,将所述链上的哈希值h

进一步地,所述隐私计算包括:

采用私钥S

根据所述哈希值h

如果验证通过,则以data,para为输入执行所述数据分析程序,得到分析结果D;

采用私钥S

进一步地,所述通过所述智能合约验证所述第二用户提交的隐私计算结果,包括:

根据所述分析结果D和签名r之后,使用P

进一步地,所述para,D均用P

进一步地,所述第一用户的公钥P

为了实现上述目的,根据本申请的另一方面,提供了一种隐私计算装置。

根据本申请的隐私计算装置包括:

第一准备模块,用于通过第二用户在可信执行环境中计算原始数据的哈希值h

第二准备模块,用于通过第一用户生成一对临时非对称秘钥,包括公钥记为P

请求模块,用于当所述第一用户向所述智能合约发起交易请求时,将用于支付隐私计算的数字资产存入所述智能合约,并且向所述智能合约发送预设信息;

执行模块,用于所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算;

验证模块,用于通过所述智能合约验证所述第二用户提交的隐私计算结果;

获取模块,用于如果验证通过后,则所述第二用户获取所述用于支付隐私计算的数字资产,同时所述第一用户获得所述隐私计算结果。

根据本申请的又一个方面,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

根据本申请的再一个方面,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

在本申请实施例中,采用通过第二用户在可信执行环境中计算原始数据的哈希值h

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的隐私计算方法的流程示意图;

图2是根据本申请实施例的隐私计算装置的结构示意图;

图3是根据本申请实施例的隐私计算方法的实现原理示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。

并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。

此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。

为了解决背景技术中的相关缺陷,本发明采用的解决方案为“数据不出域”,即乙方在其本地执行分析程序,且除了最后交付的分析结果之外,任何其他数据没有离开过其本地。所以,仍要解决的问题是保证乙方所执行的分析程序的正确性,包括乙方没有擅自篡改程序代码/替换原始数据/替换分析结果等等。同时还需要保证结果交付的原子性,即乙方能收到甲方的支付款项当且仅当甲方收到了正确的分析结果。

具体而言,可采用可信执行环境和区块链技术,给出一套去中心化的隐私计算解决方案。简单来说,乙方在其本地的可信执行环境中执行特定分析程序,得到的分析结果通过区块链智能合约进行验证和交付。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

如图1所示,该方法包括如下的步骤S110至步骤S160:

步骤S110,通过第二用户在可信执行环境中计算原始数据的哈希值h

可信执行环境TEE所保护的内存地址段外界无法访问。但在设计时可以将可信程序的某些方法能指定为能被外界调用。TEE可以产生一对非对称秘钥,其中私钥只在TEE内部使用,公钥完全公开,同时能提供一个公钥的可信证明,证明其对应私钥确实只能在TEE内部使用。

步骤S120,通过第一用户生成一对临时非对称秘钥,包括公钥记为P

乙方发布数据信息,以及生成甲方隐私计算所需秘钥。其中,甲方的秘钥的作用为之后用到的相关信息(包括输入参数,分析结果等)进行签名,保证乙方执行分析程序的正确性。

在准备阶段:(1)乙方计算原始数据的哈希值h

(2)乙方本地的TEE,产生一对非对称秘钥,私钥记为S

(3)乙方将h

4)甲方生成一对临时的非对称秘钥,公钥记为P

步骤S130,当所述第一用户向所述智能合约发起交易请求时,将用于支付隐私计算的数字资产存入所述智能合约,并且向所述智能合约发送预设信息。

在请求阶段,甲方在区块链上看到乙方发布的数据信息,确认无误后,如决定进行交易,向智能合约发起交易请求,将用于支付此次隐私计算的区块链代币存入智能合约。同时将预设信息提交至智能合约上。

步骤S140,所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算。

乙方收到甲方的请求之后,在本地的TEE部署甲方指定的,哈希值为h

在乙方本地TEE的分析程序中进行隐私计算。

步骤S150,通过所述智能合约验证所述第二用户提交的隐私计算结果。

智能合约在收到乙方提交的分析结果D和签名r之后,步骤即智能合约验证乙方提交结果的正确性。验证通过的同时完成支付过程,保证结果交付的原子性。

步骤S160,如果验证通过,则所述第二用户获取所述用于支付隐私计算的数字资产,同时所述第一用户获得所述隐私计算结果。

如果验证成功,将甲方暂存的区块链代币转入乙方地址,支付过程完成。之后甲方可从智能合约获取所需正确的分析结果D。至此,隐私计算全过程执行完毕。

从以上的描述中,可以看出,本申请实现了如下技术效果:采用通过第二用户在可信执行环境中计算原始数据的哈希值h

作为本实施例中的优选,所述预设信息中包括:所述公钥P

具体实施时,甲方在区块链上看到乙方发布的数据信息,确认无误后,如决定进行交易,向智能合约发起交易请求,将用于支付此次隐私计算的区块链代币存入智能合约。同时将如下信息提交至智能合约上:

公钥P

甲方需要乙方执行的数据分析程序的哈希值h

甲方需求的原始数据哈希值h

执行分析程序所需的参数para,包括随机种子等

c=Enc(P

s=Sign(S

作为本实施例中的优选,所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算,包括:所述第二用户在可信执行环境中,根据所述交易请求,从所述智能合约中获取所述预设信息中的所述h

具体实施时,乙方收到甲方的请求之后,在本地的TEE部署甲方指定的,哈希值为h

作为本实施例中的优选,所述隐私计算包括:采用私钥S

具体实施时执行阶段,在乙方本地TEE的分析程序依次执行如下计算:

计算S

用TEE提供的功能获取分析程序的哈希值h

以data,para为输入执行分析程序,得到分析结果D。

计算r=Sign(S

输出D,r,并进一步由乙方提交至智能合约上。

作为本实施例中的优选,所述通过所述智能合约验证所述第二用户提交的隐私计算结果,包括:根据所述分析结果D和签名r之后,使用P

智能合约在收到乙方提交的分析结果D和签名r之后,验证vrfy(P

作为本实施例中的优选,所述第一用户的公钥P

为保证额外的隐私性,可选的,上述过程中的变量para,D均可以用P

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

根据本申请实施例,还提供了一种用于实施上述方法的隐私计算装置,如图2所示,该装置包括:

第一准备模块210,用于通过第二用户在可信执行环境中计算原始数据的哈希值h

第二准备模块220,用于通过第一用户生成一对临时非对称秘钥,包括公钥记为P

请求模块230,用于当所述第一用户向所述智能合约发起交易请求时,将用于支付隐私计算的数字资产存入所述智能合约,并且向所述智能合约发送预设信息;

执行模块240,用于所述第二用户在可信执行环境中根据所述交易请求,从所述智能合约中获取所述预设信息,并进行隐私计算;

验证模块250,用于通过所述智能合约验证所述第二用户提交的隐私计算结果;

获取模块260,用于如果验证通过后,则所述第二用户获取所述用于支付隐私计算的数字资产,同时所述第一用户获得所述隐私计算结果。

本申请实施例中的所述第一准备模块210中可信执行环境TEE所保护的内存地址段外界无法访问。但在设计时可以将可信程序的某些方法能指定为能被外界调用。TEE可以产生一对非对称秘钥,其中私钥只在TEE内部使用,公钥完全公开,同时能提供一个公钥的可信证明,证明其对应私钥确实只能在TEE内部使用。

本申请实施例中的所述第二准备模块220中乙方发布数据信息,以及生成甲方隐私计算所需秘钥。其中,甲方的秘钥的作用为之后用到的相关信息(包括输入参数,分析结果等)进行签名,保证乙方执行分析程序的正确性。

在准备阶段:(1)乙方计算原始数据的哈希值h

(2)乙方本地的TEE,产生一对非对称秘钥,私钥记为S

(3)乙方将h

4)甲方生成一对临时的非对称秘钥,公钥记为P

本申请实施例中的所述请求模块230中在请求阶段,甲方在区块链上看到乙方发布的数据信息,确认无误后,如决定进行交易,向智能合约发起交易请求,将用于支付此次隐私计算的区块链代币存入智能合约。同时将预设信息提交至智能合约上。

本申请实施例中的所述执行模块240中乙方收到甲方的请求之后,在本地的TEE部署甲方指定的,哈希值为h

本申请实施例中的所述验证模块250中智能合约在收到乙方提交的分析结果D和签名r之后,步骤即智能合约验证乙方提交结果的正确性。验证通过的同时完成支付过程,保证结果交付的原子性。

本申请实施例中的所述获取模块260中如果验证成功,将甲方暂存的区块链代币转入乙方地址,支付过程完成。之后甲方可从智能合约获取所需正确的分析结果D。至此,隐私计算全过程执行完毕。

显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。

如图3所示,是根据本申请实施例的隐私计算方法的实现原理示意图,其中具体包括如下的步骤:

步骤1,准备阶段

(1)乙方计算原始数据的哈希值(也叫摘要值,通过计算给定的抗碰撞函数获得)h

(2)乙方本地的TEE,产生一对非对称秘钥,私钥记为S

(3)乙方将h

(4)甲方生成一对临时的非对称秘钥,公钥记为P

该步骤即乙方发布数据信息,以及生成甲方隐私计算所需秘钥。其中,甲方的秘钥的作用为之后用到的相关信息(包括输入参数,分析结果等)进行签名,保证乙方执行分析程序的正确性。

步骤2,请求阶段。

甲方在区块链上看到乙方发布的数据信息,确认无误后,如决定进行交易,向智能合约发起交易请求,将用于支付此次隐私计算的区块链代币存入智能合约。同时将如下信息提交至智能合约上:

公钥P

甲方需要乙方执行的数据分析程序的哈希值h

甲方需求的原始数据哈希值h

执行分析程序所需的参数para,包括随机种子等;

c=Enc(P

s=Sign(S

该步骤即甲方提交请求和相关参数,其中,对h

步骤3,乙方收到甲方的请求之后,在本地的TEE部署甲方指定的,哈希值为h

该步骤即将甲方提交的信息以及需求的原始数据传入TEE中。该方案的数据分析程序支持的指令集更丰富,只要TEE支持的指令均能支持。TEE运行分析程序的效率更高。

步骤4,执行阶段。

在乙方本地TEE的分析程序依次执行如下模计算

计算S

用TEE提供的功能获取分析程序的哈希值h

以data,para为输入执行分析程序,得到分析结果D;

计算r=Sign(S

输出D,r,并进一步由乙方提交至智能合约上。

该步骤即乙方执行分析程序并输出结果。其中签名r的作用为保证分析结果以及各项输入的正确性。

步骤5,验证阶段。

智能合约在收到乙方提交的分析结果D和签名r之后,验证vrfy(P

该步骤即智能合约验证乙方提交结果的正确性。验证通过的同时完成支付过程,保证结果交付的原子性。

实施过程中,甲乙双方任何一方有作恶行为都不会造成对方的隐私泄露或交付的原子性丧失。具体而言,签名s的引入和秘钥管理系统技术保证了只有甲方指定的TEE能够解密并使用S

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

技术分类

06120115865911