From CryptoLUX
Jump to: navigation, search


FELICS - Fair Evaluation of Lightweight Cryptographic Systems

FELICS Screenshot

Most papers introducing a new cipher report performance evaluation on different platforms and usually in different conditions. The results obtained on different devices and in different measurement conditions are then used to compare the new cipher with previous ones. The conclusions are not accurate and do not inspire confidence because it is hard to correctly evaluate different ciphers if comparative implementations are not available. Our benchmarking framework is motivated by the need for a unified evaluation of lightweight block ciphers' performances.

Our benchmarking tool is open and flexible in various aspects:

  1. It is possible to upload new ciphers so that the designers get consistent and detailed feedback on how their cipher compares with the state-of-the-art.
  2. The tool is developed from the ground up with the goal of supporting a wide range of embedded platforms through both cycle-accurate instruction set simulation and actual measurements on prototyping boards.
  3. The tool is also open with respect to the evaluation metrics. Currently, it can evaluate execution time, RAM footprint, and binary code size.
  4. It can easily accommodate new usage/evaluation scenarios.


  • Daniel Dinu, Yann Le Corre, Dmitry Khovratovich, Léo Perrin, Johann Großschädl, Alex Biryukov. Triathlon of Lightweight Block Ciphers for the Internet of Things. March 2015. PDF BIB
  • Daniel Dinu, Alex Biryukov, Johann Großschädl, Dmitry Khovratovich, Yann Le Corre, Léo Perrin. FELICS – Fair Evaluation of Lightweight Cryptographic Systems. July 2015. PDF



  • binary code size
  • RAM
  • execution time



Block Ciphers

Stream Ciphers

Triathlon Competition

For details see Triathlon Competition.



A list of all necessary prerequisites is available here.

If you want to avoid installing all the prerequisites, you can download the FELICS virtual machine which has all the tools pre-installed.

Note that you will need an Arduino Due board and a J-Link debug probe to be able to extract the results for ARM.

How To

For information on how to use the framework see How To.

If you plan to implement a cipher for the framework, you should consider reading the tips from the Implementer's Corner.

Detailed steps for testing an implementation are available in Implementation Testing.

Submission Policy

If you want to have the results of your primitive on our web page, follow the steps below:

  1. Download our tool and integrate your cipher using the example cipher structure.
  2. Ensure that your cipher implementation is compiling without errors for all supported platforms in all supported scenarios.
  3. Send us an email with your cipher implementation and the original paper describing the cipher (This implies that you agree that the cipher source code and results will be published on our web page).
  4. We will check your implementation and if everything is fine the implementation and results will be published on the web page.


The list of contributors is available here.