twofish [sizeof.decrypted]

Тема в разделе "WASM.CRYPTO", создана пользователем bogrus, 31 мар 2005.

  1. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Шифрую 32 байта в cryptool (ключ 128 бит), на выходе получаю 48 байт (см. рисунок), пробую в другой программе (Xtort © Omziff) получаю 64 байта, но мне кажется, что я должен получить на выходе 32 байта, т.е. равно длине входных данных, кратно 16-ти байтам (размер блока в twofish - 128 бит), как правильно то?



    [​IMG]
     
  2. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Понял, получается длина увеличивается на размер ключа, в Omziff используется 256 бит, потому там получил 64 байта
     
  3. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Таки я не понял, взял третью прогу frhed , там длина зашифрованных данных не изменяется, и при 128\256 бит остается равна входным 32 байтам (plaintext'а), шо за рыба ...



    p.s. тему следует читать как twofish [sizeof.encrypted] , хотя какая х.р.?
     
  4. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    кусок исходника CrypToolа...



    "лишний" блок появляется из-за этого:
    Код (Text):
    1. borg[datalen++]=1;
    2. for(; datalen %16; datalen++) borg[datalen]=0;




    что касается Omziff, то м.б. там такой же паддинг + запись IV в начало потока...

    [​IMG] _1675914233__AESEncryption.zip
     
  5. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Спасиб, получается CrypTool правильно зашифровал только первые 16 байт та ещё и добавил лишних 16. Проверил ещё несколько утилит, только две шифруют как надо, но они не умеют принимать ключ в binary-формате(только текст) ну то уже мелочи
     
  6. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    смотря что ты понимаешь под "правильно" :)

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

    поэтому ИМХО КрипТул-то как раз все правильно сделал :)
     
  7. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Ах вот оно что, я не слыхал о паддинге ... ещё и подумал, интересно зачем ты "лишний" взял в кавычки :)



    Тут у меня прога(ковыряю), она зашифровывает twofish'ем, а я захотел проверить, правильно ли я восстановил её алгоритм, и блин не сошлось с cryptool (она возвращает 32 байта)
     
  8. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    твоя прога может использовать twofish в другом режиме или с другим IV.

    в таких случаях лучше найди преобразование _одного_ блока (т.е. основную ф-цию алгоритма) и ставь туда бряк и смотри какие данные её на вход идут.

    CrypTool'а для таких вещей часто недостаточно -- нужно будет самому немного поработать :)
     
  9. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Точно, так и есть! Нашел этот IV вектор, проверил в FineCrypt(там можно выбрать режим и задать вектор) и определил CBC, все совпало



    з.ы. ну и хитрый этот алгоритм (слишком много кода и махинаций для ковыряния)