(57)【要約】      （修正有）【課題】鍵生成を柔軟に行うことができ、かつ、鍵生成にかかる処理時間を短縮できる鍵生成制御装置及び鍵生成格納システムを提供する。【解決手段】鍵生成制御サーバ１は、鍵ＤＢ３に予めストックしておく鍵に関する鍵情報に基づいて、鍵の生成を指示する鍵生成指示部１１と、鍵生成指示部１１の指示により生成された鍵を取得して、鍵ＤＢ３に格納する鍵格納部１２と、データ処理サーバから鍵の出力要求を受信した場合に、出力要求に対応する鍵を、出力要求に応じて鍵ＤＢ３から取得し、及び出力要求に対応する鍵の生成を指示することで取得する鍵取得部１４と、を備える。【選択図】図２
2015061267.tif 000002
【特許請求の範囲】
【請求項１】
鍵記憶部に予めストックしておく鍵に関する鍵情報に基づいて、前記鍵の生成を指示する鍵生成指示部と、
前記鍵生成指示部の指示により生成された前記鍵を取得して、前記鍵記憶部に格納する鍵格納部と、
外部から鍵の出力要求を受信した場合に、前記出力要求に対応する鍵を、前記出力要求に応じて前記鍵記憶部から取得し、及び前記出力要求に対応する鍵の生成を指示することで取得する鍵取得部と、
を備えること、
を特徴とする鍵生成制御装置。
【請求項２】
請求項１に記載の鍵生成制御装置において、
前記鍵情報は、複数の種別の各鍵に対応したものであり、
前記鍵取得部は、
前記鍵情報を参照して、前記出力要求に対応する鍵が、前記鍵記憶部に記憶されているべきか否かを判定する鍵判定部と、
前記鍵判定部により前記鍵記憶部に記憶されているべきであると判定されたことに応じて、前記鍵記憶部から前記鍵を取得する生成済鍵取得部と、
前記鍵判定部により前記鍵記憶部に記憶されているべきではないと判定されたことに応じて、前記出力要求に対応する鍵の生成を指示することで、生成された前記鍵を取得する逐次鍵取得部と、
を有すること、
を特徴とする鍵生成制御装置。
【請求項３】
請求項２に記載の鍵生成制御装置において、
前記生成済鍵取得部は、前記鍵記憶部に前記鍵のストックがない場合には、前記出力要求に対応する鍵の生成を指示することで、生成された前記鍵を取得すること、
を特徴とする鍵生成制御装置。
【請求項４】
請求項２又は請求項３に記載の鍵生成制御装置において、
前記出力要求は、外部からの通信を識別する通信識別情報を有し、
前記出力要求に対する応答データであって、前記鍵を含む前記応答データを、前記外部に送信する応答データ送信部を備え、
前記応答データ送信部は、前記生成済鍵取得部により前記鍵記憶部から前記鍵を取得した場合には、前記出力要求に対する応答になるように通信識別情報を付け直した前記応答データを、前記外部に送信すること、
を特徴とする鍵生成制御装置。
【請求項５】
請求項１から請求項４までのいずれかに記載の鍵生成制御装置において、
前記鍵取得部は、前記鍵情報を有しない鍵の生成状況を、生成状況記憶部に記憶し、
前記生成状況記憶部に記憶された前記生成状況が所定の条件を満たすことに応じて、その鍵の種別に対応した鍵情報を新たに追加する鍵情報追加部を備えること、
を特徴とする鍵生成制御装置。
【請求項６】
請求項５に記載の鍵生成制御装置において、
前記生成状況記憶部に記憶する前記生成状況は、前記出力要求及び前記出力要求に対応する鍵の生成結果情報と、前記鍵の生成の指示からその鍵を取得するまでの鍵生成時間とに関するものであること、
を特徴とする鍵生成制御装置。
【請求項７】
請求項１から請求項６までのいずれかに記載の鍵生成制御装置において、
前記鍵生成指示部による前記鍵の生成の指示からその鍵を取得するまでの鍵生成時間に基づいてストックする前記鍵の保管数を算出し、前記鍵の種別に対応した前記鍵情報に算出した前記保管数を記憶させる鍵情報更新部を備えること、
を特徴とする鍵生成制御装置。
【請求項８】
請求項１から請求項７までのいずれかに記載の鍵生成制御装置において、
前記鍵生成指示部は、前記出力要求に対する処理状況に応じて、前記鍵の生成を指示する度合いを調整して、前記鍵の生成を指示すること、
を特徴とする鍵生成制御装置。
【請求項９】
請求項１から請求項８までのいずれかに記載の鍵生成制御装置において、
前記鍵の生成指示を、ＨＳＭ（Ｈａｒｄｗａｒｅ  Ｓｅｃｕｒｉｔｙ  Ｍｏｄｕｌｅ）に対して行うことで、ＨＳＭが生成した前記鍵を取得すること、
を特徴とする鍵生成制御装置。
【請求項１０】
請求項１から請求項９までのいずれかに記載の鍵生成制御装置と、
前記鍵の出力要求を抽出し、前記鍵生成制御装置に対して前記鍵の出力要求を送信する出力要求送信装置と、
前記鍵生成制御装置から前記鍵を含む応答データを受信して、前記鍵を、ユーザが携行可能な装置のセキュアな記憶領域に格納させる応答データ処理装置と、
を備える鍵生成格納システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵生成制御装置及び鍵生成格納システムに関する。
【背景技術】
【０００２】
ＩＣカードのカード発行において、ＩＣカードに書き込むための鍵が必要である。その鍵を生成する作業は、カード発行データを作成する際に行われるものであった（例えば、特許文献１）。
また、鍵の生成作業は、鍵長（暗号の計算に用いる暗号鍵のデータ量）に応じて時間がかかるものであるため、処理時間を短縮するための鍵生成に関する技術が開示されている（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３８４１９号公報
【特許文献２】特開２０１３−５１６１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、特許文献１に記載のようなシステムにおいて、ＩＣチップ等のセキュアな記憶媒体に書き込む鍵は、カード発行データを生成する過程で様々な種別の鍵が必要になる。しかも、鍵の生成要求は、逐次行われるものであり、処理時間を短縮するためには、鍵生成に時間を要する様々な種別の鍵を、多く保存する必要がある。しかし、特許文献２に記載のものは、鍵をその装置の通信で使用するものであったので、使用する鍵の種別が限定されるものであり、また、その装置の電源投入時に存在しない鍵を種別ごとに１つ作成すれば十分なものであった。
【０００５】
そこで、本発明は、鍵の生成を柔軟に行うことができ、かつ、鍵生成にかかる処理時間を短縮できる鍵生成制御装置及び鍵生成格納システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、以下のような解決手段により、前記課題を解決する。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。また、符号を付して説明した構成は、適宜改良してもよく、また、少なくとも一部を他の構成物に代替してもよい。
【０００７】
第１の発明は、鍵記憶部（３）に予めストックしておく鍵に関する鍵情報に基づいて、前記鍵の生成を指示する鍵生成指示部（１１）と、前記鍵生成指示部の指示により生成された前記鍵を取得して、前記鍵記憶部に格納する鍵格納部（１２）と、外部（６）から鍵の出力要求を受信した場合に、前記出力要求に対応する鍵を、前記出力要求に応じて前記鍵記憶部から取得し、及び前記出力要求に対応する鍵の生成を指示することで取得する鍵取得部（１４）と、を備えること、を特徴とする鍵生成制御装置（１）である。
第２の発明は、第１の発明の鍵生成制御装置（１）において、前記鍵情報は、複数の種別の各鍵に対応したものであり、前記鍵取得部（１４）は、前記鍵情報を参照して、前記出力要求に対応する鍵が、前記鍵記憶部に記憶されているべきか否かを判定する鍵判定部（１４ａ）と、前記鍵判定部により前記鍵記憶部（３）に記憶されているべきであると判定されたことに応じて、前記鍵記憶部から前記鍵を取得する生成済鍵取得部（１４ｂ）と、前記鍵判定部により前記鍵記憶部に記憶されているべきではないと判定されたことに応じて、前記出力要求に対応する鍵の生成を指示することで、生成された前記鍵を取得する逐次鍵取得部（１４ｃ）と、を有すること、を特徴とする鍵生成制御装置である。
第３の発明は、第２の発明の鍵生成制御装置（１）において、前記生成済鍵取得部（１４ｂ）は、前記鍵記憶部（３）に前記鍵のストックがない場合には、前記出力要求に対応する鍵の生成を指示することで、生成された前記鍵を取得すること、を特徴とする鍵生成制御装置である。
第４の発明は、第２の発明又は第３の発明鍵生成制御装置（１）において、前記出力要求は、外部（６）からの通信を識別する通信識別情報を有し、前記出力要求に対する応答データであって、前記鍵を含む前記応答データを、前記外部に送信する応答データ送信部（１６）を備え、前記応答データ送信部は、前記生成済鍵取得部（１４ｂ）により前記鍵記憶部（３）から前記鍵を取得した場合には、前記出力要求に対する応答になるように通信識別情報を付け直した前記応答データを、前記外部に送信すること、を特徴とする鍵生成制御装置のである。
第５の発明は、第１の発明から第４の発明までのいずれかの鍵生成制御装置（１）において、前記鍵取得部（１４）は、前記鍵情報を有しない鍵の生成状況を、生成状況記憶部（２２）に記憶し、前記生成状況記憶部に記憶された前記生成状況が所定の条件を満たすことに応じて、その鍵の種別に対応した鍵情報を新たに追加する鍵情報追加部（１８ａ）を備えること、を特徴とする鍵生成制御装置である。
第６の発明は、第５の発明の鍵生成制御装置（１）において、前記生成状況記憶部（２２）に記憶する前記生成状況は、前記出力要求及び前記出力要求に対応する鍵の生成結果情報と、前記鍵の生成の指示からその鍵を取得するまでの鍵生成時間とに関するものであること、を特徴とする鍵生成制御装置である。
第７の発明は、第１の発明から第６の発明までのいずれかの鍵生成制御装置（１）において、前記鍵生成指示部（１１）による前記鍵の生成の指示からその鍵を取得するまでの鍵生成時間に基づいてストックする前記鍵の保管数を算出し、前記鍵の種別に対応した前記鍵情報に算出した前記保管数を記憶させる鍵情報更新部（１８ｂ）を備えること、を特徴とする鍵生成制御装置である。
第８の発明は、第１の発明から第７の発明までのいずれかの鍵生成制御装置（１）において、前記鍵生成指示部（１１）は、前記出力要求に対する処理状況に応じて、前記鍵の生成を指示する度合いを調整して、前記鍵の生成を指示すること、を特徴とする鍵生成制御装置である。
第９の発明は、第１の発明から第８の発明までのいずれかの鍵生成制御装置（１）において、前記鍵の生成指示を、ＨＳＭ（Ｈａｒｄｗａｒｅ  Ｓｅｃｕｒｉｔｙ  Ｍｏｄｕｌｅ）（４）に対して行うことで、ＨＳＭが生成した前記鍵を取得すること、を特徴とする鍵生成制御装置である。
【０００８】
第１０の発明は、第１の発明から第９の発明までのいずれかの鍵生成制御装置（１）と、前記鍵の出力要求を抽出し、前記鍵生成制御装置に対して前記鍵の出力要求を送信する出力要求送信装置（６）と、前記鍵生成制御装置から前記鍵を含む応答データを受信して、前記鍵を、ユーザが携行可能な装置（９）のセキュアな記憶領域に格納させる応答データ処理装置（６，８）と、を備える鍵生成格納システム（１００）である。
【発明の効果】
【０００９】
本発明によれば、鍵生成を柔軟に行うことができ、かつ、鍵生成にかかる処理時間を短縮できる鍵生成制御装置及び鍵生成格納システムを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係るＩＣカード発行システムの全体構成を示す図である。
【図２】本実施形態に係る鍵生成制御サーバ及び鍵ＤＢの機能ブロックを示す図である。
【図３】本実施形態に係る鍵情報テーブル及び鍵テーブルの例を示す図である。
【図４】本実施形態に係る鍵生成制御サーバのストック処理を示すフローチャートである。
【図５】本実施形態に係るＩＣカードデータ処理の流れを示す図である。
【図６】本実施形態に係る出力要求及び応答データの説明のための図及び生成状況記憶部の例を示す図である。
【図７】本実施形態に係る鍵生成制御サーバの出力要求処理を示すフローチャートである。
【図８】本実施形態に係る鍵生成制御サーバの鍵情報メンテナンス処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について、図を参照しながら説明する。なお、これは、あくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
（実施形態）
図１は、本実施形態に係るＩＣカード発行システム１００の全体構成を示す図である。
ＩＣカード発行システム１００（鍵生成格納システム）は、券面に氏名等を印字しておらず、ＩＣチップ９ａにデータが入っていない空のＩＣカード９を、例えば、クレジットカードやキャッシュカードの機能を有するものにするために、発行処理を行うシステムである。
ＩＣカード発行システム１００は、データ生成サーバ５、データ処理サーバ６（出力要求送信装置、応答データ処理装置）、鍵生成システム７、ＩＣカード発行機８（応答データ処理装置）等を備える。
【００１２】
データ生成サーバ５は、入力ファイルを生成するサーバである。入力ファイルは、出力ファイルに含まれるカード発行データの元データであり、１枚のＩＣカード９に関するデータを１レコードとしたレコードの集合体である。カード発行データとは、空のＩＣカード９を、クレジットカードやキャッシュカードの機能を有するものにするためのデータをいう。カード発行データは、空のＩＣカード９の媒体（カード券面、ＩＣチップ９ａ）に発行処理を行う際に用いる。データ生成サーバ５は、生成した入力ファイルを、データ処理サーバ６に送信する。
データ処理サーバ６は、入力ファイルを解釈するプログラムを有する。そして、データ処理サーバ６は、データ生成サーバ５から受信した入力ファイルを１レコードずつ処理して、コマンドを生成する。生成したコマンドに、鍵の出力要求がある場合には、データ処理サーバ６は、出力要求を、鍵生成システム７に送信する。そして、データ処理サーバ６は、生成された鍵を含む応答データを、鍵生成システム７から受信し、その鍵を含む出力ファイルを作成する。なお、鍵の出力要求とは、鍵が必要である旨を表すタグをいう。また、出力ファイルは、１枚のＩＣカード９に関するカード発行データを１レコードとしたレコードの集合体である。
【００１３】
鍵生成システム７は、鍵を生成し、データ処理サーバ６からの出力要求に応じた鍵を出力する。ここで、鍵とは、公開鍵暗号方式のＲＳＡ（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）を使用した暗号鍵をいう。鍵生成システム７は、高いセキュリティを維持する領域に構築され、外部からのアクセスを、データ処理サーバ６だけ許容するように制限している。鍵生成システム７は、鍵生成制御サーバ１（鍵生成制御装置）と、鍵ＤＢ（データベース）３と、ＨＳＭ（Ｈａｒｄｗａｒｅ  Ｓｅｃｕｒｉｔｙ  Ｍｏｄｕｌｅ）４とを備える。
鍵生成制御サーバ１は、鍵の生成に関する制御を行う。
鍵ＤＢ３は、ＨＳＭ４によって予め生成した鍵をストックするデータベースである。また、鍵ＤＢ３は、ストックする鍵の種別を記憶する。
ＨＳＭ４は、暗号鍵等の秘密鍵の生成及び管理をするハードウェアである。ＨＳＭ４は、耐タンパ性を備えるので、セキュリティレベルが高い。
【００１４】
ＩＣカード発行機８は、データ処理サーバ６から受信した出力ファイル中のカード発行データを使用して、空のＩＣカード９に対して発行処理をすることで、クレジットカードやキャッシュカードの機能を有するＩＣカード９を発行する。
ＩＣカード発行機８は、カード発行データのうち、ＩＣカード９の券面に印字するデータを用いて、空のＩＣカード９の券面にクレジットカード番号や氏名等を印字する。また、ＩＣカード９は、ＩＣチップ９ａを備えており、ＩＣカード発行機８は、カード発行データのうちＩＣチップ９ａに書き込むデータを用いて、空のＩＣカード９のＩＣチップ９ａに鍵を含む各種データを書き込む。
本実施形態では、データ生成サーバ５、データ処理サーバ６、鍵生成システム７、ＩＣカード発行機８は、カード製造会社の工場に設置されており、ＩＣカード発行機８は、出力ファイルに基づき大量（複数枚）の空のＩＣカード９に対して発行処理をするものとして説明する。
【００１５】
次に、鍵生成システム７について詳細に説明する。
図２は、本実施形態に係る鍵生成制御サーバ１及び鍵ＤＢ３の機能ブロックを示す図である。
図３は、本実施形態に係る鍵情報テーブル３２及び鍵テーブル３１の例を示す図である。
鍵生成制御サーバ１は、制御部１０、記憶部２０、通信Ｉ／Ｆ（インタフェース）部２９等を備える。
【００１６】
制御部１０は、鍵生成制御サーバ１の全体を制御するＣＰＵ（中央処理装置）である。制御部１０は、記憶部２０に記憶されているオペレーティングシステム（ＯＳ）や各種アプリケーションプログラムを適宜読み出して実行することにより、上述したハードウェアと協働し各種機能を実行する。
制御部１０は、鍵生成指示部１１、鍵格納部１２、鍵取得部１４、応答データ送信部１６、鍵情報処理部１８等を備える。
鍵生成指示部１１は、予め鍵ＤＢ３にストックする鍵の生成を、ＨＳＭ４に対して指示する。
鍵格納部１２は、鍵生成指示部１１の指示によりＨＳＭ４が生成した鍵を、鍵ＤＢ３に格納する。
鍵取得部１４は、データ処理サーバ６から受信した鍵の出力要求に応じて、鍵を取得する。
【００１７】
鍵取得部１４は、鍵判定部１４ａ、生成済鍵取得部１４ｂ、逐次鍵取得部１４ｃ等を備える。
鍵判定部１４ａは、鍵情報を参照して、出力要求に対応する鍵が、鍵ＤＢ３の鍵テーブル３１に記憶されているべきか否かを判定する。
鍵情報は、鍵に関する様々な情報であり、図３（Ａ）に示す鍵ＤＢ３の鍵情報テーブル３２に記憶されている各レコードである。鍵情報は、例えば、鍵の出力要求のタグに含まれるコマンド、鍵の種別、鍵の有効日数、生成性能、最大保管数（鍵の保管数）、現保管数等の各項目を有する。なお、鍵情報テーブル３２の各レコードは、鍵生成システム７の管理者により入力することもできる（図３（Ａ）のコマンドが「７Ｅ４３」、「８Ｄ２１」のレコード）が、後述するように、自動で作成することもできる（図３（Ａ）のコマンドが「７Ｅ４４」、「８Ｄ２２」、「８Ｄ２３」のレコード）。鍵の種別及び鍵有効日数は、管理者が入力する項目である。
【００１８】
図２に戻り、鍵判定部１４ａは、出力要求の所定位置の文字列（後述する）が、鍵情報のコマンドに一致するか否かにより、出力要求に対応する鍵が、鍵ＤＢ３に記憶されているべきか否かを判定する。
例えば、出力要求の所定位置の文字列が「７Ｅ４３」である場合には、鍵情報テーブル３２のコマンド「７Ｅ４３」に一致する（図３（Ａ）（＃１））。よって、鍵判定部１４ａは、鍵ＤＢ３に記憶されているべきであると判定する。
【００１９】
生成済鍵取得部１４ｂは、鍵判定部１４ａにより鍵ＤＢ３に記憶されているべきであると判定されたことに応じて、鍵ＤＢ３から鍵を取得する。なお、生成済鍵取得部１４ｂは、鍵ＤＢ３に記憶されているべき鍵が鍵ＤＢ３にない場合、つまり、その鍵が本来鍵ＤＢ３のストック対象にもかかわらず、ストックされていない場合には、生成済鍵取得部１４ｂは、鍵の生成をＨＳＭ４に指示して、ＨＳＭ４から鍵を取得する。
例えば、出力要求の所定位置の文字列が「７Ｅ４４」である場合には、鍵情報テーブル３２のコマンド「７Ｅ４４」に一致する（図３（Ａ）（＃２））ので、鍵判定部１４ａは、鍵ＤＢ３に記憶されているべきであると判定する。しかし、鍵情報テーブル３２のコマンド「７Ｅ４４」の現保管数が「０」であるので、この鍵は、ストック対象であるにもかかわらず、鍵がストックされていない状態である。よって、生成済鍵取得部１４ｂは、鍵の生成をＨＳＭ４に指示して、ＨＳＭ４から鍵を取得する。
【００２０】
逐次鍵取得部１４ｃは、鍵判定部１４ａにより鍵ＤＢ３に記憶されているべきではないと判定されたことに応じて、鍵の生成をＨＳＭ４に指示して、ＨＳＭ４から鍵を取得する。また、逐次鍵取得部１４ｃは、生成状況を記憶部２０に記憶させる。
例えば、出力要求の所定位置の文字列が「７Ｅ４５」である場合には、鍵情報テーブル３２には、一致するコマンドを有していない（図３（Ａ）参照）。よって、鍵判定部１４ａは、鍵ＤＢ３に記憶されているべきではないと判定し、逐次鍵取得部１４ｃは、「７Ｅ４５」に対応する鍵の生成をＨＳＭ４に指示して、ＨＳＭ４から鍵を取得する。
【００２１】
応答データ送信部１６は、鍵取得部１４において取得した鍵を含む応答データを生成して、データ処理サーバ６に対して送信する。
鍵情報処理部１８は、鍵情報の追加及び更新を行う。
鍵情報処理部１８は、鍵情報追加部１８ａ、鍵情報更新部１８ｂ等を備える。
鍵情報追加部１８ａは、鍵情報を新たに追加する。
鍵情報更新部１８ｂは、鍵情報を更新する。
これらの処理の詳細は、後述する。
【００２２】
記憶部２０は、制御部１０が各種の処理を実行するために必要なプログラム、データ等を記憶するためのハードディスク、半導体メモリ素子等の記憶領域である。
記憶部２０は、鍵生成制御プログラム２１と、生成状況記憶部２２とを備える。
鍵生成制御プログラム２１は、鍵生成制御サーバ１の制御部１０の各種機能を実行するためのプログラムである。
生成状況記憶部２２は、生成状況を一時的に記憶するテンポラリな記憶領域である。生成状況として、出力要求、応答データ、生成処理時間の各項目を記憶する（図６（Ｂ）参照）。
通信Ｉ／Ｆ部２９は、鍵ＤＢ３、ＨＳＭ４、データ処理サーバ６との間の通信を行うためのインタフェース部であり、送信部及び受信部の役割を行う。
【００２３】
鍵ＤＢ３は、予め生成した鍵をストックするためのデータベースである。鍵ＤＢ３と、鍵生成制御サーバ１との間では、ＳＱＬ文を用いてデータ処理を行う。
鍵ＤＢ３は、鍵テーブル３１、鍵情報テーブル３２等を記憶する。
鍵テーブル３１は、予め生成した鍵をストックしておくテーブルである。
図３（Ｂ）に示すように、鍵テーブル３１は、管理番号、コマンド、作成日、鍵値の各項目を有する。管理番号は、鍵を特定する重複しない番号である。コマンドは、出力要求に含まれ、鍵の種別を表す。作成日は、鍵を生成した日付である。鍵値は、ＨＳＭ４で生成した鍵の値であり、暗号化されたものである。
鍵情報テーブル３２は、ストックする鍵に関する鍵情報を記憶するテーブルである（図３（Ａ）参照）。
【００２４】
次に、鍵ＤＢ３の鍵テーブル３１に、図３（Ｂ）に示すように予め鍵をストックする処理について説明する。
図４は、本実施形態に係る鍵生成制御サーバ１のストック処理を示すフローチャートである。
この処理は、例えば、所定の時間間隔（例えば、１日おき）で行う。
ステップＳ（以下、「Ｓ」という。）１０１において、制御部１０は、出力要求に対する処理中であるか否かを判定する。出力要求に対する処理中である場合（Ｓ１０１：ＹＥＳ）には、制御部１０は、本処理を終了する。つまり、出力要求に対する処理中である場合には、鍵生成制御サーバ１に負荷をかけずに、処理中である出力要求を早急に行わせるために、制御部１０は、ストック処理を行わない。
他方、出力要求に対する処理中ではない場合（Ｓ１０１：ＮＯ）には、制御部１０は、処理をＳ１０２に移す。
Ｓ１０２において、制御部１０は、鍵ＤＢ３の鍵情報テーブル３２をダウンロードして、記憶部２０に記憶させる。
Ｓ１０３において、制御部１０は、記憶部２０に記憶させた鍵情報テーブルを参照して、１つの鍵情報を選択する。つまり、鍵の種別が１つ選択される。
【００２５】
Ｓ１０４において、制御部１０は、選択した１つの鍵情報の最大保管数がブランク（空欄）であるか否かを判定する。後述する鍵情報メンテナンス処理によって追加された鍵情報であって、更新されていない場合には、最大保管数がブランクである（図３（Ａ）（＃３）参照）。最大保管数がブランクである場合（Ｓ１０４：ＹＥＳ）には、制御部１０は、処理をＳ１１０に移す。他方、最大保管数がブランクではない場合（Ｓ１０４：ＮＯ）には、制御部１０は、処理をＳ１０５に移す。
Ｓ１０５において、制御部１０は、記憶部２０に記憶されている鍵情報テーブルを参照して、該当の鍵情報に対応する鍵の数が、最大保管数だけストックされているか否かを判断する。最大保管数だけストックされている場合（Ｓ１０５：ＹＥＳ）には、制御部１０は、処理をＳ１０６に移す。最大保管数だけストックされていない場合（Ｓ１０５：ＮＯ）には、制御部１０は、処理をＳ１０８に移す。
【００２６】
Ｓ１０６において、制御部１０は、記憶部２０に記憶されている鍵情報テーブル中の全ての鍵情報について処理を行ったか否かを判断する。全ての鍵情報について処理を行った場合（Ｓ１０６：ＹＥＳ）には、制御部１０は、処理をＳ１０７に移す。つまり、これは、ストック対象の鍵について、全て最大保管数だけストックされている状態になった場合である。全ての鍵情報について処理を行っていない場合（Ｓ１０６：ＮＯ）には、制御部１０は、処理をＳ１０３に移し、未処理の鍵情報について再度処理を行う。
Ｓ１０７において、制御部１０は、記憶部２０に記憶されている鍵情報テーブルの内容を、鍵ＤＢ３の鍵情報テーブル３２にアップロードする。その後、制御部１０は、本処理を終了する。これは、記憶部２０に記憶されている鍵情報テーブルの更新内容を、鍵ＤＢ３の鍵情報テーブル３２に反映させる処理である。
【００２７】
他方、Ｓ１０８において、制御部１０（鍵生成指示部１１）は、鍵の生成をＨＳＭ４に指示する鍵生成処理を行う。制御部１０（鍵生成指示部１１）は、ＨＳＭ４に対して鍵情報に対応する鍵の生成を指示する。ＨＳＭ４では、指示に基づいて鍵を生成し、生成した鍵を、鍵生成制御サーバ１に送信する。具体的には、ＨＳＭ４は、ＲＳＡの暗号鍵を作成し、秘密鍵と、対になる署名された公開鍵とを出力する。ＨＳＭ４は、公開鍵を、例えば、クレジットカード会社等のイシュアで使用する鍵で署名する。その後、制御部１０は、処理をＳ１１２に移す。
また、他方、Ｓ１１０において、Ｓ１０８と同様に、制御部１０（鍵生成指示部１１）は、鍵の生成をＨＳＭ４に指示する鍵生成処理を行う。制御部１０（鍵生成指示部１１）は、ＨＳＭ４に対して鍵情報に対応する鍵の生成を指示する。ＨＳＭ４では、指示に基づいて鍵を生成し、生成した鍵を、鍵生成制御サーバ１に送信する。
【００２８】
Ｓ１１１において、制御部１０（鍵情報更新部１８ｂ）は、生成時間から最大保管数を算出する。制御部１０（鍵情報更新部１８ｂ）は、ＨＳＭ４に対して鍵情報に対応する鍵の生成を指示してから、ＨＳＭ４から生成された鍵を受信するまでにかかる時間を計測し、計測結果から最大保管数を算出する。例えば、計測結果が５００〜１０００件／時間であれば、最大保管数を１５００にし、１０００〜２０００件／時間であれば、最大保管数を３０００にする。
Ｓ１１２において、制御部１０（鍵情報更新部１８ｂ）は、算出した最大保管数の値を、記憶部２０に記憶されている鍵情報テーブルに更新する。
Ｓ１１３において、制御部１０（鍵格納部１２）は、生成した鍵を、鍵ＤＢ３の鍵テーブル３１にアップロードする。その際、制御部１０は、管理番号を、アップロード順に異なる番号を付す。また、制御部１０は、作成日を、アップロードした日付にする。その後、制御部１０は、処理をＳ１０５に移す。
【００２９】
このようにすることで、鍵生成制御サーバ１は、出力要求の処理を行っていない空き時間を用いて、鍵を生成してストックできる。
なお、鍵生成制御サーバ１は、このストック処理中に常時出力要求を監視し、出力要求を受信した場合には、ストック処理を一時中断し、出力要求に対する処理を行った後、一時中断していたストック処理を再開するようにしてもよい。
【００３０】
次に、上述したストックされた鍵を使用するＩＣカード発行システム１００での処理について説明する。
図５は、本実施形態に係るＩＣカードデータ処理の流れを示す図である。
図６は、本実施形態に係る出力要求及び応答データの説明のための図及び生成状況記憶部２２の例を示す図である。
図７は、本実施形態に係る鍵生成制御サーバ１の出力要求処理を示すフローチャートである。
【００３１】
図５のＳ１０において、データ生成サーバ５は、カード発行データの元データの生成を行い、入力ファイルを作成する。
Ｓ１１において、データ生成サーバ５は、入力ファイルを、データ処理サーバ６に送信する。
他方、Ｓ２０において、データ処理サーバ６は、鍵生成システム７に対して認証開始のための処理を行う。鍵生成システム７は、高セキュリティなシステムであるので、データ処理サーバ６とは、認証処理によって認証された場合にのみ通信が可能になる。
Ｓ２１において、鍵生成システム７は、データ処理サーバ６から認証に必要なデータを受信し、認証処理を行う。
認証処理が正常に行われれば、Ｓ２２において、データ処理サーバ６は、鍵生成システム７との間でセッションが確立される。
なお、この認証処理は、後述するＳ２３の後に行ってもよい。
【００３２】
Ｓ２３において、データ処理サーバ６の制御部は、入力ファイルを受信する。
Ｓ２４において、データ処理サーバ６の制御部は、入力ファイルの内容を解釈して、コマンドを生成する。入力ファイルの解釈及びコマンドの生成は、データ処理サーバ６の記憶部に記憶されたデータ処理プログラム（図示せず）を実行することで行うことができる。データ処理サーバ６の制御部は、入力ファイルの内容を、１レコードずつ解釈し、コマンドを順次生成する。
コマンドは、例えば、図６（Ａ）に示すように、１６進数で表された文字列である。図６（Ａ）は、説明のために４文字ずつ分けて記載しているが、実際には、文字列が羅列されている。
【００３３】
Ｓ２５において、データ処理サーバ６の制御部は、生成したコマンドに、鍵生成に関するコマンドがあるか否かを判断する。鍵生成に関するコマンドとは、鍵生成システム７に対して鍵の生成を依頼するためのコマンドをいい、鍵の出力要求である。図６（Ａ）の例では、文字列６１の「０Ａ５３」である。鍵生成に関するコマンドがある場合（Ｓ２５：ＹＥＳ）には、制御部は、処理をＳ２６に移す。他方、鍵生成に関するコマンドがない場合（Ｓ２５：ＮＯ）には、制御部は、処理をＳ２８に移す。
Ｓ２６において、データ処理サーバ６の制御部は、鍵の出力要求を、鍵生成システム７に送信する。
出力要求は、図６（Ａ）に示すような文字列である。
文字列６１は、出力要求を表す識別子である。
文字列６２は、次の項目（セッションＩＤ）のレングス（長さ）である。
文字列６３は、セッションＩＤである。
文字列６４は、鍵生成のコマンド値である。
図５に戻り、Ｓ２７において、鍵生成システム７では、出力要求処理を行う。そして、鍵生成システム７は、出力要求処理により作成された応答データを、データ処理サーバ６に送信する。
【００３４】
ここで、出力要求処理について、図７に基づき説明する。
図７のＳ１２１において、制御部１０は、データ処理サーバ６から出力要求を受信する。
Ｓ１２２において、制御部１０は、鍵ＤＢ３の鍵情報テーブル３２をダウンロードして、記憶部２０に鍵情報テーブルを記憶する。
Ｓ１２３において、制御部１０は、記憶部２０に記憶されている鍵情報テーブルを参照して、出力要求に対応する鍵の種別の鍵が、鍵ＤＢ３の鍵テーブル３１に記憶されているべきか否かを判断する。これは、出力要求の所定位置の文字列が、鍵情報テーブルのコマンドに一致するものがあるか否かによって判断できる。
具体的には、制御部１０は、図６（Ａ）の文字列６４を参照して、鍵情報テーブルのコマンドに一致するものがあるか否かを判断する。
図７に戻り、鍵テーブル３１に記憶されているべきである場合（Ｓ１２３：ＹＥＳ）には、制御部１０は、処理をＳ１２４に移す。他方、鍵テーブル３１に記憶されているべきではない場合（Ｓ１２３：ＮＯ）には、制御部１０は、処理をＳ１３２に移す。
【００３５】
Ｓ１２４において、制御部１０は、該当する鍵の種別を含む鍵テーブル３１をダウンロードして、記憶部２０に鍵テーブルを記憶する。
Ｓ１２５において、制御部１０は、記憶部２０に記憶した鍵テーブルに、出力要求に対応する鍵の種別の鍵があるか否かを判断する。鍵がある場合（Ｓ１２５：ＹＥＳ）には、制御部１０は、処理をＳ１２６に移す。他方、鍵がない場合（Ｓ１２５：ＮＯ）には、制御部１０は、処理をＳ１３０に移す。
Ｓ１２６において、制御部１０は、記憶部２０に記憶した鍵テーブルから鍵を１つ取得する。
Ｓ１２７において、制御部１０は、記憶部２０に記憶した鍵テーブルから、取得した鍵のレコードを削除する。
Ｓ１２８において、制御部１０は、記憶部２０に記憶した鍵テーブルの内容を、鍵ＤＢ３の鍵テーブル３１にアップロードする。また、制御部１０は、記憶部２０に記憶した鍵情報テーブルの現保管数を「１」減らして、鍵ＤＢ３の鍵情報テーブル３２にアップロードする。その後、制御部１０は、処理をＳ１３５に移す。
【００３６】
他方、Ｓ１３０は、鍵テーブル３１に本来鍵がストックされているべきなのに、ストックされていない場合である。これは、例えば、鍵情報テーブル３２の該当のレコードが作成されたばかりで、ストック処理前のためであったり、ストックされた鍵を使いきったりした場合が該当する。この場合、制御部１０は、鍵生成処理を行う。具体的には、制御部１０は、ＨＳＭ４に対して鍵情報に対応する鍵の生成を指示する。ＨＳＭ４では、指示に基づいて鍵を生成し、生成した鍵を、鍵生成制御サーバ１に送信する。その後、制御部１０は、処理をＳ１３５に移す。
【００３７】
また、Ｓ１３２は、鍵テーブル３１に鍵がストックされているべきではない場合である。制御部１０は、鍵生成処理を行う。具体的には、制御部１０は、ＨＳＭ４に対して鍵情報に対応する鍵の生成を指示する。ＨＳＭ４では、指示に基づいて鍵を生成し、生成した鍵を、鍵生成制御サーバ１に送信する。
Ｓ１３３において、制御部１０は、生成状況を、生成状況記憶部２２に記憶させる。
図６（Ｂ）は、生成状況記憶部２２の例を示す。
生成状況記憶部２２は、鍵情報テーブル３２に登録されていない種別の鍵を生成した場合に、その出力要求、応答データと、鍵生成に要した時間である生成処理時間とを記憶する。図６（Ａ）の出力要求は、その鍵生成のコマンド値が鍵情報テーブル３２に登録されていない（図３（Ａ）参照）ので、生成状況記憶部２２に登録される（図６（Ｂ）（＃２）参照）。
【００３８】
図７に戻り、Ｓ１３５において、制御部１０は、取得した鍵を含む応答データを生成する。なお、鍵テーブル３１から鍵を取得した場合には、そのまま応答データを生成すると、セッションＩＤ（通信識別情報）が出力要求に対応しないものになってしまう。そこで、制御部１０は、セッションＩＤが受信したセッションＩＤに応答するものになるように、応答データを加工する。
応答データは、図６（Ｃ）に示すような文字列である。
文字列７１は、応答データを表す識別子である。
文字列７２は、次の項目（セッションＩＤ）のレングス（長さ）である。
文字列７３は、セッションＩＤである。
文字列７４は、ＨＳＭ４からの返信コマンドを表す識別子である。
文字列７５は、次の項目（鍵値）のレングス（長さ）である。
文字列７６は、鍵値である。
図７に戻り、Ｓ１３６において、制御部１０は、生成した応答データを、データ処理サーバ６に送信する。その後、制御部１０は、図５に戻る。
【００３９】
図５のＳ２８において、データ処理サーバ６の制御部は、鍵生成システム７から受信した応答データを解釈し、カード発行データを作成する出力ファイルの編集処理を行う。
なお、Ｓ２４からＳ２８までは、入力ファイルの内容を解釈して順次生成したコマンド単位で行い、レコードごとの処理が終わり、かつ、入力ファイルの処理が終わるまで、繰り返し行う。
Ｓ２９において、データ処理サーバ６の制御部は、出力ファイルを、ＩＣカード発行機８に対して送信する。
Ｓ４０において、ＩＣカード発行機８は、出力ファイルを受信する。
Ｓ４１において、ＩＣカード発行機８は、出力ファイルからカード発行データを１レコードずつ取り出して、空のＩＣカード９に書き込むことを繰り返し行う発行処理を行う。
【００４０】
このような処理により、空のＩＣカード９に、クレジットカードやキャッシュカードの機能を有するためのカード発行データを書き込むので、書き込み後のＩＣカード９は、キャッシュ機能やクレジット機能を有する。そして、カード発行データには、鍵を含むので、ＩＣカード９を使用する際に、鍵によって本物のカードであることを証明できる。
【００４１】
次に、鍵ＤＢ３の鍵情報テーブル３２をメンテナンスする処理について説明する。
図８は、本実施形態に係る鍵生成制御サーバ１の鍵情報メンテナンス処理を示すフローチャートである。
なお、本処理は、例えば、生成状況記憶部２２に生成状況が記憶されている場合に、特定の時間間隔（例えば、１日おき）で行う。
Ｓ１４１において、制御部１０は、生成状況記憶部２２に記憶された生成状況を参照する。
Ｓ１４２において、制御部１０は、生成状況記憶部２２の出力要求が、セッションＩＤ（図６（Ａ）の文字列６３参照）を除いて同じものがあるか否かを判断する。同じものがある場合（Ｓ１４２：ＹＥＳ）には、制御部１０は、処理をＳ１４３に移す。他方、同じものがない場合（Ｓ１４２：ＮＯ）には、制御部１０は、本処理を終了する。
【００４２】
Ｓ１４３において、制御部１０は、Ｓ１４２において同じであったレコードの応答データが、セッションＩＤ（図６（Ｃ）の文字列７３参照）を除いて異なるか否かを判断する。異なる場合（Ｓ１４３：ＹＥＳ）には、制御部１０は、処理をＳ１４４に移す。他方、同じである場合（Ｓ１４３：ＮＯ）には、制御部１０は、本処理を終了する。
Ｓ１４４において、制御部１０は、生成状況の出力要求を受信してから応答データを送信するまでの時間、つまり、処理時間が一定時間以上（例えば、２秒以上）であるか否かを判断する。処理時間が一定時間以上である場合（Ｓ１４４：ＹＥＳ）には、制御部１０は、処理をＳ１４５に移す。他方、処理時間が一定時間未満である場合（Ｓ１４４：ＮＯ）には、制御部１０は、本処理を終了する。
Ｓ１４５において、制御部１０は、鍵ＤＢ３の鍵情報テーブル３２に、該当の鍵の種別に関する鍵情報を追加する。
例えば、図６（Ｂ）（＃１）に示すコマンド「８Ｄ２３」のものは、本処理によって鍵情報テーブル３２に追加される（図３（Ａ）（＃３）参照）。
図８に戻り、Ｓ１４６において、制御部１０は、生成状況記憶部２２をクリアする。その後、制御部１０は、本処理を終了する。
【００４３】
このように、本実施形態によれば、鍵生成制御サーバ１は、以下のような効果がある。
（１）鍵ＤＢ３に予めストックしておく鍵に関する鍵情報に基づいて、鍵の生成を指示し、生成された鍵を、鍵ＤＢ３の鍵テーブル３１に格納するので、鍵テーブル３１を、複数の鍵がストックされた状態にできる。そして、データ処理サーバから鍵の出力要求を受信した場合には、鍵テーブル３１にストックされた鍵を用いれば、鍵生成に係る時間が削減でき、また、鍵の生成を指示することで鍵を取得してもよく、鍵生成を柔軟に行うことができる。
（２）鍵情報テーブル３２により、出力要求に対応する鍵が鍵テーブル３１に記憶されているべきか否かを判定するので、鍵情報を用いて、鍵テーブル３１から取得し、又は鍵の生成を指示できる。
そして、鍵テーブル３１にストックされている場合には、ストックされた鍵を用いればよいので、鍵生成に係る時間が削減でき、処理時間の短縮を図ることができる。
【００４４】
（３）鍵テーブル３１に記憶されているべき鍵が、ストックがないことで存在しない場合であっても、鍵の生成を指示することで鍵を取得できる。よって、鍵テーブル３１に記憶されているべき鍵が枯渇した場合であっても、鍵生成を柔軟に行うことで処理を円滑に行うことができる。
（４）鍵テーブル３１から鍵を取得した場合であっても、応答データを出力要求に対する応答になるようにするので、データ処理サーバ６では、逐次鍵を生成した場合と同様に処理ができる。
（５）鍵の生成状況が所定の条件を満たすことで、その鍵に関する鍵情報を、鍵情報テーブル３２に新たに追加するので、鍵情報を自動的にメンテナンスすることができる。これにより、所定の条件を満たす鍵を、その後には予め生成して鍵テーブル３１に記憶させることができる。
その場合、所定の条件を、鍵生成に要する時間が長いものにすることで、鍵生成に時間がかかる鍵を予め生成してストックすることができ、処理時間の短縮を図ることができる。
【００４５】
（６）鍵生成に要する時間に対応させて、ストックする鍵の最大保管数を鍵情報が有するようにするので、効率よい数の鍵をストックできる。
（７）出力要求に対する処理が少ない時間帯や、処理を行っていない時間帯に、鍵の生成を指示して鍵をストックできる。よって、効率よく生成できる時間に鍵を生成して、ストックできるので、効率よい鍵のストックができる。
【００４６】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されるものではない。また、実施形態に記載した効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載したものに限定されない。なお、上述した実施形態及び後述する変形形態は、適宜組み合わせて用いることもできるが、詳細な説明は省略する。
【００４７】
（変形形態）
（１）本実施形態では、ＩＣカードのカード発行処理について説明したが、これに限定されない。例えば、携帯電話機等の携帯端末に、クレジットカードと同様の機能を有するようにするために、携帯端末のＵＩＭカード（Ｕｓｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ  ｃａｒｄ）に発行処理を行うような場合にも使用できる。その場合、データ処理サーバは、入力ファイルの代わりに入力電文を受信して、内容を解釈するものであればよい。
（２）本実施形態では、鍵をＲＳＡ鍵として説明したが、これに限定されない。作成に時間を要する他の種別の鍵であってもよいし、秘匿データ等のセキュリティデータであってもよい。
【００４８】
（３）本実施形態では、鍵テーブルは、未使用の鍵を保管するものとして説明したが、これに限定されない。鍵テーブルに、例えば、使用済フラグを有し、鍵を使用した場合には、その使用済フラグをＯＮにすれば、使用済の鍵も保管できる。そのようにすることで、制御部は、未使用か、使用済かの確認を、鍵テーブルを参照することで行うことができる。なお、その場合には、メンテナンス処理において、使用済みの鍵の鍵テーブルからの削除を適宜行うことが望ましい。
（４）本実施形態では、鍵テーブルには、作成日を有するものとして説明したが、これに限定されない。鍵テーブルの各鍵に、鍵情報テーブルの鍵有効日数から算出した有効期限を有するようにしてもよい。そのようにすることで、長期間使用されない不要な鍵を削除するのに用いることができる。
【００４９】
（５）本実施形態では、鍵情報テーブルのメンテナンス処理として、所定の時間間隔（１日おき）で行うものとして説明したが、これに限定されない。例えば、出力要求の鍵の種別が鍵テーブルに記憶されているべきではない場合に、鍵の生成をＨＳＭに依頼して鍵を取得した後（図７のＳ１３２の後）に行ってもよい。また、鍵情報テーブルに鍵情報を追加した後に、生成状況をクリアする処理を行うが、クリア対象は、生成した鍵の種別に関するもののみとしてもよい。
【００５０】
（６）本実施形態では、予め鍵をストックする処理を、所定の時間間隔（１日おき）で行うものとして説明したが、これに限定されない。例えば、所定の時間間隔は、日次や週次等のバッチ処理であってもよい。また、本実施形態では、予め鍵をストックする処理を、出力要求に対する処理中の場合には、行わないものとして説明したが、これに限定されない。出力要求に対する処理中であっても、例えば、鍵生成制御サーバの負荷が一定値以下であれば行うようにしてもよい。
（７）本実施形態では、鍵ＤＢを、鍵生成制御サーバとは別の装置として説明したが、これに限定されない。例えば、鍵生成制御サーバの記憶部に、鍵テーブル及び鍵情報テーブルを記憶してもよい。また、鍵情報テーブルを鍵生成制御サーバの記憶部に記憶しておき、鍵テーブルのみを鍵ＤＢに記憶してもよい。鍵ＤＢを、鍵生成制御サーバとは別の装置とすることで、大量の鍵の管理がし易い。また、鍵生成制御サーバの記憶部に記憶することで、鍵の数が大量ではない場合には、効率よく処理を行うことができる。
（８）本実施形態では、ＨＳＭが１つであるようになっているが、複数有していてもよい。その場合、鍵情報テーブルは、複数のＨＳＭのうち、どのＨＳＭで鍵生成を行うか、ＨＳＭを特定する識別情報を有するようにすることで、対象のＨＳＭで鍵生成処理を行うことができる。
【符号の説明】
【００５１】
１    鍵生成制御サーバ
３    鍵ＤＢ
４    ＨＳＭ
６    データ処理サーバ
８    ＩＣカード発行機
９    ＩＣカード
９ａ  ＩＣチップ
１０  制御部
１１  鍵生成指示部
１２  鍵格納部
１４  鍵取得部
１４ａ  鍵判定部
１４ｂ  生成済鍵取得部
１４ｃ  逐次鍵取得部
１６  応答データ送信部
１８ａ  鍵情報追加部
１８ｂ  鍵情報更新部
２０  記憶部
２１  鍵生成制御プログラム
２２  生成状況記憶部
３１  鍵テーブル
３２  鍵情報テーブル
１００  ＩＣカード発行システム
【図１】
2015061267.tif 000003
【図２】
2015061267.tif 000004
【図３】
2015061267.tif 000005
【図４】
2015061267.tif 000006
【図５】
2015061267.tif 000007
【図６】
2015061267.tif 000008
【図７】
2015061267.tif 000009
【図８】
2015061267.tif 000010