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; Comet Lake (806ec); 2019 Intel Core i3-10110U; 2 x 2100MHz; cubi10, supercop-20240625

[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
300931203362picnic3l1
314032933370picnicl1full
420443714475picnicl3full
425944114720picnic3l3
466346914732picnicl1ur
468547024739picnicl1fs
542555065984picnic3l5
550456626120picnicl5full
563056655770
T:
picnic2l1fs
9877996610080picnicl3ur
99911002210072picnicl3fs
100551012310242
T:
picnic2l3fs
137121379313980picnicl5ur
141521423414436picnicl5fs
143921451814748
T:
picnic2l5fs
450304516045429ed25519
481864842348922T!!!dilithium2aes
783327885479110dilithium3aes
799708011580494T!!!dilithium2
100872101229102678
T:
ecdonaldp256
105723106263109809
T:
donald512
115975116416116828dilithium5aes
146747147063147546T!!!dilithium3
152521152704153074
T:
ed448goldilocks
163769164249165887
T:
ecdonaldp224
210394211413212976
T:
pass769
222241222772223625T!!!dilithium5
240880242258243414
T:
pass863
251291252496256542
T:
donald1024
685829686295686732
T:
sphincsf128harakasimple
700845709745719308
T:
ecdonaldp160
710803711972719062
T:
ecdonaldp521
716906720967723967
T:
edons128k08n72nu8l4mu3
777302778146782077
T:
donald2048
792612793304793982
T:
sphincsf128harakarobust
807135808818809973
T:
mqdss48
808137812022818282
T:
ecdonaldk163
839214842859846063
T:
ecdonaldb163
848647855924864618
T:
ecdonaldp192
451002?930381?1451703?haetae2
101830510205501023919
T:
sphincsf192harakasimple
109206610945231099085
T:
ecdonaldk233
112238211280881134599
T:
ecdonaldb233
124852412524431302578
T:
sphincsf192harakarobust
1191796?1576885?1965824?
T:
qtesla1
677356?1774380?3994917?haetae3
181645618218051831008
T:
mqdss64
181581718271361834998
T:
ecdonaldk283
190422019097431922345
T:
ecdonaldb283
1077414?2012292?4190149?haetae5
222033722251092236635
T:
edons128ref
249404724983732501955
T:
sphincs256
265930526606022663960
T:
sphincsf256harakasimple
299648830060183041250
T:
ecdonaldk409
310155431086783119566
T:
ecdonaldp384
315412331643253181667
T:
ecdonaldb409
348645934889623491661
T:
sphincsf256harakarobust
2665052?3929662?5198748?
T:
qtesla3f
403493340404634046822
T:
sphincsf128shake256simple
498095150086625018566
T:
luov863256
4711530?5425207?6850510?
T:
qtesla1p
591181259170035976028
T:
sphincsf192shake256simple
3995996?6584220?10449326?
T:
qtesla3s
658891666014596614187
T:
ecdonaldk571
703198770428127051139
T:
ecdonaldb571
704976470653567074343
T:
mqsignlr2567246
709023471013347116490
T:
luov863256pc
737174273743267378994
T:
sphincsf128shake256robust
870870887219129666515
T:
rainbow1aclassic363232
932529893353569355778
T:
rainbow1acyclicc363232
100306971004571810058507
T:
rainbow1acompres363232
101664861020320710232732
T:
rainbowbinary256181212
108826571088604910892683
T:
sphincsf192shake256robust
120189711203737612077873
T:
mqsignrr2567246
159929111599595816073709
T:
sphincsf256shake256simple
12715691?16051601?26214367?
T:
rwb0fuz1024
193218011937884819476522
T:
luov4849242
180822311962373021545085
T:
falcon512dyn
187583731978248820840872
T:
falcon512tree
198242551985534119967740
T:
luov890351
15831626?23981919?45262435?
T:
ronald512
243223802433200324361536
T:
sphincss128harakasimple
276412782772800127805470
T:
sphincss128harakarobust
286953422870109328705631
T:
sphincsf256shake256robust
319902553202344032076077
T:
mqsignlr25611272
324346713244181732471546
T:
sphincss192harakasimple
329432883298288733071241
T:
luov890351pc
333480453341686033540557
T:
luov8117404
30822458?38124646?43029885?
T:
qtesla3p
398211133983104539852677
T:
sphincss192harakarobust
441470004416223244183779
T:
sphincss256harakasimple
457455754633644947186328
T:
rainbowbinary16242020
36558603?49989275?72510720?
T:
ronald768
505551225069846350803098
T:
mqsignrr25611272
509723935105934651152032
T:
rainbow3cclassic683248
539681015404498354170292
T:
rainbow3ccompres683248
542308395427531154297569
T:
rainbow3ccyclicc683248
553896935548313555792689
T:
sphincss256harakarobust
566995605680126456938638
T:
luov8117404pc
559556285689717259162070
T:
falcon1024tree
569999035991066064712116
T:
falcon1024dyn
605236736056936860643565
T:
gemss128
618839206192800961989292
T:
bluegemss128
627845996280610362832617
T:
redgemss128
642161716440535064573281
T:
luov6468330
684632386847385468492319
T:
gemss128v2
708904437090873571002924
T:
redgemss128v2
734835347350687673695324
T:
bluegemss128v2
64510610?76023248?123173407?
T:
ronald1024
798400507997061880035036
T:
mqsignlr25614896
107639740107693151107767496mqsignlr2567246
120679627120928820121223748
T:
luov8086399
122254718122600063122752150
T:
mqsignrr25614896
125192805125706076126042889
T:
rainbow1b
127023684127072728127099135
T:
sphincss128shake256simple
148648843148676038148723690mqsignrr2567246
153590657153718967154508381
T:
rainbow1c
189297904189427722189593136
T:
rainbow5cclassic963664
191515492191547751191598703
T:
sphincss192shake256simple
201478825201606777201763150
T:
rainbow5ccyclicc963664
203512066203709695203847800
T:
rainbow5ccompres963664
209238990209275885209514144
T:
sflashv2
234667059234694999235277969
T:
sphincss128shake256robust
158179789?237900063?449261109?
T:
ronald1536
253749485253768877253821762
T:
sphincss256shake256simple
294592098295277589295414942
T:
gemss192
295972829296110844296601604
T:
bluegemss192
312017270312966094313471805
T:
redgemss192
350283424350632113350672804
T:
sphincss192shake256robust
371871289372021867372130998mqsignlr25611272
393916320394294646394867467
T:
gemss192v2
399793000400334198401439932
T:
bluegemss192v2
401252802401631242401800923
T:
redgemss192v2
262174304?451082518?675816113?
T:
ronald2048
457128944457684462460441823
T:
sphincss256shake256robust
527428636528075513528158249mqsignrr25611272
674283330690340616702541420
T:
gui184
823152728823491933823656290mqsignlr25614896
856463432857763762859154120
T:
rainbow3b
601089636?863018061?1682714804?
T:
ronald3072
896215042903213926905611170
T:
gemss256
917839528923396167944299229
T:
bluegemss256
927192146930710285932828002
T:
redgemss256
970865514971109108971248283
T:
rainbow1a
108198677510821575661084304361
T:
gravitysphincss
109203480710930795011100046050
T:
gemss256v2
110959311511105790731111927049
T:
redgemss256v2
111111640211151551661120928690
T:
bluegemss256v2
118566771911862606501187832813mqsignrr25614896
125749739012591856571261284943
T:
rainbow3c
1487385742?2752442316?4128256214?
T:
ronald4096
338585286633903626463392749334
T:
rainbow6b
381683900138855069263942221801
T:
pqrsa15
414035206241418566914143636137
T:
rainbow5c
510191940351498200045227430603
T:
gui312
650078618965025508956504504491
T:
rainbow6a
746643411274712236987471994473
T:
rainbow4a
173433424671734376860617344282523
T:
gravitysphincsl
222525157622234297811822521282998
T:
gui448
346444729003464890832534737582076
T:
gravitysphincsm
Cycles to sign 59 bytes
25%50%75%system
151181535915916
T:
rainbowbinary256181212
307313172133849
T:
rainbowbinary16242020
476124768647746ed25519
548805512356031
T:
rainbow1a
606136130562263
T:
rainbow1acyclicc363232
632066386372460
T:
rainbow1aclassic363232
950089653197835
T:
mqsignlr2567246
976889848399001
T:
rainbow1c
101631102403104059
T:
sflashv2
80172?109626?194144?T!!!dilithium2aes
127605129801131073
T:
mqsignrr2567246
139892140405140726
T:
ecdonaldp256
160196160420160572
T:
ed448goldilocks
117497?186490?273871?T!!!dilithium2
219975220503221145
T:
rainbow1b
217609220946225060
T:
donald512
228198229006231066
T:
ecdonaldp224
234724237197239086
T:
mqsignlr25611272
158170?247635?380801?dilithium3aes
164975?265423?340682?dilithium5aes
289311293093295452
T:
rainbow3c
330518331702333144
T:
rainbow3cclassic683248
227196?335430?446355?T!!!dilithium3
340841342661344399
T:
mqsignrr25611272
341042342934343845
T:
rainbow3ccyclicc683248
347599349514351283
T:
luov863256pc
281483?354920?568480?T!!!dilithium5
229693?369963?635350?
T:
qtesla1
367092370953374244
T:
donald1024
397505399587405342
T:
falcon512tree
401491406490413393
T:
ronald512
447491451161453489
T:
mqsignlr25614896
228873?452729?664688?
T:
pass769
264971?525200?783352?
T:
pass863
531880533356534805
T:
rainbow6a
535292535787536569mqsignlr2567246
590935591939595029
T:
rainbow5c
629258632171636115
T:
mqsignrr25614896
685159686095688165
T:
rainbow3b
689342700492707738
T:
ronald768
737350740473743491
T:
ecdonaldp160
743679744561748337
T:
rainbow4a
455323?757506?1273354?
T:
qtesla3f
776042781311787597
T:
falcon512dyn
793146798882805271
T:
falcon1024tree
807605815915829147
T:
rwb0fuz1024
818462821269824703
T:
rainbow5cclassic963664
843993846781850928
T:
ecdonaldk163
845102851982862309
T:
ronald1024
855791857632859823
T:
rainbow5ccyclicc963664
872836874662880506
T:
ecdonaldb163
892991896079899790
T:
ecdonaldp192
902212907263912806
T:
donald2048
101418010163251021290
T:
luov890351pc
103847510401531042204mqsignrr2567246
108127710829131087657
T:
ecdonaldp521
597080?1084832?1580764?haetae2
763228?1125395?1758683?
T:
qtesla1p
114755911506361155555
T:
ecdonaldk233
117867411810341185283
T:
ecdonaldb233
119422111988651202256
T:
edons128k08n72nu8l4mu3
120155812033171205314mqsignlr25611272
149524214982891502349
T:
luov8117404pc
1176310?1518566?2197334?haetae3
155962715685251580192
T:
falcon1024dyn
161230916154281619046
T:
rainbow6b
756058?1680723?2902471?
T:
qtesla3s
966121?1719595?3238512?haetae5
190619519146331924524
T:
ecdonaldk283
199964320037242010333
T:
ecdonaldb283
207931420814732084934mqsignrr25611272
228452522999682358349
T:
ronald1536
238820623894642394097mqsignlr25614896
317857531882563197322
T:
edons128ref
318494832029453224552
T:
ecdonaldk409
324474132547393268974
T:
ecdonaldp384
330232733056063307739
T:
luov863256
333246633445923363656
T:
ecdonaldb409
339537334154993489721
T:
ronald2048
353860635463883563546picnicl1full
355434635579813563445mqsignrr25614896
388391240518114747007
T:
redgemss128
3484176?4193691?4910793?
T:
redgemss128v2
3188116?4220486?5500233?
T:
qtesla3p
437306643807424395429picnicl1fs
511688851232805127664
T:
mqdss48
557057955741485578400picnicl1ur
619755662033626217133
T:
rainbow1acompres363232
681201368147316818728picnicl3full
696325569696556980983
T:
ecdonaldk571
743394474437617481994
T:
ecdonaldb571
867849587370928978095
T:
ronald3072
7783043?9031745?12898257?
T:
redgemss192v2
939544294050559573365
T:
gravitysphincss
8225005?9819640?12206322?
T:
redgemss192
109593871097265110982952
T:
luov890351
112712991127656711290482picnicl5full
114880341150773411528543picnicl3fs
125189341253258313033493
T:
mqdss64
146431971465579514677436picnicl3ur
12464947?15309242?18144159?
T:
redgemss256
166016801667361416794876
T:
gravitysphincsm
170095071701519917024487picnic3l1
14707464?17374944?20198926?
T:
redgemss256v2
178166681786385918503312
T:
ronald4096
189897921902409519050554
T:
luov8117404
196033341962117719644149picnicl5fs
197736971996469620059939
T:
gravitysphincsl
7888323?20883000?39329512?
T:
gui184
243075752432206524351103
T:
sphincsf128harakasimple
247459162482030124848392picnicl5ur
292040802926129729304427
T:
sphincsf128harakarobust
296163002965706029832405
T:
sphincsf192harakasimple
357910003581691835877516picnic3l3
361200613615178636197508
T:
rainbow3ccompres683248
381011893817200839291031
T:
sphincsf192harakarobust
431507034320490343426126
T:
sphincs256
435421534356351443609096
T:
luov4849242
609731696104305061433234picnic3l5
674972026753305867767982
T:
sphincsf256harakasimple
909735719104303091102958
T:
sphincsf256harakarobust
989012009895703899206729
T:
rainbow5ccompres963664
120173392120272007120318113
T:
pqrsa15
132116390132270423132401452
T:
sphincsf128shake256simple
111727614?134109001?159163555?
T:
bluegemss128v2
137112084137302341138992958
T:
luov6468330
152518814152565894152598382
T:
picnic2l1fs
117987564?164667850?188061444?
T:
bluegemss128
168133447168363076168554789
T:
sphincsf192shake256simple
230483310230744077231225509
T:
sphincsf128shake256robust
275071934275351403275493145
T:
luov8086399
300212854?301598994?421816464?
T:
bluegemss192
303157203303369689303663597
T:
sphincsf192shake256robust
276426306?331260620?386709286?
T:
bluegemss192v2
376043273376868365378154135
T:
sphincsf256shake256simple
445403530445548065446170454
T:
sphincss128harakasimple
476980966477085308477198528
T:
picnic2l3fs
527739155528809833529268613
T:
sphincss128harakarobust
330527122?529678293?992972471?
T:
gui312
455116853?545822110?634705509?
T:
bluegemss256v2
463758317?558577556?743316577?
T:
bluegemss256
609294393609518822609832645
T:
sphincss256harakasimple
651814472652162607652593219
T:
sphincsf256shake256robust
789192826789475795789920081
T:
sphincss256harakarobust
698028127?837616035?995891022?
T:
gemss128v2
885816100886160003887492930
T:
sphincss192harakasimple
100690570610069850761008148828
T:
picnic2l5fs
735720393?1029161898?1176814996?
T:
gemss128
127212470112728166511273573276
T:
sphincss192harakarobust
203920653120411490542041393967
T:
sphincss128shake256simple
1939249680?2325902291?3101358688?
T:
gemss192v2
2455214609?2456192709?3273665072?
T:
gemss192
311006891431114296373112018593
T:
sphincss256shake256simple
352059641035271650813528794497
T:
sphincss128shake256robust
3321520185?3991196655?5275933590?
T:
gemss256v2
3397555799?4075093629?4782012367?
T:
gemss256
437532656843764476794377302355
T:
sphincss192shake256simple
533004947053318348435368501639
T:
sphincss256shake256robust
729335547173030410037304253440
T:
sphincss192shake256robust
2965393198?7442552263?13346836518?
T:
gui448
Cycles to verify 59 bytes
25%50%75%system
677469317080
T:
rwb0fuz1024
127821287912980
T:
rainbowbinary256181212
240452447524894
T:
rainbowbinary16242020
264692691627313
T:
ronald512
284072870528916
T:
ronald768
296713016531530
T:
rainbow1aclassic363232
323403304933523
T:
ronald1024
386053997441255
T:
rainbow1a
424564293443978
T:
ronald1536
565065687157569
T:
ronald2048
617236190762086T!!!dilithium2aes
709837324476283
T:
gravitysphincss
739747520775906
T:
mqsignlr2567246
758527656777333
T:
mqsignrr2567246
764727746578628
T:
falcon512tree
759367786779315
T:
rainbow1c
881458831888526dilithium3aes
905829098792069
T:
qtesla1
913079139591645T!!!dilithium2
913689188693458
T:
ronald3072
968629800398908
T:
falcon512dyn
123353123667124283haetae2
120262126347128358
T:
luov863256pc
130240130470130697
T:
sflashv2
130789131002131338dilithium5aes
136641138302139339
T:
ronald4096
139058139702141427
T:
donald512
147073147476147799T!!!dilithium3
152359153127154420
T:
rainbow3cclassic683248
155106155732156429
T:
falcon1024tree
162591163446164296ed25519
176483181601187410
T:
gui184
183755184850186012
T:
qtesla3s
184711185301186376
T:
qtesla3f
193610194020194604haetae3
195629196754197355
T:
falcon1024dyn
206646206839207223
T:
rainbow1b
232012232386232899T!!!dilithium5
232512233179234140haetae5
226606237109247700
T:
gemss128v2
228074238969244048
T:
bluegemss128v2
239978246733257674
T:
redgemss128v2
250958252210253381
T:
mqsignrr25611272
252544253635254678
T:
mqsignlr25611272
256715263177268597
T:
bluegemss128
256359266903271471
T:
gemss128
271068279340285789
T:
redgemss128
279978282164285670
T:
donald1024
289180290347291499
T:
ecdonaldp256
290465295938299044
T:
gravitysphincsm
300872302526303768
T:
pass769
301212302708305841
T:
rainbow4a
308998312469314150
T:
luov890351pc
335163338200340719
T:
rainbow3c
345581348270351070
T:
pass863
374140375515376512
T:
rainbow5cclassic963664
387994392902399286
T:
gravitysphincsl
410755413040414946
T:
edons128k08n72nu8l4mu3
433931434562435808
T:
ecdonaldp224
441892443717445615
T:
qtesla1p
490666492672493758
T:
mqsignrr25614896
467901493888495196
T:
mqsignlr25614896
483155494310504582
T:
sphincss128harakasimple
442125507114511110
T:
luov8117404pc
505689507363510036
T:
ed448goldilocks
584446596022616563
T:
gemss192
600626614738638424
T:
bluegemss192
640552648088660316
T:
redgemss192
692472693679695521
T:
rainbow3b
684020700706717396
T:
gemss192v2
735804739121743048
T:
rainbow6a
738172749622761766
T:
sphincss192harakasimple
734218752271766574
T:
bluegemss192v2
746891752697759397
T:
edons128ref
738062753994766639
T:
sphincss128harakarobust
752888758695767256
T:
ecdonaldp160
767310778339791647
T:
redgemss192v2
779121786049793683
T:
donald2048
811230815385820533
T:
rainbow5c
881938887025894432
T:
ecdonaldp192
855608?920754?1070099?
T:
gui312
961922962207962945mqsignrr2567246
980668981783982590mqsignlr2567246
9786129906751002034
T:
sphincss256harakasimple
102334410532261184708
T:
gemss256v2
109417211121951175089
T:
redgemss256v2
109741311133651128540
T:
sphincss192harakarobust
110449211329341195748
T:
bluegemss256v2
114229311580071179331
T:
sphincsf128harakasimple
114316311794511319144
T:
gemss256
125415212999881374682
T:
redgemss256
124064813066321378097
T:
bluegemss256
131298213183361330331
T:
sphincs256
163540516411691644292
T:
ecdonaldk163
164134716607471691387
T:
sphincss256harakarobust
168429416938641700436
T:
ecdonaldb163
172832417423371773223
T:
sphincsf128harakarobust
176819017814291789171
T:
rainbow6b
187197618845701900935
T:
sphincsf192harakasimple
197627319781621980685mqsignrr25611272
199329219941651995384mqsignlr25611272
197781820005282015368
T:
sphincsf256harakasimple
205150620572052064323
T:
ecdonaldp521
210063421129882120427
T:
qtesla3p
221951222243492230524
T:
ecdonaldk233
228999522958242304361
T:
ecdonaldb233
240530424251672470998
T:
gui448
264421326451482648714
T:
luov863256
268385427096022734490
T:
sphincsf192harakarobust
272336227343562744181
T:
ecdonaldp384
281664328229142834830picnicl1full
310696231123213168766mqsignrr25614896
313067231356063138412mqsignlr25614896
315316831867643227849
T:
sphincsf256harakarobust
323668532426333249143
T:
rainbow1acompres363232
327137632873923297648
T:
mqdss48
324426833068023390009
T:
sphincss128shake256simple
330835233179293331809
T:
rainbow1acyclicc363232
356497535755983582835picnicl1fs
371245437172783722035
T:
ecdonaldk283
390108239066033913521
T:
ecdonaldb283
457496245868794606059picnicl1ur
501937651037635184497
T:
sphincss192shake256simple
554255455481965553802picnicl3full
618718162078916222932
T:
ecdonaldk409
639956364807506614475
T:
sphincss256shake256simple
649823465102796586550
T:
ecdonaldb409
652625166608966816296
T:
sphincss128shake256robust
801443781384728265629
T:
sphincsf128shake256simple
845802585422318771862
T:
mqdss64
914387191681129175687picnicl5full
933013193350099340646
T:
luov890351
957465097094739943398
T:
sphincss192shake256robust
972312697429839748198picnicl3fs
123920361240575012454879picnicl3ur
125926831276125912971675
T:
sphincss256shake256robust
129466251307200513250659
T:
sphincsf192shake256simple
132233701323260413242735picnic3l1
131306181325632013359608
T:
sphincsf256shake256simple
135877421360723413655134
T:
ecdonaldk571
145062581456630714602597
T:
ecdonaldb571
155772111573975716001269
T:
sphincsf128shake256robust
160956601612285916159271
T:
luov8117404
168587611687516316899453
T:
pqrsa15
171060451713751917164943picnicl5fs
190846131915497119192690
T:
rainbow3ccompres683248
193095061946130219870844
T:
rainbow3ccyclicc683248
214876362156566321607704picnicl5ur
250999662523031825554568
T:
sphincsf192shake256robust
257346622603115126306808
T:
sphincsf256shake256robust
280963722811446828133009picnic3l3
298012422980860830024723
T:
luov4849242
431900684322106843305920
T:
rainbow5ccyclicc963664
434074994343298343478268
T:
rainbow5ccompres963664
449708094503596445390823picnic3l5
657924656587592765923194
T:
picnic2l1fs
828540468291256083776475
T:
luov6468330
150822502150933336151037589
T:
picnic2l3fs
151694512151745246151819628
T:
luov8086399
268261152268403419268539859
T:
picnic2l5fs