為什麼要選擇安全計算?

安全計算的作用就是讓人們在保護數據隱私完成計算任務。在數據爆炸的今天,在網路用戶毫無隱私地赤裸裸地暴露在網路服務提供者面前的今天,在個人隱私在網上被當成商品買賣的今天,在國家立法保護數據隱私的今天,在用戶隱私意識覺醒的今天,人們對於隱私保護的強烈需求必將帶來下一波技術浪潮。好了,這一節就說這麼多。

什麼是安全計算?

安全計算對絕大多數人來說是一個陌生的領域,即使對於計算機科班出身的人來說也未必準確知道安全計算是幹嘛的。所以在開始之前,我想有必要解釋一下什麼是安全計算。安全計算,中文全稱為安全多方計算,英文全稱為Secure Multi-party Computation,縮寫為SMC,指的是在保護數據安全的前提下實現多方計算。

那什麼是多方計算呢?其實就是其字面意思:多個參與者將各自的數據湊在一起,並在這個大數據集上進行一定的計算,並得到最後的計算結果。形式化的描述就是:假定有 n 個參與方 P_1, P_2, dots, P_n ,他們各自擁有自己的數據集 a_1, a_2, dots, a_n 。那麼多方計算的目的就是得到某個函數 f 的輸出,該函數的輸入就是上面的 a_i 們,即 f(a_1, a_2, dots, a_n) 。舉個簡單的例子:假定五道口某工科學校想統計該校男生的戀愛經歷分佈情況,那 a_i 取值就是0(母胎單)或1(被甩過)。在這種情況下f就是簡單的求和,即 f(a_1, a_2, dots, a_n) = sum_{i}a_i

那什麼是保護數據安全的多方計算呢?當然就是保護各個參與方所擁有數據的安全啦(好吧是不是有點廢話)。試想要實現上面說的安全計算,最簡單的方法是什麼?當然是找一臺伺服器,大家把數據都傳到那臺伺服器上,然後直接在那臺伺服器上進行計算,而且數據是明文放在伺服器上的,所以伺服器的操作者可以隨意蹂躪那份數據,想算什麼函數就算什麼函數。但這種簡單的方法有一個很嚴重的問題,那就是操作伺服器的人能知道每個參與者的確切數據。在上面的例子中,就是伺服器操作者可方便得知每個五道口男子技工學校的男生到底是母胎單還是被甩過,要是這種信息泄露出去這以後還怎麼見人啊?!有人說,匿名調查行不行?網上填錶行不行?但問題是調查問卷也得有人收啊,網上填表也能通過ip知道你是誰啊,這種方法其實一點都不安全。

安全計算解決的就是這個問題。有了安全計算,大家都不用把確切數據告訴別人(或曰:真實數據從未離開過自己),最後仍然能得到聯合計算的結果。在我們的例子中大家不需要告訴別人自己的感情經歷就能讓學校得到統計結果。

安全計算的用途

那安全計算到底有什麼用呢?上面舉的只是一個很簡單的例子,實際生活中的需求肯定比這個複雜得多,包括模型訓練和大規模統計等等。可以說,凡是一個計算任務需要用到來自多個參與者的數據,但各個參與者又不想(或不被允許)交換或公開數據,那安全計算就適用於這樣的計算任務。

比如,某機構組織了一場拍賣且有多個參與方報價,但大家都不想在自己未中標的情況下讓別人知道自己出價多少,也就是說,除了最後的中標者需要讓賣方知道自己的出價,其他人都不想透露自己的出價。安全多方計算就適用於此場景。

又如,北京市多家醫院都有艾滋病人的數據,現在我們想根據艾滋病人的各項信息訓練一個模型,預測一個未確診的艾滋病人真的患上艾滋病的概率。但各家醫院艾滋病人數據不一定能隨意交換,更不能泄露給公眾,因此這些醫院可以使用安全多方計算訓練模型。

再如,一家借貸公司A想預測貸款給一個試圖借貸的客戶的風險,但A公司只知道該客戶的很簡單的信息(如姓名、性別和年齡等)以及在自家借貸的歷史,一些很關鍵的信息(如社保、健康狀況等)卻不為A公司所知。同時另一家政府機構B知道這些信息,但這些信息按規定是保密的。這時候雙方就可以在不交換原始數據的情況下直接用預測模型預測風險。

但無論多複雜的需求,其實都能拆解成一個個子需求。比如本節第一個例子中的競價問題在安全計算當中其實就是比較問題;第二個例子中的模型訓練問題可以分解為一些基本操作,包括常見的線性操作(如加和乘)和非線性操作(如sigmod函數、relu函數)等;最後一個例子當中的數據連接問題也可以用保護隱私的集合求交方法解決。所以只要實現常見的基本操作,我們就能執行各種各樣的安全計算任務了。

不過是不是有了安全計算我們就能高枕無憂呢?是不是以後我們所有的個人信息都可以藏起來不讓別人知道還不影響社會的正常運行呢?事實並非如此,至少基於目前的技術來說離數據完全安全隱私毫不泄露的烏託邦還有不少距離。在後續文章中我會陸續介紹不同的安全計算方法,到時候大家能發現,現在的安全計算之所以尚未廣泛應用,除了很多人不知有安全計算這一技術之外,還有一個很大的問題是以目前的技術,安全計算的效率、準確性和可擴展性都存在這樣那樣的問題。當然我們不可因噎廢食,正如人工智慧有今日之繁榮很大程度上得益於昔日人工智慧科學家們的堅持,對於安全計算這種未來技術,我們也應抱定此種態度。至少安全計算解決日常生活中一些簡單的問題還是不成問題的。社會在發展,需求在變化,技術在進步,現在也是時候讓安全計算技術出現在世人面前了。

推薦閱讀:

相關文章