md5
Игрок внес деньги на игровой счет. Открыл игру 777 (к примеру). Увидел там MD5 хэш ответа. К примеру – 4519cc4f7fbb156263d623e3213cbd1e (32 символа). Сделал ставку. Игра прошла, есть результат. Появилась исходная строка, которая содержит результат игры + секретный код (генерируется случайным образом для защиты от подбора MD5 хэша, при короткой строке результата).
К примеру – 705 fab0737f2ec9564c, где 705 – результат игры.
На любом независимом сервисе генерации MD5 хэшей или в любой программе, позволяющей сделать это, игрок может обработать строку 705 fab0737f2ec9564c по алгоритму MD5 и получить MD5 хэш = 4519cc4f7fbb156263d623e3213cbd1e. Т.е. аналогичный исходному.
Насколько сейчас реально подделать такую схему или md5 еще как-никак, но стабильный тут.
комментариев: 11558 документов: 1036 редакций: 4118
комментариев: 9796 документов: 488 редакций: 5664
Казино должно сгенерировать случайную строку, поместить в "конверт" и вручить игроку. Игрок тоже должен сгенерировать случаную строку. После ставки он требует раскрытия конверта, делает XOR своей строки и строки из раскрытого конверта казино и только на основании этого XOR-значения можно вычислять результат игры.
Для того, чтобы положить один нулевой бит в конверт можно использовать произведение N=pq, где p=1mod(4), q=3mod(4), для того
чтобы положить бит, равный единице: p=3mod(4), q=1mod(4);
p<q.
Разложить большое N на p и q нельзя, после раскрытия p и q игрок может убедиться, что они простые и посчитать модули.
Из множества бросков битов, можно набрать целую битовую строку.
Это самый простой, но довольно ресурсоёмкий способ. Есть и другие, основанные на "coin flipping problem" и "bit commitment sheme".
По крайней мере, там где в генерации битов в игре участвует только казино не совместно с игроком и без одновременного раскрытия битов, оно может найти какой-нибудь способ мошенничать, используя возможную нестойкость хэша, к примеру. Такой протокол несколько неполноценный.