国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

無證書的公鑰可搜索加密方案*

2022-04-25 10:27孫麗雪豆建峰
河南工學院學報 2022年1期
關(guān)鍵詞:接收者私鑰公鑰

孫麗雪,豆建峰

(河南工學院 理學部,河南 新鄉(xiāng) 453003)

0 引言

隨著云計算的發(fā)展,越來越多的用戶把數(shù)據(jù)外包到云服務(wù)器上[1],但云服務(wù)的數(shù)據(jù)安全問題成為云服務(wù)被廣泛應(yīng)用的主要障礙[2-3]。為了避免隱私泄漏的風險,數(shù)據(jù)擁有者通常在上傳數(shù)據(jù)之前加密了這些數(shù)據(jù)。數(shù)據(jù)加密使得文件對任何人都是不可讀的,用戶就不能直接輸入關(guān)鍵詞來檢索自己想要的數(shù)據(jù),因而帶來了對密文數(shù)據(jù)進行檢索這一具有挑戰(zhàn)性的難題。

為了解決上述問題,公鑰可搜索加密技術(shù)被廣泛研究。公鑰可搜索加密[4]允許數(shù)據(jù)擁有者把加密的文件上傳到云服務(wù)器上,之后數(shù)據(jù)擁有者指定的用戶可以使用關(guān)鍵詞從云服務(wù)器上檢索這些加密的文件。在公鑰可搜索加密方案中,數(shù)據(jù)擁有者使用接收者的公鑰分別加密文件中每個關(guān)鍵詞,即生成關(guān)鍵詞的索引,并把這些索引附在文件密文之后。為了搜索包含指定關(guān)鍵詞的文件,數(shù)據(jù)接收者生成關(guān)鍵詞的陷門,并發(fā)送給云服務(wù)器。云服務(wù)器檢驗索引中的關(guān)鍵詞和陷門中的關(guān)鍵詞是否匹配,并把相應(yīng)的密文文件返回給接收者。為了實現(xiàn)對加密數(shù)據(jù)細粒度的訪問控制,公鑰可搜索加密的概念可以擴展為基于屬性的關(guān)鍵詞搜索,即允許屬性滿足指定訪問策略的用戶直接搜索加密的數(shù)據(jù)[5-6]。

根據(jù)公鑰認證方法的不同,公鑰密碼體制分為基于公鑰基礎(chǔ)設(shè)施(PKI)的密碼體制[7-9]、基于身份的密碼體制[10-12]和無證書的密碼體制[13-15]。在基于PKI的密碼體制中,證書權(quán)威(CA)為每個用戶簽發(fā)一個公鑰證書,用戶使用公鑰前,需要先驗證公鑰證書的合法性,這就增加了用戶的計算量?;谏矸莸拿艽a體制取消了公鑰證書,但所有用戶的私鑰都由私鑰生成中心(PKG)生成,這就產(chǎn)生了密鑰托管問題。無證書的密碼體制解決了基于身份的密碼體制中的密鑰托管問題,更加安全。和基于PKI的密碼體制相比,無證書的密碼體制更加高效,因為不需要維護公鑰證書目錄。

Ma等[16]提出了一個無安全信道的無證書公鑰可搜索加密方案。然而,該方案容易遭受內(nèi)部關(guān)鍵詞猜測攻擊,即云服務(wù)器可以猜測出用戶發(fā)送的陷門中的關(guān)鍵詞。此外,陷門是應(yīng)用確定性的加密算法生成的,不能實現(xiàn)陷門不可鏈接性。陷門不可鏈接性要求外部敵手不能推斷出任何捕獲的陷門的關(guān)系,也就是外部敵手不能推斷出任何不同的陷門是否是同一個用戶發(fā)送的。為了解決這些問題,根據(jù)文獻[17],本文提出了一個無證書的可以抵抗內(nèi)部關(guān)鍵詞猜測攻擊的公鑰可搜索加密方案,且陷門的生成采用的是隨機性的加密算法,可以實現(xiàn)陷門不可鏈接性。

1 基礎(chǔ)知識

定義1 (雙線性對[11]) 假設(shè)G是一個加法循環(huán)群,GT是一個乘法循環(huán)群,階數(shù)都為某個大素數(shù)p。定義G和GT中的單位元分別為1G和1GT。令g是群G的一個隨機生成元。稱e:G×G→GT是一個雙線性對,如果它是一個滿足下列性質(zhì)的映射:

(1) 雙線性性:對于任何a,b∈RZp,有e(ag,bg)=e(g,g)ab;

(2) 非退化性:對于g1,g2∈G,存在e(g1,g2)≠1GT;

(3) 可計算性:對于所有的g1,g2∈G,可以有效地計算e(g1,g2)。

定義2 一個無證書的公鑰可搜索加密方案包含以下步驟:

(1)系統(tǒng)建立。該算法由密鑰生成中心(KGC)完成。以安全性參數(shù)λ為輸入,輸出主密鑰和系統(tǒng)參數(shù),密鑰生成中心保密主密鑰,公開系統(tǒng)參數(shù)。

(2)部分私鑰提取。該算法生成用戶的部分私鑰,由密鑰生成中心完成。輸入用戶的身份后,密鑰生成中心計算該用戶的部分私鑰,并通過安全的方式發(fā)送給這個用戶。

(3)設(shè)置秘密值。輸入用戶的身份和系統(tǒng)參數(shù),算法輸出該用戶的秘密值。

(4)設(shè)置私鑰。輸入用戶的部分私鑰和秘密值,算法輸出一個完全的私鑰。

(5)設(shè)置公鑰。輸入系統(tǒng)參數(shù)和用戶的秘密值,算法輸出用戶的公鑰。

(6)加密的索引生成。輸入系統(tǒng)參數(shù)和關(guān)鍵詞,算法輸出關(guān)鍵詞的可搜索密文。

(7)陷門生成。輸入系統(tǒng)參數(shù)和關(guān)鍵詞,算法輸出該關(guān)鍵詞的陷門,并把陷門發(fā)送給云服務(wù)器。

(8)測試。云服務(wù)器收到陷門后,檢驗密文和陷門中含有的關(guān)鍵詞是否一致。如果一致,算法輸出1;否則,輸出0。

2 方案設(shè)計

(1) 系統(tǒng)建立。

(2) 部分私鑰提取。

給定數(shù)據(jù)發(fā)送者的身份IDS,KGC計算它的部分私鑰為DIDS=sQIDS,其中QIDS=H1(IDS);給定數(shù)據(jù)接收者的身份IDR,KGC計算它的部分私鑰為DIDR=sQIDR,其中QIDR=H1(IDR)。

(3) 設(shè)置秘密值。

(4) 設(shè)置私鑰。

給定數(shù)據(jù)發(fā)送者的部分私鑰DIDS和秘密值xIDS,算法返回數(shù)據(jù)發(fā)送者的完全私鑰為SIDS=(xIDS,DIDS);給定數(shù)據(jù)接收者的部分私鑰DIDR和秘密值xIDR,算法返回數(shù)據(jù)發(fā)送者的完全私鑰為SIDR=(xIDR,DIDR)。

(5) 設(shè)置公鑰。

給定數(shù)據(jù)發(fā)送者和接收者的秘密值xIDS和xIDR,數(shù)據(jù)發(fā)送者和接收者分別計算自己的公鑰為PKIDS=xIDSP和PKIDR=xIDRP。

(6) 加密的索引生成。

(7) 陷門生成。

(8) 測試。

收到陷門Tw′后,云服務(wù)器檢驗等式T1e(T3,C1)=e(C2,T2)是否成立。如果成立,算法輸出1,表示密文和陷門中含有的關(guān)鍵詞是一致的;否則,輸出0。

正確性驗證:

T1e(T3,C1)=e(zxIDRH1(w,K),PKIDS)

e(zP,rxIDRP)

=e(zxIDRH1(w,K),xIDSP)e(zP,rxIDRP)

=e(xIDSH1(w,K)+rP,zxIDRP)

=e(SKIDSH1(w,K)+rP,zPKIDR)

=e(C2,T2)

3 安全性模型

本文考慮建立一個無證書的可搜索加密系統(tǒng)。它包含了四個參與者:密鑰生成中心、數(shù)據(jù)發(fā)送者、數(shù)據(jù)接收者和云服務(wù)器。

數(shù)據(jù)擁有者使用數(shù)據(jù)接收者的公鑰和自己的私鑰加密自己的數(shù)據(jù)和關(guān)鍵詞,并把產(chǎn)生的密文上傳到云服務(wù)器上。云服務(wù)器為數(shù)據(jù)發(fā)送者和數(shù)據(jù)接收者分別提供數(shù)據(jù)存儲和檢索服務(wù)。數(shù)據(jù)接收者想要搜索某個關(guān)鍵詞時,他用自己的私鑰和數(shù)據(jù)發(fā)送者的公鑰生成關(guān)鍵詞的陷門,并把陷門發(fā)送給云服務(wù)器。收到陷門后,云服務(wù)器會對加密的數(shù)據(jù)進行搜索,并把搜索結(jié)果返回給數(shù)據(jù)接收者。

密鑰生成中心、數(shù)據(jù)發(fā)送者和接收者都被認為是完全誠實的。云服務(wù)器是誠實但好奇的,即它會誠實地執(zhí)行描述的協(xié)議,但會嘗試推斷出一些用戶的敏感信息。

在無證書的密碼體制中,有類型Ι敵手AⅠ和類型Ⅱ敵手AⅡ。類型I敵手AⅠ不知道主密鑰,但是該敵手可以任意替換用戶的公鑰。類型Ⅱ敵手知道主密鑰,但是該敵手不能替換用戶的公鑰。本文給出的安全性模型類似于文獻[1],現(xiàn)給出安全性定義:如果沒有任何多項式有界的敵手以一個不可忽略的優(yōu)勢贏得游戲,則稱提出的方案在選擇關(guān)鍵詞攻擊下具有不可區(qū)分性。

可以通過下述挑戰(zhàn)者C和敵手之間的游戲來定義安全性。

(1) 游戲1:假設(shè)敵手是一個不誠實的用戶。

初始階段:在這個階段,C首先運行系統(tǒng)建立算法得到公共參數(shù)和主密鑰。C把公共參數(shù)返回給AⅠ,秘密地保存主密鑰。

階段 1: AⅠ以一種適應(yīng)性的方式進行多項式有界數(shù)目的詢問。

哈希詢問:AⅠ詢問關(guān)鍵詞wi的哈希隨機預(yù)言。為了回應(yīng)AⅠ,C把相應(yīng)的結(jié)果發(fā)送給AⅠ。

部分私鑰提取詢問:如果AⅠ詢問身份ID對應(yīng)的部分私鑰,C運行部分私鑰提取算法得到部分私鑰,并把結(jié)果發(fā)送給AⅠ。

公鑰詢問:收到身份ID的公鑰詢問,C返回相應(yīng)的公鑰給AⅠ。

替換公鑰詢問:AⅠ可以選擇一個隨機的值替換用戶的公鑰。

私鑰提取詢問:除了被挑戰(zhàn)的身份,AⅠ可以進行任意身份的私鑰提取詢問,C運行相應(yīng)的私鑰提取算法,并返回相應(yīng)的結(jié)果給AⅠ。

陷門詢問:除了被挑戰(zhàn)的身份,AⅠ可以進行任意關(guān)鍵詞的陷門詢問,C運行相應(yīng)的陷門生成算法,并返回相應(yīng)的陷門給AⅠ。

挑戰(zhàn)階段: 首先,AⅠ生成兩個長度相等的不同關(guān)鍵詞w0,w1。要求在階段1中,AⅠ從來沒有作過對w0或w1的詢問。然后,AⅠ把w0和w1發(fā)送給C。C隨機地選擇一個比特b∈{0,1},并運行加密的索引生成算法,生成挑戰(zhàn)密文。最后,C把挑戰(zhàn)密文返回給AⅠ。

階段2: 和在階段 1中一樣,AⅠ可以適應(yīng)性地作出多項式有界數(shù)目的詢問,限制是AⅠ不能作出對w0或w1的詢問。

猜測階段: ?、褫敵鲆粋€比特b′。如果b′=b,那么AⅠ贏得游戲。

(2) 游戲2:假設(shè)敵手是一個惡意但被動的KGC。

初始階段:在這個階段,C首先運行系統(tǒng)建立算法得到公共參數(shù)和主密鑰。

C把公共參數(shù)和主密鑰返回給AⅡ。

階段1: AⅡ以一種適應(yīng)性的方式進行多項式有界數(shù)目的詢問,包括哈希詢問、公鑰詢問、私鑰提取詢問和陷門詢問,C運行相應(yīng)的算法,并把相應(yīng)的結(jié)果返回給AⅡ。

挑戰(zhàn)階段: 首先,AⅡ生成兩個長度相等的不同關(guān)鍵詞w0,w1。要求在階段1中,AⅡ從來沒有作過對w0或w1的詢問。然后,AⅡ把w0和w1發(fā)送給C。C隨機地選擇一個比特b∈{0,1},并運行加密的索引生成算法,生成挑戰(zhàn)密文。最后,C把挑戰(zhàn)密文返回給AⅡ。

階段2: 和在階段 1中一樣,AⅡ可以適應(yīng)性地作出多項式有界數(shù)目的詢問,限制是AⅡ不能作出對w0或w1的詢問。

猜測階段: AⅡ輸出一個比特b′。如果b′=b,那么ΑⅡ贏得游戲。

在本文提出的方案中,密文是隨機生成的,敵手能夠區(qū)分兩個隨機生成密文的概率是可以忽略的,即兩種類型的敵手在游戲 1和游戲 2中的優(yōu)勢都是可以忽略的。通過類似的安全性游戲驗證,可以說明本文提出的方案在關(guān)鍵詞猜測攻擊下具有不可區(qū)分性。

4 結(jié)語

本文基于無證書的公鑰密碼體制,提出了一個高效可行的公鑰可搜索加密方案。在方案中,數(shù)據(jù)發(fā)送者使用接收者的公鑰和自己的私鑰生成陷門,避免了密文的公共生成,可以抵抗云服務(wù)器發(fā)起的內(nèi)部關(guān)鍵詞猜測攻擊。

猜你喜歡
接收者私鑰公鑰
清掃機器人避障系統(tǒng)區(qū)塊鏈私鑰分片存儲方法
比特幣的安全性到底有多高
基于改進ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
基于SDN的組播安全機制
功能翻譯理論視角下英語翻譯技巧探討
一種基于混沌的公鑰加密方案
一種基于虛擬私鑰的OpenSSL與CSP交互方案
口碑傳播中影響因素作用機制研究及應(yīng)用
P2X7 receptor antagonism in amyotrophic lateral sclerosis
HES:一種更小公鑰的同態(tài)加密算法