Какой режим блочного шифра использовать? CFB адекватный? - PullRequest
2 голосов
/ 17 июля 2009

Я хочу использовать AES для шифрования некоторых данных произвольной длины, и мне интересно, какой режим блочного шифра мне следует использовать. http://www.daemonology.net/blog/2009-06-11-cryptographic-right-answers.html рекомендует AES в режиме CTR. Я пишу плагин Ruby on Rails, и, к сожалению, OpenSSL (для которого у Ruby есть стандартные привязки) не поддерживает CTR. Я хочу, чтобы мой код работал "из коробки" для всех без необходимости установки сторонней криптографической библиотеки, поэтому сейчас я использую CFB. Является ли CFB приемлемым? Как он сравнивается с CTR или другими режимами (за исключением ECB, который, как я знаю, небезопасен)?

Ответы [ 4 ]

3 голосов
/ 17 июля 2009

AFAIK, CFB так же безопасен, как и любой другой режим. Преимущества потоковых режимов есть в других областях (распараллеливание, произвольный доступ и т. Д.).

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

С другой стороны, я не согласен с комментарием ECB / CFB. ЕЦБ может выявить закономерности в ваших данных и сделать слабые схемы еще более слабыми. Я бы не стал с большой охотой списывать это на «небезопасные».

1 голос
/ 17 июля 2009

CFB так же безопасен, как CTR в контексте потокового шифра. CTR может быть распараллелен, тогда как CFB не может. Обратите внимание на предупреждения о том, что реализация собственного криптографического потокового шифра, вероятно, оставит вас с дырами в безопасности. Лучше всего делать привязки C из Ruby в OpenSSL, если это возможно.

0 голосов
/ 17 июля 2009

В качестве альтернативы использованию режима, который комбинирует создание потокового шифра, вы можете подойти к проблеме с помощью метода, называемого шифрование текста (CTS) вместе с режимом, подобным CBC, но этоработать с размерами данных 16 байт и более.

0 голосов
/ 17 июля 2009

Не занимайтесь собственной криптографией. Если вам нужно задать такой вопрос, вы вряд ли сделаете это правильно. Используйте библиотеку, пожалуйста.

См., Например, этот пост , а затем это продолжение и, в частности, блог , на который он ссылается.

Например, ECB не более небезопасен, чем CFB. Они используются для разных целей, и выбор одного из другого для неправильной цели будет столь же небезопасным.

...