(57)【特許請求の範囲】
【請求項１】
データ提供装置が、
端末装置から所定の識別情報を含むデータ取得要求を受信すると、登録データと識別情報とを対応付けて記憶する第１の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する登録データを取得するとともに、暗号処理に用いられる鍵の所在を示す所在情報と識別情報とが対応付けられた管理情報を記憶する第２の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する所在情報を取得し、
取得した前記登録データと、取得した前記所在情報で示される情報処理装置に記憶された前記鍵を前記端末装置に取得させるとともに、取得させた前記鍵を用いて取得した前記登録データを復号させるプログラムと、を前記端末装置に送信する、
ことを特徴とするデータ提供方法。
【請求項２】
前記データ提供装置が、
前記端末装置から前記識別情報を含むデータ登録要求を受信すると、前記第２の記憶部を参照して、前記データ登録要求に含まれる前記識別情報に対応する前記所在情報を取得し、
取得した前記所在情報で示される情報処理装置に記憶された前記鍵を前記端末装置に取得させる鍵取得プログラムを前記端末装置に送信し、
少なくとも一部が前記鍵により暗号化された登録データを前記端末装置から受信すると、前記登録データを前記データ登録要求に含まれる識別情報に対応付けて前記第１の記憶部に格納する、
ことを特徴とする請求項１記載のデータ提供方法。
【請求項３】
前記管理情報には、識別情報に対応付けて前記端末装置が送信するデータのうち何れのデータ項目を暗号化対象とするかを示す情報が設定されており、
前記データ提供装置が、
前記データ登録要求を受信した際に、前記第２の記憶部に記憶された前記管理情報を参照して、前記端末装置が暗号化すべきデータ項目を前記鍵により暗号化させる暗号化プログラムを生成し、前記鍵取得プログラムとともに前記暗号化プログラムを前記端末装置に送信する、
ことを特徴とする請求項２記載のデータ提供方法。
【請求項４】
前記鍵は、前記端末装置が接続するネットワーク内の情報処理装置に記憶され、
前記ネットワークは、前記ネットワーク外からのアクセスが制限される、
ことを特徴とする請求項１乃至３の何れか１項に記載のデータ提供方法。
【請求項５】
端末装置から所定の識別情報を含むデータ取得要求を受信する受信部と、
登録データと識別情報とを対応付けて記憶する第１の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する登録データを取得するとともに、暗号処理に用いられる鍵の所在を示す所在情報と識別情報とが対応付けられた管理情報を記憶する第２の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する所在情報を取得する処理部と、
取得した前記登録データと、取得した前記所在情報で示される情報処理装置に記憶された前記鍵を前記端末装置に取得させるとともに、取得させた前記鍵を用いて取得した前記登録データを復号させるプログラムと、を前記端末装置に送信する送信部と、
を有することを特徴とするデータ提供装置。
【請求項６】
端末装置から所定の識別情報を含むデータ取得要求を受信すると、登録データと識別情報とを対応付けて記憶する第１の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する登録データを取得するとともに、暗号処理に用いられる鍵の所在を示す所在情報と識別情報とが対応付けられた管理情報を記憶する第２の記憶部を参照して、前記データ取得要求に含まれる前記識別情報に対応する所在情報を取得し、
取得した前記登録データと、取得した前記所在情報で示される情報処理装置に記憶された前記鍵を前記端末装置に取得させるとともに、取得させた前記鍵を用いて取得した前記登録データを復号させるプログラムと、を前記端末装置に送信する、
処理をコンピュータに実行させることを特徴とするデータ提供プログラム。
【請求項７】
データ提供装置が、
端末装置からデータ取得要求を受信すると、前記データ取得要求に対応する、暗号化されたデータと、該データの暗号処理に用いられる鍵の所在を示す所在情報とを取得し、
取得した前記データと、前記端末装置が接続されるネットワーク内の情報処理装置に記憶された、取得した前記所在情報に基づき特定される鍵を前記端末装置に取得させるとともに、取得させた前記鍵を用いて取得した前記データを復号させるプログラムと、を前記端末装置に送信する、ことを実行し、
前記ネットワークは、前記ネットワーク外からのアクセスが制限される、
ことを特徴とするデータ提供方法。
【請求項８】
端末装置からデータ取得要求を受信すると、前記データ取得要求に対応する、暗号化されたデータと、該データの暗号処理に用いられる鍵の所在を示す所在情報とを取得する処理部と、
取得した前記データと、前記端末装置が接続されるネットワークであって前記ネットワーク外からのアクセスが制限される前記ネットワーク内の情報処理装置に記憶された、取得した前記所在情報に基づき特定される鍵を前記端末装置に取得させるとともに、取得させた前記鍵を用いて取得した前記データを復号させるプログラムと、を前記端末装置に送信する送信部と、
を有するデータ提供装置。
【請求項９】
端末装置からデータ取得要求を受信すると、前記データ取得要求に対応する、暗号化されたデータと、該データの暗号処理に用いられる鍵の所在を示す所在情報とを取得し、
取得した前記データと、前記端末装置が接続されるネットワークであって前記ネットワーク外からのアクセスが制限される前記ネットワーク内の情報処理装置に記憶された、取得した前記所在情報に基づき特定される鍵を前記端末装置に取得させるとともに、取得させた前記鍵を用いて取得した前記データを復号させるプログラムと、を前記端末装置に送信する、
処理をコンピュータに実行させるデータ提供プログラム。
【請求項１０】
データ提供装置と、
端末装置と、
前記端末装置が接続し、かつ、ネットワーク外からのアクセスが制限されるネットワークに接続された、情報処理装置と、を備えるデータ提供システムであって、
前記データ提供装置が、
暗号化されたデータを記憶する第１記憶手段と、
端末装置からデータ取得要求を受信すると、前記データ取得要求に対応する暗号化されたデータと、該データの暗号処理に用いられる鍵の所在を示す所在情報とを前記端末装置に送信する送信手段と、を備え、
前記情報処理装置が、
前記鍵を記憶する第２記憶手段を備え、
前記端末装置が、
送信された前記所在情報に基づき特定される鍵を前記情報処理装置から取得する取得手段と、
取得した前記鍵を用いて取得した前記暗号化されたデータを復号させる復号処理手段と、を備える
ことを特徴とするデータ提供システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介してデータを提供するデータ提供方法、データ提供装置、データ提供プログラムおよびデータ提供システムに関する。
【背景技術】
【０００２】
近年、ユーザが行う種々の業務をコンピュータシステムによって支援する技術が利用されている。この点、サービス事業者が運用するコンピュータシステムが提供するアプリケーションによって、ユーザの業務支援を行うサービス形態がある。そのようなサービス形態として、例えばＳａａＳ（Software as a Service）が知られている。ユーザは、ＳａａＳを利用することで、自社内に新たなコンピュータを導入することなく業務システムを利用できる。
【０００３】
ここで、上記サービス形態によって業務を行う場合、ユーザデータはサービス事業者のコンピュータで管理される。このため、ユーザデータが機密情報の場合、セキュリティ上の問題が生ずる。対策として、例えば機密情報を暗号化し、暗号処理のための鍵と共にサービス事業者のコンピュータで管理することが考えられる（例えば、特許文献１参照）。しかし、この方法でもサービス事業者によりデータを不正に閲覧されるリスクが残る。
【０００４】
そこで、サービス事業者に管理させるユーザデータのうち、秘匿化の必要な情報を他の文字や記号の列に変換する中継装置を、ユーザ端末とサービス事業者のコンピュータシステムとの間に設ける方法が考えられている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００７−５３７５０９号公報
【特許文献２】特開２００８−１７７８２１号公報
【特許文献３】特開２００７−１３３６７０号公報
【特許文献４】特開平０９−０９７２１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来の方法では上記コンピュータシステムを利用するに当たって、ユーザ側で新たに中継装置を導入する必要がある。このため、中継装置の導入時の作業負担や運用管理の負担が問題となる。特に、上記サービス形態においてはユーザ側でのシステム改変を伴わずにサービス提供することが望まれる。
【０００７】
本発明はこのような点に鑑みてなされたものであり、データの安全性の向上を容易に実現できるようにしたデータ提供方法、データ提供装置、データ提供プログラムおよびデータ提供システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、データ提供方法が提供される。このデータ提供方法では、データ提供装置が、端末装置から所定の識別情報を含むデータ取得要求を受信すると、登録データと識別情報とを対応付けて記憶する第１の記憶部を参照して、データ取得要求に含まれる識別情報に対応する登録データを取得するとともに、暗号処理に用いられる鍵の所在を示す所在情報と識別情報とが対応付けられた管理情報を記憶する第２の記憶部を参照して、データ取得要求に含まれる識別情報に対応する所在情報を取得し、取得した登録データと、取得した所在情報で示される情報処理装置に記憶された鍵を端末装置に取得させるとともに、取得させた鍵を用いて取得した登録データを復号させるプログラムと、を端末装置に送信する。
【０００９】
また、上記課題を解決するために上記データ提供方法と同様の処理を行う機能を有するデータ提供装置が提供される。
また、上記課題を解決するために上記データ提供方法と同様の処理をコンピュータに実行させるデータ提供プログラムが提供される。
また、上記課題を解決するために、データ提供装置が、端末装置からデータ取得要求を受信すると、データ取得要求に対応する、暗号化されたデータと、該データの暗号処理に用いられる鍵の所在を示す所在情報とを取得し、取得したデータと、端末装置が接続されるネットワーク内の情報処理装置に記憶された、取得した所在情報に基づき特定される鍵を端末装置に取得させるとともに、取得させた鍵を用いて取得したデータを復号させるプログラムと、を端末装置に送信する、ことを実行し、ネットワークは、該ネットワーク外からのアクセスが制限される、ことを特徴とするデータ提供方法が提供される。
また、上記課題を解決するために、端末装置からデータ取得要求を受信すると、データ取得要求に対応する、暗号化されたデータと、該データの暗号処理に用いられる鍵の所在を示す所在情報とを取得する処理部と、取得したデータと、端末装置が接続されるネットワークであって該ネットワーク外からのアクセスが制限されるネットワーク内の情報処理装置に記憶された、取得した所在情報に基づき特定される鍵を端末装置に取得させるとともに、取得させた鍵を用いて取得したデータを復号させるプログラムと、を端末装置に送信する送信部と、を有するデータ提供装置が提供される。
また、上記課題を解決するために、端末装置からデータ取得要求を受信すると、データ取得要求に対応する、暗号化されたデータと、該データの暗号処理に用いられる鍵の所在を示す所在情報とを取得し、取得したデータと、端末装置が接続されるネットワークであって該ネットワーク外からのアクセスが制限されるネットワーク内の情報処理装置に記憶された、取得した所在情報に基づき特定される鍵を端末装置に取得させるとともに、取得させた鍵を用いて取得したデータを復号させるプログラムと、を端末装置に送信する、処理をコンピュータに実行させるデータ提供プログラムが提供される。
また、上記課題を解決するために、データ提供装置と、端末装置と、端末装置が接続し、かつ、ネットワーク外からのアクセスが制限されるネットワークに接続された、情報処理装置と、を備えるデータ提供システムであって、データ提供装置が、暗号化されたデータを記憶する第１記憶手段と、端末装置からデータ取得要求を受信すると、データ取得要求に対応する暗号化されたデータと、該データの暗号処理に用いられる鍵の所在を示す所在情報とを端末装置に送信する送信手段と、を備え、情報処理装置が、鍵を記憶する第２記憶手段を備え、端末装置が、送信された所在情報に基づき特定される鍵を情報処理装置から取得する取得手段と、取得した鍵を用いて取得した暗号化されたデータを復号させる復号処理手段と、を備えることを特徴とするデータ提供システムが提供される。
【発明の効果】
【００１０】
データの安全性の向上を容易に実現できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係るデータ提供装置を示す図である。
【図２】第２の実施の形態に係る情報処理システムを示す図である。
【図３】第２の実施の形態のデータ提供サーバのハードウェア構成を示す図である。
【図４】第２の実施の形態のデータ提供サーバの機能構成を示す図である。
【図５】第２の実施の形態の端末装置の機能構成を示す図である。
【図６】第２の実施の形態の鍵管理サーバの機能構成を示す図である。
【図７】第２の実施の形態のユーザ管理テーブルのデータ構造例を示す図である。
【図８】第２の実施の形態のグループ管理テーブルのデータ構造例を示す図である。
【図９】第２の実施の形態のデータ管理テーブルのデータ構造例を示す図である。
【図１０】第２の実施の形態のスケジュールデータの内容を例示する図である。
【図１１】システムの利用開始の際の画面を例示する図である。
【図１２】暗号処理の設定画面を例示する図である。
【図１３】予定登録画面を例示する図である。
【図１４】予定登録画面のＨＴＭＬ文書を例示する図である。
【図１５】暗号処理を実行するための関数を例示する図である。
【図１６】予定閲覧画面を例示する図である。
【図１７】予定閲覧画面のＨＴＭＬ文書の第１の例を示す図である。
【図１８】予定閲覧画面のＨＴＭＬ文書の第２の例を示す図である。
【図１９】メニュー画面の表示処理を示すフローチャートである。
【図２０】予定登録処理を示すフローチャートである。
【図２１】予定登録画面応答処理を示すフローチャートである。
【図２２】鍵取得処理を示すフローチャートである。
【図２３】暗号化処理を示すフローチャートである。
【図２４】予定閲覧処理を示すフローチャートである。
【図２５】予定閲覧画面応答処理を示すフローチャートである。
【図２６】復号処理を示すフローチャートである。
【図２７】第２の実施の形態のデータ閲覧方法の具体例を示す図である。
【図２８】第３の実施の形態に係る情報処理システムを示す図である。
【図２９】第３の実施の形態の端末装置の機能構成を示す図である。
【図３０】第３の実施の形態のスケジュールデータの内容を例示する図である。
【図３１】第３の実施の形態のデータ閲覧方法の具体例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本実施の形態を図面を参照して詳細に説明する。
［第１の実施の形態］
図１は、第１の実施の形態に係るデータ提供装置を示す図である。データ提供装置１は、端末装置２で利用されるユーザデータを管理する。データ提供装置１は、端末装置２のリクエストに応じて、自装置で管理するユーザデータを端末装置２に提供する。データ提供装置１は、記憶部１ａ，１ｂ、受信部１ｃ、処理部１ｄおよび送信部１ｅを有する。
【００１３】
記憶部１ａは、登録データを所定の識別情報に対応付けて記憶する。登録データは、例えば、端末装置２を利用するユーザが扱うユーザデータである。
記憶部１ｂは、端末装置２が暗号処理するための鍵の所在情報を、所定の識別情報に対応付けて定義した管理情報を記憶する。端末装置２は、当該鍵によりデータ提供装置１に渡すデータの少なくとも一部を暗号処理する。端末装置２が暗号処理の対象とするデータは、例えば、端末装置２を利用するユーザが作成した文書や図表などのデータである。あるいは、当該データは、例えば文書や図表などのデータの所在を示すものでもよい。
【００１４】
また、所在情報は、情報処理装置３および情報処理装置３における鍵の格納場所を示す情報である。また、識別情報は、例えば端末装置２を利用するユーザを識別するための情報である。
【００１５】
受信部１ｃは、端末装置２から所定の識別情報を含むリクエストを受信する。リクエストの種類は、少なくとも次の２種類の何れかを含む。すなわち、リクエストはデータ提供装置１にデータを登録するためのデータ登録要求、またはデータ提供装置１から登録データを取得するためのデータ取得要求の何れかである。受信部１ｃは、受信したリクエストを処理部１ｄに出力する。
【００１６】
処理部１ｄおよび送信部１ｅは、リクエストの内容に応じて以下に示す処理を実行する。
（データ取得時）
（Ａ１）リクエストがデータ取得要求である場合、処理部１ｄは、記憶部１ａ，１ｂを参照して、データ取得要求に含まれる識別情報に対応する所在情報および登録データを取得する。そして、処理部１ｄは、端末装置２に所在情報で示される情報処理装置３から鍵を取得させる鍵取得プログラムを生成する。更に、処理部１ｄは、登録データと鍵取得プログラムとを送信部１ｅに出力する。
【００１７】
（Ａ２）送信部１ｅは、処理部１ｄから登録データと鍵取得プログラムとを取得すると、これらの情報を端末装置２に送信する。これらの情報を受信した端末装置２は、鍵取得プログラムを実行して、情報処理装置３から鍵を取得する。端末装置２は、取得した鍵により登録データを復号し、その内容をユーザに提供する。
【００１８】
（データ登録時）
（Ｂ１）リクエストがデータ登録要求である場合、処理部１ｄは、記憶部１ｂに記憶された管理情報を参照し、データ登録要求に含まれる識別情報に対応する所在情報を取得する。そして、処理部１ｄは、端末装置２に所在情報で示される情報処理装置３から鍵を取得させる鍵取得プログラムを生成する。更に、処理部１ｄはデータ登録用の情報（例えば、データを入力する入力画面の情報）と共に鍵取得プログラムを送信部１ｅに出力する。
【００１９】
（Ｂ２）送信部１ｅは、処理部１ｄからデータ登録用の情報と鍵取得プログラムとを取得すると、これらの情報を端末装置２に送信する。これらの情報を受信した端末装置２は、鍵取得プログラムを実行して、情報処理装置３から鍵を取得する。そして、端末装置２は、取得した鍵により、送信すべきデータの少なくとも一部を暗号化して生成した登録データをデータ提供装置１に送信する。処理部１ｄは、受信部１ｃを介して端末装置２から登録データを取得すると、登録データを識別情報に対応付けて記憶部１ａに格納する。
【００２０】
このようなデータ提供装置１によれば、端末装置２からデータ取得用が受信されると、記憶部１ａが参照されて、データ取得要求に含まれる識別情報に対応する登録データが取得される。また、記憶部１ｂが参照されて、データ取得要求に含まれる識別情報に対応する所在情報が取得される。更に、取得した登録データと、所在情報で示される情報処理装置３に記憶された鍵を端末装置２に取得させるとともに取得させた鍵を用いて取得した登録データを復号させるプログラムと、が端末装置２に送信される。
【００２１】
これにより、データの安全性の向上を容易に実現できる。具体的には、端末装置２は、データ提供装置１から受信した鍵取得プログラムを実行することで、情報処理装置３から暗号処理用の鍵を取得する。このため、当該機能を予め端末装置２に導入しておく必要がない。また、当該機能を有する装置を予めデータ提供装置１と端末装置２との間に導入しておく必要もない。よって、導入作業や運用管理の負担が軽減される。
【００２２】
また、鍵を記憶する情報処理装置３は、データ提供装置１とは別個に設けられる。すなわち、データ提供装置１は、鍵の所在を管理するのみなので、データ提供装置１単体では、登録データを復号することはできない。このため、データ提供装置１に渡すデータの安全性を向上できる。
【００２３】
なお、鍵を記憶する情報処理装置３を、データ提供装置１からは参照不可能であるが、端末装置２からは参照可能なネットワークに設けてもよい。これにより、データの安全性を一層向上できる。
【００２４】
以下の実施の形態では、Ｗｅｂシステムによってデータの登録や提供などの管理を行うことが可能な情報処理システムにデータ提供装置１を適用する場合を例に採り、更に詳細に説明する。
【００２５】
［第２の実施の形態］
図２は、第２の実施の形態に係る情報処理システムを示す図である。この情報処理システムは、ユーザ会社に業務サービスを提供するＷｅｂシステムである。業務のためのデータは、サービス事業者が管理するデータ提供サーバ１００に格納される。ユーザ会社は、当該サービスを利用することで、社内に当該業務用のサーバを設けることなく、業務を行うことができる。以下では、業務サービスの一例として、スケジュール管理サービスの提供を示して具体的に説明する。
【００２６】
この情報処理システムでは、データ提供サーバ１００、端末装置２００，２００ａおよび鍵管理サーバ３００がネットワーク１０，２０および通信装置１０ａを介して接続されている。
【００２７】
ネットワーク１０は、データ提供サーバ１００が接続するネットワークである。ネットワーク１０は、例えばインターネットである。
通信装置１０ａは、ネットワーク１０に接続される無線通信装置である。通信装置１０ａは、端末装置２００ａと無線通信する。
【００２８】
ネットワーク２０は、端末装置２００および鍵管理サーバ３００が接続するネットワークである。ネットワーク２０は、例えばイントラネットであり、ユーザ会社の社内ネットワークである。
【００２９】
ネットワーク１０とネットワーク２０とは接続されている。ただし、ネットワーク２０にはネットワーク１０との接点に、ネットワーク間での通信を中継するゲートウェイやファイアウォールなど（図２では図示を省略）が設けられている。このゲートウェイやファイアウォールにより、ネットワーク２０の外側にある装置（データ提供サーバ１００や端末装置２００ａ）からネットワーク２０の内部に対してするアクセスは制限される。
【００３０】
データ提供サーバ１００は、サービス事業者のサーバ装置である。データ提供サーバ１００は、端末装置２００，２００ａのユーザが利用するユーザデータを記憶・管理する。データ提供サーバ１００は、端末装置２００，２００ａの要求に応じて、当該ユーザデータを端末装置２００，２００ａに送信する。
【００３１】
データ提供サーバ１００は、Ｗｅｂサーバ機能を有する。データ提供サーバ１００は、端末装置２００，２００ａからＨＴＴＰ（Hypertext Transfer Protocol）リクエスト（以下、単にリクエストという）を受信する。データ提供サーバ１００は、当該リクエストに応じたＨＴＴＰレスポンス（以下、単にレスポンスという）を端末装置２００，２００ａに送信する。このようにして、データ提供サーバ１００はＷｅｂサービスを提供する。
【００３２】
端末装置２００，２００ａは、ユーザが利用するコンピュータである。ユーザは、端末装置２００を操作して、データ提供サーバ１００にスケジュールを登録できる。ユーザは、端末装置２００，２００ａを操作して、データ提供サーバ１００に格納されたデータを取得し、登録したスケジュールを閲覧できる。例えば、ユーザは、端末装置２００から登録したスケジュールを社外の端末装置２００ａにより閲覧できる。端末装置２００，２００ａは、ユーザが当該システムを利用するためのＧＵＩ（Graphical User Interface）を提供するＷｅｂブラウザを実行する。
【００３３】
鍵管理サーバ３００は、スケジュールの機密部分を暗号処理するための鍵を記憶する。鍵管理サーバ３００は、端末装置２００の要求に応じて、端末装置２００に鍵を送信する。なお、鍵管理サーバ３００を複数台設け、それぞれで複数の鍵を管理してもよい。
【００３４】
ユーザは、鍵管理サーバ３００の鍵を用いてスケジュールの機密部分を暗号化できる。これにより、データ提供サーバ１００側での機密事項の不正な閲覧を防止できる。
図３は、第２の実施の形態のデータ提供サーバのハードウェア構成を示す図である。データ提供サーバ１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３、ＨＤＤ（Hard Disk Drive）１０４、グラフィック処理装置１０５、入力インタフェース１０６、記録媒体読取装置１０７および通信インタフェース１０８を有する。
【００３５】
ＣＰＵ１０１は、データ提供サーバ１００全体を制御する。
ＲＯＭ１０２は、データ提供サーバ１００上のＢＩＯＳ（Basic Input / Output System）のプログラムなどを記憶する。
【００３６】
ＲＡＭ１０３は、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ１０３は、ＣＰＵ１０１による処理に必要な各種データを記憶する。
【００３７】
ＨＤＤ１０４は、ＯＳのプログラム、アプリケーションのプログラムを記憶する。また、ＨＤＤ１０４はＣＰＵ１０１による処理に必要な各種データを記憶する。なお、ＨＤＤ１０４に代えて（または、ＨＤＤ１０４と併せて）、ＳＳＤ（Solid State Drive）など他の種類の記憶装置を用いてもよい。
【００３８】
グラフィック処理装置１０５は、モニタ１１と接続される。グラフィック処理装置１０５は、ＣＰＵ１０１からの命令に従って画像をモニタ１１の画面に表示させる。
入力インタフェース１０６は、キーボード１２とマウス１３と接続される。入力インタフェース１０６は、キーボード１２やマウス１３から送られてくる信号をＣＰＵ１０１に送信する。
【００３９】
記録媒体読取装置１０７は、記録媒体１４に記憶されたデータを読み取る読取装置である。例えば、データ提供サーバ１００が有すべき機能は、その機能の処理内容を記述したプログラムをコンピュータに実行させることで実現できる。そのようなプログラムは、コンピュータ読み取り可能な記録媒体１４に記録して配布することができる。また、ネットワーク１０に接続されたプログラム配信サーバ（図示せず）にそのプログラムを格納してもよい。この場合、データ提供サーバ１００は、ネットワーク１０を介してプログラム配信サーバからプログラムをダウンロードすることができる。
【００４０】
記録媒体１４としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリを使用できる。磁気記録装置には、ＨＤＤ、フレキシブルディスク（ＦＤ：Flexible Disk）、磁気テープなどがある。光ディスクには、ＣＤ（Compact Disc）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−Ｒ／ＲＷ／ＲＡＭなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。半導体メモリには、ＵＳＢ（Universal Serial Bus）メモリなどのフラッシュメモリがある。
【００４１】
通信インタフェース１０８は、ネットワーク１０と接続される。通信インタフェース１０８は、ネットワーク１０，２０や通信装置１０ａを介して他の情報処理装置とデータ通信する。
【００４２】
なお、端末装置２００，２００ａおよび鍵管理サーバ３００もデータ提供サーバ１００と同様のハードウェア構成により実現できる。
図４は、第２の実施の形態のデータ提供サーバの機能構成を示す図である。データ提供サーバ１００は、データ記憶部１１０、受信部１２０、ユーザ情報管理部１３０、クライアントプログラム構成部１４０および送信部１５０を有する。これらの機能は、所定のプログラムをＣＰＵ１０１が実行することで実現される。なお、これらの機能の少なくとも一部または全部を専用のハードウェアにより実現してもよい。
【００４３】
データ記憶部１１０は、ユーザを管理するためのユーザ管理情報や、データを管理するためのデータ管理情報などを記憶する。ユーザ管理情報は、ユーザごとの暗号処理のポリシー（鍵の所在情報や暗号化対象）を管理する情報である。データ管理情報は、ユーザごとのデータ本体を管理する情報である。また、データ記憶部１１０は、端末装置２００に対して応答すべきＷｅｂページの構成情報やそのプログラムのひな型などを記憶する。
【００４４】
受信部１２０は、端末装置２００が送信したリクエストを受信する。リクエストには、スケジュールの登録画面を要求するものや、スケジュールの閲覧画面を要求するものが含まれる。受信部１２０は、受信したリクエストをユーザ情報管理部１３０に出力する。
【００４５】
ユーザ情報管理部１３０は、データ記憶部１１０に記憶されたユーザ管理情報やデータ管理情報を管理する。ユーザ情報管理部１３０は、受信部１２０から取得したリクエストを解析し、その内容に応じた処理を実行する。リクエストには、予定登録画面のリクエストおよび予定閲覧画面のリクエストなどがある。
【００４６】
また、ユーザ情報管理部１３０は、ユーザ管理情報やデータ管理情報の更新の依頼を受け付けるとデータ記憶部１１０に記憶された各情報の更新を実行する。
例えば、ユーザ情報管理部１３０は、端末装置２００から新たなスケジュールデータや更新後スケジュールデータを受信すると受信したデータに基づいて、データ記憶部１１０に記憶されたデータ管理情報を更新する。
【００４７】
クライアントプログラム構成部１４０は、ユーザ情報管理部１３０が解析したリクエストの内容に応じて以下の処理を実行する。
（１）クライアントプログラム構成部１４０は、予定登録画面のリクエストを取得すると、予定登録画面を端末装置２００のＷｅｂブラウザに表示させるためのＨＴＭＬ（Hypertext Markup Language）文書を生成して、送信部１５０に出力する。このＨＴＭＬ文書のひな型はデータ記憶部１１０に記憶される。
【００４８】
このＨＴＭＬ文書には、端末装置２００に暗号処理に利用すべき鍵を、所在情報で示される装置から取得させるためのプログラム（鍵取得プログラム）が含まれる。当該プログラムは、例えばＪａｖａＳｃｒｉｐｔ（登録商標）で記述される。鍵の所在情報は、鍵管理サーバ３００を示す情報、鍵管理サーバ３００上のディレクトリおよびファイルを示す情報であり、例えば、ＵＲＩ（Uniform Resource Identifier）である。クライアントプログラム構成部１４０は、データ記憶部１１０に記憶されたユーザ管理情報を参照することで、当該ユーザに対応する所在情報を取得できる。
【００４９】
（２）クライアントプログラム構成部１４０は、予定閲覧画面のリクエストに対して、データ記憶部１１０に記憶されたスケジュールデータを読み出す。クライアントプログラム構成部１４０は、予定閲覧画面を端末装置２００のＷｅｂブラウザに表示させるためのＨＴＭＬ文書を生成して、送信部１５０に出力する。このＨＴＭＬ文書のひな型はデータ記憶部１１０に記憶される。このＨＴＭＬ文書には、端末装置２００に暗号処理に利用すべき鍵を、所在情報で示される装置から取得させるためのプログラム（鍵取得プログラム）が含まれる。当該プログラムは、例えばＪａｖａＳｃｒｉｐｔ（登録商標）で記述される。
【００５０】
送信部１５０は、クライアントプログラム構成部１４０から取得したＨＴＭＬ文書をリクエストに対するレスポンスに含めて、端末装置２００に送信する。
図５は、第２の実施の形態の端末装置の機能構成を示す図である。端末装置２００は、Ｗｅｂブラウザ２１０、鍵取得部２２０および暗号処理部２３０を有する。これらの機能は、所定のプログラムを端末装置２００のＣＰＵが実行することで実現される。特に、鍵取得部２２０および暗号処理部２３０の機能はデータ提供サーバ１００からのレスポンスに含まれるプログラムを実行することで実現される。
【００５１】
Ｗｅｂブラウザ２１０は、ユーザがキーボード１２やマウス１３を操作して入力したデータを受け付け、データ提供サーバ１００へ送信する。Ｗｅｂブラウザ２１０は、スケジュールデータをデータ提供サーバ１００に送信する場合、必要に応じてスケジュールデータの一部あるいは全部を暗号処理部２３０に暗号化させる。そして、Ｗｅｂブラウザ２１０は暗号化後のデータをデータ提供サーバ１００に送信する。
【００５２】
また、Ｗｅｂブラウザ２１０は、データ提供サーバ１００から受信したＨＴＭＬ文書の内容をモニタ１１に表示させる。その際、Ｗｅｂブラウザ２１０は、暗号処理部２３０にＨＴＭＬ文書中の暗号化部分を復号させる。そして、復号後の内容をモニタ１１に表示させる。
【００５３】
鍵取得部２２０および暗号処理部２３０は、Ｗｅｂブラウザ２１０によって呼び出される機能である。鍵取得部２２０および暗号処理部２３０の機能は、Ｗｅｂブラウザ２１０が受信したＨＴＭＬ文書に含まれるプログラムを端末装置２００のＣＰＵが実行することで実現される。
【００５４】
鍵取得部２２０は、プログラムに含まれる所在情報に基づいて暗号処理用の鍵を取得する。所在情報は、鍵管理サーバ３００上の鍵の格納場所を示す。鍵取得部２２０は、当該所在情報に基づき鍵管理サーバ３００に鍵の送信を依頼する鍵要求を送信する。鍵取得部２２０は、鍵管理サーバ３００から鍵を受信する。鍵取得部２２０は、受信した鍵を暗号処理部２３０に出力する。
【００５５】
暗号処理部２３０は、Ｗｅｂブラウザ２１０から取得したデータを鍵取得部２２０から取得した鍵を用いて暗号処理する。暗号処理部２３０は、暗号化部２３１および復号部２３２を有する。
【００５６】
暗号化部２３１は、Ｗｅｂブラウザ２１０から取得したデータを鍵取得部２２０から取得した鍵を用いて暗号化する。暗号化部２３１は、暗号化したデータをＷｅｂブラウザ２１０に出力する。
【００５７】
復号部２３２は、Ｗｅｂブラウザ２１０から取得したデータの暗号化部分を鍵取得部２２０から取得した鍵を用いて復号する。復号部２３２は、復号したデータをＷｅｂブラウザ２１０に出力する。
【００５８】
なお、端末装置２００ａでは、Ｗｅｂブラウザ２１０が実現されていればよい。
図６は、第２の実施の形態の鍵管理サーバの機能構成を示す図である。鍵管理サーバ３００は、鍵記憶部３１０、受信部３２０、鍵抽出部３３０および送信部３４０を有する。これらの機能は、所定のプログラムを鍵管理サーバ３００のＣＰＵが実行することで実現される。なお、これらの機能の少なくとも一部または全部を専用のハードウェアにより実現してもよい。
【００５９】
鍵記憶部３１０は、端末装置２００が暗号処理に用いる鍵を記憶する。鍵は、例えば、ユーザごと、あるいは、複数のユーザの所属するグループごとにそれぞれ異なるディレクトリに格納される。
【００６０】
受信部３２０は、端末装置２００から鍵要求を受信する。受信部３２０は、受信した鍵要求を鍵抽出部３３０に出力する。
鍵抽出部３３０は、受信部３２０から取得した鍵要求に基づいて、鍵記憶部３１０に記憶された鍵を取得する。鍵抽出部３３０は取得した鍵を送信部３４０に出力する。
【００６１】
送信部３４０は、鍵抽出部３３０から取得した鍵を端末装置２００に送信する。
図７は、第２の実施の形態のユーザ管理テーブルのデータ構造例を示す図である。ユーザ管理テーブル１１１は、データ記憶部１１０に格納される。ユーザ管理テーブル１１１には、項番、ユーザＩＤ、パスワード、ユーザ名、鍵配置場所ＵＲＩ、社内判定ドメイン、暗号化対象および所属グループの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１ユーザの情報を示す。
【００６２】
項番には、レコードを識別するための番号が設定される。ユーザＩＤには、ユーザの識別子が設定される。パスワードには、ユーザを認証するためのパスワードが設定される。ユーザ名には、ユーザの名称が設定される。鍵配置場所ＵＲＩには、鍵を格納したコンピュータやファイルを示すＵＲＩが設定される。社内判定ドメインには、アクセス元が社内であるか社外であるかを判定するためのドメインが設定される。暗号化対象には、暗号化対象とするデータ項目を指定する情報が設定される。例えば、スケジュールとして入力されるデータ項目のうち、暗号化の対象とすべきデータ項目として、スケジュールの概要や場所などが設定される。所属グループには、ユーザの所属するグループが存在する場合、そのグループを示す識別情報が設定される。
【００６３】
ユーザ管理テーブル１１１には、例えば、項番が“１”、ユーザＩＤが“ｔａｒｏｕ”、パスワードが”１２３４５ａｂｃｄｅ”、ユーザ名が“富士太郎”、鍵配置場所ＵＲＩが“ｈｔｔｐ：／／ｓａｌｅｓ．ｓｈａｎａｉ．ｅｘａｍｐｌｅ．ｃｏｍ／ｋｅｙ．ｊｓｏｎｐ”、社内判定ドメインが“＊．ｓｈａｎａｉ．ｅｘａｍｐｌｅ．ｃｏｍ”という情報が設定される。また、暗号化対象のうち、概要が“○”、場所が“○”、所属グループが“−（設定なし）”という情報が設定されている。
【００６４】
この項番１の各情報は、“ｔａｒｏｕ”のユーザＩＤで示されるユーザに対応付けられている。特に、項番１の鍵配置場所ＵＲＩの情報により“ｔａｒｏｕ”で示されるユーザが登録するスケジュールデータの暗号処理に用いる鍵が、当該ＵＲＩで示される鍵管理サーバ３００上のファイルとして取得できることが示されている。また、項番１の社内判定ドメインの情報により、アクセス元が“＊．ｓｈａｎａｉ．ｅｘａｍｐｌｅ．ｃｏｍ”のドメインに適合する場合に、当該アクセスをユーザ会社の社内からのアクセスであると検知することが示されている。ここで“＊”はワイルドカードであり、任意の文字列に対応する。また、項番１の暗号化対象の情報により、新たに登録するスケジュールのデータ項目のうち、概要および場所のデータ項目を何れも暗号化することを示している。また、項番１の所属グループの情報により、所属グループの設定がないことを示している。
【００６５】
ここで、暗号化対象のデータ項目に“×”が設定されている場合、当該データ項目は暗号化しないことを示している。
また、ユーザ管理テーブル１１１には、例えば、項番が“２”、ユーザＩＤが“ｊｉｒｏｕ”、パスワードが“ｑｗｅｒｔｙｕｉｏｐ”、ユーザ名が“富士二郎”、鍵配置場所ＵＲＩが“−（設定なし）”、社内判定ドメインが“−（設定なし）”、暗号化対象（概要および場所の何れも）が“−（設定なし）”、所属グループが“Ｇｒｏｕｐ１”という情報が設定されている。
【００６６】
この項番２の各情報により、“ｊｉｒｏｕ”で示されるユーザが“Ｇｒｏｕｐ１”で示されるグループに所属しており、鍵配置場所ＵＲＩ、暗号化対象などの設定が当該グループのポリシーに準ずることが示されている。
【００６７】
図８は、第２の実施の形態のグループ管理テーブルのデータ構造例を示す図である。グループ管理テーブル１１２は、データ記憶部１１０に格納される。グループ管理テーブル１１２には、項番、グループＩＤ、グループ名、鍵配置場所ＵＲＩ、社内判定ドメインおよび暗号化対象の項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１グループの情報を示す。
【００６８】
項番には、レコードを識別するための番号が設定される。グループＩＤには、グループの識別子が設定される。グループ名には、グループの名称が設定される。鍵配置場所ＵＲＩには、鍵を格納したコンピュータやファイルを示すＵＲＩが設定される。社内判定ドメインには、アクセス元が社内であるか社外であるかを判定するためのドメインが設定される。暗号化対象には、暗号化対象とするデータ項目を指定する情報が設定される。例えば、スケジュールとして入力されたデータ項目のうち、暗号化の対象とすべきデータ項目として、スケジュールの概要や場所などが設定される。
【００６９】
グループ管理テーブル１１２には、例えば、項番が“１”、グループＩＤが“Ｇｒｏｕｐ１”、グループ名が“設計チーム”、鍵配置場所ＵＲＩが“ｈｔｔｐ：／／ｓｋ．ｓｈａｎａｉ．ｅｘａｍｐｌｅ．ｃｏｍ／ａ１／ｋｅｙ３．ｊｓｏｎｐ”、社内判定ドメインが“＊．ｓｈａｎａｉ．ｅｘａｍｐｌｅ．ｃｏｍ”という情報が設定される。また、暗号化対象のうち、概要が“○”、場所が“○”という情報が設定されている。
【００７０】
この項番１の情報は、“Ｇｒｏｕｐ１”のユーザＩＤで示されるグループに対応付けられている。特に、項番１の鍵配置場所ＵＲＩの情報により“Ｇｒｏｕｐ１”で示されるグループに属するユーザが登録するスケジュールデータの暗号処理に用いる鍵が、当該ＵＲＩで示されるサーバ上のファイルとして取得できることが示されている。また、項番１の社内判定ドメインの情報により、アクセス元が“＊．ｓｈａｎａｉ．ｅｘａｍｐｌｅ．ｃｏｍ”のドメインに適合する場合に、当該アクセスをユーザ会社の社内からのアクセスであると検知することが示されている。また、項番１の暗号化対象の情報により、このグループに属するユーザが新たに登録するスケジュールのデータ項目のうち、概要および場所のデータ項目を何れも暗号化することを示している。
【００７１】
例えば、ユーザ管理テーブル１１１で示した“ｊｉｒｏｕ”で示されるユーザは、“Ｇｒｏｕｐ１”に属している。したがって、上記項番“１”のレコードの設定が、“ｊｉｒｏｕ”で示されるユーザに適用される。ただし、ユーザ管理テーブル１１１に当該ユーザにつき個別の設定がなされている場合には、個別の設定を優先して適用してもよい。
【００７２】
このようにグループ単位での管理を可能とすることで、例えばプロジェクトの全担当者につき統一されたポリシーを一括して容易に設定できる。
図９は、第２の実施の形態のデータ管理テーブルのデータ構造例を示す図である。データ管理テーブル１１３は、データ記憶部１１０に格納される。データ管理テーブル１１３には、項番、ユーザＩＤ、文書ＩＤおよびデータの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つのデータに関する情報を示す。
【００７３】
項番には、レコードを識別するための番号が設定される。ユーザＩＤには、ユーザの識別子が設定される。文書ＩＤには、文書を識別するための識別子が設定される。データ本体には、データの本体が設定される。データ本体には、例えば、各人のスケジュールを示すｖＣａｌｅｎｄａｒ形式のデータが格納される。
【００７４】
データ管理テーブル１１３には、例えば、項番が“１”、ユーザＩＤが“ｔａｒｏｕ”、文書ＩＤが“００００００１”、データ本体が“スケジュールデータ（ｔａｒｏｕ）．ｖｃｓ”という情報が設定されている。なお、データ本体をファイル名で示している。
【００７５】
この項番１の各情報により、当該レコードに格納された“スケジュールデータ（ｔａｒｏｕ）．ｖｃｓ”がユーザ“ｔａｒｏｕ”のスケジュールであり、その文書ＩＤが“００００００１”であることが示されている。
【００７６】
なお、図７〜９に示した各テーブルは、データ記憶部１１０に格納されるものとしたが、それぞれのテーブルあるいはそれぞれのテーブルの一部を別個の記憶部に格納してもよい。例えば、ユーザ管理テーブル１１１およびグループ管理テーブル１１２をデータ記憶部１１０に格納し、データ管理テーブル１１３をＲＡＭ１０３やＨＤＤ１０４に設けられた他の記憶部に格納してもよい。
【００７７】
図１０は、第２の実施の形態のスケジュールデータの内容を例示する図である。（Ａ）に示すスケジュールデータ４００は、暗号化前を示している。（Ｂ）に示すスケジュールデータ４１０は、暗号化後を示している。
【００７８】
スケジュールデータ４００は、スケジュールの内容を示す複数のデータ項目を有している。データ項目には、場所（ＬＯＣＡＴＩＯＮ）４０１および概要（ＳＵＭＭＡＲＹ）４０２が含まれる。
【００７９】
場所４０１には、例えば“Ｃ１０１会議室”という情報が設定されている。また、概要４０２には、例えば“クラウド戦略会議”という情報が設定されている。
スケジュールデータ４１０は、スケジュールデータ４００と同一のデータ項目を有している。データ項目には、場所４１１および概要４１２が含まれる。場所４１１は、場所４０１の暗号化後に対応する。概要４１２は、概要４０２の暗号化後に対応する。
【００８０】
ユーザの暗号化対象として、場所と概要とが選択されている場合、スケジュールデータ４１０のように場所４１１および概要４１２に暗号化された内容が設定される。そして、端末装置２００はスケジュールデータ４１０をデータ提供サーバ１００に送信する。データ提供サーバ１００はデータ記憶部１１０に記憶されたデータ管理テーブル１１３にスケジュールデータ４１０の内容を登録する。具体的には、例えば、データ管理テーブル１１３に既に格納されているスケジュールデータの所定のタグ部分にスケジュールデータ４１０で新たに追加された内容を挿入する。あるいは、例えばスケジュールデータ４１０に含まれる日時が既に挿入されている場合には、その日時につきスケジュールの内容をスケジュールデータ４１０の内容で置換する。
【００８１】
次に、Ｗｅｂブラウザ２１０が表示する画面について説明する。以下に示す画面は、データ提供サーバ１００が端末装置２００に送信するＨＴＭＬ文書に基づいて、Ｗｅｂブラウザ２１０が端末装置２００のモニタに表示するものである。
【００８２】
図１１は、システムの利用開始の際の画面を例示する図である。（Ａ）はログイン画面５１０を示す。（Ｂ）は利用メニュー画面５２０を示す。
ログイン画面５１０は、データ提供サーバ１００が提供するＷｅｂページを示す所定のＵＲＩがＷｅｂブラウザ２１０で指定されると当該ブラウザに表示される画面である。
【００８３】
ログイン画面５１０には、テキストボックス５１１，５１２およびログインボタン５１３が表示されている。
テキストボックス５１１は、ユーザＩＤを入力するためのフォームである。テキストボックス５１２は、パスワードを入力するためのフォームである。ユーザは、端末装置２００に接続された入力デバイス（キーボードやマウスなど）を操作して、テキストボックス５１１，５１２に文字列を入力できる。
【００８４】
ログインボタン５１３は、テキストボックス５１１，５１２に入力されたユーザＩＤおよびパスワードをデータ提供サーバ１００に送信するためのボタンである。ユーザは、入力デバイスを用いてログインボタン５１３を押下操作することで、入力した文字列によるユーザ認証をデータ提供サーバ１００に促すことができる。
【００８５】
データ提供サーバ１００は、データ記憶部１１０に記憶されたユーザ管理テーブル１１１およびグループ管理テーブル１１２を参照して、ユーザＩＤとパスワードとを照合し認証を行う。データ提供サーバ１００は、認証に成功すると利用メニュー画面５２０を示すＨＴＭＬ文書を端末装置２００に送信する。
【００８６】
利用メニュー画面５２０は、認証が成功した結果、Ｗｅｂブラウザ２１０に表示される画面である。利用メニュー画面５２０には、設定ボタン５２１、予定登録ボタン５２２および予定閲覧ボタン５２３が表示されている。ユーザは、入力デバイスを操作して、各ボタンを押下操作し、各ボタンに対応する画面をＷｅｂブラウザ２１０に表示させることができる。
【００８７】
設定ボタン５２１は、設定画面へ遷移するためのボタンである。利用メニュー画面５２０では、ユーザ“富士太郎”がログインした状態を示している。設定ボタン５２１が押下されると、当該ログイン中のユーザの暗号処理の設定を行う画面に遷移する。
【００８８】
予定登録ボタン５２２は、予定登録画面へ遷移するためのボタンである。予定登録ボタン５２２が押下されると、当該ユーザの予定登録画面に遷移する。
予定閲覧ボタン５２３は、予約閲覧画面へ遷移するためのボタンである。予定閲覧ボタン５２３が押下されると、当該ユーザの予定閲覧画面に遷移する。
【００８９】
なお、利用メニュー画面５２０では、ユーザ個人でログインした場合を例示したが、グループでログインした場合にも同様に設定メニュー画面が表示される。ただし、その場合、設定メニュー画面には、グループに所属しているユーザごとの予定登録ボタンや予定閲覧ボタンが表示されてもよい。
【００９０】
また、例えば、ネットワーク２０以外からのアクセス（社外からのアクセス）に対しては、データ提供サーバ１００は、利用メニュー画面５２０に予定登録ボタン５２２を表示させないこととしてもよい。
【００９１】
図１２は、暗号処理の設定画面を例示する図である。設定画面５３０は、利用メニュー画面５２０で設定ボタン５２１を押下すると、Ｗｅｂブラウザ２１０に表示される画面である。設定画面５３０には、テキストボックス５３１，５３２、チェックボックス５３３，５３４および確定ボタン５３５が表示されている。
【００９２】
テキストボックス５３１は、暗号鍵の配置場所を示すＵＲＩを入力するためのフォームである。テキストボックス５３２は、アクセス元ドメインが社内のドメインであるか否かを判定するための判定基準となるドメインを入力するためのフォームである。ユーザは、入力デバイスを用いてテキストボックス５３１，５３２に文字列を入力できる。
【００９３】
チェックボックス５３３，５３４は、スケジュールデータのうち暗号化するデータ項目を指定するためのフォームである。チェックボックス５３３は、概要のデータ項目を暗号化するか否かを受け付ける。チェックボックス５３４は、場所のデータ項目を暗号化するか否かを受け付ける。ユーザは、該当のデータ項目を暗号化対象としたい場合には、入力デバイスを操作して、チェックボックス５３３，５３４にチェックを入力することができる。
【００９４】
確定ボタン５３５は、設定画面５３０に入力したデータを確定し、データ提供サーバ１００に送信するためのボタンである。ユーザは、入力デバイスを操作して、確定ボタン５３５を押下操作することで、設定画面５３０に入力された内容で自身のユーザ管理レコードを更新するようデータ提供サーバ１００に指示できる。
【００９５】
データ提供サーバ１００は、当該入力内容を受信すると、データ記憶部１１０に記憶されたユーザ管理テーブル１１１の該当ユーザのレコードを更新する。具体的には、テキストボックス５３１に入力されたＵＲＩがユーザ管理テーブル１１１の鍵配置場所ＵＲＩに設定される。また、テキストボックス５３２に入力されたドメインがユーザ管理テーブル１１１の社内判定ドメインに設定される。また、チェックボックス５３３にチェックが入力されている場合に、ユーザ管理テーブル１１１の暗号化対象のうち概要の項目に“○”が設定される。同様に、チェックボックス５３４にチェックが入力されている場合に、ユーザ管理テーブル１１１の暗号化対象のうち場所の項目に“○”が設定される。チェックが未入力の場合には、ユーザ管理テーブル１１１の当該項目に“×”が設定される。
【００９６】
なお、設定画面５３０には、ユーザ単位でのログインの場合に、当該ユーザが属するグループを設定変更するためのフォームを設けてもよい。また、グループでログインしている場合には、設定画面５３０によりグループ管理テーブル１１２に設定されたグループの暗号処理の設定・変更を行うことができる。
【００９７】
図１３は、予定登録画面を例示する図である。予定登録画面５４０は、利用メニュー画面５２０で予定登録ボタン５２２を押下すると、Ｗｅｂブラウザ２１０に表示される画面である。予定登録画面５４０には、アンカー５４１、テキストボックス５４２，５４３，５４４，５４５、チェックボックス５４６および登録ボタン５４７が表示されている。
【００９８】
アンカー５４１は、予定閲覧画面に遷移するためのハイパーリンクである。
テキストボックス５４２は、スケジュールの日付を入力するためのフォームである。テキストボックス５４３は、スケジュールの開始時刻を入力するためのフォームである。テキストボックス５４４は、スケジュールの概要を入力するためのフォームである。テキストボックス５４５は、スケジュールの場所を入力するためのフォームである。ユーザは、入力デバイスを用いてテキストボックス５４２，５４３，５４４，５４５に各データ項目を入力できる。
【００９９】
チェックボックス５４６は、設定画面５３０で指定した暗号化対象のデータ項目に対して暗号化を行うか否かを選択するためのフォームである。ユーザは、入力デバイスを操作して、チェックボックス５４６にチェックを入力することができる。
【０１００】
登録ボタン５４７は、テキストボックス５４２，５４３，５４４，５４５およびチェックボックス５４６に入力した内容を確定するためのボタンである。ユーザは、入力デバイスを操作して、登録ボタン５４７を押下操作することで、予定登録画面５４０に入力されたスケジュールの内容を自身のスケジュールデータに登録するようデータ提供サーバ１００に指示できる。
【０１０１】
このときチェックボックス５４６にチェックが入力されている場合、端末装置２００は、所定のデータ項目について暗号化した後に、データ提供サーバ１００へ当該入力内容を送信する。
【０１０２】
また、例えば、ネットワーク２０以外からのアクセス（社外からのアクセス）に対して、データ提供サーバ１００は、予定登録画面５４０にチェックボックス５４６を表示させないこととしてもよい。
【０１０３】
図１４は、予定登録画面のＨＴＭＬ文書を例示する図である。ＨＴＭＬ文書５４０ａは、利用メニュー画面５２０の予定登録ボタン５２２が押下された際に、データ提供サーバ１００が生成して端末装置２００に送信される。Ｗｅｂブラウザ２１０は、ＨＴＭＬ文書５４０ａに基づいて、予定登録画面５４０をモニタに表示する。
【０１０４】
ＨＴＭＬ文書５４０ａは、コード５４１ａ，５４２ａ，５４３ａを含む。
コード５４１ａは、暗号処理を実行するための関数を記載したファイル群（“ｉｎｔｅｒｎａｌ．ｊｓ”など）を端末装置２００のメモリ上に読み込むためのコードである。
【０１０５】
コード５４２ａは、鍵取得部２２０を実現するためのスクリプトを記述したコードである。コード５４２ａは、鍵管理サーバ３００に記憶された鍵を指定するＵＲＩを含む。具体的には、“ｈｔｔｐ：／／ｓａｌｅｓ．ｅｘａｍｐｌｅ．ｃｏｍ／ｋｅｙ．ｊｓｏｎｐ”が、鍵管理サーバ３００に記憶された鍵を指定するＵＲＩである。端末装置２００は、例えばネットワーク２０に接続されたネームサーバ（図２では図示せず）に“ｓａｌｅｓ．ｅｘａｍｐｌｅ．ｃｏｍ”を問い合わせることで、当該ドメイン名に対応する鍵管理サーバ３００のＩＰ（Internet Protocol）アドレスを取得できる。あるいは、端末装置２００がドメイン名とＩＰアドレスとの対応付けを定義したファイルを予め有していてもよい。これにより、端末装置２００上で鍵取得部２２０が実現される。
【０１０６】
そして、鍵取得部２２０は、ＪＳＯＮＰ（JavaScript Object Notation with Padding）により鍵管理サーバ３００から鍵を取得する。鍵管理サーバ３００には、所定のディレクトリにファイル“ｋｅｙ．ｊｓｏｎｐ”が格納される。“ｋｅｙ．ｊｓｏｎｐ”には、例えばＪＳＯＮＰデータ「ｊｓｏｎｐ（“ｍｙｓｅｃｒｅｔｋｅｙ”）；」が記述される。鍵取得部２２０は、鍵管理サーバ３００からｊｓｏｎｐ（“ｍｙｓｅｃｒｅｔｋｅｙ”）；の応答を得て、コード５４２ａで定義される関数“ｊｓｏｎｐ”により鍵“ｍｙｓｅｃｒｅｔｋｅｙ”を取得できる。
【０１０７】
コード５４３ａは、暗号化部２３１を実現するためのスクリプトを記述したコードである。暗号化部２３１は、登録ボタン５４７が押下操作された際に、チェックボックス５４６にチェックが入力されている場合、入力されたスケジュールデータのうち、暗号化対象のデータ項目（場所や概要）を暗号化する。そして、端末装置２００は暗号化後のスケジュールデータをデータ提供サーバ１００に送信する。
【０１０８】
なお、コード５４２ａ，５４３ａは、データ記憶部１１０に記憶されたユーザ管理テーブル１１１およびグループ管理テーブル１１２に設定された内容に応じて生成される。例えば、コード５４２ａに含まれるＵＲＩには鍵管理サーバ３００以外のサーバが指定される場合もある。また、例えば、コード５４３ａにおいて、場所や概要以外のデータ項目を暗号化対象としてもよい。なお、その場合には、ユーザ管理テーブル１１１やグループ管理テーブル１１２において、暗号化対象として場所や概要以外のデータ項目（例えば、開始時刻など）が設定される。ＨＴＭＬ文書５４０ａを生成するためのひな型は、データ記憶部１１０に予め格納される。
【０１０９】
図１５は、暗号処理を実行するための関数を例示する図である。ファイル５４０ｂは、“ｉｎｔｅｒｎａｌ．ｊｓ”の内容を示している。ファイル５４０ｂは、予定登録画面５４０の構成ファイルとしてデータ記憶部１１０に予め格納される。ファイル５４０ｂは、コード５４１ｂ、５４２ｂを含む。
【０１１０】
コード５４１ｂは、暗号化部２３１による暗号化処理を示すコードである。コード５４１ｂでは、鍵取得部２２０が取得した鍵（“ｐｃｄｍｓ．ｋｅｙ”）を使用して所定の関数（“ｂｌｏｗｆｉｓｈ．ｅｎｃｒｙｐｔ”）により暗号化を行った後に、ｂａｓｅ６４によるエンコードを行う場合を例示している。暗号化部２３１は、当該エンコード後のデータの先頭に“｛ｅｎｃ：”を、最後尾に“｝”を付加する。復号部２３２による暗号化部分の特定を容易とするためである。
【０１１１】
コード５４２ｂは、復号部２３２による復号処理を示すコードである。コード５４２ｂでは、コード５４１ｂで暗号化されたデータを復号する場合を例示している。復号部２３２は、復号対象データのうち、“｛ｅｎｃ：”を先頭に含まないものはそのまま出力する。“｛ｅｎｃ：”を含むものについて、先頭の“｛ｅｎｃ：”と最後尾の“｝”を除いた文字列につきｂａｓｅ６４によるデコードを行う。更に、鍵取得部２２０が取得した鍵を使用してデコード後のデータを所定の関数（“ｂｌｏｗｆｉｓｈ．ｄｅｃｒｙｐｔ”）により復号する。そして、復号後のデータをＷｅｂブラウザ２１０に出力する。
【０１１２】
なお、復号対象データが暗号化されていないにも関わらず、先頭に“｛ｅｎｃ：”を含む場合も考えられる。そのような場合を考慮して、非暗号化データが復号されないように、コード５４２ｂに適宜他のエスケープ処理を追加してもよい。
【０１１３】
図１６は、予定閲覧画面を例示する図である。（Ａ）はデータ提供サーバ１００に社内からアクセスした場合（社内アクセス時）の予定閲覧画面５５０を示す。予定閲覧画面５５０は端末装置２００のＷｅｂブラウザ２１０に表示される画面である。（Ｂ）はデータ提供サーバ１００に社外からアクセスした場合（社外アクセス時）の予定閲覧画面５６０を示す。予定閲覧画面５６０は端末装置２００ａのＷｅｂブラウザに表示される画面である。
【０１１４】
予定閲覧画面５５０には、アンカー５５１および予定一覧表示部５５２が表示されている。アンカー５５１は、予定登録画面５４０に遷移するためのハイパーリンクである。予定一覧表示部５５２は、現在ログイン中のユーザのスケジュールの一覧を表示する領域である。
【０１１５】
予定一覧表示部５５２には、データ記憶部１１０に記憶されたデータ管理テーブル１１３に設定されるデータ本体の内容が表示される。例えば、ユーザ“富士太郎”がログインしている場合、ログイン時のユーザＩＤ“ｔａｒｏｕ”に対応するデータ本体“スケジュールデータ（ｔａｒｏｕ）．ｖｃｓ”が読み出され、その内容が予定一覧表示部５５２に表示される。端末装置２００は、データ本体に記述されたデータのうち、暗号化部分に関しては、鍵管理サーバ３００から取得した鍵により復号して予定一覧表示部５５２に表示する。
【０１１６】
予定閲覧画面５６０には、アンカー５６１および予定一覧表示部５６２が表示されている。アンカー５６１は、アンカー５５１に対応する。予定一覧表示部５６２は、予定一覧表示部５５２に対応する。
【０１１７】
予定一覧表示部５６２には、予定一覧表示部５５２と同様にしてログイン中のユーザのスケジュールの一覧が表示される。ただし、社外アクセス時には、ネットワーク２０内にアクセスして鍵を取得することができないため、暗号化部分は所定の文字列で置換する。
【０１１８】
図１７は、予定閲覧画面のＨＴＭＬ文書の第１の例を示す図である。ＨＴＭＬ文書５５０ａは、社内アクセス時に利用メニュー画面５２０の予定閲覧ボタン５２３が押下されると、データ提供サーバ１００が生成して端末装置２００に送信される。Ｗｅｂブラウザ２１０は、ＨＴＭＬ文書５５０ａに基づいて、予定閲覧画面５５０をモニタに表示する。
【０１１９】
ＨＴＭＬ文書５５０ａは、コード５５１ａ，５５２ａ，５５３ａ，５５４ａを含む。
コード５５１ａは、暗号処理を実行するための関数を記載したファイル群を端末装置２００のメモリ上に読み込むためのコードである。
【０１２０】
コード５５２ａは、鍵取得部２２０を実現するためのスクリプトを記述したコードである。コード５５２ａは、鍵管理サーバ３００に記憶された鍵を指定したＵＲＩを含む。具体的には、“ｈｔｔｐ：／／ｓａｌｅｓ．ｅｘａｍｐｌｅ．ｃｏｍ／ｋｅｙ．ｊｓｏｎｐ”が、鍵管理サーバ３００に記憶された鍵を指定するＵＲＩである。当該ＵＲＩによる鍵の取得方法は、図１４のコード５４２ａで説明した方法と同様である。
【０１２１】
コード５５３ａは、復号部２３２を実現するためのスクリプトを記述したコードである。復号部２３２は、鍵取得部２２０が鍵を取得すると、当該ＨＴＭＬ文書５５０ａ内のタグ“ｔｄ”の要素につき復号を試みる。
【０１２２】
コード５５４ａは、タグ“ｔｄ”の要素に暗号化部分を含むコードである。
暗号化部分の復号方法は、図１５のコード５４２ｂの説明の通りである。
図１８は、予定閲覧画面のＨＴＭＬ文書の第２の例を示す図である。ＨＴＭＬ文書５６０ａは、社外アクセス時に利用メニュー画面５２０の予定閲覧ボタン５２３が押下されると、データ提供サーバ１００が生成して、端末装置２００ａに送信される。Ｗｅｂブラウザは、ＨＴＭＬ文書５６０ａに基づいて、予定閲覧画面５６０をモニタに表示する。
【０１２３】
ＨＴＭＬ文書５６０ａは、コード５６１ａを含む。コード５６１ａは、図１７で示したコード５５４ａに対応している。このように、データ提供サーバ１００は社外アクセス時には暗号化部分を所定の文字列（例えば“社外秘”）に置換したＨＴＭＬ文書５６０ａを生成する。これにより、暗号化部分に含まれる無意味な文字列がユーザに提示されるのを防止する。
【０１２４】
このため、例えば、端末装置２００ａのＷｅｂブラウザに予定閲覧画面５６０を表示させたとしても、暗号化された無意味な文字列が表示されない。よって、社外アクセス時にも暗号化部分の安全性を確保するとともに、内容の見易さを向上できる。
【０１２５】
次に、以上のような構成の情報処理システムにおける処理手順を説明する。なお、以下では特に明記しない限り、端末装置２００からユーザ“富士太郎”がデータ提供サーバ１００へアクセスする場合を想定する。
【０１２６】
図１９は、メニュー画面の表示処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
［ステップＳ１１］端末装置２００は、ログイン画面５１０のＵＲＩを受け付ける。当該ＵＲＩは、例えば、ユーザが所定のＷｅｂページ上から当該ＵＲＩを示すハイパーリンクを選択したり、Ｗｅｂブラウザ２１０に直接入力したりすることで、端末装置２００に入力される。
【０１２７】
［ステップＳ１２］端末装置２００は、データ提供サーバ１００にログイン画面５１０のリクエストを送信する。
［ステップＳ１３］データ提供サーバ１００は、端末装置２００からリクエストを受信する。データ提供サーバ１００は、リクエストに応じて、ログイン画面５１０のＨＴＭＬ文書を含むレスポンスを端末装置２００に送信する。
【０１２８】
［ステップＳ１４］端末装置２００は、データ提供サーバ１００からレスポンスを受信する。端末装置２００は、レスポンスに含まれるＨＴＭＬ文書に基づいて、ログイン画面５１０をモニタに表示させる。
【０１２９】
［ステップＳ１５］端末装置２００は、ログイン画面５１０のログインボタン５１３の押下操作を受け付けると、テキストボックス５１１，５１２に入力されたユーザＩＤおよびパスワードをデータ提供サーバ１００に送信する。
【０１３０】
［ステップＳ１６］データ提供サーバ１００は、受信したＩＤおよびパスワードをデータ記憶部１１０に記憶されたユーザ管理テーブル１１１のユーザＩＤおよびパスワードと照合する。照合により、ＩＤおよびパスワードが一致するものがあれば、認証ＯＫとして処理をステップＳ１７に進める。この場合、データ提供サーバ１００は、例えば端末装置２００との間のセッションに対応付けたセッション変数に認証したＩＤを保持する。ＩＤおよびパスワードが一致するものがなければ、認証ＮＧとして処理をステップＳ１８に進める。
【０１３１】
［ステップＳ１７］データ提供サーバ１００は、利用メニュー画面５２０のＨＴＭＬ文書を端末装置２００に応答する。
［ステップＳ１８］データ提供サーバ１００は、認証失敗を端末装置２００に応答する。そして、端末装置２００上で認証失敗がユーザに示されて、処理が完了する。
【０１３２】
［ステップＳ１９］端末装置２００は、受信したＨＴＭＬ文書に基づいて利用メニュー画面５２０をモニタに表示させる。そして、処理が完了する。
このようにして、データ提供サーバ１００は、端末装置２００を利用するユーザにつき認証に成功した場合に当該情報処理システムの利用を許可する。
【０１３３】
ユーザは、端末装置２００に接続されたモニタに表示された利用メニュー画面５２０から所望のボタンを押下操作することで、データ提供サーバ１００が提供する各機能を利用することができる。次に、各機能の処理手順を説明する。ここで、設定ボタン５２１を押下操作した場合の設定処理については、図１２で説明した内容と同一であるため説明を省略する。
【０１３４】
まず、利用メニュー画面５２０で予定登録ボタン５２２が押下操作された際に、その後各装置が実行する処理について説明する。
図２０は、予定登録処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【０１３５】
［ステップＳ２１］端末装置２００は、利用メニュー画面５２０の予定登録ボタン５２２の押下操作を受け付ける。
［ステップＳ２２］端末装置２００は、予定登録画面５４０のリクエストを送信する。
【０１３６】
［ステップＳ２３］データ提供サーバ１００は、端末装置２００からリクエストを受信する。データ提供サーバ１００は、リクエストに応じて、予定登録画面５４０のＨＴＭＬ文書５４０ａやその他の必要なファイル群を含むレスポンスを端末装置２００に送信する。
【０１３７】
［ステップＳ２４］端末装置２００は、データ提供サーバ１００からレスポンスを受信する。端末装置２００は、レスポンスに含まれるＨＴＭＬ文書５４０ａを解析し、ＨＴＭＬ文書５４０ａに含まれるスクリプトを実行する。これにより、端末装置２００上に鍵取得部２２０の機能が実現される。
【０１３８】
［ステップＳ２５］端末装置２００は、鍵管理サーバ３００から鍵を取得する。
［ステップＳ２６］端末装置２００は、ＨＴＭＬ文書５４０ａに基づいて、予定登録画面５４０をモニタに表示させる。端末装置２００は、予定登録画面５４０の登録ボタン５４７の押下操作を受け付ける。
【０１３９】
［ステップＳ２７］端末装置２００は、予定登録画面５４０に入力されたデータ項目につき暗号化処理を行う。
［ステップＳ２８］端末装置２００は、データ提供サーバ１００に各データ項目を含むスケジュールデータを送信する。
【０１４０】
［ステップＳ２９］データ提供サーバ１００は、端末装置２００からスケジュールデータを受信する。データ提供サーバ１００は、データ記憶部１１０に記憶されたデータ管理テーブル１１３に登録されたスケジュールデータの内容を更新する。例えば、スケジュールが追加された場合には、当該ユーザの既存のスケジュールデータに追加された内容を追記する。また、既存のスケジュールが変更された場合には、当該ユーザの既存のスケジュールデータに含まれる対象スケジュールを更新する。
【０１４１】
［ステップＳ３０］データ提供サーバ１００は、スケジュールデータの登録が完了した旨を通知するレスポンスを端末装置２００に送信する。
［ステップＳ３１］端末装置２００は、データ提供サーバ１００からレスポンスを受信する。端末装置２００は、スケジュールデータの登録が完了した旨をモニタに表示させる。そして、処理が完了する。
【０１４２】
このようにして、データ提供サーバ１００は、端末装置２００からの予定登録画面５４０のリクエストに応じて、予定登録画面５４０用のＨＴＭＬ文書５４０ａを生成して端末装置２００に送信する。端末装置２００は、データ提供サーバ１００から受信したＨＴＭＬ文書５４０ａに基づいて、鍵管理サーバ３００から鍵を取得し、データ提供サーバ１００に送信するデータを暗号化することができる。
【０１４３】
次に、上記ステップＳ２３で示したデータ提供サーバ１００の予定登録画面応答処理の手順について説明する。
図２１は、予定登録画面応答処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【０１４４】
［ステップＳ４１］受信部１２０は、予定登録画面５４０のリクエストを受信する。受信部１２０は、受信したリクエストをユーザ情報管理部１３０に出力する。ユーザ情報管理部１３０は、当該アクセスのユーザＩＤを取得する。例えば、端末装置２００との間で定義されるセッション変数からユーザＩＤを取得できる。
【０１４５】
［ステップＳ４２］ユーザ情報管理部１３０は、データ記憶部１１０に記憶されたユーザ管理テーブル１１１を参照して、ユーザＩＤに対応する鍵配置場所ＵＲＩを取得する。
［ステップＳ４３］ユーザ情報管理部１３０は、ユーザ管理テーブル１１１を参照して、ユーザＩＤに対応する暗号化対象のデータ項目を取得する。そして、取得した鍵配置場所ＵＲＩと暗号化対象とをクライアントプログラム構成部１４０に出力する。
【０１４６】
［ステップＳ４４］クライアントプログラム構成部１４０は、データ記憶部１１０に記憶されたひな型に基づいて、ＨＴＭＬ文書５４０ａを生成する。具体的には、取得した鍵配置場所ＵＲＩに応じたコードを生成し、ひな型に挿入する。例えば、ＨＴＭＬ文書５４０ａのコード５４１ａに含まれる“ｈｔｔｐ：／／ｓａｌｅｓ．ｓｈａｎａｉ．ｅｘａｍｐｌｅ．ｃｏｍ／ｋｅｙ．ｊｓｏｎｐ”の箇所が対応する。また、取得した暗号化対象のデータ項目に応じたコードを生成し、ひな型に挿入する。例えば、コード５４２ａに含まれる“ｆｏｒｍ．ｌｏｃａｔｉｏｎ．ｖａｌｕｅ＝ｐｃｄｍｓ．ｅｎｃ（ｆｏｒｍ．ｌｏｃａｔｉｏｎ．ｖａｌｕｅ）；”および“ｆｏｒｍ．ｓｕｍｍａｒｙ．ｖａｌｕｅ＝ｐｃｄｍｓ．ｅｎｃ（ｆｏｒｍ．ｓｕｍｍａｒｙ．ｖａｌｕｅ）；”の箇所が対応する。そして、生成したＨＴＭＬ文書５４０ａとその他の必要なファイル群を送信部１５０に出力する。
【０１４７】
［ステップＳ４５］送信部１５０は、クライアントプログラム構成部１４０から取得したＨＴＭＬ文書５４０ａなどをレスポンスに含めて端末装置２００に送信する。
このようにして、データ提供サーバ１００は、ＨＴＭＬ文書５４０ａを生成し、端末装置２００に送信する。
【０１４８】
端末装置２００は、ＨＴＭＬ文書５４０ａに記述されたスクリプトに基づいて、鍵取得部２２０の機能を実現する。次に、図２０のステップＳ２５で示した端末装置２００の鍵取得処理の手順について説明する。
【０１４９】
図２２は、鍵取得処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
［ステップＳ５１］Ｗｅｂブラウザ２１０は、ＨＴＭＬ文書５４０ａに記述されたコード５４２ａに基づいて、鍵配置場所ＵＲＩを含むＪＳＯＮＰデータ取得用のスクリプトタグを生成する。
【０１５０】
［ステップＳ５２］Ｗｅｂブラウザ２１０は、生成したスクリプトタグをＨＴＭＬ文書５４０ａのｂｏｄｙ部に挿入する。そして、Ｗｅｂブラウザ２１０は、生成したスクリプトタグを評価し、実行する。これにより、鍵取得部２２０が実現する。
【０１５１】
［ステップＳ５３］鍵取得部２２０は、鍵配置場所ＵＲＩにアクセスする。具体的には、コード５４２ａに記載された鍵管理サーバ３００上の鍵を示す外部ファイル“ｈｔｔｐ：／／ｓａｌｅｓ．ｓｈａｎａｉ．ｅｘａｍｐｌｅ．ｃｏｍ／ｋｅｙ．ｊｓｏｎｐ”を読み込む。鍵取得部２２０は、例えば、鍵管理サーバ３００から「ｊｓｏｎｐ（“ｍｙｓｅｃｒｅｔｋｅｙ”）；」の応答を得て、コールバック関数“ｊｓｏｎｐ”を実行する。
【０１５２】
［ステップＳ５４］鍵取得部２２０は、当該関数により取得した鍵を鍵格納用の変数（ｐｃｄｍｓ．ｋｅｙ）に代入する。
このようにして、鍵取得部２２０が実現される。そして、鍵取得部２２０は、鍵管理サーバ３００から鍵を取得する。なお、上記の例では、ＪＳＯＮＰにより鍵を取得する場合を示したが、これに限らない。例えば、ＪａｖａＳｃｒｉｐｔ（登録商標）以外のプログラム言語により記述されたアプリケーションをデータ提供サーバ１００から端末装置２００に送信して実行させることで鍵取得部２２０の機能を実現することも考えられる。
【０１５３】
端末装置２００は、ＨＴＭＬ文書５４０ａに基づいて予定登録画面５４０をモニタに表示させる。そして、予定登録画面５４０の登録ボタン５４７が押下操作されると、暗号化処理を行う。次に、図２０のステップＳ２７で示した端末装置２００の暗号化処理の手順について説明する。
【０１５４】
図２３は、暗号化処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
［ステップＳ６１］Ｗｅｂブラウザ２１０は、予定登録画面５４０のチェックボックス５４６がＯＮ／ＯＦＦの何れであるか、すなわち、暗号化を行うか否かを判定する。暗号化を行う場合、ＨＴＭＬ文書５４０ａのコード５４３ａの記述に基づいて暗号化部２３１を実現し、処理をステップＳ６２に進める。暗号化を行わない場合、処理を完了する。
【０１５５】
［ステップＳ６２］暗号化部２３１は、暗号化対象のデータ項目に関して以下のステップＳ６３〜Ｓ６５を繰り返し実行する。ここで、ＨＴＭＬ文書５４０ａでは、コード５４３ａには、データ項目のうち、場所（“ｌｏｃａｔｉｏｎ”）および概要（“ｓｕｍｍａｒｙ”）を対象として暗号化を行う旨が記述されている。
【０１５６】
［ステップＳ６３］暗号化部２３１は、暗号化対象のデータ項目のデータを抽出する。
［ステップＳ６４］暗号化部２３１は、鍵取得部２２０が取得した鍵を用いて抽出したデータを暗号化する。暗号化部２３１は、鍵取得部２２０が出力した所定の変数の値を参照することで鍵を取得できる。暗号化処理の具体的な内容は、図１５のコード５４１ｂに基づく処理の通りである。暗号化部２３１は、暗号化後のデータの先頭と最後尾に所定の文字または文字列を付加する。
【０１５７】
［ステップＳ６５］暗号化部２３１は、暗号化後のデータで、入力されたデータを置換する。
［ステップＳ６６］暗号化部２３１は、コード５４３ａに記述された全てのデータ項目についての暗号化処理を実行したか否かを判定する。全て実行した場合、処理を完了させる。全て実行していない場合、処理をステップＳ６３に進める。
【０１５８】
このようにして、暗号化部２３１は暗号化処理を行う。なお、データ項目ごとの処理順序は、例えば、コード５４３ａに記述された順序（上から下へ向かう順）である。
次に、利用メニュー画面５２０で予定閲覧ボタン５２３が押下操作された際に、その後各装置が実行する処理について説明する。
【０１５９】
図２４は、予定閲覧処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
［ステップＳ７１］端末装置２００は、利用メニュー画面５２０の予定閲覧ボタン５２３の押下操作を受け付ける。
【０１６０】
［ステップＳ７２］端末装置２００は、予定閲覧画面５５０のリクエストを送信する。
［ステップＳ７３］データ提供サーバ１００は、端末装置２００からリクエストを受信する。データ提供サーバ１００は、リクエストに応じて、予定閲覧画面５５０のＨＴＭＬ文書５５０ａやその他の必要なファイル群を含むレスポンスを端末装置２００に送信する。
【０１６１】
［ステップＳ７４］端末装置２００は、データ提供サーバ１００からレスポンスを受信する。端末装置２００は、レスポンスに含まれるＨＴＭＬ文書５５０ａを解析し、ＨＴＭＬ文書５５０ａに含まれる鍵取得用のスクリプト（コード５５２ａに対応する）の有無を判定する。スクリプトがある場合、処理をステップＳ７５に進める。スクリプトがない場合、処理をステップＳ７８に進める。
【０１６２】
［ステップＳ７５］端末装置２００は、ＨＴＭＬ文書５５０ａに含まれるスクリプトを実行する。これにより、端末装置２００上に鍵取得部２２０の機能が実現される。
［ステップＳ７６］端末装置２００は、鍵管理サーバ３００から鍵を取得する。
【０１６３】
［ステップＳ７７］端末装置２００は、ＨＴＭＬ文書５５０ａに含まれるデータ項目につき復号処理を行う。
［ステップＳ７８］端末装置２００は、ＨＴＭＬ文書５５０ａの内容をモニタに表示させる。なお、ステップＳ７７で復号処理が行われている場合、当該部分には復号後の内容が表示される。
【０１６４】
このようにして、データ提供サーバ１００は、端末装置２００からの予定閲覧画面５５０のリクエストに応じて、予定閲覧画面５５０用のＨＴＭＬ文書５５０ａを生成して端末装置２００に送信する。端末装置２００は、データ提供サーバ１００から受信したＨＴＭＬ文書５５０ａに基づいて、鍵管理サーバ３００から鍵を取得し、暗号化部分を復号してモニタに表示させることができる。
【０１６５】
なお、上記の例では、端末装置２００からデータ提供サーバ１００にアクセスする場合を示した。これに対し、端末装置２００ａがデータ提供サーバ１００にアクセスする場合も同様である。ただし、端末装置２００ａの場合は、社外からのアクセスとなる。このため、データ提供サーバ１００が端末装置２００ａに提供するのは暗号化部分を予め所定の文字列に置換したＨＴＭＬ文書５６０ａとなる。端末装置２００ａは、ＨＴＭＬ文書５６０ａに基づいて、モニタに予定一覧を表示する。その処理手順を以下に示す。
【０１６６】
次に、上記ステップＳ７３で示したデータ提供サーバ１００の予定閲覧画面応答処理の手順について説明する。
図２５は、予定閲覧画面応答処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
【０１６７】
［ステップＳ８１］受信部１２０は、予定登録画面５４０のリクエストを受信する。受信部１２０は、受信したリクエストをユーザ情報管理部１３０に出力する。ユーザ情報管理部１３０は、当該アクセスのユーザＩＤを取得する。例えば、受信部１２０は端末装置２００との間で定義されるセッション変数からユーザＩＤを取得できる。
【０１６８】
［ステップＳ８２］ユーザ情報管理部１３０は、データ記憶部１１０に記憶されたデータ管理テーブル１１３を参照して、ユーザＩＤに対応するスケジュールデータを取得する。
【０１６９】
［ステップＳ８３］ユーザ情報管理部１３０は、当該アクセスが社内アクセスであるか否かを判定する。社内アクセスである場合、処理をステップＳ８４に進める。社外アクセスである場合、処理をステップＳ８６に進める。社内アクセスであるか否かは、例えば、ユーザ情報管理部１３０は、データ記憶部１１０に記憶されたユーザ管理テーブル１１１を参照して当該ユーザＩＤに対応する社内判定ドメインを取得し、これが現在のアクセス元のドメイン名と一致するか否かによって判定できる。
【０１７０】
［ステップＳ８４］ユーザ情報管理部１３０は、データ記憶部１１０に記憶されたユーザ管理テーブル１１１を参照して、ユーザＩＤに対応する鍵配置場所ＵＲＩを取得する。そして、ユーザ情報管理部１３０は取得した鍵配置場所ＵＲＩとスケジュールデータとをクライアントプログラム構成部１４０に出力する。
【０１７１】
［ステップＳ８５］クライアントプログラム構成部１４０は、データ記憶部１１０に記憶されたひな型に基づいて、ＨＴＭＬ文書５５０ａを生成する。具体的には、クライアントプログラム構成部１４０は、取得した鍵配置場所ＵＲＩに応じたコードを生成し、ひな型に挿入する。例えば、ＨＴＭＬ文書５５０ａのコード５５２ａに含まれる“ｈｔｔｐ：／／ｓａｌｅｓ．ｓｈａｎａｉ．ｅｘａｍｐｌｅ．ｃｏｍ／ｋｅｙ．ｊｓｏｎｐ”の箇所が鍵配置場所ＵＲＩに応じたコードに相当する。また、クライアントプログラム構成部１４０は、スケジュールデータの内容により、予定閲覧画面５５０の予定一覧表示部５５２に対応するコードを生成する。具体的には、ＨＴＭＬ文書５５０ａの“ｔａｂｌｅ”タブで括られた箇所が予定一覧表示部５５２に対応するコードに相当する。クライアントプログラム構成部１４０は、生成したＨＴＭＬ文書５５０ａとその他の必要なファイル群を送信部１５０に出力する。
【０１７２】
［ステップＳ８６］クライアントプログラム構成部１４０は、データ記憶部１１０に記憶されたひな型と、スケジュールデータの内容と、に基づいて、ＨＴＭＬ文書を生成する。このとき、クライアントプログラム構成部１４０はスケジュールデータに暗号化部分が含まれる場合、当該部分は暗号化された状態でＨＴＭＬ文書に挿入する。そして、クライアントプログラム構成部１４０は、その暗号化部分を特定する。
【０１７３】
［ステップＳ８７］クライアントプログラム構成部１４０は、特定した暗号化部分を所定の文字列に置換してＨＴＭＬ文書５６０ａを生成する。置換用の文字列は、データ記憶部１１０に予め格納される。ＨＴＭＬ文書５６０ａの例では、“社外秘”の文字列が対応する。クライアントプログラム構成部１４０は、生成したＨＴＭＬ文書５５０ａとその他の必要なファイル群を送信部１５０に出力する。
【０１７４】
［ステップＳ８８］送信部１５０は、クライアントプログラム構成部１４０から取得したＨＴＭＬ文書５５０ａ（あるいはＨＴＭＬ文書５６０ａ）などをレスポンスに含めて端末装置２００（あるいは端末装置２００ａ）に送信する。
【０１７５】
このようにして、データ提供サーバ１００は、ＨＴＭＬ文書５５０ａ，５６０ａを生成し、端末装置２００，２００ａに送信する。
端末装置２００は、ＨＴＭＬ文書５５０ａに記述されたスクリプトに基づいて、鍵取得部２２０の機能を実現する。ここで、図２４のステップＳ７６に示した鍵取得処理は図２２で説明した手順と同一である。
【０１７６】
端末装置２００は、鍵を取得するとＨＴＭＬ文書５５０ａに基づいて予定閲覧画面５５０をモニタに表示させる。このとき、取得した鍵を用いて、ＨＴＭＬ文書５５０ａの暗号化部分を復号する。次に、図２４のステップＳ７７で示した端末装置２００の復号処理の手順について説明する。
【０１７７】
図２６は、復号処理を示すフローチャートである。以下、各処理をステップ番号に沿って説明する。
［ステップＳ９１］Ｗｅｂブラウザ２１０は、ＨＴＭＬ文書５５０ａのコード５５３ａの記述に基づいて復号部２３２を実現する。復号部２３２は、ＨＴＭＬ文書５５０ａに含まれる各データ項目に関して以下のステップＳ９２〜Ｓ９５を繰り返し実行する。
【０１７８】
［ステップＳ９２］復号部２３２は、タグ“ｔｄ”の要素（データ）を抽出する。
［ステップＳ９３］復号部２３２は、抽出したデータが暗号化されているか否かを判定する。暗号化されている場合、処理をステップＳ９４に進める。暗号化されていない場合、処理をステップＳ９６に進める。復号部２３２は、抽出したデータの先頭に所定の文字列（“｛ｅｎｃ：”）が含まれているか否かによって、当該データが暗号化されているか否かを判定することができる。
【０１７９】
［ステップＳ９４］復号部２３２は、鍵取得部２２０が取得した鍵を用いて抽出したデータを復号する。復号部２３２は、鍵取得部２２０が出力した所定の変数の値を参照することで鍵を取得できる。復号処理の具体的な内容は、図１５のコード５４２ｂに基づく処理の通りである。復号部２３２は、当該データに付加された所定の文字列を除去した後のデータについて復号を行う。
【０１８０】
［ステップＳ９５］復号部２３２は、ＨＴＭＬ文書５５０ａの当該タグの要素を復号後のデータに置換する。
［ステップＳ９６］復号部２３２は、タグ“ｔｄ”の要素全てについて処理済みであるか否かを判定する。全て処理済みである場合、処理を完了する。未処理のものがある場合、処理をステップＳ９１に進める。
【０１８１】
このようにして、復号部２３２は復号処理を行う。Ｗｅｂブラウザ２１０は、復号部２３２による復号後のＨＴＭＬ文書に基づいて、予定閲覧画面５５０をモニタに表示させる。
【０１８２】
図２７は、第２の実施の形態のデータ閲覧方法の具体例を示す図である。データ提供サーバ１００は、例えばサービス事業者の構内に設置される。データ記憶部１１０には、少なくとも一部が暗号化されたユーザデータが格納されている。なお、データ記憶部１１０は、データ提供サーバ１００に設けられてもよいし、別個の記憶装置として設けられてもよい。
【０１８３】
端末装置２００および鍵管理サーバ３００は、ユーザ会社の社内に設置される。端末装置２００は、データ提供サーバ１００にアクセスしてユーザ認証された後、予定閲覧画面のリクエストを送信する。すると、端末装置２００は、データ提供サーバ１００から、データ記憶部１１０に記憶されたデータおよび当該データの暗号化部分を復号するための鍵のＵＲＩを取得できる（ＳＴ１１）。
【０１８４】
そして、端末装置２００は、取得したＵＲＩに基づき鍵管理サーバ３００から鍵を取得し、データの暗号化部分を復号する（ＳＴ１２）。
これにより、端末装置２００はデータ提供サーバ１００で管理されるデータを適正に復号し、ユーザにその内容を提供できる。その際、鍵はサービス事業者ではなく、自社内で管理できるので、サービス事業者に鍵を不正に取得されるおそれがない。よって、データの安全性を向上できる。また、ユーザ会社とサービス事業者との間のネットワークに暗号処理するための特別の装置を設ける必要がない。すなわち、端末装置２００は、データ提供サーバ１００が提供するアプリケーションの機能により、当該暗号処理を行えるので、サービスの利用開始に伴うコストを一層削減できる。
【０１８５】
更に、端末装置２００ａは、ユーザ会社の社員が、ユーザ会社の社外で利用するコンピュータである。端末装置２００ａは、データ提供サーバ１００にアクセスしてユーザ認証されると、データ記憶部１１０に記憶されたデータを取得できる。このとき、データ提供サーバ１００は、提供するデータのうち暗号化部分を所定の文字列（例えば社外秘）に置換する。これにより、社外からのアクセスに対するデータの安全性を向上できる。また、社外からのアクセスに対して、暗号化部分につき無意味な情報の提示を防止できる。
【０１８６】
また、端末装置５００は、第三者が利用するコンピュータである。端末装置５００は、ネットワーク２０にアクセスすることはできず、鍵を取得することはできない（ＳＴ３１）。このため、サービス事業者からデータ記憶部１１０に記憶されたデータを不正に取得したとしても、暗号化部分を閲覧することはできない。すなわち、第三者に対してもデータの安全性を向上できる。
【０１８７】
［第３の実施の形態］
以下、第３の実施の形態を図面を参照して詳細に説明する。前述の第２の実施の形態との相違点について主に説明し、同様の事項に関しては説明を省略する。
【０１８８】
第２の実施の形態では、データ提供サーバ１００に暗号化部分を含むユーザデータを格納することとした。これに対し、第３の実施の形態では、ユーザデータをユーザ会社内のネットワーク２０に接続されたデータ管理サーバ３００ａに格納する。より具体的には、スケジュールに含まれる日時の情報など、サービス事業者に開示してもよい部分に関しては、データ提供サーバ１００に格納するが、スケジュールの場所や内容などの部分はデータ管理サーバ３００ａに格納する。これにより、機密部分の安全性を一層向上できる。以下では、このような情報処理システムに関して具体的に説明する。
【０１８９】
図２８は、第３の実施の形態に係る情報処理システムを示す図である。この情報処理システムは、ユーザ会社に業務サービスを提供するＷｅｂシステムである。業務のためのデータは、サービス事業者が管理するデータ提供サーバ１００に格納される。この情報処理システムでは、データ提供サーバ１００、端末装置２００，２００ａおよび鍵管理サーバ３００およびデータ管理サーバ３００ａがネットワーク１０，２０および通信装置１０ａを介して接続されている。
【０１９０】
ここで、データ提供サーバ１００、端末装置２００，２００ａ、鍵管理サーバ３００、ネットワーク１０，２０および通信装置１０ａは、図２において同一の符号を付して説明した第２の実施の形態の各構成と同一である。
【０１９１】
ただし、データ提供サーバ１００が記憶するスケジュールデータは、スケジュールの場所や内容などの機密部分につき暗号化されたＵＲＩが設定されたものである。このＵＲＩは、データ管理サーバ３００ａに記憶された当該機密部分の内容の所在を示すものである。データ提供サーバ１００は、当該スケジュールデータとともに暗号化されたＵＲＩを復号するための鍵を記憶する。
【０１９２】
データ管理サーバ３００ａは、ネットワーク２０に接続されている。データ管理サーバ３００ａは、スケジュールに含まれる機密部分（場所や概要など）の情報を記憶・管理する。データ管理サーバ３００ａは、端末装置２００からリクエストを受信すると、それに応じた機密部分の情報を端末装置２００に応答する。
【０１９３】
なお、データ管理サーバ３００ａも図３で示したデータ提供サーバ１００と同様のハードウェア構成により実現することができる。
また、第３の実施の形態のデータ提供サーバ１００、端末装置２００および鍵管理サーバ３００の機能構成は、第２の実施の形態で示した機能構成と同様である。ただし、端末装置２００のＷｅｂブラウザ２１０で実現される機能につき以下の点が異なる。
【０１９４】
図２９は、第３の実施の形態の端末装置の機能構成を示す図である。端末装置２００は、Ｗｅｂブラウザ２１０、鍵取得部２２０および暗号処理部２３０を有する。これらの機能は、所定のプログラムを端末装置２００のＣＰＵが実行することで実現される。
【０１９５】
Ｗｅｂブラウザ２１０は、データ提供サーバ１００に予定閲覧画面のリクエストを送信する。すると、Ｗｅｂブラウザ２１０は、データ提供サーバ１００からデータ内容の所在を示す暗号化されたＵＲＩと、それを復号するための鍵のＵＲＩと、を記述したＨＴＭＬ文書を含むレスポンスを受信する。
【０１９６】
鍵取得部２２０は、鍵のＵＲＩに基づいて、鍵管理サーバ３００より鍵を取得する。復号部２３２は、当該鍵によりデータ内容の所在を示す暗号化されたＵＲＩを復号する。
Ｗｅｂブラウザ２１０は、復号部２３２が復号したＵＲＩに基づいて、データ管理サーバ３００ａからスケジュールの内容を取得し、取得した内容を端末装置２００に接続されたモニタに表示させる。
【０１９７】
図３０は、第３の実施の形態のスケジュールデータの内容を例示する図である。（Ａ）に示すスケジュールデータ４００ａは、暗号化前を示している。（Ｂ）に示すスケジュールデータ４１０ａは、暗号化後を示している。
【０１９８】
スケジュールデータ４００ａは、スケジュールの内容を示す複数のデータ項目を有している。データ項目には、場所（ＬＯＣＡＴＩＯＮ）４０１ａおよび概要（ＳＵＭＭＡＲＹ）４０２ａが含まれる。ここで、場所４０１ａおよび概要４０２ａの各データ項目は、図１０で示したスケジュールデータ４００のデータ項目である場所４０１および概要４０２に対応する。
【０１９９】
場所４０１ａには、例えば“＜ｈｔｔｐ：／／ｓｈａｎａｉ．ｅｘａｍｐｌｅ．ｃｏｍ／ｓｃｈｅｄｕｌｅ／ｔａｒｏｕ１．ｊｓｏｎｐ＞”という情報が設定されている。また、概要４０２ａには、例えば“＜ｈｔｔｐ：／／ｓｈａｎａｉ．ｅｘａｍｐｌｅ．ｃｏｍ／ｓｃｈｅｄｕｌｅ／ｔａｒｏｕ２．ｊｓｏｎｐ＞”という情報が設定されている。
【０２００】
Ｗｅｂブラウザ２１０は、図１３に示した予定登録画面５４０の登録ボタン５４７が押下されると、対応するデータ項目の内容をデータ管理サーバ３００ａに格納する。そして、該当するデータ項目を、その格納場所を示すＵＲＩに置換する。これは、場所４０１ａおよび概要４０２ａの部分が対応する。これにより、スケジュールデータ４００ａが生成される。
【０２０１】
更に、暗号化部２３１は、鍵管理サーバ３００から取得した鍵によって当該ＵＲＩを暗号化し、スケジュールデータ４１０ａを生成する。
スケジュールデータ４１０ａは、スケジュールデータ４００と同一のデータ項目を有している。データ項目には、場所４１１ａおよび概要４１２ａが含まれる。場所４１１ａは、場所４０１ａの暗号化後に対応する。概要４１２ａは、概要４０２ａの暗号化後に対応する。
【０２０２】
例えば、当該ユーザの暗号化対象として、場所と概要とが選択されている場合、スケジュールデータ４１０ａのように場所４１１ａおよび概要４１２ａに暗号化されたＵＲＩが設定される。そして、端末装置２００はスケジュールデータ４１０ａをデータ提供サーバ１００に送信する。データ提供サーバ１００はデータ記憶部１１０に記憶されたデータ管理テーブル１１３にスケジュールデータ４１０ａの内容を登録する。
【０２０３】
図３１は、第３の実施の形態のデータ閲覧方法の具体例を示す図である。データ提供サーバ１００は、例えばサービス事業者の構内に設置される。データ記憶部１１０には、少なくとも一部が暗号化されたユーザデータが格納されている。なお、データ記憶部１１０は、データ提供サーバ１００に設けられてもよいし、別個の記憶装置として設けられてもよい。
【０２０４】
端末装置２００、鍵管理サーバ３００およびデータ管理サーバ３００ａは、ユーザ会社の社内に設置される。端末装置２００は、データ提供サーバ１００にアクセスしてユーザ認証後、予定閲覧画面のリクエストを送信する。すると、端末装置２００は、データ提供サーバ１００から、データ記憶部１１０に記憶されたデータおよび当該データの暗号化されたＵＲＩ部分を復号するための鍵のＵＲＩを含むレスポンスを受信する（ＳＴ４１）。暗号化されたＵＲＩ部分とは、図３０で示した場所４１１ａおよび概要４１２ａ（ただし、データ項目を示す文字列“ＬＯＣＡＴＩＯＮ”などを除く）に対応する。
【０２０５】
そして、端末装置２００は、取得したＵＲＩに基づき鍵管理サーバ３００から鍵を取得する（ＳＴ４２）。端末装置２００は、取得した鍵により、データの暗号化されたＵＲＩ部分を復号する（ＳＴ４３）。復号後のＵＲＩ部分は、図３０で示した場所４０１ａおよび概要４０２ａ（ただし、データ項目を示す文字列を除く）に対応する。更に、端末装置２００は、復号したＵＲＩに基づいて、ＵＲＩに対応する項目内容をデータ管理サーバ３００ａから取得する（ＳＴ４４）。なお、データ提供サーバ１００は、端末装置２００にＳＴ４４の処理を実行させるためのスクリプトを含むＨＴＭＬ文書を生成し、ＳＴ４１のレスポンスに含める。端末装置２００は、当該ＨＴＭＬ文書のスクリプトを実行することで、ＳＴ４４の処理を実現できる。
【０２０６】
このように、第３の実施の形態の情報処理システムによっても、第２の実施の形態と同様の効果を奏することができる。特に、機密内容を社内のデータ管理サーバ３００ａに格納することで、当該内容の安全性を一層向上できる。
【０２０７】
また、端末装置２００ａが社外からアクセスした場合には、データ提供サーバ１００は、暗号化されたＵＲＩ部分を所定の文字列（例えば、社外秘）に置換して、端末装置２００ａにレスポンスを送信する。これにより、第２の実施の形態と同様、社外からのアクセスに対するデータの安全性を向上できる。また、社外からのアクセスに対して、暗号化部分につき無意味な情報の提示を防止できる。
【０２０８】
また、データ提供サーバ１００は、ＨＴＭＬ文書に含まれるスクリプトとして、端末装置２００に鍵を取得させるプログラムを送信するものとしたが、端末装置２００で実行可能なＨＴＭＬ文書以外のデータ形式によって、当該プログラムを送信してもよい。
【０２０９】
更に、暗号化時に使用する鍵と、復号時に使用する鍵とを、同一にしてもよいし別個の鍵にしてもよい。その場合、暗号化時用の鍵のＵＲＩと、復号時用の鍵のＵＲＩと、がユーザ管理テーブル１１１に登録される。そして、データ提供サーバ１００は、暗号化時および復号時に応じた鍵をユーザ管理テーブル１１１から取得して、端末装置２００に送信する。
【０２１０】
なお、上記情報処理システムでは、ユーザ会社の社員のスケジュールを管理する業務サービスを例示したが、これに限らない。例えば、掲示板、電子メールなどのその他のグループウェア機能、勤怠管理や給与管理などの機能を提供する業務サービスに適用してもよい。これにより、これらの業務サービスが提供する文書の機密部分の安全性を容易に向上することができる。
【０２１１】
以上、本発明のデータ提供方法、データ提供装置およびデータ提供プログラムを図示の実施の形態に基づいて説明したが、これらに限定されるものではなく、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。更に、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０２１２】
１  データ提供装置
１ａ，１ｂ  記憶部
１ｃ  受信部
１ｄ  処理部
１ｅ  送信部
２  端末装置
３  情報処理装置
【図１】
0005609309.tif 000002
【図２】
0005609309.tif 000003
【図３】
0005609309.tif 000004
【図４】
0005609309.tif 000005
【図５】
0005609309.tif 000006
【図６】
0005609309.tif 000007
【図７】
0005609309.tif 000008
【図８】
0005609309.tif 000009
【図９】
0005609309.tif 000010
【図１０】
0005609309.tif 000011
【図１１】
0005609309.tif 000012
【図１２】
0005609309.tif 000013
【図１３】
0005609309.tif 000014
【図１４】
0005609309.tif 000015
【図１５】
0005609309.tif 000016
【図１６】
0005609309.tif 000017
【図１７】
0005609309.tif 000018
【図１８】
0005609309.tif 000019
【図１９】
0005609309.tif 000020
【図２０】
0005609309.tif 000021
【図２１】
0005609309.tif 000022
【図２２】
0005609309.tif 000023
【図２３】
0005609309.tif 000024
【図２４】
0005609309.tif 000025
【図２５】
0005609309.tif 000026
【図２６】
0005609309.tif 000027
【図２７】
0005609309.tif 000028
【図２８】
0005609309.tif 000029
【図２９】
0005609309.tif 000030
【図３０】
0005609309.tif 000031
【図３１】
0005609309.tif 000032