1.一种基于可认证层次化属性加密的SDN信息访问控制方法,其特征在于:基于属性权威、SDN控制器、加密组件和解密组件四部分构成的控制系统;属性权威采用等级式结构,位于控制层,包括根属性权威和局部属性权威,根属性权威是一个可信的权威机构,负责全局属性的注册以及公钥的发布,是所有局部属性权威的起点;局部属性权威负责发布与某一类属性有关的私钥,这些属性构成的集合是全局属性集合的真子集,局部属性权威是一个半可信的机构,尽管可以发布私钥并认证私钥的合法性,但是有可能将自己的私钥泄露给他人;SDN控制器位于控制层,负责收集、存储和管理包括SDN流表、路由以及数据量在内的重要信息,该重要信息包含各类用户或者设备的敏感信息,每个SDN控制器存储和管理各自域内的重要信息,同时负责与其他域的SDN控制器交互;加密组件位于数据层,负责将收集到的用户或者其他网络设备数据传递到SDN控制层,传递之前,为不同的数据制定相应的访问策略并对数据进行加密操作;解密组件位于管理层,负责为不同的网络应用获取有用的数据,解密组件用不同的属性集合来描述不同网络应用的身份,并拥有一个与该属性集合相对应的私钥,只有私钥来自于合法机构,并且其中嵌入的属性集合满足访问策略,就能够成功获取数据;
包括以下步骤:
第一步:启动访问控制系统,利用属性权威注册SDN所有用户以及设备属性,构建全局属性集合Ω={att1,att2,att3,…,attN},其中任意一个属性attj为用户所具备的某种特征,j∈{1,2,...,n}是该属性的唯一索引号,构建一个与全局属性集合Ω相对应的全局傀儡属性集合Ω′={attN+1,attN+2,...,att2N-1},该属性集合中所有属性都不是真实的用户属性,而是为了方便后续计算而产生的属性,然后输入安全参数λ,根属性权威调用初始化算法生成公钥PK和根密钥RSK;
第二步:SDN控制层中某机构申请成为局部属性权威,如果是向根属性权威申请成为一级局部属性权威,设其唯一的身份识别为id1,所管理的真实属性集合为Ω1,real,该集合满足Ω1,real∈Ω,那么根属性权威将其属性集合设置为Ω1=Ω1,real∪Ω′,然后调用局部属性权威授权算法生成私钥SK1,将属性集合Ω1和唯一身份识别id1嵌入到私钥当中;
第三步:如果是申请成为等级i(i≥2)的局部属性权威,假设等级i属性权威的唯一身份识别为idi,其上一级局部属性权威私钥是SKi-1,假设该局部属性权威管理的真实属性集合为Ωi,real,那么等级i-1的局部属性权威将其属性集合设置为Ωi=Ωi,real∪Ω′,然后调用局部属性权威授权算法生成私钥SKi,将属性集合Ωi和唯一身份识别idi嵌入到私钥当中;
第四步:SDN应用层中某个应用的加密组件请求等级i的局部属性权威进行授权,假设该应用的唯一身份识别为idi+1,该解密组件向局部属性权威提交自己的真实属性集合Sreal,该局部属性权威将其属性集合设置为S=Sreal∪Ω′,如果满足 那么调用用户授权算法生成该应用的用户私钥SKu,将属性集合S和唯一身份识别idi+1嵌入到用户私钥当中;
第五步:SDN数据层当中的某个或者某些设备产生了信息并以消息明文M的形式存在,其加密组件制定了相应的访问策略 其中 为访问策略当中所包含属性的集合,t为访问策略的阈值,满足1≤t≤|Ω|,紧接着产生一个傀儡属性集合 使得 并且然后调用加密算法生成定长的消息密文CT={r,C0,C1,C2,C3},其
中r,C0,C1,C2,C3均为消息密文CT的组件;
第六步:SDN应用层的某个应用向SDN控制层请求访问关于数据层信息的消息明文M,此时控制器将关于该信息的消息密文CT发送给该应用;
第七步:关于该应用的解密组件调用解密算法,输入公钥PK、私钥SK、以及刚刚获取的消息密文CT,验证消息密文CT是否合法,若消息密文CT非法则返回符号⊥终止解密,否则进入下一步;
第八步:解密组件尝试通过用户私钥SKu以及消息密文CT计算得到参数D1以及D2,如果用户私钥当中嵌入的属性集合Sreal满足 才能得到参数D1和D2,并且通过参数D1和D2计算得到参数 其中e表示双线性映射;
第九步:解密组件与发布其私钥相关的等级i局部属性权威协作,利用双向安全计算计算得到参数 其中idi+1是用户的唯一身份识别,si+1是用户产生的秘密随机数,H是一个抗碰撞的哈希函数,它将idi+1与si+1的串联结果idi+1||si+1映射为群 中元素,如果该解密组件的唯一身份识别不正确,则不会得到正确的参数Ti,所以不会通过认证,以此类推,用户与所有涉及其私钥生成的属性权威互动,只有所有的局部属性权威的唯一身份识别得到认证,才能通过迭代最终生成参数 并计算获取消息明文M。
2.根据权利要求1所述的基于可认证层次化属性加密的SDN信息访问控制方,其特征在于:所述初始化算法是输入一个安全参数λ以及全局的真实属性集合Ω,输出公钥PK以及根密钥RSK,其中公钥PK向全网公开,而根密钥由属性权威保存;算法过程如下:
1)定义全局的真实属性集合Ω={att1,att2,…,attN},其中任意属性attj是关于系统中用户的某种特征,j∈{1,2,...,N}是该属性的唯一索引号,其次构建全局傀儡属性集合Ω′={attN+1,attN+2,…,att2N-1},其中所有属性都不是真实的用户属性,而是为了方便后续的计算而设置的,对于任意属性attj∈Ω∪Ω′,定义index(attj)返回该属性的索引j;
2)定义一个从加法循环群 到乘法循环群 的双线性映射 设g是群 的
一个生成元,选择位于群 上的一系列随机数g2,h1,h2,…,h2N,δ1,δ2, 以及整数循环群上的秘密随机数 然后选择一个抗碰撞的哈希函数 该函数将任意长度的二进制字符串映射为整数循环群 上的某一个元素,随后计算生成元素g1=gx和Z=e(g1,g2);
3)输出根密钥RSK=x以及公钥PK={g,g1,g2,Z,h0,h1,…,h2N-1,δ1,δ2,δ3,H1}。
3.根据权利要求1所述的基于可认证层次化属性加密的SDN信息访问控制方,其特征在于:所述局部属性权威授权算法是一个迭代算法,如果是初次执行,算法输入一个局部的真实属性集合Ω1,real以及根密钥RSK,并输出一级局部属性权威私钥SK1,否则输入一个局部的真实属性权威Ωi+1,real以及一个属性权威的私钥SKi,其中i>1,最终输出一个新的局部属性权威私钥SKi;算法过程如下:如果是一级局部属性权威,设其唯一的身份识别为id1,那么根属性权威执行以下计算以授权:
1)选择一个次数为N-1的随机多项式q,使得q(0)=RSK;
2)一级局部属性权威选择一个秘密数s1∈{0,1}*作为主密钥,并发送H(id1||s1)给根属性权威,其中id1||s1表示id1与s1的串联结果;
3)如果某一级局部属性权威管理的真实属性集合是 那么该一级局部属性权威的属性集合就是Ω1=Ω1,real∪Ω′满足,那么对于每个属性attj∈Ω1选择一个整数群Zp上的随机数r1,j∈Zp,然后通过计算产生三种元素: 以及 最终生成以下私钥组件:
4)输出一级局部属性权威的私钥
如果是等级i(i≥2)的局部属性权威,假设其唯一的身份识别为idi,其上一级局部属性权威私钥是 其中 那么执行以下计算以授权:
1)等级i的局部属性权威选择一个秘密数si∈Zp作为主密钥,并发送H(idi||si)给等级i-1的局部属性权威;
2)设该局部属性权威管理的真实属性集合是Ωi,real,那么其属性集合就是Ωi=Ωi,real∪Ω′,该集合满足 对于任意属性attj∈Ωi,选择一个随机数ri,j∈Zp并通过计算产生三种元素:最后生成以下的私钥组件:
3)输出该局部属性权威的私钥
4.根据权利要求1所述的基于可认证层次化属性加密的SDN信息访问控制方,其特征在于:所述用户授权算法是输入一个真实的属性集合Sreal以及一个局部属性权威私钥SKi,最终输出用户私钥SKu;算法过程如下:如果某个用户向等级i的局部属性权威申请获取私钥,假设其唯一的身份识别为idi+1,那么则执行以下操作:
1)用户选择一个秘密数si+1∈Zp作为主密钥,并发送H(idi+1||si+1)给等级i的局部属性权威;
2)如果用户的真实属性集合为Sreal,那么令该用户的属性集合为S=Sreal∪Ω′,该集合必须满足 才可以通过等级i的局部属性权威申请授权,对于任意属性attj∈S,选择一个随机数ri+1,j∈Zp并通过计算产生三种元素:最终生成以下的私钥组件:
3)输出关于新的局部属性权威或用户的私钥
5.根据权利要求1所述的基于可认证层次化属性加密的SDN信息访问控制方,其特征在于:所述加密算法是输入一个访问策略 消息明文M以及公钥PK,最终输出定长的消息密文CT;算法过程如下:
1)定义一个属性集合 然后生成一个访问策略 其中 并且1≤t≤|Ω|;
2)产生一个傀儡属性集合 使得 并且
3)选择两个随机数s,r∈Zp并利用公钥PK和消息明文M计算产生三种密文组件:C0=M·Zs,C1=gs,和 随后计算得到 并利用c产生第四个密文组件 最终生成定长的密文CT={r,C0,C1,C2,C3}。
6.根据权利要求1所述的基于可认证层次化属性加密的SDN信息访问控制方法,其特征在于:所述解密算法是输入公钥PK、消息密文CT以及用户私钥SKu,如果私钥SKu当中嵌入的属性集合Sreal满足消息密文CT当中嵌入的访问策略 那么最终输出正确的消息明文M;算法过程如下:
1)获取消息密文CT后,利用公钥PK以及消息密文组件C2和C3验证以下等式是否成立:
如果上式全部成立则验证通过,用户继续完成解密操作,否则认为该密文是非法密文并返回符号⊥终止解密;
2)执行如下计算得到参数D1和D2:
其中Sr′eal是对应于用户真实属性集合Sreal的属性索引号集合, 是对应于傀儡属性集合 的属性索引号集合, 为属性索引号j在索引集合 当中的拉格朗日系数;
3)执行以下计算得到参数Ti+1:
4)计算得到参数 其中idi+1是用户的唯一身份识别,si+1是用户产生的秘密随机数,H是一个抗碰撞的哈希函数,它将idi+1与si+1的串联结果idi+1||si+1映射为群 中元素,该计算由用户与i级局部属性权威协作完成,为了防止计算过程中一级局部属性权威的主秘密泄露,采用双向安全计算技术实现参数Ti的计算;
5)以此类推,用户与所有涉及其私钥生成的属性权威互动生成参数
6)最终执行以下计算获取正确的消息明文M:
只有私钥组件当中嵌入的属性集合Sreal满足 时,才能成功获取参数Ti+1,相反任何不满足该条件的私钥都无法获取Ti+1,此外,如果私钥并不是从授权机构获得,即使拥有参数Ti+1也无法获取参数T0,从而无法得到任何有关消息密文CT的信息。