Как работает алгоритм blowfish в C ++? - PullRequest
0 голосов
/ 11 января 2011

Привет всем Я должен зашифровать свои данные, используя алгоритм Blowfish в C ++ ... Можете ли вы сказать мне, знает ли другой конец, какой алгоритм я использую, не могут ли они извлечь ключ и расшифровать его? Насколько безопасны данные этим методом?

Ответы [ 3 ]

4 голосов
/ 11 января 2011

Вы, ребята, можете сказать мне, если другой конец знает, какой алгоритм я использую, неужели они не могут извлечь ключ и расшифровать его?

Нет. Весь смысл стандартизированных алгоритмов шифрования (в отличие от тех, которые полагаются на неизвестность) заключается в том, что даже если все знают все его детали, его невозможно расшифровать, если у него нет ключа.

Этот подход работает, потому что единственный способ взломать шифрование - это попробовать все возможные ключи, которых слишком много. По мере увеличения вычислительной мощности ранее «безопасные» алгоритмы становятся «небезопасными». В некоторых алгоритмах также могут быть недостатки, которые допускают другие формы удержаний, которые значительно сокращают возможное пространство ключей и, следовательно, ускоряют эти атаки методом "грубой силы". Но (насколько нам известно) Blowfish здесь в безопасности.

Конечно, важно держать в секрете ключ. Если ваша программа также содержит ключ (в отличие от запроса его у пользователя или какого-либо устройства или использования случайных ключей сеанса, которые сами зашифрованы с использованием криптографии с открытым ключом), то, вероятно, обратный инженер найдет его и нарушит вашу схему.

Важной частью сохранения ключа в секрете является сохранение его "не догадывающимся" и не повторное использование его для других целей. Случайно сгенерированные ключи являются лучшими.

Кроме того, под "другим концом" вы имеете в виду злоумышленника, верно? Обычно «другой конец» относится к Бобу, Предполагаемому Получателю, и он, конечно, должен иметь возможность расшифровать сообщение.

1 голос
/ 11 января 2011

Насколько я понимаю, одна из целей выбора конкретного метода шифрования и дешифрования заключается в том, что оба конца потока связи будут знать, каким алгоритмом зашифрованы данные.

Если вам «необходимо» зашифровать данные с помощью алгоритма Blowfish, то одно только требование должно сказать вам, что получатель ожидает сообщение, зашифрованное с использованием схемы Blowfish.

Как и Тило сказал:«весь смысл стандартизированных алгоритмов шифрования ... в том, что, хотя все знают все его детали, его невозможно расшифровать, если у него нет ключа».

Лучший способ предотвратить взлом человека.Средние атаки и другие атаки, в которых участвует злоумышленник, перехватывающий ваши сообщения, должны обеспечивать безопасность вашего ключа - не кодировать его жестко в какие-либо программы (даже скомпилированные программы могут быть проанализированы) и создавать доверительные отношения с получателем, обеспечивая их безопасностьпрактики сводят к минимуму вероятность того, что вредоносный агент получитон соответствующий ключ.Кроме того, если ваш получатель поддерживает его, вы можете использовать «одноразовые планшеты» - уникальные пароли / ключи для шифрования ваших данных.

1 голос
/ 11 января 2011

Нет известных атак на Blowfish (по состоянию на январь 2011 года), поэтому ваши данные в такой же безопасности, как и длина ключа (которая в Blowfish может составлять до 448 бит).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...