• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    支持多數(shù)據(jù)源安全共享的分布式大數(shù)據(jù)協(xié)作系統(tǒng)研究

    2022-06-21 01:14:24魏嘯磊,林蘇,潘越,胡奇,夏天
    計(jì)算機(jī)時(shí)代 2022年6期
    關(guān)鍵詞:數(shù)據(jù)共享

    魏嘯磊,林蘇,潘越,胡奇,夏天

    摘? 要: 同態(tài)加密算法和安全多方計(jì)算技術(shù)可在數(shù)據(jù)加密的情況下進(jìn)行多方參與的計(jì)算,可以有效的解決數(shù)據(jù)泄露問(wèn)題。對(duì)常見(jiàn)的四種同態(tài)加密庫(kù)SEAL、HElib、PALISADE、Pyfhel進(jìn)行了分析和選擇,綜合運(yùn)行速度和開(kāi)發(fā)效率因素,選擇Pyfhel同態(tài)加密庫(kù),來(lái)設(shè)計(jì)與實(shí)現(xiàn)支持多數(shù)據(jù)源安全共享的分布式大數(shù)據(jù)協(xié)作系統(tǒng)。該系統(tǒng)為數(shù)據(jù)共享場(chǎng)景提供了一種可行的解決方案。

    關(guān)鍵詞: 同態(tài)加密; 數(shù)據(jù)共享; Pyfhel; 多方計(jì)算

    中圖分類號(hào):TP393? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2022)06-10-04

    Research on distributed big data collaboration system supporting

    secure sharing of multiple data sources

    Wei Xiaolei, Lin Su, Pan Yue, Hu Qi, Xia Tian

    (Wenzhou University, College of Computer Science &amp; Artificial Intelligence, Wenzhou, Zhejiang 325035, China)

    Abstract: Homomorphic encryption algorithm and secure multi-party computing technology can carry out multi-party computing under the condition of data encryption, which can effectively solve the problem of data leakage. In this paper, four common homomorphic encryption libraries SEAL, HElib, PALISADE and Pyfhel are analyzed and selected. Considering the running speed and development efficiency, Pyfhel is selected to design and implement a distributed big data collaboration system that supports the secure sharing of multiple data sources. The system provides a feasible solution for data sharing scenarios.

    Key words: homomorphic encryption; data sharing; Pyfhel; multi-party computation

    0 引言

    隨著互聯(lián)網(wǎng)和大數(shù)據(jù)等技術(shù)的不斷發(fā)展,我們步入了大數(shù)據(jù)時(shí)代,數(shù)據(jù)共享、數(shù)據(jù)分析等應(yīng)用的使用越來(lái)越普遍,海量數(shù)據(jù)的交叉計(jì)算可以為科研、醫(yī)療、金融等提供更好支持,但是數(shù)據(jù)的共享隨之帶來(lái)的是數(shù)據(jù)的泄露的問(wèn)題。許多企業(yè)或組織出于信息安全或利益的考慮,內(nèi)部數(shù)據(jù)是不對(duì)外開(kāi)放的,但是這也會(huì)帶來(lái)“數(shù)據(jù)孤島”的問(wèn)題,數(shù)據(jù)的價(jià)值無(wú)法體現(xiàn)出來(lái)。同態(tài)加密算法和安全多方計(jì)算技術(shù)可以在不泄露明文的情況下,實(shí)現(xiàn)多方參與的數(shù)據(jù)協(xié)同計(jì)算,實(shí)現(xiàn)安全的數(shù)據(jù)流通,達(dá)到數(shù)據(jù)“可用不可見(jiàn)”[1]。

    同態(tài)加密,英文稱之為Homomorphic Encryption,HE是指滿足密文同態(tài)運(yùn)算性質(zhì)的加密算法,即數(shù)據(jù)經(jīng)過(guò)同態(tài)加密之后,直接對(duì)密文進(jìn)行同態(tài)計(jì)算,得到的密文計(jì)算結(jié)果與直接用明文進(jìn)行計(jì)算的結(jié)果相一致的算法?;谕瑧B(tài)加密的安全多方計(jì)算技術(shù)旨在解決一組互不信任的參與方之間保護(hù)隱私的協(xié)同計(jì)算問(wèn)題,在不泄露原始數(shù)據(jù)前提下,為數(shù)據(jù)需求方提供多方協(xié)同計(jì)算能力。

    1 同態(tài)加密算法庫(kù)

    同態(tài)加密算法可以分為全同態(tài)加密算法和半同態(tài)加密算法。其中,全同態(tài)加密算法是指支持對(duì)密文進(jìn)行任意形式的計(jì)算;半同態(tài)加密算法是指支持對(duì)密文進(jìn)行部分形式的計(jì)算,如僅支持加法或乘法計(jì)算[6]。全同態(tài)加密算法在不斷的發(fā)展中依次出現(xiàn)了Gentry、BGV、BFV、GSW、CKKS等方案。一個(gè)同態(tài)加密庫(kù)可以支持多種算法,如SEAL可以支持BFV和CKKS方案、HElib可以支持CKKS方案、PALISADE可以支持BGV、BFV、CKKS等方案。Pyfhel庫(kù)是基于SEAL/PALISADE/HElib開(kāi)發(fā)的。

    1.1 四種同態(tài)加密庫(kù)的簡(jiǎn)介和調(diào)用方法

    SEAL是微軟開(kāi)源的同態(tài)加密庫(kù),有C++和C#版本,并逐漸推廣應(yīng)用到Python、Javascript和TypeScript。它支持不對(duì)稱和對(duì)稱加密算法,提供了兩種機(jī)制的同態(tài)加密,BFV和CKKS[2]。它支持Windows、Linux、macOS、FreeBSD、Android等操作系統(tǒng)平臺(tái),并支持

    .NET開(kāi)發(fā),使開(kāi)發(fā)人員編寫同態(tài)加密應(yīng)用程序更為便捷。在Windows中SEAL的安裝需要借助Visual studio進(jìn)行安裝和配置。首先需要安裝C++編譯運(yùn)行環(huán)境,然后下載SEAL源碼文件,編譯解析源碼文件,生成seal.lib文件。在調(diào)用時(shí),需添加該lib文件的附件庫(kù)目錄、附加包含目錄和附件依賴項(xiàng)。總體上,安裝相對(duì)比較復(fù)雜。

    HElib由C++編寫,使用了NTL數(shù)學(xué)庫(kù),可實(shí)現(xiàn)無(wú)自舉的同態(tài)加密和近似數(shù)算數(shù)的同態(tài)加密,支持密文的加法和乘法。安裝HElib需要先下載HElib源碼和HElib依賴。有兩種不同的方式來(lái)構(gòu)建和安裝HElib。一種是自動(dòng)下載和構(gòu)建GMP和 NTL依賴項(xiàng),并將庫(kù)打包在可重定位的文件夾中。第二種要求自行安裝GMP與NTL并在系統(tǒng)中可用。調(diào)用時(shí)需要添加頭文件目錄、lib文件目錄、庫(kù)文件目錄。HElib適用于Linux、MacOS等平臺(tái)[4]。

    PALISADE是一個(gè)由Duality公司研發(fā)的基于C++編寫的通用綜合格密碼庫(kù)。該庫(kù)是模塊化系統(tǒng)結(jié)構(gòu),側(cè)重于可用性。在增加安全性方面,它運(yùn)用了數(shù)字簽名、基于身份的加密和基于屬性加密的密文策略。在性能方面,PALISADE有效地實(shí)現(xiàn)了余數(shù)系統(tǒng)算法,提高了全同態(tài)加密方案的性能。PALISADE擁有跨平臺(tái)性,支持在Linux、Windows、macOS平臺(tái)上安裝,同時(shí)可以使用CMake/make自定義安裝。以Linux安裝為例,首先需要下載MSYS2,然后下載對(duì)應(yīng)源碼進(jìn)行編譯和構(gòu)建,調(diào)用方式與HElib類似[5]。

    Pyfhel是支持Python語(yǔ)言的一個(gè)同態(tài)加密庫(kù),底層由C++語(yǔ)言開(kāi)發(fā),使用SEAL/HElib/PALISADE作為后端。支持密文的整型和雙精度浮點(diǎn)型數(shù)的加法、乘法、減法和冪指數(shù)的運(yùn)算。Pyfhel適用于任何擁有Python環(huán)境的平臺(tái)。安裝時(shí),只需要運(yùn)行pip install pyfhel命令,安裝簡(jiǎn)單。調(diào)用時(shí)只需導(dǎo)入Pyfhel庫(kù),并調(diào)用庫(kù)中函數(shù)即可[3]。

    1.2 四種同態(tài)加密庫(kù)比較與選擇

    本文在Linux Kali2020虛擬機(jī)(CPU數(shù)量為1、內(nèi)核為1,內(nèi)存為2G)中對(duì)上述四個(gè)同態(tài)加密庫(kù)進(jìn)行了運(yùn)行時(shí)處理速度的測(cè)試。其中,統(tǒng)一運(yùn)用CKKS全同態(tài)加密方案,每種程序運(yùn)行次數(shù)都經(jīng)過(guò)10輪并取平均,結(jié)果如表1和表2所示。由表1可見(jiàn),其中SEAL和Pyfhel運(yùn)行時(shí)間增加是比較平穩(wěn)的,而HElib和PALISADE當(dāng)次數(shù)較少時(shí)運(yùn)行速度較優(yōu),但當(dāng)次數(shù)較大時(shí)運(yùn)行時(shí)間將會(huì)大幅度增加。由乘法同態(tài)測(cè)試發(fā)現(xiàn),乘法會(huì)產(chǎn)生大量噪聲,所以不同算法對(duì)乘法的運(yùn)算次數(shù)的支持會(huì)有限制,表2中標(biāo)注了實(shí)驗(yàn)中測(cè)到的運(yùn)算上限。在乘法運(yùn)算速度上,SEAL和HElib比較快,但在乘法運(yùn)算次數(shù)上會(huì)比PALISADE略差。

    綜合上述結(jié)果的比較,發(fā)現(xiàn)Pyfhel同態(tài)加密庫(kù)在加法的運(yùn)算速度和乘法的運(yùn)算次數(shù)上性能適中,而安裝和調(diào)用方面是四種庫(kù)中最便捷的,所以我們選擇了Pyfhel同態(tài)加密庫(kù)和Python語(yǔ)言來(lái)實(shí)現(xiàn)我們的支持多數(shù)據(jù)源安全共享的分布式大數(shù)據(jù)協(xié)作系統(tǒng)。

    2 運(yùn)用pyfhel實(shí)現(xiàn)支持多數(shù)據(jù)源安全共享的分布式大數(shù)據(jù)協(xié)作系統(tǒng)

    2.1系統(tǒng)總體設(shè)計(jì)

    數(shù)字經(jīng)濟(jì)時(shí)代,企業(yè)或組織需要在數(shù)據(jù)流通和交易方面進(jìn)行深度合作。通過(guò)各方數(shù)據(jù)協(xié)同計(jì)算,可以大程度的利用數(shù)據(jù)的價(jià)值,提升生產(chǎn)效率,推動(dòng)產(chǎn)業(yè)創(chuàng)新。而保護(hù)各方數(shù)據(jù)在共享計(jì)算時(shí)不被泄露是企業(yè)或組織參與數(shù)據(jù)共享合作的前提條件。例如銀行需要對(duì)企業(yè)做出評(píng)估,需要政府方面的數(shù)據(jù)信息來(lái)進(jìn)行計(jì)算。如果直接把數(shù)據(jù)給銀行,會(huì)產(chǎn)生數(shù)據(jù)泄露的問(wèn)題,因此,亟需運(yùn)用同態(tài)加密和安全多方計(jì)算技術(shù)開(kāi)發(fā)一個(gè)第三方平臺(tái)使其能夠獲得政府加密以后的數(shù)據(jù)并進(jìn)行計(jì)算,并將結(jié)果返回給銀行。

    根據(jù)多方數(shù)據(jù)安全共享的需求,運(yùn)用同態(tài)加密和多方計(jì)算技術(shù)設(shè)計(jì)與開(kāi)發(fā)支持多數(shù)據(jù)源安全共享的分布式大數(shù)據(jù)協(xié)作系統(tǒng)。系統(tǒng)包括密鑰生成、密鑰重置、加密、解密、計(jì)算、系統(tǒng)管理等六個(gè)主要功能模塊,其中系統(tǒng)管理包括風(fēng)控模型管理、數(shù)據(jù)源管理、用戶管理。系統(tǒng)整個(gè)流程是客戶端負(fù)責(zé)產(chǎn)生和更新同態(tài)加密所需的密鑰對(duì),并將加密參數(shù)、公鑰等除私鑰以外文件上傳到平臺(tái)上保存;數(shù)據(jù)源端從平臺(tái)獲取公鑰來(lái)加密所需的數(shù)據(jù),并將加密后的數(shù)據(jù)發(fā)往平臺(tái)進(jìn)行計(jì)算;平臺(tái)根據(jù)分控模型將收到的數(shù)據(jù)進(jìn)行同態(tài)加密計(jì)算,并將得到的結(jié)果發(fā)送給客戶端;客戶端用私鑰對(duì)計(jì)算后的密文進(jìn)行解密得到明文結(jié)果。在整個(gè)業(yè)務(wù)交互過(guò)程中,除了數(shù)據(jù)源,其他參與方都無(wú)法獲得明文數(shù)據(jù),因此保障了數(shù)據(jù)共享的保密性、完整性。各模塊與系統(tǒng)的三個(gè)組成部分的關(guān)系如圖1所示。

    2.2 關(guān)鍵模塊設(shè)計(jì)

    下文就密鑰生成、密鑰重置、系統(tǒng)管理、加密、計(jì)算、解密等系統(tǒng)關(guān)鍵功能模塊展開(kāi)設(shè)計(jì)介紹。

    ⑴ 密鑰生成:直接調(diào)用Pyfhel庫(kù),生成密鑰對(duì),然后將公私鑰分別存到兩個(gè)文件中。

    ⑵ 密鑰重置:對(duì)密鑰進(jìn)行定時(shí)更新,增加系統(tǒng)安全性??蛻舳司哂忻荑€重置功能,在第一次密鑰生成之后,會(huì)在本地生成一個(gè)up.dat文件,該文件存儲(chǔ)著密鑰本次生成或更新的時(shí)間戳,如果該時(shí)間戳和當(dāng)前時(shí)間相差超過(guò)更新周期,則會(huì)自動(dòng)地重新生成加密參數(shù)、公鑰、私鑰等文件,并將除私鑰以外的文件上傳到平臺(tái)上進(jìn)行保存或更新。

    ⑶ 系統(tǒng)管理:包括風(fēng)控模型管理、數(shù)據(jù)源管理、用戶管理,如圖2所示。風(fēng)控模型為系統(tǒng)中的計(jì)算模型。用戶管理是主要對(duì)不同角色用戶的管理。

    ⑷ 加密:在數(shù)據(jù)源端加載執(zhí)行。當(dāng)數(shù)據(jù)源端收到平臺(tái)請(qǐng)求并確定請(qǐng)求的數(shù)據(jù)范圍后,將會(huì)從平臺(tái)下載相應(yīng)客戶端的加密參數(shù)、公鑰等文件,然后從本地逐一調(diào)取數(shù)據(jù)進(jìn)行加密操作,加密調(diào)用的是Pyfhel庫(kù)中的encode函數(shù)和encrypt函數(shù),最后將密文發(fā)送給平臺(tái)。

    ⑸ 計(jì)算:平臺(tái)接收到計(jì)算請(qǐng)求后,根據(jù)風(fēng)控模型向數(shù)據(jù)源請(qǐng)求數(shù)據(jù),并在收到數(shù)據(jù)源發(fā)送的密文數(shù)據(jù)后進(jìn)行計(jì)算,如圖3所示。計(jì)算調(diào)用的是Pyfhel同態(tài)加密庫(kù)中的運(yùn)算函數(shù)。針對(duì)計(jì)算過(guò)程中的噪音問(wèn)題,系統(tǒng)加入了判決操作,通過(guò)noiseBudget參數(shù)是否為0判斷計(jì)算結(jié)果的正確性,并將正確的密文結(jié)果發(fā)送給客戶端。

    ⑹ 解密:客戶端在接收到平臺(tái)發(fā)送的密文結(jié)果后,運(yùn)用私鑰文件和Pyfhel庫(kù)中decrypt函數(shù)對(duì)密文結(jié)果進(jìn)行解密,然后再用decode函數(shù)進(jìn)行解碼得到明文結(jié)果。

    2.3 系統(tǒng)實(shí)現(xiàn)

    該系統(tǒng)是一個(gè)Web平臺(tái),前端運(yùn)用Bootstrap框架,后端運(yùn)用Django框架,前后端的交互運(yùn)用Ajax技術(shù),數(shù)據(jù)存儲(chǔ)運(yùn)用的是MySql技術(shù),有關(guān)同態(tài)加密計(jì)算方面運(yùn)用的是Python的Pyfhel同態(tài)加密庫(kù)。系統(tǒng)的技術(shù)實(shí)現(xiàn)如圖4所示。為了提高系統(tǒng)客戶端的兼容性,客戶端頁(yè)采用Web形式實(shí)現(xiàn),主要包括密鑰生成、管理風(fēng)控模型功能。平臺(tái)管理員具有管理企業(yè)用戶和數(shù)據(jù)源的功能。其中,企業(yè)用戶即需要數(shù)據(jù)進(jìn)行風(fēng)控模型計(jì)算獲得運(yùn)算結(jié)果的客戶端用戶。數(shù)據(jù)源管理員可登錄平臺(tái)查看數(shù)據(jù)源使用情況,主要包括數(shù)據(jù)源的ID、名稱、IP地址、端口號(hào)、被使用的次數(shù)等信息。

    3 結(jié)束語(yǔ)

    本文在比較了四種同態(tài)加密庫(kù)以后,選擇使用Python語(yǔ)言和Pyfhel同態(tài)加密庫(kù),設(shè)計(jì)和實(shí)現(xiàn)了一個(gè)支持多數(shù)據(jù)源安全共享的分布式大數(shù)據(jù)協(xié)作系統(tǒng)。該系統(tǒng)能夠解決企業(yè)風(fēng)控值計(jì)算場(chǎng)景中數(shù)據(jù)共享的安全性問(wèn)題。該方案在不泄露源數(shù)據(jù)的情況下進(jìn)行安全共享計(jì)算,可以讓數(shù)據(jù)的價(jià)值得以體現(xiàn),該方案可以推廣和衍生到更多共享的場(chǎng)景中。在未來(lái),我們將結(jié)合區(qū)塊鏈技術(shù)對(duì)同態(tài)加密算法做更深入的研究,使其能夠支持更大規(guī)模的計(jì)算。

    參考文獻(xiàn)(References):

    [1] 郭娟娟,王瓊霄,許新,等.安全多方計(jì)算及其在機(jī)器學(xué)習(xí)中的應(yīng)用[J].計(jì)算機(jī)研究與發(fā)展,2021,58(10):2163-2186

    [2] Yatao YANG, Yang ZHAO, Juanmei ZHANG, Jierun HUANG, Yuan GAO. Recent Development of Theory and Application on Homomorphic Encryption[J]. Journal of Electronics and Information Technology,2021,43(2):475-487

    [3] Ibarrondo,&Gomez,Pyfhel.Retrieved[EB/OL].(2021-09-06)[2021.11.08].https://github.com/ibarrond/Pyfhel.

    [4] Halevi, S., Shoup, V.: Algorithms in HElib. In: Garay, J.A.,Gennaro, R. (eds.) CRYPTO 2014, Part I. LNCS, vol. 8616,pp.554-571. Springer, Heidelberg[EB/OL].(2014)[2021.11.08].http://eprint.iacr.org/2014/106

    [5] Polyakov,PALISADEDevelopment. Retrieved[EB/OL].(2020)[2021.11.08].https://gitlab.com/pallisadeli sade/palisade-development

    [6] 馮超.全同態(tài)加密的相關(guān)算法研究[D].山東大學(xué),2015

    猜你喜歡
    數(shù)據(jù)共享
    淺談天津氣象信息化發(fā)展現(xiàn)狀和發(fā)展趨勢(shì)
    數(shù)字化迎新系統(tǒng)宿舍分配模塊的設(shè)計(jì)與實(shí)現(xiàn)
    網(wǎng)絡(luò)時(shí)代電子文件和檔案管理的探索
    貴州大數(shù)據(jù)產(chǎn)業(yè)發(fā)展戰(zhàn)略理解和實(shí)施建議
    面向海上平臺(tái)機(jī)械電氣設(shè)備的數(shù)據(jù)共享平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)
    淺談“營(yíng)配貫通”對(duì)供電企業(yè)的作用
    基于協(xié)同辦公的會(huì)議管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
    高校一表通系統(tǒng)建設(shè)探究
    基于SOA架構(gòu)的中學(xué)精細(xì)化管理模式研究
    基于元數(shù)據(jù)映射機(jī)制的異構(gòu)數(shù)據(jù)操作
    武隆县| 马山县| 洪洞县| 克拉玛依市| 牡丹江市| 西平县| 安阳县| 江源县| 渝北区| 富蕴县| 柳河县| 江北区| 郓城县| 定州市| 沙雅县| 陆良县| 延庆县| 塘沽区| 连州市| 梁河县| 遵义市| 庆元县| 拉萨市| 杭州市| 即墨市| 当阳市| 井陉县| 兴宁市| 怀柔区| 顺平县| 城市| 静乐县| 宁陕县| 集贤县| 富锦市| 德昌县| 梅州市| 卢龙县| 上高县| 汪清县| 大洼县|