首页> 中国专利> 一种具有高效用户撤销的密文策略属性基加密方法

一种具有高效用户撤销的密文策略属性基加密方法

摘要

本发明公开了一种具有高效用户撤销的密文策略属性基加密方法,包括以下几个步骤:(1)系统建立步骤;(2)用户群建立步骤;(3)用户私钥生成步骤;(4)加密步骤;(5)解密步骤;如果本系统中有用户撤销事件发生,还应该包括:(6)用户群升级步骤;(7)用户升级步骤;(8)重加密步骤。本加密方法具有撤销过程涉及用户少、撤销代价小、撤销效率高的优点,并且本加密方法安全性高,可以抵抗多类型用户之间的合谋攻击。鉴于属性基加密方案具有一次加密多人解密、细粒度访问控制特性,本加密方法可应用于云存储环境中。

著录项

  • 公开/公告号CN105049430A

    专利类型发明专利

  • 公开/公告日2015-11-11

    原文格式PDF

  • 申请/专利权人 河海大学;

    申请/专利号CN201510375470.0

  • 申请日2015-06-30

  • 分类号H04L29/06(20060101);

  • 代理机构32224 南京纵横知识产权代理有限公司;

  • 代理人董建林;汪庆朋

  • 地址 210024 江苏省南京市鼓楼区西康路1号

  • 入库时间 2023-12-18 12:06:53

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-04-20

    授权

    授权

  • 2015-12-09

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20150630

    实质审查的生效

  • 2015-11-11

    公开

    公开

说明书

技术领域

本发明涉及一种属性基加密方法,具体涉及一种具有高效用户撤销的密文策略属性基加 密方法,可用于云存储环境中实现细粒度访问控制和数据保护,属于信息安全技术领域。

背景技术

作为新的密码学原语,属性基加密方法具有一对多加密的特性,可以用于细粒度访问控 制。属性基加密方法主要包括两种类型,分别是密文策略属性基加密方法和密钥策略属性基 加密方法。在密文策略属性基加密方法中,密文关联一个访问结构,而用户的私钥关联一个 属性集合,只有私钥关联的属性集合满足密文的访问结构的时候,用户才能够正确得解密密 文。密钥策略属性基加密方法正好和密文策略属性基加密方法相反。密文策略属性基加密方 法较密钥策略属性基加密方法更具有一般性,因为访问结构是由加密者自己定义的。

随着云计算技术的发展,越来越多的敏感数据被存储在云服务器中,云计算的发展面临 着云数据安全和数据访问控制等一系列安全问题。在现实中,第三方提供的云存储服务往往 不是完全可信任的,把访问控制交给这样的服务器很可能会存在安全隐患。属性基加密方法 应用于云存储环境中,不但可以保护云数据的安全,还可以实现细粒度的访问控制。尽管属 性基加密方法具有很多优点,在实际应用中仍需要解决一个棘手的问题——撤销。

在属性基加密方法中,每个用户享有多个属性,每个属性也可以被多个用户共享。因此, 撤销问题对于属性基加密方法尤为困难,系统中单个用户或者单个属性的撤销都有可能影响 到其他用户甚至整个系统。如今,具有撤销能力的属性基加密方法已经广受密码学家的关注。 按照撤销的粒度,属性基加密方法的撤销可分为用户撤销、用户属性撤销和系统属性撤销三 种;而按照撤销的形式,属性基加密方法的撤销又可分为直接撤销和间接撤销两种。目前, 最理想的撤销方法应该具有粒度较细的属性撤销能力,具有直接撤销的撤销过程影响范围小、 撤销操作简单等特性。然而,细粒度的属性撤销必然会带来昂贵的计算代价,而操作简单的 直接撤销方法又有可能带来安全问题。为了安全性,如今大部分基于属性的加密方法的撤销 机制都采用间接撤销方法,同时,为了提高撤销的效率,代理重加密等技术被采用。

抗合谋攻击是属性基加密方法应该具备的基本条件。对于具有撤销能力的属性基加密方 法而言,不但要能够抵抗有效用户间的合谋攻击,还要能够抵抗有效用户和撤销用户间的合 谋攻击。因此,具有撤销能力的属性基加密方法要考虑更多的合谋攻击类型。

发明内容

针对现有技术存在的不足,本发明目的是提供一种操作简单、安全性高的具有高效用户 撤销的密文策略属性基加密方法,既能高效得执行用户撤销操作,又能抵抗各种用户间合谋 攻击。

为了实现上述目的,本发明是通过如下的技术方案来实现:

本发明的一种具有高效用户撤销的密文策略属性基加密方法,包括以下几个步骤:

(A)系统建立步骤:属性权威机构AA从公钥函数数据库中随机选取一套参数,包括 两个阶为素数p的乘法循环群G和GT、群G的生成元g以及双线性对映射e:G×G→GT; 根据选取的参数,AA生成系统公开参数PK和主私钥MK,并把系统公开参数PK公开 而把主私钥MK私密保存;(B)用户群建立步骤:用户群管理者GM以系统公开参数PK 为输入,生成用户群的群公钥GPK、群私钥GMK和用户字典DIC,群管理者把群公钥 GPK公开而把群私钥GMK和用户字典DIC私密保存;(C)用户私钥生成步骤:用户向 AA提交自己的身份信息UID、属性集合S和所属群信息GID;AA收到用户的申请后, 首先通过与该用户所属群的交互来验证该用户身份(其交互过程是一个签名和验证签名 的过程,为现有技术此处不再赘述),当验证通过后,AA利用主私钥为该用户生成与 属性集合S和所属群信息GID相关联的私钥DSK,并把私钥DSK通过安全信道发送给 用户;同时,AA生成一个元组UP,UP通过一个安全信道发送给用户所属群的管理员, 群管理者保存UP到用户字典DIC中;(D)加密步骤:数据拥有者DO利用自定义的访 问结构A和选择的群公钥GPK对消息M进行加密,加密产生密文CT并上传至云存储 服务器CSS;(E)解密步骤:数据使用者DU从云存储服务器CSS下载密文CT,并利 用满足CT关联的访问结构A和用户群信息GID的私钥DSK进行解密,还原消息M; (F)用户群升级步骤:用户群管理者GM以系统公开参数PK为输入,生成新的群公 钥GPK'、群私钥GMK',并生成重加密密钥Re-Key、更新用户字典DIC中的元组为UP', 重加密密钥Re-Key发送给云存储服务器CSS,字典中的每一个元组UP'发送给相对应 的用户;(G)用户升级步骤:用户利用收到的元组UP'升级自己的私钥为DSK'; (H)重加密步骤:云存储服务器利用收到的重加密密钥Re-Key对属于该群的密文CT 进行重加密操作,得到新的密文CT'。

步骤(A)中,所述的系统公开参数PK和系统主私钥MK,按照如下方式生成:

A1:属性授权机构随机选取α,β∈Zp,其中,Zp表示集合{0,1,2,…,p-2,p-1};

A2:属性授权机构计算得到系统主私钥为MK={β,gα},计算得到系统公开参数 PK={G,g,gβ,e(g,g)α},并且计算g1/β

A3:g1/β只向用户群管理者公开,用于执行用户撤销操作。

步骤(B)中,所述群公钥GPK、群私钥GMK和用户字典DIC,按照如下方式生成:

B1:用户群管理者随机选取γ∈Zp作为用户群的群私钥GMK;

B2:用户群管理者计算gγ作为用户群的群公钥GPK;

B3:用户群管理者初始化用户字典DIC,该字典初始化为空。

步骤(C)中,所述私钥DSK及元组UP,按照如下方式生成:

C1:用户群管理者为用户生成一个证书δ=gβγ×H(UID)γ,其中,H()选用哈希函数MD-5, 该函数把一个字符串映射到群G中的一个元素,该证书发送给属性权威机构;

C2:属性权威机构验证证书的有效性,若e(g,δ)=e(gβ×H(UID),gγ)则执行步骤C3,否则 退出并返回用户错误符号⊥;

C3:对于所有属性j∈S,属性权威机构随机选取一个指数rj∈Zp,其中,Zp表示集合 {0,1,2,…,p-2,p-1},同时,属性权威机构随机选取指数rg,r∈Zp;属性权威机构计 算H(UID)γ=δ/(gγ)β并最终计算得到用户私钥DSK={DSKS,DSKGID},其中, DSKS={D1=g(α+r)/β;jS:Dj=H(UID)γ×H(j)rj,Dj=grj},其中,j表示属性集合中的任 意属性,而Dj与Dj'表示该属性对应的属性密钥, DSKGID={D2=(g×H(UID))γ/β;Dg=gr×H(GID)rg,Dg=grg},其中,Dg与Dg'表示该用户所对 应的用户群密钥;

C4:属性权威机构把DSK={DSKS,DSKGID}通过安全信道发送给用户,计算 UP={UID,d1=H(UID),d2=(g×H(UID))1/β}并发送给用户所属群的管理者。

步骤D中,所述数据拥有者计算消息M的密文CT,按照如下方式生成:

D1:数据拥有者定义一个树形访问结构A,获取相关用户群的群公钥GPK;

D2:数据拥有者随机选择s1,s2∈Zp,为访问结构A中的根节点R随机选择一个dR次多项 式qR,其中dR=kR-1,其中,kR表示根节点R的秘密分享门限值,并且qR(0)=s2

D3:为访问结构A中的除根节点R的任意节点x选择一个dx次多项式qx,其中dx=kx-1, 其中,kx表示节点x的秘密分享门限值,并且qx(0)=qparent(x)(index(x)),函数parent(x)返 回节点x的父节点,函数index(x)返回节点x在其父节点中的次序;

D4:依此类推,最终为访问结构A中的每一个叶子结点y选择一个dy次多项式qy,其 中dy=ky-1,其中,ky表示节点y的秘密分享门限值,并且qy(0)=qparent(y)(index(y)),qy(0) 作为秘密值参与加密运算;

D5:数据拥有者计算得到密文

CT={A,GID,C=M·e(g,g)αs1+γs2,C1=gβs1,C2=gβs2,Cg=gs1,Cg=H(GID)s1,yY:Cy=gqy(0),Cy=H(att(y))qy(0)}

其中,集合Y中的元素为访问结构A中的叶子节点,att(y)函数表示叶子节点y所对应 的属性。

步骤E中,消息M按照如下方式生成:

E1:解密者调用一个递归解密函数DecryptNode(CT,DSKS,x),其中,CT是一个关联了访 问结构A的密文,DSKS是一个关联了属性集合S的私钥,x是访问结构A中的节点;

E2:x为叶子结点,令i=att(x),其中,函数att(x)返回节点x所对应的属性,如果i∈S, 则计算Fx=DecryptNode(CT,DSKS,x)=e(Di,Cx)e(Cx,Di)=e(H(UID),g)γqx(0),否则,令Fx=⊥;

E3:x为非叶子结点,为x的所有子节点z调用函数DecryptNode(CT,DSKS,z),并保存其 输出Fz,令Sx表示一个kx长度的集合,该集合保存满足条件Fz≠⊥的节点z,如果这样 的集合存在,则计算Fx=DecryptNode(CT,DSKS,x)=ΠzSxFzΔi,Sx(0)=e(H(UID),g)γqx(0),其中, 表示拉格朗日插值公式的系数表达式,其中输入为0;否则,令Fx=⊥;

E4:依此类推,如果属性集合S满足访问结构A,则递归函数会正确执行 FR=DecryptNode(CT,DSKS,R)=e(H(UID),g)γs2,否则,令FR=⊥;

E5:解密者调用一个递归解密函数DecryptNode(CT,DSKGID,GID),其中,CT是一个关联 了访问结构A的密文,DSKGID是一个关联了用户群的私钥,GID是私钥所关联的用户群 信息;

E6:如果GID与密文CT中关联的用户群信息一致,则计算Fg=DecryptNode(CT,DSKGID,GID)=e(Dg,Cg)e(Cg,Dg)=e(g,g)rs1,否则,令Fg=⊥;

E7:若FR≠⊥且Fg≠⊥,解密者计算和B2=e(C2,D2)=e(g,g)γs2·e(g,H(UID))γs2,最后恢复消息C·FR·FgB1·B2=M.

步骤F中,所述新的群私钥GMK'、新的群公钥GPK'、重加密密钥Re-Key和新的用户 元组UP'按照如下方式生成:

F1:随机选取γ'∈Zp作为用户群的群私钥GMK';

F2:计算gγ'作为用户群的群公钥GPK';

F3:计算重加密密钥Re-Key=g(γ'-γ)/β,并发送给云存储服务器执行重加密操作;

F4:为用户群中的每一个用户升级其对应的元组UP,升级后为UP'={UID,d1=H(UID)γ'-γ, d2=(g×H(UID))(γ'-γ)/β},把UP'发送给相应的用户。

步骤G中,所述私钥DSK'按照如下方式生成:

G1:用户收到升级后的UP'后,在其私钥DSKS上执行计算其中,d1=H(UID)γ'-γ

G2:在其私钥DSKGID上执行计算D2=D2×d2=(g×H(UID))γ'/β,其中, d2=(g×H(UID))(γ'-γ)/β

步骤H中,所述密文CT'按照如下方式生成:

H1:云存储服务器收到重加密密钥后,对该群的密文执行重加密计算C=C·e(Re-Key,C2)=M·e(g,g)αs1+γs2;

H2:云存储服务器更新密文CT为CT'。本加密方法具有撤销过程涉及用户少、撤销代 价小、撤销效率高的优点,并且本加密方法安全性高,可以抵抗多类型用户之间的合谋攻击。 鉴于属性基加密方案具有一次加密多人解密、细粒度访问控制特性,本加密方法可应用于云 存储环境中。

附图说明

图1为本发明的系统图;

图2为本发明的工作流程图。

具体实施方式

为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体 实施方式,进一步阐述本发明。

一、本发明所应用的数学理论说明:

1.双线性对

本发明中,双线性对e:G×G→GT是一个满足双线性性、非退化性和可计算性的映射, 它把素数阶群G中的两个元素映射到素数阶群GT中的一个元素。

2.拉格朗日系数

对于d-1次多项式f(x)和集合S={x1,x2,...,xd},元素xi和集合S相对应的拉格朗日系数 为根据拉格朗日系数,可以按照如下方式计算出多项式f(x):

f(x)=Σi∈SΔi,Sf(xi)

其中,拉格朗日系数Δi,S是一个关于自变量x的多项式。

二、本发明的实现过程

参照图1和图2,引入用户群的概念,用户撤销操作由用户群管理者执行,单个用户的 撤销只影响该用户所在群中的用户,并非系统中所有用户,缩小了撤销工作涉及的范围;为 用户私钥关联了用户信息和群私钥,有效防止各种类型的合谋攻击,提高安全性;同时,代 理重加密技术极大得减轻了群管理者的负担,提高效率,并且不损失安全性。

本发明的具体过程如下:

步骤一、系统建立。

属性权威机构AA从公钥函数数据库中随机选取一套参数,包括两个阶为素数p的乘法 循环群G和GT、群G的生成元g以及双线性对映射e:G×G→GT。其中,生成元为:

g=

47750218436785246842544537800561262445508604855550403318353879186847422

76428180763577400964116215376187153918918416848705279193879040324631117

275698842196,5607546135873972938896054099015313231638926058988250271068

45844880215861993565284857431034984074316075907554830248732497775892055

026537603900229277924684,0

根据选取的参数,AA生成系统公开参数PK和主私钥MK,并把系统公开参数PK公开 而把主私钥MK私密保存。其中,系统公开参数PK和主私钥MK按照如下方式生成:

(1)属性授权机构随机选取:

a=159186901935239698977655655777688892284166492111

β=706372477601100584219074818953372986108591058502

(2)属性授权机构计算:

gα

82644782460568117013194012730610728893005146404558538013715849645763262

73807714710761186733495235895713204126984719166572657699942623206166023

531248867296,7207944589183592452220969620082095765257195064956716122507

82478860522529884973622896764487821020660795114562031143350863573978289

1521501147155937966178275,0

gβ

12400707905393984762766132917292654256915344080110330702228388544883415

81604349418265827530320574994887865728444007243270250345958210696602414

360508203073,8697719359186131750967397192435434938739080020322346447866

58772459124350612639038524275722008711946651292949119938330874055207136

4708224273016746451178630,0

g1β=72112824434412092374039195543909966420443717672775988430428794791410839465321856427515244566979763058212451016016064787587738168519003239505761751468351919,337239397756086433840214080223324118461675548429809227902169450357977827577113646140318307021846880751959602704537836068673184879404551898834467665299333,0

e(g,g)α

{x=13002515718551119970400384830324626952620614690669061045010513102542

87116797302854361905358781017204210887857191104843671554944481209205908

974155008690933,y=46874656034383538851302209163273887730364935136749496

93274609035248814077325905439574482390932516472256943059933144974211197

932994523413023547212072265112}

主私钥为MK={β,gα},公开参数为PK={G,g,gβ,e(g,g)α},g1/β只向用户群管理者公开, 用于执行用户撤销操作。

步骤二、用户群建立

用户群管理者GM以系统公开参数PK为输入,生成用户群的群公钥GPK、群私钥GMK 和用户字典DIC(初始化为空),群管理者把群公钥GPK公开而把群私钥GMK和用户字典 DIC私密保存。其中,群公钥GPK、群私钥GMK和用户字典DIC按照如下方式生成:

(1)用户群管理者随机选取:

γ=578034329277370021397544036327980246528472363246

用户群的群私钥GMK为γ;

(2)用户群管理者计算:

gγ

45489704457158740762459827696239605209108272815007087628132609463801228

83960297590412003471926297892814511006829781758938214085237634066733928

839016619016,7041708823826479767606907904126380502148645842207189599229

33723606819044682964711422406666886444956972173642198421906354255720907

5808740916920439445679401,0

用户群的群公钥GPK为gγ

(3)用户群管理者初始化用户字典DIC,该字典初始化为空。

步骤三、用户私钥生成

用户向AA提交自己的身份信息UID、属性集合S(为了便于说明,本次运行默认属性 集合S={carrer:student,major:cryption})和所属群信息GID。AA收到用户的申请后,首先通过 与该用户所属群的交互验证该用户身份,然后认证该用户的属性集合。当这两步全部通过后, AA利用主私钥为该用户生成与属性集合S和所属群信息GID相关联的私钥DSK,并把DSK 通过安全信道发送给用户。同时,AA生成一个元组UP,UP通过一个安全信道被发送给用 户的所属群,且被群管理者保存在用户字典DIC中。其中,用户私钥DSK及元组UP按照如 下方式生成:

(1)用户群管理者为用户生成一个证书:

δ=

66576902993073279249241813565935598110920103847652069470714209505627639

99278240366567267195894381451393121582001009841271542175212232404881324

180492004838,3761697041776814585825498425670505639985002050058073391794

16012350304883168736654264986502042974296869149100140828468936454359483

0760696758697375021123882,0

该证书发送给属性权威机构;

(2)属性权威机构验证证书的有效性,若e(g,δ)=e(gβ×H(UID),gγ)则执行(3),否则退出 并返回用户错误符号⊥;

(3)对于所有属性j∈S,属性权威机构随机选取rj∈Zp,同时,属性权威机构随机选取 rg,r∈Zp。属性权威机构计算:

D1

53525718914737352631637438302514299657226517583620354538641774270716931

62155771509764889946206478397775936061511409245225949779366918855716639

712667993338,7614211979078326687636345787508952524006838176841194118352

03061667295857013438089795456481172300157610567828111117960894002213641

6381185756274990894353782,0

Dj=carrer:student

86471907567599410977422811758229369281300666473081666699236789972745250

98882967155949735555328205986355111192354355327942769327225836721742334

742117884160,2689042590028761424292402665145115869649571439570007912056

07148083561455654316397476898748707097024762132394849233507070799543670

4748991246094532810110789,0

Dj=carrer:student'=

25317512676738986511948546936926711250602245998379467851358949586996888

15577125339398050685414963662500937226582216337867195279042437985429653

125444222101,3429382856858504289772689239091040942282598052373415656216

76848694817046611284484440317035303314623062180393800565414760047394825

8222721238679110882528497,0

Dj=major:cryption

31132268369188618309580822501836207730053757987693994114760634023143271

95157981236333476024110527106177907598472559875562712802373792960007360

336109551992,8244320523058051237200333613419619307525159660609747412267

73348593816386518898094592338791090762112545747794479214153343416467613

7919184831784211849108988,0

Dj=major:cryption'=

13724287439876070885744155147390045618416371709644814307505295053675256

98001142438567248347568839893723737540120775394394537929092812262778960

058287430303,5100795982295578748631309010728561236826731887736579623257

02243262617149402226420538354650625467505756810974314034020289137712669

9301485750476677793242730,0

D2

48760391222203938025739988459919828890809672035320669077107568308139232

80684958220911870078684033834613786839041229441167110936329422855833882

159077487487,7088660577194920238845819873703777541108417134879162939250

71704704742279776620332285924460700382191208264268001929640745296945294

8155729174705949817933498,0

Dg

95614735683711758326436174860926049968142407176774041446973012819401340

40802664086936299174519909507147031968986521923106701790325166004414928

11976229747,30064908101831621815292435708987355830768255986376514057925

80060138977836956540794709126717304273112812975893165342925881937700490

096318420122885811833296,0

Dg'=

84870150537359651662534134945963242487069957766672039470872747696517148

17468565130602885078738362174767680353574174955164104441516954064015841

144366016280,3589947030777113133095764202448447520015883667353469959011

17575997950530956042937660361616817277826961349216961131726624244095194

2440111499484569378116894,0

DSKS={D1;Dj=carrer:student,Dj=carrer:student';Dj=major:cryption,Dj=major:cryption'}和DSKGID={D2;Dg,D'g}组成用 户私钥;

(4)属性权威机构把DSK={DSKS,DSKGID}通过安全信道发送给用户,计算:

d1

73583958855060493296446268573677433215066121884710196166219746998550508

58545807951624234617746599423835033756657108488739986015596583949353671

428868395693,1150308302652766504400493188369120209410126454309072336186

57221411967686510769490508705570645250799193403562099153624926607156880

6708434820483609384112145,0

d2

51384486904473129465042809768619526185879390501859601160974568431211962

95076051042818720532560159335093658165520907735747342748319662619318967

839424586294,3398601754835112961512783217187184678288745911034497650194

37852613078848766315941089140781197281574196063715467737812597888538627

1681144870747378040661063,0

发送UP={UID,d1,d2}给用户群管理者。

步骤四、加密

数据拥有者DO利用自定义的访问结构A(为了便于说明,本次运行中访问结构默认为 A=carrer:student^major:cryption)和选择的群公钥GPK对消息M进行加密,加密产生密文 CT并上传至云存储服务器CSS。

消息M为群GT中的元素:

M=

{x=39784995127388910284301435523089176944297562003648284997936802489610

28182262391110796535115067530006709829413104607633821146297209870208860

153741890591363,y=62964767401370773302559248457625359434298388376218547

99579814943808266363227783482263915739368241985778403350935213335322237

579944472580498486729832945810}

其中,密文CT按照如下方式生成:

(1)数据拥有着随机选择

s1=87880464263955918529333603130716386782469815503

s2=262964636973273309182776274926052675826879154188

为访问结构A中的根节点R随机选择一个dR次多项式qR,其中dR=kR-1(kR表示根节 点R的秘密分享门限值),并且qR(0)=s2

(2)为访问结构A中的除根节点R的任意节点x选择一个dx次多项式qx,其中dx=kx-1(kx表示节点x的秘密分享门限值),并且qx(0)=qparent(x)(index(x))(函数parent(x)返回节点x的父 节点,函数index(x)返回节点x在其父节点中的次序);

(3)依此类推,最终为访问结构A中的每一个叶子结点y选择一个dy次多项式qy,其中 dy=ky-1(ky表示节点y的秘密分享门限值),并且qy(0)=qparent(y)(index(y)),qy(0)作为秘密 值参与加密运算;

(4)数据拥有者计算:

C=

{x=34633760291727910747949142267127799953876070175180698128849701006865

24232765382880710847744435767844330869312806774153647622096808755705524

144564320478891,y=15082760753084016139912590354511262299196142678777903

39556730013215656911593832568274002186003845815514869416401496054276236

388061458696843354782104558918}

C1

18267362866939280870740250214895924080230533029666378304787108593362579

39484230743216603120756568554606026406830164104783428621692113433151341

236637679190,2123484439983607157996880982816484244245102170091824969678

53320119426380914174354917096067099887488491068594923383760433263358004

0595904244803268203373289,0

C2

24375296870765526417043992309241072131651655471779622574823080771359950

62042722634332074719468790684554487011797629578473054817415784579779811

745505415139,7432400377859144578749481883540035719539627711911505258236

28505135143362770801430153838166898529813918191214892968586823820454580

1870835359728336947760500,0

Cg

78675132108925025720946608127470202933752688833237768500857690831182588

52822249101526234955466273162950534625120586941081464378677773011327510

937031586719,1231631937318934297901385254635334287772981537612479286516

90482078982379502607361601702957628030886085946632551471477603128089945

9048656129753690431113143,0

C'g

31535440535346458495369867051340889542258599150744786868546253344845248

37392619898546798860332331759719892124366670910545020870926481998572111

748064065285,3286798190669936069100746011501135245423436583956687520852

04066798599879545006142682267213816040907825291952231415632093562681956

5951759405003850377311810,0

Cy=carrer:student

31748964116524053379554917639238298616812352794924972796993228103332244

18631976584297140311548377229998216362583958543392019085855037996723368

647724170747,3853501990544460397095412624441066092034959381685855829175

04779897720999849831257075807040620554185921367512188141705942284351730

5630750357033624028354908,0

C'y=carrer:studentt

75563331687208864431354080600977377424749236790383010968222947814096209

13291160483330631543727315319579650503944487785497904141888693279977653

722538145996,7147287887524408797764217006246053584266195769721469919067

40108885685631216695895476510522880805482726838643098802878826113407384

0904219408912597669694504,0

Cy=major:cryption

59973763144802934203689647850446330800662252631386646352342266848202840

68356931897344767574912100968169182644076365192266259037596114641636634

724321154545,6812031586893393712933023698771371694776364428208780025040

00305438084738404301582093213016633295761824687027783438056039291715416

8527603995643731705639601,0

C'y=major:cryption

75680809853243962069784675118248266959931987957915922286420769948988696

35438278206304300569744307601873362549322445708885628960364167889923053

277828940230,4255009457532178995602323162597860522059211974442110914161

31051239650538114688723485885871217293120592666274962429119074145184357

9843061627274828118204088,0

最终密文为CT={A,GID,C,C1,C2,Cg,C'g;Cy=carrer:student,C'y=carrer:studentt;Cy=major:cryption,C'y=major:cryption}。

步骤五、解密

数据使用者DU从云存储服务器CSS下载密文CT,并利用满足CT关联的访问结构A和 用户群信息GID的私钥DSK进行解密,还原消息M。其中,消息M按照如下方式生成:

(1)解密者调用一个递归解密函数DecryptNode(CT,DSKS,x),其中,CT是一个关联了访问 结构A的密文,DSKS是一个关联了属性集合S的私钥,x是访问结构A中的节点;

(2)x为叶子结点,令i=att(x)(函数att(x)返回节点x所对应的属性),如果i∈S,则计算 Fx=DecryptNode(CT,DSKS,x)=e(Di,Cx)e(Cx,Di)=e(H(UID),g)γqx(0),否则,令Fx=⊥;

(3)x为非叶子结点,为x的所有子节点z调用函数DecryptNode(CT,DSKS,z),并保存其输 出Fz。令Sx表示一个kx长度的集合,该集合保存满足条件Fz≠⊥的节点z,如果这样的集合 存在,则计算Fx=DecryptNode(CT,DSKS,x)=ΠzSxFzΔi,Sx(0)=e(H(UID),g)γqx(0),否则,令Fx=⊥;

(4)依此类推,如果属性集合S满足访问结构A,则递归函数会正确执行FR=DecryptNode(CT,DSKS,R)=e(H(UID),g)γs2,否则,令FR=⊥。本次运算中:

FR

{x=72902494956865945967792616403083418826982624451025922683130816043712

63468787165366489747770335968727729875758339508055765353167323563748488

689412054881072,y=17583360723925259100611788771504950445375085418909715

15766516520593549538062422668852412323528052103913151093908078270630834

361701165791350998812949953000}

(5)解密者调用一个递归解密函数DecryptNode(CT,DSKGID,GID),其中,CT是一个关联了访 问结构A的密文,DSKGID是一个关联了用户群的私钥,GID是私钥所关联的用户群信息;

(6)如果GID与密文CT中关联的用户群信息一致,则计算否则,令Fg=⊥。本次运算中:

Fg

{x=69684266938409665839430637507863410516338926429369988820777337453882

21196694945770231515484808742087716488358417696449735746011477848756817

5685338213278,y=1853621760408080735464685964562610659905712105178453344

16361874004424074633578518333120459447630809433481479959912998692695170

7437606107650456218357055823}

(7)若FR≠⊥且Fg≠⊥,解密者计算:

B1=e(C1,D1)=

{x=12088681013241329192773765701920877343596529204970260210399177182166

29161848296576271525451171144519481291446244143543007686240603241948787

638652225780161,y=31616633100594501182233918529029684953505274552344567

74050680116935339420297748263939516712870582113620734276397566659784281

03649701448682567715983714722}

B2=e(C2,D2)=

{x=53810379535116801089124430808504810343448515035821614812214073126142

52274475441191434278066263259196754312185230633540513277703533400146807

223785370530825,y=52243937160058445108809182197771395138719872000238549

31823468753440146630176023764720734791921037232983666648405524590877323

896599022002624502672546986913}

(8)最后恢复消息:

M=C·FR·FgB1·B2={x=3978499512738891028430143552308917694429756200364828499793680248961028182262391110796535115067530006709829413104607633821146297209870208860153741890591363,y=6296476740137077330255924845762535943429838837621854799579814943808266363227783482263915739368241985778403350935213335322237579911172580498486729832945810}

步骤六、用户群升级

用户群管理者GM以系统公开参数PK为输入,生成新的群公钥GPK'、群私钥GMK', 并生成重加密密钥Re-Key和更新用户字典DIC中的元组为UP'。重加密密钥Re-Key发送给 云存储服务器CSS,字典中的每一个元组UP'发送给相对应的用户。其中,新的群私钥GMK'、 新的群公钥GPK'、重加密密钥Re-Key和新的用户元组UP'按照如下方式生成:

(1)随机选取:

γ'=10792797868279753016187791493621473567028154968

γ'为更新后的群私钥GMK';

(2)计算:

gγ'

32720762087584791565825059920351932675521956917887791166771674760309591

47780205959473955625488949848063770167853090995737248099941108929136070

416127293001,4418751062858132439337404880016030374152516878638380847333

73069005745701283597343456874252008912683991227313818464546692078299494

2864520997571186272900889,0

gγ'为更新后的群公钥GPK';

(3)计算:

Re-Key=

26083785821134576453562548758551128013642041052161917998208774797860845

14798308382053386836999702954499918064170050158581501413140988307400933

168487619274,7261182430062662998227210890192382272014200839414263384811

40805710544234653458739885821022881118749783946747743552216676744342907

328815854342767407396617,0

Re-Key为重加密密钥并发送给云存储服务器执行重加密操作;

(4)计算:

d1

79601182546548560109442907617244916826583017245634743092715108447554305

29235907511992355302673235369317329418485786661390738467663986753631268

090960973240,1572691377340374523761845901125985942037112594042243618718

22964135259754566250002475810697608180447056758080123462594127022745260

9514634142226258889457351,0

d2

81844362445100930936257054095140553712151500901991647349500635204903734

49625575146530183276960523214304795553769770623771593275159227386536307

853044155875,1204992492365968864373760553143411179236776880765327277349

35572367480347093869730349691252839255996761063159374270103353739073391

9847064244899529605327195,0

每一个用户升级后的元组为UP'={UID,d1,d2},UP'发送给相应的用户。

步骤七、用户升级

用户利用收到的元组UP'升级自己的私钥为DSK'。其中,升级后的私钥DSK'按照如下 方式生成:

(1)用户收到升级后的UP'后,在其私钥DSKS上执行计算:

Dj=carrer:student=Dj=major:cryption×d1

37498784370598887843228515469181711497063677490676751600631222304985734

71797710881216259793499636929642315080491726816929701992392958679860765

474187486378,1819163329108798958492356743517668997701232392148994634018

35190474780889608398084174008948880367546264543613362935413639037620769

08864380746869921157053,0

Dj=major:cryption=Dj=major:cryption×d1

67149248832174925437234566455798485434928733539457829781124743273031750

01609480457446198257192950070899261045562272711597046305483710020441372

909565926115,4282067229897733314696434483908456858213473167462471436324

26253074416318199474821173023251990357637266987239173024246971869283236

846202904377717762530069,0

(2)在其私钥DSKGID上执行计算:

D2=D2×d2

10469417554751070335349070045264640154710843264155863132616701117500488

28212392329395156677904722321104905303921637113924031570656331438587338

48031266572,74747354206801240150022400116115097922407993671198836247714

45701518623046052556117389561523010266021298872392064566976606592783973

265855220216754894844550,0

步骤八、重加密

云存储服务器利用收到的重加密密钥Re-Key对属于该群的密文CT进行重加密操作, 得到新的密文CT'。其中,新的密文CT'按照如下方式生成:

(1)云存储服务器收到重加密密钥后,对该群的密文执行重加密计算:

C'=C·e(Re-Key,C2)=

{x=16932351394596477901174336710984924487110706277523358810264383413299

99693100674833676121370319067486848849844810135616718568698380545364339

876961468682628,y=80585719879236582749890676984930214481949397615028987

67604464707265527563694932364825135085905518370199293129876793019843062

494262244864747163731188128230};

(2)云存储服务器更新密文CT为CT'。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应 该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原 理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进 都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号