I'm trying to encrypt a protocol that shares data between devices on a local area network (i.e.no connection to the internet). I don't want to use predefined keys because they're too easy to read from the firmware. What I'd like is for the devices to dynamically setup an encrypted network which prevents anyone reverse engineering the protocol. Someone once told me that when it comes to encryption "never roll your own" so I'm wondering what's out there.

The requirements are:

  1. Must work over Ethernet (minimum of 10MB/s).
  2. Must not require internet access.
  3. Must not have hardcoded or otherwise predictable keys, and keys must be revocable/replaceable (from HedgeMage).
  4. Devices can be added and removed from the network (note all devices are supplied by us).
  5. Messages can be sent unicast and multicast (between multiple devices).
  6. Encryption should be immune to replay attacks.
  7. Encryption should be capable of being run on an ARM CPU with only basic HW cryptographic support (i.e. solution can't rely on any specialised HW).
  8. No scope to add additional HW like smart card readers.

Does anything like this already exist?

  • 1
    $\begingroup$ Must not have a key that can be read from the firmware, keys have to be stored somewhere. What are acceptable options here? For example, we could require something like a smart-card reader on each device and a smart card to be inserted in order to join the encrypted network. $\endgroup$ – mikeazo Jun 9 '16 at 11:46
  • 2
    $\begingroup$ Can it be possible for other devices not owned by you to join the network? $\endgroup$ – Daan Bakker Jun 9 '16 at 12:06
  • 3
    $\begingroup$ Clarifying question: when you say "must not have a key that can be read from the firmware", do you mean "must not have any hardcoded keys that are compromised by someone buying another device of the same model and reversing it" or "must store its key in a hardware crypto module"? FWIW, in my design, that parameter would be more like: "no hardcoded or otherwise predictable keys, and keys must be revocable/replaceable." Unless, of course, the use case warranted a hardware crypto module per device. $\endgroup$ – HedgeMage Jun 9 '16 at 15:14
  • $\begingroup$ "with only basic HW cryptographic support." I'm not entirely sure that I understand what that means. Imagine going to a car dealer and ordering a "basic car". $\endgroup$ – Maarten Bodewes Jun 9 '16 at 16:02
  • $\begingroup$ Updated to answer your comments. When I talk about not having keys I'm just aware that hardcoding a key in the SW can be reverse engineered. I don't know if there are solutions that don't require keys at all, that's the point of the question! $\endgroup$ – parsley72 Jun 9 '16 at 19:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.