Skip to content

Commit 1a04a91

Browse files
authored
Merge pull request #380 from mupq/faster-ml-dsa
ML-DSA-44/87: Switch to mod 769 NTT instead of mod 257 FTT
2 parents 5ef2ba7 + 356c6f8 commit 1a04a91

20 files changed

+830
-1578
lines changed

benchmarks.csv

+8-8
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,13 @@ mirith_hypercube_Ib_short (10 executions),ref,2514920,2514920,2514923,447351952,
8989
mirith_hypercube_Va_fast (10 executions),ref,6254896,6254886,6254922,808070687,808007911,808157180,792058628,792006360,792098565
9090
mirith_hypercube_Vb_fast (10 executions),ref,8807565,8807542,8807583,1134272446,1134201632,1134368110,1117085816,1117059819,1117104354
9191
ml-dsa-44 (1000 executions),clean,1874405,1827873,1914904,7925955,3322507,33055004,2063096,2062599,2063590
92-
ml-dsa-44 (1000 executions),m4f,1425492,1379560,1466364,3822701,1814511,22969466,1421600,1420736,1422318
92+
ml-dsa-44 (1000 executions),m4f,1426025,1379650,1466529,3943121,1812557,17009165,1421623,1420738,1422362
9393
ml-dsa-44 (1000 executions),m4fstack,1799062,1685053,1902006,12134284,3901973,65357843,3242333,3199001,3279836
9494
ml-dsa-65 (1000 executions),clean,3205533,3204116,3206864,12359056,5098254,70122163,3377305,3376896,3377714
9595
ml-dsa-65 (1000 executions),m4f,2516006,2514337,2517453,6193171,2918295,26008621,2415944,2415109,2416730
9696
ml-dsa-65 (1000 executions),m4fstack,3412622,3406495,3418945,24421526,6735243,164688347,5732397,5688990,5783258
9797
ml-dsa-87 (1000 executions),clean,5341863,5276084,5406569,15579513,7954385,82615659,5610203,5609675,5610695
98-
ml-dsa-87 (1000 executions),m4f,4274513,4210044,4340431,8204023,4883484,29488880,4193228,4192029,4194357
98+
ml-dsa-87 (1000 executions),m4f,4275859,4188469,4340256,7947380,4880711,29357607,4193104,4191862,4194249
9999
ml-dsa-87 (1000 executions),m4fstack,5820537,5484663,6113363,33357899,11168408,170850278,9911514,9852116,9969829
100100
mqom_cat1_gf251_fast (10 executions),ref,7780082,7761398,7795766,149063790,149045955,149079787,136742778,136613266,136821602
101101
mqom_cat1_gf31_fast (10 executions),ref,8472628,8471619,8473585,243796920,243782136,243811088,244346110,244239828,244424317
@@ -231,13 +231,13 @@ mirith_hypercube_Ib_short,ref,19064,237408,41220,,,,,,
231231
mirith_hypercube_Va_fast,ref,45000,308440,81056,,,,,,
232232
mirith_hypercube_Vb_fast,ref,62864,344832,101220,,,,,,
233233
ml-dsa-44,clean,38304,51976,36308,,,,,,
234-
ml-dsa-44,m4f,38296,49424,8912,,,,,,
234+
ml-dsa-44,m4f,38296,44816,8912,,,,,,
235235
ml-dsa-44,m4fstack,4408,5080,2712,,,,,,
236236
ml-dsa-65,clean,60832,79624,57736,,,,,,
237237
ml-dsa-65,m4f,60824,68872,9888,,,,,,
238238
ml-dsa-65,m4fstack,4408,6616,2712,,,,,,
239239
ml-dsa-87,clean,97696,122740,92948,,,,,,
240-
ml-dsa-87,m4f,97688,116084,12060,,,,,,
240+
ml-dsa-87,m4f,97688,107892,12060,,,,,,
241241
ml-dsa-87,m4fstack,4408,8144,2720,,,,,,
242242
mqom_cat1_gf251_fast,ref,184356,399396,252684,,,,,,
243243
mqom_cat1_gf31_fast,ref,262888,612816,421596,,,,,,
@@ -374,13 +374,13 @@ mirith_hypercube_Ib_short,ref,61.2,56.6,56.8,,,,,,
374374
mirith_hypercube_Va_fast,ref,64.8,13.4,12.3,,,,,,
375375
mirith_hypercube_Vb_fast,ref,64.5,11.0,10.1,,,,,,
376376
ml-dsa-44,clean,61.0,31.0,52.9,,,,,,
377-
ml-dsa-44,m4f,79.9,60.7,76.6,,,,,,
377+
ml-dsa-44,m4f,79.9,60.6,76.6,,,,,,
378378
ml-dsa-44,m4fstack,74.9,54.8,40.8,,,,,,
379379
ml-dsa-65,clean,64.7,31.2,56.8,,,,,,
380380
ml-dsa-65,m4f,82.3,60.6,79.2,,,,,,
381381
ml-dsa-65,m4fstack,77.1,54.2,41.0,,,,,,
382382
ml-dsa-87,clean,67.0,35.9,61.1,,,,,,
383-
ml-dsa-87,m4f,83.5,65.1,81.6,,,,,,
383+
ml-dsa-87,m4f,83.5,65.3,81.6,,,,,,
384384
ml-dsa-87,m4fstack,76.1,54.0,42.6,,,,,,
385385
mqom_cat1_gf251_fast,ref,73.5,33.0,33.1,,,,,,
386386
mqom_cat1_gf31_fast,ref,64.6,19.8,19.2,,,,,,
@@ -516,13 +516,13 @@ mirith_hypercube_Ib_short,ref,8825,256,0,9081,,,,,
516516
mirith_hypercube_Va_fast,ref,9140,256,0,9396,,,,,
517517
mirith_hypercube_Vb_fast,ref,9160,256,0,9416,,,,,
518518
ml-dsa-44,clean,8212,0,0,8212,,,,,
519-
ml-dsa-44,m4f,19324,0,0,19324,,,,,
519+
ml-dsa-44,m4f,19592,0,0,19592,,,,,
520520
ml-dsa-44,m4fstack,24844,0,0,24844,,,,,
521521
ml-dsa-65,clean,7724,0,0,7724,,,,,
522522
ml-dsa-65,m4f,19328,0,0,19328,,,,,
523523
ml-dsa-65,m4fstack,24120,0,0,24120,,,,,
524524
ml-dsa-87,clean,8036,0,0,8036,,,,,
525-
ml-dsa-87,m4f,19232,0,0,19232,,,,,
525+
ml-dsa-87,m4f,19500,0,0,19500,,,,,
526526
ml-dsa-87,m4fstack,24516,0,0,24516,,,,,
527527
mqom_cat1_gf251_fast,ref,16865,0,0,16865,,,,,
528528
mqom_cat1_gf31_fast,ref,23718,0,0,23718,,,,,

benchmarks.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,13 @@
9191
| mirith_hypercube_Va_fast (10 executions) | ref | AVG: 6,254,896 <br /> MIN: 6,254,886 <br /> MAX: 6,254,922 | AVG: 808,070,687 <br /> MIN: 808,007,911 <br /> MAX: 808,157,180 | AVG: 792,058,628 <br /> MIN: 792,006,360 <br /> MAX: 792,098,565 |
9292
| mirith_hypercube_Vb_fast (10 executions) | ref | AVG: 8,807,565 <br /> MIN: 8,807,542 <br /> MAX: 8,807,583 | AVG: 1,134,272,446 <br /> MIN: 1,134,201,632 <br /> MAX: 1,134,368,110 | AVG: 1,117,085,816 <br /> MIN: 1,117,059,819 <br /> MAX: 1,117,104,354 |
9393
| ml-dsa-44 (1000 executions) | clean | AVG: 1,874,405 <br /> MIN: 1,827,873 <br /> MAX: 1,914,904 | AVG: 7,925,955 <br /> MIN: 3,322,507 <br /> MAX: 33,055,004 | AVG: 2,063,096 <br /> MIN: 2,062,599 <br /> MAX: 2,063,590 |
94-
| ml-dsa-44 (1000 executions) | m4f | AVG: 1,425,492 <br /> MIN: 1,379,560 <br /> MAX: 1,466,364 | AVG: 3,822,701 <br /> MIN: 1,814,511 <br /> MAX: 22,969,466 | AVG: 1,421,600 <br /> MIN: 1,420,736 <br /> MAX: 1,422,318 |
94+
| ml-dsa-44 (1000 executions) | m4f | AVG: 1,426,025 <br /> MIN: 1,379,650 <br /> MAX: 1,466,529 | AVG: 3,943,121 <br /> MIN: 1,812,557 <br /> MAX: 17,009,165 | AVG: 1,421,623 <br /> MIN: 1,420,738 <br /> MAX: 1,422,362 |
9595
| ml-dsa-44 (1000 executions) | m4fstack | AVG: 1,799,062 <br /> MIN: 1,685,053 <br /> MAX: 1,902,006 | AVG: 12,134,284 <br /> MIN: 3,901,973 <br /> MAX: 65,357,843 | AVG: 3,242,333 <br /> MIN: 3,199,001 <br /> MAX: 3,279,836 |
9696
| ml-dsa-65 (1000 executions) | clean | AVG: 3,205,533 <br /> MIN: 3,204,116 <br /> MAX: 3,206,864 | AVG: 12,359,056 <br /> MIN: 5,098,254 <br /> MAX: 70,122,163 | AVG: 3,377,305 <br /> MIN: 3,376,896 <br /> MAX: 3,377,714 |
9797
| ml-dsa-65 (1000 executions) | m4f | AVG: 2,516,006 <br /> MIN: 2,514,337 <br /> MAX: 2,517,453 | AVG: 6,193,171 <br /> MIN: 2,918,295 <br /> MAX: 26,008,621 | AVG: 2,415,944 <br /> MIN: 2,415,109 <br /> MAX: 2,416,730 |
9898
| ml-dsa-65 (1000 executions) | m4fstack | AVG: 3,412,622 <br /> MIN: 3,406,495 <br /> MAX: 3,418,945 | AVG: 24,421,526 <br /> MIN: 6,735,243 <br /> MAX: 164,688,347 | AVG: 5,732,397 <br /> MIN: 5,688,990 <br /> MAX: 5,783,258 |
9999
| ml-dsa-87 (1000 executions) | clean | AVG: 5,341,863 <br /> MIN: 5,276,084 <br /> MAX: 5,406,569 | AVG: 15,579,513 <br /> MIN: 7,954,385 <br /> MAX: 82,615,659 | AVG: 5,610,203 <br /> MIN: 5,609,675 <br /> MAX: 5,610,695 |
100-
| ml-dsa-87 (1000 executions) | m4f | AVG: 4,274,513 <br /> MIN: 4,210,044 <br /> MAX: 4,340,431 | AVG: 8,204,023 <br /> MIN: 4,883,484 <br /> MAX: 29,488,880 | AVG: 4,193,228 <br /> MIN: 4,192,029 <br /> MAX: 4,194,357 |
100+
| ml-dsa-87 (1000 executions) | m4f | AVG: 4,275,859 <br /> MIN: 4,188,469 <br /> MAX: 4,340,256 | AVG: 7,947,380 <br /> MIN: 4,880,711 <br /> MAX: 29,357,607 | AVG: 4,193,104 <br /> MIN: 4,191,862 <br /> MAX: 4,194,249 |
101101
| ml-dsa-87 (1000 executions) | m4fstack | AVG: 5,820,537 <br /> MIN: 5,484,663 <br /> MAX: 6,113,363 | AVG: 33,357,899 <br /> MIN: 11,168,408 <br /> MAX: 170,850,278 | AVG: 9,911,514 <br /> MIN: 9,852,116 <br /> MAX: 9,969,829 |
102102
| mqom_cat1_gf251_fast (10 executions) | ref | AVG: 7,780,082 <br /> MIN: 7,761,398 <br /> MAX: 7,795,766 | AVG: 149,063,790 <br /> MIN: 149,045,955 <br /> MAX: 149,079,787 | AVG: 136,742,778 <br /> MIN: 136,613,266 <br /> MAX: 136,821,602 |
103103
| mqom_cat1_gf31_fast (10 executions) | ref | AVG: 8,472,628 <br /> MIN: 8,471,619 <br /> MAX: 8,473,585 | AVG: 243,796,920 <br /> MIN: 243,782,136 <br /> MAX: 243,811,088 | AVG: 244,346,110 <br /> MIN: 244,239,828 <br /> MAX: 244,424,317 |
@@ -235,13 +235,13 @@
235235
| mirith_hypercube_Va_fast | ref | 45,000 | 308,440 | 81,056 |
236236
| mirith_hypercube_Vb_fast | ref | 62,864 | 344,832 | 101,220 |
237237
| ml-dsa-44 | clean | 38,304 | 51,976 | 36,308 |
238-
| ml-dsa-44 | m4f | 38,296 | 49,424 | 8,912 |
238+
| ml-dsa-44 | m4f | 38,296 | 44,816 | 8,912 |
239239
| ml-dsa-44 | m4fstack | 4,408 | 5,080 | 2,712 |
240240
| ml-dsa-65 | clean | 60,832 | 79,624 | 57,736 |
241241
| ml-dsa-65 | m4f | 60,824 | 68,872 | 9,888 |
242242
| ml-dsa-65 | m4fstack | 4,408 | 6,616 | 2,712 |
243243
| ml-dsa-87 | clean | 97,696 | 122,740 | 92,948 |
244-
| ml-dsa-87 | m4f | 97,688 | 116,084 | 12,060 |
244+
| ml-dsa-87 | m4f | 97,688 | 107,892 | 12,060 |
245245
| ml-dsa-87 | m4fstack | 4,408 | 8,144 | 2,720 |
246246
| mqom_cat1_gf251_fast | ref | 184,356 | 399,396 | 252,684 |
247247
| mqom_cat1_gf31_fast | ref | 262,888 | 612,816 | 421,596 |
@@ -379,13 +379,13 @@
379379
| mirith_hypercube_Va_fast | ref | 64.8% | 13.4% | 12.3% |
380380
| mirith_hypercube_Vb_fast | ref | 64.5% | 11.0% | 10.1% |
381381
| ml-dsa-44 | clean | 61.0% | 31.0% | 52.9% |
382-
| ml-dsa-44 | m4f | 79.9% | 60.7% | 76.6% |
382+
| ml-dsa-44 | m4f | 79.9% | 60.6% | 76.6% |
383383
| ml-dsa-44 | m4fstack | 74.9% | 54.8% | 40.8% |
384384
| ml-dsa-65 | clean | 64.7% | 31.2% | 56.8% |
385385
| ml-dsa-65 | m4f | 82.3% | 60.6% | 79.2% |
386386
| ml-dsa-65 | m4fstack | 77.1% | 54.2% | 41.0% |
387387
| ml-dsa-87 | clean | 67.0% | 35.9% | 61.1% |
388-
| ml-dsa-87 | m4f | 83.5% | 65.1% | 81.6% |
388+
| ml-dsa-87 | m4f | 83.5% | 65.3% | 81.6% |
389389
| ml-dsa-87 | m4fstack | 76.1% | 54.0% | 42.6% |
390390
| mqom_cat1_gf251_fast | ref | 73.5% | 33.0% | 33.1% |
391391
| mqom_cat1_gf31_fast | ref | 64.6% | 19.8% | 19.2% |
@@ -523,13 +523,13 @@
523523
| mirith_hypercube_Va_fast | ref | 9,140 | 256 | 0 | 9,396 |
524524
| mirith_hypercube_Vb_fast | ref | 9,160 | 256 | 0 | 9,416 |
525525
| ml-dsa-44 | clean | 8,212 | 0 | 0 | 8,212 |
526-
| ml-dsa-44 | m4f | 19,324 | 0 | 0 | 19,324 |
526+
| ml-dsa-44 | m4f | 19,592 | 0 | 0 | 19,592 |
527527
| ml-dsa-44 | m4fstack | 24,844 | 0 | 0 | 24,844 |
528528
| ml-dsa-65 | clean | 7,724 | 0 | 0 | 7,724 |
529529
| ml-dsa-65 | m4f | 19,328 | 0 | 0 | 19,328 |
530530
| ml-dsa-65 | m4fstack | 24,120 | 0 | 0 | 24,120 |
531531
| ml-dsa-87 | clean | 8,036 | 0 | 0 | 8,036 |
532-
| ml-dsa-87 | m4f | 19,232 | 0 | 0 | 19,232 |
532+
| ml-dsa-87 | m4f | 19,500 | 0 | 0 | 19,500 |
533533
| ml-dsa-87 | m4fstack | 24,516 | 0 | 0 | 24,516 |
534534
| mqom_cat1_gf251_fast | ref | 16,865 | 0 | 0 | 16,865 |
535535
| mqom_cat1_gf31_fast | ref | 23,718 | 0 | 0 | 23,718 |

crypto_sign/ml-dsa-44/m4f/basemul_257.S

-91
This file was deleted.

crypto_sign/ml-dsa-44/m4f/fnt_257.S

-145
This file was deleted.

0 commit comments

Comments
 (0)