Энтропия

Тема в разделе "WASM.CRYPTO", создана пользователем _faq_, 22 июн 2009.

  1. _faq_

    _faq_ New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2008
    Сообщения:
    46
    Здравствуйте!
    Интересует такой вопрос: возможно ли зашифровать данные, при этом чтобы энтропия осталась не высокой (скажем в перделах 6.00)?
     
  2. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    это ты конечно сильно сказал :)
     
  3. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    6.00 - это в каких единицах?
     
  4. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    в "перделах", в каких же еще - энтропия только в них и меряется :)

    п.с.: сори за флуд - не удержался :)
     
  5. Proteus

    Proteus Member

    Публикаций:
    0
    Регистрация:
    19 июн 2004
    Сообщения:
    344
    Адрес:
    Russia
    Как-нибудь потом в ручную подогнать, после шифра. Размером данных пожертвовать по дороге.
     
  6. _faq_

    _faq_ New Member

    Публикаций:
    0
    Регистрация:
    14 мар 2008
    Сообщения:
    46
    пределах - уже не в тему флудишь.

    - извините, забыл пояснить - биты ( с точностью до сотых).

    Да, уже понял, что можно разбавить чем-нить. А может есть какой-нить такой (хитрый!) алгос, шифрующий так, чтобы не зашкаливала энтропия?
     
  7. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    _faq_
    Смотря как шифровать и как мерить энтропию.
     
  8. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    ну я полагаю, энтропия измеряется исключительно по криптованным данным. А алгоритм ее подсчета один единственный
    например?
     
  9. OLS

    OLS New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2005
    Сообщения:
    322
    Адрес:
    Russia
    Вариант 1. Перестановочные шифры. Они слабже подстановочных, но при таких оригинальных требованиях с твоей стороны, возможно, это то, что тебе подойдет.

    Вариант 2. Если входной текст имеет "энтропию 6.00" за счет каких-то определенных битов, например, двух-трех старших, то можно шифровать и подстановочным шифром (например, проще всего в режиме гаммирования), но только "изменяющуюся" часть бит. То есть в данном примере младшие 5-6 бит.

    Вариант 3. Берем английский или русский словарь с лексиконом в 65536 слов. Шифруем данные обычным блочным шифром, затем результат разбиваем на 16-битные блоки и заменяем словами из словаря. Бред получится, но уж зато к энтропии не придерешься. Можно еще заглавные буквы и точки вставлять в среднем раз в 5 слов.
     
  10. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    тогда уж лучше использовать base64 - результат увеличится в размере не на 50%, а на 30%
     
  11. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    С точки зрения теории - все просто. Есть сообщение, в нем есть полезная информация, и избыточная информация. И та и друга информация определяет энтропию сообщения. При этом обладая априорными знаниями о сообщении, мы можем выделить полезную информацию, отбросив избыточную информацию, при этом общая энтропия уменьшится.

    Например в сообщении 5 байт, но мы априори знаем, что в сообщении будет либо "true" либо "false", тогда мы можем понизить энтропию сообщения с 5 бит/символ до 0.2бит/символ.

    С точки зрения практики - сообщение надо заархивировать, удалив избыточность, лучше специальным архиватором, знающим свойства сообщения.
     
  12. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Из общих подходов - коды Хаффмана.
     
  13. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    MSoft
    А элементы какие брать?

    Например xor и арифметика.
     
  14. pr0mix

    pr0mix New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    107
    щас сам рою в этой теме - алгоритм Хаффмана.
     
  15. pr0mix

    pr0mix New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    107
    да, а так еще нормальный вариант, конечно, написать алгос разбавления покриптованных данных каким нить однородным мусором. Товарищ interpol тоже писал про эту тему.
     
  16. ohne

    ohne New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2009
    Сообщения:
    431
    навеяно последнией парой сотен тем
    нужна еще одна ветка WASM.CRYPTORS
     
  17. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    :)
     
  18. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Энтропия и ее нормализация

    Что такое энтропия применительно к программному коду можно найти в гугле и на васме. Вкратце - числовая оценка эффективности использования информационного объема. Измерять ее будем в битах на 1 байт [0..8] с точностью до сотых. В этом нелегком деле нам поможет PEiD который можно скачать известно где. Итак, запускаем PEiD, кидаем на него, к примеру, невинного AcroRd32.exe, жмем " > > > >" и в появившемся диалоге вычисляем значение Entropy тыканием по соответствующей кнопке. Вот у меня, к примеру получилось 5.06 и рядом в скобках вердикт (Not packed). А теперь проделываем ту же операцию с чем-нибудь упакованным тем же UPX'ом - и получаем 7.82 (Packed)
    Собственно к чему весь этот бред: раз утилита может на основе математической оценки предположить, упакован файл или нет, то почему бы этим не воспользоваться и антивирусу? В данном деле особо отличился лидер по проверке PE-файлов на валидность "антивирус" Avira Antivir. Их последний генерик - ZPack.Gen (по аналогии с XPack.Gen) по наблюдениям выдается исключительно на основе анализа энтропии секции. Т.е. если пакер не определен но энтропия необычно высока - получите клеймо.
    Логичное решение в виде выжигания напалмом конторы дятлов представляется не слишком эффективным - они не первые и наверняка не последния. Ну а поскольку надо быть на шаг впереди, подумаем о симметричном ответе. Раз не нравится наша энтропия - надо ее улучшить. Т.е. нам надо "разбавить" наш экзе таким образом, чтобы эффективность хранения данных уменьшилась, или, другими словами, добавить большое количество однотипных данных.
    Просто добавив кусок nop'ов в секцию, мы долго не протянем и вызовем апдейт генерика до уровня удаления однотипного повторяющегося мусора. В таком случае нам надо сделать такой мусор, который никаким описанием с наскока не удалить. В идеале картина, представленная взгляду в Hiew должна выглядеть как равномерно-распределенный код. (Кстати рекомендую провести некоторое время просто разглядывая картинки экзешников в hex-редакторе) И нам определенно не надо выглядеть как архив или как код со вставками в виде архивов или зашифрованных кусков. Т.е. энтропия должна быть по возможности одинакова в различных отдельно взятых кусках кода/файла.
    Достичь этого достаточно просто - надо все включаемые куски зашифрованных данных "разбавить" мусором (в виде последовательности 00h например) по псевдослучайному алгоритму до тех пор, пока он не будет выглядеть (иметь значение энтропии) как обычный код. Экспериментально установлено что оптимальное значение тут лежит в пределах 6.1-6.8. Сам экзе при запуске будет инициализировать псевдослучайный генератор так, чтобы последовательность чисел, определяющая места вставки мусора, повторилась один-в-один. В итоге весь наш мусор будет удален и можно будет расшифровать блок с секретными данными.
     
  19. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Это бред сивой кобылы. Авира смотрит десятки параметров, на энтропию не обращает внимания (по крайней мере это не решающий фактор). ЗПАК авира выдает по результатам сравнения размеров секций и проверки импорта. Так что цитата блога как минимум не в тему - автор же спрашивает не как разбавить мусором данные, а как шифровать уже с пониженной энтропией на выходе.
     
  20. pr0mix

    pr0mix New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    107
    //офтоп
    сам же и говоришь - десятки параметров - так вот скорее сумма их и есть зпак, и в том числе энтропия. Я к тому, что она вполне может быть и решающей.