A versatile Key Management protocol for secure Group and Device-to-Device Communication in the Internet of Things. (15th January 2020)