Pull to refresh

Comments 8

e — экспонента
Обычно всё-таки число e или число Эйлера в русской терминологии. А экспонента — e^x — конкретное отображение.
Спасибо за замечание, исправил.
А что у него, кстати с патентной чистотой (был US patent в 1997 на RSA Data Security) и прочей копирастией (trade mark, другие ограничения)?

Также стоит информацию по патентну, лицензии на имплементацию и т. п. на github.
Все верно, правообладателем является RSA, US5835600 и US5724428. Благодарю за совет.
В ...self.__lshift((self.S[i] + A + B),… или в самом __lshift (и __rshift), видимо, надо ограничить агрумент модулем 2**self.W, иначе значения S и L растут за пределы «слова». Ну и через строки работать, это конечно… эээ… попробуйте что-то вроде ((val<<n)|(val>>(self.W-n))) & self.MW для сдвига, где self.TW = 2**self.W # module и self.MW = self.TW-1 # mask. Лучше было, конечно, перевести прямо из С, который есть в people.csail.mit.edu/rivest/Rivest-rc5rev.pdf, Ну а так пока дальше будут вылезать ошибки для ключа из нулей, для файлов из нулей и т.д. И ещё, такие штуки надо обязательно проверять для стандартных тестовых наборов, если такие есть в описании алгоритмов. И лучше сделать encrypt и decrypt для одиночных блоков, а потом уже, используя их, для потоков (файлов) и байтовых строк.

Спасибо, однако, за статью. Хотя так и не понятно, рекомендуется ли RC5 и для каких применений, и насколько он распространён.
Спасибо большое, отличная идея использовать & (теперь я чувствую себя неловко, потому что не догадался сам) и шифровать по блокам. Если честно, у меня мало опыта в разработке(особенно на Python), на днях дочитал «Изучаем Python» (Марк Лутц) и решил, что пора попробовать свои силы. Я думаю, в течении недели перепишу код и добавлю тесты, и сделаю апдейт статьи.
> По количеству пользователей RC5 стоит в одном ряду с такими известными алгоритмами как IDEA и Blowfish.

Можно какие-нибудь ссылки, откуда инфа?

По поводу криптанализа — шифр взломан ещё в прошлом веке (с точки зрения академической криптографии), и с тех пор им почти никто не интересуется (опять же, среди криптоаналитиков). Поэтому утверждение

> у алгоритма RC5 практически отсутствуют недостатки с точки зрения его стойкости

слишком самоуверенно. Вы предлагаете 18-20 раундов для 32х битной версии (причем только как замечание в конце статьи), но вы не знаете какую стойкость эта версия гарантирует. 2^60? 2^70? Кроме того, «революционное решение» использовать переменные сдвиги очень сомнительное. Есть ли примеры не таких старых невзломанных шифров, использующих этот приём? А «поразительная простота» алгоритма, которая вас удивила, давно породила парадигму ARX шифров.

Я понимаю что статья про имплементацию чего попало на питоне, но почему бы не использовать для этого современные шифры?
Sign up to leave a comment.

Articles