Apple опубликовал открытую библиотеку гомоморфного шифрования

Компания Apple объявила о создании открытой библиотеки с реализацией методов гомоморфного шифрования на языке Swift. Библиотека позволяет создавать приложения, обрабатывающие данные, доступные только в зашифрованном виде, без промежуточной расшифровки ни на одном из этапов вычислений. На выходе выдаётся зашифрованный результат, который аналогичен шифрованию результата выполнения тех же вычислений над исходными незашифрованными данными. Код проекта распространяется под лицензией Apache 2.0. Реализация основана на схеме BFV (Brakerski-Fan-Vercauteren), которая, в свою очередь, основана на задаче обучения с ошибками в кольце (RLWE), защищённой от криптоанализа квантовыми компьютерами. Низкоуровневые примитивы для шифрования используются из библиотеки Swift Crypto.

Работа с данными при гомоморфном шифровании сводится к тому, что пользователь шифрует данные и без раскрытия ключей передаёт для обработки на внешний сервер. Сервер выполняет заявленные вычисления и формирует зашифрованный результат, не имея возможности определить с какими именно данными он работает. Пользователь при помощи своих ключей расшифровывает выданные данные и получает результат в открытом виде. Гомоморфное шифрование может применяться в облачных сервисах для конфиденциальных вычислений, реализациях систем электронного голосования, организации работы с зашифрованными данными в СУБД и конфиденциальной тренировке систем машинного обучения.

В инфраструктуре Apple реализованная система применяется для конфиденциальной проверки «Caller ID» — пользователь передаёт на сервер Apple зашифрованный номер телефона, а сервер, без его расшифровки, проверяет наличие номера в чёрных списках для блокирования спама или базах данных с информацией о принадлежности номеров. В отличие от типовых схем конфиденциальной проверки ключа без его раскрытия серверу, в которых сервер передаёт клиенту всю БД, а клиент осуществляет проверку на своей стороне, применение гомоморфного шифрования позволяет ограничиться передачей на сторону клиента лишь небольшой порции метаданных. Подобный подход позволяет организовать проверку в очень больших БД, которые не могут быть переданы на сторону клиента. Код серверной части для организации подобных проверок опубликован под лицензией Apache 2.0.

Источник: http://www.opennet.ru/opennews/art.shtml?num=61655