Как спрятать пароль в классической китайской поэзии
Представьте, что вы читаете изящное четверостишие о весеннем саде, летящих журавлях и туманных горах. Выглядит как цитата из древнего трактата, но на самом деле это зашифрованный ключ от вашего криптокошелька или пароль от почты. Именно такую магию предлагает проект Abracadabra (или 魔曰 на китайском).
Я наткнулся на этот репозиторий, когда искал способы передачи конфиденциальных данных в открытых каналах так, чтобы это не выглядело как подозрительный набор символов. Обычно шифрование выдает себя сразу: любой увидит строку Base64 или шестнадцатеричный дамп и поймет — тут что-то прячут. Abracadabra решает проблему иначе, маскируя данные под литературный текст.
Что это вообще такое
Abracadabra — это инструмент для стеганографии и шифрования, который превращает любой текст в стилизованную китайскую прозу в жанре «вэньянь» (классический письменный язык). Это не просто замена букв на случайные иероглифы. Разработчики проделали огромную работу, чтобы зашифрованный текст следовал грамматике и стилистике реальных классических произведений, таких как «Гувэнь Гуаньчжи».
Проект полностью открыт, написан на JavaScript и использует WebAssembly для тяжелых вычислений. Это позволяет запускать его в браузере, в виде расширения или даже как мобильное приложение без отправки данных на сервер.
Как работает магия под капотом
Процесс обработки данных здесь многослойный. Если вы думали, что это просто красивая обертка над AES, то это лишь часть правды. Конвейер выглядит примерно так:
- Сжатие. Сначала данные сжимаются. Для коротких строк используется алгоритм Unishox2, который отлично справляется с экономией байтов на маленьких объемах. Если текст большой (больше 1 КБ), включается GZIP.
- Шифрование. Основную безопасность обеспечивает AES-256-CTR. При желании можно включить «тяжелую артиллерию»: HMAC-SHA256 для подписи, PBKDF2 с 100 000 итераций для защиты пароля и даже TOTP в качестве соли.
- Тройной ротор. Это интересная деталь. Разработчики вдохновились механизмом «Энигмы» и добавили программную имитацию роторов. Каждый символ смещается по определенной логике, зависящей от хеша вашего ключа. Даже если кто-то поймет алгоритм маскировки, без ключа он увидит лишь кашу из данных.
- Лингвистическая маскировка. На финальном этапе байты превращаются в иероглифы. Система выбирает слова из специально отобранного словаря (3000 самых употребимых иероглифов) и собирает их в предложения, имитируя древний стиль.
Почему это практично
Допустим, вам нужно передать пароль в мессенджере, который просматривается, или сохранить заметку в облаке, не привлекая внимания автоматических фильтров. Вместо подозрительного SGVsbG8gd29ybGQ= вы отправляете что-то вроде:
«Утренняя роса замерзла на цветах, ветер доносит аромат чая из хижины у реки...»
В глазах алгоритмов анализа текста это просто художественный текст.
Интересный факт: автор добавил поддержку обратной совместимости с «медвежьим языком» (熊曰) — это еще один старый китайский проект для шифрования, популярный в узких кругах. Это показывает, что проект вырос не на пустом месте, а как развитие идей цифровой анонимности в восточной культуре.
Технические особенности
Проект собран на современном стеке:
- Crypto-js для базовых криптографических примитивов.
- Pako для работы с GZIP в браузере.
- Mersenne-twister для генерации псевдослучайных чисел, что критично для воспроизводимости расшифровки.
- OpenCC для корректной работы с традиционными и упрощенными иероглифами.
Разработчики предлагают несколько способов использования. Есть демо-страница, где можно потыкать функции вживую, есть расширения для Chrome, Edge и Firefox, и даже APK для Android, который работает полностью оффлайн.
Пример результата
Возьмем слово Abracadabra. После обработки в режиме имитации прозы мы получим:
不应报也。树将棋之,书曰:“天水探火,临于云楼” ,夜乃写定绸之莺,指之不为火,换之不为苗。
Это выглядит как связный текст о шахматах под деревом, книгах и ночных огнях. Для сравнения, другие подобные системы (вроде «языка животных» или «языка соцсетей») выдают лишь бесконечные «мяу-мяу» или «свобода-демократия-равенство», что сразу бросается в глаза.
Стоит ли пробовать
Если вам нравится эстетика восточных языков или вы ищете необычный способ защиты текстовой информации, Abracadabra — отличный выбор. Проект хорошо протестирован (есть Unit-тесты), код открыт и понятен.
Конечно, для защиты государственной тайны лучше использовать стандартные инструменты с открытыми ключами, но для бытовых задач — скрыть пароль от Wi-Fi в открытой заметке или обменяться ключами доступа в чате — этот проект подходит идеально. Он превращает скучную криптографию в цифровое искусство.
Единственный минус — документация в основном на китайском, но интерфейс интуитивно понятен, а Google Translate отлично справляется с переводом технических терминов в README.
С чего начать? Загляните в основной репозиторий и попробуйте зашифровать свое имя на демо-сайте. Это как минимум забавно.