説明

通信装置、通信システム、通信方法及びプログラム

【課題】共通鍵を安全に端末間で持つために、共通鍵自体を送信交換することなく、通信することを目的とする。
【解決手段】データを送受信する通信手段と、通信手段による通信時の通信相手との距離を測定する距離測定手段と、距離測定手段によって測定された距離情報に基づいて共通鍵を生成する共通鍵生成手段と、共通鍵生成手段によって生成された共通鍵を用いて通信するデータの暗号化を行う暗号化手段と、暗号化手段によって暗号化された暗号化データを通信相手へと送信する送信手段と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信端末間の通信を共通鍵暗号方式で行う通信装置、通信システム、通信方法及びプログラムに関する。
【背景技術】
【0002】
高速で大量にデータ伝送を行う無線通信方式では、送信側と受信側との間で安全な通信路を確保するためにデータの秘匿化を目的とした高速暗号方式として共通鍵暗号方式が使用されている。この共通鍵暗号方式で用いられる共通鍵は通信開始時に公開暗号方式によって交換される。公開鍵方式によって通信相手の共通鍵を得た端末は、共通鍵暗号方式で暗号化通信をすることができる。
【0003】
しかし公開鍵暗号方式における鍵の交換時には鍵を盗まれてしまう可能性もあり、その場合には本人になりすまして重要な通信を行うことができてしまうという問題があった。
【0004】
このような問題に対して、例えば特許文献1においては、通信装置間で共通暗号鍵を生成して通信装置間の接続に時間的制約及び空間的制約をするという発明が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら特許文献1に記載されている方法は、共通暗号鍵の生成のために公開鍵方式により情報を交換するために重要な情報を盗まれてしまう可能性があるという問題があった。従って、共通鍵暗号方式で通信を行う場合には、共通鍵を安全に端末間で持つ必要がある。このことはデータの送信者と受信者がいかにして同一の秘密の鍵を持つかという課題である。
【0006】
そこで本発明は、上記問題点に鑑みてなされたもので、共通鍵を安全に端末間で持つために、共通鍵自体を送信交換することなく、通信することを目的とする。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本発明に係る通信装置は、データを送受信する通信手段と、通信手段による通信時の通信相手との距離を測定する距離測定手段と、距離測定手段によって測定された距離情報に基づいて共通鍵を生成する共通鍵生成手段と、共通鍵生成手段によって生成された共通鍵を用いて通信するデータの暗号化を行う暗号化手段と、暗号化手段によって暗号化された暗号化データを通信相手へと送信する送信手段と、を備えることを特徴とする。
【0008】
本発明に係る通信システムは、複数の通信装置を備える通信システムであって、通信装置は、他の通信装置と通信を行う通信手段と、通信手段による通信時の他の通信装置との距離を測定する距離測定手段と、距離測定手段によって測定された距離情報に基づいて共通鍵を生成する共通鍵生成手段と、共通鍵生成手段によって生成された共通鍵を用いて通信するデータの暗号化を行う暗号化手段と、暗号化手段によって暗号化された暗号化データを他の通信装置へと送信する送信手段と、を有し、他の通信装置は、送信手段によって送信された暗号化データを共通鍵を用いて復号化する復号化手段を有することを特徴とする。
【0009】
本発明に係る通信方法は、データを送受信する通信ステップと、通信ステップによる通信時の通信相手との距離を測定する距離測定ステップと、距離測定ステップによって測定された距離情報に基づいて共通鍵を生成する共通鍵生成ステップと、共通鍵生成ステップによって生成された共通鍵を用いて通信するデータの暗号化を行う暗号化ステップと、暗号化ステップによって暗号化された暗号化データを通信相手へと送信する送信ステップと、を備えることを特徴とする。
【0010】
本発明に係るプログラムは、データを送受信する通信処理と、通信処理による通信時の通信相手との距離を測定する距離測定処理と、距離測定処理によって測定された距離情報に基づいて共通鍵を生成する共通鍵生成処理と、共通鍵生成処理によって生成された共通鍵を用いて通信するデータの暗号化を行う暗号化処理と、暗号化処理によって暗号化された暗号化データを通信相手へと送信する送信処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【0011】
本発明により、各端末で共通鍵自体を送信交換することなく、共通鍵暗号方式で通信することが可能となる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施形態に係る共通鍵生成の概念図である。
【図2】本発明の実施形態に係る端末の構成例の図である。
【図3】本発明の実施形態に係る距離測定方式1の構成例である。
【図4】本発明の実施形態に係る距離測定方式2の構成例である。
【図5】本発明の実施形態に係る距離測定方式3の構成例である。
【図6】本発明の実施形態に係る第1の実施形態を示すフローチャートである。
【図7】本発明の実施形態に係る第2の実施形態を示すフローチャートである。
【図8】本発明の実施形態に係る第3の実施形態である距離情報のマスクの例を示す図である。
【図9】本発明の実施形態に係る第3の実施形態を示すフローチャートである。
【図10】本発明の実施形態に係る第4の実施形態を示すフローチャートである。
【図11】本発明の実施形態に係る第5の実施形態を示すフローチャートである。
【図12】本発明の実施形態に係る端末間の測定した距離の分布を示した図である。
【図13】本発明の実施形態の距離の偏りを考慮した距離情報の連結を示すフローチャート図である。
【図14】本発明の実施形態に係る第6の実施形態を示すフローチャートである。
【発明を実施するための形態】
【0013】
図1は、本発明の実施形態に係る、共通鍵生成の概念図である。本通信装置は、両端末で相手端末までの距離を測定すると、測定に十分な精度があれば、端末間の距離はどちらの端末から測定しても同一になる。
【0014】
この距離に基づいて共通鍵暗号で用いる共通鍵元データを両端末で生成すれば、共通鍵自体をやり取りすることなく、両端末で共通鍵元データの共有(同一の共通鍵の生成)が行われ、この共通鍵を用いて共通鍵暗号方式で通信を行うことができる。これより以下に述べる記述では、共通鍵の共有とは、両端末で同一の共通鍵を生成して、その鍵を共有鍵として用いることを意味することとする。通信データの復号化には、共通鍵を用いても良いし、共通鍵から復号化するための鍵を生成して用いても良い。
【0015】
図2は、本発明の実施形態に係る、端末の構成例の図である。本通信装置の端末は、端末制御部1と、距離測定部2と、無線通信部3と、暗号化部4と、復号化部5と、記憶部6と、操作部7と、表示部8と、を備えて構成される。
【0016】
次に本発明の実施形態に係る、各構成部に関して詳細な説明を行う。
【0017】
無線通信部3は公知の無線通信技術を用いている。例えば、IEEE802.11a、IEEE802.11b、IEEE802.11g、IEEE802.11n、Wireless−USB、WLP、次世代Bluetooth等の無線通信技術によって通信を行う。
【0018】
Wireless−USB、WLP、次世代Bluetoothを使う場合は、物理層として使われているWiMedia(登録商標)に距離測定機能があるため、後述する距離測定部2を無線通信部3に含むことが出来る。
【0019】
暗号化部4、復号化部5は、暗号化および復号化の手段としては公知の共通鍵暗号方式を用いている。
【0020】
共通鍵暗号方式は、暗号化と復号化の鍵が同一、または暗号化鍵から復号鍵を導出して用いる方式で、代表的な共通鍵暗号としては、DESやAESなどがある。
【0021】
DES(デス、あるいはデーイーエスと呼ぶ、Data Encryption Standard(データ暗号化標準)の略である)とは、アメリカ合衆国の旧国家暗号規格、もしくはその規格で規格化されている共通鍵暗号のことである。
【0022】
AES暗号とは、アメリカ合衆国の新暗号規格(Advanced Encryption Standard)として規格化された共通鍵暗号方式である。1977年に発行された暗号規格格DESが技術進歩により時代遅れとなったため、新たな暗号方式の公募を行い、2001年3月にFIPS PUB 197として公表されたものである。
【0023】
距離測定部2に関してはいくつかの方法が考えられるため、以下にいくつか距離測定の例を示す。
【0024】
(距離測定方式1)
特定の通信の発信に対する応答の受信までの時間から端末間の距離を計算する。また、応答のオーバーヘッドはあらかじめ知っているものとする。
【0025】
図3は、本発明の実施形態に係る、距離測定方式1の構成例である。
【0026】
端末AのCPUから送信を指示しMAC、PHY、RFなどの無線回路を経てアンテナから電波を発信する。端末Bのアンテナで受信してRF、PHY、MACなどの無線回路を経てCPUに通知する。CPUは応答の指示をして逆の経路で応答を返す。ここで、T1は送信時間、T2は受信時間を表す。回路やプロトコルの影響でa、c、d、e、gの時間は0にはならない。以下、このa、c、d、e、gをオーバーヘッドと記述する。
【0027】
端末間の距離Dを測定するのに必要なのは図3の実線部分のアンテナ間の所要時間b、fだけだが、観測される時間はこれにオーバーヘッドを加えたものになる。このオーバーヘッドがあらかじめ分かっていれば、全ての所要時間からオーバーヘッドを引くことでアンテナ間の所要時間がわかり、端末間の距離を計算することが出来る。
【0028】
端末間の距離Dは以下の計算式によって求めることができる。
D=c×((T2−T1)−(a+c+d+e+g))/2
ここでcは、光速(約30万キロメートル毎秒)である。
【0029】
しかし、オーバーヘッドは別機種では同じになるとは限らない。これに対応するために、端末間でオーバーヘッドの情報をあらかじめ所有する。または端末Bはあらかじめ決められた端末自体のオーバーヘッドc、d、eより十分長い時間たってから応答するようにする。このとき端末Aは自分の端末のオーバーヘッドは知っているものとする。
【0030】
例えば全ての端末でc、d、eの合計の最大値が10μsであれば、オーバーヘッドは例えば20μsと決めて、この時間に応答がアンテナから送信されるようになるように時間を調整して応答の指示を行う。通常の通信時にも応答時間調整を行うと通信のスループットが低下するので、応答時間調整は距離測定時のみ行うようにしても良い。
【0031】
(距離測定方式2)
端末Aと端末Bで時刻の同期した時計を持ち、通信に送信時刻を付加し、それを受信した時刻から端末間距離を計算する。
【0032】
図4は、本発明の実施形態に係る、距離測定方式2の構成例である。
【0033】
端末間の距離Dは、光速と、発信および受信の時間から端末Aと端末Bの間の距離を計算することができる。
【0034】
端末間の距離Dは以下の計算式によって求めることができる。
D=c×(T2−T1)
ここでDは距離、cは光速、T1とT2は端末A、Bで共通の時間である。
【0035】
この説明では、距離測定方式1で述べた端末のオーバーヘッドの説明は省略しているが、実際にはオーバーヘッドは存在するため、端末間の距離Dを計算する時にはオーバーヘッド分を差し引いて考える必要がある。
【0036】
(距離測定方式3)
時計の精度は同じだが、端末間で時刻の同期が出来ていない場合である。端末A矢からB、端末BからAの両方向で通信に送信時刻、受信時刻を付加し、その時間差から端末間の距離を計算する。
【0037】
図5は、本発明の実施形態に係る、距離測定方式3の構成例である。
【0038】
端末間の距離Dは以下の計算式によって求めることができる。
D=c×((TB1−TA1)−(TB2−TA2))/2
ここでDは距離、cは光速、TA1とTA2は端末Aの時間、TB1とTB2は端末Bの時間である。
【0039】
この説明では、距離測定方式1で述べた端末のオーバーヘッドの説明は省略しているが、実際にはオーバーヘッドは存在するため、端末間の距離Dを計算する時にはオーバーヘッド分を差し引いて考える必要がある。
【0040】
Wireless−USB、WLP、次世代Bluetooth等、物理層としてWiMediaを使用した通信の距離測定手段が基本的には上述した距離測定方式3の方法である。
【0041】
記憶部6は通常のROMおよびRAMであり、操作部7は通常のキーボードであり、表示部8は通常のディスプレイであるため詳細な説明は省略する。
【0042】
端末制御部1は、具体的にはCPU等であり、その制御方式について詳細に説明する。
【0043】
図6は、本発明の実施形態に係る、第1の実施形態を示すフローチャートである。このフローチャートは端末Aから通信を開始する例を示している。
【0044】
端末Aは通信開始を待ち、通信が開始されたか判断(ステップS101)し、通信が開始されない場合(ステップS101、NO)は、判断を繰り返す。通信が開始された場合(ステップS101、YES)は、通信開始時に相手端末Bとの距離を測定する(ステップS102)。この距離測定は十分な精度を持っているものとする。
【0045】
次に測定された相手端末B間との距離に基づき、共通鍵を生成する(ステップS103)。距離情報自体をそのまま共通鍵としても良いが、それでは外部からの観測により鍵を推定される可能性があるので、距離情報をハッシュ関数などで距離から推定されにくい値に変換を行う。
また距離情報に十分なbit数が無い場合も、ハッシュ関数により共通鍵に必要な長さのbit列に変換することが出来る。
【0046】
端末Bから共通鍵の共有の完了の通知が来るのを待ち、鍵の共有が完了したかを判断する(ステップS104)。鍵の共有が完了しない場合(ステップS104、NO)は、判断を繰り返す。鍵の共有が完了した場合(ステップS104、YES)は、共通鍵を用いた暗号化通信を開始する(ステップS105)。
【0047】
次に暗号化通信が終了したかを判断(ステップS106)し、通信が終了しない場合(ステップS106、NO)は、判断を繰り返す。通信が終了した場合(ステップS106、YES)は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【0048】
次に端末B動作を説明する。端末Bでは端末Aからの距離測定をトリガとし、端末Aとの距離を測定する。相手端末Aから距離測定があったかを判断(ステップS107)し、距離測定がない場合(ステップS107、NO)は、判断を繰り返す。距離測定があった場合(ステップS107、YES)は、相手端末Aとの距離を測定する(ステップS108)。
【0049】
測定された相手端末A間の距離に基づき、共通鍵を生成する(ステップS109)。共通鍵の生成に関しては端末Aと同じように行う。共通鍵の生成が終わった時点で端末Aに対し共通鍵の共有の完了の通知を送る(ステップS110)。続いて共通鍵を用いた暗号化通信を開始する(ステップS111)。
【0050】
次に暗号化通信が終了したかを判断(ステップS112)し、通信が終了しない場合(ステップS112、NO)は、判断を繰り返す。通信が終了した場合(ステップS112、YES)は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【0051】
ここでは端末Aの通信開始時を距離測定開始のトリガとしたが、目的は特定の端末ペアの間で共通鍵の所有することであるので、端末Bから距離測定開始するようにしても良い。本実施形態のフローチャートでは通信毎に距離を測定し、共通鍵を生成するようにしているが、初めて通信するときに1回だけ距離測定し共通鍵を生成して、共通鍵は恒久的に使うようにしても良い。
【0052】
また通信中にも距離測定を行い共通鍵を更新するようにし、端末が移動していれば通信中に共通鍵が変更され通信の安全性が高まる。
【0053】
また通信開始時でなく、通信終了時に距離測定と共通鍵の生成を行い、次回の通信時はその共通鍵で暗号通信を行うようにしても良い。通信終了時と次回の通信時で端末間の距離が違えば、悪意の第三者が通信時のみ監視していても距離から共通鍵を推定することは出来ない。
【0054】
また通信とは非同期に距離測定を行い共通鍵を生成しておくようにしても良い。通信時と距離測定時で端末間の距離が違えば、悪意の第三者が通信時のみ監視していても距離から共通鍵を推定することは出来ない。
【0055】
上述したように本実施形態の例においては様々なバリエーションが考えられる。またこれらを組み合わせて使用するようにしても良い。
【0056】
最初の本実施形態の例に挙げた、初めて通信するときに1回だけ距離測定を行う場合以外の実施形態の例では、距離の測定ごとに共通鍵が変更されるので、何らかの原因で共通鍵が第三者に漏れてしまった場合でも、次の距離測定で自動的に新しい共通鍵に変更され、安全性が高まる。
【0057】
図7は、本発明の実施形態に係る、第2の実施形態を示すフローチャートである。基本的な処理の流れは、第1の実施形態と同じである。ただし、共通鍵を生成する部分で、距離情報に加えて時間情報を使う点のみが異なる。この時間情報はここでは端末Aからの距離測定時の送信時刻を用いているが、これに限るものではない。例えば時間情報に基づいて共通鍵を生成するようにすれば、端末が移動していなくても、共通鍵は更新されるからである。
【0058】
端末Aは通信開始を待ち、通信が開始されたか判断(ステップS201)し、通信が開始されない場合(ステップS201、NO)は、判断を繰り返す。通信が開始された場合(ステップS201、YES)は、通信開始時に相手端末Bとの距離を測定する(ステップS202)。
【0059】
次に測定された相手端末B間との距離と端末Bの距離測定送信時刻に基づき、共通鍵を生成する(ステップS203)。距離情報自体をそのまま共通鍵としても良いが、それでは外部からの観測により鍵を推定される可能性があるので、距離情報をハッシュ関数などで距離から推定されにくい値に変換を行う。
また距離情報に十分なbit数が無い場合も、ハッシュ関数により共通鍵に必要な長さのbit列に変換することが出来る。
【0060】
端末Bから共通鍵の共有の完了の通知が来るのを待ち、鍵の共有が完了したかを判断する(ステップS204)。鍵の共有が完了しない場合(ステップS204、NO)は、判断を繰り返す。鍵の共有が完了した場合(ステップS204、YES)は、共通鍵を用いた暗号化通信を開始する(ステップS205)。
【0061】
次に暗号化通信が終了したかを判断(ステップS206)し、通信が終了しない場合(ステップS206、NO)は、判断を繰り返す。通信が終了した場合(ステップS206、YES)は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【0062】
次に端末B動作を説明する。端末Bでは端末Aからの距離測定をトリガとし、端末Aとの距離を測定する。相手端末Aから距離測定があったかを判断(ステップS207)し、距離測定がない場合(ステップS207、NO)は、判断を繰り返す。距離測定があった場合(ステップS207、YES)は、相手端末Aとの距離を測定する(ステップS208)。
【0063】
測定された相手端末A間の距離と端末Aの距離測定送信時刻に基づき、共通鍵を生成する(ステップS209)。共通鍵の生成に関しては端末Aと同じように行う。共通鍵の生成が終わった時点で端末Aに対し共通鍵の共有の完了の通知を送る(ステップS210)。続いて共通鍵を用いた暗号化通信を開始する(ステップS211)。
【0064】
次に暗号化通信が終了したかを判断(ステップS212)し、通信が終了しない場合(ステップS212、NO)は、判断を繰り返す。通信が終了した場合(ステップS212、YES)は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【0065】
図8は、本発明の実施形態に係る、第3の実施形態である距離情報のマスクの例を示す図である。距離測定においては誤差が入り込む可能性があり、単純に測定した距離から共通鍵を生成すると、端末間で異なる共通鍵が生成され、暗号通信に失敗する。このため、測定された距離情報に対し、距離測定方式により定まる距離測定誤差をマスクすることにより、お互いに同一の共通鍵を生成して、それを共有することが出来る。
【0066】
例えばWireless−USB、WLP、次世代Bluetoothなどで物理層に使われるWi Mediaの距離測定方式では規格によると距離測定誤差は「Devices that supp ort ranging shall do so with an accuracy of 6 0cm or better.」といわれている。
【0067】
ここで測定単位がcmであるとすれば下位7bitをマスクすることで、誤差の2倍以上の127cm以下の情報を切り捨てて共通鍵を生成することにより、同一の共通鍵を共有させることが出来る。
【0068】
上で述べたWiMediaでの距離測定誤差を考慮して距離情報をマスクする例を図8において説明する。
【0069】
距離情報は16bitのcm単位に変換されているものと仮定する。値は一例である。マスクデータは下位7bitをマスクする場合のデータである。誤差の異なる距離測定方式の場合はマスクデータを変更することにより、鍵生成情報の基となるデータの有効な桁数を変えることが出来る。本実施形態では単純にマスクしたが、四捨五入等の演算を行うようにしても良い。
【0070】
図9は、本発明の実施形態に係る、第3の実施形態を示すフローチャートである。このフローチャートは端末Aから通信を開始する例を示している。
【0071】
端末Aは通信開始を待ち、通信が開始されたか判断(ステップS301)し、通信が開始されない場合(ステップS301、NO)は、判断を繰り返す。通信が開始された場合(ステップS301、YES)は、通信開始時に相手端末Bとの距離を測定する(ステップS302)。
【0072】
距離測定結果を通信方式で決まる距離測定誤差を含まないように下位ビットをマスクする(ステップS303)。次にマスクした距離測定結果に基づき共通鍵を生成する(ステップS304)。
【0073】
端末Bから共通鍵の共有の完了の通知が来るのを待ち、鍵の共有が完了したかを判断する(ステップS305)。鍵の共有が完了しない場合(ステップS305、NO)は、判断を繰り返す。鍵の共有が完了した場合(ステップS305、YES)は、共通鍵を用いた暗号化通信を開始する(ステップS306)。
【0074】
次に暗号化通信が終了したかを判断(ステップS307)し、通信が終了しない場合(ステップS307、NO)は、判断を繰り返す。通信が終了した場合(ステップS307、YES)は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【0075】
次に端末B動作を説明する。端末Bでは端末Aからの距離測定をトリガとし、端末Aとの距離を測定する。相手端末Aから距離測定があったかを判断(ステップS308)し、距離測定がない場合(ステップS308、NO)は、判断を繰り返す。距離測定があった場合(ステップS308、YES)は、相手端末Aとの距離を測定する(ステップS309)。
【0076】
距離測定結果を通信方式で決まる距離測定誤差を含まないように下位ビットをマスクする(ステップS310)。次にマスクした距離測定結果に基づき共通鍵を生成する(ステップS311)。
【0077】
共通鍵の生成が終わった時点で端末Aに対し共通鍵の共有の完了の通知を送る(ステップS312)。続いて共通鍵を用いた暗号化通信を開始する(ステップS313)。
【0078】
次に暗号化通信が終了したかを判断(ステップS314)し、通信が終了しない場合(ステップS314、NO)は、判断を繰り返す。通信が終了した場合(ステップS314、YES)は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【0079】
本実施形態では共通鍵の生成に距離情報のみを使う例を示したが、第2の実施形態で示したように距離情報と時間情報から共通鍵を生成するようにしても良い。
【0080】
図10は、本発明の実施形態に係る、第4の実施形態を示すフローチャートである。このフローチャートは端末Aから通信を開始する例を示している。
【0081】
第3の実施形態においては、測定方式に基づいて距離測定誤差を求めていたが、測定方式だけでなく測定環境によっても誤差が変動する可能性がある。そのため鍵の共有後に特定のコードをやり取りし、正常に鍵の共有(お互いに同一の共通鍵の生成)が出来ているかを確認し、正常に共有(お互いに同一の共通鍵の生成)が出来ていない場合は、距離測定値の下位ビットからマスクして共通鍵を生成する。この動作を正常に共通鍵が共有されるまで続ける。ここでは距離の測定は通信開始毎に行うものとした場合の動作を図10のフローチャートを用いて説明する。
【0082】
端末Aは通信開始を待ち、通信が開始されたか判断(ステップS401)し、通信が開始されない場合(ステップS401、NO)は、判断を繰り返す。通信が開始された場合(ステップS401、YES)は、通信開始時に相手端末Bとの距離を測定する(ステップS402)。
【0083】
次に測定された相手端末B間との距離に基づき、共通鍵を生成する(ステップS403)。続いて暗号化通信試験を行う(ステップS404)。ここで暗号化通信試験とは、生成された共通鍵で双方向で暗号化通信で特定のコードをやり取りし、正常に鍵の共有が出来、暗号化通信が行えているかを確認することである。
【0084】
次に鍵の共有が出来ているかを判断(ステップS405)し、共有が出来ていない場合(ステップS405、NO)は、暗号化通信が正常にやり取りできていないため距離情報の下位ビットから順にマスクを行う(ステップS406)。マスクの方法は、1回目はマスクなし、2回目は下位1ビットマスク、3回目は下位2ビットマスク、・・・と下位ビットマスクを順々に増やしていき、ステップS403から繰り返して共有が出来ているかの判断を繰り返す。これを暗号化通信試験が正常に終わるまで繰り返す。暗号化通信試験が正常かどうかの確認(お互いに同一の共通鍵を生成したかの確認)が終わった時点で端末間での共通鍵の共有は終わっている。
【0085】
鍵の共有が出来ている場合(ステップS405、YES)は、共通鍵を用いた暗号化通信を開始する(ステップS407)。
【0086】
次に暗号化通信が終了したかを判断(ステップS408)し、通信が終了しない場合(ステップS408、NO)は、判断を繰り返す。通信が終了した場合(ステップS408、YES)は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【0087】
次に端末B動作を説明する。端末Bでは端末Aからの距離測定をトリガとし、端末Aとの距離を測定する。相手端末Aから距離測定があったかを判断(ステップS409)し、距離測定がない場合(ステップS409、NO)は、判断を繰り返す。距離測定があった場合(ステップS409、YES)は、相手端末Aとの距離を測定する(ステップS410)。
【0088】
測定された相手端末A間の距離に基づき、共通鍵を生成する(ステップS411)。続いて暗号化通信試験を行う(ステップS412)。
【0089】
次に鍵の共有が出来ているかを判断(ステップS413)し、共有が出来ていない場合(ステップS413、NO)は、暗号化通信が正常にやり取りできていないため距離情報の下位ビットから順にマスクを行う(ステップS414)。マスクの方法は、1回目はマスクなし、2回目は下位1ビットマスク、3回目は下位2ビットマスク、・・・と下位ビットマスクを順々に増やしていき、ステップS411から繰り返して共有(お互いに同一の共通鍵の生成)が出来ているかの判断を繰り返す。これを暗号化通信試験が正常に終わるまで繰り返す。暗号化通信試験が正常かどうかの確認が終わった時点で端末間での共通鍵の共有(同一の共通鍵の生成)は終わっている。
【0090】
鍵の共有が出来ている場合(ステップS413、YES)は、共通鍵を用いた暗号化通信を開始する(ステップS415)。
【0091】
次に暗号化通信が終了したかを判断(ステップS416)し、通信が終了しない場合(ステップS416、NO)は、判断を繰り返す。通信が終了した場合(ステップS416、YES)は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【0092】
本実施形態では共通鍵の生成に距離情報のみを使う例を示したが、第2の実施形態で示したように距離情報と時間情報から共通鍵を生成するようにしても良い。
【0093】
図11は、本発明の実施形態に係る、第5の実施形態を示すフローチャートである。このフローチャートは端末Aから通信を開始する例を示している。
【0094】
例えばWiMediaの距離測定機能を使った場合、第2の実施形態で述べたように誤差が60cm程度、また通信可能距離は10m程度であり、有効な距離情報は16段階程度(ビット数で言えば4bit程度)しかないことになる。そこで、例えば過去n回分の距離測定情報をつなげることにより共通鍵の基になる情報量を増やすことができる。回数nについては、共通鍵生成の基となる距離情報の有効ビット数と求められる暗号の強度により変化させることになる。
【0095】
端末Aは通信開始を待ち、通信が開始されたか判断(ステップS501)し、通信が開始されない場合(ステップS501、NO)は、判断を繰り返す。通信が開始された場合(ステップS501、YES)は、通信開始時に相手端末Bとの距離を測定する(ステップS502)。
【0096】
次に距離測定結果を保存する(ステップS503)。過去の距離測定結果と最新の距離測定結果のn回分のデータをbit列を見なして連結する(ステップS504)。次に連結した距離測定結果に基づき共通鍵を生成する(ステップS505)。
【0097】
端末Bから共通鍵の共有の完了の通知が来るのを待ち、鍵の共有が完了したかを判断する(ステップS506)。鍵の共有が完了しない場合(ステップS506、NO)は、判断を繰り返す。鍵の共有が完了した場合(ステップS506、YES)は、共通鍵を用いた暗号化通信を開始する(ステップS507)。
【0098】
次に暗号化通信が終了したかを判断(ステップS508)し、通信が終了しない場合(ステップS508、NO)は、判断を繰り返す。通信が終了した場合(ステップS508、YES)は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【0099】
次に端末B動作を説明する。端末Bでは端末Aからの距離測定をトリガとし、端末Aとの距離を測定する。相手端末Aから距離測定があったかを判断(ステップS509)し、距離測定がない場合(ステップS509、NO)は、判断を繰り返す。距離測定があった場合(ステップS509、YES)は、相手端末Aとの距離を測定する(ステップS510)。
【0100】
次に距離測定結果を保存する(ステップS511)。過去の距離測定結果と最新の距離測定結果のn回分のデータをbit列を見なして連結する(ステップS512)。次に連結した距離測定結果に基づき共通鍵を生成する(ステップS513)。
【0101】
共通鍵の生成が終わった時点で端末Aに対し共通鍵の共有の完了の通知を送る(ステップS4514)。続いて共通鍵を用いた暗号化通信を開始する(ステップS515)。
【0102】
次に暗号化通信が終了したかを判断(ステップS516)し、通信が終了しない場合(ステップS516、NO)は、判断を繰り返す。通信が終了した場合(ステップS516、YES)は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【0103】
ここではWiMediaの距離測定機能について述べたが、他の距離測定技術でもかまわない。
距離測定方式ごとに決まる距離測定誤差により、1回の距離測定で得られる有効ビットが異なるので、何回分の距離測定情報を繋げるかを変更するようにしても良い。または何回分の距離情報を連結するかは距離測定方式によらず固定としても良い。
【0104】
本実施形態では距離測定は通信開始時に1回行う例を示したが、距離測定をどう行うかはこれに限るものではなく、通信開始時に複数回測定しても良いし、通信とは非同期に距離測定を行っても良いし、通信中にも距離測定を行い通信中に共通鍵を変更するようにしても良い。
【0105】
またこのフローチャートでは第3の実施形態、第4の実施形態で述べた測定誤差を考慮したフローにはなっていないが、距離測定後に第3の実施形態、第4の実施形態と同じように測定誤差を考慮する処理を行うようにしても良い。距離の測定ごとに共通鍵が変更されるので、何らかの原因で共通鍵が第三者に漏れてしまった場合でも、次の距離測定で自動的に新しい共通鍵に変更されることになる。
【0106】
本実施形態では共通鍵の生成に距離情報のみを使う例を示したが、第2の実施形態で示したように距離情報と時間情報から共通鍵を生成するようにしても良い。
【0107】
また無線のI/Fは主にノートPCなどの移動可能な端末で使われることが多い。このため複数回の距離測定したとき距離情報は異なる値をとることが期待できる。
【0108】
本発明の実施形態に係る、第6の実施形態について説明する。第5の実施形態において、測定距離を複数保存し、複数の測定距離から共通鍵を生成するとき、主に端末を使う場所が決まっている場合は、端末間の距離も同じ距離になる可能性が高く、共通鍵に偏りが出る可能性がある。これに対応するために、距離とその発生頻度を調査し、偏りの大きさに応じて共通鍵を生成する基となる情報の選択を変えるようにする。
【0109】
図12は端末間の測定した距離の分布を示した図である。例えば距離と発生頻度をグラフにしたものが図12に示すようになるとき、発生頻度の高い斜線で示した部分の距離は、なるべく使わないにようにする。これにより、共通鍵の偏りが少なくなることが期待できる。
【0110】
図13は、本発明の実施形態の第5の実施形態に係る、距離の偏りを考慮した距離情報の連結を示すフローチャート図である。
【0111】
図13はサブルーチンであり、距離情報自体は既に取得されているものとする。まず、距離と頻度から、距離情報の偏りを計算する(ステップS601)。そして距離の偏りにより3つの処理に分けることになる。
【0112】
距離の偏りが小さいかを判断(ステップS602)し、偏りが小さい場合(ステップS602、YES)は、過去n回の距離情報を選択して連結(ステップS603)して距離情報として終了する。偏りが小さくない場合(ステップS602、NO)は、距離の偏りが中程度であるかを判断(ステップS604)し、偏りが中程度である場合(ステップS604、YES)は、頻度の低いn回の距離情報を連結(ステップS605)して距離情報として終了する。偏りが中程度でない場合(ステップS604、NO)は、偏りが大きいので過去n回の距離情報に時間情報も加えて連結(ステップS606)して距離情報として終了する。
【0113】
このサブルーチンを使った実際の処理は、図14のフローチャートに示す。距離情報の連結を行う部分で偏りを考慮している以外は第5の実施形態と同様である。
本実施形態では第5の実施形態の複数の距離測定結果から共通鍵を生成する場合について述べたが、第1〜第4の実施形態のように1つの距離測定結果から共通鍵を生成する場合にも応用できる。
その場合は第5の実施形態の場合と同じように過去の距離測定結果を保存し、上述したのと同じように偏りを判断し、共通鍵を生成する部分でn個ではなく1個の距離測定結果から共通鍵を生成するようにしても良い。
【0114】
図14は、本発明の実施形態に係る、第6の実施形態を示すフローチャートである。このフローチャートは端末Aから通信を開始する例を示している。
【0115】
端末Aは通信開始を待ち、通信が開始されたか判断(ステップS701)し、通信が開始されない場合(ステップS701、NO)は、判断を繰り返す。通信が開始された場合(ステップS701、YES)は、通信開始時に相手端末Bとの距離を測定する(ステップS702)。
【0116】
次に距離測定結果を保存する(ステップS703)。距離と頻度から、距離情報の偏りを計算し、距離の偏りに基づいて距離情報を連結する。(ステップS704)。そして連結した距離測定結果に基づき共通鍵を生成する(ステップS705)。
【0117】
端末Bから共通鍵の共有の完了の通知が来るのを待ち、鍵の共有が完了したかを判断する(ステップS706)。鍵の共有が完了しない場合(ステップS706、NO)は、判断を繰り返す。鍵の共有が完了した場合(ステップS706、YES)は、共通鍵を用いた暗号化通信を開始する(ステップS707)。
【0118】
次に暗号化通信が終了したかを判断(ステップS708)し、通信が終了しない場合(ステップS708、NO)は、判断を繰り返す。通信が終了した場合(ステップS708、YES)は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【0119】
次に端末B動作を説明する。端末Bでは端末Aからの距離測定をトリガとし、端末Aとの距離を測定する。相手端末Aから距離測定があったかを判断(ステップS709)し、距離測定がない場合(ステップS709、NO)は、判断を繰り返す。距離測定があった場合(ステップS709、YES)は、相手端末Aとの距離を測定する(ステップS710)。
【0120】
次に距離測定結果を保存する(ステップS711)。距離と頻度から、距離情報の偏りを計算し、距離の偏りに基づいて距離情報を連結する。(ステップS712)。そして連結した距離測定結果に基づき共通鍵を生成する(ステップS713)。
【0121】
共通鍵の生成が終わった時点で端末Aに対し共通鍵の共有の完了の通知を送る(ステップS4714)。続いて共通鍵を用いた暗号化通信を開始する(ステップS715)。
【0122】
次に暗号化通信が終了したかを判断(ステップS716)し、通信が終了しない場合(ステップS716、NO)は、判断を繰り返す。通信が終了した場合(ステップS716、YES)は、距離に基づいた共通鍵を用いた暗号化通信のルーチンを終了する。
【0123】
また本発明に係る通信装置は、送信手段によって送信された暗号化データを共通鍵を用いて復号化する復号化手段を有することを特徴とする。
【0124】
また本発明に係る通信装置の距離測定手段は、通信時の時間を測定する時間測定手段を有し、共通鍵生成手段は、距離情報と時間測定手段による測定時間に基づいて共通鍵を生成することを特徴とする。
【0125】
また本発明に係る通信装置は、距離測定手段によって測定された距離情報に距離測定誤差を含ませないために測定データをマスクしたマスクデータを作成するデータマスク手段を有し、データマスク手段によって作成されたマスクデータに基づいて共通鍵を生成することを特徴とする。
【0126】
また本発明に係る通信装置は、共通鍵生成手段によって生成された共通鍵が通信相手と同一であるかを確認する共通鍵確認手段を有し、共通鍵確認手段によって共通鍵が同一でないことが確認された場合はデータマスク手段によって作成されたマスクデータに基づいて共通鍵を生成することを特徴とする。
【0127】
また本発明に係る通信装置は、距離測定手段によって測定した距離情報を複数回記憶する距離情報記憶手段を有し、距離情報記憶手段に記憶された複数の距離情報に基づいて共通鍵を生成することを特徴とする。
【0128】
また本発明に係る通信装置は、距離情報記憶手段によって記憶された複数の距離情報の分布の偏りを判断して偏りの少ない距離情報を選択する距離情報選択手段を有し、距離情報選択手段によって選択された距離情報に基づいて共通鍵を生成することを特徴とする。
【0129】
また本発明の実施形態によれば、共通鍵暗号方式の共通鍵を端末間の距離に基づいて生成しているので、共通鍵自体のやり取りを行うことなく、共通鍵を共有することが出来る。
【0130】
また本発明の実施形態によれば、端末間の距離に加えて、時間情報に基づいて共通鍵暗号方式の共通鍵を生成しているので、端末間の距離が変わらないような場合でも、共通鍵を更新することが出来る。
【0131】
また本発明の実施形態によれば、通信方式毎に決まる距離測定の誤差をマスクして、共通鍵を生成しているので、十分な距離測定精度を持たない距離測定方式であっても、共通鍵を共有することが出来る。
【0132】
また本発明の実施形態によれば、距離測定の誤差を自動的に判定して、共通鍵を生成しているので、十分な距離測定精度を持たない距離測定方式であっても、共通鍵を共有することが出来る。
【0133】
また本発明の実施形態によれば、複数回の距離測定結果に基づき、共通鍵を生成しているので、十分な距離測定精度を持たない距離測定方式であっても、共通鍵を共有することが出来る。
【0134】
また本発明の実施形態によれば、距離を監視し、通常と異なる距離を優先して共通鍵を生成し、自動的に時間情報も共通鍵の生成使うようにしているので、移動をあまり行わない端末であっても生成された共通鍵の偏りを抑えることが出来る。
【産業上の利用可能性】
【0135】
本発明によれば、通信端末間で通信を行う通信装置などの用途に適用できる。
【符号の説明】
【0136】
1 端末制御部
2 距離測定部
3 無線通信部
4 暗号化部
5 複合化部
6 記憶部
7 操作部
8 表示部
T1 送信時間
T2 受信時間
TA1 発信時間
TA2 受信時間
TB1 受信時間
TB2 送信時間
a、b、c、d、e、f、g オーバーヘッド
D 端末間距離
【先行技術文献】
【特許文献】
【0137】
【特許文献1】特開2005−51368号公報

【特許請求の範囲】
【請求項1】
データを送受信する通信手段と、
前記通信手段による通信時の通信相手との距離を測定する距離測定手段と、
前記距離測定手段によって測定された距離情報に基づいて共通鍵を生成する共通鍵生成手段と、
前記共通鍵生成手段によって生成された前記共通鍵を用いて通信するデータの暗号化を行う暗号化手段と、
前記暗号化手段によって暗号化された暗号化データを前記通信相手へと送信する送信手段と、
を備えることを特徴とする通信装置。
【請求項2】
前記送信手段によって送信された前記暗号化データを前記共通鍵を用いて復号化する復号化手段を有することを特徴とする請求項1に記載の通信装置
【請求項3】
前記距離測定手段は、通信時の時間を測定する時間測定手段を有し、
前記共通鍵生成手段は、前記距離情報と前記時間測定手段による測定時間に基づいて前記共通鍵を生成することを特徴とする請求項1又は2に記載の通信装置。
【請求項4】
前記距離測定手段によって測定された前記距離情報に距離測定誤差を含ませないために測定データをマスクしたマスクデータを作成するデータマスク手段を有し、
前記データマスク手段によって作成された前記マスクデータに基づいて共通鍵を生成することを特徴とする請求項1から3のいずれか1項に記載の通信装置。
【請求項5】
前記共通鍵生成手段によって生成された前記共通鍵が前記通信相手と同一であるかを確認する共通鍵確認手段を有し、
前記共通鍵確認手段によって前記共通鍵が同一でないことが確認された場合は前記データマスク手段によって作成された前記マスクデータに基づいて前記共通鍵を生成することを特徴とする請求項4に記載の通信装置。
【請求項6】
前記距離測定手段によって測定した前記距離情報を複数回記憶する距離情報記憶手段を有し、
前記距離情報記憶手段に記憶された複数の距離情報に基づいて前記共通鍵を生成することを特徴とする請求項1から5のいずれか1項に記載の通信装置。
【請求項7】
前記距離情報記憶手段によって記憶された前記複数の距離情報の分布の偏りを判断して偏りの少ない距離情報を選択する距離情報選択手段を有し、
前記距離情報選択手段によって選択された距離情報に基づいて前記共通鍵を生成することを特徴とする請求項6に記載の通信装置。
【請求項8】
複数の通信装置を備える通信システムであって、
前記通信装置は、他の通信装置と通信を行う通信手段と、
前記通信手段による通信時の前記他の通信装置との距離を測定する距離測定手段と、
前記距離測定手段によって測定された距離情報に基づいて共通鍵を生成する共通鍵生成手段と、
前記共通鍵生成手段によって生成された前記共通鍵を用いて通信するデータの暗号化を行う暗号化手段と、
前記暗号化手段によって暗号化された暗号化データを前記他の通信装置へと送信する送信手段と、を有し、
前記他の通信装置は、前記送信手段によって送信された前記暗号化データを前記共通鍵を用いて復号化する復号化手段を有することを特徴とする通信システム。
【請求項9】
データを送受信する通信ステップと、
前記通信ステップによる通信時の通信相手との距離を測定する距離測定ステップと、
前記距離測定ステップによって測定された距離情報に基づいて共通鍵を生成する共通鍵生成ステップと、
前記共通鍵生成ステップによって生成された前記共通鍵を用いて通信するデータの暗号化を行う暗号化ステップと、
前記暗号化ステップによって暗号化された暗号化データを前記通信相手へと送信する送信ステップと、を備えることを特徴とする通信方法。
【請求項10】
データを送受信する通信処理と、
前記通信処理による通信時の通信相手との距離を測定する距離測定処理と、
前記距離測定処理によって測定された距離情報に基づいて共通鍵を生成する共通鍵生成処理と、
前記共通鍵生成処理によって生成された前記共通鍵を用いて通信するデータの暗号化を行う暗号化処理と、
前記暗号化処理によって暗号化された暗号化データを前記通信相手へと送信する送信処理と、をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2010−187231(P2010−187231A)
【公開日】平成22年8月26日(2010.8.26)
【国際特許分類】
【出願番号】特願2009−30345(P2009−30345)
【出願日】平成21年2月12日(2009.2.12)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】