Разработка проги GOST28147-89

Тема в разделе "WASM.WIN32", создана пользователем EvilsInterrupt, 7 янв 2005.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Уважаемые по учите уму разуму.



    Все регистры не изменяемые после апишек забил,но флаг нужен, как лучше всего его организовать, вот аттач.

    Там где нужен флаг это BodyCrpyptoAlgorithm в теле проги.



    Пишу для васма, поэтому хочу штоб кульной прога вышла

    [​IMG] 1146537473__gost28147_89.rar
     
  2. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Блин, флаг нужен для того сказать итерация послядняя или нет
     
  3. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Проблема с флагом решена сейчас мне нужны ваши советы.



    Алгоритм ГОСТ блочный и один блок равен 8 байтам, в спецификации как правило

    идет речь о 64 битах. так вот наш файл разбивается на такие блоки и естествен-

    но он может быть не кратен 8 байтам, т.е. иметь размер скажем 12 байт! Тогда

    у нас получится один полный блок и один неполный размеров в 4 байта.

    Так вот Я предлагаю его дополнить случайными байтами и приставить после тип

    шифруемого фала(3 байта), добавить байт указывающий о том сколько значимых байт

    в неполном блоке(в ситуации выше 4 байта) и дополнить осточные байты случайными

    значениями. После этого все совкупность из 16 байт(неполный блок и дополнение)

    пропустить через механизм шифрации и записать в конец файла.



    Как вы думаете насколько это усложнит жизнь критоаналитику? (в статье Клода Шеннона

    криптоаналитик это злоумышленик).



    Я привел в аттаче рисунок как будет выглядеть дополнение и текущие исходные коды

    проекта.

    [​IMG] _1843093594__format_bad_bloks.GIF
     
  4. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
  5. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    1. это не упростит никому жизнь -- ГОСТ стоек к known plaintext

    2. от дополнения можно уйти -- достаточно использовать ГОСТ в режиме гаммирования -- там гамма вырабатывается такими же блоками по 8 байт, но гамму можно накладывать частично, т.е. дополнение не требуется.
     
  6. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    flankerx



    Я уж начал

    А следущая версия будет с гаммированием, а эта с простой заменой будет, но тоже не избежит дополнения, т.к. нужно будет запомнить тип файла.
     
  7. OLS

    OLS New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2005
    Сообщения:
    322
    Адрес:
    Russia
    2 EvilsInterrupt: кол-во неполных байт в последнем блоке можно писать открытым текстом не шифруя



    2 flankerx: режим гаммирования нестоек к инвертированию бит не зная ключа шифрования
     
  8. flankerx

    flankerx New Member

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

    а имитовставку зачем придумали??
     
  9. OLS

    OLS New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2005
    Сообщения:
    322
    Адрес:
    Russia
    2 flankerx: так я к тому, что в чистом виде режим гаммирования (а по-буржуйски OFB) малость неприемлем
     
  10. flankerx

    flankerx New Member

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

    согласен.

    ну ты же понимаешь, что при обычном ECB можно еще и не такое вытворять -- перестановки блоков могут быть гораздо прикольнее чем инвертирование битов :)

    В CBC в общем изменять тоже можно, хотя и не так очевидно.



    Это я все к тому что само по себе шифрование не гарантирует и не может гарантировать целостности данных --- для этого отдельные примитивы используются.



    А в ситуации когда очень мешает дополнение блока до кратного размера ИМХО разумно использовать имеено гаммирование. Конечно, нужно понимать что такое гамма (keystream), а то возможны разные смешные ситуаци типа многократного её использования :)
     
  11. OLS

    OLS New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2005
    Сообщения:
    322
    Адрес:
    Russia
    мне нечего добавить :)
     
  12. OLS

    OLS New Member

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



    На AES (та, которая была конференция) активно обсуждалась пара схемок сборки цепочек - IGE, XCBC и др.



    Они по ходу шифрования собирают в том блоке, который принимает сначала значение IV, а потом проходит через всю цепочку, некое подобие имитовставки. И сама схема там очень напоминает сборку хеш-функции. То есть по окончании шифрования имеем и конфиденциальность и целостность.



    Но в готовых проектах что-то пока я этих схем не видел ...
     
  13. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia
    да, согласен, схемы с одновременным шифрованием и аутентификацией данных есть: XCBC, IACBC, OCB (вроде), CCM.



    В готовых проектах я их тоже не видел -- м.б. потому что все кроме последнего защищены патентами.



    Идея эта ИМХО полезная, т.к. позволяет реализовав один криптографический примитив -- блочный шифр -- обеспечить и целостность и конфиденциальность... и все это за один проход :)
     
  14. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Простите многомудрые



    Но вы говорите об контроле подлиннности в шифрограмме так?

    Я писал статью о ГОСТе простая замена, и там привел ссылку на статью Винокурова, так вот в его труде, весьма раулезном, есть такое понятие ИМИтовставка и описано правило ее получения, так вот меня удивляет:



    >Идея эта ИМХО полезная



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



    Еще бы мне хотелось, не могли бы вы сказать о методики атаки на Rindael методом, вроде "квадрат", я так и не понял ее, в чем она заключается?
     
  15. flankerx

    flankerx New Member

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

    поищи в Сети описание тех режимов, про которые OLS и я упоминали -- должно стать понятнее.
     
  16. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    flankerx



    можешь написать списако режимов которые вы упомянали и которые вы не упоминали но есть, и какие они еще названия имеют вдруг разные авторы по разному их называют. Пожалуйста не сочтите это за труд
     
  17. flankerx

    flankerx New Member

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

    самый распространенные и известные -- это:

    ECB (Eclictrinic Codebook )

    CBC (Cipher Block Chaining )

    OFB (Output Feedback)

    CFB (Cipher Feedback)

    Эти 4 режима считаются стандартными и описаны в FIPS-81 "DES MODES OF OPERATION".



    Еще один распространенный режим -- режим счетчика CTR.



    дальше из того что упоминалось -- XCBC и CCM -- режимы, обеспечивающие целостность зашифрованных данных. XCBC патентован, CCM разработан (вроде бы) Брюсом Шнайером и Нильсом Фергюсоном -- по крайней мере впервые об этом режиме я узнал из их книги "Practical Cryptography".



    Этот список ни в коей мере не претендует на полноту -- режимов _существенно_ больше, и знать их все ИМО не нужно. В 99% случаев вполне подходит CBC или OFB/CFB.
     
  18. OLS

    OLS New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2005
    Сообщения:
    322
    Адрес:
    Russia
    ГОСТовская терминология:



    режим простой замены = ECB

    режим гаммирования нечто среднее между OFB и CTR

    режим гаммирования с обратной связью = CFB



    А вот здесь "свеженькое" :

    http://csrc.nist.gov/CryptoToolkit/modes/proposedmodes/ProposedModesPa ge.html

    ... правда, согласен с flankerx, что в большей степени - это уже "изыски" математиков-криптографов.
     
  19. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    CBC - это режим гаммирования?
     
  20. flankerx

    flankerx New Member

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