主权项 |
1. A method of generating a selector map from a physically unclonable function (PUF) circuit, wherein the PUF circuit includes a plurality of ring oscillators, comprising:
generating a PUF initial value by the PUF circuit, the PUF value including a plurality of n bits, wherein the generating includes for each bit of the plurality of bits:
inputting challenge data to the PUF circuit,counting a first number of cycles of a PUF signal output from a first ring oscillator of the plurality of ring oscillators and counting a second number of cycles of a PUF signal output from a second ring oscillator of the plurality of ring oscillators,subtracting the first number of cycles from the second number of cycles to produce a difference,determining a respective stability metric of each bit of the plurality of bits of the PUF initial value by a generator circuit as a function of a magnitude of the difference, andstoring the respective stability metric in association with the bit position; inputting a PUF value size, m, indicating a number of PUF bits required in a PUF final value, wherein n and m are integers greater than 0, and n is greater than m; determining, from the n stability metrics stored in association with the bit positions of the PUF initial value, (n−m) least stable ones of the n bits; setting a first subset of entries in the selector map in a memory to a first state by the generator circuit, the first subset of entries corresponding to a first subset of the plurality of bits of the PUF initial value; wherein the first subset of entries in the selector map includes m entries that correspond to m of the respective bit positions of the PUF initial value that are associated with m of the n stability metrics other than the bit positions of the PUF initial value that are associated with the (n−m) least stable ones of the n bits; setting a second subset of entries in the selector map to a second state by the generator circuit, the second subset of entries corresponding to a second subset of the plurality of bits of the PUF initial value; wherein the first state of an entry in the selector map indicates a corresponding bit position of the PUF initial value is stable, and the second state of an entry in the selector map indicates a corresponding bit position of the PUF initial value is unstable; and wherein the second subset of entries in the selector map includes (n−m) entries that correspond to (n−m) of the respective bit positions of the PUF initial value that are associated with the (n−m) least stable ones of the n bits. |