(57)【要約】【課題】証明書の失効状態検証処理を効率的に行うことができる証明書検証システム装置を提供する。【解決手段】証明書検証システム装置２００は、認証局３２０のリポジトリ装置３００からＣＲＬ３１１を取得し、ＣＲＬ３１１の記載事項に基づき、認証局３２０が次にＣＲＬ３１１を発行する時刻を推測し、当該時刻の直後に自動的にＣＲＬ３１１の取得処理を行う。証明書検証システム装置２００は、証明書検証要求電文Ａ１０１を受理した場合に、証明書Ａ１０２の失効状態を確認する必要が生じた際のネットワークアクセス処理および当該処理にかかる待ち時間を不要とすることで、証明書Ａ１０２の失効状態の検証にかかる時間を低減することができる。【選択図】図１
2011120137.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して受信される証明書の有効性検証要求電文に対して、前記証明書の失効状態が記載された証明書失効リストであるＣＲＬを前記ネットワークを介して接続されるリポジトリ装置から取得し、または、事前に取得し記憶部に格納されたＣＲＬを参照し、前記証明書の失効された事実が記載されていないことを検証する処理部を備える証明書検証システム装置であって、
前記記憶部には、前記ＣＲＬ毎に、過去に取得したＣＲＬの発行時刻、証明書が失効された失効時刻の情報が記載されたＣＲＬ配布点情報が記憶されており、
前記処理部は、前記ＣＲＬ配布点情報に基づいて、定期的に発行されるＣＲＬおよび不定期に発行されるＣＲＬの、次回の発行時刻を予測し、予測した発行時刻にＣＲＬの取得を行い、前記ＣＲＬ配布点情報を更新する
ことを特徴とする証明書検証システム装置。
【請求項２】
前記処理部は、前記次回の発行時刻の予測を、前記ＣＲＬを作成した認証局が、これまでにＣＲＬを作成した日時の履歴情報、ならびに、該ＣＲＬに含まれる証明書の失効操作を認証局が行った日時の履歴情報、に基づき行う
ことを特徴とする請求項１に記載の証明書検証システム装置。
【請求項３】
前記処理部は、前記履歴情報に含まれる、日時の組の群を、日付の特性に基づき分類し、当日の所定時刻から前記発行時刻までの経過時間を第１の軸に表すとともに、前記発行時刻が、該分類の結果の中で何番目に出現したかを表す数値を第２の軸に表す二次元平面上に配置し、前記配置された前記発行時刻を近似する近似線を導出し、該近似線を用いて、前記ＣＲＬの次回の発行時刻を予測する
ことを特徴とする請求項２に記載の証明書検証システム装置。
【請求項４】
ネットワークを介して受信される証明書の有効性検証要求電文に対して、前記証明書の失効状態が記載された証明書失効リストであるＣＲＬを前記ネットワークを介して接続されるリポジトリ装置から取得し、または、事前に取得し記憶部に格納されたＣＲＬを参照し、前記証明書の失効された事実が記載されていないことを検証する処理部を備える証明書検証システム装置において、認証局から発行されるＣＲＬの次回の発行時刻を予測し取得する証明書失効リスト取得方法であって、
前記記憶部には、前記ＣＲＬ毎に、過去に取得したＣＲＬの発行時刻、証明書が失効された失効時刻の情報が記載されたＣＲＬ配布点情報が記憶されており、
前記処理部は、前記ＣＲＬ配布点情報に基づいて、定期的に発行されるＣＲＬおよび不定期に発行されるＣＲＬの、次回の発行時刻を予測し、予測した発行時刻にＣＲＬの取得を行い、前記ＣＲＬ配布点情報を更新する
ことを特徴とする証明書失効リスト取得方法。
【請求項５】
前記処理部は、前記次回の発行時刻の予測を、前記ＣＲＬを作成した認証局が、これまでにＣＲＬを作成した日時の履歴情報、ならびに、該ＣＲＬに含まれる証明書の失効操作を認証局が行った日時の履歴情報、に基づき行う
ことを特徴とする請求項４に記載の証明書失効リスト取得方法。
【請求項６】
前記処理部は、前記履歴情報に含まれる、日時の組の群を、日付の特性に基づき分類し、当日の所定時刻から前記発行時刻までの経過時間を第１の軸に表すとともに、前記発行時刻が、該分類の結果の中で何番目に出現したかを表す数値を第２の軸に表す二次元平面上に配置し、前記配置された前記発行時刻を近似する近似線を導出し、該近似線を用いて、前記ＣＲＬの次回の発行時刻を予測する
ことを特徴とする請求項５に記載の証明書失効リスト取得方法。
【請求項７】
請求項４から請求項６のいずれか１項に記載の証明書失効リスト取得方法をコンピュータに実行させるための証明書失効リスト取得プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、公開鍵認証基盤（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ；以下、「ＰＫＩ」と記述する。）において、証明書の失効状態を確認するのに好適な技術に関する。
【背景技術】
【０００２】
政府認証基盤（Ｇｏｖｅｒｎｍｅｎｔ  ＰＫＩ；以下、「ＧＰＫＩ」と記述する。）をはじめとして、電子文書の作成者を明らかにし、かつ、当該電子文書が改ざんされていないことを保証するために、ＰＫＩを利用したシステムが普及してきている。ＰＫＩを利用したシステムでは、電子文書に対して、電子署名を行う者（以下、「署名者」と記述する。）のみが保有する、秘密鍵と呼ばれるビット列によって電子署名が施される。電子署名が施された電子文書を受信した場合には、電子署名を検証することで、電子文書の作成者および当該電子文書が改ざんされていないことを確認する。
【０００３】
電子署名の検証を行うためには、認証局が発行した、署名者の公開鍵証明書（以下、「証明書」と記述する。）に含まれている、公開鍵と呼ばれるビット列によって、当該電子署名を検証するだけではなく、前記署名者の証明書が、認証局によって失効されているか否か（以下、「証明書の失効状態」と記述する。）を確認する必要がある。
【０００４】
証明書の失効状態を確認するには、認証局が発行する証明書失効リスト（Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｖｏｃａｔｉｏｎ  Ｌｉｓｔ；以下、「ＣＲＬ」と記述する。）等が利用される。ＣＲＬには、当該認証局が失効した証明書のシリアル番号のリストが記載されている。検証者は、認証局のリポジトリ装置にアクセスして取得したＣＲＬに、当該証明書のシリアル番号が記載されているか否かを確認し、記載されている場合、当該証明書は認証局によって失効されており、もはや有効ではないものとして扱う。
【０００５】
ＣＲＬをリポジトリ装置から取得する操作を、いつ実施するかは、検証者が任意に設定することができる。ＣＲＬを事前に取得し、検証者の記憶域に保持し、検証の際は、そのＣＲＬを参照することもできる。ただしＣＲＬには有効期限が設定されており、検証者は、証明書検証を行う場合、検証を実行する時点で有効期限が終了していないＣＲＬを参照しなければならない。ＣＲＬの有効期限は、ＣＲＬ自身に記載されている。
【０００６】
認証局は、直前に発行したＣＲＬの有効期限が終了する前に、新しい有効期限を記載したＣＲＬを新規発行し、リポジトリ装置で公開し、いつの時点においても、検証者が、有効期限の終了していないＣＲＬを利用可能な状態を維持する。ただし認証局は、新規に証明書を失効した場合、当該証明書のシリアル番号を新規に追記したＣＲＬを、前回発行したＣＲＬの有効期限が終了しているか否かに関わらず、臨時に発行することがある。この場合に備え、検証者は、記憶域に保持したＣＲＬの有効期限が終了していない場合であっても、さらに直近に発行されたＣＲＬが存在しないか否かについて、リポジトリ装置を参照するよう努めることが望ましい。
【０００７】
ＣＲＬを参照することによって証明書の失効状態を確認する手法には、検証者自身が証明書の失効状態を確認するエンドエンティティモデルと、検証者に代わってオンラインで証明書の失効状態を確認する機能を提供する証明書検証システム装置を利用する証明書検証サーバモデルがある。証明書検証サーバモデルの仕様は非特許文献２に記述されている。なお、非特許文献１，３，４は、実施形態の説明の中で参照する。
【０００８】
証明書検証サーバモデルは、エンドエンティティモデルに比べて、次のような利点がある。まず、証明書検証サーバモデルでは、ＣＲＬの取得動作を、それぞれのクライアント上で行う必要がなく、証明書検証システム装置上で一度だけ行うだけで済むため、リポジトリ装置およびネットワークに与える負荷を削減することができる。また、クライアントは証明書検証システム装置の結果を信頼するため、証明書検証システム装置の設定を変更するだけで、証明書検証サービスの構成を柔軟に変更できる。
【０００９】
しかしながら、証明書検証システム装置が、証明書の失効状態の確認を行う必要が生じる毎に、認証局からＣＲＬを取得するのは効率が悪いため、特許文献１では、証明書検証システム装置がＣＲＬを自身の記憶域に保持することにより証明書の有効性確認処理を高速化する技術が開示されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００２−７２８７６号公報
【非特許文献】
【００１１】
【非特許文献１】Internet X.509 Public Key Infrastructure Certification Path Building (RFC4158),「2. Certification Path Building」,2005年9月,[online],[平成21年6月16日検索],インターネット＜URL:http://www.ietf.org/rfc/rfc4158.txt＞
【非特許文献２】Internet X.509 Public Key Infrastructure, Certificate and Certificate Revocation List (CRL) Profile (RFC5280),「6. Certificate Path Validation」,2008年5月, [online],[平成21年6月16日検索],インターネット＜URL:http://www.ietf.org/rfc/rfc5280.txt＞
【非特許文献３】Abstract Syntax Notation One (ASN.1) Recommendations (X.680),2002年7月,[online],[平成21年8月31日検索],インターネット＜URL:http://www.itu.int/ITU-T/studygroups/com17/languages/＞
【非特許文献４】FIPS PUB 180-1 Secure Hash Standard, 1995年4月,[online],[平成21年8月31日検索],インターネット＜URL:http://www.itl.nist.gov/fipspubs/fip180-1.htm＞
【発明の概要】
【発明が解決しようとする課題】
【００１２】
証明書の失効状態の確認処理の中で、認証局のリポジトリ装置からＣＲＬを取得するためのネットワークアクセスが必要となるが、これは通信途上のネットワーク機器の負荷等、予測が困難な要素によって大きな遅延を伴う可能性があるため、証明書検証システム装置にとって時間のかかる処理となり、結果として、証明書検証サーバを利用するクライアントの待ち時間を増大させる恐れがある。
【００１３】
特許文献１では、証明書検証サーバが、証明書の有効性確認処理毎にＣＲＬを取得する必要がないように、初めて取得したＣＲＬを記憶域に保持し、以後の有効性確認処理において、当該ＣＲＬの有効期限が終了しない限り、保持したＣＲＬを再利用する機能が記述されている。しかし、保持したＣＲＬを更新するタイミングについては、ＣＲＬの有効期限の長さに基づいて、機械的に、一律の値を設定することとされており、認証局で行われる証明書の失効処理に伴う、ＣＲＬの臨時発行を予測または検知し、当該ＣＲＬを速やかに取得する機能については記述されていない。そのため、臨時発行されたＣＲＬを速やかに取得できず、クライアントに、最新の失効情報に基づいた回答を行えない可能性がある。ＣＲＬの記憶域への保持を行わず、クライアントからの処理要求を受け取ってから、リポジトリ装置からのＣＲＬ取得をその都度行うことも可能であるが、クライアントの待ち時間を延ばすこととなり、証明書検証サービスの品質を低下させる問題があった。
【００１４】
本発明は、前記課題に鑑みてなされたものであり、証明書の失効状態検証処理を効率的に行うことができる証明書検証システム装置、証明書失効リスト取得方法、および証明書失効リスト取得プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
前記目的を達成するため、証明書検証システム装置は、ネットワークを介して受信される証明書の有効性検証要求電文に対して、証明書の失効状態が記載された証明書失効リストであるＣＲＬをネットワークを介してリポジトリ装置から取得し、または、事前に取得し記憶部（例えば、外部記憶装置２１６）に格納されたＣＲＬを参照し、証明書の失効された事実が記載されていないことを検証する処理部（例えば、ＣＰＵ２１１）を備える。記憶部には、ＣＲＬ毎に、過去に取得したＣＲＬの発行時刻、証明書が失効された失効時刻の情報が記載されたＣＲＬ配布点情報が記憶されており、処理部は、ＣＲＬ配布点情報に基づいて、定期的に発行されるＣＲＬおよび不定期に発行されるＣＲＬの、次回の発行時刻を予測し、予測した発行時刻にＣＲＬの取得を行い、ＣＲＬ配布点情報を更新することを特徴とする。
【００１６】
次回の発行時刻の予測の処理は、予め該時刻の履歴を日付の特性（例えば曜日等）に基づき複数個の集合に分類し、該分類結果ごとに個々に実施することを特徴とする。
【００１７】
証明書検証システム装置は、予測した発行時刻にＣＲＬの取得を行うことで、証明書の有効性確認の際に、その都度ＣＲＬ取得のためリポジトリ装置にネットワークアクセスをすることなく、あらかじめ更新された記憶部のＣＲＬを用いて、失効状態の確認を行うので、証明書の失効状態確認処理を高速に、かつ、より最新の情報に基づいて行うことができる。
【００１８】
また、次回の発行時刻の予測の処理を、日付の特性（曜日等）ごとに、個々に実施することで、認証局の運用実態、すなわち認証局が組織として計画しているＣＲＬ発行のタイミングに沿った予測を行うことができ、より実際の発行時刻との誤差が少ない時刻を、予測することができる。これは、業務組織であるところの認証局が、日付の特性に沿った運用規則（例えば「ＣＲＬの発行を、毎週水曜に実行する」「土曜・日曜は、ＣＲＬの発行を行わない」等）を採用している可能性が高い、という前提に基づいている。
【発明の効果】
【００１９】
本発明によれば、証明書の失効状態検証処理を効率的に行うことができる。
【図面の簡単な説明】
【００２０】
【図１】本実施形態に係る証明書検証システム装置の構成を示す図である。
【図２】証明書検証システム装置のハードウェア構成を示す図である。
【図３】証明書検証システム装置の初期設定を行う画面の例を示す図である。
【図４】証明書検証部の詳細を示すフローチャートである。
【図５】ＣＲＬ取得部の詳細を示すフローチャートである。
【図６】ＣＲＬ解析部の詳細を示すフローチャートである。
【図７】同じく、ＣＲＬ解析部の詳細を示すフローチャートである。
【図８】同じく、ＣＲＬ解析部の詳細を示すフローチャートである。
【図９】時刻推測部の詳細を示すフローチャートである。
【図１０】証明書検証システム装置のメモリに格納されるプログラム、変数の例を示す図である。
【図１１】最小二乗法パラメタ導出部の詳細を示すフローチャートである。
【図１２】スケジュール管理部の詳細を示すフローチャートである。
【図１３】ＣＲＬ解析部から呼び出される別処理の詳細を示すフローチャートである。
【図１４】同じく、ＣＲＬ解析部から呼び出される別処理の詳細を示すフローチャートである。
【図１５】同じく、ＣＲＬ解析部から呼び出される別処理の詳細を示すフローチャートである。
【図１６】時刻推測部から呼び出される別処理の詳細を示すフローチャートである。
【図１７】同じく、時刻推測部から呼び出される別処理の詳細を示すフローチャートである。
【図１８】同じく、時刻推測部から呼び出される別処理の詳細を示すフローチャートである。
【図１９】同じく、時刻推測部から呼び出される別処理の詳細を示すフローチャートである。
【図２０】同じく、時刻推測部から呼び出される別処理の詳細を示すフローチャートである。
【図２１】ＣＲＬ配布点テーブルのデータ構造を示す図である。
【図２２】発行履歴エントリのデータ構造を示す図である。
【図２３】パラメタテーブルのデータ構造を示す図である。
【図２４】失効証明書一覧エントリのデータ構造を示す図である。
【図２５】配列変数「事象日付分類」のデータ構造を示す図である。
【図２６】配列変数「近似パラメタ一覧」のデータ構造を示す図である。
【図２７】配列変数「日付リスト」のデータ構造を示す図である。
【図２８】配列変数「日付分類内の事象リスト」のデータ構造を示す図である。
【図２９】配列変数Ａ１３４を二次元平面にプロットした様子を示す図である。
【図３０】ＡＳＮ．１のデータ型である「ＳＥＱＵＥＮＣＥ」のデータ構造を示す図である。
【図３１】同じく、ＡＳＮ．１のデータ型である「ＳＥＱＵＥＮＣＥ」のデータ構造を示す図である。
【図３２】ＡＳＮ．１のデータ型である「ＩＮＴＥＧＥＲ」のデータ構造を示す図である。
【図３３】ＡＳＮ．１のデータ型である「ＢＯＯＬＥＡＮ」のデータ構造を示す図である。
【図３４】ＡＳＮ．１のデータ型である「コンテキスト０」と、「コンテキスト３」のデータ構造を示す図である。
【図３５】同じく、ＡＳＮ．１のデータ型である「コンテキスト０」と、「コンテキスト３」のデータ構造を示す図である。
【図３６】同じく、ＡＳＮ．１のデータ型である「コンテキスト０」と、「コンテキスト３」のデータ構造を示す図である。
【図３７】同じく、ＡＳＮ．１のデータ型である「コンテキスト０」と、「コンテキスト３」のデータ構造を示す図である。
【図３８】ＡＳＮ．１のデータ型である「ＧｅｎｅｒａｌｉｚｅｄＴｉｍｅ」のデータ構造を示す図である。
【図３９】ＡＳＮ．１のデータ型である「ＯＢＪＥＣＴ  ＩＤＥＮＴＩＦＩＥＲ」のデータ構造を示す図である。
【図４０】ＡＳＮ．１のデータ型である「ＯＣＴＥＴ  ＳＴＲＩＮＧ」のデータ構造を示す図である。
【図４１】ＡＳＮ．１のデータ型である「ＢＩＴ  ＳＴＲＩＮＧ」のデータ構造を示す図である。
【図４２】同じく、ＡＳＮ．１のデータ型である「ＢＩＴ  ＳＴＲＩＮＧ」のデータ構造を示す図である。
【図４３】ＡＳＮ．１のデータ型である「ＩＡ５Ｓｔｒｉｎｇ」のデータ構造を示す図である。
【図４４】同じく、ＡＳＮ．１のデータ型である「ＩＡ５Ｓｔｒｉｎｇ」のデータ構造を示す図である。
【図４５】ＣＲＬのデータ構造を示す図である。
【図４６】証明書のデータ構造を示す図である。
【図４７】時刻推測部の詳細の理解を容易にする目的で、一部のデータの流れを例示した図である。
【図４８】同じく、時刻推測部の詳細の理解を容易にする目的で、一部のデータの流れを例示した図である。
【図４９】ライブラリプログラムを実装したプログラムファイルの構成を示す図である。
【発明を実施するための形態】
【００２１】
以下に、本発明の実施形態について、図面を参照して詳細に説明する。なお、例えば、図４５において、ＳＥＱＵＥＮＣＥ（３１１−０）と表記した場合には、カッコ内は、符号を示す。
【００２２】
最初に、本実施形態で使用する種々のデータの、形式を記述する方法についての理解のために、非特許文献３で規定される、データの形式記述言語である、アセンワン（Ａｂｓｔｒａｃｔ  Ｓｙｎｔａｘ  Ｎｏｔａｔｉｏｎ  Ｏｎｅ；  以下、「ＡＳＮ．１」と記述する。）について説明する。ＡＳＮ．１は、本実施形態のみならず、ＰＫＩ関連のデータ、電文、プロトコルの記述に、広く採用されており、ＰＫＩ関連のデータであるＣＲＬ、証明書等を扱う本実施形態においても、非特許文献１、非特許文献２におけるデータに関する記述との一貫性を保つ目的で、いくつかのデータに関しては、ＡＳＮ．１にて、その形式を記述する。
【００２３】
ＡＳＮ．１は、任意のデータの、論理構造と、物理構造（すなわち、どのようなバイナリ列を形成するか）を、定義する言語である。非特許文献３で規定されるＡＳＮ．１固有のキーワードで、任意の複数個のデータを修飾することによって、データ群を、どのような規則に基づきバイナリ列に変換するかが一意に規定され、同時に、既に規則に基づきバイナリ列に変換されたバイナリ値について、元の論理構造を一意に復元することができる。
【００２４】
変換後のバイナリ列には、変換前のデータを構成する各データの形式（例えば、整数値であるか、文字列であるか、といった情報）と、長さ（データのオクテット数）と、値（データそのもの）と、が含まれる。変換後のバイナリ列のうち、形式の復元に使用される箇所を「形式部」と記述し、長さの復元に使用される箇所を「長さ部」と記述し、値の復元に使用される箇所を「データ部」と記述する。
【００２５】
「形式部」は、本実施形態で使用するデータに関しては、常に１オクテット（通常、８ビットに相当）である。「長さ部」は、本実施形態で使用するデータに関しては、１または３オクテットであって、先頭１オクテットの最上位ビットが０の場合、１オクテットであり、先頭１オクテットの値が表す符号なし整数値が、長さ部の値となる。さもなくば３オクテットであり、末尾２オクテットを、リトルエンディアン（少ない数値を表現するオクテットが、順列の最初に出現する順番）で評価した符号なし整数値が、長さ部の値となる。データ部は、長さ部が示すオクテット数の長さを持つ。形式部と、長さ部と、データ部は、この順に並んで配置され、各部の間には、何のデータも配置されない。
【００２６】
例えば、
ＩＮＴＥＧＥＲ  １
前記のＡＳＮ．１は、「整数値１が、単独で存在する」ことを意味し、同時に、該意味を表現するバイナリ列として、十六進数値０２（形式部）と、十六進数値０１（長さ部）と、十六進数値０１（データ部）とを順に結合したバイナリ列を生成する、ことを意味する。
【００２７】
別な例として、
ＳＥＱＵＥＮＣＥ｛
ＩＮＴＥＧＥＲ  １，
ＩＮＴＥＧＥＲ  ２
｝
前記のＡＳＮ．１は、「整数値１と、整数値２が、一階層の階層構造の子要素として存在する」ことを意味し、同時に、該意味を表現するバイナリ列として、十六進数値３０（ＳＥＱＵＥＮＣＥの形式部）と、十六進数値０６（ＳＥＱＵＥＮＣＥの長さ部）と、十六進数値０２（１つめのＩＮＴＥＧＥＲの形式部）と、十六進数値０１（１つめのＩＮＴＥＧＥＲの長さ部）と、十六進数値０１（１つめのＩＮＴＥＧＥＲのデータ部）と、十六進数値０２（２つめのＩＮＴＥＧＥＲの形式部）と、十六進数値０１（２つめのＩＮＴＥＧＥＲの長さ部）と、十六進数値０２（２つめのＩＮＴＥＧＥＲのデータ部）とを順に結合したバイナリ列を生成する、ことを意味する。
【００２８】
ＡＳＮ．１の記述において、改行および空白は、目視性の向上の為にのみ挿入され、意味の解釈の際は、それらは無視される。
次に、本実施形態中（例えば、図４５、図４６）で使用するＡＳＮ．１のキーワードについて、詳細に説明する。
【００２９】
図３０、図３１は、ＡＳＮ．１のデータ型である「ＳＥＱＵＥＮＣＥ」のデータ構造を示す図である。ＳＥＱＵＥＮＣＥは、ＡＳＮ．１データ形式「ＳＥＱＵＥＮＣＥ」（序列）を指す。ＳＥＱＵＥＮＣＥ｛｝というＡＳＮ．１は、｛｝内のデータを、データ部の値として保持するＳＥＱＵＥＮＣＥを表す。｛｝内に列挙されるデータも、またＡＳＮ．１で記述されるデータである。該データを、ＳＥＱＵＥＮＣＥの子要素と記述する。
【００３０】
図３４、図３５、図３６、図３７は、ＡＳＮ．１のデータ型である「コンテキスト０」と、「コンテキスト３」のデータ構造を示す図である。［０］は、ＡＳＮ．１データ形式「コンテキスト０」（文脈０）を指す。配下に、子要素となるデータを持つ場合（［０］｛ＸＸＸ｝というＡＳＮ．１で表現される場合。ただし、ＸＸＸは子要素を表す）と、持たない場合（［０］ＹＹＹというＡＳＮ．１で表現される場合。ただし、ＹＹＹは［０］のデータ部の値を表す）とで、構成が異なる。図３４、図３５、図３６、図３７には、コンテキスト０が、具体的にどのようなバイナリ列で形成されるかを表す。
【００３１】
［３］は、ＡＳＮ．１データ形式「コンテキスト３」（文脈３）を指す。配下に、子要素となるデータを持つ場合（［３］｛ＸＸＸ｝というＡＳＮ．１で表現される場合。ただし、ＸＸＸは子要素を表す）と、持たない場合（［３］ＹＹＹというＡＳＮ．１で表現される場合。ただし、ＹＹＹは［３］のデータ部の値を表す）とで、構成が異なる。図３４、図３５、図３６、図３７には、コンテキスト３が、具体的にどのようなバイナリ列で形成されるかを表す。
【００３２】
図３２は、ＡＳＮ．１のデータ型である「ＩＮＴＥＧＥＲ」のデータ構造を示す図である。ＩＮＴＥＧＥＲは、ＡＳＮ．１データ形式「ＩＮＴＥＧＥＲ」（整数）を指す。図３２には、ＩＮＴＥＧＥＲが、具体的にどのようなバイナリ列で形成されるかを表す。
【００３３】
図３８は、ＡＳＮ．１のデータ型である「ＧｅｎｅｒａｌｉｚｅｄＴｉｍｅ」のデータ構造を示す図である。ＧｅｎｅｒａｌｉｚｅｄＴｉｍｅは、ＡＳＮ．１データ形式「ＧｅｎｅｒａｌｉｚｅｄＴｉｍｅ」（一般化時刻）を指す。西暦年と、月と、日と、時と、分と、秒と、を含む時刻の表現に使用される。ＡＳＮ．１の規約上、ＧｅｎｅｒａｌｉｚｅｄＴｉｍｅは、グリニッジ標準時からの時差、および小数点以下（０．１秒以下）の精度の秒数を表現することも可能とされているが、非特許文献２の４．１．２．５．２章の規定により、この二つの表現は、証明書およびＣＲＬのデータ項目に含めることが禁止されている。
【００３４】
このため、本実施形態では、ＧｅｎｅｒａｌｉｚｅｄＴｉｍｅには、常にグリニッジ標準時を使用し、かつ、秒の、小数点以下の成分は切り捨てることとする。従ってＧｅｎｅｒａｌｉｚｅｄＴｉｍｅのデータ部は、常に ＹＹＹＹＭＭＤＤｈｈｍｍｓｓＺ という１５桁のＡＳＣＩＩ文字列から成る。
【００３５】
ただし、ＹＹＹＹは西暦年を表す数字、ＭＭは月を表す数字、ＤＤは日を表す数字、ｈｈは２４時間制の時を表す数字、ｍｍは分を表す数字、ｓｓは秒を表す数字にそれぞれ置換され、Ｚは、時刻がグリニッジ標準時であることを表す文字（ＡＳＣＩＩコード ０ｘ５Ａ）である。例えば、２００９年８月３１日２３時５９分５９秒を示すＧｅｎｅｒａｌｉｚｅｄＴｉｍｅのデータ部は、２００９０８３１２３５９５９Ｚとなる。図３８には、ＧｅｎｅｒａｌｉｚｅｄＴｉｍｅが、具体的にどのようなバイナリ列で形成されるかを表す。
【００３６】
図３９は、ＡＳＮ．１のデータ型である「ＯＢＪＥＣＴ  ＩＤＥＮＴＩＦＩＥＲ」のデータ構造を示す図である。ＯＢＪＥＣＴ ＩＤＥＮＴＩＦＩＥＲは、ＡＳＮ．１データ形式「ＯＢＪＥＣＴ ＩＤＥＮＴＩＦＩＥＲ」（オブジェクト識別子）を指す。任意のデータに、識別子となる文字列を付与する目的で使用される。図３９には、ＯＢＪＥＣＴ ＩＤＥＮＴＩＦＩＥＲが、具体的にどのようなバイナリ列で形成されるかを表す。
【００３７】
図４１、図４２は、ＡＳＮ．１のデータ型である「ＢＩＴ  ＳＴＲＩＮＧ」のデータ構造を示す図である。ＢＩＴ ＳＴＲＩＮＧは、ＡＳＮ．１データ形式「ＢＩＴ ＳＴＲＩＮＧ」（バイナリ列）を指す。バイナリ列の表現に使用される。データ部の、最初の１オクテットは「未使用ビット数」を表し、２オクテット目以降が、実際にデータとして扱う部分である。ただし、実際にデータとして扱う部分のうち、右端から数えて、未使用ビット数分のビットは、無視する。図４１、図４２には、ＢＩＴ ＳＴＲＩＮＧが、具体的にどのようなバイナリ列で形成されるかを表す。
【００３８】
図４３、図４４は、ＡＳＮ．１のデータ型である「ＩＡ５Ｓｔｒｉｎｇ」のデータ構造を示す図である。ＩＡ５Ｓｔｒｉｎｇは、ＡＳＮ．１データ形式「ＩＡ５Ｓｔｒｉｎｇ」（インターネット文字列）を指す。インターネット上のアドレス（ＵＲＬ等）の表現に使用される。データ部は、ＡＳＣＩＩ文字列で構成される。例えば、ｈｔｔｐ：／／ｗｗｗ．ｅｘａｍｐｌｅ．ｏｒｇ／ｃａ１．ｃｒｌのような文字列である。図４３、図４４は、ＩＡ５Ｓｔｒｉｎｇが、具体的にどのようなバイナリ列で形成されるかを表す。
【００３９】
図３３は、ＡＳＮ．１のデータ型である「ＢＯＯＬＥＡＮ」のデータ構造を示す図である。ＢＯＯＬＥＡＮは、ＡＳＮ．１データ形式「ＢＯＯＬＥＡＮ」（真偽）を指す。真または偽の、二通りの状態を持ちうるデータの表現に使用される。データ部の値が０の場合は、偽（ＦＡＬＳＥ）を意味し、０以外の場合は、真（ＴＲＵＥ）を意味する。図３３には、ＢＯＯＬＥＡＮが、具体的にどのようなバイナリ列で形成されるかを表す。
【００４０】
図４０は、ＡＳＮ．１のデータ型である「ＯＣＴＥＴ  ＳＴＲＩＮＧ」のデータ構造を示す図である。ＯＣＴＥＴ  ＳＴＲＩＮＧは、ＡＳＮ．１データ形式「ＯＣＴＥＴ  ＳＴＲＩＮＧ」（オクテット文字列）を指す。オクテット単位で処理すべきデータの表現に使用される。データ部は、任意の文字列で構成され、ＡＳＣＩＩ文字列以外も格納することができる。図４０には、ＯＣＴＥＴ  ＳＴＲＩＮＧが、具体的にどのようなバイナリ列で形成されるかを表す。
【００４１】
以上の用語説明は、例えば、図４５に示すＳＥＱＵＥＮＣＥ（３１１−０）、図４５に示すＧｅｎｅｒａｌｉｚｅｄＴｉｍｅ（３１１−０−０−４）、図４５に示す［０］（３１１−０−０−６）、図４６に示す［３］（Ａ１０２−０−０−６）、図４５示すＯＢＪＥＣＴ ＩＤＥＮＴＩＦＩＥＲ（３１１−０−０−６−０−０−０）、図４５に示すＢＩＴ  ＳＴＲＩＮＧ（３１１−０−２）、図４５に示すＢＯＯＬＥＡＮ（３１１−０−０−６−０−０−１）、図４５に示すＯＣＴＥＴ  ＳＴＲＩＮＧ（３１１−０−０−６−０−０−２）に該当する。
【００４２】
次に、本発明の実施形態について説明する。
図１は、本実施形態に係る証明書検証システム装置の構成を示す図である。証明書検証システム装置２００は、ネットワーク４００を介して、認証局３２０に接続されているリポジトリ装置３００と、証明書検証クライアント３３０と接続されている。
【００４３】
証明書検証クライアント３３０は、ネットワーク４００を介し、証明書検証システム装置２００に対し、証明書検証要求電文Ａ１０１（有効性検証要求電文）を送出する。証明書検証要求電文Ａ１０１には、有効性検証の対象となる証明書Ａ１０２が含まれている。
【００４４】
証明書検証システム装置２００は、証明書Ａ１０２の有効性確認依頼を受信すると、証明書Ａ１０２が失効状態にないかを判定し、その結果を証明書検証クライアント３３０に送信する。また、証明書検証システム装置２００は、証明書Ａ１０２の失効状態が記載されたＣＲＬ３１１をリポジトリ装置３００より取得し、ならびに、過去に取得したＣＲＬ３１１に記載された、該ＣＲＬの有効期限、証明書が失効された時刻の履歴等の情報に基づいて、認証局３２０が定期的に発行するＣＲＬ３１１、および証明書失効に伴い不定期に発行するＣＲＬ３１１の双方の、次の発行時刻を予測し、予測した発行時刻にＣＲＬ３１１の取得を行い、外部記憶装置２１６（記憶部）（図２参照）に記憶されているＣＲＬ３１１を更新する。
【００４５】
証明書検証システム装置２００は、リポジトリ装置３００へのネットワークアクセスを行うネットワークアクセス部２０１と、現在の年月日と時刻、およびタイムゾーン（グリニッジ標準時との時差）を提供する時刻提供部２０２と、予め指定された時刻に任意のプログラムを実行するプログラム自動実行部２０３と、証明書検証システム装置２００の設定をキーボード、外部端末等の入力装置を用い入力、または変更可能な証明書検証システムコンソール２０４と、証明書検証処理を行う証明書検証サービス部１００と、証明書検証サービス部１００の動作に必要な種々の情報を格納するデータベースであるＣＲＬＤＢ（１１０）とを含んでなる。
【００４６】
証明書検証サービス部１００は、証明書検証リクエストの受理、処理、および結果の応答を行う証明書検証部１０１と、リポジトリ装置３００からのＣＲＬ取得を行うＣＲＬ取得部１０２と、ＣＲＬ３１１のデータ構造を解析し、含まれる情報を抽出するＣＲＬ解析部１０３と、ＣＲＬＤＢ１１０に蓄積された情報等に基づき、ＣＲＬ３１１が次に更新される時刻の推測処理を行う時刻推測部１０４と、時刻推測部１０４の推測した時刻にＣＲＬ取得部１０２を起動させる指示をプログラム自動実行部２０３に指示するスケジュール管理部１０５と、最小二乗法の演算を実行する最小二乗法パラメタ導出部１０６とを含んでなる。
【００４７】
このような構成において、証明書検証システム装置２００は、証明書検証部１０１を実行し、証明書検証部１０１は、証明書検証要求電文Ａ１０１を受信するまで待機する。証明書検証要求電文Ａ１０１を受信すると、証明書検証部１０１は、証明書検証要求電文Ａ１０１に含まれる証明書Ａ１０２を読み、証明書Ａ１０２の失効情報が記述されたＣＲＬ３１１の置かれたリポジトリ装置３００のＵＲＬを確認し、ＵＲＬを引数にＣＲＬ取得部１０２を実行する。
【００４８】
ＣＲＬ取得部１０２は、証明書検証部１０１、またはプログラム自動実行部２０３から引数として与えられたＵＲＬにアクセスし、ＣＲＬ３１１を取得し、ＣＲＬ３１１を参照して証明書Ａ１０２の失効状態を確認し、ＵＲＬ、ならびにＣＲＬ３１１を引数に、ＣＲＬ解析部１０３を実行する。
【００４９】
ＣＲＬ解析部１０３は、ＣＲＬ取得部１０２から引数に与えられたＣＲＬ３１１の内容を読み、記載されたＣＲＬ有効期限と、証明書Ａ１０２の失効操作が行われた時刻を、ＵＲＬを主キーとして持つＣＲＬＤＢ１１０のエントリに追記し、ＣＲＬＤＢ１１０に蓄積されたＵＲＬに関する情報（ＣＲＬ有効期限、証明書失効時刻の履歴等）の一覧を引数に、時刻推測部１０４を実行し、時刻推測部１０４の戻り値として得た値から、次回、ＣＲＬ３１１が更新される時刻を推測し、推測した時刻と、ＵＲＬを引数に、スケジュール管理部１０５を実行する。
【００５０】
時刻推測部１０４は、ＣＲＬ解析部１０３から引数に与えられたＣＲＬ３１１に関する情報（ＣＲＬ有効期限、証明書失効時刻の履歴等）の一覧を、情報の種別ごとに分類し、分類結果に対し、最小二乗法パラメタ導出部１０６を実行し、該分類に含まれる時刻系列を近似する一次直線を最小二乗法により求め、求めた一次直線を一意に決めるパラメタを、戻り値として、呼出元であるＣＲＬ解析部１０３に返す。
【００５１】
スケジュール管理部１０５は、ＣＲＬ解析部１０３から引数に与えられた時刻と、ＵＲＬを読み、該時刻に、ＣＲＬ取得部１０２を、該ＵＲＬを引数先に実行するよう、プログラム自動実行部２０３に指示する。
【００５２】
最小二乗法パラメタ導出部１０６は、引数に与えられた情報（ＣＲＬ有効期限、証明書失効時刻の履歴等を、情報の種類毎に分類したもの）を、別に定める基準時刻からの経過秒数に変換し、結果を、戻り値として、呼出元である時刻推測部１０４に返す。
【００５３】
ＣＲＬＤＢ１１０は、関係データベースであり、ＣＲＬ３１１を取得可能なＵＲＬ毎に、ＵＲＬに関する情報を蓄積するテーブルであるＣＲＬ配布点テーブル１１１（図２１参照）（ＣＲＬ配布点情報）と、証明書検証システム装置２００の動作の詳細を決定するパラメタの群であるパラメタテーブル１１２とを含んでなり、各テーブルに対する操作、およびデータ読み出しを、各機能（証明書検証部１０１と、ＣＲＬ取得部１０２と、ＣＲＬ解析部１０３と、時刻推測部１０４と、スケジュール管理部１０５と、最小二乗法パラメタ導出部１０６）から送出される関係データベース操作電文により実行する。具体的な電文は、実際に使用する箇所の詳細説明にて後述する。
【００５４】
ここでＣＲＬは、「Ｃｅｒｔｉｆｉｃａｔｅ  Ｒｅｖｏｃａｔｉｏｎ  Ｌｉｓｔ」（証明書失効リスト）の略称であり、非特許文献２の第５章「ＣＲＬ  ａｎｄ  ＣＲＬ Ｅｘｔｅｎｓｉｏｎｓ Ｐｒｏｆｉｌｅ」で規定される論理構造「ＣｅｒｔｉｆｉｃａｔｅＬｉｓｔ」に則り、認証局３２０が失効した証明書のシリアル番号（ｕｓｅｒＣｅｒｔｉｆｉｃａｔｅ（Ａ５０８）；詳細は後述する。）、失効時刻（ｒｅｖｏｃａｔｉｏｎＤａｔｅ（Ａ５０９））；詳細は後述する。）等を列挙したバイナリデータである。以下、ＣＲＬ３１１の具体的な構造を、図４５の２５０１に示す。
【００５５】
図４５は、ＣＲＬのデータ構造を示す図である。ＣＲＬ３１１に含まれる情報のうち、本実施形態で使用するものの詳細を説明する。ｔｈｉｓＵｐｄａｔｅ（Ａ５０５）（今回更新時刻）は、ＣＲＬ３１１の発行時刻が記載されるフィールドである。発行時刻は、図４５におけるＳＥＱＵＥＮＣＥ（３１１−０−０）の４番目の子要素であるＧｅｎｅｒａｌｉｚｅｄＴｉｍｅ（３１１−０−０−３）のデータ部に記載されている。
【００５６】
ｎｅｘｔＵｐｄａｔｅ（Ａ５０６）（次回更新時刻）は、ＣＲＬ３１１の次回発行時刻が記載されるフィールドである。次回発行時刻は、図４５におけるＳＥＱＵＥＮＣＥ（３１１−０−０）の５番目の子要素であるＧｅｎｅｒａｌｉｚｅｄＴｉｍｅ（３１１−０−０−４）のデータ部に記載されている。
【００５７】
ｒｅｖｏｋｅｄＣｅｒｔｉｆｉｃａｔｅｓ（Ａ５０７）（失効証明書）は、ＣＲＬ３１１によって失効された証明書に関する情報（下記Ａ５０８，Ａ５０９等）が記載されるフィールドである。失効された証明書に関する情報は、図４５におけるＳＥＱＵＥＮＣＥ（３１１−０−０）の６番目の子要素であるＳＥＱＵＥＮＣＥ（３１１−０−０−５）の子要素データ部に、複数記載されている。ＳＥＱＵＥＮＣＥ（３１１−０−０−５−０）（Ａ１１０）一つにつき、一通の証明書に関する情報を、以下のとおり保持する。
ＳＥＱＵＥＮＣＥ｛
ｕｓｅｒＣｅｒｔｉｆｉｃａｔｅ（Ａ５０８），
ｒｅｖｏｃａｔｉｏｎＤａｔｅ（Ａ５０９）
｝
【００５８】
ｕｓｅｒＣｅｒｔｉｆｉｃａｔｅ（Ａ５０８）（ユーザ証明書）は、ＣＲＬ３１１によって失効された証明書のシリアル番号が記載されるフィールドである。シリアル番号は、図４５におけるｒｅｖｏｋｅｄＣｅｒｔｉｆｉｃａｔｅｓ（Ａ５０７）の子要素のＳＥＱＵＥＮＣＥ（３１１−０−０−５−０）の子要素の、ＩＮＴＥＧＥＲ（３１１−０−０−５−０−１）のデータ部に記載されている。
【００５９】
ｒｅｖｏｃａｔｉｏｎＤａｔｅ（Ａ５０９）（失効時刻）は、ＣＲＬ３１１によって失効された証明書の失効時刻が記載されるフィールドである。失効時刻は、図４５におけるｒｅｖｏｋｅｄＣｅｒｔｉｆｉｃａｔｅｓ（Ａ５０７）の子要素のＳＥＱＵＥＮＣＥ（３１１−０−０−５−０）の子要素の、ＧｅｎｅｒａｌｉｚｅｄＴｉｍｅ（３１１−０−０−５−０−２）のデータ部に記載されている。
【００６０】
また、証明書は、Ｘ．５０９証明書バージョン３の形式を基づいて作成されたものであり、非特許文献２の第４章「Ｃｅｒｔｉｆｉｃａｔｅ ａｎｄ Ｃｅｒｔｉｆｉｃａｔｅ Ｅｘｔｅｎｓｉｏｎｓ Ｐｒｏｆｉｌｅ」で規定されるＡＳＮ．１構造「Ｃｅｒｔｉｆｉｃａｔｅ」に則り、認証局３２０が発行した公開鍵ビット列、主体者名称、発行者（認証局）名称、証明書のシリアル番号（ｕｓｅｒＣｅｒｔｉｆｉｃａｔｅ（Ａ５０８））等を列挙したバイナリデータである。証明書Ａ１０２の具体的な構造を、図４６の２６０１に示す。
【００６１】
図４６は、証明書のデータ構造を示す図である。証明書Ａ１０２に含まれる情報のうち、本実施形態で使用するものの詳細を説明する。ｃＲＬＤｉｓｔｒｉｂｕｔｉｏｎＰｏｉｎｔｓ（Ａ５０２）（ＣＲＬ配布点３１０）は、証明書Ａ１０２の失効情報であるＣＲＬ３１１を取得できるＵＲＬが記載されるフィールドである。該ＵＲＬは、証明書Ａ１０２のＳＥＱＵＥＮＣＥ（Ａ１０２−０−０−６−０）の子要素のＳＥＱＵＥＮＣＥ（Ａ１０２−０−０−６−０−０）のうち、ＯＢＪＥＣＴ ＩＤＥＮＴＩＦＩＥＲ（Ａ１０２−０−０−６−０−０−０）のデータ部が、１６進数５３１Ｄ１Ｆであるものの、ＯＣＴＥＴ  ＳＴＲＩＮＧ（Ａ１０２−０−０−６−０−０−２）のデータ部に記載されている。
【００６２】
ｆｒｅｓｈｅｓｔＣＲＬ（Ａ５０３）（最新ＣＲＬ配布点）は、証明書Ａ１０２の失効情報であるＣＲＬ３１１を取得できるＵＲＬが記載されるフィールドである。Ａ５０２で得られるＣＲＬ３１１に対し、追加で失効した証明書について記載されている。該ＵＲＬは、証明書Ａ１０２のＳＥＱＵＥＮＣＥ（Ａ１０２−０−０−６−０）の子要素のＳＥＱＵＥＮＣＥ（Ａ１０２−０−０−６−０−０）のうち、ＯＢＪＥＣＴ ＩＤＥＮＴＩＦＩＥＲ（Ａ１０２−０−０−６−０−０−０）のデータ部が、１６進数５５１Ｄ２Ｅである物の、ＯＣＴＥＴ ＳＴＲＩＮＧ（Ａ１０２−０−０−６−０−０−２）のデータ部に記載されている。
【００６３】
図２１は、ＣＲＬ配布点テーブルのデータ構造を示す図である。ＣＲＬ配布点テーブル１１１の構造を、図２１に示す１７０１を参照してＣＲＬ配布点テーブル１１１に含まれる項目の詳細を、以下に説明する。
【００６４】
ＣＲＬ配布点エントリ（Ａ６０１）は、ＣＲＬ配布点テーブル１１１の行であり、あるＣＲＬ取得時アクセス先（Ａ１０３）に関する複数の情報を、ＣＲＬ取得時アクセス先（Ａ１０３）の値を主キーとして保持し、また、以下に述べる発行履歴（Ａ６０４）、失効証明書一覧（Ａ６０６）、最新データハッシュ（Ａ６０２）等を項目として保持する。
【００６５】
最新データハッシュ（Ａ６０２）は、ＣＲＬ配布点エントリ（Ａ６０１）の項目の一つであり、ＣＲＬ３１１をハッシュアルゴリズムＰ０５に投入して得られた結果のバイナリ列を、１６進数表記のＡＳＣＩＩ文字列に変換した値を保持する。ＣＲＬ配布点エントリ（Ａ６０１）のＣＲＬ取得時アクセス先（Ａ１０３）からＣＲＬ３１１を取得する度、値が上書きされる。文字列の長さは、ハッシュアルゴリズムＰ０５（図２３参照）に依存する。本実施形態では、ハッシュアルゴリズムＰ０５にＳＨＡ−１を使用する場合について記述するので、変数「ＣＲＬハッシュ値」（Ａ１０７）（図１０参照）は４０文字のＡＳＣＩＩ文字列となる。
【００６６】
発行履歴エントリ（Ａ１１１）は、ＣＲＬ３１１の発行時刻（ｔｈｉｓＵｐｄａｔｅ（Ａ５０５））を保持し、ＣＲＬ配布点エントリ（Ａ６０１）の項目の一つである発行履歴（Ａ６０４）（ＳＥＱＵＥＮＣＥ構造）の子要素として保持される、以下の構造を持つバイナリ列である。
ｔｈｉｓＵｐｄａｔｅ（Ａ５０５）
【００６７】
すなわち、ＧｅｎｅｒａｌｉｚｅｄＴｉｍｅのＡＳＮ．１構造を持つデータである。発行履歴エントリＡ１１１のデータ構造を、図２２に示す。
【００６８】
発行履歴（Ａ６０４）は、ＣＲＬ配布点エントリ（Ａ６０１）の項目の一つであり、ＣＲＬ配布点エントリ（Ａ６０１）の主キーであるＣＲＬ取得時アクセス先（Ａ１０３）から得られるＣＲＬ３１１が、これまでに更新された時刻の履歴を記録する。複数の発行履歴エントリ（Ａ１１１）を、順に結合したバイナリ列である。ただし、発行履歴エントリ（Ａ１１１）は、失効証明書一覧エントリ（Ａ１１２）のＧｅｎｅｒａｌｉｚｅｄＴｉｍｅを形成するバイナリ列を表す。
【００６９】
失効証明書一覧エントリ（Ａ１１２）は、失効証明書のシリアル番号（ｕｓｅｒＣｅｒｔｉｆｉｃａｔｅ（Ａ５０８））と、失効時刻（ｒｅｖｏｃａｔｉｏｎＤａｔｅ（Ａ５０９））を保持し、ＣＲＬ配布点エントリ（Ａ６０１）の項目の一つである失効証明書一覧（Ａ６０６）（ＳＥＱＵＥＮＣＥ構造）の子要素として保持される、以下のＡＳＮ．１構造を持つバイナリ列である。
ＳＥＱＵＥＮＣＥ｛
ｕｓｅｒＣｅｒｔｉｆｉｃａｔｅ（Ａ５０８），
ｒｅｖｏｃａｔｉｏｎＤａｔｅ（Ａ５０９）
｝
失効証明書一覧エントリＡ１１２のデータ構造を、図２４に示す。
【００７０】
失効証明書一覧（Ａ６０６）は、ＣＲＬ配布点エントリ（Ａ６０１）の主キーであるＣＲＬ取得時アクセス先（Ａ１０３）から得られるＣＲＬ３１１によって、これまでに失効された証明書の、失効時刻等の履歴を記録する。複数の失効証明書一覧エントリ（Ａ１１２）を、順に結合したバイナリ列である。ただし複数の失効証明書一覧エントリ（Ａ１１２）は、前段落で記述した、失効証明書一覧エントリ（Ａ１１２）のＳＥＱＵＥＮＣＥを形成するバイナリ列を表す。
【００７１】
図２３は、パラメタテーブルのデータ構造を示す図である。パラメタテーブル１１２（図１参照）の構造を、図２３の１８０１を参照してパラメタテーブル１１２に含まれる項目の詳細を説明する。
【００７２】
最小標本数Ｐ０１は、時刻推測部１０４において、最小二乗法による近似計算を行う際に、最低限必要となる標本の数を規定するパラメタである。証明書検証システムコンソール２０４（図１参照）を介し、２以上の整数値を、オペレータによる手動操作で設定する。
【００７３】
事象日付分類アルゴリズムＰ０２は、ある任意の日付（年月日）を、何らかの規則に基づき複数のグループに分類するアルゴリズムを、実際に実装したライブラリプログラムの名称を示すパラメタである。ライブラリプログラムを実装したファイル（図４９のＸ２００に例示する。）を、証明書検証システム装置２００のメモリ２１２（図２参照）にロードした上で、証明書検証システム装置２００に対し、このパラメタを名称に持つライブラリプログラムを、分類したい日付（ＹＹＹＹＭＭＤＤという形式の、８桁の文字列。ただしＹＹＹＹは西暦年、ＭＭは月、ＤＤは日に、それぞれ置換される。月または日が９以下の場合、それぞれ先頭に０を付加する。）を引数に実行する命令を投入することで、ライブラリプログラムが実行され、戻り値として、該日付が、どの分類に所属するかを一意に表す値が得られる。ただしこの応答値の形式は、アルゴリズムにより異なる。証明書検証システムコンソール２０４を介し、ライブラリプログラムの名称を示す文字列を、オペレータによる手動操作で設定する。
【００７４】
本実施形態では、アルゴリズムの一例として、ツェラーの公式（日付を、該日付が所属する曜日ごとに分類するアルゴリズム）を実装した場合について記述する。この場合、本パラメタには、「Ｚｅｌｌｅｒ」という文字列を設定することとする。Ｊａｖａ（登録商標），Ｐｅｒｌ，Ｃ＋＋等のプログラミング言語、プログラミング言語に対応した統合開発環境、および、プログラムの実行環境（オペレーティングシステム等）の多くでは、ツェラーの公式を実装したプログラム、またはプログラムのソースコードが予め提供されているため、本実施形態の実装を行う開発者が、改めて、ツェラーの公式の内部（インターフェイス以外の部分）の挙動を理解し、その実装を行わなければならない可能性は低いと考えられるため、ツェラーの公式における具体的なデータ処理の手順は、本実施形態では言及しない。
【００７５】
事象日付分類数Ｐ０３は、事象日付分類アルゴリズムＰ０２を実装したライブラリプログラムが、何種類の応答を返しうるかを定義する整数値である。証明書検証システムコンソール２０４を介し、１以上の整数値を、オペレータによる手動操作で設定する。本実施形態では、アルゴリズムの一例として、ツェラーの公式（日付を、該日付が所属する曜日ごとに分類するアルゴリズム）を実装するので、本パラメタには、７が設定されることとなる。
【００７６】
時刻バッファＰ０４は、ＣＲＬ３１１が、実際にリポジトリ装置３００に設置された状態となるのが、ＣＲＬ３１１生成の何秒後と仮定するか、を定義する整数値である。これは、認証局３２０側のネットワーク負荷等が原因で、ＣＲＬ３１１の生成プロセスの完了時刻と、ＣＲＬ３１１に実際にインターネット経由でアクセス可能な状態となる時刻との間に、時差が生じることを想定し、設けるものである。証明書検証システムコンソール２０４を介し、０以上の整数値を、オペレータによる手動操作で設定する。
【００７７】
ハッシュアルゴリズムＰ０５は、任意のバイナリ列を、何らかの規則に基づき、該バイナリ列を代表する別なバイナリ列に置換する一方向関数を、実際に実装したライブラリプログラムの名称を示すパラメタである。ライブラリプログラムを実装したファイル（図４９のＸ２００に例示する。）を、あらかじめオペレータによる手動操作で、証明書検証システム装置２００のメモリ２１２（図２参照）にロードした上で、証明書検証システム装置２００に対し、このパラメタを名称に持つライブラリプログラムを、置換したいバイナリ列を引数に実行する命令を投入することで、ライブラリプログラムが実行され、戻り値として、置換されたバイナリ列が得られる。ただしこの応答値の形式は、アルゴリズムにより異なる。証明書検証システムコンソール２０４を介し、該ライブラリプログラムの名称を示す文字列を、オペレータによる手動操作で設定する。
【００７８】
本実施形態では、アルゴリズムの一例として、アメリカ国立標準技術研究所により実装された、ＳＨＡ−１（ＳＨＡ：Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）を使用する場合について記述する。この場合、本パラメタには、「ＳＨＡ−１」という文字列を設定することとする。ＳＨＡ−１は、任意の入力データに対し、２０オクテットのバイナリ列を出力するハッシュアルゴリズムである。Ｊａｖａ，Ｐｅｒｌ，Ｃ＋＋等のプログラミング言語、プログラミング言語に対応した統合開発環境、および、プログラムの実行環境（オペレーティングシステム等）の多くでは、ＳＨＡ−１を実装したプログラム、またはプログラムのソースコードが予め提供されているため、本実施形態の実装を行う開発者が、改めて、ＳＨＡ−１の内部（インターフェイス以外の部分）の挙動を理解し、その実装を行わなければならない可能性は低いと考えられるため、ＳＨＡ−１における具体的なデータ処理の手順は、非特許文献４を参照することとし、本実施形態では言及しない。
【００７９】
事象日付分類アルゴリズムライブラリプログラム名Ｐ０６は、事象日付分類アルゴリズムＰ０２のアルゴリズムを実装したライブラリプログラムが含まれるファイル（図４９のＸ２００に例示する。）の名称を決定するパラメタである。証明書検証システムコンソール２０４を介し、ファイルの名称を示す文字列を、オペレータによる手動操作で設定する。本実施形態では、該ファイルは、外部記憶装置２１６（図２参照）に、あらかじめ、ファイル名「Ｚｅｌｌｅｒ．ｄｌｌ」として記録されているものとするので、事象日付分類アルゴリズムライブラリプログラム名Ｐ０６には「Ｚｅｌｌｅｒ．ｄｌｌ」という文字列が設定されることとなる。
【００８０】
前記ファイルは、図４９に示すように、証明書検証システム装置２００上で実行可能な１個以上のプログラムＸ２０４と、シンボルエントリポイントＸ２０１と呼ばれる領域、とで構成される。さらに、シンボルエントリポイントＸ２０１は、各プログラムＸ２０４の名称を表す文字列Ｘ２０２と、各プログラムが、ファイルの先頭から数えて何オクテット目から格納されているかを表す開始位置Ｘ２０３とで構成される。
【００８１】
証明書検証システム装置２００は、事象日付分類アルゴリズムライブラリプログラム名Ｐ０６が示すファイル名（例えば、Ｚｅｌｌｅｒ．ｄｌｌ）の、シンボルエントリポイントＸ２０１から、事象日付分類アルゴリズムＰ０２（例えば、Ｚｅｌｌｅｒ）に対する開始位置Ｘ２０３を読み、開始位置Ｘ２０３に格納されたプログラムをメモリ２１２（図２参照）に読み、実行を開始する、という手順を踏む。
【００８２】
ハッシュアルゴリズムライブラリプログラム名Ｐ０７は、ハッシュアルゴリズムＰ０５のアルゴリズムを実装したライブラリプログラムのファイル名称を決定するパラメタである。証明書検証システムコンソール２０４を介し、ライブラリプログラムを実装したファイルの名称を示す文字列、オペレータによる手動操作で設定する。本実施形態では、ファイルは、外部記憶装置２１６に、あらかじめ、ファイル名「ＳＨＡ−１．ｄｌｌ」として記録されているものとするので、ハッシュアルゴリズムライブラリプログラム名Ｐ０７には「ＳＨＡ−１．ｄｌｌ」という文字列が設定されることとなる。
【００８３】
証明書検証システム装置２００は、ハッシュアルゴリズムライブラリプログラム名Ｐ０７が示すファイル名（例えば、ＳＨＡ−１．ｄｌｌ）の、シンボルエントリポイントＸ２０１（図４９参照）から、ハッシュアルゴリズムＰ０５（例えば、ＳＨＡ−１）に対する開始位置Ｘ２０３を読み、開始位置Ｘ２０３に格納されたプログラムをメモリ２１２（図２参照）に読み、実行を開始する、という手順を踏む。
【００８４】
図１に戻り、ＣＲＬ３１１を配布するリポジトリ装置３００は、ＣＲＬ３１１を物理的に格納する公開データベースであるＣＲＬ配布点３１０を有する。ＣＲＬ配布点３１０には、認証局が発行し公開するＣＲＬ３１１が含まれる。
【００８５】
認証局３２０は、ＣＲＬ３１１の発行を行う組織であり、リポジトリ装置３００に対し、任意の手段でＣＲＬ３１１を格納する。
【００８６】
次に、図１の証明書検証システム装置２００を構成するハードウェアについて説明する。図２は、証明書検証システム装置２００のハードウェア構成を示す図である。証明書検証システム装置２００は、プログラムの実行、演算、および入出力処理を実行するＣＰＵ（Central Processing Unit）２１１（処理部）と、主記憶装置であるメモリ２１２と、ネットワーク４００を介して他装置と通信を行うための通信装置２１３と、オペレータ等からキーボード、マウス等を介しデータ入力を受け付ける入力装置２１４と、オペレータ等にディスプレイ等を介しデータを出力する出力装置２１５と、補助記憶装置である外部記憶装置２１６（記憶部）と、各装置等（ＣＰＵ２１１と、メモリ２１２と、通信装置２１３と、入力装置２１４と、出力装置２１５と、外部記憶装置２１６）を電気的に接続する内部通信線２２０と、を有する。
【００８７】
外部記憶装置２１６は、証明書検証サービス部１００に含まれる各処理部（証明書検証部１０１、ＣＲＬ取得部１０２、ＣＲＬ解析部１０３、時刻推測部１０４、スケジュール管理部１０５、および最小二乗法パラメタ導出部１０６）を実行するプログラムと、その他の処理部（ネットワークアクセス部２０１、時刻提供部２０２、およびプログラム自動実行部２０３）を実行するプログラムと、ＣＲＬＤＢ１１０のデータ保管領域と、ＣＲＬＤＢ１１０の動作に必要なプログラムとを保持する。
【００８８】
ＣＰＵ２１１は、プログラムをメモリ２１２にロードし、プログラムを実行する。
【００８９】
通信装置２１３は、証明書検証システム装置２００と、ネットワーク４００と、を物理的、電気的に結線するためのインターフェイスを有する。入力装置２１４は、証明書検証システム装置２００と、キーボード、マウス、着脱可能な外部記憶媒体等と、物理的、電気的に結線するためのインターフェイスを有する。出力装置２１５は、証明書検証システム装置２００と、ディスプレイ、プリンタ等と、を物理的、電気的に結線するためのインターフェイスを有する。
【００９０】
各処理部（証明書検証部１０１、ＣＲＬ取得部１０２、ＣＲＬ解析部１０３、時刻推測部１０４、スケジュール管理部１０５、および最小二乗法パラメタ導出部１０６）は、それぞれ、自分自身の実行を中断したまま、他の処理部の実行を開始し、他の処理部の実行が終了を検知するか、または他の処理部との論理的な通信経路が失われる（または、オペレーティングシステム等が提供する）まで、自分自身は待機する処理を有する。
【００９１】
また、各処理部は、それぞれ、自分自身の実行が開始される際に、その開始の契機を作った主体（他の処理部、またはオペレータ等）から、任意のデータを受け取ることのできるインターフェイスを有する。インターフェイスを介して受け取ったデータを、引数と記述する。また、各処理部は、自分自身の実行の契機を作った主体（他の処理部、またはオペレータ等）に対し、任意のデータを送出することのできるインターフェイスを有する。インターフェイスを介して送出するデータを、戻り値と記述する。また、各処理部は、自分自身の実行の契機を作った主体（他の処理部、またはオペレータ等）との論理的な通信経路を、自発的に切断する処理をする。また、各処理部は、前述の、他の処理の実行を開始する際、他の処理に引数を送出することのできるインターフェイスを有する。また、各処理部は、他の処理部の実行が終了するか、論理的な通信経路が切断されることに伴い、自分自身の実行を再開する際に、終了、または通信経路を切断した他の処理部から、戻り値を受け取ることのできるインターフェイスを有する。
【００９２】
図１０は、証明書検証システム装置のメモリに格納されるプログラム、変数の例を示す図である。メモリ２１２には、証明書検証サービス部１００、ネットワークアクセス部２０１、時刻提供部２０２、プログラム自動実行部２０３の各プログラムが記憶されている。また、メモリ２１２には、変数「ＣＲＬハッシュ値」（Ａ１０７）（図６参照）、配列変数「失効証明書リスト」（Ａ１０８）（図６参照）、配列変数「事象発生時刻リスト」（Ａ１０９）（図６参照）、配列変数「近似パラメタ一覧」（Ａ１１３）（図８参照）、変数「分類項番」（Ａ１１４）（図８参照）、配列変数「事象日付分類」（Ａ１１５）（図９参照）、配列変数「日付リスト」（Ａ１２０）（図１７参照）、配列変数「日付分類内の事象リスト」（Ａ１２１）（図１７参照）、変数「ワーク日付」（Ａ１２５）（図１１参照）、変数「ワーク時刻」（Ａ１２６）（図１１参照）等の変数が記憶されている。
【００９３】
図３は、証明書検証システム装置の初期設定を行う画面の例を示す図である。オペレータ等は、証明書検証システムコンソール２０４（図１参照）でのキーボード入力等により初期設定を行う。具体的には、オペレータは、最小標本数Ｐ０１の値を、テキスト入力領域３０１１に入力し、事象日付分類アルゴリズムＰ０２の値を、テキスト入力領域３０１２に入力し、事象日付分類数Ｐ０３の値を、テキスト入力領域３０１４に入力し、時刻バッファＰ０４の値を、テキスト入力領域３０１５に入力し、ハッシュアルゴリズムＰ０５の値を、テキスト入力領域Ｓ３０１６に入力し、事象日付分類アルゴリズムライブラリプログラム名Ｐ０６の値を、テキスト入力領域３０１３に入力し、ハッシュアルゴリズムライブラリプログラム名Ｐ０７の値を、テキスト入力領域３０１７に入力し、次に、ボタン３０１９を押下する。
【００９４】
証明書検証システム装置２００は、ボタン３０１９が押下された場合、下記の条件（１）〜（６）を満たすかを判定する。
（１）テキスト入力領域３０１１に入力されている値が、２以上の整数値であることと、テキスト入力領域３０１３に入力されている値が示すファイルが存在すること
（２）テキスト入力領域３０１２に入力されている値が示すライブラリプログラム名称が、テキスト入力領域３０１３で示すファイルＸ２００内の、シンボルエントリポイントＸ２０１上に存在すること
（３）テキスト入力領域３０１４に入力されている値が、１以上の整数値であること
（４）テキスト入力領域３０１５に入力されている値が、０以上の整数値であること
（５）テキスト入力領域３０１７に入力されている値が示すファイルが存在すること
（６）テキスト入力領域３０１６に入力されている値が示すライブラリプログラム名称が、テキスト入力領域３０１７で示すファイルＸ２００（図４９参照）内の、シンボルエントリポイントＸ２０１（図４９参照）上に存在すること
証明書検証システム装置２００は、上記各条件を確認し、すべての条件を満足する場合に限り、次の（Ｑ１）〜（Ｑ７）の関係データベース操作電文を、ＣＲＬＤＢ１１０（図１参照）に送出することにより、入力されたパラメタの値を、パラメタテーブル１１２（図２３参照）に登録する。
【００９５】
各操作電文を、下記に示す。
（Ｑ１）パラメタテーブル１１２の、主キー「パラメタ名」の値が「Ｐ０１」の行の、「パラメタ値」を、テキスト入力領域３０１１に入力されている値に変更する、関係データベース操作電文。
（Ｑ２）パラメタテーブル１１２の、主キー「パラメタ名」の値が「Ｐ０２」の行の、「パラメタ値」を、テキスト入力領域３０１２に入力されている値に変更する、関係データベース操作電文。
（Ｑ３）パラメタテーブル１１２の、主キー「パラメタ名」の値が「Ｐ０３」の行の、「パラメタ値」を、テキスト入力領域３０１４に入力されている値に変更する、関係データベース操作電文。
（Ｑ４）パラメタテーブル１１２の、主キー「パラメタ名」の値が「Ｐ０４」の行の、「パラメタ値」を、テキスト入力領域３０１５に入力されている値に変更する、関係データベース操作電文。
（Ｑ５）パラメタテーブル１１２の、主キー「パラメタ名」の値が「Ｐ０５」の行の、「パラメタ値」を、テキスト入力領域３０１６に入力されている値に変更する、関係データベース操作電文。
（Ｑ６）パラメタテーブル１１２の、主キー「パラメタ名」の値が「Ｐ０６」の行の、「パラメタ値」を、テキスト入力領域３０１３に入力されている値に変更する、関係データベース操作電文。
（Ｑ７）パラメタテーブル１１２の、主キー「パラメタ名」の値が「Ｐ０７」の行の、「パラメタ値」を、テキスト入力領域３０１７に入力されている値に変更する、関係データベース操作電文。
【００９６】
図４は、証明書検証部の詳細を示すフローチャートである。図４には、証明書検証部１０１の証明書検証処理Ｓ４００を示す。証明書検証部１０１は、入力装置に接続されたネットワークインターフェイスに、以下のＡＳＮ．１で定義される証明書検証要求電文Ａ１０１が送信されてきているか確認する（Ｓ４０１）。
ＳＥＱＵＥＮＣＥ｛証明書（Ａ１０２）｝
【００９７】
証明書検証部１０１は、証明書検証要求電文Ａ１０１が送信されてきていない場合（Ｓ４０１のＮｏ）、Ｓ４０１の先頭に戻る。送信されてきている場合（Ｓ４０１のＹｅｓ）、証明書検証要求電文Ａ１０１を構成するバイナリ列から、ＡＳＮ．１の仕様に基づき、ＳＥＱＵＥＮＣＥの内部に置かれた、証明書Ａ１０２を構成するバイナリ列を読み出し、さらに、証明書Ａ１０２に含まれるフィールドである、ｃＲＬＤｉｓｔｒｉｂｕｔｉｏｎＰｏｉｎｔｓ（Ａ５０２）と、ｆｒｅｓｈｅｓｔＣＲＬ（Ａ５０３）とを構成するバイナリ列をそれぞれ読み出す。証明書Ａ１０２のデータ構造は、前述および図４６の２６０１で示す通りである。
【００９８】
ｃＲＬＤｉｓｔｒｉｂｕｔｉｏｎＰｏｉｎｔｓ（Ａ５０２）は、図４６において、証明書Ａ１０２のＳＥＱＵＥＮＣＥ（Ａ１０２−０−０−６−０）の子要素のＳＥＱＵＥＮＣＥ（Ａ１０２−０−０−６−０−０）のうち、ＯＢＪＥＣＴ ＩＤＥＮＴＩＦＩＥＲ（Ａ１０２−０−０−６−０−０−０）のデータ部が、１６進数５３１Ｄ１Ｆのものである。
【００９９】
ｆｒｅｓｈｅｓｔＣＲＬ（Ａ５０３）は、図４６において、証明書Ａ１０２のＳＥＱＵＥＮＣＥ（Ａ１０２−０−０−６−０）に含まれるＳＥＱＵＥＮＣＥ（Ａ１０２−０−０−６−０−０）のうち、ＯＢＪＥＣＴ ＩＤＥＮＴＩＦＩＥＲ（Ａ１０２−０−０−６−０−０−０）のデータ部が、１６進数５５１Ｄ２Ｅのものである。なお、Ａ５０３のフィールドは、非特許文献２では、含めることが必須の項目とは規定されていないため、存在しない場合がある。この場合は、Ａ５０３のフィールドの値はＮＵＬＬであるものとして、以後の処理を継続する（Ｓ４０２）。
【０１００】
証明書検証部１０１は、ｃＲＬＤｉｓｔｒｉｂｕｔｉｏｎＰｏｉｎｔｓ（Ａ５０２）の配下にあるＯＣＴＥＴ  ＳＴＲＩＮＧ（Ａ１０２−０−０−６−０−０−２）のデータ部を、もし、証明書Ａ１０２が失効された場合に、その失効情報が記載されることとなるＣＲＬ３１１を取得することのできる、ＣＲＬ取得時アクセス先Ａ１０３に変換する（Ｓ４０３）。ＣＲＬ取得時アクセス先Ａ１０３に変換するとは、ＣＲＬ取得時アクセス先として取り扱うことを意味する。ＣＲＬ取得時アクセス先Ａ１０３は、ＣＲＬ３１１を取得可能なＵＲＬを示すＩＡ５Ｓｔｒｉｎｇである。例えば、ｈｔｔｐ：／／ｗｗｗ．ｅｘａｍｐｌｅ．ｏｒｇ／ｃａ１．ｃｒｌのような文字列である。次に、証明書検証部１０１は、ＣＲＬ取得部１０２を、ＣＲＬ取得時アクセス先Ａ１０３を引数として実行する（Ｓ４０４）（図５、ＣＲＬ取得処理Ｓ５００参照）。
【０１０１】
証明書検証部１０１は、証明書Ａ１０２に含まれるｆｒｅｓｈｅｓｔＣＲＬ（Ａ５０３）の値がＮＵＬＬか否かを確認し（Ｓ４０５）、ＮＵＬＬの場合（Ｓ４０５のＹｅｓ）、Ｓ４０１の先頭に戻る。ＮＵＬＬでない場合（Ｓ４０５のＮｏ）、ｆｒｅｓｈｅｓｔＣＲＬ（Ａ５０３）の配下にあるＯＣＴＥＴ  ＳＴＲＩＮＧ（Ａ１０２−０−０−６−０−０−２）のデータ部を、もし、証明書Ａ１０２が失効された場合に、その失効情報が記載されることとなる、もう一つのＣＲＬ３１１を取得することのできる、ＣＲＬ取得時アクセス先Ａ１０３に変換する（Ｓ４０６）。ＣＲＬ取得時アクセス先Ａ１０３は、ｃＲＬＤｉｓｔｒｉｂｕｔｉｏｎＰｏｉｎｔｓ（Ａ５０２）の場合と同様、ＣＲＬを取得可能なＵＲＬを示すＩＡ５Ｓｔｒｉｎｇである。例えば、ｈｔｔｐ：／／ｗｗｗ．ｅｘａｍｐｌｅ．ｏｒｇ／ｃａ１．ｃｒｌのような文字列である。次に、証明書検証部１０１は、ＣＲＬ取得部１０２を、ＣＲＬ取得時アクセス先Ａ１０３を引数として実行する（Ｓ４０７）。Ｓ４０７の実行後、証明書検証部１０１は、Ｓ４０１の先頭に戻る。
【０１０２】
図５は、ＣＲＬ取得部の詳細を示すフローチャートである。図５には、ＣＲＬ取得部１０２のＣＲＬ取得処理Ｓ５００を示す。ＣＲＬ取得部１０２は、証明書検証部１０１によって実行を開始（呼出）される。ＣＲＬ取得部１０２は、呼出元である証明書検証部１０１またはプログラム自動実行部２０３から、引数としてＣＲＬ取得時アクセス先Ａ１０３を受け取る（Ｓ５０１）。
【０１０３】
ＣＲＬ取得部１０２は、ＣＲＬ取得時アクセス先Ａ１０３をＵＲＬとみなし、みなしたＵＲＬに、ネットワークアクセス部２０１を介してアクセスし、ＣＲＬ３１１を得る（Ｓ５０２）。具体的には、アクセスの応答として得られた電文を、ネットワークアクセス部２０１から読み出す。ＣＲＬ取得部１０２は、該電文がＣＲＬ３１１を成すバイナリ列であることを、該電文の先頭２オクテットが、１６進数で表記した場合「３０８２」に一致するバイナリ列であり、かつ、該電文に、１６進数で表記した場合「０６０３５５１Ｄ２３」に一致するバイナリ列が含まれており、かつ、該電文に、１６進数で表記した場合「０６０３５５１Ｄ１４」に一致するバイナリ列が含まれていることをもって確認し（Ｓ５０３）、前記３つの確認点をいずれも満たす場合（Ｓ５０３のＹｅｓ）、該電文をＣＲＬ３１１であると判断し、ＣＲＬ解析部１０３を、ＣＲＬ取得時アクセス先Ａ１０３と、該ＣＲＬ３１１、を引数として実行し（Ｓ５０４）、処理を終了する。どちらか一方でも満たさない場合（Ｓ５０３のＮｏ）、該電文はＣＲＬ３１１ではないと判断し、処理を終了する。
【０１０４】
図６は、ＣＲＬ解析部の詳細を示すフローチャートである。図６には、ＣＲＬ解析部１０３のＣＲＬ解析処理Ｓ６００を示す。ＣＲＬ解析部１０３は、ＣＲＬ取得部１０２によって実行を開始（呼出）される。ＣＲＬ解析部１０３は、呼出元であるＣＲＬ取得部１０２から、引数として、ＣＲＬ取得時アクセス先Ａ１０３と、ＣＲＬ３１１、を受け取り、ＣＲＬ３１１に含まれる、ｔｈｉｓＵｐｄａｔｅ（Ａ５０５）（ただし、ＣＲＬ３１１がこの値を含まない場合、時刻提供部２０２から現在時刻Ａ１０５を取得し、この値で代用する。）と、ｎｅｘｔＵｐｄａｔｅ（Ａ５０６）（ただし、ＣＲＬ３１１がこの値を含まない場合、ＮＵＬＬ値で代用する。）と、ｒｅｖｏｋｅｄＣｅｒｔｉｆｉｃａｔｅｓ（Ａ５０７）、を構成するバイナリ列を、それぞれ読み出す（Ｓ６０１）。
【０１０５】
ＣＲＬ３１１のデータ構造は、図４５の２５０１で示す通りである。図４５において、ｔｈｉｓＵｐｄａｔｅ（Ａ５０５）は、ＳＥＱＵＥＮＣＥ（３１１−０−０−３）である。ｎｅｘｔＵｐｄａｔｅ（Ａ５０６）は、ＳＥＱＵＥＮＣＥ（３１１−０−０−４）である。ｒｅｖｏｋｅｄＣｅｒｔｉｆｉｃａｔｅｓ（Ａ５０７）は、ＳＥＱＵＥＮＣＥ（３１１−０−０−５）である。
【０１０６】
ＣＲＬ解析部１０３は、以下（Ｑ３０）で示す、関係データベース操作電文を、ＣＲＬＤＢ１１０に送出し、応答を、ハッシュアルゴリズムＰ０５の値として、処理の動作中のみ保持されるメモリ上の領域に保持する。
【０１０７】
（Ｑ３０）パラメタテーブル１１２の、主キー「パラメタ名」の値が「Ｐ０５」の行の、「パラメタ値」を読む、関係データベース操作電文。
【０１０８】
次に、ＣＲＬ解析部１０３は、ハッシュアルゴリズムＰ０５で指定されたハッシュアルゴリズム名を持つライブラリプログラムを、ＣＲＬ３１１を引数として起動し（ハッシュプログラムでハッシュ化し）、ライブラリプログラムからの戻り値（結果）を、変数「ＣＲＬハッシュ値」（Ａ１０７）に保存する（Ｓ６０２）。
【０１０９】
ＣＲＬ解析部１０３は、ＣＲＬ取得時アクセス先（Ａ１０３）と同一の値を主キーとして保持するＣＲＬ配布点エントリ（Ａ６０１）がＣＲＬ配布点テーブル（１１１）に存在するか調べる（Ｓ６０３）。具体的には、ＣＲＬ解析部１０３は、以下（Ｑ８）の関係データベース操作電文を、ＣＲＬＤＢ１１０に送出し、応答結果を、変数「ＣＲＬハッシュ値」（Ａ１０７）に読み出す。
（Ｑ８）ＣＲＬ配布点テーブル１１１の、主キー「ＣＲＬ取得時アクセス先」（Ａ１０３）の値が、ＣＲＬ取得部１０２から引数として渡されたＣＲＬ取得時アクセス先（Ａ１０３）、と一致する行の、項目「最新データハッシュ」（Ａ６０２）を取得する、関係データベース操作電文。
【０１１０】
次に、ＣＲＬ解析部１０３は、上記電文送出の応答として、エントリ未発見を表すエラーが返ってきていないか調べ、返ってきていない場合（Ｓ６０４のＹｅｓ）、変数「ＣＲＬハッシュ値」（Ａ１０７）が、最新データハッシュＡ６０２と一致するか調べ（Ｓ６０９）、一致する場合（Ｓ６０９のＹｅｓ）、図７のＳ７０２に進み、一致しない場合（Ｓ６０９のＮｏ）、Ｓ６０６に進む。
【０１１１】
Ｓ６０４において、エントリ未発見を表すエラーが返ってきている場合（Ｓ６０４のＮｏ）、ＣＲＬ取得時アクセス先（Ａ１０３）を主キーとするＣＲＬ配布点エントリ（Ａ６０１）をＣＲＬ配布点テーブル１１１に作成する（Ｓ６０５）。具体的には、以下（Ｑ９）の関係データベース操作電文を、ＣＲＬＤＢ１１０に送出する。
【０１１２】
（Ｑ９）ＣＲＬ配布点テーブル１１１に、
主キー項目「ＣＲＬ取得時アクセス先（Ａ１０３）」の値に、ＣＲＬ取得部１０２から引数として渡されたＣＲＬ取得時アクセス先Ａ１０３の値と、
項目「発行履歴（Ａ６０４）」の値に、ＮＵＬＬ値と、
項目「失効証明書一覧（Ａ６０６）」の値に、ＮＵＬＬ値と、
項目「最新データハッシュ（Ａ６０２）」の値に、ＮＵＬＬ値と、
を、それぞれ含む行を新規生成する、関係データベース操作電文。
【０１１３】
ＣＲＬ解析部１０３は、配列変数「失効証明書リスト」（Ａ１０８）を作成し、空の配列として初期化し（Ｓ６０６）、配列変数「事象発生時刻リスト」（Ａ１０９）を作成し、空の文字列として初期化し（Ｓ６０７）、ＳＥＱＵＥＮＣＥ構造のデータであるｒｅｖｏｋｅｄＣｅｒｔｉｆｉｃａｔｅ（Ａ５０７）の子要素である、ＳＥＱＵＥＮＣＥ（Ａ１１０）の各々に対し、処理Ｓ６０８０（図１３参照）を、それぞれ順に行う（Ｓ６０８）。
【０１１４】
図１３は、ＣＲＬ解析部から呼び出される別処理の詳細を示すフローチャートである。処理Ｓ６０８０において、ＣＲＬ解析部１０３は、ＳＥＱＵＥＮＣＥ（Ａ１１０）を形成するバイナリ列を、配列変数「失効証明書リスト」（Ａ１０８）の末尾に追記し（Ｓ６０８１）、処理を終了する。図６に戻り、ＣＲＬ解析部１０３は、Ｓ６０８ののち図７のＳ７０１の処理に進む。
【０１１５】
図７は、ＣＲＬ解析部の詳細を示すフローチャートである。図６のＳ６０８からＳ７０１に進むと、ＣＲＬ解析部１０３は、ＣＲＬ取得時アクセス先（Ａ１０３）を主キーとして保持するＣＲＬ配布点エントリ（Ａ６０１）に、以下の操作を行う（Ｓ７０１）。
【０１１６】
具体的には、（Ｑ１０）、（Ｑ１１）、（Ｑ１２）の関係データベース操作電文を、ＣＲＬＤＢ１１０に送出する。
【０１１７】
（Ｑ１０）ＣＲＬ配布点テーブル１１１の、主キー項目「ＣＲＬ取得時アクセス先」Ａ１０３の値が、ＣＲＬ取得部１０２から引数として渡されたＣＲＬ取得時アクセス先Ａ１０３の値、と一致する行の、項目「発行履歴」Ａ６０４の値に、ｔｈｉｓＵｐｄａｔｅ（Ａ５０５）を形成するバイナリ列を追記する、関係データベース操作電文。
【０１１８】
（Ｑ１１）ＣＲＬ配布点テーブル１１１の、主キー項目「ＣＲＬ取得時アクセス先」Ａ１０３の値が、ＣＲＬ取得部１０２から引数として渡されたＣＲＬ取得時アクセス先Ａ１０３の値、と一致する行の、項目「失効証明書一覧」Ａ６０６の値に、配列変数「失効証明書リスト」（Ａ１０８）の値を追記する、関係データベース操作電文。
【０１１９】
（Ｑ１２）ＣＲＬ配布点テーブル１１１の、主キー項目「ＣＲＬ取得時アクセス先」Ａ１０３の値が、ＣＲＬ取得部１０２から引数として渡されたＣＲＬ取得時アクセス先Ａ１０３の値、と一致する行の、項目「最新データハッシュ」（Ａ６０２）の値を、変数「ＣＲＬハッシュ値」（Ａ１０７）の値で上書きする、関係データベース操作電文。
【０１２０】
Ｓ７０１の後、または、図６に示すＳ６０９でＮｏの後に、ＣＲＬ解析部１０３は、ＣＲＬ取得時アクセス先（Ａ１０３）を主キーとして保持するＣＲＬ配布点エントリ（Ａ６０１）の発行履歴（Ａ６０４）と、失効証明書一覧（Ａ６０６）の値を、ＣＲＬ配布点テーブル１１１から読む（Ｓ７０２）。
【０１２１】
具体的には、ＣＲＬ解析部１０３は、（Ｑ１３）の関係データベース操作電文を、ＣＲＬＤＢ１１０に送出し、応答結果を読み出す。
【０１２２】
（Ｑ１３）ＣＲＬ配布点テーブル１１１の、主キー項目「ＣＲＬ取得時アクセス先」（Ａ１０３）の値が、ＣＲＬ取得部１０２から引数として渡されたＣＲＬ取得時アクセス先（Ａ１０３）の値、と一致する行の、項目の「発行履歴」（Ａ６０４）の値と、項目の「失効証明書一覧」（Ａ６０６）の値を取得する、関係データベース操作電文。
【０１２３】
ＣＲＬ解析部１０３は、配列構造のデータである発行履歴（Ａ６０４）の要素のＳＥＱＵＥＮＣＥ（発行履歴エントリ（Ａ１１１））のすべてに対し、処理Ｓ７０３０の処理を行う（Ｓ７０３）。具体的には、発行履歴Ａ６０４の値を構成する、ＧｅｎｅｒａｌｉｚｅｄＴｉｍｅ形式のバイナリ列（ｔｈｉｓＵｐｄａｔｅ（Ａ５０５））の各々に対し、処理Ｓ７０３０（図１４参照）を、それぞれ順に行う。
【０１２４】
図１４は、ＣＲＬ解析部１０３から呼び出される別処理の詳細を示すフローチャートである。処理Ｓ７０３０において、ＣＲＬ解析部１０３は、ｔｈｉｓＵｐｄａｔｅ（Ａ５０５）から、データ部を構成するバイナリ列を読み、バイナリ列の末尾に存在する１文字”Ｚ”を除去し（Ｓ７０３１）、配列変数「事象発生時刻リスト」（Ａ１０９）に、Ｓ７０３１の処理を行った値をプッシュし（Ｓ７０３２）、処理を終了する。
【０１２５】
図７に戻り、配列構造のデータである失効証明書一覧（Ａ６０６）の要素のＳＥＱＵＥＮＣＥ（失効証明書一覧エントリ（Ａ１１２））のすべてに対し、処理Ｓ７０４０の処理を行う（Ｓ７０４）。具体的には、ＣＲＬ解析部１０３は、失効証明書一覧Ａ６０６の値を構成する、ＳＥＱＵＥＮＣＥ形式のバイナリ列の各々に対し、処理Ｓ７０５０（図１５参照）を、それぞれ順に行う。
【０１２６】
図１５は、ＣＲＬ解析部から呼び出される別処理の詳細を示すフローチャートである。処理Ｓ７０４０において、ＣＲＬ解析部１０３は、失効証明書一覧エントリ（Ａ１１２）のＳＥＱＵＥＮＣＥ（図２４参照）から、２番目の子要素であるｒｅｖｏｃａｔｉｏｎＤａｔｅ（Ａ５０９）を読み、Ａ５０９のデータ部を構成するバイナリ列を読み、バイナリ列の末尾に存在する１文字”Ｚ”を除去し（Ｓ７０４１）、配列変数「事象発生時刻リスト」（Ａ１０９）に、Ｓ７０４１の処理を行った値をプッシュし（Ｓ７０４２）、処理を終了する。
図７に戻り、ＣＲＬ解析部１０３は、Ｓ７０４の処理後、図８のＳ８０２に進む。
【０１２７】
図８は、同じく、ＣＲＬ解析部の詳細を示すフローチャートである。ＣＲＬ解析部１０３は、図７のＳ７０４からＳ８０２に進み、時刻推測部１０４を、配列変数「事象発生時刻リスト」（Ａ１０９）を引数として実行し（Ｓ８０２）、時刻推測部１０４からの戻り値である配列変数を、配列変数「近似パラメタ一覧」（Ａ１１３）として記録（保持）する（Ｓ８０３）。具体的には、ＣＲＬ解析部１０３は、以下（Ｑ３１）で示す、関係データベース操作電文を、ＣＲＬＤＢ１１０に送出し、その応答を、事象日付分類アルゴリズムＰ０２の値として、ＣＲＬ解析部１０３の動作中のみ保持されるメモリ上の領域に保持する。配列変数「近似パラメタ一覧」（Ａ１１３）のデータ構造を、図２６に示す。
【０１２８】
（Ｑ３１）パラメタテーブル１１２の、主キー「パラメタ名」の値が「Ｐ０２」の行の、「パラメタ値」を読む、関係データベース操作電文。
【０１２９】
次に、ＣＲＬ解析部１０３は、事象日付分類アルゴリズムＰ０２で指定されたアルゴリズム名を持つライブラリプログラムを、時刻提供部２０２から得た、現在時刻Ａ１０５の日付（ＹＹＹＹＭＭＤＤ）を引数として起動し、ライブラリプログラムからの戻り値（ＹＹＹＹＭＭＤＤが、何番目の分類に割り当てられるかを示す値）を、変数「分類項番」（Ａ１１４）に記録する（Ｓ８０４）。例えば、事象日付分類アルゴリズムＰ０２が「日付を、曜日毎に分類するアルゴリズム」であり、現在時刻Ａ１０５が「２００９１１０２」すなわち「月曜日」に所属する場合、変数「分類項番」（Ａ１１４）の値は０となる。ただし、この例において、１週間は、月曜日から数え始めるものとし、何番目にあたるかの計上は、０から数え始めるものとする。
【０１３０】
ＣＲＬ解析部１０３は、配列変数「近似パラメタ一覧」（Ａ１１３）の、変数「分類項番」（Ａ１１４）の番目の要素から、近似パラメータａ、ｂの組を読む（Ｓ８０５）。具体的には、ＣＲＬ解析部１０３は、配列変数「近似パラメタ一覧」（Ａ１１３）の、先頭から数えて変数「分類項番」（Ａ１１４）が指し示す位置にある要素（配列Ａ１３０へのポインタ）を読み、配列変数「近似パラメタ一覧」Ａ１３０に含まれる二つの値を、変数ａと、変数ｂとに、それぞれ代入する。
【０１３１】
ＣＲＬ解析部１０３は、ａの値が０と等しいか調べ（Ｓ８０６）、ａが０と等しい場合（Ｓ８０６のＹｅｓ）、Ｓ８０２で、最小二乗法による近似が行えなかったことを意味するので、ＣＲＬ解析処理Ｓ６００の一連の処理を終了する。ａが０と等しくない場合（Ｓ８０６のＮｏ）、ＣＲＬ解析部１０３は、現在時刻Ａ１０５の、時、分、秒の成分を、それぞれ変数ｈと、変数ｍと、変数ｓに代入し、次の変数ｘを計算する（Ｓ８０７）。
ｘ＝（３６００ｈ＋６０ｍ＋ｓ−ｂ）／ａ
【０１３２】
次に、ＣＲＬ解析部１０３は、変数ｘの小数点以下を切り上げる。この値を変数Ｚに代入し、次の変数ｙを計算する。ただしａ，ｂは、Ｓ８０７と同一のものを使用する（Ｓ８０８）。
ｙ＝ａＺ＋ｂ＋時刻バッファ（Ｐ０４）
【０１３３】
次に、ＣＲＬ解析部１０３は、次の変数ｐと、変数ｑと、変数ｒを、変数ｐ、変数ｑ、変数ｒの順で計算する。ただし、％は、左項の値を右項の値で除算した商の、小数点以下の値を切り捨てた結果、を求める演算子である。％に相当する演算子は、Ｊａｖａ、Ｐｅｒｌ、Ｃ＋＋等のプログラミング言語に広く組み込まれており、特段、この演算子を実現する処理を実装することなく、利用できる。
ｐ＝ｙ％３６００
ｑ＝（ｙ−３６００ｐ）％６０
ｒ＝ｙ−３６００ｐ−６０ｑ
【０１３４】
ＣＲＬ解析部１０３は、以下の形式の固定長１４桁の文字から成る変数Ｓを生成する。
ＹＹＹＹＭＭＤＤｈｈｍｍｓｓ
ただしＹＹＹＹは、現在時刻Ａ１０５の西暦年、ＭＭは、現在時刻Ａ１０５の月、ＤＤは、現在時刻Ａ１０５の日、ｈｈは変数ｐ、ｍｍは変数ｑ、ｓｓは変数ｒ秒を表す数値に、それぞれ置換する。置換後の桁数が２桁の箇所に対し、置換に使用する数値が９以下の場合、置換に使用する数値の先頭に０を付加した数値を使用する。
【０１３５】
ＣＲＬ解析部１０３は、スケジュール管理部１０５を、次の配列変数（変数Ｓ，ＣＲＬ取得時アクセス先Ａ１０３）を引数に実行し（Ｓ８０９）、一連の処理を終了する。
【０１３６】
図９は、時刻推測部の詳細を示すフローチャートである。時刻推測部１０４は、ＣＲＬ解析部１０３によって実行を開始（呼出）され、時刻推測処理Ｓ９００を開始する。呼出元であるＣＲＬ解析部１０３から、引数として、配列変数「事象発生時刻リスト」（Ａ１０９）を受け取り（Ｓ９０１）、以下（Ｑ３２）で示す、関係データベース操作電文を、ＣＲＬＤＢ１１０に送出し、その応答を、事象日付分類数Ｐ０３の値として、時刻推測部１０４の動作中のみ保持されるメモリ上の領域に保持する。
【０１３７】
（Ｑ３２）パラメタテーブル１１２の、主キー「パラメタ名」の値が「Ｐ０３」の行の、「パラメタ値」を読む、関係データベース操作電文。
【０１３８】
次に、時刻推測部１０４は、配列変数「事象日付分類」（Ａ１１５）を作成し、配列変数「事象日付分類」（Ａ１１５）に、空の配列へのポインタを、事象日付分類数Ｐ０３の値と同じ数だけプッシュする。ここでプッシュしたポインタが指し示す配列を、以後「事象日付分類の子配列」（Ａ１１６）と称する（Ｓ９０２）。
【０１３９】
時刻推測部１０４は、配列構造のデータである、配列変数「事象発生時刻リスト」（Ａ１０９）の子要素である、時刻を表す値（Ａ１１９；ＹＹＹＹＭＭＤＤｈｈｍｍｓｓという形式の、１４桁の文字列。ただしＹＹＹＹは西暦年、ＭＭは月、ＤＤは日、ｈｈは２４時間制の時、ｍｍは分、ｓｓは秒を表す。月、または日、または時、または分、または秒が９以下の場合、それぞれ先頭に０を付加する。）の各々に対し、処理Ｓ９０３０（図１６参照）を、それぞれ順に行う（Ｓ９０３）。具体的には、以下（Ｑ３３）で示す、関係データベース操作電文を、ＣＲＬＤＢ１１０に送出し、その応答を、事象日付分類アルゴリズムＰ０２の値として、時刻推測部１０４の動作中のみ保持されるメモリ上の領域に保持する。
【０１４０】
（Ｑ３３）パラメタテーブル１１２の、主キー「パラメタ名」の値が「Ｐ０２」の行の、「パラメタ値」を読む、関係データベース操作電文。
【０１４１】
図１６は、時刻推測部から呼び出される別処理の詳細を示すフローチャートである。処理Ｓ９０３０において、時刻推測部１０４は、事象日付分類アルゴリズムＰ０２で指定されたアルゴリズム名を持つライブラリプログラムを、Ａ１１９の先頭８文字（ＹＹＹＹＭＭＤＤ）を引数として起動し、ライブラリプログラムからの戻り値（ＹＹＹＹＭＭＤＤが、何番目の分類に割り当てられるかを示す値）を、変数ｗに記録する。例えば事象日付分類アルゴリズムＰ０２が「Ｚｅｌｌｅｒ」であり、Ａ１１９が「月曜日」に所属する場合ｗの値は０となる。ただし、この例において、1週間は、月曜日から数え始めるものとし、何番目にあたるかの計上は、０から数え始めるものとする（Ｓ９０３１）。次に、時刻推測部１０４は、Ａ１１９の値を、配列変数「事象日付分類」（Ａ１１５）の、先頭から数えてｗ番目の要素(配列へのポインタ)が指し示す、事象日付分類の子配列Ａ１１６にプッシュし（Ｓ９０３２）、処理を終了する。
【０１４２】
図９に戻り、Ｓ９０３の処理後、Ｓ１００１に進む。時刻推測部１０４は、配列構造のデータである配列変数「事象日付分類」（Ａ１１５）の子要素である、事象日付分類の子配列Ａ１１６の各々に対し、処理Ｓ１００１０（図１７参照）を、それぞれ順に行う（Ｓ１００１）。
【０１４３】
図１７は、時刻推測部から呼び出される別処理の詳細を示すフローチャートである。図１７には、処理Ｓ１００１０を示す。時刻推測部１０４は、事象日付分類の子配列Ａ１１６の全要素を、各要素をＡＳＣＩＩ文字列として扱い、辞書順の昇順（若い要素が配列の前方に出現する順）でソートし（Ｓ１００１１）、配列変数「日付リスト」（Ａ１２０）を作成し、空の配列として初期化し（Ｓ１００１２）、事象日付分類の子配列Ａ１１６の各要素（Ａ１１９）の各々に対し、図１８に示す処理Ｓ１００３０を行う。
【０１４４】
図１８は、時刻推測部１０４から呼び出される別処理の詳細を示すフローチャートである。処理Ｓ１００３０において、最小二乗法パラメタ導出部１０６の最小二乗法パラメタ導出処理Ｓ１１００（図１１参照）を実行し（Ｓ１００１３１）、処理を終了する。
【０１４５】
図１７に戻り、時刻推測部１０４は、配列変数「日付分類内の事象リスト」（Ａ１２１）を作成し、空の配列として初期化し（Ｓ１００１４）、配列構造のデータである、配列変数「日付リスト」（Ａ１２０）の各要素が示す配列変数である、配列変数Ａ１２２の各々に対し（すべてに対し）、処理Ｓ１００１５０（図１９参照）を、それぞれ順に行う（Ｓ１００１５）。理解を容易にする目的で、Ｓ１００１５の過程で行われるデータの代入操作の一部を、図４８に示す。
【０１４６】
図１９は、時刻推測部から呼び出される別処理の詳細を示すフローチャートである。図１９には、処理Ｓ１００１５０を示す。時刻推測部１０４は、変数ｊを作成し、ｊを０で初期化し（Ｓ１００１５１）、配列構造のデータである、配列変数Ａ１２２の２番目の要素が示す配列である、配列変数Ａ１３２の各々の要素（Ａ１２３）に対し、処理Ｓ１００１５２０（図２０参照）を、それぞれ順に行う（Ｓ１００１５２）。
【０１４７】
図２０は、時刻推測部から呼び出される別処理の詳細を示すフローチャートである。図２０には、処理Ｓ１００１５２０を示す。時刻推測部１０４は、配列変数ｃ（ｊ，Ａ１２３の値）を作成し、配列変数「日付分類内の事象リスト」（Ａ１２１）に、配列変数ｃへのポインタをプッシュし（Ｓ１００１５２１）、ｊの値を１加算し（Ｓ１００１５２２）、処理を終了する。この結果、配列変数「日付分類内の事象リスト」（Ａ１２１）がとるデータ構造を、図２８に示す。
【０１４８】
時刻推測部１０４は、以下（Ｑ３４）で示す、関係データベース操作電文を、ＣＲＬＤＢ１１０に送出し、その応答を、最小標本数Ｐ０１の値として、時刻推測部１０４の動作中のみ保持されるメモリ上の領域に保持する。
【０１４９】
（Ｑ３４）パラメタテーブル１１２の、主キー「パラメタ名」の値が「Ｐ０１」の行の、「パラメタ値」を読む、関係データベース操作電文。
【０１５０】
図１７に戻り、時刻推測部１０４は、配列変数「日付分類内の事象リスト」（Ａ１２１）の要素数が、最小標本数Ｐ０１の値以上であるか調べ（Ｓ１００１６）、最小標本数Ｐ０１の値以上でない場合（Ｓ１００１６のＮｏ）、配列変数ｆ（０，０）を作成し、配列変数「近似パラメタ一覧」（Ａ１１３）に、配列変数ｆへのポインタをプッシュし（Ｓ１００１７）、処理Ｓ１００１０の一連の処理を終了する。
【０１５１】
最小標本数Ｐ０１の値以上である場合（Ｓ１００１６のＹｅｓ）、配列変数「日付分類内の事象リスト」（Ａ１２１）の各要素（配列へのポインタ）が指す各配列の２つの要素（ｊ、Ａ１２３）を、最小二乗法により分析する（Ｓ１００１８）。具体的には、時刻推測部１０４は、直交するｊ軸、ｔ軸から成る二次元平面に、配列変数「日付分類内の事象リスト」（Ａ１２１）の各要素（配列へのポインタ）が指す各配列変数Ａ１３４の２つの要素を、それぞれｊ軸座標、ｔ軸座標の位置とする点として配置した状況において、これらの各点を近似する一次直線を、最小二乗法により求める（図２９参照）。
【０１５２】
すなわち、配列変数「日付分類内の事象リスト」（Ａ１２１）の各要素を、ある点のｊ座標とｔ座標を表す組とみなし、すべての点を近似できる直線ｔ＝ａｊ＋ｂの、ａを、（Ｆ１）式により求め、ｂを、（Ｆ２）式により求める（Ｓ１００１８）。なお、（Ｆ１）式、（Ｆ２）式は、時刻推測に用いる近似直線のパラメタを導出する計算式である。
【０１５３】
【数１】
2011120137.tif 000003
【０１５４】
ただし前記２つの式において、ｎは、配列変数「日付分類内の事象リスト」（Ａ１２１）の要素数を、ｔｉ、ｊｉはそれぞれ、配列変数「日付分類内の事象リスト」（Ａ１２１）の先頭から数えてｉ番目の要素が持つｔ，ｊの値を表す。この計算で求めたａとｂの組は、事象日付分類の子配列Ａ１１６に含まれていた事象発生時刻Ａ１１９の各々が所属する、事象日付分類（Ａ１１５）において、次にＣＲＬ３１１の更新が行われる時刻の推測に使用される。例えば、事象発生時刻Ａ１１９の各々が、事象日付分類アルゴリズムＰ０２により、「火曜日」という事象日付分類に分類されていた場合、ａとｂは、Ｓ８０５（図８参照）において、現在時刻Ａ１０５が火曜日の場合の、時刻の推測に使用される。事象日付分類の子配列Ａ１１６の構造は、図２５の１９０１に示す。
【０１５５】
時刻推測部１０４は、配列変数ｆ（ａ，ｂ）を作成し、配列変数「近似パラメタ一覧」（Ａ１１３）に、配列変数ｆへのポインタをプッシュし（Ｓ１００１９）、処理Ｓ１００１０を終了する。
【０１５６】
図９に戻り、時刻推測部１０４は、配列変数「近似パラメタ一覧」（Ａ１１３）を、戻り値として、時刻推測部１０４の呼出元であるＣＲＬ解析部１０３に返し（Ｓ１００２）、時刻推測処理Ｓ９００を終了する。
【０１５７】
図１１は、最小二乗法パラメタ導出部の詳細を示すフローチャートである。図１１には、最小二乗法パラメタ導出部１０６の最小二乗法パラメタ導出処理Ｓ１１００を示す。最小二乗法パラメタ導出部１０６は、時刻推測部１０４の処理の一部を、簡潔にするため、別図に分割したものであり、最小二乗法パラメタ導出処理Ｓ１１００を実装したプログラムは、時刻推測部１０４を実装したプログラムに含まれており、実行の開始、および終了の契機は、時刻推測部１０４と同一である。また、図４７は、図１１の処理の理解を容易にする目的で、最小二乗法パラメタ導出処理Ｓ１１００で行われるデータの代入操作の一部を、例示した図である。
【０１５８】
最小二乗法パラメタ導出部１０６は、事象発生時刻Ａ１１９の値（ＹＹＹＹＭＭＤＤｈｈｍｍｓｓ）を、変数「ワーク日付」（Ａ１２５）、および変数「ワーク時刻」（Ａ１２６）にコピーし（Ｓ１１０１）、変数「ワーク日付」（Ａ１２５）を構成する文字列の、日付部分ＹＹＹＹＭＭＤＤより後（すなわち時刻部分ｈｈｍｍｓｓ）を除去し（Ｓ１１０２）、変数「ワーク時刻」（Ａ１２６）を構成する文字列の、時刻部分ｈｈｍｍｓｓより前（すなわち日付部分ＹＹＹＹＭＭＤＤ）を除去し（Ｓ１１０３）、変数「ワーク時刻」（Ａ１２６）の、当日の午前０時０分０秒（所定時刻）からの経過秒数を計算し、変数「経過秒数」Ａ１２３に代入する。すなわち、以下の演算を実行する（Ｓ１１０４）。
Ａ１２３＝３６００ｈｈ＋６０ｍｍ＋ｓｓ
【０１５９】
次に、最小二乗法パラメタ導出部１０６は、配列変数「日付リスト」（Ａ１２０）の最後の要素（配列へのポインタ）が指す配列変数Ａ１２２の、先頭の要素Ａ１３１（ＹＹＹＹＭＭＤＤ）の値と、変数「ワーク日付」（Ａ１２５）の値の比較を試行し（Ｓ１１０５）、Ａ１３１が存在し、かつ、両者が一致するか確認する（Ｓ１１０６）。Ａ１３１が存在し、かつＡ１３１の値と、変数「ワーク日付」（Ａ１２５）の値とが一致する場合（Ｓ１１０６のＹｅｓ）、配列変数「日付リスト」（Ａ１２０）の最後の要素（配列へのポインタ）が指す配列変数Ａ１２２の、最後の要素（配列へのポインタ）が指す配列変数Ａ１３２に、配列変数Ａ１２３の値をプッシュし（Ｓ１１０７）、処理を終了する。
【０１６０】
Ａ１３１が存在しないか、Ａ１３１の値と、変数「ワーク日付」（Ａ１２５）の値とが一致しない場合（Ｓ１１０６のＮｏ）、要素数１の配列変数ｇ（Ａ１２３）を作成し、要素数２の配列変数ｉ（変数「ワーク日付」（Ａ１２５），配列変数ｇへのポインタ）を作成し、配列変数ｉへのポインタを、配列変数「日付リスト」（Ａ１２０）にプッシュし（Ｓ１１０８）、処理を終了する。
【０１６１】
図４７には、時刻推測部の詳細の理解を容易にする目的で、一部のデータの流れを例示した図である。図４７には、参考に、Ａ１１９の値を、処理Ｓ１１１０の処理を経てＡ１２３に代入する操作の模式図を示す。ここでは、６個の事象発生時刻（Ａ１１９）が、ツェラーの公式（曜日毎に日付を分類するアルゴリズム）により、「２００９年０１月０１日と、２００９年０１月０８日（木曜日）」と、「２００９年０１月０２日と、２００９年０１月０９日（金曜日）」の２つのグループに分類され、それぞれ別のＡ１１６に格納されている。２００９０１０１１２００００というＡ１１９の値は、２００９年１月１日０時０分０秒から４３２００秒を経過した時刻として計算され、Ａ１２３に代入される。
【０１６２】
図１２は、スケジュール管理部の詳細を示すフローチャートである。図１２には、スケジュール管理部１０５のスケジュール管理処理Ｓ１２００を示す。既に説明した図５のＳ５０１において、ＣＲＬ取得部１０２は、証明書検証部１０１によって実行を開始（呼出）され、Ｓ５００から処理を開始し、スケジュール管理処理Ｓ１２００の呼出元である証明書検証部１０１から、引数としてＣＲＬ取得時アクセス先Ａ１０３を受け取っている。
【０１６３】
スケジュール管理部１０５は、ＣＲＬ解析部１０３によって実行を開始（呼出）される。スケジュール管理部１０５は、スケジュール管理処理Ｓ１２００の呼出元であるＣＲＬ解析部１０３から、引数として配列変数を受け取り、該配列変数の１つめの要素の値を、スケジュール実行時刻Ａ１２８とみなし、２つめの要素の値を、アクセス先Ａ１２９とみなし（Ｓ１２０１）、プログラム自動実行部２０３に、以下（Ｑ２０）で示す、プログラム自動実行の指示を行い（Ｓ１２０２）、処理を終了する。
【０１６４】
（Ｑ２０）ＣＲＬ取得部１０２を、該スケジュール実行時刻Ａ１２８に、該アクセス先に記載されたＵＲＬ文字列を引数に実行する、旨の指示。
【０１６５】
本実施形態の証明書検証システム装置２００は、認証局３２０のリポジトリ装置３００からＣＲＬ３１１を取得し、当該ＣＲＬ３１１の記載事項に基づき、当該認証局３２０が次にＣＲＬ３１１を発行する時刻を推測し、当該時刻の直後に自動的にＣＲＬ３１１の取得処理を行う。証明書検証システム装置２００は、証明書検証要求電文Ａ１０１を受理した場合に、証明書Ａ１０２の失効状態を確認する必要が生じた際のネットワークアクセス処理および当該処理にかかる待ち時間を不要とすることで、証明書Ａ１０２の失効状態の検証にかかる時間を低減することができる。
【０１６６】
証明書検証システム装置２００の処理部（例えば、ＣＰＵ２１１）は、ＣＲＬ３１１の次回の発行時刻の予測を、ＣＲＬ３１１を作成した認証局３２０が、これまでにＣＲＬ３１１を作成した日時の履歴情報、ならびに、該ＣＲＬ３１１に含まれる証明書の失効操作を認証局３２０が行った日時の履歴情報、に基づき行うことができる。
【０１６７】
証明書検証システム装置２００の処理部は、履歴情報に含まれる、日時の組の群を、日付の特性に基づき分類し、当日の所定時刻（例えば、午前０時０分０秒）から発行時刻までの経過時間を第１の軸（例えば、図２９に示す縦軸）に表すとともに、発行時刻が、該分類の結果の中で何番目に出現したかを表す数値を第２の軸（例えば、図２９に示す横軸）に表す二次元平面上に配置し、配置された発行時刻を近似する近似線（例えば、最小二乗法に基づいて求めた直線）を導出し、該近似線を用いて、ＣＲＬ３１１の次回の発行時刻を予測することができる。
【符号の説明】
【０１６８】
１００    証明書検証サービス部
１０１    証明書検証部
１０２    ＣＲＬ取得部
１０３    ＣＲＬ解析部
１０４    時刻推測部
１０５    スケジュール管理部
１０６    最小二乗法パラメタ導出部
１１０    ＣＲＬＤＢ
１１１    ＣＲＬ配布点テーブル（ＣＲＬ配布点情報）
１１２    パラメタテーブル
２００    証明書検証システム装置
２０１    ネットワークアクセス部
２０２    時刻提供部
２０３    プログラム自動実行部
２０４    証明書検証システムコンソール
２１１    ＣＰＵ（処理部）
２１２    メモリ
２１３    通信装置
２１４    入力装置
２１５    出力装置
２１６    外部記憶装置（記憶部）
２２０    内部通信線
３００    リポジトリ装置
３１０    ＣＲＬ配布点
３１１    ＣＲＬ（証明書失効リスト）
３２０    認証局
４００    ネットワーク
Ａ１０１    証明書検証要求電文（有効性検証要求電文）
Ａ１０２    証明書
【図１】
2011120137.tif 000004
【図２】
2011120137.tif 000005
【図３】
2011120137.tif 000006
【図４】
2011120137.tif 000007
【図５】
2011120137.tif 000008
【図６】
2011120137.tif 000009
【図７】
2011120137.tif 000010
【図８】
2011120137.tif 000011
【図９】
2011120137.tif 000012
【図１０】
2011120137.tif 000013
【図１１】
2011120137.tif 000014
【図１２】
2011120137.tif 000015
【図１３】
2011120137.tif 000016
【図１４】
2011120137.tif 000017
【図１５】
2011120137.tif 000018
【図１６】
2011120137.tif 000019
【図１７】
2011120137.tif 000020
【図１８】
2011120137.tif 000021
【図１９】
2011120137.tif 000022
【図２０】
2011120137.tif 000023
【図２１】
2011120137.tif 000024
【図２２】
2011120137.tif 000025
【図２３】
2011120137.tif 000026
【図２４】
2011120137.tif 000027
【図２５】
2011120137.tif 000028
【図２６】
2011120137.tif 000029
【図２７】
2011120137.tif 000030
【図２８】
2011120137.tif 000031
【図２９】
2011120137.tif 000032
【図３０】
2011120137.tif 000033
【図３１】
2011120137.tif 000034
【図３２】
2011120137.tif 000035
【図３３】
2011120137.tif 000036
【図３４】
2011120137.tif 000037
【図３５】
2011120137.tif 000038
【図３６】
2011120137.tif 000039
【図３７】
2011120137.tif 000040
【図３８】
2011120137.tif 000041
【図３９】
2011120137.tif 000042
【図４０】
2011120137.tif 000043
【図４１】
2011120137.tif 000044
【図４２】
2011120137.tif 000045
【図４３】
2011120137.tif 000046
【図４４】
2011120137.tif 000047
【図４５】
2011120137.tif 000048
【図４６】
2011120137.tif 000049
【図４７】
2011120137.tif 000050
【図４８】
2011120137.tif 000051
【図４９】
2011120137.tif 000052