一种实现细粒度属性撤销的属性基重加密方法与流程

文档序号:16060804发布日期:2018-11-24 12:09阅读:223来源:国知局

本发明涉及一种实现细粒度属性撤销的属性基重加密方法。

背景技术

云计算等大数据应用的蓬勃发展,解决了当前海量信息和数据的计算与存储问题;云计算时代的到来表明信息技术正飞速走向规模化、集约化和专业化的道路。但云计算存在安全边界不固定,数据存储使用权限分离,容易泄露用户隐私信息等问题;因此,如何对数据进行机密性保护并实现匿名身份认证和控制访问功能成为了非常现实和急需解决的问题。基于属性的(属性基)加密方案,利用属性对用户进行细粒度划分;并使用特定访问策略对数据进行加密,只有用户属性满足访问策略,才能成功解密密文。因此,基于属性的加密方案特别适用于在保证云平台用户隐私的前提下,对数据进行机密性保护。在实际应用环境中,不可避免的存在属性到期、密钥泄露、属性权限变更等情况;而现有大多数基于属性的加密方法,对某一用户的属性权限进行撤销时,往往会影响系统中拥有该属性的其他用户,从而难以高效细粒度地对用户的属性权限进行撤销;导致在用户属性权限发生变更时,无法及时更新用户的访问权限,确保其不能使用原有密钥解密密文。

王鹏翩等人(一种支持完全细粒度属性撤销的cp-abe方案[j].软件学报,2012,23(10):2805-2816)于2012年提出了支持完全细粒度属性撤销的cp-abe方法;该方法利用合数阶双线性群,引入双系统加密和二叉树的思想,能够实现细粒度属性撤销的功能;该方法包括初始化、密钥生成、加密、解密四个阶段;当用户属性权限发生撤销时,加密方利用重加密算法对已有密文进行处理,使得属性权限被撤销的用户无法利用原有密钥解密得到密文对应的文件。但是,该方法解密过程需要进行大量耗时的合数阶双线性对运算,效率不高;此外,该方法产生的密文长度较长,达到了(3|b|+2r+2)|g1|bit,其中,|b|表示访问策略中声明的属性的数量,r表示撤销事件的数量,|g1|表示椭圆曲线上交换群中元素的长度,极大地增加了系统的通信负担,因此实用性较差。

shi等人(directlyrevocablekey-policyattribute-basedencryptionwithverifiableciphertextdelegation[j].informationsciences,2015,295:221-231)基于多线性映射提出了一种支持属性直接撤销的基于密钥策略的属性基加密方法;但该方法只能实现用户全部属性的撤销,撤销粒度较粗;且该方法在加密、重加密、解密过程需要进行大量多线性对运算,属性撤销效率较低;因此,并不适用于计算资源受限的环境。此外,解密策略与用户密钥绑定,属性与密文绑定的方式限制了该方法的灵活性和实用性。



技术实现要素:

本发明的目的是提供一种实现细粒度属性撤销的属性基重加密方法,该方法能够高效地撤销用户的属性访问权限,安全性更高。

本发明实现其发明目的所采用的技术方案是,一种实现细粒度属性撤销的属性基重加密方法,其步骤是:

a、系统初始化

a1、系统中心sa选取长度为160bit的素数q,构建q阶椭圆曲线上的循环群g和q阶基域循环群y;且q阶椭圆曲线上的循环群g中的元素和q阶基域循环群y中的元素之间存在双线性映射关系,即y=e(g1,g2);其中,g1表示q阶椭圆曲线上的循环群g中的一个元素,g2表示q阶椭圆曲线上的循环群g中的另一个元素,y为q阶基域循环群y中的元素,e(·,·)表示双线性映射运算;

a2、系统中心sa选取小于素数q且非0的两个随机数,分别作为系统第一密钥a和系统第二密钥b;再选取q阶椭圆曲线上的循环群g中的三个随机元素分别作为系统第三密钥c,系统第四密钥d和系统第一公钥g;系统中心sa利用系统第一公钥g进行双线性映射运算,并将所得结果的系统第二密钥b次幂,作为系统第二公钥b,b=e(g,g)^b;系统中心sa对系统第三密钥c进行系统第二密钥b次倍点运算,得到系统第三公钥c,c=cb

a3、系统中心sa为系统中的第p个用户idp,选取小于素数q且非0的随机数作为其身份标识λp;并通过安全信道将系统第二密钥b和用户身份标识λp发送给相应用户idp;系统中心sa将系统第一密钥a和系统第四密钥d发送给属性授权机构aa;

a4、系统存在属性子集合w,w={w1,…,wj,…,w|w|},其中,wj为属性子集合w中的第j个属性,|w|为属性子集合w中属性wj的总数;属性授权中心aa拥有属性子集合w中属性的密钥分发和管理权限;属性授权机构aa为属性子集合w中的任一属性wj,选取小于素数q且非0的随机数作为该属性wj的私钥tj;对系统第一公钥g进行属性wj的私钥tj次倍点运算,得到属性wj的属性公钥tj,

a5、属性授权中心aa公开维护一个属性撤销列表r,r={r1,r2,…,rj,…,r|w|};其中,rj为属性子集合w中第j个属性wj的属性撤销子列表;初始化时,属性授权中心aa利用系统第一密钥a,系统第二密钥b,系统第三密钥c,系统第四密钥d和属性wj的私钥tj,计算出属性wj的初始撤销信息lj,并将属性wj的初始撤销信息lj加入属性wj的属性撤销子列表rj;其中,×表示模乘运算,·表示椭圆曲线中的点加运算;

b、加密

加密方选取小于素数q且非0的第一加密随机数s和第二加密随机数r,并利用第一加密随机数s,第二加密随机数r和属性子集合w对文件m进行加密,得到文件m的密文ct,ct={c1,c2,{c3,j,c4,j}j∈[1,|w|]};其中,c1为文件m的第一子密文,c2为文件m的第二子密文,c3,j为文件m对应于属性wj的第三子密文,c4,j为文件m对应于属性wj的第四子密文;

c、重加密

c1、用户撤销信息

用户idp拥有属性子集合w中的属性wj访问权限,当用户idp对属性wj的访问权限被撤销时,将用户idp记为被撤销用户idrev;属性授权中心aa利用被撤销用户idrev的身份标识λrev,系统第一密钥a,系统第二密钥b,系统第三密钥c,系统第四密钥d,属性wj的私钥tj和系统第一公钥g,计算出属性wj相对于被撤销用户idrev的撤销信息lj,rev,

c2、首次重加密

若属性wj的属性撤销子列表rj中不包含已撤销用户时,将被撤销用户idrev命名为已撤销用户idn,令属性wj相对于被撤销用户idrev的撤销信息lj,rev等于属性wj相对于已撤销用户idn的撤销信息lj,n;并将该属性wj相对于已撤销用户idn的撤销信息lj,n,加入属性wj的属性撤销子列表rj;其中,n为属性撤销子列表rj中已撤销用户的序号;

加密方对文件m对应的密文ct进行如下重加密:

加密方选取小于素数q且非0的随机数u,并结合b步的第二加密随机数r,计算出:文件m对应于属性wj的第三重加密子密文c′3,j,文件m对应于属性wj的第四重加密子密文c′4,j,文件m对应于属性wj中已撤销用户idn的第三撤销子密文c′3,j,n,文件m对应于属性wj中已撤销用户idn的第四撤销子密文c′4,j,n,

然后,加密方利用文件m对应于属性wj的第三重加密子密文c′3,j和文件m对应于属性wj的第四重加密子密文c′4,j,分别更新文件m对应于属性wj的第三子密文c3,j和文件m对应于属性wj的第四子密文c4,j;并将文件m对应于属性wj中已撤销用户idn的第三撤销子密文c′3,j,n和文件m对应于属性wj中已撤销用户idn的第四撤销子密文c′4,j,n添加到文件m的密文ct的后面,得到重加密更新后的文件m的密文ct={c1,c2,{c3,j,c4,j}j∈[1,|w|],,{c3,j,n,c4,j,n}j∈[1,|w|],n∈[1,n]};其中,n为属性wj的属性撤销子列表rj中已撤销用户idn的个数;

c3、后续重加密

若属性wj的属性撤销子列表rj中包含其它的已撤销用户idn时,加密方对文件m的密文ct进行如下重加密:

加密方选取小于素数q且非0的随机数v,加密方计算出:文件m对应于属性wj中已撤销用户idn的第三再次更新撤销子密文文件m对应于属性wj中已撤销用户idn的第四再次撤销子密文并利用文件m对应于属性wj中已撤销用户idn的第三再次更新撤销子密文和文件m对应于属性wj中已撤销用户idn的第四再次更新撤销子密文分别更新文件m对应于属性wj中已撤销用户idn的第三撤销子密文c3,j,n和文件m对应于属性wj中已撤销用户idn的第四撤销子密文c4,j,n;得到重加密更新后的文件m的密文ct={c1,c2,{c3,j,c4,j}j∈[1,|w|],,{c3,j,n,c4,j,n}j∈[1,|w|],n∈[1,n]};

加密方计算出:文件m对应于属性wj中被撤销用户idrev的第三撤销子密文c′3,j,rev,和文件m对应于属性wj中被撤销用户idrev的第四撤销子密文c′4,j,rev,

随后,将被撤销用户idrev更名为已撤销用户idn,并将已撤销用户idn加入属性wj的属性撤销子列表rj,即该已撤销用户idn的序号n等于属性撤销子列表rj中用户的个数n;

令文件m对应于属性wj中被撤销用户idrev的第三撤销子密文c′3,j,rev等于文件m对应于属性wj中已撤销用户idn的第三撤销子密文c3,j,n,文件m对应于属性wj中被撤销用户idrev的第四撤销子密文c′4,j,rev等于文件m对应于属性wj中已撤销用户idn的第四撤销子密文c4,j,n;并将文件m对应于属性wj中已撤销用户idn的第三撤销子密文c3,j,n和文件m对应于属性wj中已撤销用户idn的第四撤销子密文c4,j,n添加到文件m对应密文ct的后面;得到重加密更新后,文件m对应的密文ct={c1,c2,{c3,j,c4,j}j∈[1,|w|],,{c3,j,n,c4,j,n}j∈[1,|w|],n∈[1,n]}。

进一步,本发明的b步骤中加密方利用第一加密随机数s,第二加密随机数r和属性子集合w对文件m进行加密,得到文件m的密文ct,ct={c1,c2,{c3,j,c4,j}j∈[1,|w|]}的具体做法是:

加密方利用第一加密随机数s,第二加密随机数r和系统第二公钥b,计算得到文件m的第一子密文c1,c1=m·b^(s×r);

加密方利用第一加密随机数s,第二加密随机数r和系统第一公钥g,计算得到文件m的第二子密文c2,c2=gs×r

加密方根据设定的解密门限值k,选取k-1次多项式记为f(x);其中,多项式f(x)的常数项值等于第一加密随机数s,多项式f(x)的其余各项的系数为加密方分别选取的小于素数q且非0的随机数;将属性wj作为自变量x,带入多项式f(x)求得的值即为属性wj的子秘密分享值sj;进而得到文件m对应于属性wj的第三子密文c3,j,和文件m对应于属性wj的第四子密文c4,j,

最后,将文件m的第一子密文c1、第二子密文c2、文件m对应于属性wj的第三子密文c3,j和文件m对应于属性wj的第四子密文c4,j依次串接,即得到文件m的密文ct,ct={c1,c2,{c3,j,c4,j}j∈[1,|w|]}。

与现有技术相比,本发明的有益成果是:

一、本发明方法通过引入属性撤销列表,当系统发生属性撤销时,加密方可以通过重加密算法只计算并更新已发生撤销的属性对应的子密文,而不对未发生撤销的属性对应的子密文重新进行计算,降低了计算复杂度,同时也不影响其他未发生撤销用户的访问权限,实现了细粒度的属性权限撤销。

二、本发明方法在重加密过程中,通过简单的倍点运算和模指数运算实现文件的重加密,避免了复杂、耗时的合数阶双线性运算和多线性运算,其计算复杂度低,撤销效率高。

下面结合具体实施方式对本发明做进一步的详细说明;

具体实施方式

实施例

本发明的一种具体实施方式是,一种实现细粒度属性撤销的属性基重加密方法,其步骤是:

a、系统初始化

a1、系统中心sa选取长度为160bit的素数q,构建q阶椭圆曲线上的循环群g和q阶基域循环群y;且q阶椭圆曲线上的循环群g中的元素和q阶基域循环群y中的元素之间存在双线性映射关系,即y=e(g1,g2);其中,g1表示q阶椭圆曲线上的循环群g中的一个元素,g2表示q阶椭圆曲线上的循环群g中的另一个元素,y为q阶基域循环群y中的元素,e(·,·)表示双线性映射运算;

a2、系统中心sa选取小于素数q且非0的两个随机数,分别作为系统第一密钥a和系统第二密钥b;再选取q阶椭圆曲线上的循环群g中的三个随机元素分别作为系统第三密钥c,系统第四密钥d和系统第一公钥g;系统中心sa利用系统第一公钥g进行双线性映射运算,并将所得结果的系统第二密钥b次幂,作为系统第二公钥b,b=e(g,g)^b;系统中心sa对系统第三密钥c进行系统第二密钥b次倍点运算,得到系统第三公钥c,c=cb

a3、系统中心sa为系统中的第p个用户idp,选取小于素数q且非0的随机数作为其身份标识λp;并通过安全信道将系统第二密钥b和用户身份标识λp发送给相应用户idp;系统中心sa将系统第一密钥a和系统第四密钥d发送给属性授权机构aa;

a4、系统存在属性子集合w,w={w1,…,wj,…,w|w|},其中,wj为属性子集合w中的第j个属性,|w|为属性子集合w中属性wj的总数;属性授权中心aa拥有属性子集合w中属性的密钥分发和管理权限;属性授权机构aa为属性子集合w中的任一属性wj,选取小于素数q且非0的随机数作为该属性wj的私钥tj;对系统第一公钥g进行属性wj的私钥tj次倍点运算,得到属性wj的属性公钥tj,

a5、属性授权中心aa公开维护一个属性撤销列表r,r={r1,r2,…,rj,…,r|w|};其中,rj为属性子集合w中第j个属性wj的属性撤销子列表;初始化时,属性授权中心aa利用系统第一密钥a,系统第二密钥b,系统第三密钥c,系统第四密钥d和属性wj的私钥tj,计算出属性wj的初始撤销信息lj,并将属性wj的初始撤销信息lj加入属性wj的属性撤销子列表rj;其中,×表示模乘运算,·表示椭圆曲线中的点加运算;

b、加密

加密方选取小于素数q且非0的第一加密随机数s和第二加密随机数r,并利用第一加密随机数s,第二加密随机数r和属性子集合w对文件m进行加密,得到文件m的密文ct,ct={c1,c2,{c3,j,c4,j}j∈[1,|w|]};其中,c1为文件m的第一子密文,c2为文件m的第二子密文,c3,j为文件m对应于属性wj的第三子密文,c4,j为文件m对应于属性wj的第四子密文;

c、重加密

c1、用户撤销信息

用户idp拥有属性子集合w中的属性wj访问权限,当用户idp对属性wj的访问权限被撤销时,将用户idp记为被撤销用户idrev;属性授权中心aa利用被撤销用户idrev的身份标识λrev,系统第一密钥a,系统第二密钥b,系统第三密钥c,系统第四密钥d,属性wj的私钥tj和系统第一公钥g,计算出属性wj相对于被撤销用户idrev的撤销信息lj,rev,

c2、首次重加密

若属性wj的属性撤销子列表rj中不包含已撤销用户时,将被撤销用户idrev命名为已撤销用户idn,令属性wj相对于被撤销用户idrev的撤销信息lj,rev等于属性wj相对于已撤销用户idn的撤销信息lj,n;并将该属性wj相对于已撤销用户idn的撤销信息lj,n,加入属性wj的属性撤销子列表rj;其中,n为属性撤销子列表rj中已撤销用户的序号;

加密方对文件m对应的密文ct进行如下重加密:

加密方选取小于素数q且非0的随机数u,并结合b步的第二加密随机数r,计算出:文件m对应于属性wj的第三重加密子密文c′3,j,文件m对应于属性wj的第四重加密子密文c′4,j,文件m对应于属性wj中已撤销用户idn的第三撤销子密文c′3,j,n,文件m对应于属性wj中已撤销用户idn的第四撤销子密文c′4,j,n,

然后,加密方利用文件m对应于属性wj的第三重加密子密文c′3,j和文件m对应于属性wj的第四重加密子密文c′4,j,分别更新文件m对应于属性wj的第三子密文c3,j和文件m对应于属性wj的第四子密文c4,j;并将文件m对应于属性wj中已撤销用户idn的第三撤销子密文c′3,j,n和文件m对应于属性wj中已撤销用户idn的第四撤销子密文c′4,j,n添加到文件m的密文ct的后面,得到重加密更新后的文件m的密文ct={c1,c2,{c3,j,c4,j}j∈[1,|w|],,{c3,j,n,c4,j,n}j∈[1,|w|],n∈[1,n]};其中,n为属性wj的属性撤销子列表rj中已撤销用户idn的个数;

c3、后续重加密

若属性wj的属性撤销子列表rj中包含其它的已撤销用户idn时,加密方对文件m的密文ct进行如下重加密:

加密方选取小于素数q且非0的随机数v,加密方计算出:文件m对应于属性wj中已撤销用户idn的第三再次更新撤销子密文文件m对应于属性wj中已撤销用户idn的第四再次撤销子密文并利用文件m对应于属性wj中已撤销用户idn的第三再次更新撤销子密文和文件m对应于属性wj中已撤销用户idn的第四再次更新撤销子密文分别更新文件m对应于属性wj中已撤销用户idn的第三撤销子密文c3,j,n和文件m对应于属性wj中已撤销用户idn的第四撤销子密文c4,j,n;得到重加密更新后的文件m的密文ct={c1,c2,{c3,j,c4,j}j∈[1,|w|],,{c3,j,n,c4,j,n}j∈[1,|w|],n∈[1,n]};

加密方计算出:文件m对应于属性wj中被撤销用户idrev的第三撤销子密文c′3,j,rev,和文件m对应于属性wj中被撤销用户idrev的第四撤销子密文c′4,j,rev,

随后,将被撤销用户idrev更名为已撤销用户idn,并将已撤销用户idn加入属性wj的属性撤销子列表rj,即该已撤销用户idn的序号n等于属性撤销子列表rj中用户的个数n;

令文件m对应于属性wj中被撤销用户idrev的第三撤销子密文c′3,j,rev等于文件m对应于属性wj中已撤销用户idn的第三撤销子密文c3,j,n,文件m对应于属性wj中被撤销用户idrev的第四撤销子密文c′4,j,rev等于文件m对应于属性wj中已撤销用户idn的第四撤销子密文c4,j,n;并将文件m对应于属性wj中已撤销用户idn的第三撤销子密文c3,j,n和文件m对应于属性wj中已撤销用户idn的第四撤销子密文c4,j,n添加到文件m对应密文ct的后面;得到重加密更新后,文件m对应的密文ct={c1,c2,{c3,j,c4,j}j∈[1,|w|],,{c3,j,n,c4,j,n}j∈[1,|w|],n∈[1,n]};

加密方计算出:文件m对应于属性wj中被撤销用户idrev的第三撤销子密文c′3,j,rev,和文件m对应于属性wj中被撤销用户idrev的第四撤销子密文c′4,j,rev,

随后,将被撤销用户idrev更名为已撤销用户idn,并将已撤销用户idn加入属性wj的属性撤销子列表rj,即该已撤销用户idn的序号n等于属性撤销子列表rj中用户的个数n;

令文件m对应于属性wj中被撤销用户idrev的第三撤销子密文c′3,j,rev等于文件m对应于属性wj中已撤销用户idn的第三撤销子密文c3,j,n,文件m对应于属性wj中被撤销用户idrev的第四撤销子密文c′4,j,rev等于文件m对应于属性wj中已撤销用户idn的第四撤销子密文c4,j,n;并将文件m对应于属性wj中已撤销用户idn的第三撤销子密文c3,j,n和文件m对应于属性wj中已撤销用户idn的第四撤销子密文c4,j,n添加到文件m对应密文ct的后面;得到重加密更新后,文件m对应的密文ct={c1,c2,{c3,j,c4,j}j∈[1,|w|],,{c3,j,n,c4,j,n}j∈[1,|w|],n∈[1,n]};

本例的b步骤中加密方利用第一加密随机数s,第二加密随机数r和属性子集合w对文件m进行加密,得到文件m的密文ct,ct={c1,c2,{c3,j,c4,j}j∈[1,|w|]}的具体做法是:

加密方利用第一加密随机数s,第二加密随机数r和系统第二公钥b,计算得到文件m的第一子密文c1,c1=m·b^(s×r);

加密方利用第一加密随机数s,第二加密随机数r和系统第一公钥g,计算得到文件m的第二子密文c2,c2=gs×r

加密方根据设定的解密门限值k,选取k-1次多项式记为f(x);其中,多项式f(x)的常数项值等于第一加密随机数s,多项式f(x)的其余各项的系数为加密方分别选取的小于素数q且非0的随机数;将属性wj作为自变量x,带入多项式f(x)求得的值即为属性wj的子秘密分享值sj;进而得到文件m对应于属性wj的第三子密文c3,j,和文件m对应于属性wj的第四子密文c4,j,

最后,将文件m的第一子密文c1、第二子密文c2、文件m对应于属性wj的第三子密文c3,j和文件m对应于属性wj的第四子密文c4,j依次串接,即得到文件m的密文ct,ct={c1,c2,{c3,j,c4,j}j∈[1,|w|]}。

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