Привет всем Я должен зашифровать свои данные с помощью алгоритма Blowfish на C++ ... Можете ли вы, ребята, сказать мне, знает ли другой конец, какой алгоритм я использую, не может ли он извлечь ключ и расшифровать его? Насколько безопасны данные этим методом?Как работает алгоритм blowfish в C++?
ответ
Можете ли вы, ребята, сказать мне, знает ли другой конец, какой алгоритм я использую, не могут ли они извлечь ключ и расшифровать его?
No. Весь смысл алгоритмы шифрования стандартизированных (в отличие от тех, которые полагаются на неизвестности), что, хотя каждый знает все подробности этого, один не может расшифровать его, если один не имеет ключа.
Этот подход работает, потому что единственный способ взломать шифрование - попробовать все возможные ключи, которых слишком много. По мере увеличения вычислительной мощности ранее «безопасные» алгоритмы становятся «незащищенными». С некоторыми алгоритмами могут быть и недостатки, позволяющие проводить другие формы отчислений, которые значительно уменьшают возможное пространство ключа и, следовательно, ускоряют эти атаки грубой силы. Но (насколько нам известно) Blowfish здесь безопасен.
Сохранение секретности ключа, безусловно, необходимо. Если ваша программа также включает в себя ключ (в отличие от запроса пользователя или какого-либо устройства для него или использования случайных ключей сеанса, которые сами зашифровываются с использованием криптографии с открытым ключом), тогда инженер-реверс может, вероятно, найти его и нарушить вашу схему.
Важная часть сохранения секретности ключа заключается в том, чтобы сохранить ее «недопустимой» и не использовать ее повторно для разных целей. Случайно сгенерированные ключи являются лучшими.
Кроме того, «на другом конце» вы подразумеваете нападавшего, верно? Обычно «другой конец» относится к Бобу Предпочитаемому Получателю, и он, конечно, должен иметь возможность расшифровать сообщение.
Нет известных атак против Blowfish (по состоянию на январь 2011 года), поэтому ваши данные так же безопасны, как длина ключа (что у Blowfish может быть до 448 бит).
спасибо slebetman .. – garima
Нет известных атак ..., вероятно, потому что никто не хочет, чтобы это было известно. Посмотрите на следующее, если вы еще этого не видели: https://www.schneier.com/blowfish-bug.txt, взятый из https://www.schneier.com/blowfish.html под * "* * ПРИМЕЧАНИЕ: ** В некоторых версиях исходного кода Blowfish существует ошибка.«* –
@ Fred-ii- Это ничего не говорит об ошибке в ALGORITHM BLOWFISH. Сравните это с примером DES, где сам алгоритм неисправен (имеет известные атаки). – slebetman
Насколько я понимаю, одним из целых пунктов выбора конкретного метода шифрования и дешифрования является то, что оба конца потока связи будут знать, с каким алгоритмом шифруются данные.
Если вам необходимо «зашифровать» ваши данные с помощью алгоритма Blowfish, то только это требование должно сказать вам, что получатель ожидает сообщения, зашифрованного с использованием схемы Blowfish.
Thilo сказал: «Весь смысл стандартизованных алгоритмов шифрования ... заключается в том, что, несмотря на то, что все знают все подробности, его невозможно расшифровать, если у него нет ключа».
Лучший способ предотвратить атаки типа «человек в центре» и другие атаки, связанные с вредоносным устройством, перехватывающим ваши сообщения, заключается в том, чтобы держать ваш ключ в безопасности - не перекодируйте его в какие-либо программы (даже скомпилированные программы могут анализировать) и создавать доверительные отношения с вашим получателем, гарантируя, что их методы обеспечения безопасности минимизируют вероятность того, что вредоносный агент приобретет соответствующий ключ. В качестве альтернативы, если ваш получатель поддерживает его, вы можете использовать «одноразовые прокладки» - уникальные пароли/ключи для шифрования ваших данных.
спасибо indienick! – garima
спасибо большое Thilo. Я это решает мою проблему – garima