国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種多授權(quán)屬性加解密方法與流程

      文檔序號:11778172閱讀:465來源:國知局

      本發(fā)明涉及加解密領(lǐng)域,具體地說是一種多授權(quán)屬性加解密方法。



      背景技術(shù):

      作為一種新型的密碼體制算法,基于屬性的加密方法在云存儲技術(shù)、社交網(wǎng)絡(luò)、在線點(diǎn)播等領(lǐng)域得到了廣泛關(guān)注與應(yīng)用。相比于傳統(tǒng)的加密算法來說,基于屬性的加密算法不僅實(shí)現(xiàn)了細(xì)粒度的訪問控制,還可以制定更加靈活的訪問控制策略。

      基于屬性的加密算法(attributebasedencryption,abe),它將用戶的一系列身份信息看作是數(shù)據(jù)加解密的輸入,只有滿足數(shù)據(jù)擁有者所制定的訪問控制策略的用戶才可以獲得數(shù)據(jù)信息,從而解決了以往加密算法無法實(shí)現(xiàn)一對多通信的難題,同時(shí)數(shù)據(jù)擁有者還可以針對數(shù)據(jù)接受者的一系列身份信息(用戶屬性)制定靈活的授權(quán)策略,因此基于屬性的加密算法得到了廣泛的關(guān)注。

      之前所提出的abe方案大多是單一授權(quán)結(jié)構(gòu)的,但由于網(wǎng)絡(luò)通信量的快速增長,單一授權(quán)機(jī)構(gòu)的工作效率漸漸難以滿足用戶的需求;同時(shí),在多屬性授權(quán)機(jī)構(gòu)方案中中央授權(quán)機(jī)構(gòu)(centralauthority,ca)往往掌握全局的主密鑰(masterkey,mk),一旦ca受到攻擊,全局的mk將遭到泄露從而導(dǎo)致系統(tǒng)的不安全。針對以上問題,有學(xué)者提出了一種去中心的多授權(quán)機(jī)構(gòu)abe方案,在該方案中,存在多個(gè)ca和多個(gè)屬性授權(quán)機(jī)構(gòu)(attributeauthorities,aa),在實(shí)現(xiàn)授權(quán)時(shí)由多個(gè)ca合作授權(quán)用戶身份密鑰;但該方案中隱藏了密文中的授權(quán)訪問結(jié)構(gòu),所以必須將所有屬性授權(quán)機(jī)構(gòu)所包含的屬性全部參與計(jì)算,雖然保證了密文的長度恒定,但卻對大規(guī)模屬性系統(tǒng)實(shí)現(xiàn)困難。在大規(guī)模屬性加密系統(tǒng)中,用戶所指定的訪問策略所包含的屬性規(guī)模往往遠(yuǎn)小于系統(tǒng)提供的屬性規(guī)模,這里稱之為“訪問結(jié)構(gòu)稀疏”或是“smallandgates”。

      所以針對上述問題,本發(fā)明提出了一種新型的多授權(quán)屬性加解密方法。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明所要解決的技術(shù)問題是提供一種多授權(quán)屬性加解密方法,解決在大型屬性加密系統(tǒng)中訪問結(jié)構(gòu)稀疏所帶來的加解密運(yùn)算消耗大,存儲空間占用率高的問題。

      本發(fā)明為解決上述技術(shù)問題所采用的技術(shù)方案是一種多授權(quán)屬性加解密方法,包括以下步驟:

      步驟一、系統(tǒng)初始化:包括層級屬性機(jī)構(gòu)屬性訪問樹γ的構(gòu)建、系統(tǒng)參數(shù)生成、中央授權(quán)機(jī)構(gòu)初始化和屬性授權(quán)機(jī)構(gòu)初始化四個(gè)方面;

      (1)系統(tǒng)參數(shù)生成:在系統(tǒng)內(nèi)輸入一個(gè)安全參數(shù)1λ,系統(tǒng)調(diào)用群生成算法生成兩個(gè)階為素?cái)?shù)p的乘法循環(huán)群g和gt,群g的生成元為g,存在雙線性映射e:g×g→gt,同時(shí),選取一個(gè)存在性不可偽造的簽名算法σsign=(kengen,sign,verify),輸出全局公開參數(shù)δ=(e,g,g,gt,p,σsign);

      (2)層級屬性訪問樹γ的構(gòu)建:每一個(gè)屬性授權(quán)機(jī)構(gòu)將域內(nèi)屬性進(jìn)行編碼,使每一個(gè)屬性都有自己的索引indexi,然后建立一個(gè)平衡二叉樹,該平衡二叉樹的非葉結(jié)點(diǎn)t[i...j]中,開始的序號為該非葉結(jié)點(diǎn)下對應(yīng)的最左端葉節(jié)點(diǎn)的索引值,結(jié)束的序號為該非葉結(jié)點(diǎn)最右端葉節(jié)點(diǎn)所對應(yīng)的屬性值,在非偶數(shù)個(gè)屬性出現(xiàn)時(shí),二叉樹的最右端將補(bǔ)充一個(gè)表達(dá)值恒為的空屬性,保持屬性樹中所有非葉子結(jié)點(diǎn)的平衡;對于特定屬性授權(quán)機(jī)構(gòu)aak所建立的屬性訪問樹定義為γk,k表示特定屬性授權(quán)機(jī)構(gòu)aak的索引;

      (3)中央授權(quán)機(jī)構(gòu)初始化:存在若干個(gè)中央授權(quán)機(jī)構(gòu)ca,ca={ca1,ca2,...,cal},l表示ca的個(gè)數(shù),每個(gè)中央授權(quán)機(jī)構(gòu)獨(dú)立運(yùn)行初始化算法,隨機(jī)選擇yd,yd為cad的主密鑰,存在令y=e(g,g)y,其中y為公開加密參數(shù),調(diào)用簽名算法得到驗(yàn)證簽名密鑰verifykeyd,cad的簽名算法公私鑰對capvd,verifykeyd=μd,capvd=(signkeyd,μd);

      (4)屬性授權(quán)機(jī)構(gòu)初始化:存在若干個(gè)屬性授權(quán)機(jī)構(gòu)aa,aa={aa1,aa2,...,aat},t表示aa的個(gè)數(shù),aa負(fù)責(zé)向用戶提供用戶的屬性相關(guān)密鑰,每一個(gè)aaj都負(fù)責(zé)管理一個(gè)屬性域uj,與任意的aai都有這使得每個(gè)屬性僅屬于一個(gè)aa管理,每個(gè)aa所管理的屬性是互不沖突的。對于全局屬性集全局屬性授權(quán)機(jī)構(gòu)隨機(jī)選取其中m為全局屬性域所包含的屬性個(gè)數(shù);同時(shí),對于某個(gè)特定的屬性授權(quán)機(jī)構(gòu)aak當(dāng)中的非葉結(jié)點(diǎn)x=[i...j]將隨機(jī)選取并存在得出屬性公開參數(shù)∪zk,i、屬性隱含參數(shù)∪zk,i以及aak所對應(yīng)的公開隨機(jī)參數(shù)rk,其中∪zk,i=zk,1,...,zk,3n,∪zk,i=zk,1,...,zk,3n,存在其中k=(1,2,...,t)為屬性授權(quán)機(jī)構(gòu)索引;

      步驟二、數(shù)據(jù)加密:將欲加密的明文數(shù)據(jù)m、全局公開參數(shù)δ和用戶指定的訪問策略w作為輸入,遍歷屬性授權(quán)機(jī)構(gòu)建立的屬性訪問樹γ進(jìn)行加密算法,得到加密數(shù)據(jù)ct;

      步驟三、密鑰分發(fā),包括用戶身份密鑰分發(fā)和用戶屬性密鑰分發(fā):

      用戶身份密鑰分發(fā):用戶向中央授權(quán)機(jī)構(gòu)cad提供一個(gè)唯一身份標(biāo)識gid,cad將屬性授權(quán)機(jī)構(gòu)aa生成的參數(shù)r和用戶的唯一身份標(biāo)識信息gid作為輸入,輸出身份密鑰skca和屬性密鑰生成參數(shù)ξ;

      用戶屬性密鑰分發(fā):用戶向?qū)傩允跈?quán)機(jī)構(gòu)aak申請屬性密鑰,屬性授權(quán)機(jī)構(gòu)aak驗(yàn)證用戶提供的身份信息是否正確,如果正確,屬性授權(quán)機(jī)構(gòu)aak將rk和∪zk,i作為輸入,為用戶輸出一組屬性密鑰skaa,如果不正確將終止屬性密鑰的分發(fā);

      步驟四、解密密文:授權(quán)用戶將系統(tǒng)提供的用戶屬性密鑰skaa、用戶身份密鑰skca和加密密文ct作為輸入,系統(tǒng)根據(jù)用戶所提供的信息運(yùn)行解密算法;如果用戶符合訪問策略輸出數(shù)據(jù)m,否則解密失敗終止系統(tǒng)。

      本發(fā)明所述步驟二中對明文數(shù)據(jù)m加密的具體方法為:

      給定明文數(shù)據(jù)m,為其選定一個(gè)首次加密隨機(jī)參數(shù)得到加密的明文c=m·ys和c′=gs,用戶設(shè)置一個(gè)訪問控制策略其中為全局屬性集合,給定一個(gè)訪問控制結(jié)構(gòu)遍歷平衡二叉樹γ進(jìn)行加密:

      (1)若attk,i和attk,i+1為兩個(gè)葉子節(jié)點(diǎn),對應(yīng)的屬性值為i和i+1,對于每個(gè)都存在如下關(guān)系:如果i=+i,則有如果則有如果則有并將以上結(jié)果包含于密文當(dāng)中;如果則返回0;

      (2)attk,i和attk,i+1為兩個(gè)非葉子節(jié)點(diǎn),規(guī)則如下:

      如果兩個(gè)非葉結(jié)點(diǎn)attk,i和attk,i+1都返回1,則返回1;

      如果兩個(gè)非葉結(jié)點(diǎn)attk,i和attk,i+1都返回0,則返回0;

      如果兩個(gè)非葉結(jié)點(diǎn)attk,i和attk,i+1中,attk,i返回0而另attk,i+1返回1,則定義并將與所對應(yīng)的節(jié)點(diǎn)信息寫入密文當(dāng)中,返回1;

      最后得出加密密文ct,

      本發(fā)明所述步驟三中用戶身份密鑰分發(fā)的方法為:系統(tǒng)為用戶隨機(jī)選取使其與用戶一一對應(yīng),可得d*=gy-r,θ=1/ogid,最后得到ca的身份密鑰skca,skca=(d,d*,θ),運(yùn)行簽名算法,對(signkey,gid)進(jìn)行簽名得到用戶的簽名驗(yàn)證參數(shù)從而得到用戶屬性密鑰生成參數(shù)ξ,ξ只能用于aa生成屬性密鑰。

      本發(fā)明所述步驟三中用戶屬性密鑰分發(fā)的方法為:

      當(dāng)接收到屬性授權(quán)請求時(shí),aak利用ud對ξ中的簽名驗(yàn)證信息進(jìn)行驗(yàn)證,如果驗(yàn)證失敗則授權(quán)終止;

      為隨機(jī)參數(shù)且rgid,k,x=σrgid,k,i,其中i為x的子節(jié)點(diǎn),令用戶的屬性集合為存在屬性當(dāng)且僅當(dāng)可得i=+i;當(dāng)可得i=-i;當(dāng)屬性令該屬性密鑰為當(dāng)屬性時(shí),令該屬性密鑰為當(dāng)時(shí),令該屬性密鑰為對于非葉子節(jié)點(diǎn)x存在最后可得到屬性私鑰skaa,

      本發(fā)明所述步驟四中解密密文的方法為:將加密密文用戶屬性密鑰和用戶身份密鑰skca=(d,d*)作為輸入,從加密密文ct中提取訪問控制結(jié)構(gòu)將用戶屬性集合與訪問控制結(jié)構(gòu)w做判斷,如果不滿足w則終止解密過程,否則對所有屬性進(jìn)行如下解密過程:

      如果節(jié)點(diǎn)x為葉子節(jié)點(diǎn):

      (1)如果屬性且屬性設(shè)置為

      (2)如果屬性且屬性設(shè)置為

      (3)如果屬性i設(shè)置為don'tcare,則

      如果節(jié)點(diǎn)x為非葉子節(jié)點(diǎn),則

      將上述結(jié)果帶入下式進(jìn)行計(jì)算:

      由此得到:明文m為

      本發(fā)明的有益效果是:本發(fā)明解決了大型屬性加密系統(tǒng)中訪問結(jié)構(gòu)稀疏所帶來的加解密運(yùn)算消耗大,存儲空間占用率高的問題,彌補(bǔ)了其他方案在這一方面的不足;同時(shí)在本發(fā)明中不僅解決了計(jì)算效率和數(shù)據(jù)存儲利用率的問題,還具有抗共謀攻擊和選擇明文攻擊的安全性。

      附圖說明

      圖1為本發(fā)明內(nèi)容流程示意圖。

      具體實(shí)施方式

      一種多授權(quán)屬性加解密方法,包括以下步驟:

      步驟一、系統(tǒng)初始化:包括層級屬性機(jī)構(gòu)屬性訪問樹γ的構(gòu)建、系統(tǒng)參數(shù)生成、中央授權(quán)機(jī)構(gòu)初始化和屬性授權(quán)機(jī)構(gòu)初始化四個(gè)方面;

      (1)系統(tǒng)參數(shù)生成:在系統(tǒng)內(nèi)輸入一個(gè)安全參數(shù)1λ,系統(tǒng)調(diào)用群生成算法生成兩個(gè)階為素?cái)?shù)p的乘法循環(huán)群g和gt,群g的生成元為g,存在雙線性映射e:g×g→gt,同時(shí),選取一個(gè)存在性不可偽造的簽名算法σsign=(kengen,sign,verify),輸出全局公開參數(shù)δ=(e,g,g,gt,p,σsign);

      (2)層級屬性訪問樹γ的構(gòu)建:每一個(gè)屬性授權(quán)機(jī)構(gòu)將域內(nèi)屬性進(jìn)行編碼,使每一個(gè)屬性都有自己的索引indexi,然后建立一個(gè)平衡二叉樹,該平衡二叉樹的非葉結(jié)點(diǎn)t[i...j]中,開始的序號為該非葉結(jié)點(diǎn)下對應(yīng)的最左端葉節(jié)點(diǎn)的索引值,結(jié)束的序號為該非葉結(jié)點(diǎn)最右端葉節(jié)點(diǎn)所對應(yīng)的屬性值,在非偶數(shù)個(gè)屬性出現(xiàn)時(shí),二叉樹的最右端將補(bǔ)充一個(gè)表達(dá)值恒為i的空屬性,保持屬性樹中所有非葉子結(jié)點(diǎn)的平衡;對于特定屬性授權(quán)機(jī)構(gòu)aak所建立的屬性訪問樹定義為γk,k表示特定屬性授權(quán)機(jī)構(gòu)aak的索引;

      (3)中央授權(quán)機(jī)構(gòu)初始化:存在若干個(gè)中央授權(quán)機(jī)構(gòu)ca,ca={ca1,ca2,...,cal},l表示ca的個(gè)數(shù),每個(gè)中央授權(quán)機(jī)構(gòu)獨(dú)立運(yùn)行初始化算法,隨機(jī)選擇yd,yd為cad的主密鑰,存在令y=e(g,g)y,其中y為公開加密參數(shù),調(diào)用簽名算法得到驗(yàn)證簽名密鑰verifykeyd,cad的簽名算法公私鑰對capvd,verifykeyd=μd,capvd=(signkeyd,μd);

      (4)屬性授權(quán)機(jī)構(gòu)初始化:存在若干個(gè)屬性授權(quán)機(jī)構(gòu)aa,aa={aa1,aa2,...,aat},t表示aa的個(gè)數(shù),aa負(fù)責(zé)向用戶提供用戶的屬性相關(guān)密鑰,每一個(gè)aaj都負(fù)責(zé)管理一個(gè)屬性域uj,都與任意的aai都有這使得每個(gè)屬性僅屬于一個(gè)aa管理,每個(gè)aa所管理的屬性是互不沖突的。對于全局屬性集全局屬性授權(quán)機(jī)構(gòu)隨機(jī)選取其中m為全局屬性域所包含的屬性個(gè)數(shù);同時(shí),對于某個(gè)特定的屬性授權(quán)機(jī)構(gòu)aak當(dāng)中的非葉結(jié)點(diǎn)x=[i...j]將隨機(jī)選取并存在得出屬性公開參數(shù)∪zk,i、屬性隱含參數(shù)∪zk,i以及aak所對應(yīng)的公開隨機(jī)參數(shù)rk,其中∪zk,i=zk,1,...,zk,3n,∪zk,i=zk,1,...,zk,3n,存在其中k=(1,2,...,t)為屬性授權(quán)機(jī)構(gòu)索引;

      步驟二、數(shù)據(jù)加密:將欲加密的明文數(shù)據(jù)m、全局公開參數(shù)δ和用戶指定的訪問策略w作為輸入,遍歷屬性授權(quán)機(jī)構(gòu)建立的屬性訪問樹γ進(jìn)行加密算法,得到加密數(shù)據(jù)ct;

      步驟三、密鑰分發(fā),包括用戶身份密鑰分發(fā)和用戶屬性密鑰分發(fā):

      用戶身份密鑰分發(fā):用戶向中央授權(quán)機(jī)構(gòu)cad提供一個(gè)唯一身份標(biāo)識gid,cad將屬性授權(quán)機(jī)構(gòu)aa生成的參數(shù)r和用戶的唯一身份標(biāo)識信息gid作為輸入,輸出身份密鑰skca和屬性密鑰生成參數(shù)ξ;

      用戶屬性密鑰分發(fā):用戶向?qū)傩允跈?quán)機(jī)構(gòu)aak申請屬性密鑰,屬性授權(quán)機(jī)構(gòu)aak驗(yàn)證用戶提供的身份信息是否正確,如果正確,屬性授權(quán)機(jī)構(gòu)aak將rk和∪zk,i作為輸入,為用戶輸出一組屬性密鑰skaa,如果不正確將終止屬性密鑰的分發(fā);

      步驟四、解密密文:授權(quán)用戶將系統(tǒng)提供的用戶屬性密鑰skaa、用戶身份密鑰skca和加密密文ct作為輸入,系統(tǒng)根據(jù)用戶所提供的信息運(yùn)行解密算法;如果用戶符合訪問策略輸出數(shù)據(jù)m,否則解密失敗終止系統(tǒng)。

      進(jìn)一步,所述步驟二中對明文數(shù)據(jù)m加密的具體方法為:

      給定明文數(shù)據(jù)m,為其選定一個(gè)首次加密隨機(jī)參數(shù)得到加密的明文c=m·ys和c′=gs,用戶設(shè)置一個(gè)訪問控制策略其中為全局屬性集合,給定一個(gè)訪問控制結(jié)構(gòu)遍歷平衡二叉樹γ進(jìn)行加密:

      (1)若attk,i和attk,i+1為兩個(gè)葉子節(jié)點(diǎn),對應(yīng)的屬性值為i和i+1,對于每個(gè)都存在如下關(guān)系:如果i=+i,則有如果i=-i,則有如果則有并將以上結(jié)果包含于密文當(dāng)中;如果則返回0;

      (2)attk,i和attk,i+1為兩個(gè)非葉子節(jié)點(diǎn),規(guī)則如下:

      如果兩個(gè)非葉結(jié)點(diǎn)attk,i和attk,i+1都返回1,則返回1;

      如果兩個(gè)非葉結(jié)點(diǎn)attk,i和attk,i+1都返回0,則返回0;

      如果兩個(gè)非葉結(jié)點(diǎn)attk,i和attk,i+1中,attk,i返回0而另attk,i+1返回1,則定義并將與所對應(yīng)的節(jié)點(diǎn)信息寫入密文當(dāng)中,返回1;

      最后得出加密密文ct,

      進(jìn)一步,所述步驟三中用戶身份密鑰分發(fā)的方法為:系統(tǒng)為用戶隨機(jī)選取使其與用戶一一對應(yīng),可得d*=gy-r,θ=1/ogid,最后得到ca的身份密鑰skca,skca=(d,d*,θ),運(yùn)行簽名算法,對(signkey,gid)進(jìn)行簽名得到用戶的簽名驗(yàn)證參數(shù)從而得到用戶屬性密鑰生成參數(shù)ξ,ξ只能用于aa生成屬性密鑰。

      進(jìn)一步,所述步驟三中用戶屬性密鑰分發(fā)的方法為:

      當(dāng)接收到屬性授權(quán)請求時(shí),aak利用ud對ξ中的簽名驗(yàn)證信息進(jìn)行驗(yàn)證,如果驗(yàn)證失敗則授權(quán)終止;

      為隨機(jī)參數(shù)且rgid,k,x=σrgid,k,i,其中i為x的子節(jié)點(diǎn),令用戶的屬性集合為存在屬性當(dāng)且僅當(dāng)可得i=+i;當(dāng)可得i=-i;當(dāng)屬性令該屬性密鑰為當(dāng)屬性時(shí),令該屬性密鑰為當(dāng)時(shí),令該屬性密鑰為對于非葉子節(jié)點(diǎn)x存在最后可得到屬性私鑰skaa,

      進(jìn)一步,所述步驟四中解密密文的方法為:將加密密文用戶屬性密鑰和用戶身份密鑰skca=(d,d*)作為輸入,從加密密文ct中提取訪問控制結(jié)構(gòu)將用戶屬性集合與訪問控制結(jié)構(gòu)w做判斷,如果不滿足w則終止解密過程,否則對所有屬性進(jìn)行如下解密過程:

      如果節(jié)點(diǎn)x為葉子節(jié)點(diǎn):

      (1)如果屬性且屬性設(shè)置為i=+i,則

      (2)如果屬性且屬性設(shè)置為i=-i,則

      (4)如果屬性i設(shè)置為don'tcare,則

      如果節(jié)點(diǎn)x為非葉子節(jié)點(diǎn),則

      將上述結(jié)果帶入下式進(jìn)行計(jì)算:

      由此得到:明文m為

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1