基于区块链的大规模云存储中数据访问控制方法及系统

阅读: 评论:0

著录项
  • CN201910788100.8
  • 20190826
  • CN110493347A
  • 20191122
  • 重庆邮电大学
  • 龚祖崟;朱红军
  • H04L29/08
  • H04L29/08 H04L29/06 H04L9/32 H04L9/08

  • 重庆市南岸区南山街道崇文路2号
  • 重庆(50)
  • 重庆辉腾律师事务所
  • 卢胜斌
摘要
本发明属于云存储、访问控制和区块链技术领域,具体涉及一种基于区块链的大规模云存储中数据访问控制方法及系统,方法包括所有参与方注册成为区块链平台的节点;利用权益证明机制选出密钥管理员并执行(t,n)门限多属性权威的密文策略的属性密码方案;在密钥管理员之间发起匿名的密钥生成交易为申请者生成属性私钥;数据拥有者在其构建的数据访问策略下加密数据上传到云存储服务器;申请者匿名发送数据访问请求给云存储服务器,服务器验证用户身份属性是否被撤销并返回预解密成功之后的结果;用户解密收到的被预解密的密文,得到最终的明文。本发明为大规模云存储数据提供了一个无中心的细粒度访问控制方法,具有好的扩展性和用户隐私保障。
权利要求

1.一种基于区块链的大规模云存储中数据访问控制方法,其特征在于,所述方法包括以下步骤:

S1、参与数据访问的所有用户注册成为区块链身份管理平台的节点,各自配置可验证身份标识、接收来自于其他用户发送的可验证属性证明和可验证声誉评价,向其他用户发送可验证属性证明、匿名可验证属性撤销声明以及可验证声誉评价;

S2、利用权益证明机制选出n个节点作为密钥管理员,被选出的密钥管理员执行(t,n)门限多属性权威的密文策略的属性密码机制,生成并发布系统公共参数以及系统身份属性公钥,并安全保存其系统身份属性私钥份额;

S3、数据拥有者选择系统身份属性构建数据的访问策略,基于步骤S2公布的系统公共参数和系统身份属性公钥并利用所述属性密码机制加密数据,将密文上传到云存储服务器;

S4、数据申请者向密钥管理员匿名申请属性私钥,密钥管理员进行验证,若验证通过则为数据申请者生成属性私钥;

S5、数据申请者随机产生转换密钥,将其自身的身份标识和属性私钥进行转换,利用被转换之后的身份标识和属性私钥向云存储服务器发送匿名数据访问请求,云存储服务器验证数据申请者的身份属性是否被撤销,若未被撤销则返回被成功预解密的密文;

S6、数据申请者对收到的被成功预解密的密文利用所述转换密钥进行二次解密,得到最终的明文;

其中,参与数据访问的用户包括数据申请者、数据拥有者、密钥管理员、云存储服务器以及其他运行用户;运行用户是指区块链上的所有其他节点代表的用户;n表示密钥管理员的个数,t是门限阈值,n>t。

2.根据权利要求1所述的一种基于区块链的大规模云存储中数据访问控制方法,其特征在于,所述可验证身份标识包括至少一个身份标识文档,该文档具体包括唯一识别的身份标识符、该用户的区块链公钥、该用户注册的云存储服务器地址列表、其他用户向该用户发布的声誉评价列表链接、以及该用户使用自身的区块链私钥对文档的哈希值所做的签名。

3.根据权利要求1所述的一种基于区块链的大规模云存储中数据访问控制方法,其特征在于,所述向其他用户发送可验证属性证明包括以下步骤:

步骤S101、用户构建出向其他用户发布的属性声明;

步骤S102、发布用户对所述属性声明采用签名算法利用其区块链私钥进行签名,形成可验证属性证明;

步骤S103、发布用户对签名后的可验证属性证明采用加密算法利用接收用户的区块链公钥进行加密;

步骤S104、发布用户将加密后的可验证属性证明发送给接收用户;

所述属性声明包括接收用户的身份标识、属性、该声明的发布时间、发布用户的身份标识、发布用户选定的本地唯一的属性声明编号以及利用发布者区块链私钥所作的如下两个签名:

Sign1=Sign[H(属性||属性声明的编号||发布用户身份标识||H(接收用户的身份标识))],Sign2=Sign[H(属性||属性声明的编号||发布用户身份标识)];

其中Sign和H分别指签名函数和哈希函数;||表示连接符;

发布匿名可验证属性撤销声明包括以下步骤:

步骤S111、每个用户构建匿名属性撤销声明,对其以前为其他用户发布的属性证明进行匿名撤销;

所述匿名属性撤销声明包括对以前该用户所发布的属性声明的编号、撤销时间、该用户身份标识;

步骤S112、该用户对所述匿名属性撤销声明采用其区块链私钥进行签名;

步骤S113、将匿名属性撤销声明及其签名存储到所有用户共同维护的属性撤销列表数据库中;

向其他用户发送可验证的声誉评价包括以下步骤:

步骤S121、用户对其他用户在数据访问控制系统或数据访问过程中的活动进行评价,计算出其他用户对应的声誉值;

步骤S122、用户将各个声誉评价或声誉值使用该用户的区块链私钥进行签名,并对应发送至被评价的其他用户;

步骤S123、被评价的用户将收到的评价保存到其声誉评价列表中。

4.根据权利要求1所述的一种基于区块链的大规模云存储中数据访问控制方法,其特征在于,所述步骤S2包括n个密钥管理员共同协商密文策略属性密码系统的公共参数,各个密钥管理员生成各自的系统身份属性私钥份额和系统身份属性公钥份额;系统身份属性公钥份额被公开发布,将各个系统身份属性公钥份额综合生成系统身份属性公钥;系统身份属性私钥份额被密钥管理员安全保存在本地。

5.根据权利要求1所述的一种基于区块链的大规模云存储中数据访问控制方法,所述步骤S4包括以下四个阶段:

第一阶段:数据申请者构造匿名属性私钥生成请求,发送给密钥管理员,启动密钥生成交易;

第二阶段:密钥管理员验证请求,如果验证通过,则进行第三阶段,否则结束流程;

第三阶段:密钥管理员为申请者生成属性私钥份额,作为响应安全发送给数据申请者;

第四阶段:如果数据申请者收到多于t个响应,则将前t个响应作为有效的响应构建自己的属性私钥,请求成功,否则重新启动密钥生成交易,判断交易失败的次数是否达到失败阈值,若达到,则返回步骤S2。

6.根据权利要求5所述的一种基于区块链的大规模云存储中数据访问控制方法,所述步骤S4的第一阶段具体包括:

S401、数据申请者在本地生成一对公私钥对;

S402、数据申请者构建匿名属性私钥生成请求,请求内容包括本地生成的公钥、匿名的身份和请求的属性信息;

S403、数据申请者分别利用密钥管理员的公钥对属性私钥生成请求进行加密,发送给所有密钥管理员;

其中,匿名的身份为数据申请者的身份标识的哈希值;请求的属性信息包括属性i、属性i的属性声明编号、属性i的属性声明的发布者身份标识、属性i的属性声明中的数据申请者身份标识的哈希值H(数据申请者身份标识)以及签名Sign1;i指代数据申请者请求的属性集中的每一个属性,Sign1=Sign[H(属性i||属性i声明的编号||发布用户身份标识||H(接收用户的身份标识))],||表示连接符。

7.根据权利要求6所述的一种基于区块链的大规模云存储中数据访问控制方法,所述步骤S4的第二阶段具体包括:

S411、密钥管理员利用其自身的区块链私钥对匿名属性私钥生成请求进行解密,得到请求明文;

S412、密钥管理员验证请求明文中的每一个身份属性和数据申请者的绑定关系,验证过程如下:

S4121、利用发布用户的区块链公钥验证Sign1,如果验证成功,则进行下一过程,否则,拒绝请求,结束流程;

S4122、对属性私钥生成请求中的每一个属性i,利用哈希算法计算H[属性i||属性i的属性声明的编号||属性i的属性声明的发布者身份标识||H(数据申请者身份标识)],与Sign1中签名的数据内容进行比较,如果都相等,验证成功,进行下一过程,否则,拒绝请求,结束流程;

S413、对属性私钥生成请求中的每一个属性,密钥管理员根据属性证明发布者的身份标识和属性声明编号查属性撤销列表,进一步验证数据申请者的属性是否被撤销,如果都没有撤销,进行第三阶段,否则,拒绝请求,结束流程;H表示哈希函数。

8.根据权利要求5~7任一所述的一种基于区块链的大规模云存储中数据访问控制方法,所述步骤S4的第三阶段具体包括:

S421、对请求中的每一个属性,密钥管理员利用对应的系统属性私钥份额及其请求中的数据申请者身份标识的哈希值,为数据申请者生成属性私钥份额;

S422、密钥管理员利用请求中申请者本地生成的公钥加密生成的属性私钥份额,作为响应发送给数据申请者。

9.根据权利要求1所述的一种基于区块链的大规模云存储中数据访问控制方法,所述步骤S5包括:

S501、数据申请者随机选取一个转换密钥将其自身的身份标识和属性私钥进行转换;

S502、数据申请者构建匿名数据访问请求,该请求中包括数据申请者想要访问的文档列表、数据申请者转换之后的属性私钥和身份标识,还包括数据申请者的每一个属性证明中的Sign2的集合;

S503、数据申请者使用云存储服务器的区块链公钥加密数据访问请求,形成访问请求密文并发送给云存储服务器;

S504、云存储服务器用其区块链私钥解密访问请求密文;

S505、云存储服务器利用属性证明发布者的区块链公钥验证数据访问请求中的每一个Sign2,如果都验证成功,则进行下一过程S506,否则,拒绝数据访问请求;

S506、利用每一个Sign2中的属性证明的发布者标识及其编号查属性撤销列表,验证数据访问请求中数据申请者的各个属性是否被撤销,若都未被撤销,进行步骤S507,若存在至少一个属性被撤销,则拒绝数据申请者的数据访问请求;

S507、云存储服务器按照数据访问请求中的文档列表进行搜索出对应数据拥有者的文档密文;

S508、对搜索到的每一个文档密文,云存储服务器检验数据申请者的访问请求中的属性集合是否满足文档密文中的访问策略,若满足,则利用被转换的属性私钥和身份标识预解密文档密文,并将预解密之后的结果发送给数据申请者,否则不发送至数据申请者;

其中,Sign2=Sign[H(属性||属性声明的编号||发布用户身份标识)];Sign表示签名函数,H表示哈希函数,||表示连接符。

10.一种基于区块链的大规模云存储中数据访问控制系统,所述数据访问控制系统控制所有参与数据访问的用户之间的信息交互,其特征在于,所述数据控制访问系统包括:用户初始化配置模块、密钥管理员生成模块、匿名密钥生成模块、数据加密模块、匿名数据访问模块;

用户初始化配置模块:为数据访问控制系统中的所有用户包括数据申请者、数据拥有者、密钥管理员和云存储服务器配置身份标识、属性证明、属性撤销以及声誉评价;

密钥管理员生成模块:用于根据区块链的权益证明机制选择出前n个高声誉的区块链节点用户作为密钥管理员;

匿名密钥生成模块:包括用户匿名私钥请求单元、私钥请求验证单元、用户私钥份额生成单元和用户私钥合成单元;

用户匿名私钥请求单元:用于数据申请者构建匿名私钥生成请求;

私钥请求验证单元:用于密钥管理员验证用户的私钥请求;

用户私钥份额生成单元:用于密钥管理员为数据申请者生成属性私钥份额;

用户私钥合成单元:用于数据申请者综合密钥管理员返回的属性私钥份额以生成完整的属性私钥;

数据加密模块:用于数据拥有者利用属性密码机制加密数据;

匿名数据访问模块包括匿名数据访问请求单元、数据访问请求验证单元、数据预解密单元、数据解密单元;

匿名数据访问请求单元:用于数据申请者利用转换密钥构建匿名数据访问请求;

数据访问请求验证单元:用于云存储服务器查属性撤销列表以验证数据访问请求中的属性是否被撤销;

数据预解密单元:用于云存储服务器判断数据申请者的属性集是否满足数据的访问策略,并利用匿名数据访问请求中被转换之后的密钥对允许访问的数据进行预解密;

数据解密单元:用于数据申请者利用转换密钥最终解密被成功预解密之后的数据。

云存储服务器:为数据拥有者提供数据存储服务以及为数据申请者提供匿名数据搜索和预解密服务。

说明书
技术领域

本发明属于云存储、访问控制和区块链技术领域,特别是涉及一种大规模云存储中无信任中心的细粒度数据访问控制方法及系统。

密文策略的属性密码(ciphetext-policy attribute based encryption,简称CP-ABE)技术是在不可信的云存储环境实现数据安全存储和共享的最具潜力的密码技术,具有如下优势:数据拥有者自己确定数据的访问策略并嵌入到密文中;只要用户属性满足密文中的访问策略就可以正确解密数据,因此一个文档仅需加密一次可以安全共享给多个不同用户,一个用户只需拥有一份密钥可以访问多个不同的数据密文;访问控制策略的执行完全依赖于密码技术,不依赖于任何可信第三方执行访问控制。最初提出的CP-ABE方案都需要一个属性权威为所有用户分发密钥,明显存在单点失效问题,难以应用到大的系统中。

为了解决这个问题,多属性权威的非中心化CP-ABE被提出(Lewko A,WatersB.Decentralizing Attribute-Based Encryption[C]//Advances in Cryptology-eurocrypt-international Conference on the Theory&Applications ofCryptographic Techniques.2011.),还例如申请号为CN201810077641.5的基于多授权机构属性加密算法的云存储加密系统及方法的专利申请中也提出了类似方法;但是每一个属性权威分别独立负责不同的属性集的密钥分发,单个权威的失效也可能带来整个系统的失灵。

针对此问题,门限多属性权威的CP-ABE被提出(Li W,Xue K,XueY,et al.TMACS:ARobust and Verifiable Threshold Multi-Authority Access Control System inPublic Cloud Storage[J].IEEE Transactions on Parallel and DistributedSystems,2015,27(5):1-1.),该方案将无中心的(t,n)门限秘密共享方案与多属性权威的CP-ABE结合,使多个权威共同为属性集生成密钥,每个权威只能生成一个属性私钥的份额,不少于t个属性权威的份额综合能够得到完整的属性私钥,这个方案较好地解决了属性权威的单点瓶颈问题,由于没有属性权威能产生完整的属性私钥,用户私钥的安全性也得到增强。

基于以下方面,上述的CP-ABE方案均不适用于大的系统。

一方面是所有的方案都没有考虑用户属性的发布和验证问题,现有的方案默认由属性权威或者由专门的身份管理权威机构(如身份供应商)管理和验证所有用户的属性,这种可信的中心权威的存在大大限制了CP-ABE在大的分布式系统的扩展性,用户也不能控制自己身份属性的存储和使用,带来身份隐私泄露风险。

另一方面是用户属性的及时撤销,主要分为以下两种方法:

(1)当有用户的属性被撤销时,系统及时更新所有未撤销用户的密钥,其中最有效的方法的复杂度也非常高,一般是用户数量的对数级;

(2)由一个可信中心维护一个属性撤销列表,并由一个可信的第三方仲裁根据属性撤销列表确定用户的授权和访问是否被允许。

显然,这两种撤销方案都不具备良好的扩展性。

综上所述,要在大规模的云存储中利用CP-ABE保护数据的安全性,需要突破现有的CP-ABE方案在用户身份属性管理方面的局限性,采用无中心化的结构,才能使CP-ABE方案在云存储数据安全方面展现良好的效果。

为了克服上述现有技术的不足,本发明提供了一种大规模云存储中无信任中心的细粒度数据访问控制方法,其目的在于通过将基于区块链的自我主权身份管理技术和多属性权威的CP-ABE技术进行融合,实现无中心化的用户身份属性的发布、验证和撤销基础上的CP-ABE,进而实现CP-ABE在大规模云存储数据的细粒度访问控制方面的有效应用,同时也保护用户的身份隐私。

本发明的一种基于区块链的大规模云存储中数据访问控制方法,如图1所示,包括以下步骤:

S1、参与数据访问的所有用户注册成为区块链身份管理平台的节点,各自配置可验证身份标识、接收来自于其他用户发送的可验证属性证明和可验证声誉评价,向其他用户发送可验证属性证明、匿名可验证属性撤销声明以及可验证声誉评价;

S2、利用权益证明机制选出n个节点作为密钥管理员,被选出的密钥管理员执行(t,n)门限多属性权威的密文策略的属性密码机制,生成并发布系统公共参数以及系统身份属性公钥,并安全保存其系统身份属性私钥份额;

S3、数据拥有者选择系统身份属性构建数据的访问策略,基于步骤S2公布的系统公共参数和系统身份属性公钥并利用所述属性密码机制加密数据,将密文上传到云存储服务器;

S4、数据申请者向密钥管理员匿名申请属性私钥,密钥管理员进行验证,若验证通过则为数据申请者生成属性私钥;

S5、数据申请者随机产生转换密钥将其自身的身份标识和属性私钥进行转换,利用被转换之后的身份标识和属性私钥向云存储服务器发送匿名数据访问请求,云存储服务器验证数据申请者的身份属性是否被撤销,若未被撤销则返回被成功预解密的密文;

S6、数据申请者对收到的被成功预解密的密文利用所述转换密钥进行二次解密,得到最终的明文;

其中,参与数据访问或者数据访问控制系统的用户包括数据申请者、数据拥有者、密钥管理员、云存储服务器以及其他运行用户;运行用户是指区块链上的所有其他节点代表的用户;n表示密钥管理员的个数,t是门限阈值,n>t,t为(t,n)门限多属性权威的密文策略的属性密码机制中的门限阈值。

本发明还提出了一种基于区块链的大规模云存储中数据访问控制系统,用于控制上述用户,如图2所示,所述数据控制访问系统包括:用户初始化配置模块、密钥管理员生成模块、匿名密钥生成模块、数据加密模块、匿名数据访问模块;

用户初始化配置模块:为参与数据访问中的所有用户或者数据访问控制系统中的所有用户包括数据申请者、数据拥有者、密钥管理员和云存储服务器配置身份标识、属性证明、属性撤销以及声誉评价;

密钥管理员生成模块:用于根据区块链的权益证明机制选择出前n个高声誉的区块链节点用户作为密钥管理员;

匿名密钥生成模块:包括用户匿名私钥请求单元、私钥请求验证单元、用户私钥份额生成单元和用户私钥合成单元;

用户匿名私钥请求单元:用于数据申请者构建匿名私钥生成请求;私钥请求验证单元:用于密钥管理员验证用户的私钥请求,验证请求中属性的真实性和有效性;

用户私钥份额生成单元:用于密钥管理员为数据申请者生成属性私钥份额;用户私钥合成单元:用于数据申请者综合密钥管理员返回的属性私钥份额以生成完整的属性私钥。

数据加密模块:用于数据拥有者利用属性密码机制加密数据;

匿名数据访问模块包括匿名数据访问请求单元、数据访问请求验证单元、

数据预解密单元、数据解密单元;

匿名数据访问请求单元:用于数据申请者利用转换密钥构建匿名数据访问请求;

数据访问请求验证单元:用于云存储服务器查属性撤销列表以验证数据访问请求中的属性是否被撤销;

数据预解密单元:用于云存储服务器判断数据申请者的属性集是否满足数据的访问策略,并利用匿名数据访问请求中被转换之后的密钥对允许访问的数据进行预解密;

数据解密单元:用于数据申请者利用转换密钥最终解密被成功预解密之后的数据。

云存储服务器:为数据拥有者提供数据存储服务以及为数据申请者提供匿名数据搜索和预解密服务。

本发明的有益效果:

1、由于本发明将所有用户注册到区块链平台中,让普通的用户也可以配置可验证身份标识以及向其他用户发送可验证属性证明、可验证属性撤销声明以及可验证的声誉评价;移除了传统CP-ABE访问控制方法中的可信身份管理权威,实现了用户身份属性的自我管理和控制,也保护用户的隐私;

2、本发明实现了无中心的匿名即时用户属性撤销,通过属性声明编号机制,属性撤销列表记录由属性声明编号及其声明发布者标识进行索引,不包括属性拥有者的个人信息,实现了匿名的属性撤销,保护用户隐私,并利用基于分布式账本技术的属性撤销列表机制实现无中心的即时用户属性撤销;

3、本发明融合匿名身份、签名机制及其(t,n)门限多属性权威的密文策略的属性密码机制,实现无中心的匿名属性私钥生成;

4、本发明实现了数据用户匿名的数据访问,对数据申请者的身份标识以及属性私钥进行转换,结合匿名的属性撤销机制,对匿名数据访问请求进行验证,用转换之后的属性私钥和身份标识进行数据的预解密,很好地保护了用户的隐私,也减轻了终端用户的负担。

总之,本发明提供了应用CP-ABE保护大规模云存储数据安全且包含用户身份隐私的有效方法。

图1为本发明方法一种基于区块链的大规模云存储中数据访问控制方法的整体流程图;

图2为本发明系统一种基于区块链的大规模云存储中数据访问控制系统的框架结构图;

图3为本发明中向其他用户发送可验证属性证明的一种实施方式;

图4为本发明中向其他用户发送可验证属性撤销声明的一种实施方式;

图5为本发明中向其他用户发送可验证的声誉评价的一种实施方式;

图6为本发明中步骤S3的第一阶段的一种实施方式;

图7为本发明中步骤S3的第二阶段的一种实施方式;

图8为本发明中步骤S3的第三阶段的一种实施方式;

图9为本发明方法中步骤S5的一种实施方式流程图。

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例;此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明的整体思路在于,利用基于区块链的自我主权身份技术,解决CP-ABE中依赖可信中心进行属性管理和密钥分发的局限,实现用户自己管理身份属性,所有参与方共同参与身份属性的安全发布和匿名撤销,并结合无中心的(t-n)门限秘密共享技术、区块链共识技术和多属性权威CP-ABE技术,实现无中心的匿名属性密钥生成,最终实现大规模云存储无信任中心的细粒度数据访问控制方法。

以下给出本发明的方法的一种实现方式,本发明的一种基于区块链的大规模云存储中数据访问控制方法可包括以下过程:

S1、参与数据访问的所有用户注册成为区块链身份管理平台的节点,各自配置可验证身份标识、接收来自于其他用户发送的可验证属性证明和可验证声誉评价,向其他用户发送可验证属性证明、匿名可验证属性撤销声明以及可验证声誉评价;

作为一种实现方式,所有的参与方注册成为具有自我主权身份区块链平台的节点,这当中的参与方包括数据申请者、数据拥有者以及密钥管理员;此时,用户配置可验证身份标识,包括一个身份标识符ID及其一个身份标识文档FID,该文档存储在区块链中。

具体的,该身份标识文档FID具体包括唯一识别的身份标识符、该用户的区块链公钥、该用户注册的云存储服务器地址列表、其他用户向该用户发布的声誉评价列表链接、以及该用户使用自身的区块链私钥对文档的哈希值所做的签名。

作为一种可实现方式,哈希值的计算可以选择任意的哈希函数,签名可以是任意的签名算法。

作为一种优选实施方式,哈希函数采用几种常见的哈希函数(散列函数)中任意一种或多种,其构造方法可采用直接定址法、除留余数法、随机数法以及数字分析法。

作为一种优选实施方式,签名算法采用MD5或者SHA1算法。

可以理解的是,所述的系统身份属性是指属性密码系统中的所有属性集中的属性,不关联到具体的用户,与之对应,具体用户的身份属性称之为用户身份属性,简称用户属性。

在一个实施例中,如图3所示,向其他用户发送可验证属性证明包括以下步骤:

步骤S101、每个用户(属性证明发布者)构建出向其他用户(属性拥有者)发布的身份属性声明;

所述属性声明包括属性拥有者身份标识、属性、该声明的发布时间、发布者的身份标识、发布者选定的本地唯一的属性声明编号以及用发布者区块链私钥所作的如下两个签名:

Sign1=Sign[H(属性||属性声明的编号||发布者身份标识||H(属性拥有者的身份标识))],Sign2=Sign[H(属性||属性声明的编号||发布者身份标识)]

其中Sign和H分别指签名函数和哈希函数;

步骤S102、发布用户对所述属性声明采用签名算法利用其区块链私钥进行签名,形成可验证属性证明;

步骤S103发布用户对签名后的可验证属性声明采用加密算法利用接收用户的区块链公钥进行加密;

步骤S104、发布用户将加密后的可验证属性证明发送给接收用户。

在该过程中,身份属性证明由接收用户自行保存,另外,由于发布用户采用区块链公钥对该身份属性证明进行加密后再发送给其他用户,可以有效的保护用户的属性隐私。

作为一种可实现方式,该过程中,将发布的各个身份属性证明编号,可以用作属性撤销列表的索引。

加密可以是任意的公钥加密算法,当身份属性证明数据比较大时,也可以用混合密码机制,即利用对称密钥加密身份属性证明数据,然后利用接收点的公钥加密对称密钥。

在一个实施例中,如图4所示,向其他用户发送可验证属性撤销声明包括以下步骤:

步骤S111、每个用户构建匿名属性撤销声明,对其以前为其他用户发布的属性证明进行匿名撤销;

所述匿名属性撤销声明包括对以前该用户所发布的属性证明的编号、撤销时间、该用户身份标识;

步骤S112、该用户对所述匿名属性撤销声明采用其区块链私钥进行签名;

步骤S113、将匿名属性撤销声明及其签名存储到所有用户共同维护的属性撤销列表数据库中。

为了保护用户隐私,属性撤销列表中不包括用户的身份属性证明,而只包括身份属性证明的编号、属性撤销列表数据的查以发布者身份标识及其身份属性证明编号为索引。

匿名性体现在属性撤销声明中不包括曾经的属性拥有者的身份标识,保护用户的身份隐私。

具体而言,所有用户(节点)共同维护是指所有节点能够访问属性撤销列表,但对属性撤销列表的任意一种访问操作都会产生对应的交易记录存储在区块链中作为存证而永久存在。

在一个实施例中,如图5所示,向其他用户发送可验证的声誉评价包括以下步骤:

步骤S121、用户对其他用户在数据访问控制系统或数据访问过程中的活动进行评价,计算出其他用户对应的声誉值;

步骤S122、用户将各个声誉评价或声誉值使用该用户的区块链私钥进行签名,并对应发送至被评价的其他用户中;

步骤S123、被评价的用户将收到的评价保存到其声誉评价列表中。

可验证的声誉评价是指每个用户可以为其他用户在系统中的活动进行评价,评价高的用户会有相应的收益,以激励用户积极、诚实、主动地参与系统的活动。

声誉评价由发送者应用自己的区块链私钥进行签名,并发送给被评价的用户。被评价的用户将自己收到的所有评价保存到自己的声誉评价列表中,该列表不需要存储在区块链上,但区块链上的该节点的身份标识文档FID中存储有指向该节点的声誉评价列表的链接。

具体而言,由智能合约根据用户收到的其他用户给出的所有声誉评价,利用一些公开的算法计算用户的声誉值。声誉评价可以由智能合约执行任意一种评价算法实现。

S2、利用权益证明机制选出n个节点作为密钥管理员,被选出的密钥管理员执行(t,n)门限多属性权威的密文策略的属性密码机制,生成并发布系统公共参数以及系统身份属性公钥,并安全保存其系统身份属性私钥份额;

在一个可选的实施例中,步骤S2还包括一个系统身份属性数据库,该数据库是一个抽象的数据库,存储所有身份属性概念,比如教师、医生、工程师等抽象的身份属性,不与具体的用户关联,因此不会泄露用户隐私,该数据库不需要存储在区块链上,由密钥管理员共同维护,对于该数据库的每一次访问操作都会产生一条交易存储在区块链上作为存证。

另外,步骤S2中的(t,n)门限多属性权威的密文策略的属性密码方案是指将无中心的(t,n)门限秘密共享方法与多属性权威的密文策略的属性密码方案进行结合,n(>t)个属性权威共同协商密文策略属性密码系统的公共参数,各个属性权威生成各自的系统身份属性私钥份额和系统身份属性公钥份额,系统身份属性公钥份额被公开发布,将它们综合生成系统身份属性公钥。

本发明中,多个属性权威是由区块链的权益证明(ProofofStake,PoS)机制选出的具有高声誉的节点担任,本发明称为之密钥管理员。

作为一种优选实施例,密钥管理员的个数远远大于t,而不仅仅是t+1;也即是可以为t+20,t+100,t+1000等等;密钥管理员的个数越多,此时的密码系统将会更加稳定。

S3、数据拥有者选择系统身份属性构建数据的访问策略,基于步骤S2公布的系统公共参数和系统身份属性公钥并利用所述属性密码机制加密数据,将密文上传到云存储服务器;

在这个过程中,作为一种可选方式,利用多属性权威的密文策略的属性密码机制加密数据加密密钥,利用数据加密密钥和对称密码算法加密数据,然后分别上传密钥密文和数据密文到云存储服务器。

S4、数据申请者向密钥管理员匿名申请属性私钥,密钥管理员进行验证,若验证通过则为数据申请者生成属性私钥;

所述步骤S4至少包括以下四个阶段,包括:

第一阶段:数据申请者构造匿名私钥生成请求,发送给密钥管理员,启动密钥生成交易;

第二阶段:密钥管理员验证请求,如果验证通过,则进行第三阶段,否则结束流程;

第三阶段:密钥管理员为申请者生成属性私钥份额,作为响应安全发送给数据申请者;

第四阶段:如果数据申请者收到多于t个响应,则将前t个响应作为有效的响应构建自己的私钥,请求成功,否则重新启动密钥生成交易,判断交易失败的次数是否达到失败阈值,若达到,则返回步骤S2,重新启动密码系统。

在一个实施例中,如图6所示,所述步骤S4的第一阶段具体包括:

S401、数据申请者在本地生成一对公私钥对;

S402、数据申请者构建匿名属性私钥生成请求,请求内容包括本地生成的公钥、匿名的身份和请求的属性信息,匿名的身份为申请者的身份标识的哈希值,即申请者身份标识,请求的属性信息包括如下元组的集合:

{(属性i,属性i的属性证明的编号,属性i的属性证明的发布者身份标识,属性i的证明中的签名Sign1),i指代申请者请求的属性集中的每一个属性}

S403、数据申请者分别利用密钥管理员的公钥对属性私钥生成请求进行加密,发送给所有密钥管理员。

作为一种可实现方式,如图7所示,第二阶段可包括:

S411、密钥管理员利用其自身的区块链私钥对匿名属性私钥生成请求进行解密,得到请求明文;

S412、针对请求中的每一个元组{(属性i,属性i的属性证明的编号,属性i的属性证明的发布者身份标识,属性i的证明中的签名Sign1)},密钥管理员验证请求明文中的每一个身份属性和数据申请者的绑定关系,验证过程如下:

S4121、利用发布用户的区块链公钥验证Sign1,如果验证成功,则进行下一过程,否则,拒绝请求,结束流程;

S4122、利用哈希算法计算H[属性i||属性i的属性证明的编号||属性i的属性证明的发布者身份标识||H(数据申请者身份标识)],与Sign1中签名的数据内容进行比较,如果相等,验证成功,如果所有的属性都验证成果,则进行下一过程,否则,拒绝请求,结束流程;

S413、针对请求中的每一个元组{(属性i,属性i的属性证明的编号,属性i的属性证明的发布者身份标识,属性i的证明中的签名Sign1)},密钥管理员根据属性证明发布者的身份标识和属性证明的编号查属性撤销列表,进一步验证数据申请者的属性是否被撤销,如果没有属性被撤销,进行第三阶段,否则,拒绝请求,结束流程;H表示哈希函数,||表示连接符。

作为一种优选实施方式,

如图8所示,第三阶段可以采用以下方式实现:

S421、对请求中的每一个属性,密钥管理员利用对应的系统属性私钥份额及其请求中的数据申请者身份标识的哈希值,为数据申请者生成属性私钥份额;

S422、密钥管理员利用请求中申请者本地生成的公钥加密生成的属性私钥份额,作为响应发送给数据申请者。

进一步的,

S5、数据申请者随机产生转换密钥将其自身的身份标识和属性私钥进行转换,利用被转换之后的身份标识和属性私钥向云存储服务器发送匿名数据访问请求,云存储服务器验证数据申请者的身份属性是否被撤销,若未被撤销则返回被成功预解密的密文;

作为一种可实现方式,如图9所示,步骤S5可具体参考以下步骤:

S501、数据申请者随机选取一个转换密钥将其自身属性私钥和身份标识进行转换;

S502、数据申请者构建匿名数据访问请求,该请求中包括数据申请者想要访问的文档列表,数据申请者转换之后的身份标识和属性私钥,还包括数据申请者的每一个属性证明中的Sign2的集合;

S503、数据申请者使用云存储服务器的区块链公钥加密数据访问请求,形成访问密文并发送给云存储服务器;

S504、云存储服务器用其区块链私钥解密访问密文;

S505、云存储服务器利用属性证明发布者的区块链公钥验证数据访问请求中的每一个Sign2,如果都验证成功,则进行下一过程S506,否则,拒绝数据访问请求;

S506、利用每一个Sign2中的属性证明的发布者标识及其编号查属性撤销列表,验证数据访问请求中数据申请者的各个属性是否被撤销,若都未被撤销,进行步骤S507,若存在至少一个属性被撤销,则拒绝数据申请者的数据访问请求;

S507、云存储服务器按照数据访问请求中的文档列表进行搜索,并搜索出对应数据拥有者的文档密文;

S508、对搜索到的每一个文档密文,云存储服务器检验数据申请者数据访问请求中的身份属性集合是否满足文档密文中的访问策略,若满足,则利用被转换的身份标识和属性私钥预解密文档密文,并将预解密之后的结果发送给数据申请者,否则不发送至数据申请者。

S6、数据申请者对收到的被成功预解密的密文利用所述转换密钥进行二次解密,得到最终的明文;

其中,转换密钥由上述步骤S501确定,两者为同一密钥。

其中,用户包括数据申请者、数据拥有者以及密钥管理员;n表示属性个数,n>t。

在一个实施例中,本发明以文献(Li W,Xue K,Xue Y,et al.TMACS:A Robust andVerifiable Threshold Multi-Authority Access Control System in Public CloudStorage[J].IEEE Transactions on Parallel and Distributed Systems,2015,27(5):1-1.)中的多属性权威的门限属性密码方案为实施例来解释本发明的方法,为了保证用户对云存储服务器的隐私,对此方案稍有改变,解密算法分解为云存储服务器的预解密和用户的最终解密两个阶段。

举例而言,密码系统公共参数一般包括安全参数λ、根据安全参数选择的素数p、双线性G和GT、上的双线性映射e、的生成元g、哈希函数H等。

在一个实施例中,假设共有n个密钥管理员,其身份标识为ID1,ID2,...IDn。对于每一个系统属性i,第m个密钥管理员(对应一个属性权威)在{0,1,...,p-1}中随机选择两个值和公布对应的公钥份额分别为和则可以得到系统属性i的公钥分别为和每个密钥管理员的系统属性私钥份额计算如下:

每个密钥管理员m选择一个t-1次多项式fm(x)=am,0+am,1x+am,2x2+...+am,t-1xt-1,其中系数am,i∈{0,1,2,...,p-1},并设定计算fm(H(IDj)),j=1,2,...,n,将fm(H(IDj)),j≠m发送给密钥管理员j;

用户j关于系统属性i的公钥对应的私钥份额可以通过公式计算为

对于另一个关于系统属性i的系统身份属性公钥可以按照同样的方法计算每一个密钥管理员j的私钥份额

举例而言,密钥管理员j利用自己的属性i的私钥份额和可以生成具有身份标识ID的用户关于属性i的私钥份额

密钥管理员将生成的所有属性私钥份额利用请求中申请者本地生成的公钥进行加密,作为响应发送给数据申请者。数据申请者将先收到的前t个响应作为有效的响应,利用t个私钥份额计算属性私钥,用数据用户的区块链公钥加密之后返回给用户,交易成功,否则,如果收到的响应小于t,则交易失败,重启交易,如果在一个限定的阈值次数之后,交易仍然没有成功,则转到步骤S2,重启密码系统。

举例而言,假设用户共收到t个密钥管理员1,2,...,t的响应,其计算关于属性i的私钥为最后一个等式由拉格朗日插值公式得到。

系统中的数据用户取一个转换密钥将自己的身份标识和属性私钥进行转换;

举例而言,该转换密钥可以是一个随机数,比如,用户取一个随机值r∈{1,2,...,p-1},将其属性i的私钥组件转换为将身份标识ID转换为H(ID)r。

文档密文包括对称密钥密文C(K)和数据密文C(data),对称密钥密文是应用属性密码机制加密的对称密钥K的密文,数据密文是应用对称密钥加密的数据。对称密钥K的密文如下:

x表示访问结构矩阵Γ中的行。

云存储服务器检测用户的身份属性集是否满足密文C(K)中的访问策略Γ,如果满足,则利用转换后的身份标识H(ID)r和属性私钥

进行如下预解密计算:当ρ(x)=i时计算:

云存储服务器返回预解密的结果C'(K)和C(data)给用户,其中:

如果云存储服务器用户的属性集不满足密文C(K)中的访问策略Γ,则对应的数据不返回给用户。

用户应用转换密钥r对收到的C'(K)做如下计算:

这个结果与原属性密码方案的结果一样,所以后面的计算相同。

可以理解的是,本实施例主要是对本发明中属性公钥/密钥生成、数据加密、预解密以及二次解密等过程的数据进行重点描述,为了节省篇幅,其余过程可参考上述实施例。

另外,本发明还包括一种基于区块链的大规模云存储中数据访问控制系统,所述数据访问控制系统包括:用户初始化配置模块、密钥管理员生成模块、匿名密钥生成模块、数据加密模块、匿名数据访问模块;

用户初始化配置模块:为参与数据访问中的所有用户包括数据申请者、数据拥有者、密钥管理员和云存储服务器配置身份标识、属性证明、属性撤销以及声誉评价;

密钥管理员生成模块:用于根据区块链的权益证明机制选择出前n个高声誉的区块链节点用户作为密钥管理员;

匿名密钥生成模块:包括用户匿名私钥请求单元、私钥请求验证单元、用户私钥份额生成单元和用户私钥合成单元;

用户匿名私钥请求单元:用于数据申请者构建匿名私钥生成请求;

私钥请求验证单元:用于密钥管理员验证用户的私钥请求,验证请求中属性的真实性和有效性;

用户私钥份额生成单元:用于密钥管理员为数据申请者生成属性私钥份额;

用户私钥合成单元:用于数据申请者综合密钥管理员返回的属性私钥份额以生成完整的属性私钥;

数据加密模块:用于数据拥有者利用属性密码机制加密数据;

匿名数据访问模块包括匿名数据访问请求单元、数据访问请求验证单元、数据预解密单元、数据解密单元;

匿名数据访问请求单元:用于数据申请者利用转换密钥构建匿名数据访问请求;

数据访问请求验证单元:用于云存储服务器查属性撤销列表以验证数据访问请求中的属性是否被撤销;

数据预解密单元:用于云存储服务器判断数据申请者的属性集是否满足数据的访问策略,并利用请求中被转换之后的密钥对允许访问的数据进行预解密;

数据解密单元:用于数据申请者利用转换密钥最终解密被成功预解密之后的数据。

云存储服务器:为数据拥有者提供数据存储服务以及为数据申请者提供匿名数据搜索和预解密服务。

作为一种实现方式,如图2所示,数据访问控制系统中的用户即所有参与者均通过用户初始化配置模块注册成为自我主权身份区块链平台的节点,此时每个用户都是具有自我主权身份;

进一步的,用户还通过该模块配置身份标识、属性证明、属性撤销以及声誉评价;

进一步的,在数据访问控制系统中,用户通过密钥管理员生成模块通过区块链的权益证明机制选择出具有前n个高声誉的用户作为密钥管理员;当然在成为密钥管理员之前,该用户可能是数据申请者也可能是数据拥有者也可以是区块链平台中的其他运行节点;可以理解的是,数据申请者和数据拥有者主要是为了区分用户在申请访问数据整个过程中作为数据的请求者对象或作为数据的提供者对象,并不是对其本身进行限定,也即是数据申请者和数据发布者是可逆的。

一方面,数据拥有者通过数据加密模块构建数据访问策略并对其数据进行加密,利用属性密码机制加密数据加密密钥,利用数据加密密钥和对称密码算法加密数据,然后分别上传密钥密文和数据密文到云存储服务器。

另一方面,数据申请者通过用户匿名私钥请求单元向密钥管理员申请属性密钥;密钥管理员通过私钥请求验证单元进行验证,验证请求中属性的真实性和有效性;若验证通过,则通过用户私钥份额生成单元为数据申请者生成属性私钥份额,数据申请者通过用户私钥合成单元对各个属性私钥份额进行合成,从而形成完整的属性私钥。

数据申请者通过匿名数据访问模块向云存储服务器发起数据访问请求,云存储服务器验证通过后,返回被预解密的密文。

具体可包括:数据申请者利用转换密钥通过匿名数据访问请求单元构建出匿名数据访问请求;云存储服务器利用数据访问请求验证单元查属性撤销列表并验证数据访问请求中的属性是否被撤销,若验证通过,则调用数据预解密单元判断数据申请者的属性是否满足数据的访问策略,如果满足,则利用请求中被转换后的密钥和身份标识对允许访问的数据进行预解密;数据申请者最终调用数据解密单元通过转换密钥将预解密的结果再次解密,获得最终的访问数据。

作为一个优选实施方式,为了保护用户隐私,用户在对云存储服务器发起数据访问请求之前,对其自身的身份标识以及属性私钥通过转换密钥进行转换,相应的,数据申请者收到的预解密结果还需按照该转换密钥进行二次解密,此时二次解密的结果才为最终解密的结果。

本发明的方法、系统部分实施例的特征可以相互引用,本发明为了节省篇幅,则不再一一列举。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。

以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

本文发布于:2023-04-13 16:31:47,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/4/85964.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图