Cryptonn: Обучение Нейронных Сетей На Основе Зашифрованных Данных. Сочетание Конфиденциальности Данных И Нейронных Сетей

Привет, Хабр! Машинное обучение и нейронные сети получили широкое распространение во многих технических областях и сейчас широко используются.

Известно, что большинство алгоритмов машинного обучения, и в частности нейронных сетей, требуют для своего обучения больших вычислительных ресурсов.

В связи с этим возникает потребность в облачных решениях и удаленных серверах.

И сразу возникает вопрос: как сохранить конфиденциальность данных, чтобы использовать их для обучения нейросетей на удаленных машинах? В своем коротком посте я дам обзор метода CryptoNN из статьи CryptoNN: обучение нейронных сетей на основе зашифрованных данных , что позволяет использовать зашифрованные данные для обучения нейронных сетей.

Мой рассказ будет состоять из трёх частей — сначала я опишу все схемы шифрования данных, используемые в этом подходе, затем разберу сам метод и основные нюансы, связанные с ним.

В заключение посмотрим, какие результаты показывает CryptoNN на наборе данных MNIST.



Схемы шифрования

Все схемы шифрования, используемые в этом методе, основаны на функциональном шифровании (FE).

Функциональное шифрование, в свою очередь, представляет собой метод шифрования с открытым ключом, при котором пользователь позволяет вычислять только ограниченный класс функций из зашифрованных данных путем генерации секретных ключей для этих функций.

Также, в отличие от гомоморфных методов шифрования, в результате использования FE мы сразу получим расшифрованный результат. Приведены две схемы — для вычисления скалярного произведения (FEIP) и для вычисления основных арифметических операций (FIBO).

Здесь я кратко опишу их составляющие.



Схема скалярного произведения

Напомним определение скалярного произведения двух векторов:

CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

Схема FE для скалярного произведения определяется как Схема FE для скалярного произведения определяется как FEIP = (Setup, KeyDerive, Encrypt, Decrypt):


  • CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    : сгенерировать число г и вектор

    CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    , затем по этим значениям получаем публичный и секретный ключи —

    CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    ,

    CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    .

    После этого мы возвращаем эту пару ключей.



  • CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    : вернуть секретный ключ функции, например

    CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей



  • CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    : выбрать случайное число р и рассчитать

    CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    , и

    CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    , вернуть зашифрованный текст

    CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    .



  • CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    : вернуть дискретный логарифм по основанию г :

    CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей



Схема для основных арифметических операций



CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей



  • CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    : генерировать числа g, затем s.

    CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей



  • CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    : вернуть секретный ключ функции, например

    CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    :

    CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей



  • CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    обязательство по возврату,

    CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    .

    И зашифрованный текст:

    CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей



  • CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

    вернуть дискретный логарифм по основанию г :

    CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей



КриптоNN

Теперь перейдем к описанию самого подхода CryptoNN. Обратим внимание на схему каркаса на рис.

1.

CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

Рисунок 1. Общая схема КриптоNN Условно мы можем выделить три части: орган власти, сервер и клиент. Власть - генерирует ключи

CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

И

CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

Также выполняет операции

CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

отправить ключи

CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

сервер.

Клиент - отвечает за предварительную обработку и использование данных.



CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

шифрует их.

Также обрабатывает и шифрует цель.

После этого он отправляет данные и цель в виде зашифрованных векторов на сервер.

Сервер - собирает данные из различный пользователи.

Важно только, чтобы пользователи использовали один и тот же открытый ключ.

Получает ключи на каждой итерации обучения

CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

от власть для конкретной операции.

Рассмотрим выходное значение первой функции активации

CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

— так было бы, если бы не было шифрования входных данных.

В схеме CryptoNN данные подаются на вход сети в зашифрованном виде, поэтому вычислять эту величину необходимо следующим образом:

CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

Даже если сервер не знает значения благодаря функциональному шифрованию способен вычислить результат матричного произведения

CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

!

CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

Рис.

2. Псевдокод алгоритмов работы с зашифрованными матрицами.

Схемы FEIP и FEBO были описаны выше, с их помощью теперь можно легко реализовать все операции над матрицами (умножение матриц, поэлементное сложение и т.п.

).

За подробным описанием этого алгоритма рекомендую обратиться к статье (см.

Рис.

2. - Алгоритм 1: схема вычисления защищенной матрицы).

Основными отличиями такой «безопасной» нейронной сети являются этапы — безопасная прямая связь и безопасное обратное распространение/оценка.

В остальном конвейер такой же, как и в обычных незащищенных нейронных сетях.



CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

Рис.

3. Алгоритм обучения нейронной сети CryptoNN. Безопасная прямая связь - было описано выше, предполагает вычисление результата первой функции активации с использованием алгоритма схемы вычисления матрицы Secure. Безопасное обратное распространение/вычисление — это первый шаг обратного прохода, все те же правила, что и при обычном обратном проходе — мы используем правила взятия производной сложной функции, а также помним, что все операции выполняются над зашифрованным цель Да должно быть выполнено с использованием алгоритма схемы вычисления матрицы Secure. На этапе вывода все просто — поскольку выходные значения не шифруются из-за FE. Если в целях безопасности необходимо, чтобы выходное значение было зашифровано, то это легко реализовать с помощью гомоморфного шифрования с последующей расшифровкой на стороне клиента.

Все вышесказанное справедливо для полносвязных нейронных сетей.

Но стоит отметить, что метод CryptoNN можно применить и к сверточным нейронным сетям (CryptoCNN).

Именно это показывают авторы, представляя алгоритм схемы безопасной свертки, использующий схему шифрования FEIP.

Результаты обучения

Для экспериментов авторы выбрали популярный набор данных MNIST, состоящий из изображений рукописных цифр низкого разрешения в оттенках серого.

Сама нейросеть CryptoCNN была построена на основе нейросети LeNet-5 и сравнивалась с некриптоверсией.

Ниже приведены графики обучения, показатели качества и время обучения.

По точности результаты на тестовом наборе оказались идентичными.

Но вы можете видеть, сколько времени потребовалось сети CryptoCNN на обучение.

Все временные затраты вызваны довольно трудоемкими криптографическими операциями.



CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

Рис.

4. Расписание тренировок

CryptoNN: обучение нейронных сетей на основе зашифрованных данных.
</p><p>
 Сочетание конфиденциальности данных и нейронных сетей

Рис.

5. Сравнительная таблица

Заключение

В этой статье я представил анализ метода CryptoNN, который позволяет обучать нейронные сети на зашифрованных данных с использованием функциональной схемы шифрования.

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

При реализации CryptoNN на основе некриптонейронных сетей точность модели не меняется, при этом соблюдаются концепции конфиденциальности данных и пользователи могут быть защищены от злоумышленников.



Ссылки

CryptoNN: обучение нейронных сетей на основе зашифрованных данных - https://arxiv.org/pdf/1904.07303.pdf Теги: #Машинное обучение #информационная безопасность #математика #искусственный интеллект #нейронные сети #Криптография #шифрование
Вместе с данным постом часто просматривают: