(57)【要約】【課題】ソフトウェアの流通回数に応じてソフトウェアにより提供される機能を制限することを可能とする。【解決手段】アカウント識別情報を取得する識別情報取得部と、前記識別情報取得部により取得された前記アカウント識別情報が流通履歴ファイルに存在する場合、前記アカウント識別情報に対応する履歴番号を前記流通履歴ファイルから取得する履歴番号取得部と、前記履歴番号取得部により取得された前記履歴番号に応じてソフトウェアにより提供される機能を制御する機能制御部と、を備える、情報処理装置が提供される。【選択図】図２
2013025607.tif 000002
【特許請求の範囲】
【請求項１】
アカウント識別情報を取得する識別情報取得部と、
前記識別情報取得部により取得された前記アカウント識別情報が流通履歴ファイルに存在する場合、前記アカウント識別情報に対応する履歴番号を前記流通履歴ファイルから取得する履歴番号取得部と、
前記履歴番号取得部により取得された前記履歴番号に応じてソフトウェアにより提供される機能を制御する機能制御部と、
を備える、情報処理装置。
【請求項２】
前記識別情報取得部は、前記情報処理装置を識別するためのデバイス識別情報をさらに取得し、
前記履歴番号取得部は、前記識別情報取得部により取得された前記アカウント識別情報が前記流通履歴ファイルに存在しない場合、かつ、前記識別情報取得部により取得された前記デバイス識別情報が前記流通履歴ファイルに存在する場合、前記デバイス識別情報に対応する履歴番号を前記流通履歴ファイルから取得する、
請求項１に記載の情報処理装置。
【請求項３】
前記情報処理装置は、前記流通履歴ファイルに書き込まれている流通履歴の件数に所定値を加算して得られる履歴番号と前記識別情報取得部により取得された前記アカウント識別情報とが対応付けられてなる流通履歴を前記流通履歴ファイルに追記する記録制御部をさらに備え、
前記履歴番号取得部は、前記記録制御部により追記された前記流通履歴から前記履歴番号を取得する、
請求項１に記載の情報処理装置。
【請求項４】
前記記録制御部は、前記識別情報取得部により取得された前記デバイス識別情報が前記アカウント識別情報及び前記履歴番号にさらに対応付けられてなる流通履歴を前記流通履歴ファイルに追記する、
請求項３に記載の情報処理装置。
【請求項５】
前記情報処理装置は、前記記録制御部により前記流通履歴が前記流通履歴ファイルに追記された後、前記流通履歴ファイルに書き込まれている１又は複数の流通履歴に基づいて作成される署名を前記流通履歴ファイルに書き込む処理部をさらに備える、
請求項３に記載の情報処理装置。
【請求項６】
前記情報処理装置は、前記流通履歴ファイルに書き込まれている署名が正しいか否かを判断する判断部をさらに備え、
前記履歴番号取得部は、前記判断部により前記流通履歴ファイルに書き込まれている署名が正しくないと判断された場合には、前記履歴番号を前記流通履歴ファイルから取得することを禁止する、
請求項１に記載の情報処理装置。
【請求項７】
前記情報処理装置は、前記識別情報取得部により取得された前記アカウント識別情報に対応する履歴番号が前記流通履歴ファイルに書き込まれている場合、前記流通履歴ファイルに書き込まれている前記履歴番号を初期値に更新する更新部をさらに備える、
請求項１に記載の情報処理装置。
【請求項８】
前記流通履歴ファイルには、前記ソフトウェアの流通序数を示す履歴番号とアカウント識別情報とデバイス識別情報とが対応付けられてなる流通履歴が１又は複数書き込まれる、
請求項１に記載の情報処理装置。
【請求項９】
前記１又は複数の流通履歴は、暗号化されている、
請求項８に記載の情報処理装置。
【請求項１０】
アカウント識別情報を取得することと、
前記アカウント識別情報が流通履歴ファイルに存在する場合、前記アカウント識別情報に対応する履歴番号を前記流通履歴ファイルから取得することと、
前記履歴番号に応じてソフトウェアにより提供される機能を制御することと、
を含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
１つのソフトウェアは様々な情報処理装置により実行され得るため、ユーザは新品のソフトウェアよりも安く入手できる中古のソフトウェアを購入する場合がある。しかし、新品のソフトウェアを販売する企業は、一度新品のソフトウェアを販売した後は、中古のソフトウェアの販売に際して直接的に利益を得ることができないのが通例である。したがって、新品のソフトウェアを販売する企業は、ユーザによる新品のソフトウェアの購入を促進するため、様々な試みを行っている。
【０００３】
その試みの一例として、記録媒体に記録されているソフトウェアが中古であると判断した場合に、そのソフトウェアにより提供される機能を制限する技術が知られている。例えば、記録媒体に記録されている固有コードが再生装置に登録されているか否かを判断し、固有コードが再生装置に登録されていない場合には、そのソフトウェアにより提供される機能を制限する技術が開示されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１０３２３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、新品のソフトウェアを購入したユーザと中古のソフトウェアを購入したユーザとの間でソフトウェアにより提供される機能に差をつけることができるが、ソフトウェアの流通回数に応じてソフトウェアにより提供される機能を制限することはできない。したがって、ソフトウェアの流通回数に応じてソフトウェアにより提供される機能を制限する技術が提供されることが望ましい。
【課題を解決するための手段】
【０００６】
本開示によれば、アカウント識別情報を取得する識別情報取得部と、前記識別情報取得部により取得された前記アカウント識別情報が流通履歴ファイルに存在する場合、前記アカウント識別情報に対応する履歴番号を前記流通履歴ファイルから取得する履歴番号取得部と、前記履歴番号取得部により取得された前記履歴番号に応じてソフトウェアにより提供される機能を制御する機能制御部と、を備える、情報処理装置が提供される。
【０００７】
また、本開示によれば、アカウント識別情報を取得することと、前記アカウント識別情報が流通履歴ファイルに存在する場合、前記アカウント識別情報に対応する履歴番号を前記流通履歴ファイルから取得することと、前記履歴番号に応じてソフトウェアにより提供される機能を制御することと、を含む、情報処理方法が提供される。
【発明の効果】
【０００８】
以上説明したように、本開示によれば、ソフトウェアの流通回数に応じてソフトウェアにより提供される機能を制限することができる。
【図面の簡単な説明】
【０００９】
【図１】本開示の実施形態に係る情報処理システムの構成例を示す図である。
【図２】情報処理装置の機能構成を示す図である。
【図３】流通履歴ファイルの構成を示す図である。
【図４】新品ソフトウェア購入時における流通履歴ファイルの取り扱いを説明するための図である。
【図５】中古ソフトウェア購入時における流通履歴ファイルの取り扱いを説明するための図である。
【図６】中古から新品への更新時における流通履歴ファイルの取り扱いを説明するための図である。
【図７】ソフトウェア起動時における動作を示すフローチャートである。
【図８】ソフトウェア起動時における動作を示すフローチャートである。
【図９】ソフトウェア実行時における動作を示すフローチャートである。
【図１０】中古から新品への更新時における動作を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。以下において、複数の情報処理装置１０（例えば、情報処理装置１０Ａ、１０Ｂ及び１０Ｃ）を区別しない場合には、情報処理装置１０と記すこととする。
【００１１】
また、以下の順序で説明を行う。
１．実施形態
１−１．情報処理システムの構成例
１−２．情報処理装置の構成例
１−３．情報処理装置の動作の流れ
２．まとめ
【００１２】
＜１．実施形態＞
［１−１．情報処理システムの構成例］
まず、本開示の実施形態に係る情報処理システムの構成例について説明する。図１は、本開示の実施形態に係る情報処理システムの構成例を示す図である。図１に示すように、本開示の実施形態に係る情報処理システム１は、情報処理装置１０とアカウント管理サーバ２０と更新サーバ６０とを備える。情報処理装置１０とアカウント管理サーバ２０と更新サーバ６０とはネットワーク３０に接続され、ネットワーク３０を介して相互に通信を行うことが可能である。
【００１３】
情報処理装置１０は、新品又は中古のソフトウェアを実行することが可能である。ソフトウェアが記録されるメディアの流通履歴ファイルには、ソフトウェアの流通序数を示す履歴番号及びそのソフトウェアに対してユーザが与えられるアカウントを識別するためのアカウント識別情報（以下、「Ａｃｃｏｕｎｔ  ＩＤ」とも言う。）が対応付けられた流通履歴が記録されている。すなわち、履歴番号は、ソフトウェアがユーザから他のユーザに販売される度に増加することになる。
【００１４】
ユーザがソフトウェアを購入し、情報処理装置１０にソフトウェアを起動させる操作を行うと、情報処理装置１０は、流通履歴ファイルの流通履歴を更新する。また、ユーザが情報処理装置１０にソフトウェアを実行させる操作を行うと、情報処理装置１０は、ユーザのＡｃｃｏｕｎｔ  ＩＤに対応する履歴番号に応じてソフトウェアにより提供される機能を制御することができる。情報処理装置１０は、例えば、ゲーム機、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの任意の種類の装置であってよい。
【００１５】
アカウント管理サーバ２０は、情報処理装置１０からの要求に従って、情報処理装置１０を使用するユーザのＡｃｃｏｕｎｔ  ＩＤを返信する。Ａｃｃｏｕｎｔ  ＩＤは、ユーザごとに割り当てられるＩＤであり、アカウント管理サーバ２０にあらかじめ登録されている。アカウント管理サーバ２０にＡｃｃｏｕｎｔ  ＩＤを登録する手法は、特に限定されないが、例えば、情報処理装置１０からのＡｃｃｏｕｎｔ  ＩＤの登録要求に従って、アカウント管理サーバ２０は、情報処理装置１０を使用するユーザのＡｃｃｏｕｎｔ  ＩＤを発行する。アカウント管理サーバ２０により発行されたＡｃｃｏｕｎｔ  ＩＤは、アカウント管理サーバ２０のＤＢに格納される。ただし、ユーザにより情報処理装置１０に入力されたＡｃｃｏｕｎｔ  ＩＤが使用される場合には、アカウント管理サーバ２０は存在しなくてもよい。
【００１６】
更新サーバ６０は、情報処理装置１０からの要求に従って、情報処理装置１０を使用するユーザのＡｃｃｏｕｎｔ  ＩＤに対応する履歴番号を初期値に更新するための事前処理を行う。事前処理が完了すれば、情報処理装置１０は、ユーザのＡｃｃｏｕｎｔ  ＩＤに対応する履歴番号を初期値に更新することができる。履歴番号が初期値に更新された後は、情報処理装置１０は、初期値に応じたソフトウェアの機能を提供することができる。
【００１７】
［１−２．情報処理装置の構成例］
続いて、情報処理装置１０の構成例について説明する。図２は、情報処理装置１０の機能構成を示す図である。図２に示すように、情報処理装置１０は、例えば、通信部１１０、入力部１２０、記憶部１３０、制御部１４０及び出力部１５０を備える。制御部１４０は、判断部１４１、識別情報取得部１４２、記録制御部１４３、処理部１４４、履歴番号取得部１４５、機能制御部１４６及び更新部１４７を備える。制御部１４０が有する機能は、例えば、履歴管理モジュール５１３により提供される。
【００１８】
通信部１１０は、アカウント管理サーバ２０と通信を行う機能、更新サーバ６０と通信を行う機能を有する。入力部１２０は、ユーザによりなされる操作を受け付ける機能を有する。記憶部１３０は、制御部１４０により実行されるプログラムやプログラム実行に際して使用される各種データを記憶する機能を有する。出力部１５０は、制御部１４０による制御に従って、各種情報を出力する機能を有する。制御部１４０が有する機能については、後に詳細に述べる。
【００１９】
メディア（記録媒体）５０に記録されたソフトウェアや流通履歴ファイルは、制御部１４０により読み込まれる。また、流通履歴ファイルには、制御部１４０により１又は複数の流通履歴が書き込まれる。１又は複数の流通履歴は暗号化され得る。図３は、流通履歴ファイルの構成を示す図である。図３に示すように、流通履歴ファイルは、ヘッダ部、ボディ部及び署名部を有している。ヘッダ部は、メディア５０を一意に識別するためのＭｅｄｉａ  ＩＤ、ボディ部のサイズ及び署名部のサイズを含んでいる。Ｍｅｄｉａ  ＩＤ、ボディ部のサイズ及び署名部のサイズの各々のフィールド長は、固定長とすることができる。
【００２０】
ヘッダ部に含まれるＭｅｄｉａ  ＩＤは、情報処理装置１０によるソフトウェア起動時及び実行時に、メディア５０の書き込み不可領域に記録されているＭｅｄｉａ  ＩＤ５１１と一致することが制御部１４０により確認される。このため、流通履歴ファイルのすり替えを防止することができる。ボディ部のサイズは、ボディ部が読み込まれる際に使用され、署名部のサイズは、署名部が読み込まれる際に使用され得る。
【００２１】
ボディ部は、履歴番号が記録される履歴番号フィールド、情報処理装置１０を一意に識別するためのＤｅｖｉｃｅ  ＩＤが記録されるＤｅｖｉｃｅ  ＩＤフィールド及びＡｃｃｏｕｎｔ  ＩＤが記録されるＡｃｃｏｕｎｔ  ＩＤフィールドを有している。履歴番号フィールド、Ｄｅｖｉｃｅ  ＩＤフィールド及びＡｃｃｏｕｎｔ  ＩＤフィールドの各々のサイズは、固定長とすることができる。履歴番号、Ｄｅｖｉｃｅ  ＩＤ及びＡｃｃｏｕｎｔ  ＩＤの組み合わせは、流通履歴として流通履歴ファイルに記録される。
【００２２】
履歴番号は、上記したように、ソフトウェアの流通序数を示し、１人目のユーザによりソフトウェアが起動されると履歴番号に初期値（例えば「１」）が設定された流通履歴が流通履歴ファイルに記録される。続いて、そのソフトウェアが２人目のユーザにより起動されると履歴番号に次の値（例えば、「２」）が設定された流通履歴が流通履歴ファイルに記録される。その後、そのソフトウェアが３人目のユーザに起動されると履歴番号に次の値（例えば、「３」）が設定された流通履歴が流通履歴ファイルに記録される。
【００２３】
Ｄｅｖｉｃｅ  ＩＤは、情報処理装置１０を一意に識別するための情報であり、例えば、情報処理装置１０の記憶部１３０に記憶されている。ユーザによりソフトウェアが起動されるとＤｅｖｉｃｅ  ＩＤに情報処理装置１０を一意に識別するための情報が設定された流通履歴が流通履歴ファイルに記録される。
【００２４】
Ａｃｃｏｕｎｔ  ＩＤは、上記したように、ソフトウェアに対してユーザが与えられるアカウントを識別するためのアカウント識別情報であり、例えば、アカウント管理サーバ２０から取得される。ユーザによりソフトウェアが起動されるとＡｃｃｏｕｎｔ  ＩＤに情報処理装置１０を使用するユーザのアカウント識別情報が設定された流通履歴が流通履歴ファイルに記録される。デバイス（情報処理装置１０）を一度もオンライン状態としていない場合は、そのユーザのＡｃｃｏｕｎｔ  ＩＤフィールドにはＡｃｃｏｕｎｔ  ＩＤが設定されない。
【００２５】
ボディ部は、情報処理装置１０により暗号化された状態で流通するようにしてもよい。その場合には、情報処理装置１０は、ボディ部から読み込んだ情報を復号する必要がある。また、情報処理装置１０は、ボディ部に情報を書き込む場合には、暗号化された情報を書き込む必要がある。このようにボディ部を暗号化することにより、ボディ部の不正な読み取りを防止することができる。
【００２６】
署名部は、署名が記録されるフィールドを有している。署名フィールドのサイズは、固定長とすることができる。署名は、ヘッダ部及びボディ部に対してサインして得られる情報である。上記したように、ボディ部は暗号化済みであってもよい。ヘッダ部及びボディ部に対するサインは、どのようになされてもよい。例えば、ヘッダ部及びボディ部に基づいてハッシュ値が算出され、算出されたハッシュ値とヘッダ部及びボディ部とに対して暗号化が施されることによりサインがなされる。署名が付されることにより流通履歴ファイル５２１の改竄を防止することができる。
【００２７】
図４は、新品ソフトウェア購入時における流通履歴ファイルの取り扱いを説明するための図である。図４に示されたように、メディア５０は、書き込み不可領域５１及び書き込み可能領域５２を有している。書き込み不可領域５１には、Ｍｅｄｉａ  ＩＤ５１１とソフトウェア５１２とが記録されている。履歴管理モジュール５１３はソフトウェア５１２に含まれているが、例えば、履歴管理モジュール５１３は、メモリ４２に記録されていてもよい。流通履歴ファイルに対する処理は、履歴管理モジュール５１３がＣＰＵ４１により実行されることによりなされる。
【００２８】
書き込み可能領域５２には、流通履歴ファイル５２１が記録されており、流通履歴ファイル５２１には、上記したように、ヘッダ部、ボディ部及び署名部が含まれている。なお、ソフトウェア５１２により提供される機能は、ＣＰＵ４１によりメディア５０からソフトウェア５１２が読み出されてメモリ４２に展開され、実行されることにより実現される。また、情報処理装置１０が提供する基本的な動作は、ＣＰＵ４１により記憶装置４３からＯＳ４４が読み出されてメモリ４２に展開され、実行されることにより実現される。
【００２９】
記憶装置４３は、図２に示した例では記憶部１３０に相当し、暗号化用の鍵及び署名用の鍵を記憶している。暗号化用の鍵及び署名用の鍵の各々は、全デバイス（全ての情報処理装置１０）に共通である。
【００３０】
ここでは、Ａさんが新品のソフトウェアを購入したと仮定する。Ａさんが新品ソフトウェアを情報処理装置１０Ａに起動させると（ステップＲ１１）、判断部１４１は、暗号化用の鍵及び署名用の鍵を記憶装置４３から取得し（ステップＲ１２）、署名用の鍵を用いてヘッダ部及びボディ部の署名を検証し、署名の検証に成功した場合に、暗号化用の鍵を用いてボディ部を復号する。
【００３１】
続いて、識別情報取得部１４２は、ＡさんのＡｃｃｏｕｎｔ  ＩＤを取得する。例えば、識別情報取得部１４２は、アカウント管理サーバ２０を動作させるアカウント管理ソフトウェア２１の機能によりＡｃｃｏｕｎｔ  ＩＤの認証が行われ（ステップＲ１３）、認証が正常になされれば、ＤＢ２２に登録されているＡさんのＡｃｃｏｕｎｔ  ＩＤを取得することができる。記録制御部１４３は、流通履歴ファイル５２１に書き込まれている流通履歴の件数に所定値（例えば「１」）を加算して得られる履歴番号と識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤとが対応付けられてなる流通履歴を流通履歴ファイル５２１に追記する。
【００３２】
図４に示した場合においては、Ａさんが新品のソフトウェアを購入したと仮定しているため、流通履歴ファイル５２１に書き込まれている流通履歴の件数は「０」であり、「０」に対して「１」を加算して得られる履歴番号「１」と、ＡさんのＡｃｃｏｕｎｔ  ＩＤとが対応付けられてなる流通履歴を流通履歴ファイル５２１に追記する。記録制御部１４３は、流通履歴を追記するときには、暗号化された流通履歴を追記する。
【００３３】
追記される情報は、Ａｃｃｏｕｎｔ  ＩＤ及び履歴番号だけに限定されない。例えば、記録制御部１４３は、識別情報取得部１４２により取得されたＤｅｖｉｃｅ  ＩＤがＡｃｃｏｕｎｔ  ＩＤ及び履歴番号にさらに対応付けられてなる流通履歴を流通履歴ファイル５２１に追記してもよい。上記したように、Ｄｅｖｉｃｅ  ＩＤは、例えば、情報処理装置１０Ａの記憶部１３０に記憶されている。
【００３４】
また、処理部１４４は、記録制御部１４３により流通履歴が流通履歴ファイル５２１に追記された後、流通履歴ファイル５２１に書き込まれている１又は複数の流通履歴に基づいて作成される署名を流通履歴ファイル５２１に書き込んでもよい。より詳細には、処理部１４４は、流通履歴ファイル５２１のヘッダ部を更新するとともに、流通履歴ファイル５２１の署名部の署名をヘッダ部と暗号化済みのボディ部とに対してサインして得られる署名に更新してもよい（ステップＲ１４）。
【００３５】
続いて、Ａさんがソフトウェアでの特定の操作を行うことにより新品ソフトウェアを情報処理装置１０Ａに実行させると（ステップＰ１１）、判断部１４１は、暗号化用の鍵及び署名用の鍵を記憶装置４３から取得し（ステップＰ１２）、署名用の鍵を用いてヘッダ部及びボディ部の署名を検証し、署名の検証に成功した場合に、暗号化用の鍵を用いてボディ部を復号する。
【００３６】
続いて、識別情報取得部１４２は、ＡさんのＡｃｃｏｕｎｔ  ＩＤを取得する。例えば、識別情報取得部１４２は、アカウント管理サーバ２０を動作させるアカウント管理ソフトウェア２１の機能によりＡｃｃｏｕｎｔ  ＩＤの認証が行われ（ステップＰ１３）、認証が正常になされれば、ＤＢ２２に登録されているＡさんのＡｃｃｏｕｎｔ  ＩＤを取得することができる。履歴番号取得部１４５は、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１に存在する場合、Ａｃｃｏｕｎｔ  ＩＤに対応する履歴番号を流通履歴ファイル５２１から取得する（ステップＰ１４）。
【００３７】
図４に示した場合においては、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１に存在するため、Ａｃｃｏｕｎｔ  ＩＤに対応する履歴番号「１」を流通履歴ファイル５２１から取得する。その後、機能制御部１４６は、履歴番号取得部１４５により取得された履歴番号に応じてソフトウェアにより提供される機能を制御することができる。図４に示した場合においては、履歴番号取得部１４５により履歴番号「１」が取得されるため、履歴番号「１」に応じた機能を提供することができる。履歴番号「１」は、ソフトウェアが新品であることを意味するため、特に機能制限を設けなくてもよい。
【００３８】
識別情報取得部１４２は、Ｄｅｖｉｃｅ  ＩＤをさらに取得してもよい。上記したように、Ｄｅｖｉｃｅ  ＩＤは、例えば、情報処理装置１０Ａの記憶部１３０に記憶されている。そして、履歴番号取得部１４５は、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１に存在しない場合、かつ、識別情報取得部１４２により取得されたＤｅｖｉｃｅ  ＩＤが流通履歴ファイル５２１に存在する場合、Ｄｅｖｉｃｅ  ＩＤに対応する履歴番号を流通履歴ファイル５２１から取得してもよい。
【００３９】
このようにすれば、Ａｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１に存在しなくても、Ｄｅｖｉｃｅ  ＩＤが流通履歴ファイル５２１に存在しさえすれば、履歴番号取得部１４５により履歴番号が取得される。したがって、Ａｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１に存在しなくても、履歴番号取得部１４５により取得された履歴番号に基づいてソフトウェアの機能が提供され得るため、流通履歴ファイル５２１に存在するＡｃｃｏｕｎｔ  ＩＤを持っていないユーザを救済することができる。
【００４０】
図５は、中古ソフトウェア購入時における流通履歴ファイルの取り扱いを説明するための図である。ここでは、Ｂさんがｎ番目に中古でソフトウェアを購入したと仮定する。Ｂさんが中古ソフトウェアを情報処理装置１０Ａに起動させると（ステップＲ２１）、判断部１４１は、暗号化用の鍵及び署名用の鍵を記憶装置４３から取得し（ステップＲ２２）、署名用の鍵を用いてヘッダ部及びボディ部の署名を検証し、署名の検証に成功した場合に、暗号化用の鍵を用いてボディ部を復号する。
【００４１】
続いて、識別情報取得部１４２は、ＢさんのＡｃｃｏｕｎｔ  ＩＤを取得する。例えば、識別情報取得部１４２は、アカウント管理サーバ２０を動作させるアカウント管理ソフトウェア２１の機能によりＡｃｃｏｕｎｔ  ＩＤの認証が行われ（ステップＲ２３）、認証が正常になされれば、ＤＢ２２に登録されているＢさんのＡｃｃｏｕｎｔ  ＩＤを取得することができる。記録制御部１４３は、流通履歴ファイル５２１に書き込まれている流通履歴の件数に所定値（例えば「１」）を加算して得られる履歴番号と識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤとが対応付けられてなる流通履歴を流通履歴ファイル５２１に追記する。
【００４２】
図５に示した場合においては、Ｂさんがｎ番目に中古でソフトウェアを購入したと仮定しているため、流通履歴ファイル５２１に書き込まれている流通履歴の件数は「ｎ−１」であり、「ｎ−１」に対して「１」を加算して得られる履歴番号「ｎ」と、ＢさんのＡｃｃｏｕｎｔ  ＩＤとが対応付けられてなる流通履歴を流通履歴ファイル５２１に追記する。記録制御部１４３は、流通履歴を追記するときには、暗号化された流通履歴を追記する。
【００４３】
追記される情報は、Ａｃｃｏｕｎｔ  ＩＤ及び履歴番号だけに限定されない。例えば、記録制御部１４３は、識別情報取得部１４２により取得されたＤｅｖｉｃｅ  ＩＤがＡｃｃｏｕｎｔ  ＩＤ及び履歴番号にさらに対応付けられてなる流通履歴を流通履歴ファイル５２１に追記してもよい。上記したように、Ｄｅｖｉｃｅ  ＩＤは、例えば、情報処理装置１０Ｂの記憶部１３０に記憶されている。
【００４４】
また、処理部１４４は、記録制御部１４３により流通履歴が流通履歴ファイル５２１に追記された後、流通履歴ファイル５２１に書き込まれている１又は複数の流通履歴に基づいて作成される署名を流通履歴ファイル５２１に書き込んでもよい。より詳細には、処理部１４４は、流通履歴ファイル５２１のヘッダ部を更新するとともに、流通履歴ファイル５２１の署名部の署名をヘッダ部と暗号化済みのボディ部とに対してサインして得られる署名に更新してもよい（ステップＲ２４）。
【００４５】
続いて、Ｂさんがソフトウェアでの特定の操作を行うことにより中古ソフトウェアを情報処理装置１０Ｂに実行させると（ステップＰ２１）、判断部１４１は、暗号化用の鍵及び署名用の鍵を記憶装置４３から取得し（ステップＰ２２）、署名用の鍵を用いてヘッダ部及びボディ部の署名を検証し、署名の検証に成功した場合に、暗号化用の鍵を用いてボディ部を復号する。
【００４６】
続いて、識別情報取得部１４２は、ＢさんのＡｃｃｏｕｎｔ  ＩＤを取得する。例えば、識別情報取得部１４２は、アカウント管理サーバ２０を動作させるアカウント管理ソフトウェア２１の機能によりＡｃｃｏｕｎｔ  ＩＤの認証が行われ（ステップＰ２３）、認証が正常になされれば、ＤＢ２２に登録されているＢさんのＡｃｃｏｕｎｔ  ＩＤを取得することができる。履歴番号取得部１４５は、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１に存在する場合、Ａｃｃｏｕｎｔ  ＩＤに対応する履歴番号を流通履歴ファイル５２１から取得する（ステップＰ２４）。
【００４７】
図５に示した場合においては、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１に存在するため、Ａｃｃｏｕｎｔ  ＩＤに対応する履歴番号「ｎ」を流通履歴ファイル５２１から取得する。その後、機能制御部１４６は、履歴番号取得部１４５により取得された履歴番号に応じてソフトウェアにより提供される機能を制御することができる。図５に示した場合においては、履歴番号取得部１４５により履歴番号「ｎ」が取得されるため、履歴番号「ｎ」に応じた機能を提供することができる。
【００４８】
例えば、履歴番号「ｎ」が大きいほど、流通序数が大きいことを意味するため、機能制御部１４６は、機能制限を厳しくすることができる。機能制限は、例えば、ソフトウェアの実行により出現するアイテム（又はキャラクタ）の数を少なくしたりアイテムの出現する時間を短くしたりすることにより厳しくすることができる。
【００４９】
識別情報取得部１４２は、Ｄｅｖｉｃｅ  ＩＤをさらに取得してもよい。上記したように、Ｄｅｖｉｃｅ  ＩＤは、例えば、情報処理装置１０Ｂの記憶部１３０に記憶されている。そして、履歴番号取得部１４５は、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１に存在しない場合、かつ、識別情報取得部１４２により取得されたＤｅｖｉｃｅ  ＩＤが流通履歴ファイル５２１に存在する場合、Ｄｅｖｉｃｅ  ＩＤに対応する履歴番号を流通履歴ファイル５２１から取得してもよい。
【００５０】
このようにすれば、Ａｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１に存在しなくても、Ｄｅｖｉｃｅ  ＩＤが流通履歴ファイル５２１に存在しさえすれば、履歴番号取得部１４５により履歴番号が取得される。したがって、Ａｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１に存在しなくても、履歴番号取得部１４５により取得された履歴番号に基づいてソフトウェアの機能が提供され得るため、流通履歴ファイル５２１に存在するＡｃｃｏｕｎｔ  ＩＤを持っていないユーザを救済することができる。
【００５１】
図６は、中古から新品への更新時における流通履歴ファイルの取り扱いを説明するための図である。ここでは、Ｃさんが２番目に中古でソフトウェアを購入したと仮定する。Ｃさんが中古から新品への更新操作を行うと（ステップＲ３１）、制御部１４０は、更新サーバ６０との連携により中古から新品への更新手続きを行う（ステップＳ３２）。判断部１４１は、暗号化用の鍵及び署名用の鍵を記憶装置４３から取得し（ステップＲ３３）、署名用の鍵を用いてヘッダ部及びボディ部の署名を検証し、署名の検証に成功した場合に、暗号化用の鍵を用いてボディ部を復号する。
【００５２】
続いて、識別情報取得部１４２は、ＣさんのＡｃｃｏｕｎｔ  ＩＤを取得する。例えば、識別情報取得部１４２は、アカウント管理サーバ２０を動作させるアカウント管理ソフトウェア２１の機能によりＡｃｃｏｕｎｔ  ＩＤの認証が行われ（ステップＲ３４）、認証が正常になされれば、ＤＢ２２に登録されているＣさんのＡｃｃｏｕｎｔ  ＩＤを取得することができる。更新部１４７は、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤに対応する履歴番号が流通履歴ファイル５２１に書き込まれている場合、流通履歴ファイル５２１に書き込まれている履歴番号を初期値（例えば、「１」）に更新する。
【００５３】
図６に示した場合においては、Ｃさんが２番目に中古でソフトウェアを購入したと仮定しているため、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤに対応する履歴番号は「２」が流通履歴ファイル５２１に書き込まれているため、履歴番号「２」を初期値（例えば「１」）に更新する。更新部１４７は、履歴番号を更新するときには、暗号化された履歴番号を書き込む。
【００５４】
このようにすれば、中古から新品への更新手続きを行うことにより、ソフトウェアの状態を新品に更新することができる。新品に更新された後は、新品ソフトウェアにより提供される機能と同様の機能が提供される。更新手続きを行うためには、例えば、所定の金額の支払いが必要となる。
【００５５】
また、処理部１４４は、更新部１４７により履歴番号が更新された後、流通履歴ファイル５２１に書き込まれている１又は複数の流通履歴に基づいて作成される署名を流通履歴ファイル５２１に書き込んでもよい。より詳細には、処理部１４４は、流通履歴ファイル５２１のヘッダ部を更新するとともに、流通履歴ファイル５２１の署名部の署名をヘッダ部と暗号化済みのボディ部とに対してサインして得られる署名に更新してもよい（ステップＲ３５）。
【００５６】
［１−３．情報処理装置の動作の流れ］
図７及び図８は、ソフトウェア起動時における動作を示すフローチャートである。ソフトウェア起動時には、主に流通履歴ファイル５２１に対する書き込み処理がなされる。まず、ユーザがソフトウェアを購入し、情報処理装置１０にソフトウェアを起動させる操作を行うと、判断部１４１は、流通履歴ファイル５２１がメディア５０にあるか否かを判断する（ステップＳ１１）。判断部１４１は、流通履歴ファイル５２１がメディア５０にないと判断した場合には（ステップＳ１１で「Ｎｏ」）、流通履歴ファイル５２１に対する書き込み処理を終了する。
【００５７】
判断部１４１は、流通履歴ファイル５２１がメディア５０にあると判断した場合には（ステップＳ１１で「Ｙｅｓ」）、流通履歴ファイル５２１のヘッダのＭｅｄｉａ  ＩＤが正しいか否かを判断する（ステップＳ１２）。より詳細には、判断部１４１は、流通履歴ファイル５２１のヘッダ部に書き込まれているＭｅｄｉａ  ＩＤとメディア５０の書き込み不可領域に記録されているＭｅｄｉａ  ＩＤ５１１とが一致するか否かを判断する。判断部１４１は、流通履歴ファイル５２１のヘッダのＭｅｄｉａ  ＩＤが誤っていると判断した場合には（ステップＳ１２で「Ｎｏ」）、流通履歴ファイル５２１に対する書き込み処理を終了する。
【００５８】
判断部１４１は、流通履歴ファイル５２１のヘッダのＭｅｄｉａ  ＩＤが正しいと判断した場合には（ステップＳ１２で「Ｙｅｓ」）、記憶装置４３に記憶されている署名用の鍵を読み込み、署名の検証を行う（ステップＳ１３）。判断部１４１は、流通履歴ファイル５２１の署名が誤っていると判断した場合には（ステップＳ１４で「Ｎｏ」）、流通履歴ファイル５２１に対する書き込み処理を終了する。一方、判断部１４１は、流通履歴ファイル５２１の署名が正しいと判断した場合には（ステップＳ１４で「Ｙｅｓ」）、流通履歴ファイル５２１のボディ部を鍵で復号する（ステップＳ１５）。
【００５９】
続いて、判断部１４１は、情報処理装置１０がネットワーク３０に繋がっているか否かを判断する（ステップＳ１６）。判断部１４１は、情報処理装置１０がネットワーク３０に繋がっていると判断した場合には（ステップＳ１６で「Ｙｅｓ」）、ステップＳ３１に進むが、情報処理装置１０がネットワーク３０に繋がっていないと判断した場合には（ステップＳ１６で「Ｎｏ」）、ステップＳ２１に進む。
【００６０】
ステップＳ２１に進んだ場合、判断部１４１は、流通履歴ファイル５２１にＤｅｖｉｃｅ  ＩＤがあるか否かを判断する（ステップＳ２１）。ここでのＤｅｖｉｃｅ  ＩＤは、情報処理装置１０を識別するための情報である。判断部１４１は、流通履歴ファイル５２１にＤｅｖｉｃｅ  ＩＤがないと判断した場合には（ステップＳ２１で「Ｎｏ」）、流通履歴ファイル５２１に対する書き込み処理を終了する。
【００６１】
一方、記録制御部１４３は、判断部１４１により流通履歴ファイル５２１にＤｅｖｉｃｅ  ＩＤがあると判断された場合には（ステップＳ２１で「Ｙｅｓ」）、流通履歴ファイル５２１に履歴番号及びＤｅｖｉｃｅ  ＩＤを追記して（ステップＳ２２）、ステップＳ３６に進む。ここでの履歴番号は、流通履歴ファイル５２１のボディ部のレコード数（流通履歴の件数）に所定値（例えば「１」）を加算した値である。
【００６２】
ステップＳ３１に進んだ場合、識別情報取得部１４２は、Ａｃｃｏｕｎｔ  ＩＤを取得する（ステップＳ３１）。ここでのＡｃｃｏｕｎｔ  ＩＤは、情報処理装置１０を使用するユーザのＡｃｃｏｕｎｔ  ＩＤである。続いて、記録制御部１４３は、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１にあるか否かを判断する（ステップＳ３２）。記録制御部１４３は、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１にないと判断した場合には（ステップＳ３２で「Ｎｏ」）、流通履歴ファイル５２１に対する書き込み処理を終了する。
【００６３】
一方、記録制御部１４３は、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１にあると判断した場合には（ステップＳ３２で「Ｙｅｓ」）、流通履歴ファイル５２１にＤｅｖｉｃｅ  ＩＤがあるか否かを判断する（ステップＳ３３）。ここでのＤｅｖｉｃｅ  ＩＤは、情報処理装置１０を識別するための情報である。記録制御部１４３は、流通履歴ファイル５２１にＤｅｖｉｃｅ  ＩＤがないと判断した場合には（ステップＳ３３で「Ｎｏ」）、流通履歴ファイル５２１に履歴番号、Ａｃｃｏｕｎｔ  ＩＤ及びＤｅｖｉｃｅ  ＩＤを追記し（ステップＳ３４）、ステップＳ３６に進む。ここでの履歴番号は、流通履歴ファイル５２１のボディ部のレコード数（流通履歴の件数）に所定値（例えば「１」）を加算した値である。
【００６４】
一方、記録制御部１４３は、流通履歴ファイル５２１にＤｅｖｉｃｅ  ＩＤがあると判断した場合には（ステップＳ３３で「Ｙｅｓ」）、流通履歴ファイル５２１で見つかったＤｅｖｉｃｅ  ＩＤの後の空の領域にＡｃｃｏｕｎｔ  ＩＤを書き込み（ステップＳ３５）、ステップＳ３６に進む。
【００６５】
ステップＳ３６に進んだ場合には、処理部１４４は、流通履歴ファイル５２１のボディ部を鍵で暗号化し（ステップＳ３６）、流通履歴ファイル５２１のヘッダ部及びボディ部に対する署名を作成して、流通履歴ファイル５２１の署名を書き換える（ステップＳ３７）。その後、処理部１４４は、流通履歴ファイル５２１に対する書き込み処理を終了する。
【００６６】
図９は、ソフトウェア実行時における動作を示すフローチャートである。ソフトウェアの実行時には任意のタイミングにおいて、以下のような動作がなされる。まず、判断部１４１は、流通履歴ファイル５２１がメディア５０にあるか否かを判断する（ステップＳ４１）。判断部１４１は、流通履歴ファイル５２１がメディア５０にないと判断した場合には（ステップＳ４１で「Ｎｏ」）、流通履歴ファイル５２１が存在しない旨を示すエラーを制御部１４０に返して（ステップＳ４２）、履歴番号取得処理を終了する。
【００６７】
判断部１４１は、流通履歴ファイル５２１がメディア５０にあると判断した場合には（ステップＳ４１で「Ｙｅｓ」）、流通履歴ファイル５２１のヘッダのＭｅｄｉａ  ＩＤが正しいか否かを判断する（ステップＳ４３）。より詳細には、判断部１４１は、流通履歴ファイル５２１のヘッダ部に書き込まれているＭｅｄｉａ  ＩＤとメディア５０の書き込み不可領域に記録されているＭｅｄｉａ  ＩＤ５１１とが一致するか否かを判断する。判断部１４１は、流通履歴ファイル５２１のヘッダのＭｅｄｉａ  ＩＤが誤っていると判断した場合には（ステップＳ４３で「Ｎｏ」）、ステップＳ５２に進む。
【００６８】
判断部１４１は、流通履歴ファイル５２１のヘッダのＭｅｄｉａ  ＩＤが正しいと判断した場合には（ステップＳ４３で「Ｙｅｓ」）、記憶装置４３に記憶されている署名用の鍵を読み込み、署名の検証を行う（ステップＳ４４）。判断部１４１は、流通履歴ファイル５２１の署名が誤っていると判断した場合には（ステップＳ４５で「Ｎｏ」）、ステップＳ５２に進む。一方、判断部１４１は、流通履歴ファイル５２１の署名が正しいと判断した場合には（ステップＳ４５で「Ｙｅｓ」）、ステップＳ４６に進む。
【００６９】
続いて、判断部１４１は、情報処理装置１０がネットワーク３０に繋がっているか否かを判断する（ステップＳ４６）。判断部１４１は、情報処理装置１０がネットワーク３０に繋がっていると判断した場合には（ステップＳ４６で「Ｙｅｓ」）、ステップＳ４７に進むが、情報処理装置１０がネットワーク３０に繋がっていないと判断した場合には（ステップＳ４６で「Ｎｏ」）、ステップＳ５１に進む。
【００７０】
ステップＳ４７に進んだ場合、履歴番号取得部１４５は、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１にあるか否かを判断する（ステップＳ４７）。履歴番号取得部１４５は、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１にないと判断した場合には（ステップＳ４７で「Ｎｏ」）、ステップＳ５１に進む。一方、履歴番号取得部１４５は、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１にあると判断した場合には（ステップＳ４７で「Ｙｅｓ」）、Ａｃｃｏｕｎｔ  ＩＤに対応する履歴番号を制御部１４０に返して（ステップＳ５３）、履歴番号取得処理を終了する。
【００７１】
ステップＳ５１に進んだ場合、判断部１４１は、流通履歴ファイル５２１にＤｅｖｉｃｅ  ＩＤがあるか否かを判断する（ステップＳ５１）。ここでのＤｅｖｉｃｅ  ＩＤは、情報処理装置１０を識別するための情報である。判断部１４１は、流通履歴ファイル５２１にＤｅｖｉｃｅ  ＩＤがないと判断した場合には（ステップＳ５１で「Ｎｏ」）、ステップＳ５２に進む。一方、履歴番号取得部１４５は、判断部１４１により流通履歴ファイル５２１にＤｅｖｉｃｅ  ＩＤがあると判断された場合には（ステップＳ５１で「Ｙｅｓ」）、Ｄｅｖｉｃｅ  ＩＤに対応する履歴番号を制御部１４０に返して（ステップＳ５３）、履歴番号取得処理を終了する。
【００７２】
ステップＳ５２に進んだ場合、判断部１４１は、流通履歴ファイル５２１が不正である旨を示すエラーを制御部１４０に返して（ステップＳ５２）、履歴番号取得処理を終了する。
【００７３】
履歴番号取得処理が終了すると、機能制御部１４６は、履歴番号取得部１４５により取得された履歴番号（流通回数）に応じた機能制御を行う（ステップＳ６１）。例えば、流通履歴ファイル５２１が存在しない場合や、流通履歴ファイル５２１が不正である場合には、履歴番号取得部１４５により履歴番号が取得されないため、機能制御部１４６は、ソフトウェアにより提供される機能を停止してもよい。
【００７４】
図１０は、中古から新品への更新時における動作を示すフローチャートである。更新サーバ６０との間における手続きが完了すると（例えば、中古から新品への更新の権利を購入すると）（ステップＳ７１）、以下のような動作がなされる。まず、判断部１４１は、流通履歴ファイル５２１がメディア５０にあるか否かを判断する（ステップＳ８１）。判断部１４１は、流通履歴ファイル５２１がメディア５０にないと判断した場合には（ステップＳ８１で「Ｎｏ」）、新品へのアップグレード処理を終了する。
【００７５】
判断部１４１は、流通履歴ファイル５２１がメディア５０にあると判断した場合には（ステップＳ８１で「Ｙｅｓ」）、流通履歴ファイル５２１のヘッダのＭｅｄｉａ  ＩＤが正しいか否かを判断する（ステップＳ８２）。より詳細には、判断部１４１は、流通履歴ファイル５２１のヘッダ部に書き込まれているＭｅｄｉａ  ＩＤとメディア５０の書き込み不可領域に記録されているＭｅｄｉａ  ＩＤ５１１とが一致するか否かを判断する。判断部１４１は、流通履歴ファイル５２１のヘッダのＭｅｄｉａ  ＩＤが誤っていると判断した場合には（ステップＳ８２で「Ｎｏ」）、新品へのアップグレード処理を終了する。
【００７６】
判断部１４１は、流通履歴ファイル５２１のヘッダのＭｅｄｉａ  ＩＤが正しいと判断した場合には（ステップＳ８２で「Ｙｅｓ」）、記憶装置４３に記憶されている署名用の鍵を読み込み、署名の検証を行う（ステップＳ８３）。判断部１４１は、流通履歴ファイル５２１の署名が誤っていると判断した場合には（ステップＳ８４で「Ｎｏ」）、新品へのアップグレード処理を終了する。一方、判断部１４１は、流通履歴ファイル５２１の署名が正しいと判断した場合には（ステップＳ８４で「Ｙｅｓ」）、流通履歴ファイル５２１のボディ部を鍵で復号する（ステップＳ８５）。
【００７７】
続いて、判断部１４１は、情報処理装置１０がネットワーク３０に繋がっているか否かを判断する（ステップＳ９１）。判断部１４１は、情報処理装置１０がネットワーク３０に繋がっていると判断した場合には（ステップＳ９１で「Ｙｅｓ」）、ステップＳ９２に進むが、情報処理装置１０がネットワーク３０に繋がっていないと判断した場合には（ステップＳ９１で「Ｎｏ」）、新品へのアップグレード処理を終了する。
【００７８】
ステップＳ９２に進んだ場合、更新部１４７は、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１にあるか否かを判断する（ステップＳ９２）。更新部１４７は、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１にないと判断した場合には（ステップＳ９２で「Ｎｏ」）、新品へのアップグレード処理を終了する。
【００７９】
一方、更新部１４７は、識別情報取得部１４２により取得されたＡｃｃｏｕｎｔ  ＩＤが流通履歴ファイル５２１にあると判断した場合には（ステップＳ９２で「Ｙｅｓ」）、Ａｃｃｏｕｎｔ  ＩＤに対応する履歴番号を初期値（例えば「１」）に書き換え（ステップＳ９３）、処理部１４４は、流通履歴ファイル５２１のボディ部を鍵で暗号化し（ステップＳ９４）、流通履歴ファイル５２１のヘッダ部及びボディ部に対する署名を作成して、流通履歴ファイル５２１の署名を書き換える（ステップＳ９５）。その後、処理部１４４は、新品へのアップグレード処理を終了する。
【００８０】
＜２．まとめ＞
本節で説明した実施形態によれば、新品のソフトウェアを購入したユーザと中古のソフトウェアを購入したユーザとの間でソフトウェアにより提供される機能に差をつけることができる。これにより、ユーザによる新品のソフトウェアの購入を促進することが可能となる。特に、本節で説明した実施形態によれば、ソフトウェアの流通回数に応じてソフトウェアにより提供される機能を制限することができる。そのために、例えば、本節で説明したように、流通回数に応じた履歴番号を流通履歴ファイルに書き込んでおき、この履歴番号に応じてソフトウェアにより提供される機能を制限すればよい。
【００８１】
なお、本明細書において説明した各装置による一連の制御処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられるコンピュータ読取可能な記録媒体に予め格納される。そして、各プログラムは、例えば、実行時にＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に読み込まれ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのプロセッサにより実行される。
【００８２】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【００８３】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
アカウント識別情報を取得する識別情報取得部と、
前記識別情報取得部により取得された前記アカウント識別情報が流通履歴ファイルに存在する場合、前記アカウント識別情報に対応する履歴番号を前記流通履歴ファイルから取得する履歴番号取得部と、
前記履歴番号取得部により取得された前記履歴番号に応じてソフトウェアにより提供される機能を制御する機能制御部と、
を備える、情報処理装置。
（２）
前記識別情報取得部は、前記情報処理装置を識別するためのデバイス識別情報をさらに取得し、
前記履歴番号取得部は、前記識別情報取得部により取得された前記アカウント識別情報が前記流通履歴ファイルに存在しない場合、かつ、前記識別情報取得部により取得された前記デバイス識別情報が前記流通履歴ファイルに存在する場合、前記デバイス識別情報に対応する履歴番号を前記流通履歴ファイルから取得する、
前記（１）に記載の情報処理装置。
（３）
前記情報処理装置は、前記流通履歴ファイルに書き込まれている流通履歴の件数に所定値を加算して得られる履歴番号と前記識別情報取得部により取得された前記アカウント識別情報とが対応付けられてなる流通履歴を前記流通履歴ファイルに追記する記録制御部をさらに備え、
前記履歴番号取得部は、前記記録制御部により追記された前記流通履歴から前記履歴番号を取得する、
前記（１）又は（２）に記載の情報処理装置。
（４）
前記記録制御部は、前記識別情報取得部により取得された前記デバイス識別情報が前記アカウント識別情報及び前記履歴番号にさらに対応付けられてなる流通履歴を前記流通履歴ファイルに追記する、
前記（３）に記載の情報処理装置。
（５）
前記情報処理装置は、前記記録制御部により前記流通履歴が前記流通履歴ファイルに追記された後、前記流通履歴ファイルに書き込まれている１又は複数の流通履歴に基づいて作成される署名を前記流通履歴ファイルに書き込む処理部をさらに備える、
前記（３）又は（４）に記載の情報処理装置。
（６）
前記情報処理装置は、前記流通履歴ファイルに書き込まれている署名が正しいか否かを判断する判断部をさらに備え、
前記履歴番号取得部は、前記判断部により前記流通履歴ファイルに書き込まれている署名が正しくないと判断された場合には、前記履歴番号を前記流通履歴ファイルから取得することを禁止する、
前記（１）〜（５）のいずれか一項に記載の情報処理装置。
（７）
前記情報処理装置は、前記識別情報取得部により取得された前記アカウント識別情報に対応する履歴番号が前記流通履歴ファイルに書き込まれている場合、前記流通履歴ファイルに書き込まれている前記履歴番号を初期値に更新する更新部をさらに備える、
前記（１）〜（６）のいずれか一項に記載の情報処理装置。
（８）
前記流通履歴ファイルには、前記ソフトウェアの流通序数を示す履歴番号とアカウント識別情報とデバイス識別情報とが対応付けられてなる流通履歴が１又は複数書き込まれる、
前記（１）〜（７）のいずれか一項に記載の情報処理装置。
（９）
前記１又は複数の流通履歴は、暗号化されている、
前記（８）に記載の情報処理装置。
（１０）
アカウント識別情報を取得することと、
前記アカウント識別情報が流通履歴ファイルに存在する場合、前記アカウント識別情報に対応する履歴番号を前記流通履歴ファイルから取得することと、
前記履歴番号に応じてソフトウェアにより提供される機能を制御することと、
を含む、情報処理方法。
【符号の説明】
【００８４】
１      情報処理システム
１０（１０Ａ，１０Ｂ，１０Ｃ）  情報処理装置
１１０  通信部
１２０  入力部
１３０  記憶部
１４０  制御部
１４１  判断部
１４２  識別情報取得部
１４３  記録制御部
１４４  処理部
１４５  履歴番号取得部
１４６  機能制御部
１４７  更新部
１５０  出力部
２０    アカウント管理サーバ
３０    ネットワーク
４１    ＣＰＵ
４２    メモリ
４３    記憶装置
５０    メディア
５１    不可領域
５２    可能領域
５２１  流通履歴ファイル
５１２  ソフトウェア
５１３  履歴管理モジュール
６０    更新サーバ
【図１】
2013025607.tif 000003
【図２】
2013025607.tif 000004
【図３】
2013025607.tif 000005
【図４】
2013025607.tif 000006
【図５】
2013025607.tif 000007
【図６】
2013025607.tif 000008
【図７】
2013025607.tif 000009
【図８】
2013025607.tif 000010
【図９】
2013025607.tif 000011
【図１０】
2013025607.tif 000012