Всем доброго времени суток. Я студент 4-го курса бакалавриата МФТИ. В рамках курса по защите информации я написал эссе на тему гомоморфного шифрования и решил, поделиться им здесь, поскольку эта тема не так часто обсуждается на Хабре. Кроме того, я делаю это, надеясь дать окружающим пищу для размышлений и самому узнать что-то новое по данной теме.
1 Введение
С ростом объёма обрабатываемых данных возникает потребность в облачных и распределённых вычислениях. Обычное шифрование позволяет защитить данные во время передачи, но для вычислений данные должны быть открыты. Этого можно избежать, используя шифрование, задающее гомоморфное отображение:
Это позволяет производить вычисления, не раскрывая значения операндов. Целью эссе является классификация гомоморфных шифров, анализ механизма bootstrapping и обзор возможностей аппаратного ускорения вычислений.
2 Классификация гомоморфных шифров
2.1 Детерминированность
2.1.1 Детерминированные
Детерминированными называются шифры, для которых по открытому тексту и ключу однозначно строится шифротекст. Такие шифры быстрее с точки зрения вычислений, но к ним можно применить частотный анализ.
2.1.2 Недетерминированные
Недетерминированными называются шифры, в которых при генерации шифротекста добавляется случайны шум. То есть, при одном и том же ключе, для одинаковых открытых данных получаются разные шифротексты. Это позволяет передавать вычислителю шифры определённых констант, без утечки информации. Следствием является возможность вычисления нелинейных функций через разложение в ряд Тейлора.
2.2 Объём поддерживаемых операций
2.2.1 PHE
PHE(Partially Homomorphic Encryption) - частично гомоморфные шифры поддерживают только одну операцию. Их можно условно разделить на два подтипа по виду поддерживаемой операции на аддитивные и мультипликативные.
2.2.2 SHE
SHE(Somewhat Homomorphic Encryption) - ограниченно гомоморфные шифры поддерживают несколько различных операций, но ограниченное количество раз.
Это вызвано наличием случайного шума при недетерминированных шифровании.
2.2.3 FHE
FHE(Fully Homomorphic Encryption) - полностью гомоморфные шифры поддерживают несколько различных операций без ограничений на количество применений. Это достигается введением операции bootstrapping.
2.3 Тип сообщения
2.3.1 Бинарные
Сообщение представляет собой значение одного бита. Такие шифры позволяют вычислять произвольные булевы функции, но плохо подходят для обычной арифметики.
2.3.2 Целочисленные
Такие схемы позволяют выполнять точные арифметические операции по модулю шифрования .
2.3.3 Приближённые схемы
Такие схемы позволяют делать приближённые вычисления с вещественными переменными, что полезно в машинном обучении.
3 Решётки
Определения решётки, SVP, LWE, RLWE взяты из [1].
3.1 Определение
Пусть - система независимых векторов в
, тогда множество
называется
-мерной решёткой с базисом
.
3.2 SVP
SVP(Shortest vector problem) состоит в нахождении ненулевого вектора наименьшей длины
в решётке
. Рост размерности решётки
приводит к экспоненциальному росту возможных векторов. На данный момент все алгоритмы решения SVP имею сложность
. Кроме того не найдено алгоритмов для быстрого решения SVP на квантовых компьютерах.
Эту задачу можно обобщить, пусть задано , тогда
-SVP состоит в отыскании ненулевого
, такого, что
.
3.3 LWE
Пусть есть секретный вектор , случайные векторы
и небольшой шум
, тогда
можно поставить задачу LWE(Learning with errors), которая лежит в основе большинства современных алгоритмов гомоморфного шифрования, и состоит в отыскании при условии, что нам известны некоторые пары
,
.
Одед Реджев доказал [2], что решение -SVP можно свести к LWE. Следовательно квантовые компьютеры пока не умеют быстро решать LWE. И, таким образом, алгоритмы шифрования, построенные на LWE, являются постквантовыми.
3.4 RLWE
RLWE - это постановка задачи LWE для факторколец , где
- неприводимый многочлен степени
и
- простое число.
В RLWE заданы многочлены , нам известны пары
,
и нужно найти
.
4 Bootstrapping
В то время как детерминированные шифры могут быть полезны в контексте баз данных(SQL запросы), для приватных вычислений используются в основном именно недетерминированные(рандомизированные) шифры. Но у них есть недостаток, при выполнении операций над шифротекстом накапливается шум, что при большом количестве вычислений делает расшифровку невозможной. Эта проблема решается с помощью операции называемой bootstrapping(обновление), которая пересчитывает шифротекст, убирая лишний шум. Обновление шифротекста происходит на стороне вычислителя и не требует знание ключа, что позволяет создать FHE.
Идея состоит в том, чтобы гомоморфно провести цепочку расшифрования с помощью доступных операций.
Минусом является огромная вычислительная сложность этой операции. Например для шифра TFHE:
Здесь появляется функция округления, именно она и делает вычисление bootstrapping крайне медленным.
Сложность обновления шифра привела к возникновению подхода leveled FHE, который состоит в том, что мы заранее фиксируем необходимую глубину вычислений и подбираем параметры шифра так, чтобы не пришлось делать bootstrapping.
5 Примеры гомоморфных шифров
5.1 чистый RSA
Здесь (модуль RSA) и
(открытая экспонента) образуют публичный ключ
.
Легко заметить свойство, делающее RSA детерминированным мультипликативным PHE:
5.2 Paillier
Здесь - открытый ключ,
- случайный шум.
То есть, данный шифр является недетерминированным аддитивным PHE. В своей статье [3] Паскаль Паилье доказал, что шум никак не влияет на расшифровку сообщения.
5.3 ElGamal
Здесь - открытый ключ,
- случайный шум,
- генератор группы
.
Таким образом, ElGamal является недетерминированным мультипликативным PHE. И в отличие от Paillier, здесь шум линейно накапливается, ограничивая количество допустимых операций.
5.4 Gentry
До этого мы рассматривали алгоритмы для сообщений целочисленного типа, теперь обсудим схему, которая работает с отдельными битами сообщения .
Здесь - открытый вектор,
- секретный вектор и
- шум.
Gentry является первой полностью гомоморфной схемой шифрования, именно Крейг Джентри придумал операцию bootstrapping.
Базовыми операциями являются xor и and:
Из них легко получить стандартный набор логических операций not, and, or:
Gentry является недетерминированным FHE, поэтому мы можем, не беспокоясь, раскрыть один из возможных шифров единицы .
6 Современные гомоморфные шифры
6.1 BFV
Фиксируем модуль шифротекста и модуль открытого текста
.
Тогда можно определить масштабирующий фактор и кольца
.
Выберем секретный ключ и случайные полиномы
, тогда открытый ключ в BFV(Brakerski/Fan-Vercauteren) имеет вид
При шифровании нужно сначала представить сообщение как элемент кольца и затем вычислить функцию шифрования:
BFV является недетерминированным полностью гомоморфным шифром, но он устроен сложнее, чем ранее разобранные шифры, и при выполнении умножения используется процедура релинеаризации [4].
6.2 BGV
Алгоритм BGV(Brakerski-Gentry-Vaikuntanathan) также основан на LRWE, но в отличие от BFV вместо смены ключа здесь используется многомодульная система(после операции умножения уменьшаем модуль ) [4].
6.3 TFHE
Рассмотрим множество , которое представляет собой полуинтервал
с операциями по модулю единицы. Это множество называют тором, отсюда и название шифра TFHE(fast fully homomorphic encryption scheme over the torus). Данный шифр работает с бинарными сообщениями
следующим образом:
Где - случайный вектор,
- секретный ключ.
Для реализации and в TFHE используются PBS(programmable bootstrapping) и LUT(lookup table) [5]:
6.4 CKKS
CKKS(Cheon-Kim-Kim-Song) представляет собой недетерминированный FHE для вещественных чисел. Его характерной особенностью является пакетирование(batching) - возможность обрабатывать сразу несколько чисел.
Пусть задан набор чисел
.
Сначала он масштабируется
.
Затем кодируется полиномом
.
Выбираются случайный полином
и шум
.
Полином сообщения шифруется по формуле аналогичной BFV.
CKKS позволяет проводить лишь приближённые вычисления, что может быть недостатком для научных рассчётов, но отлично подходит для машинного обучения.
7 Аппаратное ускорение FHE
Необходимость использовать недетерминированные шифры, а следовательно и bootstrapping, приводит к тому, что на данный момент большинство сервисов облачных вычислений не работают с FHE, из-за катастрофической разницы в сложности выполнения операций. Эта проблема может быть решена созданием аппаратных ускорителей, умеющих быстро делать все необходимые преобразования для заранее выбранного типа шифрования, что позволит по производительности приблизиться к вычислениям с открытым текстом.
Так, например, была представлена архитектура BASALISC [6] для облачных вычислений с шифром BGV и полнофункциональным bootstrap. Авторы получили ускорение в сравнении с программной реализацией HElib.
Ещё одним интересным решением является REED [7]. У авторов статьи получилось ускорение по сравнению с CPU(Intel X5690).
Всё это пока находится на стадии прототипов и исследований. На данный момент на рынке доступны решения на базе FPGA, но они имеют более скромные результаты.
8 Оценка перспектив
Популярность гомоморфных шифров в области облачных вычислений постепенно растёт, уже есть сервисы предоставляющие услуги хранения данных в зашифрованном виде с возможностью конфиденциальных вычислений, например, Hivenet, который использует GPU для работы с гомоморфными шифрами.
Ещё одним перспективным направлением является обработка биометрических данных с использованием FHE. Такие данные являются конфиденциальными, но их обработка требует больших вычислительных мощностей. Это идеальная задача для распределённых вычислений с использованием FHE.
Стоит также упомянуть задачу PPML(Privacy-Preserving Machine Learning) [8], которая состоит в обучении модели на зашифрованных данных и её последующем инференсе.
Эти и многие другие приложения делают FHE очень востребованной темой в криптографии. Даже сейчас есть сервисы, предоставляющие соответствующие услуги. Но уже через несколько лет на рынке появятся аппаратные решения для работы с FHE, и тогда применение гомоморфных шифров станет массовым явлением.
Список литературы
[1] Chiara Marcolla, Victor Sucasas, Member, IEEE, Marc Manzano, Riccardo Bassoli, Member, IEEE,Frank H.P. Fitzek, Senior Member, IEEE and Najwa Aaraj "Survey on Fully Homomorphic Encryption, Theory, and Applications" Proceedings of the IEEE 110(10), pp. 1572 - 1609, 2022
[2] Regev Oded "On lattices, learning with errors, random linear codes, and cryptography" Proceedings of the thirty-seventh annual ACM symposium on Theory of computing, pp. 84-93, 2009
[3] Pascal Paillier "Public-Key Cryptosystems Based on Composite Degree Residuosity Classes" in Advances in Cryptology — EUROCRYPT 99, Springer, pp. 223–238, 1999
[4] Andrey Kim, Yuriy Polyakov, Vincent Zucca "Revisiting Homomorphic Encryption Schemes for Finite Fields" Advances in Cryptology, pp. 608–639, 2021
[5] Ilaria Chillotti, Marc Joye, and Pascal Paillier "Programmable Bootstrapping Enables Efficient Homomorphic Inference of Deep Neural Networks" Cyber Security Cryptography and Machine Learning, pp. 1-19, 2021
[6] Robin Geelen, Michiel Van Beirendonck, Hilder V. L. Pereira1, Brian Huffman, Tynan McAuley, Ben Selfridge, Daniel Wagner, Georgios Dimou, Ingrid Verbauwhede, Frederik Vercauteren and David W. Archer "BASALISC: Programmable Hardware Accelerator for BGV Fully Homomorphic Encryption" IACR Transactions on Cryptographic Hardware and Embedded Systems, pp. 32-57, 2023
[7] Aikata Aikata, Ahmet Can Mert, Sunmin Kwon, Maxim Deryabin, Sujoy Sinha Roy "REED: Chiplet-based Accelerator for Fully Homomorphic Encryption" IACR Transactions on Cryptographic Hardware and Embedded Systems, pp. 163-208, 2025
[8] Luis Bernardo Pulido-Gaytan, Andrei Tchernykh, Jorge M. Cortes-Mendoza, Mikhail Babenko and Gleb Radchenko "A Survey on Privacy-Preserving Machine Learning with Fully Homomorphic Encryption" in High Performance Computing. CARLA 2020. Communications in Computer and Information Science, vol. 1327, pp. 115-129, 2021