我试图了解SEAL-CKKS方案如何工作,我想知道使用该方案可以达到什么乘法水平?
可能有100种?
答案 0 :(得分:0)
大多数使用CKKS的高精度应用程序可能会保持在20级以下。我认为,任何高于此的值都非常高,这会让我想到其他方法。
原则上可以达到100级,但由于需要巨大的参数大小,因此不太可能实用。默认情况下,SEAL的poly_modulus_degree
上限确实相对较低,但这应该可以增加。 coeff_modulus
质数的数量也有一个上限,但是这些界限没有任何真正的根本原因,您可能可以毫无困难地增加它们。
请注意,您需要对如此大的coeff_modulus
和poly_modulus_degree
进行安全性估算,如果您使用SEAL 3.3,则需要通过传递sec_level_type::none
来禁用安全性检查到SEALContext::Create
。
要增加上限,请在SEAL_POLY_MOD_DEGREE_MAX
中编辑SEAL_COEFF_MOD_COUNT_MAX
和native/src/seal/util/defines.h
。
将来,SEAL还可能会为CKKS方案实现某种形式的自举,这将允许这种计算,但精度可能非常低。