1. A method for proving authenticity of a prover device to a verifier device, the method comprising acts of: generating, by the prover device, a secret using a physical token, the physical token being challengeable in order to evoke a unique response from the physical token, the physical token is a physical unclonable function and comprises many randomly distributed components in a complex physical system, when challenged complex physics governing the interaction between the physical token and the challenge leads to the response, the secret being generated from said response, generating the secret further comprises acts of: generating a response using the physical token, combining the response with a helper data, and applying an Error Correcting Code; obtaining, by the verifier device, a public value in a form of a certificate which has been derived from the secret using a function, and where the function is selected such that it is computationally expensive to establish the secret given the public value; and conducting a zero knowledge protocol between the prover device and the verifier device in order to prove to the verifier device that the prover device has access to the physical token, where the prover device makes use of the secret and the verifier device makes use of the public value.