0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Алгоритм и система работы онлайн-слотов — ситуация на 2021 год

Алгоритм и система работы онлайн-слотов — ситуация на 2021 год

До появления интернета игровые автоматы были электромеханическими. В таком автомате была специальная тормозная система и датчики, которые анализировали выпавшую комбинацию.

Позже на смену электромеханическим аппаратам пришли электрические. В них был встроен электродвигатель, а значит игрокам уже не нужно было нажимать на ручку, чтобы поиграть, однако датчики продолжали работать по старому принципу.

Сейчас физические слот-машины — это компьютеры, а выпадение определенных комбинаций происходит за счет генератора случайных чисел или ГСЧ (англ. “Random Number Generator”). Эта же система используется и в онлайн-слотах.

Аппаратный генератор случайных чисел (АГСЧ)

АГСЧ используется в игровых залах или наземных казино, в онлайн казино практически не применяется.

Аппаратный генератор случайных чисел – это устройство (микросхема или плата), которое генерируют случайную последовательность в соответствии с хаотически меняющимися параметрами физического процесса. За основу берутся совершенно непредсказуемые процессы: квантовые явления, излучения изотопов, дробовой шум и так далее.

Статья в тему:  Как обмануть партнерку казино

Определенное число, характерное для физического процесса, является отправной точкой, на основании которой АГСЧ генерирует результат – состояние колеса рулетки, положение барабанов и так далее.

АГСЧ располагается внутри устройства, защищен пломбой, и сотрудники казино не имеют к нему доступ. Перед установкой генератор проходит тестирование в независимой лаборатории. Чтобы настроить генератор в свою пользу, казино должно снять пломбу, выполнить перепрошивку и вернуть АГСЧ назад. В лицензированных заведениях это категорически невозможно, так как они находятся под постоянным контролем. Извне повлиять на работу генератора невозможно.

Как казино используют ГСЧ?

Генератор случайных цифр используют для виртуальных игр, то есть игр, в которых нет дилера. Можно подумать, что это в основном относится к онлайн-казино. Но офлайн-казино также используют ГСЧ для своих виртуальных игр в блэкджек и рулетку, а также для кено, видеопокера и игровых автоматов.

Возьмем, к примеру, демо игровые автоматы. Как именно работает ГСЧ?

Общая идея такова: присваивается значение каждому символу на барабане. Допустим, на каждом барабане 12 символов, и это онлайн игровой автомат с 5 барабанами. ГСЧ будет иметь значение 1-12 для каждого из 5 барабанов. В результате получится 5 разных символов. И если эти 5 «случайных» символов составят выигрышную комбинацию.

Подробно о генераторах случайных и псевдослучайных чисел

Введение

Генераторы случайных чисел — ключевая часть веб-безопасности. Небольшой список применений:

  • Генераторы сессий (PHPSESSID)
  • Генерация текста для капчи
  • Шифрование
  • Генерация соли для хранения паролей в необратимом виде
  • Генератор паролей
  • Порядок раздачи карт в интернет казино
Статья в тему:  Как выиграть у казино в покер

Как отличить случайную последовательность чисел от неслучайной?

Пусть есть последовательность чисел: 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 . Является ли она случайной? Есть строгое определение для случайной величины. Случайная величина — это величина, которая принимает в результате опыта одно из множества значений, причём появление того или иного значения этой величины до её измерения нельзя точно предсказать. Но оно не помогает ответить на наш вопрос, так как нам не хватает информации для ответа. Теперь скажем, что данные числа получились набором одной из верхних строк клавиатуры. «Конечно не случайная» — воскликните Вы и тут же назовете следующие число и будете абсолютно правы. Последовательность будет случайной только если между символами, нету зависимости. Например, если бы данные символы появились в результате вытягивания бочонков в лото, то последовательность была бы случайной.

Чуть более сложный пример или число Пи


Последовательность цифры в числе Пи считается случайной. Пусть генератор основывается на выводе бит представления числа Пи, начиная с какой-то неизвестной точки. Такой генератор, возможно и пройдет «тест на следующий бит», так как ПИ, видимо, является случайной последовательностью. Однако этот подход не является критографически надежным — если криптоаналитик определит, какой бит числа Пи используется в данный момент, он сможет вычислить и все предшествующие и последующие биты.
Данный пример накладывает ещё одно ограничение на генераторы случайных чисел. Криптоаналитик не должен иметь возможности предсказать работу генератора случайных чисел.

Статья в тему:  Когда в европе открылось первое казино

Отличие генератора псевдослучайных чисел (ГПСЧ) от генератора случайных чисел (ГСЧ)

Источники энтропии используются для накопления энтропии с последующим получением из неё начального значения (initial value, seed), необходимого генераторам случайных чисел (ГСЧ) для формирования случайных чисел. ГПСЧ использует единственное начальное значение, откуда и следует его псевдослучайность, а ГСЧ всегда формирует случайное число, имея в начале высококачественную случайную величину, предоставленную различными источниками энтропии.
Энтропия – это мера беспорядка. Информационная энтропия — мера неопределённости или непредсказуемости информации.
Можно сказать, что ГСЧ = ГПСЧ + источник энтропии.

Уязвимости ГПСЧ

  • Предсказуемая зависимость между числами.
  • Предсказуемое начальное значение генератора.
  • Малая длина периода генерируемой последовательности случайных чисел, после которой генератор зацикливается.

Линейный конгруэнтный ГПСЧ (LCPRNG)

Распространённый метод для генерации псевдослучайных чисел, не обладающий криптографической стойкостью. Линейный конгруэнтный метод заключается в вычислении членов линейной рекуррентной последовательности по модулю некоторого натурального числа m, задаваемой следующей формулой:

где a (multiplier), c (addend), m (mask) — некоторые целочисленные коэффициенты. Получаемая последовательность зависит от выбора стартового числа (seed) X0 и при разных его значениях получаются различные последовательности случайных чисел.

Для выбора коэффициентов имеются свойства позволяющие максимизировать длину периода(максимальная длина равна m), то есть момент, с которого генератор зациклится [1].

Пусть генератор выдал несколько случайных чисел X0, X1, X2, X3. Получается система уравнений

Решив эту систему, можно определить коэффициенты a, c, m. Как утверждает википедия [8], эта система имеет решение, но решить самостоятельно или найти решение не получилось. Буду очень признателен за любую помощь в этом направлении.

Статья в тему:  Что такое азартные игры казино

Предсказание результатов линейно-конгруэнтного метода

Основным алгоритмом предсказания чисел для линейно-конгруэнтного метода является Plumstead’s — алгоритм, реализацию, которого можно найти здесь [4](есть онлайн запуск) и здесь [5]. Описание алгоритма можно найти в [9].
Простая реализация конгруэнтного метода на Java.

Отправив 20 чисел на сайт [4], можно с большой вероятностью получить следующие. Чем больше чисел, тем больше вероятность.

Взлом встроенного генератора случайных чисел в Java

Многие языки программирования, например C(rand), C++(rand) и Java используют LСPRNG. Рассмотрим, как можно провести взлом на примере java.utils.Random. Зайдя в исходный код (jdk1.7) данного класса можно увидеть используемые константы

Метод java.utils.Randon.nextInt() выглядит следующим образом (здесь bits == 32)

Результатом является nextseed сдвинутый вправо на 48-32=16 бит. Данный метод называется truncated-bits, особенно неприятен при black-box, приходится добавлять ещё один цикл в brute-force. Взлом будет происходить методом грубой силы(brute-force).

Пусть мы знаем два подряд сгенерированных числа x1 и x2. Тогда необходимо перебрать 2^16 = 65536 вариантов oldseed и применять к x1 формулу:

до тех пор, пока она не станет равной x2. Код для brute-force может выглядеть так

Вывод данной программы будет примерно таким:

Несложно понять, что мы нашли не самый первый seed, а seed, используемый при генерации второго числа. Для нахождения первоначального seed необходимо провести несколько операций, которые Java использовала для преобразования seed, в обратном порядке.

Статья в тему:  Казино в пальма де майорка

И теперь в исходном коде заменим
crackingSeed.set(seed);
на
crackingSeed.set(getPreviousSeed(seed));

И всё, мы успешно взломали ГПСЧ в Java.

Взлом ГПСЧ Mersenne twister в PHP

Рассмотрим ещё один не криптостойкий алгоритм генерации псевдослучайных чисел Mersenne Twister. Основные преимущества алгоритма — это скорость генерации и огромный период 2^19937 − 1, На этот раз будем анализировать реализацию алгоритма mt_srand() и mt_rand() в исходном коде php версии 5.4.6.

Можно заметить, что php_mt_reload вызывается при инициализации и после вызова php_mt_rand 624 раза. Начнем взлом с конца, обратим трансформации в конце функции php_mt_rand(). Рассмотрим (s1 ^ (s1 >> 18)). В бинарном представление операция выглядит так:

10110111010111100111111001110010 s1
00000000000000000010110111010111100111111001110010 s1 >> 18
10110111010111100101001110100101 s1 ^ (s1 >> 18)
Видно, что первые 18 бит (выделены жирным) остались без изменений.
Напишем две функции для инвертирования битового сдвига и xor

Тогда код для инвертирования последних строк функции php_mt_rand() будет выглядеть так

Если у нас есть 624 последовательных числа сгенерированных Mersenne Twister, то применив этот алгоритм для этих последовательных чисел, мы получим полное состояние Mersenne Twister, и сможем легко определить каждое последующее значение, запустив php_mt_reload для известного набора значений.

Область для взлома

Если вы думаете, что уже нечего ломать, то Вы глубоко заблуждаетесь. Одним из интересных направлений является генератор случайных чисел Adobe Flash(Action Script 3.0). Его особенностью является закрытость исходного кода и отсутствие задания seed’а. Основной интерес к нему, это использование во многих онлайн-казино и онлайн-покере.
Есть много последовательностей чисел, начиная от курса доллара и заканчивая количеством времени проведенным в пробке каждый день. И найти закономерность в таких данных очень не простая задача.

Статья в тему:  Можно ли в гта 4 играть в казино

Задание распределения для генератора псевдослучайных чисел

Для любой случайной величины можно задать распределение. Перенося на пример с картами, можно сделать так, чтобы тузы выпадали чаще, чем девятки. Далее представлены несколько примеров для треугольного распределения и экспоненциального распределения.

Треугольное распределение

Приведем пример генерации случайной величины с треугольным распределением [7] на языке C99.

В данном случае мы берем случайную величину rand() и задаем ей распределение, исходя из функции треугольного распределения. Для параметров a = -40, b = 100, c = 50 график 10000000 измерений будет выглядеть так

Экспоненциальное распределение

Пусть требуется получить датчик экспоненциально распределенных случайных величин. В этом случае F(x) = 1 – exp(-lambda * x). Тогда из решения уравнения y = 1 – exp(-lambda * x) получаем x = -log(1-y)/lambda.
Можно заметить, что выражение под знаком логарифма в последней формуле имеет равномерное распределение на отрезке [0,1), что позволяет получать другую, но так же распределённую последовательность по формуле: x = -log(y)/lambda, где y есть случайная величина(rand()).

Тесты ГПСЧ

Некоторые разработчики считают, что если они скроют используемый ими метод генерации или придумают свой, то этого достаточно для защиты. Это очень распространённое заблуждение. Следует помнить, что есть специальные методы и приемы для поиска зависимостей в последовательности чисел.

Одним из известных тестов является тест на следующий бит — тест, служащий для проверки генераторов псевдослучайных чисел на криптостойкость. Тест гласит, что не должно существовать полиномиального алгоритма, который, зная первые k битов случайной последовательности, сможет предсказать k+1 бит с вероятностью большей ½.

Статья в тему:  Сколько стоит лицензия на казино в украине

В теории криптографии отдельной проблемой является определение того, насколько последовательность чисел или бит, сгенерированных генератором, является случайной. Как правило, для этой цели используются различные статистические тесты, такие как DIEHARD или NIST. Эндрю Яо в 1982 году доказал, что генератор, прошедший «тест на следующий бит», пройдет и любые другие статистические тесты на случайность, выполнимые за полиномиальное время.
В интернете [10] можно пройти тесты DIEHARD и множество других, чтобы определить критостойкость алгоритма.

Особенности работы аппаратного ГСЧ

Применяется исключительно в игорных наземных точках. В интернете такой вариант не встретишь. Решение подготавливается в виде микросхемы или платы, генерирующей случайные последовательности с учетом хаотично изменяющихся физических параметров. Так, работа устройства может опираться на различные процессы, которые невозможно предсказать. Сюда можно отнести квантовые явления, изотопные излучения и т.д.

АГСЧ использует в качестве базовой координаты заданное число, присущее физическому процессу. На его основе происходит генерация результата – положения диска рулетки, барабанов. Аппаратный генератор встроен в прибор, доступ к нему опломбирован. Работники казино лишены прямого доступа к устройству. Перед монтажом прибора его тестируют в независимой лаборатории.

Для подстройки модуля в нужном ключе сотрудники заведения должны убрать пломбу, перепрограммировать микросхему и вернуть все обратно. В лицензированных игорных клубах реализовать эти действия невозможно, так как в них постоянно функционирует система контроля. Внешние влияния на аппаратный механизм, выдающий случайные числа, невозможны.

Статья в тему:  Что за музыка в рекламе казино вулкан

Особенности функционирования ГПСЧ

Генератор псевдослучайных значений является программой с высокой степенью защиты, использующей сложный математический алгоритм. Именно он отвечает за выдачу непредсказуемых последовательностей. Такое решение эксплуатируется в 99,9 % онлайн казино. При этом для каждого игрового автомата, видеопокера, рулетки реализуется особая программная последовательность. Набор собственных алгоритмов характерен для каждого производителя. Особенности их функционирования никогда не раскрываются.

ГПСЧ функционирует без перерывов, постоянно выдавая численные последовательности в непрогнозируемом порядке. Стартовым пунктом для модуля служит число, имеющее тысячи и миллионы знаков после запятой. Частенько таковой становится значение Пи с триллионами символов. И речь идет только о начальном значении!

Для получения случайного числа из базовой точки выполняется целая серия математических операций. Они являются тайной разработчиков и не предаются огласке. Итогом функционирования алгоритмов является непрогнозируемый результат. Настройки генератора псевдослучайных чисел защищены шифром. Каким-либо образом обойти его в лицензированных играх невозможно. ГПСЧ официальных программ для казино проверяются перед попаданием продукта в релиз. В дальнейшем их работа постоянно контролируется.

Заключение

В заключении хотелось бы порассуждать о возможных махинациях с ГСЧ. Прибыль покер-рума идет от рейка (часть банка которую забирает себе казино), так что для них не важно кто выигрывает, им важно только количество наигранного рейка. Отсюда втекает идея прибыльной махинации: раздавать чаще хорошие комбинации нескольким игрокам, чтобы они пытались сыграть на все дeньги. Вполне реализуемо, но все тайное когда-нибудь становится явным, а утечка такой информации вполне возможна. И вряд ли небольшая прибавка в прибыли стоит огромных потерь, если такой обман раскроют. Поэтому, если вы играете в покер и вам фатально не везет, не стоит обвинять во всем «подкрученный» ГСЧ, просто переждите полосу неудач и продолжайте играть.

Статья в тему:  Как поймать бонус казино вулкан

На практике, чаще всего, игроки пытаются переложить свои ошибки на сильные плечи ГСЧ, обвиняя его во всех собственных неудачах. Всегда анализируйте собственные действия и ищите ошибки, перед тем как перекинуть вину на разработчиков софта.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector