The dramatic increase of data breaches in modern computing platforms has emphasized that access control is not sufficient to protect sensitive user data. Recent advances in cryptography allow end-to-end processing of encrypted data without the need for decryption using Fully Homomorphic Encryption (FHE). Such computation however, is still orders of magnitude slower than direct (unencrypted) computation. Depending on the underlying cryptographic scheme, FHE schemes can work natively either at bit-level using Boolean circuits, or over integers using modular arithmetic. Operations on integers are limited to addition/subtraction and multiplication. On the other hand, bit-level arithmetic is much more comprehensive allowing more operations, such as comparison and division. While modular arithmetic can emulate bit-level computation, there is a significant cost in performance. In this work, we propose a novel method, dubbed bridging, that blends faster and restricted modular computation with slower and comprehensive bit-level computation, making them both usable within the same application and with the same cryptographic scheme instantiation. We introduce and open source C++ types representing the two distinct arithmetic modes, offering the possibility to convert from one to the other. Experimental results show that bridging modular and bit-level arithmetic computation can lead to 1-2 orders of magnitude performance improvement for tested synthetic benchmarks, as well as one real-world FHE application: a genotype imputation case study.
翻译:现代计算平台数据破损的急剧增加突出表明,访问控制不足以保护敏感的用户数据。最近加密技术的进步使得加密数据的终端到终端处理无需使用全自动加密(FHE)来进行解密。然而,这种计算仍然比直接(未加密)计算慢得多。根据基本的加密方法,FHE计划可以使用布林电路在比特一级上自行操作,或者使用模块算术进行超大整数计算。对整数的操作仅限于添加/减缩和乘法。另一方面,位数计算法更全面得多,可以允许更多的操作,例如比较和分解。虽然模块计算可以模仿比特级计算,但运行成本仍然很大。在这项工作中,我们提出了一个新颖的方法,即隐蔽的连接,将更快和限制性的模块计算方法与较慢和综合的比特级计算相结合,使其既在同一应用程序内使用,也与相同的加密计划同时使用。我们介绍和开放源C++型类型,代表两种截然不同的计算模式,例如比较和分解。模块计算方法可以模仿比重的计算方法,从一个模级算法的模型到模拟的升级的模型,可以将一个模级计算结果转换为另一个模级的模级的模型,从一个模版的模级的模型,将一个模版的计算结果转换成一个模级的模级计算结果,从一个模级计算结果,从一个模级的模级的模型,从一个模级,从一个模级转换为比级计算结果,从一个级,可以转换为一个模级,再到另一个的模级计算。