زهر يمكنك التحقق منه
تحقّق من زهر جولة
حين تنتهي الجولة أو المباراة، اضغط الختم في بطاقة النتيجة، ثم «تحقّق من هذا الزهر». تُفتح هذه الصفحة وفيها كل شيء جاهز، ويعيد متصفحك حساب الختم وكل رمية، ولا يرسل قيم الجولة إلى أي مكان.
كيف تُحسب الرمية
الشيفرة نفسها تعمل في التطبيق وعلى الخادم، وهذه الصفحة نسخة منها. كل رمية في المباراة تأتي من HMAC واحد:
mac = HMAC-SHA256(key = server seed bytes,
message = phoneSeed1 ":" phoneSeed2 ":" rollNumber)
byte = the first byte of mac that is below 252
v = byte mod 36
dice = (floor(v / 6) + 1, v mod 6 + 1)
المفتاح (key) هو بايتات مفتاح الخادم، والرسالة (message) هي مفاتيح الهواتف ورقم الرمية تفصل بينها نقطتان. من الـMAC يُؤخذ أول بايت قيمته أقل من 252، وباقي قسمته على 36 يعطي الرقمين. ولأن 252 = 7 × 36، فإن لكل واحدة من الرميات المرتّبة الـ36 الاحتمال نفسه. تُتخطّى البايتات من 252 إلى 255 لأن إبقاءها كان سيميل قليلًا لصالح الرميات الأربع الأولى. وإذا لم يكن أي من البايتات الـ32 أقل من 252 (احتمال يقارب 2-192، وهو أندر من أن يُتوقَّع)، يُضاف + إلى جزء مفاتيح الهواتف ويُحسب الـMAC من جديد: phoneSeed1:phoneSeed2+:rollNumber، ثم ++، وهكذا.
الختم المعروض قبل الرمية الأولى هو SHA-256(server seed bytes) مكتوبًا بالنظام الست عشري. طول مفتاح الخادم من 16 إلى 64 بايت، واللعبة تستخدم 32. ومفتاح الهاتف من 1 إلى 128 رمزًا من الحروف والأرقام و_ و-؛ والتطبيق يولّد 32 رمزًا ست عشريًا.
لماذا ينجح ذلك
الختم على الطاولة قبل الرمية الأولى، فلا يستطيع الخادم تبديل مفتاحه بعد أن يرى مسار الجولة: سيتغيّر الختم أيضًا. وهاتفك يولّد مفتاحه بعد ظهور الختم، فلا يستطيع الخادم أن يختار مفتاحًا يناسبه. كل رمية تعتمد على المفتاحين، وبين يديك كل ما يلزم لإعادة حسابها.
إذا عرضت الصفحة رمية تختلف عمّا رأيته على الطاولة، أو ختمًا لا يطابق، فاحتفظ بالرابط وراسلنا على [email protected]. نريد أن نعرف.
الربط بهذه الصفحة
زر «تحقّق من هذا الزهر» في التطبيق يفتح هذه الصفحة بكل ما يأتي بعد # في الرابط، وهو الجزء الذي لا يرسله متصفحك إلى أي خادم: /ar/check/#v=1&s=…&c=…&p=a,b&r=6344…&g=52,48. فالحرف s هو مفتاح الخادم، وc الختم، وp مفاتيح الهواتف بترتيب المقاعد، وr كل رمية برقمين بترتيب الرميات، وg، في مباراة من عدة جولات، عدد الرميات في كل جولة.