Блок под размер файла!

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

  1. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Ice-Graphics.com пишет о том, что изобрел симметричный алгоритм "нового поколения" ICESafe, в котором длина блока равна длине файла. Файл загружается в память целиком, потом оригинальный файл затирается шифротекстом, что снимает проблему атаки на удаленные данные.

    Как и полагается, один измененный байт или бит шифротекста дает трек ошибки на целый блок, но в данном случае на целый файл! То есть при изменении одного байта вся расшифровка большого файла невозможна.

    На лицо какая-то быстрая трансформация, однако автор отрицает связь и наследие с обычными симметричными алгоритмами. что бы это такое могло быть?
     
  2. OLS

    OLS New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2005
    Сообщения:
    322
    Адрес:
    Russia
    Хотите повторить вот это обсуждение ?

    http://www.pgpru.com/biblioteka/statji/hanaanskijjbaljzam?show_comments=1&p=1#Comment9415

    вот очень хорошее резюме оттуда :

     
  3. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Насчет конкретно алгоритма ICESafe все очевидно, при всех своих достоинствах ведущего программера планеты, ICEGraphics не является специалистом в области криптографии и криптоанализа, ему и невдомек, какие изощренные методы и секретные теоремы могут в принципе быть применены к его алгоритму. Но для этого нужно, чтобы зашифрованная им информация представляла особую ценность. Однако, простые обыватели могут преспокойно пользовать этот алгортм для защиты неособо ценной информации от себе подобных граждан...

    Вопрос в другом, в самой идеологии такого подхода. Есть ли похожие алгоритмы? что такое там ICE смог "изобрести".
    В принципе, мне идея отказа от мелких блоков представляется интересной, поскольку ресурсов у современных ПК много, нечего им больше эмулировать и копировать обычные стандартные алгоритмы, рассчитанные на несколько сдвиговых регистров...

    Главный интерес состоит в том, что в файле независимо от его размера, скажем на 100М, каждый бит должен зависить от каждого другого бита!!! Один измененный бит должен приводить к порче всего огромного файла!!! А CRC достаточно держать одно для всего файла. Так что взлом может быть нетривиальной задачей.

    На ум приходят сцепленные мелкие блоки. Или, как вариант, небольшие прогонки типа
    a1 xor a2 xor a3 xor a4
    a2 xor a3 xor a4 xor a5
    a3 xor a4 xor a6 xor a6...

    Ну в общем это еще вопрос, как у файла на 100М за быстрое линейное время сделать полную функциональную зависимость всех битов от всех других.

    Какие идеи, кто пытался ковырять алгоритм?
     
  4. OLS

    OLS New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2005
    Сообщения:
    322
    Адрес:
    Russia
    А если шифруемый файл размером 4 байта ?
     
  5. Wild_One

    Wild_One New Member

    Публикаций:
    0
    Регистрация:
    18 мар 2008
    Сообщения:
    13
    Ну так можно сделать шифр с болшими блоками на основе обычной SP-сети. Делить на кусочки, прогонять через например AES S-box, затем перемешивать биты по всему блоку и складывать с ключом. Да и раундов побольше. Практическая безопасность будет ничем не лучше, чем у того же AES, но работать будет медленнее.
     
  6. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    К сожалению, я не спец в крипто и в конкретных критоалгоритмах.
    Но знаю, что там есть такая вот трансформация:

    a -> b
    a xor b -> a

    Точно не знаю, но вроде это и есть "раунд".

    Раз так, то не будет большой разницы если делать фиксированное число раундов, скажем 17, для обычного блока или для гигантского. Время будет линейно расти с размером блока.
     
  7. Konrad

    Konrad New Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    3
    1. Проще всего зашифровать текст блочным шифром в режиме СВС, затем перевернуть (последний байт зашифрованных данных станет первым, первый последним и т.д.) и снова зашифровать в режиме СВС.

    2 .Если немного усложнить: приведенный выше метод, только использовать 2 разных шифра, 2 разных ВИ, 2 разных ключа.

    3. Есть более сложные и более изощренные схемы, но не думаю что кому-то они тут будут интересны.