加密闪存驱动器的速度

加密闪存驱动器的速度

我已经加密了我的 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. 加密设备在加密之前进行压缩。

  2. 将 1 写入闪存比写入 0 更快。

答案2

我猜这与写入缓存有关,LUKS 层也可能充当缓存,但最终它仍然受到磁盘速度的限制。

尝试写入更大的文件,它应该会给出更真实的结果。要测试写入闪存驱动器所需的时间,请sync在执行命令后运行命令。现在测量运行前和使用该程序后的dd时间。dddddate

相关内容