DOI: 10.15514/ISPRAS-2026-38(3)-2
1,2 М.Г. Бабенко, ORCID: 0000-0001-7066-0061<mgbabenko@ncfu.ru>
1 А.А. Синицын, ORCID: 0009-0002-7740-4217 <antony@email.su>
3 М.А. Дерябин, ORCID: 0000-0002-6761-3667 <maxim.deryabin@gmail.com>
1 Институт системного программирования им. В.П. Иванникова РАН,
Россия, 109004, г. Москва, ул. А. Солженицына, д. 25.
2 Северо-Кавказский федеральный университет,
Россия, 355017, г. Ставрополь, ул. Пушкина, 1.
3 Институт передовых технологий Samsung,
Республика Корея, Сувон 16678.
Аннотация. Гомоморфное шифрование позволяет обрабатывать данные без их расшифровки в удаленном пространстве (таком как облачной системы обработки данных). Несмотря на то, что это одна из ключевых перспективных технологий защиты персональных данных пользователей в современном мире, она сталкивается с проблемой низкой производительности. Для повышения скорости обработки данных большинство основных систем гомоморфного шифрования используют модулярный код через систему остаточных классов (СОК) как арифметическую основу для высокопроизводительных вычислений. Среди сложных операций, необходимых для гомоморфных шифров, особое место занимает операция расширения системы оснований СОК. Наибольшую популярность имеет ранее предложенный подход к этой операции, основанный на вычислении приближенного ранга числа в СОК использований числа с плавающей запятой. Для оптимизации алгоритма расширения оснований СОК ранее были получены оценки точности, с которой необходимо выполнять вычисления приближенного ранга числа, причем авторы использовали классическую теорию погрешности, не учитывающую свойства модулярного кода. Мы предлагаем теоретическое исследование позволявшее оценить точность вычисления приближенного ранга числа. Доказанная теорема позволяет уменьшить длину операндов более, чем в 3 раза по сравнению с оценками других авторов. Результаты моделирования показывают, что ранее предложенная оптимизация алгоритма позволяет повысить скорость алгоритма масштабирования чисел в системе остаточных классов в среднем на 46.15%.
Ключевые слова: система остаточных классов; расширения оснований в системы остаточных классов; Китайская теорема об остатках; ранг числа; аппроксимация ранга числа.
Для цитирования: Бабенко М.Г., Синицын А. А., Дерябин М.А. Оптимизация алгоритма расширения оснований в модулярном коде для гомоморфных шифров. Труды ИСП РАН, том 38, вып. 3, часть 1, 2026 г., стр. 33–44. DOI: 10.15514/ISPRAS-2026-38(3)-2.
Благодарности: Исследование выполнено при поддержки гранта Российского научного фонда № 25-71-30007.
Гомоморфное шифрование это способ шифрования позволяющий выполнять арифметические операции сложения и умножения с зашифрованными числами. Например, гомоморфный шифр Brakerski-Fan-Vercautern (BFV) ориентирован на операции с целыми числами и в базовом виде позволяет выполнять ограниченное число точных целочисленных арифметических сложений и умножений [1-4]. Для расширения количества допустимых умножений используется вычислительно сложный алгоритм бутстраппинга (Bootstrapping) [5]. Бутстраппинг позволяет обновлять параметры схемы шифрования и сбрасывать ограничение на количество умножений.
Использование гомоморфных шифров неизбежно увеличивает объём хранимых, передаваемых и обрабатываемых данных накладывая дополнительные накладные расходы на системы обработки данных. Операции, необходимые для гомоморфных шифров, являются сложным сочетанием множества алгоритмов и математических систем, включая теоретико-числовое преобразование и систему остаточных классов. Данная работа посвящена анализу отдельного алгоритма, который используется как в базовой схеме BFV с использованием системы остаточных классов, так и ее производных схем, например CKKS (Cheon-Kim-Kimn-Song) [6]. В свою очередь, схема BGV (Brakerski–Gentry–Vaikuntanathan) [1, 7-8], которая является альтернативой для BFV при обработки целых чисел и отличается более гибкой схемой редукции уровня шума и масштабирования, так же требует расширения системы оснований для операции смены модулей (modulus switching). Схема BGV менее удобна для реализации, тем не менее пользуется популярностью на практике.
В данной работе мы подробно анализируем алгоритм расширения системы оснований СОК, который требуется в процессе операции смены ключей системы шифрования, которая необходима для целого ряда утилитарных операций в BFV, таких как умножение двух шифртекстов, циклического сдвига вектора зашифрованных данных.
Расширение системы оснований происходит в два этапа: вычисление ранга числа и расчета нового основания на его основе. Для повышения производительности операции вычисления ранга числа наибольшей популярностью пользуются два метода, различающихся процессом вычисления ранга числа. Первый метод, основанный на точном вычислении ранга числа в системе остаточных классов [3], позволяет обеспечить асимптотически более высокую производительность по сравнению с наивным подходом. Второй метод основан на аппроксимации ранга, числа использующей комбинацию целочисленной и арифметики с плавающей точкой в дополнение к методам системы остаточных классов [4]. Этот метод требует относительно меньшего количества ресурсов и выполняется быстрее первого, однако он является приближенным и неизбежно приводит к погрешностям, связанным с переходом от вычислений с числами в несколько сотен бит к вещественным числам двойной точности, представленных в 64 битах. Для доказательства корректности работы второго метода использовалась теории погрешности, не учитывающая свойства системы остаточных классов.
В работе мы исследуем свойства алгоритма расширения оснований в системе остаточных классов основанного на аппроксимации ранга числа. Ключевыми результатами являются:
Шифры BGV, CKKS и BFV оперируют элементами больших циклотомических колец, заданных по модулю целых, содержащих сотни бит. Реализация арифметических операций с числами гораздо большей разрядности чем это позволяют сделать базовые типы данных требует значительных вычислительных затрат, и одним из способов ускорения этих операций является использование системы остаточных классов. В частности, диапазон системы целое число равное, , где – модули системы остаточных классов. Модули остаточных классов являются попарно взаимно простыми числами, каждое из которых может быть представлено в виде одного машинного слова.
Из Китайской теоремы об остатках следует, что любое целое число может быть представлено в виде кортежа , где . Операции над в могут быть реализованы посредством выполнения тех же операций над каждым компонентом в своём кольце .
Как схема BGV, так и BFV включают операции масштабирования, которые нельзя напрямую реализовать над компонентами системы остаточных классов. В обеих схемах возникает необходимость обрабатывать как положительные, так и отрицательные числа, поэтому мы будем считать, что . Расширение оснований в системе остаточных классов задаётся следующим образом. Пусть задан в системе остаточных классов , и требуется расширить основание, то есть вычислить для некоторого нового модуля взаимно простого с .
Используя Китайскую теорему об остатках, мы хотим вычислить , то есть
где и – мультипликативная инверсия по модулю .
Основная сложность в вычислении заключается в нахождении ранга числа . Ранг числа вычисляется в [3-4], используя следующую формулу:
где – целое число, – вычисляется с использованием арифметики с плавающей запятой.
После этого мы суммируем все и округляем сумму к ближайшему целому числу:
Таким образом, значения и мы можем непосредственно вычислить и
Поскольку являются заранее известными параметрами, мы можем предварительно вычислить все значения и , так что вычисление сводится к вычислению скалярного произведения двух -мерных векторов по модулю . Для вычисления необходимо умножений с плавающей точкой, умножений в кольце , целочисленных умножений и операция нахождения остатка от деления по модулю . Мы считаем, что операция сложения и умножения имеют одну вычислительную сложность.
Единственным источником ошибок в данной методе являются операции с плавающей запятой при вычислении : вместо точных значений используется приближенное значения , где – ошибка округления, возникавшая за счет использования чисел с плавающей точкой. В результате вычисляется значение
,
которое может отличаться от истинного значения .
При применении вышеописанной метода из работы [4] необходимо проверять, что полученное значение не попадает в область возможной ошибки , где . Если попадает в эту область, процедуру можно повторить с использованием арифметики более высокой точности (и, соответственно, меньшего ), пока результат не выйдет за пределы зоны неопределённости.
Для устранения вышеизложенного недостатка применим подход из работы [10] к поиску аппроксимации значения ранга числа.
Пусть , тогда аппроксимация ранга числа может быть вычислена следующим образом:
Потребуем, чтобы . Вычислим, какое значение необходимо взять для N, чтобы требования выполнилось .
Теорема 1. Если и то .
Доказательство
Пусть где и . Следовательно
Учитывая, что то
Необходимым и достаточным условием является, чтобы выполнялось равенство:
Равносильно
Учитывая, что если,
Учитывая, что то , значит .
Теорема доказана.
Покажем, что доказанная теорема 1 позволяет уменьшить размер операндов более чем в 3 раза по сравнению с работой [4] при одинаковых параметрах системы остаточных классов.
Пример 1. Для параметров заданных в [4]{Section 2.2: Correctness} , то есть и , следовательно, , значит, при условия теоремы 1 будут выполнены и . При данных ограничениях системы остаточных классов достаточно проводить вычисления с точностью 6 знаков после запятой, что в раз меньше, чем предлагают использовать авторы работы [4].
Исследуем, какое надо выбирать, если . Для этого докажем два утверждения. Первое утверждение: если диапазон системы остаточных классов не кратен 2, а второе утверждение относится к случаю, когда этот диапазон кратен 2.
Утверждение 1. Если , и то .
Доказательство.
Так как
Учитывая, что по условию утверждения , то и необходимое и достаточное условие можно будет записать в виде
Если то необходимое и достаточное условие выполняется . Учитывая, что то . Если выбрать равное , то .
Утверждение доказано.
Утверждение 2. Если , и то .
Доказательство.
Учитывая, что по условию утверждения , то и необходимое и достаточное условие можно записать в виде
Покажем, что при и выполняется равенство: . Без потери общности будем считать , тогда , и .
Вычислим при получим:
Вычислим при и получим:
Следовательно, при , .
Значит необходимое и достаточное условие можно будет записать в виде
Так как необходимое и достаточное условие можно представить в виде
если выполняется неравенство
то условие тоже выполняется.
Учитывая, что то . Если выбрать равное то .
Утверждение доказано.
Из утверждения 1 и 2 следует, что вычисления ранга числа на всем диапазоне системы остаточных классов требует туже точность, что и функция определения знака числа Van Vu T. [9].
Моделирование проводилось под управлением операционной системы Ubuntu 25.04 Plucky в среде разработки Visual Studio Code 1.104.1 (Universal), процессор AMD Ryzen 9 7950X 16-Core Processor, оперативная память DDR5-6000MHz 64GB, на языке программирования Rust, версия: rustc 1.92.0-nightly (844264add 2025-10-14),
Моделирование производится с использованием модулей СОК вида , где
315,321, 329, 333, 335, 341, 359, 363, 369, 371, 375, 393, 401, 413, 419, 425, 443, Параметры алгоритма: и для , для . Заметно, что предлагаемое решение требует гораздо меньше разрядов для выполнения в сравнении с алгоритмом из [4], который работает вещественными числами с плавающей запятой двойной точности (как минимум).
При моделировании был реализован алгоритм расширения оснований в системе остаточных классов, где изменялась процедура вычисления ранга числа. В алгоритме расширение оснований из работы [4] ранг числа вычисляется с использованием алгоритма 1. В новый алгоритм алгоритме расширения основания ранг числа вычисляется с использованием алгоритма 2, и параметры алгоритма должны удовлетворять условиям теоремы 1.
| Алгоритм 1. Вычисления с использованием чисел с плавающей точкой [4]. | Алгоритм 2. Вычисления с использованием теоремы 1. | |
|---|---|---|
| Input: , Output: – ранг числа | Input: , , Output: – ранг числа | |
| 1. 2. for to do: 2.1. 3. return | 1. 2. for to do: 2.1. 3. return |
Для эксперимента заранее генерировались 1000 случайных чисел в диапазоне представленных в системе остаточных классов, которые затем хранились в памяти компьютера. При моделировании рассматривались два сценария:
Из данных, представленных на рис. 1 мы можем сделать вывод о том, что функция зависимости времени выполнения операции расширения оснований СОК от количества модулей для алгоритма из работы [4] выражается следующей закономерностью с коэффициентом детерминации , а функция зависимости времени выполнения операции расширения оснований СОК от количества модулей для предложенного алгоритма выражается следующей закономерностью с коэффициентом детерминации . В среднем время работы алгоритма расширения оснований в СОК уменьшается на 84.5% за счет уменьшения разрядности операндов более, чем в 3 раза и переходе от чисел с плавающей точкой к целым числам. При этом стоит отметить, что стандартное отклонение для времени работы алгоритма расширения оснований в СОК от количества оснований в СОК изменяется в диапазоне от 43.00 до 488.76 причем максимальное стандартное отклонение достигается при , а минимальное при [4]. Для предложенного алгоритма стандартное отклонение для времени работы алгоритма расширения оснований в СОК от количества оснований в СОК изменяется в диапазоне от 11.41 до 204.499 причем максимальное стандартное отклонение достигается при , а минимальное при .
По данным рис. 2, кубическая аппроксимация зависимости времени выполнения операции расширения оснований в СОК от числа модулей для алгоритма из работы [4] имеет вид: при коэффициенте детерминации ; для предлагаемого алгоритма – при В среднем время выполнения операции сокращается на 46.15% благодаря более чем трёхкратному уменьшению разрядности операндов и переходу от чисел с плавающей точкой к целочисленным. При этом стандартное отклонение времени для алгоритма из работы [4] изменяется в диапазоне от 387.12 до 2930.01 (минимум при , максимум при ); для предлагаемого алгоритма – от 179.35 до 1466.43 (минимум при , максимум при ).
Гомоморфное шифрование позволяет выполнять вычисления над данными в зашифрованном виде в удалённой среде, такой как облачные платформы, и тем самым выступает одним из ключевых направлений защиты персональной информации. Главная практическая проблема таких систем - невысокая производительность. Для смягчения этой проблемы большинство современных реализаций опираются на модулярную арифметику в системе остаточных классов (СОК), где критически важной операцией является расширение системы оснований.
В данной работе предложено теоретическое обоснование точности вычисления аппроксимированного ранга с учётом структуры СОК и ограничений гомоморфного шифрования.
Рис. 1. Среднее время расширения на одно основание СОК.
Рис. 2. Среднее время расширения оснований в СОК при удвоении количества оснований.
Полученная теорема даёт конструктивные условия выбора параметров, при которых можно более чем втрое сократить разрядность операндов по сравнению с оценками работы [4], отказаться от операций с плавающей точкой в пользу целочисленных вычислений и, тем самым, упростить реализацию как на CPU, так и на специализированных ускорителях. Результаты моделирования подтверждают практическую значимость анализа: оптимизированная версия алгоритма масштабирования чисел в СОК в среднем ускоряется на 46.15% относительно исходного варианта на базе алгоритма [4]. Ключевыми результатами статьи можно выделить, следующие:
Суммарно, предложенный теоретический и алгоритмический аппарат системно снижает вычислительную стоимость ключевых операций в СОК без потери корректности, создавая основу для дальнейшего ускорения практических схем гомоморфного шифрования. В частности, предложены подход будет полезен при проектировании специализированных ускорителей, где операции с плавающей запятой являются дорогостоящими и сложными для реализации.
Михаил Григорьевич БАБЕНКО – доктор физико-математических наук, заведующий кафедры вычислительной математики и кибернетики факультета математики и компьютерных наук имени профессора Н.И. Червякова ФГАОУ ВПО «Северо-Кавказский федеральный университет». Сфера научных интересов: облачные вычисления, высокопроизводительные вычисления, система остаточных классов, нейронные сети, криптография.
Антон Алексеевич СИНИЦЫН – аспирант 3 курса Института системного программирования Российской академии наук по специальности 2.3.5 «Математическое и программное обеспечение вычислительных систем, комплексов и компьютерных сетей». Сфера научных интересов: гомоморфное шифрование, модулярная арифметика, криптография, безопасные вычисления, сохраняющие конфиденциальность.
Максим Анатольевич ДЕРЯБИН – кандидат технических наук, научный сотрудник в Институте передовых технологий Samsung (Сувон, Южная Корея). Одной из основных тем его исследований является система остаточных чисел и её применение. Сфера научных интересов: криптографию на основе теории решёток, гомоморфное шифрование, вычислительную алгебру и теорию чисел.