I'm working with an IoT platform in FPGA for evaluation and prototyping. I need to provide support for TLS, and for that I need an entropy source.
I understand that true random noise sources are quite specialist (if even practical) in FPGA, since the device performance is often pretty good (and hard to find any corner-case parameters), but I can implement a pseudo-random sequence generator without any problems.
I only have some standard I/O channels (uart, I2C, etc), nothing that looks like it can provide even much to seed a PRBS - except maybe an audio ADC input. Are there maybe any reliable tricks for generating entropy in an FPGA which I ought to consider?
Assuming that I use a PRBS, I can potentially attach an external noise source which I could certainly use as a seed. I'm interested to know how much this would actually add to my TLS implementation. Would this be reliable and secure, or only slightly better than using a fixed pseudo-random sequence? Would I need to keep polling the external noise source for more entropy?
It's OK if the entropy source I end up with isn't properly crypto-secure (since this is just for prototyping), but I'd like to understand the cost-quality trade-off.