Homomorphic encryption is a cryptographic paradigm allowing to compute on encrypted data, opening a wide range of applications in privacy-preserving data manipulation, notably in AI. Many of those applications require significant linear algebra computations (matrix-vector products, and matrix-matrix products). This central role of linear algebra computations goes far beyond homomorphic algebra and applies to most areas of scientific computing. This high versatility led, over time, to the development of a set of highly optimized routines, specified in 1979 under the name BLAS (basic linear algebra subroutines). Motivated both by the applicative importance of homomorphic linear algebra and the access to highly efficient implementations of cleartext linear algebra able to draw the most out of available hardware, we explore the connections between CKKS-based homomorphic linear algebra and floating-point plaintext linear algebra. The CKKS homomorphic encryption system is the most natural choice in this setting, as it natively handles real numbers and offers a large SIMD parallelism. We provide reductions for matrix-vector products, vector-vector products for moderate-sized to large matrices to their plaintext equivalents. Combined with BLAS, we demonstrate that the efficiency loss between CKKS-based encrypted square matrix multiplication and double-precision floating-point square matrix multiplication is a mere 4-12 factor, depending on the precise situation.
翻译:同态加密是一种允许对加密数据进行计算的密码学范式,为隐私保护数据操作(尤其是在人工智能领域)开辟了广泛应用。其中许多应用需要大量的线性代数计算(矩阵向量乘积和矩阵矩阵乘积)。线性代数计算的这一核心作用远超同态代数范畴,适用于科学计算的大多数领域。这种高度通用性促使人们随着时间推移逐步开发出一套高度优化的例程,并于1979年以BLAS(基本线性代数子程序)之名被规范定义。受同态线性代数应用重要性的驱动,以及能够利用明文线性代数的高效实现来最大化硬件效能的启发,我们探索了基于CKKS的同态线性代数与浮点明文线性代数之间的联系。CKKS同态加密系统在此场景中是最自然的选择,因为它原生支持实数运算并提供大规模的SIMD并行性。我们针对中大规模矩阵的矩阵向量乘积和向量向量乘积,提供了向相应明文计算的归约方法。结合BLAS,我们证明基于CKKS的加密方阵乘法与双精度浮点方阵乘法之间的效率损失仅在4到12倍之间,具体取决于实际情境。