å¯æç´¢å å¯ç®æ³SE
ç®åï¼äºè®¡ç®é£éåå±ï¼è®¸å¤ç¨æ·æ´åæ¬¢å°æ°æ®ä¸ä¼ å°äºä¸ï¼ä»¥åè½»æ¬å°åå¨çè´æ ã
ç¶èï¼å¨è¿ç¨æå¡å¨ä¸åå¨æææ°æ®ä¼å¸¦æ¥éç§æ¹é¢çææï¼è¿æ¯ä¸ä¸ªä»¤äººæ å¿§çé®é¢ã
2000å¹´ï¼Songç馿¬¡æåºäºå¯æç´¢å å¯çæ¦å¿µãä½ä¸ºä¸ç§æ°åçå¯ç åè¯ï¼å¯æç´¢å 坿æ¯ä½¿ç¨æ·å ·æå¨å¯æåä¸è¿è¡å ³é®è¯æç´¢çè½åã æ°æ®ä»¥å¯ææ¹å¼åå¨å¨äºæå¡å¨ä¸æ¶ï¼å©ç¨äºæå¡å¨ç强大计ç®è½åè¿è¡å ³é®è¯çæ£ç´¢ï¼èä¸ä¼åæå¡å¨æ³é²ä»»ä½ç¨æ·çéç§ãè¿ä¸ä» ä» ä½¿ç¨æ·çéç§å¾å°äºææä¿æ¤ï¼è䏿£ç´¢æçä¹å¨æå¡å¨ç帮å©ä¸å¾å°äºå¤§å¹ 度æåã
Searchable Encryptionï¼å¯æç´¢å å¯ï¼æ¯ä¸ç§ä¿æ¤ç¨æ·æææ°æ®çç§¯ææ¹æ³ï¼åæ¶ä¿çäºæå¡å¨ç«¯çæç´¢è½åã
å¯æç´¢å å¯è§£å³ä¸¤ç±»åºæ¬é®é¢ï¼ â ä¸å¯ä¿¡èµæå¡å¨çåå¨é®é¢ â¡ ä¸å¯ä¿¡èµæå¡å¨çè·¯ç±é®é¢
Searchable Encryptionç主è¦åæ¯æ¯ SSE(å¯¹ç§°å¯æç´¢å å¯ï¼Symmetric Searchable Encryption) åASE(éå¯¹ç§°å¯æç´¢å å¯, Asymmetric Searchable Encryption)ã ASE ä¹ç§°å ¬é¥å¯æç´¢å å¯(PEKS,带æå ³é®åæç´¢çå ¬é¥å å¯ï¼Public key Encryption with Keyword Search)ã
SSEåASE çåºå«ï¼
- SSE 使ç¨å¯¹ç§°å å¯ç®æ³ï¼å å¯åè§£å¯çå¯é¥ä¸æ ·ï¼ASE 使ç¨é对称å å¯ç®æ³ã
- SSEåªå 许ç§é¥ææè çæå¯æå¹¶ä¸ºæç´¢å建é·é¨; PEKSå 许å¤ä¸ªæ¥æå ¬é¥çç¨æ·çæå¯æï¼ä½åªå 许ç§é¥ææè å建é·é¨ã
SSEç¸æ¯äºASEï¼ä¼å¿å¨äºè®¡ç®å¼éå°ãç®æ³ç®åãé度快ãé常使ç¨å¨åç¨æ·æ¨¡åä¸ï¼æ£ç´¢æ¹åæ°æ®æ¥æè æ¯åä¸ä¸ªã
对äºå¯æç´¢å 坿æ¯çæ¥æºï¼è¦è¿½æº¯å°ä¸å¯ä¿¡èµçæå¡å¨åå¨é®é¢ã
tip åºæ¯æ¨¡æ
å设Aliceæä¸äºææ¡£ï¼åå¨å¨ä¸ä¸ªä¸å¯ä¿¡æå¡å¨Bobä¸ã å 为Bobæ¯ä¸å¯ä¿¡çï¼Alice叿åªå¨Bobä¸åå¨å å¯è¿çææ¡£ã æ¯ä¸ªææ¡£é½å¯ä»¥è¢«åæåè¯ï¼æ¯ä¸ªåè¯å¯ä»¥æ¯çé¿æè ä¸çé¿çã å 为Aliceåæå¡å¨Bobä¹é´é信带宽å¯è½æ¯è¾ä½ï¼å¥¹å¨å¯¹ææ¡£è¿è¡æ£ç´¢æ¶ï¼å¸æåªè·å¾å å«æä¸ªç¹å®å ³é®åwçä¸é¨åææ¡£ã 为äºè¾¾å°è¿ä¸ªç®æ ï¼è®¾è®¡äºè¿æ ·ä¸ä¸ªæ¹æ¡ï¼Bobå¯ä»¥å¨å¯æä¸è¿è¡æç§è®¡ç®ï¼å¹¶ä¸åªè¿åå¯è½å å«å ³é®åwçææ¡£ï¼èæ æ³è·å¾é¤æ¤ä¹å¤çå ¶ä»ä¿¡æ¯ã
å ³é®å¨äºï¼æªè·å¾æ°æ®æ¥æè Aliceææçå ¶ä»ç¨æ·ä¸è½å¤ç¥éä»»ä½å ³äºæä»¶ææçç¥è¯ã
Searchable Encryptionçæé
åºäºç´¢å¼ï¼ å¯¹äºæ¯ä¸ä¸ªå ³é®å Wï¼å»ºç«ä¸ä¸ªç´¢å¼ï¼ç´¢å¼ä¸å 嫿æå«æè¯¥å ³é®åçæä»¶çæéã ç±äºè¿ç§æ¹æ¡å¨æ´æ°æ°æ®çæ¶åä¼å¯¹ç´¢å¼è¿è¡å¤§éçä¿®æ¹ï¼å æ¤éå大éåªè¯»æ¨¡å¼ã
- Z-IDXæ¹æ¡
- SSE-1æ¹æ¡
åºäºåå¨ç»æï¼ è¿ç§æ åµä¸æ²¡æç´¢å¼ï¼æ¯æ¬¡æ¥è¯¢é½æ¯å¯¹æä»¶è¿è¡ä¸æ¬¡æ«ææ¥å¯»æ¾ç¬¦åæ¥è¯¢æ¡ä»¶çæä»¶ã æ çï¼è¿ç§æ¨¡å¼çæ¥è¯¢æçä¼ä½å¾å¤ï¼ä½æ¯å´æ´éåç»å¸¸æ´æ°çåå¨ç³»ç»ã
- SWPæ¹æ¡
Symmetric Searchable Encryptionï¼SSE
å¯¹ç§°å¯æç´¢å å¯ã
å®ä¹å¨åå ¸Î={W1,W2,â¦,Wd}ä¸çå¯¹ç§°å¯æç´¢å å¯ç®æ³å¯æè¿°ä¸ºäºå ç»ï¼SSE=(KeyGen,Encrypt,Trapdoor,Search,Decrypt)ã ä¸ç§éç¨çå¯æç´¢å¯¹ç§°å 坿¹æ¡å å«å个å¤é¡¹å¼æ¶é´ç®æ³ï¼
K=KeyGen(λ)ï¼Î»æ¯å®å ¨åæ°ï¼è¯¥ç®æ³æ ¹æ®å®å ¨åæ°çæå å¯å¯é¥Kã(I,C)=Encrypt(K, D)ï¼ä¹å°±æ¯BuildIndex(K, D)æä½ãç±æ°æ®ææè è¿è¡çå ³é®åç´¢å¼çæç®æ³ï¼å®ä»¥å¯é¥Kåæææä»¶éåDä½ä¸ºè¾å ¥ï¼ç¶åè¾åºå ³é®åç´¢å¼çç»æIå坿æä»¶éCã- Dæ¯æææä»¶éåï¼ D=(D
1,D2,â¦,Dn),Diâ2Î - è¯¥ç®æ³çææä»¶ç´¢å¼Iï¼å¯ææä»¶éC=(C
1,C2,â¦,Cn)ï¼é¨åæ¹æ¡ä¸éè¦çæç´¢å¼
- Dæ¯æææä»¶éåï¼ D=(D
- T
w=Trapdoor(K, w)ï¼ç±ç¨æ·è¿è¡çå ³é®åTrapdoorï¼é·é¨ï¼çæç®æ³ãå®ä»¥å¯é¥Kåç¨æ·è¾å ¥éè¦æ¥è¯¢çå ³é®è¯wä½ä¸ºè¾å ¥ï¼å¹¶è¾åºå ³é®åwçTrapdoor(é·é¨)Twã - D(W)=Search(I, T
w)ï¼ç±æå¡å¨è¿è¡çå ³é®åæç´¢ç®æ³ï¼è¯¥ç®æ³æ ¹æ®ç¨æ·è¾å ¥çæçé·é¨Twåå ³é®åç´¢å¼Iè¿è¡æ¥æ¾ï¼å¹¶è¾åºä¸ç»ä¸è¾å ¥å ³é®è¯å¹é çæä»¶éåD(w)ã - D
i=Decrypt(K, Ci)ï¼ç¨çæçå¯é¥Kè§£å¯è¿åç坿æä»¶Ciï¼çææææä»¶Diã
å¦æå¯¹ç§°å¯æç´¢å 坿¹æ¡SSEæ¯æ£ç¡®çï¼é£ä¹å¯¹äº âλâNï¼nâZï¼WâÎï¼D=(D1,D2,â¦,Dn) 以å KeyGen(λ) åEncrypt(K,D)è¾åºçKå(I,C)ï¼é½æSearch(I,Trapdoor(K,W))=D(W)åDecrypt(K, Ci) = Di æç«ã
å¯¹ç§°å¯æç´¢å å¯éå¸¸å¯¹å ³é®è¯é¦å è¿è¡å¤çï¼å¤§å¤æ°éç¨ä¼ªéæºå½æ°æè æ£åç®æ³çæ¹æ³ï¼æ¨¡ç³å ³é®è¯è¯ä¹è¿è¡éæºåçå¤çã å½ç¨æ·è¿è¡å ³é®è¯æ£ç´¢æ¶ï¼å°æ¥è¯¢å ³é®è¯è¿è¡ç¸åå¤çï¼ä¸æä»¶çå ³é®è¯è¿è¡ç¸ä¼¼åº¦å¹é ï¼ç»ææ»¡è¶³æç§æ ¼å¼ï¼å说æå¹é æåï¼è¿åç¸åºçæä»¶ã
SWPæ¹æ¡
2000å¹´ï¼Songçç¬¬ä¸æ¬¡æåºäºå¨å¯æä¸è¿è¡æç´¢çæ¹æ¡SWPã 
å ·ä½æé å¦ä¸:
-
KeyGen()ï¼æ°æ®æ¥æè çæå å¯å¯é¥k'åk"以åä¼ªéæºæµS
1,S2,â¦,Snï¼n为æä»¶ä¸çåè¯åæ°ç®ï¼ã -
Encrypt()ï¼å°æä»¶å为é¿åº¦åºå®çåè¯åW
iï¼è®¡ç®X\_i=E\_{k''}(W\_i)=(L\_i,R\_i), k\_i=f\_{k'}(L\_i), T\_i=(S\_i,F\_{k\_{i}}(S\_i))åCi=XiâTi ï¼å ¶ä¸ï¼Eæ¯åç»å å¯ç®æ³ï¼Fåfæ¯ä¼ªéæºå½æ°ã
-
Trapdoor()ï¼å¯¹äºç¨æ·è¾å ¥çå ³é®è¯ Wï¼è®¡ç®X=E
k''(W)=(L,R) å k=fk'(L)ï¼å°ï¼Xï¼kï¼åéæå¡å¨ã -
Search()ï¼æå¡å¨è¿è¡å¦ä¸è®¡ç®:
T\_p=C\_pâX=(S\_p,S^{'}\_p)= \\begin{cases} {(S\_p,S^{'}\_p)} \\end{cases}= \\begin{cases} (S\_p,F\_k(S\_p)) \\\\ null \\end{cases}妿(S_p~'=F_k(S_p))ï¼è¿åï¼p,C_pï¼ã
-
Decrypt()ï¼ç¨æ·æ¶å°C
påï¼æ ¹æ®èªå·±çå¯é¥è§£å¯ï¼å ·ä½è®¡ç®å¦ä¸ï¼Cp=(Cp,l,Cp,r)ï¼ Xp,l=Cp,lâSpï¼Kp=fk'(Xp,l)ï¼Tp=(Sp,Fk(Sp))以åXp=CpâTpåWp=Dk''(Xp)ãå ¶ä¸ï¼Dæ¯åç»å¯ç è§£å¯ç®æ³ã
è½ç¶SWPç®æ³å¯ä»¥ä½¿æå¡å¨ä¸è½è·å¾ä»»ä½ææä¿¡æ¯ï¼ä½æ¯ç±äºéè¦æ«æå ¨æï¼ä½¿ç®æ³æçè¾ä½ï¼å¹¶ä¸è¯¥ç®æ³å®¹ææ¶å°ç»è®¡æ»å»çå¨èã
1. åä¸å ³é®åæç´¢
é¡ºåºæ«æçSSEæ¹æ¡
å¨è¯¥æ¹æ¡ä¸ï¼éè¿é¡ºåºæ«ææ´ä¸ªå¯ææ¥æ§è¡æç´¢ã è¯¥æ¹æ¡çåºæ¬ææ³æ¯éè¿å°ææä¸çæ¯ä¸ªå ³é®åä¸ä¼ªéæºæ¯ç¹åºåè¿è¡å¼æè¿ç®æ¥è·å¾å¯æãå æ¤ï¼å è®¸ç´æ¥å¨å¯æä¸æç´¢ã
è¯¥æ¹æ¡å
æ¬3个æ¥éª¤ï¼å嫿¯ï¼å å¯ãæç´¢åè§£å¯ã 
å¨è¯¥æ¹æ¡ä¸ï¼ææåæ¥è¯¢å ³é®åçéç§å¾å°äºä¿æ¤ã 使¯ï¼å®çæç´¢æçè¾ä½ï¼æç´¢æ¶é´ä¸ææ¡£éåçé¿åº¦æçº¿æ§å ³ç³»ï¼å 为æå¡å¨å¨ç¡®å®ææ¡£ä¸æ¯å¦å å«æä¸ªå ³é®åæ¶ï¼éè¦æ«æææ¡£çæ´ä¸ªå¯æã
å ·æå®å ¨ç´¢å¼çSSEæ¹æ¡
åºäºææ¡£çç´¢å¼ ä¸ºäºæé«æç´¢æçèéç¨ä¼ªéæºå½æ°åå¸éè¿æ»¤å¨çå®å ¨ç´¢å¼ç»æï¼ä½¿ç¨å¸éè¿æ»¤å¨ï¼å¯ä»¥å¿«éç¡®å®ä¸ä¸ªå ç´ æ¯å¦å±äºä¸ä¸ªéåã å¨è¿ä¸ªæ¹æ¡ä¸ï¼ä¼ªéæºå½æ°è¢«åºç¨äºææ¡£ä¸çæ¯ä¸ªå ³é®è¯ä¸¤æ¬¡ãç¶åï¼è¾åºè¢«æ å°å°å¸éè¿æ»¤å¨ã æäºBloom filterçç¥è¯ï¼ç¡®å®ä¸ä¸ªææ¡£æ¯å¦å å«æä¸ªå ³é®å就容æå¤äºã
è¿ç§æ¹æ¡çä¼ç¹æ¯æå¡å¨åªéè¦æç´¢ç´¢å¼ï¼è䏿¯æ«ææ´ä¸ªå¯æãç»æï¼æé«äºæç´¢æçï¼ä½æå¡å¨è¿å¿ é¡»æç´¢æ¯ä¸ªç´¢å¼ï¼å¹¶ä¸æ¥è¯¢çæç´¢å·¥ä½ä¸ææ¡£æ°éæçº¿æ§å ³ç³»ï¼å³ä½¿åªæä¸ä¸ªææ¡£å 嫿¥è¯¢å ³é®åã
åºäºå ³é®åçç´¢å¼ å¨åºäºå ³é®åçå®å ¨ç´¢å¼ä¸ï¼ä¸ä¸ªå ³é®å对åºè®¸å¤ææ¡£æ è¯ç¬¦ãå¨è¯¥æ¹æ¡ä¸ï¼æ¥è¯¢å ³é®è¯çæç´¢æ¶é´ä¸å å«è¯¥æ¥è¯¢å ³é®è¯çææ¡£æ°éæçº¿æ§å ³ç³»ãå æ¤ï¼ä¸åºäºææ¡£çç´¢å¼ç¸æ¯ï¼åºäºå ³é®åçç´¢å¼å¨æç´¢æ¥è¯¢æ¶æ´ææã ç¶èï¼å½å¨éå䏿·»å ãå é¤æä¿®æ¹ææ¡£æ¶ï¼æ´æ°åºäºå ³é®åçç´¢å¼æ¯å°é¾çã
卿SSEæ¹æ¡
è¿æ¯ä¸ç§è½å¤å¤çææ¡£æ´æ°ç卿SSEæ¹æ¡ã å¨è¯¥æ¹æ¡ä¸ï¼æå¡å¨ä¸åå¨çå ³é®åçæç´¢æ¶é´æ¯å¯¹æ°çã åºæ¬æ¹æ¡æ©å±å°ä¸¤ä¸ªæ¹æ¡ï¼è¿ä¸¤ä¸ªæ¹æ¡åæ¯æææ¡£æ´æ°ã第ä¸ä¸ªæ¹æ¡æ¯äº¤äºå¼çï¼è第äºä¸ªæ¹æ¡æ¯æ 交äºå¼çã
2. 模ç³å ³é®è¯æç´¢çæ¹æ¡
å¨SSEæ¹æ¡ä¸ï¼ç¨æ·åæå¡å¨æäº¤æ¥è¯¢å ³é®åçTrapdoorï¼é·é¨ï¼ï¼æå¡å¨è¿åå 嫿¥è¯¢å ³é®åçææ¡£ã 使¯ï¼å¦ææ¥è¯¢å ³é®åä¸é¢è®¾çå ³é®åä¸å¹é ï¼å¦âcampusâåâcompusâï¼å ³é®åæç´¢å°å¤±è´¥ã 幸è¿çæ¯ï¼æ¨¡ç³å ³é®åæç´¢å¯ä»¥å¤çè¿ä¸ªé®é¢ï¼å 为å®å¯ä»¥å®¹å¿è½»å¾®çæåéè¯¯åæ ¼å¼ä¸ä¸è´ã
3. èåå ³é®åæç´¢
èåå ³é®åæç´¢å è®¸ç¨æ·å¨å个æ¥è¯¢æé´è·å¾å å«å ä¸ªå ³é®åçææ¡£ã
宿¯åä¸å ³é®åæç´¢æ´é«æï¼æ´éåå®é åºç¨ã
ä¸ä¸ªç®åçè¿ç¨æ¯åå«å¯¹æ¯ä¸ªå ³é®åæ§è¡åä¸ªå ³é®åæç´¢ï¼ç¶åå¤çç»æã使¯ï¼å®çæçå¾ä½ï¼å¹¶ä¸ä¼åæå¡å¨æ³é²ä¸äºä¿¡æ¯ã
ç°åçä¸äºèåå ³é®åæç´¢ï¼å¾å¾éä¿¡ææ¬ä¸ææ¡£æ°éæçº¿æ§å ³ç³»ï¼ä½ä¸»è¦å·¥ä½å¯ä»¥ç¦»çº¿å®æï¼å¦å¤çæ¹æ¡åªéè¦ä¸æç交æµï¼ä¸éè¦ç¦»çº¿åä»»ä½äºæ ã
æ¤å¤ï¼è¿æåºäºéæ åshamirç§å¯å ±äº«ææ¯æ¹æ¡å®ç°çæ¹æ¡ï¼ä¹æåºäºå线æ§å¯¹å®ç°çæ¹æ¡ã 乿å¦è æåºæ¯æèå´ãå串ãéé 符åçè¯æ¥è¯¢çæ¹æ¡ã
4. æååå¯éªè¯çå ³é®åæç´¢
æåå ³é®åæç´¢å¯ä»¥éè¿è¿åæç¸å ³çææ¡£æ¥ä¼åæç´¢ç»æï¼è¿å¯ä»¥åå°ç½ç»æµéå¹¶å¢å¼ºç³»ç»å¯ç¨æ§ã
æå¦è æåºäºä¸ç§å ·æâç´¢å¼å¹é â度éçå¤å ³é®åæåºæç´¢æ¹æ¡ã ç¶èï¼ä»ä»¬çæç´¢ç»ææ¯æ ¹æ®å¹é å ³é®è¯çæ°éè¿è¡æåçï¼è没æèèä¸åå ³é®è¯çéè¦æ§ã ä¹æäººæåºäºä¸ç§ä½¿ç¨âä½å¼¦åº¦éâææ¯çå¤å ³é®åæåºæç´¢æ¹æ¡ãä»ä»¬çæ¹æ¡ä»¥çºç²æç´¢ç²¾åº¦ä¸ºä»£ä»·è·å¾äºæ¯çº¿æ§æç´¢æ´å¥½çæçã
æè¿æå¦è æåºäºä¸ä¸ªå¨æçå¤å ³é®åæåºæç´¢æ¹æ¡ï¼åçæ¯ä½¿ç¨ä¸ä¸ªå®å ¨æ ï¼ä¹æå¦è æåºåºäºå±æ¬¡è类索å¼çå¤å ³é®åæåºæç´¢æ¹æ¡ï¼ä»¥æé«æç´¢æçã å¨ä»ä»¬çæ¹æ¡ä¸ï¼å½æ°æ®éåç大å°åææ°å¢é¿æ¶ï¼æç´¢æ¶é´å线æ§å¢é¿ã
è¯è®ºåº