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; Haswell+AES (306c3); 2013 Intel Xeon E3-1220 v3; 4 x 3100MHz; hiphop, supercop-20231107

[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: old (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
3535?3572?4576?picnic3l1
3228?4008?4155?picnicl1full
439247864873picnic3l3
482048604929
T:
picnic2l1fs
495149675139picnicl1fs
495850265479picnicl1ur
443151625339picnicl3full
576163376766picnic3l5
5870?6719?7364?picnicl5full
892389719105
T:
picnic2l3fs
9328938110587picnicl3fs
9221982910157picnicl3ur
120661230114962
T:
picnic2l5fs
124301354314329picnicl5fs
135561368715425picnicl5ur
249442501525114
T:
lattisigns512
571305726257407ed25519
652466554165904dilithium2aes
965199710698640dilithium2
102737103389104199dilithium3aes
159353159756160349dilithium5aes
173111173583181546dilithium3
175066175372175673
T:
ed448goldilocks
251660253621257013
T:
pass769
269084269788272832dilithium5
287367297927303738
T:
pass863
827014829888831869
T:
mqdss48
851799855226862477
T:
edons128k08n72nu8l4mu3
883500906594908617
T:
sphincsf128harakasimple
110074811018411102562
T:
sphincsf128harakarobust
126972012834761291885
T:
donald2048
128903612894241290087
T:
sphincsf192harakasimple
162013916212481629488
T:
sphincsf192harakarobust
1310614?1724941?2576382?
T:
qtesla1
190475819061311907890
T:
mqdss64
256241725668552569421
T:
edons128ref
278818727899502791179
T:
sphincs256
2841975?2860019?4240577?
T:
qtesla3f
350054235023353513154
T:
sphincsf256harakasimple
428156042835404288900
T:
sphincsf256harakarobust
449167544943524500121
T:
sphincsf128shake256simple
509507550970155167122
T:
luov863256
4219061?5626238?9700665?
T:
qtesla3s
654790465555126802949
T:
sphincsf192shake256simple
6203108?7054895?8698827?
T:
qtesla1p
820894482109298214028
T:
sphincsf128shake256robust
974083197444939771227
T:
luov863256pc
120709541207710412091911
T:
sphincsf192shake256robust
120891531211227512126964
T:
rainbowbinary256181212
172196781722333917238928
T:
sphincsf256shake256simple
183159171832410018440935
T:
rainbow1aclassic363232
180898531894153120882265
T:
falcon512dyn
190422911910764219144338
T:
luov4849242
182781461927839720094273
T:
falcon512tree
204757512048056120492067
T:
rainbow1acyclicc363232
204881782050182320513515
T:
rainbow1acompres363232
214388652151638422044689
T:
luov890351
276581082766417627695199
T:
sphincss128harakasimple
319451963198028932046793
T:
sphincsf256shake256robust
348750863491196034915406
T:
sphincss128harakarobust
27847318?35617588?43359456?
T:
qtesla3p
357805383579944935877342
T:
luov890351pc
365485973667010636732903
T:
luov8117404
427582394280723442995852
T:
sphincss192harakasimple
505139115055838750593416
T:
sphincss192harakarobust
541725415425534054458290
T:
sphincss256harakasimple
546840865503365655366363
T:
rainbowbinary16242020
564242185842109060785820
T:
falcon1024dyn
568272365960967765186082
T:
falcon1024tree
629668566302049263100025
T:
luov8117404pc
647656766477427164785449
T:
redgemss128
648357506485297164869760
T:
gemss128
647088646500673665245830
T:
luov6468330
664013626642584066453504
T:
bluegemss128
667039726675137866984317
T:
sphincss256harakarobust
714623287150465571555873
T:
redgemss128v2
923675619238984592397760
T:
gemss128v2
944970969450951194577843
T:
bluegemss128v2
114932334115042727115423901
T:
rainbow3cclassic683248
118716688119027613121148269
T:
rainbow3ccompres683248
121195488121355283121579806
T:
luov8086399
124507935124669235124708113
T:
rainbow3ccyclicc683248
143132542143573047143752944
T:
sphincss128shake256simple
201810313202655416204151897
T:
sflashv2
210180389210461492210473476
T:
sphincss192shake256simple
262981633263712382263742064
T:
sphincss128shake256robust
274873226274919014275154581
T:
sphincss256shake256simple
306249684306700310307479791
T:
redgemss192
309150048309625702310241341
T:
bluegemss192
311065824311215604311329853
T:
gemss192
337991075338191238338856619
T:
rainbow5cclassic963664
363398205363585460364025331
T:
rainbow5ccyclicc963664
363911355364383573366002433
T:
rainbow5ccompres963664
386932292387869126388423000
T:
sphincss192shake256robust
448475018448501270448543146
T:
gemss192v2
452398076452462152453226507
T:
bluegemss192v2
454019557454486848454986168
T:
redgemss192v2
512344672516531412516794107
T:
sphincss256shake256robust
902599957905576375927849882
T:
redgemss256
920900735924436511929187542
T:
gemss256
923123423924759988928885253
T:
bluegemss256
126679588212670611621271755974
T:
gemss256v2
127764438312806461271287360301
T:
bluegemss256v2
127625934012806921321294828914
T:
redgemss256v2
188396027818845973751886815883
T:
gravitysphincss
462173474047158253274846737992
T:
pqrsa15
287389197712875147735328778762382
T:
gravitysphincsl
575239361015758413696057591033218
T:
gravitysphincsm
Cycles to sign 59 bytes
25%50%75%system
191641930219741
T:
rainbowbinary256181212
373333775943748
T:
rainbowbinary16242020
599826011160205ed25519
891478959792042
T:
rainbow1aclassic363232
9929999967103121
T:
rainbow1acyclicc363232
108423109264110811
T:
sflashv2
182832182908182990
T:
ed448goldilocks
144924?185186?311536?dilithium2aes
144348?206684?379008?dilithium2
204705?273630?419882?dilithium3aes
279425?294296?568645?
T:
pass769
370053373763379336
T:
luov863256pc
228618?378202?544674?dilithium5aes
287417?378475?490649?dilithium3
196484?379124?747602?
T:
lattisigns512
401990406469408748
T:
rainbow3cclassic683248
409253412456417451
T:
falcon512tree
275191?510226?833723?
T:
qtesla1
530058532503538721
T:
rainbow3ccyclicc683248
427562?547401?734366?dilithium5
424954?616218?1239080?
T:
qtesla3f
345112?667579?1027975?
T:
pass863
787051791366794479
T:
falcon512dyn
834526846267855513
T:
falcon1024tree
470031?919238?1866448?
T:
qtesla3s
927566930570936656
T:
rainbow5cclassic963664
109073411058261113353
T:
luov890351pc
820986?1213291?1873058?
T:
qtesla1p
126565612741131281795
T:
donald2048
130892613203921331532
T:
rainbow5ccyclicc963664
138595713894741395703
T:
edons128k08n72nu8l4mu3
160439816121421623885
T:
falcon1024dyn
159761616184001638016
T:
luov8117404pc
325137632584043265626
T:
edons128ref
368083136818433835018
T:
luov863256
370997837125693715230picnicl1full
462603046281294629836picnicl1fs
3626159?4646588?7669531?
T:
qtesla3p
4039426?4680418?5358043?
T:
redgemss128v2
4166617?4992943?6315202?
T:
redgemss128
517859751847995208624
T:
mqdss48
591464759166785918872picnicl1ur
712024771225747127626picnicl3full
114123981144205711461973picnicl3fs
118200131182859511847139picnicl5full
120185501202116512028967
T:
luov890351
10236042?12124761?14405852?
T:
redgemss192v2
123818761239278113400478
T:
mqdss64
10973432?13502017?17446229?
T:
redgemss192
146481091465265014660360
T:
gravitysphincss
147332341474008914773133picnicl3ur
165049481651614716811718
T:
rainbow1acompres363232
175297771753840617546363picnic3l1
15722252?18426234?24704144?
T:
redgemss256
194087601942878619474840picnicl5fs
207679562078027821717455
T:
luov8117404
18630949?22123351?26597333?
T:
redgemss256v2
250774192508428325656106picnicl5ur
261343342618121026210147
T:
gravitysphincsm
311863363119771331221203
T:
gravitysphincsl
320945543212943032155157
T:
sphincsf128harakasimple
373187723733305737357777picnic3l3
376392453765619437691285
T:
sphincsf192harakasimple
402501894028907140319011
T:
sphincsf128harakarobust
430534314307885143181922
T:
luov4849242
492412704927275349324144
T:
sphincsf192harakarobust
495432034961892149761226
T:
sphincs256
631102676359680463902697picnic3l5
896372188971385489866394
T:
sphincsf256harakasimple
100584399100680941100771402
T:
rainbow3ccompres683248
114462940114565093114826481
T:
sphincsf256harakarobust
134080581134288038134602482
T:
luov6468330
147682395147907645148073609
T:
sphincsf128shake256simple
149195404149233183149287366
T:
pqrsa15
164737370164791184164836686
T:
picnic2l1fs
138783032?166210330?194613904?
T:
bluegemss128v2
155970638?187001616?218194892?
T:
bluegemss128
187232763187472684190785025
T:
sphincsf192shake256simple
241553005242190042243785058
T:
rainbow5ccompres963664
258344803258605496258810725
T:
sphincsf128shake256robust
269782979269945914270206231
T:
luov8086399
338437218338999365344073335
T:
sphincsf192shake256robust
405099980405391763405616620
T:
sphincsf256shake256simple
337837043?471160828?538505729?
T:
bluegemss192v2
488189901488640323488856441
T:
picnic2l3fs
429426605?515714416?602427394?
T:
bluegemss192
518445944518559719518680646
T:
sphincss128harakasimple
676869185677041116677553290
T:
sphincss128harakarobust
571995055?686423826?800707398?
T:
bluegemss256v2
729442940729848226730283744
T:
sphincsf256shake256robust
765616623765836239767149271
T:
sphincss256harakasimple
694948239?833887389?975263737?
T:
bluegemss256
993415419993574639994076898
T:
sphincss256harakarobust
102875837110290957011029233596
T:
picnic2l5fs
867369482?1039994019?1232871541?
T:
gemss128v2
967912898?1162062250?1355595158?
T:
gemss128
118294234511838991311184380117
T:
sphincss192harakasimple
159442796615948201721595490324
T:
sphincss192harakarobust
229504962322957856132297362105
T:
sphincss128shake256simple
275137630827649369603225466852
T:
gemss192v2
335503959733570838183365678344
T:
sphincss256shake256simple
2950345652?3539579306?4129579376?
T:
gemss192
394081955239433303943946880385
T:
sphincss128shake256robust
478080777548856269044906986356
T:
sphincss192shake256simple
4143402147?5764395938?5799930994?
T:
gemss256v2
598173585659836976816011000404
T:
sphincss256shake256robust
5130354040?6155885313?7185255400?
T:
gemss256
808052784480900076528103685107
T:
sphincss192shake256robust
Cycles to verify 59 bytes
25%50%75%system
163201640216729
T:
rainbowbinary256181212
292292972030182
T:
rainbowbinary16242020
327603463236408
T:
rainbow1aclassic363232
398304007540502
T:
lattisigns512
786117889479053dilithium2aes
860528726987688
T:
falcon512tree
102942103353103754
T:
qtesla1
102174103367104227
T:
falcon512dyn
108385108544108706dilithium2
107596109533114776
T:
gravitysphincss
116365116854117678dilithium3aes
127936128326128930
T:
sflashv2
126762130494135296
T:
luov863256pc
172689173762174907
T:
falcon1024tree
174829175710177130dilithium5aes
177024177592183868dilithium3
186183187260188284ed25519
208435208924209540
T:
qtesla3f
207806208983209630
T:
falcon1024dyn
213443213788214522
T:
qtesla3s
213872217992226372
T:
rainbow3cclassic683248
235457240790246144
T:
redgemss128v2
235802245399255870
T:
bluegemss128
248208254542266879
T:
gemss128
255088264318272622
T:
redgemss128
277921278425279099dilithium5
281259290478297385
T:
bluegemss128v2
289961297306302868
T:
gemss128v2
352153356868361344
T:
luov890351pc
356915359656367958
T:
pass769
436145439177445308
T:
pass863
467543469904471747
T:
edons128k08n72nu8l4mu3
467216474013482916
T:
gravitysphincsm
486634488812494033
T:
rainbow5cclassic963664
484075492830498523
T:
luov8117404pc
518884520773523381
T:
qtesla1p
591011593652595616
T:
ed448goldilocks
612073627390643245
T:
gemss192
626977632337643285
T:
gravitysphincsl
624466637105657813
T:
sphincss128harakasimple
634994656180674486
T:
redgemss192
639314657827684369
T:
bluegemss192
640480661669678009
T:
gemss192v2
682484694822708759
T:
bluegemss192v2
677036703145716361
T:
redgemss192v2
869972873414876311
T:
edons128ref
899949924325940149
T:
sphincss128harakarobust
922833941987952716
T:
sphincss192harakasimple
128185213029431316287
T:
sphincss256harakasimple
131087113294071357158
T:
gemss256
134843113645701422040
T:
bluegemss256
134672213782621401840
T:
bluegemss256v2
135322413879991451135
T:
redgemss256
137264913908881410444
T:
redgemss256v2
139503514302231450449
T:
gemss256v2
144638514606271488457
T:
sphincsf128harakasimple
146308814846531507136
T:
sphincss192harakarobust
148011314917141503800
T:
donald2048
164567816527691666518
T:
sphincs256
195911119901792023642
T:
sphincss256harakarobust
211893421494632178292
T:
sphincsf128harakarobust
232616723419262355281
T:
sphincsf192harakasimple
244542424531482459225
T:
qtesla3p
247532125130022537889
T:
sphincsf256harakasimple
295718829579222958876
T:
luov863256
297097529733252995338picnicl1full
334971133762653397671
T:
mqdss48
364217136767073721430
T:
sphincsf192harakarobust
373196337353863749441picnicl1fs
377589138187643860479
T:
sphincsf256harakarobust
398371740601964169828
T:
sphincss128shake256simple
483738048451424878274picnicl1ur
577390557829895786348picnicl3full
592536760325266113158
T:
sphincss192shake256simple
769124878902538083905
T:
sphincss128shake256robust
777773779432918094071
T:
sphincss256shake256simple
831012283990459015618
T:
mqdss64
9505433952082010117429picnicl3fs
960282696287789655312picnicl5full
966540797997289951654
T:
sphincsf128shake256simple
104918181050177810503559
T:
luov890351
113966051164508811839349
T:
sphincss192shake256robust
123264361233767112844695picnicl3ur
133277741333314713348774
T:
rainbow1acompres363232
133066081343162313545804
T:
rainbow1acyclicc363232
140385871405413214084459picnic3l1
149415141518629315390347
T:
sphincss256shake256robust
155332641566120815807844
T:
sphincsf192shake256simple
156880411588083416101283
T:
sphincsf256shake256simple
162472611628873016318544picnicl5fs
179682731797790217985190
T:
luov8117404
189416311914075119285854
T:
sphincsf128shake256robust
196240681963926619656833
T:
pqrsa15
212414362171128122278350picnicl5ur
295362042955103529590697picnic3l3
300248343003802730053254
T:
luov4849242
301405803033879630651165
T:
sphincsf192shake256robust
305726963084322731319696
T:
sphincsf256shake256robust
471893684732520747401429picnic3l5
677735956788988068110042
T:
picnic2l1fs
774656397750890377537637
T:
luov6468330
803442478040601081128762
T:
rainbow3ccyclicc683248
804828098053462881905743
T:
rainbow3ccompres683248
147797525147870186147923028
T:
luov8086399
154374099154550559154750041
T:
picnic2l3fs
180772818181322012181732378
T:
rainbow5ccyclicc963664
181404611181510435184598371
T:
rainbow5ccompres963664
271387156271658381274243568
T:
picnic2l5fs