本发明涉及云环境及密码学技术领域,具体涉及一种格上支持策略隐藏的多机构加密方法。
背景技术:
随着信息技术的发展,私人和企业的数据越来越多,呈现大数据形态,促使了云计算的发展,人们越来越趋向于把数据存储在云端,既方便又节省成本和资源,特别是对一些中小型企业。然而带来方便的同时,也存在一些问题,特别是近几年来不断出现的云存储安全事件,人们将数据存储在云端,这些数据中难免会包含用户的隐私信息,并且用户失去了对敏感数据的控制,云端的服务器可能出于好奇或者商业利益而访问自己感兴趣的数据,非法用户也可能对用户的隐私进行窥探或者篡改。因此,用户将数据存储在云端之前,对数据进行加密处理是一个有效的方法。在2005年,sahai和waters提出了属性基加密(attributebasedencryption,abe)方案,迅速成为学者们研究的热点,在近几年来也是密码学研究的热点问题之一,属性基加密将用户的身份与一系列的属性相关联,当且仅当用户的属性满足数据所有者设置的访问结构时,用户才可以解密得到共享的数据。如今,在实现信息安全和灵活的访问控制方面,属性基加密被认为是比较有前景的密码学原语。然而云存储中数据所有者将自己的数据外包给云服务器,在制定访问策略生成密文时,通常将这个访问规则和密文一起发布,因此系统中任意试图解密的用户都能够推出一些敏感的信息(甚至是推出可能的接收者),使得用户的个人数据处于高泄露的风险中(比如针对商家发布的密文可以分析其潜在的盈利模式,或者个人健康记录系统中针对病人发布的密文分析出其个人的隐私信息等等),因此,为了防止隐私信息的泄露,往往需要在加密时对访问策略进行隐藏。同时,基于格的加密方法大多由单个可信的机构来管理所有的属性,安全性并不高,不满足实际的应用需要。另外基于格理论构造的新型密码方案具有可并行性、运算简单和抵抗量子攻击等优点,成为后量子时代研究的新热点。因此,基于格密码与支持策略隐藏的加密算法,设计一种格上支持策略隐藏的多机构加密方法具有重要的意义。
技术实现要素:
本发明的目的在于提供一种格上支持策略隐藏的多机构加密方法,可以提高系统的效率并可以抵抗量子攻击,有效保护用户的隐私,增加系统的灵活性,避免单个机构被攻破系统的安全性受到威胁的问题。
为了达到上述目的,本发明通过以下技术方案实现:
一种格上支持策略隐藏的多机构加密方法,其特征是,包含以下步骤:
s1、系统初始化时,生成公共参数和系统主私钥;
s2、用户为自己的属性集申请密钥,属性机构根据公共参数、系统主私钥以及用户的属性集为其生成私钥;
s3、将访问结构转化为对应的访问树以实现访问策略的完全隐藏;
s4、数据所有者根据系统公共参数、明文和转化来的访问树,生成密文数据,然后上传到云服务器进行存储;
s5、用户向云服务器发送访问请求,获得存储在云服务器中的密文数据;
s6、用户使用从属性机构获得的私钥对从云服务器获得的密文数据进行解密,得到数据所有者的明文并进行相关后续操作。
上述的格上支持策略隐藏的多机构加密方法,其中,所述步骤s1的过程具体为:
输入安全参数λ,n,m,q,其中,λ为初始化阶段算法的输入参数为整数,n、m均为相关参数,q为素数;
运行陷门生成算法,生成一个均匀随机的矩阵
所述的陷门生成算法是指对于素数q=poly(n),n为正整数,存在概率多项式时间算法trapgen(q,n)生成均匀随机矩阵
上述的格上支持策略隐藏的多机构加密方法,其中,所述步骤s2中的具体过程为:
输入系统公共参数pp,主私钥msk,用户的属性集au,系统利用(k,n′)shamir门限秘密共享机制来计算随机向量u的k个划分,即k为门限值也是属性机构的个数,n′为将随机向量u划分的份数;然后再将k个划分随机向量
用户向属性机构请求密钥,二者进行交互,属性机构aai运行左抽样算法,计算向量:ei,j←sampleleft(a,a1,i+h(u″i,j)·a2,i,ta,u′i,j,σ),然后输出用户的私钥
上述的格上支持策略隐藏的多机构加密方法,其中,所述的满二秩差分编码函数是指给定素数q,正整数n,满二秩差分编码函数
其中,coeffs表示多项式系数组成的行向量;其中,
所述的左抽样算法是指sampleleft(a,m1,ta,u,σ):输入:一个秩为n的矩阵
上述的格上支持策略隐藏的多机构加密方法,其中,所述步骤s3中访问结构转化为访问树过程为:
访问结构采用多值属性的与、或、门限形式,数据所有者在对明文加密之前,先将访问结构w转化为一棵访问树γ,树中的叶子节点表示属性,非叶子节点表示操作符,在访问树中,用相应的值来取代叶子节点的信息,不以明文的形式出现在访问结构中,用户在解密时不能获得有关数据所有者和其他解密者的任何信息,从而实现策略的完全隐藏;
所述的访问树是指通过shamir秘密共享机制来构造,设置访问树γ的根节点设为向量s,同时随机选取向量
a、如果该节点的操作符为∧,并且其孩子节点为未分配,则随机选择向量
b、如果该节点的操作符为∨,并且其孩子节点为未分配,则将其所有的孩子节点的值设置为s,并将这些节点标记为已分配;
c、如果该节点的操作符为of,并且其孩子节点为未分配,则利用shamir(t,n″)门限秘密共享机制对向量
上述的格上支持策略隐藏的多机构加密方法,其中,所述的步骤s4中的密文生成过程为:
输入系统公共参数pp,明文b∈{0,1},由访问结构w转化来的访问树γ,令参数k=(k!d!)2,其中的
其中k为属性机构的个数;其中,a′i为每个属性可能取值的集合;zq和
上述的格上支持策略隐藏的多机构加密方法,其中,所述的步骤s6中的用户解密过程为:
输入公共参数pp,密文ct和用户私钥sk,如果用户的属性集不满足访问结构w,则输出⊥;否则可以成功解密,选择满足访问结构的最小属性集ia,计算明文
本发明与现有技术相比具有以下优点:
1、利用格理论来取代以往的双线性对,提高了系统的效率并且可以抵抗量子攻击;
2、通过将访问结构转化为访问树,对树中的每个节点进行赋值,然后将访问策略嵌入到密文中,实现访问策略的完全隐藏以及细粒度的访问控制;隐藏访问策略的属性基加密方案,加密者可以指定解密方的角色;另外利用属性基加密的模糊性,用属性来描述对象,可以保护加密者的敏感信息;
3、利用shamir门限秘密共享机制,通过访问树来实现访问控制策略的与、或、门限三种操作,增加了系统的灵活性;
4、基于格理论构造的多机构属性基加密方案,由多个属性机构管理不同的属性集合,为其权限下的用户分发密钥,避免了单个机构被攻破,系统的安全性受到威胁的问题。
附图说明
图1为本发明的方法流程图;
图2为本发明的实施例中对本发明以及现有方法的对比。
具体实施方式
以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
如图1所示,本发明公开了一种格上支持策略隐藏的多机构加密方法,其包含以下步骤:s1、系统初始化时,生成公共参数和系统主私钥;s2、用户为自己的属性集申请密钥,属性机构根据公共参数、系统主私钥以及用户的属性集为其生成私钥;s3、将访问结构转化为对应的访问树以实现访问策略的完全隐藏;s4、数据所有者根据系统公共参数、明文和转化来的访问树,生成密文数据,然后上传到云服务器进行存储;s5、用户向云服务器发送访问请求,获得存储在云服务器中的密文数据;s6、用户使用从属性机构获得的私钥对从云服务器获得的密文数据进行解密,得到数据所有者的明文并进行相关后续操作。
下面用一个实施例来进一步阐述该方法:
假设系统中有k个属性机构aai(i=1,2,...,k),每个属性机构aai利用格上的左抽样sampleleft算法为其权限下的合法用户生成私钥,同时将私钥通过安全信道发送给用户;每个属性机构aai管理ni个属性值。
示例地,以下给出上述步骤s1、步骤s2、步骤s3、步骤s4和步骤s6中关键过程的实施方法:
步骤s1的具体过程为:输入安全参数λ,n,m,q,其中,λ为初始化阶段算法的输入参数为整数,n、m均为相关参数,q为素数;
运行陷门生成算法,生成一个均匀随机的矩阵
所述的陷门生成算法是指对于素数q=poly(n),n为正整数,m≥5nlogq,存在概率多项式时间算法trapgen(q,n)生成均匀随机矩阵
步骤s2的具体过程为:输入系统公共参数pp,主私钥msk,用户的属性集au,系统利用(k,n′)shamir门限秘密共享机制来计算随机向量u的k个划分,即k为门限值也是属性机构的个数,n′为将随机向量u划分的份数;然后再将k个划分随机向量
用户向属性机构请求密钥,二者进行交互,属性机构aai运行左抽样算法,计算向量:ei,j←sampleleft(a,a1,i+h(u″i,j)·a2,i,ta,u′i,j,σ),然后输出用户的私钥
其中,当ai,j∈au∩a′i时,向量ei,j表示用户的私钥;
所述的满二秩差分编码函数是指给定素数q,正整数n,满二秩差分编码函数
其中,coeffs表示多项式系数组成的行向量;其中,
所述的左抽样算法是指sampleleft(a,m1,ta,u,σ):输入:一个秩为n的矩阵
步骤s3中,访问结构转化为访问树过程为:访问结构采用多值属性的与、或、门限形式,数据所有者在对明文加密之前,先将访问结构w转化为一棵访问树γ,树中的叶子节点表示属性,非叶子节点表示操作符,在访问树中,用相应的值来取代叶子节点的信息,不以明文的形式出现在访问结构中,用户在解密时不能获得有关数据所有者和其他解密者的任何信息,从而实现策略的完全隐藏;
所述的访问树是指通过shamir秘密共享机制来构造,设置访问树γ的根节点设为向量s,同时随机选取向量
a、如果该节点的操作符为∧,并且其孩子节点为未分配,则随机选择向量
b、如果该节点的操作符为∨,并且其孩子节点为未分配,则将其所有的孩子节点的值设置为s,并将这些节点标记为已分配;
c、如果该节点的操作符为of,并且其孩子节点为未分配,则利用shamir(t,n″)门限秘密共享机制对向量
步骤s4中,密文生成过程为:输入系统公共参数pp,明文b∈{0,1},由访问结构w转化来的访问树γ,令参数k=(k!d!)2,其中的
其中k为属性机构的个数;其中,a′i为每个属性可能取值的集合;zq和
步骤s6中,用户解密过程为:输入公共参数pp,密文ct和用户私钥sk,如果用户的属性集不满足访问结构w,则输出⊥;否则可以成功解密,选择满足访问结构的最小属性集ia,计算明文
下面用一个实例来阐述本方法。
n表示系统的属性总数,au为用户的属性个数,ae为加密的属性个数,q,n,m均为相关参数,q为素数,n为正整数,m为整数,k为属性机构的个数,d表示属性的分层深度。
从图2可以看出,liuximeng等人的方案在上述四个方面的长度明显大于zhangguoyan等人的方案和本发明。本发明虽然用户私钥长度大于zhangguoyan等人的方案,但是鉴于用户的私钥存储在本地,因此导致的系统性能减小可以忽略。总体而言,本发明在性能上优于其他两种方案。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。