Sådan vinder du på spillemaskiner

  1. Alex – manden, der afkodede spillemaskinernes PRNG og tjente millioner
  2. Svindel med spillemaskiner, manipulation med hardware og særlige værktøjer
  3. Spillemaskiner og softwarefejl
  4. Appendiks: Hvordan Alex' algoritme måske har fungeret

Veldesignede spillemaskiner, der er udstyret med en ægte tilfældighedsgenerator (RNG, Random Number Generator), er teoretisk set uovervindelige. I virkeligheden er der imidlertid masser af dokumenterede eksempler på spillere, der har formået at udnytte spillemaskiners svagheder til at få udbetalt langt flere penge, end casinoejerne havde håbet på.

Mange af dem kan dog kategoriseres som åbenlyst tyveri. Det gælder eksempelvis, når der anvendes værktøjer til at manipulere med spillemaskinernes hardware, f.eks. møntudkastet eller seddellæseren. I visse tilfælde har det endda været en ansat på casinoet, der har manipuleret med spillemaskinen.

I en anden kategori har vi spillere, der bare var ualmindeligt heldige. De opdagede en softwarefejl og var i stand til at udnytte den til deres egen fordel.

Det langt mest interessante tilfælde er imidlertid en forholdsvis ny historie (2009-2018) om en russisk fyr fra Sankt Petersborg, der kunne forudse udfaldet af spins på visse typer spillemaskiner, så han kunne malke millioner af dollar ud af casinoer over hele verden.

Historien er så ufattelig, at jeg har brugt en hel del tid på at kigge den efter i sømmene og foretage en gennemgribende analyse af hans teknikker.

Historien blev i første omgang offentliggjort af wired.com og Brendan Koerner [1].

Alex – manden, der afkodede spillemaskinernes PRNG og tjente millioner

Alex arbejdede som freelanceprogrammør og hacker, da et russisk casino hyrede ham til at manipulere med tilbagebetalingsprocenten på en række spillemaskiner fra Novomatic. Jobbet krævede, at Alex satte sig grundigt ind i, hvordan spillemaskinerne egentlig fungerede. Undervejs lærte han også en hel del om, hvordan pseudotilfældighedsgeneratorer (PRNG, Pseudo Random Number Generator) fungerer, og hvordan de anvendes i spillemaskiner. Gennembruddet kom, da han opdagede, at spillemaskiner brugte en usikker PRNG-algoritme, der kunne være forudsigelig.

En ægte RNG anvender elektromagnetisk støj til at generere fuldstændigt tilfældige og fuldstændigt uforudsigelige værdier. En PRNG fungerer på en anden måde. Den tager en foruddefineret værdi og blander en række andre input oveni for at generere en uendelig serie af værdier. Output-værdierne fra en PRNG ser umiddelbart fuldstændigt tilfældige og uforudsigelige ud. Hvis en PRNG anvender en svag algoritme, og du ved, hvad det er for en, kan du imidlertid være i stand til at forudsige det næste tilfældige nummer.

Hvis en PRNG anvender en svag algoritme, og du ved, hvad det er for en, kan du være i stand til at forudsige det næste tilfældige nummer.

Alex havde angiveligt opdaget, at algoritmerne i visse spillemaskiner var svage, og at han kunne udnytte dem til sin fordel.

Over de næste år skabte han fundamentet for det, der skulle vise at blive en langt mere sofistikeret operation:

  • Han reverse engineerede adskillige populære spillemaskiner.
  • Han udviklede en algoritme, der kunne udregne de aktuelle PRNG-parametre og forudsige udfaldet af kommende spins ud fra 24 spins på en spillemaskine.
  • Han udviklede en iPhone-app, der ud fra de forudsagte udfald kunne fortælle spilleren præcis, hvornår han eller hun skulle trykke på spin-knappen for at vinde.
  • Han hyrede en lang række agenter, der fik til opgave at malke casinoer over hele verden i de følgende 6-7 år.

Alex hævder, at han og hans team sikrede sig millioner af dollar i perioden.

Bemærk: Alex' metode kunne ikke fungere på moderne online casinoer eller i spil som dem, du finder på vores liste over gratis spillemaskiner, fordi de bruger ægte RNG-systemer til at generere resultater, der er helt tilfældige.

Alex fra Rusland fandt en smart måde at vinde over spillemaskinerne på

Var Alex' metode lovlig og moralsk acceptabel?

Den teknik, han udviklede, indeholdt ingen former for forbudte manipulationer af spillemaskinerne. Det står i direkte modsætning til de fleste andre teknikker her i artiklen, hvor spillemaskinernes hardware snydes til at udbetale flere penge end tilsigtet. Alex' metode bygger på ren matematik baseret på hans egne observationer, og den kan derfor betragtes som en valid og acceptabel strategi til at vinde på spillemaskiner.

Mange gambling-eksperter (inklusive mig) betragter Alex' handlinger som fuldt ud i orden og moralsk acceptable. Den kan sammenlignes med korttælling i blackjack, bonusjagt og værdispil. Casinoerne stiller spillemaskinerne frem frivilligt, og det kan kun være deres problem, hvis der er en, der er smart nok til at forudsige resultaterne og udnytte det til egen fordel.

Teknisk set var strategien ikke ulovlig i de fleste jurisdiktioner. Selv hvis et casino fangede en af hans agenter, kunne de altså kun konfiskere gevinsterne og forbyde den pågældende at komme på casinoet igen.

Casinoer (især de landbaserede) er imidlertid ofte store virksomheder med stærke forbindelser til lokale myndigheder. Da de opdagede, at en organiseret gruppe brugte deres spillemaskiner som bankautomater, trak de uden tvivl i nogle tråde. Myndighederne og casinoernes advokater fandt i hvert fald til sidst en forbrydelse, der svarede til, hvad gruppen havde gang i. Det var intet mindre end et "komplot om at begå bedrageri" eller "conspiracy to commit fraud", fordi det nu engang foregik i USA. Det betød, at fire af Alex' agenter blev arresteret i Missouri i 2015 (og senere blev idømt to års fængsel) [2].

Efterfølgende brød systemet mere eller mindre sammen, og flere og flere agenter begyndte at tale åbent om, hvad de havde foretaget sig. Sikkerhedspersonale på casinoer over hele verden blev mere opmærksomme på gruppens medlemmer, og snart efter fulgte endnu en anholdelse i Singapore [3].

Alex' forsøg på at samarbejde med spillemaskineproducenterne

Alex indså, at det ville være for risikabelt for hans agenter at fortsætte med at bruge systemet, så han besluttede, at han ville tjene penge på sin viden på en anden måde. Han kontaktede Aristocrat – den producent, hvis spillemaskiner han havde formået at kompromittere – direkte. I håbet om en 8-cifret gevinst i dollar tilbød han at hjælpe med at forbedre deres PRNG-algoritmer og rette alle sikkerhedsproblemerne. Samtidig truede han imidlertid Aristocrat med, at han ville sælge de følsomme oplysninger til deres konkurrenter, hvis de ikke accepterede hans tilbud. Aristocrat bed ikke på. Heller ikke selvom han gav dem alle de matematiske detaljer om deres sårbarheder.

Efter Aristocrat havde afvist Alex' tilbud, besluttede han at give dem én chance mere og presse dem lidt hårdere ved at offentliggøre detaljer om sin historie. Han kontaktede Brendan Koerner – en mand, der tidligere havde skrevet denne artikel om de kendte facts i "komplottet".

Brendan indvilligede i at forsætte med historien og publicerede en ny artikel med mange flere detaljer direkte fra Alex. Hvis det ikke var sket, havde du ikke kunnet læse om dem her i min artikel.

Under alle omstændigheder er det for mig det 21. århundredes største gamblinghistorie, og jeg glæder mig allerede til næste kapitel – og til filmen, selvfølgelig. Jeg håber, Hollywood kan leve op til virkeligheden. Popcornene er i hvert fald klar.

Hvor stort var det, og hvad er konsekvenserne?

Der er temmelig god dokumentation for, at Alex rent faktisk formåede at anvende sin strategi på en forældet Aristocrat MK IV-spillemaskine. Aristocrat anbefaler selv deres kunder at få udskiftet de pågældende maskiner. Alligevel er der stadig i tusindvis af lige netop den type spillemaskine i omløb på masser af casinoer over hele verden. De fleste casinoer burde dog ikke have de helt store problemer med at få dem udskiftet, hvis behovet opstår.

Alex hævder (og hans påstand understøttes til en vis grad [4]), at han i 2009 begyndte at afkode den PRNG, der blev anvendt i visse ældre kabinetter fra Novomatic. Novomatic fik dog højst sandsynligt afværget truslen med en sikkerhedsopdatering i 2011. Måske havde Novomatics patent på System and Method of Centralized Random Number Generator Processing fra 2013 også en vis indflydelse på, at de ikke blev ramt så hårdt.

Alex hævder også, at han havde held med at afkode en række maskiner fra Atronic.

Hans mest opsigtsvækkende påstand er imidlertid, at han har fundet en lignende sårbarhed i Helix-kabinettet fra Aristocrat. Helix er nemlig en af deres nuværende modeller, så hvis Alex ikke bluffer, kan Aristocrat have et endnu større problem – især hvis det ikke er noget, der kan rettes med en sikkerhedsopdatering eller en mindre udskiftning af en chip. På den anden side er Aristocrat en gigantisk virksomhed med en årlig omsætning over $2 mia. og et årligt overskud på $500 millioner. De overlever nok (i værste fald med med massive udgifter til udskiftning af intern hardware og alvorlig skade på deres omdømme).

Under alle omstændigheder skal du ikke selv regne med at kunne få noget ud af det. Selv hvis Alex beslutter sig for at offentliggøre flere detaljer om sine algoritmer, vil casinoerne med sikkerhed slukke for de berørte spillemaskiner, inden almindelige spillere får nogen chance for at udnytte den nye viden.

Hvis du vil have noget ud af muligheden, er du altså nødt til at få fat i dit eget Aristocrat-kabinet, så du kan lave din egen reverse engineering. Hvis jeg gik sammen med en af mine venner, der har specialiseret sig inden for mikroelektronik, er jeg faktisk nogenlunde sikker på, at vi ville være i stand til gøre det, hvis vi ville. ;-)

Sand historie eller vandrehistorie?

Der er mange indicier på, at historien forholder sig, som Alex har fortalt. Myndighederne ville ikke have arresteret og dømt hans agenter i to forskellige lande, hvis der ikke var noget om det. Novomatic ville ikke have iværksat en undersøgelse af manipulation med spillemaskiner og udgivet sikkerhedsopdateringer, hvis det ikke passede.

Men har producenter af spillemaskiner ikke dedikerede sikkerhedsspecialister ansat? Hvordan kunne store virksomheder som disse overse en så væsentlig sårbarhed?

Ret nemt, faktisk.

Jeg har arbejdet som softwareudvikler i 10 år, og det kommer på ingen måde bag på mig, at sikkerhedstrusler bliver overset. Det er endda endnu mere sandsynligt for nye og ukendte angreb, som der var tale om her. Selv hvis der var en ansvarlig sikkerhedschef på det pågældende tidspunkt, var han kun uddannet til at imødegå kendte trusler (abehænder og den slags). Hvis udviklingsteamet ikke havde en ægte ekspert, der både var i stand til at forudse, hvor nye sårbarheder kunne opstå, og gøre noget ved det, kunne en trussel mod deres PRNG nemt blive overset.

De regulerende myndigheder stiller kun krav om, at en PRNG skal kunne generere en ensartet fordeling af genererede tal. Og det kan selv en simpel PRNG klare. Uforudsigeligheden (den kryptografiske sikkerhed) skal ikke nødvendigvis testes.

PRNG-konceptet forekommer alt for teknisk for de fleste "forretningsfolk". De går kun op i nogle få ting. De er tilfredse, når deres spillemaskine:

  • Ikke går ned
  • Er populær blandt spillerne
  • Tjener penge

Som regel overlever software i spillemaskiner også adskillige generationer af kabinetter med bare mindre opdateringer. Og der er jo ingen grund til at ændre på noget, der har fungeret fint i de sidste 15 år, vel? Derfor er der ret stor sandsynlighed for, at mange moderne spillemaskiner stadig bruger dele af koden fra de tidlige 90'ere.

Min tekniske analyse af Alex' system

Jeg ved, at mange af jer brænder for at læse mere om, hvordan Alex' system egentlig fungerede.

Derfor har jeg taget alle de offentliggjorte detaljer og besluttet at demonstrere, hvordan reverse engineering kan anvendes til at forudse fremtidige udfald på en spillemaskine med PRNG. Du finder min tekniske analyse sidst i artiklen.

Svindel med spillemaskiner, manipulation med hardware og særlige værktøjer

Som tidligere nævnt er Alex' system efter min mening både moralt acceptabelt og endda lovligt i visse jurisdiktioner. Det samme kan imidlertid ikke siges om alle de metoder, der tidligere er blevet brugt til at "vinde" på spillemaskiner. Der er blevet svindlet med spillemaskiner på utallige måder gennem tiden.

De fleste dokumenterede svindelnumre mod spillemaskiner handler om manipulation af hardware og/eller specielle værktøjer, der benyttes til at "snyde" maskinen og trække penge ud.

Det skal understreges, at enhver manipulation med hardware eller anvendelse af værktøjer til at ændre funktionaliteten i en spillemaskine er ulovlig. Det betyder, at du lige så godt kunne tage en økse og smadre kabinettet for at få adgang til pengene. Juridisk set har du stort set gang i det samme.

Nogle angreb er set gentagne gange, mens andre har været en engangsforeteelse. De har imidlertid allesammen det til fælles, at de kun virker på fysiske spillemaskiner som dem, du kan finde på landbaserede casinoer. Online casinoer er ikke i farezonen, fordi spilleren skal have fysisk adgang til spillemaskinen for at kunne manipulere med den.

Efterhånden som casinoerne er blevet snydt, har de også implementeret yderligere sikkerhedsprocedurer og hardwareopdateringer, så de fleste af de svindelnumre, jeg kommer ind på, ikke vil kunne foregå i dag.

Og nu til sagen. Her er en række af de metoder, der gennem tiden er blevet brugt til at svindle med spillemaskiner.

Falske mønter og jetoner

Det første måde at snyde på er ret simpel. Det handler om falske mønter, eller hvad spillemaskinerne ellers registrerer som betaling. Hvis du kan fremstille noget, som maskinen "tror" er mønter, kan du bruge dem til at vinde penge.

Du skal selvfølgelig være i stand til at fremstille dine "mønter" for en lavere pris end deres nominelle værdi. Ellers giver det ikke rigtig mening.

Det findes et berømt eksempel på en mand, der havde temmelig stor succes med teknikken. Den amerikanske casinosvindler Louis Colavecchio går under navnet "The Coin". Han og hans medsammensvorne fremstillede betragtelige mængder falske mønter og jetoner og brugte dem efterfølgende til at vinde penge på casinoer i Atlantic City og Connecticut. Han blev fanget og senere ret berømt, da The History Channel viste en dokumentarfilm om ham.

Mønter på snor (yoyo)

Hvis du har prøvet at spille yoyo, ved du, at den kører op og ned, hvis den håndteres korrekt. Det gør en mønt på en snor også. Du indsætter mønten i maskinen og lader den falde ned, til maskinen registrerer den, så spillet starter. Derefter hiver du den op, så den kan bruges igen.

Teknikken minder på mange måder om brug af falske mønter, men den eliminerer behovet for masseproduktion. Med en mønt på en snor kan stort set alle forsøge at svindle et casino. Det er selvfølgelig ikke alle, der har den slags intentioner, og for dem, der har, er det heller ikke altid det lykkes.

Engang kunne man snyde en spillemaskine med en mønt på en snor

Slebne mønter

Teknologien, der fastslår mønternes ægthed, er gennem tiden blevet bedre og bedre og har efterhånden gjort det praktisk taget umuligt at benytte falske mønter. Spillemaskinerne begyndte at bruge en lyssensor til at registrere betalinger og afgøre, om en mønt var falsk eller ægte.

En mønt, hvor der var slebet en lille smule af, blev imidlertid registreret som gyldig betaling af lyssensoren, men den faldt igennem den fysiske anordning, der ellers skulle have fanget den. Mønten blev derfor returneret til spilleren og kunne bruges igen.

Hvis spillemaskinen havde brug for, at en indsat mønt havde en bestemt størrelse, kunne et andet objekt indsættes i maskinen sammen med den slebne mønt. Objektet matchede den påkrævede møntstørrelse og blev i maskinen, mens den slebne mønt "narrede" den optiske sensor og faldt ud igen.

Bøjler

De tidligere beskrevne fupnumre handlede om, hvordan mønterne blev indsat i maskinen. De næste scams er en smule anderledes. De manipulerer med den måde, spillemaskiner udbetaler penge på.

Tænk på de klassiske enarmede tyveknægte, der udbetalte mønter direkte i en møntskuffe, hver gang spilleren vandt. De havde en mekanisk mønttæller, der talte, hvor mange mønter der forlod maskinen, så det matchede det beløb, spilleren havde vundet.

For svindleren gjaldt det derfor bare om at presse en bøjle (eller noget andet med samme facon) ind i området ved mønttælleren, så den ikke kunne tælle rigtigt. Det fik spillemaskinen til at udbetale flere mønter, end den skulle, og gjorde spillet mere profitabelt i det lange løb.

Top-bund-værktøj

Et top-bund-værktøj bestod af to dele … rigtig gættet ... toppen og bunden, mere specifikt en metalstang bukket til en cirkel (toppen) og en lang guitarstreng eller lignende tynd wire (bunden).

Top-bund-værktøjet er et de værktøjer, der oftest har været brugt til svindel på casinoer. Det havde sin storhedstid i 70'erne og 80'erne og gav det at " tømme en spillemaskine" helt ny mening.

Bunddelen blev ført ind gennem bunden af spillemaskinen, så værktøjet kom i kontakt med den indre elektronik og kunne trække lidt strøm. Topdelen blev derefter indsat i møntindkastet, hvilket sluttede kredsløbet og tvang maskinen til at udbetale alle de mønter, den havde i sig.

Abehånd

Abehånden blev opfundet af en af historiens de mest legendariske casinosvindlere – Tommy Glenn Carmichael. Inden vi kommer til abehånden, skal vi dog lige en tur tilbage omkring top-bund-værktøjet. Carmichael havde en butik, der reparerede tv-apparater, men det gik ikke specielt godt. Så da hans ven Ray Ming introducerede ham for top-bund-værktøjet, besluttede han at give det et skud.

Han havde en del succes med det, men til sidst blev han taget og idømt fem års fængsel – ikke kun på grund af hans snyderi, han havde lidt af et generalieblad i forvejen. Den uheldige oplevelse fik ham til at indse, at top-bund-værktøjet var lidt for godt kendt i miljøet. Hvis han ville fortsætte snyderiet, måtte han altså finde på noget nyt.

Carmichael skaffede sig en video pokermaskine og begyndte at eksperimentere. Det skulle være en enkel, men alligevel funktionel anordning. Han satte en metaltråd fast på en bukket metalstang, som kunne føres op igennem spillemaskinens møntudkast og bevæges rundt, indtil han fandt knappen til maskinens pengetragt. Så skulle han bare trække i knappen med abehånden for at få maskinen til at hælde alle mønterne ud.

Lysstav

Efterhånden som spillemaskinerne blev teknologisk mere avancerede og sikre, holdt de op med at bruge mekaniske systemer til at tælle penge. De begyndte i stedet at benytte optiske sensorer, hvilket gjorde størstedelen af de tidligere beskrevne svindelnumre forældede. Carmichael tilpassede sig imidlertid ændringen og fandt på en metode til at narre de nye systemer.

Han opfandt en lille enhed, der kunne "blænde" den optiske sensor, så den ikke kunne registrere, hvor mange penge der blev indsat i maskinen, og hvor mange der blev udbetalt. Så længe maskinen troede, at det rigtige beløb ikke var blevet udbetalt endnu, blev den ved med at udbetale penge, og svindleren blev rigere og rigere.

Pianotråd

Hvis du bruger pianotråd til at snyde spillemaskiner, har det ikke noget at gøre med hverken indbetalingen eller udbetalingen af penge. Pianotråd blev nemlig brugt til at ændre selve spillets udfald og var derfor i en helt anden kategori af snyd.

Det foregik tilbage 1982, hvor spillemaskiner stadig fungerede mekanisk. Pianotråden blev ført ind i spillemaskinens roterende indre. Den blev derefter brugt til at forstyrre det ur, der målte hjulenes rotation, så spillerne kunne manipulere med spinnets udfald.

Gruppen, der forsøgte sig med pianotråden, havde held til at sikre sig en gevinst på $50.000. De blev imidlertid filmet undervejs, og politiet havde derfor forholdsvist nemt ved at arrestere dem kort efter. Deres succes var kortlivet, men det lykkedes dem altså rent faktisk at ændre udfaldet af et spil udelukkende med et stykke pianotråd.

Udskiftning af chips

Låsesmeden Dennis Nikrasch gjorde tingene på en helt anden måde. Han købte også en spillemaskine, han kunne "lege" med derhjemme. Han fandt ud af, at maskinens chip kunne omprogrammeres til at manipulere med spillets udfald. Den omprogrammerede chip kunne derefter installeres i en spillemaskine på et casino og bruges til at vinde mange penge.

Han var imidlertid ikke den diskrete type, der udnyttede sin opfindelse i det små. Han omprogrammerede en stor mængde chips og udnyttede sine evner som låsesmed til at bryde ind i spillemaskinerne og udskifte deres chips. Kort efter havde han gang i en større operation, der gjorde ham til en velhavende mand. En af hans medsammensvorne blev imidlertid utilfreds sin andel af udbyttet og afslørede hele operationen. Nikrasch blev arresteret og idømt 7,5 års fængsel. Han døde af ukendte årsager i 2010.

Spillemaskiner og softwarefejl

Selvom det teknisk set hverken er svindel eller snyd at udnytte en softwarefejl til at vinde på en spillemaskine, synes jeg nu alligevel, det hører til i denne artikel. Spillemaskiner programmeres af mennesker. Og mennesker laver fejl. En programmeringsfejl kan føre til softwarefejl, der efterfølgende kan (bevidst eller ubevidst) udnyttes af spillere.

En spillemaskine med en softwarefejl

Softwarefejl har resulteret i gigantiske gevinster i adskillige dokumenterede tilfælde:

  • I 2015 vandt en 90-årig kvinde fra Illinois $41 millioner på spillemaskinen Miss Kitty. Casinoet nægtede at udbetale hendes gevinst.
  • En mand i Østrig vandt en jackpot på €43 millioner. Casinoet hævdede imidlertid, at han kun havde ramt 4 af de 5 nødvendige symboler til at udløse jackpotten. De ville derfor ikke udbetale gevinsten, men tilbød ham trods alt €100 og et gratis måltid mad som kompensation ...
  • En kvinde i New York ramte en forrygende jackpot på $42,9 millioner. Maskinen havde imidlertid en maksimumgevinst på $6.500, og jackpotten var derfor bare en fejl. Casinoet insisterede på, at hun kun havde krav på de $2,25, hun havde spillet for.

Og jeg kunne blive ved. Pointen er, at de enorme gevinster, der udløses af softwarefejl, stort set aldrig kommer til udbetaling. Endnu værre er det imidlertid, at visse skumle casinoer bruger softwarefejl som undskyldning for ikke at udbetale ellers legitime gevinster.

Softwarefejl kan dog meget andet end at udløse jackpots. Nogle gange udløser de en kontinuerlig strøm af mindre gevinster eller mistolker, hvor mange penge der er blevet indsat på maskinen. Den slags fejl opdages sjældent med det samme og kan derfor udnyttes af udspekulerede spillere.

Du skal imidlertid være ekstremt heldig for at løbe ind i en softwarefejl af den type. Og selv hvis du gør, kan du ikke være sikker på, at du rent faktisk får pengene udbetalt.

Det er dog værd at huske, at heldet har en tendens til at følge de velforberedte. :)

Appendiks: Hvordan Alex' algoritme måske har fungeret

Vi lægger ud med at opsummere alt, hvad vi ved om hans strategi:

  • Alex havde brug for resultatet af omkring 24 spins for at kunne forudse kommende udfald.
  • Agenterne ventede på det rette øjeblik, inden de trykkede på spin-knappen.
  • Brendan Koerner fandt ud af, at PRNG-algoritmen (ud fra den matematiske dokumentation, han fik fra Alex) stammede fra bogen "The Art of Computer Programming".

Ansvarsfraskrivelse: Den følgende tekniske analyse er udelukkende mine overvejelser om, hvad udviklerne hos Aristocrat kunne have gjort forkert, og hvordan Alex kunne have udnyttet det. Selvom jeg har taget udgangspunkt i alle de oplysninger, der i skrivende stund er til rådighed, kan den reelle metode have afveget i både større og mindre grad.

Casino Guru kigger nærmere på Alex' system

Den mulige PRNG i Aristocrats kabinetter

Den simpleste PRNG-algoritme i "The Art of Computer Programming", der giver et tilfredsstillende resultat, er faktisk ganske enkel:

RNG = (a * PreviousRNG + c) mod m

Algoritmen kaldes også Linear Congruential Generator (LCG) og bruges stadig som standard PRNG-algoritme i mange programmeringssprog (f.eks. Java).

Kan udviklerne hos Aristocrat bare have brugt standard PRNG-algoritmen fra deres programmeringssprog? Eller er de gået efter den simpleste PRNG, der opfyldte kravet om ensartethed?

Efter min opfattelse er det ikke umuligt. Standardalgoritmen fungerer og opfylder kriteriet for ensartethed i de genererede tilfældige tal. Den kan have opfyldt alle de kriterier, programmørerne arbejdede efter i kravsspecifikationen.

Sådan crackes en simpel PRNG

Nu kigger vi nærmere på, hvordan Alex kan have udnyttet algoritmen.

1. Dekompilering

Først og fremmest gælder det om at finde de præcise parametre i algoritmen (parametrene a, c og m). Det er ikke så svært. De pågældende parametre er nemlig angivet i alle spillemaskiner. Alex skulle bare læse den binære kode fra kabinettets hukommelse og dekompilere den. Det kan enhver specialist i mikroelektronik klare, hvis han har de rette værktøjer.

Det er imidlertid ikke nok at kende parametrene a, c og m. Med dekompileringen kan du faktisk aflæse parametrene i alle PRNG-algoritmerne – også de kryptografisk sikrede. Hvis du vil kunne forudse og udnytte RNG-sekvensen i en rigtig spillemaskine på et casino, skal du også kende noget andet – værdien af det aktuelle RNG-seed.

2. Afdækning af den aktuelle RNG-værdi

LCG PRNG-algoritmen karakteriseres generelt som forholdsvis forudsigelig. Du skal nemlig bare kende tre tilfældige tal for at kunne regne dig frem til parametrene a, c og m, så du kan forudse de næste tal i sekvensen,

Det var dog ikke helt det, Alex stod overfor. Alex kendte allerede a, c og m parametrene fra dekompileringen, men han kendte ikke den aktuelle værdi af RNG-state. Han kunne til gengæld indirekte observere de producerede tilfældige tal ved at holde øje med, i hvilke positioner hjulene stoppede i en sekvens af spins.

Pointen her er, at logikken i en spillemaskine er deterministisk og programmeret indeni kabinettet. Det vil sige, at den kan dekompileres, reverse engineeres og simuleres i andre miljøer. Spillogikken tager som regel et tilfældigt tal og udsætter det for en række matematiske funktioner for at afgøre, hvor de enkelte hjul skal stoppe.

Hjulene på en spillemaskine har typisk mellem 50 og 100 symboler, hvoraf tre af dem vises på skærmen. Kombinationerne kan gentage sig, og hjulene kan have forskellig længde, men vi tager udgangspunkt i, at der er 50 unikke kombinationer på hvert hjul. Det tilfældige tal vælger en af de 50 kombinationer, så du kan eliminere 49/50 (98 %) af de potentielle tilfældige tal alene ved at se på det første hjul på det første spin.

EKSEMPEL

Hvis en spillemaskine har 5 hjul, vil bare ét ud af 312 millioner tilfældige tal i gennemsnit give præcis det samme resultat som det, spilleren har observeret.

Hvis du kender udfaldet af mange på hinanden følgende tilfældige tal (*), vil du snart ende ud med bare ét indledende tilfældigt tal, der giver dig det ønskede udfald for alle spins. Faktisk er det antal spins, du har behov for, proportionalt med længden på det indledende tilfældige tal.

Så skal du bare simulere alle de mulige tilfældige tal og voila … og dog, så nemt er det trods alt ikke.

Hvis en spillemaskine anvender tilfældige tal, der er 64-bit lange, kræver det alt for meget computerkraft (544 år på min laptop) at simulere dem. Alex havde stadig brug for lidt utilsigtet hjælp fra Aristocrats udviklere. Jeg har fundet to ting, de kunne have gjort, der kan have hjulpet Alex:

  • Deres RNG-state kunne have været for kort (32-bit).
  • De kunne have brugt det tilfældige tal på en måde, så det kunne bruges til at udlede det aktuelle RNG-state.

1. For kort (32-bit) RNG-state

Aristocrat MK IV-kabinetterne var udviklet på en 32-bit ARM 250 processor. Hvis udviklerne også benyttede et 32-bit seed til deres tilfældige tal, var der kun 4.294.967.296 mulige RNG-states. Det ser umiddelbart ud af mange, men dagens computere arbejder uhyggeligt hurtigt, og analysen af et tal af denne størrelse ville ikke udgøre andet end et bump på vejen (det ville tage 4 sekunder på min laptop).

Efter min mening er ovenstående dog ikke særligt sandsynligt. Et tilfældigt tal på 32-bit vil desuden være for kort til at dække alle de potentielle udfald i visse spil (5 hjul * 90 symboler).

2. Anvendelse af et tilfældigt tal på en måde, der er "nem at udnytte"

Vi antager derfor, at der blev brugt en 64-bit RNG-state. Hvordan bruger du et tal på 64-bit til deterministisk at stoppe 5 hjul med 50 symboler hver? Den letteste metode, der bevarer ensartetheden, vil være som følger:

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

Hvert hjul bruger nu en del af et tilfældigt tal, og der er ingen korrelation mellem de respektive hjul. Hvis de tilfældige tal er ensartede, vil der være en ensartet chance for alle mulige spiludfald (**). Den regulerende myndighed er tilfreds.

Men det kan udnyttes:

Hvis du kender hjulenes positioner, kan du nemt beregne slutningen af et tilfældigt tal (RND mod 50^5):

RndEnd = pos1 + pos2*50 + pos3*50*50 + pos4*50*50*50 + pos5*50*50*50*50

Hjælper det dig med at gætte den aktuelle RNG-state? Faktisk, ja. Det hjælper en hel del.

Nu behøver du ikke simulere alle de mulige tilfældige tal, men derimod kun dem, der slutter på RndEnd. Eller for at være mere specifik; alle tilfældige tal, der matcher mønsteret RndEnd + X * 50^5:

  • 1 * 312500000 + RndEnd
  • 2 * 312500000 + RndEnd
  • 3 * 312500000 + RndEnd

Ud af de 2^64 mulige værdier (18466744073709551616) skal du nu kun prøve 59029581035. Begge dele er selvfølgelige gigantiske antal af mulige værdier, men hvor en simulation af det første antal vil tage min laptop 544 år, vil en simulation af det andet antal være færdig i løbet af 60 sekunder. Det er en ret stor forskel.

Og det var det. Når du kender det tilfældige tal, kan du forudse udfaldet af kommende spins.

Alex kan selvfølgelig have fundet andre huller i spillemaskinernes RNG, men jeg er forholdsvis sikker på, at hans metode har en hel del til fælles med, hvad jeg har skitseret her.

(*) Reelt kendte Alex ikke udfaldet af på hinanden følgende tilfældige tal, men han kendte udfaldet af tilfældige tal, der var ret tæt på hinanden i sekvensen.

Alex' agenter var nødt til at vente til et bestemt øjeblik, inden de kunne trykke på spin-knappen. Det indikerer, at Aristocrats MK IV-kabinet genererer tilfældige tal kontinuerligt med en vis frekvens (i visse jurisdiktioner er det et lovkrav). Når en spiller trykker på spin-knappen, anvendes det aktuelle tilfældige tal til at fastlægge spinnets udfald.

Læg mærke til, at frekvensen for generering af tilfældige tal også skal være programmeret indeni spillemaskinen. Den kan altså nemt aflæses og forudses efter dekompilering af koden.

Vi antager, at de tilfældige tal i en spillemaskine genereres med en frekvens på 100/sekund. 24 runders spil tager måske 60 sekunder, så der er omkring 6000 tilfældige tal involveret, hvoraf 24 er blevet anvendt til at beregne udfald af spins. Opgaven er derfor at finde frem til det første tilfældige tal, der giver udfaldet af det første spin og også udfaldene af de resterende 23 spins, når cyklussen fortsætter inden for de følgende 6000 cyklusser. Simulationen er forholdsvis enkel at udføre. Det tager bare et par gange mere (med korrekte optimeringer).

(**) Hvis du vil have den perfekte ensartethed, er du nødt til at se bort fra tal, der er større end 2^64 – 2^64 mod (50^5).

Interessante links til mere i samme boldgade:

Kunne det være noget for dine venner?

Del artiklen, og giv dem besked.

flash-message-news
Nyheder fra Casino Guru – Følg dagens nyheder fra spilleindustrien
Forum_alt
Deltag i debatten i vores forum sammen med casinospillere fra hele verden
Tilmeld dig vores nyhedsbrev og få besked om nye bonusser uden indbetaling, nye spillemaskiner og meget mere