A method for providing a secret unique key for a volatile FPGA, wherein the method comprises - programming the FPGA with a bit-file to implement a security IP block that embeds a value for a group key and a default value of an initialization state indicator, wherein - the bit-file has been encrypted with a bit-file encryption that is decrypted with a hardwired decryption module embedded on the FPGA, and/or - the group key has been obfuscated within the bit-file, and wherein the default value represents an uninitialized state where no secret unique key has been generated before; and, with the security IP block implemented on the FPGA, - retrieving a value of a data record from a non-volatile memory, wherein the data record has been encrypted and authenticated with a key derived from the group key and represents values of the secret unique key and the initialization state indicator; - decrypting the value of the data record with the key derived from the group key; - determining an initialization status on the basis of the retrieved value of the initialization state indicator, the initialization status being selected from a list comprising at least the uninitialized state and an initialized state where a secret unique key has been generated before; and - if the determined initialization status represents the uninitialized state, - generating a new value for the secret unique key, - sending a specific value derived from the new value of the secret unique key to be received by an external validation system, - waiting to receive a validation signal for the specific value from the external validation system, wherein the validation signal indicates that the specific value has been successfully validated by the external validation system; and - if a signal validating the unique secret key is received, storing a new value of the data record to the non-volatile memory, wherein the said value represents the generated new value of the secret unique key and initialized state of the initialization state indicator, and wherein said value is encrypted and authenticated with the group key. - programming the FPGA with a bit-file to implement a security IP block that embeds a value for a group key and a default value of an initialization state indicator, wherein - the bit-file has been encrypted with a bit-file encryption that is decrypted with a hardwired decryption module embedded on the FPGA, and/or - the group key has been obfuscated within the bit-file, and wherein the default value represents an uninitialized state where no secret unique key has been generated before; and, - the bit-file has been encrypted with a bit-file encryption that is decrypted with a hardwired decryption module embedded on the FPGA, and/or - the group key has been obfuscated within the bit-file, and wherein the default value represents an uninitialized state where no secret unique key has been generated before; and, - retrieving a value of a data record from a non-volatile memory, wherein the data record has been encrypted and authenticated with a key derived from the group key and represents values of the secret unique key and the initialization state indicator; - decrypting the value of the data record with the key derived from the group key; - determining an initialization status on the basis of the retrieved value of the initialization state indicator, the initialization status being selected from a list comprising at least the uninitialized state and an initialized state where a secret unique key has been generated before; and - if the determined initialization status represents the uninitialized state, - generating a new value for the secret unique key, - sending a specific value derived from the new value of the secret unique key to be received by an external validation system, - waiting to receive a validation signal for the specific value from the external validation system, wherein the validation signal indicates that the specific value has been successfully validated by the external validation system; and - if a signal validating the unique secret key is received, storing a new value of the data record to the non-volatile memory, wherein the said value represents the generated new value of the secret unique key and initialized state of the initialization state indicator, and wherein said value is encrypted and authenticated with the group key. - generating a new value for the secret unique key, - sending a specific value derived from the new value of the secret unique key to be received by an external validation system, - waiting to receive a validation signal for the specific value from the external validation system, wherein the validation signal indicates that the specific value has been successfully validated by the external validation system; and - if a signal validating the unique secret key is received, storing a new value of the data record to the non-volatile memory, wherein the said value represents the generated new value of the secret unique key and initialized state of the initialization state indicator, and wherein said value is encrypted and authenticated with the group key.