JPWO2020144863A1 - Random number generation system, random number generator, random number generation method and program - Google Patents

Random number generation system, random number generator, random number generation method and program Download PDF

Info

Publication number
JPWO2020144863A1
JPWO2020144863A1 JP2020565558A JP2020565558A JPWO2020144863A1 JP WO2020144863 A1 JPWO2020144863 A1 JP WO2020144863A1 JP 2020565558 A JP2020565558 A JP 2020565558A JP 2020565558 A JP2020565558 A JP 2020565558A JP WO2020144863 A1 JPWO2020144863 A1 JP WO2020144863A1
Authority
JP
Japan
Prior art keywords
random number
user
terminal
value
initial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020565558A
Other languages
Japanese (ja)
Other versions
JP7230926B2 (en
Inventor
和恵 佐古
勇 寺西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2020144863A1 publication Critical patent/JPWO2020144863A1/en
Application granted granted Critical
Publication of JP7230926B2 publication Critical patent/JP7230926B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators

Abstract

ユーザにとって公平な乱数を迅速に生成する乱数生成システムを提供する。乱数生成システムは、端末と、端末用の乱数を生成する、乱数生成装置と、を含む。乱数生成装置は、初期乱数の封印値を生成する。端末は、初期乱数の封印値が生成された後に、ユーザ乱数を生成する。乱数生成装置は、初期乱数、ユーザ乱数及び少なくとも端末が使用する乱数の生成に関する序数に基づく値をハッシュ関数に入力し、ハッシュ関数の出力結果に基づき乱数を生成する。It provides a random number generation system that quickly generates random numbers that are fair to the user. The random number generation system includes a terminal and a random number generator that generates random numbers for the terminal. The random number generator generates a sealed value of the initial random number. The terminal generates a user random number after the seal value of the initial random number is generated. The random number generator inputs a value based on an initial random number, a user random number, and at least a random number related to the generation of the random number used by the terminal into the hash function, and generates a random number based on the output result of the hash function.

Description

本発明は、乱数生成システム、乱数生成装置、乱数生成方法及びプログラムに関する。 The present invention relates to a random number generation system, a random number generator, a random number generation method and a program.

ネットワーク技術、情報処理技術の進展に伴い、ネットワークを介して種々のサービス(オンラインサービスとも称される)が提供されている。上記サービスの一例として、オンラインゲームが存在する。オンラインゲームには様々な形態が存在し、例えば、ゲームサーバがゲームの進行を担うタイプのオンラインゲーム(例えば、ロールプレイングゲーム)や、ユーザ同士が対戦するフィールドをゲームサーバが提供するタイプのオンラインゲーム(例えば、チェス等のボードゲーム)が存在する。 With the progress of network technology and information processing technology, various services (also called online services) are provided via the network. An online game exists as an example of the above service. There are various forms of online games, for example, online games in which the game server is responsible for the progress of the game (for example, role-playing games), and online games in which the game server provides a field in which users compete with each other. (For example, a board game such as chess) exists.

また、ゲームの娯楽的要素を高める等を目的として、ゲームサーバが乱数を生成することがある(特許文献1参照)。 Further, the game server may generate a random number for the purpose of enhancing the entertainment element of the game (see Patent Document 1).

なお、ゲーム以外にも、乱数を用いるオンラインサービスが存在する。例えば、電子抽選では乱数を用いて、当選者を決定する。 In addition to games, there are online services that use random numbers. For example, in an electronic lottery, a random number is used to determine a winner.

特開2018−50973号公報Japanese Unexamined Patent Publication No. 2018-50973

なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。 The disclosure of the above prior art document shall be incorporated into this document by citation. The following analysis was made by the present inventors.

上述のように、オンラインサービスでは、生成された乱数をサービス遂行の一要素として扱うことがある。その結果、例えば、オンラインゲームでは、生成された乱数がゲームの進行に大きな影響を及ぼすことがある。例えば、ロールプレイングゲームのモンスターに与えられるダメージが乱数により決定されている場合に、当該モンスターを倒せるか否かは乱数に大きく依存することになる。 As described above, in the online service, the generated random number may be treated as an element of the service execution. As a result, for example, in an online game, the generated random numbers may have a great influence on the progress of the game. For example, when the damage given to a monster in a role-playing game is determined by a random number, whether or not the monster can be defeated depends largely on the random number.

首尾良くモンスターを倒せた場合には、ユーザが当該結果に対して不満を覚えることはないと考えられるが、モンスターを倒せない場合に、ユーザが「サーバに有利なように乱数を生成しているのではないか」と考える可能性がある。さらに、乱数を用いた抽選によりアイテムの取得可否が定まるようなゲームの場合には、上記疑念がより大きくなることも予想される。このように、乱数を使用するオンラインサービスでは、サーバが乱数を管理する以上、ユーザは、公平な乱数が使用されていないと疑念を持つ可能性がある。 If the monster is successfully defeated, the user will not be dissatisfied with the result, but if the monster cannot be defeated, the user will "generate a random number in favor of the server." Isn't it? " Furthermore, in the case of a game in which whether or not an item can be acquired is determined by a lottery using random numbers, it is expected that the above suspicion will become even greater. Thus, in online services that use random numbers, users may suspect that fair random numbers are not being used, as long as the server manages the random numbers.

このような問題を解決するため、特許文献1では以下のような処理(手順)により乱数を生成する。乱数生成装置は、端末用の乱数の生成に先だって、初期乱数を生成する。また、端末は、初期乱数の封印値が生成されたことに応じて、ユーザ乱数を生成し、乱数生成装置に提供する。乱数生成装置は、先に生成した初期乱数とユーザ乱数を用いて、端末用の乱数を生成する。乱数生成装置による乱数の生成には、乱数生成装置及び端末が互いに操作することができない初期乱数とユーザ乱数が必要となるので、端末を操作するユーザにとって公平な乱数が生成される。 In order to solve such a problem, in Patent Document 1, random numbers are generated by the following processing (procedure). The random number generator generates an initial random number prior to generating a random number for the terminal. Further, the terminal generates a user random number according to the generation of the sealed value of the initial random number and provides it to the random number generator. The random number generator uses the previously generated initial random number and the user random number to generate a random number for the terminal. In order to generate a random number by the random number generator, an initial random number and a user random number that the random number generator and the terminal cannot operate on each other are required, so that a fair random number is generated for the user who operates the terminal.

特許文献1では、上述のように、2つの乱数(初期乱数、ユーザ乱数)を用いて端末用の乱数を生成している。具体的には、乱数生成装置は、初期乱数とユーザ乱数を用いてハッシュ値を計算し、さらに当該計算したハッシュ値とユーザ乱数を用いてハッシュ値を計算することで端末が使用する乱数を計算している(特許文献1の段落[0064]、[0065])。しかし、乱数の生成において連続したハッシュ関数の利用(2回のハッシュ関数の読み出し)の処理負荷は大きく、即座に必要な乱数を得ることができないという問題を生じさせる。つまり、ハッシュ関数自体の処理負荷が高く、そのようなハッシュ関数を連続して使用する乱数生成手法は乱数生成処理のボトルネックとなりうる。 In Patent Document 1, as described above, two random numbers (initial random number and user random number) are used to generate random numbers for terminals. Specifically, the random number generator calculates the hash value using the initial random number and the user random number, and further calculates the hash value using the calculated hash value and the user random number to calculate the random number used by the terminal. (Paragraphs [0064] and [0065] of Patent Document 1). However, the processing load of using a continuous hash function (reading the hash function twice) is large in the generation of random numbers, which causes a problem that the required random numbers cannot be obtained immediately. That is, the processing load of the hash function itself is high, and a random number generation method that continuously uses such a hash function can become a bottleneck in the random number generation processing.

本発明は、ユーザにとって公平な乱数を迅速に生成することに寄与する、乱数生成システム、乱数生成装置、乱数生成方法及びプログラムを、提供することを目的とする。 It is an object of the present invention to provide a random number generation system, a random number generator, a random number generation method and a program that contribute to the rapid generation of random numbers that are fair to the user.

本発明の第1の視点によれば、端末と、前記端末用の乱数を生成する、乱数生成装置と、を含み、前記乱数生成装置は、初期乱数の封印値を生成し、前記端末は、前記初期乱数の封印値が生成された後に、ユーザ乱数を生成し、前記乱数生成装置は、前記初期乱数、前記ユーザ乱数及び少なくとも前記端末が使用する乱数の生成に関する序数に基づく値をハッシュ関数に入力し、前記ハッシュ関数の出力結果に基づき前記乱数を生成する、乱数生成システムが提供される。 According to the first aspect of the present invention, the random number generator includes a terminal and a random number generator that generates a random number for the terminal, the random number generator generates a sealed value of an initial random number, and the terminal is a random number generator. After the sealed value of the initial random number is generated, a user random number is generated, and the random number generator uses a value based on the initial random number, the user random number, and at least a random number related to the generation of the random number used by the terminal as a hash function. A random number generation system is provided that inputs and generates the random number based on the output result of the hash function.

本発明の第2の視点によれば、初期乱数を生成し、前記初期乱数の封印値を生成する、第1の乱数生成部と、前記初期乱数の封印値が生成された後に端末が生成したユーザ乱数と、前記初期乱数と、少なくとも前記端末が使用する乱数に関する序数に基づく値をハッシュ関数に入力し、前記ハッシュ関数の出力結果に基づき前記乱数を生成する、第2の乱数生成部と、を備える、乱数生成装置が提供される。 According to the second viewpoint of the present invention, a first random number generator that generates an initial random number and generates a sealed value of the initial random number, and a terminal generated after the sealed value of the initial random number is generated. A second random number generator that inputs a user random number, the initial random number, and a value based on at least a random number related to the random number used by the terminal into the hash function, and generates the random number based on the output result of the hash function. A random number generator is provided.

本発明の第3の視点によれば、端末と、前記端末用の乱数を生成する、乱数生成装置と、を含むシステムにおいて、前記乱数生成装置が、初期乱数の封印値を生成するステップと、前記端末が、前記初期乱数の封印値が生成された後に、ユーザ乱数を生成するステップと、前記乱数生成装置が、前記初期乱数、前記ユーザ乱数及び少なくとも前記端末が使用する乱数の生成に関する序数に基づく値をハッシュ関数に入力し、前記ハッシュ関数の出力結果に基づき前記乱数を生成する、ステップと、を含む、乱数生成方法が提供される。 According to the third viewpoint of the present invention, in a system including a terminal and a random number generator for generating a random number for the terminal, the random number generator generates a sealed value of an initial random number. In the step of generating a user random number after the terminal has generated the sealed value of the initial random number, and in the order of the random number generator regarding the generation of the initial random number, the user random number, and at least the random number used by the terminal. A random number generation method including a step of inputting a value based on the hash function and generating the random number based on the output result of the hash function is provided.

本発明の第4の視点によれば、初期乱数を生成し、前記初期乱数の封印値を生成する処理と、前記初期乱数の封印値が生成された後に端末が生成したユーザ乱数と、前記初期乱数と、少なくとも前記端末が使用する乱数に関する序数に基づく値をハッシュ関数に入力し、前記ハッシュ関数の出力結果に基づき前記乱数を生成する処理と、をコンピュータに実行させるプログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
According to the fourth viewpoint of the present invention, a process of generating an initial random number and generating a sealed value of the initial random number, a user random number generated by the terminal after the sealed value of the initial random number is generated, and the initial stage. A program is provided that inputs a random number and at least a value based on a random number related to the random number used by the terminal into a hash function, and causes a computer to execute a process of generating the random number based on the output result of the hash function.
Note that this program can be recorded on a computer-readable storage medium. The storage medium may be a non-transient such as a semiconductor memory, a hard disk, a magnetic recording medium, or an optical recording medium. The present invention can also be embodied as a computer program product.

本発明の各視点によれば、ユーザにとって公平な乱数を迅速に生成することに寄与する、乱数生成システム、乱数生成装置、乱数生成方法及びプログラムが、提供される。 According to each viewpoint of the present invention, a random number generation system, a random number generator, a random number generation method, and a program that contribute to the rapid generation of random numbers that are fair to the user are provided.

一実施形態の概要を説明するための図である。It is a figure for demonstrating the outline of one Embodiment. 第1の実施形態に係るゲームシステムの構成の一例を示す図である。It is a figure which shows an example of the structure of the game system which concerns on 1st Embodiment. 第1の実施形態に係るゲームシステムの動作概略の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the operation outline of the game system which concerns on 1st Embodiment. 第1の実施形態に係るゲームサーバのハードウェア構成の一例を示すブロック図である。It is a block diagram which shows an example of the hardware composition of the game server which concerns on 1st Embodiment. 第1の実施形態に係るゲームサーバの処理構成の一例を示すブロック図である。It is a block diagram which shows an example of the processing structure of the game server which concerns on 1st Embodiment. 第1の実施形態に係る端末の処理構成の一例を示すブロック図である。It is a block diagram which shows an example of the processing structure of the terminal which concerns on 1st Embodiment. 第1の実施形態に係るゲームシステムの動作の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the operation of the game system which concerns on 1st Embodiment. 端末による乱数の公平性検証に係る動作の一例を示すフローチャートである。It is a flowchart which shows an example of the operation which concerns on the fairness verification of a random number by a terminal. 第1の実施形態に係る管理サーバの処理構成の一例を示すブロック図である。It is a block diagram which shows an example of the processing configuration of the management server which concerns on 1st Embodiment. 第1の実施形態に係る管理サーバが生成するブロックの一例を示す図である。It is a figure which shows an example of the block generated by the management server which concerns on 1st Embodiment. 第1の実施形態に係る管理サーバの動作の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the operation of the management server which concerns on 1st Embodiment. 第1の実施形態の変形例に係るゲームシステムの構成の一例を示す図である。It is a figure which shows an example of the structure of the game system which concerns on the modification of 1st Embodiment. 第2の実施形態に係るゲームシステムの動作の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the operation of the game system which concerns on 2nd Embodiment. 第2の実施形態の変形例に係るゲームシステムの動作の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the operation of the game system which concerns on the modification of 2nd Embodiment. 第2の実施形態の変形例に係るゲームシステムの動作の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the operation of the game system which concerns on the modification of 2nd Embodiment. 乱数の生成にユーザが関与する場合の表示画面の一例を示す図である。It is a figure which shows an example of the display screen when a user is involved in the generation of a random number.

初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。 First, an outline of one embodiment will be described. It should be noted that the drawing reference reference numerals added to this outline are added to each element for convenience as an example for assisting understanding, and the description of this outline is not intended to limit anything.

一実施形態に係る乱数生成システムは、端末101と、端末101用の乱数を生成する、乱数生成装置102と、を含む。乱数生成装置102は、初期乱数の封印値を生成する。端末101は、初期乱数の封印値が生成された後に、ユーザ乱数を生成する。乱数生成装置102は、初期乱数、ユーザ乱数及び少なくとも端末101が使用する乱数の生成に関する序数に基づく値をハッシュ関数に入力し、ハッシュ関数の出力結果に基づき乱数を生成する。 The random number generation system according to one embodiment includes a terminal 101 and a random number generation device 102 that generates a random number for the terminal 101. The random number generator 102 generates a sealed value of the initial random number. The terminal 101 generates a user random number after the seal value of the initial random number is generated. The random number generator 102 inputs a value based on an initial random number, a user random number, and at least a random number related to the generation of the random number used by the terminal 101 into the hash function, and generates a random number based on the output result of the hash function.

上記乱数生成システムでは、乱数生成装置102は、端末101用の乱数の生成に先だって、初期乱数を生成する。また、端末101は、初期乱数の封印値が生成されたことに応じて、ユーザ乱数を生成し、乱数生成装置102に提供する。乱数生成装置102は、先に生成した初期乱数、ユーザ乱数及び乱数の生成に関する序数を用いて、端末101用の乱数を生成する。乱数生成装置102による乱数の生成には、乱数生成装置102及び端末101が互いに操作することができない初期乱数とユーザ乱数が必要となるので、端末101を操作するユーザにとって公平な乱数が生成される。また、乱数生成装置102は、初期乱数、ユーザ乱数及び乱数の生成に関する序数に基づく値をハッシュ関数に入力してその結果により乱数を生成することで、迅速な乱数生成が実現できる。即ち、乱数生成装置102は一回のハッシュ関数の利用により乱数を生成しており、処理負荷の高いハッシュ関数の呼び出しが制限されている(特許文献1の技術と比較して減少している)。その結果、迅速に乱数が生成できる。 In the above random number generation system, the random number generation device 102 generates an initial random number prior to the generation of the random number for the terminal 101. Further, the terminal 101 generates a user random number according to the generation of the sealed value of the initial random number, and provides the user random number to the random number generation device 102. The random number generation device 102 generates a random number for the terminal 101 by using the initial random number, the user random number, and the ordinal number related to the generation of the random number generated earlier. In order to generate a random number by the random number generator 102, an initial random number and a user random number that the random number generator 102 and the terminal 101 cannot operate on each other are required, so that a fair random number is generated for the user who operates the terminal 101. .. Further, the random number generator 102 can realize rapid random number generation by inputting an initial random number, a user random number, and a value based on the order related to the generation of the random number into the hash function and generating a random number based on the result. That is, the random number generator 102 generates a random number by using the hash function once, and the call of the hash function having a high processing load is restricted (the number is reduced as compared with the technique of Patent Document 1). .. As a result, random numbers can be generated quickly.

以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。 Specific embodiments will be described in more detail below with reference to the drawings. In each embodiment, the same components are designated by the same reference numerals, and the description thereof will be omitted.

[第1の実施形態]
第1の実施形態について、図面を用いてより詳細に説明する。
[First Embodiment]
The first embodiment will be described in more detail with reference to the drawings.

[システム構成概略]
図2は、第1の実施形態に係るゲームシステムの構成の一例を示す図である。図2を参照すると、ゲームシステムは、ゲームサーバ10と、端末20−1〜20−n(nは正の整数、以下同じ)と、データ管理システム30と、を含んで構成される。ゲームサーバ10、端末20−1〜20−n及びデータ管理システム30のそれぞれは、インターネット等のネットワークを介して相互に接続されている。なお、以降の説明において、端末20−1〜20−nを区別する特段の理由が無い場合には単に「端末20」と表記する。
[Overview of system configuration]
FIG. 2 is a diagram showing an example of the configuration of the game system according to the first embodiment. Referring to FIG. 2, the game system includes a game server 10, terminals 20-1 to 20-n (n is a positive integer, the same applies hereinafter), and a data management system 30. The game server 10, the terminals 20-1 to 20-n, and the data management system 30 are each connected to each other via a network such as the Internet. In the following description, if there is no particular reason for distinguishing terminals 20-1 to 20-n, it is simply referred to as "terminal 20".

なお、ゲームシステムを例に取り第1の実施形態の説明を行うが、以下に説明する公正な乱数生成の手法は、他のシステムに適用できることは勿論である。例えば、当該手法は、電子的に抽選を行う電子抽選システムの乱数生成に適用されてもよい。 The first embodiment will be described by taking a game system as an example, but it goes without saying that the fair random number generation method described below can be applied to other systems. For example, the method may be applied to random number generation of an electronic lottery system that electronically draws lots.

ゲームサーバ10は、ユーザにオンラインゲームを提供する装置である。具体的には、ゲームサーバ10は、ユーザを認証する処理(ログイン/ログアウト処理)、ゲーム進行に係る処理(ゲーム進行処理)等を行う。なお、第1の実施形態にて想定するオンラインゲームは、ゲームサーバ10がゲームの進行を担うタイプのゲーム(例えば、ロールプレイングゲーム)を想定する。つまり、ゲームサーバ10は、端末20用の乱数を生成する乱数生成装置として動作する。 The game server 10 is a device that provides an online game to a user. Specifically, the game server 10 performs a process of authenticating a user (login / logout process), a process related to game progress (game progress process), and the like. The online game assumed in the first embodiment is assumed to be a type of game (for example, a role-playing game) in which the game server 10 is responsible for the progress of the game. That is, the game server 10 operates as a random number generation device that generates random numbers for the terminal 20.

端末20は、オンラインゲームをプレイするユーザが使用する装置である。例えば、パーソナルコンピュータやスマートフォン等の情報処理装置が、上記端末に相当する。 The terminal 20 is a device used by a user who plays an online game. For example, an information processing device such as a personal computer or a smartphone corresponds to the above terminal.

データ管理システム30は、オンラインゲームの運営会社から独立した立場の機関等が運営するシステムである。データ管理システム30は、外部(第3者)に対し、データの書き込み及び読み出しの可能な電子掲示板を提供するシステムである。データ管理システム30は、所謂、ブロックチェーンにより各種情報を管理する。 The data management system 30 is a system operated by an organization or the like that is independent of the online game operating company. The data management system 30 is a system that provides an electronic bulletin board capable of writing and reading data to an outside (third party). The data management system 30 manages various types of information by a so-called blockchain.

データ管理システム30は、所定の手数料を支払うことで、どのような主体でも情報を追記できると共に、書き込まれた情報を読み出すことができ、且つ、一度書き込まれた情報は消去されたり改ざんされたりすることのない電子掲示板を提供する。より正確には、データ管理システム30は、外部装置からは電子掲示板のように扱うことのできるデータ入出力に係るインターフェイスを提供するシステムである。なお、以降の説明において、データ管理システム30はゲームサーバ10の運営会社等から独立した機関等により運営、管理されることを前提とするが、データ管理システム30によるデータ管理の正当性が確保される場合には、ゲームサーバ10等の運営会社が上記電子掲示板を提供してもよい。勿論、この場合には、ゲームサーバ10等は手数料の支払いを必要とすることなく、電子掲示板を利用できる。 By paying a predetermined fee, the data management system 30 can add information to any entity, read the written information, and delete or falsify the once written information. Providing a never-ending electronic bulletin board. More precisely, the data management system 30 is a system that provides an interface related to data input / output that can be handled like an electronic bulletin board from an external device. In the following description, it is assumed that the data management system 30 is operated and managed by an organization or the like independent of the operating company of the game server 10, but the validity of the data management by the data management system 30 is ensured. In that case, the operating company such as the game server 10 may provide the above electronic bulletin board. Of course, in this case, the game server 10 or the like can use the electronic bulletin board without paying a fee.

図2に示すゲームシステムでは、ゲームの進行に必要なデータ(より正確には、後述する初期乱数を封印した封印データ)の授受を、データ管理システム30が提供する電子掲示板を介して行う。なお、上述のように、データ管理システム30は、第3者に電子掲示板を提供するシステムであるため、当該電子掲示板には上記封印データとは無関係なデータ(例えば、商品の売上データ等)が混在することとなる。 In the game system shown in FIG. 2, data necessary for the progress of the game (more accurately, sealed data in which the initial random number described later is sealed) is exchanged via an electronic bulletin board provided by the data management system 30. As described above, since the data management system 30 is a system that provides an electronic bulletin board to a third party, data unrelated to the sealing data (for example, product sales data, etc.) is stored in the electronic bulletin board. It will be mixed.

データ管理システム30は、複数の管理サーバ40−1〜40−4から構成されている。なお、図2の例示は、データ管理システム30を構成する管理サーバの台数を4台に限定する趣旨ではない。データ管理システム30は2台以上の管理サーバを含んで構成されていればよい。 The data management system 30 is composed of a plurality of management servers 40-1 to 40-4. The example in FIG. 2 does not mean that the number of management servers constituting the data management system 30 is limited to four. The data management system 30 may be configured to include two or more management servers.

データ管理システム30をなす複数の管理サーバ40は、図2に示すように、相互に直接接続されている。即ち、データ管理システム30は、P2P(Peer to Peer)接続された複数の管理サーバ40を含んで構成される。 As shown in FIG. 2, the plurality of management servers 40 forming the data management system 30 are directly connected to each other. That is, the data management system 30 includes a plurality of management servers 40 connected by P2P (Peer to Peer).

データ管理システム30では、P2P接続された複数の管理サーバ40それぞれが、外部から受信したデータ(乱数データや売上データ等)を管理するための台帳(以下、データ管理台帳と表記する)を有する。データ管理システム30は、当該データ管理台帳を複数の管理サーバ40に分散して共有し、管理する。 In the data management system 30, each of the plurality of management servers 40 connected by P2P has a ledger (hereinafter referred to as a data management ledger) for managing data (random data, sales data, etc.) received from the outside. The data management system 30 distributes and shares and manages the data management ledger among a plurality of management servers 40.

以降の説明において、データ管理システム30とその外部とのデータの授受は、データ管理システム30と、ゲームサーバ10及び端末20の間に限って説明する。但し、実際には、データ管理システム30は、汎用的な電子掲示板を広く第3者に提供するものであるため、ゲームサーバ10等以外との間でもデータの授受が行われる。 In the following description, data transfer between the data management system 30 and the outside thereof will be described only between the data management system 30, the game server 10, and the terminal 20. However, in reality, since the data management system 30 widely provides a general-purpose electronic bulletin board system to a third party, data is exchanged with other than the game server 10 and the like.

[システム動作概略]
次に、図面を参照しつつ、第1の実施形態に係るゲームシステムの動作概略を説明する。図3は、第1の実施形態に係るゲームシステムの動作概略の一例を示すシーケンス図である。
[Overview of system operation]
Next, the outline of the operation of the game system according to the first embodiment will be described with reference to the drawings. FIG. 3 is a sequence diagram showing an example of an outline of the operation of the game system according to the first embodiment.

ゲームサーバ10の提供するオンラインゲームのプレイを希望するユーザは、端末20を操作して、例えば、ゲームサーバ10の運営会社が用意するWEB(ウェブ)ページにアクセスし、ユーザ登録(アカウント登録)を行う(ステップS01)。アカウント登録を終えると、ユーザは、ゲームサーバ10にログインするための認証情報(ID(Identifier)、パスワード)を取得する。 A user who wishes to play an online game provided by a game server 10 operates a terminal 20 to access, for example, a WEB (web) page prepared by an operating company of the game server 10 and perform user registration (account registration). (Step S01). After completing the account registration, the user acquires authentication information (ID (Identifier), password) for logging in to the game server 10.

また、上記IDやパスワードに係る情報は、ゲームサーバ10が参照可能となるように配置される。例えば、アカウント登録処理が終了すると上記情報がゲームサーバ10に送信され、ゲームサーバ10の内部記憶装置に格納される。あるいは、ゲームサーバ10がアクセス可能なデータベースに上記情報(ID、パスワード)が格納されていてもよい。 Further, the information related to the ID and the password is arranged so that the game server 10 can refer to the information. For example, when the account registration process is completed, the above information is transmitted to the game server 10 and stored in the internal storage device of the game server 10. Alternatively, the above information (ID, password) may be stored in a database accessible to the game server 10.

ユーザは、上記取得した認証情報(IDとパスワードの組み合わせ)をゲームサーバ10に提供して、ゲームサーバ10にログインする(ステップS02)。 The user provides the acquired authentication information (combination of ID and password) to the game server 10 and logs in to the game server 10 (step S02).

ゲームサーバ10は、ユーザから提供された認証情報を用いてユーザ認証を行い、正当なユーザであることが確認できた場合に、ゲームを開始する(ステップS03)。 The game server 10 performs user authentication using the authentication information provided by the user, and starts the game when it is confirmed that the user is a legitimate user (step S03).

なお、オンラインゲームにおける、サーバ(ゲームサーバ10)とクライアント(端末20)の間の情報のやり取りには種々の形態が考えられるが、本願開示においてはどのような形態であってもよい。例えば、端末20にゲーム専用のアプリケーションをインストールすることなく、HTML(Hyper Text Markup Language)ソースでの汎用処理によりオンラインゲームを提供する形態であってもよいし、端末20に専用のアプリケーションをインストールする形態であってもよい。 In the online game, various forms are conceivable for exchanging information between the server (game server 10) and the client (terminal 20), but any form may be used in the disclosure of the present application. For example, the online game may be provided by general-purpose processing in the HTML (Hyper Text Markup Language) source without installing the game-dedicated application on the terminal 20, or the dedicated application may be installed on the terminal 20. It may be in the form.

ゲームサーバ10は、ゲームの進行中に乱数の生成が必要か否かを判定する(ステップS04)。 The game server 10 determines whether or not it is necessary to generate a random number while the game is in progress (step S04).

乱数の生成が必要な場合(ステップS04、Yes分岐)、ゲームサーバ10は乱数生成に係る処理を起動する(ステップS05)。その際、ゲームサーバ10、端末20及びデータ管理システム30の間で乱数生成に必要な情報のやり取りが行われ、ゲームの進行に必要な乱数が生成される。ステップS05の乱数生成に係る処理の詳細は後述する。 When it is necessary to generate a random number (step S04, Yes branch), the game server 10 starts a process related to random number generation (step S05). At that time, information necessary for random number generation is exchanged between the game server 10, the terminal 20, and the data management system 30, and random numbers necessary for the progress of the game are generated. Details of the process related to random number generation in step S05 will be described later.

ゲームサーバ10は、ゲーム終了のために設けられた種々の条件(例えば、タイムオーバ等の条件)を確認することで、ゲームが終了したか否かを判定する(ステップS06)。ゲームが続行している間(ステップS06、No分岐)は、乱数生成の要否が確認され(ステップS04)、乱数の生成が必要な場合には乱数が生成され続ける。ゲームサーバ10は、ゲームが終了したと判定した場合(ステップS06、Yes分岐)には、その旨を端末20に通知する(ステップS07)。 The game server 10 determines whether or not the game has ended by checking various conditions (for example, conditions such as time over) provided for the end of the game (step S06). While the game continues (step S06, No branch), the necessity of random number generation is confirmed (step S04), and if random number generation is required, random numbers continue to be generated. When the game server 10 determines that the game is finished (step S06, Yes branch), the game server 10 notifies the terminal 20 to that effect (step S07).

当該通知を受けた端末20は、ゲームをプレイしている最中に用いられた乱数(ゲームサーバ10が生成した乱数)が公平なものであるか否かを検証する(ステップS08)。端末20は、データ管理システム30が提供する電子掲示板から、乱数の公平性検証のために必要な封印データを取得し、当該データを用いて乱数の公平性を検証する。端末20による乱数の公平性検証に係る処理の詳細は後述する。 The terminal 20 that has received the notification verifies whether or not the random numbers (random numbers generated by the game server 10) used while playing the game are fair (step S08). The terminal 20 acquires the sealing data necessary for verifying the fairness of random numbers from the electronic bulletin board provided by the data management system 30, and verifies the fairness of the random numbers using the data. Details of the processing related to the fairness verification of random numbers by the terminal 20 will be described later.

検証の結果、ゲームサーバ10による乱数生成の公正性に疑義が有る場合には、ユーザは、例えば、ゲームサーバ10の運営会社にその旨を伝える(抗議する)等の行動を取ることができる。 As a result of the verification, if there is any doubt about the fairness of random number generation by the game server 10, the user can take an action such as notifying (protesting) to the operating company of the game server 10 to that effect.

なお、図3の説明では、端末20によるゲームサーバ10からのログアウトについて記載していないが、ユーザは、ゲームを続行する意思のない場合に、ゲームサーバ10からログアウトする。 Although the description of FIG. 3 does not describe the logout from the game server 10 by the terminal 20, the user logs out from the game server 10 when he / she does not intend to continue the game.

[ハードウェア構成]
次に、第1の実施形態に係るゲームシステムを構成する各種装置のハードウェア構成を説明する。図4は、第1の実施形態に係るゲームサーバ10のハードウェア構成の一例を示すブロック図である。
[Hardware configuration]
Next, the hardware configuration of various devices constituting the game system according to the first embodiment will be described. FIG. 4 is a block diagram showing an example of the hardware configuration of the game server 10 according to the first embodiment.

ゲームサーバ10は、情報処理装置(コンピュータ)により構成可能であり、図4に例示する構成を備える。例えば、ゲームサーバ10は、内部バスにより相互に接続される、CPU(Central Processing Unit)11、メモリ12、入出力インターフェイス13及び通信手段であるNIC(Network Interface Card)14等を備える。 The game server 10 can be configured by an information processing device (computer), and includes the configuration illustrated in FIG. For example, the game server 10 includes a CPU (Central Processing Unit) 11, a memory 12, an input / output interface 13, a NIC (Network Interface Card) 14 which is a communication means, and the like, which are connected to each other by an internal bus.

但し、図4に示す構成は、ゲームサーバ10のハードウェア構成を限定する趣旨ではない。ゲームサーバ10は、図示しないハードウェアを含んでもよいし、必要に応じて入出力インターフェイス13を備えていなくともよい。また、ゲームサーバ10に含まれるCPU等の数も図4の例示に限定する趣旨ではなく、例えば、複数のCPUがゲームサーバ10に含まれていてもよい。 However, the configuration shown in FIG. 4 is not intended to limit the hardware configuration of the game server 10. The game server 10 may include hardware (not shown), or may not include an input / output interface 13 if necessary. Further, the number of CPUs and the like included in the game server 10 is not limited to the example shown in FIG. 4, and for example, a plurality of CPUs may be included in the game server 10.

メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、補助記憶装置(ハードディスク等)である。 The memory 12 is a RAM (Random Access Memory), a ROM (Read Only Memory), and an auxiliary storage device (hard disk or the like).

入出力インターフェイス13は、図示しない表示装置や入力装置のインターフェイスとなる手段である。表示装置は、例えば、液晶ディスプレイ等である。入力装置は、例えば、キーボードやマウス等のユーザ操作を受け付ける装置である。 The input / output interface 13 is a means that serves as an interface for a display device or an input device (not shown). The display device is, for example, a liquid crystal display or the like. The input device is, for example, a device that accepts user operations such as a keyboard and a mouse.

ゲームサーバ10の機能は、後述する各種処理モジュールにより実現される。当該処理モジュールは、例えば、メモリ12に格納されたプログラムをCPU11が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能を何らかのハードウェア、及び/又は、ソフトウェアで実行する手段があればよい。 The function of the game server 10 is realized by various processing modules described later. The processing module is realized, for example, by the CPU 11 executing a program stored in the memory 12. In addition, the program can be downloaded via a network or updated using a storage medium in which the program is stored. Further, the processing module may be realized by a semiconductor chip. That is, there may be a means for executing the function performed by the processing module by some hardware and / or software.

なお、端末20や管理サーバ40もゲームサーバ10と同様に情報処理装置により構成可能であり、その基本的なハードウェア構成はゲームサーバ10と相違する点は無いので説明を省略する。 The terminal 20 and the management server 40 can also be configured by an information processing device like the game server 10, and the basic hardware configuration thereof is not different from that of the game server 10, so the description thereof will be omitted.

[ゲームサーバ]
次に、ゲームサーバ10の詳細について説明する。
[Game server]
Next, the details of the game server 10 will be described.

図5は、第1の実施形態に係るゲームサーバ10の処理構成の一例を示すブロック図である。図5を参照すると、ゲームサーバ10は、通信制御部201と、記憶部202と、ゲーム実行制御部203と、を含んで構成される。 FIG. 5 is a block diagram showing an example of the processing configuration of the game server 10 according to the first embodiment. Referring to FIG. 5, the game server 10 includes a communication control unit 201, a storage unit 202, and a game execution control unit 203.

通信制御部201は、他の装置との間の通信を実現する手段である。通信制御部201は、他の装置から受信したメッセージ(パケット)を各処理モジュール部に振り分ける、又は、各処理モジュールから取得したメッセージを他の装置に送信する手段でもある。 The communication control unit 201 is a means for realizing communication with other devices. The communication control unit 201 is also a means for distributing a message (packet) received from another device to each processing module unit or transmitting a message acquired from each processing module to another device.

記憶部202は、例えば、ゲーム実行制御部203の処理等に必要なデータを記憶する。 The storage unit 202 stores, for example, data necessary for processing of the game execution control unit 203 or the like.

ゲーム実行制御部203は、ゲーム進行に関する制御、管理を担う手段である。ゲーム実行制御部203は、ユーザ認証部211と、第1の乱数生成部212と、第2の乱数生成部213という3つのサブモジュールを含んで構成される。 The game execution control unit 203 is a means for controlling and managing the progress of the game. The game execution control unit 203 includes three submodules, a user authentication unit 211, a first random number generation unit 212, and a second random number generation unit 213.

ユーザ認証部211は、ユーザがゲームサーバ10にログインする際、又は、ゲームサーバ10からログアウトする際に起動するサブモジュールである。なお、ユーザ認証の方式はどのようなものであっても良い。例えば、上述のようにパスワードを用いた認証方式でもよいし、ユーザの生体情報(指紋情報等)を用いた生体認証であってもよい。ユーザ認証部211は、端末20から提供されるデータ(被認証データ)とデータベース等に格納されたデータ(照合データ)を比較することで、端末20を利用するユーザの認証を行う。 The user authentication unit 211 is a submodule that is activated when a user logs in to the game server 10 or logs out of the game server 10. Any method of user authentication may be used. For example, as described above, an authentication method using a password may be used, or biometric authentication using biometric information (fingerprint information, etc.) of a user may be used. The user authentication unit 211 authenticates a user who uses the terminal 20 by comparing the data provided from the terminal 20 (authenticated data) with the data stored in a database or the like (verification data).

ゲーム実行制御部203は、ユーザ認証部211による認証結果に応じて、当該ユーザにオンラインゲームを提供する、又は、当該ユーザによるオンラインゲームのプレイを拒絶する。 The game execution control unit 203 provides the online game to the user or refuses to play the online game by the user according to the authentication result by the user authentication unit 211.

第1の乱数生成部212及び第2の乱数生成部213は、ゲーム実行制御部203が乱数生成の必要があると判断した際に起動するサブモジュールである。なお、後述するように、1人のユーザに関して、乱数は既に生成された乱数を用いて生成される。つまり、ユーザごとに乱数の生成を管理する必要があるため、以降の説明ではサフィックスjを用いてユーザを区別する。 The first random number generation unit 212 and the second random number generation unit 213 are submodules that are activated when the game execution control unit 203 determines that random number generation is necessary. As will be described later, for one user, the random number is generated using the random number already generated. That is, since it is necessary to manage the generation of random numbers for each user, the suffix j is used in the following description to distinguish the users.

乱数の生成処理が始まると、第1の乱数生成部212は、ユーザj用の初期乱数sを生成する。When the random number generation process starts, the first random number generation unit 212 generates the initial random number s j for the user j.

次に、第1の乱数生成部212は、当該初期乱数sを封印する。より具体的には、第1の乱数生成部212は、初期乱数sのハッシュ値H(s)を計算する。Next, the first random number generation unit 212 seals the initial random number s j. More specifically, the first random number generation unit 212 calculates the hash value H (s j ) of the initial random number s j.

その後、第1の乱数生成部212は、初期乱数sの封印値(即ち、ハッシュ値H(s))とハッシュ値の計算に利用したハッシュ関数をデータ管理システム30に送信し、これらの情報(ハッシュ値、ハッシュ関数)を電子掲示板に書き込むように依頼する。After that, the first random number generation unit 212 transmits the sealing value of the initial random number s j (that is, the hash value H (s j )) and the hash function used for calculating the hash value to the data management system 30, and these Ask to write information (hash value, hash function) to the electronic bulletin board.

また、第1の乱数生成部212は、計算したハッシュ値H(s)を電子掲示板に書き込んだ旨をユーザjが使用する端末20に送信する。その際、端末20がハッシュ値H(s)等をデータ管理システム30から取得できるように、トランザクションIDも併せて通知される。なお、トランザクションIDとは、ゲームサーバ10がデータを電子掲示板に書き込んだ際にデータ管理システムから通知される識別子であって、封印データが書き込まれたトランザクションを特定する識別子である。Further, the first random number generation unit 212 transmits to the terminal 20 used by the user j that the calculated hash value H (s j) has been written on the electronic bulletin board system. At that time, the transaction ID is also notified so that the terminal 20 can acquire the hash value H (sj ) and the like from the data management system 30. The transaction ID is an identifier notified from the data management system when the game server 10 writes data to the electronic bulletin board, and is an identifier that identifies the transaction in which the sealing data is written.

ゲームサーバ10から上記通知を受け取った端末20は、電子掲示板からハッシュ値H(s)を取得する。端末20は、自身(ユーザj)向けのハッシュ値H(s)が電子掲示板に書き込まれていることを確認すると、乱数rを生成し、当該乱数rをゲームサーバ10に送信する。なお、以降の説明において、端末20が生成した乱数をユーザ乱数と表記する。The terminal 20 that has received the above notification from the game server 10 acquires the hash value H (sj) from the electronic bulletin board system. Terminal 20 itself (user j) for the hash value H (s j) is confirms that written on the electronic bulletin board, generates a random number r j, and transmits the random number r j to the game server 10. In the following description, the random number generated by the terminal 20 will be referred to as a user random number.

第2の乱数生成部213は、ユーザjに適用する(ユーザjがプレイするゲームに使用する)乱数を生成する。具体的には、第2の乱数生成部213は、ユーザ乱数rを受け取ると、初期乱数s、ユーザ乱数r、乱数の生成に関する序数i用いて、下記の式(1)により乱数xを計算する。The second random number generation unit 213 generates a random number applied to the user j (used for the game played by the user j). Specifically, when the second random number generation unit 213 receives the user random number r j , the initial random number s j , the user random number r j , and the ordinal number i related to the generation of the random number are used, and the random number x is calculated by the following equation (1). Calculate j.

(i)=Hash(s||r||i) mod m ・・・(1)x j (i) = Hash (s j || r j || i) mod m ... (1)

なお、式(1)において、記号「||」は連結を示し、iは正の整数(i≧1)であって、以降の説明でも同様とする。また、x及びyに続いて記載された括弧書きの数字は、乱数の生成順を示す。例えば、最初に生成された乱数xはx(1)と表記される(i=1)。In the equation (1), the symbol “||” indicates a concatenation, i is a positive integer (i ≧ 1), and the same applies to the following description. The numbers in parentheses following x j and y j indicate the order in which random numbers are generated. For example, the first generated random number x j is expressed as x j (1) (i = 1).

また、mは生成した乱数xの範囲を決めるための定数である。例えば、乱数xの範囲を0〜5の整数とする場合、mには「6」が設定される。また、乱数xをサイコロの目の代わりに利用するような場合には、式(1)により計算された値に「1」を加えればよい。Further, m is a constant for determining the range of the generated random numbers x j. For example, when the range of the random number x j is an integer of 0 to 5, "6" is set in m. Further, when the random number x j is used instead of the dice roll, "1" may be added to the value calculated by the equation (1).

上記説明したように、第2の乱数生成部213は、ユーザjのユーザ乱数r、当該ユーザj向けの初期乱数s、乱数の生成に関する序数iをハッシュ関数に入力し、ハッシュ値を計算することでユーザj向けの乱数xを生成する。即ち、第2の乱数生成部213は、初期乱数s、ユーザ乱数r及び乱数の生成に関する序数iに基づき、少なくとも端末20が使用する乱数を生成する。その際、ハッシュ関数への入力は、初期乱数s、ユーザ乱数r及び乱数生成に関する序数iを連結した値が用いられる。As described above, the second random number generation unit 213 inputs the user random number r j of the user j, the initial random number s j for the user j, and the order i related to the generation of the random number into the hash function, and calculates the hash value. generating a random number x j for user j by. That is, the second random number generation unit 213 generates at least a random number used by the terminal 20 based on the initial random number s j , the user random number r j, and the ordinal number i relating to the generation of the random number. At that time, as the input to the hash function, a value obtained by concatenating the initial random number s j , the user random number r j, and the ordinal number i related to random number generation is used.

ゲーム実行制御部203は、乱数xを使用した後に当該乱数xを端末20(ユーザj)に通知する。なお、乱数xが端末20に通知されるタイミングは、乱数xの使用後であれば、任意のタイミングとすることができる。例えば、ゲームの進行中に逐次使用された乱数xが通知されてもよいし、ゲーム終了後に、使用された乱数xが一括して端末20に通知されてもよい。Game execution control unit 203 notifies the random number x j after using the random number x j to the terminal 20 (user j). The timing of the random number x j is notified to the terminal 20, if after using the random number x j, can be any timing. For example, it may be notified sequential use random number x j during the course of the game, after the game, a random number x j which is used may be notified to the terminal 20 in a lump.

また、ゲーム実行制御部203は、図3のステップS08における「乱数の公平性検証」までの任意のタイミングで、式(1)にて使用したハッシュ関数の種類を、端末20に通知する。例えば、初回の乱数通知(乱数x(1)の通知)の際やゲーム終了後に、式(1)にて使用したハッシュ関数の種類を端末20に通知する。さらに、ゲーム実行制御部203は、ユーザjによるゲームが終了した場合(即ち、これ以上の乱数生成が不要となった場合)、先に生成した初期乱数sを端末20(ユーザj)に通知する。つまり、ゲーム実行制御部203は、端末20に対する乱数生成が不要となった後、初期乱数の封印を端末20に開封する。Further, the game execution control unit 203 notifies the terminal 20 of the type of the hash function used in the equation (1) at an arbitrary timing up to the “random number fairness verification” in step S08 of FIG. For example, the terminal 20 is notified of the type of the hash function used in the equation (1) at the time of the first random number notification (notification of the random number x j (1)) or after the end of the game. Further, the game execution control unit 203 notifies the terminal 20 (user j) of the previously generated initial random number s j when the game by the user j ends (that is, when no further random number generation is required). do. That is, the game execution control unit 203 opens the seal of the initial random number in the terminal 20 after the random number generation for the terminal 20 becomes unnecessary.

なお、上記説明では、第1の乱数生成部212が使用したハッシュ関数を電子掲示板に書き込み、第2の乱数生成部213が使用したハッシュ関数を端末20に通知することを説明した。しかし、ゲームサーバ10と端末20の間で、使用するハッシュ関数に関する合意があれば、上記の様な電子掲示板への書き込みや端末20への通知は不要である。 In the above description, it has been described that the hash function used by the first random number generation unit 212 is written on the electronic bulletin board system, and the hash function used by the second random number generation unit 213 is notified to the terminal 20. However, if there is an agreement between the game server 10 and the terminal 20 regarding the hash function to be used, it is not necessary to write to the electronic bulletin board system or notify the terminal 20 as described above.

第1の乱数生成部212や第2の乱数生成部213が使用するハッシュ関数として、例えば、SHA−2(Secure Hash Algorithm 2)やKeccak(ケチャック)といったハッシュ関数が利用できる。また、第1の乱数生成部212が使用するハッシュ関数(初期乱数sのハッシュ値を計算するハッシュ関数)と第2の乱数生成部213が使用するハッシュ関数(式(1)にて使用されるハッシュ関数)は同じであっても良いし、異なるものであってもよい。As the hash function used by the first random number generation unit 212 and the second random number generation unit 213, for example, a hash function such as SHA-2 (Secure Hash Algorithm 2) or Kecak (Kecak) can be used. Further, it is used in the hash function used by the first random number generation unit 212 (the hash function for calculating the hash value of the initial random number s j ) and the hash function used by the second random number generation unit 213 (formula (1)). Hash functions) may be the same or different.

ここで、ハッシュ関数には、ハッシュ値から元のデータを復元することができないという一方向性、違うデータから同じハッシュ値を生成することができないという衝突困難性、同じデータからは同じハッシュ値が生成されるという決定性、計算されるハッシュ値に偏りがない一様性等の性質がある。第1の乱数生成部212による初期乱数sのハッシュ値計算は、ゲームの進行中に初期乱数sをゲームサーバ10以外の主体に対して隠蔽(封印)し、且つ、初期乱数sのハッシュ値の計算後に初期乱数sが変更されていないことを担保するために行われる。つまり、第1の乱数生成部212によるハッシュ値計算は、ハッシュ関数の持つ性質のうち、一方向性と衝突困難性を主として利用している。対して、第2の乱数生成部213におけるハッシュ関数は、ランダムな数値が生成可能、且つ、乱数生成の過程が再現可能な関数として使用されている。つまり、第2の乱数生成部213によるハッシュ値計算は、ハッシュ関数の持つ性質のうち、決定性と一様性を主として利用している。従って、第1の乱数生成部212と第2の乱数生成部213では、ハッシュ関数に求める性質が異なっており、各目的に適したハッシュ関数の使い分けがなされてもよい。Here, the hash function has one-way that the original data cannot be restored from the hash value, collision difficulty that the same hash value cannot be generated from different data, and the same hash value from the same data. It has properties such as determinism that it is generated and uniformity that the calculated hash value is not biased. Hash value calculation of the initial random number s j by the first random number generation unit 212, the initial random number s j concealed by the entities other than the game server 10 (seal) while the game is in progress, and, the initial random number s j This is done to ensure that the initial random number s j has not changed since the hash value was calculated. That is, the hash value calculation by the first random number generation unit 212 mainly utilizes one-wayness and collision difficulty among the properties of the hash function. On the other hand, the hash function in the second random number generation unit 213 is used as a function that can generate a random numerical value and can reproduce the process of random number generation. That is, the hash value calculation by the second random number generation unit 213 mainly utilizes determinacy and uniformity among the properties of the hash function. Therefore, the first random number generation unit 212 and the second random number generation unit 213 have different properties required for the hash function, and the hash function suitable for each purpose may be used properly.

また、上記第1の乱数生成部212によるハッシュ値計算を鑑みれば、第1の乱数生成部212が、初期乱数を封印する際に利用する関数は、ハッシュ関数のみならず、コミットメント関数と呼ばれる、「データを封印(秘匿)」する機能と、「データを開封(変更されていないことを検証)」する機能があるもので代用することができる。 Further, in view of the hash value calculation by the first random number generation unit 212, the function used by the first random number generation unit 212 when sealing the initial random number is not only a hash function but also a commitment function. A function that "seals (confidential) the data" and a function that "opens the data (verifies that it has not been changed)" can be substituted.

[端末]
次に、端末20の詳細について説明する。
[Terminal]
Next, the details of the terminal 20 will be described.

図6は、第1の実施形態に係る端末20の処理構成の一例を示すブロック図である。図6を参照すると、端末20は、通信制御部301と、記憶部302と、ゲーム実行部303と、を含んで構成される。 FIG. 6 is a block diagram showing an example of the processing configuration of the terminal 20 according to the first embodiment. Referring to FIG. 6, the terminal 20 includes a communication control unit 301, a storage unit 302, and a game execution unit 303.

通信制御部301は、他の装置との間の通信を実現する手段である。通信制御部301は、他の装置から受信したメッセージ(パケット)を各処理モジュール部に振り分ける、又は、各処理モジュールから取得したメッセージを他の装置に送信する手段でもある。 The communication control unit 301 is a means for realizing communication with other devices. The communication control unit 301 is also a means for distributing a message (packet) received from another device to each processing module unit or transmitting a message acquired from each processing module to another device.

記憶部302は、例えば、ゲーム実行部303の処理等に必要なデータを記憶する。 The storage unit 302 stores, for example, data necessary for processing of the game execution unit 303 and the like.

ゲーム実行部303は、ユーザによるゲームプレイを実現する手段である。より具体的には、ゲーム実行部303は、キーボードやマウス等の入力手段によりユーザの操作を入力する。ゲーム実行部303は、ユーザの操作に応じた情報をゲームサーバ10に送信する。例えば、ユーザがゲームサーバ10にログインする場合には、認証情報(例えば、IDとパスワードの組み合わせ)がゲームサーバ10に送信される。また、ユーザがゲームをプレイしている間は、ユーザによるキー操作等に係る情報がゲームサーバ10に送信される。 The game execution unit 303 is a means for realizing game play by the user. More specifically, the game execution unit 303 inputs the user's operation by an input means such as a keyboard or a mouse. The game execution unit 303 transmits information according to the user's operation to the game server 10. For example, when a user logs in to the game server 10, authentication information (for example, a combination of an ID and a password) is transmitted to the game server 10. Further, while the user is playing the game, information related to the key operation by the user is transmitted to the game server 10.

ゲーム実行部303は、乱数生成部311と乱数検証部312の2つのサブモジュールを含んで構成される。 The game execution unit 303 includes two submodules, a random number generation unit 311 and a random number verification unit 312.

乱数生成部311は、ゲームサーバ10により初期乱数の封印値(初期乱数のハッシュ値)が生成された後に、ユーザ乱数を生成する手段である。より具体的には、乱数生成部311は、初期乱数sのハッシュ値H(s)が電子掲示板に書き込まれたことに応じて、ユーザ乱数を生成する。乱数生成部311は、ゲームサーバ10からハッシュ値H(s)を電子掲示板に書き込んだ旨の通知を受けた場合に起動する。この場合、乱数生成部311は、ゲームサーバ10から通知されたトランザクションIDをデータ管理システム30に提示し、ゲームサーバ10が電子掲示板に書き込んだハッシュ値H(s)を取得する。その後、乱数生成部311は、ユーザ乱数rを生成し、生成したユーザ乱数rをゲームサーバ10に送信する。なお、乱数生成部311によるユーザ乱数rの生成には、ハッシュ関数を初めとした種々の関数や方法を用いることができる。The random number generation unit 311 is a means for generating a user random number after the game server 10 generates a sealed value of the initial random number (hash value of the initial random number). More specifically, the random number generation unit 311 generates a user random number in response to the hash value H (s j ) of the initial random number s j being written on the electronic bulletin board. The random number generation unit 311 is activated when the game server 10 notifies that the hash value H (s j ) has been written on the electronic bulletin board. In this case, the random number generation unit 311 presents the transaction ID notified from the game server 10 to the data management system 30, and acquires the hash value H (s j) written on the electronic bulletin board by the game server 10. Then, the random number generation unit 311 generates a user random number r j, and transmits the generated user random number r j to the game server 10. Incidentally, the generation of the user the random number r j are by random number generation unit 311, it is possible to use various functions and methods, including the hash function.

乱数検証部312は、ゲームサーバ10がゲームの進行に使用した一連の乱数x(x(1)、x(2)、・・・)が公平なものであるか否かを検証する手段である。より具体的には、乱数検証部312は、電子掲示板に書き込まれた初期乱数sのハッシュ値H(s)を取得し、取得したハッシュ値H(s)と、ゲームサーバ10により開封された初期乱数sと、乱数の生成に関する序数(i)と、使用された乱数として通知された乱数xと、に基づき、ゲームサーバ10による乱数生成の公正性を検証する。 The random number verification unit 312 verifies whether or not the series of random numbers x j (x j (1), x j (2), ...) Used by the game server 10 for the progress of the game is fair. It is a means. More specifically, the random number verification unit 312 acquires the hash value H (s j ) of the initial random number s j written in the electronic bulletin board, and opens it by the acquired hash value H (s j ) and the game server 10. The fairness of random number generation by the game server 10 is verified based on the initial random number s j obtained , the order (i) related to the generation of the random number, and the random number x j notified as the used random number.

乱数検証部312は、2段階の検証を行うことで、乱数xの公平性を確認する。The random number verification unit 312 confirms the fairness of the random number x j by performing two-step verification.

第1の検証は、上記の式(1)にて使用される初期乱数sが端末20から提供されるユーザ乱数rの取得前に生成された値から変更されていないことの検証である。The first verification is the verification that the initial random number s j used in the above equation (1) is not changed from the value generated before the acquisition of the user random number r j provided from the terminal 20. ..

第2の検証は、ゲームサーバ10が、式(1)に従って乱数xを生成している(ゲームサーバ10が恣意的に乱数xを決定していない)ことの検証である。The second verification is the verification that the game server 10 generates the random number x j according to the equation (1) (the game server 10 does not arbitrarily determine the random number x j).

乱数検証部312は、電子掲示板から取得したハッシュ値H(s)と、ゲーム終了後にゲームサーバ10により開封された初期乱数sを用いて計算したハッシュ値H’(s)と、を比較し、第1の検証を行う。比較の結果、2つのハッシュ値が一致すれば、乱数検証部312は、ゲームサーバ10による乱数生成は公正である可能性があり、第2の検証を行う。The random number verification unit 312 inputs the hash value H (s j ) acquired from the electronic bulletin board and the hash value H'(s j ) calculated using the initial random number s j opened by the game server 10 after the game is completed. Compare and perform the first verification. As a result of the comparison, if the two hash values match, the random number verification unit 312 may perform the second verification because the random number generation by the game server 10 may be fair.

対して、2つのハッシュ値が不一致であれば、乱数検証部312は、ゲームサーバ10による乱数生成は不公正(ゲームサーバ10による乱数生成は不当、不適切)と判定する。 On the other hand, if the two hash values do not match, the random number verification unit 312 determines that the random number generation by the game server 10 is unfair (the random number generation by the game server 10 is unreasonable or inappropriate).

乱数検証部312は、式(1)に従って乱数x’(i)を生成し、当該乱数x’(i)とゲームサーバ10から通知された乱数x(i)を比較することで、第2の検証を行う。 The random number verification unit 312 generates a random number x j '(i) according to the equation (1), and compares the random number x j '(i) with the random number x j (i) notified from the game server 10. Perform the second verification.

ここで、上記式(1)によれば、乱数xの生成に必要な情報は、初期乱数s、ユーザ乱数r、乱数の生成回数(序数i)である。2つの乱数のうち、ユーザ乱数rは、自装置にて生成している情報であるので、乱数検証部312は当然に把握可能である。また、初期乱数sは、ゲーム終了後にゲームサーバ10から取得できる情報である。さらに、上述のように、式(1)にて使用されたハッシュ関数はゲームサーバ10から端末20に通知されている。Here, according to the above equation (1), the information required for generating the random number x j is the initial random number s j , the user random number r j , and the number of times the random number is generated (ordinal number i). Of the two random numbers, the user the random number r j is because it is information that is generated by the own device, the random number verification unit 312 is of course possible grasp. Further, the initial random number s j is information that can be acquired from the game server 10 after the game is completed. Further, as described above, the hash function used in the equation (1) is notified from the game server 10 to the terminal 20.

また、ゲームサーバ10がゲームの進行に使用した乱数x(i)は、逐次、端末20に通知されている。従って、端末20は、乱数の生成回数(序数j)も当然に把握可能な情報である。以上の情報を用いて、乱数検証部312は、2つの乱数(初期乱数s、ユーザ乱数r)等に式(1)を適用することで、各回の乱数x’(i)を生成することができる。 Further, the random numbers x j (i) used by the game server 10 for the progress of the game are sequentially notified to the terminal 20. Therefore, the terminal 20 is information that can naturally grasp the number of random number generations (ordinal number j). Using the above information, the random number verification unit 312 generates a random number x j '(i) each time by applying the equation (1) to two random numbers (initial random number s j , user random number r j) and the like. can do.

乱数検証部312は、2つの乱数(x’(i)、x(i))の一致、不一致を確認することで、ゲームサーバ10が、乱数x(i)を恣意的に変更しておらず、当初に生成された初期乱数sと端末20が提示したユーザ乱数rを使用して一連の乱数x(i)を生成していることが検証できる。The random number verification unit 312 confirms that the two random numbers (x j '(i) and x j (i)) match or do not match, so that the game server 10 arbitrarily changes the random numbers x j (i). It can be verified that a series of random numbers x j (i) are generated using the initial random number s j initially generated and the user random number r j presented by the terminal 20.

上記2つの乱数x’(i)とx(i)が一致していれば、乱数検証部312は、ゲームサーバ10による乱数生成は公正(ゲームサーバ10による乱数生成は正当、適切)であると判定する。一方、2つの乱数x’(i)とx(i)に相違する点があれば、乱数検証部312は、ゲームサーバ10による乱数生成は不公正と判定する。If the above two random numbers x j '(i) and x j (i) match, the random number verification unit 312 is fair in random number generation by the game server 10 (random number generation by the game server 10 is valid and appropriate). Judge that there is. On the other hand, if there is a difference between the two random numbers x j '(i) and x j (i), the random number verification unit 312 determines that the random number generation by the game server 10 is unfair.

乱数検証部312は、必要に応じて、上記判定結果をユーザに通知する。具体的には、乱数検証部312は、液晶パネル等の表示部に、検証結果を表示する等の処置を行う。 The random number verification unit 312 notifies the user of the above determination result as necessary. Specifically, the random number verification unit 312 performs measures such as displaying the verification result on a display unit such as a liquid crystal panel.

次に、図面を参照し、ゲームサーバ10による乱数生成と端末20による乱数検証の動作について説明する。 Next, with reference to the drawings, the operations of random number generation by the game server 10 and random number verification by the terminal 20 will be described.

図7は、第1の実施形態に係るゲームシステムの動作の一例を示すシーケンス図である。図7には、主にゲームサーバ10による乱数生成に係る動作が記載されている。 FIG. 7 is a sequence diagram showing an example of the operation of the game system according to the first embodiment. FIG. 7 mainly describes an operation related to random number generation by the game server 10.

ステップS101において、ゲームサーバ10は、初期乱数sを生成する。In step S101, the game server 10 generates an initial random number s j.

ゲームサーバ10は、初期乱数sのハッシュ値H(s)を生成する(ステップS102)。The game server 10 generates a hash value H (s j ) of the initial random number s j (step S102).

ゲームサーバ10は、生成したハッシュ値H(s)をデータ管理システム30に送信する(ステップS103)。つまり、ゲームサーバ10は、生成したハッシュ値H(s)を電子掲示板に書き込む。The game server 10 transmits the generated hash value H (s j ) to the data management system 30 (step S103). That is, the game server 10 writes the generated hash value H (s j ) in the electronic bulletin board system.

データ管理システム30によるハッシュ値H(s)の電子掲示板への書き込み(ステップS104)が完了すると、ゲームサーバ10は、ハッシュ値H(s)を電子掲示板に書き込んだ旨を端末20に通知する(ステップS105)。When the writing of the hash value H (s j ) to the electronic bulletin board by the data management system 30 is completed (step S104), the game server 10 notifies the terminal 20 that the hash value H (s j ) has been written to the electronic bulletin board. (Step S105).

端末20は、上記ゲームサーバ10からの通知を取得すると、電子掲示板からハッシュ値H(s)を読み出す(ステップS106)。When the terminal 20 receives the notification from the game server 10, the terminal 20 reads the hash value H (sj ) from the electronic bulletin board system (step S106).

その後、端末20は、ユーザ乱数rを生成し、当該乱数をゲームサーバ10に送信する(ステップS107)。Thereafter, the terminal 20 generates the user random number r j, and transmits the random number to the game server 10 (step S107).

ユーザ乱数rを取得したゲームサーバ10は、上述の式(1)に従い、乱数x(1)を生成する(ステップS108−1)。The game server 10 that has acquired the user random number r j generates a random number x j (1) according to the above equation (1) (step S108-1).

ゲームサーバ10は、生成した乱数x(1)をゲームの進行に使用し、使用した乱数x(1)を端末20に通知する(ステップS109−1)。The game server 10 uses the generated random number x j (1) for the progress of the game, and notifies the terminal 20 of the used random number x j (1) (step S109-1).

ゲームサーバ10は、ゲームの進行と共に更なる乱数の生成が必要となると、上述の式(1)に従って乱数を生成する処理(ステップS108−i)と、当該乱数を通知する処理(ステップS109−i)を繰り返す。 When the game server 10 needs to generate a further random number as the game progresses, the game server 10 has a process of generating a random number according to the above equation (1) (step S108-i) and a process of notifying the random number (step S109-i). )repeat.

その後、ゲームが終了すると(ステップS110)、ゲームサーバ10は、ステップS101にて生成した初期乱数sを端末20に開封する(ステップS111)。After that, when the game ends (step S110), the game server 10 opens the initial random number s j generated in step S101 to the terminal 20 (step S111).

ステップS112において、端末20は、ゲームサーバ10により生成された乱数xの公平性を検証する。In step S112, the terminal 20 verifies the fairness of the random number x j generated by the game server 10.

図8は、端末20による乱数xの公平性検証に係る動作の一例を示すフローチャートである。FIG. 8 is a flowchart showing an example of the operation related to the fairness verification of the random number x j by the terminal 20.

初めに、端末20は、電子掲示板から取得したハッシュ値H(s)と、ゲームサーバ10から開封された初期乱数sを用いて計算したハッシュ値H’(s)を比較し、第1の検証を行う(ステップS201)。First, the terminal 20 compares the hash value H (s j ) obtained from the electronic bulletin board with the hash value H'(s j ) calculated using the initial random number s j opened from the game server 10, and the second The verification of 1 is performed (step S201).

2つのハッシュ値が一致しなければ(ステップS201、No分岐)、ゲームサーバ10による乱数生成は不公正であると判定される(ステップS204)。 If the two hash values do not match (step S201, No branch), it is determined that the random number generation by the game server 10 is unfair (step S204).

2つのハッシュ値が一致した場合(ステップS201、Yes分岐)、第2の検証が実行される。 When the two hash values match (step S201, Yes branch), the second verification is executed.

端末20は、式(1)に従って生成した乱数x’(i)と、ゲームサーバ10から通知された乱数x(i)を比較し、第2の検証を行う(ステップS202)。Terminal 20 generates a random number x j 'and (i) produced in accordance with Equation (1), it compares the random number is notified from the game server 10 x j (i), performing a second verification (step S202).

2つの乱数が一致しなければ(ステップS202、No分岐)、ゲームサーバ10による乱数生成は不公正であると判定される(ステップS204)。2つの乱数が一致すれば(ステップS202、Yes分岐)、ゲームサーバ10による乱数生成は公正であると判定される(ステップS203)。 If the two random numbers do not match (step S202, No branch), it is determined that the random number generation by the game server 10 is unfair (step S204). If the two random numbers match (step S202, Yes branch), it is determined that the random number generation by the game server 10 is fair (step S203).

[管理サーバ]
次に、データ管理システム30をなす管理サーバ40の詳細について説明する。
[Management server]
Next, the details of the management server 40 forming the data management system 30 will be described.

図9は、第1の実施形態に係る管理サーバ40の処理構成の一例を示すブロック図である。図9を参照すると、管理サーバ40は、通信制御部401と、記憶部402と、台帳管理部403と、を含んで構成される。 FIG. 9 is a block diagram showing an example of the processing configuration of the management server 40 according to the first embodiment. Referring to FIG. 9, the management server 40 includes a communication control unit 401, a storage unit 402, and a ledger management unit 403.

通信制御部401は、他の装置との間の通信を実現する手段である。通信制御部401は、他の装置から受信したメッセージ(パケット)を各処理モジュール部に振り分ける、又は、各処理モジュールから取得したメッセージを他の装置に送信する手段でもある。 The communication control unit 401 is a means for realizing communication with other devices. The communication control unit 401 is also a means for distributing a message (packet) received from another device to each processing module unit or transmitting a message acquired from each processing module to another device.

記憶部402は、各処理モジュールの処理に必要な情報を記憶する手段である。記憶部402には、データを一時的に記憶する一時記憶領域とデータ管理台帳を記憶する領域が含まれる。 The storage unit 402 is a means for storing information necessary for processing of each processing module. The storage unit 402 includes a temporary storage area for temporarily storing data and an area for storing a data management ledger.

台帳管理部403は、電子掲示板へのゲームサーバ10や端末20からのアクセス要求を処理する手段である。具体的には、例えば、ゲームサーバ10から電子掲示板への封印データ(ハッシュ値)の書き込み要求を受け付けると、記憶部402に格納されているデータ管理台帳に封印データを追記する。また、台帳管理部403は、外部装置(例えば、端末20)から電子掲示板の読み出しに係る要求を受け付けると、当該要求に付随するトランザクションIDをキーとしてデータ管理台帳を検索し、当該IDが付されたデータ(封印データ)を抽出する。台帳管理部403は、抽出した封印データを外部装置に送信する。 The ledger management unit 403 is a means for processing an access request to the electronic bulletin board from the game server 10 or the terminal 20. Specifically, for example, when a request for writing the seal data (hash value) from the game server 10 to the electronic bulletin board is received, the seal data is added to the data management ledger stored in the storage unit 402. Further, when the ledger management unit 403 receives a request for reading the electronic bulletin board from an external device (for example, the terminal 20), the ledger management unit 403 searches the data management ledger using the transaction ID associated with the request as a key, and the ID is assigned. Extract the data (sealed data). The ledger management unit 403 transmits the extracted sealing data to an external device.

台帳管理部403は、ブロック生成部411とブロック検証部412の2つのサブモジュールを有する。 The ledger management unit 403 has two submodules, a block generation unit 411 and a block verification unit 412.

ブロック生成部411は、データ管理台帳を他の管理サーバ40にて共有し、管理するためのブロックを生成する。 The block generation unit 411 shares the data management ledger with another management server 40 and generates a block for management.

台帳管理部403は、ゲームサーバ10から封印データを取得すると、当該取得した封印データを記憶部402の一時記憶領域に保存する。その後、ブロック生成部411は、直前に生成されたブロックのヘッダと、当該一時記憶領域に保存されたデータ(例えば、封印データや売上データ;データ管理台帳への追記データ)から、「正当性保証データ」を生成する。例えば、ブロック生成部411は、追記データ、前ブロックのヘッダ及び正当性保証データのハッシュ値を計算すると、当該計算されたハッシュ値を所定の規則に適合するものにする値(所謂、ノンス値又はナンス値)を正当性保証データとして生成する。また、正当性保証データには、ブロックを生成した管理サーバ40の電子署名が含まれる。 When the ledger management unit 403 acquires the seal data from the game server 10, the ledger management unit 403 stores the acquired seal data in the temporary storage area of the storage unit 402. After that, the block generation unit 411 "guarantees validity" from the header of the block generated immediately before and the data stored in the temporary storage area (for example, sealing data and sales data; data added to the data management ledger). Generate "data". For example, when the block generation unit 411 calculates the hash value of the additional data, the header of the previous block, and the validity guarantee data, the value that makes the calculated hash value conform to a predetermined rule (so-called nonce value or Nonce value) is generated as validity guarantee data. In addition, the validity guarantee data includes the electronic signature of the management server 40 that generated the block.

ブロック生成部411は、直前に生成されたブロックのヘッダと上記の正当性保証データからなるヘッダを有するブロックを生成する。具体的には、図10に示すようなブロックが生成される。 The block generation unit 411 generates a block having a header of the block generated immediately before and a header composed of the above-mentioned validity guarantee data. Specifically, a block as shown in FIG. 10 is generated.

ブロック生成部411によるブロック生成が終了すると、当該ブロックはデータ管理台帳に追記される。また、ブロック生成部411は、生成したブロックを、通信制御部401を介して他の管理サーバ40に配布(送信)する。 When the block generation by the block generation unit 411 is completed, the block is added to the data management ledger. Further, the block generation unit 411 distributes (transmits) the generated block to another management server 40 via the communication control unit 401.

他の管理サーバ40から上記ブロックを受信した管理サーバ40の通信制御部401は、取得したブロックをブロック検証部412に引き渡す。 The communication control unit 401 of the management server 40 that has received the block from the other management server 40 hands over the acquired block to the block verification unit 412.

ブロック検証部412は、自装置の記憶部402に格納されているデータ管理台帳(ブロック)に基づき、他の管理サーバ40が送信するブロックの正当性を検証する手段である。具体的には、ブロックを受信した管理サーバ40のブロック検証部412は、当該受信したブロックの正当性を、ブロックを送信した管理サーバ40が生成したブロックと自装置(ブロックを受信した管理サーバ40)が管理している直前に生成されたブロックのヘッダを用いて検証する。 The block verification unit 412 is a means for verifying the validity of a block transmitted by another management server 40 based on a data management ledger (block) stored in the storage unit 402 of the own device. Specifically, the block verification unit 412 of the management server 40 that received the block determines the validity of the received block as the block generated by the management server 40 that transmitted the block and its own device (the management server 40 that received the block). ) Is managed and verified using the header of the block generated immediately before.

初めに、ブロック検証部412は、受信したブロックに含まれる正当性保証データに送信元となる管理サーバ40の電子署名が付与されていることを確認し、受信したブロックに記載された「前ブロックのヘッダ」を自身が管理するデータ管理台帳に基づき特定する。その後、ブロック検証部412は、受信したブロック内の追記データと前ブロックのヘッダを入力として、ヘッダ内の正当性保証データの整合がとれているか否か(正当性保証データが所定の規則に適合するか否か)を確認する。 First, the block verification unit 412 confirms that the validity assurance data included in the received block is given the electronic signature of the management server 40 as the transmission source, and describes the "previous block" described in the received block. "Header" is specified based on the data management ledger that it manages. After that, the block verification unit 412 inputs the additional data in the received block and the header of the previous block, and whether or not the validity guarantee data in the header is consistent (the validity guarantee data conforms to a predetermined rule). Whether or not to do) is confirmed.

ブロック検証部412は、正当性保証データの整合性が確認できれば、他の管理サーバ40が送信するブロックは正当であると判定する。一方、正当性保証データの整合性が確認できなければ、ブロック検証部412は、他の管理サーバ40が送信するブロックは不当であると判定する。 If the consistency of the validity guarantee data can be confirmed, the block verification unit 412 determines that the block transmitted by the other management server 40 is valid. On the other hand, if the consistency of the validity guarantee data cannot be confirmed, the block verification unit 412 determines that the block transmitted by the other management server 40 is unreasonable.

ブロック検証部412が、他の管理サーバ40が送信するブロックが正当であると判定した場合には、台帳管理部403は、記憶部402のデータ管理台帳を更新する(追記データを含むブロックを追記する)。つまり、ブロック検証部412は、他の管理サーバ40の台帳へのデータの追記を、自装置の台帳に反映する処理を行う。なお、ブロック検証部412は、他の管理サーバ40が送信するブロックが不当であると判定した場合には、当該ブロックを破棄する。 When the block verification unit 412 determines that the block transmitted by the other management server 40 is valid, the ledger management unit 403 updates the data management ledger of the storage unit 402 (additional block including additional data). do). That is, the block verification unit 412 performs a process of reflecting the addition of data to the ledger of another management server 40 in the ledger of its own device. If the block verification unit 412 determines that the block transmitted by the other management server 40 is unreasonable, the block verification unit 412 discards the block.

また、ブロック検証部412は、検証結果(受信したブロックは正当、不当)に関する情報を、ブロックを送信してきた管理サーバ40に通知する。 Further, the block verification unit 412 notifies the management server 40 that has transmitted the block of information regarding the verification result (the received block is valid or invalid).

管理サーバ40の動作をまとめると図11に示すシーケンス図のとおりとなる。なお、図11には、管理サーバ40−1がゲームサーバ10から封印データを取得し、当該データをデータ管理台帳に追記する場合を示す。 The operation of the management server 40 is summarized in the sequence diagram shown in FIG. Note that FIG. 11 shows a case where the management server 40-1 acquires the sealing data from the game server 10 and adds the data to the data management ledger.

管理サーバ40−1は、ゲームサーバ10から封印データを取得すると(ステップS201)、当該データを自装置の記憶部402の一時記憶領域に複製する(ステップS202)。 When the management server 40-1 acquires the sealing data from the game server 10 (step S201), the management server 40-1 replicates the data in the temporary storage area of the storage unit 402 of the own device (step S202).

その後、一時記憶領域に複製されたデータが所定量蓄積される等の条件により、管理サーバ40−1は、一時記憶領域に記憶されたデータに基づき、上述のブロックを生成する(ステップS203)。その後、管理サーバ40−1は、生成したブロックを他の管理サーバ40−2〜40−4に向けて送信する(ステップS204)。 After that, the management server 40-1 generates the above-mentioned block based on the data stored in the temporary storage area under the condition that a predetermined amount of the data duplicated in the temporary storage area is accumulated (step S203). After that, the management server 40-1 transmits the generated block to the other management servers 40-2 to 40-4 (step S204).

ブロックを受信した管理サーバ40−2〜40−4のそれぞれは、管理サーバ40−1が生成したブロックを個別に検証する(ステップS205)。管理サーバ40−2〜40−4のそれぞれは、ブロックの正当性が確認できた場合に自装置のデータ管理台帳を更新する(ステップS206)。 Each of the management servers 40-2 to 40-4 that received the block individually verifies the block generated by the management server 40-1 (step S205). Each of the management servers 40-2 to 40-4 updates the data management ledger of its own device when the validity of the block can be confirmed (step S206).

このように、データ管理システム30をなす複数の管理サーバ40のうちの少なくとも1つの管理サーバ40によるデータ管理台帳へのデータの追記は、他の管理サーバ40のデータ管理台帳に反映される。 As described above, the addition of data to the data management ledger by at least one management server 40 among the plurality of management servers 40 forming the data management system 30 is reflected in the data management ledger of the other management server 40.

なお、他の管理サーバ40から送信されたブロックの正当性が確認できない場合には、当該ブロックを破棄すると共に、管理サーバ40はその旨を、ブロックを送信する管理サーバ40に通知する。当該通知を受けた管理サーバ40の台帳管理部403は、ブロック送信前のデータ管理台帳の状態を取り戻す。 If the validity of the block transmitted from the other management server 40 cannot be confirmed, the block is discarded and the management server 40 notifies the management server 40 that transmits the block to that effect. Upon receiving the notification, the ledger management unit 403 of the management server 40 regains the state of the data management ledger before the block transmission.

以上のように、第1の実施形態に係るゲームサーバ10は、乱数xの生成に先立ち、初期乱数sを生成し、そのハッシュ値H(s)を電子掲示板に書き込む。また、ユーザjは、ハッシュ値H(s)が電子掲示板に書き込まれたことに応じて、ユーザ乱数rを生成し、ゲームサーバ10に提供する。ゲームサーバ10は、先に生成した初期乱数s、ユーザjから提供されたユーザ乱数r、乱数の生成に関する序数i用いて、乱数xを生成する。このように、乱数xの生成には、ゲームサーバ10及びユーザjが互いに操作することができない初期乱数sとユーザ乱数rが必要となるので、公平な乱数xが生成される。また、ゲームサーバ10は、一度のハッシュ関数読み出しにより乱数xを生成している(式(1)参照)。その結果、処理負荷の高いハッシュ関数の利用が制限され、迅速に乱数xが生成される。As described above, the game server 10 according to the first embodiment generates an initial random number s j prior to the generation of the random number x j , and writes the hash value H (s j ) on the electronic bulletin board system. Further, the user j generates a user random number r j in response to the hash value H (s j ) being written on the electronic bulletin board system, and provides the user random number r j to the game server 10. The game server 10 generates a random number x j by using the initial random number s j generated earlier, the user random number r j provided by the user j, and the ordinal number i related to the generation of the random number. As described above, in order to generate the random number x j , the game server 10 and the user j need an initial random number s j and a user random number r j that cannot be operated by each other, so that a fair random number x j is generated. Further, the game server 10 generates a random number x j by reading the hash function once (see equation (1)). As a result, the use of the hash function having a high processing load is restricted, and a random number x j is quickly generated.

ゲームサーバ10は、初期乱数sを生成する前にユーザ乱数rを知ることができない。また、ゲームサーバ10は、自身が影響を及ぼすことのできない電子掲示板にハッシュ値H(s)を書き込んでいるため、ハッシュ値H(s)の書き込み後は、初期乱数sを変更することができない。そのため、ゲームサーバ10は、ユーザ乱数rの取得後に初期乱数sを変更すること等により、乱数xの生成を操作することはできない。The game server 10 cannot know the user random number r j before generating the initial random number s j. In addition, the game server 10, for himself is writing a hash value H (s j) to the electronic bulletin board that can not affect, after the writing of the hash value H (s j) changes the initial random number s j I can't. Therefore, the game server 10 cannot operate the generation of the random number x j by changing the initial random number s j after acquiring the user random number r j.

ユーザjは、電子掲示板に書き込まれたハッシュ値H(s)から初期乱数sを得ることはできないので、乱数xの生成を操作することができない。Since the user j cannot obtain the initial random number s j from the hash value H (s j ) written on the electronic bulletin board, he cannot operate the generation of the random number x j.

ゲームサーバ10と端末20間のデータの授受(ハッシュ値H(s)の授受)は、ブロックチェーンによりデータが管理される電子掲示板を利用するので、ハッシュ値H(s)を改ざんすることは非常に困難である。さらに、電子掲示板に書き込むのは、ハッシュ値H(s)とハッシュ関数という少量のデータに限られ、電子掲示板の利用に関する手数料を少額に抑えることができる。Data transfer between the game server 10 and the terminal 20 (exchange of hash value H (s j )) uses an electronic bulletin board whose data is managed by the blockchain, so the hash value H (s j ) should be tampered with. Is very difficult. Further, only a small amount of data such as a hash value H (s j ) and a hash function can be written on the electronic bulletin board, and the fee for using the electronic bulletin board can be suppressed to a small amount.

[第1の実施形態の変形例]
第1の実施形態の変形例について説明する。
[Modified example of the first embodiment]
A modified example of the first embodiment will be described.

第1の実施形態では、電子掲示板に書き込まれるデータを封印データ(初期乱数のハッシュ値)に限っている。第1の実施形態に係る変形例では、当該封印データに限らず、端末20が生成するユーザ乱数、ゲームサーバ10がゲームの進行と共に生成し、使用する乱数も電子掲示板に書き込まれる場合について説明する。 In the first embodiment, the data written on the electronic bulletin board is limited to the sealing data (hash value of the initial random number). In the modification according to the first embodiment, not only the sealed data but also the user random number generated by the terminal 20 and the random number generated by the game server 10 as the game progresses and the random numbers used are also written on the electronic bulletin board system will be described. ..

上記説明したように、第1の実施形態では、封印データ以外のデータ(ユーザ乱数r、乱数x)は、端末20とゲームサーバ10の間で授受が行われている。当該データの授受が電子掲示板を介して行われることで、ゲームサーバ10による乱数生成の公正性検証が端末20以外の装置(即ち、第3者)が行うことができる。 As described above, in the first embodiment, data other than the sealing data (user random number r, random number x) is exchanged between the terminal 20 and the game server 10. By exchanging and exchanging the data via the electronic bulletin board, the fairness of random number generation by the game server 10 can be verified by a device other than the terminal 20 (that is, a third party).

例えば、図12に示すように、上記端末20の一機能として説明した「乱数検証部」と同等の機能を有する検証装置50がシステムに含まれていてもよい。例えば、検証装置50は、裁判所等の機関に設置される装置であり、ユーザに対して提供されるサービス(例えば、オンラインゲームや電子抽選)の正当性を監視する。 For example, as shown in FIG. 12, the system may include a verification device 50 having a function equivalent to that of the “random number verification unit” described as one function of the terminal 20. For example, the verification device 50 is a device installed in an institution such as a court, and monitors the validity of services provided to users (for example, online games and electronic lottery).

以上のように、端末20が、ユーザ乱数を電子掲示板に書き込み、ゲームサーバ10(乱数生成装置)が、ゲームの進行に使用した乱数を電子掲示板に書き込んでもよい。その場合、当事者(端末20のユーザ)以外の第3者が、電子掲示板に書き込まれた、初期乱数の封印値、使用された乱数及びユーザ乱数を用いて、ゲームサーバ10による乱数生成の公正性を検証することができる。 As described above, the terminal 20 may write the user random number on the electronic bulletin board, and the game server 10 (random number generator) may write the random number used for the progress of the game on the electronic bulletin board. In that case, a third party other than the party (user of the terminal 20) uses the sealed value of the initial random number, the used random number, and the user random number written on the electronic bulletin board, and the fairness of random number generation by the game server 10. Can be verified.

[第2の実施形態]
続いて、第2の実施形態について図面を参照して詳細に説明する。
[Second Embodiment]
Subsequently, the second embodiment will be described in detail with reference to the drawings.

第1の実施形態では、謂わば、ゲームサーバ10とユーザが対戦するタイプのゲームを例にとり、公正な乱数生成方法を説明した。第2の実施形態では、ユーザ同士が対戦するフィールドをゲームサーバ10aが提供するタイプのゲームにおける公正な乱数生成方法を説明する。 In the first embodiment, a fair random number generation method has been described by taking, so to speak, a game of a type in which a game server 10 and a user play against each other as an example. In the second embodiment, a fair random number generation method in a type of game in which the game server 10a provides a field in which users compete with each other will be described.

第2の実施形態では、上記のようなゲームとして、「バックギャモン」を例に取り公正な乱数生成方法を説明する。なお、バックギャモンの詳細なルールの説明は省略するが、2人のユーザが交互にサイコロを振り、出た目の数字に応じて駒を動かすゲームである。第2の実施形態に係るゲームサーバ10aは、上記サイコロの目の選択に、後述する乱数生成を利用する。 In the second embodiment, as the above-mentioned game, a fair random number generation method will be described by taking "backgammon" as an example. Although detailed explanation of the rules of backgammon is omitted, it is a game in which two users alternately roll dice and move pieces according to the numbers of the rolls. The game server 10a according to the second embodiment uses random number generation, which will be described later, for selecting the dice rolls.

なお、ゲームシステムの構成、各装置のハードウェア構成、処理構成は第1の実施形態と同様とすることが可能であるので、これらの説明は省略する。 Since the configuration of the game system, the hardware configuration of each device, and the processing configuration can be the same as those of the first embodiment, the description thereof will be omitted.

第1及び第2の実施形態の相違点は、ゲームサーバ10aにおける乱数生成方法と、生成した乱数を2人のユーザ(複数のユーザ)に提供する点である。 The difference between the first and second embodiments is that the random number generation method in the game server 10a and the generated random numbers are provided to two users (plurality of users).

図13は、第2の実施形態に係るゲームシステムの動作の一例を示すシーケンス図である。なお、図13は、ユーザj1とユーザj2が対戦するものとする。また、ゲームの開始に先立ち、ユーザj1とユーザj2はそれぞれアカウントの登録が完了しているものとする。 FIG. 13 is a sequence diagram showing an example of the operation of the game system according to the second embodiment. In FIG. 13, it is assumed that the user j1 and the user j2 play against each other. Further, it is assumed that the user j1 and the user j2 have completed the account registration, respectively, prior to the start of the game.

初めに、2人のユーザは、ゲームサーバ10aにログインし、ゲームを開始する(ステップS301)。 First, the two users log in to the game server 10a and start the game (step S301).

ゲームが開始され、乱数の発生(サイコロの目)が必要となると、図13のステップS302以降の処理が実行される。 When the game is started and a random number generation (dice roll) is required, the processes after step S302 in FIG. 13 are executed.

ステップS302において、ゲームサーバ10aの第1の乱数生成部212は、ユーザj1用の初期乱数sj1を生成し、そのハッシュ値H(sj1)を電子掲示板に書き込む。また、ゲームサーバ10aは、当該書き込みに関する通知をユーザj1(端末20)に行う。In step S302, the first random number generation unit 212 of the game server 10a generates an initial random number s j1 for the user j1 and writes the hash value H (s j1 ) on the electronic bulletin board. Further, the game server 10a notifies the user j1 (terminal 20) of the writing.

当該通知を受けた端末20(ユーザj1が操作する端末20)の乱数生成部311は、電子掲示板へのハッシュ値H(sj1)の書き込みを確認した後、ユーザ乱数rj1を生成し、ゲームサーバ10aに送信する(ステップS303)。The random number generation unit 311 of the terminal 20 (the terminal 20 operated by the user j1) that received the notification confirms that the hash value H (s j1 ) is written on the electronic bulletin board, and then generates the user random number r j1 to generate the game. It is transmitted to the server 10a (step S303).

同様に、ゲームサーバ10aは、ユーザj2用の初期乱数sj2を生成し、ハッシュ値H(sj2)を電子掲示板に書き込む(ステップS304)。また、ユーザj2の端末20は、ユーザ乱数rj2を生成し、ゲームサーバ10aに送信する(ステップS305)。Similarly, the game server 10a generates an initial random number s j2 for user j2, writes the hash value H of the (s j2) the electronic bulletin board (step S304). Further, the terminal 20 of the user j2 generates a user random number r j2 and transmits it to the game server 10a (step S305).

2人のユーザからユーザ乱数rj1、rj2を受け取ったゲームサーバ10aの第2の乱数生成部213は、下記の式(2)により乱数xを生成する。
(i)=Hash(sj1||sj2||rj1||rj2||i) mod m ・・・(2)
The second random number generation unit 213 of the game server 10a, which has received the user random numbers r j1 and r j2 from the two users, generates random numbers x j by the following equation (2).
x j (i) = Hash (s j1 || s j2 || r j1 || r j2 || i) mod m ... (2)

初回の乱数生成時には、式(2)により、乱数x(1)が得られる(ステップS306−1)。生成された乱数x(1)は、2人のユーザj1、j2に通知される(ステップS307−1)。その後、ゲームサーバ10aは、乱数x(1)を先攻のユーザに適用する(ステップS308−1)。例えば、ゲームサーバ10aは、乱数x(1)をサイコロの目(1〜6)に変換し、先攻のユーザに通知する。通知を受けたユーザは、サイコロの目に応じて駒を動かし、ゲームを進める。At the time of the first random number generation, the random number x j (1) is obtained by the equation (2) (step S306-1). The generated random number x j (1) is notified to the two users j1 and j2 (step S307-1). After that, the game server 10a applies the random number x j (1) to the first user (step S308-1). For example, the game server 10a converts the random number x j (1) into dice rolls (1 to 6) and notifies the first user. The user who receives the notification moves the piece according to the dice roll and advances the game.

後攻のユーザに関する乱数x(2)の生成も、式(2)に従って行われる(ステップS306−2)。生成された乱数x(2)は、2人のユーザj1、j2に通知される(ステップS307−2)。その後、ゲームサーバ10aは、乱数x(2)を後攻のユーザに適用する(ステップS308−2)。The generation of the random number x j (2) for the second-attack user is also performed according to the equation (2) (step S306-2). The generated random number x j (2) is notified to the two users j1 and j2 (step S307-2). After that, the game server 10a applies the random number x j (2) to the second-attack user (step S308-2).

上記のような、乱数生成、乱数通知、ユーザへの適用を繰り返しつつ、ゲームが終了する(ステップS309)。 The game ends while repeating the above-mentioned random number generation, random number notification, and application to the user (step S309).

ゲームが終了すると、ゲームサーバ10aは、初期乱数とユーザ乱数を、ユーザj1、j2に通知する(ステップS310)。具体的には、ゲームサーバ10aは、ユーザj1に対して、少なくとも、封印された初期乱数sj1、sj2を開封すると共にユーザ乱数rj2を通知する。同様に、ゲームサーバ10aは、ユーザj2に対して、少なくとも、封印された初期乱数sj1、sj2を開封すると共にユーザ乱数rj1を通知する。When the game is completed, the game server 10a notifies the users j1 and j2 of the initial random number and the user random number (step S310). Specifically, the game server 10a, to the user j1, at least, to notify the user the random number r j2 with opening the initial random number s j1, s j2 which are sealed. Similarly, the game server 10a opens at least the sealed initial random numbers s j1 and s j2 and notifies the user j2 of the user random numbers r j1.

通知を受けた各ユーザは、乱数xの公平性を検証する(ステップS311、S312)。ユーザj1とユーザj2における乱数の公平性検証は同様の処理とすることができるので、ユーザj1における公平性検証に限って説明する。Each user who receives the notification verifies the fairness of the random number x j (steps S311 and S312). Since the fairness verification of random numbers in the user j1 and the user j2 can be performed in the same process, only the fairness verification in the user j1 will be described.

第2の実施形態における乱数の公平性検証も、第1の実施形態と基本的には同じであり、2段階の検証により行われる。 The fairness verification of random numbers in the second embodiment is basically the same as that in the first embodiment, and is performed by a two-step verification.

第1の検証では、ステップS310にて得られた初期乱数sj1、sj2が、ユーザ乱数rj1、rj2の送信後に変更されたものではないことを検証する。具体的には、ユーザj1(端末20)は、初期乱数sj1、sj2のハッシュ値を計算し、当該ハッシュ値と電子掲示板から取得したハッシュ値がそれぞれ一致するか否かにより第1の検証を行う。In the first verification, it is verified that the initial random numbers s j1 and s j2 obtained in step S310 are not changed after the transmission of the user random numbers r j1 and r j2. Specifically, the user j1 (terminal 20) calculates the hash values of the initial random numbers s j1 and s j2 , and first verifies whether the hash values match the hash values obtained from the electronic bulletin board. I do.

その後、ユーザj1は、ゲームの進行と共にゲームサーバ10aから通知された乱数x(x(1)、x(2)、・・・)とゲームサーバ10aから通知された乱数(初期乱数、ユーザ乱数)に式(2)を適用することで得られる乱数x’(x’(1)、x’(2)、・・・)を比較することで、第2の検証を行う。After that, the user j1 uses a random number x j (x j (1), x j (2), ...) Notified by the game server 10a and a random number (initial random number, ...) notified from the game server 10a as the game progresses. The second verification is performed by comparing the random numbers x j '(x j '(1), x j '(2), ...) obtained by applying the equation (2) to the user random number). ..

なお、上記説明は、2人のユーザが対戦する場合の乱数生成について説明したが、3人以上のユーザが対戦する場合であっても、式(2)を適宜拡張することで、対応可能なことは当業者にとって明らかである。 In the above description, random number generation when two users compete against each other has been described, but even when three or more users compete against each other, it can be dealt with by appropriately extending the equation (2). That is obvious to those skilled in the art.

以上のように、第2の実施形態では、ゲームサーバ10aは、複数のユーザそれぞれに対して生成した初期乱数と複数のユーザそれぞれから取得したユーザ乱数を用いて、乱数を生成する。その際、ゲームサーバ10aは、初期乱数の生成前にユーザ乱数を知ることができず、また、一度初期乱数を生成した後は当該乱数を変更することはできないため、乱数を操作することができない。このように、複数のユーザを対象とするゲームにおいて使用される乱数を、各ユーザ用に生成された初期乱数と各ユーザが個別に生成したユーザ乱数を用いて生成することができる。また、ゲームサーバ10aによる乱数生成の公正性を、各ユーザが検証することができる。 As described above, in the second embodiment, the game server 10a generates random numbers by using the initial random numbers generated for each of the plurality of users and the user random numbers acquired from each of the plurality of users. At that time, the game server 10a cannot know the user random number before the initial random number is generated, and cannot change the random number once the initial random number is generated, so that the random number cannot be manipulated. .. In this way, random numbers used in games targeting a plurality of users can be generated using initial random numbers generated for each user and user random numbers individually generated by each user. Further, each user can verify the fairness of random number generation by the game server 10a.

[第2の実施形態の変形例]
第2の実施形態の変形例について説明する。
[Modified example of the second embodiment]
A modified example of the second embodiment will be described.

上記第2の実施形態では、ゲームサーバ10aが2人のユーザj1、j2を対等に扱う限りにおいては公正な乱数の生成が行われる。しかし、例えば、ゲームサーバ10aとユーザj2(ユーザj2が操作する端末20)が共謀することで、ユーザj1に対して不利な(不公平な)乱数が生成される余地がある。具体的には、ゲームサーバ10aは、図13のステップS303により生成されたユーザ乱数rj1を取得した後に、ユーザj2用の初期乱数sj2を生成している。しかし、例えば、ゲームサーバ10aとユーザj2が結託することで、ゲームサーバ10aが初期乱数sj2を生成する前にユーザj2がユーザ乱数rj2を生成し、ゲームサーバ10aに提供することもできる。その結果、ゲームサーバ10aは、式(2)に示すハッシュ値yを計算する際、ユーザj2にとって有利な結果が得られるように、初期乱数sj2を選択できる余地がある。In the second embodiment, as long as the game server 10a treats the two users j1 and j2 equally, a fair random number is generated. However, for example, when the game server 10a and the user j2 (the terminal 20 operated by the user j2) collude, there is room for generating an unfair (unfair) random number for the user j1. Specifically, the game server 10a generates the initial random number s j2 for the user j2 after acquiring the user random number r j1 generated in step S303 of FIG. However, for example, by colluding the game server 10a and the user j2, the user j2 can generate the user random number r j2 before the game server 10a generates the initial random number s j2, and can provide the user random number r j2 to the game server 10a. As a result, the game server 10a has room to select the initial random number s j2 so as to obtain a favorable result for the user j2 when calculating the hash value y j shown in the equation (2).

第2の実施形態の変形例では、ゲームサーバとユーザが結託することで、上記のような他のユーザに対して不公正な乱数生成を防止するシステムを提供する。 In the modified example of the second embodiment, the game server and the user collude to provide a system for preventing unfair random number generation for other users as described above.

図14を参照しつつ、第2の実施形態とその変形例の相違点を中心に説明する。 The difference between the second embodiment and the modified example thereof will be mainly described with reference to FIG.

ステップS403において、ユーザj1は、ユーザ乱数rj1を生成する。その後、ユーザj1は、当該ユーザ乱数rj1のハッシュ値H(rj1)をゲームサーバ10bに送信する(ステップS404)。In step S403, the user j1 generates a user random number r j1. After that, the user j1 transmits the hash value H (r j1 ) of the user random number r j1 to the game server 10b (step S404).

ステップS405において、ゲームサーバ10bは、ユーザj2用の初期乱数sj2を生成し、ハッシュ値H(sj2)を生成する。当該ハッシュ値H(sj2)は電子掲示板に書き込まれる。その後、ゲームサーバ10bは、ユーザ乱数rj1のハッシュ値H(rj1)をユーザj2に送信する(ステップS406)。In step S405, the game server 10b generates an initial random number s j2 for the user j2 and generates a hash value H (s j2 ). The hash value H (s j2 ) is written on the electronic bulletin board. After that, the game server 10b transmits the hash value H (r j1 ) of the user random number r j1 to the user j2 (step S406).

ステップS407において、ユーザj2は、ユーザ乱数rj2を生成し、当該生成したユーザ乱数rj2をゲームサーバ10bに送信する。In step S407, the user j2 generates a user random number r j2, sends the user a random number r j2 thus generated to the game server 10b.

ステップS408において、ゲームサーバ10bは、ユーザj1にユーザ乱数rj2を送信する。In step S408, the game server 10b transmits the user random number r j2 to the user j1.

ステップS409において、上記送信を受けたユーザj1は、ユーザ乱数rj1の封印をゲームサーバ10bに開封する。In step S409, the user j1 who received the transmission opens the seal of the user random number r j1 to the game server 10b.

ゲームサーバ10bは、当該開封が正しいことを確認して、ゲームを開始する。つまり、ゲームサーバ10bは、初期乱数sj1、sj2及びユーザ乱数rj1、rj2を利用し、乱数xを適宜生成する(ステップS410)。The game server 10b confirms that the opening is correct, and starts the game. That is, the game server 10b uses the initial random numbers s j1 and s j2 and the user random numbers r j1 and r j2 to appropriately generate random numbers x j (step S410).

このように、ユーザj2用の初期乱数sj2を生成する前に、ユーザj1はユーザ乱数rj1を生成するが、当該乱数の生成をした旨の通知はハッシュ値H(rj1)がゲームサーバ10bに送信されることで行われている。その後、ユーザj2に関する乱数(初期乱数sj2、ユーザ乱数rj2)の生成が行われ、ユーザj1からハッシュ値H(rj1)の開封が行われる。従って、ゲームサーバ10bは、ユーザj2用の初期乱数sjsを生成する前に、ユーザj1が生成したユーザ乱数rj1を知ることができない。その結果、例えば、ユーザj2とゲームサーバ10bが共謀し、ユーザj2に有利となるように(ユーザj1に不公平な)乱数xが生成されることはない。Thus, before generating the initial random number s j2 for the user j2, user j1 is generating the user random number r j1, notification of the generation of the random number is a hash value H (r j1) a game server It is done by being transmitted to 10b. After that, a random number (initial random number s j2 , user random number r j2 ) is generated for the user j2, and the hash value H (r j1 ) is opened from the user j1. Therefore, the game server 10b cannot know the user random number r j1 generated by the user j1 before generating the initial random number s js for the user j2. As a result, for example, the user j2 and the game server 10b do not collude with each other to generate a random number x j (unfair to the user j1) in favor of the user j2.

なお、図14のステップS407では、ユーザj2が生成したユーザ乱数rj2のハッシュ値H(rj2)はゲームサーバ10bに向けて送信されておらず、ユーザ乱数rj2がゲームサーバ10bに送信されている。ユーザj1に関しては、ハッシュ値H(rj1)が初めに送信されることの均衡から、ユーザj2のユーザ乱数rj2のハッシュ値H(rj2)をゲームサーバ10bに送信することも可能である。具体的には、図15に示す手順とすることができる。In step S407 of FIG. 14, the hash value H (r j2 ) of the user random number r j2 generated by the user j2 is not transmitted to the game server 10b, and the user random number r j2 is transmitted to the game server 10b. ing. Regarding the user j1, it is also possible to transmit the hash value H (r j2 ) of the user random number r j2 of the user j2 to the game server 10b from the equilibrium that the hash value H (r j1) is transmitted first. .. Specifically, the procedure shown in FIG. 15 can be used.

具体的には、ユーザj2は、ユーザ乱数rj2を生成(ステップS507)した後、そのハッシュ値H(rj2)を計算して、当該ハッシュ値をゲームサーバ10bに送信する(ステップS508)。Specifically, the user j2 generates the user random number r j2 (step S507), calculates the hash value H (r j2 ), and transmits the hash value to the game server 10b (step S508).

その後、ゲームサーバ10bは、ユーザj1にユーザ乱数rj2のハッシュ値H(rj2)を送信する(ステップS509)。当該ハッシュ値を受信したユーザj1は、封印されたユーザ乱数rj1をゲームサーバ10bに開封する(ステップS510)。あるいは、後述するステップS512にて、ユーザj2がユーザ乱数rj1の開封が正しいことを確認する場合には、ユーザj1は、ユーザ乱数rj1をユーザj2にも開封する。After that, the game server 10b transmits the hash value H (r j2 ) of the user random number r j2 to the user j1 (step S509). The user j1 who has received the hash value opens the sealed user random number r j1 to the game server 10b (step S510). Alternatively, in step S512 described later, when the user j2 confirms that the opening of the user random number r j1 is correct, the user j1 also opens the user random number r j1 to the user j2.

その後、ゲームサーバ10bは、ユーザj1による開封が正しいことを確認した後、ユーザ乱数rj1をユーザj2に送信する(ステップS511)。After that, the game server 10b confirms that the opening by the user j1 is correct, and then transmits the user random number r j1 to the user j2 (step S511).

ユーザj2は、必要に応じて、受信したユーザ乱数rj1のハッシュ値が正しいこと(ユーザj1による封印されたユーザ乱数rj1の開封が正しいこと)を確認した後、封印されたユーザ乱数rj2をゲームサーバ10bに開封する(ステップS512)。The user j2 confirms that the hash value of the received user random number r j1 is correct (the opening of the sealed user random number r j1 by the user j1 is correct), and then the sealed user random number r j2. Is opened in the game server 10b (step S512).

ゲームサーバ10bは、ユーザj2による開封が正しいことを確認した後、乱数xを生成する(ステップS513)。 The game server 10b generates a random number x j after confirming that the opening by the user j2 is correct (step S513).

なお、図14、図15に示す第2の実施形態に係る変形例において、ユーザj1、j2(各ユーザが使用する端末20)とゲームサーバ10bの間の情報授受は、電子掲示板を介して行われてもよいことは勿論である。また、ユーザj1、j2において行う乱数の公平性検証動作は、第2の実施形態と同様とすることができる。 In the modified example according to the second embodiment shown in FIGS. 14 and 15, information exchange between the users j1 and j2 (terminal 20 used by each user) and the game server 10b is performed via an electronic bulletin board system. Of course, it may be broken. Further, the random number fairness verification operation performed by the users j1 and j2 can be the same as in the second embodiment.

第1及び第2の実施形態にて説明したゲームシステムの構成(図2)は例示であって、システムの構成を限定する趣旨ではない。例えば、ゲームサーバ10は、ゲームの遂行を担う装置と乱数の生成を担う装置(乱数生成装置)に分離されていてもよい。あるいは、ゲームサーバ10に、ユーザのアカウント登録機能が含まれていてもよい。 The configuration of the game system (FIG. 2) described in the first and second embodiments is an example, and is not intended to limit the configuration of the system. For example, the game server 10 may be separated into a device responsible for executing a game and a device responsible for generating random numbers (random number generation device). Alternatively, the game server 10 may include a user account registration function.

上記実施形態では、ゲームの進行に使用される乱数の生成は、ゲームサーバ10と端末20の間で閉じた処理となっているが、乱数生成の過程の一部をユーザに開放してもよい。例えば、図7のステップS107や図13のステップS303、S305にて、ユーザ乱数の生成が行われるが、その際の乱数生成にユーザの選択を反映させてもよい。例えば、端末20は、図16に示すような乱数選択画面を液晶パネル等に表示し、ユーザのアイコン選択動作を受け付ける。図16において、各アイコンにはランダムな数値が割り当てられている。端末20は、ユーザが選択したアイコン(選択肢)に割り当てられた数値を利用して、ユーザ乱数を生成してもよい。例えば、端末20は、アイコンの選択により定まるランダムな数値と、ユーザのIDと、現在時刻と、を連結することでユーザ乱数としてもよい。当該構成により、アイコンの選択と乱数生成をシームレスに行うことができる。なお、ユーザが乱数の生成に関与できるようにすることは、第1の実施形態だけでなく、第2の実施形態でも可能である。 In the above embodiment, the random number generation used for the progress of the game is a closed process between the game server 10 and the terminal 20, but a part of the random number generation process may be open to the user. .. For example, the user random number is generated in step S107 of FIG. 7 and steps S303 and S305 of FIG. 13, and the user's selection may be reflected in the random number generation at that time. For example, the terminal 20 displays a random number selection screen as shown in FIG. 16 on a liquid crystal panel or the like, and accepts a user's icon selection operation. In FIG. 16, each icon is assigned a random numerical value. The terminal 20 may generate a user random number by using the numerical value assigned to the icon (choice) selected by the user. For example, the terminal 20 may be a user random number by concatenating a random numerical value determined by selecting an icon, a user ID, and a current time. With this configuration, icon selection and random number generation can be performed seamlessly. It should be noted that allowing the user to be involved in the generation of random numbers is possible not only in the first embodiment but also in the second embodiment.

上記実施形態では、端末20は、ゲームサーバ10による乱数生成の検証を行うものとして説明したが、端末20による乱数検証の可否をユーザが選択出来るようにしてもよい。例えば、端末20の表示画面に「検証可能乱数の使用要否」を尋ねるメッセージと選択肢(選択ボタン)を表示し、ユーザが「検証可能乱数を使用する」ことを選択した場合に、図8を用いて説明したような乱数の検証が行われてもよい。 In the above embodiment, the terminal 20 has been described as verifying the random number generation by the game server 10, but the user may be able to select whether or not the random number verification by the terminal 20 is possible. For example, when a message asking "necessity of using verifiable random numbers" and an option (selection button) are displayed on the display screen of the terminal 20, and the user selects "use verifiable random numbers", FIG. 8 is shown. Random number verification as described in use may be performed.

上記実施形態では、式(1)や式(2)を利用して乱数xを生成しているが、式(1)や(2)は例示であって乱数xの生成方法を限定する趣旨ではない。例えば、式(1)では、初期乱数s、ユーザ乱数r及び乱数の生成に関する序数iに基づく値をハッシュ関数に入力し、ハッシュ関数の出力結果に基づき乱数を生成している。このような計算だとハッシュ関数の種類によっては、計算結果に偏りが生じる可能性がある。上記3つの入力情報のうち、同じゲームの最中(同じユーザjに向けた乱数)の生成では、初期乱数s、ユーザ乱数rは固定され、変わるのは序数iに限られる。すると、連結データの大半が変わらず一部だけが変わることになる。このような入力データ(連結データ)を用いて何回も乱数xが生成されると、端末20は次の乱数xの値を予測できる可能性がある。このような不都合を回避するため、下記の式(3)や(4)に示すように、ハッシュ関数に入力する連結データを工夫してもよい。
(i)=Hash(i||s||r||i) mod m ・・・(3)
(i)=Hash(i||s||i||r||i) mod m ・・・(4)
In the above embodiment, the random numbers x j are generated using the equations (1) and (2), but the equations (1) and (2) are examples and limit the method of generating the random numbers x j. Not the purpose. For example, in the equation (1), a value based on the initial random number s j , the user random number r j, and the ordinal number i related to the generation of the random number is input to the hash function, and the random number is generated based on the output result of the hash function. With such a calculation, the calculation result may be biased depending on the type of hash function. Of the above three input information, in the generation of the same game (random numbers directed to the same user j), the initial random numbers s j and the user random numbers r j are fixed, and only the ordinal number i changes. Then, most of the consolidated data will not change and only a part will change. If the random number x j is generated many times using such input data (concatenated data), the terminal 20 may be able to predict the value of the next random number x j. In order to avoid such inconvenience, the concatenation data to be input to the hash function may be devised as shown in the following equations (3) and (4).
x j (i) = Hash (i || s j || r j || i) mod m ... (3)
x j (i) = Hash (i || s j || i || r j || i) mod m ... (4)

式(3)では、序数iにより初期乱数sとユーザ乱数rを挟み、式(4)では、序数iと乱数(初期乱数s、ユーザ乱数r)を交互に配置している。このように序数iを分散してハッシュ関数に入力する連結データを生成することにより、生成される乱数xの偏りをなくすことができる(低減することができる)。つまり、乱数の生成の度に値が変化する乱数の生成に関する序数iが2回以上用いられてハッシュ関数への入力値(連結データ)が生成されてもよい。In the equation (3), the initial random number s j and the user random number r j are sandwiched by the ordinal number i, and in the equation (4), the ordinal number i and the random numbers (initial random number s j , user random number r j ) are arranged alternately. By generating the concatenated data in which the ordinal number i is distributed and input to the hash function in this way, the bias of the generated random number x j can be eliminated (can be reduced). That is, the input value (concatenated data) to the hash function may be generated by using the ordinal i related to the generation of the random number whose value changes each time the random number is generated twice or more.

あるいは、乱数xの偏りをなくすことを目的として、初期乱数sやユーザ乱数rを所定の関数に入力し、当該関数の出力結果を用いてハッシュ関数に入力する連結データを生成してもよい。即ち、ハッシュ関数に入力する連結データ(ハッシュ関数への入力値)の生成には、初期乱数sより導出された値、ユーザ乱数rより導出された値及び乱数生成に関する序数iより導出された値の少なくとも1つが含まれていてもよい。換言するならば、初期乱数s、ユーザ乱数r、序数iを基礎とする情報(乱数や序数そのもの又は関数等の出力結果)を用いて乱数が生成されてもよい。例えば、式(5)に示す方法により乱数xを生成してもよい。
(i)=Hash(f(s)||f(r)||i) mod m ・・・(5)
また、上記関数f()はハッシュ関数を用いてもよい。
Alternatively, for the purpose of eliminating the bias of the random number x j , the initial random number s j or the user random number r j is input to a predetermined function, and the output result of the function is used to generate concatenated data to be input to the hash function. May be good. That is, in the generation of the concatenated data (input value to the hash function) to be input to the hash function, the value derived from the initial random number s j , the value derived from the user random number r j , and the order i related to random number generation are derived. At least one of the values may be included. In other words, a random number may be generated using information based on the initial random number s j , the user random number r j , and the ordinal number i (the random number, the ordinal number itself, or the output result of the function, etc.). For example, a random number x j may be generated by the method shown in the equation (5).
x j (i) = Hash (f (s j ) || f (r j ) || i) mod m ... (5)
Further, the hash function may be used for the above function f ().

なお、上記式(3)〜(5)では、序数iそのものを乱数xの生成に利用しているが、序数iを所定の関数に入力しその結果を乱数xの生成に利用してもよい。In the above equations (3) to (5), the ordinal number i itself is used to generate the random number x j , but the ordinal number i is input to a predetermined function and the result is used to generate the random number x j. May be good.

このように、ハッシュ関数への入力は、初期乱数sより導出された値、ユーザ乱数rより導出された値及び乱数生成に関する序数iより導出された値の少なくとも1つを含んでもよい。As described above, the input to the hash function may include at least one of the value derived from the initial random number s j , the value derived from the user random number r j , and the value derived from the ordinal i related to random number generation.

コンピュータの記憶部に、上述したコンピュータプログラムをインストールすることにより、コンピュータを乱数生成装置として機能させることができる。さらにまた、上述したコンピュータプログラムをコンピュータに実行させることにより、コンピュータにより乱数生成方法を実行することができる。 By installing the above-mentioned computer program in the storage unit of the computer, the computer can function as a random number generator. Furthermore, by causing the computer to execute the above-mentioned computer program, the random number generation method can be executed by the computer.

また、上述の説明で用いた複数のフローチャートでは、複数の工程(処理)が順番に記載されているが、各実施形態で実行される工程の実行順序は、その記載の順番に制限されない。各実施形態では、例えば各処理を並行して実行する等、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態は、内容が相反しない範囲で組み合わせることができる。 Further, in the plurality of flowcharts used in the above description, a plurality of steps (processes) are described in order, but the execution order of the steps executed in each embodiment is not limited to the order of description. In each embodiment, the order of the illustrated processes can be changed within a range that does not hinder the contents, for example, the processes are executed in parallel. In addition, the above-mentioned embodiments can be combined as long as the contents do not conflict with each other.

なお、引用した上記の特許文献の開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。 The disclosure of the above-mentioned patent documents cited shall be incorporated into this document by citation. Within the framework of the entire disclosure (including the scope of claims) of the present invention, it is possible to change or adjust the embodiments or examples based on the basic technical idea thereof. Further, various combinations or selections of various disclosure elements (including each element of each claim, each element of each embodiment or embodiment, each element of each drawing, etc.) within the framework of all disclosure of the present invention. Is possible. That is, it goes without saying that the present invention includes all disclosure including claims, various modifications and modifications that can be made by those skilled in the art in accordance with the technical idea. In particular, with respect to the numerical range described in this document, any numerical value or small range included in the range should be construed as being specifically described even if not otherwise described.

10、10a、10b ゲームサーバ
11 CPU(Central Processing Unit)
12 メモリ
13 入出力インターフェイス
14 NIC(Network Interface Card)
20、20−1〜20−n、101 端末
30 データ管理システム
40、40−1〜40−4 管理サーバ
50 検証装置
102 乱数生成装置
201、301、401 通信制御部
202、302、402 記憶部
203 ゲーム実行制御部
211 ユーザ認証部
212 第1の乱数生成部
213 第2の乱数生成部
303 ゲーム実行部
311 乱数生成部
312 乱数検証部
403 台帳管理部
411 ブロック生成部
412 ブロック検証部
10, 10a, 10b Game server 11 CPU (Central Processing Unit)
12 Memory 13 Input / output interface 14 NIC (Network Interface Card)
20, 20-1 to 20-n, 101 Terminal 30 Data management system 40, 40-1 to 40-4 Management server 50 Verification device 102 Random number generation device 201, 301, 401 Communication control unit 202, 302, 402 Storage unit 203 Game execution control unit 211 User authentication unit 212 First random number generation unit 213 Second random number generation unit 303 Game execution unit 311 Random number generation unit 312 Random number generation verification unit 403 Ledger management unit 411 Block generation unit 412 Block verification unit

Claims (19)

端末と、
前記端末用の乱数を生成する、乱数生成装置と、
を含み、
前記乱数生成装置は、初期乱数の封印値を生成し、
前記端末は、前記初期乱数の封印値が生成された後に、ユーザ乱数を生成し、
前記乱数生成装置は、前記初期乱数、前記ユーザ乱数及び少なくとも前記端末が使用する乱数の生成に関する序数に基づく値をハッシュ関数に入力し、前記ハッシュ関数の出力結果に基づき前記乱数を生成する、乱数生成システム。
With the terminal
A random number generator that generates random numbers for the terminal,
Including
The random number generator generates a sealed value of the initial random number,
The terminal generates a user random number after the sealing value of the initial random number is generated.
The random number generator inputs a value based on the initial random number, the user random number, and at least a random number related to the generation of the random number used by the terminal into the hash function, and generates the random number based on the output result of the hash function. Generation system.
前記ハッシュ関数への入力は、前記初期乱数、前記ユーザ乱数及び前記乱数の生成に関する序数を連結した値である、請求項1に記載の乱数生成システム。 The random number generation system according to claim 1, wherein the input to the hash function is a value obtained by concatenating the initial random number, the user random number, and an ordinal number related to the generation of the random number. 前記ハッシュ関数への入力は、前記乱数生成に関する序数が2回以上用いられて生成された値である、請求項1又は2に記載の乱数システム。 The random number system according to claim 1 or 2, wherein the input to the hash function is a value generated by using the ordinal number related to the random number generation two or more times. 前記ハッシュ関数への入力は、前記初期乱数より導出された値、前記ユーザ乱数より導出された値及び前記乱数生成に関する序数より導出された値の少なくとも1つを含む請求項1乃至3のいずれか一項に記載の乱数生成システム。 The input to the hash function is any one of claims 1 to 3 including at least one of a value derived from the initial random number, a value derived from the user random number, and a value derived from the order related to the random number generation. The random number generation system described in item 1. 電子掲示板を提供する、データ管理システムをさらに含み、
前記乱数生成装置は、前記封印値を前記電子掲示板に書き込み、
前記端末は、前記封印値が前記電子掲示板に書き込まれたことに応じて、前記ユーザ乱数を生成する、請求項1乃至4のいずれか一項に記載の乱数生成システム。
Including a data management system that provides an electronic bulletin board,
The random number generator writes the sealed value on the electronic bulletin board,
The random number generation system according to any one of claims 1 to 4, wherein the terminal generates the user random number in response to the sealed value being written on the electronic bulletin board system.
前記乱数生成装置は、前記生成された乱数を使用した後に、前記使用された乱数を前記端末に通知する、請求項1乃至5のいずれか一項に記載の乱数生成システム。 The random number generation system according to any one of claims 1 to 5, wherein the random number generation device notifies the terminal of the used random number after using the generated random number. 前記乱数生成装置は、前記端末に対する乱数生成が不要となった後、前記初期乱数の封印を前記端末に開封する、請求項6に記載の乱数生成システム。 The random number generation system according to claim 6, wherein the random number generation device opens the seal of the initial random number to the terminal after the random number generation for the terminal becomes unnecessary. 前記端末は、前記電子掲示板に書き込まれた前記初期乱数の封印値を取得し、前記取得した封印値と、前記開封された初期乱数と、前記使用された乱数として通知された乱数と、前記乱数の生成に関する序数と、に基づき、前記乱数生成装置による乱数生成の公正性を検証する、請求項7に記載の乱数生成システム。 The terminal acquires the sealed value of the initial random number written on the electronic bulletin board, the acquired sealed value, the opened initial random number, the random number notified as the used random number, and the random number. The random number generation system according to claim 7, wherein the fairness of random number generation by the random number generator is verified based on the order number related to the generation of the random number. 前記端末は、前記開封された初期乱数の封印値を計算し、前記計算した封印値と前記電子掲示板から取得した封印値が不一致の場合は、前記乱数生成装置による乱数生成は不公正であると判定する、請求項8に記載の乱数生成システム。 The terminal calculates the seal value of the opened initial random number, and if the calculated seal value and the seal value obtained from the electronic bulletin board do not match, the random number generation by the random number generator is unfair. The random number generation system according to claim 8, wherein the determination is made. 前記端末は、前記計算した封印値と前記電子掲示板から取得した封印値が一致し、且つ、前記使用された乱数として通知された乱数と、前記開封された初期乱数、前記ユーザ乱数及び前記乱数の生成に関する序数から生成した乱数が一致する場合に、前記乱数生成装置による乱数生成は公正であると判定する、請求項9に記載の乱数生成システム。 In the terminal, the calculated seal value and the seal value obtained from the electronic bulletin board match, and the random number notified as the used random number, the opened initial random number, the user random number, and the random number. The random number generation system according to claim 9, wherein when the random numbers generated from the random numbers related to the generation match, it is determined that the random number generation by the random number generator is fair. 前記端末は、前記ユーザ乱数を前記電子掲示板に書き込み、
前記乱数生成装置は、前記生成された乱数を使用した後に、前記使用された乱数を前記電子掲示板に書き込む、請求項5に記載の乱数生成システム。
The terminal writes the user random number on the electronic bulletin board,
The random number generation system according to claim 5, wherein the random number generation device writes the used random numbers to the electronic bulletin board after using the generated random numbers.
前記電子掲示板に書き込まれた、前記初期乱数の封印値、前記使用された乱数及び前記ユーザ乱数を用いて、前記乱数生成装置による乱数生成の公正性を検証する、検証装置をさらに含む、請求項11に記載の乱数生成システム。 A claim further comprising a verification device for verifying the fairness of random number generation by the random number generator using the sealed value of the initial random number, the used random number, and the user random number written on the electronic bulletin board. 11. The random number generation system according to 11. 複数の前記端末を含み、
前記乱数生成装置は、前記複数の端末それぞれについて前記初期乱数を生成し、
前記複数の端末のそれぞれは、前記ユーザ乱数を生成し、
前記乱数生成装置は、少なくとも前記複数の初期乱数、前記複数のユーザ乱数、前記乱数の生成に関する序数に基づき、乱数を生成する、請求項1乃至12のいずれか一項に記載の乱数生成システム。
Including multiple terminals
The random number generator generates the initial random number for each of the plurality of terminals.
Each of the plurality of terminals generates the user random number and generates the user random number.
The random number generation system according to any one of claims 1 to 12, wherein the random number generator generates random numbers based on at least the plurality of initial random numbers, the plurality of user random numbers, and an ordinal number relating to the generation of the random numbers.
第1及び第2の前記端末を含み、
前記乱数生成装置は、前記第1の端末についての第1の前記初期乱数を生成し、
前記第1の端末は、第1の前記ユーザ乱数を生成すると共に、前記第1のユーザ乱数の封印値を前記乱数生成装置に送信し、
前記乱数生成装置は、前記第1のユーザ乱数の封印値を受信した後、前記第2の端末についての第2の前記初期乱数を生成すると共に、前記第1のユーザ乱数の封印値を前記第2の端末に送信し、
前記第2の端末は、前記第1のユーザ乱数の封印値を受信した後に、第2の前記ユーザ乱数を生成すると共に、前記生成された第2のユーザ乱数を前記乱数生成装置に送信し、
前記乱数生成装置は、前記第2のユーザ乱数を前記第1の端末に送信し、
前記第1の端末は、前記第2のユーザ乱数を受信した後に、前記第1のユーザ乱数の封印を前記乱数生成装置に開封し、
前記乱数生成装置は、少なくとも、前記第1及び第2の初期乱数、前記第1及び第2のユーザ乱数及び前記乱数の生成に関する序数に基づき、乱数を生成する、請求項13に記載の乱数生成システム。
Including the first and second terminals
The random number generator generates the first initial random number for the first terminal.
The first terminal generates the first user random number and transmits the sealed value of the first user random number to the random number generator.
After receiving the sealed value of the first user random number, the random number generator generates the second initial random number for the second terminal and uses the sealed value of the first user random number as the first user random number. Send to 2 terminals,
After receiving the sealed value of the first user random number, the second terminal generates the second user random number and transmits the generated second user random number to the random number generator.
The random number generator transmits the second user random number to the first terminal.
After receiving the second user random number, the first terminal opens the seal of the first user random number in the random number generator.
The random number generation according to claim 13, wherein the random number generator generates random numbers based on at least the first and second initial random numbers, the first and second user random numbers, and the ordinal number related to the generation of the random numbers. system.
第1及び第2の前記端末を含み、
前記乱数生成装置は、前記第1の端末についての第1の前記初期乱数を生成し、
前記第1の端末は、第1の前記ユーザ乱数を生成すると共に、前記第1のユーザ乱数の封印値を前記乱数生成装置に送信し、
前記乱数生成装置は、前記第1のユーザ乱数の封印値を受信した後、前記第2の端末についての第2の前記初期乱数を生成すると共に、前記第1のユーザ乱数の封印値を前記第2の端末に送信し、
前記第2の端末は、前記第1のユーザ乱数の封印値を受信した後に、第2の前記ユーザ乱数を生成すると共に、前記生成された第2のユーザ乱数の封印値を前記乱数生成装置に送信し、
前記乱数生成装置は、前記第2のユーザ乱数の封印値を前記第1の端末に送信し、
前記第1の端末は、前記第2のユーザ乱数の封印値を受信した後に、前記第1のユーザ乱数の封印を前記乱数生成装置に開封し、
前記乱数生成装置は、前記第1のユーザ乱数の開封後、前記第1のユーザ乱数を前記第2の端末に送信し、
前記第2の端末は、前記第1のユーザ乱数を受信した後に、前記第2のユーザ乱数の封印を前記乱数生成装置に開封し、
前記乱数生成装置は、少なくとも、前記第1及び第2の初期乱数、前記第1及び第2のユーザ乱数及び前記乱数の生成に関する序数に基づき、乱数を生成する、請求項13に記載の乱数生成システム。
Including the first and second terminals
The random number generator generates the first initial random number for the first terminal.
The first terminal generates the first user random number and transmits the sealed value of the first user random number to the random number generator.
After receiving the sealed value of the first user random number, the random number generator generates the second initial random number for the second terminal and uses the sealed value of the first user random number as the first user random number. Send to 2 terminals,
After receiving the sealed value of the first user random number, the second terminal generates the second user random number and uses the generated sealed value of the second user random number to the random number generator. Send and
The random number generator transmits the sealed value of the second user random number to the first terminal.
After receiving the seal value of the second user random number, the first terminal opens the seal of the first user random number in the random number generator.
After opening the first user random number, the random number generator transmits the first user random number to the second terminal.
After receiving the first user random number, the second terminal opens the seal of the second user random number in the random number generator.
The random number generation according to claim 13, wherein the random number generator generates random numbers based on at least the first and second initial random numbers, the first and second user random numbers, and the ordinal number related to the generation of the random numbers. system.
前記端末は、ユーザの選択した選択肢に関連付けられた数値を利用し、前記ユーザ乱数を生成する、請求項1乃至15のいずれか一項に記載の乱数生成システム。 The random number generation system according to any one of claims 1 to 15, wherein the terminal uses a numerical value associated with a choice selected by the user to generate the user random number. 初期乱数を生成し、前記初期乱数の封印値を生成する、第1の乱数生成部と、
前記初期乱数の封印値が生成された後に端末が生成したユーザ乱数と、前記初期乱数と、少なくとも前記端末が使用する乱数に関する序数に基づく値をハッシュ関数に入力し、前記ハッシュ関数の出力結果に基づき前記乱数を生成する、第2の乱数生成部と、
を備える、乱数生成装置。
A first random number generator that generates an initial random number and generates a sealed value of the initial random number,
A user random number generated by the terminal after the sealing value of the initial random number is generated, a value based on the initial random number and at least a random number related to the random number used by the terminal are input to the hash function, and the output result of the hash function is A second random number generator that generates the random number based on the above,
A random number generator.
端末と、
前記端末用の乱数を生成する、乱数生成装置と、
を含むシステムにおいて、
前記乱数生成装置が、初期乱数の封印値を生成するステップと、
前記端末が、前記初期乱数の封印値が生成された後に、ユーザ乱数を生成するステップと、
前記乱数生成装置が、前記初期乱数、前記ユーザ乱数及び少なくとも前記端末が使用する乱数の生成に関する序数に基づく値をハッシュ関数に入力し、前記ハッシュ関数の出力結果に基づき前記乱数を生成する、ステップと、
を含む、乱数生成方法。
With the terminal
A random number generator that generates random numbers for the terminal,
In a system that includes
The step in which the random number generator generates the sealed value of the initial random number,
A step in which the terminal generates a user random number after the sealing value of the initial random number is generated.
A step in which the random number generator inputs a value based on the initial random number, the user random number, and at least a random number related to the generation of the random number used by the terminal into the hash function, and generates the random number based on the output result of the hash function. When,
Random number generation methods, including.
初期乱数を生成し、前記初期乱数の封印値を生成する処理と、
前記初期乱数の封印値が生成された後に端末が生成したユーザ乱数と、前記初期乱数と、少なくとも前記端末が使用する乱数に関する序数に基づく値をハッシュ関数に入力し、前記ハッシュ関数の出力結果に基づき前記乱数を生成する処理と、
をコンピュータに実行させるプログラム。
The process of generating the initial random number and generating the sealing value of the initial random number,
A user random number generated by the terminal after the sealing value of the initial random number is generated, a value based on the initial random number and at least a random number related to the random number used by the terminal are input to the hash function, and the output result of the hash function is Based on the process of generating the random number,
A program that causes a computer to run.
JP2020565558A 2019-01-11 2019-01-11 Random number generation system, random number generation device, random number generation method and program Active JP7230926B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/000748 WO2020144863A1 (en) 2019-01-11 2019-01-11 Random number generation system, random number generation device, random number generation method, and program

Publications (2)

Publication Number Publication Date
JPWO2020144863A1 true JPWO2020144863A1 (en) 2021-11-25
JP7230926B2 JP7230926B2 (en) 2023-03-01

Family

ID=71521092

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020565558A Active JP7230926B2 (en) 2019-01-11 2019-01-11 Random number generation system, random number generation device, random number generation method and program

Country Status (2)

Country Link
JP (1) JP7230926B2 (en)
WO (1) WO2020144863A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007049262A (en) * 2005-08-08 2007-02-22 Sony Computer Entertainment Inc Terminal, communication device, communication establishment method and authentication method
JP2018050973A (en) * 2016-09-29 2018-04-05 日本電気株式会社 Random number generation system, random number generation device, random number generation method and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007049262A (en) * 2005-08-08 2007-02-22 Sony Computer Entertainment Inc Terminal, communication device, communication establishment method and authentication method
JP2018050973A (en) * 2016-09-29 2018-04-05 日本電気株式会社 Random number generation system, random number generation device, random number generation method and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
佐古 和恵 KAZUE SAKO, 2017年 暗号と情報セキュリティシンポジウム(SCIS2017)予稿集 [USB] 2017年 暗, JPN6022034785, 27 February 2017 (2017-02-27), pages 1 - 4, ISSN: 0004854670 *

Also Published As

Publication number Publication date
JP7230926B2 (en) 2023-03-01
WO2020144863A1 (en) 2020-07-16

Similar Documents

Publication Publication Date Title
JP6859645B2 (en) Random number generation system, random number generator, random number generation method and program
US8245283B2 (en) Region access authorization in a virtual environment
US10046240B2 (en) Social networking data augmented gaming kiosk
CN105435451B (en) The identification of game cheat and processing method, device, system and server
US8745401B1 (en) Authorizing actions performed by an online service provider
JP2021518592A (en) Secure decentralized video game trading platform
CN106415572B (en) For authorizing the secure crypto processor of the device request of connection
CN106503098A (en) It is built in the block chain cloud service frame system of Paas service layers
JP2007529935A (en) Anonymous authentication method
JP7186257B2 (en) Program, game system and game service providing method
JP5487374B2 (en) Service providing method and online service system
Clark et al. Research perspectives and challenges for bitcoin and cryptocurrencies
JP2014117354A (en) Online game server
US8688975B2 (en) Certifying a virtual entity in a virtual universe
AU2013212569B2 (en) Creation and monitoring of "fair play" online gaming
JPWO2020144863A1 (en) Random number generation system, random number generator, random number generation method and program
CN106209378B (en) Safety information interaction method based on virtual secure information carrier
JP2014171832A (en) Information disclosure system and information disclosure method
JP2017046920A (en) Lottery system, user terminal machine, and game system
KR102219525B1 (en) Method, system and non-transitory computer-readable recording medium for verifying information in a block-chained network
JP7211437B2 (en) RANDOM NUMBER GENERATING SYSTEM AND RANDOM NUMBER GENERATING METHOD
US20230379179A1 (en) Blockchain-based systems and method for providing secure digital identities and affiliations for users via digital tokens
CN106327194A (en) Password generation method and electronic equipment
Hong et al. A Solution for the Offline Double-Spending Issue of Digital Currencies
WO2024020183A1 (en) Systems and methods for verifiable approval

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220930

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230130

R151 Written notification of patent or utility model registration

Ref document number: 7230926

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151