Какое самое надежное шифрование для защиты текста? - PullRequest
4 голосов
/ 10 октября 2010

Привет всем, что мне нужно для шифрования текста. Какое шифрование лучше всего использовать программно?
В общем, у меня есть входной файл со строкой, которую мне нужно зашифровать, затем прочитайте файл в приложении
Расшифруйте его для приложенияflow.
с c ++

Ответы [ 3 ]

13 голосов
/ 10 октября 2010

Самое сильное шифрование - это использование одноразовой клавиатуры (например, с XOR).Алгоритм с одним временным блоком (в отличие от большинства других широко используемых алгоритмов) гарантированно безопасен при правильном использовании.

Одна серьезная проблема с этим алгоритмом состоит в том, что распределение одноразового блока должно выполняться безопасно, и это частонепрактично.Если бы можно было безопасно передавать одноразовую панель, то было бы также возможно безопасно отправить сообщение по тому же каналу.

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

Чтобы получить надежное шифрование с помощью криптографии с открытым ключом, ключи имеют тенденцию быть большими (тысячи битов не редкость), а алгоритмы медленные для вычисления,Альтернативой является использование алгоритма симметричного ключа .Зачастую они могут получить одинаково надежное шифрование с более короткими ключами и быстрее шифровать и дешифровать.Как и в случае одноразовых планшетов, здесь также есть проблема с распределением ключей, но на этот раз ключ очень короткий, поэтому более целесообразно передавать его безопасно.Примером обычно используемого алгоритма симметричного ключа является AES .

2 голосов
/ 10 октября 2010

Одноразовый блокнот является самым сильным, но, вероятно, вы ищете то, что вы можете легко использовать в своем приложении. Проверьте эту страницу, чтобы узнать о силе алгоритмов - http://security.resist.ca/crypt.shtml, и здесь у вас есть библиотека C ++: crypto ++ (ссылка указывает на эталонный тест, сравнивающий производительность различных алгоритмов) http://www.cryptopp.com/benchmarks.html.

0 голосов
/ 10 октября 2010

Ответ зависит от того, что вы подразумеваете под «сильным шифрованием».

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

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

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

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

Выбор режима надежного шифрования также можетпосмотрите на практический аспект.Например, сколько криптоанализа перешло в режим шифрования или насколько хорошо была проанализирована криптографическая библиотека, которая реализует алгоритм.Учитывая это, выбор хорошо известной криптографической библиотеки, надлежащее шифрование с использованием AES, аутентификация с использованием HMAC будет близка к оптимальной.

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