Alguns palpites:
-
O dispositivo de criptografia está sendo compactado antes de criptografar.
-
Escrever para flash é mais rápido do que escrever zeros.
Eu codifiquei minha unidade flash Transcend Jetflash (16 GB, USB2, ext2). Antes da operação, a velocidade da unidade flash era:
# dd if=/dev/zero of=/media/JetFlash/file bs=1M count=256
Resultados com: 26,5 s, 10,1 Mb / s
Então eu criptografei:
# losetup -e AES128 /dev/loop1 /dev/sdb
# mkfs -t ext2 /dev/loop1
# losetup -d /dev/loop1
# mkdir /mnt/tmp
# mount /dev/sdb -o loop=/dev/loop1,encryption=AES128 /mnt/tmp -t ext2
# losetup -e AES128 /dev/loop1 /dev/sdb
E eu executei o mesmo comando:
# dd if=/dev/zero of=/mnt/tmp/file bs=1M count=256
Resultados com: 11,98 s, 22,4 Mb / s
Para o AES256, o resultado foi: 12,83 s, 20,9 Mb / s
Alguém pode explicar o que está acontecendo? Por que uma unidade flash criptografada funciona duas vezes mais rápido?
Alguns palpites:
O dispositivo de criptografia está sendo compactado antes de criptografar.
Escrever para flash é mais rápido do que escrever zeros.
Eu acho que tem a ver com o cache de gravação, a camada LUKS pode atuar como um cache também, mas no final, ainda é limitada pela velocidade do disco.
Tente escrever um arquivo maior, isso deve dar resultados mais realistas. Para testar o tempo necessário para gravar na unidade flash, execute um comando sync
depois de executar o comando dd
. Agora meça o tempo antes de executar dd
e depois de dd
usando o programa date
.