(57)【要約】【課題】複数の暗号装置を利用した暗号演算を簡便にかつ迅速に行うことができる暗号装置管理方法、これを実施する暗号装置管理サーバ、プログラム及び記憶媒体を提供する。【解決手段】暗号装置管理サーバ１２により、任意の端末装置１１ｍからネットワーク１４を介して、第一の暗号演算依頼を受信し、前記暗号装置管理サーバ１２に記憶されている端末装置の管理情報と暗号装置の管理情報に基づいて選択した暗号装置１３ｎに、第一の暗号演算依頼と前記端末装置の管理情報と前記暗号装置の管理情報に基づいて生成した第二の暗号演算依頼を、前記接続インターフェース１５を介して送信して、前記暗号装置１３ｎから第二の暗号演算結果を受信し、第二の暗号演算結果と前記端末装置の管理情報と前記暗号装置の管理情報に基づいて生成した第一の暗号演算結果を、第一の暗号演算依頼元の端末装置１１ｍへ前記ネットワーク１４を介して送信する。【選択図】図１
2012064995.tif 000002
【特許請求の範囲】
【請求項１】
複数の端末装置及び複数の暗号装置に接続された暗号装置管理サーバにより、任意の端末装置からネットワークを介して、第一の暗号演算依頼を受信し、前記暗号装置管理サーバの記憶部に記憶されている端末装置の管理情報と暗号装置の管理情報に基づいて選択した暗号装置に、接続インターフェースを介して第二の暗号演算依頼を送信して、前記暗号装置から第二の暗号演算結果を受信し、第一の暗号演算依頼元の端末装置へ前記ネットワークを介して送信する、暗号装置管理方法であって、
前記暗号装置管理サーバにより、
第一の暗号演算依頼と第二の暗号演算結果に基づき、前記記憶部に記憶されている前記端末装置の管理情報と前記暗号装置の管理情報を更新する処理と、
第一の暗号演算依頼と前記端末装置の管理情報と前記暗号装置の管理情報に基づき、第二の暗号演算を生成する処理と、
第二の暗号演算結果と前記端末装置の管理情報と前記暗号装置の管理情報に基づき、第一の暗号演算結果を生成する処理と、
を実施する、
ことを特徴とする暗号装置管理方法。
【請求項２】
前記端末装置の管理情報は、前記端末装置に割り当てた前記暗号装置管理サーバに存在するスロットに関する情報、前記端末装置の前記暗号装置管理サーバへのアクセス状態に関する情報及び前記端末装置の前記暗号装置管理サーバのスロットのセッション状態に関する情報である、
ことを特徴とする請求項１に記載の暗号装置管理方法。
【請求項３】
前記暗号装置の管理情報は、前記暗号装置がサポートする暗号方式に関する情報、前記暗号装置に存在するスロットに関する情報及び前記暗号装置に存在する鍵オブジェクトに関する情報である、
ことを特徴とする請求項１または請求項２に記載の暗号装置管理方法。
【請求項４】
前記暗号装置管理サーバにより、
前記暗号装置の導入時に、前記接続インターフェースを介して、前記暗号装置がサポートする暗号方式に関する情報と前記暗号装置に存在するスロットに関する情報を取得し、前記暗号装置の管理情報を更新する処理を実施する、
ことを特徴とする請求項３に記載の暗号装置管理方法。
【請求項５】
前記暗号装置管理サーバにより、
前記暗号装置の管理情報を更新する処理において、
前記暗号装置がサポートする暗号方式が安全性の低下及び危殆化した状態であるかを判断する処理を実施する、
ことを特徴とする請求項４に記載の暗号装置管理方法。
【請求項６】
前記暗号装置管理サーバにより、
起動時に、前記接続インターフェースを介して、前記暗号装置に存在するスロットに関する情報及び前記暗号装置に存在する鍵オブジェクトに関する情報を取得し、前記暗号装置の管理情報を更新する処理を実施する、
ことを特徴とする請求項５に記載の暗号装置管理方法。
【請求項７】
前記暗号装置管理サーバにより、
前記端末装置のアクセス時に、前記ネットワークを介して、前記端末装置の管理情報に基づき、前記端末装置を認証する処理を実施する
ことを特徴とする請求項６に記載の暗号装置管理方法。
【請求項８】
複数の端末装置及び複数の暗号装置に接続された暗号装置管理サーバで、制御部により、任意の端末装置からネットワークを介して、第一の暗号演算依頼を受信し、前記暗号装置管理サーバの記憶部に記憶されている端末装置の管理情報と暗号装置の管理情報に基づいて選択した暗号装置に、接続インターフェースを介して第二の暗号演算依頼を送信して、前記暗号装置から第二の暗号演算結果を受信し、第一の暗号演算依頼元の端末装置へ前記ネットワークを介して送信する、暗号装置管理サーバであって、
前記制御部は、
第一の暗号演算依頼と第二の暗号演算結果に基づき、前記記憶部に記憶されている前記端末装置の管理情報と前記暗号装置の管理情報を更新する処理と、
第一の暗号演算依頼と前記端末装置の管理情報と前記暗号装置の管理情報に基づき、第二の暗号演算を生成する処理と、
第二の暗号演算結果と前記端末装置の管理情報と前記暗号装置の管理情報に基づき、第一の暗号演算結果を生成する処理と、
を実施する、
ことを特徴とする暗号装置管理サーバ。
【請求項９】
前記端末装置の管理情報は、前記端末装置に割り当てた前記暗号装置管理サーバに存在するスロットに関する情報、前記端末装置の前記暗号装置管理サーバへのアクセス状態に関する情報及び前記端末装置の前記暗号装置管理サーバのスロットのセッション状態に関する情報である、
ことを特徴とする請求項８に記載の暗号装置管理サーバ。
【請求項１０】
前記暗号装置の管理情報は、前記暗号装置がサポートする暗号方式に関する情報、前記暗号装置に存在するスロットに関する情報及び前記暗号装置に存在する鍵オブジェクトに関する情報である、
ことを特徴とする請求項８または請求項９に記載の暗号装置管理サーバ。
【請求項１１】
前記制御部は、
前記暗号装置の導入時に、前記接続インターフェースを介して、前記暗号装置がサポートする暗号方式に関する情報と前記暗号装置に存在するスロットに関する情報を取得し、前記暗号装置の管理情報を更新する処理を実施する、
ことを特徴とする請求項１０に記載の暗号装置管理サーバ。
【請求項１２】
前記制御部は、
前記暗号装置の管理情報を更新する処理において、
前記暗号装置がサポートする暗号方式が安全性の低下及び危殆化した状態であるかを判断する処理を実施する、
ことを特徴とする請求項１１に記載の暗号装置管理サーバ。
【請求項１３】
前記制御部は、
起動時に、前記接続インターフェースを介して、前記暗号装置に存在するスロットに関する情報及び前記暗号装置に存在する鍵オブジェクトに関する情報を取得し、前記暗号装置の管理情報を更新する処理を実施する、
ことを特徴とする請求項１２に記載の暗号装置管理サーバ。
【請求項１４】
前記制御部は、
前記端末装置のアクセス時に、前記ネットワークを介して、前記端末装置の管理情報に基づき、前記端末装置を認証する処理を実施する
ことを特徴とする請求項１３に記載の暗号装置管理サーバ。
【請求項１５】
コンピュータにより、請求項１乃至請求項７の何れかに記載の暗号装置管理方法を実行するプログラム。
【請求項１６】
コンピュータにより読み出し可能なプログラムを格納した記憶媒体であって、前記コンピュータにより、請求項１乃至請求項７の何れかに記載の暗号装置管理方法を実行させるためのプログラムを格納した、
ことを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
共通鍵暗号における共通鍵及び公開鍵暗号における秘密鍵を安全に保存し、また、共通鍵や秘密鍵を外部に漏洩せずに暗号演算を行う技術に関する。
【背景技術】
【０００２】
行政手続きの電子申請・申告や、電子商取引、オンラインバンキング、オンラインショッピングなど、インターネットを利用したサービス（以下、オンラインサービスと記載する）が普及している。しかし、オンラインサービスでは、他人へのなりすまし、また、インターネット上を流れる電子文書の不正傍受や改ざん、また、契約や申請内容が事後に否定されるといった脅威がある。そこで、正当な通信相手であることを確認するための「認証」、通信路上での不正傍受を防ぐための「暗号化」、電子文書の真正性を担保するための「電子署名」を実施することで、上記の脅威を対策している。「認証」、「暗号化」、「電子署名」を実現する上で、共通鍵暗号や公開鍵暗号といった、暗号技術が、基盤技術になる。
【０００３】
上記の対策を有効的に実施するには、共通鍵暗号における共通鍵及び公開鍵暗号における秘密鍵を安全に保存し、また、共通鍵や秘密鍵を外部に漏洩せずに暗号演算を行う必要がある。そこで、ＩＣカード、ハードウェアセキュリティモジュールやＵＳＢトークンなどの、耐タンパ性を備えた暗号演算専用のハードウェア（以下、暗号装置と記載する）がオンラインサービスをセキュアに実現する上で利用されている。
【０００４】
暗号装置の利用において、暗号装置にアクセスし暗号演算するためのコマンドは暗号装置毎にそれぞれ異なるため、オンラインサービスを提供するアプリケーションは、暗号装置毎に、暗号装置にアクセスするための機能を実装することになる。そのため、アプリケーションと暗号装置の相互運用性確保を目的に、アプリケーションと暗号装置間に共通のインターフェースを設ける取り組みが行われている。この共通化の取り組みにより、アプリケーションは暗号機能を共通のインターフェースで実装すれば良い。その場合に、アプリケーションを実行する端末装置には、共通インターフェースから暗号装置固有のコマンドに変換するためのライブラリをインストールする必要がある。共通の暗号インターフェースの一つであるＰＫＣＳ＃１１の仕様が、非特許文献１に詳細に記載されている。
【０００５】
従来の暗号装置は、アプリケーションを実行する端末装置の、ＵＳＢやＰＣＩなどの物理インターフェースに、１対１で接続して利用する形態であるため、端末装置の増設に伴って、暗号装置も増設する必要があり、コスト負荷が高かった。そこで、複数の端末装置がネットワークを介して、暗号装置を共有する手法が特許文献１に開示されている。さらに、特許文献１では、負荷分散を目的に、ネットワーク上に複数の暗号装置を接続し、複数の端末装置から利用する実施形態が、図７に記載されている。
【０００６】
一方で、近年の暗号解読技術の進歩や電子計算機能力の向上により、「認証」、「暗号化」、「電子署名」などの暗号演算で利用する一部の暗号アルゴリズム、また、鍵長の短い公開鍵の安全性に、問題があることが指摘されている。米国連邦政府の標準暗号を制定する米国立標準技術研究所では、２０１０年までに、米国政府での情報システムにおいて、電子署名に利用するハッシュ関数を、ＳＨＡ−１からＳＨＡ-２へ移行することを強く推奨している。ＳＨＡ−１の安全性に関するコメントは、非特許文献２に詳細に記載されている。
【０００７】
非特許文献２のコメントを受け、各国の認証基盤やアプリケーション提供者は、アプリケーションで利用する暗号アルゴリズムをより安全性の高いものに移行し、また、複数の暗号アルゴリズムから選択できるようにするなど、情報システムの安全性を高める施策を実施している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特表２００５−５３３４３８号公報
【非特許文献】
【０００９】
【非特許文献１】PKCS #11 v2.20: Cryptographic Token Interface Standard, 2004年6月, [online], [平成22年06月28日検索], インターネット＜URL:ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs-11v2-20.pdf＞
【非特許文献２】NIST Comments on Cryptanalytic Attacks on SHA-1, 2006年4月, [online], [平成22年06月28日検索], インターネット＜URL:http://csrc.nist.gov/groups/ST/hash/statement.html＞
【発明の概要】
【発明が解決しようとする課題】
【００１０】
非特許文献２に記載されているように、暗号解読技術の進歩及び電子計算機能力の向上により、アプリケーションで採用されている暗号アルゴリズムの安全性は、日々変化していっている。また、暗号開発技術の向上により、安全性の高い、新しい暗号アルゴリズムが実用化されている。そこで、「認証」、「暗号化」、「電子署名」などの暗号演算を利用するアプリケーションの管理者は、常に暗号アルゴリズムの安全性の動向を確認し、推奨されている暗号アルゴリズムをアプリケーションの暗号演算に採用することが求められる。さらに、暗号アルゴリズムの危殆化時に、他の暗号アルゴリズムへの移行を容易にするため、及び、各ユーザが利用している異なる複数の暗号アルゴリズムに対応するため、アプリケーションの暗号演算で採用する暗号アルゴリズムは、複数の暗号アルゴリズムから選択可能にすることが求められる。
【００１１】
そのため、暗号装置を利用して暗号演算を行うアプリケーションにおいては、その暗号装置が複数の暗号アルゴリズムに対応できる必要がある。しかしながら、暗号装置がサポートする暗号アルゴリズムが、製品毎に異なるため、一つの暗号装置だけでは、アプリケーションで採用する予定の暗号アルゴリズムをサポートできない場合が想定される。その場合には複数の暗号装置を、アプリケーションを実行する端末装置に接続し、アプリケーションのユーザは、暗号演算に利用する暗号アルゴリズムに合わせて、暗号装置を選択していくこととなる。
【００１２】
上記特許文献１では、ネットワーク上に複数の暗号装置を接続し、複数の端末装置から利用する実施形態が記載されているが、各端末装置が、複数の暗号装置を使い分ける方法が記載されていない。
【００１３】
一方、非特許文献１に記載されている技術仕様に基づくと、複数の暗号装置を利用する場合、管理者がアプリケーションを実行する端末装置に、全ての暗号装置のライブラリをインストールし、さらに、ユーザがサポートする暗号アルゴリズムといった各暗号装置の仕様や、各鍵をどの暗号装置に鍵を格納しているかなどの情報を管理する必要がある。また、ユーザは、アプリケーション実行時に、ユーザが選択した暗号アルゴリズムで暗号演算を行うために、上記管理情報に基づき、適切な暗号装置を選択して、ライブラリをロードし、鍵を使い分ける必要がある。そのため、複数の暗号装置を利用するに当たり、管理者及びユーザの負担が大きく、暗号演算を行うための初期処理に時間がかかるといった課題がある。
【００１４】
本発明は上記事情に鑑みてなされたものであり、複数の暗号装置を利用した暗号演算を簡便にかつ迅速に行うことができる暗号装置管理方法、これを実施する暗号装置管理サーバ、プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するための一手段を説明する。本発明では、複数の端末装置及び複数の暗号装置に接続された暗号装置管理サーバにより、任意の端末装置からネットワークを介して、第一の暗号演算依頼を受信し、前記暗号装置管理サーバの記憶部に記憶されている端末装置の管理情報と暗号装置の管理情報に基づいて選択した暗号装置に、接続インターフェースを介して第二の暗号演算依頼を送信して、前記暗号装置から第二の暗号演算結果を受信し、第一の暗号演算依頼元の端末装置へ前記ネットワークを介して送信する、暗号装置管理方法である。前記暗号装置管理サーバは、第一の暗号演算依頼と第二の暗号演算結果に基づき、前記記憶部に記憶されている前記端末装置の管理情報と前記暗号装置の管理情報を更新する処理と、第一の暗号演算依頼と前記端末装置の管理情報と前記暗号装置の管理情報に基づき、第二の暗号演算を生成する処理と、第二の暗号演算結果と前記端末装置の管理情報と前記暗号装置の管理情報に基づき、第一の暗号演算結果を生成する処理とを実施する。
【発明の効果】
【００１６】
本発明によれば、複数の暗号装置を利用した暗号演算を簡便にかつ迅速に行うことができる暗号装置管理方法、これを実施する暗号装置管理サーバ、プログラム及び記憶媒体を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係る暗号装置管理システムの構成を示す図である。
【図２】端末装置１１の構成を示す図である。
【図３】暗号装置管理サーバ１２の構成を示す図である。
【図４】暗号装置管理サーバ１２において、暗号装置情報保持部３６に記憶されている、暗号装置１３の情報を示す図である。
【図５】暗号装置管理サーバ１２において、暗号装置情報保持部３６に記憶されている、図４を鍵生成メカニズム毎に分類した暗号装置１３の情報を示す図である。
【図６】暗号装置管理サーバ１２において、暗号装置情報保持部３６に記憶されている、暗号装置１３のスロットの情報を示す図である。
【図７】暗号装置管理サーバ１２において、暗号装置情報保持部３６に記憶されている、暗号装置１３の鍵オブジェクトの情報を示す図である。
【図８】暗号装置管理サーバ１２において、ユーザ情報保持部３４に記憶されている、端末装置１１のユーザの情報を示す図である。
【図９】暗号装置管理サーバ１２において、ユーザ情報保持部３４に記憶されている、端末装置１１のユーザのアクセス状態を示す図である。
【図１０】暗号装置管理サーバ１２において、ユーザ情報保持部３４に記憶されている、端末装置１１のユーザの仮想スロットのセッション状態を示す図である。
【図１１】図２に示す端末装置１１及び、図３に示す暗号装置管理サーバ１２の各々のハードウェア構成例を示す図である。
【図１２】暗号装置管理サーバ１２における、暗号装置１３の初期設定処理を示すシーケンス図である。
【図１３】端末装置１１における、暗号装置管理サーバ１２の初期設定処理を示すシーケンス図である。
【図１４】暗号装置管理サーバ１２における起動処理を示すシーケンス図である。
【図１５】暗号装置管理サーバ１２における起動処理を示すシーケンス図である。
【図１６】暗号装置管理サーバ１２における、端末装置１１のユーザ認証処理を示すシーケンス図である。
【図１７】端末装置１１における、暗号演算の初期処理を示すシーケンス図である。
【図１８】端末装置１１における、鍵生成処理を示すシーケンス図である。
【図１９】暗号装置管理サーバ１２における、鍵生成処理を示すシーケンス図である。
【図２０】端末装置１１における、署名処理を示すシーケンス図である。
【図２１】端末装置１１における、署名処理を示すシーケンス図である。
【図２２】暗号装置管理サーバ１２における、署名処理を示すシーケンス図である。
【発明を実施するための形態】
【００１８】
以下に、本発明の実施形態について、図面を参照して、詳細に説明する。
【００１９】
図１は、本発明の実施形態に係る暗号装置管理システムの構成を示す図である。
【００２０】
本実施形態では、暗号演算処理を含んだアプリケーションを実行する複数の端末装置１１ａ〜端末装置１１ｍ（「端末装置１１」と総称する）と、暗号演算を実行する暗号装置１３ａ〜暗号装置１３ｎ（「暗号装置１３」と総称する）と、端末装置１１から呼び出された暗号演算処理を暗号装置１３へ依頼する暗号装置管理サーバ１２と、端末装置１１と暗号装置管理サーバ１２を接続するイーサネット（登録商標）等のネットワーク１４と、暗号装置管理サーバ１２と暗号装置１３を接続する接続インターフェース１５からなる。なお、接続インターフェース１５は、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）あるいは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）あるいは、イーサネット（登録商標）などを示す。なお、本実施形態では、暗号演算処理として鍵生成処理と署名処理を例にとり説明するが、その種類は問わず、鍵登録、鍵生成、鍵削除、署名や暗号化等の処理を含むものとする。
【００２１】
次に、図１の暗号装置システムを構成する各装置について説明する。
【００２２】
まず、図２を用いて、端末装置１１を説明する。
【００２３】
端末装置１１は、処理部２０ａと記憶部２０ｂと、ネットワーク１４を介して他装置と通信を行うための通信部２０ｃと、ユーザからの指示の受付を行う入出力部２０ｄと、を有する。
【００２４】
処理部２０ａは、行政手続きの電子申請・申告、電子商取引、オンラインバンキング、オンラインショッピングなどのアプリケーションを実行するアプリケーション実行部２１と、暗号装置管理サーバ１２へ暗号演算処理を依頼する暗号演算指示部２２と、端末装置の各部を統括的に制御する制御部２３と、を有する。
【００２５】
記憶部２０ｂは、ユーザが入出力２０ｄを介してインストールしたアプリケーションプログラムを保持するアプリケーション保持部２４と、暗号装置管理サーバ１２の暗号演算処理を呼び出すためのライブラリを保持する暗号装置管理サーバライブラリ保持部２５と、暗号装置管理サーバ１２へ接続するための設定情報を保持する設定情報保持部２６と、を有する。
【００２６】
このような構成において、暗号装置管理サーバ１２を利用するための初期処理として、制御部２３は、管理者が入出力部２０ｄを介して入力した、暗号管理サーバ１２のＩＰアドレスや、ＳＳＬクライアント証明書などの設定情報を設定情報保持部２６に記憶し、暗号装置管理サーバ１２のライブラリを暗号装置管理サーバライブラリ保持部２５へ記憶する。
【００２７】
さらに、制御部２３は、入出力部２０ｄを介して、暗号装置管理サーバ１２から割り当てられた仮想スロットにログインし、ＰＩＮの設定を行う。
【００２８】
また、制御部２３は、入出力部２０ｄを介して、ユーザがアプリケーション実行部２１を操作すると、アプリケーションに含まれる、鍵登録、鍵生成、鍵削除、署名、暗号化、などの暗号演算処理を、暗号演算指示部２２より、通信部２０ｃを介して、暗号装置管理サーバ１２に依頼し、暗号装置管理サーバ１２から得られた暗号演算結果を利用して、アプリケーションの実行結果を出力する。
【００２９】
次に、図３を用いて暗号装置管理サーバ１２を説明する。暗号装置管理サーバ１２は、処理部３０ａと記憶部３０ｂと、ネットワーク１４を介して他装置と通信を行うための通信部３０ｃと、接続インターフェース１５を介した暗号装置１３との通信や、管理者からの指示の受付を行う入出力部３０ｄと、を有する。
【００３０】
処理部３０ａは、端末装置１１のユーザ認証及びアクセス状態の管理を行うユーザ認証部３１と、端末装置１１からの暗号演算処理の依頼を受けて、暗号装置１３へ暗号演算処理を依頼する暗号装置アクセス部３２と、制御部３３と、を有する。
【００３１】
記憶部３０ｂは、登録したユーザの設定情報、ユーザのアクセス状態や仮想スロットのセッション状態に関する情報を保持するユーザ情報保持部３４と、暗号装置１３の暗号演算処理を呼び出すためのライブラリを保持する暗号装置ライブラリ保持部３５と、暗号装置１３のメカニズム、スロットや鍵オブジェクトの情報を保持する暗号装置情報保持部３６と、を有する。なお、メカニズムとは、ＰＫＣＳ#１１において、鍵生成アルゴリズム、暗号アルゴリズム、ハッシュアルゴリズム、あるいは、暗号アルゴリズムとハッシュ晴吾リズムを組み合わせた署名アルゴリズムなどの暗号方式を示す。
【００３２】
なお、処理部３０ａは、後述の暗号装置管理サーバ１２のメモリ１１２上に、端末装置１１のユーザに対して、仮想スロット、仮想トークン、仮想鍵オブジェクトを、仮想的に生成し、暗号装置情報保持部３６に記憶されている情報を利用して、暗号装置１３に存在するスロット、トークン、鍵オブジェクトの実体との、紐付けを行う。
【００３３】
このような構成において、ユーザ認証部３１は、端末装置１１のユーザから、ユーザ登録依頼を受けると、管理者が入出力部３０ｄを介して入力した、端末装置１１のユーザに割り当てた仮想スロットなどの設定情報をユーザ情報保持部３４に記憶する。
【００３４】
また、新たに暗号装置１３を登録する場合は、制御部３３から命令を受けた暗号装置アクセス部３２は、入出力部２０ｄを介して、暗号装置ライブラリ保持部３５に記憶した暗号装置１３のライブラリを利用して、暗号装置１３が備えている暗号メカニズムや各スロット情報などを取得し、暗号装置情報保持部３６に記憶する。新たに暗号装置１３を増設することで、端末装置１１の暗号演算処理に提供するメカニズムを増やすことが可能である。なお、暗号アルゴリズム及び鍵長の安全性が問題となっている暗号メカニズム、あるいは、暗号装置管理サーバ１２の管理者が危殆化している判断する暗号メカニズムについて、管理者がリストを作成し、暗号装置管理サーバ１２に保存する。暗号装置管理サーバ１２は、登録する予定の、暗号装置１３が備える暗号メカニズムを、暗号装置情報保持部３６に登録する処理において、上記リストを参照し、上記リストに存在する暗号メカニズムへの登録を省略する。
【００３５】
また、端末装置１１と直接的に接続して利用していた既存の暗号装置１３を、暗号装置管理サーバ１２を介して間接的に利用する場合は、既存の暗号装置１３の登録を行う。その場合は、上記に記載した、新たに暗号装置１３を登録する場合の処理に加え、暗号装置アクセス部３２は、既存の暗号装置１３のライブラリを利用して、既存の暗号装置１３のスロットのセッション確立、トークンログインを行い、セッション情報や格納されている鍵オブジェクトの情報を取得し、取得した情報を暗号装置情報保持部３６へ記憶する。さらに、管理者は入出力部３０ｄを介して、暗号装置１３を直接的に接続していた端末装置１１のユーザに、仮想スロットを割り当て、ユーザ認証部３１は、端末装置１１のユーザに割り当てた仮想スロットなどの設定情報をユーザ情報保持部３４に記憶する。さらに、管理者は入出力部３０ｄを介して、既存の暗号装置１３から取得した鍵オブジェクトに対して、仮想鍵オブジェクトを割り当て、暗号装置アクセス部３２は、仮想鍵オブジェクトと既存の暗号装置１３から取得した鍵オブジェクトとの紐付け情報を、暗号装置情報保持部３６に記憶する。
【００３６】
また、管理者が暗号装置管理サーバ１２を起動した際に、制御部３３は、暗号装置アクセス部３２に暗号装置情報の取得を命令する。命令を受けた暗号装置アクセス部３２は、暗号装置ライブラリ保持部３５に記憶している各々の暗号装置ライブラリを利用して、各々の暗号装置１３のスロットのセッション確立、トークンログインを行い、セッション情報や格納されている鍵オブジェクトの情報を取得し、取得した情報を暗号装置情報保持部３６へ記憶する。
【００３７】
また、通信部３０ｃを介して、端末装置１１からの接続依頼を受信すると、制御部３３は、ユーザ認証部３１へ、接続依頼を通知する。通知を受けたユーザ認証部３１は、ユーザ情報保持部３４に記憶されているユーザ情報に基づいて、ユーザ認証を行う。ユーザ認証に成功した場合、ユーザ認証部３１は、ユーザ情報保持部３４にアクセス状態を記憶し、さらに、次回以降の暗号演算依頼において、端末装置１１と暗号装置管理サーバ１２間の安全なセッションを確立する。なお、安全なセッションとは、ＳＳＬ／ＴＬＳなどの通信技術を利用したセッションを意味する。
【００３８】
また、通信部３０ｃを介して、制御部３３が端末装置１１からの切断依頼を受信し、切断をユーザ認証部３１に命令した場合、及び、接続状態である端末装置１１のユーザが一定時間以上、仮想スロットとセッションを確立していない場合、ユーザ認証部３１は、該当する端末装置１１とのセッションを切断し、ユーザ情報保持部３４に記憶されている、該当する端末装置１１のアクセス状態を削除する。
【００３９】
また、通信部３０ｃを介して、端末装置１１からの暗号演算依頼を受信すると、制御部３３は、ユーザ認証部３１へ、暗号演算依頼を通知する。通知を受けたユーザ認証部３１は、ユーザ情報保持部３４に記憶されているユーザのアクセス状態を参照することにより、ユーザがログイン状態であることを確認し、ユーザＩＤと暗号演算依頼を暗号装置アクセス部３２へ送信する。ユーザＩＤと暗号演算依頼を受信した暗号装置アクセス部３２は、ユーザが選択した、暗号装置管理サーバ１２のメモリ１１２上の仮想スロットとの間に、セッションを確立し、鍵登録、鍵生成、鍵削除、署名や暗号化などの暗号演算依頼を受け付ける。
【００４０】
暗号演算の中で鍵生成においては、暗号装置アクセス部３２は、暗号装置１３にアクセスし、実体の鍵オブジェクトを生成すると共に、暗号装置管理サーバ１２上に、実体の鍵オブジェクトに対応した仮想鍵オブジェクトを生成し、通信部３０ｃを介して、仮想鍵オブジェクトの情報を端末装置１１に通知する。さらに、暗号装置アクセス部３２は、生成した、仮想鍵オブジェクトの情報を、ユーザ情報保持部３４に記憶する。
【００４１】
暗号演算の中で署名や暗号化においては、暗号装置アクセス部３２は、生成した仮想鍵オブジェクトを、ユーザ情報保持部３４に記憶されたユーザ情報に基づき、実体の鍵オブジェクトに変換する。さらに、暗号装置アクセス部３２は、暗号装置１３にアクセスし、実体の鍵オブジェクトを利用して、署名や暗号化を行い、通信部３０ｃを介して、その処理結果を端末装置１１に通知する。
【００４２】
なお、図２に示す端末装置１１、及び、図３に示す暗号装置管理サーバ１２は、例えば、図１１に示すような、ＣＰＵ１１１と、メモリ１１２と、ハードディスク等の外部記憶装置１１３と、ネットワーク１４を介して他装置と通信を行うための通信装置１１４と、キーボードやマウス等の入力装置１１５と、モニタやプリンタ等の出力装置１１６と、ＣＤ−ＲＯＭ等の可搬性を有する記憶媒体１１８から情報を読み取る読取装置１１７と、これらの各装置間のデータ送受を行う内部通信線１１０とを備えた、一般的な電子計算機（コンピュータ）上に構築できる。
【００４３】
そして、ＣＰＵ１１１が外部記憶装置１１３からメモリ１１２上にロードされた所定のプログラムを実行することにより、上述の各処理部を実現できる。すなわち、通信部２０ｃ、３０ｃは、ＣＰＵ１１１が通信装置１１４を利用することにより、入出力部２０ｄ、３０ｄは、ＣＰＵ１１１が入力装置１１５や出力装置１１６や読取装置１１７を利用することにより、そして、記憶部２０ｂ、３０ｂは、ＣＰＵ１１１がメモリ１１２や外部記憶装置１１３を利用することにより実現される。また、処理部２０ａ、３０ａは、ＣＰＵ１１１のプロセスとして実現される。
【００４４】
上記所定のプログラムは、予め外部記憶装置１１３に格納されていても良いし、上記電子計算機が利用可能な記憶媒体１１８に格納されており、読み取り装置１１７を介して、必要に応じて読み出され、あるいは、上記電子計算機が利用可能な通信媒体であるネットワーク１４またはネットワーク１４上を伝搬する搬送波を利用する通信装置１１４と接続された他の装置から、必要に応じてダウンロードされて、外部記憶装置１１３に導入されるものであっても良い。
【００４５】
次に図４を用いて、暗号装置管理サーバ１２の暗号装置情報保持部３６に記憶されている、暗号装置設定ファイル４０を説明する。暗号装置設定ファイル４０は、暗号装置１３の初期設定処理において、入出力部３０ｄを介して、編集される。各々の暗号装置１３について、暗号装置ＩＤ４１の列に管理者が割り当てた暗号装置ＩＤを、暗号装置名４２の列に暗号装置名を、暗号装置ライブラリ名４３の列に暗号装置ライブラリのパス名を、記載する。また、メカニズム情報４４の列に、各々の暗号装置１３がサポートしている、暗号に関わるメカニズム名と鍵長をそれぞれ記載する。メカニズム名４５の例にメカニズム名を、鍵長４６の列に、最短の鍵長と最長の鍵長を記載する。
【００４６】
次に図５を用いて、暗号装置管理サーバ１２の暗号装置情報保持部３６に記憶されている、鍵生成メカニズム別暗号装置リスト５０を説明する。鍵生成メカニズム別暗号装置リスト５０は、図４に示した、暗号装置設定ファイル４０の、メカニズム４５の列から鍵生成のメカニズム（例えば、ＣＫＭ＿ＲＳＡ＿ＰＫＣＳ＿ＫＥＹ＿ＰＡＩＲ＿ＧＥＮ）を、抽出し、鍵生成メカニズム順にリスト化したものである。鍵生成メカニズム５１の例に、図４に示した暗号装置設定ファイル４０のメカニズム４５に存在する鍵生成メカニズムを、鍵長５２の列に図４に示した暗号装置設定ファイル４０の鍵長４６の列から抽出した鍵生成メカニズム５１における最短の鍵長と最長の鍵長を記載する。また、鍵生成メカニズム５１の列に記載したメカニズムをサポートする暗号装置１３の暗号装置ＩＤを、暗号装置１３の性能を考慮して、振分の優先順位が高いものから順に、暗号装置ＩＤ５３の列に記載する。鍵生成メカニズム５１の列に対応する、暗号装置ＩＤが暗号装置ＩＤ５３の列に複数存在した場合には、複数の暗号装置１３を振り分けるための方式を、振分方式５４の列に、記載する。例えば、暗号装置１３の性能が異なる場合は、暗号装置ＩＤ５３の列の順に重み付けを行い、ラウンドロビン方式で振り分けることができる。また、例えば、暗号装置１３の性能が同一の場合は、各々の暗号装置１３のコネクション数が均等になるように、一番コネクションの少ない暗号装置１３から優先的に振り分ける最小コネクション数方式で振り分けることができる。
【００４７】
次に図６を用いて、暗号装置管理サーバ１２の暗号装置情報保持部３６に記憶されている、暗号装置スロット管理テーブル６０を説明する。暗号装置スロット管理テーブル６０は、暗号装置管理サーバ１２の起動処理において編集される。各々の暗号装置１３について、暗号装置ＩＤ６１の列に暗号装置ＩＤを、スロットＩＤ６２の列に各々の暗号装置１３に存在するスロットのＩＤを、ＰＩＮ６３の列に各々のスロットのＰＩＮを、セッションハンドル６４の列に、暗号装置管理サーバ１２の起動時の処理で取得した各々のスロットのセッションハンドルの値を記載する。なお、ＰＩＮは暗号された状態で、暗号装置情報保持部３６に保存することができる。また、セッションハンドルは、暗号装置１３とのセッション確立時に生成された値が設定される。
【００４８】
次に図７を用いて、暗号装置管理サーバ１２の暗号装置情報保持部３６に記憶されている、鍵オブジェクト管理テーブル７０を説明する。鍵オブジェクト管理テーブル７０は、端末装置１１と暗号装置管理サーバ１２における鍵生成処理及び暗号装置管理サーバ１２における起動処理において編集される。各々の仮想鍵オブジェクトについて、仮想鍵ハンドル７１の列に仮想鍵ハンドルの値を、暗号装置ＩＤ７２の列に実鍵オブジェクトが存在する暗号装置ＩＤを、実スロットＩＤ７３の列に実鍵オブジェクトが存在するスロットのＩＤを、実鍵ハンドル７４の列に、暗号装置１３における実鍵ハンドルの値を、属性情報７５に実鍵オブジェクトのラベル名、鍵種別、公開鍵などの属性情報を記載する。なお、実鍵ハンドル７４は、暗号装置１３において鍵オブジェクト探索時に生成され設定される。
【００４９】
次に図８を用いて、暗号装置管理サーバ１２のユーザ情報保持部３４に記憶されている、ユーザ設定ファイル８０を説明する。ユーザ設定ファイル８０は、端末装置１１のユーザの登録時に、編集される。各々のユーザについて、ユーザＩＤ８１の列に、登録したユーザのＩＤを、仮想スロットＩＤ８２の列の各々のユーザに割り当てた仮想スロットＩＤを、ＰＩＮ８３の列に各々の仮想スロットのＰＩＮを、仮想鍵ハンドル８４の列に各々の仮想スロットに存在する仮想鍵ハンドルの値を記載する。なお、ＰＩＮは暗号された状態で、ユーザ情報保持部３４に保存される。
【００５０】
次に図９を用いて、暗号装置管理サーバ１２のユーザ情報保持部３４に記憶されている、アクセス状態管理テーブル９０を説明する。アクセス状態管理テーブル９０は、端末装置１１により、暗号装置管理サーバ１２に接続時と切断時に、編集される。セッションＩＤ９１の列に端末装置１１と暗号装置管理サーバ１２との間のセッションＩＤを、ユーザＩＤ９２の列に各々のセッションＩＤを割り当てられた端末装置１１のユーザのＩＤを、ログイン時刻９３の列に各々のユーザがログインした時刻を、タイムアウト時刻９４の列に各々のユーザのログイン状態がタイムアウトする時刻を記載する。タイムアウト時刻９４は、ユーザがログインした時刻に、別途管理者が設定するタイムアウト時間間隔を加えて算出される。なお、タイムアウト時刻９４に達すると、ユーザ認証部３１は、該当するユーザＩＤのセッション状態をログアウトに変更し、アクセス状態管理テーブル９０から該当するセッション情報を削除する。また、タイムアウト時刻９４に達した場合は、ユーザ認証部３１は、該当するユーザに割り当てた仮想スロットとのセッション状態を、図１０に示す暗号装置セッション状態管理テーブル１００で確認し、該当するユーザの仮想セッションハンドルが存在する場合は、タイムアウト時刻９４を更新する。ただし、端末装置１１が、仮想スロットとのセッション切断や、暗号装管理サーバ１２とのアクセス切断要求を行わずに、アクセス切断を行った場合に備え、タイムアウト時刻９４に達した場合に、ユーザ認証部３１は、タイムアウト時刻９４の更新を行わないことも、設定により可能である。
【００５１】
次に図１０を用いて、暗号装置管理サーバ１２のユーザ情報保持部３４に記憶されている、暗号装置セッション状態管理テーブル１００を説明する。暗号装置セッション状態管理テーブル１００は、端末装置１１が、暗号装置管理サーバ１２に存在する仮想スロットとセッションを確立した時に、更新される。ユーザＩＤ１０１の列に仮想スロットのセッションを確立しているユーザのＩＤを、仮想セッションハンドル１０２の列に各々の仮想セッションハンドルの値を、仮想トークンログイン状態１０３の列に各々の仮想トークンのログイン状態（ログインあるいはログアウト）を、仮想鍵ハンドル１０４の列に、端末装置１１のユーザが選択した仮想鍵ハンドルの値を、メカニズム１０５の列に、端末装置１１のユーザが選択したメカニズム名を、記載する。なお、暗号演算が署名である場合は、署名対象文書１０６の列に、端末装置１１のユーザが指定した署名対象データの値を記載する。
【００５２】
次に、図１２〜図２２において、端末装置１１と暗号装置管理サーバ１２間の一例の処理、及び、暗号装置管理サーバ１２と暗号装置１３間の一例の処理を、詳しく説明する。
【００５３】
先ず、図１２を用いて、暗号装置管理サーバ１２における、新たに接続する暗号装置１３の初期設定処理を示す。
【００５４】
暗号装置管理サーバ１２の暗号装置アクセス部３２は、新たに接続する暗号装置１３のライブラリを暗号装置ライブラリ保持部３５から取得し、メモリ１１２上にロードする（Ｓ１０１）。なお、暗号装置アクセス部３２が、ロードしたライブラリの関数を利用し、後述する暗号装置１３への各々の要求を生成すると、制御部３３は、入出力部３０ｄに命令し、接続インターフェース１５を介して暗号装置１３に各々の要求を送信する。
【００５５】
最初に、暗号装置アクセス部３２は、スロットリスト取得要求を作成し、暗号装置１３へ送信する（Ｓ１０２）。
【００５６】
暗号装置１３は、スロットリスト取得要求を受信する（Ｓ１０３）と、暗号装置１３に備えられているスロットリストを取得し、暗号装置アクセス部３２に応答する（Ｓ１０４）。
【００５７】
暗号装置アクセス部３２は、スロットリストを受信する（Ｓ１０５）と、１番目のスロットを選択して（Ｓ１０６）、メカニズムリスト取得要求を作成し、暗号装置１３へ送信する（Ｓ１０７）。
【００５８】
暗号装置１３は、メカニズムリスト取得要求を受信する（Ｓ１０８）と、暗号装置１３がサポートするメカニズムリストを暗号装置アクセス部３２に応答する（Ｓ１０９）。
【００５９】
暗号装置アクセス部３２は、メカニズムリストを受信する（Ｓ１１０）と、メカニズムリストの１番目のメカニズムを選択する（Ｓ１１１）。暗号装置アクセス部３２は、１番目のメカニズムに関する情報の取得要求を作成し、暗号装置１３に送信する（Ｓ１１２）。
【００６０】
暗号装置１３は、メカニズム情報要求を受信する（Ｓ１１３）と、該当するメカニズムがサポートする、鍵長などの詳細情報を取得し、暗号装置アクセス部３２へ応答する（Ｓ１１４）。
【００６１】
暗号装置アクセス部３２は、メカニズムに関する情報を受信する（Ｓ１１５）と、暗号装置情報保持部３６に記憶されている暗号装置設定ファイル４０に、暗号装置管理サーバ１２の管理者が割り振った暗号装置ＩＤ、暗号装置名、暗号装置ライブラリ名及びメカニズム情報を記載し、登録する（Ｓ１１６）。なお、Ｓ１１５で取得したメカニズム情報に含まれる、暗号アルゴリズム及び鍵長の安全性が問題となっている場合や、危殆化している場合は、暗号装置管理サーバ１２の管理者の判断により、Ｓ１１６において登録するメカニズム情報の一部、もしくは、全部を省略する。Ｓ１１０で取得したメカニズムリストの最後まで到達していない場合（Ｓ１１７でＮｏ）、メカニズムリストから次のメカニズムを選択し（Ｓ１１８）、Ｓ１１２へ進む。暗号装置アクセス部３２は、Ｓ１１０で取得したメカニズムリストの最後まで到達した場合（Ｓ１１７でＹｅｓ）、鍵生成メカニズム別暗号装置リスト５０に、新たに接続した暗号装置１３の情報を追記し、複数の暗号装置１３が同一の鍵生成メカニズムをサポートする場合は、振分優先度と振分方式を決定する（Ｓ１１９）。なお、複数の暗号装置１３が同一の鍵生成メカニズムをサポートしない場合は、振分優先度は１番、図５に示した鍵生成メカニズム別暗号装置リスト５０の振分方式５４には「-」を記載する。
【００６２】
続いて、暗号装置アクセス部３２は、新たなＰＩＮ情報を含んだスロットのＰＩＮ設定要求を暗号装置１３に送信する（Ｓ１２０）。
【００６３】
暗号装置１３は、ＰＩＮ設定要求を受信する（Ｓ１２１）と、初期設定されているＰＩＮをＰＩＮ設定要求に含まれているＰＩＮに変更し、ＰＩＮ設定結果を応答する（Ｓ１２２）。
【００６４】
暗号装置アクセス部３２は、ＰＩＮ設定応答結果を受信し（Ｓ１２３）、その結果が成功である場合、暗号装置情報保持部３６に記憶されている暗号装置スロット管理テーブル６０に、暗号装置ＩＤ、暗号装置アクセス部３２が選択しているスロットＩＤ、新たに設定したＰＩＮを、記載する（Ｓ１２４）。Ｓ１０５で取得したスロットリストの最後まで到達していない場合（Ｓ１２５でＮｏ）、スロットリストから次のスロットを選択し（Ｓ１２６）、Ｓ１２０へ進む。スロットリストの最後まで到達している場合（Ｓ１２５でＹｅｓ）、処理を終了する。
【００６５】
次に図１３を用いて、端末装置１１における、暗号装置管理サーバ１２を利用するための初期設定処理を示す。
【００６６】
端末装置１１は、入出力部２０ｄを介して、暗号装置管理サーバ１２のライブラリを暗号装置管理サーバライブラリ保持部２５から取得し、メモリ１１２上にロードする（Ｓ２０１）。端末装置１１は、ロードしたライブラリの関数を利用して、後述する暗号装置管理サーバ１２への各々の要求を生成する。また、端末装置１１は、各々の要求を通信部２０ｄに通知し、ネットワーク１４を介して暗号装置管理サーバ１２に各々の要求を送信する。なお、暗号装置管理サーバ１２のユーザ認証部３１は、アクセス状態管理テーブル９０で、端末装置１１のユーザがログイン状態であることを確認し、さらに通信に含まれるセッションＩＤを検索キーに、ユーザＩＤを取得して、端末装置１１の要求とユーザＩＤを暗号装置アクセス部３２へ送信する（Ｓ１００）。ユーザ認証処理については、図１６に記載する。最初に、端末装置１１は、スロットリスト取得要求を作成し、暗号装置管理サーバ１２へ送信する（Ｓ２０２）。
【００６７】
暗号装置管理サーバ１２の暗号装置アクセス部３２は、スロットリスト取得要求を受信する（Ｓ２０３）と、ユーザ情報保持部３４に備えられているユーザ設定ファイル８０から、ユーザ認証部３１から送信されたユーザＩＤを検索キーにして、仮想スロットＩＤを検索して、複数のスロットＩＤからなるスロットリストを取得し（Ｓ２０４）、端末装置１１に応答する（Ｓ２０５）。
【００６８】
端末装置１１は、スロットリストを受信する（Ｓ２０６）と、１番目のスロットを選択（Ｓ２０７）する。選択したスロットのＰＩＮ設定を行う場合（Ｓ２０８でＹｅｓ）は、端末装置１１は新たなＰＩＮ情報を含んだスロットのＰＩＮ設定要求を暗号装置管理サーバ１２へ送信する（Ｓ２０９）。
【００６９】
暗号装置アクセス部３２は、ＰＩＮ設定要求を受信する（Ｓ２１０）と、ＰＩＮ設定要求に含まれているＰＩＮをユーザ設定ファイル８０の該当するユーザＩＤの行に記載し（Ｓ２１１）、端末装置１１にＰＩＮ設定結果を応答する（Ｓ２１２）。
【００７０】
端末装置１１は、ＰＩＮ設定結果を受信し（Ｓ２１３）、Ｓ２０６で取得したスロットリストの最後まで到達していない場合（Ｓ２１４でＮｏ）、スロットリストから次のスロットを選択し（Ｓ２１５）、Ｓ２０８へ進む。スロットリストの最後まで到達している場合（Ｓ２１４でＹｅｓ）は、端末装置１１は、処理を終了する。
【００７１】
次に図１４、図１５において、暗号装置管理サーバ１２における、起動処理を示す。Ｓ３０１からＳ３１４、及び、Ｓ３２９からＳ３３１を図１４に、また、Ｓ３１５からＳ３２８を図１５に記載する。
【００７２】
暗号装置アクセス部３２は、暗号装置情報保持部３６に記憶されている暗号装置設定ファイル４０の１番目の暗号装置を選択し（Ｓ３０１）、１番目の暗号装置のライブラリを暗号装置ライブラリ保持部３５から取得する（Ｓ３０２）。暗号装置アクセス部３２は、暗号装置管理サーバ１２のメモリ１１２上に、ライブラリをロードする（Ｓ３０３）。暗号装置情報保持部３６に記憶されている暗号装置スロット管理テーブル６０から選択した暗号装置の暗号装置ＩＤを検索キーにして、スロットＩＤを検索し、１番目のスロットを選択する（Ｓ３０４）。暗号装置アクセス部３２は、１番目のスロットに対するセッション確立要求を暗号装置１３に送信する（Ｓ３０５）。
【００７３】
暗号装置１３は、セッション確立要求を受信すると（Ｓ３０６）、指定されたスロットのセッション確立を行い、セッション確立結果を応答する（Ｓ３０７）。
【００７４】
暗号装置アクセス部３２は、セッション確立応答を受信する（Ｓ３０８）と、セッション確立応答に含まれるセッションハンドルを、暗号装置スロット管理テーブル６０の該当する暗号装置ＩＤ及びスロットＩＤの行に記載する（Ｓ３０９）。さらに、暗号装置アクセス部３２は、暗号装置スロット管理テーブル６０から、選択した暗号装置ＩＤ及びスロットＩＤを検索キーにして、ＰＩＮを取得する（Ｓ３１０）。暗号装置アクセス部３２は、Ｓ３０８で取得したセッションハンドルとＳ３１０で取得したＰＩＮを、含んだトークンログイン要求を送信する（Ｓ３１１）。
【００７５】
暗号装置１３は、トークンログイン要求を受信すると（Ｓ３１２）、ＰＩＮの照合を行い、トークンログイン結果を送信する（Ｓ３１３）。
【００７６】
暗号装置アクセス部３２は、トークンログイン応答を受信し（Ｓ３１４）、その結果が成功である場合は、図１５に示す、Ｓ３１５に進む。暗号装置アクセス部３２は、暗号装置情報保持部３６に記憶されている鍵オブジェクト管理テーブル７０から選択した暗号装置ＩＤ及び実スロットＩＤを検索キーにして、仮想鍵ハンドルを検索し、存在しない場合は（Ｓ３１５でＮｏ）、図１４のＳ３２９へ進む。存在する場合は（Ｓ３１５でＹｅｓ）、該当する暗号装置ＩＤ及び実スロットＩＤの１番目の仮想鍵オブジェクトの選択し（Ｓ３１６）、鍵オブジェクト管理テーブル７０から、選択した仮想鍵ハンドルを検索キーとして、属性情報を取得する（Ｓ３１７）。暗号装置アクセス部３２は、Ｓ３０８で取得したセッションハンドルとＳ３１７で取得した属性情報を含んだ、鍵オブジェクト検索設定要求を暗号装置１３へ送信する（Ｓ３１８）。
【００７７】
暗号装置１３は、鍵オブジェクト検索設定要求を受信すると（Ｓ３１９）、その要求に含まれる属性情報を記憶し、オブジェクト検索設定応答を送信する（Ｓ３２０）。暗号装置アクセス部３２は、鍵オブジェクト検索設定応答を受信し（Ｓ３２１）、その結果が成功である場合、Ｓ３０８で取得したセッションハンドルを含む鍵オブジェクト検索要求を暗号装置１３に送信する（Ｓ３２２）。暗号装置１３は、鍵オブジェクト検索要求を受信すると（Ｓ３２３）、Ｓ３１９で取得した属性情報を検索キーとして、Ｓ３１２でログインしたトークンの鍵オブジェクトを検索する。暗号装置１３は、検索した鍵オブジェクトの鍵ハンドルを、暗号装置アクセス部３２へ送信する（Ｓ３２４）。
【００７８】
暗号装置アクセス部３２は、鍵オブジェクト検索応答を受信すると（Ｓ３２５）、鍵オブジェクト検索応答に含まれる実鍵ハンドルを、鍵オブジェクト管理テーブル７０の該当する仮想鍵ハンドルの行に記載する（Ｓ３２６）。鍵オブジェクト管理テーブル７０において、選択した暗号装置ＩＤ及び実スロットＩＤの、最後の仮想鍵ハンドルに到達していない場合は（Ｓ３２７でＮｏ）、暗号装置アクセス部３２は、次の仮想鍵ハンドルを選択し（Ｓ３２８）、Ｓ３１７へ進む。最後の仮想鍵ハンドルに到達している場合は（Ｓ３２７でＹｅｓ）、暗号装置アクセス部３２は、図１４で示すＳ３２９へ進む。暗号装置設定ファイル４０において、選択した暗号装置ＩＤのスロットリストの最後に到達していない場合は（Ｓ３２９でＮｏ）、暗号装置アクセス部３２は、次のスロットを選択し（Ｓ３３０）、Ｓ３０５へ進む。選択した暗号装置ＩＤのスロットリストの最後に到達している場合は（Ｓ３２９でＹｅｓ）、暗号装置アクセス部３２は、Ｓ３３１へ進む。暗号装置設定ファイル４０の最後の暗号装置ＩＤの行に到達してない場合は（Ｓ３３１でＮｏ）、暗号装置アクセス部３２は、次の暗号装置ＩＤを選択し（Ｓ３３２）、さらに選択した暗号装置のライブラリを暗号装置ライブラリ保持部３５から取得し（Ｓ３３３）、Ｓ３０３へ進む。最後の暗号装置ＩＤの行に到達している場合は（Ｓ３３１でＹｅｓ）、暗号装置アクセス部３２は、処理を終了する。
【００７９】
次に図１６を用いて、暗号装置管理サーバ１２における、端末装置１１のユーザ認証処理を示す。端末装置１１は、ユーザ認証に成功した後、取得したセッションＩＤを利用して暗号装置管理サーバ１２に暗号演算を依頼することができる。
【００８０】
端末装置１１は、設定情報保持部２６に記憶されている、暗号装置管理サーバ１２のＩＰアドレスやＳＳＬクライアント証明書を利用して、アクセス要求を生成し（Ｓ４０１）、暗号装置管理サーバ１２に送信する（Ｓ４０２）。
【００８１】
ユーザ認証部３１は、アクセス要求を受信すると（Ｓ４０３）、ＳＳＬのクライアント認証を行う。認証に失敗した場合（Ｓ４０４でＮｏ）、認証失敗とするアクセス応答を作成し（Ｓ４０５）、Ｓ４０８へ進む。認証に成功した場合（Ｓ４０４でＹｅｓ）、ユーザ認証部３１は、端末装置１１と暗号装置管理サーバ１２間のセッションを確立し、生成したセッションＩＤを、ユーザ情報保持部３４に記憶されているアクセス状態管理テーブル９０に、セッションＩＤ、ユーザＩＤ、ログイン時刻及びタイムアウト時刻を登録する（Ｓ４０６）。さらに、ユーザ認証部３１は、セッションＩＤを含むアクセス応答を生成し（Ｓ４０７）、アクセス応答を暗号装置１３に送信する（Ｓ４０８）。
【００８２】
端末装置１１は、アクセス応答を受信する（Ｓ４０９）と、その応答に含まれるセッションＩＤを保存し、次回以降の暗号演算依頼の通信で利用する。
【００８３】
次に図１７において、端末装置１１が、鍵生成、暗号、署名などの暗号演算依頼を行う前に実施する初期処理を示す。
【００８４】
最初に、端末装置１１は、スロットリスト取得要求を作成し、暗号装置管理サーバ１２へ送信する（Ｓ５０１）。
【００８５】
暗号装置管理サーバ１２の暗号装置アクセス部３２は、スロットリスト取得要求を受信する（Ｓ５０２）と、ユーザ情報保持部３４に備えられているユーザ設定ファイル８０から、ユーザ認証部３１から送信されたユーザＩＤを検索キーにして、仮想スロットＩＤを検索して、複数のスロットＩＤからなるスロットリストを取得し（Ｓ５０３）、端末装置１１に応答する（Ｓ５０４）。
【００８６】
端末装置１１は、スロットリストを受信する（Ｓ５０５）と、暗号演算で利用するスロットのスロットＩＤを選択し（Ｓ５０６）、選択したスロットに対するセッション確立要求を送信する（Ｓ５０７）。
【００８７】
暗号装置アクセス部３２は、セッション確立要求を受信すると（Ｓ５０８）、仮想セッションハンドルを生成し、ユーザ情報保持部に記憶されている暗号装置セッション状態管理テーブル１００の該当するユーザＩＤの行に記載する（Ｓ５０９）。さらに、暗号装置アクセス部３２は、仮想セッションハンドルを含む、セッション確立結果を応答する（Ｓ５１０）。
【００８８】
端末装置１１は、セッション確立応答を受信すると（Ｓ５１１）、暗号装置アクセス部３２は、Ｓ５１１で取得したセッションハンドルとＳ５０６で選択したスロットに割り当てられたトークンのＰＩＮを含んだトークンログイン要求を送信する（Ｓ５１２）。
【００８９】
暗号装置アクセス部３２は、トークンログイン要求を受信すると（Ｓ５１３）、ユーザ情報保持部３４に記憶されているユーザ設定ファイル８０の該当するユーザＩＤのＰＩＮを参照し、Ｓ５１３で受信したＰＩＮとの照合を行い。照合に失敗した場合は（Ｓ５１４でＮｏ）、照合失敗とするトークンログイン応答を作成する（Ｓ５１５）。照合に成功した場合（Ｓ５１４でＹｅｓ）、暗号装置アクセス部３２は、暗号装置セッション状態管理テーブル１００に、該当するユーザＩＤ及び仮想セッションハンドルに該当する仮想トークンログイン状態をログインと記載する（Ｓ５１６）。さらに、暗号装置アクセス部３２は、照合成功とするトークンログイン応答を作成し（Ｓ５１７）、トークンログイン結果を応答する（Ｓ５１８）。
【００９０】
端末装置１１は、トークンログイン応答を受信すると（Ｓ５１９）、例えば、図１８〜図２２に示す、暗号演算の依頼を行う。なお、同様の方法にて、鍵登録、鍵削除、暗号化などの暗号演算の依頼を行うことができる。
【００９１】
次に図１８、図１９において、端末装置１１及び暗号装置管理サーバ１２における、鍵生成処理を示す。Ｓ６０１からＳ６０５、及び、Ｓ６１２からＳ６１５を図１８に、また、Ｓ６０６からＳ６１１を図１９に記載する。
【００９２】
図１７に示した初期処理を完了後、端末装置１１は、鍵生成のメカニズムや、鍵長などを含む鍵ペア生成要求を、暗号装置管理サーバ１２に送信する（Ｓ６０１）。
【００９３】
暗号装置アクセス部３２は、鍵ペア生成要求を受信すると（Ｓ６０２）、暗号装置情報保持部３６に記憶されている鍵生成メカニズム別暗号装置リスト５０を参照し、Ｓ６０２で取得した鍵生成のメカニズム及び鍵長をサポートする暗号装置１３が存在するか確認する。存在しない場合（Ｓ６０３でＮｏ）、暗号装置アクセス部３２は、鍵ペア生成結果を失敗とする鍵ペア生成応答を作成する（Ｓ６０４）。存在する場合は（Ｓ６０３でＹｅｓ）、暗号装置アクセス部３２は、鍵生成メカニズム別暗号装置リスト５０から該当する暗号装置ＩＤを取得する。また、該当する暗号装置ＩＤが複数存在する場合は、暗号装置アクセス部３２は、記載されている振分方式に基づき、暗号装置ＩＤを一つ選択し（Ｓ６０５）、図１９に示すＳ６０６に進む。暗号装置アクセス部３２は、Ｓ６０５で選択した暗号装置ＩＤに基づき、暗号装置情報保持部３６に記憶されている暗号装置スロット管理テーブル６０を検索し、該当する複数のスロットＩＤから、任意のスロットＩＤを選択し（Ｓ６０６）、さらに、暗号装置アクセス部３２は、Ｓ６０６で選択したスロットＩＤに対応するセッションハンドルを取得する（Ｓ６０７）。暗号装置アクセス部３２は、Ｓ６０６で取得したスロットＩＤと、Ｓ６０８で取得したセッションハンドルと、端末装置１１が指定したメカニズム情報を含む鍵ペア生成要求（暗号演算依頼）を暗号装置１３に送信する（Ｓ６０８）。
【００９４】
暗号装置１３は、鍵ペア生成要求を受信すると（Ｓ６０９）、鍵ペア生成要求に含まれるメカニズム情報で鍵オブジェクト（属性情報）を生成する。さらに、暗号装置１３は、生成した鍵ペアオブジェクトを特定する情報である、鍵ハンドル、を含む鍵ペア生成応答を送信する（Ｓ６１０）。暗号装置アクセス部３２は、鍵ペア生成応答（暗号演算結果）を受信すると（Ｓ６１１）、図１８のＳ６１２へ進む。暗号装置アクセス部３２は、生成した鍵ハンドルに対応する仮想鍵ハンドルとして、図７に示す仮想鍵ハンドル７１の列に存在しない任意の値を、新たに生成し、ユーザ設定ファイル８０において、該当するユーザＩＤと図１７のＳ５０６で選択したスロットＩＤの行に、新たに生成した仮想鍵ハンドルを記載する。さらに、暗号装置アクセス部３２は、鍵オブジェクト管理テーブル７０の、仮想鍵ハンドル７１の列に、生成した仮想鍵ハンドルの値を、暗号装置ＩＤ７２の列に、Ｓ６０５で選択した暗号装置ＩＤの値を、実スロットＩＤ７３の列に、Ｓ６０６で選択した任意のスロットＩＤの値を、実鍵ハンドル７４の列にＳ６１１で取得した鍵ハンドルの値を、属性情報７５の列にＳ６１１で取得した属性情報を新たに追加する（Ｓ６１２）。さらに、暗号装置アクセス部３２は、Ｓ６１２で受信した鍵ペアを含み、また生成結果を成功とする鍵ペア生成応答を作成し（S６１３）、端末装置１１に送信する（Ｓ６１４）。
【００９５】
端末装置１１は、鍵ペア生成応答を受信して（Ｓ６１５）、処理を終了する。
【００９６】
次に図２０〜図２２において、端末装置１１及び暗号装置管理サーバ１２における、署名処理を示す。Ｓ７０１からＳ７１８を図２０に、また、Ｓ７１９〜Ｓ７２２、及び、Ｓ７３５〜Ｓ７３９を図２１に、Ｓ７２３〜Ｓ７３４を図２２に記載する。
【００９７】
図１７に示した初期処理を完了後、端末装置１１は、Ｓ５１１で取得したセッションハンドルと、端末装置１１のユーザが指定した属性情報を含んだ、鍵オブジェクト検索設定要求を暗号装置管理サーバ１２に送信する（Ｓ７０１）。
【００９８】
暗号装置アクセス部３２は、鍵オブジェクト検索設定要求を受信すると（Ｓ７０２）、その要求に含まれる属性情報を記憶し、オブジェクト検索設定応答を送信する（Ｓ７０３）。
【００９９】
端末装置１１は、鍵オブジェクト検索設定応答を受信し（Ｓ７０４）、その結果が成功である場合、Ｓ５１１で取得したセッションハンドルを含む鍵オブジェクト検索要求を暗号装置管理サーバ１２へ送信する（Ｓ７０５）。
【０１００】
暗号装置アクセス部３２は、鍵オブジェクト検索要求を受信すると（Ｓ７０６）、Ｓ７０２で取得した属性情報を検索キーとして、暗号装置情報保持部３６に記憶されている鍵オブジェクト管理テーブル７０を検索し、仮想鍵ハンドルを取得し（Ｓ７０７）、端末装置１１へ送信する（Ｓ７０８）。
【０１０１】
端末装置１１は、鍵オブジェクト検索応答を受信すると（Ｓ７０９）、その応答に含まれる鍵オブジェクトの情報から任意の鍵ハンドルを選択する（Ｓ７１０）。端末装置１１は、Ｓ５１１で取得したセッションハンドル、端末装置１１のユーザが選択した署名のメカニズム、及び、Ｓ７１０で選択した鍵ハンドルを含む、署名設定要求を暗号装置管理サーバ１２へ送信する（Ｓ７１１）。
【０１０２】
暗号装置アクセス部３２は、署名設定要求を受信すると（Ｓ７１２）、Ｓ７１２で取得した鍵ハンドルを検索キーとして、鍵オブジェクト管理テーブル７０の仮想鍵ハンドル７１の列を検索し、発見した仮想鍵ハンドルに対応する鍵オブジェクトを格納している暗号装置ＩＤを暗号装置ＩＤ７２の列から取得し、該当する暗号装置１３が、Ｓ７１２で取得した署名のメカニズムをサポートしているか、暗号装置設定ファイル４０を参照して確認する。確認した結果、サポートしていない場合（Ｓ７１３でＮｏ）、暗号装置アクセス部３２は、結果を失敗とする署名設定応答を作成し（Ｓ７１４）、Ｓ７１７へ進む。確認した結果、サポートしている場合（Ｓ７１３でＹｅｓ）、暗号装置アクセス部３２は、結果を成功とする署名設定応答を作成し（Ｓ７１５）、暗号装置セッション状態管理テーブル１００の、該当するユーザＩＤ及び仮想セッションハンドルの行において、仮想鍵ハンドル１０４の列にＳ７１２で取得した鍵ハンドルを、メカニズム１０５の列にＳ７１２で取得したメカニズムを記載する（Ｓ７１６）。さらに、暗号装置アクセス部３２は、署名設定応答を端末装置１１に送信する（Ｓ７１７）。
【０１０３】
端末装置１１は、署名設定応答を受信し（Ｓ７１８）、図２１のＳ７１９へ進む。端末装置１１は、端末装置１１の外部記憶装置１１３に記憶されている署名対象文書を取得し（Ｓ７１９）、Ｓ５１１で取得したセッションハンドル、署名対象文書を含む署名要求を送信する（Ｓ７２０）。
【０１０４】
暗号装置アクセス部３２は、署名要求を受信すると（Ｓ７２１）、署名要求に含まれる署名対象文書を取得し、暗号装置セッション状態管理テーブル１００の該当するユーザＩＤ及び仮想セッションハンドルの行に記載し（Ｓ７２２）、図２２のＳ７２３へ進む。暗号装置アクセス部３２は、Ｓ７１２で取得した鍵ハンドルを検索キーとして、鍵オブジェクト管理テーブル７０の仮想鍵ハンドル７１の列を検索し、発見した仮想鍵ハンドルに対応する暗号装置ＩＤ、実スロットＩＤ、実鍵ハンドルを、暗号装置ＩＤ７２、実スロットＩＤ７３、実鍵ハンドル７４の列から取得する（Ｓ７２３）。さらに、暗号装置アクセス部３２は、Ｓ７２３で取得した暗号装置ＩＤ、実スロットＩＤを検索キーにして、セッションハンドルを取得する（Ｓ７２４）。また、暗号装置セッション状態管理テーブル１００から、Ｓ７１２で取得した仮想鍵ハンドルを検索キーにして、メカニズムを取得する（Ｓ７２５）。暗号装置アクセス部３２は、Ｓ７２４で取得したセッションハンドル、Ｓ７２５で取得したメカニズム、及び、Ｓ７２３で取得した鍵ハンドルを含む、署名設定要求（暗号演算依頼）を暗号装置１３に送信する（Ｓ７２６）。
【０１０５】
暗号装置１３は、署名設定要求を受信すると（Ｓ７２７）、その要求に含まれる、鍵ハンドル及びメカニズムを記憶し、署名設定応答を送信する（Ｓ７２８）。
【０１０６】
暗号装置アクセス部３２は、署名設定応答（暗号演算結果）を受信すると（Ｓ７２９）、暗号装置セッション状態管理テーブル１００から該当する署名対象文書を取得する（Ｓ７３０）。暗号装置アクセス部３２は、Ｓ５０６で取得したセッションハンドル、及び、Ｓ７３０で取得した署名対象文書を含む署名要求（暗号演算依頼）を暗号装置１３に送信する（Ｓ７３１）。
【０１０７】
暗号装置１３は、署名要求を受信すると（Ｓ７３２）、Ｓ７２７で取得した鍵ハンドル及びメカニズムを利用して署名処理を行い、署名値を暗号装置アクセス部３２に応答する（Ｓ７３３）。
【０１０８】
暗号装置アクセス部３２は、署名応答（暗号演算結果）を受信すると（Ｓ７３４）、図２１のＳ７３５へ進む。Ｓ７３４で取得した署名結果が成功ではない場合（Ｓ７３５でＮｏ）、暗号装置アクセス部３２は、署名結果を失敗とする署名応答を作成する（Ｓ７３６）。署名結果が成功である場合（Ｓ７３５でＹｅｓ）、暗号装置アクセス部３２は、署名結果を成功とする署名応答を作成する（Ｓ７３７）。暗号装置アクセス部は、作成した署名応答を、端末装置１１に送信する（Ｓ７３８）。
【０１０９】
端末装置１１は、署名応答を受信すると（Ｓ７３９）、署名値を取得して、署名処理を終了する。
【０１１０】
以上本発明の実施形態について詳述したが、上記実施形態によれば、複数の暗号装置１３を利用した暗号演算を簡便にかつ迅速に行うことができる。その結果、暗号装置１３を新規に増設することが可能となり、新たな暗号方式に対応した暗号装置を増設することで、暗号方式を柔軟に拡張することができる。
【０１１１】
また、本発明は上記実施形態に限定されるものではなく、暗号装置によっては,その機能の一部が，暗号装置管理サーバに設置される暗号装置ライブラリで実現されるなど,その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【０１１２】
１１：端末装置、１２：暗号装置管理サーバ、１３：暗号装置、１４：ネットワーク、１５：接続インターフェース、２０ａ、３０ａ：処理部、２０ｂ、３０ｂ：記憶部、２０ｃ、３０ｃ：通信部、２０ｄ、３０ｄ：入出力部、２１：アプリケーション実行部、２２：暗号演算指示部、２３、３３：制御部、２４：アプリケーション保持部、２５：暗号装置管理サーバライブラリ保持部、２６：設定情報保持部、３１：ユーザ認証部、３２：暗号装置アクセス部、３４：ユーザ情報保持部、３５：暗号装置ライブラリ保持部、３６：暗号装置情報保持部、１１０：内部通信線、１１１：ＣＰＵ、１１２：メモリ、１１３：外部記憶装置、１１４：通信装置、１１５：入力装置、１１６：出力装置、１１７：読取装置、１１８：可搬性を有する記憶媒体。
【図１】
2012064995.tif 000003
【図２】
2012064995.tif 000004
【図３】
2012064995.tif 000005
【図４】
2012064995.tif 000006
【図５】
2012064995.tif 000007
【図６】
2012064995.tif 000008
【図７】
2012064995.tif 000009
【図８】
2012064995.tif 000010
【図９】
2012064995.tif 000011
【図１０】
2012064995.tif 000012
【図１１】
2012064995.tif 000013
【図１２】
2012064995.tif 000014
【図１３】
2012064995.tif 000015
【図１４】
2012064995.tif 000016
【図１５】
2012064995.tif 000017
【図１６】
2012064995.tif 000018
【図１７】
2012064995.tif 000019
【図１８】
2012064995.tif 000020
【図１９】
2012064995.tif 000021
【図２０】
2012064995.tif 000022
【図２１】
2012064995.tif 000023
【図２２】
2012064995.tif 000024