Skip navigation
emcrypt-product-icon.svg

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.

All algorithms in emCrypt can be independently tailored for higher speed or lower size. The benchmarks are done on the emPower Board with a Freescale 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