Giter Club home page Giter Club logo

ecdsa_memory_footprint's Introduction

ECDSA Memory Footprint

This repository includes scripts and code to evaluate the memory footprint of some libraries implementing ECC and SHA-256 functions.

Libraries

The comparison considers just the secp256r1 curve, that is implemented by all this libraries:

Some considerations

The difference in size is mainly related to the complexity and the set of features present in the libraries.

The goal of this comparison is to find the smallest library to implement ECDSA validation inside a bootloader that must be as small as possible. For this reason the set of features included in many libraries are not needed in this application.

Evaluation

The result of this comparison for Posix systems can be seen in the table below. This size includes also the size of the main;

Library SHA2 ECC ECDSA
tinydtls 3800 7531 9888
polarssl 6056 23046 27735
matrixssl 3864 29103 34022
micro-ecc / 8970 /
tinycrypt 3656 8968 11241
wolfssl 4592 31443 34777
libtomcrypt 4354 35959 38256
  • micro-ecc does not includes the digest calculation;
  • libtomcrypt does not contains all the symbols of libtommath that is loaded at runtime;

Build

The build system has been tested with an Ubuntu Trusty machine. I'm providing a reproducible environment using Vagrant. Type vagrant up and vagrant ssh to open a shell into the VM and then run the ./run.sh script located in the shared /vagrant folder. If everything was successfull at the end of the build you should seen a table containing the various memory footprint.

ecdsa_memory_footprint's People

Contributors

antoniolangiu avatar

Watchers

 avatar  avatar  avatar

Forkers

adnandzebic

ecdsa_memory_footprint's Issues

Refactor the build system

Refactor the build system:

  • Create a unique Makefile shared for each library.
  • Make a comparison also for Contiki OS, building for the Sensortag CC2650 as a target.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.