简介:CKKS算法是一种全同态加密方案,旨在支持近似计算。它基于BGV方案,但与其他同态方案有所不同,允许误差并放宽准确性的限制。这使得CKKS在计算效率和细节上有了较大的简化与提升。
全同态加密是一种允许对加密数据进行计算并得到加密结果,而不需要解密的加密方式。CKKS(Cheon-Kim-Kim-Song)算法是近年来备受关注的全同态加密方案之一。
CKKS算法基于BGV(Brakerski-Fan-Vercauteren)方案,但与其他同态方案有所不同。其最大的特点在于它关注近似计算,而不是追求解密结果与明文完全一致。在现实生活中,大部分运算面对的是实数(复数),而实数(复数)的运算往往只需要保留一部分有效数字。CKKS允许误差,放宽了准确性的限制,这使得它在计算效率和细节上有了较大的简化与提升。
CKKS算法的具体构造允许在密文中的明文空间和噪声空间不分离,噪声位于明文空间的LSB(Least Significant Bit)位置。这意味着同态运算破坏了明文的LSB,但不破坏其MSB(Most Significant Bit)。这种设计可以视为浮点运算的精度误差,类似于BGV做模切换,CKKS也进行了重缩放,使得消息规模不会随电路深度而指数级增长,同时移除了LSB上的部分浮点误差。
这种设计使得CKKS在处理大规模数据时具有优越的性能。此外,由于它基于BGV方案,但也可以依赖于其他现有的同态方案,这为算法的扩展和优化提供了更多的可能性。
总的来说,CKKS算法作为一种全同态加密方案,具有其独特的优势和特点。它关注近似计算,允许误差并放宽准确性的限制,这使得它在处理大规模数据时具有高效性能。此外,由于其基于BGV方案,但也可以依赖于其他现有的同态方案,这为算法的进一步优化和扩展提供了更多的可能性。未来,随着全同态加密技术的不断发展,CKKS算法有望在更多领域得到应用和推广。