(57)【要約】【課題】暗号処理に使用する鍵の漏洩を防ぐとともに、鍵の更新を容易にする。【解決手段】鍵・パスワード生成管理装置１００は、業務アプリケーション装置５００の利用する鍵の生成および管理用のパスワード情報を作成する。キーストア装置２００は、パスワードにより保持する鍵情報へのアクセス制御を行う。パスワードストア装置３００は、パスワードにより保持するパスワード情報へのアクセス制御を行う。鍵・パスワード生成管理装置１００は、管理者・開発者にも入手が困難な業務アプリケーション装置５００の呼び出し情報（コールスタック等）と管理者の入力するパスワード情報からキーストアパスワードを作成する。鍵・パスワード生成管理装置１００は、作成した鍵情報からパスワードストアパスワードを作成する。【選択図】図１
2012175187.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶装置と、データを処理する処理装置と、鍵記憶部と、取得要求入力部と、鍵パスワード算出部と、鍵取得部と、新規鍵生成部と、鍵登録部と、鍵出力部と、更新要求入力部と、更新鍵生成部と、鍵更新部と、更新鍵出力部とを有し、
上記鍵記憶部は、上記記憶装置を用いて、暗号処理に使用する鍵と上記鍵にアクセスするための鍵パスワードとを記憶し、
上記取得要求入力部は、上記処理装置を用いて、取得すべき鍵の管理に使用する管理パスワードを入力し、
上記鍵パスワード算出部は、上記処理装置を用いて、上記取得要求入力部が入力した管理パスワードに基づいて、鍵パスワードを算出し、
上記鍵取得部は、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致する場合に、上記処理装置を用いて、上記鍵記憶部が記憶した鍵を取得し、
上記新規鍵生成部は、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致しない場合に、上記処理装置を用いて、鍵を生成し、
上記鍵登録部は、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致しない場合に、上記処理装置を用いて、上記新規鍵生成部が生成した鍵と、上記鍵パスワード算出部が算出した鍵パスワードとを上記鍵記憶部に記憶させ、
上記鍵出力部は、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致する場合に、上記処理装置を用いて、上記鍵取得部が取得した鍵を出力し、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致しない場合に、上記処理装置を用いて、上記新規鍵生成部が生成した鍵を出力し、
上記更新要求入力部は、上記処理装置を用いて、更新すべき鍵を入力し、
上記更新鍵生成部は、上記更新要求入力部が入力した鍵が、上記鍵記憶部が記憶した鍵と一致する場合に、上記処理装置を用いて、鍵を生成し、
上記鍵更新部は、上記更新要求入力部が入力した鍵が、上記鍵記憶部が記憶した鍵と一致する場合に、上記処理装置を用いて、上記鍵記憶部が記憶した鍵に代えて、上記更新鍵生成部が生成した鍵を上記鍵記憶部に記憶させ、
上記更新鍵出力部は、上記更新要求入力部が入力した鍵が、上記鍵記憶部が記憶した鍵と一致する場合に、上記処理装置を用いて、上記更新鍵生成部が生成した鍵を出力することを特徴とする鍵管理装置。
【請求項２】
上記鍵パスワード算出部は、上記処理装置を用いて、上記取得要求入力部が上記管理パスワードを入力した文脈を取得し、上記取得要求入力部が入力した管理パスワードと取得した文脈とに基づいて、鍵パスワードを算出することを特徴とする請求項１に記載の鍵管理装置。
【請求項３】
上記鍵パスワード算出部は、上記処理装置を用いて、上記管理パスワードを表わすデータと上記文脈を表わすデータとを結合し、結合したデータを一方向性関数により変換することにより、鍵パスワードを算出することを特徴とする請求項２に記載の鍵管理装置。
【請求項４】
上記鍵管理装置は、更に、逆パスワード算出部と、旧逆パスワード算出部と、新逆パスワード算出部と、パスワード取得部とを有し、
上記鍵記憶部は、順記憶部と、逆記憶部とを有し、
上記逆パスワード算出部は、上記処理装置を用いて、上記新規鍵生成部が生成した鍵に基づいて、上記鍵パスワードにアクセスするための逆パスワードを算出し、
上記順記憶部は、上記記憶装置を用いて、上記新規鍵生成部が生成した鍵と、上記鍵パスワード算出部が算出した鍵パスワードとを記憶し、
上記逆記憶部は、上記記憶装置を用いて、上記鍵パスワード算出部が算出した鍵パスワードと上記逆パスワード算出部が算出した逆パスワードとを記憶し、
上記鍵取得部は、上記処理装置を用いて、入力した鍵パスワードと上記順記憶部が記憶した鍵パスワードとが一致する場合に、上記順記憶部が記憶した鍵を出力し、
上記旧逆パスワード算出部は、上記処理装置を用いて、上記更新要求入力部が入力した鍵に基づいて、逆パスワードを算出し、
上記パスワード取得部は、上記旧逆パスワード算出部が算出した逆パスワードが、上記逆記憶部が記憶した逆パスワードと一致する場合に、上記処理装置を用いて、上記逆記憶部が記憶した鍵パスワードを取得し、
上記更新鍵生成部は、上記旧逆パスワード算出部が算出した逆パスワードが、上記逆記憶部が記憶した逆パスワードと一致する場合に、上記処理装置を用いて、鍵を生成し、
上記新逆パスワード算出部は、上記旧逆パスワード算出部が算出した逆パスワードが、上記逆記憶部が記憶した逆パスワードと一致する場合に、上記処理装置を用いて、上記更新鍵生成部が生成した鍵に基づいて、逆パスワードを算出し、
上記鍵更新部は、上記処理装置を用いて、上記パスワード取得部が取得した鍵パスワードが、上記順記憶部が記憶した鍵パスワードと一致する場合に、上記順記憶部が記憶した鍵に代えて、上記更新鍵生成部が生成した鍵を上記順記憶部に記憶させ、上記逆記憶部が記憶した逆パスワードに代えて、上記新逆パスワード算出部が算出した逆パスワードを上記逆記憶部に記憶させることを特徴とする請求項１乃至請求項３のいずれかに記載の鍵管理装置。
【請求項５】
上記逆パスワード算出部及び上記旧逆パスワード算出部及び上記新逆パスワード算出部は、上記処理装置を用いて、上記鍵を一方向性関数により変換することにより、上記逆パスワードを生成することを特徴とする請求項４に記載の鍵管理装置。
【請求項６】
上記鍵管理装置は、更に、パスワード更新要求入力部と、旧パスワード算出部と、新パスワード算出部と、パスワード更新部とを有し、
上記パスワード更新要求入力部は、更新すべき古い管理パスワードと更新後の新たな管理パスワードとを入力し、
上記旧パスワード算出部は、上記処理装置を用いて、上記パスワード更新要求入力部が入力した古い管理パスワードに基づいて、鍵パスワードを算出し、
上記新パスワード算出部は、上記処理装置を用いて、上記パスワード更新要求入力部が入力した新たな管理パスワードに基づいて、鍵パスワードを算出し、
上記パスワード更新部は、上記旧パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致する場合に、上記処理装置を用いて、上記鍵記憶部が記憶した鍵パスワードに代えて、上記新パスワード算出部が算出した鍵パスワードを上記鍵記憶部に記憶させることを特徴とする請求項１乃至請求項５のいずれかに記載の鍵管理装置。
【請求項７】
請求項１乃至請求項６のいずれかに記載の鍵管理装置と、実行装置とを有し、
上記実行装置は、データを記憶する実行記憶装置と、データを処理する実行処理装置と、取得要求部と、暗号鍵記憶部と、暗号処理部と、暗号鍵更新部とを有し、
上記取得要求部は、上記実行処理装置を用いて、管理パスワードを取得し、
上記取得要求入力部は、上記処理装置を用いて、上記取得要求部が取得した管理パスワードを入力し、
上記暗号鍵記憶部は、上記実行記憶装置を用いて、上記鍵出力部が出力した鍵を記憶し、
上記暗号処理部は、上記実行処理装置を用いて、上記暗号鍵記憶部が記憶した鍵を使って、暗号処理を実行し、
上記更新要求入力部は、上記処理装置を用いて、上記暗号鍵記憶部が記憶した鍵を入力し、
上記暗号鍵更新部は、上記実行処理装置を用いて、上記更新鍵出力部が出力した鍵を上記暗号鍵記憶部に記憶させることを特徴とする暗号処理システム。
【請求項８】
上記実行記憶装置は、揮発性の揮発性記憶装置と、不揮発性の不揮発性記憶装置とを有し、
上記暗号処理部は、暗号化部と、暗号記憶部と、復号部と、更新暗号化部と、暗号更新部とを有し、
上記暗号鍵記憶部は、上記揮発性記憶装置を用いて、上記鍵出力部及び上記更新鍵出力部が出力した鍵を記憶し、
上記暗号化部は、上記実行処理装置を用いて、上記暗号鍵記憶部が記憶した鍵を使って、平文データを暗号化して暗号化データを生成し、
上記暗号記憶部は、上記不揮発性記憶装置を用いて、上記暗号化部が生成した暗号化データを記憶し、
上記復号部は、上記実行処理装置を用いて、上記暗号鍵記憶部が記憶した鍵を使って、上記暗号記憶部が記憶した暗号化データを復号して復元平文データを生成し、
上記更新暗号化部は、上記実行処理装置を用いて、上記更新鍵出力部が出力した鍵を使って、上記復号部が生成した復元平文データを暗号化して更新暗号化データを生成し、
上記暗号更新部は、上記実行処理装置を用いて、上記暗号記憶部が記憶した暗号化データに代えて、上記更新暗号化部が生成した更新暗号化データを上記暗号記憶部に記憶させることを特徴とする請求項７に記載の暗号処理システム。
【請求項９】
データを記憶する記憶装置とデータを処理する処理装置とを有するコンピュータが実行することにより、上記コンピュータが請求項１乃至請求項６のいずれかに記載の鍵管理装置として機能することを特徴とするコンピュータプログラム。
【請求項１０】
データを記憶する記憶装置と、データを処理する処理装置とを有する鍵管理装置が鍵を管理する鍵管理方法において、
鍵記憶部として、上記記憶装置が、暗号処理に使用する鍵と上記鍵にアクセスするための鍵パスワードとを記憶し、
取得要求入力部として、上記処理装置が、取得すべき鍵の管理に使用する管理パスワードを入力し、
鍵パスワード算出部として、上記処理装置が、上記取得要求入力部が入力した管理パスワードに基づいて、鍵パスワードを算出し、
上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致する場合に、
鍵取得部として、上記処理装置が、上記鍵記憶部が記憶した鍵を取得し、
鍵出力部として、上記処理装置が、上記鍵取得部が取得した鍵を出力し、
上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致しない場合に、
新規鍵生成部として、上記処理装置が、鍵を生成し、
上記鍵記憶部として、上記記憶装置が、上記新規鍵生成部が生成した鍵と、上記鍵パスワード算出部が算出した鍵パスワードとを記憶し、
上記鍵出力部として、上記処理装置が、上記新規鍵生成部が生成した鍵を出力し、
更新要求入力部として、上記処理装置が、更新すべき鍵を入力し、
上記更新要求入力部が入力した鍵が、上記鍵記憶部が記憶した鍵と一致する場合に、
更新鍵生成部として、上記処理装置が、鍵を生成し、
鍵更新部として、上記処理装置が、上記鍵記憶部が記憶した鍵に代えて、上記更新鍵生成部が生成した鍵を上記鍵記憶部に記憶させ、
更新鍵出力部として、上記処理装置が、上記更新鍵生成部が生成した鍵を出力することを特徴とする鍵管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、暗号処理に使用する鍵を管理する鍵管理装置に関する。
【背景技術】
【０００２】
アプリケーションプログラムで鍵を管理する方式には、例えば、アプリケーションプログラムのなかに鍵を埋め込む（ハードコーディング）ことにより、外部から鍵を読み出すことができないようにする方式や、アプリケーションプログラムのなかに埋め込んだデータと、管理者が入力する管理パスワードとを合成することにより、鍵を生成する方式がある。また、鍵を管理する鍵管理装置で鍵を管理し、パスワードを使って鍵にアクセスする方式がある。パスワードは、例えば、管理者が入力する方式、アプリケーションプログラムに埋め込む方式、外部ファイルに記述しておきアプリケーションプログラムが読み込む方式などがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３０４２３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
アプリケーションプログラムに鍵を埋め込む方式は、アプリケーションプログラム自体を更新しなければ、鍵を更新できない。また、アプリケーションプログラムの開発者が鍵を知っているので、内部犯行による情報漏洩の可能性がある。
アプリケーションプログラムに埋め込んだデータと管理パスワードとを合成して鍵を生成する方式は、管理パスワードを変えれば鍵を更新できるが、管理者が知っている管理パスワードが漏洩するなどして、埋め込みデータを知っている開発者が管理パスワードを知った場合などには、やはり情報漏洩の可能性がある。
鍵管理装置が鍵を管理する方式の場合、管理者や開発者がパスワードを知っている場合、鍵管理装置から鍵を読み出す可能性がある。
【０００５】
この発明は、例えば上記のような課題を解決するためになされたものであり、鍵を容易に更新できるとともに、鍵の漏洩を防ぐことを目的とする。
【課題を解決するための手段】
【０００６】
この発明にかかる鍵管理装置は、データを記憶する記憶装置と、データを処理する処理装置と、鍵記憶部と、取得要求入力部と、鍵パスワード算出部と、鍵取得部と、新規鍵生成部と、鍵登録部と、鍵出力部と、更新要求入力部と、更新鍵生成部と、鍵更新部と、更新鍵出力部とを有し、
上記鍵記憶部は、上記記憶装置を用いて、暗号処理に使用する鍵と上記鍵にアクセスするための鍵パスワードとを記憶し、
上記取得要求入力部は、上記処理装置を用いて、取得すべき鍵の管理に使用する管理パスワードを入力し、
上記鍵パスワード算出部は、上記処理装置を用いて、上記取得要求入力部が入力した管理パスワードに基づいて、鍵パスワードを算出し、
上記鍵取得部は、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致する場合に、上記処理装置を用いて、上記鍵記憶部が記憶した鍵を取得し、
上記新規鍵生成部は、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致しない場合に、上記処理装置を用いて、鍵を生成し、
上記鍵登録部は、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致しない場合に、上記処理装置を用いて、上記新規鍵生成部が生成した鍵と、上記鍵パスワード算出部が算出した鍵パスワードとを上記鍵記憶部に記憶させ、
上記鍵出力部は、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致する場合に、上記処理装置を用いて、上記鍵取得部が取得した鍵を出力し、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致しない場合に、上記処理装置を用いて、上記新規鍵生成部が生成した鍵を出力し、
上記更新要求入力部は、上記処理装置を用いて、更新すべき鍵を入力し、
上記更新鍵生成部は、上記更新要求入力部が入力した鍵が、上記鍵記憶部が記憶した鍵と一致する場合に、上記処理装置を用いて、鍵を生成し、
上記鍵更新部は、上記更新要求入力部が入力した鍵が、上記鍵記憶部が記憶した鍵と一致する場合に、上記処理装置を用いて、上記鍵記憶部が記憶した鍵に代えて、上記更新鍵生成部が生成した鍵を上記鍵記憶部に記憶させ、
上記更新鍵出力部は、上記更新要求入力部が入力した鍵が、上記鍵記憶部が記憶した鍵と一致する場合に、上記処理装置を用いて、上記更新鍵生成部が生成した鍵を出力することを特徴とする。
【発明の効果】
【０００７】
この発明にかかる鍵管理装置によれば、鍵を容易に更新できるとともに、鍵の漏洩を防ぐことができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１における暗号処理システム８００の全体構成の一例を示すシステム構成図。
【図２】実施の形態１における鍵管理装置１０及び暗号／復号化装置４００及び業務アプリケーション装置５００及びクライアントアプリケーション装置６００の外観の一例を示す斜視図。
【図３】実施の形態１における鍵管理装置１０及び暗号／復号化装置４００及び業務アプリケーション装置５００及びクライアントアプリケーション装置６００のハードウェア資源の一例を示す図。
【図４】実施の形態１における暗号処理システム８００の初期処理の流れの一例を示すシーケンス図。
【図５】実施の形態１におけるキーストアパスワードの作成手順の一例を示す図。
【図６】実施の形態１におけるキーストアパスワードの作成例を示す図。
【図７】実施の形態１におけるパスワードストアパスワードの作成手順の一例を示す図。
【図８】実施の形態１におけるパスワードストアパスワードの作成例を示す図。
【図９】実施の形態１における暗号処理システム８００の再起動時の処理の流れの一例を示すシーケンス図。
【図１０】実施の形態１における暗号処理システム８００の鍵更新時の処理の流れの一例を示すシーケンス図。
【図１１】実施の形態２における暗号処理システム８００の機能ブロックの構成の一例を示すブロック構成図。
【図１２】実施の形態２における暗号処理システム８００全体の処理の流れの一例を示すフローチャート図。
【図１３】実施の形態２における鍵管理装置１０の処理の詳細な流れの一例を示すフローチャート図。
【図１４】実施の形態２における実行装置５０１の処理の詳細な流れの一例を示すフローチャート図。
【図１５】実施の形態３における暗号処理システム８００の機能ブロックの構成の一例を示すブロック構成図。
【図１６】実施の形態３における暗号処理システム８００全体の処理の流れの一例を示すフローチャート図。
【図１７】実施の形態３における鍵管理装置１０の処理の詳細な流れの一例を示すフローチャート図。
【図１８】実施の形態３における実行装置５０１の処理の詳細な流れの一例を示すフローチャート図。
【発明を実施するための形態】
【０００９】
実施の形態１．
実施の形態１について、図１〜図１０を用いて説明する。
【００１０】
図１は、この実施の形態における暗号処理システム８００の全体構成の一例を示すシステム構成図である。
暗号処理システム８００は、この実施の形態における鍵管理方式を用いたシステムの一例である。
暗号処理システム８００は、鍵管理装置１０と、業務アプリケーション装置５００と、暗号／復号化装置４００と、クライアントアプリケーション装置６００とを有する。
【００１１】
鍵管理装置１０は、業務アプリケーション装置５００が暗号処理に使用する鍵を管理する。鍵管理装置１０は、鍵・パスワード生成管理装置１００と、キーストア装置２００と、パスワードストア装置３００とを有する。鍵管理装置１０は、ＡＰＩ（Ａｐｐｒｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）やネットワークなどにより、外部の業務アプリケーション装置５００と接続されている。
【００１２】
業務アプリケーション装置５００（実行装置）は、業務アプリケーションを実行する装置である。１つの鍵管理装置１０に対して、複数の業務アプリケーション装置５００がある構成であってもよいし、１つの業務アプリケーション装置５００が、複数の業務アプリケーションを実行する構成であってもよい。
業務アプリケーション装置５００は、管理者や定義ファイルなどからパスワード情報を取得する。業務アプリケーション装置５００（取得要求部）は、渡されたパスワード情報を用いて、鍵管理装置１０に対して、情報の暗号／復号化を行う鍵の取得を要求する。業務アプリケーション装置５００は、クライアントアプリケーション装置６００からの処理要求の延長やその他の処理をする際、鍵・パスワード生成管理装置１００から取得した暗号／復号鍵を暗号／復号化装置４００に渡して、暗号処理を要求する。
暗号／復号化装置４００（暗号処理部）は、業務アプリケーション装置５００からの要求に応じて、業務アプリケーション装置５００から受け取った鍵を使って、情報の暗号／復号化などの暗号処理を行う。
【００１３】
キーストア装置２００（順記憶部）は、鍵を記憶している。キーストア装置２００は、例えば、鍵情報を保持するファイルや、ハードウェアデバイスなどである。キーストア装置２００が記憶した鍵にアクセスするためには、キーストアパスワード（鍵パスワード）が必要である。キーストア装置２００（順記憶部）は、鍵を記憶するにあたり、鍵と一緒にその鍵のキーストアパスワードを記憶する。キーストア装置２００（鍵登録部、鍵取得部）は、キーストアパスワードによって、内部に管理する鍵情報の登録／取得／更新／削除のアクセス制御を行う。例えば、キーストア装置２００（鍵取得部）は、記憶した鍵の読み出し要求とともにキーストアパスワードを入力し、入力したキーストアパスワードが、記憶したキーストアパスワードと一致した場合のみ、鍵を返す。
パスワードストア装置３００（逆記憶部）は、キーストアパスワードを記憶している。パスワードストア装置３００は、例えば、パスワード情報を保持するファイルや、ハードウェアデバイスなどである。パスワードストア装置３００が記憶したキーストアパスワードにアクセスするためには、パスワードストアパスワード（逆パスワード）が必要である。パスワードストア装置３００（逆記憶部）は、キーストアパスワードを記憶するにあたり、キーストアパスワードと一緒にそのキーストアパスワードのパスワードストアパスワードを記憶する。パスワードストア装置３００（パスワード登録部、パスワード取得部）は、パスワードストア・パスワードによって内部に管理するパスワード情報の登録／取得／更新／削除のアクセス制御を行う。例えば、パスワードストア装置３００（パスワード取得部）は、記憶したキーストアパスワードの読み出し要求とともにパスワードストアパスワードを入力し、入力したパスワードストアパスワードが、記憶したパスワードストアパスワードと一致した場合のみ、キーストアパスワードを返す。
【００１４】
鍵・パスワード生成管理装置１００は、業務アプリケーション装置５００からの鍵取得要求に対して、キーストア装置２００から鍵を取得する。キーストア装置２００に鍵がない場合、鍵・パスワード生成管理装置１００は、鍵を新規に生成し、生成した鍵をキーストア装置２００に登録する。鍵・パスワード生成管理装置１００は、取得あるいは生成した鍵を、業務アプリケーション装置５００に対して戻す。
鍵・パスワード生成管理装置１００は、業務アプリケーション装置５００の呼び出し情報とパスワード情報とに基づいて、キーストアパスワードを生成し、キーストア装置２００にアクセスする。また、鍵・パスワード生成管理装置１００は、鍵情報に基づいて、パスワードストアパスワードを生成し、パスワードストア装置３００にアクセスする。
【００１５】
図２は、この実施の形態における鍵管理装置１０及び暗号／復号化装置４００及び業務アプリケーション装置５００及びクライアントアプリケーション装置６００の外観の一例を示す斜視図である。
鍵管理装置１０及び暗号／復号化装置４００及び業務アプリケーション装置５００及びクライアントアプリケーション装置６００は、システムユニット９１０、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）やＬＣＤ（液晶）の表示画面を有する表示装置９０１、キーボード９０２（Ｋｅｙ・Ｂｏａｒｄ：Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット９１０は、コンピュータであり、ファクシミリ機９３２、電話器９３１とケーブルで接続され、また、ローカルエリアネットワーク９４２（ＬＡＮ）、ゲートウェイ９４１を介してインターネット９４０に接続されている。
なお、上記の構成は一例である。鍵管理装置１０などは、プリンタ装置９０６やファクシミリ機９３２などの出力装置を有さない最小限の構成であってもよい。不要な出力装置がない最小限の構成とすることで、情報漏洩を防止することができる。
【００１６】
図３は、この実施の形態における鍵管理装置１０及び暗号／復号化装置４００及び業務アプリケーション装置５００及びクライアントアプリケーション装置６００のハードウェア資源の一例を示す図である。
鍵管理装置１０及び暗号／復号化装置４００及び業務アプリケーション装置５００及びクライアントアプリケーション装置６００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信装置９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ装置９０６、スキャナ装置９０７、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。通信装置９１５、キーボード９０２、スキャナ装置９０７、ＦＤＤ９０４、ＣＤＤ９０５などは、入力部、入力装置の一例である。
また、通信装置９１５、表示装置９０１、プリンタ装置９０６などは、出力部、出力装置の一例である。
【００１７】
通信装置９１５は、ファクシミリ機９３２、電話器９３１、ＬＡＮ９４２等に接続されている。通信装置９１５は、ＬＡＮ９４２に限らず、インターネット９４０、ＩＳＤＮ等のＷＡＮ（ワイドエリアネットワーク）などに接続されていても構わない。インターネット９４０或いはＩＳＤＮ等のＷＡＮに接続されている場合、ゲートウェイ９４１は不用となる。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００１８】
上記プログラム群９２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータは、「〜ファイル」や「〜データベース」の各項目として磁気ディスク装置９２０などの不揮発性メモリが記憶し、あるいは、ＲＡＭ９１４など揮発性メモリが一時的に記憶する。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１９】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【００２０】
図４は、この実施の形態における暗号処理システム８００の初期処理の流れの一例を示すシーケンス図である。
【００２１】
「１：パスワード設定」において、業務アプリケーション装置５００（取得要求部）は、管理者または定義ファイルなどからパスワード情報を取得する。
「１．１：鍵取得要求」において、業務アプリケーション装置５００（取得要求部）は、取得したパスワード情報を用いて、鍵・パスワード生成管理装置１００に対して、鍵取得要求を行う。この際、業務アプリケーション装置５００は、鍵・パスワード生成管理装置１００に対して、パスワード情報と一緒に、呼び出し情報（文脈）としてコールスタックの情報を渡す。
「１．１．１：キーストアパスワードの生成」において、鍵・パスワード生成管理装置１００（鍵パスワード算出部）は、業務アプリケーション装置５００からの呼び出し情報（コールスタックなど）とパスワード情報とに基づいて、キーストアパスワードを算出する。
【００２２】
「１．１．２：鍵取得要求」において、鍵・パスワード生成管理装置１００（パスワード算出部）は、キーストア装置２００（鍵取得部）に対して、生成したキーストアパスワードを用いて鍵の取得要求を行う。鍵・パスワード生成管理装置１００は、キーストア装置２００に対して、キーストアパスワードを通知する。なお、鍵・パスワード生成管理装置１００は、キーストアパスワードに加えて、例えばエイリアス名をキーストア装置２００に対して通知する構成であってもよい。エイリアス名は、１つの鍵管理装置１０が鍵を管理する業務アプリケーションが複数ある場合に、業務アプリケーションを区別するためのデータである。鍵・パスワード生成管理装置１００は、例えば、業務アプリケーションから渡されるパラメータや、鍵パスワード生成管理装置で呼び出し情報などから生成する値を、エイリアス名として、キーストア装置２００に対して通知する。
【００２３】
初回起動時など、キーストア装置２００（順記憶部）に鍵が登録されていない場合、キーストア装置２００（鍵取得部）は、鍵・パスワード生成管理装置１００に対して、鍵の取得に失敗したことを通知する。その場合、「１．１．３：鍵生成」において、鍵・パスワード生成管理装置１００（新規鍵生成部）は、新規に鍵の生成を行う。
鍵・パスワード生成管理装置１００（新規鍵生成部）は、鍵アルゴリズムや鍵長などのパラメータにしたがって、鍵を生成する。鍵・パスワード生成管理装置１００は、例えば、設定ファイル等に保持されているパラメータを読み出して鍵を生成する構成であってもよいし、業務アプリケーションから指定されるパラメータを用いて鍵を生成する構成であってもよい。
【００２４】
「１．１．４：鍵登録要求」において、鍵・パスワード生成管理装置１００（鍵登録部）は、生成した鍵を、同じく生成したキーストアパスワードを用いて、キーストア装置２００（順記憶部）に対して登録する。これ以降、この鍵情報にアクセスするには、登録時に設定したキーストアパスワードが必要になる。
【００２５】
「１．１．５：パスワードストアパスワードの生成」において、鍵・パスワード生成管理装置１００（逆パスワード算出部）は、生成した鍵情報に対して符号化を行うことにより、パスワードストアパスワードを算出する。
「１．１．６：パスワード登録要求」において、鍵・パスワード生成管理装置１００（パスワード登録部）は、パスワードストア装置３００（逆記憶部）に対して、生成したパスワードストア・パスワードを用いてキーストアパスワードを登録する。
【００２６】
この処理の後、鍵・パスワード生成管理装置１００（鍵出力部）は、業務アプリケーション装置５００に対して、生成した鍵を、鍵取得要求の結果として返す。
業務アプリケーション装置５００（暗号鍵記憶部）は、返された鍵を受け取って、オンメモリ（揮発性記憶装置）で保持する。
【００２７】
「２：処理要求」において、クライアントアプリケーション装置６００は、業務アプリケーション装置５００に対して、処理を要求する。業務アプリケーション装置５００は、要求された処理の実行にあたり暗号化処理が必要な場合、暗号／復号化装置４００（暗号処理部）に対して、平文と、オンメモリに保持している鍵とを通知して、暗号化を要求する。暗号／復号化装置４００は、通知された鍵を使って、平文を暗号化し、暗号文を返す。
【００２８】
「３：処理要求」において、クライアントアプリケーション装置６００は、業務アプリケーション装置５００に対して、処理を要求する。業務アプリケーション装置５００は、要求された処理の実行にあたり復号処理が必要な場合、暗号／復号化装置４００（暗号処理部）に対して、暗号文と、オンメモリに保持している鍵とを通知して、復号を要求する。暗号／復号化装置４００は、通知された鍵を使って、暗号文を復号し、復号した平文を返す。
【００２９】
図５は、この実施の形態におけるキーストアパスワードの作成手順の一例を示す図である。
例えば、鍵・パスワード生成管理装置１００（取得要求入力部）は、業務アプリケーション装置５００からパスワード７０１と、呼び出し情報７０２（コールスタック）とを受け取る。鍵・パスワード生成管理装置１００（鍵パスワード算出部）は、受け取ったパスワード７０１と、呼び出し情報７０２とを連結した情報（連結データ７０３）を作成する。鍵・パスワード生成管理装置１００（鍵パスワード算出部）は、作成した情報を、一方向性関数を使って、キーストアパスワードとして利用可能な文字列等（キーストアパスワード７０５）に変換する。例えば、鍵・パスワード生成管理装置１００（鍵パスワード算出部）は、この連結した値に対してハッシュ値を取り、それをＢａｓｅ６４エンコードするなどの符号化を行い、その結果をキーストアパスワードとする。
【００３０】
図６は、この実施の形態におけるキーストアパスワードの作成例を示す図である。
パスワード７０１は、例えば、管理者が業務アプリケーション装置５００に入力する。
業務アプリケーション装置５００は、例えば、パスワード７０１を引数として、鍵・パスワード生成管理装置１００が提供する鍵管理オブジェクトの鍵取得要求メソッドを呼び出す。このとき、業務アプリケーション装置５００には、引数であるパスワード７０１だけでなく、呼び出し情報７０２が渡される。
呼び出し情報７０２（コールスタック）は、例えば、業務アプリケーション装置５００が提供するオブジェクトのメソッドがどのような順で呼び出されているかなどを表わすデータである。例えば、この図に示した呼び出し情報７０２は、クラス「ｊｐ．ｃｏ．ｍｉｔｓｕｂｉｓｈｉｅｌｅｃｔｒｉｃ．ｋｅｙ．Ａｐｐ」のメソッド「ｍａｉｎ」が、ソースコード「Ａｐｐ．ｊａｖａ」の１８行目で、クラス「ｊｐ．ｃｏ．ｍｉｔｓｕｂｉｓｈｉｅｌｅｃｔｒｉｃ．ｋｅｙ．Ａｐｐ」のメソッド「ｉｎｉｔｉａｌｉｚｅ」を呼び出したことを表わしている。更に、この図に示した呼び出し情報７０２は、呼び出されたメソッド「ｉｎｉｔｉａｌｉｚｅ」が、そのソースコード「Ａｐｐ．ｊａｖａ」の２７行目で、クラス「ｊｐ．ｃｏ．ｍｉｔｓｕｂｉｓｈｉｅｌｅｃｔｒｉｃ．ｋｅｙ．ＫｅｙＭａｎａｇｅ」のメソッド「ｇｅｔＫｅｙＰａｉｒ」を呼び出したことを表わしている。このように、呼び出し情報７０２は、業務アプリケーション装置５００が実行しているプログラムが自動的に生成するものであり、プログラムの構造によって定まる固有のデータであって、業務アプリケーション装置５００の管理者などが任意に設定できるものではない。業務アプリケーション装置５００や他の装置が実行する他のプログラムが、鍵取得要求メソッドを呼び出したとすると、異なる呼び出し情報７０２が鍵・パスワード生成管理装置１００に渡される。
連結データ７０３は、鍵・パスワード生成管理装置１００がパスワード７０１と呼び出し情報７０２とを連結して生成したデータである。鍵・パスワード生成管理装置１００は、例えば、パスワード７０１を表わす文字列データの後ろに、呼び出し情報７０２を表わす文字列データを結合して、連結データ７０３を生成する。
ハッシュ値７０４は、鍵・パスワード生成管理装置１００が連結データ７０３をハッシュして算出したハッシュ値（１６進表記）である。
キーストアパスワード７０５は、鍵・パスワード生成管理装置１００がハッシュ値７０４をエンコードした文字列データである。
【００３１】
図７は、この実施の形態におけるパスワードストアパスワードの作成手順の一例を示す図である。
例えば、鍵・パスワード生成管理装置１００（逆パスワード算出部）は、一方向性関数を使って、鍵７０６に対するハッシュ値を生成する。鍵・パスワード生成管理装置１００（逆パスワード算出部）は、その結果に対してＢａｓｅ６４エンコードを行うことで、パスワードストアパスワード７０８として利用可能な文字列等に変換する。
【００３２】
図８は、この実施の形態におけるパスワードストアパスワードの作成例を示す図である。
鍵７０６は、例えば、ＲＳＡ（登録商標）のプライベート鍵（１６進表記）である。鍵・パスワード生成管理装置１００が鍵７０６を生成する。
ハッシュ値７０７は、鍵・パスワード生成管理装置１００が鍵７０６をハッシュして算出したハッシュ値（１６進表記）である。
パスワードストアパスワード７０８は、鍵・パスワード生成管理装置１００がハッシュ値７０７をエンコードした文字列データである。
【００３３】
図９は、この実施の形態における暗号処理システム８００の再起動時の処理の流れの一例を示すシーケンス図である。
再起動などにより、業務アプリケーション装置５００のオンメモリ上から鍵が削除された場合、再び鍵・パスワード生成管理装置１００から鍵を取得する必要が生じる。
【００３４】
「１：パスワード設定」において、業務アプリケーション装置５００（取得要求部）は、管理者などからパスワードを取得する。
「１．１：鍵取得要求」において、業務アプリケーション装置５００（取得要求部）は、取得したパスワード情報を用いて、鍵・パスワード生成管理装置１００に対して、鍵取得要求を行う。この際、業務アプリケーション装置５００は、鍵・パスワード生成管理装置１００に対して、パスワード情報と一緒に、呼び出し情報としてコールスタックの情報を渡す。
【００３５】
「１．１．１：キーストアパスワードの生成」において、鍵・パスワード生成管理装置１００（鍵パスワード算出部）は、業務アプリケーション装置５００からの呼び出し情報（コールスタックなど）とパスワード情報とに基づいて、キーストアパスワードを算出する。
業務アプリケーション装置５００が鍵・パスワード生成管理装置１００に渡すコールスタックは、初期処理のときと同じである。したがって、業務アプリケーション装置５００が管理者などから取得したパスワードが初期処理のときと同じであれば、鍵・パスワード生成管理装置１００が算出するキーストアパスワードは、初期処理のときと同じになる。
【００３６】
「１．１．２：鍵取得要求」において、鍵・パスワード生成管理装置１００（パスワード算出部）は、キーストア装置２００（鍵取得部）に対して、生成したキーストアパスワードを用いて鍵の取得要求を行う。
今回は、キーストア装置２００（順記憶部）に登録済の鍵情報がある。キーストア装置２００（鍵取得部）は、鍵・パスワード生成管理装置１００から通知されたキーストアパスワードが、登録されたキーストアパスワードと一致すれば、登録された鍵を、鍵・パスワード生成管理装置１００に対して返す。
鍵・パスワード生成管理装置１００（鍵出力部）は、キーストア装置２００から取得した鍵を、業務アプリケーション装置５００に対して返す。
【００３７】
図１０は、この実施の形態における暗号処理システム８００の鍵更新時の処理の流れの一例を示すシーケンス図である。
【００３８】
機密の漏洩を防ぐには、鍵を定期的に更新することが望ましい。管理者が鍵を更新すべき時期が来たと判断した場合、業務アプリケーション装置５００に対して鍵の更新を要求する。
「１：鍵更新要求」において、業務アプリケーション装置５００（更新要求部）は、管理者からの鍵更新要求を受ける。
「１．１：鍵更新要求」において、業務アプリケーション装置５００（更新要求部）は、鍵・パスワード生成管理装置１００に対して、オンメモリに保持している更新前の古い鍵を通知して、鍵の更新要求を行う。なお、業務アプリケーション装置５００は、タイマーなどを用いて鍵を生成・更新してからの経過時間を測定し、所定の期間（例えば一週間や一か月）が経過した場合に、管理者からの要求によらず自動的に、鍵・パスワード生成管理装置１００に対して鍵の更新を要求する構成であってもよい。
【００３９】
業務アプリケーション装置５００のコールスタックは、鍵取得要求時と異なる。このため、鍵・パスワード生成管理装置１００は、業務アプリケーション装置５００からパスワードと呼び出し情報とを受け取ったとしても、初期処理時や再起動時と同じキーストアパスワードを生成することはできない。その代わりとして、鍵・パスワード生成管理装置１００は、パスワードストア装置３００にアクセスして、キーストアパスワードを入手する。
【００４０】
「１．１．１：パスワードストアパスワードの生成」において、鍵・パスワード生成管理装置１００（逆パスワード算出部）は、業務アプリケーション装置５００から通知された鍵に基づいて、パスワードストアパスワード（逆パスワード）を生成する。業務アプリケーション装置５００から通知された鍵が、キーストア装置２００（順記憶部）に登録されている古い鍵と同一であれば、鍵・パスワード生成管理装置１００が生成するパスワードストアパスワードは、初期処理のときと同じになるから、パスワードストア装置３００（逆記憶部）に登録されているパスワードストアパスワードと一致する。
「１．１．２：パスワード取得要求」において、鍵・パスワード生成管理装置１００（逆パスワード算出部）は、パスワードストア装置３００（パスワード取得部）に対して、生成したパスワードストアパスワードを通知して、パスワードの取得を要求する。パスワードストア装置３００（パスワード取得部）は、鍵・パスワード生成管理装置１００から通知されたパスワードストアパスワードが、初期処理時に登録されたパスワードストアパスワードと一致すれば、初期処理時に登録されたキーストアパスワードを、鍵・パスワード生成管理装置１００に対して返す。鍵・パスワード生成管理装置１００は、パスワードストア装置３００が返したキーストアパスワードを取得する。これにより、鍵・パスワード生成管理装置１００は、初期処理時や再起動時と同じキーストアパスワードを入手する。
【００４１】
「１．１．３：鍵生成」において、鍵・パスワード生成管理装置１００（更新鍵生成部）は、更新後の新しい鍵を生成する。
「１．１．４：鍵更新登録要求」において、鍵・パスワード生成管理装置１００（更新鍵生成部）は、キーストア装置２００に対して、パスワードストア装置３００から入手したキーストアパスワードと、生成した更新後の新しい鍵とを通知して、鍵の更新登録を要求する。キーストア装置２００（鍵更新部）は、鍵・パスワード生成管理装置１００から通知されたキーストアパスワードが、初期処理時に登録されたキーストアパスワードと一致すれば、更新要求を受け入れる。キーストア装置２００（順記憶部）は、初期処理時に登録された古い鍵を削除し、その代わりとして、鍵・パスワード生成管理装置１００から通知された新しい鍵を記憶する。なお、更新されるのは鍵だけであり、キーストアパスワードは、更新前と変わらず、初期処理時に登録されたキーストアパスワードのままである。
「１．１．５：パスワードストアパスワードの生成」において、鍵・パスワード生成管理装置１００（逆パスワード算出部）は、生成した新しい鍵に基づいて、パスワードストアパスワードを生成する。鍵・パスワード生成管理装置１００が生成するパスワードストアパスワードは、鍵が更新されたので、更新前のパスワードストアパスワードと異なる。
「１．１．６：パスワード更新登録要求」において、鍵・パスワード生成管理装置１００は、パスワードストア装置３００に対して、生成したパスワードストアパスワードと、パスワードストア装置３００から入力したキーストアパスワードとを通知して、パスワードの更新登録を要求する。パスワードストア装置３００（鍵更新部）は、鍵・パスワード生成管理装置１００から通知されたキーストアパスワードが、初期処理時に登録されたキーストアパスワードと一致すれば、更新要求を受け入れる。パスワードストア装置３００（逆記憶部）は、初期処理時に登録された古いパスワードストアパスワードを削除し、その代わりとして、鍵・パスワード生成管理装置１００から通知された新しいパスワードストアパスワードを記憶する。なお、更新されるのはパスワードストアパスワードだけであり、キーストアパスワードは、更新前と変わらず、初期処理時に登録されたキーストアパスワードのままである。
【００４２】
その後、鍵・パスワード生成管理装置１００（更新鍵出力部）は、業務アプリケーション装置５００に対して、新しく作成した鍵を返す。
業務アプリケーション装置５００（暗号鍵更新部）は、更新された新しい鍵をオンメモリに保持して、暗号処理をする。業務アプリケーション装置５００（暗号更新部）は、例えば、既に暗号化したデータを古い鍵を使って復号し、復号した平文を新しい鍵を使って再暗号化するなどの処理を行う。
【００４３】
この実施の形態における暗号処理システム８００（鍵管理方式）は、鍵を用いて情報の暗号／復号化を行う暗号／復号化装置４００と、内部に管理する鍵情報の登録／取得／更新／削除のアクセス制御をエイリアス名とパスワードによって管理するキーストア装置２００と、内部に管理するパスワード情報の登録／取得／更新／削除のアクセス制御をエイリアス名とパスワードによって管理するパスワードストア装置３００と、鍵／パスワードの生成および上記装置への情報の登録／取得／更新／削除を行う鍵・パスワード生成管理装置１００とを備え、アプリケーション（業務アプリケーション装置５００）からの呼び出し情報と管理者（設定ファイル等を含む）からのパスワード情報を組み合わせてキーストア装置用のパスワード（キーストア・パスワード）を生成し、生成した鍵情報を、本キーストアパスワードを用いて登録する。
【００４４】
暗号処理システム８００は、鍵管理装置１０に登録する鍵情報を符号化してパスワードを生成し、キーストアパスワードを管理するパスワードストア装置３００のパスワード（パスワードストア・パスワード）として用いる。
【００４５】
これにより、プログラムに埋め込んだ情報など開発者が知る情報を使わないので、管理者および開発者による内部からの不正なアクセスを防ぐことができる。これにより、管理者／開発者からの不正アクセスに対する強度が向上する。また、鍵情報の更新が可能なので、危殆化を防ぐことができる。
【００４６】
暗号・復号および鍵管理装置１０は、業務アプリケーション装置５００の利用する鍵の生成および管理用のパスワード情報を作成する鍵・パスワード生成管理装置１００と、パスワードにより保持する鍵情報へのアクセス制御を行うキーストア装置２００と、パスワードにより保持するパスワード情報へのアクセス制御を行うパスワードストア装置３００とを備え、管理者／開発者にも入手が困難な業務アプリケーションの呼び出し情報（コールスタック等）と管理者の入力するパスワード情報からキーストアパスワードを作成することにより、管理者／開発者からの不正アクセスに対する強度を向上させることができる。
また、作成した鍵情報からパスワードストア・パスワードを作成することにより、業務アプリケーションからの鍵の更新要求に応じてキーストア装置内の鍵を更新することができる。
【００４７】
これにより、情報を暗号／復号化するシステムにおいて、鍵情報の更新を可能にするとともに、管理者／開発者の不正アクセスによる情報漏えいのリスクを低減することが可能となる。
【００４８】
実施の形態２．
実施の形態２について、図１１〜図１４を用いて説明する。
なお、実施の形態１と共通する部分については、同一の符号を付し、説明を省略する。
【００４９】
図１１は、この実施の形態における暗号処理システム８００の機能ブロックの構成の一例を示すブロック構成図である。
【００５０】
暗号処理システム８００は、例えば、実行装置５０１と、鍵管理装置１０とを有する。
実行装置５０１は、平文データを入力し、入力した平文データを暗号化して暗号化データを生成し、生成した暗号化データを記憶しておく。実行装置５０１は、必要に応じて、記憶した暗号化データを復号して、平文データを復元し、復元した平文データ（復元平文データ）を出力する。実行装置５０１のハードウェア構成は、例えば、図３を用いて説明した鍵管理装置１０のハードウェア構成と同様である。
【００５１】
鍵管理装置１０は、実行装置５０１が暗号化や復号などの暗号処理に使用する鍵を管理する。
鍵管理装置１０は、例えば、鍵記憶部１１０と、取得要求入力部１２１と、更新要求入力部１２２と、応答出力部１２３と、鍵パスワード算出部１３１と、鍵取得部１３２と、鍵生成部１３３と、応答生成部１３４と、鍵登録部１３５と、逆パスワード算出部１３６と、パスワード取得部１３７とを有する。
【００５２】
鍵記憶部１１０は、磁気ディスク装置９２０（記憶装置）を用いて、鍵管理装置１０が管理している鍵を表わす鍵データを記憶している。また、鍵データに対するアクセスを制限するため、鍵記憶部１１０は、鍵データにアクセスするための鍵パスワードを記憶している。
また、１つの鍵管理装置１０が鍵を管理する実行装置５０１が複数ある場合や、１つの実行装置５０１が複数の鍵を使用する場合などが想定されるため、鍵管理装置１０は、複数の鍵を管理する場合がある。このため、鍵記憶部１１０は、複数の鍵データを記憶する。それぞれの鍵データを識別するため、鍵記憶部１１０は、それぞれの鍵の識別データを記憶する。
【００５３】
鍵記憶部１１０は、順記憶部２０１と、逆記憶部３０１とを有する。
順記憶部２０１は、磁気ディスク装置９２０（記憶装置）を用いて、鍵を表わす鍵データと、その鍵の鍵パスワードと、その鍵の識別データとを対応づけて記憶する。
逆記憶部３０１は、磁気ディスク装置９２０（記憶装置）を用いて、順記憶部２０１が記憶した鍵パスワードと、その鍵パスワードにアクセスするための逆パスワードと、その鍵パスワードによってアクセスされる鍵の識別データとを対応づけて記憶する。
【００５４】
取得要求入力部１２１は、ＣＰＵ９１１（処理装置）を用いて、実行装置５０１が通知した鍵取得要求メッセージを入力する。鍵取得要求メッセージは、鍵管理装置１０が管理している鍵の取得を要求することを表わす。鍵取得要求メッセージは、取得したい鍵の識別データと、その鍵に対応する管理パスワードとを含む。また、鍵取得要求メッセージは、実行装置５０１が本物であることを証明するための証明データを含む。これは、実行装置５０１になりすました偽物に鍵管理装置１０が管理する鍵を窃取されないためである。証明データには、例えば、実行装置５０１に固有の識別データや、公開鍵暗号を利用した署名データなどがある。また、証明データは、取得要求入力部１２１が入力した鍵取得要求メッセージを実行装置５０１が通知した文脈を表わす文脈データであってもよい。
ここでいう「文脈」とは、例えば、コンピュータがプログラムを実行する際、サブルーチンや関数、メソッドなどの呼び出し時に、保存しておく戻り先などを表わす情報のことである。すなわち、「文脈」は、実行装置５０１が実行装置５０１として機能するために実行しているプログラムの構造によって定まるものであり、偽造することができない。例えば、実行装置５０１が実行しているプログラム内において、鍵管理装置１０は、一つのオブジェクトとして認識され、そのオブジェクトの鍵取得要求メソッドを呼び出すことによって、鍵管理装置１０に対する鍵取得要求メッセージが通知される。「文脈」は、プログラム言語の仕様によって、鍵管理装置１０に通知される。
このため、文脈データを証明データとして利用すると、単なる識別データを利用する場合と違って、なりすましが困難になる。文脈データを証明データとして利用すると、公開鍵暗号を利用した署名データを利用する場合と違って、計算量が少ないなど、実行装置５０１が本物であることを証明するためのコストを抑えることができる。
【００５５】
更新要求入力部１２２は、ＣＰＵ９１１（処理装置）を用いて、実行装置５０１が通知した鍵更新要求メッセージを入力する。鍵更新要求メッセージは、鍵管理装置１０が管理している鍵の更新を要求することを表わす。鍵更新要求メッセージは、更新したい鍵の識別データと、更新前の古い鍵そのものを表わす鍵データとを含む。鍵更新要求メッセージは、証明データを含む必要はない。なぜなら、鍵更新要求メッセージは更新前の鍵データを含むので、鍵更新要求メッセージを通知してきた装置は、更新前の鍵を知っている。鍵の秘密性が守られている限りにおいて、更新前の鍵を知っているのは、実行装置５０１だけであるから、実行装置５０１が本物であることを証明する必要はない。
【００５６】
応答出力部１２３（鍵出力部、更新鍵出力部）は、ＣＰＵ９１１（処理装置）を用いて、実行装置５０１に対して、取得要求入力部１２１が入力した鍵取得要求メッセージや、更新要求入力部１２２が入力した鍵更新要求メッセージに対する応答メッセージを出力する。応答メッセージは、鍵の取得や更新が成功したか否かを表わす成否データを含む。また、鍵の取得や更新が成功した場合、応答メッセージは、取得した鍵あるいは更新後の新しい鍵を表わす鍵データを含む。
【００５７】
鍵パスワード算出部１３１は、ＣＰＵ９１１（処理装置）を用いて、鍵パスワードを算出する。鍵パスワード算出部１３１は、取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる管理パスワードと証明データとに基づいて、鍵パスワードを算出する。鍵パスワード算出部１３１は、例えば、管理パスワードと証明データとを連結し、ハッシュ関数などの一方向性関数を使用して、連結したデータを変換することにより、鍵パスワードを算出する。鍵パスワード算出部１３１が鍵パスワードを算出するために使用する関数は、衝突困難性と予測困難性とを有する関数であることが望ましい。衝突困難性とは、管理パスワードと証明データとのいずれか一方が１ビットでも異なれば、異なる鍵パスワードが算出されることをいう。また、予測困難性とは、管理パスワードと証明データとのいずれか一方が１ビットでも不明であれば、算出される鍵パスワードを１ビットも予測できないことをいう。
【００５８】
鍵取得部１３２は、ＣＰＵ９１１（処理装置）を用いて、順記憶部２０１から鍵データを取得する。鍵取得部１３２は、順記憶部２０１が記憶した識別データのなかから、取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる識別データと一致するものを探す。一致する識別データがある場合、鍵取得部１３２は、その識別データに対応づけて順記憶部２０１が記憶した鍵パスワードと、鍵パスワード算出部１３１が算出した鍵パスワードとが一致するか否かを判定する。鍵取得部１３２は、鍵パスワードが一致する場合、その鍵パスワード及び識別データに対応づけて順記憶部２０１が記憶した鍵データを取得する。それ以外の場合、鍵取得部１３２は、鍵データの取得に失敗する。
【００５９】
鍵生成部１３３（新規鍵生成部、更新鍵生成部）は、ＣＰＵ９１１（処理装置）を用いて、新たな鍵を表わす鍵データを生成する。鍵生成部１３３が鍵データを生成する場合には、新規登録時と、更新時との２つの場合がある。新規登録時とは、鍵取得部１３２が鍵データの取得に失敗した場合のうち、順記憶部２０１が記憶した識別データのなかに、取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる識別データと一致する識別データがなかった場合である。更新時については、後述する。
【００６０】
応答生成部１３４は、ＣＰＵ９１１（処理装置）を用いて、応答出力部１２３が出力する応答メッセージを生成する。鍵取得部１３２が鍵データを取得した場合、応答生成部１３４は、鍵取得部１３２が取得した鍵データを含む応答メッセージを生成する。また、鍵生成部１３３が鍵データを生成した場合、応答生成部１３４は、鍵生成部１３３が生成した鍵データを含む応答メッセージを生成する。それ以外の場合、応答生成部１３４は、鍵の取得あるいは更新に失敗したことを表わす応答メッセージを生成する。
【００６１】
鍵登録部１３５は、ＣＰＵ９１１（処理装置）を用いて、順記憶部２０１に鍵データを登録する。鍵登録部１３５が鍵データを登録する場合には、新規登録時と更新時との２つの場合がある。新規登録時において、鍵登録部１３５は、ＣＰＵ９１１（処理装置）を用いて、順記憶部２０１が記憶した識別データのなかから、取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる識別データと一致するものを探す。新規登録時とは、鍵取得部１３２が鍵データの取得に失敗した場合のうち、順記憶部２０１が記憶した識別データのなかに、取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる識別データと一致する識別データがなかった場合であるから、一致する識別データは存在しないはずである。一致する識別データが存在しない場合、鍵生成部１３３は、鍵生成部１３３が生成した鍵データと、鍵パスワード算出部１３１が算出した鍵パスワードと、取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる識別データとを、順記憶部２０１に新たに記憶させる。順記憶部２０１は、磁気ディスク装置９２０（記憶装置）を用いて、鍵生成部１３３が生成した鍵データと、鍵パスワード算出部１３１が算出した鍵パスワードと、取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる識別データとを対応づけて、新たに記憶する。更新時については、後述する。
【００６２】
逆パスワード算出部１３６（旧逆パスワード算出部、新逆パスワード算出部）は、ＣＰＵ９１１（処理装置）を用いて、逆パスワードを算出する。例えば、逆パスワード算出部１３６は、ハッシュ関数などの一方向性関数を使用して、鍵データを変換することにより、逆パスワードを算出する。逆パスワード算出部１３６が逆パスワードの算出に使用する関数は、鍵パスワード算出部１３１が鍵パスワードの算出に使用する関数と同一の関数であってもよいし、異なる関数であってもよい。逆パスワード算出部１３６が逆パスワードの算出に使用する関数は、衝突困難性と予測困難性とを有することが望ましい。
逆パスワード算出部１３６が逆パスワードを算出する場合には、新規登録時と更新時との２つの場合がある。新規登録時において、逆パスワード算出部１３６は、ＣＰＵ９１１（処理装置）を用いて、鍵登録部１３５が順記憶部２０１に記憶させた鍵データに基づいて、逆パスワードを算出する。
更新時において、逆パスワード算出部１３６は、逆パスワードを２回算出する。１回目は、更新要求入力部１２２が鍵更新要求メッセージを入力したときである。逆パスワード算出部１３６（旧逆パスワード算出部）は、ＣＰＵ９１１（処理装置）を用いて、更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる更新前の古い鍵データに基づいて、逆パスワードを算出する。２回目については、後述する。
【００６３】
新規登録時において、逆記憶部３０１は、磁気ディスク装置９２０（記憶装置）を用いて、鍵登録部１３５が順記憶部２０１に記憶させた鍵パスワードと、逆パスワード算出部１３６が算出した逆パスワードと、取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる識別データとを対応づけて記憶する。
【００６４】
パスワード取得部１３７は、ＣＰＵ９１１（処理装置）を用いて、鍵記憶部１１０から鍵パスワードを取得する。逆パスワード算出部１３６が更新時１回目の逆パスワードを算出した場合、パスワード取得部１３７は、逆記憶部３０１が記憶した識別データのなかから、更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる識別データと一致するものを探す。一致する識別データがある場合、パスワード取得部１３７は、その識別データに対応づけて逆記憶部３０１が記憶した逆パスワードと、逆パスワード算出部１３６が算出した逆パスワードとが一致するか否かを判定する。逆パスワードが一致する場合、パスワード取得部１３７は、その逆パスワード及び識別データに対応づけて逆記憶部３０１が記憶した鍵パスワードを取得する。それ以外の場合、パスワード取得部１３７は、鍵パスワードの取得に失敗する。
【００６５】
更新時において、パスワード取得部１３７が鍵パスワードを取得した場合、鍵生成部１３３（更新鍵生成部）は、ＣＰＵ９１１（処理装置）を用いて、更新後の新しい鍵データを生成する。
鍵登録部１３５（鍵更新部）は、ＣＰＵ９１１（処理装置）を用いて、順記憶部２０１が記憶した識別データのなかから、更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる識別データと一致するものを探す。順記憶部２０１は、逆記憶部３０１と同じ識別データを記憶しているので、一致する識別データがあるはずである。一致する識別データがある場合、鍵登録部１３５（鍵更新部）は、その識別データに対応づけて順記憶部２０１が記憶した鍵パスワードと、パスワード取得部１３７が取得した鍵パスワードとが一致するか否かを判定する。順記憶部２０１は、逆記憶部３０１と同じ鍵パスワードを同じ識別データに対応づけて記憶しているので、鍵パスワードは一致するはずである。鍵パスワードが一致する場合、鍵登録部１３５（鍵更新部）は、その鍵パスワード及び識別データに対応づけて順記憶部２０１が記憶した鍵データに代えて、鍵生成部１３３が生成した更新後の新しい鍵データを、順記憶部２０１に記憶させる。
順記憶部２０１は、磁気ディスク装置９２０（記憶装置）を用いて、鍵パスワード及び識別データはそのままにして、鍵データだけを鍵生成部１３３が生成した鍵データに置き換えて、その鍵パスワード及び識別データに対応づけて記憶する。
逆パスワード算出部１３６（新逆パスワード算出部）は、ＣＰＵ９１１（処理装置）を用いて、更新時２回目の逆パスワードを算出する。逆パスワード算出部１３６（新逆パスワード算出部）は、鍵登録部１３５（鍵更新部）が順記憶部２０１に登録した更新後の新しい鍵データに基づいて、逆パスワードを算出する。
逆記憶部３０１（鍵更新部）は、ＣＰＵ９１１（処理装置）を用いて、記憶した識別データのなかから、更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる識別データに一致するものを探す。パスワード取得部１３７が鍵パスワードを取得しているので、一致する識別データがあるはずである。一致する識別データがある場合、逆記憶部３０１は、ＣＰＵ９１１（処理装置）を用いて、その識別データに対応づけて記憶した鍵パスワードと、鍵登録部１３５が順記憶部２０１に記憶させた鍵パスワードとが一致するか否かを判定する。鍵登録部１３５が順記憶部２０１に記憶させた鍵パスワードは、パスワード取得部１３７が逆記憶部３０１から取得したものなので、鍵パスワードは一致するはずである。鍵パスワードが一致する場合、逆記憶部３０１は、磁気ディスク装置９２０（記憶装置）を用いて、その鍵パスワード及び識別データに対応づけて記憶した逆パスワードに代えて、逆パスワード算出部１３６（新逆パスワード算出部）が算出した更新後の新しい逆パスワードを記憶する。逆記憶部３０１は、記憶した鍵パスワード及び識別データはそのままにして、逆パスワードだけを逆パスワード算出部１３６（新逆パスワード算出部）が算出した更新後の新しい逆パスワードに置き換えて、その鍵パスワード及び識別データに対応づけて記憶する。
【００６６】
実行装置５０１は、例えば、取得要求部５１０と、更新要求部５２０と、応答取得部５３１と、暗号鍵記憶部５３２と、暗号処理部５４０とを有する。
【００６７】
取得要求部５１０は、実行装置５０１の起動時などに、鍵管理装置１０に対して、鍵取得要求メッセージを通知する。取得要求部５１０は、例えば、管理パスワード取得部５１１と、取得要求生成部５１２と、取得要求通知部５１３とを有する。
管理パスワード取得部５１１は、ＣＰＵ９１１（実行処理装置）を用いて、管理パスワードを取得する。例えば、管理パスワード取得部５１１は、管理者がキーボード９０２などを操作することにより実行装置５０１に入力した管理パスワードを取得する。あるいは、管理パスワード取得部５１１は、設定ファイルを読み込んで、設定ファイルに記録された管理パスワードを取得する。
取得要求生成部５１２は、ＣＰＵ９１１（実行処理装置）を用いて、鍵取得要求メッセージを生成する。取得要求生成部５１２が生成する鍵取得要求メッセージは、管理パスワード取得部５１１が取得した管理パスワードを含む。また、取得要求生成部５１２が生成する鍵取得要求メッセージは、文脈データなどの証明データを含む。更に、取得要求生成部５１２が生成する鍵取得要求メッセージは、実行装置５０１（または、取得すべき鍵）を識別する識別データを含む。なお、鍵管理装置１０に鍵が登録されていない場合は、鍵管理装置１０が鍵を生成する。このため、取得要求生成部５１２が生成する鍵取得要求メッセージは、更に、鍵アルゴリズムや鍵長など鍵生成に必要なパラメータを含む構成であってもよい。
取得要求通知部５１３は、ＣＰＵ９１１（実行処理装置）を用いて、取得要求生成部５１２が生成した鍵取得要求メッセージを、鍵管理装置１０に対して通知する。
【００６８】
更新要求部５２０は、鍵管理装置１０に対して、鍵更新要求メッセージを通知する。更新要求部５２０は、例えば、更新判定部５２１と、更新要求生成部５２２と、更新要求通知部５２３とを有する。
更新判定部５２１は、ＣＰＵ９１１（実行処理装置）を用いて、鍵を更新すべきか否かを判定する。例えば、更新判定部５２１は、磁気ディスク装置９２０（不揮発性記憶装置）を用いて、鍵を更新した日付を記憶しておく。更新判定部５２１は、記憶した日付と、今の日付とを比較して、所定の日数が経過したとき、鍵を更新すべきと判定する。あるいは、更新判定部５２１は、管理者がキーボード９０２などを操作することにより鍵を更新すべきことを実行装置５０１に入力した場合に、鍵を更新すべきと判定する。
更新要求生成部５２２は、鍵を更新すべきと更新判定部５２１が判定した場合、ＣＰＵ９１１（実行処理装置）を用いて、鍵更新要求メッセージを生成する。更新要求生成部５２２が生成する鍵更新要求メッセージは、暗号鍵記憶部５３２が記憶した鍵データを含む。また、更新要求生成部５２２が生成する鍵更新要求メッセージは、実行装置５０１（または、更新すべき鍵）を識別する識別データを含む。
更新要求通知部５２３は、ＣＰＵ９１１（実行処理装置）を用いて、更新要求生成部５２２が生成した鍵更新要求メッセージを、鍵管理装置１０に対して通知する。
【００６９】
応答取得部５３１（暗号鍵取得部、暗号鍵更新部）は、ＣＰＵ９１１を用いて、取得要求部５１０が通知した鍵取得要求メッセージや、更新要求部５２０が通知した鍵更新要求メッセージに対する応答として、鍵管理装置１０が出力した応答メッセージを取得する。取得した応答メッセージが、鍵の取得あるいは更新に成功したことを表わし、鍵データを含む場合、応答取得部５３１は、ＣＰＵ９１１（実行処理装置）を用いて、応答メッセージに含まれる鍵データを、暗号鍵記憶部５３２に記憶させる。
暗号鍵記憶部５３２は、ＲＡＭ９１４（揮発性記憶装置）を用いて、応答取得部５３１が取得した応答メッセージに含まれる鍵データを記憶する。なお、１つの実行装置５０１が複数の鍵を使用する場合、暗号鍵記憶部５３２は、複数の鍵データを記憶する。複数の鍵は、識別データによって区別される。暗号鍵記憶部５３２は、取得要求部５１０が生成した鍵取得要求メッセージや更新要求部５２０が生成した鍵更新要求メッセージに含まれる識別データと、それに対する応答である応答メッセージに含まれる鍵データとを対応づけて記憶する。
【００７０】
暗号処理部５４０は、ＣＰＵ９１１（実行処理装置）を用いて、暗号鍵記憶部５３２が記憶した鍵データを使用して、暗号処理をする。暗号処理部５４０は、例えば、平文入力部５４１と、暗号化部４０１と、暗号記憶部５４２と、復号部４０２と、平文出力部５４３とを有する。
【００７１】
平文入力部５４１は、ＣＰＵ９１１（実行処理装置）を用いて、実行装置５０１が暗号化して記憶すべき平文データを入力する。
暗号化部４０１は、ＣＰＵ９１１（実行処理装置）を用いて、暗号鍵記憶部５３２が記憶した鍵データを使用して、平文入力部５４１が入力した平文データを暗号化し、暗号化データを生成する。
暗号記憶部５４２は、磁気ディスク装置９２０（不揮発性記憶装置）を用いて、暗号化部４０１が暗号化した暗号化データを記憶する。
復号部４０２は、ＣＰＵ９１１（実行処理装置）を用いて、暗号鍵記憶部５３２が記憶した鍵データを使用して、暗号記憶部５４２が記憶した暗号化データを復号し、復元平文データを生成する。
平文出力部５４３は、ＣＰＵ９１１（実行処理装置）を用いて、復号部４０２が生成した復元平文データを出力する。
【００７２】
図１２は、この実施の形態における暗号処理システム８００全体の処理の流れの一例を示すフローチャート図である。
【００７３】
鍵管理装置１０は、例えば、取得要求入力処理Ｓ７１０と、鍵取得処理Ｓ７２０と、更新要求入力処理Ｓ７５０と、鍵更新処理Ｓ７６０とを実行する。
取得要求入力処理Ｓ７１０において、鍵管理装置１０は、実行装置５０１から鍵取得要求メッセージが通知されたか否かを判定する。実行装置５０１から鍵取得要求メッセージが通知された場合、鍵管理装置１０は、通知された鍵取得要求メッセージを入力して、鍵取得処理Ｓ７２０へ処理を進める。実行装置５０１から鍵取得要求メッセージが通知されない場合、鍵管理装置１０は、更新要求入力処理Ｓ７５０へ処理を進める。
鍵取得処理Ｓ７２０において、鍵管理装置１０は、取得要求入力処理Ｓ７１０で入力した鍵取得要求メッセージにしたがって、鍵を取得する。なお、鍵管理装置１０に鍵が登録されていない場合、鍵管理装置１０は、鍵を生成して登録する。鍵管理装置１０は、実行装置５０１に対して、応答メッセージを出力する。鍵管理装置１０は、更新要求入力処理Ｓ７５０へ処理を進める。
更新要求入力処理Ｓ７５０において、鍵管理装置１０は、実行装置５０１から鍵更新要求メッセージが通知されたか否かを判定する。実行装置５０１から鍵更新要求メッセージが通知された場合、鍵管理装置１０は、通知された鍵更新要求メッセージを入力して、鍵更新処理Ｓ７６０へ処理を進める。実行装置５０１から鍵更新要求メッセージが通知されない場合、鍵管理装置１０は、取得要求入力処理Ｓ７１０に処理を戻す。
鍵更新処理Ｓ７６０において、鍵管理装置１０は、更新要求入力処理Ｓ７５０で入力した鍵更新メッセージにしたがって、鍵を更新し、実行装置５０１に対して、応答メッセージを出力する。鍵管理装置１０は、取得要求入力処理Ｓ７１０に処理を戻す。
【００７４】
実行装置５０１は、例えば、取得要求処理Ｓ８１０と、暗号処理Ｓ８２０と、更新判定処理Ｓ８３０と、更新要求処理Ｓ８４０と、暗号更新処理Ｓ８５０とを実行する。
実行装置５０１が起動すると、まず、取得要求処理Ｓ８１０を実行する。
取得要求処理Ｓ８１０において、実行装置５０１は、鍵管理装置１０に対して、鍵取得要求メッセージを通知する。実行装置５０１は、通知した鍵取得要求メッセージに対する応答として鍵管理装置１０が出力した応答メッセージを取得する。
暗号処理Ｓ８２０において、実行装置５０１は、取得要求処理Ｓ８１０で取得した応答メッセージに含まれる鍵データを使用して、暗号処理をする。
更新判定処理Ｓ８３０において、実行装置５０１は、鍵を更新するか否かを判定する。更新すると判定した場合、実行装置５０１は、更新要求処理Ｓ８４０へ処理を進める。更新しないと判定した場合、実行装置５０１は、暗号処理Ｓ８２０に処理を戻す。
更新要求処理Ｓ８４０において、実行装置５０１は、鍵管理装置１０に対して、鍵更新要求メッセージを通知する。実行装置５０１は、通知した鍵更新要求メッセージに対する応答として鍵管理装置１０が出力した応答メッセージを取得する。
暗号更新処理Ｓ８５０において、実行装置５０１は、更新要求処理Ｓ８４０で取得した応答メッセージに含まれる更新後の新しい鍵データを使用して、記憶している暗号化データを更新する。実行装置５０１は、暗号処理Ｓ８２０に処理を戻す。
【００７５】
図１３は、この実施の形態における鍵管理装置１０の処理の詳細な流れの一例を示すフローチャート図である。
【００７６】
取得要求入力処理Ｓ７１０は、例えば、取得要求入力工程Ｓ７１１を有する。
取得要求入力工程Ｓ７１１において、取得要求入力部１２１は、実行装置５０１から新たに通知された鍵取得要求メッセージがあれば、ＣＰＵ９１１を用いて、通知された鍵取得要求メッセージを入力し、鍵取得処理Ｓ７２０へ処理を進める。実行装置５０１から通知された鍵取得要求メッセージがない場合、取得要求入力部１２１は、ＣＰＵ９１１を用いて、更新要求入力処理Ｓ７５０へ処理を進める。
【００７７】
鍵取得処理Ｓ７２０は、例えば、鍵パスワード算出工程Ｓ７２１と、鍵取得工程Ｓ７２２と、鍵生成工程Ｓ７２３と、鍵登録工程Ｓ７２４と、鍵出力工程Ｓ７２５と、失敗出力工程Ｓ７２６とを有する。
鍵パスワード算出工程Ｓ７２１において、鍵パスワード算出部１３１は、ＣＰＵ９１１を用いて、取得要求入力工程Ｓ７１１で取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる管理パスワードと証明データとに基づいて、鍵パスワードを算出する。
鍵取得工程Ｓ７２２において、鍵取得部１３２は、ＣＰＵ９１１を用いて、鍵パスワード算出工程Ｓ７２１で鍵パスワード算出部１３１が算出した鍵パスワードと、取得要求入力工程Ｓ７１１で取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる識別データとを使って、順記憶部２０１から鍵データを取得する。鍵データの取得に成功した場合、鍵取得部１３２は、ＣＰＵ９１１を用いて、鍵出力工程Ｓ７２５へ処理を進める。識別データの不一致により鍵データの取得に失敗した場合、鍵取得部１３２は、ＣＰＵ９１１を用いて、鍵生成工程Ｓ７２３へ処理を進める。鍵パスワードの不一致により鍵データの取得に失敗した場合、鍵取得部１３２は、ＣＰＵ９１１を用いて、失敗出力工程Ｓ７２６へ処理を進める。
【００７８】
鍵生成工程Ｓ７２３において、鍵生成部１３３（新規鍵生成部）は、ＣＰＵ９１１を用いて、新たな鍵データを生成する。鍵生成部１３３は、取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる鍵アルゴリズムや鍵長などのパラメータにしたがって、鍵データを生成する構成であってもよいし、あらかじめ固定されたパラメータを使って、鍵データを生成する構成であってもよい。鍵取得要求メッセージがパラメータを含む構成であれば、実行装置５０１の側で、扱う情報の機密レベルに応じて鍵生成のパラメータを変更することができるので、好ましい。
鍵登録工程Ｓ７２４において、鍵登録部１３５は、ＣＰＵ９１１を用いて、鍵生成工程Ｓ７２３で鍵生成部１３３が生成した鍵データを、鍵記憶部１１０に登録する。順記憶部２０１は、磁気ディスク装置９２０を用いて、鍵生成工程Ｓ７２３で鍵生成部１３３が生成した鍵データと、鍵パスワード算出工程Ｓ７２１で鍵パスワード算出部１３１が算出した鍵パスワードと、取得要求入力工程Ｓ７１１で取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる識別データとの組を、新たに記憶する。逆パスワード算出部１３６は、ＣＰＵ９１１を用いて、鍵生成工程Ｓ７２３で鍵生成部１３３が生成した鍵データに基づいて、逆パスワードを算出する。逆記憶部３０１は、鍵パスワード算出工程Ｓ７２１で鍵パスワード算出部１３１が算出した鍵パスワードと、逆パスワード算出部１３６が算出した逆パスワードと、取得要求入力工程Ｓ７１１で取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる識別データとの組を、新たに記憶する。鍵登録部１３５は、ＣＰＵ９１１を用いて、鍵出力工程Ｓ７２５へ処理を進める。
なお、なんらかのエラーにより、鍵データの登録に失敗した場合は、鍵登録部１３５は、ＣＰＵ９１１を用いて、失敗出力工程Ｓ７２６へ処理を進める。
【００７９】
鍵出力工程Ｓ７２５において、応答生成部１３４は、ＣＰＵ９１１を用いて、鍵取得工程Ｓ７２２で鍵取得部１３２が取得した鍵データ、もしくは、鍵生成工程Ｓ７２３で鍵生成部１３３が生成した鍵データを含む応答メッセージを生成する。応答出力部１２３は、ＣＰＵ９１１を用いて、実行装置５０１に対して、応答生成部１３４が生成した応答メッセージを出力する。応答出力部１２３は、ＣＰＵ９１１を用いて、更新要求入力処理Ｓ７５０へ処理を進める。
【００８０】
失敗出力工程Ｓ７２６において、応答生成部１３４は、ＣＰＵ９１１を用いて、鍵の取得に失敗したことを表わす応答メッセージを生成する。応答出力部１２３は、ＣＰＵ９１１を用いて、実行装置５０１に対して、応答生成部１３４が生成した応答メッセージを出力する。応答出力部１２３は、ＣＰＵ９１１を用いて、更新要求入力処理Ｓ７５０へ処理を進める。
【００８１】
更新要求入力処理Ｓ７５０は、例えば、更新要求入力工程Ｓ７５１を有する。
更新要求入力工程Ｓ７５１において、更新要求入力部１２２は、実行装置５０１から新たに通知された鍵更新要求メッセージがあれば、ＣＰＵ９１１を用いて、通知された鍵更新要求メッセージを入力し、鍵更新処理Ｓ７６０へ処理を進める。実行装置５０１から通知された鍵更新要求メッセージがない場合、更新要求入力部１２２は、ＣＰＵ９１１を用いて、取得要求入力処理Ｓ７１０に処理を戻す。
【００８２】
鍵更新処理Ｓ７６０は、例えば、逆パスワード算出工程Ｓ７６１と、パスワード取得工程Ｓ７６２と、鍵生成工程Ｓ７６３と、鍵更新工程Ｓ７６４と、鍵出力工程Ｓ７６５と、失敗出力工程Ｓ７６６とを有する。
逆パスワード算出工程Ｓ７６１において、逆パスワード算出部１３６（旧逆パスワード算出部）は、ＣＰＵ９１１を用いて、更新要求入力工程Ｓ７５１で更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる更新前の古い鍵データに基づいて、逆パスワードを算出する。
パスワード取得工程Ｓ７６２において、パスワード取得部１３７は、ＣＰＵ９１１を用いて、逆パスワード算出工程Ｓ７６１で逆パスワード算出部１３６が算出した逆パスワードと、更新要求入力工程Ｓ７５１で更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる識別データとを使って、逆記憶部３０１が記憶した鍵パスワードを取得する。鍵パスワードの取得に成功した場合、パスワード取得部１３７は、ＣＰＵ９１１を用いて、鍵生成工程Ｓ７６３へ処理を進める。識別データの不一致や逆パスワードの不一致により鍵パスワードの取得に失敗した場合、パスワード取得部１３７は、ＣＰＵ９１１を用いて、失敗出力工程Ｓ７６６へ処理を進める。
【００８３】
鍵生成工程Ｓ７６３において、鍵生成部１３３（更新鍵生成部）は、ＣＰＵ９１１を用いて、新たな鍵データを生成する。
鍵更新工程Ｓ７６４において、鍵登録部１３５（鍵更新部）は、ＣＰＵ９１１を用いて、鍵記憶部１１０に登録された鍵データを、鍵生成工程Ｓ７６３で鍵生成部１３３が生成した鍵データに更新する。順記憶部２０１は、磁気ディスク装置９２０を用いて、対応づけられた識別データが、更新要求入力工程Ｓ７５１で更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる識別データと一致し、かつ、対応づけられた鍵パスワードが、パスワード取得工程Ｓ７６２でパスワード取得部１３７が取得した鍵パスワードと一致する鍵データを、鍵生成工程Ｓ７６３で鍵生成部１３３が生成した鍵データに置き換えて記憶する。逆パスワード算出部１３６（新逆パスワード算出部）は、ＣＰＵ９１１を用いて、鍵生成工程Ｓ７６３で鍵生成部１３３が生成した鍵データに基づいて、新たな逆パスワードを算出する。逆記憶部３０１は、磁気ディスク装置９２０を用いて、対応づけられた識別データが、更新要求入力工程Ｓ７５１で更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる識別データと一致し、かつ、対応づけられた鍵パスワードが、パスワード取得工程Ｓ７６２でパスワード取得部１３７が取得した鍵パスワードと一致する逆パスワードを、逆パスワード算出部１３６が算出した新たな逆パスワードで置き換えて記憶する。なお、なんらかのエラーにより鍵データの更新に失敗した場合、鍵登録部１３５は、ＣＰＵ９１１を用いて、失敗出力工程Ｓ７６６へ処理を進める。
【００８４】
鍵出力工程Ｓ７６５において、応答生成部１３４は、ＣＰＵ９１１を用いて、鍵生成工程Ｓ７６３で鍵生成部１３３が生成した新たな鍵データを含む応答メッセージを生成する。応答出力部１２３は、ＣＰＵ９１１を用いて、実行装置５０１に対して、応答生成部１３４が生成した応答メッセージを出力する。応答出力部１２３は、ＣＰＵ９１１を用いて、取得要求入力処理Ｓ７１０に処理を戻す。
【００８５】
失敗出力工程Ｓ７６６において、応答生成部１３４は、ＣＰＵ９１１を用いて、鍵の更新に失敗したことを表わす応答メッセージを生成する。応答出力部１２３は、ＣＰＵ９１１を用いて、実行装置５０１に対して、応答生成部１３４が生成した応答メッセージを出力する。応答出力部１２３は、ＣＰＵ９１１を用いて、取得要求入力処理Ｓ７１０に処理を戻す。
【００８６】
図１４は、この実施の形態における実行装置５０１の処理の詳細な流れの一例を示すフローチャート図である。
【００８７】
取得要求処理Ｓ８１０は、例えば、管理パスワード取得工程Ｓ８１１と、鍵取得要求生成工程Ｓ８１２と、鍵取得要求通知工程Ｓ８１３と、応答取得工程Ｓ８１４と、鍵記憶工程Ｓ８１５とを有する。
管理パスワード取得工程Ｓ８１１において、管理パスワード取得部５１１は、ＣＰＵ９１１を用いて、管理パスワードを取得する。
鍵取得要求生成工程Ｓ８１２において、取得要求生成部５１２は、ＣＰＵ９１１を用いて、管理パスワード取得工程Ｓ８１１で管理パスワード取得部５１１が取得した管理パスワードと、識別データと、証明データとを含む鍵取得要求メッセージを生成する。
鍵取得要求通知工程Ｓ８１３において、取得要求通知部５１３は、ＣＰＵ９１１を用いて、鍵取得要求生成工程Ｓ８１２で取得要求生成部５１２が生成した鍵取得要求メッセージを、鍵管理装置１０に対して通知する。
応答取得工程Ｓ８１４において、応答取得部５３１（暗号鍵取得部）は、ＣＰＵ９１１を用いて、鍵取得要求通知工程Ｓ８１３で取得要求通知部５１３が通知した鍵取得要求メッセージに対する応答として鍵管理装置１０が出力した応答メッセージを取得する。取得した応答メッセージが、鍵の取得に成功したことを表わす場合、応答取得部５３１は、ＣＰＵ９１１を用いて、鍵記憶工程Ｓ８１５へ処理を進める。取得した応答メッセージが、鍵の取得に失敗したことを表わす場合、応答取得部５３１は、ＣＰＵ９１１を用いて、管理パスワード取得工程Ｓ８１１に処理を戻す。
鍵記憶工程Ｓ８１５において、暗号鍵記憶部５３２は、ＲＡＭ９１４を用いて、応答取得工程Ｓ８１４で応答取得部５３１が取得した応答メッセージに含まれる鍵データを記憶する。
【００８８】
暗号処理Ｓ８２０において、暗号処理部５４０は、ＣＰＵ９１１を用いて、暗号鍵記憶部５３２が記憶した鍵データを使って、暗号処理をする。
【００８９】
更新判定処理Ｓ８３０において、更新判定部５２１は、ＣＰＵ９１１を用いて、鍵の更新をするか否かを判定する。鍵の更新をすると判定した場合、更新判定部５２１は、ＣＰＵ９１１を用いて、更新要求処理Ｓ８４０へ処理を進める。まだ鍵の更新をしないと判定した場合、更新判定部５２１は、ＣＰＵ９１１を用いて、暗号処理Ｓ８２０に処理を戻す。
【００９０】
更新要求処理Ｓ８４０は、例えば、鍵更新要求生成工程Ｓ８４１と、鍵更新要求通知工程Ｓ８４２と、応答取得工程Ｓ８４３と、新鍵記憶工程Ｓ８４４とを有する。
鍵更新要求生成工程Ｓ８４１において、更新要求生成部５２２は、ＣＰＵ９１１を用いて、暗号鍵記憶部５３２が記憶した鍵データと、識別データとを含む鍵更新要求メッセージを生成する。
鍵更新要求通知工程Ｓ８４２において、更新要求通知部５２３は、ＣＰＵ９１１を用いて、鍵更新要求生成工程Ｓ８４１で更新要求生成部５２２が生成した鍵更新要求メッセージを、鍵管理装置１０に対して通知する。
応答取得工程Ｓ８４３において、応答取得部５３１（更新鍵取得部）は、ＣＰＵ９１１を用いて、鍵更新要求通知工程Ｓ８４２で更新要求通知部５２３が通知した鍵更新要求メッセージに対する応答として鍵管理装置１０が出力した応答メッセージを取得する。取得した応答メッセージが、鍵の更新に成功したことを表わす場合、応答取得部５３１は、ＣＰＵ９１１を用いて、新鍵記憶工程Ｓ８４４へ処理を進める。取得した応答メッセージが、鍵の更新に失敗したことを表わす場合、応答取得部５３１は、ＣＰＵ９１１を用いて、管理パスワード取得工程Ｓ８１１に処理を戻す。
新鍵記憶工程Ｓ８４４において、暗号鍵記憶部５３２（暗号鍵更新部）は、ＲＡＭ９１４を用いて、応答取得工程Ｓ８４３で応答取得部５３１が取得した応答メッセージに含まれる更新後の新しい鍵データを記憶する。なお、次の暗号更新処理Ｓ８５０で更新前の古い鍵データを使うので、暗号鍵記憶部５３２は、更新前の古い鍵データも、まだ保持しておく。
【００９１】
暗号更新処理Ｓ８５０は、例えば、暗号選択工程Ｓ８５１と、復号工程Ｓ８５２と、暗号化工程Ｓ８５３と、暗号記憶工程Ｓ８５４と、旧鍵削除工程Ｓ８５５とを有する。
暗号選択工程Ｓ８５１において、復号部４０２（暗号更新部）は、ＣＰＵ９１１を用いて、暗号記憶部５４２が記憶した暗号化データのなかから、まだ処理していない暗号化データを一つ選択する。暗号記憶部５４２が記憶した暗号化データがすべて処理済であり、選択できる暗号化データがない場合、復号部４０２は、ＣＰＵ９１１を用いて、旧鍵削除工程Ｓ８５５へ処理を進める。暗号記憶部５４２が記憶した暗号化データのなかに、まだ処理していない暗号化データがある場合、復号部４０２は、ＣＰＵ９１１を用いて、まだ処理していない暗号化データのなかから暗号化データを一つ選択し、復号工程Ｓ８５２へ処理を進める。
復号工程Ｓ８５２において、復号部４０２は、ＣＰＵ９１１を用いて、暗号鍵記憶部５３２が記憶している更新前の古い鍵データを使って、暗号選択工程Ｓ８５１で選択した暗号化データを復号し、復元平文データを生成する。
暗号化工程Ｓ８５３において、暗号化部４０１（更新暗号化部）は、ＣＰＵ９１１を用いて、暗号鍵記憶部５３２が記憶している更新後の新しい鍵データを使って、復号工程Ｓ８５２で復号部４０２が生成した復元平文データを暗号化し、更新後の新しい暗号化データを生成する。
暗号記憶工程Ｓ８５４において、暗号記憶部５４２（暗号更新部）は、磁気ディスク装置９２０を用いて、暗号選択工程Ｓ８５１で復号部４０２が選択した更新前の古い暗号化データを、暗号化工程Ｓ８５３で暗号化部４０１が生成した更新後の新しい暗号化データに置き換えて記憶する。暗号記憶部５４２は、ＣＰＵ９１１を用いて、暗号選択工程Ｓ８５１に処理を戻す。
【００９２】
旧鍵削除工程Ｓ８５５において、暗号鍵記憶部５３２は、ＲＡＭ９１４を用いて記憶した更新前の古い鍵データを削除する。暗号鍵記憶部５３２は、ＣＰＵ９１１を用いて、暗号処理Ｓ８２０に処理を戻す。
【００９３】
このように、識別データ及び鍵パスワードが一致しなければ、順記憶部２０１から鍵データを取得したり、順記憶部２０１が記憶した鍵データを更新したりできないことにより、鍵データの秘密性・安全性を担保する。また、証明データからの情報を鍵パスワードに埋め込むことにより、本物の実行装置５０１しか鍵データを取得できない。特に、証明データとして文脈データを使用することにより、実行装置５０１が本物であることの証明が容易にできるとともに、偽造を防ぐことができる。鍵更新時には、証明データではなく、更新前の古い鍵データそのものによって実行装置５０１が本物であることを証明する。順記憶部２０１が記憶した鍵データを更新するために必要な鍵パスワードは、逆記憶部３０１から取得する。識別データ及び逆パスワードが一致しなければ、逆記憶部３０１から鍵パスワードを取得したり、逆記憶部３０１が記憶した鍵パスワードを更新したりできないことにより、鍵パスワードの秘密性・安全性を担保する。逆パスワードは、鍵データに基づいて算出されるので、鍵データがわかれば鍵パスワードを取得でき、鍵データを更新することができる。
【００９４】
なお、鍵更新要求メッセージに鍵データを含めるのではなく、実行装置５０１の側で逆パスワードを算出し、鍵更新要求メッセージに逆パスワードを含める構成としてもよい。その場合、パスワード取得部１３７は、鍵更新要求メッセージに含まれる識別データと一致する識別データに対応づけて逆記憶部３０１が記憶した逆パスワードと、鍵更新要求メッセージに含まれる逆パスワードとが一致するか否かを判定し、一致する場合に、その逆パスワード及び識別データに対応づけて逆記憶部３０１が記憶した鍵パスワードを取得する。
【００９５】
また、鍵管理装置１０は、逆記憶部３０１を有さない構成であってもよい。その場合、パスワード取得部１３７は、ＣＰＵ９１１を用いて、順記憶部２０１が記憶した識別データのなかから、更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる識別データと一致するものを探す。一致する識別データがある場合、パスワード取得部１３７は、ＣＰＵ９１１を用いて、その識別データに対応づけて順記憶部２０１が記憶した鍵データと、更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる鍵データとが、一致するか否かを判定する。鍵データが一致する場合、パスワード取得部１３７は、ＣＰＵ９１１を用いて、その鍵データに対応づけて順記憶部２０１が記憶した鍵パスワードを取得する。
鍵更新要求メッセージに逆パスワードを含める構成の場合は、鍵更新要求メッセージに含まれる識別データと一致する識別データに対応づけて順記憶部２０１が記憶した鍵データに基づいて、逆パスワード算出部１３６が逆パスワードを算出する。パスワード取得部１３７は、逆パスワード算出部１３６が算出した逆パスワードと、鍵更新要求メッセージに含まれる逆パスワードとが一致するか否かを判定し、一致する場合に、その鍵データに対応づけて順記憶部２０１が記憶した鍵パスワードを取得する。
【００９６】
更に、鍵管理装置１０は、パスワード取得部１３７を有さない構成であってもよい。その場合、鍵登録部１３５（鍵更新部）は、ＣＰＵ９１１を用いて、順記憶部２０１が記憶した識別データのなかから、更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる識別データと一致するものを探す。一致する識別データがある場合、鍵登録部１３５は、ＣＰＵ９１１を用いて、その識別データに対応づけて順記憶部２０１が記憶した鍵データと、更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる鍵データとが、一致するか否かを判定する。鍵データが一致する場合、鍵登録部１３５は、ＣＰＵ９１１を用いて、その鍵データを更新する。
鍵更新要求メッセージに逆パスワードを含める構成の場合は、鍵更新要求メッセージに含まれる識別データと一致する識別データに対応づけて順記憶部２０１が記憶した鍵データに基づいて、逆パスワード算出部１３６が逆パスワードを算出する。鍵登録部１３５（鍵更新部）は、逆パスワード算出部１３６が算出した逆パスワードと、鍵更新要求メッセージに含まれる逆パスワードとが一致するか否かを判定し、一致する場合に、その鍵データを更新する。
【００９７】
実施の形態３．
実施の形態３について、図１５〜図１８を用いて説明する。
なお、実施の形態２と共通する部分については、同一の符号を付し、説明を省略する。
【００９８】
図１５は、この実施の形態における暗号処理システム８００の機能ブロックの構成の一例を示すブロック構成図である。
鍵管理装置１０は、実施の形態２で説明した構成に加えて、更に、削除要求入力部１２５を有する。実行装置５０１は、実施の形態２で説明した構成に加えて、更に、削除要求部５５０を有する。
【００９９】
鍵管理装置１０は、鍵を更新しても、更新前の古い鍵データを残しておき、実行装置５０１から鍵の削除を要求されて初めて、鍵データを削除する。削除要求入力部１２５は、ＣＰＵ９１１（処理装置）を用いて、実行装置５０１が通知した鍵削除要求メッセージを入力する。鍵削除要求メッセージは、鍵の削除を要求することを表わす。鍵削除要求メッセージは、削除したい鍵そのものを表わす鍵データと、削除したい鍵の識別データとを含む。
【０１００】
削除要求部５５０は、ＣＰＵ９１１（実行処理装置）を用いて、鍵管理装置１０に対して、鍵削除要求メッセージを通知する。削除要求部５５０は、例えば、削除要求生成部５５２と、削除要求通知部５５３とを有する。
削除要求生成部５５２は、ＣＰＵ９１１（実行処理装置）を用いて、鍵削除要求メッセージを生成する。例えば、削除要求生成部５５２は、暗号処理部５４０が暗号更新処理を完了した場合に、暗号鍵記憶部５３２がまだ記憶している更新前の古い鍵データを含む鍵削除要求メッセージを生成する。
削除要求通知部５５３は、ＣＰＵ９１１（実行処理装置）を用いて、削除要求生成部５５２が生成した鍵削除要求メッセージを、鍵管理装置１０に対して通知する。
【０１０１】
実行装置５０１が暗号更新処理をしている途中でダウンして再起動した場合などにおいて、暗号鍵記憶部５３２がＲＡＭ９１４を用いて記憶した鍵データが消えてしまう。実行装置５０１は、再起動後、鍵取得要求メッセージを鍵管理装置１０に対して通知する。このとき、鍵管理装置１０は、更新後の新しい鍵データだけでなく、更新前の古い鍵データも保持している。鍵管理装置１０は、鍵取得要求メッセージに対する応答として、更新前の古い鍵データと、更新後の新しい鍵データとの２つの鍵データを含む応答メッセージを出力する。実行装置５０１は、更新前の古い鍵データと、更新後の新しい鍵データを取得して、暗号更新処理を続けることができる。
【０１０２】
また、この実施の形態における暗号処理システム８００は、管理パスワードを更新することができる。管理者が管理パスワードを更新しようと考えた場合、管理者は、実行装置５０１の起動時に、キーボード９０２などを操作して、更新前の古い管理パスワードと、更新後の新しいパスワードとの２つの管理パスワードを実行装置５０１に入力する。
取得要求部５１０（パスワード更新要求部）の管理パスワード取得部５１１は、ＣＰＵ９１１（実行処理装置）を用いて、管理者が入力した２つの管理パスワードを取得する。
取得要求生成部５１２（パスワード更新要求生成部）は、ＣＰＵ９１１（実行処理装置）を用いて、管理パスワード取得部５１１が取得した２つの管理パスワードを含む鍵取得要求メッセージを生成する。
取得要求通知部５１３（パスワード更新要求通知部）は、ＣＰＵ９１１（実行処理装置）を用いて、取得要求生成部５１２が生成した２つの管理パスワードを含む鍵取得要求メッセージ（パスワード更新要求メッセージ）を、鍵管理装置１０に対して通知する。
【０１０３】
取得要求入力部１２１（パスワード更新要求入力部）は、ＣＰＵ９１１（処理装置）を用いて、実行装置５０１が通知した鍵取得要求メッセージを入力する。取得要求入力部１２１は、入力した鍵取得要求メッセージが管理パスワードを２つ含む場合、鍵の取得と同時に管理パスワードの更新を要求されたと判定する。
鍵パスワード算出部１３１（旧パスワード算出部、新パスワード算出部）は、ＣＰＵ９１１（処理装置）を用いて、取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる２つの管理パスワードそれぞれに基づいて、鍵パスワードを算出する。すなわち、鍵パスワード算出部１３１は、更新前の古い鍵パスワードと、更新後の新しい鍵パスワードとを算出する。
鍵取得部１３２は、ＣＰＵ９１１（処理装置）を用いて、鍵パスワード算出部１３１（旧パスワード算出部）が算出した更新前の古い鍵パスワードを使って、順記憶部２０１から鍵データを取得する。
鍵生成部１３３は、識別データの不一致により鍵取得部１３２が鍵データの取得に失敗した場合でも、新たな鍵データを生成しない。管理パスワードの更新は、古い鍵データを順記憶部２０１が記憶していることが前提だからである。
鍵登録部１３５（パスワード更新部）は、鍵取得部１３２が鍵データの取得に成功した場合、ＣＰＵ９１１（処理装置）を用いて、鍵取得部１３２が取得した鍵データに対応づけられた鍵パスワードを更新する。例えば、鍵登録部１３５は、順記憶部２０１が記憶した識別データのなかから、取得要求入力部１２１が入力した鍵取得要求データに含まれる識別データと一致するものを探す。一致する識別データがある場合、鍵登録部１３５は、その識別データに対応づけて順記憶部２０１が記憶した鍵パスワードと、鍵パスワード算出部１３１（旧パスワード算出部）が算出した更新前の古い鍵パスワードとが一致するか否かを判定する。鍵パスワードが一致する場合、鍵登録部１３５は、その鍵パスワードに代えて、鍵パスワード算出部１３１（新パスワード算出部）が算出した更新後の新しい鍵パスワードを、順記憶部２０１に記憶させる。順記憶部２０１は、磁気ディスク装置９２０（記憶装置）を用いて、鍵データ及び識別データはそのままにして、鍵パスワードだけを鍵パスワード算出部１３１が算出した更新後の新しい鍵パスワードに置き換えて、その鍵データ及び識別データに対応づけて記憶する。
逆パスワード算出部１３６は、ＣＰＵ９１１（処理装置）を用いて、鍵取得部１３２が取得した鍵データに基づいて、逆パスワードを算出する。
逆記憶部３０１（パスワード更新部）は、ＣＰＵ９１１（処理装置）を用いて、記憶した識別データのなかから、更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる識別データに一致するものを探す。一致する識別データがある場合、逆記憶部３０１は、ＣＰＵ９１１（処理装置）を用いて、その識別データに対応づけて記憶した逆パスワードと、逆パスワード算出部１３６が算出した逆パスワードとが一致するか否かを判定する。逆パスワードが一致する場合、逆記憶部３０１は、磁気ディスク装置９２０（記憶装置）を用いて、その逆パスワード及び識別データに対応づけて記憶した鍵パスワードに代えて、鍵パスワード算出部１３１（新パスワード算出部）が算出した更新後の新しい鍵パスワードを記憶する。逆記憶部３０１は、記憶した逆パスワード及び識別データはそのままにして、鍵パスワードだけを鍵パスワード算出部１３１（新パスワード算出部）が算出した更新後の新しい鍵パスワードに置き換えて、その逆パスワード及び識別データに対応づけて記憶する。
【０１０４】
図１６は、この実施の形態における暗号処理システム８００全体の処理の流れの一例を示すフローチャート図である。
鍵管理装置１０は、実施の形態２で説明した処理に加えて、更に、パスワード更新処理Ｓ７３０と、削除要求入力処理Ｓ７８０と、鍵削除処理Ｓ７９０とを実行する。
【０１０５】
取得要求入力処理Ｓ７１０において、鍵管理装置１０は、鍵取得要求メッセージを入力した場合、入力した鍵取得要求メッセージに含まれる管理パスワードの数に基づいて、管理パスワードの更新が要求されているか否かを判定する。鍵取得要求メッセージに管理パスワードが２つ含まれる場合、鍵管理装置１０は、鍵の取得だけでなく、管理パスワードの更新が要求されていると判定し、パスワード更新処理Ｓ７３０へ処理を進める。鍵取得要求メッセージに管理パスワードが１つしか含まれない場合、鍵管理装置１０は、管理パスワードの更新は要求されず、鍵の取得だけが要求されていると判定し、鍵取得処理Ｓ７２０へ処理を進める。
パスワード更新処理Ｓ７３０において、鍵管理装置１０は、古い管理パスワードによってアクセスできる鍵データに対応づけられた鍵パスワードを更新して、新しい管理パスワードによってアクセスできるようにする。鍵管理装置１０は、更新要求入力処理Ｓ７５０へ処理を進める。
【０１０６】
更新要求入力処理Ｓ７５０において、実行装置５０１から鍵更新要求メッセージが通知されない場合、鍵管理装置１０は、削除要求入力処理Ｓ７８０へ処理を進める。
また、鍵更新処理Ｓ７６０における処理が終わったあとも、鍵管理装置１０は、削除要求入力処理Ｓ７８０へ処理を進める。
【０１０７】
削除要求入力処理Ｓ７８０において、鍵管理装置１０は、実行装置５０１から鍵削除要求メッセージが通知されたか否かを判定する。実行装置５０１から鍵削除要求メッセージが通知された場合、鍵管理装置１０は、通知された鍵削除要求メッセージを入力して、鍵削除処理Ｓ７９０へ処理を進める。実行装置５０１から鍵削除要求メッセージが通知されない場合、鍵管理装置１０は、取得要求入力処理Ｓ７１０に処理を戻す。
鍵削除処理Ｓ７９０において、鍵管理装置１０は、削除要求入力処理Ｓ７８０で入力した鍵削除要求メッセージにしたがって、鍵を削除し、実行装置５０１に対して、応答メッセージを出力する。鍵管理装置１０は、取得要求入力処理Ｓ７１０に処理を戻す。
【０１０８】
取得要求処理Ｓ８１０において、実行装置５０１は、鍵管理装置１０が出力した応答メッセージに含まれる鍵データの数に基づいて、暗号更新処理の途中であるか否かを判定する。応答メッセージに鍵データが２つ含まれる場合、実行装置５０１は、暗号更新処理の途中であると判定し、暗号更新処理Ｓ８５０へ処理を進める。応答メッセージに鍵データが１つしか含まれない場合、実行装置５０１は、暗号更新処理の途中ではないと判定し、通常どおり、暗号処理Ｓ８２０へ処理を進める。
【０１０９】
暗号更新処理Ｓ８５０が終了したのち、実行装置５０１は、削除要求工程Ｓ８６０へ処理を進める。
削除要求工程Ｓ８６０において、実行装置５０１は、鍵管理装置１０に対して、鍵削除要求メッセージを通知する。実行装置５０１は、通知した鍵削除要求メッセージに対する応答として鍵管理装置１０が出力した応答メッセージを取得する。実行装置５０１は、暗号処理Ｓ８２０に処理を戻す。
【０１１０】
図１７は、この実施の形態における鍵管理装置１０の処理の詳細な流れの一例を示すフローチャート図である。
取得要求入力処理Ｓ７１０は、実施の形態２で説明した工程に加えて、更に、パスワード更新判定工程Ｓ７１２を有する。
パスワード更新判定工程Ｓ７１２において、取得要求入力部１２１は、ＣＰＵ９１１を用いて、入力した鍵取得要求メッセージに管理パスワードが２つ含まれているか、１つしか含まれていないかを判定する。鍵取得要求メッセージに管理パスワードが２つ含まれている場合は、管理パスワードの更新要求なので、取得要求入力部１２１は、ＣＰＵ９１１を用いて、パスワード更新処理Ｓ７３０へ処理を進める。鍵取得要求メッセージに管理パスワードが１つしか含まれていない場合は、通常どおり鍵の取得要求なので、取得要求入力部１２１は、ＣＰＵ９１１を用いて、鍵取得処理Ｓ７２０へ処理を進める。
【０１１１】
パスワード更新処理Ｓ７３０は、例えば、旧パスワード算出工程Ｓ７３１と、鍵取得工程Ｓ７３２と、新パスワード算出工程Ｓ７３３と、パスワード更新工程Ｓ７３４と、鍵出力工程Ｓ７３５と、失敗出力工程Ｓ７３６とを有する。
旧パスワード算出工程Ｓ７３１において、鍵パスワード算出部１３１（旧パスワード算出部）は、ＣＰＵ９１１を用いて、取得要求入力工程Ｓ７１１で取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる更新前の古い管理パスワードと証明データとに基づいて、更新前の古い鍵パスワードを算出する。
鍵取得工程Ｓ７３２において、鍵取得部１３２は、ＣＰＵ９１１を用いて、旧パスワード算出工程Ｓ７３１で鍵パスワード算出部１３１が算出した更新前の古い鍵パスワードを使って、順記憶部２０１から鍵データを取得する。鍵データの取得に成功した場合、鍵取得部１３２は、ＣＰＵ９１１を用いて、新パスワード算出工程Ｓ７３３へ処理を進める。識別データの不一致や鍵パスワードの不一致により鍵データの取得に失敗した場合、鍵取得部１３２は、ＣＰＵ９１１を用いて、失敗出力工程Ｓ７３６へ処理を進める。
【０１１２】
新パスワード算出工程Ｓ７３３において、鍵パスワード算出部１３１（新パスワード算出部）は、ＣＰＵ９１１を用いて、取得要求入力工程Ｓ７１１で取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる更新後の新しい管理パスワードと証明データとに基づいて、更新後の新しい鍵パスワードを算出する。
パスワード更新工程Ｓ７３４において、鍵登録部１３５（パスワード更新部）は、ＣＰＵ９１１を用いて、鍵記憶部１１０に登録された鍵パスワードを、新パスワード算出工程Ｓ７３３で鍵パスワード算出部１３１が算出した更新後の新しい鍵パスワードに更新する。順記憶部２０１は、磁気ディスク装置９２０を用いて、対応づけられた識別データが、取得要求入力工程Ｓ７１１で取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる識別データと一致し、かつ、対応づけれられた鍵データが、鍵取得工程Ｓ７３２で鍵取得部１３２が取得した鍵データと一致する鍵パスワードを、新パスワード算出工程Ｓ７３３で鍵パスワード算出部１３１が算出した更新後の新しい鍵パスワードに置き換えて記憶する。逆パスワード算出部１３６は、ＣＰＵ９１１を用いて、鍵取得工程Ｓ７３２で鍵取得部１３２が取得した鍵データに基づいて、逆パスワードを算出する。逆記憶部３０１は、磁気ディスク装置９２０を用いて、対応づけられた識別データが、取得要求入力工程Ｓ７１１で取得要求入力部１２１が入力した鍵取得要求メッセージに含まれる識別データと一致し、かつ、対応づけられた逆パスワードが、逆パスワード算出部１３６が算出した逆パスワードに一致する鍵パスワードを、新パスワード算出工程Ｓ７３３で鍵パスワード算出部１３１が算出した更新後の新しい鍵パスワードに置き換えて記憶する。なお、なんらかのエラーにより鍵パスワードの更新に失敗した場合、鍵登録部１３５は、ＣＰＵ９１１を用いて、失敗出力工程Ｓ７３６へ処理を進める。
【０１１３】
鍵更新処理Ｓ７６０は、実施の形態２で説明した工程のうち、鍵更新工程Ｓ７６４に換えて、新鍵登録工程Ｓ７６７を有する。
新鍵登録工程Ｓ７６７において、鍵登録部１３５は、更新前の古い鍵データを鍵記憶部１１０に残したまま、更新後の新しい鍵データを鍵記憶部１１０に新たに登録する。順記憶部２０１は、磁気ディスク装置９２０を用いて、鍵生成工程Ｓ７６３で鍵生成部１３３（更新鍵生成部）が生成した鍵データと、パスワード取得工程Ｓ７６２でパスワード取得部１３７が取得した鍵パスワードと、更新要求入力工程Ｓ７５１で更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる識別データとを対応づけて新たに記憶する。なお、更新前の古い鍵データと、更新後の新しい鍵データとを区別する必要があるので、順記憶部２０１は、例えば鍵データの生成順を表わすデータを、鍵データに対応づけて更に記憶する。逆パスワード算出部１３６（新逆パスワード算出部）は、ＣＰＵ９１１を用いて、鍵生成工程Ｓ７６３で鍵生成部１３３が生成した更新後の新しい鍵データに基づいて、更新後の新しい逆パスワードを算出する。逆記憶部３０１は、磁気ディスク装置９２０を用いて、パスワード取得工程Ｓ７６２でパスワード取得部１３７が取得した鍵パスワードと、逆パスワード算出部１３６が算出した更新後の新しい逆パスワードと、更新要求入力工程Ｓ７５１で更新要求入力部１２２が入力した鍵更新要求メッセージに含まれる識別データとを対応づけて新たに記憶する。なお、逆記憶部３０１も順記憶部２０１と同様、例えば鍵データの生成順を表わすデータを、鍵パスワードに対応づけて更に記憶する構成であってもよい。
【０１１４】
削除要求入力処理Ｓ７８０は、例えば、削除要求入力工程Ｓ７８１を有する。
削除要求入力工程Ｓ７８１において、削除要求入力部１２５は、実行装置５０１から新たに通知された鍵削除要求メッセージがあれば、ＣＰＵ９１１を用いて、通知された鍵削除要求メッセージを入力し、鍵削除処理Ｓ７９０へ処理を進める。実行装置５０１から通知された鍵削除要求メッセージがない場合、削除要求入力部１２５は、ＣＰＵ９１１を用いて、取得要求入力処理Ｓ７１０に処理を戻す。
【０１１５】
鍵削除処理Ｓ７９０は、例えば、逆パスワード算出工程Ｓ７９１と、パスワード取得工程Ｓ７９２と、鍵削除工程Ｓ７９４と、成功出力工程Ｓ７９５と、失敗出力工程Ｓ７９６とを有する。
逆パスワード算出工程Ｓ７９１において、逆パスワード算出部１３６（削除逆パスワード算出部）は、ＣＰＵ９１１を用いて、削除要求入力工程Ｓ７８１で削除要求入力部１２５が入力した鍵削除要求メッセージに含まれる鍵データに基づいて、逆パスワードを算出する。
パスワード取得工程Ｓ７６２において、パスワード取得部１３７（削除パスワード取得部）は、ＣＰＵ９１１を用いて、逆パスワード算出工程Ｓ７９１で逆パスワード算出部１３６が算出した逆パスワードと、削除要求入力工程Ｓ７８１で削除要求入力部１２５が入力した鍵削除要求メッセージに含まれる識別データとを使って、逆記憶部３０１が記憶した鍵パスワードを取得する。鍵パスワードの取得に成功した場合、パスワード取得部１３７は、ＣＰＵ９１１を用いて、鍵削除工程Ｓ７９４へ処理を進める。識別データの不一致や逆パスワードの不一致により鍵パスワードの取得に失敗した場合、パスワード取得部１３７は、ＣＰＵ９１１を用いて、失敗出力工程Ｓ７９６へ処理を進める。
【０１１６】
鍵削除工程Ｓ７９４において、鍵登録部１３５（鍵削除部）は、ＣＰＵ９１１を用いて、鍵記憶部１１０に登録された鍵データを削除する。順記憶部２０１は、磁気ディスク装置９２０を用いて記憶した鍵データ及び鍵パスワード及び識別データのなかから、対応づけられた識別データが、削除要求入力工程Ｓ７８１で削除要求入力部１２５が入力した鍵削除要求メッセージに含まれる識別データと一致し、かつ、対応づけられた鍵パスワードが、パスワード取得工程Ｓ７９２でパスワード取得部１３７が取得した鍵パスワードと一致する鍵データと、その鍵データに対応づけられた鍵パスワード及び識別データとを削除する。逆記憶部３０１は、磁気ディスク装置９２０を用いて記憶した鍵パスワード及び逆パスワード及び識別データのなかから、対応づけられた識別データが、削除要求入力工程Ｓ７８１で削除要求入力部１２５が入力した鍵削除要求メッセージに含まれる識別データと一致し、かつ、対応づけられた逆パスワードが、逆パスワード算出工程Ｓ７９１で逆パスワード算出部１３６が算出した逆パスワードと一致する鍵パスワードと、その鍵パスワードに対応づけられた逆パスワード及び識別データとを削除する。なお、なんらかのエラーにより鍵データの削除に失敗した場合、鍵登録部１３５は、ＣＰＵ９１１を用いて、失敗出力工程Ｓ７９６へ処理を進める。
【０１１７】
成功出力工程Ｓ７９５において、応答生成部１３４は、ＣＰＵ９１１を用いて、鍵の削除に成功したことを表わす応答メッセージを生成する。応答出力部１２３は、ＣＰＵ９１１を用いて、実行装置５０１に対して、応答生成部１３４が生成した応答メッセージを出力する。応答出力部１２３は、ＣＰＵ９１１を用いて、取得要求入力処理Ｓ７１０に処理を戻す。
【０１１８】
失敗出力工程Ｓ７９６において、応答生成部１３４は、ＣＰＵ９１１を用いて、鍵の削除に失敗したことを表わす応答メッセージを生成する。応答出力部１２３は、ＣＰＵ９１１を用いて、実行装置５０１に対して、応答生成部１３４が生成した応答メッセージを出力する。応答出力部１２３は、ＣＰＵ９１１を用いて、取得要求入力処理Ｓ７１０に処理を戻す。
【０１１９】
なお、鍵更新処理Ｓ７６０において、鍵管理装置１０は、前回の鍵更新処理Ｓ７６０で残しておいた古い鍵データがまだ削除されていない場合は、鍵の更新に失敗する構成であってもよい。
また、鍵削除処理Ｓ７９０において、鍵管理装置１０は、鍵更新処理Ｓ７６０で残しておいた古い鍵データではなく、鍵更新処理Ｓ７６０で新たに生成した新しい鍵データを削除しようとした場合は、鍵の削除に失敗する構成であってもよい。
【０１２０】
図１８は、この実施の形態における実行装置５０１の処理の詳細な流れの一例を示すフローチャート図である。
【０１２１】
管理パスワード取得工程Ｓ８１１において、管理パスワード取得部５１１は、ＣＰＵ９１１を用いて、１つまたは２つの管理パスワードを取得する。
鍵取得要求生成工程Ｓ８１２において、取得要求生成部５１２は、ＣＰＵ９１１を用いて、管理パスワード取得工程Ｓ８１１で管理パスワード取得部５１１が取得した１つまたは２つの管理パスワードを含む鍵取得要求メッセージを生成する。
【０１２２】
鍵記憶工程Ｓ８１５において、暗号鍵記憶部５３２は、ＲＡＭ９１４を用いて、応答取得工程Ｓ８１４で応答取得部５３１が取得した応答メッセージに含まれる鍵データを記憶する。応答メッセージに鍵データが２つ含まれる場合、暗号鍵記憶部５３２は、暗号選択工程Ｓ８５１へ処理を進める。応答メッセージに鍵データが１つしか含まれない場合、暗号鍵記憶部５３２は、暗号処理Ｓ８２０へ処理を進める。
【０１２３】
暗号更新処理Ｓ８５０は、実施の形態２で説明した旧鍵削除工程Ｓ８５５を有さない。
暗号選択工程Ｓ８５１において、暗号記憶部５４２が記憶した暗号化データがすべて処理済である場合、復号部４０２は、ＣＰＵ９１１を用いて、削除要求工程Ｓ８６０へ処理を進める。
【０１２４】
削除要求工程Ｓ８６０は、例えば、鍵削除要求生成工程Ｓ８６１と、鍵削除要求通知工程Ｓ８６２と、応答取得工程Ｓ８６３と、旧鍵削除工程Ｓ８６４とを有する。
鍵削除要求生成工程Ｓ８６１において、削除要求生成部５５２は、ＣＰＵ９１１を用いて、暗号鍵記憶部５３２が記憶している更新前の古い鍵データと、識別データとを含む鍵削除要求メッセージを生成する。
鍵削除要求通知工程Ｓ８６２において、削除要求通知部５５３は、ＣＰＵ９１１を用いて、鍵削除要求生成工程Ｓ８６１で削除要求生成部５５２が生成した鍵削除要求メッセージを、鍵管理装置１０に対して通知する。
応答取得工程Ｓ８６３において、応答取得部５３１は、ＣＰＵ９１１を用いて、鍵削除要求通知工程Ｓ８６２で削除要求生成部５５２が通知した鍵削除要求メッセージに対する応答として鍵管理装置１０が出力した応答メッセージを取得する。
旧鍵削除工程Ｓ８５５において、暗号鍵記憶部５３２は、ＲＡＭ９１４を用いて記憶した更新前の古い鍵データを削除する。暗号鍵記憶部５３２は、ＣＰＵ９１１を用いて、暗号処理Ｓ８２０に処理を戻す。
【０１２５】
以上、各実施の形態で説明した構成は一例であり、これに限るものではない。例えば、異なる実施の形態で説明した構成を組み合わせた構成としてもよいし、重要でない部分の構成を他の構成で置き換えた構成としてもよい。
【０１２６】
以上説明した鍵管理装置（１０）は、データを記憶する記憶装置（磁気ディスク装置９２０）と、データを処理する処理装置（ＣＰＵ９１１）と、鍵記憶部（１１０；キーストア装置２００、パスワードストア装置３００）と、取得要求入力部（１２１；鍵・パスワード生成管理装置１００）と、鍵パスワード算出部（１３１；鍵・パスワード生成管理装置１００）と、鍵取得部（１３２；キーストア装置２００）と、新規鍵生成部（鍵生成部１３３；鍵・パスワード生成管理装置１００）と、鍵登録部（１３５；キーストア装置２００、パスワードストア装置３００）と、鍵出力部（応答出力部１２３；鍵・パスワード生成管理装置１００）と、更新要求入力部（１２２；鍵・パスワード生成管理装置１００）と、更新鍵生成部（鍵生成部１３３；鍵・パスワード生成管理装置１００）と、鍵更新部（鍵登録部１３５；キーストア装置２００、パスワードストア装置３００）と、更新鍵出力部（応答出力部１２３；鍵・パスワード生成管理装置１００）とを有する。
上記鍵記憶部は、上記記憶装置を用いて、暗号処理に使用する鍵と上記鍵にアクセスするための鍵パスワードとを記憶する。
上記取得要求入力部は、上記処理装置を用いて、取得すべき鍵の管理に使用する管理パスワードを入力する。
上記鍵パスワード算出部は、上記処理装置を用いて、上記取得要求入力部が入力した管理パスワードに基づいて、鍵パスワードを算出する。
上記鍵取得部は、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致する場合に、上記処理装置を用いて、上記鍵記憶部が記憶した鍵を取得する。
上記新規鍵生成部は、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致しない場合に、上記処理装置を用いて、鍵を生成する。
上記鍵登録部は、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致しない場合に、上記処理装置を用いて、上記新規鍵生成部が生成した鍵と、上記鍵パスワード算出部が算出した鍵パスワードとを上記鍵記憶部に記憶させる。
上記鍵出力部は、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致する場合に、上記処理装置を用いて、上記鍵取得部が取得した鍵を出力し、上記鍵パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致しない場合に、上記処理装置を用いて、上記新規鍵生成部が生成した鍵を出力する。
上記更新要求入力部は、上記処理装置を用いて、更新すべき鍵を入力する。
上記更新鍵生成部は、上記更新要求入力部が入力した鍵が、上記鍵記憶部が記憶した鍵と一致する場合に、上記処理装置を用いて、鍵を生成する。
上記鍵更新部は、上記更新要求入力部が入力した鍵が、上記鍵記憶部が記憶した鍵と一致する場合に、上記処理装置を用いて、上記鍵記憶部が記憶した鍵に代えて、上記更新鍵生成部が生成した鍵を上記鍵記憶部に記憶させる。
上記更新鍵出力部は、上記更新要求入力部が入力した鍵が、上記鍵記憶部が記憶した鍵と一致する場合に、上記処理装置を用いて、上記更新鍵生成部が生成した鍵を出力する。
【０１２７】
鍵の取得には、管理パスワードから算出した鍵パスワードが必要なので、鍵の漏洩を防ぐことができる。また、鍵の更新には、更新前の鍵があればよいので、容易に鍵を更新することができる。
【０１２８】
上記鍵パスワード算出部は、上記処理装置を用いて、上記取得要求入力部が上記管理パスワードを入力した文脈を取得し、上記取得要求入力部が入力した管理パスワードと取得した文脈とに基づいて、鍵パスワードを算出する。
【０１２９】
管理パスワードと文脈とに基づいて鍵パスワードを算出するので、管理パスワードを知っていても、異なる文脈では、鍵を取得できず、鍵の漏洩を防ぐことができる。
【０１３０】
上記鍵パスワード算出部は、上記処理装置を用いて、上記管理パスワードを表わすデータと上記文脈を表わすデータとを結合し、結合したデータを一方向性関数により変換することにより、鍵パスワードを算出する。
【０１３１】
管理パスワードと文脈とを係合して一方向性関数により変換するので、管理パスワード及び文脈のいずれかを知っていても、鍵パスワードを算出することができない。
【０１３２】
上記鍵管理装置は、更に、逆パスワード算出部（１３６；鍵・パスワード生成管理装置１００）と、旧逆パスワード算出部（逆パスワード算出部１３６；鍵・パスワード生成管理装置１００）と、新逆パスワード算出部（逆パスワード算出部１３６；鍵・パスワード生成管理装置１００）と、パスワード取得部（１３７；パスワードストア装置３００）とを有する。
上記鍵記憶部は、順記憶部（２０１；キーストア装置２００）と、逆記憶部（３０１；パスワードストア装置３００）とを有する。
上記逆パスワード算出部は、上記処理装置を用いて、上記新規鍵生成部が生成した鍵に基づいて、上記鍵パスワードにアクセスするための逆パスワードを算出する。
上記順記憶部は、上記記憶装置を用いて、上記新規鍵生成部が生成した鍵と、上記鍵パスワード算出部が算出した鍵パスワードとを記憶する。
上記逆記憶部は、上記記憶装置を用いて、上記鍵パスワード算出部が算出した鍵パスワードと上記逆パスワード算出部が算出した逆パスワードとを記憶する。
上記鍵取得部は、上記処理装置を用いて、入力した鍵パスワードと上記順記憶部が記憶した鍵パスワードとが一致する場合に、上記順記憶部が記憶した鍵を出力する。
上記旧逆パスワード算出部は、上記処理装置を用いて、上記更新要求入力部が入力した鍵に基づいて、逆パスワードを算出する。
上記パスワード取得部は、上記旧逆パスワード算出部が算出した逆パスワードが、上記逆記憶部が記憶した逆パスワードと一致する場合に、上記処理装置を用いて、上記逆記憶部が記憶した鍵パスワードを取得する。
上記更新鍵生成部は、上記旧逆パスワード算出部が算出した逆パスワードが、上記逆記憶部が記憶した逆パスワードと一致する場合に、上記処理装置を用いて、鍵を生成する。
上記新逆パスワード算出部は、上記旧逆パスワード算出部が算出した逆パスワードが、上記逆記憶部が記憶した逆パスワードと一致する場合に、上記処理装置を用いて、上記更新鍵生成部が生成した鍵に基づいて、逆パスワードを算出する。
上記鍵更新部は、上記処理装置を用いて、上記パスワード取得部が取得した鍵パスワードが、上記順記憶部が記憶した鍵パスワードと一致する場合に、上記順記憶部が記憶した鍵に代えて、上記更新鍵生成部が生成した鍵を上記順記憶部に記憶させ、上記逆記憶部が記憶した逆パスワードに代えて、上記新逆パスワード算出部が算出した逆パスワードを上記逆記憶部に記憶させる。
【０１３３】
順記憶部が記憶した鍵にアクセスするには、鍵パスワードが必要になる。また、逆記憶部が記憶した鍵パスワードにアクセスするには、鍵から算出した逆パスワードが必要になる。これにより、鍵と鍵パスワードといずれかを知っていれば、他方も知ることができるので、容易に鍵を更新することができる。
【０１３４】
上記逆パスワード算出部及び上記旧逆パスワード算出部及び上記新逆パスワード算出部は、上記処理装置を用いて、上記鍵を一方向性関数により変換することにより、上記逆パスワードを生成する。
【０１３５】
鍵を一方向性関数により変換して逆パスワードを生成するので、逆パスワードから鍵を生成することはできない。
【０１３６】
上記鍵管理装置は、更に、パスワード更新要求入力部（取得要求入力部１２１）と、旧パスワード算出部（鍵パスワード算出部１３１）と、新パスワード算出部（鍵パスワード算出部１３１）と、パスワード更新部（鍵登録部１３５）とを有する。
上記パスワード更新要求入力部は、更新すべき古い管理パスワードと更新後の新たな管理パスワードとを入力する。
上記旧パスワード算出部は、上記処理装置を用いて、上記パスワード更新要求入力部が入力した古い管理パスワードに基づいて、鍵パスワードを算出する。
上記新パスワード算出部は、上記処理装置を用いて、上記パスワード更新要求入力部が入力した新たな管理パスワードに基づいて、鍵パスワードを算出する。
上記パスワード更新部は、上記旧パスワード算出部が算出した鍵パスワードが、上記鍵記憶部が記憶した鍵パスワードと一致する場合に、上記処理装置を用いて、上記鍵記憶部が記憶した鍵パスワードに代えて、上記新パスワード算出部が算出した鍵パスワードを上記鍵記憶部に記憶させる。
【０１３７】
管理パスワードを更新できるので、鍵の漏洩を防ぐことができる。
【０１３８】
以上説明した暗号処理システム（８００）は、上記鍵管理装置（１０）と、実行装置（５０１；業務アプリケーション装置５００）とを有する。
上記実行装置は、データを記憶する実行記憶装置（ＲＡＭ９１４、磁気ディスク装置９２０）と、データを処理する実行処理装置（ＣＰＵ９１１）と、取得要求部（５１０）と、暗号鍵記憶部（５３２）と、暗号処理部（５４０；暗号／復号化装置４００）と、暗号鍵更新部（暗号鍵記憶部５３２）とを有する。
上記取得要求部は、上記実行処理装置を用いて、管理パスワードを取得する。
上記取得要求入力部は、上記処理装置を用いて、上記取得要求部が取得した管理パスワードを入力する。
上記暗号鍵記憶部は、上記実行記憶装置を用いて、上記鍵出力部が出力した鍵を記憶する。
上記暗号処理部は、上記実行処理装置を用いて、上記暗号鍵記憶部が記憶した鍵を使って、暗号処理を実行する。
上記更新要求入力部は、上記処理装置を用いて、上記暗号鍵記憶部が記憶した鍵を入力する。
上記暗号鍵更新部は、上記実行処理装置を用いて、上記更新鍵出力部が出力した鍵を上記暗号鍵記憶部に記憶させる。
【０１３９】
鍵管理装置が管理する鍵を使って暗号処理をするので、情報の漏洩を防ぐことができる。
【０１４０】
上記実行記憶装置は、揮発性の揮発性記憶装置（ＲＡＭ９１４）と、不揮発性の不揮発性記憶装置（磁気ディスク装置９２０）とを有する。
上記暗号処理部は、暗号化部（４０１）と、暗号記憶部（５４２）と、復号部（４０２）と、更新暗号化部（暗号化部４０１）と、暗号更新部（暗号記憶部５４２）とを有する。
上記暗号鍵記憶部は、上記揮発性記憶装置を用いて、上記鍵出力部及び上記更新鍵出力部が出力した鍵を記憶する。
上記暗号化部は、上記実行処理装置を用いて、上記暗号鍵記憶部が記憶した鍵を使って、平文データを暗号化して暗号化データを生成する。
上記暗号記憶部は、上記不揮発性記憶装置を用いて、上記暗号化部が生成した暗号化データを記憶する。
上記復号部は、上記実行処理装置を用いて、上記暗号鍵記憶部が記憶した鍵を使って、上記暗号記憶部が記憶した暗号化データを復号して復元平文データを生成する。
上記更新暗号化部は、上記実行処理装置を用いて、上記更新鍵出力部が出力した鍵を使って、上記復号部が生成した復元平文データを暗号化して更新暗号化データを生成する。
上記暗号更新部は、上記実行処理装置を用いて、上記暗号記憶部が記憶した暗号化データに代えて、上記更新暗号化部が生成した更新暗号化データを上記暗号記憶部に記憶させる。
【０１４１】
鍵の更新に伴って、暗号化データを更新するので、情報の漏洩を防ぐことができる。
【０１４２】
以上説明した鍵管理装置１０は、コンピュータを鍵管理装置１０として機能させるプログラムをコンピュータが実行することにより実現することができる。
【符号の説明】
【０１４３】
１０  鍵管理装置、１００  鍵・パスワード生成管理装置、１１０  鍵記憶部、１２１  取得要求入力部、１２２  更新要求入力部、１２３  応答出力部、１２５  削除要求入力部、１３１  鍵パスワード算出部、１３２  鍵取得部、１３３  鍵生成部、１３４  応答生成部、１３５  鍵登録部、１３６  逆パスワード算出部、１３７  パスワード取得部、２００  キーストア装置、２０１  順記憶部、３００  パスワードストア装置、３０１  逆記憶部、４００  暗号／復号化装置、４０１  暗号化部、４０２  復号部、５００  業務アプリケーション装置、５０１  実行装置、５１０  取得要求部、５１１  管理パスワード取得部、５１２  取得要求生成部、５１３  取得要求通知部、５２０  更新要求部、５２１  更新判定部、５２２  更新要求生成部、５２３  更新要求通知部、５３１  応答取得部、５３２  暗号鍵記憶部、５４０  暗号処理部、５４１  平文入力部、５４２  暗号記憶部、５４３  平文出力部、５５０  削除要求部、５５２  削除要求生成部、５５３  削除要求通知部、６００  クライアントアプリケーション装置、７０１  パスワード、７０２  呼び出し情報、７０３  連結データ、７０４，７０７  ハッシュ値、７０５  キーストアパスワード、７０６  鍵、７０８  パスワードストアパスワード、８００  暗号処理システム、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ装置、９０７  スキャナ装置、９１０  システムユニット、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信装置、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群、９３１  電話器、９３２  ファクシミリ機、９４０  インターネット、９４１  ゲートウェイ、９４２  ＬＡＮ。
【図１】
2012175187.tif 000003
【図２】
2012175187.tif 000004
【図３】
2012175187.tif 000005
【図４】
2012175187.tif 000006
【図５】
2012175187.tif 000007
【図６】
2012175187.tif 000008
【図７】
2012175187.tif 000009
【図８】
2012175187.tif 000010
【図９】
2012175187.tif 000011
【図１０】
2012175187.tif 000012
【図１１】
2012175187.tif 000013
【図１２】
2012175187.tif 000014
【図１３】
2012175187.tif 000015
【図１４】
2012175187.tif 000016
【図１５】
2012175187.tif 000017
【図１６】
2012175187.tif 000018
【図１７】
2012175187.tif 000019
【図１８】
2012175187.tif 000020