本发明涉及区块链,尤其涉及一种面向云边端的可信区块链数据有条件安全共享方法及系统。
背景技术:
1、区块链是一种基于密码学算法的分布式账本技术,通过特定的共识机制,将数据以区块为单位构建成时序化的链式结构,并通过p2p网络实现数据的同步和验证,确保系统的去中心化和不可篡改性。其架构由多个层次组成:数据层封装了底层数据区块、数据加密、时间戳机制和merkle树结构,确保数据的完整性与不可篡改性;网络层负责节点间的分布式组网与数据传播,利用p2p网络结构实现节点间高效、安全的数据同步;共识层通过工作量证明pow、权益证明pos和实用拜占庭容错pbft等共识算法,使得各节点能够在去中心化的环境下就数据的有效性达成一致,并保障系统的安全性与容错性;激励层将经济激励机制融入区块链系统,激励节点参与网络维护,促进系统的自我维持与发展;合约层封装了各种脚本和智能合约,支持去中心化应用的开发与运行,并通过虚拟机执行合约指令集,确保合约的安全性和正确性;应用层涵盖了区块链的各种应用场景,既包括去中心化金融defi、供应链管理、身份认证等应用,通过区块链的不可篡改性增强各行业的创新与发展。这些层次相互协作,共同构建了一个去中心化、自组织且高度可信安全的分布式账本系统。
2、但是,针对当前云边端场景下的数据安全共享问题,现有的技术方案在数据共享和安全控制方面仍面临诸多挑战。云边端环境中的数据共享涉及多个层级的设备和系统。在数据共享过程中,数据的安全性、隐私保护和共享效率成为核心问题。传统的集中式数据管理和共享方法难以适应分布式、异构的云边端环境,容易导致数据泄露、篡改以及权限管理困难等问题。因此亟需制定一种适应云边端环境的区块链数据安全共享方法。
技术实现思路
1、鉴于此,本发明实施例提供了一种面向云边端的可信区块链数据有条件安全共享方法及系统,以消除或改善现有技术中存在的一个或更多个缺陷,解决现有技术数据安全性差、隐私保护性和共享效率低的问题。
2、本发明的一个方面提供了一种面向云边端的可信区块链数据有条件安全获取方法,所述方法基于区块链网络中端边的数据请求端执行,所述数据请求端向云端的数据拥有端请求目标数据,并通过第三方机构生成所述数据请求端的第一公私钥对和所述数据拥有端的第二公私钥对作为代理重加密的第一重密钥,该方法包括以下步骤:
3、根据所述第一公私钥对中的公钥利用预设方法生成did(去中心化身份)标识符并建立did文档,所述did文档包括所述第一公私钥对中的公钥、验证方法以及服务端点信息;
4、对所述did文档进行签名,并连同属性信息发送至预设的去中心化身份认证系统以对所述did文档注册至所述区块链网络上,并获取属性证书;所述属性信息用于标记访问权限控制的信息;
5、将所述did标识符和所述属性证书发送至所述数据拥有者,以供所述数据拥有者将所述did标识符发送至所述去中心化身份认证系统进行解析并获取所述did文档;接收所述数据拥有者发送的随机数作为挑战值,利用所述第一公私钥对中的私钥对所述挑战值进行签名,并将签名得到的值发送至所述数据拥有者,以基于所述验证方法,利用所述数据拥有者获得的所述did文档内的所述第一公私钥对中的公钥验证签名;
6、在所述数据拥有者基于所述属性证书核验所述数据请求者访问权限通过后,获取所述数据拥有者通过区块链代理节点发起上链交易的重加密密文,并采用所述第一公私钥对中的私钥对所述重加秘密文进行解密,得到所述目标数据对应密文在去中心化分布式存储系统中的访问地址和对称加密密钥;所述重加密密文是所述数据拥有者利用所述对称加密密钥对所述目标数据加密并存储至所述去中心化分布式存储系统后,由区块链代理节点将访问地址和所述对称加密密钥利用所述第一公私钥对的公钥和所述第二公私钥对的私钥进行重加密,转换所述数据请求端可解密形式得到的;
7、基于所述访问地址在所述去中心化分布式存储系统中查找所述目标数据的密文,并采用所述对称加密密钥进行解密得到所述目标数据。
8、在一些实施例中,根据所述第一公私钥对中的公钥利用预设方法生成did标识符并建立did文档,包括:
9、采用所述第一公私钥对中公钥的哈希值作为所述did标识符;
10、或,对所述第一公钥对中的公钥添加包含时间戳或随机数的额外信息,并整体计算哈希值作为所述did标识符;
11、或,以时间戳和/或随机数作为预设算法的参数,将所述第一公钥对中的公钥输入所述预设算法并输出所述did标识符,所述预设算法为椭圆曲线数字签名算法。
12、在一些实施例中,所述去中心化分布式存储系统为ifps星际文件系统。
13、在一些实施例中,利用所述第一公私钥对中的私钥对所述挑战值进行签名,包括:
14、对所述挑战值计算哈希值,计算式为:
15、z=hash(random);
16、其中,z为所述挑战值的哈希值,random表示作为所述挑战值的随机数;
17、构建椭圆曲线:
18、r=w·g;
19、其中,g为椭圆曲线基点,r点为r(x1,y1);
20、则所述签名s为:
21、s=w-1·(z+x1·skdr)mod n;
22、将所述签名s和点r的坐标r(x1,y1)发送至所述数据拥有端进行签名验证;
23、另一方面本发明还提供一种面向云边端的可信区块链数据有条件安全提供方法,所述方法基于区块链网络中云端的数据拥有端执行,所述数据拥有端向边端的数据请求端提供目标数据,并通过第三方机构生成所述数据请求端的第一公私钥对和所述数据拥有端的第二公私钥对作为代理重加密的第一重密钥,所述数据请求端执行如权利要求1至4任意一项所述的面向云边端的可信区块链数据有条件安全获取方法,该方法包括以下步骤:
24、接收所述数据请求端发送的did标识符和属性证书,将所述did标识符发送至去中心化身份认证系统进行解析并获取所述数据请求端的did文档,所述did文档包括所述第一公私钥对中的公钥、验证方法以及服务端点信息;
25、生成一个随机数作为挑战值发送至所述数据请求端,并接收所述数据请求端返回的利用所述第一公私钥对中的私钥对所述挑战值进行计算得到的签名;基于所述验证方法,利用所述did文档内所述第一公私钥对中的公钥对所述签名进行验证;
26、在所述签名验证通过时,根据所述属性证书中的属性信息核查访问权限;
27、核查访问权限通过后,将所述目标数据利用对称加密密钥加密上传至去中心化分布式存储系统中,并接收返回的访问地址;
28、利用所述第二公私钥对中的公钥对所述访问地址和所述对称加密密钥进行加密得到一级密文;利用所述第一公私钥对中的公钥和所述第二公私钥对中的私钥生成重加密密钥;利用所述重加密密钥对所述一级密文进行加密得到重加密密文;
29、将所述重加密密文和所述重加密密钥发送至区块链代理节点,并转换为能被数据请求者解密的密文并上链存储,以供所述数据请求端基于所述第一公私钥对中的私钥解密得到所述访问地址和所述对称加密密钥,查询所述去中心化分布式存储系统获取所述目标数据的密文并解密得到所述目标数据。
30、在一些实施例中,所述随机数生成采用加密安全伪随机数生成器csprng。
31、在一些实施例中,利用所述did文档内所述第一公私钥对中的公钥对所述签名进行验证,包括:
32、在所述数据请求端采用椭圆曲线数字签名算法构建所述签名并将所述签名s和点r的坐标r(x1,y1)发送至所述数据拥有端后,计算所述挑战值的哈希值:
33、z=hash(random);
34、其中,z为所述挑战值的哈希值,random表示作为所述挑战值的随机数;
35、计算
36、u1=s-1·z mod n;
37、u2=s-1·x1 mod n;
38、p=u1·g+u2·pkdr;
39、验证点p的x坐标是否等于x1,若相等则验证成功,否则验证失败。
40、另一方面本发明还提供一种面向云边端的可信区块链数据有条件安全共享系统,所述系统是由多个云端节点和多个边缘设备节点构成的区块链网络;
41、所述边缘设备节点用于执行上述面向云边端的可信区块链数据有条件安全获取方法;
42、所述云端节点用于执行上述面向云边端的可信区块链数据有条件安全提供方法。
43、另一方面本发明还提供一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现上述方法的步骤。
44、另一方面本发明还提供一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现上述方法的步骤。
45、本发明的有益效果至少是:
46、本发明所述面向云边端的可信区块链数据有条件安全共享方法及系统,通过第三方机构为数据请求端和数据拥有端生成代理重加密的第一重加密密钥,数据请求端生成did标识符,连同属性信息交由身份认证系统注册至区块链上。在数据分享的过程中,数据拥有端基于去中心化身份认证系统和挑战应答的方式对数据请求端进行身份认证,基于属性证书进行权限认证,将数据对称加密后存储至去中心化分布式存储系统中,将访问地址和对称加密密钥交由区块链代理节点通过重加密的形式上链存储;数据请求者获取并解密重加密密文,获取目标数据的密文在去中心化分布式存储系统中的访问地址和对称加密密钥,获取并解密得到目标数据。
47、本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在说明书以及附图中具体指出的结构实现到并获得。