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: riscv64; U54 (sifive,u54-mc); 2017 SiFive Freedom U540; 4 x 1000MHz; riscvunleashed000, supercop-20240107

[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: mqqsig160, mqqsig192, mqqsig224, mqqsig256, ntrumls401x, ntrumls439x, ntrumls593x, ntrumls743x, qtesla128, qtesla192, qtesla256

Cycles to generate a key pair
25%50%75%system
759981763838780408ed25519
158589915900781609496dilithium2
280007528132402816901dilithium3
281460828209392836343dilithium2aes
456247445666804577744dilithium5
496615249892065002578dilithium3aes
593995359523175963370
T:
mqdss48
852450485458988572798dilithium5aes
7853998?10117282?12692152?
T:
qtesla1
139923461400533114015686
T:
mqdss64
146821941478619414909381
T:
donald2048
15634544?22567450?29461506?
T:
qtesla3f
282000432820558728222512
T:
sphincsf128sha256simple
23922945?30994813?41619735?
T:
qtesla1p
22745688?36565659?43758939?
T:
qtesla3s
411973514121632841251298
T:
sphincsf192sha256simple
418997004191225841953796
T:
sphincsf128harakasimple
425135564252022642528269
T:
sphincsf128shake256simple
547007005471335954771741
T:
sphincsf128sha256robust
617419466176137961850336
T:
sphincsf192harakasimple
623477196237839262403870
T:
sphincsf192shake256simple
701726287018716370231711
T:
sphincs256
712069077123178671266801
T:
sphincsf128harakarobust
804266528044329280493218
T:
sphincsf128shake256robust
812125778123227081280955
T:
sphincsf192sha256robust
75064162?85694824?108860476?
T:
falcon512dyn
79955870?87281396?105214942?
T:
falcon512tree
105585222105617361105667857
T:
sphincsf192harakarobust
108653089108678132108752682
T:
sphincsf256sha256simple
119176328119200743119245998
T:
sphincsf192shake256robust
164458659164499682164539344
T:
sphincsf256harakasimple
164609227164641265164677288
T:
sphincsf256shake256simple
177227128?207044693?252223502?
T:
qtesla3p
209530026223693722249720306
T:
falcon1024dyn
208115954225161920259823058
T:
falcon1024tree
281630377281665665281723901
T:
sphincsf256harakarobust
292777582292942100294921996
T:
rainbow1aclassic363232
293595652293651408293717877
T:
sphincsf256sha256robust
312596622312717416315706952
T:
rainbow1acompres363232
312927906313030674313140682
T:
rainbow1acyclicc363232
316031338316092864316219316
T:
sphincsf256shake256robust
902482637902552265902701673
T:
sphincss128sha256simple
118936027211894984681189662552
T:
sflashv2
135875913813589492821359192362
T:
sphincss128shake256simple
137293621013731161681373302647
T:
sphincss128harakasimple
173860549517387927491738941871
T:
sphincss256sha256simple
174999222917501765491750384737
T:
sphincss128sha256robust
334091586833425399203345710520
T:
rainbow3cclassic683248
362815636236288038283630533700
T:
rainbow3ccompres683248
370556675837079878363709704888
T:
rainbow3ccyclicc683248
913190928091352350369150333256
T:
rainbow5cclassic963664
998281200099856552289990519592
T:
rainbow5ccompres963664
102100798541021422406210218257250
T:
rainbow5ccyclicc963664
Cycles to sign 59 bytes
25%50%75%system
536744537714543352
T:
sflashv2
787185789003796864ed25519
277602427852912790683
T:
rainbow1acyclicc363232
280523428114182836471
T:
rainbow1aclassic363232
296560229955463019291
T:
falcon512tree
480423548356844852678
T:
falcon512dyn
2638711?5349033?8834069?
T:
qtesla1
4142522?5661466?9220152?dilithium2aes
627675363157516357982
T:
falcon1024tree
4132613?6349768?10479886?dilithium2
4127045?8758482?14670098?
T:
qtesla3f
102600311027957410339066
T:
falcon1024dyn
6661314?10974269?17639568?dilithium3
5653422?11894126?18865934?
T:
qtesla1p
8757067?12654855?18380747?dilithium3aes
9892397?13770542?17590347?dilithium5
145506981467606914763436
T:
donald2048
8111242?16414885?28989438?
T:
qtesla3s
13901253?16962724?22543300?dilithium5aes
241229612412886824157620
T:
rainbow3cclassic683248
243174242432242524339417
T:
rainbow3ccyclicc683248
31576023?43415397?78633915?
T:
qtesla3p
518811545189516851926146
T:
rainbow5cclassic963664
520994385211916752174380
T:
rainbow5ccyclicc963664
164995850165110594165517392
T:
rainbow1acompres363232
330535480330584206330624034
T:
mqdss48
886379779886996717887613724
T:
sphincsf128sha256simple
111653701011166264721116840348
T:
mqdss64
116249573011629090201163719864
T:
sphincsf192sha256simple
133897355913396029661340696225
T:
sphincsf128shake256simple
136463123613648758771365108296
T:
sphincs256
154050475315412256231542084439
T:
sphincsf128harakasimple
163792105416388419181639889188
T:
sphincsf128sha256robust
170059322817010676021701898370
T:
sphincsf192shake256simple
179571393717968746211797945749
T:
sphincsf192harakasimple
187335898118740017221874755156
T:
rainbow3ccompres683248
224855197122498047432251138838
T:
sphincsf192sha256robust
242185128124240848582425897215
T:
sphincsf128shake256robust
250295655125046886062507441207
T:
sphincsf128harakarobust
262756479426280399232628808848
T:
sphincsf256sha256simple
307493115830763663853078998311
T:
sphincsf192harakarobust
318180207231839716803186373939
T:
sphincsf192shake256robust
376398494137653706443767086096
T:
sphincsf256shake256simple
445001102444511974464451824090
T:
sphincsf256harakasimple
512766355051292789545132836766
T:
rainbow5ccompres963664
685266593768549584876855991838
T:
sphincsf256sha256robust
700028012770034043357004901457
T:
sphincsf256shake256robust
744323959874449319547446444498
T:
sphincsf256harakarobust
133317183541333242794613334502214
T:
sphincss128sha256simple
201220432232012297254320126554606
T:
sphincss128shake256simple
223969070382239978344122402078678
T:
sphincss256sha256simple
242165905232421953018724223796340
T:
sphincss128sha256robust
246905025792469330734224695148243
T:
sphincss128harakasimple
Cycles to verify 59 bytes
25%50%75%system
368502375760376378
T:
falcon512tree
471297478945479920
T:
falcon512dyn
657467658506663261
T:
sflashv2
777013783529788646
T:
falcon1024tree
100081910020671012222
T:
falcon1024dyn
122336912514901291794
T:
rainbow1aclassic363232
126632612809241298846
T:
qtesla1
184163218457601865416dilithium2
222878322409052254018ed25519
282915428425642861488
T:
qtesla3f
283591228426072854885dilithium2aes
286657828808912894144
T:
qtesla3s
305778630593053061142dilithium3
440145644128514423190
T:
qtesla1p
485371848687854900445dilithium3aes
495579849578544969959dilithium5
787694178973007913616
T:
rainbow3cclassic683248
845126184690028481911dilithium5aes
148340311529873815672137
T:
sphincss128sha256simple
162050761636727016493954
T:
sphincs256
163774271640250016554443
T:
rainbow5cclassic963664
169776831709958717242569
T:
donald2048
214345322148878221530606
T:
qtesla3p
220856602250486922788854
T:
sphincss128shake256simple
269149602732391827890495
T:
sphincss128harakasimple
298929103056158031134090
T:
sphincss128sha256robust
307259563109554931597545
T:
sphincss256sha256simple
365098813680481037447388
T:
sphincsf128sha256simple
536990685459997655603796
T:
sphincsf128shake256simple
576294365773504957815267
T:
rainbow1acyclicc363232
578502495793168457997008
T:
rainbow1acompres363232
596065665989326160365830
T:
sphincsf192sha256simple
602221786065549661398538
T:
sphincsf128harakasimple
605003066094470161681203
T:
sphincsf256sha256simple
732191367416185975063015
T:
sphincsf128sha256robust
860684218687529087841814
T:
sphincsf192shake256simple
870367398807853989081465
T:
sphincsf256shake256simple
938848779469026995700000
T:
sphincsf192harakasimple
100642308101536518102517146
T:
sphincsf256harakasimple
104418279105848686107629454
T:
sphincsf128shake256robust
104180178106300599108182038
T:
sphincsf128harakarobust
122243444123438292124395450
T:
sphincsf192sha256robust
168373029170897874172017235
T:
sphincsf192harakarobust
169147590171109525173099073
T:
sphincsf192shake256robust
171532045173199422175972336
T:
sphincsf256shake256robust
172904856174623959177131723
T:
sphincsf256sha256robust
178434222180291670181608716
T:
sphincsf256harakarobust
240697490243564299246321766
T:
mqdss48
343443024344546006346264159
T:
rainbow3ccyclicc683248
354252942354673940354970050
T:
rainbow3ccompres683248
776410596777100011777946648
T:
rainbow5ccyclicc963664
798011796798432991799832838
T:
rainbow5ccompres963664
817201246827516610835467635
T:
mqdss64