一种基于属性加密的多授权访问控制系统及方法与流程

文档序号:20009062发布日期:2020-02-22 03:53阅读:275来源:国知局
一种基于属性加密的多授权访问控制系统及方法与流程

本发明涉及网络信息安全的信息加解密领域,尤其涉及一种基于属性加密的多授权访问控制系统及方法。



背景技术:

目前,业内常用的现有技术是这样的:访问控制指的是只有通过服务器验证的用户才能访问相关数据,目前,云存储以其方便、价格低廉、能处理复杂计算等优势吸引了大多数用户或公司将个人数据或项目放在云环境中,且随着数据量的不断增大,数据在云服务器中的安全问题也引起了关注,因此,加密的访问控制系统的概念就引出来了,在现存的加密访问控制模型中,以abe最为显著,它主要分为cp-abe和kp-abe,而cp-abe的访问策略由数据所有者制定,操纵更灵活,能够实现更加细粒度的访问控制。采用密文策略的基于属性的访问控制方案,既可以对用户进行访问限制,也可以对采集的数据信息进行加密处理,一举两得,实现“双赢”。

从目前的已有发明来看,发明cn107707572a提出了一种基于角色的web安全访问控制方法,该发明采用了基于角色的访问控制方法,以rbac方式建立用户表、角色表、功能权限表。使得权限控制包含了所有的web资源,达到了完全的权限控制,避免了权限的盲区。但是基于角色的访问控制方法并不能对数据信息进行加密处理只能对信息的访问进行安全控制,对信息本身并没有做到细粒度管理,因此存在者潜在的安全隐患;发明cn103220291a提出了一种基于属性的控制系统的基本实现,该发明将密文策略的abac访问策略与xacml语言相结合,初步实现了基于属性加密的访问控制系统,但是该发明只注重了单一授权中心的模式,并采用了传统的与非门模型构造访问决策树,存在着加密,解密耗时较多,存在安全漏洞等问题。发明cn106790119a提出了支持属性撤销与授予的基于属性的访问控制方法,在实现基本的基于属性的访问控制的基础上,实现了对用户属性授予和撤销的支持,提升了系统的灵活性,但是系统的加解密效率仍然很低并且对用户共谋的安全攻击并不能很好的防范。



技术实现要素:

本发明为克服上述的不足之处,目的在于提供一种基于属性加密的多授权访问控制系统及方法,本发明采用基于属性加密的访问控制方法不仅能对信息数据进行密文加密,而且实现了细粒度的访问控制管理,提高了系统的安全性。本发明能够实现对于用户安全认证的细粒度的访问控制,同时实现对数据信息的安全加密和对数据信息的分类管理。

本发明是通过以下技术方案达到上述目的:一种基于属性加密的多授权访问控制系统,包括:授权中心,属性授权中心,数据属主,数据存储服务器,访问用户;其中,授权中心:表示为ca(centerauthority),负责设置系统参数,生成公共密钥pk和主密钥mk;属性授权中心:表示为aa(attributeauthority),负责对自己负责的属性进行私钥生成;

数据属主:表示为do(dataowner),负责表示数据访问的策略集合,并进行数据加密;

数据云存储服务:表示为dsm(datasystemmanager),负责对按照策略定制者所定制的访问策略加密后的数据密文进行存储,并为用户提供解密服务;

访问用户:表示为user,每一个用户都拥有一个属性集合,如果该属性集合满足所希望访问的数据密文所对应的访问策略,则可获得对应的数据信息的明文信息。

一种基于属性加密的多授权访问控制方法,包括如下步骤:

(1)setup初始化授权中心ac,生成公共密钥pk(publickey)和主密钥mk(masterkey);

(2)encryptdo对所收到的数据信息,进行encrypt数据加密,生成密文ct(ciphertext);

(3)keygen私钥生成:每一个aa根据访问用户所拥有的属性集合生成用户所对应的私钥sk(screctkey)给用户;

(4)decrypt解密:dsm收到用户的请求,接受用户所拥有的私钥并获取用户请求的数据信息的密文,进行数据解密,如果解密成功那么就返回明文给用户,否则提示用户没有相应的权限;经过上述步骤的操作,实现基于属性加密的多授权访问控制。

作为优选,所述步骤(1)具体如下:

(1.1)输入初始化安全参数λ,系统运行初始化算法得到(n,p1,p2,p3,g,g1,e),其中g与g1为2个阶为n的合数阶的群,n为3个不同的素数p1,p2,p3的乘积,e是一个g×g→g1的双线性映射;

(1.2)从gp1中随机选择一个元素g,从gp3中选择一个生成元x3;将系统用户的所有属性域表示为u,对于每个属性i∈u,从zn中选择一个随机数ti,并计算另外随机选择α,a∈zn;生成公开密钥(publickey)pk=(n,g,ga,e(g,g)α,{ti}i∈u),以及主密钥(masterkey)mk=(α,x3)。

作为优选,所述的双线性映射为:令g和g1为两个阶为n的群,其中n为3个不同的素数p1,p2,p3的乘积,定义一个可有效计算的的双线性映射e:g×g→g1。

作为优选,所述步骤(2)中加密方法具体如下:

(2.1)对要加密的数据使用密钥sek(symmetrickey)=e(g,g)αs进行加密;

(2.2)建立lsss访问策略(w,ρ),其中w是一个l*n的矩阵,w的每一行代表学要加密的信息对应的访问策略的每一个属性,ρ将w的每一行wx映射为属性值ρ(x);随机生成一个向量对于每一个x∈[l],随机选择一个rx∈zn,计算c0=gs

作为优选,所述的lsss访问策略为一种lsss线性秘密共享方案:如果预先定义了一个t-1阶的多项式,那么如果知道这个多项式上的t个点,则能完整恢复出这个多项式;假设所要分享的秘密是s,任取t-1个随机数a1,a2,a3...an,构造一个t-1阶多项式f(x)=at-1xt-1+at-2xt-2+...+a1x;对于每个用户i,1≤i≤n,其分享结果为(i,f(i));这样,当t个用户在场时,就可以使用拉格朗日插值公式恢复出多项式,从而得到秘密s;而线性秘密共享方案lsss,放弃使用拉格朗日插值公式来计算秘密分享的值,转而采用矩阵运算的形式;将访问策略树转化为矩阵的形式,再计算出秘密共享矩阵m,之后将要加密的信息命名为s,此时生成一个随机的秘密共享矩阵将线性秘密共享矩阵和线性秘密分享矩阵相乘:

m*ν=(s1,s2,s3...sn+1)t

得到矩阵(s1,s2,s3,...,sn)t,将矩阵中的每一项对应上访问策略中的每一个属性,并将它称为每一个属性对应的秘密值;在用户获得自己拥有的属性所对应的秘密值后,就可以去求解秘密值s.在lsss中,存在一个向量b=(1,0,0,0..0),对于一个用户a的秘密共享矩阵ma,存在ma*λa=b,从而求得λa;之后再通过公式:求得秘密s。

作为优选,所述的decrypt解密基于如下公式实现:

本发明的有益效果在于:本发明不仅使用了lsss线性秘密共享模型替代了shamir的与非门模型,有效的提高了信息的加密,解密效率。;且实现了多授权中心的密钥生成模式,能对用户共谋的攻击方式实现很好的防御,并且在do中实现了根据对数据信息的密文加密,达到了对数据信息进行数据加密的目的。在每个aa中实现了对每个独立用户生成更具其拥有的属性集合生成单独的对应密钥,实现了对用户权限控制的细粒度管理。

附图说明

图1是本发明的系统框架示意图;

图2是本发明的方法流程示意图。

具体实施方式

下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此:

实施例:如图1所示,一种基于属性加密的多授权访问控制系统,包括:授权中心,属性授权中心,数据属主,数据存储服务器,访问用户;其中,授权中心:表示为ca(centerauthority),负责设置系统参数,生成公共密钥pk和主密钥mk;

属性授权中心:表示为aa(attributeauthority),负责对自己负责的属性进行私钥生成;

数据属主:表示为do(dataowner),负责表示数据访问的策略集合,并进行数据加密;

数据云存储服务:表示为dsm(datasystemmanager),负责对按照策略定制者所定制的访问策略加密后的数据密文进行存储,并为用户提供解密服务;

访问用户:表示为user,每一个用户都拥有一个属性集合,如果该属性集合满足所希望访问的数据密文所对应的访问策略,则可获得对应的数据信息的明文信息。

如图2所示,一种基于属性加密的多授权访问控制方法,包括如下步骤:

步骤1:setup初始化授权中心ac,生成公共密钥pk(publickey)和主密钥mk(masterkey);

步骤1.1:输入初始化安全参数λ,系统运行初始化算法得到(n,p1,p2,p3,g,g1,e),其中:g与g1为2个阶为n的合数阶的群,n为3个不同的素数p1,p2,p3的乘积,e是一个g×g→g1的双线性映射。

这里说明双线性映射:

令g和g1为两个阶为n的群,其中n为3个不同的素数p1,p2,p3的乘积,定义一个可有效计算的的双线性映射e:g×g→g1,那么它拥有以下的特性:

1)双线性性。对于所有的x,y∈zn和所有的u,v∈g,有e(ux,uy)=e(u,v)xy

2)非退化性。使得e(g,g)在g1中的阶为n。

步骤1.2:从gp1中随机选择一个元素g,从gp3中选择一个生成元x3。把系统用户的所有属性域表示为u,对于每个属性i∈u,从zn中选择一个随机数ti,并计算另外随机选择α,a∈zn。生成公开密钥(publickey)pk=(n,g,ga,e(g,g)α,{ti}i∈u),以及主密钥(masterkey)mk=(α,x3)。

步骤2:encryptdo对所收到的数据信息,进行encrypt数据加密,生成密文ct(ciphertext);

步骤2.1:首先对要加密的数据使用密钥sek(symmetrickey)=e(g,g)αs进行加密。

步骤2.2:之后建立lsss访问策略(w,ρ),其中w是一个l*n的矩阵,w的每一行代表学要加密的信息对应的访问策略的每一个属性,ρ将w的每一行wx映射为属性值ρ(x)。随机生成一个向量对于每一个x∈[l],随机选择一个rx∈zn,计算

这里说明lsss线性秘密共享方案:

线性秘密共享方案是shamir秘密分享方案的一般性推广,shamir秘密分享方案利用了拉格朗日多项式差值方法,其基本思想是:如果预先定义了一个t-1阶的多项式,那么如果知道这个多项式上的t个点,则一定能完整恢复出这个多项式。假设所要分享的秘密是s,任取t-1个随机数a1,a2,a3...an,构造一个t-1阶多项式f(x)=at-1xt-1+at-2xt-2+...+a1x。对于每个用户i,1≤i≤n,其分享结果为(i,f(i))。这样,当t个用户在场时,就可以使用拉格朗日插值公式恢复出多项式,从而得到秘密s了。而线性秘密共享方案lsss,放弃使用拉格朗日插值公式来计算秘密分享的值,转而采用矩阵运算的形式。它将访问策略树转化为矩阵的形式,再计算出秘密共享矩阵m,之后将要加密的信息命名为s,此时生成一个随机的秘密共享矩阵将线性秘密共享矩阵和线性秘密分享矩阵相乘:

m*ν=(s1,s2,s3...sn+1)t

此时将得到的矩阵(s1,s2,s3,...,sn)t,将矩阵中的每一项对应上访问策略中的每一个属性,并将它称为每一个属性对应的秘密值。在用户获得自己拥有的属性所对应的秘密值后,便可以去求解秘密值s.在lsss中,存在一个向量b=(1,0,0,0..0),对于一个用户a的秘密共享矩阵ma,存在ma*λa=b,从而可以求得λa;之后再通过公式:求得秘密s。

步骤3:keygen私钥生成:每一个aa根据访问用户所拥有的属性集合生成用户所对应的私钥sk(screctkey)给用户;

对于每一个aa来说,都进行keygen算法,将用户的属性集合记录为s,随机选择t,z∈zn,k=ggatr0,l=gtr0`,对于用户的每一个属性i,计算其中r0,r0`,ri都是从阶群中选取的随机数。最后返回sk=(s,k,l,{ki}i∈s)。

步骤4:decrypt解密:dsm收到用户的请求,接受用户所拥有的私钥并获取用户请求的数据信息的密文,进行数据解密,如果解密成功那么就返回明文给用户,否则提示用户没有相应的权限。

根据lsss线性秘密共享方案的说明可以知道,存在一个向量ωx,使得:

在根据上文的所提到的公式:

可以计算:

再根据上文加密过程中,记录的sek(symmetrickey)=e(g,g)αs,通过sek解密即可得到密文的明文完成解密。

经过上述步骤的操作,即可实现一种基于属性加密的多授权访问控制安全模型。

以上的所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1