Энтропия (продолжение) |
[Nov. 16th, 2010|11:22 am] |
Помучавшись немного с кодом, понял что, во-первых, предложенный вариант неправильный (извините, протупил), во-вторых, это решение не той задачи. Снизить энтропию очень легко, достаточно просто убрать два бита, то есть для каждых трех байт, записывается еще один байт с шестью битами, отрезанными от предыдущих трех. Получается 56 вариантов расшифровщика, или использовать подстановочный шифр с размером символа шесть бит. Энтропия гарантированно не превысит 6. Просто по определению. Это естественно не единственное решение - можно другой какой-нибудь код, например что-то хаффманоподобное. Другой вариант, более интересный - это разбавить высокоэнтропийный текст так, чтобы он напоминал код. Можно подгонять вероятности вхождения символа в текст, но это приведет к существенному увеличению длины текста, а в результате только нормальная энтропия, и "правильные" частоты. Интересный вариант (на васме упоминается) сгенерировать "код", а куски шифрованного текста вставить в инструкции "кода", в ModRM, SIB, адрес/значение. Инструкции выбирать не совсем случайно, или марковскими цепями. Из минусов - парсер инструкций в декрипторе, так что даже не знаю, стоит ли этим заниматься? |
|
|
Comments: |
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | November 18th, 2010 - 01:17 pm |
---|
| | | (Link) |
|
конечно, стоит. только не спрашивай, зачем — на второй и сложный не отвечаю. | |