本說明書實施例屬于數(shù)據(jù)處理,尤其涉及一種進行同態(tài)函數(shù)運算的方法和計算設(shè)備。
背景技術(shù):
1、同態(tài)加密算法理論上可以支持任意的計算,例如矩陣向量乘運算,神經(jīng)網(wǎng)絡(luò)中的激活函數(shù),以及隱私信息檢索和隱私信息求交等等。當處理大精度和復雜的任務(wù)電路時,全同態(tài)加密(fully?homomorphic?encryption,fhe)方案都依賴于一個核心操作——自舉(bootstrapping),這是gentry在2009年提出的第一個fhe解決方案中定義的概念。自舉的目的是刷新密文,降低密文的噪聲水平,防止同態(tài)計算過程中噪音膨脹過大導致解密失敗。自舉算法始終是fhe應(yīng)用中最耗時的部分。fhew和tfhe是目前最實用的fhe方案之一,布爾類型的全同態(tài)加密算法。tfhe目前是所有全同態(tài)加密方案中自舉延遲最低的,門自舉僅需約13ms。相比之下,bfv、bgv方案的自舉算法需要幾分鐘;ckks需要幾秒鐘,并且以精度損失為代價。fhew和tfhe方案在處理大精度的函數(shù)運算時更有優(yōu)勢,本質(zhì)上,它可以在自舉的時候嵌入任意一個查表函數(shù),即函數(shù)自舉(functional?bootstrapping,fbs)。函數(shù)自舉的方案例如可用于評估神經(jīng)網(wǎng)絡(luò)中的非線性函數(shù),如sigmoid、relu等。
2、然而,函數(shù)自舉(fbs)只能評估單個輸入的函數(shù),限制了函數(shù)自舉技術(shù)的使用。隨后,等人將函數(shù)自舉擴展為基于樹的自舉(tree-basedfunctionalbootstrapping,tfbs),其可以計算任意大的函數(shù),其中,該函數(shù)可包括任意數(shù)目的變量。然而,該基于樹的函數(shù)自舉(tfbs)的計算代價非常大。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于提供一種進行同態(tài)函數(shù)運算的方法,通過結(jié)合電路自舉和函數(shù)自舉算法,以更小的計算成本進行同態(tài)函數(shù)運算中的自舉。
2、本說明書第一方面提供一種進行同態(tài)函數(shù)運算的方法,所述同態(tài)函數(shù)運算對應(yīng)的函數(shù)至少包括第一變量和第二變量,所述方法包括:
3、獲取第一明文的第一lwe密文,所述第一明文為所述第一變量的代入值;
4、生成與所述第一變量對應(yīng)的若干第一測試多項式的rlwe密文,各個所述第一測試多項式基于所述函數(shù)的查找表生成,所述查找表包括與所述函數(shù)的不同變量值對應(yīng)的第一函數(shù)值;
5、基于所述第一lwe密文生成第一rgsw密文,所述第一rgsw密文與包括第一項的多項式對應(yīng),所述第一項的冪次為所述第一明文的負數(shù);
6、計算各個第一測試多項式的rlwe密文與所述第一rgsw密文的外積,得到若干第一rlwe密文;
7、基于所述若干第一rlwe密文計算所述函數(shù)的與所述第一明文對應(yīng)的第二函數(shù)值的lwe密文。
8、本說明書第二方面提供一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,當所述計算機程序在計算機中執(zhí)行時,令計算機執(zhí)行第一方面所述的方法。
9、本說明書第三方面提供一種計算設(shè)備,包括存儲器和處理器,所述存儲器中存儲有可執(zhí)行代碼,所述處理器執(zhí)行所述可執(zhí)行代碼時,實現(xiàn)第一方面所述的方法。
10、本說明書第四方面提供一種計算機程序產(chǎn)品,包括計算機程序/指令,該計算機程序/指令被處理器執(zhí)行時實現(xiàn)第一方面所述方法的步驟。
11、本說明書實施例提供一種進行同態(tài)函數(shù)運算的方法,該方法中構(gòu)造了一種新的樹型自舉的框架,通過使用電路自舉變體算法將lwe密文轉(zhuǎn)換為rgsw密文,從而可以以rlwe密文與rgsw密文的外積操作代替函數(shù)自舉中的盲旋轉(zhuǎn)過程,減少了計算量,提高了自舉的效率。
1.一種進行同態(tài)函數(shù)運算的方法,所述同態(tài)函數(shù)運算對應(yīng)的函數(shù)至少包括第一變量和第二變量,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,所述方法還包括:獲取第二明文的第二lwe密文,所述第二明文為所述第二變量的代入值;基于所述第二lwe密文生成第二rgsw密文,其中,所述第二rgsw密文與包括第二項的多項式對應(yīng),所述第二項的冪次為所述第二明文的負數(shù);
3.根據(jù)權(quán)利要求2所述的方法,還包括:
4.根據(jù)權(quán)利要求2所述的方法,所述函數(shù)包括d個變量,所述第一變量對應(yīng)的若干第一測試多項式的數(shù)目基于所述函數(shù)包括的多個變量的數(shù)目、所述函數(shù)空間的模以及所述第一變量在所述d個變量中的排列順序確定。
5.根據(jù)權(quán)利要求4所述的方法,所述基于所述若干第一rlwe密文生成第二測試多項式的rlwe密文,包括:基于所述若干第一rlwe密文生成多個第二測試多項式的rlwe密文。
6.根據(jù)權(quán)利要求1所述的方法,所述基于所述第一lwe密文生成第一rgsw密文包括:
7.根據(jù)權(quán)利要求6所述的方法,所述基于所述第一lwe密文進行多次函數(shù)自舉,得到多個第三rlwe密文,包括:
8.根據(jù)權(quán)利要求2所述的方法,所述基于所述若干第一rlwe密文生成第二測試多項式的rlwe密文包括:
9.根據(jù)權(quán)利要求2所述的方法,所述基于所述第二rlwe密文獲取所述函數(shù)的與所述第一明文和所述第二明文對應(yīng)的第二函數(shù)值的lwe密文包括:從所述第二rlwe密文獲取第二常數(shù)項作為所述函數(shù)的與所述第一明文和所述第二明文對應(yīng)的第二函數(shù)值的lwe密文。
10.一種計算設(shè)備,包括存儲器和處理器,所述存儲器中存儲有可執(zhí)行代碼,所述處理器執(zhí)行所述可執(zhí)行代碼時,實現(xiàn)權(quán)利要求1-9中任一項所述的方法。