CN109714157A - 一种抗密钥暴露属性加密的sdn跨域访问控制方法 - Google Patents
一种抗密钥暴露属性加密的sdn跨域访问控制方法 Download PDFInfo
- Publication number
- CN109714157A CN109714157A CN201811494298.0A CN201811494298A CN109714157A CN 109714157 A CN109714157 A CN 109714157A CN 201811494298 A CN201811494298 A CN 201811494298A CN 109714157 A CN109714157 A CN 109714157A
- Authority
- CN
- China
- Prior art keywords
- attribute
- sdn
- tuple
- group
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种抗密钥暴露属性加密的SDN跨域访问控制方法,基于属性权威、SDN控制器、加密者和解密者四部分构成的控制系统,属性权威负责所有属性的认证以及公钥、私钥的发布;SDN控制器负责收集、存储和管理SDN流表、路由以及数据量信息,SDN划分为多个SDN域,每一个域内部署唯一的SDN控制器,每个SDN控制器管理各自域内的重要信息,并与其他域的SDN控制器交互;加密者是数据的初始拥有者,用户或SDN设备能够上传自己的数据并根据自己的意愿或需求自由制定相应的访问策略;解密者是试图获取SDN控制器内信息的用户或者设备,拥有一个与其属性集合相对应的私钥,并通过私钥来解密密文。
Description
技术领域
本发明涉及SDN跨域访问控制方法,尤其涉及一种抗密钥暴露属性加密的SDN跨域访问控制方法,用于SDN跨域信息分享,属于网络信息安全领域。
背景技术
软件定义网络(software defined network,简称SDN)将网络的控制层与数据层分离,不仅有利于降低网络当中的硬件成本,还使得网络管理员能够方便地对来自不同厂商的设备进行集中化的调试和管理。但同时SDN的一系列安全问题却成为了阻碍其进一步广泛应用的难题。其中最严重的问题之一就是如何在远程控制环境下保证由SDN控制器掌控的用户和设备敏感信息不被攻击者窃取。然而现有的SDN访问控制机制不足以实现灵活、高效而又准确的用户信息管理,尤其在部署多控制器的大型SDN环境中难以实现有效的跨域信息访问控制。因此在SDN环境中部署安全、灵活、高效的访问控制管理机制显得尤为重要。
发明内容
为提高SDN跨域信息分享的安全性和高效性,本发明提出了一种抗密钥暴露属性加密的SDN跨域访问控制方法,其核心思想是:利用预计算技术将必要的双线性对计算并存储起来,加密者在进行加密时无需进行任何复杂的双线性对运算,提高了属性加密的计算效率。同时我们基于拓展图技术减少了预计算产生的双线性配对数量,进一步降低了预计算产生的存储开销。除此之外,将用户或者设备的MAC地址嵌入到私钥当中,如果私钥当中的地址信息与设备本身不符则无法完整解密。这保证即使将私钥有意或者无意地暴露给其他非法用户或者设备,他们也无法获取此私钥获取敏感信息。
为实现上述发明目的,本发明采用以下技术方案:一种抗密钥暴露属性加密的SDN跨域访问控制方法,其特征在于:基于属性权威、SDN控制器、加密者和解密者四部分构成的控制系统,属性权威和SDN控制器位于控制层,加密者和解密者位于数据层,属性权威是一个可信的权威机构,负责所有属性的认证以及公钥、私钥的发布;SDN控制器负责收集、存储和管理SDN流表、路由以及数据量信息,SDN采用多控制设置,将SDN划分为多个SDN域,每一个域内部署唯一的SDN控制器,每个SDN控制器管理各自域内的重要信息,同时负责与其他域的SDN控制器交互;加密者是数据的初始拥有者,包括路由器、服务器、PC机和交换机构成的用户或SDN设备,用户或SDN设备能够上传自己的数据并根据自己的意愿或需求自由制定相应的访问策略;解密者是试图获取SDN控制器内信息的用户或者设备,其身份用一个属性集合来表示,解密者拥有一个与其属性集合相对应的私钥,并通过私钥来解密密文,解密者包括路由器、loT传感器、手机和交换机;包括以下步骤:
第一步:启动访问控制系统,属性权威调用初始化算法,输入一个安全参数k,生成公钥PK和主密钥MSK,公钥PK向全网公开,主密钥MSK由属性权威秘密保存;
第二步:解密者向属性权威发起私钥生成请求,输入自己唯一的MAC地址AMAC、属性集合S、公钥PK以及主密钥MSK,获得属性权威验证,属性权威调用私钥生成算法生成私钥SK,并将解密者的属性集合S和MAC地址AMAC嵌入到私钥SK当中,最终输出与解密者MAC地址以及属性集合相对应的私钥SK;
第三步:属性权调用预计算算法中的预处理子算法,预处理子算法输入公钥PK,根据公钥PK产生n个群和上的元素集合并存储在列表L当中,其中attj为全局属性集合Ω当中任意的属性,j表示该属性的唯一索引号,e表示从加法循环群映射到乘法循环群的双线性映射,P为的一个生成元,H1为哈希函数将任意一串二进制数组映射为群中的元素,α为主密钥MSK当中的一个元素,ri为一个随机的整数,其中i∈{1,2,...,n},然后基于拓展图技术产生一个常数c(ε),其中0<ε<1,利用常数c(ε)计算一个新的常数ne=c(ε)log2(p),其中p为群和的大素数阶,然后生成另外ne个群和上的元素集合并存储在列表L′当中,其中di为随机数,i∈{1,2,...,ne};
第四步:加密者产生一组消息明文M,同时制定了相应的访问树Γ,调用预计算算法中的元组生成子算法生成与访问树Γ相对应的两个元组Tuple1和Tuple2;
第五步:加密者调用快速加密算法,输入一个访问树Γ、公钥PK以及消息明文M,然后调用预处理子算法,在不执行任何指数运算的情况下通过元组Tuple1和Tuple2快速的生成关于消息明文M以及访问树Γ的密文CT,最后将密文CT上传至域内的SDN控制器;
第六步:解密者向当前域的SDN控制器发送关于消息明文M的跨域访问请求,SDN控制器通过SDN域间传输交互获取密文CT,然后转发给解密者;
第七步:解密者调用解密算法,输入私钥SK、自己的MAC地址AMAC以及获取的密文CT,如果解密者的属性集合S满足密文CT当中的访问树Γ,而且其MAC地址AMAC与私钥SK当中嵌入的MAC地址信息一致,才能获取消息明文M,反之则无法获取任何有用的信息。
所述初始化算法的流程为:输入全局的属性集合Ω={att1,att2,att3,,attn}以及一个安全参数k,其中attj是本发明中的解密者的任意属性,j∈{1,2,...,n}是该属性的唯一索引号,假设加法循环群和乘法循环群是阶为大素数p的双线性群,其中大素数p的比特位数由参数k决定,令P是的一个生成元,是群到群的双线性映射,然后定义一个拉格朗日函数使得一个索引集合S当中的任意一个索引i满足
定义两个哈希函数和H2:{0,1}48→Zp,其中H1将任意一串二进制数组映射为群中的元素,H1将48bit的MAC地址映射为Zp上的元素,选择两个随机数α,β∈Zp,最后生成公钥:PK={p,P,e,Ω,e(P,P)α,H=βP,T=(1β)P,H1,H2},同时保存主密钥:MSK={αP,β};
预处理子算法输入公钥PK,根据公钥PK产生n个群和上的元素集合并存储在列表L当中,其中其中attj为全局属性集合Ω当中任意的属性,j表示该属性的唯一索引号,e表示从加法循环群映射到乘法循环群的双线性映射,P为的一个生成元,H1为哈希函数将任意一串二进制数组映射为群中的元素,α为主密钥MSK当中的一个元素,ri为一个随机的整数,其中i∈{1,2,...,n},然后基于拓展图技术产生一个常数c(ε),其中0<ε<1,利用常数c(ε)计算一个新的常数ne=c(ε)log2(p),其中p为群和的大素数阶,然后生成另外ne个群和上的元素集合并存储在列表L′当中,其中di为随机数,i∈{1,2,...,ne}。
所述私钥生成算法的流程为:首先输入公钥PK、主密钥MSK、一个属性集合S以及一个MAC地址AMAC,其次选择一个随机数r∈Zp,然后计算D=((α+rH2(AMAC))β)P,对于任意一个属性attj∈S选择一个随机数rj∈Zp并计算Dj=(rP)·(rjH1(attj))和Dj′=rjP,最后输出关于属性集合S的私钥:
所述预处理子算法和元组生成子算法共同组成预计算算法;
变量定义:Y代表访问树Γ的叶节点集合,Ux代表子树Γx包含的属性的集合,Sx代表节点x的子节点集合,Sx′代表节点x的子节点索引集合,c(ε)代表ε拓展图常数;
4.1预处理子算法:
1)生成n个随机数r1,r2,,rn∈Zp;
2)对于计算riP以及
3)生成一张空列表L,对于将添加到列表L当中;
4)计算ne=c(ε)log2(p)并生成ne个随机数
5)对于计算diP以及
6)生成一张空列表L′,对于将添加到列表L′当中;
7)随机选择di,初始化参数t=di、T2=diP以及
4.2元组生成子算法:
元组生成算法输入一个访问树Γ,输出与访问树Γ相关的两个元组Tuple1和Tuple2;该算法由A1和A2两个算法组成,算法执行流程如下:
(1)对于访问树Γ的根节点,执行A1算法:
1)在列表L′当中随机选择一组元素
2)重新赋值T2=T2+diP以及
3)随机提取一个集合使得|S|=k;
4)从列表L当中随机地抽取一组元素
5)声明并初始化变量如果e(P,P)αs是群的单位元则立即返回流程(1)当中的1)重新计算;
6)声明并初始化变量sP=T2+∑i∈SriP以及最终返回元组:
(2)对于访问树中的任意节点x,继续执行A2算法:
1)声明并初始化常量d=kx-2;
2)从列表L′中随机选择一组元素
3)重新赋值变量T2=T2+diP以及
4)随机提取一个集合使得|Sd|=k;
5)从列表L中随机选择一组元素
6)声明并初始化变量若cdP是群中的单位元则立即返回流程(2)当中的1)重新计算;
7)从列表L′当中随机选择一组元素
8)对于重新赋值变量T2=T2+diP;
9)对于重新赋值变量
10)随机选择一个集合使得|Su|=k;
11)在列表L当中随机选择一组元素
12)对于声明并赋值变量
13)对于声明并赋值变量返回元组:
所述快速加密算法流程如下:
为了生成消息明文M与访问树Γ相对应的密文,快速加密算法需要对访问树Γ当中任意一个节点x产生一个次数为kx-1的随机多项式,为了减小加密的计算负担,利用预计算算法来生成每个节点的随机多项式,根据访问树Γ的结构,采用一种自上而下的迭代方式:
对于访问树的根节点R,快速加密算法调用A1算法获取元组Tuple1:
如果kR-1≠0,则继续调用A2算法获取元组Tuple2:
利用获取的以上两个元组,同时声明并初始化常量dR=kR-2,然后定义一个次数为dR的多项式:
随后,关于根节点R的完整多项式为:
qR(X)=r(X)·X+s
对于计算:
对于访问树Γ当中的任意节点x,调用A2算法获取元组Tuple2:
声明并初始化常量dx=kx-2,利用上式中的系数ci定义一个次数为dx的多项式:
然后生成关于节点x的完整多项式:
qx(X)=r(X)·X+qparent(x)(index(x))
对于计算:
因此对于任意的叶节点x,快速加密算法通过迭代得到了qx(0)P和qx(0)H1(att(x)),最终生成如下的密文:
所述解密算法流程如下:
(1)首先定义一个迭代函数DecryptNode,该函数的输入为密文私钥以及访问树Γ当中的一个节点x,该算法的迭代过程如下:
如果x是叶节点,则令atti=att(x)并进行如下的判断与计算:
1)若atti∈S则计算并输出以下结果:
2)若则输出以下结果表示放弃该节点的计算:
DecryptNode(CT,SK,x)=⊥
如果x是非叶节点,那么对于其任意子节点z调用函数DecryptNode并记其返回结果为Fz,然后进行如下的判断与计算:
3)判断是否存在关于节点x的包含kx子节点的集合Sx,使得成立,若不存在,那么输出以下结果表示放弃该节点的计算:
4)若存在集合Sx,计算并输出以下结果:
(2)进一步定义解密算法,分为两步:
1)首先从访问树Γ的叶节点开始调用函数DecyrptNode,如果属性集合S满足访问树Γ,就能够通过层层迭代获取隐藏在根节点R当中的秘密,记为:
2)通过如下计算就可以得到消息明文M:
如果属性集合S不能满足访问树Γ,那么将无法在多项式时间内恢复出根节点R当中的秘密,并且如果当前的MAC地址信息与私钥SK当中的MAC地址信息不吻合,即使恢复出根节点R当中的秘密也无法通过进一步的计算得到消息明文M,因此1)和2))只要任何一步不满足条件,都将导致解密算法退出执行。
本发明的优点及显著效果:
1、功能优势:将本发明与现有方法KKB方法、JRA方法及HLM方法的功能进行了分析比较。其中KKB方法与JRA方法无法对数据进行加密,只能制定固定的粗粒度访问策略,而且不支持快速加密与抗密钥暴露;HLM方法无法对数据进行加密,支持制定灵活的细粒度访问策略,但是不支持快速加密与抗密钥暴露;本发明不仅可以对数据进行加密,还支持制定灵活的细粒度访问策略,此外利用预计算技术实现了快速加密,而且可以有效防止私钥暴露。因此在访问控制的功能上,本发明具有显著的优势。比较结果如图2所示。
2、计算效率提升:为了说明本发明的加密效率,与现有BSW方法、LHS方法进行了加解密仿真实验。仿真硬件为Intel(R)Core(TM)i7-5600U@2.6GHz,内存为8G,系统为Cent OS6.7,使用代码库为JPBC 1.2.1,实验基于256位的椭圆曲线,曲线阶为120bit的大素数。实验在不同的属性数量条件下记录了20次加密所需的平均时间。
基于以上三种(BSW方法、LHS方法以及本发明)算法构建的SDN跨域访问控制模型在不同属性数量情况下的平均加密时间如图3所示。可以看出,在相同属性数量条件下,本发明的平均加密时间是最少的,约为BSW方法的50%,即只需要一半的算力就可以完成相同的加密计算。
附图说明
图1是本发明系统结构图;
图2是本发明功能增益效果示例图;
图3是本发明加密效率增益对比;
图4是本发明方法流程示意图。
具体实施方式
下面结合附图及实例来详细描述本发明。
参看图1,给出了基于抗密钥暴露快速属性加密的SDN跨域访问控制方法的系统组成结构图。包括属性权威、SDN控制器、加密者和解密者四种角色构成的控制系统。
属性权威:是一个可信的权威机构,负责所有属性的认证以及公钥私钥的发布。
SDN控制器:负责收集、存储和管理SDN流表、路由以及数据量等重要信息,其中包含各类用户或者设备的敏感信息。本发明针对大型SDN采用多控制设置,将SDN划分为多个SDN域,每一个域内部署唯一的SDN控制器。每个SDN控制器管理各自域内的重要信息,同时负责与其他域的SDN控制器交互。
加密者:是数据的初始拥有者(可以是用户,也可以是SDN设备),能够上传自己的数据并根据自己的意愿或需求自由制定相应的访问策略。
解密者:是试图获取SDN控制器内信息的用户或者设备,其身份用一个属性集合来表示。解密者拥有一个与其属性集合相对应的私钥,并通过私钥来解密密文。
参看图4,本发明的方法流程如下:
第一步:启动访问控制系统,利用属性权威注册SDN所有用户以及设备属性,构建全局属性集合Ω={att1,att2,att3,,attn},调用初始化算法生成如下的公钥PK和主密钥MSK:
PK={p,P,e,Ω,e(P,P)α,H=βP,T=(1/β)P,H1,H2}
MSK={αP,β}
第二步:SDN某域中的用户或设备请求属性权威发布私钥,该用户或设备向属性权威验证自己的属性集合S和MAC地址AMAC。属性权威调用私钥生成算法生成其私钥SK,将其属性集合S和MAC地址AMAC嵌入到私钥SK当中,私钥SK如下:
第三步:属性权威利用预计算技术,调用预计算算法中的预处理算法,根据公钥PK产生n个群和上的元素集合并存储在列表L当中。同时利用拓展图技术,产生一个基于拓展图参数c(ε)的常数ne=c(ε)log2(p),然后产生另外ne个群和上的元素集合并存储在列表L′当中。
第四步:SDN某域中的用户或者设备产生一组关键信息M并根据该信息制定了相应的访问树Γ,调用预计算算法中的元组生成算法生成与访问树Γ相对应的如下两个元组Tuple1和Tuple2:
第五步:该用户或设备调用快速加密算法,在不执行任何指数运算的情况下通过元组Tuple1和Tuple2快速的生成关于信息M以及访问树Γ的密文CT:
第六步:SDN某域当中的用户或设备向当前域的SDN控制器请求访问关于某用户或设备的关键信息M,如果该信息属于当前SDN域,则控制直接将关于该信息的密文CT直接发送给这个用户或设备。否则当前域SDN控制器与其SDN域交互查询关键信息M所属的SDN域,找到后通过SDN控制器之间的交互获取关于该信息的密文CT,然后发送给请求获取信息的用户或设备。
第七步:该用户或设备调用解密算法,输入私钥SK、自己的MAC地址AMAC以及刚刚获取的密文CT。如果私钥SK当中嵌入的属性集合S满足密文CT当中的访问树Γ,而且其MAC地址AMAC与私钥SK当中嵌入的MAC地址信息一致,才能获取该信息的访问权限从而恢复出信息M。反之则无法获取任何有用的信息。
上述七个步骤中,涉及的初始化算法、私钥生成算法、预计算算法、快速加密算法和解密算法共五个算法的具体实施方式如下:
1、初始化算法:由属性权威执行。算法输入一个安全参数k,输出公钥PK和主密钥MSK,其中公钥PK向全网公开,而主密钥MSK由属性权威秘密保存。首先初始化算法输入全局的属性集合Ω={att1,att2,att3,,attn}以及一个安全参数k。假设和是阶为大素数p的双线性群,其中大素数p的比特位数由参数k决定。令P是的一个生成元,是群到群的双线性映射。然后定义拉格朗日函数Δi,S(x),使得集合S当中的任意一个元素i都有:
此外定义两个哈希函数和H2:{0,1}48→Zp。其中H1将任意一串二进制数组映射为群中的元素,H1将48bit的MAC地址映射为Zp上的元素。选择两个随机数α,β∈Zp。最后生成如下公钥:
PK={p,P,e,Ω,e(P,P)α,H=βP,T=(1/β)P,H1,H2}
同时保存如下的主密钥:
MSK={αP,β}
2、私钥生成算法:由属性权威执行。解密者发起密钥生成请求时输入其唯一的MAC地址AMAC、属性集合S、公钥PK以及主密钥MSK,最终输出与其MAC地址以及属性集合相对应的私钥SK。私钥生成算法首先输入公钥PK、主密钥MSK、一个属性集合S以及一个MAC地址AMAC。其次选择一个随机数r∈Zp,然后计算D=((α+rH2(AMAC))/β)P。对于任意一个属性attj∈S选择一个随机数rj∈Zp并计算Dj=(rP)·(rjH1(attj))和Dj′=rjP。最后输出关于属性集合S的私钥:
3、预计算算法:由属性权威执行。算法由两个子算法组成,分别是预处理子算法以及元组生成算法。预处理子算法输入公钥PK,输出两组列表L和L′。元组生成算法输入一个访问树Γ,输出与访问树Γ相对应的元组Tuple1和Tuple2。
预计算算法由两个子算法组成,分别为预处理子算法和元组生成子算法。变量定义如表1所示。
表1变量定义说明
3.1、预处理子算法
1)生成n个随机数r1,r2,,rn∈Zp;
2)对于计算riP以及
3)生成一张空列表L,对于将添加到列表L当中;
4)计算ne=c(ε)log2(p)并生成ne个随机数
5)对于计算diP以及
6)生成一张空列表L′,对于将添加到列表L′当中;
7)随机选择di,初始化参数t=di、T2=diP以及
3.2、元组生成子算法
元组生成算法输入一个访问树Γ,输出与访问树Γ相关的两个元组。该算法由A1和A2两个算法组成,对于访问树Γ的根节点,执行A1算法:
1)在列表L′当中随机选择一组元素
2)重新赋值T2=T2+diP以及
3)随机提取一个集合使得|S|=k;
4)从列表L当中随机地抽取一组元素
5)声明并初始化变量如果e(P,P)αs是群的单位元则立即返回步骤1重新计算;
6)声明并初始化变量sP=T2+∑i∈SriP以及最终返回元组:
对于访问树中的任意节点x,继续执行A2算法:
1)声明并初始化常量d=kx-2;
2)从列表L′中随机选择一组元素
3)重新赋值变量T2=T2+diP以及
4)随机提取一个集合使得|Sd|=k;
5)从列表L中随机选择一组元素
6)声明并初始化变量若cdP是群中的单位元则立即返回步骤1重新计算;
7)从列表L′当中随机选择一组元素
8)对于重新赋值变量T2=T2+diP;
9)对于重新赋值变量
10)随机选择一个集合使得|Su|=k;
11)在列表L当中随机选择一组元素
12)对于声明并赋值变量
13)对于声明并赋值变量返回元组:
4、快速加密算法:由加密者执行,算法首先输入一个访问树Γ、公钥PK以及消息明文M,然后通过调用预处理算法输出与访问树Γ对应的密文CT,最后将密文CT上传至域内的SDN控制器。为了生成于明文M与访问树Γ相对应的密文,快速加密算法需要对访问树Γ当中任意一个节点x产生一个次数为kx-1的随机多项式。为了减小加密的计算负担,我们利用预计算算法来生成每个节点的随机多项式。根据访问树Γ的结构,这种方法采用一种自上而下的迭代方式:
对于访问树的根节点R,快速加密算法调用A1算法获取元组:
如果kR-1≠0,则继续调用A2算法获取元组:
利用获取的以上两个元组,同时声明并初始化常量dR=kR-2,然后定义一个次数为dR的多项式:
随后,关于根节点R的完整多项式为:
qR(X)=r(X)·X+s
对于计算:
对于访问树Γ当中的任意节点x,调用A2算法获取元组:
声明并初始化常量dx=kx-2,利用上式中的系数ci定义一个次数为dx的多项式:
然后生成关于节点x的完整多项式:
qx(X)=r(X)·X+qparent(x)(index(x))
对于计算:
因此对于任意的叶节点x,快速加密算法通过迭代得到了qx(0)P和qx(0)H1(att(x))。最终生成如下的密文:
5、解密算法:由解密者执行,输入其MAC地址AMAC、密文CT以及私钥SK,当解密者的属性集合满足访问策略,同时其MAC地址与隐藏在私钥SK当中的MAC地址信息相吻合时,才会输出消息明文M,否则退出执行。首先定义一个迭代函数DecryptNode,该函数的输入为密文私钥以及访问树Γ当中的一个节点x。该算法的迭代过程如下:
如果x是叶节点,则令atti=att(x)并进行如下的判断与计算:
1)若atti∈S则计算并输出以下结果:
2)若则输出以下结果表示放弃该节点的计算:
DecryptNode(CT,SK,x)=⊥
如果x是非叶节点,那么对于其任意子节点z调用函数DecryptNode并记其返回结果为Fz。然后进行如下的判断与计算:
3)判断是否存在关于节点x的包含kx子节点的集合Sx,使得成立。若不存在,那么输出以下结果表示放弃该节点的计算:
4)若存在集合Sx,计算并输出以下结果:
到目前为止,我们定义了函数DecyrptNode,现在进一步定义解密算法。算法首先从访问树Γ的叶节点开始调用函数DecyrptNode。如果属性集合S满足访问树,那么就可以通过层层迭代获取隐藏在根节点R当中的秘密,记为:
随后通过如下计算就可以得到明文:
反之,如果属性集合S不能满足访问树Γ,那么将无法在多项式时间内恢复出根节点R当中的秘密。与此同时,如果当前的MAC地址信息与私钥SK当中的MAC地址信息不吻合,即使恢复出根节点R当中的秘密也无法通过进一步的计算得到消息明文。以上两步中只要任何一步不满足条件,都将导致解密算法退出执行。
如图2所示,本发明与现有方法KKB方法、JRA方法及HLM方法的功能进行了分析比较,其中KKB方法与JRA方法无法对数据进行加密,只能制定固定的粗粒度访问策略,而且不支持快速加密与抗密钥暴露;HLM方法无法对数据进行加密,支持制定灵活的细粒度访问策略,但是不支持快速加密与抗密钥暴露;本发明不仅可以对数据进行加密,还支持制定灵活的细粒度访问策略,此外利用预计算技术实现了快速加密,而且可以有效防止私钥暴露。因此在访问控制的功能上,本发明具有显著的优势。
如图3所示,本发明构建的SDN跨域访问控制模型在不同属性数量情况下的平均加密时间,可以看出,在相同属性数量条件下,本发明的平均加密时间是最少的,约为BSW方法的50%,即只需要一半的算力就可以完成相同的加密计算。
Claims (6)
1.一种抗密钥暴露属性加密的SDN跨域访问控制方法,其特征在于:基于属性权威、SDN控制器、加密者和解密者四部分构成的控制系统,属性权威和SDN控制器位于控制层,加密者和解密者位于数据层,属性权威是一个可信的权威机构,负责所有属性的认证以及公钥、私钥的发布;SDN控制器负责收集、存储和管理SDN流表、路由以及数据量信息,SDN采用多控制设置,将SDN划分为多个SDN域,每一个域内部署唯一的SDN控制器,每个SDN控制器管理各自域内的重要信息,同时负责与其他域的SDN控制器交互;加密者是数据的初始拥有者,包括路由器、服务器、PC机和交换机构成的用户或SDN设备,用户或SDN设备能够上传自己的数据并根据自己的意愿或需求自由制定相应的访问策略;解密者是试图获取SDN控制器内信息的用户或者设备,其身份用一个属性集合来表示,解密者拥有一个与其属性集合相对应的私钥,并通过私钥来解密密文,解密者包括路由器、loT传感器、手机和交换机;包括以下步骤:
第一步:启动访问控制系统,属性权威调用初始化算法,输入一个安全参数k,生成公钥PK和主密钥MSK,公钥PK向全网公开,主密钥MSK由属性权威秘密保存;
第二步:解密者向属性权威发起私钥生成请求,输入自己唯一的MAC地址AMAC、属性集合S、公钥PK以及主密钥MSK,获得属性权威验证,属性权威调用私钥生成算法生成私钥SK,并将解密者的属性集合S和MAC地址AMAC嵌入到私钥SK当中,最终输出与解密者MAC地址以及属性集合相对应的私钥SK;
第三步:属性权调用预计算算法中的预处理子算法,预处理子算法输入公钥PK,根据公钥PK产生n个群和上的元素集合并存储在列表L当中,其中attj为全局属性集合Ω当中任意的属性,j表示该属性的唯一索引号,e表示从加法循环群映射到乘法循环群的双线性映射,P为的一个生成元,H1为哈希函数将任意一串二进制数组映射为群中的元素,α为主密钥MSK当中的一个元素,ri为一个随机的整数,其中i∈{1,2,...,n},然后基于拓展图技术产生一个常数c(ε),其中0<ε<1,利用常数c(ε)计算一个新的常数ne=c(ε)log2(p),其中p为群和的大素数阶,然后生成另外ne个群和上的元素集合并存储在列表L′当中,其中di为随机数,i∈{1,2,...,ne};
第四步:加密者产生一组消息明文M,同时制定了相应的访问树Γ,调用预计算算法中的元组生成子算法生成与访问树Γ相对应的两个元组Tuple1和Tuple2;
第五步:加密者调用快速加密算法,输入一个访问树Γ、公钥PK以及消息明文M,然后调用预处理子算法,在不执行任何指数运算的情况下通过元组Tuple1和Tuple2快速的生成关于消息明文M以及访问树Γ的密文CT,最后将密文CT上传至域内的SDN控制器;
第六步:解密者向当前域的SDN控制器发送关于消息明文M的跨域访问请求,SDN控制器通过SDN域间传输交互获取密文CT,然后转发给解密者;
第七步:解密者调用解密算法,输入私钥SK、自己的MAC地址AMAC以及获取的密文CT,如果解密者的属性集合S满足密文CT当中的访问树Γ,而且其MAC地址AMAC与私钥SK当中嵌入的MAC地址信息一致,才能获取消息明文M,反之则无法获取任何有用的信息。
2.根据权利要求1所述的抗密钥暴露属性加密的SDN跨域访问控制方法,其特征在于:所述初始化算法的流程为:输入全局的属性集合Ω={att1,att2,att3,…,attn}以及一个安全参数k,其中attj是本发明中的解密者的任意属性,j∈{1,2,...,n}是该属性的唯一索引号,假设加法循环群和乘法循环群是阶为大素数p的双线性群,其中大素数p的比特位数由参数k决定,令P是的一个生成元,是群到群的双线性映射,然后定义一个拉格朗日函数使得一个索引集合S当中的任意一个索引i满足
定义两个哈希函数和H2:{0,1}48→Zp,其中H1将任意一串二进制数组映射为群中的元素,H1将48bit的MAC地址映射为Zp上的元素,选择两个随机数α,β∈Zp,最后生成公钥:PK={p,P,e,Ω,e(P,P)α,H=βP,T=(1/β)P,H1,H2},同时保存主密钥:MSK={αP,β};
预处理子算法输入公钥PK,根据公钥PK产生n个群和上的元素集合并存储在列表L当中,其中其中attj为全局属性集合Ω当中任意的属性,j表示该属性的唯一索引号,e表示从加法循环群映射到乘法循环群的双线性映射,P为的一个生成元,H1为哈希函数将任意一串二进制数组映射为群中的元素,α为主密钥MSK当中的一个元素,ri为一个随机的整数,其中i∈{1,2,...,n},然后基于拓展图技术产生一个常数c(ε),其中0<ε<1,利用常数c(ε)计算一个新的常数ne=c(ε)log2(p),其中p为群和的大素数阶,然后生成另外ne个群和上的元素集合并存储在列表L′当中,其中di为随机数,i∈{1,2,...,ne}。
3.根据权利要求1所述的抗密钥暴露属性加密的SDN跨域访问控制方法,其特征在于:所述私钥生成算法的流程为:首先输入公钥PK、主密钥MSK、一个属性集合S以及一个MAC地址AMAC,其次选择一个随机数r∈Zp,然后计算D=((α+rH2(AMAC))/β)P,对于任意一个属性attj∈S选择一个随机数rj∈Zp并计算Dj=(rP)·(rjH1(attj))和D′j=rjP,最后输出关于属性集合S的私钥:
4.根据权利要求1所述的抗密钥暴露属性加密的SDN跨域访问控制方法,其特征在于:所述预处理子算法和元组生成子算法共同组成预计算算法;
变量定义:Y代表访问树Γ的叶节点集合,Ux代表子树Γx包含的属性的集合,Sx代表节点x的子节点集合,S′x代表节点x的子节点索引集合,c(ε)代表ε拓展图常数;
4.1预处理子算法:
1)生成n个随机数r1,r2,…,rn∈Zp;
2)对于计算riP以及
3)生成一张空列表L,对于将添加到列表L当中;
4)计算ne=c(ε)log2(p)并生成ne个随机数
5)对于计算diP以及
6)生成一张空列表L′,对于将添加到列表L′当中;
7)随机选择di,初始化参数t=di、T2=diP以及
4.2元组生成子算法:
元组生成算法输入一个访问树Γ,输出与访问树Γ相关的两个元组Tuple1和Tuple2;该算法由A1和A2两个算法组成,算法执行流程如下:
(1)对于访问树Γ的根节点,执行A1算法:
1)在列表L′当中随机选择一组元素
2)重新赋值T2=T2+diP以及
3)随机提取一个集合使得|S|=k;
4)从列表L当中随机地抽取一组元素
5)声明并初始化变量如果e(P,P)αs是群的单位元则立即返回流程(1)当中的1)重新计算;
6)声明并初始化变量sP=T2+∑i∈SriP以及最终返回元组:
(2)对于访问树中的任意节点x,继续执行A2算法:
1)声明并初始化常量d=kx-2;
2)从列表L′中随机选择一组元素
3)重新赋值变量T2=T2+diP以及
4)随机提取一个集合使得|Sd|=k;
5)从列表L中随机选择一组元素
6)声明并初始化变量若cdP是群中的单位元则立即返回流程(2)当中的1)重新计算;
7)从列表L′当中随机选择一组元素
8)对于重新赋值变量T2=T2+diP;
9)对于重新赋值变量
10)随机选择一个集合使得|Su|=k;
11)在列表L当中随机选择一组元素
12)对于声明并赋值变量
13)对于声明并赋值变量返回元组:
5.根据权利要求1或4所述的抗密钥暴露属性加密的SDN跨域访问控制方法,其特征在于:所述快速加密算法流程如下:
为了生成消息明文M与访问树Γ相对应的密文,快速加密算法需要对访问树Γ当中任意一个节点x产生一个次数为kx-1的随机多项式,为了减小加密的计算负担,利用预计算算法来生成每个节点的随机多项式,根据访问树Γ的结构,采用一种自上而下的迭代方式:
对于访问树的根节点R,快速加密算法调用A1算法获取元组Tuple1:
如果kR-1≠0,则继续调用A2算法获取元组Tuple2:
利用获取的以上两个元组,同时声明并初始化常量dR=kR-2,然后定义一个次数为dR的多项式:
随后,关于根节点R的完整多项式为:
qR(X)=r(X)·X+s
对于 计算:
对于访问树Γ当中的任意节点x,调用A2算法获取元组Tuple2:
声明并初始化常量dx=kx-2,利用上式中的系数ci定义一个次数为dx的多项式:
然后生成关于节点x的完整多项式:
qx(X)=r(X)·X+qparent(x)(index(x))
对于 计算:
因此对于任意的叶节点x,快速加密算法通过迭代得到了qx(0)P和qx(0)H1(att(x)),最终生成如下的密文:
6.根据权利要求1所述的抗密钥暴露属性加密的SDN跨域访问控制方法,其特征在于:所述解密算法流程如下:
(1)首先定义一个迭代函数DecryptNode,该函数的输入为密文私钥以及访问树Γ当中的一个节点x,该算法的迭代过程如下:
如果x是叶节点,则令atti=att(x)并进行如下的判断与计算:
1)若atti∈S则计算并输出以下结果:
2)若则输出以下结果表示放弃该节点的计算:
DecryptNode(CT,SK,x)=⊥
如果x是非叶节点,那么对于其任意子节点z调用函数DecryptNode并记其返回结果为Fz,然后进行如下的判断与计算:
3)判断是否存在关于节点x的包含kx子节点的集合Sx,使得成立,若不存在,那么输出以下结果表示放弃该节点的计算:
4)若存在集合Sx,计算并输出以下结果:
(2)进一步定义解密算法,分为两步:
1)首先从访问树Γ的叶节点开始调用函数DecyrptNode,如果属性集合S满足访问树Γ,就能够通过层层迭代获取隐藏在根节点R当中的秘密,记为:
2)通过如下计算就可以得到消息明文M:
如果属性集合S不能满足访问树Γ,那么将无法在多项式时间内恢复出根节点R当中的秘密,并且如果当前的MAC地址信息与私钥SK当中的MAC地址信息不吻合,即使恢复出根节点R当中的秘密也无法通过进一步的计算得到消息明文M,因此1)和2))只要任何一步不满足条件,都将导致解密算法退出执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811494298.0A CN109714157B (zh) | 2018-12-07 | 2018-12-07 | 一种抗密钥暴露属性加密的sdn跨域访问控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811494298.0A CN109714157B (zh) | 2018-12-07 | 2018-12-07 | 一种抗密钥暴露属性加密的sdn跨域访问控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109714157A true CN109714157A (zh) | 2019-05-03 |
CN109714157B CN109714157B (zh) | 2021-12-14 |
Family
ID=66254009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811494298.0A Active CN109714157B (zh) | 2018-12-07 | 2018-12-07 | 一种抗密钥暴露属性加密的sdn跨域访问控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109714157B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110933033A (zh) * | 2019-10-27 | 2020-03-27 | 西安电子科技大学 | 智慧城市环境下多物联网域的跨域访问控制方法 |
CN111641501A (zh) * | 2020-04-27 | 2020-09-08 | 国网山东省电力公司 | 一种去双线性对的属性加密方法 |
CN112866301A (zh) * | 2021-04-25 | 2021-05-28 | 南京联成科技发展股份有限公司 | 一种用于管控中心向集中管控传输数据的加密方法 |
CN112994880A (zh) * | 2021-03-19 | 2021-06-18 | 深圳大学 | 一种密文策略属性基加密方法、装置及电子设备 |
CN116684066A (zh) * | 2023-07-06 | 2023-09-01 | 北京隐算科技有限公司 | 一种支持整数运算的同态加密方法、系统及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618729A (zh) * | 2013-09-03 | 2014-03-05 | 南京邮电大学 | 一种应用于云存储的多机构层次化属性基加密方法 |
WO2016202397A1 (en) * | 2015-06-18 | 2016-12-22 | Huawei Technologies Co., Ltd. | Dns based pki system |
US20170093825A1 (en) * | 2015-09-30 | 2017-03-30 | Electronics And Telecommunications Research Institute | Sdn controller and method of identifying switch thereof |
US20170339134A1 (en) * | 2016-05-20 | 2017-11-23 | Avaya Inc. | Certificate-based Dual Authentication for Openflow Enabled Switches |
CN107396350A (zh) * | 2017-07-12 | 2017-11-24 | 西安电子科技大学 | 基于sdn‑5g网络架构的sdn组件间安全保护方法 |
CN107920350A (zh) * | 2017-11-13 | 2018-04-17 | 西安电子科技大学 | 一种基于sdn的隐私保护切换认证方法、5g异构网络 |
US20180324258A1 (en) * | 2015-11-04 | 2018-11-08 | Entit Software Llc | Direct connection limitation based on a period of time |
-
2018
- 2018-12-07 CN CN201811494298.0A patent/CN109714157B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618729A (zh) * | 2013-09-03 | 2014-03-05 | 南京邮电大学 | 一种应用于云存储的多机构层次化属性基加密方法 |
WO2016202397A1 (en) * | 2015-06-18 | 2016-12-22 | Huawei Technologies Co., Ltd. | Dns based pki system |
US20170093825A1 (en) * | 2015-09-30 | 2017-03-30 | Electronics And Telecommunications Research Institute | Sdn controller and method of identifying switch thereof |
US20180324258A1 (en) * | 2015-11-04 | 2018-11-08 | Entit Software Llc | Direct connection limitation based on a period of time |
US20170339134A1 (en) * | 2016-05-20 | 2017-11-23 | Avaya Inc. | Certificate-based Dual Authentication for Openflow Enabled Switches |
CN107396350A (zh) * | 2017-07-12 | 2017-11-24 | 西安电子科技大学 | 基于sdn‑5g网络架构的sdn组件间安全保护方法 |
CN107920350A (zh) * | 2017-11-13 | 2018-04-17 | 西安电子科技大学 | 一种基于sdn的隐私保护切换认证方法、5g异构网络 |
Non-Patent Citations (3)
Title |
---|
LIN G等: "A collaborative key management protocol in cipertext policy attribute-based encryption for cloud data sharing", 《IEEE》 * |
刘洋: "SDN安全通信架构关键技术研究", 《中国优秀硕士学位论文期刊全文数据库》 * |
胡彦杰: "基于SDN网络的共享数据安全的研究", 《中国优秀硕士学位论文期刊全文数据库》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110933033A (zh) * | 2019-10-27 | 2020-03-27 | 西安电子科技大学 | 智慧城市环境下多物联网域的跨域访问控制方法 |
CN111641501A (zh) * | 2020-04-27 | 2020-09-08 | 国网山东省电力公司 | 一种去双线性对的属性加密方法 |
CN111641501B (zh) * | 2020-04-27 | 2022-04-19 | 国网山东省电力公司 | 一种去双线性对的属性加密方法 |
CN112994880A (zh) * | 2021-03-19 | 2021-06-18 | 深圳大学 | 一种密文策略属性基加密方法、装置及电子设备 |
CN112994880B (zh) * | 2021-03-19 | 2022-11-01 | 深圳大学 | 一种密文策略属性基加密方法、装置及电子设备 |
CN112866301A (zh) * | 2021-04-25 | 2021-05-28 | 南京联成科技发展股份有限公司 | 一种用于管控中心向集中管控传输数据的加密方法 |
CN116684066A (zh) * | 2023-07-06 | 2023-09-01 | 北京隐算科技有限公司 | 一种支持整数运算的同态加密方法、系统及存储介质 |
CN116684066B (zh) * | 2023-07-06 | 2023-10-20 | 北京隐算科技有限公司 | 一种支持整数运算的同态加密方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109714157B (zh) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109714157A (zh) | 一种抗密钥暴露属性加密的sdn跨域访问控制方法 | |
CN107864139B (zh) | 一种基于动态规则的密码学属性基访问控制方法与系统 | |
Paulet et al. | Privacy-preserving and content-protecting location based queries | |
Li et al. | Enabling fine-grained multi-keyword search supporting classified sub-dictionaries over encrypted cloud data | |
Miao et al. | m 2-ABKS: Attribute-based multi-keyword search over encrypted personal health records in multi-owner setting | |
CN104038349B (zh) | 一种基于kp‑abe的有效可验证的公钥可搜索加密方法 | |
CN105610793B (zh) | 一种外包数据加密存储与密文查询系统及其应用方法 | |
CN105635135B (zh) | 一种基于属性集及关系谓词的加密系统及访问控制方法 | |
CN104283853B (zh) | 一种提高信息安全性的方法、终端设备及网络设备 | |
CN107689947A (zh) | 一种数据处理的方法和装置 | |
Burkhalter et al. | {TimeCrypt}: Encrypted data stream processing at scale with cryptographic access control | |
CN108092766B (zh) | 一种密文搜索权限验证方法及其系统 | |
CN103618729A (zh) | 一种应用于云存储的多机构层次化属性基加密方法 | |
CN110866135B (zh) | 一种基于响应长度隐藏的k-NN图像检索方法及系统 | |
CN104967693A (zh) | 面向云存储的基于全同态密码技术的文档相似度计算方法 | |
Liu et al. | Offline/online attribute‐based encryption with verifiable outsourced decryption | |
Huang et al. | Privacy-preserving spatio-temporal keyword search for outsourced location-based services | |
CN111600711A (zh) | 一种细粒度移动访问的加密、解密系统及加密、解密方法 | |
CN109981265A (zh) | 一种基于身份的不使用双线性对的密文等值判定方法 | |
CN108600174A (zh) | 一种大型合作网络的访问控制机制及其实现方法 | |
CN106790311A (zh) | 云服务器存储完整性检测方法及系统 | |
WO2018070932A1 (en) | System and method for querying an encrypted database for documents satisfying an expressive keyword access structure | |
CN111147508A (zh) | 一种抗关键词猜测攻击的可搜索属性基加密方法 | |
Qin et al. | A privacy-preserving blockchain-based tracing model for virus-infected people in cloud | |
CN105790929B (zh) | 一种基于规则冗余消除的加密环境中访问控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |