Whether it’s to protect your IP, protect user data or generate unique IDs, there is a wide range of encryption techniques that can be used.
Preventing unfair competitors from copying your firmware can be as simple as activating firmware protection mechanisms built in most MCUs. An additional level of legal protection can be added by using watermarking techniques.
Several products we’ve worked on had a requirement for the user to be able to update the firmware using a USB stick containing an update file downloaded from the manufacturer’s website. This is a potential security hole, as anyone could potentially have a look at the binary file and reverse-engineer it. In this case, encryption algorithms can be used to obfuscate machine code and make it too difficult to be worth the effort. As mentioned above, watermarking can be additionally used to provide ground for legal action.
On another recent project where hardware budget was very constraint, there was a requirement to generate a unique number encrypting data such as serial number, time and user ID. This number had to be deciphered through a private key. We researched and successfully implemented a very efficient encryption algorithm.