一種支持多種類同態(tài)運算的加速裝置和方法,加速裝置包括核內(nèi)緩存資源池、指令解析和交互單元、指令執(zhí)行資源池、算子單元池、獨立的配置指令接口和獨立的數(shù)據(jù)傳輸接口。核內(nèi)緩存資源池用于存儲同態(tài)運算源數(shù)據(jù)、中間數(shù)據(jù)和結(jié)果數(shù)據(jù),指令解析和交互單元用于解析通過配置指令接口獲取的同態(tài)運算請求信息,并將解析獲取的同態(tài)運算指令發(fā)送給指令執(zhí)行資源池,指令執(zhí)行資源池中的多個同態(tài)算子單元依據(jù)同態(tài)運算指令涉及的同態(tài)運算類型調(diào)用算子單元池中對應(yīng)的同態(tài)算子單元執(zhí)行同態(tài)運算。通過合理的同態(tài)運算架構(gòu)、多類型的同態(tài)算子單元和增設(shè)的片內(nèi)緩存,使得加速裝置能對多種類型的同態(tài)運算進(jìn)行加速,擴(kuò)展了加速裝置的同態(tài)運算適用范圍。圍。圍。
【技術(shù)實現(xiàn)步驟摘要】
一種支持多種類同態(tài)運算的加速裝置和方法
[0001]本專利技術(shù)涉及數(shù)據(jù)安全保護(hù)
,具體涉及一種支持多種類同態(tài)運算的加速裝置和方法。
技術(shù)介紹
[0002]隨著互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,不斷增加的數(shù)據(jù)量被傳輸、存儲、計算。其中的很多數(shù)據(jù)是關(guān)鍵的、加密的、安全的或私有的。特別是私有的數(shù)據(jù),還可能受機(jī)密性法律和法規(guī)的保護(hù)。用戶一般都通過對數(shù)據(jù)進(jìn)行加密保護(hù),免受惡意內(nèi)部人員、外部攻擊者或意外暴露。在傳統(tǒng)的加密機(jī)制下,數(shù)據(jù)在傳輸和存儲的環(huán)節(jié)都可以實現(xiàn)加密保護(hù)。但涉及數(shù)據(jù)使用的環(huán)節(jié)中,密文數(shù)據(jù)往往需要解密后才能對數(shù)據(jù)進(jìn)行加工,導(dǎo)致明文數(shù)據(jù)極容易受到攻擊。學(xué)術(shù)和工業(yè)界一直為解決這一難題提出各種方案,如同態(tài)加密。同態(tài)加密(Homomorphic Encryption, HE)是應(yīng)用非常廣的密碼學(xué)工具,滿足密文同態(tài)運算性質(zhì)的加密算法,即數(shù)據(jù)經(jīng)過同態(tài)加密之后,對密文進(jìn)行特定的計算,得到的密文計算結(jié)果在進(jìn)行對應(yīng)的同態(tài)解密后的明文等同于對明文數(shù)據(jù)直接進(jìn)行相同的計算,實現(xiàn)數(shù)據(jù)的“可算不可見”。因此被廣泛應(yīng)用在隱私保護(hù)的云服務(wù)計算、外包計算、聯(lián)邦學(xué)習(xí)等場景中,是新興隱私技術(shù)的一個方向。
[0003]同態(tài)加密計算要求計算的全程需要在密文狀態(tài)下完成,相比明文計算,密文計算速度下降3
?
6個量級,因此需要更大的算力資源支持同態(tài)加密計算。通過對處理器芯片或FPGA(Field
?
Programmable Gate Array)硬件進(jìn)行編程后,可以構(gòu)造適合處理同態(tài)加密算法的硬件架構(gòu),以達(dá)到加速密文計算的目的。然而現(xiàn)有技術(shù)中用于同態(tài)加密運算的運算加速核只能針對一種類型的同態(tài)運算進(jìn)行加速,限制了硬件加速核的適用范圍。
技術(shù)實現(xiàn)思路
[0004]本申請主要解決的技術(shù)問題是如何提高用于同態(tài)運算的片內(nèi)硬件加速核的適用范圍。
[0005]第一方面,一種實施例中提供一種支持多種類同態(tài)運算的加速裝置,包括核內(nèi)緩存資源池、指令解析和交互單元、指令執(zhí)行資源池、算子單元池、獨立的配置指令接口和獨立的數(shù)據(jù)傳輸接口;所述數(shù)據(jù)傳輸接口與所述核內(nèi)緩存資源池連接,用于獲取同態(tài)運算源數(shù)據(jù),并將所述同態(tài)運算源數(shù)據(jù)發(fā)送給所述核內(nèi)緩存資源池;所述核內(nèi)緩存資源池用于存儲所述同態(tài)運算源數(shù)據(jù),還用于存儲同態(tài)運算中間數(shù)據(jù)和同態(tài)運算結(jié)果數(shù)據(jù),并將所述同態(tài)運算結(jié)果數(shù)據(jù)通過所述數(shù)據(jù)傳輸接口向外輸出;所述配置指令接口與所述指令解析和交互單元連接,用將獲取的同態(tài)運算請求信息發(fā)送給所述指令解析和交互單元;所述指令解析和交互單元用于對獲取的所述同態(tài)運算請求信息進(jìn)行解析,并將解析獲取的同態(tài)運算指令發(fā)送給所述指令執(zhí)行資源池;
所述算子單元池包括至少兩個同態(tài)算子單元,每個所述同態(tài)算子單元用于一種同態(tài)運算類型的同態(tài)運算;所述算子單元池中全部所述同態(tài)算子單元的同態(tài)運算種類至少包括兩種,所述同態(tài)運算的種類包括NTT/INTT、乘法運算、模加運算、模減運算、模乘運算和旋轉(zhuǎn)運算;所述指令執(zhí)行資源池用于執(zhí)行所述同態(tài)運算指令;所述指令執(zhí)行資源池包括至少一個指令執(zhí)行單元,所述指令執(zhí)行單元用于獲取所述同態(tài)運算指令,并依據(jù)所述同態(tài)運算指令調(diào)用該同態(tài)運算指令涉及的同態(tài)運算類型所對應(yīng)的同態(tài)算子單元對所述核內(nèi)緩存池中預(yù)存的同態(tài)運算源數(shù)據(jù)進(jìn)行同態(tài)運算;所述同態(tài)算子單元還用于將同態(tài)運算獲取的同態(tài)運算中間數(shù)據(jù)和/或同態(tài)運算結(jié)果數(shù)據(jù)存儲在所述核內(nèi)緩存資源池中。
[0006]一實施例中,當(dāng)所述指令解析和交互單元對獲取的所述同態(tài)運算請求信息進(jìn)行解析獲取多個同態(tài)運算指令時,所述指令解析和交互單元將每個所述同態(tài)運算指令并行發(fā)送給所述指令執(zhí)行資源池;當(dāng)所述指令執(zhí)行資源池獲取多個所述同態(tài)運算指令時,調(diào)用與所述同態(tài)運算指令數(shù)量相同的所述指令執(zhí)行單元,依據(jù)所述同態(tài)運算請求信息中預(yù)設(shè)的先后順序執(zhí)行同態(tài)運算。
[0007]一實施例中,所述指令執(zhí)行單元的種類包括單一運算類型和復(fù)合運算類型,所述單一運算類型的指令執(zhí)行單元用于執(zhí)行單一類別的基礎(chǔ)同態(tài)運算,所述復(fù)合運算類型的指令執(zhí)行單元用于執(zhí)行復(fù)合形式的同態(tài)運算,復(fù)合形式的同態(tài)運算會一次或多次調(diào)用單一類別的指令執(zhí)行單元,實現(xiàn)基礎(chǔ)運算資源的復(fù)用;所述復(fù)合形式的同態(tài)運算包括NTT/INTT、旋轉(zhuǎn)運算。
[0008]一實施例中,在所述算子單元池中對應(yīng)每種同態(tài)運算類型的所述同態(tài)算子單元包括至少一個;所述指令執(zhí)行單元還用于依據(jù)所述同態(tài)運算指令調(diào)用至少一個同態(tài)算子單元執(zhí)行同態(tài)運算;所述指令執(zhí)行單元還用于依據(jù)所述同態(tài)運算指令調(diào)用至少一種同態(tài)運算類型的所述同態(tài)算子單元執(zhí)行同態(tài)運算。
[0009]一實施例中,所述核內(nèi)緩存資源池包括運算存儲區(qū)和參數(shù)存儲區(qū);所述運算存儲區(qū)用于存儲所述同態(tài)運算源數(shù)據(jù)、所述同態(tài)運算中間數(shù)據(jù)和所述同態(tài)運算結(jié)果數(shù)據(jù),所述參數(shù)存儲區(qū)用于存儲同態(tài)運算參數(shù)數(shù)據(jù);所述運算存儲區(qū)的緩存深度與待運算多項式的系數(shù)數(shù)目匹配,支持的深度包括1024、4096、8192、16384或32768。
[0010]一實施例中,當(dāng)所述同態(tài)算子單元完成同態(tài)運算后,所述指令執(zhí)行單元還用于將同態(tài)運算結(jié)束信息發(fā)送給所述指令解析和交互單元;所述指令解析和交互單元還用于將從每個所述指令執(zhí)行單元獲取的所述同態(tài)運算結(jié)束信息進(jìn)行統(tǒng)計匯總后通過所述配置指令接口輸出。
[0011]第二方面,一種實施例中提供一種支持多種類同態(tài)運算的加速方法,應(yīng)用于如第一方面所述的加速裝置中,所述加速方法包括:通過獨立的配置指令接口獲取同態(tài)運算請求信息;通過獨立的數(shù)據(jù)傳輸接口獲取同態(tài)運算源數(shù)據(jù);對獲取的所述同態(tài)運算請求信息進(jìn)行解析,并將解析獲取的同態(tài)運算指令發(fā)送給
指令執(zhí)行資源池;所述指令執(zhí)行資源池將所述同態(tài)運算指令分配給閑置的指令執(zhí)行單元;所述指令執(zhí)行單元獲取所述同態(tài)運算指令后,依據(jù)所述同態(tài)運算指令調(diào)用該同態(tài)運算指令涉及的同態(tài)運算類型所對應(yīng)的同態(tài)算子單元對所述核內(nèi)緩存池中預(yù)存的同態(tài)運算源數(shù)據(jù)進(jìn)行同態(tài)運算,并將同態(tài)運算獲取的同態(tài)運算中間數(shù)據(jù)和/或同態(tài)運算結(jié)果數(shù)據(jù)存儲在所述核內(nèi)緩存資源池中。
[0012]一實施例中,所述將解析獲取的同態(tài)運算指令發(fā)送給指令執(zhí)行資源池,包括:當(dāng)解析獲取多個所述同態(tài)運算指令時,將每個所述同態(tài)運算指令并行發(fā)送給所述指令執(zhí)行資源池;所述指令執(zhí)行資源池將所述同態(tài)運算指令分配給閑置的指令執(zhí)行單元,包括:當(dāng)所述指令執(zhí)行資源池獲取多個所述同態(tài)運算指令時,調(diào)用與所述同態(tài)運算指令數(shù)量相同的所述指令執(zhí)行單元,依據(jù)所述同態(tài)運算請求信息中預(yù)設(shè)的先后順序執(zhí)行同態(tài)運算。
[0013]一實施例中,所述依據(jù)所述同態(tài)運算指令調(diào)用該同態(tài)運算指令涉及的同態(tài)運算類型所對應(yīng)的同態(tài)算子單元對所述核內(nèi)緩存池中預(yù)存的同態(tài)運算源數(shù)據(jù)進(jìn)行同態(tài)運算,包括:當(dāng)所述同態(tài)運算指令包括多種同態(tài)運算類型的多個同態(tài)運算時,所述指令執(zhí)行單元調(diào)用與所述同態(tài)運算數(shù)量相同且同態(tài)運算類型相對應(yīng)的同態(tài)算子單元執(zhí)行同態(tài)運算。
[0014]第三方面,一種實施例中提供一種計算機(jī)可讀存儲介質(zhì),包括程序,所述程序能夠被處理器執(zhí)行以實現(xiàn)如第二方面所述的加速方法。
[0015]上述實施例中公開的支持多種類同態(tài)運算的加速裝置,由于算子本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點】
【技術(shù)特征摘要】
1.一種支持多種類同態(tài)運算的加速裝置,其特征在于,包括核內(nèi)緩存資源池、指令解析和交互單元、指令執(zhí)行資源池、算子單元池、獨立的配置指令接口和獨立的數(shù)據(jù)傳輸接口;所述數(shù)據(jù)傳輸接口與所述核內(nèi)緩存資源池連接,用于獲取同態(tài)運算源數(shù)據(jù),并將所述同態(tài)運算源數(shù)據(jù)發(fā)送給所述核內(nèi)緩存資源池;所述核內(nèi)緩存資源池用于存儲所述同態(tài)運算源數(shù)據(jù),還用于存儲同態(tài)運算中間數(shù)據(jù)和同態(tài)運算結(jié)果數(shù)據(jù),并將所述同態(tài)運算結(jié)果數(shù)據(jù)通過所述數(shù)據(jù)傳輸接口向外輸出;所述配置指令接口與所述指令解析和交互單元連接,用將獲取的同態(tài)運算請求信息發(fā)送給所述指令解析和交互單元;所述指令解析和交互單元用于對獲取的所述同態(tài)運算請求信息進(jìn)行解析,并將解析獲取的同態(tài)運算指令發(fā)送給所述指令執(zhí)行資源池;所述算子單元池包括至少兩個同態(tài)算子單元,每個所述同態(tài)算子單元用于一種同態(tài)運算類型的同態(tài)運算;所述算子單元池中全部所述同態(tài)算子單元的同態(tài)運算種類至少包括兩種,所述同態(tài)運算的種類包括NTT/INTT、乘法運算、模加運算、模減運算、模乘運算和旋轉(zhuǎn)運算;所述指令執(zhí)行資源池用于執(zhí)行所述同態(tài)運算指令;所述指令執(zhí)行資源池包括至少一個指令執(zhí)行單元,所述指令執(zhí)行單元用于獲取所述同態(tài)運算指令,并依據(jù)所述同態(tài)運算指令調(diào)用該同態(tài)運算指令涉及的同態(tài)運算類型所對應(yīng)的同態(tài)算子單元對所述核內(nèi)緩存池中預(yù)存的同態(tài)運算源數(shù)據(jù)進(jìn)行同態(tài)運算;所述同態(tài)算子單元還用于將同態(tài)運算獲取的同態(tài)運算中間數(shù)據(jù)和/或同態(tài)運算結(jié)果數(shù)據(jù)存儲在所述核內(nèi)緩存資源池中。2.如權(quán)利要求1所述的加速裝置,其特征在于,當(dāng)所述指令解析和交互單元對獲取的所述同態(tài)運算請求信息進(jìn)行解析獲取多個同態(tài)運算指令時,所述指令解析和交互單元將每個所述同態(tài)運算指令并行發(fā)送給所述指令執(zhí)行資源池;當(dāng)所述指令執(zhí)行資源池獲取多個所述同態(tài)運算指令時,調(diào)用與所述同態(tài)運算指令數(shù)量相同的所述指令執(zhí)行單元,依據(jù)所述同態(tài)運算請求信息中預(yù)設(shè)的先后順序執(zhí)行同態(tài)運算。3.如權(quán)利要求1所述的加速裝置,其特征在于,所述指令執(zhí)行單元的種類包括單一運算類型和復(fù)合運算類型,所述單一運算類型的指令執(zhí)行單元用于執(zhí)行單一類別的基礎(chǔ)同態(tài)運算,所述復(fù)合運算類型的指令執(zhí)行單元用于執(zhí)行復(fù)合形式的同態(tài)運算,復(fù)合形式的同態(tài)運算會一次或多次調(diào)用單一類別的指令執(zhí)行單元,實現(xiàn)基礎(chǔ)運算資源的復(fù)用;所述復(fù)合形式的同態(tài)運算包括NTT/INTT和旋轉(zhuǎn)運算。4.如權(quán)利要求1所述的加速裝置,其特征在于,在所述算子單元池中對應(yīng)每種同態(tài)運算類型的所述同態(tài)算子單元包括至少一個;所述指令執(zhí)行單元還用于依據(jù)所述同態(tài)運算指令調(diào)用至少一個同態(tài)算子單元執(zhí)行同態(tài)運算;所述指令執(zhí)行單元還用于依據(jù)所述同態(tài)運算指...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:趙幸,陳思,王宗岳,劉烈,沈憶冰,
申請(專利權(quán))人:深圳市紐創(chuàng)信安科技開發(fā)有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。