LINUX.ORG.RU

Симметричная криптография. Кому знаком алгоритм? Или просто любит головоломки?

 , ,


0

2

Доброго дня. Имеются множество файлов XML, как в текстовом (ASCII), так и закриптованном формате.

Шифрование симметричное. Блоками по 3 байта. Поэтому результирующий файл получается на 1-2 байта длиннее, в зависимости от кратности 3м размера текстового. Эти 1-2 байта окончания всегда одни и те же. 1й байт явно берется из фиксированной кодовой таблицы (к примеру. букве А соответствует 13, а - 2f, Б соответветствует 3е, т.е. каждому символу таблицы ASCII какой-то уникальный номер размером в байт) до какого-то события (то ли количество повторений, то ли смещение от начала или ещё что-то). Потом используется другое значение, но тоже фиксированное. До 3х значений, Т.Е.

  1. 2E = 26 or 27 or 24

  2. 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

Может кто знаком с алгоритмом? Или просто любит головоломки?



Последнее исправление: Rustam2v (всего исправлений: 7)

3 байта - значит весь словарь у него всего 16 миллионов элементов, можно сбрутфорсить и пользоваться этим массивом.

1й байт явно берется из фиксированной кодовой таблицы до какого-то события

Непонятно что ты хотел этим сказать.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Непонятное дополнил. Брутфорсить нельзя, поскольку нет бесконечного размера некриптованного материала. У меня около 100 фалов с текствовыми исходниками, и несколько тысяч закриптованных. Кроме того, блоки по 3, но исходник генерили люди, а следовательно один дополнительный коммент или пробел в начале файла и криптованный результат абсолютно отличается, «палец» и " палец" так можно до бесконечности брутфорсить ))) Отбрутфорсил кодовую таблицу первого символа по всем имеющимся фвйлам, пока не обнаружил, что работает до какого-то события. После чего соответствия меняются на близкие по значению.

2E = 26 в какой-то момент становится 27 потом 24 может вернутся на 26 и перескочить на 24

Принцип подмены пока не понял.

Rustam2v
() автор топика
Ответ на: комментарий от alysnix

Файлы использовались для двух программ, одна только с закрытыми, и там их несколько тысяч и шла по платной подписке для достаточно широкого круга пользователей

Вторая узкофункциональная для отладчиков под конкретные случаи, там файлы поштучно и открытые, так и собралась коллекция.

Rustam2v
() автор топика