Microsoft изобретает быструю криптосеть


CryptoNet — это нейронная сеть, которая работает как стандартная нейронная сеть, но с зашифрованными данными. Он может делать прогнозы на основе данных, не раскрывая их или прогноз третьей стороне. В CryptoNet нейронная сеть встречает гомоморфное шифрование.

Проблема, которую пытается решить Microsoft Research, заключается в том, как обеспечить возможности нейронной сети в качестве размещенной службы — машинного обучения как службы MLAS — безопасным способом. Потенциальный пользователь вполне может оценить результат применения нейронной сети к своим данным, но будет гораздо менее счастлив, если сделает его видимым для удаленного сервера.
Есть несколько возможных способов сохранить данные в безопасности, но наиболее желательным является использование гомоморфного шифрования. Предположим, вы хотите отправить два числа на сервер «сложения», он складывает их и отправляет обратно результат. Вы можете использовать стандартное шифрование для отправки двух элементов данных, но тогда серверу потребуется ключ дешифрования, чтобы расшифровать значения, добавить их и затем зашифровать результат.
Это работоспособно, но явно потенциально негерметично.
Гомоморфное шифрование позволяет пользователю отправлять два зашифрованных значения, чтобы сервер мог добавить зашифрованные значения и отправить результат обратно пользователю. Затем пользователь может расшифровать результат, чтобы получить сумму исходных значений.
Другими словами, при гомоморфном шифровании сумма зашифрованных значений является шифрованием суммы исходных значений.
Гомоморфное шифрование — это почти волшебство, но были изобретены схемы сложения и умножения, но они очень медленные.
CryptoNet — это нейронная сеть, которая работает с гомоморфно закодированными данными для получения закодированного результата. Поскольку мы можем создавать гомоморфные коды, которые сохраняют сложение и умножение, и мы можем организовать нейронную сеть для работы только с этими операциями. Проблема в том, что обучение и использование нейронной сети уже отнимают много времени.
Прорыв заключается в точном сопоставлении характеристик гомоморфного шифрования с нейронной сетью и наоборот. Гомоморфное шифрование на самом деле работает с полиномами, то есть шифрует полином, и до тех пор, пока в работе нейронной сети задействованы только полиномы, мы можем получить ускорение с помощью инструкций SIMD.
В этом случае для упаковки изображений в пакеты по 8192 использовались полиномы степени до 8192. Для обучения сети использовалась база данных рукописных цифр MNIST. Был использован обучающий набор из 50 000 изображений, а в оставшихся 10 000 тестовых случаев сеть достигла точности 99%. Каждое изображение имеет размер 28×28, и за одну 122-секундную операцию можно закодировать 8191 изображение. Сеть может быть применена за 570 секунд на ПК с 16 ГБ оперативной памяти и Xeon E5, работающим на частоте 3,5 ГГц. Расшифровка результата занимает 5 секунд. Это дает общую пропускную способность 77236 изображений в час, что достаточно практично для коммерческой службы.
Идея смешения вычислительной сложности нейронных сетей и гомоморфного шифрования кажется неудачной, но, очевидно, это возможно. Вы можете обучать и использовать нейронную сеть с зашифрованными данными, не расшифровывая их предварительно.
На данный момент сложно сказать, пойдет ли эта технология куда-нибудь. Неясно, насколько велик или может быть спрос на машинное обучение как услугу. Также неясно, как часто проблемы безопасности данных делают этот подход желательным.


Добавить комментарий