"鍵発行サーバの公開鍵と、初期化プログラムを記憶する記憶部と、外部から入力される前記鍵発行サーバの公開鍵と初期化プログラムを前記記憶部に書き込むデバッグ部と、前記記憶部に記憶された初期化プログラムを読み出して、実行する命令実行ユニットと、乱数を発生させる乱数発生部と、前記初期化プログラムが実行されることにより、前記デバッグ部を無効にするデバックポート無効化部と、前記初期化プログラムが実行されることにより、前記デバッグ部の無効後に前記乱数発生部により発生させられた乱数を、前記記憶部内の前記公開鍵で暗号化する公開鍵暗号化部と、前記初期化プログラムが実行されることにより、暗号化された乱数を、前記鍵発行サーバに送信する送信部と、前記初期化プログラムが実行されることにより、前記鍵発行サーバから、前記乱数により暗号化された個別鍵を受信する受信部と、前記初期化プログラムが実行されることにより、前記暗号化された個別鍵を前記乱数で復号して個別鍵を取得し、前記個別鍵を前記記憶部に書き込む個別鍵書込み部とをを有することを特徴とする通信装置。前記受信部は、前記鍵発行サーバの秘密鍵による前記乱数の署名データを、前記鍵発行サーバから受信し、前記個別鍵書込み部は、前記乱数と前記公開鍵に基づき前記署名データの検証を行い、検証が成功したときのみ、前記個別鍵を前記記憶部に書き込むことを特徴とする請求項1に記載の通信装置。一意識別子を記憶する一意識別子レジスタをさらに備え、前記公開鍵暗号化部は、前記乱数と前記一意識別子の結合データを、前記公開鍵で暗号化し、前記送信部は、暗号化した結合データを、前記鍵発行サーバに出力することを特徴とする請求項1または2に記載の通信装置。前記記憶部は、アプリケーションプログラムを記憶し、前記命令実行ユニットは、前記アプリケーションプログラムを実行することにより、前記記憶部に記憶された前記個別鍵を用いて、所定のアプリケーションサーバと暗号化通信を行うことを特徴とする請求項1ないし3のいずれか一項に記載の通信装置。外部から入力される、鍵発行サーバの公開鍵と、初期化プログラムをデバッグ部が受け取って、記憶部に書き込む書き込みステップと、前記記憶部に書き込まれた前記初期化プログラムを読み出して、実行する実行ステップと、前記初期化プログラムが実行されることにより、前記デバッグ部を無効にするステップと、前記初期化プログラムが実行されることにより、前記デバッグの無効後に発生させた乱数を前記記憶部内の前記公開鍵で暗号化するステップと、前記初期化プログラムが実行されることにより、暗号化された乱数を、前記鍵発行サーバに送信するステップと、前記初期化プログラムが実行されることにより、前記鍵発行サーバから、前記乱数により暗号化された個別鍵を受信するステップと、前記初期化プログラムが実行されることにより、前記暗号化された個別鍵を前記乱数で復号して個別鍵を取得し、前記個別鍵を前記記憶部に書き込むステップとを備えた通信方法。認証向け秘密鍵個別鍵を持つ機器について、上記プログラム保護機能を持った製品を適用した場合、ソフトウェアとともに秘密鍵をチップ内蔵メモリに書き込んだ後デバッグポートを無効化すれば、その後秘密鍵はチップ解析のような特殊技術を適用しない限り安全である。だが、上記方法を単純に適用した場合、製造工程では秘密鍵が平文で扱われるため内部不正者の脅威に対して安全ではない。低価格のマイコンにおいては、ICカードの製造工程で採用される多段階の鍵管理はもとよりそもそもまったく秘密鍵をもたないため、書込みデータを単に暗号化する方法は適用できない。このようなマイコンを適用したシステムにも秘密鍵書き込みを安全に行える方法が求められている。本発明の一観点は、上記課題を解決するためになされたものであり、製造工程において秘密鍵個別鍵を安全に書き込むことを目的とする。本発明の一態様としての通信装置は、鍵発行サーバと通信する通信装置であって、記憶部と、デバッグ部と、命令実行ユニットと、乱数発生部と、ポート無効化部と、公開鍵暗号化部と、送信部と、受信部と、個別鍵書込み部とを備える。前記記憶部は、鍵発行サーバの公開鍵と、初期化プログラムを記憶する。前記デバッグ部は、外部から入力される前記鍵発行サーバの公開鍵と初期化プログラムを前記記憶部に書き込む。前記命令実行ユニットは、前記記憶部に記憶された初期化プログラムを読み出して、実行する。前記乱数発生部は、乱数を発生させる乱数発生部。前記デバッグポート無効化部は、前記初期化プログラムが実行されることにより、前記デバッグ部を無効にする。前記公開鍵暗号化部は、前記初期化プログラムが実行されることにより、前記デバッグ部の無効後に前記乱数発生部により発生させられた乱数を、前記記憶部内の前記公開鍵で暗号化する。前記送信部は、前記初期化プログラムが実行されることにより、暗号化された乱数を、前記鍵発行サーバに送信する。前記受信部は、前記初期化プログラムが実行されることにより、前記鍵発行サーバから、前記乱数により暗号化された個別鍵を受信する。前記個別鍵書込み部は、前記初期化プログラムが実行されることにより、前記暗号化された個別鍵を前記乱数で復号して個別鍵を取得し、前記個別鍵を前記記憶部に書き込む。本実施形態は、エンドユーザの家に設置されるメータ装置の製造工程において、電力会社側のサーバとの通信暗号化、認証に用いる個別鍵を、安全に埋め込み且つ保持する仕組みを提供するものである。メータ装置は、製造工程において本実施形態により安全に個別鍵を書き込まれた後、最終的に製造者の手を離れて、エンドユーザの家に設置される。家に設置されたメータ装置は、家内の機器の消費電力を計測して、ネットワーク経由でメータ計量結果を電力計量サーバに通知する運用や、電力計量サーバからの制御メッセージに基づいて供給電力量を調整する等の運用がなされる。メータ装置に書き込まれる個別鍵は、これらのサーバとメータ装置との間の通信における相互認証での信頼の起点Rootoftrustとして機能する。たとえばLANにおけるクライアント認証の方式として8021xTLS非特許文献3を利用する場合、メータ装置の個別鍵に基づいて認証を行えば、正規の個別鍵を持たない不正な装置がネットワークに侵入したり、不正な装置が別のメータ装置になりすます攻撃を排除することができる。したがって、このような個別鍵には、秘匿性が要求される。CPU内の不揮発メモリに格納された個別鍵は、メータ装置がユーザエンドの家に配置された後の運用中は、外部からの攻撃に対して安全である。すなわち、運用中にメータ装置が攻撃者の手に渡ったとしても、背景技術の欄で述べたようにデバッガ機能を禁止しておくことで、内部メモリ不揮発性メモリへの直接アクセスが不能な状態とすることができる。この状態では、内部に書き込まれた秘密鍵を取得するにはチップ物理解析やサイドチャネルアタックなどの高度の技術が必要であり、信頼の起点となる個別鍵は攻撃から安全である。ネットワークインタフェースを経由した通信はあるが、外部との通信プロトコルの選択と実装が適切であれば個別鍵が漏れる危険はない。だが、製造工程を見た場合大きな危険がある。製造工程はコスト要因により、安全性レベルは、実施が容易で効率のよい攻撃方法への対策のみにとどめられていることが多く、安全性に対する対策がなされていても不十分でなことが多い。攻撃の性格によっても対策のしやすさは異なる。装置にデータを書き込む完全性改ざん防止と機密性の保護については次のような性質がある。まず製造工程での装置毎の書込み処理の記録は品質管理の目的で管理されており記録が残されることが多い。情報の改ざんは記録が残ってしまうため、攻撃が発覚する可能性が高い。情報の改ざんは情報の窃取よりは実行が困難である。一方、鍵書き込み装置の上でファイル操作が必要な場合に、ファイルの中身について一部複写を作成したり、ファイル全体の複製をする操作が作業員による非定形処理として行われる場合、この情報を持ち去る攻撃は比較的簡単に実行でき、かつ非定形処理のため記録が残されないことがしばしばある。このようなファイル持ち出しを防止する手法はいくつかあるが、コストがかかるうえに高い水準の人的管理が必須である。たとえばUSBメモリ接続禁止と言ったルールを定めたり、装置側にUSBメモリ接続禁止の設定をしたとしても、それが現場の要望によって変更されてしまうことは非常に多い。装置の生産は労働集約的な工程であり工程再編により別の工場に移設されることも多いため、生産現場の人的管理を高い水準で管理することは困難である。そこで、本実施形態は、このような管理水準の低い製造工程においても、メータ装置に、安全に個別鍵を書き込み、書き込んだ個別鍵を安全に保持する仕組みを提供しようとするものである。図1に、本発明の実施形態に係る通信装置を備えたメータ装置のハードウェア構成を示す。メータ装置100は、当該通信装置としてのCPU101と、電力計測装置230と、無線IF220と、EEPROMElectricallyErasableProgrammableReadOnlyMemory210と、デバッグポート111と、ネットワークポート112、ADポート115とを備える。CPU101は、ワンチップのマイコンである。電力計測装置230は、ユーザエンドの家やビル等の施設内に設けられた機器による消費電力を計測する。無線IF220は、所定の規格に従って、無線通信を実行する。IEEE802.11やZigbee規格に準拠した無線通信でもよいし、3G移動通信システム等による地上系の通信でもよい。ネットワークポート112は、LANケーブル等のネットワークケーブルを接続するためのポートであり、CPU101内の有線IFに電気的に接続されている。本実施形態では有線通信として、イーサネット登録商標を行うとするが、これに限定されるものではない。CPU101は、メータ装置の製造工程で行われる初期化処理後述により鍵発行サーバから個別鍵共通鍵を取得し、内部の記憶部不揮発性メモリに書き込む。ユーザエンド宅に配置された後の運用中は、この個別鍵でアプリケーションサーバ電力計量サーバや電力管理サーバなどとの間で、暗号化または認証された通信を行う。たとえば電力計量サーバと認証を行い、電力消費の計測結果データを暗号化して、電力計量サーバに送信する。EEPROM210は、機器の設定情報たとえば有線IFの設定情報などや、計測結果データ等を記憶する。デバッグポート111は、製造工程においてソフトウェアおよびハードウェアのデバッグを行うために、メータ装置へデバッグ装置を接続するためのポートである。デバッグポート111は、CPUが備えるデバッグ機能デバッグ部への指示データの信号を入力する部分となる。デバッグポート111は、CPUの端子デバッグ端子を介して、CPU内部のデバッグ部に電気的に接続されている。デバッグポート111およびデバッグ部を利用することで、CPU101の不揮発メモリにアクセス書き込み、読み出ししたり、命令実行ユニットに指示したりすることが可能である。ADポート115は、メータ装置の製造工程において、外部の雑音発生装置を接続して、乱数生成用の雑音信号を入力するためのポートである。入力された信号は、CPU101が備えるADCによりデジタル信号に変換される。図示の例ではポート111、115、112がメータ装置のボード上に配置されているが、配置位置はこれに限定されず、たとえばメータ装置を格納する筐体に配置されてもよい。本実施形態のメータ装置は、その製造工程において、鍵管理サーバ2から安全に個別鍵を取得して、CPU101の不揮発メモリに書き込み、書き込んだ個別鍵を安全に保持することを特徴とする。図2に、本発明の実施形態に係るメータ装置へ個別鍵を安全に書き込むための鍵書き込みシステムの全体構成を示す。この鍵書き込みシステム1は、図1のメータ装置100と、初期化プログラム書き込み装置10と、雑音発生装置20と、VPN終端装置30と、FW書き込み装置40と、ローカルネットワーク50とを含む。鍵書き込みシステム1はインターネット等の広域ネットワーク3を介して、鍵発行サーバ2に接続される。鍵発行サーバ2は、メータ装置に対する個別鍵を発行する。鍵発行サーバ2は、安全な場所で管理されている。VPN終端装置30により、鍵発行サーバ2との間でVPN論理接続4が形成され、鍵書き込みシステム1と鍵発行サーバ2との間の通信は、VPN論理接続4を利用して行われる。以下、メータ装置100が、鍵発行サーバ2から個別鍵を安全に受信および保持する動作の概略を説明する。はじめに初期化プログラム書き込み装置10が、メータ装置100のデバッグポート111に接続される。初期化プログラム書き込み装置100は、初期化プログラム12および鍵交換サーバ2の公開鍵を、メータ装置100のデバッグ部を介して、メータ装置100の不揮発メモリに書き込む。続いて、書き込み装置とメータ装置との接続を解除して、メータ装置100に初期化用プログラムを実行させる。これにより初期化処理が行われる。初期化処理の動作例の概略を、以下に示す。まずデバッグポート111を無効化し、次に雑音発生装置200からの雑音信号を利用して乱数を生成する。生成した乱数およびメータ装置の一意識別子の結合データを、鍵交換サーバ2の公開鍵で暗号化し、暗号化されたデータを、イーサネット50およびVPN4を介して、鍵交換サーバ2に送る。鍵交換サーバ2では、公開鍵に対応する秘密鍵で、暗号化されたデータを復号するとともに、メータ装置100に個別鍵を割り当てる。そして、秘密鍵により上記乱数の署名を生成し、個別鍵と署名データとの結合データを、上記乱数で暗号化し、暗号化したデータを、メータ装置100に送る。メータ装置100では、上記の乱数で、暗号化されたデータを復号して個別鍵と署名を取り出し、公開鍵と上記乱数に基づき署名の正当性を検証し、正当と判断したとき、復号された個別鍵を、不揮発メモリに書き込む。この後、イーサネット50を介してFW書き込み装置40に接続し、仕向け先毎にカスタマイズされた機能を実現するFWソフトウェアをダウンロードし、ダウンロードしたFWを、メータ装置の不揮発メモリに書き込む。なお、FWは、本実施形態では、メータ装置100の電力計測装置230で計測された計測結果データを収集し、計測結果データを個別鍵で暗号化して、電力計量サーバに送る機能を有するアプリケーションプログラム、または、電力管理サーバからの制御メッセージに基づいて供給電力量を調整するアプリケーションプログラムを含む。製造工程を経たメータ装置は出荷され、図3のように、ユーザエンドの家や、ビル等の施設に配置される。メータ装置100は、スマートグリッド網500を介して、電力計量サーバ501または電力管理サーバ502と通信する。電力計量サーバ501または電力管理サーバ502は、メータ装置100の個別鍵と同じ鍵共通鍵もしくは認証用公開鍵ペアをもっている。この個別鍵を利用して、メータ装置100およびサーバ間で、暗号、復号、および認証が行われる。なお電力計量サーバ501または電力管理サーバ502は、物理的に鍵発行サーバ2と同じ装置内にあってもよい。以下、初期化処理により個別鍵を安全に取得および保持するメータ装置100の構成および動作について、さらに詳細に説明する。図4に、図1のメータ装置100が備えるCPU101のハードウェア構成を示す。CPU101は、デバッグ部190、制御レジスタ150、命令実行ユニット120、不揮発メモリ130、RAM140、一意識別子レジスタ180、UARTUniversalAsynchronousReceiverTransmitter184、I2CInterIntegratedCircuit183、有線IF182、乱数発生部RNG:RandomNumberGenerator160、ADC170、バス185を備える。要素150、160、170、180、184、183、182は、バスを介して、相互接続されている。なおここでは単一バス構造が示されるが、コントローラを介して複数のバスが相互結合されてもよい。デバッグ部190は、外部のデバッグポート111から入力される指示データの信号に応じて、不揮発メモリ130にアクセスする。制御レジスタ150は、デバッグ部190の動作を制御する値を格納する。制御レジスタ150に所定の値を書き込むことによって、デバッグ部190の機能を無効にして、デバッグポート111からの入力をデバッグ部190に受け付けなくすることができる。このようにデバッグ部190の機能を無効にすることを、デバッグポート111を無効化すると表現することもある。命令実行ユニット120は、プログラムに含まれる命令コードを実行する。命令実行ユニット120は、不揮発メモリ130から、指定のプログラムを読み出し、RAM140に展開して、実行する。RAM140は、プログラム実行中に発生する作業データも記憶する。一意識別子レジスタ180は、CPUの一意識別子ChipIDを記憶している。一意識別子は、たとえば所定ビット数により表される数値である。ADC170は、雑音発生装置20図2参照からADポート115を介して入力される雑音信号を、デジタル信号に変換する。たとえば雑音の振幅信号を、8ビットまたは16ビット等のビット値に変換する。雑音発生装置20は、雑音信号の生成にあたり、たとえば内部で発生する熱雑音を利用してもよい。有線IF182送信部、受信部は、所定の規格に従って有線通信を行う。本実施形態では有線IF182が、イーサネットコントローラである例が示される。図2の鍵組み込みシステム例の場合では有線IF182は、ローカルネットワーク50上の装置と、イーサネットによる通信を行う。なお無線IF220送信部、受信部は、図1の例ではチップの外側に設けられているが、チップ内に設けられても良い。乱数発生部160は、命令実行ユニット120の指示に応じて、乱数を生成する。乱数発生部160は、疑似乱数方式をとる場合入力パラメータに基づいて所定の疑似乱数列を生成する関数を保持している。入力パラメータとして、ADC170により得られたビット信号の値である雑音値を与えても良いし、RAM140や不揮発メモリ130上の事前に指定したアドレスまたはランダムに決定したアドレスの値を与えても良い。また、疑似乱数列ではなく、内部で発生する熱雑音を乱数に変換する回路を持つ構成でもおい。乱数は、乱数発生部160を用いて生成する他、ADC170により得られたビット信号の値である雑音値をそのまま乱数として用いてもよい。この場合、ADC170が乱数発生部として機能することになる。このように雑音値を利用することで、第3者に推測されにくい、乱数を得る。I2C183は、図1のEEPROM210とシリアル通信を行い、EEPROM210に対し、データの読み出しおよび書き込みを行う。UART184は、図1の無線IF220へ送る信号をパラレルシリアル変換し、また無線IF220からの信号をシリアルパラレル変換する。図5にメータ装置100による初期化処理の流れの例を示す。まず、メータ装置100が、デバッグポート111を通じて、図2の初期化プログラム書き込み装置10と接続されるステップS501。続いて、デバッグポート111から、初期化プログラム12が、CPUチップ101内の不揮発性メモリ130に書き込まれる。初期化プログラム12は、鍵発行サーバ2の公開鍵を含んでいる。続いて、メータ装置100と、書き込み装置10との接続を解除し、メータ装置100の命令実行ユニット120に、初期化プログラムを実行させる。初期化プログラムの起動は、再起動のためのリセットスイッチがあるときは、そのリセットスイッチを押下することで行い、リセットスイッチがないときは、装置の電源をいったん切断し、その後電源を再投入することで行えばよい。本初期化用プログラムの実行により、以下のステップS504~S511が行われる。まず、メータ装置100のデバッグポート111が無効化すなわちデバッグ部190が無効にされるステップS504。具体的に、CPU101の制御レジスタ150に、命令実行ユニット120から所定の値を書き込むことによって、デバッグポート111を無効化する。これにより、デバッグポート111を介した、不正者による不揮発メモリへのアクセスを防止できる。続いて、初期化プログラムに一部として含まれる通信ソフトウェアの実行により、イーサネットコントローラ182に、所定の値MACアドレスや、受信パケットの格納先メモリアドレスなどを書き込む。これによりイーサネットコントローラ182を介したLAN通信が、可能とされる。次に、乱数Rを発生させる。乱数は、乱数発生部160、あるいはADC170による雑音信号の変換結果を利用する。発生させられた乱数は、鍵発行サーバとの通信の一時鍵として用いられる。ここで、以下の説明で用いる暗号処理及び定数を説明しておく。ZEPKpA公開鍵KpによるデータAの非対称暗号化。出力はZ。IVKpMsgSigメッセージMsgと署名Sigに対する公開鍵Kpによる署名検証。PSS等の所定のパディングを用いることが望ましい。Iは検証結果。SigSKsMsgMsgに対するKsによる署名生成。YESX秘密鍵SによるXの共通鍵ブロック暗号化。Yを計算する。SXY全てのデータサイズはブロック長に一致。以下の実施例ではAES128を例にとりブロック長が128ビットとして説明するがそのほかの暗号アルゴリズムを用いても差し支えない。XDSY秘密鍵SによるXの共通鍵ブロック復号。ChipIDチップの一意識別番号。一意識別子レジスタ180から取得できる。次に、鍵発行サーバ2への個別鍵発行を要求するメッセージM1を、以下の式1に従って作成する。そして、作成したメッセージM1を、イーサネットコントローラ182を介して、鍵発行サーバ2に送信する。M1EPKpChipIDR式1式1は以下を意味する。すなわち一意識別子レジスタ180に記憶されたチップの一意識別番号ChipIDと、生成した乱数Rとを結合し、結合データを得る。そして、結合データを鍵発行サーバ2の公開鍵で暗号化する。これによりメッセージM1を得る。鍵発行サーバ2では、メッセージM1を受信し、公開鍵Kpに対応する秘密鍵KsによってメッセージM1を復号する。これにより、ChipIDと、乱数Rを取り出す。鍵発行サーバ2は、ChipIDに対し、個別鍵Krootを割り当てて、ChipIDと個別鍵Krootとの対応を、自身のデータベースに記録する。個別鍵はメータ装置間で同じ値が重複しないように割り当てる。鍵発行サーバ2は、記録した個別鍵KrootとChipIDとの対応を、別途のサーバ電力計量サーバや電力管理サーバにセキュアな方法で、送ってもよい。そして、鍵発行サーバ2では、下記の式2により、メッセージM2を生成して、メータ装置100に送信する。これにより、個別鍵Krootを安全に、メータ装置100に送信する。SigSKsRM2ERKrootSig式2式2は以下を意味する。すなわち、乱数Rを、鍵発行サーバ2の秘密鍵Ksにより署名し、署名Sigを作成する。署名の方法は、従来から知られている任意のアルゴリズムを用いればよい。一例を挙げると、乱数Rとハッシュ関数によりハッシュ値を計算し、ハッシュ値を秘密鍵Ksで暗号化することにより、署名Sigを得る。そして、個別鍵Krootと署名Sigとを結合して結合データを取得し、結合データを乱数Rで暗号化する。これによりメッセージM2を得る。メッセージM2を受信したメータ装置100は、保持している乱数Rで、メッセージM2を復号するステップS508。復号により個別鍵Krootと、署名Sigが取り出される。続いて、署名Sigの検証を行うステップS509。上記の例により署名が生成された場合は、検証は次のように行われる。まず署名Sigを公開鍵Kpで復号し、復号値を得る。また乱数Rから、所定のハッシュ関数鍵発行サーバ2で使用したのと同じを用いて、ハッシュ値を計算する。計算したハッシュ値が、復号値と一致するか検査し、一致するときは、検証が成功、一致しないときは失敗と判断する。検証に成功した場合、内部の不揮発メモリ130に、個別鍵Krootを書き込むステップS510。検証に失敗した場合、検証失敗の旨を表示する。検証失敗の表示方法としては、たとえばイーサネットコントローラ182または無線IF220を介して、管理者の端末に異常状態を示すデータフレームを送信することで行ってもよいし、スピーカを備えるならばブザーを鳴らしても良い。個別鍵が書き込まれたメータ装置はその後、仕向け先毎に個別機能を実現するFWソフトウェアがFW書込み装置40によって書き込まれる。より詳細には、初期化プログラムがFW書き込み40からFWのデータを受信し、RAM140に格納する。FWの内容が署名検証で正しいことを確認した上で、FWのデータを不揮発メモリ130の書き込み単位ブロック~512バイトなどごとに、転送元のRAMアドレスと、転送先の不揮発メモリのアドレス、ブロックサイズを指定して書き込み専用のDMAコントローラ図示せずに転送指示を出して書き込む。このような書き込みのインタフェースは何種類か存在し、特定の方法に限定されるものではない。書き込みが終わったメータ装置は、その後、工場から出荷される。以上の処理では、メータ装置100は、イーサネットを介して鍵交換サーバ2と通信したが、無線IF220を用いて無線通信より鍵交換サーバ2と通信してもよい。ただし、無線IFを通した場合は、この無線ネットワークに第3者が侵入しないような仕組み電波暗室のような設備や、暗号による一般の無線LANセキュリティが必要である。図6は、本実施形態に係わるメータ装置の機能構成を示す機能ブロック図である。デバッグ部190は、デバッグポート111を通じて、図2の初期化プログラム書き込み装置10から初期化プログラムおよび鍵発行サーバの公開鍵の書き込み指示を受ける。デバック部190は、これら初期化プログラムおよび公開鍵を、不揮発メモリ130に書き込む。初期化プログラムの実行により初期化手段410が実体化される。初期化手段410のデバッグポート無効化手段404は、デバッグ部190を無効にし、これによりデバッグポートが無効化される。LAN有効化手段405が、所定の初期化動作を行い、イーサネットコントローラ182に、所定の値MACアドレスなどが書き込み、イーサネット通信を可能にする。乱数発生手段406は、乱数発生部160、あるいは雑音発生装置20による雑音信号のAD変換結果を利用して、乱数Rを発生させる。送信メッセージ作成送信手段407は、鍵発行サーバ2への個別鍵発行を要求するメッセージM1たとえば前述したM1EPKpChipIDRを作成して、イーサネットコントローラ182を介して、鍵発行サーバ2に送信する。公開鍵Kpによる暗号化は、公開鍵暗号化手段421で行う。公開鍵暗号化手段421は、ChipIDRChipIDと乱数Rの結合を、公開鍵Kpで暗号化し、暗号化されたデータを、送信メッセージ作成送信手段407に返す。受信メッセージ復号検証手段408は、鍵発行サーバ2からメッセージM2たとえば前述したM2ERKrootSig、SigSKsRを受信し、メッセージM2を復号する。復号は、共通鍵復号手段423を用いて行い、共通鍵復号手段423では、乱数R共通鍵あるいは一時鍵により、メッセージM2を復号する。復号により個別鍵Krootと、署名Sigが取り出される。受信メッセージ復号検証手段408は、公開鍵検証手段424を用いて、乱数Rに対する署名Sigの検証を行う。公開鍵検証手段424では、乱数Rと公開鍵Kpを用いて、署名Sigの検証を行う。個別鍵保存手段409は、検証が成功した場合、内部の不揮発メモリ130に、個別鍵Krootを書き込み、検証に失敗した場合、検証失敗の旨を表示する。運用時手段431は、メータ装置の運用時において、公開鍵暗号化手段421,共通鍵暗号化手段422、共通鍵復号手段423、公開鍵検証手段424を利用して、該当するサーバたとえば電力計量サーバ、電力管理サーバなどとの間で、通信を行う。たとえば、共通鍵暗号化手段422を用いて、図1の電力計測装置230により得られた計測結果データを、個別鍵で暗号化して、電力計量サーバに送る。この際、公開鍵暗号化手段421を用いて当該サーバの公開鍵による暗号化を行ってもよいし、公開鍵検証手段424および共通鍵復号手段423を利用して、サーバ認証を行ってもよい。上記実施形態ではメッセージM1の作成にあたり、ChipIDと、乱数Rとの結合を、公開鍵により暗号化したが、乱数Rのみを公開鍵で暗号化し、ChipIDは暗号化せずに送信してもよい。また、乱数Rのみを公開鍵で暗号化して送信し、ChipIDの送信は行わない構成も可能である。この場合、鍵発行サーバでは、メータ装置と、個別鍵との対応を別の方法でとればよい。たとえば、メータ装置から受信したフレームに記載されている送信元アドレスと、発行した個別鍵とを対応づけてもよい。以上に述べた本実施形態によれば、メータ装置の製造工程中においても、個別鍵を安全に取得でき、不正者または攻撃者へ個別鍵が漏洩するのを防止することが可能となる。すなわち、ネットワークインタフェースを通じて送受信されるメッセージM1M2は、それぞれ公開鍵Kpおよび一時鍵Rにより暗号化されているため、傍受者はそこから有効な情報を得ることは困難である。また、攻撃者が正しい検証サーバになりすましてメッセージM2を偽造し、メータ装置に不正な鍵を送りつける攻撃に対しては、メッセージM2にあらかじめ秘匿されて送信されたRに対する署名が含まれ、この検証が行われるため、乱数Rを知らない攻撃者が偽造したメッセージは、この検証ステップで検証が通らず、メータ装置には受け入れられない。ただし、鍵発行サーバ2に対して、メータ装置になりすまして、鍵発行要求をすることは、上記の通信手順の上では可能である。これは製造工程で書き込まれる初期化プログラム12の秘匿が、上記の管理上の理由で困難であることにより、初期化プログラムで正しいメータ装置であることを確認することが、難しいためである。このことから、たとえば攻撃者がデバッグ部の無効化をもたないような不正装置を独自に作成し、上記生産システムに持ち込み、鍵発行サーバ2から個別鍵の発行を受けた上で、同不正装置を生産システムから持ち出し、デバッグ部を利用して個別鍵を暴くような攻撃は、上記の仕組み単体では阻止できない。しかしながら、CPUにはデバッグ部の無効化をもたないバリエーションが存在する場合もあるが、そのような場合はデバッグ部の無効化を実施するにあたって、初期化ソフトウェアで同機能の有無を確認し、同機能を持たない装置では、以後の処理を中止することにより回避が可能である。また、メッセージM1にはCPU個体毎のChipID一意識別子が含まれており、鍵発行サーバ2ではそれを記録している。したがって、鍵発行サーバ2でChipIDが記録済みか否かを確認することで、当該ChipIDが、正しい過程で生産されたメータ装置のものかどうかを照合することもできる。また、初期化プログラム12が不正なものに置き換えられる可能性も、論理的にはありうる。ただし初期化プログラム書き込み装置上のプログラムを不正なものに置き換えた場合、不正操作の証拠が残る。また、書込み装置自体を不正なものに置き換えることは、初期化プログラムの書込みは、1対1接続のデバッグポートを経由しており、この工程で不正な書込み装置の接続を行う不正は外観でわかるため、困難である。本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。"