Я уже работал с нейронными сетями и знаю большинство основ о них. Особенно у меня опыт работы с обычными многослойными персептронами. Теперь кто-то спросил меня, возможно ли следующее, и почему-то мне сложно справиться с этой проблемой:)
Ситуация
Давайте предположим, что у меня есть программа, которая может шифровать и дешифровать обычные ASCII-кодированные файлы. Я понятия не имею ни о конкретном методе шифрования, ни о используемом ключе. Все, что я знаю, это то, что программа может отменить шифрование и, таким образом, прочитать исходное содержимое.
Что я хочу?
Теперь мой вопрос: как вы думаете, можно ли обучить (какую-то) нейронную сеть, которая воспроизводит точный алгоритм дешифрования с приемлемым усилием?
Мои идеи и работа до сих пор
У меня мало опыта с шифрованием. Кто-то предложил просто принять шифрование AES, чтобы я мог написать небольшую программу для пакетного шифрования файлов в кодировке ASCII. Таким образом, это будет охватывать сбор данных обучения для контролируемого обучения. Используя зашифрованные файлы и входные данные для нейронных сетей и исходные файлы в качестве обучающих данных, я смог обучить любую сеть. Но теперь я застрял, как бы вы предложили подавать входные и выходные данные в нейронную сеть. Итак, сколько входных и выходных нейронов вы бы использовали?
Поскольку я понятия не имею, как будут выглядеть зашифрованные файлы, возможно, лучше всего передать данные в двоичном виде. Но я не могу просто использовать тысячи входных и выходных нейронов и передавать все биты одновременно. Может быть, периодические сети и кормить один бит за другим? Также звучит не очень эффективно.
Другая проблема заключается в том, что вы не можете частично расшифровать, что означает, что вы не можете быть примерно правильными. Вы либо поняли это правильно, либо нет. Другими словами, в итоге чистая ошибка должна быть равна нулю. Из того, что я испытал до сих пор с ANN, этого практически невозможно достичь для больших сетей. Так разрешима ли эта проблема?