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.
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 |