Восстановление хэшей

Тема в разделе "WASM.CRYPTO", создана пользователем Ra!N, 7 фев 2008.

  1. Ra!N

    Ra!N New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2006
    Сообщения:
    111
    Вернемся к баранам, я тут подумал и пришел к следущему (более слабому, чем в посте #3 и #5) утверждению (доказать пока не могу и, опять же, поправьте, если оно не верно, по возможности с контрпримером):
    пусть дано сообщение длиной m бит, хэш функция от этого сообщения длиной n бит, тогда получить заданное значение хэша (из множества его возможных значений) можно изменив и/или добавив в сообщени(и|е) не более max(m,n) бит.
    К примеру: хэш функция `and' (n = 1), сообщение 10101b (m = 5), получить нужное значение хэша (пусть это будет 1) можно изменив 2 бита (2-й и 4-й), 2 < max(5,1).
    Причем, чтобы выполнялось более сильное утверждение (#5) необходимо и достаточно, чтобы для любого сообщения длиной m < n хэш был уникальным. Т.е., к примеру, для crc32 не существует более одного сообщения длиной <= 4 байт с одинаковым значением хэша crc32, => получить нужный crc32 можно изменив и/или добавив не более 4 байт сообщения.
    Это так? Если да, то на вопрос о md5 (#8) можно ответить да, и этот предел равен n = 128. Да ?
     
  2. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.243
    Ra!N
    врятли здесь имеет смысл заниматься подобными глобальными теоремами - каждый алгос требует своего подхода, а общим является только Брут, к тому же, попытку найти хэш с помощью файлов большего размера легко присечь.
     
  3. Stiver

    Stiver Партизан дзена

    Публикаций:
    0
    Регистрация:
    18 дек 2004
    Сообщения:
    812
    Адрес:
    Germany
    Ra!N
    пусть дано сообщение длиной m бит, хэш функция от этого сообщения длиной n бит, тогда получить заданное значение хэша (из множества его возможных значений) можно изменив и/или добавив в сообщени(и|е) не более max(m,n) бит

    Поскольку функция предполагается surjective (не знаю термина :)), то это утверждение тривиально.

    Причем, чтобы выполнялось более сильное утверждение (#5) необходимо и достаточно, чтобы для любого сообщения длиной m < n хэш был уникальным.

    Нет, это неверно. Не пытайся перенести какие-либо наблюдения с одного хеша (здесь CRC) на общий случай. Видимо ты непроизвольно ограничиваешь понятие хэш стандартными алгоритмами на основе базовых манипуляций с битами. Но не забывай, что вручную можно без особого труда построить вообще какую угодно функцию.

    Если собираешься обобщать, то тебе придется скорее всего предъявлять дополнительные требования к функции. И перестать гадать :)
     
  4. Ra!N

    Ra!N New Member

    Публикаций:
    0
    Регистрация:
    26 окт 2006
    Сообщения:
    111
    Спасибо, понятно :)