Эта статья от Google и называется: «Практическая безопасная агрегация для машинного обучения с сохранением конфиденциальности». Авторами являются Кит Бонавиц и др. Статья была опубликована в CCS 2017. Давайте сначала разберемся с общим контекстом этой статьи:
- Introduction
- Secure Aggregation for Federated Learnign
- Cryptographic Primitives
- Technical Intuition
- A Practical Secure Aggregation Protocol
- Security Analysis
- Evaluation
- Discussion and Future Work
вводить
Давайте начнем с картинки, просто взгляните на нее.
Основное содержание этой статьи состоит в том, чтобы предложить безопасное агрегирование, которое в следующем тексте будет называться безопасным суммированием.Он используется в сценарии федеративного обучения для агрегирования градиентов каждого клиента с сервера параметров в нескольких клиентских сценариях. Таким образом, проблема определяется как:
имеютклиенты, где каждый клиентесть личные данные. Бизнес-требования требуют, чтобы все клиенты объединились, чтобы совместно найти частное иНа сервер, и при этом соблюдать требования безопасности, то есть не допускать утечки данных на сервер и другим клиентам.
В сценарии приложения в этой статье в основном выбирается мобильный телефон в качестве клиента, что является относительно репрезентативным сценарием FL.В этом сценарии есть две основные проблемы:
- Связь: лучше не занимать слишком много трафика, полосы пропускания и т. д.;
- Выпадение: мобильный телефон пользователя выходит из-под контроля, и клиенты часто выпадают.
Поэтому в данной статье предлагаются две модели:
- простая модель: высокая эффективность, может противостоять злоумышленникам HBC;
- модель случайного оракула: может лучше защитить конфиденциальность и противостоять активному серверу противника.
Безопасная агрегация в рамках федеративного обучения
В этой главе кратко рассказывается о том, почему в сценарии FL используется безопасное агрегирование, и рассказывается о текущих так называемых «болевых точках». Ведь это Google, и именно эти болевые точки встречаются в реальных приложениях, а не недостатки в теоретической ситуации, описанной в обычных статьях. В целом, в сценарии федеративного обучения хорошая агрегация безопасности должна соответствовать следующим требованиям:
- Может обрабатывать многомерные векторы
- communication-efficient
- robust to users dropping out
- Иметь надежные функции безопасности (для серверной или неавторизованной сетевой модели)
Основы криптографии
Здесь в основном задействованы следующие понятия, которые будут введены одно за другим позже Некоторые вещи используются непосредственно в английском языке, не зная, как перевести их на китайский язык, что на самом деле очень легко понять.
- делиться секретами
- Key Agreement
- Authenticated Encryption
- Генератор псевдослучайных чисел
- механизм цифровой подписи
- Инфраструктура открытого ключа PKI
делиться секретами
Это родственное понятие криптографии, которое можно назвать разделением секрета.Когда секрет представляет собой секретный ключ, его также можно назвать разделением секретного ключа. Его функция заключается в том, чтобы поместить секретвыделенныйпользователей, то этолюбой из пользователейПользователи могут восстановить секреты. Мы предполагаем, что пользовательский набор. Таким образом, совместное использование секрета состоит из двух частей:
- Стадия распространения:, указывая на то, что секретДоступно всем пользователям, все данные являются секретным ресурсом;
- Этап восстановления:, представляющий заданную серию пользователей и секретных ресурсов, а также пороговое значение, вы можете восстановить секрет.
Key Aggrement
Ключевое соглашение включает в себя следующие операции:,в,дает общедоступные параметры, затемРазрешить любому пользователю генерировать открытые и закрытые ключи, а затемпредставляет пользователяВы можете комбинировать свой закрытый ключ с открытым ключом другой стороны, чтобы получитьимеждусекрет.
В этой статье используется протокол обмена ключами Диффи-Хеллмана, и три операции:
- , генерация простых чиселгруппа, генератор есть, а задана хэш-функция;
- , Выбратькак закрытый ключ,как открытый ключ
- ,рассчитать.
Таким образом, после трех вышеуказанных операций две стороны, совместно использующие данные, могут получить случайное число, известное только им., в котором используется принцип, а затем задайте хеш-функцию.
Authenticated Encryption
Аутентифицированное шифрование гарантирует конфиденциальность и целостность при передаче сообщений между двумя сторонами. Он включает в себя три операции:
- Алгоритм генерации секретного ключа, сгенерировать секретный ключ;
- , используя данные пары ключейЗашифруйте и получите зашифрованный текст, предполагая, что зашифрованный текстБар;
- , раскрыть секрет шифртекста, вывести надпись, если ее можно расшифровать, иначе вывести флаг ошибки.
Так что, если это правильно, есть, то есть расшифровка прошла успешно
Генератор псевдослучайных чисел
Генератор псевдослучайных чисел, сокращенно PRG, также имеет документ под названием PRNG, то есть Генератор псевдослучайных чисел. В этой статье достаточно понимать PRG таким образом.Давая начальное число случайных чисел, PRG может генерировать одно или несколько новых случайных чисел на основе этого начального числа.Хотя оно генерируется по формулам, люди не могут найти правила. Вот почему это называется «псевдо» случайными числами.
Механизм подписи
Механизм подписи состоит из трех операций, а именно:
- , что означает создание пары открытый-закрытый ключ;
- , что указывает на то, что сообщение связано с закрытым ключомподписывать;
- , проверяет подпись с помощью открытого ключа и сравнивает ее с исходными даннымиСделайте сравнение, чтобы определить, пройдена ли проверка.
инфраструктура открытых ключей
PKI представляет собой набор функций, используемых для создания, управления, хранения, распространения и отзыва секретных ключей и сертификатов на основе криптографии с открытым ключом. Таким образом, можно легко запускать различные алгоритмы на основе ключей.
Техническая отправная точка
Размышляя об определении проблемы, с которого мы начали, мы имеемпользователей, каждый со значением, то сервер должен вычислить, но каждый пользователь не может передавать свои данные. Поэтому автор дает такую идею, может ли пользователь 1 вычесть число, а пользователь 2 добавить число, чтобы данные пользователя 1 и пользователя 2 были неточными, но общая сумма все равно была точной. Затем эта идея расширяется, и в статье появляется схема.
Masking with One-Time Pads
Все пользователи согласовывают случайное число парами, а именно: пользовательс пользователямиСогласованные случайные числа, а затем для данныхВозмущение выполняется по следующей формуле, и результат:
Конечно, в сцене FL вышеперечисленноеина самом деле являются многомерными векторами. Для удобства иллюстрации проблемы последующее описание представлено не в виде вектора. Тогда, очевидно, можно доказать, что:. Итак, сервер вычисляет:
Например, если есть три данных, то процесс маскирования таков:
Ниже приведена диаграмма, иллюстрирующая проблему, а именно:
Следовательно, ** означает, что каждое случайное число вычитается один раз и добавляется снова. ** Поэтому есть:
Эта логика кажется идеальной, но она еще не решена и сталкивается со следующими проблемами:
- Как договориться о случайных числах
- Что, если клиент внезапно отключится?
Как согласовать случайные числа
Текущий алгоритм заключается в том, как определить случайное число в парах, и это случайное число не может быть известно третьей стороне. Эта схема может быть реализована с использованием схемы согласования ключей DH, а накладные расходы на связь могут быть уменьшены с помощью генератора псевдослучайных чисел (PRG). Согласованный ключ используется в качестве начального значения для генератора псевдослучайных чисел PRG. Таким образом, согласование случайного числа на самом деле является согласованием начального числа случайного числа.
Что делать, если клиент отключился/задержался
Вышеуказанные шаги вроде бы способны решить проблему Secure Aggregation, но возникнет новая проблема, если клиент "отвалится", что делать?
С тем же успехом мы могли бы предположить, что второй клиент отключен, тогда текущий запрос на самом деле состоит в том, чтобы спросить, чтобы сервер мог запросить прибытие 1-го и 3-го клиентов, то можно рассчитать по следующей формуле:
Кажется, нет никаких проблем, когда он выходит из сети. Но подумайте, что если клиент отключится на этапе восстановления? Так что нам нужен способ восстановить эти случайные числа, пока есть достаточное количество клиентов. С точки зрения понимания, мы можем думать, что каждый клиент ставитРаспространяется секретным обменом, и пока естьЕсли клиент находится в сети, вы можете восстановить его обратно в. (На самом деле то, что распределяется, это доля открытого ключа, и то по открытому ключу иданные, можно рассчитать). с этим-out-of-Схема обмена ключами, пока естьЕсли пользователь онлайн, он не боится отключения клиента.
Но подождите, если он не упал, аНа этот раз из-за задержкиА если вдруг?
В это время мы можемпонять этоДа, исходные данные восстановлены. Табу. так что мыДолжна быть не только возможность восстановить случайное число из-за отключения/задержки пользователя., но и убедитесь, что данные невозможно восстановить.
Double-Masking
Итак, автор пытается ввести новое случайное число, привяжите это случайное число к данным, например:
PRG может быть менее подробным и пониматься непосредственно какВот и все. Затем используйте следующую стратегию:
- На этапе распределения случайное числоираспространяются с использованием схемы обмена секретами и гарантируютпользователь может восстановить.
- На этапе восстановления для честного пользователя, он неиСкажи это одновременно.если пользовательупал, тоскажет, если пользовательонлайн, тогдаскажет.
Разумеется, упомянутые выше т.н.на самом деле сказатьподелитесь хотьподелиться, чтобы восстановить. Поскольку используются два типа случайных чисел, этот метод также называется двойной маской. То есть в том случае, если все-таки не все отключеныЕго можно восстановить, и схема с двумя масками эквивалентна схеме с одной маской. в пользователеВ случае отключения данныеЭто будет улажено, не принося его, так чтоПросто оставьте это в покое, восстановитеДостаточно.
общий процесс
В сочетании с базовыми знаниями о криптографии и механизме маскирования, используемом в статье, общий процесс показан на рисунке выше. Среди них красный — это решение для активного противника, которое можно игнорировать для модели безопасности HBC. На самом деле, разобравшись в методе Маскирования, вы сможете спроектировать соответствующий механизм в соответствии со своими потребностями, поэтому этот механизм не нужно так глубоко изучать.
Затем автор перечисляет затраты на расчет, связь и хранение на стороне пользователя и на стороне сервера на разных этапах, где количество пользователей, измерение данных каждого пользователя равно, различные затраты показаны в следующей таблице:
другие главы
Лично я чувствую, что основная часть этой статьи была понята здесь.Следующие разделы включают дальнейшее уточнение этого протокола, описание безопасности, экспериментальные результаты и связанную работу. Если вы обнаружите здесь какие-либо ямы, когда в будущем соприкоснетесь с соответствующим контентом, пожалуйста, восполните это.
На этом содержание этой статьи заканчивается. Добро пожаловать в общедоступный аккаунт «Дифференциальная конфиденциальность», чтобы получить больше передовых технологий.