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

基于区块链的隐私计算方法、系统、设备和介质与流程

2023-01-02 12:17:41 来源:中国专利 TAG:


1.本发明涉及隐私计算技术领域,尤其涉及一种基于区块链的隐私计算方法、系统、设备和介质。


背景技术:

2.随着大数据技术的发展,对来自多个参与者的数据进行综合的运算处理变得越来越常见。在多方之间数据共享场景下,为了避免数据隐私外泄,通过隐私计算实现“数据可用不可见”。隐私计算又称隐私保护计算,是一种保护数据隐私的计算模式,包括多方安全计算、联邦学习、可信执行环境和多方中介计算。
3.程序代码是数据的一种特征形态。传统技术下,通过对程序代码进行数字签名,确保验证通过的程序代码与最终运行的程序代码完全一致。但是,由于数字签名的不可篡改性,程序代码一旦发生动态更新,无法确保更新后的程序代码的合法性和安全性。


技术实现要素:

4.本发明要解决的技术问题是为了克服现有技术中当数据持有者发布的程序代码修改导致加密数据发生更新时,在隐私计算中采用数字签名方式无法保证更新后的加密数据的合法性和安全性的缺陷,提供一种基于区块链的隐私计算方法、系统、设备和介质。
5.本发明是通过下述技术方案来解决上述技术问题:第一方面,本发明提供一种基于区块链的隐私计算方法,包括:响应于计算发起方发起的计算请求,获取计算第三方设置在可信执行环境中的tee运算程序;所述tee运算程序从设置在区块链上的智能合约中获取加密数据;所述加密数据是由相应的数据持有者采用第一公钥进行加密的,所述第一公钥根据所述tee运算程序的第一私钥产生且存储于所述智能合约,所述数据持有者为所述智能合约中的有效用户;所述计算第三方根据所述tee运算程序和所述加密数据进行隐私计算。
6.较佳地,所述隐私计算方法通过以下步骤生成所述加密数据,包括:所述数据持有者将明文和所述第一公钥发送至所述智能合约中其余的有效用户;所述数据持有者利用所述第一公钥对所述明文进行加密,生成密文,并利用持有的第二私钥对所述密文进行数字签名,生成签名数据,将所述密文、所述签名数据和与所述第二私钥对应的第二公钥存储于所述智能合约;其余所述有效用户根据所述明文和所述第一公钥对所述密文进行投票审核,并将投票结果存储于所述智能合约;在投票审核通过时,将所述密文作为所述加密数据。
7.较佳地,所述计算第三方根据所述tee运算程序和所述加密数据进行隐私计算的步骤,包括:所述tee运算程序对所述加密数据的合法性进行检验,若通过,则所述tee运算程
序利用所述第一私钥对所述加密数据进行解密,生成目标数据;所述计算第三方根据所述目标数据和所述tee运算程序进行隐私计算。
8.较佳地,所述隐私计算方法还包括:可信执行环境中的tee运算程序根据第一私钥产生相应的第一公钥;计算第三方将所述第一公钥存储于设置在区块链上的智能合约;所述获取计算第三方设置在可信执行环境中的tee运算程序的步骤,包括:根据所述智能合约中存储的所述第一公钥获取所述tee运算程序。
9.第二方面,本发明提供一种基于区块链的隐私计算系统,包括:程序获取模块,用于响应于计算发起方发起的计算请求,获取计算第三方设置在可信执行环境中的tee运算程序;数据获取模块,用于所述tee运算程序从设置在区块链上的智能合约中获取加密数据;所述加密数据是由相应的数据持有者采用第一公钥进行加密的,所述第一公钥根据所述tee运算程序的第一私钥产生且存储于所述智能合约,所述数据持有者为所述智能合约中的有效用户;计算模块,用于所述计算第三方根据所述tee运算程序和所述加密数据进行隐私计算。
10.较佳地,所述隐私计算系统通过以下模块生成所述加密数据,包括:发送模块,用于所述数据持有者将明文和所述第一公钥发送至所述智能合约中其余的有效用户;加密模块,用于所述数据持有者利用所述第一公钥对所述明文进行加密,生成密文,并利用持有的第二私钥对所述密文进行数字签名,生成签名数据,将所述密文、所述签名数据和与所述第二私钥对应的第二公钥存储于所述智能合约;审核模块,用于其余所述有效用户根据所述明文和所述第一公钥对所述密文进行投票审核,并将投票结果存储于所述智能合约;在投票审核通过时,则调用生成模块;所述生成模块,用于将所述密文作为所述加密数据。
11.较佳地,所述计算模块,包括:检验单元,用于所述tee运算程序对所述加密数据的合法性进行检验;若通过,则调用解密单元;所述解密单元,用于所述tee运算程序利用所述第一私钥对所述加密数据进行解密,生成目标数据;计算单元,用于所述计算第三方根据所述目标数据和所述tee运算程序进行隐私计算。
12.较佳地,所述隐私计算系统还包括:公钥生成模块,用于,可信执行环境中的tee运算程序根据第一私钥产生相应的公钥;存储模块,用于计算第三方将所述第一公钥存储于设置在区块链上的智能合约;所述程序获取模块具体用于:根据所述智能合约中存储的所述第一公钥获取所述tee运算程序。
13.第三方面,本发明提供一种电子设备,包括存储器以及与所述存储器连接的处理
器,所述处理器执行存储在所述存储器上的计算机程序时实现上述的基于区块链的隐私计算方法。
14.第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于区块链的隐私计算方法。
15.本发明的积极进步效果在于:本发明提供一种基于区块链的隐私计算方法、系统、设备和介质,该隐私计算方法基于可信执行环境中的tee运算程序和区块链中的智能合约进行隐私计算,避免程序代码修改导致加密数据发生更新时,无法保证更新后的加密数据的合法性;利用tee运算程序的第一公钥实现数据加密和区块链中的智能合约的强执行性特征实现数据发布,保证了加密数据计算的隐蔽性和加密数据的安全性;利用区块链中的智能合约的不可篡改性保证了加密数据强一致性和有效性,和对加密数据的合法性的审核能力。
附图说明
16.图1为本发明实施例1的基于区块链的隐私计算方法的第一流程图。
17.图2为本发明实施例1的基于区块链的隐私计算方法的步骤s13的流程图。
18.图3为本发明实施例1的基于区块链的隐私计算方法中生成加密数据的流程图。
19.图4为本发明实施例1的基于区块链的隐私计算方法的第二流程图。
20.图5为本发明实施例2的基于区块链的隐私计算系统的第一模块示意图。
21.图6为本发明实施例2的基于区块链的隐私计算系统的第二模块示意图。
22.图7为本发明实施例3的电子设备的结构框图。
具体实施方式
23.下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
24.实施例1如图1所示,本实施例具体提供了一种基于区块链的隐私计算方法,包括:s11.响应于计算发起方发起的计算请求,获取计算第三方设置在可信执行环境中的tee运算程序;s12.tee运算程序从设置在区块链上的智能合约中获取加密数据;加密数据是由相应的数据持有者采用第一公钥进行加密的,第一公钥根据tee运算程序的第一私钥产生且存储于智能合约,数据持有者为智能合约中的有效用户;s13.计算第三方根据tee运算程序和加密数据进行隐私计算。
25.本实施例中,基于intel推出的sgx(software guard extensions,指令集扩展)的tee运算程序,该部分为本实施例提供基础硬件运行环境。区块链可以分为三种类型:公有链(public blockchain)、私有链(private blockchain)和联盟链(consortium blockchain)。无论是公有链、私有链还是联盟链,都可以提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以以规定的方式在区块链网络中每个节点独立的执行,当交易完成后,区块链上保存了无法篡改、不会丢失的交易凭证。智能合约的地址与区域链的域名(例如,以太坊公链的ens合约里的域名)绑定,将
该域名作为tee运算程序的配置信息。
26.在步骤s11中,首先检测是否接收到计算发起方发出的初次或者新的隐私计算请求时,若检测接收到,对该计算请求进行响应,查找到tee运行程序。tee运算程序提供了一种隔离的执行环境,代码和数据可以在tee运算程序中运行,且运行过程中可以保证不被外部操作系统所干扰,从而保证了tee运算程序中的数据的隐私性和安全性。
27.在一种可能实现的方案中,可以根据智能合约中存储的第一公钥获取tee运算程序。
28.在步骤s12中,数据持有者为区块链上的智能合约的用户列表中的有效用户,预先部署一台运行区块链节点的服务器作为区块链的网关,并对外开放目标端口,允许所有有效用户通过目标端口上传加密数据。当数据持有者需要对明文进行加密生成密文时,通过目标端口从智能合约上获取相应的第一公钥,以保证明文的隐私性和安全性。
29.tee运算程序通过相应的网关访问到区块链上的智能合约,利用自身的第一私钥配对产生的第一公钥为索引,从智能合约上搜索到加密数据。利用第一私钥所产生的第一公钥不能导致反向地推导出第一私钥,以避免智能合约直接获取明文而造成数据外泄的风险。
30.需要说明的是,本实施例中的智能合约可以提供以下基本功能:第一初始化管理员账号并负责审批第一个普通账号;第二允许当前有效账号投票决定是否允许新账号加入当前账号列表以及是否删除某个已经存在的账号;第三接受并存储tee运算程序发送的公钥的明文以及相关信息;第四设置在区块链上的智能合约的用户列表中的有效用户可以对任何的公钥所代表的tee运算程序发表意见,且能被所有的其他有效用户所识别。其他的有效用户可以通过智能合约所提供的投票接口进行投票,从而决定以公钥为索引的tee运算程序存储于智能合约上的相关信息的增删改。
31.在步骤s13中,经过第一公钥加密后生成的加密数据,只有与其配对的第一私钥才可以解密,所以tee运算程序只有利用自身的第一私钥对加密数据进行解密后,才能获取目标数据。计算第三方根据解密得到的目标数据和tee运算程序执行隐私计算,进而得到运算结果。
32.在一实施例中,如图2所示,步骤s13具体包括:s131.tee运算程序对加密数据的合法性进行检验;若通过,则执行s132;s132.tee运算程序利用第一私钥对加密数据进行解密,生成目标数据;s133.计算第三方根据目标数据和tee运算程序进行隐私计算。
33.具体地,tee运算程序判断加密数据是否经过智能合约投票通过,若投票通过,则对加密数据进行解密;若投票不通过,则进行告警提示。该方式确保了加密数据的有效性和合法性,也确保了智能合约上存储的加密数据和数据持有者发送的密文的相同性。
34.在一实施例中,参见图3所示,该隐私计算方法通过以下步骤生成加密数据,包括:s1.数据持有者将明文和第一公钥发送至智能合约中其余的有效用户;s2.数据持有者利用第一公钥对明文进行加密,生成密文,并利用持有的第二私钥对密文进行数字签名,生成签名数据,将密文、签名数据和与第二私钥对应的第二公钥存储于智能合约;s3.其余有效用户根据明文和第一公钥对密文进行投票审核,并将投票结果存储
blockchain)。无论是公有链、私有链还是联盟链,都可以提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以以规定的方式在区块链网络中每个节点独立的执行,当交易完成后,区块链上保存了无法篡改、不会丢失的交易凭证。智能合约的地址与区域链的域名(例如,以太坊公链的ens合约里的域名)绑定,将该域名作为tee运算程序的配置信息。
43.程序获取模块210首先检测是否接收到计算发起方发出的初次或者新的隐私计算请求时,若检测接收到,对该计算请求进行响应,查找到tee运行程序。tee运算程序提供了一种隔离的执行环境,代码和数据可以在tee运算程序中运行,且运行过程中可以保证不被外部操作系统所干扰,从而保证了tee运算程序中的数据的隐私性和安全性。
44.在一种可能实现的方案中,可以根据智能合约中存储的第一公钥获取tee运算程序。
45.数据持有者为区块链上的智能合约的用户列表中的有效用户,预先部署一台运行区块链节点的服务器作为区块链的网关,并对外开放目标端口,允许所有有效用户通过目标端口上传加密数据。当数据持有者需要对明文进行加密生成密文时,通过目标端口从智能合约上获取相应的第一公钥,以保证明文的隐私性和安全性。
46.tee运算程序通过相应的网关访问到区块链上的智能合约,利用自身的第一私钥配对产生的第一公钥为索引,数据获取模块220从智能合约上搜索到加密数据。利用第一私钥所产生的第一公钥不能导致反向地推导出第一私钥,以避免智能合约直接获取明文而造成数据外泄的风险。
47.需要说明的是,本实施例中的智能合约可以提供以下基本功能:第一初始化管理员账号并负责审批第一个普通账号;第二允许当前有效账号投票决定是否允许新账号加入当前账号列表以及是否删除某个已经存在的账号;第三接受并存储tee运算程序发送的公钥的明文以及相关信息;第四设置在区块链上的智能合约的用户列表中的有效用户可以对任何的公钥所代表的tee运算程序发表意见,且能被所有的其他有效用户所识别。其他的有效用户可以通过智能合约所提供的投票接口进行投票,从而决定以公钥为索引的tee运算程序存储于智能合约上的相关信息的增删改。
48.经过第一公钥加密后生成的加密数据,只有与其配对的第一私钥才可以解密,所以tee运算程序只有利用自身的第一私钥对加密数据进行解密后,才能获取目标数据。计算模块230中计算第三方根据解密得到的目标数据和tee运算程序执行隐私计算,进而得到运算结果。
49.在一实施例中,如图5所示,计算模块230具体包括:检验单元231、解密单元232和计算单元233。
50.检验单元231,tee运算程序对加密数据的合法性进行检验;若通过,则调用解密单元232;解密单元232,tee运算程序利用第一私钥对加密数据进行解密,生成目标数据;计算单元233,计算第三方根据目标数据和tee运算程序进行隐私计算。
51.具体地,检验单元231通过tee运算程序判断加密数据是否经过智能合约的投票通过,若投票通过,则解密单元232对加密数据进行解密,若投票不通过,则进行告警提示。该方式确保了加密数据的有效性和合法性,也确保了智能合约上存储的加密数据和数据持有
者发送的密文的相同性。
52.在一实施例中,该隐私计算系统通过以下模块生成加密数据,包括:发送模块240、加密模块250、审核模块260和生成模块270。
53.发送模块240,数据持有者将明文和第一公钥发送至智能合约中其余的有效用户;加密模块250,数据持有者利用第一公钥对明文进行加密,生成密文,并利用持有的第二私钥对密文进行数字签名,生成签名数据,将密文、签名数据和与第二私钥对应的第二公钥存储于智能合约;审核模块260,其余有效用户根据明文和第一公钥对密文进行投票审核,并将投票结果存储于智能合约;生成模块270,在投票审核通过时,将密文作为加密数据。
54.具体地,每个有效用户接收到明文和第一公钥后,利用第一公钥对明文进行加密后生成未审核的密文,审核模块260比对智能合约上存储的密文与未审核的密文是否相同。若相同,则对明文进行投票审核,若每个有效用户均投票通过,则直接将智能合约中的密文作为加密数据,从而保证了加密数据的合法性。若不相同,则审核模块260判定加密数据为无效数据且不合法。该方式确保计算第三方最终基于tee运算程序运行的目标数据和数据持有者待上传的明文保持一致,避免了数据隐私外泄的风险。
55.在一实施例中,如图6所示,该隐私计算系统还包括:公钥生成模块201和存储模块202。
56.公钥生成模块201,可信执行环境中的tee运算程序根据第一私钥产生相应的第一公钥;存储模块202,计算第三方将第一公钥存储于设置在区块链上的智能合约。
57.公钥生成模块201中tee运算程序生成一对公私钥,且公钥、私钥一旦配对成功,两者的配对关系不可更改。为了保证安全性,tee运算程序对外输出第一公钥,加密保存第一私钥且永不对外输出第一私钥的明文。换言之,利用该第一公钥加密的数据只有与其配对的第一私钥可以解密,第一私钥加密的数据也只有与其配对的第一公钥可以解密。
58.tee运算程序通过外部环境变量获取区块链网关的访问地址,利用预置的区块链sdk(software development kit,软件开发工具包),结合配置文件里的智能合约的域名,通过该网关访问部署完成的智能合约。存储模块202中计算第三方将tee运算程序所产生的第一公钥发送给智能合约,智能合约负责保存该第一公钥,以方便数据持有者需要利用第一公钥对明文进行加密生成加密数据时,从智能合约上获取到该第一公钥。
59.本实施例中,提供一种基于区块链的隐私计算系统,该系统基于可信执行环境中的tee运算程序和区块链中的智能合约进行隐私计算,避免程序代码修改导致加密数据发生更新时,无法保证更新后的加密数据的合法性;利用tee运算程序的第一公钥实现数据加密和区块链中的智能合约的强执行性特征实现数据发布,保证了加密数据计算的隐蔽性和加密数据的合法性;利用区块链中的智能合约的不可篡改性保证了加密数据强一致性和有效性,和对加密数据的合法性的审核能力。
60.实施例3参见图7所示,本实施例提供了一种电子设备30,包括处理器31、存储器32及存储在存储器32上并可在处理器31上运行的计算机程序,处理器31执行程序时实现实施例1中
的基于区块链的隐私计算方法。图7显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
61.电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
62.总线33包括数据总线、地址总线和控制总线。
63.存储器32可以包括易失性存储器,例如随机存取存储器(ram)321和/或高速缓存存储器322,还可以进一步包括只读存储器(rom)323。
64.存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
65.处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1中的基于区块链的隐私计算方法。
66.电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器36通过总线33与模型生成的设备30的其它模块通信。可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
67.应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
68.实施例6本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1中的基于区块链的隐私计算方法的步骤。
69.其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
70.在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1中的基于区块链的隐私计算方法的步骤。
71.其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
72.虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
再多了解一些

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

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

相关文献