0

I am looking for symmetric cryptography algorithms that can be implemented on chips with very few resources (about 256K RAM and 16MHz CPU).

An algorithm that works perfectly in this environment is RC4, however it has multiple vulnerabilities. Are there algorithms that can be implemented in this type of systems that do not have known vulnerabilities?

  • 1
    256K should be plenty of space for AES. Also for embedded systems "few resources" would be more like 4K ROM and 128 or 256 bytes RAM (Intel MCS-51) – Eugene Styer Oct 20 '22 at 15:36
  • I have implemented AES and it is too slow. It is necessary to mention that the chip performs other functions so I do not have the 256K of RAM available. In fact, I can't store the AES precomputed tables, that's why it works so slow for me. I am looking for something like RC4, which works fine for me, but I need something without vulnerabilities. – Begoña Garcia Oct 20 '22 at 15:41
  • Did you see the lightweight cryptography? Simon, Speck, PRESENT, etc should be good for you... – kelalaka Oct 20 '22 at 17:20
  • Thanks kelalaka, looks like this is just what I'm looking for. Why don't you put it as an answer? – Begoña Garcia Oct 21 '22 at 05:04
  • @BegoñaGarcia that requires an implementation specific to your case. That is better if you took some implementation that is available around, test the performance, and then wrote an answer. Keep in mind that NIST required 112-bit security for them this doesn't mean that one cannot get 128-bit security from a 128-bit key in lightweight cryptography. – kelalaka Oct 21 '22 at 09:22
  • 1
    Also, when asking, you should include your previous tests and be more specific about your requirements; the bandwidth, the space, power consumption, etc. You may specify what is really important for you and what it is not. In this way, someone with expertise on this field can answer your question much better. Though, the performance part may fall into more [so] IMHO. – kelalaka Oct 21 '22 at 09:25
  • Thank you @kelalaka, your comments are very instructive. – Begoña Garcia Oct 22 '22 at 09:32
  • See A Survey of LightweightCryptography Implementations. This might help you on your path. It is possible that you can compare them on your platform and publish a paper, too.. – kelalaka Oct 27 '22 at 09:04

1 Answers1

1

Are there algorithms that can be implemented in this type of systems that do not have known vulnerabilities?

Lots; almost any symmetric system can be implemented in 256k of RAM, and as far as a 16MHz CPU goes, well, that is only an issue if the encryption performance you require is sufficiently high.

If you want recommendations, well, that would depend on what problem you're trying to solve (e.g. are you sending and receiving encrypted traffic, or are you doing something else? Do you have a long term symmetric key you have to use, or is that negotiated by something else periodically/on reboot? What sort of crypto library is available to you? What are your performance requirements?).

Without knowing the answer to that, I am hesitant to give any concrete answer.

poncho
  • 147,019
  • 11
  • 229
  • 360
  • I have to send and receive encrypted traffic and I have to renegotiate the key periodically. I dont have any encryption library so it has to be implemented from zero in C. The algorithm has to be fast enough to be able to work in a real-time communication in a device with the mentioned characteristics. – Begoña Garcia Oct 20 '22 at 15:37
  • 1
    "The algorithm has to be fast enough to be able to work in a real-time communication"; does it need to keep up with a 110 baud modem, or a 800Gbps optic link? Or, something in the middle? Also, is the key negotiation done externally, or is it something this needs to solve as well? – poncho Oct 20 '22 at 15:45
  • I'm concerned about processing time and memory, not bandwidth. – Begoña Garcia Oct 20 '22 at 15:54
  • 1
    @BegoñaGarcia: then, what does 'fast enough' mean? – poncho Oct 20 '22 at 15:59
  • Similar performance to RC4. – Begoña Garcia Oct 20 '22 at 16:10