一种基于区块链的分布式数据安全共享方法、系统和计算机可读介质

文档序号:195754 发布日期:2021-11-02 浏览:22次 >En<

阅读说明:本技术 一种基于区块链的分布式数据安全共享方法、系统和计算机可读介质 (Block chain-based distributed data security sharing method, system and computer readable medium ) 是由 余益民 陈韬伟 张晓东 高建 段正泰 宋智明 宋俊蓉 兰琨 孔庆雯 冯燕 翟登 于 2021-06-02 设计创作,主要内容包括:本发明公开了一种基于区块链的分布式数据安全共享方法、系统和计算机可读介质:输出系统主密钥对和用户密钥对;加密;系统主密钥封装后上传至区块链;主密钥代理存储节点生成转换密钥;转换密钥计算节点生成新的胶囊;数据使用者从区块链上获得主密钥密文,获得系统主密钥;获得属性私钥;数据使用者获得共享数据密文,输入属性私钥,通过解密算法,获得明文。本发明基于区块链的分布式数据安全共享方法、系统和计算机可读介质利用分布式代理密钥封装机制实现了主密钥的密钥封装,解决主密钥在区块链网络中的安全分发和管理问题,提高了私钥的生成效率,解决了现有技术中存在的主密钥在区块链网络中的安全分发和管理等问题。(The invention discloses a distributed data security sharing method, a system and a computer readable medium based on a block chain, wherein the method comprises the following steps: outputting a system master key pair and a user key pair; encrypting; uploading the system master key to a block chain after the system master key is packaged; the master key agent storage node generates a conversion key; the key conversion calculation node generates a new capsule; the data user obtains a master key ciphertext from the block chain to obtain a system master key; obtaining an attribute private key; the data user obtains the shared data cipher text, inputs the attribute private key and obtains the plain text through a decryption algorithm. The distributed data security sharing method, the distributed data security sharing system and the computer readable medium based on the block chain realize the key encapsulation of the master key by utilizing a distributed proxy key encapsulation mechanism, solve the problems of security distribution and management of the master key in the block chain network, improve the generation efficiency of the private key, and solve the problems of security distribution and management of the master key in the block chain network and the like in the prior art.)

一种基于区块链的分布式数据安全共享方法、系统和计算机 可读介质

技术领域

本发明属于数据安全技术领域,涉及一种基于区块链的分布式数据安全共享方法、系统和计算机可读介质。

背景技术

目前,信息技术高速发展,数据成为了各行各业发展离不开的一种战略性资源。然而,随着数据的开放和共享,越来越多的信息泄露事件使得敏感数据的安全性和隐私性成为各行各业必须面临的问题。解决敏感数据安全和隐私安全的一种有效做法是在数据分享前进行加密,但传统的密文共享方法需要耗费大量的通信开销和运算代价。因此,采用具有“一对多加密”和细粒度访问控制等优势的密文策略属性基加密(CP-ABE,ciphertext-policy attribute-based encryption)算法可以有效解决上述问题。

密文策略属性基加密算法作为一种新兴加密技术,将用户身份与一系列属性绑定,密文与访问控制结构绑定,通过对用户私钥设置属性集合与访问控制,只有属性集合与访问控制结构相匹配才能解密出该密文的明文数据,从而实现了一对多加密以及细粒度的访问控制。Waters首次在标准模型下证明了CP-ABE的安全性,并提出一个采用线性秘密共享方案(LSSS,Linear secret sharing scheme)实现秘密共享的CP-ABE,在效率上有了明显的提升。Lewko等人采用双系统加密机制,使用完全可行的方法实现CCA安全的CP-ABE机制,采用LSSS矩阵作为访问结构,支持任何单调的访问控制表示策略,将一次使用的CP-ABE机制转换为属性多次使用的ABE机制。

算法的正确性和安全性、密钥管理、可扩展性是安全协议研究的核心。当前的CP-ABE算法由于其属性密钥仅与属性集合相关,而与用户标识无关,因此无法预防和追溯非法用户持有合法用户的私钥。此外,由于基本ABE均由单权威机构授权,不能满足大规模分布式应用对于不同机构协作的需求,这要求了该权威机构必须完全诚实可信,违背了分布式应用信任分散的需求。

区块链(Blockchain)由中本聪在比特币(Bitcoin)中首次提出。区块链是按照时间顺序排列的数据区块的连式结构,本质上是通过去中心化的方式使用密码学实现各环节安全性的数据库。区块链具有去中心化、去信任化、防篡改、可溯源和公开验证等特点,能够在陌生节点之间建立可信账本,形成唯一不可篡改的区块,非常适合解决当前CP-ABE存在的密钥审计和分布式信任分散的需求。在基于区块链属性基加密方面,George Bramm等人将CP-ABE与区块链结合,提升了分布式系统密钥管理的安全性和效率;Yongkai Fan等人将CP-ABE应用于云计算,使用区块链进行密钥的传递及记录,解决了不受信任云服务器的数据存储隐私和访问控制问题;田有亮提出了一种基于属性加密的区块链素原算法,实现了交易隐私的动态保护;闫玺玺等提出一种基于区块链且支持验证的属性基搜索加密方案,解决了半诚实且好奇的云服务器模型下返回搜索结果不正确的问题。但上述CP-ABE方案仍采用中央可信机构CA(central authority)管理用户属性和进行密钥计算分发,工作量大,影响效率,并且存在很大的安全隐患。一旦CA被破坏,攻击者可以获取任何用户的私钥和属性,并解密所有密文。为解决中心化密钥中心所带来的的问题,Gao等人通过同态加密的方式将用户属性隐藏,通过智能合约向权威机构发送Proof进行认证,从而获得主密钥,并由用户生成私钥,实现了分布式的密钥计算和属性保存,但其主密钥仍由中心化机构保管,存在安全隐患;郑良汉等设计了一种层次化CP-ABE算法,通过区块链技术使得所有授权机构能够诚实并行地进行私钥分发,但其本质仍为多中心化权威机构,与区块链融合度不高。

综合上述,有必要提供一种去中心化的数据安全共享方法、系统,解决主密钥在区块链网络中的安全分发和管理问题,提高私钥的生成效率,实现密钥传递过程的可追责性。

发明内容

为了达到上述目的,本发明提供一种基于区块链的分布式数据安全共享方法、系统和计算机可读介质,利用分布式代理密钥封装机制实现了主密钥的密钥封装,解决主密钥在区块链网络中的安全分发和管理问题,提高了私钥的生成效率,解决了现有技术中存在的主密钥在区块链网络中的安全分发和管理等问题。

本发明所采用的技术方案是,一种基于区块链的分布式数据安全共享方法,包括以下步骤:

数据拥有者向系统初始化算法中输入系统安全参数和系统属性集合,输出系统主密钥和系统公钥;

区块链中各用户节点初始化,输出区块链中各用户节点的用户公钥和用户私钥;

数据拥有者通过系统加密算法,将共享数据明文加密为共享数据密文;

数据拥有者将系统主密钥封装后上传至区块链双链架构中的子链;

数据使用者向主密钥代理存储节点发送请求,主密钥代理存储节点验证发布者签名后,输入主密钥代理存储节点的私钥和数据使用者的公钥,通过用户私钥转换算法生成转换密钥和用户私钥转换算法所需要的参数,并发送事务给转换密钥计算节点;

转换密钥计算节点收到计算请求,输入收到的胶囊和转换密钥,通过用户私钥重加密算法,生成新的胶囊,并发送给数据使用者;

数据使用者从区块链双链架构中的子链上获得主密钥密文,通过主密钥解密算法,获得系统主密钥;

数据使用者获得系统主密钥后,输入用户属性集合,通过属性私钥生成算法,获得属性私钥;

数据使用者获得共享数据密文,输入属性私钥,通过解密算法,获得明文。

进一步地,数据拥有者向系统初始化算法中输入系统安全参数和系统属性集合,输出系统主密钥和系统公钥,具体为:

数据拥有者向系统初始化算法中输入系统安全参数k和系统属性集合U,生成阶数为大素数p的乘法循环群乘法循环群的生成元为g,的双线性映射e:随机选择α,及乘法循环群的元素h1,h2,…,hu,其中,表示阶数为p的有限整数域,{1,2,…,u}表示系统属性集合U对应的属性标号,输出系统主密钥MSK和系统公钥PK:

系统公钥PK公开至主链PC上,MSK存储在主密钥代理存储节点PSN上。

进一步地,区块链中各用户节点初始化,输出区块链中各用户节点的用户公钥和用户私钥,具体为:

数据使用者向用户初始化算法中输入系统安全参数生成阶数为素数q的乘法循环群乘法循环群的生成元为f,随机选择 表示阶数为q的有限整数域,输出区块链中各用户节点的用户公钥pk和用户私钥sk:

进一步地,数据拥有者通过系统加密算法,将共享数据明文加密为共享数据密文,具体为:

数据拥有者输入系统公钥PK、共享数据明文m以及访问控制策略(M,ρ),至系统加密算法中,输出共享数据密文,将共享数据密文上传至星际文件系统数据库中,并获取共享数据密文存储在星际文件系统的事务信息Tx=(ID,DO,IPFS,Y,TimeStamp,Sig,CT),ID表示事务标识号,DO表示数据拥有者,IPFS表示星际文件系统,Y表示可以公开,TimeStamp表示事务发布时间戳,Sig表示发布者签名,CT表示共享数据密文,且将事务信息Tx=(ID,DO,IPFS,Y,TimeStamp,Sig,CT)上传至子链CC,并且将共享数据密文进行哈希处理生成密文数字摘要,再通过事务上传至主链PC;

加密过程中,访问控制策略(M,ρ)中M是l×n的访问矩阵,l表示矩阵行数,n表示矩阵列数,函数ρ为M的行指定属性,用随机向量分割秘密共享密钥s,生成共享数据密文CT信息,y表示秘密分割生成的随机值,秘密共享密钥s即为y1是分割秘密共享密钥s得到的第i个份额,Mi表示M矩阵的第i行,Ci(i=1,2,..,l)表示到第ρ(i)个属性,最终创建共享数据密文CT为:

CT={C=m·e(g,g)αs,C′=gs)

式中,C表示密文的一部分,m表示共享数据明文,α,β表示随机数,g表示乘法循环群的生成元,C′表示密文的另一部分,Ci表示第i个属性对应的密文,表示属性哈希值,ri表示随机数,Di表示隐藏随机数。

进一步地,数据拥有者将系统主密钥封装后上传至双链架构中的子链,具体为:

数据拥有者输入系统主密钥MSK和主密钥代理存储节点PSN的用户公钥pkPSN,至主密钥封装算法中,输出封装后的主密钥密文CTMSK和胶囊capsule1,并通过事务Tx=(ID,DO,CC,Y,TimeStamp,Sig,CTMSK)将封装后的主密钥密文CTMSK上传至子链CC上,通过事务Tx=(ID,DO,RKCN,N,TimeStamp,Sig,capsule1)将capsule1发送给转换密钥计算节点RKCN;

定义哈希函数H2,随机选择e, 为AES对称加密函数,εAES表示对称加密算法加密函数,表示对称加密算法解密函数,输出主密钥密文CTMSK和胶囊capsule1为:

E=fe,V=fv

s=v+e·H2(E,V)

CTMSK=εAES(MSK,KMSK)

capsule1=(E,V,s)

式中,E表示代理密钥封装构造的一个密钥,V表示代理密钥封装构造的另一密钥,f表示乘法循环群的生成元,s表示秘密共享密钥,KMSK表示使用主密钥代理存储节点的用户公钥pkPSN生成的对系统主密钥加密的密钥。

进一步地,主密钥代理存储节点验证发布者签名后,输入主密钥代理存储节点的私钥和数据使用者的公钥,通过用户私钥转换算法生成转换密钥,转换密钥的生成如下式所示:

选择随机生成的临时密钥定义哈希函数H3,计算转换密钥rkPSN→DU

rkPSN→DU=skPSN·d-1

式中,XA表示用户私钥转换算法所需要的参数,d表示解密参数,表示数据使用者的公钥用xA加密,skPSN表示主密钥代理存储节点的用户私钥。

进一步地,转换密钥计算节点收到计算请求,输入收到的胶囊和转换密钥,通过用户私钥重加密算法,生成新的胶囊,新的胶囊的计算如下式所示:

capsule1=(E,V,s)

capsule2=(E′,V′,s)

式中,E′表示E经转换密钥后的密钥,V′表示V经转换密钥后的密钥。

进一步地,数据使用者获得共享数据密文,输入属性私钥,通过解密算法,获得明文,明文的解密具体如下式所示:

定义单个数据使用者所拥有的属性集合是秘密共享密钥s对应于访问矩阵M的有效份额,则∑i∈Iωiλi=s;解密计算式为:

最终的明文信息为

式中,i表示属性的数目变量,ρ(i)表示行指定属性,S表示用户属性集合,l表示访问矩阵M的矩阵行数,ωi表示随机数,Ci表示第i个属性对应的密文,L表示私钥中参数,t表示随机数,Π表示累乘运算。

本发明的另一发明目的,在于提供一种基于区块链的分布式数据安全共享系统,包括:

存储器,用于存储可由处理器执行的指令;

处理器,用于执行所述指令以实现如上所述的方法。

本发明的再一发明目的,在于提供一种计算机可读介质,存储有计算机程序代码,计算机程序代码在由处理器执行时实现如上所述的方法。

本发明的有益效果是:

本发明具体实施例提出一种基于区块链的分布式数据安全共享方法(PKEM-CPABE,Proxy Key Encapsulation Mechanism ciphertext-policy attribute-basedencryption),利用分布式代理密钥封装机制实现了主密钥的密钥封装,解决主密钥在区块链网络中的安全分发和管理问题,提高了私钥的生成效率,同时,采用契合PKEM-CPABE方法的双链结构作为区块链架构,在保证主密钥安全传输的情况下提高了效率;其次,基于PKEM-CPABE方法设计区块和交易事务结构,实现了密钥传递过程的可追责性;

本发明具体实施例采用的基于区块链的分布式数据安全共享方法PKEM-CPABE与现有的采用区块链技术的CP-ABE算法相比,其去中心化程度更高,原因是现有的区块链CPABE算法中用户私钥Secret Key(SK)均由一个或多个密钥中心生成后再传给用户,其原因是系统主密钥不可泄露,而本申请通过代理密钥封装技术对系统主密钥进行密钥封装,通过区块链中节点进行去中心化的分布式管理,用户申请时只需要进行代理重加密,便可得到系统主密钥,不需要密钥中心。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例基于区块链的分布式数据安全共享方法的区块链双链架构示意图;

图2是本发明实施例同文件下加解密时间对比结果;

图3是本发明实施例同文件下单用户密钥生成时间对比结果;

图4是本发明实施例同文件下多用户密钥生成时间对比结果;

图5是本发明实施例200轮投票结果;

图6是本发明实施例基于区块链的分布式数据安全共享方法的算法流程图;

图7是本发明实施例基于区块链的分布式数据安全共享方法的系统架构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请基于区块链的分布式数据安全共享系统,包括六个参与方:

数据拥有者DO(Data Owner),通过系统加密算法,将共享数据明文加密为共享数据密文,将共享数据密文存储于星际文件系统中,将共享数据密文的密文数字摘要记录在主链PC上,通过主密钥封装算法封装得到主密钥密文,使得主密钥以密文形式记录在区块链主链上。

数据使用者DU(Data User),向用户初始化算法中输入系统安全参数,输出区块链中各用户节点的用户密钥对;向主密钥代理存储节点发送转换密钥请求,获得转换密钥,通过转换密钥计算节点获得重加密的私钥,并对主密钥密文解密得到系统主密钥,结合系统主密钥与用户属性,获得属性私钥,并对共享数据密文解密得到明文。

主密钥代理存储节点PSN(Proxy Storage Node),基于信誉积分投票选举而得,用于储存系统主密钥,且用于验证验证发布者签名,通过用户私钥转换算法生成转换密钥,并将转换密钥传递给转换密钥计算节点RKCN。

转换密钥计算节点RKCN(Re-Key Calculate Node),接收胶囊capsule1,用于进行重加密私钥的计算,并发送给数据使用者。

星际文件系统IPFS(Inter Planetary File System),用于存储共享数据密文,减轻了区块链容量压力,实现大容量数据的存储访问。

区块链BC(Block Chain),为双链架构,如图1所示,包括一条基于POW共识算法的主链PC(Public Chain)和一条基于POA共识算法的子链CC(Child Chain),其中主链上包括区块pb(public block),子链上包括区块cb(child block),主链上各区块pb之间采用hash方式连接,子链上各区块cb之间采用智能合约进行交互,子链上区块cb与主链上区块pb之间采用hash方式连接,其中区块pb存储有共享数据密文CT的密文数字摘要和各节点信誉积分RS(Rating Score),区块cb存储PKEM-CPABE中各参数传递过程的交易信息,同时区块链节点会将这次交易打包成区块,添加到区块链主链上,形成不可篡改、真实可信、可追溯的记录。

本申请基于区块链的分布式数据安全共享方法,如图6、图7所示,包括以下步骤:

(1)AbeSetup(1k)→(PK,MSK),系统初始化,输出系统主密钥和系统公钥:

数据拥有者DO向系统初始化算法AbeSetup(1k)中输入系统安全参数k和系统属性集合U,生成阶数为大素数p的乘法循环群乘法循环群的生成元为g,的双线性映射e:满足双线性、非退化性和可计算性,系统安全参数k决定乘法循环群的大小,系统属性集合记为U,大小为|U|,随机选择α,及乘法循环群的元素h1,h2,...,hu,其中为阶数为p的有限整数域,{1,2,...,u}表示系统属性集合U对应的属性标号,输出系统公钥对(PK,MSK),PK表示系统公钥,MSK表示系统主密钥;

系统公钥PK公开至主链PC上,MSK存储在主密钥代理存储节点PSN上,主密钥代理存储节点PSN是基于信誉积分被投票选举出来的。

(2)区块链中各用户节点初始化,输出区块链中各用户节点的用户公钥和用户私钥:

数据使用者DU向用户初始化算法中输入系统安全参数生成阶数为素数q的乘法循环群乘法循环群的生成元为f,随机选择(此处的a与步骤S1中的α表示不同含义),表示阶数为q的有限整数域,输出区块链中各用户节点的用户密钥对为(pk,sk)。

式中,pk表示用户公钥,sk表示用户私钥。

(3)数据拥有者通过系统加密算法,将共享数据明文加密为共享数据密文:

数据拥有者DO输入系统公钥PK、共享数据明文m以及访问控制策略(M,ρ),至系统加密算法AbeEnc(PK,m,(M,ρ))中,输出共享数据密文CT,只有满足访问控制策略的请求者才可能解密共享数据密文,将共享数据密文CT上传至星际文件系统IPFS(InterPlanetaryFile System)数据库中,并获取共享数据密文CT存储在星际文件系统IPFS的事务信息Tx=(ID,DO,IPFS,Y,TimeStamp,Sig,CT)(ID表示事务标识号,Y表示可以公开,TimeStamp表示事务发布时间戳,Sig表示发布者签名),且将事务信息Tx=(ID,DO,IPFS,Y,TimeStamp,Sig,CT)上传至子链Child Chain(CC)的区块cb(child block)中,区块链中通过交易进行信息传递、审计,并且将共享数据密文CT进行哈希处理生成密文数字摘要,再通过事务上传至主链PC的区块pb上。

由于区块链本身容量有限,将全部数据存储不现实,因此本申请将共享数据密文存储于第三方存储系统IPFS,再将其地址存储于区块链中,任何人可根据地址找到IPFS中的密文,节省空间,有效提升区块链系统的可扩展性。

加密过程中,访问控制策略(M,ρ)中M是l×n的访问矩阵,l表示矩阵行数,n表示矩阵列数,函数ρ为M的行指定属性,用随机向量分割秘密共享密钥s,生成共享数据密文CT信息,y表示秘密分割生成的随机值,秘密共享密钥s即为y1是分割秘密共享密钥s得到的第i个份额,Mi表示M矩阵的第i行,Ci(i=1,2,..,l)表示第i个属性对应的密文,最终创建共享数据密文CT为:

CT={C=m·e(g,g)αs,C′=gs)

式中,C表示密文的一部分,m表示共享数据明文,α,β表示步骤(1)中生成的随机数,g表示乘法循环群的生成元,C′表示密文的另一部分,用于隐藏秘密共享密钥s,Ci表示第i个属性对应的密文,表示属性哈希值,ri表示随机数,用于隐藏属性哈希hρ(i),Di表示隐藏随机数ri,后续解密阶段用以解密Ci

(4)PkemMSK(MSK,pkA)→(CTMSK,capsule1),将系统主密钥封装后上传至双链架构中的子链,子链进行密钥生成相关工作,采用POS共识机制,效率与性能更高:

数据拥有者DO输入系统主密钥MSK和主密钥代理存储节点PSN的用户公钥pkPSN,至主密钥封装算法PkemMSK(MSK,pkA)中,输出封装后的主密钥密文CTMSK和胶囊capsule1,胶囊capsule1用于代理密钥封装所需要的传递参数,并通过事务Tx=(ID,DO,CC,Y,TimeStamp,Sig,CTMSK)将封装后的主密钥密文CTMSK上传至子链CC上,通过事务Tx=(ID,DO,RKCN,N,TimeStamp,Sig,capsule1)将capsule1发送给转换密钥计算节点RKCN(Re-Key CalculateNode),用于进行重加密私钥的计算。

定义哈希函数H2,随机选择e,定义为AES(Advanced EncryptionStandard)对称加密函数,εAES分别表示对称加密算法加密函数与解密函数。输出主密钥密文CTMSK和胶囊capsule1为:

E=fe,V=fv

s=v+e·H2(E,V)

CTMSK=εAES(MSK,KMSK)

capsule1=(E,V,s)

式中,E表示代理密钥封装构造的一个密钥,V表示代理密钥封装构造的另一密钥,s表示秘密共享密钥,KMSK表示使用主密钥代理存储节点PSN的用户公钥pkPSN生成的对系统主密钥加密的密钥。

(5)用户私钥转换:数据使用者DU(DataUser)向主密钥代理存储节点PSN发送请求,主密钥代理存储节点PSN验证发布者签名Sig后,输入主密钥代理存储节点PSN的私钥skPSN和数据使用者DU的公钥pkDU,通过用户私钥转换算法PkemKeyGen(skA,pkB),生成转换密钥rkPsN→DU和XA,使得系统主密钥MSK由PSN用户公钥加密转换为由数据使用者用户公钥加密,XA表示用户私钥转换算法PkemKeyGen(skA,pkB)→(XA,rkA→B)所需要的参数,并发送事务Tx=(/D,PSN,RKCN,N,TimeStamp,Sig,(XA,rkPSN→DU))给转换密钥计算节点RKCN,用于下一步用户私钥重加密。

选择随机生成的临时密钥定义哈希函数H3,计算转换密钥rkPSN→DU

rkPSN→DU=skPSN·d-1

式中,d表示解密参数,表示数据使用者的公钥用xA加密。

(6)用户私钥重加密:转换密钥计算节点RKCN收到计算请求,输入收到的胶囊capsule1和转换密钥rkPSN→DU,通过用户私钥重加密算法PkemEnc(rkA→B,capsule1),生成新的胶囊capsule2,转换密钥计算节点RKCN生成事务Tx=(ID,RKCN,DU,N,TimeStamp,Sig,(XA,capsule2)),将该事务发送给数据使用者DU,使得数据使用者DU获得胶囊capsule2连同XA,经重加密的私钥可以不进行解密操作就可以将由主密钥代理存储节点的用户公钥加密的密文转换为由数据使用者的用户公钥加密,本申请基于CPABE的重加密技术实现了去中心化的系统主密钥管理。

capsule1=(E,V,s)

capsule2=(E′,V′,s)

式中,E′表示E经转换密钥后的密钥,V′表示V经转换密钥后的密钥。

(7)系统主密钥解密:数据使用者DU获得XA和capsule2后,从双链架构中的子链上获得主密钥密文CTMSK,然后输入XA、capsule2和skDU,通过主密钥解密算法PkemDec(CTMSK,XA,skB,capsule2),获得系统主密钥MSK:

式中,d表示解密密钥,KMSK表示用户公钥pkPSN生成的对系统主密钥加密的密钥。

(8)属性私钥生成:数据使用者DU获得系统主密钥MSK后,输入用户属性集合S,通过属性私钥生成算法AbeKeyGen(MSK,S),获得属性私钥SK。

式中,L表示私钥中参数,K表示私钥中包括系统主密钥的参数,Kx表示私钥中每个属性对应的密钥,hx表示属性哈希值,t表示随机数,x表示用户所对应的属性。

(9)解密:数据使用者DU通过事务Tx=(ID,PC,DU,Y,TimeStamp,Sig,CT)获得共享数据密文CT,输入属性私钥SK,则通过解密算法AbeDec(CT,SK),获得明文m。

定义单个数据使用者所拥有的属性集合是秘密共享密钥s访问矩阵M的有效份额,则∑i∈Iωiλi=s。解密计算式为:

最终的明文信息为

式中,i表示属性的数目变量,ρ(i)表示行指定属性,S表示用户属性集合,l表示访问矩阵M的矩阵行数,ωi表示随机数,Ci表示第i个属性对应的密文,L表示私钥中参数,t表示随机数,Π表示累乘运算。

主链PC根据节点信誉积分RS(Rating Score)对子链CC中主密钥代理存储节点PSN(Proxy Storage Node)和转换密钥计算节点RKCN(Re-Key Calculate Node)的选举,具体为:RS记录公开存储于主链PC,任何节点均可查询,RS作为节点的量化评价指标,可以客观反映出该节点的好坏,信誉积分越高,代表该节点在之前的行为表现良好,信任度高;反之则表示该节点可能为危险节点,信誉积分RS采取连带责任制,对于表现好的节点,根据其贡献程度奖励相应的RS,而为其投票的节点也将获得相应奖励;对于故障或恶意节点,则扣除相应RS,为其投票的节点也将获得相应惩罚。

其中,投票票数按照下式计算:

其中,AV(Affirmative Vote)表示赞成票,NV(Negative Vote)表示反对票,RSi为第i个节点所拥有的RS值,m为该节点获得赞成票个数,n为该节点获得反对票个数。

为第i个节点投票所占权重,总赞成票减去总反对票数,与节点自身信誉积分RS值相加,获得最终票数Votes。

节点选举:

基于PKEM-CPABE双链架构中的子链节点负责代理主密钥封装的密钥存储和转换密钥计算,对于Votes值小于0的节点则默认其Votes值为0。在一轮投票中,对所有参与节点Votes值进行由高到低排序,将节点分为不同类型:

1)PSN:Votes值为前20%的节点,作为主密钥代理存储节点;

2)RKCN:Votes值为20%-80%的节点,作为转换密钥计算节点;

3)危险节点:Votes值为最后20%的节点。

信誉积分奖惩机制:

在子链CC中,对于成功贡献的节点会给予一定的奖励;反之,则给予一定的惩罚,即建立信誉积分奖惩机制:设共有k个节点参与,单个节点的工作量为WL(Work Load),奖励系数为τ,根据其工作量所占权重,进行奖励或惩罚。

以某积极节点为例,当其成功完成其工作时,工作量为WLi,节点获得奖励:

参与投积极票AV的节点也将获得奖励,设共有m个节点为该节点投积极票,奖励系数为γ:

则该节点最终信誉积分为RSFinal=RS+Score。

若该节点需要受到惩罚,Score计算方法同上式,参与投积极票NV的节点也将受到惩罚,该节点最终信誉积分为RSFinal=RS-Score。

事务结构:

为实现基于PKEM-CPABE的双链架构中密钥流转的来源追溯,定位各节点行为。本申请基于基于区块链的分布式数据安全共享方法对区块结构进行设计,利用区块链进行密钥传递过程的行为追责。事务结构定义如下:

Tx=(ID,From,To,TxType,TimeStamp,Sig,Data)

其中:ID表示事务标识号;From和To分别表示该事务的发送方与接收方;TxType表示该事务类型,Y为可以公开,N为不可公开;TimeStamp表示事务发布时间戳;Sig表示发布者签名;Data表示事务包含的可选数据域。

某共识节点在收到一笔事务后进行状态初始化,提取事务信息并下载至本地,根据TxType字段判断该事务是否可公开,从Data字段中获取事务的公共参数。

双链性能分析:

基于PKEM-CPABE的双链架构在主链PC采用传统的POW共识机制。为更好地契合PKEM-CPABE算法,在子链CC采用响应速度更快的POA共识机制,其优势如表1所示。

相比较于POW,POA在响应时间、交易确认延迟、可扩展性方面都有明显的优势,而其安全性问题,本申请所设计信誉积分和投票机制以及引入的PKEM-CPABE算法可有效避免验证者节点作恶和隐私保护问题。

表1共识机制对比

实验仿真分析:

基于区块链的PKEM-CPABE算法实验采用一台主机(CPU为Intel i7-8750H,内存为8GB,主频2.20GHz,操作系统为Ubuntu18.64),并利用基于配对的PBC密码库和编程语言Python来构建实验框架,实验数据在条件相同情况下,重复性实验50次取得平均值。

如图2所示,当数据大小设置为308B,访问策略属性个数设置为4、8、12和16个时,随着属性个数的增加,由于本申请方案在加密时需要引入代理密钥封装机制,导致本申请方案加解密时间代价总体高于Waters方案,加密时间和解密时间代价平均比Waters方案高出50ms。

如图3所示,当数据大小设置为308B,访问策略属性个数设置为4、8、12和16个时,随着属性个数增加,本申请密钥生成时间代价总体高于Waters方案平均27ms。

Waters方案的来源是:Waters B.Ciphertext-policy attribute-basedencryption:an expressive,efficient,and provably secure realization[C]//LNCS6571:Proceedings of the14th International Conference on Practice andTheory in Public Key Cryptography,Taormina,Mar 6-9,2011.Berlin,Heidelberg:Springer,2011:53-70.

如图4所示,当数据大小设置为308B,访问策略属性个数设置为4个,用户数量分别为4、8、12、16个时,随着用户数量增加,本申请方案密钥生成时间对比Waters方案有明显的优势。由于Waters方案私钥SK由密钥中心生成,本申请方案由各用户单独生成,因此在大规模分布式应用时具有明显优势。

为信誉积分和投票机制进行模拟,实验基于Python语言模拟100个网络节点进行投票,其中设置优秀节点、普通节点和恶意节点比率为20%、60%和20%,初始RS设置为60,共进行200轮投票。

如图5所示,在多轮投票过程中,优秀节点所得票数明显逐渐升高并在后续投票过程保持领先,表示该节点表现优秀,无不良记录,其他节点更倾向于投票给它以获得更高RS;普通节点整体表现稳定;恶意节点初始时RS值与其他节点相似,随着轮数的增加,其他节点向恶意节点投反对票来维持系统稳定,恶意节点RS值逐渐减少,有效阻止了恶意节点进入子链。

上述的基于区块链的分布式数据安全共享系统可以实施为计算机程序,保存在硬盘中,并可记载到处理器中执行,以实施本发明实施例的方法。

本发明实施例还提供了一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如上所述的基于区块链的分布式数据安全共享方法。

基于区块链的分布式数据安全共享方法实施为计算机程序时,也可以存储在计算机可读存储介质中作为制品。例如,计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩盘(CD)、数字多功能盘(DVD))、智能卡和闪存设备(例如,电可擦除可编程只读存储器(EPROM)、卡、棒、键驱动)。此外,本发明实施例描述的各种存储介质能代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可以包括但不限于能存储、包含和/或承载代码和/或指令和/或数据的无线信道和各种其它介质(和/或存储介质)。

应该理解,上述的实施例仅是示意。本发明描述的实施例可在硬件、软件、固件、中间件、微码或者其任意组合中实现。对于硬件实现,处理单元可以在一个或者多个特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器和/或设计为执行本发明所述功能的其它电子单元或者其结合内实现。

需要说明的是,在本申请中,诸如第一、第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于中间件流量分析技术的web业务行为逻辑检测方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类