可計算加密技術(shù)

可計算加密技術(shù)是一種加密方法,它通過加密保證數(shù)據(jù)安全,同時加密后的數(shù)據(jù)能夠支持某些計算,目前已有的可計算加密技術(shù)可分為兩類:支持檢索的加密技術(shù)和支持運算的加密技術(shù)。

一、支持檢索的加密技術(shù)

常見的支持檢索的加密技術(shù)有基于對稱加密的密文檢索方法和基于非對稱加密的密文檢索方法、基于Bloom Filter的密文檢索方法。

這些方法只支持精確的字符串匹配,即兩字符串是否相等。然而,在許多實際的情況下,錯別字和格式不一致是不可避免的,因此,又有專家設(shè)計了一個支持加密字符串模糊檢索的方案,它使用編輯距離來量化字符串的相似度,并為每個字符串附加一個基于通配符的模糊字符串組,用多個精確匹配來實現(xiàn)模糊檢索。該方法的不足是它不能對滿足檢索條件的字符串進(jìn)行相似度排序,而且計算、存儲通信負(fù)載很大。對于一個長度為l的字符串,為了能處理d位的錯別字和格式不一致,需要進(jìn)行O(ld)次Hash運算并產(chǎn)生O(ld×160)位的存儲/通信負(fù)載。

還有專家提出一個基于保序加密技術(shù)OPSE的分級字符串檢索方案,能夠根據(jù)某一指標(biāo)對檢索的關(guān)鍵字分級,并按用戶的要求返回前N個符合要求的結(jié)果。該方案要求數(shù)據(jù)擁有者在外包文件前對每個文件進(jìn)行全文掃描,計算出每個關(guān)鍵字在該文件中的出現(xiàn)頻率,這對于數(shù)據(jù)擁有者來說是一件非常麻煩的事情。

另外還有基于同態(tài)加密技術(shù)的密文聚集查詢方案,但是要求數(shù)據(jù)擁有者自己建立一個加密的索引表。

二、支持運算的加密技術(shù)

支持運算的加密技術(shù)常見的有以下兩種:

基于桶劃分和分布概率映射思想的保序?qū)ΨQ加密算法OPES,支持對加密數(shù)值數(shù)據(jù)的各種比較操作。

基于折半查找和超幾何概率分布的保序?qū)ΨQ加密算法OPES,支持對加密數(shù)據(jù)的各種比較操作,但是由于在計算超幾何概率時需要進(jìn)行多次組合運算,其計算負(fù)載較大。以上兩種保序加密算法都是確定性的加密方案,這使得它們不具有語義安全性。

于是有專家設(shè)計了一個基于向量標(biāo)量積的對稱加密方案,該方案支持對加密數(shù)據(jù)庫進(jìn)行KNN計算。除此之外,目前已有一些同態(tài)加密算法,例如unpadded_RSA、ElGamal、Goldwasser_Micali、Benaloh和Paillier等,但它們只支持加法同態(tài)和乘法同態(tài)運算中的一種。

三、可計算加密技術(shù)的缺點

根據(jù)以上分析,我們發(fā)現(xiàn)可計算加密技術(shù)存在以下缺點:

(1)目前還沒有一種加密方案能夠同時支持字符串的檢索和數(shù)值數(shù)據(jù)(包括整數(shù)和浮點數(shù))的算術(shù)運算;

(2)目前對加密字符串的模糊檢索還沒有一個實際可行的方案;

(3)目前還沒有一種支持密文運算的方案能輕松地同時解決整數(shù)和浮點數(shù)的加、減、乘、除法運算;

(4)已有的一些方案往往要求數(shù)據(jù)擁有者在數(shù)據(jù)外包前做大量的準(zhǔn)備工作,這會使用戶的使用體驗大打折扣。

小知識之同態(tài)加密:

同態(tài)加密是基于數(shù)學(xué)難題的計算復(fù)雜性理論的密碼學(xué)技術(shù)。對經(jīng)過同態(tài)加密的數(shù)據(jù)進(jìn)行處理得到一個輸出,將這一輸出進(jìn)行解密,其結(jié)果與用同一方法處理未加密的原始數(shù)據(jù)得到的輸出結(jié)果是一樣的。