(57)【要約】【課題】デジタル証明書を適切に管理する管理技術を提供する。【解決手段】第１の記憶手段に記憶されているデータのうち、状態情報が「変更中」の記憶領域のデータと、状態情報が「使用中」の記憶領域のデータであって当該データが「変更中」の状態情報を有する記憶領域のデータからの変更ではないデータを所定の登録領域に登録する登録手段と、登録されたデータに含まれるペア情報がペア情報以外のデータと整合するか否かを判断する判断手段と、整合しない場合は、ペア情報、ペア情報以外のデータ及び登録されていないデータのうち１以上のデータを所定条件に従って修正あるいは登録する修正手段と、登録されているデータに基づいて中断されたデジタル証明書の更新処理を継続する処理継続手段と、他のデータと整合しないデータを削除する削除手段と、登録されているデータを「使用中」の状態情報と対応付けて第２の記憶手段へ書き込む書込手段とを備える。【選択図】図５
2009212896.tif 000002
【特許請求の範囲】
【請求項１】
デジタル証明書の更新処理が中断された場合に前記デジタル証明書を管理するデジタル証明書管理装置であって、
データと該データを記憶する記憶領域の状態を示す状態情報とを対応付けて記憶する第１の記憶手段であって、前記データは、デジタル証明書、秘密鍵およびデジタル証明書と秘密鍵の組み合わせを定義するペア情報を含み、前記状態情報は、前記記憶領域が有効なデータを記憶している状態であることを示す「使用中」と、前記記憶領域がデータを記憶している状態であって当該データの変更後のデータを他の領域に記憶する処理が実行されている状態にあることを示す「変更中」と、を含む第１の記憶手段と、
前記第１の記憶手段に記憶されているデータのうち、状態情報が「変更中」の記憶領域のデータと、状態情報が「使用中」の記憶領域のデータであって状態情報が「変更中」の記憶領域のデータから変更されたものではないデータと、を登録する登録手段と、
前記登録手段により登録されたデータに含まれるペア情報が、前記登録手段により登録されたデータに含まれるペア情報以外のデータと整合するか否かを判断する判断手段と、
前記判断手段により前記ペア情報が前記ペア情報以外のデータと整合しないと判断された場合は、前記ペア情報、前記ペア情報以外のデータ及び前記第１の記憶手段に記憶されているデータのうち所定条件に合致するデータを修正あるいは登録する修正手段と、
前記登録されているデータに基づいて前記中断されたデジタル証明書の更新処理を継続する処理継続手段と、
前記登録されているデータのうち他のデータと整合しないデータを削除する削除手段と、
前記登録されているデータを「使用中」の状態情報と対応付けて第２の記憶手段へ書き込む書込手段と
を備えることを特徴とするデジタル証明書管理装置。
【請求項２】
前記処理継続手段は、
前記登録されているデータであって前記ペア情報に定義されていないデータの中にペアとして成立する可能性があるデータが存在するか否かを判断し、ペアとして成立する可能性があるデータが存在する場合には、前記中断されたデジタル証明書の更新処理を継続できると判断することを特徴とする請求項１に記載のデジタル証明書管理装置。
【請求項３】
前記処理継続手段は、
前記登録されたデータのうち、デジタル証明書と秘密鍵ＣＳＲのペアが存在するか否かを判断し、前記デジタル証明書と前記秘密鍵ＣＳＲのペアが存在する場合は、前記秘密鍵ＣＳＲを秘密鍵に修正し、前記デジタル証明書と前記修正後の秘密鍵とをペアとして前記ペア情報に定義することを特徴とする請求項２に記載のデジタル証明書管理装置。
【請求項４】
データと該データを記憶する記憶領域の状態を示す状態情報とを対応付けて記憶する第１の記憶手段であって、前記データは、デジタル証明書、秘密鍵およびデジタル証明書と秘密鍵の組み合わせを定義するペア情報を含み、前記状態情報は、前記記憶領域が有効なデータを記憶している状態であることを示す「使用中」と、前記記憶領域がデータを記憶している状態であって当該データの変更後のデータを他の領域に記憶する処理が実行されている状態にあることを示す「変更中」と、を含む第１の記憶手段を備え、デジタル証明書の更新処理が中断された場合に前記デジタル証明書を管理する管理装置におけるデジタル証明書管理方法であって、
前記第１の記憶手段に記憶されているデータのうち、状態情報が「変更中」の記憶領域のデータと、状態情報が「使用中」の記憶領域のデータであって状態情報が「変更中」の記憶領域のデータから変更されたものではないデータと、を登録するステップと、
前記登録されたデータに含まれるペア情報が、前記登録されたデータに含まれるペア情報以外のデータと整合するか否かを判断するステップと、
前記ペア情報が前記ペア情報以外のデータと整合しないと判断された場合は、前記ペア情報、前記ペア情報以外のデータ及び前記第１の記憶手段に記憶されているデータのうち所定条件に合致するデータを修正あるいは登録するステップと、
前記登録されているデータに基づいて前記中断されたデジタル証明書の更新処理を継続するステップと、
前記登録されているデータのうち他のデータと整合しないデータを削除するステップと、
前記登録されているデータを「使用中」の状態情報と対応付けて第２の記憶手段へ書き込むステップと
を備えることを特徴とするデジタル証明書管理方法。
【請求項５】
デジタル証明書の更新処理が中断された場合に前記デジタル証明書を管理するコンピュータであって、データと該データを記憶する記憶領域の状態を示す状態情報とを対応付けて記憶する第１の記憶手段であって、前記データは、デジタル証明書、秘密鍵およびデジタル証明書と秘密鍵の組み合わせを定義するペア情報を含み、前記状態情報は、前記記憶領域が有効なデータを記憶している状態であることを示す「使用中」と、前記記憶領域がデータを記憶している状態であって当該データの変更後のデータを他の領域に記憶する処理が実行されている状態にあることを示す「変更中」と、を含む第１の記憶手段を備えるコンピュータに、
前記第１の記憶手段に記憶されているデータのうち、状態情報が「変更中」の記憶領域のデータと、状態情報が「使用中」の記憶領域のデータであって状態情報が「変更中」の記憶領域のデータから変更されたものではないデータと、を登録するステップと、
前記登録されたデータに含まれるペア情報が、前記登録されたデータに含まれるペア情報以外のデータと整合するか否かを判断するステップと、
前記ペア情報が前記ペア情報以外のデータと整合しないと判断された場合は、前記ペア情報、前記ペア情報以外のデータ及び前記第１の記憶手段に記憶されているデータのうち所定条件に合致するデータを修正あるいは登録するステップと、
前記登録されているデータに基づいて前記中断されたデジタル証明書の更新処理を継続するステップと、
前記登録されているデータのうち他のデータと整合しないデータを削除するステップと、
前記登録されているデータを「使用中」の状態情報と対応付けて第２の記憶手段へ書き込むステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の記憶装置に記憶されるデータを管理する技術に関し、特に、所定の記憶装置に記憶されるデジタル証明書を管理する技術に関する。
【背景技術】
【０００２】
近年、通信ネットワークの発達に伴い、ネットワークセキュリティに対する要求が高まっている。例えば、インターネット等を通じて文書や画像などのデジタルデータをやりとりする際には、通信途中で第三者にそのデータを盗み見られたり改ざんされたりしないよう、当該データを暗号化して送信する場合が増えている。かかる暗号化に関する技術は、例えば、特開２００３−２８８００９号公報（特許文献１）などに記載されている。
【特許文献１】特開２００３−２８８００９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上述したデータの暗号化に関する技術をベースに、ネットワークセキュリティにおけるデータの信頼性や通信相手の認証に関する技術として、デジタル証明書が提案されている。デジタル証明書は、証明書の所有者のＩＤを検査するデジタル文書であり、例えば所定の認証局によってユーザやサーバに対して発行されるものである。デジタル証明書の例としては、例えば、サーバ等のデバイスを識別するためのデバイス証明書やユーザを識別するためのユーザ証明書がある。前者のデバイス証明書は、ＳＳＬ（Secure Socket Layer）などの通信プロトコルを使用したセキュアな通信の際に使用したりすることができ、後者のユーザ証明書は、同様にセキュリティで保護された電子メールの送信等に使用することができる。
【０００４】
ここで、このようなデジタル証明書を使用する場合、ネットワークセキュリティという観点からは、かかるデジタル証明書の取得や有効期限等に応じた更新等を適切に管理することが重要となる。しかしながら、従来のデジタル証明書の管理技術には、例えば以下に述べるような問題があった。
【０００５】
例えば、デジタル証明書の管理には、既知のファイルシステムを用いることができるが、このファイルシステムを用いた管理では、データの更新中に何らかの異常が発生し、これによりデータの一部消失またはデータ間の矛盾等が生じた場合に、これらを検出する仕組みが設けられていなかった。従って、デジタル証明書の更新中に、例えば、電源OFFなどが生じた場合には、デジタル証明書の整合性を維持することができず、デジタル証明書を適切に管理することができない場合があった。また、デジタル証明書の更新中にエラーが発生した場合には、更新処理を最初からやり直さなければならず、効率的ではなかった。
【０００６】
そこで、本願発明は、デジタル証明書の更新処理が中断された場合でも、デジタル証明書の整合性を維持するとともにデジタル証明書の更新処理を引き継ぐことが可能なデジタル証明書の管理技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するための本発明は、デジタル証明書の更新処理が中断された場合に前記デジタル証明書を管理するデジタル証明書管理装置であって、データと該データを記憶する記憶領域の状態を示す状態情報とを対応付けて記憶する第１の記憶手段であって、前記データは、デジタル証明書、秘密鍵およびデジタル証明書と秘密鍵の組み合わせを定義するペア情報を含み、前記状態情報は、前記記憶領域が有効なデータを記憶している状態であることを示す「使用中」と、前記記憶領域がデータを記憶している状態であって当該データの変更後のデータを他の領域に記憶する処理が実行されている状態にあることを示す「変更中」と、を含む第１の記憶手段と、前記第１の記憶手段に記憶されているデータのうち、状態情報が「変更中」の記憶領域のデータと、状態情報が「使用中」の記憶領域のデータであって状態情報が「変更中」の記憶領域のデータから変更されたものではないデータと、を登録する登録手段と、前記登録手段により登録されたデータに含まれるペア情報が、前記登録手段により登録されたデータに含まれるペア情報以外のデータと整合するか否かを判断する判断手段と、前記判断手段により前記ペア情報が前記ペア情報以外のデータと整合しないと判断された場合は、前記ペア情報、前記ペア情報以外のデータ及び前記第１の記憶手段に記憶されているデータのうち所定条件に合致するデータを修正あるいは登録する修正手段と、前記登録されているデータに基づいて前記中断されたデジタル証明書の更新処理を継続する処理継続手段と、前記登録されているデータのうち他のデータと整合しないデータを削除する削除手段と、前記登録されているデータを「使用中」の状態情報と対応付けて第２の記憶手段へ書き込む書込手段とを備えることを特徴とする。
【０００８】
好適には、前記登録されているデータであって前記ペア情報に定義されていないデータの中にペアとして成立する可能性があるデータが存在するか否かを判断し、ペアとして成立する可能性があるデータが存在する場合には、前記中断されたデジタル証明書の更新処理を継続できると判断する。
【０００９】
好適には、前記処理継続手段は、前記登録されたデータのうち、デジタル証明書と秘密鍵ＣＳＲのペアが存在するか否かを判断し、前記デジタル証明書と前記秘密鍵ＣＳＲのペアが存在する場合は、前記秘密鍵ＣＳＲを秘密鍵に修正し、前記デジタル証明書と前記修正後の秘密鍵とをペアとして前記ペア情報に定義する。
【００１０】
また、本発明は、データと該データを記憶する記憶領域の状態を示す状態情報とを対応付けて記憶する第１の記憶手段であって、前記データは、デジタル証明書、秘密鍵およびデジタル証明書と秘密鍵の組み合わせを定義するペア情報を含み、前記状態情報は、前記記憶領域が有効なデータを記憶している状態であることを示す「使用中」と、前記記憶領域がデータを記憶している状態であって当該データの変更後のデータを他の領域に記憶する処理が実行されている状態にあることを示す「変更中」と、を含む第１の記憶手段を備え、デジタル証明書の更新処理が中断された場合に前記デジタル証明書を管理する管理装置におけるデジタル証明書管理方法であって、前記第１の記憶手段に記憶されているデータのうち、状態情報が「変更中」の記憶領域のデータと、状態情報が「使用中」の記憶領域のデータであって状態情報が「変更中」の記憶領域のデータから変更されたものではないデータと、を登録するステップと、前記登録されたデータに含まれるペア情報が、前記登録されたデータに含まれるペア情報以外のデータと整合するか否かを判断するステップと、前記ペア情報が前記ペア情報以外のデータと整合しないと判断された場合は、前記ペア情報、前記ペア情報以外のデータ及び前記第１の記憶手段に記憶されているデータのうち所定条件に合致するデータを修正あるいは登録するステップと、前記登録されているデータに基づいて前記中断されたデジタル証明書の更新処理を継続するステップと、前記登録されているデータのうち他のデータと整合しないデータを削除するステップと、前記登録されているデータを「使用中」の状態情報と対応付けて第２の記憶手段へ書き込むステップとを備えることを特徴とする。
【００１１】
また、本発明は、デジタル証明書の更新処理が中断された場合に前記デジタル証明書を管理するコンピュータであって、データと該データを記憶する記憶領域の状態を示す状態情報とを対応付けて記憶する第１の記憶手段であって、前記データは、デジタル証明書、秘密鍵およびデジタル証明書と秘密鍵の組み合わせを定義するペア情報を含み、前記状態情報は、前記記憶領域が有効なデータを記憶している状態であることを示す「使用中」と、前記記憶領域がデータを記憶している状態であって当該データの変更後のデータを他の領域に記憶する処理が実行されている状態にあることを示す「変更中」と、を含む第１の記憶手段を備えるコンピュータに、前記第１の記憶手段に記憶されているデータのうち、状態情報が「変更中」の記憶領域のデータと、状態情報が「使用中」の記憶領域のデータであって状態情報が「変更中」の記憶領域のデータから変更されたものではないデータと、を登録するステップと、前記登録されたデータに含まれるペア情報が、前記登録されたデータに含まれるペア情報以外のデータと整合するか否かを判断するステップと、前記ペア情報が前記ペア情報以外のデータと整合しないと判断された場合は、前記ペア情報、前記ペア情報以外のデータ及び前記第１の記憶手段に記憶されているデータのうち所定条件に合致するデータを修正あるいは登録するステップと、前記登録されているデータに基づいて前記中断されたデジタル証明書の更新処理を継続するステップと、前記登録されているデータのうち他のデータと整合しないデータを削除するステップと、前記登録されているデータを「使用中」の状態情報と対応付けて第２の記憶手段へ書き込むステップとを実行させるためのプログラムである。
【００１２】
また、本発明のプログラムは、本発明の情報処理方法の各工程をコンピュータ上で実行させることを特徴とする。この場合のプログラムは、コンピュータによって読み取り可能な、ＣＤ−ＲＯＭ、磁気ディスク、半導体メモリ及び通信ネットワークなどの各種の媒体を通じてコンピュータにインストールまたはロードすることができる。また、コンピュータプログラムが、ＰＣカードやオプションボードに記録されて流通する場合も含む。
【００１３】
なお、本明細書において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合も含む。また、１つの手段が有する機能が２つ以上の物理的手段により実現されても、２つ以上の手段の機能が１つの物理的手段により実現されてもよい。
【発明の効果】
【００１４】
本発明によれば、デジタル証明書の更新処理が中断した場合であっても、所定の条件を満たす場合には、中断した更新処理が継続されるので、デジタル証明書をより効率的に管理することが可能になる。
【発明を実施するための最良の形態】
【００１５】
以下、図を参照しつつ本発明にかかるデジタル証明書管理装置について詳細に説明する。
【００１６】
（１）デジタル証明書の管理装置の概要
【００１７】
図１〜図３を用いて、本実施形態に係るデジタル証明書管理装置の構成について説明する。
【００１８】
図１は、本実施形態に係るデジタル証明書管理装置の機能構成を示すブロックダイアグラムである。同図に示すように、デジタル証明書管理装置１は、本発明における主な構成として、デジタル証明書管理装置１の動作全体を制御する制御手段１１と、デジタル証明書の管理に必要な情報を記憶するための記憶手段１２とを主に備える。
【００１９】
制御手段１２は、データ登録手段１１１、整合性判断手段１１２、修正・削除手段１１３、データ書込手段１１４および処理継続手段１１５を主に備える。記憶手段１２の構成については、図３を用いて後述する。
【００２０】
図２は、本実施形態に係るデジタル証明書管理装置１のハードウェア構成を示すブロック図である。すなわち、デジタル証明書管理装置１は、図２に示すようなコントローラとしてのＣＰＵ１０１、記憶装置としてのＲＯＭ１０２、ＲＡＭ１０３及び外部記憶装置１０４、入力インタフェース１０５、出力インタフェース１０６、および通信インタフェース１０７等を備える汎用のコンピュータを適用することができる。なお、デジタル証明書管理装置１は、例えば、プリンタ、スキャナー、コピー機、ＦＡＸ機またはこれらの機能を全て備えた多機能周辺装置（MFP: Multifunction peripheral）に接続されるか、または一部に組み込まれていてもよい。また、証明書データ管理装置１は、単一のコンピュータより構成されるものであっても、ネットワーク上に分散した複数のコンピュータより構成されるものであってもよい。証明書データ管理装置１は、ＣＰＵ１０１が、例えば外部記憶装置１０４からＲＡＭ１０３にロードされた所定のプログラム（本発明にかかるデジタル証明書管理処理の内容を規定したプログラム）を実行することにより、図１に示す各種機能実現手段として証明書データ管理装置１を機能させることができる。
【００２１】
図３は、本実施形態に係るデジタル証明書管理装置１の記憶手段１２のデータ構成の一例を示す図である。
【００２２】
本実施形態では、記憶手段１２が、セクタ単位でデータの消去が可能なフラッシュメモリ（flash memory）１０２によって構成される場合を例に説明する。ただし、記憶手段１２の構成はフラッシュメモリに限られない。
【００２３】
記憶手段１２は、複数のセクタ（記憶領域）を備えており、各セクタは、当該セクタの状態を示す状態情報を格納する「セクタ状態領域」（未使用、使用中、変更中のいずれかが格納される）と、複数の「データブロック」を記憶領域として備えている。各データブロックには、デジタル証明書管理装置１の管理対象であるデジタル証明書や秘密鍵のほか、デジタル証明書と秘密鍵との組み合わせを定義する情報（以下、これを「ペア情報」または「鍵ペア情報」という。）などが格納される。図３では、一例として、データブロック０に鍵ペア情報が格納され、データブロックＮに鍵ペア以外の情報が格納されている。
【００２４】
鍵ペア情報が格納されるデータブロック０は、データブロックの状態を示す状態情報を格納する「ブロック状態領域」（未使用、使用中、変更中、使用済のいずれかが格納される）、格納しているデータの種別を格納する「データ種別領域」（例えば、鍵ペア情報、ルート/中間ＣＡ証明書（認証局のデジタル証明書）、自己署名証明書、デジタル証明書、秘密鍵、秘密鍵ＣＳＲ（Certificate Signing Request：証明書署名要求）の何れかが格納される）、及び鍵ペアの内容（どの証明書と秘密鍵がペアになっているかを示す情報）を格納する複数の「鍵ペア情報領域」を記憶領域として備える。
【００２５】
データブロック０の各鍵ペア情報領域は、さらに、複数の記憶領域を備える。例えば、鍵ペア情報領域０は、鍵ペア情報領域の状態を示す状態情報を格納する「鍵ペア状態領域」（未使用、使用中、変更中、使用済のうちいずれかが格納される）、デジタル証明書の利用目的を格納する「利用目的領域」（例えば、利用目的未定またはＷＥＢサーバ用といったデータが格納される）、デジタル証明書を格納しているデータブロックの番号を格納する「証明書番号領域」、デジタル証明書のペアになる秘密鍵を格納するデータブロックの番号を格納する「秘密鍵番号領域」、デジタル証明書の種類を格納する「証明書種別領域」（例えば、自己署名証明書やＣＡ署名証明書などが格納される）、及びデータサイズとデータの整合性を判断するためのチェックサムを格納する「チェックサム領域」を備える。
【００２６】
一方、鍵ペア以外の情報が格納されるデータブロックＮは、上述したブロック状態領域やデータ種別領域に加えて、データサイズとデータの整合性を判断するためのチェックサムを格納する「チェックサム領域」、データブロックＮのデータが他のデータブロックのデータからの変更に該当する場合には、変更前のデータを格納しているデータブロックの番号を格納する「変更前情報領域」、データのサイズを格納する「データサイズ領域」、及びデータ（デジタル証明書、秘密鍵など）を格納する「データ領域」を備える。
【００２７】
なお、本実施形態に係る記憶手段１２が採用するフラッシュメモリは、所定の記憶領域単位すなわちセクタ単位でデータの消去が可能な構成である。例えば、初期値が１の場合には、ビット単位で値を１から０にいったん変更すると、セクタ単位でしか値を１に戻すことができない。なお、同一領域内においてビット単位で値を１から０に変更することは随時可能である。そこで、セクタ状態領域、データブロック状態領域および鍵ペア状態領域における各状態情報（未使用、使用中、変更中、使用済）については、処理工程に応じて当該領域中の任意のビットを１から０に書きかえて組み合わせを変更し、同一領域内で複数の状態情報を保持するように構成している。
【００２８】
（２）デジタル証明書の管理処理における各記憶領域の状態情報
【００２９】
ここで、本発明に係るデジタル証明書の管理処理にて使用される「状態情報（ステータス）」について詳しく説明する。上述したように、本発明に係るデジタル証明書の管理処理では、セクタの状態については「未使用」「使用中」及び「変更中」の３つの状態情報を用いて、また、データブロック及び鍵ペア情報の各状態については、「未使用」「使用中」「変更中」及び「使用済」の４つの状態情報を用いてそれぞれ管理している。
【００３０】
「未使用」は、該当記憶領域（セクタ、データブロックまたは鍵ペア情報）が未だ使用されていない状態、換言すれば、該当領域にはデータが未だ格納されていない状態を示している。
【００３１】
「使用中」は、該当記憶領域（セクタ、データブロックまたは鍵ペア情報）が使用されている状態、換言すれば、該当領域に有効なデータが格納されている状態を示している。
【００３２】
「使用済」は、該当記憶領域（データブロックまたは鍵ペア情報）の使用が済んだ状態、換言すれば、該当領域に無効なデータが格納されている状態（データが削除された状態）を示している。
【００３３】
「変更中」は、該当記憶領域がデータを記憶している状態であって当該データの変更後のデータを他の領域に記憶する処理が実行されている状態にあることを示す。すなわち、該当記憶領域は、他の記憶領域に記憶されるデータの変更元となるデータを記憶しており、このデータは、他の記憶領域に変更後のデータが記憶される前は有効であるが、他の記憶領域に変更後のデータが記憶されると無効になる。本実施形態におけるデータの変更は、デジタル証明書の通常の処理において同一なデータとして取り扱われるデータが２つの記憶領域に記憶される場合に発生し、変更元のデータと変更後のデータの内容が異なる場合のみならず、変更元のデータと変更後のデータの内容が実質的に同じ場合も含まれる。例えば、古いデジタル証明書を新しいデジタル証明書に変更する場合は、変更元のデータと変更後のデータの内容は異なる。一方、秘密鍵ＣＳＲを秘密鍵に変更するような場合、変更後のデータ（秘密鍵）は変更元のデータ（秘密鍵ＣＳＲ）のコピーであるので、両者は実質的に同じ内容になる。
【００３４】
図４は、本実施形態に係るデジタル証明書の更新処理の主な流れを示すフローチャートである。なお、図４中「ブロック」とあるのは、データブロックの略である。以下、既存のデータの変更後のデータ（新しいデータ）を他の領域に記憶する処理について説明をする。
【００３５】
デジタル証明書管理装置１における制御手段１１は、任意の１のセクタについて「未使用」状態のデータブロックが存在するか否か（すなわち、空き領域があるか否か）をチェックし（Ｓ１０１）、「未使用」状態のデータブロックが存在しないと判断した場合は（Ｓ１０１；Ｎｏ）、セクタを他のセクタに切り替える（Ｓ１０２）。
【００３６】
一方、「未使用」状態のデータブロックが存在すると判断した場合（Ｓ１０１；Ｙｅｓ）、制御手段１１は、変更前のデータが格納されているデータブロックを所定の要件に従って特定し、この特定したデータブロックのブロック状態領域に「変更中」を設定する（Ｓ１０３）。そして、制御手段１１は、「未使用」のデータブロックのブロック状態領域に「使用中」を設定し、データ領域に新たなデータを書き込み、変更前情報領域に変更前のデータが格納されているブロックのブロック番号を書き込む（Ｓ１０４）。制御手段１１は、データを書き込むと、変更前のデータが格納されているデータブロックのブロック状態領域に「使用済」を設定する（Ｓ１０５）。
【００３７】
以上によれば、新たなデータ（変更後のデータ）が格納されているデータブロックのブロック状態は「未使用」から「使用中」となり、変更前のデータが格納されているデータブロックのブロック状態は「使用中」から「使用済」となる。その結果、デジタル証明書の通常処理においては、「使用中」のデータブロック（新たなデータ）が参照され、「使用済」のデータブロック（変更前のデータ）は参照されない。
【００３８】
このようにして、デジタル証明書の登録/更新処理では、処理工程に応じて「未使用、使用中、変更中、使用済」の４つの状態情報が設定され、これらの状態情報は、後述するデジタル証明書の管理処理において参照される。
【００３９】
なお、新たに登録するデータが、すでに記憶されているデータからの変更を伴わない場合には、「未使用」のデータブロックのブロック状態を「使用中」に設定してデータを追加することにより、データの登録が終了する。
【００４０】
（３）デジタル証明書の管理処理
【００４１】
以下、図５〜図７を用いて、デジタル証明書管理装置１の制御手段１１において実行されるデジタル証明書の管理処理を説明する。なお、後述するフローチャートにおける各工程（符号が付与されていない部分的な工程を含む）は処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００４２】
以下に説明するように、本発明にかかるデジタル証明書の管理処理では、異常が発生した場合には、原則的に「変更中」と「使用中」のデータを使って（例外的に「使用済」のデータを使う）、デジタル証明書管理装置を異常が発生する前の状態に戻す（ロールバック）ものであり、かつ、状態情報が「変更中」の記憶領域に記憶され他データを他の状態情報の記憶領域に記憶されたデータよりも優先するというルール（以下、「『変更中』優先ルール」という。）に従って処理を実行するものである。この「変更中」優先ルールによれば、例えば、同じデータについて「変更中」と「使用中」が両方存在する場合は、「変更中」のデータが優先的に登録される。また、鍵ペア情報と他のデータが整合しない場合に、鍵ペア情報が「変更中」の場合は、鍵ペア情報の内容が優先的に維持され、他のデータについて修正変更等が行われる。
【００４３】
さらに、本発明にかかるデジタル証明書の管理処理では、完全にロールバックをする前に、中断されたデジタル証明書の更新処理等を引き継げるか否かを判断し、引き継げると判断した場合は、当該処理を継続実行するように構成されている。具体的には、デジタル証明書の更新処理では、デジタル証明書と秘密鍵を対象とするところ、デジタル証明書は外部の認証局によって作成されインストールされるものであるのに対し、秘密鍵はデジタル証明書管理装置１内に秘密鍵ＣＳＲとして予め記憶されている。
【００４４】
「秘密鍵ＣＳＲ」は、所定の認証局へ提出される証明書要求（ＣＳＲ：Certificate Signing Request）に使用される秘密鍵である。本実施形態では、所定の認証局によって証明書要求が署名されてデジタル証明書が発行されると、秘密鍵ＣＳＲが、この発行されたデジタル証明書とペアになる「秘密鍵」に変更され他のデータブロックに登録されるように構成されている。
【００４５】
そこで、本発明では、エラーがデジタル証明書のインストール後に発生した場合には、デジタル証明書管理装置１には、デジタル証明書と当該デジタル証明書とペアになる秘密鍵のもとである秘密鍵ＣＳＲの双方が存在するため、デジタル証明書管理装置１をインストール処理前の状態に戻す代わりに（すなわち、完全にロールバックをする代わりに）、デジタル証明書管理装置１内に記憶されている秘密鍵ＣＳＲを使用して中断されたデジタル証明書のインストール処理を続行できるか否かを判断するようにしている。
【００４６】
図５に示すデジタル証明書の管理処理は、図４に示すようなデジタル証明書管理装置１におけるデータの更新処理時に異常が発生する等して、デジタル証明書管理装置１が再起動されることにより開始される。まず、制御手段１１は、使用する２つのセクタ（記憶領域）の状態を所定の要件に基づいてチェックし、チェック結果に応じて３つの処理に分岐する（Ｓ２０１）。ここでは、第１の記憶領域としてセクタＮ、第２の記憶領域としてセクタＭを例に説明をする。制御手段１１は、セクタＮ及びＭのセクタ状態領域に、「使用中」と「未使用」が格納されている場合には（Ｓ２０１：「使用中＆未使用」）、「使用中」のセクタを選択する（Ｓ２０２）。
【００４７】
一方、セクタＮ及びＭのセクタ状態領域に、「使用中」と「変更中」または「未使用」と「変更中」が格納されている場合には（Ｓ２０１：「使用中＆変更中」、「未使用＆変更中」）、制御手段１１は、「変更中」優先ルールに従い「変更中」のセクタを選択し、「変更中」でないセクタのデータを消去するとともに、当該セクタのセクタ状態領域に「未使用」を設定する（Ｓ２０３）。
【００４８】
なお、セクタＮ及びＭのセクタ状態領域に格納されているデータが、上記いずれのケースにもあてはまらない場合には、制御手段１１は、２つのセクタＮ、Ｍをそれぞれ初期化し、工場出荷時の状態に戻す（Ｓ２０３）。
【００４９】
次に、制御手段１１は、Ｓ２０２またはＳ２０３にて選択したセクタについて、データ登録処理を開始する（Ｓ２０４）。データ登録処理は、選択したセクタの全てのデータブロックについて行われる。
【００５０】
図６は、データ登録処理の詳細を示すフローチャートである。制御手段１１から呼び出されたデータ登録手段１１１は、セクタから任意の１のデータブロック（以下、「対象データブロック」という。）を読みこみ、この読みこんだデータブロックのブロック状態を所定の要件に基づいて判断し、その判断結果に応じて３つの処理に分岐する（Ｓ３０１）。
【００５１】
すなわち、ブロック状態領域に「変更中」が格納されている場合は（Ｓ３０１；変更中）、対象データブロックのデータブロック番号と、「変更中」のデータがあった旨を、例えばＲＡＭ１０３上の所定の記憶領域（以下、「データ登録領域」という）に登録する（Ｓ３０２）。
【００５２】
一方、データ登録手段１１１は、ブロック状態領域に「使用中」が格納されている場合は（Ｓ３０１；使用中）、次の処理へ進み、ブロック状態領域に「変更中」及び「使用中」以外のデータが格納されている場合は、対象データブロックについての登録処理を終了する（Ｓ３０１；その他）。
【００５３】
次にデータ登録手段１１１は、対象データブロックのデータ種別をチェックし、そのチェックの結果に応じて３つの処理に分岐する（Ｓ３０３）。すなわち、データ登録手段１１１は、対象データブロックのデータ種別領域に「鍵ペア情報」が格納されている場合は（Ｓ３０３；鍵ペア）、鍵ペア情報の登録処理へ分岐し、対象データブロックのデータ種別領域に「鍵ペア以外の情報」が格納されている場合は（Ｓ３０３；鍵ペア以外の情報）、鍵ペア以外の情報の登録処理へ分岐する。なお、「鍵ペア以外の情報」とは、例えば、ルート／中間ＣＡ証明書、自己署名証明書、デバイス証明書、秘密鍵、秘密鍵（ＣＳＲ）などである。
【００５４】
一方、データ登録手段１１１は、対象データブロックのデータ種別領域に「鍵ペア情報」及び「鍵ペア以外の情報」以外のデータが格納されている場合は（Ｓ３０３；その他）、対象データブロックのブロック状態領域に「使用済」を設定し（Ｓ３０７）、対象データブロックについての登録処理を終了する。
【００５５】
次に、「鍵ペア情報以外の情報」の登録処理（Ｓ３０３；鍵ペア以外の情報）ついて説明する。まず、データ登録手段１１１は、チェックサムデータをチェックすることにより、対象データブロックのデータが正常か否かを判断する（Ｓ３０４）。
【００５６】
データ登録手段１１１は、チェックサムデータに基づいて対象データブロックのデータが正常であると判断した場合は（Ｓ３０４；Ｙｅｓ）、次の処理へ移行し、一方、対象データブロックのデータが異常であると判断した場合は（Ｓ３０４；Ｎｏ）、対象データブロックのブロック状態領域に「使用済」を設定し（Ｓ３０７）、対象データブロックについての登録処理を終了する。
【００５７】
一方、チェックサムによるチェックの結果、対象データブロックのデータが正常であると判断した場合（Ｓ３０４；Ｙｅｓ）、データ登録手段１１１は、次に、対象データブロックの変更前情報領域をチェックすることにより対象データブロックのデータが他のデータブロックのデータからの変更であるか否かを判断する（Ｓ３０５）。具体的には、データ登録手段１１１は、対象データブロックの変更前情報領域に格納されているデータブロック番号が、Ｓ３０２にて登録した「変更中」のデータブロック番号と一致する場合は、対象データブロックのデータが他のデータブロックのデータからの変更であると判断し、「変更中」優先ルールに従い、対象データブロックのデータはエラーとして、そのブロック状態領域に「使用済」を設定し（Ｓ３０７）、対象データブロックについての登録処理を終了する。
【００５８】
一方、データ登録手段１１１は、対象データブロックの変更前情報領域に格納されているデータブロック番号が、Ｓ３０２にて登録した「変更中」のデータブロック番号と一致しない場合は（Ｓ３０５；Ｙｅｓ）、対象データブロックのデータに対応する変更中のデータが存在しないと判断し、次の処理へ進む。
【００５９】
変更前情報領域によるチェックの結果、対象データブロックのデータに対応する変更中のデータが存在しないと判断した場合（Ｓ３０５；Ｙｅｓ）、データ登録手段１１１は、対象データブロックのデータをデータ登録領域に登録する（Ｓ３０６）。
【００６０】
次に、Ｓ３０３でデータ種別が「鍵ペア情報」であると判断した場合の処理について説明する。データ登録手段１１１は、対象データブロックのデータ種別領域に「鍵ペア情報」が格納されている場合（Ｓ３０３；鍵ペア）、鍵ペア情報を登録するまで、または、鍵ペア情報がなくなるまで、後述する鍵ペア情報の登録処理を実行する（Ｓ３０８）。
【００６１】
具体的には、データ登録手段１１１は、対象データブロック中の任意の１の鍵ペア情報（以下、「対象鍵ペア情報」という。）について、鍵ペア状態領域をチェックし、そのチェック結果に応じて３つの処理に分岐する（Ｓ３０９）。
【００６２】
まず、データ登録手段１１１は、対象鍵ペア情報の鍵ペア状態領域に「変更中」が格納されている場合は（Ｓ３０９；変更中）、データ登録領域に「変更中」のデータがあった旨を記憶する（Ｓ３１１）。
【００６３】
一方、データ登録手段１１１は、対象鍵ペア情報の鍵ペア状態領域に「使用中」が格納されている場合は（Ｓ３０９；使用中）、次の処理へ進む。
【００６４】
そして、対象鍵ペア情報の鍵ペア状態領域に「変更中」及び「使用中」以外のデータが格納されている場合は（Ｓ３０９；その他）、データ登録手段１１１は、対象鍵ペア情報についての鍵ペア情報登録処理を終了する。この場合、鍵ペア情報は登録されていないので（Ｓ３１５：Ｎｏ）、データ登録手段１１１は、次の鍵ペア情報について鍵ペア情報の登録処理を実行する。
【００６５】
対象鍵ペア情報の鍵ペア状態が「変更中」または「使用中」である場合は、データ登録手段１１１は、対象鍵ペア情報のチェックサムデータをチェックすることにより、鍵ペア情報が正常なデータであるか否かを判断する（Ｓ３１２）。そして、チェックサムデータに基づいて対象鍵ペア情報が正常であると判断した場合は（Ｓ３１２；Ｙｅｓ）、データ登録手段１１１は、対象鍵ペア情報をデータ登録領域に登録する（Ｓ３１３）。対象鍵ペア情報をデータ登録領域に登録すると、データ登録手段１１１は、鍵ペア情報の登録処理のループを抜ける（Ｓ３１５；Ｙｅｓ）。
【００６６】
一方、チェックサムデータに基づいて対象鍵ペア情報が異常であると判断した場合は（Ｓ３１２；Ｎｏ）、データ登録手段１１１は、対象鍵ペア情報の鍵ペア状態領域に「使用済」を設定し（Ｓ３１４）、対象鍵ペア情報についての登録処理を終了する。この場合、対象鍵ペア情報は登録されないので、次の鍵ペア情報について鍵ペア情報の登録処理を続行する（Ｓ３１５；Ｎｏ）。
【００６７】
図５に戻り、データ登録手段１１１は、選択したセクタについて読み込むデータがなくなると、データの登録処理のループを抜け、登録した鍵ペア情報と他のデータ間の整合性を判断する整合性判断処理へ進む。
【００６８】
以上述べたように、データ登録処理では、２つのデータブロックまたは２つの鍵ペア情報領域が「変更中」と「使用中」の対応関係にある場合には、「変更中」の記憶領域を優先してデータを登録するように構成されている。従って、変更前のデータと変更後のデータが存在する場合には、変更前のデータが無効（使用済）になっていないことを条件に、変更前のデータが登録される。
【００６９】
整合性判断手段１１２は、データ登録手段１１１によってデータ登録領域に登録された鍵ペア情報と他のデータ間の整合性を所定の要件に基づいて判断する（Ｓ２０７）。
【００７０】
具体的には、整合性判断手段１１２は、登録した鍵ペア情報にペアとして定義されているデバイス証明書と秘密鍵が、データ登録領域にそれぞれ登録されている場合は、所定の要件を満たすとして鍵ペア情報は整合性があると判断し（Ｓ２０７；Ｙｅｓ）、この鍵ペア情報を確定する（Ｓ２０８）。例えば、登録された鍵ペア情報に、データブロック１（デジタル証明書）とデータブロック２（秘密鍵）がペアとして登録されている場合において、データ登録領域にデータブロック１（デジタル証明書）とデータブロック２（秘密鍵）のデータが登録されている場合は、登録した鍵ペア情報は整合性があると判断される。
【００７１】
一方、整合性判断手段１１２は、登録した鍵ペア情報にペアとして定義されているデバイス証明書と秘密鍵のうち両方または片方が、データ登録領域に存在しない場合は、所定の要件を満たさないとして登録した鍵ペア情報は整合性がないと判断する（Ｓ２０７；Ｎｏ）。例えば、登録された鍵ペア情報に、データブロック１（デジタル証明書）とデータブロック２（秘密鍵）がペアとして登録されている場合に、データ登録領域にデータブロック１（デジタル証明書）しか登録されていない場合は、登録した鍵ペア情報は整合性がないと判断される。
【００７２】
整合性判断手段１１２は、整合性の判断を終えると、判断結果を修正・削除手段１１３に引き渡す。修正・削除手段１１３は、鍵ペア情報は整合性があるとする判断結果を引き継いだ場合は（Ｓ２０７；Ｙｅｓ）、その鍵ペア情報を確定し、一方、鍵ペア情報は整合性がないとする判断結果を引き継いだ場合は（Ｓ２０７；Ｎｏ）、鍵ペア状態領域の状態情報に基づいて、鍵ペア情報と鍵ペア情報以外のデータについて修正、登録、削除を実行する。
【００７３】
鍵ペア情報には整合性がない場合、修正・削除手段１１３は、鍵ペア状態領域に「変更中」が格納されているか否かをチェックし、鍵ペア状態領域に「変更中」が格納されている場合は（Ｓ２０９；Ｙｅｓ）、「変更中」優先ルールに従い、セクタから「使用済」のデータを読み出して登録するか否かを検討する。すなわち、修正・削除手段１１３は、登録した鍵ペア情報にペアとして定義されているデバイス証明書と秘密鍵のうちデータ登録領域に登録されていないデータが、「使用済」のデータブロックに存在する場合は、当該「使用済」のデータブロックのデータを「使用中」の状態でデータ登録領域に登録するとともに、鍵ペア情報を正常な鍵ペアとして確定する。例えば、登録された鍵ペア情報に、データブロック１（デジタル証明書）とデータブロック２（秘密鍵）がペアとして登録されている場合に、データブロック１（デジタル証明書）とデータブロック２（秘密鍵）が「使用済」の状態でセクタＮに記憶されている場合には、データブロック１（デジタル証明書）とデータブロック２（秘密鍵）がペアとして成立することを条件に、データブロック１（デジタル証明書）とデータブロック２（秘密鍵）を「使用中」の状態で登録し、鍵ペア情報を確定する。
【００７４】
一方、修正・削除手段１１３は、鍵ペア状態領域に「変更中」が格納されていない場合は（Ｓ２０９；Ｎｏ）、データ登録領域に登録されているデータに基づいて鍵ペア情報を修正し、この修正した鍵ペア情報を確定する（Ｓ２１１）。具体的には、修正・削除手段１１３は、データ登録領域からペアとして成立するデジタル証明書と秘密鍵のデータを特定し、この特定したデジタル証明書と秘密鍵のデータをペアとして定義するように鍵ペア情報を修正する。例えば、登録された鍵ペア情報に、データブロック３（デジタル証明書）とデータブロック４（秘密鍵）がペアとして登録されている場合に、データ登録領域にはデータブロック３（デジタル証明書）とデータブロック４（秘密鍵）の両方または片方が登録されておらず、かわりにデータブロック１（デジタル証明書）とデータブロック２（秘密鍵）が登録されている場合には、データブロック１（デジタル証明書）とデータブロック２（秘密鍵）がペアとして成立することを条件に、データブロック１（デジタル証明書）とデータブロック２（秘密鍵）をペアとする内容に鍵ペア情報を修正して、修正後の鍵ペア情報を確定する。
【００７５】
修正・削除手段１１３は、鍵ペア情報の確定やデータの登録が終わると、処理継続手段１１５へ処理を引き継ぐ（Ｓ２１２）。図７は、処理継続手段１１５による中断されたデジタル証明書の更新処理の継続処理の流れを示すフローチャートである。
【００７６】
処理継続手段１１５は、中断された処理を引き継げるか否かを判断する（Ｓ４０１）。具体的には、処理継続手段１１５は、データ登録領域に登録されているデータのうちペアとして鍵ペア情報に定義されていないデータを参照し、当該データ中にペアになる可能性があるデータが存在するか否かを判断する（Ｓ４０１）。この判断は、鍵ペア情報に定義されていないデータ（デバイス証明書や秘密鍵ＣＳＲ）に対して、デジタル証明書と秘密鍵の組み合わせを検査する既知のプログラムを実行することにより、判断することができる。
【００７７】
処理継続手段１１５は、データ登録領域に登録されているデータであって鍵ペア情報には定義されていないデータ中に、ペアになる可能性があるデータが存在すると判断した場合は、中断された処理を引き継げると判断し（Ｓ４０１；Ｙｅｓ）、ペアになる可能性があるデータをペアが成立するように修正する（Ｓ４０２）。具体的には、処理継続手段１１５は、秘密鍵ＣＳＲとデジタル証明書のペアを発見した場合には、秘密鍵ＣＳＲを秘密鍵に修正する。
【００７８】
処理継続手段１１５は、Ｓ２０８、Ｓ２１０またはＳ２１１において確定した鍵ペア情報を、修正したデータに基づく新たなペア情報を定義するように修正する（Ｓ４０３）。すなわち、処理継続手段１１５は、秘密鍵ＣＳＲから修正された秘密鍵とデジタル証明書をペアとして鍵ペア情報に定義する。これにより、処理継続手段１１５は、継続処理を終了し、修正・削除手段１１３に処理を引き継ぐ。
【００７９】
一方、処理継続手段１１５は、データ登録領域に登録されているデータであって鍵ペア情報には定義されていないデータ中に、ペアになる可能性があるデータが存在しないと判断した場合は、中断された処理を引き継げないと判断し（Ｓ４０１；Ｎｏ）、継続処理を終了する。
【００８０】
図５に示すように、修正・削除手段１１３は、デジタル証明書の更新処理の継続処理が終わると、不要データの削除処理を行う。不要データの削除処理は、データ登録領域に登録されている鍵ペア情報以外のデータについて、他のデータとの整合性を所定の要件に基づいて判断し、他のデータとの整合性がないと判断した場合は、当該データを不要なデータと判断して、そのブロック状態領域に「使用済」を設定する（Ｓ２１２）。
【００８１】
整合性の判断処理における所定の要件には、例えば、対象となるデータのペアが存在しない場合や、ペアが存在する場合でもペアとして鍵ペア情報に定義されていない場合などが該当する。従って、デジタル証明書が登録されているが、当該デジタル証明書に対応する秘密鍵が登録されていないような場合には、修正・削除手段１１３は、デジタル証明書の整合性が維持されていないと判断し、デジタル証明書のブロック状態領域に「使用済」を設定する。
【００８２】
修正・削除手段１１３は、データの修正および削除を終えると、データ書込手段１１４に処理を引き継ぐ。データ書込手段１１４は、データ登録領域を参照して「変更」があったか否かをチェックし（Ｓ２１３）、「変更」があったことを示すデータが記憶されている場合は（Ｓ２１３；Ｙｅｓ）、セクタを切り替えてデータの書き込み処理を実行する（Ｓ２１４）。
【００８３】
データ書込手段１１４は、Ｓ２０２及びＳ２０３にて選択されなかった「未使用」のセクタに、データ登録領域に登録されている鍵ペア情報（確定）及び鍵ペア情報以外のデータを「使用中」の状態で書き込み（すなわち、該当する鍵ペア情報領域とブロック状態領域に「使用中」を設定する）、データを読み出した元のセクタ（Ｓ２０２及びＳ２０３にて選択されたセクタ）のセクタ状態領域に「使用済」を設定する（Ｓ２１４）。
【００８４】
一方、データ登録領域に「変更」があったことを示すデータが記憶されていない場合は（Ｓ２１３；Ｎｏ）、データ書込手段１１４は、そのまま処理を終了する。
【００８５】
（４）デジタル証明書管理装置の動作例
（４−１）デバイス証明書が正常にインストールされた場合
【００８６】
以下、上述したデジタル証明書管理処理を実行するデジタル証明書管理装置１の動作について、所定の認証局から受け取ったデバイス証明書をデジタル証明書管理装置１にインストールする途中で異常が発生した場合を例に説明する。図８は、デバイス証明書のインストール前後におけるデータ構成を説明する図である。図９は、デバイス証明書のインストール前後における、各記憶領域（セクタ、データブロック及び鍵ペア情報）の状態情報の遷移を説明する図である。
【００８７】
図８に示すように、デバイス証明書のインストール前の状態では、セクタＮのデータブロック０〜３には、それぞれ「鍵ペア情報」、「自己署名証明書」、「自己署名証明書の秘密鍵」及び「秘密鍵ＣＳＲ」がそれぞれ「使用中」の状態で格納されている。また、データブロック０には、鍵ペア情報０に「データブロック１（自己署名証明書）とデータブロック２（秘密鍵）」がペアであることを示す情報が「使用中」の状態で格納されている。
【００８８】
所定の認証局によってデバイス証明書が発行されると、当該デバイス証明書のインストール処理が開始される。以下に、正常にデバイス証明書のインストール処理が実行された場合の工程を示す（図９（Ａ）参照）。
（工程I）データブロック３のブロック状態領域に「変更中」を設定する。
（工程II）鍵ペア情報０の鍵ペア状態領域に「変更中」を設定する。
（工程III）データブロック４のブロック状態領域に「使用中」を設定し、データ領域に、
デバイス証明書を書き込む。
（工程IV）データブロック５のブロック状態領域に「使用中」を設定し、データ領域に、
データブロック３から読み込んだ秘密鍵ＣＳＲ（変更元のデータ）を秘密鍵（変更後のデータ）として書き込み、変更内容領域に、データブロック３のブロック番号を書き込む。
（工程V）鍵ペア情報１の鍵ペア状態領域に「使用中」を設定し、データブロック０と１
およびデータブロック４と５を、それぞれペアとして書き込む。
（工程VI）鍵ペア情報０の鍵ペア状態領域に「使用済」を設定する。
（工程VII）データブロック３のブロック状態領域に「使用済」を設定する。
【００８９】
このように正常にデバイス証明書のインストール処理が実行された場合には、鍵ペア情報、デバイス証明書及び秘密鍵の間の整合性が維持される。しかし、上記工程のどこかで電源ＯＦＦ等の異常が発生した場合には、データ間の整合性が維持されていない場合がある。従って、電源ＯＦＦ等の異常によりデジタル証明書管理装置１が再起動されると、図５に示すデジタル証明書管理処理が自動的に実行される。
（４−２）デバイス証明書インストール時に異常が発生した場合（１）
【００９０】
まず、上述したデバイス証明書のインストール（登録）工程のうち、工程IIと工程IIIの間に異常が発生した場合について説明する（図９（Ｂ）参照）。
【００９１】
まず、制御手段１１は、セクタＮとセクタＭの状態をチェックする（Ｓ２０１）。図９（Ｂ）によれば、対象時点において、セクタＮは「使用中」、セクタＭは「未使用」である。よって、制御手段１１は、「使用中」のセクタＮを選択し（Ｓ２０２）、セクタＮについてデータ登録処理を実行する（Ｓ２０４、Ｓ２０５）。
【００９２】
データ登録手段１１１は、データブロック０からデータを読み出して、ブロック状態をチェックする（Ｓ３０１）。図９（Ｂ）によれば、データブロック０は「使用中」であるので、データ登録手段１１１は、データ種別の判別を行う（Ｓ３０３）。データブロック０のデータ種別領域には鍵ペア情報が格納されているので、鍵ペア情報の登録処理へ分岐する（Ｓ３０３、Ｓ３０８）。
【００９３】
図９（Ｂ）によれば、鍵ペア情報０の鍵ペア状態は「変更中」であるので、データ登録手段１１１は、「変更」があった旨をデータ登録領域に格納し（Ｓ３１１）、チェックサムの判定結果が正常であるとして（Ｓ３１２）、鍵ペア情報０の内容をデータ登録領域に登録する（Ｓ３１３）。これにより鍵ペア情報が登録されるので、ループを抜ける。
【００９４】
データ登録手段１１１は、データブロック１及び２について読み込み処理を実行し、データ種別の判別において「鍵ペア以外の情報」の処理へ分岐する。データブロック１及び２は、他のデータブロックから変更されたデータを記憶していないので、チェックサムの判定結果（Ｓ３０４）及び変更前情報の判定結果は正常となり（Ｓ３０５）、データ登録手段１１１は、データブロック１及び２の内容をデータ登録領域に登録する（Ｓ３０６）。
【００９５】
次に、データ登録手段１１１は、データブロック３について読み込み処理を実行すると、ブロック状態は「変更中」であるので、データブロック３と「変更」があった旨をデータ登録領域に格納し（Ｓ３０２）、データ種別の判別において「鍵ペア以外の情報」の処理へ分岐する。データブロック３は、他のデータブロックから変更されたデータを記憶していないので、チェックサムの判定結果（Ｓ３０４）及び変更前情報の判定結果は正常となり（Ｓ３０５）、データ登録手段１１１は、データブロック３の内容をデータ登録領域に登録する（Ｓ３０６）。
【００９６】
次に、データ登録手段１１１は、データブロック４について読み込み処理を実行すると、ブロック状態は「未使用」なので、何もしない（Ｓ３０１；その他）。
【００９７】
データ登録手段１１１は、データブロック５まで読みこむと、読み込むデータがなくなったので、データ登録処理を終了する。
【００９８】
次に、整合性判断手段１１２は、登録した鍵ペア情報０と、データブロック１（自己署名証明書）、データブロック２（秘密鍵）、データブロック３（秘密鍵ＣＳＲ）との整合性をチェックする（Ｓ２０７）。ここで、鍵ペア情報０には、データブロック１とデータブロック２がペアとして記録されているため、整合性判断手段１１２は、鍵ペア情報０の整合性は維持されていると判断する。
【００９９】
そして、修正・削除手段１１３は、鍵ペア情報０の整合性は維持されているので、鍵ペア情報０の内容を確定する（Ｓ２０８）。
【０１００】
次に、処理継続手段１１５は、所定のプログラムを実行することにより、登録されているデータであって鍵ペア情報に定義されていないデータ中に、ペアになる可能性のあるデータがあるか否かをチェックする（Ｓ４０１）。登録されているデータ中、データブロック１（自己署名証明書）とデータブロック２（秘密鍵）はすでにペアとして登録されているのでチェックの対象外となる。一方、データブロック３（秘密鍵ＣＳＲ）は、チェック対象であるが、ペアとなるデバイス証明書がインストールされていないため、登録されていない。よって、処理継続手段１１５は、ペアになる可能性があるデータが存在しない（すなわち、処理を引き継げない）と判断し、継続処理を終了する（Ｓ４０１；Ｎｏ）。
【０１０１】
次に、修正・削除手段１１３は、登録されているデータ（データブロック１〜３）間の整合性をチェックすると、整合性が維持されないデータは存在しないので、何もしない（Ｓ２１２）。
【０１０２】
次に、データ書込手段１１４は、「変更」があったか否かの判断分岐では、Ｓ３１１とＳ３１３で「変更」があった旨が記憶されているため、「変更」があったと判断し、セクタ切り替え処理を実行する（Ｓ２１４）。すなわち、状態が「未使用」のセクタＭに、データ登録領域に確定登録されている鍵ペア情報と登録されているデータブロック１とデータブロック２を「使用中」の状態で書き込み、セクタＮのセクタ状態領域に「使用済」を設定する（Ｓ２１４）。
【０１０３】
以上によれば、デバイス証明書のインストール中（工程IIと工程IIIの間）に異常が発生したためセクタＮのデータ間の整合性が崩れた場合でも、本発明に係るデジタル証明書管理処理の実行によって、デバイス証明書のインストールを実行する前の状態がセクタＭに実現され（ロールバック）、これにより、データ間の整合性が維持されることになる。上記ケースのようにデバイス証明書をインストールする前に異常が発生した場合には、状態情報が変わっただけで、更新対象であるデータ（デバイス証明書）が存在しないため、更新処理は引き継げず、その結果、ロールバックを行うことなる。
【０１０４】
（４−３）デバイス証明書インストール時に異常が発生した場合（２）
【０１０５】
次に、上述したデバイス証明書のインストール工程のうち、工程IV以降に異常が発生し
た場合について説明する（図９（Ｃ）参照）。
【０１０６】
なお、セクタ状態のチェック（Ｓ２０１）からデータブロック３の登録処理（Ｓ２０５）までは、「（４−２）デバイス証明書インストール時に異常が発生した場合（１）」における処理の流れと一緒であるので、説明を省略する。
【０１０７】
次に、データ登録手段１１１は、データブロック４について読み込み処理を実行すると、ブロック状態は「使用中」なので、データ種別の判別において「鍵ペア以外の情報」の処理へ分岐する。データブロック４は、他のデータブロックから変更されたデータを記憶していないので、チェックサムの判定結果（Ｓ３０４）及び変更前情報の判定結果が正常である場合は（Ｓ３０５）、データブロック４の内容を登録する（Ｓ３０６）。なお、処理工程IIIの途中で異常が発生した場合には、チェックサムの判定結果がエラーとなり得るので、その場合には、データブロック４のブロック状態は「使用済」に変更され、データブロック４は、登録されない。
【０１０８】
次に、データ登録手段１１１は、データブロック５について読み込み処理を実行すると、ブロック状態は「使用中」なので、データ種別の判別において「鍵ペア以外の情報」の処理へ分岐する。ここで、データブロック５は、他のデータブロックから変更されたデータを記憶しているので、チェックサムの判定結果（Ｓ３０４）が正常であっても、変更前情報の判定結果が異常となる（Ｓ３０５）。その結果、データブロック５のブロック状態は「使用済」に変更され、登録されない。すなわち、データブロック５の「デバイス証明書の秘密鍵」はデータブロック３の「秘密鍵ＣＳＲ」を変更したものであるから、データブロック５の「変更前情報」にはデータブロック３の情報が格納されているところ、この番号は、Ｓ３０２にて記憶されている番号（データブロック３）と一致する。そのため、変更前情報の判定処理ではエラーとなる。なお、処理工程IVの途中で異常が発生した場合
には、チェックサムの判定結果がエラーとなるので、データブロック５のブロック状態は「使用済」に変更され、登録されない。
【０１０９】
データブロック５まで読みこむと、データ登録手段１１１は、読み込むデータがなくなったので、データブロック読み込み処理を終了する。
【０１１０】
整合性判断手段１１２は、登録したデータブロック０の鍵ペア情報０と、データブロック１（自己署名証明書）、データブロック２（秘密鍵）、データブロック３（秘密鍵ＣＳＲ）、データブロック４（デバイス証明書）との整合性をチェックする（Ｓ２０７）。ここで、鍵ペア情報０には、データブロック１とデータブロック２がペアとして記録されているところ、データブロック１及びデータブロック２は登録されており、かつ、データブロック１及びデータブロック２はペアとして成立するため、整合性は維持されていると判断する（Ｓ２０７；Ｙｅｓ）。修正・削除手段１１３は、整合性が維持されているので、この鍵ペア情報をデータ登録領域に確定登録する（Ｓ２０８）。
【０１１１】
次に、処理継続手段１１５は、所定のプログラムを実行することにより、登録されているデータであってペア情報に定義されていないデータの中に、ペアになる可能性のあるデータがあるか否かをチェックする。登録データ中、データブロック１（自己署名証明書）とデータブロック２（秘密鍵）はすでにペアとして登録されているのでチェックの対象外となる。一方、ペア情報に定義されていないデータブロック３（秘密鍵ＣＳＲ）とデータブロック４（デバイス証明書）はペアになる可能性があると判断する（Ｓ４０１）。そこで、処理継続手段１１５は、処理を引き継げると判断し、データブロック３の「秘密鍵ＣＳＲ」を「秘密鍵」として再登録し、データブロック３とデータブロック４をペアとして鍵ペア情報の内容を更新する（Ｓ４０３）。これにより、鍵ペア情報には、デバイス証明書のインストール処理が正常に実行された場合と同様、データブロック１と２、データブロック３と４がペアとして定義されることになる。
【０１１２】
次に、修正・削除手段１１３は、登録されているデータ（データブロック１〜４）間の整合性をチェックすると、不要な情報は存在しないと判断し、何もしない（Ｓ２１２）。
【０１１３】
次に、データ書込手段１１４は、「変更」があったか否かの判断分岐では、Ｓ３１１とＳ３１３で「変更」があった旨が記憶されているため、「変更」があったと判断し、セクタ切り替え処理を実行する（Ｓ２１４）。すなわち、状態が「未使用」のセクタＭに、データ登録領域に確定登録されている鍵ペア情報と登録されているデータブロック１〜４を「使用中」の状態で書き込み、セクタＮのセクタ状態領域に「使用済」を設定する（Ｓ２１４）。
【０１１４】
以上によれば、デバイス証明書のインストール中（工程IV以降）に異常が発生したため
、インストール処理が中断された場合でも、本発明に係るデジタル証明書管理処理の実行によって中断されたインストール処理が継続され、その結果、デバイス証明書のインストールが正常に実行された場合の状態がセクタＭに実現される。これにより、デバイス証明書のインストール処理を再度実行する必要がなくなる。
【０１１５】
（５）その他の実施形態
【０１１６】
本発明は上記実施形態に限定されることなく、種々に変形して適用することが可能である。例えば、上記フローチャート中の各工程（符号が付与されていない部分的な工程を含む）は、処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【０１１７】
上記実施形態では、デジタル証明書管理装置１に認証局から認証されたデバイス証明書をインストールする工程で異常が発生した場合について説明したが、本発明はこれに限られず、デジタル証明書管理装置１における他の処理（例えば、データの削除処理）において何らかの異常が発生した場合にも適用することが可能である。
【０１１８】
上記実施形態では、デジタル証明書管理装置１におけるエラー発生後の再起動時に本発明に係るデジタル証明書管理処理を実行する場合について説明したが、デジタル証明書管理処理を実行するタイミングはこれに限られない。例えば、定期的に、あるいは入力インタフェース１０５を介して入力されるユーザの指示に基づいて実行するようにしてもよい。
【０１１９】
また、上記実施形態では、記憶手段としてフラッシュＲＯＭの構造を採用したが、本発明はこれに限られず、例えば、ＥＥＰＲＯＭのような再書き込み可能な不揮発性メモリ全般に対してこれを適用することが可能である。
【０１２０】
また、上記実施形態では、データブロック及び鍵ペア情報の状態を管理するために４つの状態情報を用いたが、本発明はこれに限られず、データを記憶する記憶領域の変更元と変更後の対応関係がわかるようなものであれば、これを適用することが可能である。また、データを記憶する記憶領域の変更元と変更後の対応関係がわかる構成であれば、状態情報は４つより少なくてもよいし、また、４つよりも多くてもよい。
【図面の簡単な説明】
【０１２１】
【図１】本実施形態に係るデジタル証明書管理装置の概略構成を示すブロックダイアグラムである。
【図２】本実施形態に係るデジタル証明書管理装置のハードウェア構成を示すブロック図である。
【図３】本実施形態に係るデジタル証明書管理装置の記憶手段のデータ構成の一例を示す図である。
【図４】本実施形態に係るデジタル証明書の登録処理の主な流れを示すフローチャートである。
【図５】本実施形態に係るデジタル証明書の管理処理の主な流れを示すフローチャートである。
【図６】本実施形態に係るデータ登録処理の詳細を示すフローチャートである。
【図７】本実施形態に係る中断した処理の継続処理の詳細を示すフローチャートである。
【図８】デバイス証明書のインストール前後におけるデータ構成を説明する図である。
【図９】デバイス証明書のインストール前後における、セクタ、データブロック及び鍵ペアの状態を説明する図である。
【符号の説明】
【０１２２】
１…デジタル証明書管理装置、１１…制御手段、１２…記憶手段、１０１…ＣＰＵ、１０２…ＲＯＭ、１０３…ＲＡＭ、１０４…外部記憶装置、１０５…入力インタフェース、１０６…出力インタフェース、１０７…通信インタフェース、１１１…データ登録手段、１１２…整合性判断手段、１１３…修正・削除手段、１１４…データ書込手段、１１５…処理継続手段
【図１】
2009212896.tif 000003
【図２】
2009212896.tif 000004
【図３】
2009212896.tif 000005
【図４】
2009212896.tif 000006
【図５】
2009212896.tif 000007
【図６】
2009212896.tif 000008
【図７】
2009212896.tif 000009
【図８】
2009212896.tif 000010
【図９】
2009212896.tif 000011