(57)【要約】【課題】共通鍵生成処理の効率化を図る。【解決手段】通信装置は、処理部と通信部とを備える。通信装置は、ＤＨ鍵共有方式により生成した共通鍵を用いて伝送路上で互いに暗号化通信を行う複数の通信装置のうちの少なくとも１つである。処理部は、複数の通信装置の各々の共通鍵生成時間の最大値と、複数の通信装置による鍵生成処理回数の少なくともいずれか一方が、より小さい値となるように伝送順序を決定する。通信部は、処理部により決定された伝送順序に基づき部分鍵を送信するよう複数の通信装置のうちの他の通信装置に指示を送信し、自己が生成した部分鍵を決定された伝送順序に基づき送信する。【選択図】図８
2018196056.tif 000002
【特許請求の範囲】
【請求項１】
ＤＨ鍵共有方式により生成した共通鍵を用いて伝送路上で互いに暗号化通信を行う複数の通信装置のうちの少なくとも１つの通信装置であって、
前記複数の通信装置の各々の共通鍵生成時間の最大値と、前記複数の通信装置による鍵生成処理回数の少なくともいずれか一方が、より小さい値となるように伝送順序を決定する処理部と、
前記処理部により決定された前記伝送順序に基づき部分鍵を送信するよう前記複数の通信装置のうちの他の通信装置に指示を送信し、自己が生成した部分鍵を前記決定された伝送順序に基づき送信する通信部と、
を備えることを特徴とする通信装置。
【請求項２】
前記処理部は、前記共通鍵生成時間の最大値と前記鍵生成処理回数の少なくともいずれか一方が最小となるように前記伝送順序を決定することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記処理部は、前記共通鍵生成時間の最大値と前記鍵生成処理回数の和が、より小さい値となるように前記伝送順序を決定することを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記処理部は、前記共通鍵生成時間の最大値と前記鍵生成処理回数の和が最小となるように前記伝送順序を決定することを特徴とする請求項１から３のいずれか１項に記載の通信装置。
【請求項５】
前記処理部は、前記伝送順序を決定する際において遺伝的アルゴリズムを用いることを特徴とする請求項１から４のいずれか１項に記載の通信装置。
【請求項６】
前記処理部は、前記伝送順序を決定する際において、前記伝送順序の候補となる全ての順序の各々の共通鍵生成時間と鍵生成処理回数の少なくともいずれか一方の値を用いて、前記伝送順序を決定することを特徴とする請求項１から４のいずれか１項に記載の通信装置。
【請求項７】
２以上のグループが１以上の前記通信装置を共有する場合において、前記処理部は、前記１以上の通信装置の秘密鍵から生成される部分鍵を、前記１以上のグループの各々の共通鍵の生成のために、前記１以上のグループの各々において共通して伝送できるように前記伝送順序を決定することを特徴とする請求項１から６のいずれか１項に記載の通信装置。
【請求項８】
ＤＨ鍵共有方式により生成した共通鍵を用いて伝送路上で互いに暗号化通信を行う複数の通信装置のうちの少なくとも１つの通信装置により実行される通信方法であって、
前記複数の通信装置の各々の共通鍵生成時間の最大値と、前記複数の通信装置による鍵生成処理回数の少なくともいずれか一方が、より小さい値となるように伝送順序を決定し、
決定された前記伝送順序に基づき部分鍵を送信するよう前記複数の通信装置のうちの他の通信装置に指示を送信し、自己が生成した部分鍵を前記決定された伝送順序に基づき送信する、
処理を含むことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置および通信方法に関する。
【背景技術】
【０００２】
近年、複数の企業や事業者等（以下、企業や事業者等をまとめて企業と呼ぶ）が関係者外秘情報などを含めたデータを共有し、互いに連携し合う動きが存在する。このような企業の間におけるデータの共有のために、インターネット等の伝送路（ネットワークとも呼ぶ）を用いたデータの伝送が行われる場合がある。このようなデータの伝送において、盗聴の防止のため、データは暗号化されて伝送される場合がある。このようなデータの暗号化と復号には鍵が用いられるが、この鍵を当事者同士が保有していなければならないことがあり、そのために当事者間で鍵の受け渡しが行われることがある。しかし、ネットワークを介した鍵の配送には、鍵についての情報の盗聴の恐れがある。このような鍵の配送の問題を解決するための方式として、暗号化のための鍵（公開鍵）と復号化のための鍵（秘密鍵）を互いに別のものとした公開鍵暗号方式が存在する。しかし公開鍵暗号方式を用いた通信においては、複数の相手に対しそれぞれ異なる鍵を用意しなければならない場合や、同じデータに対して鍵の数だけ暗号化を行わなければならない場合があり、このため非効率となり得る。
【０００３】
一方、近年、ビジネスにおける迅速性や効率性の観点から、複数の企業が迅速かつ安全に情報を共有できる仕組みが求められることがある。そしてこのような場合に用いられる鍵共有方式として例えばＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ鍵共有方式（以下、ＤＨ鍵共有方式とも呼ぶ）がある。ＤＨ鍵共有方式において各ノードは、秘密鍵を保有し、同一グループ内の他のノードへ秘密鍵から作成される部分鍵を伝送する。グループ内の各ノードは自己の保有する秘密鍵と受信した部分鍵から共通鍵を作成する。そしてグループ内の各ノードはこの共通鍵を用いてデータのやり取りを互いに行う。ここで、部分鍵から秘密鍵を推測するのは困難である場合が多い。このためＤＨ鍵共有方式では、鍵の伝送に際して部分鍵の盗聴が行われた場合でも、情報が漏洩しにくく高いセキュリティ強度が期待できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２４８２７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＤＨ鍵共有方式を用いてグループ内の各ノードが共通鍵を作成するまでには、複数回の部分鍵の生成と回送の処理が行われる場合があり、これらの処理の負荷は小さいとは限らない。また、１つのノードから他のノードへの部分鍵の伝送にかかる時間（以下、伝送時間とも呼ぶ）も、共通鍵の完成までの時間を遅らせる一因となり得る。一方、共通鍵は、それに係る情報が漏洩すると伝送路におけるデータの盗聴が可能となってしまうことより、安全性の観点から頻繁に更新され得る。
【０００６】
従来のＤＨ鍵共有方式において部分鍵が送信されるノードの順番は、最適化されているとは限らず、このため部分鍵の生成処理の回数や、ノードにおける共通鍵の生成までにかかる時間の低減が図れない場合が少なくなかった。
【０００７】
本発明の１つの側面に係る目的は、共通鍵生成処理の効率化を図ることである。
【課題を解決するための手段】
【０００８】
一つの態様に係る通信装置は、処理部と通信部とを備える。通信装置は、ＤＨ鍵共有方式により生成した共通鍵を用いて伝送路上で互いに暗号化通信を行う複数の通信装置のうちの少なくとも１つである。処理部は、複数の通信装置の各々の共通鍵生成時間の最大値と、複数の通信装置による鍵生成処理回数の少なくともいずれか一方が、より小さい値となるように伝送順序を決定する。通信部は、処理部により決定された伝送順序に基づき部分鍵を送信するよう複数の通信装置のうちの他の通信装置に指示を送信し、自己が生成した部分鍵を決定された伝送順序に基づき送信する。
【発明の効果】
【０００９】
共通鍵生成処理の効率化を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係る通信システムの構成の概略を示す図である。
【図２】ＤＨ鍵共有方式による共通鍵の生成処理の一例を示す図である。
【図３】本実施形態に係る通信装置の機能ブロック図である。
【図４】共通鍵生成時間について説明するための概略図である。
【図５】鍵生成処理回数について説明するための概略図である。
【図６】本実施形態に係る通信装置のハードウェア構成の一例を示す図である。
【図７】順列として表されたグループの伝送順序の一例を示す図である。
【図８】本実施形態に係る通信装置による伝送順序の探索処理のフローチャートである。
【図９】本実施形態における交叉の一例を示す図である。
【図１０】本実施形態における突然変異の一例を示す図である。
【図１１】本実施形態に係る通信装置により決定された伝送順序の一例を示す図である。
【図１２】本実施形態に係る通信方法による効果と従来の通信方法による効果の比較例を示す図である。
【発明を実施するための形態】
【００１１】
図１は、本実施形態に係る通信システムの構成の概略を示す図である。本実施形態では複数の企業を含むグループにおいて、企業同士が情報を安全に共有するために、各企業の１以上の代表となるノード（代表ノードと呼ぶ）が当該グループに共通の共通鍵を生成する。以下、詳細に説明する。
【００１２】
図１には、第１の企業と第２の企業と第５の企業とを含む第１のグループと、第２の企業と第３の企業と第４の企業とを含む第２のグループが示されている。図１に示すように各企業は、ネットワークを介し互いに通信可能に接続されている。第１のグループにおける各企業は、当該第１のグループに属さない企業に対し非公開の情報を、第１のグループにおいて互いにやり取りする。同様に、第２のグループにおける各企業は、当該第２のグループに属さない企業に対し非公開の情報を、第２のグループにおいて互いにやり取りする。情報をグループの外部に対し秘匿化するため、各グループにおいてやり取りされる情報は、当該グループ内において共通の共通鍵により暗号化される。同一のグループ内の各ノードは、当該グループに共通の共通鍵により、送信する情報を暗号化し、受信した情報を復号して、互いに情報の授受を行う。各グループにおける共通鍵は、当該グループにおける各企業の１以上の代表ノードにより生成される。本実施形態においては、各企業の代表ノードは１つであるものとする。但し、これに限定されない。図１では、第１のグループにおける共通鍵は第１の共通鍵となり、第１の企業と第２の企業と第５の企業の各代表ノードが当該第１の共通鍵を生成し、これらの企業におけるノードが第１の共通鍵を使用して情報の暗号化と復号を行って、情報の送受信を行う。同様に、第２のグループにおける共通鍵は第２の共通鍵となり、第２の企業と第３の企業と第４の企業の各代表ノードが当該第２の共通鍵を生成し、これらの企業におけるノードが第２の共通鍵を使用して情報の暗号化と復号を行って、情報の送受信を行う。各企業の代表ノード以外のノードは、代表ノードが作成した共通鍵をイントラネット等の社内ネットワークを介して取得する。以下では、グループにおける代表ノード以外のノードについては、説明を省略する。
【００１３】
同一グループにおける複数の企業の代表ノードが共通鍵を共有するために、本実施形態ではＤＨ鍵共有方式が用いられるものとする。また、同一グループにおけるユーザからの共通鍵についての情報漏洩等を考慮して、情報を安全にやり取りするためにグループ内で共通鍵の更新が行われることがある。以下、ＤＨ鍵共有方式について説明する。
【００１４】
図２は、ＤＨ鍵共有方式による共通鍵の生成処理の一例を示す図である。ここでは３つの代表ノードＡ、Ｂ、Ｃによる共通鍵の生成処理を説明する。代表ノードＡ、Ｂ、Ｃは、自然数ｇと素数ｐを共有する。ここで、素数ｐは自然数ｇより大きい。なお、これら素数ｐ、自然数ｇの値は、盗聴等されても問題はないため、ネットワークを介し共有されてもよい。代表ノードＡ、Ｂ、Ｃは、それぞれ秘密鍵を生成する。ここで代表ノードＡの秘密鍵をｘ１、代表ノードＢの秘密鍵をｘ２、代表ノードＣの秘密鍵をｘ３とする。各代表ノードは、自然数ｇ、素数ｐ、および秘密鍵を用いて部分鍵を生成する。具体的には、代表ノードＡ、Ｂ、Ｃが生成する部分鍵をそれぞれｋ１、ｋ２、ｋ３とすると、これらは例えば以下の数１式から数３式により生成される。
【００１５】
【数１】
2018196056.tif 000003
【００１６】
【数２】
2018196056.tif 000004
【００１７】
【数３】
2018196056.tif 000005
【００１８】
代表ノードは、生成した部分鍵を同一グループ内の他の代表ノードへ送信する。部分鍵を受信した代表ノードは、当該部分鍵に対し当該代表ノードの秘密鍵に係る情報を結合した新たな部分鍵を生成（この新たな部分鍵の生成を部分鍵の変換とも呼ぶ）する。そして、この新たな部分鍵はさらに当該代表ノードから同一グループ内の別の代表ノードへと送信される。このように部分鍵が、秘密鍵から最初に生成されてから、新たな部分鍵へと変換されながら逐次的に辿る代表ノードの順番を伝送順序とも呼ぶ。この伝送順序は、各代表ノードが部分鍵を次の代表ノードに送信するに先立ち決定されており、各代表ノードはこの伝送順序に従い部分鍵の送信を行う。図２の場合における伝送順序は、代表ノードＡから送信される部分鍵を代表ノードＢが受信し、代表ノードＢから送信される部分鍵を代表ノードＣが受信し、代表ノードＣから送信される部分鍵を代表ノードＡが受信するものであるとする。従って、代表ノードＡはｋ１を代表ノードＢに、代表ノードＢはｋ２を代表ノードＣに、代表ノードＣはｋ３を代表ノードＡにそれぞれ送信する。
【００１９】
部分鍵を受信した各代表ノードは、当該部分鍵に対し自己の秘密鍵を結合して新たな部分鍵を作成する。例えば、代表ノードＡは代表ノードＣから受信したｋ３に自己の秘密鍵ｘ１を結合し、新たな部分鍵ｋ１３を生成する。同様に、代表ノードＢは受信したｋ１にｘ２を結合して新たな部分鍵ｋ１２を生成し、代表ノードＣは受信したｋ２にｘ３を結合して新たな部分鍵ｋ２３を生成する。これらｋ１２、ｋ２３、ｋ１３のそれぞれは、例えば以下の数４式、数５式、数６式を満たす。
【００２０】
【数４】
2018196056.tif 000006
【００２１】
【数５】
2018196056.tif 000007
【００２２】
【数６】
2018196056.tif 000008
【００２３】
ｋ１２、ｋ２３、ｋ１３はそれぞれ、代表ノードＢ、代表ノードＣ、代表ノードＡにより、伝送順序に従い、代表ノードＣ、代表ノードＡ、代表ノードＢへと伝送される。
【００２４】
図２において、次に各代表ノードにより受信される部分鍵は、受信した当該代表ノード以外の代表ノードの秘密鍵が結合された部分鍵となっている。例えば、代表ノードＡが受信した部分鍵ｋ２３は、代表ノードＢと代表ノードＣの各秘密鍵が結合された部分鍵である。この部分鍵に代表ノードＡの秘密鍵が結合されることにより、最終的に、代表ノードＡ、Ｂ、Ｃの秘密鍵が結合された鍵ｋ１２３が生成される。同様にして代表ノードＢ、Ｃにおいてもｋ１２３が生成される。このｋ１２３は、例えば以下の数７式により表される。
【００２５】
【数７】
2018196056.tif 000009
【００２６】
鍵ｋ１２３は、秘密鍵の結合順序に依らず同一の値となる。従って、このｋ１２３の値は、代表ノードＡ、Ｂ、Ｃ間の通信において共通鍵として用いることが可能である。
【００２７】
ここで、伝送順序について説明する。或る伝送順序において最後の代表ノードが共通鍵を生成する。２つ以上の伝送順序におけるそれぞれの最後の代表ノードは互いに異なる。もし２つ以上の伝送順序において最後の代表ノードが同じであれば、当該代表ノードは重複して部分鍵を取得することになり余分な伝送がなされることになるからである。一方、共通鍵の生成を行う全ての代表ノードの各々を最後の順番とする伝送順序が１つ存在する。もし共通鍵の生成を行う代表ノードに対し、これを最後の順番とする伝送順序が存在しなければ当該代表ノードは共通鍵を生成できず、暗号化を行えなくなるからである。これらのことより、共通鍵を生成する代表ノード毎に１つの伝送順序が存在することがわかる。このため、任意の１つの伝送順序を、当該伝送順序において最後の順番となる代表ノードの伝送順序とも呼ぶ。またグループにおける全ての代表ノードの伝送順序をまとめたものをグループの伝送順序とも呼ぶ。
【００２８】
本実施形態においては、上述したようなＤＨ鍵共有方式が用いられるものとする。ただし、これ以外にも、楕円曲線を用いた方式（楕円曲線ＤＨ鍵共有方式）等が用いられてもよい。
【００２９】
図３は、本実施形態に係る、代表ノードに対応する通信装置１の機能ブロック図である。通信装置１は、記憶部１０と通信部１１と処理部１２とを備える。処理部１２は、記憶部１０と通信部１１に接続されている。記憶部１０と通信部１１は接続されていてもよい。
【００３０】
記憶部１０は、処理部１２による処理のための各種情報を記憶する。この情報には、以下で述べる各通信装置１に付与された番号が含まれる。また記憶部１０は、処理部１２により決定された伝送順序を記憶してもよい。また記憶部１０は、秘密鍵や上述した素数ｐ、自然数ｇの値等を記憶していてもよい。
【００３１】
通信部１１は、ネットワークを介し他のノード等とのデータのやり取りを行う。また通信部１１は、他の通信装置１から部分鍵を受信して処理部１２へ出力し、処理部１２が生成した部分鍵を他の通信装置１へネットワークを介して送信する。また通信部１１は、部分鍵の送信の際に、処理部１２からの指示に基づき他の通信装置１へ部分鍵を送信する。なおこの部分鍵の送信に伴い、通信装置１１は、自己が生成する部分鍵がどの通信装置１の秘密鍵を用いて生成されているのか等を示すための情報を当該部分鍵に付与してもよい。
【００３２】
処理部１２は、秘密鍵や受信した部分鍵を用いて部分鍵又は共通鍵を生成する。処理部１２は、記憶部１０に代わり、または記憶部１０と共に、秘密鍵や素数ｐや自然数ｇの値等を記憶していてもよい。また、処理部１２は伝送順序を決定する。処理部１２は、通信部１１に対し、生成した部分鍵を出力すると共に、決定した伝送順序に基づき当該部分鍵を送信するよう指示を出力する。なお、処理部１２は、記憶部１０に記憶された伝送順序を読み出して、これに従い部分鍵の伝送を行うよう通信部１１に指示を出力してもよい。
【００３３】
なお本実施形態においては、グループ内の或る通信装置１が伝送順序を決定した場合には、同一グループ内の他の通信装置１へ当該伝送順序を送信する。この送信は、伝送順序を決定した通信装置１により同一グループ内の他の全ての通信装置１に一斉に行われてもよい。あるいは、この伝送順序の送信は、伝送順序を決定した通信装置１により同一グループ内における他の一部の通信装置１に行われてもよい。この場合、伝送順序の伝達を受けた通信装置１から更に伝送順序の送信が同一グループ内の通信装置１へと行われ、最終的に同一グループ内の全ての通信装置１が伝送順序を取得する。
【００３４】
また、なお本実施形態においては、グループ内の任意の１つの通信装置１により伝送順序の決定が行われるものとする。この場合において伝送順序を決定する通信装置１は、共通鍵の更新毎に異なってもよく、あるいは一貫して同一のものであってもよい。
【００３５】
上述した場合以外にも、伝送順序の決定はグループ内の各通信装置１に接続されている上位装置により行われてもよく、当該上位装置から各通信装置１に対し決定された伝送順序が通知されてもよい。またその他、伝送順序の決定はグループ内の複数の通信装置１により行われてもよく、この場合には整合性を保つための別途の措置が行われてもよい。
【００３６】
伝送順序を他の通信装置１（または上位装置）から取得した通信装置１の処理部１２は、これを記憶し通信部１１に当該伝送順序に基づき部分鍵を送信するよう指示を出力してもよい。あるいは伝送順序を取得した通信装置１において、記憶部１０が当該伝送順序を記憶し、処理部１２は、当該伝送順序を記憶部１０から読み出して通信部１１に当該伝送順序に基づき部分鍵を送信するよう指示を出力してもよい。
【００３７】
処理部１２は、伝送順序決定のために以下の数８式を記憶する。なお、この数８式は記憶部１０により記憶されていてもよく、処理部１２は記憶部１０から数８式を適宜読み出し処理を行ってもよい。
【００３８】
【数８】
2018196056.tif 000010
【００３９】
数８式において、ｎはグループ内における代表ノードである通信装置１の総数を表す。上述したようにグループ内における各通信装置１にはそれぞれ異なる番号が付与されており、各通信装置１は自己の番号と他の通信装置１の番号を記憶する。Ｔｍ（ｍは１からｎの自然数）は、ｎ個のうちのｍ番目の通信装置１である第ｍの通信装置１の共通鍵生成時間を表す。この共通鍵生成時間Ｔｍは以下のように定義される。第ｍの通信装置１が最後となる伝送順序において、この伝送順序の最初の通信装置１が自己の秘密鍵より部分鍵を生成する時刻を始点とし、第ｍの通信装置１により共通鍵が作成される時刻を終点とする。この始点から終点までの時間から、当該伝送順序における各通信装置１による処理の時間を差し引いたものを、第ｍの通信装置１の共通鍵生成時間とする。すなわちＴｍは、第ｍの通信装置１により生成される共通鍵の元となる各部分鍵の伝送に費やされる時間の合計である。
【００４０】
図４は共通鍵生成時間について説明するための概略図である。ここでは、グループ内に４つの通信装置１が存在する場合を考える。それぞれの通信装置１はネットワークにより互いに通信可能に接続されている。ここで、図４において２つの通信装置１を繋ぐ線は、当該２つの通信装置１を繋ぐ伝送路を示す。また伝送路を示す線における「遅延：ｘ」のｘは、当該伝送路における部分鍵の伝送時間を表すものとする。なおｘは、これ以外にも、当該伝送路における部分鍵の伝送時間の、他の伝送路における部分鍵の伝送時間からの比であってもよい。この各伝送路における部分鍵の伝送時間を、通信装置１は予め取得している。図４に示す例では、第１の通信装置１と第２の通信装置１との間における部分鍵の伝送には１［秒］、第１の通信装置１と第４の通信装置１との間における部分鍵の伝送には６［秒］かかるものとする。ただし、時間の単位は秒等に限定されず任意である。
【００４１】
ここで、図４を参照して第１の通信装置１の共通鍵生成時間について説明する。第１の通信装置１における共通鍵生成のための部分鍵の伝送順序（第１の通信装置１の伝送順序）を、第４の通信装置１、第３の通信装置１、第２の通信装置１、第１の通信装置１とする。図４から、第４の通信装置１が自己の作成した部分鍵を第３の通信装置１へ向けて伝送路上に送信してから第３の通信装置１が当該部分鍵を受信するまでの間の伝送にかかる時間は３秒である。同様に、第３の通信装置１から第２の通信装置１までの部分鍵の伝送時間は２秒、第２の通信装置１から第１の通信装置１までの部分鍵の伝送時間は１秒である。このため、Ｔ１＝３＋２＋１＝６秒となる。
【００４２】
数８式の説明に戻る。関数ｗｏｒｓｔは、Ｔ１からＴｎのうち最大のものを選択するためのものである。例えば、Ｔｋ（ｋは１以上、ｎ以下の自然数）がＴ１からＴｎまでの共通鍵生成時間のうち最大値となる場合には、ｗｏｒｓｔ（Ｔ１，Ｔ２，・・・，Ｔｎ）＝Ｔｋとなる。このｗｏｒｓｔ（Ｔ１，Ｔ２，・・・，Ｔｎ）により得られる値を最悪値とも呼ぶ。
【００４３】
数８式の第２項におけるｉとは、鍵生成処理回数の総和を表す。鍵生成処理回数とは、グループ内の全ての通信装置１による部分鍵と共通鍵の生成処理の回数の総和である。以下、鍵生成処理回数について詳細に説明する。
【００４４】
図５は、鍵生成処理回数について説明するための概略図である。ここでは、伝送路上における部分鍵の伝送順序に対応する経路を、従来の場合の円順列経路とする。なお、以下では伝送順序に対応する、伝送路における経路を伝送経路とも呼ぶ。
【００４５】
まず円順列経路について説明する。なお、円順列経路は従来からの通信装置により決定される伝送順序に対応するものであるが、本実施形態に係る通信装置１は円順列経路に対応する伝送順序を決定してもよい。図５において、第１の通信装置１を起点とする部分鍵の伝送経路は、第１の通信装置１から第２の通信装置１への伝送経路、第２の通信装置１から第３の通信装置１への伝送経路、および第３の通信装置１から第４の通信装置１への伝送経路の組み合わせである。このような伝送経路または伝送順序を「１→２→３→４」と略記する。同様に、第２の通信装置１を起点とする部分鍵の伝送経路または伝送順序は「２→３→４→１」、第３の通信装置１を起点とする部分鍵の伝送経路または伝送順序は「３→４→１→２」、第４の通信装置１を起点とする部分鍵の伝送経路は「４→１→２→３」となる。円順列経路に対応するこれらの各伝送順序において各通信装置１の前後関係は決まっており、またこの伝送順序は循環していることがわかる。このような円順列経路に対応する伝送順序は従来では巡回セールスマン問題を解くことにより決定されてきた。
【００４６】
図５において、「１→２→３→４」の伝送経路を部分鍵が伝送されるときに各通信装置１が実行する処理について次に説明する。まず第１の通信装置１は、自己の秘密鍵を用いて部分鍵を作成する。この部分鍵を「１」と記載する。この部分鍵「１」は第２の通信装置１に送信され、第２の通信装置１はこの「１」と自己の秘密鍵とを用いて部分鍵を作成する。この際に作成される部分鍵を「１２」と記載する。以下、通信装置１に付された番号に対応付けた数字を、当該通信装置１が受信する部分鍵を表す数字と共に付した数字は、当該通信装置１が作成する部分鍵を表すとする。また部分鍵の送信において終点となる通信装置１で作成される共通鍵についても同様に表すものとする。
【００４７】
「１→２→３→４」の伝送経路において、第２の通信装置１で生成された部分鍵「１２」は第３の通信装置１に送信され、第３の通信装置１は、この「１２」と自己の秘密鍵から部分鍵「１２３」を作成する。この部分鍵「１２３」は第４の通信装置１に送信され、第４の通信装置１は、この「１２３」と自己の秘密鍵から共通鍵「１２３４」を作成する。同様にして、「２→３→４→１」、「３→４→１→２」、「４→１→２→３」の各伝送経路の終点において、第１の通信装置１、第２の通信装置１、第３の通信装置１が、共通鍵「１２３４」を作成する。
【００４８】
図５を参照して、鍵生成処理回数について説明する。図５からわかるように、各通信装置１は部分鍵と共通鍵を含めた鍵の生成を全部で４回行っている。例えば第１の通信装置１は、部分鍵「１」の生成を行い、第４の通信装置１から受信した部分鍵を用いて部分鍵「１４」の生成を行い、同様に部分鍵「１３４」と共通鍵「１２３４」の生成を行っている。この第１から４の通信装置１の各々による鍵の生成処理の回数の、グループにおける総和は４×４＝１６となる。上述したように鍵生成処理回数とは、グループ内の各通信装置１による鍵の生成処理の回数の総和であることから、図５の場合においては鍵を表す数字が記載された楕円の個数と等しい１６が鍵生成処理回数となる。
【００４９】
数８式についてさらに説明すると、ｐ、ｑはそれぞれ最悪値と鍵生成処理回数の重み係数である。なお、ここでの重み係数ｐは、図２を参照して説明した数１式から数７式における素数ｐとは異なる定義のものである。重み係数ｐ、ｑは、適宜ｗｏｒｓｔ（Ｔ１，Ｔ２，・・・，Ｔｎ）とｉの値の調整を行うための数値として設定されるものとする。例えば重み係数ｐ、ｑは、数８式の各項の数値の桁数を互いに合わせるための数である。例えば、第１項のｗｏｒｓｔ（Ｔ１，Ｔ２，・・・，Ｔｎ）により得られる値が１０−３のオーダーで、第２項のｉが１００のオーダーの場合、重み係数ｐ、ｑの各々は、例えば１０００、１など、オーダーの調整を行う値となる。重み係数ｐ、ｑは、例えば共通鍵生成時間の平均と鍵生成処理回数の比を用いて設定されてもよい。
【００５０】
数８式により与えられる値は、通信装置１による伝送順序の決定のための評価指標となる値であり、これを評価値とも呼ぶ。なお、各通信装置１が部分鍵を受信してから鍵を生成する時間など、各通信装置１において行われる処理時間についての情報は、数８式においては省かれている。このような情報は、通信装置１の動作状態等により鍵の生成処理毎に変化し得るためである。ただし、このような情報を数８式に組み合わせることにより得られる値が、伝送順序決定のための評価指標として用いられてもよい。例えば伝送順序を決定する通信装置１は、グループ内の各通信装置１のタイムスケジュール等の情報を保有し、どの時間にどれだけ各通信装置１の資源が用いられるのか等を把握するものでもよい。このようなタイムスケジュール等の情報は、各通信装置１から、伝送順序を決定する通信装置１に送信されてもよい。伝送順序を決定する通信装置１は、このような情報を用いて各通信装置１における鍵の生成処理にかかる時間を推測してもよい。そして伝送順序を決定する通信装置１は、このように推測した鍵の生成処理にかかる時間を、評価指標の値を求める際に用いてもよい。
【００５１】
通信装置１の処理部１２は、上述した評価指標の値がより小さいものとなるようにグループの伝送順序を決定する。通信装置１は、例えば、評価値がより小さいものとなるようにグループの伝送順序を決定してもよいし、数８式の第１項又は第２項の少なくともいずれか一方がより小さい値となるようにグループの伝送順序を決定してもよい。後者の場合には、通信装置１は、数８式の第１項又は第２項のうちの少なくともいずれか一方が最小となるようにグループの伝送順序を決定してもよい。本実施形態に係る通信装置１は、評価値が最小となるように伝送順序を決定するものであるとする。この決定は、グループの伝送順序の探索処理により行われる。この探索処理については後述する。
【００５２】
図６は、本実施形態に係る通信装置１のハードウェア構成の一例を示す図である。なおここでは、通信装置１は、一般的なコンピュータとしてハードウェアを有し、通信装置１による処理は、以下に示すハードウェアを具体的に利用することにより実行される。通信装置１は、互いにバス２４によって接続されたプロセッサ２０、メモリ２１、記憶装置２２、およびネットワークインタフェース回路２３を備える。
【００５３】
プロセッサ２０は、例えばシングルコア、デュアルコア、またはマルチコアのプロセッサである。
【００５４】
メモリ２１は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、半導体メモリである。
【００５５】
プロセッサ２０が、メモリ２１に記憶された情報、または記憶装置２２からメモリ２１に読み込んだ情報を用いて、メモリ２１に記憶された各種プログラムを実行することにより、処理部１２の機能が実現されることができる。
【００５６】
記憶装置２２は、例えばハードディスクドライブ、光ディスク装置等であり、外部記憶装置や可搬型記憶媒体でもよい。記憶装置２２により記憶部１０の機能が実現されることができる。
【００５７】
ネットワークインタフェース回路２３は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、またはイントラネット等を介して、通信装置１が他の通信装置１や他のノードと通信を行えるようにするためのインタフェースである。ネットワークインタフェース回路２３により、通信部１１の機能が実現されることができる。
【００５８】
なお、上述した場合以外にも、図３に示す機能ブロックの全て、又はその一部の機能は、適宜、専用のハードウェアにより実現されることもできる。
【００５９】
次に、上述した評価指標が最小になる伝送順序の決定方法の具体例について説明する。上述した通信装置１の伝送順序やグループの伝送順序は、それぞれ数列（順列）として表現されることができる。この順列は、例えば、伝送順序に従って各通信装置１に付与された番号を並べたものとなる。図７は、順列として表されたグループの伝送順序の一例を示す図である。なお、図７における順列は、グループ内に第１〜４の通信装置１が存在する場合におけるグループの伝送順序に対応するものである。図７を参照すると、第１〜４の通信装置１の伝送順序の順列表現の各々は「４３２１」、「４３１２」、「１２４３」、「１２３４」であることがわかる。これより、第１〜４の通信装置１の伝送順序の各々は「４→３→２→１」、「４→３→１→２」、「１→２→４→３」、「１→２→３→４」であることがわかる。そして図６より、グループの伝送順序の順列表現は「４３２１４３１２１２４３１２３４」であることがわかる。
【００６０】
図８は、本実施形態に係る通信装置１による伝送順序の探索処理のフローチャートである。以下、図８を参照しながら、通信装置１がどのようにして評価値が最小となるようなグループの伝送順序を探索するのかを説明する。
【００６１】
図８のステップＳ１００において、通信装置１の処理部１２は、グループの伝送順序に対応する順列をＮ個生成する（ステップＳ１００）。このとき生成される順列は、以下の（１）、（２）に述べる制約に従い、ランダムに、又は計算時間の短い別の探索手法を用いて、生成されるものである。ここで別の探索手法を用いて生成される順列としては、例えば既知の貪欲法を用いて行われる探索により得られる円順列がある。なお、Ｎはユーザにより予め決められる自然数である。以下では、「グループの伝送順序に対応する順列」もまた「グループの伝送順序」と記載する。同様に、「第ｍの通信装置１の伝送順序に対応する順列」もまた「第ｍの通信装置１の伝送順序」と記載する。
【００６２】
通信装置１は、グループの伝送順序を、次の（１）、（２）を満たすように生成する。
（１）グループの伝送順序のうちの通信装置１の伝送順序の最後の数字は、当該通信装置１の番号に対応する。
（２）各通信装置１の伝送順序においては、グループ内における全ての通信装置１の各々の番号に対応する数字が１つずつ含まれる。
【００６３】
（１）が満たされるべき理由は、第ｍの通信装置１の伝送順序とは、第ｍの通信装置１が共通鍵を生成する場合における伝送順序であることから、当該伝送順序における最後の通信装置１が第ｍの通信装置１であるということに基づく。このため、伝送順序の探索は、各通信装置１の伝送順序の最後の数字以外を並べ替えて行われる。
【００６４】
また（２）が満たされるべき理由は、ＤＨ鍵共有方式において或る通信装置１が共通鍵を生成するためには全ての通信装置１の秘密鍵を用いなければならないことに基づく。
【００６５】
図７を参照すると、第１〜４の通信装置１の伝送順序は、それぞれ上記（１）（２）を満たすことがわかる。例えば、図７において第１の通信装置１の伝送順序は「４３２１」であるが、ここでの最後の数字は「１」であり、当該第１の通信装置１の番号である１と同一であるため、上記（１）が満たされていることがわかる。またこの図７の第１の通信装置１の伝送順序においては、４つの通信装置１の各番号に対応する数字が全て１つずつ含まれており、これにより上記（２）が満たされていることがわかる。
【００６６】
図８を再び参照すると、通信装置１の処理部１２は、以下のステップＳ１０２におけるグループの伝送順序、Ｎ個分の、各評価値の算出処理が何回行われたかをカウントするための、カウント値を格納するｊを準備する。処理部１２は、ステップ１００において生成した、Ｎ個の、グループの伝送順序の各評価値を算出する処理を、１回目の評価値の算出処理とし、ｊに１を格納する（ステップＳ１０１）。なお以下では、ｙ個の、グループの伝送順序を、ｙ個の伝送順序とも記載する。ここでｙは任意の自然数である。
【００６７】
処理部１２は、Ｎ個の伝送順序の各々の評価値を、数８式を用いて算出する（ステップS１０２）。
【００６８】
処理部１２は、ステップＳ１０２における算出の回数が上限値より大きいか否かを判定する（ステップＳ１０３）。この上限値はユーザにより予め入力され、図８に示される「ＳＴＥＰ」に格納されている。
【００６９】
ステップＳ１０３において、ｊの値がＳＴＥＰの値以下である場合には（ステップＳ１０３：ＮＯ）、ｊの値に１が加算される（ステップＳ１０４）。
【００７０】
続いて処理部１２は、次のＮ個の伝送順序を生成する（ステップＳ１０５）。この際において処理部１２はまず、直前のステップＳ１０２において評価値が最小であったグループの伝送順序を選ぶか、又は直前のステップＳ１０２において算出した評価値に基づき１個の伝送順序を選択する。ここで後者の処理について説明する。この処理を以下では「選択」と呼ぶ。
【００７１】
「選択」とは、或る一定の規則に従いＮ個の伝送順序のうちから１個の伝送順序を選ぶ処理である。この規則には、例えば以下のような既知の「ルーレット選択」がある。このルーレット選択では以下のようにして、１個の伝送順序が選択される。まず処理部１２は、Ｎ個の伝送順序の各々の評価値の逆数を、これらの総和により除算する。処理部１２は、この除算により得られた値に基づいて、１個の伝送順序を確率的に選ぶ。この処理を具体的に説明する。３個の伝送順序をここでは考えるものとし、これらの各評価値を１０、７、１１とする。これらの評価値の逆数はそれぞれ１／１０、１／７、１／１１となる。これらの逆数の総和をａ（ａ＝１／１０＋１／７＋１／１１）とおく。これらの３個の評価値の逆数をａで除算したものは、それぞれ｛（１／１０）／ａ｝、｛（１／７）／ａ｝、｛（１／１１）／ａ｝である。これらの値が、３個の伝送順序のいずれが選ばれるかの確率として用いられる。例えば、評価値が１０である、グループの伝送順序が選ばれる確率は｛（１／１０）／ａ｝となる。このように一定の規則に従い、グループの伝送順序が選ばれる処理が選択である。
【００７２】
ステップＳ１０５において処理部１２は、新たに生成するＮ個の伝送順序の中に、ステップＳ１０２において算出された評価値が最小の、グループの伝送順序、又は上記選択の処理により選ばれた１個の伝送順序を含ませる。こうすることにより、前に行われたステップＳ１０２の処理の結果が活かされるからである。本実施形態において処理部１２は、ステップＳ１０５において新たに生成するＮ個の伝送順序の中に、評価値が最小の、グループの伝送順序、又は上記選択の処理により選ばれた１個の伝送順序を含ませるが、これに限定しない。例えば処理部１２は、評価値が最小のグループの伝送順序以外にも、評価値が閾値以下のグループの伝送順序を、新たなＮ個の伝送順序に含ませてもよい。また処理部１２は、選択の処理により複数個の伝送順序を選び、これらを新たなＮ個の伝送順序に含ませてもよい。
【００７３】
なお、ステップＳ１０５においても処理部１２は、Ｎ個の伝送順序を上述した（１）、（２）を満たすように生成する。
【００７４】
処理部１２は、ステップＳ１０５において生成されたＮ個の伝送順序の各々の評価値を、数８式を用いて算出する（ステップS１０２）。
【００７５】
ステップＳ１０３において、ｊの値がＳＴＥＰの値より大きくなった場合には（ステップＳ１０３：ＹＥＳ）、処理部１２は、直前のステップＳ１０２において評価値が最小であったグループの伝送順序を解とする（ステップＳ１０６）。
【００７６】
ここで、ステップＳ１０３の処理に代わり、例えば以下のような判定がなされてもよい。処理部１２は、ステップＳ１０２で得られたＮ個の伝送順序の各評価値が、それよりも前回のステップＳ１０２において得られた各評価値からどれだけ変化したかを算出し、変化が十分小さいか、あるいは変化が小さくなってきたかを判定する。この場合において処理部１２は、変化が十分小さい、又は変化が小さくなってきたものと判定すると、ステップＳ１０６の処理を実行する。
【００７７】
処理部１２は、ステップＳ１０６において解として決定したグループの伝送順序に基づいて、グループ内の各通信装置１で部分鍵の送信がなされるべく、グループ内の他の通信装置１に通信部１１を介して、決定したグループの伝送順序を通知する。グループ内の通信装置１の各々は、当該グループの伝送順序に基づいて、各自の通信部１１を介して部分鍵の送信を行う。
【００７８】
処理部１２は、ステップＳ１００、Ｓ１０５の各々におけるＮ個の伝送順序の生成処理において、既知の遺伝的アルゴリズムの手法である「交叉」や「突然変異」の処理を行ってもよい。交叉と突然変異についての各処理については後述するものとする。本実施形態に係る処理部１２は、ステップＳ１０５において交叉または突然変異の処理を行うものとする。ステップＳ１０５におけるＮ個の伝送順序の生成において処理部１２は、上述した選択、交叉、突然変異の３種類の処理を確率的に実行するものとする。選択、交叉、突然変異の各処理の実行の確率は任意に設定できるが、例えばこれらの各処理の実行の確率を１９％、８０％、１％としてもよく、処理部１２はこれに従いＮ個の伝送順序を生成してもよい。なお、ステップＳ１０５において選択の処理がなされずにＮ個の伝送順序が生成される場合には、処理部１２は、ステップＳ１０２において算出した評価値が、最小の、又はより小さい値の、１以上の、グループの伝送順序を当該Ｎ個の伝送順序に含ませる。
【００７９】
本実施形態において用いられる交叉について以下説明を行う。ここでの交叉とは、ステップＳ１０５の直前のステップＳ１０２において各評価値が算出されたＮ個の伝送順序の中から２個の伝送順序を選び、これら２個の伝送順序の一部を入れ替えた新たな２個の伝送順序を当該ステップＳ１０５で生成する処理をいう。なお、本実施形態におけるグループの伝送順序が遺伝的アルゴリズムにおける遺伝子に対応する。そして、本実施形態におけるステップＳ１０２で各評価値が求められる、グループの伝送順序は、遺伝的アルゴリズムにおいて現世代の遺伝子に対応する。またこのステップＳ１０２の直後のステップＳ１０５において生成される、グループの伝送順序は遺伝的アルゴリズムにおける次世代の遺伝子に対応する。また本実施形態においてｊやＳＴＥＰは、それぞれ世代数とその閾値に対応する。
【００８０】
処理部１２はまず、ステップＳ１０５において、直前のステップＳ１０２において各評価値が算出されたＮ個の伝送順序から２個の伝送順序を選ぶ。次に処理部１２は、２個の伝送順序の中で、どの通信装置１の伝送順序に対し交叉を適用するかを決定する。この決定はランダムに行われてもよい。続いて処理部１２は、交叉の適用の対象となる通信装置１の伝送順序のうち、どの領域において交叉を行うかを決定する。通信装置１の伝送順序のうち交叉が行われる領域を以下では交叉領域と呼ぶ。交叉領域は、通信装置１の伝送順序において先頭からｚ番目までの範囲である。なおｚは、１以上でｎ−２以下の自然数である。またｎは、グループにおける通信装置１の総数である。ｚが１からｎ−２までの自然数である理由については後述する。
【００８１】
図９は、本実施形態における交叉の一例を示す図である。図９において、上の２つの「グループの伝送順序Ａ」、「グループの伝送順序Ｂ」は、それぞれ現世代の「遺伝子Ａ」、「遺伝子Ｂ」に対応する。また図９の下の２つの「グループの伝送順序Ａ」、「グループの伝送順序Ｂ」は、それぞれ次世代の「遺伝子Ａ」、「遺伝子Ｂ」に対応する。これらのグループの伝送順序の各々は第１、２、３、４、５、６の通信装置１の各々の伝送順序をこの順番で組み合わせたものである。
【００８２】
図９を参照しながら処理部１２により実行される交叉について、より具体的に説明する。処理部１２は、図８を参照して説明した上記フローのステップＳ１０５において、この直前のステップＳ１０２で評価値を算出したＮ個の伝送順序の中から、交叉の対象とする２個の伝送順序を選ぶ。ここで処理部１２により選ばれる２個の伝送順序は、「グループの伝送順序Ａ」、「グループの伝送順序Ｂ」であるとする。この２個の伝送順序は現世代の遺伝子に対応する。以下では現世代の遺伝子に対応するグループの伝送順序を現世代の遺伝子とも記載する。同様に次世代の遺伝子に対応するグループの伝送順序を次世代の遺伝子とも記載する。
【００８３】
続いて処理部１２は、現世代の遺伝子のうち、第１の伝送装置１の伝送順序を選ぶ。また処理部１２は、交叉領域をｚ＝２とする。ここで、現世代の遺伝子Ａのうちの第１の通信装置１の伝送順序における交叉領域の数列は「５４」である。また現世代の遺伝子Ｂのうちの第１の通信装置１の伝送順序における交叉領域の数列は「６５」である。処理部１２は、これらの数列を互いに入れ替える。すなわち処理部１２は、次世代の遺伝子Ａの第１の通信装置１の伝送順序における交叉領域の数列の格納領域へ、現世代の遺伝子Ｂの第１の通信装置１の伝送順序における交叉領域の数列「６５」をコピーする。そしてまた処理部１２は、次世代の遺伝子Ｂの第１の通信装置１の伝送順序における交叉領域の数列の格納領域へ、現世代の遺伝子Ａの第１の通信装置１の伝送順序における交叉領域の数列「５４」をコピーする。
【００８４】
処理部１２は、次世代の遺伝子Ａの第１の通信装置１の伝送順序における３番目以降の数字の格納領域、すなわち第１の通信装置１の伝送順序において交叉領域外の数列が格納される領域に、２番目までに格納されている５と６以外の数字を格納する。この数字の順番は、現世代の遺伝子Ａの第１の通信装置１の伝送順序における３番目以降の数列に従う。ここで、次世代の遺伝子Ａの第１の通信装置１の伝送順序における３番目以降の数字として格納されることとなる数字は１、２、３、４であるが、これらの数字は現世代の遺伝子Ａにおいては、４、３、２、１の順番で並んでいる。処理部１２は、これに従って、次世代の遺伝子Ａの第１の通信装置１の伝送順序を６５４３２１とする。次世代の遺伝子Ｂについても同様である。このようにして現世代から次世代の遺伝子を生成する処理が本実施形態における交叉である。
【００８５】
ここで、ｚを１以上かつｎ−２以下の自然数とする理由を説明する。通信装置１の伝送順序の最後の数字は、共通鍵の生成を行う通信装置１を示すものであり、変化させられない。このため、もしｚ＝ｎ又はｎ−１とした交叉領域で２個の伝送順序に対し交叉を行ったとしても、この２個の伝送順序の組み合わせに変化はない。ステップＳ１０５における交叉の処理で生成されるべき次世代の遺伝子は、現世代のものと異なるものであることから、本実施形態ではｚを１以上かつｎ−２の自然数とする。なお、本実施形態においては、ｎは３以上である。なぜならｎはグループ内の通信装置１の総数であるが、ｎが２以下なら伝送順序の決定をしなくともよいからである。
【００８６】
次に、「突然変異」についての説明を行う。ここで説明する「突然変異」の処理は、遺伝的アルゴリズムにおける「交換」であるものとする。処理部１２は、Ｎ個の現世代の遺伝子から１つの遺伝子を一つ選ぶ。そして処理部１２は、この遺伝子において、１つの通信装置１の伝送順序を選ぶ。処理部１２は、当該通信装置１の伝送順序のうち最後の数字を除く数字の中から２つを選び、これら２つの数字を互いに入れ替える。
【００８７】
図１０は、本実施形態における突然変異（交換）の一例を示す図である。図１０を用いて具体的に当該突然変異について説明する。処理部１２は、Ｎ個の現世代の遺伝子のうち遺伝子Ａを選ぶ。そして処理部１２は、現世代の遺伝子Ａのうち第３の通信装置１の伝送順序を選ぶ。処理部１２は、当該第３の通信装置１の伝送順序のうち、さらに２つの数字を選ぶ。ここでの一例においては、処理部１２は、これら２つの数字をランダムに選ぶものとする。ただしこれに限定されない。処理部１２は、上記第３の通信装置１の伝送順序のうち、２番目の数字「２」と５番目の数字「６」を選択し、現世代の遺伝子Ａにおいてこれらを入れ替えたものを次世代の遺伝子Ａとする。
【００８８】
なお、処理部１２は、ステップＳ１０５のおける「突然変異」として、上述した「交換」以外にも、遺伝的アルゴリズムの「突然変異」における既知の手法である逆位、撹拌、転座等を行ってもよい。
【００８９】
処理部１２は、ステップＳ１０５において上述した「選択」、「交叉」、「突然変異」を予めユーザにより決められた確率に基づいて繰り返し行い、生成された遺伝子数が規定のＮ個に到達したら次世代の遺伝子の生成処理を終了する。
【００９０】
なお、「選択」の場合、現世代の遺伝子の１つがＮ個の次世代の遺伝子の中に含まれることになるが、この現世代の遺伝子については「交叉」や「突然変異」の処理が行われなくてよい。また「選択」の実行処理の確率が０％に設定されているときは、処理部１２は、ステップＳ１０２において算出した評価値が最小の現世代の遺伝子をＮ個の次世代の遺伝子に含ませる。直前のステップＳ１０２での結果を活かすためである。
【００９１】
処理部１２は、生成された遺伝子数がＮであるという終了条件を満たすまで、次世代の遺伝子の生成処理を繰り返し行う。
【００９２】
図１１は、本実施形態に係る通信装置１により決定された伝送順序の一例を示す図である。なお、図１１において任意の通信装置１と他の任意の通信装置１とを接続する伝送路における伝送時間は、図４に示されるものと同様であるものとする。
【００９３】
図１１を参照して、通信装置１により決定された伝送順序について具体的に説明を行う。図１１において、例えば第４の通信装置１で部分鍵「４」が生成される。この部分鍵は第３の通信装置１に送信され、第３の通信装置１は、受信した部分鍵「４」と自己の秘密鍵から部分鍵「３４」を生成する。第３の通信装置１は、生成した部分鍵「３４」を第１、２の通信装置１へ伝送する。部分鍵「４」から共通鍵「１２３４」が生成されるまでに部分鍵が伝送される伝送経路は、第３の通信装置１において、第１の通信装置１への伝送経路と第２の通信装置１への伝送経路とに枝分かれしている。このように枝分かれする伝送経路、すなわち１つの通信装置１から複数の通信装置１へ同じ部分鍵が伝送される伝送経路は、図５に一例が示される従来の伝送経路には見られなかった。このように本実施形態に係る通信装置１は、巡回セールスマン問題を解く代わり、上述した評価指標を最小値にするように伝送順序の最適化を行うことにより、枝分かれする伝送経路を選ぶ場合もあることがわかる。図１１において第３の通信装置１により生成された部分鍵「３４」は、１つの通信装置１だけではなく、２つの通信装置（第１、２の通信装置）１による各部分鍵（「１３４」、「２３４」）の生成のために活用される。
【００９４】
また図５に一例が示されるように、従来の部分鍵の伝送順序においてはグループ内の全ての通信装置の各々は、最初に自己の秘密鍵を用い部分鍵の生成を行っている。しかし図１１に一例が示される本実施形態においては、最初に自己の秘密鍵を用いて部分鍵の生成を行う通信装置１はグループ内の全ての通信装置１とは限らない。
【００９５】
これらのことから本実施形態においては、グループ内の通信装置１による鍵生成処理回数は、従来の鍵生成処理回数以下とすることができる。図１１に示す一例では、グループにおける鍵生成処理回数は、数字の入った楕円の個数である１２となることがわかり、これは図５に示す鍵生成処理回数である１６よりも小さいことがわかる。
【００９６】
続いて、図１１に示される伝送順序においての各通信装置１の共通鍵生成時間についての説明を行う。上述したように第ｍの通信装置１の共通鍵生成時間Ｔｍは、第ｍの通信装置１により生成される共通鍵の元となる各部分鍵の伝送時間の総和である。図１１に示されるように、第１の通信装置１により共通鍵「１２３４」が生成されるまでの間に、部分鍵は伝送順序「４→３→２→１」に従い伝送される。図４の各伝送路の伝送時間から、Ｔ１は上記と同様に６となる。同様にして、Ｔ２＝３＋４＋１＝８、Ｔ３＝１＋５＋３＝９、Ｔ４＝１＋２＋３＝６となる。このとき最悪値は、ｗｏｒｓｔ（Ｔ１，Ｔ２，Ｔ３，Ｔ４）＝９となる。
【００９７】
一方、部分鍵が図５に示す伝送順序に従い伝送される場合における最悪値について説明する。この場合も、任意の２つの通信装置の間における部分鍵の伝送時間は、図４に示される。このとき、各通信装置の共通鍵生成時間は、Ｔ１＝２＋３＋６＝１１、Ｔ２＝３＋６＋１＝１０、Ｔ３＝６＋１＋２＝９、Ｔ４＝１＋２＋３＝６となる。このとき最悪値は１１となる。この値に比べ、本実施形態における最悪値のほうが小さいことがわかる。このことより、本実施形態に係る通信装置１によれば共通鍵生成時間の短縮を図ることができることがわかる。具体的に説明すると本実施形態においては、最初に部分鍵が伝送経路上に送信されてから各通信装置１において共通鍵生成のための準備が整うまでに従来よりも短い時間で済むことがわかる。
【００９８】
本実施形態では、１つのグループ内の通信装置１の動作等についての説明を行った。しかし１以上の通信装置１が複数のグループ（この中の任意の２つをグループＡ、グループＢとする）を跨いで存在している場合に、グループＡにおいて生成される部分鍵をグループＢでも活用するほうが鍵生成処理回数の低減につながる場合がある。そのためグループＡ（又はグループＢ）内の通信装置１（又は上位装置）は、例えば、次のようにグループＡ（またはグループＢ）の伝送順序を決定してもよい。通信装置１（又は上位装置）は、グループＡ、Ｂに含まれる１以上の通信装置１をサブグループ化する。そして通信装置１（又は上位装置）は、グループＡ（又はグループＢ）内の少なくとも１つの任意の通信装置１の伝送順序を、サブグループ内の或る通信装置１を始点とするものとし、かつサブグループ内の各通信装置１の番号を連番とする伝送順序とする。このようにすると、当該伝送順序に対応する伝送経路において、サブグループ内の全ての通信装置１の秘密鍵を用い、サブグループ外の通信装置１の秘密鍵を用いない部分鍵が、当該サブグループで最後の順番となる通信装置１により生成される。この部分鍵は、グループＡ、Ｂ内でサブグループ外の通信装置１へと配送される。これにより、サブグループ内の通信装置１による部分鍵の生成処理の回数を減らすことができる。このようなグループの伝送順序の決定は、上述した処理に加え既知の順列計算等により行われることができる。
【００９９】
図１２は、本実施形態に係る通信方法による効果と従来の通信方法による効果の比較例を示す図である。図１２には、グループ内の通信装置１が４つの場合と８つの場合においての効果の比較例がそれぞれ左側のグラフと右側のグラフに示される。ここでは従来の部分鍵の伝送順序を、例えば巡回セールスマン問題を貪欲法により解いて求めたものとする。また効果の比較において、ここでは上記の数８式に示される評価指標を用いるものとする。各通信装置１が部分鍵を受信してから部分鍵や共通鍵の生成を完了するまでの時間等は、その都度変化し得るものであることから、上述した評価指標が実際の共通鍵の生成にかかる時間を推測するための指標として用いられ得るからである。
【０１００】
図１２における、水平方向の線を用いハッチングがされた棒グラフと、斜め方向の線を用いハッチングがされた棒グラフは、それぞれ従来の部分鍵の通信方法を用いた場合の評価値と本実施形態に係る部分鍵の通信方法を用いた場合の評価値を指し示す。また図１２に示す「通信装置の数：４」「通信装置：８」の各グラフにおいて、左側には重み係数ｑを０とした場合の従来と本実施形態における各評価値の大小関係が示される。また同様に、真ん中には重み係数ｐを０とした場合の従来と本実施形態における各評価値の大小関係、右側には重み係数ｐ、ｑのいずれも０以外の値とした場合の従来と本実施形態における各評価値の大小関係が示される。ここで重み係数ｑ＝０の場合の評価指標は共通鍵生成時間に対応し、重み係数ｐ＝０の場合の評価指標は鍵生成処理回数に対応する。
【０１０１】
ここでは、グループ内の通信装置１の数が８つの場合における効果の違いについて説明する。図１２に示されるように本実施形態における共通鍵生成時間は、従来の場合に比べると４％減少することがわかる。同様に、本実施形態における鍵生成処理回数は、従来の場合に比べると３５％減少することがわかる。また評価指標として共通鍵生成時間と鍵生成処理回数のいずれも考慮に入れると、本実施形態における評価値は、従来の場合に比べると２８％減少することがわかる。
【０１０２】
グループ内の通信装置１の数が４つの場合も同様である。なお、従来の通信方法に比べ本実施形態に係る通信方法を用いた場合のほうが、グループにおいて通信装置１の数が多いほど、より少ない鍵生成処理回数で共通鍵の生成を行えることがわかる。これに伴い、従来の通信方法に比べ本実施形態に係る通信方法を用いる場合のほうが、グループにおいて通信装置１の数が多いほど、評価値をより小さい値とすることができることがわかる。
【０１０３】
本実施形態に係る通信装置および通信方法によれば、共通鍵を用いて互いに暗号化通信を行う複数の通信装置１において、共通鍵生成時間の削減と鍵生成の処理負荷の低減を図ることができる。
【０１０４】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態および変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。特許請求の範囲内およびそれと同等の発明の意義の範囲内で施される様々な変形も、本発明の範囲内とみなされる。
【０１０５】
上述の実施形態に関し、さらに以下の付記を開示する。
（付記１）
ＤＨ鍵共有方式により生成した共通鍵を用いて伝送路上で互いに暗号化通信を行う複数の通信装置のうちの少なくとも１つの通信装置であって、
前記複数の通信装置の各々の共通鍵生成時間の最大値と、前記複数の通信装置による鍵生成処理回数の少なくともいずれか一方が、より小さい値となるように伝送順序を決定する処理部と、
前記処理部により決定された前記伝送順序に基づき部分鍵を送信するよう前記複数の通信装置のうちの他の通信装置に指示を送信し、自己が生成した部分鍵を前記決定された伝送順序に基づき送信する通信部と、
を備えることを特徴とする通信装置。
（付記２）
前記処理部は、前記共通鍵生成時間の最大値と前記鍵生成処理回数の少なくともいずれか一方が最小となるように前記伝送順序を決定することを特徴とする付記１に記載の通信装置。
（付記３）
前記処理部は、前記共通鍵生成時間の最大値と前記鍵生成処理回数の和が、より小さい値となるように前記伝送順序を決定することを特徴とする付記１又は２に記載の通信装置。
（付記４）
前記処理部は、前記共通鍵生成時間の最大値と前記鍵生成処理回数の和が最小となるように前記伝送順序を決定することを特徴とする付記１から３のいずれか１つに記載の通信装置。
（付記５）
前記処理部は、前記伝送順序を決定する際において遺伝的アルゴリズムを用いることを特徴とする付記１から４のいずれか１つに記載の通信装置。
（付記６）
前記処理部は、前記伝送順序を決定する際において、前記伝送順序の候補となる全ての順序の各々の共通鍵生成時間と鍵生成処理回数の少なくともいずれか一方の値を用いて、前記伝送順序を決定することを特徴とする付記１から４のいずれか１つに記載の通信装置。
（付記７）
２以上のグループが１以上の前記通信装置を共有する場合において、前記処理部は、前記１以上の通信装置の秘密鍵から生成される部分鍵を、前記１以上のグループの各々の共通鍵の生成のために、前記１以上のグループの各々において共通して伝送できるように前記伝送順序を決定することを特徴とする付記１から６のいずれか１つに記載の通信装置。
（付記８）
ＤＨ鍵共有方式により生成した共通鍵を用いて伝送路上で互いに暗号化通信を行う複数の通信装置のうちの少なくとも１つの通信装置により実行される通信方法であって、
前記複数の通信装置の各々の共通鍵生成時間の最大値と、前記複数の通信装置による鍵生成処理回数の少なくともいずれか一方が、より小さい値となるように伝送順序を決定し、
決定された前記伝送順序に基づき部分鍵を送信するよう前記複数の通信装置のうちの他の通信装置に指示を送信し、自己が生成した部分鍵を前記決定された伝送順序に基づき送信する、
処理を含むことを特徴とする通信方法。
【符号の説明】
【０１０６】
１  通信装置
１０  記憶部
１１  通信部
１２  処理部
２０  プロセッサ
２１  メモリ
２２  記憶装置
２３  ネットワークインタフェース回路
２４  バス
【図１】
2018196056.tif 000011
【図２】
2018196056.tif 000012
【図３】
2018196056.tif 000013
【図４】
2018196056.tif 000014
【図５】
2018196056.tif 000015
【図６】
2018196056.tif 000016
【図７】
2018196056.tif 000017
【図８】
2018196056.tif 000018
【図９】
2018196056.tif 000019
【図１０】
2018196056.tif 000020
【図１１】
2018196056.tif 000021
【図１２】
2018196056.tif 000022