(57)【要約】【課題】  ネットワーク型コンピュータゲームにおいて、ＩＣカード等のパーソナル演算装置を使って安全なデータ生成・管理・交換を行う。【解決手段】  自プレイヤーが利用する端末装置と、自端末装置に接続されるＩＣカード等のパーソナル演算装置と、他プレイヤーが利用する１台以上の他端末装置があり、自端末装置と他端末装置がネットワークを構成しているネットワーク型コンピュータゲームシステムにおいて、自プレイヤー情報の変更を伴う特定の処理の場面に際し、自端末装置はパーソナル演算装置にデータ生成を要求し、パーソナル演算装置は要求に応じてデータと電子署名を生成して自端末装置に送信し、自端末装置は他端末装置にデータと電子署名を送信する。【選択図】  図１
2006101956.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して複数の端末装置によりゲームを行うコンピュータゲームシステムにおいて、
前記複数の端末装置に含まれる第1の端末装置が、前記ゲームにおける自プレイヤーに関する自プレイヤー情報を生成する手段と、生成された自プレイヤー情報に対して電子署名を施す手段とを有し、
前記電子署名に基づいて、前記ゲームを少なくとも前記第1の端末装置および前記複数の端末装置に含まれる第２の端末装置の間で実現することを特徴とするコンピュータゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータネットワークシステム上のデータの安全な管理方法に関する。その中でも特に、ネットワーク型コンピュータゲーム等のネットワークシステムに関する。
【背景技術】
【０００２】
近年、ネットワークのブロードバンド化に伴い、安価かつ高速なネットワークが多くの家庭で手軽に利用できるようになってきている。それに伴い、ネットワーク接続を前提としたオンラインコンピュータゲームが多く開発され、人気を集めている。
【０００３】
オンラインコンピュータゲームは、実施の形態からいくつかの種類に分類ができるが、典型的なものの1つが、MMORPG（Massively Multiplayer Online Role Playing Game）に代表される、多くのプレイヤーがネットワークで接続され同時にゲームに参加できるタイプものである。むろん、2人から数人規模で構成される、非常に小規模なネットワークゲームも存在し、ゲームの種類や実施方法等は様々である。
【０００４】
特許文献1では、カードを用いてゲームを行うカードゲームシステムに関し、特にカードにデータを記憶し、そのデータを用いてパソコンやゲーム装置などを用いてゲームを行うことのできるカードゲームシステムについて述べられている。パソコンやゲーム装置を複数用いて、ネットワークを構成することができる。
【０００５】
【特許文献１】特許第3228216号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、端末装置にプレイヤー情報を格納したカードを接続し、該カードに対してデータを電子的に書き込み及び読み出しをする方式では、不正なプレイヤーによってゲーム開発者が意図しないデータをゲームに使用される脆弱性を持つ。
【０００７】
特に、プレイヤー情報が個々の端末システムに分散されたままネットワークを形成するコンピュータゲーム等の場合、自らのプレイヤー情報を不正に書き換えるプレイヤーの登場する可能性が高い。このような不正なプレイヤー情報の書き換え行為は「チート（cheat）」と呼ばれ、ゲーム開発者が意図したゲームバランスを大きく崩してしまう危険性を伴う。
【０００８】
今まで様々なゲームプログラムに対してなされてきたチート行為の傾向として、ゲームプログラムの実行オブジェクトそのものがリバースエンジニアリングの対象となり、不正な書き換えが行われるケースが往々にして見受けられる。
【０００９】
もし、ゲームプログラムそのものに不正な書き換えがなされた場合、特許文献1に述べられている技術では、チート行為に対抗しえない。
【課題を解決するための手段】
【００１０】
本発明は、上記の目的を達成するために、プレイヤーがそれぞれ自端末装置にICカード等のパーソナル演算装置を接続し、特定のデータの生成を前記パーソナル演算装置に依頼し、前記パーソナル演算装置はデータを生成し電子署名を付けて端末装置に返却するネットワーク型コンピュータゲームシステムに関するものである。
【００１１】
そのために、例えば、自プレイヤーが利用する自端末装置と、前記自プレイヤーが利用するパーソナル演算装置と、  他プレイヤーが利用する1台以上の他端末装置から構成され、前記自端末装置は前記パーソナル演算装置と通信を行う機能を有し、前記パーソナル演算装置は前記自プレイヤーに係る特定の自プレイヤー情報の生成を行う機能を有し、前記パーソナル演算装置は特定の情報に対して電子署名を導出する機能を有し、  前記自端末装置及び他端末装置はいずれも特定のネットワーク型コンピュータゲームシステムへの参加機能を有し、前記自プレイヤー及び1人以上の前記他プレイヤーが同時に参加可能なネットワーク型コンピュータゲームシステムにおいて、自パーソナル演算装置が前記自プレイヤー情報の生成を行い、自パーソナル演算装置が前記自プレイヤー情報に関する電子署名を導出し、自パーソナル演算装置は前記自端末装置に前記自プレイヤー情報及び前記電子署名を送出し、自端末装置は他端末装置へ前記情報及び前記電子署名を送出する方法がある。
【発明の効果】
【００１２】
本発明の発明の効果として、主にコンピュータゲームに係り、端末システムのデータを安全に生成・管理・交換が可能なネットワークシステムを実現できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を実施するための最良の形態について、図面を用いて説明する。
特に本実施例では、プレイヤーAとプレイヤーBの2名が同時に同じコンピュータゲームにログインするシステムで説明を行うが、本発明はプレイヤーの人数を制限したり、プレイヤーを固定化するものではなく、柔軟にプレイヤーの増減や入れ替えを行うことができる。
【００１４】
なお、本明細書が言うところの「コンピュータゲーム」とは、特定の実施形態を指すものではなく、パソコン等の汎用的なコンピュータに特定のソフトウェアを動作させるもの、専用装置上でソフトウェアを動作させるもの、家電機器や携帯電話・通信機器等にゲーム機能を付加したもの、主に商業施設や遊戯施設や賭博場等に設置される専用のハードウェアを使った実施形態が考えられる。
【００１５】
また、本明細書が言うところの「コンピュータゲーム」とは、一般にはアミューズメント性の高いコンピュータソフトウェアを指し示すが、本発明の有効性は、必ずしもソフトウェアのアミューズメント性の多少に関わるものではないため、コンピュータソフトウェア全般について本発明を適用することも容易に可能である。
【００１６】
図1は、本発明の実施形態の一つであるコンピュータゲームネットワークのシステム概要図である。
【００１７】
コンピュータゲームネットワークは、プレイヤーAが利用するプレイヤーA端末システム100と、プレイヤーBが利用するプレイヤーB端末システム200と、端末情報管理システム300とが、ネットワーク400にて互いに続されることで構成されている。
【００１８】
なお、プレイヤーの端末システムについて、本実施例では、プレイヤーA端末システム100とプレイヤーBが利用するプレイヤーB端末システム200の計2システムとしているが、本発明は、ネットワーク400に接続されるシステムの数量の限定をするものではない。端末情報管理システム300についても、システムの具体的な構成方法について制約を受けるものではなく、場合によっては複数としたり不要としたりすることもできる。
【００１９】
プレイヤーA端末システム100は、端末装置110と、端末装置110に接続されたICカード読み取り装置120、ならびにICカード読み取り装置120に接続されたICカード演算装置130から構成されている。
【００２０】
プレイヤーB端末システム200は、端末装置210と、端末装置210に接続されたICカード読み取り装置220、ならびにICカード読み取り装置220に接続されたICカード演算装置230から構成されている。
【００２１】
ICカード演算装置130は、パーソナル演算装置の一種であり、演算機能を備えていて、かつ端末装置に接続できるものなら、ICカード以外にも適合するものがある。例えば、他のパーソナル演算装置の例として、PCカード、メモリカード、フラッシュディスク、有線通信や無線通信等を使って端末装置に接続する小型のトークン、携帯電話、携帯型の小型コンピュータなどが適合する。また、プレイヤー情報等を管理するソフトウェアやオンライン上のサービスを、仮想的なハードウェアと見なして、本発明の実施形態であるコンピュータゲームネットワークを構築することもできる。端末装置110、ICカード読み取り装置120、ICカード演算装置130の区分がハードウェア・ソフトウェア的に不明瞭になり、ハードウェアの物理的な省略もしくは増設の行われることも想定できるが、本発明はそのような多様な実施形態にもよく適合する。
【００２２】
また、ICカード演算装置230に関しては、以上に加えて、設置そのものを省略することも可能である。ICカード演算装置230が省略された場合、ICカード読み取り装置220も不要となる。
【００２３】
本発明において、ICカード演算装置130及びICカード演算装置230は、必ずしも、特定のプログラムもしくはバージョンの専用装置として用意される必要はない。1つのICカード演算装置130、もしくは1つのICカード演算装置230を、それぞれ、複数の種類のゲームプログラムもしくはバージョンで共用する実施も好適である。
【００２４】
プレイヤーA端末システム100とプレイヤーB端末システム200と端末情報管理システム300は、ネットワーク400によって接続されている。
【００２５】
本発明においては、ネットワーク400の実装について、特定の実施形態や通信プロトコル等の技術基盤を限定する必要はない。インターネットやイーサネットをはじめ、ある種の物理的あるいは論理的な公衆回線あるいは専用回線、当該端末間を有線あるいは無線で接続する方法、ないしは通信キャリア等が用意している各種のネットワークサービスを使用する方法等、様々な方式に本発明は適合する。
【００２６】
図2は、ICカード演算装置130が備える情報及び機能を示している。
なお、ICカード演算装置230については、様々な実施の形態の適用が可能であるが、例えば、ICカード演算装置130と同様の情報及び機能を備える実施とすることもできる。
【００２７】
端末装置認証鍵131は、ICカード演算装置130が、端末認証手段135を用いて、端末装置110やICカード読み取り装置120を認証するための認証情報である。端末装置認証鍵131として、ある固定の文字列（例えばパスワードや暗証番号など）あるいは公開鍵暗号あるいは共通鍵暗号を行うための鍵などが妥当するが、それ以外の認証手段を使用することも可能である。実施によっては、端末装置認証鍵131及び端末認証手段135は、別の方式に代替もしくは省略されることもある。
【００２８】
秘密鍵132は、署名手段137が特定のデータに対して暗号演算を行うときに用いる暗号鍵である。秘密鍵132として、公開鍵暗号方式における秘密鍵を用いる実施が好ましいが、運用によっては公開鍵暗号方式における公開鍵を使用することも可能であるし、署名手段137のロジックによっては、例えば共通鍵暗号方式の鍵を使用することもできる。また、署名手段137が特定のアルゴリズムのもとで数値変換処理を行うものであるとき、鍵に相当する情報を前記アルゴリズムに内包する実施も可能であり、その場合、秘密鍵132は省略されることもある。
【００２９】
公開鍵証明書133は、署名手段137の行った演算の結果が正しいことを電子的に証明するための認証情報である。例えば、署名手段137が公開鍵暗号方式を採用する場合、公開鍵証明書133にはX.509に基づく公開鍵証明書を使用する実施が好適であるが、例えばICカードにおいてよく使用される拡張ヘッダリスト型式も含め、様々な実施が可能である。また、公開鍵証明書133の含むべき情報についても、本発明は種々の実施方法が可能である。例えば、署名手段137の方式や、公開鍵証明書133の配布形態によって、公開鍵証明書133は省略ないしは大幅な簡素化を行うことも可能である。
【００３０】
プレイヤー情報134は、ICカード演算装置130を管理するプレイヤーに属する情報である。主にプレイヤー自身に関する情報と、該プレイヤーの保有するゲーム上のキャラクタやアイテムの情報、該プレイヤーによるゲームの進捗状況を示す情報などから構成される。ただし、本発明はプレイヤー情報134の内容に関して、何らかの制限を設けるものではない。
【００３１】
端末認証手段135は、ICカード演算装置130が、端末装置認証鍵131を用いて、端末装置110やICカード読み取り装置120を認証するための認証手段である。
【００３２】
プレイヤー情報生成手段136は、プレイヤー情報134の一部あるいは全部を生成することができる。プレイヤー情報生成にあたっては、原則として、ICカード読み取り装置120から受信するコマンドの内容に従って、一定の規則性あるいは偶然性のもとで演算を行う。
【００３３】
署名手段137は、特定のデータに対して電子署名を行うことができる。電子署名の方法としては様々な技術が公知であり、本発明は署名手段137の実装に制限を受けるものではない。例えば、特定のデータに対して一方向関数で演算を行ってハッシュ結果値を導出し、前記ハッシュ結果値に対して所定のパディングを付与したパディング結果値を導出し、前記パディング結果値に対して秘密鍵132を暗号鍵として暗号演算を行い結果値を導出する実施などが好適である。
【００３４】
署名手段137が、電子署名処理を行うにあたり、何らかの認証成功を前提条件としてもよい。例えば、端末認証手段135による認証などが適用可能である。
【００３５】
格納情報変更手段138は、ICカード演算装置130が格納する情報の一部あるいは全部を変更する機能である。
【００３６】
格納情報参照手段139は、ICカード演算装置130が格納する情報の一部あるいは全部を参照する機能である。
【００３７】
格納情報変更手段138及び格納情報参照手段139がICカード演算装置130の情報の情報を変更あるいは参照するにあたり、何らかの認証成功を前提条件としてもよい。例えば、端末認証手段135による認証などが適用可能である。
【００３８】
図3は、端末情報管理システム300を構成するサーバ装置310の保持するテーブルの例である。該テーブルは、例えば、項番311、プレイヤー名312、ネットワークアドレス313、実行中のプログラム名314、状態315から構成される。
【００３９】
項番311は、レコードの主キーとなり、レコードごとに一意になるよう特定の規則に基づいて付与された記号である。
【００４０】
プレイヤー名312は、プレイヤーの名前である。ここで言う名前とは、必ずしもプレイヤー自身の本名である必要はなく、一般に「ハンドル」と呼ばれるネットワーク上のニックネーム等であってもよい。
【００４１】
ネットワークアドレス313は、プレイヤーの端末のネットワークアドレスを保持している。例えば、ネットワーク400としてインターネットが使用される場合、ネットワークアドレス313として、プレイヤーの端末のIPアドレスやホスト名を使用する実施が可能である。
【００４２】
実行中のプログラム名314は、プレイヤーの端末システム上で動作しているアプリケーションの識別記号である。
【００４３】
状態315は、プレイヤーの他プレイヤーに対するゲーム参加要求の状態を示している。例えば、他のプレイヤーからのゲーム参加要求を受け付けられる状態であるとか、逆に、他のプレイヤーへゲーム参加要求を出している状態であるとか、すでにゲームに参加している状態であることを示す。
【００４４】
図4は、プレイヤーA端末装システム100における端末装置110が、ICカード読み取り装置120を経由して、ICカード演算装置130へ送信するコマンドのデータ構造の例である。
【００４５】
このデータ構造の具体的なエンコード方式として、例えばTLV（タグ・長さ・値）型式で複数のデータ項目を配置し、それをISO/IEC 7816シリーズで規定されるコマンドAPDUのフォーマットにして伝送させてもよい。複数回のコマンドとして、端末装置100がICカード演算装置130へデータを分割送信する実施も好適である。
【００４６】
該データ構造は、例えば、管理番号141、ゲーム名142、コマンド種別143、付帯情報144、端末装置認証鍵145から構成される。
【００４７】
管理番号141は、セッション等を管理するためにプレイヤーA端末システム100が管理している番号であり、単純な連続的な番号であってもよいし、システムのタイマ情報や乱数などを使用する実施も可能である。
【００４８】
ゲーム名142は、ICカード演算装置130が端末装置110上で動作しているソフトウェアを識別するための記号である。
【００４９】
コマンド種別143は、ICカード演算装置130が端末装置110から要求される動作を示す記号である。例えば、コマンド種別143には、ICカード演算装置130上のプレイヤー情報134を参照して端末装置110に返却する処理要求や、あるいは、ICカード演算装置130上のプレイヤー情報134にある種の変化を起こす処理要求などが記載されることがある。
【００５０】
付帯情報144は、コマンド種別143に従ってICカード演算装置130が演算処理を行う場合に必要となる付加的な情報である。例えば、コマンド種別143にプレイヤー情報134の変更を伴う処理を要求する記述があった場合、具体的にどのような変化をどのような確率や演算式あるいは法則性のもとに行えばいいのか、というような情報を記述し、ICカード演算装置130が演算の根拠とさせることが可能である。
【００５１】
端末装置認証情報145は、端末認証手段135が端末装置100を認証するために用いる認証情報である。
【００５２】
図5は、ICカード演算装置130が保持するプレイヤー情報134のデータ構造の例である。プレイヤー情報134は、例えば、キャラクタ1用テーブル151、キャラクタ2用テーブル152……というように、複数のキャラクタ用テーブルを格納する実施も可能である。むろん、単一でもかまわないし、まったくデータが格納されていないという実施もありえる。
【００５３】
複数のキャラクタ用テーブルが存在する場合、それぞれのテーブルに関して、対応するソフトウェアに応じた別々のデータ形式を取ることもできる。
【００５４】
図6は、ICカード演算装置130が端末装置110に対して送信するコマンドのデータ構造の例である。該コマンドは、図4に挙げた、端末装置110のICカード演算装置130に対する要求の応答であってもよい。また、該コマンドは複数回に分割送信されてもよい。
【００５５】
該コマンドは、例えば、テーブル161と、電子署名162から構成されている。テーブル161は、ICカード演算装置130が端末装置110に対して送信するコマンド本来の内容であり、例えばプレイヤー情報生成手段136が生成したプレイヤー情報134の一部あるいは全部であってもよい。
【００５６】
電子署名162はテーブル161が確実にICカード演算装置130によって生成されその後不正な改竄が行われていないことを証明する認証情報である。一般には、ICカード演算装置130の具備する署名手段137が行う処理であって、テーブル161の内容の一部あるいは全部に対する一方向関数の結果値（ハッシュ結果値）を導出し、そのハッシュ結果値に対して特定のデータをパディングし、秘密鍵132を用いて暗号演算した値が好適である。
【００５７】
図7は、本発明におけるコンピュータゲームネットワークの一連の処理の流れの例を示したものである。
【００５８】
まず、プレイヤーAの端末装置110とプレイヤーBの端末装置210の双方において、同一か、もしくは互換性のあるコンピュータゲームが起動しているものとする。また、端末装置110と端末装置210は互いに、端末情報管理システム300を参照するなどして、互いのネットワーク上のアドレスを取得しているものとする。
【００５９】
ステップ10とステップ11にて、プレイヤーAの端末装置110とプレイヤーBの端末装置210はネットワーク400経由で接続し、セッションが確立する。
【００６０】
本発明では、このときのセッションの確立の実施方法として制限を加えるものではないが、例えばTCPを使ったコネクション型接続であって、アプリケーション層のメッセージの方式は端末装置110及び端末装置210で動作するソフトウェアが独自に定めるような方式が好適である。
【００６１】
ステップ12で、重要なプレイヤー情報変更処理が開始される。一般的に、コンピュータゲームの多くは、動作時間中にプレイヤー情報の変更が頻繁に発生する。本発明の方式において、逐一ICカード演算装置130に処理を要求するような実施も可能ではあるが、ICカード演算装置130への処理要求はコンピュータゲームの性能や操作性の低下を惹起する場合があり、コンピュータゲーム開発者あるいはプレイヤーの判断等に従って、特定の重要なプレイヤー情報の変更のみにICカード演算装置130に処理を要求する実施も好適である。
【００６２】
ステップ13で、端末装置110はICカード読み取り装置120を経由してICカード演算装置130に対して、プレイヤー情報の生成を要求する。このときに送受信されるデータ構造として、図4に挙げたものを使用することもできる。
【００６３】
ステップ14で、端末認証を行う。例えば、ICカード演算装置130が、端末装置認証情報145を受信し、端末装置認証鍵131を暗号演算に用いる鍵と見なして、端末認証手段135が暗号演算を行い結果を確認する方式が適合する。もしここで認証に失敗した場合、ICカード演算装置130は端末装置110にエラーを応答してもよい。
【００６４】
ステップ15で、ステップ13で送信されてきたプレイヤー情報生成要求に基づき、ICカード演算装置130は、プレイヤー情報生成手段136を用いてプレイヤー情報134の一部あるいは全部を生成する。
【００６５】
ステップ16で、プレイヤー情報134の一部あるいは全部であるテーブル161に関し、ICカード演算装置130は、秘密鍵132と署名手段137を用いて、電子署名162を導出する。
【００６６】
ステップ17で、ICカード演算装置130は、ICカード読み取り装置120を経由して、テーブル161と電子署名162を端末装置110に送信し、端末装置110は端末装置210へ送信する。
【００６７】
ステップ18で、端末装置110は、ICカード読み取り装置120を経由して、ICカード演算装置130へ公開鍵証明書133を要求する。
【００６８】
ステップ19で、ICカード演算装置130は、格納情報参照手段139を使用して公開鍵証明書133を参照する。
【００６９】
ステップ20で、ICカード演算装置130は、ICカード読み取り装置120を経由して、公開鍵証明書133を端末装置110へ送信し、端末装置110は公開鍵証明書133を端末装置120へ送信する。このとき、ICカード演算装置130は端末装置110に対して、公開鍵証明書133を複数回に渡って分割送信することもできる。
【００７０】
ただし公開鍵証明書133の更新頻度が高くない実施も可能であるため、例えば、別のタイミングや方法で端末装置210は公開鍵証明書133を獲得し、端末装置210は公開鍵証明書133をキャッシュ等に保存しておき、端末装置210はキャッシュを参照することでステップ18からステップ20に至る処理を省略する実施も可能である。
【００７１】
ステップ21で、端末装置210は、端末装置110より受信したテーブル161と電子署名162と公開鍵証明書133を用いて、正当性を確認する。
【００７２】
該正当性の確認には、すでに公知となっている様々な技術の適用が好適し、例えば、まず電子証明書の正当性を確認し、公開鍵証明書133から公開鍵を取り出し、電子署名162を公開鍵で復号した復号結果値と、テーブル161に関して一方向関数等を用いて導出した特徴値との一致を確認する実施が可能である。この場合、さらに外部の認証局等が発行する上位証明書を用いて、電子証明書133の正当性を確認する実施も可能である。
【図面の簡単な説明】
【００７３】
【図１】本発明の一実施形態におけるネットワークシステムの構成を示す図である。
【図２】ICカード演算装置の持つ情報及び機能を示す図である。
【図３】サーバ装置の持つ情報の構成例を示す図である。
【図４】ICカード演算装置に対して端末装置が送信するコマンドの例を示す図である。
【図５】ICカード演算装置の持つ情報の構成例を示す図である。
【図６】端末装置に対してICカード演算装置が送信するコマンドの例を示す図である。
【図７】ネットワークシステムにおける処理フローの例を示す図である。
【符号の説明】
【００７４】
100  プレイヤーA端末システム
110  端末装置
120  ICカード読み取り装置
130  ICカード演算装置  
200  プレイヤーB端末システム
210  ICカード読み取り装置
220  ICカード演算装置
300  端末情報管理システム
310  サーバ装置
400  ネットワーク
【図１】
2006101956.tif 000003
【図２】
2006101956.tif 000004
【図３】
2006101956.tif 000005
【図４】
2006101956.tif 000006
【図５】
2006101956.tif 000007
【図６】
2006101956.tif 000008
【図７】
2006101956.tif 000009