基于LWE-CPABE的区块链数据共享方法、设备和存储介质转让专利

申请号 : CN202111530550.0

文献号 : CN114219483B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈韬伟余益民高建段正泰冯艳王志平宋智明王雪阳徐敏宋俊蓉翟登张翼赵进一

申请人 : 云南财经大学云南省科学技术院

摘要 :

本发明公开了一种基于LWE‑CPABE的区块链数据共享方法、设备和存储介质,所述方法包括以下步骤:数据访问者设置访问控制策略,基于访问控制策略生成主密钥和公钥,将公钥发送至区块链存储,主密钥委托密钥中心保管,并将要发布的数据加密成密文,上传至第三方存储,第三方存储将密文存储地址发送至区块链;数据使用者从密钥中心获取主密钥,之后合成用户属性密钥,利用用户属性密钥对获取的密文进行解密,完成数据共享;本发明数据共享的安全性和效率较高,能方便地对访问控制策略进行更新,更新过程中计算量小,节省了更多的密钥空间成本和加密时间成本。

权利要求 :

1.基于LWE‑CPABE的区块链数据共享方法,其特征在于,包括以下步骤:数据拥有者设置访问控制策略,基于访问控制策略生成主密钥和公钥,将公钥发送至区块链,主密钥委托密钥中心保管,并将要发布的数据加密成密文,将密文上传至第三方存储TPS,第三方存储将密文的存储地址上传至区块链BC;

数据使用者从密钥中心获取主密钥,之后利用自身属性集合生成用户属性私钥;

数据使用者从区块链获取密文存储地址,并在第三方存储搜索该地址获得密文,利用用户属性私钥解密获得密文,完成数据共享;

当访问控制策略更新时,数据拥有者根据新访问控制策略生成策略密文,并将其发送至第三方存储,撤销原始的密文,第三方存储根据策略密文对原始密文的部分密文进行修改,生成新的密文;

在根据策略更新时,数据拥有者DO生成新的访问控制策略(M′,ρ′),之后运行AccGen算法得到更新 后的 策略密文 其中 ,ci ′=sAρ′(i)+ei ,Mi′,j为更新的访问控制矩阵i行j列的

元素;

其中s为取自 的随机矢量,ei为取自 的随机噪声, 表示m维度的lwe离散高斯分布,为取自 的随机噪声, 为离散高斯分布的噪声分布,y为取自 的均匀分布的随机向量,T为转置符号, 表示m维度的模q的剩余类群,Mi′,1为更新的访问控制矩阵i行l列的元素,vj为取自 的随机矢量;

随后生成策略更新交易:

TxAccGen={DO,TPS,A,U,Timestamp,UpdateCT,CheckText,SignDO}发送给第三方存储TPS,同时生成原密文撤销交易TxAccUpdate={DO,BC,A,R,Timestamp,CT,CheckText,SignDO},发送至区块链以更新密文信息,并告知数据使用者DU;

第三方存储TPS获取更新的策略密文后,将从原密文CT中获取的部分密文C输入更新的访问控制策略密文 运行AccUpdate算法生成更新后的密文CT′:其中M′为更新的访问控制矩阵,ρ′为更新的属性映射函数,ci′、 表示更新后的访问控制策略密文的两个部分, ρ(′i)为更新的访问控制矩阵M′中第i行的行指定属性;

其中l表示属性对应的列,A表示访问控制策略消息,D表示数据类消息,OpType表示操作类型,包括发布操作P、更新操作U和撤销操作R,Timestamp表示交易发布的时间戳,CheckText表示数据域的数字摘要,Sign表示交易发起方的签名。

2.根据权利要求1所述的基于LWE‑CPABE的区块链数据共享方法,其特征在于,参与数据共享的各参与方通过交易进行数据共享,所述交易Tx的格式如下:Tx={From,To,TxType,OpType,Timestamp,Data,CheckText,Sign}其中From表示交易发起方,To表示交易接收方,TxType表示交易类型,包括访问控制策略消息A和数据类消息D,OpType表示操作类型,包括发布操作P、更新操作U和撤销操作R,Timestamp表示交易发布的时间戳,Data表示交易包含的数据体,CheckText表示数据域的数字摘要,Sign表示交易发起方的签名。

3.根据权利要求2所述的基于LWE‑CPABE的区块链数据共享方法,其特征在于,各参与方通过智能合约进行交易生成和验证,具体过程如下:交易发起方对输入的交易请求数据进行格式化得到各参数:TxType、OpType、Timestamp和Data,计算交易包含的数据体Data的数字摘要CheckText和交易数字摘要MD,其中CheckText=H(Data),MD=H(From,To,TxType,OpType,Timestamp,Data,CheckText);

其中From表示交易发起方,To表示交易接收方;

使用交易发起方的区块链私钥BSK生成数字签名,Sign=SignBSK(MD);

生成交易Tx={From,To,TxType,OpType,Timestamp,Data,CheckText,Sign};

交易验证方接收到交易后,验证交易发起方的数字签名,若数字签名验证通过,则从交易中获取包含的数据体,计算其哈希值得到数据体的数字摘要;

验证数据体的数字摘要与交易中包含的CheckText是否一致,若一致则交易验证成功,若不一致则交易验证失败。

4.根据权利要求1所述的基于LWE‑CPABE的区块链数据共享方法,其特征在于,密文的加密过程如下:数据拥有者选择安全系数λ、LSSS矩阵支持的最大宽度和用户属性集合,运行Setup算法生成公钥PK和主密钥MSK;

数据拥有者制定访问控制策略(M,ρ),M为访问控制矩阵,ρ为属性映射函数;

将公钥PK、明文m′和访问控制策略(M,ρ)作为输入,运行ENC算法得到密文CT;

其中 c;=sAρ(i)+ei, i为

访问控制矩阵中属性对应的行,j∈(2,…,smax),l为属性对应的列,s为取自 的随机矢量,y为取自 的均匀分布的随机向量,T为转置符号,ρ(i)为访问控制矩阵M中第i行的行指定属性,Aρ(i)、Hρ(i)为以ρ(i)为输入的两种不同的哈希函数,ei为取自 的随机噪声, 表示m维度的lwe离散高斯分布,Mi,j为访问控制矩阵i行j列的元素, 为取自 的随机噪声,为离散高斯分布的噪声分布,vj为取自 的随机矢量,m表示维度, 表示m维度的模q的剩余类群;

C为取自密文CT的部分密文,ci′、 表示更新后的访问控制策略密文的两个部分,smax表示LSSS矩阵支持的最大宽度, 表示模数为q、长度为n的随机向量,lwe表示容错学习问题。

5.根据权利要求4所述的基于LWE‑CPABE的区块链数据共享方法,其特征在于,密文的解密过程如下:设I为访问控制矩阵M的一组行索引,满足 其中U′为用户属性集合U的子集,重构系数ωi∈{0,1},且∑i∈IωiMi=(1,0,…,0),Mi为矩阵M的第i行,则:当属性满足时 K为非对称密钥,C为取自密文CT的部分密文, 表示kρ(i)的转T置,t表示t的转置;kρ(i)为满足ρ(i)的向量; 表示从 中任选一随机向量。

6.一种电子设备,其特征在于,包括处理器、存储器和通信总线,其中,处理器、存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现权利要求1‑5任一所述的方法步骤。

7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1‑5任一所述的方法步骤。

说明书 :

基于LWE‑CPABE的区块链数据共享方法、设备和存储介质

技术领域

[0001] 本发明属于区块链技术领域,特别是涉及一种基于LWE‑CPABE的区块链数 据共享方法、设备和存储介质。

背景技术

[0002] 随着区块链技术的不断普及,使用区块链在弱信任或无信任网络中进行数据 共享变得非常流行,但由于区块链“不可篡改”和“公开透明”的特点,使得区 块链上的隐私数据保护成为了新的挑战;近年来,众多学者针对区块链上的隐私 保护和数据共享提出了新的解决方案,其中,基于属性的加密算法由于其一对多 加密和可以实现细粒度访问控制等优点,被广泛应用在区块链的各种方案中,如 数据溯源、云存储、医疗数据共享和物联网等。
[0003] 属性基加密(attribute‑based encryption,简称ABE)来源于Sahai和Waters在 2005年提出的基于模糊身份(Fuzzy identity)加密,后演变为基于属性的加密,其 中,密钥策略属性基加密(Key policy attribute based encryption,简称KP‑ABE)中, 密文与属性关联,密钥与访问策略关联;密文策略属性基加密(Ciphertext policy attribute based encryption,简称CP‑ABE)中,密钥与属性关联,密文与访问策略 关联,允许数据拥有者自由制定访问控制策略,更适用于分布式存储和解密方不 确定的环境。
[0004] 近些年关于ABE的研究主要集中于计算效率、访问策略及属性隐藏和身份 管理,2007年,Bethencourt等人详细描述了密文策略属性基加密(CP‑ABE)算法, 针对一个解密的对象群体,利用用户相关属性及用户对象间的相互信任关系作为 授权依据,设计访问控制结构,通过一个中心权威构建加解密原语,只有当属性 满足访问结构时,用户才能成功解密密文,从而实现了一对多加密以及细粒度的 访问控制;2011年Waters在标准模型下证明了CP‑ABE的安全性,并提出一个 采用线性秘密共享方案实现秘密共享的CP‑ABE,在效率上有了明显的提升; 2012年,Okamoto等人提出第一个无界内积属性基加密方案,解除了以往属性 基加密方案对谓词和属性大小的限制;2013年,Gorbunov提出了基于多项式逻 辑电路的属性基加密方案,其公开参数和密文大小随着电路深度线性增长,实现 了由基于布尔公式向基于电路的转变,可有效抵御合谋攻击;2014年,Waters 受Rouselakis等人提出的属性基加密方案启发,提出Online‑Offline属性基加密 方案,将所有配对操作进行离线处理,减少了在线阶段的计算开销。
[0005] 但是,随着量子计算的不断发展,基于数论问题的困难性将会极大降低,以 数论为基础的传统公钥密码体系面临着被破解的风险,格密码采用格困难问题作 为格密码构造的安全性基础,拥有最困难情况假设下无法求解的安全性,可以很 好地抵抗量子攻击;目前,被证明安全的格困难问题主要有小整数解问题(Small integer Solution Problem,简称SIS)和容错学习问题(Learning with errors Problem, 简称LWE),两种困难问题均从最坏情况理想格问题向一般变种问题归约,且计 算效率高、易存储,目前,基于格的加密方案相继被提出,但主要集中于基于身 份加密、数字签名和零知识证明等,2021年5月,Datta等人基于LWE困难问 题,构造了一种基于密文策略的属性基加密算法,实现了可抵抗量子攻击的 CPABE方案,但该方案仅支持定向加解密,当数据使用者群体发生变化时,无 法进行策略更新。

发明内容

[0006] 本发明的目的在于提供一种基于LWE‑CPABE的区块链数据共享方法、设备 和存储介质,在数据使用者群体发生变化时,能方便地对访问控制策略进行更新, 而无需对发布的数据进行重复加密,节省了更多的密钥空间成本和加密时间成 本,实现数据的正确性和完整性验证,实现数据的可追溯性,提高数据共享的安 全性和效率。
[0007] 本发明所采用的技术方案是,基于LWE‑CPABE的区块链数据共享方法,包 括以下步骤:
[0008] 数据拥有者设置访问控制策略,基于访问控制策略生成主密钥和公钥,将公 钥发送至区块链,主密钥委托密钥中心保管,并将要发布的数据加密成密文,将 密文上传至第三方存储,第三方存储将密文的存储地址上传至区块链;
[0009] 数据使用者从密钥中心获取主密钥,之后利用自身属性集合生成用户属性私 钥;
[0010] 数据使用者从区块链获取密文存储地址,并在第三方存储搜索该地址获得密 文,利用用户属性私钥解密获得密文,完成数据共享;
[0011] 当访问控制策略更新时,数据拥有者根据新访问控制策略生成策略密文,并 将其发送至第三方存储,撤销原始的密文,第三方存储根据策略密文对原始密文 的部分密文进行修改,生成新的密文。
[0012] 进一步的,参与数据共享的各参与方通过交易进行数据共享,所述交易Tx的 格式如下:
[0013] 其中From表示交易发起方,To表示交易接收方,TxType表示交易类型, 包括访问控制策略消息A和数据类消息D,OpType表示操作类型,包括发布 操作P、更新操作U和撤销操作R,Timestamp表示交易发布的时间戳,Data 表示交易包含的数据体,CheckText表示数据域的数字摘要,Sign表示交易发 起方的签名。
[0014] 进一步的,各参与方通过智能合约进行交易生成和验证,具体过程如下:
[0015] 交易发起方对输入的交易请求进行格式化得到各参数:TxType、OpType、 Timestamp和Data,计算交易包含的数据体的数字摘要CheckText和交易数字 摘要MD,其中CheckText=H(Data), MD=H(From,To,TxType,OpType,Timestamp,Data,CheckT ext);
[0016] 使用交易发起方的区块链私钥BSK生成数字签名,Sign=SignBSK(MD); 生成交易 Tx={From,To,TxType,OpType,Timestamp,Data,CheckText,Sign};
[0017] 交易验证方接收到交易后,验证交易发起方的数字签名,若数字签名验证通 过,则从交易中获取包含的数据体,计算其哈希值得到数据体的数字摘要;
[0018] 验证数据体的数字摘要与交易中包含的CheckText是否一致,若一致则交易 验证成功,若不一致则交易验证失败。
[0019] 进一步的,密文的加密过程如下:
[0020] 数据拥有者选择安全系数λ、LSSS矩阵支持的最大宽度和用户属性集合, 运行Setup算法生成公钥PK和主密钥MSK;
[0021] 数据拥有者制定访问控制策略(M,ρ),M为访问控制矩阵,ρ为属性映射函 数;
[0022] 将公钥PK、明文m′和访问控制策略(M,ρ)作为输入,运行ENC算法得到密 文CT;
[0023]
[0024] 其中 ,ci=sAρ(i)+ei, i为访问控制矩阵中属性对 应的行,j
∈(2,…,smax),l为属性对应的列,s为取自 的随机矢量,y为取 自 的均匀分布的随机向量,T为转置符号,ρ(i)为访问控制矩阵M中第i行 的行指定属性,Aρ(i)、Hρ(i)为以ρ(i)为输入的两种不同的哈希函数,ei为取自 的随机噪声, 表示m维度的lwe离散高斯分布,Mi,j为访问控制矩阵i行j列 的元素,为取自 的随机噪声, 为离散高斯分布的噪声分布,vj为取自 的随机矢量,m表示维度, 表示m维度的模q的剩余类群。
[0025] 进一步的,密文的解密过程如下:
[0026] 设I为访问控制矩阵M的一组行索引,满足 其中U′为用 户属性集合U的子集,重构系数ωi∈{0,1},且∑i∈IωiMi=(1,0,…,0),Mi为矩 阵M的第i行,则:
[0027]
[0028]
[0029] 当属性满足时 K为非对称密钥,C为取自密文CT的部分密文。
[0030] 进一步的,当访问控制策略发生更新时,更新后的密文CT′如下:
[0031]
[0032] 其中M′为更新的访问控制矩阵,ρ′为更新的属性映射函数、ci′、 表示更 新后的访问控制策略密文,ci′=sAρ′(i)+ei, ρ′(i)为更新的访问控制矩阵 M′中第i行的行指定属性,Mi,j为更新的访问控制矩阵i行j列的元素。
[0033] 一种电子设备,包括处理器、存储器和通信总线,其中,处理器、存储器通 过通信总线完成相互间的通信;
[0034] 存储器,用于存放计算机程序;
[0035] 处理器,用于执行存储器上所存放的程序时,实现上述的方法步骤。
[0036] 一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序, 所述计算机程序被处理器执行时实现上述的方法步骤。
[0037] 本发明的有益效果是:
[0038] 1、本发明实施例定义了适用于LWE‑CPABE算法的可公开验证数据的格式 化交易结构,将抗量子攻击的LWE‑CPABE算法应用于区块链中,设计交易生成 算法和交易验证合约,实现交易内数据和外包存储数据的正确性和完整性验证, 提高数据共享的安全性;
[0039] 2、本发明实施例能够支持访问控制策略更新,当数据使用群体发生变化时, 无需对数据发布者发布的数据进行重新加密,更新过程中计算量小,节省了更多 的密钥空间成本和加密时间成本,秩序更新访问控制策略,提高数据共享的效率。

附图说明

[0040] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例 或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的 附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造 性劳动的前提下,还可以根据这些附图获得其他的附图。
[0041] 图1是本发明实施例的流程图。
[0042] 图2是本发明实施例与现有技术的属性数量‑初始化时间关系图。
[0043] 图3是本发明实施例与现有技术的属性数量‑加密时间关系图。
[0044] 图4是本发明实施例与现有技术的属性数量‑私钥合成时间关系图。
[0045] 图5是本发明实施例与现有技术的属性数量‑解密时间关系图。

具体实施方式

[0046] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全 部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳 动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047] 如图1所述,基于LWE‑CPABE的区块链数据共享方法,具体包括以下步骤:
[0048] S1、设置访问控制策略,数据拥有者DO基于LSSS访问控制策略生成主密 钥MSK和公钥PK,将公钥PK发送至区块链BC,主密钥MSK委托密钥中心 KA保管,并基于公钥PK和访问控制策略对需要发布的数据进行加密得到密文, 将密文上传至第三方存储TPS,第三方存储TPS将存储地址上传至区块链BC;
[0049] S2、数据使用者DU从密钥中心KA获取主密钥MSK,之后利用自己的属 性集合生成用户属性私钥SK;
[0050] 数据使用者DU从区块链BC上获取密文的存储地址,并在第三方存储TPS 上搜索该地址获得相应的密文,并利用用户属性私钥SK进行解密获得明文,完 成数据共享。
[0051] S3、数据共享结束后,共识网络CN运行PBFT算法对数据交易进行共识和 交易记录更新,所述共识网络由区块链中的各记账节点组成。
[0052] 所述基于LWE‑CPABE的区块链数据共享方法中,参与数据共享的各参与方 通过交易的方式进行数据流转,其中使用的数据交易Tx格式如下:
[0053] Tx={From,To,TxType,OpType,Timestamp,Data,CheckText,Sign}
[0054] 其中From表示交易发起方,To表示交易接收方,TxType表示交易类型, 包括访问控制策略消息A和数据类消息D,OpType表示操作类型,包括发布 操作P、更新操作U和撤销操作R,Timestamp表示交易发布的时间戳,Data 表示交易包含的数据体,CheckText表示数据域的哈希值,Sign表示交易发起 方的签名。
[0055] 为保证交易的真实性、完整性和可追溯性,各参与方均通过智能合约的方式 进行交易的生成和验证,交易验证、共识与交易记录更新均由共识网络CN运行 PBFT算法来完成,所述交易参与方包括数据拥有者、数据使用者、区块链、密 钥中心、第三方存储,所述共识网络由区块链中各记账节点组成。
[0056] 所述交易生成合约如下所示:
[0057] 交易发起方对其输入的交易请求进行格式化得到各参数:TxType、 OpType、Timestamp和Data,计算数据域中相关数据的数字摘要CheckText和 交易数字摘要MD,其中CheckText=H(Data), MD=H(From,To,TxType,OpType,Timestamp,Data,CheckT ext);
[0058] 使用交易发起方的区块链私钥BSK对该交易进行数字签名, Sign=SignBSK(MD);
[0059] 最后生成交易 Tx={From,To,TxType,OpType,Timestamp,Data,CheckText,Sign}。
[0060] 交易生成后广播至共识网络被其他节点验证,区块链中节点可通过 CheckText和签名Sign对该交易进行快速验证,交易验证合约算法如下:
[0061] 计算除签名字段外的交易数字摘要MD′,
[0062] MD′=H(From,To,TxType,OpType,Timestamp,Data,CheckT ext)
[0063] 使用区块链公钥BPK对交易的数字签名进行解密得到交易数字摘要, MD=ComputeBPKSign,若MD′=MD,则从交易中获取数据域数据Data, 计算数据域数据的哈希值CheckText′=H(Data),若CheckText′=CheckText, 则输出True,交易验证成功,否则输出False,交易验证失败。
[0064] 当该交易获得节点验证成功并全网共识后,记账节点会打包交易、出块并全 网广播,最终由交易接收方接收并同步至区块链。
[0065] 所述S1中数据加密的过程如下:
[0066] S1‑1,数据拥有者DO选择安全系数λ、LSSS矩阵支持的最大宽度smax和 用户属性集合U,运行Setup算法生成公钥PK和主密钥MSK,具体计算过程 如下:
[0067] 选择一个LWE模q、维数n、m和噪声分布χlwe、χ1、χ2、χbig,χlwe为 用于LWE安全性的噪声分布,χ1、χ2均为用于陷门函数采样的噪声分布,χbig为用于对密钥隐藏的噪声分布;
[0068] 选择一个均匀分布的随机向量 和随机矩阵 表示模 数为q、长度为n的随机向量, 表示模数为q的n行m列随机矩阵,随机 向量y取自 {Hu}u∈U取自 u为用户属性;
[0069] 使用TrapGen进行陷门计算, Au表示普通函数, 表示单向陷门函数,则
[0070]
[0071] S1‑2,数据拥有者DO生成交易: TxUploadPK={DO,BC,A,P,Timestamp,PK,CheckText,SignDO},将公钥PK传送 至区块链BC;
[0072] 数据拥有者DO还使用密钥中心KA的区块链公钥对主密钥MSK进行加密 得到CTMSK,并生成交易 TxUploadMSK={DO,KA,A,P,Timestamp,CTMSK,CheckText,SignDO},将主密钥的密 文发送至密钥中心KA;
[0073] S1‑3,数据加密,数据拥有者DO制定访问控制策略(M,ρ),其中M为访问 控制矩阵,ρ为属性映射函数,将访问控制矩 阵映射到属性集合U,之后输入公钥PK、明文m′和访问控制策略,运行ENC 算法得到密文,其中i表示访问控制矩阵中属性对应的行,j∈(2,…,smax),l表 示属性对应的列, 是表示模数为q的l行smax列的随机矩阵;
[0074] 具体过程如下:
[0075] 生成访问控制策略(M,ρ);
[0076] 从 中任选一个随机矢量s,从 中任取一个矢量vj;
[0077] 对于任意一个i∈[l],存在随机噪声 和 为一个 离散高斯分布,m表示维度, 表示m维度的模q的剩余类群, 表示m维 度的lwe离散高斯分布;
[0078] 计算 由此获得:
[0079]
[0080] 输出密文CT:
[0081]
[0082] Mi,j为更新的访问控制矩阵i行j列的元素,T为转置符号,ρ(i)为访问控制 矩阵M中第i行的行指定属性,Aρ(i)、Hρ(i)为输入为ρ(i)的两种不同的哈希函 数;
[0083] 数据拥有者DO生成交易 TxUploadCT={DO,TPS,A,P,Timestamp,CT,CheckText,SignDO}将密文上传至第三方 存储TPS,TPS生成交易 TxCTAddress={TPS,BC,A,D,Timestamp,CTAddress,CheckText,SignTPS}将密文地址 上链。
[0084] 所述S2中各数据使用者DU从密钥中心KA处申请获得主密钥,密钥中心 KA生成交易 TxDownloadMSK={KA,DU,A,P,Timestamp,CTMSK,CheckText,SignDO},数据使用者 DU输入自身属性集合U和主密钥MSK,运行KeyGen算法输出与自身属性对 应的用户属性私钥SK,具体过程如下:
[0085] 从噪声分布χ1中任选一个随机向量 令 t为第一个元素为 1,其余m
元素为 的随机向量;Z表示m维度的整数集合;
[0086] 对于任意一个u∈U,从 中任选一随机向量
[0087] 计算 其中 是函数EnSamplePre的输 出结果,σ为控制离散高斯噪声分布χ2范围的参数;
[0088] 输出用户属性私钥SK为:SK=({ku}u∈U,t)
[0089] 数据使用者DU从区块链BC检索密文地址,通过密文地址CTAddress从TPS 搜索相应的密文并下载至本地,TPS生成交易 TxDownloadCT={TPS,DU,D,P,Timestamp,CT,CheckText,SignTPS}进行密文下载 记录,数据使用者DU使用用户属性私钥SK对密文进行解密获取明文。
[0090] 用户属性私钥SK对应于用户属性集合U的某个子集U′∈U,若(1,0,…,0) 不在与U′关联的访问控制矩阵M的行空间中,则解密失败,否则,设I为矩阵 M的一组行索引,并满足 设重构系数 且 ∑i∈IωiMi=(1,0,…,0),其中Zq表示模q完全剩余类群,Mi为矩阵M的第i行, 按如下过程进行解密:
[0091]
[0092]T
[0093] 其中K为非对称密钥,ωi为参数,使得 成为sy的随机向量, 当属性满足时, C为取自密文CT的部分密文。
[0094] 当访问控制策略发生变更时,重新对明文进行加密需要耗费更多密钥空间成 本和加密时间成本,在LWE‑CPABE区块链加密协议中,数据使用者可根据原始 密文保留的访问控制策略更新,在根据策略更新时,数据拥有者DO生成新的访 问控制策略(M′,ρ′),之后运行AccGen算法得到更新后的策略密文  ,其中,ci′=sAρ′(i)+ei, M′i,j为更新的访问控制矩阵 i行j列
的元素;
[0095] 随后生成策略更新交易: TxAccGen={DO,TPS,A,U,Timestamp,UpdateCT,CheckText,SignDO}发送给第三方 存储TPS,同时生成原密文撤销交易TxAccUpdate={DO,BC,A,R,Timestamp,CT,CheckText,SignDO},发送至区块链以 更新密文信息,并告知数据使用者DU。
[0096] 第三方存储TPS获取更新的策略密文后,将从原密文CT中获取的部分密文 C输入更新的访问控制策略密文 运行AccUpdate算法生成更新后的密文 CT′。
[0097]
[0098] 更新后密文仍使用原密文地址,各数据使用者仍可通过上述步骤获取密文并 进行解密。
[0099] 基于LWE‑CPABE的区块链加密协议中,各用户利用格式化的交易结构可快 速高效地检索到各自需要的信息,同时,整个数据流转周期内实现了各节点行为 全过程链上监管,可以更好地进行审计和掌握访问控制动态。
[0100] 本发明实施例中各数据使用者在生成用户属性私钥时,引入了一个均匀独立 分布的随机向量 任意数据使用者用户属性私钥中的随机向量均不相同, 因此本发明实施例涉及的用户属性私钥对任何人都是信息论隐藏的,无法实现合 谋攻击;同时本发明实施例中各节点的所有通信均以交易的方式进行,交易由交 易发起方利用其区块链私钥进行签名,交易接收方通过区块链公钥对数字签名进 行解密,中间人无法通过篡改地址或伪造签名来通过验证,能很好地防止中间人 攻击。
[0101] 本发明实施例中用户属性相关授权过程由用户自己决定,用户可以选择公开 其身份属性,也可以隐藏其身份信息保护隐私,此外,相关数据在链上均为密文, 数据的安全性和真实性通过交易验证算法得到保证,攻击者无法获取用户的相关 信息,做到了抗链接攻击。
[0102] 分别对现有技术和本发明实施例的各功能特性进行对,如表1所示:
[0103] 表1本发明与现有技术的功能特性对比表
[0104]
[0105]
[0106] 现有技术采用q‑PBDHE困难问题假设,即无法在多项式时间内破解私钥和 对单向函数求逆,以可以忽略的概率被破解,但随着量子计算的不断发展,这些 困难问题假设将面临被破解的风险,因此基于此类困难问题构建的密码学方案并 非绝对安全的,本发明实施例基于最高困难的安全类型进行构建,若要破解密码 算法,则需要解决最高情况的困难问题,因此安全性能够得到保证;现有技术构 造的CPABE算法在计算时需进行惩罚运算、模指数运算和双线性映射等开销较 大的运算,而本发明实施例只需进行开销较小的加法运算,极大地提高了运算效 率。
[0107] 分别使用本发明和上述现有技术进行仿真实验,采用一台主机(Intel Core i7‑8750H CPU@2.20GHz,8.0GB RAM,Win10操作系统),并利用PBC密码库、 PALISADE密码库和编程语言C++来构建实验框架,对性能指标进行选择时,本 发明实施例并未对区块链网络的交易流程进行改动,只是将网络中上链的数据采 用LWE‑CPABE进行加密,不会影响到区块链网络的运行效率,因此,只对 LWE‑CPABE方案的性能指标进行评估。
[0108] 实验中,明文数据设置为308B,因本发明中无需进行模指数、双线性映射 等复杂运算,仅需要进行加法运算,因此在各阶段的时间代价均明显优于现有技 术。
[0109] 如图2、图3所示,随着系统中属性的不断增加,本发明实施例中数据拥有 者在链下初始化和加密所花费的时间明显少于现有技术的方案,对系统的整体效 率实现了极大的提升。
[0110] 如图4所示,在密钥生成阶段,随着属性的不断增加,本发明实施例明显优 于现有技术的方案,在进行多用户、多属性集合的密钥生成时,本发明实施例具 有更强的实用性。
[0111] 如图5所示,在解密阶段,本发明实施例在0~2ms左右,远低于现有技术 方案,因此更适合区块链数据共享。
[0112] 综上所述,使用本发明实施例进行数据共享时,能够保证数据的完整性、真 实性和可溯源性,且该数据共享过程更为安全,能够免除合谋攻击、中间人攻击 和抗链接攻击等,在数据使用者群体发生变化时,支持对访问控制策略进行更新, 更新过程中计算量较小,使数据共享的效率提升。
[0113] 本发明还包含一种电子设备,包括存储器和处理器,所述存储器用于存储密 钥生成、数据加密、解密、访问控制策略更新等各种计算机程序指令,所述处理 器用于执行所述计算机程序指令完成上述全部或部分步骤,实现对数据的共享; 所述电子设备可以与一个或多个外部设备通信,还可与一个或多个使用户与该电 子设备交互的设备通信,和/或与使得该电子设备能与一个或多个其他计算设备 进行通信的任何设备通信,电子设备还可以通过网络适配器与一个或多个网络 (例如局域网、广域网和/或公共网络)通信。
[0114] 本发明还包括一种存储有计算机程序的计算机可读介质,该计算机程序可以 被处理器执行实现数据的共享,所述计算机可读介质可以包括但不限于磁存储设 备、光盘、数字多功能盘、智能卡及闪存设备,此外本发明所述的可读储存介质 能代表用于存储信息的一个或多个设备和/或其他机器可读介质,术语“机器可 读介质”包括但不限于能存储、包含和/或承载代码和/或指令和/或数据的无线通 道和各种其他介质(和/或存储介质)。
[0115] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似 的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤 其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单, 相关之处参见方法实施例的部分说明即可。
[0116] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。 凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本 发明的保护范围内。