天天看點

Paillier半同态加密:原理、高效實作方法和應用

Paillier半同态加密:原理、高效實作方法和應用

作者 | 峰青,DT可信計算

來源 | 阿裡技術公衆号

一 簡介

1 背景

《資料安全法》已于9月1日起正式實施,兩個月後《個人資訊保護法》也将開始施行,意味着資料安全和隐私保護方面的監管将會在年内陸續到位。 在合規收緊大背景下,“資料孤島”現象日漸明顯。如何實作安全的資料流通,保護資料隐私并發揮資料的價值,支援多方的聯合計算,是各大資料平台亟需解決的問題。而隐私計算技術旨在實作“資料可用不可見”的目标,具有廣闊的應用前景。在聯合國隐私增強計算技術手冊[35]中,列出了同态加密(Homomorphic Encryption, HE)、安全多方計算(Secure Multiparty Computation, MPC)等5種隐私計算技術,其中HE提供了對加密資料進行處理的能力,完美符合隐私計算的計算模式,是目前學術研究的熱點,受到了廣泛的關注。

2 何為同态加密(HE)?

HE是一種特殊的加密方法,它允許直接對加密資料執行計算,如加法和乘法,而計算過程不會洩露原文的任何資訊。計算的結果仍然是加密的,擁有密鑰的使用者對處理過的密文資料進行解密後,得到的正好是處理後原文的結果。

根據支援的計算類型和支援程度,同态加密可以分為以下三種類型:

  • 半同态加密(Partially Homomorphic Encryption, PHE):隻支援加法或乘法中的一種運算。其中,隻支援加法運算的又叫加法同态加密(Additive Homomorphic Encryption, AHE);
  • 部分同态加密(Somewhat Homomorphic Encryption, SWHE):可同時支援加法和乘法運算,但支援的計算次數有限;
  • 全同态加密(Fully Homomorphic Encryption, FHE):支援任意次的加法和乘法運算。

在同态加密概念被Rivest在1978年首次提出[15]後,學術界出現了多個支援PHE的方案,如RSA、GM[13]、Elgamal[14]、Paillier[1]。此後,SWHE方案也相繼問世,如BGN[16]。關于FHE如何實作,學術界在很長的時間都沒有答案。直到2009年,Gentry[28]使用理想格構造了第一個FHE方案,轟動了整個學術界,并引發了學者們對于FHE方案構造的研究熱潮。此後相繼湧現出多個優秀的FHE方案,包括BFV[36]、BGV[37]、CKKS[38]等,以及多個優秀的開源算法庫如SEAL[39]、HELib[40]等。

3 為何需要半同态加密(PHE)?

通用安全計算方法有所不足

隐私計算的應用場景非常廣泛,除滿足多方的通用計算(算數或布爾計算)功能外,還有如隐私集合求交(Private Set Intersection, PSI)[17]、隐私保護機器學習[4]、加密資料庫查詢[9]、門限簽名[3]等等更加細分的應用。然而,在幾種主要的通用計算技術路線中,每種方法各有各的效率/安全性缺陷。FHE在計算有限次乘法後需要較複雜的去除噪聲的操作,經典的通用MPC協定通信開銷較大,而TEE的安全性高度依賴于硬體廠商,無法提供密碼學上嚴謹的安全性。在複雜的計算場景中,單獨使用某種通用方法通常得不到一個可用的落地方案,這也激發了學者們研究對于特定場景的特定解法。一個可行的方案通常是根據具體場景來進行定制化的設計,通過組合、優化不同的技術元件來得到安全、高效的方案,精準滿足該場景需求。

PHE登場:輔助多種隐私計算場景

Paillier半同态加密:原理、高效實作方法和應用

圖1.1. PHE的應用場景

由于通用安全計算方法的一些不足,以及在一些特定場景隻需要使用一種HE運算(如加法)即可完成功能,PHE在隐私計算領域得到了大量使用,在多個開源庫(如FATE[31])和大量學術頂會(如S&P、NDSS等41811)的方案中都有它的身影。PHE的高效、支援無限次加法或乘法的特點,使其成為隐私計算的重要基本元件,可輔助完成多種隐私計算功能:

1)隐私保護資料聚合

由于加法PHE可以在密文上直接執行加和操作,不洩露明文,在到多方協作的統計場景中,可完成安全的統計求和的功能。

  • 在聯邦學習中,不同參與方訓練出的模型參數可由一個第三方進行統一聚合。使用加法PHE,可以在明文資料不出域、且不洩露參數的情況下,完成對模型參數的更新,此方法已應用在實際應用(如FATE[31])和多個頂會工作中(如SIGMOD[4]、KDD[7]、ATC[18]);
  • 在線上廣告投放的場景中,廣告主(如商家)在廣告平台(如媒體)投放線上廣告,并希望計算廣告點選的轉化收益。然而,廣告點選資料集和購買資料集分散在廣告主和廣告平台兩方。使用PHE加密結合隐私集合求和(Private Intersection-Sum-with-Cardinality, PIS-C)協定[19]可以在保護雙方隐私資料的前提下,計算出廣告的轉化率。 該方案已被Google落地應用[20];
  • 在加密資料庫SQL查詢場景,在資料庫不可信的情況下,可以通過部署協定和代理來保護請求者的查詢隐私。其中,PHE可以用來完成安全資料求和和均值的查詢[9]。

2)乘法三元組生成

通用安全計算根據計算電路的不同可分為算數計算和布爾計算,對于算數計算來說,其中的難點是如何做乘法。而使用預生成的乘法三元組來輔助乘法運算的方法可以大大降低乘法的線上開銷,是目前最為流行的方法。PHE是用于計算乘法三元組的重要工具2,已在多個頂會方案(如NDSS[11]、S&P[21])和實際産品(如Sharemind[2])中得到應用,對于加速安全計算具有重要意義。

3)構造特定的隐私保護協定

在機器學習預測分類場景中,若擁有模型的一方不可信(如外部廠商),在資料方輸入樣本進行預測分類時,可能需要保護樣本資料的隐私。PHE作為building block可以構造出隐私保護比較協定和argmax協定,并可以此進一步構造出隐私保護樸素貝葉斯分類器和超平面決策分類器[24]。此外,用PHE還可構造出不經意選擇(Oblivious Selection)協定,來支援隐私保護決策樹分類器[25]。

4)門限簽名

傳統簽名方式要求簽名時從存儲媒體(如磁盤)中拉取完整私鑰到記憶體,存在洩露風險(如被木馬、病毒竊取,側信道攻擊等)。 使用門限簽名可以有效規避此類風險,讓多方協作完成簽名過程,并確定私鑰沒有在任何一方被恢複。特定的PHE算法可以用于實作門限簽名[3],相關方案已在集團密鑰管理系統落地[22]。

5)同态秘密分享

同态秘密分享是一種前沿的安全計算技術,可以用來大幅降低安全計算的互動通信量。具有特定代數結構的PHE方案經過特殊設計,可以用來實作同态秘密分享[10],具有廣闊的應用前景。

6)隐私集合求交

使用PHE結合多項式的方法可構造出PSI協定[17]。

4 Paillier:最著名的半同态加密方案

Paillier是一個支援加法同态的公鑰密碼系統 [1],由Paillier在1999年的歐密會(EUROCRYPT)上首次提出。此後,在PKC'01中提出了Paillier方案的簡化版本26,是目前Paillier方案的最優方案。在衆多PHE方案中,Paillier方案由于效率較高、安全性證明完備的特點,在各大頂會和實際應用中被廣泛使用,是隐私計算場景中最常用的PHE執行個體化方案之一。

其他的支援加法同态的密碼系統還有DGK [5]、OU [6]和基于格密碼的方案[12]等。其中,DGK方案的密文空間相比Paillier更小,加解密效率更高,但由于算法的正确性和安全性在學術界沒有得到廣泛研究和驗證,且我們的實驗表明算法的加解密部分存在缺陷,不推薦在工業界代碼中使用。OU和基于格的加法同态計算效率更高,也是PHE不錯的候選項。其中OU的在方案中的使用頻率相對較低,而基于格的方案密文大小較大,在一些特定場景有自身的優勢。

資料技術及産品部-資料安全生産平台團隊對Paillier加密方案的原理和高效實作方法開展了研究,利用多種優化方法實作了目前最優的Paillier加解密效率,可助力基于Paillier加密的上層協定在集團真實業務場景中落地。

二 Paillier方案原理

1 加法同态加密定義

在描述具體方案之前,我們先定義加法PHE。首先列舉方案具有的所有算法。

  • KeyGen():密鑰生成算法。用于産生加密資料的公鑰PK(Public Key)和私鑰SK(Secret Key),以及一些公開常數PP(Public Parameter);
  • Encrypt():加密算法。使用PK對使用者資料Data進行加密,得到密文CT(Ciphertext);
  • Decrypt():解密算法。用于解密得到資料原文PT(Plaintext)。

HE除了加解密以外,還具有在密文上進行處理的能力,是以還應擁有“處理”算法。對于加法PHE,支援的算法有同态加以及同态标量乘(标量乘法可看作多次加法)。

  • Add():同态加算法。輸入兩個CT進行同态加運算。
  • ScalaMul():同态标量乘算法。輸入一個CT和一個标量PT,計算CT的标量乘結果。

2 Paillier方案描述

原版Paillier方案于論文[1]中提出,下面對方案進行描述:

密鑰生成

Paillier半同态加密:原理、高效實作方法和應用

加密

Paillier半同态加密:原理、高效實作方法和應用

解密

Paillier半同态加密:原理、高效實作方法和應用

同态加

Paillier半同态加密:原理、高效實作方法和應用

同态标量乘

Paillier半同态加密:原理、高效實作方法和應用

3 正确性和安全性

加解密正确性

Paillier半同态加密:原理、高效實作方法和應用

同态加正确性

Paillier半同态加密:原理、高效實作方法和應用

同态标量乘正确性

Paillier半同态加密:原理、高效實作方法和應用

安全性

Paillier方案滿足加密方案的标準安全定義:語義安全,即在選擇明文攻擊下的密文的不可區分性(IND-CPA)。直覺地說,就是密文不會洩露明文中的任意資訊。方案安全性可以歸約到判定性合數剩餘假設(Decisional Composite Residuosity Assumption, DCRA),即給定一個合數n和整數z,判定z是否在n^2下是否是n次剩餘是困難的。這個假設經過了幾十年的充分研究,到目前為止還沒有多項式時間的算法可以攻破,是以Paillier加密方案的安全性被認為相當可靠。

詳細的安全性證明可以參見論文,這裡不再贅述1。

三 高效實作

1 優化參數選擇

根據論文 [23]中的描述,在不影響算法正确性的前提下,為了簡化運算,算法在密鑰生成階段可以取g=n+1。此後,加密過程中的計算g^m的部分可進行如下簡化:

對于g^m=(n+1)^m, 根據二項定理[43],由于:

Paillier半同态加密:原理、高效實作方法和應用

前m-1項均是n^2的倍數,在模n^2下消去,故這裡模指數運算簡化為了1次模乘,加速了加密過程:

Paillier半同态加密:原理、高效實作方法和應用

2 使用Paillier-DJN優化方案

Paillier半同态加密:原理、高效實作方法和應用
Paillier半同态加密:原理、高效實作方法和應用

圖3.1 優化1和優化2

3 使用中國剩餘定理(CRT)加速模指數

定理介紹

Paillier半同态加密:原理、高效實作方法和應用

使用CRT計算模指數過程舉例

Paillier半同态加密:原理、高效實作方法和應用

CRT應用到Paillier加解密過程

Paillier半同态加密:原理、高效實作方法和應用
Paillier半同态加密:原理、高效實作方法和應用

圖3.2 使用CRT進行優化

若使用CRT進行計算加速,計算方必需要知道模數n^2的分解(p^2、q^2)。而(p^2、q^2)為私鑰的部分,故我們可以直接将CRT應用到解密過程。 而對于加密過程來說,我們根據加密者是否擁有私鑰,将加密算法設計為兩類,分别為公鑰加密算法Enc1(pk,m)和私鑰加密算法Enc2(pk,sk,m)。若加密消息的一方隻擁有公鑰,則調用标準的公鑰加密算法Enc1(pk,m)進行加密;若加密的一方同時擁有公鑰和私鑰,則可以調用私鑰加密算法Enc2(pk,sk,m),輸入私鑰的(p^2、q^2)來使用CRT加速加密過程。

我們對使用CRT後的優化效果進行測試。由于DJN方案嚴格優于Paillier原版方案,我們隻将CRT應用到DJN。經測試,使用CRT後,DJN的私鑰加密和解密性能提升約90%,具體資料見表4.2。

4 預計算

  • 對于fixed-base情況,進行指數預計算來加速模乘
Paillier半同态加密:原理、高效實作方法和應用
在Java上,若使用上述按單個bit展開的方法,|n|/2次(|n|=3072)耗時比1次模指數要長,沒有達到優化計算的效果。
Paillier半同态加密:原理、高效實作方法和應用

在存儲空間有限時,可以采用更輕量級的預計算方法來減小存儲開銷41,在c/c++下預計可以達到一定加速效果。

這裡的模乘我們使用Java中的Biginteger.multiply(),模指數使用Biginteger.modpow()。

Paillier半同态加密:原理、高效實作方法和應用

圖3.3 預計算

  • 在加解密時會重複用到的變量,都在密鑰生成過程提前計算并儲存,以避免加解密時的重複運算。

5 使用JNI技術

Java執行複雜計算的效率通常不及C/C++。以密碼學計算中常見的模指數為例,在設定模數n、底數b和指數e均為2048bits的情況下,在Java中執行1000次Biginteger.modPow()需要耗時3000ms,而在C++下使用GMP庫的mpz_powm()跑隻需1800ms,相比Java,性能提升了約60%。 我們希望可以把Paillier中耗時的加解密計算通過調用C++執行來提速。

Java 本地接口(Java Native Interface, JNI)是Java語言的本地程式設計接口,它提供了若幹的API,使得Java可以與其他語言(如C/C++)程式進行互相調用,來實作Java不便實作的功能或難以達到的效率。

有了JNI這座橋梁,我們就可以将複雜耗時的計算子產品用效率更高的C/C++實作,通過JNI來實作Java對算法的高效調用。我們對原版Paillier方案和優化後的Djn算法都開發了JNI調用的版本,用C++編寫核心算法,并通過Java包裝類使用JNI對C++庫進行調用。應用JNI後,加解密過程的效率獲得了顯著提升,具體資料見表4.2。

使用JNI調用C++庫提升效率的代價是會喪失程式的可移植性(C/C++是非跨平台語言),故是否使用JNI要根據場景靈活選擇。
Paillier半同态加密:原理、高效實作方法和應用

圖3.4 JNI

6 打包

為了確定安全強度,Paillier方案中的明文空間大小為固定的n(如3072bits),而待加密的明文可能屬于較小的空間(如16bits)。在這種情況下,如果按照正常的加密方式,将1個明文加密為1個密文,則明文空間會存在很高的備援(等同于先在16bits明文的高位填充0,編碼到3072bits,再進行加密),在加密時間和空間上效率都很低。

為了避免備援,在明文較短且定長的情況下,我們充分利用明文空間,将多個明文打包為1個進行加解密 2。具體過程如下:

Paillier半同态加密:原理、高效實作方法和應用

相比原來的1次隻加密1個明文,使用打包優化後,密文大小和加解密中的模指數時間消耗降低為原來的1/k。該優化的效果取決于明文長度,本文中暫不作實驗測試。

Paillier半同态加密:原理、高效實作方法和應用

圖3.5 打包

四 測試結果

1 測試條件

Paillier半同态加密:原理、高效實作方法和應用

表4.1. 測試條件

2 性能

Paillier半同态加密:原理、高效實作方法和應用

表4.2:Paillier密鑰生成、加密、解密性能在不同優化下的表現

Paillier半同态加密:原理、高效實作方法和應用

圖4.1 Paillier半同态加密優化效果

從表4.2和圖4.1中可以看到,DJN優化方案加解密的效率相比原版方案提升了大約100%。當使用CRT優化後,私鑰加密和解密的效率繼續提升約90%。當CRT和Fixed-base預計算同時使用時,随着視窗大小w的增大,公鑰加密的效率進一步提升;使用JNI調用C同樣可以大大降低計算開銷,相比純Java提升幅度達60%以上,提升幅度在結合使用Fixed-base優化時尤為明顯。特别地,當同時使用DJN+CRT+Fixed-base(w=8)+JNI優化時,公/私鑰加密的時間消耗從原版方案的37ms,分别下降到約2ms/1ms,實作了質的飛躍。随着不同優化的運用,密鑰生成(預計算)的時間會随着變長,但該部分為一次性消耗,相比大量資料的加解密時間可以忽略不計。

3 預計算List大小

使用Fixed-base預計算優化需要提前生成預計算list,list占用的空間大小與視窗大小w的大小見表4.3。

Paillier半同态加密:原理、高效實作方法和應用

表4.3:Paillier預計算List的大小與視窗大小w的關系

五 與現有開源庫的對比

Paillier半同态加密:原理、高效實作方法和應用

表5.1. 本工作與一些現有開源庫的對比

六 PHE的應用:一個實際的例子

1 業務場景

在商業廣告的線上投放場景中,廣告主(如商家)在廣告平台(如媒體平台)上投放廣告曝光産品,而使用者點選廣告後可能會産生購買行為,實作廣告轉化變現。為了評估廣告在該平台投放的實際收益,需要統計在點選了廣告的使用者中,共産生了多少消費金額。然而,“點選廣告”的使用者資料集在廣告平台側,而“發生購買”的使用者資料集在廣告主側。 由于法律合規和商業機密因素的影響,雙方可能不願意分享原文資料進行合作。

2 隐私訴求

  • 不能洩露雙方交集的個體使用者資訊,否則不滿足法律規定的“最小夠用”原則,故“先進行PSI再求和”的方法不可取。
  • 不能洩露交易金額給廣告平台方。

3 解法:Private Intersection-Sum-with-Cardinality (PIS-C)

PIS-C協定[19]于在EuroS&P'20會議上被提出,其核心思想是通過"Tag, Shuffle and Aggregate"過程,将PSI協定和PHE轉化為PIS-C協定,使得廣告主最終得到交集value的聚合結果,確定沒有額外資料洩露(具體過程參見原論文)。

Paillier半同态加密:原理、高效實作方法和應用

圖6.1. 基于DDH的PIS-C協定流程

PHE在該協定中扮演着核心作用。協定中的“隐私保護求和”功能依賴于廣告主将自己的交易資料用PHE加密發送給廣告平台, 使得廣告平台在看不到原始資料的前提下,完成對交集中資料金額的聚合。該方案已被Google落地[20]。除了廣告場景外,還可以用于多種“行為資料和效益資料分離”的商業場景,在應用上有着很大的想象空間。

七 關于我們

資料技術及産品部-資料安全生産平台緻力于前沿隐私計算技術的研究與落地,與阿裡雲共同研發的DataTrust隐私計算産品是信通院大資料産品能力測評中唯一同時獲得“多方安全計算”、“可信執行環境”、“聯邦學習”等4項測評通過的産品,已服務于經濟體内外多個實際業務。如有隐私計算相關的技術合作意願/業務需求/轉崗意願,歡迎垂詢。

參考文獻

[1] Paillier P. Public-key cryptosystems based on composite degree residuosity classes[C]//International conference on the theory and applications of cryptographic techniques. Springer, Berlin, Heidelberg, 1999: 223-238.

[2] Pullonen P, Bogdanov D, Schneider T. The design and implementation of a two-party protocol suite for Sharemind 3[J]. CYBERNETICA Institute of Information Security, Tech. Rep, 2012, 4: 17.

[3] Lindell Y. Fast secure two-party ECDSA signing[C]//Annual International Cryptology Conference. Springer, Cham, 2017: 613-644.

[4] Fu F, Shao Y, Yu L, et al. VF2Boost: Very Fast Vertical Federated Gradient Boosting for Cross-Enterprise Learning[C]//Proceedings of the 2021 International Conference on Management of Data. 2021: 563-576.

[5] Damgård I, Geisler M, Krøigaard M. Efficient and secure comparison for on-line auctions[C]//Australasian conference on information security and privacy. Springer, Berlin, Heidelberg, 2007: 416-430.

[6] Okamoto T, Uchiyama S. A new public-key cryptosystem as secure as factoring[C]//International conference on the theory and applications of cryptographic techniques. Springer, Berlin, Heidelberg, 1998: 308-318.

[7] Chen C, Zhou J, Wang L, et al. When homomorphic encryption marries secret sharing: Secure large-scale sparse logistic regression and applications in risk control[J]. arXiv preprint arXiv:2008.08753, 2020.

[8] Damgård I, Jurik M, Nielsen J B. A generalization of Paillier’s public-key system with applications to electronic voting[J]. International Journal of Information Security, 2010, 9(6): 371-385.

[9] Popa R A, Redfield C M S, Zeldovich N, et al. CryptDB: Protecting confidentiality with encrypted query processing[C]//Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles. 2011: 85-100.

[10] Orlandi C, Scholl P, Yakoubov S. The Rise of Paillier: Homomorphic Secret Sharing and Public-Key Silent OT[C]//Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, Cham, 2021: 678-708.

[11] Demmler D, Schneider T, Zohner M. ABY-A framework for efficient mixed-protocol secure two-party computation[C]//NDSS. 2015.

[12] Rathee D, Schneider T, Shukla K K. Improved multiplication triple generation over rings via RLWE-based AHE[C]//International Conference on Cryptology and Network Security. Springer, Cham, 2019: 347-359.

[13] Shafi G, Silvio M. Probabilistic encryption & how to play mental poker keeping secret all partial information[C]//Proceedings of the 14th Annual ACM Symposium on Theory of Computing. 1982: 365-77.

[14] ElGamal T. A public key cryptosystem and a signature scheme based on discrete logarithms[J]. IEEE transactions on information theory, 1985, 31(4): 469-472.

[15] Rivest R L, Adleman L, Dertouzos M L. On data banks and privacy homomorphisms[J]. Foundations of secure computation, 1978, 4(11): 169-180.

[16] Boneh D, Goh E J, Nissim K. Evaluating 2-DNF formulas on ciphertexts[C]//Theory of cryptography conference. Springer, Berlin, Heidelberg, 2005: 325-341.

[17] Freedman M J, Nissim K, Pinkas B. Efficient private matching and set intersection[C]//International conference on the theory and applications of cryptographic techniques. Springer, Berlin, Heidelberg, 2004: 1-19.

[18] Zhang C, Li S, Xia J, et al. Batchcrypt: Efficient homomorphic encryption for cross-silo federated learning[C]//2020 {USENIX} Annual Technical Conference ({USENIX}{ATC} 20). 2020: 493-506.

[19] Ion M, Kreuter B, Nergiz A E, et al. On deploying secure computing: Private intersection-sum-with-cardinality[C]//2020 IEEE European Symposium on Security and Privacy (EuroS&P). IEEE, 2020: 370-389.

[20]

https://security.googleblog.com/2019/06/helping-organizations-do-more-without-collecting-more-data.html

[21] Mohassel P, Zhang Y. Secureml: A system for scalable privacy-preserving machine learning[C]//2017 IEEE symposium on security and privacy (SP). IEEE, 2017: 19-38.

[22]

https://zhuanlan.zhihu.com/p/76158563

[23] Catalano D, Gennaro R, Howgrave-Graham N, et al. Paillier's cryptosystem revisited[C]//Proceedings of the 8th ACM Conference on Computer and Communications Security. 2001: 206-214.

[24] Bost R, Popa R A, Tu S, et al. Machine learning classification over encrypted data[C]//NDSS. 2015, 4324: 4325.

[25] Kiss Á, Naderpour M, Liu J, et al. SoK: Modular and efficient private decision tree evaluation[J]. Proceedings on Privacy Enhancing Technologies, 2019.

[26] Damgård I, Jurik M. A generalisation, a simplification and some applications of Paillier's probabilistic public-key system[C]//International workshop on public key cryptography. Springer, Berlin, Heidelberg, 2001: 119-136.

[27] Acar A, Aksu H, Uluagac A S, et al. A survey on homomorphic encryption schemes: Theory and implementation[J]. ACM Computing Surveys (CSUR), 2018, 51(4): 1-35.

[28] Gentry C. A fully homomorphic encryption scheme[M]. Stanford university, 2009.

[29]

https://www.keylength.com/en/4/

[30]

https://github.com/FISCO-BCOS/paillier-lib

[31]

https://github.com/FederatedAI/FATE

[32]

https://github.com/data61/python-paillier

[33]

http://hms.isi.jhu.edu/acsc/libpaillier/

[34]

https://github.com/encryptogroup/ABY

[35] Big Data UN Global Working Group. Un handbook on privacy-preserving computation techniques[J]. 2019.

[36] Fan J, Vercauteren F. Somewhat practical fully homomorphic encryption[J]. IACR Cryptol. ePrint Arch., 2012, 2012: 144.

[37] Brakerski Z, Gentry C, Vaikuntanathan V. (Leveled) fully homomorphic encryption without bootstrapping[J]. ACM Transactions on Computation Theory (TOCT), 2014, 6(3): 1-36.

[38] Cheon J H, Kim A, Kim M, et al. Homomorphic encryption for arithmetic of approximate numbers[C]//International Conference on the Theory and Application of Cryptology and Information Security. Springer, Cham, 2017: 409-437.

[39]

https://github.com/microsoft/SEAL

[40]

https://github.com/homenc/HElib

[41] Brickell E F, Gordon D M, McCurley K S, et al. Fast exponentiation with precomputation[C]//Workshop on the Theory and Application of of Cryptographic Techniques. Springer, Berlin, Heidelberg, 1992: 200-207.

[42] Lim C H, Lee P J. More flexible exponentiation with precomputation[C]//Annual International Cryptology Conference. Springer, Berlin, Heidelberg, 1994: 95-107.

[43]

https://en.wikipedia.org/wiki/Binomial_theorem

[44]

https://en.wikipedia.org/wiki/Chinese_remainder_theorem

[45]

https://en.wikipedia.org/wiki/Euler%27s_theorem

[46]

https://en.wikipedia.org/wiki/B%C3%A9zout%27s_identity

MySQL進階應用 - 索引和鎖

MySQL 是目前最流行的關系型資料庫管理系統,在 WEB 應用方面 MySQL 也是目前最好的 RDBMS 應用軟體之一。

本教程主要講授針對 Java 開發所需的 MySQL 進階知識,課程中會讓大家快速掌握索引,如何避免索引失效,索引的優化政策,了解innodb和myisam存儲引擎,熟悉MySQL鎖機制,能熟練配置MySQL主從複制,熟練掌握explain、show profile、慢查詢日志等日常SQL診斷和性能分析政策。

點選這裡

,檢視課程!