法律状态公告日
法律状态信息
法律状态
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},其中,
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:数据拥有者计算得到密文
其中,集合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, 则计算
E3:x为非叶子结点,为x的所有子节点z调用函数DecryptNode(CT,DSKS,z),并保存其 输出Fz,令Sx表示一个kx长度的集合,该集合保存满足条件Fz≠⊥的节点z,如果这样 的集合存在,则计算
E4:依此类推,如果属性集合S满足访问结构A,则递归函数会正确执行
E5:解密者调用一个递归解密函数DecryptNode(CT,DSKGID,GID),其中,CT是一个关联 了访问结构A的密文,DSKGID是一个关联了用户群的私钥,GID是私钥所关联的用户群 信息;
E6:如果GID与密文CT中关联的用户群信息一致,则计算
E7:若FR≠⊥且Fg≠⊥,解密者计算和
步骤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:云存储服务器收到重加密密钥后,对该群的密文执行重加密计算
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
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,则计算
(3)x为非叶子结点,为x的所有子节点z调用函数DecryptNode(CT,DSKS,z),并保存其输 出Fz。令Sx表示一个kx长度的集合,该集合保存满足条件Fz≠⊥的节点z,如果这样的集合 存在,则计算
(4)依此类推,如果属性集合S满足访问结构A,则递归函数会正确执行
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)最后恢复消息:
步骤六、用户群升级
用户群管理者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'。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应 该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原 理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进 都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
机译: 密文比较系统,密文比较方法,密文生成装置,密文比较装置以及密文生成装置和密文比较装置的控制方法和控制程序
机译: 非线性处理器,流密文加密设备,流密文加密设备,掩码处理方法,流密文加密方法,流密文加密方法和程序
机译: 基于保护隐私的高效密文策略属性的加密和广播加密