邵雨濛 高玉龍
(1.法國圖盧茲第一大學信息技術學院 圖盧茲 31000)
(2.中國傳媒大學計算機與網絡空間安全學院 北京 100024)
越來越多的研究成果相繼應用在我們的日常生活中,如云計算[1~2]、安全多方計算[3]等,尤其是數據挖掘技術[4]。當前,信息量的指數級增長預示著大數據的時代已經到來[5],數據挖掘將會被應用到更多的場景之中。然而,大數據技術憑借其多樣性,數據量大,時效性等特點對傳統數據管理技術帶來新的挑戰[6]。另一方面,繼大數據、人工智能、物聯網之后,區塊鏈成為當前又一個熱門的信息技術。2008 年,中本聰設計了一種點到點的電子現金交易系統,他也在文中首次提出并描述了該系統的底層技術——區塊鏈[7]。在該技術中,每個區塊都會指向前一個區塊的哈希值,這樣就在這些區塊之間建立了一個鏈接,構成了一條區塊鏈[8~11]。隨著區塊鏈技術的不斷成熟和應用范圍的不斷擴大,區塊鏈市場正快速增長。
區塊鏈2.0 版本特別地新增了超級賬本(Hyperledger)和智能合約技術[12~13]。此外,區塊鏈技術中包含公鑰密碼算法、哈希算法、分布式網絡(P2P)、時間戳等技術[14]。它更像是一個分布式的超級分類帳系統,依賴于所有用戶的維護,交易信息不能被偽造和修改。
在收集數據中,用戶可能還要考慮自己的個人隱私,因此如果沒有一個很好的平臺或模型,用戶可能不會提供自己的真實信息。數據挖掘的應用中也面臨這樣一個問題:信息量的龐大,而其中有意義的信息占比卻少之又少,尤其是其中包含大量不可驗證或不可信的信息,這對數據挖掘之后的結果帶來了一定的難題。如何既能收集到大量可信任的信息,又能保證個人隱私,使用戶能夠放心地提供自己的真實數據,這是對數據挖掘技術研究的新的課題[15~16]。
針對這一情況,本文結合格密碼算法以及區塊鏈技術,設計并提出一種安全的用戶隱私保護方案。在方案中,首先,我們設計將個人的隱私數據信息按照權值進行分級,例如,針對個人姓名、地址等隱私信息,這些數據的權值則較高,而對查詢、愛好等信息權值則相對較低。然后,將個人以上數據的權限(加密指針)存儲在區塊鏈中,信息則存儲在手機端本地,實現個人數據與手機應用中使用數據的分離,用戶在享受應用商服務的同時只需上傳部分個人相關可用數據。當使用結束,數據將仍然存儲在本地,應用服務提供商不能再次使用。這就對應用商個人數據讀取加上了一個權限管理。另一方面,針對數據挖掘所應用的數據,用戶能夠通過個人的私鑰管理自己的個人信息,使得部分信息可以讀取,個人姓名等信息將不能被讀取,保護了用戶的隱私信息。同時,基于區塊鏈技術的原理,利用私鑰的簽名保證了數據的可驗證性。攻擊者無法偽造相關數據。本文提出的方案可以很好地應用于保護個人隱私的場景中,對于用戶管理個人信息起到積極的作用和影響,同時,可以為數據挖掘提供一種安全和可信任的信息獲取方式,提高數據挖掘結果的可靠性。
橢圓曲線數字簽名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)[17]是數字簽名算法的橢圓曲線版本。其密鑰對與一組特定的橢圓曲線域參數相關聯。定義在有限域GF(q)的橢圓曲線E,其階為某個大素數n,選取E 上的一個階為該素數n的點P。算法具體過程如下。

然而,隨著量子計算機的深入研究,ECDSA 的安全性受到極大的威脅。量子計算機所具備的強大并行計算能力,能夠破解用戶的密鑰,繼而威脅當前區塊鏈技術的安全性。2008年,Gentry等[18]提出一種基于原像采樣的陷門設計密碼體制。
在本文中,基于文獻[19]中的構造短格基原理和原像采樣原理,設計并提出了一種基于格上小整數解問題(Small Integer Solutions problem,SIS)的簽名算法。


在新的區塊鏈方案中,我們將2.2 節中的格密碼簽名算法引入到區塊鏈技術中。我們的解決方案的目的是使用戶能夠控制和審計哪些數據被存儲以及它們是如何使用的。同時,訪問也應該是可撤銷的。
正如前文總結的區塊鏈的優點,可以看出,它非常適用于優化系統中用戶的信息安全。因此,基于密碼學的原理和區塊鏈的特點,在本文中,設計一個基于區塊鏈的用戶隱私權限保護方案。該方案將對個人數據的訪問策略(權限)存儲在區塊鏈上,區塊鏈在該模型應用中作為訪問私有數據的權限的過濾器,用于驗證和檢查應用服務提供商對用戶敏感數據和操作的權限。
方案中主要組成部分為以下三種:普通用戶、區塊鏈系統和服務提供商。用戶和應用服務提供商通過密鑰協商的方式生成一個共用的密鑰,用來加密區塊鏈中的數據,使得用戶和應用服務提供商都可以使用查詢區塊鏈中的數據或操作。通過運行2.2 節中的基于格密碼的簽名算法,分別對用戶以及應用服務提供商生成各自的公私密鑰對(pk,sk)。我們將個人信息,如身份信息、位置信息、圖像信息等在本地存儲。區塊鏈中,分別存儲的是相應的權限,如位置權限、圖像權限等。在該分布式網絡中,用戶的權限發布在該網絡中,之后通過礦工挖礦的方式(工作量證明),加載在該區塊鏈的主鏈上。設n 為一個正整數,假設在該系統中,用戶Alice的個人信息,如身份信息、位置信息、圖像信息的權限(比特串)等分別設為a1,a2,…,an,權限為對應信息的加密密鑰,該密鑰由系統通過對稱加密算法生成并分發給各自用戶。通過權限即可訪問對應的Alice 信息。由此,得到一個用戶Alice的信息權限集合A={a1,a2,…,an}。同時,對密鑰進行二次加密得到對應的密鑰集合B={b1,b2…,bn}。Alice通過運行格密碼算法,可以生多個公私密鑰對,即可以得到一個包含用戶公私密鑰對的數據集合Key={(pk1,sk1),(pk2,sk2),…,(pkn,skn)}。系統將Alice 的權限集合分別與該密鑰集合一一對應。該模型具體實現過程如下所示。
步驟1:Alice將自己的權限信息,如位置權限、圖像權限等,分別采用對應的私鑰進行簽名,分別生成不同的交易單txn,被礦工通過挖礦的方式上傳到區塊鏈的主鏈中。
步驟2:當服務提供商被要求提供某項服務需要Alice信息a1時,則要向Alice發出該信息的訪問權限詢問以獲得該權限的訪問資格。

步驟4:礦工挖礦(工作量證明)和驗證簽名e′的合法性,驗證通過,則將其加載在自己區塊鏈的主鏈上,否則將其拒絕并丟棄。
步驟5:通過驗證的交易將在該分布式網絡中進行共識機制,該交易最終被確認和達成共識,與其他節點一樣,存儲在公共賬本中。
步驟6:應用服務提供商憑借該交易信息和Alice 自己的簽名e′,證明其訪問資格。從而經過系統驗證通過,系統即將權限a1的解密密鑰b1發送給應用服務提供商。應用服務提供商即獲得該Alice 的某一項隱私信息(經過解密操作),并為Alice提供相應的服務。
步驟7:當Alice想要撤銷該應用服務提供商的某項資格時,可以通過自己的私鑰,對該權限進行二次生成交易,得到新的簽名e″,即該應用服務提供商的簽名被更新,原簽名e′失效,應用服務提供商即無法繼續保留針對Alice信息a1訪問的權限資格。
在該方案中,簽名算法的中的密鑰長度對模型的在實際應用中的性能要求直觀重要。與文獻[20]和文獻[21]中的同類型的簽名算法相比,本文中的參數選取n、m、q與同類文獻中的相同。如表1所示,其公鑰、私鑰和簽名的大小均大于本文的簽名方案。此外,本文的簽名算法的安全性依賴于格SIS 難題。平均情況的格SIS 難題可以多項式時間歸約到最壞情況的最短線性無關向量問題,已經被證明具備抵抗量子計算攻擊的優勢。這說明本文的簽名方案是抗量子安全的。

表1 與其他算法進行比較
在本文中,基于密碼學的原理和區塊鏈的特點,設計并提出了一個基于抗量子區塊鏈的用戶隱私保護方案。該方案中引入格密碼簽名算法,采用格密碼算法進行用戶的簽名,提升了區塊鏈的安全性。該方案可為數據挖掘提供一種安全和可信任的信息獲取方式,提高數據挖掘結果的可靠性。綜上所述,本文的工作中主要對區塊鏈保護用戶隱私,以及區塊鏈技術與數據挖掘的結合作了一個新的嘗試與探索,對二者未來的發展提供一個新的參考和應用研究方向。