Back to .md Directory

Speed Evaluation

Presents cycle counts, memory usage, and code size for Kyber and NewHope KEM variants on an ARM Cortex-M4 target.

May 2, 2026
0 downloads
3 views
eval
View source

What this file does

Presents cycle counts, memory usage, and code size for Kyber and NewHope KEM variants on an ARM Cortex-M4 target.

When to use it

  • Comparing performance of different KEM implementations on constrained hardware
  • Selecting a parameter set or optimisation strategy for your own benchmarks
  • Validating that your ported implementation matches expected cycle counts

Assumes this stack

ARM Cortex-M4

Speed Evaluation

SchemeImplementationKey Generation [cycles]Encapsulation [cycles]Decapsulation [cycles]
Kyber1024-139414816037761522900
Kyber1024OS141059116039881523175
Kyber1024SSC138151416037721595530
Kyber1024SSC/OS139717416039611595091
Kyber1024SSC/UR137862516008031588478
Kyber1024SSC/UR/OS139283716003661587419
Kyber1024UR139030715998581516783
Kyber1024UR/OS140585916000021517002
Kyber512-452919586380542576
Kyber512OS461693586754543332
Kyber512SSC446876586403579594
Kyber512SSC/OS454509586621579299
Kyber512SSC/UR445118584425575396
Kyber512SSC/UR/OS452423584726575183
Kyber512UR451149584390539350
Kyber512UR/OS458989584242539586
Kyber768-8602271031603967124
Kyber768OS8721401030764966848
Kyber768SSC85022810306791021439
Kyber768SSC/OS86261010308511021611
Kyber768SSC/UR84769510279981015600
Kyber768SSC/UR/OS85954710282541015863
Kyber768UR8572381028466962276
Kyber768UR/OS8690241028112962484
NewHope1024-111739816872721612960
NewHope1024OS115733116893751614804
NewHope1024UR111455716824151606700
NewHope1024UR/OS115336316845341608561
NewHope512-561161865243820130
NewHope512OS578850865856820742
NewHope512UR559339862410816595
NewHope512UR/OS576709863278817461
NewHope-Compact1024-6585811022903940023
NewHope-Compact1024OS6862551025503941076
NewHope-Compact1024SSC64820610227731030809
NewHope-Compact1024SSC/OS67581110249101033971
NewHope-Compact1024SSC/UR64552810182351023308
NewHope-Compact1024SSC/UR/OS67206110203541026452
NewHope-Compact1024UR6557231018185932715
NewHope-Compact1024UR/OS6822711020713933696
NewHope-Compact512-335991531453484416
NewHope-Compact512OS349692532423484945
NewHope-Compact512SSC330826531282526805
NewHope-Compact512SSC/OS344599532323528422
NewHope-Compact512SSC/UR329461528972522997
NewHope-Compact512SSC/UR/OS342670529978524579
NewHope-Compact512UR334536529052480530
NewHope-Compact512UR/OS347818530131481166
NewHope-Compact768-501885782315717250
NewHope-Compact768OS524181784117718950
NewHope-Compact768SSC494364782471786664
NewHope-Compact768SSC/OS516660783986788759
NewHope-Compact768SSC/UR491612777413778473
NewHope-Compact768SSC/UR/OS513198779033780674
NewHope-Compact768UR499259777383710642
NewHope-Compact768UR/OS520740779185712339

Memory Evaluation

SchemeImplementationKey Generation [bytes]Encapsulation [bytes]Decapsulation [bytes]
Kyber1024-406433843384
Kyber1024OS377637443760
Kyber1024SSC406433843384
Kyber1024SSC/OS374433843384
Kyber1024SSC/UR406433843384
Kyber1024SSC/UR/OS374433843384
Kyber1024UR406433843384
Kyber1024UR/OS377637443760
Kyber512-289623442360
Kyber512OS239223442360
Kyber512SSC289623442360
Kyber512SSC/OS239223442360
Kyber512SSC/UR289623442360
Kyber512SSC/UR/OS239223442360
Kyber512UR289623442360
Kyber512UR/OS239223442360
Kyber768-355228562864
Kyber768OS324028562864
Kyber768SSC354428482856
Kyber768SSC/OS323228482856
Kyber768SSC/UR354428482856
Kyber768SSC/UR/OS323228482856
Kyber768UR355228562864
Kyber768UR/OS324028562864
NewHope1024-492049044920
NewHope1024OS307249044920
NewHope1024UR492049044920
NewHope1024UR/OS307249044920
NewHope512-288028642880
NewHope512OS205628642880
NewHope512UR288028642880
NewHope512UR/OS205628642880
NewHope-Compact1024-502450245024
NewHope-Compact1024OS317650245024
NewHope-Compact1024SSC503250245024
NewHope-Compact1024SSC/OS318350235023
NewHope-Compact1024SSC/UR503250245024
NewHope-Compact1024SSC/UR/OS318450245024
NewHope-Compact1024UR502450245024
NewHope-Compact1024UR/OS317650245024
NewHope-Compact512-298429842984
NewHope-Compact512OS216029842984
NewHope-Compact512SSC297629842984
NewHope-Compact512SSC/OS215229842984
NewHope-Compact512SSC/UR297629842984
NewHope-Compact512SSC/UR/OS215229842984
NewHope-Compact512UR298429842984
NewHope-Compact512UR/OS216029842984
NewHope-Compact768-393639363936
NewHope-Compact768OS260039363936
NewHope-Compact768SSC395239443944
NewHope-Compact768SSC/OS261639443944
NewHope-Compact768SSC/UR395239443944
NewHope-Compact768UR393639363936

Size Evaluation

SchemeImplementation.text [bytes].data [bytes].bss [bytes]Total [bytes]
Kyber1024-5056005056
Kyber1024OS5056005056
Kyber1024SSC5056005056
Kyber1024SSC/OS5056005056
Kyber1024SSC/UR658440065844
Kyber1024SSC/UR/OS658440065844
Kyber1024UR658440065844
Kyber1024UR/OS658440065844
Kyber512-5056005056
Kyber512OS5056005056
Kyber512SSC5056005056
Kyber512SSC/OS5056005056
Kyber512SSC/UR658440065844
Kyber512SSC/UR/OS658440065844
Kyber512UR658440065844
Kyber512UR/OS658440065844
Kyber768-5056005056
Kyber768OS5056005056
Kyber768SSC5056005056
Kyber768SSC/OS5056005056
Kyber768SSC/UR658440065844
Kyber768SSC/UR/OS658440065844
Kyber768UR658440065844
Kyber768UR/OS658440065844
NewHope1024-8144008144
NewHope1024OS8208008208
NewHope1024UR46820800468208
NewHope1024UR/OS47230400472304
NewHope512-7404007404
NewHope512OS7468007468
NewHope512UR21398000213980
NewHope512UR/OS21602800216028
NewHope-Compact1024-103080010308
NewHope-Compact1024OS103600010360
NewHope-Compact1024SSC103560010356
NewHope-Compact1024SSC/OS104080010408
NewHope-Compact1024SSC/UR13400800134008
NewHope-Compact1024SSC/UR/OS13450800134508
NewHope-Compact1024UR13396000133960
NewHope-Compact1024UR/OS13446000134460
NewHope-Compact512-9256009256
NewHope-Compact512OS9312009312
NewHope-Compact512SSC9304009304
NewHope-Compact512SSC/OS9356009356
NewHope-Compact512SSC/UR746480074648
NewHope-Compact512SSC/UR/OS751480075148
NewHope-Compact512UR746000074600
NewHope-Compact512UR/OS751040075104
NewHope-Compact768-9784009784
NewHope-Compact768OS9840009840
NewHope-Compact768SSC9832009832
NewHope-Compact768SSC/OS9884009884
NewHope-Compact768SSC/UR10172400101724
NewHope-Compact768SSC/UR/OS10222400102224
NewHope-Compact768UR10167600101676
NewHope-Compact768UR/OS10218000102180

Abbreviations

UR: USE_REPT OS: OPTIMIZE_STACK SSC: SMALL_SECRET_KEY Default option: OS

What's inside

Three tables: speed (36 rows), memory (36 rows), size (36 rows), plus abbreviations legend.

Change this for your project

  • Replace NewHope-Compact-M4 with your own repository name if you reuse the table structure
  • Replace the scheme names and implementation labels with your own variants

Where it goes

Keep it in your repository where the agent or team that needs it will read it.

Worth borrowing

  • Tabulating multiple optimisation combinations (OS, UR, SSC) side by side for direct comparison
  • Including a legend for abbreviations to keep table headers short

Related Documents