Аутентификация в защищенной компьютеризованной игровой системе

Изобретение относится к использованию методов аутентификации с использованием доказательств с нулевым знанием в качестве базы для обеспечения защиты в компьютеризированной игровой системе для игры на ставки. Технический результат достигается за счет обеспечения архитектуры и способа игры на ставки путем защищенного хранения и верификации игрового кода и других данных, обеспечивая возможность защищенного обмена игрового кода в компьютеризированной игровой системе на ставки и/или сетевой системе. Изобретение обеспечивает возможность идентифицировать код игровой программы как сертифицированный или утвержденный Комиссией по регулированию игр штата или другими регулирующими агентствами. Изобретение также обеспечивает эти и другие функции с использованием шифрования, арифметических операций по модулю, хеш-функций и других криптографических методов. 6 н. и 32 з.п. ф-лы, 6 ил.

 

Область техники

Настоящее изобретение относится к компьютеризованным игровым системам для игры на ставки, более конкретно к использованию методов аутентификации с использованием доказательств с нулевым знанием (zero knowledge proof - ZKP) в качестве базы для обеспечения защиты в компьютеризованной игровой системе для игры на ставки.

Предшествующий уровень техники

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

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

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

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

Примеры таких игровых автоматов с отличающейся функцией призовой игры раскрыты в патентах США 5823874, 5848932, 5853041, в патентах Великобритании 2201821А, 2202984А, 2072395А и в патенте Германии 4014477А1. Каждый из этих патентов отличается способами игры в рамках призового раунда. Патент Великобритании 2201821А и патент Германии 3700861А1 описывают игровой автомат, в котором, после того как в первый раз достигнут выигрыш в игровом сегменте того типа, в котором используются барабаны, начинается второй сегмент, чтобы определить присужденное количество денег или дополнительных игр. Игра второго сегмента связана с использованием вращающегося барабана с приведенными на нем призовыми (например, количество монет или количество дополнительных игр) и вращающейся стрелки, которая будет указывать на сегменты на барабане со значениями призовых на нем. Игрок будет нажимать кнопку останова, и стрелка будет указывать на одно из значений. В описании указывается, что имеется определенный уровень способностей у игрока, связанный с остановкой барабана и стрелки (стрелок), а также что связанный компьютер действует для обеспечения случайного выбора циклически изменяющихся чисел для определения результатов в дополнительной выигрышной игре, что указывает на некоторый выбор случайным образом во втором игровом сегменте. Патенты США 5823874 и 5848932 описывают игровое устройство, содержащее первый стандартный игровой блок для отображения случайно выбранной комбинации знаков, причем отображаемые знаки выбраны из группы, состоящей из барабанов, знаков на барабанах, знаков игральных карт и их комбинаций; средство для генерации, по меньшей мере, одного сигнала, соответствующего, по меньшей мере, одному выбранному изображению знаков, первым игровым блоком; средство для обеспечения, по меньшей мере, одного различимого знака механического указателя призовой игры, причем упомянутый различимый знак указывает, по меньшей мере, на одну из множества возможных призовых игр, причем упомянутое средство для обеспечения оперативно связано с первым стандартным игровым блоком и активизируется в ответ на упомянутый сигнал. Реально второе игровое событие имитирует механический указатель призовой игры, такой как колесо рулетки или колесо с указательным элементом.

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

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

Была сделана, по меньшей мере, одна попытка создать универсальную игровую машину (процессор), выделяющую код, ассоциированный с генерацией случайных чисел (RNG), и алгоритмы, применяемые к последовательности случайных чисел, из остатка кода. В патенте США 5707286 описано такое устройство. Патентовладелец понял, что модульный код обеспечит выгоды от использования, однако предложил выполнить модульными только RNG и алгоритмы передачи.

Отсутствие стандартной операционной системы способствовало поддержанию искусственно высокой цены на эти системы на рынке. Этому способствует использование уникальных и нестандартизованных интерфейсов аппаратных средств в различных выпускаемых видеоигровых системах. Различные аппаратные средства, различные коды доступа, различные связи выводов, различные жгуты проводки для соединения выводов, различные функции, обеспечиваемые с различных выводов, и другие разнообразные и различающиеся конфигурации в пределах систем препятствуют стандартизации в данной области техники. Это является предпочтительным для изготовителей игровых автоматов, поскольку игры для каждой системы предоставляются исключительным образом одним изготовителем, и системы в целом легко устаревают, так что рынок вынужден приобретать комплектный блок, а не просто заменять программное обеспечение и аппаратные средства. Таким образом, конкуренты не могут просто обеспечить одну игру, в которую можно было бы играть с использованием различных аппаратных средств. Решение этой проблемы представлено в совместно поданной настоящим заявителем заявке на «Видеоигровое устройство для игры на ставки с использованием универсального компьютеризованного контроллера и интерфейса ввода/вывода для уникальной архитектуры» № 09/405,921 от 24 сентября 1999, раскрытие которой включено в настоящее описание посредством ссылки.

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

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

В патенте США 5643086 описана игровая система, обеспечивающая возможность аутентификации приложения или игровой программы, сохраненной в устройстве памяти (носителе данных), таком как CD-ROM (ПЗУ на компакт-диске), RAM (ОЗУ), ROM (ПЗУ) или другом устройстве с использованием методов хеширования и шифрования. Устройства памяти могут быть расположены в игровом автомате или могут быть внешними относительно игрового автомата. Такой способ верификации не позволит обнаружить какие-либо изменения, которые возникают в исполняемом коде, поскольку этот способ тестирует код, находящийся на носителе до его загрузки в ОЗУ. Система аутентификации основывается на использовании цифровой подписи и предусматривает хеширование всего набора данных до осуществления процесса шифрования и дешифрования. См. также патенты США 6106396 и 6149522.

Патентная заявка США № 09/949,021 от 7 сентября 2001 на «Шифрование в защищенной компьютеризованной игровой системе» раскрывает систему шифрования/аутентификации, в которой компьютеризованный игровой контроллер имеет процессор, память и энергонезависимую память и обеспечивает управление компьютеризованной игрой на ставки; и игровые данные, сохраненные в энергонезависимой памяти, причем игровые данные, сохраненные в энергонезависимой памяти, проверяются в процессе работы. Кроме того, раскрыта игровая система, содержащая энергонезависимую память, зашифрованный файл управления, сохраненный в энергонезависимой памяти, причем зашифрованный файл управления включает в себя набор имен программных файлов, дающих информацию команд, код аутентификации сообщений, уникальный для каждого программного файла, и ключ кода аутентификации сообщений; игровой контроллер, обеспечивающий возможность дешифрования зашифрованного файла управления и аутентификации файлов игровых программ в процессе работы игровой системы; и устройства игровой системы, осуществляющие связь с игровым контроллером через интерфейс игровой системы.

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

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

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

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

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

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

Полнота. Верифицирующая сторона всегда принимает доказательство, если факт является истинным, и как доказывающая сторона, так и верифицирующая сторона следуют протоколу.

Нормальность (правильность). Верифицирующая сторона всегда отклоняет доказательство, если факт является ложным, при условии, что верифицирующая сторона следует протоколу.

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

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

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

Краткое описание чертежей

Фиг. 1 - компьютеризованное устройство для игры на ставки, которое может быть использовано для реализации некоторых вариантов осуществления изобретения.

Фиг. 2 - диаграмма сетевого компьютера, соединенного с некоторыми компонентами, включающая в себя часть компьютеризованного устройства для игры на ставки, совместимого с некоторыми вариантами осуществления настоящего изобретения.

Фиг. 3 - граф, используемый для объяснения одного из примеров.

Фиг. 4 - диаграмма выступов, поясняющая описание процесса доказательства с нулевым знанием.

Фиг. 5 - блок-схема, соответствующая одному из ряда вариантов осуществления доказательства с нулевым знанием.

Фиг. 6 - cave (полость) - диаграмма для описания теории доказательства с нулевым знанием.

Детальное описание изобретения

Следующее описание содержит изложение того, как доказательство с нулевым знанием описано в работе Bruce Schneier, "Applied Cryptography", Second Edition, John Wiley& Sons, Inc., 1996. ISBN 0-471-12845-7. Функция доказательства с нулевым знанием в типовом случае обсуждается в терминах событий, причем cave-диаграмма, показанная на фиг. 6, представляет собой полезный инструмент для данного обсуждения. Предположим, что дверь между двумя пунктами, обозначенными С и D, может быть отперта только с использованием секретного ключа или пароля. Предполагается, что некоторое лицо (доказывающая сторона) знает секрет для отпирания двери, и оно может убедить наблюдателя (верифицирующую сторону), что ему известен секрет для отпирания двери, без необходимости открытия этого секрета наблюдателю с использованием доказательства с нулевым знанием. (Термин «нулевое знание» вытекает из того факта, что никакое знание секрета не выдается при представлении доказательства, таким образом, единичные итерации могут продолжаться нескончаемо долго).

Единичное доказательство с нулевым знанием может осуществляться следующим образом. Наблюдатель и лицо, владеющее секретом, как открыть дверь, начинают процедуру в точке А. Лицо, владеющее секретом, входит в полость в точку С или в точку D на диаграмме. После того как лицо, владеющее секретом, окажется на месте, оно вызывает наблюдателя для перемещения в точку В на диаграмме.

Наблюдатель затем выбирает случайным образом 1 или 0. Предварительно установлено, что если наблюдатель выбрал 0, то лицо, владеющее секретом, выйдет на левую сторону диаграммы, а если наблюдатель выбрал 1, то лицо, владеющее секретом, выйдет на правую сторону диаграммы. Наблюдатель выбирает число случайным образом, после того как лицо, владеющее секретом, окажется на месте в точке С или D. В результате наблюдатель знает, что единственным путем, когда результат может быть успешным с вероятностью 100%, является то, что если лицо, заявляющее, что оно знает секрет, действительно знает, как открыть дверь.

Заметим, что если это лицо на самом деле не знает секрета, вероятность равна точно 50%, что они смогут выйти из полости по правильному ходу, после того как наблюдатель выберет случайное число. Поэтому при повторении проверки с нулевым знанием n раз вероятность продолжения наличия успешного исхода, если лицо в действительности не знает секрета, становится 1/(2n). Если проверка с нулевым знанием повторяется 10 раз, то вероятность равна 1 из 1024, что лицо сможет «обмануть» протокол.

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

Таким образом, ключевыми элементами доказательства с нулевым знанием являются следующие: 1) секрет, который может быть продемонстрирован без открытия его точного значения или его свойства, 2) извещение о конкретном выборе или проблеме, 3) случайный бит, выбранный после извещения, 4) возможность выполнить протокол независимо от того, какой бит выбран. Требуется, чтобы было невозможным успешно выполнить протокол со 100% вероятностью, если извещение не согласуется с выбранным случайным образом битом, если только секрет не известен. Выстраивая в цепочку множество итераций доказательства с нулевым знанием, вероятность того, что некто, не знающий секрет, сможет предсказать (передать извещение) правильный выбор до осуществления случайного выбора бита, может быть снижена.

Пример 1: Графическая реализация протокола доказательства с нулевым знанием

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

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

При задании конкретного графа, если существует путь, который соединяет все вершины графа только однократно вдоль пути и завершается в исходной вершине, то такой путь известен как «гамильтонов цикл». На чертеже путь 2-4-6-5-1-9-8-3-10-7-2 является гамильтоновым циклом. Гамильтонов цикл является трудной проблемой для решения в случае чрезвычайно больших графов. Если только путь не является уже известным, время, которое потребовалось бы потратить на нахождение гамильтонова цикла в чрезвычайно большом графе, по математическому порядку величины соответствует квадрату числа вершин в графе.

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

Предположим, что гамильтонов цикл известен для конкретного чрезвычайно большого графа (наиболее вероятно путем создания графа из случайной функции). Это составляет секрет. Единственной итерацией доказательства с нулевым знанием данного секрета была бы следующая:

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

2) Доказывающая сторона случайным образом переупорядочивает граф и перенумеровывает все вершины.

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

4) Верифицирующая сторона выбирает случайным образом бит 0 или 1.

а) Если выбранный бит есть 0, то доказывающая сторона показывает, что новый граф изоморфен старому графу.

b) Если выбранный бит есть 1, то доказывающая сторона показывает гамильтонов цикл для нового графа.

Заметим, что для каждого цикла этого протокола, если мошенник в действительности не знает гамильтонова цикла исходного графа, то он должен был бы прогнозировать, выберет ли верифицирующая сторона 0 или 1 на этапе 4, прежде чем извещать на этапе 2. Если мошенник ожидал выбора 0, то он случайным образом переупорядочил бы исходный граф, но не смог бы найти гамильтонов цикл в новом графе, если вместо этого была выбрана 1, поскольку он не знает первоначальный секрет. Если мошенник ожидал выбора 1, то он мог бы генерировать новый граф с гамильтоновым циклом в нем, с тем же числом вершин и ребер, что и в исходном графе, но он не смог бы обеспечить отображение вершин для доказательства, что два графа были изоморфны, если вместо этого был выбран 0. Кроме того, поскольку новый граф является случайным относительно исходного графа и только одно из двух решений дается с каждой итерацией доказательства с нулевым знанием, то отсутствует утечка информации, относящейся к первоначальному секрету. Протокол может быть повторен любое число раз, причем с каждой итерацией уменьшается вероятность того, что кто-то сможет успешно предсказать случайные биты для всех этапов.

Пример 2: Протокол доказательства с нулевым знанием с использованием разложения на множители, возведения в квадрат и арифметических операций по модулю

Эта процедура основывается на опубликованной в Интернете статье о доказательствах с нулевым знанием автора Bennett Yee из Калифорнийского университета, Сан-Диего.

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

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

Доказывающая сторона публикует значение v=s2 mod n. Поскольку математически очень сложно вычислить корень квадратный из этого значения по модулю n (см. выше), то секрет остается скрытым.

Доказывающая сторона выбирает случайное число r.

Доказывающая сторона извещает о значении x=r2 mod n и посылает это значение верифицирующей стороне. Верифицирующая сторона выбирает случайное число 0 или 1.

а) Если выбранный бит есть 0, то доказывающая сторона посылает y=r верифицирующей стороне; и верифицирующая сторона проверяет, чтобы убедиться, согласовано ли y2 mod n со значением x=r2 mod n, о котором доказывающая сторона известила на этапе 3.

b) Если выбранный бит есть 1, то доказывающая сторона посылает y=r s верифицирующей стороне, и верифицирующая сторона проверяет, согласуется ли y2 mod n с значением xv.

Заметим, что если мошенник не знает секрет, то он смог бы только успешно завершить протокол с вероятностью 50%. Если мошенник ожидал, что выбрано 0, то он мог бы только следовать протоколу и иметь успех, если только в действительности не было бы выбрано 1, и в этом случае он не смог бы предоставить значение y=rs верифицирующей стороне, поскольку секрет s неизвестен. С другой стороны, если мошенник ожидал, что выбрана 1, он смог бы выбрать любое случайное число t и послать x=t2/v в верифицирующей стороне, если только 0 не был в действительности выбран, и в этом случае он не смог бы вычислить квадратный корень из v mod n в знаменателе.

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

Ниже приведен пример того, что представляет собой этот протокол с использованием 128-битовых чисел:

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

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

Хеш-функция представляет собой функцию, которая берет битовую последовательность переменной длины и вычисляет из нее более короткую битовую идентифицирующую последовательность («отпечаток пальца») фиксированной длины. Это значение хеш-функции может быть использовано для различных целей в компьютерной области.

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

Путем использования односторонней хеш-функции любой алгоритм доказательства с нулевым знанием может быть адаптирован для осуществления аутентификации. Для того чтобы показать, как это делается, напомним, что каждый алгоритм, основанный на доказательстве с нулевым знанием, должен содержать для каждой итерации: 1) секрет, который может быть предоставлен без раскрытия его точного значения или свойства; 2) извещение о конкретном выборе или проблеме (случайная перестановка); 3)случайный бит, который выбран после извещения, и 4) возможность завершения протокола независимо от того, какой бит выбран. В одном из примеров, приведенных выше, секретом была нумерация вершин графа для задачи нахождения гамильтонова цикла, а во втором примере - выбранная битовая последовательность. В обоих случаях секрет был замаскирован генерацией случайной перестановки перед каждым доказательством с нулевым знанием, чтобы не открыть секрет. Часть доказательства с нулевым знанием в каждом примере для доказывающей стороны заключалась в открытии случайного упорядочения, если соответствующий случайный бит был выбран верифицирующей стороной.

Обращаясь к фиг. 5, можно видеть, что если набор данных используется в качестве входных данных для односторонней хеш-функции, вместе с проверкой существования секрета и случайными перестановками из каждого цикла доказательства с нулевым знанием вырабатывается значение хеш-функции, которое зависит не только от набора данных, но и от случайных извещений о строго определенных проблемах ZKP (которые могут, таким образом, описываться как случайные перестановки первоначальной задачи). Это значение хеш-функции может затем использоваться как случайная битовая строка, которая выводится из входных данных. Иными словами, вместо осуществления доказательства с нулевым знанием по интерактивной процедуре, когда верифицирующая сторона случайным образом выбирает 1 или 0, можно использовать шаблон единиц или нулей, который образует эту хэш-функцию из односторонней хеш-функции, для завершения протокола ZKP по неинтерактивной процедуре. Поскольку результат значения хеш-функции невозможно предсказать, доказывающая сторона должна быть готова решать строго определенные задачи для каждого доказательства с нулевым знанием, и единственным путем осуществления этого со 100% достоверностью является знание секрета.

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

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

Реализация аутентификации на основе доказательства с нулевым знанием на игровом устройстве

В данном разделе показано, каким образом провайдер игровой системы и провайдер игры могут реализовать аутентификацию на игровом устройстве (автомате) с использованием доказательств с нулевым знанием. Используя математическую реализацию согласно примеру 2, провайдер публикует значение v=s2 mod n путем шифрования v секретным ключом или путем выпуска его отдельным способом из набора игровых данных, например на стираемой программируемой постоянной памяти операционной системы (OS EPROM). Оно может дешифрироваться с использованием открытого ключа, но извещается, что секрет остается защищенным ввиду математической сложности вычисления квадратного корня по модулю n. Как отмечено выше, шифрование является второстепенным для данного метода. В этом случае оно используется только для сохранения значения v неизменным в случае, когда оно сохраняется на носителе для записи.

Когда наступает время генерировать последовательность ZKP, наборы игровых данных должны хешироваться вместе со значением v и множеством случайных перестановок. Как только случайное хешированное значение вычислено, как описано в предыдущем разделе, биты хешированного значения используются как случайные варианты выбора для решений для доказательств с нулевым знанием. Решения сохраняются незашифрованными вместе со случайными извещениями. Заметим, что аутентификация могла бы выполняться на пофайловой основе или значения хеш-функций от каждого индивидуального набора игровых данных могли бы подвергаться логической операции «ИСКЛЮЧАЮЩЕЕ ИЛИ» для экономии пространства хранения, и при этом весь набор файлов мог бы хешироваться и верифицироваться сразу. В других вариантах осуществления значения хеш-функций от каждого индивидуального набора игровых данных могли бы комбинироваться так, чтобы формировался новый набор данных, который мог бы затем подвергаться аутентификации с использованием процесса ZKP.

Когда наступает время осуществлять аутентификацию наборов игровых данных в игре, значение v восстанавливается путем дешифрирования. Затем выполняются хеширования набора (наборов) игровых данных, включая случайные извещения и значение v. Решения ZKP затем проверяются путем верификации, являются ли корректными доказательства с нулевым знанием для каждого случайного бита. Если решения корректны для каждого бита в значении хеш-функции, то набор(ы) игровых данных рассматривается (ются) как аутентичный (ые).

Модификации метода аутентификации на основе ZKP

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

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

Третья модификация состоит в том, что код аутентификации сообщения заменяется на одностороннюю хеш-функцию. Код аутентификации сообщения является зависимой от ключа односторонней хеш-функцией. Эта модификация сделала бы значение хеш-функции дополнительно зависимым от случайной битовой последовательности, которую можно было бы использовать различными способами, чтобы обеспечить дополнительную гибкость в работе с протоколом. Этот вариант описан в совместно поданной патентной заявке (номер дела поверенного PA0670.ap.US), с той же датой подачи, что и настоящая заявка, включенной в настоящее описание посредством ссылки вместе со ссылками, цитированными в ней.

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

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

«Хеш-функции» для целей настоящего описания представляют собой некоторый тип функции, которая генерирует уникальную последовательность данных, в типовом случае фиксированной длины из последовательностей символов или текста переменной длины. Генерируемая последовательность данных в типовом случае существенно меньше, чем собственно текстовая последовательность, но достаточно велика, так что невозможно сформировать то же самое число посредством хеш-функции из отличающихся текстовых последовательностей. Формула, используемая в хеш-функции, должна быть, таким образом, выбрана так, чтобы оказалось невозможным, чтобы другие текстовые последовательности сформировали бы то же самое значение хеш-функции.

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

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

Некоторые хеш-функции известны как односторонние хеш-функции, означающие то, что с помощью таких функций чрезвычайно трудно получить текстовую последовательность, которая должна сформировать данное значение хеш-функции, но относительно легко сформировать значение хеш-функции из текстовой последовательности. Это гарантирует то, что невозможно модифицировать содержание текстовой последовательности и сформировать то же самое значение хеш-функции. Примером подходящей односторонней хеш-функции является 160-битовая хеш-функция SHA (защищенный алгоритм хеширования). Независимо от размера файла значение хеш-функции будет иметь длину 160 битов.

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

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

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

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

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

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

Существуют другие методы и формулы, которые также могут быть использованы в соответствии с настоящим изобретением. Некоторые методы шифрования, такие как DES (стандарт шифрования данных) и его варианты основываются на секретности единственного ключа, и поэтому могут оказаться неадаптируемыми к методам, представленным в настоящем описании, и требуют пары ключей с применением открытого ключа. Множество других методов шифрования, таких как RSA (алгоритм цифровой подписи Райвеста-Шамира-Адлемана) или Диффи-Хеллмана, совместимы с методами, основанными на использовании открытого и секретного ключей, и поэтому могут использоваться в этих методах. Также могут использоваться различные хеш-функции, такие как MD5 или SHA, которые могут оказаться полезными во многих аспектах, совместимых с настоящим изобретением, при условии, что они в достаточной степени нереверсивны, чтобы рассматриваться как односторонние хеш-функции. Различные методы шифрования также обеспечат изменяемые степени защищенности, от тех, которые относительно легко преодолеть, до таких, которые чрезвычайно трудно преодолеть. Такие различающиеся степени защищенности должны рассматриваться в рамках объема методов шифрования, совместимых с настоящим изобретением, включая различные степени защищенности, которые могут изменять степени вероятности, с которой для зашифрованных данных обеспечивается невозможность их фальсификации, невозможность считывания и т.п. Существует множество методов шифрования и, как ожидается, будут разрабатываться в будущем, и все такие методы, вероятно, могут использоваться в некотором аспекте, совместимом с изобретением, и поэтому входят в объем изобретения.

На фиг. 1 представлена приведенная для примера игровая система 100, иллюстрирующая множество компонентов, которые в типовом случае имеются в игровых системах, и то, каким образом они могут использоваться в соответствии с изобретением. Устройства пользовательского интерфейса в этой игровой системе включают в себя кнопки 101, джойстик 102 и рукоятку 103. Кредит для ставок может помещаться посредством щели 104 для монет или жетонов, устройства 105, например приемника банкнот или устройства считывания с карточек, или любого другого устройства ввода кредита. Устройство 105 считывания с карточек может также обеспечивать возможность записи информации о кредите на пользовательскую карточку, когда пользователь завершает игру, или кредит может возвращаться через лоток 106 для монет или другое устройство для возврата кредита. Информация предоставляется пользователю посредством таких устройств, как видеоэкран 107, который может представлять собой ЭЛТ, жидкокристаллическую панель, панель на светоизлучающих диодах, или другое устройство отображения, которое формирует визуальное отображение под управлением компьютеризованного игрового контроллера. Также кнопки 101 могут подсвечиваться, чтобы указывать, какие кнопки можно использовать для обеспечения действительного ввода в игровую систему в любой момент игры. Дополнительные световые или иные визуальные индикаторы могут быть обеспечены для указания игровой информации или для других целей, например для привлечения внимания потенциальных игроков. Звуки формируются посредством динамиков 108 и тоже могут использоваться для указания статуса игры, для привлечения внимания потенциальных игроков или для других целей, под управлением компьютеризованного игрового контроллера.

Игровая система 100 также содержит компьютеризованный игровой контроллер 111 и интерфейс 112 ввода/вывода, соединенные через шину 113. Не требуется, чтобы универсальный игровой контроллер 111 имел программное обеспечение или аппаратные средства, спроектированные для согласования с требованиями к интерфейсу, соответствующими различным блокам пользовательских интерфейсов игровых систем, а может быть спроектирован однократно и может управлять различными игровыми системами через интерфейсы 112 ввода/вывода, спроектированные для надлежащего сопряжения ввода и вывода универсального компьютеризованного игрового контроллера с блоками интерфейсов, находящихся в различных игровых системах.

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

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

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

На фиг. 2 представлен сетевой компьютер, соединенный с выбранными элементами, которые образуют часть компьютеризованного игрового автомата для игры на ставки, используемого в различных вариантах осуществления настоящего изобретения. Компьютеризованный игровой контроллер 201 имеет процессор 202, память 203 и энергонезависимую память 204. Примером энергонезависимой памяти является устройство массовой памяти с групповой перезаписью («флэш-диск»). Флэш-диск предпочтительно предназначается для считывания и записи и сохраняет информацию, сохраненную на диске, после выключения питания. С компьютеризованным игровым контроллером в некоторых вариантах осуществления связаны устройство 205 массовой памяти и адаптер 206 сетевого интерфейса. Адаптер 206 сетевого интерфейса подсоединен к сетевому компьютеру 207 через сетевое соединение 208. Различные компоненты, показанные на фиг. 2, существуют в вариантах осуществления изобретения и показаны для иллюстрации того, каким образом связаны различные компоненты.

Компьютеризованный игровой контроллер для игры на ставки, соответствующий изобретению, действует для управления компьютеризованной игрой на ставки и в различных вариантах осуществления использует шифрование для обеспечения защищенности данных. Компьютеризованный игровой контроллер 201 в некоторых вариантах осуществления является универсальным компьютером, таким как IBM PC-совместимый компьютер. Игровой компьютер исполняет операционную систему, такую как Lunix или Microsoft Windows, которая в некоторых вариантах осуществления модифицируется для исполнения в компьютеризованных игровых автоматах. Компьютеризованный игровой контроллер также исполняет игровой код, который может быть загружен в память 203 перед исполнением либо из массовой памяти 205, например с накопителя на жестких дисках, либо из энергонезависимой памяти 204, например из флэш-памяти или стираемой программируемой постоянной памяти. В некоторых вариантах осуществления компьютеризованный игровой контроллер 201 загружает функции шифрования в память 203, и эти функции затем исполняются для защищенной загрузки данных других игровых систем из массовой памяти 205.

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

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

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

В одном варианте осуществления операционная система, как описано в совместно поданной заявке на «Компьютеризованную игровую систему, способ и устройство», имеющей номер 09/520,405 от 8 марта 2000, взаимодействует с библиотекой «совместно используемых объектов», которые являются специфическими для игрового приложения. Для целей настоящего раскрытия термин «совместно используемые объекты» определен как автономные (модульные) функциональные блоки игрового кода, которые определяют конкретный набор признаков или последовательность операций для игры. Индивидуальная особенность (специализация) и поведение (способ действия) игрового автомата согласно настоящему изобретению определяются конкретным набором совместно используемых объектов, вызываемых и исполняемых операционной системой. В одной игре множество совместно используемых объектов может динамически загружаться и исполняться. Это определение противоречит общепринятому значению совместно используемого объекта, которое в типовом случае обеспечивает API (интерфейс программирования приложения - набор функций, предоставляемый для использования в прикладных программах) для множества программ. API является интерфейсом программирования приложения и включает в себя библиотеку функций.

В одном варианте осуществления совместно используемые объекты для конкретного приложения и их соответствующие цифровые подписи (сигнатуры) сохранены во флэш-памяти или EPROM. Когда совместно используемые объекты вызываются, они копируются в ОЗУ (RAM), где они хешируются на частой периодической основе. Совместно используемые объекты могут хешироваться из флэш-памяти или могут загружаться в RAM и затем хешироваться из RAM. Использование Linux, Unix или иной подобной операционной системы предпочтительным образом позволяет поместить данные в RAM. Верификация данных в RAM имеет определенное преимущество, состоящее в том, что возникающие ошибки могут быть зафиксированы в момент их появления, а не тогда, когда данные загружены или выгружены. Это сэкономит для казино огромные суммы за счет исключения выплаты джекпотов и тому подобных выигрышей, обусловленных сбоями в функционировании игровых автоматов. Поскольку хеширование представляет собой процесс пакетной обработки, этот процесс не является непрерывным. Однако если хеширование занимает относительно малое время, например 10 секунд, процесс может повторяться, так что верификация данных в RAM в действительности будет непрерывной. Внутреннее устройство верификации, описанное в настоящем документе, как то, которое описано в патентной заявке США № 10/318,369 от 10 сентября 2001 (которая включена в настоящее описание посредством ссылки), обеспечивает механизм, повышающий скорость хеширования, причем указанное устройство может быть использовано для практической реализации изобретения.

Хотя выше детально описана верификация кода совместно используемых объектов игровой программы, верификация кода с использованием хеш-функций и цифровых подписей может быть применена для верификации аутентичности linux-ядра, модульных модификаций ядра, операционной системы, данных состояния игры, данных генерации случайных чисел и т.д.

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

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

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

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

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

Эти методы аутентификации или шифрования в некоторых вариантах осуществления изобретения также применяются к передачам данных в компьютеризованной игровой системе по сети. Данные, передаваемые по сети, в различных вариантах осуществления изобретения верифицируются с использованием хеш-функции, верифицируются путем шифрования с использованием открытого ключа и секретного ключа, верифицируются с использованием симметричного шифрования, верифицируются в процессе, подобном использованию процедуры шифрования случайного числа, описанной выше, или верифицируются с использованием цифровых подписей или других криптографических методов, таких как «чаффинг» (помехи). Также существует множество протоколов обмена ключей или согласования ключей, которые в некоторых вариантах осуществления изобретения обеспечивают возможность для сетевой компьютеризованной игровой системы публично согласовывать с другой сетевой компьютерной системой ключи шифрования, которые могут затем использоваться для защищенного информационного обмена по сети.

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

Поскольку методы аутентификации обычно обеспечивают определенную степень защиты, которая зависит от усилий и затрат, хакеры вкладывают средства в преодоление шифрования, замену ключей шифрования, которые могут быть использованы в некоторых вариантах осуществления изобретения. Использование генерации случайных чисел с 25,50,60,80,100,120,128,156,1980 и более символов явно обеспечивает возможность превзойти возможности хакеров по доступу к кодам. Это особенно верно, когда генерация случайных чисел является уникальной для индивидуальных автоматов и может быть даже уникальной для каждой игры или каждой загрузки (программы начального пуска) игры. Цифровые подписи в некоторых вариантах осуществления являются действительными только в течение предварительно определенного периода времени и в других вариантах осуществления имеют связанную с ними дату истечения срока, после которой они больше не могут использоваться. Такие методы также могут быть применены в различных вариантах осуществления изобретения для лицензирования игр на использование в течение определенного периода времени, после которого они не могут быть верифицированы надлежащим образом вследствие истечения срока действия ключей шифрования, используемых для верификации данных. Поскольку хеш-функции обычно формируют значения хеш-функции, которые полностью зависят от хешируемых данных, варианты осуществления изобретения, которые включают истечение и замену опорных значений хеш-функции, также требуют повторного выпуска модифицированных данных для выработки другого значения хеш-функции. Например, незначительно измененные «безошибочные варианты» (версии ПО, выпущенные ради исправления старых ошибок), добавления новых свойств, другие незначительные изменения в данных, составляющих игровую программу, будут достаточны для формирования отличающегося опорного значения хеш-функции после хеширования отредактированных программных данных, следствием чего является обновленное опорное значение хеш-функции, соответствующее обновленным данным.

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

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

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

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

В качестве части подготовительной последовательности перед выполнением итераций выполняется следующее:

1) Генерировать секрет и доказательство существования секрета. Это делается однократно. Секрет, будучи генерированным, не может быть изменен. Доказательство существования секрета имеет следующие свойства: оно уникально для секрета, и очень трудно вычислить секрет из доказательства его существования. Секрет должен быть либо сохранен в неперезаписываемой запоминающей среде OS EPROM, либо он может быть зашифрован с использованием открытого и секретного ключей, чтобы секрет было невозможно изменить без знания секретного ключа. Этот этап является общим для интерактивного и неинтерактивного протоколов ZKP. Отметим, что шифрование с использованием PKI не является обязательной частью способа.

Для выполнения интерактивного ZKP:

Эта процедура должна быть выполнена в сети или ином типе среды, которая поддерживает «живой» (в реальном времени) обмен данными.

2) Генерировать случайное число и из него генерировать случайную перестановку доказательства существования секрета. Случайная перестановка доказательства существования секрета должна быть такой, чтобы было очень трудно восстановить случайное число, которое было использовано из случайной перестановки.

3) Предоставить (известить) случайную перестановку верифицирующей стороне. (Верифицирующая сторона должна также иметь доказательство существования секрета.)

4) Верифицирующая сторона выбирает 1 или 0.

5) В зависимости от того, было ли выбрано 1 или 0, делается одно из следующего:

а. Если выбрано 0, то открыть случайное число, которое было использовано для генерации случайной перестановки.

b. Если было выбрано 1, то открыть, что операции известен секрет путем комбинирования случайного числа и секрета таким образом, чтобы можно было показать, что способ, которым случайная перестановка связана со случайным числом, ассоциируется со способом, которым доказательство существования секрета связано с первоначальным секретом. Это должно быть сделано таким путем, чтобы не выдать в процесс ни случайное число, ни секрет.

6) Повторять этапы 2-5 столько раз, сколько желательно. Каждый этап снижает вероятность мошенничества соответственно коэффициенту 1/2.

Для неинтерактивного ZKP, чтобы аутентифицировать фрагмент данных (D), выполненный для подготовки набора данных D для аутентификации, после подготовки секрета согласно этапу (1) выполнить следующие этапы:

2) Принять решение, сколько итераций следует выполнить. Назвать это число N.

3) Генерировать N случайных чисел. Из этих чисел генерировать N случайных перестановок доказательства существования секрета.

4) Прогнать доказательство существования секрета, N случайных перестановок и данные D (например, игровые данные казино, наборы игровых данных казино и т.д.) через одностороннюю хеш-функцию для получения случайной последовательности «1» и «0».

5) Применить каждый бит случайной последовательности к этапу (5) интерактивного протокола. Сохранить результаты этого этапа вместе со случайными перестановками.

Для аутентификации набора D данных в игровом автомате:

Повторять этапы (4) и (5) неинтерактивной процедуры, приведенной выше, чтобы удостовериться, что все этапы были завершены надлежащим образом и успешно. Существование завершенных проверок гарантирует аутентичность набора D данных, который был использован при генерации значения хеш-функции (случайной последовательности «1» и «0»).

Другой альтернативный метод для описания другого варианта осуществления аутентификации игровых данных казино в игровом автомате с использованием доказательства с нулевым знанием заключается в следующем:

а) Первый этап заключается в выборе случайного числа. Этот этап может быть выполнен любым способом, предпочтительно с использованием генератора случайных чисел (даже генератора случайных чисел, обычно имеющегося в игровом аппарате для игры на ставки) или любым иным способом. Это случайное число является «секретом» в методе ZKP (подобно «секрету», описанному выше для других вариантов осуществления процесса аутентификации ZKP).

b) Случайное число вводится через математическую функцию (первоначальную математическую функцию) для получения второго отличающегося числа или значения. Генерация второго отличающегося числа или значения осуществляется таким образом, чтобы не имелось конкретной формулы, алгоритма или процесса, с помощью которых можно было бы подставить второе отличающееся число, чтобы в результате получить упомянутое случайное число. Примером такой функции может служить r2 mod n, где r - случайное число, а n - произведение двух простых чисел. Очень легко вычислить получающееся в результате число, однако очень трудно получить из результата исходное значение r.

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

d) Дополнительная информация необходима для работы с системой верификации, в том числе следующее: большое количество случайных чисел пропускаются через первоначальную математическую функцию для формирования «различных вторых чисел». Ряд из этих «различных вторых чисел» (обрабатываемые числа) может сохраняться в автомате или генерироваться в момент, когда подготавливается доказательство по процедуре ZKP. Они сохраняются в памяти в автомате вместе с наборами игровых данных. Полное число сохраненных чисел (они представляют собой обрабатываемые числа) вместе с наборами игровых данных вводится в хеш-функцию для вычисления последовательности случайных комбинаций (SRP) из «1» и «0» (эта SRP-последовательность не используется в качестве значения хеш-функции, а именно ряд «1» и «0»). Берется первый бит (0 или 1) SRP-последовательности, и если первый бит представляет собой 0, то принимается первое решение. Если первый бит представляет собой 1, то принимается второе решение. Если бит решения соответствует 0, то может быть принято решение взять первое случайное число (и затем последовательно каждое из них, для которого связанный бит решения представляет собой 0) и связать (считанное следующим друг с другом) первое обработанное случайное число со случайным числом, которое привело к этому значению. Если бит решения представляет собой 1, то второе решение может состоять в умножении первого обработанного случайного числа на первоначальное секретное число (для формирования произведения) и затем в связывании произведения с обработанным случайным числом, которое соответствует тому биту.

Указанные операции производятся для такого числа обработанных случайных чисел, какое желательно, вплоть до предельного значения количества битов в SRP-последовательности. Это может делаться так часто и до тех пор, пока возможно, путем добавления к SRP-последовательности с использованием больших чисел или путем генерирования полностью нового набора случайных перестановок и повторения процесса.

В результате в памяти (например, в портативной флэш-памяти или в памяти другого типа) сохраняются случайные обработанные числа и связанные с ними данные. Затем может осуществляться аутентификация в компьютеризованном игровом автомате путем регенерации комбинации из «1» и «0». Такая регенерация может быть выполнена путем пропускания SRP-последовательности через хэш-функцию вместе с первоначальным набором игровых данных и сохраненными обработанными случайными числами. При регенерации комбинации из «1» и «0» связанные данные проверяются для проверки того, как они сопоставляются с комбинацией из «1» и «0». Аутентификация будет вновь установлена, если последовательности проверок ZKP завершены корректно и полностью для всех N битов.

Компоненты настоящего изобретения могут быть реализованы аппаратными средствами посредством микропроцессора, программируемой логики или конечного автомата, а также программно-аппаратными средствами или на основе программного обеспечения в конкретном устройстве. Внутренний управляющий верификатор описан в совместно поданной предварительной заявке № 10/318,369 от 10 сентября 2001 и также может быть использован для повышения скорости хеширования. В предпочтительном варианте осуществления один или более компонентов изобретения реализованы посредством программного обеспечения. Компоненты настоящего изобретения, реализованные посредством программного обеспечения, также могут находиться на одном или более машиночитаемых носителей. Машиночитаемые носители в том виде, как использовано в настоящем описании, включают в себя память любого типа, энергозависимую и энергонезависимую, такую как дискеты, жесткие диски, CD-ROM, флэш-память, ПЗУ (ROM), ОЗУ (RAM). Кроме того, игровая система 100 может использовать электронную систему/оборудование с встроенным микропроцессором, реализующие специализированные аппаратные средства электронного оборудования.

В одном аспекте игровая система может включать в себя игровую систему управления, интерфейс игровой системы и автоматы игровой системы. Игровые системы управления включают в себя компьютеры или контроллеры, энергозависимую память и энергонезависимую память. Контроллер включает в себя память и энергонезависимое ОЗУ (NVRAM). В одном аспекте память является оперативной памятью. Оперативная память может представлять собой динамическую оперативную память (DRAM). Энергонезависимое ОЗУ включает в себя резервную батарею питания для сохранения данных, имеющихся в памяти после отключения питания. В одном варианте осуществления энергонезависимое ОЗУ 308 используется для хранения критически важных игровых данных, например настроек игрового автомата для игры в «слоты», процентов выплат и кредитов.

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

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

В одном аспекте хеш-функция, используемая в изобретении, может представлять собой хеш-функцию типа SHA. Другие подходящие хеш-функции включают в себя MD5, SHEFRU, HAVAL и N-HASH. Другие хеш-функции, которые могут быть использованы в изобретении, будут очевидны для специалистов в данной области техники на основе изучения настоящего описания. Хешированные значения выходных данных или сообщений сохраняются в системе памяти. Система памяти может включать в себя профиль сообщений, сохраняемый в памяти типа RAM или VRAM или в другой подходящей системе памяти, являющейся частью игровой системы.

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

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

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

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

2. Компьютеризованное игровое устройство для игры на ставки по п.1, в котором последовательность доказательства с нулевым знанием аутентифицирует управление игрой.

3. Компьютеризованное игровое устройство для игры на ставки по п.1, в котором последовательность доказательства с нулевым знанием аутентифицирует сохраненные игровые данные путем

a) обеспечения секрета,

b) обеспечения N итераций, подлежащих выполнению,

c) генерирования N случайных чисел,

d) генерирования из этих чисел N случайных перестановок доказательства существования секрета путем обработки случайных чисел с использованием математической функции,

e) выполнения доказательства существования секрета как функции v=s2mod N; N случайных перестановок и набора D сохраненных игровых данных с использованием односторонней хеш-функции для получения случайной последовательности «1» и «0»,

f) использования каждого бита для принятия решения, причем каждое решение приводит к отдельной взаимосвязи, для каждого бита случайной последовательности, образованной односторонней хеш-функцией, и

g) сохранения результатов этапа (f) вместе с соответствующими элементами в случайных перестановках,

аутентифицирования набора D сохраненных игровых данных в игровом устройстве путем повторения этапов (d) и (е) вышеуказанной процедуры для верификации того, что все этапы завершены надлежащим образом и успешно выполнены.

4. Компьютеризованное игровое устройство для игры на ставки по п.1, в котором игровые данные сохранены в энергонезависимой памяти и хешированы вместе с набором случайных перестановок, и результирующее значение используется для выполнения последовательности доказательства с нулевым знанием.

5. Компьютеризованное игровое устройство для игры на ставки по п.4, в котором результирующее значение является результатом хеширования игровых данных и случайных перестановок с использованием односторонней хеш-функции.

6. Компьютеризованное игровое устройство для игры на ставки по п.1, в котором программа указывает, что

i) если отклики на последовательность доказательства с нулевым знанием корректны, то сохраненные игровые данные подтверждаются, и

ii) если отклики на последовательность доказательства с нулевым знанием некорректны, то сохраненные игровые данные идентифицируются как дефектные.

7. Компьютеризованное игровое устройство для игры на ставки по п.1, в котором сохраненные игровые данные и, по меньшей мере, одна случайная перестановка хешируются зависимой от ключа хеш-функцией.

8. Компьютеризованное игровое устройство для игры на ставки по п.1, в котором игровые данные сохраняются в энергонезависимой памяти, составляющей часть компьютеризированного игрового устройства для игры на ставки.

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

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

11. Компьютеризованное игровое устройство для игры на ставки по п.1, в котором компьютеризованный игровой контроллер представляет собой универсальный компьютер.

12. Компьютеризованное игровое устройство для игры на ставки по п.1, дополнительно содержащее сетевой интерфейс, соединяющий компьютеризованное игровое устройство для игры на ставки с сетевым компьютером.

13. Компьютеризованное игровое устройство для игры на ставки по п.1, в котором программа аутентификации включает в себя только часть верификации последовательности доказательства с нулевым знанием и взаимодействует через сеть с удаленной доказывающей стороной.

14. Компьютеризованное игровое устройство для игры на ставки по п.1, в котором последовательность доказательства с нулевым знанием аутентифицирует сохраненные игровые данные.

15. Компьютеризованное игровое устройство для игры на ставки по п.13, в котором последовательность доказательства с нулевым знанием аутентифицирует сохраненные игровые данные путем верификации откликов, полученных по сети.

16. Компьютеризованное игровое устройство для игры на ставки по п.13, в котором последовательность доказательства с нулевым знанием идентифицирует удаленного верификатора через сеть.

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

использование последовательности доказательства с нулевым знанием для верификации игровых данных, причем последовательность доказательства с нулевым знанием опрашивает сохраненные игровые данные для аутентификации сохраненных игровых данных;

загрузку игрового кода во вторую память;

хеширование сохраненных игровых данных со случайным числом;

сравнение отклика нулевого знания с сохраненными игровыми данными, относящимися к откликам доказательств с нулевым знанием, в непрерывно исполняемом программном потоке, исполняющемся в компьютеризированном игровом контроллере; и

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

18. Способ по п.17, в котором игровые данные аутентифицируют.

19. Способ по п.17, в котором игровые данные содержат игровые данные казино.

20. Способ по п.17, в котором хеширование переданных данных выполняют в процессе верификации.

21. Способ по п.17, в котором хеширование выполняют зависимой от ключа хеш-функцией.

22. Способ по п.17, дополнительно содержащий шифрование данных, используемых в протоколе ZKP, перед передачей или сохранением.

23. Способ по п.17, в котором хеширование выполняют посредством встроенного средства проверки достоверности.

24. Компьютеризованное игровое устройство для игры на ставки, содержащее

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

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

при этом хеш-функция и программа аутентификации выполняются в непрерывно исполняемом программном потоке, исполняющемся в компьютеризированном игровом контроллере.

25. Устройство по п.24, в котором проверка достоверности кода игровой программы посредством программы аутентификации осуществляется односторонней хеш-функцией.

26. Компьютеризированное игровое устройство для игры на ставки, содержащее

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

процессор предназначен для периодического копирования в память игрового кода;

генератор случайных чисел предназначен для генерирования множества случайных чисел для выбора числа или итераций-перестановок и их генерации;

процессор также предназначен для обеспечения случайных перестановок выбираемой из генератора случайных чисел комбинации и сохранения результатов случайных перестановок в памяти, а также для проверки результатов перестановок посредством хеш-функции;

процессор также предназначен для непрерывной верификации сохраненных результатов по одному файлу или набору игровых данных в каждый данный момент времени, чтобы определять, не возникли ли изменения в игровых данных;

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

27. Устройство по п.26, в котором игровые данные и случайные перестановки хешируются зависимой от ключа хеш-функцией.

28. Устройство по п.26, в котором игровые данные сохранены в энергонезависимой памяти, являющейся частью компьютеризированного игрового устройства для игры на ставки.

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

30. Устройство по п.26, дополнительно содержащее сетевой интерфейс для соединения компьютеризированного игрового устройства для игры на ставки с сетевым компьютером.

31. Способ защиты данных в компьютеризированном игровом устройстве для игры на ставки, заключающийся в том, что

обеспечивают управление компьютеризированной игрой на ставки путем выполнения загруженного в память игрового кода;

периодически копируют с помощью процессора игровой код в оперативную память;

генерируют множество случайных чисел посредством генератора случайных чисел;

генерируют множество случайных перестановок комбинации, выбираемой из генератора случайных чисел;

сохраняют результаты случайных перестановок в памяти;

верифицируют результаты случайных перестановок хеш-функцией;

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

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

32. Способ по п.31, в котором игровые данные аутентифицируют.

33. Способ по п.31, в котором игровые данные содержат игровые данные казино.

34. Способ по п.31, в котором хеширование выполняют зависимой от ключа хеш-функцией.

35. Способ по п.31, в котором хеширование выполняют посредством встроенного средства проверки достоверности.

36. Считываемый компьютером носитель с сохраненными на нем командами, при исполнении которых обеспечивается

выполнение загруженного в первую память игрового кода для игры на ставки;

периодическое копирование игрового кода во вторую память;

генерирование комбинации случайных чисел, имеющей множество итераций-перестановок комбинаций случайных перестановок;

сохранение результатов случайных перестановок в первой памяти;

верификацию сохраненных результатов хеш-функцией;

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

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

37. Считываемый компьютером носитель по п.36, дополнительно содержащий команды для соотнесения комбинации случайных чисел и сохраненных результатов.

38. Считываемый компьютером носитель по п.36, в котором хеш-функция является односторонней хеш-функцией.



 

Похожие патенты:

Изобретение относится к игровым устройствам, снабженным «дикими» символами. .

Изобретение относится к области индустрии развлечений и касается способов работы игровых автоматов. .

Изобретение относится к игровым автоматам. .

Изобретение относится к работе игровых автоматов. .

Изобретение относится к игровым автоматам. .

Изобретение относится к способам работы игровых автоматов. .

Изобретение относится к средствам хранения данных системы проверки подлинности. .

Изобретение относится к системе установленных на расстоянии друг от друга игровых устройств. .

Изобретение относится к игровым автоматам, оснащенным в соответствии с правилами механическими счетчиками, с которыми соединен электронный механизм оплаты, работающий на основе электронной карточки.

Изобретение относится к средствам телекоммуникации. .

Изобретение относится к системам получения, хранения и обработки электронных ваучеров клиентов, пользующихся мобильной связью или персональным цифровым «помощником».

Изобретение относится к области защиты информации. .

Изобретение относится к области предоставления услуг рекламного, информационного характера или услуг средств массовых коммуникаций. .
Изобретение относится к информационным медицинским технологиям. .

Изобретение относится к системам по продаже населению товаров и услуг с использованием сетевых технологий. .

Изобретение относится к банкоматам, обеспечивающим выдачу наличных денег, в частности к обнаружению неисправностей модуля дисплея банкомата. .

Изобретение относится к автоматам для выполнения транзакций и представляет собой кассету для денежных купюр, предназначенную для банкомата. .
Наверх