Индикаторы ошибок декодирования и дешифрования в SEAL

Я знаю, что в SEAL 2.3.1 ошибки декодирования и дешифрования молча завершатся неудачей. Т.е. отсутствуют индикаторы недостаточной шумовой ошибки или обнаружения нарушений параметра plain_modulus, poly_modulus, при попытке декодировать / расшифровать какой-либо результат вычисления. Существуют ли эти индикаторы в какой-либо из более поздних версий, например, 3.0, 3.1 или в новой версии 3.2 0r, неправильное декодирование или дешифрование по-прежнему дает сбой по умолчанию?

0 ответов

После SEAL 2.3.1 не произошло никаких существенных изменений, за исключением того, что после SEAL 3.0 наличие схемы CKKS усложняет ответ.

Дешифрование. SEAL 3.2.0 не дает никаких указаний на то, что бюджет шума равен нулю. Вы должны будете проверить это отдельно для схемы BFV; Схема CKKS не имеет подобной чистой концепции шума. Кроме того, немного вводит в заблуждение утверждение о том, что дешифрование завершается неудачно: дешифрование всегда завершается успешно и дает некоторый выходной незашифрованный текст, но пара Ciphertext-Plaintext может иметь максимальный шум (для BFV). Пользователь может захотеть реализовать функцию, которая сначала проверяет уровень шума, а затем расшифровывает, но это имеет некоторые затраты производительности и, вероятно, не имеет смысла делать это автоматически с помощью SEAL.

Декодирование. При использовании схемы CKKS SEAL 3.2.0 будет выдавать ошибки декодирования (при использовании CKKSEncoder), например, когда открытый текст имеет слишком большой масштаб. Такой открытый текст не должен быть возможным для правильного использования Evaluator/Decryptor хоть. Декодирование CKKS будет неправильным, если масштаб и сообщение настолько велики, что их продукт переворачивается coeff_modulus, но Evaluator не имеет возможности обнаружить это, и ни один не имеет CKKSEncoder, Для BFV IntegerEncoder может обнаружить ошибки переполнения декодирования и будет выдавать в этих случаях (как в SEAL 2.3.1), но для BatchEncoder нет неправильных расшифровок, поэтому такая вещь вообще не может быть обнаружена. Обратите внимание, что plain_modulus переполнения никогда не могут быть обнаружены в зашифрованном виде.

Другие вопросы по тегам