LMS versus XMSS versus SLH-DSA Performance Data

In a previous post, we spoke about LMS, XMSS and SLH-DSA in relation to wolfBoot and let you know we’d be bringing some benchmarking numbers. Voila!

Algorithm / Parameter Set Sig Size/Strength Verification Time (ms) Operations Per Second
LMS/HSS L2_H10_W2 9300 0.118 8500.588
LMS/HSS L2_H10_W4 5076 0.219 4557.764
LMS/HSS L3_H5_W4 7160 0.324 3088.329
LMS/HSS L3_H5_W8 3992 2.638 379.092
LMS/HSS L3_H10_W4 7640 0.312 3204.799
LMS/HSS L4_H5_W8 5340 3.469 288.251
XMSS-SHA2_10_256 2500 0.546 1829.883
XMSS-SHA2_10_192 1492 0.533 1875.973
XMSSMT-SHA2_20/2_256 4963 0.954 1047.815
XMSSMT-SHA2_20/4_256 9251 1.917 521.76
XMSSMT-SHA2_40/4_256 9893 1.896 527.548
XMSSMT-SHA2_40/8_256 18469 3.855 259.416
XMSSMT-SHA2_60/6_256 14824 2.917 342.852
XMSSMT-SHA2_60/12_256 27688 5.545 180.349
XMSSMT-SHA2_20/2_192 2955 1.063 941.004
XMSSMT-SHA2_20/4_192 5403 2.058 485.909
XMSSMT-SHA2_40/4_192 5885 2.174 459.919
XMSSMT-SHA2_40/8_192 10781 4.149 241.012
XMSSMT-SHA2_60/6_192 8816 3.155 316.973
XMSSMT-SHA2_60/12_192 16160 6.395 156.381
SLH-DSA-S 128 2.457 407.034
SLH-DSA-F 128 7.771 128.683
SLH-DSA-S 192 3.877 257.908
SLH-DSA-F 192 11.352 88.089
SLH-DSA-S 256 5.604 178.431
SLH-DSA-F 256 11.362 88.015
ECDSA SECP256R1 256 2.092 477.91

Note that these are only measurements for the verification operation. Key generation and signing are notably slower and generally only done as off-line operations for hash-based signature schemes. For LMS and XMSS the second column is the signature size. For SLH-DSA and ECDSA it is bit strength. Here it is as a pretty graph.

Let’s make some interesting observation about these benchmark numbers:

  • ECSDA doesn’t belong in a chart of post-quantum algorithms; it’s just there for comparison purposes.
  • LMS, depending on its parameter sets, has the best performance far and away beating even ECDSA.
  • XMSS has the greatest variation in performance which has a relationship to the signature size and number of available signatures per key pair.
  • For SLH-DSA there are F and S variants. F stands for fast while S stands for small, but the numbers tell a different story as the S variants take less time! The reason? Fast refers to signing time.

Key take aways:

  • If you pick the right parameter set, your performance will be on par or beat ECDSA.
  • Our advice to just use LMS when you’re not sure is supported by these numbers.
  • If you use SLH-DSA and you care about verification time, don’t use the Fast variant.

If you have questions about any of the above, please contact us at facts@wolfssl.com or call us at +1 425 245 8247.

Download wolfSSL Now