Ну я и назвал это "заставить заработать". К сожалению на такое большое дело сейчас времени совершенно нет :-(
metcenger со странички Винокурова качаем файл gost_all.zip, в нем читаем файл README.TXT и INDEX.TXT, по результата чтения которых из этого же архива выбираем, например, файлы: GOST~.ASM - 32-бит. основной шаг криптопреобразования; GAMMA~.ASM - 32-бит. за- и рас-шифрование данных в режиме гаммирования; SIMPLE~.ASM - 32-бит. за- и рас-шифрование данных в режиме простой замены; GOST.H - заголовочный файл с описанием функций шифрования; XCRYPTOR.C - исходный текст программы шифрования; GOST386.MAK - make-файл для построения 32-битовой программы шифрования файла по ГОСТ; CHANGTBL.CHT- файл с таблицей замен; KEY.KEY - файл с ключом шифрования; И разбираем их по косточкам...
OLS жаль... По умолчанию "индекс доверия" к программе Винокурова должен стремиться к 1. А как убедиться в правильности своей реализации особенно в случае с гаммированием? А если мы не знаем как подавать ключевые элементы - то и проверить себя не можем...
Есть еще вопрос по поводу ГОСТ 28147 и не только по нему... Например, есть поток двоичных данных M, например, 16-битных цифр, передаваемых от источника получателю по определенного рода сети. Эти данные передаются: 1) в открытом виде; 2) в зашифрованном виде по ГОСТ 28147-89 в режиме гаммирования с "бесконечной" гаммой; 3) в зашифрованном виде по другому симметричному стандарту с "конечной" гаммой; 4) в открытом виде, но нужные данные N подмешиваются в поток данных M, используя несколько младших незначащих бит (естественно, что N много меньше M), то есть передача с использованием стеговставки. В итоге нужно получить качественно-количественную оценку каждого из указанных методов для итогового выбора алгоритма, что-то типа: Ks = k1s*Ts + k2s*ts + k3s*Zs, где Kn - показатель качества для метода S; Ts - показатель относительного объема трафика, генерируемого в сети для метода S (0<=Ts<=1); ts - показатель относительных временных затрат на предобработку, передачу и постобработку источника и получателя для метода S (0<=ts<=1); Zs - показатель защищенности (стойкости) для метода S (0<=Zs<=1); k1s..k3s - весовые коэффициенты каждого соответствующего показателя для метода S (сумма всех ks=1). Если, например, для передачи данных в открытом виде (Z1=0), общий показатель (при приоритете быстродействия) будет равен: K1 = k11*T1 + k21*t1 + k31*Z1 = 0.5*0.1 + 0.3*0.1 + 0.2*0.0, то общий показатель (при приоритете быстродействия) для передачи данных в зашифрованном виде по ГОСТ 28147 будет равен: K2 = k12*T2 + k22*t2 + k32*Z2 = 0.5*0.1 + 0.3*0.4 + 0.2*Z2 (трафик - тот же, время на операции шифрования - больше, защищенность - выше) Для передачи данных в зашифрованном виде по ГОСТ 28147 чему будет равен показатель защищенности (стойкости) Z2 и как его вычислять? А как этот же показатель вычислять для других методов шифрования? А для стегосистем? И вообще, правильны ли здесь мои размышления? Где и чего конкретно можно почитать по этому поводу?
Короче так. Таблица из книги верная. Просто S-box используются не по ГОСТу. Порядок выборки строки S-box для подстановки следующий: 2,1,4,3,6,5,8,7. То есть сначала берется байт из строки 1 S-box, затем из строки 2 и т.д. по схеме. Что касается начального заполнения, то N1 = 0x55555555 и N2 = 0xAAAAAAAA. На выходе имеем N1 = 0x3113A05E и N2 = 0xC4F6F857
Код (Text): То есть сначала берется байт из строки 1 S-box, затем из строки 2 и т.д. по схеме. Тут не правильно. Сначала берется байт из строки 2 S-box, затем из строки 1 и т.д. по схеме.
Кстати, что касается ассемблерного кода для основного шага криптопреобразования, то у Винокурова неувязочка. Примеры начинают сходиться, если не выполнять операцию adc eax,0
Доброго всем времени суток! Может и не в этой ветке следует задать мой вопрос, но он тоже (так или иначе) связан с этим ГОСТ. Итак, есть абстрактный файл, в котором находится последовательность НУЛЕВЫХ байт, зашифрованных по ГОСТ в режиме гаммирования. Есть другой файл (такого же размера), в котором находится эта же последовательность байт, зашифрованных по другому алгоритму шифрования. Требуется (очень и срочно!) провести так называемый статистический анализ этих двух криптопоследовательностей в этих файлах и сравнить результаты. Ключи искать и вычислять не требуется Поэтому, очень интересует, в первую очередь, ссылки на теоретический материал. Например, метод Иванова из книги такой-то. А во вторую очередь интересуют какие-либо уже имеющиеся программы (построенные на этом теоретическом фундаменте), которые при прогоне этих файлов через себя выдадут на входе какой-то анализ с количественными и качественными показателями. Что уже сделано. На основании обсуждений (не подкрепленных теоретической базой) со знающими людьми принято для начала несколько "методов": 1. Метод регистрового или битового сдвига. Берем криптопоследовательность и делаем ее полную виртуальную копию. Накладываем эти две цепочки друг под другом (100% совпадение по битам) и начинаем их сдвигать друг относительно друга на 1 бит. В конце они будут "соосны" только по одному биту (первому биту у одной последовательности и последнему - у второй). При каждом шаге после очередного сдвига "соосны" некоторое количество бит, которые и сравниваем у обеих последовательностей и считаем сколько бит одинаковых между цепочками и сколько различающихся, разницу берем по модулю и в процентах от общего количества участвующих в сравнении бит. Заносим это число на координатную ось Y, а по оси Х откладываем порядковый номер сравнения. В итоге получим кривую, идеальная форма которой соответствовала бы небольшому разбросу значений от 0 до 2 по оси Y (первое значение при 100% совпадении по битам не откладываем, также не откладываем последние несколько сравнений, в которых из-за малого количества бит значение стремится резко к 100%). 2. Частотный метод. Считаем сколько раз в криптопоследовательности встречаются значения бит от 0x00 до 0xFF. Заносим число повторений на координатную ось Y, а по оси Х откладываем значения бит от 0x00 до 0xFF. В итоге получим кривую, идеальная форма которой соответствовала бы небольшому разбросу значений от максимального значения до чуть меньшего значения по оси Y. 3. То же, что и метод №2, только считаем сколько раз в криптопоследовательности встречаются значения бит от 0x0000 до 0xFFFF. Где взять теоретическое обоснование этих методов и может кто чего еще подскажет?
> Где взять теоретическое обоснование этих методов и может кто чего еще подскажет? Алгоритмы проверки на случайность : FIPS 140-1, п.4.11.1 DieHard : http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82%D1%8B_DIEHARD и т.п.
Спасибо! По FIPS 140-1, п.4.11.1 Google вывалил просто кучу ссылок. Буду разбираться... DieHard тоже почитал, там вроде есть софт, который можно скачать. А русскоязычных трудов по моему вопросу совсем нет?
Нашел вот что (может еще кому пригодится): Статья-обзор "Статистический анализ поточных шифров" http://cms.tusur.ru/filearchive/reports-magazine/2008-2-1/56-57.pdf
И еще неплохая книга: Иванов М. А., Чугунков И. В. Теория, применение и оценка качества генераторов псевдослучайных последовательностей Скачать можно тут: http://www.krelib.com/kibernetika/5984 И где бы еще найти эту программу, которая упоминается в конце этой книги: "Система оценки качества генераторов псевдослучайных последовательностей"?
Уважаемые коллеги! Кто имеет действующую реализацию данного ГОСТ, прошу сгенерить (зашифровать) примерно 1 мегабайт следующим способом: 1. Исходный файл должен содержать только нулевые биты (ну и байты, соответственно). Не ноли в текстовом виде (ASCII), а именно нулевые байты при просмотре исходного файла HEX-редактором. 2. Ключи и таблицу замен можно взять из ГОСТ Р 34.11-94 или вообще любые, на Ваше усмотрение. 3. Шифровать требуется только в режиме гаммирования без обратной связи. В принципе, мне и нужна, получается, только эта сгенерированная гамма размером в этот мегабайт для тестов. Я мог бы сделать это и сам, т.к. алгоритм у меня реализован, но он реализован на специфичном микроконтроллере и чтобы получить гамму такого размера, нужно довольно длительное время, т.к. темп генерации в "моей" промышленной составляет одно 16-битное сообщение за две секунды. Можно и быстрее , но я тогда не буду успевать снимать данные с промышленной шины с гарантией не пропустить ни одного пакета... Срочно, если возможно...
Забирай http://ifolder.ru/16112191 При шифровании использованы ключ и таблица из ГОСТ Р 34.11-94, синхропосылка - 8 нулевых байт.
Добрый день, коллеги! А нет ли среди присутствующих здесь тех, кто защищался по специальности 05.13.19 и из какого города? P.S. Ищу оппонента...