энтропия Шеннона для этих 56 байт ~ 4.2 бит/на байт
общая энтропия сообщения 4.2×56 = 235 бит ( 232 было округлением )
эти 235 бит не мера криптостойкости, а мера неопределенности данных
у нас 235 бит значит данные не полностью случайны - в них есть избыточность/структура
вывод: 235 бит энтропии это не реальная криптостойкость сообщения, а статистическая мера данных. И это случай, когда энтропия вводила в заблуждение, так как данные были структурированным текстом, замаскированным шумом и преобразованиями
что касается шума в строке - там каждый 5 символ это буквально шум, что написано в подсказке в тг
внимательно посмотрите на декодированную бейс36 строку. метод Касински обнаружил повтор в 9 байт, расстояние между повторами 14 байт. вывод L= 1, 2, 7, 14 ( множители числа 14 ). Вероятнее всего был ключ 7, но если бы это был XOR, который я предполагал изначально. Но это не XOR, а кастомный шифр, который без подсказок в тг решался только брутфорсом
кстати, там ребята расшифровали уже и все оказалось еще сложнее) нужно было изначальное сообщение очистить от шума, потом бейс36, потом пройтись квадратичной функцией и потом применить шифр Цезаря со сдвигом
С учетом того, что это base36, то энтропия преобразованного сообщения в байтах ~ 232 бита ( AES-256 , к примеру, это 256 битов и он ломается только квантовым компьютером ). Есть предположение, что это на 70% шифр XOR с ключом L=7. Но даже перебор ключа это ~ 2^56 вариантов.
Я конечно не уверен, но так ли сильно в действительности просто бинарные ( байтовые ) протоколы создают безопасность? Если злоумышленник знает кодировку ( у вас utf-8, да и почти у всего интернета она ) и язык ( ваш сайт на русском ) , то перевести байты в текст дело долей секунд мне кажется. Без шифрования, как я думаю, крашится любым небольшим фреймворком, особенно при условии, что сам протокол известен, а он уже ... известен. Если был бы хотя бы небольшой алгоритм перемешивания байтов, то было бы уже что-то, как мне кажется. Все правильно? В то же время вы задаете верное направление, да, возможно классические JSON-данные не так уж хорошо защищены
исходная строка base36 - декодировали в 56 байт
энтропия Шеннона для этих 56 байт ~ 4.2 бит/на байт
общая энтропия сообщения 4.2×56 = 235 бит ( 232 было округлением )
эти 235 бит не мера криптостойкости, а мера неопределенности данных
у нас 235 бит значит данные не полностью случайны - в них есть избыточность/структура
вывод: 235 бит энтропии это не реальная криптостойкость сообщения, а статистическая мера данных. И это случай, когда энтропия вводила в заблуждение, так как данные были структурированным текстом, замаскированным шумом и преобразованиями
что касается шума в строке - там каждый 5 символ это буквально шум, что написано в подсказке в тг
внимательно посмотрите на декодированную бейс36 строку. метод Касински обнаружил повтор в 9 байт, расстояние между повторами 14 байт. вывод L= 1, 2, 7, 14 ( множители числа 14 ). Вероятнее всего был ключ 7, но если бы это был XOR, который я предполагал изначально. Но это не XOR, а кастомный шифр, который без подсказок в тг решался только брутфорсом
кстати, там ребята расшифровали уже и все оказалось еще сложнее) нужно было изначальное сообщение очистить от шума, потом бейс36, потом пройтись квадратичной функцией и потом применить шифр Цезаря со сдвигом
Так что мой расчет неправильный :)
base 36 раскладывается на строку из байтов, а ее энтропия измеряется битами. А метод Казински показал, что L скорее всего 7 или 14 :)
Это и не AES , это сравнение с AES, чтобы наглядно понять, что энтропия сравнима с промышленным стандартом
С учетом того, что это base36, то энтропия преобразованного сообщения в байтах ~ 232 бита ( AES-256 , к примеру, это 256 битов и он ломается только квантовым компьютером ).
Есть предположение, что это на 70% шифр XOR с ключом L=7. Но даже перебор ключа это ~ 2^56 вариантов.
Результаты нейросети :/
Я конечно не уверен, но так ли сильно в действительности просто бинарные ( байтовые ) протоколы создают безопасность? Если злоумышленник знает кодировку ( у вас utf-8, да и почти у всего интернета она ) и язык ( ваш сайт на русском ) , то перевести байты в текст дело долей секунд мне кажется. Без шифрования, как я думаю, крашится любым небольшим фреймворком, особенно при условии, что сам протокол известен, а он уже ... известен. Если был бы хотя бы небольшой алгоритм перемешивания байтов, то было бы уже что-то, как мне кажется. Все правильно?
В то же время вы задаете верное направление, да, возможно классические JSON-данные не так уж хорошо защищены