Πώς να νικήσετε τους κουλοχέρηδες
- Άλεξ, ο άνθρωπος που αποκρυπτογράφησε τη γεννήτρια ψευδοτυχαίων αριθμών (PRNG) που χρησιμοποιούν οι κουλοχέρηδες και κέρδισε εκατομμύρια
- Απάτες, χειραγώγηση μηχανημάτων και ειδικά εργαλεία
- Κουλοχέρηδες και προβλήματα λογισμικού
- Παράρτημα: Πώς μπορεί να λειτουργεί ο αλγόριθμος του Άλεξ
Οι σωστά σχεδιασμένοι κουλοχέρηδες που λειτουργούν με Γεννήτριες Τυχαίων Αριθμών είναι θεωρητικά ανίκητοι. Στην πραγματικότητα, όμως, έχουν καταγραφεί πολλές περιπτώσεις παικτών που κατάφεραν να ξεγελάσουν τους κουλοχέρηδες και να κερδίσουν πολύ περισσότερα χρήματα από ό,τι θα ήθελαν οι ιδιοκτήτες των καζίνο.
Πολλά από αυτά τα κόλπα είναι απλά κλοπή. Συνήθως, περιλαμβάνουν εργαλεία που ξεγελούν το μηχάνημα του κουλοχέρη, και πιο συγκεκριμένα τις συσκευές διανομής κερμάτων ή υποδοχής χαρτονομισμάτων. Σε κάποιες περιπτώσεις, υπήρξε άνθρωπος του καζίνο με εσωτερική γνώση, που βοήθησε στην εξαπάτηση του κουλοχέρη.
Σε κάποιες άλλες περιπτώσεις, οι παίκτες ήταν απλά ανέλπιστα τυχεροί. Κατάφεραν να βρουν ένα πρόβλημα στο λογισμικό και το χρησιμοποίησαν υπέρ τους.
Ωστόσο, η πιο ενδιαφέρουσα ιστορία με διαφορά είναι η πολύ πρόσφατη ιστορία (2009-2018) ενός Ρώσου από την Αγία Πετρούπολη, που κατάφερε να προβλέψει επιτυχώς το αποτέλεσμα της περιστροφής σε ορισμένα μοντέλα κουλοχέρηδων και το χρησιμοποίησε για να αποσπάσει εκατομμύρια από καζίνο σε ολόκληρο τον κόσμο.
Η ιστορία αυτή είναι τόσο απίστευτη που αποφάσισα να της αφιερώσω αρκετό χρόνο και να επιχειρήσω μια εις βάθος ανάλυση των τεχνικών που χρησιμοποίησε.
Άλεξ, ο άνθρωπος που αποκρυπτογράφησε τη γεννήτρια ψευδοτυχαίων αριθμών (PRNG) που χρησιμοποιούν οι κουλοχέρηδες και κέρδισε εκατομμύρια
Ο Άλεξ εργαζόταν ως ελεύθερος επαγγελματίας προγραμματιστής και χάκερ, όταν ένα ρωσικό καζίνο τον προσέλαβε για να χειραγωγήσει το RTP κάποιων κουλοχέρηδων της Novomatic. Για να τα καταφέρει, έπρεπε να μάθει λεπτομερώς τον εσωτερικό τρόπο λειτουργίας αυτών των μηχανημάτων. Επίσης, έμαθε για τις PRNG (Γεννήτριες Ψευδοτυχαίων Αριθμών), πώς δουλεύουν και πώς χρησιμοποιούνται στους κουλοχέρηδες. Η μεγάλη τομή, όμως, έγινε όταν εντόπισε ότι οι κουλοχέρηδες χρησιμοποιούσαν έναν μη ασφαλή αλγόριθμο PRNG που θα μπορούσε να δώσει προβλέψιμα αποτελέσματα.
Το πραγματικό RNG χρησιμοποιεί τον ηλεκτρομαγνητικό θόρυβο για να δημιουργήσει εντελώς τυχαίες και απολύτως απρόβλεπτες τιμές. Το PRNG έχει διαφορετικό τρόπο λειτουργίας. Ξεκινάει με μια προκαθορισμένη τιμή και, στη συνέχεια, τη συνδυάζει με άλλα δεδομένα εισόδου για να δημιουργήσει μια σειρά άπειρων τιμών. Με μια πρώτη ματιά, οι τιμές που βγάζει το PRNG φαίνονται εντελώς τυχαίες και απρόβλεπτες. Ωστόσο, αν το PRNG χρησιμοποιεί έναν αδύναμο αλγόριθμο και γνωρίζεις ακριβώς ποιον αλγόριθμο χρησιμοποιεί, τότε ίσως να μπορείς να προβλέψεις τον επόμενο τυχαίο αριθμό.
Ο Άλεξ είχε προφανώς παρατηρήσει ότι οι αλγόριθμοι που χρησιμοποιούσαν κάποιοι κουλοχέρηδες ήταν αδύναμοι και αποφάσισε να το χρησιμοποιήσει προς όφελός του.
Τα επόμενα χρόνια κατάφερε να θέσει τις βάσεις και να προετοιμάσει μια πολύ πιο σύνθετη και εκλεπτυσμένη αποστολή:
- Ανέστρεψε τη μηχανική (reversed-engineered) πολλών δημοφιλών κουλοχέρηδων.
- Σχεδίασε έναν αλγόριθμο που μπορεί να αποκρυπτογραφήσει τις τρέχουσες παραμέτρους PRNG και να προβλέψει τα αποτελέσματα των επόμενων περιστροφών, βάσει των αποτελεσμάτων που δίνουν είκοσι τέσσερις περιστροφές σε έναν κουλοχέρη.
- Έφτιαξε μια εφαρμογή για iPhone, η οποία χρησιμοποιούσε τους αριθμούς που είχαν προβλεφθεί για να πει στους παίκτες πότε ακριβώς να πατήσουν το κουμπί περιστροφής για να κερδίσουν.
- Για τα επόμενα 6-7 χρόνια, προσέλαβε δεκάδες ανθρώπους που πήγαιναν οι ίδιοι να παίξουν, με την αποστολή να «αρμέξουν» τα καζίνο σε ολόκληρο τον κόσμο.
Ο Άλεξ ισχυρίζεται ότι εκείνη την εποχή εκείνος και η ομάδα του κατάφεραν να κερδίσουν εκατομμύρια δολάρια.
Ήταν το σύστημα του Άλεξ νόμιμο και ηθικά αποδεκτό;
Η τεχνική που ανέπτυξε δεν περιελάμβανε καμία απαγορευμένη χειραγώγηση των κουλοχέρηδων. Αυτή είναι και η τεράστια διαφορά της μεθόδου του από άλλες τεχνικές κλοπής που περιγράφονται πιο κάτω, οι οποίες ξεγελούν το μηχάνημα του κουλοχέρη προκειμένου να πληρώσει περισσότερα χρήματα. Η στρατηγική του Άλεξ βασίζεται σε καθαρά μαθηματικά από παρατηρήσεις που έκανε ο ίδιος και, επομένως, μπορεί να θεωρηθεί ως μια έγκυρη και τίμια στρατηγική.
Πολλοί ειδικοί των τυχερών παιχνιδιών (μεταξύ των οποίων κι εγώ) θεωρούν ότι οι ενέργειες του Άλεξ ήταν απόλυτα έντιμες και θεμιτές. Θα τις συνέκρινα με το μέτρημα φύλλων στο μπλακτζάκ, το κυνήγι μπόνους ή το ποντάρισμα με πλεονέκτημα. Τα καζίνο τοποθετούν τους κουλοχέρηδες στις εγκαταστάσεις τους οικειοθελώς και αν κάποιος είναι αρκετά έξυπνος για να προβλέψει τα αποτελέσματα και να τα εκμεταλλευτεί προς όφελός του, τότε αυτό είναι δικό τους πρόβλημα.
Όμως, τα καζίνο (ειδικά τα επίγεια) είναι τεράστιες επιχειρήσεις με πάρα πολλά χρήματα και στενές σχέσεις με τις τοπικές αρχές. Χωρίς δεύτερη σκέψη, όταν τα καζίνο κατάλαβαν ότι υπάρχει μια οργανωμένη ομάδα ανθρώπων που χρησιμοποιεί τους κουλοχέρηδες σαν μηχανήματα αυτόματης ανάληψης, άσκησαν πιέσεις. Οι αρχές και οι δικηγόροι των καζίνο τελικά κατάφεραν να βρουν έναν ορισμό εγκλήματος που αντιστοιχούσε σε αυτό που έκαναν ο Άλεξ και η ομάδα του. Δηλαδή, «συνωμοσία για διάπραξη απάτης». Το αποτέλεσμα ήταν ότι το 2015 συνελήφθησαν 4 από τους υπαλλήλους του Άλεξ στο Μιζούρι (στους οποίους αργότερα απαγγέλθηκαν κατηγορίες και καταδικάστηκαν σε διετή φυλάκιση) [2].
Αυτό ήταν το σημείο καμπής της ιστορίας και κάποιοι υπάλληλοι άρχισαν να μιλούν πιο ανοιχτά για τις λεπτομέρειες του συστήματος που χρησιμοποιούσαν για να απομυζούν χρήματα. Η ύπαρξη αυτής της ομάδας είχε προφανώς γίνει γνωστή στους υπεύθυνους ασφαλείας των περισσότερων καζίνο στον κόσμο και ακολούθησε άλλη μία σύλληψη στη Σιγκαπούρη [3].
Οι προσπάθειες του Άλεξ να συνεργαστεί με κατασκευαστές κουλοχέρηδων
Ο Άλεξ, καταλαβαίνοντας ότι η χρήση αυτού του συστήματος είχε γίνει πολύ ριψοκίνδυνη για τους υπαλλήλους του, αποφάσισε να κάνει μια τελευταία προσπάθεια να χρησιμοποιήσει την τεχνογνωσία που είχε, για να βγάλει λεφτά. Επικοινώνησε απευθείας με την Aristocrat, την εταιρεία που κατασκεύαζε τους κουλοχέρηδες που είχε καταφέρει να αποκρυπτογραφήσει. Ελπίζοντας σε οκταψήφια αμοιβή, προσέφερε τις υπηρεσίες του προκειμένου να βελτιώσει τους αλγόριθμους PRNG και να διορθώσει όλα τα προβλήματα ασφαλείας. Συγχρόνως, απείλησε την Aristocrat ότι αν δεν δεχόταν την προσφορά του, θα πουλούσε τις ευαίσθητες πληροφορίες που είχε στη διάθεσή του στους ανταγωνιστές της. Όμως, η Aristocrat αρνήθηκε να παίξει το παιχνίδι του, παρά το γεγονός ότι τους είχε δώσει όλες τις μαθηματικές λεπτομέρειες που αποδείκνυαν τις αδυναμίες τους.
Όταν η Aristocrat απέρριψε την πρόταση του Άλεξ, εκείνος αποφάσισε να δώσει ακόμα μία ευκαιρία και να ασκήσει λίγη ακόμα πίεση δημοσιοποιώντας την ιστορία του. Ήρθε σε επαφή με τον Brendan Koerner - τον άνθρωπο που είχε ήδη αναφερθεί σε κάποια από τα γνωστά γεγονότα της ιστορίας του σε αυτό το άρθρο.
Ο Brendan συμφώνησε να συνεχίσει την ιστορία και δημοσίευσε ακόμα ένα άρθρο με πολλές καινούργιες λεπτομέρειες που του έδωσε ο ίδιος ο Άλεξ. Αν δεν το είχε κάνει, δεν θα είχατε την ευκαιρία να μάθετε για την υπόθεση αυτή στο παρόν άρθρο.
Πόση έκταση πήρε και ποιες ήταν οι συνέπειες;
Υπάρχουν αρκετά αποδεικτικά στοιχεία ότι ο Άλεξ κατάφερε να εφαρμόσει τη στρατηγική του σε έναν κουλοχέρη MK IV παλαιότερης τεχνολογίας της Aristocrat. Η ίδια η Aristocrat συστήνει πλέον στους πελάτες της να αντικαταστήσουν τα μηχανήματά τους. Παρ' όλα αυτά, υπάρχουν ακόμα χιλιάδες τέτοια μηχανήματα σε πολλά καζίνο σε ολόκληρο τον κόσμο. Όχι ότι τα περισσότερα καζίνο θα έχουν πρόβλημα να τα αντικαταστήσουν αν είναι απαραίτητο.
Ο Άλεξ ισχυρίζεται (και υπάρχουν κάποια στοιχεία που στηρίζουν τους ισχυρισμούς του [4]) ότι το 2009, άρχισε να αποκρυπτογραφεί το PRNG κάποιων παλαιότερων κουλοχέρηδων της Novomatic. Είναι, ωστόσο, πολύ πιθανό ότι η Novomatic μπόρεσε να διορθώσει τις αδυναμίες του συστήματός της με μια ενημέρωση ασφάλειας το 2011. Ίσως το δίπλωμα ευρεσιτεχνίας «Σύστημα και Μέθοδος Κεντρικής Επεξεργασίας των Γεννητριών Τυχαίων Αριθμών» που κατέχει η Novomatic από το 2013 να σχετίζεται με αυτό.
Ο Άλεξ ισχυρίζεται, επίσης, ότι κατάφερε να κάνει το ίδιο με κάποια μηχανήματα της Atronic.
Ο πιο ισχυρός ισχυρισμός του Άλεξ είναι ότι βρήκε παρόμοιες αδυναμίες στον κουλοχέρη Helix της Aristocrat. Το Helix είναι ένα από τα σημερινά της μοντέλα, επομένως, αν ο Άλεξ δεν μπλοφάρει, η Aristocrat μπορεί να έχει ακόμα μεγαλύτερα προβλήματα - ειδικά αν δεν διορθώνονται με μια ενημέρωση ασφαλείας ή με αντικατάσταση ενός τσιπ. Από την άλλη, όμως, η Aristocrat είναι μια τεράστια εταιρεία με έσοδα 2 δισεκατομμυρίων δολαρίων και κέρδη 500 εκατομμυρίων δολαρίων ετησίως. Άρα, μάλλον θα επιβιώσουν (με ριζική αντικατάσταση του εσωτερικού εξοπλισμού τους και λαβωμένη φήμη, στη χειρότερη περίπτωση).
Πάντως μην περιμένετε πολλά. Ακόμα κι αν ο Άλεξ αποφασίσει να δημοσιοποιήσει περισσότερες λεπτομέρειες για αυτούς τους αλγόριθμους, τα καζίνο πολύ πιθανόν να κλείσουν όλους τους κουλοχέρηδες που επηρεάζονται, πριν προλάβει να τους εκμεταλλευτεί ο απλός κόσμος.
Αληθινή ιστορία ή αστικός μύθος;
Υπάρχουν πολλά έμμεσα αποδεικτικά στοιχεία ότι η ιστορία όπως την περιγράφει ο Άλεξ είναι αληθινή. Οι αρχές δεν θα είχαν συλλάβει και καταδικάσει τους υπαλλήλους του σε 2 χώρες αν δεν ήταν αληθινή. Η Novomatic δε θα έκανε έρευνες για τη χειραγώγηση των κουλοχέρηδων και δεν θα κυκλοφορούσε ενημερώσεις ασφαλείας αν δεν ήταν αληθινή.
Ναι, αλλά οι κατασκευαστές κουλοχέρηδων δεν έχουν ειδικό προσωπικό αποκλειστικά για την ασφάλεια; Πώς είναι δυνατόν να ξεφύγει κάτι τέτοιο από την προσοχή αυτών των τεράστιων εταιρειών;
Θα σας δώσω την απάντηση σε αυτό - πολύ εύκολα.
Έχω εργαστεί ως προγραμματιστής 10 χρόνια και γνωρίζω πόσο εύκολο είναι να περάσουν απαρατήρητες οι απειλές για την ασφάλεια. Κάτι που είναι ακόμα πιο εύκολο να συμβεί όταν οι επιθέσεις είναι αγνώστου τύπου, όπως η συγκεκριμένη. Ακόμα κι αν υποθέσουμε ότι εκείνη την εποχή υπήρχε κάποιος υπεύθυνος ασφαλείας, θα ήταν εκπαιδευμένος να αντιμετωπίζει μόνο τις απειλές που ήταν ήδη γνωστές (monkey paw κ.τλ.). Αν η ομάδα ανάπτυξης δεν είχε κάποιον πραγματικά ειδικό, κάποιον που να είναι σε θέση να προβλέψει νέες αδυναμίες και να προειδοποιήσει κατάλληλα, τότε θα ήταν εύκολο να μην εντοπιστεί αυτή η απειλή PRNG.
Η μόνη απαίτηση των ρυθμιστικών αρχών ήταν να υπάρχει ομοιόμορφη κατανομή των αριθμών που δημιουργούσαν οι PRNG. Αυτό ακριβώς κάνουν ακόμα και οι πιο απλές PRNG. Η αδυναμία πρόβλεψης (κρυπτογραφική ασφάλεια) δεν χρειάζεται καν να ελεγχθεί.
Η έννοια του PRNG είναι σχεδόν εξωγήινη για τους περισσότερους επιχειρηματίες. Αυτοί ενδιαφέρονται μόνο για συγκεκριμένα πράγματα. Είναι ικανοποιημένοι όταν ένας κουλοχέρης:
- δεν κρασάρει,
- αρέσει στους παίκτες
- αποφέρει κέρδη.
Επιπλέον, το λογισμικό των κουλοχέρηδων πολλές φορές διατηρείται για πολλές γενιές μηχανημάτων με ελάχιστες ενημερώσεις. Και γιατί άλλωστε να αλλάξεις κάτι που λειτουργεί χωρίς προβλήματα εδώ και 15 χρόνια, έτσι δεν είναι; Άρα είναι πολύ πιθανό ότι πολλά σύγχρονα μηχανήματα χρησιμοποιούν τμήματα κώδικα από τις αρχές της δεκαετίας του '90.
Η τεχνική μου ανάλυση για το σύστημα του Άλεξ
Ξέρω ότι πολλοί από εσάς ανυπομονείτε να μάθετε λεπτομερώς πώς λειτούργησε το σύστημα του Άλεξ.
Γι' αυτό πήρα όλες τις πληροφορίες που έχουν δημοσιευτεί και αποφάσισα να σας δείξω πώς μπορεί να χρησιμοποιηθεί η αντίστροφη μηχανική για να προβλέψει τα μελλοντικά αποτελέσματα ενός κουλοχέρη PRNG. Ρίξτε μια ματιά στην τεχνική μου ανάλυση στο τέλος του άρθρου.
Απάτες, χειραγώγηση μηχανημάτων και ειδικά εργαλεία
Όπως είπα και νωρίτερα, πιστεύω ότι το σύστημα του Άλεξ ήταν ηθικώς αποδεκτό, ακόμα και νόμιμο σε κάποιες χώρες. Όμως, δεν ισχύει το ίδιο για όλους τους τρόπους που έχουν κατά καιρούς χρησιμοποιηθεί για να «νικήσουν» τους κουλοχέρηδες. Στο παρελθόν χρησιμοποιήθηκαν πολλοί παράνομοι τρόποι για να ξεγελάσουν τους κουλοχέρηδες.
Οι περισσότερες καταγεγραμμένες απάτες κουλοχέρηδων έχουν να κάνουν με χειραγώγηση του μηχανήματος ή/και με ειδικά εργαλεία που χρησιμοποιούνται για να «ξεγελάσουν» τον κουλοχέρη και να αποφέρουν κέρδη.
Κάποιες από αυτές τις απάτες γινόντουσαν κατ' επανάληψη. Άλλες μόνο μία φορά. Ο κοινός παρονομαστής όλων είναι το γεγονός ότι δουλεύουν μόνο σε απτά μηχανήματα κουλοχέρηδων που μπορείτε να βρείτε στα επίγεια καζίνο. Από τη στιγμή που οι παίκτες πρέπει να είναι κοντά σε ένα μηχάνημα για να το χειραγωγήσουν, οι online κουλοχέρηδες είναι προστατευμένοι.
Επιπλέον, από τη στιγμή που τα καζίνο έπεφταν συνέχεια θύματα απάτης, άρχισαν να εφαρμόζουν περισσότερα μέτρα ασφαλείας και αναβάθμισης των μηχανημάτων, με αποτέλεσμα οι περισσότερες από τις απάτες που θα σας αναφέρω να είναι αδύνατο να εφαρμοστούν σήμερα.
Ας ξεκινήσουμε. Παρακάτω, σας παρουσιάζω κάποιους από τους τρόπους εξαπάτησης των κουλοχέρηδων που εφαρμόζονταν στο παρελθόν.
Ψεύτικα κέρματα ή μάρκες
Η πρώτη απάτη κουλοχέρηδων που θα αναφέρω είναι πολύ απλή. Περιλαμβάνει ψεύτικα κέρματα ή οποιαδήποτε άλλη μορφή πληρωμής δέχονται οι κουλοχέρηδες. Αν μπορείτε να κατασκευάσετε κάτι που το μηχάνημα «αντιλαμβάνεται» ως κέρμα, μπορείτε να το χρησιμοποιήσετε για να κερδίσετε χρήματα.
Υπάρχει το πολύ γνωστό παράδειγμα ενός ανθρώπου που κατάφερε να χρησιμοποιήσει αυτή την τεχνική με μεγάλη επιτυχία. Ο Louis Colavecchio είναι ένας Αμερικάνος παραχαράκτης καζίνο γνωστός και ως «The Coin» (Κέρμα). Αυτός και η συμμορία του κατάφεραν να κατασκευάσουν μεγάλες ποσότητες από ψεύτικα κέρματα και μάρκες καζίνο και να τα χρησιμοποιήσουν για να κερδίσουν χρήματα σε καζίνο στο Ατλάντικ Σίτι και στο Κονέκτικατ. Συνελήφθη και έγινε αργότερα πολύ γνωστός χάρη στο The History Channel, που έκανε ένα ντοκιμαντέρ για εκείνον.
Κέρματα δεμένα σε σχοινί (Γιο-Γιο)
Αν έχετε παίξει με Γιο-Γιο, ξέρετε ότι ανεβοκατεβαίνει, όταν το χρησιμοποιείτε σωστά. Αυτό ακριβώς κάνει και ένα κέρμα δεμένο σε σχοινί. Πρώτα μπαίνει στον κουλοχέρη και μπορεί να πάει αρκετά βαθιά, ώστε το μηχάνημα να το καταγράψει και να ξεκινήσει το παιχνίδι. Μετά μπορείτε να το τραβήξετε πίσω και να το χρησιμοποιήσετε ξανά και ξανά.
Αυτή η τεχνική μοιάζει πολύ με τα ψεύτικα νομίσματα, αλλά γλιτώνετε την ανάγκη για μεγάλη παραγωγή ψεύτικων κερμάτων. Σχεδόν οποιοσδήποτε μπορεί να προσπαθήσει να εξαπατήσει ένα καζίνο, αν έχει ένα κέρμα δεμένο σε σχοινί. Εννοείται ότι δεν προσπάθησαν όλοι, ούτε τα κατάφεραν όλοι όσοι προσπάθησαν.
Παραποιημένα κέρματα (Shaved coins)
Επειδή η τεχνολογία που χρησιμοποιείται για να εξακριβωθεί η αυθεντικότητα των κερμάτων γίνεται όλο και καλύτερη, πολλά κόλπα με ψεύτικα κέρματα είναι αδύνατο πλέον να γίνουν ή, τουλάχιστον, πολύ δυσκολότερο. Οι κουλοχέρηδες άρχισαν να χρησιμοποιούν έναν αισθητήρα φωτός που κατέγραφε τις πληρωμές και αποφάσιζε αν τα κέρματα ήταν αληθινά ή ψεύτικα.
Ένα παραποιημένο κέρμα καταγραφόταν σαν έγκυρη μορφή πληρωμής, αλλά το μηχάνημα που μετρούσε το μέγεθος των εισερχόμενων κερμάτων το απέρριπτε. Έτσι, το κέρμα επιστρεφόταν στον παίκτη και μπορούσε να χρησιμοποιηθεί ξανά.
Αν το κέρμα έπρεπε να πληροί τις προδιαγραφές μεγέθους του κουλοχέρη, τοποθετούνταν στον κουλοχέρη ένα ακόμη αντικείμενο μαζί με το κέρμα. Το αντικείμενο αυτό ταίριαζε τέλεια με το μέγεθος του κέρματος και έμενε μέσα στο μηχάνημα, ενώ το παραποιημένο κέρμα «ξεγελούσε» τον οπτικό αισθητήρα και ξανάβγαινε.
Κρεμάστρες
Σκεφτείτε τους κουλοχέρηδες παλαιού τύπου οι οποίοι έδιναν κέρματα κάθε φορά που ένας παίκτης κέρδιζε. Διέθεταν έναν μηχανικό μετρητή χρημάτων, ο οποίος μετρούσε τα κέρματα που έβγαιναν από το μηχάνημα για να πληρώσει το ακριβές ποσό που είχε κερδίσει ο παίκτης.
Όσοι έκαναν αυτό το κόλπο χρησιμοποιούσαν μια κρεμάστρα (ή κάποιο άλλο αντικείμενο με παρόμοια μορφή και σχήμα) και την έσπρωχναν δίπλα στον μετρητή κερμάτων. Έτσι, επηρέαζαν την ακρίβειά του. Αυτό σήμαινε ότι ο κουλοχέρης πλήρωνε περισσότερα από όσα έπρεπε, κάτι που μακροπρόθεσμα έκανε το παιχνίδι πιο επικερδές.
Top-bottom joint
Ήταν ένα εργαλείο που αποτελούνταν από δύο μέρη... σωστά μαντέψατε - το πάνω και το κάτω μέρος και, πιο συγκεκριμένα, μια μεταλλική ράβδο που σχημάτιζε έναν κύκλο (το πάνω μέρος) και μια μακριά χορδή κιθάρας ή κάποιο άλλο λεπτό σύρμα (το κάτω μέρος).
Το κάτω μέρος έμπαινε στο κάτω μέρος του μηχανήματος, όπου ερχόταν σε επαφή με τα εσωτερικά ηλεκτρικά κυκλώματα του μηχανήματος και αντλούσε ένα μικρό φορτίο. Έπειτα, το πάνω μέρος έμπαινε στην είσοδο των κερμάτων, κάτι που έκλεινε το κύκλωμα και ανάγκαζε το μηχάνημα να πληρώσει όλα τα κέρματα που είχε μέσα.
Monkey paw
Το monkey paw δημιουργήθηκε από έναν άνθρωπο-θρύλο στην εξαπάτηση κουλοχέρηδων και καζίνο – τον Tommy Glenn Carmichael. Όμως, για να φτάσουμε στο monkey paw, πρέπει πρώτα να επιστρέψουμε στο top-bottom joint. Ο Carmichael ήταν ιδιοκτήτης ενός καταστήματος για επισκευές τηλεοράσεων που δεν πήγαινε πολύ καλά. Έτσι, όταν ο φίλος του, ο Ray Ming, του έδειξε το κόλπο top-bottom joint, εκείνος αποφάσισε να το δοκιμάσει.
Αν και είχε κάποια σχετική επιτυχία με αυτό, αργότερα συνελήφθη και καταδικάστηκε σε 5 χρόνια φυλάκιση, όχι μόνο για την απάτη αυτή αλλά και λόγω παλιότερων καταδικαστικών αποφάσεων. Στη συνέχεια, συνειδητοποίησε ότι το εργαλείο που χρησιμοποιούσε (το top-bottom joint) ήταν ήδη αρκετά γνωστό στα καζίνο. Κατάλαβε ότι έπρεπε να σκεφτεί κάτι καινούργιο για να εξαπατήσει τα καζίνο με επιτυχία.
Εφηύρε, λοιπόν, το monkey paw. Αγόρασε ένα μηχάνημα βίντεο πόκερ και άρχισε να πειραματίζεται. Ο Carmichael κατάφερε να δημιουργήσει έναν πολύ απλό αλλά λειτουργικό μηχανισμό. Κόλλησε ένα συρματάκι σε μια λυγισμένη μεταλλική ράβδο, την οποία έβαζε μέσα στον κουλοχέρη και την κουνούσε μέχρι να βρει τον διακόπτη για το δοχείο των νομισμάτων. Το τραβούσε και έπαιρνε όλα τα χρήματα που είχε μέσα του το μηχάνημα.
Φωτόσπαθο (Light wand)
Όταν οι κουλοχέρηδες εξελίχτηκαν τεχνολογικά και έγιναν πιο ασφαλείς, έπαψαν να χρησιμοποιούν μηχανικά συστήματα για να μετρούν χρήματα. Άρχισαν να χρησιμοποιούν οπτικούς αισθητήρες, κάτι που έκανε την πλειοψηφία των κόλπων που αναφέραμε πιο πάνω εντελώς ξεπερασμένα. Αλλά ο Carmichael προσαρμόστηκε στην αλλαγή και βρήκε έναν τρόπο να ξεγελάσει τα καινούργια συστήματα.
Έφτιαξε μια συσκευή που μπορούσε να «τυφλώσει» τον οπτικό αισθητήρα και να τον κάνει να μην μπορεί να δει ούτε πόσα χρήματα έμπαιναν στο μηχάνημα ούτε πόσα χρήματα πλήρωνε. Εφόσον το μηχάνημα θεωρούσε ότι δεν είχε πληρώσει ακόμα το σωστό ποσό, συνέχιζε να πληρώνει όλο και περισσότερα χρήματα κάνοντας τους απατεώνες όλο και πιο πλούσιους.
Χορδή πιάνου
Χρονολογείται στο 1982, όταν οι κύλινδροι τον κουλοχέρηδων λειτουργούσαν ακόμα με μηχανικό τρόπο. Η χορδή του πιάνου εισαγόταν στα εσωτερικά περιστρεφόμενα τμήματα του κουλοχέρη. Η χορδή μπλόκαρε το ρολόι που μετρούσε την περιστροφή του τροχού κάτι που σήμαινε ότι οι παίκτες μπορούσαν να αλλάξουν το αποτέλεσμα της περιστροφής.
Η ομάδα των ατόμων που προσπάθησε να εφαρμόσει αυτό το κόλπο κατάφερε να πετύχει κέρδη ύψους 50.000 $. Όμως, μαγνητοσκοπούνταν καθ' όλη τη διάρκεια της επιχείρησης και αργότερα συνελήφθησαν. Η επιτυχία τους μπορεί να μην κράτησε για πολύ, αλλά κατάφεραν πράγματι να αλλάξουν το αποτέλεσμα του παιχνιδιού χρησιμοποιώντας μόνο μια χορδή πιάνου.
Αντικατάσταση τσιπ
Ο Dennis Nikrasch κατάφερε να κάνει το ίδιο με διαφορετικό τρόπο. Αγόρασε κι αυτός έναν κουλοχέρη για να «παίζει» στο σπίτι. Κατάλαβε ότι το τσιπ του μηχανήματος θα μπορούσε να επαναπρογραμματιστεί για να ελέγχει το αποτέλεσμα του παιχνιδιού. Τα επαναπρογραμματισμένα τσιπς θα μπορούσαν μετά να εγκατασταθούν στους κουλοχέρηδες των καζίνο και να χρησιμοποιηθούν για την επίτευξη μεγάλων κερδών.
Δεν κράτησε κρυφή την τεχνική αυτή. Παρήγγειλε πολλά τέτοια τσιπ, τα επαναπρογραμμάτισε και κατάφερε να αποκτήσει πρόσβαση στα πλήκτρα των κουλοχέρηδων και να αντικαταστήσει τα τσιπ τους. Και τόσο απλά, κατάφερε να οργανώσει μια επιτυχημένη αποστολή που τον έκανε πλούσιο. Φυσικά συνελήφθη αργότερα, το 2004, και πέθανε το 2010.
Κουλοχέρηδες και προβλήματα λογισμικού
Παρόλο που αυτός ο τρόπος για να κερδίσει κανείς τους κουλοχέρηδες δεν είναι κόλπο ή απάτη, αποφάσισα να τον συμπεριλάβω στο άρθρο. Οι κουλοχέρηδες προγραμματίζονται από ανθρώπους. Και οι άνθρωποι κάνουν λάθη. Ένα λάθος στον προγραμματισμό μπορεί να προκαλέσει πρόβλημα στο λογισμικό το οποίο αργότερα (ηθελημένα ή όχι) μπορεί να το εκμεταλλευτούν οι παίκτες.
Υπάρχουν πολλά καταγεγραμμένα παραδείγματα προβλημάτων λογισμικού που έχουν οδηγήσει σε τεράστια κέρδη:
- Το 2015, μια 90χρονη γυναίκα από το Ιλινόι κέρδισε 41 εκατομμύρια δολάρια ενώ έπαιζε σε έναν κουλοχέρη Miss Kitty. Το καζίνο αρνήθηκε να την πληρώσει.
- Ένας άντρας στην Αυστρία κέρδισε τζάκποτ αξίας 43 εκατομμυρίων ευρώ. Όμως, το καζίνο επέμενε ότι πέτυχε μόνο 4 και όχι 5 από τα σύμβολα που χρειάζονταν για την ενεργοποίηση του τζάκποτ. Έτσι, αντί να του δώσουν το ποσό αυτό, του έδωσαν 100 δολάρια και ένα δωρεάν γεύμα.
- Μια γυναίκα στη Νέα Υόρκη κατάφερε να πετύχει ένα απίστευτο τζάκποτ ύψους 42,9 εκατομμυρίων δολαρίων. Το μηχάνημα είχε μέγιστο κέρδος 6.500 δολαρίων και η τεράστια νίκη οφειλόταν σε ένα σφάλμα του λογισμικού. Το καζίνο επέμεινε ότι δικαιούταν μόνο τα 2,25 δολάρια της περιστροφής.
Θα μπορούσα να συνεχίσω. Το θέμα είναι ότι τα τεράστια κέρδη που επιτυγχάνονται εξαιτίας προβλημάτων του λογισμικού δεν πληρώνονται σχεδόν ποτέ. Και αυτό που είναι ακόμα χειρότερο είναι ότι κάποια καζίνο μπορεί να χρησιμοποιούν τη δικαιολογία του προβλήματος στο λογισμικό για να μην πληρώνουν τα πραγματικά κέρδη.
Ωστόσο, ένα πρόβλημα λογισμικού δεν είναι πάντα απαραίτητο να καταλήγει σε τζάκποτ. Μπορεί να δώσει σε έναν παίκτη έναν αριθμό μικρότερων κερδών ή να παρερμηνεύσει τα χρήματα που μπήκαν στο μηχάνημα με τρόπο που να ευνοεί τον παίκτη. Τέτοιου είδους περιπτώσεις ενδέχεται να μην μπορούν να εντοπιστούν από το καζίνο και οι πιο πονηροί παίκτες μπορούν να τις εκμεταλλευτούν.
Αλλά να θυμάστε, η τύχη ευνοεί εκείνον που είναι προετοιμασμένος. :)
Παράρτημα: Πώς μπορεί να λειτουργεί ο αλγόριθμος του Άλεξ
Ας ξεκινήσουμε συνοψίζοντας όλα όσα γνωρίζουμε για τη στρατηγική του:
- Ο Άλεξ χρειαζόταν τα αποτελέσματα περίπου 24 περιστροφών για να προβλέψει τα μελλοντικά αποτελέσματα.
- Οι συνεργάτες του περίμεναν την κατάλληλη στιγμή για να πατήσουν το κουμπί της περιστροφής.
- Ο Brendan Koerner κατάφερε να εντοπίσει τις καταβολές του αλγόριθμου PRNG (από τα μαθηματικά στοιχεία που του παρείχε ο Άλεξ) στο βιβλίο The Art of Computer Programming (Η Τέχνη του Προγραμματισμού).
Το PRNG που μπορεί να χρησιμοποιούσαν τα μηχανήματα της Aristocrat
Ο πιο απλός αλγόριθμος PRNG που περιγράφεται στο βιβλίο Η Τέχνη του Προγραμματισμού και ο οποίος δίνει ικανοποιητικά αποτελέσματα είναι στην πραγματικότητα αρκετά απλός:
RNG = (a * Προηγούμενο RNG + c) mod m
Αυτός ο αλγόριθμος, γνωστός ως Γραμμική Ισοϋπόλοιπη Γεννήτρια (Linear Congruential Generator - LCG), χρησιμοποιείται ακόμα ως ο προεπιλεγμένος αλγόριθμος PRNG σε πολλές γλώσσες προγραμματισμού (π.χ. Java).
Υπάρχει περίπτωση οι σχεδιαστές λογισμικού των κουλοχέρηδων της Aristocrat να χρησιμοποίησαν απλώς τον προεπιλεγμένο αλγόριθμο PRNG που παρείχε η γλώσσα προγραμματισμού; Ή μήπως χρησιμοποίησαν το πιο απλό PRNG που ικανοποιεί την προϋπόθεση της ομοιομορφίας;
Νομίζω ότι είναι ένα πιθανό σενάριο. Αυτός ο προεπιλεγμένος αλγόριθμος λειτουργεί και πληροί τα κριτήρια της ομοιομορφίας των παραγόμενων τυχαίων αριθμών. Μπορεί να πληρούσε όλα τα κριτήρια με τα οποία δούλευαν οι προγραμματιστές στις προδιαγραφές απαιτήσεων.
Πώς να σπάσετε ένα απλό PRNG
Ας δούμε τώρα πώς ο τολμηρός Άλεξ μπορεί να εκμεταλλεύτηκε τον συγκεκριμένο αλγόριθμο.
1. Αποδόμηση
Το πρώτο βήμα είναι να μαθευτούν οι ακριβείς παράμετροι του αλγόριθμου (παράμετροι a, c και m). Αυτό είναι το εύκολο κομμάτι, αφού οι παράμετροι αυτές είναι κωδικοποιημένες σε όλους τους κουλοχέρηδες. Το μόνο που είχε να κάνει ο Άλεξ ήταν να διαβάσει τον δυαδικό κώδικα από τη μνήμη του μηχανήματος και να τον αποδομήσει. Αυτό είναι κάτι που μπορεί να κάνει οποιοσδήποτε έχει ειδικευτεί στη μικροηλεκτρονική αν έχει τα κατάλληλα εργαλεία.
Αλλά δεν αρκεί να ξέρεις μόνο τις παραμέτρους a, c και m. Με την αποδόμηση μπορείς να διαβάσεις τις παραμέτρους όλων των αλγορίθμων PRNG – ακόμα κι εκείνων που είναι κρυπτογραφικά ασφαλείς. Για να μπορέσεις να προβλέψεις και να εκμεταλλευτείς την ακολουθία RNG ενός πραγματικού κουλοχέρη που βρίσκεται μέσα σε κάποιο καζίνο, πρέπει να ξέρεις κάτι ακόμα – την τρέχουσα αρχική τιμή RNG (RNG seed value).
2. Εύρεση της τρέχουσας τιμής RNG
Ο αλγόριθμος LCG PRNG θεωρείται, σε γενικές γραμμές, εύκολα προβλέψιμος. Αυτό σημαίνει ότι γνωρίζοντας μόνο 3 τυχαίους αριθμούς, μπορείτε να υπολογίσετε τις παραμέτρους a, c, m και να προβλέψετε εύκολα τους επόμενους αριθμούς της ακολουθίας.
Μη σας μπερδεύουν όλα αυτά, γιατί δεν είναι ακριβώς το πρόβλημα που είχε να αντιμετωπίσει ο Άλεξ. Ο Άλεξ ήξερε ήδη τις παραμέτρους a, c και m από την αποδόμηση, αλλά δεν ήξερε την τρέχουσα τιμή κατάστασης RNG. Ήταν σε θέση να παρατηρεί τους παραγόμενους τυχαίους αριθμούς έμμεσα, παρακολουθώντας τις θέσεις στις οποίες σταματούσαν οι κύλινδροι στις καταγεγραμμένες περιστροφές.
Το σημείο-κλειδί έγκειται στο ότι η λογική ενός κουλοχέρη είναι αιτιοκρατική και προγραμματισμένη στο εσωτερικό του μηχανήματος. Επομένως, μπορεί να γίνει αποδόμηση, ανάστροφη μηχανική και προσομοίωση κάπου αλλού. Η λογική του παιχνιδιού είναι συνήθως να παίρνει έναν τυχαίο αριθμό και να χρησιμοποιεί κάποιες μαθηματικές πράξεις για να καθορίσει πού πρέπει να σταματήσει κάθε κύλινδρος.
Οι κύλινδροι των κουλοχέρηδων έχουν συνήθως περίπου 50 με 100 σύμβολα, τρία από τα οποία εμφανίζονται στη οθόνη. Οι συνδυασμοί μπορεί μερικές φορές να επαναλαμβάνονται και οι κύλινδροι να διαφέρουν σε μήκος, αλλά ας υποθέσουμε ότι κάθε κύλινδρος έχει 50 μοναδικούς συνδυασμούς. Ο τυχαίος αριθμός επιλέγει έναν από αυτούς τους 50 συνδυασμούς, άρα μπορείτε να αποκλείσετε τους 49/50 (98%) των πιθανών τυχαίων αριθμών, κοιτάζοντας απλά τον πρώτο κύλινδρο στην πρώτη περιστροφή.
Αν το παιχνίδι διαθέτει 5 κυλίνδρους, τότε κατά μέσο όρο μόνο ένας από τους 312 εκατομμύρια τυχαίους αριθμούς δίνει ακριβώς το ίδιο αποτέλεσμα με εκείνο που βλέπει ο παίκτης.
Αν ξέρετε το αποτέλεσμα πολλών διαδοχικών τυχαίων (*) αριθμών, τότε πολύ σύντομα θα καταλήξετε με 1 μόνο αρχικό τυχαίο αριθμό, ο οποίος δίνει το επιθυμητό αποτέλεσμα για όλες τις περιστροφές. Στην ουσία, ο αριθμός των περιστροφών που χρειάζεστε είναι ανάλογος του μήκους του αρχικού τυχαίου αριθμού.
Άρα, το μόνο που έχετε να κάνετε είναι να κάνετε προσομοίωση όλων των πιθανών τυχαίων αριθμών και αυτό ήταν… εντάξει, όχι και τόσο γρήγορα.
Εάν ένας κουλοχέρης χρησιμοποιούσε τυχαίους αριθμούς με 64 bit, τότε η προσομοίωσή τους θα απαιτούσε υπερβολικά μεγάλη υπολογιστική ισχύ (544 χρόνια στο λάπτοπ μου). Αυτό που χρειαζόταν ο Άλεξ ήταν μια μικρή τυχαία βοήθεια από τους προγραμματιστές της Aristocrat. Έχω σκεφτεί 2 πράγματα που μπορεί να έκαναν, βοηθώντας ως αποτέλεσμα τον Άλεξ:
- Να χρησιμοποίησαν μια υπερβολικά μικρή κατάσταση RNG (32-bit).
- Να χρησιμοποίησαν τον τυχαίο αριθμό με τρόπο που θα μπορούσε να χρησιμοποιηθεί για να βρεθεί η τρέχουσα κατάσταση RNG.
1. Υπερβολικά μικρή κατάσταση RNG (32 bit)
Τα μηχανήματα MK IV της Aristocrat αναπτύχθηκαν σε επεξεργαστή ARM 250 32-bit. Αν οι προγραμματιστές των κουλοχέρηδων αποφάσισαν επίσης να χρησιμοποιήσουν μια τυχαία αρχική τιμή 32-bit, υπάρχουν μόνο 4.294.967.296 πιθανές καταστάσεις RNG. Μπορεί να φαίνεται δύσκολο, αλλά οι σημερινοί υπολογιστές είναι πολύ γρήγοροι και μπορούν να εξετάσουν αυτό τον αριθμό επιλογών πανεύκολα με τη μέθοδο της ωμής βίας (χρειάζονται 4 δευτερόλεπτα στον δικό μου υπολογιστή).
Παρ' όλα αυτά, θεωρώ ότι αυτή είναι η λιγότερο πιθανή εκδοχή. Επιπλέον, ένας τυχαίος αριθμός 32-bit παραείναι μικρός για να καλύψει όλα τα πιθανά αποτελέσματα σε κάποια παιχνίδια (5 κύλινδροι * 90 σύμβολα).
2. Χρήση ενός τυχαίου αριθμού με έναν εύκολα εκμεταλλεύσιμο» τρόπο
Ας υποθέσουμε τώρα ότι είχε χρησιμοποιηθεί μια κατάσταση RNG 64-bit. Πώς μπορείς να χρησιμοποιήσεις έναν αριθμό 64-bit για να σταματήσεις αιτιοκρατικά 5 κυλίνδρους, καθένας από τους οποίους έχει 50 σύμβολα; Ο ευκολότερος τρόπος που διατηρεί την ομοιομορφία είναι ο εξής:
Pos1 = RND modulo 50
Pos2 = (RND / 50) modulo 50
Pos3 = (RND / (50*50)) modulo 50
Pos4 = (RND / (50*50*50)) modulo 50
Pos5 = (RND / (50*50*50*50)) modulo 50
Πλέον κάθε κύλινδρος χρησιμοποιεί ξεχωριστό τμήμα ενός τυχαίου αριθμού, και δεν υπάρχει συσχέτιση ανάμεσα στους κυλίνδρους. Υπό την προϋπόθεση ότι οι τυχαίοι αριθμοί είναι ομοιόμορφοι, υπάρχει ομοιόμορφη πιθανότητα για κάθε πιθανό αποτέλεσμα στο παιχνίδι (**). Η ρυθμιστική αρχή εγκρίνει.
Και τώρα το κόλπο:
Αν γνωρίζετε τις θέσεις των κυλίνδρων, μπορείτε εύκολα να υπολογίσετε την κατάληξη ενός τυχαίου αριθμού (RND mod 50^5):
RndEnd = pos1 + pos2*50 + pos3*50*50 + pos4*50*50*50 + pos5*50*50*50*50
Θα σας βοηθήσει αυτό να μαντέψετε την τρέχουσα κατάσταση RNG; Βασικά, ναι. Θα σας βοηθήσει και μάλιστα πολύ.
Τώρα πλέον δεν χρειάζεται να προσομοιώσετε όλους τους πιθανούς τυχαίους αριθμούς αλλά μόνο εκείνους που καταλήγουν σε RndEnd. Ή, για να γίνω πιο σαφής, όλους τους τυχαίους αριθμούς που αντιστοιχούν στο μοτίβο RndEnd + X * 50^5:
- 1 * 312500000 + RndEnd
- 2 * 312500000 + RndEnd
- 3 * 312500000 + RndEnd
- …
Από τις 2^64 πιθανές τιμές (18466744073709551616), τώρα πρέπει να ελέγξετε μόνο τις 59029581035. Και στις δύο περιπτώσεις έχετε τεράστια ποσότητα πιθανών τιμών, αλλά ενώ το λάπτοπ μου χρειάζεται 544 χρόνια για να κάνει την πρώτη προσομοίωση, η δεύτερη προσομοίωση θα είχε ολοκληρωθεί σε 60 δευτερόλεπτα. Η διαφορά είναι τεράστια.
Και αυτό είναι όλο. Τώρα γνωρίζετε τον τυχαίο αριθμό και μπορείτε να προβλέψετε τις επόμενες περιστροφές.
Το πραγματικό κόλπο RNG που χρησιμοποίησε ο Άλεξ μπορεί να ήταν διαφορετικό, αλλά πάω στοίχημα ότι έχει πολλά κοινά σημεία με τη διαδικασία που περιέγραψα εδώ.
(*) Στην πραγματικότητα ο Άλεξ δεν ήξερε τα αποτελέσματα των διαδοχικών τυχαίων αριθμών, αλλά ήξερε τα αποτελέσματα τυχαίων αριθμών οι οποίοι βρίσκονται κοντά στην ακολουθία.
Οι συνεργάτες του Άλεξ έπρεπε να περιμένουν για να πατήσουν το κουμπί της περιστροφής μία συγκεκριμένη χρονική στιγμή. Αυτό υποδηλώνει ότι το μηχάνημα MK IV της Aristocrat δημιουργεί συνεχώς τυχαίους αριθμούς με κάποια συχνότητα (σε κάποιες χώρες αυτό προβλέπεται από τη νομοθεσία). Όταν ένας παίκτης πατήσει το κουμπί της περιστροφής, ο τρέχων τυχαίος αριθμός χρησιμοποιείται για να καθορίσει το αποτέλεσμα της περιστροφής.
Σημειώστε ότι η συχνότητα δημιουργίας τυχαίων αριθμών πρέπει επίσης να είναι προγραμματισμένη στο εσωτερικό ενός κουλοχέρη. Επομένως, μπορεί εύκολα να διαβαστεί και να προβλεφθεί μετά την αποδόμηση του κώδικα.
Ας υποθέσουμε ότι οι τυχαίοι αριθμοί ενός κουλοχέρη δημιουργούνται με συχνότητα 100/δευτερόλεπτο. Χρειάζονται περίπου 60 δευτερόλεπτα για να παίξετε 24 γύρους, άρα υπάρχουν περίπου 6000 τυχαίοι αριθμοί εκ των οποίων οι 24 έχουν χρησιμοποιηθεί για να υπολογιστεί το αποτέλεσμα της περιστροφής. Το ζητούμενο, στη συνέχεια, είναι να υπολογίσετε τον πρώτο τυχαίο αριθμό που δίνει το αποτέλεσμα της πρώτης περιστροφής, καθώς και τα αποτελέσματα των υπόλοιπων 23 περιστροφών όταν επαναλαμβάνονται περαιτέρω εντός των επομένων 6000 κύκλων. Κι αυτή η προσομοίωση γίνεται εύκολα - χρειάζεται μόνο μερικές φορές ακόμα (με τις κατάλληλες βελτιστοποιήσεις).
(**) Για να πετύχετε τέλεια ομοιομορφία, θα πρέπει να ξεφορτωθείτε αριθμούς μεγαλύτερους από 2^64 – 2^64 mod (50^5).
Για περισσότερα πάνω στο θέμα αυτό, μπορείτε να επισκεφτείτε τους παρακάτω συνδέσμους:
- https://news.ycombinator.com/item?id=13579353
- https://www.schneier.com/blog/archives/2017/02/predicting_a_sl.html
- https://www.justice.gov/usao-edmo/pr/four-russian-nationals-indicted-fraud-charges
- https://www.wired.com/story/meet-alex-the-russian-casino-hacker-who-makes-millions-targeting-slot-machines/
- https://www.casino.org/blog/slot-cheats-that-work/