(57)【要約】【課題】ファイルの完全性を判定する処理を高速化すること。【解決手段】実施形態に係るネットワークシステムは、サーバ装置と端末装置とを含む。サーバ装置は、端末装置のユーザにより利用されるデータと複数のユーザにより利用される共通データとの差分である個別データを用いて、検証情報を生成する。端末装置は、サーバ装置により生成された検証情報を記憶する。また、端末装置は、認証情報生成因子をサーバ装置に送信する。サーバ装置は、認証情報生成因子と端末装置に対応する個別データとを用いて認証情報を生成して端末装置に送信する。そして、端末装置は、サーバ装置から受信した認証情報と、記憶しておいた検証情報とを用いて、個別データの正当性を判定する。【選択図】図１
2014002523.tif 000002
【特許請求の範囲】
【請求項１】
サーバ装置と端末装置とを含むネットワークシステムであって、
前記サーバ装置は、
複数のユーザにより利用される共通データを記憶する共通データ記憶部と、
前記端末装置のユーザを識別するためのユーザ識別子に対応付けて、前記端末装置のユーザにより利用されるデータと前記共通データとの差分である個別データを記憶するユーザ情報記憶部と、
前記個別データを用いて、当該個別データを検証するための検証情報を生成する検証情報生成部と、
前記端末装置から認証情報の生成元となる認証情報生成因子を受信した場合に、当該認証情報生成因子と当該端末装置に対応する個別データとを用いて認証情報を生成し、生成した認証情報を前記端末装置に送信する認証情報生成部とを備え、
前記端末装置は、
前記検証情報生成部により生成された検証情報を記憶する検証情報記憶部と、
所定の認証情報生成因子を前記サーバ装置に送信することにより、当該サーバ装置に対して認証情報の生成を要求する要求部と、
前記要求部による要求の応答として前記サーバ装置から受信した認証情報と、前記検証情報記憶部に記憶されている検証情報とを用いて、前記個別データの正当性を判定する判定部と
を備えたことを特徴とするネットワークシステム。
【請求項２】
前記検証情報生成部は、
前記ユーザ情報記憶部に記憶されている個別データが更新された場合に、更新後の個別データを用いて、新たな検証情報を生成し、
前記端末装置は、
前記検証情報記憶部に記憶されている検証情報を前記検証情報生成部により生成された新たな検証情報に更新する
ことを特徴とする請求項１に記載のネットワークシステム。
【請求項３】
前記ユーザ情報記憶部は、
前記ユーザ識別子に対応付けて、第１の値と第２の値とをさらに記憶し、
前記検証情報生成部は、
前記第１の値を底とし、前記個別データによって示される数値を冪数として冪乗演算された値を前記第２の値により除算した際の剰余を前記検証情報として生成し、
前記認証情報生成部は、
前記認証情報生成因子を底とし、前記個別データによって示される数値を冪数として冪乗演算された値を前記第２の値により除算した際の剰余を前記認証情報として生成し、
前記検証情報記憶部は、
前記第１の値と前記第２の値とをさらに記憶し、
前記要求部は、
前記第１の値を底とし、所定の乱数を冪数として冪乗演算された値を前記第２の値により除算した際の剰余を前記認証情報生成因子として生成し、
前記判定部は、
前記検証情報を底とし、前記所定の乱数を冪数として冪乗演算された値を前記第２の値により除算した際の剰余と、前記サーバ装置から受信した認証情報とが一致するか否かに基づいて、前記個別データの正当性を判定する
ことを特徴とする請求項１又は２に記載のネットワークシステム。
【請求項４】
サーバ装置と端末装置と移動体端末を含むネットワークシステムであって、
前記サーバ装置は、
複数のユーザにより利用される共通データを記憶する共通データ記憶部と、
前記端末装置のユーザを識別するためのユーザ識別子に対応付けて、前記端末装置のユーザにより利用されるデータと前記共通データとの差分である個別データを記憶するユーザ情報記憶部と、
前記個別データを用いて、当該個別データを検証するための検証情報を生成する検証情報生成部と、
前記端末装置から認証情報の生成元となる認証情報生成因子を受信した場合に、当該認証情報生成因子と当該端末装置に対応する個別データとを用いて認証情報を生成し、生成した認証情報を前記端末装置に送信する認証情報生成部とを備え、
前記端末装置は、
所定の認証情報生成因子を前記サーバ装置に送信することにより、当該サーバ装置に対して認証情報の生成を要求する要求部を備え、
前記移動体端末は、
前記検証情報生成部により生成された検証情報を記憶する検証情報記憶部と、
前記要求部による要求の応答として前記サーバ装置から前記端末装置が受信した認証情報と、前記検証情報記憶部に記憶されている検証情報とを用いて、前記個別データの正当性を判定する判定部と
を備えたことを特徴とするネットワークシステム。
【請求項５】
前記サーバ装置は、
前記認証情報生成部により生成された認証情報を特定するための画像である認証情報画像を生成し、生成した認証情報画像を前記端末装置に送信する画像生成部をさらに備え、
前記端末装置は、
前記画像生成部から受信した認証情報画像を表示する表示部をさらに備え、
前記移動体端末は、
前記表示部に表示された認証情報画像を読み取り、読み取った認証情報画像に基づいて前記認証情報を生成する読取部をさらに備え、
前記判定部は、
前記読取部により生成された認証情報と前記検証情報とを用いて、前記個別データの正当性を判定する
ことを特徴とする請求項４に記載のネットワークシステム。
【請求項６】
前記画像生成部は、
前記検証情報生成部により生成された検証情報を特定するための画像である検証情報画像を生成し、生成した検証情報画像を前記端末装置に送信し、
前記表示部は、
前記画像生成部から受信した検証情報画像を表示し、
前記読取部は、
前記表示部に表示された検証情報画像から読み取った認証情報画像に基づいて前記検証情報を生成し、生成した検証情報を前記検証情報記憶部に格納する
ことを特徴とする請求項４又は５に記載のネットワークシステム。
【請求項７】
複数のユーザにより利用される共通データを記憶する共通データ記憶部と、
所定のユーザを識別するためのユーザ識別子に対応付けて、前記所定のユーザにより利用されるデータと前記共通データとの差分である個別データを記憶するユーザ情報記憶部と、
前記個別データを用いて、前記所定のユーザによって利用される端末装置が当該個別データを検証する際に用いる検証情報を生成する検証情報生成部と、
前記端末装置から認証情報の生成元となる認証情報生成因子を受信した場合に、当該認証情報生成因子と当該端末装置に対応する個別データとに基づいて、当該端末装置が前記個別データの正当性を判定する際に用いる認証情報を生成し、生成した認証情報を前記端末装置に送信する認証情報生成部と
を備えたことを特徴とするサーバ装置。
【請求項８】
サーバ装置と端末装置とを含むネットワークシステムが実行する判定方法であって、
前記サーバ装置が、
前記端末装置のユーザにより利用されるデータと複数のユーザにより利用される共通データとの差分である個別データを用いて、当該個別データを検証するための検証情報を生成する検証情報生成工程とを含み、
前記端末装置が、
前記検証情報生成工程において生成された検証情報を検証情報記憶部に格納する格納工程と、
認証情報の生成元となる認証情報生成因子を前記サーバ装置に送信することにより、当該サーバ装置に対して認証情報の生成を要求する要求工程とを含み、
前記サーバ装置が、
前記端末装置から認証情報生成因子を受信した場合に、当該認証情報生成因子と当該端末装置に対応する個別データとを用いて認証情報を生成し、生成した認証情報を前記端末装置に送信する認証情報生成工程を含み、
前記端末装置が、
前記サーバ装置から受信した認証情報と、前記検証情報記憶部に記憶されている検証情報とを用いて、前記個別データの正当性を判定する判定工程
を含んだことを特徴とする判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ネットワークシステム、サーバ装置及び判定方法に関する。
【背景技術】
【０００２】
近年、仮想ホスティング事業者と呼ばれる事業者によって、ユーザから預かった仮想マシンのイメージファイルを実行する環境をユーザに提供する仮想ホスティングといったサービスが提供されつつある。このような仮想ホスティング事業者は、自身が管理するデータセンター等において、ユーザから預かった仮想マシンのイメージファイルの実行環境を提供する。そして、ユーザは、ネットワークを介して、仮想ホスティング事業者が提供する環境で実行している仮想マシンを利用することとなる。
【０００３】
上記の通り、仮想ホスティングでは、ユーザが仮想マシンのイメージファイルを仮想ホスティング事業者に預けることになる。すなわち、仮想マシンのイメージファイルはユーザの管理下にないので、仮想ホスティング事業者の不正行為、または、仮想ホスティング事業者の提供する環境へ第三者が不正侵入することにより、仮想マシンのイメージファイルが不正に改竄される可能性がある。このような中で、ネットワーク経由でファイルの完全性を確認する技術も提案されている（特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−９０７８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来技術では、完全性を確認するための演算処理に時間がかかる場合があった。具体的には、上記特許文献１に記載の技術では、完全性確認の対象となる範囲として、ユーザデータ全体を対象としており、さらに、完全性確認のための演算処理の中で、ユーザデータ全体を２進数表記と同一視して冪乗計算を行うため、完全性確認の演算処理に時間がかかるという問題を招く。
【０００６】
このような問題は、仮想ホスティング事業者が管理するイメージファイルの完全性を確認する場合だけでなく、ネットワークを介した環境に存在するファイルの完全性を確認する場合において発生し得る。
【０００７】
なお、所定のファイルの改竄有無や完全性を確認する技術として、ハッシュ値を用いた手法が広く知られている。しかし、ハッシュ値を用いた技術では、検証者がハッシュ値を生成するためには、検証対象のファイルを保持することを要するので、ネットワークを介した環境に存在するファイルの完全性を確認する際に、検証対象のファイルを検証者に全て転送する必要がある。このことは、ファイルサイズの増大に応じてデータ転送量が増大するため、ネットワーク負荷を増大させるという問題や、データ転送時間が長くなるという問題を招く。
【０００８】
本願の開示する技術は、上記に鑑みてなされたものであって、ファイルの完全性を判定する処理を高速化することができるネットワークシステム、サーバ装置及び判定方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
実施形態に係るネットワークシステムは、サーバ装置と端末装置とを含むネットワークシステムであって、前記サーバ装置は、複数のユーザにより利用される共通データを記憶する共通データ記憶部と、前記端末装置のユーザを識別するためのユーザ識別子に対応付けて、前記端末装置のユーザにより利用されるデータと前記共通データとの差分である個別データを記憶するユーザ情報記憶部と、前記個別データを用いて、当該個別データを検証するための検証情報を生成する検証情報生成部と、前記端末装置から認証情報の生成元となる認証情報生成因子を受信した場合に、当該認証情報生成因子と当該端末装置に対応する個別データとを用いて認証情報を生成し、生成した認証情報を前記端末装置に送信する認証情報生成部とを備え、前記端末装置は、前記検証情報生成部により生成された検証情報を記憶する検証情報記憶部と、所定の認証情報生成因子を前記サーバ装置に送信することにより、当該サーバ装置に対して認証情報の生成を要求する要求部と、前記要求部による要求の応答として前記サーバ装置から受信した認証情報と、前記検証情報記憶部に記憶されている検証情報とを用いて、前記個別データの正当性を判定する判定部とを備えたことを特徴とする。
【発明の効果】
【００１０】
実施形態に係るネットワークシステム、サーバ装置及び判定方法は、ファイルの完全性を判定する処理を高速化することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、第１の実施形態に係るネットワークシステムの構成例を示す図である。
【図２】図２は、第１の実施形態に係るユーザ情報記憶部の一例を示す図である。
【図３】図３は、第１の実施形態に係る検証情報記憶部の一例を示す図である。
【図４】図４は、第１の実施形態に係るネットワークシステムによる初期処理手順を示すシーケンス図である。
【図５】図５は、第１の実施形態に係るネットワークシステムによる起動処理手順を示すシーケンス図である。
【図６】図６は、第１の実施形態に係るネットワークシステムによる停止処理手順を示すシーケンス図である。
【図７】図７は、第２の実施形態に係るネットワークシステムの構成例を示す図である。
【図８】図８は、第２の実施形態に係るネットワークシステムによる初期処理手順を示すシーケンス図である。
【図９】図９は、第２の実施形態に係るネットワークシステムによる起動処理手順を示すシーケンス図である。
【図１０】図１０は、第２の実施形態に係るネットワークシステムによる停止処理手順を示すシーケンス図である。
【図１１】図１１は、認証プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願に係るネットワークシステム、サーバ装置及び判定方法の実施形態を図面に基づいて詳細に説明する。なお、この実施形態により本願に係るネットワークシステム、サーバ装置及び判定方法が限定されるものではない。
【００１３】
（第１の実施形態）
［ネットワークシステムの構成］
まず、図１を用いて、第１の実施形態に係るネットワークシステムについて説明する。図１は、第１の実施形態に係るネットワークシステム１の構成例を示す図である。図１に例示したネットワークシステム１には、サーバ装置１００と、端末装置２００１〜２００ｎとが含まれる。サーバ装置１００と端末装置２００１〜２００ｎとは、ネットワーク１０を介して互いに通信可能に接続される。なお、ネットワークシステム１に含まれる各装置の台数は、図１に示した例に限られない。例えば、ネットワークシステム１には、２台以上のサーバ装置１００が含まれてもよい。
【００１４】
サーバ装置１００は、仮想ホスティング事業者によって管理される情報処理装置である。端末装置２００１〜２００ｎは、ユーザによって利用される情報処理装置であり、例えば、ＰＣ（Personal  Computer）等である。なお、端末装置２００１〜２００ｎは、同様の構成を有するので、以下では、主に端末装置２００１について説明する。また、以下では、端末装置２００１〜２００ｎを区別する必要がない場合には、これらを総称して「端末装置２００」と表記する場合がある。
【００１５】
図１に示したネットワークシステム１では、端末装置２００を利用する各利用者が、仮想マシンのイメージファイルをサーバ装置１００に配置し、かかるイメージファイルをサーバ装置１００において実行することにより仮想マシンを利用する。このとき、第１の実施形態に係る端末装置２００は、サーバ装置１００上で仮想マシンを起動する前に、イメージファイルの完全性を判定する。
【００１６】
具体的には、第１の実施形態において、サーバ装置１００は、複数のユーザにより共通して利用される共通イメージファイルを記憶するとともに、ユーザ毎に、かかるユーザにより利用されるイメージファイルと共通イメージファイルとの差分である個別イメージファイルを記憶する。そして、サーバ装置１００は、ユーザ毎に、各ユーザに対応する個別イメージファイルを用いて、かかる個別イメージファイルを検証するための検証情報を生成する。そして、各端末装置２００は、サーバ装置１００によって生成された検証情報を保持しておく。そして、端末装置２００は、サーバ装置１００上で仮想マシンを起動する場合に、所定の認証情報生成因子をサーバ装置１００に送信することにより、サーバ装置１００に対して認証情報の生成を要求する。サーバ装置１００は、端末装置２００からの要求に応答して、認証情報生成因子と端末装置２００に対応する個別イメージファイルとを用いて認証情報を生成し、生成した認証情報を端末装置２００に送信する。そして、端末装置２００は、サーバ装置１００から受信した認証情報と予め保持しておいた検証情報とを用いて、個別イメージファイルの正当性を判定する。
【００１７】
これにより、第１の実施形態に係るネットワークシステム１では、ネットワーク１０を流通するデータ量を低減するとともに、完全性確認の演算処理を高速化することを可能にする。以下、この点について、サーバ装置１００及び端末装置２００の構成及び処理手順とともに詳細に説明する。
【００１８】
［サーバ装置の構成］
次に、図１を用いて、第１の実施形態に係るサーバ装置１００の構成について説明する。図１に示すように、第１の実施形態に係るサーバ装置１００は、通信部１１０と、記憶部１２０と、仮想マシン実行部１３０と、計算部１４０とを有する。
【００１９】
通信部１１０は、例えばＮＩＣ（Network  Interface  Card）等によって実現される。かかる通信部１１０は、ネットワーク１０と接続され、かかるネットワーク１０を介して端末装置２００との間で通信を行う。
【００２０】
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory)、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等によって実現される。かかる記憶部１２０は、図１に示すように、共通データ記憶部１２１と、個別データ記憶部１２２１〜１２２ｎと、ユーザ情報記憶部１２３とを含む。
【００２１】
共通データ記憶部１２１は、端末装置２００１〜２００ｎの各ユーザによって共通して利用されるイメージファイルである共通イメージファイルを記憶する。個別データ記憶部１２２１〜１２２ｎは、所定のユーザによって利用されるイメージファイルから共通イメージファイルを除いたイメージファイルである個別イメージファイルを記憶する。例えば、個別データ記憶部１２２１は、端末装置２００１に対応する個別イメージファイルを記憶し、個別データ記憶部１２２ｎは、端末装置２００ｎに対応する個別イメージファイルを記憶する。
【００２２】
ユーザ情報記憶部１２３は、端末装置２００１〜２００ｎの各ユーザに関するユーザ情報を記憶する。ここで、図２に、第１の実施形態に係るユーザ情報記憶部１２３の一例を示す。図２に示すように、ユーザ情報記憶部１２３は、「ユーザ識別子」、「パスワード」、「第１の値ｇ」、「第２の値Ｎ」、「個別識別子」といった項目を有する。
【００２３】
「ユーザ識別子」は、端末装置２００１〜２００ｎの各ユーザを識別するための情報である。図２では、「ユーザ識別子」には、各ユーザを識別するための情報として、図１の端末装置２００１〜２００ｎに付した参照符号（「２００１」など）が記憶される例を示している。「パスワード」は、各ユーザのパスワードである。「第１の値ｇ」及び「第２の値Ｎ」は、後述する計算部１４０によって、ユーザ毎に払い出される任意の数値である。
【００２４】
「個別識別子」は、各ユーザに対応する個別イメージファイルを識別するための情報である。例えば、「個別識別子」には、個別データ記憶部１２２１〜１２２ｎを識別するための識別情報や、各ユーザに対応する個別イメージファイルが格納されているファイルパス名等が記憶される。図２では、「個別識別子」には、個別データ記憶部１２２１〜１２２ｎを識別するための識別情報として、図１の個別データ記憶部１２２１〜１２２ｎに付した参照符号（「１２２１」など）が記憶される例を示している。
【００２５】
すなわち、図２では、ユーザ識別子「２００１」によって識別されるユーザ（端末装置２００１のユーザ）のパスワードが「Ｐ１」であり、かかるユーザに払い出された第１の値ｇが「４」であり、第２の値Ｎが「９９７」であり、かかるユーザに対応する個別イメージファイルが個別データ記憶部１２２１に格納されている例を示している。
【００２６】
なお、図２の例では、ユーザ情報記憶部１２３が、ユーザ識別子に対応付けて、個別識別子を記憶する例を示した。しかし、ユーザ情報記憶部１２３は、ユーザ識別子に対応付けて、個別イメージファイル自体を記憶してもよい。
【００２７】
図１の説明に戻って、仮想マシン実行部１３０は、仮想マシンの実行に関する各種制御を行う。例えば、仮想マシン実行部１３０は、端末装置２００から仮想マシンの起動指示を受け付けた場合に、共通イメージファイルと、かかる端末装置２００のユーザに対応する個別イメージファイルとを用いて仮想マシンを起動させる。なお、仮想マシン実行部１３０による処理については後述する。
【００２８】
計算部１４０は、図１に示すように、検証情報生成部１４１と、認証情報生成部１４２とを有する。検証情報生成部１４１は、端末装置２００によって個別イメージファイルの完全性を判定する処理が行われる際に検証情報を生成する。また、認証情報生成部１４２は、端末装置２００によって個別イメージファイルの完全性を判定する処理が行われる際に認証情報を生成する。検証情報生成部１４１及び認証情報生成部１４２による処理については後述する。
【００２９】
なお、上記の仮想マシン実行部１３０及び計算部１４０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、図示しない記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、例えば、仮想マシン実行部１３０及び計算部１４０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。
【００３０】
［端末装置の構成］
次に、図１を用いて、第１の実施形態に係る端末装置２００の構成について説明する。図１に示すように、第１の実施形態に係る端末装置２００は、通信部２１０と、仮想マシン利用部２２０と、検証情報記憶部２３０と、計算部２４０とを有する。
【００３１】
通信部２１０は、例えばＮＩＣ等によって実現される。かかる通信部２１０は、ネットワーク１０と接続され、かかるネットワーク１０を介してサーバ装置１００との間で通信を行う。
【００３２】
仮想マシン利用部２２０は、サーバ装置１００上で実行される仮想マシンを利用する機能を有する。かかる仮想マシン利用部２２０は、ソフトウェア等によって実現され、例えば、リモートデスクトップクライアントやＷｅｂブラウザ等に該当する。
【００３３】
検証情報記憶部２３０は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、又は、ハードディスク、光ディスク等によって実現される。かかる検証情報記憶部２３０は、サーバ装置１００によって生成された検証情報等を記憶する。ここで、図３に、第１の実施形態に係る検証情報記憶部２３０の一例を示す。なお、図３では、図１に示した端末装置２００１が有する検証情報記憶部２３０の一例を示す。図３に示すように、検証情報記憶部２３０は、「第１の値ｇ」、「第２の値Ｎ」、「検証情報」といった項目を有する。
【００３４】
「第１の値ｇ」は、図２に示したユーザ情報記憶部１２３の「第１の値ｇ」に対応する。また、「第２の値Ｎ」は、図２に示したユーザ情報記憶部１２３の「第２の値Ｎ」に対応する。図３は、端末装置２００１が有する検証情報記憶部２３０の一例を示すので、「第１の値ｇ」には、図２に示したユーザ識別子「２００１」に対応する「４」が記憶され、「第２の値Ｎ」には、図２に示したユーザ識別子「２００１」に対応する「９９７」が記憶される。「検証情報」は、サーバ装置１００の検証情報生成部１４１によって生成された検証情報（ここの例では、「Ｃ（Ｐ１）」）が記憶される。
【００３５】
図１の説明に戻って、計算部２４０は、要求部２４１と、判定部２４２とを有する。要求部２４１は、仮想マシンの起動前に、サーバ装置１００に対して、認証情報を生成する旨の認証情報要求を送信する。また、判定部２４２は、サーバ装置１００に記憶されている個別イメージファイルの完全性を判定する。なお、要求部２４１及び判定部２４２による処理については後述する。
【００３６】
このような計算部２４０は、ＣＰＵやＭＰＵ等によって、図示しない記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、例えば、計算部２４０は、ＡＳＩＣやＦＰＧＡ等の集積回路により実現される。
【００３７】
［ネットワークシステムによる処理手順］
次に、図４〜図６を用いて、第１の実施形態に係るネットワークシステム１による処理手順について説明する。ネットワークシステム１による処理手順は、ユーザが仮想マシンのイメージファイルをサーバ装置１００に登録する初期処理手順と、端末装置２００がサーバ装置１００に保持されているイメージファイルの完全性を判定した後に仮想マシンを起動させる起動処理手順と、サーバ装置１００上で起動している仮想マシンを停止させる停止処理手順とに分けられる。以下では、これらの各処理手順について順に説明する。
【００３８】
なお、以下の説明において、サーバ装置１００と端末装置２００との間では、ユーザ識別子及びパスワードの組合せが事前に共有されており、ユーザ情報記憶部１２３は、新規ユーザについても、ユーザ識別子及びパスワードを記憶しているものとする。ただし、ユーザ情報記憶部１２３は、新規ユーザの「第１の値ｇ」、「第２の値Ｎ」及び「個別識別子」については記憶していないものとする。
【００３９】
［初期処理手順］
図４は、第１の実施形態に係るネットワークシステム１による初期処理手順を示すシーケンス図である。図４に示すように、端末装置２００のユーザが仮想マシンのイメージファイルをサーバ装置１００に登録する場合、まず、端末装置２００とサーバ装置１００との間でユーザ認証を行う（ステップＳ１０１）。
【００４０】
例えば、端末装置２００の仮想マシン利用部２２０は、通信部２１０を介して、ユーザ識別子及びパスワードの組合せを含むイメージファイルの登録要求をサーバ装置１００に送信する。そして、サーバ装置１００の仮想マシン実行部１３０は、端末装置２００から受信したユーザ識別子及びパスワードの組合せがユーザ情報記憶部１２３に記憶されている場合には認証成功と判定し、ユーザ識別子及びパスワードの組合せがユーザ情報記憶部１２３に記憶されていない場合には認証失敗と判定する。ここでは、仮想マシン実行部１３０が認証成功と判定したものとする。
【００４１】
続いて、サーバ装置１００の計算部１４０は、第１の値ｇ及び第２の値Ｎを生成する（ステップＳ１０２）。このとき、計算部１４０は、第２の値Ｎを十分に大きい数値とし、第１の値ｇを第２の値Ｎ未満の数値とする。続いて、計算部１４０は、通信部１１０を介して、第１の値ｇ及び第２の値Ｎを端末装置２００に送信する（ステップＳ１０３）。
【００４２】
そして、端末装置２００の仮想マシン利用部２２０は、サーバ装置１００から第１の値ｇ及び第２の値Ｎを受信する（ステップＳ１０４）。このとき、仮想マシン利用部２２０は、第１の値ｇ及び第２の値Ｎを検証情報記憶部２３０に格納する。
【００４３】
続いて、サーバ装置１００の仮想マシン実行部１３０は、記憶部１２０の共通データ記憶部１２１から、複数のユーザによって共通して利用される共通イメージファイルＨを読み込む（ステップＳ１０５）。続いて、仮想マシン実行部１３０は、端末装置２００の利用者が利用するイメージファイルと共通イメージファイルＨとの差分情報を、かかる利用者が個別に利用する個別イメージファイルＰｉとして生成する（ステップＳ１０６）。このとき、仮想マシン実行部１３０は、個別イメージファイルＰｉを個別データ記憶部１２２ｉに格納する。
【００４４】
続いて、検証情報生成部１４１は、個別イメージファイルＰｉを用いて、かかる個別イメージファイルＰｉを検証するための検証情報Ｃ（Ｐｉ）を生成する（ステップＳ１０７）。
【００４５】
具体的には、検証情報生成部１４１は、下記式（１）に示すように、第１の値ｇを底とし、個別イメージファイルＰｉによって示される数値を冪数として冪乗演算を行うことにより値「ｇＰｉ」を求め、かかる値「ｇＰｉ」を第２の値Ｎにより除算した際の剰余を検証情報Ｃ（Ｐｉ）とする。なお、「個別イメージファイルＰｉによって示される数値」とは、バイナリデータである個別イメージファイルＰｉを自然数の２進数表記とみなして得られる数値を示す。
【００４６】
Ｃ（Ｐｉ）  ＝  ｇＰｉ  ｍｏｄ  Ｎ  ・・・  （１）
【００４７】
続いて、検証情報生成部１４１は、通信部１１０を介して、ステップＳ１０７において生成した検証情報Ｃ（Ｐｉ）を端末装置２００に送信する（ステップＳ１０８）。続いて、検証情報生成部１４１は、端末装置２００のユーザ識別子に対応付けて、ステップＳ１０２において生成した第１の値ｇ及び第２の値Ｎと、ステップＳ１０６において生成した個別イメージファイルＰｉの個別識別子とをユーザ情報記憶部１２３に登録する（ステップＳ１０９）。なお、仮想マシン実行部１３０が、ユーザ情報記憶部１２３に個別識別子を登録してもよい。
【００４８】
そして、端末装置２００の仮想マシン利用部２２０は、サーバ装置１００から検証情報Ｃ（Ｐｉ）を受信する（ステップＳ１１０）。このとき、仮想マシン利用部２２０は、検証情報Ｃ（Ｐｉ）を検証情報記憶部２３０に格納する。
【００４９】
［起動処理手順］
図５は、第１の実施形態に係るネットワークシステム１による起動処理手順を示すシーケンス図である。図５に示すように、端末装置２００のユーザがサーバ装置１００上で仮想マシンを起動させる場合、まず、端末装置２００とサーバ装置１００との間でユーザ認証を行う（ステップＳ２０１）。
【００５０】
続いて、端末装置２００の要求部２４１は、所定の乱数ｒを生成する（ステップＳ２０２）。そして、要求部２４１は、かかる乱数ｒを用いて、サーバ装置１００が生成する認証情報の生成元となる認証情報生成因子Ｒを生成する（ステップＳ２０３）。
【００５１】
具体的には、要求部２４１は、下記式（２）に示すように、第１の値ｇを底とし、乱数ｒを冪数として冪乗演算を行うことにより値「ｇｒ」を求め、かかる値「ｇｒ」を第２の値Ｎにより除算した際の剰余を認証情報生成因子Ｒとする。
【００５２】
Ｒ  ＝  ｇｒ  ｍｏｄ  Ｎ  ・・・  （２）
【００５３】
そして、要求部２４１は、このようにして生成した認証情報生成因子Ｒを含む認証情報要求をサーバ装置１００に送信する（ステップＳ２０４）。このようにして、要求部２４１は、サーバ装置１００に対して認証情報の生成を要求する。
【００５４】
そして、サーバ装置１００の認証情報生成部１４２は、端末装置２００から認証情報生成因子Ｒを受信する（ステップＳ２０５）。そして、認証情報生成部１４２は、認証情報生成因子Ｒと、端末装置２００のユーザに対応する個別イメージファイルＰｉとを用いて、認証情報Ｒ（Ｐｉ）を生成する（ステップＳ２０６）。
【００５５】
具体的には、認証情報生成部１４２は、ユーザ情報記憶部１２３を参照することにより、ステップＳ２０１における認証時に用いたユーザ識別子に対応する個別イメージファイルＰｉを取得する。そして、認証情報生成部１４２は、下記式（３）に示すように、認証情報生成因子Ｒを底とし、個別イメージファイルＰｉによって示される数値を冪数として冪乗演算を行うことにより値「ＲＰｉ」を求め、かかる値「ＲＰｉ」を第２の値Ｎにより除算した際の剰余を認証情報Ｒ（Ｐｉ）とする。
【００５６】
Ｒ（Ｐｉ）  ＝  ＲＰｉ  ｍｏｄ  Ｎ  ・・・  （３）
【００５７】
そして、認証情報生成部１４２は、このようにして生成した認証情報Ｒ（Ｐｉ）を端末装置２００に送信する（ステップＳ２０７）。
【００５８】
そして、端末装置２００の判定部２４２は、サーバ装置１００から認証情報Ｒ（Ｐｉ）を受信する（ステップＳ２０８）。続いて、判定部２４２は、サーバ装置１００から受信した認証情報Ｒ（Ｐｉ）と、検証情報記憶部２３０に記憶されている検証情報Ｃ（Ｐｉ）とを用いて、認証情報Ｒ（Ｐｉ）の正当性を判定する（ステップＳ２０９）。
【００５９】
具体的には、判定部２４２は、下記式（４）に示すように、検証情報Ｃ（Ｐｉ）を底とし、ステップＳ２０２において生成した乱数ｒを冪数として冪乗演算を行うことにより値「Ｃ（Ｐｉ）ｒ」を求め、かかる値「Ｃ（Ｐｉ）ｒ」を第２の値Ｎにより除算した際の剰余を算出する。そして、判定部２４２は、下記式（４）により算出した剰余と、サーバ装置１００から受信した認証情報Ｒ（Ｐｉ）とが一致するか否かに基づいて、サーバ装置１００に記憶されている個別イメージファイルＰｉの正当性を判定する。すなわち、判定部２４２は、サーバ装置１００に記憶されている個別イメージファイルＰｉに対して不正な改竄が行われているか否か等の完全性を判定することとなる。
【００６０】
Ｃ（Ｐｉ）ｒ  ｍｏｄ  Ｎ  ・・・  （４）
【００６１】
ここで、認証情報Ｒ（Ｐｉ）と上記式（４）により得られる剰余とが一致するか否かに基づいて、個別イメージファイルＰｉの完全性を判定することができる理由について説明する。一般的に、数学的法則として、下記式（５）が成立することが知られている。
【００６２】
（ｇＰ  ｍｏｄ  Ｎ）ｒ  ｍｏｄ  Ｎ  ＝  （ｇｒ  ｍｏｄ  Ｎ）Ｐ  ｍｏｄ  Ｎ  ・・・  （５）
【００６３】
上記式（５）における左辺の（ｇＰ  ｍｏｄ  Ｎ）は、上記式（１）により算出される検証情報Ｃ（Ｐｉ）に該当する。したがって、上記式（５）における左辺は、上記式（４）に該当する。また、上記式（５）における右辺の（ｇｒ  ｍｏｄ  Ｎ）は、上記式（２）により算出される認証情報生成因子Ｒに該当する。したがって、上記式（５）における右辺は、上記式（３）により算出される認証情報Ｒ（Ｐｉ）に該当する。すなわち、上記式（５）における左辺の値は、上記式（４）の結果であって、端末装置２００が予め保持しておいた検証情報Ｃ（Ｐｉ）から算出される。また、上記式（５）における右辺の値は、認証情報Ｒ（Ｐｉ）であって、端末装置２００によって判定処理が行われる際に、サーバ装置１００が保持する個別イメージファイルＰｉから算出される。このようなことから、判定部２４２は、認証情報Ｒ（Ｐｉ）と上記式（４）により得られる剰余とが一致するか否かに基づいて、サーバ装置１００に保持されている個別イメージファイルＰｉに対して改竄等が行われたか否かを判定することができる。
【００６４】
判定部２４２は、認証情報Ｒ（Ｐｉ）と上記式（４）により得られる剰余とが一致しない場合には（ステップＳ２０９否定）、仮想マシンを前回停止してから現時点までの間に、個別イメージファイルＰｉに対して不正な改竄等が行われたと判定し、仮想マシンの起動を中止する（ステップＳ２１０）。このとき、判定部２４２は、個別イメージファイルＰｉに対して不正な改竄等が行われた可能性がある旨をサーバ装置１００に通知してもよいし、端末装置２００のユーザ等に通知してもよい。
【００６５】
一方、判定部２４２は、認証情報Ｒ（Ｐｉ）と上記式（４）により得られる剰余とが一致する場合には（ステップＳ２０９肯定）、仮想マシンを前回停止してから現時点までの間に、個別イメージファイルＰｉに対して不正な改竄等が行われていないと判定する。かかる場合に、仮想マシン利用部２２０は、サーバ装置１００に対して、仮想マシンの起動指示を送信する（ステップＳ２１１）。続いて、計算部２４０は、判定部２４２による判定処理が終了したので、ステップＳ２０３において生成した認証情報生成因子Ｒと、ステップＳ２０８において受信した認証情報Ｒ（Ｐｉ）とを削除する（ステップＳ２１２）。
【００６６】
そして、サーバ装置１００の仮想マシン実行部１３０は、端末装置２００から仮想マシンの起動指示を受信する（ステップＳ２１３）。続いて、計算部１４０は、端末装置２００による判定処理が終了したので、ステップＳ２０５において受信した認証情報生成因子Ｒと、ステップＳ２０６において生成した認証情報Ｒ（Ｐｉ）とを削除する（ステップＳ２１４）。
【００６７】
そして、仮想マシン実行部１３０は、共通データ記憶部１２１に記憶されている共通イメージファイルＨと、個別データ記憶部１２２ｉに記憶されている個別イメージファイルＰｉとを用いて、仮想マシンを起動する（ステップＳ２１５）。これにより、端末装置２００のユーザは、サーバ装置１００に記憶されている仮想マシンのイメージファイルの完全性を確認した後に、サーバ装置１００上で仮想マシンを起動させることができる。
【００６８】
ここで、図４に示した例のように、ネットワークシステム１における初期処理手順においてサーバ装置１００と端末装置２００との間で流通するデータは、所定の数値である第１の値ｇや第２の値Ｎ、剰余である検証情報Ｃ（Ｐｉ）である。また、図５に示した例のように、ネットワークシステム１における起動処理手順においてサーバ装置１００と端末装置２００との間で流通するデータは、剰余である認証情報生成因子Ｒや認証情報Ｒ（Ｐｉ）である。このため、第１の実施形態に係るネットワークシステム１では、サーバ装置１００と端末装置２００との間におけるデータ転送量を低減することができ、この結果、データ転送時間も短縮することができる。
【００６９】
また、第１の実施形態に係るネットワークシステム１では、各ユーザにより利用されるイメージファイル全体を用いて、検証情報Ｃ（Ｐｉ）や認証情報Ｒ（Ｐｉ）を生成するのではなく、各ユーザにより利用されるイメージファイルと共通イメージファイルとの差分である個別イメージファイルを用いて、検証情報Ｃ（Ｐｉ）や認証情報Ｒ（Ｐｉ）を生成する。そして、上記式（１）及び（３）に示すように、自然数の２進数表記とみなされる個別イメージファイルＰｉは、冪乗演算の冪数となる。第１の実施形態に係るネットワークシステム１では、イメージファイル全体ではなく個別イメージファイルＰｉを用いることで、冪乗演算における冪数の値を小さくすることができるので、完全性を確認するための演算処理（式（１）や（３）の演算処理）を高速化することができる。
【００７０】
以上のことから、第１の実施形態に係るネットワークシステム１では、ファイルの完全性を確認するためのデータ転送量を低減するとともに、完全性を確認するための演算処理を高速化することができる。
【００７１】
なお、仮想マシンが起動された後に、ユーザによって仮想マシンが利用されることでイメージファイルに対する各種更新情報が発生するが、ここでは、共通イメージファイルＨは読込み専用であるものとする。すなわち、仮想マシン実行部１３０は、各種更新情報を個別イメージファイルＰｉに書き込むものとする。
【００７２】
［停止処理手順］
図６は、第１の実施形態に係るネットワークシステム１による停止処理手順を示すシーケンス図である。図６に示すように、端末装置２００の仮想マシン利用部２２０は、ユーザによる操作に従って、サーバ装置１００に対して、仮想マシンの停止指示を送信する（ステップＳ３０１）。
【００７３】
そして、サーバ装置１００の仮想マシン実行部１３０は、端末装置２００から仮想マシンの停止指示を受信する（ステップＳ３０２）。かかる場合に、仮想マシン実行部１３０は、仮想マシンを停止させる（ステップＳ３０３）。これにより、仮想マシン実行部１３０は、個別イメージファイルＰｉに各種更新情報を書き込む処理を終了し、個別イメージファイルを確定させる（ステップＳ３０４）。ここでは、更新後の個別イメージファイルを個別イメージファイルＰｉ＋１とする。
【００７４】
続いて、検証情報生成部１４１は、下記式（６）に示すように、更新後の個別イメージファイルＰｉ＋１を用いて、新たな検証情報Ｃ（Ｐｉ＋１）を生成する（ステップＳ３０５）。
【００７５】
Ｃ（Ｐｉ＋１）  ＝  ｇＰｉ＋１  ｍｏｄ  Ｎ  ・・・  （６）
【００７６】
続いて、検証情報生成部１４１は、ステップＳ３０５において生成した検証情報Ｃ（Ｐｉ＋１）を端末装置２００に送信する（ステップＳ３０６）。
【００７７】
そして、端末装置２００の仮想マシン利用部２２０は、サーバ装置１００から検証情報Ｃ（Ｐｉ＋１）を受信する（ステップＳ３０７）。このとき、仮想マシン利用部２２０は、検証情報記憶部２３０に記憶されている検証情報Ｃ（Ｐｉ）を、サーバ装置１００から受信した検証情報Ｃ（Ｐｉ＋１）に更新する（ステップＳ３０８）。
【００７８】
続いて、仮想マシン利用部２２０は、検証情報の更新結果をサーバ装置１００に送信する（ステップＳ３０９）。具体的には、仮想マシン利用部２２０は、検証情報記憶部２３０に記憶されている検証情報Ｃ（Ｐｉ）を検証情報Ｃ（Ｐｉ＋１）に更新できた場合には、更新成功であることを示す更新結果をサーバ装置１００に送信し、検証情報Ｃ（Ｐｉ）を検証情報Ｃ（Ｐｉ＋１）に更新できなかった場合には、更新失敗であることを示す更新結果をサーバ装置１００に送信する。
【００７９】
そして、サーバ装置１００の仮想マシン実行部１３０は、端末装置２００から更新結果を受信する（ステップＳ３１０）。そして、仮想マシン実行部１３０は、端末装置２００から受信した更新結果が成功を示すか否かを判定する（ステップＳ３１１）。
【００８０】
このとき、仮想マシン実行部１３０は、更新結果が更新成功を示す場合には（ステップＳ３１１肯定）、更新後の個別イメージファイルＰｉ＋１を個別データ記憶部１２２ｉ＋１に格納するとともに、端末装置２００のユーザのユーザ識別子に対応付けてユーザ情報記憶部１２３に記憶されている個別イメージファイルＰｉの個別識別子を、個別イメージファイルＰｉ＋１の個別識別子に更新する（ステップＳ３１２）。続いて、仮想マシン実行部１３０は、個別イメージファイルＰｉを削除する（ステップＳ３１３）。すなわち、仮想マシン実行部１３０は、個別データ記憶部１２２ｉを削除する。
【００８１】
一方、仮想マシン実行部１３０は、更新結果が更新失敗を示す場合には（ステップＳ３１１否定）、個別イメージファイルＰｉ＋１を削除し、ロールバックすることにより、端末装置２００に対応する個別イメージファイルを個別イメージファイルＰｉに戻す（ステップＳ３１４）。最後に、仮想マシン実行部１３０は、ステップＳ３０６において生成した検証情報Ｃ（Ｐｉ＋１）を削除する（ステップＳ３１５）。
【００８２】
なお、上記例では、個別イメージファイルＰｉと個別イメージファイルＰｉ＋１とが異なるファイルとして存在することを前提として説明したが、ユーザによって仮想マシンが利用されることにより、仮想マシン実行部１３０が、個別イメージファイルＰｉを随時更新して個別イメージファイルＰｉ＋１を生成する場合もある。このとき、仮想マシン実行部１３０は、更新結果が更新成功を示す場合に（ステップＳ３１１肯定）、更新後の個別イメージファイルＰｉ＋１を個別データ記憶部１２２ｉに格納したままとし、さらに、ユーザ情報記憶部１２３に記憶されている個別イメージファイルＰｉの個別識別子を更新しなくてもよい。また、仮想マシン実行部１３０は、更新結果が更新失敗を示す場合には（ステップＳ３１１否定）、個別データ記憶部１２２ｉに記憶されている個別イメージファイルＰｉ＋１をロールバックすることにより個別イメージファイルＰｉに戻す処理だけを行ってもよい（ステップＳ３１４）。
【００８３】
［第１の実施形態の効果］
上述してきたように、第１の実施形態に係るネットワークシステム１は、サーバ装置１００と端末装置２００とを含む。かかるサーバ装置１００は、共通データ記憶部１２１と、ユーザ情報記憶部１２３と、検証情報生成部１４１と、認証情報生成部１４２とを有する。そして、共通データ記憶部１２１は、複数のユーザにより利用される共通イメージファイル（共通データの一例に相当）を記憶する。また、ユーザ情報記憶部１２３は、端末装置２００のユーザを識別するためのユーザ識別子に対応付けて、ユーザにより利用されるイメージファイルと共通イメージファイルとの差分である個別イメージファイル（個別データの一例に相当）を記憶する。また、検証情報生成部１４１は、個別イメージファイルを用いて、かかる個別イメージファイルを検証するための検証情報を生成する。また、認証情報生成部１４２は、端末装置２００から認証情報生成因子を受信した場合に、かかる認証情報生成因子と、端末装置２００に対応する個別イメージファイルとを用いて認証情報を生成し、生成した認証情報を端末装置２００に送信する。また、検証情報記憶部２３０と、要求部２４１と、判定部２４２とを有する。検証情報記憶部２３０は、サーバ装置１００の検証情報生成部１４１により生成された検証情報を記憶する。要求部２４１は、所定の認証情報生成因子をサーバ装置１００に送信することにより、サーバ装置１００に対して認証情報の生成を要求する。判定部２４２は、要求部２４１による要求の応答としてサーバ装置１００から受信した認証情報と、検証情報記憶部２３０に記憶されている検証情報とを用いて、個別イメージファイルの正当性を判定する。
【００８４】
これにより、第１の実施形態に係るネットワークシステム１は、各ユーザにより利用されるイメージファイルと共通イメージファイルとの差分である個別イメージファイルを用いて、検証情報や認証情報を生成するので、上記式（１）及び（３）等の演算処理にかかる負荷を低減することができ、この結果、ファイルの完全性を判定する処理を高速化することができる。
【００８５】
また、第１の実施形態に係るネットワークシステム１において、サーバ装置１００の検証情報生成部１４１は、ユーザ情報記憶部１２３に記憶されている個別イメージファイルが更新された場合に、更新後の個別イメージファイルを用いて、新たな検証情報を生成する。また、端末装置２００は、検証情報記憶部２３０に記憶されている検証情報を検証情報生成部１４１により生成された新たな検証情報に更新する。
【００８６】
これにより、第１の実施形態に係るネットワークシステム１では、仮想マシンが利用されることによりイメージファイルに更新が発生した場合であっても、更新後のイメージファイルについて、完全性を確認することが可能となる。
【００８７】
また、第１の実施形態に係るネットワークシステム１において、サーバ装置１００及び端末装置２００は、上記式（１）〜（３）に示したように、互いに剰余を送受信することにより、個別イメージファイルの完全性判定を行う。これにより、第１の実施形態に係るネットワークシステム１は、サーバ装置１００と端末装置２００との間におけるデータ転送量を低減することができ、この結果、データ転送時間も短縮することができる。
【００８８】
（第２の実施形態）
上記第１の実施形態では、端末装置２００が、イメージファイルの完全性判定処理を行う例を示した。しかし、端末装置２００のユーザが利用する移動体端末が、完全性判定処理を行ってもよい。第２の実施形態では、移動体端末が完全性判定処理を行う例について説明する。なお、以下では、既に示した構成部位と同様の機能を有する部位には同一符号を付すこととして、その詳細な説明を省略する。
【００８９】
［ネットワークシステムの構成］
まず、図７を用いて、第２の実施形態に係るネットワークシステムについて説明する。図７は、第２の実施形態に係るネットワークシステム２の構成例を示す図である。図７に例示したネットワークシステム２には、サーバ装置３００と、端末装置４００と、移動体端末５００とが含まれる。図７に示した例において、端末装置４００及び移動体端末５００は、同一のユーザによって利用されるものとする。なお、ネットワークシステム２に含まれる各装置の台数は、図７に示した例に限られない。例えば、ネットワークシステム２には、２台以上のサーバ装置３００が含まれてもよいし、２台以上の端末装置４００が含まれてもよいし、２台以上の移動体端末５００が含まれてもよい。
【００９０】
［サーバ装置の構成］
図７に示すように、第２の実施形態に係るサーバ装置３００は、計算部３４０と、画像生成部３５０とを有する。計算部３４０は、検証情報生成部３４１と認証情報生成部３４２とを有する。計算部３４０による処理については後述する。
【００９１】
画像生成部３５０は、所定の情報を特定するための画像を生成する。具体的には、画像生成部３５０は、バーコードやＱＲコード（登録商標）等の一次元コードや二次元コード等が描出された画像を生成する。第２の実施形態に係る画像生成部３５０は、二次元コードを生成するものとする。なお、画像生成部３５０による処理については後述する。
【００９２】
［端末装置の構成］
図７に示すように、第２の実施形態に係る端末装置４００は、仮想マシン利用部４２０と、要求部４４１と、表示部４４３とを有する。仮想マシン利用部４２０及び要求部４４１による処理については後述する。表示部４４３は、各種情報を表示するための表示デバイスであり、例えば、液晶表示装置等である。
【００９３】
［移動体端末の構成］
移動体端末５００は、例えば、携帯電話機やＰＤＡ（Personal  Digital  Assistant）等である。かかる移動体端末５００は、図７に示すように、読取部５１０と、検証情報記憶部５２０と、表示部５３０と、計算部５４０とを有する。
【００９４】
読取部５１０は、液晶表示装置に表示された一次元コードや二次元コード等を読み取り、読み取ったコードが示す情報を生成する。例えば、読取部５１０は、カメラ及びカメラを制御する制御回路等によって実現される。なお、読取部５１０は、紙媒体等に印刷された一次元コードや二次元コード等を読み取ることもできる。
【００９５】
検証情報記憶部５２０は、サーバ装置３００によって生成される検証情報を記憶する。なお、検証情報記憶部５２０は、図３に示した検証情報記憶部２３０と同様の構成を有する。表示部５３０は、各種情報を表示するための表示デバイスであり、例えば、液晶表示装置等である。計算部５４０は、要求部５４１と判定部５４２とを有する。計算部５４０による処理については後述する。
【００９６】
［ネットワークシステムによる処理手順］
次に、図８〜図１０を用いて、第２の実施形態に係るネットワークシステム２による処理手順について説明する。以下では、第１の実施形態と同様に、初期処理手順、起動処理手順、停止処理手順について順に説明する。
【００９７】
［初期処理手順］
図８は、第２の実施形態に係るネットワークシステム２による初期処理手順を示すシーケンス図である。図８に示すように、端末装置４００のユーザが仮想マシンのイメージファイルを端末装置４００に登録する場合、まず、端末装置４００とサーバ装置３００との間でユーザ認証を行う（ステップＳ４０１）。ここでは、サーバ装置３００の仮想マシン実行部１３０が認証成功と判定したものとする。
【００９８】
続いて、サーバ装置３００の計算部３４０は、第１の実施形態と同様に、第１の値ｇ及び第２の値Ｎを生成する（ステップＳ４０２）。続いて、画像生成部３５０は、計算部３４０によって生成された第１の値ｇ及び第２の値Ｎを特定するための二次元コードが描出された画像を生成する（ステップＳ４０３）。続いて、画像生成部３５０は、このようにして生成した二次元コードが描出された画像を端末装置４００に送信する（ステップＳ４０４）。なお、以下では、所定の情報を特定するための二次元コードが描出された画像を単に「所定の情報の二次元コード」と表記する場合がある。
【００９９】
そして、端末装置４００の仮想マシン利用部４２０は、サーバ装置３００から第１の値ｇ及び第２の値Ｎの二次元コードを受信した場合に、受信した二次元コードを表示部４４３に表示制御する（ステップＳ４０５）。続いて、移動体端末５００の読取部５１０は、ユーザによる操作に従って、端末装置４００の表示部４４３に表示された二次元コードを読み取る（ステップＳ４０６）。このとき、読取部５１０は、読み取った二次元コードから第１の値ｇ及び第２の値Ｎを生成する。
【０１００】
続いて、サーバ装置３００の仮想マシン実行部１３０は、記憶部１２０の共通データ記憶部１２１から共通イメージファイルＨを読み込む（ステップＳ４０７）。続いて、仮想マシン実行部１３０は、共通イメージファイルＨを用いて、端末装置４００の利用者が個別に利用する個別イメージファイルＰｉを生成する（ステップＳ４０８）。このとき、仮想マシン実行部１３０は、個別イメージファイルＰｉを個別データ記憶部１２２ｉに格納する。
【０１０１】
続いて、検証情報生成部３４１は、上記式（１）を用いて、個別イメージファイルＰｉから検証情報Ｃ（Ｐｉ）を生成する（ステップＳ４０９）。続いて、画像生成部３５０は、検証情報生成部３４１によって生成された検証情報Ｃ（Ｐｉ）を特定するための二次元コードが描出された画像を生成し（ステップＳ４１０）、生成した検証情報Ｃ（Ｐｉ）の二次元コードを端末装置４００に送信する（ステップＳ４１１）。
【０１０２】
続いて、検証情報生成部３４１は、端末装置４００のユーザ識別子に対応付けて、ステップＳ４０２において生成した第１の値ｇ及び第２の値Ｎと、ステップＳ４０８において生成した個別イメージファイルＰｉの個別識別子とをユーザ情報記憶部１２３に登録する（ステップＳ４１２）。
【０１０３】
そして、端末装置４００の仮想マシン利用部４２０は、サーバ装置３００から検証情報Ｃ（Ｐｉ）の二次元コードを受信した場合に、受信した二次元コードを表示部４４３に表示制御する（ステップＳ４１３）。
【０１０４】
続いて、移動体端末５００の読取部５１０は、ユーザによる操作に従って、端末装置４００の表示部４４３に表示された検証情報Ｃ（Ｐｉ）の二次元コードを読み取る（ステップＳ４１４）。このとき、読取部５１０は、読み取った二次元コードから検証情報Ｃ（Ｐｉ）を生成する。そして、読取部５１０は、ステップＳ４０６において読み取った二次元コードから生成した第１の値ｇ及び第２の値Ｎと、ステップＳ４１４において読み取った二次元コードから生成した検証情報Ｃ（Ｐｉ）とを検証情報記憶部５２０に登録する（ステップＳ４１５）。
【０１０５】
［起動処理手順］
図９は、第２の実施形態に係るネットワークシステム２による起動処理手順を示すシーケンス図である。図９に示すように、端末装置４００のユーザがサーバ装置３００上で仮想マシンを起動させる場合、まず、端末装置４００とサーバ装置３００との間でユーザ認証を行う（ステップＳ５０１）。
【０１０６】
続いて、移動体端末５００の要求部５４１は、所定の乱数ｒを生成する（ステップＳ５０２）。続いて、要求部５４１は、上記式（２）を用いて、乱数ｒから認証情報生成因子Ｒを生成する（ステップＳ５０３）。そして、要求部５４１は、生成した認証情報生成因子Ｒを表示部５３０に表示制御する（ステップＳ５０４）。
【０１０７】
そして、端末装置４００は、移動体端末５００のユーザから認証情報生成因子Ｒの入力を受け付ける（ステップＳ５０５）。例えば、移動体端末５００のユーザは、端末装置４００の入力部（図示しないキーボードやマウス等）を用いて、表示部５３０に表示されている認証情報生成因子Ｒを端末装置４００に入力する。そして、端末装置４００の要求部４４１は、ユーザから入力された認証情報生成因子Ｒをサーバ装置３００に送信する（ステップＳ５０６）。
【０１０８】
そして、サーバ装置３００の認証情報生成部３４２は、端末装置４００から認証情報生成因子Ｒを受信する（ステップＳ５０７）。続いて、認証情報生成部３４２は、上記式（３）を用いて、認証情報生成因子Ｒと端末装置４００に対応する個別イメージファイルＰｉとから認証情報Ｒ（Ｐｉ）を生成する（ステップＳ５０８）。
【０１０９】
続いて、画像生成部３５０は、認証情報生成部３４２によって生成された認証情報Ｒ（Ｐｉ）の二次元コードを生成する（ステップＳ５０９）。続いて、画像生成部３５０は、認証情報Ｒ（Ｐｉ）の二次元コードを端末装置４００に送信する（ステップＳ５１０）。
【０１１０】
そして、端末装置４００の仮想マシン利用部４２０は、サーバ装置３００から認証情報Ｒ（Ｐｉ）の二次元コードを受信した場合に、受信した二次元コードを表示部４４３に表示制御する（ステップＳ５１１）。続いて、移動体端末５００の読取部５１０は、ユーザによる操作に従って、端末装置４００の表示部４４３に表示された二次元コードを読み取る（ステップＳ５１２）。このとき、読取部５１０は、読み取った二次元コードから認証情報Ｒ（Ｐｉ）を生成する。
【０１１１】
そして、移動体端末５００の判定部５４２は、読取部５１０により読み取られた認証情報Ｒ（Ｐｉ）と、検証情報記憶部５２０に記憶されている検証情報Ｃ（Ｐｉ）とを用いて、認証情報Ｒ（Ｐｉ）の正当性を判定する（ステップＳ５１３）。かかる判定処理は、図５のステップＳ２０９に示した処理と同様である。
【０１１２】
そして、判定部５４２は、認証情報Ｒ（Ｐｉ）が正しくない場合には（ステップＳ５１３否定）、仮想マシンを前回停止してから個別イメージファイルＰｉに対して不正な改竄等が行われたと判定し、かかる判定結果を表示部５３０に表示する（ステップＳ５１４）。これにより、移動体端末５００及び端末装置４００のユーザは、サーバ装置３００上で仮想マシンを起動することを中止することができる。
【０１１３】
一方、判定部５４２は、認証情報Ｒ（Ｐｉ）が正しい場合には（ステップＳ５１３肯定）、仮想マシンを前回停止してから個別イメージファイルＰｉに対して不正な改竄等が行われていないと判定し、かかる判定結果を表示部５３０に表示する（ステップＳ５１５）。続いて、計算部５４０は、判定部５４２による判定処理が終了したので、ステップＳ５０３において生成した認証情報生成因子Ｒと、ステップＳ５１２において読み取った認証情報Ｒ（Ｐｉ）とを削除する（ステップＳ５１６）。
【０１１４】
そして、移動体端末５００及び端末装置４００のユーザは、表示部５３０に表示されている表示結果に応じて、サーバ装置３００上で仮想マシンを利用できると判断することとなる。かかる場合に、ユーザは、サーバ装置３００に起動指示を送信するよう端末装置４００に入力する（ステップＳ５１７）。そして、端末装置４００の仮想マシン利用部４２０は、ユーザによる操作に従って、サーバ装置３００に仮想マシンの起動指示を送信する（ステップＳ５１８）。
【０１１５】
そして、サーバ装置３００の仮想マシン実行部１３０は、端末装置４００から仮想マシンの起動指示を受信する（ステップＳ５１９）。続いて、計算部３４０は、端末装置４００による判定処理が終了したので、ステップＳ５０７において受信した認証情報生成因子Ｒと、ステップＳ５０８において生成した認証情報Ｒ（Ｐｉ）とを削除する（ステップＳ５２０）。
【０１１６】
そして、仮想マシン実行部１３０は、共通データ記憶部１２１に記憶されている共通イメージファイルＨと、個別データ記憶部１２２ｉに記憶されている個別イメージファイルＰｉとを用いて、仮想マシンを起動する（ステップＳ５２１）。これにより、端末装置４００のユーザは、サーバ装置３００に記憶されている仮想マシンのイメージファイルの完全性を確認した後に、サーバ装置３００上で仮想マシンを起動させることができる。
【０１１７】
［停止処理手順］
図１０は、第２の実施形態に係るネットワークシステム２による停止処理手順を示すシーケンス図である。図１０に示すように、端末装置４００の仮想マシン利用部４２０は、ユーザによる操作に従って、サーバ装置３００に対して、仮想マシンの停止指示を送信する（ステップＳ６０１）。
【０１１８】
そして、サーバ装置３００の仮想マシン実行部１３０は、端末装置４００から仮想マシンの停止指示を受信する（ステップＳ６０２）。かかる場合に、仮想マシン実行部１３０は、仮想マシンを停止させる（ステップＳ６０３）。これにより、仮想マシン実行部１３０は、個別イメージファイルＰｉに各種更新情報を書き込む処理を終了し、個別イメージファイルを確定させる（ステップＳ６０４）。ここでは、更新後の個別イメージファイルを個別イメージファイルＰｉ＋１とする。
【０１１９】
続いて、検証情報生成部３４１は、上記式（６）を用いて、更新後の個別イメージファイルＰｉ＋１から新たな検証情報Ｃ（Ｐｉ＋１）を生成する（ステップＳ６０５）。画像生成部３５０は、検証情報生成部３４１によって生成された検証情報Ｃ（Ｐｉ＋１）を特定するための二次元コードが描出された画像を生成し（ステップＳ６０６）、生成した検証情報Ｃ（Ｐｉ＋１）の二次元コードを端末装置４００に送信する（ステップＳ６０７）。
【０１２０】
そして、端末装置４００の仮想マシン利用部４２０は、サーバ装置３００から検証情報Ｃ（Ｐｉ＋１）の二次元コードを受信した場合に、受信した二次元コードを表示部４４３に表示制御する（ステップＳ６０８）。
【０１２１】
続いて、移動体端末５００の読取部５１０は、ユーザによる操作に従って、端末装置４００の表示部４４３に表示された検証情報Ｃ（Ｐｉ＋１）の二次元コードを読み取る（ステップＳ６０９）。このとき、読取部５１０は、読み取った二次元コードから検証情報Ｃ（Ｐｉ＋１）を生成する。そして、読取部５１０は、検証情報記憶部５２０に記憶されている検証情報Ｃ（Ｐｉ）を、ステップＳ６０９において読み取った二次元コードから生成した検証情報Ｃ（Ｐｉ＋１）に更新する（ステップＳ６１０）。そして、読取部５１０は、検証情報の更新結果を表示部５３０に表示する（ステップＳ６１１）。
【０１２２】
そして、移動体端末５００及び端末装置４００のユーザは、表示部５３０に表示されている検証情報の更新結果を端末装置４００に入力する（ステップＳ６１２）。そして、端末装置４００の仮想マシン利用部４２０は、ユーザによる操作に従って、サーバ装置３００に検証情報の更新結果を送信する（ステップＳ６１３）。
【０１２３】
そして、サーバ装置３００の仮想マシン実行部１３０は、端末装置４００から更新結果を受信する（ステップＳ６１４）。続いて、仮想マシン実行部１３０は、端末装置４００から受信した更新結果が成功を示すか否かを判定する（ステップＳ６１５）。この後のステップＳ６１５〜Ｓ６１９における処理手順は、図６に示したステップＳ３１１〜Ｓ３１５における処理手順と同様であるので、ここでは説明を省略する。
【０１２４】
［第２の実施形態の効果］
上述してきたように、第２の実施形態に係るネットワークシステム２において、移動体端末５００が、検証情報を保持し、個別イメージファイルの完全性を判定する。これにより、移動体端末５００を保持するユーザは、任意の端末装置４００において、サーバ装置３００上の仮想マシンを利用することが可能になる。例えば、ユーザは、自宅のＰＣからサーバ装置３００上の仮想マシンを利用する場合、移動体端末５００と自宅のＰＣとを用いて、完全性判定処理を行った後に、自宅のＰＣから仮想マシンを利用することができる。また、かかるユーザは、会社のＰＣからサーバ装置３００上の仮想マシンを利用する場合においても、移動体端末５００と会社のＰＣとを用いて、完全性判定処理を行った後に、会社のＰＣから仮想マシンを利用することができる。
【０１２５】
また、第２の実施形態に係るネットワークシステム２において、サーバ装置３００は、移動体端末５００が読み取り可能な二次元コードを生成する。これにより、ユーザは、検証情報や認証情報を容易に移動体端末５００に保存することができる。
【０１２６】
（第３の実施形態）
上述したネットワークシステム１及び２は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、第３の実施形態では、上記のネットワークシステム１及び２の他の実施形態について説明する。
【０１２７】
［判定対象のデータ］
上記実施形態では、仮想マシンのイメージファイルの完全性を判定する例について説明した。しかし、上述してきたネットワークシステム１及び２は、イメージファイルだけでなく、他のデータ（ファイル等）の完全性を判定する場合についても適用することができる。例えば、ファイルサーバが各ユーザの各種データを保持している場合に、かかるファイルサーバは、各ユーザが利用するデータから、複数のユーザに共通する共通データを除いた個別データを用いて検証情報等を生成することで、上記実施形態における完全性判定処理と同様の処理を実現することができる。
【０１２８】
［共通イメージファイル］
また、上記実施形態において、記憶部１２０には、１つの共通データ記憶部１２１が存在する例を示したが、記憶部１２０は、複数の共通イメージファイルを記憶してもよい。例えば、記憶部１２０は、所定のユーザグループＧ１に対応する共通イメージファイルＦ１を記憶するとともに、所定のユーザグループＧ２に対応する共通イメージファイルＦ２を記憶してもよい。そして、仮想マシン実行部１３０は、各ユーザが属するユーザグループに対応する共通イメージファイルを用いて、個別イメージファイルを生成する。
【０１２９】
［初期処理］
また、上記実施形態では、図４や図８に示したように、サーバ装置側から端末装置２００や移動体端末５００に第１の値、第２の値及び検証情報を送信する例を示した。しかし、第１の値、第２の値及び検証情報が記憶された媒体を郵送等によってユーザに届ける形態であってもよい。
【０１３０】
［第２の値Ｎ］
また、上記実施形態において、計算部１４０や３４０は、剰余演算における除数に用いられる「第２の値Ｎ」を、因数分解が困難である値にしてもよい。これにより、剰余を予測することが困難となり、安全性を向上させることができる。
【０１３１】
［システム構成］
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１３２】
例えば、第２の実施形態において、移動体端末５００と端末装置４００とは、メール送信等によって各種情報を送受してもよい。例えば、移動体端末５００は、図９のステップＳ５０４において、電子メールにより認証情報生成因子Ｒを端末装置４００に送信してもよい。このとき、端末装置４００は、移動体端末５００から受信した認証情報生成因子Ｒをサーバ装置３００に送信する。
【０１３３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１３４】
例えば、図１に示した例では、端末装置２００が、仮想マシン利用部２２０とは別に計算部２４０を有する例を示したが、仮想マシン利用部２２０が計算部２４０を有してもよい。同様に、図７に示した仮想マシン利用部４２０は要求部４４１を有してもよい。
【０１３５】
［プログラム］
また、上記実施形態において説明したサーバ装置１００及び３００や端末装置２００及び４００が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、サーバ装置１００が実行する処理をコンピュータが実行可能な言語で記述した認証プログラムを作成することもできる。この場合、コンピュータが認証プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかる認証プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された認証プログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、一例として、図１に示したサーバ装置１００と同様の機能を実現する認証プログラムを実行するコンピュータの一例を説明する。
【０１３６】
図１１は、認証プログラムを実行するコンピュータ１０００を示す図である。図１１に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【０１３７】
メモリ１０１０は、図１１に例示するように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図１１に例示するように、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、図１１に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェース１０５０は、図１１に例示するように、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、図１１に例示するように、例えばディスプレイ１０６１に接続される。
【０１３８】
ここで、図１１に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、上記の認証プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０３１に記憶される。例えば、図１に例示した仮想マシン実行部１３０と同様の情報処理を実行する仮想マシン実行手順と、検証情報生成部１４１と同様の情報処理を実行する検証情報生成手順と、認証情報生成部１４２と同様の情報処理を実行する認証情報生成手順とが記述されたプログラムモジュール１０９３が、ハードディスクドライブ１０３１に記憶される。
【０１３９】
また、上記実施形態で説明した記憶部１２０が保持する各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、仮想マシン実行手順、検証情報生成手順、認証情報生成手順を実行する。
【０１４０】
なお、認証プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、認証プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【０１４１】
１  ネットワークシステム
１００  サーバ装置
１２０  記憶部
１２１  共通データ記憶部
１２２  個別データ記憶部
１２３  ユーザ情報記憶部
１３０  仮想マシン実行部
１４０  計算部
１４１  検証情報生成部
１４２  認証情報生成部
２００  端末装置
２１０  通信部
２２０  仮想マシン利用部
２３０  検証情報記憶部
２４０  計算部
２４１  要求部
２４２  判定部
５００  移動体端末
５１０  読取部
５２０  検証情報記憶部
５３０  表示部
５４０  計算部
５４１  要求部
５４２  判定部
【図１】
2014002523.tif 000003
【図２】
2014002523.tif 000004
【図３】
2014002523.tif 000005
【図４】
2014002523.tif 000006
【図５】
2014002523.tif 000007
【図６】
2014002523.tif 000008
【図７】
2014002523.tif 000009
【図８】
2014002523.tif 000010
【図９】
2014002523.tif 000011
【図１０】
2014002523.tif 000012
【図１１】
2014002523.tif 000013