本發(fā)明涉及通信加密解密技術(shù)領(lǐng)域,更具體地,涉及一種非對(duì)稱跨密碼系統(tǒng)重加密、解密方法及系統(tǒng)。
背景技術(shù):
目前,隨著信息通信技術(shù)的發(fā)展,多種密碼系統(tǒng)被提出來(lái)以實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)陌踩C?。根?jù)通信雙方掌握的密鑰是否相同,密碼系統(tǒng)可以劃分為兩部分:私鑰加密系統(tǒng)和公鑰加密系統(tǒng)。在私鑰加密系統(tǒng)中,通信雙方擁有相同的密鑰(私鑰);在公鑰加密系統(tǒng)中接收方擁有一對(duì)密鑰,即加密密鑰與解密密鑰,加密密鑰可以公開(kāi),解密密鑰需要保密。私鑰加密系統(tǒng)和公鑰加密系統(tǒng)的算法均可公開(kāi),但私鑰必須保密,一旦私鑰泄露,則整個(gè)加密的數(shù)據(jù)不再安全。在密碼系統(tǒng)中,我們稱要被加密的消息為明文,而加密過(guò)后的消息稱為密文。在公鑰加密系統(tǒng)中,被用來(lái)加密明文的密鑰是可以公開(kāi)的,稱為公鑰,而用來(lái)解密密文并恢復(fù)出明文的密鑰稱為私鑰。
傳統(tǒng)的公鑰密碼系統(tǒng)一般需要獨(dú)立第三方來(lái)管理公鑰,當(dāng)用戶數(shù)過(guò)大時(shí),該第三方將成為系統(tǒng)瓶頸?;谏矸莸募用芊椒?Identity-Based Encryption,簡(jiǎn)稱IBE)可以解決上述公鑰管理困難問(wèn)題?;谏矸菁用芟到y(tǒng)通常包含通常為加、解密方和私鑰生成中心。解密方的唯一身份標(biāo)識(shí)ID(比如身份證號(hào)、電子郵箱地址、電話號(hào)碼)作為加密的公鑰。私鑰生成中心根據(jù)身份標(biāo)識(shí)ID為解密方生成解密用的私鑰。加密方使用ID對(duì)明文進(jìn)行加密。解密方使用自己ID對(duì)應(yīng)的私鑰解密用ID加密產(chǎn)生的密文?;谏矸菁用芟到y(tǒng)節(jié)省了公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,簡(jiǎn)稱PKI)對(duì)用戶發(fā)放認(rèn)證證書(shū)的環(huán)節(jié),減輕了系統(tǒng)的開(kāi)銷,更具有實(shí)用價(jià)值。
在IBE這種高效快捷的加密算法基礎(chǔ)上又衍生出了基于身份的廣播加密方法(Identity-Based Broadcast Encryption,簡(jiǎn)稱IBBE)。在傳統(tǒng)的廣播加密中,發(fā)送方可以指定多個(gè)接收者,然后使用所有接收者的公鑰證書(shū)對(duì)數(shù)據(jù)進(jìn)行加密,并且保證指定用戶之外的用戶都不能解密廣播加密密文?;谏矸莸膹V播加密在廣播加密的基礎(chǔ)上,去掉了公鑰證書(shū),允許發(fā)送方使用接收者的公開(kāi)身份標(biāo)識(shí)集合進(jìn)行加密,保證只有身份標(biāo)識(shí)被發(fā)送方指定的用戶才能解密。舉個(gè)列子,我們考慮這樣一種應(yīng)用場(chǎng)景:某公司員工A想與其他公司的n位員工共同討論某項(xiàng)商業(yè)合作,出于保護(hù)商業(yè)秘密目的,員工A在發(fā)送商業(yè)項(xiàng)目書(shū)之前對(duì)項(xiàng)目書(shū)內(nèi)容進(jìn)行加密。若采用基于身份加密方法,員工A需使用n個(gè)員工的身份標(biāo)識(shí),加密n次,生成n份密文,然后將密文逐個(gè)發(fā)給對(duì)應(yīng)員工;若采用基于身份廣播加密方法,A只需使用n名員工的身份標(biāo)識(shí)集合對(duì)項(xiàng)目書(shū)加密一次,生成一份密文,廣播給n名員工,身份標(biāo)識(shí)屬于加密身份標(biāo)識(shí)集合的員工即可解密?;谏矸莸膹V播加密方法大大節(jié)省了加密時(shí)間,降低了密文傳輸?shù)拈_(kāi)銷,方法更加高效。
基于身份廣播加密系統(tǒng)無(wú)需公鑰證書(shū)即可加密數(shù)據(jù),提高了廣播加密的效率,但在面臨更復(fù)雜情況時(shí)仍有不足。我們考慮如下應(yīng)用場(chǎng)景:在一個(gè)使用云計(jì)算服務(wù)來(lái)存儲(chǔ)和分享數(shù)據(jù)的公司中,所有員工可以使用辦公室電腦和移動(dòng)設(shè)備上傳和下載數(shù)據(jù)。公司員工都關(guān)聯(lián)著唯一字符串,作為他們的身份標(biāo)識(shí)。在辦公室工作的員工Alice使用部署了基于身份廣播加密系統(tǒng)(IBBE)的電腦加密她的敏感數(shù)據(jù),使得一組由Alice指定的員工可以訪問(wèn)她存儲(chǔ)在云服務(wù)器中的數(shù)據(jù)。在戶外工作的員工Bob使用部署了基于身份加密系統(tǒng)(IBE)的移動(dòng)設(shè)備(如iPad或Android平板電腦)處理上傳到云服務(wù)器的數(shù)據(jù)。在某個(gè)時(shí)刻,員工Bob請(qǐng)求訪問(wèn)員工Alice的數(shù)據(jù)。但是,Alice的數(shù)據(jù)已經(jīng)被IBBE系統(tǒng)加密,Bob的移動(dòng)設(shè)備難以承受IBBE系統(tǒng)的復(fù)雜解密開(kāi)銷,而且Alice(或其他能夠訪問(wèn)Alice數(shù)據(jù)的員工)不愿意解密數(shù)據(jù)再加密發(fā)給Bob。在這種情況下,Alice和Bob需要一種更簡(jiǎn)潔的方法處理Alice的加密數(shù)據(jù),使得Bob可以直接使用IBE系統(tǒng)的私鑰直接解密IBBE系統(tǒng)的密文。
一種可能的解決方法是代理重加密(Proxy re-encryption,簡(jiǎn)稱PRE)。在一般的公鑰加密系統(tǒng)中,一份密文通常是由一個(gè)或多個(gè)公鑰生成,而一旦產(chǎn)生,其關(guān)聯(lián)的公鑰便不能再更改。代理重加密允許用戶在不用解密的情況下即可實(shí)現(xiàn)“二次”加密,即在不泄露明文的情況下將密文關(guān)聯(lián)的公鑰進(jìn)行改變,使得額外的訪問(wèn)者使用自身私鑰即可解密。代理重加密包含三個(gè)參與方,即私鑰生成中心(PKG)、解密授權(quán)方(Delegator)、代理重加密方(Proxy)和被授權(quán)方(Delegatee)。一個(gè)代理重加密的典型應(yīng)用是郵件代理:假設(shè)某員工A(Delegator)要出差一段時(shí)間,他要將發(fā)給自己的郵件轉(zhuǎn)交給B(Delegatee)處理;發(fā)給A的郵件都用A的公鑰進(jìn)行了加密,當(dāng)A出差或休假時(shí),他使用B的公鑰生成密文轉(zhuǎn)換密鑰并將該密鑰發(fā)給代理(Proxy);當(dāng)A的郵件到達(dá)郵件服務(wù)器時(shí),代理使用密文轉(zhuǎn)換密鑰將發(fā)給A的加密郵件轉(zhuǎn)換成用B的公鑰加密的郵件,使得B可以使用私鑰生成中心頒發(fā)給自己的私鑰直接解密。在上述所有環(huán)節(jié)中,代理不知道用戶A的郵件信息,A的郵件在整個(gè)傳輸過(guò)程中都以密文形式存在。
隨著代理重加密技術(shù)的提出,越來(lái)越多的加密方法與代理重加密結(jié)合產(chǎn)生了不同加密系統(tǒng)下的代理重加密方法。但是,目前大多數(shù)代理重加密方法都是基于同一個(gè)加密系統(tǒng)的,即原始密文和轉(zhuǎn)換后的密文都屬于同一個(gè)加密系統(tǒng)。以基于身份的代理重加密為例,原始密文是基于身份加密密文(IBE密文),對(duì)應(yīng)的加密公鑰設(shè)為ID1,在代理進(jìn)行轉(zhuǎn)換后,密文對(duì)應(yīng)的公鑰變成了ID2,但密文仍是IBE密文。這類代理重加密方法解決了在同一加密系統(tǒng)中轉(zhuǎn)換密文的問(wèn)題,但在前述的Alice和Bob基于云存儲(chǔ)分享數(shù)據(jù)的環(huán)境中就顯得不夠用了。在前述應(yīng)用場(chǎng)景中,出于節(jié)約本地存儲(chǔ)和方便分享的目的,某公司使用云存儲(chǔ)來(lái)為公司員工提供數(shù)據(jù)存儲(chǔ)功能。為保護(hù)數(shù)據(jù)安全,在數(shù)據(jù)上傳之前,用戶采用某種加密系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行加密,并同時(shí)指定數(shù)據(jù)的授權(quán)訪問(wèn)者。這樣,存儲(chǔ)在云存儲(chǔ)服務(wù)器上的數(shù)據(jù),除了基于身份廣播加密外,還能被其他由該擁有者指定的用戶訪問(wèn),從而達(dá)到數(shù)據(jù)安全分享的目的。
在前述的應(yīng)用場(chǎng)景中,Alice和Bob使用的訪問(wèn)終端不同(Alice使用計(jì)算能力強(qiáng)的臺(tái)式電腦、Bob使用計(jì)算能力弱的手持終端),訪問(wèn)終端上部署的加密系統(tǒng)也不用(臺(tái)式電腦部署功能強(qiáng)大但耗資源的IBBE加密系統(tǒng)、手持終端部署計(jì)算能力弱但功能簡(jiǎn)單的IBE加密系統(tǒng)),這導(dǎo)致了一個(gè)大多數(shù)代理重加密不能解決的問(wèn)題:如何將對(duì)終端計(jì)算能力要求高的加密系統(tǒng)(IBBE)的密文,通過(guò)代理重加密方式,轉(zhuǎn)換成對(duì)終端計(jì)算能力要求低的加密系統(tǒng)(IBE)的密文。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明為克服上述問(wèn)題或者至少部分地解決上述問(wèn)題,提供一種非對(duì)稱跨密碼系統(tǒng)重加密、解密方法及系統(tǒng)。
根據(jù)本發(fā)明的一個(gè)方面,提供一種非對(duì)稱跨密碼系統(tǒng)的加密方法,包括:
步驟1,基于用戶ID生成基于身份廣播加密終端公、私鑰對(duì),生成基于身份加密終端公、私鑰對(duì),將所述各公鑰公開(kāi)并將所述各私鑰分別發(fā)送給基于身份廣播加密終端和基于身份加密終端;
步驟2,基于所述基于身份廣播加密私鑰,利用身份廣播加密系統(tǒng)對(duì)待加密數(shù)據(jù)進(jìn)行加密獲得密文。
根據(jù)本發(fā)明的另一個(gè)方面,提供一種非對(duì)稱跨密碼系統(tǒng)的解密方法,包括:
步驟01,基于有權(quán)訪問(wèn)者j的IDj和其對(duì)應(yīng)基于身份廣播加密終端私鑰生成轉(zhuǎn)換秘鑰并發(fā)送給代理重加密終端;
步驟02,所述代理重加密終端接收所述轉(zhuǎn)換秘鑰,獲取對(duì)應(yīng)密文,基于所述轉(zhuǎn)換秘鑰和所述密文計(jì)算得到轉(zhuǎn)換后的密文并發(fā)送給基于身份加密終端;
步驟03,所述基于身份加密終端接收所述轉(zhuǎn)換后的密文,基于所述基于身份加密終端公、私鑰對(duì)所述轉(zhuǎn)換后的密文進(jìn)行解密。
根據(jù)本發(fā)明的又一個(gè)方面,提供一種非對(duì)稱跨密碼系統(tǒng)的重加密、解密系統(tǒng),包括:
私鑰產(chǎn)生中心、基于身份廣播加密終端、基于身份加密終端、代理重加密終端:
所述私鑰產(chǎn)生中心,分別與所述基于身份廣播加密終端相連,用于基于用戶ID生成基于身份廣播加密終端公、私鑰對(duì),生成基于身份加密終端公、私鑰對(duì),將所述各公鑰公開(kāi)并將所述各私鑰分別發(fā)送給基于身份廣播加密終端和基于身份加密終端;
所述基于身份廣播加密終端,分別有所述私鑰產(chǎn)生中心和所述代理重加密終端相連;用于基于所述基于身份廣播加密私鑰,利用身份廣播加密系統(tǒng)對(duì)待加密數(shù)據(jù)進(jìn)行加密獲得密文;用于基于有權(quán)訪問(wèn)者j的IDj和其對(duì)應(yīng)基于身份廣播加密終端私鑰生成轉(zhuǎn)換秘鑰并發(fā)送給代理重加密終端;
所述代理重加密終端與所述基于身份廣播加密終端和基于身份加密終端相連,用于接收所述轉(zhuǎn)換秘鑰,獲取對(duì)應(yīng)密文,基于所述轉(zhuǎn)換秘鑰和所述密文計(jì)算得到轉(zhuǎn)換后的密文并發(fā)送給基于身份加密終端;
所述解密者終端,分別與所述代理重加密終端和所述私鑰產(chǎn)生中心相連,用于接收所述加密者終端私鑰,接收所述代理重加密終端發(fā)送來(lái)的轉(zhuǎn)換后的密文,基于所述解密者終端公、私鑰對(duì)所述轉(zhuǎn)換后的密文進(jìn)行解密。
本申請(qǐng)?zhí)岢鲆环N非對(duì)稱跨密碼系統(tǒng)重加密、解密方法及系統(tǒng),結(jié)合了基于身份加密算法優(yōu)勢(shì),有效解決公鑰管理困難問(wèn)題,同時(shí),該方法提供了一種從功能豐富但能耗高的基于身份廣播加密(IBBE)系統(tǒng)到簡(jiǎn)單高效的基于身份加密(IBE)系統(tǒng)的密文轉(zhuǎn)換方法,并保證在整個(gè)轉(zhuǎn)換過(guò)程中明文信息不會(huì)被泄露。非對(duì)稱跨密碼系統(tǒng)重加密方法可應(yīng)用于訪問(wèn)終端計(jì)算能力非對(duì)稱的數(shù)據(jù)共享環(huán)境中,在為計(jì)算能力不同的終端部署適合的加密系統(tǒng)的同時(shí),為計(jì)算能力高的用戶向計(jì)算能力低的用戶共享秘密數(shù)據(jù)提供了一條安全且有效的途徑。其優(yōu)點(diǎn)和功效還包括:
1)本發(fā)明方法集成了一個(gè)復(fù)雜但功能豐富的基于身份廣播加密(IBBE)系統(tǒng)和一個(gè)簡(jiǎn)單卻有效的基于身份加密(IBE)系統(tǒng),允許計(jì)算資源充足的設(shè)備部署基于身份廣播加密系統(tǒng)而計(jì)算資源有限的移動(dòng)設(shè)備部署基于身份加密系統(tǒng)。
2)本發(fā)明方法實(shí)現(xiàn)了跨系統(tǒng)代理重加密,將用IBBE系統(tǒng)公鑰加密的密文轉(zhuǎn)換成用IBE系統(tǒng)的公鑰加密的密文,使得重加密之前只能用IBBE系統(tǒng)的私鑰解密的密文轉(zhuǎn)換成了用IBE的私鑰也可以解密的密文,這種代理重加密方法節(jié)約了不同密碼系統(tǒng)間進(jìn)行數(shù)據(jù)分享時(shí)解密再加密的繁瑣步驟,同時(shí)保障了數(shù)據(jù)分享的安全性。
3)本發(fā)明方法與以往的代理重加密方法最大的優(yōu)勢(shì)與創(chuàng)新點(diǎn)在于:該方法通過(guò)代理重加密技術(shù)將兩個(gè)獨(dú)立的密碼系統(tǒng)進(jìn)行了無(wú)縫連接,兩個(gè)密碼系統(tǒng)的公鑰、私鑰不會(huì)因?yàn)榇碇丶用艿囊攵l(fā)生改變;傳統(tǒng)代理重加密技術(shù)僅僅實(shí)現(xiàn)了在同一個(gè)密碼系統(tǒng)中的密文轉(zhuǎn)換,本發(fā)明實(shí)現(xiàn)了從一個(gè)密碼系統(tǒng)至另一個(gè)密碼系統(tǒng)的密文轉(zhuǎn)換;前一個(gè)密碼系統(tǒng)為基于身份廣播加密系統(tǒng),可部署于計(jì)算資源充足的用戶以實(shí)現(xiàn)更豐富的加密功能,后一個(gè)密碼系統(tǒng)為基于身份加密系統(tǒng),可部署于計(jì)算資源受限用戶實(shí)現(xiàn)簡(jiǎn)單高效加密,本發(fā)明完成了從基于身份廣播加密系統(tǒng)到基于身份加密系統(tǒng)的數(shù)據(jù)安全傳輸,為移動(dòng)計(jì)算環(huán)境中的數(shù)據(jù)分享提供了安全有效的方法。
4)本發(fā)明方法中的IBBE系統(tǒng)用戶在代理加密之前只需根據(jù)自己的私鑰和指定的IBE系統(tǒng)用戶ID,以及IBE系統(tǒng)的公鑰信息即可生成轉(zhuǎn)換密鑰。在轉(zhuǎn)換密鑰生成中雖然使用了自己的私鑰,但是該私鑰已經(jīng)被IBE系統(tǒng)加密盲化,從而保證了獲得轉(zhuǎn)換密鑰的代理也無(wú)法直接解密IBBE系統(tǒng)密文。該方法適用于代理不完全可信的應(yīng)用環(huán)境。
附圖說(shuō)明
圖1為根據(jù)本發(fā)明實(shí)施例一種非對(duì)稱跨密碼系統(tǒng)的加密方法的整體流程示意圖;
圖2為根據(jù)本發(fā)明實(shí)施例一種非對(duì)稱跨密碼系統(tǒng)的解密方法的整體流程示意圖;
圖3為根據(jù)本發(fā)明實(shí)施例一種非對(duì)稱跨密碼系統(tǒng)的加密、解密系統(tǒng)的整體框架示意圖;
圖4為根據(jù)本發(fā)明實(shí)施例一種非對(duì)稱跨密碼系統(tǒng)的加密、解密系統(tǒng)的系統(tǒng)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。
本發(fā)明解決了傳統(tǒng)代理重加密方法不能在不同加密系統(tǒng)間進(jìn)行密文轉(zhuǎn)換的問(wèn)題。本發(fā)明提出的非對(duì)稱跨密碼系統(tǒng)重加密橋接了兩種不同的加密系統(tǒng):基于身份廣播加密(IBBE)和基于身份加密(IBE),這兩個(gè)加密系統(tǒng)可以獨(dú)立運(yùn)行,擁有獨(dú)立的加解密算法。非對(duì)稱跨密碼系統(tǒng)重加密方法將上述兩種不同的密碼系統(tǒng)結(jié)合起來(lái),通過(guò)代理將基于身份廣播加密(IBBE)系統(tǒng)的密文,在不泄露真實(shí)消息的情況下轉(zhuǎn)換成基于身份加密(IBE)系統(tǒng)密文。通過(guò)這種跨密碼系統(tǒng)的代理重加密方式,可以解決在計(jì)算能力非對(duì)稱的終端間分享數(shù)據(jù)的問(wèn)題:Alice采用IBBE加密數(shù)據(jù),在需要將加密數(shù)據(jù)分享給IBE加密系統(tǒng)的用戶Bob時(shí),Alice只用生成了一個(gè)轉(zhuǎn)換密鑰,代理使用該轉(zhuǎn)換密鑰可以將Alice的IBBE加密密文,轉(zhuǎn)換成Bob可以直接解密的IBE加密密文。
本發(fā)明提出的非對(duì)稱跨密碼系統(tǒng)重加密方法包括了獨(dú)立的基于身份廣播加密系統(tǒng)和基于身份加密系統(tǒng),因此,在非對(duì)稱跨密碼系統(tǒng)重加密中有兩種密文:基于身份廣播加密(IBBE)密文和基于身份加密(IBE)密文。當(dāng)基于身份廣播加密系統(tǒng)中的用戶授權(quán)基于身份加密系統(tǒng)中的用戶訪問(wèn)IBBE加密系統(tǒng)中的加密文件時(shí),本發(fā)明要挑戰(zhàn)的困難是:在以下限制條件下,如何讓IBBE加密系統(tǒng)用戶(或授權(quán)代理)安全地將IBBE密文轉(zhuǎn)換成IBE加密密文,使得IBE加密系統(tǒng)用戶可以直接使用私鑰進(jìn)行解密:1.基于身份廣播加密(IBBE)系統(tǒng)用戶不需要安裝一個(gè)基于身份加密(IBE)系統(tǒng);2.基于身份加密(IBE)系統(tǒng)用戶不需要安裝一個(gè)基于身份廣播加密(IBBE)系統(tǒng);3.基于身份廣播加密系統(tǒng)用戶在轉(zhuǎn)換加密數(shù)據(jù)時(shí)不需要解密基于身份廣播加密密文。
非對(duì)稱跨密碼系統(tǒng)的重加密方法包括五個(gè)實(shí)體:1)私鑰產(chǎn)生中心(Private Key Generator,PKG):驗(yàn)證用戶身份,產(chǎn)生并分發(fā)用戶私鑰;基于身份廣播加密:使用基于身份廣播加密系統(tǒng)加密數(shù)據(jù),并將加密數(shù)據(jù)上傳給存儲(chǔ)服務(wù)提供商;3)代理重加密方(Proxy):簡(jiǎn)稱代理,使用基于身份廣播加密提供的轉(zhuǎn)換密鑰將基于身份廣播加密系統(tǒng)的加密文件轉(zhuǎn)換成基于身份加密系統(tǒng)的加密文件;4)基于身份加密:使用PKG頒發(fā)的私鑰解密基于身份加密系統(tǒng)密文,恢復(fù)數(shù)據(jù);5)存儲(chǔ)服務(wù)提供方:為基于身份廣播加密提供數(shù)據(jù)存儲(chǔ)服務(wù)。
本發(fā)明主要解決從基于身份廣播加密(IBBE)到基于身份加密(IBE)系統(tǒng)的密文轉(zhuǎn)換,數(shù)據(jù)擁有者使用基于身份廣播加密系統(tǒng)進(jìn)行加密,數(shù)據(jù)解密者使用基于身份加密系統(tǒng)進(jìn)行解密,所以在本說(shuō)明書(shū)中,如無(wú)特別聲明,數(shù)據(jù)擁有者即是IBBE用戶,數(shù)據(jù)解密者是IBE用戶。無(wú)論基于身份廣播加密(IBBE)系統(tǒng)還是基于身份加密(IBE)系統(tǒng),用戶的身份都由唯一可識(shí)別標(biāo)識(shí)——ID標(biāo)記。
下面,本說(shuō)明書(shū)介紹非對(duì)稱跨密碼系統(tǒng)的重加密中涉及的數(shù)學(xué)及密碼學(xué)基礎(chǔ)知識(shí)。
雙線性對(duì)。定義一種函數(shù)映射e(.,.),將群G中的元素映射到群GT中去,即e:G×G→GT;
對(duì)大素?cái)?shù)p,雙線性對(duì)滿足的特性有:
①雙線性特性:對(duì)于g,h∈G,a,b∈ZP,有e(ga,hb)=e(g,h)ab成立;
②非退化性:G群中至少存在一個(gè)元素g,使得計(jì)算后的e(g,g)為GT群的某個(gè)生成元;
③可計(jì)算性:存在有效的算法,使得所有的u,v∈G,可以有效計(jì)算出e(u,v)的值;
其中,Zp表示集合{0,1,2,...,p-1}。
抗碰撞哈希函數(shù)??古鲎补:瘮?shù)具備兩個(gè)基本特性:?jiǎn)蜗蛐院涂古鲎残浴蜗蛐灾笍墓:瘮?shù)的輸入可以輕易推導(dǎo)出輸出,但從輸出推導(dǎo)出輸入則非常困難。抗碰撞性指不能找到兩個(gè)不同的輸入,使得它們的哈希函數(shù)輸出值相等。本發(fā)明中的哈希算法輸入是用戶的身份ID,可為任意可識(shí)別字符串;輸出為映射到域Zp中的元素。
圖1中,本發(fā)明一個(gè)具體實(shí)施例中,示出一種非對(duì)稱跨密碼系統(tǒng)的加密方法??傮w上,包括:步驟1,基于用戶ID生成基于身份廣播加密終端公、私鑰對(duì),生成基于身份加密終端公、私鑰對(duì),將所述各公鑰公開(kāi)并將所述各私鑰分別發(fā)送給基于身份廣播加密終端和基于身份加密終端;
步驟2,基于所述基于身份廣播加密私鑰,利用身份廣播加密系統(tǒng)對(duì)待加密數(shù)據(jù)進(jìn)行加密獲得密文。
本發(fā)明另一個(gè)具體實(shí)施例中,示出一種非對(duì)稱跨密碼系統(tǒng)的加密方法,所述步驟2還包括:
利用抗碰撞哈希函數(shù)對(duì)有權(quán)訪問(wèn)者ID集中的每個(gè)用戶ID進(jìn)行計(jì)算得到
基于所述有權(quán)訪問(wèn)者ID集、待加密明文、基于身份廣播加密終端公鑰和計(jì)算獲得密文。
本發(fā)明又一個(gè)具體實(shí)施例中,示出一種非對(duì)稱跨密碼系統(tǒng)的加密方法,包括如下步驟:
私鑰產(chǎn)生中心(PKG)輸入系統(tǒng)安全參數(shù)λ和IBBE系統(tǒng)中能夠解密同一份密文的用戶數(shù)量上限(m-1),輸出IBBE系統(tǒng)公、私鑰對(duì)(分別用PKIBBE、MSKIBBE表示)和IBE系統(tǒng)公、私鑰對(duì)(分別用PKIBE、MSKIBE表示)。公鑰可以公開(kāi),但系統(tǒng)私鑰則須嚴(yán)格保密。系統(tǒng)公、私鑰生成步驟如下:
PKG首先輸入系統(tǒng)安全參數(shù)λ,然后運(yùn)行群生成算法g(1λ),輸出兩個(gè)階數(shù)為素?cái)?shù)p的群G、GT和一個(gè)雙線性映射運(yùn)算e:G×G→GT;
PKG選擇編碼函數(shù)F:GT→G,將群GT中的元素映射到群GT中的一個(gè)元素。該函數(shù)可以如下定義:給定元素e(g,gx)∈GT,其中輸出gx∈G。
PKG接下來(lái)運(yùn)行隨機(jī)數(shù)生成算法,隨機(jī)選擇G群中的某個(gè)生成元g,G群中的一個(gè)元素h,以及域中的一個(gè)元素α;
PKG計(jì)算下列元素:群GT中的一個(gè)元素e(g,h),和群中的(m+1)個(gè)元素
最后,PKG選擇一種抗碰撞哈希函數(shù)H(·),生成IBBE加密系統(tǒng)公鑰:
以及IBE加密系統(tǒng)的公鑰:
生成IBBE和IBE加密系統(tǒng)的系統(tǒng)私鑰:
MSKIBBE=MSKIBE=(g,α)
注1:在步驟1中所述的“算法g(1λ)”,其運(yùn)行方法如下:PKG輸入系統(tǒng)安全參數(shù)λ,根據(jù)λ的大小,選擇相應(yīng)的橢圓曲線:Y2=X3+aX+b,其中a和b是系數(shù),再由橢圓曲線上的點(diǎn)構(gòu)成兩個(gè)素?cái)?shù)p階的群G、GT。選擇一種函數(shù)映射e,將群G中的元素映射到群GT中去;安全參數(shù)數(shù)值越大,所選擇橢圓曲線上的點(diǎn)也越多,群也越大,系統(tǒng)的安全性也越高。
注2:在步驟2中所述的“隨機(jī)數(shù)生成算法”,其做法如下:根據(jù)步驟1中所選的橢圓曲線:Y2=X3+aX+b,隨機(jī)選擇自變量X的一個(gè)值x1,計(jì)算對(duì)應(yīng)因變量Y的值y1;若點(diǎn)(x1,,y1)在我們想要映射的群中,則成功生成了隨機(jī)元素。若點(diǎn)(x1,,y1)不在群中,則繼續(xù)選擇X的值,直到找到出現(xiàn)在群中的點(diǎn)。此外,域表示集合{1,2,…,p-1},隨機(jī)選擇域中元素的隨機(jī)數(shù)生成函數(shù)可以從Pairing-Based Cryptosystems函數(shù)包中調(diào)用庫(kù)函數(shù)運(yùn)行(Standford PBC library 0.5.12,http://crypto.stanford.edu/pbc)。
注3:在步驟3中所述的“運(yùn)行雙線性對(duì)運(yùn)算”,其做法如下:自變量的輸入為群G中的元素g、h,輸出為群GT中的元素:e(g,h)。
注4:步驟4中所述“抗碰撞哈希函數(shù)H(·)”,同樣可以從Pairing-Based Cryptosystems函數(shù)包中調(diào)用庫(kù)函數(shù)運(yùn)行。
本發(fā)明另一個(gè)具體實(shí)施例中,一種非對(duì)稱跨密碼系統(tǒng)的解密方法,還包括:用戶注冊(cè)模塊。
當(dāng)身份標(biāo)識(shí)為ID的用戶申請(qǐng)加入系統(tǒng)時(shí),PKG首先檢查申請(qǐng)者是否有資格。若是,為申請(qǐng)者產(chǎn)生一個(gè)解密私鑰。在非對(duì)稱跨密碼系統(tǒng)重加密中,雖然有兩個(gè)不同的加密系統(tǒng)(IBBE與IBE)存在,但PKG無(wú)需區(qū)分申請(qǐng)者屬于哪個(gè)加密系統(tǒng),它對(duì)所有的用戶都執(zhí)行相同步驟產(chǎn)生解密私鑰。在該模塊中,PKG輸入用戶身份ID、系統(tǒng)公、私鑰,輸出一個(gè)與ID關(guān)聯(lián)的解密私鑰。具體步驟如下:
PKG運(yùn)行抗碰撞哈希函數(shù)H(·),計(jì)算:
PKG使用系統(tǒng)私鑰(g,α)計(jì)算用戶ID的解密私鑰:
注:PKG并不區(qū)別用戶屬于IBBE還是IBE加密系統(tǒng),對(duì)兩個(gè)加密系統(tǒng)中的用戶均執(zhí)行上述步驟生成私鑰,這對(duì)PKG來(lái)說(shuō)是很簡(jiǎn)便的。
本發(fā)明又一個(gè)具體實(shí)施例中,示出一種非對(duì)稱跨密碼系統(tǒng)的加密方法,所述步驟2還包括如下步驟:
利用抗碰撞哈希函數(shù)對(duì)有權(quán)訪問(wèn)者ID集中的每個(gè)用戶ID進(jìn)行計(jì)算得到
基于所述有權(quán)訪問(wèn)者ID集、待加密明文、基于身份廣播加密終端公鑰和計(jì)算獲得密文。
本發(fā)明又一個(gè)具體實(shí)施例中,示出一種非對(duì)稱跨密碼系統(tǒng)的加密方法,所述步驟2還包括如下步驟:
IBBE加密系統(tǒng)中的數(shù)據(jù)擁有者在這一模塊中將公鑰PKIBBE和自己指定的授權(quán)訪問(wèn)身份集合以及待加密的消息M作為輸入,輸出加密后的密文CTS,并將加密后的數(shù)據(jù)上傳到存儲(chǔ)服務(wù)提供方。該模塊功能的實(shí)現(xiàn)分下述兩步。
數(shù)據(jù)擁有者(IBBE系統(tǒng)用戶)運(yùn)行抗碰撞哈希函數(shù)H(·),對(duì)集合S中的每個(gè)身份IDi計(jì)算哈希值:
數(shù)據(jù)擁有者運(yùn)行隨機(jī)數(shù)生成算法,選擇隨機(jī)元素運(yùn)行兩次群乘法和n+3次求冪運(yùn)算,得到:
最后的密文輸出為:CTS=(C0,C1,C2)。該密文是根據(jù)身份集合S加密,故只有身份標(biāo)識(shí)屬于集合S的用戶可以解密。
如圖2,本發(fā)明另一個(gè)具體實(shí)施例中,示出一種非對(duì)稱跨密碼系統(tǒng)的解密方法總體流程圖??傮w上,包括:步驟01,基于有權(quán)訪問(wèn)者j的IDj和其對(duì)應(yīng)基于身份廣播加密終端私鑰生成轉(zhuǎn)換秘鑰并發(fā)送給代理重加密終端;
步驟02,所述代理重加密終端接收所述轉(zhuǎn)換秘鑰,獲取對(duì)應(yīng)密文,基于所述轉(zhuǎn)換秘鑰和所述密文計(jì)算得到轉(zhuǎn)換后的密文并發(fā)送給基于身份加密終端;
步驟03,所述基于身份加密終端接收所述轉(zhuǎn)換后的密文,基于所述基于身份加密終端公、私鑰對(duì)所述轉(zhuǎn)換后的密文進(jìn)行解密。
本發(fā)明又一個(gè)具體實(shí)施例中,示出一種非對(duì)稱跨密碼系統(tǒng)的解密方法,所述步驟01還包括:
基于訪問(wèn)者j的IDj、其對(duì)應(yīng)基于身份廣播加密終端私鑰有權(quán)訪問(wèn)者ID集,利用抗碰撞哈希函數(shù)計(jì)算獲得轉(zhuǎn)換秘鑰CKS→ID并發(fā)送給代理重加密終端。
本發(fā)明又一個(gè)具體實(shí)施例中,示出一種非對(duì)稱跨密碼系統(tǒng)的解密方法,所述步驟01還包括:
假設(shè)數(shù)據(jù)已經(jīng)被基于身份廣播加密算法根據(jù)集合S加密并已存放在存儲(chǔ)服務(wù)提供方處。當(dāng)可以訪問(wèn)該數(shù)據(jù)的授權(quán)用戶IDj∈S想要授權(quán)一個(gè)基于身份加密系統(tǒng)中的用戶(設(shè)身份標(biāo)識(shí)為ID)該問(wèn)數(shù)據(jù),用戶IDj執(zhí)行如下步驟生成轉(zhuǎn)換密鑰并將該密鑰發(fā)送給代理。
S011,利用隨機(jī)數(shù)生成算法隨機(jī)選擇G群中的某個(gè)元素k∈G;對(duì)元素k計(jì)算:F(k)∈G;其中,G為加密時(shí)輸入系統(tǒng)安全系數(shù),運(yùn)行群生成算法輸出得到的階數(shù)為素?cái)?shù)p的群;
S012,利用抗碰撞哈希函數(shù)H(·),對(duì)所述有權(quán)訪問(wèn)者ID集合中每一個(gè)不等于IDj的身份標(biāo)識(shí),計(jì)算:
S013,基于用戶IDj其對(duì)應(yīng)基于身份廣播加密終端私鑰計(jì)算:
S014,利用隨機(jī)數(shù)生成算法,隨機(jī)選擇所述中的一個(gè)元素r作為指數(shù),利用哈希函數(shù)計(jì)算用戶ID的哈希值:
S015,E0=ke(g,h)r,E1=hr(α+H(ID));
S016,輸出轉(zhuǎn)換密鑰:并發(fā)送給代理重加密方。
該密鑰最后由用戶IDj發(fā)送給代理重加密方。該密鑰可以將用集合S加密的IBBE密文轉(zhuǎn)換成用身份標(biāo)識(shí)ID加密的IBE密文。
本發(fā)明又一個(gè)具體實(shí)施例中,示出一種非對(duì)稱跨密碼系統(tǒng)的解密方法,所述步驟02還包括。
代理重加密方(Proxy)在基于身份廣播加密的轉(zhuǎn)換密鑰之后,從存儲(chǔ)服務(wù)提供方處下載加密數(shù)據(jù)CTIBBE,并根據(jù)轉(zhuǎn)換密鑰CKS→ID計(jì)算轉(zhuǎn)換后的密文,該模塊的功能由下述計(jì)算步驟實(shí)現(xiàn):
S021,執(zhí)行如下算法:
其中,
C'0=C0/K=M/e(F(k),C2);
S022,得到轉(zhuǎn)換后密文:CTID=(C'0,C2,E0,E1)。
本發(fā)明又一個(gè)具體實(shí)施例中,示出一種非對(duì)稱跨密碼系統(tǒng)的解密方法,所述步驟03還包括:當(dāng)IBE系統(tǒng)用戶要求訪問(wèn)存儲(chǔ)服務(wù)提供方處的加密文件時(shí),代理先將加密文件進(jìn)行轉(zhuǎn)換然后發(fā)給IBE用戶。IBE用戶使用自己的私鑰SKID進(jìn)行解密。
設(shè)轉(zhuǎn)換后的密文為CTID=(C'0,C2,E0,E1),用戶(設(shè)身份標(biāo)識(shí)為ID)使用私鑰和公鑰PKIBE執(zhí)行如下算法進(jìn)行解密。
S031,對(duì)訪問(wèn)者IDj進(jìn)行一次雙線性對(duì)運(yùn)算和一次群乘逆運(yùn)算恢復(fù)出轉(zhuǎn)換密鑰中使用的隨機(jī)數(shù)k:
利用所述函數(shù)F(k)計(jì)算:F(k)∈G;
如下式經(jīng)過(guò)一次雙線性對(duì)和乘法運(yùn)算,得到最后的明文消息M:
M=C'0·e(F(k),C2)=[M/e(F(k),C2)]·e(F(k),C2)。
如圖3,示出本發(fā)明一個(gè)具體實(shí)施例中,示出一種非對(duì)稱跨密碼系統(tǒng)的重加密、解密系統(tǒng)總體框架示意圖??傮w上,結(jié)合圖4其特征在于,包括私鑰產(chǎn)生中心A1、基于身份廣播加密終端A2、基于身份加密終端A3、代理重加密終端A4:
所述私鑰產(chǎn)生中心A1,分別與所述基于身份廣播加密終端A2和基于身份加密終端A3相連,用于基于用戶ID生成基于身份廣播加密終端公、私鑰對(duì),生成基于身份加密終端公、私鑰對(duì),將所述各公鑰公開(kāi)并將所述各私鑰分別發(fā)送給基于身份廣播加密終端A2和基于身份加密終端A3;
所述基于身份廣播加密終端A2,分別有所述私鑰產(chǎn)生中心A1和所述代理重加密終端A4相連;用于基于所述基于身份廣播加密私鑰,利用身份廣播加密系統(tǒng)對(duì)待加密數(shù)據(jù)進(jìn)行加密獲得密文;用于基于有權(quán)訪問(wèn)者j的IDj和其對(duì)應(yīng)基于身份廣播加密終端私鑰生成轉(zhuǎn)換秘鑰并發(fā)送給代理重加密終端A4;
所述代理重加密終端A4與所述基于身份廣播加密終端A2和基于身份加密終端A4相連,用于接收所述轉(zhuǎn)換秘鑰,獲取對(duì)應(yīng)密文,基于所述轉(zhuǎn)換秘鑰和所述密文計(jì)算得到轉(zhuǎn)換后的密文并發(fā)送給基于身份加密終端A4;
所述基于身份加密終端A4,分別與所述代理重加密終端A3和所述私鑰產(chǎn)生中心A1相連,用于接收所述基于身份加密終端私鑰,接收所述代理重加密終端A3發(fā)送來(lái)的轉(zhuǎn)換后的密文,基于所述解密者終端公、私鑰對(duì)所述轉(zhuǎn)換后的密文進(jìn)行解密。
本發(fā)明另一個(gè)具體實(shí)施例中,一種非對(duì)稱跨密碼系統(tǒng)的重加密、解密系統(tǒng),還包括:存儲(chǔ)服務(wù)器,分別與所述基于身份廣播加密終端和所述代理重加密終端相連,用于接收并存儲(chǔ)所述密文。
最后,本申請(qǐng)的方法僅為較佳的實(shí)施方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。