本發(fā)明涉及云計算領(lǐng)域,尤其涉及一種同態(tài)加密編譯器的基于整數(shù)線性規(guī)劃的規(guī)模管理方法。
背景技術(shù):
1、云計算業(yè)務(wù)在過去的幾年中經(jīng)歷了顯著的增長,越來越多的企業(yè)和組織選擇將他們的數(shù)據(jù)和服務(wù)遷移到云端,推動了對云端安全計算的需求。完全同態(tài)加密(fullyhomomorphic?encryption,fhe)可以在不需要解密的情況下對加密的數(shù)據(jù)進行計算,降低了云計算中數(shù)據(jù)暴露的風險。rns-ckks是一種被廣泛使用的fhe方案,在機器學習、統(tǒng)計分析和數(shù)據(jù)挖掘等領(lǐng)域展現(xiàn)出了杰出的性能。由于其優(yōu)異的性能,rns-ckks被廣泛應(yīng)用于各種fhe庫和編譯器中。
2、盡管fhe有很多好處,但編寫一個正確且高效的fhe應(yīng)用程序仍然是復(fù)雜和具有挑戰(zhàn)性的?,F(xiàn)有的fhe方案需要充足的密碼學知識以獲得預(yù)期的結(jié)果,如編程過程中需要對密文進行規(guī)模管理。rns-ckks將實數(shù)編碼為整數(shù),規(guī)模用來表示其小數(shù)點的位置。乘法會增加密文的規(guī)模,規(guī)模溢出會導致計算結(jié)果不可恢復(fù)。此外,密文有一個名為level的屬性,它會影響密文執(zhí)行算術(shù)運算的延遲。為了開發(fā)出正確而高效的應(yīng)用程序,程序員應(yīng)該手動插入規(guī)模管理操作,如rescale和modswitch,以確定密文的規(guī)模和等級。這種獨特的編程范式對非專家的程序員造成了極大的障礙,影響了fhe應(yīng)用的推廣。
3、為了減輕編程負擔,eva、hecate和elasm提出了自動規(guī)模管理方法。然而,這些方法基于啟發(fā)式或迭代的方法,導致性能次優(yōu)或需要耗時的迭代。eva保守地插入規(guī)模管理操作以確保程序的功能正確性,卻忽略了這些操作對程序性能的影響。此外,它采用了分離的規(guī)模和等級分析,沒有意識到協(xié)同解決這兩個問題的好處。hecate和elasm通過基于迭代的方法探索優(yōu)化空間,實現(xiàn)了更高的性能。與hecate相比,elasm通過細粒度噪聲感知水線找到更好的誤差和延遲權(quán)衡。然而,迭代方法得到的解的質(zhì)量受到算法參數(shù)、初始化和隨機性等因素的顯著影響,且需要根據(jù)問題規(guī)模手動調(diào)整迭代參數(shù),需要多次實驗來尋找最優(yōu)的程序參數(shù),在使用上依然不夠方便。
4、因此,本領(lǐng)域的技術(shù)人員致力于開發(fā)一種同態(tài)加密編譯器的基于整數(shù)線性規(guī)劃的規(guī)模管理方法。將rns-ckks的規(guī)模管理問題形式化為一個整數(shù)線性規(guī)劃問題,從而可以用現(xiàn)有的數(shù)學方法進行求解。
技術(shù)實現(xiàn)思路
1、有鑒于現(xiàn)有技術(shù)的上述缺陷,本發(fā)明所要解決的技術(shù)問題是現(xiàn)有的同態(tài)加密編譯器在解決規(guī)模管理問題時,生成的程序性能較差或者需要花費大量的求解時間。
2、為實現(xiàn)上述目的,本發(fā)明提供了一種同態(tài)加密編譯器的基于整數(shù)線性規(guī)劃的規(guī)模管理方法,包括以下步驟:
3、步驟1、輸入程序轉(zhuǎn)換成高級ir,并進行程序級優(yōu)化;
4、步驟2、高級ir轉(zhuǎn)換成fhe::fhe方言;
5、步驟3、fhe::fhe方言降低至特定方案的方言,將規(guī)模管理問題建模成整數(shù)線性規(guī)劃問題,生成不同fhe方案的低級ir;
6、步驟4、低級ir為硬件后端生成目標代碼,并進行硬件優(yōu)化。
7、進一步地,所述規(guī)模管理問題的目標是確定所有算術(shù)節(jié)點的規(guī)模和等級,并插入規(guī)模管理操作,在滿足約束的情況下最小化程序的延遲。
8、進一步地,所述約束包括節(jié)點等級分配約束、節(jié)點規(guī)模上限約束、節(jié)點規(guī)模下限約束、算術(shù)操作約束、規(guī)模管理操作約束、輸入和輸出約束。
9、進一步地,所述整數(shù)線性規(guī)劃問題采用gurobi求解。
10、進一步地,所述步驟1,采用循環(huán)展開優(yōu)化。
11、進一步地,所述步驟1,編譯優(yōu)化方法包括死代碼消除、常量折疊、公共子表達式消除。
12、進一步地,所述步驟2,fhe::fhe方言定義同態(tài)加密程序的操作和語義。
13、進一步地,所述步驟2,優(yōu)化方法包括向量化和電路優(yōu)化。
14、進一步地,所述步驟3,特定方案的方言包括fhe::bfv、fhe::bgv、fhe::ckks。
15、進一步地,所述步驟4,硬件后端包括cpu、gpu、加速器。
16、現(xiàn)有的同態(tài)加密編譯器在解決規(guī)模管理問題時,采用啟發(fā)式方法或基于迭代的方法,缺乏對優(yōu)化空間的理解,使得生成的程序性能較差或者需要花費大量的求解時間。本發(fā)明將rns-ckks的規(guī)模管理問題形式化為一個整數(shù)線性規(guī)劃問題,從而可以用現(xiàn)有的數(shù)學方法進行求解。相較于啟發(fā)式方法和基于迭代的方法,基于整數(shù)線性規(guī)劃的方法對于解的最優(yōu)性有著嚴格的數(shù)學證明,從而提升解的質(zhì)量;同時,相較于無序的迭代的方法,基于整數(shù)線性規(guī)劃的方法能更快的獲得最優(yōu)解。
17、本發(fā)明與現(xiàn)有技術(shù)相比較,具有如下顯而易見的實質(zhì)性特點和顯著優(yōu)點:
18、1.本發(fā)明相較于現(xiàn)有的方法(啟發(fā)式方法和基于迭代的方法)能實現(xiàn)更高的性能。
19、2.本發(fā)明相較于現(xiàn)有的基于迭代的方法,求解時間更快。
20、3.本發(fā)明有助于在更短的時間生成性能更高的程序,從而推動同態(tài)加密應(yīng)用的推廣和落地。
21、4.通過本發(fā)明提出的規(guī)模管理方法,程序員在編程時可以忽略規(guī)模管理的需求,由編譯器自動進行管理,不需要程序員介入;相較于現(xiàn)有的同態(tài)加密編譯器中的規(guī)模管理方法,本發(fā)明提出的方法可以在更短的時間生成性能更好的程序,有助于推廣同態(tài)加密的使用。
22、以下將結(jié)合附圖對本發(fā)明的構(gòu)思、具體結(jié)構(gòu)及產(chǎn)生的技術(shù)效果作進一步說明,以充分地了解本發(fā)明的目的、特征和效果。
1.一種同態(tài)加密編譯器的基于整數(shù)線性規(guī)劃的規(guī)模管理方法,其特征在于,包括以下步驟:
2.如權(quán)利要求1所述的同態(tài)加密編譯器的基于整數(shù)線性規(guī)劃的規(guī)模管理方法,其特征在于,所述規(guī)模管理問題的目標是確定所有算術(shù)節(jié)點的規(guī)模和等級,并插入規(guī)模管理操作,在滿足約束的情況下最小化程序的延遲。
3.如權(quán)利要求2所述的同態(tài)加密編譯器的基于整數(shù)線性規(guī)劃的規(guī)模管理方法,其特征在于,所述約束包括節(jié)點等級分配約束、節(jié)點規(guī)模上限約束、節(jié)點規(guī)模下限約束、算術(shù)操作約束、規(guī)模管理操作約束、輸入和輸出約束。
4.如權(quán)利要求1所述的同態(tài)加密編譯器的基于整數(shù)線性規(guī)劃的規(guī)模管理方法,其特征在于,所述整數(shù)線性規(guī)劃問題采用gurobi求解。
5.如權(quán)利要求1所述的同態(tài)加密編譯器的基于整數(shù)線性規(guī)劃的規(guī)模管理方法,其特征在于,所述步驟1,采用循環(huán)展開優(yōu)化。
6.如權(quán)利要求1所述的同態(tài)加密編譯器的基于整數(shù)線性規(guī)劃的規(guī)模管理方法,其特征在于,所述步驟1,編譯優(yōu)化方法包括死代碼消除、常量折疊、公共子表達式消除。
7.如權(quán)利要求1所述的同態(tài)加密編譯器的基于整數(shù)線性規(guī)劃的規(guī)模管理方法,其特征在于,所述步驟2,fhe::fhe方言定義同態(tài)加密程序的操作和語義。
8.如權(quán)利要求1所述的同態(tài)加密編譯器的基于整數(shù)線性規(guī)劃的規(guī)模管理方法,其特征在于,所述步驟2,優(yōu)化方法包括向量化和電路優(yōu)化。
9.如權(quán)利要求1所述的同態(tài)加密編譯器的基于整數(shù)線性規(guī)劃的規(guī)模管理方法,其特征在于,所述步驟3,特定方案的方言包括fhe::bfv、fhe::bgv、fhe::ckks。
10.如權(quán)利要求1所述的同態(tài)加密編譯器的基于整數(shù)線性規(guī)劃的規(guī)模管理方法,其特征在于,所述步驟4,硬件后端包括cpu、gpu、加速器。