(57)【特許請求の範囲】
【請求項１】
管理装置と、第一暗号通信装置と、第二暗号通信装置とを備える暗号通信システムにおいて、
上記管理装置は、マスター鍵記憶部と、一時鍵生成部とを有し、
上記管理装置の上記マスター鍵記憶部は、第一マスター鍵を記憶し、
上記管理装置の上記一時鍵生成部は、上記管理装置の上記マスター鍵記憶部が記憶した上記第一マスター鍵と、一時鍵生成用データとを使って、第一一時鍵を生成し、
上記第一暗号通信装置は、一時鍵生成用データ通知部と、暗号通信部とを有し、
上記第一暗号通信装置の上記一時鍵生成用データ通知部は、上記管理装置の上記一時鍵生成部が上記第一一時鍵の生成に使った上記一時鍵生成用データを、上記第二暗号通信装置に対して通知し、
上記第一暗号通信装置の上記暗号通信部は、上記管理装置の上記一時鍵生成部が生成した上記第一一時鍵を使って、上記第二暗号通信装置との間で暗号通信をし、
上記第二暗号通信装置は、マスター鍵記憶部と、一時鍵生成用データ検証部と、一時鍵生成部と、暗号通信部とを有し、
上記第二暗号通信装置の上記マスター鍵記憶部は、上記管理装置の上記マスター鍵記憶部が記憶した上記第一マスター鍵と同一の、又は、上記第一マスター鍵に対応する、第二マスター鍵を記憶し、
上記第二暗号通信装置の上記一時鍵生成用データ検証部は、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であるか否かを判定し、
上記第二暗号通信装置の上記一時鍵生成部は、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であると上記第二暗号通信装置の上記一時鍵生成用データ検証部が判定した場合に、上記第二暗号通信装置の上記マスター鍵記憶部が記憶した上記第二マスター鍵と、上記第二暗号通信装置の上記一時鍵生成用データ検証部が有効であると判定した上記一時鍵生成用データとを使って、上記管理装置の上記一時鍵生成部が生成した上記第一一時鍵と同一の、又は、上記第一一時鍵に対応する第二一時鍵を生成し、
上記第二暗号通信装置の上記暗号通信部は、上記第二暗号通信装置の上記一時鍵生成部が生成した上記第二一時鍵を使って、上記第一暗号通信装置との間で暗号通信をする
ことを特徴とする暗号通信システム。
【請求項２】
上記管理装置は、更に、一時鍵生成用データ記憶部と、一時鍵生成用データ更新部とを有し、
上記管理装置の上記一時鍵生成用データ記憶部は、上記管理装置の上記一時鍵生成部が上記第一一時鍵の生成に使う一時鍵生成用データを記憶し、
上記管理装置の上記一時鍵生成用データ更新部は、第一の周期が経過するごとに、上記管理装置の上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを、繰り返し更新し、
上記第二暗号通信装置は、更に、検証用データ記憶部と、検証用データ更新部とを有し、
上記第二暗号通信装置の上記検証用データ記憶部は、検証用データを記憶し、
上記第二暗号通信装置の上記検証用データ更新部は、第二の周期が経過するごとに、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データを、繰り返し更新し、
上記第二暗号通信装置の上記一時鍵生成用データ検証部は、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データを使って、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であるか否かを判定する
ことを特徴とする請求項１に記載の暗号通信システム。
【請求項３】
上記管理装置の上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データ、及び、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データは、数値を表わすデータであり、
上記管理装置の上記一時鍵生成用データ更新部は、上記管理装置の上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データが表わす上記数値に、増分値を加算した和を算出し、上記管理装置の上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを、算出した上記和を表わすデータで更新し、
上記第二暗号通信装置の上記検証用データ更新部は、上記管理装置の上記一時鍵生成用データ更新部が上記一時鍵生成用データを更新する上記第二の周期のｎ倍の周期が経過するごとに、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データが表わす上記数値に、上記管理装置の上記一時鍵生成用データ更新部が上記一時鍵生成用データの更新に使う上記増分値のｎ倍の増分値を加算した和を算出し、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データを、算出した上記和を表わすデータで更新し、
上記第二暗号通信装置の上記一時鍵生成用データ検証部は、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが表わす上記数値が、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データが表わす上記数値以上である場合に、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であると判定する
ことを特徴とする請求項２に記載の暗号通信システム。
【請求項４】
上記第二暗号通信装置の上記検証用データ記憶部は、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であると上記第二暗号通信装置の上記一時鍵生成用データ検証部が判定した場合に、上記第二暗号通信装置の上記一時鍵生成用データ検証部が有効であると判定した上記一時鍵生成用データを、上記検証用データとして記憶することを特徴とする請求項２に記載の暗号通信システム。
【請求項５】
上記第二暗号通信装置は、更に、検証用データ記憶部を有し、
上記第二暗号通信装置の上記検証用データ記憶部は、検証用データを記憶し、
上記第二暗号通信装置の上記一時鍵生成用データ検証部は、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データを使って、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であるか否かを判定し、
上記管理装置は、更に、初期化コマンド生成部を有し、
上記管理装置の上記初期化コマンド生成部は、上記第二暗号通信装置の上記検証用データ記憶部が記憶した検証用データを初期化する初期化コマンドを生成し、
上記第一暗号通信装置は、更に、初期化コマンド通知部を有し、
上記第一暗号通信装置の上記初期化コマンド通知部は、上記管理装置の上記初期化コマンド生成部が生成した上記初期化コマンドを上記第二暗号通信装置に対して通知し、
上記第二暗号通信装置は、更に、初期化コマンド検証部を有し、
上記第二暗号通信装置の上記初期化コマンド検証部は、上記第一暗号通信装置の上記初期化コマンド通知部から通知された上記初期化コマンドが有効であるか否かを判定し、
上記第二暗号通信装置の上記検証用データ記憶部は、上記第一暗号通信装置の上記初期化コマンド通知部から通知された上記初期化コマンドが有効であると上記第二暗号通信装置の上記初期化コマンド検証部が判定した場合に、記憶した上記検証用データを初期化する
ことを特徴とする請求項１から請求項４のいずれかに記載の暗号通信システム。
【請求項６】
上記第二暗号通信装置の上記初期化コマンド検証部は、上記第一暗号通信装置の上記初期化コマンド通知部から通知された上記初期化コマンドが生成されてから第一の期間が経過していない場合に、上記第一暗号通信装置の上記初期化コマンド通知部から通知された上記初期化コマンドが有効であると判定する
ことを特徴とする請求項５に記載の暗号通信システム。
【請求項７】
上記管理装置の上記初期化コマンド生成部が生成した上記初期化コマンドは、上記初期化コマンドが生成された日付を表わす情報を含み、
上記第二暗号通信装置の上記初期化コマンド検証部は、上記第一暗号通信装置の上記初期化コマンド通知部から通知された上記初期化コマンドに含まれる上記情報が表わす上記日付が、現在の日付から第一の日数前より以後である場合に、上記第一暗号通信装置の上記初期化コマンド通知部から通知された上記初期化コマンドが有効であると判定する
ことを特徴とする請求項６に記載の暗号通信システム。
【請求項８】
上記管理装置は、更に、一時鍵生成用データ記憶部と、一時鍵生成用データ更新部とを有し、
上記管理装置の上記一時鍵生成用データ記憶部は、上記管理装置の上記一時鍵生成部が上記第一一時鍵の生成に使う一時鍵生成用データを記憶し、
上記管理装置の上記一時鍵生成用データ更新部は、第一の周期が経過するごとに、上記管理装置の上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを、繰り返し更新し、
上記第二暗号通信装置は、更に、検証用データ更新部を有し、
上記第二暗号通信装置の上記検証用データ更新部は、第二の周期が経過するごとに、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データを、繰り返し更新し、
上記管理装置の上記初期化コマンド生成部が生成した上記初期化コマンドは、上記管理装置の上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを表わす情報を含み、
上記第二暗号通信装置の上記検証用データ記憶部は、有効であると上記第二暗号通信装置の上記初期化コマンド検証部が判定した上記初期化コマンドに含まれる上記情報が表わす上記一時鍵生成用データを、上記検証用データとして記憶することにより、上記検証用データを初期化する
ことを特徴とする請求項５に記載の暗号通信システム。
【請求項９】
上記管理装置の上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データ、及び、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データは、数値を表わすデータであり、
上記管理装置の上記一時鍵生成用データ更新部は、上記管理装置の上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データが表わす上記数値に、増分値を加算した和を算出し、上記管理装置の上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを、算出した上記和を表わすデータで更新し、
上記第二暗号通信装置の上記検証用データ更新部は、上記管理装置の上記一時鍵生成用データ更新部が上記一時鍵生成用データを更新する上記第一の周期のｎ倍の周期が経過するごとに、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データが表わす上記数値に、上記管理装置の上記一時鍵生成用データ更新部が上記一時鍵生成用データの更新に使う上記増分値のｎ倍の増分値を加算した和を算出し、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データを、算出した上記和を表わすデータで更新し、
上記第二暗号通信装置の上記一時鍵生成用データ検証部は、上記第二暗号通信装置の上記検証用データ記憶部が上記検証用データを初期化してから第二の期間が経過するまでの間は、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが表わす上記数値が、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データが表わす上記数値と等しい場合に、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であると判定し、上記第二暗号通信装置の上記検証用データ記憶部が上記検証用データを初期化する前、及び、上記第二暗号通信装置の上記検証用データ記憶部が上記検証用データを初期化してから上記第二の期間が経過した後は、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが表わす上記数値が、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データが表わす上記数値以上である場合に、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であると判定する
ことを特徴とする請求項８に記載の暗号通信システム。
【請求項１０】
上記管理装置の上記初期化コマンド生成部が生成した上記初期化コマンドは、上記管理装置の上記マスター鍵記憶部が記憶した上記第一マスター鍵を使って暗号化した情報を含み、
上記第二暗号通信装置の上記初期化コマンド検証部は、上記第一暗号通信装置の上記初期化コマンド通知部から通知された上記初期化コマンドに含まれる情報を、上記第二暗号通信装置の上記マスター鍵記憶部が記憶した上記第二マスター鍵を使って復号する
ことを特徴とする請求項５に記載の暗号通信システム。
【請求項１１】
上記第一暗号通信装置は、上記管理装置から物理的に離れて構成された装置であり、
上記管理装置は、更に、一時鍵通知部と、一時鍵生成用データ通知部とを有し、
上記管理装置の上記一時鍵通知部は、上記管理装置の上記一時鍵生成部が生成した上記第一一時鍵を、上記第一暗号通信装置に対して通知し、
上記管理装置の上記一時鍵生成用データ通知部は、上記管理装置の上記一時鍵生成部が上記第一一時鍵の生成に使った上記一時鍵生成用データを、上記第一暗号通信装置に対して通知し、
上記第一暗号通信装置は、更に、一時鍵記憶部と、一時鍵生成用データ記憶部とを有し、
上記第一暗号通信装置の上記一時鍵記憶部は、上記管理装置の上記一時鍵通知部から通知された上記第一一時鍵を記憶し、
上記第一暗号通信装置の上記一時鍵生成用データ記憶部は、上記管理装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データを記憶し、
上記第一暗号通信装置の上記一時鍵生成用データ通知部は、上記第一暗号通信装置の上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを、上記第二暗号通信装置に対して通知する
ことを特徴とする請求項１から請求項４のいずれかに記載の暗号通信システム。
【請求項１２】
上記第一暗号通信装置は、携帯端末であることを特徴とする請求項１１に記載の暗号通信システム。
【請求項１３】
マスター鍵を記憶するマスター鍵記憶部と、
他の暗号処理装置から通知された一時鍵生成用データが有効であるか否かを判定する一時鍵生成用データ検証部と、
上記他の暗号処理装置から通知された上記一時鍵生成用データが有効であると上記一時鍵生成用データ検証部が判定した場合に、上記マスター鍵記憶部が記憶した上記マスター鍵と、上記他の暗号処理装置から通知された上記一時鍵生成用データとを使って、一時鍵を生成する一時鍵生成部と、
上記一時鍵生成部が生成した上記一時鍵を使って、上記他の暗号処理装置と暗号通信する暗号通信部と
を備えることを特徴とする暗号処理装置。
【請求項１４】
上記暗号処理装置は、更に、一時鍵生成用データ記憶部と、一時鍵生成用データ更新部とを有し、
上記一時鍵生成用データ記憶部は、上記一時鍵生成部が上記一時鍵の生成に使う一時鍵生成用データを記憶し、
上記一時鍵生成用データ更新部は、第一の周期が経過するごとに、上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを、繰り返し更新し、
上記一時鍵生成用データ検証部は、上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを使って、上記他の暗号処理装置から通知された上記一時鍵生成用データが有効であるか否かを判定する
ことを特徴とする請求項１３に記載の暗号処理装置。
【請求項１５】
上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データは、数値を表わすデータであり、
上記一時鍵生成用データ更新部は、上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データが表わす上記数値に、増分値を加算した和を算出し、上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを、算出した上記和を表わすデータで更新し、
上記一時鍵生成用データ検証部は、上記他の暗号処理装置から通知された上記一時鍵生成用データが表わす上記数値が、上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データが表わす上記数値以上である場合に、上記他の暗号処理装置から通知された上記一時鍵生成用データが有効であると判定する
ことを特徴とする請求項１４に記載の暗号処理装置。
【請求項１６】
上記一時鍵生成用データ記憶部は、上記他の暗号処理装置から通知された上記一時鍵生成用データが有効であると上記一時鍵生成用データ検証部が判定した場合に、有効であると上記一時鍵生成用データ検証部が判定した上記一時鍵生成用データを記憶することを特徴とする請求項１５に記載の暗号処理装置。
【請求項１７】
上記暗号処理装置は、更に、初期化コマンド検証部を有し、
上記初期化コマンド検証部は、上記他の暗号処理装置から通知された初期化コマンドが有効であるか否かを判定し、
上記一時鍵生成用データ記憶部は、上記他の暗号処理装置から通知された上記初期化コマンドが有効であると上記初期化コマンド検証部が判定した場合に、記憶した上記一時鍵生成用データを初期化する
ことを特徴とする請求項１４から請求項１６のいずれかに記載の暗号処理装置。
【請求項１８】
他の暗号処理装置から通知された一時鍵生成用データが有効であるか否かを判定する一時鍵生成用データ検証処理をする一時鍵生成用データ検証部と、
上記他の暗号処理装置から通知された上記一時鍵生成用データが有効であると上記一時鍵生成用データ検証部が判定した場合に、マスター鍵と、上記一時鍵生成用データとを使って、一時鍵を生成する一時鍵生成処理をする一時鍵生成部と、
上記一時鍵生成処理で生成された上記一時鍵を使って、上記他の暗号処理装置と暗号通信する暗号通信処理をする暗号通信部
としてコンピュータを機能させるコンピュータプログラム。
【請求項１９】
管理装置と、第一暗号通信装置と、第二暗号通信装置とを備える暗号通信システムにおける暗号通信方法において、
上記管理装置は、第一マスター鍵を記憶し、
上記第二暗号通信装置は、上記管理装置が記憶した上記第一マスター鍵と同一の、又は、上記第一マスター鍵に対応する、第二マスター鍵を記憶し、
上記管理装置は、上記管理装置が記憶した上記第一マスター鍵と、一時鍵生成用データとを使って、第一一時鍵を生成し、
上記第二暗号通信装置は、上記第一暗号通信装置から通知された上記一時鍵生成用データが有効であるか否かを判定し、
上記第二暗号通信装置は、上記第一暗号通信装置から通知された上記一時鍵生成用データが有効であると上記第二暗号通信装置が判定した場合に、上記第二暗号通信装置が記憶した上記第二マスター鍵と、上記第二暗号通信装置が有効であると判定した上記一時鍵生成用データとを使って、上記管理装置が生成した上記第一一時鍵と同一の、又は、上記第一一時鍵に対応する第二一時鍵を生成し、
上記第一暗号通信装置は、上記管理装置が上記第一一時鍵の生成に使った上記一時鍵生成用データを、上記第二暗号通信装置に対して通知し、
上記第一暗号通信装置は、上記管理装置が生成した上記第一一時鍵を使って、上記第二暗号通信装置との間で暗号通信をし、
上記第二暗号通信装置は、上記第二暗号通信装置が生成した上記第二一時鍵を使って、上記第一暗号通信装置との間で暗号通信をする
ことを特徴とする暗号通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の装置が暗号通信をする暗号通信システムに関する。
【背景技術】
【０００２】
インターネット通信や無線通信など容易に盗聴が可能な通信方式を使って通信をする場合、第三者による盗聴や改竄を防ぐため、暗号通信が利用される。
例えば、共通鍵暗号を使って暗号通信をする場合、送信側と受信側とで使用する鍵を共有する必要があり、共有した鍵が外部に漏洩しないようにする必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−６８３９６号公報
【特許文献２】特開２００１−２５１２９２号公報
【特許文献３】特開２００２−２９０３９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば自動検針システムで用いられる携帯端末のように小型で携帯可能な装置が鍵を持っていると、使用者が装置を紛失し、第三者がそれを拾得することにより、鍵が漏洩する可能性がある。
この発明は、例えば、暗号通信に使う鍵を容易に共有・変更できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
この発明にかかる暗号通信システムは、
管理装置と、第一暗号通信装置と、第二暗号通信装置とを備える暗号通信システムにおいて、
上記管理装置は、マスター鍵記憶部と、一時鍵生成部とを有し、
上記管理装置の上記マスター鍵記憶部は、第一マスター鍵を記憶し、
上記管理装置の上記一時鍵生成部は、上記管理装置の上記マスター鍵記憶部が記憶した上記第一マスター鍵と、一時鍵生成用データとを使って、第一一時鍵を生成し、
上記第一暗号通信装置は、一時鍵生成用データ通知部と、暗号通信部とを有し、
上記第一暗号通信装置の上記一時鍵生成用データ通知部は、上記管理装置の上記一時鍵生成部が上記第一一時鍵の生成に使った上記一時鍵生成用データを、上記第二暗号通信装置に対して通知し、
上記第一暗号通信装置の上記暗号通信部は、上記管理装置の上記一時鍵生成部が生成した上記第一一時鍵を使って、上記第二暗号通信装置との間で暗号通信をし、
上記第二暗号通信装置は、マスター鍵記憶部と、一時鍵生成用データ検証部と、一時鍵生成部と、暗号通信部とを有し、
上記第二暗号通信装置の上記マスター鍵記憶部は、上記管理装置の上記マスター鍵記憶部が記憶した上記第一マスター鍵と同一の、又は、上記第一マスター鍵に対応する、第二マスター鍵を記憶し、
上記第二暗号通信装置の上記一時鍵生成用データ検証部は、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であるか否かを判定し、
上記第二暗号通信装置の上記一時鍵生成部は、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であると上記第二暗号通信装置の上記一時鍵生成用データ検証部が判定した場合に、上記第二暗号通信装置の上記マスター鍵記憶部が記憶した上記第二マスター鍵と、上記第二暗号通信装置の上記一時鍵生成用データ検証部が有効であると判定した上記一時鍵生成用データとを使って、上記管理装置の上記一時鍵生成部が生成した上記第一一時鍵と同一の、又は、上記第一一時鍵に対応する第二一時鍵を生成し、
上記第二暗号通信装置の上記暗号通信部は、上記第二暗号通信装置の上記一時鍵生成部が生成した上記第二一時鍵を使って、上記第一暗号通信装置との間で暗号通信をすることを特徴とする。
【発明の効果】
【０００６】
第二暗号通信装置が第一暗号通信装置から通知された一時鍵生成用データを使って一時鍵を生成するので、第一暗号通信装置と第二暗号通信装置とが、同一の、又は対応する一時鍵を使って、暗号通信をすることができる。これにより、一時鍵を共有しあるいは変更することが容易になる。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１における暗号通信システム８００の全体構成の一例を示すシステム構成図。
【図２】実施の形態１における管理装置１００、暗号通信装置２００及び暗号通信装置３００のハードウェア資源の一例を示すハードウェア構成図。
【図３】実施の形態１における管理装置１００の機能ブロックの一例を示すブロック構成図。
【図４】実施の形態１における暗号通信装置２００の機能ブロックの一例を示すブロック構成図。
【図５】実施の形態１における暗号通信装置３００の機能ブロックの一例を示すブロック構成図。
【図６】実施の形態１における初期化処理Ｓ６０１の流れの一例を示すフロー図。
【図７】実施の形態１における更新処理Ｓ６０２の流れの一例を示すフロー図。
【図８】実施の形態１における一時鍵通知処理Ｓ６０３の流れの一例を示すフロー図。
【図９】実施の形態１における暗号通信処理Ｓ６０４の流れの一例を示すフロー図。
【図１０】実施の形態３における自動検針システム８０１の全体構成の一例を示す図。
【図１１】実施の形態３における管理サーバ１０１の機能ブロックの一例を示す図。
【図１２】実施の形態３における携帯端末２０１の機能ブロックの一例を示す図。
【図１３】実施の形態３における検針メータ３０１の機能ブロックの一例を示す図。
【図１４】実施の形態３の管理サーバ１０１における鍵情報管理部１６１の詳細な機能ブロックの一例を示す図。
【図１５】実施の形態３の携帯端末２０１における対管理サーバ通信部２２１の詳細な機能ブロックの一例を示す図。
【図１６】実施の形態３の携帯端末２０１における対検針メータ通信部２９１の詳細な機能ブロックの一例を示す図。
【図１７】実施の形態３の検針メータ３０１における対携帯端末通信部３９１の詳細な機能ブロックの一例を示す図。
【図１８】実施の形態３における一時鍵通知処理Ｓ６０３の流れの一例を示すフロー図。
【図１９】実施の形態３における暗号通信処理Ｓ６０４の流れの一例を示すフロー図。
【図２０】実施の形態４における暗号通信システム８００の全体構成の一例を示すシステム構成図。
【図２１】実施の形態４における暗号通信装置５００の全体構成の一例を示すシステム構成図。
【図２２】実施の形態４における初期化処理Ｓ６０１の流れの一例を示すフロー図。
【図２３】実施の形態４における更新処理Ｓ６０２の流れの一例を示すフロー図。
【図２４】実施の形態４における暗号通信処理Ｓ６０４の流れの一例を示すフロー図。
【図２５】実施の形態５における自動検針システム８０１の全体構成の一例を示す図。
【図２６】実施の形態５における検針メータ３０１の機能ブロックの一例を示す図。
【図２７】実施の形態６における管理装置１００の機能ブロックの一例を示すブロック構成図。
【図２８】実施の形態６における暗号通信装置２００の機能ブロックの一例を示すブロック構成図。
【図２９】実施の形態６における暗号通信装置３００の機能ブロックの一例を示すブロック構成図。
【図３０】実施の形態６における一時鍵通知処理Ｓ６０３の流れの一例を示すフロー図。
【図３１】実施の形態６における暗号通信処理Ｓ６０４の流れの一例を示すフロー図。
【図３２】実施の形態７における暗号通信装置２００の機能ブロックの一例を示すブロック構成図。
【図３３】実施の形態７における暗号通信処理Ｓ６０４の流れの一例を示すフロー図。
【図３４】実施の形態８における管理サーバ１０１の機能ブロックの一例を示す図。
【図３５】実施の形態８における携帯端末２０１の機能ブロックの一例を示す図。
【図３６】実施の形態８における検針メータ３０１の機能ブロックの一例を示す図。
【図３７】実施の形態８の管理サーバ１０１におけるリセットパケット生成部１６６の詳細な機能ブロックの一例を示す図。
【図３８】実施の形態８の携帯端末２０１における対管理サーバ通信部２２１及び対検針メータ通信部２９１の詳細な機能ブロックの一例を示す図。
【図３９】実施の形態８の検針メータ３０１における対携帯端末通信部３９１の詳細な機能ブロックの一例を示す図。
【図４０】実施の形態８におけるリセットパケット通知処理Ｓ６０５の流れの一例を示すフロー図。
【図４１】実施の形態８における世代番号リセット処理Ｓ６０６の流れの一例を示すフロー図。
【発明を実施するための形態】
【０００８】
実施の形態１．
実施の形態１について、図１〜図９を用いて説明する。
【０００９】
図１は、この実施の形態における暗号通信システム８００の全体構成の一例を示すシステム構成図である。
【００１０】
暗号通信システム８００は、例えば、管理装置１００と、暗号通信装置２００と、暗号通信装置３００とを備える。
管理装置１００（暗号処理装置）は、マスター鍵を保管している。管理装置１００は、保管しているマスター鍵を使って、一時鍵を生成する。
暗号通信装置２００（暗号処理装置）は、管理装置１００と安全な方式を使って通信し、管理装置１００が生成した一時鍵を取得する。暗号通信装置２００は、取得した一時鍵を使って、暗号通信装置３００との間で暗号通信をする。
暗号通信装置３００（暗号処理装置）は、マスター鍵を保管している。暗号通信装置３００が保管しているマスター鍵は、管理装置１００が保管しているマスター鍵と同一のマスター鍵であってもよいし、管理装置１００が保管しているマスター鍵に対応するマスター鍵であってもよい。暗号通信装置３００は、保管しているマスター鍵を使って、一時鍵を生成する。暗号通信装置３００が生成する一時鍵は、管理装置１００が生成する一時鍵と同一の一時鍵であってもよいし、管理装置１００が生成する一時鍵に対応する一時鍵であってもよい。暗号通信装置３００は、自らが生成した一時鍵を使って、暗号通信装置２００との間で暗号通信をする。
【００１１】
図２は、この実施の形態における管理装置１００、暗号通信装置２００及び暗号通信装置３００のハードウェア資源の一例を示すハードウェア構成図である。
【００１２】
管理装置１００、暗号通信装置２００及び暗号通信装置３００は、例えば、コンピュータである。コンピュータは、例えば、処理装置９１１と、入力装置９１２と、出力装置９１３と、記憶装置９１４と、通信装置９１５とを有する。
処理装置９１１は、記憶装置９１４が記憶したコンピュータプログラムを実行することにより、データを処理し、入力装置９１２、出力装置９１３、記憶装置９１４及び通信装置９１５を制御する。
記憶装置９１４は、処理装置９１１が実行するコンピュータプログラムや、処理装置９１１が処理するデータなどを記憶する。
入力装置９１２は、コンピュータの外部から情報を入力し、処理装置９１１が処理できるデータに変換する。入力装置９１２が変換したデータは、処理装置９１１が直接処理する構成であってもよいし、記憶装置９１４が一時的に記憶する構成であってもよい。例えば、入力装置９１２は、キーボードやマウスなどの操作入力装置であり、コンピュータを操作する操作者による操作を入力する。あるいは、入力装置９１２は、マイクであり、音声を入力する。あるいは、入力装置９１２は、カメラであり、画像を撮影する。あるいは、入力装置９１２は、センサであり、温度や電圧などの物理量を測定する。あるいは、入力装置９１２は、アナログデジタル変換回路であり、アナログ信号をデジタルデータに変換する。
出力装置９１３は、処理装置９１１が処理したデータや記憶装置９１４が記憶したデータを変換して、コンピュータの外部へ出力する。例えば、出力装置９１３は、液晶表示装置であり、画像を出力する。あるいは、出力装置９１３は、スピーカーであり、音声を出力する。あるいは、出力装置９１３は、デジタルアナログ変換回路であり、アナログ信号を生成する。
通信装置９１５は、他の装置との間で通信をする。通信装置９１５は、他の装置が送信した信号を受信して、受信した信号が表わす情報を入力して、処理装置９１１が処理できるデータに変換する。すなわち、通信装置９１５は、入力装置９１２の一種である。また、通信装置９１５は、処理装置９１１が処理したデータや記憶装置９１４が記憶したデータを信号に変換して、他の装置に対して送信する。すなわち、通信装置９１５は、記憶装置９１４の一種である。
【００１３】
以下に説明する機能ブロックは、記憶装置９１４が記憶したコンピュータプログラムを、処理装置９１１が実行することにより実現される。なお、これは一例であり、以下に説明する機能ブロックは、他の構成により実現されるものであってもよい。例えば、アナログ回路やデジタル回路などの電子回路やその他の電気的構成、機械的構成やその他の構成により、以下に説明する機能ブロックが実現されるものであってもよい。
【００１４】
図３は、この実施の形態における管理装置１００の機能ブロックの一例を示すブロック構成図である。
【００１５】
管理装置１００は、例えば、マスター鍵記憶部１１０と、一時鍵生成用データ記憶部１３０と、一時鍵生成用データ更新部１４０と、一時鍵生成用データ通知部１５０と、一時鍵生成部１６０と、一時鍵通知部１７０とを有する。
【００１６】
マスター鍵記憶部１１０は、記憶装置９１４を用いて、マスター鍵（第一マスター鍵）を記憶する。マスター鍵記憶部１１０が記憶するマスター鍵は、暗号通信装置２００が暗号通信装置３００との間で暗号通信をするときに使用する一時鍵を生成するために使われるデータである。マスター鍵の漏洩を防ぐため、マスター鍵記憶部１１０は、例えば、耐タンパ性を有する記憶装置９１４を用いて、マスター鍵を記憶する構成であってもよい。マスター鍵記憶部１１０が記憶するマスター鍵は、あらかじめ定められたものであって変更できない構成であってもよいし、例えばマスター鍵が漏洩した疑いがある場合など、必要な場合に変更可能な構成であってもよい。
【００１７】
一時鍵生成用データ記憶部１３０は、記憶装置９１４を用いて、一時鍵生成用データを記憶する。一時鍵生成用データ記憶部１３０が記憶する一時鍵生成用データは、マスター鍵記憶部１１０が記憶したマスター鍵と同様、一時鍵を生成するために使われるデータである。同じマスター鍵を使用しても、一時鍵生成用データが異なれば、異なる一時鍵が生成される。
【００１８】
一時鍵生成用データ更新部１４０は、処理装置９１１を用いて、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データを更新する。一時鍵生成用データ更新部１４０は、例えば、所定の周期（例えば１日）が経過するごとに、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データを、繰り返し更新する。これにより、所定の周期が経過するごとに、生成される一時鍵が変化する。
【００１９】
一時鍵生成用データは、新旧が判別できるものであれば、どのようなデータであってもよい。
例えば、一時鍵生成用データは、数値を表わすデータである。一時鍵生成用データを更新する場合、一時鍵生成用データ更新部１４０は、一時鍵生成用データが表わす数値に所定の増分値（例えば１）を加算した和を算出する。一時鍵生成用データ更新部１４０は、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データを、算出した和を表わすデータで更新する。一時鍵生成用データ記憶部１３０は、古い一時鍵生成用データを、更新された新しい一時鍵生成用データで置き換えて記憶する。これにより、新しい一時鍵生成用データのほうが大きい数値を表わすので、２つの一時鍵生成用データが表わす数値を比較することにより、どちらの一時鍵生成用データが新しいかを判別することができる。
【００２０】
一時鍵生成部１６０は、処理装置９１１を用いて、一時鍵（第一一時鍵）を生成する。一時鍵生成部１６０は、マスター鍵記憶部１１０が記憶したマスター鍵と、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データとを使って、一時鍵を生成する。
【００２１】
一時鍵生成部１６０が一時鍵を生成する方式は、以下の条件を満たす方式であれば、どのような方式であってもよい。
第一の条件は、マスター鍵と一時鍵生成用データとの組が同じであれば、同一もしくは同類の一時鍵が生成されることである。なお、同類の一時鍵とは、同じ鍵で復号できる暗号文を生成し、あるいは、同じ鍵で暗号化した暗号文を復号できる一群の一時鍵のことである。
第二の条件は、マスター鍵及び一時鍵生成用データのいずれか一方でも異なれば、同一でなく、かつ同類でもない一時鍵が生成されることである。これにより、一時鍵生成用データが更新されると、更新前の古い一時鍵生成用データを使って生成した一時鍵を使って生成した暗号文を復号でき、あるいは、更新前の古い一時鍵生成用データを使って生成した一時鍵で復号できる暗号文を生成する鍵では、更新後の新しい一時鍵生成用データを使って生成した一時鍵を使って生成した暗号文を復号できず、あるいは、更新後の新しい一時鍵生成用データを使って生成した一時鍵で復号できる暗号文を生成できない。
第三の条件は、一時鍵生成用データと、それを使って生成した一時鍵とから、マスター鍵が推測できないことである。これにより、マスター鍵の漏洩を防ぐことができる。
【００２２】
例えば、一時鍵生成部１６０は、マスター鍵記憶部１１０が記憶したマスター鍵を使って、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データを暗号化する。一時鍵生成部１６０は、暗号化した暗号文を一時鍵とする。
あるいは、一時鍵生成部１６０は、一方向性を有するハッシュ関数を使って、マスター鍵記憶部１１０が記憶したマスター鍵と、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データとをハッシュ関数の入力とし、ハッシュ値を算出する。一時鍵生成部１６０は、算出したハッシュ値を一時鍵とする。
【００２３】
一時鍵通知部１７０は、一時鍵生成部１６０が生成した一時鍵を、暗号通信装置２００に対して通知する。例えば、一時鍵通知部１７０は、通信装置９１５を用いて、一時鍵生成部１６０が生成した一時鍵を、暗号通信装置２００に対して送信する。
一時鍵を通知する方式は、一時鍵の漏洩を防ぐことができる方式であれば、どのような方式であってもよい。例えば、一時鍵通知部１７０は、暗号化された通信を使って、一時鍵を送信する。あるいは、管理装置１００と暗号通信装置２００とを直接有線接続して、一時鍵の送信を行う。
【００２４】
一時鍵生成用データ通知部１５０は、一時鍵通知部１７０が暗号通信装置２００に対して通知した一時鍵を一時鍵生成部１６０が生成するときに使った一時鍵生成用データを、暗号通信装置２００に対して通知する。例えば、一時鍵生成用データ通知部１５０は、通信装置９１５を用いて、一時鍵生成用データ記憶部１３０が記憶した一時鍵を、暗号通信装置２００に対して送信する。なお、一時鍵と一時鍵生成用データとの対応関係が明確化するように、例えば、一時鍵通知部１７０が通知する一時鍵と、一時鍵生成用データ通知部１５０が通知する一時鍵生成用データとを１つにまとめて送信する構成であってもよい。
【００２５】
図４は、この実施の形態における暗号通信装置２００の機能ブロックの一例を示すブロック構成図である。
【００２６】
暗号通信装置２００（第一暗号通信装置）は、例えば、一時鍵生成用データ取得部２２０と、一時鍵生成用データ記憶部２３０と、一時鍵生成用データ通知部２５０と、一時鍵取得部２６０と、一時鍵記憶部２７０と、暗号通信部２９０とを有する。
【００２７】
一時鍵取得部２６０は、管理装置１００の一時鍵通知部１７０から通知された一時鍵（第一一時鍵）を取得する。例えば、一時鍵取得部２６０は、通信装置９１５を用いて、一時鍵通知部１７０が送信した一時鍵を受信する。
一時鍵記憶部２７０は、記憶装置９１４を用いて、一時鍵取得部２６０が取得した一時鍵を記憶する。一時鍵の漏洩を防ぐため、例えば、一時鍵取得部２６０は、耐タンパ性のある記憶装置９１４を用いて、一時鍵を記憶する構成であってもよい。
【００２８】
一時鍵生成用データ取得部２２０は、管理装置１００の一時鍵生成用データ通知部１５０から通知された一時鍵生成用データを取得する。例えば、一時鍵生成用データ取得部２２０は、通信装置９１５を用いて、一時鍵生成用データ通知部１５０が送信した一時鍵生成用データを受信する。
一時鍵生成用データ記憶部２３０は、記憶装置９１４を用いて、一時鍵生成用データ取得部２２０が取得した一時鍵生成用データを記憶する。
【００２９】
一時鍵生成用データ通知部２５０は、一時鍵生成用データ記憶部２３０が記憶した一時鍵生成用データを、暗号通信装置３００に対して通知する。例えば、一時鍵生成用データ通知部２５０は、通信装置９１５を用いて、一時鍵生成用データ取得部２２０が記憶した一時鍵生成用データを、暗号通信装置３００に対して送信する。
【００３０】
暗号通信部２９０は、一時鍵記憶部２７０が記憶した一時鍵を使って、暗号通信装置３００との間で暗号通信をする。例えば、暗号通信部２９０は、処理装置９１１を用いて、一時鍵通知部１７０が記憶した一時鍵を使って暗号文を生成し、通信装置９１５を用いて、生成した暗号文を暗号通信装置３００に対して送信する。あるいは、暗号通信部２９０は、通信装置９１５を用いて、暗号通信装置３００が送信した暗号文を受信し、処理装置９１１を用いて、受信した暗号文を、暗号通信部２９０が記憶した一時鍵を使って復号する。
【００３１】
図５は、この実施の形態における暗号通信装置３００の機能ブロックの一例を示すブロック構成図である。
【００３２】
暗号通信装置３００（第二暗号通信装置）は、例えば、マスター鍵記憶部３１０と、一時鍵生成用データ取得部３２０と、検証用データ記憶部３３０と、検証用データ更新部３４０と、一時鍵生成用データ検証部３５０と、一時鍵生成部３６０と、暗号通信部３９０とを有する。
【００３３】
マスター鍵記憶部３１０は、記憶装置９１４を用いて、マスター鍵（第二マスター鍵）を記憶する。マスター鍵記憶部３１０が記憶するマスター鍵は、暗号通信装置３００が暗号通信装置２００との間で暗号通信をするときに使用する一時鍵を生成するために使われるデータである。マスター鍵の漏洩を防ぐため、マスター鍵記憶部３１０は、例えば、耐タンパ性のある記憶装置９１４を用いて、マスター鍵を記憶する構成であってもよい。マスター鍵記憶部３１０が記憶するマスター鍵は、あらかじめ定められたものであって変更できない構成であってもよいし、例えばマスター鍵が漏洩した疑いがある場合など、必要な場合に変更可能な構成であってもよい。
【００３４】
マスター鍵記憶部３１０が記憶するマスター鍵は、管理装置１００の一時鍵生成部１６０が一時鍵の生成に使った一時鍵生成用データと組み合わせることにより、一時鍵生成部１６０が生成した一時鍵と同一の、又は、その一時鍵に対応する一時鍵を生成できるものであればよい。ここで、「２つの一時鍵が対応する」とは、一方の一時鍵を使って暗号化した暗号文を、もう一方の一時鍵を使って復号できる関係のことである。また、「２つのマスター鍵が対応する」とは、２つのマスター鍵から、同一の、又は、対応する一時鍵を生成できる関係のことである。
マスター鍵記憶部３１０が記憶するマスター鍵は、管理装置１００のマスター鍵記憶部１１０が記憶したマスター鍵と同一のマスター鍵であってもよいし、異なるマスター鍵であってもよい。マスター鍵記憶部３１０が記憶したマスター鍵と、管理装置１００のマスター鍵記憶部１１０が記憶したマスター鍵とが異なる場合、マスター鍵記憶部３１０が記憶したマスター鍵から、管理装置１００のマスター鍵記憶部１１０が記憶したマスター鍵を推測できない構成であってもよい。そうすれば、マスター鍵記憶部３１０が記憶したマスター鍵が漏洩した場合でも、管理装置１００のマスター鍵記憶部１１０が記憶したマスター鍵が知られるのを防ぐことができる。
また、暗号通信装置３００が複数ある場合、それぞれの暗号通信装置３００のマスター鍵記憶部３１０が異なるマスター鍵を記憶する構成であってもよい。その場合、ある暗号通信装置３００のマスター鍵記憶部３１０が記憶したマスター鍵を使って生成した一時鍵と、他の暗号通信装置３００のマスター鍵記憶部３１０が記憶したマスター鍵を使って生成した一時鍵とが対応しない構成であってもよい。そうすれば、ある暗号通信装置３００のマスター鍵記憶部３１０が記憶したマスター鍵が漏洩した場合でも、他の暗号通信装置３００との間で暗号通信ができる一時鍵が生成されるのを防ぐことができる。
【００３５】
検証用データ記憶部３３０は、記憶装置９１４を用いて、検証用データを記憶する。検証用データとは、暗号通信装置２００から通知された一時鍵生成用データが有効であるか否かを検証するために使われるデータである。
【００３６】
検証用データ更新部３４０は、処理装置９１１を用いて、検証用データ記憶部３３０が記憶した検証用データを更新する。検証用データ更新部３４０は、例えば、所定の周期（例えば１日）が経過するごとに、検証用データ記憶部３３０が記憶した検証用データを、繰り返し更新する。
【００３７】
検証用データは、古い一時鍵生成用データを無効であると判定できるものであれば、どのようなデータであってもよい。
例えば、検証用データは、数値を表わすデータである。検証用データを更新する場合、検証用データ更新部３４０は、検証用データが表わす数値に所定の増分値（例えば１）を加算した和を算出する。検証用データ更新部３４０は、検証用データ記憶部３３０が記憶した検証用データを、算出した和を表わすデータで更新する。検証用データ記憶部３３０は、古い検証用データを、更新された新しい検証用データで置き換えて記憶する。
検証用データ更新部３４０は、検証用データが表わす数値が増加する速さが、一時鍵生成用データが表わす数値が増加する速さとほぼ同一になるように、検証用データを更新する。例えば、検証用データ更新部３４０は、管理装置１００の一時鍵生成用データ更新部１４０が一時鍵生成用データを更新する周期と同じ周期で検証用データを更新し、一時鍵生成用データが表わす数値に管理装置１００の一時鍵生成用データ更新部１４０が加算する増分値と同じ増分値を、検証用データが表わす数値に加算する。あるいは、検証用データ更新部３４０は、一時鍵生成用データの更新周期のｎ倍（ｎは、正の実数。）の周期で検証用データを更新し、一時鍵生成用データの増分値のｎ倍の増分値を、検証用データが表わす数値に加算する。
【００３８】
一時鍵生成用データ取得部３２０は、暗号通信装置２００の一時鍵生成用データ通知部２５０から通知された一時鍵生成用データを取得する。例えば、一時鍵生成用データ取得部３２０は、通信装置９１５を用いて、一時鍵生成用データ通知部２５０が送信した一時鍵生成用データを受信する。
【００３９】
一時鍵生成用データ検証部３５０は、処理装置９１１を用いて、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データを検証する。一時鍵生成用データ検証部３５０は、検証用データ記憶部３３０が記憶した検証用データを使って、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であるか否かを判定する。
例えば、一時鍵生成用データ検証部３５０は、一時鍵生成用データが表わす数値と、検証用データが表わす数値とを比較する。一時鍵生成用データが表わす数値が、検証用データが表わす数値以上である場合、一時鍵生成用データ検証部３５０は、一時鍵生成用データが有効であると判定する。一時鍵生成用データが表わす数値が、検証用データが表わす数値よりも小さい場合、一時鍵生成用データ検証部３５０は、一時鍵生成用データが有効でないと判定する。
【００４０】
一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であると一時鍵生成用データ検証部３５０が判定した場合、検証用データ記憶部３３０は、記憶装置９１４を用いて、有効であると一時鍵生成用データ検証部３５０が判定した一時鍵生成用データを、検証用データとして記憶する。
【００４１】
初期状態において、検証用データ記憶部３３０は、例えば、一時鍵生成用データが表わす数値の最小値を表わすデータを、最初の検証用データとして記憶しておく。この時点において、検証用データ記憶部３３０が記憶している検証用データが表わす数値は、必ず、管理装置１００の一時鍵生成用データ記憶部１３０が記憶している一時鍵生成用データが表わす数値以下である。
検証用データ記憶部３３０が記憶した検証用データを検証用データ更新部３４０が更新することにより、検証用データが表わす数値が徐々に大きくなる。また、管理装置１００の一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データを一時鍵生成用データ更新部１４０が更新することにより、一時鍵生成用データが表わす数値も徐々に大きくなる。両者が増加する速さはほぼ同じであるから、検証用データ記憶部３３０が記憶している検証用データが表わす数値は、常に、管理装置１００の一時鍵生成用データ記憶部１３０が記憶している一時鍵生成用データが表わす数値以下である。
したがって、暗号通信装置２００の一時鍵生成用データ通知部２５０が暗号通信装置３００に対して通知した一時鍵生成用データが最新のものであれば、一時鍵生成用データ検証部３５０は、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であると判定する。また、最初の有効性判定時には、検証用データ記憶部３３０が記憶した検証用データが表わす数値と、管理装置１００の一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データが表わす数値とが異なる可能性があり、その場合、暗号通信装置２００の一時鍵生成用データ通知部２５０が暗号通信装置３００に対して通知した一時鍵生成用データが必ずしも最新のものでなくても、一時鍵生成用データ検証部３５０は、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であると判定する場合がある。
【００４２】
一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であると一時鍵生成用データ検証部３５０が判定した場合、有効であると一時鍵生成用データ検証部３５０が判定した一時鍵生成用データを検証用データ記憶部３３０が検証用データとして記憶するので、暗号通信装置２００の一時鍵生成用データ通知部２５０が暗号通信装置３００に対して通知した一時鍵生成用データが最新のものであれば、その時点で、検証用データ記憶部３３０が記憶した検証用データと、管理装置１００の一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データとが同じになる。すなわち、管理装置１００と暗号通信装置３００とが同期する。したがって、それ以降は、暗号通信装置２００の一時鍵生成用データ通知部２５０が暗号通信装置３００に対して通知した一時鍵生成用データが最新のものでなければ、一時鍵生成用データ検証部３５０は、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であると判定しない。
【００４３】
このような構成とすることにより、容易に、管理装置１００と暗号通信装置３００との間の同期を取ることができる。
【００４４】
また、暗号通信装置３００の時計の進み方が、管理装置１００の時計の進み方より遅い場合、検証用データ記憶部３３０が記憶した検証用データが表わす数値が増加する速さが、管理装置１００の一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データが表わす数値が増加する速さよりも遅くなる。しかし、最新の一時鍵生成用データを暗号通信装置２００の一時鍵生成用データ通知部２５０が暗号通信装置３００に対して通知するたびに、管理装置１００と暗号通信装置３００との間の同期が取られるので、検証用データ記憶部３３０が記憶した検証用データが表わす数値と、管理装置１００の一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データが表わす数値との差が大きくなるのを防ぐことができる。
【００４５】
一時鍵生成部３６０は、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であると一時鍵生成用データ検証部３５０が判定した場合、処理装置９１１を用いて、一時鍵を生成する。一時鍵生成部３６０は、マスター鍵記憶部３１０が記憶したマスター鍵と、有効であると一時鍵生成用データ検証部３５０が判定した一時鍵生成用データとを使って、一時鍵を生成する。
【００４６】
一時鍵生成部３６０が一時鍵を生成する方式は、以下の条件を満たす方式であれば、どのような方式であってもよい。
第一の条件は、マスター鍵と一時鍵生成用データとの組が同じであれば、同一もしくは同類の一時鍵が生成されることである。
第二の条件は、マスター鍵が、管理装置１００の一時鍵生成部１６０が一時鍵の生成に使ったマスター鍵と同一の、又は、そのマスター鍵に対応するマスター鍵であり、一次鍵生成用データが、一時鍵生成部１６０が一時鍵の生成に使った一時鍵生成用データと同一であれば、一時鍵生成部１６０が生成した一時鍵と同一の、又は、その一時鍵に対応する一時鍵が生成されることである。逆に、それ以外の場合には、一時鍵生成部１６０が生成した一時鍵と同一でなく、かつ、一時鍵生成部１６０が生成した一時鍵に対応しない一時鍵が生成されることである。
第三の条件は、一時鍵生成用データと、それを使って生成した一時鍵を使って生成した暗号文とから、一時鍵やマスター鍵が推測できないことである。これにより、一時鍵やマスター鍵の漏洩を防ぐことができる。
【００４７】
例えば、一時鍵生成部３６０は、マスター鍵記憶部３１０が記憶したマスター鍵を使って、有効であると一時鍵生成用データ検証部３５０が判定した一時鍵生成用データを暗号化する。一時鍵生成部３６０は、暗号化した暗号文を一時鍵とする。
あるいは、一時鍵生成部３６０は、一方向性を有するハッシュ関数を使って、マスター鍵記憶部３１０が記憶したマスター鍵と、有効であると一時鍵生成用データ検証部３５０が判定した一時鍵生成用データとをハッシュ関数の入力とし、ハッシュ値を算出する。一時鍵生成部３６０は、算出したハッシュ値を一時鍵とする。
【００４８】
暗号通信部３９０は、一時鍵生成部３６０が生成した一時鍵を使って、暗号通信装置２００との間で暗号通信をする。例えば、暗号通信部３９０は、通信装置９１５を用いて、暗号通信装置２００の暗号通信部２９０が送信した暗号文を受信し、処理装置９１１を用いて、受信した暗号文を、一時鍵生成部３６０が生成した一時鍵を使って復号する。あるいは、暗号通信部３９０は、処理装置９１１を用いて、一時鍵生成部３６０が生成した一時鍵を使って暗号文を生成し、通信装置９１５を用いて、生成した暗号文を暗号通信装置２００に対して送信する。
【００４９】
マスター鍵記憶部３１０が記憶したマスター鍵は、管理装置１００のマスター鍵記憶部１１０が記憶したマスター鍵と同一の、又は、そのマスター鍵に対応するマスター鍵である。また、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データは、暗号通信装置２００の暗号通信部２９０が暗号通信に使う一時鍵を管理装置１００の一時鍵生成部１６０が生成するときに使った一時鍵生成用データと同一のデータである。したがって、一時鍵生成部３６０が生成する一時鍵は、暗号通信装置２００の暗号通信部２９０が暗号通信に使う一時鍵と同一の、又は、その一時鍵に対応する一時鍵である。したがって、暗号通信部３９０は、暗号通信装置２００の暗号通信部２９０が暗号化した暗号文を復号することができ、暗号通信装置２００の暗号通信部２９０が復号できる暗号文を生成することができる。
【００５０】
また、暗号通信装置２００の一時鍵生成用データ記憶部２３０が記憶した一時鍵生成用データと、一時鍵記憶部２７０が記憶した一時鍵との組が漏洩し、一時鍵生成用データと一時鍵との組を入手した第三者が、暗号通信装置３００と暗号通信をして、暗号通信装置３００から情報を窃取しようとした場合について考える。
検証用データ記憶部３３０が記憶した検証用データを検証用データ更新部３４０が更新すると、第三者が入手した一時鍵生成用データ及びそれを使って生成した一時鍵は、最新のものではなくなる。このため、第三者が入手した一時鍵生成用データを暗号通信装置３００に対して通知しても、一時鍵生成用データ検証部３５０は、それを有効でないと判定する。これにより、第三者が暗号通信装置３００と暗号通信をするのを防ぐことができる。
【００５１】
次に、動作について説明する。
【００５２】
暗号通信システム８００における処理には、大きく分けて、初期化処理Ｓ６０１と、更新処理Ｓ６０２と、一時鍵通知処理Ｓ６０３と、暗号通信処理Ｓ６０４とがある。
初期化処理Ｓ６０１において、管理装置１００や暗号通信装置３００が、マスター鍵、一時鍵生成用データ、検証用データなどを初期化する。
更新処理Ｓ６０２において、管理装置１００や暗号通信装置３００が、一時鍵生成用データや検証用データを定期的に更新する。
一時鍵通知処理Ｓ６０３において、管理装置１００が一時鍵を生成し、生成した一時鍵を暗号通信装置２００に対して通知する。
暗号通信処理Ｓ６０４において、暗号通信装置２００と暗号通信装置３００とが暗号通信に使う一時鍵を合意して、暗号通信をする。
【００５３】
図６は、この実施の形態における初期化処理Ｓ６０１の流れの一例を示すフロー図である。
【００５４】
管理装置１００は、初期化処理Ｓ６０１において、例えば、マスター鍵記憶工程Ｓ６１１と、一時鍵生成用データ初期化工程Ｓ６１２とを実行する。
【００５５】
マスター鍵記憶工程Ｓ６１１において、管理装置１００のマスター鍵記憶部１１０は、マスター鍵を取得する。
例えば、管理装置１００の外部にマスター鍵生成装置を設ける。マスター鍵記憶部１１０は、通信装置９１５を用いて、マスター鍵生成装置と通信することにより、マスター鍵生成装置が生成した管理装置１００用のマスター鍵を取得する。あるいは、管理装置１００の内部にマスター鍵生成部を設ける。マスター鍵記憶部１１０は、処理装置９１１を用いて、マスター鍵生成部が生成した管理装置１００用のマスター鍵を取得する。
マスター鍵記憶部１１０は、記憶装置９１４を用いて、取得したマスター鍵を記憶する。
【００５６】
一時鍵生成用データ初期化工程Ｓ６１２において、管理装置１００の一時鍵生成用データ記憶部１３０は、一時鍵生成用データを初期化する。
例えば、一時鍵生成用データ記憶部１３０は、一時鍵生成用データの初期データを取得する。一時鍵生成用データ記憶部１３０が取得する初期データは、例えば、一時鍵生成用データが表わす数値の最小値を表わす。一時鍵生成用データ記憶部１３０は、記憶装置９１４を用いて、取得した初期データを、一時鍵生成用データとして記憶する。
【００５７】
暗号通信装置３００は、初期化処理Ｓ６０１において、例えば、マスター鍵記憶工程Ｓ６３１と、検証用データ初期化工程Ｓ６３２とを実行する。なお、暗号通信装置３００は、管理装置１００と無関係に初期化処理Ｓ６０１を実行する。すなわち、暗号通信装置３００が初期化処理Ｓ６０１を実行するタイミングは、管理装置１００が初期化処理Ｓ６０１を実行するタイミングと同じである必要はない。
【００５８】
マスター鍵記憶工程Ｓ６３１において、暗号通信装置３００のマスター鍵記憶部３１０は、マスター鍵記憶工程Ｓ６１１で管理装置１００のマスター鍵記憶部１１０が記憶したマスター鍵と同一の、又は、そのマスター鍵に対応するマスター鍵を取得する。
例えば、マスター鍵記憶部３１０は、通信装置９１５を用いて、マスター鍵生成装置と通信することにより、マスター鍵生成装置が生成した暗号通信装置３００用のマスター鍵を取得する。あるいは、マスター鍵記憶部３１０は、通信装置９１５を用いて、管理装置１００と通信することにより、管理装置１００のマスター鍵生成部が生成した暗号通信装置３００用のマスター鍵を取得する。
マスター鍵記憶部３１０は、記憶装置９１４を用いて、取得したマスター鍵を記憶する。
【００５９】
検証用データ初期化工程Ｓ６３２において、暗号通信装置３００の検証用データ記憶部３３０は、検証用データを初期化する。
例えば、検証用データ記憶部３３０は、検証用データの初期データを取得する。検証用データ記憶部３３０が取得する初期データは、例えば、一時鍵生成用データが表わす数値の最小値を表わす。検証用データ記憶部３３０は、記憶装置９１４を用いて、取得した初期データを、検証用データとして記憶する。
【００６０】
図７は、この実施の形態における更新処理Ｓ６０２の流れの一例を示すフロー図である。
【００６１】
管理装置１００は、更新処理Ｓ６０２において、例えば、周期経過判定工程Ｓ６１３と、一時鍵生成用データ更新工程Ｓ６１４とを実行する。
【００６２】
周期経過判定工程Ｓ６１３において、管理装置１００の一時鍵生成用データ更新部１４０は、あらかじめ定められた更新周期が経過したか否かを判定する。例えば、一時鍵生成用データ更新部１４０は、処理装置９１１を用いて、前回の更新からの経過時間と更新周期とを比較して、経過時間が更新周期より大きい場合に、更新周期が経過したと判定する。
更新周期が経過したと判定した場合、一時鍵生成用データ更新部１４０は、一時鍵生成用データ更新工程Ｓ６１４へ処理を進める。
【００６３】
一時鍵生成用データ更新工程Ｓ６１４において、管理装置１００の一時鍵生成用データ更新部１４０は、一時鍵生成用データを更新する。
例えば、一時鍵生成用データ更新部１４０は、処理装置９１１を用いて、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データを取得する。一時鍵生成用データ更新部１４０は、処理装置９１１を用いて、取得した一時鍵生成用データが表わす数値と、あらかじめ定められた増分値とを合計した合計値を算出する。一時鍵生成用データ更新部１４０は、算出した合計値を表わすデータを使って、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データを更新する。一時鍵生成用データ記憶部１３０は、古い一時鍵生成用データに代えて、新しく一時鍵生成用データ更新部１４０が算出した合計値を表わすデータを、記憶装置９１４を用いて、一時鍵生成用データとして記憶する。
その後、一時鍵生成用データ更新部１４０は、周期経過判定工程Ｓ６１３に処理を戻し、次の更新周期が経過するのを待つ。
【００６４】
暗号通信装置３００は、更新処理Ｓ６０２において、例えば、周期経過判定工程Ｓ６３３と、検証用データ更新工程Ｓ６３４とを実行する。なお、暗号通信装置３００は、管理装置１００と無関係に更新処理Ｓ６０２を実行する。すなわち、暗号通信装置３００が更新処理Ｓ６０２を実行するタイミングは、管理装置１００が更新処理Ｓ６０２を実行するタイミングと同じである必要はない。
【００６５】
周期経過判定工程Ｓ６３３において、暗号通信装置３００の検証用データ更新部３４０は、あらかじめ定められた更新周期が経過したか否かを判定する。例えば、検証用データ更新部３４０は、処理装置９１１を用いて、前回の更新からの経過時間と更新周期とを比較して、経過時間が更新周期より大きい場合に、更新周期が経過したと判定する。
更新周期が経過したと判定した場合、検証用データ更新部３４０は、検証用データ更新工程Ｓ６３４へ処理を進める。
【００６６】
検証用データ更新工程Ｓ６３４において、暗号通信装置３００の検証用データ更新部３４０は、検証用データを更新する。
例えば、検証用データ更新部３４０は、処理装置９１１を用いて、検証用データ記憶部３３０が記憶した検証用データを取得する。検証用データ更新部３４０は、処理装置９１１を用いて、取得した検証用データが表わす数値と、あらかじめ定められた増分値とを合計した合計値を算出する。検証用データ更新部３４０は、算出した合計値を表わすデータを使って、検証用データ記憶部３３０が記憶した検証用データを更新する。検証用データ記憶部３３０は、古い検証用データに代えて、新しく検証用データ更新部３４０が算出した合計値を表わすデータを、記憶装置９１４を用いて、検証用データとして記憶する。
その後、検証用データ更新部３４０は、周期経過判定工程Ｓ６３３に処理を戻し、次の更新周期が経過するのを待つ。
【００６７】
図８は、この実施の形態における一時鍵通知処理Ｓ６０３の流れの一例を示すフロー図である。
【００６８】
管理装置１００は、一時鍵通知処理Ｓ６０３において、例えば、一時鍵要求受付工程Ｓ６１５と、一時鍵生成工程Ｓ６１６と、一時鍵通知工程Ｓ６１８と、一時鍵生成用データ通知工程Ｓ６１９とを実行する。
また、暗号通信装置２００は、一時鍵通知処理Ｓ６０３において、例えば、一時鍵要求工程Ｓ６２１と、一時鍵取得工程Ｓ６２２と、一時鍵生成用データ取得工程Ｓ６２３とを実行する。
【００６９】
一時鍵要求工程Ｓ６２１において、暗号通信装置２００の一時鍵取得部２６０は、管理装置１００に対して、一時鍵を要求する。例えば、一時鍵取得部２６０は、通信装置９１５を用いて、一時鍵を要求する一時鍵要求メッセージを管理装置１００に対して送信する。
一時鍵要求受付工程Ｓ６１５において、管理装置１００の一時鍵通知部１７０は、暗号通信装置２００からの要求を受け付ける。例えば、一時鍵通知部１７０は、通信装置９１５を用いて、暗号通信装置２００の一時鍵取得部２６０が送信した一時鍵要求メッセージを受信する。
【００７０】
なお、暗号通信装置２００に対して一時鍵を通知してよいか否かを確認するため、管理装置１００が暗号通信装置２００を認証する構成であってもよい。例えば、暗号通信装置２００に認証情報入力部を設け、管理装置１００に認証情報検証部を設ける。暗号通信装置２００の認証情報入力部は、入力装置９１２を用いて、利用者の指紋などの生体情報やパスワードなどの認証情報を入力する。暗号通信装置２００の一時鍵取得部２６０は、処理装置９１１を用いて、認証情報入力部が入力した認証情報を含む一時鍵要求メッセージを生成する。管理装置１００の認証情報検証部は、処理装置９１１を用いて、暗号通信装置２００から通知された一時鍵要求メッセージに含まれる認証情報を検証することにより、暗号通信装置２００を認証する。認証に失敗した場合、管理装置１００は、以後の工程を実行せず、一時鍵通知処理Ｓ６０３を終了する。これにより、正規の利用者以外の者が暗号通信装置２００を操作している場合に、暗号通信装置２００に対して管理装置１００が一時鍵を通知するのを防ぐことができる。
【００７１】
一時鍵生成工程Ｓ６１６において、管理装置１００の一時鍵生成部１６０は、処理装置９１１を用いて、マスター鍵記憶部１１０が記憶したマスター鍵と、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データとに基づいて、一時鍵を生成する。
【００７２】
一時鍵通知工程Ｓ６１８において、管理装置１００の一時鍵通知部１７０は、一時鍵生成工程Ｓ６１６で一時鍵生成部１６０が生成した一時鍵を暗号通信装置２００に対して通知する。
一時鍵取得工程Ｓ６２２において、暗号通信装置２００の一時鍵取得部２６０は、一時鍵通知工程Ｓ６１８で管理装置１００の一時鍵通知部１７０が通知した一時鍵を取得する。暗号通信装置２００の一時鍵記憶部２７０は、記憶装置９１４を用いて、一時鍵取得部２６０が取得した一時鍵を記憶する。
【００７３】
一時鍵生成用データ通知工程Ｓ６１９において、管理装置１００の一時鍵生成用データ通知部１５０は、一時鍵通知工程Ｓ６１８で一時鍵通知部１７０が暗号通信装置２００に対して通知した一時鍵を、一時鍵生成工程Ｓ６１６で一時鍵生成部１６０が生成するときに使った一時鍵生成用データを暗号通信装置２００に対して通知する。
一時鍵生成用データ取得工程Ｓ６２３において、暗号通信装置２００の一時鍵生成用データ取得部２２０は、一時鍵生成用データ通知工程Ｓ６１９で管理装置１００の一時鍵生成用データ通知部１５０が通知した一時鍵生成用データを取得する。暗号通信装置２００の一時鍵生成用データ記憶部２３０は、記憶装置９１４を用いて、一時鍵生成用データ取得部２２０が取得した一時鍵生成用データを記憶する。
【００７４】
図９は、この実施の形態における暗号通信処理Ｓ６０４の流れの一例を示すフロー図である。
【００７５】
暗号通信装置２００は、暗号通信処理Ｓ６０４において、例えば、一時鍵生成用データ通知工程Ｓ６２４と、暗号通信工程Ｓ６２５とを実行する。
また、暗号通信装置３００は、暗号通信処理Ｓ６０４において、例えば、一時鍵生成用データ取得工程Ｓ６３５と、一時鍵生成用データ検証工程Ｓ６３６と、一時鍵生成工程Ｓ６３７と、暗号通信工程Ｓ６３８とを実行する。
【００７６】
一時鍵生成用データ通知工程Ｓ６２４において、暗号通信装置２００の一時鍵生成用データ通知部２５０は、一時鍵生成用データ記憶部２３０が記憶した一時鍵生成用データを暗号通信装置３００に対して通知する。
一時鍵生成用データ取得工程Ｓ６３５において、暗号通信装置３００の一時鍵生成用データ取得部３２０は、一時鍵生成用データ通知工程Ｓ６２４で暗号通信装置２００の一時鍵生成用データ通知部２５０が通知した一時鍵生成用データを取得する。
【００７７】
なお、暗号通信装置２００は、一時鍵生成用データだけでなく、暗号通信装置２００を識別する識別データや認証情報など、暗号通信装置３００との間で暗号通信を開始するために必要な情報を、暗号通信装置３００に対して通知する構成であってもよい。
【００７８】
一時鍵生成用データ検証工程Ｓ６３６において、暗号通信装置３００の一時鍵生成用データ検証部３５０は、処理装置９１１を用いて、検証用データ記憶部３３０が記憶した検証用データと、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データとに基づいて、一時鍵生成用データが有効であるか否かを判定する。
一時鍵生成用データが有効でないと一時鍵生成用データ検証部３５０が判定した場合、暗号通信装置３００は、それ以後の工程を実行せず、暗号通信処理Ｓ６０４を終了する。
一時鍵生成用データが有効であると一時鍵生成用データ検証部３５０が判定した場合、検証用データ記憶部３３０は、記憶装置９１４を用いて、それまで記憶していた検証用データに代えて、有効であると一時鍵生成用データ検証部３５０が判定した一時鍵生成用データを、新たな検証用データとして記憶する。これにより、管理装置１００と暗号通信装置３００とが、緩やかに同期する。
【００７９】
なお、暗号通信装置３００は、検証結果を暗号通信装置２００に対して通知する構成であってもよい。また、暗号通信装置３００は、検証結果だけでなく、暗号通信装置３００を識別する識別データや認証情報など、暗号通信装置２００との間で暗号通信を開始するために必要な情報を暗号通信装置２００に対して送信する構成であってもよい。
【００８０】
一時鍵生成工程Ｓ６３７において、暗号通信装置３００の一時鍵生成部３６０は、処理装置９１１を用いて、マスター鍵記憶部３１０が記憶したマスター鍵と、有効であると一時鍵生成用データ検証部３５０が判定した一時鍵生成用データとに基づいて、一時鍵を生成する。
【００８１】
暗号通信工程Ｓ６２５において、暗号通信装置２００の暗号通信部２９０は、一時鍵記憶部２７０が記憶した一時鍵を使って、暗号通信装置３００との間で暗号通信をする。
暗号通信工程Ｓ６３８において、暗号通信装置３００の暗号通信部３９０は、一時鍵生成工程Ｓ６３７で一時鍵生成部３６０が生成した一時鍵を使って、暗号通信装置２００との間で暗号通信をする。
例えば、暗号通信装置２００の暗号通信部２９０は、処理装置９１１を用いて、一時鍵記憶部２７０が記憶した一時鍵を使って暗号文を生成し、通信装置９１５を用いて、生成した暗号文を暗号通信装置３００に対して送信する。暗号通信装置３００の暗号通信部３９０は、通信装置９１５を用いて、暗号通信装置２００が送信した暗号文を受信し、処理装置９１１を用いて、一時鍵生成部３６０が生成した一時鍵を使って暗号文を復号する。また、暗号通信装置３００の暗号通信部３９０は、処理装置９１１を用いて、一時鍵生成部３６０が生成した一時鍵を使って暗号文を生成し、通信装置９１５を用いて、生成した暗号文を暗号通信装置２００に対して送信する。暗号通信装置２００の暗号通信部２９０は、通信装置９１５を用いて、暗号通信装置３００が送信した暗号文を受信し、処理装置９１１を用いて、一時鍵記憶部２７０が記憶した一時鍵を使って、受信した暗号文を復号する。
【００８２】
なお、すぐに暗号通信を開始するのではなく、暗号通信を開始するために必要な情報を、合意された一時鍵を使って暗号化して、暗号通信装置２００と暗号通信装置３００との間でやり取りする構成であってもよい。例えば、暗号通信装置２００と暗号通信装置３００とは、やり取りした情報に基づいて相互認証をする。あるいは、暗号通信装置２００と暗号通信装置３００とは、やり取りした情報に基づいて、暗号通信に使う鍵を合意し、合意した鍵を使って暗号通信をする。
【００８３】
以上のように、一時鍵生成用データの有効性を判定することにより、古い一時鍵を使って、暗号通信装置２００と暗号通信装置３００とが暗号通信をするのを防ぐことができる。
【００８４】
例えば、暗号通信装置２００が小型で携帯可能である場合、暗号通信装置２００の正当な利用者が暗号通信装置２００を紛失し、第三者が暗号通信装置２００を拾得して悪用する可能性がある。検証用データの更新により、第三者が拾得した暗号通信装置２００に保存されている一時鍵が古いものになれば、その暗号通信装置２００は、暗号通信装置３００との間で暗号通信をすることができない。このため、暗号通信装置３００から情報が漏洩するのを防ぐことができる。また、暗号通信装置２００には、一時鍵と一時鍵生成用データとが保存されているが、マスター鍵は保存されていない。一時鍵と一時鍵生成用データとからマスター鍵を推測することはできないので、暗号通信装置２００を拾得した第三者が、暗号通信装置２００から一時鍵や一時鍵生成用データを取り出したとしても、マスター鍵が漏洩することはない。
【００８５】
実施の形態２．
実施の形態２について、説明する。
なお、実施の形態１と共通する部分については、同一の符号を付し、説明を省略する。
【００８６】
この実施の形態における暗号通信システム８００の全体構成、管理装置１００や暗号通信装置２００，３００のハードウェア構成及びブロック構成は、実施の形態１と同様なので、異なる部分のみ説明する。
【００８７】
暗号通信装置３００において、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であると一時鍵生成用データ検証部３５０が判定し、検証用データ記憶部３３０が、その一時鍵生成用データを検証用データとして記憶した場合、検証用データ更新部３４０は、前回の更新からの経過時間をリセットする。すなわち、検証用データ更新部３４０は、検証用データ記憶部３３０が一時鍵生成用データを検証用データとして記憶してからの経過時間が所定の更新周期に達したときに、検証用データ記憶部３３０が記憶した検証用データを更新する。
【００８８】
暗号通信装置３００の時計が正確でなく、暗号通信装置３００の時計の進み方が管理装置１００の時計の進み方より速い場合、検証用データ記憶部３３０が記憶した検証用データが表わす数値が増加する速さが、管理装置１００の一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データが表わす数値が増加する速さよりも速くなる。そのままだと、いずれは、検証用データ記憶部３３０が記憶した検証用データが表わす数値が、管理装置１００の一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データが表わす数値よりも大きくなり、最新の一時鍵生成用データであっても、一時鍵生成用データ検証部３５０が有効でないと判定するので、暗号通信装置２００と暗号通信装置３００との間の暗号通信ができなくなる。
【００８９】
暗号通信装置２００が暗号通信装置３００に対して通知した一時鍵生成用データが有効であると一時鍵生成用データ検証部３５０が判定した時点において、管理装置１００では、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データを一時鍵生成用データ更新部１４０が更新してからある程度の時間が既に経過している。したがって、暗号通信装置３００において、その時点から検証用データ更新部３４０が経過時間を測り直せば、次回の検証用データの更新は、管理装置１００における一時鍵生成用データの更新よりも遅くなる。したがって、ある程度定期的に暗号通信装置２００と暗号通信装置３００とが通信をすれば、暗号通信装置３００の時計の進み方が管理装置１００の時計の進み方より速い場合でも、検証用データ記憶部３３０が記憶した検証用データが表わす数値が増加する速さが、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データが表わす数値が増加する速さより速くなるのを防ぐことができる。
【００９０】
実施の形態３．
実施の形態３について、図１０〜図１９を用いて説明する。
なお、実施の形態１または実施の形態２と共通する部分については、同一の符号を付し、説明を省略する。
【００９１】
図１０は、この実施の形態における自動検針システム８０１の全体構成の一例を示す図である。
【００９２】
自動検針システム８０１（暗号通信システム）は、例えば、管理サーバ１０１と、携帯端末２０１と、検針メータ３０１とを有する。
検針メータ３０１と携帯端末２０１とは、無線網８０２を使って通信する。携帯端末２０１と管理サーバ１０１とは、公衆網８０３を使って通信する。携帯端末２０１と管理サーバ１０１との通信は、例えばＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）などの安全な通信路を用いる。無線通信と公衆網通信とは、必ずしも同時に行う必要はない。
なお、携帯端末２０１や検針メータ３０１は、通常、複数存在する。
【００９３】
管理サーバ１０１、携帯端末２０１及び検針メータ３０１のハードウェア構成は、例えば、実施の形態１で説明した管理装置１００や暗号通信装置２００や暗号通信装置３００と同様である。
【００９４】
図１１は、この実施の形態における管理サーバ１０１の機能ブロックの一例を示す図である。
【００９５】
管理サーバ１０１（管理装置）は、例えば、マスター鍵記憶部１１１と、世代番号カウンタ１３１と、鍵情報管理部１６１とを有する。
【００９６】
マスター鍵記憶部１１１は、マスター鍵４１１（第一マスター鍵）を記憶している。マスター鍵４１１は、共通鍵暗号で使用する鍵であり、検針メータ３０１も同じ鍵を持っている。複数の検針メータ３０１がある場合、複数の検針メータ３０１で共通のマスター鍵を使う構成であってもよいし、検針メータ３０１ごとに異なる個別のマスター鍵を使う構成であってもよい。
【００９７】
世代番号カウンタ１３１（一時鍵生成用データ記憶部）は、世代番号４１２（一時鍵生成用データ）を記憶している。世代番号カウンタ１３１（一時鍵生成用データ更新部）は、日付に同期して、世代番号４１２をインクリメントする。あるいは、世代番号カウンタ１３１は、一定期間（例えば２４時間）が経過するごとに、世代番号４１２をインクリメントする構成であってもよい。
【００９８】
鍵情報管理部１６１は、携帯端末２０１から一時鍵発行要求４２１を受信する。鍵情報管理部１６１は、世代番号カウンタ１３１から世代番号４１２を受け取る。鍵情報管理部１６１は、マスター鍵記憶部１１１からマスター鍵４１１を受け取る。鍵情報管理部１６１（一時鍵生成部）は、マスター鍵４１１と世代番号４１２とから一時鍵４１３（第一一時鍵）を生成する。鍵情報管理部１６１（一時鍵通知部・一時鍵生成用データ通知部）は、一時鍵４１３と世代番号４１２とを携帯端末２０１に対して送付する。
【００９９】
図１２は、この実施の形態における携帯端末２０１の機能ブロックの一例を示す図である。
【０１００】
携帯端末２０１（第一暗号通信装置）は、例えば、対管理サーバ通信部２２１と、メッセージ生成部２８１と、対検針メータ通信部２９１とを有する。
【０１０１】
対管理サーバ通信部２２１は、管理サーバ１０１の鍵情報管理部１６１に対して一時鍵発行要求４２１を送出する。対管理サーバ通信部２２１は、パスワードや、指紋などのバイオメトリックスその他の認証情報を一時鍵発行要求４２１の一部として送付する構成であってもよい。また、対管理サーバ通信部２２１は、鍵種別情報４２２を一時鍵発行要求４２１として送付する。鍵種別情報４２２は、使用する鍵の種別を示す。これにより、検針メータ３０１ごとにマスター鍵が異なる場合などにおいて、用途に応じて複数の鍵を使い分けることができる。
対管理サーバ通信部２２１（一時鍵取得部・一時鍵生成用データ取得部）は、管理サーバ１０１から一時鍵４１３と世代番号４１２とを受信する。対管理サーバ通信部２２１は、受信した一時鍵４１３と世代番号４１２とを、対検針メータ通信部２９１に渡す。
【０１０２】
メッセージ生成部２８１は、検針メータ３０１に対するメッセージ４２３を生成する。
【０１０３】
対検針メータ通信部２９１は、検針メータ３０１と通信する。
例えば、対検針メータ通信部２９１は、メッセージ生成部２８１が生成したメッセージ４２３を受け取る。対検針メータ通信部２９１は、メッセージ４２３を一時鍵４１３で暗号化する。対検針メータ通信部２９１は、メッセージ識別子を生成する。対検針メータ通信部２９１は、メッセージ４２３を暗号化した暗号文と、メッセージ識別子と、世代番号４１２とを連接して暗号化メッセージ４２４を生成する。対検針メータ通信部２９１（一時鍵生成用データ通知部・暗号通信部）は、暗号化メッセージ４２４を検針メータ３０１に対して送付する。
また、対検針メータ通信部２９１（暗号通信部）は、検針メータ３０１から暗号化応答４３４を受信する。対検針メータ通信部２９１は、暗号化応答４３４を一時鍵４１３で復号する。
【０１０４】
図１３は、この実施の形態における検針メータ３０１の機能ブロックの一例を示す図である。
【０１０５】
検針メータ３０１（第二暗号通信装置）は、例えば、マスター鍵記憶部３１１と、世代番号カウンタ３３１と、メッセージ処理部３８１と、対携帯端末通信部３９１とを有する。
【０１０６】
マスター鍵記憶部３１１は、マスター鍵４３１（第二マスター鍵）を記憶している。
【０１０７】
世代番号カウンタ３３１（検証用データ記憶部）は、世代番号４３２（検証用データ）を記憶している。世代番号カウンタ３３１（検証用データ更新部）は、日付に同期して、世代番号４３２をインクリメントする。あるいは、世代番号カウンタ３３１は、一定期間（例えば２４時間）が経過するごとに、世代番号４３２をインクリメントする構成であってもよい。
【０１０８】
対携帯端末通信部３９１は、携帯端末２０１と通信する。
例えば、対携帯端末通信部３９１（一時鍵生成用データ取得部）は、暗号化メッセージ４２４を受信する。対携帯端末通信部３９１は、世代番号カウンタ３３１から世代番号４３２を取得する。対携帯端末通信部３９１（一時鍵生成用データ検証部）は、世代番号４３２と、暗号化メッセージ４２４に含まれる世代番号４１２とを比較する。
世代番号４３２が世代番号４１２より新しい場合、対携帯端末通信部３９１は、暗号化メッセージ４２４を破棄し、暗号化応答４３４としてエラーメッセージを携帯端末２０１に対して送付する。
世代番号４３２が世代番号４１２と同じか、世代番号４１２より古い場合、対携帯端末通信部３９１は、マスター鍵記憶部３１１からマスター鍵４３１を取得する。対携帯端末通信部３９１（一時鍵生成部）は、世代番号４１２とマスター鍵４３１とから一時鍵（第二一時鍵）を生成する。対携帯端末通信部３９１は、一時鍵４１３と同じ鍵を生成する。対携帯端末通信部３９１（暗号通信部）は、生成した一時鍵で暗号化メッセージ４２４を復号し、メッセージ４２３を再現する。対携帯端末通信部３９１は、再現したメッセージ４２３を検証する。
検証に成功した場合、対携帯端末通信部３９１は、メッセージ４２３をメッセージ処理部３８１に対して送付する。また、世代番号４３２が世代番号４１２より古い場合、対携帯端末通信部３９１は、世代番号４１２を世代番号カウンタ３３１に上書きする。
【０１０９】
あるいは、対携帯端末通信部３９１は、メッセージ処理部３８１が生成した応答４３３を受信する。対携帯端末通信部３９１は、世代番号カウンタ３３１から世代番号４３２を取得する。対携帯端末通信部３９１は、マスター鍵記憶部３１１からマスター鍵４３１を取得する。対携帯端末通信部３９１（一時鍵生成部）は、世代番号４３２とマスター鍵４３１とから一時鍵（第二一時鍵）を生成する。対携帯端末通信部３９１（暗号通信部）は、応答４３３を暗号化する。対携帯端末通信部３９１は、メッセージ認証子を生成する。対携帯端末通信部３９１は、暗号化応答４３４を生成する。対携帯端末通信部３９１は、暗号化応答４３４を携帯端末２０１の対検針メータ通信部２９１に対して送付する。
【０１１０】
メッセージ処理部３８１は、対検針メータ通信部２９１が復号したメッセージ４２３を処理し、応答４３３を生成する。メッセージ処理部３８１は、応答４３３を対携帯端末通信部３９１に対して送付する。
【０１１１】
図１４は、この実施の形態の管理サーバ１０１における鍵情報管理部１６１の詳細な機能ブロックの一例を示す図である。
【０１１２】
鍵情報管理部１６１は、例えば、認証部１６２と、マスター鍵選択部１６３と、一時鍵生成部１６４と、出力判定部１７１とを有する。
【０１１３】
認証部１６２は、携帯端末２０１（対管理サーバ通信部２２１）から一時鍵発行要求４２１を受信する。認証部１６２は、一時鍵発行要求４２１に含まれる認証情報に基づいて、一時鍵発行要求４２１を処理するか否かを決定する。例えば、認証部１６２は、認証情報に基づいて送信者の認証を行う。一時鍵発行要求４２１を処理しないと決定した場合、認証部１６２は、鍵を出力しない旨を表わす出力判定信号４１４を出力判定部１７１に対して出力する。一時鍵発行要求４２１を処理すると決定した場合、認証部１６２は、一時鍵発行要求４２１から鍵種別情報４２２を分離する。認証部１６２は、鍵種別情報４２２をマスター鍵選択部１６３に渡す。
なお、認証を行わない場合、認証部１６２はなくてもよい。
【０１１４】
認証部１６２は、マスター鍵選択部１６３は、鍵種別情報４２２に基づいて、マスター鍵記憶部１１１が記憶した複数のマスター鍵４１１のなかから、一時鍵の生成に使うマスター鍵４１１を選択する。マスター鍵記憶部１１１が記憶した複数のマスター鍵４１１のなかに、鍵種別情報４２２に対応するマスター鍵４１１が存在しない場合、マスター鍵選択部１６３は、鍵を出力しない旨を表わす出力判定信号４１４を出力判定部１７１に対して出力する。
なお、マスター鍵記憶部１１１が記憶したマスター鍵４１１が一種類である場合、マスター鍵選択部１６３はなくてもよい。
【０１１５】
一時鍵生成部１６４は、マスター鍵選択部１６３が選択したマスター鍵４１１と、世代番号カウンタ１３１が記憶した世代番号４１２とを取得する。一時鍵生成部１６４は、マスター鍵４１１と世代番号４１２とに基づいて、一時鍵４１３を生成する。例えば、一時鍵生成部１６４は、一時鍵４１３として、所定の暗号化方式によって世代番号４１２をマスター鍵４１１で暗号化したデータを生成する。あるいは、一時鍵生成部１６４は、一時鍵４１３として、世代番号４１２とマスター鍵４１１とを入力とした鍵付きハッシュ関数でハッシュ値を生成する。なお、一時鍵生成部１６４が一時鍵４１３の生成に使う鍵生成方式は、世代番号４１２とマスター鍵４１１とから一時鍵４１３が一意に生成されること、及び、一時鍵４１３と世代番号４１２とからマスター鍵４１１が推定されないことが必要である。
【０１１６】
世代番号カウンタ１３１は、世代番号４１２を保有している。一定期間（例えば１日）が過ぎると、世代番号カウンタ１３１は、世代番号４１２を１つ増加する。
【０１１７】
出力判定部１７１（一時鍵通知部・一時鍵生成用データ通知部）は、一時鍵生成部１６４が生成した一時鍵４１３と世代番号４１２とを出力するか否かを判定する。
鍵を出力しない旨を表わす出力判定信号４１４を認証部１６２やマスター鍵選択部１６３から受信した場合、出力判定部１７１は、一時鍵４１３と世代番号４１２とを出力しない。なお、出力判定部１７１は、その代わりとして、所定のエラーコードを携帯端末２０１（対管理サーバ通信部２２１）に対して出力する構成であってもよい。
鍵を出力しない旨を表わす出力判定信号４１４を認証部１６２やマスター鍵選択部１６３から受信しない場合、出力判定部１７１は、一時鍵４１３と世代番号４１２とを携帯端末２０１（対管理サーバ通信部２２１）に対して出力する。
【０１１８】
図１５は、この実施の形態の携帯端末２０１における対管理サーバ通信部２２１の詳細な機能ブロックの一例を示す図である。
【０１１９】
対管理サーバ通信部２２１は、例えば、一時鍵発行要求生成部２２２と、一時鍵情報取得部２２３とを有する。
【０１２０】
一時鍵発行要求生成部２２２は、例えば、入力装置９１２から、鍵種別情報４２２と、認証情報４２５とを受け取る。入力装置９１２は、例えば、キーボードのような文字列入力装置である。あるいは、入力装置９１２は、指紋読取装置のようなバイオメトリック情報を取得する装置である。一時鍵発行要求生成部２２２は、記憶装置９１４の所定の記憶領域に鍵種別情報４２２を記憶しておく。
一時鍵発行要求生成部２２２は、取得した認証情報４２５と鍵種別情報４２２とに基づいて、一時鍵発行要求４２１を生成する。一時鍵発行要求生成部２２２が生成する一時鍵発行要求４２１は、認証情報４２５と、鍵種別情報４２２とを含む。
一時鍵発行要求生成部２２２は、一時鍵発行要求４２１を管理サーバ１０１（鍵情報管理部１６１）に対して送付する。
なお、管理サーバ１０１が利用者認証を行わない場合、一時鍵発行要求生成部２２２は、認証情報４２５を取得しない構成であってもよい。その場合、一時鍵発行要求４２１は、認証情報４２５を含まない構成であってもよい。
また、使用する鍵が一種類である場合、一時鍵発行要求生成部２２２は、鍵種別情報４２２を入力装置９１２から取得しない構成であってもよい。その場合、一時鍵発行要求生成部２２２は、鍵種別情報４２２を内部で生成する構成であってもよい。あるいは、一時鍵発行要求４２１は、鍵種別情報４２２を含まない構成であってもよい。
【０１２１】
一時鍵発行要求４２１に対する応答を管理サーバ１０１から受信した場合、一時鍵発行要求生成部２２２は、鍵種別情報４２２を対検針メータ通信部２９１に対して送付する。
【０１２２】
一時鍵情報取得部２２３（一時鍵取得部・一時鍵生成用データ取得部）は、管理サーバ１０１から一時鍵４１３と世代番号４１２とを受信する。一時鍵情報取得部２２３は、一時鍵４１３と世代番号４１２とを対検針メータ通信部２９１に対して送付する。
【０１２３】
図１６は、この実施の形態の携帯端末２０１における対検針メータ通信部２９１の詳細な機能ブロックの一例を示す図である。
【０１２４】
対検針メータ通信部２９１は、例えば、暗号化部２９２と、多重化部２９３と、分離部２９４と、復号部２９５と、受信判定部２９６とを有する。
【０１２５】
メッセージ生成部２８１は、携帯端末２０１に対して送信するメッセージ４２３を生成する。メッセージ生成部２８１は、メッセージ４２３を暗号化部２９２に対して送付する。
【０１２６】
暗号化部２９２は、対管理サーバ通信部２２１から一時鍵４１３を受信する。暗号化部２９２は、メッセージ４２３を一時鍵４１３で暗号化する。暗号化部２９２は、メッセージ認証子を生成する。暗号化部２９２は、暗号文４２６を生成する。暗号文４２６は、メッセージ４２３を暗号化した暗号文本体と、メッセージ認証子とを含む。
例えば、暗号化部２９２は、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）やＴＤＥＳ（Ｔｒｉｐｌｅ  Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）などの共通鍵暗号を所定の利用モードで実行して、メッセージ４２３を暗号化する。
また、例えば、暗号化部２９２は、ＡＥＳやＴＤＥＳなどの共通鍵暗号を所定の利用モードで実行して、メッセージ認証子を生成する。あるいは、暗号化部２９２は、鍵付き暗号ハッシュなどを実行して、メッセージ認証子を生成する。
【０１２７】
多重化部２９３は、対管理サーバ通信部２２１から鍵種別情報４２２と鍵種別情報４２２とを受信する。多重化部２９３は、鍵種別情報４２２と、世代番号４１２と、暗号文４２６とを多重化して、暗号化メッセージ４２４を生成する。多重化部２９３（一時鍵生成用データ通知部、暗号通信部）は、暗号化メッセージ４２４を携帯端末２０１（対検針メータ通信部２９１）に対して送付する。
【０１２８】
分離部２９４は、携帯端末２０１（対検針メータ通信部２９１）から暗号化応答４３４を受信する。分離部２９４は、暗号化応答４３４を暗号文４３６と世代番号４３２とに分離する。
【０１２９】
復号部２９５は、対管理サーバ通信部２２１から一時鍵４１３を受信する。復号部２９５は、一時鍵４１３を用いて、暗号文４３６を復号して、応答４３３を生成する。復号部２９５は、検針メータ３０１における対携帯端末通信部３９１が使用した暗号化方式に対応する復号方式を使って、暗号文４３６を復号する。
また、復号部２９５は、暗号文４３６のメッセージ検証をして、検証結果４２７を生成する。復号部２９５は、検針メータ３０１における対携帯端末通信部３９１が使用したメッセージ認証子生成方式に対応する検証方式を使って、暗号文４３６を検証する。
復号部２９５は、応答４３３と検証結果４２７とを出力する。
【０１３０】
受信判定部２９６は、対管理サーバ通信部２２１から世代番号４１２を受信する。受信判定部２９６は、世代番号４１２と、世代番号４３２と、検証結果４２７とに基づいて、出力判定をする。判定基準は、以下のとおりである。
・復号部２９５がメッセージ検証に失敗した場合、応答４３３を出力しない。
・世代番号４３２が世代番号４１２より古い場合、応答４３３を出力しない。
・復号部２９５がメッセージ検証に成功し、かつ、世代番号４３２が世代番号４１２と同じか世代番号４１２より新しい場合、応答４３３を出力する。
応答４３３を出力するという判定結果の場合、受信判定部２９６は、応答４３３をメッセージ生成部２８１に対して出力する。
【０１３１】
図１７は、この実施の形態の検針メータ３０１における対携帯端末通信部３９１の詳細な機能ブロックの一例を示す図である。
【０１３２】
対携帯端末通信部３９１は、例えば、マスター鍵選択部３６３と、一時鍵生成部３６４と、暗号化部３９２と、多重化部３９３と、分離部３９４と、復号部３９５と、受信判定部３９６とを有する。
【０１３３】
分離部３９４は、携帯端末２０１（対検針メータ通信部２９１）から暗号化メッセージ４２４を受信する。分離部３９４は、暗号化メッセージ４２４を、鍵種別情報４２２と、暗号文４２６と、世代番号４１２とに分離する。
【０１３４】
マスター鍵選択部３６３は、鍵種別情報４２２に基づいて、マスター鍵記憶部３１１が記憶した複数のマスター鍵４３１のなかから、一時鍵４３５の生成に使用するマスター鍵４３１を選択する。
【０１３５】
一時鍵生成部３６４は、マスター鍵選択部３６３が選択したマスター鍵４３１と、世代番号４１２とから、一時鍵４３５を生成する。一時鍵生成部３６４は、管理サーバ１０１における鍵情報管理部１６１の一時鍵生成部１６４と同じ一時鍵生成方式により、一時鍵４３５を生成する。
【０１３６】
復号部３９５は、一時鍵４３５を用いて、暗号文４２６を復号して、メッセージ４２３を生成する。復号部３９５は、携帯端末２０１における対検針メータ通信部２９１の暗号化部２９２が使用した暗号化方式に対応する復号方式を使って、暗号文４２６を復号する。
また、復号部３９５は、暗号文４２６のメッセージ検証をして、検証結果４３７を生成する。復号部３９５は、携帯端末２０１における対検針メータ通信部２９１の暗号化部２９２が使用したメッセージ認証子生成方式に対応する検証方式を使って、暗号文４２６を検証する。
復号部３９５は、暗号文４２６と検証結果４３７とを出力する。
【０１３７】
受信判定部３９６は、世代番号カウンタ３３１から世代番号４３２を取得する。受信判定部３９６は、世代番号４３２と世代番号４１２と検証結果４３７とに基づいて、出力判定をする。判定基準は、以下のとおりである。
・復号部３９５がメッセージ検証に失敗した場合、メッセージ４２３を出力しない。
・世代番号４１２が世代番号４３２より古い場合、メッセージ４２３を出力しない。
・復号部３９５がメッセージ検証に成功し、かつ、世代番号４１２が世代番号４３２と同じか世代番号４３２より新しい場合、メッセージ４２３を出力する。
メッセージ４２３を出力すると判定した場合、受信判定部３９６は、メッセージ４２３をメッセージ処理部３８１に対して出力する。
また、メッセージ検証に成功し、かつ、世代番号４１２が世代番号４３２より新しい場合、受信判定部３９６は、世代番号カウンタ３３１が記憶した値を世代番号４１２に書き換える。
【０１３８】
世代番号カウンタ３３１は、保持する世代番号４３２が変更されてから一定期間（例えば１日）が経過すると、保有している世代番号４３２を１つ増加する。
【０１３９】
暗号化部３９２は、メッセージ処理部３８１から応答４３３を受信する。暗号化部３９２は、一時鍵４３５を用いて、応答４３３を暗号化する。また、暗号化部３９２は、メッセージ認証子を生成する。暗号化部３９２は、暗号文４３６を生成する。暗号化部３９２は、例えば、携帯端末２０１における対検針メータ通信部２９１の暗号化部２９２と同じ暗号化方式及びメッセージ認証子生成方式を使って、暗号文４３６を生成する。
【０１４０】
多重化部３９３は、鍵種別情報４２２と、世代番号４３２と、暗号文４３６とを多重化して、暗号化応答４３４を生成する。多重化部３９３は、暗号化応答４３４を携帯端末２０１（対検針メータ通信部２９１）に対して送付する。
【０１４１】
次に、動作について説明する。
【０１４２】
図１８は、この実施の形態における一時鍵通知処理Ｓ６０３の流れの一例を示すフロー図である。
【０１４３】
一時鍵通知処理Ｓ６０３は、例えば、一時鍵発行要求生成工程Ｓ６４１と、認証工程Ｓ６４２と、マスター鍵選択工程Ｓ６４３と、一時鍵生成工程Ｓ６４４と、出力工程Ｓ６４５と、一時鍵情報取得工程Ｓ６４６とを有する。
【０１４４】
一時鍵発行要求生成工程Ｓ６４１において、携帯端末２０１の一時鍵発行要求生成部２２２は、一時鍵発行要求４２１を生成する。一時鍵発行要求生成部２２２は、一時鍵発行要求４２１を管理サーバ１０１（鍵情報管理部１６１）に対して送信する。
認証工程Ｓ６４２において、管理サーバ１０１の認証部１６２は、一時鍵発行要求４２１を受信する。認証部１６２は、一時鍵発行要求４２１を検証する。検証に失敗した場合、認証部１６２は、一時鍵通知処理Ｓ６０３を終了する。検証に成功した場合、認証部１６２は、一時鍵発行要求４２１から鍵種別情報４２２を分離して、マスター鍵選択工程Ｓ６４３へ処理を進める。
マスター鍵選択工程Ｓ６４３において、管理サーバ１０１のマスター鍵選択部１６３は、鍵種別情報４２２に基づいて、マスター鍵４１１を選択する。鍵種別情報４２２が不正である場合、マスター鍵選択部１６３は、一時鍵通知処理Ｓ６０３を終了する。鍵種別情報４２２が正しい場合、マスター鍵選択部１６３は、一時鍵生成工程Ｓ６４４へ処理を進める。
一時鍵生成工程Ｓ６４４において、管理サーバ１０１の一時鍵生成部１６４は、マスター鍵４１１と世代番号４１２とに基づいて、一時鍵４１３を生成する。
出力工程Ｓ６４５において、管理サーバ１０１の出力判定部１７１は、一時鍵４１３と世代番号４１２とを携帯端末２０１（対管理サーバ通信部２２１）に対して送信する。
一時鍵情報取得工程Ｓ６４６において、携帯端末２０１の一時鍵情報取得部２２３は、一時鍵４１３と世代番号４１２とを受信する。一時鍵情報取得部２２３は、一時鍵４１３と世代番号４１２とを対検針メータ通信部２９１に対して出力する。一時鍵発行要求生成部２２２は、鍵種別情報４２２を対検針メータ通信部２９１に対して出力する。
なお、この時点で、管理サーバ１０１と携帯端末２０１との間の通信は、切断してもよい。
【０１４５】
図１９は、この実施の形態における暗号通信処理Ｓ６０４の流れの一例を示すフロー図である。
【０１４６】
暗号通信処理Ｓ６０４は、例えば、暗号化工程Ｓ６５１と、多重化工程Ｓ６５２と、分離工程Ｓ６５３と、マスター鍵選択工程Ｓ６５４と、一時鍵生成工程Ｓ６５５と、復号工程Ｓ６５６と、受信判定工程Ｓ６５７と、メッセージ処理工程Ｓ６６０と、マスター鍵選択工程Ｓ６７１と、一時鍵生成工程Ｓ６７２と、暗号化工程Ｓ６７３と、多重化工程Ｓ６７４と、分離工程Ｓ６７５と、復号工程Ｓ６７６と、受信判定工程Ｓ６７７とを有する。
【０１４７】
暗号化工程Ｓ６５１において、携帯端末２０１の暗号化部２９２は、一時鍵４１３を使って、メッセージ４２３を暗号化し、暗号文４２６を生成する。
多重化工程Ｓ６５２において、携帯端末２０１の多重化部２９３は、暗号文４２６と、世代番号４１２と、鍵種別情報４２２とを多重化して、暗号化メッセージ４２４を生成する。多重化部２９３は、暗号化メッセージ４２４を検針メータ３０１（対携帯端末通信部３９１）に対して送信する。
分離工程Ｓ６５３において、検針メータ３０１の分離部３９４は、暗号化メッセージ４２４を受信する。分離部３９４は、暗号化メッセージ４２４を、暗号文４２６と世代番号４１２と鍵種別情報４２２とに分離する。
マスター鍵選択工程Ｓ６５４において、検針メータ３０１のマスター鍵選択部３６３は、鍵種別情報４２２に基づいて、マスター鍵４３１を選択する。マスター鍵選択部３６３は、鍵種別情報４２２を記憶する。
一時鍵生成工程Ｓ６５５において、検針メータ３０１の一時鍵生成部３６４は、マスター鍵４３１と世代番号４１２とに基づいて、一時鍵４３５を生成する。
復号工程Ｓ６５６において、検針メータ３０１の復号部３９５は、一時鍵４３５を使って、暗号文４２６を復号し、メッセージ４２３と検証結果４３７とを生成する。
受信判定工程Ｓ６５７において、検針メータ３０１の受信判定部３９６は、世代番号４１２と世代番号４３２と検証結果４３７とに基づいて、メッセージ４２３を出力するか否かを判定する。メッセージ４２３を出力しないと判定した場合、受信判定部３９６は、暗号通信処理Ｓ６０４を終了する。メッセージ４２３を出力すると判定した場合、受信判定部３９６は、メッセージ４２３を出力する。世代番号カウンタ３３１は、世代番号４１２を記憶する。
メッセージ処理工程Ｓ６６０において、検針メータ３０１のメッセージ処理部３８１は、メッセージ４２３を処理し、応答４３３を生成する。
マスター鍵選択工程Ｓ６７１において、検針メータ３０１のマスター鍵選択部３６３は、記憶していた鍵種別情報４２２に基づいて、マスター鍵４３１を選択する。マスター鍵選択部３６３は、選択したマスター鍵４３１と鍵種別情報４２２とを出力する。
一時鍵生成工程Ｓ６７２において、検針メータ３０１の一時鍵生成部３６４は、マスター鍵４３１と世代番号４３２とに基づいて、一時鍵４３５を生成する。一時鍵生成工程Ｓ６７２で一時鍵生成部３６４が生成する一時鍵４３５は、一時鍵生成工程Ｓ６５５で一時鍵生成部３６４が生成した一時鍵４３５と同一である。
暗号化工程Ｓ６７３において、検針メータ３０１の暗号化部３９２は、一時鍵生成工程Ｓ６７２で一時鍵生成部３６４が生成した一時鍵４３５を使って、応答４３３を暗号化し、暗号文４３６を生成する。なお、暗号化部３９２は、一時鍵生成工程Ｓ６５５で一時鍵生成部３６４が生成した一時鍵４３５を使って応答４３３を暗号化する構成であってもよい。その場合、マスター鍵選択工程Ｓ６７１及び一時鍵生成工程Ｓ６７２は、なくてもよい。
多重化工程Ｓ６７４において、検針メータ３０１の多重化部３９３は、暗号文４３６と世代番号４３２と鍵種別情報４２２とを多重化して、暗号化応答４３４を生成する。多重化部３９３は、暗号化応答４３４を携帯端末２０１（対検針メータ通信部２９１）に対して送信する。
分離工程Ｓ６７５において、携帯端末２０１の分離部２９４は、暗号化応答４３４を受信する。分離部２９４は、暗号化応答４３４を、暗号文４３６と世代番号４３２とに分離する。
復号工程Ｓ６７６において、携帯端末２０１の復号部２９５は、暗号文４３６を復号して、応答４３３と検証結果４２７とを生成する。
受信判定工程Ｓ６７７において、携帯端末２０１の受信判定部２９６は、世代番号４３２と世代番号４１２と検証結果４２７とに基づいて、応答４３３を出力するか否かを判定する。応答４３３を出力すると判定した場合、受信判定部２９６は、応答４３３をメッセージ生成部２８１に対して出力する。
【０１４８】
この実施の形態における通信装置（携帯端末２０１、検針メータ３０１）は、共通鍵暗号通信において、一時的に生成した暗号鍵を用いて通信する。
通信装置は、予め装置間で共有しているマスター鍵と、一定期間で単調増加するカウンタとを保持し、前記カウンタからカウンタ値を取得し、前記マスター鍵と前記カウンタ値から一時鍵を生成し、前記一時鍵を用いて所定のメッセージに対しメッセージ認証子を生成し、前記カウンタ値と前記メッセージと前記メッセージ認証子とを送信する。
【０１４９】
通信装置（携帯端末２０１）は、前記一時鍵と前記カウンタ値を、公衆網経由で所定のサーバ（管理サーバ１０１）から取得し、前記一時鍵で所定のメッセージに対しメッセージ認証子を生成し、前記カウンタ値と前記メッセージと前記メッセージ認証子とを送信する。
【０１５０】
通信装置（携帯端末２０１、検針メータ３０１）は、メッセージを前記一時鍵で暗号化する。
【０１５１】
通信装置（携帯端末２０１、検針メータ３０１）は、他の通信装置によって送信されるメッセージを受信する。
通信装置は、予め装置間で共有しているマスター鍵と、一定期間で単調増加するカウンタを保持し、前記マスター鍵と受信したカウンタ値から一時鍵を生成し、受信したメッセージの検証を行い、メッセージ検証に成功し、かつ前記カウンタから取得したカウンタ値より、受信したカウンタ値が同じか新しい場合に、当該メッセージを受理する。
【０１５２】
通信装置（検針メータ３０１）は、前記カウンタから取得したカウンタ値より、受信したカウンタ値が新しい場合に、前期カウンタの値を前記受信したカウンタ値に更新する。
【０１５３】
この実施の形態における自動検針システム８０１（暗号通信システム）は、マスター鍵と世代番号から一時鍵を生成し、暗号化に使用する。世代番号は一定期間ごとに更新されるため、一時鍵も更新可能となる。よって、携帯端末から鍵が漏洩しても、一定期間後に無効化できる。
【０１５４】
また、受信側となる携帯端末通信部は、送られてきた世代番号と自身の保持する世代番号とを比較する。よって、仮に一時鍵が漏洩しても、一時鍵に対応する世代番号が無効になった時点で当該一時鍵を使用することができない。
【０１５５】
さらに、検針メータ内の携帯端末通信部は、メッセージ検証に成功し、自身の保持する世代番号が送られてきた世代番号より古い場合は、自身の世代番号を書き換えるため、世代番号の同期を取ることができる。メッセージ検証を行なうため、仮に攻撃者が任意の世代番号を送っても、その不正を検知できる。
【０１５６】
実施の形態４．
実施の形態４について、図２０〜図２４を用いて説明する。
なお、実施の形態１〜実施の形態３と共通する部分については、同一の符号を付し、説明を省略する。
【０１５７】
図２０は、この実施の形態における暗号通信システム８００の全体構成の一例を示すシステム構成図である。
【０１５８】
暗号通信システム８００は、複数の暗号通信装置５００を有する。複数の暗号通信装置５００は、互いに暗号通信をする。
暗号通信装置５００のハードウェア構成は、例えば、実施の形態１で説明した管理装置１００や暗号通信装置２００や暗号通信装置３００と同様である。
【０１５９】
図２１は、この実施の形態における暗号通信装置５００の全体構成の一例を示すシステム構成図である。
【０１６０】
暗号通信装置５００は、例えば、管理部１０２と、通信部２０２と、検証部３０２とを有する。
【０１６１】
管理部１０２（管理装置）は、マスター鍵や一時鍵生成用データを管理し、一時鍵を生成する。
管理部１０２は、例えば、マスター鍵記憶部１１０と、一時鍵生成用データ記憶部１３０と、一時鍵生成用データ更新部１４０と、一時鍵生成部１６０とを有する。
マスター鍵記憶部１１０は、記憶装置９１４を用いて、マスター鍵を記憶している。複数の暗号通信装置５００において、マスター鍵記憶部１１０が記憶しているマスター鍵は、すべて同一である。
一時鍵生成用データ記憶部１３０は、記憶装置９１４を用いて、一時鍵生成用データを記憶している。複数の暗号通信装置５００において、一時鍵生成用データ記憶部１３０が記憶している一時鍵生成用データは、必ずしも同一でなくてよい。
一時鍵生成用データ更新部１４０は、処理装置９１１を用いて、所定の周期が経過するごとに、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データを、繰り返し更新する。
一時鍵生成部１６０は、処理装置９１１を用いて、一時鍵を生成する。一時鍵生成部１６０は、マスター鍵記憶部１１０が記憶したマスター鍵と、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データとを使って、一時鍵を生成する。
【０１６２】
通信部２０２（第一暗号通信装置）は、管理部１０２が一時鍵を生成するために使った一時鍵生成用データを他の暗号通信装置５００に対して通知するとともに、管理部１０２が生成した一時鍵を使って、他の暗号通信装置５００との間で暗号通信をする。
通信部２０２は、例えば、一時鍵生成用データ通知部２５０と、暗号通信部２９０とを有する。
一時鍵生成用データ通知部２５０は、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データを他の暗号通信装置５００に対して通知する。例えば、一時鍵生成用データ通知部２５０は、通信装置９１５を用いて、一時鍵生成用データを他の暗号通信装置５００に対して送信する。
暗号通信部２９０は、一時鍵生成部１６０が生成した一時鍵を使って、他の暗号通信装置５００との間で暗号通信をする。例えば、暗号通信部２９０は、処理装置９１１を用いて、一時鍵生成部１６０が生成した一時鍵を使って暗号化した暗号文を生成し、通信装置９１５を用いて、他の暗号通信装置５００に対して送信する。あるいは、暗号通信部２９０は、通信装置９１５を用いて、他の暗号通信装置５００が送信した暗号文を受信し、処理装置９１１を用いて、一時鍵生成部１６０が生成した一時鍵を使って、受信した暗号文を復号する。
【０１６３】
検証部３０２は、他の暗号通信装置５００から通知された一時鍵生成用データを検証する。
検証部３０２は、例えば、一時鍵生成用データ取得部３２０と、一時鍵生成用データ検証部３５０とを有する。
一時鍵生成用データ取得部３２０は、他の暗号通信装置５００から通知された一時鍵生成用データを取得する。例えば、一時鍵生成用データ取得部３２０は、通信装置９１５を用いて、他の暗号通信装置５００が送信した一時鍵生成用データを受信する。
一時鍵生成用データ検証部３５０は、処理装置９１１を用いて、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であるか否かを判定する。一時鍵生成用データ検証部３５０は、一時鍵生成用データ記憶部１３０（検証用データ記憶部）が記憶した一時鍵生成用データ（検証用データ）を使って、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であるか否かを判定する。
【０１６４】
一時鍵生成用データ検証部３５０は、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データと、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データとを比較して、どちらが新しいかを判定する。
一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データより古い場合、一時鍵生成用データ検証部３５０は、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効でないと判定する。
一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データより新しい場合、一時鍵生成用データ検証部３５０は、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であると判定する。
また、が取得した一時鍵生成用データと、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データとが同じ新しさである場合も、一時鍵生成用データ検証部３５０は、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であると判定する。
【０１６５】
例えば、一時鍵生成用データは、数値を表わすデータであり、一時鍵生成用データ更新部１４０（検証用データ更新部）は、所定の周期が経過するごとに、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データが表わす数値に所定の増分値を加えた和を算出する。一時鍵生成用データ更新部１４０は、算出した和を表わすデータで、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データを更新する。一時鍵生成用データ記憶部１３０は、それまで記憶していた古い一時鍵生成用データに代えて、更新された新しい一時鍵生成用データを記憶する。複数の暗号通信装置５００において、一時鍵生成用データが表わす数値が増加する速さがほぼ同じであれば、一時鍵生成用データ更新部１４０が一時鍵生成用データを更新する周期や一時鍵生成用データが表わす数値に加算する増分値は、必ずしも同じである必要はない。
一時鍵生成用データ検証部３５０は、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが表わす数値と、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データが表わす数値とを比較し、数値が大きいほうが新しいと判定する。
【０１６６】
一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であると一時鍵生成用データ検証部３５０が判定した場合、一時鍵生成用データ記憶部１３０は、それまで記憶していた古い一時鍵生成用データに代えて、有効であると一時鍵生成用データ検証部３５０が判定した一時鍵生成用データを記憶する。
一時鍵生成部１６０は、更新された一時鍵生成用データに基づいて、一時鍵を生成する。暗号通信部２９０は、更新された一時鍵生成用データに基づいて一時鍵生成部１６０が生成した一時鍵を使って、一時鍵生成用データを通知してきた他の暗号通信装置５００との間で暗号通信をする。
【０１６７】
次に、動作について説明する。
【０１６８】
暗号通信システム８００における処理には、大きく分けて、初期化処理Ｓ６０１と、更新処理Ｓ６０２と、暗号通信処理Ｓ６０４とがある。
初期化処理Ｓ６０１において、暗号通信装置５００は、マスター鍵や一時鍵生成用データなどを初期化する。
更新処理Ｓ６０２において、暗号通信装置５００は、一時鍵生成用データを定期的に更新する。
暗号通信処理Ｓ６０４において、暗号通信装置５００は、他の暗号通信装置５００との間で暗号通信に使う一時鍵を合意し、暗号通信をする。
【０１６９】
図２２は、この実施の形態における初期化処理Ｓ６０１の流れの一例を示すフロー図である。
【０１７０】
初期化処理Ｓ６０１において、暗号通信装置５００は、例えば、マスター鍵記憶工程Ｓ６１１と、一時鍵生成用データ初期化工程Ｓ６１２とを実行する。なお、複数の暗号通信装置５００が初期化処理Ｓ６０１を実行するタイミングは、同じである必要はない。
【０１７１】
マスター鍵記憶工程Ｓ６１１において、暗号通信装置５００のマスター鍵記憶部１１０は、マスター鍵を取得する。マスター鍵記憶部１１０は、記憶装置９１４を用いて、取得したマスター鍵を記憶する。
【０１７２】
一時鍵生成用データ初期化工程Ｓ６１２において、暗号通信装置５００の一時鍵生成用データ記憶部１３０は、一時鍵生成用データを初期化する。
【０１７３】
図２３は、この実施の形態における更新処理Ｓ６０２の流れの一例を示すフロー図である。
【０１７４】
更新処理Ｓ６０２において、暗号通信装置５００は、例えば、周期経過判定工程Ｓ６１３と、一時鍵生成用データ更新工程Ｓ６１４とを実行する。
【０１７５】
周期経過判定工程Ｓ６１３において、暗号通信装置５００の一時鍵生成用データ更新部１４０は、あらかじめ定められた更新周期が経過したか否かを判定する。
更新周期が経過したと判定した場合、一時鍵生成用データ更新部１４０は、一時鍵生成用データ更新工程Ｓ６１４へ処理を進める。
【０１７６】
一時鍵生成用データ更新工程Ｓ６１４において、暗号通信装置５００の一時鍵生成用データ更新部１４０は、一時鍵生成用データを更新する。
その後、一時鍵生成用データ更新部１４０は、周期経過判定工程Ｓ６１３に処理を戻し、次の更新周期が経過するのを待つ。
【０１７７】
なお、一時鍵生成用データ更新部１４０は、一時鍵生成用データ更新部１４０による前回の更新時を起点として、更新周期が経過したか否かを判定する構成であってもよいし、前回の更新の後、有効であると一時鍵生成用データ検証部３５０が判定した一時鍵生成用データを一時鍵生成用データ記憶部１３０が記憶した場合、その時点を起点として、更新周期が経過したか否かを判定する構成であってもよい。
【０１７８】
図２４は、この実施の形態における暗号通信処理Ｓ６０４の流れの一例を示すフロー図である。
【０１７９】
能動的に暗号通信を開始する側（以下「発呼側」と呼ぶ。）の暗号通信装置５００は、暗号通信処理Ｓ６０４において、一時鍵生成工程Ｓ６１６と、一時鍵生成用データ通知工程Ｓ６２４と、一時鍵生成用データ取得工程Ｓ６３５ｂと、一時鍵生成用データ検証工程Ｓ６３６ｂと、一時鍵生成工程Ｓ６３７ｂと、暗号通信工程Ｓ６２５とを実行する。
発呼側の暗号通信装置５００からの要求を受けて受動的に暗号通信をする側（以下「着呼側」と呼ぶ。）の暗号通信装置５００は、暗号通信処理Ｓ６０４において、一時鍵生成用データ取得工程Ｓ６３５と、一時鍵生成用データ検証工程Ｓ６３６と、一時鍵生成工程Ｓ６１６ｂと、一時鍵生成用データ通知工程Ｓ６２４ｂと、一時鍵生成工程Ｓ６３７と、暗号通信工程Ｓ６３８とを実行する。
【０１８０】
一時鍵生成工程Ｓ６１６において、発呼側の暗号通信装置５００の一時鍵生成部１６０は、マスター鍵記憶部１１０が記憶したマスター鍵と、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データとに基づいて、一時鍵を生成する。
【０１８１】
一時鍵生成用データ通知工程Ｓ６２４において、発呼側の暗号通信装置５００の一時鍵生成用データ通知部２５０は、一時鍵生成工程Ｓ６１６で一時鍵生成部１６０が一時鍵の生成に使った一時鍵生成用データを着呼側の暗号通信装置５００に対して通知する。
一時鍵生成用データ取得工程Ｓ６３５において、着呼側の暗号通信装置５００の一時鍵生成用データ取得部３２０は、発呼側の暗号通信装置５００から通知された一時鍵を取得する。
【０１８２】
一時鍵生成用データ検証工程Ｓ６３６において、着呼側の暗号通信装置５００の一時鍵生成用データ検証部３５０は、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データに基づいて、一時鍵生成用データ取得工程Ｓ６３５で一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であるか否かを判定する。
一時鍵生成用データが有効であると一時鍵生成用データ検証部３５０が判定した場合、着呼側の暗号通信装置５００の一時鍵生成用データ記憶部１３０は、有効であると一時鍵生成用データ検証部３５０が判定した一時鍵生成用データを、新たな一時鍵生成用データとして記憶する。着呼側の暗号通信装置５００は、一時鍵生成工程Ｓ６３７へ処理を進める。
一時鍵生成用データが有効でないと一時鍵生成用データ検証部３５０が判定した場合、着呼側の暗号通信装置５００は、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データを更新せず、一時鍵生成工程Ｓ６１６ｂへ処理を進める。
【０１８３】
一時鍵生成工程Ｓ６３７において、着呼側の暗号通信装置５００の一時鍵生成部１６０は、マスター鍵記憶部１１０が記憶したマスター鍵と、一時鍵生成用データ検証工程Ｓ６３６で一時鍵生成用データ記憶部１３０が新たに記憶した一時鍵生成用データとに基づいて、一時鍵を生成する。一時鍵生成工程Ｓ６３７で着呼側の暗号通信装置５００の一時鍵生成部１６０が生成する一時鍵は、一時鍵生成工程Ｓ６１６で発呼側の暗号通信装置５００の一時鍵生成部１６０が生成した一時鍵と同一の、又は、その一時鍵に対応する一時鍵である。
着呼側の暗号通信装置５００は、暗号通信工程Ｓ６３８へ処理を進める。
【０１８４】
一時鍵生成工程Ｓ６１６ｂにおいて、着呼側の暗号通信装置５００の一時鍵生成部１６０は、マスター鍵記憶部１１０が記憶したマスター鍵と、もともと一時鍵生成用データ記憶部１３０が記憶していた一時鍵生成用データとに基づいて、一時鍵を生成する。
【０１８５】
一時鍵生成用データ通知工程Ｓ６２４ｂにおいて、着呼側の暗号通信装置５００の一時鍵生成用データ通知部２５０は、一時鍵生成工程Ｓ６１６ｂで一時鍵生成部１６０が一時鍵の生成に使った一時鍵生成用データを発呼側の暗号通信装置５００に対して通知する。
着呼側の暗号通信装置５００から一時鍵生成用データを通知された場合、発呼側の暗号通信装置５００は、一時鍵生成用データ取得工程Ｓ６３５ｂへ処理を進める。
一時鍵生成用データ取得工程Ｓ６３５ｂにおいて、発呼側の暗号通信装置５００の一時鍵生成用データ取得部３２０は、着呼側の暗号通信装置５００から通知された一時鍵生成用データを取得する。
【０１８６】
一時鍵生成用データ検証工程Ｓ６３６ｂにおいて、発呼側の暗号通信装置５００の一時鍵生成用データ検証部３５０は、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データに基づいて、一時鍵生成用データ取得工程Ｓ６３５ｂで一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であるか否かを判定する。
一時鍵生成用データが有効でないと一時鍵生成用データ検証部３５０が判定した場合、双方の暗号通信装置５００が、相手の一時鍵生成用データが有効でないと判定したので、暗号通信を開始することができない。このため、暗号通信処理Ｓ６０４を終了する。
一時鍵生成用データが有効であると一時鍵生成用データ検証部３５０が判定した場合、発呼側の暗号通信装置５００の一時鍵生成用データ記憶部１３０は、有効であると一時鍵生成用データ検証部３５０が判定した一時鍵生成用データを、新たな一時鍵生成用データとして記憶する。
【０１８７】
一時鍵生成工程Ｓ６３７ｂにおいて、発呼側の暗号通信装置５００の一時鍵生成部１６０は、マスター鍵記憶部１１０が記憶したマスター鍵と、一時鍵生成用データ検証工程Ｓ６３６ｂで一時鍵生成用データ記憶部１３０が新たに記憶した一時鍵生成用データとに基づいて、一時鍵を生成する。一時鍵生成工程Ｓ６３７ｂで発呼側の暗号通信装置５００の一時鍵生成部１６０が生成する一時鍵は、一時鍵生成工程Ｓ６１６で着呼側の暗号通信装置５００の一時鍵生成部１６０が生成した一時鍵と同一の、又は、その一時鍵に対応する一時鍵である。
【０１８８】
暗号通信工程Ｓ６２５において、発呼側の暗号通信装置５００の暗号通信部２９０は、一時鍵生成工程Ｓ６１６（または一時鍵生成工程Ｓ６３７ｂ）で一時鍵生成部１６０が生成した一時鍵を使って、着呼側の暗号通信装置５００との間で暗号通信をする。
暗号通信工程Ｓ６３８において、着呼側の暗号通信装置５００の暗号通信部２９０は、一時鍵生成工程Ｓ６３７（または一時鍵生成工程Ｓ６１６ｂ）で一時鍵生成部１６０が生成した一時鍵を使って、発呼側の暗号通信装置５００との間で暗号通信をする。
【０１８９】
このように、実施の形態１で説明した三つの装置（管理装置１００、暗号通信装置２００及び暗号通信装置３００）の機能を一つの装置（暗号通信装置５００）が有することにより、複数の暗号通信装置５００が、互いに暗号通信することができる。なお、この実施の形態における一時鍵生成用データは、実施の形態１における一時鍵生成用データとしての役割と検証用データとしての役割とを兼ね備える。このため、暗号通信装置５００は、実施の形態１で説明した検証用データ記憶部３３０や検証用データ更新部３４０を有する必要はない。
【０１９０】
発呼側の暗号通信装置５００の時計の進み方と、着呼側の暗号通信装置５００の時計の進み方とが異なる場合、発呼側の時計の進み方のほうが速ければ、発呼側の一時鍵生成用データが表わす数値が増加する速さが着呼側より速いので、発呼側の一時鍵生成用データが有効であると着呼側の一時鍵生成用データ検証部３５０が判定し、一時鍵生成用データを発呼側に統一して、暗号通信をする。
逆に、着呼側の時計のほうが速い場合、発呼側の一時鍵生成用データが有効でないと着呼側の一時鍵生成用データ検証部３５０が判定する可能性がある。その場合、着呼側から一時鍵生成用データを発呼側に通知し、一時鍵生成用データを着呼側に統一して、暗号通信をする。
このように、暗号通信装置５００同士が暗号通信をするたびに、一時鍵生成用データが、時計の進み方が速いほうに統一される。
【０１９１】
なお、一時鍵生成用データ検証部３５０は、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データよりも古い場合であっても、その差が所定の範囲内である場合は、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であると判定する構成であってもよい。その場合、一時鍵生成用データ記憶部１３０は、記憶した一時鍵生成用データを更新しない構成であってもよい。
【０１９２】
実施の形態５．
実施の形態５について、図２５〜図２６を用いて説明する。
なお、実施の形態１〜実施の形態４と共通する部分については、同一の符号を付し、説明を省略する。
【０１９３】
図２５は、この実施の形態における自動検針システム８０１の全体構成の一例を示す図である。
【０１９４】
自動検針システム８０１は、管理サーバ１０１と、携帯端末２０１と、複数の検針メータ３０１とを有する。なお、携帯端末２０１は、複数存在してもよい。
検針メータ３０１は、携帯端末２０１との間で暗号通信するだけでなく、検針メータ３０１同士の間でも、無線網８０２を用いて暗号通信をする。このとき、検針メータ３０１は、管理サーバ１０１と通信する必要はない。
【０１９５】
管理サーバ１０１、携帯端末２０１及び検針メータ３０１のハードウェア構成や、管理サーバ１０１及び携帯端末２０１のブロック構成は、実施の形態３と同様である。
【０１９６】
図２６は、この実施の形態における検針メータ３０１の機能ブロックの一例を示す図である。
【０１９７】
検針メータ３０１は、実施の形態３で説明した機能ブロックに加えて、更に、対検針メータ通信部３７１を有する。なお、対携帯端末通信部３９１は、図示を省略している。
【０１９８】
メッセージ処理部３８１は、他の検針メータ３０１に対するメッセージ４２３ａを生成して、対検針メータ通信部３７１に対して送付し、対検針メータ通信部３７１が生成した他の検針メータ３０１からの応答４３３ｂを受け取る。
また、メッセージ処理部３８１は、対検針メータ通信部３７１が生成した他の検針メータ３０１からのメッセージ４２３ｂを処理し、応答４３３ａを生成して、対検針メータ通信部３７１に対して送付する。
【０１９９】
対検針メータ通信部３７１は、メッセージ処理部３８１からメッセージ４２３ａ／応答４３３ａを受信する。対検針メータ通信部３７１は、世代番号カウンタ３３１から世代番号４３２ａを受け取る。対検針メータ通信部３７１は、マスター鍵記憶部３１１が記憶したマスター鍵４３１と、世代番号４３２ａとを用いて、一時鍵を生成する。対検針メータ通信部３７１は、生成した一時鍵を使って、メッセージ処理部３８１が生成したメッセージ４２３ａ／応答４３３ａを暗号化して、暗号化メッセージ４２４ａ／暗号化応答４３４ａを生成する。対検針メータ通信部３７１は、暗号化メッセージ４２４ａ／暗号化応答４３４ａを他の検針メータ３０１に送る。
また、対検針メータ通信部３７１は、他の検針メータ３０１から暗号化メッセージ４２４ｂ／暗号化応答４３４ｂを受信する。対検針メータ通信部３７１は、世代番号カウンタ３３１から世代番号４３２ａを取得する。対検針メータ通信部３７１は、暗号化メッセージ４２４ｂ／暗号化応答４３４ｂに含まれる世代番号４３２ｂと、世代番号４３２ａとを比較する。世代番号４３２ｂが世代番号４３２ａと同じか世代番号４３２ａより新しい場合、対検針メータ通信部３７１は、マスター鍵記憶部３１１が記憶したマスター鍵４３１と、世代番号４３２ｂとを用いて、一時鍵を生成する。対検針メータ通信部３７１は、生成した一時鍵を使って、暗号化メッセージ４２４ｂ／暗号化応答４３４ｂを復号し、メッセージ４２３ｂ／応答４３３ｂを生成する。対検針メータ通信部３７１は、暗号化メッセージ４２４ｂ／暗号化応答４３４ｂをメッセージ検証する。
検証にパスした場合、対検針メータ通信部３７１は、暗号化メッセージ４２４ｂ／暗号化応答４３４ｂを受理し、生成したメッセージ４２３ｂ／応答４３３ｂをメッセージ処理部３８１に対して送付する。また、世代番号４３２ｂが世代番号４３２ａより新しい場合、対検針メータ通信部３７１は、世代番号カウンタ３３１の値を世代番号４３２ｂに書き換える。
【０２００】
この実施の形態における対検針メータ通信部３７１の動作の詳細は、実施の形態３における検針メータ３０１の対携帯端末通信部３９１と同様なので、詳細な説明は省略する。
【０２０１】
この実施の形態における自動検針システム８０１は、暗号通信には一時鍵を用いており、さらにその鍵を一定期間で無効化することができる。また、管理サーバとの通信を行なわなくても、機器間の世代番号の同期を取ることができる。
【０２０２】
実施の形態６．
実施の形態６について、図２７〜図３１を用いて説明する。
なお、実施の形態１〜実施の形態５と共通する部分については、同一の符号を付し、説明を省略する。
【０２０３】
この実施の形態における暗号通信システム８００の全体構成、管理装置１００や暗号通信装置２００，３００のハードウェア構成は、実施の形態１と同様である。
【０２０４】
図２７は、この実施の形態における管理装置１００の機能ブロックの一例を示すブロック構成図である。
【０２０５】
管理装置１００は、実施の形態１で説明した機能ブロックに加えて、更に、初期化コマンド生成部１６５と、初期化コマンド通知部１７５とを有する。
【０２０６】
初期化コマンド生成部１６５は、処理装置９１１を用いて、初期化コマンドを生成する。初期化コマンドは、暗号通信装置３００の検証用データ記憶部３３０が記憶した検証用データを初期化するためのものである。
【０２０７】
初期化コマンド生成部１６５が生成する初期化コマンドは、有効期限を有する。
例えば、初期化コマンドは、初期化コマンドの有効期限を表わす有効期限情報を含む。暗号通信装置３００は、初期化コマンドに含まれる有効期限情報に基づいて、初期化コマンドが有効か否かを判定する。
あるいは、初期化コマンドは、初期化コマンド生成部１６５がその初期化コマンドを生成した日付や時刻などを表わす生成時刻情報を含む。暗号通信装置３００は、初期化コマンドに含まれる生成時刻情報に基づいて、初期化コマンド生成部１６５が初期化コマンドを生成してから、所定の期間（例えば１日）が経過した場合、その初期化コマンドが有効でないと判定する。
【０２０８】
また、初期化コマンド生成部１６５が生成する初期化コマンドは、検証用データを初期化すべき初期値を表わす情報を含む構成であってもよい。その場合、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データを、検証用データの初期値とする構成であってもよい。
【０２０９】
また、初期化コマンド生成部１６５が生成する初期化コマンドは、それを管理装置１００が生成したものであることを証明し、暗号通信装置３００が検証できる形式を有する。
例えば、初期化コマンドは、マスター鍵記憶部１１０が記憶したマスター鍵を使って暗号化されている。暗号通信装置３００は、マスター鍵記憶部３１０が記憶したマスター鍵を使って初期化コマンドを復号する。初期化コマンドを正しく復号できれば、初期化コマンドを暗号化したものがマスター鍵を知っていることがわかるので、管理装置１００が初期化コマンドを生成したと判定できる。
あるいは、初期化コマンドは、マスター鍵記憶部１１０が記憶したマスター鍵と、所定の一時鍵生成用データとを使って生成した一時鍵を用いて暗号化される構成であってもよい。暗号通信装置３００は、初期化コマンドを暗号化するときに用いる一時鍵の生成に使った一時鍵生成用データを知っていれば、暗号通信装置３００は、マスター鍵記憶部３１０が記憶したマスター鍵と、あらかじめ知っている一時鍵生成用データとを使って一時鍵を生成し、生成した一時鍵を使って初期化コマンドを復号することができる。
なお、初期化コマンドを暗号化するときに使う一時鍵の生成に用いる一時鍵生成用データは、あらかじめ定められたデータでなくてもよい。例えば、初期化コマンド生成部１６５は、一時鍵生成用データをランダムに生成して一時鍵を生成し、生成した一時鍵を使って暗号化した部分と、暗号化していない一時鍵生成用データとを結合して、初期化コマンドとする構成であってもよい。あるいは、初期化コマンド生成部１６５は、検証用データの初期値を一時鍵生成用データとして使って一時鍵を生成し、生成した一時鍵を使って暗号化した部分と、暗号化していない検証用データの初期値とを結合して、初期化コマンドとする構成であってもよい。なお、初期化コマンドが、暗号化していない一時鍵生成用データと、その一時鍵生成用データを使って生成した一時鍵により暗号化された部分とを含む場合、暗号化された部分は、その一時鍵生成用データを含むデータを暗号化したものであってもよい。
【０２１０】
初期化コマンド通知部１７５は、初期化コマンド生成部１６５が生成した初期化コマンドを暗号通信装置２００に対して通知する。例えば、初期化コマンド通知部１７５は、通信装置９１５を用いて、初期化コマンド生成部１６５が生成した初期化コマンドを暗号通信装置２００に対して送信する。
【０２１１】
図２８は、この実施の形態における暗号通信装置２００の機能ブロックの一例を示すブロック構成図である。
【０２１２】
暗号通信装置２００は、実施の形態１で説明した機能ブロックに加えて、更に、初期化コマンド取得部２６５と、初期化コマンド記憶部２７５と、初期化コマンド通知部２８５とを有する。
【０２１３】
初期化コマンド取得部２６５は、管理装置１００の初期化コマンド通知部１７５から通知された初期化コマンドを取得する。例えば、初期化コマンド取得部２６５は、通信装置９１５を用いて、初期化コマンド通知部１７５が送信した初期化コマンドを受信する。
初期化コマンド記憶部２７５は、記憶装置９１４を用いて、初期化コマンド取得部２６５が取得した初期化コマンドを記憶する。
【０２１４】
初期化コマンド通知部２８５は、初期化コマンド記憶部２７５が記憶した初期化コマンドを暗号通信装置３００に対して通知する。例えば、初期化コマンド通知部２８５は、通信装置９１５を用いて、初期化コマンドを暗号通信装置３００に対して送信する。
初期化コマンド通知部２８５が暗号通信装置３００に対して初期化コマンドを通知するのは、例えば、一時鍵生成用データ通知部２５０が通知した一時鍵生成用データが有効でないと暗号通信装置３００の一時鍵生成用データ検証部３５０が判定し、暗号通信を開始できなかった場合である。その場合、なんらかの異常により、暗号通信装置３００の検証用データ記憶部３３０が記憶している検証用データが狂っていると考えられる。そこで、初期化コマンドを暗号通信装置３００に対して通知することにより、暗号通信装置３００の検証用データ記憶部３３０が記憶している検証用データを初期化する。
【０２１５】
図２９は、この実施の形態における暗号通信装置３００の機能ブロックの一例を示すブロック構成図である。
【０２１６】
暗号通信装置３００は、実施の形態１で説明した機能ブロックに加えて、更に、初期化コマンド取得部３６５と、初期化コマンド検証部３７５とを有する。
【０２１７】
初期化コマンド取得部３６５は、暗号通信装置２００の初期化コマンド記憶部２７５から通知された初期化コマンドを取得する。例えば、初期化コマンド取得部３６５は、通信装置９１５を用いて、初期化コマンド通知部２８５が送信した初期化コマンドを受信する。
【０２１８】
初期化コマンド検証部３７５は、処理装置９１１を用いて、初期化コマンド取得部３６５が取得した初期化コマンドが有効であるか否かを検証する。初期化コマンド検証部３７５は、初期化コマンドが管理装置１００によって生成された正当なものであることと、有効期限が切れていないこととの２つの点から、初期化コマンドの有効性を判断する。
【０２１９】
例えば、初期化コマンド検証部３７５は、マスター鍵記憶部３１０が記憶したマスター鍵と、所定の一時鍵生成用データとを使って、一時鍵を生成する。初期化コマンド検証部３７５は、生成した一時鍵を使って、初期化コマンド取得部３６５が取得した初期化コマンドを復号する。初期化コマンドが正しく復号できた場合、初期化コマンド検証部３７５は、初期化コマンドが正当であると判定する。
あるいは、初期化コマンド検証部３７５は、初期化コマンド取得部３６５が取得した初期化コマンドを暗号化された部分と、一時鍵生成用データとに分離し、マスター鍵記憶部３１０が記憶したマスター鍵と、分離した一時鍵生成用データとを使って一時鍵を生成する。初期化コマンド検証部３７５は、生成した一時鍵を使って、分離した暗号化された部分を復号する。初期化コマンド検証部３７５は、復号した結果から一時鍵生成用データを取得する。分離した一時鍵生成用データと、取得した一時鍵生成用データとが一致した場合に、初期化コマンド検証部３７５は、初期化コマンドが正当であると判定する。
【０２２０】
また、例えば、初期化コマンド検証部３７５は、初期化コマンド取得部３６５が取得した初期化コマンドから、有効期限情報を取得する。初期化コマンド検証部３７５は、取得した有効期限情報によって表わされる有効期限と、現在の時刻とを比較して、有効期限が切れているか否かを判定する。
あるいは、初期化コマンド検証部３７５は、初期化コマンド取得部３６５が取得した初期化コマンドから、初期化コマンドが生成された日付を表わす生成時刻情報を取得する。初期化コマンド検証部３７５は、現在の日付から所定の日数前の日付を算出し、算出した日付と、生成時刻情報が表わす日付とを比較する。生成時刻情報が表わす日付が、算出した日付と等しいか、算出した日付より新しい場合、初期化コマンド検証部３７５は、初期化コマンドが有効期限内であると判定する。
あるいは、初期化コマンド検証部３７５は、初期化コマンド取得部３６５が取得した初期化コマンドから、初期化コマンドが生成された時刻を表わす生成時刻情報を取得する。初期化コマンド検証部３７５は、現在の時刻と、取得した生成時刻情報が表わす時刻とに基づいて、初期化コマンドが生成されてからの経過時間を算出する。算出した経過時間が、所定の有効期間よりも短い場合に、初期化コマンド検証部３７５は、初期化コマンドが有効期限内であると判定する。
【０２２１】
初期化コマンド取得部３６５が取得した初期化コマンドが有効であると初期化コマンド検証部３７５が判定した場合、検証用データ記憶部３３０は、記憶した検証用データを初期化する。
例えば、検証用データ記憶部３３０は、記憶装置９１４を用いて、あらかじめ定められた初期値を検証用データとして記憶する。
あるいは、検証用データ記憶部３３０は、処理装置９１１を用いて、有効であると初期化コマンド検証部３７５が判定した初期化コマンドから、検証用データの初期値を取得し、取得した初期値を検証用データとして記憶する。
【０２２２】
図３０は、この実施の形態における一時鍵通知処理Ｓ６０３の流れの一例を示すフロー図である。
【０２２３】
管理装置１００は、一時鍵通知処理Ｓ６０３において、実施の形態１で説明した工程に加えて、更に、初期化コマンド生成工程Ｓ６１７と、初期化コマンド通知工程Ｓ６２０とを実行する。
暗号通信装置２００は、一時鍵通知処理Ｓ６０３において、実施の形態１で説明した工程に加えて、更に、初期化コマンド取得工程Ｓ６２８を実行する。
【０２２４】
初期化コマンド生成工程Ｓ６１７において、管理装置１００の初期化コマンド生成部１６５は、初期化コマンドを生成する。例えば、初期化コマンド生成部１６５は、一時鍵生成工程Ｓ６１６で一時鍵生成部１６０が一時鍵の生成に使った一時鍵生成用データを、検証用データの初期値として含む初期化コマンドを生成する。
【０２２５】
初期化コマンド通知工程Ｓ６２０において、管理装置１００の初期化コマンド通知部１７５は、初期化コマンド生成工程Ｓ６１７で初期化コマンド生成部１６５が生成した初期化コマンドを暗号通信装置２００に対して通知する。なお、管理装置１００は、初期化コマンドを、一時鍵や一時鍵生成用データと一つにまとめて送信する構成であってもよい。
初期化コマンド取得工程Ｓ６２８において、暗号通信装置２００の初期化コマンド取得部２６５は、初期化コマンド通知工程Ｓ６２０で管理装置１００の初期化コマンド通知部１７５が通知した初期化コマンドを取得する。初期化コマンド記憶部２７５は、記憶装置９１４を用いて、初期化コマンド取得部２６５が取得した初期化コマンドを記憶する。
【０２２６】
なお、管理装置１００は、暗号通信装置２００からの一時鍵要求に対する応答として、一時鍵や一時鍵生成用データとともに初期化コマンドを暗号通信装置２００に対して通知するのではなく、暗号通信装置２００から、一時鍵要求とは別に、初期化コマンドを要求する初期化コマンド要求を受け、それに対する応答として初期化コマンドを通知する構成であってもよい。
【０２２７】
図３１は、この実施の形態における暗号通信処理Ｓ６０４の流れの一例を示すフロー図である。
【０２２８】
暗号通信装置２００は、暗号通信処理Ｓ６０４において、実施の形態１で説明した工程に加えて、更に、拒絶取得工程Ｓ６２６と、初期化コマンド通知工程Ｓ６２９とを実行する。
暗号通信装置３００は、暗号通信処理Ｓ６０４において、実施の形態１で説明した工程に加えて、更に、拒絶通知工程Ｓ６４７と、初期化コマンド取得工程Ｓ６４８と、初期化コマンド検証工程Ｓ６４９とを実行する。
【０２２９】
一時鍵生成用データ取得工程Ｓ６３５で暗号通信装置３００の一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効でないと、一時鍵生成用データ検証工程Ｓ６３６で暗号通信装置３００の一時鍵生成用データ検証部３５０が判定した場合、一時鍵生成用データ検証部３５０は、拒絶通知工程Ｓ６４７へ処理を進める。
【０２３０】
拒絶通知工程Ｓ６４７において、暗号通信装置３００の一時鍵生成用データ検証部３５０は、通知された一時鍵生成用データを使って生成した一時鍵による暗号通信を拒否する旨を暗号通信装置２００に対して通知する。例えば、一時鍵生成用データ検証部３５０は、通信装置９１５を用いて、その旨を表わす拒絶メッセージを暗号通信装置２００に対して送信する。
拒絶取得工程Ｓ６２６において、暗号通信装置２００の一時鍵生成用データ通知部２５０は、拒絶通知工程Ｓ６４７における通知を取得する。例えば、一時鍵生成用データ通知部２５０は、通信装置９１５を用いて、暗号通信装置３００の一時鍵生成用データ検証部３５０が送信した拒絶メッセージを受信する。
【０２３１】
初期化コマンド通知工程Ｓ６２９において、暗号通信装置２００の初期化コマンド通知部２８５は、初期化コマンド記憶部２７５が記憶した初期化コマンドを暗号通信装置３００に対して通知する。
初期化コマンド取得工程Ｓ６４８において、暗号通信装置３００の初期化コマンド取得部３６５は、初期化コマンド通知工程Ｓ６２９で暗号通信装置２００の初期化コマンド通知部２８５が通知した初期化コマンドを取得する。
【０２３２】
初期化コマンド検証工程Ｓ６４９において、暗号通信装置３００の初期化コマンド検証部３７５は、初期化コマンド取得工程Ｓ６４８で初期化コマンド取得部３６５が取得した初期化コマンドが有効であるか否かを判定する。
例えば、初期化コマンド検証部３７５は、初期化コマンドが正当であるか否かを判定する。
初期化コマンドが正当でないと判定した場合、初期化コマンド検証部３７５は、初期化コマンドが有効でないと判定し、暗号通信処理Ｓ６０４を終了する。
初期化コマンドが正当であると判定した場合、初期化コマンド検証部３７５は、初期化コマンドの有効期限が切れているか否かを判定する。
初期化コマンドの有効期限が切れていると判定した場合、初期化コマンド検証部３７５は、初期化コマンドが有効でないと判定し、暗号通信処理Ｓ６０４を終了する。
初期化コマンドの有効期限が切れていないと判定した場合、初期化コマンド検証部３７５は、初期化コマンドから検証用データの初期値を取得する。初期化コマンド検証部３７５は、取得した検証用データの初期値で、検証用データ記憶部３３０が記憶した検証用データを初期化した場合に、一時鍵生成用データ取得工程Ｓ６３５で一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが有効であると一時鍵生成用データ検証部３５０が判定するか否かを判定する。
検証用データを初期化しても一時鍵生成用データが有効にならない場合、初期化コマンド検証部３７５は、初期化コマンドが有効でないと判定し、暗号通信処理Ｓ６０４を終了する。
検証用データを初期化すれば一時鍵生成用データが有効になる場合、初期化コマンド検証部３７５は、初期化コマンドが有効であると判定する。検証用データ記憶部３３０は、記憶装置９１４を用いて、初期化コマンドに含まれる初期値を、検証用データとして記憶する。初期化コマンド検証部３７５は、一時鍵生成工程Ｓ６３７へ処理を進める。
【０２３３】
なお、初期化コマンド検証部３７５は、検証用データを初期化すれば一時鍵生成用データが有効になるか否かに関わらず、初期化コマンドが正当であり、かつ、有効期限が切れていない場合に、初期化コマンドが有効であると判定する構成であってもよい。その場合、検証用データ記憶部３３０が記憶した検証用データを初期化したのち、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データの有効性を、一時鍵生成用データ検証部３５０が再び判定する。あるいは、暗号通信処理Ｓ６０４をいったん終了し、暗号通信装置２００が一時鍵生成用データを暗号通信装置３００に対して再送する構成であってもよい。
【０２３４】
管理装置１００は、初期化コマンドを暗号通信装置２００に対して通知することにより、暗号通信装置３００が記憶している検証用データを初期化する権限を暗号通信装置２００に与える。これにより、暗号通信装置３００が記憶している検証用データを暗号通信装置２００が初期化できるので、なんらかの原因により検証用データが異常値になった場合でも、検証用データを正常値に戻し、暗号通信装置２００と暗号通信装置３００との間で暗号通信をすることができる。
【０２３５】
初期化コマンドには有効期限があるので、有効期限が過ぎた場合、初期化コマンドで、暗号通信装置３００が記憶している検証用データを初期化することができなくなる。これにより、例えば、暗号通信装置２００を紛失して、第三者が拾得した場合など、初期化コマンドが漏洩した場合でも、第三者が初期化コマンドを悪用して、暗号通信装置３００が記憶している検証用データを初期化し、暗号通信装置３００から情報が漏洩するのを防ぐことができる。
【０２３６】
実施の形態７．
実施の形態７について、図３２〜図３３を用いて説明する。
なお、実施の形態１〜実施の形態６と共通する部分については、同一の符号を付し、説明を省略する。
【０２３７】
この実施の形態における暗号通信システム８００の全体構成、管理装置１００や暗号通信装置２００，３００のハードウェア構成は、実施の形態６と同様である。
【０２３８】
図３２は、この実施の形態における暗号通信装置２００の機能ブロックの一例を示すブロック構成図である。
【０２３９】
暗号通信装置２００は、実施の形態６で説明した機能ブロックのうち、初期化コマンド記憶部２７５を有さない。すなわち、暗号通信装置２００は、初期化コマンドを記憶しない。
初期化コマンド通知部２８５が暗号通信装置３００に対して初期化コマンドを通知する必要が生じた場合、初期化コマンド取得部２６５が、管理装置１００と通信して、初期化コマンドを取得する。初期化コマンド通知部２８５は、初期化コマンド取得部２６５が取得した初期化コマンドを暗号通信装置３００に対して通知する。
【０２４０】
管理装置１００及び暗号通信装置３００のブロック構成は、実施の形態６と同様なので、異なる部分のみ説明する。
【０２４１】
暗号通信装置３００において、一時鍵生成用データ検証部３５０は、一時鍵生成用データ取得部３２０が取得した一時鍵生成用データが表わす数値が、検証用データ記憶部３３０が記憶した検証用データが表わす数値以上である場合に、一時鍵生成用データが有効であると判定する。
ただし、初期化コマンド取得部３６５が取得した初期化コマンドが有効であると初期化コマンド検証部３７５が判定し、検証用データ記憶部３３０が記憶した検証用データが初期化された場合、一時鍵生成用データ検証部３５０は、検証用データが初期化されてから所定の期間（例えば１日）が経過するまでの間、一時鍵生成用データが表わす数値と、検証用データが表わす数値とが等しい場合のみ、一時鍵生成用データが有効であると判定する。一時鍵生成用データが表わす数値が、検証用データが表わす数値よりも大きい場合、一時鍵生成用データ検証部３５０は、一時鍵生成用データが有効でないと判定する。
【０２４２】
次に、動作について説明する。
【０２４３】
一時鍵通知処理Ｓ６０３における工程は、実施の形態１と同様である。すなわち、一時鍵通知処理Ｓ６０３において、管理装置１００は、初期化コマンドを生成せず、暗号通信装置２００に対して初期化コマンドを通知しない。
【０２４４】
図３３は、この実施の形態における暗号通信処理Ｓ６０４の流れの一例を示すフロー図である。
【０２４５】
暗号通信装置２００は、暗号通信処理Ｓ６０４において、実施の形態６で説明した工程に加えて、更に、初期化コマンド要求工程Ｓ６２７と、初期化コマンド取得工程Ｓ６２８とを実行する。
なお、管理装置１００が実行する工程は、図示を省略している。管理装置１００は、暗号通信処理Ｓ６０４において、初期化コマンド要求受付工程と、初期化コマンド生成工程Ｓ６１７と、初期化コマンド通知工程Ｓ６２０とを実行する。
【０２４６】
初期化コマンド要求工程Ｓ６２７において、暗号通信装置２００の初期化コマンド取得部２６５は、管理装置１００に対して、初期化コマンドを要求する。例えば、初期化コマンド取得部２６５は、通信装置９１５を用いて、初期化コマンドを要求する初期化コマンド要求メッセージを管理装置１００に対して送信する。初期化コマンド要求メッセージは、例えば、暗号通信装置２００の利用者が入力したパスワードや、暗号通信装置２００の利用者の指紋その他生体情報など、暗号通信装置２００の利用者を認証する認証情報を含む。
初期化コマンド要求受付工程において、管理装置１００の初期化コマンド通知部１７５は、暗号通信装置２００からの要求を受け付ける。例えば、初期化コマンド通知部１７５は、通信装置９１５を用いて、暗号通信装置２００の初期化コマンド取得部２６５が送信した初期化コマンド要求メッセージを受信する。初期化コマンド通知部１７５は、初期化コマンド要求メッセージに含まれる認証情報を検証して、暗号通信装置２００の利用者を認証する。認証に失敗した場合、管理装置１００は、以後の工程を実行しない。
【０２４７】
初期化コマンド生成工程Ｓ６１７において、管理装置１００の初期化コマンド生成部１６５は、一時鍵生成用データ記憶部１３０が記憶した一時鍵生成用データを、認証用データの初期値として含む初期化コマンドを生成する。
【０２４８】
初期化コマンド通知工程Ｓ６２０において、管理装置１００の初期化コマンド通知部１７５は、初期化コマンド生成工程Ｓ６１７で初期化コマンド生成部１６５が生成した初期化コマンドを暗号通信装置２００に対して通知する。
初期化コマンド取得工程Ｓ６２８において、暗号通信装置２００の初期化コマンド取得部２６５は、一時鍵通知工程Ｓ６１８で管理装置１００の初期化コマンド通知部１７５が通知した初期化コマンドを取得する。
【０２４９】
初期化コマンド通知工程Ｓ６２９において、暗号通信装置２００の初期化コマンド通知部２８５は、初期化コマンド取得工程Ｓ６２８で初期化コマンド取得部２６５が取得した初期化コマンドを暗号通信装置３００に対して通知する。
【０２５０】
初期化コマンド検証工程Ｓ６４９において、暗号通信装置３００の初期化コマンド検証部３７５は、初期化コマンド取得工程Ｓ６４８で初期化コマンド取得部３６５が取得した初期化コマンドが正当であり、かつ、有効期限が切れていないと判定した場合、初期化コマンドに含まれる検証用データの初期値を取得する。初期化コマンド検証部３７５は、一時鍵生成用データ取得工程Ｓ６３５で一時鍵生成用データ取得部３２０が取得した一時鍵生成用データと、取得した検証用データの初期値とを比較する。
一時鍵生成用データと、検証用データの初期値とが一致しない場合、初期化コマンド検証部３７５は、初期化コマンドが有効でないと判定し、暗号通信処理Ｓ６０４を終了する。
一時鍵生成用データと、検証用データの初期値とが一致している場合、初期化コマンド検証部３７５は、初期化コマンドが有効であると判定する。
【０２５１】
例えば、暗号通信装置２００が小型で携帯可能である場合、暗号通信装置２００の正当な利用者が暗号通信装置２００を紛失して、第三者がそれを拾得して悪用する可能性がある。しかし、検証用データの更新により、第三者が拾得した暗号通信装置２００に保存されている一時鍵が古いものになれば、その暗号通信装置２００は、暗号通信装置３００との間で暗号通信をすることができない。
また、初期化コマンドは、暗号通信装置２００に保存されていないので、第三者は、暗号通信装置３００が記憶している検証用データを初期化することができない。
仮に、なんらかの手段により、第三者が、初期化コマンドを別途入手したとする。第三者は、初期化コマンドを暗号通信装置３００に通知して、暗号通信装置３００が記憶している検証用データを初期化しようとする。しかし、第三者が拾得した暗号通信装置２００に保存されている一時鍵及びそれの生成に使われた一時鍵生成用データと、第三者がそれとは別に入手した初期化コマンドに含まれる検証用データの初期値とが一致しなければ、その暗号通信装置２００は、暗号通信装置３００との間で暗号通信をすることができない。
このため、暗号通信装置３００から情報が漏洩するのを防ぐことができる。
【０２５２】
実施の形態８．
実施の形態８について、図３４〜図４１を用いて説明する。
なお、実施の形態１〜実施の形態７と共通する部分については、同一の符号を付し、説明を省略する。
【０２５３】
この実施の形態における自動検針システム８０１（暗号通信システム）の全体構成や、管理サーバ１０１、携帯端末２０１及び検針メータ３０１のハードウェア構成は、実施の形態３と同様である。
【０２５４】
図３４は、この実施の形態における管理サーバ１０１の機能ブロックの一例を示す図である。
【０２５５】
管理サーバ１０１（管理装置）は、実施の形態３で説明した構成に加えて、更に、時計１５６と、リセットパケット生成部１６６とを有する。なお、鍵情報管理部１６１は、図示を省略している。
【０２５６】
時計１５６は、現在時刻４１８を計測する。例えば、時計１５６は、通信装置９１５を用いて、時刻サーバと通信し、ＮＴＰ（Ｎｅｔｗｏｒｋ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）などの仕組みで時刻サーバと同期を取ることにより、正確な現在時刻４１８を計測する。時計は、計測した現在時刻４１８を出力する。
【０２５７】
リセットパケット生成部１６６（初期化コマンド生成部）は、携帯端末２０１からリセットパケット発行要求４２８を受け取る。リセットパケット生成部１６６は、世代番号カウンタ１３１から世代番号４１２を取得する。リセットパケット生成部１６６は、時計１５６から現在時刻４１８を取得する。リセットパケット生成部１６６は、検針メータ３０１の世代番号４３２を、世代番号４１２にリセットするためのリセットパケット４１９（初期化コマンド）を生成する。リセットパケット生成部１６６は、リセットパケット４１９を携帯端末２０１に対して送付する。
【０２５８】
図３５は、この実施の形態における携帯端末２０１の機能ブロックの一例を示す図である。
【０２５９】
携帯端末２０１のブロック構成は、実施の形態３で説明したものと同様なので、異なる点のみを説明する。なお、メッセージ生成部２８１は、図示を省略している。
【０２６０】
対管理サーバ通信部２２１は、リセットパケット発行要求４２８を生成する。対管理サーバ通信部２２１は、リセットパケット発行要求４２８を管理サーバ１０１（リセットパケット生成部１６６）に対して送付する。
対管理サーバ通信部２２１は、管理サーバ１０１（リセットパケット生成部１６６）からリセットパケット４１９を受け取る。
【０２６１】
対検針メータ通信部２９１は、対管理サーバ通信部２２１からリセットパケット４１９を受け取る。対検針メータ通信部２９１（初期化コマンド通知部）は、リセットパケット４１９を検針メータ３０１に対して送付する。
【０２６２】
図３６は、この実施の形態における検針メータ３０１の機能ブロックの一例を示す図である。
【０２６３】
検針メータ３０１は、実施の形態３で説明した機能ブロックに加えて、更に、時計３５６を有する。
【０２６４】
時計３５６は、現在時刻４３８を計測する。例えば、時計３５６は、通信装置９１５を用いて、時刻サーバと通信し、ＮＴＰなどの仕組みで時刻サーバと同期を取ることにより、正確な現在時刻４３８を計測する。時計は、計測した現在時刻４３８を出力する。
【０２６５】
対携帯端末通信部３９１（初期化コマンド検証部）は、携帯端末２０１からリセットパケット４１９を受け取る。対携帯端末通信部３９１は、時計３５６から現在時刻４３８を取得する。対携帯端末通信部３９１は、時計３５６と、マスター鍵記憶部３１１が記憶したマスター鍵４３１とを用いて、リセットパケット４１９を検証する。検証に成功した場合、対携帯端末通信部３９１は、リセットパケット４１９から世代番号４１２を取得する。対携帯端末通信部３９１は、世代番号４１２をメッセージ処理部３８１に対して送付する。
対携帯端末通信部３９１は、世代番号４１２から応答４３３を受け取る。対携帯端末通信部３９１は、応答４３３を暗号化してリセット応答４３９（暗号化応答）を生成する。対携帯端末通信部３９１は、リセット応答４３９を携帯端末２０１に対して送付する。
【０２６６】
メッセージ処理部３８１は、対携帯端末通信部３９１から世代番号４１２を受け取る。メッセージ処理部３８１は、世代番号カウンタ３３１の値を世代番号４１２に書き換える。メッセージ処理部３８１は、検証結果を表わす応答４３３を生成する。メッセージ処理部３８１は、応答４３３を対携帯端末通信部３９１（対検針メータ通信部２９１）に対して送付する。
【０２６７】
図３７は、この実施の形態の管理サーバ１０１におけるリセットパケット生成部１６６の詳細な機能ブロックの一例を示す図である。
【０２６８】
リセットパケット生成部１６６は、例えば、認証部１７２と、マスター鍵選択部１７３と、一時鍵生成部１７４と、パケット生成部１７６と、出力判定部１７７とを有する。なお、認証部１７２、マスター鍵選択部１７３、一時鍵生成部１７４及び出力判定部１７７は、鍵情報管理部１６１の認証部１６２、マスター鍵選択部１６３、一時鍵生成部１６４及び出力判定部１７１を、鍵情報管理部１６１と共用する構成であってもよい。
【０２６９】
認証部１７２は、携帯端末２０１（対管理サーバ通信部２２１）からリセットパケット発行要求４２８を受信する。認証部１７２は、リセットパケット発行要求４２８に含まれる認証情報に基づいて、リセットパケット発行要求４２８を処理するか否かを決定する。例えば、認証部１７２は、認証情報に基づいて送信者を認証する。なお、認証をしない場合、認証部１７２は、なくてもよい。
リセットパケット発行要求４２８を処理しないと決定した場合、認証部１７２は、リセットパケット４１９を出力しない旨を表わす出力判定信号４１４を出力判定部１７７に対して出力する。
【０２７０】
マスター鍵選択部１７３は、マスター鍵記憶部１１１が記憶した複数のマスター鍵４１１のなかから、マスター鍵４１１を任意に選択する。例えば、マスター鍵選択部１７３は、マスター鍵４１１をランダムに選択する。
マスター鍵選択部１７３は、選択したマスター鍵４１１に対応する鍵種別情報４２２を生成する。
【０２７１】
一時鍵生成部１７４は、マスター鍵選択部１７３が選択したマスター鍵４１１と、所定の定数とに基づいて、一時鍵４１３を生成する。一時鍵生成部１７４は、世代番号４１２の代わりに定数を使って一時鍵４１３を生成する。例えば、一時鍵生成部１７４は、一時鍵４１３として、所定の暗号化方式によって定数をマスター鍵４１１で暗号したデータを生成する。あるいは、一時鍵生成部１７４は、一時鍵４１３として、定数とマスター鍵４１１とを入力した鍵付きハッシュ関数を使ってハッシュ値を生成する。なお、一時鍵生成部１７４が一時鍵４１３の生成に使う鍵生成方式は、定数とマスター鍵４１１とから一時鍵４１３が一意に生成されること、及び、一時鍵４１３と定数とからマスター鍵４１１が推定されないことが必要である。
【０２７２】
一時鍵生成部１７４が一時鍵４１３の生成に使う定数には、例えば、世代番号４１２として入力可能な数の最大値を設定する。例えば、世代番号４１２が１６ビットの２進数で表現される場合、一時鍵生成部１７４は、１６進表現で「ＦＦＦＦ」を定数として使って一時鍵４１３を生成する。なお、世代番号４１２の最大値が別途定められている場合は、その値を使う構成であってもよい。
【０２７３】
パケット生成部１７６は、世代番号カウンタ１３１から世代番号４１２を取得する。パケット生成部１７６は、リセットパケット４１９の生成時刻として、時計１５６から現在時刻４１８を取得する。パケット生成部１７６は、世代番号４１２と、生成時刻と、鍵種別情報４２２と、マスター鍵選択部１７３が一時鍵４１３の生成に使った定数とに対して、メッセージ検証子を生成する。パケット生成部１７６は、世代番号４１２と、生成時刻と、鍵種別情報４２２と、定数と、メッセージ検証子とを含むリセットパケット４１９を生成する。
【０２７４】
出力判定部１７７は、パケット生成部１７６が生成したリセットパケット４１９を出力するか否かを判定する。
リセットパケット４１９を出力しない旨を表わす出力判定信号４１４を認証部１７２から受信した場合、出力判定部１７７は、リセットパケット４１９を出力しないと判定する。その場合、出力判定部１７７は、リセットパケット４１９の代わりとして、所定のエラーコードを出力する構成であってもよい。
リセットパケット４１９を出力しない旨を表わす出力判定信号４１４を認証部１７２から受信しない場合、出力判定部１７７は、リセットパケット４１９を出力すると判定する。出力判定部１７７は、リセットパケット４１９を携帯端末２０１に対して出力する。
【０２７５】
図３８は、この実施の形態の携帯端末２０１における対管理サーバ通信部２２１及び対検針メータ通信部２９１の詳細な機能ブロックの一例を示す図である。
【０２７６】
対管理サーバ通信部２２１は、実施の形態３で説明した機能ブロックに加えて、更に、リセットパケット発行要求生成部２２４と、リセットパケット取得部２２５とを有する。なお、一時鍵発行要求生成部２２２及び一時鍵情報取得部２２３は、図示を省略している。
【０２７７】
リセットパケット発行要求生成部２２４は、入力装置９１２から認証情報４２５を受け取る。入力装置９１２は、例えば、キーボードのような文字列入力装置である。あるいは、入力装置９１２は、指紋読取装置のようなバイオメトリック情報を取得する装置である。
リセットパケット発行要求生成部２２４は、取得した認証情報４２５に基づいてリセットパケット発行要求４２８を生成する。リセットパケット発行要求生成部２２４が生成するリセットパケット発行要求４２８は、認証情報４２５を含む。
リセットパケット発行要求生成部２２４は、リセットパケット発行要求４２８を管理サーバ１０１（リセットパケット生成部１６６）に対して送付する。
なお、管理サーバ１０１が利用者認証を行わない場合、リセットパケット発行要求生成部２２４は、認証情報４２５を取得しない構成であってもよい。その場合、リセットパケット発行要求４２８は、認証情報４２５を含まない構成であってもよい。
【０２７８】
リセットパケット取得部２２５は、管理サーバ１０１からリセットパケット４１９を受信する。リセットパケット取得部２２５は、リセットパケット４１９を対検針メータ通信部２９１に対して送付する。
【０２７９】
対検針メータ通信部２９１は、実施の形態３で説明した機能ブロックに加えて、更に、リセットパケット出力部２９７を有する。なお、暗号化部２９２、多重化部２９３、分離部２９４、復号部２９５及び受信判定部２９６は、図示を省略している。
【０２８０】
リセットパケット出力部２９７は、対管理サーバ通信部２２１からリセットパケット４１９を受信する。リセットパケット出力部２９７は、受信したリセットパケット４１９をそのまま検針メータ３０１（対携帯端末通信部３９１）に対して送付する。
【０２８１】
図３９は、この実施の形態の検針メータ３０１における対携帯端末通信部３９１の詳細な機能ブロックの一例を示す図である。
【０２８２】
対携帯端末通信部３９１は、実施の形態３で説明した構成に加えて、更に、応答メッセージ生成部３９７と、メッセージ検証部３９８とを有する。なお、暗号化部３９２及び復号部３９５は、図示を省略している。
【０２８３】
分離部３９４は、携帯端末２０１（対検針メータ通信部２９１）からリセットパケット４１９を受信する。分離部３９４は、リセットパケット４１９から鍵種別情報４２２と定数４１７とを分離する。
【０２８４】
マスター鍵選択部３６３は、鍵種別情報４２２に基づいて、マスター鍵記憶部３１１が記憶した複数のマスター鍵４３１のなかから、マスター鍵４３１を選択する。
【０２８５】
一時鍵生成部３６４は、マスター鍵選択部３６３が選択したマスター鍵４３１と、定数４１７とにから、一時鍵４３５を生成する。一時鍵生成部３６４は、管理サーバ１０１における鍵情報管理部１６１の一時鍵生成部１７４と同じ一時鍵生成方式により、一時鍵４３５を生成する。
【０２８６】
メッセージ検証部３９８は、一時鍵４３５を用いて、リセットパケット４１９のメッセージ検証をして、検証結果４３７を生成する。メッセージ検証部３９８は、リセットパケット４１９から、世代番号４１２と生成時刻４１６とを分離する。メッセージ検証部３９８は、管理サーバ１０１におけるパケット生成部１７６が使用したメッセージ認証子生成方式に対応する検証方式を使って、リセットパケット４１９を検証する。
【０２８７】
受信判定部３９６は、時計３５６から現在時刻４３８を取得する。受信判定部３９６は、現在時刻４３８と生成時刻４１６と検証結果４３７とに基づいて、出力判定をする。判定基準は、以下のとおりである。
・メッセージ検証部３９８がメッセージ検証に失敗した場合、世代番号４１２を出力しない。
・生成時刻４１６が現在時刻４３８に対して一定以上（例えば１日以上）古い場合、世代番号４１２を出力しない。
・メッセージ検証部３９８がメッセージ検証に成功し、かつ、生成時刻４１６が現在時刻４３８より新しく又は生成時刻４１６と現在時刻４３８との差が一定以下（例えば１日以下）である場合、世代番号４１２を出力する。
世代番号４１２を出力すると判定した場合、受信判定部３９６は、世代番号４１２をメッセージ処理部３８１に対して出力する。
【０２８８】
メッセージ処理部３８１は、受信判定部３９６から世代番号４１２を受け取る。メッセージ処理部３８１は、世代番号カウンタ３３１の値を、世代番号４１２に書き換える。
メッセージ処理部３８１は、応答４３３を生成する。なお、メッセージ処理部３８１が応答４３３を生成するのではなく、受信判定部３９６が応答４３３を生成する構成であってもよい。
【０２８９】
なお、リセットパケット４１９を受理してメッセージ処理部３８１が世代番号カウンタ３３１の値を書き換えた場合、受信判定部３９６は、世代番号カウンタ３３１の値を書き換えてから一定期間（例えば１日）の間は、世代番号４１２と世代番号４３２とが一致したときのみ、暗号化メッセージ４２４を受理してメッセージ４２３を出力する構成であってもよい。
【０２９０】
応答メッセージ生成部３９７は、メッセージ処理部３８１から応答４３３を受信する。応答メッセージ生成部３９７は、一時鍵４３５を用いて、応答４３３からメッセージ認証子４４０を生成する。応答メッセージ生成部３９７は、例えば、管理サーバ１０１におけるリセットパケット生成部１６６のパケット生成部１７６と同じメッセージ認証子生成方式を使って、メッセージ認証子４４０を生成する。
【０２９１】
多重化部３９３は、鍵種別情報４２２と、世代番号４３２と、応答４３３と、メッセージ認証子４４０とを多重化して、リセット応答４３９を生成する。多重化部３９３は、リセット応答４３９を携帯端末２０１（対検針メータ通信部２９１）に対して送付する。
【０２９２】
次に、動作について説明する。
【０２９３】
図４０は、この実施の形態におけるリセットパケット通知処理Ｓ６０５の流れの一例を示すフロー図である。
【０２９４】
リセットパケット通知処理Ｓ６０５は、例えば、リセットパケット発行要求生成工程Ｓ６８１と、認証工程Ｓ６８２と、マスター鍵選択工程Ｓ６８３と、一時鍵生成工程Ｓ６８４と、パケット生成工程Ｓ６８５と、出力工程Ｓ６８６と、リセットパケット取得工程Ｓ６８７とを有する。
【０２９５】
リセットパケット発行要求生成工程Ｓ６８１において、携帯端末２０１のリセットパケット発行要求生成部２２４は、リセットパケット発行要求４２８を生成する。リセットパケット発行要求生成部２２４は、リセットパケット発行要求４２８を管理サーバ１０１（リセットパケット生成部１６６）に対して送信する。
認証工程Ｓ６８２において、管理サーバ１０１の認証部１７２は、リセットパケット発行要求４２８を受信する。認証部１７２は、リセットパケット発行要求４２８を検証する。検証に失敗した場合、認証部１７２は、リセットパケット通知処理Ｓ６０５を終了する。検証に成功した場合、認証部１７２は、マスター鍵選択工程Ｓ６８３へ処理を進める。
マスター鍵選択工程Ｓ６８３において、管理サーバ１０１のマスター鍵選択部１７３は、マスター鍵４１１を任意に選択する。マスター鍵選択部１７３は、選択したマスター鍵４１１に対応する鍵種別情報４２２を生成する。
一時鍵生成工程Ｓ６８４において、管理サーバ１０１の一時鍵生成部１７４は、マスター鍵４１１と定数４１７とに基づいて、一時鍵４１３を生成する。
パケット生成工程Ｓ６８５において、管理サーバ１０１のパケット生成部１７６は、一時鍵４１３を使って、鍵種別情報４２２と、定数４１７と、世代番号４１２と、現在時刻４１８とから、リセットパケット４１９を生成する。
出力工程Ｓ６８６において、管理サーバ１０１の出力判定部１７７は、リセットパケット４１９を携帯端末２０１（対管理サーバ通信部２２１）に対して送信する。
リセットパケット取得工程Ｓ６８７において、携帯端末２０１のリセットパケット取得部２２５は、リセットパケット４１９を受信する。リセットパケット取得部２２５は、リセットパケット４１９を対検針メータ通信部２９１に対して出力する。
【０２９６】
図４１は、この実施の形態における世代番号リセット処理Ｓ６０６の流れの一例を示すフロー図である。
【０２９７】
世代番号リセット処理Ｓ６０６は、例えば、リセットパケット出力工程Ｓ６９１と、分離工程Ｓ６９２と、マスター鍵選択工程Ｓ６９３と、一時鍵生成工程Ｓ６９４と、メッセージ検証工程Ｓ６９５と、受信判定工程Ｓ６９６と、世代番号リセット工程Ｓ６９７と、マスター鍵選択工程Ｓ７０１と、一時鍵生成工程Ｓ７０２と、応答メッセージ生成工程Ｓ７０３と、多重化工程Ｓ７０４と、リセット応答取得工程Ｓ７０５とを有する。
【０２９８】
リセットパケット出力工程Ｓ６９１において、携帯端末２０１のリセットパケット出力部２９７は、リセットパケット４１９を検針メータ３０１（対携帯端末通信部３９１）に対して送信する。
分離工程Ｓ６９２において、検針メータ３０１の分離部３９４は、リセットパケット４１９を受信する。分離部３９４は、リセットパケット４１９から、鍵種別情報４２２と定数４１７とを分離する。
マスター鍵選択工程Ｓ６９３において、検針メータ３０１のマスター鍵選択部３６３は、鍵種別情報４２２に基づいて、マスター鍵４３１を選択する。マスター鍵選択部３６３は、鍵種別情報４２２を記憶する。
一時鍵生成工程Ｓ６９４において、検針メータ３０１の一時鍵生成部３６４は、マスター鍵４３１と定数４１７とに基づいて、一時鍵４３５を生成する。
メッセージ検証工程Ｓ６９５において、検針メータ３０１の応答メッセージ生成部３９７は、一時鍵４３５を使って、リセットパケット４１９を検証し、世代番号４１２と生成時刻４１６と検証結果４３７とを生成する。
受信判定工程Ｓ６９６において、検針メータ３０１の受信判定部３９６は、生成時刻４１６と現在時刻４３８とと検証結果４３７とに基づいて、世代番号４１２を出力するか否かを判定する。世代番号４１２を出力しないと判定した場合、受信判定部３９６は、世代番号リセット処理Ｓ６０６を終了する。世代番号４１２を出力すると判定した場合、受信判定部３９６は、世代番号４１２を出力する。
世代番号リセット工程Ｓ６９７において、検針メータ３０１のメッセージ処理部３８１は、世代番号カウンタ３３１が記憶した世代番号４３２を、世代番号４１２で書き換える。世代番号カウンタ３３１は、世代番号４１２を記憶する。メッセージ処理部３８１は、応答４３３を生成する。
マスター鍵選択工程Ｓ７０１において、検針メータ３０１のマスター鍵選択部３６３は、記憶していた鍵種別情報４２２に基づいて、マスター鍵４３１を選択する。マスター鍵選択部３６３は、選択したマスター鍵４３１と鍵種別情報４２２とを出力する。
一時鍵生成工程Ｓ７０２において、検針メータ３０１の一時鍵生成部３６４は、マスター鍵４３１と世代番号４３２とに基づいて、一時鍵４３５を生成する。一時鍵生成工程Ｓ７０２で一時鍵生成部３６４が生成する一時鍵４３５は、一時鍵生成工程Ｓ６９４で一時鍵生成部３６４が生成した一時鍵４３５と同一である。
応答メッセージ生成工程Ｓ７０３において、検針メータ３０１の応答メッセージ生成部３９７は、一時鍵生成工程Ｓ６７２で一時鍵生成部３６４が生成した一時鍵４３５を使って、メッセージ認証子４４０を生成する。なお、応答メッセージ生成部３９７は、一時鍵生成工程Ｓ６５５で一時鍵生成部３６４が生成した一時鍵４３５を使ってメッセージ認証子４４０を生成する構成であってもよい。その場合、マスター鍵選択工程Ｓ６７１及び一時鍵生成工程Ｓ６７２は、なくてもよい。
多重化工程Ｓ７０４において、検針メータ３０１の多重化部３９３は、応答４３３とメッセージ認証子４４０と世代番号４３２と鍵種別情報４２２とを多重化して、リセット応答４３９を生成する。多重化部３９３は、リセット応答４３９を携帯端末２０１（対検針メータ通信部２９１）に対して送信する。
リセット応答取得工程Ｓ７０５において、携帯端末２０１の対検針メータ通信部２９１は、リセット応答４３９を受信する。
【０２９９】
なお、管理サーバ１０１と検針メータ３０１とが直接通信して、管理サーバ１０１がリセットパケット４１９を検針メータ３０１に対して直接送信する構成であってもよい。
【０３００】
この実施の形態における通信装置（検針メータ３０１）は、管理サーバ（１０１）にて生成したカウンタ値をリセットする信号を受け、前記前期カウンタの値を前記リセット信号に含まれるカウンタ値に更新する。
【０３０１】
管理サーバ（１０１）は、カウンタ値をリセットする信号を生成する。
管理サーバは、予め共有しているマスター鍵と、所定の定数から一時鍵を生成し、少なくとも修正後のカウンタ値、信号の生成日時に対してメッセージ検証子を生成し、前記定数、前記修正後のカウンタ値、前記信号の生成日時、前記メッセージ検証子をリセット信号として送信する。
【０３０２】
通信装置（検針メータ３０１）は、管理サーバ（１０１）から発信されたリセット信号を受信する。
通信装置は、少なくとも修正後のカウンタ値、信号の生成日時に対するメッセージ認証を行なった後、自身の持つ時計の現在時刻と、リセット信号に含まれる生成日時を比較し、前記生成日時が前記現在時刻より新しいか、その差が一定以下の場合に自身の持つカウンタの値を前記修正後のカウンタ値に更新する。
【０３０３】
この実施の形態における自動検針システム８０１（暗号通信システム）は、検針メータ（３０１）の世代番号が管理サーバ（１０１）より進んでいたとしても、管理サーバの世代番号にあわせることができる。また、リセットパケットには日付を入れているため、メータに時計を持たせることで、古いリセットパケットや不正に取得したリセットパケットを無効化することができる。さらに、リセットパケット受信後、一定期間（たとえば１日）は、メッセージの受理条件にリセットパケットで更新した世代番号と同じ番号しか受け付けないようにすることで、世代番号の更新過程においても、上書きされること無く、確実に同期を取ることができる。
【０３０４】
まとめ．
以上、各実施の形態で説明した構成は、一例であり、他の構成であってもよい。例えば、異なる実施の形態で説明した構成を組み合わせた構成であってもよいし、本質的でない部分の構成を、他の構成で置き換えた構成であってもよい。
【０３０５】
以上説明した暗号通信システム（暗号通信システム８００、自動検針システム８０１）は、管理装置（１００、暗号通信装置５００、管理サーバ１０１）と、第一暗号通信装置（暗号通信装置２００，５００、携帯端末２０１）と、第二暗号通信装置（暗号通信装置３００，５００、検針メータ３０１）とを備える。
上記管理装置は、マスター鍵記憶部（１１０、１１１）と、一時鍵生成部（１６０、１６４）とを有する。
上記管理装置の上記マスター鍵記憶部は、第一マスター鍵（マスター鍵４１１）を記憶する。
上記管理装置の上記一時鍵生成部は、上記管理装置の上記マスター鍵記憶部が記憶した上記第一マスター鍵と、一時鍵生成用データ（世代番号４１２）とを使って、第一一時鍵（一時鍵４１３）を生成する。
上記第一暗号通信装置は、一時鍵生成用データ通知部（２５０、対検針メータ通信部２９１）と、暗号通信部（２９０、対検針メータ通信部２９１）とを有する。
上記第一暗号通信装置の上記一時鍵生成用データ通知部は、上記管理装置の上記一時鍵生成部が上記第一一時鍵の生成に使った上記一時鍵生成用データを、上記第二暗号通信装置に対して通知する。
上記第一暗号通信装置の上記暗号通信部は、上記管理装置の上記一時鍵生成部が生成した上記第一一時鍵を使って、上記第二暗号通信装置との間で暗号通信をする。
上記第二暗号通信装置は、マスター鍵記憶部（３１０、３１１）と、一時鍵生成用データ検証部（３５０、受信判定部３９６）と、一時鍵生成部（３６０、３６４）と、暗号通信部（３９０、対携帯端末通信部３９１）とを有する。
上記第二暗号通信装置の上記マスター鍵記憶部は、上記管理装置の上記マスター鍵記憶部が記憶した上記第一マスター鍵と同一の、又は、上記第一マスター鍵に対応する、第二マスター鍵（マスター鍵４３１）を記憶する。
上記第二暗号通信装置の上記一時鍵生成用データ検証部は、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であるか否かを判定する。
上記第二暗号通信装置の上記一時鍵生成部は、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であると上記第二暗号通信装置の上記一時鍵生成用データ検証部が判定した場合に、上記第二暗号通信装置の上記マスター鍵記憶部が記憶した上記第二マスター鍵と、上記第二暗号通信装置の上記一時鍵生成用データ検証部が有効であると判定した上記一時鍵生成用データとを使って、上記管理装置の上記一時鍵生成部が生成した上記第一一時鍵と同一の、又は、上記第一一時鍵に対応する第二一時鍵（一時鍵４３５）を生成する。
上記第二暗号通信装置の上記暗号通信部は、上記第二暗号通信装置の上記一時鍵生成部が生成した上記第二一時鍵を使って、上記第一暗号通信装置との間で暗号通信をする。
【０３０６】
第二暗号通信装置が第一暗号通信装置から通知された一時鍵生成用データを使って一時鍵を生成するので、第一暗号通信装置と第二暗号通信装置とが、同一の、又は対応する一時鍵を使って、暗号通信をすることができる。
【０３０７】
上記管理装置（１００、暗号通信装置５００、管理サーバ１０１）は、更に、一時鍵生成用データ記憶部（１３０、世代番号カウンタ１３１）と、一時鍵生成用データ更新部（１４０、世代番号カウンタ１３１）とを有する。
上記管理装置の上記一時鍵生成用データ記憶部は、上記管理装置の上記一時鍵生成部（１６０、１６４）が上記第一一時鍵（一時鍵４１３）の生成に使う一時鍵生成用データ（世代番号４１２）を記憶する。
上記管理装置の上記一時鍵生成用データ更新部は、所定の周期が経過するごとに、上記管理装置の上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを、繰り返し更新する。
上記第二暗号通信装置（暗号通信装置３００，５００、検針メータ３０１）は、更に、検証用データ記憶部（３３０、一時鍵生成用データ記憶部１３０、世代番号カウンタ３３１）と、検証用データ更新部（３４０、一時鍵生成用データ更新部１４０、世代番号カウンタ３３１）とを有する。
上記第二暗号通信装置の上記検証用データ記憶部は、検証用データ（一時鍵生成用データ、世代番号４３２）を記憶する。
上記第二暗号通信装置の上記検証用データ更新部は、所定の周期が経過するごとに、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データを、繰り返し更新する。
上記第二暗号通信装置の上記一時鍵生成用データ検証部は、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データを使って、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であるか否かを判定する。
【０３０８】
管理装置が一時鍵生成用データを繰り返し更新し、それに合わせて、第二暗号通信装置が検証用データを繰り返し更新するので、古い一時鍵生成用データから生成された一時鍵を無効にすることができる。これにより、第一暗号通信装置から第一一時鍵が漏洩しても、第三者が、第二暗号通信装置との間で暗号通信をするのを防ぐことができる。また、第一暗号通信装置は第一マスター鍵を知らないので、第一暗号通信装置から第一マスター鍵が漏洩することはない。このため、第一暗号通信装置から情報が漏洩しても、第三者が、第二暗号通信装置と暗号通信できる第一一時鍵を生成することはできない。
【０３０９】
上記管理装置（１００、暗号通信装置５００、管理サーバ１０１）の上記一時鍵生成用データ記憶部（１３０、世代番号カウンタ１３１）が記憶した上記一時鍵生成用データ（世代番号４１２）、及び、上記第二暗号通信装置（暗号通信装置３００，５００、検針メータ３０１）の上記検証用データ記憶部（３３０、一時鍵生成用データ記憶部１３０、世代番号カウンタ３３１）が記憶した上記検証用データ（一時鍵生成用データ、世代番号４３２）は、数値を表わすデータである。
上記管理装置の上記一時鍵生成用データ更新部（１４０、世代番号カウンタ１３１）は、上記管理装置の上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データが表わす上記数値に、所定の増分値を加算した和を算出し、上記管理装置の上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを、算出した上記和を表わすデータで更新する。
上記第二暗号通信装置の上記検証用データ更新部（３４０、一時鍵生成用データ更新部１４０、世代番号カウンタ３３１）は、上記管理装置の上記一時鍵生成用データ更新部が上記一時鍵生成用データを更新する上記所定の周期の略ｎ倍（ｎは、正の実数。）の周期が経過するごとに、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データが表わす上記数値に、上記管理装置の上記一時鍵生成用データ更新部が上記一時鍵生成用データの更新に使う上記所定の増分値のｎ倍の増分値を加算した和を算出し、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データを、算出した上記和を表わすデータで更新する。
上記第二暗号通信装置の上記一時鍵生成用データ検証部（３５０、受信判定部３９６）は、上記第一暗号通信装置（暗号通信装置２００，５００、携帯端末２０１）の上記一時鍵生成用データ通知部（２５０、対検針メータ通信部２９１）から通知された上記一時鍵生成用データが表わす上記数値が、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データが表わす上記数値以上である場合に、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であると判定する。
【０３１０】
これにより、一時鍵生成用データが有効であるか否かを容易に判定することができる。
【０３１１】
上記第二暗号通信装置（暗号通信装置３００，５００、検針メータ３０１）の上記検証用データ記憶部（３３０、一時鍵生成用データ記憶部１３０、世代番号カウンタ３３１）は、上記第一暗号通信装置（暗号通信装置２００，５００、携帯端末２０１）の上記一時鍵生成用データ通知部（２５０、対検針メータ通信部２９１）から通知された上記一時鍵生成用データ（世代番号４１２）が有効であると上記第二暗号通信装置の上記一時鍵生成用データ検証部（３５０、受信判定部３９６）が判定した場合に、上記第二暗号通信装置の上記一時鍵生成用データ検証部が有効であると判定した上記一時鍵生成用データを、上記検証用データ（一時鍵生成用データ、世代番号４３２）として記憶する。
【０３１２】
これにより、管理装置の一時鍵生成用データと、第二暗号通信装置の検証用データとを、容易に同期させることができる。
【０３１３】
上記管理装置（１００、管理サーバ１０１）は、更に、初期化コマンド生成部（１６５、リセットパケット生成部１６６）を有する。
上記管理装置の上記初期化コマンド生成部は、上記第二暗号通信装置（暗号通信装置３００、検針メータ３０１）の上記検証用データ記憶部（３３０、世代番号カウンタ３３１）が記憶した検証用データ（世代番号４３２）を初期化する初期化コマンド（リセットパケット４１９）を生成する。
上記第一暗号通信装置（暗号通信装置２００、携帯端末２０１）は、更に、初期化コマンド通知部（２８５、リセットパケット出力部２９７）を有する。
上記第一暗号通信装置の上記初期化コマンド通知部は、上記管理装置の上記初期化コマンド生成部が生成した上記初期化コマンドを上記第二暗号通信装置に対して通知する。
上記第二暗号通信装置は、更に、初期化コマンド検証部（３７５、受信判定部３９６）を有する。
上記第二暗号通信装置の上記初期化コマンド検証部は、上記第一暗号通信装置の上記初期化コマンド通知部から通知された上記初期化コマンドが有効であるか否かを判定する。
上記第二暗号通信装置の上記検証用データ記憶部は、上記第一暗号通信装置の上記初期化コマンド通知部から通知された上記初期化コマンドが有効であると上記第二暗号通信装置の上記初期化コマンド検証部が判定した場合に、記憶した上記検証用データを初期化する。
【０３１４】
これにより、なんらかの原因により、検証用データが異常値になった場合でも、検証用データを初期化して、正常値に戻すことができる。
【０３１５】
上記第二暗号通信装置（暗号通信装置３００、検針メータ３０１）の上記初期化コマンド検証部（３７５、受信判定部３９６）は、上記第一暗号通信装置（暗号通信装置２００、携帯端末２０１）の上記初期化コマンド通知部（２８５、リセットパケット出力部２９７）から通知された上記初期化コマンド（リセットパケット４１９）が生成されてから所定の期間が経過していない場合に、上記第一暗号通信装置の上記初期化コマンド通知部から通知された上記初期化コマンドが有効であると判定する。
【０３１６】
これにより、古い初期化コマンドを無効にすることができるので、初期化コマンドが漏洩した場合でも、第三者が初期化コマンドを悪用して第二暗号通信装置との間で暗号通信をするのを防ぐことができる。
【０３１７】
上記管理装置（１００、管理サーバ１０１）の上記初期化コマンド生成部（１６５、リセットパケット生成部１６６）が生成した上記初期化コマンド（リセットパケット４１９）は、上記初期化コマンドが生成された日付を表わす情報を含む。
上記第二暗号通信装置（暗号通信装置３００、検針メータ３０１）の上記初期化コマンド検証部（３７５、受信判定部３９６）は、上記第一暗号通信装置（暗号通信装置２００、携帯端末２０１）の上記初期化コマンド通知部（２８５、リセットパケット出力部２９７）から通知された上記初期化コマンドに含まれる上記情報が表わす上記日付が、現在の日付から所定の日数前より以後である場合に、上記第一暗号通信装置の上記初期化コマンド通知部から通知された上記初期化コマンドが有効であると判定する。
【０３１８】
これにより、生成されてから所定の日数以上が経過した初期化コマンドを無効にすることができる。
【０３１９】
上記管理装置（１００、管理サーバ１０１）の上記初期化コマンド生成部（１６５、リセットパケット生成部１６６）が生成した上記初期化コマンド（リセットパケット４１９）は、上記管理装置の上記一時鍵生成用データ記憶部（１３０、世代番号カウンタ１３１）が記憶した上記一時鍵生成用データ（世代番号４１２）を表わす情報を含む。
上記第二暗号通信装置（暗号通信装置３００、検針メータ３０１）の上記検証用データ記憶部（３３０、世代番号カウンタ３３１）は、有効であると上記第二暗号通信装置の上記初期化コマンド検証部（３７５、受信判定部３９６）が判定した上記初期化コマンドに含まれる上記情報が表わす上記一時鍵生成用データを、上記検証用データ（世代番号４３２）として記憶することにより、上記検証用データを初期化する。
【０３２０】
これにより、管理装置の一時鍵生成用データと、第二暗号通信装置の検証用データとを、同期させることができる。
【０３２１】
上記第二暗号通信装置（暗号通信装置３００、検針メータ３０１）の上記一時鍵生成用データ検証部（３５０、受信判定部３９６）は、上記第二暗号通信装置の上記検証用データ記憶部（３３０、世代番号カウンタ３３１）が上記検証用データ（世代番号４３２）を初期化してから所定の期間が経過するまでの間は、上記第一暗号通信装置（暗号通信装置２００、携帯端末２０１）の上記一時鍵生成用データ通知部（２５０、対検針メータ通信部２９１）から通知された上記一時鍵生成用データ（世代番号４１２）が表わす上記数値が、上記第二暗号通信装置の上記検証用データ記憶部（３３０、世代番号カウンタ３３１）が記憶した上記検証用データ（世代番号４３２）が表わす上記数値と等しい場合に、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であると判定し、上記第二暗号通信装置の上記検証用データ記憶部が上記検証用データを初期化する前、及び、上記第二暗号通信装置の上記検証用データ記憶部が上記検証用データを初期化してから所定の期間が経過した後は、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが表わす上記数値が、上記第二暗号通信装置の上記検証用データ記憶部が記憶した上記検証用データが表わす上記数値以上である場合に、上記第一暗号通信装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データが有効であると判定する。
【０３２２】
これにより、検証用データが初期化されてから所定の期間が経過するまでの間は、初期化された検証用データと等しい一時鍵生成用データしか受け付けないので、初期化コマンドや一時鍵が漏洩した場合でも、第三者が第二暗号通信装置と暗号通信をするのを防ぐことができる。
【０３２３】
上記管理装置（１００、管理サーバ１０１）の上記初期化コマンド生成部（１６５、リセットパケット生成部１６６）が生成した上記初期化コマンド（リセットパケット４１９）は、上記管理装置の上記マスター鍵記憶部（１１０、１１１）が記憶した第一マスター鍵（マスター鍵４１１）を使って暗号化した情報を含む。
上記第二暗号通信装置（暗号通信装置３００、検針メータ３０１）の上記初期化コマンド検証部（３７５、メッセージ検証部３９８）は、上記第一暗号通信装置（暗号通信装置２００、携帯端末２０１）の上記初期化コマンド通知部（２８５、リセットパケット出力部２９７）から通知された上記初期化コマンドに含まれる情報を、上記第二暗号通信装置の上記マスター鍵記憶部（３１０、３１１）が記憶した第二マスター鍵（マスター鍵４３１）を使って復号する。
【０３２４】
これにより、第一マスター鍵を知っているものが初期化コマンドを生成したことを検証することができる。
【０３２５】
上記第一暗号通信装置（暗号通信装置２００、携帯端末２０１）は、上記管理装置から物理的に離れて構成された装置である。
上記管理装置（１００、管理サーバ１０１）は、更に、一時鍵通知部（１７０、出力判定部１７１）と、一時鍵生成用データ通知部（１５０、出力判定部１７１）とを有する。
上記管理装置の上記一時鍵通知部は、上記管理装置の上記一時鍵生成部（１６０、一時鍵生成部１６４）が生成した上記第一一時鍵（一時鍵４１３）を、上記第一暗号通信装置に対して通知する。
上記管理装置の上記一時鍵生成用データ通知部は、上記管理装置の上記一時鍵生成部が上記第一一時鍵の生成に使った上記一時鍵生成用データ（世代番号４１２）を、上記第一暗号通信装置に対して通知する。
上記第一暗号通信装置は、更に、一時鍵記憶部（２７０）と、一時鍵生成用データ記憶部（２３０）とを有する。
上記第一暗号通信装置の上記一時鍵記憶部は、上記管理装置の上記一時鍵通知部から通知された上記第一一時鍵を記憶する。
上記第一暗号通信装置の上記一時鍵生成用データ記憶部は、上記管理装置の上記一時鍵生成用データ通知部から通知された上記一時鍵生成用データを記憶する。
上記第一暗号通信装置の上記一時鍵生成用データ通知部（２５０、対検針メータ通信部２９１）は、上記第一暗号通信装置の上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを、上記第二暗号通信装置（３００、検針メータ３０１）に対して通知する。
【０３２６】
第一暗号通信装置があらかじめ一時鍵と一時鍵生成用データとを取得して記憶しておくことにより、管理装置と通信する回数を減らすことができる。また、第一暗号通信装置は、第一マスター鍵を知らないので、第一暗号通信装置から情報が漏洩した場合でも、第三者が、第二暗号通信装置と暗号通信できる一時鍵を生成するのを防ぐことができる。
【０３２７】
上記第一暗号通信装置（暗号通信装置２００、携帯端末２０１）は、携帯可能である。
【０３２８】
第一暗号通信装置が携帯可能なので、第一暗号通信装置の利用者が第一暗号通信装置を紛失し、第三者が拾得することにより、第一暗号通信装置が記憶した情報が漏洩する可能性がある。しかし、第一暗号通信装置は、第一マスター鍵を知らないので、第三者が、第二暗号通信装置と暗号通信できる一時鍵を生成するのを防ぐことができる。
【０３２９】
以上説明した暗号処理装置（管理装置１００、暗号通信装置２００，３００，５００、管理サーバ１０１、携帯端末２０１、検針メータ３０１）は、マスター鍵記憶部（１１０、３１０、１１１、３１１）と、一時鍵生成部（１６０、３６０、１６４、３６４）とを有する。
上記マスター鍵記憶部は、マスター鍵（４１１、４３１）を記憶する。
上記一時鍵生成部は、上記マスター鍵記憶部が記憶した上記マスター鍵と、一時鍵生成用データ（世代番号４１２，４３２）とを使って、一時鍵（４１３，４３５）を生成する。
【０３３０】
マスター鍵と一時鍵生成用データとから一時鍵を生成するので、暗号通信に使う一時鍵を容易に変えることができる。
【０３３１】
上記暗号処理装置（暗号通信装置３００，５００、検針メータ３０１）は、更に、一時鍵生成用データ検証部（３５０、受信判定部３９６）と、暗号通信部（３９０、対携帯端末通信部３９１）とを有する。
上記一時鍵生成用データ検証部は、他の暗号処理装置（暗号通信装置２００，５００、携帯端末２０１、検針メータ３０１）から通知された一時鍵生成用データ（世代番号４１２，４３２）が有効であるか否かを判定する。
上記一時鍵生成部は、上記他の暗号処理装置から通知された上記一時鍵生成用データが有効であると上記一時鍵生成用データ検証部が判定した場合に、上記マスター鍵記憶部（１１０、３１０、１１１、３１１）が記憶した上記マスター鍵（４１１、４３１）と、有効であると上記一時鍵生成用データ検証部が判定した上記一時鍵生成用データとを使って、一時鍵（４３５）を生成する。
上記暗号通信部（３９０、対携帯端末通信部３９１）は、上記一時鍵生成部が生成した上記一時鍵を使って、上記他の暗号処理装置との間で暗号通信をする。
【０３３２】
他の暗号処理装置から通知された一時鍵生成用データの有効性を判定し、有効であると判定した一時鍵生成用データを使って生成した一時鍵を使って暗号通信をするので、容易に、暗号通信に使う一時鍵を合意することができる。
【０３３３】
上記暗号処理装置（暗号通信装置３００，５００、検針メータ３０１）は、更に、一時鍵生成用データ記憶部（１３０、検証用データ記憶部３３０、世代番号カウンタ３３１）と、一時鍵生成用データ更新部（１４０、検証用データ更新部３４０、世代番号カウンタ３３１）とを有する。
上記一時鍵生成用データ記憶部は、上記一時鍵生成部（１６０、３６０、３６４）が上記一時鍵（４１３、４３５）の生成に使う一時鍵生成用データ（世代番号４３２）を記憶する。
上記一時鍵生成用データ更新部は、所定の周期が経過するごとに、上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを、繰り返し更新する。
上記一時鍵生成用データ検証部（３５０、受信判定部３９６）は、上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを使って、上記他の暗号処理装置（暗号通信装置２００，５００、携帯端末２０１、検針メータ３０１）から通知された上記一時鍵生成用データ（世代番号４１２，４３２）が有効であるか否かを判定する。
【０３３４】
古い一時鍵生成用データを無効にすることができるので、一時鍵が漏洩した場合でも、第三者が暗号処理装置と暗号通信をするのを防ぐことができる。
【０３３５】
上記一時鍵生成用データ記憶部（１３０、検証用データ記憶部３３０、世代番号カウンタ３３１）が記憶した上記一時鍵生成用データ（世代番号４３２）は、数値を表わすデータである。
上記一時鍵生成用データ更新部（１４０、検証用データ更新部３４０、世代番号カウンタ３３１）は、上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データが表わす上記数値に、所定の増分値を加算した和を算出し、上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データを、算出した上記和を表わすデータで更新する。
上記一時鍵生成用データ検証部（３５０、受信判定部３９６）は、上記他の暗号処理装置（暗号通信装置２００，５００、携帯端末２０１、検針メータ３０１）から通知された上記一時鍵生成用データ（世代番号４１２）が表わす上記数値が、上記一時鍵生成用データ記憶部が記憶した上記一時鍵生成用データが表わす上記数値以上である場合に、上記他の暗号処理装置から通知された上記一時鍵生成用データが有効であると判定する。
【０３３６】
これにより、一時鍵生成用データの有効性を、容易に判定することができる。
【０３３７】
上記一時鍵生成用データ記憶部（１３０、検証用データ記憶部３３０、世代番号カウンタ３３１）は、上記他の暗号処理装置（暗号通信装置２００，５００、携帯端末２０１、検針メータ３０１）から通知された上記一時鍵生成用データ（世代番号４１２，４３２）が有効であると上記一時鍵生成用データ検証部（３５０、受信判定部３９６）が判定した場合に、有効であると上記一時鍵生成用データ検証部が判定した上記一時鍵生成用データを記憶する。
【０３３８】
これにより、暗号処理装置間で、一時鍵生成用データを容易に同期することができる。
【０３３９】
上記暗号処理装置（暗号通信装置３００、検針メータ３０１）は、更に、初期化コマンド検証部（初期化コマンド検証部３７５、受信判定部３９６）を有する。
上記初期化コマンド検証部は、上記他の暗号処理装置（暗号通信装置２００、携帯端末２０１、管理サーバ１０１）から通知された初期化コマンド（リセットパケット４１９）が有効であるか否かを判定する。
上記一時鍵生成用データ記憶部（検証用データ記憶部３３０、世代番号カウンタ３３１）は、上記他の暗号処理装置から通知された上記初期化コマンドが有効であると上記初期化コマンド検証部が判定した場合に、記憶した上記一時鍵生成用データ（世代番号４３２）を初期化する。
【０３４０】
これにより、なんらかの原因で一時鍵生成用データが異常値になった場合でも、一時鍵生成用データを正常値に戻すことができる。
【０３４１】
上記暗号処理装置（暗号通信装置２００，５００、携帯端末２０１、検針メータ３０１）は、更に、一時鍵生成用データ通知部（２５０、対検針メータ通信部２９１）と、暗号通信部（２９０、対検針メータ通信部２９１，３７１）とを有する。
上記一時鍵生成用データ通知部は、上記一時鍵生成部（１６０、１６４、３６４）が上記一時鍵（一時鍵４１３，４３５）の生成に使った上記一時鍵生成用データ（世代番号４１２，４３２）を、他の暗号処理装置（暗号通信装置３００，５００、検針メータ３０１）に対して通知する。
上記暗号通信部は、上記一時鍵生成部が生成した上記一時鍵を使って、上記他の暗号通信装置との間で暗号通信をする。
【０３４２】
他の暗号処理装置に対して通知した一時鍵生成用データを使って生成した一時鍵を使って暗号通信をするので、容易に、暗号通信に使う一時鍵を合意することができる。
【０３４３】
以上説明した管理装置（１００、暗号通信装置５００、管理サーバ１０１）、第一暗号通信装置（暗号通信装置２００，５００、携帯端末２０１）、第二暗号通信装置（暗号通信装置３００，５００、検針メータ３０１）及び暗号処理装置（管理装置１００、暗号通信装置２００，３００，５００、管理サーバ１０１、携帯端末２０１、検針メータ３０１）は、コンピュータプログラムをコンピュータが実行することにより実現することができる。
管理装置、第一暗号通信装置、第二暗号通信装置または暗号処理装置としてコンピュータを機能させるコンピュータプログラムによれば、以上説明した効果を奏する暗号通信システムや暗号処理装置を、容易に実現することができる。
【０３４４】
例えば、自動検針システム（８０１）では、検針メータ（３０１）と外部装置（携帯端末２０１）とが通信を行い、電力情報や制御情報を通信する。この際、無線区間を通信することがあり、盗聴等の不正行為からこれらを保護する必要がある。情報を盗聴や改ざん等の不正行為から保護するために、情報に対して暗号化を施して送信し、受信側で復号して利用する暗号通信システムが利用される。
【０３４５】
暗号通信システムにおいては、送受信者間で暗号化に使用する鍵の共有を図る必要がある。特に、共通鍵暗号と呼ばれる暗号を用いる場合は、共有した鍵が外部に漏洩しないようにする必要がある。
【０３４６】
以上説明した暗号通信システムによれば、暗号化に使用する鍵を容易に変えることができる。また、携帯端末を紛失し、万一、不正者が当該端末を取得した場合でも、全ての検針メータの検針情報を取得することはできない。
【０３４７】
また、クライアント―サーバ間でカウンタを容易に同期させることができる。カウンタがずれた場合でも、ずれを修正することができるので、ずれが一定範囲を超えた場合でも通信が可能である。
【０３４８】
また、一時鍵が漏洩しても、一定期間の経過により一時鍵を自動的に無効化することができる。
【０３４９】
また、検針メータの時計と、携帯端末の時計とを、完全に同期させる必要はない。このため、時刻同期情報の精度や真正性を別に担保する必要がない。
【０３５０】
以上説明した暗号通信システムによれば、一時鍵を用いながらも、鍵の無効化と鍵の同期を実現する通信装置を提供できる。
なお、以上説明した暗号通信システムは、自動検針システムにおける検針メータと携帯端末との間の通信に限らず、任意の装置の暗号通信に適用することができる。
【符号の説明】
【０３５１】
１００  管理装置、１０１  管理サーバ、１０２  管理部、１１０，１１１，３１０，３１１  マスター鍵記憶部、１３０，２３０  一時鍵生成用データ記憶部、１３１，３３１  世代番号カウンタ、１４０  一時鍵生成用データ更新部、１５０，２５０  一時鍵生成用データ通知部、１５６，３５６  時計、１６０，１６４，１７４，３６０，３６４  一時鍵生成部、１６１  鍵情報管理部、１６２，１７２  認証部、１６３，１７３，３６３  マスター鍵選択部、１６５  初期化コマンド生成部、１６６  リセットパケット生成部、１７０  一時鍵通知部、１７１，１７７  出力判定部、１７５，２８５  初期化コマンド通知部、１７６  パケット生成部、２００，３００，５００  暗号通信装置、２０１  携帯端末、２０２  通信部、２２０，３２０  一時鍵生成用データ取得部、２２１  対管理サーバ通信部、２２２  一時鍵発行要求生成部、２２３  一時鍵情報取得部、２２４  リセットパケット発行要求生成部、２２５  リセットパケット取得部、２６０  一時鍵取得部、２６５，３６５  初期化コマンド取得部、２７０  一時鍵記憶部、２７５  初期化コマンド記憶部、２８１  メッセージ生成部、２９０，３９０  暗号通信部、２９１，３７１  対検針メータ通信部、２９２，３９２  暗号化部、２９３，３９３  多重化部、２９４，３９４  分離部、２９５，３９５  復号部、２９６，３９６  受信判定部、２９７  リセットパケット出力部、３０１  検針メータ、３０２  検証部、３３０  検証用データ記憶部、３４０  検証用データ更新部、３５０  一時鍵生成用データ検証部、３７５  初期化コマンド検証部、３８１  メッセージ処理部、３９１  対携帯端末通信部、３９７  応答メッセージ生成部、３９８  メッセージ検証部、４１１，４３１  マスター鍵、４１２，４３２  世代番号、４１３，４３５  一時鍵、４１４  出力判定信号、４１６  生成時刻、４１７  定数、４１８，４３８  現在時刻、４１９  リセットパケット、４２１  一時鍵発行要求、４２２  鍵種別情報、４２３  メッセージ、４２４  暗号化メッセージ、４２５  認証情報、４２６，４３６  暗号文、４２７，４３７  検証結果、４２８  リセットパケット発行要求、４３３  応答、４３４  暗号化応答、４３９  リセット応答、４４０  メッセージ認証子、８００  暗号通信システム、８０１  自動検針システム、８０２  無線網、８０３  公衆網、９１１  処理装置、９１２  入力装置、９１３  出力装置、９１４  記憶装置、９１５  通信装置、Ｓ６０１  初期化処理、Ｓ６０２  更新処理、Ｓ６０３  一時鍵通知処理、Ｓ６０４  暗号通信処理、Ｓ６０５  リセットパケット通知処理、Ｓ６０６  世代番号リセット処理、Ｓ６１１，Ｓ６３１  マスター鍵記憶工程、Ｓ６１２  一時鍵生成用データ初期化工程、Ｓ６１３，Ｓ６３３  周期経過判定工程、Ｓ６１４  一時鍵生成用データ更新工程、Ｓ６１５  一時鍵要求受付工程、Ｓ６１６，Ｓ６３７，Ｓ６４４，Ｓ６５５，Ｓ６７２，Ｓ６８４，Ｓ６９４，Ｓ７０２  一時鍵生成工程、Ｓ６１７  初期化コマンド生成工程、Ｓ６１８  一時鍵通知工程、Ｓ６１９，Ｓ６２４  一時鍵生成用データ通知工程、Ｓ６２０，Ｓ６２９  初期化コマンド通知工程、Ｓ６２１  一時鍵要求工程、Ｓ６２２  一時鍵取得工程、Ｓ６２３，Ｓ６３５  一時鍵生成用データ取得工程、Ｓ６２５，Ｓ６３８  暗号通信工程、Ｓ６２６  拒絶取得工程、Ｓ６２７  初期化コマンド要求工程、Ｓ６２８，Ｓ６４８  初期化コマンド取得工程、Ｓ６３２  検証用データ初期化工程、Ｓ６３４  検証用データ更新工程、Ｓ６３６  一時鍵生成用データ検証工程、Ｓ６４１  一時鍵発行要求生成工程、Ｓ６４２，Ｓ６８２  認証工程、Ｓ６４３，Ｓ６５４，Ｓ６７１，Ｓ６８３，Ｓ６９３，Ｓ７０１  マスター鍵選択工程、Ｓ６４５，Ｓ６８６  出力工程、Ｓ６４６  一時鍵情報取得工程、Ｓ６４７  拒絶通知工程、Ｓ６４９  初期化コマンド検証工程、Ｓ６５１，Ｓ６７３  暗号化工程、Ｓ６５２，Ｓ６７４，Ｓ７０４  多重化工程、Ｓ６５３，Ｓ６７５，Ｓ６９２  分離工程、Ｓ６５６，Ｓ６７６  復号工程、Ｓ６５７，Ｓ６７７，Ｓ６９６  受信判定工程、Ｓ６６０  メッセージ処理工程、Ｓ６８１  リセットパケット発行要求生成工程、Ｓ６８５  パケット生成工程、Ｓ６８７  リセットパケット取得工程、Ｓ６９１  リセットパケット出力工程、Ｓ６９５  メッセージ検証工程、Ｓ６９７  世代番号リセット工程、Ｓ７０３  応答メッセージ生成工程、Ｓ７０５  リセット応答取得工程。
【図１】
0005623657.tif 000002
【図２】
0005623657.tif 000003
【図３】
0005623657.tif 000004
【図４】
0005623657.tif 000005
【図５】
0005623657.tif 000006
【図６】
0005623657.tif 000007
【図７】
0005623657.tif 000008
【図８】
0005623657.tif 000009
【図９】
0005623657.tif 000010
【図１０】
0005623657.tif 000011
【図１１】
0005623657.tif 000012
【図１２】
0005623657.tif 000013
【図１３】
0005623657.tif 000014
【図１４】
0005623657.tif 000015
【図１５】
0005623657.tif 000016
【図１６】
0005623657.tif 000017
【図１７】
0005623657.tif 000018
【図１８】
0005623657.tif 000019
【図１９】
0005623657.tif 000020
【図２０】
0005623657.tif 000021
【図２１】
0005623657.tif 000022
【図２２】
0005623657.tif 000023
【図２３】
0005623657.tif 000024
【図２４】
0005623657.tif 000025
【図２５】
0005623657.tif 000026
【図２６】
0005623657.tif 000027
【図２７】
0005623657.tif 000028
【図２８】
0005623657.tif 000029
【図２９】
0005623657.tif 000030
【図３０】
0005623657.tif 000031
【図３１】
0005623657.tif 000032
【図３２】
0005623657.tif 000033
【図３３】
0005623657.tif 000034
【図３４】
0005623657.tif 000035
【図３５】
0005623657.tif 000036
【図３６】
0005623657.tif 000037
【図３７】
0005623657.tif 000038
【図３８】
0005623657.tif 000039
【図３９】
0005623657.tif 000040
【図４０】
0005623657.tif 000041
【図４１】
0005623657.tif 000042