VAMPIRE

eBACS: ECRYPT Benchmarking of Cryptographic Systems


ECRYPT II
General information:IntroductioneBASHeBASCeBAEADeBATSSUPERCOPXBXComputersArch
How to submit new software:Tipshashstreamaeaddhkemencryptsign
List of primitives measured:lwcsha3hashstreamlwccaesaraeaddhkemencryptsign
Measurements:lwcsha3hashstreamlwccaesaraeaddhkemencryptsign
List of subroutines:verifydecodeencodesortcorehashblocksxofscalarmult

Measurements of public-key signature systems on one machine: amd64; Zen (800f11); 2017 AMD Ryzen 3 1200; 4 x 3100MHz; rumba3, supercop-20221122

[Page version: 20240726 23:45:48]

eBATS (ECRYPT Benchmarking of Asymmetric Systems) is a project to measure the performance of public-key systems. This page presents benchmark results collected in eBATS for public-key signature systems:

For signature systems that support "message recovery", the space for a signature on a long message is shorter than the space for a signature on a short message.

Each table row lists the first quartile of many speed measurements, the median of many speed measurements, the third quartile of many speed measurements, and the name of the primitive. Measurements with large variance are indicated in red with question marks. The symbol T: (starting with supercop-20200816) means that the SUPERCOP database at the time of benchmarking did not list constant time as a goal for this implementation. The symbol T!!! means that constant time was listed as a goal for this implementation, but that the implementation failed TIMECOP. (TIMECOP failures are not necessarily security issues; they can sometimes be resolved by, e.g., declaring that a rejection-sampling condition is safe to declassify.)

There is a separate page with more information about each signature system and each implementation. Designers and implementors interested in submitting new signature systems and new implementations of existing signature systems should read the call for submissions.


Implementation notes

Graphs: (pkcycles,pkbytes) (smcycles,sbytes) (mcycles,pkbytes) (mcycles,sbytes) (pkbytes,sbytes)

NISTPQC graphs: (pkcycles,pkbytes) (smcycles,sbytes) (mcycles,pkbytes) (mcycles,sbytes) (pkbytes,sbytes)

Measurement failures: ntrumls401x, ntrumls439x, ntrumls593x, ntrumls743x, qtesla128, qtesla192, qtesla256

Cycles to generate a key pair
25%50%75%system
361936573964picnic3l1
362936773822picnicl1full
511451305290picnicl3full
511851395241picnic3l3
665266906886picnicl5full
677268026921picnic3l5
869887238875picnicl1fs
880788398988picnicl1ur
116491172111792
T:
picnic2l1fs
161751621116342picnicl3fs
162511632316438picnicl3ur
194111949819620
T:
picnic2l3fs
219582201422409picnicl5ur
221002214722466picnicl5fs
256672576325967
T:
picnic2l5fs
290092904829142
T:
lattisigns512
481964825348406ed25519
640456431864719dilithium2aes
101078101270101661dilithium3aes
150982151291151992dilithium2
151874152591152841dilithium5aes
200236200498200832
T:
ed448goldilocks
285823286279286980dilithium3
289973291582293094
T:
pass769
356810358380358996
T:
pass863
444526445214446048dilithium5
616578617601619419
T:
sphincsf128harakasimple
700045700431700606
T:
sphincsf128harakarobust
802146803942807075
T:
mqdss48
839158844610854681
T:
edons128k08n72nu8l4mu3
893245901323931209
T:
sphincsf192harakasimple
101573310289511039542
T:
donald2048
106559310796811086322
T:
sphincsf192harakarobust
1328589?1750135?2611060?
T:
qtesla1
186615018681361873314
T:
mqdss64
235045123531642371094
T:
sphincsf256harakasimple
238899123947312401741
T:
edons128ref
289824328990652899834
T:
sphincsf256harakarobust
2790529?4106308?5429191?
T:
qtesla3f
418214141841064185871
T:
sphincs256
657507165763016585521
T:
sphincsf128shake256simple
5895186?6699595?7505367?
T:
qtesla1p
5548491?6900447?9567578?
T:
qtesla3s
816379681786468191789
T:
luov863256
105546591057606610642995
T:
rainbowbinary256181212
107901441079119710818428
T:
sphincsf192shake256simple
120878451212566112145726
T:
sphincsf128shake256robust
124869821249713812516719
T:
luov863256pc
175243261753074017872991
T:
sphincsf192shake256robust
164741121766495819031487
T:
falcon512dyn
167562281817824920336115
T:
falcon512tree
181675261831268018365498
T:
rainbow1aclassic363232
193217851934889519352313
T:
sphincss128harakasimple
191905681942344919473167
T:
rainbow1acompres363232
224451602244723222448948
T:
sphincss128harakarobust
228364482287327122947365
T:
rainbow1acyclicc363232
244387182452499524600272
T:
sphincsf256shake256simple
257181812578779625834737
T:
luov4849242
285904362872173233768168
T:
sphincss192harakasimple
338919013389889234013110
T:
sphincss192harakarobust
368548843687190036893641
T:
luov890351
29913630?37395190?40069436?
T:
qtesla3p
408856204089124641393178
T:
sphincss256harakasimple
441689584417769444194027
T:
sphincss256harakarobust
469034684692599546949966
T:
sphincsf256shake256robust
484511714865474749031365
T:
rainbowbinary16242020
514341945378608559359613
T:
falcon1024dyn
522002605384656859654355
T:
falcon1024tree
561437875628832656413777
T:
gemss128
567676455698307657296875
T:
bluegemss128
574845925755452257627153
T:
redgemss128
578131055787511961626097
T:
luov890351pc
608682426098561961045927
T:
luov8117404
628333676289527462958444
T:
gemss128v2
638528586394451464119731
T:
bluegemss128v2
751394597532311277298524
T:
luov6468330
784077047844917778462918
T:
redgemss128v2
981954129823942798314191
T:
luov8117404pc
115546311115785799116094574
T:
rainbow3cclassic683248
115900751116981103117662836
T:
rainbow3ccompres683248
125250068125765550126546414
T:
rainbow3ccyclicc683248
148868621149020568149182072
T:
luov8086399
201860494201930474202352554
T:
sflashv2
209670387209888815209924708
T:
sphincss128shake256simple
262173570262290771262608191
T:
redgemss192
269329703269512914270064630
T:
bluegemss192
269555713269741010272612344
T:
redgemss192v2
271595260272096894272341084
T:
gemss192
275679585276057179276321265
T:
gemss192v2
276555995277000715277282843
T:
bluegemss192v2
300183386300772778301122217
T:
sphincss192shake256simple
323066345327641148330127405
T:
rainbow5cclassic963664
349496024350823231353692577
T:
rainbow5ccompres963664
386979831390679829394023632
T:
rainbow5ccyclicc963664
390377237392038480393129399
T:
sphincss128shake256robust
395835408399995632400182073
T:
sphincss256shake256simple
638104912638376507638746960
T:
sphincss192shake256robust
751920761752038998752267493
T:
bluegemss256v2
760894946761225795761679948
T:
sphincss256shake256robust
793912609795206864795408218
T:
redgemss256v2
848896165851362411855734107
T:
redgemss256
863917266864571912867114875
T:
bluegemss256
864740867865477431865924651
T:
gemss256
882077910882392591882600229
T:
gravitysphincss
100600910710072545611010062283
T:
gemss256v2
378801912139630063124000594726
T:
pqrsa15
140952658461410028558914104543769
T:
gravitysphincsl
280652850552806981522728081207521
T:
gravitysphincsm
Cycles to sign 59 bytes
25%50%75%system
148881503515207
T:
rainbowbinary256181212
323493271533968
T:
rainbowbinary16242020
510895113551182ed25519
918639239692958
T:
rainbow1aclassic363232
127936128232128553
T:
sflashv2
156718157162158059
T:
rainbow1acyclicc363232
207408207506209937
T:
ed448goldilocks
169817?245031?363004?dilithium2aes
225356?336766?478110?dilithium3aes
219321?343676?552503?dilithium2
243932?357604?503108?dilithium5aes
397989399093399725
T:
rainbow3cclassic683248
219925?401675?1031551?
T:
qtesla1
353639?467781?875417?dilithium3
470186470749471474
T:
rainbow3ccyclicc683248
474903482858485219
T:
falcon512tree
494713495412497086
T:
luov863256pc
343951?684950?1049452?
T:
pass769
469220?691179?1085490?
T:
qtesla3f
171201?727589?968356?
T:
lattisigns512
401516?795089?1208904?
T:
pass863
667607?822036?1146830?dilithium5
860721864951870020
T:
falcon512dyn
934959936468937873
T:
rainbow5cclassic963664
951979959335967158
T:
falcon1024tree
593053?967250?2006469?
T:
qtesla1p
101531110198101030150
T:
donald2048
112698711285881132927
T:
rainbow5ccyclicc963664
126920912773281283337
T:
edons128k08n72nu8l4mu3
142481314277951436084
T:
luov890351pc
527333?1429057?3161665?
T:
qtesla3s
174978317599101766133
T:
falcon1024dyn
210282921111062119891
T:
luov8117404pc
290459229161992936377
T:
edons128ref
3825789?4557812?5237827?
T:
redgemss128v2
4083401?4684847?5834689?
T:
redgemss128
2735843?4822304?6620351?
T:
qtesla3p
549019354925625494015picnicl1full
608166560903936156145
T:
mqdss48
664673766501346653625
T:
luov863256
727904272820037284367
T:
gravitysphincss
810624481737928245617picnicl1fs
102330561031876611244029picnicl1ur
107471721076310310770234picnicl3full
10115087?11795669?14038475?
T:
redgemss192
10552857?12256192?15615266?
T:
redgemss192v2
130970011310426913113186
T:
gravitysphincsm
155283591553804915542238
T:
gravitysphincsl
156527801566266715673514
T:
mqdss64
158215241591101915976238
T:
rainbow1acompres363232
176668381768568717707777picnicl5full
198565641990801719926141picnicl3fs
17529738?20252522?24494192?
T:
redgemss256
17935767?21136024?26614088?
T:
redgemss256v2
221254542216692322199375
T:
sphincsf128harakasimple
222507502225741922263325
T:
luov890351
256562982566660925679756picnic3l1
261221662615194526199644
T:
sphincsf128harakarobust
262273182634786926407290
T:
sphincsf192harakasimple
265170722652728526536572picnicl3ur
324155073245187832485411
T:
sphincsf192harakarobust
346057903484368434917664picnicl5fs
388194463882909438845447
T:
luov8117404
445690794460044544613887picnicl5ur
474207474752599847546888
T:
luov4849242
564823585652598857342628picnic3l3
597185245976924760006131
T:
sphincsf256harakasimple
756936397573105775785960
T:
sphincsf256harakarobust
770215757708007677122102
T:
sphincs256
944266479447726694556330picnic3l5
956579379853110098985188
T:
rainbow3ccompres683248
128937486129031227129194900
T:
pqrsa15
116747578?140068821?163440728?
T:
bluegemss128
141121679141505193142810663
T:
luov6468330
116352357?162580348?185692874?
T:
bluegemss128v2
210874211211091273211431217
T:
sphincsf128shake256simple
214382536214514272214641943
T:
picnic2l1fs
241941285245366438247225753
T:
rainbow5ccompres963664
284370415284653942285318899
T:
luov8086399
297352363297543002297762244
T:
sphincsf192shake256simple
368616804368983307369279369
T:
sphincss128harakasimple
371063454371649061372271155
T:
sphincsf128shake256robust
264789041?395888110?460861584?
T:
bluegemss192v2
442884796444796672445536514
T:
sphincss128harakarobust
305130963?456037498?532413223?
T:
bluegemss192
476183897476689502479418783
T:
sphincsf192shake256robust
546683713548064651573269809
T:
sphincss256harakasimple
568626851569603854569904462
T:
sphincsf256shake256simple
615593617615689361615832785
T:
picnic2l3fs
643874637644102750644386304
T:
sphincss256harakarobust
559775669?670836667?782919947?
T:
bluegemss256v2
642276816?770853071?900660281?
T:
bluegemss256
824218831824606912825198931
T:
sphincss192harakasimple
735156165?882319019?1029325441?
T:
gemss128v2
757624420?909216335?1223848849?
T:
gemss128
105306595810536429681054509771
T:
sphincsf256shake256robust
107224679010733720111074251620
T:
sphincss192harakarobust
126352752112654817871273541066
T:
picnic2l5fs
2199924182?2634959384?3512587671?
T:
gemss192v2
335803898433583886573358987836
T:
sphincss128shake256simple
2611464892?3655471702?4177570843?
T:
gemss192
3594026676?4492600765?5393655507?
T:
gemss256
3863649076?4633887642?5406233692?
T:
gemss256v2
488391665948866741634889018873
T:
sphincss256shake256simple
584870277058554132865856420585
T:
sphincss128shake256robust
684878463168565633676867884282
T:
sphincss192shake256simple
888243069888862902398888379559
T:
sphincss256shake256robust
132480492651324981665813299037846
T:
sphincss192shake256robust
Cycles to verify 59 bytes
25%50%75%system
111581122511346
T:
rainbowbinary256181212
232672382224124
T:
rainbowbinary16242020
315173197533171
T:
rainbow1aclassic363232
474524774148178
T:
lattisigns512
623116325765766
T:
gravitysphincss
821418255382766dilithium2aes
861138719887578
T:
falcon512tree
101984102654103511
T:
falcon512dyn
107756108278108783
T:
qtesla1
118854119058119384dilithium3aes
122828123521124469
T:
luov863256pc
134941135068135170
T:
sflashv2
154396155056156452
T:
rainbow3cclassic683248
161426161676161943dilithium2
173865174702175950
T:
falcon1024tree
175222175578176063dilithium5aes
181629182651183419ed25519
207517208974209528
T:
falcon1024dyn
223051223808224484
T:
qtesla3f
224963225405225992
T:
qtesla3s
263312267809270476
T:
gravitysphincsm
270626274871281767
T:
redgemss128v2
279196279668280381dilithium3
289805291712293618
T:
luov890351pc
305018312942317941
T:
bluegemss128
313681318395323389
T:
gemss128
313353319883326088
T:
redgemss128
320266325083333284
T:
bluegemss128v2
316928326766333715
T:
gemss128v2
355939360089366223
T:
gravitysphincsl
402183404791407210
T:
luov8117404pc
406065416914427807
T:
sphincss128harakasimple
418072420066421729
T:
rainbow5cclassic963664
440714442413443979
T:
pass769
451626452134452911dilithium5
468540474604482385
T:
edons128k08n72nu8l4mu3
544125545483547412
T:
qtesla1p
545807547678549636
T:
pass863
598967618433633440
T:
sphincss128harakarobust
607896620311624862
T:
sphincss192harakasimple
614894626244644262
T:
bluegemss192
621262630627643143
T:
gemss192
636003638597639974
T:
ed448goldilocks
650589661136671860
T:
redgemss192
677192688118699352
T:
bluegemss192v2
681386693159698273
T:
gemss192v2
682839693890707465
T:
redgemss192v2
691074700205705815
T:
edons128ref
854595865622879283
T:
sphincss256harakasimple
952243970856987832
T:
sphincsf128harakasimple
9726079870541003561
T:
sphincss192harakarobust
106055010752801087109
T:
gemss256v2
110346011188971137454
T:
bluegemss256v2
111677111324621151012
T:
redgemss256v2
119731712069221218659
T:
donald2048
121904312487871268607
T:
redgemss256
123164012559431273816
T:
sphincss256harakarobust
125023212639431281936
T:
gemss256
128846813021871322215
T:
bluegemss256
137070713904981406866
T:
sphincsf128harakarobust
151298115285671542841
T:
sphincsf192harakasimple
160873216208621637022
T:
sphincsf256harakasimple
194564919626181971239
T:
sphincs256
235543423743302403272
T:
sphincsf256harakarobust
236112323947052423493
T:
sphincsf192harakarobust
259151126028712612454
T:
qtesla3p
377642838496833941329
T:
sphincss128shake256simple
390638439340923971980
T:
mqdss48
420866342113074257598picnicl1full
566148956655215672871
T:
luov863256
569668457584035856473
T:
sphincss192shake256simple
662164966343836677486picnicl1fs
722307773222567403189
T:
sphincss256shake256simple
724205673319677515409
T:
sphincss128shake256robust
841475284210568431769picnicl3full
851953685806799482492picnicl1ur
913589993106259445662
T:
sphincsf128shake256simple
105675481066863010728727
T:
mqdss64
107378691085724711109064
T:
sphincss192shake256robust
129329561304012613083077
T:
rainbow1acompres363232
132056181328364613615116
T:
rainbow1acyclicc363232
139013701394070813956247picnicl5full
138891631414406014408867
T:
sphincss256shake256robust
147211961485393615020605
T:
sphincsf256shake256simple
146704341489453814995154
T:
sphincsf192shake256simple
168307231691187216958011picnicl3fs
176413171789338918113359
T:
sphincsf128shake256robust
198238921983576119852583
T:
pqrsa15
199628241998439220011978
T:
luov890351
212738712128375621315402picnic3l1
222672322229435122344197picnicl3ur
280777272840745828615162
T:
sphincsf192shake256robust
282524682867978828950489
T:
sphincsf256shake256robust
299736463005390030134620picnicl5fs
343308643435539234468457
T:
luov8117404
347472193476904434794988
T:
luov4849242
383140893841939238554838picnicl5ur
468981714693656046988580picnic3l3
731740337323824673351797picnic3l5
778085858133175382051339
T:
rainbow3ccompres683248
820664718241182782823040
T:
rainbow3ccyclicc683248
883745428841251088482298
T:
luov6468330
107296010107374456107405239
T:
picnic2l1fs
164768089164879298164943761
T:
luov8086399
178349527181006846182983302
T:
rainbow5ccyclicc963664
180880968182044472184320018
T:
rainbow5ccompres963664
246052239246133679246193570
T:
picnic2l3fs
435594625436127463436280111
T:
picnic2l5fs