薛文軒,孔欣怡,魏昭暉
(南京工程學(xué)院,江蘇 南京 211100)
基于同態(tài)加密的安全多方計(jì)算是將多方數(shù)據(jù)源做加密處理后而進(jìn)行協(xié)同計(jì)算技術(shù)。用戶發(fā)起數(shù)據(jù)計(jì)算請(qǐng)求后,服務(wù)器向數(shù)據(jù)源請(qǐng)求獲取相應(yīng)數(shù)據(jù),數(shù)據(jù)源確定并查詢到服務(wù)器期待的多個(gè)數(shù)據(jù)后,通過加密模塊的加密處理,返回相應(yīng)的多個(gè)暗文,服務(wù)器使用數(shù)據(jù)計(jì)算端中相應(yīng)的同態(tài)加密計(jì)算模型進(jìn)行業(yè)務(wù)計(jì)算,并利用數(shù)據(jù)源的數(shù)據(jù)加密模塊對(duì)密文結(jié)果進(jìn)行解密處理,最終返回給用戶期待的正確數(shù)據(jù)。與傳統(tǒng)的數(shù)據(jù)計(jì)算方法相比,基于同態(tài)加密的多方數(shù)據(jù)計(jì)算具有更高的安全性和隱私保護(hù)能力,使用方法靈活,方便政府、醫(yī)療機(jī)構(gòu)、金融機(jī)構(gòu)在保護(hù)用戶數(shù)據(jù)安全的基礎(chǔ)之上進(jìn)行數(shù)據(jù)的計(jì)算、分析和處理,在云計(jì)算領(lǐng)域有著廣闊的應(yīng)用前景[1-2]。
本平臺(tái)通過同態(tài)加密相關(guān)算法、多方安全計(jì)算技術(shù)、web網(wǎng)頁開發(fā)技術(shù),服務(wù)器構(gòu)架等技術(shù)的結(jié)合,開發(fā)出了一款基于同態(tài)加密算法及多方計(jì)算技術(shù)、能夠進(jìn)行涉及多方數(shù)據(jù)源安全計(jì)算的數(shù)據(jù)計(jì)算及模型管理平臺(tái)[3-4]。
該平臺(tái)利用同態(tài)加密算法的同態(tài)性(即加密數(shù)據(jù)計(jì)算結(jié)果與解密數(shù)據(jù)計(jì)算結(jié)果的一致性)、多方安全計(jì)算的理念和模型、基于B/S架構(gòu)的WEB開發(fā)技術(shù)、服務(wù)器的構(gòu)架等技術(shù)手段,實(shí)現(xiàn)了在請(qǐng)求數(shù)據(jù)來自一方或多方數(shù)據(jù)源的情形下,數(shù)據(jù)的同態(tài)加密計(jì)算及計(jì)算模型的管理,滿足了用戶個(gè)人數(shù)據(jù)的加密輸出、與其他各方數(shù)據(jù)源交互時(shí)的同態(tài)加密計(jì)算、用戶期待數(shù)據(jù)的解密輸入等數(shù)據(jù)處理業(yè)務(wù),在保證用戶個(gè)人隱私
數(shù)據(jù)絕對(duì)安全性的同時(shí),完成與多方數(shù)據(jù)源之間的交互和計(jì)算。
通過平臺(tái)需求分析和現(xiàn)有方案的研究學(xué)習(xí),確定了本平臺(tái)的三個(gè)模塊(數(shù)據(jù)加密端、核心計(jì)算端、管理端)。系統(tǒng)模塊設(shè)計(jì)如圖1所示:
圖1 系統(tǒng)模塊設(shè)計(jì)
針對(duì)本次項(xiàng)目研究,研究團(tuán)隊(duì)積極提取并采納同態(tài)加密和多方計(jì)算領(lǐng)域較為優(yōu)秀的一些解決方案和實(shí)操技術(shù),同時(shí)努力融入本團(tuán)隊(duì)具有創(chuàng)新元素的一些研究成果[5-6]。
首先,團(tuán)隊(duì)隊(duì)員們進(jìn)行一次全面且充分的研究背景和研究現(xiàn)狀的調(diào)研,從而產(chǎn)生了兩個(gè)作用,其一是讓團(tuán)隊(duì)對(duì)于安全多方計(jì)算和同態(tài)加密這些技術(shù)的提出、發(fā)展及現(xiàn)有的成果有一個(gè)更深刻的認(rèn)識(shí)和理解,對(duì)于該項(xiàng)目能有一個(gè)更高層次的規(guī)劃;其二,在調(diào)查的過程中,團(tuán)隊(duì)發(fā)現(xiàn)并整理出了一些研究方法和現(xiàn)有技術(shù),這也為后續(xù)的研究和開發(fā)過程中遇到的問題,提供了很多可以借鑒的解決思路和方法。
其次,本團(tuán)隊(duì)確定了整個(gè)平臺(tái)的設(shè)計(jì)和實(shí)現(xiàn)技術(shù)(RSA算法、BGN算法、BGV算法),針對(duì)平臺(tái)的詳細(xì)設(shè)計(jì)進(jìn)行相應(yīng)的開發(fā)和研究,并基于調(diào)研成果,對(duì)碰到的實(shí)際問題進(jìn)行了適當(dāng)?shù)恼{(diào)整。
最后,團(tuán)隊(duì)將實(shí)現(xiàn)的產(chǎn)品部署實(shí)施,并根據(jù)實(shí)際效果及反饋意見,進(jìn)行了進(jìn)一步地調(diào)整和優(yōu)化,努力向?qū)嵱眯?、安全性、操作性、美觀性的最佳結(jié)合靠攏。
平臺(tái)的研究思路如圖2所示(總體上分為確定研究目標(biāo)、具體實(shí)現(xiàn)過程、研究結(jié)果及反饋三個(gè)過程,其中具體實(shí)現(xiàn)過程、研究結(jié)果及反饋兩個(gè)模塊相互反饋、交替進(jìn)行)。
圖2 研究思路
項(xiàng)目的技術(shù)路線將主要將針對(duì)同態(tài)加密和多方計(jì)算。同態(tài)加密算法及多方計(jì)算的研究開展基于其運(yùn)作所需的三類函數(shù),進(jìn)而分為三個(gè)部分的研究,即加密解密函數(shù)研究、評(píng)估函數(shù)研究、密鑰生成函數(shù)研究[7]。
(1)加密解密函數(shù)研究。將細(xì)分為兩個(gè)部分的研究和實(shí)現(xiàn)——Encrypt()及Decrypt(),Encrypt函數(shù)為加密函數(shù),該函數(shù)由數(shù)據(jù)源運(yùn)行,用Key對(duì)用戶數(shù)據(jù)Data進(jìn)行加密;Decrypt函數(shù)為解密函數(shù),該函數(shù)亦由數(shù)據(jù)源運(yùn)行,用于得到核心計(jì)算端處理的結(jié)果f(Data)。研究過程中團(tuán)隊(duì)結(jié)合了現(xiàn)有的較為成熟的同態(tài)加密算法方案,如:Paillier、RSA、Affine等,吸取這些方案各自的優(yōu)勢(shì),分析他們的劣勢(shì)和原理,實(shí)現(xiàn)了這些方案的有機(jī)結(jié)合。
(2)評(píng)估函數(shù)研究。Evaluate函數(shù)為評(píng)估函數(shù),該函數(shù)由數(shù)據(jù)源運(yùn)行,在根據(jù)不同計(jì)算模型的數(shù)據(jù)處理方法f下,對(duì)密文進(jìn)行操作,使得結(jié)果相當(dāng)于用戶用密鑰Key對(duì)f(Data)進(jìn)行加密。
現(xiàn)有的方案有限且都有較為明顯的優(yōu)勢(shì)和劣勢(shì)。Fully Homomorp hic Encryp tion——這一方案支持任意給定的f函數(shù),只要這個(gè)f函數(shù)可以通過算法描述,就可以被實(shí)現(xiàn),但是計(jì)算開銷極大,效率不理想;Somew hat Homomorphic Encryption——只支持一些特定的f函數(shù),但開銷較小,容易實(shí)現(xiàn)。
團(tuán)隊(duì)深入分析兩項(xiàng)目的實(shí)現(xiàn)機(jī)理,將兩個(gè)方案優(yōu)勢(shì)相結(jié)合,實(shí)現(xiàn)了支持大多數(shù)f函數(shù)且效率相對(duì)較高的評(píng)估函數(shù)。
(3)密鑰生成函數(shù)研究。Key Gen函數(shù)由數(shù)據(jù)源運(yùn)行,用于產(chǎn)生加密數(shù)據(jù)Data所用的密鑰Key,同時(shí)還需要一些公開常數(shù)。針對(duì)這部分的研究和實(shí)施,本團(tuán)隊(duì)計(jì)劃采用現(xiàn)有的技術(shù)方案,如:Paillier、RSA、Affine等,將其整合運(yùn)用。
平臺(tái)的技術(shù)路線如圖3所示:
圖3 技術(shù)路線
同態(tài)加密是基于數(shù)學(xué)難題的計(jì)算復(fù)雜性理論的密碼學(xué)技術(shù)。對(duì)經(jīng)過同態(tài)加密的數(shù)據(jù)進(jìn)行處理得到一個(gè)輸出,將這一輸出進(jìn)行解密,其結(jié)果與用同一方法處理未加密的原始數(shù)據(jù)得到的輸出結(jié)果是一樣的。
在本平臺(tái)中,用戶向服務(wù)器發(fā)起數(shù)據(jù)請(qǐng)求后,服務(wù)器向數(shù)據(jù)源轉(zhuǎn)發(fā)數(shù)據(jù)請(qǐng)求,數(shù)據(jù)源確定并查詢到用戶期待的多個(gè)數(shù)據(jù)后,通過數(shù)據(jù)源內(nèi)部的數(shù)據(jù)加密端的加密處理,返回相應(yīng)的多個(gè)暗文數(shù)據(jù)(即加密數(shù)據(jù),且這些數(shù)據(jù)間相互獨(dú)立、不產(chǎn)生聯(lián)系),服務(wù)器調(diào)用本項(xiàng)目核心計(jì)算端中相應(yīng)的風(fēng)控模型,進(jìn)行同態(tài)加密計(jì)算,計(jì)算結(jié)束后,通過數(shù)據(jù)加密端的解密處理,最終返回給用戶期待的正確數(shù)據(jù)(此時(shí)該數(shù)據(jù)為明文數(shù)據(jù))。
以本平臺(tái)的個(gè)人授額評(píng)估運(yùn)算模型為例,個(gè)人授額評(píng)估運(yùn)算模型的明文計(jì)算公式如下:
Math.max(Math.min(Math.max(X×0.8×Y×15)×10×150000)×50000)
X:個(gè)人公積金月繳額
Y:個(gè)人社保繳費(fèi)基數(shù)
假設(shè)當(dāng)前用戶查詢請(qǐng)求所涉及的數(shù)據(jù)為X和Y,核心計(jì)算端中的個(gè)人授額評(píng)估模型的輸入項(xiàng)X,Y需為加密后的密文數(shù)據(jù),且X,Y均來自同一個(gè)數(shù)據(jù)源(政府端),則一次用戶查詢授額評(píng)估結(jié)果的請(qǐng)求及響應(yīng)流程如下。
假設(shè)某用戶(Client)發(fā)起個(gè)人授額評(píng)估結(jié)果查詢,服務(wù)器(Server)從政府?dāng)?shù)據(jù)源(Government)拿到相關(guān)的密文數(shù)據(jù),并基于密文數(shù)據(jù)做上述公式的計(jì)算。最終,服務(wù)器將密文運(yùn)算結(jié)果解密后,返回給用戶期待的正確明文計(jì)算結(jié)果。個(gè)人授額評(píng)估運(yùn)算模型如圖4所示:(圖中[X],[Y],[Z]分別為X,Y,Z加密后的數(shù)據(jù),Z為最終的授權(quán)評(píng)估數(shù)據(jù))。
圖4 個(gè)人授額評(píng)估運(yùn)算模型
安全多方計(jì)算允許多個(gè)數(shù)據(jù)所有者在互不信任的情況下進(jìn)行協(xié)同計(jì)算,輸出計(jì)算結(jié)果,并保證任何一方均無法得到除應(yīng)得的計(jì)算結(jié)果之外的其他任何信息。即該技術(shù)可以獲取數(shù)據(jù)使用價(jià)值,卻不泄露原始數(shù)據(jù)內(nèi)容[8]。
在本項(xiàng)目中,多方計(jì)算主要運(yùn)用場景為:當(dāng)用戶的請(qǐng)求內(nèi)容包含了多個(gè)數(shù)據(jù)間的運(yùn)算,且這些數(shù)據(jù)獨(dú)立地分布于多個(gè)數(shù)據(jù)源中(即這些被請(qǐng)求的數(shù)據(jù)分布于多個(gè)政府端的服務(wù)器之中)。此時(shí)以上同態(tài)加密算法模型將不能獨(dú)立地完成多個(gè)數(shù)據(jù)源之前的協(xié)同計(jì)算,因而必須引入多方安全計(jì)算。
多方計(jì)算模型中,多個(gè)數(shù)據(jù)源都需要提供數(shù)據(jù)給服務(wù)器進(jìn)行計(jì)算,此時(shí)加密數(shù)據(jù)的計(jì)算結(jié)果將會(huì)涉及數(shù)據(jù)源之間如何統(tǒng)一加密及解密方式的問題,其他流程則類似于以上同態(tài)加密流程,下面舉例說明平臺(tái)所采用的的2個(gè)解決方案:
此時(shí),以本平臺(tái)的個(gè)人信用分運(yùn)算模型為例,個(gè)人信用分運(yùn)算模型的明文計(jì)算公式如下:
M:個(gè)人貸款月繳額
N:個(gè)人貸款繳費(fèi)基數(shù)
此時(shí),唯一不同在于請(qǐng)求的兩個(gè)數(shù)據(jù)M、N分別屬于的兩個(gè)不同且獨(dú)立的數(shù)據(jù)源(假設(shè)這兩個(gè)數(shù)據(jù)源分別為政府端A,政府端B),則會(huì)出現(xiàn)數(shù)據(jù)加密及解密方式如何統(tǒng)一的問題。
思路一:政府端A和政府端B傳輸數(shù)據(jù)前進(jìn)行通信溝通,確定好統(tǒng)一的加密解密方式,服務(wù)器接收到政府端A、政府端B的數(shù)據(jù)X,Y,調(diào)用風(fēng)控模型中相關(guān)的計(jì)算公式進(jìn)行相應(yīng)的密文計(jì)算,最后返回給數(shù)據(jù)源中的任意一個(gè)(即政府端A和政府端B中兩者任意一端)請(qǐng)求解密,最后返回給調(diào)用者期待的明文數(shù)據(jù)。安全多方計(jì)算模型方案一如圖5所示:(圖中[M],[N],[Z]分別為M,N,Z加密后的數(shù)據(jù),Z為最終的明文結(jié)果)。
圖5 安全多方計(jì)算模型方案一
政府端A和政府端B發(fā)送加密數(shù)據(jù),同時(shí),必須附帶發(fā)送數(shù)據(jù)使用的加密算法對(duì)應(yīng)的密鑰(即政府端A必須發(fā)送[X]及其密鑰,政府端B必須發(fā)送[Y]及其密鑰),服務(wù)器接收了來自政府端A和政府端B對(duì)應(yīng)的數(shù)據(jù)和密鑰后,對(duì)收到數(shù)據(jù)使用對(duì)應(yīng)的密鑰進(jìn)行解密,并調(diào)用相應(yīng)的明文計(jì)算模型進(jìn)行計(jì)算,計(jì)算出明文數(shù)據(jù)后直接返回給調(diào)用者。安全多方計(jì)算模型方案二如圖6所示:(圖中[X],[Y],分別為X,Y加密后的數(shù)據(jù),Z為最終的明文結(jié)果)。
圖6 安全多方計(jì)算模型方案二
本文提出設(shè)計(jì)的基于同態(tài)加密的安全多方計(jì)算平臺(tái),通過同態(tài)加密算法與安全多方計(jì)算模型,實(shí)現(xiàn)了安全性更高、屏蔽隱私數(shù)據(jù)能力更強(qiáng)的數(shù)據(jù)計(jì)算。用戶操作便捷,數(shù)據(jù)保密效果良好,計(jì)算效率相對(duì)于傳統(tǒng)的安全多方計(jì)算方案有了大幅提升。此外,由于該平臺(tái)研究并引入了BGN、BGV等全同態(tài)加密算法,計(jì)算業(yè)務(wù)不再拘泥于純加法和純乘法運(yùn)算,而可進(jìn)行有限次的混合運(yùn)算,這將使得該平臺(tái)在云計(jì)算和隱私計(jì)算領(lǐng)域擁有更大范圍的應(yīng)用場景。