Method for storing a key in a non-volatile memory
A method is presented for verifying a writing of a key into a non-volatile memory. A first cyclic redundancy code of the key is stored into a register of an interface of the memory. A second cyclic redundancy code is computed on a message formed by the copied key having the first cyclic redundancy code linked thereto. The writing of the key into the non-volatile memory is considered as valid when the second cyclic redundancy code is equivalent to the zero value.
1 . A method for verifying a writing of a key into a non-volatile memory, comprising the steps of:
storing a first precomputed cyclic redundancy code of said key in a register of an interface of said non-volatile memory;
writing the key into a zone of the non-volatile memory;
copying the key which was written into said zone into a second register of said interface;
computing a second cyclic redundancy code on a message formed by the copied key having the first cyclic redundancy code linked thereto; and
considering the writing of the key into said non-volatile memory as valid when the second cyclic redundancy code is equivalent to a zero value.
2 . The method according to claim 1 , further comprising considering one of the foregoing steps as not valid when the second cyclic redundancy code is not equivalent to the zero value.
3 . The method according to claim 1 , wherein the second cyclic redundancy code equivalent to the zero value is 0x00.
4 . The method according to claim 1 , wherein the key is coded over 128 bits.
5 . The method according to claim 1 , wherein the cyclic redundancy code is coded over 8 bits.
6 . The method according to claim 1 , wherein the cyclic redundancy code is coded over 16 bits.
7 . The method according to claim 1 , further comprising configuring the second register to be non-readable except for a transfer from the interface to the memory and a transfer from the memory to the interface.
8 . The method according to claim 1 , wherein the non-volatile memory is a FLASH memory.
9 . An electronic circuit configured to implement the method according to claim 1 .
10 . A method of processing a key with respect to a non-volatile memory of an integrated circuit comprising at least an interface of communication with the outside of the integrated circuit, comprising steps of:
writing, from outside of the integrated circuit, a key into a second register of an interface of the non-volatile memory;
writing, from the outside the integrated circuit, a first precomputed cyclic redundancy code into a first register of said interface;
computing a result of a third cyclic redundancy code on a message formed by the key having the first precomputed cyclic redundancy code linked thereto; and
considering writing of the security key into the second register as valid when the third cyclic redundancy code is equivalent to a zero value.
11 . The method according to claim 10 , further comprising:
writing the key into a zone of the non-volatile memory; and
verifying the writing of the key into the non-volatile memory.
12 . The method according to claim 11 , wherein verifying comprises steps of:
copying the key written into said zone into the second register of said interface;
computing a second cyclic redundancy code on a message formed by the copied key having the first cyclic redundancy code linked thereto; and
considering the writing of the key into said non-volatile memory as valid when the second cyclic redundancy code is equivalent to a zero value.
13 . The method according to claim 12 , wherein each of the second and the third cyclic redundancy codes equivalent to the zero value is 0x00.
14 . The method according to claim 10 , further comprising considering one of said steps as not valid when the third cyclic redundancy code is not equivalent to the zero value.
15 . The method according to claim 10 , wherein the third cyclic redundancy code equivalent to the zero value is 0x00.
16 . The method according to claim 10 , wherein the key is coded over 128 bits.
17 . The method according to claim 10 , wherein the cyclic redundancy codes are coded over 8 bits.
18 . The method according to claim 10 , wherein the cyclic redundancy codes are coded over 16 bits.
19 . The method according to claim 10 , further comprising configuring the second register to be non-readable except for a transfer from the interface to the memory and a transfer from the memory to the interface.
20 . The method according to claim 10 , wherein the non-volatile memory is a FLASH memory.
21 . An electronic circuit configured to implement the method according to claim 10 .