Pergunta

Eu gostaria de adicionar criptografia AES para um produto de software, mas estou preocupado com o aumento do tamanho dos dados. Eu estou supondo que os dados faz aumentar de tamanho, e então eu vou ter que adicionar um algoritmo de compressão para compensar.

Foi útil?

Solução

AES não expande dados. Além disso, a saída não será geralmente compressível; se você pretende compactar os dados, faça isso antes de criptografá-lo.

No entanto, nota que a criptografia AES é geralmente combinado com estofamento , que < em> irá aumentar o tamanho dos dados (embora apenas por alguns bytes).

Outras dicas

AES não expande os dados, com exceção de alguns bytes de preenchimento no final do último bloco.

Os dados resultantes não são compressíveis, de qualquer forma, porque eles são basicamente aleatória - não algoritmo baseado em dicionário é capaz de comprimi-los de forma eficaz. A melhor prática é comprimir os dados em primeiro lugar, então criptografá-los.

É comum Compactar dados antes de os encriptar. Comprimi-lo depois não funciona, porque AES criptografada de dados aparece aleatório (como para qualquer boa cifra, para além de quaisquer cabeçalhos e outros enfeites).

No entanto, a compactação pode apresentar ataques de canal lateral em alguns contextos, por isso você deve analisar o seu próprio uso. Esses ataques foram recentemente relatados contra VOIP criptografado: a essência é que diferentes sílabas criar variações características na taxa de bits quando comprimido com VBR, porque alguns sons comprimir melhor do que outros. Alguns (ou todos) sílabas pode, portanto, ser recuperável com análise suficiente, uma vez que os dados são transmitidos à taxa que é gerado. A correcção, quer seja para a utilização (menos eficaz) a compressão de RBC, ou a utilização de um tampão de transmissão a uma taxa constante, independentemente da taxa de dados que sai do (latência crescente) codificador.

AES transforma 16 blocos de entrada de bytes em blocos de saída de 16 bytes. A única expansão é para arredondar os dados até um número inteiro de blocos.

Estou bastante certo de criptografia AES não acrescenta nada no banco de dados criptografado, uma vez que daria informações sobre as variáveis ??de estado, e que é uma coisa ruim quando se trata de criptografia.

Se você quiser misturar compressão e criptografia, fazê-las nessa ordem. A razão é criptografada de dados (idealmente) se parece com dados totalmente aleatórios, e algoritmos de compressão vai acabar fazendo maior dos dados, devido à sua incapacidade para realmente compactar qualquer e sobrecarga de contabilidade que vem com qualquer formato de arquivo comprimido.

Se a compressão é necessário fazê-lo antes de criptografar.

No. A única alteração será uma pequena quantidade de preenchimento para alinhar os dados para o tamanho de um bloco de

No entanto, se você está comprimindo a nota conteúdo que você deve fazer isso antes criptografar. dados criptografados geralmente deve ser indistinguível de dados aleatórios, o que significa que não irá comprimir.

@freespace e outros: Uma das coisas que me lembro de minhas aulas de criptografia é que você não deve comprimir os seus dados antes de criptografia, porque alguns pedaços repetíveis de fluxo compactado (como cabeçalhos de seção, por exemplo) pode tornar mais fácil para quebrar o seu criptografia.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top