本發(fā)明涉及信息安全技術領域內的基于屬性加密領域。
背景技術:
隨著云計算逐漸普及,越來越多的敏感數(shù)據(jù)被存儲在第三方服務器上并在互聯(lián)網(wǎng)中共享傳播,因此,以加密的形式存儲這些數(shù)據(jù)成為了必然的趨勢。然而,用戶缺乏對加密儲存在云服務器端數(shù)據(jù)的基本控制以及對云服務提供商的信任。云計算環(huán)境的復雜性、開放性和動態(tài)性以及云計算下用戶需求的多樣性均使得傳統(tǒng)的公鑰密碼體制難以適用,極大的阻礙了云計算的進一步的發(fā)展與推廣應用。急需在傳統(tǒng)的公鑰密碼學算法基礎上做出改進,設計出更好的公鑰密碼體制來保障用戶數(shù)據(jù)的完整性與機密性。
因此,基于屬性的密碼體制被提出,可以將其看作是基于身份密碼體制的擴展及衍生。一方面,其擴展了身份的概念,將身份看作成一系列屬性特征的集合,增加了對用戶身份的描述性;另一方面,結合訪問結構的概念,用戶屬性集滿足特定約束條件或某種訪問結構時,才能進行解密或簽名等密碼學操作,且可以實現(xiàn)一對多通信,為加密數(shù)據(jù)的存取控制提供了新的方向?;趯傩缘拿艽a體制已經(jīng)成為密碼學的熱點研究領域。
然而,在基于屬性的加密系統(tǒng)中,一個用戶的訪問、讀取權限通常是與由自身屬性集合生成的私鑰密切相關的。如果一個用戶惡意的分發(fā)自身的屬性集對應的私鑰或自身私鑰的一部分,或是多個用戶合謀得到某個屬性集合對應的私鑰,這些私鑰往往都具備正確的形式,可以對消息明文進行解密操作,并且,系統(tǒng)無法對這些用戶的解密行為進行判定,從而整個系統(tǒng)的用戶訪問、讀取權限都會被破壞,對系統(tǒng)的安全性造成巨大的威脅。
目前的基于屬性的加密系統(tǒng)中,很少考慮到上述安全漏洞?,F(xiàn)有的考慮到抵抗密鑰克隆、密鑰泄露帶來的安全隱患的文獻有:
文獻[1]“基于屬性密碼體制的相關研究”(王永濤.基于屬性密碼體制的相關研究[d].上海交通大學,2011.)中通過引入叛逆者追蹤的機制,當系統(tǒng)內的一個用戶惡意的分發(fā)自身的屬性集對應的私鑰或自身私鑰的一部分,或是多個用戶合謀得到某個屬性集合對應的私鑰,系統(tǒng)可以追蹤到實施非法操作的具體用戶。但是,上述基于屬性的加密體制,都沒有從源頭上解決密鑰克隆、密鑰濫用這一安全問題,而是在攻擊者實施非法操作之后,采用適當?shù)难a救方法,重要的消息明文可能已經(jīng)泄露。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種抗密鑰克隆、密鑰濫用的基于屬性加密方法,可以有效的抵抗密文克隆、密鑰濫用所導致的安全隱患,并且消耗資源少,安全性高。
本發(fā)明實現(xiàn)其發(fā)明目的所采用的技術方案是,一種抗密鑰克隆、密鑰濫用的基于屬性加密方法,其操作步驟是:
a、系統(tǒng)初始化
a1、系統(tǒng)內的屬性集合記為p,屬性集合p內的所有屬性的個數(shù)為k×n,對所有屬性從1開始進行編號,屬性集合p內包含的元素即為與具體屬性相對應的數(shù)值編號;系統(tǒng)內包括一個中心授權機構cap,k個屬性授權中心aak以及一個身份授權中心ia;系統(tǒng)將屬性集合p分為k個屬性子集p1,p2,…pk…,pk,每個屬性子集pk內包括n個屬性,pk={pk,1,pk,2,…pk,n…,pk,n},其中,pk,n為第k個屬性子集pk中的第n個元素,其值為(k-1)n+n;系統(tǒng)將第k個屬性子集pk的n個屬性分配給第k個屬性授權中心aak管理;
a2、中心授權機構cap選取一個素數(shù)階為q的循環(huán)群g1,對循環(huán)群g1進行雙線性對運算得到循環(huán)群g2,中心授權機構cap在q階整數(shù)群zq中選取一個隨機數(shù),作為系統(tǒng)的主秘密s;在q階整數(shù)群zq中選取一個隨機數(shù)作為屬性秘密s0,且s0<s;再在q階整數(shù)群zq中選取一個隨機數(shù)作為系統(tǒng)門限值d;
中心授權機構cap計算出身份秘密s1,s1=s-s0,發(fā)送給身份授權中心ia;并算出系統(tǒng)公鑰y0,y0=e(g,g)s,其中,g為循環(huán)群g1上的生成元,e()表示雙線性對運算;中心授權機構cap選取一個d-1階多項式r(x),且選取的多項式r(x)的常數(shù)項r(0)為屬性秘密s0,即r(0)=s0;令自變量x的值為1,2,…k…,k,分別計算出多項式的值r(1),r(2),…r(k)…,r(k),將這些多項式的值依次分發(fā)給系統(tǒng)內的k個屬性授權中心aa1,aa2,…aak…,aak,作為其子秘密;
中心授權機構cap在q階整數(shù)群zq中選取一個隨機數(shù)作為第k組第n個屬性公鑰生成參數(shù)tk,n;進而得到第k組所有屬性的屬性公鑰生成參數(shù)tk,1,tk,2,…tk,n…,tk,n,并發(fā)送給第k個屬性授權中心aak;隨后,中心授權機構cap利用該屬性公鑰生成參數(shù)tk,n計算出第k組第n個屬性公鑰tk,n,
a3、第k個屬性授權中心aak將接收到的子秘密r(k)及第k組屬性公鑰生成參數(shù)tk,1,tk,2,…tk,n…,tk,n作為其私鑰;將接收到的第k組屬性公鑰tk,1,tk,2,…tk,n…,tk,n作為其公鑰;
a4、身份授權中心ia將接收到的身份秘密s1作為其私鑰,并計算出身份公鑰y1,
b、屬性私鑰的生成
b1、屬性子集合為pu的用戶u向第k個屬性授權中心aak申請屬性私鑰;
b2、第k個屬性授權中心aak在q階整數(shù)群zq中選取一個隨機數(shù)作為屬性門限dk,并選取一個dk-1階多項式q(x),且選取的多項式q(x)的常數(shù)項q(0)為子秘密r(k),即q(0)=r(k);隨后,第k個屬性授權中心aak取其管理的第k個屬性子集pk與用戶的屬性子集合pu相交的屬性交集pk∩u,pk∩u=pu∩pk,并為屬性交集pk∩u內的每個屬性元素p生成一個隨機數(shù)kp,p∈pk∩u,其中,∈表示集合中的屬于關系;將該隨機數(shù)kp作為用戶u的屬性安全參數(shù),令多項式q(x)的自變量x的值為屬性元素p,并計算出多項式q(x)的值q(p);然后,將用戶u的各屬性安全參數(shù)kp與用戶u的屬性子集合pu一起發(fā)送給身份授權中心ia;
b3、第k個屬性授權中心aak找出屬性交集pk∩u內屬性元素p在第k個屬性子集pk中對應的元素pk,n,利用屬性公鑰生成參數(shù)tk,n計算得到第一個屬性私鑰即主屬性密鑰dk,n,
利用屬性公鑰生成參數(shù)tk,n與用戶u的屬性安全參數(shù)kp,計算得到第二個屬性私鑰即屬性一致參數(shù)dn,
c、身份密鑰生成
c1、身份授權中心ia收到第k個屬性授權中心aak發(fā)送的用戶的屬性安全參數(shù)kp與用戶的屬性子集合pu后,根據(jù)b3步的對應關系,找出其對應的元素pk,n,再將收到的所有屬性安全參數(shù)kp相加得到用戶的身份安全參數(shù)k′,
c2、身份授權中心ia利用用戶u的屬性子集合pu,混淆屬性安全參數(shù)
d、加密
d1、數(shù)據(jù)發(fā)送者s在q階整數(shù)群zq中選取一個隨機數(shù)作為加密混淆參數(shù)s2,并選取密文屬性集pc,作為解密密文的約束條件;
d2、數(shù)據(jù)發(fā)送者s發(fā)送的信息記作m,利用系統(tǒng)公鑰y0計算主密文e,
e、解密
e1、用戶u執(zhí)行解密操作,找出用戶u的屬性子集合pu與第k個屬性授權中心aak下對應的密文屬性子集
e2、若在第k個屬性授權中心aak下,有屬性門限dk個交集屬性元素pk,用戶u即根據(jù)拉格朗日插值算法,恢復出多項式q(x)的常數(shù)項q(0),進而得到子秘密解密參數(shù)er(k),
e3、用戶u找出系統(tǒng)門限值d個屬性授權中心aak,這些屬性授權中心aak管理下的密文屬性子集
e4、用戶u對屬性一致參數(shù)dn與屬性密文ek,n做雙線對操作,計算得到屬性相關參數(shù)ek′,
e5、用戶u利用自身的屬性子集合pu內的元素pk,n與身份私鑰
e6、用戶u將得到的系統(tǒng)主秘密屬性部分參數(shù)
e7、用戶u即可以利用解密密鑰d成功恢復出消息明文m,
與現(xiàn)有技術相比,本發(fā)明的有益效果是:
一、本發(fā)明通過將系統(tǒng)主秘密分為兩部分,并引入屬性安全參數(shù)的概念;系統(tǒng)主秘密需要系統(tǒng)主秘密屬性部分參數(shù)與系統(tǒng)主秘密身份部分參數(shù)方可恢復,對于利用克隆得到私鑰的非法用戶而言,由于其不具備正確的屬性子集合,從而無法恢復出系統(tǒng)主秘密身份部分參數(shù);對于合謀得到私鑰的非法用戶而言,由于每次身份私鑰生成時所得到的混淆屬性安全參數(shù)不相同,無法得到正確的身份安全參數(shù),從而無法恢復出系統(tǒng)主秘密身份部分參數(shù),即均無法得到正確的解密密鑰。因此,本發(fā)明能夠有效的抵抗密鑰克隆、密鑰濫用導致的安全隱患,保障了系統(tǒng)的訪問權限不被破壞。
二、本發(fā)明采用基于多屬性授權中心的構架,每個屬性授權中心與身份授權中心均生成用戶解密私鑰的一部分,且各個屬性授權中心彼此無法相互通信,確保了為用戶生成的私鑰的安全性。
下面結合具體實施方式對本發(fā)明作進一步的詳細說明。
具體實施方式
實施例
本發(fā)明的一種具體實施方式是,一種抗密鑰克隆、密鑰濫用的基于屬性加密方法,其具體操作步驟是:
a、系統(tǒng)初始化
a1、系統(tǒng)內的屬性集合記為p,屬性集合p內的所有屬性的個數(shù)為k×n,對所有屬性從1開始進行編號,屬性集合p內包含的元素即為與具體屬性相對應的數(shù)值編號;系統(tǒng)內包括一個中心授權機構cap,k個屬性授權中心aak以及一個身份授權中心ia;系統(tǒng)將屬性集合p分為k個屬性子集p1,p2,…pk…,pk,每個屬性子集pk內包括n個屬性,pk={pk,1,pk,2,…pk,n…,pk,n},其中,pk,n為第k個屬性子集pk中的第n個元素,其值為(k-1)n+n;系統(tǒng)將第k個屬性子集pk的n個屬性分配給第k個屬性授權中心aak管理;
a2、中心授權機構cap選取一個素數(shù)階為q的循環(huán)群g1,對循環(huán)群g1進行雙線性對運算得到循環(huán)群g2,中心授權機構cap在q階整數(shù)群zq中選取一個隨機數(shù),作為系統(tǒng)的主秘密s;在q階整數(shù)群zq中選取一個隨機數(shù)作為屬性秘密s0,且s0<s;再在q階整數(shù)群zq中選取一個隨機數(shù)作為系統(tǒng)門限值d;
中心授權機構cap計算出身份秘密s1,s1=s-s0,發(fā)送給身份授權中心ia;并算出系統(tǒng)公鑰y0,y0=e(g,g)s,其中,g為循環(huán)群g1上的生成元,e()表示雙線性對運算;中心授權機構cap選取一個d-1階多項式r(x),且選取的多項式r(x)的常數(shù)項r(0)為屬性秘密s0,即r(0)=s0;令自變量x的值為1,2,…k…,k,分別計算出多項式的值r(1),r(2),…r(k)…,r(k),將這些多項式的值依次分發(fā)給系統(tǒng)內的k個屬性授權中心aa1,aa2,…aak…,aak,作為其子秘密;
中心授權機構cap在q階整數(shù)群zq中選取一個隨機數(shù)作為第k組第n個屬性公鑰生成參數(shù)tk,n;進而得到第k組所有屬性的屬性公鑰生成參數(shù)tk,1,tk,2,…tk,n…,tk,n,并發(fā)送給第k個屬性授權中心aak;隨后,中心授權機構cap利用該屬性公鑰生成參數(shù)tk,n計算出第k組第n個屬性公鑰tk,n,
a3、第k個屬性授權中心aak將接收到的子秘密r(k)及第k組屬性公鑰生成參數(shù)tk,1,tk,2,…tk,n…,tk,n作為其私鑰;將接收到的第k組屬性公鑰tk,1,tk,2,…tk,n…,tk,n作為其公鑰;
a4、身份授權中心ia將接收到的身份秘密s1作為其私鑰,并計算出身份公鑰y1,
b、屬性私鑰的生成
b1、屬性子集合為pu的用戶u向第k個屬性授權中心aak申請屬性私鑰;
b2、第k個屬性授權中心aak在q階整數(shù)群zq中選取一個隨機數(shù)作為屬性門限dk,并選取一個dk-1階多項式q(x),且選取的多項式q(x)的常數(shù)項q(0)為子秘密r(k),即q(0)=r(k);隨后,第k個屬性授權中心aak取其管理的第k個屬性子集pk與用戶的屬性子集合pu相交的屬性交集pk∩u,pk∩u=pu∩pk,并為屬性交集pk∩u內的每個屬性元素p生成一個隨機數(shù)kp,p∈pk∩u,其中,∈表示集合中的屬于關系;將該隨機數(shù)kp作為用戶u的屬性安全參數(shù),令多項式q(x)的自變量x的值為屬性元素p,并計算出多項式q(x)的值q(p);然后,將用戶u的各屬性安全參數(shù)kp與用戶u的屬性子集合pu一起發(fā)送給身份授權中心ia;
b3、第k個屬性授權中心aak找出屬性交集pk∩u內屬性元素p在第k個屬性子集pk中對應的元素pk,n,利用屬性公鑰生成參數(shù)tk,n計算得到第一個屬性私鑰即主屬性密鑰dk,n,
利用屬性公鑰生成參數(shù)tk,n與用戶u的屬性安全參數(shù)kp,計算得到第二個屬性私鑰即屬性一致參數(shù)dn,
c、身份密鑰生成
c1、身份授權中心ia收到第k個屬性授權中心aak發(fā)送的用戶的屬性安全參數(shù)kp與用戶的屬性子集合pu后,根據(jù)b3步的對應關系,找出其對應的元素pk,n,再將收到的所有屬性安全參數(shù)kp相加得到用戶的身份安全參數(shù)k′,
c2、身份授權中心ia利用用戶u的屬性子集合pu,混淆屬性安全參數(shù)
d、加密
d1、數(shù)據(jù)發(fā)送者s在q階整數(shù)群zq中選取一個隨機數(shù)作為加密混淆參數(shù)s2,并選取密文屬性集pc,作為解密密文的約束條件;
d2、數(shù)據(jù)發(fā)送者s發(fā)送的信息記作m,利用系統(tǒng)公鑰y0計算主密文e,
e、解密
e1、用戶u執(zhí)行解密操作,找出用戶u的屬性子集合pu與第k個屬性授權中心aak下對應的密文屬性子集
e2、若在第k個屬性授權中心aak下,有屬性門限dk個交集屬性元素pk,用戶u即根據(jù)拉格朗日插值算法,恢復出多項式q(x)的常數(shù)項q(0),進而得到子秘密解密參數(shù)er(k),
e3、用戶u找出系統(tǒng)門限值d個屬性授權中心aak,這些屬性授權中心aak管理下的密文屬性子集
e4、用戶u對屬性一致參數(shù)dn與屬性密文ek,n做雙線對操作,計算得到屬性相關參數(shù)ek′,
e5、用戶u利用自身的屬性子集合pu內的元素pk,n與身份私鑰
e6、用戶u將得到的系統(tǒng)主秘密屬性部分參數(shù)
e7、用戶u即可以利用解密密鑰d成功恢復出消息明文m,