一种基于智能合约的数据加密分享方法技术

技术编号:22756823 阅读:18 留言:0更新日期:2019-12-07 04:43
本发明专利技术提供一种基于智能合约的数据加密分享方法,包括:获取数据m和第一用户的身份信息;数据m为对数据M进行加密后的数据;对数据m进行验证处理;在验证通过的情况下,从区块链匹配出目标预设白名单用户;目标预设白名单用户允许读取数据M;在第一用户的身份信息符合目标预设白名单用户的情况下,将数据m解密成数据M;通过上述方案,原始数据(也即数据M)和加密数据(也即数据m)都不用存储在区块链上,原始数据和加密数据在链下流转,对于数据量大的情况,提高了数据的读写性能,提高了数据的读写效率;且数据m是有加密的,不在目标预设白名单中的用户无法解密数据m,保证了数据的安全性。

A data encryption and sharing method based on smart contract

The invention provides a data encryption and sharing method based on the smart contract, which includes: obtaining the identity information of data m and the first user; data M is the data after encrypting data m; verifying data m; matching the target preset white list user from the blockchain when the verification passes; allowing the target preset white list user to read data m; and the first user In the case that the identity information of the target preset whitelist user matches, the data M is decrypted into data m; through the above scheme, the original data (i.e. data m) and the encrypted data (i.e. data m) are not stored on the blockchain, and the original data and the encrypted data flow down the chain. In the case of large amount of data, the reading and writing performance of the data is improved, and the reading and writing efficiency of the data is improved; and Data M is encrypted. Users who are not in the target preset white list cannot decrypt data m, which ensures the security of data.

【技术实现步骤摘要】
一种基于智能合约的数据加密分享方法
本专利技术涉及数据处理
,具体地说,涉及一种基于智能合约的数据加密分享方法。
技术介绍
目前,对于数据量大的情况,若数据存在区块链上,数据的读写性能、读写效率会很差。
技术实现思路
本专利技术的目的在于提出一种基于智能合约的数据加密分享方法,旨在解决现有技术中,对于数据量大的情况,若数据存在区块链上,数据的读写性能、读写效率会很差的问题。为解决上述技术问题,本专利技术提供一种基于智能合约的数据加密分享方法,包括:获取数据m和第一用户的身份信息;所述数据m为对数据M进行加密后的数据;对所述数据m进行验证处理;在验证通过的情况下,从区块链匹配出目标预设白名单用户;所述目标预设白名单用户允许读取所述数据M;在所述第一用户的身份信息符合所述目标预设白名单用户的情况下,将所述数据m解密成所述数据M。可选地,所述对所述数据m进行验证处理包括:根据预设摘要算法计算出所述数据m的摘要数据d’,并根据所述第一用户的公钥从数据D解密出摘要数据d,并判断所述摘要数据d’是否等于所述摘要数据d,若是,则验证通过;所述数据D为将所述数据m按照所述预设摘要算法计算出所述摘要数据d,并用所述第一用户的私钥加密所述摘要数据d为所述数据D。可选地,在所述获取数据m和第一用户身份信息之前,还包括:获取所述数据M、签名数据H和第二用户的身份信息;所述签名数据H为根据所述预设摘要算法计算出所述数据M的摘要数据h,并根据所述第二用户的私钥将所述摘要数据h加密成所述签名数据H;根据所述第二用户的公钥将所述签名数据H解密成数据h’;根据所述预设摘要算法计算出所述数据M的所述摘要数据h;并判断所述数据h’是否等于所述摘要数据h,若是,则验证通过;在验证通过的情况下,将所述数据M加密成所述数据m,并通过所述预设摘要算法计算出所述数据m的所述摘要数据d,并将所述摘要数据d和预设白名单用户建立对应关系存储在所述区块链中,并将所述数据m返回给所述第二用户以供所述第二用户进行分享;所述从区块链匹配出目标预设白名单用户包括:根据所述数据D解密出的所述摘要数据d,与所述区块链上的所述对应关系进行匹配,将匹配到的预设白名单用户作为所述目标预设白名单用户。可选地,所述第一用户的身份信息包括所述第一用户的ID信息;在所述获取数据m和第一用户的身份信息之前,还包括:接收所述第一用户在所述智能合约上的注册信息,所述注册信息包括所述第一用户申明的身份角色信息;为所述第一用户分配唯一ID信息,并生成一对密钥,并将所述唯一ID信息、身份角色信息、所述密钥中的私钥发送给所述第一用户。可选地,所述第二用户的身份信息包括所述第二用户的ID信息;在所述获取所述数据M、签名数据H和第二用户的身份信息之前,还包括:接收所述第二用户在所述智能合约上的注册信息,所述注册信息包括所述第二用户申明的身份角色信息;为所述第二用户分配唯一ID信息,并生成一对密钥,并将所述唯一ID信息、身份角色信息、所述密钥中的私钥发送给所述第二用户。可选地,在所述接收所述第二用户在所述智能合约上的注册信息之前,还包括:将所述智能合约部署到所述区块链上。可选地,在所述将所述智能合约部署到所述区块链上之后、且在所述接收所述第二用户在所述智能合约上的注册信息之前,还包括:对所述智能合约的执行进行加密算法、所述预设摘要算法、密钥的配置。可选地,所述预设白名单用户包括所述第二用户指定的用户、所述第二用户指定的身份角色的用户中至少一种。可选地,在所述将所述数据m解密成所述数据M之后,还包括:所述区块链记录所述第一用户对所述数据m进行了解密。可选地,在所述将所述数据m解密成所述数据M之前,还包括:验证所述数据m是否在有效期内,若是,则进入所述将所述数据m解密成所述数据M的步骤。有益效果本专利技术提供了一种基于智能合约的数据加密分享方法,该基于智能合约的数据加密分享方法包括:获取数据m和第一用户的身份信息;数据m为对数据M进行加密后的数据;对数据m进行验证处理;在验证通过的情况下,从区块链匹配出目标预设白名单用户;目标预设白名单用户允许读取数据M;在第一用户的身份信息符合目标预设白名单用户的情况下,将数据m解密成数据M;通过上述方案,原始数据(也即数据M)和加密数据(也即数据m)都不用存储在区块链上,原始数据和加密数据在链下流转,对于数据量大的情况,提高了数据的读写性能,提高了数据的读写效率;且数据m是有加密的,不在目标预设白名单中的用户无法解密数据m,保证了数据的安全性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对与本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以如这些附图获得其他的附图。图1为本实施例提供的一种基于智能合约的数据加密分享方法的示意图;图2为本实施例提供的一种智能合约和区块链的示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应当理解的是,本实施例中的代号M、m、d、d’、D、H、h、h’并不代表实际意义,仅是为了区分不同的数据,也可以用第一、第二等来代替。本实施例将提供一种基于智能合约的数据加密分享方法,参见图1,图1为本实施例提供的一种基于智能合约的数据加密分享方法的示意图;该基于智能合约的数据加密分享方法包括:S101、获取数据m和第一用户(也即解密的用户)的身份信息;数据m为对数据M进行加密后的数据;数据M是明文,数据m是密文;S102、对数据m进行验证处理;S103、在验证通过的情况下,从区块链匹配出目标预设白名单用户;目标预设白名单用户允许读取数据M;S104、在第一用户的身份信息符合目标预设白名单用户的情况下,将数据m解密成数据M;也即通过资格(或者身份)来判断谁能解密密文查看明文的;通过上述方案,原始数据(也即数据M)和加密数据(也即数据m)都不用存储在区块链上,原始数据和加密数据在链下流转,对于数据量大的情况,提高了数据的读写性能,提高了数据的读写效率;且数据m是有加密的,不在目标预设白名单中的用户无法解密数据m,保证了数据的安全性。可选地,S102对数据m进行验证处理包括:根据预设摘要算法计算出数据m的摘要数据d’,并根据第一用户的公钥从数据D解密出摘要数据d,并判断摘要数据d’是否等于摘要数据d,若是,则验证通过;数据D为将数据m按照预设摘要算法计算出摘要数据d本文档来自技高网...

【技术保护点】
1.一种基于智能合约的数据加密分享方法,其特征在于,包括:/n获取数据m和第一用户的身份信息;所述数据m为对数据M进行加密后的数据;/n对所述数据m进行验证处理;/n在验证通过的情况下,从区块链匹配出目标预设白名单用户;所述目标预设白名单用户允许读取所述数据M;/n在所述第一用户的身份信息符合所述目标预设白名单用户的情况下,将所述数据m解密成所述数据M。/n

【技术特征摘要】
1.一种基于智能合约的数据加密分享方法,其特征在于,包括:
获取数据m和第一用户的身份信息;所述数据m为对数据M进行加密后的数据;
对所述数据m进行验证处理;
在验证通过的情况下,从区块链匹配出目标预设白名单用户;所述目标预设白名单用户允许读取所述数据M;
在所述第一用户的身份信息符合所述目标预设白名单用户的情况下,将所述数据m解密成所述数据M。


2.根据权利要求1所述的基于智能合约的数据加密分享方法,其特征在于,所述对所述数据m进行验证处理包括:根据预设摘要算法计算出所述数据m的摘要数据d’,并根据所述第一用户的公钥从数据D解密出摘要数据d,并判断所述摘要数据d’是否等于所述摘要数据d,若是,则验证通过;
所述数据D为将所述数据m按照所述预设摘要算法计算出所述摘要数据d,并用所述第一用户的私钥加密所述摘要数据d为所述数据D。


3.根据权利要求2所述的基于智能合约的数据加密分享方法,其特征在于,在所述获取数据m和第一用户身份信息之前,还包括:
获取所述数据M、签名数据H和第二用户的身份信息;所述签名数据H为根据所述预设摘要算法计算出所述数据M的摘要数据h,并根据所述第二用户的私钥将所述摘要数据h加密成所述签名数据H;
根据所述第二用户的公钥将所述签名数据H解密成数据h’;
根据所述预设摘要算法计算出所述数据M的所述摘要数据h;
并判断所述数据h’是否等于所述摘要数据h,若是,则验证通过;
在验证通过的情况下,将所述数据M加密成所述数据m,并通过所述预设摘要算法计算出所述数据m的所述摘要数据d,并将所述摘要数据d和预设白名单用户建立对应关系存储在所述区块链中,并将所述数据m返回给所述第二用户以供所述第二用户进行分享;
所述从区块链匹配出目标预设白名单用户包括:根据所述数据D解密出的所述摘要数据d,与所述区块链上的所述对应关系进行匹配,将匹配到的预设白名单用户作为所述目标预设白名单用户。


4.根据权利要求2所述的基于智能合约的数据加密分享方法,其特征...

【专利技术属性】
技术研发人员:李剑峰李顺德陈浩毅
申请(专利权)人:重庆华医康道科技有限公司
类型:发明
国别省市:重庆;50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1