深入淺出隱私計算:技術(shù)解析與應(yīng)用實踐
定 價:89 元
叢書名:網(wǎng)絡(luò)空間安全技術(shù)叢書
內(nèi)容簡介這是一本能指導(dǎo)零基礎(chǔ)讀者快速了解并上手隱私計算技術(shù)的著作,快速實現(xiàn)從入門到進(jìn)階。作者在金融和安全領(lǐng)域有10余年的技術(shù)從業(yè)經(jīng)驗,是港交所隱私計算項目的深度參與者,工程實戰(zhàn)經(jīng)驗豐富。本書從隱私計算的安全保護(hù)技術(shù)和應(yīng)用技術(shù)兩個維度,深入淺出地講解了6大類隱私計算技術(shù)的工作原理、應(yīng)用方法、開發(fā)框架、案例實踐。全書共11章,分為4篇:第1篇 基礎(chǔ)概念(第1~2章)講述隱私計算的基礎(chǔ)知識,為后續(xù)深入講解隱私計算原理和技術(shù)做鋪墊。第二篇 安全保護(hù)技術(shù)(第3~8章)講述隱私計算技術(shù)中的各項安全保護(hù)技術(shù),包括深入講述混淆電路、秘密共享、同態(tài)加密、零知識證明、差分隱私、可信執(zhí)行環(huán)境等隱私計算安全保護(hù)技術(shù)。每一項技術(shù)都講解了其原理、應(yīng)用開發(fā)框架以及實踐案例。第三篇 應(yīng)用技術(shù)(第9~10章)通過隱私保護(hù)集合交集技術(shù)、聯(lián)邦學(xué)習(xí)方面的2個綜合案例講解了隱私計算安全保護(hù)技術(shù)的應(yīng)用。第四篇 展望(第11章)介紹了隱私計算技術(shù)標(biāo)準(zhǔn)化的相關(guān)進(jìn)展,探討隱私計算技術(shù)的困境和發(fā)展前景。
(1)作者背景資深:作者曾就職于微軟、中國平安、港交所等大企業(yè),軟件研發(fā)和架構(gòu)、隱私計算和安全等都擅長。(2)作者經(jīng)驗豐富:資深隱私計算專家,10余年金融和安全行業(yè)經(jīng)驗,港交所隱私計算項目深度參與者,工程經(jīng)驗豐富。(3)內(nèi)容系統(tǒng)深入:系統(tǒng)講解6大類隱私計算技術(shù)的工作原理、應(yīng)用方法、開發(fā)框架、案例實踐。(4)零基礎(chǔ)快入門:本書能指導(dǎo)零基礎(chǔ)的讀者快速了解并掌握隱私計算技術(shù),不僅知曉其原理,而且能在實踐中運(yùn)用。(5)提供資源下載:書中全部源文件提供下載,同時提供了Docker鏡像文件。
為什么要寫這本書幾年前,我次接觸隱私計算技術(shù)時,馬上就被它所具有的神奇能力所吸引。隱私計算技術(shù)可以讓數(shù)據(jù)可用不可見,這是多么神奇的事情,令人難以置信。因為數(shù)據(jù)幾乎可以零成本地被復(fù)制,所以長期以來數(shù)據(jù)所有權(quán)一直難以得到有效保護(hù),數(shù)據(jù)隱私問題也難以解決,進(jìn)而導(dǎo)致數(shù)據(jù)擁有方缺乏提供數(shù)據(jù)的動力和意愿,造成了大量的數(shù)據(jù)孤島。數(shù)據(jù)交易并沒有形成規(guī)模,數(shù)據(jù)石油遠(yuǎn)遠(yuǎn)沒有被充分開采。如果通過隱私計算技術(shù)實現(xiàn)數(shù)據(jù)可用不可見,進(jìn)而實現(xiàn)數(shù)據(jù)所有權(quán)和數(shù)據(jù)使用權(quán)的分離,那么數(shù)據(jù)孤島問題就很可能得到解決。我仿佛已經(jīng)看到數(shù)據(jù)石油井噴的場景,著實興奮。然而隨著研究的深入,我發(fā)現(xiàn)這件事情并沒有一開始想的那么簡單。單就隱私而言,什么是隱私數(shù)據(jù)中是否包含隱私這些問題其實并不容易說清楚、想明白。比如Netflix曾舉辦了一場根據(jù)公開數(shù)據(jù)推測用戶電影評分的比賽(Netflix Prize),公開數(shù)據(jù)中抹去了可識別用戶的信息,但一年后,來自得克薩斯大學(xué)奧斯汀分校的兩名研究員將公開數(shù)據(jù)與IMDB(互聯(lián)網(wǎng)電影數(shù)據(jù)庫)網(wǎng)站的公開記錄進(jìn)行關(guān)聯(lián),通過差分攻擊等手段識別出了部分匿名用戶的身份。三年后,Netflix終因隱私泄露宣布停止該比賽,并付出了百萬美元的高額賠償金?梢,判斷數(shù)據(jù)是否包含隱私、是否可以安全公開并不簡單。經(jīng)過多年的學(xué)習(xí)和思考,我認(rèn)為解決數(shù)據(jù)隱私問題沒有銀彈,也不存在的數(shù)據(jù)安全。數(shù)據(jù)要流通、要共享,就必然要透露給別人之前所不知的新信息。問題的關(guān)鍵在于,流通、共享過程中對透露的信息如何衡量和控制,而這正是隱私計算技術(shù)需要解決的問題。然而,目前隱私計算技術(shù)雖然種類不少,但總體上都談不上十分成熟。公眾對隱私計算技術(shù)也不夠了解。市面上雖有學(xué)術(shù)論文著作,但鮮有技術(shù)入門類的書籍。鑒于此,我本著分享技術(shù)的初衷,將近年來所學(xué)的隱私計算技術(shù)整理成書,希望能幫到一部分讀者,鼓勵他們在應(yīng)用研發(fā)方案設(shè)計過程中考慮使用這項技術(shù)。讀者對象大數(shù)據(jù)專業(yè)、數(shù)據(jù)安全專業(yè)的學(xué)生。對數(shù)據(jù)安全感興趣的程序員。對數(shù)據(jù)隱私保護(hù)有需求的開發(fā)人員、架構(gòu)師。本書特色目前,市面上涉及隱私計算的書籍主要以聯(lián)邦學(xué)習(xí)為主題,且應(yīng)用場景主要是機(jī)器學(xué)習(xí),鮮有介紹隱私計算中各項基礎(chǔ)安全保護(hù)技術(shù)的。本書講述了隱私計算中的各項基礎(chǔ)安全保護(hù)技術(shù)及實現(xiàn)這些技術(shù)的開源應(yīng)用開發(fā)框架,并選取應(yīng)用案例進(jìn)行實踐,有利于初學(xué)者快速上手學(xué)習(xí)。如何閱讀本書本書分4篇。基礎(chǔ)概念篇(第1、2章):講述隱私計算的起源、發(fā)展、概念等基礎(chǔ)知識,為后續(xù)深入講解隱私計算原理和技術(shù)做鋪墊。安全保護(hù)技術(shù)篇(第3~8章):講述隱私計算技術(shù)中的各項基礎(chǔ)安全保護(hù)技術(shù),包括混淆電路、秘密共享、同態(tài)加密、零知識證明、差分隱私、可信執(zhí)行環(huán)境。應(yīng)用技術(shù)篇(第9、10章):通過兩個綜合案例介紹隱私計算中基礎(chǔ)安全保護(hù)技術(shù)的應(yīng)用。展望篇(第11章):描述隱私計算技術(shù)標(biāo)準(zhǔn)化的相關(guān)進(jìn)展,探討隱私計算技術(shù)的困境和發(fā)展前景。其中,篇以基礎(chǔ)知識為主,如果你熟悉隱私安全的相關(guān)基礎(chǔ)知識,可以直接跳過這部分內(nèi)容。但是如果你是一名初學(xué)者,請一定從篇開始學(xué)習(xí)。第二篇的各章比較獨(dú)立,你可根據(jù)自己的興趣優(yōu)先選擇其中某些內(nèi)容閱讀。另外,本書涉及的編程語言較多,讀者不必拘泥于編程語言細(xì)節(jié),重點(diǎn)關(guān)注相關(guān)技術(shù)的原理和方法即可。勘誤和支持登錄https://github.com/li-weirong/ppct可下載書中全部源文件,登錄https://hub.docker.com/u/liweirong可拉取Docker鏡像文件。由于筆者能力有限,書中難免會存在一些錯誤或者不準(zhǔn)確的地方,懇請讀者批評指正。如果你有寶貴意見,請發(fā)送郵件到郵箱liweirong@outlook.com,期待得到你的真摯反饋。致謝首先要感謝前公司領(lǐng)導(dǎo)許慎,是他帶我走進(jìn)隱私計算這一前沿技術(shù)的世界,讓我領(lǐng)略到了這一新技術(shù)的魅力。其次要感謝機(jī)械工業(yè)出版社華章公司的編輯楊福川和陳潔,他們在我寫作期間始終支持我,引導(dǎo)我順利完成了全部書稿。后感謝我的家人,他們在我編寫此書的過程中始終支持和鼓勵我,讓我安心思考和寫作,從而終完稿。謹(jǐn)以此書獻(xiàn)給我親愛的家人!
李偉榮隱私計算專家,曾就職于微軟、平安、港交所等大型公司,擁有十年以上金融項目架構(gòu)和信息安全管理經(jīng)驗。精通信息安全、軟件研發(fā)、項目管理,擅長大型軟件架構(gòu)開發(fā),善于使用創(chuàng)新思維和創(chuàng)新方法解決問題。曾在港交所深度參與隱私計算相關(guān)項目,致力于通過隱私計算技術(shù)解決大數(shù)據(jù)產(chǎn)品的確權(quán)、標(biāo)準(zhǔn)化、存證、溯源、定價、信用體系和利益分配等一系列問題,打造數(shù)據(jù)、金融資產(chǎn)交易的新型基礎(chǔ)設(shè)施。
目錄 Contents序前言篇 基礎(chǔ)概念第1章 隱私計算技術(shù)的起源、發(fā)展及應(yīng)用31.1 隱私計算技術(shù)的起源31.2 隱私計算的概念41.3 隱私計算技術(shù)的發(fā)展脈絡(luò)61.4 隱私計算技術(shù)是重大科技趨勢71.4.1 政策扶持71.4.2 商業(yè)市場前景81.4.3 商業(yè)研究機(jī)構(gòu)的認(rèn)同91.5 隱私計算技術(shù)的應(yīng)用場景101.5.1 金融行業(yè)101.5.2 醫(yī)療健康行業(yè)111.5.3 政務(wù)行業(yè)111.6 本章小結(jié)12第2章 隱私計算技術(shù)的基礎(chǔ)知識132.1 非對稱加密RSA算法132.1.1 RSA算法基礎(chǔ)132.1.2 密鑰生成152.1.3 加密與解密162.1.4 基于RSA算法的盲簽名172.2 不經(jīng)意傳輸172.3 布隆過濾器192.4 隱私計算安全性假設(shè)202.4.1 安全行為模型202.4.2 不誠實門限222.5 本章小結(jié)22第二篇 安全保護(hù)技術(shù)第3章 混淆電路技術(shù)的原理與實踐253.1 混淆電路的原理253.2 開發(fā)框架Obliv-C283.2.1 通過Docker構(gòu)建環(huán)境293.2.2 使用obliv修飾隱私輸入數(shù)據(jù)303.2.3 提供隱私輸入數(shù)據(jù)313.2.4 計算過程中的流程控制323.2.5 obliv函數(shù)333.2.6 對數(shù)組的訪問343.2.7 關(guān)鍵詞frozen343.2.8 高級功能:無條件代碼段353.2.9 Obliv-C項目的文件結(jié)構(gòu)363.3 應(yīng)用案例:解決百萬富翁難題403.3.1 具體代碼實現(xiàn)403.3.2 網(wǎng)絡(luò)抓包及分析423.4 擴(kuò)展閱讀443.4.1 姚氏布爾電路優(yōu)化443.4.2 算術(shù)電路443.5 本章小結(jié)45第4章 秘密共享技術(shù)的原理與實踐464.1 秘密共享的概念464.2 Shamir門限秘密共享方案474.2.1 Shamir門限秘密共享方案流程474.2.2 Shamir門限秘密共享方案原理474.3 通過秘密共享實現(xiàn)隱私計算的原理494.4 開發(fā)框架JIFF514.4.1 通過Docker構(gòu)建環(huán)境514.4.2 JIFF服務(wù)器524.4.3 JIFF客戶端534.4.4 隱私輸入數(shù)據(jù)的秘密共享554.4.5 秘密共享中的運(yùn)算574.4.6 計算過程中的流程控制594.4.7 計算結(jié)果輸出604.4.8 模塊擴(kuò)展624.4.9 使用預(yù)處理來提升性能634.4.10 使用并行計算來提升性能644.4.11 安全模型和假設(shè)684.5 應(yīng)用案例:求向量內(nèi)積684.5.1 具體代碼實現(xiàn)684.5.2 網(wǎng)絡(luò)抓包及分析714.5.3 性能優(yōu)化724.6 擴(kuò)展閱讀744.6.1 GMW協(xié)議744.6.2 BGW協(xié)議754.6.3 SPDZ協(xié)議754.6.4 門限簽名754.6.5 開發(fā)框架FRESCO764.7 本章小結(jié)77第5章 同態(tài)加密技術(shù)的原理與實踐785.1 同態(tài)加密算法概述785.1.1 同態(tài)加密算法的概念785.1.2 同態(tài)加密算法的分類795.2 半同態(tài)加密算法實踐835.2.1 Paillier加法同態(tài)835.2.2 RSA乘法同態(tài)845.3 開發(fā)框架SEAL855.3.1 加密參數(shù)設(shè)置855.3.2 密鑰生成與加解密875.3.3 層的概念895.3.4 密文計算915.3.5 重線性化915.3.6 重縮放925.3.7 通過Docker構(gòu)建環(huán)境945.4 應(yīng)用案例:距離計算945.5 擴(kuò)展閱讀995.5.1 標(biāo)準(zhǔn)化進(jìn)展995.5.2 HElib995.5.3 PALISADE995.6 本章小結(jié)100第6章 零知識證明技術(shù)的原理與實踐1016.1 零知識證明技術(shù)的算法原理1016.1.1 交互式零知識證明1026.1.2 非交互式零知識證明1046.1.3 通過R1CS來描述算術(shù)電路1066.1.4 開發(fā)步驟1086.2 開發(fā)框架libsnark1096.2.1 使用原型板搭建電路1106.2.2 生成密鑰對1116.2.3 證明者構(gòu)造證明1126.2.4 驗證者驗證1126.2.5 可復(fù)用的電路Gadget1136.2.6 通過Docker構(gòu)建環(huán)境1146.2.7 代碼的編譯以及運(yùn)行1156.3 應(yīng)用案例:以零知識證明方式提供財富達(dá)標(biāo)證明1166.4 同態(tài)承諾1206.4.1 承諾的概念1206.4.2 哈希承諾1216.4.3 橢圓曲線1216.4.4 Pedersen同態(tài)承諾1226.4.5 基于Pedersen同態(tài)承諾的轉(zhuǎn)賬1236.5 擴(kuò)展閱讀1236.5.1 Zash的Powers of Tau活動1236.5.2 無須可信設(shè)置的技術(shù)方案Spartan1246.6 本章小結(jié)124第7章 差分隱私技術(shù)的原理與實踐1267.1 差分隱私概述1267.1.1 核心思想1267.1.2 分類1287.1.3 經(jīng)典算法1307.1.4 應(yīng)用場景1327.2 開發(fā)框架SmartNoise1337.2.1 SmartNoise核心庫的組成1337.2.2 基于核心庫進(jìn)行數(shù)據(jù)分析1347.2.3 SmartNoise SDK庫的組成1377.2.4 基于SDK庫進(jìn)行SQL統(tǒng)計查詢1377.2.5 通過Docker構(gòu)建環(huán)境1387.3 應(yīng)用案例:美國人口數(shù)據(jù)統(tǒng)計1397.3.1 簡單幾何機(jī)制的直方圖分析1397.3.2 拉普拉斯機(jī)制的直方圖分析1417.4 擴(kuò)展閱讀1427.4.1 機(jī)器學(xué)習(xí)中的隱私攻擊1427.4.2 差分隱私模型訓(xùn)練開源庫Opacus1437.5 本章小結(jié)143第8章 可信執(zhí)行環(huán)境技術(shù)的原理與實踐1458.1 可信執(zhí)行環(huán)境的原理1458.2 基于硬件的可信執(zhí)行環(huán)境Intel SGX1478.2.1 SGX的安全特性1478.2.2 SGX可信應(yīng)用程序執(zhí)行流程1488.2.3 SGX相比純軟件方案的優(yōu)勢1498.2.4 SGX的不足1508.3 Intel SGX開發(fā)入門1518.3.1 判斷系統(tǒng)是否支持SGX1518.3.2 SGX開發(fā)環(huán)境簡介及搭建1538.3.3 基于Intel SGX SDK構(gòu)建加密應(yīng)用1568.3.4 SGX的啟動審批機(jī)制1808.3.5 SGX的密鑰1828.3.6 本地鑒證1838.3.7 遠(yuǎn)程鑒證1848.4 開發(fā)框架Teaclave1888.4.1 Teaclave架構(gòu)1888.4.2 通過Docker構(gòu)建環(huán)境1908.5 應(yīng)用案例:Private Join and Compute1908.6 可信計算1958.6.1 可信計算的基本思想1958.6.2 可信計算的發(fā)展歷史1968.6.3 可信計算在體系結(jié)構(gòu)上的發(fā)展和變化1968.6.4 可信執(zhí)行環(huán)境與可信計算的關(guān)系1978.7 擴(kuò)展閱讀1988.7.1 側(cè)信道攻擊1988.7.2 提升TEE開發(fā)易用性1998.7.3 手機(jī)上的可信執(zhí)行環(huán)境2008.7.4 機(jī)密計算聯(lián)盟2018.8 本章小結(jié)202第三篇 應(yīng)用技術(shù)第9章 隱私保護(hù)集合交集技術(shù)的原理與實踐2059.1 PSI的實現(xiàn)原理2059.1.1 基于哈希的PSI2069.1.2 基于公鑰加密的PSI2069.1.3 基于混淆電路等MPC技術(shù)的PSI2089.1.4 基于不經(jīng)意傳輸?shù)腜SI2089.1.5 基于全同態(tài)加密的PSI2119.2 應(yīng)用案例2129.2.1 基于BF和RSA的PSI2129.2.2 實現(xiàn)方案2139.2.3 運(yùn)行環(huán)境以及執(zhí)行2159.3 擴(kuò)展閱讀2179.3.1 谷歌的Private Join and Compute項目2179.3.2 PSI分析研究報告2179.4 本章小結(jié)218第10章 聯(lián)邦學(xué)習(xí)21910.1 聯(lián)邦學(xué)習(xí)的源起21910.2 聯(lián)邦學(xué)習(xí)的分類22110.2.1 橫向聯(lián)邦學(xué)習(xí)22110.2.2 縱向聯(lián)邦學(xué)習(xí)22210.2.3 聯(lián)邦遷移學(xué)習(xí)22410.3 基礎(chǔ)隱私計算技術(shù)在聯(lián)邦學(xué)習(xí)中的應(yīng)用22510.3.1 PSI在聯(lián)邦學(xué)習(xí)中的應(yīng)用22510.3.2 同態(tài)加密在聯(lián)邦學(xué)習(xí)中的應(yīng)用22610.3.3 秘密共享在聯(lián)邦學(xué)習(xí)中的應(yīng)用22710.3.4 差分隱私在聯(lián)邦學(xué)習(xí)中的應(yīng)用22910.3.5 TEE在聯(lián)邦學(xué)習(xí)中的應(yīng)用22910.4 擴(kuò)展閱讀23010.4.1 開源的聯(lián)邦學(xué)習(xí)框架23010.4.2 聯(lián)邦學(xué)習(xí)的國際標(biāo)準(zhǔn)23110.5 本章小結(jié)231第四篇 展望第11章 隱私計算的困境與展望23511.1 隱私計算的困境23511.2 隱私計算的趨勢與展望23611.3 隱私計算技術(shù)標(biāo)準(zhǔn)化23711.4 數(shù)據(jù)要素化與隱私計算24011.5 本章小結(jié)241