I need a very light encryption scheme which costs almost no performance during encryption (while decryption may be slow).

I found 5 algorithms: RC4, DES, LED, PRESENT, and Piccolo.

But how do I pick one that's faster than AES on my platform?

enter image description here

  • 4
    $\begingroup$ What are your actual limitations? The answer(s) to your question greatly depend on your platform, and how limited your ROM and RAM are. $\endgroup$
    – Polynomial
    Commented Mar 16, 2015 at 14:26
  • $\begingroup$ And the requirements for the crypto of course. $\endgroup$
    – Maarten Bodewes
    Commented Mar 16, 2015 at 15:26
  • $\begingroup$ What's your CPU? How much RAM and ROM do you have? How many CPU cycles can you afford for each byte of the message? $\endgroup$ Commented Mar 16, 2015 at 16:00
  • 3
    $\begingroup$ Also, what exactly do you mean by "lightweight?" It seems like it could refer to any of throughput, memory requirements (if it's implemented in software), code size (in software), power requirements, or size of a hardware implementation (in gates). Which of those things are you worried about? Different algorithms optimize for different ones of those. $\endgroup$
    – cpast
    Commented Mar 17, 2015 at 2:00
  • $\begingroup$ Incidentally, this seems related to his other post, which has more details on his exact situation. $\endgroup$
    – cpast
    Commented Mar 17, 2015 at 2:05

1 Answer 1


Salsa/ChaCha and the other eSTREAM winners are likely to be the "fastest but still secure" options today.

Don't forget authentication of course. Reduced-round ChaCha/Poly1305 is likely to be the fastest software-only option, due to tuned implementations in the libsodium and NaCl libraries.

UPDATED: The following slide deck has good info on state of the art lightweight block ciphers vs. legacy (along with source code links). Considers code size, RAM, and cycles/byte metrics for many algorthims).

Stream ciphers such as those from eSTREAM may be a better option than block ciphers. Even choosing RC4 and hardening it by dropping the first 512 bytes may be a good solution; code size doesn't get much smaller than RC4.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.