Daar had ik het ook over. Mijn punt was dat je het over resources en performance had. Een user-input seed genereer je een keer en heb je in principe geen resources voor nodig die je niet meteen weer vrij geeft. Mijn battery remove opmerking was gebasseerd op het feit dat als je een seed opslaat in een eeprom, je dat toch op een bepaald moment moet doen. Er is altijd de mogelijkheid dat je device uitgezet wordt voordat die write wordt gedaan, en op dat moment gebruik je weer dezelfde seed en genereer je weer dezelfde getallen in een volgende sessie. Dus moet je op een goed moment die opslag doen.
Na je eerste random de seed naar eeprom schrijven lijkt me ook een oplossing idd. Enige "nadeel" vind ik hier dat je sequences volledig deterministisch zijn en niet 100% veilig mocht je dat nodig hebben. Plus dat elk device uit factory settings waarschijnlijk dezelfde getallen gaat genereren in sequence. Of je moet elke anders initialiseren. Plus dat je eeprom geheugen nodig hebt. Alles bij elkaar lijkt me het dynamisch genereren van een seed dan toch een betere oplossing.
HAHAHAHA, ach ik denk dat je er alleen maar van kunt leren. En er zijn idd genoeg wegen die naar Rome leiden alleen heb ik al iets te vaak de kreet: "Random-function is not Random" als problem report gezien. B.v. heb ik ooit gewerkt aan een BT-stack waar dit toch echt wel van belang was.....
Van luisteren naar andere opties leer je idd altijd wel wat. Ik nam je kennis niet in twijfel. Maar om meteen een redelijke oplossing af te doen als zeker niet door een review cycle te komen... hmmm...
De seed afhankelijk maken van een user input lijkt mooi maar is wss niet random genoeg. (En tja dat kan best wel bull zijn want ik ken de toepassing niet waar we het hier over hebben. Voor 't zelfde geld is dit helemaal niet functie kritisch, dan slik ik bij deze al m'n commentaar graag in).
Hmm dat ligt eraan hoe je het implementeert. Van wat ik weet wordt key-generation altijd op user-input randomness gedaan omdat dat meestal de enige betrouwbare source van entropie is op je systeem. 10 seconden met je muis bewegen en toetsen aanslaan en dat dan op microseconde niveau timen. Als je in een applicatie iets inbouwt dat zegt "click mouse to start" en je timed de microseconde fractie van hoe lang het duurt voordat je klikt, plus de positie van het inputdevice kan dat prima werken. Het ligt er natuurlijk aan wat voor device je hebt. Op een wasmachine is dat lastig. Er is denk ik altijd wel iets slims te bedenken dat zo werkt.
p.s. huidige functie, System Architect, 15 jaar ervaring in o.a. embedded systems ;-), Just trying to help....
Ik weet eigenlijk niets van embedded systems... ik denk gewoon logisch na, daar wordt ik voor opgeleid. En om kritisch te zijn.