Кодирование в рунах
Сделал небольшой шуточный проект – утилита кодирования двоичных данных, аналогично Base32, но на основе англосаксонских (древнегерманских) рун. Код доступен на GitHub. Base32 это алгоритм кодирования данных, использующий латинский алфавит. Он устроен аналогично несколько более широко известному Base64. Смысл использования подобных схем кодирования в том, чтобы отобразить произвольные “двоичные данные” в алфавит, который можно передать через “текстовый канал”, например, электронной почтой (или даже в виде простой распечатки). Конечно, с рунами этот фокус не сработает. Поэтому – проект шуточный.
Руны входят в таблицы Unicode. (“Обобщённые” символы Unicode тоже называют рунами, но в нашем случае – речь про конкретное подмножество, про англосаксонские руны.) Используемое кодирование (представление Unicode) занимает по три байта на каждую руну. При этом для записи 40 битов (пять байтов) в Base32 используется 8 символов: каждый символ несёт пять битов, откуда, собственно, число 32 == 2^5. То есть, получается, что Base32 на основе рунического письма в Unicode превращает пять байтов исходных данных в 24 байта (восьмибитных) закодированного текста. Не очень-то экономно. Оригинальный вариант Base32, построенный на латинском ASCII-алфавите и ASCII-цифрах, даёт результат лучше: пять байтов кодируются восемью байтами (если при кодировании текста используется привычное, 8-битное, представление байта). Но руны выглядят интереснее, что подтверждается скриншотом ниже, на котором запечатлён TLS-сертификат, записанный в runic32.
Примеры использования утилиты, написанной на Go, приведены на странице репозитория Runic32 в GitHub.
Адрес записки: https://dxdt.ru/2021/06/17/9060/
Похожие записки:
- Централизация обновлений и CrowdStrike
- "Сверхмашинный" интеллект
- TIKTAG и процессоры с кешированием
- Port knocking как инструмент управления доступом к скрытым сервисам
- Техническое: имена в TLS и Nginx
- Техническое: экзотические настройки в SPF
- Реплика: слух человека и преобразование Фурье
- Техническое: один практический пример ошибочных настроек DNS
- Тексты про ИИ и Situational Awareness с программным кодом
- Общее представление о шифрах и бэкдоры
- Разгадка к задаче про 25519
Комментарии читателей блога: 2
1 <t> // 17th June 2021, 23:45 // Читатель Nataraj написал:
И высечь в камне!
2 <t> // 28th June 2021, 20:22 // Читатель alex написал:
Можно на 3D-принтере напечатать – будет гламурно
Написать комментарий