Advancements in the computational power of devices has paved the way for a new generation of communicating devices and new and better architectures which are already being implemented currently. The Internet of Things (IoT) is one of them. In an ideal IoT all devices will be connected to a common network interface and will be able to communicate with each other to perform tasks that need a human interaction presently. Security in such an interface is of the highest priority. For encryption of messages between devices, unique key generation is important. Physical Unclonable Functions (PUFs) can be used to generate a unique key for this encryption. This paper presents two designs of PUFs which can generate a new key every time the circuit is run and hence this approach is called 'Multi-Key Generator PUF' (MKG-PUF). Once a key is generated, it cannot be generated again even with the same device. Due to the process variations and environmental effects, the keys generated will be random. Power optimized and speed optimized designs are proposed in this paper. The power optimized design utilizes 30% less power compared to the speed optimized design but generates the keys slowly. The speed optimized design consumes more power but can generate the keys in a fraction of the time needed by the power optimized design.