(57)【要約】      （修正有）【課題】少ない通信量及び演算量で安全な通信を実現することができる通信システム及び通信方法を提供する。【解決手段】送信装置と受信装置との間で情報を送受信する通信システムにおいて、送信装置は、鍵情報ＫｅｙＸを予め記憶しておき、任意のデータα及び鍵情報ＫｅｙＸを入力として、アルゴリズムＰに基づき複数の情報の組β、γを一意に演算し、データα及び複数の情報の内の所定の情報βを受信装置へ送信する。受信装置は、鍵情報ＫｅｙＸに一意に対応する対応鍵情報ＫｅｙＹを予め記憶しておき、送信部により送信されたデータα及び所定の情報βを受信し、受信された前記データα及び所定の情報β、並びに前記対応鍵情報ＫｅｙＹを入力として、アルゴリズムＱに基づき他の情報γを演算する。【選択図】図１
2017085368.tif 000002
【特許請求の範囲】
【請求項１】
送信装置と受信装置との間で情報を送受信する通信システムにおいて、
前記送信装置は、
所定の鍵情報を予め記憶している送信側記憶部と、
任意のデータ及び前記所定の鍵情報を入力として、複数の情報の組を一意に出力する第１アルゴリズムに基づき演算する送信側演算部と、
前記データ及び前記送信側演算部により出力された前記組に含まれる複数の情報の内の所定の情報を前記受信装置へ送信する送信部と
を備え、
前記受信装置は、
前記所定の鍵情報に一意に対応する対応鍵情報を予め記憶している受信側記憶部と、
前記送信部により送信された前記データ及び前記所定の情報を受信する受信部と、
前記受信部により受信したデータ及び所定の情報並びに前記対応鍵情報を入力として、第１アルゴリズムに基づき出力された前記組に含まれる複数の情報の内の他の情報を出力する第２アルゴリズムに基づき演算する受信側演算部と
を備えることを特徴とする通信システム。
【請求項２】
前記受信装置を複数含み、
前記送信装置は、
複数の受信装置夫々に対応する異なる鍵情報を前記送信側記憶部に記憶しておき、
複数の受信装置は、前記異なる鍵情報夫々に対応する対応鍵情報を予め前記受信側記憶部に記憶している
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記所定の鍵情報は署名鍵であり、前記対応鍵情報は検証鍵であり、
第１アルゴリズムは署名及び比較用署名を出力する署名生成アルゴリズムであり、第２アルゴリズムは、前記検証鍵及び前記署名に基づき前記比較用署名を出力する署名検証アルゴリズムであり、
前記送信部は、前記データ及び署名生成アルゴリズムにより出力される署名を送信するようにしてある
ことを特徴とする請求項１に記載の通信システム。
【請求項４】
送信装置と受信装置との間で情報を送受信する通信方法において、
前記送信装置は、
所定の鍵情報を予め記憶しておき、
任意のデータ及び前記所定の鍵情報を入力として、複数の情報の組を一意に出力する第１アルゴリズムに基づき演算し、
前記データ及び演算により出力された前記組に含まれる複数の情報の内の所定の情報を前記受信装置へ送信し、
前記受信装置は、
前記所定の鍵情報に一意に対応する対応鍵情報を予め記憶しておき、
前記送信部により送信された前記データ及び前記所定の情報を受信し、
受信された前記データ及び所定の情報、並びに前記対応鍵情報を入力として、前記第１アルゴリズムに基づき出力された前記組に含まれる複数の情報の内の他の情報を出力する第２アルゴリズムに基づき演算する
ことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置間で秘匿されるべき情報を共有する通信システムに関し、少ない通信量及び演算量で安全な通信を実現することができる通信システム及び通信方法に関する。
【背景技術】
【０００２】
第三者に内容を知られないように情報を送受信するために種々の暗号方式が提案され、利用されている（特許文献１等）。
【０００３】
暗号方式の代表的なものとして、公開鍵暗号方式がある。公開鍵暗号方式では、秘密鍵と公開鍵という非対称な鍵の情報を用い、秘密鍵を持つ受信者側から秘密鍵に対応する公開鍵を送信者へ送信する。送信者側で公開鍵を用いて共有する情報を暗号化して送信し、受信者は対応する秘密鍵で暗号化された情報を復号する。公開鍵では復号は不可能であり、公開鍵から秘密鍵を導出することは困難であるから、公開鍵が第三者に知られても情報を秘密状態のままで送受信することができる。
【０００４】
公開鍵暗号方式とは異なる共通鍵暗号方式では、鍵情報自体を秘密の情報として共有するためにDiffie-Hellman鍵共有が使用されている。Diffie-Hellman鍵共有では、送信者と受信者とが、互いに別途個別に秘密の情報を用いて公開できる値を算出し、算出された値を相互に交換し、交換により得た値と自身の個別の秘密の情報とを用いて所定の演算を行なった場合、等しい値（秘密鍵）が導出されるというものである。これにより、交換されるものが第三者に知られたとしても、送信者と受信者とが互いに等しい情報（秘密鍵）を第三者に知られずに共有することができる。なおこの場合第三者が交換される情報を途中ですり替えるなどした場合（中間者攻撃）には情報を秘密にして共有することは難しくなるところ、事前に予め別途情報を共有しておく楕円曲線Diffie-Hellman鍵共有の方法によりこの問題が解決されている。楕円曲線Diffie-Hellman鍵共有の方法により、送信者及び受信者の間で秘密の状態で共有されるべき情報を安全に、任意のタイミングで更新することができる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】特開２０００−３５４０３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
楕円曲線Diffie-Hellman鍵共有の方法では、公開可能な情報を相互に送受信し合うこと、即ち双方向通信を行なって初めて等しい情報を秘密に共有できる。公開鍵暗号方式においても、受信者側からの公開鍵の送信と送信者側からの暗号化された情報の送信という双方向通信が必要である。しかもいずれの方法も豊富な演算資源が必要であり、処理には比較的長時間を要する。
【０００７】
本発明は斯かる事情に鑑みてなされたものであり、少ない通信量で安全な通信を実現することができる通信システム及び通信方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る通信システムは、送信装置と受信装置との間で情報を送受信する通信システムにおいて、前記送信装置は、所定の鍵情報を予め記憶している送信側記憶部と、任意のデータ及び前記所定の鍵情報を入力として、複数の情報の組を一意に出力する第１アルゴリズムに基づき演算する送信側演算部と、前記データ及び前記送信側演算部により出力された前記組に含まれる複数の情報の内の所定の情報を前記受信装置へ送信する送信部とを備え、前記受信装置は、前記所定の鍵情報に一意に対応する対応鍵情報を予め記憶している受信側記憶部と、前記送信部により送信された前記データ及び前記所定の情報を受信する受信部と、前記受信部により受信したデータ及び所定の情報並びに前記対応鍵情報を入力として、第１アルゴリズムに基づき出力された前記組に含まれる複数の情報の内の他の情報を出力する第２アルゴリズムに基づき演算する受信側演算部とを備えることを特徴とする。
【０００９】
本発明に係る通信システムは、前記受信装置を複数含み、前記送信装置は、複数の受信装置夫々に対応する異なる鍵情報を前記送信側記憶部に記憶しておき、複数の受信装置は、前記異なる鍵情報夫々に対応する対応鍵情報を予め前記受信側記憶部に記憶していることを特徴とする。
【００１０】
本発明に係る通信システムは、前記所定の鍵情報は署名鍵であり、前記対応鍵情報は検証鍵であり、第１アルゴリズムは署名及び比較用署名を出力する署名生成アルゴリズムであり、第２アルゴリズムは、前記検証鍵及び前記署名に基づき前記比較用署名を出力する署名検証アルゴリズムであり、前記送信部は、前記データ及び署名生成アルゴリズムにより出力される署名を送信するようにしてあることを特徴とする。
【００１１】
本発明に係る通信方法は、送信装置と受信装置との間で情報を送受信する通信方法において、前記送信装置は、所定の鍵情報を予め記憶しておき、任意のデータ及び前記所定の鍵情報を入力として、複数の情報の組を一意に出力する第１アルゴリズムに基づき演算し、前記データ及び演算により出力された前記組に含まれる複数の情報の内の所定の情報を前記受信装置へ送信し、前記受信装置は、前記所定の鍵情報に一意に対応する対応鍵情報を予め記憶しておき、前記送信部により送信された前記データ及び前記所定の情報を受信し、受信された前記データ及び所定の情報、並びに前記対応鍵情報を入力として、前記第１アルゴリズムに基づき出力された前記組に含まれる複数の情報の内の他の情報を出力する第２アルゴリズムに基づき演算することを特徴とする。
【００１２】
本発明では、第１及び第２アルゴリズム（１つのアルゴリズムの送信側の演算方法及び受信側の演算方法）により、データと対応する鍵情報とに基づいて所定の複数の情報の組を演算する演算部を夫々有する送信装置と受信装置との間で、データと前記組に含まれる所定の情報を送信装置から受信装置へ送信することで、受信装置側で前記組に含まれる他の情報を導出することができる。対応する鍵情報を事前に秘密の状態で相互に持つことができれば、データと前記所定の情報を第三者に公開、即ち通信媒体上に送出したとしても、同一の情報を第三者に知られることなく導出することができる。
【００１３】
本発明では、受信装置が複数含まれる構成であっても、送信装置と複数の受信装置の内のいずれか１つとの組毎に、鍵情報と対応鍵情報との組み合わせを送信装置側及び受信装置側で予め秘密状態で記憶しておくことで、各組で相互に他の受信装置に知られないように同一の情報を導出することができる。
【００１４】
本発明では、受信装置が複数含まれる構成の場合に、上述の組毎の鍵情報と対応鍵情報との組み合わせ以外に、共通の鍵情報及び共通の対応鍵情報を事前に記憶しておき、これにより複数の受信装置で共有する情報を第三者に公開されないように導出することが可能である。
【００１５】
本発明では、暗号化された情報を受信側で復号して元の情報と一致するか否かの検算を行なうことで署名を検証する署名検証アルゴリズムを採用し、鍵暗号方式よりも少ない通信量及び演算量でデータの通信を安全に行なうことが可能となる。
【発明の効果】
【００１６】
本発明による場合、送信装置と受信装置との間で双方向通信を行なうことなしにデータ及び所定の情報を送信するという一回の送信処理によって、第三者に知られないように同一の情報を導出して共有することが可能になる。これにより、少ない通信量及び演算量で安全な通信を実現することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明における秘密情報の共有の概念を示す説明図である。
【図２】実施の形態１における通信システムの構成を示すブロック図である。
【図３】実施の形態１の通信システムにおける通信装置間にて実施される処理手順の一例を示すフローチャートである。
【図４】実施の形態１における通信装置にて実行される通信処理の手順の一例を示すシーケンス図である。
【図５】従来の秘密の共有方法（Diffie-Hellman鍵共有）における手順を示すシーケンス図である。
【図６】実施の形態１における通信方法を用いた認証処理手順の一例を示すフローチャートである。
【図７】実施の形態２における通信システムの構成を示すブロック図である。
【図８】実施の形態２の通信システムにて実施される通信方法の概要を示す説明図である。
【図９】変形例にて実施される通信方法の概要を示す説明図である。
【図１０】実施の形態３における通信システムの構成を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、本発明をその実施形態を示す図面に基づいて具体的に説明する。なお、以下に示す実施の形態は例示であって、本発明は以下の構成に限られないことは勿論である。
【００１９】
図１は、本発明における秘密情報の共有の概念を示す説明図である。図１中左側に送信者側で使用する情報を示し、図１中右側に受信者側で使用する情報を示している。以下に説明する実施の形態では、鍵の情報（Ｋｅｙ  Ｘ）及び平文（α）によって、所定の複数の情報の組（β、γ、…）が一意に導出されるアルゴリズムＰを用いる。そして、予め上述の鍵の情報（Ｋｅｙ  Ｘ）と対となる鍵の情報（Ｋｅｙ  Ｙ）を持たせておいた受信者側において、複数の情報の組（β、γ、…）の内の所定の情報（β）と平文（α）とを送信者側から受信する。受信者側ではアルゴリズムＰに対応するアルゴリズムＱ（＝Ｐ´）によって前記組の内の他の情報（γ）を導出し、図１中二重丸で示す他の情報（γ）を秘密裏に共有する対象とする。以下の説明では、対となる鍵の情報（Ｋｅｙ  Ｘ，Ｙ）及び平文（α）によって、検証用の複数の情報の組（β、γ）が一意に導出されるアルゴリズムとして署名専用アルゴリズムを用いるが、署名専用アルゴリズムに限らないことは勿論である。
【００２０】
署名専用アルゴリズムでは、公開鍵暗号方式における秘匿されるべき情報（α＝データ（平文））をそのまま送受信し、鍵（Ｋｅｙ  Ｘ）を用いて暗号化された検証用の情報（β、γ＝意味のないもの）を用いて送信者を認証するものであるから、秘匿されるべき共有の情報という概念がない。本発明では、署名専用アルゴリズムによって平文（α）及び予め用意した鍵（Ｋｅｙ  Ｘ，Ｙ）に基づいて導出される署名（複数の情報の組（β、γ））の内の検証用の値（γ）が、平文（α）及び前記鍵に対応する鍵（Ｋｅｙ  Ｙ）と、署名の内の所定の情報（β）とに基づいて再導出できる（検証が可能である）ところに着目し、これ（γ）を共有の対象とするものである。以下に実施の形態１〜３によって具体的に説明する。
【００２１】
（実施の形態１）
図２は、実施の形態１における通信システムの構成を示すブロック図である。通信システムは車載ネットワークであり、通信装置１及び通信装置２を含む。通信装置１，２はいずれもＥＣＵ（Electronic Controller Unit）であり、通信装置１，２間は通信バス３により接続されている。通信装置１，２は例えばＣＡＮ（Controller Area Network ）に基づき相互に通信を行なう。
【００２２】
通信装置１は、制御部１０、記憶部１１、通信部１２、乱数発生部１３、ハッシュ演算部１４及びアルゴリズム演算１５を備える。
【００２３】
制御部１０は、例えば１つ若しくは複数のＣＰＵ（Central Processing Unit ）又はマルチコアＣＰＵを用い、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、入出力インタフェース、タイマ等を有するマイクロコントローラである。制御部１０のＣＰＵは、入出力インタフェースを介して記憶部１１、通信部１２、乱数演算部１３、ハッシュ演算部１４、及びアルゴリズム演算部１５に接続されている。制御部１０は、内蔵するＲＯＭに記憶されている組み込み系の制御プログラムを実行することにより、各構成部の動作を制御する。
【００２４】
記憶部１１は、フラッシュメモリを用いる。記憶部１１は、制御部１０が処理時に参照する情報を記憶する。記憶部１１には、予め署名鍵情報１Ｋが秘密の状態で記憶されている。署名鍵情報１Ｋが記憶されるタイミングは、通信装置１自体の組み立て時、通信装置１を含む通信システムを構築した後のテスト実行時、車両点検時等の特定のタイミングである。署名鍵情報１Ｋは特定のタイミングで、安全に秘密状態で記憶されるように別途暗号化などの技術を用いて記憶されるとよい。また記憶部１１には、予め通信装置２の認証用のパスワードを記憶している。
【００２５】
通信部１２は、トランシーバを用いて通信バス３を介した通信装置２との通信を実現する。通信部１２は制御部１０に含まれる通信コントローラの機能により、制御部１０から指示される情報を通信装置２へ送信し、通信バス３に送出されている情報を検知して受信し、制御部１０へ出力する。
【００２６】
乱数演算部１３は、シードを入力して乱数を発生し、出力する集積回路である。制御部１０は例えばタイマから得られる時刻情報等をシードにして乱数演算部１３に与え、乱数を取得することが可能である。
【００２７】
ハッシュ演算部１４は、数値情報を入力してハッシュ関数の演算を行ない、ハッシュ値を出力する集積回路である。制御部１０は乱数演算部１３から得られる乱数をハッシュ演算部１４に与え、ハッシュ値を取得することが可能である。
【００２８】
アルゴリズム演算部１５は、ＥＣＤＳＡ（Elliptic Curve Digital Signature Algorithm）署名方式による署名検証アルゴリズムを実行する集積回路である。アルゴリズム演算部１５は、任意のデータ（ハッシュ値）及び署名鍵情報１Ｋを入力し、署名（ｒ，ｓ）を出力する。
【００２９】
通信装置２は通信装置１と同様の構成部を備えるので、対応する符号を付して詳細な説明を省略する。ただし通信装置２は記憶部２１に予め、通信装置１の署名鍵情報１Ｋに対応する検証鍵情報２Ｋを記憶している。検証鍵情報２Ｋも事前に秘密の状態で記憶されている。検証鍵情報２Ｋが記憶されるタイミングは署名鍵情報１Ｋが通信装置１の記憶部１１に記憶されるタイミングと同様である。検証鍵情報２Ｋも、安全に秘密状態で記憶されるように別途暗号化などの技術を用いて記憶されるとよい。また記憶部２１には認証用のパスワードが記憶されている。
【００３０】
また通信装置２のアルゴリズム演算部２５は、通信装置１のアルゴリズム演算部１５の演算と対応する演算を実行する集積回路である。アルゴリズム演算部２５は、アルゴリズム演算部１５へ入力したデータ、該データにより出力された署名（ｒ，ｓ）の内の署名ｓ、及び記憶部２１の検証鍵情報２Ｋを入力した場合に署名ｒを出力する。
【００３１】
上述のように構成される通信装置１と通信装置２との間で行なわれる通信処理についてフローチャートを参照して説明する。図３は、実施の形態１における通信装置１，２にて実行される通信処理の手順の一例を示すフローチャートである。
【００３２】
通信装置１の制御部１０は、秘密の情報の共有を開始するべく時刻情報をシードとして乱数演算部１３により乱数を発生させ（ステップＳ１１）、得られた乱数に基づきハッシュ演算部１４によりハッシュ値を取得する（ステップＳ１２）。制御部１０は、取得したハッシュ値及び署名鍵情報１Ｋをアルゴリズム演算部１５に与えて署名（ｒ，ｓ）を取得する（ステップＳ１３）。
【００３３】
制御部１０は、取得した署名（ｒ，ｓ）の内の署名ｒを記憶部１１に記憶し（ステップＳ１４）、他方の署名ｓ及びステップＳ１２で取得したハッシュ値を通信装置２へ送信する（ステップＳ１５）。
【００３４】
通信装置２の制御部２０は、通信部２２により署名ｓ及びハッシュ値を受信し（ステップＳ２１）、受信した署名ｓ、ハッシュ値、及び検証鍵情報２Ｋをアルゴリズム演算部２５に与えて署名ｒを導出させ、取得する（ステップＳ２２）。制御部２０は、取得した署名ｒを記憶部２１に記憶し（ステップＳ２３）、処理を終了する。
【００３５】
このとき通信装置１の記憶部１１と通信装置２の記憶部２１には、暗号化を行なった上での署名ｒを送受信することなしに、同一の内容の署名ｒが記憶されている。このように、通信装置１から通信装置２へ１回の送信処理で秘密の情報を共有できる。
【００３６】
図４は、上述した実施の形態１における通信方法の手順を示すシーケンス図である。図５は、従来の秘密の共有方法（Diffie-Hellman鍵共有）における手順を示すシーケンス図である。実施の形態１における通信方法の場合、図４に示すように、情報（署名ｒ）を共有するための通信装置１と通信装置２との間のやり取りは、通信装置１側から署名ｓ及びハッシュ値の送信（Ｓ１５）の１回で完了する。一方で従来の秘密の共有方法では、送信装置と受信装置との間で相互に公開できる値の交換が必要である。このようにして、少ない通信量（回数）にて秘密の状態で情報を共有することが可能である。
【００３７】
なお、アルゴリズム演算部１５により出力される署名（ｒ，ｓ）はＥＣＤＳＡに基づき出力される数値情報であって得られる情報に条件がある。したがって上述の方法により署名ｒを秘密の情報共有できるが、署名ｒの用途としては内容に意味はないが秘匿されるべき鍵となるような数値情報、例えばハッシュ演算のシードがよい。以下に示すように、通信装置１をサーバとし、通信装置２をクライアントとして、通信装置２が通信システムにおける正当な装置であるかを認証する際に署名ｒをハッシュ演算のシードとして用いることが可能である。
【００３８】
図６は、実施の形態１における通信方法を用いた認証処理手順の一例を示すフローチャートである。図６の処理手順の内、図３のフローチャートに示した処理手順と共通する手順については同一の符号を付して詳細な説明を省略する。
【００３９】
クライアントである通信装置２の制御部２０は、認証のリクエストを通信部２２からサーバである通信装置１へ送信する（ステップＳ２０１）。
【００４０】
通信装置１の通信部１２は認証のリクエストを受信し（ステップＳ１０１）、受信した時刻の時刻情報をシードとして乱数演算部１３により乱数を発生させ（Ｓ１１）、ハッシュ値を取得する（Ｓ１２）。続けて制御部１０は、アルゴリズム演算部１５から署名（ｒ，ｓ）を取得し（Ｓ１３）、署名ｒを記憶部１１に記憶し（Ｓ１４）、署名ｓ及びハッシュ値をリクエストへの応答として通信装置２へ送信する（Ｓ１５）。
【００４１】
通信装置２の制御部２０は、通信部２２により署名ｓ及びハッシュ値を受信し（Ｓ２１）、署名ｒを導出して取得する（Ｓ２２）。制御部２０は、取得した署名ｒを記憶部２１に記憶し（Ｓ２３）、署名ｒをシードとして記憶部２１に記憶してあるパスワードのハッシュ値をハッシュ演算部２４により演算して取得する（ステップＳ２４）。制御部２０は、ステップＳ２４で得られたハッシュ値をサーバである通信装置１へ送信する（ステップＳ２５）。
【００４２】
一方、サーバである通信装置１の制御部１０は、記憶した署名ｒをシードとして記憶部１１に記憶してある通信装置２の認証用のパスワードのハッシュ値をハッシュ演算部１４により演算して取得する（ステップＳ１６）。そして制御部１０は、通信装置２から送信されたハッシュ値を通信部１２により受信し（ステップＳ１７）、ステップＳ１６で取得したハッシュ値と、ステップＳ１７で受信したハッシュ値とを比較することにより認証を実行する（ステップＳ１８）。ステップＳ１８の比較結果が一致する場合は認証成功であり、不一致である場合は認証失敗である。制御部１０は、認証結果を返信し（ステップＳ１９）、通信装置２側でこれを受信し（ステップＳ２６）、認証処理を終了する。
【００４３】
このように認証処理においても、少ない通信量で安全に秘密のシードを共有し、安全に認証を実行することが可能である。しかも、ＥＣＤＳＡ署名方式のアルゴリズムを用いることで情報量も軽減することができる。上述のＥＣＵのような組み込み系のプロセッサを用いる場合であっても、処理負荷を軽減し、記憶容量を節約することも可能である。また上述した方法では中間者攻撃に対する耐性も高い。
【００４４】
アルゴリズム演算部１５，２５は、ＥＣＤＳＡ署名方式を用いる構成としたが、ＤＳＡ、ＲＳＡ暗号を用いるようにしてもよい。またアルゴリズム演算部１５，２５は、これらの署名アルゴリズムの代替となる新たな方式によって演算を行なってもよい。つまりアルゴリズム演算部１５は、鍵情報及び任意のデータを入力した場合に、複数の情報の組を出力し、出力した数値情報を入力とする対応演算を実行すると前記組の他の情報を出力するアルゴリズムであれば他の方法であってもよい。そしてアルゴリズム演算部２５はアルゴリズム演算部１５に対応して、入力されたデータと、アルゴリズム演算部１５が出力した数値情報と、対応する鍵情報とを入力した場合に、前記数値情報と組になる他の数値情報が出力されればよい。
【００４５】
（実施の形態２）
図７は、実施の形態２における通信システムの構成を示すブロック図である。実施の形態２における通信システムは、通信装置１、通信装置２ａ，２ｂ，２ｃを含む。通信装置１及び通信装置２ａ，２ｂ，２ｃはいずれもＥＣＵであり、通信バス３により接続されている。通信装置１の内部構成の詳細は、記憶部１１に記憶されている情報以外は実施の形態１における通信装置１と同様である。通信装置２ａ，２ｂ，２ｃの内部構成の詳細は、各々の記憶部２１に記憶されている情報以外は実施の形態２と同様である。したがって実施の形態１と共通する構成については同一の符号を付して詳細な説明を省略する。
【００４６】
実施の形態２における通信装置１の記憶部１１は、複数の署名鍵情報１Ｋａ，１Ｋｂ，１Ｋｃを予め記憶している。署名鍵情報１Ｋａは、通信装置２ａとの間で秘密の情報を共有するための鍵情報であり、署名鍵情報１Ｋｂは、通信装置２ｂとの間で秘密の情報を共有するための鍵情報であり、署名鍵情報１Ｋｃは、通信装置２ｃとの間で秘密の情報を共有するための鍵情報である。
【００４７】
通信装置２ａの記憶部２１は予め、署名鍵情報１Ｋａに対応する検証鍵情報２Ｋａを記憶している。通信装置２ｂの記憶部２１は予め、署名鍵情報１Ｋｂに対応する検証鍵情報２Ｋｂを記憶している。通信装置２ｃの記憶部２１は予め、署名鍵情報１Ｋｃに対応する検証鍵情報２Ｋｃを記憶している。
【００４８】
通信装置１と通信装置２ａとの間の通信処理、通信装置１と通信装置２ｂとの間の通信処理、通信装置１と通信装置２ｃとの間の通信処理は夫々が、実施の形態１における通信装置１と通信装置２との間の通信処理と同様の手順（図３）で行なわれる。
【００４９】
ただし、対応する鍵の情報を通信装置１と通信装置２ａ，２ｂ，２ｃとのいずれかの組毎に相互に記憶しているから、その対応する鍵情報以外では同一の情報（署名ｒ）の出力ができないので秘密の情報の共有ができないようにしてある。図８は、実施の形態２の通信システムにて実施される通信方法の概要を示す説明図である。図８は、各通信装置１，２ａ，２ｂ，２ｃで保有している鍵情報の対応関係と送受信される情報の流れを示す。実施の形態２において通信装置１と通信装置２ａとの間で秘密の情報を共有する場合、通信装置１の制御部１０は複数の署名鍵情報１Ｋａ，１Ｋｂ，１Ｋｃの内の通信装置２ａ用の署名鍵情報１Ｋａを用いてアルゴリズム演算部１５により署名（ｒ，ｓ）を取得する。通信装置１の制御部１０は、署名（ｒ，ｓ）を取得する際に入力したデータ（ハッシュ値）及び署名ｓを通信部１２から通信バス３へ送出する。
【００５０】
送出されたデータ（ハッシュ値）及び署名ｓは、通信バス３に接続している全ての通信装置２ａ，２ｂ，２ｃの通信部２２にて受信することが可能である。しかしながらデータ及び署名ｓを出力するために使用した署名鍵情報１Ｋａに対応する検証鍵情報２Ｋａを用いて演算する通信装置２ａのみがアルゴリズム演算部２５によって署名ｒを取得し、通信装置１と秘密の情報（情報ｒ）を共有することができる。通信装置２ｂ，２ｃにおいても署名鍵情報１Ｋａに基づくデータ及び署名ｓを受信することができるが、対応する検証鍵情報２Ｋａを所有していないので通信装置１と共通の署名ｒを取得することはできない。
【００５１】
通信装置１と通信装置２ｂとの間の通信処理、通信装置１と通信装置２ｃとの間の通信処理も同様である。
【００５２】
実施の形態２で説明したように、送信側である通信装置１から受信側である他の通信装置２ａ，２ｂ，２ｃへ、任意のデータ（ハッシュ値）、及び、署名（ｒ，ｓ）の内の署名ｓを送信する。この一回の送信により、通信装置１と複数の通信装置２ａ，２ｂ，２ｃ夫々との組毎に、秘密の情報を共有することができる。
【００５３】
なお、通信装置１の記憶部１１に記憶される署名鍵情報１Ｋａ，１Ｋｂ，１Ｋｃの記憶、及び通信装置２ａ，２ｂ，２ｃの各記憶部２１に記憶される検証鍵情報２Ｋａ，２Ｋｂ，２Ｋｃの記憶のタイミングは種々のタイミングが考えられる。例えば、通信装置１，２ａ，２ｂ，２ｃが夫々単体で組み立てられるタイミングでもよいし、通信システムの構築時にいずれの通信装置間で通信を行なうかが決定されるタイミングであってもよい。
【００５４】
実施の形態１及び２では、本発明に係る通信システムを例えば車載ネットワークにおけるＥＣＵ間の通信に適用した。しかしながらこれに限らず、産業機器ネットワークにおけるＨＭＩ（Human Machine Interface ）、ＰＬＣ（Programmable Logic Controller ）、コントローラ、保守用治具等を含む各種電子機器又は装置間の通信に適用してもよいことは勿論である。
【００５５】
（変形例）
実施の形態１及び２では、１つの送信側の通信装置と１又は複数の受信側の通信装置との間で秘密の情報（署名ｒ）を同じタイミングで共有した。変形例においては更に、ある手順又は処理を介して秘密の情報を求めることで、本発明の通信で共有した値（署名ｒ）とは別の情報を特定の装置間で共有する。
【００５６】
図９は、変形例にて実施される通信方法の概要を示す説明図である。変形例では図９に示すように、同一の検証鍵情報２Ｋａを記憶している通信装置２であっても、検証鍵情報２Ｋａのみを記憶している通信装置２ａの他に、「加工２」を知る通信装置２ｄ，２ｆ、「加工１」を知る通信装置２ｅが存在する。更に、「加工２」及び「加工１」の両方を知る通信装置２ｇが存在する。送信側である通信装置１では「加工１」を知っている。「加工１」及び「加工２」は、特定の演算手順又はアルゴリズムであって、情報を共有する装置間で予め、他に知られることなく各々の記憶部２１に記憶されるものである。
【００５７】
図９の例では、通信装置１は署名鍵情報１Ｋａにより署名ｒを秘密の情報として取得できるのみならず、「情報ｒ」に対する「加工１」の処理によって「情報ｒ１」を取得することができる。通信装置２ａは、署名鍵情報１Ｋａに対応する検証鍵情報２Ｋａと通信装置１から送信されるデータ及び情報ｓとによって「情報ｒ」を取得することができる。一方で通信装置２ｂ，２ｃは、署名鍵情報１Ｋａに対応する検証鍵情報２Ｋａを記憶していないので、通信装置１から送信されるデータ及び情報ｓとによって通信装置２ａと同一の「情報ｒ」を取得することができない。そして、通信装置２ｅ及び通信装置２ｇは、検証鍵情報２Ｋａに基づき「情報ｒ」を取得することができるのみならず、「情報ｒ」に対する「加工１」の処理によって「情報ｒ１」を取得することができる。これにより、通信装置２ｅ及び通信装置２ｇは、通信装置１との間で通信装置２ａ，２ｂ，２ｃ，２ｄ，２ｆには知り得ない「情報ｒ１」を共有することができる。通信装置２ｄ、通信装置２ｆ及び通信装置２ｇは、検証鍵情報２Ｋａに基づき通信装置１及び通信装置２ａ等と共通の「情報ｒ」を取得することができるのみならず、「情報ｒ」に対する「加工２」の処理によって「情報ｒ２」を取得することができる。通信装置２ｄ、通信装置２ｆ及び通信装置２ｇは、通信装置２ａ，２ｂ，２ｃ，２ｅ、更には送信装置である通信装置１にも知り得ない「情報ｒ２」を共有することができる。
【００５８】
このように、通信装置１、及び通信装置２ａ〜２ｇを含むシステムにおいては、事前の合意によって、他には知られない秘密の情報を任意の組で共有することが可能になる。
【００５９】
（実施の形態３）
本発明は、インターネット等の公衆通信網を介して相互に通信するＰＣ（Personal Computer ）、サーバコンピュータ等の通信装置間に適用することも可能であり、１対１又は１対複数で秘密の情報を共有する通信に適用することが可能である。
【００６０】
実施の形態３では、サーバクライアントシステムに本発明を適用した例を示す。図１０は、実施の形態３における通信システムの構成を示すブロック図である。実施の形態３における通信システムは、中央装置４及び端末装置５を含む。中央装置４はサーバコンピュータであり、端末装置５はＰＣである。中央装置４及び端末装置５間は、インターネット等の公衆通信網であるネットワークＮを介して通信が可能である。
【００６１】
中央装置４は、制御部４０、記憶部４１、一時記憶部４２及び通信部４３を備える。
【００６２】
制御部４０は、ＣＰＵを用いる。制御部４０は、記憶部４１に記憶されているアルゴリズムＰプログラム４１１を読み出して実行することにより、汎用サーバコンピュータを本発明における送信装置として機能させる。一時記憶部４２は、ＤＲＡＭ等のＲＡＭを用い、制御部４０の処理によって生成される情報を一時的に記憶する。
【００６３】
記憶部４１は、ハードディスク、フラッシュメモリ等の不揮発性メモリを用い、上述したアルゴリズムＰプログラム４１１と、予め署名鍵情報４Ｋとを記憶している。アルゴリズムＰプログラム４１１は、図１に示したアルゴリズムＰ、即ちＥＣＤＳＡ署名方式による署名検証アルゴリズムに基づく演算を実現するプログラムである。
【００６４】
通信部４３は、ネットワークカードを用いてネットワークＮを介した端末装置５との通信を実現する。通信部４５が実現する通信は、有線通信又は無線通信のいずれであってもよい。
【００６５】
端末装置５は、制御部５０、記憶部５１、一時記憶部５２、及び通信部５３を備える。
【００６６】
制御部５０は、ＣＰＵを用いる。制御部５０は、記憶部５１に記憶されているアルゴリズムＱプログラム５１１を読み出して実行することにより、汎用ＰＣを本発明における受信装置として機能させる。一時記憶部５２は、ＤＲＡＭ等のＲＡＭを用い、制御部５０の処理によって生成される情報を一時的に記憶する。
【００６７】
記憶部５１は、ハードディスク又はフラッシュメモリ等の不揮発性の記憶媒体を用い、上述したアルゴリズムＱプログラム５１１と、署名鍵情報４Ｋに対応する検証鍵情報５Ｋとを記憶している。アルゴリズムＱプログラム５１１は、中央装置４におけるアルゴリズムＰプログラム４１１に基づく演算と対応する演算を実現するプログラムである。
【００６８】
通信部５３は、ネットワークカードを用いてネットワークＮを介した中央装置４との通信を実現する。通信部５３が実現する通信は、有線通信又は無線通信のいずれであってもよい。
【００６９】
実施の形態３の通信システムにおいて、中央装置４及び端末装置５間で行なわれる署名鍵情報４Ｋ及び検証鍵情報５Ｋを用いた秘密の情報（署名ｒ）の共有のための処理は、実施の形態１における通信装置１及び通信装置２間で行なわれる処理内容（図３）と同様である。したがって詳細な説明は省略する。また実施の形態３で示した中央装置４及び端末装置５間での処理に、実施の形態２及び変形例も適用できることは勿論である。
【００７０】
実施の形態３で示したように、本発明に係る通信システムは、ＰＣ及びサーバコンピュータによるサーバクライアントシステムに対しても適用可能である。また、実施の形態３で示したように、ソフトウェアに基づく処理によっても実現できる。
【００７１】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００７２】
１  通信装置（送信装置）
１１  記憶部（送信側記憶部）
１２  通信部（送信部）
１５  アルゴリズム演算部（送信側演算部）
１Ｋ，１Ｋａ，１Ｋｂ，１Ｋｃ  署名鍵情報（所定の鍵情報）
２，２ａ，２ｂ，２ｃ  通信装置（受信装置）
２１  記憶部（受信側記憶部）
２２  通信部（受信部）
２５  アルゴリズム演算部（受信側演算部）
２Ｋ，２Ｋａ，２Ｋｂ，２Ｋｃ  検証鍵情報（対応鍵情報）
４  中央装置（送信装置）
４０  制御部（送信側演算部）
４１１  アルゴリズムＰプログラム（送信側演算部）
４１  記憶部（送信側記憶部）
４３  通信部（送信部）
４Ｋ  署名鍵情報（所定の鍵情報）
５  端末装置（受信装置）
５０  制御部（受信側演算部）
５１１  アルゴリズムＱプログラム（受信側演算部）
５１  記憶部（受信側記憶部）
５３  通信部（受信部）
【図１】
2017085368.tif 000003
【図２】
2017085368.tif 000004
【図３】
2017085368.tif 000005
【図４】
2017085368.tif 000006
【図５】
2017085368.tif 000007
【図６】
2017085368.tif 000008
【図７】
2017085368.tif 000009
【図８】
2017085368.tif 000010
【図９】
2017085368.tif 000011
【図１０】
2017085368.tif 000012