< All posts

March 17, 2020, 1:50 p.m.

Cryptsetup LUKS Benchmark X200T, RPI 3B+ and T610

Benchmark data for cryptsetup

Thinkpad X200T (6GB RAM, Debian 10.3 Buster, Linux Kernel 4.19.0-8)

~$ sudo cryptsetup benchmark
[sudo] password for user: 
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       475760 iterations per second for 256-bit key
PBKDF2-sha256     621931 iterations per second for 256-bit key
PBKDF2-sha512     466448 iterations per second for 256-bit key
PBKDF2-ripemd160  323235 iterations per second for 256-bit key
PBKDF2-whirlpool  229950 iterations per second for 256-bit key
argon2i       4 iterations, 188711 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 190209 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm |       Key |      Encryption |      Decryption
        aes-cbc        128b        85.4 MiB/s       105.6 MiB/s
    serpent-cbc        128b        30.7 MiB/s       134.4 MiB/s
    twofish-cbc        128b        77.8 MiB/s       112.6 MiB/s
        aes-cbc        256b        68.8 MiB/s        77.1 MiB/s
    serpent-cbc        256b        36.0 MiB/s       132.9 MiB/s
    twofish-cbc        256b        85.7 MiB/s       112.6 MiB/s
        aes-xts        256b        93.8 MiB/s        84.4 MiB/s
    serpent-xts        256b       107.4 MiB/s       103.4 MiB/s
    twofish-xts        256b        89.9 MiB/s       100.9 MiB/s
        aes-xts        512b        59.8 MiB/s        70.7 MiB/s
    serpent-xts        512b       102.4 MiB/s        87.5 MiB/s
    twofish-xts        512b        75.4 MiB/s        81.2 MiB/s
~$ sudo cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       496484 iterations per second for 256-bit key
PBKDF2-sha256     633963 iterations per second for 256-bit key
PBKDF2-sha512     491827 iterations per second for 256-bit key
PBKDF2-ripemd160  323235 iterations per second for 256-bit key
PBKDF2-whirlpool  234475 iterations per second for 256-bit key
argon2i       4 iterations, 238965 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 253195 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm |       Key |      Encryption |      Decryption
        aes-cbc        128b        92.6 MiB/s       104.1 MiB/s
    serpent-cbc        128b        38.2 MiB/s       135.6 MiB/s
    twofish-cbc        128b        86.2 MiB/s       111.3 MiB/s
        aes-cbc        256b        73.4 MiB/s        82.1 MiB/s
    serpent-cbc        256b        37.8 MiB/s       131.9 MiB/s
    twofish-cbc        256b        87.5 MiB/s       118.6 MiB/s
        aes-xts        256b        97.0 MiB/s       103.8 MiB/s
    serpent-xts        256b       126.2 MiB/s       127.8 MiB/s
    twofish-xts        256b       106.7 MiB/s       112.4 MiB/s
        aes-xts        512b        80.4 MiB/s        81.3 MiB/s
    serpent-xts        512b       123.7 MiB/s       130.9 MiB/s
    twofish-xts        512b       110.5 MiB/s       109.3 MiB/s
~$ sudo cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       497426 iterations per second for 256-bit key
PBKDF2-sha256     623410 iterations per second for 256-bit key
PBKDF2-sha512     470635 iterations per second for 256-bit key
PBKDF2-ripemd160  319298 iterations per second for 256-bit key
PBKDF2-whirlpool  229950 iterations per second for 256-bit key
argon2i       4 iterations, 192896 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 220839 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm |       Key |      Encryption |      Decryption
        aes-cbc        128b        81.4 MiB/s        97.9 MiB/s
    serpent-cbc        128b        26.6 MiB/s        74.1 MiB/s
    twofish-cbc        128b        81.4 MiB/s       107.9 MiB/s
        aes-cbc        256b        70.7 MiB/s        73.2 MiB/s
    serpent-cbc        256b        36.0 MiB/s       135.0 MiB/s
    twofish-cbc        256b        86.7 MiB/s        63.6 MiB/s
        aes-xts        256b        64.7 MiB/s        68.1 MiB/s
    serpent-xts        256b        93.8 MiB/s        95.3 MiB/s
    twofish-xts        256b       107.3 MiB/s       100.6 MiB/s
        aes-xts        512b        78.1 MiB/s        75.3 MiB/s
    serpent-xts        512b       115.9 MiB/s       122.1 MiB/s
    twofish-xts        512b       105.9 MiB/s        95.0 MiB/s

Raspberry Pi 3B+ (1GB RAM, Raspbian 10.3, Linux Kernel 4.19.97-v7+)

pi@PI:~$ sudo cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       147936 iterations per second for 256-bit key
PBKDF2-sha256     242277 iterations per second for 256-bit key
PBKDF2-sha512     158299 iterations per second for 256-bit key
PBKDF2-ripemd160  115177 iterations per second for 256-bit key
PBKDF2-whirlpool   22021 iterations per second for 256-bit key
argon2i       4 iterations, 110020 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 140072 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm |       Key |      Encryption |      Decryption
        aes-cbc        128b        25.2 MiB/s        49.2 MiB/s
    serpent-cbc        128b               N/A               N/A
    twofish-cbc        128b               N/A               N/A
        aes-cbc        256b        21.0 MiB/s        37.0 MiB/s
    serpent-cbc        256b               N/A               N/A
    twofish-cbc        256b               N/A               N/A
        aes-xts        256b        55.5 MiB/s        48.1 MiB/s
    serpent-xts        256b               N/A               N/A
    twofish-xts        256b               N/A               N/A
        aes-xts        512b        41.5 MiB/s        36.3 MiB/s
    serpent-xts        512b               N/A               N/A
    twofish-xts        512b               N/A               N/A
pi@PI:~$ sudo cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       148439 iterations per second for 256-bit key
PBKDF2-sha256     235741 iterations per second for 256-bit key
PBKDF2-sha512     159649 iterations per second for 256-bit key
PBKDF2-ripemd160  113580 iterations per second for 256-bit key
PBKDF2-whirlpool   22110 iterations per second for 256-bit key
argon2i       4 iterations, 120439 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 125033 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm |       Key |      Encryption |      Decryption
        aes-cbc        128b        26.1 MiB/s        48.0 MiB/s
    serpent-cbc        128b               N/A               N/A
    twofish-cbc        128b               N/A               N/A
        aes-cbc        256b        20.8 MiB/s        36.7 MiB/s
    serpent-cbc        256b               N/A               N/A
    twofish-cbc        256b               N/A               N/A
        aes-xts        256b        53.5 MiB/s        47.6 MiB/s
    serpent-xts        256b               N/A               N/A
    twofish-xts        256b               N/A               N/A
        aes-xts        512b        40.5 MiB/s        35.1 MiB/s
    serpent-xts        512b               N/A               N/A
    twofish-xts        512b               N/A               N/A
pi@PI:~$ sudo cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       150657 iterations per second for 256-bit key
PBKDF2-sha256     237449 iterations per second for 256-bit key
PBKDF2-sha512     160824 iterations per second for 256-bit key
PBKDF2-ripemd160  114573 iterations per second for 256-bit key
PBKDF2-whirlpool   21830 iterations per second for 256-bit key
argon2i       4 iterations, 113299 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 123833 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm |       Key |      Encryption |      Decryption
        aes-cbc        128b        26.3 MiB/s        49.2 MiB/s
    serpent-cbc        128b               N/A               N/A
    twofish-cbc        128b               N/A               N/A
        aes-cbc        256b        20.8 MiB/s        36.6 MiB/s
    serpent-cbc        256b               N/A               N/A
    twofish-cbc        256b               N/A               N/A
        aes-xts        256b        55.3 MiB/s        48.5 MiB/s
    serpent-xts        256b               N/A               N/A
    twofish-xts        256b               N/A               N/A
        aes-xts        512b        42.1 MiB/s        35.4 MiB/s
    serpent-xts        512b               N/A               N/A
    twofish-xts        512b               N/A               N/A

HP Thin Client T610 (4GB RAM, Debian 10.3 Buster, Linux Kernel 5.4.0-0.bpo.3-amd64)

[user@hp_t610 ~]$ sudo cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       280367 iterations per second for 256-bit key
PBKDF2-sha256     300969 iterations per second for 256-bit key
PBKDF2-sha512     283705 iterations per second for 256-bit key
PBKDF2-ripemd160  245453 iterations per second for 256-bit key
PBKDF2-whirlpool  135966 iterations per second for 256-bit key
argon2i       4 iterations, 125647 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 148535 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm |       Key |      Encryption |      Decryption
        aes-cbc        128b        51.7 MiB/s        61.4 MiB/s
    serpent-cbc        128b        20.6 MiB/s        42.4 MiB/s
    twofish-cbc        128b        50.3 MiB/s        69.5 MiB/s
        aes-cbc        256b        46.6 MiB/s        53.8 MiB/s
    serpent-cbc        256b        32.0 MiB/s        42.9 MiB/s
    twofish-cbc        256b        71.8 MiB/s        69.9 MiB/s
        aes-xts        256b        69.3 MiB/s        69.6 MiB/s
    serpent-xts        256b        35.8 MiB/s        41.5 MiB/s
    twofish-xts        256b        59.3 MiB/s        67.3 MiB/s
        aes-xts        512b        54.4 MiB/s        54.2 MiB/s
    serpent-xts        512b        41.3 MiB/s        41.4 MiB/s
    twofish-xts        512b        65.4 MiB/s        67.0 MiB/s
[user@hp_t610 ~]$ sudo cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       283092 iterations per second for 256-bit key
PBKDF2-sha256     302706 iterations per second for 256-bit key
PBKDF2-sha512     284629 iterations per second for 256-bit key
PBKDF2-ripemd160  247305 iterations per second for 256-bit key
PBKDF2-whirlpool  137248 iterations per second for 256-bit key
argon2i       4 iterations, 171872 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 184537 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm |       Key |      Encryption |      Decryption
        aes-cbc        128b        58.0 MiB/s        70.6 MiB/s
    serpent-cbc        128b        32.1 MiB/s        42.3 MiB/s
    twofish-cbc        128b        71.8 MiB/s        70.9 MiB/s
        aes-cbc        256b        44.2 MiB/s        55.0 MiB/s
    serpent-cbc        256b        32.1 MiB/s        42.5 MiB/s
    twofish-cbc        256b        71.1 MiB/s        70.3 MiB/s
        aes-xts        256b        68.7 MiB/s        68.2 MiB/s
    serpent-xts        256b        41.9 MiB/s        41.4 MiB/s
    twofish-xts        256b        66.2 MiB/s        67.2 MiB/s
        aes-xts        512b        54.1 MiB/s        54.5 MiB/s
    serpent-xts        512b        41.4 MiB/s        40.8 MiB/s
    twofish-xts        512b        65.3 MiB/s        67.1 MiB/s
[user@hp_t610 ~]$ sudo cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1       281875 iterations per second for 256-bit key
PBKDF2-sha256     301314 iterations per second for 256-bit key
PBKDF2-sha512     286496 iterations per second for 256-bit key
PBKDF2-ripemd160  246375 iterations per second for 256-bit key
PBKDF2-whirlpool  136533 iterations per second for 256-bit key
argon2i       4 iterations, 179442 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id      4 iterations, 178899 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
#     Algorithm |       Key |      Encryption |      Decryption
        aes-cbc        128b        57.6 MiB/s        70.1 MiB/s
    serpent-cbc        128b        31.8 MiB/s        42.9 MiB/s
    twofish-cbc        128b        71.0 MiB/s        70.2 MiB/s
        aes-cbc        256b        47.3 MiB/s        54.7 MiB/s
    serpent-cbc        256b        31.8 MiB/s        43.3 MiB/s
    twofish-cbc        256b        71.9 MiB/s        70.7 MiB/s
        aes-xts        256b        68.7 MiB/s        69.7 MiB/s
    serpent-xts        256b        41.1 MiB/s        41.8 MiB/s
    twofish-xts        256b        65.9 MiB/s        66.7 MiB/s
        aes-xts        512b        54.1 MiB/s        53.7 MiB/s
    serpent-xts        512b        42.0 MiB/s        40.8 MiB/s
    twofish-xts        512b        66.5 MiB/s        67.6 MiB/s


The Raspberry Pi 3B+ and the newer RPi 4B does not have a hardware accelerated AES for encryption, so don’t expect fast performance with them.