Como a criptografia AES / Rijndael em geral funciona?
Esta página possui um divertido Guia de figuras simples para o AES (Advanced Encryption Standard) que parece fácil de entender, embora pareça ter mais de 50 imagens, por exemplo, estas duas:
e
É demais duplicar tudo aqui, mas se você tiver que ter uma imagem all-in-one, é esta:
Ou, há uma explicação mais compacta em http://www.password-depot.com/know-how/blowfish_and_rijndael.htm
O método de criptografia Rijndael é baseado na substituição, alteração e execução de operações xor em bytes. O método fica assim:
- A partir da chave de 128 bits, Rijndael gera 10 chaves de 128 bits cada.
- Essas chaves são colocadas em matrizes 4x4.
- O texto sem formatação também é dividido em matrizes 4x4 (128 bits cada).
- Cada um dos itens de texto simples de 128 bits é processado em 10 rodadas (10 rodadas para chaves de 128 bits, 12 para 192, 14 para 256).
- Após a 10ª rodada, o código é gerado.
- Cada byte é substituído em uma caixa S e substituído pelo recíproco em GF (2 8).
- Em seguida, uma matriz modulo-2 em bits é aplicada, seguida por uma operação XOR com 63.
- As linhas das matrizes são classificadas ciclicamente.
- As colunas da multiplicação da matriz são trocadas em GF (2 8).
- As subchaves de cada rodada são submetidas a uma operação XOR.
O nível de segurança desse método de criptografia aumenta se o Rijndael for executado várias vezes com subchaves diferentes.
Como funciona a criptografia de disco completo do Ubuntu?
Eu acredito que ele funciona criptografando uma partição com LUKS (configurações padrão com AES) e, em seguida, coloca alguns volumes nela com o LVM (como /
swap) e descriptografa e monta-os na inicialização depois de inserir uma senha. E há uma partição de inicialização regular (não criptografada) que é inicializada o suficiente para solicitar a senha.
O Guia de criptografia de disco completo do the_simple_computer com o Ubuntu (atualizado em 28 de junho de 2015) diz que é sobre como a criptografia do instalador padrão funciona e menciona que a inicialização dupla não funcionaria (pelo menos não fora da caixa), a unidade deve usar o MBR para que " se o seu computador tiver UEFI, a distribuição será instalada no modo herdado do BIOS para que você não possa usar a Inicialização segura " e " também oferece um tamanho de troca igual ao da RAM do sistema (geralmente desnecessário) e você não tem escolha sobre que tipo de criptografia é usada " .
Qual a velocidade da criptografia?
Se você executá- cryptsetup benchmark
lo, executará testes e informará sobre a rapidez com que a criptografia demora, observe as linhas (atualmente) padrão do aes-xts:
# Algorithm | Key | Encryption | Decryption
aes-xts 256b 150.0 MiB/s 145.0 MiB/s
Uma velocidade de leitura média do disco rígido pode ser de 80 a 160 MB / s, para que você não demore muito mais do que uma leitura regular e é possível que os setores que acabaram de ler já tenham sido descriptografados enquanto você ainda está esperando pelo disco rígido para ler mais.
Um SSD pode ser mais rápido, talvez 200-550MB / s, então você pode perceber. Mas, leituras aleatórias podem ser mais lentas, e eu li que as velocidades do SSD podem diminuir após o uso (talvez quando a unidade enche completamente e precisa começar a "apagar" setores)
Como o computador pode criptografar / descriptografar completamente toda a unidade em apenas alguns segundos (não demora mais para inicializar ou desligar)?
Não precisa descriptografar tudo primeiro. A criptografia (LUKS) funciona em blocos de dados , pode descriptografar aleatoriamente qualquer bloco e age como uma camada entre os dados criptografados da unidade e o que o sistema de arquivos vê.
Quando o sistema de arquivos deseja ver qualquer bloco de dados, o LUKS descriptografa esse bloco primeiro e depois fornece os dados descriptografados ao sistema de arquivos. Você primeiro espera a unidade ler o bloco de dados (como sem usar criptografia) e possui apenas um atraso extra para descriptografar esse único bloco (ou poucos blocos) de dados - e se a descriptografia for mais rápida que a unidade pode ler, a descriptografia pode ser concluída antes que a unidade leia o próximo bloco de dados.
Portanto, assim como um sistema de arquivos comum não precisa ler a unidade inteira para ler um arquivo, quando a criptografia é adicionada, ela também não precisa ler a unidade inteira e não torna as coisas muito mais lentas.
Os dados no disco rígido são sempre criptografados , portanto não há nada a fazer no desligamento, exceto esquecer a chave.
Isso será um pouco de simplificação, mas vou tentar passar pelo processo de acessar um arquivo em um sistema de arquivos criptografado.
Por exemplo, digamos que no início do sistema de arquivos criptografado haja uma tabela de arquivos; digamos que queremos ler
/foo.bar
. Portanto, a primeira coisa que fazemos é ler o início da partição, descriptografá-la e procurar o arquivo que queremos; digamos que diz que o arquivo começa em 0x10000000 bytes. Então, para ler, começamos a ler do disco nesse local e descriptografá-lo; Da mesma forma, para escrever, podemos criptografar o novo conteúdo e escrevê-lo nesse novo local.Espero que isso ajude a esclarecer qualquer confusão sobre o processo.
fonte
O processador usa conjunto de instruções dedicado. É possível por causa disso, AES-NI . Permite criptografia e descriptografia rápidas, ou você pode dizer que reduz as despesas gerais. É rápido porque é a implementação de hardware, conforme explicado aqui .
Você pode verificar os impactos no desempenho aqui e eles valem a pena para aumentar a segurança.
fonte
Os computadores modernos podem realizar bilhões de operações por segundo, por isso não me surpreende que a criptografia e descriptografia sejam rápidas.
É assim que eu classificaria intuitivamente a rapidez com que os computadores estão fazendo as coisas:
A outra parte importante a entender é que a operação não precisa descriptografar todo o disco rígido para inicializar o sistema. Em vez disso, o sistema operacional sabe como descriptografar apenas as partes do disco rígido necessárias rapidamente e o mesmo vale para a gravação.
Tão intuitivamente, não me surpreende que a criptografia completa do disco não tenha muito impacto no desempenho, pois imagino que o gargalo seja o disco.
Obviamente, essas intuições nem sempre correspondem à realidade. Por exemplo, na realidade, houve casos em que a criptografia de disco completo causou um impacto perceptível no desempenho. Mas geralmente eles são resolvidos depois que os desenvolvedores passam por algumas rodadas de otimizações em desenvolvimento.
fonte