Сначала необходимо суммировать значения во всех используемых вами слотах дозирования.Это всегда можно сделать с шагом log(degree(poly_modulus))
, поворачивая зашифрованный текст на 0, 1, 2, 4, 8, ... слотов и суммируя после каждого поворота.Для последнего шага вам нужно также суммировать две строки, поэтому вам нужно будет выполнить вращение столбца.В итоге вы получите зашифрованный текст, в котором каждый слот содержит сумму значений.После дешифрования обычный полином в этом случае будет просто постоянным полиномом, поэтому убедитесь, что ваш plain_modulus
достаточно большой, чтобы содержать сумму.
Для деления на размер пакета, возможно, вы сможете сделать это после расшифровки,но, возможно, лучшим вариантом будет использование схемы CKKS (в SEAL 3.0), в которой такое деление зашифрованного текста по простому тексту легко.