(57)【要約】【課題】  シリアル番号や登録番号で管理することなく、不正な電子データのバージョンアップを防止する。【課題を解決するための手段】【解決手段】  ネットワーク１０を介してクライアント装置１とサーバ装置２との間で電子データのバージョンアップ処理を行う電子データ提供システムであって、クライアント装置１は、電子データ検索機能１１でバージョンアップする電子データを読み出し、ハッシュ値計算機能１２でハッシュ値を計算し、このハッシュ値と旧バージョンと新バージョンを送信機能１３によりサーバ装置２に送信し、サーバ装置２は、各バージョン毎のハッシュ値を組でテーブル２１０に記憶し、クライアント装置１から受信した演算値と旧バージョンとの組がテーブル２１０に記憶されていることをハッシュ値確認機能２１で確認すると、送信機能２２で新バージョンの電子データをクライアント装置１に送信し、課金機能２３により、料金テーブル２３０を参照して、クライアント装置１へのバージョンアップ料金を決定し、当該クライアント装置１の操作者に課金する。【選択図】        図１
2005309759.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して通信装置間での電子データのバージョンアップ処理を行う電子データ提供システムであって、
バージョンアップを要求する要求側通信装置に、
予め自装置の記憶手段に格納済みの電子データを読み出す検索手段と、
該検索手段で読み出した電子データに対して、予め定められた衝突困難かつ一方向性の関数Ｈを用いた演算を行う計算手段と、
該計算手段で算出した演算値と該演算値の算出に用いた電子データのバージョンを特定する旧バージョン識別情報および要求するバージョンを特定する新バージョン識別情報を、バージョンアップ要求先の提供側通信装置に送信する送信手段と
を設け、
該提供側通信装置に、
予め上記関数Ｈを用いた各バージョン別の電子データに対する演算で得た各演算値を、各バージョン識別情報に対応付けて組で記憶する演算値記憶手段と、
上記要求側通信装置から送信されてきた演算値と旧バージョン識別情報および新バージョン識別情報を受信する手段と、
受信した演算値と旧バージョン識別情報との組が、上記演算値記憶手段で記憶されているか否かを判別する確認手段と、
該確認手段で、上記受信した演算値と旧バージョン識別情報との組が上記演算値記憶手段で記憶されていると判別すると、上記要求側通信装置から送信されてきた新バージョン識別情報に対応する電子データを自装置の記憶手段から読み出して上記要求側通信装置に送信する送信手段と
を設けたことを特徴とする電子データ提供システム。
【請求項２】
ネットワークを介して通信装置間での電子データのバージョンアップ処理を行う電子データ提供システムであって、
バージョンアップを要求する要求側通信装置は、
予め自装置の記憶手段に格納済みの電子データを読み出す検索手段と、
該検索手段で読み出した電子データに対して、予め定められた衝突困難かつ一方向性の関数Ｈを用いた演算を行う計算手段と、
該計算手段で算出した演算値と該演算値の算出に用いた電子データのバージョンを特定する旧バージョン識別情報および要求するバージョンを特定する新バージョン識別情報を、バージョンアップ要求先の提供側通信装置に送信する送信手段と
を有し、
該提供側通信装置は、
上記要求側通信装置から送信されてきた演算値と旧バージョン識別情報および新バージョン識別情報を受信する手段と、
受信した旧バージョン識別情報に対応するバージョンの電子データを自装置の記憶手段から読み出して上記関数Ｈを用いた演算を行う演算手段と、
該演算手段の演算結果と上記要求側通信装置から受信した演算値とが一致するか否かを判別する確認手段と、
該確認手段で、上記演算結果と受信した演算値とが一致すると判別すると、上記要求側通信装置から受信した新バージョン識別情報に対応する電子データを自装置の記憶手段から読み出して上記要求側通信装置に送信する送信手段と
を有することを特徴とする電子データ提供システム。
【請求項３】
ネットワークを介して通信装置間での電子データのバージョンアップ処理を行う電子データ提供システムであって、
バージョンアップを要求する要求側通信装置は、
予め自装置の記憶手段に格納済みの電子データを読み出す検索手段と、
バージョンアップした電子データを提供する提供側通信装置で要求毎に任意に生成され送信されてきた文字列Ｒを受信する手段と、
上記検索手段で読み出した電子データと上記受信手段で受信した文字列Ｒとに予め決められた演算Ｒを行い、該演算Ｒの結果に対して、衝突困難かつ一方向性の関数Ｈを用いた演算Ｈを行う計算手段と、
該計算手段の演算Ｈで算出した演算値と該演算値の算出に用いた電子データのバージョンを特定する旧バージョン識別情報および要求するバージョンを特定する新バージョン識別情報を、上記提供側通信装置に送信する送信手段と
を有し、
上記提供側通信装置は、
予め、各バージョン別の電子データと上記文字列Ｒに上記演算Ｒを行い、該演算Ｒの結果に対して上記関数Ｈを用いた演算で得た各演算値を、各バージョン識別情報に対応付けて組で記憶する演算値記憶手段と、
上記要求側通信装置から送信されてきた演算値と旧バージョン識別情報および新バージョン識別情報を受信する手段と、
受信した演算値と旧バージョン識別情報との組が、上記演算値記憶手段で記憶されているか否かを判別する確認手段と、
該確認手段で、上記受信した演算値と旧バージョン識別情報との組が上記演算値記憶手段で記憶されていると判別すると、上記要求側通信装置から送信されてきた新バージョン識別情報に対応する電子データを自装置の記憶手段から読み出して上記要求側通信装置に送信する送信手段と
を有することを特徴とする電子データ提供システム。
【請求項４】
ネットワークを介して通信装置間での電子データのバージョンアップ処理を行う電子データ提供システムであって、
バージョンアップを要求する要求側通信装置は、
予め自装置の記憶手段に格納済みの電子データを読み出す検索手段と、
バージョンアップした電子データを提供する提供側通信装置で要求毎に任意に生成され送信されてきた文字列Ｒを受信する手段と、
上記検索手段で読み出した電子データと上記受信手段で受信した文字列Ｒとに予め決められた演算Ｒを行い、該演算Ｒの結果に対して、衝突困難かつ一方向性の関数Ｈを用いた演算Ｈを行う計算手段と、
該計算手段の演算Ｈで算出した演算値と該演算値の算出に用いた電子データのバージョンを特定する旧バージョン識別情報および要求するバージョンを特定する新バージョン識別情報を、上記提供側通信装置に送信する送信手段と
を有し、
上記提供側通信装置は、
上記要求側通信装置から送信されてきた演算値と旧バージョン識別情報および新バージョン識別情報を受信する手段と、
受信した旧バージョン識別情報に対応するバージョンの電子データを自装置の記憶手段から読み出し、読み出した電子データと上記文字列Ｒとに上記演算Ｒを行い、該演算Ｒの結果に対して上記関数Ｈを用いた演算を行う演算手段と、
該演算手段の演算結果と上記要求側通信装置から受信した演算値とが一致するか否かを判別する確認手段と、
該確認手段で、上記演算結果と受信した演算値とが一致すると判別すると、上記要求側通信装置から受信した新バージョン識別情報に対応する電子データを自装置の記憶手段から読み出して上記要求側通信装置に送信する送信手段と
を有することを特徴とする電子データ提供システム。
【請求項５】
請求項３もしくは請求項４のいずれかに記載の電子データ提供システムであって、
上記計算手段および上記演算手段で行う演算Ｒは、上記読み出した電子データと上記文字列Ｒとのビット結合もしくは排他的論理和の少なくともいずれか一方を含むことを特徴とする電子データ提供システム。
【請求項６】
請求項１から請求項５のいずれかに記載の電子データ提供システムであって、
上記計算手段および上記演算手段で行う演算Ｈは、ＭＤ５もしくはＳＨＡ１の少なくともいずれか一方を含むことを特徴とする電子データ提供システム。
【請求項７】
請求項１から請求項６のいずれかに記載の電子データ提供システムであって、
上記提供側通信装置は、
予め各バージョンの識別情報別にバージョンアップ料金を対応付けたテーブル情報を記憶する手段と、
上記テーブル情報を参照して、上記要求側通信装置に送信した新バージョン識別情報に対応する電子データのバージョンアップ料金を決定し、当該要求側通信装置の操作者に課金する課金手段と
を有することを特徴とする電子データ提供システム。
【請求項８】
請求項１から請求項７のいずれかに記載の電子データ提供システムであって、
上記提供側通信装置で記憶し上記要求側通信装置に提供する各バージョンの電子データを、上記提供側通信装置に予め送信する販売者通信装置を設け、
上記要求側通信装置は上記販売者通信装置に対して上記演算値と上記旧バージョン識別情報および上記新バージョン識別情報を送信し、
上記販売者通信装置は、上記要求側通信装置から送信されてきた上記演算値と上記旧バージョン識別情報および上記新バージョン識別情報を上記提供側通信装置に転送する手段を有し、
転送先の上記提供側通信装置から上記要求側通信装置に上記新バージョン識別情報に対応する電子データを送信することを特徴とする電子データ提供システム。
【請求項９】
コンピュータを、請求項１から請求項８のいずれかに記載の電子データ提供システムにおける各手段として機能させるためのプログラム。
【請求項１０】
コンピュータを、請求項１から請求項８のいずれかに記載の電子データ提供システムにおける要求側通信装置の各手段として機能させるためのプログラム。
【請求項１１】
コンピュータを、請求項１から請求項８のいずれかに記載の電子データ提供システムにおける提供側通信装置の各手段として機能させるためのプログラム。
【請求項１２】
ネットワークを介して通信装置間での電子データのバージョンアップ処理を行うコンピュータシステムの電子データ提供方法であって、
バージョンアップを要求する要求側通信装置の処理として、
予め自装置の記憶手段に格納済みの電子データを読み出すステップと、
該ステップで読み出した電子データに対して、予め定められた衝突困難かつ一方向性の関数Ｈを用いた演算を行うステップと、
該ステップで算出した演算値と該演算値の算出に用いた電子データのバージョンを特定する旧バージョン識別情報および要求するバージョンを特定する新バージョン識別情報を、バージョンアップ要求先の提供側通信装置に送信するステップと
を有し、
上記提供側通信装置の処理として、
予め上記関数Ｈを用いた各バージョン別の電子データに対する演算で得た各演算値を、各バージョン識別情報に対応付けて組で記憶手段に記憶するステップと、
上記要求側通信装置から送信されてきた演算値と旧バージョン識別情報および新バージョン識別情報を受信するステップと、
受信した演算値と旧バージョン識別情報との組が、上記記憶手段に記憶されているか否かを判別するステップと、
該ステップで、上記受信した演算値と旧バージョン識別情報との組が上記記憶手段に記憶されていると判別すると、上記要求側通信装置から送信されてきた新バージョン識別情報に対応する電子データを自装置の記憶手段から読み出して上記要求側通信装置に送信するステップと
を有することを特徴とする電子データ提供方法。
【請求項１３】
ネットワークを介して通信装置間での電子データのバージョンアップ処理を行うコンピュータシステムの電子データ提供方法であって、
バージョンアップを要求する要求側通信装置の処理として、
予め自装置の記憶手段に格納済みの電子データを読み出すステップと、
該ステップで読み出した電子データに対して、予め定められた衝突困難かつ一方向性の関数Ｈを用いた演算を行うステップと、
該ステップで算出した演算値と該演算値の算出に用いた電子データのバージョンを特定する旧バージョン識別情報および要求するバージョンを特定する新バージョン識別情報を、バージョンアップ要求先の提供側通信装置に送信するステップと
を有し、
上記提供側通信装置の処理として、
上記要求側通信装置から送信されてきた演算値と旧バージョン識別情報および新バージョン識別情報を受信するステップと、
受信した旧バージョン識別情報に対応するバージョンの電子データを自装置の記憶手段から読み出して上記関数Ｈを用いた演算を行うステップと、
該演算手段の演算結果と上記要求側通信装置から受信した演算値とが一致するか否かを判別するステップと、
該ステップで、上記演算結果と受信した演算値とが一致すると判別すると、上記要求側通信装置から受信した新バージョン識別情報に対応する電子データを自装置の記憶手段から読み出して上記要求側通信装置に送信するステップと
を有することを特徴とする電子データ提供方法。
【請求項１４】
ネットワークを介して通信装置間での電子データのバージョンアップ処理を行うコンピュータシステムの電子データ提供方法であって、
バージョンアップを要求する要求側通信装置の処理として、
予め自装置の記憶手段に格納済みの電子データを読み出すステップと、
バージョンアップした電子データを提供する提供側通信装置で要求毎に任意に生成され送信されてきた文字列Ｒを受信するステップと、
上記読み出した電子データと上記受信した文字列Ｒとに予め決められた演算Ｒを行い、該演算Ｒの結果に対して、衝突困難かつ一方向性の関数Ｈを用いた演算Ｈを行うステップと、
該ステップの演算Ｈで算出した演算値と該演算値の算出に用いた電子データのバージョンを特定する旧バージョン識別情報および要求するバージョンを特定する新バージョン識別情報を、上記提供側通信装置に送信するステップと
を有し、
上記提供側通信装置の処理として、
予め、各バージョン別の電子データと上記文字列Ｒに上記演算Ｒを行い、該演算Ｒの結果に対して上記関数Ｈを用いた演算で得た各演算値を、各バージョン識別情報に対応付けて組で記憶手段に記憶するステップと、
上記要求側通信装置から送信されてきた演算値と旧バージョン識別情報および新バージョン識別情報を受信するステップと、
受信した演算値と旧バージョン識別情報との組が、上記記憶手段に記憶されているか否かを判別するステップと、
該ステップで、上記受信した演算値と旧バージョン識別情報との組が上記記憶手段に記憶されていると判別すると、上記要求側通信装置から送信されてきた新バージョン識別情報に対応する電子データを自装置の記憶手段から読み出して上記要求側通信装置に送信するステップと
を有することを特徴とする電子データ提供方法。
【請求項１５】
ネットワークを介して通信装置間での電子データのバージョンアップ処理を行うコンピュータコンピュータシステムの電子データ提供方法であって、
バージョンアップを要求する要求側通信装置の処理として、
予め自装置の記憶手段に格納済みの電子データを読み出すステップと、
バージョンアップした電子データを提供する提供側通信装置で要求毎に任意に生成され送信されてきた文字列Ｒを受信するステップと、
上記読み出した電子データと上記受信した文字列Ｒとに予め決められた演算Ｒを行い、該演算Ｒの結果に対して、衝突困難かつ一方向性の関数Ｈを用いた演算Ｈを行うステップと、
該ステップでの演算Ｈで算出した演算値と該演算値の算出に用いた電子データのバージョンを特定する旧バージョン識別情報および要求するバージョンを特定する新バージョン識別情報を、上記提供側通信装置に送信するステップと
を有し、
上記提供側通信装置の処理として、
上記要求側通信装置から送信されてきた演算値と旧バージョン識別情報および新バージョン識別情報を受信するステップと、
受信した旧バージョン識別情報に対応するバージョンの電子データを自装置の記憶手段から読み出し、読み出した電子データと上記文字列Ｒとに上記演算Ｒを行い、該演算Ｒの結果に対して上記関数Ｈを用いた演算を行うステップと、
該ステップでの演算結果と上記要求側通信装置から受信した演算値とが一致するか否かを判別するステップと、
該ステップで、上記演算結果と受信した演算値とが一致すると判別すると、上記要求側通信装置から受信した新バージョン識別情報に対応する電子データを自装置の記憶手段から読み出して上記要求側通信装置に送信するステップと
を有することを特徴とする電子データ提供方法。
【請求項１６】
請求項１４もしくは請求項１５のいずれかに記載の電子データ提供方法であって、
上記演算Ｒは、上記読み出した電子データと上記文字列Ｒとのビット結合もしくは排他的論理和の少なくともいずれか一方を含むことを特徴とする電子データ提供方法。
【請求項１７】
請求項１２から請求項１６のいずれかに記載の電子データ提供方法であって、
上記演算Ｈは、ＭＤ５もしくはＳＨＡ１の少なくともいずれか一方を含むことを特徴とする電子データ提供方法。
【請求項１８】
請求項１２から請求項１７のいずれかに記載の電子データ提供方法であって、
上記提供側通信装置の処理として、
予め各バージョンの識別情報別にバージョンアップ料金を対応付けたテーブル情報を記憶手段に記憶するステップと、
上記テーブル情報を参照して、上記要求側通信装置に送信した新バージョン識別情報に対応する電子データのバージョンアップ料金を決定し、当該要求側通信装置の操作者に課金するステップとを有することを特徴とする電子データ提供方法。
【請求項１９】
請求項１２から請求項１８のいずれかに記載の電子データ提供方法であって、
上記提供側通信装置の処理として、予め販売者通信装置から送信されてきた各バージョンの電子データを記憶手段に記憶するステップを有し、
上記要求側通信装置の処理として、上記販売者通信装置に対して上記演算値と上記旧バージョン識別情報および上記新バージョン識別情報を送信するステップを有し、
上記販売者通信装置の処理として、上記要求側通信装置から送信されてきた上記演算値と上記旧バージョン識別情報および上記新バージョン識別情報を上記提供側通信装置に転送するステップを有し、
転送先の上記提供側通信装置から上記要求側通信装置に上記新バージョン識別情報に対応する電子データを送信することを特徴とする電子データ提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して通信装置間での電子データのバージョンアップ処理を行う技術に係わり、特に、不正なバージョンアップ要求を効率的に回避するのに好適な電子データの提供技術に関するものである。
【背景技術】
【０００２】
一般に、カーナビゲーション等に用いられる地図データや、コンピュータウイルス定義ファイルおよび各種アプリケーションプログラムなどの電子データは、周期的、あるいは非周期的に更新される。これらの電子データの販売者は、更新した電子データを販売する際に、ユーザが既に購入している電子データのバージョンに応じて異なる料金を提供する場合がある。具体的には次のような料金体系が考えられる。
【０００３】
すなわち、ある電子データにおける最も古いバージョン（これを「ｖｅｒ．１．０」とする）を既に購入済みのユーザが、最も新しいバージョン（これを「ｖｅｒ．３．０」とする）を購入する場合は、販売者は３００円の料金を設定する。また、前記電子データのうち、比較的新しいバージョン（これを「ｖｅｒ．２．０」とする）を既に購入済みのユーザが「ｖｅｒ．３．０」を購入する場合は、販売者は１００円の料金を設定する。
【０００４】
このような料金体系を設定することで販売者はユーザに頻繁なバージョンアップを促すことができ、さらには一度獲得したユーザの関心を引き続けることができる。尚、このように、バージョンアップの度合いに応じて料金を異なるようにする技術は、例えば非特許文献１に例示されている。また、電子データを自動更新する技術は、非特許文献２に例示されている。
【０００５】
ところで、上記のような料金体系に沿って電子データを販売する際、販売者は、ユーザがどのバージョンの電子データを購入済みであるかを確認する必要がある。このバージョンの確認方法について次に述べる。
【０００６】
まず、ユーザがあらかじめ特定の販売者と電子データの更新等に関して継続的な契約（保守契約）を終結していたり、あるいはユーザが当該電子データを購入する際は毎回同一の代理店を通る場合を考える。この場合、一般に販売者はユーザの連絡先や勤め先をユーザが購入したバージョンとともに登録・管理するため、ユーザがどのバージョンを購入済みであるかを確認することができる。
【０００７】
次に、ユーザがオンラインで電子データのバージョンアップを行う場合を考える。この場合、電子データに電子的に記録されているシリアル番号、あるいは電子データを格納するＣＲ−ＲＯＭ等のメディアに記録された、あるいはメディアに同梱されたシリアル番号をオンラインで送信してもらうことで販売者は当該シリアル番号からユーザが既に購入済みのバージョンを確認することができる。
【０００８】
以上のように、従来は更新後の電子データを販売する際、電子データを保有するユーザ、あるいは電子データ本体をシリアル番号で一意に識別していた。尚、電子データに記録しているシリアル番号をサーバへ通知することでバージョンアップ課金を行う技術は、非特許文献３に例示されている。
【０００９】
しかし、ユーザにシリアル番号で電子データのバージョンを管理させる場合、当該シリアル番号を他人によって盗み見され流用されるなどの危険性が伴う。また、販売者がシリアル番号によってユーザを管理する場合、購入の際の匿名性が失われ、プライバシ上も好ましいとは言い難い。さらに販売者にとっても、ユーザが意図的あるいは意図せずに他人へ当該シリアル番号を漏らすことで、他者が不当に安価に電子データを購入する可能性がある。
【００１０】
【非特許文献１】「Shade onlin：製品：Shade 7シリーズバージョンアップ、グレードアップ早見表」、［online］、［平成１６年４月１６日検索］、インターネット＜URL : http://shade.e-frontier.co.jp/7/vulist.html＞
【非特許文献２】『ウイルス対策トータルソリューション「McAfee」／住商エレクトロニクス株式会社』、［online］、［平成１６年４月１６日検索］、インターネット＜URL : http://sc-comtex.sse.co.jp/products/mcafee/sales/asap_dousa.html＞
【非特許文献３】「ＢＨＡオンラインショップ」、［online］、［平成１６年４月１６日検索］、インターネット＜URL : http://shop.bha.co.jp/faq.html#q25＞
【発明の開示】
【発明が解決しようとする課題】
【００１１】
解決しようとする問題点は、従来の技術では、電子データのバージョンをシリアル番号や登録番号で管理しており、電子データの更新に対する課金処理を低コストで実施できない点と、ユーザが故意に自らが保有するバージョン情報を詐称し、安い料全体系で電子データの更新を行う不正を防止することができない点、および、他人にシリアル番号を盗み見され流用されることを回避出来ない点、さらに、ユーザがシリアル番号で管理されるので、匿名で電子データを購入することができない点である。
【００１２】
本発明の目的は、上記課題を解決し、ネットワークを介しての電子データのバージョンアップを、安全かつ効率的に行うことを可能とすることである。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明では、電子データから、このバージョンのみを一意に特定する識別子（ハッシュ値）をクライアントマシンで生成し、サーバマシンが当該識別子を検証することで課金処理を行う。このことにより、ユーザの匿名性を認め、かつシリアル番号の管理を必要としない課金処理を、低負荷、低コストで提供することができる。
【発明の効果】
【００１４】
本発明によれば、電子データのバージョンをシリアル番号や登録番号で管理する必要がないため、バージョンアップした電子データを提供する側の装置（サーバマシン）は低コストで電子データの更新に対する課金処理を実施できる。このとき、サーバマシンを保有する販売者は、ユーザが故意に自らが保有するバージョン情報を詐称し、安い料全体系で電子データの更新を行う不正を防止することができる。また、そもそも電子データを一意に識別するシリアル番号が不要であり、他人に当該シリアル番号を盗み見され流用されることがない。さらに、ネットワーク上でハッシュ値を盗聴される危険性に対してはハッシュ値にサーバマシンで管理する任意の文字列Ｒを含めることで、サーバマシン側で検出可能である。
【００１５】
以上に加え、ユーザはシリアル番号で管理されることがないため匿名で電子データを購入することができる。また、ハッシュ演算は高速に実行することができるため、クライアントマシンに大きな負荷をかけることがない。
【発明を実施するための最良の形態】
【００１６】
以下、図を用いて本発明を実施するための最良の形態例を説明する。
【実施例】
【００１７】
図１は、本発明に係わる電子データ提供システムの構成例を示すブロック図であり、図２は、図１におけるクライアント装置とサーバ装置のハードウェア構成例を示すブロック図、図３は、図１におけるサーバ装置で管理する第１のテーブル構成例を示す説明図、図４は、図１におけるサーバ装置で管理する第２のテーブル構成例を示す説明図、図５は、本発明に係わる電子データ提供方法の処理手順例を示すフローチャート、図６は、図１における電子データ提供システムで送受信されるデータの第１の構成例を示す説明図、図７は、図１における電子データ提供システムで送受信されるデータの第２の構成例を示す説明図、図８は、本発明に係わる電子データ提供システムの他の構成例および動作例を示すシーケンス図であり、図９は、図１におけるクライアント装置の第１の表示画面例を示す説明図、図１０は、図１におけるクライアント装置の第２の表示画面例を示す説明図、図１１は、図１におけるクライアント装置の第３の表示画面例を示す説明図である。
【００１８】
図２において、２０１はＣＲＴ（Cathode Ray Tube）やＬＣＤ(Liquid Crystal Display)等からなる表示装置、２０２はキーボードやマウス等からなる入力装置、２０３はＨＤＤ（Hard Disk Drive）等からなる外部記憶装置、２０４はＣＰＵ（Central Processing Unit）２０４ａや主メモリ２０４ｂおよび入出力インタフェース２０４ｃ等を具備してコンピュータ処理を行なう情報処理装置、２０５は本発明に係わるプログラムやデータを記録したＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）もしくはＤＶＤ（Digital Video Disc/Digital Versatile Disc）等からなる光ディスク、２０６は光ディスク２０５に記録されたプログラムおよびデータを読み出すための駆動装置、２０７はＬＡＮ（Local Area Network）カードやモデム等からなる通信装置である。
【００１９】
光ディスク２０５に格納されたプログラムおよびデータを情報処理装置２０４により駆動装置２０６を介して外部記憶装置２０３内にインストールした後、外部記憶装置２０３から主メモリ２０４ｂに読み込みＣＰＵ２０４ａで処理することにより、情報処理装置２０４内に図１に示すクライアント装置１およびサーバ装置２の各機能が構成される。
【００２０】
図１において、１はあるバージョンの電子データをあらかじめ搭載するクライアント装置、２は電子データを管理して当該電子データを更新する度に更新後の電子データをネットワーク１０を介してオンラインで販売するサーバ装置である。
【００２１】
クライアント装置１は、ファイルシステム上にある電子データを検索する電子データ検索機能１１と、当該電子データのハッシュ値を計算するハッシュ値計算機能１２と、当該ハッシュ値をサーバ装置２ヘ送信する送信機能１３とを有する。尚、ハッシュ値を計算するアルゴリズムはＭＤ５（Message Digest 5）やＳＨＡ１（Secure Hash Algorithm 1）などの汎用の衝突困難かつ一方向性のハッシュ関数を用いることができる。
【００２２】
サーバ装置２は、電子データを各バージョン毎のハッシュ値と関連付けて管理するテーブル２１０を記憶装置に格納し、このテーブル２１０から、目的のハッシュ値を検索し、これによって電子データのバージョンを確認するハッシュ値確認機能２１と、クライアント装置１から要求のあったバージョンの電子データを送信する送信機能２２と、記憶装置に格納した料金テーブル２３０を検索して、課金額を決定する課金機能２３とを有する。
【００２３】
サーバ装置２が管理するテーブル２１０は、図３に示すように、電子データの各バージョンと、当該電子データの各バージョンに対応したハシュ値を関連付けており、電子データの各バージョンを表すコラム３１と、当該電子データの各バージョンに対応したハッシュ値を表すコラム３２とから構成される。
【００２４】
サーバ装置２が管理する料金テーブル２３０は、図４に示すように、電子データのバージョンアップに対応する料金例であり、当該料金テーブル２３０は、ハッシュ値確認機能２１によって確認したバージョンを表すコラム４１と、クライアント装置１が要求するバージョンを表すコラム４２と、電子データのバージョンアップに対応する料金を表すコラム４３とから構成される。
【００２５】
このような構成により、図１に示す電子データ提供システムは、ネットワーク１０を介して通信装置としてのクライアント装置１とサーバ装置２との間での電子データのバージョンアップ処理を行う。
【００２６】
この際、バージョンアップを要求する要求側通信装置としてのクライアント装置１は、電子データ検索機能１１により、予め自装置の記憶装置に格納済みの電子データを読み出し、この電子データ検索機能１１で読み出した電子データに対して、ハッシュ値計算機能１２により、ＭＤ５やＳＨＡ１等、予め定められた衝突困難かつ一方向性の関数Ｈを用いた演算を行いハッシュ値を計算し、さらに、このハッシュ値計算機能１２で算出したハッシュ値と、このハッシュ値の算出に用いた電子データのバージョンを特定する旧バージョン識別情報および要求するバージョンを特定する新バージョン識別情報を、送信機能１３により、バージョンアップ要求先の提供側通信装置としてのサーバ装置２に送信する。
【００２７】
また、提供側通信装置としてのサーバ装置２は、予め関数Ｈを用いた各バージョン別の電子データに対する演算で得た各演算値（ハッシュ値）を、各バージョン識別情報に対応付けて組でテーブル２１０において記憶し、要求側通信装置としてのクライアント装置１から送信されてきた演算値と旧バージョン識別情報および新バージョン識別情報を受信すると、ハッシュ値確認機能２１により、受信した演算値と旧バージョン識別情報との組が、上記演算値記憶手段で記憶されているか否かを判別し、受信した演算値と旧バージョン識別情報との組がテーブル２１０において記憶されていれば、送信機能２２により、クライアント装置１から送信されてきた新バージョン識別情報に対応する電子データを自装置の記憶手段から読み出してクライアント装置１に送信し、さらに、課金機能２３により、予め各バージョンの識別情報別にバージョンアップ料金を対応付けた料金テーブル２３０を参照して、クライアント装置１に送信した新バージョン識別情報に対応する電子データのバージョンアップ料金を決定し、当該クライアント装置１の操作者に課金する。
【００２８】
このようなサーバ装置２の具体的な処理動作例を図５を用いて説明する。まず、サーバ装置２は、クライアント装置１からの要求を受信する（ステップＳ５１）。この要求には、クレジットカードの番号や有効期限などの、決済に必要な情報が含まれる。
【００２９】
次に、ステップＳ５１で取得した、クレジットカードの番号や有効期限などの、決済に必要な情報の有効性を検証する（ステップＳ５２）。これに合格するとステップＳ５１で取得したハッシュ値を検証し（ステップＳ５３）、正当と判別すれば、クライアント装置１ヘ要求されたバージョンの電子データを送信し（ステップＳ５４）、料金テーブル２３０を参照して課金額を決定し（ステップＳ５５）、課金処理や決済機関への決済依頼を行う（ステップＳ５６）。
【００３０】
図６においては、クライアント装置１がサーバ装置２に送信するデータの構成例を示しており、６１は、ライアント装置１に既に搭載されている電子データであり、ハッシュ関数６２による演算の対象となる。７１は電子データ６１のハッシュ値である。７２はクライアント装置１が既に保有する電子データのバージョン番号（旧バージョン識別情報）である。７３はクライアント装置１がサーバ装置２に要求する当該電子データのバージョン番号（新バージョン識別情報）である。
【００３１】
ハッシュ値７１は、「１６バイト」から「２０バイト」程度の大きさであり、また、旧バージョン識別情報７２、新バージョン識別情報７３は共にせいぜい「２バイト」程度の大きさである。従って、これらのデータはＣＧＩ（Common Gateway Interface）によってサーバ装置２ヘ送信することも可能である。
【００３２】
以上の例では、クライアント装置１が保持する電子データ自体を用いて、そのバージョンを確認しているので、電子データのバージョンを不正に申告することを防止することができる。次に、図７を用いて、クライアント装置１自体のなりすましによる不正な電子データのバージョンアップ要求を防止するための技術を説明する。
【００３３】
図７においては、ハッシュ演算の対象となるデータの別な構成例を示しており、８１はクライアント装置１における電子データ検索機能１１によって探し当てられた電子データである。８２はサーバ装置２においてバージョンアップ要求を受けるたびに任意に生成されクライアント装置１に送信される文字列Ｒである。８３はハッシュ関数である。
【００３４】
９１〜９３はクライアント装置１からサーバ装置２に送信されるデータの構成例を示しており、９１は電子データ８１と文字列Ｒ８２を演算したデータに対するハッシュ値である。電子データ８１と文字列Ｒ８２の演算にはビット結合や排他的論理和などの演算を使用することができる。
【００３５】
９２はクライアント装置１既に保有する電子データのバージョン番号（旧バージョン識別情報）である。９３はクライアント装置１がサーバ装置２に要求する当該電子データのバージョン番号（新バージョン識別情報）である。これらのデータもＣＧＩによってサーバ装置２ヘ送信することが可能である。
【００３６】
このように、電子データ８１と文字列Ｒ８２を演算したデータに対するハッシュ値を求めることで、なりすましを防止することができる。この際、図５に示したステップＳ５３での処理（ハッシュ値の検証）は以下のようになる。
【００３７】
この例では、図５のステップＳ５１においては、クライアント装置１からサーバ装置２へのハッシュ値は未だ送信されていない。まず、ステップＳ５３における処理として、サーバ装置２は、クライアント装置１に「要求を受けた際に任意に生成した文字列Ｒ」を提示する。
【００３８】
クライアント装置１は、旧バージョンＡの電子データと文字列Ｒに所定の演算（ビット結合や排他的論理和）を行い、その結果に対してハッシュ値Ｈを生成し、サーバ装置２に提示する。
【００３９】
サーバ装置２は、予め旧バージョンＡの電子データと文字列Ｒに所定の演算（ビット結合や排他的論理和）を行い、その結果に対してハッシュ値Ｈを生成し、そのハッシュ値Ｈを、旧バージョンＡの識別情報に対応付けてテーブルに登録しておき、このテーブル内のハッシュ値Ｈと、クライアント装置１から提示されたハッシュ値Ｈとの一致・不一致を確認する。一致することで、サーバ装置２は、クライアント装置１が確かにバージョンＡの電子データを保持していることを確認することができる。
【００４０】
以上の例では、サーバ装置２において、電子データの提供と、課金処理を行う構成としているが、この場合、販売者のサーバ装置２ごとに、各機能（２１〜２３，２１０，２３０）を個別に作りこむ必要があり、早期のサービス提供は難しい。これに対し、図８に示す構成と、課金代行者の装置（１００）が、サーバ装置２の機能を共通的に提供することで、本システムを早期に実現できる。
【００４１】
図８においては、このように課金処理を課金代行者が行う場合のクライアント装置１ａ、サーバ装置２ａ、課金代行装置１０００の３者間におけるサービスのシーケンスの例を示している。
【００４２】
まず、クライアント装置１ａは、あらかじめ課金代行装置１００から図１に示した機能（１１〜１３）をコンピュータに実行させるためのプログラム（これを購入用アプリケーションと呼ぶことにする）を課金代行装置１００に要求する（ステップＳ１０１）。これを受けて、課金代行装置１００は購入用アプリケーションをクライアント装置１ａに送信する（ステップＳ１０２）。
【００４３】
ユーザが電子データのバージョンアップを行う際は、販売者（サーバ装置２ａ）のＷｅｂサイトヘアクセスする（ステップＳ１０３）。このとき、サーバ装置２ａは課金代行装置１００のＵＲＬ（Uniform Resource Locator）へのリダイレクトを行う（ステップＳ１０４）。
【００４４】
課金代行装置１００は、図５におけるステップＳ５２での処理（決済情報の検証）およびステップＳ５３での処理（ハッシュ値の検証）を代行し（ステップＳ１０５）、さらに、これに成功すると図５におけるステップＳ５４〜Ｓ５６の処理（電子データの送信、課金額の決定、課金処理）を代行する（ステップＳ１０６）。
【００４５】
このようにして、課金代行装置１００が図５における各処理を行うことで、サーバ装置２ａを保持する販売者としては、マシン負荷を低減でき、また、コストを低減でき、さらに、早期にサービスを実現できるといった利益がある。また、課金代行装置１００を保持する課金代行者としては、販売者から課金代行手数料を得ることができるなどの利益がある。
【００４６】
図９〜図１１においては、課金代行者を仮定した場合に、ユーザが電子データのバージョンアップを行う際の、ディスプレイ画面を表した例を示しており、図９は、課金代行装置１００が提供するＷｅｂサイト画面１１０の例である。ユーザは当該Ｗｅｂサイトヘ、図８におけるステップＳ１０３での「ＵＲＬリダイレクト」処理によりアクセスする。
【００４７】
当該Ｗｅｂサイト画面１１０は、電子データのバージョンアップの料金体系欄１１１およびユーザが自身の端末（クライアント装置１ａ）に導入すべきプログラム（購入用アプリケーション）をダウンロードするためのダウンロードボタン１１２などをＧＵＩ（グラフィカル・ユーザ・インタフェース）で提供する。
【００４８】
図１０は、購入用アプリケーションの表示画面１２０の例であり、当該購入用アプリケーションの表示画面１２０は、バージョンアップの対象となる電子データの格納場所を指定するための人力欄１２１、当該電子データを検索するための検索ボタン１２２、ハッシュ演算を実行するための実行ボタン１２３、プリペイドカードの番号やクレジットカードの番号など、決済に必要な情報を人力する人力欄１２４、当該ハッシュ値を課金代行マシンに送信するための送信ボタン１２５などをＧＵＩで提供する。
【００４９】
図１１は、課金代行装置１００が上記ハッシュ値を検証し、これに合格した場合に、ユーザヘ提供するＷｅｂサイト画面１３０の例である。当該Ｗｅｂサイト画面１３０は電子データをダウンロードするためのダウンロードボタン１３１を提供する。
【００５０】
以上、図１〜図１１を用いて説明したように、本例の電子データ提供システムと方法では、電子データを管理し、当該電子データを更新する度に更新後の電子データを販売するサーバ装置２と、電子データのうち、あるバージョンの電子データをあらかじめ搭載するクライアント装置１とをネットワーク１０で接続し、更新後のバージョンの電子データをクライアント装置１がサーバ装置２に要求する際に、サーバ装置２がクライアント装置１に対して課金を行うために、クライアント装置１は、あらかじめ搭載するバージョンの電子データを自身のファイルシステム上から検索し、検索の結果得られた電子データに対し、衝突困難かつ一方向性の関数Ｈを用いて演算し、この演算によって得られた演算値（ハッシュ値）をサーバ装置２に送信し、サーバ装置２は、演算値をクライアント装置１から受信すると、各バージョンの電子データとこれに対応する演算値を関連付けて管理するテーブル（２１０）から当該演算値を検索し、当該演算値に対応するバージョン、クライアントマシンが要求するバージョン、および料金の３つの情報を関連付けて管理するテーブル（２３０）を参照して、相当する課金額を決定し、要求を受けたバージョンの電子データをクライアント装置１に送信し、そして課金処理を実行する。
【００５１】
また、電子データと文字列Ｒとの所定の演算結果に対して、衝突困難かつ一方向性の関数Ｈを用いた演算Ｈを行う。さらに、課金代行装置１００を設け、この課金代行装置１００において、サーバ装置２の各処理を実行する構成とする。
【００５２】
これにより、電子データのバージョンをシリアル番号や登録番号で管理する必要がなくなり、サーバ装置２は低コストで電子データの更新に対する課金処理を実施できる。このとき、サーバ装置２を保有する販売者は、クライアント装置１のユーザが故意に自らが保有するバージョン情報を詐称し、安い料全体系で電子データの更新を行う不正を防止することができる。また、そもそも電子データを一意に識別するシリアル番号が不要のため、他人に当該シリアル番号を盗み見され流用されることがない。さらに、ネットワーク上でハッシュ値を盗聴される危険性に対しては、ハッシュ値に、サーバ装置２で任意に生成した文字列Ｒを含めることで、サーバ装置２側で検出可能である。
【００５３】
また、ユーザはシリアル番号で管理されることがないため匿名で電子データを購入することができる。また、ハッシュ演算は高速に実行することができるため、クライアント装置１に大きな負荷をかけることがない。
【００５４】
尚、本発明は、図１〜図１１を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、図１〜図１１の例では、サーバ装置２において、予めハッシュ値とバージョン識別情報とを対応付けてテーブルに登録しておき、クライアント装置１からの要求情報に含まれるハッシュ値と旧バージョン識別情報との組をテーブル検索することで、その正当性を確認しているが、このようなテーブルを設けることなく、クライアント装置１からの要求を受ける度に、サーバ装置２側で、通知された旧バージョン番号の電子データを自装置の記憶装置から読み出し（文字列Ｒとのビット結合もしくは排他的論理和等の演算を行い）、ハッシュ値を算出して、照合することでも良い。
【００５５】
また、本例でのコンピュータ構成に関しても図２に示した例に限るものではなく、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、ＦＤ（Flexible Disk）等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【図面の簡単な説明】
【００５６】
【図１】本発明に係わる電子データ提供システムの構成例を示すブロック図である。
【図２】図１におけるクライアント装置とサーバ装置のハードウェア構成例を示すブロック図である。
【図３】図１におけるサーバ装置で管理する第１のテーブル構成例を示す説明図である。
【図４】図１におけるサーバ装置で管理する第２のテーブル構成例を示す説明図である。
【図５】本発明に係わる電子データ提供方法の処理手順例を示すフローチャートである。
【図６】図１における電子データ提供システムで送受信されるデータの第１の構成例を示す説明図である。
【図７】図１における電子データ提供システムで送受信されるデータの第２の構成例を示す説明図である。
【図８】本発明に係わる電子データ提供システムの他の構成例および動作例を示すシーケンス図である。
【図９】図１におけるクライアント装置の第１の表示画面例を示す説明図である。
【図１０】図１におけるクライアント装置の第２の表示画面例を示す説明図である。
【図１１】図１におけるクライアント装置の第３の表示画面例を示す説明図である。
【符号の説明】
【００５７】
１，１ａ：クライアント装置、２，２ａ：サーバ装置、１０：ネットワーク、１１：電子データ検索機能、１２：ハッシュ値計算機能、１３：送信機能、２１：ハッシュ値確認機能、２２：送信機能、２３：課金機能、３１：コラム（電子データのバージョン）、３２：コラム（ハッシュ値）、４１：コラム（更新前のバージョン番号）、４２：コラム（更新後のバージョン番号）、４３：コラム（価格、更新料）、６１：電子データ（更新前、既に保有している電子データ）、６２：ハッシュ関数、７１：ハッシュ値、７２：旧バージョン識別情報（既に保有している電子データのバージョン）、７３：新バージョン識別情報（要求するバージョン）、８１：電子データ（更新前、既に保有している電子データ）、８２：文字列Ｒ、８３：ハッシュ関数、９１：ハッシュ値、９２：旧バージョン識別情報（既に保有している電子データのバージョン）、９３：新バージョン識別情報（要求するバージョン）、１００：課金代行装置、１１０：Ｗｅｂサイト画面、１１１：料金体系欄、１１２：ダウンロードボタン、１２０：購入用アプリケーションの表示画面、１２１：人力欄、１２２：検索ボタン、１２３：実行ボタン、１２４：人力欄、１２５：送信ボタン、１３０：Ｗｅｂサイト画面、１３１：ダウンロードボタン、２０１：表示装置、２０２：入力装置、２０３：外部記憶装置、２０４：情報処理装置、２０４ａ：ＣＰＵ、２０４ｂ：主メモリ、２０４ｃ：入出力インタフェース、２０５：光ディスク、２０６：駆動装置、２０７：通信装置、２１０：テーブル、２３０：料金テーブル。
【図１】
2005309759.tif 000003
【図２】
2005309759.tif 000004
【図３】
2005309759.tif 000005
【図４】
2005309759.tif 000006
【図５】
2005309759.tif 000007
【図６】
2005309759.tif 000008
【図７】
2005309759.tif 000009
【図８】
2005309759.tif 000010
【図９】
2005309759.tif 000011
【図１０】
2005309759.tif 000012
【図１１】
2005309759.tif 000013