herm1t LIVE!ng room - Энтропия (продолжение) [entries|archive|friends|userinfo]
herm1t

[ website | twilight corner in the herm1t's cave ]
[ userinfo | ljr userinfo ]
[ archive | journal archive ]

Энтропия (продолжение) [Nov. 16th, 2010|11:22 am]
Previous Entry Add to Memories Tell A Friend Next Entry
[Tags|]

Помучавшись немного с кодом, понял что, во-первых, предложенный вариант неправильный (извините, протупил), во-вторых, это решение не той задачи. Снизить энтропию очень легко, достаточно просто убрать два бита, то есть для каждых трех байт, записывается еще один байт с шестью битами, отрезанными от предыдущих трех. Получается 56 вариантов расшифровщика, или использовать подстановочный шифр с размером символа шесть бит. Энтропия гарантированно не превысит 6. Просто по определению. Это естественно не единственное решение - можно другой какой-нибудь код, например что-то хаффманоподобное. Другой вариант, более интересный - это разбавить высокоэнтропийный текст так, чтобы он напоминал код. Можно подгонять вероятности вхождения символа в текст, но это приведет к существенному увеличению длины текста, а в результате только нормальная энтропия, и "правильные" частоты. Интересный вариант (на васме упоминается) сгенерировать "код", а куски шифрованного текста вставить в инструкции "кода", в ModRM, SIB, адрес/значение. Инструкции выбирать не совсем случайно, или марковскими цепями. Из минусов - парсер инструкций в декрипторе, так что даже не знаю, стоит ли этим заниматься?
LinkLeave a comment

Comments:
[User Picture]
From:[info]ketmar
Date:November 18th, 2010 - 01:17 pm
(Link)
конечно, стоит. только не спрашивай, зачем — на второй и сложный не отвечаю.