利索能及
我要发布
收藏
专利号: 2021109332411
申请人: 深圳众享互联科技有限公司
专利类型:发明专利
专利状态:授权未缴费
更新日期:2024-12-10
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种实现合约隐私的数据处理与存储方法,其特征在于:该合约被分成两个部分,一部分是不需要隐私计算的模块,直接送入智能合约虚拟机EVM中执行,数据以明文的形式存储入数据库;另一部分是需要隐私计算的部分,将代码传入可信执行环境TEE中,同时TEE环境中的输入、输出数据也是加密的,而数据的具体处理与存储方法包括以下步骤:(一)、合约设计

1)设计两个map对象,用于存储新、旧两组密钥,map的key为节点程序的公钥,value为用节点公钥加密后的密钥;

2)设计一个设置密钥函数,参数为一个map,例如:SetKey(map[pubkey:value]),函数要使用传入的参数对map1与map2赋同样的值;

3)设计一个修改密钥函数,参数为一个map,UpdateKey(map[pubkey:value]),函数内要实现将map2的值赋给map1,同时用新传入的参数设置map2;

(二)、管理员设置密钥

1)区块链节点程序通过硬件加解密卡获得节点的公钥,合约管理员通过调用区块链节点程序的API接口获得节点的公钥;

2)合约管理员采用随机算法在本地生成合约所用的加密密钥;

3)合约管理员用节点的公钥对第二步生成的密钥进行非对称加密;

4)对所有的联盟链区块链节点重复第二步;

5)调用区块链合约的设置密钥函数SetKey,将加密后的多个密钥发送到合约;

6)合约内部的方法将密钥分别存储到map1、map2;

7)完成合约管理员对密钥的设置,合约中map1与map2中存储了用各个节点公钥加密过后的密钥;

(三)、管理员修改密钥

1)区块链节点程序通过硬件加解密卡获得节点的公钥,合约管理员通过调用区块链节点程序的API接口获得节点的公钥;

2)合约管理员采用随机算法在本地生成合约所用的新的加密密钥;

3)合约管理员用节点的公钥对第二步生成的密钥进行非对称加密;

4)对所有的联盟链区块链节点重复第三步;

5)调用区块链合约的修改密钥函数UpdateKey,将加密后的密钥发送到合约;

6)合约内部的方法将map2中的值更新到map1中,同时用传入的参数更新map2中的内容;

7)完成合约管理员对密钥的修改,合约中map1存储了原来map2中的内容,map2全部更新为新的密钥;

(四)、TEE密钥设置

1)加载合约的公开模块到合约虚拟机中;

2)加载合约的隐私模块到TEE环境中;

3)节点程序从合约虚拟机中读取自己节点公钥对应的加密密钥;

4)节点程序将新、旧两个加密密钥全部送入硬件加解密卡解密,获得密钥;

5)节点程序将新、旧两个密钥设置给TEE;

(五)、加密数据读取与存储

1)TEE向节点程序索要数据,节点程序从KV数据库读取;

2)TEE用旧密钥解密数据;

3)TEE进行逻辑运算;

4)TEE对将要输出的数据用新密钥进行加密,向节点程序输出加密后的数据,节点程序将加密数据记录到KV数据库中。

2.根据权利要求1所述的一种实现合约隐私的数据处理与存储方法,其特征在于:所述步骤(二)的6)中在map1与map2中所存的密钥是一样的。

3.根据权利要求2所述的一种实现合约隐私的数据处理与存储方法,其特征在于:所述步骤(三)的6)中在map1与map2中相同公钥所对应的密钥是不一样的。

4.根据权利要求3所述的一种实现合约隐私的数据处理与存储方法,其特征在于:所述步骤(五)的1)中读取的数据为加密数据。