在我的系统上对不同加密解决方案进行基准测试的最佳方法

在我的系统上对不同加密解决方案进行基准测试的最佳方法

我想比较用于加密我的系统的不同加密解决方案,可能针对系统不同部分的不同解决方案,例如/usr/home。我特别关注具有不同参数的 dm-crypt 分区、容器、truecrypt、ecryptfs 和 encfs。出于多种原因,我认为仅使用以下方法测量原始 seq 读取和写入速度dd是不够的:

  • seq 读/写给我不同的 CPU 负载,例如 ecryptfs 仅加载一个核心(高达 100%),而 dm-crypt 更快,但加载两个核心,因此在实际使用中,当系统负载来自 ecryptfs 时,ecryptfs 可能会更快其他应用程序(也许不是,但我如何对其进行基准测试?)
  • 这都是关于SSD的,所以我想要一个基准测试,它表明系统会感觉哪个选项反应更快,所以我应该包括一些随机读写测试或类似的东西(但我不知道该怎么做) )
  • 对解决方案进行基准测试/usr可能需要其他基准测试,/home因为 I/O 特性可能不同

我应该补充一点,我的 CPU 不支持 AES 指令,因此它是性能的限制因素。我不想隔离系统的一部分,而是比较特定系统中 SSD 的不同加密解决方案。那么,针对我的案例进行基准测试的最佳方法是什么以及如何详细执行?

答案1

内置的怎么样cryptsetup benchmark

# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       633198 iterations per second
PBKDF2-sha256     329326 iterations per second
PBKDF2-sha512     216647 iterations per second
PBKDF2-ripemd160  474039 iterations per second
PBKDF2-whirlpool  248713 iterations per second
#  Algorithm | Key |  Encryption |  Decryption
     aes-cbc   128b   707.0 MiB/s  3120.9 MiB/s
 serpent-cbc   128b    98.3 MiB/s   307.2 MiB/s
 twofish-cbc   128b   195.0 MiB/s   381.7 MiB/s
     aes-cbc   256b   513.8 MiB/s  2373.9 MiB/s
 serpent-cbc   256b    97.4 MiB/s   315.1 MiB/s
 twofish-cbc   256b   198.8 MiB/s   383.9 MiB/s
     aes-xts   256b  2706.1 MiB/s  2634.1 MiB/s
 serpent-xts   256b   318.0 MiB/s   310.4 MiB/s
 twofish-xts   256b   370.5 MiB/s   380.1 MiB/s
     aes-xts   512b  2083.2 MiB/s  2073.8 MiB/s
 serpent-xts   512b   323.0 MiB/s   311.4 MiB/s
 twofish-xts   512b   375.9 MiB/s   380.2 MiB/s

通常您会想要使用 AES 密码之一。即使您的系统现在不支持 AES-NI,您的下一个盒子也可能...

答案2

看看邦妮++为您提供您正在寻找的测试/结果。 Bonnie++ 可能可以从您的发行版存储库中获得。

本文,SSD Linux 基准测试:比较文件系统和加密方法您可能也会感兴趣。

答案3

您提到的解决方案在实际用途上确实存在很大差异 - dm-crypt 是完整的文件系统加密,而 ecryptfs/encfs 位于文件系统之上。如果你想要安全,请决定首先什么你真的想要而且只那么如何去解决它。

也就是说,如果您的 CPU 成为瓶颈,请不要感到惊讶 - 我认为由于它不支持 AES-NI,它的性能与例如 Intel Core2 Duo 的数量级相同 - 我碰巧测试了大约一年前。内核加密模块的速度约为 38MB/s±10MB/s,具体取决于所使用的密码和块大小(Twofish、AES、Serpent 和 Camellia,块大小为 128/192/256b)。

相关内容