Уважаемые по учите уму разуму. Все регистры не изменяемые после апишек забил,но флаг нужен, как лучше всего его организовать, вот аттач. Там где нужен флаг это BodyCrpyptoAlgorithm в теле проги. Пишу для васма, поэтому хочу штоб кульной прога вышла 1146537473__gost28147_89.rar
Проблема с флагом решена сейчас мне нужны ваши советы. Алгоритм ГОСТ блочный и один блок равен 8 байтам, в спецификации как правило идет речь о 64 битах. так вот наш файл разбивается на такие блоки и естествен- но он может быть не кратен 8 байтам, т.е. иметь размер скажем 12 байт! Тогда у нас получится один полный блок и один неполный размеров в 4 байта. Так вот Я предлагаю его дополнить случайными байтами и приставить после тип шифруемого фала(3 байта), добавить байт указывающий о том сколько значимых байт в неполном блоке(в ситуации выше 4 байта) и дополнить осточные байты случайными значениями. После этого все совкупность из 16 байт(неполный блок и дополнение) пропустить через механизм шифрации и записать в конец файла. Как вы думаете насколько это усложнит жизнь критоаналитику? (в статье Клода Шеннона криптоаналитик это злоумышленик). Я привел в аттаче рисунок как будет выглядеть дополнение и текущие исходные коды проекта. _1843093594__format_bad_bloks.GIF
1. это не упростит никому жизнь -- ГОСТ стоек к known plaintext 2. от дополнения можно уйти -- достаточно использовать ГОСТ в режиме гаммирования -- там гамма вырабатывается такими же блоками по 8 байт, но гамму можно накладывать частично, т.е. дополнение не требуется.
flankerx Я уж начал А следущая версия будет с гаммированием, а эта с простой заменой будет, но тоже не избежит дополнения, т.к. нужно будет запомнить тип файла.
2 EvilsInterrupt: кол-во неполных байт в последнем блоке можно писать открытым текстом не шифруя 2 flankerx: режим гаммирования нестоек к инвертированию бит не зная ключа шифрования
2 flankerx: так я к тому, что в чистом виде режим гаммирования (а по-буржуйски OFB) малость неприемлем
OLS согласен. ну ты же понимаешь, что при обычном ECB можно еще и не такое вытворять -- перестановки блоков могут быть гораздо прикольнее чем инвертирование битов В CBC в общем изменять тоже можно, хотя и не так очевидно. Это я все к тому что само по себе шифрование не гарантирует и не может гарантировать целостности данных --- для этого отдельные примитивы используются. А в ситуации когда очень мешает дополнение блока до кратного размера ИМХО разумно использовать имеено гаммирование. Конечно, нужно понимать что такое гамма (keystream), а то возможны разные смешные ситуаци типа многократного её использования
Хотя, нет, вспомнил ... На AES (та, которая была конференция) активно обсуждалась пара схемок сборки цепочек - IGE, XCBC и др. Они по ходу шифрования собирают в том блоке, который принимает сначала значение IV, а потом проходит через всю цепочку, некое подобие имитовставки. И сама схема там очень напоминает сборку хеш-функции. То есть по окончании шифрования имеем и конфиденциальность и целостность. Но в готовых проектах что-то пока я этих схем не видел ...
да, согласен, схемы с одновременным шифрованием и аутентификацией данных есть: XCBC, IACBC, OCB (вроде), CCM. В готовых проектах я их тоже не видел -- м.б. потому что все кроме последнего защищены патентами. Идея эта ИМХО полезная, т.к. позволяет реализовав один криптографический примитив -- блочный шифр -- обеспечить и целостность и конфиденциальность... и все это за один проход
Простите многомудрые Но вы говорите об контроле подлиннности в шифрограмме так? Я писал статью о ГОСТе простая замена, и там привел ссылку на статью Винокурова, так вот в его труде, весьма раулезном, есть такое понятие ИМИтовставка и описано правило ее получения, так вот меня удивляет: >Идея эта ИМХО полезная Звучит так как будто об аутентификации данных вы впервые слышите, возможно мне это показалось, но имитовставки сплошь и рядом, конечно не в таких утилитах, которые опиреруют с файлами как с дисками, а в серьезных утилитах,не могу привести примера. Но один проф меня так и щелкнул не давно, что в серьзной криптографии не возможно без имитовставки. Хотя это и накладывает,ряд неудобств. Еще бы мне хотелось, не могли бы вы сказать о методики атаки на Rindael методом, вроде "квадрат", я так и не понял ее, в чем она заключается?
EvilsInterrupt поищи в Сети описание тех режимов, про которые OLS и я упоминали -- должно стать понятнее.
flankerx можешь написать списако режимов которые вы упомянали и которые вы не упоминали но есть, и какие они еще названия имеют вдруг разные авторы по разному их называют. Пожалуйста не сочтите это за труд
режимов работы блочных шифров очень много. самый распространенные и известные -- это: 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.
ГОСТовская терминология: режим простой замены = ECB режим гаммирования нечто среднее между OFB и CTR режим гаммирования с обратной связью = CFB А вот здесь "свеженькое" : http://csrc.nist.gov/CryptoToolkit/modes/proposedmodes/ProposedModesPa ge.html ... правда, согласен с flankerx, что в большей степени - это уже "изыски" математиков-криптографов.