(57)【特許請求の範囲】
【請求項１】
複数の通信装置間で共有される乱数テーブルであって複数個の乱数と前記乱数ごとに一意のインデックスとを対応付けた前記乱数テーブルと、前記複数の通信装置間で共有される鍵データとを記憶する記憶手段と、
前記記憶手段に記憶されている前記乱数テーブルにおける所定数の前記インデックスを含む第１更新コマンドであって、当該所定数の前記インデックスの中の第１の前記インデックスに対応付けられている前記乱数を用いて算出される新たな乱数により、当該所定数の前記インデックスの中の第２の前記インデックスに対応付けられている前記乱数を更新させる第１更新コマンドを他の通信装置へ送信する第１送信手段と、
前記記憶手段に記憶されている前記乱数テーブルにおいて前記第１の前記インデックスに対応付けられている前記乱数を用いて新たな乱数を算出し、当該算出した乱数により、前記記憶手段に記憶されている前記乱数テーブルにおいて前記第２の前記インデックスに対応付けられている前記乱数を更新する第１更新手段と、
前記記憶手段に記憶されている前記乱数テーブルにおける所定数の第３の前記インデックスを含む第２更新コマンドであって、当該第３の前記インデックスに対応付けられている前記乱数を用いて算出される新たな鍵データにより前記鍵データを更新させる第２更新コマンドを他の通信装置へ送信する第２送信手段と、
前記記憶手段に記憶されている前記乱数テーブルにおける前記第３の前記インデックスに対応付けられている前記乱数を用いて新たな鍵データを算出し、当該算出した新たな鍵データにより、前記記憶手段に記憶されている前記鍵データを更新する第２更新手段と、
を備えることを特徴とする通信装置。
【請求項２】
前記通信装置は、前記記憶手段に記憶されている前記鍵データにより、前記第２更新コマンドを暗号化する暗号手段を更に備え、
前記第２送信手段は、前記暗号手段により暗号化された前記第２更新コマンドを、前記他の通信装置へ送信することを特徴とする請求項１に記載の通信装置。
【請求項３】
請求項２に記載の前記他の通信装置であって、
前記乱数テーブルと前記鍵データとを記憶する第２記憶手段と、
前記第１送信手段から送信された前記第１更新コマンドを受信する第１受信手段と、
前記第２記憶手段に記憶されている前記乱数テーブルにおいて前記第１更新コマンドに含まれる前記第１の前記インデックスに対応付けられている前記乱数を用いて新たな乱数を算出し、当該算出した乱数により、前記第２記憶手段に記憶されている前記乱数テーブルにおいて前記第１更新コマンドに含まれる前記第２の前記インデックスに対応付けられている前記乱数を更新する第３更新手段と、
前記第２送信手段から送信された前記第２更新コマンドを受信する第２受信手段と、
前記第２記憶手段が記憶している前記鍵データにより、前記受信された前記第２更新コマンドを復号する復号手段と、
前記復号手段により復号された前記第２更新コマンドに含まれる前記第３の前記インデックスに対応付けられている前記乱数を用いて新たな鍵データを算出し、当該算出した新たな鍵データにより、前記第２記憶手段が記憶している前記鍵データを更新する第４更新手段と、
を備えることを特徴とする通信装置。
【請求項４】
通信装置により行われる鍵データ更新方法であって、
複数の通信装置間で共有される乱数テーブルであって複数個の乱数と前記乱数ごとに一意のインデックスとを対応付けた前記乱数テーブルと、前記複数の通信装置間で共有される鍵データとを記憶手段に記憶するステップと、
前記記憶手段に記憶されている前記乱数テーブルにおける所定数の前記インデックスを含む第１更新コマンドであって、当該所定数の前記インデックスの中の第１の前記インデックスに対応付けられている前記乱数を用いて算出される新たな乱数により、当該所定数の前記インデックスの中の第２の前記インデックスに対応付けられている前記乱数を更新させる第１更新コマンドを他の通信装置へ送信する第１送信ステップと、
前記記憶手段に記憶されている前記乱数テーブルにおいて前記第１の前記インデックスに対応付けられている前記乱数を用いて新たな乱数を算出し、当該算出した乱数により、前記記憶手段に記憶されている前記乱数テーブルにおいて前記第２の前記インデックスに対応付けられている前記乱数を更新する第１更新ステップと、
前記記憶手段に記憶されている前記乱数テーブルにおける所定数の第３の前記インデックスを含む第２更新コマンドであって、当該第３の前記インデックスに対応付けられている前記乱数を用いて算出される新たな鍵データにより前記鍵データを更新させる第２更新コマンドを他の通信装置へ送信する第２送信ステップと、
前記記憶手段に記憶されている前記乱数テーブルにおける前記第３の前記インデックスに対応付けられている前記乱数を用いて新たな鍵データを算出し、当該算出した新たな鍵データにより、前記記憶手段に記憶されている前記鍵データを更新する第２更新ステップと、
を含むことを特徴とする鍵データ更新方法。
【請求項５】
複数の通信装置間で共有される乱数テーブルであって複数個の乱数と前記乱数ごとに一意のインデックスとを対応付けた前記乱数テーブルと、前記複数の通信装置間で共有される鍵データとを記憶手段に記憶するステップと、
前記記憶手段に記憶されている前記乱数テーブルにおける所定数の前記インデックスを含む第１更新コマンドであって、当該所定数の前記インデックスの中の第１の前記インデックスに対応付けられている前記乱数を用いて算出される新たな乱数により、当該所定数の前記インデックスの中の第２の前記インデックスに対応付けられている前記乱数を更新させる第１更新コマンドを他の通信装置へ送信する第１送信ステップと、
前記記憶手段に記憶されている前記乱数テーブルにおいて前記第１の前記インデックスに対応付けられている前記乱数を用いて新たな乱数を算出し、当該算出した乱数により、前記記憶手段に記憶されている前記乱数テーブルにおいて前記第２の前記インデックスに対応付けられている前記乱数を更新する第１更新ステップと、
前記記憶手段に記憶されている前記乱数テーブルにおける所定数の第３の前記インデックスを含む第２更新コマンドであって、当該第３の前記インデックスに対応付けられている前記乱数を用いて算出される新たな鍵データにより前記鍵データを更新させる第２更新コマンドを他の通信装置へ送信する第２送信ステップと、
前記記憶手段に記憶されている前記乱数テーブルにおける前記第３の前記インデックスに対応付けられている前記乱数を用いて新たな鍵データを算出し、当該算出した新たな鍵データにより、前記記憶手段に記憶されている前記鍵データを更新する第２更新ステップと、
をコンピュータに実行させることを特徴とする鍵データ更新処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号処理機能を搭載した複数の通信装置間において暗号鍵を共有する方法等の技術分野に関する。
【背景技術】
【０００２】
近年、暗号処理機能を搭載した複数の通信装置間において使用される暗号鍵は、例えば、郵送や宅配便事業者等により配達されるか、或いは、Diffie-Hellman鍵共有プロトコル等の計算量的安全性に基づくプロトコルを使った電子的な鍵配送により共有される。電子的な鍵配送方式として、例えば、特許文献１に開示された配送方式が知られている。この配送方式では、通信データを慣用暗号で暗号化して通信するために複数のノード間で共有する必要がある共有暗号鍵の配送に、離散形べき乗関数の暗号を用いる場合に、各々のノードの公開情報を少なくし、且つ離散形べき乗関数暗号装置の暗号化用の鍵と復号化用の鍵を共通暗号鍵の一回の鍵配送毎に生成と消去を行うようになっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６３−５２５３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、共有された暗号鍵を安全に使い続けるためには暗号鍵が危殆化する前に適切なタイミングで暗号鍵を更新する必要がある。しかしながら、上述した電子的な鍵配送方式では、べき乗剰余計算等の高度な計算量を要する演算処理を実用的な時間内に実行できるだけの計算機能力が鍵配送対象機器に要求されるため、コスト高の要因となり、暗号鍵の更新を簡便に行うことは困難であった。【０００５】
そこで、本発明は、上記点に鑑みてなされたものであり、暗号鍵等の鍵データの更新を安全かつ簡便に行うことが可能な通信装置、鍵データ更新方法、及び鍵データ更新処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、複数の通信装置間で共有される乱数テーブルであって複数個の乱数と前記乱数ごとに一意のインデックスとを対応付けた前記乱数テーブルと、前記複数の通信装置間で共有される鍵データとを記憶する記憶手段と、前記記憶手段に記憶されている前記乱数テーブルにおける所定数の前記インデックスを含む第１更新コマンドであって、当該所定数の前記インデックスの中の第１の前記インデックスに対応付けられている前記乱数を用いて算出される新たな乱数により、当該所定数の前記インデックスの中の第２の前記インデックスに対応付けられている前記乱数を更新させる第１更新コマンドを他の通信装置へ送信する第１送信手段と、前記記憶手段に記憶されている前記乱数テーブルにおいて前記第１の前記インデックスに対応付けられている前記乱数を用いて新たな乱数を算出し、当該算出した乱数により、前記記憶手段に記憶されている前記乱数テーブルにおいて前記第２の前記インデックスに対応付けられている前記乱数を更新する第１更新手段と、前記記憶手段に記憶されている前記乱数テーブルにおける所定数の第３の前記インデックスを含む第２更新コマンドであって、当該第３の前記インデックスに対応付けられている前記乱数を用いて算出される新たな鍵データにより前記鍵データを更新させる第２更新コマンドを他の通信装置へ送信する第２送信手段と、前記記憶手段に記憶されている前記乱数テーブルにおける前記第３の前記インデックスに対応付けられている前記乱数を用いて新たな鍵データを算出し、当該算出した新たな鍵データにより、前記記憶手段に記憶されている前記鍵データを更新する第２更新手段と、を備えることを特徴とする。【０００７】
請求項２に記載の発明は、請求項１に記載の通信装置において、前記通信装置は、前記記憶手段に記憶されている前記鍵データにより、前記第２更新コマンドを暗号化する暗号手段を更に備え、前記第２送信手段は、前記暗号手段により暗号化された前記第２更新コマンドを、前記他の通信装置へ送信することを特徴とする。【０００８】
請求項３に記載の発明は、請求項２に記載の前記他の通信装置であって、前記乱数テーブルと前記鍵データとを記憶する第２記憶手段と、前記第１送信手段から送信された前記第１更新コマンドを受信する第１受信手段と、前記第２記憶手段に記憶されている前記乱数テーブルにおいて前記第１更新コマンドに含まれる前記第１の前記インデックスに対応付けられている前記乱数を用いて新たな乱数を算出し、当該算出した乱数により、前記第２記憶手段に記憶されている前記乱数テーブルにおいて前記第１更新コマンドに含まれる前記第２の前記インデックスに対応付けられている前記乱数を更新する第３更新手段と、前記第２送信手段から送信された前記第２更新コマンドを受信する第２受信手段と、前記第２記憶手段が記憶している前記鍵データにより、前記受信された前記第２更新コマンドを復号する復号手段と、前記復号手段により復号された前記第２更新コマンドに含まれる前記第３の前記インデックスに対応付けられている前記乱数を用いて新たな鍵データを算出し、当該算出した新たな鍵データにより、前記第２記憶手段が記憶している前記鍵データを更新する第４更新手段と、を備えることを特徴とする。
【０００９】
請求項４に記載の発明は、通信装置により行われる鍵データ更新方法であって、複数の通信装置間で共有される乱数テーブルであって複数個の乱数と前記乱数ごとに一意のインデックスとを対応付けた前記乱数テーブルと、前記複数の通信装置間で共有される鍵データとを記憶手段に記憶するステップと、前記記憶手段に記憶されている前記乱数テーブルにおける所定数の前記インデックスを含む第１更新コマンドであって、当該所定数の前記インデックスの中の第１の前記インデックスに対応付けられている前記乱数を用いて算出される新たな乱数により、当該所定数の前記インデックスの中の第２の前記インデックスに対応付けられている前記乱数を更新させる第１更新コマンドを他の通信装置へ送信する第１送信ステップと、前記記憶手段に記憶されている前記乱数テーブルにおいて前記第１の前記インデックスに対応付けられている前記乱数を用いて新たな乱数を算出し、当該算出した乱数により、前記記憶手段に記憶されている前記乱数テーブルにおいて前記第２の前記インデックスに対応付けられている前記乱数を更新する第１更新ステップと、前記記憶手段に記憶されている前記乱数テーブルにおける所定数の第３の前記インデックスを含む第２更新コマンドであって、当該第３の前記インデックスに対応付けられている前記乱数を用いて算出される新たな鍵データにより前記鍵データを更新させる第２更新コマンドを他の通信装置へ送信する第２送信ステップと、前記記憶手段に記憶されている前記乱数テーブルにおける前記第３の前記インデックスに対応付けられている前記乱数を用いて新たな鍵データを算出し、当該算出した新たな鍵データにより、前記記憶手段に記憶されている前記鍵データを更新する第２更新ステップと、を含むことを特徴とする。【００１０】
請求項５に記載の発明は、複数の通信装置間で共有される乱数テーブルであって複数個の乱数と前記乱数ごとに一意のインデックスとを対応付けた前記乱数テーブルと、前記複数の通信装置間で共有される鍵データとを記憶手段に記憶するステップと、前記記憶手段に記憶されている前記乱数テーブルにおける所定数の前記インデックスを含む第１更新コマンドであって、当該所定数の前記インデックスの中の第１の前記インデックスに対応付けられている前記乱数を用いて算出される新たな乱数により、当該所定数の前記インデックスの中の第２の前記インデックスに対応付けられている前記乱数を更新させる第１更新コマンドを他の通信装置へ送信する第１送信ステップと、前記記憶手段に記憶されている前記乱数テーブルにおいて前記第１の前記インデックスに対応付けられている前記乱数を用いて新たな乱数を算出し、当該算出した乱数により、前記記憶手段に記憶されている前記乱数テーブルにおいて前記第２の前記インデックスに対応付けられている前記乱数を更新する第１更新ステップと、前記記憶手段に記憶されている前記乱数テーブルにおける所定数の第３の前記インデックスを含む第２更新コマンドであって、当該第３の前記インデックスに対応付けられている前記乱数を用いて算出される新たな鍵データにより前記鍵データを更新させる第２更新コマンドを他の通信装置へ送信する第２送信ステップと、前記記憶手段に記憶されている前記乱数テーブルにおける前記第３の前記インデックスに対応付けられている前記乱数を用いて新たな鍵データを算出し、当該算出した新たな鍵データにより、前記記憶手段に記憶されている前記鍵データを更新する第２更新ステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、鍵データが危殆化する前に適切なタイミングで当該鍵データの更新を安全かつ簡便に行うことができる。
【図面の簡単な説明】
【００１２】
【図１】（Ａ）は、データ通信システムＳの概要構成例を示す図であり、（Ｂ）は、通信装置Ｔｎの概要構成例を示す図である。
【図２】乱数テーブルの一例を示す図である。
【図３】通信装置Ｔ１と通信装置Ｔ２とで行われる乱数テーブル更新処理の一例を示すシーケンス図である。
【図４】実施例１において、通信装置Ｔ１と通信装置Ｔ２とで行われる鍵データ更新処理の一例を示すシーケンス図である。
【図５】実施例２において、通信装置Ｔ１と通信装置Ｔ２とで行われる鍵データ更新処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施形態について詳細に説明する。なお、以下に説明する実施形態は、データ通信システムに対して本発明を適用した場合の実施形態である。
【００１４】
先ず、図１を参照して、データ通信システムＳの概要構成及び機能について説明する。図１（Ａ）は、データ通信システムＳの概要構成例を示す図であり、図１（Ｂ）は、通信装置Ｔｎの概要構成例を示す図である。
【００１５】
図１（Ａ）に示すように、データ通信システムＳは、複数の通信装置（エンティティ）Ｔｎ（ｎ＝１，２，３・・・ｋ）を備えて構成されている。このようなデータ通信システムＳでは、通信ネットワークＮＷを介して、通信装置Ｔｎ間でＭ２Ｍ（Machine to Machine）の通信が可能になっている。通信装置Ｔｎの例としては、サーバ、パーソナルコンピュータ、携帯電話機、スマートフォン、ＩＣカード、センサー機器、アクチュエーター機器、ゲーム機等が挙げられる。センサー機器は、例えば、温度、湿度、照度、振動、電力、または歪み等のセンサーを搭載した通信機器である。アクチュエーター機器は、表示板、照明、ブザー、またはリレー等を搭載した通信機器である。通信ネットワークＮＷには、例えば、Bluetooth（登録商標）、UWB（ultra wideband）、PAN（personal area network）、インターネット、IoT（Internet of Things）、センサーネットワーク、移動体通信網等が該当する。通信ネットワークＮＷは、例えば、各場所で複数の通信方式を組み合わせて構成されてもよい。例えば、サーバと携帯電話機とは、インターネット、ゲートウエイ、及び移動体通信網を介して通信を行う。また、例えば、センサー機器とアクチュエーター機器とは、PANを介して近距離無線通信を行う。
【００１６】
図１（Ｂ）に示すように、通信装置Ｔｎは、ＣＰＵ（Central Processing Unit）１０、コプロセッサ１１、記憶部１２、センサー部１３、Ｉ／Ｆ部１４、及び通信部１５等を備えて構成される。なお、全ての通信装置Ｔｎの構成が同一である必要はなく、異なっていてもよい。例えば、通信装置Ｔ１にはセンサー部１３がある構成とし、通信装置Ｔ２にはセンサー部１３がない構成としてもよい。ＣＰＵ１０は、本発明におけるコンピュータの一例である。コプロセッサ１１は、本発明における暗号手段、及び復号手段の一例であり、暗号鍵を用いて暗号化処理及び復号処理を実行する。センサー部１３は、例えば、温度、湿度、照度、振動、電力、または歪み等のセンサーを備える。Ｉ／Ｆ部１４は、通信装置Ｔｎの周辺機器と接続するためのインターフェースである。通信部１５は、ＣＰＵ１０の制御の下、通信ネットワークＮＷを介して通信相手と通信を行うためのものである。記憶部１２は、記憶手段の一例である。記憶部１２は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、不揮発性メモリ（例えば、フラッシュメモリ）等を備える。なお、記憶部１２は、不揮発性メモリの代わりに、ＨＤＤ（Hard Disk Drive）、またはＳＳＤ（Solid State Drive）を備える場合もある。
【００１７】
記憶部１２には、ＣＰＵ１０、及びコプロセッサ１１に実行させるプログラム、及び各種データが記憶されている。記憶部１２に記憶されるプログラムには、ＣＰＵ１０に実行させる鍵データ更新処理プログラムが含まれる。また、記憶部１２に記憶されるプログラムには、コプロセッサ１１に実行させる暗号化処理を規定する暗号化処理プログラム、及びコプロセッサ１１に実行させる復号処理を規定する復号処理プログラムが含まれる。また、記憶部１２には、セキュアな記憶領域が設けられており、この記憶領域には、暗号鍵及び乱数テーブルが記憶される。暗号鍵は、暗号化処理、及び復号処理で用いられる鍵データである。乱数テーブルは、複数個の乱数と乱数ごとに一意のインデックス（例えば、自然数）とを対応付けたテーブルである。暗号鍵及び乱数テーブルは、複数の通信装置Ｔｎ間で共有されるべきものである。
【００１８】
図２は、乱数テーブルの一例を示す図である。図２の例では、乱数（乱数値）をＲｎ等の文字で表現しているが、実際には、乱数は、例えば、ＣＰＵ１０上の数値表現（０と１）からなる１２８ビットの値である。乱数テーブルは、例えば通信装置Ｔｎの製造時に予め記憶部１２に記憶される。この構成では、乱数自体が、通信ネットワークＮＷを介して通信装置Ｔｎ間でやり取りされないので、セキュリティを向上させることができる。
【００１９】
或いは、乱数テーブルは、例えば通信装置Ｔｎの製造時に記憶部１２に記憶させず、通信装置Ｔｎの出荷後、互いに通信を行う通信装置Ｔｎそれぞれで生成した乱数及びインデックスを通信相手に送信することで、乱数テーブルを生成するように構成してもよい。例えば、通信装置Ｔ１と通信装置Ｔ２とが通信を行う場合、初めに、通信装置Ｔ１と通信装置Ｔ２とは、それぞれ、空の乱数テーブルを記憶部１２に生成する。そして、先ず、通信装置Ｔ１は、乱数生成器（図示せず）により乱数Ｒ1を生成し、生成した乱数Ｒ1とインデックス1とを対応付けて通信装置Ｔ２へ送信し、且つ、生成した乱数Ｒ1とインデックス1とを対応付けて乱数テーブルに登録する。次に、通信装置Ｔ２は、通信装置Ｔ１から受信した乱数Ｒ1とインデックス1とを対応付けて乱数テーブルに登録する。そして、通信装置Ｔ２は、乱数生成器により乱数Ｒ2を生成し、生成した乱数Ｒ2とインデックス2とを対応付けて通信装置Ｔ１へ送信し、且つ、生成した乱数Ｒ2とインデックス2とを対応付けて乱数テーブルに登録する。次に、通信装置Ｔ１は、通信装置Ｔ２から受信した乱数Ｒ2とインデックス2とを対応付けて乱数テーブルに登録する。このような処理が繰り返し交互に行われる（インデックス3〜nまで）ことで、図２に示すような乱数テーブルが完成する。この構成では、通信装置Ｔ１と通信装置Ｔ２との間で固有の乱数テーブル（つまり、実際に通信を行う通信装置間で固有の乱数テーブル）を生成することができる。
【００２０】
そして、ＣＰＵ１０は、本発明の鍵データ更新処理プログラムに従って、乱数テーブル更新処理、及び鍵データ更新処理を実行する。ＣＰＵ１０は、乱数テーブル更新処理において、第１送信手段、及び第１更新手段等として機能する。具体的には、例えば、通信装置Ｔ１のＣＰＵ１０は、乱数テーブル更新処理において、記憶部１２に記憶されている乱数テーブルにおける所定数（例えば、２個以上の任意個）のインデックスを含む乱数テーブル更新コマンド（第１更新コマンドの一例）を他の通信装置Ｔ２へ送信する。この乱数テーブル更新コマンドは、上記所定数のインデックスの中の第１のインデックスに対応付けられている乱数を用いて算出される新たな乱数により、当該所定数のインデックスの中の第２のインデックスに対応付けられている乱数を更新させるコマンドである。これにより、他の通信装置Ｔ２によって乱数テーブルの更新が行われる。また、通信装置Ｔ１のＣＰＵ１０は、乱数テーブル更新処理において、記憶部１２に記憶されている乱数テーブルにおいて第１のインデックスに対応付けられている乱数を用いて新たな乱数を算出し、当該算出した乱数により、記憶部１２に記憶されている乱数テーブルにおいて第２のインデックスに対応付けられている乱数を更新する。これにより、通信装置Ｔ１と通信装置Ｔ２との間で、乱数テーブルの共有化が行われる。
【００２１】
また、ＣＰＵ１０は、鍵データ更新処理において、第２送信手段、及び第２更新手段等として機能する。具体的には、例えば、通信装置Ｔ１のＣＰＵ１０は、記憶部１２に記憶されている乱数テーブルにおける所定数（例えば、２個以上の任意個）の第３のインデックスを含む鍵更新コマンド（第２更新コマンドの一例）を他の通信装置Ｔ２へ送信する。この鍵更新コマンドは、上記第３のインデックスに対応付けられている乱数を用いて算出される新たな暗号鍵により暗号鍵を更新させるコマンドである。これにより、他の通信装置Ｔ２によって暗号鍵の更新が行われる。また、通信装置Ｔ１のＣＰＵ１０は、記憶部１２に記憶されている乱数テーブルにおける上記第３のインデックスに対応付けられている乱数を用いて新たな暗号鍵を算出し、当該算出した新たな暗号鍵により、記憶部１２に記憶されている暗号鍵を更新する。これにより、通信装置Ｔ１と通信装置Ｔ２との間で、暗号鍵の共有化が行われる。
【００２２】
次に、データ通信システムＳの動作について、実施例１と実施例２に分けて説明する。なお、以下の動作の前提として、通信装置Ｔ１と通信装置Ｔ２には、同一の乱数テーブル、及び同一の暗号鍵が記憶されているものとする。
【００２３】
（実施例１）    
先ず、図３及び図４を参照して、実施例１について説明する。図３は、通信装置Ｔ１と通信装置Ｔ２とで行われる乱数テーブル更新処理の一例を示すシーケンス図である。図４は、実施例１において、通信装置Ｔ１と通信装置Ｔ２とで行われる鍵データ更新処理の一例を示すシーケンス図である。
【００２４】
図３に示す例では、通信装置Ｔ１から乱数テーブル更新処理が開始される。なお、乱数テーブル更新処理は、例えば、定期的（例えば、３日間隔）、または不定期（例えば、通信装置Ｔ１の電源オンのタイミング）に実行される。
【００２５】
乱数テーブル更新処理が開始されると、通信装置Ｔ１のＣＰＵ１０は、乱数テーブル更新コマンドＲUpdate(n,k,l)を生成する（ステップＳ１）。ここで、n,k,lは、通信装置Ｔ２へ渡す引数であり、記憶部１２に記憶されている乱数テーブルにおける所定数のインデックスに相当する。また、この例では、“n”は、上述した第２のインデックスに相当し、“k”及び“l”は、第１のインデックスに相当する。なお、ＲUpdateの引数として決定される第１のインデックスは、３個以上であってもよい。また、n,k,lは、例えば、乱数により任意に決定（例えば、n=1,k=2,l=4、或いは、n=4,k=1,l=2のように決定）される。或いは、n,k,lは、登録順に決定されてもよい。
【００２６】
次いで、通信装置Ｔ１のＣＰＵ１０は、ステップＳ１で生成した乱数テーブル更新コマンドＲUpdate(n,k,l)を、通信部１５及び通信ネットワークＮＷを介して、通信装置Ｔ２へ送信する（ステップＳ２）。次いで、通信装置Ｔ１のＣＰＵ１０は、インデックスkに対応付けられている乱数Ｒkと、インデックスlに対応付けられている乱数Ｒlとを用いて、インデックスnに対応付けるための新たな乱数Ｒnを算出する（ステップＳ３）。新たな乱数Ｒnは、例えば、下記（１）式により算出される。
【００２７】
Ｒn :＝ Ｒk xor Ｒl・・・（１）
【００２８】
ここで、“xor”は、排他的論理和を表す。また、“（左辺）:＝（右辺）”は、右辺の計算結果を左辺に代入することを表す。つまり、上記（１）式では、ＲkとＲlとの排他的論理和がＲnになる。なお、新たな乱数Ｒnを、他の算出方法で算出してもよい。例えば、生成される乱数を固定長（例えば、１２８ビット）としておき、Ｒk とＲlとを乗算した結果の上位１２８ビットを、新たな乱数Ｒnとしてもよい。
【００２９】
次いで、通信装置Ｔ１のＣＰＵ１０は、ステップＳ３で算出した新たな乱数Ｒnにより、通信装置Ｔ１の記憶部１２に記憶されている乱数テーブルにおいてインデックスnに対応付けられている乱数Ｒnを更新（変更）する（ステップＳ４）。
【００３０】
一方、通信装置Ｔ２のＣＰＵ１０は、通信装置Ｔ１から送信された乱数テーブル更新コマンドＲUpdate(n,k,l)を受信すると、乱数テーブル更新コマンドＲUpdate(n,k,l)が示すインデックスkに対応付けられている乱数Ｒkと、インデックスlに対応付けられている乱数Ｒlとを用いて、通信装置Ｔ１と同一の算出方法（例えば、上記（１）式）により、インデックスnに対応付けるための新たな乱数Ｒnを算出する（ステップＳ１１）。
【００３１】
次いで、通信装置Ｔ２のＣＰＵ１０は、ステップＳ１１で算出した新たな乱数Ｒnにより、通信装置Ｔ２の記憶部１２に記憶されている乱数テーブルにおいてインデックスnに対応付けられている乱数Ｒnを更新（変更）する（ステップＳ１２）。
【００３２】
次いで、通信装置Ｔ２のＣＰＵ１０は、更新完了メッセージを、通信部１５及び通信ネットワークＮＷを介して、通信装置Ｔ１へ送信する（ステップＳ１３）。一方、通信装置Ｔ１のＣＰＵ１０は、通信装置Ｔ２から送信された更新完了メッセージを受信すると、確認回答メッセージを通信装置Ｔ２へ返信する（ステップＳ５）。
【００３３】
次に、図４に示す例では、通信装置Ｔ１から鍵データ更新処理が開始される。なお、鍵データ更新処理は、例えば、定期的（例えば、乱数テーブル更新処理より長い間隔が望ましく、例えば７日間隔）に実行される。
【００３４】
鍵データ更新処理が開始されると、通信装置Ｔ１のＣＰＵ１０は、鍵更新コマンドＫUpdate(k,-l,m)を生成する（ステップＳ２１）。ここで、k,-l,mは、通信装置Ｔ２へ渡す引数であり、記憶部１２に記憶されている乱数テーブルにおける所定数の第３のインデックスに相当する。また、“-l”における“-”は、暗号鍵の安全性を向上させるために否定演算子を用いることを示す。“-l”に代えて“l”であってもよい。なお、ＫUpdateにおける引数として決定されるインデックスは、３個以上であってもよい。また、k,l,mは、例えば、乱数により任意に決定されるか、或いは登録順に決定される。
【００３５】
次いで、通信装置Ｔ１のＣＰＵ１０は、ステップＳ２１で生成した鍵更新コマンドＫUpdate(k,-l,m)を、通信部１５及び通信ネットワークＮＷを介して、通信装置Ｔ２へ送信する（ステップＳ２２）。
【００３６】
次いで、通信装置Ｔ１のＣＰＵ１０は、インデックスkに対応付けられている乱数Ｒkと、インデックスlに対応付けられている乱数Ｒl（“l”に“-”が付加されているので、¬Ｒlが用いられる）と、インデックスmに対応付けられている乱数Ｒmとを用いて新たな暗号鍵Ｋ２を算出する（ステップＳ２３）。新たな暗号鍵Ｋ２は、例えば、下記（２）式により算出される。
【００３７】
Ｋ２ :＝ Ｒk xor ¬Ｒl xor Ｒm・・・（２）
【００３８】
ここで、“¬”は、否定演算子を表す。すなわち、¬Ｒlは、ＣＰＵ１０上の数値表現では全ビットの反転を意味する。上記（２）式では、Ｒkと¬ＲlとＲmとの排他的論理和がＫ２になる。なお、新たな暗号鍵Ｋ２を、他の算出方法で算出してもよい。例えば、生成される乱数を固定長としておき、Ｒkと¬ＲlとＲmとを乗算した結果の上位固定長ビットを、新たな暗号鍵Ｋ２としてもよい。
【００３９】
次いで、通信装置Ｔ１のＣＰＵ１０は、ステップＳ２３で算出した新たな暗号鍵Ｋ２により、通信装置Ｔ１の記憶部１２に記憶されている暗号鍵Ｋ１を更新（変更）する（ステップＳ２４）。
【００４０】
一方、通信装置Ｔ２のＣＰＵ１０は、通信装置Ｔ１から送信された鍵更新コマンドＫUpdate(k,-l,m)を受信すると、鍵更新コマンドＲUpdate(k,-l,m)が示すインデックスkに対応付けられている乱数Ｒkと、インデックスlに対応付けられている乱数Ｒlの反転値¬Ｒlと、インデックスmに対応付けられている乱数Ｒmとを用いて、通信装置Ｔ１と同一の算出方法（例えば、上記（２）式）により、新たな暗号鍵Ｋ２を算出する（ステップＳ３１）。
【００４１】
次いで、通信装置Ｔ２のＣＰＵ１０は、ステップＳ３１で算出した新たな暗号鍵Ｋ２により、通信装置Ｔ２の記憶部１２に記憶されている暗号鍵Ｋ１を更新（変更）する（ステップＳ３２）。
【００４２】
次いで、通信装置Ｔ２のＣＰＵ１０は、更新完了メッセージを、通信部１５及び通信ネットワークＮＷを介して、通信装置Ｔ１へ送信する（ステップＳ３３）。一方、通信装置Ｔ１のＣＰＵ１０は、通信装置Ｔ２から送信された更新完了メッセージを受信すると、確認回答メッセージを通信装置Ｔ２へ返信する（ステップＳ２５）。
【００４３】
以上説明したように、実施例１によれば、通信装置Ｔ１と通信装置Ｔ２とに同一の乱数テーブルを記憶させておき、当該乱数テーブルをインデックスの送受信だけで適時安全に更新し、通信装置Ｔ１と通信装置Ｔ２との間で共有される暗号鍵をインデックスの送受信だけで適時安全に更新するように構成したので、当該暗号鍵が危殆化する前に適切なタイミングで当該暗号鍵の更新を安全かつ簡便に行うことができる。
【００４４】
（実施例２）
次に、図５を参照して、実施例２について説明する。図５は、実施例２において、通信装置Ｔ１と通信装置Ｔ２とで行われる鍵データ更新処理の一例を示すシーケンス図である。なお、実施例２における乱数テーブル更新処理は、実施例１と同様であり、図３に示すように行われる。
【００４５】
図５に示す例では、図４と同様、通信装置Ｔ１から鍵データ更新処理が開始される。なお、鍵データ更新処理は、実施例１と同様、例えば、定期的に実行される。
【００４６】
鍵データ更新処理が開始されると、通信装置Ｔ１のＣＰＵ１０は、実施例１と同様、鍵更新コマンドＫUpdate(k,-l,m)を生成する（ステップＳ４１）。次いで、通信装置Ｔ１のコプロセッサ１１は、通信装置Ｔ１の記憶部１２に記憶されている暗号鍵Ｋ１により、鍵更新コマンドＫUpdate(k,-l,m)を暗号化する（ステップＳ４２）。
【００４７】
次いで、通信装置Ｔ１のＣＰＵ１０は、ステップＳ４２で暗号化された鍵更新コマンドＥＫ１（ＫUpdate(k,-l,m)）を、通信部１５及び通信ネットワークＮＷを介して、通信装置Ｔ２へ送信する（ステップＳ４３）。なお、ステップＳ４４以降の処理は、上記ステップＳ２３以降の処理と同様である。
【００４８】
一方、通信装置Ｔ２のＣＰＵ１０は、通信装置Ｔ１からの暗号化された鍵更新コマンドＥＫ１（ＫUpdate(k,-l,m)）を受信すると、通信装置Ｔ２の記憶部１２に記憶されている暗号鍵Ｋ１により、暗号化された鍵更新コマンドＥＫ１（ＫUpdate(k,-l,m)）を復号（ＤＫ１（ＥＫ１（ＫUpdate(k,-l,m)））する（ステップＳ５１）。なお、ステップＳ５２以降の処理は、上記ステップＳ３１以降の処理と同様である。
【００４９】
以上説明したように、実施例２によれば、通信装置Ｔ１と通信装置Ｔ２との間で共有される暗号鍵で鍵更新コマンドを暗号化して送信するように構成したので、実施例１と同様に当該暗号鍵の更新を安全かつ簡便に行うことができ、さらに、通信装置Ｔ１と通信装置Ｔ２との間で送受信されるインデックスの安全性を向上させることできる。
【符号の説明】
【００５０】
１０  ＣＰＵ
１１  コプロセッサ
１２  記憶部
１３  センサー部
１４  Ｉ／Ｆ部
１５  通信部
Ｔｎ  通信装置
【図１】
0006477714.tif 000002
【図２】
0006477714.tif 000003
【図３】
0006477714.tif 000004
【図４】
0006477714.tif 000005
【図５】
0006477714.tif 000006