Esa pregunta es demasiado amplia, pero dado que omitió lo más importante, siento que necesito hablar.
Autenticar la actualización .
Si desea asegurarse de que sus dispositivos estén ejecutando su código, entonces necesita autenticación, no cifrado. El cifrado garantiza que otras personas no puedan saber qué hay en su código, y eso es difícil de lograr y rara vez es útil. (Puede cifrar, pero si la clave de descifrado está en el dispositivo, no ganó nada a menos que tenga una forma de proteger la clave de descifrado que no le permite proteger el código directamente). La autenticidad es propiedad de otras personas no puede producir una actualización falsa, y esa propiedad generalmente es deseable.
Tenga en cuenta que el cifrado no ayuda con la autenticidad. Esta es una creencia falsa que las personas que realmente no entienden la seguridad a veces sí, pero simplemente no es verdad.
Para algunos dispositivos, está bien ejecutar cualquier firmware si el propietario así lo elige. En ese caso, aún necesita algún mecanismo para garantizar que solo el propietario del dispositivo pueda instalar el firmware, y no un transeúnte aleatorio. En general, eso significa que el dispositivo debe autenticar la actualización como proveniente del propietario registrado.