我已经加密了我的 Transcend Jetflash 闪存驱动器(16 GB,USB2,ext2)。操作之前,闪存驱动器的速度为:
# dd if=/dev/zero of=/media/JetFlash/file bs=1M count=256
结果:26.5 秒,10.1 Mb/s
然后我加密了它:
# 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
我也执行了同样的命令:
# dd if=/dev/zero of=/mnt/tmp/file bs=1M count=256
结果:11.98 秒,22.4 Mb/s
对于 AES256,结果是:12,83 秒,20,9 Mb/s
有人能解释一下发生了什么吗?为什么加密闪存驱动器的运行速度快了一倍?
答案1
一些猜测:
加密设备在加密之前进行压缩。
将 1 写入闪存比写入 0 更快。
答案2
我猜这与写入缓存有关,LUKS 层也可能充当缓存,但最终它仍然受到磁盘速度的限制。
尝试写入更大的文件,它应该会给出更真实的结果。要测试写入闪存驱动器所需的时间,请sync
在执行命令后运行命令。现在测量运行前和使用该程序后的dd
时间。dd
dd
date