Как стать автором
Обновить

Homer – новый шифр омофонической замены

Время на прочтение2 мин
Количество просмотров4.8K

Криптография в цифровых технологиях необходима как инструмент защиты конфиденциальных данных. К 2022 году разработаны множество криптографических алгоритмов, которые постоянно совершенствуются.

Я предлагаю обратиться к одному из самых первых методов шифрования – методу подстановки. В 21-ом веке этот метод может показаться ненадежным.

Но в этой статье я попробую доказать обратное.

Моя идея основана на шифре омофонической замены. Принцип, лежащий в основе данной идеи заключается в замене всех байтов файла А номерами позиций этих байтов в файле В. Полученный файл С является зашифрованным файлом А (Рис. 1).

Рис. 1 – Процедура шифрования
Рис. 1 – Процедура шифрования

Теперь для того, чтобы восстановить файл А, достаточно заменить номера позиций в файле С байтами из файла В. (Рис. 2).

Рис. 2 – Процедура дешифрования
Рис. 2 – Процедура дешифрования

Для реализации данной идеи мною было разработано приложение “Homer” на языке Python.

Рассмотрим принцип шифрования в приложении Homer.

Рассмотренный ранее файл А считаем секретным. Файл В является нашей “картой” (обязательным условием файла В является присутствие в нем всех байт из файла А).

Для шифрования файла A файлом B заменим байты в файле А номерами позиций этих байт в файле В. При этом при повторении одного и того же байта в файле А пытаемся найти номер следующей позиции этого байта в файле В.

Для примера закодируем секретный файл А с содержимым “WWW” с помощью файла-карты В с содержимым “The World Wide Web” (Рис. 3).

Рис. 3 – Пример шифрования в Homer
Рис. 3 – Пример шифрования в Homer

Для рашифровки файла С считываем байты из файла карты, стоящие на позициях, указанных в файле-карте В (Рис. 4).

Рис.4 – Пример дешифрования в Homer
Рис.4 – Пример дешифрования в Homer

В результате получаем обратно исходный файл А.

На текущий момент основная проблема реализации в низкой скорости процессов шифрования/дешифрования. Но возможность использовать практически любой файл в качестве карты, без потери надежности, дает огромное преимущество перед остальными алгоритмами. Вы можете использовать фотографию, медиафайл или любой другой файл в качестве карты и хранить его в открытом доступе. Ни у кого не возникнет подозрений, что он может использоваться в качестве карты для дешифрования.

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

В то же время, не зная этого файла, взломать исходный нереально! Не верите? Тогда скажите, что содержится в этом файле?

Алгоритм будет совершенствоваться. Буду рад конструктивным предложениям и критике. Они помогут мне развивать идею.

Вы можете найти исходный код приложения Homer в моем репозитории на github.

Теги:
Хабы:
Всего голосов 8: ↑4 и ↓40
Комментарии9

Публикации

Истории

Работа

Data Scientist
83 вакансии
Python разработчик
133 вакансии

Ближайшие события

Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область