ПЕЧАТЬ-CKKS максимальная глубина умножения

#cryptography #public-key-encryption #seal

#криптография #шифрование с открытым ключом #печать

Вопрос:

Я пытаюсь понять, как работает схема SEAL-CKKS, и мне интересно, какого уровня умножения мы можем достичь, используя эту схему?

Как 100 возможных?

Ответ №1:

Большинство приложений с высокой точностью, использующих CKKS, вероятно, останутся значительно ниже уровня 20. Все, что выше этого, на мой взгляд, чрезвычайно велико и заставило бы меня подумать об альтернативных подходах.

Уровень 100 в принципе возможен, но вряд ли будет практичным из-за огромного размера параметров, который для этого потребуется. По умолчанию ПЕЧАТЬ имеет относительно низкий предел poly_modulus_degree , но это должно быть возможно увеличить. Также существует ограничение на количество coeff_modulus простых чисел, но для этих ограничений нет какой-либо действительно фундаментальной причины, и вы, вероятно, сможете увеличить их без проблем.

Обратите внимание, что вам нужно будет самостоятельно выполнить оценку безопасности для такого большого coeff_modulus и poly_modulus_degree , и если вы используете печать 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, которая затем допускала бы такие вычисления, но, возможно, только с очень низкой точностью.