サーバ装置から、電子証明書と、電子署名付きのプログラムであって、前記電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証するための証明書検証プログラムとを受信する通信部と、認証局により生成された証明書であり、前記認証局により前記証明書検証プログラムが認証されていることを証明する証明書を認証局証明書として記憶する認証局証明書記憶部と、前記認証局証明書記憶部に記憶されている認証局証明書から電子署名を生成し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致するか否かを検証し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致する場合に、前記通信部により受信された前記証明書検証プログラムを実行して、前記通信部により受信された電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証する検証実行部とを備えることを特徴とする端末装置。前記端末装置は、更に、前記端末装置の電子証明書の送信を要求する、電子署名付きの証明書送信要求を生成する証明書送信要求生成部を備え、前記通信部は、前記証明書送信要求を前記サーバ装置に送信するとともに、前記サーバ装置から、前記端末装置の電子証明書と前記証明書検証プログラムとを受信することを特徴とする請求項1記載の端末装置。認証局によって生成された電子署名が付加された電子署名付きのプログラムであって、電子証明書の送信先において電子証明書の生成元を検証するための証明書検証プログラムを記憶する証明書検証プログラム記憶部と、電子証明書を生成する電子証明書生成部と、前記証明書検証プログラム記憶部に記憶されている証明書検証プログラムと、前記電子証明書生成部により生成された電子証明書とを、送信先に送信する通信部とを備えることを特徴とするサーバ装置。前記サーバ装置は、更に、前記サーバ装置を特定するサーバ特定情報を記憶するサーバ特定情報記憶部を備え、前記電子証明書生成部は、前記サーバ特定情報記憶部に記憶されたサーバ特定情報に基づいて前記サーバ装置の電子証明書を生成することを特徴とする請求項3記載のサーバ装置。前記通信部は、端末装置から、前記端末装置を特定する端末装置特定情報を含み、前記端末装置の電子証明書の送信を要求する、電子署名付きの証明書送信要求を受信し、前記電子証明書生成部は、前記通信部によって受信された証明書送信要求が含む端末装置特定情報から電子署名を生成し、前記通信部により受信された証明書送信要求の電子署名が前記端末装置特定情報から生成された電子署名と一致するか否かを検証し、前記通信部により受信された証明書送信要求の電子署名が前記端末装置特定情報から生成された電子署名と一致する場合に、前記通信部によって受信された証明書送信要求が含む端末装置特定情報に基づいて前記端末装置の電子証明書を生成することを特徴とする請求項3記載のサーバ装置。請求項1又は2記載の端末装置と、請求項3~5いずれか記載のサーバ装置とを備えたことを特徴とする電子証明書発行システム。コンピュータが、サーバ装置から、電子証明書と、電子署名付きのプログラムであって、前記電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証するための証明書検証プログラムとを通信部により受信する通信ステップと、コンピュータが、認証局により生成された証明書であり、前記認証局により前記証明書検証プログラムが認証されていることを証明する証明書を認証局証明書として認証局証明書記憶部に記憶する認証局証明書記憶ステップと、コンピュータが、前記認証局証明書記憶部に記憶されている認証局証明書から電子署名を生成し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致するか否かを検証し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致する場合に、前記通信部により受信された前記証明書検証プログラムを実行して、前記通信部により受信された電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証実行部により検証する検証実行ステップとを備えることを特徴とする電子証明書受信方法。コンピュータが、認証局によって生成された電子署名が付加された電子署名付きのプログラムであって、電子証明書の送信先において電子証明書の生成元を検証するための証明書検証プログラムを証明書検証プログラム記憶部に記憶する証明書検証プログラム記憶ステップと、コンピュータが、電子証明書を電子証明書生成部により生成する電子証明書生成ステップと、コンピュータが、前記証明書検証プログラム記憶部に記憶されている証明書検証プログラムと、前記電子証明書生成部により生成された電子証明書とを、通信部により送信先に送信する通信ステップとを備えることを特徴とする電子証明書送信方法。サーバ装置から、電子証明書と、電子署名付きのプログラムであって、前記電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証するための証明書検証プログラムとを通信部により受信する通信ステップと、認証局により生成された証明書であり、前記認証局により前記証明書検証プログラムが認証されていることを証明する証明書を認証局証明書として認証局証明書記憶部に記憶する認証局証明書記憶ステップと、前記認証局証明書記憶部に記憶されている認証局証明書から電子署名を生成し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致するか否かを検証し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致する場合に、前記通信部により受信された前記証明書検証プログラムを実行して、前記通信部により受信された電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証実行部により検証する検証実行ステップとをコンピュータに実行させることを特徴とするプログラム。認証局によって生成された電子署名が付加された電子署名付きのプログラムであって、電子証明書の送信先において電子証明書の生成元を検証するための証明書検証プログラムを証明書検証プログラム記憶部に記憶する証明書検証プログラム記憶ステップと、電子証明書を電子証明書生成部により生成する電子証明書生成ステップと、前記証明書検証プログラム記憶部に記憶されている証明書検証プログラムと、前記電子証明書生成部により生成された電子証明書とを、通信部により送信先に送信する通信ステップとをコンピュータに実行させることを特徴とするプログラム。特許文献1によれば、遠隔地にある端末装置は、独自に実現した認証局電子証明書を発行メンテナンスする機器に接続し、パスワードによる認証を行なった後、パスワードで暗号化したルート証明書を復号してインストールする。しかし、パスワードの入力は、人手で行わなければならず、端末装置が多数ある場合に多大な労力が必要となる。また、独自に実現した認証局電子証明書を発行メンテナンスする機器にパスワードを予め登録しなければならず、端末装置と、独自に実現した認証局とは、パスワード登録時に安全な通信を行う必要がある。特許文献2によれば、独自に実現した認証局は、電子証明書を遠隔地にある端末装置に電子証明書を受け渡す為に、安全な通信を行う必要がある。特許文献3によれば、遠隔地にある端末装置クライアントは、独自に実現した認証局が発行した電子証明書の検証プログラムをあらかじめ組み込んでおく必要がある。この発明は前記のような課題を解決することを主な目的とするもので、例えば、人手を介さずに、予め電子証明書の検証プログラムを端末装置に組み込む必要がなく、安全な通信により、電子証明書を発行する電子証明書発行システムを実現することを主な目的とする。この発明に係る端末装置は、サーバ装置から、電子証明書と、電子署名付きのプログラムであって、前記電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証するための証明書検証プログラムとを受信する通信部と、認証局により生成された証明書であり、前記認証局により前記証明書検証プログラムが認証されていることを証明する証明書を認証局証明書として記憶する認証局証明書記憶部と、前記認証局証明書記憶部に記憶されている認証局証明書から電子署名を生成し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致するか否かを検証し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致する場合に、前記通信部により受信された前記証明書検証プログラムを実行して、前記通信部により受信された電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証する検証実行部とを備えることを特徴とする。また、この発明に係るサーバ装置は、認証局によって生成された電子署名が付加された電子署名付きのプログラムであって、電子証明書の送信先において電子証明書の生成元を検証するための証明書検証プログラムを記憶する証明書検証プログラム記憶部と、電子証明書を生成する電子証明書生成部と、前記証明書検証プログラム記憶部に記憶されている証明書検証プログラムと、前記電子証明書生成部により生成された電子証明書とを、送信先に送信する通信部とを備えることを特徴とする。この発明に係る端末装置とサーバ装置とは、例えば、人手を介さずに、予め電子証明書の検証プログラムを端末装置に組み込む必要がなく、安全な通信により、電子証明書を発行する電子証明書発行システムを実現する。実施の形態1.電子証明書発行システムの概要図1は、電子証明書発行システムの構成を示す図である。電子証明書発行システムは、電子証明書を発行するサービスセンター201と、発行された電子証明書を利用する拠点101とが例えばインターネット940で接続されている。拠点101は、例えばサービスセンター201から地理的に離れた遠隔地である。そして、拠点101は、複数存在する場合が有り、複数の拠点101が一つのサービスセンター201に接続されている場合が有る。サービスセンター201には、電子証明書を発行するサーバ装置200が有る。このサーバ装置200は、電子証明書を発行する証明書発行サーバとも称する。そして、拠点101には、端末装置100が配置されている。端末装置100は、一つの拠点101に対して、一台もしくは複数台配置される。端末装置100は、サーバ装置200に対するクライアントクライアント装置とも称する。すなわち、電子証明書発行システムは、端末装置100とサーバ装置200とから構成されていると言える。サーバ装置200は端末装置100に対して、各種の電子証明書を発行する。サーバ装置200が発行する電子証明書の種類は、サーバ証明書、クライアント証明書およびルート証明書である。前記ルート証明書は、サーバ装置200自身を証明する電子証明書を用いたセキュリティーシステムの大本となる証明書である。サーバ証明書、クライアント証明書はサーバもしくはクライアントであることを認証するための証明書である詳細は後述。ルート証明書もしくは、ルート証明書にて検証可能な、認証局が発行した中間証明書は、サーバ証明書、クライアント証明書の検証に必要とされる。端末装置100とサーバ装置200とのハードウェア構成の概要次に、図2、図3を用いて端末装置100とサーバ装置200とのハードウェア構成の概要を説明する。ここで、サーバ装置200は、端末装置100と同様のハードウェアから構成されている。よって、ここでは、端末装置100のハードウェア構成の例のみ説明し、サーバ装置200のハードウェア構成の説明は省略する。すなわち、説明は省略するが、サーバ装置200は、端末装置100と同様に図2と図3に示すようなハードウェアから構成されるものである。なお、以下の説明において、端末装置100とサーバ装置200とで、ハードウェアを個別に区別する必要が生じた場合は、例えば、端末装置100の表示装置を表示装置901a、サーバ装置200の表示装置を表示装置901bというように、端末装置100を構成するハードウェアとソフトウェアとはa、サーバ装置200を構成するハードウェアとソフトウェアとはbを付加して区別する。図2は、実施の形態1における端末装置100の外観の一例を示す図である。図2において、端末装置100は、システムユニット910、CRTCathodeRayTubeやLCD液晶の表示画面を有する表示装置901、キーボード902KeyBoard:K/B、マウス903、FDD904FlexibleDiskDrive、コンパクトディスク装置905CDD、プリンタ装置906、スキャナ装置907などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。システムユニット910は、コンピュータであり、ファクシミリ機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク942LAN、ゲートウェイ941を介してインターネット940に接続されている。図3は、実施の形態1における端末装置100のハードウェア資源の一例を示す図である。図3において、端末装置100は、プログラムを実行するCPU911CentralProcessingUnit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいうを備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、スキャナ装置907、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、SSDSolidStateDrive、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。通信ボード915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。また、通信ボード915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。通信ボード915は、ファクシミリ機932、電話器931、LAN942等に接続されている。通信ボード915は、LAN942に限らず、インターネット940等のWANワイドエリアネットワークなどに接続されていても構わない。インターネット940等のWANに接続されている場合、ゲートウェイ941は不用となる。磁気ディスク装置920には、オペレーティングシステム921OS、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。上記プログラム群923には、以下に述べる実施の形態の説明において~部~記憶部を除くとして説明する機能を実行するプログラムが記憶されている。更に端末装置100のプログラム群923aには、後述の証明書検証プログラム508、証明書発行要求署名プログラム505、証明書発行要求生成プログラム509が記憶される。更にサーバ装置200のプログラム群923bには、後述の証明書検証プログラム508、証明書情報生成プログラム550、証明書発行要求検証プログラム506、証明書情報署名プログラム507、証明書生成プログラム514が記憶される。プログラムは、CPU911により読み出され実行される。ファイル群924には、以下に述べる実施の形態の説明において、~の判定結果、~の計算結果、~の処理結果として説明する情報やデータや信号値や変数値やパラメータが、ファイルやデータベースの各項目として記憶されている。ファイルやデータベースは、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出検索参照比較演算計算処理出力印刷表示命令検証実行格納などのCPUの動作に用いられる。抽出検索参照比較演算計算処理出力印刷表示命令検証実行格納のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVDDigitalVersatileDisk等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。また、以下に述べる実施の形態の説明において~部として説明するものは、~回路、~装置、~機器、手段であってもよく、また、~ステップ、~手順、~処理であってもよい。~部~記憶部を除くとして説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子デバイス基板配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラム後述の証明書検証プログラム508、証明書発行要求署名プログラム505、証明書発行要求生成プログラム509、証明書検証プログラム508、証明書情報生成プログラム550、証明書発行要求検証プログラム506、証明書情報署名プログラム507、証明書生成プログラム514は除くは、以下に述べる~部~記憶部を除くとしてコンピュータを機能させるものである。あるいは、以下に述べる~部~記憶部を除くの手順や方法をコンピュータに実行させるものである。端末装置100とサーバ装置200との構成図4は、端末装置100とサーバ装置200との構成を示す図である。端末装置100は、端末記憶部130と端末制御部110と端末通信部120とから構成される。ここで、端末記憶部130は、認証局証明書記憶部に対応する。また、端末制御部110は、検証実行部に対応する。更に、端末通信部120は、端末装置100の通信部に対応する。端末記憶部130は、例えば図3に示す磁気ディスク装置920等の記憶装置で実現され、端末制御部110は、例えば図3に示すCPU911で実現され、端末通信部120は、例えば図3に示す通信ボード915で実現される。サーバ装置200は、サーバ記憶部230とサーバ制御部210とサーバ通信部220とから構成される。ここで、サーバ記憶部230は、証明書検証プログラム記憶部とサーバ特定情報記憶部とに対応する。また、サーバ制御部210は、電子証明書生成部に対応する。更に、サーバ通信部220は、サーバ装置200の通信部に対応する。前述の通り、サーバ記憶部230は、端末装置100と同様に図2と図3に示すようなハードウェアから構成されるものである。すなわち、サーバ記憶部230は、例えば図3に示す磁気ディスク装置920等の記憶装置と同様の記憶装置で実現され、サーバ制御部210は、例えば図3に示すCPU911と同様のCPUで実現され、サーバ通信部220は、例えば図3に示す通信ボード915と同様の通信ボードで実現される。サーバ装置200は、製造元501により製造される。サーバ記憶部230は、製造元501によって生成された証明書情報生成プログラム550、証明書情報署名プログラム507、証明書生成プログラム514、証明書検証プログラム508を例えば、製造元501による製造時に、予め記憶している。ここで、サーバ記憶部230が記憶する証明書検証プログラム508は、予め製造元501によって、認証局600により生成された電子署名504が付加されている。証明書検証プログラム508は、端末装置100が受信した電子証明書がサーバ装置200で生成されたものであるか否かを検証するためのプログラムである。言い換えれば、証明書検証プログラム508は、電子証明書の送信先において電子証明書の生成元を検証するためのプログラムである。ここで、製造元501は、サーバ装置200毎に、証明書情報生成プログラム550、証明書情報署名プログラム507、証明書生成プログラム514、証明書検証プログラム508を生成してもよい。その場合に、製造元501は、各プログラムの内、サーバ装置200毎に依存するデータを分離し、サーバ装置200に非依存の部分をサーバ装置200製造時に、サーバ記憶部230に記憶させることが出来る。そして、製造元501はサーバ装置200製造後に、サーバ装置200毎に依存するデータを生成し、後から各サーバ装置200のサーバ記憶部230に追加して記憶させることが出来る。あるいは、サーバ装置200が自らサーバ装置200毎に依存するデータを生成し、サーバ記憶部230がサーバ装置200毎に依存するデータを追加して記憶することが出来る。サーバ制御部210は、サーバ装置200の制御を行う。サーバ通信部220は、端末装置100との通信を行う。端末装置100は、サーバ装置200と同じ製造元501により製造されてもよいし、異なる製造元501により製造されてもよい。端末記憶部130は、証明書検証プログラム508と認証局証明書516とを記憶する。ここで、証明書検証プログラム508は、端末通信部120を介してサーバ装置200からダウンロードされ、端末記憶部130に記憶される詳細は後述。また、認証局証明書516は、認証局600によって発行された電子証明書であり、端末記憶部130に記憶されている詳細は後述。端末制御部110は、端末装置100の制御を行う。端末通信部120は、サーバ装置200との通信を行う。電子証明書発行の動作まず、図5を用いて電子証明書発行の動作の概要を説明する。図5は、サーバ装置200が生成した電子証明書を端末装置100に発行する際のフローを示す図である。サーバ制御部210図4は、サーバ記憶部230図4に記憶された証明書情報生成プログラム550を実行して、証明書記載情報608詳細は後述を生成する。そして、サーバ制御部210図4は、サーバ記憶部230図4に記憶された証明書情報署名プログラム507を実行して、証明書記載情報608から電子署名609を生成する詳細は後述。更に、サーバ制御部210図4は、サーバ記憶部230図4に記憶された証明書生成プログラム514を実行して、証明書記載情報608と電子署名609とから電子証明書611を生成する詳細は後述。ここで、電子証明書611は、X.509証明書であってもよいし、PKCSPublic-KeyCryptographyStandards7で符号化されていてもよい。さらにPKCS7で符号化された電子証明書611は、BASE64でエンコードされていてもよい。そして、サーバ通信部220図4は生成された電子証明書611をサーバ制御部210図4の命令により、端末装置100に対して送信する。更に、サーバ通信部220図4はサーバ制御部210図4の命令により、サーバ記憶部230図4に記憶された証明書検証プログラム508を端末装置100端末通信部120に対して送信する。ここで、図示は省略するが、サーバ制御部210は、例えば端末装置100から電子証明書の発行の要求が有った場合に、サーバ通信部220を介して、端末装置100からの要求を受信し、電子証明書611と証明書検証プログラム508との送信をサーバ通信部220に命令する。端末通信部120図4は、端末制御部110図4の命令により、サーバ装置200サーバ通信部220から電子証明書611と証明書検証プログラム508とを受信ダウンロードする。端末通信部120図4は、電子証明書611と証明書検証プログラム508とを同時に受信ダウンロードしてもよいし、電子証明書611と証明書検証プログラム508とを別々に受信ダウンロードしてもよい。証明書検証プログラム508には、前述の通り、予め製造元501によって、認証局600の電子署名504が付けられている。ここで、図示は省略するが、端末制御部110は、電子証明書611が必要になった場合に、端末通信部120を介して、サーバ装置200に電子証明書611の発行の要求を送信する。また、図示は省略するが、端末制御部110は、証明書検証プログラム508が必要になった場合に、端末通信部120を介して、サーバ装置200に証明書検証プログラム508のダウンロードの要求を送信する。また端末記憶部130図4は、認証局600図4が発行した認証局証明書516を記憶する。この認証局証明書516は、証明書検証プログラム508が認証局600図4により認証されていることを証明する電子証明書である。認証局証明書516はサーバ装置200からダウンロードしてもよいし、CD-ROMなどの記録媒体で配布されてもよい。端末記憶部130図4は、端末装置100が新設された時点で認証局証明書516を記憶してもよいし、電子証明書611が必要になった時点で認証局証明書516を記憶してもよい。少なくとも、端末記憶部130図4は、端末通信部120が証明書検証プログラム508をダウンロードする以前に、認証局証明書516を前述の何らか方法で取得し、記憶する。端末制御部110図4は、既存の電子署名検証プログラムを実行することにより、端末記憶部130図4が予め記憶している認証局証明書516を実行して、証明書検証プログラム508を検証する。すなわち、端末制御部110図4は、既存の電子署名検証プログラムを実行することにより、端末記憶部130図4に記憶されている認証局証明書516から電子署名を生成し、証明書検証プログラム508に付与された電子署名と一致するか否かを検証する。端末制御部110図4は、認証局証明書516から生成された電子署名と証明書検証プログラム508に付与された電子署名とが一致する場合に、証明書検証プログラム508を実行する。そして、端末制御部110図4は、証明書検証プログラム508を実行することにより、電子証明書611がサーバ装置200で生成された電子証明書であるか否かを検証する。ここで、端末制御部110図4は、証明書検証プログラム508を実行して、電子証明書611に対し、必要な場合は、BASE64やPKCS7のデコードを行うことも可能である。更に、端末制御部110図4は、電子証明書611がサーバ装置200で生成された電子証明書である場合に、受入判定が行われる受入判定602を出力する。そして、受入判定が行われた電子証明書611は、認証局600から発行された電子証明書と同様に、端末装置100において利用される。ここで、証明書検証プログラム508は、例えばActiveX登録商標で実装されていてもよい。サーバ装置200における処理の説明図6は、サーバ装置200における処理を示す図である。ここで、実施の形態1では、サーバ装置200は、サーバ装置200自身を証明する電子証明書であるルート証明書を発行する場合を想定する。そして、電子証明書611は、X.509形式の電子証明書を例に示す。サーバ記憶部230は、サーバ自身を特定する情報であるサーバ特定情報を予め記憶している。このサーバ特定情報は、後述の証明書記載情報608に含まれる情報を含んだ証明書記載情報608の元となる情報である。例えば、サーバ特定情報には、後述の発行者情報305などが含まれる。証明書情報生成プログラム550における処理前述の通り、サーバ制御部210は、最初に証明書情報生成プログラム550を実行し証明書記載情報608を生成する。この際に、サーバ制御部210は、サーバ記憶部230に記憶されたサーバ特定情報を用いる。図6に示すように、証明書記載情報608は、少なくとも発行者情報305、有効期限306、主体者情報307、主体者公開鍵情報308、拡張情報309を含む。これらの情報は、生データでもよいし、特定の方式たとえばASN.1AbstractSyntaxNotationOneでエンコードされていてもよい。発行者情報305は、電子証明書611の発行者を示す情報である為、サーバ装置200を示す情報となる。例えば、発行者情報305は、サーバ装置200の名称や識別子などである。主体者情報307は、電子証明書611が証明する対象の情報である。ここでルート証明書の場合、主体者はサーバ装置200である為、主体者情報307は、サーバ装置200を示す情報となる。すなわち、ルート証明書の場合は、主体者情報307と発行者情報305とは同じ内容であっても良い。少なくとも主体者情報307と発行者情報305とは、サーバ特定情報に含まれサーバ記憶部230に記憶されている。有効期限306は、電子証明書611の有効期限を示す情報である。サーバ制御部210は、証明書情報生成プログラム550実行時から、証明書情報生成プログラム550に予めプログラミングされた一定期間が経過した時を有効期限306として設定する。主体者公開鍵情報308は、サーバ装置200の秘密鍵によってサーバ制御部210が暗号化した情報を平文化する為の公開鍵の情報である。主体者公開鍵情報308は、サーバ特定情報の一部としてサーバ記憶部230に予め記憶されていても良い。あるいは、主体者公開鍵情報308は、サーバ制御部210が証明書情報生成プログラム550を実行時に生成されてもよい。なお、サーバ装置200の秘密鍵は、サーバ記憶部230に予め記憶されている。拡張情報309は、電子証明書611に記載される前記発行者情報305、有効期限306、主体者情報307、主体者公開鍵情報308以外の情報である。例えば電子証明書611の識別子であっても良いし、公開鍵のアルゴリズムを示す情報であっても良い。拡張情報309は、端末制御部110が証明書情報生成プログラム550を実行時に生成されてもよいし、サーバ記憶部230に記憶されていても良い。証明書情報署名プログラム507における処理次に、サーバ制御部210は、証明書情報署名プログラム507を実行する。ここで、サーバ制御部210は、証明書情報署名プログラム507を実行して証明書記載情報608から電子署名609を生成する。この電子署名609は、端末装置100が証明書検証プログラム508を実行して検証可能であれば良く、形式を問わない。すなわち、電子署名609は、公開鍵暗号署名やIDベース署名を用いてもよいし、独自の電子署名生成方式であっても構わない。また、サーバ制御部210は、端末装置100が証明書検証プログラム508を実行して電子署名609を検証するのに必要な情報である署名検証パラメータ311を、証明書情報署名プログラム507を実行して生成する。署名検証パラメータ311は、例えば、証明書情報署名プログラム507における電子署名609の生成アルゴリズムハッシュ関数や公開鍵暗号方式、もしくは独自の電子署名生成方式などの情報が含まれる。証明書生成プログラム514における処理そして、サーバ制御部210は、証明書生成プログラム514を実行する。サーバ制御部210は、証明書生成プログラム514を実行して、証明書記載情報608と電子署名609と署名検証パラメータ311とから電子証明書611を生成する。サーバ制御部210は、図6に示す通り、証明書記載情報608に含まれる発行者情報305、有効期限306、主体者情報307、主体者公開鍵情報308、拡張情報309をそのまま電子証明書611に格納する。そして、サーバ制御部210は、X.509形式の電子証明書を生成する場合、電子署名609をシリアル番号313として、署名検証パラメータ311を発行者ユニークID315として電子証明書611に格納してもよい。更に、電子証明書611は、証明書生成プログラム514の実行により生成されたバージョン情報312と電子署名314と主体者ユニークID316とを含む。バージョン情報312は、電子証明書611のバージョンを示す情報である。主体者ユニークID316は、例えば主体者ルート証明書の場合は、サーバ装置200の識別子である。主体者ユニークID316は主体者情報307と同一であっても構わない。電子署名314は、証明書生成プログラム514によって、例えば、所定の情報のハッシュ値が求められ、更に求められたハッシュ値をサーバ記憶部230に記憶されている秘密鍵で暗号化されたものである。ここで、所定の情報は、例えば主体者ユニークID316などである。生成された電子証明書611は、前述の通り、サーバ通信部220によって、端末装置100に送信される。端末装置100における処理の説明図7は、端末装置100における処理を示す図である。前述の通り、端末制御部110は、端末通信部120を介して電子証明書611を受信すると、証明書検証プログラム508を実行して、電子証明書611の検証を行う。ここで、電子証明書611は、前述の通りX.509形式であり、シリアル番号313に電子署名609が格納され、発行者ユニークID315に署名検証パラメータ311が格納されているものとする。端末制御部110は、証明書検証プログラム508を実行して、電子証明書611から発行者情報305、有効期限306、主体者情報307、主体者公開鍵情報308、拡張情報309が示す情報を検証対象情報として取得する。更に、端末制御部110は、証明書検証プログラム508を実行して、電子証明書611からシリアル番号313電子署名609と発行者ユニークID315署名検証パラメータ311とを取得する。そして、端末制御部110は、証明書検証プログラム508を実行して、発行者ユニークID315署名検証パラメータ311に示された電子署名609の生成アルゴリズムなどの情報に基づき、検証対象情報発行者情報305、有効期限306、主体者情報307、主体者公開鍵情報308、拡張情報309から電子署名を生成する。そして、端末制御部110は、証明書検証プログラム508を実行して、検証対象情報から生成した電子署名とシリアル番号313電子署名609とを比較する。そして、検証対象情報から生成した電子署名とシリアル番号313電子署名609とが一致する場合に、端末制御部110は、電子証明書611の受入判定を行う受入判定602を出力する。実施の形態1の効果実施の形態1における電子証明書発行システム端末装置100とサーバ装置200は、電子証明書611に証明書検証プログラム508によって検証が可能な電子署名609を加えることで、第三者機関が運用する認証局に頼らずに、かつ人手を介することなく、電子証明書611の発行が可能である。また、端末装置100は、証明書検証プログラム508をサーバ装置200からダウンロードすることにより、端末装置100自体に予め特別な設定電子証明書の検証プログラムを端末装置に組み込む等を行う必要が無い。更に、証明書検証プログラム508は、認証局600の電子署名504が付与されている為、端末装置100は、証明書検証プログラム508の改ざんの有無を検証可能である。すなわち、端末装置100は、改ざんが無いことが確認された証明書検証プログラム508を実行して、電子証明書611の検証を行う為、通信の安全性も保証可能である。また、第三者機関が運用する認証局による認証局証明書516の発行は、一つの証明書検証プログラム508に対して行われる。よって、第三者機関が運用する認証局が端末装置100毎に電子証明書を発行する場合に比べて、コストを低く抑えることができる。実施の形態2.実施の形態2では、サーバ装置200は、端末装置100を証明するサーバ証明書またはクライアント証明書を発行する場合を想定する。端末装置100は、サービスを受けるクライアントと成ることも、自らがサービスを提供するサーバとなることも可能である。そして、端末装置100がクライアントとして機能する場合、端末装置100を証明する証明書は、クライアント証明書となり、端末装置100がサーバとして機能する場合、端末装置100を証明する証明書は、サーバ証明書となる。実施の形態2における端末装置100とサーバ装置200との構成図8は、端末装置100とサーバ装置200との構成を示す図である。各構成要素は、実施の形態1と同じであるが、使用されるプログラムが異なるので、実施の形態1と異なる部分のみ説明する。なお、端末制御部110は、実施の形態1で説明の検証実行部に加え、証明書送信要求生成部にも対応する。サーバ記憶部230は、実施の形態1の証明書情報生成プログラム550に代わり、製造元501によって生成された証明書発行要求検証プログラム506を例えば、製造元501による製造時に、予め記憶している。証明書検証プログラム508、証明書情報署名プログラム507、証明書生成プログラム514については実施の形態1と同様である。ここで、製造元501は、サーバ装置200毎に、証明書発行要求検証プログラム506を生成してもよい。その場合に、製造元501は、プログラムの内、サーバ装置200毎に依存するデータを分離し、サーバ装置200に非依存の部分をサーバ装置200製造時に、サーバ記憶部230に記憶させることが出来る。そして、製造元501はサーバ装置200製造後に、サーバ装置200毎に依存するデータ生成し、後から各サーバ装置200のサーバ記憶部230に追加して記憶させることが出来る。あるいは、サーバ装置200が自らサーバ装置200毎に依存するデータを生成し、サーバ記憶部230がサーバ装置200毎に依存するデータを追加して記憶することが出来る。端末記憶部130は、証明書検証プログラム508と認証局証明書516とに加え、証明書発行要求署名プログラム505と証明書発行要求生成プログラム509とを記憶する。ここで、証明書発行要求署名プログラム505と証明書発行要求生成プログラム509とは、製造元501によって生成される。端末装置100は、製造元501によって製造されてもよく、その場合は、端末記憶部130は、証明書発行要求署名プログラム505と証明書発行要求生成プログラム509とを製造時に予め記憶することができる。あるいは、端末記憶部130は、CD-ROMなどの記録媒体で配布された証明書発行要求署名プログラム505と証明書発行要求生成プログラム509とを記憶してもよい。さらに、製造元501は、端末装置100毎に証明書発行要求署名プログラム505と証明書発行要求生成プログラム509とを生成してもよい。その場合に、製造元501は、プログラムの内、端末装置100毎に依存するデータを分離し、端末装置100に非依存の部分をインターネット等で配布し、端末装置100毎に依存するデータのみを安全な方法で配布例えばCD-ROMによる配布してもよい。サーバ証明書もしくはクライアント証明書発行の動作図9を用いてサーバ証明書もしくはクライアント証明書発行の動作の概要を説明する。図9は、端末装置100の要求に基づき、サーバ装置200が生成した電子証明書を端末装置100に発行する際のフローを示す図である。端末装置100の端末制御部110図8は、端末記憶部130図8に記憶された証明書発行要求生成プログラム509を実行して証明書発行要求610を生成する詳細は後述。そして、端末制御部110図8は、端末記憶部130図8に記憶された証明書発行要求署名プログラム505を実行して、証明書発行要求610から署名付き証明書発行要求601を生成する。すなわち、端末制御部110図8は、端末装置100の電子証明書サーバ証明書もしくはクライアント証明書の送信を要求する電子署名付きの証明書送信要求を生成する。端末通信部120は、生成された署名付き証明書発行要求601証明書送信要求をサーバ装置200に送信する。なお、署名付き証明書発行要求601は、端末装置100を特定する端末装置特定情報を含んでいる詳細は後述。サーバ装置200のサーバ通信部220図8は、端末装置特定情報を含み、端末装置100の電子証明書サーバ証明書もしくはクライアント証明書の送信を要求する署名付き証明書発行要求601電子署名付きの証明書送信要求を端末装置100から受信する。ここで、端末装置特定情報とは、例えば端末装置100の名称や識別子などである。また、端末装置100がクライアントとして機能する場合は、クライアントとして機能することを示す情報、端末装置100がサーバとして機能する場合は、サーバとして機能することを示す情報も端末装置特定情報に含まれる。サーバ制御部210図8は、サーバ記憶部230に記憶された証明書発行要求検証プログラム506を実行して、受信した署名付き証明書発行要求601が証明書発行要求署名プログラム505にて署名されているか否かを検証する。すなわち、サーバ制御部210図8は、サーバ通信部220によって受信された署名付き証明書発行要求601証明書送信要求が含む端末装置特定情報から電子署名を生成し、サーバ通信部220により受信された署名付き証明書発行要求601証明書送信要求の電子署名が、端末装置特定情報から生成された電子署名と一致するか否かを検証する。そして、サーバ制御部210図8は、署名付き証明書発行要求601が証明書発行要求署名プログラム505にて署名されていると検証出来た場合に、署名付き証明書発行要求601から証明書記載情報608を抽出する。更に、サーバ制御部210は、サーバ記憶部230に記憶された証明書情報署名プログラム507と証明書生成プログラム514とを実行して、抽出された証明書記載情報608から電子証明書611を生成する。ここで、電子証明書611は、サーバ証明書もしくはクライアント証明書となる。すなわち、サーバ制御部210は、サーバ通信部220により受信された署名付き証明書発行要求601証明書送信要求の電子署名が、端末装置特定情報から生成された電子署名と一致する場合に、サーバ通信部220により受信された署名付き証明書発行要求601証明書送信要求が含む端末装置特定情報に基づいて端末装置100の電子証明書サーバ証明書もしくはクライアント証明書を生成する。サーバ装置200における電子証明書611の生成処理は実施の形態1と同じ為、説明を省略する。同様に、端末通信部120は、サーバ装置200から端末装置100の電子証明書サーバ証明書もしくはクライアント証明書と証明書検証プログラム508とを受信する。端末装置100における電子証明書611の検証処理も実施の形態1と同じ為、説明を省略する。端末装置100における処理の説明図10は、端末装置100における処理を示す図である。前述の通り、端末装置100は証明書発行要求生成プログラム509を実行し、証明書発行要求610を生成する。ここで、端末記憶部130は、端末装置100を特定する端末装置特定情報を予め記憶している。サーバ証明書もしくはクライアント証明書との差異は、この端末装置100がサーバとして機能することを示す情報を含んでいるか、あるいは、この端末装置100がクライアントとして機能することを示す情報を含んでいるかである。そして、端末装置100は証明書発行要求生成プログラム509を実行し、端末装置特定情報を元に証明書発行要求610を生成する。次に、端末制御部110は、証明書発行要求署名プログラム505を実行することにより、証明書発行要求610から証明書発行要求情報704を生成する。証明書発行要求情報704は、図10に示す通り、バージョン情報312、主体者情報307、主体者公開鍵情報308、属性708、電子署名701から構成される。バージョン情報312は、サーバ証明書もしくはクライアント証明書のバージョンを示す情報であり、証明書発行要求生成プログラム509の実行により生成され、証明書発行要求610に予め含まれている。主体者情報307は、電子証明書611が証明する対象の情報である。ここで主体者は端末装置100である為、主体者情報307は、端末装置100を示す情報となる。主体者情報307は、端末装置特定情報から抽出される。主体者情報307は、証明書発行要求生成プログラム509の実行により証明書発行要求610に予め含まれている。主体者公開鍵情報308は、端末装置100の主体者秘密鍵603によって暗号化された情報を平文化する為の公開鍵の情報である。主体者公開鍵情報308は、端末装置特定情報の一部として端末記憶部130に予め記憶されていても良い。あるいは、主体者公開鍵情報308は、端末制御部110が証明書発行要求生成プログラム509を実行時に生成されてもよい。主体者公開鍵情報308は、証明書発行要求610に予め含まれている。なお、サーバ装置200の主体者秘密鍵603は、サーバ記憶部230に予め記憶されている。また、属性708は、例えば、証明書発行要求署名プログラム505における電子署名810の生成アルゴリズムハッシュ関数や公開鍵暗号方式、もしくは独自の電子署名生成方式などの情報を含む。属性708は証明書発行要求生成プログラム509を実行時に生成され、証明書発行要求610に予め含まれている。そして、端末制御部110は、証明書発行要求署名プログラム505を実行して主体者情報307と主体者公開鍵情報308とから電子署名810を生成する。この電子署名810は、サーバ装置200が証明書発行要求検証プログラム506を実行して検証可能であれば良く、形式を問わない。すなわち、電子署名810は、公開鍵暗号署名やIDベース署名を用いてもよいし、独自の電子署名生成方式であっても構わない。そして、端末制御部110は、電子署名810を属性708の情報の一部として追加する。ここで、端末制御部110は、証明書発行要求署名プログラム505を実行して主体者情報307と主体者公開鍵情報308と、属性708とから電子署名810を生成しても構わない。更に、端末制御部110は、証明書発行要求署名プログラム505を実行して所定の情報のハッシュ値を求め、求めたハッシュ値を主体者秘密鍵603でエンコード暗号化することにより、電子署名701を生成する。ここで、所定の情報とは、証明書発行要求情報704バージョン情報312、主体者情報307、主体者公開鍵情報308、属性708である。端末制御部110は、バージョン情報312、主体者情報307、主体者公開鍵情報308、属性708を証明書発行要求情報704とし、証明書発行要求情報704に電子署名701が追加されたものを署名付き証明書発行要求601として、端末通信部120を介し、サーバ装置200に送信する。サーバ装置200における処理の説明図11は、サーバ装置200における処理を示す図である。サーバ制御部210は、サーバ通信部220を介して署名付き証明書発行要求601を受信すると、証明書発行要求検証プログラム506を実行して、署名付き証明書発行要求601の検証を行う。まず、サーバ制御部210は、証明書発行要求検証プログラム506を実行して、署名付き証明書発行要求601から証明書発行要求情報704を抽出デコードする。また、サーバ制御部210は、証明書発行要求検証プログラム506を実行して、署名付き証明書発行要求601から電子署名701を抽出する図示は省略。次に、図示は省略するが、サーバ制御部210は、証明書発行要求検証プログラム506を実行して、電子署名701の検証を行う。すなわち、サーバ制御部210は、主体者公開鍵情報308で電子署名701の復号を行い、更に証明書発行要求情報704から電子署名を生成し、復号された電子署名701と比較することで、電子署名701の検証を行う。サーバ制御部210は、証明書発行要求情報704から生成された電子署名と復号された電子署名701とが一致した場合に、証明書発行要求情報704は改ざんされていないと判断することが出来る。そして、サーバ制御部210は、証明書発行要求検証プログラム506を実行して、主体者情報307と主体者公開鍵情報308とから属性708に記された電子署名810の生成アルゴリズムにより電子署名を生成する。そして、サーバ制御部210は、生成した電子署名と属性708に含まれている電子署名810とを比較することで、電子署名810を検証する。サーバ制御部210は、生成した電子署名と属性708に含まれている電子署名810とが一致した場合に、署名付き証明書発行要求601が、証明書発行要求署名プログラム505を備えた端末装置100によって生成されたと判断することが出来る。ここで、証明書発行要求署名プログラム505を備えた端末装置100は、端末装置100の電子証明書サーバ証明書もしくはクライアント証明書の発行要求を許可された正当な端末装置100と言うことが出来る。また、サーバ制御部210は、生成した電子署名と属性708に含まれている電子署名810とが一致した場合に、署名付き証明書発行要求601が正当な端末装置100から要求されたものであることを示す検証結果711を出力する。そして、サーバ制御部210は、実施の形態1で説明の通り、証明書情報生成プログラム550を実行し証明書記載情報608を生成する。この時に、サーバ制御部210は、証明書発行要求情報704から主体者情報307と主体者公開鍵情報308とを抽出し、証明書記載情報608に格納する。以降の処理は、実施の形態1と同様である為、説明を省略する。このようにして、サーバ装置200は、端末装置100を主体者とした電子証明書611サーバ証明書もしくはクライアント証明書を発行する。実施の形態2の効果実施の形態2における電子証明書発行システム端末装置100とサーバ装置200は、実施の形態1の効果に加え、端末装置100が署名付き証明書発行要求601証明書送信要求を生成して、サーバ装置200に送信し、要求された電子証明書611をサーバ装置200にて生成することが可能である。そして、サーバ装置200は、署名付き証明書発行要求601証明書送信要求の検証を行うことで、不正な第三者からの証明書送信要求を拒否することが出来、無制限な証明書発行を抑制することができる。実施の形態3.実施の形態3では、実施の形態2と同様にサーバ装置200は、端末装置100を証明するサーバ証明書またはクライアント証明書を発行する場合を想定する。実施の形態3の構成は、実施の形態2と同じで有る為、説明を省略する。端末装置100における処理の説明図12は、端末装置100における処理を示す図である。最初に、端末制御部110は、実施の形態2と同様に証明書発行要求生成プログラム509を実行して証明書発行要求610を生成する。そして、端末制御部110は、実施の形態2と同様に証明書発行要求署名プログラム505を実行して証明書発行要求情報704を生成する。更に、端末制御部110は、実施の形態2と同様に証明書発行要求署名プログラム505を実行して電子署名810を生成する。ここで電子署名810は、実施の形態2と同様に公開鍵暗号署名やIDベース署名を用いてもよいし、独自の電子署名生成方式であっても構わない。なお、電子署名810は、実施の形態2と同様に主体者情報307と主体者公開鍵情報308とから生成されてもよいし、証明書発行要求610から生成されてもよい。次に端末制御部110は、証明書発行要求署名プログラム505を実行して、証明書発行要求署名プログラム505に定められた所定の方式で、電子署名810に対してエンコードを行い、エンコード電子署名812を生成する。ここでエンコードの所定の方式とは、例えばBASE64等である。更に、端末制御部110は、証明書発行要求署名プログラム505を実行して、証明書発行要求610とエンコード電子署名812とを一つのファイルに一体化重畳し、署名付き証明書発行要求601を生成する。署名付き証明書発行要求601は、例えば、図12に記載のように特定の文字列BeginCSR、EndCSR、BeginCSRSignature、EndCSRSignatureを用いて、証明書発行要求610とエンコード電子署名812とが区別出来るようになっていてもよい。署名付き証明書発行要求601は、端末通信部120を介して、サーバ装置200に送信される。サーバ装置200における処理の説明図13は、サーバ装置200における処理を示す図である。サーバ制御部210は、サーバ通信部220を介して署名付き証明書発行要求601を受信すると、証明書発行要求検証プログラム506を実行して、証明書発行要求610とエンコード電子署名812とを分離する。サーバ制御部210は、端末装置100における証明書発行要求署名プログラム505の処理と同様に、証明書発行要求610から証明書発行要求情報704バージョン情報312、主体者情報307、主体者公開鍵情報308、属性708を抽出する。そして、サーバ制御部210は、端末装置100における証明書発行要求署名プログラム505の処理と同様に、主体者情報307と主体者公開鍵情報308とから電子署名820を生成する。ここで、端末制御部110が証明書発行要求署名プログラム505を実行して、証明書発行要求610から電子署名810を生成した場合は、サーバ制御部210は、証明書発行要求610から電子署名820を生成する。一方、サーバ制御部210は、証明書発行要求検証プログラム506で定められた所定の方式で、エンコード電子署名812をデコードし、電子署名810を生成する。ここでデコードの所定の方式とは、証明書発行要求署名プログラム505に定められたエンコードの方式をデコードする為の方式である。サーバ制御部210は、証明書発行要求検証プログラム506を実行して、電子署名820と電子署名810とが一致するか否かの検証を行う。電子署名820と電子署名810とが一致する場合に、サーバ制御部210は、署名付き証明書発行要求601が、証明書発行要求署名プログラム505を備えた端末装置100によって生成されたと判断することが出来る。ここで、証明書発行要求署名プログラム505を備えた端末装置100は、端末装置100の電子証明書サーバ証明書もしくはクライアント証明書の発行要求を許可された正当な端末装置100と言うことが出来る。また、サーバ制御部210は、電子署名820と電子署名810とが一致した場合に、署名付き証明書発行要求601が正当な端末装置100から要求されたものであることを示す検証結果711を出力する。そして、サーバ制御部210は、実施の形態1および実施の形態2で説明の通り、証明書情報生成プログラム550を実行し証明書記載情報608を生成する。この時に、サーバ制御部210は、証明書発行要求情報704から主体者情報307と主体者公開鍵情報308とを抽出し、証明書記載情報608に格納する。以降の処理は、実施の形態1および実施の形態2と同様である為、説明を省略する。このようにして、サーバ装置200は、端末装置100を主体者とした電子証明書611サーバ証明書もしくはクライアント証明書を発行する。実施の形態3の効果実施の形態3における電子証明書発行システム端末装置100とサーバ装置200は、主体者秘密鍵603を使わずに実施の形態2の効果を実現可能である。例えばIISInternetInformationService登録商標でWebサーバを構築する場合、端末装置100は、証明書発行要求を生成しても、主体者秘密鍵603を取得することができない。実施の形態3における電子証明書発行システム端末装置100とサーバ装置200は、このようなケースでも電子証明書の発行を行なうことができる。まとめると、実施の形態1~3において、サーバ装置200から、電子証明書611と、電子署名504付きのプログラムであって、前記電子証明書611が前記サーバ装置200で生成された電子証明書611であるか否かを検証するための証明書検証プログラム508とを受信する通信部端末通信部120と、認証局600により生成された証明書であり、前記認証局600により前記証明書検証プログラム508が認証されていることを証明する証明書を認証局証明書516として記憶する認証局証明書記憶部端末記憶部130と、前記認証局証明書記憶部端末記憶部130に記憶されている認証局証明書516から電子署名を生成し、前記通信部端末通信部120により受信された証明書検証プログラム508の電子署名504が前記認証局証明書516から生成された電子署名と一致するか否かを検証し、前記通信部端末通信部120により受信された証明書検証プログラム508の電子署名504が前記認証局証明書516から生成された電子署名と一致する場合に、前記通信部端末通信部120により受信された前記証明書検証プログラム508を実行して、前記通信部端末通信部120により受信された電子証明書611が前記サーバ装置200で生成された電子証明書611であるか否かを検証する検証実行部端末制御部110とを備えることを特徴とする端末装置100について説明した。更に、実施の形態2~3において、前記端末装置100は、更に、前記端末装置100の電子証明書611の送信を要求する、電子署名付きの証明書送信要求署名付き証明書発行要求601を生成する証明書送信要求生成部端末制御部110を備え、前記通信部端末通信部120は、前記証明書送信要求署名付き証明書発行要求601を前記サーバ装置200に送信するとともに、前記サーバ装置200から、前記端末装置100の電子証明書611と前記証明書検証プログラム508とを受信することを特徴とする端末装置100について説明した。更に、実施の形態1~3において、認証局600によって生成された電子署名504が付加された電子署名付きのプログラムであって、電子証明書611の送信先において電子証明書611の生成元を検証するための証明書検証プログラム508を記憶する証明書検証プログラム記憶部サーバ記憶部230と、電子証明書611を生成する電子証明書生成部サーバ制御部210と、前記証明書検証プログラム記憶部サーバ記憶部230に記憶されている証明書検証プログラム508と、前記電子証明書生成部サーバ制御部210により生成された電子証明書611とを、送信先に送信する通信部サーバ通信部220とを備えることを特徴とするサーバ装置200について説明した。更に、実施の形態1において、前記サーバ装置200は、更に、前記サーバ装置200を特定するサーバ特定情報を記憶するサーバ特定情報記憶部サーバ記憶部230を備え、前記電子証明書生成部サーバ制御部210は、前記サーバ特定情報記憶部サーバ記憶部230に記憶されたサーバ特定情報に基づいて前記サーバ装置200の電子証明書611を生成することを特徴とするサーバ装置について説明した。更に、実施の形態2~3において、前記通信部サーバ通信部220は、端末装置100から、前記端末装置100を特定する端末装置特定情報を含み、前記端末装置100の電子証明書611の送信を要求する、電子署名付きの証明書送信要求署名付き証明書発行要求601を受信し、前記電子証明書生成部サーバ制御部210は、前記通信部サーバ通信部220によって受信された証明書送信要求署名付き証明書発行要求601が含む端末装置特定情報から電子署名を生成し、前記通信部サーバ通信部220により受信された証明書送信要求署名付き証明書発行要求601の電子署名が前記端末装置特定情報から生成された電子署名と一致するか否かを検証し、前記通信部サーバ通信部220により受信された証明書送信要求署名付き証明書発行要求601の電子署名が前記端末装置特定情報から生成された電子署名と一致する場合に、前記通信部サーバ通信部220によって受信された証明書送信要求署名付き証明書発行要求601が含む端末装置特定情報に基づいて前記端末装置100の電子証明書611を生成することを特徴とするサーバ装置について説明した。更に、実施の形態1~3において、端末装置100と、サーバ装置200とを備えたことを特徴とする電子証明書発行システムについて説明した。なお、既に、説明したように、本実施の形態1に示す端末装置100とサーバ装置200とは、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。そして、上記したように~部として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。