PEKS关键词可搜索加密详解
PEKS算法主要實現了四個步驟。
第一步:
生成公私鑰,初始化安全參數P(數值為質數,這里我認識跟哈希類似,減少沖突)(普通的安全參數一般是指比特的長度,長度越大說明越安全)。
具體流程
輸入P安全參數,對于循環群G來講(循環的實現是通過模P)。該群的階數等于 P內的質數個數-P的質因子分解個數+1(1除外)。
咱們這里設定階數為q,如何來求G群的原根?
可以用窮舉方法,窮舉P的質因子組成的所有循環群。可以參考14=2*7這個例子
該圖中可以看出階數是6,說明6個數值為一個循環。所以3和5是生成元(合數的原因,質數可能會只有一個生成元)最終會取得生成元g。
進而得到了對于任意的整數k,g的k次冪都屬于群G。計算a=g^k^(mod p)。a屬于G
而求k的是logg(a)是離散對數問題。(這就把NP離散對數問題聯系在一起啦)
密鑰的生成? 選取阿爾法屬于Z的群,Z的內容為{0,1,2...P-1}? 這個數是隨機取得的。公鑰為g的阿爾法次冪。表示的時候用[g,g的阿埃爾次冪] 這個是為了以后能夠便于運算。
第二步:
PEKS對關鍵詞進行加密,這里是用了兩個哈希,首先對W進行哈希H1(W)? 這個哈希是把關鍵字映射到群G里。e(H1(W),h的r次冪)。h的r次冪就是H1(W) (r也是隨機數)? 也是為了創造雙線性對。然后進行二次哈希進行加密H2W(t),表示為[g的r次冪,H2(t)]??
第三步:
生成陷門,接收方指定某些關鍵字W2? 生成陷門H1(W2)的阿爾法次冪。
第四步:
查找,輸入S=【A,B】 其中A=h的r次冪? 這個就是待查找的單詞(哈希表示的)B加密后的密文。TEST(公鑰,TW,S)
經過推導可知H2(e(Tw,A))==B?? ?這個可以這么理解 把文字我們哈希成A,加密成B。我現在查關鍵詞A經過一系列步驟后等于B? 說明查找成功
推導公式公式如圖
總結
以上是生活随笔為你收集整理的PEKS关键词可搜索加密详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 实现一个简单的神经网络(附
- 下一篇: Scheme 语言概要(下)