BackgammonPearl

Würfel, die du prüfen kannst

Die Würfel einer Partie prüfen

Wenn die Partie oder das Match vorbei ist, tippe auf der Ergebniskarte auf das Siegel und dann auf „Diese Würfel prüfen“. Diese Seite öffnet sich mit allem schon ausgefüllt, und dein Browser rechnet das Siegel und jeden Wurf nach und sendet die Werte der Partie nirgendwohin.

Die Würfelübersicht der App zeigt ihn, wenn die Partie endet, in einem Match, wenn das Match endet. Tippe ihn dort an, um ihn zu kopieren. Bis dahin bleibt er absichtlich verschlossen.
Lässt du das Feld leer, zeigt die Seite das Siegel des Startwerts oben.
In der Reihenfolge, in der die Würfelübersicht sie auflistet. Offline gegen den Computer gibt es nur deinen.
Die Würfe sind über das ganze Match ab 1 nummeriert. Eröffnungswürfe zählen mit, und ein Match zählt von Partie zu Partie weiter.
Die Würfe so, wie die Würfelübersicht sie auflistet, mit oder ohne Nummer. Fügst du sie ein, wird jeder Wurf verglichen, nicht nur angezeigt.

So wird ein Wurf berechnet

Derselbe Code läuft in der App und auf dem Server; diese Seite ist eine Kopie davon. Jeder Wurf eines Matches stammt aus einem HMAC:

mac  = HMAC-SHA256(Schlüssel = Bytes des Server-Startwerts,
                   Nachricht = handyStartwert1 ":" handyStartwert2 ":" wurfNr)
byte = das erste Byte von mac, das kleiner als 252 ist
v    = byte mod 36
wurf = (floor(v / 6) + 1,  v mod 6 + 1)

252 ist 7 × 36, also ist jeder der 36 geordneten Würfe gleich wahrscheinlich. Die Bytes 252 bis 255 werden übersprungen, weil sie sonst die ersten vier Würfe leicht bevorzugen würden. Ist keines der 32 Bytes kleiner als 252 (die Wahrscheinlichkeit liegt bei etwa 2-192, viel zu selten, um damit zu rechnen), wird an den Teil mit den Handy-Startwerten ein + angehängt und der MAC neu berechnet: handyStartwert1:handyStartwert2+:wurfNr, dann ++ und so weiter.

Das Siegel vor dem ersten Wurf ist SHA-256(Bytes des Server-Startwerts) in Hexadezimalschreibweise. Ein Server-Startwert hat 16 bis 64 Bytes; das Spiel verwendet 32. Ein Handy-Startwert besteht aus 1 bis 128 Zeichen: Buchstaben, Ziffern, _ und -; die App erzeugt 32 Hexadezimalzeichen.

Warum das funktioniert

Das Siegel liegt vor dem ersten Wurf auf dem Tisch, also kann der Server seinen Startwert nicht mehr austauschen, wenn er sieht, wie die Partie läuft: Das Siegel würde sich mit ändern. Dein Handy erzeugt seinen Startwert erst, nachdem das Siegel gezeigt wurde, also kann der Server keinen Startwert wählen, der dazu passt. Jeder Wurf hängt von beiden ab, und du hast alles, was du zum Nachrechnen brauchst.

Zeigt die Seite einen Wurf, der von dem auf dem Brett abweicht, oder ein Siegel, das nicht passt, heb den Link auf und schreib an [email protected]. Wir wollen es wissen.

Links auf diese Seite

Die Taste „Diese Würfel prüfen“ in der App öffnet diese Seite mit allem, was im Link nach dem # steht, also dem Teil, den dein Browser nie an einen Server schickt: /de/check/#v=1&s=…&c=…&p=a,b&r=6344…&g=52,48. s ist der Startwert des Servers, c das Siegel, p die Handy-Startwerte in Sitzreihenfolge, r jeder Wurf als zwei Ziffern in Wurfreihenfolge und g, bei einem Match aus mehreren Partien, wie viele Würfe jede Partie hatte.