I do not see an immediate flow, but the public-key cryptography seems to be an overkill in your system with a single server. As long as the server keeps some keys of each device $D$, it may as well keep a single symmetric key $K_D$, and use a single authenticated encryption scheme $\Pi$ with key $K_D$, for instance, AES-GCM. This would simplify your system significantly, and you would not need certificates. You would not even need random number generator, except for the key generation.

Embedded devices Authentication, Integrity and Confidentiality

  “A variable so related to another that for each value assumed by one there is a value determined for the other.” (thefreedictionary.com)


I can’t find any possible way how to start with this words. I’d like to say what I don’t know at least, but only to fail to do so. I hope to be got the right parse and its meaning.
