I understand that PUFs (physically unclonable functions) produce unique output based on challenge input because of their sensitivity to manufacturing differences, but not how the actual authentication works. It sounds like one approach is to have a server that keeps a table of known responses to challenges, but wouldn't that table eventually be exhausted?
Can you explain some of the ways that PUFs are used to implement device authentication or cryptography, and how they differ from other methods like a key stored in ROM?