薛文軒,孔欣怡,魏昭暉
(南京工程學院,江蘇 南京 211100)
基于同態加密的安全多方計算是將多方數據源做加密處理后而進行協同計算技術。用戶發起數據計算請求后,服務器向數據源請求獲取相應數據,數據源確定并查詢到服務器期待的多個數據后,通過加密模塊的加密處理,返回相應的多個暗文,服務器使用數據計算端中相應的同態加密計算模型進行業務計算,并利用數據源的數據加密模塊對密文結果進行解密處理,最終返回給用戶期待的正確數據。與傳統的數據計算方法相比,基于同態加密的多方數據計算具有更高的安全性和隱私保護能力,使用方法靈活,方便政府、醫療機構、金融機構在保護用戶數據安全的基礎之上進行數據的計算、分析和處理,在云計算領域有著廣闊的應用前景[1-2]。
本平臺通過同態加密相關算法、多方安全計算技術、web網頁開發技術,服務器構架等技術的結合,開發出了一款基于同態加密算法及多方計算技術、能夠進行涉及多方數據源安全計算的數據計算及模型管理平臺[3-4]。
該平臺利用同態加密算法的同態性(即加密數據計算結果與解密數據計算結果的一致性)、多方安全計算的理念和模型、基于B/S架構的WEB開發技術、服務器的構架等技術手段,實現了在請求數據來自一方或多方數據源的情形下,數據的同態加密計算及計算模型的管理,滿足了用戶個人數據的加密輸出、與其他各方數據源交互時的同態加密計算、用戶期待數據的解密輸入等數據處理業務,在保證用戶個人隱私
數據絕對安全性的同時,完成與多方數據源之間的交互和計算。
通過平臺需求分析和現有方案的研究學習,確定了本平臺的三個模塊(數據加密端、核心計算端、管理端)。系統模塊設計如圖1所示:

圖1 系統模塊設計
針對本次項目研究,研究團隊積極提取并采納同態加密和多方計算領域較為優秀的一些解決方案和實操技術,同時努力融入本團隊具有創新元素的一些研究成果[5-6]。
首先,團隊隊員們進行一次全面且充分的研究背景和研究現狀的調研,從而產生了兩個作用,其一是讓團隊對于安全多方計算和同態加密這些技術的提出、發展及現有的成果有一個更深刻的認識和理解,對于該項目能有一個更高層次的規劃;其二,在調查的過程中,團隊發現并整理出了一些研究方法和現有技術,這也為后續的研究和開發過程中遇到的問題,提供了很多可以借鑒的解決思路和方法。
其次,本團隊確定了整個平臺的設計和實現技術(RSA算法、BGN算法、BGV算法),針對平臺的詳細設計進行相應的開發和研究,并基于調研成果,對碰到的實際問題進行了適當的調整。
最后,團隊將實現的產品部署實施,并根據實際效果及反饋意見,進行了進一步地調整和優化,努力向實用性、安全性、操作性、美觀性的最佳結合靠攏。
平臺的研究思路如圖2所示(總體上分為確定研究目標、具體實現過程、研究結果及反饋三個過程,其中具體實現過程、研究結果及反饋兩個模塊相互反饋、交替進行)。

圖2 研究思路
項目的技術路線將主要將針對同態加密和多方計算。同態加密算法及多方計算的研究開展基于其運作所需的三類函數,進而分為三個部分的研究,即加密解密函數研究、評估函數研究、密鑰生成函數研究[7]。
(1)加密解密函數研究。將細分為兩個部分的研究和實現——Encrypt()及Decrypt(),Encrypt函數為加密函數,該函數由數據源運行,用Key對用戶數據Data進行加密;Decrypt函數為解密函數,該函數亦由數據源運行,用于得到核心計算端處理的結果f(Data)。研究過程中團隊結合了現有的較為成熟的同態加密算法方案,如:Paillier、RSA、Affine等,吸取這些方案各自的優勢,分析他們的劣勢和原理,實現了這些方案的有機結合。
(2)評估函數研究。Evaluate函數為評估函數,該函數由數據源運行,在根據不同計算模型的數據處理方法f下,對密文進行操作,使得結果相當于用戶用密鑰Key對f(Data)進行加密。
現有的方案有限且都有較為明顯的優勢和劣勢。Fully Homomorp hic Encryp tion——這一方案支持任意給定的f函數,只要這個f函數可以通過算法描述,就可以被實現,但是計算開銷極大,效率不理想;Somew hat Homomorphic Encryption——只支持一些特定的f函數,但開銷較小,容易實現。
團隊深入分析兩項目的實現機理,將兩個方案優勢相結合,實現了支持大多數f函數且效率相對較高的評估函數。
(3)密鑰生成函數研究。Key Gen函數由數據源運行,用于產生加密數據Data所用的密鑰Key,同時還需要一些公開常數。針對這部分的研究和實施,本團隊計劃采用現有的技術方案,如:Paillier、RSA、Affine等,將其整合運用。
平臺的技術路線如圖3所示:

圖3 技術路線
同態加密是基于數學難題的計算復雜性理論的密碼學技術。對經過同態加密的數據進行處理得到一個輸出,將這一輸出進行解密,其結果與用同一方法處理未加密的原始數據得到的輸出結果是一樣的。
在本平臺中,用戶向服務器發起數據請求后,服務器向數據源轉發數據請求,數據源確定并查詢到用戶期待的多個數據后,通過數據源內部的數據加密端的加密處理,返回相應的多個暗文數據(即加密數據,且這些數據間相互獨立、不產生聯系),服務器調用本項目核心計算端中相應的風控模型,進行同態加密計算,計算結束后,通過數據加密端的解密處理,最終返回給用戶期待的正確數據(此時該數據為明文數據)。
以本平臺的個人授額評估運算模型為例,個人授額評估運算模型的明文計算公式如下:
Math.max(Math.min(Math.max(X×0.8×Y×15)×10×150000)×50000)
X:個人公積金月繳額
Y:個人社保繳費基數
假設當前用戶查詢請求所涉及的數據為X和Y,核心計算端中的個人授額評估模型的輸入項X,Y需為加密后的密文數據,且X,Y均來自同一個數據源(政府端),則一次用戶查詢授額評估結果的請求及響應流程如下。
假設某用戶(Client)發起個人授額評估結果查詢,服務器(Server)從政府數據源(Government)拿到相關的密文數據,并基于密文數據做上述公式的計算。最終,服務器將密文運算結果解密后,返回給用戶期待的正確明文計算結果。個人授額評估運算模型如圖4所示:(圖中[X],[Y],[Z]分別為X,Y,Z加密后的數據,Z為最終的授權評估數據)。

圖4 個人授額評估運算模型
安全多方計算允許多個數據所有者在互不信任的情況下進行協同計算,輸出計算結果,并保證任何一方均無法得到除應得的計算結果之外的其他任何信息。即該技術可以獲取數據使用價值,卻不泄露原始數據內容[8]。
在本項目中,多方計算主要運用場景為:當用戶的請求內容包含了多個數據間的運算,且這些數據獨立地分布于多個數據源中(即這些被請求的數據分布于多個政府端的服務器之中)。此時以上同態加密算法模型將不能獨立地完成多個數據源之前的協同計算,因而必須引入多方安全計算。
多方計算模型中,多個數據源都需要提供數據給服務器進行計算,此時加密數據的計算結果將會涉及數據源之間如何統一加密及解密方式的問題,其他流程則類似于以上同態加密流程,下面舉例說明平臺所采用的的2個解決方案:
此時,以本平臺的個人信用分運算模型為例,個人信用分運算模型的明文計算公式如下:

M:個人貸款月繳額
N:個人貸款繳費基數
此時,唯一不同在于請求的兩個數據M、N分別屬于的兩個不同且獨立的數據源(假設這兩個數據源分別為政府端A,政府端B),則會出現數據加密及解密方式如何統一的問題。
思路一:政府端A和政府端B傳輸數據前進行通信溝通,確定好統一的加密解密方式,服務器接收到政府端A、政府端B的數據X,Y,調用風控模型中相關的計算公式進行相應的密文計算,最后返回給數據源中的任意一個(即政府端A和政府端B中兩者任意一端)請求解密,最后返回給調用者期待的明文數據。安全多方計算模型方案一如圖5所示:(圖中[M],[N],[Z]分別為M,N,Z加密后的數據,Z為最終的明文結果)。

圖5 安全多方計算模型方案一
政府端A和政府端B發送加密數據,同時,必須附帶發送數據使用的加密算法對應的密鑰(即政府端A必須發送[X]及其密鑰,政府端B必須發送[Y]及其密鑰),服務器接收了來自政府端A和政府端B對應的數據和密鑰后,對收到數據使用對應的密鑰進行解密,并調用相應的明文計算模型進行計算,計算出明文數據后直接返回給調用者。安全多方計算模型方案二如圖6所示:(圖中[X],[Y],分別為X,Y加密后的數據,Z為最終的明文結果)。

圖6 安全多方計算模型方案二
本文提出設計的基于同態加密的安全多方計算平臺,通過同態加密算法與安全多方計算模型,實現了安全性更高、屏蔽隱私數據能力更強的數據計算。用戶操作便捷,數據保密效果良好,計算效率相對于傳統的安全多方計算方案有了大幅提升。此外,由于該平臺研究并引入了BGN、BGV等全同態加密算法,計算業務不再拘泥于純加法和純乘法運算,而可進行有限次的混合運算,這將使得該平臺在云計算和隱私計算領域擁有更大范圍的應用場景。