一種基於雙線性對的可搜索加密方法與流程
2023-06-03 11:19:01 1
本發明涉及網絡信息安全領域,特別是涉及一種基於雙線性對的可搜索加密方法。
背景技術:
:隨著雲計算的飛速發展,越來越多的企業和個人選擇將數據存儲在雲伺服器上,以實現更優化的資源配置和更高效的管理。為了保護數據的隱私和安全,用戶將數據上傳到雲伺服器之前,通常要對數據進行加密。但是,當用戶需要對這些加密數據進行搜索時,用戶就要從伺服器上下載所有存儲的數據到本地,然後對所有加密的數據進行解密,再進一步找到想要的數據。這將消耗巨大的計算代價和通信代價,同時對於擁有有限本地存儲空間的用戶來說也是一種極大的負擔。為了解決直接對加密數據進行檢索且不洩露用戶任何數據信息的問題,現有技術中提出了可搜索加密方案。可搜索加密方案主要分為對稱可搜索加密方案和公鑰可搜索加密方案兩大類。對稱可搜索加密允許用戶把自己的加密數據上傳到雲伺服器,當用戶想要搜索含有某個關鍵字的文檔時,用戶用自己的私鑰生成一個該關鍵字的門限,然後讓伺服器利用這個門限進行查找。但是對稱可搜索加密只能滿足用戶對自己加密的數據進行搜索,而對於來自第三方的數據,用戶則不能進行關鍵字搜索。這個局限使得對稱可搜索加密在很多實際應用中不能被使用,比如郵件系統。在郵件系統中,為了確保郵件內容的隱私和安全,用戶在發送之前,通常需要利用發送者的公鑰對郵件進行加密,而當接收者想要搜索這些加密郵件時,例如含有「緊急」關鍵字的郵件,則無法通過對稱可搜索加密來完成。為了解決這個問題,大量的基於公鑰的關鍵字可搜索加密方案被提出,該方案能夠有效地搜索來自第三方的加密數據。但是,現存的很多公鑰可搜索加密方案,都存在著一些不足之處,主要體現在效率問題和安全問題兩方面。例如,有很多公鑰可搜索加密方案的門限在傳遞的過程中需要建立一個安全信道,而建立一個安全信道往往需要較大的計算代價和通信代價。而對於不需要建立安全信道的公鑰可搜索加密方案,往往只能夠滿足密文的安全性而不能滿足門限的安全性。技術實現要素:本發明所要解決的技術問題是:提供一種基於雙線性對的可搜索加密方法,解決公鑰可搜索加密方案中效率和安全不能同時保證的問題。為了解決上述技術問題,本發明採用的技術方案為:提供一種基於雙線性對的可搜索加密方法,其特徵在於,包括步驟:s100、初始化;s101、伺服器生成伺服器公私鑰對,將伺服器公鑰發送給發送端和接收端;s102、接收端生成接收端公私鑰對,將接收端公鑰發送給發送端;s103、發送端基於雙線性對用接收端公鑰和伺服器公鑰加密消息的關鍵字,生成關鍵字密文,並將生成的關鍵字密文附加在加密的消息上作為可搜索密文,發送給伺服器;s104、接收端基於雙線性對用接收端私鑰和伺服器公鑰加密要搜索的消息中包含的關鍵字,生成所述要搜索的消息中包含的關鍵字的門限,將所述門限通過公共信道發送給伺服器;s105、伺服器根據所述門限以及伺服器密鑰查找可搜索密文中是否存在與所述要搜索的關鍵字匹配的關鍵字密文,如果存在,則將與所述關鍵字密文對應的加密消息發送給接收端;否則,結束。本發明的有益效果在於:伺服器持有自己的公私鑰對,由發送端基於雙線性對用接收端公鑰和伺服器公鑰加密消息的關鍵字,當接收端想要搜索包含某個關鍵字的消息時,則基於雙線性對利用伺服器的公鑰和接收端的私鑰加密所述關鍵字,生成該關鍵字的門限,由此接收端可以通過公共信道將所述門限傳遞給伺服器。因為只有伺服器持有能夠匹配接收端所指定關鍵字的門限的私鑰,而攻擊者因沒有伺服器的私鑰則無法進行所述匹配。因此,該方法不僅能夠滿足用戶搜索來自第三方的加密數據,而且無需建立伺服器與接受者之間的安全信道,攻擊者竊取門限後無法進行攻擊,保證了密文的安全性和門限的安全性,有效地提高了該方法在實際應用中的效率,很好地保護了用戶的個人隱私。附圖說明圖1為基於雙線性對的可搜索加密方法的流程圖;圖2為基於雙線性對的可搜索加密方法在實際應用中的流程圖。具體實施方式為詳細說明本發明的技術內容、所實現目的及效果,以下結合實施方式並配合附圖予以說明。本發明最關鍵的構思在於:由發送端基於雙線性對用接收端公鑰和伺服器公鑰加密消息的關鍵字,接收端基於雙線性對用接收端私鑰和伺服器公鑰加密要搜索的消息中包含的關鍵字。請參照圖1,一種基於雙線性對的可搜索加密方法,其特徵在於,包括步驟:s100、初始化;s101、伺服器生成伺服器公私鑰對,將伺服器公鑰發送給發送端和接收端;s102、接收端生成接收端公私鑰對,將接收端公鑰發送給發送端;s103、發送端基於雙線性對用接收端公鑰和伺服器公鑰加密消息的關鍵字,生成關鍵字密文,並將生成的關鍵字密文附加在加密的消息上作為可搜索密文,發送給伺服器;s104、接收端基於雙線性對用接收端私鑰和伺服器公鑰加密要搜索的消息中包含的關鍵字,生成所述要搜索的消息中包含的關鍵字的門限,將所述門限通過公共信道發送給伺服器;s105、伺服器根據所述門限以及伺服器密鑰查找可搜索密文中是否存在與所述要搜索的關鍵字匹配的關鍵字密文,如果存在,則將與所述關鍵字密文對應的加密消息發送給接收端;否則,結束。進一步的,所述步驟s100具體包括:選擇一個雙線性對映射以及三個單向抗碰撞的哈希函數h2:g2→{0,1}logq,其中,(g1,+)和(g2,×)分別是階為素數q的加法循環群和乘法循環群,{0,1}*是任意長度的二進位字符串集合,{0,1}logq是長度為logq的二進位字符串集合,logq是以2為底q的對數,g是g1的生成元;所述步驟s101中伺服器生成伺服器公私鑰對具體包括:選取一個隨機數計算y=yg,生成伺服器的公鑰pks=y,以及伺服器的私鑰sks=y;所述步驟s102中接收端生成接收端公私鑰對具體包括:選取一個隨機數計算x=xg,生成接收端的公鑰pkr=x,以及接收端的私鑰skr=x。進一步的,所述步驟s103中生成關鍵字密文具體包括:選取兩個隨機數計算u=r1h1(w)g+r1x,v=r2g,生成關鍵字密文(u,v,c),其中,w為關鍵字。進一步的,所述步驟104中生成關鍵字門限具體包括:選取一個隨機數計算t1=h(r'y)·(x+h1(w'))-1g,t2=r'g,生成關鍵字門限tw=[t1,t2],其中,w'為要搜索的消息中包含的關鍵字。進一步的,所述步驟105中伺服器根據所述門限以及伺服器密鑰查找可搜索密文中是否存在與所述要搜索的關鍵字匹配的關鍵字密文具體包括:伺服器用伺服器私鑰計算u=h(yt2),t=t1/u,測試是否成立,如果等式成立,則存在與所述要搜索的關鍵字匹配的關鍵字密文;否則,不存在。從上述描述可知,本發明的有益效果在於:伺服器持有自己的公私鑰對,由發送端基於雙線性對用接收端公鑰和伺服器公鑰加密消息的關鍵字,當接收端想要搜索包含某個關鍵字的消息時,則基於雙線性對利用伺服器的公鑰和接收端的私鑰加密所述關鍵字,生成該關鍵字的門限,由此接收端可以通過公共信道將所述門限傳遞給伺服器。因為只有伺服器持有能夠匹配接收端所指定關鍵字的門限的私鑰,而攻擊者因沒有伺服器的私鑰則無法進行所述匹配,進而保證了在無安全通道下門限的安全性,並且由於採用公共信道進行門限的傳遞,不需要專門的安全信道,因此,也保證了效率。並且,在本發明中,接收端利用一個隨機數去更新門限,攻擊者無法區分不同的門限是否來自同一個關鍵字,進一步保證了門限的安全性。因此,本發明設計的方法是一個既無需安全信道又能夠滿足密文安全性和門限安全性,在保證效率的同時又很好的保護了用戶的隱私安全。實施例一一種基於雙線性對的可搜索加密方法,其特徵在於,包括步驟:步驟s100、初始化;選擇一個雙線性對映射以及三個單向抗碰撞的哈希函數h2:g2→{0,1}logq,其中,(g1,+)和(g2,×)分別是階為素數q的加法循環群和乘法循環群,{0,1}*是任意長度的二進位字符串集合,{0,1}logq是長度為logq的二進位字符串集合,logq是以2為底q的對數,g是g1的生成元,是g2的生成元;步驟s101、伺服器生成伺服器公私鑰對,將伺服器公鑰發送給發送端和接收端;其中,伺服器生成伺服器公私鑰對具體包括:選取一個隨機數計算y=yg,生成伺服器的公鑰pks=y,以及伺服器的私鑰sks=y;s102、接收端生成接收端公私鑰對,將接收端公鑰發送給發送端;其中,接收端生成接收端公私鑰對具體包括:選取一個隨機數計算x=xg,生成接收端的公鑰pkr=x,以及接收端的私鑰skr=x;s103、發送端基於雙線性對用接收端公鑰和伺服器公鑰加密消息的關鍵字,生成關鍵字密文,並將生成的關鍵字密文附加在加密的消息上作為可搜索密文,發送給伺服器;其中,生成關鍵字密文具體包括:選取兩個隨機數計算u=r1h1(w)g+r1x,v=r2g,生成關鍵字密文(u,v,c),其中,w為關鍵字;s104、接收端基於雙線性對用接收端私鑰和伺服器公鑰加密要搜索的消息中包含的關鍵字,生成所述要搜索的消息中包含的關鍵字的門限,將所述門限通過公共信道發送給伺服器;其中,生成關鍵字門限具體包括:選取一個隨機數計算t1=h(r'y)·(x+h1(w'))-1g,t2=r'g,生成關鍵字門限tw=[t1,t2],其中,w'為要搜索的消息中包含的關鍵字;s105、伺服器根據所述門限以及伺服器密鑰查找可搜索密文中是否存在與所述要搜索的關鍵字匹配的關鍵字密文,如果存在,則將與所述關鍵字密文對應的加密消息發送給接收端;否則,結束;其中,伺服器根據所述門限以及伺服器密鑰查找可搜索密文中是否存在與所述要搜索的關鍵字匹配的關鍵字密文具體包括:伺服器用伺服器私鑰計算u=h(yt2),t=t1/u,測試是否成立,如果等式成立,則存在與所述要搜索的關鍵字匹配的關鍵字密文;否則,不存在;其中,如果w『=w,則其計算過程具體如下:實施例二在郵件系統中對本發明所設計的基於雙線性對的可搜索加密方法進行測試,測試所採用的仿真平臺的配置如下:作業系統:ubuntu10.10;cpu:pentium(r)t4400;內存:2.00gbram;硬碟:250gb/5400rpm;程式語言:c。參照圖2,郵件發送者在接收到郵件伺服器的公鑰和郵件接受者的公鑰後,按照實施例一步驟s103的方式對郵件的關鍵字進行加密,然後向郵件伺服器發送加密的郵件並附上加密的關鍵字;當郵件接受者想要搜索包含某個關鍵字的郵件時,基於從郵件伺服器接收到的伺服器公鑰及自身私鑰按照實施例一步驟s104的方式加密所述關鍵字,生成關鍵字的門限,發送關鍵字的門限至郵件伺服器;郵件伺服器按照實施例一步驟s105的方式測試與所述關鍵字匹配的加密郵件,如果存在與所述關鍵字匹配的加密文件,則郵件伺服器向郵件接受者返回相應的加密郵件。表1所示的是測試中所測得的基於雙線性對的可搜索加密方法各個步驟的運行時間。表1基於雙線性對的可搜索加密方法各個步驟的運行時間實施案例密鑰生成關鍵字密文生成門限生成測試匹配郵件最大時間0.027s0.108s0.069s0.018s最小時間0.009s0.100s0.044s0.011s平均時間0.019s0.103s0.058s0.014s綜上所述,本發明提供的基於雙線性對的可搜索加密方法中,伺服器持有自己的公私鑰對,由發送端基於雙線性對用接收端公鑰和伺服器公鑰加密消息的關鍵字,當接收端想要搜索包含某個關鍵字的消息時,則基於雙線性對利用伺服器的公鑰和接收端的私鑰加密所述關鍵字,生成該關鍵字的門限,由此接收端可以通過公共信道將所述門限傳遞給伺服器。因為只有伺服器持有能夠匹配接收端所指定關鍵字的門限的私鑰,而攻擊者因沒有伺服器的私鑰則無法進行所述匹配,進而保證了在無安全通道下門限的安全性,並且由於採用公共信道進行門限的傳遞,不需要專門的安全信道,因此,也保證了效率。並且,在本發明中,接收端利用一個隨機數去更新門限,攻擊者無法區分不同的門限是否來自同一個關鍵字,進一步保證了門限的安全性。因此,本發明設計的方法是一個既無需安全信道又能夠滿足密文安全性和門限安全性,在保證效率的同時又很好的保護了用戶的隱私安全。以上所述僅為本發明的實施例,並非因此限制本發明的專利範圍,凡是利用本發明說明書及附圖內容所作的等同變換,或直接或間接運用在相關的
技術領域:
,均同理包括在本發明的專利保護範圍內。當前第1頁12