[发明专利]一种抗密钥暴露属性加密的SDN跨域访问控制方法有效
申请号: | 201811494298.0 | 申请日: | 2018-12-07 |
公开(公告)号: | CN109714157B | 公开(公告)日: | 2021-12-14 |
发明(设计)人: | 周波;顾振飞;张帅华 | 申请(专利权)人: | 南京信息职业技术学院 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L29/08 |
代理公司: | 南京天翼专利代理有限责任公司 32112 | 代理人: | 汤志武 |
地址: | 210043 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 密钥 暴露 属性 加密 sdn 访问 控制 方法 | ||
1.一种抗密钥暴露属性加密的SDN跨域访问控制方法,其特征在于:基于属性权威、SDN控制器、加密者和解密者四部分构成的控制系统,属性权威和SDN控制器位于控制层,加密者和解密者位于数据层,属性权威是一个可信的权威机构,负责所有属性的认证以及公钥、私钥的发布;SDN控制器负责收集、存储和管理SDN流表、路由以及数据量信息,SDN采用多控制设置,将SDN划分为多个SDN域,每一个域内部署唯一的SDN控制器,每个SDN控制器管理各自域内的重要信息,同时负责与其他域的SDN控制器交互;加密者是数据的初始拥有者,包括路由器、服务器、PC机和交换机构成的用户或SDN设备,用户或SDN设备能够上传自己的数据并根据自己的意愿或需求自由制定相应的访问策略;解密者是试图获取SDN控制器内信息的用户或者设备,其身份用一个属性集合来表示,解密者拥有一个与其属性集合相对应的私钥,并通过私钥来解密密文,解密者包括路由器、loT传感器、手机和交换机;包括以下步骤:
第一步:启动访问控制系统,属性权威调用初始化算法,输入一个安全参数k,生成公钥PK和主密钥MSK,公钥PK向全网公开,主密钥MSK由属性权威秘密保存;初始化算法的流程为:输入全局的属性集合Ω={att1,att2,att3,…,attn}以及一个安全参数k,其中attj是本发明中的解密者的任意属性,j∈{1,2,...,n}是该属性的唯一索引号,假设加法循环群和乘法循环群是阶为大素数p的双线性群,其中大素数p的比特位数由参数k决定,令P是的一个生成元,是群到群的双线性映射,然后定义一个拉格朗日函数使得一个索引集合S当中的任意一个索引i满足定义两个哈希函数和其中H1将任意一串二进制数组映射为群中的元素,H1将48bit的MAC地址映射为Zp上的元素,选择两个随机数α,β∈Zp,最后生成公钥:PK={p,P,e,Ω,e(P,P)α,H=βP,T=(1/β)P,H1,H2},同时保存主密钥:MSK={αP,β};
第二步:解密者向属性权威发起私钥生成请求,输入自己唯一的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;元组生成算法输入一个访问树Γ,输出与访问树Γ相关的两个元组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)对于声明并赋值变量返回元组:
第五步:加密者调用快速加密算法,输入一个访问树Γ、公钥PK以及消息明文M,然后调用预处理子算法,在不执行任何指数运算的情况下通过元组Tuple1和Tuple2快速的生成关于消息明文M以及访问树Γ的密文CT,最后将密文CT上传至域内的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)),最终生成如下的密文:
第六步:解密者向当前域的SDN控制器发送关于消息明文M的跨域访问请求,SDN控制器通过SDN域间传输交互获取密文CT,然后转发给解密者;
第七步:解密者调用解密算法,输入私钥SK、自己的MAC地址AMAC以及获取的密文CT,如果解密者的属性集合S满足密文CT当中的访问树Γ,而且其MAC地址AMAC与私钥SK当中嵌入的MAC地址信息一致,才能获取消息明文M,反之则无法获取任何有用的信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京信息职业技术学院,未经南京信息职业技术学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811494298.0/1.html,转载请声明来源钻瓜专利网。