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