Доброго дня. Имеются множество файлов XML, как в текстовом (ASCII), так и закриптованном формате.
Шифрование симметричное. Блоками по 3 байта. Поэтому результирующий файл получается на 1-2 байта длиннее, в зависимости от кратности 3м размера текстового. Эти 1-2 байта окончания всегда одни и те же. 1й байт явно берется из фиксированной кодовой таблицы (к примеру. букве А соответствует 13, а - 2f, Б соответветствует 3е, т.е. каждому символу таблицы ASCII какой-то уникальный номер размером в байт) до какого-то события (то ли количество повторений, то ли смещение от начала или ещё что-то). Потом используется другое значение, но тоже фиксированное. До 3х значений, Т.Е.
-
2E = 26 or 27 or 24
-
43 = A2 or A3 or A1
Второй и третий байты шифрованного блока как-то вычисляются опираясь видимо на первый шифрованный и 2-3 байты входящего текстового блока. Точно с привязкой только к позиции (2-3) в блоке, иначе бы хвостики окончаний файлов были бы разные
Из ограничений - симметричность (т.е. байт вход, байт выход), вхотящий поток текстовый ASCII, обратимость щифрования.
Как образец:
Hex ASCII (желающие смогут разглядеть текст) 3C 43 6F 6E 66 69 67 44 61 74 61 4C 69 73 74 3E 0D 0A 20 20 3C 43 6F 6E 66 69 67 49 74 65 6D 73 3E 0D 0A 20 20 20 20 3C 43 6F 6E 66 69 67 49 74
Hex шифрованный типа бурда. 2C F6 3E 37 F9 B7 99 CB 6B A8 81 92 54 16 1C 2C A7 05 5F 91 CE A2 19 EC 9B F6 EE 10 1B 5B 34 14 BB 42 88 8A 5F 91 CA 2C F6 3E 37 F9 B7 99 C6 DC
Может кто знаком с алгоритмом? Или просто любит головоломки?