R2-D2, C3PO и Чубакка учатся шифровать сообщения или генеративно-состязательные сети в криптографии

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

R2-D2 и C3PO
R2-D2 и C3PO

Введение

Задавались ли вы вопросом: могут ли нейронные сети использовать секретные ключи для защиты информации? В этой статье мы узнаем, как обучить две нейронные сети (будем называть их R2-D2 и C3PO) end-to-end шифрованию и дешифрованию сообщений с помощью секретного ключа, не предписывая им конкретные криптографические алгоритмы, а вместо этого мы будем тренировать их с нуля.

Детали обучения

Начнем с R2-D2. Он будет получать на вход n-битное сообщение (закодированное в вектор значений -1 и 1 для представления 0 и 1 соответственно) и аналогично закодированный n-битовый ключ. Задача R2-D2 состоит в том, чтобы выдать n-битный вектор, его мы воспринимаем как зашифрованный текст. R2-D2 будет представлять из себя полносвязный слой, за которым следуют четыре одномерных сверточных слоя.

R2-D2
R2-D2

В обработке изображений, чтобы воспользоваться свойством пространственной локальности в изображениях, более распространено использование сверточных слоев, за которыми следует полносвязный слой. Для криптографии же мы хотим, чтобы локальность была изученным свойством, а не заданным заранее (когда первые n-бит соответствуют тексту, а следующие n-бит - ключу).

C3PO получает в качестве входных данных зашифрованный текст и тот же ключ, который был дан R2-D2. Задача C3PO: восстановить исходное сообщение. Архитектура нейронной сети C3PO идентична R2-D2:

C3PO
C3PO

Вот и все, вперед нейронные сети!

классическая ситуация в нейронных сетях
классическая ситуация в нейронных сетях

Стойте стойте стойте, а ведь R2-D2 и C3PO начнут просто игнорировать ключи и передавать на выход исходное сообщение, зачем им учиться шифровать и дешифровать сообщения с помощью данного ключа? Тут нам и понадобится Чубакка.

Чубакка
Чубакка

Чубакка будет представлять из себя враждебную нейронную сеть, которая на вход получает только зашифрованный текст и пытается выдать исходный текст.

Чубакка
Чубакка

Чем лучше у Чубакки это получается, тем хуже шифруют и дешифруют сообщения R2-D2 и C3PO. И наоборот, чем лучше R2-D2 и C3PO шифруют и дешифруют сообщения, тем хуже у Чубакки получается расшифровать зашифрованный текст без ключа.

Функция потерь Чубакки и C3PO - L1 расстояние от исходного сообщения. Другими словами, они обучаются восстанавливать сообщение по зашифрованному тексту. Функция потерь для C3PO обновляется таким образом, чтобы она также учитывала оценку реконструкции Чубакки (чем лучше Чубакка восстанавливает сообщение, тем больше функция потерь C3PO).

Все вместе выглядит так:

Теперь точно все, приступаем к обучению!

Результаты обучения

Красная линия показывает ошибку реконструкции Чубакки, а зеленая линия - ошибку C3PO. Вы можете видеть, что примерно за 8000 шагов обучения C3PO и Чубакка начинают восстанавливать исходное сообщение (хотя C3PO справляется лучше, чем Чубакка). Примерно через 15000 шагов обучения C3PO эффективно дешифрует зашифрованное сообщение.

Ручная проверка сети R2-D2 показала, что эффект изменения ключевого бита или бита текста распространялся на несколько элементов зашифрованного текста (а не ограничивался одним битом, как это было бы с XOR). Обычно однобитное изменение значительно влияет на 3-6 элементов вывода с меньшими изменениями в других элементах.

P.S. реализация будет доступна позже.

Источник: https://habr.com/ru/post/594945/


Интересные статьи

Интересные статьи

Огромную популярность соцсети Clubhouse можно объяснять по-разному: от удачного времени запуска (во время пандемии) до ее элитарного характера (система инвайтов, нет запи...
Улица с четырьмя полосами движения сужается до двух, чтобы вместить рабочих, ремонтирующих большую выбоину. Один рабочий держит в левой руке знак остановки, а правой маше...
Есть несколько способов добавить водяной знак в Битрикс. Рассмотрим два способа.
Всем привет. Когда я искал информацию о журналировании (аудите событий) в Bitrix, на Хабре не было ни чего, в остальном рунете кое что было, но кто же там найдёт? Для пополнения базы знаний...
Привет Хабр. В процессе изучения нейронных сетей возникла мысль, как бы применить их для чего-то практически интересного, и не столь заезженного и тривиального, как готовые датасеты от MNIST. ...