收藏 分销(赏)

基于区块链与属性密码体制的匿名数据共享访问控制.pdf

上传人:自信****多点 文档编号:2333653 上传时间:2024-05-28 格式:PDF 页数:12 大小:1.92MB
下载 相关 举报
基于区块链与属性密码体制的匿名数据共享访问控制.pdf_第1页
第1页 / 共12页
基于区块链与属性密码体制的匿名数据共享访问控制.pdf_第2页
第2页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第 49卷 第 10期2023年 10月Computer Engineering 计算机工程基于区块链与属性密码体制的匿名数据共享访问控制王静怡1,2,刘百祥1,2,3,方宁1,2,彭凌祺4(1.复旦大学 计算机科学技术学院,上海 200433;2.上海市区块链工程技术研究中心,上海 200433;3.复旦大学 义乌研究院,浙江 义乌 322000;4.上海华虹计通智能系统股份有限公司,上海 201206)摘要:信息安全和隐私保护是大数据时代的重要需求。基于身份的公钥密码体制解决了传统公钥基础设施体制的密钥管理问题,但会泄漏签名者的身份信息。传统基于属性的访问控制方案实现了主体的动态扩展和对客

2、体的细粒度访问,但存在中心化的授权机构。为了解决上述问题,提出一种基于区块链与去中心化属性密码体制的匿名数据共享访问控制方案。利用属性签名的匿名性,在存储数据前无须已知用户身份信息即可验证数据来源的可靠性,通过属性加密实现细粒度的访问控制。采用分布式属性密码体制,使用户合作构建属性授权机构,当且仅当超过指定阈值的机构用户同意时才可进行机构创建和密钥分发。实验结果表明,该方案能抵抗合谋和重放攻击,在并发请求数为 1 0005 000和属性数为 1030的条件下,系统总响应时间不超过 120 ms,最大吞吐量可达 62 T/s,满足实际应用需求。关键词:区块链;属性密码体制;访问控制;身份认证;隐

3、私保护开放科学(资源服务)标志码(OSID):中文引用格式:王静怡,刘百祥,方宁,等.基于区块链与属性密码体制的匿名数据共享访问控制 J.计算机工程,2023,49(10):41-52.英文引用格式:WANG J Y,LIU B X,FANG N,et al.Anonymous data sharing and access control based on blockchain and attribute-based cryptography J.Computer Engineering,2023,49(10):41-52.Anonymous Data Sharing and Access

4、Control Based on Blockchain and Attribute-Based CryptographyWANG Jingyi1,2,LIU Baixiang1,2,3,FANG Ning1,2,PENG Lingqi4(1.School of Computer Science,Fudan University,Shanghai 200433,China;2.Shanghai Engineering Research Centerof Blockchain,Shanghai 200433,China;3.Yiwu Research Institute,Fudan Univers

5、ity,Yiwu 322000,Zhejiang,China;4.Shanghai Huahong Jitong Smart System Co.,Ltd.,Shanghai 201206,China)【Abstract】Information security and privacy protection are critical requirements in the era of big data.Identity-based cryptography is a type of public-key cryptography that solves the main management

6、 problem of the traditional public key infrastructure.However,it will leak the identity information of the signer.The traditional attribute-based access control schemes achieve the dynamic expansion of subjects and fine-grained access to objects,but a centralized authority exists.This study proposes

7、 an anonymous data sharing and access control scheme based on blockchain and Attribute-Based Cryptography(ABC)to solve the above problems.Using the anonymity of Attribute-Based Signature(ABS),the reliability of data sources can be verified without knowing the user identity information before storing

8、 the data,and fine-grained access control is achieved through Attribute-Based Encryption(ABE).The distributed ABC system is used to enable users to cooperate in building an attribute authority.Authority creation and key distribution can only be performed when the users exceed a specified threshold.T

9、he experimental results show that the scheme can resist collusion and replay attacks.Under the condition that the number of concurrent requests is 1 000-5 000 and the number of attributes is 10-30,the total response time of the system does not exceed 120 ms,and the maximum throughput can reach 62 T/

10、s,which satisfy the requirements of the actual environment.【Key words】blockchain;Attribute-Based Cryptography(ABC);access control;identity authentication;privacy protectionDOI:10.19678/j.issn.1000-3428.0065202基金项目:国家重点研发计划(2019YFB2101702);国家自然科学基金(62272107,U19A2066);广东省重点领域研发计划(2020B0101090001);上海市科

11、委科技创新行动计划(20222420800,20511102200)。作者简介:王静怡(1999),女,硕士研究生,主研方向为属性密码学、区块链;刘百祥,工程师、博士;方 宁,硕士研究生;彭凌祺,工程师。收稿日期:2022-07-11 修回日期:2022-11-25 Email:热点与综述文章编号:1000-3428(2023)10-0041-12 文献标志码:A 中图分类号:TP3092023年 10月 15日Computer Engineering 计算机工程0概述 近些年,比特币底层区块链技术1因去中心化、不可篡改等特性受到各领域研究人员的广泛关注,它不依赖受信任的第三方,通过分布式验证

12、和共识机制,以去中心化的方式在节点网络之间建立信任关系,使传统的中心化问题得到较好改善2。区块链技术在医疗3、社交4、物流5等领域应用广泛,因此区块链上的数据通常与用户医疗记录、社交网络等高度敏感的数据有关。然而,运行在区块链上的公钥基础设施自身存在一定程度的隐私泄露问题,并且其数据的公开透明性也会导致一定程度的数据安全问题。在涉及敏感数据的领域中,区块链的安全应用需要完善的隐私保护和数据访问控制机制。一方面需要保证数据持有者的匿名性,在用户身份可认证的同时最大程度保护用户隐私;另一方面任意数据需要以加密形式存储在区块链上,且只有满足一定条件的用户才可以从区块链中获取该数据,实现访问控制。传统

13、的访问控制模型有基于用户的访问控制(User-Based Access Control,UBAC)、基于角色的访问 控 制(Role-Based Access Control,RBAC)和 基 于属 性 的 访 问 控 制(Attribute-Based Access Control,ABAC)。在 UBAC 中,需要数据持有者决定系统中所有用户的访问权限,不适合用户数量较多的场景。在 RBAC6-7中,拥有相同权限的用户会被设置为同一个角色,这降低了授权复杂度,但以角色进行访问控制粒度较粗且系统缺少灵活性。ABAC8-9的适用范围更加广泛,利用用户属性作为授权的基础,实现了细粒度的访问控制,

14、只有具有有效属性集、满足访问策略的用户才能访问数据。因此,ABAC 灵活性更高,且更适用于实际环境。针对区块链上的数据访 问 控 制,文 献10-12基 于 属 性 加 密(Attribute-Based Encryption,ABE),在一定程度上提高了区块链数据访问控制的动态性和安全性。关于 ABE 的研究可追溯至 SAHAI 等13构造的模糊身份基加密(Fuzzy Identity-Based Encryption,Fuzzy-IBE)方案。Fuzzy-IBE将用户的身份信息结构化成一组属性,只要加密者和解密者的属性集的偏差在一定的误差范围内,解密者就可对密文进行解密。GOYAL等14在

15、Fuzzy-IBE 的基础上提出 ABE 的概念,并根据访问结构(即访问策略)和属性集合与密钥和密文的不同对应关系将 ABE 分为密钥策略的属性加密(Key-Policy Attribute-Based Encryption,KP-ABE)和 密 文策 略 的 属 性 加 密(Ciphertext-Policy Attribute-Based Encryption,CP-ABE)。CP-ABE 将密文与访问结构相关联,密钥与一组属性相关联。这种模式适用于区块链上公有存储的细粒度访问控制。针对匿名举报等特定情况,由于需要同时保证信息来源可验证与信息发布者身份不被泄露,因此目前研究人员提出了一些解

16、决方案,例如环签名15、组签名16和网格签名17等。环签名在系统使用者数量众多且用户不知道具体信息的情况下不适用。组签名需要将用户提前划分为组,这在很多实际情境中是不可行的。网格签名不能确定数据来自单个用户还是多个用户且无法有效抵抗合谋攻击。为了解决 上 述 问 题,一 类 名 为 属 性 签 名(Attribute-Based Signatrue,ABS)的方案18-19相继被提出。在 ABS 方案中,签名者的签名密钥与其一系列属性相关联,验证者不知道签名者具体的身份信息就可验证其签名,实现了在隐藏签名者真实身份的同时对数据真实性进行有效验证,适用于对链上用户的匿名身份认证。多数现有的属性密

17、码体制都由一个中央机构负责属性的管理和密钥的分发,这会导致单点故障和性能瓶颈问题,在结合区块链的场景中不能满足区块链去中心化的要求。近些年,学者们提出了多个属性授权机构的属性加密系统13,20和属性签名系统21-23。在这些方案中,整个属性集被划分为多个互斥的子集,每个属性子集仍然由一个中央授权机构维护。攻击者可以令一部分属性子集中的私钥无法生成和分发,进而影响整个系统的正常运行。文献 11 实现了基于区块链的完全去中心化访问控制,但没有考虑用户在存储数据时需要保持匿名的情况。针对以上问题,本文引入(tn)门限秘密共享方案24对属性签名进行改进,提出一种基于区块链和去中心化属性加密的匿名身份认

18、证访问控制方案,以保证数据来源的可靠性并实现一定程度的访问控制。1预备知识 在本节中,首先介绍双线性映射和单调访问结构的基本知识,然后描述线性秘密共享方案和(tn)门限秘密共享方案,最后介绍基础 CP-ABE 和 ABS方案。1.1双线性映射设G0和G1是两个阶为素数p的乘法循环群,g是G0的生成元,e是双线性映射,e:G0 G0 G1。双线性映射e有如下特性:1)双线性。uv G0ab Zp,使得e(uavb)=e(uv)ab。2)非退化性。$g G1,使得e(gg)1。如 果G0中 的 群 运 算 和 双 线 性 映 射e:G0G0 G1都是有效和可计算的,那么G0就是一个双线 性 群。需

19、 要 注 意 的 是 映 射e是 对 称 的,即e(gagb)=e(gg)ab=e(gbga)。1.2单调访问结构设12n为一组参与者,集合 212n是42第 49卷 第 10期王静怡,刘百祥,方宁,等:基于区块链与属性密码体制的匿名数据共享访问控制单 调 的,当 且 仅 当 对 于 任 意B、C,如 果B 且B C,则 有C 。一 个 单 调 访 问 控 制 结 构是12n的 非 空 子 集 构 成 的 集 合,例 如 212n/,其中,在中的集合称为授权集,不在中的集合称为非授权集。1.3线性秘密共享方案设P为参与者集合,若一个秘密共享方案在Zp上是线性的,则须满足:1)每一个参与者的秘密

20、共享值构成Zp上的一个向量。2)存在一个关于的m行d列的秘密共享矩阵M,为映射函数,将M的每一行映射到P的每一个参与者。对于M的每一行Mi(i 1m)对应于参与者(i)。给定一个列向量 v=(sr2r3rd),其中,s Zp为秘密共享值,r2r3rd为随机值。Mv 表示秘密s关于的m个秘密共享值,i=(Mv)i为参与者(i)的秘密共享值。线性秘密共享方案(Linear Secret Sharing Scheme,LSSS)25具有线性重构的性质,假设是关于单调访问结构A的一个线性秘密共享方案。S表示一个授 权 集,将I 12m定 义 为I=x(x)S。利 用 高 斯 消 元 法,构 造 常 量

21、 集x Zpx I使 得i IiMi=(100),进一步可以重构出秘密共享值x Ixx=S。1.4(tn)门限秘密共享方案(tn)门限秘密共享方案26-27是指将共享的秘密分为n份并分别分配给n个不同的用户。每个用户持有共享秘密的一部分,当且仅当t个及以上的用户联合起来才能重构出共享秘密。为了满足属性密码体制和区块链的去中心化特性,将使用无需可信第三方的门限秘密共享算法22。在属性密码体制中,用户集即为属性集。P为一个成员组(P1P2Pn),每个用户Pi分别生成一个唯一标识符uidi,用户间的标识符互不冲突。首先,用户分别选取一个随机值xi,共享秘密值为x=i=1nxi。然后,随机生成一个阶为

22、t-1的多项式fi(z)=fi0+fi1z+fi(t-1)zt-1,令fi(0)=xi,计 算sij=fi(uidj)(j 1n)。用户Pi将sij分享给用户Pj,保存sii。用户Pi收到剩余n-1个sji后计算自己的秘密值si=j=1nsji=j=1nfj()uidi。接着,共享秘密值x可以被n个参与者中的任意t个重构,假设存在一个函数F(x)=j=1nfj()x,每 个 用 户 的 秘 密 值si=j=1nsji=j=1nfj(uidi)=F(uidi)。最后,通过拉格朗日插值定理计算得出F(0)=x。1.5属性加密CP-ABE14的具体算法步骤如下:1)Setup(U)GPASK。输入一

23、个安全参数和系统描述符U,输出全局的参数GP和属性密钥ASK。2)KeyGen(uidGPASKAttrx)Kxuid。输入用户唯一标识符uid、属性密钥ASK、全局参数GP和待申 请 属 性Attrx,输 出 分 配 给 用 户 关 于Attrx的密钥Kxuid。3)Encryption(MSGGP)C。输 入 公 共 参数GP、访 问 结 构和 待 加 密 的 数 据MSG,输 出密文C。4)Decryption(GPCKxuid)MSG。输 入 密文C、全 局 参 数GP和 属 性 私 钥 集Kxuid,解 密 数据MSG。如果一个加密算法是正确的,当且仅当用户的 属 性 私 钥 集Kx

24、uid满 足 访 问 结 构时,Decryption(GPEncryption(MSGGP)Kxuid)=MSG。1.6属性签名属性签名方案18的具体算法步骤如下:1)Setup(U)GPOSK。输入一个安全参数和系统描述符U,输出全局参数GP和主密钥OSK。2)KeyGen(GPAttrxOSK)SKx。输 入 全 局参数GP、主密钥OSK和待申请属性Attrx,输出属性密钥SKx。3)Sign(GPSKxMSG)。输 入 全 局 参数GP、访问策略、属性密钥集SKx和待加密的数据MSG,输出签名。4)Verify(GPMSG)bool。输入全局参数GP、签名和数据MSG,如果签名合法,则输

25、出true,否则输出false。如 果 一 个 签 名 算 法 是 正 确 的,当 且 仅 当 签名 者 的 属 性 密 钥 集SKx满 足 访 问 策 略时,签 名 合 法,即 验 证 者 验 证 签 名 满 足Verify(GP)Sign()GPSKxMSG MSG=true。2系统模型 本节对匿名数据共享访问控制方案中的算法进行介绍,包括符号说明和算法设计的具体细节。2.1符号说明所提方案涉及的符号及其说明如表 1 所示,同时包括如下 6种角色:1)User。用户,系统基本单位,合作构建属性授权机构,可进行签名、加解密数据等操作。2)Writer。写入者,用户的一种角色。系统中的数据所有

26、者创建数据上传到区块链。432023年 10月 15日Computer Engineering 计算机工程3)Reader。读取者,用户的一种角色。系统中的数据读取者满足数据访问策略可进行数据读取。4)CA。证书授权机构,负责用户注册,保证系统中用户身份的准确性。5)AA。属性授权机构,由多个用户共同组成,可进行授权、认证等操作。6)DAPP。去中心化应用,可进行系统中间参数的合成和计算、机构和用户之间的沟通交流等操作。2.2算法设计本节描述了匿名数据共享访问控制方案的通用流程,用户可以在区块链上匿名存储数据并指定满足访问策略的用户对数据进行访问,由去中心化的属性加密和属性签名协议构成,如图

27、1所示。去中心化应用(即智能合约)负责系统的初始化工作,生成全局参数GP。证书授权机构被认为是诚实的,例如管理居民身份证的政府机构等。用户作为系统的基本角色,进入系统前需要向证书授权机构提交申请进行注册。用户提供唯一的标识符uid,证 书 授 权 机 构 返 回 一 个 证 明 其 身 份 的 身 份 凭 证token。属性授权机构由多个用户共同建立,具有授权属性的功能。用户将token提供给一个或多个属性授权机构后,接收到用于解密的密钥K和签名的密钥SK。数据MSG在访问策略下加密,决定哪一个用户可以访问存储在区块链中的数据。Writer决定其声明策略,根据此声明对数据相关信息进行签名,以证

28、明其身份真实性。将带有签名的密文C设为CT,发送到区块链中。区块链上的智能合约验证签名并存储数据CT。当Reader读取数据时,区块链发送CT给Reader。如果Reader具有与访问策略匹配的属性,则可以解密并取回原始数据MSG,否则解密失败。区块链和智能合约作为系统的核心功能区,不仅对数据和一些参数进行存储,还参与属性授权机构的构建过程。所提方案将身份验证功能指定给区块链,可有效减少Reader的验证耗时。当Reader想要读取存储在区块链中的某些数据时,只须使用从属性授权机构接收到的密钥对其进行解密即可。匿名数据共享访问控制方案包括以下算法:1)GlobalSetup()GP。系 统 初

29、 始 化,由DAPP 实现。选择阶为质数p的双线性群G0、GT、G1和G2,两 个 双 线 性 映 射e:G0 G0 GT和e:G1G1 G2,g为G0的生成元,g1和g2为G1的生成元,hj()j 1tmax为G2的生成元,tmax指单调跨度程序(MonotoneSpanProgramMSP)宽 度 的 最 大 值。选择 2个哈希散列函数H1:01*G0和H2:01*p,生成GP=(G0GTG1G2eepH1H2gg1g2hj)并将其公开上链。2)CASetup(GP)CPKCSK。CA 初始化,随机 选 取a0*p,计 算A0=ha00。CA生 成 密 钥 对(CSigCVer),CSig

30、和CVer是对用户基本信息进行签 名 验 证 的 公 私 钥。CA 的 公 钥 为CPK=()A0CVer,私钥为CSK=(a0CSig)。3)UserRegister(uidiGPCPKCSK)token。Useri随机生成秘密值Si*p,再计算uidi=gSi,作为系统中用户唯一的标识符。具备唯一标识符uidi的用户Useri向CA提交信息进行注册,CA随机选择Kbase G,令K0=K1/a0base。生 成 身 份 凭 证token=(uidiKbaseK0),是利用签名密钥CSig在uidi|Kbase上的签名。4)AA 初始化。主要分为机构初始化和属性密钥生成两个过程。表 1符号及

31、其说明 Table 1Symbols and their explanations符号CPK和CSKOPK和OSKAPK和ASKPADASKxKxuiditokenuidAttrxMSGCCT说明证书授权机构的公钥和私钥AA生成的用于验证用户声明属性的公钥和私钥AA生成的用于加密解密的公钥和私钥User拥有的属性集合,用于访问控制User拥有的声明属性集合,用于身份验证Attrx的属性签名私钥Useri申请的关于Attrx的属性加密密钥CA颁发给用户的身份凭证所有用户都具有唯一的全局标识属性x访问策略布尔访问结构时间戳待加密的数据密文上传到区块链的数据图 1通用流程Fig.1General p

32、rocess44第 49卷 第 10期王静怡,刘百祥,方宁,等:基于区块链与属性密码体制的匿名数据共享访问控制(1)AASetup(GPnt)OPKOSK。机构初始化,AA 中 的 用 户Useri(i 1n),选 择 随 机 数i和i*p,作为部分机构秘密。机构秘密为用户拥有部分机构秘密之和,即=i=1ni、=i=1ni。Useri选取随机数构造两个多项式f1i=a0+a1x+a2x2+at-1xt-1和f2i=a0+a1x+a2x2+at-1xt-1,阶数为t-1阶。同时,令f1i(0)=a0=i、f2i(0)=a0=i,再计 算 秘 密 共 享 值share1ij=f1i(uidj)和s

33、hare2ij=f2i(uidj)(j1nji),并将其分享给Userj(j1n)j i。Useri接收到n-1个秘密共享值后,计算两个部分机构私钥osk1i=j=1nshare1ji和osk2i=j=1nshare2ji,对j 1,tmax,计 算 出 两 个 部 分 机 构 公 钥opk1i=hosk1ij 和opk2i=hosk2ij并将其公开上链。DAPP分别随机选取t个链上的部分机构公钥opk1i和opk2i,对j 1,tmax,由(tn)门限秘密共享算法计算出属性授权机构公钥:Aj=i=1topkj=1j ituidjuidj-uidi1i=hi=1t()osk1ij=1j itu

34、idjuidj-uidij=hi=1nij=hjBj=i=1topkj=1j ituidjuidj-uidi2i=hi=1t()osk2ij=1j ituidjuidj-uidij=hi=1nij=hjAA 将 计 算 出 的 公 钥OPK=(AjBj|j 1tmax)公开上链,私钥OSK为(),只有 AA中所有用户的部分机构秘密全部共享才能获知私钥。(2)AtrrGen(GPntAttrx)APKASK。属 性授权机构属性密钥的生成与机构初始化类似。对属性Attrx,每 一 个Useri需 要 选 择 一 个 随 机 数yxi和zxi*p作为其部分机构属性秘密,最终的机构属性秘密为用户拥有部

35、分机构属性秘密之和,即yx=i=1nyxi、zx=i=1nzxi。Useri选取随机数构造两个t-1阶的多项式,分 别 为f1i=a0+a1x+a2x2+at-1xt-1和f2i=a0+a1x+a2x2+at-1xt-1,同时令f1i(0)=a0=yxi、f2i()0=a0=zxi。再计算秘密共享值share1ij=f1i(uidj)和share2ij=f2i(uidj)(j 1nj i),并 将 其 分 享 给Userj(j 1nj i)。当Useri接收到n-1个用户发送的秘密共享值 后,计 算 两 个 部 分 的 机 构 属 性 私 钥ask1i=j=1nshare1ji和ask2i=j

36、=1nshare2ji,再计算出部分机构属性公钥apk1i=e(gg)ask1i和apk2i=gask2i并公开上链。DAPP 随机选取t个部分机构属性公钥apk1i和apk2i,由(tn)门限秘密共享原理计算得出公钥:Yx=i=1tapkj=1j ituidjuidj-uidi1i=e(gg)i=1t()ask1ij=1j ituidjuidj-uidi=e(gg)i=1nyxi=e(gg)yxZx=i=1tapkj=1j ituidjuidj-uidi2i=gi=1t()ask2ij=1j ituidjuidj-uidi=gi=1nzxi=gzx属性Attrx的公钥为APK=(e(gg)y

37、xgzx)。私钥为ASK=(yxzx),不为任何人所知。5)用户申请属性凭证。主要分为两部分:一部分是申请DA属性密钥,用于签名和验证;另一部分申请PA属性密钥,用于加密和解密。AA 利用CPK中的验证密钥CVer验证token中包含的签名,只有验证通过才能给用户分发属性密钥。(1)DAKeyGen(AttrxGPOSK)SKx。Useri向AA 申请其声明属性集的签名密钥,申请属性须经过AA中t个成员用户的同意。对属性Attrx DA:AA 的 成 员Userj(j 1n),计 算authDA=osk1j+osk2jx返回给Useri。当Useri收到t个authDA后,计算密钥:SKx=K

38、1/()i=1tauthj=1j ituidjuidj-uidibase=K1/()+xbaseUseri验证密钥是否正确。对j 1,tmax,计算e(KxAjBxj)和e(Kbasehj)是否相等,若相等则申请的属性签名密钥是正确的,否则是不正确的。(2)PAKeyGen(AttrxuidiGPASK)Kxuidi。Useri向 AA 申请属性集的加解密密钥,申请属性须经过AA下t个成员用户的同意。对属性Attrx PA:授权机构的成员用户Userj(j 1n),先计算 申 请 用 户Useri的uidi的 哈 希 值,再 计 算kxuidij=gask1jH(uidi)ask2j返回给Us

39、eri。Useri获得t个kxuidij之后计算密钥:Kxuidi=j=1tkk=1k jtuidkuidk-uidjxuidij=gyxH()uidizx6)Writer在上传数据前,决定一个访问策略,即一个单调的布尔函数,将数据MSG按照访问策略进 行 加 密。Encryption(GPAPKMSG)C:Writer决定加密策略,将转换成一个m h的访问控制矩阵R,映射关系将R的行映射到属性集中对应的属性,具体步骤如下:(1)随机选择一个值s p和一个向量v hp,s是向量v的第一个元素。对矩阵R中的每一行Rk,计算k=Rkv。(2)随机选择一个向量w hp,其中第一个元素为 0。对矩阵R

40、中的每一行Rk,计算wk=Rkw。(3)对矩阵R中的每一行Rk,选择一个随机数rk p,进行如下计算:452023年 10月 15日Computer Engineering 计算机工程C0=MSG()ggs(1)C1k=()ggk()ggy(k)rk(2)C2k=grk(3)C3k=gz(k)rkgwk(4)C=(RC0C1kC2kC3k)(5)7)Sign(GPTPKOPKSKxx CAMSG)。Writer决定签名策略,将转换成一个l k的访问控制矩阵M,映射关系为从M的行到对应属性的映射函数,具体步骤如下:(1)Writer为了防止重放攻击,不直接对MSG进行签名。先对加密后的密文C计算

41、哈希值,再结合时间戳计算MSG=H(C)|。(2)检查CA是否满足签名策略,若(CA)=1,则计算向量vk,使得kvkMk=(100)。(3)计算哈希值=H(MSG|),随机选择r0*p和ri p()i 1l,进行如下计算:Y=Kr0base(6)Si=(Kvi()i)r0(g2g1)ri()i 1l(7)W=Kr00(8)Pj=j=1l()AjB()ijMijri()j 1k(9)=(YWS1S2SlP1P2Pt)(10)最终Writer将加密后的密文、时间戳、签名结果和签名访问策略一起上链。CT=(C)(11)8)Writer在 上 传 数 据 后,智 能 合 约 需 要 验 证Write

42、r的身份,确定数据来源。如果结果为false,说明Writer身份不可信;如果结果为true,则将数据存储在区块链上。Reader想要从区块链读取数据,须确保自身满足数据的访问策略,对密文进行解密读取。Verify(CPKMSG)bool:区 块 链 首 先 需要计算MSG=H(C)|,然后计算=H(MSG|)。验证下列公式,如果有一个公式未通过,则为无效签名,输出false:Y=1e()WA0=e()Yh0i le()SiAjB()ijMij=e()Yh1e()g2g1P1,j=1i le()SiAjB()ijMij=e()g2g1Pj,j 19)Decryption(CKxuidiGP)M

43、SG。Reader首先判断自身的属性集是否存在矩阵R的子集K,使得向量(100)是其线性组合:如果不存在,则解密 失 败;如 果 存 在,则 计 算ck使 得k KckRk=(100)。然后按照以下步骤计算出明文:(1)对kK,计算中间值Temp=C1ke(H()uidi)C3k/e()sk()k uidiC2k。(2)计算明文MSG=C0/k KTemp。3系统架构设计 本节首先介绍匿名数据共享访问控制方案的总体架构,然后针对数据层和合约层的具体设计进行简要介绍。3.1总体架构基于区块链和属性密码体制的匿名数据共享访问控制方案主要分为数据层、合约层和应用层三部分,如图 2所示。数据层隐藏了用

44、户与智能合约之间的直接交互过程,主要对数据进行存储,包括公共参数、密钥密文和运算过程中产生的中间参数等。合约层实现了两个智能合约。分布式属性密码体制(Distributed Attribute-Based Cryptography,DABC)智能合约负责属性密码体制与用户之间的逻辑实现,例如密钥的生成、加解密和签名验证等操作。业务平台(PLAnTform,PLAT)智能合约负责匿名数据共享访问控制方案的业务逻辑,例如数据上传下载及用户机构信息的查询、更新、删除等操作。应用层主要包括两部分功能:一部分是与智能合约进行交互,实现了系统前后端和智能合约之间的功能连接,提供区块管理以及系统日志管理等服

45、务;另一部分是在智能合约的基础上对所提方案进行扩展,提供了用户登录、权限申请等操作。3.2数据层设计数据层存储了整个区块链系统的数据结构和其操作对象的抽象结构。1)用户数据结构用户作为去中心化属性加密方案中的基本组成部分,需要持有许多属性公私钥和秘密进行与属性相关的操作。用户数据结构如图 3所示。图 2匿名数据共享访问控制方案总体架构Fig.2Overall architecture of anonymous data sharing and access control scheme46第 49卷 第 10期王静怡,刘百祥,方宁,等:基于区块链与属性密码体制的匿名数据共享访问控制User数据

46、结构作为核心结构,包括用户名、用户基本信息、属性名称对应属性密钥的哈希表等,其中,OSK包括机构成员总数n和阈值t,在秘密共享过程中使用t-1阶多项式系数数组f,其他成员共享的秘密值数组 OtherShare等。2)DABC数据结构DABC 智能合约的主要功能是供用户离线调用和 PLAT 合约调用,因此无须在合约中存储数据,数据结构的目的是支撑用户生成属性公私钥、共享机构秘密等。DABC数据结构是 DABC智能合约的基础,所有用户调用的方法都可以认为是其内部方法,因此该结构需要具有通用的椭圆曲线参数(CurveParam)和两个群上的生成元。DABC数据结构如图4所示。3)PLAT相关数据结构

47、为了规范输入参数的格式,采用 JSON反序列化的方式输入指定请求数据,因此对于每种方法的请求,都会有相应的请求数据结构。PLAT智能合约与业务逻辑相关,需要存储数据到数据库以提供区块链上非交互式的业务功能,主要涉及用户属性申请、机构创建申请和机构属性申请等数据结构。下面以用户属性申请的数据结构为例进行介绍:用户向属性授权机构发起申请来请求授予某一属性时,合约需要存储其申请,并提供给机构进行审批,如图 5 所示。大部分字段都可以根据其命名判断含义,ObjectType是存储到CouchDB必须包含的字段,用于区分不同的数据表,AttrApplyStatus分成 Pending、Success、F

48、ail 等 3 种,用于对查询申请时的状态进行条件区分。图 4DABC数据结构Fig.4DABC data structure图 5用户属性申请数据结构Fig.5User attribute application data structure图 3用户数据结构Fig.3User data structure472023年 10月 15日Computer Engineering 计算机工程3.3合约层设计在区块链应用开发中,大部分业务逻辑都由智能合约控制,下面对所提方案涉及的两个智能合约的功能进行详细介绍。3.3.1DABC智能合约DABC智能合约主要包括 4个功能:1)Create。创建新用

49、户,接收用户名称 name 和基本信息 UserInfo,随机生成a0并计算uid,返回序列化后的 User数据结构。2)Register。用户与 CA 进行交互,所提方案在测试实现过程中使用超级账本的 MSP作为 CA 签发的签名,即假设方案中用户的身份信息均可信。3)Share。该过程是分布式属性加密的关键,在用户创建机构的共享秘密或声明新机构属性的共享秘密时,主要分为两步进行:(1)用户进行秘密 Share的生成,并将最终生成的 Share哈希表放置到 User结构的对应位置并返回,如算法 1所示;(2)合并秘密,将合并后产生的部分秘密放到对应位置并返回,如算法 2所示。算法 1 Sha

50、re()函数计算输入 参数 args,包括用户 user、机构名称 orgName、其他用户名称 userNames、机构成员总数 n、阈值 t、属性名集attrName输出 用户生成的共享秘密1.if len(args)=62.attrName=args 53.endif/判断创建机构或声明新机构属性的共享秘密4.user:=new(DecentralizedABC.User)5.org:=d.Dabe.OrgSetup(n,t,orgName,userNames)6.if attrName=7.user.GenerateOrgShare(org.UserName2GID,orgName,n

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服