# Speed Evaluation
## Key Encapsulation Schemes
| scheme | implementation | key generation [cycles] | encapsulation [cycles] | decapsulation [cycles] |
| ------ | -------------- | ----------------------- | ---------------------- | ---------------------- |
| bikel1 (100 executions) | m4f | AVG: 24,974,536
MIN: 24,950,520
MAX: 24,991,477 | AVG: 3,394,030
MIN: 3,378,190
MAX: 3,414,910 | AVG: 51,214,664
MIN: 51,198,795
MAX: 51,235,513 |
| bikel1 (100 executions) | opt | AVG: 68,198,074
MIN: 68,181,729
MAX: 68,218,850 | AVG: 5,085,537
MIN: 5,068,825
MAX: 5,101,896 | AVG: 121,429,912
MIN: 121,416,187
MAX: 121,446,269 |
| hqc-rmrs-128 (100 executions) | clean | AVG: 2,883,811
MIN: 2,850,356
MAX: 3,090,278 | AVG: 5,236,720
MIN: 5,150,902
MAX: 5,554,288 | AVG: 7,594,631
MIN: 7,482,072
MAX: 7,890,446 |
| kyber1024 (100 executions) | clean | AVG: 1,649,604
MIN: 1,646,417
MAX: 1,686,328 | AVG: 2,016,366
MIN: 2,013,177
MAX: 2,053,070 | AVG: 2,159,906
MIN: 2,156,716
MAX: 2,196,609 |
| kyber1024 (100 executions) | m4fspeed | AVG: 1,122,936
MIN: 1,120,610
MAX: 1,147,966 | AVG: 1,315,737
MIN: 1,313,449
MAX: 1,340,766 | AVG: 1,209,901
MIN: 1,207,648
MAX: 1,234,899 |
| kyber1024 (100 executions) | m4fstack | AVG: 1,126,561
MIN: 1,124,115
MAX: 1,138,795 | AVG: 1,323,943
MIN: 1,321,497
MAX: 1,336,212 | AVG: 1,219,060
MIN: 1,216,614
MAX: 1,231,295 |
| kyber1024-90s (100 executions) | clean | AVG: 3,008,837
MIN: 3,007,295
MAX: 3,024,024 | AVG: 3,275,730
MIN: 3,274,235
MAX: 3,290,907 | AVG: 3,516,691
MIN: 3,515,163
MAX: 3,531,901 |
| kyber1024-90s (100 executions) | m4fspeed | AVG: 973,196
MIN: 961,657
MAX: 978,853 | AVG: 1,068,184
MIN: 1,056,648
MAX: 1,073,886 | AVG: 1,059,775
MIN: 1,048,239
MAX: 1,065,477 |
| kyber1024-90s (100 executions) | m4fstack | AVG: 979,692
MIN: 972,492
MAX: 985,031 | AVG: 1,079,272
MIN: 1,072,072
MAX: 1,084,611 | AVG: 1,071,817
MIN: 1,064,616
MAX: 1,077,155 |
| kyber512 (100 executions) | clean | AVG: 636,181
MIN: 635,670
MAX: 648,917 | AVG: 843,945
MIN: 843,433
MAX: 856,680 | AVG: 940,320
MIN: 939,808
MAX: 953,055 |
| kyber512 (100 executions) | m4fspeed | AVG: 434,438
MIN: 433,217
MAX: 446,786 | AVG: 530,469
MIN: 529,247
MAX: 542,816 | AVG: 476,712
MIN: 475,491
MAX: 489,060 |
| kyber512 (100 executions) | m4fstack | AVG: 433,718
MIN: 433,191
MAX: 446,122 | AVG: 531,676
MIN: 531,150
MAX: 544,080 | AVG: 478,166
MIN: 477,640
MAX: 490,570 |
| kyber512-90s (100 executions) | clean | AVG: 948,446
MIN: 947,802
MAX: 964,084 | AVG: 1,112,852
MIN: 1,112,208
MAX: 1,128,491 | AVG: 1,261,630
MIN: 1,260,986
MAX: 1,277,269 |
| kyber512-90s (100 executions) | m4fspeed | AVG: 369,011
MIN: 364,769
MAX: 373,816 | AVG: 421,685
MIN: 417,443
MAX: 426,490 | AVG: 420,333
MIN: 416,092
MAX: 425,139 |
| kyber512-90s (100 executions) | m4fstack | AVG: 369,736
MIN: 361,461
MAX: 370,708 | AVG: 424,339
MIN: 416,065
MAX: 425,312 | AVG: 423,234
MIN: 414,960
MAX: 424,207 |
| kyber768 (100 executions) | clean | AVG: 1,059,876
MIN: 1,057,827
MAX: 1,071,809 | AVG: 1,352,934
MIN: 1,350,884
MAX: 1,364,866 | AVG: 1,471,055
MIN: 1,469,005
MAX: 1,482,987 |
| kyber768 (100 executions) | m4fspeed | AVG: 706,531
MIN: 703,969
MAX: 718,271 | AVG: 863,343
MIN: 860,765
MAX: 875,091 | AVG: 783,369
MIN: 780,788
MAX: 795,114 |
| kyber768 (100 executions) | m4fstack | AVG: 707,275
MIN: 705,435
MAX: 719,983 | AVG: 867,363
MIN: 865,520
MAX: 880,070 | AVG: 788,053
MIN: 786,210
MAX: 800,760 |
| kyber768-90s (100 executions) | clean | AVG: 1,816,649
MIN: 1,815,810
MAX: 1,831,510 | AVG: 2,032,562
MIN: 2,031,722
MAX: 2,047,390 | AVG: 2,225,597
MIN: 2,224,757
MAX: 2,240,425 |
| kyber768-90s (100 executions) | m4fspeed | AVG: 614,455
MIN: 610,716
MAX: 619,096 | AVG: 694,064
MIN: 690,330
MAX: 698,723 | AVG: 688,999
MIN: 685,265
MAX: 693,658 |
| kyber768-90s (100 executions) | m4fstack | AVG: 617,709
MIN: 613,688
MAX: 622,666 | AVG: 700,599
MIN: 696,577
MAX: 705,555 | AVG: 696,202
MIN: 692,181
MAX: 701,159 |
## Signature Schemes
| scheme | implementation | key generation [cycles] | sign [cycles] | verify [cycles] |
| ------ | -------------- | ----------------------- | ------------- | --------------- |
| dilithium2 (10000 executions) | clean | AVG: 1,944,539
MIN: 1,890,031
MAX: 1,991,828 | AVG: 7,144,383
MIN: 3,140,649
MAX: 63,849,339 | AVG: 2,064,129
MIN: 2,063,522
MAX: 2,064,634 |
| dilithium2 (10000 executions) | m4f | AVG: 1,597,999
MIN: 1,543,482
MAX: 1,644,972 | AVG: 4,111,596
MIN: 1,975,193
MAX: 28,355,968 | AVG: 1,571,804
MIN: 1,571,197
MAX: 1,572,305 |
| dilithium2aes (10000 executions) | clean | AVG: 4,995,899
MIN: 4,936,813
MAX: 5,118,217 | AVG: 11,648,989
MIN: 6,130,462
MAX: 61,958,375 | AVG: 4,669,616
MIN: 4,610,387
MAX: 4,791,733 |
| dilithium3 (10000 executions) | clean | AVG: 3,365,142
MIN: 3,363,198
MAX: 3,378,304 | AVG: 11,634,591
MIN: 4,892,049
MAX: 79,793,644 | AVG: 3,430,286
MIN: 3,429,812
MAX: 3,430,778 |
| dilithium3 (10000 executions) | m4f | AVG: 2,830,024
MIN: 2,828,027
MAX: 2,832,150 | AVG: 6,588,465
MIN: 3,224,221
MAX: 46,880,624 | AVG: 2,691,283
MIN: 2,690,800
MAX: 2,691,739 |
| dilithium3aes (10000 executions) | clean | AVG: 8,980,662
MIN: 8,870,698
MAX: 9,135,481 | AVG: 19,843,507
MIN: 10,319,280
MAX: 112,310,317 | AVG: 8,314,038
MIN: 8,205,198
MAX: 8,468,692 |
| dilithium5 (10000 executions) | m4f | AVG: 4,826,422
MIN: 4,737,706
MAX: 4,914,744 | AVG: 8,779,067
MIN: 5,416,181
MAX: 52,012,847 | AVG: 4,705,693
MIN: 4,705,090
MAX: 4,706,259 |
| falcon-1024 (100 executions) | clean | AVG: 589,059,133
MIN: 334,912,351
MAX: 1,243,184,474 | AVG: 133,598,726
MIN: 133,189,548
MAX: 133,921,649 | AVG: 1,547,336
MIN: 1,546,772
MAX: 1,548,051 |
| falcon-1024 (100 executions) | m4-ct | AVG: 480,071,949
MIN: 271,647,441
MAX: 1,227,690,897 | AVG: 85,125,001
MIN: 84,882,111
MAX: 85,556,430 | AVG: 994,972
MIN: 983,996
MAX: 1,002,867 |
| falcon-1024 (100 executions) | opt-ct | AVG: 437,448,136
MIN: 271,659,962
MAX: 1,092,676,507 | AVG: 85,113,093
MIN: 84,848,956
MAX: 85,473,992 | AVG: 994,270
MIN: 984,187
MAX: 1,002,619 |
| falcon-1024 (100 executions) | opt-leaktime | AVG: 413,908,640
MIN: 243,261,195
MAX: 1,126,577,305 | AVG: 76,314,462
MIN: 75,745,413
MAX: 76,892,801 | AVG: 994,634
MIN: 982,708
MAX: 1,002,471 |
| falcon-512 (100 executions) | clean | AVG: 217,740,948
MIN: 129,494,100
MAX: 511,780,471 | AVG: 61,102,456
MIN: 60,847,251
MAX: 61,330,321 | AVG: 774,876
MIN: 774,536
MAX: 775,376 |
| falcon-512 (100 executions) | m4-ct | AVG: 155,757,768
MIN: 101,804,738
MAX: 436,771,421 | AVG: 38,979,435
MIN: 38,774,219
MAX: 39,146,132 | AVG: 481,452
MIN: 472,089
MAX: 488,157 |
| falcon-512 (100 executions) | opt-ct | AVG: 169,979,748
MIN: 101,804,734
MAX: 511,094,390 | AVG: 38,995,196
MIN: 38,771,533
MAX: 39,280,349 | AVG: 481,457
MIN: 472,109
MAX: 488,208 |
| falcon-512 (100 executions) | opt-leaktime | AVG: 154,344,796
MIN: 89,719,505
MAX: 442,643,356 | AVG: 35,503,133
MIN: 35,166,340
MAX: 35,923,860 | AVG: 480,806
MIN: 472,450
MAX: 489,614 |
| falcon-512-tree (100 executions) | m4-ct | AVG: 179,772,454
MIN: 116,934,668
MAX: 497,881,688 | AVG: 17,649,735
MIN: 17,489,319
MAX: 17,847,797 | AVG: 480,619
MIN: 471,367
MAX: 488,548 |
| falcon-512-tree (100 executions) | opt-ct | AVG: 185,495,778
MIN: 116,934,665
MAX: 591,766,146 | AVG: 17,664,284
MIN: 17,480,589
MAX: 17,824,518 | AVG: 482,085
MIN: 472,168
MAX: 488,509 |
| falcon-512-tree (100 executions) | opt-leaktime | AVG: 157,683,545
MIN: 101,416,387
MAX: 370,593,247 | AVG: 19,162,650
MIN: 18,816,478
MAX: 19,426,978 | AVG: 481,577
MIN: 472,170
MAX: 488,230 |
| sphincs-haraka-128f-robust (3 executions) | clean | AVG: 106,427,973
MIN: 106,427,961
MAX: 106,427,997 | AVG: 2,699,060,638
MIN: 2,698,241,211
MAX: 2,699,997,157 | AVG: 174,647,895
MIN: 173,477,158
MAX: 176,638,141 |
| sphincs-haraka-128f-simple (3 executions) | clean | AVG: 74,934,480
MIN: 74,934,458
MAX: 74,934,492 | AVG: 1,887,299,882
MIN: 1,887,134,522
MAX: 1,887,382,565 | AVG: 118,143,703
MIN: 113,925,327
MAX: 123,851,044 |
| sphincs-haraka-128s-robust (3 executions) | clean | AVG: 6,775,943,571
MIN: 6,775,943,546
MAX: 6,775,943,591 | AVG: 53,822,326,627
MIN: 53,821,272,834
MAX: 53,824,434,213 | AVG: 68,158,360
MIN: 65,114,417
MAX: 72,841,330 |
| sphincs-haraka-128s-simple (3 executions) | clean | AVG: 4,758,339,537
MIN: 4,758,339,511
MAX: 4,758,339,556 | AVG: 37,472,069,032
MIN: 37,470,580,002
MAX: 37,474,550,750 | AVG: 44,603,270
MIN: 44,272,388
MAX: 44,768,737 |
| sphincs-haraka-192f-robust (3 executions) | clean | AVG: 157,886,973
MIN: 157,886,961
MAX: 157,886,995 | AVG: 4,729,109,673
MIN: 4,724,305,900
MAX: 4,731,687,311 | AVG: 261,039,514
MIN: 258,813,178
MAX: 263,734,554 |
| sphincs-haraka-192f-simple (3 executions) | clean | AVG: 110,403,519
MIN: 110,403,498
MAX: 110,403,532 | AVG: 3,167,446,164
MIN: 3,164,466,253
MAX: 3,169,681,094 | AVG: 171,820,185
MIN: 169,915,924
MAX: 174,138,430 |
| sphincs-haraka-192s-robust (3 executions) | clean | AVG: 10,070,301,104
MIN: 10,070,301,092
MAX: 10,070,301,120 | AVG: 105,836,052,151
MIN: 105,833,943,123
MAX: 105,838,864,162 | AVG: 102,385,564
MIN: 100,510,789
MAX: 104,729,057 |
| sphincs-haraka-192s-simple (3 executions) | clean | AVG: 7,028,359,469
MIN: 7,028,359,462
MAX: 7,028,359,475 | AVG: 69,349,184,156
MIN: 69,348,190,870
MAX: 69,350,922,453 | AVG: 64,929,339
MIN: 63,356,226
MAX: 65,840,010 |
| sphincs-haraka-256f-robust (3 executions) | clean | AVG: 422,110,917
MIN: 422,110,915
MAX: 422,110,921 | AVG: 9,925,037,310
MIN: 9,919,761,990
MAX: 9,929,258,109 | AVG: 282,995,607
MIN: 280,533,063
MAX: 286,865,365 |
| sphincs-haraka-256f-simple (3 executions) | clean | AVG: 293,499,115
MIN: 293,499,091
MAX: 293,499,129 | AVG: 6,701,863,848
MIN: 6,699,462,526
MAX: 6,705,176,025 | AVG: 183,796,029
MIN: 182,221,816
MAX: 186,447,361 |
| sphincs-haraka-256s-robust (3 executions) | clean | AVG: 6,739,159,318
MIN: 6,739,159,309
MAX: 6,739,159,328 | AVG: 105,302,624,797
MIN: 105,300,748,903
MAX: 105,304,266,285 | AVG: 156,467,817
MIN: 154,826,875
MAX: 159,398,072 |
| sphincs-haraka-256s-simple (3 executions) | clean | AVG: 4,683,144,675
MIN: 4,683,144,642
MAX: 4,683,144,705 | AVG: 69,202,732,323
MIN: 69,201,324,370
MAX: 69,205,052,507 | AVG: 101,719,411
MIN: 100,063,540
MAX: 104,037,675 |
| sphincs-sha256-128f-robust (3 executions) | clean | AVG: 29,123,270
MIN: 29,123,249
MAX: 29,123,282 | AVG: 716,257,523
MIN: 715,884,705
MAX: 716,674,437 | AVG: 42,248,922
MIN: 41,497,196
MAX: 42,869,922 |
| sphincs-sha256-128f-simple (3 executions) | clean | AVG: 15,388,375
MIN: 15,388,352
MAX: 15,388,387 | AVG: 382,533,954
MIN: 382,308,022
MAX: 382,976,925 | AVG: 21,150,671
MIN: 20,677,650
MAX: 21,741,991 |
| sphincs-sha256-128s-robust (3 executions) | clean | AVG: 1,864,047,221
MIN: 1,864,042,048
MAX: 1,864,050,532 | AVG: 14,012,634,889
MIN: 14,012,400,685
MAX: 14,012,822,953 | AVG: 14,847,302
MIN: 14,422,375
MAX: 15,206,848 |
| sphincs-sha256-128s-simple (3 executions) | clean | AVG: 985,367,046
MIN: 985,355,790
MAX: 985,385,031 | AVG: 7,495,603,716
MIN: 7,495,252,193
MAX: 7,496,247,958 | AVG: 7,165,875
MIN: 6,861,584
MAX: 7,419,441 |
| sphincs-sha256-192f-robust (3 executions) | clean | AVG: 43,116,184
MIN: 43,116,173
MAX: 43,116,205 | AVG: 1,195,381,634
MIN: 1,193,980,671
MAX: 1,196,819,904 | AVG: 64,857,703
MIN: 64,364,605
MAX: 65,153,579 |
| sphincs-sha256-192f-simple (3 executions) | clean | AVG: 22,645,923
MIN: 22,645,911
MAX: 22,645,947 | AVG: 639,321,913
MIN: 639,157,877
MAX: 639,638,579 | AVG: 32,940,330
MIN: 31,955,780
MAX: 33,534,443 |
| sphincs-sha256-192s-robust (3 executions) | clean | AVG: 2,758,781,668
MIN: 2,758,721,187
MAX: 2,758,814,880 | AVG: 25,556,205,325
MIN: 25,555,467,827
MAX: 25,556,897,376 | AVG: 23,195,383
MIN: 22,702,335
MAX: 23,589,803 |
| sphincs-sha256-192s-simple (3 executions) | clean | AVG: 1,450,073,477
MIN: 1,449,766,386
MAX: 1,450,529,270 | AVG: 13,764,196,955
MIN: 13,762,891,584
MAX: 13,765,362,825 | AVG: 11,763,703
MIN: 11,695,761
MAX: 11,899,525 |
| sphincs-sha256-256f-robust (3 executions) | clean | AVG: 158,034,870
MIN: 158,034,868
MAX: 158,034,873 | AVG: 3,305,447,599
MIN: 3,303,450,474
MAX: 3,306,582,779 | AVG: 94,366,505
MIN: 92,087,788
MAX: 96,189,482 |
| sphincs-sha256-256f-simple (3 executions) | clean | AVG: 59,808,433
MIN: 59,807,808
MAX: 59,808,748 | AVG: 1,281,329,322
MIN: 1,280,242,352
MAX: 1,282,332,972 | AVG: 32,947,097
MIN: 32,522,594
MAX: 33,490,507 |
| sphincs-sha256-256s-robust (3 executions) | clean | AVG: 2,524,393,357
MIN: 2,524,337,328
MAX: 2,524,432,487 | AVG: 31,056,826,302
MIN: 31,055,874,069
MAX: 31,057,485,164 | AVG: 47,434,569
MIN: 46,022,129
MAX: 48,212,821 |
| sphincs-sha256-256s-simple (3 executions) | clean | AVG: 952,799,879
MIN: 952,642,357
MAX: 953,062,293 | AVG: 12,304,132,668
MIN: 12,303,657,740
MAX: 12,304,436,252 | AVG: 16,715,346
MIN: 16,326,849
MAX: 17,137,621 |
| sphincs-shake256-128f-robust (3 executions) | clean | AVG: 113,347,070
MIN: 113,347,058
MAX: 113,347,093 | AVG: 2,788,974,930
MIN: 2,787,812,662
MAX: 2,790,137,173 | AVG: 158,730,948
MIN: 156,406,568
MAX: 160,667,913 |
| sphincs-shake256-128f-simple (3 executions) | clean | AVG: 59,759,081
MIN: 59,759,080
MAX: 59,759,082 | AVG: 1,483,676,214
MIN: 1,483,213,924
MAX: 1,484,204,563 | AVG: 83,065,165
MIN: 81,414,021
MAX: 84,584,221 |
| sphincs-shake256-128s-robust (3 executions) | clean | AVG: 7,255,773,038
MIN: 7,255,773,014
MAX: 7,255,773,057 | AVG: 54,573,950,176
MIN: 54,572,529,688
MAX: 54,575,241,560 | AVG: 53,615,181
MIN: 51,549,111
MAX: 55,423,008 |
| sphincs-shake256-128s-simple (3 executions) | clean | AVG: 3,825,341,548
MIN: 3,825,341,531
MAX: 3,825,341,564 | AVG: 29,086,410,120
MIN: 29,085,749,525
MAX: 29,087,533,088 | AVG: 29,495,105
MIN: 28,966,755
MAX: 30,155,531 |
| sphincs-shake256-192f-robust (3 executions) | clean | AVG: 167,154,323
MIN: 167,154,303
MAX: 167,154,334 | AVG: 4,461,897,673
MIN: 4,458,767,619
MAX: 4,464,636,487 | AVG: 240,590,626
MIN: 238,634,394
MAX: 243,329,332 |
| sphincs-shake256-192f-simple (3 executions) | clean | AVG: 88,333,405
MIN: 88,333,405
MAX: 88,333,406 | AVG: 2,409,188,992
MIN: 2,408,787,940
MAX: 2,409,991,046 | AVG: 123,334,622
MIN: 122,866,683
MAX: 123,668,857 |
| sphincs-shake256-192s-robust (3 executions) | clean | AVG: 10,698,254,977
MIN: 10,698,254,964
MAX: 10,698,254,997 | AVG: 93,298,513,700
MIN: 93,295,644,767
MAX: 93,301,121,760 | AVG: 81,201,582
MIN: 77,549,977
MAX: 83,809,891 |
| sphincs-shake256-192s-simple (3 executions) | clean | AVG: 5,652,907,918
MIN: 5,652,907,897
MAX: 5,652,907,934 | AVG: 50,824,666,973
MIN: 50,823,330,463
MAX: 50,826,137,107 | AVG: 41,687,543
MIN: 40,818,602
MAX: 42,623,345 |
| sphincs-shake256-256f-robust (3 executions) | clean | AVG: 444,922,977
MIN: 444,922,967
MAX: 444,922,998 | AVG: 8,993,352,645
MIN: 8,987,821,428
MAX: 9,000,464,222 | AVG: 243,254,884
MIN: 240,752,880
MAX: 244,703,467 |
| sphincs-shake256-256f-simple (3 executions) | clean | AVG: 235,448,503
MIN: 235,448,502
MAX: 235,448,505 | AVG: 4,865,464,381
MIN: 4,864,247,499
MAX: 4,867,289,711 | AVG: 127,387,108
MIN: 125,561,248
MAX: 129,010,103 |
| sphincs-shake256-256s-robust (3 executions) | clean | AVG: 7,117,488,480
MIN: 7,117,488,473
MAX: 7,117,488,486 | AVG: 81,040,359,080
MIN: 81,037,593,485
MAX: 81,043,519,709 | AVG: 124,099,579
MIN: 123,967,874
MAX: 124,362,934 |
| sphincs-shake256-256s-simple (3 executions) | clean | AVG: 3,764,358,451
MIN: 3,764,358,431
MAX: 3,764,358,466 | AVG: 44,857,260,081
MIN: 44,856,516,353
MAX: 44,858,138,896 | AVG: 62,264,803
MIN: 61,656,689
MAX: 62,670,229 |
# Memory Evaluation
## Key Encapsulation Schemes
| Scheme | Implementation | Key Generation [bytes] | Encapsulation [bytes] | Decapsulation [bytes] |
| ------ | -------------- | ---------------------- | --------------------- | --------------------- |
| bikel1 | m4f | 44,084 | 32,132 | 91,384 |
| bikel1 | opt | 36,000 | 25,908 | 78,588 |
| hqc-rmrs-128 | clean | 48,852 | 64,436 | 71,172 |
| kyber1024 | clean | 15,100 | 18,772 | 20,348 |
| kyber1024 | m4fspeed | 6,400 | 7,496 | 7,512 |
| kyber1024 | m4fstack | 3,296 | 3,368 | 3,392 |
| kyber1024-90s | clean | 15,364 | 19,044 | 20,620 |
| kyber1024-90s | m4fspeed | 7,156 | 8,252 | 8,268 |
| kyber1024-90s | m4fstack | 4,060 | 4,132 | 4,156 |
| kyber512 | clean | 6,116 | 8,780 | 9,556 |
| kyber512 | m4fspeed | 4,320 | 5,424 | 5,432 |
| kyber512 | m4fstack | 2,248 | 2,336 | 2,352 |
| kyber512-90s | clean | 6,572 | 9,236 | 10,012 |
| kyber512-90s | m4fspeed | 5,076 | 6,180 | 6,188 |
| kyber512-90s | m4fstack | 3,012 | 3,100 | 3,116 |
| kyber768 | clean | 10,212 | 13,380 | 14,476 |
| kyber768 | m4fspeed | 5,344 | 6,456 | 6,472 |
| kyber768 | m4fstack | 2,784 | 2,856 | 2,872 |
| kyber768-90s | clean | 10,676 | 13,844 | 14,940 |
| kyber768-90s | m4fspeed | 6,108 | 7,220 | 7,236 |
| kyber768-90s | m4fstack | 3,540 | 3,612 | 3,628 |
## Signature Schemes
| Scheme | Implementation | Key Generation [bytes] | Sign [bytes] | Verify [bytes] |
| ------ | -------------- | ---------------------- | ------------ | -------------- |
| dilithium2 | clean | 38,308 | 51,932 | 36,220 |
| dilithium2 | m4f | 38,408 | 49,380 | 36,212 |
| dilithium2aes | clean | 39,776 | 53,400 | 37,688 |
| dilithium3 | clean | 60,844 | 79,588 | 57,732 |
| dilithium3 | m4f | 60,836 | 68,836 | 57,724 |
| dilithium3aes | clean | 62,312 | 81,056 | 59,200 |
| dilithium5 | m4f | 97,692 | 115,932 | 92,788 |
| falcon-1024 | clean | 36,296 | 82,532 | 8,820 |
| falcon-1024 | m4-ct | 1,400 | 2,644 | 412 |
| falcon-1024 | opt-ct | 1,384 | 2,644 | 520 |
| falcon-1024 | opt-leaktime | 1,368 | 2,716 | 412 |
| falcon-512 | clean | 18,416 | 42,508 | 4,724 |
| falcon-512 | m4-ct | 1,312 | 2,556 | 412 |
| falcon-512 | opt-ct | 1,344 | 2,556 | 412 |
| falcon-512 | opt-leaktime | 1,296 | 2,620 | 412 |
| falcon-512-tree | m4-ct | 1,408 | 2,796 | 412 |
| falcon-512-tree | opt-ct | 1,384 | 2,796 | 412 |
| falcon-512-tree | opt-leaktime | 1,344 | 2,804 | 412 |
| sphincs-haraka-128f-robust | clean | 3,636 | 3,728 | 4,188 |
| sphincs-haraka-128f-simple | clean | 3,628 | 3,720 | 4,180 |
| sphincs-haraka-128s-robust | clean | 3,960 | 3,920 | 3,492 |
| sphincs-haraka-128s-simple | clean | 3,872 | 3,912 | 3,484 |
| sphincs-haraka-192f-robust | clean | 5,044 | 5,192 | 5,412 |
| sphincs-haraka-192f-simple | clean | 5,064 | 5,184 | 5,404 |
| sphincs-haraka-192s-robust | clean | 5,392 | 5,352 | 4,748 |
| sphincs-haraka-192s-simple | clean | 5,456 | 5,344 | 4,740 |
| sphincs-haraka-256f-robust | clean | 7,044 | 7,120 | 7,020 |
| sphincs-haraka-256f-simple | clean | 7,036 | 7,032 | 7,012 |
| sphincs-haraka-256s-robust | clean | 7,424 | 7,264 | 6,640 |
| sphincs-haraka-256s-simple | clean | 7,416 | 7,256 | 6,632 |
| sphincs-sha256-128f-robust | clean | 2,276 | 2,340 | 2,828 |
| sphincs-sha256-128f-simple | clean | 2,124 | 2,188 | 2,676 |
| sphincs-sha256-128s-robust | clean | 2,492 | 2,560 | 2,132 |
| sphincs-sha256-128s-simple | clean | 2,340 | 2,408 | 1,980 |
| sphincs-sha256-192f-robust | clean | 3,692 | 3,840 | 4,060 |
| sphincs-sha256-192f-simple | clean | 3,532 | 3,680 | 3,900 |
| sphincs-sha256-192s-robust | clean | 4,004 | 4,000 | 3,396 |
| sphincs-sha256-192s-simple | clean | 3,952 | 3,840 | 3,236 |
| sphincs-sha256-256f-robust | clean | 5,700 | 5,776 | 5,676 |
| sphincs-sha256-256f-simple | clean | 5,532 | 5,500 | 5,508 |
| sphincs-sha256-256s-robust | clean | 6,080 | 5,920 | 5,268 |
| sphincs-sha256-256s-simple | clean | 5,804 | 5,752 | 5,100 |
| sphincs-shake256-128f-robust | clean | 2,036 | 2,200 | 2,580 |
| sphincs-shake256-128f-simple | clean | 2,036 | 2,092 | 2,580 |
| sphincs-shake256-128s-robust | clean | 2,360 | 2,312 | 1,896 |
| sphincs-shake256-128s-simple | clean | 2,360 | 2,312 | 1,884 |
| sphincs-shake256-192f-robust | clean | 3,452 | 3,592 | 3,812 |
| sphincs-shake256-192f-simple | clean | 3,452 | 3,484 | 3,812 |
| sphincs-shake256-192s-robust | clean | 3,872 | 3,752 | 3,148 |
| sphincs-shake256-192s-simple | clean | 3,872 | 3,752 | 3,148 |
| sphincs-shake256-256f-robust | clean | 5,460 | 5,528 | 5,428 |
| sphincs-shake256-256f-simple | clean | 5,460 | 5,528 | 5,428 |
| sphincs-shake256-256s-robust | clean | 5,840 | 5,672 | 5,020 |
| sphincs-shake256-256s-simple | clean | 5,840 | 5,672 | 5,020 |
# Hashing Evaluation
## Key Encapsulation Schemes
| Scheme | Implementation | Key Generation [%] | Encapsulation [%] | Decapsulation [%] |
| ------ | -------------- | ------------------ | ----------------- | ----------------- |
| bikel1 | m4f | 0.7% | 15.1% | 1.0% |
| bikel1 | opt | 0.3% | 10.1% | 0.4% |
| hqc-rmrs-128 | clean | 54.7% | 42.3% | 33.8% |
| kyber1024 | clean | 54.0% | 53.6% | 42.5% |
| kyber1024 | m4fspeed | 79.1% | 81.9% | 75.6% |
| kyber1024 | m4fstack | 78.8% | 81.4% | 75.0% |
| kyber1024-90s | clean | 73.6% | 70.4% | 63.8% |
| kyber1024-90s | m4fspeed | 70.7% | 72.9% | 67.5% |
| kyber1024-90s | m4fstack | 70.2% | 72.2% | 66.8% |
| kyber512 | clean | 54.3% | 51.6% | 36.9% |
| kyber512 | m4fspeed | 79.4% | 82.0% | 72.7% |
| kyber512 | m4fstack | 79.4% | 81.7% | 72.4% |
| kyber512-90s | clean | 68.4% | 62.6% | 52.5% |
| kyber512-90s | m4fspeed | 72.2% | 74.2% | 66.2% |
| kyber512-90s | m4fstack | 72.1% | 73.8% | 65.7% |
| kyber768 | clean | 52.4% | 52.3% | 39.5% |
| kyber768 | m4fspeed | 78.4% | 81.8% | 74.0% |
| kyber768 | m4fstack | 78.3% | 81.3% | 73.5% |
| kyber768-90s | clean | 71.2% | 67.3% | 59.3% |
| kyber768-90s | m4fspeed | 70.6% | 73.1% | 66.5% |
| kyber768-90s | m4fstack | 70.3% | 72.5% | 65.9% |
## Signature Schemes
| Scheme | Implementation | Key Generation [%] | Sign [%] | Verify [%] |
| ------ | -------------- | ------------------ | -------- | ---------- |
| dilithium2 | clean | 68.2% | 38.8% | 61.4% |
| dilithium2 | m4f | 82.8% | 65.5% | 80.5% |
| dilithium2aes | clean | 2.8% | 3.6% | 5.2% |
| dilithium3 | clean | 71.6% | 38.7% | 64.9% |
| dilithium3 | m4f | 85.0% | 64.8% | 82.6% |
| dilithium3aes | clean | 2.3% | 2.4% | 3.7% |
| dilithium5 | m4f | 86.0% | 69.2% | 84.5% |
| falcon-1024 | clean | 8.2% | 0.3% | 26.9% |
| falcon-1024 | m4-ct | 11.0% | 0.5% | 34.0% |
| falcon-1024 | opt-ct | 11.0% | 0.5% | 34.0% |
| falcon-1024 | opt-leaktime | 12.8% | 0.5% | 34.0% |
| falcon-512 | clean | 13.1% | 0.4% | 29.3% |
| falcon-512 | m4-ct | 18.3% | 0.5% | 35.7% |
| falcon-512 | opt-ct | 18.3% | 0.5% | 35.7% |
| falcon-512 | opt-leaktime | 19.6% | 0.6% | 35.8% |
| falcon-512-tree | m4-ct | 15.9% | 1.2% | 35.7% |
| falcon-512-tree | opt-ct | 16.2% | 1.2% | 35.6% |
| falcon-512-tree | opt-leaktime | 16.8% | 1.1% | 35.9% |
| sphincs-haraka-128f-robust | clean | 0.0% | 0.0% | 0.0% |
| sphincs-haraka-128f-simple | clean | 0.0% | 0.0% | 0.0% |
| sphincs-haraka-128s-robust | clean | 0.0% | 0.0% | 0.0% |
| sphincs-haraka-128s-simple | clean | 0.0% | 0.0% | 0.0% |
| sphincs-haraka-192f-robust | clean | 0.0% | 0.0% | 0.0% |
| sphincs-haraka-192f-simple | clean | 0.0% | 0.0% | 0.0% |
| sphincs-haraka-192s-robust | clean | 0.0% | 0.0% | 0.0% |
| sphincs-haraka-192s-simple | clean | 0.0% | 0.0% | 0.0% |
| sphincs-haraka-256f-robust | clean | 0.0% | 0.0% | 0.0% |
| sphincs-haraka-256f-simple | clean | 0.0% | 0.0% | 0.0% |
| sphincs-haraka-256s-robust | clean | 0.0% | 0.0% | 0.0% |
| sphincs-haraka-256s-simple | clean | 0.0% | 0.0% | 0.0% |
| sphincs-sha256-128f-robust | clean | 87.7% | 87.7% | 87.8% |
| sphincs-sha256-128f-simple | clean | 85.3% | 85.2% | 85.1% |
| sphincs-sha256-128s-robust | clean | 87.7% | 87.6% | 87.7% |
| sphincs-sha256-128s-simple | clean | 85.3% | 85.1% | 85.0% |
| sphincs-sha256-192f-robust | clean | 87.2% | 87.4% | 87.6% |
| sphincs-sha256-192f-simple | clean | 84.9% | 85.1% | 85.1% |
| sphincs-sha256-192s-robust | clean | 87.3% | 87.5% | 87.9% |
| sphincs-sha256-192s-simple | clean | 84.9% | 85.2% | 85.6% |
| sphincs-sha256-256f-robust | clean | 90.9% | 91.0% | 91.3% |
| sphincs-sha256-256f-simple | clean | 84.6% | 84.8% | 84.9% |
| sphincs-sha256-256s-robust | clean | 91.1% | 91.1% | 91.6% |
| sphincs-sha256-256s-simple | clean | 84.9% | 85.4% | 85.6% |
| sphincs-shake256-128f-robust | clean | 97.4% | 97.4% | 97.5% |
| sphincs-shake256-128f-simple | clean | 95.7% | 95.7% | 95.7% |
| sphincs-shake256-128s-robust | clean | 97.5% | 97.4% | 97.4% |
| sphincs-shake256-128s-simple | clean | 95.7% | 95.7% | 95.6% |
| sphincs-shake256-192f-robust | clean | 97.4% | 97.3% | 97.4% |
| sphincs-shake256-192f-simple | clean | 95.7% | 95.6% | 95.6% |
| sphincs-shake256-192s-robust | clean | 97.4% | 97.3% | 97.4% |
| sphincs-shake256-192s-simple | clean | 95.7% | 95.6% | 95.6% |
| sphincs-shake256-256f-robust | clean | 97.4% | 97.3% | 97.4% |
| sphincs-shake256-256f-simple | clean | 95.6% | 95.6% | 95.6% |
| sphincs-shake256-256s-robust | clean | 97.4% | 97.2% | 97.4% |
| sphincs-shake256-256s-simple | clean | 95.7% | 95.6% | 95.6% |
# Size Evaluation
## Key Encapsulation Schemes
| Scheme | Implementation | .text [bytes] | .data [bytes] | .bss [bytes] | Total [bytes] |
| ------ | -------------- | ------------- | ------------- | ------------ | ------------- |
| bikel1 | m4f | 177,664 | 24 | 49 | 177,737 |
| bikel1 | opt | 34,947 | 24 | 1 | 34,972 |
| hqc-rmrs-128 | clean | 17,116 | 0 | 0 | 17,116 |
| kyber1024 | clean | 6,068 | 0 | 0 | 6,068 |
| kyber1024 | m4fspeed | 16,496 | 0 | 0 | 16,496 |
| kyber1024 | m4fstack | 13,752 | 0 | 0 | 13,752 |
| kyber1024-90s | clean | 6,424 | 0 | 0 | 6,424 |
| kyber1024-90s | m4fspeed | 16,948 | 0 | 0 | 16,948 |
| kyber1024-90s | m4fstack | 13,996 | 0 | 0 | 13,996 |
| kyber512 | clean | 4,872 | 0 | 0 | 4,872 |
| kyber512 | m4fspeed | 15,332 | 0 | 0 | 15,332 |
| kyber512 | m4fstack | 12,820 | 0 | 0 | 12,820 |
| kyber512-90s | clean | 5,088 | 0 | 0 | 5,088 |
| kyber512-90s | m4fspeed | 15,784 | 0 | 0 | 15,784 |
| kyber512-90s | m4fstack | 13,052 | 0 | 0 | 13,052 |
| kyber768 | clean | 4,888 | 0 | 0 | 4,888 |
| kyber768 | m4fspeed | 15,540 | 0 | 0 | 15,540 |
| kyber768 | m4fstack | 12,836 | 0 | 0 | 12,836 |
| kyber768-90s | clean | 5,120 | 0 | 0 | 5,120 |
| kyber768-90s | m4fspeed | 16,000 | 0 | 0 | 16,000 |
| kyber768-90s | m4fstack | 13,068 | 0 | 0 | 13,068 |
## Signature Schemes
| Scheme | Implementation | .text [bytes] | .data [bytes] | .bss [bytes] | Total [bytes] |
| ------ | -------------- | ------------- | ------------- | ------------ | ------------- |
| dilithium2 | clean | 7,888 | 0 | 0 | 7,888 |
| dilithium2 | m4f | 18,480 | 0 | 0 | 18,480 |
| dilithium2aes | clean | 14,954 | 0 | 0 | 14,954 |
| dilithium3 | clean | 7,384 | 0 | 0 | 7,384 |
| dilithium3 | m4f | 19,924 | 0 | 0 | 19,924 |
| dilithium3aes | clean | 14,442 | 0 | 0 | 14,442 |
| dilithium5 | m4f | 18,248 | 0 | 0 | 18,248 |
| falcon-1024 | clean | 82,281 | 0 | 0 | 82,281 |
| falcon-1024 | m4-ct | 83,069 | 0 | 79,872 | 162,941 |
| falcon-1024 | opt-ct | 83,069 | 0 | 79,872 | 162,941 |
| falcon-1024 | opt-leaktime | 76,261 | 0 | 79,872 | 156,133 |
| falcon-512 | clean | 82,249 | 0 | 0 | 82,249 |
| falcon-512 | m4-ct | 83,069 | 0 | 39,936 | 123,005 |
| falcon-512 | opt-ct | 83,069 | 0 | 39,936 | 123,005 |
| falcon-512 | opt-leaktime | 76,261 | 0 | 39,936 | 116,197 |
| falcon-512-tree | m4-ct | 82,821 | 0 | 27,648 | 110,469 |
| falcon-512-tree | opt-ct | 82,821 | 0 | 27,648 | 110,469 |
| falcon-512-tree | opt-leaktime | 76,013 | 0 | 27,648 | 103,661 |
| sphincs-haraka-128f-robust | clean | 16,428 | 0 | 0 | 16,428 |
| sphincs-haraka-128f-simple | clean | 16,276 | 0 | 0 | 16,276 |
| sphincs-haraka-128s-robust | clean | 16,700 | 0 | 0 | 16,700 |
| sphincs-haraka-128s-simple | clean | 16,552 | 0 | 0 | 16,552 |
| sphincs-haraka-192f-robust | clean | 16,484 | 0 | 0 | 16,484 |
| sphincs-haraka-192f-simple | clean | 16,300 | 0 | 0 | 16,300 |
| sphincs-haraka-192s-robust | clean | 17,020 | 0 | 0 | 17,020 |
| sphincs-haraka-192s-simple | clean | 16,836 | 0 | 0 | 16,836 |
| sphincs-haraka-256f-robust | clean | 16,868 | 0 | 0 | 16,868 |
| sphincs-haraka-256f-simple | clean | 16,624 | 0 | 0 | 16,624 |
| sphincs-haraka-256s-robust | clean | 17,196 | 0 | 0 | 17,196 |
| sphincs-haraka-256s-simple | clean | 16,952 | 0 | 0 | 16,952 |
| sphincs-sha256-128f-robust | clean | 4,740 | 0 | 0 | 4,740 |
| sphincs-sha256-128f-simple | clean | 4,504 | 0 | 0 | 4,504 |
| sphincs-sha256-128s-robust | clean | 5,012 | 0 | 0 | 5,012 |
| sphincs-sha256-128s-simple | clean | 4,776 | 0 | 0 | 4,776 |
| sphincs-sha256-192f-robust | clean | 5,020 | 0 | 0 | 5,020 |
| sphincs-sha256-192f-simple | clean | 4,668 | 0 | 0 | 4,668 |
| sphincs-sha256-192s-robust | clean | 5,564 | 0 | 0 | 5,564 |
| sphincs-sha256-192s-simple | clean | 5,208 | 0 | 0 | 5,208 |
| sphincs-sha256-256f-robust | clean | 5,488 | 0 | 0 | 5,488 |
| sphincs-sha256-256f-simple | clean | 5,048 | 0 | 0 | 5,048 |
| sphincs-sha256-256s-robust | clean | 5,812 | 0 | 0 | 5,812 |
| sphincs-sha256-256s-simple | clean | 5,368 | 0 | 0 | 5,368 |
| sphincs-shake256-128f-robust | clean | 4,024 | 0 | 0 | 4,024 |
| sphincs-shake256-128f-simple | clean | 3,884 | 0 | 0 | 3,884 |
| sphincs-shake256-128s-robust | clean | 4,296 | 0 | 0 | 4,296 |
| sphincs-shake256-128s-simple | clean | 4,152 | 0 | 0 | 4,152 |
| sphincs-shake256-192f-robust | clean | 4,124 | 0 | 0 | 4,124 |
| sphincs-shake256-192f-simple | clean | 3,952 | 0 | 0 | 3,952 |
| sphincs-shake256-192s-robust | clean | 4,660 | 0 | 0 | 4,660 |
| sphincs-shake256-192s-simple | clean | 4,488 | 0 | 0 | 4,488 |
| sphincs-shake256-256f-robust | clean | 4,520 | 0 | 0 | 4,520 |
| sphincs-shake256-256f-simple | clean | 4,308 | 0 | 0 | 4,308 |
| sphincs-shake256-256s-robust | clean | 4,844 | 0 | 0 | 4,844 |
| sphincs-shake256-256s-simple | clean | 4,636 | 0 | 0 | 4,636 |