Skip navigation

emCrypt - Benchmarks

emCrypt implements all algorithms in platform-independent C code. The following benchmarks show some performance of these software implementations with and without hardware acceleration.

 Contents

 
[show]
[hide]

All algorithms in emCrypt can be independently tailored for higher speed or lower size. The benchmarks are done on the emPower Board with a NXP K66, running @ 168 MHz, configured for highest speed, compiled with Embedded Studio using clang.

Modular exponentiation benchmark

(c) 2014-2017 SEGGER Microcontroller GmbH & Co. KG    www.segger.com
Modular Exponentiation Benchmark compiled Apr 21 2017 15:54:06

Compiler: clang 3.9.1 (tags/RELEASE_391/final)
System:   Processor speed          = 168.000 MHz
Config:   Static heap size         = 39600 bytes
Config:   CRYPTO_MPI_BITS_PER_LIMB = 32

Modular Arithmetic Performance
==============================

CRT private key, exponent length = modulus length, all times in ms

+---------------------------+---------------+---------------+---------------+
| Algorithm                 |           512 |          1024 |          2048 |
+---------------------------+---------------+---------------+---------------+
| Basic, ladder             |   67.87  1.0x |  287.25  1.0x | 1497.00  1.0x |
| Basic, fast               |   50.55  1.3x |  202.80  1.4x |  955.00  1.6x |
| Basic, 2b, FW             |   47.41  1.4x |  192.50  1.5x |  923.50  1.6x |
| Basic, 3b, FW             |   44.35  1.5x |  182.50  1.6x |  909.50  1.6x |
| Basic, 4b, FW             |   43.33  1.6x |  176.17  1.6x |  887.00  1.7x |
| Basic, 5b, FW             |   44.13  1.5x |  174.83  1.6x |  872.00  1.7x |
| Basic, 6b, FW             |   47.41  1.4x |  178.67  1.6x |  865.00  1.7x |
+---------------------------+---------------+---------------+---------------+
| Basic, 2b, RM             |   46.73  1.5x |  189.33  1.5x |  911.00  1.6x |
| Basic, 3b, RM             |   43.87  1.5x |  180.17  1.6x |  889.50  1.7x |
| Basic, 4b, RM             |   42.58  1.6x |  173.67  1.7x |  870.00  1.7x |
| Basic, 5b, RM             |   42.33  1.6x |  171.00  1.7x |  856.50  1.7x |
| Basic, 6b, RM             |   43.38  1.6x |  171.00  1.7x |  847.00  1.8x |
+---------------------------+---------------+---------------+---------------+
| Barrett, ladder           |   53.84  1.3x |  202.00  1.4x | 1021.00  1.5x |
| Barrett, fast             |   40.08  1.7x |  145.14  2.0x |  666.50  2.2x |
| Barrett, 2b, FW           |   38.73  1.8x |  139.12  2.1x |  645.50  2.3x |
| Barrett, 3b, FW           |   35.59  1.9x |  129.00  2.2x |  620.50  2.4x |
| Barrett, 4b, FW           |   34.48  2.0x |  123.78  2.3x |  599.50  2.5x |
| Barrett, 5b, FW           |   35.10  1.9x |  122.56  2.3x |  587.50  2.5x |
| Barrett, 6b, FW           |   37.78  1.8x |  125.50  2.3x |  583.00  2.6x |
+---------------------------+---------------+---------------+---------------+
| Barrett, 2b, RM           |   37.11  1.8x |  133.75  2.1x |  628.00  2.4x |
| Barrett, 3b, RM           |   34.79  2.0x |  126.50  2.3x |  606.00  2.5x |
| Barrett, 4b, RM           |   33.73  2.0x |  121.78  2.4x |  588.50  2.5x |
| Barrett, 5b, RM           |   33.57  2.0x |  119.56  2.4x |  577.50  2.6x |
| Barrett, 6b, RM           |   34.43  2.0x |  119.56  2.4x |  570.50  2.6x |
+---------------------------+---------------+---------------+---------------+
| Montgomery, fast          |   21.17  3.2x |   92.64  3.1x |  486.33  3.1x |
| Montgomery, 2b, FW        |   21.40  3.2x |   93.73  3.1x |  484.67  3.1x |
| Montgomery, 3b, FW        |   19.35  3.5x |   84.17  3.4x |  433.00  3.5x |
| Montgomery, 4b, FW        |   18.61  3.6x |   80.08  3.6x |  409.00  3.7x |
| Montgomery, 5b, FW        |   18.94  3.6x |   79.08  3.6x |  398.67  3.8x |
| Montgomery, 6b, FW        |   20.36  3.3x |   81.15  3.5x |  398.00  3.8x |
+---------------------------+---------------+---------------+---------------+
| Montgomery, 2b, RM        |   19.84  3.4x |   85.50  3.4x |  446.00  3.4x |
| Montgomery, 3b, RM        |   18.65  3.6x |   81.08  3.5x |  419.00  3.6x |
| Montgomery, 4b, RM        |   18.14  3.7x |   78.23  3.7x |  401.33  3.7x |
| Montgomery, 5b, RM        |   18.07  3.8x |   76.92  3.7x |  392.67  3.8x |
| Montgomery, 6b, RM        |   18.59  3.7x |   77.08  3.7x |  387.00  3.9x |
+---------------------------+---------------+---------------+---------------+

Public key, exponent length = 17 bits, all times in ms

+---------------------------+---------------+---------------+---------------+
| Algorithm                 |           512 |          1024 |          2048 |
+---------------------------+---------------+---------------+---------------+
| Basic, ladder             |    4.38  1.0x |    9.62  1.0x |   25.77  1.0x |
| Basic, fast               |    2.23  2.0x |    4.68  2.1x |   12.14  2.1x |
| Basic, 2b, FW             |    2.41  1.8x |    4.87  2.0x |   12.42  2.1x |
| Basic, 3b, FW             |    2.62  1.7x |    5.00  1.9x |   12.44  2.1x |
| Basic, 4b, FW             |    3.14  1.4x |    5.67  1.7x |   13.09  2.0x |
| Basic, 5b, FW             |    4.17  1.1x |    6.99  1.4x |   15.07  1.7x |
| Basic, 6b, FW             |    5.88  0.7x |    9.18  1.0x |   18.70  1.4x |
+---------------------------+---------------+---------------+---------------+
| Basic, 2b, RM             |    2.29  1.9x |    4.73  2.0x |   12.20  2.1x |
| Basic, 3b, RM             |    2.52  1.7x |    4.87  2.0x |   12.27  2.1x |
| Basic, 4b, RM             |    2.99  1.5x |    5.48  1.8x |   12.82  2.0x |
| Basic, 5b, RM             |    3.89  1.1x |    6.66  1.4x |   14.64  1.8x |
| Basic, 6b, RM             |    5.69  0.8x |    9.02  1.1x |   18.22  1.4x |
+---------------------------+---------------+---------------+---------------+
| Barrett, ladder           |    3.46  1.3x |    7.83  1.2x |   22.22  1.2x |
| Barrett, fast             |    1.78  2.5x |    3.82  2.5x |   10.42  2.5x |
| Barrett, 2b, FW           |    2.15  2.0x |    4.24  2.3x |   11.02  2.3x |
| Barrett, 3b, FW           |    2.32  1.9x |    4.38  2.2x |   11.00  2.3x |
| Barrett, 4b, FW           |    2.87  1.5x |    5.23  1.8x |   11.95  2.2x |
| Barrett, 5b, FW           |    3.96  1.1x |    6.91  1.4x |   14.85  1.7x |
| Barrett, 6b, FW           |    5.93  0.7x |    9.96  1.0x |   20.34  1.3x |
+---------------------------+---------------+---------------+---------------+
| Barrett, 2b, RM           |    1.88  2.3x |    3.89  2.5x |   10.50  2.5x |
| Barrett, 3b, RM           |    2.06  2.1x |    4.07  2.4x |   10.60  2.4x |
| Barrett, 4b, RM           |    2.45  1.8x |    4.69  2.0x |   11.31  2.3x |
| Barrett, 5b, RM           |    3.18  1.4x |    5.90  1.6x |   13.44  1.9x |
| Barrett, 6b, RM           |    4.63  0.9x |    8.30  1.2x |   17.70  1.5x |
+---------------------------+---------------+---------------+---------------+
| Montgomery, fast          |    1.41  3.1x |    3.37  2.9x |    9.98  2.6x |
| Montgomery, 2b, FW        |    2.06  2.1x |    5.12  1.9x |   15.38  1.7x |
| Montgomery, 3b, FW        |    2.13  2.1x |    5.29  1.8x |   15.89  1.6x |
| Montgomery, 4b, FW        |    2.69  1.6x |    6.77  1.4x |   20.34  1.3x |
| Montgomery, 5b, FW        |    3.61  1.2x |    9.20  1.0x |   27.73  0.9x |
| Montgomery, 6b, FW        |    5.41  0.8x |   13.97  0.7x |   42.13  0.6x |
+---------------------------+---------------+---------------+---------------+
| Montgomery, 2b, RM        |    1.60  2.7x |    3.87  2.5x |   11.47  2.2x |
| Montgomery, 3b, RM        |    1.72  2.5x |    4.19  2.3x |   12.46  2.1x |
| Montgomery, 4b, RM        |    2.09  2.1x |    5.14  1.9x |   15.43  1.7x |
| Montgomery, 5b, RM        |    2.58  1.7x |    6.41  1.5x |   19.40  1.3x |
| Montgomery, 6b, RM        |    3.48  1.3x |    8.66  1.1x |   26.37  1.0x |
+---------------------------+---------------+---------------+---------------+

Benchmark complete

AES benchmark

Benchmarked on a SEGGER emPower board

(c) 2014-2017 SEGGER Microcontroller GmbH & Co. KG    www.segger.com
AES Benchmark V1.16 compiled Apr 21 2017 16:00:55

Compiler: clang 3.9.1 (tags/RELEASE_391/final)
System:   Processor speed               = 168.000 MHz
Config:   CRYPTO_CONFIG_AES_OPTIMIZE    = 15
Config:   CRYPTO_CONFIG_AES_HW_OPTIMIZE = 1

+--------------+------+-----------------+-----------------+
|              |      | ECB        MB/s | CBC        MB/s |
| Cipher       | Bits |     Enc     Dec |     Enc     Dec |
+--------------+------+-----------------+-----------------+
| AES          |  128 |    2.03    2.18 |    1.64    1.61 |
| AES (HW)     |  128 |    8.14    7.70 |    7.52    6.72 |
| AES          |  192 |    1.74    1.88 |    1.44    1.44 |
| AES (HW)     |  192 |    6.83    6.52 |    6.30    5.66 |
| AES          |  256 |    1.53    1.64 |    1.29    1.30 |
| AES (HW)     |  256 |    6.05    5.89 |    5.63    5.00 |
+--------------+------+-----------------+-----------------+
|              |      | GCM        MB/s | CCM        MB/s |
| Cipher       | Bits |     Enc     Dec |     Enc     Dec |
+--------------+------+-----------------+-----------------+
| AES          |  128 |    0.05    0.05 |    0.83    0.83 |
| AES (HW)     |  128 |    0.05    0.05 |    1.23    1.24 |
| AES          |  192 |    0.05    0.05 |    0.73    0.73 |
| AES (HW)     |  192 |    0.05    0.05 |    1.16    1.16 |
| AES          |  256 |    0.06    0.06 |    0.65    0.65 |
| AES (HW)     |  256 |    0.06    0.06 |    1.10    1.11 |
+--------------+------+-----------------+-----------------+

Benchmark complete

ECDSA benchmark

Benchmarked on a SEGGER emPower board

(c) 2014-2017 SEGGER Microcontroller GmbH & Co. KG    www.segger.com
ECDSA Sign and Verify Benchmark compiled Apr 21 2017 16:03:45

Compiler: clang 3.9.1 (tags/RELEASE_391/final)
System:   Processor speed                   = 168.000 MHz
Config:   Static heap size                  = 4440 bytes
Config:   CRYPTO_MPI_BITS_PER_LIMB          = 32
Config:   CRYPTO_CONFIG_ECDSA_TWIN_MULTIPLY = 1

+------------------+-----------+-----------+-----------+-----------+
|                  |      Sign |     Sign  |    Verify |    Verify |
| Curve            |        ms |     bytes |        ms |     bytes |
+------------------+-----------+-----------+-----------+-----------+
| secp192r1        |     40.54 |      1152 |     37.64 |      1920 |
| secp224r1        |     50.85 |      1296 |     48.27 |      2160 |
| secp256r1        |     79.07 |      1440 |     75.86 |      2400 |
| secp384r1        |    129.00 |      2016 |    122.00 |      3360 |
| secp521r1        |    238.67 |      2664 |    218.50 |      4440 |
| brainpoolP160r1  |     68.87 |      1008 |     66.81 |      1680 |
| brainpoolP160t1  |     62.88 |      1008 |     60.50 |      1680 |
| brainpoolP192r1  |     98.67 |      1152 |     90.92 |      1920 |
| brainpoolP192t1  |     89.42 |      1152 |     80.86 |      1920 |
| brainpoolP224r1  |    130.87 |      1296 |    122.40 |      2160 |
| brainpoolP224t1  |    119.50 |      1296 |    111.20 |      2160 |
| brainpoolP256r1  |    171.33 |      1440 |    162.00 |      2400 |
| brainpoolP256t1  |    158.00 |      1440 |    145.62 |      2400 |
| brainpoolP320r1  |    260.75 |      1728 |    242.83 |      2880 |
| brainpoolP320t1  |    241.00 |      1728 |    216.00 |      2880 |
| brainpoolP384r1  |    399.00 |      2016 |    372.00 |      3360 |
| brainpoolP384t1  |    376.25 |      2016 |    327.75 |      3360 |
| brainpoolP512r1  |    754.50 |      2592 |    694.00 |      4320 |
| brainpoolP512t1  |    649.00 |      2592 |    613.50 |      4320 |
+------------------+-----------+-----------+-----------+-----------+

Benchmark complete