Physical unclonable functions (PUFs) are functions that create values unique to the physical environments they operate in. They are unclonable due to the impossibility of cloning the physical environment. However PUF responses do not always generate exactly the same response because of the effects such as noise and temperature. An error correction mechanism is needed to correct PUF errors in order to use PUFs as a key generator. In this work Reed-Muller error correction codes are used to correct PUF errors and a key generator is implemented. Using the generated key also a license authentication protocol is implemented.