JP4597738B2 - 乱数処理システム、乱数処理方法、ならびに、プログラム - Google Patents

乱数処理システム、乱数処理方法、ならびに、プログラム Download PDF

Info

Publication number
JP4597738B2
JP4597738B2 JP2005095597A JP2005095597A JP4597738B2 JP 4597738 B2 JP4597738 B2 JP 4597738B2 JP 2005095597 A JP2005095597 A JP 2005095597A JP 2005095597 A JP2005095597 A JP 2005095597A JP 4597738 B2 JP4597738 B2 JP 4597738B2
Authority
JP
Japan
Prior art keywords
random number
data
hash value
target data
generated
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.)
Active
Application number
JP2005095597A
Other languages
English (en)
Other versions
JP2006279542A (ja
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.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Digital Entertainment Co Ltd
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 Konami Digital Entertainment Co Ltd filed Critical Konami Digital Entertainment Co Ltd
Priority to JP2005095597A priority Critical patent/JP4597738B2/ja
Publication of JP2006279542A publication Critical patent/JP2006279542A/ja
Application granted granted Critical
Publication of JP4597738B2 publication Critical patent/JP4597738B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、乱数を使用する処理に不正がないか否かを認証するのに好適な乱数処理システム、乱数処理方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
従来から、インターネット等のコンピュータ通信網を介したネットワークゲームを提供する技術が提案されている。このようなネットワークゲームについては、以下の文献に技術が開示されている。
特許第3496150号
一般に、ゲームを提供する場合には、乱数を使用することが多い。したがって、ネットワークゲームを提供する際に、サーバで集中管理をするのではなく、ゲーム端末同士のピアツーピア通信を用いて対戦をさせるような場合には、いずれか(1つ以上)のゲーム端末で乱数を生成する必要がある。
しかしながら、麻雀やトランプ、花札などのゲームでは特に、乱数が正しく使用されているか否かが公正なプレイには不可欠となる。したがって、いずれかのゲーム端末で発生された乱数が不正なく使用されているかを確認する技術が強く求められている。
本発明は、上記のような課題を解決するためになされたもので、乱数を使用する処理に不正がないか否かを認証するのに好適な乱数処理システム、乱数処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第1の観点に係る乱数処理システムは、乱数使用装置と、使用認証装置とを有し、当該乱数使用装置は、対象データ生成部、使用側ハッシュ値計算部、乱数要求送信部、乱数応答受信部、使用側結果データ生成部、データ通知送信部を備え、当該使用認証装置は、乱数要求受信部、乱数発生部、乱数応答送信部、データ通知受信部、認証側ハッシュ値計算部、不正報告部を備え、以下のように構成する。
すなわち、乱数使用装置において、対象データ生成部は、乱数の使用対象となるデータ(以下「対象データ」という。)を生成し、使用側ハッシュ値計算部は、対象データのハッシュ値を計算し、乱数要求送信部は、使用側ハッシュ値計算部により計算されたハッシュ値を指定する乱数要求を使用認証装置に送信する。
たとえば、トランプのカードの山からいずれか1枚を取る場合には、乱数の使用対象となるデータは、トランプのカードの山に入っているカードの集合、典型的には順序付けられたカードの列であり、これに乱数を使用すると、カードの列から乱数に対応する位置にあるカードが選択されることになる。そこで、山のカードの列については、乱数使用装置の対象データ生成部が生成するのである。
この場合、対象データ生成部は、トランプのカードの山をシャッフルするのに相当する作業を行っていることになる。
一方、このカードの列については、使用側ハッシュ値計算部がハッシュ値を計算する。このハッシュ値を用いて、カードの列に対する不正が行われていないことを、後で確認するのである。
そして、乱数要求送信部が計算されたハッシュ値を使用認証装置に送信することを契機として、使用認証装置側で乱数が生成される。
一方、使用認証装置において、乱数要求受信部は、乱数使用装置から送信された乱数要求を受信し、乱数発生部は、受信された乱数要求に応じて乱数を発生させ、乱数応答送信部は、発生された乱数の値を指定する乱数応答を乱数使用装置に送信する。
使用認証装置は、乱数使用装置の相手方として機能する装置であり、乱数要求に応じて乱数を、線形合同法、M系列、カオス乱数等種々の手法によって生成し、これを乱数応答に指定して乱数使用装置に返す。
なお、生成される乱数は、所定範囲の整数や浮動小数点数としても良いし、整数列(有効桁数の多い整数と実質的に等価である。)や文字列(整数列と実質的に等価である。)を採用することとしても良い。
上記のように、カードを1枚山から抜き取りたい場合を考えると、カードの山をシャッフルする側は、山からカードを1枚取る側である。そこで、このカードを取る作業においてチート行為が発生しないように、相手方(山からカードを1枚取る側でない側)に、「何枚目のカードを使うか」を指定させるのである。
さらに、乱数使用装置において、乱数応答受信部は、使用認証装置から送信された乱数応答を受信し、使用側結果データ生成部は、生成された対象データに対して受信された乱数応答に指定される乱数の値を所定の規則により使用した使用結果のデータ(以下「使用側結果データ」という。)を生成し、データ通知送信部は、生成された対象データと、生成された使用側結果データと、を指定するデータ通知を使用認証装置に送信する。
すなわち、使用認証装置から伝えられた乱数を用いて、対象データから使用結果データを生成し、対象データそのものと使用結果データを使用認証装置に送信するのである。
対象データが「シャッフルされたカードの山」に相当し、使用結果データが「そのカードの山から抜いたカード」に相当する。どのカードを抜くか、は、相手方から指示される。一方、カードを抜くまでは、シャッフルされたカードの山の様子は、相手方にはわからない。したがって、チート行為をできるだけ防止することができるのである。
これは、「○枚目のカードを使え」という指示にしたがって、山からカードを取って、ゲームに使用する。そして、使用の後、典型的には、ゲームが終了した後に、その局面での山の順序(に対応するハッシュ値)と抜いたカードとを相手方に知らせることに相当する。
最後に、使用認証装置において、データ通知受信部が、乱数使用装置から送信されるデータ通知を受信し、認証側ハッシュ値計算部が、受信されたデータ通知に指定される対象データのハッシュ値を計算し、不正報告部が、受信された乱数要求に指定されるハッシュ値と認証側ハッシュ値計算部により計算されたハッシュ値とが一致しない、もしくは、受信されたデータ通知に指定される使用側結果データと受信されたデータ通知に指定される対象データに対して発生された乱数の値を当該所定の規則により使用したときに生成されるべき使用結果のデータ(以下「認証側結果データ」という。)とが一致しない場合、当該乱数の使用に不正があった旨を報告する。
結局、使用認証装置は、乱数使用装置から対象データのハッシュ値、対象データ、使用側結果データを受信することとなる。
使用認証装置側で対象データそのものからハッシュ値を計算して、これが、当初受信したハッシュ値と一致していれば、不正は行われていない、と期待できる。
また、対象データと乱数があれば、乱数使用装置側と同じ規則に基づいて、結果データを得ることができる。そこで、使用認証装置側でも同じ作業(もしくは、これと均等な作業)を行って、得られた対象データと、使用側対象データとが一致していれば、不正は行われていない、と期待できる。
このように、本発明では、乱数を使用する対象データは乱数使用側で生成させ、乱数を発生させる作業は使用認証装置側で行って両者に情報を分散させ、対象データのハッシュ値を使用して認証を行うこととしており、乱数を使用する処理に不正がないか否かを適切に認証することができる。
また、本発明の乱数処理システムにおいて、使用認証装置は、認証側結果データ生成部をさらに備え、以下のように構成する。
すなわち、認証側結果データ生成部は、受信されたデータ通知に指定される対象データに対して発生された乱数の値を当該所定の規則により使用した使用結果のデータを生成する。
一方、不正報告部は、認証側結果データ生成部により生成される使用結果のデータを、当該認証側結果データとして用いる。
本発明は、認証の第1の手法に係るものであり、ハッシュ値に基づいて対象データそのものの改変がされていないことを確認した後に、使用認証装置自身が生成した乱数を、乱数使用装置と同じ規則に基づいて、確認済みの対象データに直接適用して、同じ結果が得られるかどうかを調べるものである。
すなわち、上記の例でいえば、乱数使用装置から送信された「シャッフル済みのカードの山」から、自分が決めた「○○枚目」のカードを抜き取り、これが、乱数使用装置から送信された「抜いたカード」と一致しなければ、不正が発生した、とするものである。
本発明は、上記発明の好適実施形態に係るものであり、使用側と認証側で乱数と対象データに同じ規則を用いることで、乱数を使用する処理に不正がないか否かを容易に認証することができる。
また、本発明の乱数処理システムにおいて、当該所定の規則は、対象データと、これに対応する結果データとから、当該対象データに使用された乱数の値のそれぞれを得ることができるように定義された規則であり、使用認証装置は、乱数取得部をさらに備え、以下のように構成する。
すなわち、乱数取得部は、受信されたデータ通知に指定される対象データと、受信されたデータ通知に指定される使用側結果データとから、当該所定の規則により、当該対象データに使用された乱数の値を取得する。
一方、不正報告部は、乱数発生部により発生された乱数の値と乱数取得部により取得された乱数の値とが一致しない場合、当該使用側結果データと当該認証側結果データとが一致しないものとする
本発明は、認証の第2の手法に係るものであり、ハッシュ値に基づいて対象データそのものに改変がされていないことを確認するのは、上記発明と同様である。
本発明においては、乱数を対象データに適用する規則の「逆関数」が存在することが前提となっている。すなわち、対象データと結果データがあれば、適用された乱数が得られるのである。
この場合には、確認済みの対象データと結果データから、乱数使用装置側で使用された乱数を得て、得られた乱数が自身が生成した乱数と一致するか否かにより、認証を行うのである。
すなわち、上記の例でいえば、乱数使用装置から送信された「シャッフル済みのカードの山」の中で、乱数使用装置から送信された「抜いたカード」が「○○枚目」かを調べる。自身が先に指定したものとこの「○○枚目」が一致しなければ、不正が発生した、とするものである。
本発明は、上記発明の好適実施形態に係るものであり、使用側と認証側で乱数と対象データに同じ規則を用いることで、乱数を使用する処理に不正がないか否かを容易に認証することができる。
本発明のその他の観点に係る乱数処理システムは、乱数使用装置と、複数の使用認証装置とを有し、以下のように構成する。
まず、乱数使用装置は、使用側ハッシュ値計算部、乱数要求送信部を備え、使用側ハッシュ値計算部は、乱数の使用対象となるデータ(以下「対象データ」という。)のハッシュ値を計算し、乱数要求送信部は、使用側ハッシュ値計算部により計算されたハッシュ値を指定する乱数要求を複数の使用認証装置のそれぞれに送信する。
一方、複数の使用認証装置のそれぞれは、乱数要求受信部、乱数発生部、乱数応答送信部を備える。
ここで、乱数要求受信部は、乱数使用装置から送信された乱数要求を受信する。
一方、乱数発生部は、受信された乱数要求に応じて乱数を発生させる。
さらに、乱数応答送信部は、発生された乱数の値を指定する乱数応答を乱数使用装置に送信する。
これらの構成は、複数の使用認証装置がある点が相違するが、その他の構成は、上記発明に酷似している。
さらに、乱数使用装置は、乱数応答受信部、使用側結果データ生成部、データ通知送信部を備える。
ここで、乱数応答受信部は、複数の使用認証装置のそれぞれから送信された乱数応答を受信する。
一方、使用側結果データ生成部は、生成された対象データに対して受信された複数の乱数応答のそれぞれに指定される乱数の値を所定の規則により使用した使用結果のデータ(以下「使用側結果データ」という。)を生成する。
さらに、データ通知送信部は、生成された対象データと、生成された使用側結果データと、を指定するデータ通知を複数の使用認証装置のそれぞれに送信する。
これらの構成は、複数の使用認証装置がある点と、これに伴ない、対象データに適用される乱数が複数である点が相違するが、その他の構成は、上記発明に酷似している。
たとえば、乱数使用装置側では、65536個の項目からなる対象データから1つを選択するため、整数0〜65535の一様乱数が欲しいものとする。使用認証装置が4台ある場合の規則を考える。上記の一様乱数の値は16ビットで表現できるから、使用認証装置のそれぞれは、4ビットの乱数を発生させる。そして、その4ビットの乱数を所定の順序で並べることによって、整数0〜65535の一様乱数を得る。そして、得られた乱数番目の項目を結果データとして利用するのである。このように、本発明では複数の使用認証装置から指定された複数の乱数を組み合わせて使用するのである。
一方、当該所定の規則は、対象データと、これに対応する結果データとから、当該対象データに使用された乱数の値のそれぞれを得ることができるように定義された規則である。
上記の例でいえば、乱数値を16ビットのビット列と見て、自身に対応する場所のビット列を得れば、ある使用認証装置から送信された4ビットの乱数がわかる。
さらに、複数の使用認証装置のそれぞれは、データ通知受信部、認証側ハッシュ値計算部、乱数取得部、不正報告部を備える。
ここで、データ通知受信部は、乱数使用装置から送信されるデータ通知を受信する。
一方、認証側ハッシュ値計算部は、受信されたデータ通知に指定される対象データのハッシュ値を計算する。
さらに、乱数取得部は、受信されたデータ通知に指定される対象データと、受信されたデータ通知に指定される結果データとから、当該所定の規則により、当該対象データに使用された乱数の値のそれぞれのうち、当該使用認証装置から送信された乱数応答に指定されるべき乱数の値を取得する。
そして、不正報告部は、受信された乱数要求に指定されるハッシュ値と認証側ハッシュ値計算部により計算されたハッシュ値とが一致しない、もしくは、乱数発生部により発生された乱数の値と乱数取得部により取得された乱数の値とが一致しない場合、当該乱数の使用に不正があった旨を報告する。
各使用認証装置で対象データに不正がないかを確認するのは、上記発明と同様である。
次に、上記の例でいえば、65536個の項目からなる対象データと、この中から選ばれた使用側結果データとから、使用された16ビットの乱数の値を得る。そして、16ビットの乱数から、自身の乱数認証装置に割り当てられるビット位置の4ビットを抜き出して、この4ビットの乱数が、先に自身が発生された値と一致しない場合に、不正が生じたものとするのである。
本発明によれば、乱数の発生と認証を複数の使用認証装置で分散させることができ、複数人のプレイヤーによってゲームが行われる場合などに、できるだけ作業の偏りが生じないようにして、不正を適切に検出することができるようになる。
また、本発明の乱数処理システムにおいて、当該対象データは、複数の項目の列からなり、当該所定の規則は、当該対象データの複数の項目の列のうち当該乱数の値に対応する位置に配置される項目を、使用結果のデータとするものであるように構成することができる。
上記のように、本発明は、複数のカードをシャッフルする作業とこのカードの山からいずれか1枚を選択する作業は乱数使用装置側で行い、何枚目を選択するかは使用認証装置側に委ねる実施形態に係るものである。
本発明は、上記発明の好適実施形態に係るものであり、本発明によれば、複数の項目からいずれかを選択するために乱数を使用する場合に、乱数の使用の不正があるか否かを適切に判断することができる。
また、本発明の乱数処理システムにおいて、当該対象データは、複数の項目の列からなり、当該所定の規則は、当該対象データの複数の項目の列の順序を当該乱数の値に基づいて入れ換えたものを、使用結果のデータとするものであるように構成することができる。
本発明は、一旦乱数使用装置側でカードをシャッフルした後、使用認証装置側から当該シャッフルの結果の「○○枚目と○○枚目を交換、○○枚目と○○枚目を交換、○○枚目と○○枚目を交換、……」(この交換の指示が、使用認証装置で発生された乱数と適用される規則に基づくものである。)のような指定をさせるものであり、カードの山をゲームの親と子で交替してシャッフルする形態に相当するものである。
本発明は、上記発明の好適実施形態に係るものであり、本発明によれば、複数の項目をランダムに並べ直すために乱数を使用する場合に、乱数の使用の不正があるか否かを適切に判断することができる。
本発明のその他の観点に係る乱数処理方法は、乱数使用装置と、使用認証装置とにより実行され、当該乱数使用装置は、対象データ生成部、使用側ハッシュ値計算部、乱数要求送信部、乱数応答受信部、使用側結果データ生成部、データ通知送信部を有し、当該使用認証装置は、乱数要求受信部、乱数発生部、乱数応答送信部、データ通知受信部、認証側ハッシュ計算部、不正報告部を有し、対象データ生成工程、使用側ハッシュ値計算工程、乱数要求送信工程、乱数要求受信工程、乱数発生工程、乱数応答送信工程、乱数応答受信工程、使用側結果データ生成工程、データ通知送信工程データ通知受信工程、不正報告工程を備え、以下のように構成する。
すなわち、乱数使用装置において、対象データ生成工程では、対象データ生成部が、乱数の使用対象となるデータ(以下「対象データ」という。)を生成し、使用側ハッシュ値計算工程では、使用側ハッシュ値計算部が、乱数の使用対象となるデータ(以下「対象データ」という。)のハッシュ値を計算し、乱数要求送信工程では、乱数要求送信部が、使用側ハッシュ値計算部により計算されたハッシュ値を指定する乱数要求を使用認証装置に送信する。
一方、使用認証装置において、乱数要求受信工程では、乱数要求受信部が、乱数使用装置から送信された乱数要求を受信し、乱数発生工程では、乱数発生部が、受信された乱数要求に応じて乱数を発生させ、乱数応答送信工程では、乱数応答送信部が、発生された乱数の値を指定する乱数応答を乱数使用装置に送信する。
さらに、乱数使用装置において、乱数応答受信工程では、乱数応答受信部が、使用認証装置から送信された乱数応答を受信し、使用側結果データ生成工程では、使用側結果データ生成部が、生成された対象データに対して受信された乱数応答に指定される乱数の値を所定の規則により使用した使用結果のデータ(以下「使用側結果データ」という。)を生成し、データ通知送信工程では、データ通知送信部が、生成された対象データと、生成された使用側結果データと、を指定するデータ通知を使用認証装置に送信する。
そして、使用認証装置において、データ通知受信工程では、データ通知受信部が、乱数使用装置から送信されるデータ通知を受信し、認証側ハッシュ値計算工程では、認証側ハッシュ値計算部が、受信されたデータ通知に指定される対象データのハッシュ値を計算し、不正報告工程では、不正報告部が、受信された乱数要求に指定されるハッシュ値と認証側ハッシュ値計算部により計算されたハッシュ値とが一致しない、もしくは、受信されたデータ通知に指定される使用側結果データと受信されたデータ通知に指定される対象データに対して発生された乱数の値を当該所定の規則により使用したときに生成されるべき使用結果のデータ(以下「認証側結果データ」という。)とが一致しない場合、当該乱数の使用に不正があった旨を報告する。
本発明のその他の観点に係るプログラムは、コンピュータを上記の乱数使用装置もしくは使用認証装置として機能させ、コンピュータに上記の乱数使用装置にて実行される方法もしくは使用認証装置にて実行される方法を実行させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
本発明によれば、乱数を使用する処理に不正がないか否かを認証するのに好適な乱数処理システム、乱数処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
図1は、プログラムを実行することにより、本発明の乱数処理システムの乱数使用装置、ならびに、使用認証装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
情報処理装置100は、CPU(Central Processing Unit)101と、ROM 102と、RAM(Random Access Memory)103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、を備える。
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の表示装置が実現される。
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
インターフェイス104を介して接続されたコントローラ105は、ユーザがレーシングゲームなどのゲーム実行の際に行う操作入力を受け付ける。
インターフェイス104を介して着脱自在に接続された外部メモリ106には、レーシングゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、チャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
図2は、本発明の実施形態に係る乱数処理システムの概要構成を示す説明図である。以下、本図を参照して説明する。
乱数処理システム201は、乱数使用装置231と、使用認証装置251とを有し、両者はインターネット271を介して接続され、相互に通信可能となっている。乱数使用装置231および使用認証装置251は、上記の情報処理装置100において、所定のプログラムを実行することにより、実現される。
なお、本発明は、1台の乱数使用装置231と1台の乱数認証装置251との組合せによって乱数処理システム201が構成される態様と、1台の乱数使用装置231と2台以上の乱数認証装置251との組合せによって乱数処理システム201が構成される態様とがありうるが、まず前者について述べた後、後者については、前者との相異点を中心に説明するものとする。
図3は、本実施形態に係る乱数処理システムにおける乱数使用装置231と使用認証装置251との通信の様子を示すシーケンス図である。以下、本図を参照して説明する。
また、理解を容易にするため、複数の項目からいずれか1つをランダムに選択したい場合を例としてあげて説明する。
まず、乱数使用装置231側で、乱数を使用する対象となる複数の項目を用意する。この複数の項目を「対象データ」と呼ぶ。対象データは、たとえばトランプの山からカードを1枚引く場合に、その山に含まれるカードを(適当な順で)順番に並べたものに相当する。
なお、対象データそのもの、上記の例でいえば、カードの並び順は、1枚カードを引くまでは、使用認証装置251には知らせないものとする。これにより、情報の分散を図る。
一方、対象データそのもの(カードの並び順)について不正がないようにするため、乱数を使用する前に、まず、対象データのハッシュ値を得て、このハッシュ値を指定した乱数要求を、乱数使用装置231から使用認証装置251に送信する(301)。
送信されたハッシュ値は、使用認証装置251で保存される。なお、使用認証装置251で、ハッシュ値から対象データ(カードの並び順)を復元することは極めて困難(事実上不可能)である。保存されたハッシュ値は、後に行う認証処理において利用される。
なお、このハッシュ値を得るにあたっては、チェックサムやCRC(Cyclic Redundancy Check)値、MD5メッセージダイジェストアルゴリズムなどのほか、公開鍵暗号技術等に基づく電子署名・電子暗号技術で利用される各種の技術を適用することができる。
さて、乱数要求を受信した使用認証装置251は、乱数を発生させて、これを指定する乱数応答を乱数使用装置231に送信する(302)。発生される乱数がどんなものであるかは、乱数使用装置251では予想できない。
さらに、乱数使用装置231が乱数応答を受信すると、これに指定される乱数を用いて、複数の項目からいずれかを選択する。
たとえば、複数の項目a[0],a[1],…,a[n-1]のn個であり、使用認証装置251に指定された乱数が0以上n未満の整数mである場合には、乱数を使用することによって、a[m]を選択する、という規則を採用するものとする。この、選択された項目が使用結果を表す「使用側結果データ」になる。
さて、このようにして乱数が使用されたわけであるが、この使用が適正か否かを判断する必要がある。そこで、乱数使用装置231は、対象データ(複数の項目、たとえば、カードの並び順)と、使用側結果データ(選ばれた項目、たとえば、引かれたカード1枚)とを指定するデータ通知を、使用認証装置251に送信する(303)。
使用認証装置251は、データ通知を受信すると、まず、これに指定される対象データのハッシュ値を計算する。
そして、計算の結果得られたハッシュ値が、先に保存したハッシュ値と一致していなければ、不正が生じた旨を報告する。
両者が一致している場合は、データ通知に指定される対象データに、自身が生成した乱数を、乱数使用装置231側と同じ規則を適用して、項目を得る。ここで得られる項目を「認証側結果データ」と呼ぶ。
本来、データ通知に指定される使用側結果データと、ここで得られた認証側結果データとは、一致するはずである。したがって、両者が一致していなければ、不正が生じた旨を報告する。
以下では、乱数使用装置231と、使用認証装置251とについて、さらに詳細に説明する。
図4は、本実施形態に係る乱数使用装置と使用認証装置の概要構成を示す模式図である。以下、本図を参照して説明する。
まず、乱数使用装置231は、対象データ生成部232、使用側ハッシュ値計算部233、乱数要求送信部234、乱数応答受信部235、使用側結果データ生成部236、データ通知送信部237を備える。
一方、使用認証装置251は、乱数要求受信部252、乱数発生部253、乱数応答送信部254、データ通知受信部255、認証側結果データ生成部256、不正報告部257を備える。
図5は、本実施形態に係る乱数使用装置にて実行される乱数使用処理の制御の流れを示すフローチャートである。以下、上記の図と本図を適宜参照しつつ、説明する。
まず、乱数使用装置231において、乱数使用処理が開始される。これは、たとえば、上記のように、ネットワークゲームにおいて、トランプのカードの山から一枚を抜いたり、トランプのカードの山をシャッフルしたり、などの処理が必要になる場合を考慮したものである。
すると、乱数使用装置231の対象データ生成部232は、乱数の使用対象となるデータを生成する(ステップS501)。これが「対象データ」である。この作業は、トランプのカードの(最初の)山を作ることに相当する。
したがって、対象データの生成そのものには乱数使用装置231で発生した乱数を適宜参照して、対象データそのものが使用認証装置251からはわからないようにすることが望ましい。このようにすると、使用認証装置251から見れば、相手方がトランプのカードを伏せたままシャッフルすることに相当する。
上記の情報処理装置100上に乱数使用装置231が実現される場合、生成される対象データは、RAM 103に記憶されるのが典型的であり、対象データの生成では、CPU 101が計算を行うので、CPU 101がRAM 103等と共働して、対象データ生成部232として機能する。
次に、乱数使用装置231の使用側ハッシュ値計算部233は、対象データのハッシュ値を計算する(ステップS502)。この作業は、トランプのカードの(最初の山)の順番をメモして、これを封筒に入れ、封印することに相当する。
生成された対象データは、整数列、バイト列、文字列として見ることも可能である。ハッシュ値(封印の印影に相当する)を得るには、ある程度長いビット長のチェックサムやCRCなどの他、MD5メッセージダイジェストアルゴリズムなど、電子署名処理等で利用されるアルゴリズムを用いることができる。
また、対象データそのものの他、当該対象データのセッション番号(たとえば、トランプの場合には、現在の手番をゲーム開始から数えた番号をセッション番号とすることができる)と対象データとを組み合わせてハッシュ値を計算するなどしても良い。
したがって、CPU 101がRAM 103等と共働して、使用側ハッシュ値計算部233として機能する。
さらに、乱数使用装置231の乱数要求送信部234は、使用側ハッシュ値計算部233により計算されたハッシュ値を指定する乱数要求を使用認証装置251に送信する(ステップS503)。
以下の説明では、乱数要求には、ゲームにおけるセッション番号と、上記のハッシュ値とを指定することとする。上記のようにハッシュ値は封印の印影に相当し、不正が行われていないことを使用認証装置251で後に確認するために用いる。
したがって、CPU 101がRAM 103やNIC 109等と共働して、乱数要求送信部234として機能する。
図6は、本実施形態に係る使用認証装置にて実行される使用認証処理の制御の流れを示すフローチャートである。以下、上記の図と本図を適宜参照しつつ、説明する。
乱数使用装置231から乱数要求が送信されることを契機として、使用認証装置251において使用認証処理が開始される。
まず、本処理が開始されると、使用認証装置251の乱数要求受信部252は、乱数使用装置231から送信された乱数要求を受信する(ステップS601)。
したがって、CPU 101がRAM 103やNIC 109等と共働して、乱数要求受信部252として機能する。
次に、使用認証装置251の乱数発生部253は、乱数を発生させる(ステップS602)。乱数発生の手法としては、線形合同法、M系列やカオス乱数などの、種々の技術を適用することができる。
また、生成される乱数は、所定範囲の整数や浮動小数点数としても良いし、整数列(有効桁数の多い整数と実質的に等価である。)や文字列(整数列と実質的に等価である。)を採用することとしても良い。
したがって、CPU 101が乱数発生部253として機能する。
そして、乱数要求に指定されるセッション番号と、ハッシュ値と、ステップS602で発生させた乱数と、を対応付けて、RAM 103やハードディスク等の外部記憶装置に記憶する(ステップS603)。
さらに、使用認証装置251の乱数応答送信部254は、発生された乱数の値を指定する乱数応答を乱数使用装置231に送信する(ステップS604)。この際に、いずれの乱数要求に呼応するものかを明確にするため、先のセッション番号をさらに乱数応答に指定することとしても良い。
したがって、CPU 101が、乱数応答のパケットが一時的に記憶されるRAM 103やNIC 109と共働して、乱数応答送信部254として機能する。
さて、このようにして、使用認証装置251から乱数応答が送信されると、処理の制御は、再び乱数使用装置231側に移る。
さて、乱数使用装置231において、乱数応答受信部235は、使用認証装置251から送信された乱数応答を受信する(ステップS504)。
したがって、CPU 101が、RAM 103やNIC 109と共働して、乱数応答受信部235として機能する。
ついで、使用側結果データ生成部236は、生成された対象データに対して受信された乱数応答に指定される乱数の値を所定の規則により使用した使用結果のデータを生成する(ステップS505)。これが「使用側結果データ」である。
さて、使用側結果データが生成された後は、適宜この使用側結果データを他の処理で利用等してゲームを進め、ゲームの決着が付いた後で、不正がなかったかどうかを認証するのであるが、これに備えて、セッション番号と、対象データと、使用側結果データと、を対応付けてRAM 103やハードディスクに保存する(ステップS506)。
さて、受信された乱数応答には、使用認証装置251で発生された乱数が指定されている。対象データと、この乱数と、に所定の規則を適用することによって、使用側結果データを生成するのである。
最も単純には、カードの列を表現する対象データから、乱数に指定される数番目のカードを取り出して、これを使用側結果データとする、という規則を適用することが考えられる。このような種々の規則については、後述する。
したがって、CPU 101がRAM 103等と共働して、使用側データ生成部236として機能する。
そして、乱数の使用について不正がなかった旨を使用認証装置251に確認させるため、乱数使用装置231のデータ通知送信部237は、ステップS506でハードディスク等に記憶したセッション番号、対象データ、使用側結果データの組を指定したデータ通知をデータ通知を使用認証装置251に送信する(ステップS507)。
したがって、CPU 101は、RAM 103やハードディスク、NIC 109等と共働して、データ通知送信部237として機能する。
さて、乱数使用装置231からデータ通知が送信されると、制御はまた、使用認証装置251に移る。
まず、使用認証装置251のデータ通知受信部255が、乱数使用装置231から送信されるデータ通知を受信する(ステップS605)。
したがって、CPU 101がRAM 103やNIC 109等を共働して、データ通知受信部255として機能する。
次に、使用認証装置251の認証側結果データ生成部256が、受信されたデータ通知に指定される対象データのハッシュ値を計算する(ステップS606)。すなわち、認証側結果データ生成部256は、認証側ハッシュ値計算部として機能する。
ハッシュ値の計算の手法は、乱数使用装置231と使用認証装置251とで共通のものとしておく。したがって、不正が行われていなければ、ステップS606で計算されるハッシュ値と、ステップS601で受信された乱数要求に指定されたハッシュ値とは、一致するはずである。
そこで、ステップS603において、RAM 103やハードディスクに記憶した情報のうち、受信されたデータ通知に指定されるセッション番号と同じセッション番号に対応付けられて記憶されているハッシュ値と乱数の値とを取得する(ステップS607)。
さらに、ステップS607で取得されたハッシュ値と、ステップS606で計算されたハッシュ値とが、等しいか否かを判断する(ステップS608)。
両者が等しくない場合(ステップS608;No)、使用認証装置251の不正報告部257は、乱数の使用に不正があった旨を報告して(ステップS609)、本処理を終了する。
一方、両者が等しい場合(ステップS608;Yes)、使用認証装置251の認証側結果データ生成部256は、ステップS605にて受信されたデータ通知に指定される対象データに対して、ステップS607にて取得された乱数の値を当該所定の規則により使用して、使用結果のデータを生成する(ステップS610)。これが、「認証側結果データ」である。
なお、対象データとセッション番号とを組み合わせた情報のハッシュ値を利用する場合には、ステップS609においても、同様に両者を組み合わせた情報のハッシュ値を求めるものとする。
対象データに乱数の値を適用する規則は、乱数使用装置231と使用認証装置251とで同じものとしておけば、使用側結果データと認証側結果データとは一致するはずである。
そこで、ステップS605において受信された使用側結果データと、ステップS610において生成された認証側結果データと、が一致するか否かを判断する(ステップS611)。
両者が一致しない場合(ステップS611;No)、ステップS609に進む。
一方、両者が一致する場合(ステップS611;Yes)、使用認証装置251は、乱数使用装置231における当該セッション番号の乱数の使用には不正がなかった旨を報告して(ステップS612)、本処理を終了する。
図7は、本実施形態で使用される各種情報の様子を整理して示す説明図である。以下、本図を参照して説明する。
まず、乱数使用装置231で生成される対象データ701と、そのときのセッション番号702と、をまとめた情報に対するハッシュ値703を計算して、セッション番号702とハッシュ値703をまとめた乱数要求704を生成する。
乱数要求704を受信した使用認証装置251では、乱数を発生させて、発生された乱数705と、セッション番号702とをまとめた乱数応答706を生成する。
乱数応答706を受信した乱数使用装置231では、対象データ701に対して当該乱数705を使用して使用側結果データ707を生成し、セッション番号702、対象データ701、使用側結果データ707をまとめたデータ通知708を生成する。
データ通知708を受信した使用認証装置251では、上記のような処理を行って、認証を行うのである。
このように、本実施形態では、乱数を使用する対象データは乱数使用側で生成させ、乱数を発生させる作業は使用認証装置251側で行って両者に情報を分散させ、対象データのハッシュ値を使用して認証を行うこととしており、乱数を使用する処理に不正がないか否かを適切に認証することができる。
さて、上記の説明では、乱数使用装置231で生成したn個の項目a[0],a[1],…,a[n-1]からなる対象データに対して、使用認証装置251から送信された0以上n未満の整数乱数mを適用して、項目a[m]を結果データとして得る、という規則を利用していた。以下では、この他の種々の規則について説明する。
まず第1には、使用認証装置251から送信された整数乱数mに対して、所定の関数f(・)をあらかじめ適用するものである。すなわち、m mod nは「mをnで割った余り」を表記するものとして、結果データとしてa[f(m) mod n]を採用するものである。
所定の関数f(・)としては、たとえば、以下のようなものが考えられる。
(a)所定の定数を加算もしくは減算するもの。すなわちCを正または負の整数として、f(m) = m + Cを利用する。
(b)所定の定数を乗算するもの。すなわち、整数Kに対して、f(m) = m × Kを利用する。整数Kは、nと素な整数であることが望ましく、典型的には奇数や素数を用いる。
(c)送信された乱数が浮動小数点数xである場合に、これに対する関数として、f(x) = floor(x) (切り捨て)もしくはf(x) = ceil(x) (切上げ)を採用するもの。
(d)上記(a)〜(c)を適宜組み合わせるもの。
このようにカードの山から1枚を抜くのに相当する形態のほか、カードの山そのものをシャッフルするのに相当する形態の規則を、以下で説明する。
最も単純な規則は、n個の項目a[0],a[1],…,a[n-1]からなる対象データに対して、使用認証装置251では、整数列0,1,…,n-1をランダムに並べた順列b[0],b[1],…,b[n-1]を「乱数」として生成し、結果データとしてa[b[0]],a[b[1]],…,a[b[n-1]]を採用する、というものである。この場合、使用認証装置251では、整数列0,1,…,n-1をランダムに並べた順列を得るための種々のアルゴリズムを適用することができる。
このほか、順列b[0],b[1],…,b[n-1]を乱数として返すのではなく、n個の項目a[0],a[1],…,a[n-1]の順序を入れ替えるための「種」を、使用認証装置251が乱数として返す、という手法も考えられる。この「種」を整数mとする。
たとえば、適切な整数定数C,Kを用いた漸化式
c[0] = m;
c[i+1] = K×c[i] + C
により、整数数列c[0],c[1],c[2],…を生成する。
次に、
(0)a[c[0] mod n]とa[c[1] mod n]を交換し、
(1)a[c[2] mod n]とa[c[3] mod n]を交換し、……、
(j)a[c[2×j] mod n]とa[c[2×j+1] mod n]を交換し、……、
(N)a[c[2×N-2] mod n]とa[c[2×N-1] mod n]を交換し、
のように、N回、項目同士の交換を行う。Nは十分に大きな定数であることが望ましいが、Nの値そのものを、使用認証装置251で指定することとしても良い。また、整数数列の先頭に所定の整数(十分に大きな定数)を加算したものをNとして用いることとし、それ以降を1つずつずらして上記のように適用することとしても良い。
上記の漸化式は線形合同法と同様の手法を用いるものであるが、その他、M系列やカオス乱数を得るための漸化式など、種々の漸化式を適用することができる。
これは、乱数使用装置231側でカードをシャッフルした後、使用認証装置251側から当該シャッフルの結果の「○○枚目と○○枚目を交換、○○枚目と○○枚目を交換、○○枚目と○○枚目を交換、……」(この交換の指示が、使用認証装置251で発生された乱数と適用される規則に基づくものである。)のような指定をさせるものであり、カードの山をゲームの親と子で交替してシャッフルする形態に相当するものである。
上記の実施形態では、使用認証装置251自身が生成した乱数を、乱数使用装置231と同じ規則に基づいて、確認済みの対象データに直接適用して、同じ結果が得られるかどうかを調べていた。
本実施形態では、利用する規則に制限を加えるものとして、これとは異なる手法で、認証を行う。
すなわち、当該所定の規則は、対象データと、これに対応する結果データとから、当該対象データに使用された乱数の値のそれぞれを得ることができるように定義された規則を用いるのである。これは、いわゆる関数と逆関数の対応関係にあたるものである。
すなわち、対象データと乱数から結果データを得ることができる一方で、その対象データとその結果データからその乱数を得ることができるような規則を採用するのである。
上記実施例でいえば、対象データa[0],a[1],…,a[n-1]について、任意のi≠jについてa[i]≠a[j]が成立する場合には、結果データa[m]がわかっていれば、これを対象データa[0],a[1],…,a[n-1]のそれぞれに順に対比することによって、容易に乱数mを得ることができる。
そこで、使用側結果データ生成部236にかえて乱数取得部を設けることとし(図示せず)、この乱数取得部は、受信されたデータ通知に指定される対象データと、受信されたデータ通知に指定される使用側結果データとから、当該所定の規則により、当該対象データに使用された乱数の値を取得するようにする。
一方、不正報告部257は、乱数発生部253により発生された乱数の値と乱数取得部により取得された乱数の値とが一致しない場合、当該使用側結果データと当該認証側結果データとが一致しないものとするのである。
上記の実施形態では、使用認証装置251は1台であったが、本実施形態では、使用認証装置251として複数台を用いることとする。
まず、乱数使用装置231と、複数の使用認証装置251のそれぞれと、が通信し合い、上記実施形態と同様に、乱数要求、乱数応答、データ通知の送受を行う。
上記実施形態では、1台の使用認証装置251から送信された乱数応答に指定される乱数mを使用していたが、本実施形態では、複数の使用認証装置251から送信された乱数応答に指定される乱数を用いる。
そこで、P台の使用認証装置251のj (0≦j<P-1)番目のものから、乱数r[j]が得られるものとする。
この乱数r[0],r[1],…,r[P-1]から、上記実施形態における乱数mを生成し、乱数mを一意に乱数r[0],r[1],…,r[P-1]に分解することができるようにする。
そして、対象データと結果データから、適用した乱数が確定できるような規則を選択する。
このように設定すれば、j番目の使用認証装置251では、規則により得られた乱数mを分解して乱数r[j]を得て、これが自身の生成したものと一致するか否かにより、認証を行うことができる。
上記のように、乱数使用装置231では、65536個の項目からなる対象データから1つを選択するため、整数0〜65535の一様乱数が欲しいものとする。使用認証装置251が4台ある場合の規則を考える。上記の一様乱数の値は16ビットで表現できるから、使用認証装置251のそれぞれは、4ビットの乱数を発生させる。
そして、その4ビットの乱数を所定の順序で並べることによって、整数0〜65535の一様乱数を得る。そして、得られた乱数番目の項目を結果データとして利用するのである。
所定の規則は、対象データと、これに対応する結果データとから、当該対象データに使用された乱数の値のそれぞれを得ることができるように定義されている。
そこで、逆規則により得られた乱数値を16ビットのビット列と見て、自身に対応する場所のビット列を得れば、ある使用認証装置251から送信された4ビットの乱数がわかる。
そこで、この4ビットの乱数を調べることで、認証を行うのである。
一般に、j番目の使用認証装置251が、0以上p[j]未満の整数乱数を生じさせる場合、
m = Σj=0 P-1k=0 j-1 p[k]) r[j]
のようにして乱数mを計算すれば、
r[j] = m mod (Πk=0 j p[k])
によって、乱数mを乱数r[0],r[1],…,r[P-1]に一意に分解することができる。
このようにして、各使用認証装置251が、自身の生成した乱数部分について認証を行うことにより、乱数の発生と認証を複数の使用認証装置251で分散させることができ、複数人のプレイヤーによってゲームが行われる場合などに、できるだけ作業の偏りが生じないようにして、不正を適切に検出することができるようになる。
以上説明したように、本発明によれば、乱数を使用する処理に不正がないか否かを認証するのに好適な乱数処理システム201、乱数処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
本発明の乱数処理システムの乱数使用装置ならびに使用認証装置が実現される典型的な情報処理装置の概要構成を示す模式図である。 本発明の実施形態に係る乱数処理システムの概要構成を示す説明図である。 本実施形態に係る乱数処理システムにおける乱数使用装置と使用認証装置との通信の様子を示すシーケンス図である。 本実施形態に係る乱数使用装置と使用認証装置の概要構成を示す模式図である。 本実施形態に係る乱数使用装置にて実行される乱数使用処理の制御の流れを示すフローチャートである。 本実施形態に係る使用認証装置にて実行される使用認証処理の制御の流れを示すフローチャートである。 本実施形態で使用される各種情報の様子を整理して示す説明図である。
符号の説明
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
201 乱数処理システム
231 乱数使用装置
232 対象データ生成部
233 使用側ハッシュ値計算部
234 乱数要求送信部
235 乱数応答受信部
236 使用側結果データ生成部
237 データ通知送信部
251 使用認証装置
252 乱数要求受信部
253 乱数発生部
254 乱数応答送信部
255 データ通知受信部
256 認証側結果データ生成部
257 不正報告部
271 インターネット
701 対象データ
702 セッション番号
703 ハッシュ値
704 乱数要求
705 乱数
706 乱数応答
707 使用側結果データ
708 データ通知

Claims (9)

  1. 乱数の値を使用して複数の項目の列からいずれかの項目を選択する所定の規則により、当該規則を使用した結果のデータ(以下「使用側結果データ」という。)を生成する乱数使用装置と、当該乱数使用装置における当該乱数の使用を認証する使用認証装置とを有する乱数処理システムであって、
    (a)前記乱数使用装置は、
    複数の項目をランダムに並べた列を表現するデータ(以下「対象データ」という。)を生成する対象データ生成部、
    前記生成された対象データのハッシュ値を計算する使用側ハッシュ値計算部、
    前記使用側ハッシュ値計算部により計算されたハッシュ値を指定する乱数要求を前記使用認証装置に送信する乱数要求送信部
    を備え、
    (b)前記使用認証装置は、
    前記乱数使用装置から送信された乱数要求を受信する乱数要求受信部、
    前記受信された乱数要求に応じて乱数を発生させる乱数発生部、
    前記発生された乱数の値を指定する乱数応答を前記乱数使用装置に送信する乱数応答送信部
    を備え、
    (c)前記乱数使用装置は、
    前記使用認証装置から送信された乱数応答を受信する乱数応答受信部、
    前記所定の規則として、前記生成された対象データにより表現される複数の項目の列から前記受信された乱数応答に指定される乱数の値に対応する位置に配置される項目を選択する規則を使用して、前記使用側結果データ生成する使用側結果データ生成部、
    前記生成された対象データと、前記生成された使用側結果データと、を指定するデータ通知を前記使用認証装置に送信するデータ通知送信部
    をさらに備え、
    (d)前記使用認証装置は、
    前記乱数使用装置から送信されるデータ通知を受信するデータ通知受信部、
    前記受信されたデータ通知に指定される対象データのハッシュ値を計算する認証側ハッシュ値計算部、
    前記受信された乱数要求に指定されるハッシュ値と前記認証側ハッシュ値計算部により計算されたハッシュ値とが一致しない場合、もしくは、前記受信されたデータ通知に指定される使用側結果データと、前記発生された乱数の値ならびに前記受信されたデータ通知に指定される対象データに対して、前記乱数使用装置にて使用される所定の規則を使用することにより生成される使用結果のデータ(以下「認証側結果データ」という。)とが一致しない場合、当該乱数の使用に不正があった旨を報告する不正報告部
    をさらに備える
    ことを特徴とする乱数処理システム。
  2. 乱数の値を使用して複数の項目の列をシャッフルする所定の規則により、当該規則を使用した結果のデータ(以下「使用側結果データ」という。)を生成する乱数使用装置と、当該乱数使用装置における当該乱数の使用を認証する使用認証装置とを有する乱数処理システムであって、
    (a)前記乱数使用装置は、
    複数の項目をランダムに並べた列を表現するデータ(以下「対象データ」という。)を生成する対象データ生成部、
    前記生成された対象データのハッシュ値を計算する使用側ハッシュ値計算部、
    前記使用側ハッシュ値計算部により計算されたハッシュ値を指定する乱数要求を前記使用認証装置に送信する乱数要求送信部
    を備え、
    (b)前記使用認証装置は、
    前記乱数使用装置から送信された乱数要求を受信する乱数要求受信部、
    前記受信された乱数要求に応じて乱数を発生させる乱数発生部、
    前記発生された乱数の値を指定する乱数応答を前記乱数使用装置に送信する乱数応答送信部
    を備え、
    (c)前記乱数使用装置は、
    前記使用認証装置から送信された乱数応答を受信する乱数応答受信部、
    前記所定の規則として、前記生成された対象データにより表現される複数の項目の列の順序を前記受信された乱数応答に指定される乱数の値に基づいて入れ換える規則を使用して、前記使用側結果データを生成する使用側結果データ生成部、
    前記生成された対象データと、前記生成された使用側結果データと、を指定するデータ通知を前記使用認証装置に送信するデータ通知送信部
    をさらに備え、
    (d)前記使用認証装置は、
    前記乱数使用装置から送信されるデータ通知を受信するデータ通知受信部、
    前記受信されたデータ通知に指定される対象データのハッシュ値を計算する認証側ハッシュ値計算部、
    前記受信された乱数要求に指定されるハッシュ値と、前記認証側ハッシュ値計算部により計算されたハッシュ値と、が一致しない場合、もしくは、前記受信されたデータ通知に指定される使用側結果データと、前記発生された乱数の値ならびに前記受信されたデータ通知に指定される対象データに対して、前記乱数使用装置にて使用される所定の規則を使用することにより生成される使用結果のデータ(以下「認証側結果データ」という。)と、が一致しない場合、当該乱数の使用に不正があった旨を報告する不正報告部
    をさらに備える
    ことを特徴とする乱数処理システム。
  3. 請求項1または2に記載の乱数処理システムであって、
    前記使用認証装置は、
    前記受信されたデータ通知に指定される対象データに対して前記発生された乱数の値を当該所定の規則により使用した使用結果のデータを生成する認証側結果データ生成部
    をさらに備え、
    前記不正報告部は、前記認証側結果データ生成部により生成される使用結果のデータを、当該認証側結果データとして用いる
    ことを特徴とする乱数処理システム。
  4. 請求項1または2に記載の乱数処理システムであって、
    当該所定の規則は、対象データと、これに対応する結果データとから、当該対象データに使用された乱数の値のそれぞれを得ることができるように定義された規則であり、
    前記使用認証装置は、
    前記受信されたデータ通知に指定される対象データと、前記受信されたデータ通知に指定される使用側結果データとから、当該所定の規則により、当該対象データに使用された乱数の値を取得する乱数取得部
    をさらに備え、
    前記不正報告部は、前記乱数発生部により発生された乱数の値と前記乱数取得部により取得された乱数の値とが一致しない場合、当該使用側結果データと当該認証側結果データとが一致しないものとする
    ことを特徴とする乱数処理システム。
  5. 乱数の値を使用して複数の項目の列からいずれかの項目を選択する所定の規則により、当該規則を使用した結果のデータ(以下「使用側結果データ」という。)を生成する乱数使用装置と、当該乱数使用装置における当該乱数の使用を認証する複数の使用認証装置とを有する乱数処理システムであって、
    (a)前記乱数使用装置は、
    複数の項目をランダムに並べた列を表現するデータ(以下「対象データ」という。)を生成する対象データ生成部、
    前記生成された対象データのハッシュ値を計算する使用側ハッシュ値計算部、
    前記使用側ハッシュ値計算部により計算されたハッシュ値を指定する乱数要求を前記複数の使用認証装置のそれぞれに送信する乱数要求送信部
    を備え、
    (b)前記複数の使用認証装置のそれぞれは、
    前記乱数使用装置から送信された乱数要求を受信する乱数要求受信部、
    前記受信された乱数要求に応じて乱数を発生させる乱数発生部、
    前記発生された乱数の値を指定する乱数応答を前記乱数使用装置に送信する乱数応答送信部
    を備え、
    (c)前記乱数使用装置は、
    前記複数の使用認証装置のそれぞれから送信された乱数応答を受信する乱数応答受信部、
    前記所定の規則として、前記受信された複数の乱数応答のそれぞれに指定される乱数の値のビット列を並べ、当該並べられたビット列に表現される数値を取得し、前記生成された対象データにより表現される複数の項目の列から前記取得された数値に対応する位置に配置される項目を選択する規則を使用して、前記使用側結果データを生成する使用側結果データ生成部、
    前記生成された対象データと、前記生成された使用側結果データと、を指定するデータ通知を前記複数の使用認証装置のそれぞれに送信するデータ通知送信部
    をさらに備え、
    当該所定の規則は、対象データと、これに対応する結果データとから、当該対象データに使用された乱数の値のそれぞれを得ることができるように定義された規則であり、
    (d)前記複数の使用認証装置のそれぞれは、
    前記乱数使用装置から送信されるデータ通知を受信するデータ通知受信部、
    前記受信されたデータ通知に指定される対象データのハッシュ値を計算する認証側ハッシュ値計算部、
    前記受信されたデータ通知に指定される対象データと、前記受信されたデータ通知に指定される使用側結果データとから、当該所定の規則により、当該対象データに使用された乱数の値のそれぞれのうち、当該使用認証装置から送信された乱数応答に指定されるべき乱数の値を取得する乱数取得部、
    前記受信された乱数要求に指定されるハッシュ値と前記認証側ハッシュ値計算部により計算されたハッシュ値とが一致しない、もしくは、前記乱数発生部により発生された乱数の値と前記乱数取得部により取得された乱数の値とが一致しない場合、当該乱数の使用に不正があった旨を報告する不正報告部
    をさらに備える
    ことを特徴とする乱数処理システム。
  6. 乱数の値を使用して複数の項目の列をシャッフルする所定の規則により、当該規則を使用した結果のデータ(以下「使用側結果データ」という。)を生成する乱数使用装置と、当該乱数使用装置における当該乱数の使用を認証する複数の使用認証装置とを有する乱数処理システムであって、
    (a)前記乱数使用装置は、
    複数の項目をランダムに並べた列を表現するデータ(以下「対象データ」という。)を生成する対象データ生成部、
    前記生成された対象データのハッシュ値を計算する使用側ハッシュ値計算部、
    前記使用側ハッシュ値計算部により計算されたハッシュ値を指定する乱数要求を前記複数の使用認証装置のそれぞれに送信する乱数要求送信部
    を備え、
    (b)前記複数の使用認証装置のそれぞれは、
    前記乱数使用装置から送信された乱数要求を受信する乱数要求受信部、
    前記受信された乱数要求に応じて乱数を発生させる乱数発生部、
    前記発生された乱数の値を指定する乱数応答を前記乱数使用装置に送信する乱数応答送信部
    を備え、
    (c)前記乱数使用装置は、
    前記複数の使用認証装置のそれぞれから送信された乱数応答を受信する乱数応答受信部、
    前記所定の規則として、前記受信された複数の乱数応答のそれぞれに指定される乱数の値のビット列を並べ、当該並べられたビット列に表現される数値を取得し、前記生成された対象データにより表現される複数の項目の列の順序を前記取得された数値に基づいて入れ換える規則を使用して、前記使用側結果データを生成する使用側結果データ生成部、
    前記生成された対象データと、前記生成された使用側結果データと、を指定するデータ通知を前記複数の使用認証装置のそれぞれに送信するデータ通知送信部
    をさらに備え、
    当該所定の規則は、対象データと、これに対応する結果データとから、当該対象データに使用された乱数の値のそれぞれを得ることができるように定義された規則であり、
    (d)前記複数の使用認証装置のそれぞれは、
    前記乱数使用装置から送信されるデータ通知を受信するデータ通知受信部、
    前記受信されたデータ通知に指定される対象データのハッシュ値を計算する認証側ハッシュ値計算部、
    前記受信されたデータ通知に指定される対象データと、前記受信されたデータ通知に指定される使用側結果データとから、当該所定の規則により、当該対象データに使用された乱数の値のそれぞれのうち、当該使用認証装置から送信された乱数応答に指定されるべき乱数の値を取得する乱数取得部、
    前記受信された乱数要求に指定されるハッシュ値と前記認証側ハッシュ値計算部により計算されたハッシュ値とが一致しない、もしくは、前記乱数発生部により発生された乱数の値と前記乱数取得部により取得された乱数の値とが一致しない場合、当該乱数の使用に不正があった旨を報告する不正報告部
    をさらに備える
    ことを特徴とする乱数処理システム。
  7. 乱数の値を使用して複数の項目の列からいずれかの項目を選択し、もしくは、複数の項目の列をシャッフルする所定の規則により、当該規則を使用した結果のデータ(以下「使用側結果データ」という。)を生成する乱数使用装置と、当該乱数使用装置における当該乱数の使用を認証する使用認証装置とにより実行される乱数処理方法であって、当該乱数使用装置は、対象データ生成部、使用側ハッシュ値計算部、乱数要求送信部、乱数応答受信部、使用側結果データ生成部、データ通知送信部を備え、当該使用認証装置は、乱数要求受信部、乱数発生部、乱数応答送信部、データ通知受信部、認証側ハッシュ値計算部、不正報告部を備え、
    (a)前記乱数使用装置において、
    前記対象データ生成部が、複数の項目をランダムに並べた列を表現するデータ(以下「対象データ」という。)を生成する対象データ生成工程、
    前記使用側ハッシュ値計算部が、前記生成された対象データのハッシュ値を計算する使用側ハッシュ値計算工程、
    前記乱数要求送信部が、前記使用側ハッシュ値計算部により計算されたハッシュ値を指定する乱数要求を前記使用認証装置に送信する乱数要求送信工程
    を備え、
    (b)前記使用認証装置において、
    前記乱数要求受信部が、前記乱数使用装置から送信された乱数要求を受信する乱数要求受信工程、
    前記乱数発生部が、前記受信された乱数要求に応じて乱数を発生させる乱数発生工程、
    前記乱数応答送信部が、前記発生された乱数の値を指定する乱数応答を前記乱数使用装置に送信する乱数応答送信工程
    をさらに備え、
    (c)前記乱数使用装置において、
    前記乱数応答受信部が、前記使用認証装置から送信された乱数応答を受信する乱数応答受信工程、
    前記使用側結果データ生成部が、前記所定の規則として、前記生成された対象データにより表現される複数の項目の列から前記受信された乱数応答に指定される乱数の値に対応する位置に配置される項目を選択する規則、もしくは、前記生成された対象データにより表現される複数の項目の順序を前記受信された乱数応答に指定される乱数の値に基づいて入れ換える規則を使用して、前記使用側結果データ生成する使用側結果データ生成工程、
    前記データ通知送信部が、前記生成された対象データと、前記生成された使用側結果データと、を指定するデータ通知を前記使用認証装置に送信するデータ通知送信工程
    をさらに備え、
    (d)前記使用認証装置において、
    前記データ通知受信部が、前記乱数使用装置から送信されるデータ通知を受信するデータ通知受信工程、
    前記認証側ハッシュ値計算部が、前記受信されたデータ通知に指定される対象データのハッシュ値を計算する認証側ハッシュ値計算工程、
    前記不正報告部が、前記受信された乱数要求に指定されるハッシュ値と前記認証側ハッシュ値計算部により計算されたハッシュ値とが一致しない場合、もしくは、前記受信されたデータ通知に指定される使用側結果データと、前記発生された乱数の値ならびに前記受信されたデータ通知に指定される対象データに対して、前記乱数使用装置にて使用される所定の規則を使用することにより生成される使用結果のデータ(以下「認証側結果データ」という。)とが一致しない場合、当該乱数の使用に不正があった旨を報告する不正報告工程
    をさらに備える
    ことを特徴とする乱数処理方法。
  8. コンピュータを、乱数の値を使用して複数の項目の列からいずれかの項目を選択し、もしくは、複数の項目の列をシャッフルする所定の規則により、当該規則を使用した結果のデータ(以下「使用側結果データ」という。)を生成する乱数使用装置であって、当該乱数の使用が使用認証装置によって認証される乱数使用装置として機能させるプログラムであって、
    当該プログラムは、当該コンピュータを、
    複数の項目をランダムに並べた列を表現するデータ(以下「対象データ」という。)を生成する対象データ生成部、
    前記生成された対象データのハッシュ値を計算する使用側ハッシュ値計算部、
    前記使用側ハッシュ値計算部により計算されたハッシュ値を指定する乱数要求を前記使用認証装置に送信する乱数要求送信部、
    前記使用認証装置から送信された乱数応答を受信する乱数応答受信部、
    前記所定の規則として、前記生成された対象データにより表現される複数の項目の列から前記受信された乱数応答に指定される乱数の値に対応する位置に配置される項目を選択する規則、もしくは、前記生成された対象データにより表現される複数の項目の順序を前記受信された乱数応答に指定される乱数の値に基づいて入れ換える規則を使用して、前記使用側結果データ生成する使用側結果データ生成部、
    前記生成された対象データと、前記生成された使用側結果データと、を指定するデータ通知を前記使用認証装置に送信するデータ通知送信部
    として機能させることを特徴とするプログラム。
  9. コンピュータを、乱数の値を使用して複数の項目の列からいずれかの項目を選択し、もしくは、複数の項目の列をシャッフルする所定の規則により、当該規則を使用した結果のデータ(以下「使用側結果データ」という。)を生成する乱数使用装置における乱数の使用を認証する使用認証装置として機能させるプログラムであって、
    前記乱数使用装置は、前記所定の規則として、複数の項目の列から乱数の値に対応する位置に配置される項目を選択する規則、もしくは、複数の項目の列の順序を乱数の値に基づいて入れ換える規則を使用し、
    当該プログラムは、当該コンピュータを、
    前記乱数使用装置から送信された乱数要求を受信する乱数要求受信部、
    前記受信された乱数要求に応じて乱数を発生させる乱数発生部、
    前記発生された乱数の値を指定する乱数応答を前記乱数使用装置に送信する乱数応答送信部、
    前記乱数使用装置から送信され、複数の項目の列を表現する対象データを指定するデータ通知を受信するデータ通知受信部、
    前記受信されたデータ通知に指定される対象データのハッシュ値を計算する認証側ハッシュ値計算部、
    前記受信された乱数要求に指定されるハッシュ値と前記認証側ハッシュ値計算部により計算されたハッシュ値とが一致しない場合、もしくは、前記受信されたデータ通知に指定される使用側結果データと、前記発生された乱数の値ならびに前記受信されたデータ通知に指定される対象データに対して、前記乱数使用装置にて使用される所定の規則を使用することにより生成される使用結果のデータ(以下「認証側結果データ」という。)とが一致しない場合、当該乱数の使用に不正があった旨を報告する不正報告部
    として機能させることを特徴とするプログラム。
JP2005095597A 2005-03-29 2005-03-29 乱数処理システム、乱数処理方法、ならびに、プログラム Active JP4597738B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005095597A JP4597738B2 (ja) 2005-03-29 2005-03-29 乱数処理システム、乱数処理方法、ならびに、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005095597A JP4597738B2 (ja) 2005-03-29 2005-03-29 乱数処理システム、乱数処理方法、ならびに、プログラム

Publications (2)

Publication Number Publication Date
JP2006279542A JP2006279542A (ja) 2006-10-12
JP4597738B2 true JP4597738B2 (ja) 2010-12-15

Family

ID=37213816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005095597A Active JP4597738B2 (ja) 2005-03-29 2005-03-29 乱数処理システム、乱数処理方法、ならびに、プログラム

Country Status (1)

Country Link
JP (1) JP4597738B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8230035B2 (en) * 2007-10-04 2012-07-24 Alcatel Lucent Method for authenticating mobile units attached to a femtocell that operates according to code division multiple access

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322253A (ja) * 1999-05-14 2000-11-24 Namco Ltd セキュリティ・システム
JP2001162004A (ja) * 1999-12-14 2001-06-19 Samii Kk 遊技機の検証方法並びに遊技機及び検証装置
JP2003101530A (ja) * 2001-09-20 2003-04-04 Ntt Data Corp 認証システム及び狭域無線通信による移動体認証システム
JP2004041539A (ja) * 2002-07-15 2004-02-12 Fdk Corp 確率発生装置の検証方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322253A (ja) * 1999-05-14 2000-11-24 Namco Ltd セキュリティ・システム
JP2001162004A (ja) * 1999-12-14 2001-06-19 Samii Kk 遊技機の検証方法並びに遊技機及び検証装置
JP2003101530A (ja) * 2001-09-20 2003-04-04 Ntt Data Corp 認証システム及び狭域無線通信による移動体認証システム
JP2004041539A (ja) * 2002-07-15 2004-02-12 Fdk Corp 確率発生装置の検証方法

Also Published As

Publication number Publication date
JP2006279542A (ja) 2006-10-12

Similar Documents

Publication Publication Date Title
Swenson Modern cryptanalysis: techniques for advanced code breaking
Burdges et al. Delay encryption
Klima et al. Cryptology: classical and modern
US7822987B2 (en) Data card verification system
US8862879B2 (en) Method and apparatus for efficient and secure creating, transferring, and revealing of messages over a network
Holden The mathematics of secrets: cryptography from caesar ciphers to digital encryption
JP3963927B1 (ja) ゲームシステム、ゲーム制御方法、ならびに、プログラム
US20110087885A1 (en) Method and apparatus for efficient and secure creating, transferring, and revealing of messages over a network
Biehl et al. Protocols for collusion-secure asymmetric fingerprinting
US8886940B2 (en) Hash function using a card shuffling process
Manabe et al. Card-based cryptographic protocols with malicious players using private operations
JP4597738B2 (ja) 乱数処理システム、乱数処理方法、ならびに、プログラム
JP4588751B2 (ja) 記憶処理装置、記憶処理方法、ならびに、プログラム
Gossner Repeated games played by cryptographically sophisticated players
Jarecki Efficient threshold cryptosystems.
JP3748847B2 (ja) 格納装置、プログラム、ならびに、格納方法
JP5519600B2 (ja) ゲーム端末、ゲームシステム、ならびに、プログラム
Pittman et al. Cheat-proof peer-to-peer trading card games
Déchene Generalized Jacobians in cryptography
Stamer Efficient electronic gambling: an extended implementation of the toolbox for mental card games
JP5654515B2 (ja) システム
Yeh Secure and verifiable P2P card games
JP5624075B2 (ja) システム、ならびに、端末装置
Zhao et al. Efficient TTP-free mental poker protocols
Putra et al. Enigma on the Board: Chess-Based Steganography for Secure Communication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100310

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: 20100921

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100922

R150 Certificate of patent or registration of utility model

Ref document number: 4597738

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250