同態加密實現數據隱私計算,能讓你的小秘密更加秘密

摘要:同態加密作為實現數據隱私計算的關鍵技術,在雲計算、區塊鏈、隱私計算等領域均存在着廣泛的應用需求和一些可行的應用方案。

本文分享自華為雲社區《同態加密在聯邦計算中的應用》,作者:生也有涯 知也無涯。

1 什麼是同態加密

同態加密(Homomorphic encryption)是一種加密形式,它允許人們對密文進行特定形式的代數運算得到仍然是加密的結果,將其解密所得到的結果與對明文進行同樣的運算結果一樣。換言之,這項技術令人們可以對加密的數據進行處理,得出正確的結果,而在整個處理過程中無需對數據進行解密。同態加密的實現效果如圖所示。

第一個構造出全同態加密(Fully Homomorphic Encryption)[Gen09]的Craig Gentry給出的定義如下:

A way to delegate processing of your data, without giving away access to it.

由上圖可以看出,同態加密與一般的加密方案的不同之處在於,它關注的是數據處理安全。同態加密提供了一種對加密數據進行處理的功能

有點抽象?我們舉個實際生活中的例子。有個叫Alice的用戶買到了一大塊金子,她想讓工人把這塊金子打造成一個項鏈。但是工人在打造的過程中有可能會偷金子啊,畢竟就是一克金子也值很多錢的說… 因此能不能有一種方法,讓工人可以對金塊進行加工(delegate processing of your data),但是不能得到任何金子(without giving away access to it)?當然有辦法啦,Alice可以這麼做:

  • Alice將金子鎖在一個密閉的盒子裏面,這個盒子安裝了一個手套。
  • 工人可以帶着這個手套,對盒子內部的金子進行處理。但是盒子是鎖着的,所以工人不僅拿不到金塊,連處理過程中掉下的任何金子都拿不到。
  • 加工完成後。Alice拿回這個盒子,把鎖打開,就得到了金子。

這個盒子的樣子大概是這樣的:

這裏面的對應關係是:

  • 盒子:加密算法
  • 盒子上的鎖:用戶密鑰
  • 將金塊放在盒子裏面並且用鎖鎖上:將數據用同態加密方案進行加密
  • 加工:應用同態特性,在無法取得數據的條件下直接對加密結果進行處理
  • 開鎖:對結果進行解密,直接得到處理後的結果

資料來源://www.zhihu.com/question/27645858/answer/37598506

2 同態加密在聯邦計算中的應用

隨着區塊鏈、隱私計算等新興領域的發展及其對隱私保護的更高要求,同態加密也被應用到了更為豐富的領域。華為可信智能計算TICS在聯邦數據分析中引入同態加密,以保證計算過程的安全。

引入同態加密之前,TICS採用傳統的對稱和非對稱加密相結合的算法,保證數據傳輸過程的安全。密文數據到聚合器(aggregator)節點進行多方計算時需要先解密,計算完成後再加密傳輸出去,實現了數據傳輸的安全,但是不能保證計算的安全,因此需要引入同態加密。

引入同態加密前的計算過程:

引入同態加密後的計算過程:

在TICS中使用同態加密

聯盟管理頁面,管理員開啟「高級別隱私保護」 。 當開啟之後,sql語句中如果存在Paillier同態加密算法支持的運算, 則該運算會採用同態密文計算,其他的計算過程不變。

創建作業,執行對應sql作業。

執行作業,可以看到TICS系統的DAG圖中,展示了同態加密的全部過程。 輸出結果與非同態場景一致。

 

點擊關注,第一時間了解華為雲新鮮技術~