Skip to content

Instantly share code, notes, and snippets.

@kcchu
Last active October 19, 2017 03:56
Show Gist options
  • Save kcchu/99cf83c516bccc26b7fdeb8bc7e85f7a to your computer and use it in GitHub Desktop.
Save kcchu/99cf83c516bccc26b7fdeb8bc7e85f7a to your computer and use it in GitHub Desktop.
Benchmark result of Rust crypto libraries: ring, rust-crypto and sodiumoxide
# Benchmark code: https://github.com/briansmith/crypto-bench
# 2.9 GHz Intel Core i7, Ubuntu 17.04
$ (cd ring && cargo bench); (cd rust_crypto && cargo bench); (cd sodiumoxide && cargo bench)
Finished release [optimized + debuginfo] target(s) in 0.51 secs
Running target/release/deps/crypto_bench_ring-c8db2f09335823cf
running 60 tests
test aead::seal_in_place::aes_128_gcm::tls12_1350 ... bench: 411 ns/iter (+/- 2) = 3284 MB/s
test aead::seal_in_place::aes_128_gcm::tls12_16 ... bench: 125 ns/iter (+/- 40) = 128 MB/s
test aead::seal_in_place::aes_128_gcm::tls12_8192 ... bench: 1,589 ns/iter (+/- 455) = 5155 MB/s
test aead::seal_in_place::aes_128_gcm::tls12_finished ... bench: 134 ns/iter (+/- 21) = 89 MB/s
test aead::seal_in_place::aes_128_gcm::tls13_1350 ... bench: 375 ns/iter (+/- 29) = 3600 MB/s
test aead::seal_in_place::aes_128_gcm::tls13_8192 ... bench: 1,578 ns/iter (+/- 134) = 5191 MB/s
test aead::seal_in_place::aes_128_gcm::tls13_finished ... bench: 116 ns/iter (+/- 34) = 275 MB/s
test aead::seal_in_place::aes_256_gcm::tls12_1350 ... bench: 488 ns/iter (+/- 39) = 2766 MB/s
test aead::seal_in_place::aes_256_gcm::tls12_16 ... bench: 135 ns/iter (+/- 3) = 118 MB/s
test aead::seal_in_place::aes_256_gcm::tls12_8192 ... bench: 2,098 ns/iter (+/- 208) = 3904 MB/s
test aead::seal_in_place::aes_256_gcm::tls12_finished ... bench: 141 ns/iter (+/- 40) = 85 MB/s
test aead::seal_in_place::aes_256_gcm::tls13_1350 ... bench: 473 ns/iter (+/- 37) = 2854 MB/s
test aead::seal_in_place::aes_256_gcm::tls13_8192 ... bench: 2,092 ns/iter (+/- 147) = 3915 MB/s
test aead::seal_in_place::aes_256_gcm::tls13_finished ... bench: 126 ns/iter (+/- 16) = 253 MB/s
test aead::seal_in_place::chacha20_poly1305::tls12_1350 ... bench: 1,019 ns/iter (+/- 132) = 1324 MB/s
test aead::seal_in_place::chacha20_poly1305::tls12_16 ... bench: 359 ns/iter (+/- 43) = 44 MB/s
test aead::seal_in_place::chacha20_poly1305::tls12_8192 ... bench: 4,112 ns/iter (+/- 832) = 1992 MB/s
test aead::seal_in_place::chacha20_poly1305::tls12_finished ... bench: 378 ns/iter (+/- 73) = 31 MB/s
test aead::seal_in_place::chacha20_poly1305::tls13_1350 ... bench: 1,000 ns/iter (+/- 97) = 1350 MB/s
test aead::seal_in_place::chacha20_poly1305::tls13_8192 ... bench: 4,095 ns/iter (+/- 165) = 2000 MB/s
test aead::seal_in_place::chacha20_poly1305::tls13_finished ... bench: 343 ns/iter (+/- 35) = 93 MB/s
test agreement::p256::generate_key_pair ... bench: 14,823 ns/iter (+/- 1,575)
test agreement::p256::generate_key_pair_and_agree_ephemeral ... bench: 69,712 ns/iter (+/- 8,599)
test agreement::p256::generate_private_key ... bench: 475 ns/iter (+/- 129)
test agreement::p384::generate_key_pair ... bench: 442,641 ns/iter (+/- 81,271)
test agreement::p384::generate_key_pair_and_agree_ephemeral ... bench: 879,574 ns/iter (+/- 114,567)
test agreement::p384::generate_private_key ... bench: 775 ns/iter (+/- 102)
test agreement::x25519::generate_key_pair ... bench: 38,562 ns/iter (+/- 7,857)
test agreement::x25519::generate_key_pair_and_agree_ephemeral ... bench: 79,803 ns/iter (+/- 6,533)
test agreement::x25519::generate_private_key ... bench: 373 ns/iter (+/- 30)
test digest::sha1::_1000 ... bench: 4,106 ns/iter (+/- 1,644) = 243 MB/s
test digest::sha1::_16 ... bench: 287 ns/iter (+/- 31) = 55 MB/s
test digest::sha1::_2000 ... bench: 7,867 ns/iter (+/- 443) = 254 MB/s
test digest::sha1::_256 ... bench: 1,208 ns/iter (+/- 228) = 211 MB/s
test digest::sha1::_8192 ... bench: 30,450 ns/iter (+/- 2,772) = 269 MB/s
test digest::sha1::block_len ... bench: 510 ns/iter (+/- 105) = 125 MB/s
test digest::sha256::_1000 ... bench: 2,293 ns/iter (+/- 564) = 436 MB/s
test digest::sha256::_16 ... bench: 214 ns/iter (+/- 31) = 74 MB/s
test digest::sha256::_2000 ... bench: 5,093 ns/iter (+/- 992) = 392 MB/s
test digest::sha256::_256 ... bench: 815 ns/iter (+/- 186) = 314 MB/s
test digest::sha256::_8192 ... bench: 19,206 ns/iter (+/- 5,752) = 426 MB/s
test digest::sha256::block_len ... bench: 347 ns/iter (+/- 43) = 184 MB/s
test digest::sha384::_1000 ... bench: 1,753 ns/iter (+/- 579) = 570 MB/s
test digest::sha384::_16 ... bench: 270 ns/iter (+/- 23) = 59 MB/s
test digest::sha384::_2000 ... bench: 3,104 ns/iter (+/- 1,314) = 644 MB/s
test digest::sha384::_256 ... bench: 685 ns/iter (+/- 184) = 373 MB/s
test digest::sha384::_8192 ... bench: 13,153 ns/iter (+/- 3,048) = 622 MB/s
test digest::sha384::block_len ... bench: 521 ns/iter (+/- 150) = 245 MB/s
test digest::sha512::_1000 ... bench: 1,617 ns/iter (+/- 91) = 618 MB/s
test digest::sha512::_16 ... bench: 258 ns/iter (+/- 74) = 62 MB/s
test digest::sha512::_2000 ... bench: 3,366 ns/iter (+/- 740) = 594 MB/s
test digest::sha512::_256 ... bench: 651 ns/iter (+/- 205) = 393 MB/s
test digest::sha512::_8192 ... bench: 13,019 ns/iter (+/- 3,063) = 629 MB/s
test digest::sha512::block_len ... bench: 470 ns/iter (+/- 54) = 272 MB/s
test pbkdf2::hmac_sha256 ... bench: 42,100,941 ns/iter (+/- 8,456,599)
test pbkdf2::hmac_sha384 ... bench: 67,269,280 ns/iter (+/- 28,548,713)
test pbkdf2::hmac_sha512 ... bench: 91,416,839 ns/iter (+/- 16,560,689)
test pbkdf2::hmac_sha512_256 ... bench: 63,498,663 ns/iter (+/- 17,615,139)
test signature::ed25519::generate_key_pair ... bench: 34,553 ns/iter (+/- 7,012)
test signature::ed25519::sign_empty ... bench: 31,930 ns/iter (+/- 5,131)
test result: ok. 0 passed; 0 failed; 0 ignored; 60 measured; 0 filtered out
Finished release [optimized + debuginfo] target(s) in 0.37 secs
Running target/release/deps/crypto_bench_rust_crypto-fd0680115badf6cf
running 53 tests
test aead::seal_in_place::aes_128_gcm::tls12_1350 ... bench: 20,649 ns/iter (+/- 695) = 65 MB/s
test aead::seal_in_place::aes_128_gcm::tls12_16 ... bench: 2,741 ns/iter (+/- 176) = 5 MB/s
test aead::seal_in_place::aes_128_gcm::tls12_8192 ... bench: 100,346 ns/iter (+/- 8,973) = 81 MB/s
test aead::seal_in_place::aes_128_gcm::tls12_finished ... bench: 2,700 ns/iter (+/- 639) = 4 MB/s
test aead::seal_in_place::aes_128_gcm::tls13_1350 ... bench: 19,878 ns/iter (+/- 6,211) = 67 MB/s
test aead::seal_in_place::aes_128_gcm::tls13_8192 ... bench: 100,045 ns/iter (+/- 8,825) = 81 MB/s
test aead::seal_in_place::aes_128_gcm::tls13_finished ... bench: 2,890 ns/iter (+/- 341) = 11 MB/s
test aead::seal_in_place::aes_256_gcm::tls12_1350 ... bench: 19,247 ns/iter (+/- 2,377) = 70 MB/s
test aead::seal_in_place::aes_256_gcm::tls12_16 ... bench: 2,689 ns/iter (+/- 180) = 5 MB/s
test aead::seal_in_place::aes_256_gcm::tls12_8192 ... bench: 105,833 ns/iter (+/- 10,513) = 77 MB/s
test aead::seal_in_place::aes_256_gcm::tls12_finished ... bench: 2,733 ns/iter (+/- 153) = 4 MB/s
test aead::seal_in_place::aes_256_gcm::tls13_1350 ... bench: 19,145 ns/iter (+/- 1,852) = 70 MB/s
test aead::seal_in_place::aes_256_gcm::tls13_8192 ... bench: 101,676 ns/iter (+/- 13,915) = 80 MB/s
test aead::seal_in_place::aes_256_gcm::tls13_finished ... bench: 2,836 ns/iter (+/- 352) = 11 MB/s
test aead::seal_in_place::chacha20_poly1305_old::tls12_1350 ... bench: 5,558 ns/iter (+/- 238) = 242 MB/s
test aead::seal_in_place::chacha20_poly1305_old::tls12_16 ... bench: 419 ns/iter (+/- 42) = 38 MB/s
test aead::seal_in_place::chacha20_poly1305_old::tls12_8192 ... bench: 31,515 ns/iter (+/- 1,864) = 259 MB/s
test aead::seal_in_place::chacha20_poly1305_old::tls12_finished ... bench: 425 ns/iter (+/- 28) = 28 MB/s
test aead::seal_in_place::chacha20_poly1305_old::tls13_1350 ... bench: 5,897 ns/iter (+/- 218) = 228 MB/s
test aead::seal_in_place::chacha20_poly1305_old::tls13_8192 ... bench: 31,145 ns/iter (+/- 3,044) = 263 MB/s
test aead::seal_in_place::chacha20_poly1305_old::tls13_finished ... bench: 447 ns/iter (+/- 36) = 71 MB/s
test agreement::x25519::generate_key_pair ... bench: 117,363 ns/iter (+/- 27,003)
test agreement::x25519::generate_key_pair_and_agree_ephemeral ... bench: 219,423 ns/iter (+/- 31,535)
test agreement::x25519::generate_private_key ... bench: 358 ns/iter (+/- 40)
test digest::sha1::_1000 ... bench: 1,807 ns/iter (+/- 218) = 553 MB/s
test digest::sha1::_16 ... bench: 130 ns/iter (+/- 32) = 123 MB/s
test digest::sha1::_2000 ... bench: 3,532 ns/iter (+/- 892) = 566 MB/s
test digest::sha1::_256 ... bench: 558 ns/iter (+/- 29) = 458 MB/s
test digest::sha1::_8192 ... bench: 14,323 ns/iter (+/- 1,030) = 571 MB/s
test digest::sha1::block_len ... bench: 243 ns/iter (+/- 29) = 263 MB/s
test digest::sha256::_1000 ... bench: 4,308 ns/iter (+/- 350) = 232 MB/s
test digest::sha256::_16 ... bench: 288 ns/iter (+/- 58) = 55 MB/s
test digest::sha256::_2000 ... bench: 8,481 ns/iter (+/- 949) = 235 MB/s
test digest::sha256::_256 ... bench: 1,368 ns/iter (+/- 278) = 187 MB/s
test digest::sha256::_8192 ... bench: 34,370 ns/iter (+/- 5,326) = 238 MB/s
test digest::sha256::block_len ... bench: 560 ns/iter (+/- 39) = 114 MB/s
test digest::sha384::_1000 ... bench: 2,680 ns/iter (+/- 238) = 373 MB/s
test digest::sha384::_16 ... bench: 353 ns/iter (+/- 29) = 45 MB/s
test digest::sha384::_2000 ... bench: 5,292 ns/iter (+/- 519) = 377 MB/s
test digest::sha384::_256 ... bench: 1,043 ns/iter (+/- 97) = 245 MB/s
test digest::sha384::_8192 ... bench: 21,966 ns/iter (+/- 3,690) = 372 MB/s
test digest::sha384::block_len ... bench: 684 ns/iter (+/- 74) = 187 MB/s
test digest::sha512::_1000 ... bench: 2,772 ns/iter (+/- 197) = 360 MB/s
test digest::sha512::_16 ... bench: 375 ns/iter (+/- 43) = 42 MB/s
test digest::sha512::_2000 ... bench: 5,458 ns/iter (+/- 539) = 366 MB/s
test digest::sha512::_256 ... bench: 1,012 ns/iter (+/- 149) = 252 MB/s
test digest::sha512::_8192 ... bench: 21,070 ns/iter (+/- 1,284) = 388 MB/s
test digest::sha512::block_len ... bench: 703 ns/iter (+/- 152) = 182 MB/s
test pbkdf2::hmac_sha1 ... bench: 50,000,482 ns/iter (+/- 9,819,069)
test pbkdf2::hmac_sha256 ... bench: 119,026,748 ns/iter (+/- 33,473,318)
test pbkdf2::hmac_sha512 ... bench: 159,859,927 ns/iter (+/- 31,564,042)
test signature::ed25519::generate_key_pair ... bench: 45,738 ns/iter (+/- 18,157)
test signature::ed25519::sign_empty ... bench: 49,439 ns/iter (+/- 21,297)
test result: ok. 0 passed; 0 failed; 0 ignored; 53 measured; 0 filtered out
Finished release [optimized + debuginfo] target(s) in 6.2 secs
Running target/release/deps/crypto_bench_sodiumoxide-c3766008b3bb0131
running 15 tests
test aead::xsalsa20poly1305_1350 ... bench: 4,120 ns/iter (+/- 524) = 327 MB/s
test aead::xsalsa20poly1305_16 ... bench: 455 ns/iter (+/- 59) = 35 MB/s
test aead::xsalsa20poly1305_8192 ... bench: 21,516 ns/iter (+/- 3,195) = 380 MB/s
test digest::sha256::_1000 ... bench: 5,901 ns/iter (+/- 1,021) = 169 MB/s
test digest::sha256::_16 ... bench: 476 ns/iter (+/- 153) = 33 MB/s
test digest::sha256::_2000 ... bench: 11,773 ns/iter (+/- 2,954) = 169 MB/s
test digest::sha256::_256 ... bench: 1,885 ns/iter (+/- 419) = 135 MB/s
test digest::sha256::_8192 ... bench: 51,165 ns/iter (+/- 11,620) = 160 MB/s
test digest::sha256::block_len ... bench: 836 ns/iter (+/- 185) = 76 MB/s
test digest::sha512::_1000 ... bench: 4,697 ns/iter (+/- 347) = 212 MB/s
test digest::sha512::_16 ... bench: 789 ns/iter (+/- 278) = 20 MB/s
test digest::sha512::_2000 ... bench: 10,329 ns/iter (+/- 1,807) = 193 MB/s
test digest::sha512::_256 ... bench: 2,152 ns/iter (+/- 349) = 118 MB/s
test digest::sha512::_8192 ... bench: 37,219 ns/iter (+/- 14,387) = 220 MB/s
test digest::sha512::block_len ... bench: 1,540 ns/iter (+/- 200) = 83 MB/s
test result: ok. 0 passed; 0 failed; 0 ignored; 15 measured; 0 filtered out
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment