本發(fā)明總體上涉及加密的領(lǐng)域。更具體地,本發(fā)明涉及一種設(shè)計(jì)用于加密應(yīng)用中的設(shè)備的方法。
背景技術(shù):
1、在例如云計(jì)算等的背景下,用戶將原始數(shù)據(jù)上傳至不受信任的云服務(wù)器時(shí)會(huì)面臨一定的風(fēng)險(xiǎn)。因此,需要提供足夠的安全來保護(hù)用戶的數(shù)據(jù)。在數(shù)據(jù)安全的領(lǐng)域中出現(xiàn)了一種有前途的新技術(shù),即全同態(tài)加密(fhe),它允許人們?cè)诓涣私庥嘘P(guān)所加密的數(shù)據(jù)(密文)的另外的信息的情況下對(duì)該數(shù)據(jù)執(zhí)行同態(tài)計(jì)算。換言之,不需要首先對(duì)數(shù)據(jù)進(jìn)行解密。多年來,執(zhí)行fhe的方法已經(jīng)得到改進(jìn),直至已經(jīng)可以進(jìn)行實(shí)際應(yīng)用。
2、fhe算法通常在云計(jì)算服務(wù)器上執(zhí)行。然而,計(jì)算速度較慢。典型地,對(duì)fhe方案的執(zhí)行瓶頸在于乘法運(yùn)算。在fhe方案中執(zhí)行計(jì)算的密文數(shù)據(jù)是來自某個(gè)與方案相關(guān)的多項(xiàng)式環(huán)的大型多項(xiàng)式(長度為n)。這些多項(xiàng)式的典型運(yùn)算包括加法和乘法。雖然加法與多項(xiàng)式的長度成線性關(guān)系(o(n)運(yùn)算),但當(dāng)使用通用的直接技術(shù)(也稱為教科書式乘法)時(shí),乘法具有二次成本(o(n2)運(yùn)算)。
3、fhe在實(shí)際應(yīng)用中面臨的主要挑戰(zhàn)之一是其計(jì)算開銷。由于fhe方案中成本最高的運(yùn)算之一是乘法,因此提高乘法運(yùn)算速度可能會(huì)非常有助于降低計(jì)算開銷。這可以通過利用多項(xiàng)式的特定屬性來實(shí)現(xiàn)。各種經(jīng)過充分研究的算法可以用于加速這種乘法,包括數(shù)論變換(ntt)、圖姆-庫克乘法(toom-cook?multiplication)、或karatsuba乘法。使用ntt的乘法一般是這些算法中最有效的,但它也對(duì)所使用的多項(xiàng)式環(huán)施加了最嚴(yán)格的條件。因此,它不能用于每個(gè)fhe方案。
4、當(dāng)?shù)讓迎h(huán)結(jié)構(gòu)允許ntt時(shí),fhe方案典型地使用ntt進(jìn)行快速多項(xiàng)式乘法。不應(yīng)用ntt的兩個(gè)值得注意的例外是在論文“fhew:bootstrapping?homomorphic?encryption?inless?than?a?second(fhew:在不到一秒內(nèi)引導(dǎo)同態(tài)加密)”(l.ducas等人,eurocrypt,第617-640頁,2015年)中公開的fhew方案和在“tfhe:fast?fully?homomorphic?encryptionover?the?torus(tfhe:環(huán)面上的快速全同態(tài)加密)”(i.chillotti等人,j.cryptol.33,34-91,2020年)中描述的tfhe方案。它們兩者的環(huán)結(jié)構(gòu)都禁止使用ntt。相反,這些方案可以使用toom-cook乘法、karatsuba乘法、或快速傅里葉變換(fft)進(jìn)行快速多項(xiàng)式乘法,其中,典型的fft是最快的選項(xiàng)。fft變換類似于ntt變換,但對(duì)多項(xiàng)式環(huán)對(duì)fft變換的條件要求沒有那么嚴(yán)格。fhew和tfhe兩者都支持使用同態(tài)布爾代數(shù),例如,除了同態(tài)加法和乘法之外,還有nand邏輯門、xor邏輯門、和xnor邏輯門。
5、為了安全目的,fhe密文將噪聲包括在加密中。此外,每個(gè)fhe運(yùn)算都會(huì)增加密文中存在的噪聲。附加的fft量化噪聲在某種程度上是可以容忍的。量化噪聲可能源于fft使用實(shí)數(shù)工作并用浮點(diǎn)或定點(diǎn)表示近似的事實(shí)。只要不超過某個(gè)閾值噪聲水平,fhe就可以容忍這種噪聲。因此,fhe方案必須定期調(diào)用引導(dǎo)運(yùn)算來降低密文中的噪聲量,使得噪聲量保持在閾值噪聲水平以下。然而,過多的噪聲會(huì)導(dǎo)致引導(dǎo)失敗,并且因此,對(duì)fft的使用需要非常小心。
6、tfhe和fhew等方案在每個(gè)加密門之后進(jìn)行引導(dǎo)(bootstrap)。與前幾代fhe方案相比,它們以更快的引導(dǎo)算法為特征,還附加地允許使用應(yīng)用于密文的任意函數(shù)進(jìn)行編程。加密的門計(jì)算(加密的nand、xor、xnor等)主要由昂貴的(可編程)引導(dǎo)((p)bs)計(jì)算主導(dǎo)。因此,需要對(duì)引導(dǎo)應(yīng)用硬件加速。
7、pbs涉及在所謂的“外積”中連續(xù)地乘以密文數(shù)據(jù)。該外積限定了general-lwe密文與general-gsw密文之間的乘法。帶有誤差的通用學(xué)習(xí)(lwe)和general-gsw(gentry、sahai、和waters)都是完全同態(tài)加密方案。從概念上講,general-lwe密文是k+1個(gè)多項(xiàng)式的向量;general-gsw密文是(k+1)|×(k+1)個(gè)多項(xiàng)式的矩陣。在tfhe中,這些多項(xiàng)式在實(shí)環(huán)面上被定義,即它們的系數(shù)位于區(qū)間(0,1]內(nèi)。在fhew中,這些多項(xiàng)式具有整數(shù)系數(shù)。
8、“外積”的第一步是將general-lwe密文中的每個(gè)多項(xiàng)式分解成i個(gè)多項(xiàng)式。然后,以分解格式的外積可以表示為多項(xiàng)式的向量矩陣乘法。輸出也是general-lwe密文。
9、
10、在這個(gè)向量矩陣乘法中,向量(分解后的glwe密文)的維度為1×(k+1)|,矩陣(general-gsw密文)的維度為(k+1)|×(k+1),并且輸出的維度為1×(k+1)。變量k和i是加密fhe參數(shù)。
11、如已經(jīng)提及的,fhe應(yīng)用的重要特征是它們具有存在于密文數(shù)據(jù)中的固有加密數(shù)學(xué)噪聲。當(dāng)對(duì)密文數(shù)據(jù)解密時(shí),噪聲被舍入并檢索到正確的結(jié)果。類似地,外積c(x)=(c0(x(,c1(x),...,ck(x))的glwe輸出密文包含加密數(shù)學(xué)噪聲。使用快速傅里葉變換(fft)可以高效地計(jì)算多項(xiàng)式乘法。在這種情況下,由于這種固有的數(shù)學(xué)噪聲,即使在加密設(shè)置中,也可以容忍c(x)中的附加的fft量化噪聲??扇萑痰脑肼暳咳Q于加密參數(shù)集。例如,在上面所提及的i.chillotti的論文中,推導(dǎo)出針對(duì)c(x)中存在的加密噪聲的噪聲公式。
12、實(shí)數(shù)可以以多種方式用有限精度表示。在cpu上,典型的方法是使用單精度浮點(diǎn)數(shù)或雙精度浮點(diǎn)數(shù)。精度由尾數(shù)的大小限定,并且動(dòng)態(tài)范圍由指數(shù)的大小限定。由于在cpu中對(duì)浮點(diǎn)單元(fpu)的集成,因此這種方法是有效的,并且因此它對(duì)于軟件設(shè)計(jì)人員來說是典型的選定的表示方式。上面提及的tfhe和fhew方案的實(shí)現(xiàn)已經(jīng)僅限于雙精度浮點(diǎn)fft,因?yàn)榘l(fā)現(xiàn)單精度fft會(huì)引入太多噪聲。已經(jīng)發(fā)現(xiàn)雙精度浮點(diǎn)fft將引入的噪聲量保持在足夠小的水平。定點(diǎn)表示由該表示中的位數(shù)和縮放因子決定。在定點(diǎn)表示中,尾數(shù)具有固定的位數(shù)。
13、在硬件中,實(shí)現(xiàn)雙精度算法的成本很高,并且因此如果不是絕對(duì)需要,優(yōu)選地避免雙精度算法。一種便宜得多的替代方案是定點(diǎn)算法。在最先進(jìn)的解決方案中,選擇單一表示并在整個(gè)架構(gòu)中使用。此外,到目前為止,尚未利用加密設(shè)置中的輸入數(shù)據(jù)的特定屬性和針對(duì)輸出處的噪聲的特定要求。
14、在論文“matcha:a?fast?and?energy-efficient?accelerator?for?fullyhomomorphic?encryption?over?the?torus(matcha:一種用于環(huán)面上全同態(tài)加密的快速節(jié)能的加速器)”(l.jiang等人,第59屆年度設(shè)計(jì)自動(dòng)化會(huì)議,2022年7月,2022年2月17日預(yù)發(fā)布在互聯(lián)網(wǎng)上)中,呈現(xiàn)了一種用于對(duì)tfhe門進(jìn)行處理的硬件加速器,在效率方面,它優(yōu)于頻繁調(diào)用成本昂貴的雙精度浮點(diǎn)fft和ifft內(nèi)核的加速器。為了充分利用對(duì)tfhe的容錯(cuò)能力,通過使用僅需要加法和二進(jìn)制移位的近似無乘法整數(shù)fft和ifft來加速多項(xiàng)式乘法。雖然近似的fft和ifft會(huì)在每個(gè)密文中引入誤差,但由于誤差可以在解密期間與噪聲一起四舍五入,因此仍然可以對(duì)密文進(jìn)行正確地解密。整數(shù)表示可以看作是定點(diǎn)表示的經(jīng)過縮放以移除小數(shù)點(diǎn)的版本。
15、此外,在“matcha”方法中,為fft和ifft選擇單一表示。通過對(duì)解密失敗進(jìn)行多次測試來完成驗(yàn)證噪聲是否保持足夠小。然而,在構(gòu)成多項(xiàng)式乘法的步驟序列中,使用單一表示忽略了每個(gè)運(yùn)算對(duì)輸出噪聲的貢獻(xiàn)不同這一事實(shí),這取決于所處理的數(shù)據(jù)。此外,將fft噪聲與數(shù)學(xué)外積噪聲相匹配允許比僅對(duì)解密失敗的測試更細(xì)粒度的噪聲控制和優(yōu)化。
16、因此,設(shè)計(jì)用于加密應(yīng)用中的設(shè)備的方法還有改進(jìn)的空間。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的實(shí)施方式的目的是提供設(shè)計(jì)用于在加密應(yīng)用中執(zhí)行多項(xiàng)式的乘法的設(shè)備的方法,其中,考慮到加密應(yīng)用中數(shù)據(jù)的特殊性并且其中內(nèi)置了一定程度的靈活性。
2、上面的目的是通過根據(jù)本發(fā)明的解決方案來實(shí)現(xiàn)的。
3、在第一方面,本發(fā)明涉及一種設(shè)計(jì)用于在加密應(yīng)用中執(zhí)行多項(xiàng)式的乘法的設(shè)備的方法。該方法首先將對(duì)多項(xiàng)式的乘法的執(zhí)行劃分到互連的至少兩個(gè)數(shù)據(jù)處理階段上,其中,至少一個(gè)數(shù)據(jù)處理階段被配置成接收輸入操作數(shù)以執(zhí)行所述乘法,并且至少一個(gè)數(shù)據(jù)處理階段被配置成提供所述乘法的輸出信號(hào)。該方法還包括:
4、-針對(duì)每個(gè)數(shù)據(jù)處理階段限定與該數(shù)據(jù)處理階段要處理的數(shù)據(jù)的表示相關(guān)的一個(gè)或更多個(gè)參數(shù),
5、-針對(duì)所述乘法的輸出信號(hào)限定一個(gè)或更多個(gè)約束,
6、-針對(duì)每個(gè)數(shù)據(jù)處理階段單獨(dú)地確定針對(duì)所述一個(gè)或更多個(gè)參數(shù)的值,其中考慮了所述一個(gè)或更多個(gè)約束,
7、-將在所述數(shù)據(jù)處理階段中的每個(gè)數(shù)據(jù)處理階段中所確定的針對(duì)所述一個(gè)或更多個(gè)參數(shù)的值應(yīng)用于在加密應(yīng)用中執(zhí)行多項(xiàng)式的乘法的所述設(shè)備中。
8、所提出的解決方案確實(shí)允許設(shè)計(jì)用于執(zhí)行多項(xiàng)式的乘法的設(shè)備的各個(gè)數(shù)據(jù)處理階段,使得每個(gè)階段都有其自己的、優(yōu)選地優(yōu)化的參數(shù)集。如此確定的參數(shù)集允許在給定表示類型(例如,定點(diǎn)或浮點(diǎn))的情況下以最佳方式表示執(zhí)行乘法時(shí)使用的變量,從而滿足關(guān)于輸出信號(hào)的一個(gè)或更多個(gè)約束。
9、優(yōu)選地,輸入操作數(shù)是多項(xiàng)式的向量。第二輸入操作數(shù)則是多項(xiàng)式的矩陣,其可以預(yù)先計(jì)算到fft域中。
10、在優(yōu)選實(shí)施方式中,一個(gè)或更多個(gè)參數(shù)包括{位寬,動(dòng)態(tài)范圍,整數(shù)部分的大小,小數(shù)部分的大小,小數(shù)點(diǎn)的位置}中的一個(gè)或更多個(gè)。
11、有利地,該設(shè)備是可重新配置的。
12、在一個(gè)實(shí)施方式中,設(shè)計(jì)設(shè)備的方法包括將所述多項(xiàng)式乘法分解成多個(gè)子任務(wù)的步驟,其中,每個(gè)數(shù)據(jù)處理階段執(zhí)行至少一個(gè)子任務(wù)。
13、在該方法的實(shí)施方式中,劃分在至少兩個(gè)數(shù)據(jù)處理階段上取決于所述設(shè)備的硬件實(shí)現(xiàn)。在有利的實(shí)施方式中,該設(shè)備具有包括形成流水線的多個(gè)連續(xù)階段的架構(gòu)。然后,該設(shè)備可以應(yīng)用在現(xiàn)場可編程門陣列中。
14、在優(yōu)選實(shí)施方式中,將最大噪聲水平視為所述約束中的一個(gè)約束。
15、有利地,多項(xiàng)式的乘法是全同態(tài)加密方案的部分。
16、在一些實(shí)施方式中,借助于模擬來執(zhí)行所述針對(duì)每個(gè)數(shù)據(jù)處理階段單獨(dú)地確定參數(shù)值的步驟。
17、在該方法的實(shí)施方式中,通過確定所述要處理的數(shù)據(jù)的一個(gè)或更多個(gè)屬性,來執(zhí)行針對(duì)每個(gè)數(shù)據(jù)處理階段單獨(dú)地確定所述值的步驟,確定所述要處理的數(shù)據(jù)的一個(gè)或更多個(gè)屬性是基于對(duì)所述一個(gè)或更多個(gè)屬性的所述一個(gè)或更多個(gè)約束造成影響的噪聲源的模型并且/或者基于所述數(shù)據(jù)處理階段的子任務(wù)的輸入的至少一個(gè)屬性來進(jìn)行的。
18、在一個(gè)實(shí)施方式中,一個(gè)噪聲源可能源自移除位于上述數(shù)據(jù)處理階段的子任務(wù)的輸入的最低有效位側(cè)的位。一個(gè)噪聲源可能源自丟棄位于數(shù)據(jù)處理階段的子任務(wù)的輸入的最高有效位側(cè)的位。
19、在一些實(shí)施方式中,使用負(fù)循環(huán)卷積來執(zhí)行多項(xiàng)式的乘法。
20、在優(yōu)選實(shí)施方式中,數(shù)據(jù)的表示是定點(diǎn)表示。
21、為了概括本發(fā)明及其相對(duì)于現(xiàn)有技術(shù)的優(yōu)勢(shì),上面對(duì)本發(fā)明的某些目的和優(yōu)勢(shì)進(jìn)行了描述。當(dāng)然,應(yīng)理解的是,并非所有這樣的目的或優(yōu)勢(shì)都可以根據(jù)本發(fā)明的任何特定實(shí)施方式實(shí)現(xiàn)。因此,例如,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,本發(fā)明可以以實(shí)現(xiàn)或優(yōu)化如本文所教導(dǎo)的一個(gè)優(yōu)勢(shì)或一組優(yōu)勢(shì)的方式實(shí)施或執(zhí)行,而不必實(shí)現(xiàn)本文所教導(dǎo)或建議的其他目的或優(yōu)勢(shì)。
22、參照下文所描述的一個(gè)或更多個(gè)實(shí)施方式,本發(fā)明的上面和其他方面將變得明顯并得以闡明。