Алгоритм шифрования - "Securecy" ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Сообщение разбивается на блоки по 32 разряда каждый: M = M1|M2|..|Mn Ключ шифрования состоит из четырех 32 разрядных значе- ний: K = K1|K2|K3|K4 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ Операция шифрования: P - закрытый текст Pi = E(Mi) = (((((Mi + K1) mod 2^32)xor K2)+K3) mod 2^32)xor K4 Операция дешифрирования: M' - Открытый текст Mi = D(Pi) = (((((Pi xor K4)-K3) mod 2^32)xor K2) - K1) mod 2^32 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ [c]$Evil`s_Interrupt
Нужно повторить подобную операцию не менее 14-16 раз каждый раз либо с изменяющейся константой, либо еще лучше с модифицированными значениями ключа. Только тогда ты достигнешь определенного, хотя и не гарантированного уровня стойкости. И как совершенно верно отметил RElf первоочередная криптоатака, от которой просто обязан быть защищен любой криптоалгоритм, - это нахождение ключа по известным (known-) или даже специально подобранным (chosen-) парам (Mi,Pi).
Спасибо вам. Но как оценивать сложность этого алгоритма? И если предположить, что данным алгоритмом пользуются два человека и предположим исключено, что кто либо узнает исходные и соответсвующие закрыте тексты, насколько он тогда будет криптостоек?
что такое криптостойкость для доверяющих друг другу людей? всегда же есть потенциальный злодей, который захочет почитать ваши секреты, а уж где он возьмёт шифртекст - это не научная проблема
если серьёзно, то небольшое количество раундов (10-15) не избавит алгоритм от избыточной линейности. я бы добавил какую-нить хорошую перестановку битов в середину функции зашифрования.
Шифроватся будет текст? Если да, то,я думаю, 40-50 шифровок хватит чтобы вычислить ключ даже незная открытый текст.
2green_g: а что перестановка бит теперь считается нелинейной операцией ? Если добавлять, то табличную подстановку с хорошими нелинейными свойствами. Либо в потоке данных (т.е. в самой функции шифрования), либо в ключевом потоке (т.е. при выработке очередных значений для ключей раунда). А еще лучше две разные - по одной там и там
Я одного не понял. Нафига изобретать велосипед? Есть куча алгоритмов, заслуживших определенный авторитет и считающихся криптостойкими. Почему бы не использовать один из них? Дизайн криптостойких алгоритмов это не тот случай, когда можно сходу изобрести что-то новое.
RElf Я изначально ставил вопрос, не о том что есть или нет более серьезные алгоритмы? А о том насколько быстро этот взломают? Если ты говоришь быстро, то значит ты должен знать почему и ясно себе это представлять. Меня интерисует оценка алгоритмов: стойкость, сложность и др.
Эдесь на Форуме уже обсуждалась связь XOR и ADD и ее стойкость - прочитай доку, на которую я давал ссылку: http://wasm.ru/forum/index.php?action=vthread&forum=25&topic=8248&page=2
Вот, написал подбиралку ключа. Здесь ключ урезан до 64 бит. Полная версия должна работать примерно в 2^16 раз дольше. Я думаю, суток хватит чтобы найти ключ незная исходного текста, но зная достаточно шифровок(хотябы 32). _61770205__find.cpp