基於密文的數據範圍搜索算法設計與實現

2021-01-07 人民網

摘要

隨著大數據的發展,大規模的數據越來越多的以密文的形式存儲在雲伺服器中。本文重點討論了在雲伺服器中,如何對已加密的數據進行快速的範圍搜索。當可信任的數據持有者將加密的數據上傳到雲伺服器後,雲伺服器支持大量的用戶搜索數據,並在不可解密數據及查找範圍的前提下,對數據搜索進行精確的匹配。本文提出了通過建立安全索引的方式對一維、二維數據進行範圍查詢的模型,並用百萬的數據驗證了方法的可行性與正確性。

關鍵詞 隱私保護 範圍查詢 HMAC加密 數據索引

ABSTRACT

With the vigorous development and progress of big data, cloud server plays an important role in the data storage and processing.The paper focuses on fast range query based on the encrypted data . When trusted data owner upload the encrypted data to the cloud server, a large amount of users can search data from cloud server. The cloud server should accurately match the data range and return to the users .This paper established a fast range model based on encrypted data. With one million Twitter site data experimental verification, we prove that our model is feasible and efficiency.

KEY WORDS Privacy-Preserving Range Query HMAC Data Index

第一章 緒論

1.1 研究背景

為了數據運行的高可靠性、高運算性能和快速的計算能力,人們越來越多的利用雲伺服器來運行數據以及計算服務。而在雲計算中,隱私問題成為關鍵。

雲計算模型中涉及三個實體,數據持有者和客戶都是可信任的,雲伺服器是不可信任的,因此數據持有者和客戶的數據以及查詢範圍都以密文的形式發送給雲伺服器。

1.2 研究意義

當前的雲伺服器不支持加密數據搜索,如果解決了雲伺服器中加密數據搜索問題將會極大的改善數據安全問題並可應用於許多實際場景中,因此這個研究問題是非常重要也是今後必須解決的問題。而當前的方法[1,2,3,4]都不足以保護隱私並且高效的搜索,本文提出的算法將把隱私保護與快速搜索相結合,提出一種新的範圍搜索模型。

1.3 主要貢獻

本文主要做出如下貢獻:

1.在已有一維數據搜索模型基礎上提出了新的二維數據搜索模型。

2.對二維搜索模型做出了創新型的優化,使搜索效率有了明顯提高。

3.提出了將二維搜索模型應用到KNN[5,6](K鄰近點搜索)等實際應用場景中,解決了實際的搜索問題。

1.4 搜索模型系統架構

對於一維數據和二維數據,我們都採用如圖1-1所示的搜索模型,這個模型由Alex最先提出[7]。

工作流程已在圖中標明:

①由數據持有者利用原始數據集建立一個加密數據索引。

②數據持有者用對稱密鑰K對原始數據集進行加密,得到加密數據集,並將加密數據集以及上一步得到的數據索引上傳給雲伺服器。

③客戶端將查找範圍進行HMAC加密後上傳給雲伺服器。

④雲服務利用加密數據索引對搜索範圍進行查找。

⑤雲伺服器將查詢到的加密數據返回給客戶,客戶利用對稱密鑰K對加密數據進行解密,得到原始數據。

第二章 一維數據搜索模型

對應於上一章的系統架構,本章對一維數據搜索[7]主要從數據持有者建立數據索引,客戶端上傳搜索範圍,雲伺服器進行範圍查詢這三個方面進行討論。

2.1 數據持有者建立數據索引

建立數據索引主要包括三個步驟:

1.進行前綴編碼:將原始數據表示成二進位形式,並用這個而二進行所有的前綴組成前綴編碼集合。

2.建立平衡二叉樹的數據索引:將上一步中的前綴編碼建立一棵平衡二叉樹,建樹方式與數據大小順序無關,從而保證索引結構不可分辨性。

3.進行HMAC加密[8]並映射到Bloom Filter[9]:對於上一步中建立的平衡二叉樹內的元素(數據的前綴編碼)進行HMAC加密。對於根節點,使用H個不同密鑰對原始數據進行加密,並且在樹的每一層引入一個v.R的隨機數進行二次加密,從而消除節點間相同元素的相關性。並將加密的值映射到一個Bloom Filter的位數組中,從而減小數據索引的空間大小。

2.2 客戶端上傳搜索範圍

客戶採用與數據持有者相同的前綴編碼方法對數據範圍進行前綴編碼,將查詢範圍轉化為最小的前綴編碼集S(a,b),使這個集合的前綴數最少,且可以表示這個範圍。將S(a,b)同樣用與數據持有者相同的密鑰進行H次HMAC加密,將加密的數據集上傳給雲伺服器。

2.3 雲伺服器進行範圍查詢

對於客戶端傳來的加密搜索範圍,雲伺服器將每一個加密數據與樹型索引的每一個節點進行Bloom Filter的匹配,若匹配則可判斷該節點下的葉子節點中存在滿足範圍的數據,則繼續遍歷此子樹直到遍歷到葉子節點,雲伺服器將葉子節點指向的數據傳給客戶端,完成搜索過程。

第三章 二維數據搜索模型

不同於一維數據的前綴編碼,對於二維數據本文採用柵格編碼對數據進行轉換。

3.1 數據持有者建立數據索引

二維模型中建立數據索引也需要三個步驟:

1.柵格編碼[10]:

對於二維數據,本文將二維數據映射到一個平面,並對這個平面進行柵格的劃分,如圖3-1。將每一個點用K級的柵格編碼進行表示(本文對於柵格採用格子中心點坐標來表示此格子的編碼),即完成柵格編碼。

2.建立平衡四叉樹的數據索引,由於在二維平面中利用柵格劃分,每一級柵格都將平面分為四個部分,因此我們採用平衡四叉樹來存儲數據的索引。建立方法與一維模型中方法相同。

3.將上一步的數據索引進行HMAC加密並映射到Bloom Filter 中,具體方法與一維搜索模型方法相同。

3.2 客戶端上傳搜索範圍

與一維數據不同,二維數據(如地理位置)搜索上傳的範圍一般是以客戶端所在的地理位置為圓心,以r為搜索半徑的一個圓形搜索範圍,如圖3-2。在客戶端同樣採用柵格編碼的方法,將這個二維平面進行柵格的劃分。這個圓形的搜索範圍將包含如圖中填色的這些柵格。用這些柵格來表示客戶的搜索範圍。

下一步,對圓形搜索範圍所覆蓋的柵格編碼進行HMAC加密,並將加密的數據上傳給雲伺服器。

3.3 雲伺服器進行範圍查詢

雲伺服器對二維數據搜索過程與一維模型介紹方法基本相同,此處不做贅述。

3.4 二維數據搜索的優化

本文採用柵格編碼的方法已將搜索範圍轉化為一個簡單高效的表示方法,為了提高搜索速率,我們需要從數據索引的結構進行討論與優化。本章中通過優化數據索引的結構(廣度優化)以及搜索過程(深度優化)從而提高搜索的速率。

廣度優化指將相鄰的點儘量分配到數據索引的同一棵子樹中,這樣可以減少查詢次數。但為了數據安全,設置閾值T,當一個節點內數據個數大於T時,才可進行廣度優化。

深度優化是指,當一個節點內元素全部滿足範圍時,則直接返回其子樹的所有葉子結點。這就需要建立數據索引時,保存每個節點內的公共柵格編碼,從而使查詢時減少查詢的深度。

第四章 實驗驗證

4.1 實驗數據集

本文從推特網站上收集了一百萬個用戶的位置數據,數據包含用戶的ID,用戶位置的x坐標與y坐標。坐標以經度和緯度的格式存儲。我們分別進行三個實驗,實驗一是用二維搜索模型進行二維數據範圍的搜索,實驗二是採用優化的二維搜索模型對二位數據範圍進行搜索,實驗三是採用Alex提出的一維搜索模型進行二維數據範圍的搜索,並記錄每個實驗中數據索引的建立時間,數據索引的空間大小,範圍搜索的時間,範圍搜索的結果誤差等,並通過實驗間的對比來分析不同模型的優缺點。

4.2 實驗結果分析

4.2.1 搜索時間分析

在三組實驗參數設置相同的情況下,通過改變搜索範圍進行多次實驗,實驗結果都標明,利用優化的二維搜索模型進行搜索的效率大大高於其他兩組對比實驗,而一維搜索模型的實驗中搜索時間是最長的。

對於實驗二,保證其他參數不變,改變安全閾值T,當T值越大時,代表優化程度越低,實驗中搜索時間越長,當T大於總數據個數時,代表未進行優化,則實驗二搜索時間與實驗一相同。

4.2.2 數據索引建立時間分析

實驗中,通過記錄數據索引的建立時間可知,優化的二維搜索模型的數據索引建立時間遠大於其他兩個實驗組的數據索引建立時間,其他兩個實驗組建立時間相近,對於一百萬的數據,優化的二維搜索模型大約需要建立7000s,而其他兩個實驗組建立大約3000s。

4.2.3 搜索誤差分析

本文提到過,當對二維搜索範圍進行柵格編碼時,我們存儲的柵格是搜索範圍完全覆蓋的柵格,因此對於覆蓋一部分的柵格被我們忽略,這就產生了搜索結果的誤差。本文拿實驗一進行實驗,通過改變柵格級數來計算誤差。實驗結果標明,柵格級數越大,誤差越小,當柵格級數為15級時,誤差為百分之三。

第五章 結束語

本文在已提出的一維模型基礎上設計了針對二維數據範圍的搜索模型,使二維的加密數據可以以很高的效率進行搜索,並且同時保證了數據的安全性。在二維數據範圍搜索模型的基礎上,本文又對二維數據同時進行了深度優化以及廣度優化,將搜索速率大大的降低。

對於二維加密數據的搜索,在現實生活中也有很多應用的場景,如KNN搜索問題等,因此本文討論的問題具有很多實際的應用價值。

參考文獻

[1] B. Hore, S. Mehrotra, M. Canim, and M. Kantarcioglu. Secure multidimensional range queries over outsourced data. The VLDB Journal, 21(3):333–358, June 2012.

[2] B. Hore, S. Mehrotra, and G. Tsudik. A privacy-preserving index for range queries. In VLDB, pages 720–731, 2004.

[3] A. Boldyreva, N. Chenette, Y. Lee, and A. O』Neill. Order-preserving symmetric encryption. In EUROCRYPT, pages 224–241, 2009.

[4] A. Boldyreva, N. Chenette, and A. O』Neill. Order-preserving encryption revisited: Improved security analysis and alternative solutions. In CRYPTO, 2011.

[5] N. Li, T. Li, and S. Venkatasubramanian. t-closeness: Privacy beyond k-anonymity and l-diversity. In Data Engineering, 2007. ICDE 2007. IEEE 23rd International Conference on, pages 106–115, April 2007.

[6] W. K. Wong, D. W.-L. Cheung, B. Kao, and N. Mamoulis. Secure knn computation on encrypted databases. In SIGMOD, pages 139–152, July 2009.

[7]Rui Li, Alex X. Liu, Ann L. Wang, Bezawada Bruhadeshwar:Fast Range Query Processing with Strong Privacy Protection for Cloud Computing. PVLDB?7(14): 1953-1964(2014)

[8] Praveen Gauravaram, Shoichi Hirose, Suganya Annadurai.An Update on the Analysis and Design of NMAC and HMAC Functions.International Journal of Network Security, 2008, Vol.7 (1), pp.49.

[9] Kumar A,Xu J.Space-Code bloom filter for efficient per-flow traffic measurement. Proc.of the IEEE INFOCOM2004.

[10] Hien To, Gabriel Ghinita, Cyrus Shahabi:A Framework for Protecting Worker Location Privacy in Spatial Crowdsourcing. PVLDB?7(10): 919-930 (2014). 

(責編:溫靜、趙光霞)

相關焦點

  • 基於CORDIC算法2FSK調製器的FPGA設計
    提出一種基於流水線CORDIC算法的2FSK調製器的FPGA實現方案,可有效地節省FPGA的硬體資源,提高運算速度。最後,給出該方案的硬體測試結果,驗證了設計的正確性。關鍵詞:移頻鍵控;調製器;CORDIC算法;FPGA0 引言 頻移鍵控(FSK)是用不同頻率的載波來傳送數位訊號,並用數字基帶信號控制載波信號的頻率。具有抗噪聲性能好、傳輸距離遠、誤碼率低等優點。
  • 加密算法科普:des、aes加密、對稱、非對稱加密、Hash算法都是啥
    恰恰相反,經過密碼學家精心設計選擇的各種操作,DES獲得了一個非常有用的性質:加密和解密使用相同的算法!橢圓曲線密碼學的主要優勢是在某些情況下它比其他的方法使用更小的密鑰 — — 比如RSA加密算法 — — 提供相當的或更高等級的安全。橢圓曲線密碼學的另一個優勢是可以定義群之間的雙線性映射,基於Weil對或是Tate對;雙線性映射已經在密碼學中發現了大量的應用,例如基於身份的加密。不過一個缺點是加密和解密操作的實現比其他機制花費的時間長。
  • RJMU401的DES和SM4分組密碼算法原理
    今天就介紹一下RJMU401中的分組密碼算法——DES和SM4。2分組密碼算法介紹分組密碼就是將明文數據按固定長度進行分組,然後在同一密鑰控制下逐組進行加密,從而將各個明文分組變換成一個等長的密文分組的密碼。其中二進位明文分組的長度稱為該分組密碼的分組規模。
  • 區塊鏈丨對稱加密算法
    在前面的文章中,有提到「對稱加密算法」,這是一種相對應用得比較早的加密算法之一,其技術也是比較成熟的。在執行對稱加密時,數據發出方將需要明文(之前的文章中有解釋)和加密密鑰一起輸入至加密算法中進行處理,使之變成更為複雜的加密密文,之後再將密文發布出去。
  • 利用彙編語言實現DES加密算法
    DES算法是一種數據加密算法。自從1977年公布以來,一直是國際上的商用保密通信和計算機通信的最常用的加密標準。DES算法的實現一般用高級語言。
  • 數據加密中的DES加密算法詳解
    [摘要] 本文詳細介紹了DES數據加密算法的原理,並給出了一個例子演示了如何使用c#中的加密包進行DES算法加密,最後對DES進行了評價。常用加密算法主要用來對敏感數據、摘要、籤名等信息進行加密。按照密鑰方式劃分,可分為對稱加密算法和非對稱加密算法。一、對稱加密算法對稱加密算法有時又叫做傳統密碼算法,加密密鑰可以從解密密鑰中推導出來,解密密鑰也可以從加密密鑰中推導出來。在大多數的對稱算法中,加密密鑰和解密密鑰是相同的,因此也成為秘密密鑰算法或者單密鑰算法。
  • 利用帕斯卡三角和謝爾賓斯基三角的加密算法
    本文中,我們將使用一種基於替換法和置換法的用於加解密的算法,這種算法基於要論述的帕斯卡三角和謝爾賓斯基三角的概念。帕斯卡三角的概念用於在一種特殊的模式下對純文本中字符進行異或運算,運算結束後得到我們想要的密文。二、參考文獻這一節裡,我們會提到一些經典和現代加密數據技術的概述。
  • 基於RG-S21系列交換機實現校園一卡通網絡系統的設計
    基於RG-S21系列交換機實現校園一卡通網絡系統的設計 中國安防行業網 發表於 2020-12-26 10:56:02 在全球數位化浪潮的影響之下,高等學校數位化校園建設受到廣泛的重視
  • 基於FPGA實現FIR數字濾波電路的設計及應用
    打開APP 基於FPGA實現FIR數字濾波電路的設計及應用 劉微;李彥明;姚志 發表於 2020-12-22 12:22:00
  • 什麼是加密算法?
    我們在Java裡面運用這些加密技術,只需要把原理和使用場景等搞明白就可以了,具體底層實現不用研究。常用的加密算法有對稱加密算法,非對稱加密算法,哈希算法,數字籤名等幾類。    對稱加密顧名思義就是加密和解密是對稱的,加密時用一個秘鑰去加密,解密時用同一個秘鑰去解密,由信息發送方和接收方共同約定一個秘鑰。缺點是風險都在這個秘鑰上面,一旦被竊取,信息會暴露。
  • 【學習筆記】基於藍牙低功耗技術的維修鑰匙設計
    中控裝置在上電後,發送廣播信號等待APP的搜索、連接和數據傳輸。通過中控裝置上的開關能夠切換其工作模式。  1.2工作流程  在安裝及維護階段,APP通過蜂窩移動數據網絡,向雲平臺請求對應目標停車場及鑰匙櫃的32位索引編號和BLE模塊相關參數;待中控裝置上電後,搜索並連接,使用特定的通信協議將上述內容發送給中控裝置;中控裝置在接收到數據通信時,識別指令類型後,執行並響應。設置加密模塊後,會反饋128位當前密鑰。
  • 哈希算法和密碼學
    依照其法則,可以將明文變為密文,也可以將密文。在早期。密碼僅僅對文字或者是數碼進行加密和脫密的變化,隨著通信技術的發展,密碼在語言、圖像和數據方面都可進行加密和脫密的轉換。密碼的不斷普及衍生出了密碼學,密碼學是研究編制密碼和破譯密碼的技術科學,在通常情況下,被認為是數學和計算機科學的分支,同時也和資訊理論密切相關。
  • des算法原理
    DES算法全稱為Data Encryption Standard,即數據加密算法,它是IBM公司於1975年研究成功並公開發表的。DES算法的入口參數有三個:Key、Data、Mode。其中Key為8個字節共64位,是DES算法的工作密鑰;Data也為8個字節64位,是要被加密或被解密的數據;Mode為DES的工作方式,有兩種:加密或解密。
  • 基於CPLD器件和EDA技術實現QDPSK調製解調電路的設計
    基於CPLD器件和EDA技術實現QDPSK調製解調電路的設計 電子設計 發表於 2019-05-24 08:12:00 隨著無線通信頻帶資源的日益緊張,無線通信主要包括微波通信和衛星通信。
  • 一種基於DES加密算法的加密方法
    摘要:本發明公開了一種基於DES加密算法的加密方法,其加密方法採用服務端與客戶端共享密鑰集文件,實現通信過程中使用動態密鑰的對稱加密方法,建立密鑰集文件,密鑰集文件由三個互相垂直方向的X、Y、Z組成的長方體形的三維模型;伺服器端在X、Y有效值範圍內隨機一個坐標,確定一組密鑰,進行DES加密;將選取的X、Y分別值轉換為4位16進位數
  • ...PPT詳解基於分布式向量檢索系統Vearch的大規模圖像搜索附PPT下載
    支持單個文檔定義多個向量欄位, 添加、搜索批量操作。 支持數值欄位範圍過濾與string欄位標籤過濾。 支持IVFPQ、HNSW、二進位等索引方式。 支持內存、磁碟兩種數據存儲方式,支持超大數據規模 自研gamma引擎,提供高性能的向量檢索,同時IVFPQ倒排索引支持compaction,檢索性能不受文檔更新次數的影響 基於raft協議實現數據多副本存儲 支持內積(InnerProduct)與歐式距離(L2)方法計算向量距離
  • 論算法的法律規制
    大數據會改變這兩種基本方法在我們認識世界時所扮演的角色。」在這個意義上,要求所有算法都必須滿足可解釋性的要求,實際上是要求相關主體完成一項不可能的任務,因為基於大數據的算法與可解釋性所要求的因果關係闡釋具有完全不同的邏輯。2.算法公開的可欲性在有些情形中,算法的透明性與可解釋性可以實現或部分實現,但算法的透明性與可解釋性仍可能存在可欲性問題。
  • 從算法上解讀自動駕駛是如何實現的?
    2.Lee算法Lee算法最早用於印刷電路和集成電路的路徑追蹤, 與Dijkstra算法相比更適合用於數據隨時變化的道路路徑規劃, 而且其運行代價要小於Dijkstra 算法。只要最佳路徑存在, 該算法就能夠找到最佳優化路徑。Lee算法的複雜度很難表示, 而且對於多圖層的路徑規劃則需要很大的空間。3.
  • 陳根:算法下的選擇讓渡,你被算法裹挾了嗎?
    文/陳根相較於傳統的物理世界,新一輪信息技術的發展使一個基於網際網路、人工智慧、大數據、區塊鏈等新興科技而形成的「數字世界」正真實而具體地嵌入我們的社會生活,深刻又廣泛地影響著我們習以為常的現實世界。但不論是大數據還是人工智慧,都依託算法而存在,我們正在走進的數字世界本質上則是數據驅動的算法應用。
  • 到底什麼是DES加密算法?這樣理解試試!
    在說DES加密算法之前,我們首先了解幾個基本概念:明文:明文是指沒有經過加密的數據。一般而言,明文都是等待傳輸的數據。由於沒有經過加密,明文很容易被識別與破解,因此在傳輸明文之前必須進行加密處理。密文:密文只是明文經過某種加密算法而得到的數據,通常密文的形式複雜難以識別及理解。