How to choose an AES encryption mode (CBC ECB CTR OCB CFB)?

Quais deles são preferidos em quais circunstâncias?

Eu gostaria de ver a lista de crtieria de avaliação para os vários modos, e talvez uma discussão da aplicabilidade de cada critério.

Por exemplo, acho que um dos critérios é "tamanho do código" para criptografia e descriptografia, o que é importante para sistemas incorporados em micro-código, como adaptadores de rede 802.11. Se o código necessário para implementar o CBC é muito menor do que o necessário para o CTR (não sei se isso é verdade, é apenas um exemplo), então eu poderia entender por que o modo com o código menor seria o preferido. Mas se eu estou escrevendo um aplicativo que é executado em um servidor, e a biblioteca AES que estou usando implementa CBC e CTR de qualquer maneira, esse critério é irrelevante.

Veja o que quero dizer com "lista de critérios de avaliação e aplicabilidade de cada critério"?

Isso não é realmente relacionado a programação, mas é relacionado a algoritmo.

questionAnswers(7)

yourAnswerToTheQuestion