1.一种基于区块链的轻量级访问控制系统,其特征在于,包括:身份权威模块、数据管理者、数据请求者、区块链模块和云服务器;
所述身份权威模块,用于:
对系统进行初始化;
基于所述数据请求者的自身属性,为所述数据请求者生成属性令牌;
所述数据管理者,用于:
对原始数据通过对称密钥加密,将数据密文上传至云服务器存储;
对所述对称密钥进行属性加密,将属性密文上传至区块链模块保存;
所述数据请求者,用于:
将自身的所述属性令牌转化为预解密令牌上传至所述区块链模块,发起数据访问请求,获取预解密结果;
验证所述预解密结果,并获取所述对称密钥;其中,所述数据请求者运行本地解密算法Decrypt(PK,CT,CT′,RKS),输入系统的公共参数PK、属性密文CT、预解密结果CT′和恢复密钥RKS,计算对称密钥SKM,验证预解密结果CT′;
从所述云服务器下载数据密文,通过所述对称密钥进行解密,获取所述原始数据;
所述区块链模块,用于:
部署由访问控制策略得到的访问结构;
接收数据访问请求,基于所述预解密令牌和所述属性密文进行预解密,生成预解密结果;包括:所述区块链模块运行预解密算法PreDecrypt(PK,CT,T′S),输入系统的公共参数PK、属性密文CT和预解密令牌T′S,得到预解密结果CT′;
所述云服务器,用于:
存储所述数据管理者上传的所述数据密文。
2.根据权利要求1所述的轻量级访问控制系统,其特征在于:所述身份权威模块对系统进行初始化,包括:生成公共参数PK和主密钥MSK,将所述公共参数上传区块链模块公开,将所述主密钥保存在所述身份权威模块。
3.根据权利要求2所述的轻量级访问控制系统,其特征在于:身份权威模块运行初始化算法Setup(λ,U)生成公共参数PK与系统主密钥MSK;
其中,λ为安全参数,U为系统所有属性的集合。
4.根据权利要求2所述的轻量级访问控制系统,其特征在于:采用加密算法Encrypt(PK,SKM,Λ)对所述对称密钥SKM进行加密;
加密算法Encrypt(PK,SKM,Λ)的输入包括所述公共参数PK、对称密钥SKM和访问结构Λ=(A,ρ)。
5.根据权利要求1所述的轻量级访问控制系统,其特征在于:所述身份权威模块运行属性令牌算法TokenGen(PK,MSK,S)为数据请求者生成属性令牌TS;
所述属性令牌算法的输入包括公共参数PK、系统主密钥MSK和所述数据请求者的自身属性S。
6.根据权利要求1所述的轻量级访问控制系统,其特征在于:数据请求者运行预解密令牌算法PreToken(PK,TS),输入系统的公共参数PK、属性令牌TS,生成预解密令牌T′S及恢复密钥RKS。
7.根据权利要求1所述的轻量级访问控制系统,其特征在于:若所述预解密令牌T′S中包含的属性不满足访问结构Λ,则预解密失败,输出error。
8.一种应用于权利要求1~7任一项所述轻量级访问控制系统的方法,包括:数据请求者将自身的所述属性令牌转化为预解密令牌上传至所述区块链模块,发起数据访问请求;
区块链根据所述预解密令牌和所述属性密文进行预解密,生成预解密结果并发送数据请求者;
数据请求者验证所述预解密结果,并基于所述预解密结果获取所述对称密钥;
数据请求者从所述云服务器下载所述数据密文,通过所述对称密钥进行解密,获取所述原始数据,执行数据访问。