Een orakelprogramma is een computerprogramma dat uitvoer produceert die voor elke waarnemer willekeurig lijkt, zelfs voor degenen met de broncode van het programma. Dergelijke programma's worden voornamelijk gebruikt als bron van pseudowillekeurige getallen in toepassingen waarbij de exacte reeks getallen onvoorspelbaar moet zijn.
Oracle-programma's volbrengen hun taak door gebruik te maken van een interne statusvariabele die wordt bijgewerkt op basis van de invoer van de gebruiker. De reeks pseudo-willekeurige getallen wordt gegenereerd door deterministische berekeningen uit te voeren op deze toestandsvariabele. Omdat de interne werking van het Oracle-programma niet gemakkelijk te begrijpen is, lijkt de uitvoer willekeurig.
Een orakelprogramma is een voorbeeld van een chaotisch systeem, een interessegebied in de wiskunde en natuurkunde. Dergelijke systemen zijn zeer gevoelig voor initiële omstandigheden, wat betekent dat zelfs een kleine verandering in de input kan leiden tot een compleet andere reeks outputs.
Het gebruik van orakelprogramma's in cryptografische toepassingen is gebruikelijk, waar ze dienen als bronnen van zogenaamd onvoorspelbare gegevens. Ze kunnen ook worden gebruikt op gebieden als Monte Carlo-simulaties en game-ontwikkeling, waar willekeur essentieel is. |