Криптография в цифровых технологиях необходима как инструмент защиты конфиденциальных данных. К 2022 году разработаны множество криптографических алгоритмов, которые постоянно совершенствуются.
Я предлагаю обратиться к одному из самых первых методов шифрования – методу подстановки. В 21-ом веке этот метод может показаться ненадежным.
Но в этой статье я попробую доказать обратное.
Моя идея основана на шифре омофонической замены. Принцип, лежащий в основе данной идеи заключается в замене всех байтов файла А номерами позиций этих байтов в файле В. Полученный файл С является зашифрованным файлом А (Рис. 1).
Теперь для того, чтобы восстановить файл А, достаточно заменить номера позиций в файле С байтами из файла В. (Рис. 2).
Для реализации данной идеи мною было разработано приложение “Homer” на языке Python.
Рассмотрим принцип шифрования в приложении Homer.
Рассмотренный ранее файл А считаем секретным. Файл В является нашей “картой” (обязательным условием файла В является присутствие в нем всех байт из файла А).
Для шифрования файла A файлом B заменим байты в файле А номерами позиций этих байт в файле В. При этом при повторении одного и того же байта в файле А пытаемся найти номер следующей позиции этого байта в файле В.
Для примера закодируем секретный файл А с содержимым “WWW” с помощью файла-карты В с содержимым “The World Wide Web” (Рис. 3).
Для рашифровки файла С считываем байты из файла карты, стоящие на позициях, указанных в файле-карте В (Рис. 4).
В результате получаем обратно исходный файл А.
На текущий момент основная проблема реализации в низкой скорости процессов шифрования/дешифрования. Но возможность использовать практически любой файл в качестве карты, без потери надежности, дает огромное преимущество перед остальными алгоритмами. Вы можете использовать фотографию, медиафайл или любой другой файл в качестве карты и хранить его в открытом доступе. Ни у кого не возникнет подозрений, что он может использоваться в качестве карты для дешифрования.
Вы можете запостить новую фотку в инстаграме, ваши друзья и коллеги будут лайкать и комментировать её, но лишь Вам будет известно, что её можно использовать для расшифровки других файлов.
В то же время, не зная этого файла, взломать исходный нереально! Не верите? Тогда скажите, что содержится в этом файле?
Алгоритм будет совершенствоваться. Буду рад конструктивным предложениям и критике. Они помогут мне развивать идею.
Вы можете найти исходный код приложения Homer в моем репозитории на github.