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