/kem-combiners

A quick experiment with KEM combiners

Primary LanguageRust

KEM Combiners

A lot of the options CFRG is considering seem similar. This repo is to get a feel for how big the differences are for some of the known contenders, and a few of my own devising.

Benchmarks on my MacBook Pro (2021, M1 Pro)

T KEM PQ KEM Scheme Raw Encap Decap
X25519 ML-KEM Kitchen Sink 2.8182 µs 77.633 µs 72.793 µs
X25519 ML-KEM Chempat 3.0516 µs 78.641 µs 72.904 µs
X25519 ML-KEM DHKEM 2.9857 µs 77.751 µs 72.812 µs
X25519 ML-KEM DHKEM (half) 336.13 ns 75.058 µs 70.354 µs
X25519 ML-KEM X-Wing 172.19 ns 74.955 µs 70.027 µs
X25519 ML-KEM DualPRF 1.5894 µs 76.376 µs 71.608 µs
X25519 ML-KEM Concat 172.76 ns 74.877 µs 70.068 µs
X25519 ML-KEM Kitchen Sink (pre) 1.5601 µs 76.265 µs 71.483 µs
X25519 ML-KEM Chempat (pre) 1.5756 µs 76.324 µs 71.650 µs
X25519 ML-KEM DHKEM (pre) 1.7475 µs 76.463 µs 71.604 µs
-------- ------------------- -------------------- ----------- ----------- -----------
P-256 ML-KEM Kitchen Sink 2.9805 µs 262.06 µs 153.71 µs
P-256 ML-KEM Chempat 3.1573 µs 261.78 µs 154.17 µs
P-256 ML-KEM DHKEM 3.1476 µs 261.84 µs 154.28 µs
P-256 ML-KEM DHKEM (half) 491.38 ns 259.25 µs 151.70 µs
P-256 ML-KEM X-Wing 371.29 ns 259.26 µs 151.23 µs
P-256 ML-KEM DualPRF 1.5853 µs 260.14 µs 152.62 µs
P-256 ML-KEM Concat 173.21 ns 258.84 µs 151.19 µs
P-256 ML-KEM Kitchen Sink (pre) 1.6119 µs 262.97 µs 152.47 µs
P-256 ML-KEM Chempat (pre) 1.5780 µs 260.48 µs 152.74 µs
P-256 ML-KEM DHKEM (pre) 1.9006 µs 261.68 µs 156.86 µs
-------- ------------------- -------------------- ----------- ----------- -----------
X25519 Classic McEliece Kitchen Sink 1.2229 ms 1.3500 ms 64.782 ms
X25519 Classic McEliece Chempat 1.2235 ms 1.3487 ms 64.697 ms
X25519 Classic McEliece DHKEM 1.2211 ms 1.3471 ms 64.690 ms
X25519 Classic McEliece DHKEM (half) 341.55 ns 128.88 µs 63.430 ms
X25519 Classic McEliece X-Wing 176.39 ns 128.67 µs 63.428 ms
X25519 Classic McEliece DualPRF 509.08 ns 128.95 µs 63.485 ms
X25519 Classic McEliece Concat 177.80 ns 128.72 µs 63.469 ms
X25519 Classic McEliece Kitchen Sink (pre) 494.49 ns 129.17 µs 63.448 ms
X25519 Classic McEliece Chempat (pre) 503.66 ns 129.08 µs 63.497 ms
X25519 Classic McEliece DHKEM (pre) 847.85 ns 129.47 µs 63.378 ms
-------- ------------------- -------------------- ----------- ----------- -----------
X25519 FrodoKEM Kitchen Sink 36.915 µs 3.7185 ms 3.2446 ms
X25519 FrodoKEM Chempat 37.300 µs 3.7193 ms 3.2595 ms
X25519 FrodoKEM DHKEM 37.216 µs 3.7145 ms 3.2536 ms
X25519 FrodoKEM DHKEM (half) 344.65 ns 3.6970 ms 3.2357 ms
X25519 FrodoKEM X-Wing 177.03 ns 3.6933 ms 3.2090 ms
X25519 FrodoKEM DualPRF 18.884 µs 3.7050 ms 3.2344 ms
X25519 FrodoKEM Concat 177.98 ns 3.6800 ms 3.2095 ms
X25519 FrodoKEM Kitchen Sink (pre) 18.702 µs 3.7151 ms 3.2520 ms
X25519 FrodoKEM Chempat (pre) 18.813 µs 3.7045 ms 3.2163 ms
X25519 FrodoKEM DHKEM (pre) 18.940 µs 3.6837 ms 3.1963 ms