一种基于区块链的云桌面数据安全共享、溯源方法和系统与流程

未命名 07-27 阅读:118 评论:0


1.本发明涉及一种基于区块链的云桌面数据安全共享、溯源方法和系统,属于区块链和云计算领域。


背景技术:

2.云桌面是通过虚拟化技术将高性能基层设备分割为数台虚拟电脑,用户通过软件或者web登录获取云端桌面移动办公来保证业务系统和办公环境的稳定性,提高管理、生产部门的办公效率,在突发的客户响应中,实现前后端衔接和团队协作,用最短的时效实现客户需求。云存储作为云桌面系统的一个核心组成部分,承担着数据最底层数据存储与信息接入。但是随着云桌面系统的高速发展,当大量数据的存储、管理和共享时而面临着一种新的困境:云桌面系统的数据存储和管理比传统数据中心更复杂,面临着数据信息泄露等安全问题;云桌面系统应用在跨域协同工作中,传统访问控制技术难以满足数据共享的复杂形势,传统的中心式数据溯源系统难以保证数据的完整性和可靠性。


技术实现要素:

3.本发明的目的在于针对现有技术的不足,提供了一种基于区块链的云桌面数据安全共享、溯源方法和系统,具备保障用户数据安全性、域间资源共享和数据可追溯等优点.
4.本发明所采用的技术方案是:一种基于区块链的云桌面数据安全共享、溯源方法和系统。该系统包括数据接入层、数据处理和存储层、基于区块链的数据安全层、应用层和用户层。所述数据接入层包括多种数据接入的办公场景;所述数据处理和存储层包括云数据库、kafka消息队列数据接入技术、mysql集群和mongodb集群;所述基于区块链的数据安全层包括数据安全、数据共享和数据溯源;所述应用层包括云桌面管理模块和专用桌面池、动态桌面池、课堂桌面池、席位桌面池、绑定桌面池、托管桌面池等应用;所述用户层则为数据使用者是指需要使用数据的客户、公司员工和企业等。该方法包括以下步骤:
5.步骤1:数据接入层包括不同的办公场景,使得分支机构、公司员工可以实时办公存储和使用数据。
6.步骤2:数据处理和存储层包括云数据库和数据库集群,数据库集群分布式消息队列使用kafka消息队列数据接入技术,使得多场景存储输入的资料通过消息队列形成分布式的消息队列缓存,保障了数据接入服务的稳定性,分布式的mysql数据库系统来提供高可靠、稳定的数据库服务,当数据量和负载个数发生变化时mongodb分片机制可以自动平衡负载和数据分布的变化,并可以灵活的添加新的硬件设备,利用sharding可以实现自动故障转移,对整个系统进行负载平衡,基于mysql集群和mongodb集群的云数据库在存储海量异构数据时有着高可用、高性能和高扩展性。
7.步骤3:基于区块链的数据安全层使用基于聚类技术的多敏感属性隐私保护算法(l,x,w)多样性模型和基于属性加密方法对用户的敏感数据和非敏感数据分别制定不同的加密方法并采用链上和链上链下混合存储的模式存储在区块链和云数据库中;使用基于区
块链的跨域数据共享结合基于属性的访问控制模型,实现用户的细粒度访问控制策略;使用联盟链网络为域间交互提供p2p网络、数据传播以及数据验证机制,域间数据资源请求或者响应通过区块链网络在域间广播,链上各节点负责验证这些消息的合法性,合法继续传播否则停止。联盟链域间网络结构中跨域节点既是安全域中的网络节点也是域间区块链的网络节点,负责本域和其他域的通信联系维护区块链服务的正常运行,普通节点负责维护本域中的数据,各域共同组织和维护域间区块链的正常运行。
8.步骤4:使用基于pbft共识算法设计分组共识机制、基于avl树和merkle树构建访问树完成完成溯源信息的快速上链和高效查询;
9.步骤5:应用层包括云桌面管理模块和专用桌面池、动态桌面池、课堂桌面池、席位桌面池、绑定桌面池、托管桌面池等应用,使得员工在不同地点、不同场景使用不同终端实现高效灵活、安全办公、团队协作,云桌面管理模块使管理人员可实时查看各桌面使用情况,实现统筹安排规划。
10.步骤6:用户层则为数据使用者是指需要使用数据的客户、公司员工和企业等实体。
11.有益效果:
12.1、一种基于区块链的云桌面数据安全共享、溯源方法和系统,数据接入层包含多种数据接入的场景,当数据接入层输入大量数据时,数据处理和存储层中基于数据库集群的云数据库可以保障数据接入服务的稳定性并且满足多个应用系统使用数据的需求,在存储海量异构数据时有着高可用、高性能和高扩展性;2、本发明具备保障用户数据安全性、域间资源共享和数据可追溯等优点。
附图说明
13.图1为本发明的系统结构图。
14.图2:为本发明的数据处理和存储层结构示意图。
15.图3为本发明的基于区块链的数据安全层流程示意图。
16.图4为本发明的基于属性的加密算法流程示意图。
17.图5为本发明的系统跨域结构示意图。
18.图6为本发明的b-m树建模型结构图。
19.图7为本发明的溯源链结构图。
具体实施方式
20.为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述。应当理解,此处所描述的实施例仅用于说明和解释本发明,并不限定本发明。
21.如图1所示,本发明提供了一种基于区块链的云桌面系统数据保护和共享方法,包括数据接入层、数据处理和存储层、基于区块链的数据安全层、应用层和用户层。
22.如图2所示,本发明提供了一种基于数据库集群的云数据库,kafka消息队列数据接入技术可以保障数据接入服务的稳定性,能够满足多个应用系统使用数据的需求,分布式的mysql数据库系统来提供高可靠、稳定的数据库服务,mongodb分片机制可以自动平衡
负载和数据分布的变化,并可以灵活的添加新的硬件设备,利用sharding可以实现自动故障转移,对整个系统进行负载平衡。
23.如图3所示,基于区块链的数据安全层流程示意程图使用基于聚类技术的多敏感属性隐私保护算法(l,x,w)多样性模型、基于属性加密方法对数据拥有者的敏感数据和非敏感数据分别制定不同的加密方法并采用链上和链上链下混合存储的模式存储在区块链和云数据库中,通过基于联盟链的跨域数据共享和基于属性的访问控制,实现不同场景下的细粒度访问控制策略。
24.如图4所示,基于属性的加密算法流程主要由系统初始化、属性私钥生成、加密、解密四个部分组成。
25.如图5所示,该区块链由a域、b域、c域中的某一个域内节点作为跨域节点,所有分布式域的跨域节点共同组成区块链中的网络节点,共同维护域间区块链的正常运行。跨域节点既是安全域中的网络节点,又是域间区块链的网络节点,负责本域和其他域的通信联系维护区块链服务的正常运行,普通节点负责维护本域中的数据,若跨域节点宕机,则由新指定的普通节点作为跨域节点,并通过区块链网络进行同步获得链上数据。
26.如图6所示,一个b-m树的存储节点包括了指向叶子节点的左指针(l)与右指针(r)、当前访问待查关键字地址(k)、所有叶子节点待查关键字的最大值(max)和最小值(min)、数据序列化后的访问哈希值或合并后的访问哈希值(hash),当访问的待查关键字映射数值分别为4,7,8,10,14,20,25,30,40时根据每各记录关键字的大小,建立一棵平衡二叉树(avl),使得树中每个节点左右子树高度差的绝对值不超过1。从avl树的底部开始,逐层将左右叶子节点的访问哈希进行两两合并,得到父节点哈希值(hash)及指向叶子节点的左指针(l)与右指针(r)同时,将平衡二叉树的待查关键字的地址映射到k中,并保存所有子节点的关键字最大值(max)和最小值(min),直到合并成形成完整的b-m树。
27.如图7所示,属性消息进行分割形成数据块{r1,r2,

,rn}存储到区块链中,得到属性等级标签对应的属性区块{p1,p2,

,pn},使得每一个数据资源ri,都有一条完整的溯源链pi与之对应,访问上链过程中,首先共识节点根据访问关键字key及访问信息形成的hash摘要生成b-m树,再以b-m树根及区块头基本信息生成新区块blk。最后将区块blk追加到p访问链之后形成溯源链。当需要对溯源链中的访问进行查询时,查询者输入待查关键字key,共识节点首先比对区块头中b-m树的min及max,以此查找包含key的区块体,然后在b-m树中根据平衡二叉树查找算法快速定位与key匹配的访问信息。
28.实施例
29.综上所述,一种基于区块链的云桌面数据安全共享、溯源方法和系统。该系统包括数据接入层、数据处理和存储层、基于区块链的数据安全层、应用层和用户层。
30.该方法具体包括以下步骤:
31.步骤1:如图1所示,数据接入层包括不同的办公场景,使得分支机构、公司员工可以实时办公存储和使用数据;
32.步骤2:数据处理和存储层包括云数据库和数据库集群,如图2所示,数据库集群的分布式消息队列使用kafka消息队列数据接入技术,使得多场景输入的资料通过消息队列模块形成分布式的消息队列缓存,保障了数据接入服务的稳定性,分布式的mysql数据库系统来提供高可靠、稳定的数据库服务,当数据量和负载个数发生变化时mongodb分片机制可
以自动平衡负载和数据分布的变化,并可以灵活的添加新的硬件设备,利用sharding可以实现自动故障转移,对整个系统进行负载平衡,基于mysql集群和mongodb集群的云数据库在存储海量异构数据时有着高可用、高性能和高扩展性;
33.步骤3:如图3所示,使用基于聚类技术的多敏感属性隐私保护算法(l,x,w)多样性模型和基于属性加密方法如图4所示,对用户的敏感数据和非敏感数据分别制定不同的加密方法并采用链上和链上链下混合存储的模式存储在区块链和云数据库中,在区块链中使用智能合约替代访问控制模块进行逻辑功能操作,包括:查询实体属性和属性关系、访问控制请求判断、访问控制策略管理,通过基于联盟链的跨域数据共享和基于属性的访问控制,实现不同场景下的细粒度访问控制策略;使用联盟链网络为域间交互提供p2p网络、数据传播以及数据验证机制,域间数据资源请求或者响应通过区块链网络在域间广播,链上各节点负责验证这些消息的合法性,合法继续传播,否则停止。通过共识算法保证区块链节点间各类数据的一致性和可信性,以此在各域间达到稳定共识。如图5所示该区块链由a域、b域、c域中的某一个域内节点作为跨域节点,跨域节点既是安全域中的网络节点,又是域间区块链的网络节点,负责本域和其他域的通信联系维护区块链服务的正常运行,普通节点负责维护本域中的数据,若跨域节点宕机,则由新指定的普通节点作为跨域节点,并通过区块链网络进行同步获得链上数据。各域存储的数据资源和区块链存储的访问控制策略、属性和属性关系、智能合约以及数据请求或响应操作等,这些数据按照一定格式在数据库中以事务的形式存储。
34.步骤3.1:数据拥有者是拥有数据所有权的公司员工或机构等实体,数据拥有者先将数据分类为敏感数据和非敏感数据两种类型;
35.步骤3.2:使用基于聚类技术的多敏感属性隐私保护算法(l,x,w)多样性模型,模型引入信息熵约束等价组在敏感属性上的多样性以及均匀性来实现对于平台敏感数据敏感属性等级的划分,具体包括以下子步骤:
36.步骤3.2.1:令聚类数目c
num
=1,m

记录敏感属性m的族划分以及簇中心距离信息,令可移动元组数目c
move
=|m|,对m使用二分k均值算法进行二分;遍历当前所有分簇,对每一个分簇进行二分聚类,对比其他簇中元组与其原簇质心距离与新生簇质心的距离,将该元组划入距离近的一簇,统计每一次二分后移动的元组数目,选择移动数目多的簇进行二分;令c
move
等于元组最大移动数目,令c
move
+1,并更新m

;预先确定的停止条件δ,检查c
move
与δ,当c
move
小于δ时停止分裂输出m


37.步骤3.2.2:将敏感数据m、聚类信息m

、多样性l、敏感熵比值w作为输入,并返回属性划分表
38.步骤3.2.3:获取m所有敏感属性的多样性集l={l1,l2,

,ld};
39.步骤3.2.4:获取敏感熵比值w=tm/l,其中tm为敏感属性值;
40.步骤3.2.5:由m

得到所有的簇集合信息c={c1,c2,

,ck},按照簇半径进行升序排序得到半径信息矩阵r;
41.步骤3.2.6:分别计算所有簇中心距离,并按照升序排序,得到簇间距离信息矩阵n,令为空并依据m

得到所升序矩阵c
radius
,计算步骤如下:
42.非数值型属性距离:设属性x为分类型属性,按照不同取值构建属性值分层树,设χi表示该属性的某一取值,则距离函数为
[0043][0044]
式中:f
level
(xi)表示分类值xi在分层树中的层级,f
level
(xi,xj)表示值xi,xj在分层树中最小祖先节点的层级,d
classi
(xi,xj)表示属性值xi与xj的分类距离;
[0045]
数值型属性距离:设属性x为数值型属性,xi为该属性的某一取值,则距离函数为
[0046]ddigit
(xi,xj)=|x
i-xj/(max{x}-min{x})
ꢀꢀꢀ
(2)
[0047]
式中:d
classi
(xi,xj)表示数值属性值xi与xj的距离,max{x}表示属性x最大值,min{x}表示属性x的最小值;
[0048]
元组距离:元组ti、tj(i≠j)为m的2个元组,则元组间距离函数为
[0049][0050]
步骤3.2.7:选择当前簇集中半径最小的簇作为等价组生成簇ci,令等价组g
tmp
为空;
[0051]
步骤3.2.8:当ci中元组数目大于l时,按照第1次添加l条元组,第1次之后每次添加1条元组的原则向空的g
tmp
中添加记录,每次添加后检查g
tmp
是否满足(l,x,w)并删除ci中对应元组;
[0052]
步骤3.2.9:当g
tmp
满足(l,x,w)多样性时将g
tmp
中元组添加到并清空g
tmp

[0053]
步骤3.2.10:步骤3.2.8和步骤3.2.9直到ci为空并从c中删除当前ci;
[0054]
步骤3.2.11:此时若g
tmp
非空则选择剩余簇中质心与当前ci质心最近的簇作为新的ci,若g
tmp
为空则对照c
radius
与c选择c中半径最小的簇最为新的ci;
[0055]
步骤3.2.12:重复步骤3.2.8到步骤3.2.11直到c为空,对中元组按照不同等价组质心对其进行泛化后得到属性等级划分表
[0056]
步骤3.3:使用基于属性加密技术对得到的不同敏感属性的数据进行加密后以链上存储模式存储在区块链中,具体包括以下子步骤:
[0057]
步骤3.3.1:(msk,pk)

setup(s,λ):将安全参数λ和系统属性集s作为输入,输出系统公私钥对(pk,msk);
[0058]
步骤3.3.2:ski←
keygen(msk,si):输入主密钥msk、si∈属性集合s,生成属性密钥ski;
[0059]
步骤3.3.3:输入系统公钥pk,属性消息m和属性分级标签对m进行加密产生属性密文
[0060]
步骤3.3.4:输入包含属性分级标签的属性密文以及属性私钥ski,如果si能够满足则对进行解密并返回消息m。
[0061]
步骤3.4:将链上的属性密文数据存储到云数据库,最后根据属性密文区块的索引进行判定。
[0062]
步骤3.5:由于区块链要求所有节点都保存相同的副本,如果非敏感数据体积较大可以使用链上链下混合存储模式,通过对称加密再使用同态加密技术对密文加密后将非敏感数据存储到云数据库中,然后使用基于属性加密的技术将对称密钥进行加密,将加密得到的密钥密文和数据存储的地址上链存储。
[0063]
步骤3.6:数据请求者发出访问请求后策略执行点调用智能合约查询在区块链中存储的相关属性信息,生成一个包含主体、资源、操作和环境属性的访问请求;
[0064]
步骤3.7:用资源拥有域的公钥将该访问请求加密封装成请求事务经过区块链网络中的节点验证传播;
[0065]
步骤3.8:资源拥有域收到该事务后对比云数据库上存储的相应属性和策略的密文的哈希索引与联盟链区块中的是否相同进行判定;
[0066]
步骤3.9:策略执行点收到响应事务,数据请求者通过细粒度访问控制实现数据访问。
[0067]
步骤4:使用基于pbft共识算法设计分组共识机制完成溯源信息的快速上链,基于avl树和merkle树如图6所示构建访问树形成溯源链如图7所示,实现溯源信息的高效查询;
[0068]
所述的基于pbft共识算法设计的分组共识机制具体实现包括以下内容:
[0069]
每一轮新共识验证执行之前,区块链网络自动对共识节点重新进行随机分组,以避免组内恶意节点与诚实节点形成共谋。当联盟链中共识节点总数为e时,为提升组内、组问整体共识效率,可将分组数h设置为得到共识组随后系统将验证节点ν随机分配到共识分组中,得到分组信息中,得到分组信息其中组内共识节点信息其中组内共识节点信息若第i个分组的共识节点个数为ni,拜占庭共识节点个数为fi且ei≥3fi+1则组内可以实现共识。若所有共识节点个数为拜占庭节点个数为且f≤[e/2]+1则组间可以实现共识。
[0070]
组内共识:prepare:准各确认阶段,组i中的共识节点对用户c发来的访问签名消息进行验证,将该消息的确认数设置为1,然后签发给同组所有成员,等待队友发来的至少2fi个相同确认签名回复,以此完成及的接收确认,进入组commit阶段。commit:验证过程中共识节点对访问集中的每一条访问信息txi=(data,ua,ub,σa(data),σb(data),timestamp)进行逐条验证。验证完成后得到合法访问其对应生成的merkle树根为merkle树根为为完成合法访问的确认,v将其生成的mt签发给同组其他成员,并等待2fi+1个相同mt的验证结果。若本组中的一个共识节点收到2fi+1个相同mt时,则该节点可确认mtv为合法访问且其对应merkle树根为mt。vj将上述信息访问信息作为自己的共识结果,对其签名形成vj对合法访问的投票然后将该投票提交给联盟链中的所有节点进行审核。其他节点以相同的方式签发投票,完成组内共识进入组间共识阶段。
[0071]
组间共识:采用过半优势思想,通过票数审核统计(count)和区块同步反馈(reply)两个阶段达成组间共识,count:投票审核统计过程中,组间节点对收到的访问投票结果进行核查。核查完成后,增加mt目前已有的票数;当共识
分组节点中的某位成员v
p
收集到[e/2]+1张mt的有效投票时,该成员根据区块生成算法blk
p+1

hash(blk
p
,mt,timestamp)生成新区块blk
p+1
并记录到本地链中,然后向所有共识节点及大数据平台广播新区块消息《blk
p+1
,blk
p
,timestamp,》skv
t
,其中i=1,2,

,[e/2]+1。由此进入区块同步阶段。若一直无法收集到半数以上的有效投票,则已投票节点核查各组内尚末发送投票的成员,并向其发送投票询问消息。若所有节点均发送投票仍法收集到半数以上有效投票,则此次访问无法达成共识。reply:共识节点收到blk
p+1
的同步区块消息后,先检查本地链中是否有对应区块数据,若已存在对应区块则直接丢弃该同步消息,若没有则对同步区块消息中的投票节点vi及投票通过的访问内容i=1,2,

,[e/2]+1进行验证,完成后将区块blk
p+1
记录到链上并向用户反馈新区块信息《blk
p+1
,blk
p
,timestamp,timestamp,》skv
t
,由此完成访问共识上链。
[0072]
具体包括如下步骤:
[0073]
步骤4.1系统初试化:密钥生成中心选择系统参数,用户ui及区块链网络共识节点vi通过身份唯一标识申请身份认证并得到密钥对(pkui,skui)

gen(ui)、为共识节点vi签发节点密钥对(pkvi,skvi)

gen(vi),用户密钥对用于大数据访问过程中访问者的签名验证,节点密钥对用于区块链节点投票过程中的签名验证,系统对区块链每一个共识节点进行编号形成一个区块链联盟网络。
[0074]
步骤4.2标识数据:属性消息进行分割形成数据块{r1,r2,

,rn}存储到区块链中,得到属性等级标签对应的属性区块{p1,p2,

,pn},使得每一个数据资源ri,都有一条完整的溯源链pi与之对应,从而提高溯源信息的查询效率。
[0075]
步骤4.3:当数据访问者a对数据资源ri发起访问时,系统将自动生成数据访问流转信息并记录上链。首先数据访问者a对待访问数据进行签名得到签名消息σa(ri)及访问关键字key形成访问记录tx=(ri,key,ua,σa(ri),timestamp)并对所有数据访问信息tx进行打包形成待验证访问集然后对其进行随机分组得到分组信息通过智能合约将访问信息及分组信息广播给所有共识节点,联盟链中的共识节点利用分组共识算法对访问信息进行组内、组间共识完成访问上链。
[0076]
步骤4.4:溯源用户对数据资源ri发起溯源查询时,共识节点根据关键字key对溯源链pi中访问记录进行查找定位。首先共识节点根据ri找到对应的溯源链pi,然后根据待查关键字遍历区块及b-m树,提取出key对应的访问信息。访问查找遍历具体执行过程如下:
[0077]
步骤4.4.1:算法对pi的按序对每一个区块进行遍历,比对区块头中b-m树的树根,根据其记录关键字的最大值和最小值,判断该区块中是否包含要查询数据。如果包含则进行平衡二叉树遍历搜索,否则校验下一个区块;
[0078]
步骤4.4.2:根据平衡二叉树中key及对应访问地址进行平衡二叉树查找提取出访问信息。完成b-m树遍历后,重复步骤4.4.1查询下一区块直到完成整条访问链的遍历。
[0079]
步骤5:应用层包括云桌面管理模块和专用桌面池、动态桌面池、课堂桌面池、席位桌面池、绑定桌面池、托管桌面池等应用,使得员工在不同地点、不同场景使用不同终端实现高效灵活、安全办公、团队协作,云桌面管理模块使管理人员可实时查看各桌面使用情
况,实现统筹安排规划。
[0080]
步骤6:用户层则为数据使用者是指需要使用数据的客户、公司员工和企业等实体。

技术特征:
1.一种基于区块链的云桌面数据安全共享、溯源系统,其特征在于,所述系统包括数据接入层、数据处理和存储层、基于区块链的数据安全层、应用层和用户层,所述数据接入层包括多种数据接入的办公场景;所述数据处理和存储层包括云数据库和数据库集群;所述基于区块链的数据安全层包括数据安全、数据共享和数据溯源;所述应用层包括云桌面管理模块、专用桌面池、动态桌面池、课堂桌面池、席位桌面池、绑定桌面池和托管桌面池;所述用户层则为数据使用者是指需要使用数据的客户、公司员工和企业。2.根据权利要求1所述的一种基于区块链的云桌面系统数据安全共享、溯源系统,其特征在于:所述数据处理和存储层包括云数据库、kafka消息队列数据接入技术、mysql集群和mongodb集群。3.根据权利要求1所述的一种基于区块链的云桌面数据安全共享、溯源系统,其特征在于:基于区块链的数据安全层使用基于聚类技术的多敏感属性隐私保护算法(l,x,w)多样性模型和基于属性加密方法对用户的敏感数据和非敏感数据分别制定不同的加密方法并采用链上和链上链下混合存储的模式存储在区块链和云数据库中,使用基于区块链的跨域数据共享结合基于属性的访问控制模型,实现用户的细粒度访问控制策略,使用联盟链网络为域间交互提供p2p网络、数据传播以及数据验证机制,域间数据资源请求或者响应通过区块链网络在域间广播,链上各节点负责验证这些消息的合法性,合法继续传播,否则停止,通过共识算法保证区块链节点间各类数据的一致性和可信性,以此在各域间达到稳定共识,跨域节点既是安全域中的网络节点,又是域间区块链的网络节点,负责本域和其他域的通信联系维护区块链服务的正常运行,普通节点负责维护本域中的数据,若跨域节点宕机,则由新指定的普通节点作为跨域节点,并通过区块链网络进行同步获得链上数据;使用基于pbft共识算法设计分组共识机制和基于avl树和merkle树构建访问树形成溯源链完成溯源信息的快速上链和高效查询并有效地保障信息的可靠性和完整性。4.根据权利要求3所述的基于区块链的数据安全层,其特征在于,敏感数据属性划分、加密和访问控制包括以下步骤:步骤1:数据拥有者是拥有数据所有权的公司员工或机构,数据拥有者先将数据分类为敏感数据和非敏感数据两种类型;步骤2:使用基于聚类技术的多敏感属性隐私保护算法(l,x,w)多样性模型,模型引入信息熵约束等价组在敏感属性上的多样性以及均匀性来实现对于平台敏感数据敏感属性等级的划分,具体包括以下步骤:步骤2.1:令聚类数目c
num
=1,m

记录敏感属性m的族划分以及簇中心距离信息,令可移动元组数目c
move
=|m|,对m使用二分k均值算法进行二分;遍历当前所有分簇,对每一个分簇进行二分聚类,对比其他簇中元组与其原簇质心距离与新生簇质心的距离,将该元组划入距离近的一簇,统计每一次二分后移动的元组数目,选择移动数目多的簇进行二分;令c
move
等于元组最大移动数目,令c
move
+1,并更新m

;预先确定的停止条件δ,检查c
move
与δ,当c
move
小于δ时停止分裂输出m

;步骤2.2:将敏感数据m、聚类信息m

、多样性l、敏感熵比值w作为输入,并返回属性划分表步骤2.3:获取m所有敏感属性的多样性集l={l1,l2,

,l
d
};
步骤2.4:获取敏感熵比值w=t
m
/l,其中t
m
为敏感属性值;步骤2.5:由m

得到所有的簇集合信息c={c1,c2,

,c
k
},按照簇半径进行升序排序得到半径信息矩阵r;步骤2.6:分别计算所有簇中心距离,并按照升序排序,得到簇间距离信息矩阵n,令为空并依据m

得到所升序矩阵c
radius
,计算步骤如下:非数值型属性距离:设属性x为分类型属性,按照不同取值构建属性值分层树,设x
i
表示该属性的某一取值,则距离函数为:其中,f
level
(x
i
)表示分类值x
i
在分层树中的层级,f
level
(x
i
,x
j
)表示值x
i
,x
j
在分层树中最小祖先节点的层级,d
classi
(x
i
,x
j
)表示属性值x
i
与x
j
的分类距离;数值型属性距离:设属性x为数值型属性,x
i
为该属性的某一取值,则距离函数为:d
digit
(x
i
,x
j
)=|χ
i-x
j
|/(max{x}-min{x})
ꢀꢀ
公式2其中,d
classi
(x
i
,x
j
)表示数值属性值x
i
与x
j
的距离,max{x}表示属性x最大值,min{x}表示属性x的最小值;元组距离:元组t
i
、t
j
(i≠j)为m的2个元组,则元组间距离函数为:步骤2.7:选择当前簇集中半径最小的簇作为等价组生成簇c
i
,令等价组g
tmp
为空;步骤2.8:当c
i
中元组数目大于l时,按照第1次添加l条元组,第1次之后每次添加1条元组的原则向空的g
tmp
中添加记录,每次添加后检查g
tmp
是否满足(l,x,w)并删除c
i
中对应元组;步骤2.9:当g
tmp
满足(l,x,w)多样性时将g
tmp
中元组添加到并清空g
tmp
;步骤2.10:重复上述步骤直到c
i
为空并从c中删除当前c
i
;步骤2.11:此时若g
tmp
非空则选择剩余簇中质心与当前c
i
质心最近的簇作为新的c
i
,若g
tmp
为空则对照c
radius
与c选择c中半径最小的簇最为新的c
i
;步骤2.12:重复步骤2.8到步骤2.11直到c为空,对中元组按照不同等价组质心对其进行泛化后得到属性等级划分表步骤3:使用基于属性加密技术对得到的不同敏感属性的数据进行加密后以链上存储模式存储在区块链中,基于属性加密算法包括以下步骤:步骤3.1:(msk,pk)

setup(s,λ):将安全参数λ和系统属性集s作为输入,输出系统公私钥对(pk,msk);步骤3.2:sk
i

keygen(msk,s
i
):输入主密钥msk、s
i
∈属性集合s,生成属性密钥sk
i
;步骤3.3:输入系统公钥pk,属性消息m和属性分级标签对m进行加密产生属性密文步骤3.4:输入包含属性分级标签的属性密文以及属性私钥sk
i
,如果s
i
能够满足则对进行解密并返回消息m;步骤4:将链上的属性密文数据存储到云数据库,最后根据属性密文区块的索引进行判
定;步骤5:由于区块链要求所有节点都保存相同的副本,如果非敏感数据体积较大可以使用链上链下混合存储模式,通过对称加密再使用同态加密技术对密文加密后将非敏感数据存储到云数据库中,然后使用基于属性加密的技术将对称密钥进行加密,将加密得到的密钥密文和数据存储的地址上链存储;步骤6:数据请求者发出访问请求后策略执行点调用智能合约查询在区块链中存储的相关属性信息,生成一个包含主体、资源、操作和环境属性的访问请求;步骤7:用资源拥有域的公钥将该访问请求加密封装成请求事务经过区块链网络中的节点验证传播;步骤8:资源拥有域收到该事务后对比云数据库上存储的相应属性和策略的密文的哈希索引与联盟链区块中的是否相同进行判定;步骤9:策略执行点收到响应事务,数据请求者通过细粒度访问控制实现数据访问。5.根据权利要求3所述的使用基于pbft共识算法设计分组共识机制,其特征在于,具体包括以下内容:每一轮新共识验证执行之前,区块链网络自动对共识节点重新进行随机分组,以避免组内恶意节点与诚实节点形成共谋,当联盟链中共识节点总数为e时,为提升组内、组问整体共识效率,可将分组数h设置为得到共识组随后系统将验证节点v随机分配到共识分组中,得到分组信息中,得到分组信息其中组内共识节点信息若第i个分组的共识节点个数为n
i
,拜占庭共识节点个数为f
i
且e
i
≥3f
i
+1则组内可以实现共识,若所有共识节点个数为拜占庭节点个数为且f≤[e/2]+1则组间可以实现共识;组内共识:prepare:准备确认阶段,组i中的共识节点对用户c发来的访问签名消息进行验证,将该消息的确认数设置为1,然后签发给同组所有成员,等待队友发来的至少2f
i
个相同确认签名回复,以此完成及的接收确认,进入组commit阶段,commit:验证过程中共识节点对访问集中的每一条访问信息tx
i
=(data,u
a
,u
b

a
(data),σ
b
(data),timestamp)进行逐条验证,验证完成后得到合法访问其对应生成的merkle树根为merkle树根为为完成合法访问的确认,ν将其生成的mt签发给同组其他成员,并等待2f
i
+1个相同mt的验证结果,若本组中的一个共识节点ν
j
∈g
i
收到2f
i
+1个相同mt时,则该节点可确认mtv为合法访问且其对应merkle树根为mt,ν
j
将上述信息访问信息作为自己的共识结果,对其签名形成υ
j
对合法访问的投票然后将该投票提交给联盟链中的所有节点进行审核,其他节点以相同的方式签发投票,完成组内共识进入组间共识阶段;组间共识:采用过半优势思想,通过票数审核统计count和区块同步反馈reply两个阶
段达成组间共识,count:投票审核统计过程中,组间节点对收到的访问投票结果进行核查,核查完成后,增加mt目前已有的票数;当共识分组节点中的某位成员υ
p
收集到[e/2]+1张mt的有效投票时,该成员根据区块生成算法blk
p+1

hash(blk
p
,mt,timestamp)生成新区块blk
p+1
并记录到本地链中,然后向所有共识节点及大数据平台广播新区块消息<blk
p+1
,blk
p
,其中i=1,2,

,[e/2]+1,由此进入区块同步阶段,若一直无法收集到半数以上的有效投票,则已投票节点核查各组内尚末发送投票的成员,并向其发送投票询问消息,若所有节点均发送投票仍无法收集到半数以上有效投票,则此次访问无法达成共识;reply:共识节点收到blk
p+1
的同步区块消息后,先检查本地链中是否有对应区块数据,若已存在对应区块则直接丢弃该同步消息,若没有则对同步区块消息中的投票节点υ
i
及投票通过的访问内容i=1,2,

,[e/2]+1进行验证,完成后将区块blk
p+1
记录到链上并向用户反馈新区块信息<blk
p+1
,blk
p
,timestamp,timestamp,由此完成访问共识上链。6.一种基于区块链的云桌面数据安全共享、溯源方法,所述方法具体包括以下步骤:步骤6.1:系统初试化:密钥生成中心选择系统参数,用户u
i
及区块链网络共识节点v
i
通过身份唯一标识申请身份认证并得到密钥对(pku
i
,sku
i
)

gen(u
i
)、为共识节点v
i
签发节点密钥对(pkv
i
,skv
i
)

gen(v
i
),用户密钥对用于大数据访问过程中访问者的签名验证,节点密钥对用于区块链节点投票过程中的签名验证,系统对区块链每一个共识节点进行编号形成一个区块链联盟网络;步骤6.2:标识数据:属性消息进行分割形成数据块{r1,r2,

,r
n
}存储到区块链中,得到属性等级标签对应的属性区块{p1,p2,

,p
n
},使得每一个数据资源r
i
,都有一条完整的溯源链p
i
与之对应,从而提高溯源信息的查询效率;步骤6.3:当数据访问者a对数据资源r
i
发起访问时,系统将自动生成数据访问流转信息并记录上链,首先数据访问者a对待访问数据进行签名得到签名消息σ
a
(r
i
)及访问关键字key形成访问记录tx=(r
i
,key,u
a

a
(r
i
),timestamp)并对所有数据访问信息tx进行打包形成待验证访问集然后对其进行随机分组得到分组信息通过智能合约将访问信息及分组信息广播给所有共识节点,联盟链中的共识节点利用分组共识算法对访问信息进行组内、组间共识完成访问上链;步骤6.4:溯源用户对数据资源r
i
发起溯源查询时,共识节点根据关键字key对溯源链p
i
中访问记录进行查找定位,首先共识节点根据r
i
找到对应的溯源链p
i
,然后根据待查关键字遍历区块及b-m树,提取出key对应的访问信息,访问查找遍历具体执行过程如下:步骤6.4.1:算法对p
i
的按序对每一个区块进行遍历,比对区块头中b-m树的树根,根据其记录关键字的最大值和最小值,判断该区块中是否包含要查询数据,如果包含则进行平衡二叉树遍历搜索,否则校验下一个区块;步骤6.4.2:根据平衡二叉树中key及对应访问地址进行平衡二叉树查找提取出访问信息,完成b-m树遍历后,重复步骤6.4.1查询下一区块直到完成整条访问链的遍历。

技术总结
本发明公开了一种基于区块链的云桌面数据安全共享、溯源方法和系统,包括数据接入层、数据处理和存储层、基于区块链的数据安全层、应用层和用户层。数据接入层包含多种数据接入的办公场景,当数据接入层输入大量数据时,数据处理和存储层中基于数据库集群的云数据库可以保障数据接入服务的稳定性并且满足多个应用系统使用数据的需求;使用基于区块链的跨域数据共享结合基于属性的访问控制模型,实现用户的细粒度访问控制策略,使用基于PBFT共识算法设计分组共识机制和基于AVL树和Merkle树构建访问树形成溯源链完成溯源信息的快速上链和高效查询并有效地保障信息的可靠性和完整性。本发明具备保障用户数据安全性、域间资源共享和数据可追溯等优点。源共享和数据可追溯等优点。源共享和数据可追溯等优点。


技术研发人员:陆震 李岑 张宗凯 李勇 费孔鹤
受保护的技术使用者:中邮建技术有限公司
技术研发日:2023.04.13
技术公布日:2023/7/25
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐