利索能及
我要发布
收藏
专利号: 2019107881008
申请人: 重庆邮电大学
专利类型:发明专利
专利状态:无效专利
更新日期:2026-01-15
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

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个高声誉的区块链节点用户作为密钥管理员;

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

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

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

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

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

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

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

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

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

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

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

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