歷史背景
- A.C. Yao於1982年首次提出安全多方計算的概念,其主要研究在私有信息不被泄漏的前提下,多個互不信賴的參與者如何協作進行計算
- Goldwasser:“安全多方計算所處的地位就如同公鑰密碼學10年前所處的地位一樣重要,它是計算科學一個極其重要的工具,而實際應用才剛起步。”
- 1987年,Goldreich等人設計出通用的安全多方計算協議解決普遍存在的安全多方計算問題
- 1998年,Goldreich將安全多方計算進行了較為全面的概括。但使用通用協議會是的協議的復雜度較高,效率較低。因此他指出安全多方計算應該具體問題具體分析,設計特定的安全多方計算協議
- 2001年,Du等人在前人工作的基礎上,更深入地研究了包括科學計算、集合計算、統計分析等具體的安全多方計算問題及其應用
安全多方計算的場景很多,只要是用戶需要保護隱私的合作計算都能划歸於此。即安全多方計算解決的是多個互不信任的參與者在一個分布式環境中,分別輸入自己的保密信息進行寫作計算,進而得到各自所需要的正確結果,並在計算結束后每個參與方沒有把自己的私有信息泄漏給其他方。它是目前國際密碼學界的研究熱點之一。
問題引入
- 甲化工廠擁有含有A,B,C三種成分的物質\(\eta_1,\eta_2\),乙化工廠含有A,B,C三種成分的物質\(\eta_1,\eta_3\)。現在甲、乙兩化工廠處於自己的利益考慮,想要在互相不泄露自己私有信息的情況下,判斷能不能用\(\eta_2,\eta_3\)的混合物來代替\(\eta_1\)
- 老板拖欠工人工資。假設老板每個月固定日期回數次公司,而工人們會根據老板回公司的時間要工資。對老板來說,他不想讓工人知道每個月幾號回公司,對工人來說,也不想讓老板知道他們會在幾號去公司。這種情況下,工人們如何能順利地要到自己被拖欠的工資?
分析:問題一,能不能替換就是看最終ABC三種成分是不是一樣的。假設以\(A,B,C\)為坐標軸畫三維坐標系,\(\eta_1,\eta_2,\eta_3\)分別是這個三維坐標系中的點。如果這三個點在同一條直線上的話,那么通過調整比例可以用任意兩種作為配方。故問題轉化為幾何問題中的三點貢獻問題。問題二,可以轉換為最小公倍數問題(?)
安全多方問題(1982,姚期智)
n個參與者\(P_1,P_2,...P_n\)要在保護個人隱私的前提下共同計算一個函數,這個過程中既要保證正確的輸出結果,也要保證輸入、輸出信息的隱私性。即就是,每個參與者\(P_i\)保密輸入私有信息\(X_i\),並合作計算函數
計算結束時,每個參與者\(P_i\)在保護自己\(X_i\)的隱私的同時得到正確的\(Y_i\)。
和密碼學的關系
安全多方計算是密碼學的一個重要分支,設計安全多方計算協議會用到很多密碼學知識,如不經意傳輸、零知識證明、公鑰加密算法、數字承諾等等,於此同時,安全多方計算的一些知識同樣用於密碼學,兩者相互促進,一同發展,已成為解決信息安全問題的主要方法。
安全多方計算中的基本概念
- 參與者與攻擊者
參與者:誠實參與者、半誠實參與者、惡意參與者
攻擊者:計算能力分(多項式時間計算能力、無限計算能力);對被腐蝕者的操控方式(主動、被動);攻擊者自身的適應性(靜態、動態) - 通信模型
同步通信模型
異步通信模型 - 敵手模型
半誠實敵手模型
惡意敵手模型 - 安全性需求
隱私性
正確性
公平性
輸入的獨立性
輸出的傳遞性 - 不可區分性
在密碼學中,根據區分者的計算能力可將不可區分性大致分為以下幾種:完美不可區分性、統計不可區分、多項式時間不可區分。通常,我們討論的是多項式時間不可區分。
多項式時間不可區分,也稱計算不可區分,是指兩個對象在任意有效的計算程序下仍然不能被區分,則認為這兩個對象在多項式時間內是不可區分的,通常將多項式時間不可區分定義如下: - 安全性定義
(1)理想模型。引入一個可信任的TTP(trusted Third Party)是解決安全多方計算問題的最直接方法,任何情況下,TTP都不會泄露任何不該泄露的信息。】
(2)現實模型。理想模型不存在隱私泄露,但實際可信的第三方並不真實存在。這種情況下,要解決安全多方問題就需要參與者之間進行相互的信息傳遞,經過若干輪的交互最終得到正確結果,這種模型稱為現實模型。
(3)傳統的半誠實模型下的安全多方計算的定義
(4)傳統的惡意模型下的安全多方計算的定義
(5)雲環境下半誠實模型的安全性定義
-
協議的復雜性
(1)計算復雜度
(2)通信復雜度 -
信息論安全和密碼學安全
技術工具
- 密碼系統
通常情況下,密碼系統由以下5部分組成:
(1)明文空間M:被加密的原始信息的集合
(2)密文空間C:加密后的密文的集合
(3)密鑰空間k: 包括加密密鑰pk和解密密鑰sk
(4)加密算法E:通過一定規則,將明文轉換成密文的過程
(5)解密算法D:通過一定規則,將密文轉換成明文的過程 - 對稱密碼系統
- 公鑰密碼系統(雙鑰加密系統或非對稱加密系統)
- 同態加密
同態加密(Homomorphic Encryption)是一種密碼學技術,依賴於數學困難問題的計算復雜性理論。它允許在密文上進行某些運算,且在協議執行過程中不會泄露任何原始信息,而經過同態加密的數據在解密之后,輸出的結果與為加密的原始數據用統一方法處理得到的輸出結果是一樣的,即對於加密函數\(H:R->S\),其中,R為明文空間,S為密文空間,令\(\otimes\)為定義在明文空間的代數運算或算術運算,對於任意的\(x,y \in R\),若有
成立,則稱加密函數H具有同態性,是同態的。
5. 內積協議
- Hash函數(單向散列函數,也叫雜湊函數)