fk0, легенда (09.11.2019 19:32, просмотров: 270) ответил LightElf на Поскольку я ни разу не криптограф, то мне вполне достаточно знать, что атаки на rc4 известны. В то время как XTEA на практике никто не ломал.
Ага, потому, что XTEA не используется нигде кроме поделок студентов, а RC4 включен был в ряд продуктов и используется может до сих пор. И атаки известны на все шифры. Вопрос в их практической применимости. И малоприменимые известные уязвимости http://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#/media/File:Tux_ecb.jpg
https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation
могут оказаться ещё лучше легко применимых и неизвестных (редкоприменимые алгоритмы так же и плохо изучены).
И ещё один ньюанс: XTEA это блочный шифр и его нужно правильно уметь использовать, иначе получится как на картинке. Сам XTEA ты переписал, например, из Wikipedia, а как у тебя организовано шифрование потока? Ведь XTEA шифрует маленькими кусочками. Случайно не каждый блок шифруется независимо от предыдущего (ECB) ? Так не только картинки проявляться начнут, но и ключик угадать уже проще, потому, что некоторые участки прошивки -- вполне известны, особенно если она в том виде как исполняется, а не zip.
Хуже того, во всех режимах кроме PCBC появляется возможность изменять прошивку перед программированием. В смысле изменять маленький кусочек и это изменение не распространяется дальше бесконечно. RC4 обладает той же уязвимостью. У тебя как контроль целостности организован? CRC? В режимах отличных от ECB, CBC и CFB, как и опять же в RC4 можно осмысленно инвертировать отдельные биты декодированной программы, и добиваться получения такой же CRC, что позволит запустить глючную программу. Что может быть отнюдь не глупой затеей, если удастся модифицировать не саму программу а, например, выводимые тексты (известные). И далее провернуть такое с другим блокам чтобы любым способом в итоге сдампить содержимое памяти, и в итоге все секретные ключи. Сложно, но эта теоретическая возможность приближается к практической. Почему в продуктах проф. уровня используют асимметричную криптографию. Ибо сдампить прошивку можно куда более вероятно через баг в самой прошивки. И чем больше кода, тем хуже.
И заметно проще, если у тебя CRC считается до расшифровки, а не после. Соответственно, менять программу можно как угодно. CRC же наверное один из 8 вариантов размещённых в последних байтах прошивки...
[ZX]