(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024003390
(43)【公開日】2024-01-15
(54)【発明の名称】システム、プログラム、方法、および情報処理装置
(51)【国際特許分類】
A63F 13/70 20140101AFI20240105BHJP
A63F 13/60 20140101ALI20240105BHJP
【FI】
A63F13/70
A63F13/60
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022102497
(22)【出願日】2022-06-27
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】堺 俊太
(57)【要約】
【課題】通信ゲームにおいて、正規に所定の条件を満たす端末が存在する場合に限って、他の端末においてもコンテンツデータを一時的に利用可能にする。
【解決手段】複数の端末が通信することで通信ゲームを実行するシステムが提供される。複数の端末の各々は、少なくとも所定の条件を満たす場合に少なくとも通信ゲームで利用可能なコンテンツデータと、復号化鍵とを含む。複数の端末のうち少なくとも所定の条件を満たす第1端末は、復号化鍵に対応する暗号化鍵を含む。第1端末は、通信ゲームを実行するときに、暗号化鍵を用いて暗号化した暗号化データを他の端末へ送信する。他の端末は、第1端末から暗号化データを受信すると、当該暗号化データを復号化鍵に基づいて検証する。複数の端末のうち所定の条件を満たさない第2端末は、第1端末から受信した暗号化データの検証が成功すると、第2端末による通信ゲームにおけるコンテンツデータの利用を一時的に可能にする。
【選択図】
図6
【特許請求の範囲】
【請求項1】
複数の端末が通信することで通信ゲームを実行するシステムであって、
前記複数の端末の各々は、少なくとも所定の条件を満たす場合に少なくとも前記通信ゲームで利用可能なコンテンツデータと、復号化鍵とを備え、
前記複数の端末のうち少なくとも前記所定の条件を満たす第1端末は、前記復号化鍵に対応する暗号化鍵を備え、
前記第1端末は、前記通信ゲームを実行するときに、前記暗号化鍵を用いて暗号化した暗号化データを他の端末へ送信し、
前記他の端末は、前記第1端末から前記暗号化データを受信すると、当該暗号化データを前記復号化鍵に基づいて検証し、
前記複数の端末のうち前記所定の条件を満たさない第2端末は、前記第1端末から受信した前記暗号化データの検証が成功すると、前記第2端末による前記通信ゲームにおける前記コンテンツデータの利用を一時的に可能にする、システム。
【請求項2】
前記複数の端末の各々は、前記復号化鍵を複数備え、
前記第1端末は、前記複数の復号化鍵にそれぞれ対応する複数の前記暗号化鍵を備え、
前記第1端末は、前記複数の暗号化鍵のうちから、前記他の端末が有している情報に基づいて選択した暗号化鍵を用いて、前記暗号化データを生成し、
前記他の端末は、前記複数の復号化鍵のうちから、前記他の端末が有している前記情報に基づいて選択した復号化鍵を用いて、前記暗号化データを検証する、請求項1に記載のシステム。
【請求項3】
前記複数の端末の各々は、前記所定の条件が満たされると、前記暗号化鍵を保持する、請求項1に記載のシステム。
【請求項4】
前記複数の端末の各々は、前記暗号化鍵をさらに備え、
前記複数の端末の各々は、前記所定の条件が満たされると、前記暗号化鍵が利用可能になる、請求項1に記載のシステム。
【請求項5】
前記第1端末は、前記暗号化データを少なくとも前記複数の端末に含まれる他のすべての端末へ送信する、請求項1に記載のシステム。
【請求項6】
前記第2端末は、前記暗号化データを複数受信した場合に、当該複数の暗号化データのうち1つの暗号化データの検証が成功すると、前記第2端末による前記通信ゲームにおける前記コンテンツデータの利用を一時的に可能にする、請求項1~5のいずれか1項に記載のシステム。
【請求項7】
前記第1端末の各々は、自端末が前記所定の条件を満たすことを示す情報を、少なくとも前記複数の端末に含まれる他のすべての端末へ送信し、
前記他の端末は、前記所定の条件を満たすことを示す情報に基づいて、すべての前記第1端末から前記暗号化データを受信したか否かを判断する、請求項6に記載のシステム。
【請求項8】
すべての前記第1端末から前記暗号化データをそれぞれ受信した状態であって、当該受信した暗号化データのすべてについて検証が失敗すると、前記第2端末による前記通信ゲームにおける前記コンテンツデータの利用は可能にされない、請求項7に記載のシステム。
【請求項9】
前記通信ゲームは、前記複数の端末がゲームを進行するゲームフェーズと、前記ゲームフェーズ前の準備フェーズとを含み、
前記コンテンツデータの利用を一時的に可能にされた前記第2端末において、検証が成功した前記暗号化データを送信した前記第1端末が前記準備フェーズで前記通信ゲームから離脱したとしても、当該準備フェーズに続くゲームフェーズにおいては、前記コンテンツデータの利用は継続して可能にされる、請求項1~5のいずれか1項に記載のシステム。
【請求項10】
前記準備フェーズにおいて、前記コンテンツデータの利用に対するユーザ操作を受け付けた場合には、検証が成功した前記暗号化データを送信した前記第1端末が前記準備フェーズで前記通信ゲームから離脱したとしても、前記ゲームフェーズにおいては、前記コンテンツデータの利用は継続して可能にされる、請求項9に記載のシステム。
【請求項11】
他の装置と通信することで通信ゲームを実行するためのプログラムであって、前記プログラムは、少なくとも所定の条件を満たす場合に少なくとも前記通信ゲームで利用可能なコンテンツデータと、復号化鍵とを備えるコンピュータに、
前記他の装置のうち前記所定の条件を満たす装置から、前記復号化鍵に対応する暗号化鍵を用いて暗号化した暗号化データを受信するステップと、
前記受信した暗号化データを前記復号化鍵に基づいて検証するステップと、
前記所定の条件を満たさない場合に、前記暗号化データの検証が成功すると、前記通信ゲームにおける前記コンテンツデータの利用を一時的に可能にするステップとを実行させる、プログラム。
【請求項12】
複数の端末が通信することで通信ゲームを実行する方法であって、前記複数の端末の各々は、少なくとも所定の条件を満たす場合に少なくとも前記通信ゲームで利用可能なコンテンツデータと、復号化鍵とを備え、前記方法は、
前記複数の端末のうち前記所定の条件を満たす第1端末が、前記通信ゲームを実行するときに、前記復号化鍵に対応する暗号化鍵を用いて暗号化した暗号化データを他の端末へ送信するステップと、
前記他の端末が、前記第1端末から前記暗号化データを受信すると、当該暗号化データを前記復号化鍵に基づいて検証するステップと、
前記複数の端末のうち前記所定の条件を満たさない第2端末が、前記第1端末から受信した前記暗号化データの検証が成功すると、前記第2端末による前記通信ゲームにおける前記コンテンツデータの利用を一時的に可能にするステップとを備える、方法。
【請求項13】
他の情報処理装置と通信することで通信ゲームを実行する情報処理装置であって、
少なくとも所定の条件を満たす場合に少なくとも前記通信ゲームで利用可能なコンテンツデータと、
復号化鍵と、
前記他の情報処理装置のうち前記所定の条件を満たす情報処理装置から、前記復号化鍵に対応する暗号化鍵を用いて暗号化した暗号化データを受信すると、当該暗号化データを前記復号化鍵に基づいて検証する検証手段と、
前記所定の条件を満たさない場合に、前記暗号化データの検証が成功すると、前記通信ゲームにおける前記コンテンツデータの利用を一時的に可能にする可能化手段とを備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、システム、プログラム、方法、および情報処理装置に関する。
【背景技術】
【0002】
複数のユーザ同士で通信ゲームを実行する場合において、例えば、追加的なコンテンツデータをあるユーザが保有しているときには、当該コンテンツデータを保有していない他のユーザにも当該コンテンツデータを利用可能とすることで、通信ゲームの興趣性を向上させることが考えられる。
【0003】
例えば、特開2009-060629号公報(特許文献1)は、転送用子機プログラムを子機へ送信することで、親機と1または複数の子機との間で通信ゲームを実行する構成を開示する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述したようなコンテンツデータを他のユーザへ都度送信する方法を採用した場合には、コンテンツデータのデータ量によっては、ある程度の送信時間が必要となり得る。
【0006】
そこで、コンテンツデータ自体は、各ユーザが使用する端末に格納した上で、所定の条件が満たされた場合に限って、当該コンテンツデータを利用可能にする方法が考えられる。例えば、あるユーザが所定の条件を満たした場合には、他のユーザが所定の条件を満たしていなくても、当該他のユーザにも当該コンテンツデータを一時的に利用できるようにしてもよい。
【0007】
このような方法を採用した場合において、実際には所定の条件を満たしていないにもかかわらず、所定の条件を満たしていると偽装する不正な端末が存在していた場合には、当該不正な端末に加えて、所定の条件を満たしていない他の端末についても、コンテンツデータを利用できてしまう可能性がある。
【0008】
本開示は、通信ゲームにおいて、正規に所定の条件を満たす端末が存在する場合に限って、他の端末においてもコンテンツデータを一時的に利用可能にするための仕組みを提供する。
【課題を解決するための手段】
【0009】
(構成1)ある実施の形態に従えば、複数の端末が通信することで通信ゲームを実行するシステムが提供される。複数の端末の各々は、少なくとも所定の条件を満たす場合に少なくとも通信ゲームで利用可能なコンテンツデータと、復号化鍵とを含む。複数の端末のうち少なくとも所定の条件を満たす第1端末は、復号化鍵に対応する暗号化鍵を含む。第1端末は、通信ゲームを実行するときに、暗号化鍵を用いて暗号化した暗号化データを他の端末へ送信する。他の端末は、第1端末から暗号化データを受信すると、当該暗号化データを復号化鍵に基づいて検証する。複数の端末のうち所定の条件を満たさない第2端末は、第1端末から受信した暗号化データの検証が成功すると、第2端末による通信ゲームにおけるコンテンツデータの利用を一時的に可能にする。
【0010】
構成1によれば、所定の条件を満たす第1端末から送信される暗号化データを他の端末で検証することができる。すなわち、第1端末が所定の条件を満たすことを他の端末で検証できる。正規に所定の条件を満たす端末(第1端末)が存在することを検証した上で、その他の端末においてもコンテンツデータを一時的に利用することができる。これによって、通信ゲームの興趣性を向上させることができる。
【0011】
(構成2)構成1において、複数の端末の各々は、復号化鍵を複数含んでいてもよい。第1端末は、複数の復号化鍵にそれぞれ対応する複数の暗号化鍵を含んでいてもよい。第1端末は、複数の暗号化鍵のうちから、他の端末が有している情報に基づいて選択した暗号化鍵を用いて、暗号化データを生成してもよい。他の端末は、複数の復号化鍵のうちから、他の端末が有している情報に基づいて選択した復号化鍵を用いて、暗号化データを検証してもよい。
【0012】
構成2によれば、単一の暗号化鍵および復号化鍵を用いる場合に比較して、セキュリティのレベルを高めることができる。
【0013】
(構成3)構成1または2において、複数の端末の各々は、所定の条件が満たされると、暗号化鍵を保持するようにしてもよい。
【0014】
構成3によれば、所定の条件が満たされなければ、端末は暗号化鍵を保持することがないので、よりセキュリティのレベルを高めることができる。
【0015】
(構成4)構成1または2において、複数の端末の各々は、暗号化鍵をさらに含んでいてもよい。複数の端末の各々は、所定の条件が満たされると、暗号化鍵が利用可能になってもよい。
【0016】
構成4によれば、複数の端末の各々は、所定の条件が満たされるか否かにかかわらず、暗号化鍵を含むことになる。その上で、端末は、所定の条件が満たされた場合に限って、暗号化鍵を利用できる。これによって、暗号化データの送信に必要な暗号化鍵の配布を容易化できる。
【0017】
(構成5)構成1~4のいずれかにおいて、第1端末は、暗号化データを少なくとも複数の端末に含まれる他のすべての端末へ送信してもよい。
【0018】
構成5によれば、例えば、所定の条件を満たさない端末に優先して送信するといった判断をすることなく、暗号化データを送信できるので、暗号化データの検証に要する時間を短縮できる。
【0019】
(構成6)構成1~5のいずれかにおいて、第2端末は、暗号化データを複数受信した場合に、当該複数の暗号化データのうち1つの暗号化データの検証が成功すると、第2端末による通信ゲームにおけるコンテンツデータの利用を一時的に可能にしてもよい。
【0020】
構成6によれば、複数の暗号化データを受信していても、いずれか1つの暗号化データの検証が成功すれば、それ以降の検証を行う必要がないので、暗号化データの検証に要する時間を短縮できるとともに、検証に要するリソースの消費を抑制できる。
【0021】
(構成7)構成6において、第1端末の各々は、自端末が所定の条件を満たすことを示す情報を、少なくとも複数の端末に含まれる他のすべての端末へ送信してもよい。他の端末は、所定の条件を満たすことを示す情報に基づいて、すべての第1端末から暗号化データを受信したか否かを判断してもよい。
【0022】
構成7によれば、複数の端末の各々は、暗号化データを送信することになっているすべての端末から暗号化データを受信したことを確認できるので、アプリケーションデータの一時的な利用をより確実に実現できる。
【0023】
(構成8)構成7において、すべての第1端末から暗号化データをそれぞれ受信した状態であって、当該受信した暗号化データのすべてについて検証が失敗すると、第2端末による通信ゲームにおけるコンテンツデータの利用は可能にされないようにしてもよい。
【0024】
構成8によれば、送信されたすべての暗号化データを検証した上で、コンテンツデータの一時的な利用が可能であるか否かを判断できる。
【0025】
(構成9)構成1~8のいずれかにおいて、通信ゲームは、複数の端末がゲームを進行するゲームフェーズと、ゲームフェーズ前の準備フェーズとを含んでいてもよい。コンテンツデータの利用を一時的に可能にされた第2端末において、検証が成功した暗号化データを送信した第1端末が準備フェーズで通信ゲームから離脱したとしても、当該準備フェーズに続くゲームフェーズにおいては、コンテンツデータの利用は継続して可能にされてもよい。
【0026】
構成9によれば、第1端末が送信した暗号化データの検証が成功して、コンテンツデータの利用を一時的に可能にされた後には、当該第1端末が離脱したとしても、コンテンツデータの利用は継続して可能であるので、ユーザへ違和感を与えることがない。
【0027】
(構成10)構成9において、準備フェーズにおいて、コンテンツデータの利用に対するユーザ操作を受け付けた場合には、検証が成功した暗号化データを送信した第1端末が準備フェーズで通信ゲームから離脱したとしても、ゲームフェーズにおいては、コンテンツデータの利用は継続して可能にされてもよい。
【0028】
構成10によれば、コンテンツデータの利用に対するユーザ操作を受け付けた後に、他の端末の離脱によって、コンテンツデータが利用できなくなるといった違和感をユーザへ与えることがない。
【0029】
(構成11)別の実施の形態に従えば、他の装置と通信することで通信ゲームを実行するためのプログラムが提供される。プログラムは、少なくとも所定の条件を満たす場合に少なくとも通信ゲームで利用可能なコンテンツデータと、復号化鍵とを備えるコンピュータに、他の装置のうち所定の条件を満たす装置から、復号化鍵に対応する暗号化鍵を用いて暗号化した暗号化データを受信するステップと、受信した暗号化データを復号化鍵に基づいて検証するステップと、所定の条件を満たさない場合に、暗号化データの検証が成功すると、通信ゲームにおけるコンテンツデータの利用を一時的に可能にするステップとを実行させる。
【0030】
(構成12)さらに別の実施の形態に従えば、複数の端末が通信することで通信ゲームを実行する方法が提供される。複数の端末の各々は、少なくとも所定の条件を満たす場合に少なくとも通信ゲームで利用可能なコンテンツデータと、復号化鍵とを含む。方法は、複数の端末のうち所定の条件を満たす第1端末が、通信ゲームを実行するときに、復号化鍵に対応する暗号化鍵を用いて暗号化した暗号化データを他の端末へ送信するステップと、他の端末が、第1端末から暗号化データを受信すると、当該暗号化データを復号化鍵に基づいて検証するステップと、複数の端末のうち所定の条件を満たさない第2端末が、第1端末から受信した暗号化データの検証が成功すると、第2端末による通信ゲームにおけるコンテンツデータの利用を一時的に可能にするステップとを含む。
【0031】
(構成13)さらに別の実施の形態に従えば、他の情報処理装置と通信することで通信ゲームを実行する情報処理装置が提供される。情報処理装置は、少なくとも所定の条件を満たす場合に少なくとも通信ゲームで利用可能なコンテンツデータと、復号化鍵と、他の情報処理装置のうち所定の条件を満たす情報処理装置から、復号化鍵に対応する暗号化鍵を用いて暗号化した暗号化データを受信すると、当該暗号化データを復号化鍵に基づいて検証する検証手段と、所定の条件を満たさない場合に、暗号化データの検証が成功すると、通信ゲームにおけるコンテンツデータの利用を一時的に可能にする可能化手段とを含む。
【発明の効果】
【0032】
本開示によれば、通信ゲームにおいて、正規に所定の条件を満たす端末が存在する場合に限って、他の端末においてもコンテンツデータを一時的に利用可能にするための仕組みを実現できる。
【図面の簡単な説明】
【0033】
【
図1】本実施の形態に従うシステムの一例を示す模式図である。
【
図2】本実施の形態に従うシステムの別の一例を示す模式図である。
【
図3】本実施の形態に従うシステムにおける利用権を説明するための図である。
【
図4】本実施の形態に従うシステムを構成する端末のハードウェア構成例を示す模式図である。
【
図5】
図4に示すアプリケーションデータおよび利用権データに含まれるデータの一例を示す模式図である。
【
図6】本実施の形態に従うシステムにおける検証処理の概要を説明する図である。
【
図7】
図6に示す端末(送信側端末)のより詳細な機能構成例を示す模式図である。
【
図8】
図6に示す端末(受信側端末)のより詳細な機能構成例を示す模式図である。
【
図9】本実施の形態に従うシステムの端末が実行する処理手順を示すフローチャートである。
【
図10】
図9に示すステップS2のより詳細な処理手順を示すフローチャートである。
【
図11】
図10に示すステップS204のより詳細な処理手順を示すフローチャートである。
【
図12】
図10に示すステップS212のより詳細な処理手順を示すフローチャートである。
【
図13】
図9に示すステップS3のより詳細な処理手順を示すフローチャートである。
【発明を実施するための形態】
【0034】
本実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【0035】
[A.概要]
まず、本実施の形態に従う通信ゲームを実行するシステムの構成例について説明する。
【0036】
図1は、本実施の形態に従うシステムの一例を示す模式図である。
図1には、一例として、4つの端末100-1~100-4(以下、「端末100」と総称することもある。)で構成されたシステム10Aを示す。端末100-1~100-4は、情報処理装置の一例であり、通信することで通信ゲームを実行する。すなわち、端末100の各々は、他の端末100と通信することで通信ゲームを実行する。
【0037】
図1に示すシステム10Aにおいては、いずれかの端末100が通信ゲームを管理する「親」となり、その他の端末100が「親」に従って処理を行う「子」となってもよい。
【0038】
図1に示すシステム10Aにおいて、端末100-1~100-4の間で相互にデータをやりとりできる通信方式であれば、有線方式であってもよいし、無線方式であってもよい。
【0039】
図2は、本実施の形態に従うシステムの別の一例を示す模式図である。
図2に示すシステム10Bにおいては、4つの端末100-1~100-4の各々がネットワーク12に接続されている。ネットワーク12には、通信ゲームに必要な処理の少なくとも一部を実行するサーバ200が接続されている。端末100-1~100-4は、サーバ200を介して、通信ゲームを実行する。
【0040】
なお、
図2に示すシステム10Bにおいて、端末100-1~100-4がネットワーク12に接続する通信方式は、有線方式であってもよいし、無線方式であってもよい。また、
図2に示すサーバ200を省略して、端末100-1~100-4がネットワーク12を介して互いに通信する方式を採用してもよい。
【0041】
本明細書において、「通信ゲーム」は、1または複数のユーザが関与するゲームを包含し、どのような種類のゲームであってもよい。例えば、通信ゲームは、対戦型のゲームや複数ユーザが同時に参加可能なゲームを含んでいてもよい。なお、通信ゲームには、ユーザのように振る舞う仮想ユーザが参加できてもよい。
【0042】
本実施の形態に従うシステムにおいて、端末100は、利用が制限されたコンテンツデータを保持することができる。コンテンツデータは、少なくとも所定の条件を満たす場合に少なくとも通信ゲームで利用可能である。なお、少なくとも所定の条件を満たす端末100は、他の端末100と通信して通信ゲームを実行するのではなく、端末100単体で何らかのゲームを実行する場合においても、コンテンツデータが利用可能であってもよい。
【0043】
本明細書において、「コンテンツデータ」は、通信ゲームにおいて利用されるデータを包含し、通信ゲームのためのアプリケーションデータの一部であってもよいし、アプリケーションデータそのものであってもよい。一例として、「コンテンツデータ」は、ステージ、キャラクタ、アイテム、スキルなどを含む。
【0044】
本明細書において、「所定の条件」は、任意に設定される条件である。例えば、端末100を使用しているユーザがコンテンツデータを利用するための権利(以下、「利用権」とも称す。)を保有している場合に、「所定の条件」を満たすとされてもよい。利用権は、例えば、ユーザが対価を支払ったり、特定のサービスに加入したりすることによって、保有されてもよい。
【0045】
なお、利用権は、ユーザ単位で付与されてもよいし、端末単位で付与されてもよい。利用権がユーザ単位で付与される場合には、同一の端末100であっても、使用するユーザが異なれば、有効な利用権を保有していない、すなわち所定の条件を満たさないとされてもよい。このように、同一の端末100を複数のユーザで共有しているような場合には、利用権を保有しているユーザが端末100を利用するときに限って、コンテンツデータが利用可能にしてもよい。一方、利用権が端末単位で付与される場合には、利用権が付与された端末100を使用するユーザにかかわらず、コンテンツデータが利用可能となる。
【0046】
また、「所定の条件」としては、実行される通信ゲームがシリーズ化されている場合に、当該シリーズ中の他の通信ゲームを保有していることや、通信ゲーム内で課題をクリアしているといったことであってもよい。
【0047】
以下では、一例として、端末100を操作して通信ゲームをプレイするユーザが利用権を保有している場合に「所定の条件」を満たすとして説明する。
【0048】
本実施の形態に従うシステムは、正規に所定の条件を満たす端末が存在する場合に限って、他の端末100においてもコンテンツデータを一時的に利用可能にするための仕組みを提供する。
【0049】
所定の条件が利用権の保有であるとすると、ある通信ゲームを実行する場合において、当該通信ゲームに参加している(あるいは、参加しようとしている)ユーザが利用権を保有しているときには、当該通信ゲームに参加している(あるいは、参加しようとしている)他のユーザも当該コンテンツデータを一時的に利用することができる。
【0050】
図3は、本実施の形態に従うシステムにおける利用権を説明するための図である。
図3には、4人のユーザ1~4がそれぞれ端末100-1~100-4を用いて通信ゲームを実行する例を示す。
【0051】
例えば、
図3(A)に示すように、端末100-1を使用するユーザ1が利用権20を保有しており、他の端末100-2~100-4を使用するユーザ2~4は利用権20を保有していないとする。この例では、通信ゲームに参加するユーザ1(端末100-1)が利用権20を保有しているので、端末100-1~100-4が実行する通信ゲームにおいて、コンテンツデータが一時的に利用可能となる。
【0052】
図3(B)に示すように、端末100-1を使用するユーザ1、および、端末100-2を使用するユーザ2が利用権20をそれぞれ保有している場合も同様である。
【0053】
なお、複数のユーザが利用権20をそれぞれ保有している場合であって、利用権20で利用できるコンテンツデータの内容や範囲が互いに異なっているときには、いずれか1つの利用権20で利用可能なコンテンツデータに制限してもよいし、複数の利用権20を考慮して利用可能なコンテンツデータを決定してもよい。
【0054】
図3(C)に示すように、端末100-1~100-4をそれぞれ使用するユーザ1~4がいずれも利用権20を保有していなければ、コンテンツデータは利用できない。
【0055】
[B.ハードウェア構成例]
次に、本実施の形態に従うシステムを構成する装置のハードウェア構成例について説明する。
【0056】
図4は、本実施の形態に従うシステムを構成する端末100のハードウェア構成例を示す模式図である。
図4を参照して、端末100は、一例として、コンピュータであり、1または複数のプロセッサ102と、メモリ104と、ストレージ110と、ディスプレイ106と、操作部108と、通信部120とを含む。これらのコンポーネントは、バス122を介して、互いにデータ通信可能に接続されている。
【0057】
プロセッサ102は、端末100が提供する処理を実行するための処理主体(処理手段)である。プロセッサ102は、ストレージ110が格納しているシステムプログラム112およびアプリケーションデータ114を読み込んでメモリ104に展開して実行する。
【0058】
メモリ104は、プロセッサ102がアクセス可能な揮発性記憶装置(記憶媒体)であり、例えば、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などが用いられてもよい。
【0059】
ストレージ110は、プロセッサ102がアクセス可能な不揮発性記憶装置(記憶媒体)であり、例えば、ハードディスクやフラッシュメモリなどが用いられてもよい。ストレージ110は、例えば、光ディスクおよびカートリッジといった端末100に着脱可能な記憶媒体であってもよい。
【0060】
ストレージ110は、システムプログラム112と、アプリケーションデータ114とを格納している。システムプログラム112および/またはアプリケーションデータ114は、後述する処理を実現するための命令コードを含む。本実施の形態に従う処理を実現する「プログラム」は、システムプログラム112に含まれる命令コード、および/または、アプリケーションデータ114に含まれるアプリケーションプログラムの命令コードを包含する。ストレージ110には、ユーザ操作に応じて、利用権20を示す利用権データ116が格納されていてもよい。
【0061】
ディスプレイ106は、プロセッサ102で実行される情報処理の結果として生成される画像を表示する。ディスプレイ106は複数であってもよい。また、1または複数の外部ディスプレイを端末100が利用する構成であってもよい。
【0062】
操作部108は、端末100のユーザからの操作を受け付ける。操作部108は、例えば、押ボタン、操作レバー、タッチパネル、マウスなどを含む。操作部108は、端末100とは別体の、有線または無線で接続されるゲームコントローラであってもよい。
【0063】
通信部120は、他の端末100との間の通信、および/または、ネットワーク12を介したサーバ200との間で通信を行う。通信部120は、有線通信に必要なハードウェア、および/または、無線通信に必要はハードウェアを有していてもよい。なお、通信部120の処理の全部または一部をプロセッサ102により実現してもよい。
【0064】
図4には、端末100を一体の装置として描くが、複数の装置の集合体として実装してもよい。すなわち、端末100を複数の独立した装置の組み合わせによって実装してもよい。例えば、プロセッサ102、メモリ104、ストレージ110に相当するハードウェアを有する本体部と、ディスプレイ106、操作部108に相当するハードウェアを有する端末部とからなる構成を採用してもよい。
【0065】
また、端末100において実行される処理の少なくとも一部が、ネットワーク上に分散配置された1または複数の他の装置によって分散的に実行されるようにしてもよい。
【0066】
端末100において実行される処理は、プロセッサ102がプログラムを実行することで実現されてもよいし、処理の一部または全部が、ASIC(application specific integrated circuit)やFPGA(field programmable gate array)などのハードワイヤード回路により実現されてもよい。
【0067】
本明細書において、「プロセッサ」との用語は、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などのプログラムに記述された命令コードに従って処理を実行する処理回路という通常の意味に加えて、ASICやFPGAなどのハードワイヤード回路も包含する。ASICやFPGAなどのハードワイヤード回路は、実行すべき処理に対応する回路が予め形成されている。さらに、本明細書の「プロセッサ」は、SoC(System on Chip)などの複数の機能が集約された回路も包含する。
【0068】
図2に示すサーバ200は、例えば、汎用的なコンピュータを用いて実現される。汎用的なコンピュータのハードウェア構成については公知であるので、詳細な説明は行わない。
【0069】
[C.検証処理]
次に、本実施の形態に従うシステムが上述したような仕組みを提供するための検証処理の一例について説明する。
【0070】
図5は、
図4に示すアプリケーションデータ114および利用権データ116に含まれるデータの一例を示す模式図である。
図5を参照して、アプリケーションデータ114は、通信ゲームのためのデータであり、一例として、利用権20を保有していなくても利用可能な標準コンテンツデータ32と、利用権20を保有しているときに利用可能な制限コンテンツデータ34と、制限コンテンツデータ34の利用可否を管理する管理モジュール36とを含む。制限コンテンツデータ34は、少なくとも所定の条件を満たす場合に少なくとも通信ゲームで利用可能なコンテンツデータの一例である。
【0071】
本実施の形態に従うシステムにおいては、利用権20を管理するために鍵ペア群を用いる。鍵ペア群は、任意のアルゴリズムに従って生成された一対の鍵(鍵ペア)を1または複数含む。本実施の形態においては、一方の鍵を用いて暗号化を行い、他方の鍵を用いて復号化を行うので、説明の便宜上、暗号化に用いる鍵を「暗号化鍵」と称し、復号化に用いる鍵を「復号化鍵」と称する。
【0072】
このような鍵ペアとしては、例えば、公知の公開鍵暗号基盤に従って生成される秘密鍵と公開鍵とを用いることができる。秘密鍵と公開鍵との鍵ペアを用いる場合には、復号化鍵を用いて暗号化を行うとともに、暗号化鍵を用いて復号化を行うこともできる。
【0073】
本実施の形態に従うシステムにおいては、一対の鍵ペア(N=1)を用意すれば、利用権20の保有を検証することができるが、よりセキュリティのレベルを高めるために、複数の鍵ペアを用いてもよい。
【0074】
アプリケーションデータ114は、N(N≧2)個の復号化鍵30_1,30_2,…,30_N(以下、1つの復号化鍵を「復号化鍵30」とも総称する。)からなる復号化鍵群300を含む。これによって、端末100の各々は、復号化鍵30を複数有することになる。
【0075】
利用権データ116は、それぞれの復号化鍵30に対応するN個の暗号化鍵40_1,40_2,…,40_N(以下、1つの暗号化鍵を「暗号化鍵40」とも総称する。)からなる暗号化鍵群400を含む。このように、端末100は、所定の条件が満たされると、復号化鍵30に対応する暗号化鍵40を保持することになる。すなわち、1または複数の暗号化鍵40からなる暗号化鍵群400は、所定の条件を満たす端末100に格納される。
【0076】
一例として、ユーザが所定の手続き(例えば、利用権20に対する対価の支払い)を行うことで、利用権20を管理するサーバから利用権データ116(暗号化鍵群400を含む)が端末100にダウンロードされてもよい。
【0077】
この例では、端末100は、所定の条件を満たす場合に限って、暗号化鍵群400を格納することになるので、セキュリティのレベルを高めることができる。なお、所定の条件を満たさなくなった場合(例えば、利用権20に対する対価が支払われなくなった場合など)には、端末100に格納されている利用権データ116を削除するようにしてもよい。
【0078】
変形例として、利用権データ116と暗号化鍵群400とは互いに独立していてもよい。この場合には、例えば、ユーザが対価を支払ったり、特定のサービスに加入したりすることによって、ユーザが利用権を保有することになれば、利用権データ116および暗号化鍵群400がそれぞれ端末100にダウンロードされるようにしてもよい。
【0079】
別の変形例として、アプリケーションデータ114が復号化鍵群300に加えて、暗号化鍵群400を有していてもよい。端末100の各々は、アプリケーションデータ114を格納することで、暗号化鍵群400を保持することになる。この場合には、利用権データ116は、暗号化鍵群400を含まず、代わりに、アプリケーションデータ114に含まれる暗号化鍵群400にアクセスするための情報を含んでいてもよい。利用権データ116が端末100にダウンロードされることで、アプリケーションデータ114に含まれる暗号化鍵群400にアクセスできるようにしてもよい。すなわち、端末100は、所定の条件が満たされると、暗号化鍵40が利用可能になってもよい。アプリケーションデータ114に復号化鍵群300および暗号化鍵群400を含ませることで、所定の条件を満たしているか否かにかかわらず、復号化鍵群300および暗号化鍵群400が格納されるので、コンテンツデータを一時的に利用可能にするための仕組みをより簡素な構成で実現できる。
【0080】
さらに別の変形例として、アプリケーションデータ114を端末100にインストールするときに、利用権データ116が端末100のアクセス制限可能な領域に格納されてもよい。インストール後に、ユーザが所定の手続きを行うことで、端末100に格納された利用権データ116にアクセスできるようにしてもよい。
【0081】
図6は、本実施の形態に従うシステムにおける検証処理の概要を説明する図である。
図6には、説明の便宜上、利用権20を保有しているユーザが使用する端末100S(送信側端末)と、端末100R(受信側端末)との間のやりとりの一例を示す。端末100Sは、少なくとも所定の条件を満たす第1端末に相当する。端末100Rは、他の端末に相当する。なお、端末100Rを使用するユーザは、利用権20を保有している場合もあるし、保有していない場合もある。
【0082】
端末100Sは、暗号化鍵40を用いて、検証用文字列52を暗号化して暗号化データ50を生成する(暗号化処理60)。端末100Sは、通信ゲームを実行するときに、暗号化鍵40を用いて暗号化された暗号化データ50は端末100Rへ送信する。
【0083】
端末100Rは、復号化鍵30を用いて、端末100Sから受信した暗号化データ50を復号化する(復号化処理62)。そして、端末100Rは、復号結果に基づいて、暗号化データ50が正しく復号されたか否かを判断する(判断処理64)。正しく復号されたと判断されると、端末100Sは正当な利用権20を保有しているとの検証結果66が出力される。この検証結果66は、検証の成功を示す。このように、他の端末である端末100Rは、端末100Sから暗号化データ50を受信すると、受信した暗号化データ50を復号化鍵30に基づいて検証する。
【0084】
所定の条件を満たさない端末100R(使用しているユーザが利用権20を保有していない)は、端末100Sから受信した暗号化データ50の検証が成功すると、端末100Rによる通信ゲームにおけるコンテンツデータの利用を一時的に可能化する。
【0085】
なお、端末100Sは、端末100を使用しているユーザが利用権20を保有しているか否かにかかわらず、同一の通信ゲームを実行する他のすべての端末100へ暗号化データ50を送信するようにしてもよい。すなわち、端末100Sは、通信ゲームを実行するために通信している複数の端末100に含まれる他のすべての端末100へ暗号化データ50を送信してもよい。さらに、端末100Sは、自端末へも暗号化データ50を送信するようにしてもよい。すなわち、端末100Rは、端末100S自身であってもよい。
【0086】
変形例として、端末100Sは、端末100を使用しているユーザが利用権20を保有していない端末100Rに対してのみ暗号化データ50を送信するようにしてもよい。
【0087】
図7は、
図6に示す端末100S(送信側端末)のより詳細な機能構成例を示す模式図である。
【0088】
図7を参照して、端末100Sは、機能構成として、暗号化鍵選択モジュール150と、検証用文字列生成モジュール152と、暗号化モジュール158とを含む。これらのモジュールは、端末100のプロセッサ102がアプリケーションデータ114に含まれるアプリケーションプログラム(および/または、システムプログラム112)を実行することで実現されてもよい。
【0089】
端末100Sは、暗号化データ50を受信する端末100が有している情報である選択情報を用いる。選択情報は、通信ゲーム毎に変化し得る情報であり、かつ、通信時に端末100間で共有可能な情報である。選択情報は、例えば、送信元の端末100を示す識別情報(例えば、ネットワークアドレス、機器番号など)や、通信開始時に決定される情報(例えば、乱数、接続を確立した時刻、セッション番号など)を用いることができる。
【0090】
暗号化鍵選択モジュール150は、選択情報に基づいて、暗号化鍵群400のうちから1つの暗号化鍵40を選択する。
図7には、暗号化鍵40_mが選択されている例を示す。
【0091】
検証用文字列生成モジュール152は、選択情報に基づいて、検証用文字列156を生成する。検証用文字列生成モジュール152は、予め定められた検証文字列生成規則154に従って、検証用文字列156を生成する。検証文字列生成規則154は、例えば、選択情報を検証用文字列52に含めることなどを規定している。このような規定によれば、検証用文字列156は、選択情報を直接的または間接的に反映したものとなる。
【0092】
暗号化モジュール158は、暗号化鍵選択モジュール150が選択した暗号化鍵40_mを用いて、検証用文字列156を暗号化することで、暗号化データ50を生成する。暗号化データ50は、端末100Rを含む他の端末100へ送信される。
【0093】
このように、端末100Sは、複数の暗号化鍵40のうちから、他の端末(端末100R)も有している情報(選択情報)に基づいて選択した暗号化鍵40_mを用いて、暗号化データ50を生成する。
【0094】
図8は、
図6に示す端末100R(受信側端末)のより詳細な機能構成例を示す模式図である。
【0095】
図8を参照して、端末100Rは、機能構成として、復号化鍵選択モジュール160と、復号化モジュール162と、判断モジュール166と、可能化モジュール168とを含む。これらのモジュールは、端末100のプロセッサ102がアプリケーションデータ114に含まれるアプリケーションプログラム(および/または、システムプログラム112)を実行することで実現されてもよい。
【0096】
端末100Rが受信した暗号化データ50は、受信バッファ170に格納される。
【0097】
復号化鍵選択モジュール160は、選択情報に基づいて、復号化鍵群300のうちから1つの復号化鍵30を選択する。
図8には、復号化鍵30_mが選択されている例を示す。
【0098】
復号化モジュール162および判断モジュール166は、端末100Sから受信した暗号化データ50を復号化鍵30に基づいて検証する。すなわち、復号化モジュール162および判断モジュール166は、所定の条件を満たす端末100から、復号化鍵30に対応する暗号化鍵40を用いて暗号化した暗号化データ50を受信すると、その暗号化データ50を復号化鍵30に基づいて検証する検証モジュールに相当する。
【0099】
選択情報に基づいて暗号化鍵選択モジュール150(
図7)によって選択される暗号化鍵40と復号化鍵選択モジュール160(
図8)によって選択される復号化鍵30とが互いに対応するように、暗号化鍵選択モジュール150および復号化鍵選択モジュール160はそれぞれ適切に設計される。
【0100】
復号化モジュール162は、復号化鍵選択モジュール160が選択した復号化鍵30_mを用いて、暗号化データ50を復号化する。復号化モジュール162による復号結果164は、判断モジュール166へ出力される。
【0101】
判断モジュール166は、復号結果164に対応する選択情報を用いて、復号結果164が所定の規則(
図7に示す検証文字列生成規則154)に適合しているか否かを判断する。判断モジュール166は、復号結果164が検証文字列生成規則154に適合していれば、暗号化データ50が正しく復号された(すなわち、検証が成功した)と判断する。一方、判断モジュール166は、復号結果164が検証文字列生成規則154に適合していなければ、暗号化データ50の復号が失敗したと判断する。判断モジュール166は、暗号化データ50が正しく復号されたときに、正当な利用権20を保有しているとの検証結果66を出力する。
【0102】
このように、端末100Rは、復号化鍵30のうちから、端末100Sも有している情報(選択情報)に基づいて選択した復号化鍵30_mを用いて、暗号化データ50を検証する。
【0103】
選択情報は、他の端末100と接続を確立したときに任意の方法で取得してもよいし、暗号化データ50を受信しときに任意の方法で取得してもよい。暗号化データ50毎に選択情報が異なる場合もあるので、暗号化データ50と選択情報とを対応付けて格納してもよい。
【0104】
可能化モジュール168は、検証結果66に基づいて、制限コンテンツデータ34(
図5参照)の一時的な利用を可能化する。すなわち、可能化モジュール168は、端末100Rが所定の条件を満たさない場合に、端末100Sから受信した暗号化データ50の検証が成功すると(正当な利用権20を保有しているとの検証結果66が出力されると)、端末100Rによる通信ゲームにおける制限コンテンツデータ34の利用を一時的に可能化する。
【0105】
このように、端末100Rを使用するユーザは、利用権20の検証が成功した旨の検証結果66が出力されることを条件として、制限コンテンツデータ34が利用可能になる。
【0106】
なお、同一の端末100では、
図7に示す機能構成および
図8に示す機能構成の両方が実現可能であってもよい。
【0107】
[D.処理手順]
次に、本実施の形態に従うシステムで実行される検証処理を含む処理手順の一例について説明する。
【0108】
以下の説明においては、通信ゲームの一例として、対戦ゲームを想定する。なお、通信ゲームとしては、他のユーザと協力する協力ゲームであってもよい。ゲームの内容は、バトルゲームやスポーツゲーム、パズルゲームなどであってもよい。標準コンテンツデータ32(
図5)は、標準的に用意されている1または複数の対戦ステージデータ(以下、「標準ステージデータ」とも称す。)を含み、制限コンテンツデータ34は、追加的に用意されている1または複数の対戦ステージデータ(以下、「追加ステージデータ」とも称す。)を含む。制限コンテンツデータ34としては、キャラクタデータやアイテムデータなどであってもよい。
【0109】
同一の通信ゲームに参加しているいずれかのユーザが利用権20を保有していれば、当該通信ゲームに参加している他のユーザも制限コンテンツデータ34に含まれるステージを選択できる。
【0110】
(d1:全体処理)
図9は、本実施の形態に従うシステムの端末100が実行する処理手順を示すフローチャートである。同一の通信ゲームを実行する複数の端末100の各々が
図9に示す処理をそれぞれ実行する。
図9および後述する
図10~
図13に示す各ステップは、端末100のプロセッサ102がアプリケーションデータ114に含まれるアプリケーションプログラム(および/または、システムプログラム112)を実行することで実現されてもよい。
【0111】
図9に示す処理手順は、複数の端末100がゲームを進行するゲームフェーズ(ステップS6)と、ゲームフェーズ前の準備フェーズ(ステップS1~S5)とを含む。
【0112】
図9を参照して、端末100は、ユーザ操作に応じて、他の端末100との接続を確立する処理を実行する(ステップS1)。なお、通信ゲームへの参加を希望する複数のユーザからのリクエストに応じて、同一の通信ゲームに参加する1または複数のユーザを所定の方法で決定(マッチング)してもよい。例えば、同様のスキルレベルを有するユーザ同士をマッチングするようにしてもよい。
【0113】
また、実行される通信ゲームに適用されるルールなどが予めユーザへ通知されてもよい。適用されるルールは、通信ゲームの主催者(親)となるユーザが任意に決定してもよいし、予め定められた方法で決定されてもよい。
【0114】
続いて、端末100は、追加ステージへの投票可否を判断する(ステップS2)。そして、端末100は、ステージ投票画面を生成し、ユーザが投票したステージを示す投票データを他の端末100へ送信する(ステップS3)。
【0115】
端末100は、同一の通信ゲームを実行する他のすべての端末100から投票データを受信したか否かを判断する(ステップS4)。同一の通信ゲームを実行する他のすべての端末100から投票データを受信していなければ(ステップS4においてNO)、ステップS4の処理が繰り返される。
【0116】
同一の通信ゲームを実行する他のすべての端末100から投票データを受信していれば(ステップS4においてYES)、端末100は、同一の通信ゲームを実行する端末100からのそれぞれの投票データのうちから、1つの投票データを選択して、実行するステージを決定する(ステップS5)。これによって、ゲームフェーズ前の準備フェーズが完了する。
【0117】
続いて、端末100は、決定したステージで通信ゲームのゲームフェーズを開始する(ステップS6)。
【0118】
なお、ステップS5の処理は、通信ゲームの主催者(親)となるユーザが使用する端末100のみが実行し、その他の端末100は、決定されたステージの情報を受信するだけでもよい。
【0119】
(d2:追加ステージへの投票可否決定)
図10は、
図9に示すステップS2のより詳細な処理手順を示すフローチャートである。
【0120】
図10を参照して、端末100は、接続を確立した端末100(同一の通信ゲームを実行する端末100)のうち利用権20(利用権データ116)を保有している端末100を示す保有リストを生成する(ステップS200)。
【0121】
より具体的には、利用権20(利用権データ116)を保有している端末100の各々は、自端末が所定の条件を満たすことを示す情報(利用権20を保有していることを示す情報)を、通信ゲームを実行するために通信している複数の端末100に含まれる他のすべての端末100へ送信する。当該情報を受信した端末100は、自端末が所定の条件を満たすことを示す情報に基づいて、保有リストを生成する。
【0122】
続いて、端末100は、自端末が利用権20(利用権データ116)を保有しているか否かを判断する(ステップS202)。自端末が利用権20(利用権データ116)を保有していれば(ステップS202においてYES)、端末100は、利用権データ116に含まれる暗号化鍵40を用いて暗号化データ50を生成し(ステップS204)、同一の通信ゲームを実行するすべての端末100へ送信する(ステップS206)。
【0123】
このように、所定の条件を満たす端末100は、通信ゲームを実行するときに、復号化鍵30に対応する暗号化鍵40を用いて暗号化した暗号化データ50を他の端末100へ送信する。
【0124】
自端末が利用権20(利用権データ116)を保有していなければ(ステップS202においてNO)、ステップS204およびS206の処理はスキップされる。
【0125】
端末100は、暗号化データ50の受信を待つ(ステップS208)。端末100は、検証処理を行っていない新たな暗号化データ50を受信したか否かを判断する(ステップS210)。同一の暗号化データ50を複数回受信することもあるが、既に検証処理を行った暗号化データ50については、改めて検証処理を行わなくてもよい。ステップS210は、同一の暗号化データ50に対して複数回の検証処理が行われないようにするための処理である。
【0126】
検証処理を行っていない新たな暗号化データ50を受信すると(ステップS210においてYES)、端末100は、検証処理を実行する(ステップS212)。このように、端末100は、所定の条件を満たす端末100から暗号化データ50を受信すると、受信した暗号化データ50を復号化鍵30に基づいて検証する。
【0127】
続いて、端末100は、検証処理によって正当な利用権20を保有しているとの検証結果が得られたか否かを判断する(ステップS214)。すなわち、端末100は、検証処理が成功したか否かを判断する。
【0128】
正当な利用権20を保有しているとの検証結果が得られると(ステップS214においてYES)、端末100は、正当な利用権20と判断された暗号化データ50および当該暗号化データ50の送信元の端末100を示す情報とを対応付けて検証済リストに登録する(ステップS216)。また、端末100は、追加ステージへの投票が可能であることを記録する(ステップS218)。そして、処理はリターンする。
【0129】
なお、検証結果は、独立した検証済リストに登録してもよいし、保有リストに登録(例えば、属性情報として付加)してもよい。
【0130】
このように、所定の条件を満たさない端末100が、所定の条件を満たす端末100から受信した暗号化データ50の検証が成功すると、所定の条件を満たさない端末100による通信ゲームにおける制限コンテンツデータ34の利用(本実施の形態においては追加ステージへの投票および投票結果としての追加ステージでの対戦ゲームを含む)を一時的に可能にする。
【0131】
正当な利用権20を保有しているとの検証結果が得られなければ(ステップS214においてNO)、ステップS208以下の処理が繰り返される。
【0132】
検証処理を行っていない新たな暗号化データ50を受信していなければ(ステップS210においてNO)、端末100は、ステップS200において生成した保有リストを参照して、利用権20(利用権データ116)を保有しているすべての端末100から暗号化データ50を受信済であるか否かを判断する(ステップS220)。
【0133】
このように、保有リストに基づいて、利用権20を保有しているすべての端末100から暗号化データ50を受信したか否かを判断する。
【0134】
暗号化データ50を受信していない端末100があれば(ステップS220においてNO)、ステップS208以下の処理が繰り返される。
【0135】
利用権20(利用権データ116)を保有しているすべての端末100から暗号化データ50を受信済であれば(ステップS220においてYES)、端末100は、追加ステージへの投票が不可能であることを記録する(ステップS222)。そして、処理はリターンする。
【0136】
このように、利用権20を保有しているすべての端末100から暗号化データ50をそれぞれ受信した状態であって、当該受信した暗号化データ50のすべてについて検証が失敗すると、端末100による通信ゲームにおける制限コンテンツデータ34の利用は可能にされない。
【0137】
(d3:暗号化データ生成)
図11は、
図10に示すステップS204のより詳細な処理手順を示すフローチャートである。
【0138】
図11を参照して、端末100は、選択情報を取得する(ステップS2040)。端末100は、検証文字列生成規則154に従って、検証用文字列156を生成する(ステップS2041)。
【0139】
端末100は、選択情報に基づいて、暗号化鍵群400のうちから1つの暗号化鍵40を選択する(ステップS2042)。端末100は、選択した暗号化鍵40を用いて、生成した検証用文字列156を暗号化して暗号化データ50を生成する(ステップS2043)。そして、処理はリターンする。
【0140】
(d4:検証処理)
図12は、
図10に示すステップS212のより詳細な処理手順を示すフローチャートである。
【0141】
図12を参照して、端末100は、選択情報を取得する(ステップS2120)。端末100は、選択情報に基づいて、復号化鍵群300のうちから1つの復号化鍵30を選択する(ステップS2121)。そして、端末100は、選択した復号化鍵30を用いて、検証対象の暗号化データ50を復号化する(ステップS2122)。
【0142】
端末100は、暗号化データ50を復号化して得られた復号結果164が所定の規則に適合しているか否かを判断する(ステップS2123)。復号結果164が所定の規則に適合していれば(ステップS2123においてYES)、端末100は、正当な利用権20を保有している(検証が成功した)との検証結果を出力する(ステップS2124)。そして、処理はリターンする。
【0143】
このように、端末100が暗号化データ50を複数受信した場合であっても、受信した複数の暗号化データ50のうち1つの暗号化データ50の検証が成功すると、正当な利用権20を保有しているとの検証結果が出力される。そのため、1つの暗号化データ50の検証が成功することで、端末100による通信ゲームにおける制限コンテンツデータ34の利用が一時的に可能になる。
【0144】
一方、復号結果164が所定の規則に適合していなければ(ステップS2123においてNO)、端末100は、正当な利用権20を保有していない(検証が失敗した)との検証結果を出力する(ステップS2125)。そして、処理はリターンする。
【0145】
(d5:ステージ投票画面生成およびステージ投票)
図13は、
図9に示すステップS3のより詳細な処理手順を示すフローチャートである。
図13を参照して、端末100は、追加ステージへの投票が可能であることが記録されているか否かを判断する(ステップS300)。
【0146】
追加ステージへの投票が可能であることが記録されていれば(ステップS300においてYES)、端末100は、標準ステージデータおよび追加ステージデータからステージ投票画面を生成する(ステップS302)。すなわち、追加ステージへの投票が可能なステージ投票画面が生成される。
【0147】
一方、追加ステージへの投票が可能であることが記録されていなければ(ステップS300においてNO)、端末100は、標準ステージデータのみからステージ投票画面を生成する(ステップS304)。
【0148】
端末100は、ユーザからのステージ投票を待つ(ステップS306)。端末100は、ステージ投票がなされた、または、ステージ投票がタイムアウトになったかを判断する(ステップS308)。
【0149】
ステージ投票がなされた、または、ステージ投票がタイムアウトになると(ステップS308においてYES)、端末100は、ユーザが投票したステージを示す投票データを生成する(ステップS310)。なお、ステージ投票がタイムアウトになると、任意の方法で決定されたステージに自動的に投票されてもよい。そして、処理はリターンする。
【0150】
ステージ投票がなされておらず、かつ、ステージ投票がタイムアウトしていなければ(ステップS308においてNO)、端末100は、暗号化データ50の受信を待つ(ステップS312)。
【0151】
端末100は、検証処理を行っていない新たな暗号化データ50を受信したか否かを判断する(ステップS314)。
【0152】
検証処理を行っていない新たな暗号化データ50を受信すると(ステップS314においてYES)、端末100は、検証処理を実行する(ステップS316)。なお、検証処理(ステップS316)の詳細な処理手順は、
図12に示す処理手順と同様である。
【0153】
ステップS2において、いずれかの暗号化データ50について検証処理が成功すると、それ以降に受信する暗号化データ50については検証処理を行わずに、追加ステージへの投票が可能であるとして処理が続行される。ステップS314およびS316は、主として、最初の検証処理が成功した後に受信し得る暗号化データ50を検証する処理である。例えば、新たなユーザが参加する場合には、当該新たなユーザが使用する端末100から新たな暗号化データ50が送信される可能性も想定される。また、追加ステージへの投票を可能にした利用権20を保有している端末100が離脱した場合(ステップS326など参照)には、検証処理が成功した別の暗号化データ50の有無が判断されるため、ステップS314およびS316において、別の暗号化データ50を用意することも予定されている。
【0154】
端末100は、検証処理によって正当な利用権20を保有しているとの検証結果が得られたか否かを判断する(ステップS318)。正当な利用権20を保有しているとの検証結果が得られると(ステップS318においてYES)、端末100は、正当な利用権20と判断された暗号化データ50および当該暗号化データ50の送信元の端末100を示す情報とを対応付けて検証済リストに登録する(ステップS320)。また、端末100は、追加ステージへの投票が可能であることを記録する(ステップS322)。そして、ステップS300以下の処理が繰り返される。
【0155】
正当な利用権20を保有しているとの検証結果が得られなければ(ステップS318においてNO)、ステップS306以下の処理が繰り返される。
【0156】
検証処理を行っていない新たな暗号化データ50を受信していなければ(ステップS314においてNO)、端末100は、追加ステージへの投票を可能にした利用権20を保有している端末100が離脱したか否かを判断する(ステップS324)。
【0157】
追加ステージへの投票を可能にした利用権20を保有している端末100が離脱していれば(ステップS324においてYES)、端末100は、検証済リストに正当な利用権20と判断された別の暗号化データ50が登録されているか否かを判断する(ステップS326)。
【0158】
検証済リストに正当な利用権20と判断された別の暗号化データ50が登録されていれば(ステップS326においてYES)、ステップS302以下の処理が繰り返される。
【0159】
検証済リストに正当な利用権20と判断された別の暗号化データ50が登録されていなければ(ステップS326においてNO)、端末100は、追加ステージへの投票が不可能であることを記録する(ステップS328)。そして、ステップS304以下の処理が繰り返される。
【0160】
追加ステージへの投票を可能にした利用権20を保有している端末100が離脱していなければ(ステップS324においてNO)、ステップS306以下の処理が繰り返される。
【0161】
図13に示す処理手順において、ユーザが投票したステージを示す投票データが生成されると(ステップS310)、処理はリターンするので、その後に、追加ステージへの投票を可能にした利用権20を保有している端末100が離脱しても、投票データは有効なものとして取り扱われる。この場合には、制限コンテンツデータ34の利用を一時的に可能にされた端末100において、検証が成功した暗号化データ50を送信した端末100が通信ゲームから離脱したとしても、当該準備フェーズに続くゲームフェーズにおいては、制限コンテンツデータ34の利用は継続して可能にされる。
【0162】
図13に示す処理手順においては、準備フェーズにおいて、制限コンテンツデータ34の利用に対するユーザ操作を受け付けた場合(例えば、ユーザによる投票)には、検証が成功した暗号化データ50を送信した端末100が準備フェーズで通信ゲームから離脱したとしても、ゲームフェーズにおいては、制限コンテンツデータ34の利用は継続して可能にされる。
【0163】
なお、ユーザは、追加ステージを含むステージ投票画面において、追加ステージ以外を選択する場合もある。但し、あるユーザが追加ステージ以外を選択したとしても、他のユーザが追加ステージを選択した場合には、追加ステージが実行されると決定されることもある。そのため、制限コンテンツデータ34の利用に対するユーザ操作は、制限コンテンツデータ34に含まれる追加ステージに投票する操作だけではなく、追加ステージ以外のステージに投票する操作を含む。
【0164】
変形例として、制限コンテンツデータ34の利用に対するユーザ操作を受け付ける前に、検証が成功した暗号化データ50を送信した端末100が通信ゲームから離脱したとしても、制限コンテンツデータ34の利用を継続して可能にしてもよい。
【0165】
なお、準備フェーズで制限コンテンツデータ34の利用に対するユーザ操作を受け付けた後に、検証が成功した暗号化データ50を送信した端末100が通信ゲームから離脱した場合には、当該準備フェーズに続くゲームフェーズにおいて、制限コンテンツデータ34の利用を再度不可能にしてもよい。
【0166】
図13に示す処理手順において、ユーザが投票したステージを示す投票データが生成される前に、追加ステージへの投票を可能にした利用権20を保有している端末100が離脱した場合には、利用権20を保有している別の端末100が存在すれば、制限コンテンツデータ34の利用(追加ステージへの投票)は継続して可能にされる。一方で、利用権20を保有している別の端末100が存在しなければ、制限コンテンツデータ34の利用は不可能とされる。
【0167】
なお、追加ステージへの投票を可能にした利用権20を保有している端末100が離脱しても、制限コンテンツデータ34の利用を継続して可能にしてもよい。
【0168】
(d5:投票データの正当性確認)
端末100は、投票データから実行するステージを決定する前に、投票データの正当性を確認してもよい。例えば、端末100が送信する投票データには、選択されたステージに加えて、制限コンテンツデータ34が利用可能となった利用権20を示す情報を含めてもよい。利用権20を示す情報は、例えば、対応する暗号化データ50および暗号化データ50の送信元の端末100を示す情報を含んでいてもよい。
【0169】
端末100は、投票データから実行するステージを決定する前に、追加ステージを指定する投票データについては、当該投票データに含まれる情報に基づいて、再度の検証処理を行ってもよい。
【0170】
このとき、再度の検証処理によって、利用権20が不正なものであると判断されると、接続している1または複数の端末100を解散してもよい。
【0171】
[E.その他の形態]
(e1:検証処理)
上述の実施の形態において、受信する暗号化データ50を順次検証し、いずれか1つの暗号化データ50により所定の条件が満たされると、制限コンテンツデータ34を一時的に利用可能とする。したがって、所定の条件が満たされた後には、必ずしも暗号化データ50の検証を行わなくてもよい。
【0172】
なお、上述の実施の形態のように、ユーザによる投票が完了しない間は、受信した他の暗号化データ50を検証するようにしてもよい。すべての暗号化データ50を検証することで、不正な端末100が存在しないことを確認できる。
【0173】
また、受信したすべての暗号化データ50を検証するようにしてもよい。この場合において、暗号化データ50の検証が成功した端末100が離脱したときでも、暗号化データ50の検証が成功した他に端末100が存在すれば、スムーズに、制限コンテンツデータ34の一時的な利用を引き続き有効なものとできる。
【0174】
別の変形例として、受信したすべての暗号化データ50の検証が成功して、暗号化データ50を送信したすべての端末100が所定の条件を満たしている場合に限って、制限コンテンツデータ34を一時的に利用可能としてもよい。
【0175】
(e2:検証結果)
上述の実施の形態においては、端末100がコンテンツデータを有しているので、端末100は、正当な利用権20を保有しているとの検証結果に基づいて、当該コンテンツデータへのアクセスを可能化する。
【0176】
変形例としては、同一の通信ゲームを実行している他の端末100と検証結果を共有できるように、端末100が検証結果を外部に送信するようにしてもよい。また、一時的に利用可能とされるコンテンツデータの一部がサーバなどに格納されている場合には、当該サーバに格納されたコンテンツデータへのアクセスを可能化するために、端末100が検証結果を外部に送信するようにしてもよい。
【0177】
(e3:検証処理の適用例)
上述の実施の形態においては、端末100の各々は、同一の通信ゲームを実行する他の端末100(または、他の端末100を使用するユーザ)が所定の条件を満たしているか否かを判断する。そして、所定の条件を満たしていると判断されると、当該通信ゲームにおいて、コンテンツデータが一時的に利用可能になる。
【0178】
所定の条件を満たしているか否かの判断(検証処理)は、端末100が有しているコンテンツデータを一時的に利用可能にする仕組みに限らず、任意の処理に適用することができる。
【0179】
例えば、所定の条件を満たす端末100のみが制限コンテンツデータ34(コンテンツデータ)を保持するようにした場合には、検証処理を用いることで、制限コンテンツデータ34を保持している端末100が本当に所定の条件を満たしている否かを確認できる。
【0180】
また、制限コンテンツデータ34(コンテンツデータ)とは独立して、所定の条件を満たしているか否かを判断することのみを目的として検証処理を実行してもよいし、検証処理の結果をどのような処理に用いてもよい。
【0181】
すなわち、端末100は、任意の目的で、他の端末100および/または当該端末100自身が所定の条件を満たしているか否かを判断できる。判断結果(検証結果)は、どのような処理に用いてもよい。
【0182】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0183】
10A,10B システム、12 ネットワーク、20 利用権、30 復号化鍵、32 標準コンテンツデータ、34 制限コンテンツデータ、36 管理モジュール、40 暗号化鍵、50 暗号化データ、52,156 検証用文字列、60 暗号化処理、62 復号化処理、64 判断処理、66 検証結果、100,100R,100S 端末、102 プロセッサ、104 メモリ、106 ディスプレイ、108 操作部、110 ストレージ、112 システムプログラム、114 アプリケーションデータ、116 利用権データ、120 通信部、122 バス、150 暗号化鍵選択モジュール、152 検証用文字列生成モジュール、154 検証文字列生成規則、158 暗号化モジュール、160 復号化鍵選択モジュール、162 復号化モジュール、164 復号結果、166 判断モジュール、168 可能化モジュール、170 受信バッファ、200 サーバ、300 復号化鍵群、400 暗号化鍵群。