一种基于区块链的可穿戴设备高效数据共享方法
未命名
09-29
阅读:111
评论:0
1.本发明涉及数据共享
技术领域:
:,尤其涉及一种基于区块链的可穿戴设备高效数据共享方法。
背景技术:
::2.数据共享是实现共享数据的一种技术,一般情况下默认其具有隐私保护特点。数据共享平台是以实现数据共享为核心、促进数据融通、交易、设计、服务协同发展的数据共享场所,通过平台可以保障数据提供方的变现需求、丰富数据经纪人的产品开发平台以及拓展数据需求方的数据获取渠道。数据共享一般包含三个实体:数据拥有者(owner):作为数据的实际拥有者,可信,可以选择参与共享的数据;数据共享平台(ds):可以是云平台也可以是区块链平台,可信,主要负责数据存储或者作为数据交易中介;数据请求者(user):通过平台检索所需数据并发起请求,最终获得想要数据。3.wang等人在《spds:asecureandauditableprivatedatasharingschemeforsmartgridbasedonblockchain》提出了一种在智能电网数据处理即服务模式下的安全、可审计的私有数据共享(spds)方案。该方案基于区块链提出了一种新的框架,用于无信任的私有数据计算和数据使用情况跟踪,利用智能合约规定细粒度数据访问策略,同时利用区块链实现数据透明记录。4.该方案引入预言机中tee技术进行链上链下数据交互,但并未考虑区块链链式检索效率低下问题,同时也不能适用于多云共享场景。5.在wang等人提出的智能电网安全、可审计的私有数据共享(spds)方案中,首先,提出了一个基于区块链的安全个人数据共享框架,用于细粒度的数据访问控制,使用户可以完全控制其共享的私人数据;其次,为了解决智能合约中的数据隐私和计算,利用tee进行链下智能合约执行,以处理机密用户数据,设计了两阶段原子交付协议,以保证数据交易在计算结果发布和支付时的原子性。最后,提出了一种合同理论模型,用于在垄断数据市场中优化合同设计,以满足用户在个人数据共享中独特的隐私偏好。该方案虽然考虑到区块链存储受限问题,但并未深究区块链链式检索效率低下问题,同时也无法直接适用于可穿戴设备多云数据共享中。技术实现要素:6.针对现有技术的不足,本发明设计一种基于区块链的可穿戴设备高效数据共享方法。本发明数据共享平台是基于区块链的,共享主要有四个步骤:初始化阶段、上传数据阶段、检索数据与请求阶段和共享数据阶段;初始化阶段:数据请求者向数据共享平台发起注册请求,平台会根据其身份为其分配密钥;上传数据阶段:数据拥有者将要共享的机密数据上传到共享平台并做好存证;检索数据与请求阶段:利用平台的检索机制,快速检索想要数据并发起请求;共享数据阶段:数据拥有者利用数据共享平台将数据共享给使用者。如果发生纠纷,可通过区块链存证进行纠纷处理。7.一种基于区块链的可穿戴设备高效数据共享方法,具体包括以下内容:8.首先建立高效数据共享平台系统,包括以下三个成员:9.数据拥有者owner:由可穿戴设备和其紧密关联的私有云组成,拥有数据所有权和可信的成员,针对此成员设定了隐私保护;10.数据共享平台ds:由区块链充当数据共享的中介,负责存储数据描述信息和数据存证,数据请求者需要在ds中注册才能通过数据共享获得想要的数据,如共享双方发生纠纷由数据共享平台进行纠纷处理;11.数据请求者user:负责通过基于区块链的数据共享平台检索数据并发起请求,包括:研究所、统计局和医院对可穿戴设备数据有需求的机构个人;12.可穿戴设备数据利用共享平台系统进行共享,具体包括以下步骤:13.步骤1:系统初始化;每个useri在数据共享平台ds中进行身份注册后参与共享;14.setup(1k):数据共享平台选定一条椭圆曲线ep(a,b),随机选择椭圆曲线上一点作为基点,记为g;15.register_u():每个数据请求者useri向数据共享平台发起注册请求,ds选取随机数ki作为该用户私钥,并计算公钥ki=kig,将(ki,ki)返还数据请求者useri;公开基本参数para={ep(a,b),g,ki};16.register_o():每个数据拥有者ownerj向数据共享平台发起注册请求,ds选取随机数kj作为该用户私钥,并计算公钥kj=kjg,将(kj,kj)返还数据拥有者ownerj;公开基本参数para={ep(a,b),g,kj};17.步骤2:数据拥有者上传数据到数据共享平台;18.每个数据拥有者ownerj对共享数据的唯一标识符属性id盲化,替换为“@@@”,对准标识符属性qi进行泛化身份隐私保护后,为共享数据生成数据描述、数据证据和数据地址(desjx,h(mjx),addjx)并为其生成签名δ;然后将其上传到数据共享平台等待共享;输出匿名数据集t′;共享平台收到上传数据后首先使用ownerj的公钥kj验证其签名的正确性,如果不正确则拒绝上传;19.所述泛化采用progressive算法,该算法允许数据拥有者设置敏感值在数据集中出现的频率约束阈值且所设置的应大于或等于敏感值在数据集中出现的频率;该算法通过将数据集中满足匿名约束的数据子集移出、存入匿名表中,然后选择熵值最大的属性进行泛化来实现数据的k-匿名化并满足匿名数据等价类中的敏感值频率不大于的匿名要求;对于数据集中的标准属性qi,该算法依据的熵计算公式为:[0020][0021]其中,p(v)表示属性v在属性qi取值中出现的频率;[0022]该算法的思想具体为:[0023](1)对于待发布的原始数据集t,当t不为空时,执行(2)至(5),直到t为空;[0024](2)将己满足匿名约束的数据子集从原始数据表t中移出并存入匿名表t′;[0025](3)计算剩下数据集dr中根据匿名约束条件可以进一步选择移出的数据元组数qmax;[0026](4)选择满足匿名约束的元组移出并存入匿名表t′;[0027](5)如果移出满足匿名约束的元组之后,数据集t仍不为空,则计算属性的熵,并选择熵值最大的属性进行泛化;[0028]步骤3:数据请求者检索数据,并进行数据请求;[0029]request():数据请求者useri通过数据共享平台检索所需数据,并发起数据请求,请求方式为(req,δ);[0030]共享平台收到请求者useri的请求后,首先使用useri的公钥ki验证其签名的有效性,如果无效,则拒绝该请求;否则,分别执行基于信誉机制的共享选择策略、chained-index索引结构和cmerkle区块结构进行数据检索;[0031]所述chained-index区块链分类索引由地域、年龄信息组成的i级分类索引,心率、睡眠、体重、体脂组成的ii级分类索引,数据所有信息组成的iii级索引组成,具体工作流程为:[0032]首先通过i级索引定位到地域、年龄,其次通过ii级索引定位到所求数据指标;iii级索引中的私有云选择详见下文基于信誉机制的共享选择策略;最后,通过共享选择策选出参与共享的私有云并定位所求数据位置;[0033]基于信誉机制的共享选择策略如下所示:[0034]本策略通过对数据拥有者权重排序,选择权重最高的数据拥有者参与共享;如果该数据拥有者的数据量未达到数据用户请求量,则次高者也参与共享;该策略分为前期准备阶段和权重更新阶段,具体如下:[0035]前期准备阶段:[0036]假定有n个数据拥有者参与共享,每个数据拥有者的贡献量为cj,其中数据贡献条数,以百条为单位,设定初始权重总值为n,为每个数据拥有者计算初始权值:[0037][0038]权重更新阶段:[0039]参与共享完更新;[0040]如果该数据拥有者参与了此轮共享,则其权重减为:[0041][0042]如果该数据拥有者未参此轮共享,则其权重增加为:[0043][0044]每月根据最近一个月上传数量进行权重更新;[0045]假定每个数据拥有者的贡献增量为cj′,数据共享条数,以百条为单位,更新后的权重为:[0046][0047]所述cmerkle区块结构节点分为两类:叶子节点和非叶子节点,叶子节点包含四个参数(a,addjx,j,hashjx),a代表心率数据,b、c、d分别代表睡眠、体重、体脂数据;addjx代表该数据存储地址,方便完成后续查找;j代表该数据所属私有云;hashjx的计算方法为hashjx=hash(a||addjx||j);其中cmerkle树中的每个非叶子节点增加了代表数据类型的向量,依次代表该节点包含的心率、睡眠、体重、体脂数据数量,hash的计算方法为hash=hash(1||1||0||0||childhashleft||childhashright);具体工作流程为:[0048]首先通过cmerkle树根节点的参数判断此类数据存储条数;其次遍历存储数据的左子树,判断拥有数据量;继续深入遍历到叶子节点结束,通过叶子节点中参数判断数据所属者,如果满足条件的数据达到用户请求数则终止查询;否则,继续遍历直到找到所有所求数据为止;[0049]步骤4:数据拥有者与数据请求者进行共享数据;[0050]share():每个数据拥有者ownerj选取随机数rjx,并计算部分解密密钥rjxg、密文cjx=mjx+rjxki;随后将cjx发送给数据请求者useri,将部分解密密钥rjxg通过上传到基于区块链的数据共享平台上;数据请求者useri通过数据共享平台获取部分解密密钥rjxg;最后通过计算cjx-rjxgki获得mjx;如果共享涉及多个数据拥有者,数据请求者会收到多批数据;[0051]步骤5:数据拥有者与数据请求者进行纠纷仲裁;[0052]如果发生数据请求者useri否认收到数据拥有者ownerj提供的数据mjx,则数据共享平台会进行仲裁纠纷,如果区块链记录中有useri请求ownerj提供的部分解密密钥的记录,则证明数据请求者useri恶意诋毁数据拥有者;否则,查看数据拥有者ownerj是否上传部分解密密钥。[0053]采用上述技术方案所产生的有益效果在于:[0054]本发明设计一种适合分类检索的区块结构和区块链索引,从而实现高效数据检索,能够有效降低数据共享耗时;其次,本发明需要设计一种共享选择策略,帮助选择合适的数据拥有者参与共享;最后,本发明设计的数据共享协议,应该满足效率高,鲁棒性高和隐私性好。[0055]本发明提出了一种高效的、隐私性好的可穿戴设备数据共享方法,提出了一种基于区块链的数据共享平台。为了实现高效率,分别设计了chained-index区块链分类索引结构、cmerkle区块结构和基于信誉机制的共享选择策略,以确保共享任务在短时间内完成。此外,为了实现隐私保护下的共享,本发明还提出了一种身份隐私和数据隐私保护方法。附图说明[0056]图1为本发明实施例可穿戴设备数据共享模型图;[0057]图2为本发明实施例chained-index区块链分类检索结构;[0058]图3为本发明实施例cmerkle区块结构;[0059]图4为本发明实施例身份隐私保护之盲化、泛化示例。具体实施方式[0060]下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。[0061]本发明提出了一种高效的、隐私性好的可穿戴设备数据共享方法,提出了一种基于区块链的数据共享平台。其特点可以概括为:首先,设计了一个基于区块链的可穿戴设备数据共享模型,为数据拥有者和数据请求者之间搭建数据共享的桥梁。其次,设计了chained-index区块链分类索引结构、cmerkle区块结构和基于信誉机制的共享选择策略,以确保共享任务在短时间内完成。此外,为了实现隐私保护下的共享,本发明还提出了一种身份隐私和数据隐私保护方法。[0062]首先建立高效数据共享平台系统,如附图1所示,包括以下三个成员:[0063]数据拥有者owner:由可穿戴设备和其紧密关联的私有云组成,拥有数据所有权和可信的成员,针对此成员设定了隐私保护;[0064]数据共享平台ds:由区块链充当数据共享的中介,负责存储数据描述信息和数据存证,数据请求者需要在ds中注册才能通过数据共享获得想要的数据,如共享双方发生纠纷由数据共享平台进行纠纷处理;[0065]数据请求者user:负责通过基于区块链的数据共享平台检索数据并发起请求,包括:研究所、统计局和医院对可穿戴设备数据有需求的机构个人;[0066]可穿戴设备数据利用共享平台系统进行共享,具体包括以下步骤:[0067]步骤1:系统初始化。每个useri在数据共享平台(ds)中进行身份注册后方可参与共享。[0068]本实例中选择的椭圆曲线为e(2,2):y2≡x3+2x+2mod17,基点g为(5,1)。[0069]setup(1k):数据共享平台选定一条椭圆曲线ep(a,b),随机选择椭圆曲线上一点作为基点,记为g。[0070]register_u():每个数据请求者useri向数据共享平台发起注册请求,ds选取随机数ki作为该用户私钥,并计算公钥ki=kig,将(ki,ki)返还数据请求者useri。公开基本参数para={ep(a,b),g,ki}。以请求者user1为例,k1=2,k1=(6,3)。[0071]register_o():每个数据拥有者ownerj向数据共享平台发起注册请求,ds选取随机数kj作为该用户私钥,并计算公钥kj=kjg,将(kj,kj)返还数据拥有者ownerj。公开基本参数para={ep(a,b),g,kj}。以数据拥有者owner3为例,k3=3,k3=(10,6)。[0072]步骤2:数据拥有者上传数据到数据共享平台;[0073]数据拥有者上传数据:[0074]首先每个数据拥有者ownerj对共享数据进行身份隐私保护,以图4为例进行以下说明:图4为体重、体脂数据隐私保护的方法,第一步,对直接代表用户信息的姓名进行盲化处理,统一改成字符“@@@”;第二步,对于年龄数据采用泛化的方式,将具体的年龄包含到某一范围内。例如:27岁变成30岁,31岁变成35岁。[0075]随后,ownerj为共享数据生成数据描述与数据证据(decjx,h(mjx)),并连同数据地址(desjx,h(mjx),addjx)一同上传到数据共享平台中。但还需要执行以下阶段为其签名。[0076]步骤2-1:随机选择整数c,c∈[1,n-1]。[0077]步骤2-2:计算p(x,y)=cg,计算r=xmodn,如果r=0,则跳回步骤2-1;[0078]步骤2-3:计算t=c-1modn。[0079]步骤2-4:计算e=h(decjx||h(mjx)||addjx||timestamp),其中h是sha-1哈希函数,会产生160位的哈希值。[0080]步骤2-5:计算s=c-1(e+k3r)modn,如果s=0,则跳至步骤2-1。[0081]步骤2-6:最终得到签名δ=(r,s)。[0082]步骤2-7:最后,将decjx,h(mjx),addjx,δ上传到数据共享平台等待共享。[0083]数据共享平台审核:[0084]数据共享平台收到数据拥有者上传的信息后,首先通过如下方式验证签名,通过后该数据才可参与共享,未通过会向数据拥有者发送签名错误警告。[0085]签名验证方法:[0086]检验r和s是否为1到n-1之间的整数。[0087]使用sha-1计算e=h(decjx||h(mjx)||addjx||timestamp)。[0088]计算w=s-1modn。[0089]计算u1=ew,u2=rw。[0090]计算解点x=(x1,y1)=u1g+u2k3。[0091]如果x=0,则拒绝改签名;否则计算v=x1modn。[0092]当且仅当v=r时接收该签名。[0093]步骤3:数据请求者检索数据,并进行数据请求;[0094]request():数据用户useri通过数据共享平台检索所需数据,并发起数据请求(例如:请求1000条20-30岁的心率数据);[0095]以user1为例,user1请求数据时也需进行签名,签名方式如下:[0096]步骤3-1:随机选择整数c',c'∈[1,n-1]。[0097]步骤3-2:计算p'(x',y')=c'g,计算r'=x'modn,如果r'=0,则跳回步骤3-1;[0098]步骤3-3:计算t'=c'-1modn。[0099]步骤3-4:计算e'=h(req||timestamp),其中h是sha-1哈希函数,会产生160位的哈希值。[0100]步骤3-5:计算s'=c'-1(e'+k1r')modn,如果s'=0,则跳至步骤3-1。[0101]步骤3-6:最终得到签名δ'=(r',s')。[0102]步骤3-7:最后,将deq,δ'上传到数据共享平台等待共享。[0103]共享平台验证签名及查询,具体过程如下:[0104]检验r'和s'是否为1到n-1之间的整数。[0105]使用sha-1计算e'=h(req||timestamp)。[0106]计算w'=s'-1modn。[0107]计算u1'=e'w',u2'=r'w'。[0108]计算解点x'=(x'1,y'1)=u1'g+u2'k1。[0109]如果x'=0,则拒绝改签名;否则计算v'=x1'modn。[0110]当且仅当v'=r'时接收该签名。[0111]如果签名被拒绝,数据请求者即user1需要重新发送请求;否则,执行以下检索步骤,找到user1请求数据所在位置。[0112]首先,数据共享平台根据共享选择策略,对数据拥有者的信誉进行排序,根据数据请求者(user1)的请求数据量选取参与共享的数据拥有者。[0113]然后,利用chained-index索引结构定位到数据所在的具体区块,查询方式为层次遍历。[0114]如附图2所示;[0115]最后,利用改进的cmerkle结构查询各个区块中数据所在位置,如附图3所示,需要注意的是,可以将多个数据拥有者的数据一起查询,以减少遍历次数。如(1,1,0,0,hash)代表该节点的孩子节点包含一个心率数据和一个睡眠数据;[0116]假设数据请求者user1需要通过数据共享平台请求50条某区20-30岁心率数据。假设数据拥有者的信誉排名为owner1>owner3>owner4>owner2。其中,owner1的权值为25,owner2的权值为12,owner3的权值为23,owner4的权值为20,假定初始权值为5。此外,owner1拥有某区20-30岁心率数据30条;owner2拥有某区20-30岁心率数据30条;owner3拥有某区20-30岁心率数据18条;owner4拥有某区20-30岁心率数据10条。[0117]以下为数据共享平台将执行的查询(检索)步骤:[0118]步骤s1:根据信誉共享选择策略,对各个数据拥有者进行排序。通过共享选择策略可知,率先参与共享的是owner1,由于其拥有数据不足以满足user1需求,故owner3也参与共享,以此类推owner4也成为共享该数据一员。其中,owner1贡献的数据量为30条,其权值更新为21;owner2贡献的数据量为0条,其权值更新为16;owner3贡献的数据量为18条,其权值更新为19;owner4贡献的数据量为2条,其权值更新为16。[0119]步骤s2:需要通过层次遍历区块链分类索引chained-index,根据步骤s1中各个数据拥有者拥有数据情况和数据请求者user1的需求,查询到这些共享数据所在的具体区块。[0120]假设通过chained-index查询到的结果为:owner1(1,3)(3,10)(5,15)(7,2);owner2(2,15)(4,10)(7,5);owner3(6,15)(8,3);owner4(8,5)(9,5)。[0121]以owner1为例,上述代表owner1拥有的某区20-30岁心率数据在各个区块的分布情况,具体为在区块1中有3条,在区块3中有10条,在区块5有15条,区块7中有2条。由此可知,owner3的数据分别在区块6有15条,在区块8有3条;owner4的数据分别在区块8有5条,在区块9有5条。[0122]通过chained-index可以定位到具体数据所在区块,例如:owner1(1,3)代表区块1中有3个所求数据;owner2(2,15)代表区块2中有15条所求数据;owner3(6,15)代表区块6中有15条所求数据;owner4(8,5)代表区块8中有5条所求数据。[0123]步骤s3:数据共享平台执行完步骤s1、步骤s2之后,需要依据cmerkle区块结构查询到共享数据存储的具体位置,辅助user1完成数据请求。[0124]以owner1(1,3)为例。随后可通过cmerkle查询到具体的3条数据。cmerkle区块结构与区块链本身的merkle区块结构的区别在于增加了代表哪类数据数量的向量,可以提高树结构的检索效率。以每个区块含有16个数据信息为例,owner1中首先会定位到区块1,然后层次遍历该区块,因为user1的需求是心率数据只需查看每个区块向量的第一维即可判断本区块含有的心率数据数量,然后检索时首先查看第一维是否为0,如果为0,则无需查看该分支,如果不为0则继续向下遍历,直至找到3条owner1所提供的数据停止。[0125]此外,需要注意的是,接下来将要以上述步骤s3实例中owner3和owner4的区块定位为例,论述上述未提及的一种查询情况。首先,区块8中有owner3的3条某区20-30岁心率数据和5条owner4的该数据,在查询时,可以综合到一起查询,即:查询时首先查看第一维是否为0,如果为0,则无需查看该分支,如果不为0则继续向下遍历,直至找到3条owner3的心率数据和2条owner4的心率数据(只需查询两条数据的原因是owner3在此次共享中的信誉排名为第三,只需提供user1所求数据量和前两位数据拥有者提供的数据量之差)。[0126]步骤4:共享数据阶段。[0127]share():每个数据拥有者ownerj选取随机数rjx,并计算部分解密密钥kj=rjxg、密文cjx=mjx+rjxki。随后将cjx发送给数据请求者useri,将部分解密密钥rjxg通过上传到基于区块链的数据共享平台上。数据请求者useri通过数据共享平台获取部分解密密钥rjxg。左后通过计算cjx-rjxgki获得mjx。需要注意的是,如果共享涉及多个数据拥有者,数据请求者会收到多批数据。以上述owner3为例,选取随机数rjx=4,计算的部分解密密钥为rjxg=(3,1),共享数据mjx映射到的点为(0,1),则加密后的密文cjx=(0,1)+(3,1)=(14,16)。[0128]步骤5:纠纷仲裁阶段;[0129]如果发生数据请求者useri否认收到数据拥有者ownerj提供的数据mjx,则数据共享平台会进行仲裁纠纷,如果区块链记录中有useri请求ownerj提供的部分解密密钥的记录,则证明数据请求者useri恶意诋毁数据拥有者。否则,查看数据拥有者ownerj是否上传部分解密密钥。当前第1页12当前第1页12
技术特征:
1.一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,首先建立高效数据共享平台系统,包括以下三个成员:数据拥有者owner:由可穿戴设备和其紧密关联的私有云组成,拥有数据所有权和可信的成员,针对此成员设定了隐私保护;数据共享平台ds:由区块链充当数据共享的中介,负责存储数据描述信息和数据存证,数据请求者需要在ds中注册才能通过数据共享获得想要的数据,如共享双方发生纠纷由数据共享平台进行纠纷处理;数据请求者user:负责通过基于区块链的数据共享平台检索数据并发起请求,包括:研究所、统计局和医院对可穿戴设备数据有需求的机构个人。2.根据权利要求1所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,可穿戴设备数据利用共享平台系统进行共享,具体包括以下步骤:步骤1:系统初始化;每个user
i
在数据共享平台ds中进行身份注册后参与共享;步骤2:数据拥有者上传数据到数据共享平台;步骤3:数据请求者检索数据,并进行数据请求;步骤4:数据拥有者与数据请求者进行共享数据;步骤5:数据拥有者与数据请求者进行纠纷仲裁。3.根据权利要求2所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,步骤1具体为:setup(1
k
):数据共享平台选定一条椭圆曲线e
p
(a,b),随机选择椭圆曲线上一点作为基点,记为g;register_u():每个数据请求者user
i
向数据共享平台发起注册请求,ds选取随机数k
i
作为该用户私钥,并计算公钥k
i
=k
i
g,将(k
i
,k
i
)返还数据请求者user
i
;公开基本参数para={e
p
(a,b),g,k
i
};register_o():每个数据拥有者owner
j
向数据共享平台发起注册请求,ds选取随机数k
j
作为该用户私钥,并计算公钥k
j
=k
j
g,将(k
j
,k
j
)返还数据拥有者owner
j
;公开基本参数para={e
p
(a,b),g,k
j
}。4.根据权利要求2所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,步骤2每个数据拥有者owner
j
对共享数据的唯一标识符属性id盲化,替换为“@@@”,对准标识符属性qi进行泛化身份隐私保护后,为共享数据生成数据描述、数据证据和数据地址(des
jx
,h(m
jx
),add
jx
)并为其生成签名δ;然后将其上传到数据共享平台等待共享;输出匿名数据集t
′
;共享平台收到上传数据后首先使用owner
j
的公钥k
j
验证其签名的正确性,如果不正确则拒绝上传。5.根据权利要求4所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,所述泛化采用progressive算法,该算法允许数据拥有者设置敏感值在数据集中出现的频率约束阈值且所设置的应大于或等于敏感值在数据集中出现的频率;该算法通过将数据集中满足匿名约束的数据子集移出、存入匿名表中,然后选择熵值最大的属性进行泛化来实现数据的k-匿名化并满足匿名数据等价类中的敏感值频率不大于的匿名要求;对于数据集中的标准属性q
i
,该算法依据的熵计算公式为:
其中,p(v)表示属性v在属性q
i
取值中出现的频率;该算法的思想具体为:(1)对于待发布的原始数据集t,当t不为空时,执行(2)至(5),直到t为空;(2)将己满足匿名约束的数据子集从原始数据表t中移出并存入匿名表t
′
;(3)计算剩下数据集d
r
中根据匿名约束条件可以进一步选择移出的数据元组数q
max
;(4)选择满足匿名约束的元组移出并存入匿名表t
′
;(5)如果移出满足匿名约束的元组之后,数据集t仍不为空,则计算属性的熵,并选择熵值最大的属性进行泛化。6.根据权利要求2所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,步骤3具体为:request():数据请求者user
i
通过数据共享平台检索所需数据,并发起数据请求,请求方式为(req,δ);共享平台收到请求者user
i
的请求后,首先使用user
i
的公钥k
i
验证其签名的有效性,如果无效,则拒绝该请求;否则,分别执行基于信誉机制的共享选择策略、利用chained-index索引结构和cmerkle区块结构进行数据检索。7.根据权利要求6所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,所述chained-index区块链分类索引由地域、年龄信息组成的i级分类索引,心率、睡眠、体重、体脂组成的ii级分类索引,数据所有信息组成的iii级索引组成,具体工作流程为:首先通过i级索引定位到地域、年龄,其次通过ii级索引定位到所求数据指标;iii级索引中的私有云选择详见下文基于信誉机制的共享选择策略;最后,通过共享选择策选出参与共享的私有云并定位所求数据位置;基于信誉机制的共享选择策略如下所示:本策略通过对数据拥有者权重排序,选择权重最高的数据拥有者参与共享;如果该数据拥有者的数据量未达到数据用户请求量,则次高者也参与共享;该策略分为前期准备阶段和权重更新阶段,具体如下:前期准备阶段:假定有n个数据拥有者参与共享,每个数据拥有者的贡献量为cj,其中数据贡献条数,以百条为单位,设定初始权重总值为n,为每个数据拥有者计算初始权值:权重更新阶段:参与共享完更新;如果该数据拥有者参与了此轮共享,则其权重减为:如果该数据拥有者未参此轮共享,则其权重增加为:
每月根据最近一个月上传数量进行权重更新;假定每个数据拥有者的贡献增量为c
j
′
,数据共享条数,以百条为单位,更新后的权重为:所述cmerkle区块结构节点分为两类:叶子节点和非叶子节点,叶子节点包含四个参数(a,add
jx
,j,hash
jx
),a代表心率数据,b、c、d分别代表睡眠、体重、体脂数据;add
jx
代表该数据存储地址,方便完成后续查找;j代表该数据所属私有云;hash
jx
的计算方法为hash
jx
=hash(a||add
jx
||j);其中cmerkle树中的每个非叶子节点增加了代表数据类型的向量,依次代表该节点包含的心率、睡眠、体重、体脂数据数量,hash的计算方法为hash=hash(1||1||0||0||childhash
left
||childhash
right
);具体工作流程为:首先通过cmerkle树根节点的参数判断此类数据存储条数;其次遍历存储数据的左子树,判断拥有数据量;继续深入遍历到叶子节点结束,通过叶子节点中参数判断数据所属者,如果满足条件的数据达到用户请求数则终止查询;否则,继续遍历直到找到所有所求数据为止。8.根据权利要求2所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,步骤4具体为:share():每个数据拥有者owner
j
选取随机数r
jx
,并计算部分解密密钥r
jx
g、密文c
jx
=m
jx
+r
jx
k
i
;随后将c
jx
发送给数据请求者user
i
,将部分解密密钥r
jx
g通过上传到基于区块链的数据共享平台上;数据请求者user
i
通过数据共享平台获取部分解密密钥r
jx
g;最后通过计算c
jx-r
jx
gk
i
获得m
jx
;如果共享涉及多个数据拥有者,数据请求者会收到多批数据。9.根据权利要求2所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,步骤5具体为:如果发生数据请求者user
i
否认收到数据拥有者owner
j
提供的数据m
jx
,则数据共享平台会进行仲裁纠纷,如果区块链记录中有user
i
请求owner
j
提供的部分解密密钥的记录,则证明数据请求者user
i
恶意诋毁数据拥有者;否则,查看数据拥有者owner
j
是否上传部分解密密钥。
技术总结
本发明涉及一种基于区块链的可穿戴设备高效数据共享方法,首先建立包括数据拥有者Owner,数据共享平台DS和数据请求者User的高效数据共享平台系统;然后系统进行初始化阶段、上传数据阶段、检索数据与请求阶段和共享数据阶段;所述初始化阶段:数据请求者向数据共享平台发起注册请求,平台会根据其身份为其分配密钥;所述上传数据阶段:数据拥有者将要共享的机密数据上传到共享平台并做好存证;所述检索数据与请求阶段:利用平台的检索机制,快速检索想要数据并发起请求;所述共享数据阶段:数据拥有者利用数据共享平台将数据共享给请求者;如果发生纠纷,可通过区块链存证进行纠纷处理;本发明效率高,鲁棒性高和隐私性好。鲁棒性高和隐私性好。
技术研发人员:史闻博 张蕊 鲁宁 殷井利 马驰原
受保护的技术使用者:东北大学秦皇岛分校
技术研发日:2023.02.22
技术公布日:2023/9/25
技术领域:
:,尤其涉及一种基于区块链的可穿戴设备高效数据共享方法。
背景技术:
::2.数据共享是实现共享数据的一种技术,一般情况下默认其具有隐私保护特点。数据共享平台是以实现数据共享为核心、促进数据融通、交易、设计、服务协同发展的数据共享场所,通过平台可以保障数据提供方的变现需求、丰富数据经纪人的产品开发平台以及拓展数据需求方的数据获取渠道。数据共享一般包含三个实体:数据拥有者(owner):作为数据的实际拥有者,可信,可以选择参与共享的数据;数据共享平台(ds):可以是云平台也可以是区块链平台,可信,主要负责数据存储或者作为数据交易中介;数据请求者(user):通过平台检索所需数据并发起请求,最终获得想要数据。3.wang等人在《spds:asecureandauditableprivatedatasharingschemeforsmartgridbasedonblockchain》提出了一种在智能电网数据处理即服务模式下的安全、可审计的私有数据共享(spds)方案。该方案基于区块链提出了一种新的框架,用于无信任的私有数据计算和数据使用情况跟踪,利用智能合约规定细粒度数据访问策略,同时利用区块链实现数据透明记录。4.该方案引入预言机中tee技术进行链上链下数据交互,但并未考虑区块链链式检索效率低下问题,同时也不能适用于多云共享场景。5.在wang等人提出的智能电网安全、可审计的私有数据共享(spds)方案中,首先,提出了一个基于区块链的安全个人数据共享框架,用于细粒度的数据访问控制,使用户可以完全控制其共享的私人数据;其次,为了解决智能合约中的数据隐私和计算,利用tee进行链下智能合约执行,以处理机密用户数据,设计了两阶段原子交付协议,以保证数据交易在计算结果发布和支付时的原子性。最后,提出了一种合同理论模型,用于在垄断数据市场中优化合同设计,以满足用户在个人数据共享中独特的隐私偏好。该方案虽然考虑到区块链存储受限问题,但并未深究区块链链式检索效率低下问题,同时也无法直接适用于可穿戴设备多云数据共享中。技术实现要素:6.针对现有技术的不足,本发明设计一种基于区块链的可穿戴设备高效数据共享方法。本发明数据共享平台是基于区块链的,共享主要有四个步骤:初始化阶段、上传数据阶段、检索数据与请求阶段和共享数据阶段;初始化阶段:数据请求者向数据共享平台发起注册请求,平台会根据其身份为其分配密钥;上传数据阶段:数据拥有者将要共享的机密数据上传到共享平台并做好存证;检索数据与请求阶段:利用平台的检索机制,快速检索想要数据并发起请求;共享数据阶段:数据拥有者利用数据共享平台将数据共享给使用者。如果发生纠纷,可通过区块链存证进行纠纷处理。7.一种基于区块链的可穿戴设备高效数据共享方法,具体包括以下内容:8.首先建立高效数据共享平台系统,包括以下三个成员:9.数据拥有者owner:由可穿戴设备和其紧密关联的私有云组成,拥有数据所有权和可信的成员,针对此成员设定了隐私保护;10.数据共享平台ds:由区块链充当数据共享的中介,负责存储数据描述信息和数据存证,数据请求者需要在ds中注册才能通过数据共享获得想要的数据,如共享双方发生纠纷由数据共享平台进行纠纷处理;11.数据请求者user:负责通过基于区块链的数据共享平台检索数据并发起请求,包括:研究所、统计局和医院对可穿戴设备数据有需求的机构个人;12.可穿戴设备数据利用共享平台系统进行共享,具体包括以下步骤:13.步骤1:系统初始化;每个useri在数据共享平台ds中进行身份注册后参与共享;14.setup(1k):数据共享平台选定一条椭圆曲线ep(a,b),随机选择椭圆曲线上一点作为基点,记为g;15.register_u():每个数据请求者useri向数据共享平台发起注册请求,ds选取随机数ki作为该用户私钥,并计算公钥ki=kig,将(ki,ki)返还数据请求者useri;公开基本参数para={ep(a,b),g,ki};16.register_o():每个数据拥有者ownerj向数据共享平台发起注册请求,ds选取随机数kj作为该用户私钥,并计算公钥kj=kjg,将(kj,kj)返还数据拥有者ownerj;公开基本参数para={ep(a,b),g,kj};17.步骤2:数据拥有者上传数据到数据共享平台;18.每个数据拥有者ownerj对共享数据的唯一标识符属性id盲化,替换为“@@@”,对准标识符属性qi进行泛化身份隐私保护后,为共享数据生成数据描述、数据证据和数据地址(desjx,h(mjx),addjx)并为其生成签名δ;然后将其上传到数据共享平台等待共享;输出匿名数据集t′;共享平台收到上传数据后首先使用ownerj的公钥kj验证其签名的正确性,如果不正确则拒绝上传;19.所述泛化采用progressive算法,该算法允许数据拥有者设置敏感值在数据集中出现的频率约束阈值且所设置的应大于或等于敏感值在数据集中出现的频率;该算法通过将数据集中满足匿名约束的数据子集移出、存入匿名表中,然后选择熵值最大的属性进行泛化来实现数据的k-匿名化并满足匿名数据等价类中的敏感值频率不大于的匿名要求;对于数据集中的标准属性qi,该算法依据的熵计算公式为:[0020][0021]其中,p(v)表示属性v在属性qi取值中出现的频率;[0022]该算法的思想具体为:[0023](1)对于待发布的原始数据集t,当t不为空时,执行(2)至(5),直到t为空;[0024](2)将己满足匿名约束的数据子集从原始数据表t中移出并存入匿名表t′;[0025](3)计算剩下数据集dr中根据匿名约束条件可以进一步选择移出的数据元组数qmax;[0026](4)选择满足匿名约束的元组移出并存入匿名表t′;[0027](5)如果移出满足匿名约束的元组之后,数据集t仍不为空,则计算属性的熵,并选择熵值最大的属性进行泛化;[0028]步骤3:数据请求者检索数据,并进行数据请求;[0029]request():数据请求者useri通过数据共享平台检索所需数据,并发起数据请求,请求方式为(req,δ);[0030]共享平台收到请求者useri的请求后,首先使用useri的公钥ki验证其签名的有效性,如果无效,则拒绝该请求;否则,分别执行基于信誉机制的共享选择策略、chained-index索引结构和cmerkle区块结构进行数据检索;[0031]所述chained-index区块链分类索引由地域、年龄信息组成的i级分类索引,心率、睡眠、体重、体脂组成的ii级分类索引,数据所有信息组成的iii级索引组成,具体工作流程为:[0032]首先通过i级索引定位到地域、年龄,其次通过ii级索引定位到所求数据指标;iii级索引中的私有云选择详见下文基于信誉机制的共享选择策略;最后,通过共享选择策选出参与共享的私有云并定位所求数据位置;[0033]基于信誉机制的共享选择策略如下所示:[0034]本策略通过对数据拥有者权重排序,选择权重最高的数据拥有者参与共享;如果该数据拥有者的数据量未达到数据用户请求量,则次高者也参与共享;该策略分为前期准备阶段和权重更新阶段,具体如下:[0035]前期准备阶段:[0036]假定有n个数据拥有者参与共享,每个数据拥有者的贡献量为cj,其中数据贡献条数,以百条为单位,设定初始权重总值为n,为每个数据拥有者计算初始权值:[0037][0038]权重更新阶段:[0039]参与共享完更新;[0040]如果该数据拥有者参与了此轮共享,则其权重减为:[0041][0042]如果该数据拥有者未参此轮共享,则其权重增加为:[0043][0044]每月根据最近一个月上传数量进行权重更新;[0045]假定每个数据拥有者的贡献增量为cj′,数据共享条数,以百条为单位,更新后的权重为:[0046][0047]所述cmerkle区块结构节点分为两类:叶子节点和非叶子节点,叶子节点包含四个参数(a,addjx,j,hashjx),a代表心率数据,b、c、d分别代表睡眠、体重、体脂数据;addjx代表该数据存储地址,方便完成后续查找;j代表该数据所属私有云;hashjx的计算方法为hashjx=hash(a||addjx||j);其中cmerkle树中的每个非叶子节点增加了代表数据类型的向量,依次代表该节点包含的心率、睡眠、体重、体脂数据数量,hash的计算方法为hash=hash(1||1||0||0||childhashleft||childhashright);具体工作流程为:[0048]首先通过cmerkle树根节点的参数判断此类数据存储条数;其次遍历存储数据的左子树,判断拥有数据量;继续深入遍历到叶子节点结束,通过叶子节点中参数判断数据所属者,如果满足条件的数据达到用户请求数则终止查询;否则,继续遍历直到找到所有所求数据为止;[0049]步骤4:数据拥有者与数据请求者进行共享数据;[0050]share():每个数据拥有者ownerj选取随机数rjx,并计算部分解密密钥rjxg、密文cjx=mjx+rjxki;随后将cjx发送给数据请求者useri,将部分解密密钥rjxg通过上传到基于区块链的数据共享平台上;数据请求者useri通过数据共享平台获取部分解密密钥rjxg;最后通过计算cjx-rjxgki获得mjx;如果共享涉及多个数据拥有者,数据请求者会收到多批数据;[0051]步骤5:数据拥有者与数据请求者进行纠纷仲裁;[0052]如果发生数据请求者useri否认收到数据拥有者ownerj提供的数据mjx,则数据共享平台会进行仲裁纠纷,如果区块链记录中有useri请求ownerj提供的部分解密密钥的记录,则证明数据请求者useri恶意诋毁数据拥有者;否则,查看数据拥有者ownerj是否上传部分解密密钥。[0053]采用上述技术方案所产生的有益效果在于:[0054]本发明设计一种适合分类检索的区块结构和区块链索引,从而实现高效数据检索,能够有效降低数据共享耗时;其次,本发明需要设计一种共享选择策略,帮助选择合适的数据拥有者参与共享;最后,本发明设计的数据共享协议,应该满足效率高,鲁棒性高和隐私性好。[0055]本发明提出了一种高效的、隐私性好的可穿戴设备数据共享方法,提出了一种基于区块链的数据共享平台。为了实现高效率,分别设计了chained-index区块链分类索引结构、cmerkle区块结构和基于信誉机制的共享选择策略,以确保共享任务在短时间内完成。此外,为了实现隐私保护下的共享,本发明还提出了一种身份隐私和数据隐私保护方法。附图说明[0056]图1为本发明实施例可穿戴设备数据共享模型图;[0057]图2为本发明实施例chained-index区块链分类检索结构;[0058]图3为本发明实施例cmerkle区块结构;[0059]图4为本发明实施例身份隐私保护之盲化、泛化示例。具体实施方式[0060]下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。[0061]本发明提出了一种高效的、隐私性好的可穿戴设备数据共享方法,提出了一种基于区块链的数据共享平台。其特点可以概括为:首先,设计了一个基于区块链的可穿戴设备数据共享模型,为数据拥有者和数据请求者之间搭建数据共享的桥梁。其次,设计了chained-index区块链分类索引结构、cmerkle区块结构和基于信誉机制的共享选择策略,以确保共享任务在短时间内完成。此外,为了实现隐私保护下的共享,本发明还提出了一种身份隐私和数据隐私保护方法。[0062]首先建立高效数据共享平台系统,如附图1所示,包括以下三个成员:[0063]数据拥有者owner:由可穿戴设备和其紧密关联的私有云组成,拥有数据所有权和可信的成员,针对此成员设定了隐私保护;[0064]数据共享平台ds:由区块链充当数据共享的中介,负责存储数据描述信息和数据存证,数据请求者需要在ds中注册才能通过数据共享获得想要的数据,如共享双方发生纠纷由数据共享平台进行纠纷处理;[0065]数据请求者user:负责通过基于区块链的数据共享平台检索数据并发起请求,包括:研究所、统计局和医院对可穿戴设备数据有需求的机构个人;[0066]可穿戴设备数据利用共享平台系统进行共享,具体包括以下步骤:[0067]步骤1:系统初始化。每个useri在数据共享平台(ds)中进行身份注册后方可参与共享。[0068]本实例中选择的椭圆曲线为e(2,2):y2≡x3+2x+2mod17,基点g为(5,1)。[0069]setup(1k):数据共享平台选定一条椭圆曲线ep(a,b),随机选择椭圆曲线上一点作为基点,记为g。[0070]register_u():每个数据请求者useri向数据共享平台发起注册请求,ds选取随机数ki作为该用户私钥,并计算公钥ki=kig,将(ki,ki)返还数据请求者useri。公开基本参数para={ep(a,b),g,ki}。以请求者user1为例,k1=2,k1=(6,3)。[0071]register_o():每个数据拥有者ownerj向数据共享平台发起注册请求,ds选取随机数kj作为该用户私钥,并计算公钥kj=kjg,将(kj,kj)返还数据拥有者ownerj。公开基本参数para={ep(a,b),g,kj}。以数据拥有者owner3为例,k3=3,k3=(10,6)。[0072]步骤2:数据拥有者上传数据到数据共享平台;[0073]数据拥有者上传数据:[0074]首先每个数据拥有者ownerj对共享数据进行身份隐私保护,以图4为例进行以下说明:图4为体重、体脂数据隐私保护的方法,第一步,对直接代表用户信息的姓名进行盲化处理,统一改成字符“@@@”;第二步,对于年龄数据采用泛化的方式,将具体的年龄包含到某一范围内。例如:27岁变成30岁,31岁变成35岁。[0075]随后,ownerj为共享数据生成数据描述与数据证据(decjx,h(mjx)),并连同数据地址(desjx,h(mjx),addjx)一同上传到数据共享平台中。但还需要执行以下阶段为其签名。[0076]步骤2-1:随机选择整数c,c∈[1,n-1]。[0077]步骤2-2:计算p(x,y)=cg,计算r=xmodn,如果r=0,则跳回步骤2-1;[0078]步骤2-3:计算t=c-1modn。[0079]步骤2-4:计算e=h(decjx||h(mjx)||addjx||timestamp),其中h是sha-1哈希函数,会产生160位的哈希值。[0080]步骤2-5:计算s=c-1(e+k3r)modn,如果s=0,则跳至步骤2-1。[0081]步骤2-6:最终得到签名δ=(r,s)。[0082]步骤2-7:最后,将decjx,h(mjx),addjx,δ上传到数据共享平台等待共享。[0083]数据共享平台审核:[0084]数据共享平台收到数据拥有者上传的信息后,首先通过如下方式验证签名,通过后该数据才可参与共享,未通过会向数据拥有者发送签名错误警告。[0085]签名验证方法:[0086]检验r和s是否为1到n-1之间的整数。[0087]使用sha-1计算e=h(decjx||h(mjx)||addjx||timestamp)。[0088]计算w=s-1modn。[0089]计算u1=ew,u2=rw。[0090]计算解点x=(x1,y1)=u1g+u2k3。[0091]如果x=0,则拒绝改签名;否则计算v=x1modn。[0092]当且仅当v=r时接收该签名。[0093]步骤3:数据请求者检索数据,并进行数据请求;[0094]request():数据用户useri通过数据共享平台检索所需数据,并发起数据请求(例如:请求1000条20-30岁的心率数据);[0095]以user1为例,user1请求数据时也需进行签名,签名方式如下:[0096]步骤3-1:随机选择整数c',c'∈[1,n-1]。[0097]步骤3-2:计算p'(x',y')=c'g,计算r'=x'modn,如果r'=0,则跳回步骤3-1;[0098]步骤3-3:计算t'=c'-1modn。[0099]步骤3-4:计算e'=h(req||timestamp),其中h是sha-1哈希函数,会产生160位的哈希值。[0100]步骤3-5:计算s'=c'-1(e'+k1r')modn,如果s'=0,则跳至步骤3-1。[0101]步骤3-6:最终得到签名δ'=(r',s')。[0102]步骤3-7:最后,将deq,δ'上传到数据共享平台等待共享。[0103]共享平台验证签名及查询,具体过程如下:[0104]检验r'和s'是否为1到n-1之间的整数。[0105]使用sha-1计算e'=h(req||timestamp)。[0106]计算w'=s'-1modn。[0107]计算u1'=e'w',u2'=r'w'。[0108]计算解点x'=(x'1,y'1)=u1'g+u2'k1。[0109]如果x'=0,则拒绝改签名;否则计算v'=x1'modn。[0110]当且仅当v'=r'时接收该签名。[0111]如果签名被拒绝,数据请求者即user1需要重新发送请求;否则,执行以下检索步骤,找到user1请求数据所在位置。[0112]首先,数据共享平台根据共享选择策略,对数据拥有者的信誉进行排序,根据数据请求者(user1)的请求数据量选取参与共享的数据拥有者。[0113]然后,利用chained-index索引结构定位到数据所在的具体区块,查询方式为层次遍历。[0114]如附图2所示;[0115]最后,利用改进的cmerkle结构查询各个区块中数据所在位置,如附图3所示,需要注意的是,可以将多个数据拥有者的数据一起查询,以减少遍历次数。如(1,1,0,0,hash)代表该节点的孩子节点包含一个心率数据和一个睡眠数据;[0116]假设数据请求者user1需要通过数据共享平台请求50条某区20-30岁心率数据。假设数据拥有者的信誉排名为owner1>owner3>owner4>owner2。其中,owner1的权值为25,owner2的权值为12,owner3的权值为23,owner4的权值为20,假定初始权值为5。此外,owner1拥有某区20-30岁心率数据30条;owner2拥有某区20-30岁心率数据30条;owner3拥有某区20-30岁心率数据18条;owner4拥有某区20-30岁心率数据10条。[0117]以下为数据共享平台将执行的查询(检索)步骤:[0118]步骤s1:根据信誉共享选择策略,对各个数据拥有者进行排序。通过共享选择策略可知,率先参与共享的是owner1,由于其拥有数据不足以满足user1需求,故owner3也参与共享,以此类推owner4也成为共享该数据一员。其中,owner1贡献的数据量为30条,其权值更新为21;owner2贡献的数据量为0条,其权值更新为16;owner3贡献的数据量为18条,其权值更新为19;owner4贡献的数据量为2条,其权值更新为16。[0119]步骤s2:需要通过层次遍历区块链分类索引chained-index,根据步骤s1中各个数据拥有者拥有数据情况和数据请求者user1的需求,查询到这些共享数据所在的具体区块。[0120]假设通过chained-index查询到的结果为:owner1(1,3)(3,10)(5,15)(7,2);owner2(2,15)(4,10)(7,5);owner3(6,15)(8,3);owner4(8,5)(9,5)。[0121]以owner1为例,上述代表owner1拥有的某区20-30岁心率数据在各个区块的分布情况,具体为在区块1中有3条,在区块3中有10条,在区块5有15条,区块7中有2条。由此可知,owner3的数据分别在区块6有15条,在区块8有3条;owner4的数据分别在区块8有5条,在区块9有5条。[0122]通过chained-index可以定位到具体数据所在区块,例如:owner1(1,3)代表区块1中有3个所求数据;owner2(2,15)代表区块2中有15条所求数据;owner3(6,15)代表区块6中有15条所求数据;owner4(8,5)代表区块8中有5条所求数据。[0123]步骤s3:数据共享平台执行完步骤s1、步骤s2之后,需要依据cmerkle区块结构查询到共享数据存储的具体位置,辅助user1完成数据请求。[0124]以owner1(1,3)为例。随后可通过cmerkle查询到具体的3条数据。cmerkle区块结构与区块链本身的merkle区块结构的区别在于增加了代表哪类数据数量的向量,可以提高树结构的检索效率。以每个区块含有16个数据信息为例,owner1中首先会定位到区块1,然后层次遍历该区块,因为user1的需求是心率数据只需查看每个区块向量的第一维即可判断本区块含有的心率数据数量,然后检索时首先查看第一维是否为0,如果为0,则无需查看该分支,如果不为0则继续向下遍历,直至找到3条owner1所提供的数据停止。[0125]此外,需要注意的是,接下来将要以上述步骤s3实例中owner3和owner4的区块定位为例,论述上述未提及的一种查询情况。首先,区块8中有owner3的3条某区20-30岁心率数据和5条owner4的该数据,在查询时,可以综合到一起查询,即:查询时首先查看第一维是否为0,如果为0,则无需查看该分支,如果不为0则继续向下遍历,直至找到3条owner3的心率数据和2条owner4的心率数据(只需查询两条数据的原因是owner3在此次共享中的信誉排名为第三,只需提供user1所求数据量和前两位数据拥有者提供的数据量之差)。[0126]步骤4:共享数据阶段。[0127]share():每个数据拥有者ownerj选取随机数rjx,并计算部分解密密钥kj=rjxg、密文cjx=mjx+rjxki。随后将cjx发送给数据请求者useri,将部分解密密钥rjxg通过上传到基于区块链的数据共享平台上。数据请求者useri通过数据共享平台获取部分解密密钥rjxg。左后通过计算cjx-rjxgki获得mjx。需要注意的是,如果共享涉及多个数据拥有者,数据请求者会收到多批数据。以上述owner3为例,选取随机数rjx=4,计算的部分解密密钥为rjxg=(3,1),共享数据mjx映射到的点为(0,1),则加密后的密文cjx=(0,1)+(3,1)=(14,16)。[0128]步骤5:纠纷仲裁阶段;[0129]如果发生数据请求者useri否认收到数据拥有者ownerj提供的数据mjx,则数据共享平台会进行仲裁纠纷,如果区块链记录中有useri请求ownerj提供的部分解密密钥的记录,则证明数据请求者useri恶意诋毁数据拥有者。否则,查看数据拥有者ownerj是否上传部分解密密钥。当前第1页12当前第1页12
技术特征:
1.一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,首先建立高效数据共享平台系统,包括以下三个成员:数据拥有者owner:由可穿戴设备和其紧密关联的私有云组成,拥有数据所有权和可信的成员,针对此成员设定了隐私保护;数据共享平台ds:由区块链充当数据共享的中介,负责存储数据描述信息和数据存证,数据请求者需要在ds中注册才能通过数据共享获得想要的数据,如共享双方发生纠纷由数据共享平台进行纠纷处理;数据请求者user:负责通过基于区块链的数据共享平台检索数据并发起请求,包括:研究所、统计局和医院对可穿戴设备数据有需求的机构个人。2.根据权利要求1所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,可穿戴设备数据利用共享平台系统进行共享,具体包括以下步骤:步骤1:系统初始化;每个user
i
在数据共享平台ds中进行身份注册后参与共享;步骤2:数据拥有者上传数据到数据共享平台;步骤3:数据请求者检索数据,并进行数据请求;步骤4:数据拥有者与数据请求者进行共享数据;步骤5:数据拥有者与数据请求者进行纠纷仲裁。3.根据权利要求2所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,步骤1具体为:setup(1
k
):数据共享平台选定一条椭圆曲线e
p
(a,b),随机选择椭圆曲线上一点作为基点,记为g;register_u():每个数据请求者user
i
向数据共享平台发起注册请求,ds选取随机数k
i
作为该用户私钥,并计算公钥k
i
=k
i
g,将(k
i
,k
i
)返还数据请求者user
i
;公开基本参数para={e
p
(a,b),g,k
i
};register_o():每个数据拥有者owner
j
向数据共享平台发起注册请求,ds选取随机数k
j
作为该用户私钥,并计算公钥k
j
=k
j
g,将(k
j
,k
j
)返还数据拥有者owner
j
;公开基本参数para={e
p
(a,b),g,k
j
}。4.根据权利要求2所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,步骤2每个数据拥有者owner
j
对共享数据的唯一标识符属性id盲化,替换为“@@@”,对准标识符属性qi进行泛化身份隐私保护后,为共享数据生成数据描述、数据证据和数据地址(des
jx
,h(m
jx
),add
jx
)并为其生成签名δ;然后将其上传到数据共享平台等待共享;输出匿名数据集t
′
;共享平台收到上传数据后首先使用owner
j
的公钥k
j
验证其签名的正确性,如果不正确则拒绝上传。5.根据权利要求4所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,所述泛化采用progressive算法,该算法允许数据拥有者设置敏感值在数据集中出现的频率约束阈值且所设置的应大于或等于敏感值在数据集中出现的频率;该算法通过将数据集中满足匿名约束的数据子集移出、存入匿名表中,然后选择熵值最大的属性进行泛化来实现数据的k-匿名化并满足匿名数据等价类中的敏感值频率不大于的匿名要求;对于数据集中的标准属性q
i
,该算法依据的熵计算公式为:
其中,p(v)表示属性v在属性q
i
取值中出现的频率;该算法的思想具体为:(1)对于待发布的原始数据集t,当t不为空时,执行(2)至(5),直到t为空;(2)将己满足匿名约束的数据子集从原始数据表t中移出并存入匿名表t
′
;(3)计算剩下数据集d
r
中根据匿名约束条件可以进一步选择移出的数据元组数q
max
;(4)选择满足匿名约束的元组移出并存入匿名表t
′
;(5)如果移出满足匿名约束的元组之后,数据集t仍不为空,则计算属性的熵,并选择熵值最大的属性进行泛化。6.根据权利要求2所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,步骤3具体为:request():数据请求者user
i
通过数据共享平台检索所需数据,并发起数据请求,请求方式为(req,δ);共享平台收到请求者user
i
的请求后,首先使用user
i
的公钥k
i
验证其签名的有效性,如果无效,则拒绝该请求;否则,分别执行基于信誉机制的共享选择策略、利用chained-index索引结构和cmerkle区块结构进行数据检索。7.根据权利要求6所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,所述chained-index区块链分类索引由地域、年龄信息组成的i级分类索引,心率、睡眠、体重、体脂组成的ii级分类索引,数据所有信息组成的iii级索引组成,具体工作流程为:首先通过i级索引定位到地域、年龄,其次通过ii级索引定位到所求数据指标;iii级索引中的私有云选择详见下文基于信誉机制的共享选择策略;最后,通过共享选择策选出参与共享的私有云并定位所求数据位置;基于信誉机制的共享选择策略如下所示:本策略通过对数据拥有者权重排序,选择权重最高的数据拥有者参与共享;如果该数据拥有者的数据量未达到数据用户请求量,则次高者也参与共享;该策略分为前期准备阶段和权重更新阶段,具体如下:前期准备阶段:假定有n个数据拥有者参与共享,每个数据拥有者的贡献量为cj,其中数据贡献条数,以百条为单位,设定初始权重总值为n,为每个数据拥有者计算初始权值:权重更新阶段:参与共享完更新;如果该数据拥有者参与了此轮共享,则其权重减为:如果该数据拥有者未参此轮共享,则其权重增加为:
每月根据最近一个月上传数量进行权重更新;假定每个数据拥有者的贡献增量为c
j
′
,数据共享条数,以百条为单位,更新后的权重为:所述cmerkle区块结构节点分为两类:叶子节点和非叶子节点,叶子节点包含四个参数(a,add
jx
,j,hash
jx
),a代表心率数据,b、c、d分别代表睡眠、体重、体脂数据;add
jx
代表该数据存储地址,方便完成后续查找;j代表该数据所属私有云;hash
jx
的计算方法为hash
jx
=hash(a||add
jx
||j);其中cmerkle树中的每个非叶子节点增加了代表数据类型的向量,依次代表该节点包含的心率、睡眠、体重、体脂数据数量,hash的计算方法为hash=hash(1||1||0||0||childhash
left
||childhash
right
);具体工作流程为:首先通过cmerkle树根节点的参数判断此类数据存储条数;其次遍历存储数据的左子树,判断拥有数据量;继续深入遍历到叶子节点结束,通过叶子节点中参数判断数据所属者,如果满足条件的数据达到用户请求数则终止查询;否则,继续遍历直到找到所有所求数据为止。8.根据权利要求2所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,步骤4具体为:share():每个数据拥有者owner
j
选取随机数r
jx
,并计算部分解密密钥r
jx
g、密文c
jx
=m
jx
+r
jx
k
i
;随后将c
jx
发送给数据请求者user
i
,将部分解密密钥r
jx
g通过上传到基于区块链的数据共享平台上;数据请求者user
i
通过数据共享平台获取部分解密密钥r
jx
g;最后通过计算c
jx-r
jx
gk
i
获得m
jx
;如果共享涉及多个数据拥有者,数据请求者会收到多批数据。9.根据权利要求2所述的一种基于区块链的可穿戴设备高效数据共享方法,其特征在于,步骤5具体为:如果发生数据请求者user
i
否认收到数据拥有者owner
j
提供的数据m
jx
,则数据共享平台会进行仲裁纠纷,如果区块链记录中有user
i
请求owner
j
提供的部分解密密钥的记录,则证明数据请求者user
i
恶意诋毁数据拥有者;否则,查看数据拥有者owner
j
是否上传部分解密密钥。
技术总结
本发明涉及一种基于区块链的可穿戴设备高效数据共享方法,首先建立包括数据拥有者Owner,数据共享平台DS和数据请求者User的高效数据共享平台系统;然后系统进行初始化阶段、上传数据阶段、检索数据与请求阶段和共享数据阶段;所述初始化阶段:数据请求者向数据共享平台发起注册请求,平台会根据其身份为其分配密钥;所述上传数据阶段:数据拥有者将要共享的机密数据上传到共享平台并做好存证;所述检索数据与请求阶段:利用平台的检索机制,快速检索想要数据并发起请求;所述共享数据阶段:数据拥有者利用数据共享平台将数据共享给请求者;如果发生纠纷,可通过区块链存证进行纠纷处理;本发明效率高,鲁棒性高和隐私性好。鲁棒性高和隐私性好。
技术研发人员:史闻博 张蕊 鲁宁 殷井利 马驰原
受保护的技术使用者:东北大学秦皇岛分校
技术研发日:2023.02.22
技术公布日:2023/9/25
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/