国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

同態(tài)加密的硬件卸載及其在隱私保護計算中的應用

2021-03-22 01:38周慧凱
小型微型計算機系統(tǒng) 2021年3期
關鍵詞:調用線程延時

周慧凱,華 蓓

(中國科學技術大學 計算機科學與技術學院,合肥 230027)

1 引 言

隨著云計算的廣泛應用,越來越多的用戶選擇將數據存儲在云端,有些甚至將計算也外包給云端.然而,用戶對數據安全和隱私泄露的擔心阻礙了云計算的進一步推廣使用.盡管常規(guī)加密技術可以保證數據在存儲和傳輸過程中的機密性,但是當計算外包給云服務商或第3方時,由于需要先解密數據才能計算,數據機密性仍然得不到保證.隨著大數據時代的到來,數據已成為一種重要的財富和資源,利用數據發(fā)現問題和解決問題已成為大數據和人工智能時代的主要特征.然而人們對數據機密和隱私泄露的擔心同樣限制了數據的流通和共享使用,導致各行各業(yè)的數據形成“數據孤島”,不能產生應有的價值.

計算外包和數據共享的共同點是數據擁有方和數據計算方分離,數據擁有方希望數據計算方在計算的過程中不接觸原始明文數據,并且也不能推斷出原始明文數據.目前解決這個問題的方法大致分為基于密碼學的方法和基于擾動變換的方法,基于密碼學的方法支持在密文上進行計算,而基于擾動變換的方法通過向原始數據添加足夠的噪聲來保證數據隱私.基于密碼學的方法安全性高,但計算開銷巨大.

同態(tài)加密是具有特殊自然屬性的一類加密方法,利用同態(tài)加密技術在多個密文上進行計算的結果,與在明文上先計算再對計算結果進行加密是等價的,從而可解決第3方計算的數據安全問題,在隱私保護的信息檢索、多方安全計算、密文數據庫等方面有著重要的應用.根據對同態(tài)特性支持的完整性,同態(tài)加密分為全同態(tài)加密、類同態(tài)加密、半同態(tài)加密3類.全同態(tài)加密支持在密文上的任意多次加、乘同態(tài)運算;類同態(tài)加密同時支持加、乘同態(tài)運算,但運算次數有限;而半同態(tài)加密僅能支持加同態(tài)或乘同態(tài)運算.許多研究工作致力于提高同態(tài)加密的計算效率,包括改進加密算法和利用GPU/FPGA/ASIC硬件加速器等.文獻[1]利用GPU加速全同態(tài)算法ATV[2],對32KB數據進行AES-128運算需要4.15小時,完全無法實用.基于大數模冪運算的半同態(tài)加密是目前最接近實用的同態(tài)加密方案,其中,加同態(tài)加密算法Paillier[3]已被應用到電子投票[4]、電子拍賣[5]等小型應用中,但由于計算開銷大仍然無法應用到大規(guī)模計算中.近幾年已有一些針對Paillier加密算法的硬件卸載工作,San等人[6]在FPGA上實現了Paillier加密算法,完成一次Paillier-1024加密運算耗時11.29ms;Cai等人[7]設計了Paillier算法的專用ASIC芯片,將一次Paillier-1024加密時間縮短到5.9ms.盡管這兩個利用FPGA和ASIC的卸載方案在功耗上有一定優(yōu)勢,但是它們的加密性能還不及一些高端CPU(見5.2節(jié)表1).

Intel QAT(Intel QuickAssist Technology)[8]是一款卸載加解密操作和壓縮解壓縮操作的硬件板卡,性能高、功耗低和開發(fā)環(huán)境友好是其優(yōu)勢.QAT卡封裝了AES、RSA、ECC等常規(guī)加密算法以及Deflate壓縮算法,并為調用這些算法提供了方便易用的高層接口.QAT卡已在一些需要大量進行加解密和壓縮解壓縮操作的系統(tǒng)中得到應用,如加速OpenSSL、Hadoop[8]等.但是QAT卡并未提供同態(tài)加密功能,只有一個未經封裝的大數模冪運算的低層調用接口.大數模冪運算是多種半同態(tài)加密算法(如Paillier、ElGamal[9]等)的基本運算,也是這些加密算法的計算瓶頸所在.本文從硬件卸載的角度研究同態(tài)加密的高性能計算問題,提出一個基于QAT加速器的半同態(tài)加密卸載框架QHCS(QAT-based Homomorphic Encryption Scheme),著重實現Paillier算法的異步卸載,并將其應用到一個隱私保護的線性回歸應用中,希望推動同態(tài)加密在數據安全計算領域的實際應用.

2 相關知識

2.1 Paillier算法和Libhcs庫

c=E(m)=gm·rnmodn2

(1)

對任意明文m1,m2有:

=gm1+m2(r1r2)n=E(m1+m2)

(2)

也即對密文進行乘運算等效于對明文先進行加運算,然后進行加密的結果,滿足加法同態(tài).該特性可推廣到對任意明文m1,m2,…,mn有:

E(m1)·E(m2)·…·E(mn)=E(m1+m2+…+mn)

(3)

即Paillier算法滿足任意次的加法同態(tài)運算.

Libhcs[10]是一個用C語言實現的開源同態(tài)加密庫,實現了Paillier、ElGamal等半同態(tài)加密算法,尤其對Paillier算法進行了完善的實現,提供了方便的API接口供應用層調用.

2.2 QAT架構及基于QAT的TLS異步卸載框架

每一塊QAT卡包含多個計算引擎,每個計算引擎可以獨立執(zhí)行加解密或壓縮解壓縮操作.應用程序通過使用QAT卡分配的實例(instance)和調用相關的QAT APIs,將工作負載下發(fā)到某個計算引擎上完成,計算結果通過同步或異步模式返回.

QAT與CPU之間通過位于內存中的一系列硬件輔助的環(huán)形數據結構進行通信,如圖1所示.環(huán)成對存在,每一對環(huán)由一個請求環(huán)和一個響應環(huán)組成,CPU將計算任務提交給請求環(huán),QAT將計算結果放入響應環(huán).QAT在通信環(huán)和計算引擎之間進行負載均衡,將CPU提交的計算任務高效均勻地分配到多個計算引擎上.QAT驅動提供同步和異步兩種卸載模式:在同步模式中,CPU通過QAT API提交任務后,CPU被阻塞直到QAT完成運算;在異步模式中,CPU通過QAT API提交任務后,不必等待QAT運算結束即可執(zhí)行其它任務.同步調用是最直接最簡單的卸載方法,幾乎不需要修改上層應用,但會導致CPU和QAT串行執(zhí)行,QAT利用率低.雖然采用多線程同步調用可以提高QAT的利用率,但大量線程產生的線程切換開銷會限制系統(tǒng)的性能.

圖1 Intel QAT架構圖Fig.1 Architecture of Intel QAT

QTLS[11]是一個基于QAT的TLS(Transport Layer Security)異步卸載框架,它將OpenSSL中的常規(guī)加解密算法卸載到QAT中,并實現了高效的異步調用.QTLS重新設計了TLS的軟件棧,以使每一層都支持異步操作.QTLS軟件棧從上到下分為事件驅動的應用(如Nginx)、TLS 庫(即OpenSSL)和QAT引擎3個層次.在應用層,通過增加一個異步狀態(tài)“TLS ASYNC”并結合TLS狀態(tài)機,實現Nginx對加密卸載的異步支持.由于OpenSSL本身不支持異步卸載,QTLS通過在OpenSSL中增加協程(fibre)支持來實現異步調用.協程是用戶態(tài)線程,以協作方式進行調度,并且調度也在用戶態(tài)完成,避免了切換內核的開銷.協程可以在任意位置中斷,讓出CPU,并可以在任意時刻重入協程,從上次退出的執(zhí)行點繼續(xù)向下執(zhí)行,該特性使得協程提供了一種自然的異步調用方式.QAT引擎向下與QAT驅動交互,向上對OpenSSL實現接口適配和數據類型轉換.為兼顧吞吐量與延遲兩方面的性能要求,QTLS實現了一種啟發(fā)式輪詢機制,通過自動調節(jié)輪詢周期來高效地獲取加密結果.

2.3 隱私保護的線性回歸應用

文獻[12]面向眾包場景提出了一種隱私保護的嶺回歸計算模型,用于在加密后的眾包數據上進行線性回歸計算.該模型包括數據提供者、評估者和加密服務提供者3方,如圖2所示.每個數據提供者提供一條數據(xi,yi),該數據生成的矩陣(Ai;bi)用Paillier算法加密后(得到矩陣ci)發(fā)送給評估者,評估者將所有加密矩陣ci相加(同態(tài)加)得到聚合后的矩陣C,然后與加密服務提供者進行協同,通過構造亂碼電路[13]來求解C.該工作巧妙地設計了同態(tài)加密與亂碼電路相結合的方案,整個過程中評估者和加密服務提供者都沒有接觸到明文數據.

圖2 文獻[12]中的隱私保護嶺回歸計算模型Fig.2 Privacy-preserving ridge regression in [12]

3 QHCS的設計與實現

3.1 QHCS的架構設計與異步卸載實現

QAT提供了一個大數模冪運算的低層接口,可用于卸載半同態(tài)加密算法中的模冪運算操作.本文旨在將Libhcs中的Paillier加密算法卸載到QAT中,并為上層提供方便易用的調用接口.該方法同樣可用于實現乘同態(tài)加密算法ElGamal的QAT卸載.

利用QAT卸載Paillier算法的最直接方法是將Paillier實現中對模冪運算函數的調用替換成對QAT模冪運算接口的同步調用,然而由于上層應用及Libhcs都是采用同步設計,在調用返回之前應用與Libhcs都不能進行后續(xù)操作,導致QAT的利用率非常低.為此,需要重新設計軟件棧來實現高效的異步卸載,以充分利用QAT的計算能力.

受QTLS框架的啟發(fā),本文同樣采用3層結構來設計半同態(tài)加密異步卸載框架,從上往下依次為應用層、同態(tài)加密庫(Libhcs)層、QAT訪問層,如圖3所示.應用層根據應用邏輯對加密任務進行封裝和調度.考慮到同態(tài)加密應用大多采用同步加密模式,不像Nginx那樣涉及事件驅動,Libhcs也不存在像TLS狀態(tài)機這樣的機制,我們對同態(tài)加密庫層和應用層統(tǒng)一采用協程來實現異步功能.在具體實現時,可通過調用OpenSSL的Async_job族函數來實現協程的異步功能.QAT訪問層向下與QAT驅動交互,向上對Libhcs實現接口適配和數據類型轉換.

圖3 QHCS的整體架構Fig.3 Architecture of QHCS

整個異步卸載過程包括任務封裝與提交、輪詢與異步協程重入、后處理3個階段.

a)任務封裝與提交.每一次獨立的Paillier加密調用封裝為一個加密任務,包括獲取數據、加密數據、寫密文數據等一系列步驟,該封裝由應用層實現.之后加密任務作為一個協程被調用,協程首先根據參數獲取待加密的數據,然后調用同態(tài)加密庫,同態(tài)加密庫調用QAT訪問層,QAT訪問層通過異步API提交加密請求,之后馬上通過相關調用暫停該協程執(zhí)行,控制權返回給應用層.應用層調度下一個加密任務.

b)輪詢與異步協程重入.為了確定加密請求是否完成,應用層主動對QAT實例進行輪詢.輪詢到新的響應之后,QAT用戶態(tài)驅動調用預設的回調函數.回調函數根據與加密結果相關聯的協程句柄,直接重入到該協程,繼續(xù)進行后續(xù)處理.

c)后處理.重入被暫停的協程時,該協程仍停留在QAT訪問層任務提交結束的狀態(tài),由此開始逐層向上進行后處理過程.后處理包括軟件棧中每一層相關的后續(xù)處理,對于QAT訪問層來說是加密數據類型的轉換和數據包裝,對于同態(tài)加密庫來說是進一步的加密過程處理,對于應用層來說是寫加密數據等后續(xù)處理.重入協程完成全部的后處理之后,該加密任務也就完成了,協程被終止.

3.2 單次Paillier加密過程的雙協程實現

根據公式(1),Paillier加密一個數據需要進行兩次模冪運算,即需要執(zhí)行兩次QAT卸載.3.1采用了一種簡單的實現方法,將兩次模冪運算集成在一個協程中,先提交第1次模冪運算請求,第1次回調重入該協程后提交第2個模冪運算請求,第2次回調重入該協程后完成后處理,這樣兩次任務卸載完全串行執(zhí)行.

考慮到Paillier加密的兩次模冪運算是沒有關聯的,它們可以并行執(zhí)行,從而減少單次加密的延時.經了解QAT默認開啟了保序功能,即QAT會將計算結果按照任務的提交順序依次放入響應環(huán)中,為此我們的第2種實現方法是將兩次模冪運算解耦,用兩個協程來實現.第1個協程提交第1個模冪運算,第2個協程提交第2個模冪運算并進行后續(xù)處理,兩個協程按順序調度,確保在第2個協程進入后處理階段時兩個模冪運算的結果都已返回.為實現雙協程并發(fā)提交計算任務,需要對OpenSSL的Async_job族函數進行一些改造,使得其支持在協程中調度新協程的特性.

4 基于QHCS實現隱私保護的線性回歸

本文基于QHCS實現了一個面向數據交易的隱私保護線性回歸應用.在該設想的場景中,數據賣家提供加密的數據集,數據交易平臺根據數據買家的請求在數據集上完成線性回歸計算,將最終的計算結果交付給數據買家.整個計算過程中交易平臺和數據買家均不接觸明文數據,從而實現隱私保護的數據交易.

本文對文獻[12]的隱私保護嶺回歸計算模型稍加修改,將其應用于數據交易場景中,如圖4所示.在這里,數據提供者是擁有某個數據集的實體,評估者為數據交易平臺,加密服務提供者用一個CA(Certificate Authority)實現,提供密鑰管理與亂碼電路構建服務.數據提供者對每一條數據生成矩陣(Ai;bi),采用Paillier算法加密后(得到ci矩陣)發(fā)送給交易平臺,交易平臺對ci矩陣進行聚合,然后與加密服務提供者協同完成亂碼電路的構建和求解,得到回歸模型.3方之間采用文獻[12]中的第2種協議進行交互.

圖4 面向數據交易的隱私保護嶺回歸計算模型Fig.4 Privacy-preserving ridge regression model for data trading

應用的計算開銷包括對矩陣(Ai;bi)進行同態(tài)加密、對加密矩陣ci進行聚合、以及針對聚合矩陣C構造亂碼電路并求解.其中,主要的計算開銷是同態(tài)加密和矩陣聚合,它們均與數據集規(guī)模成正比;而矩陣C的規(guī)模僅與數據維度有關,與數據集的規(guī)模無關,因此亂碼電路構建與求解的計算量是固定的.應用的主要通信開銷是ci矩陣的傳輸.為提高整個應用系統(tǒng)的性能,我們采用了如下優(yōu)化措施.

1)利用QHCS卸載Paillier加密過程.為提高矩陣(Ai;bi)的加密速度,數據提供者利用QHCS將加密過程卸載到QAT上.考慮到實際應用中明文數據大多較短,QHCS采用了文獻[12]中提到的batch優(yōu)化技術,即將多個較短的明文數據用若干個零隔開后打包成一個較長的明文數據,再進行Paillier加密.該技術可將多次加密過程轉化為一次加密過程,極大地提高加密速度.

2)利用GPU實現加密矩陣的聚合.所有ci矩陣通過同態(tài)加來生成聚合的C矩陣.同態(tài)加是一個簡單的模乘運算,雖然單次模乘運算的計算量不大,但是大量的模乘運算仍會產生較大的計算開銷.由于QAT沒有開放模乘運算接口,無法利用QAT來加速模乘運算.考慮到矩陣的模乘運算實際上是一個向量運算,本文采用GPU來加速這個過程.

在模乘運算中模運算是一個性能瓶頸,考慮到在本文場景下每一個輸入只進行一次模乘運算,且模運算中的模數唯一,我們選擇用Barrett reduction[14]算法來加速模運算.在利用GPU進行并行計算時,我們通過設計高效的GPU歸約算法對批量數據執(zhí)行Reduce操作,加快聚合速度.

3)在數據提供者網絡中完成加密矩陣聚合.每一條源數據經過向量乘及Paillier加密后生成ci矩陣,這個過程會產生極大的數據膨脹.以每條數據20個字段、密鑰長度1024比特為例,采用batch技術后,100百萬條源數據生成的加密矩陣的數據量約為2GB.如果將這些加密矩陣都傳輸到交易平臺進行計算,將產生巨大的通信開銷.為此,我們將矩陣聚合的功能移到數據提供者一側完成,在數據提供者的局域網中設置一個聚合代理,代表交易平臺完成對加密矩陣的聚合,僅將聚合矩陣C發(fā)送到交易平臺進行求解,避免了大批量數據的遠程傳輸.在數據提供者網絡中進行加密矩陣聚合還能夠進一步減輕數據提供者對數據泄露的擔心,因為只有聚合矩陣才會離開本地網絡.

5 實驗評估

5.1 實驗設置

本文使用2臺服務器來模擬圖4的計算環(huán)境.第1臺服務器配置Intel D-1541/2.1GHz處理器和一塊QAT DH8970加速卡,第2臺服務器配置Intel E5-2689/2.6GHz處理器和一塊Nvidia K80 GPU,均運行CentOS 7操作系統(tǒng),關閉超線程.兩臺服務器通過10Gbps網絡連接.

第1臺服務器運行數據提供者的功能,對數據集中的每一條源數據生成ci矩陣,第2臺服務器運行交易平臺和加密服務提供者(CA)的功能.由于CA的計算量和通信量都很小,對系統(tǒng)性能影響不大,因此實驗時將CA和交易平臺運行在同一臺服務器上.另外,由于亂碼電路的求解與矩陣聚合在執(zhí)行時間上不重疊,實驗時將聚合代理也運行在第2臺服務器上,注意到這樣做并不會對系統(tǒng)性能的測量結果產生影響.聚合代理、亂碼電路求解和CA分別用一個進程實現,3者之間的通信開銷忽略不計.

本文設計兩組實驗,第1組實驗評估不同的Paillier加密實現方案的性能,第2組實驗評估基于QHCS的隱私保護線性回歸應用的性能.由于Paillier最常使用的密鑰長度為1024比特,本文所有實驗均采用1024比特密鑰長度.

5.2 不同Paillier加密實現方案的性能評估

本組實驗測試3類共5種Paillier加密實現方案的吞吐量(OPS)和平均加密延時(ms),分別是軟件方案(SW,由Libhcs實現)、QAT同步卸載方案(分為單線程同步方案QAT+S1與多線程同步方案QAT+S2)、QAT異步卸載方案(分為單協程異步方案QHCS1與雙協程異步方案QHCS2),并對比了FPGA和ASIC方案的論文數據.所有實驗方案中產生的CPU線程皆綁定到一個固定的CPU物理核上,以此來比較CPU端資源一定(只用單核)時不同方案的性能.每次實驗加密30000個隨機數,計算吞吐量和平均加密延時.每個實驗運行3次,取3次結果的平均值,實驗結果見表1.

表1 不同Paillier實現方案的性能Table 1 Performance of different Paillier implementations

對于軟件方案SW和單線程同步方案QAT+S1,直接測量3萬次加密所用的時間,然后計算出吞吐量和平均每次加密延時.

多線程同步方案QAT+S2的加密性能與線程數量有關:若線程數過少,則QAT負載不足;若線程數過多,大量的線程切換開銷也會影響性能.為獲得QAT+S2的最佳性能,實驗時改變線程數量,測量不同線程數下的加密性能.實驗發(fā)現,當線程數為1000時吞吐量最高,表1中QAT+S2報告的即為該設置下的吞吐量和平均加密延時.為獲得平均加密延時,實驗時統(tǒng)計每個線程的運行時間及加密次數,計算出該線程的平均加密延時,然后對所有線程的平均加密延時求平均值.

對于QAT異步卸載方案(QHCS1和QHCS2),吞吐量的測量方法與其它3個方案相同,平均加密延時則是通過測量 每一次完整加密過程的延時并計算平均值得到.

由表1可以看到,單線程同步方案(QAT+S1)的性能只比軟件方案(SW)略好.這是因為在同步模式下QAT和CPU串行執(zhí)行,且QAT每次只執(zhí)行一個模冪運算,負載嚴重不足,導致性能提升十分有限.

多線程同步方案(QAT+S2)的吞吐量是單線程同步方案(QAT+S1)的46倍,這是因為多線程方案有效增大了QAT的負載,使得QAT的計算能力得到很大的釋放.注意到在該吞吐量下,多線程方案的平均加密延時增大至單線程方案的21倍,這是因為大量的任務請求在request ring中排隊,產生了較大的排隊延遲.

單協程異步方案(QHCS1)的吞吐量是多線程同步方案(QAT+S2)的1.76倍,這是因為協程具有比線程小得多的切換和調度開銷,從而CPU可以調度更多的計算任務到QAT上,令QAT的計算能力得到更加充分的利用.注意到單協程異步方案的平均加密延時比多線程同步方案降低了33%,這里有兩個方面的原因.首先,采用異步方式提交任務使得CPU和QAT上的處理過程能夠重疊執(zhí)行,減少了加密延時;其次,由于協程的調度和切換延時遠小于線程的調度和切換延時,這也使得協程方案的加密延時較小.

雙協程異步方案(QHCS2)的吞吐量比單協程異步方案(QHCS1)略低,這是因為雙協程方案使用了較多的協程,增加了CPU端的處理開銷.值得注意的是,雙協程方案的加密延時只有單協程方案的一半,這是因為單協程方案的第2次計算任務須在第1次任務的結果返回后才提交,而雙協程方案的第2次計算任務可以緊接在第1次任務后提交,兩個計算結果通過一次輪詢即可獲得,從而降低了加密延時.

從這組實驗可以看到,QAT異步卸載方案的吞吐量明顯高于同步卸載方案,并遠遠超過當前的軟件實現方案,是軟件方案的110倍.追求高吞吐的應用可以采用單協程卸載方案,關注延時的應用可以采用雙協程卸載方案.

最后與文獻中報告的FPGA方案[6]和ASIC方案[7]進行一個比較.表1中這兩個方案的性能數據均來自相關文獻.為便于描述,這里將CPU物理核、QAT計算引擎、FPGA和ASIC的加密運算單元統(tǒng)稱為計算實例.在SW、FPGA、ASIC和QAT+S1這4種方案中都只有一個計算實例參與計算,適合一起比較.可以看到,ASIC方案的吞吐量與延時均優(yōu)于FPGA方案,但都不如SW和QAT+S1.這說明FPGA及ASIC方案的性能還不如軟件方案(CPU實現),也不如QAT.

在QAT+S2、QHCS1和QHCS2這3種方案中,QAT有多個計算實例參與計算,單次加密運算的耗時均大于FPGA和ASIC方案,這是由批量處理帶來的影響.在吞吐量方面,按照FPGA中每個計算實例占用的硬件資源和FPGA設備總的硬件資源數量來計算,一塊FPGA設備最多可以同時運行13個計算實例,在完全發(fā)揮FPGA設備算力的情況下吞吐量也只有1151(OPS),僅為QHCS1的4.2%,若要達到QHCS1(單QAT設備)的吞吐量需要24塊FPGA板.ASIC方案若需要達到QHCS1(單QAT設備)的吞吐量需要160個計算實例(計算核心).可見,相比于已有的FPGA方案或ASIC方案,QHCS在性能方面具有顯著的優(yōu)勢.

5.3 隱私保護的線性回歸應用的性能評估

本組實驗測量隱私保護的線性回歸應用的性能,包括同態(tài)加密、矩陣聚合、亂碼電路求解3個部分的運行耗時.實驗所需的數據集采用文獻[12]中的算法生成,見算法1.

算法1.數據集生成算法

輸入:數據條數n,數據維度d

輸出:X∈n×d,y∈n

3. 計算y=Xβ+e,其中e~N(0,1)

首先利用以上算法生成n=1,000,000條高維源數據,每條數據包含d=20個維度.對每條源數據(xi;yi)生成待加密的(Ai;bi)矩陣,每個矩陣包含420個元素.這一百萬個矩陣(共包含4.2億個數據)即為數據提供者要加密的數據.數據提供者對每個(Ai;bi)矩陣進行Paillier加密,輸出加密矩陣ci.

對于同態(tài)加密部分,分別測量兩種異步卸載方案的加密耗時.為優(yōu)化性能,采用了batch技術,將每個矩陣中的數據打包成17個長度為1024比特的數,即需要進行17次Paillier加密.表2給出了兩種方案的加密時間,其中單協程方案QHCS1耗時10.6分鐘,雙協程方案QHCS2耗時10.7分鐘.這個實驗再次表明,兩個方案的吞吐量很接近,相比而言單協程方案的吞吐量略高一些.

表2 隱私保護的線性回歸應用的性能分解Table 2 Performance breakdown of privacy-preserving ridge regression

矩陣聚合部分測量GPU對矩陣ci執(zhí)行同態(tài)加所用的時間.為最大化GPU的計算效率,我們通過實驗的方法確定GPU kernel的最佳運行參數.實驗發(fā)現,GPU每批次處理25,000個加密矩陣(即ci)時性能最好,在此設置下得到100萬個矩陣同態(tài)加的耗時為116秒,見表2.

亂碼電路部分測量構造和求解亂碼電路的時間.ABY[15]是一個完善而高效的安全計算框架,本文使用ABY框架來實現亂碼電路部分內容.亂碼電路的復雜度和計算開銷僅與矩陣C有關,而與源數據的條數n無關,實驗中測得這部分的運行時間為20秒,見表2.

數據提供者和聚合代理之間需要傳輸一百萬個加密矩陣,這部分的數據量約為2GB.采用10Gbps鏈路進行傳輸,傳輸時間只需數秒.

綜合以上實驗數據可以看到,對大規(guī)模加密數據進行線性回歸計算的最主要瓶頸是同態(tài)加密,利用QAT卸載同態(tài)加密可以極大地縮短計算時間,使得在實際生產中應用同態(tài)加密技術成為可能.需要說明的是,本實驗只使用了一塊QAT加速卡,如果使用多塊QAT卡,則加密時間將成比例地下降.

6 總 結

計算外包、數據共享等正成為大數據時代的迫切需要.雖然同態(tài)加密是實現安全數據計算的重要技術,但是極高的計算開銷阻礙了同態(tài)加密的實際應用.本文基于Intel QAT加速卡和開源同態(tài)加密庫Libhcs實現了針對Paillier半同態(tài)加密算法的硬件卸載框架QHCS,通過重構同態(tài)加密應用的軟件棧,并采用協程、異步調用等方式實現了加密性能的最大化.本文進一步將QHCS應用于一個面向數據交易場景的隱私保護線性回歸應用中.實驗表明,QHCS的加密吞吐量是目前軟件實現的110倍,在百萬量級的高維數據上執(zhí)行隱私保護的線性回歸計算僅需十幾分鐘,可以較好地滿足實際應用的需要.未來打算將基于模冪運算的其它半同態(tài)加密算法集成到QHCS中,并將QHCS應用于更多類型的隱私保護數據計算中,如隱私保護的機器學習和數據挖掘等.

猜你喜歡
調用線程延時
5G終端模擬系統(tǒng)隨機接入過程的設計與實現
實時操作系統(tǒng)RT?Thread啟動流程剖析
課后延時服務
實時操作系統(tǒng)mbedOS 互斥量調度機制剖析
課后延時中如何優(yōu)化不同年級學生活動效果
基于Android Broadcast的短信安全監(jiān)聽系統(tǒng)的設計和實現
一種“死時間”少和自動校準容易的Wave Union TDC
宋湘延時答妙對
利用RFC技術實現SAP系統(tǒng)接口通信
C++語言中函數參數傳遞方式剖析
临武县| 金川县| 东城区| 延寿县| 平陆县| 永昌县| 登封市| 喀什市| 上思县| 西乌| 岱山县| 金昌市| 故城县| 金溪县| 庆元县| 崇州市| 南充市| 晋城| 皋兰县| 和平县| 平潭县| 金寨县| 环江| 志丹县| 于田县| 伊宁市| 灌阳县| 定兴县| 宁南县| 临泉县| 华亭县| 安仁县| 西贡区| 平度市| 陆川县| 法库县| 海盐县| 潢川县| 淮南市| 蓝山县| 田东县|