(57)【要約】【課題】共通鍵を安全に端末間で持つために、共通鍵自体を送信交換することなく、通信することを目的とする。【解決手段】データを送受信する通信手段と、通信手段による通信時の通信相手との距離を測定する距離測定手段と、距離測定手段によって測定された距離情報に基づいて共通鍵を生成する共通鍵生成手段と、共通鍵生成手段によって生成された共通鍵を用いて通信するデータの暗号化を行う暗号化手段と、暗号化手段によって暗号化された暗号化データを通信相手へと送信する送信手段と、を備える。【選択図】図６
2010187231.tif 000002
【特許請求の範囲】
【請求項１】
データを送受信する通信手段と、
前記通信手段による通信時の通信相手との距離を測定する距離測定手段と、
前記距離測定手段によって測定された距離情報に基づいて共通鍵を生成する共通鍵生成手段と、
前記共通鍵生成手段によって生成された前記共通鍵を用いて通信するデータの暗号化を行う暗号化手段と、
前記暗号化手段によって暗号化された暗号化データを前記通信相手へと送信する送信手段と、
を備えることを特徴とする通信装置。
【請求項２】
前記送信手段によって送信された前記暗号化データを前記共通鍵を用いて復号化する復号化手段を有することを特徴とする請求項１に記載の通信装置
【請求項３】
前記距離測定手段は、通信時の時間を測定する時間測定手段を有し、
前記共通鍵生成手段は、前記距離情報と前記時間測定手段による測定時間に基づいて前記共通鍵を生成することを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記距離測定手段によって測定された前記距離情報に距離測定誤差を含ませないために測定データをマスクしたマスクデータを作成するデータマスク手段を有し、
前記データマスク手段によって作成された前記マスクデータに基づいて共通鍵を生成することを特徴とする請求項１から３のいずれか１項に記載の通信装置。
【請求項５】
前記共通鍵生成手段によって生成された前記共通鍵が前記通信相手と同一であるかを確認する共通鍵確認手段を有し、
前記共通鍵確認手段によって前記共通鍵が同一でないことが確認された場合は前記データマスク手段によって作成された前記マスクデータに基づいて前記共通鍵を生成することを特徴とする請求項４に記載の通信装置。
【請求項６】
前記距離測定手段によって測定した前記距離情報を複数回記憶する距離情報記憶手段を有し、
前記距離情報記憶手段に記憶された複数の距離情報に基づいて前記共通鍵を生成することを特徴とする請求項１から５のいずれか１項に記載の通信装置。
【請求項７】
前記距離情報記憶手段によって記憶された前記複数の距離情報の分布の偏りを判断して偏りの少ない距離情報を選択する距離情報選択手段を有し、
前記距離情報選択手段によって選択された距離情報に基づいて前記共通鍵を生成することを特徴とする請求項６に記載の通信装置。
【請求項８】
複数の通信装置を備える通信システムであって、
前記通信装置は、他の通信装置と通信を行う通信手段と、
前記通信手段による通信時の前記他の通信装置との距離を測定する距離測定手段と、
前記距離測定手段によって測定された距離情報に基づいて共通鍵を生成する共通鍵生成手段と、
前記共通鍵生成手段によって生成された前記共通鍵を用いて通信するデータの暗号化を行う暗号化手段と、
前記暗号化手段によって暗号化された暗号化データを前記他の通信装置へと送信する送信手段と、を有し、
前記他の通信装置は、前記送信手段によって送信された前記暗号化データを前記共通鍵を用いて復号化する復号化手段を有することを特徴とする通信システム。
【請求項９】
データを送受信する通信ステップと、
前記通信ステップによる通信時の通信相手との距離を測定する距離測定ステップと、
前記距離測定ステップによって測定された距離情報に基づいて共通鍵を生成する共通鍵生成ステップと、
前記共通鍵生成ステップによって生成された前記共通鍵を用いて通信するデータの暗号化を行う暗号化ステップと、
前記暗号化ステップによって暗号化された暗号化データを前記通信相手へと送信する送信ステップと、を備えることを特徴とする通信方法。
【請求項１０】
データを送受信する通信処理と、
前記通信処理による通信時の通信相手との距離を測定する距離測定処理と、
前記距離測定処理によって測定された距離情報に基づいて共通鍵を生成する共通鍵生成処理と、
前記共通鍵生成処理によって生成された前記共通鍵を用いて通信するデータの暗号化を行う暗号化処理と、
前記暗号化処理によって暗号化された暗号化データを前記通信相手へと送信する送信処理と、をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信端末間の通信を共通鍵暗号方式で行う通信装置、通信システム、通信方法及びプログラムに関する。
【背景技術】
【０００２】
高速で大量にデータ伝送を行う無線通信方式では、送信側と受信側との間で安全な通信路を確保するためにデータの秘匿化を目的とした高速暗号方式として共通鍵暗号方式が使用されている。この共通鍵暗号方式で用いられる共通鍵は通信開始時に公開暗号方式によって交換される。公開鍵方式によって通信相手の共通鍵を得た端末は、共通鍵暗号方式で暗号化通信をすることができる。
【０００３】
しかし公開鍵暗号方式における鍵の交換時には鍵を盗まれてしまう可能性もあり、その場合には本人になりすまして重要な通信を行うことができてしまうという問題があった。
【０００４】
このような問題に対して、例えば特許文献１においては、通信装置間で共通暗号鍵を生成して通信装置間の接続に時間的制約及び空間的制約をするという発明が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら特許文献１に記載されている方法は、共通暗号鍵の生成のために公開鍵方式により情報を交換するために重要な情報を盗まれてしまう可能性があるという問題があった。従って、共通鍵暗号方式で通信を行う場合には、共通鍵を安全に端末間で持つ必要がある。このことはデータの送信者と受信者がいかにして同一の秘密の鍵を持つかという課題である。
【０００６】
そこで本発明は、上記問題点に鑑みてなされたもので、共通鍵を安全に端末間で持つために、共通鍵自体を送信交換することなく、通信することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明に係る通信装置は、データを送受信する通信手段と、通信手段による通信時の通信相手との距離を測定する距離測定手段と、距離測定手段によって測定された距離情報に基づいて共通鍵を生成する共通鍵生成手段と、共通鍵生成手段によって生成された共通鍵を用いて通信するデータの暗号化を行う暗号化手段と、暗号化手段によって暗号化された暗号化データを通信相手へと送信する送信手段と、を備えることを特徴とする。
【０００８】
本発明に係る通信システムは、複数の通信装置を備える通信システムであって、通信装置は、他の通信装置と通信を行う通信手段と、通信手段による通信時の他の通信装置との距離を測定する距離測定手段と、距離測定手段によって測定された距離情報に基づいて共通鍵を生成する共通鍵生成手段と、共通鍵生成手段によって生成された共通鍵を用いて通信するデータの暗号化を行う暗号化手段と、暗号化手段によって暗号化された暗号化データを他の通信装置へと送信する送信手段と、を有し、他の通信装置は、送信手段によって送信された暗号化データを共通鍵を用いて復号化する復号化手段を有することを特徴とする。
【０００９】
本発明に係る通信方法は、データを送受信する通信ステップと、通信ステップによる通信時の通信相手との距離を測定する距離測定ステップと、距離測定ステップによって測定された距離情報に基づいて共通鍵を生成する共通鍵生成ステップと、共通鍵生成ステップによって生成された共通鍵を用いて通信するデータの暗号化を行う暗号化ステップと、暗号化ステップによって暗号化された暗号化データを通信相手へと送信する送信ステップと、を備えることを特徴とする。
【００１０】
本発明に係るプログラムは、データを送受信する通信処理と、通信処理による通信時の通信相手との距離を測定する距離測定処理と、距離測定処理によって測定された距離情報に基づいて共通鍵を生成する共通鍵生成処理と、共通鍵生成処理によって生成された共通鍵を用いて通信するデータの暗号化を行う暗号化処理と、暗号化処理によって暗号化された暗号化データを通信相手へと送信する送信処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１１】
本発明により、各端末で共通鍵自体を送信交換することなく、共通鍵暗号方式で通信することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係る共通鍵生成の概念図である。
【図２】本発明の実施形態に係る端末の構成例の図である。
【図３】本発明の実施形態に係る距離測定方式１の構成例である。
【図４】本発明の実施形態に係る距離測定方式２の構成例である。
【図５】本発明の実施形態に係る距離測定方式３の構成例である。
【図６】本発明の実施形態に係る第１の実施形態を示すフローチャートである。
【図７】本発明の実施形態に係る第２の実施形態を示すフローチャートである。
【図８】本発明の実施形態に係る第３の実施形態である距離情報のマスクの例を示す図である。
【図９】本発明の実施形態に係る第３の実施形態を示すフローチャートである。
【図１０】本発明の実施形態に係る第４の実施形態を示すフローチャートである。
【図１１】本発明の実施形態に係る第５の実施形態を示すフローチャートである。
【図１２】本発明の実施形態に係る端末間の測定した距離の分布を示した図である。
【図１３】本発明の実施形態の距離の偏りを考慮した距離情報の連結を示すフローチャート図である。
【図１４】本発明の実施形態に係る第６の実施形態を示すフローチャートである。
【発明を実施するための形態】
【００１３】
図１は、本発明の実施形態に係る、共通鍵生成の概念図である。本通信装置は、両端末で相手端末までの距離を測定すると、測定に十分な精度があれば、端末間の距離はどちらの端末から測定しても同一になる。
【００１４】
この距離に基づいて共通鍵暗号で用いる共通鍵元データを両端末で生成すれば、共通鍵自体をやり取りすることなく、両端末で共通鍵元データの共有（同一の共通鍵の生成）が行われ、この共通鍵を用いて共通鍵暗号方式で通信を行うことができる。これより以下に述べる記述では、共通鍵の共有とは、両端末で同一の共通鍵を生成して、その鍵を共有鍵として用いることを意味することとする。通信データの復号化には、共通鍵を用いても良いし、共通鍵から復号化するための鍵を生成して用いても良い。
【００１５】
図２は、本発明の実施形態に係る、端末の構成例の図である。本通信装置の端末は、端末制御部１と、距離測定部２と、無線通信部３と、暗号化部４と、復号化部５と、記憶部６と、操作部７と、表示部８と、を備えて構成される。
【００１６】
次に本発明の実施形態に係る、各構成部に関して詳細な説明を行う。
【００１７】
無線通信部３は公知の無線通信技術を用いている。例えば、ＩＥＥＥ８０２．１１ａ、ＩＥＥＥ８０２．１１ｂ、ＩＥＥＥ８０２．１１ｇ、ＩＥＥＥ８０２．１１ｎ、Ｗｉｒｅｌｅｓｓ−ＵＳＢ、ＷＬＰ、次世代Ｂｌｕｅｔｏｏｔｈ等の無線通信技術によって通信を行う。
【００１８】
Ｗｉｒｅｌｅｓｓ−ＵＳＢ、ＷＬＰ、次世代Ｂｌｕｅｔｏｏｔｈを使う場合は、物理層として使われているＷｉＭｅｄｉａ（登録商標）に距離測定機能があるため、後述する距離測定部２を無線通信部３に含むことが出来る。
【００１９】
暗号化部４、復号化部５は、暗号化および復号化の手段としては公知の共通鍵暗号方式を用いている。
【００２０】
共通鍵暗号方式は、暗号化と復号化の鍵が同一、または暗号化鍵から復号鍵を導出して用いる方式で、代表的な共通鍵暗号としては、ＤＥＳやＡＥＳなどがある。
【００２１】
ＤＥＳ（デス、あるいはデーイーエスと呼ぶ、Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（データ暗号化標準）の略である）とは、アメリカ合衆国の旧国家暗号規格、もしくはその規格で規格化されている共通鍵暗号のことである。
【００２２】
ＡＥＳ暗号とは、アメリカ合衆国の新暗号規格（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）として規格化された共通鍵暗号方式である。１９７７年に発行された暗号規格格ＤＥＳが技術進歩により時代遅れとなったため、新たな暗号方式の公募を行い、２００１年３月にＦＩＰＳ  ＰＵＢ  １９７として公表されたものである。
【００２３】
距離測定部２に関してはいくつかの方法が考えられるため、以下にいくつか距離測定の例を示す。
【００２４】
（距離測定方式１）
特定の通信の発信に対する応答の受信までの時間から端末間の距離を計算する。また、応答のオーバーヘッドはあらかじめ知っているものとする。
【００２５】
図３は、本発明の実施形態に係る、距離測定方式１の構成例である。
【００２６】
端末ＡのＣＰＵから送信を指示しＭＡＣ、ＰＨＹ、ＲＦなどの無線回路を経てアンテナから電波を発信する。端末Ｂのアンテナで受信してＲＦ、ＰＨＹ、ＭＡＣなどの無線回路を経てＣＰＵに通知する。ＣＰＵは応答の指示をして逆の経路で応答を返す。ここで、Ｔ１は送信時間、Ｔ２は受信時間を表す。回路やプロトコルの影響でａ、ｃ、ｄ、ｅ、ｇの時間は０にはならない。以下、このａ、ｃ、ｄ、ｅ、ｇをオーバーヘッドと記述する。
【００２７】
端末間の距離Ｄを測定するのに必要なのは図３の実線部分のアンテナ間の所要時間ｂ、ｆだけだが、観測される時間はこれにオーバーヘッドを加えたものになる。このオーバーヘッドがあらかじめ分かっていれば、全ての所要時間からオーバーヘッドを引くことでアンテナ間の所要時間がわかり、端末間の距離を計算することが出来る。
【００２８】
端末間の距離Ｄは以下の計算式によって求めることができる。
Ｄ＝ｃ×（（Ｔ２−Ｔ１）−（ａ＋ｃ＋ｄ＋ｅ＋ｇ））／２
ここでｃは、光速（約３０万キロメートル毎秒）である。
【００２９】
しかし、オーバーヘッドは別機種では同じになるとは限らない。これに対応するために、端末間でオーバーヘッドの情報をあらかじめ所有する。または端末Ｂはあらかじめ決められた端末自体のオーバーヘッドｃ、ｄ、ｅより十分長い時間たってから応答するようにする。このとき端末Ａは自分の端末のオーバーヘッドは知っているものとする。
【００３０】
例えば全ての端末でｃ、ｄ、ｅの合計の最大値が１０μｓであれば、オーバーヘッドは例えば２０μｓと決めて、この時間に応答がアンテナから送信されるようになるように時間を調整して応答の指示を行う。通常の通信時にも応答時間調整を行うと通信のスループットが低下するので、応答時間調整は距離測定時のみ行うようにしても良い。
【００３１】
（距離測定方式２）
端末Ａと端末Ｂで時刻の同期した時計を持ち、通信に送信時刻を付加し、それを受信した時刻から端末間距離を計算する。
【００３２】
図４は、本発明の実施形態に係る、距離測定方式２の構成例である。
【００３３】
端末間の距離Ｄは、光速と、発信および受信の時間から端末Ａと端末Ｂの間の距離を計算することができる。
【００３４】
端末間の距離Ｄは以下の計算式によって求めることができる。
Ｄ＝ｃ×（Ｔ２−Ｔ１）
ここでＤは距離、cは光速、Ｔ１とＴ２は端末Ａ、Ｂで共通の時間である。
【００３５】
この説明では、距離測定方式１で述べた端末のオーバーヘッドの説明は省略しているが、実際にはオーバーヘッドは存在するため、端末間の距離Ｄを計算する時にはオーバーヘッド分を差し引いて考える必要がある。
【００３６】
（距離測定方式３）
時計の精度は同じだが、端末間で時刻の同期が出来ていない場合である。端末Ａ矢からＢ、端末ＢからＡの両方向で通信に送信時刻、受信時刻を付加し、その時間差から端末間の距離を計算する。
【００３７】
図５は、本発明の実施形態に係る、距離測定方式３の構成例である。
【００３８】
端末間の距離Ｄは以下の計算式によって求めることができる。
Ｄ＝ｃ×（（ＴＢ１−ＴＡ１）−（ＴＢ２−ＴＡ２））／２
ここでＤは距離、ｃは光速、ＴＡ１とＴＡ２は端末Ａの時間、ＴＢ１とＴＢ２は端末Ｂの時間である。
【００３９】
この説明では、距離測定方式１で述べた端末のオーバーヘッドの説明は省略しているが、実際にはオーバーヘッドは存在するため、端末間の距離Ｄを計算する時にはオーバーヘッド分を差し引いて考える必要がある。
【００４０】
Ｗｉｒｅｌｅｓｓ−ＵＳＢ、ＷＬＰ、次世代Ｂｌｕｅｔｏｏｔｈ等、物理層としてＷｉＭｅｄｉａを使用した通信の距離測定手段が基本的には上述した距離測定方式３の方法である。
【００４１】
記憶部６は通常のＲＯＭおよびＲＡＭであり、操作部７は通常のキーボードであり、表示部８は通常のディスプレイであるため詳細な説明は省略する。
【００４２】
端末制御部１は、具体的にはＣＰＵ等であり、その制御方式について詳細に説明する。
【００４３】
図６は、本発明の実施形態に係る、第１の実施形態を示すフローチャートである。このフローチャートは端末Ａから通信を開始する例を示している。
【００４４】
端末Ａは通信開始を待ち、通信が開始されたか判断（ステップＳ１０１）し、通信が開始されない場合（ステップＳ１０１、ＮＯ）は、判断を繰り返す。通信が開始された場合（ステップＳ１０１、ＹＥＳ）は、通信開始時に相手端末Ｂとの距離を測定する（ステップＳ１０２）。この距離測定は十分な精度を持っているものとする。
【００４５】
次に測定された相手端末Ｂ間との距離に基づき、共通鍵を生成する（ステップＳ１０３）。距離情報自体をそのまま共通鍵としても良いが、それでは外部からの観測により鍵を推定される可能性があるので、距離情報をハッシュ関数などで距離から推定されにくい値に変換を行う。
また距離情報に十分なｂｉｔ数が無い場合も、ハッシュ関数により共通鍵に必要な長さのｂｉｔ列に変換することが出来る。
【００４６】
端末Ｂから共通鍵の共有の完了の通知が来るのを待ち、鍵の共有が完了したかを判断する（ステップＳ１０４）。鍵の共有が完了しない場合（ステップＳ１０４、ＮＯ）は、判断を繰り返す。鍵の共有が完了した場合（ステップＳ１０４、ＹＥＳ）は、共通鍵を用いた暗号化通信を開始する（ステップＳ１０５）。
【００４７】
次に暗号化通信が終了したかを判断（ステップＳ１０６）し、通信が終了しない場合（ステップＳ１０６、ＮＯ）は、判断を繰り返す。通信が終了した場合（ステップＳ１０６、ＹＥＳ）は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【００４８】
次に端末Ｂ動作を説明する。端末Ｂでは端末Ａからの距離測定をトリガとし、端末Ａとの距離を測定する。相手端末Ａから距離測定があったかを判断（ステップＳ１０７）し、距離測定がない場合（ステップＳ１０７、ＮＯ）は、判断を繰り返す。距離測定があった場合（ステップＳ１０７、ＹＥＳ）は、相手端末Ａとの距離を測定する（ステップＳ１０８）。
【００４９】
測定された相手端末Ａ間の距離に基づき、共通鍵を生成する（ステップＳ１０９）。共通鍵の生成に関しては端末Ａと同じように行う。共通鍵の生成が終わった時点で端末Ａに対し共通鍵の共有の完了の通知を送る（ステップＳ１１０）。続いて共通鍵を用いた暗号化通信を開始する（ステップＳ１１１）。
【００５０】
次に暗号化通信が終了したかを判断（ステップＳ１１２）し、通信が終了しない場合（ステップＳ１１２、ＮＯ）は、判断を繰り返す。通信が終了した場合（ステップＳ１１２、ＹＥＳ）は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【００５１】
ここでは端末Ａの通信開始時を距離測定開始のトリガとしたが、目的は特定の端末ペアの間で共通鍵の所有することであるので、端末Ｂから距離測定開始するようにしても良い。本実施形態のフローチャートでは通信毎に距離を測定し、共通鍵を生成するようにしているが、初めて通信するときに１回だけ距離測定し共通鍵を生成して、共通鍵は恒久的に使うようにしても良い。
【００５２】
また通信中にも距離測定を行い共通鍵を更新するようにし、端末が移動していれば通信中に共通鍵が変更され通信の安全性が高まる。
【００５３】
また通信開始時でなく、通信終了時に距離測定と共通鍵の生成を行い、次回の通信時はその共通鍵で暗号通信を行うようにしても良い。通信終了時と次回の通信時で端末間の距離が違えば、悪意の第三者が通信時のみ監視していても距離から共通鍵を推定することは出来ない。
【００５４】
また通信とは非同期に距離測定を行い共通鍵を生成しておくようにしても良い。通信時と距離測定時で端末間の距離が違えば、悪意の第三者が通信時のみ監視していても距離から共通鍵を推定することは出来ない。
【００５５】
上述したように本実施形態の例においては様々なバリエーションが考えられる。またこれらを組み合わせて使用するようにしても良い。
【００５６】
最初の本実施形態の例に挙げた、初めて通信するときに1回だけ距離測定を行う場合以外の実施形態の例では、距離の測定ごとに共通鍵が変更されるので、何らかの原因で共通鍵が第三者に漏れてしまった場合でも、次の距離測定で自動的に新しい共通鍵に変更され、安全性が高まる。
【００５７】
図７は、本発明の実施形態に係る、第２の実施形態を示すフローチャートである。基本的な処理の流れは、第１の実施形態と同じである。ただし、共通鍵を生成する部分で、距離情報に加えて時間情報を使う点のみが異なる。この時間情報はここでは端末Ａからの距離測定時の送信時刻を用いているが、これに限るものではない。例えば時間情報に基づいて共通鍵を生成するようにすれば、端末が移動していなくても、共通鍵は更新されるからである。
【００５８】
端末Ａは通信開始を待ち、通信が開始されたか判断（ステップＳ２０１）し、通信が開始されない場合（ステップＳ２０１、ＮＯ）は、判断を繰り返す。通信が開始された場合（ステップＳ２０１、ＹＥＳ）は、通信開始時に相手端末Ｂとの距離を測定する（ステップＳ２０２）。
【００５９】
次に測定された相手端末Ｂ間との距離と端末Ｂの距離測定送信時刻に基づき、共通鍵を生成する（ステップＳ２０３）。距離情報自体をそのまま共通鍵としても良いが、それでは外部からの観測により鍵を推定される可能性があるので、距離情報をハッシュ関数などで距離から推定されにくい値に変換を行う。
また距離情報に十分なｂｉｔ数が無い場合も、ハッシュ関数により共通鍵に必要な長さのｂｉｔ列に変換することが出来る。
【００６０】
端末Ｂから共通鍵の共有の完了の通知が来るのを待ち、鍵の共有が完了したかを判断する（ステップＳ２０４）。鍵の共有が完了しない場合（ステップＳ２０４、ＮＯ）は、判断を繰り返す。鍵の共有が完了した場合（ステップＳ２０４、ＹＥＳ）は、共通鍵を用いた暗号化通信を開始する（ステップＳ２０５）。
【００６１】
次に暗号化通信が終了したかを判断（ステップＳ２０６）し、通信が終了しない場合（ステップＳ２０６、ＮＯ）は、判断を繰り返す。通信が終了した場合（ステップＳ２０６、ＹＥＳ）は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【００６２】
次に端末Ｂ動作を説明する。端末Ｂでは端末Ａからの距離測定をトリガとし、端末Ａとの距離を測定する。相手端末Ａから距離測定があったかを判断（ステップＳ２０７）し、距離測定がない場合（ステップＳ２０７、ＮＯ）は、判断を繰り返す。距離測定があった場合（ステップＳ２０７、ＹＥＳ）は、相手端末Ａとの距離を測定する（ステップＳ２０８）。
【００６３】
測定された相手端末Ａ間の距離と端末Ａの距離測定送信時刻に基づき、共通鍵を生成する（ステップＳ２０９）。共通鍵の生成に関しては端末Ａと同じように行う。共通鍵の生成が終わった時点で端末Ａに対し共通鍵の共有の完了の通知を送る（ステップＳ２１０）。続いて共通鍵を用いた暗号化通信を開始する（ステップＳ２１１）。
【００６４】
次に暗号化通信が終了したかを判断（ステップＳ２１２）し、通信が終了しない場合（ステップＳ２１２、ＮＯ）は、判断を繰り返す。通信が終了した場合（ステップＳ２１２、ＹＥＳ）は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【００６５】
図８は、本発明の実施形態に係る、第３の実施形態である距離情報のマスクの例を示す図である。距離測定においては誤差が入り込む可能性があり、単純に測定した距離から共通鍵を生成すると、端末間で異なる共通鍵が生成され、暗号通信に失敗する。このため、測定された距離情報に対し、距離測定方式により定まる距離測定誤差をマスクすることにより、お互いに同一の共通鍵を生成して、それを共有することが出来る。
【００６６】
例えばＷｉｒｅｌｅｓｓ−ＵＳＢ、ＷＬＰ、次世代Ｂｌｕｅｔｏｏｔｈなどで物理層に使われるＷｉ  Ｍｅｄｉａの距離測定方式では規格によると距離測定誤差は「Ｄｅｖｉｃｅｓ  ｔｈａｔ  ｓｕｐｐ  ｏｒｔ  ｒａｎｇｉｎｇ  ｓｈａｌｌ  ｄｏ  ｓｏ  ｗｉｔｈ  ａｎ  ａｃｃｕｒａｃｙ  ｏｆ  ６  ０ｃｍ  ｏｒ  ｂｅｔｔｅｒ．」といわれている。
【００６７】
ここで測定単位がｃｍであるとすれば下位７ｂｉｔをマスクすることで、誤差の２倍以上の１２７ｃｍ以下の情報を切り捨てて共通鍵を生成することにより、同一の共通鍵を共有させることが出来る。
【００６８】
上で述べたＷｉＭｅｄｉａでの距離測定誤差を考慮して距離情報をマスクする例を図８において説明する。
【００６９】
距離情報は１６ｂｉｔのｃｍ単位に変換されているものと仮定する。値は一例である。マスクデータは下位７ｂｉｔをマスクする場合のデータである。誤差の異なる距離測定方式の場合はマスクデータを変更することにより、鍵生成情報の基となるデータの有効な桁数を変えることが出来る。本実施形態では単純にマスクしたが、四捨五入等の演算を行うようにしても良い。
【００７０】
図９は、本発明の実施形態に係る、第３の実施形態を示すフローチャートである。このフローチャートは端末Ａから通信を開始する例を示している。
【００７１】
端末Ａは通信開始を待ち、通信が開始されたか判断（ステップＳ３０１）し、通信が開始されない場合（ステップＳ３０１、ＮＯ）は、判断を繰り返す。通信が開始された場合（ステップＳ３０１、ＹＥＳ）は、通信開始時に相手端末Ｂとの距離を測定する（ステップＳ３０２）。
【００７２】
距離測定結果を通信方式で決まる距離測定誤差を含まないように下位ビットをマスクする（ステップＳ３０３）。次にマスクした距離測定結果に基づき共通鍵を生成する（ステップＳ３０４）。
【００７３】
端末Ｂから共通鍵の共有の完了の通知が来るのを待ち、鍵の共有が完了したかを判断する（ステップＳ３０５）。鍵の共有が完了しない場合（ステップＳ３０５、ＮＯ）は、判断を繰り返す。鍵の共有が完了した場合（ステップＳ３０５、ＹＥＳ）は、共通鍵を用いた暗号化通信を開始する（ステップＳ３０６）。
【００７４】
次に暗号化通信が終了したかを判断（ステップＳ３０７）し、通信が終了しない場合（ステップＳ３０７、ＮＯ）は、判断を繰り返す。通信が終了した場合（ステップＳ３０７、ＹＥＳ）は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【００７５】
次に端末Ｂ動作を説明する。端末Ｂでは端末Ａからの距離測定をトリガとし、端末Ａとの距離を測定する。相手端末Ａから距離測定があったかを判断（ステップＳ３０８）し、距離測定がない場合（ステップＳ３０８、ＮＯ）は、判断を繰り返す。距離測定があった場合（ステップＳ３０８、ＹＥＳ）は、相手端末Ａとの距離を測定する（ステップＳ３０９）。
【００７６】
距離測定結果を通信方式で決まる距離測定誤差を含まないように下位ビットをマスクする（ステップＳ３１０）。次にマスクした距離測定結果に基づき共通鍵を生成する（ステップＳ３１１）。
【００７７】
共通鍵の生成が終わった時点で端末Ａに対し共通鍵の共有の完了の通知を送る（ステップＳ３１２）。続いて共通鍵を用いた暗号化通信を開始する（ステップＳ３１３）。
【００７８】
次に暗号化通信が終了したかを判断（ステップＳ３１４）し、通信が終了しない場合（ステップＳ３１４、ＮＯ）は、判断を繰り返す。通信が終了した場合（ステップＳ３１４、ＹＥＳ）は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【００７９】
本実施形態では共通鍵の生成に距離情報のみを使う例を示したが、第２の実施形態で示したように距離情報と時間情報から共通鍵を生成するようにしても良い。
【００８０】
図１０は、本発明の実施形態に係る、第４の実施形態を示すフローチャートである。このフローチャートは端末Ａから通信を開始する例を示している。
【００８１】
第３の実施形態においては、測定方式に基づいて距離測定誤差を求めていたが、測定方式だけでなく測定環境によっても誤差が変動する可能性がある。そのため鍵の共有後に特定のコードをやり取りし、正常に鍵の共有（お互いに同一の共通鍵の生成）が出来ているかを確認し、正常に共有（お互いに同一の共通鍵の生成）が出来ていない場合は、距離測定値の下位ビットからマスクして共通鍵を生成する。この動作を正常に共通鍵が共有されるまで続ける。ここでは距離の測定は通信開始毎に行うものとした場合の動作を図１０のフローチャートを用いて説明する。
【００８２】
端末Ａは通信開始を待ち、通信が開始されたか判断（ステップＳ４０１）し、通信が開始されない場合（ステップＳ４０１、ＮＯ）は、判断を繰り返す。通信が開始された場合（ステップＳ４０１、ＹＥＳ）は、通信開始時に相手端末Ｂとの距離を測定する（ステップＳ４０２）。
【００８３】
次に測定された相手端末Ｂ間との距離に基づき、共通鍵を生成する（ステップＳ４０３）。続いて暗号化通信試験を行う（ステップＳ４０４）。ここで暗号化通信試験とは、生成された共通鍵で双方向で暗号化通信で特定のコードをやり取りし、正常に鍵の共有が出来、暗号化通信が行えているかを確認することである。
【００８４】
次に鍵の共有が出来ているかを判断（ステップＳ４０５）し、共有が出来ていない場合（ステップＳ４０５、ＮＯ）は、暗号化通信が正常にやり取りできていないため距離情報の下位ビットから順にマスクを行う（ステップＳ４０６）。マスクの方法は、１回目はマスクなし、２回目は下位１ビットマスク、３回目は下位２ビットマスク、・・・と下位ビットマスクを順々に増やしていき、ステップＳ４０３から繰り返して共有が出来ているかの判断を繰り返す。これを暗号化通信試験が正常に終わるまで繰り返す。暗号化通信試験が正常かどうかの確認（お互いに同一の共通鍵を生成したかの確認）が終わった時点で端末間での共通鍵の共有は終わっている。
【００８５】
鍵の共有が出来ている場合（ステップＳ４０５、ＹＥＳ）は、共通鍵を用いた暗号化通信を開始する（ステップＳ４０７）。
【００８６】
次に暗号化通信が終了したかを判断（ステップＳ４０８）し、通信が終了しない場合（ステップＳ４０８、ＮＯ）は、判断を繰り返す。通信が終了した場合（ステップＳ４０８、ＹＥＳ）は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【００８７】
次に端末Ｂ動作を説明する。端末Ｂでは端末Ａからの距離測定をトリガとし、端末Ａとの距離を測定する。相手端末Ａから距離測定があったかを判断（ステップＳ４０９）し、距離測定がない場合（ステップＳ４０９、ＮＯ）は、判断を繰り返す。距離測定があった場合（ステップＳ４０９、ＹＥＳ）は、相手端末Ａとの距離を測定する（ステップＳ４１０）。
【００８８】
測定された相手端末Ａ間の距離に基づき、共通鍵を生成する（ステップＳ４１１）。続いて暗号化通信試験を行う（ステップＳ４１２）。
【００８９】
次に鍵の共有が出来ているかを判断（ステップＳ４１３）し、共有が出来ていない場合（ステップＳ４１３、ＮＯ）は、暗号化通信が正常にやり取りできていないため距離情報の下位ビットから順にマスクを行う（ステップＳ４１４）。マスクの方法は、１回目はマスクなし、２回目は下位１ビットマスク、３回目は下位２ビットマスク、・・・と下位ビットマスクを順々に増やしていき、ステップＳ４１１から繰り返して共有（お互いに同一の共通鍵の生成）が出来ているかの判断を繰り返す。これを暗号化通信試験が正常に終わるまで繰り返す。暗号化通信試験が正常かどうかの確認が終わった時点で端末間での共通鍵の共有（同一の共通鍵の生成）は終わっている。
【００９０】
鍵の共有が出来ている場合（ステップＳ４１３、ＹＥＳ）は、共通鍵を用いた暗号化通信を開始する（ステップＳ４１５）。
【００９１】
次に暗号化通信が終了したかを判断（ステップＳ４１６）し、通信が終了しない場合（ステップＳ４１６、ＮＯ）は、判断を繰り返す。通信が終了した場合（ステップＳ４１６、ＹＥＳ）は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【００９２】
本実施形態では共通鍵の生成に距離情報のみを使う例を示したが、第２の実施形態で示したように距離情報と時間情報から共通鍵を生成するようにしても良い。
【００９３】
図１１は、本発明の実施形態に係る、第５の実施形態を示すフローチャートである。このフローチャートは端末Ａから通信を開始する例を示している。
【００９４】
例えばＷｉＭｅｄｉａの距離測定機能を使った場合、第２の実施形態で述べたように誤差が６０ｃｍ程度、また通信可能距離は１０ｍ程度であり、有効な距離情報は１６段階程度(ビット数で言えば４ｂｉｔ程度)しかないことになる。そこで、例えば過去ｎ回分の距離測定情報をつなげることにより共通鍵の基になる情報量を増やすことができる。回数ｎについては、共通鍵生成の基となる距離情報の有効ビット数と求められる暗号の強度により変化させることになる。
【００９５】
端末Ａは通信開始を待ち、通信が開始されたか判断（ステップＳ５０１）し、通信が開始されない場合（ステップＳ５０１、ＮＯ）は、判断を繰り返す。通信が開始された場合（ステップＳ５０１、ＹＥＳ）は、通信開始時に相手端末Ｂとの距離を測定する（ステップＳ５０２）。
【００９６】
次に距離測定結果を保存する（ステップＳ５０３）。過去の距離測定結果と最新の距離測定結果のｎ回分のデータをｂｉｔ列を見なして連結する（ステップＳ５０４）。次に連結した距離測定結果に基づき共通鍵を生成する（ステップＳ５０５）。
【００９７】
端末Ｂから共通鍵の共有の完了の通知が来るのを待ち、鍵の共有が完了したかを判断する（ステップＳ５０６）。鍵の共有が完了しない場合（ステップＳ５０６、ＮＯ）は、判断を繰り返す。鍵の共有が完了した場合（ステップＳ５０６、ＹＥＳ）は、共通鍵を用いた暗号化通信を開始する（ステップＳ５０７）。
【００９８】
次に暗号化通信が終了したかを判断（ステップＳ５０８）し、通信が終了しない場合（ステップＳ５０８、ＮＯ）は、判断を繰り返す。通信が終了した場合（ステップＳ５０８、ＹＥＳ）は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【００９９】
次に端末Ｂ動作を説明する。端末Ｂでは端末Ａからの距離測定をトリガとし、端末Ａとの距離を測定する。相手端末Ａから距離測定があったかを判断（ステップＳ５０９）し、距離測定がない場合（ステップＳ５０９、ＮＯ）は、判断を繰り返す。距離測定があった場合（ステップＳ５０９、ＹＥＳ）は、相手端末Ａとの距離を測定する（ステップＳ５１０）。
【０１００】
次に距離測定結果を保存する（ステップＳ５１１）。過去の距離測定結果と最新の距離測定結果のｎ回分のデータをｂｉｔ列を見なして連結する（ステップＳ５１２）。次に連結した距離測定結果に基づき共通鍵を生成する（ステップＳ５１３）。
【０１０１】
共通鍵の生成が終わった時点で端末Ａに対し共通鍵の共有の完了の通知を送る（ステップＳ４５１４）。続いて共通鍵を用いた暗号化通信を開始する（ステップＳ５１５）。
【０１０２】
次に暗号化通信が終了したかを判断（ステップＳ５１６）し、通信が終了しない場合（ステップＳ５１６、ＮＯ）は、判断を繰り返す。通信が終了した場合（ステップＳ５１６、ＹＥＳ）は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【０１０３】
ここではＷｉＭｅｄｉａの距離測定機能について述べたが、他の距離測定技術でもかまわない。
距離測定方式ごとに決まる距離測定誤差により、１回の距離測定で得られる有効ビットが異なるので、何回分の距離測定情報を繋げるかを変更するようにしても良い。または何回分の距離情報を連結するかは距離測定方式によらず固定としても良い。
【０１０４】
本実施形態では距離測定は通信開始時に１回行う例を示したが、距離測定をどう行うかはこれに限るものではなく、通信開始時に複数回測定しても良いし、通信とは非同期に距離測定を行っても良いし、通信中にも距離測定を行い通信中に共通鍵を変更するようにしても良い。
【０１０５】
またこのフローチャートでは第３の実施形態、第４の実施形態で述べた測定誤差を考慮したフローにはなっていないが、距離測定後に第３の実施形態、第４の実施形態と同じように測定誤差を考慮する処理を行うようにしても良い。距離の測定ごとに共通鍵が変更されるので、何らかの原因で共通鍵が第三者に漏れてしまった場合でも、次の距離測定で自動的に新しい共通鍵に変更されることになる。
【０１０６】
本実施形態では共通鍵の生成に距離情報のみを使う例を示したが、第２の実施形態で示したように距離情報と時間情報から共通鍵を生成するようにしても良い。
【０１０７】
また無線のＩ／Ｆは主にノートＰＣなどの移動可能な端末で使われることが多い。このため複数回の距離測定したとき距離情報は異なる値をとることが期待できる。
【０１０８】
本発明の実施形態に係る、第６の実施形態について説明する。第５の実施形態において、測定距離を複数保存し、複数の測定距離から共通鍵を生成するとき、主に端末を使う場所が決まっている場合は、端末間の距離も同じ距離になる可能性が高く、共通鍵に偏りが出る可能性がある。これに対応するために、距離とその発生頻度を調査し、偏りの大きさに応じて共通鍵を生成する基となる情報の選択を変えるようにする。
【０１０９】
図１２は端末間の測定した距離の分布を示した図である。例えば距離と発生頻度をグラフにしたものが図１２に示すようになるとき、発生頻度の高い斜線で示した部分の距離は、なるべく使わないにようにする。これにより、共通鍵の偏りが少なくなることが期待できる。
【０１１０】
図１３は、本発明の実施形態の第５の実施形態に係る、距離の偏りを考慮した距離情報の連結を示すフローチャート図である。
【０１１１】
図１３はサブルーチンであり、距離情報自体は既に取得されているものとする。まず、距離と頻度から、距離情報の偏りを計算する（ステップＳ６０１）。そして距離の偏りにより３つの処理に分けることになる。
【０１１２】
距離の偏りが小さいかを判断（ステップＳ６０２）し、偏りが小さい場合（ステップＳ６０２、ＹＥＳ）は、過去ｎ回の距離情報を選択して連結（ステップＳ６０３）して距離情報として終了する。偏りが小さくない場合（ステップＳ６０２、ＮＯ）は、距離の偏りが中程度であるかを判断（ステップＳ６０４）し、偏りが中程度である場合（ステップＳ６０４、ＹＥＳ）は、頻度の低いｎ回の距離情報を連結（ステップＳ６０５）して距離情報として終了する。偏りが中程度でない場合（ステップＳ６０４、ＮＯ）は、偏りが大きいので過去ｎ回の距離情報に時間情報も加えて連結（ステップＳ６０６）して距離情報として終了する。
【０１１３】
このサブルーチンを使った実際の処理は、図１４のフローチャートに示す。距離情報の連結を行う部分で偏りを考慮している以外は第５の実施形態と同様である。
本実施形態では第５の実施形態の複数の距離測定結果から共通鍵を生成する場合について述べたが、第１〜第４の実施形態のように１つの距離測定結果から共通鍵を生成する場合にも応用できる。
その場合は第５の実施形態の場合と同じように過去の距離測定結果を保存し、上述したのと同じように偏りを判断し、共通鍵を生成する部分でｎ個ではなく１個の距離測定結果から共通鍵を生成するようにしても良い。
【０１１４】
図１４は、本発明の実施形態に係る、第６の実施形態を示すフローチャートである。このフローチャートは端末Ａから通信を開始する例を示している。
【０１１５】
端末Ａは通信開始を待ち、通信が開始されたか判断（ステップＳ７０１）し、通信が開始されない場合（ステップＳ７０１、ＮＯ）は、判断を繰り返す。通信が開始された場合（ステップＳ７０１、ＹＥＳ）は、通信開始時に相手端末Ｂとの距離を測定する（ステップＳ７０２）。
【０１１６】
次に距離測定結果を保存する（ステップＳ７０３）。距離と頻度から、距離情報の偏りを計算し、距離の偏りに基づいて距離情報を連結する。（ステップＳ７０４）。そして連結した距離測定結果に基づき共通鍵を生成する（ステップＳ７０５）。
【０１１７】
端末Ｂから共通鍵の共有の完了の通知が来るのを待ち、鍵の共有が完了したかを判断する（ステップＳ７０６）。鍵の共有が完了しない場合（ステップＳ７０６、ＮＯ）は、判断を繰り返す。鍵の共有が完了した場合（ステップＳ７０６、ＹＥＳ）は、共通鍵を用いた暗号化通信を開始する（ステップＳ７０７）。
【０１１８】
次に暗号化通信が終了したかを判断（ステップＳ７０８）し、通信が終了しない場合（ステップＳ７０８、ＮＯ）は、判断を繰り返す。通信が終了した場合（ステップＳ７０８、ＹＥＳ）は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【０１１９】
次に端末Ｂ動作を説明する。端末Ｂでは端末Ａからの距離測定をトリガとし、端末Ａとの距離を測定する。相手端末Ａから距離測定があったかを判断（ステップＳ７０９）し、距離測定がない場合（ステップＳ７０９、ＮＯ）は、判断を繰り返す。距離測定があった場合（ステップＳ７０９、ＹＥＳ）は、相手端末Ａとの距離を測定する（ステップＳ７１０）。
【０１２０】
次に距離測定結果を保存する（ステップＳ７１１）。距離と頻度から、距離情報の偏りを計算し、距離の偏りに基づいて距離情報を連結する。（ステップＳ７１２）。そして連結した距離測定結果に基づき共通鍵を生成する（ステップＳ７１３）。
【０１２１】
共通鍵の生成が終わった時点で端末Ａに対し共通鍵の共有の完了の通知を送る（ステップＳ４７１４）。続いて共通鍵を用いた暗号化通信を開始する（ステップＳ７１５）。
【０１２２】
次に暗号化通信が終了したかを判断（ステップＳ７１６）し、通信が終了しない場合（ステップＳ７１６、ＮＯ）は、判断を繰り返す。通信が終了した場合（ステップＳ７１６、ＹＥＳ）は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【０１２３】
また本発明に係る通信装置は、送信手段によって送信された暗号化データを共通鍵を用いて復号化する復号化手段を有することを特徴とする。
【０１２４】
また本発明に係る通信装置の距離測定手段は、通信時の時間を測定する時間測定手段を有し、共通鍵生成手段は、距離情報と時間測定手段による測定時間に基づいて共通鍵を生成することを特徴とする。
【０１２５】
また本発明に係る通信装置は、距離測定手段によって測定された距離情報に距離測定誤差を含ませないために測定データをマスクしたマスクデータを作成するデータマスク手段を有し、データマスク手段によって作成されたマスクデータに基づいて共通鍵を生成することを特徴とする。
【０１２６】
また本発明に係る通信装置は、共通鍵生成手段によって生成された共通鍵が通信相手と同一であるかを確認する共通鍵確認手段を有し、共通鍵確認手段によって共通鍵が同一でないことが確認された場合はデータマスク手段によって作成されたマスクデータに基づいて共通鍵を生成することを特徴とする。
【０１２７】
また本発明に係る通信装置は、距離測定手段によって測定した距離情報を複数回記憶する距離情報記憶手段を有し、距離情報記憶手段に記憶された複数の距離情報に基づいて共通鍵を生成することを特徴とする。
【０１２８】
また本発明に係る通信装置は、距離情報記憶手段によって記憶された複数の距離情報の分布の偏りを判断して偏りの少ない距離情報を選択する距離情報選択手段を有し、距離情報選択手段によって選択された距離情報に基づいて共通鍵を生成することを特徴とする。
【０１２９】
また本発明の実施形態によれば、共通鍵暗号方式の共通鍵を端末間の距離に基づいて生成しているので、共通鍵自体のやり取りを行うことなく、共通鍵を共有することが出来る。
【０１３０】
また本発明の実施形態によれば、端末間の距離に加えて、時間情報に基づいて共通鍵暗号方式の共通鍵を生成しているので、端末間の距離が変わらないような場合でも、共通鍵を更新することが出来る。
【０１３１】
また本発明の実施形態によれば、通信方式毎に決まる距離測定の誤差をマスクして、共通鍵を生成しているので、十分な距離測定精度を持たない距離測定方式であっても、共通鍵を共有することが出来る。
【０１３２】
また本発明の実施形態によれば、距離測定の誤差を自動的に判定して、共通鍵を生成しているので、十分な距離測定精度を持たない距離測定方式であっても、共通鍵を共有することが出来る。
【０１３３】
また本発明の実施形態によれば、複数回の距離測定結果に基づき、共通鍵を生成しているので、十分な距離測定精度を持たない距離測定方式であっても、共通鍵を共有することが出来る。
【０１３４】
また本発明の実施形態によれば、距離を監視し、通常と異なる距離を優先して共通鍵を生成し、自動的に時間情報も共通鍵の生成使うようにしているので、移動をあまり行わない端末であっても生成された共通鍵の偏りを抑えることが出来る。
【産業上の利用可能性】
【０１３５】
本発明によれば、通信端末間で通信を行う通信装置などの用途に適用できる。
【符号の説明】
【０１３６】
１    端末制御部
２    距離測定部
３    無線通信部
４    暗号化部
５    複合化部
６    記憶部
７    操作部
８    表示部
Ｔ１    送信時間
Ｔ２    受信時間
ＴＡ１    発信時間
ＴＡ２    受信時間
ＴＢ１    受信時間
ＴＢ２    送信時間
ａ、ｂ、ｃ、ｄ、ｅ、ｆ、ｇ    オーバーヘッド
Ｄ    端末間距離
【先行技術文献】
【特許文献】
【０１３７】
【特許文献１】特開２００５−５１３６８号公報
【図１】
2010187231.tif 000003
【図２】
2010187231.tif 000004
【図３】
2010187231.tif 000005
【図４】
2010187231.tif 000006
【図５】
2010187231.tif 000007
【図６】
2010187231.tif 000008
【図７】
2010187231.tif 000009
【図８】
2010187231.tif 000010
【図９】
2010187231.tif 000011
【図１０】
2010187231.tif 000012
【図１１】
2010187231.tif 000013
【図１２】
2010187231.tif 000014
【図１３】
2010187231.tif 000015
【図１４】
2010187231.tif 000016