Difference between revisions of "emCrypt"
(→FAQs) |
m (→Performance) |
||
Line 56: | Line 56: | ||
| Cipher (AES) || STM32F756 || CM7 || 200 MHz || Yes || Run from flash, data in internal RAM || [[AES_STM32F756|Results]] |
| Cipher (AES) || STM32F756 || CM7 || 200 MHz || Yes || Run from flash, data in internal RAM || [[AES_STM32F756|Results]] |
||
|- |
|- |
||
− | | |
+ | |- |
+ | | Cipher (AES) || STM32H753 || CM7 || 400 MHz || Yes || Run from flash, data in internal RAM || [[AES_STM32H753|Results]]|} |
||
== FAQs == |
== FAQs == |
Revision as of 11:48, 6 August 2019
emCrypt is a secure and efficient implementation of essential cryptographic algorithms specifically designed for embedded systems.
This wiki page explains and links to other articles providing information too specific for the user manual or product pages on www.segger.com
Performance
Benchmark | Device | Core | Speed | HW Accel | Notes | Link |
---|---|---|---|---|---|---|
ECDSA sign and verify | STM32F072 | CM0 | 48 MHz | No | Run from flash, data in internal RAM | Results |
ECDSA sign and verify | R7FS124 | CM0 | 24 MHz | No | Run from flash, data in internal RAM | Results |
ECDSA sign and verify | MK66FN2M0 | CM4 | 168 MHz | No | Run from flash, data in internal RAM | Results |
ECDSA sign and verify | STM32F746 | CM7 | 200 MHz | No | Run from flash, data in internal RAM | Results |
ECDSA sign and verify | AT91SAM9263 | ARM926 | 200 MHz | No | Run from SDRAM with cache enabled | Results |
EdDSA sign and verify | MK66FN2M0 | CM4 | 168 MHz | No | Run from flash, data in internal RAM | Results |
EdDSA sign and verify | STM32F746 | CM7 | 200 MHz | No | Run from flash, data in internal RAM | Results |
EdDSA sign and verify | AT91SAM9263 | ARM926 | 200 MHz | No | Run from SDRAM with cache enabled | Results |
Hash algorithms | MK66FN2M0 | CM4 | 168 MHz | Yes | Run from flash, data in internal RAM | Results |
Hash algorithms | STM32F746 | CM7 | 200 MHz | No | Run from flash, data in internal RAM | Results |
Hash algorithms | STM32F756 | CM7 | 200 MHz | Yes | Run from flash, data in internal RAM | Results |
Hash algorithms | AT91SAM9263 | ARM926 | 200 MHz | No | Run from SDRAM with cache enabled | Results |
MAC algorithms | STM32F746 | CM7 | 200 MHz | No | Run from flash, data in internal RAM | Results |
MAC algorithms | AT91SAM9263 | ARM926 | 200 MHz | No | Run from SDRAM with cache enabled | Results |
RSA (ModExp) | AT91SAM9263 | ARM926 | 200 MHz | No | Run from SDRAM with cache enabled | Results |
RSA (ModExp) | STM32F756 | CM7 | 200 MHz | No | Run from flash, data in internal RAM | Results |
Cipher (AES) | AT91SAM9263 | ARM926 | 200 MHz | No | Run from SDRAM with cache enabled | Results |
Cipher (AES) | STM32F756 | CM7 | 200 MHz | Yes | Run from flash, data in internal RAM | Results |
Cipher (AES) | STM32H753 | CM7 | 400 MHz | Yes | Run from flash, data in internal RAM | Results|}
FAQsFor safety, my application cannot use a heap. How can I use emCrypt?All hashes, ciphers, MACs, and other simple cryptographic operations never require the use of a heap; such operations may use a context that the caller provides. Public key operations and signature algorithms (such as RSA, ECDSA, and EdDSA) and key agreement protocols based on integer factorization and elliptic curve cryptography (such as DH and ECDH) require an allocator. However, the allocator implementation is entirely under control of the caller and emCrypt never uses emCrypt ships with a set of memory allocators:
All benchmarks demonstrate use of the emCrpt API using a fixed-size memory area and constant-size blocks avoiding use of any heap. Please refer to the emCrypt applications that ship in the product for examples of how to use fixed-size memory for API calls that require an allocator. |