Διαφορά μεταξύ των αναθεωρήσεων του «Γεννήτρια Τυχαίων Αριθμών»

μ
τυπογραφικό
μ (Αντικατάσταση παρωχημένου προτύπου με references tag)
μ (τυπογραφικό)
 
Οι γεννήτριες τυχαίων αριθμών έχουν εφαρμογές σε [[τυχερά παιχνίδια]], [[Δείγμα (στατιστική)|δειγματολειψία για στατιστικές]], [[Προσομοίωση|προσομοιώσεις]], [[κρυπτογραφία]], [[εντελώς τυχαίος σχεδιασμός|εντελώς τυχαίo σχεδιασμό]] και άλλες περιοχές όπου η παραγωγή ενός απρόβλεπτου αποτελέσματος είναι επιθυμητή.
Σε γενικές γραμμές , όπου απρόβλεπτοι αριθμοί είναι υψίστης σημασίας - όπως σε εφαρμογές ασφάλειας – οι μηχανικές γεννήτριες προτιμούνται ( όπου είναι εφικτό ) από ψευδοτυχαίους αλγόριθμους.
 
Οι γεννήτριες τυχαίων αριθμών είναι πολύ χρήσιμες στους αλγόριθμους Monte Carlo και τις προσομοιώσεις, διότι η εκσφαλμάτωση διευκολύνεται από την δυνατότητα των γεννητριών να παράξουν την ίδια ακολουθία τυχαίων αριθμών σε πολλά τρεξίματα της ίδιας εφαρμογής. Χρησιμοποιούνται επίσης στην κρυπτογραφία – όταν ηο σποράσπόρος (seed) είναι μυστικήμυστικός.
 
Η δημιουργία ψευδοτυχαίων αριθμών είναι μία σημαντική και συχνή εργασία στον προγραμματισμό ηλεκτρονικών υπολογιστών. Ενώ η κρυπτογραφία και ορισμένοι αριθμητικοί αλγόριθμοι απαιτούν πολύ υψηλό βαθμό τυχαιότητας, πολλές λειτουργίες δεν το χρειάζονται. Μερικά απλά παραδείγματα είναι το "τυχαίο απόσπασμα της ημέρας", ή η κίνηση ενός χαρακτήρα σε ένα ηλεκτρονικό παιχνίδι Ηπιότερες μορφές της τυχαιότητας χρησιμοποιούνται σε αλγόριθμους κατακερματισμού και ταξινόμησης.
Υπάρχουν δύο κύριες μέθοδοι που χρησιμοποιούνται για την παραγωγή τυχαίων αριθμών. Η πρώτη μέθοδος μετρά κάποιο φαινόμενο μιας φυσική πηγής που αναμένεται να είναι τυχαίο και στη συνέχεια αντισταθμίζει πιθανές αποκλίσεις της διαδικασίας μέτρησης. Παραδείγματα τέτοιων πηγών είναι η μέτρηση του ατμοσφαιρικού θορύβου, του θερμικού θορύβου και άλλων εξωτερικών ηλεκτρομαγνητικών και κβαντικών φαινομένων.
 
Η δεύτερη μέθοδος χρησιμοποιεί υπολογιστικούς αλγόριθμους που μπορούν να παράγουν μεγάλες σειρές φαινομενικά τυχαίων αποτελεσμάτων, τα οποία είναι στην πραγματικότητα πλήρως προκαθορισμένα από μια μικρότερη αρχική τιμή, που είναι γνωστή ως σποράσπόρος ή κλειδί. Αυτοί οι αλγόριθμοι ονομάζονται γεννήτριες ψευδοτυχαίων αριθμών. Αυτοί οι τύποι των γεννητριών συνήθως δεν βασίζονται σε φυσικές πηγές, αν και μπορεί να χρησιμοποιήσουν κάποια φυσική πηγή για αρχικοποίηση τηςτου σποράςσπόρου, έτσι ώστε τα αποτελέσματα να είναι φαινομενικά απρόβλεπτα.
 
Μια "γεννήτρια τυχαίων αριθμών" που βασίζεται αποκλειστικά σε ντετερμινιστικούς υπολογισμός δεν μπορεί να θεωρηθεί ως μία "πραγματική" γεννήτρια τυχαίων αριθμών στην πιο αυστηρή έννοια του όρου, δεδομένου ότι τα αποτελέσματα είναι προβλέψιμα όταν όταν ηο σποράσπόρος είναι γνωστήγνωστός. Στην πράξη όμως είναι επαρκής για τις περισσότερες εργασίες. Προσεκτικά σχεδιασμένες γεννήτριες ψευδοτυχαίων αριθμών μπορούν ακόμη και να πιστοποιηθούν για κρυπτογραφικές εφαρμογές όπου η ασφάλεια είναι κρίσιμη, όπως είναι η περίπτωση με τους αλγόριθμους Yarrow και Fortuna (PRNG).
 
== ΜεθόδοιΜέθοδοι δημιουργίας ==
 
=== Υλικές μεθόδοιμέθοδοι ===
 
{{Main|Υλική γεννήτρια τυχαίων αριθμών}}
 
Οι παλαιότερες μεθόδοιμέθοδοι για την παραγωγή τυχαίων αριθμών - [[ζάρια]], [[Ρίξιμο νομίσματος|ρίξιμο ενός νομίσματος]], τροχοί [[Ρουλέτα|ρουλέτας]] - χρησιμοποιούνται ακόμα και σήμερα, κυρίως μόνο στα παιχνίδια και τα τυχερά παιχνίδια, διότι είναι πολύ αργές για τις περισσότερες εφαρμογές της στατιστικής και κρυπτογραφίας.
 
Μια υλική γεννήτρια τυχαίων αριθμών μπορεί να βασίζεται σε ένα τυχαίο ατομικό ή υποατομικό φυσικό φαινόμενο του οποίου η απροβλεπτικότητα μπορεί να αποδοθεί στους νόμους της [[Κβαντική μηχανική|κβαντικής μηχανικής]]. Πηγές [[Εντροπία|εντροπίας]] περιλαμβάνουν [[Ραδιενεργός ισορροπία|ραδιενεργό διάσπαση]], [[Johnson–Nyquist noise|θερμικό θόρυβο]], [[Πυροβολισμός|θόρυβο πυροβολισμού]], και τον [[Ραδιόφωνο|θόρυβο ραδιοφώνου]]. Ωστόσο, τα φυσικά φαινόμενα και τα εργαλεία που χρησιμοποιούνται για τη μέτρησή τους διαθέτουν γενικά ασυμμετρίες και συστηματικές αποκλίσεις που κάνουν τα αποτελέσματά τους να μην είναι ομοιόμορφα τυχαία. Μία [[Συνάρτηση παραγωγής|συνάρτηση τυχαίας απαγωγής]], όπως μια [[Συνάρτηση κατατεμαχισμού|κρυπτογραφική συνάρτηση κατακερματισμού]], μπορεί να χρησιμοποιηθεί για να προσεγγίσει μια ομοιόμορφη κατανομή των δυαδικών ψηφίων από μία μη-ομοιόμορφα τυχαία πηγή, αν και σε χαμηλότερο ρυθμό δυαδικών ψηφίων.
 
Το 2010, ο Κάντερ et al. από το Πανεπιστήμιο του Μπαρ-Ιλάν, δημιούργησε μία φυσική γεννήτρια τυχαίων διαδικώνδυαδικών ψηφίων που λειτουργεί σε ποσοστό 300 gigabits ανά δευτερόλεπτο, τη γρηγορότερη που έχει μέχρι στιγμής δημιουργηθεί.<ref>Kanter, Ido; Aviad, Yaara; Reidler, Igor; Cohen, Elad; Rosenbluh, Michael. An optical ultrafast random bit generator. Nature Photonics, Volume 4, Issue 1, pp. 58–61 (2010).</ref>
Διάφοροι τρόποι συλλογής αυτής της πληροφορίας έχουν επινοηθεί. Για παράδειγμα, η ιστοσελίδα [[Random.org]] διακυμάνσεις στο πλάτος του ατμοσφαιρικού θορύβου που παράγεται από ένα κανονικό ραδιόφωνο. Μερικές τεχνικές που σχετίζονται με την ασφάλεια λογισμικού ηλεκτρονικών υπολογιστών απαιτούν από τον χρήστη να κάνει μια σειρά από κινήσεις του ποντικιού ή κτύπημα πλήκτρων ώστε να δημιουργηθεί επαρκής εντροπία που απαιτείταταιαπαιτείται για τη δημιουργία τυχαίων κλειδιών ή να αρχικοποιήσει γεννήτριες ψευδοτυχαίων αριθμών. <ref>{{cite web
| last = TrueCrypt Foundation
| title = TrueCrypt Beginner's Tutorial, Part 3
=== Υπολογιστικές μεθόδοι ===
 
Οι γεννήτριες ψευδοτυχαίων αριθμών (PRNGs) είναι [[Αλγόριθμος|αλγόριθμοι]] που μπορούν να δημιουργήσουν αυτόματα μεγάλες σειρές αριθμών με καλές ιδιότητες τυχαιότητας, όμως η σειρά σε κάποιο σημείο αναγκάζεται να επαναληφθεί. Η σειρά των τιμών που παράγονται από τέτοιους αλγόριθμους καθορίζονται γενικά από ένα αρχικό αριθμό από ονομάζεται '''κλειδί''' ή '''σποράσπόρος'''. Ένας από τους πιο γνωστούς αλγόριθμους είναι η [[linear congruential generator|γραμμική συμβατική γεννήτρια]], η οποία χρησιμοποιεί την επανάληψη
:<math>X_{n+1} = (a X_n + b)\, \textrm{mod}\, m</math>
για να παράγει αριθμούς. Ο μέγιστος αριθμός των αριθμών του τύπου μπορεί να παράγει είναι o συντελεστής m . Για την αποφυγή ορισμένων μη τυχαίων ιδιοτήτων της γραμμικής συμβατικής γεννήτριας, αρκετές τέτοιες γεννήτριες με ελαφρώς διαφορετικές τιμές του συντελεστή πολλαπλασιασμού A μπορούν να χρησιμοποιηθούν παράλληλα με μια "κύρια" γεννήτρια τυχαίων αριθμών να επιλέγει μεταξύ των πολλών διαφορετικών γεννητριών.{{Citation needed|date=December 2013}}
Οι περισσότερες γλώσσες προγραμματισμού ηλεκτρονικών υπολογιστών συμπεριλαμβάνουν συναρτήσεις ή ρουτίνες σε βιβλιοθήκες που παρέχουν γεννήτριες τυχαίων αριθμών. Συχνά είναι σχεδιασμένες για να παρέχουν ένα τυχαίο byte, ένα τυχαίο ακέραιο αριθμό, ή έναν αριθμό κινητής υποδιαστολής που είναι ομοιόμορφα κατανεμημένος μεταξύ του 0 και 1.
 
Η ποιότητα των εν λόγω λειτουργιών ποικίλλουν ευρέως από εντελώς προβλέψιμη απόδοση, σε κρυπτογραφικά ασφαλές. Η βασική γεννήτρια τυχαίων αριθμών σε πολλές γλώσσες , συμπεριλαμβανομένης της Python, Ruby, R και PHP βασίζεται στον αλγόριθμο Mersenne Twister και '''δεν'' είναι επαρκής για κρυπτογραφικούς σκοπούς, όπως και αναφέρεται ρητά στην τεκμηρίωση της γλώσσας. Τέτοιες υλοποιήσεις έχουν συχνά κακές στατιστικές ιδιότητες και κάποιοιεςκάποιες επαναλαμβάνονται μετά από μόνο δέκα χιλιάδες δοκιμές . Συχνά αρχικοποιούνται χρησιμοποιώντας το ρολόι του χρόνου ενός υπολογιστή ως σποράσπόρο, αφού το ρολόι αυτό έχει [[ακρίβεια]] χιλιοστών ενόςτου δευτερολέπτου, κάτι αρκετά μεγαλύτερο από την ακρίβεια ενός ανθρώπου. Αυτές οι γεννήτριες είναι ικανοποιητικές για ορισμένες εργασίες (για παράδειγμα, βιντεοπαιχνίδια), αλλά είναι ακατάλληλα όπου απαιτείται τυχαιότητα υψηλής ποιότητας, όπως σε εφαρμογές κρυπτογραφίας, στατιστική ή αριθμητική ανάλυση.
 
Πολύ υψηλότερης ποιότητας πηγές τυχαίων αριθμών είναι διαθέσιμες για τα περισσότερα λειτουργικά συστήματα. Για παράδειγμα το [[/dev/random]] σε διάφορα συστήματα BSD, Linux, Mac OS X, IRIX και Solaris, ή [[CryptGenRandom]] για τα Microsoft Windows. Οι περισσότερες γλώσσες προγραμματισμού, συμπεριλαμβανομένων και των προαναφερθέντων, παρέχουν κάποια λειτουργικότητα που δίνει πρόσβαση σε αυτές τις πιο ποιοτικές πηγές.
115

επεξεργασίες