(57)【特許請求の範囲】
【請求項１】
少なくとも一つのサーバとネットワーク経由で通信するための通信手段と、
暗号化されてサーバに保存されているデータを、前記通信手段を介して受信し、ユーザに固有のユーザ秘密鍵を使用して、前記データを復号するためのデータ処理手段と、
自装置に固有の機器秘密鍵及び機器公開鍵を保持する機器鍵保持手段と、
前記ユーザ秘密鍵が自装置内に保持されていない場合に、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信する要求手段と、
前記ユーザ秘密鍵が自装置内に保持されている場合に、他装置による前記ユーザ秘密鍵の要求を受信し、該要求に応答する応答メッセージに、自装置の機器公開鍵を含めて送信する応答手段と、
自装置が保持している機器公開鍵の確認用情報を第１の公開鍵情報として提示し、他装置から送信されてきた機器公開鍵の確認用情報を第２の公開鍵情報として提示する提示手段と、
前記提示手段により自装置が提示した第１の公開鍵情報と他装置が提示した第２の公開鍵情報が一致し、且つ、自装置が提示した第２の公開鍵情報と他装置が提示した第１の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可する許可手段と、
前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、他装置から送信されてきた機器公開鍵で暗号化して送信する送信手段と、
他装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、自装置内に保持するユーザ鍵保持手段と
を備えることを特徴とするデータ処理装置。
【請求項２】
前記送信手段は、送信する前記ユーザ秘密鍵の共有のための情報に、自装置が保持している機器秘密鍵で署名する手段を含み、
前記ユーザ鍵保持手段は、他装置から送信されてきた前記ユーザ秘密鍵の共有のための情報に付加された署名を、該他装置から前記要求メッセージへの応答として送信されてきた該他装置の機器公開鍵に基づいて検証する手段を含むことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記許可手段は、自装置が提示した第２の公開鍵情報と他装置が提示した第１の公開鍵情報が一致することを条件として、前記応答手段による応答メッセージの送信を許可し、
前記応答手段が送信する応答メッセージに、前記送信手段が前記ユーザ秘密鍵の共有のために送信する情報を含ませ、
前記許可手段は、自装置が提示した第１の公開鍵情報と他装置が提示した第２の公開鍵情報が一致することを条件として、前記ユーザ鍵保持手段によるユーザ秘密鍵の保持を許可するものであることを特徴とする請求項１又は２に記載のデータ処理装置。
【請求項４】
他装置が提示した第１及び第２の公開鍵情報を読み込む読込手段を更に備え、
前記許可手段は、自装置が提示した第１及び第２の公開鍵情報と、前記読込手段により読み込まれた第２及び第１の公開鍵情報とを、それぞれ比較する手段を含むことを特徴とする請求項１〜３のいずれか１項に記載のデータ処理装置。
【請求項５】
少なくとも一つのサーバと、
ネットワーク経由で前記少なくとも一つのサーバと通信する複数のデータ処理装置と
を備える秘密鍵共有システムであって、
前記複数のデータ処理装置は、暗号化されてサーバに保存されているデータを受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第１及び第２のデータ処理装置を含み、
前記第１及び第２のデータ処理装置は、それぞれ、自装置に固有の機器秘密鍵及び機器公開鍵を保持する機器鍵保持手段を有し、
前記第２のデータ処理装置は、前記ユーザ秘密鍵を保持しており、
前記第１のデータ処理装置は、
他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信する要求手段と、
前記第１のデータ処理装置が保持している機器公開鍵の確認用情報を第１の公開鍵情報として提示し、前記第２のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第２の公開鍵情報として提示する提示手段と、
前記第２のデータ処理装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、保持するユーザ鍵保持手段とを備え、
前記第２のデータ処理装置は、
前記要求メッセージに対する応答メッセージに、自装置の機器公開鍵を含めて送信する応答手段と、
前記第２のデータ処理装置が保持している機器公開鍵の確認用情報を第３の公開鍵情報として提示し、前記第１のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第４の公開鍵情報として提示する提示手段と、
前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、前記第１のデータ処理装置から送信されてきた機器公開鍵で暗号化して送信する送信手段とを備え、
前記第１の公開鍵情報と前記第４の公開鍵情報が一致し、且つ、前記第２の公開鍵情報と前記第３の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可することを特徴とする秘密鍵共有システム。
【請求項６】
前記第１及び第２のデータ処理装置は、同一ユーザが双方のデータ処理装置の提示手段による公開鍵情報の提示を受けることができる物理的距離、もしくは、一方のデータ処理装置の提示手段により提示された公開鍵情報を他方のデータ処理装置に付属する読込手段が読み込むことのできる物理的距離で、前記ネットワークに接続されたものであることを特徴とする請求項５に記載の秘密鍵共有システム。
【請求項７】
前記少なくとも一つのサーバは、管理サーバを含み、
前記管理サーバは、
前記第１及び第２のデータ処理装置からのログインの要求に基づいて認証を行い、認証に失敗した場合にログインを拒否する手段と、
前記第１のデータ処理装置がログインに成功したことを条件として、ログインに成功している前記第２のデータ処理装置に対して、前記要求メッセージを転送する手段とを備えることを特徴とする請求項５又は６に記載の秘密鍵共有システム。
【請求項８】
前記管理サーバは、
ユーザについての認証の成否に基づいて前記ログインの成否を判断するものであり、
ログインに成功しているユーザと該ログインの要求を送信してきたデータ処理装置とを対応させて記憶する手段を更に備え、
前記第１のデータ処理装置からログインしてきたユーザと対応して記憶されている他のデータ処理装置を検索し、検索されたデータ処理装置を前記第２のデータ処理装置として前記転送を行うものであることを特徴とする請求項７に記載の秘密鍵共有システム。
【請求項９】
前記第２のデータ処理装置は、
前記ログインの要求に、自装置が保持している機器秘密鍵で署名する手段を更に備え、
前記管理サーバは、
前記ユーザ秘密鍵が共有されたデータ処理装置と該データ処理装置の機器公開鍵とを対応させて記憶する手段と、
前記ログインの要求に付加された署名を、記憶された前記第２のデータ処理装置の機器公開鍵に基づいて検証し、検証に失敗した場合にログインを拒否する手段とを更に備えることを特徴とする請求項７又は８に記載の秘密鍵共有システム。
【請求項１０】
前記第１及び第２のデータ処理装置は、ログインが成功すると、前記データ処理手段で扱うデータが保存されているサーバへアクセスするための情報を前記管理サーバから取得可能となるものであることを特徴とする請求項７〜９のいずれか１項に記載の秘密鍵共有システム。
【請求項１１】
前記管理サーバは、
複数のユーザ各々のユーザ公開鍵を含む情報を記憶する手段と、
各データ処理装置からの取得要求に応じて、該取得要求により特定されるユーザのユーザ公開鍵を含む情報を、該データ処理装置へ返送する手段とを更に備え、
前記各データ処理装置は、
データの利用を許可するユーザのユーザ公開鍵を使用して暗号化した該データを、サーバに保存させる手段を有することを特徴とする請求項７〜１０のいずれか１項に記載の秘密鍵共有システム。
【請求項１２】
前記第１及び第２のデータ処理装置の一方が、自装置のユーザ以外のユーザ公開鍵を取得して、記憶しており、
前記第１及び第２のデータ処理装置の他方のユーザは、前記一方のデータ処理装置のユーザと同一であり、
前記一方のデータ処理装置は、
自装置のユーザ以外のユーザ公開鍵を、自装置のユーザのユーザ秘密鍵で署名して、送信する手段を備え、
前記管理サーバは、
前記一方のデータ処理装置から送信された情報を署名付きで記憶するものであり、
前記他方のデータ処理装置は、
前記管理サーバに保存された署名付きの情報を取得し、該署名を自装置のユーザのユーザ公開鍵に基づいて検証する手段と、
前記検証の成功を条件として、取得した前記情報から前記自装置のユーザ以外のユーザ公開鍵を取り出して、記憶する手段とを備えることを特徴とする請求項７〜１１のいずれか１項に記載の秘密鍵共有システム。
【請求項１３】
暗号化されてサーバに保存されているデータを受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第１及び第２のデータ処理装置に対し、ネットワーク経由で通信するための通信手段と、
前記第１及び第２のデータ処理装置からのログインの要求に基づいて認証を行い、認証に失敗した場合にログインを拒否する制御手段と、
ログインに成功した前記第１のデータ処理装置から、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージを受信する受信手段と、
ログインに成功しており、前記ユーザ秘密鍵を保持している前記第２のデータ処理装置に対して、前記要求メッセージを転送することにより、前記第１のデータ処理装置との間での前記ユーザ秘密鍵の共有の許否の決定及び共有のための送信を実行可能とする転送手段と
を備えることを特徴とする管理サーバ。
【請求項１４】
暗号化されてサーバに保存されているデータをネットワーク経由で受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第１及び第２のデータ処理装置を含むシステムにおける、秘密鍵共有方法であって、
前記第１及び第２のデータ処理装置は、それぞれ、自装置に固有の機器秘密鍵及び機器公開鍵を保持しており、
前記第２のデータ処理装置は、前記ユーザ秘密鍵を保持しており、
前記第１のデータ処理装置は、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信し、
前記第２のデータ処理装置は、前記要求メッセージに対する応答メッセージに、自装置の機器公開鍵を含めて送信し、
前記第１のデータ処理装置は、自装置が保持している機器公開鍵の確認用情報を第１の公開鍵情報として提示し、前記第２のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第２の公開鍵情報として提示し、
前記第２のデータ処理装置は、自装置が保持している機器公開鍵の確認用情報を第３の公開鍵情報として提示し、前記第１のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第４の公開鍵情報として提示し、
前記第１の公開鍵情報と前記第４の公開鍵情報が一致し、且つ、前記第２の公開鍵情報と前記第３の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可し、
前記第２のデータ処理装置は、前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、前記第１のデータ処理装置から送信されてきた機器公開鍵で暗号化して送信し、
前記第１のデータ処理装置は、前記第２のデータ処理装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、保持することを特徴とする秘密鍵共有方法。
【請求項１５】
暗号化されてサーバに保存されているデータをネットワーク経由で受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有するコンピュータ装置に、前記ユーザ秘密鍵の共有を可能とさせるためのプログラムであって、
自装置に固有の機器秘密鍵及び機器公開鍵を保持させるためのプログラムコードと、
前記ユーザ秘密鍵が自装置内に保持されていない場合に、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信させるためのプログラムコードと、
前記ユーザ秘密鍵が自装置内に保持されている場合に、他装置による前記ユーザ秘密鍵の要求を受信し、該要求に応答する応答メッセージに、自装置の機器公開鍵を含めて送信させるためのプログラムコードと、
自装置が保持している機器公開鍵の確認用情報を第１の公開鍵情報として提示させ、他装置から送信されてきた機器公開鍵の確認用情報を第２の公開鍵情報として提示させるためのプログラムコードと、
自装置が提示した第１の公開鍵情報と他装置が提示した第２の公開鍵情報が一致し、且つ、自装置が提示した第２の公開鍵情報と他装置が提示した第１の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可するためのプログラムコードと、
前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、他装置から送信されてきた機器公開鍵で暗号化して送信させるためのプログラムコードと、
他装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、自装置内に保持させるためのプログラムコードとを備えることを特徴とするプログラム。
【請求項１６】
複数のデータ処理装置とネットワーク経由で通信するための通信手段を有するコンピュータ装置を、秘密鍵共有のための管理サーバとして動作させるためのプログラムであって、
暗号化されてサーバに保存されているデータを受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第１及び第２のデータ処理装置から、ログインの要求を受信するためのプログラムコードと、
前記ログインの要求に基づいて認証を行い、認証に失敗した場合にログインを拒否するためのプログラムコードと、
ログインに成功した前記第１のデータ処理装置から、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージを受信するためのプログラムコードと、
ログインに成功しており、前記ユーザ秘密鍵を保持している前記第２のデータ処理装置に対して、前記要求メッセージを転送することにより、前記第１のデータ処理装置との間での前記ユーザ秘密鍵の共有の許否の決定及び共有のための送信を実行可能とするためのプログラムコードとを備えることを特徴とするプログラム。
【請求項１７】
少なくとも一つのサーバとネットワーク経由で通信するための通信手段と、
ユーザに固有のユーザ公開鍵を使用して、データを暗号化し、暗号化されたデータがサーバに保存されるように、前記通信手段を介して送信するためのデータ処理手段と、
自装置に固有の機器秘密鍵及び機器公開鍵を保持する機器鍵保持手段と、
前記ユーザ公開鍵が自装置内に保持されていない場合に、他装置が保持している前記ユーザ公開鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信する要求手段と、
前記ユーザ公開鍵が自装置内に保持されている場合に、他装置による前記ユーザ公開鍵の要求を受信し、該要求に応答する応答メッセージに、自装置の機器公開鍵を含めて送信する応答手段と、
自装置が保持している機器公開鍵の確認用情報を第１の公開鍵情報として提示し、他装置から送信されてきた機器公開鍵の確認用情報を第２の公開鍵情報として提示する提示手段と、
前記提示手段により自装置が提示した第１の公開鍵情報と他装置が提示した第２の公開鍵情報が一致し、且つ、自装置が提示した第２の公開鍵情報と他装置が提示した第１の公開鍵情報が一致することを条件として、前記ユーザ公開鍵の共有を許可する許可手段と、
前記ユーザ公開鍵の共有のために、自装置が保持している前記ユーザ公開鍵を、他装置から送信されてきた機器公開鍵で暗号化して送信する送信手段と、
他装置から送信されてきた前記ユーザ公開鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ公開鍵を、自装置内に保持するユーザ鍵保持手段と
を備えることを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の情報機器が同一の秘密鍵をネットワーク経由で共有する技術に関する。
【背景技術】
【０００２】
従来のコンピュータ利用は、ユーザである企業や個人等が、コンピュータのハードウェア、ソフトウェア、データ等を、自分自身で保有し、管理していたが、近年普及してきたクラウド・コンピューティングでは、ユーザは、自身の手元の機器が接続したネットワークの向こう側（データセンタ等）からサービスを受け、クラウド・サービス提供事業者に対してサービス利用料金を支払うという形態が多く採られる。
【０００３】
クラウド・サービスの利点の一つは、ネットワークへの接続環境さえあれば、ＵＳＢメモリ等のメモリ媒体を持ち歩かなくても、自分の所有するデータの保存と取り出しができることにある。さらに、ユーザがデータセンタの設備を所有せず、多数のユーザが一つのデータセンタを利用する形態とすることより、各ユーザはデータセンタの持つ高い性能を低コストで利用することができる。
【０００４】
クラウド・サービスのうち、ユーザのデータをネットワーク上のサーバに保存するサービスを、オンライン・ストレージ・サービスともいうが、このサービスをユーザが安心して利用するためには、ネットワークの向こうにサーバがあり、そこに自分のデータを蓄積して利用するという形態に対して、ユーザが信頼を持てるようにする必要がある。特に、インターネットという公衆回線を利用し、複数の企業でサーバを共有するような場合に、クラウドを運営する事業者が、どのようなセキュリティ対策を講じるかが問題となる。
【０００５】
現在のオンライン・ストレージでは、ネットワーク上を流れるユーザのデータを第三者に盗聴されないように、機器とサーバ間の通信路を、ＳＳＬ等の技術を使って暗号化した上で、データを送付している。また、ネットワーク上のサーバ側に暗号鍵を持ち、サーバ上のハードディスクにデータを保存するときに暗号化を行い、ハードディスクが盗まれてもユーザのデータが見られないようにしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−５５２０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した現状のオンライン・ストレージ・サービスでは、サーバ側に暗号鍵があるため、この暗号鍵を用いることで、ハードディスクに保存されたユーザのデータを見ることができてしまう。
【０００８】
このようにユーザのデータをネットワーク上のサーバに預けた場合に発生する情報漏えいのリスクを低減するためには、ユーザ側で暗号化したデータをサーバへ送信し、サーバ側にはその暗号化を解くための鍵を持たせないことにより、ストレージ・サービスの提供業者がデータを読むことができないようにすることが望まれる。
【０００９】
そのためには、データの暗号化を解くための鍵（秘密鍵）を、盗まれたり紛失したりしないよう、ユーザ側で保存し、管理する必要がある。単純な解決方法は、秘密鍵を一つの機器内部にのみ保存しそこから一切出力しないことにより、サーバから取得したデータを読むことができる機器を一つだけに限定することであるが、これではクラウド・サービスの利点を生かすことができない。
【００１０】
すなわち、クラウド・サービスでは、データがネットワーク上のサーバにあって、どの機器からアクセスしてもそのデータを利用できることが利点の一つであるから、この利点を生かしながら、データを読むことができる機器を限定するためには、データを読むことができる複数の機器を限定し、その複数の機器の間で秘密鍵を共有することが望まれる。
【００１１】
このように複数の機器で秘密鍵を共有するためには、ＵＳＢメモリ等を使い、人間の手を介して秘密鍵を受け渡しするのが、従来の方法であった。特許文献１には、途中でＵＳＢメモリを紛失しても中の情報が悪用されないよう、受け渡しする情報を渡す先の機器の公開鍵で暗号化してＵＳＢメモリに記憶することが、開示されている。
【００１２】
しかし、クラウド・サービスの大きな利点は、ＵＳＢメモリ等のメモリ媒体を持ち歩かなくてよいことにあるのだから、ＵＳＢメモリで秘密鍵の受け渡しをすることは、ユーザの利便性を著しく損ねることになる。
【００１３】
本発明は、上記の事情に鑑み、サーバ側でユーザのデータの暗号化を解くための秘密鍵を持たないオンライン・ストレージ・サービスを実現しつつ、ユーザの複数の機器の間でこの秘密鍵を安全且つ簡単にネットワーク経由で共有することを可能にする技術を、提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明に係るデータ処理装置は、少なくとも一つのサーバとネットワーク経由で通信するための通信手段と、暗号化されてサーバに保存されているデータを、前記通信手段を介して受信し、ユーザに固有のユーザ秘密鍵を使用して、前記データを復号するためのデータ処理手段と、自装置に固有の機器秘密鍵及び機器公開鍵を保持する機器鍵保持手段と、前記ユーザ秘密鍵が自装置内に保持されていない場合に、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信する要求手段と、前記ユーザ秘密鍵が自装置内に保持されている場合に、他装置による前記ユーザ秘密鍵の要求を受信し、該要求に応答する応答メッセージに、自装置の機器公開鍵を含めて送信する応答手段と、自装置が保持している機器公開鍵の確認用情報を第１の公開鍵情報として提示し、他装置から送信されてきた機器公開鍵の確認用情報を第２の公開鍵情報として提示する提示手段と、前記提示手段により自装置が提示した第１の公開鍵情報と他装置が提示した第２の公開鍵情報が一致し、且つ、自装置が提示した第２の公開鍵情報と他装置が提示した第１の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可する許可手段と、前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、他装置から送信されてきた機器公開鍵で暗号化して送信する送信手段と、他装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、自装置内に保持するユーザ鍵保持手段とを備える。
【００１５】
上記のデータ処理装置において、前記送信手段は、送信する前記ユーザ秘密鍵の共有のための情報に、自装置が保持している機器秘密鍵で署名する手段を含み、前記ユーザ鍵保持手段は、他装置から送信されてきた前記ユーザ秘密鍵の共有のための情報に付加された署名を、該他装置から前記要求メッセージへの応答として送信されてきた該他装置の機器公開鍵に基づいて検証する手段を含むようにしてもよい。
【００１６】
上記のデータ処理装置において、前記許可手段は、自装置が提示した第２の公開鍵情報と他装置が提示した第１の公開鍵情報が一致することを条件として、前記応答手段による応答メッセージの送信を許可し、前記応答手段が送信する応答メッセージに、前記送信手段が前記ユーザ秘密鍵の共有のために送信する情報を含ませ、前記許可手段は、自装置が提示した第１の公開鍵情報と他装置が提示した第２の公開鍵情報が一致することを条件として、前記ユーザ鍵保持手段によるユーザ秘密鍵の保持を許可するものであってもよい。
【００１７】
上記のデータ処理装置において、他装置が提示した第１及び第２の公開鍵情報を読み込む読込手段を更に備え、前記許可手段は、自装置が提示した第１及び第２の公開鍵情報と、前記読込手段により読み込まれた第２及び第１の公開鍵情報とを、それぞれ比較する手段を含むようにしてもよい。
【００１８】
本発明に係る秘密鍵共有システムは、少なくとも一つのサーバと、ネットワーク経由で前記少なくとも一つのサーバと通信する複数のデータ処理装置とを備え、前記複数のデータ処理装置は、暗号化されてサーバに保存されているデータを受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第１及び第２のデータ処理装置を含み、前記第１及び第２のデータ処理装置は、それぞれ、自装置に固有の機器秘密鍵及び機器公開鍵を保持する機器鍵保持手段を有し、前記第２のデータ処理装置は、前記ユーザ秘密鍵を保持しており、前記第１のデータ処理装置は、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信する要求手段と、前記第１のデータ処理装置が保持している機器公開鍵の確認用情報を第１の公開鍵情報として提示し、前記第２のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第２の公開鍵情報として提示する提示手段と、前記第２のデータ処理装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、保持するユーザ鍵保持手段とを備え、前記第２のデータ処理装置は、前記要求メッセージに対する応答メッセージに、自装置の機器公開鍵を含めて送信する応答手段と、前記第２のデータ処理装置が保持している機器公開鍵の確認用情報を第３の公開鍵情報として提示し、前記第１のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第４の公開鍵情報として提示する提示手段と、前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、前記第１のデータ処理装置から送信されてきた機器公開鍵で暗号化して送信する送信手段とを備え、前記第１の公開鍵情報と前記第４の公開鍵情報が一致し、且つ、前記第２の公開鍵情報と前記第３の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可する。
【００１９】
上記のシステムにおいて、前記第１及び第２のデータ処理装置は、同一ユーザが双方のデータ処理装置の提示手段による公開鍵情報の提示を受けることができる物理的距離、もしくは、一方のデータ処理装置の提示手段により提示された公開鍵情報を他方のデータ処理装置に付属する読込手段が読み込むことのできる物理的距離で、前記ネットワークに接続されたものであることが好ましい。
【００２０】
上記のシステムにおいて、前記少なくとも一つのサーバは、管理サーバを含み、この管理サーバが、前記第１及び第２のデータ処理装置からのログインの要求に基づいて認証を行い、認証に失敗した場合にログインを拒否する手段と、前記第１のデータ処理装置がログインに成功したことを条件として、ログインに成功している前記第２のデータ処理装置に対して、前記要求メッセージを転送する手段とを備えるようにしてもよい。
【００２１】
本発明に係る管理サーバは、暗号化されてサーバに保存されているデータを受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第１及び第２のデータ処理装置に対し、ネットワーク経由で通信するための通信手段と、前記第１及び第２のデータ処理装置からのログインの要求に基づいて認証を行い、認証に失敗した場合にログインを拒否する制御手段と、ログインに成功した前記第１のデータ処理装置から、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージを受信する受信手段と、ログインに成功しており、前記ユーザ秘密鍵を保持している前記第２のデータ処理装置に対して、前記要求メッセージを転送することにより、前記第１のデータ処理装置との間での前記ユーザ秘密鍵の共有の許否の決定及び共有のための送信を実行可能とする転送手段とを備える。
【００２２】
上記の管理サーバは、ユーザについての認証の成否に基づいて前記ログインの成否を判断するものであり、ログインに成功しているユーザと該ログインの要求を送信してきたデータ処理装置とを対応させて記憶する手段を更に備え、前記第１のデータ処理装置からログインしてきたユーザと対応して記憶されている他のデータ処理装置を検索し、検索されたデータ処理装置を前記第２のデータ処理装置として前記転送を行うものであってもよい。
【００２３】
上記の管理サーバは、前記ユーザ秘密鍵が共有されたデータ処理装置と該データ処理装置の機器公開鍵とを対応させて記憶する手段を更に備え、前記第２のデータ処理装置は、前記ログインの要求に、自装置が保持している機器秘密鍵で署名する手段を更に備え、前記管理サーバは、前記ログインの要求に付加された署名を、記憶された前記第２のデータ処理装置の機器公開鍵に基づいて検証し、検証に失敗した場合にログインを拒否する手段とを更に備えるようにしてもよい。
【００２４】
上記のシステムにおいて、前記第１及び第２のデータ処理装置は、ログインが成功すると、前記データ処理手段で扱うデータが保存されているサーバへアクセスするための情報を前記管理サーバから取得可能となるものであってもよい。
【００２５】
本発明に係る秘密鍵共有方法は、暗号化されてサーバに保存されているデータをネットワーク経由で受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第１及び第２のデータ処理装置を含むシステムにおいて、前記第１及び第２のデータ処理装置は、それぞれ、自装置に固有の機器秘密鍵及び機器公開鍵を保持しており、前記第２のデータ処理装置は、前記ユーザ秘密鍵を保持しており、前記第１のデータ処理装置は、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信し、前記第２のデータ処理装置は、前記要求メッセージに対する応答メッセージに、自装置の機器公開鍵を含めて送信し、前記第１のデータ処理装置は、自装置が保持している機器公開鍵の確認用情報を第１の公開鍵情報として提示し、前記第２のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第２の公開鍵情報として提示し、前記第２のデータ処理装置は、自装置が保持している機器公開鍵の確認用情報を第３の公開鍵情報として提示し、前記第１のデータ処理装置から送信されてきた機器公開鍵の確認用情報を第４の公開鍵情報として提示し、前記第１の公開鍵情報と前記第４の公開鍵情報が一致し、且つ、前記第２の公開鍵情報と前記第３の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可し、前記第２のデータ処理装置は、前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、前記第１のデータ処理装置から送信されてきた機器公開鍵で暗号化して送信し、前記第１のデータ処理装置は、前記第２のデータ処理装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、保持する。
【００２６】
本発明に係る一つのプログラムは、暗号化されてサーバに保存されているデータをネットワーク経由で受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有するコンピュータ装置に、前記ユーザ秘密鍵の共有を可能とさせるためのプログラムであって、自装置に固有の機器秘密鍵及び機器公開鍵を保持させるためのプログラムコードと、前記ユーザ秘密鍵が自装置内に保持されていない場合に、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信させるためのプログラムコードと、前記ユーザ秘密鍵が自装置内に保持されている場合に、他装置による前記ユーザ秘密鍵の要求を受信し、該要求に応答する応答メッセージに、自装置の機器公開鍵を含めて送信させるためのプログラムコードと、自装置が保持している機器公開鍵の確認用情報を第１の公開鍵情報として提示させ、他装置から送信されてきた機器公開鍵の確認用情報を第２の公開鍵情報として提示させるためのプログラムコードと、自装置が提示した第１の公開鍵情報と他装置が提示した第２の公開鍵情報が一致し、且つ、自装置が提示した第２の公開鍵情報と他装置が提示した第１の公開鍵情報が一致することを条件として、前記ユーザ秘密鍵の共有を許可するためのプログラムコードと、前記ユーザ秘密鍵の共有のために、自装置が保持している前記ユーザ秘密鍵を、他装置から送信されてきた機器公開鍵で暗号化して送信させるためのプログラムコードと、他装置から送信されてきた前記ユーザ秘密鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ秘密鍵を、自装置内に保持させるためのプログラムコードとを備える。
【００２７】
本発明に係る別のプログラムは、複数のデータ処理装置とネットワーク経由で通信するための通信手段を有するコンピュータ装置を、秘密鍵共有のための管理サーバとして動作させるためのプログラムであって、暗号化されてサーバに保存されているデータを受信し、ユーザに固有のユーザ秘密鍵を使用して前記データを復号するためのデータ処理手段を有する第１及び第２のデータ処理装置から、ログインの要求を受信するためのプログラムコードと、前記ログインの要求に基づいて認証を行い、認証に失敗した場合にログインを拒否するためのプログラムコードと、ログインに成功した前記第１のデータ処理装置から、他装置が保持している前記ユーザ秘密鍵を要求する要求メッセージを受信するためのプログラムコードと、ログインに成功しており、前記ユーザ秘密鍵を保持している前記第２のデータ処理装置に対して、前記要求メッセージを転送することにより、前記第１のデータ処理装置との間での前記ユーザ秘密鍵の共有の許否の決定及び共有のための送信を実行可能とするためのプログラムコードとを備える。
【００２８】
以上の発明は、同一ユーザが使用する複数の機器の間でユーザ秘密鍵を共有することを可能にするものであるが、これら複数の機器の間で、他のユーザのユーザ公開鍵も安全且つ簡単に共有できると便利である。
【００２９】
そのために、上記の管理サーバは、複数のユーザ各々のユーザ公開鍵を含む情報を記憶する手段と、各データ処理装置からの取得要求に応じて、該取得要求により特定されるユーザのユーザ公開鍵を含む情報を、該データ処理装置へ返送する手段とを更に備え、前記各データ処理装置は、データの利用を許可するユーザのユーザ公開鍵を使用して暗号化した該データを、サーバに保存させる手段を有するようにしてもよい。
【００３０】
加えてもしくは代わりに、前記第１及び第２のデータ処理装置の一方が、自装置のユーザ以外のユーザ公開鍵を取得して、記憶しており、前記第１及び第２のデータ処理装置の他方のユーザは、前記一方のデータ処理装置のユーザと同一である場合に、前記一方のデータ処理装置は、自装置のユーザ以外のユーザ公開鍵を、自装置のユーザのユーザ秘密鍵で署名して、送信する手段を備え、前記管理サーバは、前記一方のデータ処理装置から送信された情報を署名付きで記憶するものであり、前記他方のデータ処理装置は、前記管理サーバに保存された署名付きの情報を取得し、該署名を自装置のユーザのユーザ公開鍵に基づいて検証する手段と、前記検証の成功を条件として、取得した前記情報から前記自装置のユーザ以外のユーザ公開鍵を取り出して、記憶する手段とを備えるようにしてもよい。
【００３１】
なお、上述したデータ処理装置、秘密鍵共有システム、管理サーバ、秘密鍵共有方法、プログラム（又はそのプログラムを記録した記録媒体）の発明はいずれも、他のカテゴリの発明としても、勿論成立するものである。
【００３２】
また、上述したユーザ秘密鍵を共有するための各発明の構成は、ユーザ公開鍵を共有するための発明に適用することができる。ユーザ公開鍵は、データがサーバに保存される前に当該データを暗号化するのに用いるが、例えば、詐称者のユーザ秘密鍵に対応するユーザ公開鍵を用いて暗号化してしまうと、情報漏えいに通じるため、真正のユーザ公開鍵を安全且つ簡便に取得することが望まれる。
【００３３】
ユーザ公開鍵に本発明を適用したデータ処理装置は、少なくとも一つのサーバとネットワーク経由で通信するための通信手段と、ユーザに固有のユーザ公開鍵を使用して、データを暗号化し、暗号化されたデータがサーバに保存されるように、前記通信手段を介して送信するためのデータ処理手段と、自装置に固有の機器秘密鍵及び機器公開鍵を保持する機器鍵保持手段と、前記ユーザ公開鍵が自装置内に保持されていない場合に、他装置が保持している前記ユーザ公開鍵を要求する要求メッセージに、自装置の機器公開鍵を含めて送信する要求手段と、前記ユーザ公開鍵が自装置内に保持されている場合に、他装置による前記ユーザ公開鍵の要求を受信し、該要求に応答する応答メッセージに、自装置の機器公開鍵を含めて送信する応答手段と、自装置が保持している機器公開鍵の確認用情報を第１の公開鍵情報として提示し、他装置から送信されてきた機器公開鍵の確認用情報を第２の公開鍵情報として提示する提示手段と、前記提示手段により自装置が提示した第１の公開鍵情報と他装置が提示した第２の公開鍵情報が一致し、且つ、自装置が提示した第２の公開鍵情報と他装置が提示した第１の公開鍵情報が一致することを条件として、前記ユーザ公開鍵の共有を許可する許可手段と、前記ユーザ公開鍵の共有のために、自装置が保持している前記ユーザ公開鍵を、他装置から送信されてきた機器公開鍵で暗号化して送信する送信手段と、他装置から送信されてきた前記ユーザ公開鍵の共有のための情報を、自装置が保持している機器秘密鍵で復号化して得た前記ユーザ公開鍵を、自装置内に保持するユーザ鍵保持手段とを備えるものとすることができる。
【００３４】
本発明においては、ユーザ秘密鍵を共有するための発明として、データ処理装置だけでなく、鍵共有システム、鍵共有方法、管理サーバ、プログラム等の種々のカテゴリの発明が存在するように、ユーザ公開鍵を共有するための発明についても、同様の（ユーザ秘密鍵をユーザ公開鍵に置き換えた）種々のカテゴリの発明が存在する。
【発明の効果】
【００３５】
以上のとおり、本発明によれば、サーバ側でユーザのデータの暗号化を解くための秘密鍵を持たないオンライン・ストレージ・サービスを実現しつつ、ユーザの複数の機器の間でこの秘密鍵を安全且つ簡単にネットワーク経由で共有することが可能になる。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施形態に係る秘密鍵共有システムを含む全体構成の一例を示す図
【図２】本システムにおける同一ユーザを対象とする（ａ）暗号化と（ｂ）復号化のデータ処理の一例を示す図
【図３】本システムにおける複数のユーザを対象とする（ａ）暗号化と（ｂ）復号化のデータ処理の一例を示す図
【図４】本システムにおける機器の内部構成の一例を示す図
【図５】図４の機器公開鍵保存部に保存される情報の一例を示す図
【図６】本システムにおける管理サーバの内部構成の一例を示す図
【図７】図６の（ａ）ユーザ情報保存部、（ｂ）アクティブユーザ情報保存部、（ｃ）機器情報保存部にそれぞれ保存される情報の一例を示す図
【図８】本システムにおける機器と管理サーバとの間で行われるログイン手順の一例を示すフローチャート
【図９】図８に続いて鍵交換手順を実行する機器の動作の一例を示すフローチャート
【図１０】本システムにおける機器Ａと機器Ｂとが管理サーバを介してユーザ秘密鍵を共有する手順の一例を示すシーケンス図
【図１１】図１０において確認表示から承認へ至る処理を、（ａ）機器Ｂがバーコード読込器を備える場合、（ｂ）機器Ａがバーコード読込器を備える場合、のそれぞれで詳細化した例を示す図
【図１２】本システムにおける機器Ａと機器Ｂとが管理サーバを介してユーザ秘密鍵を共有する手順の別の例を示すシーケンス図
【図１３】図１２において２段階で行われる確認表示から承認への処理を、機器Ｂがバーコード読込器を備える場合で詳細化した例を示す図
【図１４】他ユーザのユーザ公開鍵を共有する実施形態における機器の内部構成の一例を示す図
【図１５】図１５のユーザ公開鍵保存部に保存される情報の一例を示す図
【図１６】他ユーザのユーザ公開鍵を共有する実施形態における管理サーバの内部構成の一例を示す図
【図１７】図１６のユーザ公開鍵保存部に保存される情報の一例を示す図
【図１８】本システムにおける機器Ｃと機器Ａとが管理サーバを介して他ユーザのユーザ公開鍵を共有する手順の一例を示すシーケンス図
【発明を実施するための形態】
【００３７】
以下、図面を参照して、本発明の一実施形態に係る秘密鍵共有システムを説明する。図１は、本システムを含む全体構成を示す図である。
【００３８】
図１の例では、説明のため、ユーザ１が、機器Ａ（１０１）、機器Ｂ（１０２）、機器Ｃ（１０３）の３つの機器（１０＊）を使用し、ユーザ２が、機器Ｄ（１１１）、機器Ｅ（１１２）の２つの機器（１１＊）を使用するものとする。実際のシステムでは、多数のユーザが、それぞれ任意の数の機器を使用できることは勿論である。
【００３９】
これらの機器は、ネットワーク２００を介して、管理サーバ３００及びストレージサーバ４００に接続可能である。ストレージサーバ４００は、ファイルもしくはメッセージ等、どのような形式のデータを扱うものでも、本実施形態が適用可能である。管理サーバ３００及びストレージサーバ４００は、いわゆるクラウドを形成するサーバ群であり、大規模なデータセンタであってもよいし、一つのサーバであってもよい。ここでのデータセンタは、単一地点にあってもよいし、複数拠点に分散していてもよい（管理サーバ及び／又はストレージサーバが、分散配置されていてもよい）。管理サーバ３００の機能とストレージサーバ４００の機能は、物理的に別々のサーバで実現してもよいし、同一のサーバに搭載してもよい。
【００４０】
ネットワーク２００は、パブリッククラウドの場合は典型的にはインターネットであり、プライベートクラウドの場合は企業内ネットワークでもよい。各機器で作成されたデータはストレージサーバ４００に保存され、ユーザはサーバ上のデータを読み書きすることになるため、同一ユーザが複数の機器を持ち、ある機器で作成したデータを別の機器で利用することが簡単にできる。機器内にデータを残さないようにすれば、セキュリティ上も利点がある。
【００４１】
各機器がデータをネットワーク２００経由でストレージサーバ４００に保存するときには、暗号化したデータをサーバへ向けて送信する。一般的な暗号化では、１つの機器に１つの秘密鍵を持ち、データを暗号化するが、この方法では、機器が増減したときにサーバ上のデータの暗号化を変更しなければならず、機器の増減に対応するのが効率的ではない。つまり、新しく機器Ｂの使用を開始する場合、既存の機器Ａ用に暗号化してあったデータから、機器Ｂ用に暗号化したデータを、改めて作成しなければならない。
【００４２】
そこで、本システムでは、同一ユーザの機器が増減したときのサーバ上での処理を少なくするため、同一ユーザの保持している複数の機器には、同一のユーザ秘密鍵を保持させるようにする。このように複数の機器で１つのユーザ秘密鍵を共有する方法は後述する。
【００４３】
図２には、１人のユーザでデータをサーバに保存する場合の処理の一例を示す。ユーザ１の機器１０＊は、平文のデータをランダムに生成したセッション鍵を用いて共通鍵暗号により暗号化する。次にセッション鍵を自身（ユーザ１）のユーザ公開鍵で暗号化する。この暗号化データと暗号化されたセッション鍵をセットにして、ストレージサーバ４００に送付する。サーバはこの状態で保存する。このデータを復号するためには、ユーザ１のユーザ秘密鍵が必要であるが、サーバはこの鍵を持たないので、復号することができない。よって、機器のユーザが属する組織とは別の組織が運営するクラウドに、安心してデータを預けることが可能になる。
【００４４】
次に復号の方法を説明する。ユーザ１の機器１０＊（暗号化を行った機器１０＊と別の機器でも構わない）は、ストレージサーバ４００から暗号データと暗号化されたセッション鍵を取得する。機器１０＊では、暗号化されたセッション鍵を自身（ユーザ１）のユーザ秘密鍵で復号する。ここで得られたセッション鍵を使って暗号データを共通鍵暗号により復号する。これによって平文のデータを取得することができる。
【００４５】
図２では、ユーザ１の機器１０＊を例にとって説明したが、ユーザ２の機器１１＊についても同様にデータの暗号化と復号化ができることは勿論である。なお、図２の例では、あるユーザ（ユーザ１）がサーバに保存したデータを別のユーザ（ユーザ２）が取得しても、復号化に必要なユーザ秘密鍵がないので、読むことはできない。
【００４６】
図３には、複数のユーザでデータを共有したい場合の処理の一例を示す。ユーザ１の機器１０＊は、自身（ユーザ１）のユーザ公開鍵でセッション鍵を暗号化するとともに、共有したい他ユーザ（ユーザ２）のユーザ公開鍵でセッション鍵を暗号化して、両方を暗号データに付けて、ストレージサーバ４００に保存する。これにより、図２のように同一ユーザ（ユーザ１）の機器１０＊がサーバに保存したデータを利用できるだけでなく、異なるユーザ（ユーザ２）の機器１１＊も同じデータを利用できるようになる。つまり、機器１１＊は、図３のように暗号化されたセッション鍵を自身（ユーザ２）のユーザ秘密鍵で復号し、そのセッション鍵を用いて暗号データを復号する。
【００４７】
以上のように、ユーザ秘密鍵があれば、ストレージサーバに保存されている暗号データを復号できてしまうため、複数の機器で１つのユーザ秘密鍵を共有するに当たっては、ユーザ秘密鍵を盗まれないようにすることが重要である。特に、ユーザ秘密鍵をネットワーク経由で送信して共有する場合、正当な要求元であると詐称する（なりすまし）装置に対してユーザ秘密鍵を送信してしまったり、暗号化して送信したユーザ秘密鍵の復号に用いられる鍵が他人に入手されてしまったりするリスクを排除することが肝要である。
【００４８】
本システムにおいては、ユーザ秘密鍵の暗号化には、各機器に固有の機器公開鍵を用い、その復号化には、各機器公開鍵に対応する機器秘密鍵を用いる。機器秘密鍵は、唯一のものであり、その機器の内部で生成されて永久に外部に出力されないようにできるため、ユーザ秘密鍵の復号に用いられる鍵が流出する可能性は最小化される。また、本システムでは、ユーザ秘密鍵を共有する機器間で、なりすましを防止する手順を実行する。さらに、本システムでは、各機器からのログインを管理するサーバを設けて、同一ユーザの機器であると認証された機器のみを、ユーザ秘密鍵を共有する機器として指定するようにする。
【００４９】
図４には、本システムにおける機器１０＊、１１＊の内部構成例を示す。機器は、一般的なクライアントコンピュータ（パソコン、ＰＤＡ、スマートフォン等）で構成でき、処理部５１０、記憶部５２０、入力部５３０、表示部５４０、通信部５５０を備える。
【００５０】
処理部５１０は、図２〜３で説明したデータ処理を行うデータ処理部５１４と、図８〜１３で説明する手順を行う鍵交換部５１２を含む。記憶部５２０は、この機器の機器秘密鍵を保存する機器秘密鍵保存部５２２と、この機器の機器公開鍵を保存するとともに図５に示すように他の機器の機器公開鍵を保存可能な機器公開鍵保存部５２４と、この機器のユーザのユーザ秘密鍵を保存するためのユーザ秘密鍵保存部５２６と、この機器のユーザのユーザ公開鍵を保存するためのユーザ公開鍵保存部５２８とを含む。通信部５５０は、ネットワーク２００と接続される。
【００５１】
図６には、本システムにおける管理サーバ３００の内部構成例を示す。管理サーバは、一般的なサーバコンピュータで構成でき、処理部３１０、記憶部３２０、通信部３４０を備える。
【００５２】
処理部３１０は、図８で説明するログイン手順と、図１０と図１２で説明するメッセージの転送や登録の処理とを行うユーザ管理部３１２を含む。記憶部３２０は、図７（ａ）に示すようなユーザ情報を保存するためのユーザ情報保存部３２２と、図７（ｂ）に示すようなアクティブユーザ情報を保存するためのアクティブユーザ情報保存部３２４と、図７（ｃ）に示すような機器情報を保存するための機器情報保存部３２６とを含む。通信部３４０は、ネットワーク２００と接続される。
【００５３】
ユーザ情報保存部３２２は、本システムの利用者として登録しているユーザのユーザＩＤ及びパスワードを記憶しており、ログイン要求を行ったユーザの認証に用いられる。加えて、そのユーザのユーザ公開鍵を登録できるようになっており、ここにユーザ公開鍵が登録してあるユーザは、既に少なくともどれか一つの機器にユーザ秘密鍵を持っているものと解釈できる。
【００５４】
アクティブユーザ情報保存部３２４は、ログインに成功してログイン中又はログイン済となっている（ログアウトしていない）ユーザのユーザＩＤと、そのログインの要求の送信元の機器の機器ＩＤと、そのログインにより確立されているセッションのセッション情報とを記憶する。
【００５５】
ユーザがログアウトすると、そのユーザとそのログアウトの要求元の機器は、アクティブユーザ情報保存部３２４から情報が消去されるが、機器情報保存部３２６は、その後もユーザＩＤと機器ＩＤのセットを記憶している。さらに、機器ＩＤに対応させて、その機器の機器公開鍵を登録できるようになっており、次にログイン要求が送られてきたときに、パスワード認証に加えて、機器秘密鍵による署名の検証もできるようになる。また、機器公開鍵が登録されている機器は、既にユーザ秘密鍵を保持（２台目以降は共有）しているものと解釈できるように、運用することも可能である。
【００５６】
以上に説明した機器及び管理サーバの各部の機能は、汎用コンピュータにソフトウェアプログラムをインストールすることにより実装されてもよいし、機能の一部又は全部を専用ハードウェア化して実装してもよい。
【００５７】
以下では、１人のユーザが複数台の機器を保有している場合に、それらの機器で安全に秘密鍵を共有する方法を、図８〜１３を参照して説明する。
【００５８】
図８は、機器から管理サーバへログインする手順の一例を説明する図である。本例においては、機器の初期起動時には、機器秘密鍵保存部５２２、機器公開鍵保存部５２４、ユーザ秘密鍵保存部５２６、ユーザ公開鍵保存部５２８には、何も保存されていないものとするが、機器秘密鍵及び機器公開鍵を、機器の出荷時点で作成、保存しておいてもよいことは勿論である。
【００５９】
本ログイン手順の起動時（８００）に、機器は、機器中の機器秘密鍵保存部５２２に機器秘密鍵が存在するかを確認する（８０５）。機器秘密鍵が存在する場合には、ログイン処理（８２０以降）を行う。
【００６０】
機器秘密鍵が存在しない場合には、機器は、機器ＩＤを生成し（８１０）、機器秘密鍵及び機器公開鍵を作成し（８１５）、それぞれ機器秘密鍵保存部５２２及び機器公開鍵保存部５２４に保存する。機器ＩＤは、機器ごとに異なるＩＤをつける。例えば、ＲＦＣ４１２２（A Universally Unique Identifier (UUID) URN Namespace）で定義されているＵＵＩＤ等を使うことができる。
【００６１】
その後、機器は、ログイン処理を行う（８２０）。具体的には、機器は、予め登録されている管理サーバのＩＰアドレスに対して、通信を行えるようにセッションを確立する。管理サーバのＩＰアドレスが予め登録されていてもよいし、代わりに、ＦＱＤＮ（Fully Qualified Domain Names；ドメインネームサーバの名前）が予め登録されていてもよく、サーバから取得するようにすれば、より汎用的である。セッションは、例えば、ＴＣＰを利用するＳＳＬ（Secure Socket Layer）やＴＬＳ（Transport Layer Security）のように暗号化されたセッションを使ってもよいし、ＴＣＰやＵＤＰを利用して、ユーザ秘密鍵を用いて暗号化してもよい。後者の方法は、機器が既に自身のユーザのユーザ秘密鍵を保持しており、管理サーバが既に対応するユーザ公開鍵を登録している場合に採ることができる。
【００６２】
機器は、上記の確立したセッションを用いて管理サーバに、ユーザＩＤとパスワードとを含むログイン要求メッセージを送信する。このログイン要求メッセージ又は機器から管理サーバに送信する情報の中に、機器ＩＤを付加情報として含めてもよい。
【００６３】
管理サーバは、ユーザ情報保存部３２２に保存されているユーザＩＤとパスワードで認証し、正しいユーザの場合には、アクティブユーザ情報保存部３２４にそのユーザＩＤと、機器ＩＤと、セッション情報とを登録する（８８０）。セッション情報は、上記で確立したセッションに関する情報であり、例えば、［送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号］である。パスワード認証に失敗した場合は、管理サーバから機器へログイン失敗を伝える（８３０）。
【００６４】
機器から管理サーバに送信する情報として、機器秘密鍵を使ってユーザＩＤやパスワード等に署名してもよい。この場合には、管理サーバは、機器情報保存部３２６を機器ＩＤで検索し、対応する機器公開鍵が存在すれば、それを用いて署名を検証することができる（８４０）。署名の検証に失敗した場合は、管理サーバから機器へログイン失敗を伝え（８４５）、アクティブユーザ情報の登録（８８０）へは進まない。
【００６５】
パスワード認証に成功した後、署名の検証に成功したか、もしくは、機器情報保存部３２６に対応する機器公開鍵が存在しなかった場合、管理サーバは、ユーザ情報保存部３２２に、ログイン要求メッセージに含まれるユーザＩＤのユーザ公開鍵が登録されているかを確認する（８５０）。ユーザ公開鍵が登録されていない場合には、機器にユーザ公開鍵を要求するメッセージを送信する。
【００６６】
ユーザ公開鍵要求メッセージを受信した機器は、ユーザ秘密鍵とユーザ公開鍵を作成して、機器中のユーザ秘密鍵保存部５２６及びユーザ公開鍵保存部５２８に保存する（８５５）。そして、機器は、ユーザ公開鍵をユーザ秘密鍵で署名して、ユーザ公開鍵応答メッセージとして管理サーバに送付する（８６０）。ここで、このユーザ公開鍵応答メッセージ又は機器から管理サーバに送信する情報の中に、機器公開鍵を付加情報として含めてもよい。
【００６７】
ユーザ公開鍵応答メッセージを受信した管理サーバは、受信したユーザ公開鍵を用いて受信した署名を検証し、検証に成功すると、受信したユーザ公開鍵をユーザＩＤと対応させてユーザ情報保存部３２２に保存する（８６５）。管理サーバは、さらに、受信した機器公開鍵を機器ＩＤと対応させて機器情報保存部３２６に保存する（８７０）。
【００６８】
ユーザ公開鍵が既に存在していた場合も、新たに機器に要求して作成させたものを上記のように保存する場合も、管理サーバは、アクティブユーザ情報保存部３２４に、ユーザＩＤ、機器ＩＤ、セッション情報を登録して（８８０）、ログイン成功メッセージを機器に送付する（８８５）。
【００６９】
ログイン成功を通知された機器は、ログイン中（９００）となり、その後、図９のように手順を進める。まず、機器のユーザ秘密鍵保存部５２６に、ユーザ秘密鍵が存在するか否かを確認する（９１０）。
【００７０】
ユーザ秘密鍵が存在する場合には、ログイン済としてログイン後の処理を行う（９４０）。ログイン後（ログアウトするまで）の処理として、例えば、図２〜３で説明したデータ処理がある。このとき、機器は、管理サーバから、ストレージサーバにアクセスするための情報（例えば、ストレージサーバが複数あるときに、機器が処理したいデータをどのストレージサーバが保存しているのかを特定する情報等）を取得するようにしてもよい。ログイン済の状態にあれば、ユーザ秘密鍵やユーザ公開鍵を使用する処理を実行することが可能である。
【００７１】
ユーザ秘密鍵が存在しない場合には、ユーザ秘密鍵交換手順を開始し（９２０）、ユーザ秘密鍵を持つ機器からユーザ秘密鍵を取得する。この交換手順の詳細は、後述するように、図１０の１０１５〜１０７０もしくは図１２の１２１５〜１２７５に示される。
【００７２】
ユーザ秘密鍵及びユーザ公開鍵を取得すると、機器は、ユーザ秘密鍵保存部５２６にユーザ秘密鍵を保存し、ユーザ公開鍵保存部５２８にユーザ公開鍵を保存して（９３０）、ログイン済となる（９４０）。
【００７３】
図１０は、機器Ａと機器Ｂとがユーザ秘密鍵を共有する手順の一例を示す。この例では、予めユーザ秘密鍵を保持している機器において１回の承認を行うことにより、ユーザ秘密鍵の共有が許可される。機器Ａ及び機器Ｂは、同一ユーザ（ここではユーザ１）の所有物とする。なお、図１０において、実線矢印は、機器Ａと管理サーバとの間のメッセージ交換を表し、点線矢印は、機器Ｂと管理サーバとの間のメッセージ交換を表す。
【００７４】
図１０の例では、機器Ｂは、予めユーザ１の秘密鍵を持っているが、機器Ａは、そうではない。そこで、機器Ｂの保持しているユーザ１の秘密鍵を、機器Ａにも安全且つ確実に登録する手順（機器Ａについて初期登録を行う手順）を実行する。これは、機器Ａが、最初に、ログイン済としてストレージサーバを利用できるようになるまでに実行される手順（図９の９２０、９３０）であり、次回以降は、機器Ａも、既にユーザ１の秘密鍵を保持しているため、機器Ｂと同様にログイン中（９００）から直接ログイン済（９４０）の状態に移行することができる。
【００７５】
まず、機器Ｂは、管理サーバに対し、図８のログイン手順を行って、ユーザ１としてログインする（１００５）。機器Ｂは、今回のログイン手順もしくは前回以前のログイン手順において、ユーザ秘密鍵及びユーザ公開鍵を作成して保存しており（８５５）、ユーザ１のユーザ公開鍵が管理サーバのユーザ情報保存部３２２に保存され（８６５）、機器Ｂの機器公開鍵が管理サーバの機器情報保存部３２６に保存されている（８７０）ものとする。
【００７６】
勿論、それよりも前に、ユーザ１の機器Ｃが、ログイン手順においてユーザ秘密鍵及びユーザ公開鍵を作成して保存したものを、これから説明する機器Ａ−Ｂ間での手順と同様の手順を機器Ｂ−Ｃ間で行うことにより、機器Ｂが共有した結果として、機器Ｂがユーザ秘密鍵及びユーザ公開鍵を保持しているのでも構わない。
【００７７】
いずれにしても、機器Ｂは、今回のログイン手順で、アクティブユーザとしてその情報がアクティブユーザ情報保存部３２４に保存され（８８０）、ログイン中（９００）となり、機器Ｂ内にユーザ秘密鍵が存在する（９１０）ので、ログイン済（９４０）となる。
【００７８】
次に、機器Ａも、管理サーバに対し、図８のログイン手順を行って、ユーザ１としてログインする（１０１０）。機器Ａは、ユーザ１のユーザ公開鍵が既に管理サーバのユーザ情報保存部３２２に登録されているので、機器Ａの機器公開鍵が管理サーバの機器情報保存部３２６に登録されることはなく（８５０から直接８８０へ移行）、アクティブユーザとして機器Ａの情報がアクティブユーザ情報保存部３２４に保存される。
【００７９】
このようにログイン中（９００）となった機器Ａは、機器Ａ内にユーザ秘密鍵が存在しない（９１０）ので、以下のように、ユーザ秘密鍵交換手順を開始することになる（９２０）。
【００８０】
なお、ここでは、機器Ｂ、機器Ａの順番で、ログインする例を説明したが、逆に、ユーザ秘密鍵を持っていない機器Ａが先にログインし、ユーザ秘密鍵を持っている機器Ｂが後からログイン（機器Ｂのログインは、２回目以降のログインである）しても、その結果としての状態は同様になり、図１０のそれ以降の手順も同様に実行できる。後述するように、ユーザ１は、機器Ａと機器Ｂの両方を、物理的に手元に置いて、ユーザ秘密鍵の共有を行わせることができるが、その際、どちらの機器を先にログインさせても構わないということである。機器Ａと機器Ｂは、物理的には近くに置かれる場合でも、その間の情報（ユーザ秘密鍵を含む）の送受信は、ネットワーク経由で行われる。
【００８１】
図１０に示すように、機器Ａがユーザ秘密鍵を持っていない場合には、管理サーバに対して、ユーザ秘密鍵取得要求メッセージを送出する（１０１５）。このユーザ秘密鍵取得要求メッセージに、機器Ａの機器公開鍵を含ませる。
【００８２】
管理サーバは、アクティブユーザ情報（図７（ｂ））を参照し、同一ユーザＩＤでログインしている全ての機器（ここでは、機器Ｂ）に対して、セッション情報を参照して、機器Ａから受信したユーザ秘密鍵取得要求メッセージを転送する（１０２５）。
【００８３】
なお、アクティブユーザ情報に加えて、機器情報（図７（ｃ））を参照し、同一ユーザＩＤでログインしている全ての機器のうち、機器公開鍵が管理サーバに登録されている機器を選択して、選択された機器（ユーザ秘密鍵を既に保持している機器と推定される）に対して、ユーザ秘密鍵取得要求メッセージを転送するようにしてもよい。その後、ユーザ秘密鍵取得要求メッセージに含まれていた機器Ａの機器公開鍵を、管理サーバの機器情報保存部３２６に保存する（１０２０）。但し、下記の手順における承認（１０５０）がなされなかった場合には、ユーザ秘密鍵は機器Ａに共有されないので、管理サーバに保存した機器Ａの機器公開鍵を削除するようにしてもよい。
【００８４】
ユーザ秘密鍵取得要求メッセージを受信した機器Ｂは、ユーザ秘密鍵交換手順を実行してよい状況にある場合（機器Ｂを手元に置いているユーザ１が指示を入力してもよいし、機器Ｂが予め設定されたとおりに判断してもよい）には、ユーザ秘密鍵取得応答メッセージを管理サーバへ返送する（１０３０）。ユーザ秘密鍵取得応答メッセージには、機器Ｂの機器公開鍵と、送信元機器ＩＤとして機器Ｂの機器ＩＤと、宛先機器ＩＤとして機器Ａの機器ＩＤも含まれる。
【００８５】
ユーザ秘密鍵取得応答メッセージを受信した管理サーバは、ユーザ秘密鍵取得応答メッセージ中の宛先機器ＩＤと一致する機器ＩＤのエントリを、アクティブユーザ情報保存部３２４から検索して、そのエントリのセッション情報を利用して、機器Ａにユーザ秘密鍵取得応答メッセージを転送する（１０３５）。
【００８６】
この例では、取得応答メッセージが、機器Ｂから管理サーバを経由して機器Ａへ返っているが、機器Ｂから直接機器Ａへ送信してもよい。直接要求元へ返す場合には、機器Ｂへ送信されるユーザ秘密鍵取得要求メッセージの中に、機器ＡのＩＰアドレスを含めることにより、機器Ｂがどこへ取得応答メッセージを送信すればよいか分かるようにする。
【００８７】
この後、機器Ｂは、機器Ａの公開鍵情報（ユーザ秘密鍵取得要求メッセージに含まれていた機器公開鍵）と機器Ｂの公開鍵情報（機器公開鍵保存部５２４に記憶された自身の機器公開鍵）とを表示する（１０４５）。また、機器Ａは、機器Ａの公開鍵情報（機器公開鍵保存部５２４に記憶された自身の機器公開鍵）と機器Ｂの公開鍵情報（ユーザ秘密鍵取得応答メッセージに含まれていた機器公開鍵）とを表示する（１０４０）。
【００８８】
機器の公開鍵情報とは、機器公開鍵の確認用情報であり、機器公開鍵のデータそのものでもよいし、機器公開鍵をハッシュ関数にかけたデータとしてもよいし、機器公開鍵にその他の変換を施したデータとしてもよい。公開鍵情報の表示は、機器公開鍵のフィンガープリントを表示してもよいし、人間が確認できる数値情報として表示してもよい。この表示は、２つの機器で表示されたものが互いに一致しているかを人間が確認できるようにするため、確認者が認識しやすい画像や動画や文字列や音声等の形式にして行ってもよい。より具体的には、２次元バーコードのような表示にしてもよい。
【００８９】
また、求められるセキュリティレベルに従い、簡易設定と上級設定の２つ以上のモードを設けて、上級設定ではフィンガープリントをフルに文字列等に変換して表示するのに対し、簡易設定では短い文字列等に変換して表示するようにしてもよい。
【００９０】
機器Ａと機器Ｂを手元に置いている操作者（ユーザ１）は、これらの表示された情報が同一であるか否かを確認し、同一である場合には、機器Ｂに承認の指示を入力する（１０５０）。同一でない場合には、機器Ａと機器Ｂの間のネットワーク上にいる悪意を持つ機器がこの後送信されるユーザ秘密鍵を取得したり、詐称したりする危険性があるため、秘密鍵交換手順を中止する。この確認は、機器Ａと機器Ｂが物理的に近くに置かれれば、簡単に行うことができるが、そうでなくても、ユーザが双方の機器の表示を確認できるように置かれればよく、後述する読込器が相手方の機器の表示を読み込めるように置かれるのでもよい。
【００９１】
機器Ａは、ユーザ秘密鍵取得応答メッセージを受信すると、機器公開鍵保存部５２４に機器Ｂの機器ＩＤ及び機器公開鍵を保存する。機器Ｂは、ユーザ秘密鍵取得要求メッセージを受信すると、機器公開鍵保存部５２４に機器Ａの機器ＩＤ及び機器公開鍵を保存する。しかし、上記のように機器Ｂに承認の指示が入力されない場合には、これらの機器ＩＤＩＤ及び機器公開鍵を削除する。
【００９２】
公開鍵情報の確認表示（１０４０、１０４５）及び承認（１０５０）は、図１１（ａ）に例示するように、機器Ｂのカメラで機器Ａに表示されている公開鍵情報の２次元バーコードを読み取る（１０４７）ことにより、行ってもよい。この場合、機器Ａは、カメラが読み取れるように公開鍵情報を表示するが、機器Ｂは、機器Ａから読み取られた２次元バーコードと、機器Ｂ内にある公開鍵情報の２次元バーコードとを、人間の目視によらずに、機器Ｂ内で比較することができるため、機器Ｂは、比較結果（一致／不一致）だけを表示して、操作者に承認／拒否を促す。あるいは、一致する場合は承認する（１０５０）ところまで自動化してもよい。
【００９３】
機器Ａにカメラが付いている場合には、図１１（ｂ）に例示するように、機器Ａにおいて、機器Ｂに表示されている公開鍵情報の２次元バーコードを読み取り（１０４２）、その読み取り結果と、機器Ａの持っている公開鍵情報とが同じであるか否かを表示する（１０４８）。同じであるという表示を見た操作者は、機器Ｂに、承認の指示を入力する。あるいは、同じであるという表示をする代わりに、同じであるという通知を、赤外線通信等の無線通信によって機器Ａから機器Ｂへ送り、機器Ｂにおいて表示及び承認の指示入力を行うようにしてもよいし、通知を受けた機器Ｂでの承認を自動化してもよい。
【００９４】
その後、機器Ｂは、ユーザ秘密鍵を送信する（１０６０）。このユーザ秘密鍵送信メッセージには、宛先機器ＩＤとして、機器Ａの機器ＩＤが記入されている。また、送信元機器ＩＤとして、機器Ｂの機器ＩＤが記入され、この送信元機器ＩＤとユーザ１のユーザ秘密鍵及びユーザ公開鍵とが、機器Ｂの機器秘密鍵で署名され、署名されたものが機器Ａの機器公開鍵で暗号化されている。暗号化と署名の順番を逆にして、暗号化してから署名したものとしてもよい。このように作成されたユーザ秘密鍵送信メッセージが、機器Ｂから管理サーバへ送信される。
【００９５】
ユーザ秘密鍵送信メッセージを受信した管理サーバは、ユーザ秘密鍵送信メッセージ中の宛先機器ＩＤと一致する機器ＩＤのエントリを、アクティブユーザ情報保存部３２４から検索して、そのエントリのセッション情報を利用して、機器Ａにユーザ秘密鍵送信メッセージを転送する（１０６５）。
【００９６】
この例では、ユーザ秘密鍵送信メッセージが、機器Ｂから管理サーバを経由して機器Ａへ送信されているが、機器Ｂから直接機器Ａへ送信してもよい。機器Ｂがどこへユーザ秘密鍵送信メッセージを送信すればよいかは、機器Ｂへ送信されるユーザ秘密鍵取得要求メッセージの中に、機器ＡのＩＰアドレスを含めることで、教えることができる。
【００９７】
ユーザ秘密鍵送信メッセージを受信した機器Ａは、機器Ａの機器秘密鍵で復号する。さらに機器Ａは、復号結果に含まれる送信元機器ＩＤと一致する機器ＩＤのエントリを、機器公開鍵保存部５２４から検索し、そのエントリの機器公開鍵を用いて、署名を検証する。署名が確認されたら、復号結果に含まれるユーザ秘密鍵及びユーザ公開鍵を、それぞれユーザ秘密鍵保存部５２６及びユーザ公開鍵保存部５２８に保存する（１０７０）。
【００９８】
図１２は、ユーザ１の機器Ａと機器Ｂとがユーザ秘密鍵を共有する手順の別の例を示す。この例では、予めユーザ秘密鍵を保持している機器とユーザ秘密鍵を送るように要求する機器との双方において承認を行うこと（合計２回の承認）により、ユーザ秘密鍵の共有が許可される。以下には、図１０と同様の部分は説明を省略し、図１２に特有の部分を中心に説明する。
【００９９】
まず、ユーザ１が、管理サーバに対し、一方で機器Ｂからログイン手順を行い（１２０５）、他方で機器Ａからログイン手順を行い（１２１０）、両方の機器がログインする。
【０１００】
機器Ａは、ユーザ秘密鍵を持っていない場合には、管理サーバに対して、ユーザ秘密鍵取得要求メッセージを送出する（１２１５）。このユーザ秘密鍵取得要求メッセージには、機器Ａの機器公開鍵も含ませる。
【０１０１】
管理サーバは、アクティブユーザ情報を参照し、同一ユーザＩＤでログインしている全ての機器、あるいはその中から選択された機器（ここでは、機器Ｂ）に対して、セッション情報を参照して、機器Ａから受信したユーザ秘密鍵取得要求メッセージを転送する（１２２５）。
【０１０２】
その後、機器Ａは、機器Ａの公開鍵情報（機器公開鍵保存部５２４に記憶された自身の機器公開鍵）の確認表示を行う（１２３０）。また、機器Ｂも、機器Ａの公開鍵情報（ユーザ秘密鍵取得要求メッセージに含まれていた機器公開鍵）の確認表示を行う（１２３５）。公開鍵確認表示には、承認１回の場合と同様に、様々な表示方法があり得る。
【０１０３】
機器Ａに表示された機器Ａの公開鍵情報と、機器Ｂに表示された機器Ａの公開鍵情報とを比較して、同一ならば、機器Ｂで第１の承認を行う（１２４０）。承認の方法は、承認１回の場合と同様に、２次元バーコードを使った承認等、様々な承認方法があり得る。機器Ｂに２次元バーコードを読み込むカメラが付いている場合の一例を、図１３に示すが、機器Ａにカメラがある場合も、図１３を変形して実施できることは、当業者に自明である。
【０１０４】
第１の承認後、機器Ｂは、機器公開鍵保存部５２４に機器Ａの機器ＩＤ及び機器公開鍵を保存し、ユーザ秘密鍵を送信する（１２５０）。このユーザ秘密鍵送信メッセージには、宛先機器ＩＤとして、機器Ａの機器ＩＤが記入されている。また、送信元機器ＩＤとして、機器Ｂの機器ＩＤが記入され、この送信元機器ＩＤと機器Ｂの機器公開鍵とユーザ１のユーザ秘密鍵及びユーザ公開鍵とが、機器Ｂの機器秘密鍵で署名され、署名されたものが機器Ａの機器公開鍵で暗号化されている。暗号化と署名の順番を逆にして、暗号化してから署名したものとしてもよい。このように作成されたユーザ秘密鍵送信メッセージが、機器Ｂから管理サーバへ送信される。
【０１０５】
ユーザ秘密鍵送信メッセージを受信した管理サーバは、ユーザ秘密鍵送信メッセージ中の宛先機器ＩＤに従い、アクティブユーザ情報保存部３２４を検索して、機器Ａにユーザ秘密鍵送信メッセージを転送する（１２５５）。管理サーバ経由で転送するのでなく、機器Ｂから機器Ａへ直接送信してもよいことは、承認１回の場合と同様である。
【０１０６】
並行して、機器Ｂは、機器Ｂの公開鍵情報（機器公開鍵保存部５２４に記憶された自身の機器公開鍵）の確認表示を行う（１２６５）。
【０１０７】
機器Ａは、ユーザ秘密鍵送信メッセージを受信すると、このメッセージに含まれる情報を機器Ａの機器秘密鍵で復号し、復号結果に含まれる機器Ｂの機器公開鍵を用いて、署名を検証する。署名が確認されると、機器Ｂの公開鍵情報（ユーザ秘密鍵送信メッセージに含まれていた機器公開鍵）の確認表示を行う（１２６０）。
【０１０８】
機器Ａは、機器Ｂに表示されている機器Ｂの公開鍵情報と、機器Ａに表示された機器Ｂの公開鍵情報とを比較して、同一ならば、第２の承認を行う（１２７０）。図１３の２次元バーコード読込器を利用する例には、第１の承認に加えて第２の承認を行う方法が示されている。
【０１０９】
第２の承認後、機器Ａは、機器公開鍵保存部５２４に機器Ｂの機器ＩＤ及び機器公開鍵を保存し、復号結果に含まれるユーザ秘密鍵及びユーザ公開鍵を、それぞれユーザ秘密鍵保存部５２６及びユーザ公開鍵保存部５２８に保存する（１２７５）。
【０１１０】
以上の手順によって、機器Ｂから機器Ａへ、ユーザ秘密鍵及びユーザ公開鍵を安全に渡すことができる。
【０１１１】
以下には、図１４〜１８を参照して、あるユーザが、他のユーザのユーザ公開鍵を、自身の使用する機器のうちの１つに取り込み、その取りこんだユーザ公開鍵を、自身（同一ユーザ）の他の全ての機器に複製する手順を説明する。
【０１１２】
図１４に示す機器の内部構成例は、図４と共通するが、鍵交換部５１２が、図１８で説明する手順を行う点と、ユーザ公開鍵保存部５２９が、図１５に示すように、この機器のユーザのユーザ公開鍵だけでなく、他のユーザのユーザ公開鍵をも保存するためのものである点が異なる。
【０１１３】
また、図１６に示す管理サーバの内部構成例は、図６と共通するが、ユーザ管理部３１２が、図１８で説明する手順を行う点と、ユーザ公開鍵保存部３２８が、新たに設けられている点が異なる。
【０１１４】
管理サーバ３００のユーザ公開鍵保存部３２８は、図１７に示されるような情報を記憶する。図１７の例では、ユーザ１が、他ユーザであるユーザ２とユーザ３のユーザ公開鍵を有しており、ユーザ２が、他ユーザであるユーザ１のユーザ公開鍵を有している。そして、あるユーザが有している他ユーザのユーザ公開鍵の情報は、他ユーザのユーザ公開鍵そのものでもよいが、所有者であるユーザのユーザ秘密鍵で署名したものとしてもよい。つまり、ユーザ１が有するユーザ２のユーザ公開鍵を例にとると、ユーザ２のユーザ公開鍵がユーザ１のユーザ秘密鍵で署名されたものが、ユーザ公開鍵保存部３２８に保存されている。
【０１１５】
図１８には、ユーザ１の機器Ｃと機器Ａとが管理サーバを介して他ユーザ（ユーザ２）のユーザ公開鍵を共有する手順の一例を示す。少なくとも機器Ｃと機器Ａは、図８〜９に従って管理サーバにログイン後の状態になっているものとする。
【０１１６】
まず、ユーザ２の機器Ｄからユーザ１の機器Ｃへ、ユーザ２のユーザ公開鍵を複製する（１８１０）。ユーザ１の機器Ｃにユーザ２のユーザ公開鍵を保存する方法は、ユーザ公開鍵を２次元バーコードによって読み込む方法等でもよい。機器Ｃは、ユーザ２のユーザ公開鍵をユーザ公開鍵保存部５２９に、ユーザ２のユーザＩＤとともに登録する（１８２０）。
【０１１７】
次に、機器Ｃは、ユーザ秘密鍵保存部５２６に保存されているユーザ１のユーザ秘密鍵で、ユーザ２のユーザ公開鍵を署名する（１８３０）。この情報と、ユーザ２のユーザＩＤとを、ユーザ公開鍵登録要求メッセージとして管理サーバに送信する（１８４０）。
【０１１８】
管理サーバは、ユーザ公開鍵保存部３２８に、ユーザＩＤとして、ログインしているユーザ（ユーザ１）のユーザＩＤを保存する。そして、受信したユーザ公開鍵登録要求メッセージに含まれる「ユーザＩＤ（ユーザ２）」を、相手ユーザＩＤとして保存する。さらに、受信したユーザ公開鍵登録要求メッセージに含まれる「ユーザ１のユーザ秘密鍵で署名されたユーザ２のユーザ公開鍵」を、ユーザ公開鍵情報として保存する（１８５０）。
【０１１９】
ユーザ１の機器Ａは、他のユーザのユーザ公開鍵を使いたい場合に、欲しいユーザ（ユーザ２）のユーザＩＤを含ませたユーザ公開鍵取得要求メッセージを、管理サーバに送付する（１８６０）。機器Ａが、この取得要求メッセージを送信するタイミングは、定期的に送付してもよいし、ログイン時に送付してもよい。あるいは、管理サーバが、上記のようにユーザ公開鍵を保存したときに、ユーザ公開鍵登録要求を送ってきた機器以外の同一ユーザの機器であってログイン済のものに対して通知し、通知された機器が取得要求メッセージを返送するのでも構わない。
【０１２０】
機器Ａからのユーザ公開鍵取得要求メッセージを受信した管理サーバは、機器Ａへユーザ公開鍵取得応答メッセージを返す（１８７０）。管理サーバは、ユーザ公開鍵保存部３２８に保存されているユーザ公開鍵を、ユーザＩＤ（ユーザ公開鍵取得要求メッセージを送信してきた機器を使用するユーザのユーザＩＤ−ユーザ１）および相手ユーザＩＤ（ユーザ公開鍵取得要求メッセージに含まれているユーザＩＤ−ユーザ２）で検索し、ユーザ公開鍵情報（ユーザ１の秘密鍵で署名されたユーザ２のユーザ公開鍵）を取り出す。ユーザ公開鍵取得応答メッセージには、相手ユーザＩＤと、取り出されたユーザ公開鍵情報とを入れる。
【０１２１】
ユーザ公開鍵取得応答メッセージを受信した機器Ａは、このメッセージ中のユーザ公開鍵情報の署名を、ユーザ公開鍵保存部５２９に保存している自身（ユーザ１）のユーザ公開鍵を用いて検証する（１８８０）。署名が確認されたら、ユーザ公開鍵保存部５２９に、ユーザ公開鍵取得応答メッセージ中の相手ユーザＩＤ（ユーザ２）と署名を外したユーザ２のユーザ公開鍵とを保存する（１８９０）。
【０１２２】
以上の手順によって、他のユーザのユーザ公開鍵を、自身（同一ユーザ）が使用する全ての機器に、安全且つ簡単に保存することができる。
【０１２３】
以上、本発明の実施形態について説明したが、上述の実施形態を本発明の範囲内で当業者が種々に変形、応用して実施できることは勿論である。
【図１】
0005489775.tif 000002
【図２】
0005489775.tif 000003
【図３】
0005489775.tif 000004
【図４】
0005489775.tif 000005
【図５】
0005489775.tif 000006
【図６】
0005489775.tif 000007
【図７】
0005489775.tif 000008
【図８】
0005489775.tif 000009
【図９】
0005489775.tif 000010
【図１０】
0005489775.tif 000011
【図１１】
0005489775.tif 000012
【図１２】
0005489775.tif 000013
【図１３】
0005489775.tif 000014
【図１４】
0005489775.tif 000015
【図１５】
0005489775.tif 000016
【図１６】
0005489775.tif 000017
【図１７】
0005489775.tif 000018
【図１８】
0005489775.tif 000019