Рекомендую!

ГСЧ онлайн казино, и можно ли его «взломать»

>ГСЧ онлайн казино, и можно ли его «взломать»

На просторах интернета постоянно появляются разные чудодейные программы и отдельные гении, якобы способные «взломать» ГСЧ (генератор случайных чисел) онлайн казино и гарантировать выигрыш. Конечно, всё это лишь развод либо на деньги за программу, либо чтобы заманить игрока в партнёрское казино и получить деньги за его привлечение. Давайте посмотрим, что же представляет собой ГСЧ в онлайн казино, и почему любые разговоры о «взломе» - полный бред. На всякий случай предупрежу, что статья будет с элементами математики и даже физики, кому лень разбираться, просто запомните, что любые разговоры о возможности предугадывания результата игры в казино - это наглый обман, и почитайте какие-нибудь другие полезные статьи.

Итак, ГСЧ, как следует из названия, должен выдавать нам случайные числа. Обычно ГСЧ выдаёт числа в диапазоне 0-1, а дальше уже программа преобразует их в результаты игры: например, для рулетки умножает на 37 и округляет до ближайшего целого вниз - это даст нам целые числа от 0 до 36. Для костей аналогично умножают на 6, округляют и прибавляют единицу, получая числа от 1 до 6, для карт делают от 1 до 52 (54 в случае джокеров) и т.д. Но нам не интересна эта обработка, вернёмся собственно к ГСЧ, как они обеспечивают нам случайность? Тут есть два варианта: аппаратный генератор случайных чисел и программный генератор псевдослучайных чисел.

Начнём с аппаратных генераторов. Они используют случайные физические процессы, чтобы генерировать на выходе случайные числа. Точнее даже, в таких генераторах на выходе обычно идёт просто сплошной поток случайных битов нолей и единиц (например, 00100011011100101), который опять же программно можно «разрезать» и интерпретировать как числа. Принципы работы и входящие сигналы, используемые в таких ГСЧ, могут быть различны. Например, компания Quantum, в соответствии со своим названием предлагает квантовые ГСЧ. На небольшой плате стоит генератор света, который поштучно испускает кванты. Они падают на полупрозрачное стекло. Соответственно, половина квантов отражается (это даёт нам ноль), а половина приходит на датчик по другую сторону стекла (это даёт нам единицу). Так как квантовые процессы по определению неопределённые (интересный каламбур получился), то есть случайные (может кто-то слышал о такой штуке, как принцип неопределённости Гейзенберга), то на выходе мы получаем истинно случайные результаты. Другая компания предлагает генератор, созданный на основе полупроводникового генератора белого шума. Этот белый шум оцифровывается, дополнительно обрабатывается (используются результаты нескольких источников) и опять же даёт на выходе случайные числа. Другие генераторы работают на атмосферном шуме (радиошум, вызываемый преимущественно молниями), фотоэффекте, различных видах полупроводниковых шумов и т.д. Такие генераторы можно купить, довольно много есть в USB-формате, и стоить они могут как несколько тысяч долларов, так и несколько десятков, правда, в зависимости от принципа и скорость работы (количество случайных чисел в секунду) у них разная. Но есть довольно шустрые и недорогие генераторы, так что использование их для казино не составит проблем. При этом все коммерческие генераторы проходят тщательные проверки на случайность выдаваемых чисел, так что в них можно быть уверенными. Как вы, надеюсь, понимаете, такой ГСЧ даже теоретически «взломать», предсказать результат его работы невозможно. Просто потому, что он построен на элементах случайности «встроенных» в наш мир.

Теперь перейдём к генераторам псевдослучайных чисел (ГПСЧ). В отличие от аппаратных генераторов, это алгоритмы, компьютерные программы, которые используют некоторые изменяющиеся и по возможности случайные входящие данные, обрабатывают их, и на выходе выдают случайное число. Итак, для начала работы ГПСЧ нужно некое начальное число (так называемое зерно, seed). В его качестве многие генераторы используют номер такта процессора, могут также добавлять другие случайные величины вроде размера свободной памяти (ОЗУ или жёсткий диск) или номера процесса. Далее наше «зерно» обрабатывается так, чтобы гарантировать случайность на выходе. Алгоритмов обработки довольно много. Например, раньше был популярен линейный конгруэнтный метод, который, если говорить вкратце, умножал наше входящее число на некое довольно большое, прибавлял ещё одно число и результат делил по модулю на 232. Из результата деления по модулю (то есть остатка от деления) брали часть бит, например, первую или вторую половину из 32/64 бит, они и становились нашим итоговым случайным числом. Кроме того, вот это итоговое случайное число становилось «зерном» для генерации следующего числа. Данный алгоритм требует мало памяти и очень быстро работает на современных процессорах, к сожалению, зная алгоритм, с учётом того, что полученные случайные числа использовались в дальнейшей генерации, его действительно можно было «взломать». Кроме того, через цикл, равный тем самым 232 (или 4,3 млрд.) числа начнут повторяться, хотя игрок в казино столько явно не наиграет, да и сервер за это время перегрузить успеют.

Так как линейный конгруэнтный метод оказался недостаточно криптостойким, то ему на смену пришли другие. В частности, использовались наши старые знакомые - хэш-функции MD5, SHA-1, SHA-256. Вероятно, вы помните, что одно из свойств хэша - даже при минимальном изменении входных данных («зерна»), на выходе получается совершенно другой хэш. Таким образом, результат кэширования полностью или частично используется как случайное число. Наконец, самым современным и часто используемым ГПСЧ сейчас становится так называемый «вихрь Мерсенна», он отличается низкой предсказуемостью, высокой случайностью, а в цикл входит лишь после 219937 генераций. При этом ГСЧ на «вихре Мерсенна» работает быстро, хотя и требует больше памяти.

В общем, способов сгенерировать случайное число довольно много, есть более старые и в теории уязвимые, есть современные, о «неслучайности» которых можно говорить только в масштабах Вселенной. Однако любой, даже старенький ГСЧ неуязвим при использовании его в онлайн казино. Давайте посмотрим, почему. Начнём со старого линейного конгруэнтного метода, о котором я сказал, что в нём для генерации следующего числа используется число предыдущее, а значит, узнав одно число, можно вычислить предыдущее. На практике же при игре в казино вы ничего наперёд узнать не сможете, и тому есть несколько причин. Во-первых, как я сказал, ГСЧ генерирует число от 0 до 1, которое потом преобразуется в наши 0-36 или 52 карты колоды. Таким образом, игрок казино НЕ ЗНАЕТ исходного числа, он знает только результат умножения и округления. Есть ещё и во-вторых: вы не получите два числа от ГПСЧ подряд. ГПСЧ такого рода обычно работают непрерывно, каждую секунду генерируя миллионы новых случайных чисел. В итоге программа казино получает не числа по порядку, а с очень большим разбросом, так что любой анализ последовательности становится бессмысленным. Если кто-то скажет, что зная алгоритм, можно синхронизироваться с тактами процессора, просчитать их и предсказать, что будет сгенерировано на такте таком-то. Да, зная номер такта, используемого в качестве зерна, а также конкретный алгоритм, вы сможете точно узнать итоговое число. Но проблема в том, что невозможно узнать номер такта. Современные процессоры работают на скоростях порядка 1 ГГц, это 1 млрд. тактов в секунду. А сигнал от компьютера до сервера идёт от десятков до сотен миллисекунд, точно время узнать невозможно (примерное вам покажет команда ping). Таким образом, если вы знаете время доступа к серверу с точностью до миллисекунды, то за этот промежуток пройдёт 1 миллион тактов. Как вы понимаете, конкретное число 32 на рулетке за это время было сгенерировано примерно 27 тысяч раз. Так что вы никоим образом не можете ни узнать число тактов на компьютере в определённое время, ни тем более предсказать, на каком именно такте сигнал от вашего компьютера дойдёт до сервера и вызовет функцию генерации случайного числа.

Кстати, если кто-то жалуется на «неслучайность» ГСЧ, хочу сказать вам, что ГСЧ как таковой тут совсем не виноват. Разговоры о неких «паттернах», «зависимостях» могут работать лишь в нескольких случаях при непрерывной генерации чисел со скоростью работы процессора. Игрок же получает числа раз в несколько секунд, сами промежутки запроса случайны, если брать с точностью не то что в нано-, но даже в миллисекундах. И на одном сервере играют сотни игроков, которые тоже получают свои числа, «вклиниваясь» между вашими играми. Всё это гарантирует реальную случайность результатов. Если же казино играет против вас, то ГСЧ тут уже ни при чём, виновата программа казино, которая не использует ГСЧ, а выбирает результаты по какому-то другому алгоритму. Хотя наличие контроля честности при использовании смещений гарантирует случайность. Также, насколько мне известно, у крупных западных поставщиков софта (NetEnt, Microgaming, PlayTech и др.) все игры, и в том числе ГСЧ, находятся на их собственных серверах, таким образом, казино не могут повлиять на результаты, игра идёт действительно случайно.

Если же вы думаете, что наличие «неслучайной» генерации вместо честного ГСЧ позволит вам обыграть заведение, то тут вы тоже неправы, потому что результаты генерируются не просто по какому-то алгоритму, а против вашей конкретной ставки, так что не запаривайтесь. Кстати, из всего вышеизложенного есть ещё один вывод - не надо придумывать и менять какие-то стратегии. Если казино играет честно, выдаёт случайный результаты с ГСЧ (а именно так и поступают нормальные казино, ибо от -2,7% игроку не уйти), то это просто не нужно. Никто же не знает, когда выйдет последовательность, убойная для стратегии Х, а когда - для стратегии Y. Эта последовательность будет, просто потому что по теории вероятности это должно произойти, потому что даже самый случайный и честный ГСЧ раз примерно раз в 3000 спинов выдаёт 12 шансов/зеро подряд (а 8 подряд - почти в 15 раз чаще). И произойдёт это неависимо от ваших ставок - будете ли вы фигачить мартингейлом или скромненько ставить на числа. Если же казино нечестное, то им не надо вычислять ваши стратегии, достаточно на конкретном спине кинуть шарик мимо вашей ставки.

В общем, каким бы ГСЧ не пользовалось казино - аппаратным или программным, стареньким или современным, игроку это без разницы. Для нужд игроков результаты будут действительно случайными, а казино будет совершенно защищено. Так что оставьте надежду, все, кто мечтает «взломать» ГСЧ. Сделать это невозможно, не получив доступ к серверу. Ну а если вы взломаете сервер казино, зачем вам ГСЧ, просто нарисуйте себе денег на счёте побольше ;). Мой вам совет: играйте в заведениях с хорошим софтом, помните про минусовое матожидание, и не забивайте себе голову вопросами «неслучайности», а также попытками разных предсказаний - ГСЧ казино делает своё дело хорошо!

 

Автор: Шероков Юрий. Ваш покорный слуга, также автор большей части сайта «Казино Онлайн» :).