藍(lán)才會(huì),王彩芬
(1. 西北師范大學(xué) 數(shù)學(xué)與信息科學(xué)學(xué)院,甘肅 蘭州730070;2. 蘭州城市學(xué)院 信息工程學(xué)院,甘肅 蘭州730070)
云計(jì)算作為一項(xiàng)興起中的技術(shù),以開放的標(biāo)準(zhǔn)和服務(wù)為基礎(chǔ),以互聯(lián)網(wǎng)為中心,讓互聯(lián)網(wǎng)上的各種計(jì)算資源協(xié)同工作,共同組成數(shù)個(gè)龐大的數(shù)據(jù)中心和計(jì)算中心,為各類用戶提供安全、快速、便捷的數(shù)據(jù)存儲(chǔ)和網(wǎng)絡(luò)計(jì)算等特定服務(wù)。它預(yù)示著存儲(chǔ)信息和運(yùn)行應(yīng)用程序的方式將發(fā)生重大變化。程序和數(shù)據(jù)不再運(yùn)行和存放在本地,相反,一切都托管到“云端”,這里的云端是指一個(gè)云狀的、可通過Internet訪問的、由個(gè)人計(jì)算機(jī)和服務(wù)器構(gòu)成的集合。目前有些公司開已經(jīng)通了云計(jì)算業(yè)務(wù),如Google、亞馬遜和微軟[1~3]等。為解決數(shù)據(jù)隱私的保護(hù)問題,數(shù)據(jù)往往采用密文形式存放,這就需要對(duì)加密數(shù)據(jù)進(jìn)行檢索,常見的有線性搜索[4]、基于關(guān)鍵字的公鑰搜索[5]和安全索引[6]等。
隨著云計(jì)算的不斷發(fā)展成熟,在其環(huán)境下的電子商務(wù)、電子政務(wù)等活動(dòng)必將展開。和基于Internet的現(xiàn)代經(jīng)濟(jì)活動(dòng)一樣,需要保證商務(wù)活動(dòng)的保密性、完整性、不可否認(rèn)性、公平性等安全特性。公平交換協(xié)議作為一類重要的安全協(xié)議,公平性尤為重要。非形式上來說,公平性是指在交易的任何階段,交易的雙方都處在平等地位,即要么雙方都可以得到對(duì)方的信息,要么任何一方都得不到對(duì)方的信息。由于公平交換協(xié)議在密碼理論和應(yīng)用領(lǐng)域的重要性,研究人員在 Internet環(huán)境下提出各種各樣的方案[7~11]。遺憾的是這些方案不能很好適應(yīng)云模式的商務(wù)活動(dòng)。究其主要原因是:在云計(jì)算中,用戶的私有數(shù)據(jù)不存放在本地計(jì)算機(jī)上,而是以密文形式存放在“云端”。一種天真的想法是交易方從云端取到數(shù)據(jù),再利用已有的公平交換協(xié)議進(jìn)行交換,這種做法需要多次數(shù)據(jù)傳輸和多次加解密,嚴(yán)重影響其性能且不符合云服務(wù)模式;另一種不切實(shí)際的想法是用已有的公平交換協(xié)議來交換雙方的解密鑰,這雖然可以減少數(shù)據(jù)傳輸和加解密的次數(shù),但另一個(gè)更為嚴(yán)重的問題是泄露了彼此的密鑰,會(huì)造成雙方數(shù)據(jù)無秘密可言,所以這種做法只適合雙方無條件共享數(shù)據(jù),但現(xiàn)實(shí)生活中這種情況幾乎沒有。
因此,相對(duì)于 Internet環(huán)境下的公平交換協(xié)議的構(gòu)造,云環(huán)境下的公平交換協(xié)議需要考慮到數(shù)據(jù)不是存儲(chǔ)在本地,而是要以密文形式放在“云端”,并且只是交換其中部分?jǐn)?shù)據(jù),而不是所有。這就要求交換后得到的信息具有搜索功能,也就是能夠判斷出哪個(gè)密文是要被交換的,另外,交易雙方能夠使對(duì)方能且只能得到用于被交換的數(shù)據(jù),對(duì)其他數(shù)據(jù)一無所知。這和條件代理重加密[12]的特點(diǎn)相似,在條件代理重加密方案中,一個(gè)半可信的Proxy(代理人)能夠利用額外信息(從授權(quán)人那里得到)將滿足條件(關(guān)鍵字)的Alice(授權(quán)人)的密文重加密成Bob(受理人)的密文。在條件代理重加密中,也需要代理人利用額外信息能夠判斷出那個(gè)密文滿足條件,以及授權(quán)人通過額外信息使得受理人能且只能解密滿足條件的密文。
本文假設(shè)用戶存放在云中的數(shù)據(jù)是采用基于關(guān)鍵字搜索的公鑰加密算法加密后的密文,用條件代理重加密方案構(gòu)造了一個(gè)能夠運(yùn)用在云環(huán)境下交換數(shù)據(jù)的公平交換協(xié)議。協(xié)議屬于離線的半可信第三方公平交換協(xié)議[10]。協(xié)議由交換協(xié)議、恢復(fù)協(xié)議和終止協(xié)議組成。
在本文的模型中,包括了3個(gè)實(shí)體:交易雙方i, j和一個(gè)離線的半可信第三方(STTP)。但不像傳統(tǒng)的公平交換協(xié)議,在云計(jì)算中數(shù)據(jù)是以密文形式存放在“云端”。所以,雙方交換的不是數(shù)據(jù)本身,而是另外的信息 r kij, rkji。交易方i通過rkji能且只能得到 j用于交換的數(shù)據(jù),同樣 j通過rkij能且只能得到i用于交換的數(shù)據(jù)。在協(xié)議運(yùn)行前,發(fā)起人i需要到STTP處注冊獲取證書 C erti,證書可以讓響應(yīng)方 j相信STTP擁有 r kij。具體交易過程如下。
1) 發(fā)起人傳遞證書 C erti給響應(yīng)方。
2) 響應(yīng)方驗(yàn)證 C erti,若不成立,則協(xié)議自動(dòng)停止,否則,用STTP的公鑰加密 r kji得到 Cj并發(fā)送給發(fā)起人。要保證發(fā)起人能夠驗(yàn)證 Cj是 r kji在STTP公鑰下的密文。
3) 發(fā)起人驗(yàn)證 Cj,若不成立,則執(zhí)行終止子協(xié)議,否則,把 r kij發(fā)送給響應(yīng)方。
4) 響應(yīng)方驗(yàn)證 r kij,若不成立,則執(zhí)行恢復(fù)子協(xié)議,否則,把 r kji發(fā)送給發(fā)起人。這里的 r kij的驗(yàn)證,可以通過隨機(jī)選擇消息m,并在發(fā)起人的公鑰下加密,再用 r kij和響應(yīng)方得私鑰解密得到 m',通過比較m和 m'來驗(yàn)證。
5) 發(fā)起人驗(yàn)證 r kji,不成立,執(zhí)行恢復(fù)子協(xié)議,否則,交易完成。 r kji的驗(yàn)證方法同上。
交易完成后,發(fā)起人把得到的 r kji給云服務(wù)提供商,讓他用 r kji完成數(shù)據(jù)的部分處理,并把處理后的數(shù)據(jù)傳輸給發(fā)起人。響應(yīng)方同樣,與傳統(tǒng)的公平交換協(xié)議不一樣的地方是:交易完成后,雙方所得到的信息可以讓STTP和云服務(wù)商知道。所以,這里的數(shù)據(jù)隱私是指攻擊者知道信息 r kij, rkji,也不會(huì)知道交易雙方存儲(chǔ)在云中的數(shù)據(jù),進(jìn)一步,對(duì)于發(fā)起人來說,就算攻擊知道 r kij, rkji并控制了響應(yīng)方,也只能得到被用于交換的數(shù)據(jù)。
這里引進(jìn)數(shù)據(jù)私有性的攻擊模型,和條件代理重加密[12,13]很類似。具體就是在下面游戲中,不存在一個(gè)攻擊者A可借助一個(gè)挑戰(zhàn)者D以不可忽略的概率贏得游戲。
1) D生成公共參數(shù),并送給A。
2) A可以要求詢問下列問題:
① 用戶的公鑰;
② 用戶的私鑰;
③ 兩用戶(i, j)的 r kij;
④ 云服務(wù)商利用 r kij處理的結(jié)果;
⑤ 密文解密。
3) A決定第一階段詢問結(jié)束,它輸出挑戰(zhàn)公鑰pk*和 2個(gè)長度相同的明文 m0, m1。D隨機(jī)選擇d∈ { 0,1},生成 md的密文 C*。
4) A可以繼續(xù)發(fā)起剩余詢問,但要求不能詢問pk*的私鑰,也不能對(duì) C*和云服務(wù)商對(duì) C*處理后的結(jié)果進(jìn)行解密詢問,以及在pk的私鑰被詢問后,不能進(jìn)行③和④詢問。最后,A輸出 d'∈ { 0,1},若d'= d ,則A贏得游戲。
公平性和傳統(tǒng)的公平交換協(xié)議要求一致,簡單地講要么交易雙方都能得到各自的數(shù)據(jù),要么得不到任何數(shù)據(jù)。具體是:有一個(gè)攻擊者,還有一個(gè)誠實(shí)方B,和一個(gè)半可信方T,在開始時(shí),選擇2組被交換的數(shù)據(jù) MA, MB,以及對(duì)應(yīng) r kAB, rkBA。游戲如下。
1) 產(chǎn)生公共參數(shù),A、B、T的公私鑰,以及用到驗(yàn)證算法V,把公共參數(shù),協(xié)議參與方的公鑰和A的私鑰給攻擊者。
2) 攻擊者可以進(jìn)行如下活動(dòng):
① 和B的交互;
② 和T的交互;
③ 插入B和T的交互,但不能阻止。
3) 游戲結(jié)束后,以下概率
在Asia CCS09上,Weng等人[12]首次提出了條件代理重加密系統(tǒng)的定義,并構(gòu)造了一個(gè)條件代理重加密方案。同年,該作者又提出了一個(gè)更為高效的代理重加密方案[13]。在2009年中國密碼學(xué)會(huì)上,周德華等人提出了一個(gè)基于身份的條件代理重加密方案[14]。但是這些方案有一個(gè)共同的缺陷是條件(關(guān)鍵字)是已知的,這不能應(yīng)用于安全級(jí)別要求高的環(huán)境中,也不符合基于關(guān)鍵字的搜索公鑰加密的要求。而一旦匿名關(guān)鍵字,構(gòu)造的方案就必須滿足:1) 授權(quán)人和受理人僅用自己的私鑰可以解密,和關(guān)鍵字無關(guān);2) 半可信的代理人利用額外信息能夠判斷出那個(gè)密文滿足授權(quán)人給定的條件,這可以借助基于關(guān)鍵字的公鑰加密思想來實(shí)現(xiàn)(設(shè)置一個(gè)用于搜索的陷門值);3) 授權(quán)人生成的重加密鑰可以使得受理人能且只能得到滿足條件的信息。
定義 1 一個(gè)單向的代理重加密方案包括如下幾個(gè)算法。
SetUp(λ): 給定安全參數(shù)λ, 生成系統(tǒng)的全局參數(shù)param;
KeyGen( i): 為用戶 Ui產(chǎn)生公私鑰( p ki, s ki);
RkeyGen( s k, p k,w*): 授權(quán)者 U 通過輸入自iji己的私鑰 s ki、關(guān)鍵字 w*以及受理人 Uj的 p kj, 產(chǎn)生代理重加密鑰
Trapdoor( s k , w*): 授權(quán)者 U 利用自己的私鑰iiski和關(guān)鍵字 w*,產(chǎn)生用于搜索的陷門 tkiw*;
Encrypt( p ki, m, w): 給定公鑰 p ki、關(guān)鍵字w和消息m, 輸出用戶 Ui的密文 C Ti;
1) 用陷門判斷密文 C Ti是否包括關(guān)鍵字 w*;
2) 如果不包括,輸出⊥,否則,把 C Ti重加密成受理人 Uj的密文 C Tj。
Decrypte( C T, s k): 輸入私鑰sk和密文CT,輸出消息m或⊥。
一個(gè)單向條件代理重加密是正確的,意味著對(duì)任意的關(guān)鍵字 w*、 任意的(m, w)、任意的(p ki, s ki) ← KeyGen( i )、(p kj,s kj) ← KeyGen( j)以及CTi←Encrypt( p ki, m, w),下面2個(gè)等式都成立:
1) Pr[D ecrypte( C Ti, s ki) = m ]=1
2) 若 w = w*, 有
否則,
一個(gè)匿名的條件代理重加密的安全性需要考慮關(guān)鍵字的私有性和消息的私有性。但在現(xiàn)實(shí)生活中,相同的消息應(yīng)該具有相同的關(guān)鍵字,反過來說2個(gè)消息的關(guān)鍵字不同,意味著他們是不同的消息。若關(guān)鍵字的語義安全不滿足,則攻擊者可以通過關(guān)鍵字來判斷消息,顯然消息的私有性也不滿足。也就是說在一般情況下,消息滿足私有性,則關(guān)鍵字的私有性也是滿足的,所有本文只對(duì)消息的私有性進(jìn)行了分析。相對(duì)于關(guān)鍵字已知的條件代理重加密,需要詢問陷門值。另外,攻擊者不允許訪問挑戰(zhàn)消息所對(duì)應(yīng)的關(guān)鍵字的陷門值。
在這一節(jié),利用雙線性對(duì)構(gòu)造了一個(gè)匿名條件的代理重加密方案,具體如下。
SetUp(λ):根據(jù)安全參數(shù)λ產(chǎn)生 ( p, G1, G2, e),G1, G2是2個(gè)相同階p的乘法群, e : G1×G1→G2是一個(gè)雙線性對(duì);隨機(jī)選擇 g ∈G1, 并令Z = e ( g, g);最后選擇3個(gè)散列函數(shù):
KeyGen( i): 選擇隨機(jī)數(shù) xi∈ zp,Ui生成公私鑰對(duì)(p ki, s ki) = ( gxi,xi)。
RkeyGen( s ki, p kj,w*):Ui計(jì)算代理重加密鑰
Trapdoor( s ki, w*) : Ui計(jì)算陷門連同代理重加密鑰發(fā)送給代理人。
Encrypt( p ki, m, w): 按下面3個(gè)步驟生成 Ui的密文。
1) 選擇一個(gè)強(qiáng)不可偽造的簽名方案Sig。假設(shè)簽名和驗(yàn)證鑰為(s sk, s vk),并令A(yù) = s vk。
2) 隨機(jī)選擇 r ∈zp并計(jì)算
3) 運(yùn)行簽名算法 s = Sig( C, D, E),最后輸出密文 C Ti=(A, B, C, D, E, s)。
ReEncrypt( C Ti, t kiw*,r ki→j):按下面3個(gè)步驟把滿足條件 Ui的密文轉(zhuǎn)換成 Uj的密文。
1) 用驗(yàn)證鑰A驗(yàn)證s是否為消息(C, D, E)的簽名。
2) 用 D = H3[ e( B, t kiw*)e( C, g )]檢查 C Ti是否包含關(guān)鍵字 w*。
3) 若都成立,輸出 C Tj=(A, B', C, D', E, s), 否則,輸出⊥。這里 B'= e ( B, r k2ijw*)= e( g, g )xjr,
Decrypte( C T, s k ):按以下2種情況進(jìn)行解密。
1)CT是原始密文
① 用驗(yàn)證鑰A驗(yàn)證s是否為消息(C, D, E)的簽名。
1
③ 驗(yàn)證 D = H[ T e( W , g)R]。
33
2)CT為重加密后的密文,即 Uj解密過程如下。
定理1 如果在 (G1, G2)中,變形的判定性的雙線性對(duì) Diffie-Hellman 問題 (DBDHP)是困難的,那么方案在隨機(jī)預(yù)言模型下是選擇密文安全的。
證明 算法 D收到一個(gè)隨機(jī)實(shí)例(g, ga,gb,gc,Q),它的目標(biāo)是確定是否等于Q。在游戲中D扮演挑戰(zhàn)者,而A作為攻擊者。D需要維護(hù) 3個(gè)初始化為空的散列表 H1_list、 H2_list和H3_list。游戲開始,D把系統(tǒng)參數(shù) p aram = (g,G1, G2, e, H1, H2, H3)給A。
Hash詢問:在任何時(shí)候 A可以詢問散列函數(shù)H1, H2, H3。
H1( w)詢問:若 ( w, h1, r)已經(jīng)在 H1_list, 則返回先前值 h1。否則,D隨機(jī)選擇 r ∈Zp, 返回且把 ( w, h, r)寫入 H _list。
11
H2(t, T(2))詢問:若已存在 H _list,2則輸出 h2。否則,選擇 h2∈Zp*, 把加入H2_list并返回 h2。
H3( T(3))詢問:若已在則返回 h3。否則,選擇 h3∈ { 0,1}*,把 ( T(3),h3)寫入H3_list并輸出 h3。
階段 1 在這一階段,A可以發(fā)起一系列以下詢問。
公鑰產(chǎn)生詢問:D首先定義了一個(gè)有偏的隨機(jī)數(shù) c oin∈ { 0,1},令Pr[c oin=0]=δ。若(coin= 0 ),D選擇隨機(jī)數(shù) xi∈Zp*并計(jì)算pki=gxi,否則計(jì)算pki= gbxi。D把 p ki給A并把增加到k _ list。
私鑰產(chǎn)生詢問:D從 k _ list找(p ki, xi, c oini),若(c oini= 1 ), 返回⊥并終止,表示未腐化不能回答這次詢問。否則,返回 xi。
代理重加密詢問(p ki, p kj,w):D首先從 k _ list取得( p ki, xi, c oini)和(p kj, xj, c oinj),然后,根據(jù)以下情形為A計(jì)算
1) 若(c oini= 0 ), 表示知道 s ki= xi。從 H1_list取得 h1并計(jì)算最后返回并把寫到 r k _ list。
2) 若(c oini= 1 ? c oinj= 1 ),表 示 ski= b xi和skj= b xj。取得 h1, r從列表 H1_list中,返回并把寫到rk _ list。
3) 若(c oini=1 ? c oinj= 0 ),表示 s ki= b xi和skj= xj。從 H1_list中獲得 h1, r,返回并把加到 r k _ list。
陷門詢問(p ki, w):D從 k _ list獲得(p ki,xi, c oini)并根據(jù)以下情形計(jì)算 tkiw。
1) If(c oini= 0 ),表示 s ki= xi.從 H1_list獲得h1,計(jì)算并返回。最后把(p ki, w, t kiw)寫到 tk _ list。
2) If(c oini= 1 ),表示 s ki= b xi.從 H1_list獲得h1和r,計(jì)算并返回。最后,把(p ki, w, t kiw)加到 tk _ list。
解密詢問(p ki, C Ti):D首先從 k _ list取得(p ki,xi, c oini)。若 c oini= 0 ,返回 D ecrypte( C Ti, xi) , 否則, 按下面2種情況處理。
1) C Ti為原始密文,按下列步驟處理。
① 驗(yàn)證s是否為(C, D, E )的簽名。 若不是, 輸出⊥并終止。
② D連續(xù)查找 H3_list、 H1_list和 H2_list,看是夠存在 (T(3),h3)、 ( h1, r)和 (T(2),h2)滿足等式:若不存在,輸出⊥并終止, 否則返回m= E/[ T(2)T(3)/
2) C Tj為轉(zhuǎn)換后的密文,按下列步驟處理。
①驗(yàn)證s是否 ( C, D = D'e( C, g),E)的簽名。不是,輸出⊥并終止。
②D 連續(xù)從 H1_list找 ( h1, r),從 H2_list找,看是否滿足等式:和如果不存在, 輸出⊥并終止,否則返回
代理重加密詢問(p ki, p kj, C Ti) :D首先從k _ list取得 c oini和 c oinj。若(c oini= 1 ? c oinj= 0 ),輸出⊥并終止,否則,按如下步驟處理。
1) 從 t k _ list找滿足 H3( e( t kiw, Bi) e( Ci, g ) )=Di的 tkiw,然后從 tk _ list取得。若找不到,可以通過解密詢問(p ki, C Ti)取得w。
2) tkiw和 r ki—w—→j可 以 通 過 查 找 t k _ list和rk _ list, 或者是通過陷門詢問(p ki, w)和重加密密鑰詢問(p ki, p kj,w)得到。
3) 返回 C Tj= ReEncrypt( C Ti, r ki—w—→j)。
挑戰(zhàn)階段:當(dāng)A決定階段 1 結(jié)束, 它輸出挑戰(zhàn)公鑰 p k*和 2個(gè)長度相同的明文 M0=(m0, w0),M1= ( m1, w1)。D從 k _list獲得 ( p k*, x*, c oin*)。若coin*= 0 , 輸出⊥并終止,否則,隨機(jī)選擇 d ∈{0,1}和一個(gè)強(qiáng)的一次簽名方Sig。(s s k, s v k)為簽名的簽名鑰和驗(yàn)證鑰, 然后返回如下數(shù)據(jù)。
這里的 r = H1( wd),可以通過 H1_list得到。
階段2 A像階段1一樣發(fā)起剩余的詢問, 但要滿足文獻(xiàn)[12]中安全游戲的限制,另外攻擊者不允許訪問挑戰(zhàn)消息所對(duì)應(yīng)的關(guān)鍵字的陷門值。D像階段1一樣回答這些詢問。
猜測 最后,A輸出一個(gè)猜測值 d'∈ { 0,1}。若d'= d ,D輸出1,否則,輸出0。
為了看清 D攻破變形的判定性的雙線性Diffie-Hellman問題。把 a c/ b堪稱加密過程的隨機(jī)數(shù) r*,并考慮 C T*為 md在公鑰下的密文。很顯然,若 Q = e ( g, g)r*=e( g, g )ac/b,R*= H (A*,
2Q),則 C T*是關(guān)于 md在下的合法密文。這樣,D可以根據(jù)A回答來判斷,即可以解決變形的判定性的雙線性Diffie-Hellman問題。
為了完成證明,用 qH1, qH2, qH3,qpk,qsk,qrk,qre和 qde分別表示 H1詢問, H2詢問,H3詢問, 公鑰產(chǎn)生詢問,私鑰產(chǎn)生詢問,代理重加密鑰詢問, 重加密詢問和解密詢問的次數(shù)。e表示自然對(duì)數(shù)的底數(shù)。
分析D可能失敗的(⊥)的情形:在私鑰產(chǎn)生詢問階段,若 c oin=1,則D失敗;在重加密密鑰詢問( p ki, p kj,w)階段和重加密詢問(p ki, p kj, C Ti) 階段,若(c oini=1 ? c oinj= 0 ),則D失敗;在解密詢問( p ki, C Ti),若 A攻破Sig,則 D失敗,并令β=Pr[AbreaksSig];在挑戰(zhàn)階段,若 c oin= 0 ,則D失敗。令 qmax=max(qsk,qrk,qre)。很容易知道,在模擬過程中,D沒有失敗的概率至少為
基于Boneh D等[15]的結(jié)果: δqmax(1 - δ)最大為,并有 q 充分大時(shí), (1 - ( 1 - δ ) δ)2qmax的值
max接近因此,有 δqsk(1 - (1 - δ) δ)qrk+qre(1-β)
另外,在模擬過程中,在 A詢問 H1時(shí),返回概率至多有公鑰產(chǎn)生詢問時(shí)詢問了概率至多有,并且在私鑰產(chǎn)生詢問時(shí)返回概率至多因此,D的優(yōu)勢至少有證畢。
基于上述的匿名條件的代理重加密方案,筆者將構(gòu)造一個(gè)公平交換協(xié)議。協(xié)議屬于離線的半可信第三方(STTP)公平交換協(xié)議,由交換協(xié)議、恢復(fù)協(xié)議和終止協(xié)議組成。在正常情況下,交易雙方能夠得到對(duì)方的條件代理重加密鑰和搜索陷門。交易方得到對(duì)方信息后,可以把信息提供給云服務(wù)提供商,讓提供商執(zhí)行搜索和重加密,這樣可以防止多次傳輸和加解密數(shù)據(jù),提高了性能。同時(shí),由條件重加密的特點(diǎn)可知,能夠保證提供商得不到任何有關(guān)明文的信息,以及交易方只能得到滿足條件的信息。
協(xié)議中使用的記號(hào)如下。
Ui, Uj為交易雙方,且它們鑰交換的信息分別滿足條件 wi, wj;STTP為提供服務(wù)的半可信第三方;
Ui→ Uj:X 表示 Ui向 Uj發(fā)送信息X;
pk = gxs為STTP的公鑰;STTP
Sign表示安全的簽名算法。
在協(xié)議執(zhí)行前,發(fā)起者 Ui需要到STTP處注冊,獲得證書 C erti,過程如下。
協(xié)議描述如下。
如果參與協(xié)議的每一方都是誠實(shí)的,則只要執(zhí)行如下的交換子協(xié)議即可。
交換子協(xié)議如下。
Uj解密得到 m',驗(yàn)證 C A = m', CB=H1( wi),CC = H1( wj),σ是否為 STTP關(guān)于消息(C A, C B, C C, C D)。若都成立,執(zhí)行步驟2,否則,協(xié)議自動(dòng)終止。
Ui驗(yàn)證等式和是否成立。若成立,執(zhí)行步驟3,否則,執(zhí)行終止協(xié)議。
Uj隨機(jī)選擇消息 mi,在關(guān)鍵字 wi下,用方案的加密算法生成 Ui的密文,并用 tkiwi去判斷密文是否包含了 wi。再用方案的重加密算法轉(zhuǎn)換成 Uj的密文,并用自己的私鑰解密得到。比較是否等于mi,若是,執(zhí)行步驟4,否則,執(zhí)行 Uj恢復(fù)協(xié)議。
Ui隨機(jī)選擇消息 mj,在關(guān)鍵字 wj下,用方案的加密算法生成 Uj的密文,并用 tkjwj去判斷密文是否包含了 wj。再用方案的重加密算法轉(zhuǎn)換成 Ui的密文,并通過自己的私鑰解密得到。比較是否等于 mj,若是,交換完成,否則,執(zhí)行 Ui恢復(fù)協(xié)議。
Ui恢復(fù)協(xié)議如下。
STTP先檢查是否執(zhí)行了終止協(xié)議和恢復(fù)協(xié)議,若已經(jīng)執(zhí)行,則終止。否則,驗(yàn)證和是否成立,若成立,計(jì)算并執(zhí)行步驟2。否則,拒絕做任何事。
Uj恢復(fù)協(xié)議如下。
STTP先檢查是否執(zhí)行了終止協(xié)議和恢復(fù)協(xié)議,若已經(jīng)執(zhí)行,則終止。否則,驗(yàn)證CE是否為STTP關(guān)于消息(C A, C B, C C, C D)簽名,以及等式e( r k1ijwj,p ki) = e( H1( wj),r k2ijwj)、
e( p kj, r k2ijwj) = e( p ki, g )和tkjwj= r k1ijwj。若都成立,執(zhí)行步驟2,否則,拒絕做任何事。
終止協(xié)議(只是 Ui執(zhí)行)如下。
Ui向STTP發(fā)送終止請求,STTP檢查是否執(zhí)行了終止協(xié)議和恢復(fù)協(xié)議,若已經(jīng)執(zhí)行,則終止。否則,對(duì)終止標(biāo)志簽名,并發(fā)送給交易雙方。
本節(jié)證明協(xié)議滿足最主要和最基本的性質(zhì):即保密性和公平性。
1) 保密性:協(xié)議的目的是在云環(huán)境下2個(gè)交易方交換特定的數(shù)據(jù),但在執(zhí)行協(xié)議的過程中沒有交換數(shù)據(jù),只是交換了各自的條件代理重加密鑰和陷門。根據(jù)定理1可以知道,即使STTP或其他攻擊者獲取了條件代理重加密鑰和陷門,沒有交易方的合作,不可能解密。也就是,本文構(gòu)造的公平交換協(xié)議滿足保密性。
2) 公平性:所謂公平性,是指在協(xié)議執(zhí)行的任何時(shí)刻,沒有哪個(gè)參與方處于有利地位。
證明 協(xié)議中 Ui條件代理重加密鑰和搜索陷門的驗(yàn)證是通過 Uj隨機(jī)選擇消息 mi,在關(guān)鍵字 wi下,用方案的加密算法生成 Ui的密文,并用 tkiwi去判斷密文是否包含了 wi。再用方案的重加密算法轉(zhuǎn)換成 Uj的密文,并用自己的私鑰解密得到。比較是否等于 mi來完成。讓而轉(zhuǎn)換后的密文為
根據(jù)搜索的判定等式 D = H3[ e( B, t kiwi)e( C, g )]和散列函數(shù)的單向性,一定有 e( p ki, t kiwi)= e ( H1( wi), g),從而進(jìn)一步可以確定再根據(jù)加密、重加密和解密過程,有,從而有 r k2ijwi=
同樣,Uj的條件代理重加密密鑰和搜索陷門驗(yàn)證過程一樣。
另外,Uj也不可能發(fā)送來欺騙 Ui,因?yàn)橐ㄟ^驗(yàn)證等式,就必須滿足
由此得出,交易雙方不可能通過發(fā)送錯(cuò)誤的條件代理重加密密鑰和搜索陷門來欺騙對(duì)方。
1) 如果所有的參與方都是誠實(shí)的,在成功執(zhí)行完交換協(xié)議后,交易的雙方都能收到對(duì)方所生產(chǎn)的條件代理重加密鑰和搜索陷門。
2) Ui試圖欺騙,Uj可以執(zhí)行恢復(fù)協(xié)議;另外,Ui得到,也具有公平性,因?yàn)樾枰猄TTP幫助才能得到 r k1jiwj。只有 r k2jiwj,Ui根本求不出,從而無法計(jì)算即無法解密 Uj的密文。
3) Uj試圖欺騙, Ui可以執(zhí)行終止協(xié)議和恢復(fù)協(xié)議;并且 Uj執(zhí)行恢復(fù)協(xié)議,需要提供自己的條件代理重加密和搜索陷門,STTP恢復(fù) Ui的給 Uj,同時(shí)把 Uj的也給 Ui。
綜上所述,協(xié)議能滿足公平性。
本文構(gòu)造了一個(gè)匿名條件的代理重加密方案,并在隨機(jī)預(yù)言模型下證明是安全的。由于現(xiàn)有的公平交換協(xié)議在云環(huán)境中不能很好應(yīng)用,所以,作者在所構(gòu)造的條件代理重加密的基礎(chǔ)上設(shè)計(jì)了一個(gè)適合云環(huán)境的公平交換協(xié)議,協(xié)議屬于離線的半可信第三方公平交換協(xié)議,由交換協(xié)議、恢復(fù)協(xié)議和終止協(xié)議組成。分析了協(xié)議的機(jī)密性和公平性。
[1] Google docs- online documents, spreadsheets, present[EB/OL]. http://docs.google.com. 2009.
[2] Windows Azure platform[EB/OL]. http:// www.mirosoft.com/ windows sazure/, 2009.
[3] Amazon elastic compute cloud[EB/OL]. http:// aws.amzaon.con/ec2, 2009.
[4] SONG D, WAGNER D, PERRIG A. Practical techniques for searches on encrypted data[A]. Proceedings of the IEEE Symposium on Security and Privacy(S&P’00)[C]. Berkeley, CA,USA. 2000. 44-55.
[5] BONEH D, CRESCENZO G, OSTROVSKYET R, et al. Public key encryption with keyword search[A]. Proceedings of the 23rd Annual International Conference on the Theory and Applications Cryptographic Techniques[C]. Interlaken, Switzerland, 2004. 506-522.
[6] PARK D, KIM K, LEE P. Public key encryption with conjunctive field keyword search[A]. Proceedings of the 2004 Workshop on Information Security Applications (WISA’04)[C]. Wuhan, China. 2004. 73-86.
[7] ZHOU J, GOLLMANN D. A faire non-repudiation protocol[A]. Proc of the 1996 IEEE Symp on Security and Privacy[C]. Oakland: IEEE Computer Press, 1996. 55-61.
[8] FRANKLIN M K, REITER M K. Faire exchange with a semi-trusted third party[A]. Proc of the 4th ACM Conf on Computer and Communications Security[C]. Zurich, Switzerland, 1997. 1-5.
[9] 孫艷賓, 谷利澤, 孫燕等. 基于并發(fā)簽名的公平交易協(xié)議的分析與改進(jìn)[J]. 通信學(xué)報(bào), 2010, 31(9):146-150.SUN Y B, GU L Z, SUN Y, et al. Analysis and improvement of the CS-based fair exchange protocol[J]. Journal on Communications, 2010,31(9):146-150.
[10] ASOKAN N, SCHUNTER M, WAIDNER M. Optimistic protocols for fair exchange[A]. Tsutomu Matsumoto, Editor, 4th ACM Conference on Computer and Communications security[C]. Switzerland, 1997. 6-17.
[11] 劉景偉, 孫蓉, 郭慶燮. 公平交換簽名方案[J]. 中國科學(xué): 信息科學(xué), 2010, 40(6): 786-795.LIU J W, SUN R, GUO Q X. Fair exchange signature scheme[J].Science in China: Information Science, 2010, 40(6): 786-795.
[12] WENG J, DENG R H, DING X, et al. Conditional proxy re-encrytion secure against chosen-ciphertext attack[A]. Proc of ASIACCS’09[C].Sydney, Australia, 2009. 322-332.
[13] WENG J, YANG Y, TANG Q, et al. Efficient conditional proxy re-encryption with chosen-ciphertext security[A]. Proc of ISC’09[C]. 2009.151-166.
[14] ZHOU D H, CHEN K F, LIU S L. Identity-based conditional proxy re-encryption[A]. Proc of CHINACRYPT’09[C]. 2009. 85-97.
[15] BONEH D, FRANKLIN M. Identity-based encryption from the weil pairing[J]. SIAM Journal of Computing, 32(3):586-615.