我想加密硬盘的一部分。但在此之前,我想对其他可用算法进行基准测试,想知道是否应该选择aes-xts-256或aes-xts-512。
注意:我没有aes硬件加速。基准重复了多次,没有太大变化。我想明确指出,这些基准测试仅在我的计算机(Debian,Core 2 duo)上有效。这并非是完整的LUKS-TrueCrypt比较。
TL; DR:转到第4部分
1-加密设置
因此,我下载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显然是最快的。- 密钥大小似乎对几乎没有明显影响。
serpenttwofish aes增大密钥大小时,不能正常工作。
从VM更新
2-TrueCrypt
我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的结果并不完全匹配。
3-一般思想
cryptsetup提供了比TrueCrypt这种情况更好的综合性能。可以通过以下方式对此进行解释:cryptsetup已在我的系统上使用编译器优化例程TrueCrypt进行了编译,同时已经以通用方式进行了编译;- AFAIK
cryptsetup使用内核TrueCrypt空间加密模块,而使用用户空间加密例程。
- 但是,我无法解释为什么
serpent-xts-512似乎是唯一值得使用的密码cryptsetup而aes-xts要使用的方法。
4-问题
cryptsetup并TrueCrypt在RAM内基准测试中给出完全不同的定性(相对密码速度)和定量(每个密码实际速度)结果。
- 那是您已经注意到的东西吗?
- 我应该信任
cryptsetup并使用serpent-xts-512密码来提高速度吗?
serpent变了,除了变慢了很多。这样就解决了蛇的问题。Twofish仍比更快aes的cryptsetup和更慢的TrueCrypt。而且我根本没有aes硬件加速...这不是VM的事情……