(57)【特許請求の範囲】
【請求項１】
ｎ個の通信装置からなる通信グループ内の全通信装置で暗号通信用の共通鍵を共有するための鍵共有方法であって、
前記通信グループ内の全通信装置で、素数ｑについて「ｑ'＝２ｑ＋１」を満たす素数ｑ'と、この素数ｑ'を法とするガロア体ＧＦ（ｑ'）の原始元αとを共有しており、且つ、前記通信グループ内の各通信装置が、当該装置のみ有する鍵であって前記素数ｑと互いに素である奇数の秘密鍵を有していることを条件として、下記（ａ１）〜（ａ４）の手順で前記共通鍵を共有し、更に、下記（ｄ１）〜（ｄ３）の手順で前記共有鍵を変更することを特徴とする鍵共有方法。
（ａ１）：前記通信グループ内の全通信装置のそれぞれが、下記式（１）から公開データＺiを生成すると共に、この生成した公開データＺiを前記通信グループ内の他の全ての通信装置へブロードキャストする。
（ａ２）：上記（ａ１）の手順の後で、前記通信グループ内の全通信装置のそれぞれが、下記式（２）から公開データＸiを生成すると共に、この生成した公開データＸiを前記通信グループ内の他の全ての通信装置へブロードキャストする。
（ａ３）：上記（ａ２）の手順の後で、前記通信グループ内の全通信装置のそれぞれが、下記式（３）から公開データＹiを生成すると共に、この生成した公開データＹiを前記通信グループ内の他の全ての通信装置へブロードキャストする。
（ａ４）：上記（ａ２）の手順の後で、前記通信グループ内の全通信装置のそれぞれが、下記式（４）から共通鍵Ｋを生成する。
（ｄ１）：まず、通信グループ内の任意の一つの通信装置Ｐmが、既に有している秘密鍵Ｎmとは別に、当該装置Ｐmのみが有する秘密鍵Ｍmを新たに生成する。そして、この秘密鍵Ｍmと、当該装置Ｐmが有している公開データＹ1〜Ｙnとを用いて、下記式（１３）から公開データＸ1'〜Ｘn'を算出すると共に、この秘密鍵Ｍmと、ｎ個の通信装置Ｐ1〜Ｐnで現在共有している共通鍵Ｋと用いて、下記式（１４）から公開データＹn+1'を算出し、これらの公開データＸ1'〜Ｘn'及びＹn+1'を、通信装置Ｐn+1へ送信する。
（ｄ２）：次に、通信装置Ｐn+1が、当該装置Ｐn+1のみが有する秘密鍵Ｎn+1を生成し、この秘密鍵Ｎn+1と、受信した公開データＸ1'〜Ｘn'とを用いて、下記式（１５）から公開データＹ1'〜Ｙn'を算出する。そして、公開データＹ1'〜Ｙn+1'を、通信グループ内の全通信装置Ｐ1〜Ｐnへブロードキャストする。
（ｄ３）：最後に、（ｎ＋１）個の各通信装置Ｐ1〜Ｐn+1において、ｉ番目（ｉ＝１，２，…，ｎ＋１）の通信装置Ｐiが、下記式（１６）から共通鍵Ｋ'を生成する。
【数１】
0003868313.tif 000007
【請求項２】
他の通信装置と共通鍵を共有して暗号通信を行う通信装置であって、
ｎ個の通信装置からなる通信グループ内の全通信装置で前記共通鍵を共有するために、前記通信グループ内の全通信装置で共有する値として、素数ｑについて「ｑ'＝２ｑ＋１」を満たす素数ｑ'と、この素数ｑ'を法とするガロア体ＧＦ（ｑ'）の原始元αとを用い、且つ、当該装置のみが有する値として、前記素数ｑと互いに素である奇数の秘密鍵を用いて、下記（ｂ１）〜（ｂ４）の処理を行うことにより前記共通鍵を共有し、更に、下記（ｄ１）〜（ｄ３）の手順で前記共有鍵を変更するように構成されていることを特徴とする通信装置。
（ｂ１）：下記式（１）から公開データＺiを生成すると共に、この生成した公開データＺiを前記通信グループ内の他の全ての通信装置へブロードキャストし、更に、前記通信グループ内の他の全ての通信装置により同様に生成されてブロードキャストされる公開データを受信する処理。
（ｂ２）：上記（ｂ１）の処理にて他の通信装置から受信した公開データを用いて、下記式（２）から公開データＸiを生成すると共に、この生成した公開データＸiを前記通信グループ内の他の全ての通信装置へブロードキャストし、更に、前記通信グループ内の他の全ての通信装置により同様に生成されてブロードキャストされる公開データを受信する処理。
（ｂ３）：上記（ｂ１）及び（ｂ２）の処理にて他の通信装置から受信した公開データを用いて、下記式（３）から公開データＹiを生成すると共に、この生成した公開データＹiを前記通信グループ内の他の全ての通信装置へブロードキャストし、更に、前記通信グループ内の他の全ての通信装置により同様に生成されてブロードキャストされる公開データを受信する処理。
（ｂ４）：上記（ｂ１）及び（ｂ２）の処理にて他の通信装置から受信した公開データを用いて、下記式（４）から共通鍵Ｋを生成する処理。
（ｄ１）：まず、通信グループ内の任意の一つの通信装置Ｐmが、既に有している秘密鍵Ｎmとは別に、当該装置Ｐmのみが有する秘密鍵Ｍmを新たに生成する。そして、この秘密鍵Ｍmと、当該装置Ｐmが有している公開データＹ1〜Ｙnとを用いて、下記式（１３）から公開データＸ1'〜Ｘn'を算出すると共に、この秘密鍵Ｍmと、ｎ個の通信装置Ｐ1〜Ｐnで現在共有している共通鍵Ｋと用いて、下記式（１４）から公開データＹn+1'を算出し、これらの公開データＸ1'〜Ｘn'及びＹn+1'を、通信装置Ｐn+1へ送信する。
（ｄ２）：次に、通信装置Ｐn+1が、当該装置Ｐn+1のみが有する秘密鍵Ｎn+1を生成し、この秘密鍵Ｎn+1と、受信した公開データＸ1'〜Ｘn'とを用いて、下記式（１５）から公開データＹ1'〜Ｙn'を算出する。そして、公開データＹ1'〜Ｙn+1'を、通信グループ内の全通信装置Ｐ1〜Ｐnへブロードキャストする。
（ｄ３）：最後に、（ｎ＋１）個の各通信装置Ｐ1〜Ｐn+1において、ｉ番目（ｉ＝１，２，…，ｎ＋１）の通信装置Ｐiが、下記式（１６）から共通鍵Ｋ'を生成する。
【数２】
0003868313.tif 000008
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の通信装置で暗号通信用の共通鍵を安全に共有するための技術に関するものである。
【０００２】
【従来の技術】
従来より、２つの通信装置（ピア）で暗号通信用の共通鍵を共有するためのＩＫＡ（Initial Key Agreement）プロトコルとして、Diffie-Hellmanプロトコルが知られている。尚、暗号通信用の共通鍵を共有するためのプロトコルは、複数の通信装置で最初に共通鍵を共有する際に使われるＩＫＡプロトコルと、共通鍵を共有している複数の通信装置からなるグループが既に存在している場合に、そのグループへの新たな通信装置の追加や、そのグループからの通信装置の削除、また、共通鍵の更新といった操作を行う際に使われるＡＫＡ（Auxiliary Key Agreement）プロトコルとの２つに大別される。
【０００３】
ここで、Diffie-Hellmanプロトコルの内容について簡単に説明する。
図５に示すように、このプロトコルでは、前提条件として、２つの通信装置Ｐ1，Ｐ2が、１０２４ビット程度の大きな素数ｑと、この素数ｑを法とするガロア体ＧＦ（ｑ）の原始元αとを予め共有している。尚、これらのデータは、第三者に公開しても何ら問題がないため、例えば、２つの通信装置Ｐ1，Ｐ2間で通信により共有されるようにしてもよい。
【０００４】
そして、このプロトコルでは、まず、一方の通信装置Ｐ1が、乱数を発生させて、この値を当該装置Ｐ1のみが有する非公開の秘密鍵Ｎ1とし（即ち、秘密鍵Ｎ1を生成し）、下記式（５）から公開データＺ1を算出して、この算出した公開データＺ1を通信装置Ｐ2へユニキャストする。同様に、他方の通信装置Ｐ2も、当該装置Ｐ2のみが有する秘密鍵Ｎ2を生成し、下記式（６）から公開データＺ2を算出して、この算出した公開データＺ2を通信装置Ｐ1へユニキャストする。つまり、２つの通信装置Ｐ1，Ｐ2間で、それぞれの秘密鍵Ｎ1，Ｎ2を用いて生成した公開データＺ1，Ｚ2を交換するようになっている。
【０００５】
次に、通信装置Ｐ1は、通信装置Ｐ2から送られてきた公開データＺ2を用いて、下記式（７）から共通鍵Ｋを算出する。同様に、通信装置Ｐ2も、通信装置Ｐ1から送られてきた公開データＺ1を用いて、下記式（８）から共通鍵Ｋを算出する。ここで、各通信装置Ｐ1，Ｐ2にて算出された共通鍵Ｋは同じ値となるため、２つの通信装置Ｐ1，Ｐ2で共通鍵Ｋが共有されたことになる。また、素数ｑとして１０２４ビット程度の大きな値を用いていることで、第三者が公開データＺ1，Ｚ2から各通信装置Ｐ1，Ｐ2の秘密鍵Ｎ1，Ｎ2を求めることは計算量的に困難となるため、通信装置Ｐ1，Ｐ2間でのみ秘密の共通鍵Ｋを安全に共有することができる。
【０００６】
【数３】
0003868313.tif 000002
【０００７】
ところで、「M.Burmester and Y.Desmedt,A secure and effcient conference key distribution system, in Advances in Cryptology EUROCRYPT '94,1994.」には、上記Diffie-Hellmanプロトコルを応用したBurmester-Desmedtプロトコル（以下、Ｂ−Ｄプロトコルという）が開示されている。このＢ−Ｄプロトコルは、３つ以上の通信装置で暗号通信用の共通鍵を共有することを可能とするものである。
【０００８】
ここで、このＢ−Ｄプロトコルの内容について簡単に説明する。尚、このＢ−Ｄプロトコルにおいても、前述したDiffie-Hellmanプロトコルの場合と同様に、前提条件として、暗号通信用の共通鍵を共有しようとする全ての通信装置が、素数ｑと、この素数ｑを法とするガロア体ＧＦ（ｑ）の原始元αとを共有している。
【０００９】
このプロトコルでは、下記の（ｃ１）〜（ｃ３）の手順に従い、ｎ個の通信装置Ｐ1〜Ｐnからなる通信グループ内の全通信装置で暗号通信用の共通鍵を共有する。
（ｃ１）：ｎ個の各通信装置において、ｉ番目（ｉ＝１，２，…，ｎ）の通信装置Ｐiが、前述したDiffie-Hellmanプロトコルの場合と同様に当該装置Ｐiのみが有する秘密鍵Ｎiを生成し、下記式（９）から公開データＺiを算出して、この算出した公開データＺiを通信グループ内の他の全ての通信装置へブロードキャストする。
【００１０】
（ｃ２）：ｎ個の各通信装置において、ｉ番目の通信装置Ｐiが、下記式（１０）から公開データＸiを算出して、この算出した公開データＸiを通信グループ内の他の全ての通信装置へブロードキャストする。
（ｃ３）：ｎ個の各通信装置において、ｉ番目の通信装置Ｐiが、下記式（１１）から共通鍵Ｋを求める。
【００１１】
こうした手順を踏むことにより、ｎ個の通信装置で共通鍵Ｋを共有することができる。
【００１２】
【数４】
0003868313.tif 000003
【００１３】
以上説明したＢ−Ｄプロトコルは、共通鍵を共有するために必要な通信装置全体での計算量を少なくする効果が高い。各通信装置が２回のブロードキャストを行うだけで、公開データの交換が完了するからである。
【００１４】
【発明が解決しようとする課題】
しかしながら、上記Ｂ−Ｄプロトコルは、その鍵の形によりＡＫＡプロトコルには適しておらず、通信グループ内の全通信装置で共通鍵を共有した後で、その通信グループを構成する通信装置の追加や削除、また共通鍵の更新といった操作を行うためにその共通鍵を変更する必要が生じた場合に、既に共有している共通鍵や公開データを利用して新たな共通鍵を生成することが困難であるため、共通鍵を最初から作り直さなければならなかった。
【００１５】
本発明は、こうした問題に鑑みなされたものであり、複数の通信装置で共有した暗号通信用の共通鍵の変更を容易に行うことができるようにすることを目的としている。
【００１６】
【課題を解決するための手段及び発明の効果】
上記目的を達成するためになされた請求項１に記載の鍵共有方法は、ｎ個の通信装置からなる通信グループ内の全通信装置で暗号通信用の共通鍵を共有するためのものである。そして、この鍵共有方法では、通信グループ内の全通信装置で、素数ｑについて「ｑ'＝２ｑ＋１」を満たす素数ｑ'と、この素数ｑ'を法とするガロア体ＧＦ（ｑ'）の原始元αとを共有しており、且つ、通信グループ内の各通信装置が、当該装置のみ有する鍵であって素数ｑと互いに素である奇数の秘密鍵Ｎiを有していることを条件として、下記（ａ１）〜（ａ４）の手順で共通鍵を共有し、更に、下記（ｄ１）〜（ｄ３）の手順で共有鍵を変更することを特徴としている。尚、秘密鍵Ｎiの値を素数ｑと互いに素である奇数に限っているのは、素数ｑ'を法とするＮiの乗法的逆元が存在するようにするためである。
【００１７】
（ａ１）：通信グループ内の全通信装置のそれぞれが、下記式（１）から公開データＺiを生成すると共に、この生成した公開データＺiを通信グループ内の他の全ての通信装置へブロードキャストする。
（ａ２）：上記（ａ１）の手順の後で、通信グループ内の全通信装置のそれぞれが、下記式（２）から公開データＸiを生成すると共に、この生成した公開データＸiを通信グループ内の他の全ての通信装置へブロードキャストする。
【００１８】
（ａ３）：上記（ａ２）の手順の後で、通信グループ内の全通信装置のそれぞれが、下記式（３）から公開データＹiを生成すると共に、この生成した公開データＹiを通信グループ内の他の全ての通信装置へブロードキャストする。
（ａ４）：上記（ａ２）の手順の後で、通信グループ内の全通信装置のそれぞれが、下記式（４）から共通鍵Ｋを生成する。
【００１９】
尚、上記（ａ３）の手順と（ａ４）の手順とは、何れが先に行われてもよい。
【００２０】
【数５】
0003868313.tif 000004
【００２１】
つまり、請求項１の鍵共有方法では、従来技術として示したＢ−Ｄプロトコルの鍵共有手順に加え、更に、上記（ａ３）の手順として、通信グループ内の各通信装置が公開データＹiをブロードキャストするようになっている。ここで、共通鍵Ｋは、下記式（１２）のようにも表されることから明らかなように、この公開データＹiに対し、ｉ番目の通信装置の秘密鍵Ｎiをべき乗して素数ｑ’でモジュロを取ることにより生成することができる。言い換えれば、通信グループ内の全通信装置のそれぞれにおいて、ｉ番目の通信装置が、この公開データＹiに対し、秘密鍵Ｎiを用いた所定の演算処理を施せば、全通信装置で共通のデータを得ることができる。
【００２２】
【数６】
0003868313.tif 000005
【００２３】
このような請求項１の鍵共有方法によれば、通信グループ内の全通信装置で、この通信グループ内の全通信装置に関する公開データＹ1〜Ｙnが共有されるため、共通鍵Ｋの変更を容易に行うことができるようになる。
即ち、例えば、上記（ａ１）〜（ａ４）の手順に従い共通鍵Ｋを既に共有しているｎ個の通信装置Ｐ1〜Ｐnからなる通信グループに、新たな通信装置Ｐn+1を追加する場合には、下記の（ｄ１）〜（ｄ３）の手順に従い共通鍵Ｋを変更することができる。
【００２４】
（ｄ１）：まず、通信グループ内の任意の一つの通信装置Ｐmが、既に有している秘密鍵Ｎmとは別に、当該装置Ｐmのみが有する秘密鍵Ｍmを新たに生成する。そして、この秘密鍵Ｍmと、当該装置Ｐmが有している公開データＹ1〜Ｙnとを用いて、下記式（１３）から公開データＸ1’〜Ｘn’を算出すると共に、この秘密鍵Ｍmと、ｎ個の通信装置Ｐ1〜Ｐnで現在共有している共通鍵Ｋと用いて、下記式（１４）から公開データＹn+1’を算出し、これらの公開データＸ1’〜Ｘn’及びＹn+1’を、通信装置Ｐn+1へ送信する。
【００２５】
（ｄ２）：次に、通信装置Ｐn+1が、当該装置Ｐn+1のみが有する秘密鍵Ｎn+1を生成し、この秘密鍵Ｎn+1と、受信した公開データＸ1’〜Ｘn’とを用いて、下記式（１５）から公開データＹ1’〜Ｙn’を算出する。そして、公開データＹ1’〜Ｙn+1’を、通信グループ内の全通信装置Ｐ1〜Ｐnへブロードキャストする。
【００２６】
（ｄ３）：最後に、（ｎ＋１）個の各通信装置Ｐ1〜Ｐn+1において、ｉ番目（ｉ＝１，２，…，ｎ＋１）の通信装置Ｐiが、下記式（１６）から共通鍵Ｋ’を生成する。
【００２７】
【数７】
0003868313.tif 000006
【００２８】
このように、既に共有している公開データＹ1〜Ｙn及び共通鍵Ｋを利用して新たな共通鍵Ｋ’を容易に生成することができる。このため、共通鍵を最初から作り直す必要が無く、通信グループ内の任意の通信装置Ｐm以外の他の通信装置は、公開データの生成及び送信を行う必要がない。
【００２９】
次に、請求項２に記載の通信装置は、他の通信装置と共通鍵を共有して暗号通信を行うものである。そして、本装置では、ｎ個の通信装置からなる通信グループ内の全通信装置で共通鍵を共有するために、通信グループ内の全通信装置で共有する値として、素数ｑについて「ｑ'＝２ｑ＋１」を満たす素数ｑ'と、この素数ｑ'を法とするガロア体ＧＦ（ｑ'）の原始元αとを用い、且つ、当該装置のみが有する値として、素数ｑと互いに素である奇数の秘密鍵Ｎiを用いて、下記（ｂ１）〜（ｂ４）の処理を行うことにより共通鍵を共有し、更に、上記（ｄ１）〜（ｄ３）の手順で共有鍵を変更するように構成されていることを特徴としている。尚、秘密鍵Ｎiの値を素数ｑと互いに素である奇数に限っているのは、請求項１の場合と同様に、素数ｑ'を法とするＮiの乗法的逆元が存在するようにするためである。
【００３０】
（ｂ１）：上記式（１）から公開データＺiを生成すると共に、この生成した公開データＺiを通信グループ内の他の全ての通信装置へブロードキャストし、更に、通信グループ内の他の全ての通信装置により同様に生成されてブロードキャストされる公開データを受信する処理。
【００３１】
（ｂ２）：上記（ｂ１）の処理にて他の通信装置から受信した公開データを用いて、上記式（２）から公開データＸiを生成すると共に、この生成した公開データＸiを通信グループ内の他の全ての通信装置へブロードキャストし、更に、通信グループ内の他の全ての通信装置により同様に生成されてブロードキャストされる公開データを受信する処理。
【００３２】
（ｂ３）：上記（ｂ１）及び（ｂ２）の処理にて他の通信装置から受信した公開データを用いて、上記式（３）から公開データＹiを生成すると共に、この生成した公開データＹiを通信グループ内の他の全ての通信装置へブロードキャストし、更に、通信グループ内の他の全ての通信装置により同様に生成されてブロードキャストされる公開データを受信する処理。
【００３３】
（ｂ４）：上記（ｂ１）及び（ｂ２）の処理にて他の通信装置から受信した公開データを用いて、上記式（４）から共通鍵Ｋを生成する処理。
尚、上記（ｂ３）の処理と（ｂ４）の処理とは、何れが先に行われてもよい。このような請求項５の通信装置を用いれば、当該装置と同様の機能を有する他の通信装置との間で、上記請求項１の鍵共有方法を実施して共通鍵を共有することができる。
【００３４】
【発明の実施の形態】
以下、本発明が適用された実施形態の通信装置としての携帯電話装置について、図面を用いて説明する。
まず図１は、本実施形態の携帯電話装置１０の構成を表すブロック図である。
【００３５】
この携帯電話装置１０は、送受信部１２、ＣＰＵ１４、ＲＡＭ１６、ＲＯＭ１８及びデータの書き換えが可能な不揮発性メモリ２０を備えている。
送受信部１２は、他の携帯電話装置とデータを送受信するための無線通信を行う。
【００３６】
また、不揮発性メモリ２０には、複数の携帯電話装置で共通鍵を共有する鍵共有処理をＣＰＵ１４に行わせるためのプログラムが記憶されている。また、この鍵共有処理に用いられるパラメータとして、素数ｑと、この素数ｑについて「ｑ’＝２ｑ＋１」を満たす素数ｑ’と、この素数ｑ’を法とするガロア体ＧＦ（ｑ’）の原始元αとが記憶されており、これらのデータは、共通鍵を共有しようとする全ての携帯電話装置で予め共有されている。尚、これらのデータは、第三者に公開しても何ら支障がないため、通信により共有されるようにしてもよい。
【００３７】
ここで、上記プログラムに従いＣＰＵ１４が行う鍵共有処理について、図２のフローチャートを用いて説明する。尚、本鍵共有処理は、他の携帯電話装置との間で共通鍵の共有を行う旨の合意がされた場合に開始される。
この鍵共有処理が開始されると、まず、Ｓ１００にて、共通鍵を共有しようとする携帯電話装置の台数ｎと、そのｎ台の携帯電話装置からなる通信グループ内における当該装置１０の順位ｉ（ｉ＝１，２，…，ｎ）とを、送受信部１２を介して取得する。尚、この順位ｉは、通信グループ内で単に各携帯電話装置を識別するためのものであり、例えば、通信グループ内の携帯電話装置のうちの一つにより、他の全ての携帯電話装置に一括して付与されるようにすればよい。
【００３８】
そして、Ｓ１１０では、不揮発性メモリ２０に記憶されている素数ｑと互いに素である奇数の値であって、当該装置１０のみが有する非公開の値である秘密鍵Ｎiを生成する。具体的には、不揮発性メモリ２０に記憶されている素数ｑ’の範囲内で素数ｑと互いに素である奇数の乱数を発生させ、この値を秘密鍵Ｎiとして、不揮発性メモリ２０に記憶させる。
【００３９】
次いで、Ｓ１２０では、不揮発性メモリ２０に記憶されている原始元αに対し当該装置の秘密鍵Ｎiを用いた演算処理を施して公開データＺiを生成（具体的には、上記式（１）から算出）する。
続いて、Ｓ１３０では、通信グループ内の他の全ての携帯電話装置へ、Ｓ１２０にて生成した公開データＺiを送受信部１２を介してブロードキャストする。
【００４０】
そして、Ｓ１４０では、送受信部１２により、通信グループ内の他の全ての携帯電話装置によって同様に生成されてブロードキャストされる公開データが受信されたか否かを判定する。尚、この判定処理は、他の携帯電話装置からの公開データが全て受信されたと判定するまで繰り返される。また、Ｓ１２０〜Ｓ１４０の処理が、上記（ｂ１）の処理に相当する。
【００４１】
このＳ１４０で、公開データが全て受信されたと判定すると、Ｓ１５０へ移行して、公開データＸiを生成（具体的には、上記式（２）から算出）する。
続いて、Ｓ１６０では、通信グループ内の他の全ての携帯電話装置へ、Ｓ１５０にて生成した公開データＸiを、送受信部１２を介してブロードキャストする。
【００４２】
そして、Ｓ１７０では、送受信部１２により、通信グループ内の他の全ての携帯電話装置によって同様に生成されてブロードキャストされる公開データが受信されたか否かを判定する。尚、この判定処理も、Ｓ１４０の処理と同様に、他の携帯電話装置からの公開データが全て受信されたと判定するまで繰り返される。また、Ｓ１５０〜Ｓ１７０の処理が、上記（ｂ２）の処理に相当する。
【００４３】
このＳ１７０で、公開データが全て受信されたと判定すると、Ｓ１８０へ移行して、公開データＹiを生成（具体的には、上記式（３）から算出）する。
続いて、Ｓ１９０では、通信グループ内の他の全ての携帯電話装置へ、Ｓ１８０にて生成した公開データＹiを、送受信部１２を介してブロードキャストする。
【００４４】
そして、Ｓ２００では、送受信部１２により、通信グループ内の他の全ての携帯電話装置によって同様に生成されてブロードキャストされる公開データが受信されたか否かを判定する。尚、この判定処理も、Ｓ１４０，Ｓ１７０の処理と同様に、他の携帯電話装置からの公開データが全て受信されたと判定するまで繰り返される。また、Ｓ１８０〜Ｓ２００の処理が、上記（ｂ３）の処理に相当する。
【００４５】
このＳ２００で、公開データが全て受信されたと判定すると、Ｓ２１０へ移行し、共通鍵Ｋを生成（具体的には、上記式（４）又は式（１２）から算出）して、本鍵共有処理を終了する。尚、本鍵共有処理では、Ｓ２１０の処理を上記Ｓ２００で公開データが受信されたと判定した後で行うようにしているが、これに限ったものではなく、上記Ｓ１７０で公開データが受信されたと判定した後であればいつでも行うことができる。また、Ｓ２１０の処理が、上記（ｂ４）の処理に相当する。
【００４６】
次に、具体例として、共通鍵を共有しようとする携帯電話装置の台数ｎ＝４の場合に、各携帯電話装置が上記鍵共有処理を行うことによる作用について、図３を用いて説明する。
まず、４台の携帯電話装置Ｐ1〜Ｐ4で共通鍵の共有を行う旨の合意がされると、各携帯電話装置は、共通鍵を共有しようとする全ての携帯電話装置の台数（４台）と、この４台の携帯電話装置からなる通信グループ内における当該装置の順位ｉ（ｉ＝１，２，３，４）とを取得する（Ｓ１００）。そして、各携帯電話装置Ｐiは、記憶している素数ｑと互いに素である奇数の値であって当該装置のみが有する非公開の秘密鍵Ｎiを生成する（Ｓ１１０）。
【００４７】
そして、第１段階として、各携帯電話装置Ｐiは、公開データＺiを生成し（Ｓ１２０）、この生成した公開データＺiを、通信グループ内の他の全ての携帯電話装置へブロードキャストする（Ｓ１３０）。また、各携帯電話装置Ｐiは、通信グループ内の他の全ての携帯電話装置のそれぞれから同様にブロードキャストされる公開データを受信する（Ｓ１４０）。これにより、各携帯電話装置Ｐiは、通信グループ内の全携帯電話装置Ｐ1〜Ｐ4のそれぞれで生成された公開データＺ1〜Ｚ4を全て有することとなる。
【００４８】
続いて、第２段階として、各携帯電話装置Ｐiは、公開データＸiを生成し（Ｓ１５０）、この生成した公開データＸiを、通信グループ内の他の全ての携帯電話装置へブロードキャストする（Ｓ１６０）。また、各携帯電話装置Ｐiは、通信グループ内の他の全ての携帯電話装置のそれぞれから同様にブロードキャストされる公開データを受信する（Ｓ１７０）。これにより、各携帯電話装置Ｐiは、通信グループ内の携帯電話装置Ｐ1〜Ｐ4のそれぞれで生成された公開データＸ1〜Ｘ4を全て有することとなる。
【００４９】
続いて、第３段階として、各携帯電話装置Ｐiは、公開データＹiを生成し（Ｓ１８０）、この生成した公開データＹiを、通信グループ内の他の全ての携帯電話装置へブロードキャストする（Ｓ１９０）。また、各携帯電話装置Ｐiは、通信グループ内の他の全ての携帯電話装置のそれぞれから同様にブロードキャストされる公開データを受信する（Ｓ２００）。これにより、各携帯電話装置Ｐiは、通信グループ内の携帯電話装置Ｐ1〜Ｐ4のそれぞれで生成された公開データＹ1〜Ｙ4を全て有することとなる。尚、これらの公開データＹ1〜Ｙ4は、ここで説明している共通鍵の生成には直接必要の無いデータである。
【００５０】
最後に、第４段階として、各携帯電話装置Ｐiは、共通鍵Ｋを生成する（Ｓ２１０）。こうして、４台の携帯電話装置Ｐ1〜Ｐ4で共通鍵Ｋが共有される。
次に、このように共通鍵Ｋを共有した４台の携帯電話装置Ｐ1〜Ｐ4からなる通信グループに、新たな携帯電話装置Ｐ5を追加する場合の作用について、図４を用いて説明する。尚、ここで説明する手法自体は、従来から行われているものである。
【００５１】
まず、通信グループに加わろうとしている携帯電話装置Ｐ5が、通信グループ内の任意の一つの携帯電話装置Ｐm（ここでは、ｍ＝４として説明する）に対してその旨の要求をする。すると、この要求を受けた携帯電話装置Ｐ4が、既に有している秘密鍵Ｎ4とは別に、当該装置のみが有する非公開の秘密鍵Ｍ4を新たに生成する。
【００５２】
そして、第１段階として、携帯電話装置Ｐ4は、記憶している公開データＹ1〜Ｙ4のそれぞれに対し、新たに生成した当該装置Ｐ4の秘密鍵Ｍ4を用いた演算処理を施して公開データＸ1’〜Ｘ4’を生成（具体的には、上記式（１３）から算出）する。また、記憶している共通鍵Ｋに対しても同様に、秘密鍵Ｍ4を用いた演算処理を施して公開データＹ5’を生成（上記式（１４）から算出）する。そして、生成したこれらの公開データＸ1’〜Ｘ4’及びＹ5’を、携帯電話装置Ｐ5へユニキャストする。
【００５３】
続いて、第２段階として、携帯電話装置Ｐ5は、当該装置Ｐ5のみが有する非公開の秘密鍵Ｎ5を生成する。そして、携帯電話装置Ｐ4から受信した公開データＸ1’〜Ｘ4’のそれぞれに対し、当該装置Ｐ5の秘密鍵Ｎ5を用いた演算処理を施して公開データＹ1’〜Ｙ5’を生成（上記式（１５）から算出）する。そして更に、生成したこれらの公開データＹ1’〜Ｙ4’と、携帯電話装置Ｐ4から受信した公開データＹ5’とを、通信グループ内の全ての携帯電話装置Ｐ1〜Ｐ4へブロードキャストする。これにより、５台の全ての携帯電話装置Ｐ1〜Ｐ5のそれぞれが、公開データＹ1’〜Ｙ5’を有することとなる。
【００５４】
最後に、第３段階として、５台の各携帯電話装置Ｐiは、公開データＹi’と当該装置Ｐiの秘密鍵Ｎiとを用いて共通鍵Ｋ’を生成（上記式（１６）から算出）する。こうして、５台の携帯電話装置Ｐ1〜Ｐ5で共通鍵Ｋ’が共有される。
このような本実施形態の携帯電話装置１０により実施される共通鍵共有方法によれば、従来技術として示したＢ−Ｄプロトコルの手順に加え、公開データＹiのブロードキャストを余分に１回行うだけで、その共通鍵Ｋを変更する必要が生じた場合に、その公開データＹiを用いて秘匿性を確保しつつ新たな共通鍵Ｋ’を容易に生成できるようにすることができる。このため、共通鍵を変更しようとした場合にわざわざ最初から共通鍵を作り直す必要がない。
【００５５】
以上、本発明の一実施形態について説明したが、本発明は、種々の形態を採り得ることは言うまでもない。例えば、上記実施形態では、通信装置として携帯電話装置を例に挙げて説明したが、これ以外の通信装置であってもよい。
【図面の簡単な説明】
【図１】  実施形態の携帯電話装置の構成を表すブロック図である。
【図２】  鍵共有処理を表すフローチャートである。
【図３】  本発明の鍵共有方法を説明するための説明図である。
【図４】  共通鍵の変更方法を説明するための説明図である。
【図５】  Diffie-Hellmanプロトコルの内容を説明するための説明図である。
【符号の説明】
１０…携帯電話装置、１２…送受信部、１４…ＣＰＵ、１６…ＲＡＭ、１８…ＲＯＭ、２０…不揮発性メモリ
【図１】
0003868313.tif 000009
【図２】
0003868313.tif 000010
【図３】
0003868313.tif 000011
【図４】
0003868313.tif 000012
【図５】
0003868313.tif 000013