Использование автоморфизмов Галуа в гомоморфном шифровании

SEAL (Простая зашифрованная арифметическая библиотека) использует автоморфизмы Галуа для обеспечения возможности пакетных вычислений (т. е. сложения и умножения множества зашифрованных текстов параллельно за одну операцию).

Процедура пакетной обработки описана в разделах 5.6 Автоморфизмы Галуа и 7.4 Пакетная обработка CRT документа руководство по SEAL 2.3.1.

В частности, в двух приведенных выше разделах утверждается, что следующие кольца изоморфны.

\prod_{i=0}^{n} \mathbb{Z}_t \cong \prod_{i=0}^{n} \mathbb{Z}_t[\zeta^{2i+1}] \cong \mathbb{Z}_t[x]/(x^n+1)

где \ zeta - примитивный корень 2n-й степени из единицы по модулю t.

Изображение приведенного выше уравнения можно найти на здесь (Stackoverflow пока не позволяет мне отображать изображения)

В тех же разделах также говорится, что отображение кортежей открытого текста в \prod_{i=0}^{n} \mathbb{Z}_t на \mathbb{Z}_t[x]/(x^n+1) может быть выполнено с помощью автоморфимов Галуа.

Точнее, n-мерный \mathbb{Z}_t-векторный открытый текст можно рассматривать как матрицу 2 на (n / 2), а автоморфизмы Галуа будут соответствовать поворотам столбцов и строк этой матрицы.

После применения автоморфизмов Галуа к вектору открытого текста (вращения строк и столбцов) можно получить соответствующий элемент в \mathbb{Z}_t[x]/(x^n+1), который будет использоваться для пакетных вычислений.

У меня следующие вопросы.

1- Почему \mathbb{Z}_t[\zeta^{2i+1}] изоморфен \mathbb{Z}_t?

2- Как автоморфизмы Галуа используются для точного отображения n-мерных \mathbb{Z}_t-векторных открытых текстов на элементы в \mathbb{Z}_t[x]/(x^n+1)? Или, иначе говоря, как работает операция Составить? И как использовать автоморфизмы Галуа (вращение строк и столбцов) для его вычисления?

========================================================================


person MedL    schedule 12.09.2018    source источник
comment
Возможно, лучше поищите на math.stackexchange.com   -  person    schedule 12.09.2018
comment
Математическая нотация, похоже, не работает, и вам может быть лучше на math.stackexchange.com   -  person Xan-Kun Clark-Davis    schedule 12.09.2018


Ответы (1)


  1. Изоморфизм просто вычисляет многочлен в корне из единицы, чтобы получить элемент Z t. Обратите внимание, что это работает, потому что соответствующий корень единицы находится в Z t. Вся система пакетирования - это просто большая старая китайская теорема об остатках: интервалы пакетирования - это сокращения полинома открытого текста по модулю x-zeta 2i + 1 для различных i. Возвращение требует стандартной реконструкции ЭЛТ.

  2. На практике CRT реализуется через теоретико-числовое преобразование (БПФ над конечным полем) и его обратное. Автоморфизм Галуа действует на корни единицы, переставляя их, образуя две орбиты. Если мы упорядочим слоты матрицы открытого текста таким образом, чтобы значение слота пакетной обработки, соответствующее следующему конъюгату Галуа примитивного корня, всегда находилось слева (или справа) от значения слота, соответствующего этому первообразному корню, то действие Галуа переставит строки матрицы циклически. Две орбиты также можно поменять местами, что соответствует вращению столбца (перестановке).

Ситуация еще больше усложняется тем фактом, что алгоритм NTT, который использует SEAL, приводит к так называемому «побитному обратному» порядку вывода. Это необходимо учитывать при определении правильного порядка значений дозирования до того, как можно будет выполнить какое-либо NTT или обратное NTT.

person Kim Laine    schedule 18.09.2018
comment
Соответствующий корень единицы находится в Z_t. Это так, потому что полиномиальный модуль x ^ n + 1 разбивается по Z_t. Правильно? - person MedL; 18.09.2018