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

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

Публикации

Истории

Работа

Python разработчик
127 вакансий
Data Scientist
73 вакансии

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

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
20 – 22 сентября
BCI Hack Moscow
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн