我有一台配备 i5-8250U CPU @ 1.60GHz × 4、SSD 和 8GB RAM 的笔记本电脑,正在考虑 FDE。我如何知道运行 cryptsetup 基准测试得到的结果是否良好?
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 1009,1 MiB/s 2940,9 MiB/s
serpent-cbc 128b 85,5 MiB/s 635,5 MiB/s
twofish-cbc 128b 189,4 MiB/s 331,6 MiB/s
aes-cbc 256b 759,4 MiB/s 2321,9 MiB/s
serpent-cbc 256b 85,4 MiB/s 636,4 MiB/s
twofish-cbc 256b 188,6 MiB/s 347,8 MiB/s
aes-xts 256b 1842,9 MiB/s 1837,9 MiB/s
serpent-xts 256b 614,2 MiB/s 626,0 MiB/s
twofish-xts 256b 341,6 MiB/s 342,8 MiB/s
aes-xts 512b 1706,6 MiB/s 1695,2 MiB/s
serpent-xts 512b 616,7 MiB/s 627,6 MiB/s
twofish-xts 512b 340,1 MiB/s 341,2 MiB/s
答案1
使用默认aes-xts-plain64
密码,通常即使是入门级/移动系统也很好,只要 CPU 支持 AES-NI。这应该会使加密速度足够快,即使对于 SSD 存储也难以察觉。
为了直观地了解 AES-NI 的差异有多大,下面是在同一台机器上运行的随机基准测试:
for bits in 256 256 256 512 512 512
do
cryptsetup benchmark -c aes-xts-plain64 -s $bits
done
启用 AES-NI 后 ( modprobe aesni_intel
):
# Tests are approximate using memory only (no storage IO).
# Algorithm | Key | Encryption | Decryption
aes-xts 256b 1373.2 MiB/s 1425.4 MiB/s
aes-xts 256b 1501.9 MiB/s 1482.9 MiB/s
aes-xts 256b 1461.8 MiB/s 1424.9 MiB/s
aes-xts 512b 1145.6 MiB/s 1164.9 MiB/s
aes-xts 512b 1239.6 MiB/s 1203.9 MiB/s
aes-xts 512b 1064.8 MiB/s 1224.6 MiB/s
禁用 AES-NI ( rmmod aesni_intel
) 后速度会慢很多:
# Tests are approximate using memory only (no storage IO).
# Algorithm | Key | Encryption | Decryption
aes-xts 256b 145.6 MiB/s 174.6 MiB/s
aes-xts 256b 170.4 MiB/s 151.6 MiB/s
aes-xts 256b 127.0 MiB/s 168.5 MiB/s
aes-xts 512b 128.9 MiB/s 124.0 MiB/s
aes-xts 512b 124.2 MiB/s 119.9 MiB/s
aes-xts 512b 124.8 MiB/s 123.0 MiB/s
即使没有 AES-NI,对于常规桌面使用,您可能不会注意到太大的差异(毕竟大多数内容都缓存在 RAM 中),并且要么需要加密(然后性能并不重要),要么不需要,所以不必担心太多。
要真正确定,只有一种方法可以找到答案 - 设置它然后测试一些您通常做的事情。最好的基准是您自己运行的基准。