我想加密硬盘的一部分。但在此之前,我想对可用的不同算法进行基准测试,想知道是否应该选择aes-xts-256
或aes-xts-512
。
注意:我没有aes
硬件加速。基准重复了多次,没有太大变化。我想明确指出,这些基准测试仅在我的计算机上有效(Debian,Core 2 duo)。这并非是完整的LUKS-TrueCrypt比较。
TL; DR:转到第4部分
因此,我下载cryptsetup v1.6.0
以使用新cryptsetup benchmark
命令。
$cryptsetup benchmark
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 128,2 MiB/s 157,2 MiB/s
serpent-cbc 128b 49,6 MiB/s 57,7 MiB/s
twofish-cbc 128b 138,0 MiB/s 183,8 MiB/s
aes-cbc 256b 97,5 MiB/s 121,9 MiB/s
serpent-cbc 256b 51,8 MiB/s 57,7 MiB/s
twofish-cbc 256b 139,0 MiB/s 183,8 MiB/s
aes-xts 256b 156,4 MiB/s 157,8 MiB/s
serpent-xts 256b 55,7 MiB/s 58,7 MiB/s
twofish-xts 256b 161,5 MiB/s 165,9 MiB/s
aes-xts 512b 120,5 MiB/s 120,9 MiB/s
serpent-xts 512b 55,7 MiB/s 58,5 MiB/s
twofish-xts 512b 161,5 MiB/s 165,3 MiB/s
cbc
模式下,serpent
解密速度快得惊人!xts
模式下,serpent
显然是最快的。serpent
twofish
aes
增大密钥大小时,不能正常工作。从VM更新
我aes
以最快的速度(甚至没有硬件加速)而感到惊讶。因此,我下载TrueCrypt
并仔细检查了这些结果。默认情况下TrueCrypt
使用该xts
模式,因此我假设它也在其基准测试中也使用了该模式。
- 工具>基准
- 选择任何缓冲区大小(此处为5MB)
- 点击“基准”
# Algorithm | Encryption | Decryption
AES 106 MB/s 107 MB/s
Twofish 78 MB/s 76 MB/s
Serpent 41 MB/s 42 MB/s
这些结果与预期的结果相符得多,但与cryptsetup
的结果并不完全匹配。
cryptsetup
提供了比TrueCrypt
这种情况更好的综合性能。可以通过以下方式对此进行解释:
cryptsetup
已在我的系统上使用编译器优化例程TrueCrypt
进行了编译,同时已经以通用方式进行了编译;cryptsetup
使用内核TrueCrypt
空间加密模块,而使用用户空间加密例程。serpent-xts-512
似乎是唯一值得使用的密码cryptsetup
而aes-xts
要使用的方法。cryptsetup
并且TrueCrypt
在RAM内基准测试中给出完全不同的定性(相对密码速度)和定量(每个密码的实际速度)结果。
cryptsetup
并使用serpent-xts-512
密码来提高速度吗?您没有AES硬件加速,并且正在虚拟机中运行测试。测试结果不太可能反映实际结果,因为加密/解密速度很大程度上取决于当前的CPU和磁盘负载。最好的选择是创建两个独立的Truecrypt分区,并通过向每个分区复制一些大文件或从每个分区复制一些大文件来执行手动基准测试。
LUKS和Truecrypt的实现也略有不同,正如您所说,“这些基准仅在我的计算机上有效”。您需要使用实际的文件传输在系统上进行实际测试,以确定真正的性能。
至于差异,Truecrypt使用FUSE来实现用户空间文件系统,而LUKS通常在实际内核中完成。因此,使用Linux的LUKS / dm-crypt / cryptsetup而非Truecrypt可能会获得更好的吞吐量,尽管您选择哪种选项取决于加密的要求(例如,Truecrypt分区可以在运行之间转移。系统(如果需要)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句