«Сотворение Адама» по версии
DeepDream.
Изображение: Kyle McDonald /
flickr.com
|
Дуэт ученых из Google Brain провел необычный эксперимент: авторы создали три нейросети, две из которых — Алиса и Боб — обменивались зашифрованными сообщениями, а третья сеть — Ева — пыталась их «подслушать» и расшифровать переписку. Разработчики не регулировали то, как именно Алиса и Боб шифровали сообщения, тем не менее, в большинстве тестовых запусков нейросетям удавалось создать метод шифрования, который Ева не смогла взломать. Препринт исследования выложен на arXiv.org.
Интерес к все более новым системам шифрования во многом обусловлен требованиями современных платежных системам и в целом проблемой безопасности обмена данными в интернете. Проблему защищенной передачи информации пытаются решать разными способами: например, используя квантовое шифрование или децентрализованные сети, в которых пользователи сами проверяют достоверность транзакций. Однако существуют и более необычные сферы применения шифрования, например, в сложных программах на основе нейросетей может потребоваться скрыть ту или иную информацию от определенных частей системы. В этом случае разработчикам не столь важно понять, как именно нейросеть будет шифровать данные, до тех пор, пока программа справляется со своей задачей.
Авторы новой работы решили проверить, насколько нейросети вообще способны обучаться методам шифрования. Для этого ученые создали тестовую систему: нейросеть Алиса получала входное сообщение и условный «ключ», а на выходе генерировала зашифрованное сообщение, которое передавалось Бобу вместе с ключом. Задачей Боба было воспроизвести исходное сообщение, которое получила Алиса. Третья нейросеть — Ева — получала только зашифрованное сообщение, а ее задача была такой же, как у Боба — прочитать исходное сообщение.
Нейросети обучали методом обратного распространения ошибки, при этом от функция потерь Евы зависела лишь от того, насколько она ошиблась при расшифровки сообщения. Алису и Боба же тренировали вместе так, чтобы Боб ошибался как можно меньше (успехом считалось наличие менее 5 процентов ошибок в тексте сообщения), а условная «идеальная Ева» (оптимально работающая для данного набора сообщений и ключей) ошиблась как можно сильнее - ее результат должен был не очень отличаться от результата случайного перебора.
Оказалось, что для сообщений длиной 16 бит в 14 из 20 случаев Алисе и Бобу удавалось создать такой алгоритм шифрования, что Боб с 95-процентной точностью воспроизводил сообщения, а Еве удавалось угадать максимум 8 бит из 16. Поскольку каждый бит имел значение или 0 или 1, результат 50/50 соответствовал простому случайному перебору. Для сообщений длиной 32 и 64 бит наблюдалась похожая тенденция, хотя для 64-битных сообщений Алиса и Боб чаще справлялись с задачей.
Авторы отмечают, что описанным ими способом вряд ли можно создать качественно новый алгоритм шифрования, хотя бы потому, что сами нейросети плохо поддаются интерпретации (нельзя «заглянуть внутрь» и понять, как именно они шифруют данные). Однако по результатам эксперимента ученым удалось заметить, что Алиса и Боб действительно пользовались ключом шифрования, так как для разных ключей при одном и том же исходном сообщении результат шифрования выглядел по-разному.
Интерес к все более новым системам шифрования во многом обусловлен требованиями современных платежных системам и в целом проблемой безопасности обмена данными в интернете. Проблему защищенной передачи информации пытаются решать разными способами: например, используя квантовое шифрование или децентрализованные сети, в которых пользователи сами проверяют достоверность транзакций. Однако существуют и более необычные сферы применения шифрования, например, в сложных программах на основе нейросетей может потребоваться скрыть ту или иную информацию от определенных частей системы. В этом случае разработчикам не столь важно понять, как именно нейросеть будет шифровать данные, до тех пор, пока программа справляется со своей задачей.
Авторы новой работы решили проверить, насколько нейросети вообще способны обучаться методам шифрования. Для этого ученые создали тестовую систему: нейросеть Алиса получала входное сообщение и условный «ключ», а на выходе генерировала зашифрованное сообщение, которое передавалось Бобу вместе с ключом. Задачей Боба было воспроизвести исходное сообщение, которое получила Алиса. Третья нейросеть — Ева — получала только зашифрованное сообщение, а ее задача была такой же, как у Боба — прочитать исходное сообщение.
Нейросети обучали методом обратного распространения ошибки, при этом от функция потерь Евы зависела лишь от того, насколько она ошиблась при расшифровки сообщения. Алису и Боба же тренировали вместе так, чтобы Боб ошибался как можно меньше (успехом считалось наличие менее 5 процентов ошибок в тексте сообщения), а условная «идеальная Ева» (оптимально работающая для данного набора сообщений и ключей) ошиблась как можно сильнее - ее результат должен был не очень отличаться от результата случайного перебора.
Оказалось, что для сообщений длиной 16 бит в 14 из 20 случаев Алисе и Бобу удавалось создать такой алгоритм шифрования, что Боб с 95-процентной точностью воспроизводил сообщения, а Еве удавалось угадать максимум 8 бит из 16. Поскольку каждый бит имел значение или 0 или 1, результат 50/50 соответствовал простому случайному перебору. Для сообщений длиной 32 и 64 бит наблюдалась похожая тенденция, хотя для 64-битных сообщений Алиса и Боб чаще справлялись с задачей.
Авторы отмечают, что описанным ими способом вряд ли можно создать качественно новый алгоритм шифрования, хотя бы потому, что сами нейросети плохо поддаются интерпретации (нельзя «заглянуть внутрь» и понять, как именно они шифруют данные). Однако по результатам эксперимента ученым удалось заметить, что Алиса и Боб действительно пользовались ключом шифрования, так как для разных ключей при одном и том же исходном сообщении результат шифрования выглядел по-разному.