(57)【要約】【課題】所望のサービスを提供する通信装置に簡易かつ迅速かつ正しく接続可能な近接通信装置、携帯端末を提供する。【解決手段】Ｂｌｕｅｔｏｏｔｈ装置１０は、バス１に接続されたＣＰＵ２、メモリ３、ＲＯＭ４、記憶装置５、ＲＳ−２３２Ｃコントローラ６及び有線／無線通信部７と、ＲＳ−２３２Ｃコントローラ６に接続されたＢＴ送受信部８，９とを有する。Ｂｌｕｅｔｏｏｔｈ携帯端末は、バスに接続された、メモリ、ＲＯＭ、Ａ／Ｄ変換器、Ｄ／Ａ変換器、偏心モータ、通信部、表示部、キー入力部、ＥＥＰＲＯＭ、選択指示部及びＢＴ送受信部を有する。ＢＴ送受信部８がＢｌｕｅｔｏｏｔｈ携帯端末２０と通信を行うのに必要な接続情報を、近距離通信のみ可能なＢＴ送受信部９を介してＢｌｕｅｔｏｏｔｈ携帯端末に送信するため、Ｂｌｕｅｔｏｏｔｈ携帯端末が誤って別のＢｌｕｅｔｏｏｔｈ装置１０に接続するおそれがなくなる。【選択図】  図１
2004166090.tif 000002
【特許請求の範囲】
【請求項１】
第１の範囲内に位置する他の通信装置との間で通信を行う第１通信手段と、
前記第１の範囲よりも狭い第２の範囲内に位置する他の通信装置との間で通信を行う第２通信手段と、
前記第２通信手段が他の通信装置から装置識別情報の送信要求を受けると、前記第１通信手段が該他の通信装置と接続を行うのに必要な接続情報を、前記第２通信手段を介して該他の通信装置に送信する通信制御手段と、を備えることを特徴とする近接通信装置。
【請求項２】
前記通信制御手段は、前記第２通信手段が他の通信装置から装置識別情報の送信要求を受けると、前記第１通信手段が該他の通信装置と接続を行うのに必要な接続情報の他に、前記第１通信手段の信頼性を検証するのに必要な検証情報を、前記第２通信手段を介して該他の通信装置に送信することを特徴とする請求項１に記載の近接通信装置。
【請求項３】
前記検証情報は、前記第１通信手段の装置識別情報と前記第２通信手段の装置識別情報とを合わせたデータに対してハッシュ演算を行って得られたハッシュ値を、予め定めた暗号鍵を用いて暗号化したものであることを特徴とする請求項２に記載の近接通信装置。
【請求項４】
前記通信制御手段は、前記第２通信手段が他の通信装置から装置識別情報の送信要求を受けると、前記第１通信手段が該他の通信装置と接続を行うのに必要な接続情報の他に、該他の通信装置が前記第１通信手段と接続するための１回限りのパスワードを含む検証情報を、前記第２通信手段を介して該通信装置に送信することを特徴とする請求項１に記載の近接通信装置。
【請求項５】
前記検証情報は、他の通信装置が前記第１通信手段と接続するのに用いるリンクキーまたはＰＩＮコード、あるいはアプリケーションで使用される認証用のキーであることを特徴とする請求項４に記載の近接通信装置。
【請求項６】
前記第１通信手段の基準クロックと前記第２通信手段の基準クロックとを同期化させる同期化手段を備えることを特徴とする請求項１及至５のいずれかに記載の近接通信装置。
【請求項７】
第１の範囲内に位置する他の通信装置との間で通信を行う第１通信手段と、前記第１の範囲よりも狭い第２の範囲内に位置する他の通信装置との間で通信を行う第２通信手段と、を有する通信装置との間で、通信リンクを確立してサービスの提供を受ける携帯端末であって、
通信可能な通信装置の探索を行う探索手段と、
前記探索された通信装置の前記第２通信手段に対して、装置識別情報の送信を要求する装置識別情報送信要求手段と、
前記装置識別情報送信要求手段による要求に対する返答データの中から、前記第１通信手段と接続を行うのに必要な接続情報を取得する接続情報取得手段と、前記取得された接続情報を用いて前記第１通信手段と通信を行う第３通信手段と、を備えることを特徴とする携帯端末。
【請求項８】
前記接続情報取得手段は、前記接続情報の他に、前記第１通信手段の信頼性を検証するのに必要な検証情報を取得し、その検証情報を使用して、他の通信装置が信頼できるかどうかの判定を行い、信頼できると判定した場合には、その装置に対して接続要求を行うことを特徴とする請求項７に記載の携帯端末。
【請求項９】
前記検証情報は、前記第１通信手段の装置識別情報と前記第２通信手段の装置識別情報とを合わせたデータに対してハッシュ演算を行って得られたハッシュ値を、予め定めた暗号鍵を用いて暗号化したものであることを特徴とする請求項８に記載の携帯端末。
【請求項１０】
前記接続情報取得手段は、前記接続情報の他に、自端末が前記第１通信手段と接続するための１回限りのパスワードを取得することを特徴とする請求項１に記載の近接通信装置。
【請求項１１】
前記検証情報は、自端末が前記第１通信手段と接続するのに用いるリンクキーまたはＰＩＮコード、あるいはアプリケーションで使用される認証用のキーであることを特徴とする請求項８に記載の携帯端末。
【請求項１２】
前記第１通信手段の基準クロックと前記第２通信手段の基準クロックとのオフセット情報を、前記第２通信手段から取得するオフセット取得手段を備え、
前記第３通信手段は、前記オフセット情報に基づいて前記第１通信手段と通信を行うタイミングを決定することを特徴とする請求項７に記載の携帯端末。
【請求項１３】
第１の範囲内に位置する他の通信装置との間で第１の通信処理を行うステップと、
前記第１の範囲よりも狭い第２の範囲内に位置する他の通信装置との間で第２の通信処理を行うステップと、
前記第２の通信処理にて他の通信装置からの装置識別情報の送信要求を受けると、前記第１の通信処理が該他の通信装置と接続を行うのに必要な接続情報を、前記第２通信処理を介して該他の通信装置に送信するステップと、を備えることを特徴とする近接通信装置のコンピュータ読み取り可能な制御プログラム。
【請求項１４】
第１の範囲内に位置する他の通信装置との間で通信を行う第１通信手段と、前記第１の範囲よりも狭い第２の範囲内に位置する他の通信装置との間で通信を行う第２通信手段と、を有する通信装置との間で、通信リンクを確立してサービスの提供を受ける携帯端末のコンピュータ読み取り可能な制御プログラムであって、
通信可能な通信装置の探索を行うステップと、
前記探索された通信装置の前記第２通信手段に対して、装置識別情報の送信を要求するステップと、
前記装置識別情報の送信要求に対する返答データの中から、前記第１通信手段と接続を行うのに必要な接続情報を取得するステップと、
前記取得された接続情報を用いて前記第１通信手段と通信を行うステップと、を備えることを特徴とする携帯端末のコンピュータ読み取り可能な制御プログラム。
【請求項１５】
携帯端末と、所定の範囲内に位置する前記携帯端末との間で通信を行うことが可能な近接通信手段と、を備えた通信システムにおいて、
前記近接通信装置は、
第１の範囲内に位置する他の通信装置との間で通信を行う第１通信手段と、
前記第１の範囲よりも狭い第２の範囲内に位置する他の通信装置との間で通信を行う第２通信手段と、
前記第２通信手段が他の通信装置から装置識別情報の送信要求を受けると、前記第１通信手段が該他の通信装置と接続を行うのに必要な接続情報を、前記第２通信手段を介して該他の通信装置に送信する通信制御手段と、を有し、
前記携帯端末は、
通信可能な通信装置の探索を行う探索手段と、
前記探索された通信装置の前記第２通信手段に対して、装置識別情報の送信を要求する装置識別情報送信要求手段と、
前記装置識別情報送信要求手段による要求に対する返答データの中から、前記第１通信手段と接続を行うのに必要な接続情報を取得する接続情報取得手段と、前記取得された接続情報を用いて前記第１通信手段と通信を行う第３通信手段と、を有することを特徴とする通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、Ｂｌｕｅｔｏｏｔｈなどの比較的狭い範囲で通信を行う近接通信装置と、この種の近接通信装置と通信を行う携帯端末とに関する。
【０００２】
【従来の技術】
最近伝送距離が１０ｍ程度である近距離無線通信方式が注目を集めている。従来の無線ＬＡＮの有効な伝送距離範囲が１００ｍ以上であるのに対し、近距離無線通信方式は、伝送範囲が狭い分、使用する電力が少ないので、携帯電話やＰＤＡ等の携帯型情報処理装置（以下、簡単に携帯端末と呼ぶ）などバッテリーに制限がある情報処理装置に適している。
【０００３】
Ｂｌｕｅｔｏｏｔｈ（登録商標）は、このような近距離無線通信方式の１つであり、近年、このＢｌｕｅｔｏｏｔｈ通信手段を搭載した携帯端末が普及し始めている（非特許文献１参照）。
【０００４】
Ｂｌｕｅｔｏｏｔｈは、デバイスの単価が安く、装置の小型化が可能なため、Ｂｌｕｅｔｏｏｔｈ通信機能を備えた装置が今後いたるところに普及すると予想される。Ｂｌｕｅｔｏｏｔｈが普及すると、任意の場所で、各場所に応じたサービスや情報の提供を受けられるようになる。
【０００５】
例えば、コンビニ、スーパ及び小売店などでは、電子クーポンサービス、電子ポイントサービス、電子決済、レシート及び領収書発行などの購買者向けのサービスの提供が可能になる。また、電子チケットによりゲート開閉の制御、自動販売機での決済や割引サービス、駐車場、ガソリンスタンド及びドライブスルーでの料金支払いなどへの応用も期待されている。他に、インターネットへのアクセス、特定の場所に依存する情報配信及び利用者の位置情報の提供なども可能となる。
【０００６】
以下、Ｂｌｕｅｔｏｏｔｈ通信機能を備えた携帯端末（以下、簡単にＢｌｕｅｔｏｏｔｈ携帯端末と呼ぶ）と、Ｂｌｕｅｔｏｏｔｈ通信機能を備えて各種のサービスを提供する情報処理装置（以下、簡単にＢｌｕｅｔｏｏｔｈ装置と呼ぶ）との間で、Ｂｌｕｅｔｏｏｔｈによる接続を確立し、当該Ｂｌｕｅｔｏｏｔｈ携帯端末を所持するユーザにＢｌｕｅｔｏｏｔｈ装置がサービスを提供する場合を例にとって、従来技術を説明する。
【０００７】
まず、Ｂｌｕｅｔｏｏｔｈ携帯端末が任意の場所で任意の相手からサービスを受けるための手順を説明する。図１２はＢｌｕｅｔｏｏｔｈ携帯端末が任意の場所で任意の相手からサービスを受けるための従来の処理手順を示すフローチャートである。まず、サービスを受けるためのアプリケーションを起動する（ステップＳ１）。次に、Ｂｌｕｅｔｏｏｔｈ携帯端末は、通信可能な端末を発見するためにインクワイアリを通常１０秒間行う（ステップＳ２）。
【０００８】
一定時間経過後、インクワイアリが完了し、Ｂｌｕｅｔｏｏｔｈ携帯端末は、発見したおのおのＢｌｕｅｔｏｏｔｈ装置あるいはその装置が提供するサービスの識別名である、リモートネームを取得する（ステップＳ３）。
【０００９】
次に、すべてのＢｌｕｅｔｏｏｔｈ装置のリモートネームを取得した後、取得したリモートネームの一覧を利用者に提示する（ステップＳ４）。次に、Ｂｌｕｅｔｏｏｔｈ携帯端末は、利用者が選択したＢｌｕｅｔｏｏｔｈ装置に対してＡＣＬ接続要求を行う（ステップＳ５）。
【００１０】
次に、Ｂｌｕｅｔｏｏｔｈ携帯端末は、ＡＣＬ接続完了後、サービス情報取得コマンドを送信する（ステップＳ６）。次に、Ｂｌｕｅｔｏｏｔｈ携帯端末は、サービス情報を取得し、アプリケーションが利用するプロファイルをサポートしているか検査する（ステップＳ７）。
【００１１】
次に、Ｂｌｕｅｔｏｏｔｈ携帯端末は、プロファイルをサポートしている場合には、そのプロファイルに関する接続情報を取得する（ステップＳ８）。次に、Ｂｌｕｅｔｏｏｔｈ携帯端末は、そのプロファイルに対して接続要求を行う（ステップＳ９）。
【００１２】
次に、Ｂｌｕｅｔｏｏｔｈ携帯端末は、プロファイルの接続完了後、アプリケーションレベルでサーバ認証を行う（ステップＳ１０）。
【００１３】
以上の手順により、利用者は、Ｂｌｕｅｔｏｏｔｈ携帯端末を使用して所望のサービスを受けることが可能となる。
【００１４】
Ｂｌｕｅｔｏｏｔｈ装置とＢｌｕｅｔｏｏｔｈ携帯端末との接続処理については、従来から種々の手法が提案されている（例えば、特許文献１，２、非特許文献１参照）。
【００１５】
特許文献１には、最初に信号レベルを低くしておき、接続が確立されたらレベルを高くする手法が開示されている。特許文献２には、２系統のＢｌｕｅｔｏｏｔｈ受信機を設けて、ダイバーシチ受信機を構成する例が開示されている。
【００１６】
【特許文献１】
特開２００２−００９６９５公報
【特許文献２】
特開２００２−２３７７６４公報
【非特許文献１】
Ｍｅｍｂｅｒ  Ｗｅｂ  Ｓｉｔｅ、“Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ”他、［ｏｎｌｉｎｅ］、Ｔｈｅ  Ｂｌｕｅｔｏｏｔｈ  ＳＩＧ，  Ｉｎｃ．、［  平成１４年１０月２９日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｂｌｕｅｔｏｏｔｈ．ｏｒｇ＞
【００１７】
【発明が解決しようとする課題】
しかしながら、通信可能な装置が１台しか存在しない場合でも、上記手順を実行すると１０数秒の時間を有する。特に通信可能な装置が多数存在する場合は、リモートネームの取得には、装置の存在数に比例した時間がかかる。仮にリモートネームの取得に１秒必要とすると、２０台存在すると、接続に２０秒の時間を有することになる。
【００１８】
接続に時間がかかると、利用者の利便性が悪いだけでなく、リモートネームから所望のサービスを選択する際にも利用者に負荷をかけることになる。さらに利用者の誤った操作により、不本意なサービスに接続してしまう状況もありうる。
【００１９】
このような不具合を解消する方策として、インクワイアリにより取得できる情報に含まれるＢｌｕｅｔｏｏｔｈ装置の種類に関する情報を記したＣＯＤ（Ｃｌａｓｓ  ｏｆ  Ｄｅｖｉｃｅ）を用いる手法がある。これにより、所望のサービスを提供する装置のみを絞り込むことができる。
【００２０】
しかしながら、ＣＯＤは装置の種類であってサービスそのものを識別しているのではない。例えば、ＣＯＤに情報配信装置のカテゴリーがあったとしても、それが、どのような情報を配信する装置か、ＣＯＤのみでは識別できず、リモートネームで相手装置の名前を取得して初めてわかる。
【００２１】
例えば、スーパーなどで複数のＰＯＳが存在しており、利用者の目の前のＰＯＳに接続して、電子決済を実現するためには、目の前のＰＯＳと短時間で目の前のＰＯＳと接続できる必要がある。
【００２２】
利用者の操作手順削減のために、Ｂｌｕｅｔｏｏｔｈの通信デバイスの出力を調整したり、送信機とアンテナの間に減衰器を挿入することにより、Ｂｌｕｅｔｏｏｔｈ装置の通信エリアを数１０ｃｍの近傍に限定する方法が考えられる。
【００２３】
しかしながら、このような方法では、利用者はサービスを受ける間、数１０ｃｍの距離内にＢｌｕｅｔｏｏｔｈ携帯端末を置いたままにしなければならない。
【００２４】
あるいは、ＰＯＳレジごとに専用の台を準備し、この台にＢｌｕｅｔｏｏｔｈ携帯端末を置くようにすることも考えられる。しかし、ＰＯＳレジを通るたびに専用台にＢｌｕｅｔｏｏｔｈ携帯端末をいちいち置かねばならず、煩わしい上に、置き忘れてしまうおそれもある。
【００２５】
本発明は、このような点に鑑みてなされたものであり、その目的は、所望のサービスを提供する通信装置に簡易かつ迅速かつ正しく接続可能な近接通信装置、携帯端末、近接通信装置の制御プログラム及び携帯端末の制御プログラムを提供することにある。
【００２６】
【課題を解決するための手段】
上述した課題を解決するために、本発明は、第１の範囲内に位置する他の通信装置との間で通信を行う第１通信手段と、前記第１の範囲よりも狭い第２の範囲内に位置する他の通信装置との間で通信を行う第２通信手段と、前記第２通信手段が他の通信装置から装置識別情報の送信要求を受けると、前記第１通信手段が該他の通信装置と接続を行うのに必要な接続情報を、前記第２通信手段を介して該他の通信装置に送信する通信制御手段と、を備える。
【００２７】
また、第１の範囲内に位置する他の通信装置との間で通信を行う第１通信手段と、前記第１の範囲よりも狭い第２の範囲内に位置する他の通信装置との間で通信を行う第２通信手段と、を有する通信装置との間で、通信リンクを確立してサービスの提供を受ける携帯端末であって、通信可能な通信装置の探索を行う探索手段と、前記探索された通信装置の前記第２通信手段に対して、装置識別情報の送信を要求する装置識別情報送信要求手段と、前記装置識別情報送信要求手段による要求に対する返答データの中から、前記第１通信手段と接続を行うのに必要な接続情報を取得する接続情報取得手段と、前記取得された接続情報を用いて前記第１通信手段と通信を行う通信手段と、を備える。
【００２８】
【発明の実施の形態】
以下、本発明に係る近接通信装置、携帯端末、近接通信装置の制御プログラム及び携帯端末の制御プログラムについて図面を参照しながら具体的に説明する。以下では主に、Ｂｌｕｅｔｏｏｔｈ携帯端末とＢｌｕｅｔｏｏｔｈ装置の間で、Ｂｌｕｅｔｏｏｔｈの仕様で接続を確立し、当該Ｂｌｕｅｔｏｏｔｈ携帯端末を所持するユーザに対して、Ｂｌｕｅｔｏｏｔｈ装置が情報を提供する場合を例にとって説明する。
【００２９】
（第１の実施形態）
図１は本発明に係る近接通信装置の第１の実施形態であるＢｌｕｅｔｏｏｔｈ装置１０の内部構成を示す図である。Ｂｌｕｅｔｏｏｔｈ装置１０は、バス１に接続されたＣＰＵ２、メモリ３、ＲＯＭ４、記憶装置５、ＲＳ−２３２Ｃコントローラ６及び有線／無線通信部７と、ＲＳ−２３２Ｃコントローラ６に接続されたＢｌｕｅｔｏｏｔｈ送受信部（以下、ＢＴ送受信部）８，９とを有する。
【００３０】
ＢＴ送受信部８は、アンテナ、ＲＦ部及びベースバンド部で構成される従来のＢｌｕｅｔｏｏｔｈモジュールと同じ構成でよいが、ＢＴ送受信部９は、ＢＴ送受信部８よりも通信範囲が狭いことを特徴とする。
【００３１】
図２はＢＴ送受信部９の内部構成の一例を示すブロック図である。通信範囲を狭くするために、アンテナ１１とＢｌｕｅｔｏｏｔｈ送受信機能をもつＢＴモジュール１２との間に減衰回路（アッテネータ）１３を挿入し、減衰回路１３とＢＴモジュール１２をシールドケース１４に収納している。このシールドケース１４は、２．４Ｇ帯域の電波を遮蔽可能なシールド材で形成されている。
【００３２】
あるいは、ＢＴモジュールが送信電力の制御が可能であれば、あらかじめ送信電力を小さく設定することにより、減衰回路＋シールドと同等の効果を得ることが可能である。
【００３３】
ＣＰＵ２、メモリ３、ＲＯＭ４、記憶装置５、ＲＳ−２３２Ｃ６及び有線／無線通信部７を有するＢｌｕｅｔｏｏｔｈ装置本体は例えば制御ＰＣ１５に内蔵される。この制御ＰＣ１５と上述したシールドケース１４とを、コネクタを介してケーブル１６で接続する場合は、コネクタやケーブル１６もシールドするのが望ましい。同様に、シールドケース１４とアンテナ１１間もシールドするのが望ましい。
【００３４】
ＢＴ送受信部９は、単にＢｌｕｅｔｏｏｔｈ送受信用モジュールのみで構成してもよいし、ＢＴ送受信部９に別途ＣＰＵやメモリを搭載し、上位のプロトコル、例えばＬ２ＣＡＰやＲＦＣＯＭＭなどの処理を行ってもよい。
【００３５】
Ｂｌｕｅｔｏｏｔｈ送受信用モジュールのみで構成する場合、仕様書で定義されたＨＣＩ（Ｈｏｓｔ  Ｃｏｎｔｒｏｌｌｅｒ  Ｉｎｔｅｒｆａｃｅ）コマンドを送信し、その結果をイベントとして受信する。Ｂｌｕｅｔｏｏｔｈプロトコルは、情報提供を行うアプリケーションプログラムと共に、ＣＰＵ２によりメモリ３にロードされて実行される。その他、ＯＳ、ドライバ及びアプリケーションは、メモリ３に記憶されている。ＢＴ送受信部９に別途ＣＰＵやメモリを搭載する構成の場合、実装に依存したコマンドやイベントを使用して、ＢＴ送受信部９の制御とデータの送受信を行う。
【００３６】
ＢＴ送受信部８は、プロトコルスタックを使用する必要がないため、直接ＨＣＩコマンドをＣＯＭポートに送信することにより制御する。
【００３７】
なお、ＢＴ送受信部８，９は、必ずしもＲＳ−２３２Ｃコントローラ６を介してＢｌｕｅｔｏｏｔｈ装置本体に接続する必要はなく、例えば、ホストのバス１に直接接続してもよいし、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）を介して、接続してもよい。
【００３８】
利用者から提供を受けた情報は記憶装置５に格納しておき、必要に応じて利用者に提供できるようにする。あるいは、インターネットに接続されている有線／無線通信部７を介して、Ｂｌｕｅｔｏｏｔｈ携帯端末２０から送られたコマンドを解釈してインターネット上のサーバから情報を取得して、その情報を利用者に提供してもよい。あるいは、コマンドをそのままサーバに送信し、情報をそのまま送信してもよい。
【００３９】
記憶装置５としては、ハードディスク、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＯＭ及び半導体ディスク等が考えられる。有線接続としては、イーサネット（登録商標）とＩＰプロトコル、あるいは、電話線とＰＰＰとＩＰなどの組み合わせが考えられる。無線接続も同様に無線インターネットを使用するか、携帯電話やＰＨＳのパケット通信を使用しても同等の効果が得られる。
【００４０】
Ｂｌｕｅｔｏｏｔｈ装置１０が自装置内の記憶装置５に保存された情報を提供する場合には、オブジェクトプッシュプロファイルやファイル転送プロファイルが用いられ、Ｌ２ＣＡＰ、ＲＦＣＯＭＭ及びＦＴＰプロトコルが使用される。有線／無線通信部７を用いてインターネット上の情報にアクセスする場合は、ダイアルアッププロファイル、あるいは、ＰＡＮプロファイルが用いられ、前者は、Ｌ２ＣＡＰ、ＲＦＣＯＭＭ、ＰＰＰ、ＩＰ及びＨＴＴＰプロトコルが使用される。後者の場合は、Ｌ２ＣＡＰ、イーサエミュレーション、ＩＰ及びＨＴＴＰプロトコルが使用される。
【００４１】
図３はＢｌｕｅｔｏｏｔｈ携帯端末２０の内部構成の一例を示すブロック図である。図３のＢｌｕｅｔｏｏｔｈ携帯端末２０は、バス２１に接続されたＣＰＵ２２、メモリ２３、ＲＯＭ２４、Ａ／Ｄ変換器２５、Ｄ／Ａ変換器２６、偏心モータ２７、通信部２８、表示部２９、キー入力部３０、ＥＥＰＲＯＭ３１、選択指示部３２及びＢＴ送受信部３３を有する。Ａ／Ｄ変換器２５にはマイク３４が接続され、Ｄ／Ａ変換器２６にはスピーカ３５が接続されている。通信部２８は、無線により基地局３６と通信を行う。
【００４２】
ＢＴ送受信部３３は、例えば、Ｂｌｕｅｔｏｏｔｈ装置１０との間に無線通信路を確立し、Ｂｌｕｅｔｏｏｔｈ装置１０やインターネット上のサーバから情報を取得するコマンドを送信したり、サーバから提供される情報を取得するために、データの送受信を行う。
【００４３】
ＢＴ送受信部３３は、Ｂｌｕｅｔｏｏｔｈ装置１０やＢＴ送受信部９と同様の構成でも異なる構成でもよい。
【００４４】
音声通話機能は、従来の携帯電話と同様の機能を有し、例えば、通信部２８は、基地局３６との間で位置登録、発呼・着呼時の呼制御を行ってデータの送受信を行い、通信が終了すると、切断の呼制御を行い、通信中にはハンドオーバ等を行う。
【００４５】
通信部２８は、基地局３６から、接続要求を受信した場合には、スピーカ３５から呼び出し音を出力する、あるいは、偏芯モータ２７を駆動させて携帯端末の筐体を振動させることにより、携帯端末の所有者であるユーザの注意を喚起する。ユーザの接続了解指示の後、キャリアは２地点間の回線接続を行い、通信が開始される。
【００４６】
通信時には、Ｂｌｕｅｔｏｏｔｈ携帯端末２０は、マイク３４から入力された音声をＡ／Ｄ変換部２５でアナログ信号からデジタル信号に変換し、ＣＰＵ２２の制御の下、デジタルデータの圧縮処理を行い、通信部２８を通じて近接の基地局３６に送信する。また、通信部２８で受信された信号は、ＣＰＵ２２の制御の下、伸張処理等が施されて元の信号に戻され、Ｄ／Ａ変換部２６でデジタル信号からアナログ信号に変換され、スピーカ３５から出力される。
【００４７】
ＢＴ送受信部３３から取得した情報は、そのまま、あるいは、ＨＴＭＬ文書の場合はタグを解釈し、表示用データを作成して表示部２９に表示する。
【００４８】
また、Ｂｌｕｅｔｏｏｔｈ装置１０からサービス提供を受ける機能は、アプリケーションプログラムで実現する。近年、ＪＡＶＡの仮想マシンを携帯電話内で実行し、ＪＡＶＡアプリケーションプログラムを仮想マシン上で実行することが提案されている。ＪＡＶＡアプリケーションは公衆網を通じて取得し、携帯電話の記憶装置に保存することで、利用者は所望のアプリケーションを選択できる。携帯電話のＪＡＶＡアプリケーションを保存するメモリ空間は、通常の空間と異なる管理をされており、他のアプリケーションからアクセスを行うことはできない。そのため、アプリケーションに内蔵された情報、あるいは、後にＪＡＶＡアプリケーションが取得した情報は、第三者によりアクセスできない安全なものとして管理される。それゆえ、サービス提供に必要な秘密鍵を記録することが可能である。
【００４９】
以下では、サービスを受けるアプリケーションが予めＢｌｕｅｔｏｏｔｈ携帯端末２０に保存されているものと仮定する。また、サービスの提供を受けるための秘密の共有鍵がアプリケーションと合わせてすでに保存されているものと仮定する。
【００５０】
図４は第１の実施形態のＢｌｕｅｔｏｏｔｈ装置１０の処理手順を示すフローチャートである。まず、情報提供を行うＢｌｕｅｔｏｏｔｈ装置１０の電源投入時に、必要なプログラムを記憶装置５からメモリ３に読み込み、情報提供を実現するアプリケーションプログラムを起動する。アプリケーションプログラムは、利用者の所持するＢｌｕｅｔｏｏｔｈ携帯端末２０との接続を実現するためにＢＴ送受信部８，９の制御とＢｌｕｅｔｏｏｔｈプロトコルを実現するスタックを実行する。まず、ＢＴ送受信部９に装置識別情報を設定する（ステップＳ２１）。より具体的には、ＢＴ送受信部９のＢｌｕｅｔｏｏｔｈデバイスのデバイスクラスをオブジェクト送信系、あるいは、インフォメーション系として設定する。
【００５１】
次に、ＢＴ送受信部８との接続情報を作成し（ステップＳ２２）、作成した接続情報をＢＴ送受信部８のＢｌｕｅｔｏｏｔｈデバイスのローカルネームとして設定する（ステップＳ２３）。通常、ローカルネームとしては、提供するサービス（浜松町駅前案内サービス）や装置の種別情報（ｅｘ．情報提供用アクセスポイントのＢＴアドレス）を示す文字列を設定する。本実施形態では、ＢＴ送受信部８のローカルネームとＢＴ送受信部９のローカルネームとを合わせたローカルネームを作成する。
【００５２】
また、装置識別情報が含まれていることを示す専用の識別文字を付けるとともに、サービス名称とＢＴアドレスとを区別できるように、サービス名称の長さを示す文字列を加える。
【００５３】
例えば、サービス名称を１０文字の「浜松町駅周辺案内情報」とし、ＢＴアドレスを１２文字の「０１２３４５ＡＢＣＤＥＦ」とし、専用の識別文字を２文字の「！！」とすると、接続情報は「！！０１０浜松町駅周辺案内情報０１２３４５ＡＢＣＤＥＦ」となる。「０１０」はサービス名称の長さを示す文字列である。
【００５４】
次に、ＢＴ送受信部８のＢｌｕｅｔｏｏｔｈデバイスを接続可能に設定し（ステップＳ２４）、ＢＴ送受信部９のＢｌｕｅｔｏｏｔｈデバイスを発見可能、通信可能とすることにより、待機状態となる（ステップＳ２５）。
【００５５】
以下の発見及び接続の処理は、通常ホストからの指示によりＢｌｕｅｔｏｏｔｈデバイス内のファームウェアで行われる。また本実施形態では、Ｂｌｕｅｔｏｏｔｈ携帯端末２０がインクワイアリを行い、Ｂｌｕｅｔｏｏｔｈ装置１０がインクワイアリスキャンを行う（ステップＳ２６）。インクワイアリを行う側をマスター、インクワイアリスキャンを行う側をスレーブと呼ぶ。この場合、マスターはＢｌｕｅｔｏｏｔｈ携帯端末２０、スレーブはＢｌｕｅｔｏｏｔｈ装置１０である。
【００５６】
インクワイアリスキャン状態に設定されたＢｌｕｅｔｏｏｔｈ装置１０のＢＴ送受信部９のみがＢｌｕｅｔｏｏｔｈ携帯端末２０からのインクワイアリに返答する（ステップＳ２７）。
【００５７】
インクワイアリを行うために、Ｂｌｕｅｔｏｏｔｈ携帯端末２０は、ＩＱパケットを一定期間、周囲にブロードキャストする。ＩＱパケットにはＩＡＣ（Ｉｎｑｕｉｒｙ  Ａｃｃｅｓｓ  Ｃｏｄｅ）が含まれており、このコードを使用して、すべての、あるいは、特定のデバイスの発見を行う。自装置に関連するＩＡＣを含むＩＱパケットを受信したＢｌｕｅｔｏｏｔｈ装置１０は、ランダムに決められた時間待機後、再度ＩＱパケットを受信すると、Ｂｌｕｅｔｏｏｔｈ装置１０のＢｌｕｅｔｏｏｔｈアドレス、クロック、デバイスクラスなどの属性をＢｌｕｅｔｏｏｔｈ携帯端末２０に返信する。
【００５８】
本実施形態では、ＢＴ送受信部９を発見可能に設定しているため、Ｂｌｕｅｔｏｏｔｈ携帯端末２０が通信可能な装置として発見できるのはＢＴ送受信部９となる。ただし、ＢＴ送受信部９の通信範囲は、減衰回路１３により送信電力が減少されているため、ＢＴ送受信部９の近傍に存在するＢｌｕｅｔｏｏｔｈ携帯端末２０のみ、ＦＨＳパケットが受信可能である。
【００５９】
Ｂｌｕｅｔｏｏｔｈ携帯端末２０は各Ｂｌｕｅｔｏｏｔｈ装置１０からの返信であるＦＨＳパケットを受け取ると、ＦＨＳパケットに含まれているＢｌｕｅｔｏｏｔｈ装置１０のＢｌｕｅｔｏｏｔｈアドレス、クロック及びＣＯＤを取得し、あらかじめＣＯＤが指定されていれば、指定されたＣＯＤを持つＢｌｕｅｔｏｏｔｈアドレスのみを一時的にメモリ２３に記録する。
【００６０】
プログラムがインクワイアリをキャンセルするか、決められた時間インクワイアリを行うと、インクワイアリ完了イベントをホストに通知する。ホスト上のプログラムはこのイベントを受信すると（ステップＳ２８）、発見した装置のリモートネーム取得コマンドの送信要求をＢｌｕｅｔｏｏｔｈ送受信部３３に行う。Ｂｌｕｅｔｏｏｔｈ送受信部３３は、リモートネーム取得コマンドをＢｌｕｅｔｏｏｔｈ装置１０のＢＴ送受信部９に送信し、Ｂｌｕｅｔｏｏｔｈ装置１０のＢＴ送受信部８のローカルネーム（装置識別情報）を取得する（ステップＳ２９）。リモートネームの取得には、インクワイアリで取得したＢｌｕｅｔｏｏｔｈ装置１０のクロック情報を用いることにより、取得時間を短縮することができる。
【００６１】
マスターであるＢｌｕｅｔｏｏｔｈ携帯端末２０のＢＴ送受信部３３はリモートネームの取得完了後、そのイベントをホストに通知する。
【００６２】
Ｂｌｕｅｔｏｏｔｈ携帯端末２０のプログラムは、接続情報を解析することによりＢｌｕｅｔｏｏｔｈ装置１０のＢＴ送受信部８のＢＴアドレスを取得し、その値を使用して、ＢＴ送受信部８への接続要求を行う（ステップＳ３０）。
【００６３】
スレーブであるＢｌｕｅｔｏｏｔｈ装置１０のＢＴ送受信部８は、マスターからの接続要求に対して接続許可を返答することにより、Ｂｌｕｅｔｏｏｔｈ携帯端末２０とＢｌｕｅｔｏｏｔｈ装置１０間で通信リンクが確立される。おのおののＢＴ送受信部８，３３は、接続完了イベントをホストに通知する（ステップＳ３１）。Ｂｌｕｅｔｏｏｔｈ装置１０のプログラムは、接続完了イベントを受信すると、ＢＴ送受信部８を通信不可能に設定し（ステップＳ３２）、かつＢＴ送受信部９を、発見不可能、通信不可能に設定する（ステップＳ３３）。これにより、これ以上他のＢｌｕｅｔｏｏｔｈ装置１０からの接続要求を受け付けないようにする。
【００６４】
Ｂｌｕｅｔｏｏｔｈ携帯端末２０のプログラムは、Ｂｌｕｅｔｏｏｔｈ装置１０に対して上位プロトコルの接続要求を行う（ステップＳ３４）。本実施形態では、ＯＢＥＸを使用するので、Ｌ２ＣＡＰ、ＲＦＣＯＭ、ＯＢＥＸの順に接続を行い、ＯＢＥＸ接続後、Ｂｌｕｅｔｏｏｔｈ装置１０のプログラムは、Ｂｌｕｅｔｏｏｔｈ携帯端末２０のプログラムの要求により、情報提供等の各種サービスを提供する（ステップＳ３５）。
【００６５】
利用者がサービス提供の中止を指示、必要な情報の自動収集が完了するとＢｌｕｅｔｏｏｔｈ携帯端末２０のプログラムは、ＯＢＥＸ、ＲＦＣＯＭ，Ｌ２ＣＡＰ，Ｂｌｕｅｔｏｏｔｈ通信リンクの切断を行う（ステップＳ３６）。Ｂｌｕｅｔｏｏｔｈ装置１０のプログラムは、通信リンク切断イベントを受信すると、ＢＴ送受信部９を通信可能に、ＢＴ送受信部８を発見可能、通信可能に設定することで、次の接続要求を待機する（ステップＳ３７）。
【００６６】
次に、第１の実施形態のＢｌｕｅｔｏｏｔｈ携帯端末２０の接続処理を図５のフローチャートに基づいて説明する。
【００６７】
情報取得を目的とする利用者は、専用のＪＡＶＡプログラムの起動を指示し、情報提供装置の探索を指示する。ＪＡＶＡプログラムは、ＢＴ送受信部３３に対してインクワイアリコマンド送信を要求する。
【００６８】
ＢＴ送受信部３３は、インクワイアリを実行し（ステップＳ４１）、発見したＢｌｕｅｔｏｏｔｈ装置１０のＢＴアドレスとデバイスクラスをＪＡＶＡプログラムにイベントとして通知する（ステップＳ４２）。ＪＡＶＡプログラムは、その通知により特定の関数をコールし、取得したデバイスが不当端末か否かを判定し（ステップＳ４３）、発見した端末が妥当かどうかを検査して、妥当でない場合は、タイムアウト（例えば１０秒）の時間まで待ってから次の端末を探索する（ステップＳ４４）。
【００６９】
妥当な場合は、ＣＯＤの検査を行う（ステップＳ４５）。予め定めたＣＯＤとの比較を行い、一致した場合のみ、インクワイアリの中止をＢＴ送受信部３３に要求する。ＣＯＤが一致しない場合は、タイムアウトの時間まで待ってから次の端末を探索する。
【００７０】
プログラムは、ＢＴ送受信部３３からのインクワイアリ完了イベントを受信すると（ステップＳ４６）、発見した装置のリモートネームを取得するためのコマンドを送信するようＢＴ送受信部３３に指示する（ステップＳ４７）。ＢＴ送受信部３３は、リモートネームを取得すると（ステップＳ４８）、その結果をＪＡＶＡプログラムにイベントとして通知する。ＪＡＶＡプログラムは特定の関数をコールし、接続情報の取得を行う（ステップＳ４９）。
【００７１】
取得の方法は、最初の２文字が予め定めた識別文字で、次の３文字分が数字データか否かを判定し、数字である場合は、その数字が示す長さ分をサービス名称として取得する。次に、残った文字が１２文字かどうか判定し、１２文字である場合は、その文字をＢＴアドレスとして６バイトの数字に変換する。
【００７２】
正しくＢＴアドレスが取得できた場合は、発見した装置の識別名称を画面に表示し、取得したＢＴアドレスを用いて接続要求を行う（ステップＳ５０）。正しく接続情報が取得できなかった場合は、取得したＢＴアドレスを不当端末としてメモリ２３に記録して、エラーメッセージを画面に表示して利用者の注意を促す（ステップＳ５１）。
【００７３】
ＡＣＬの接続が完了すると、上記説明した上位プロトコルの接続を実行し、利用者が所望するサービスの提供をＢｌｕｅｔｏｏｔｈ装置１０から受ける（ステップＳ５２）。
【００７４】
本実施形態では、利用者はＢｌｕｅｔｏｏｔｈ携帯端末２０のプログラムを起動して、その端末をサービスの提供を行うＢｌｕｅｔｏｏｔｈ装置１０に近づける。これにより、上述した図４及び図５の処理が実行され、所望のサービスを受けることができる。
【００７５】
Ｂｌｕｅｔｏｏｔｈ装置１０のサービスを提供するＢＴ送受信部８との接続情報は、通信範囲が狭いＢＴ送受信部９を介して送信されるため、Ｂｌｕｅｔｏｏｔｈ携帯端末２０が無関係のＢｌｕｅｔｏｏｔｈ装置１０からの情報を誤って取得するおそれはない。
【００７６】
一方、Ｂｌｕｅｔｏｏｔｈ装置１０のＢＴ送受信部８といったん通信リンクが確立すれば、Ｂｌｕｅｔｏｏｔｈ送受信部８は、通常のＢＴモジュールであるため、その通信範囲である１０ｍ以内であれば、利用者がどこにいても通信可能である。それゆえ、利用者はＢｌｕｅｔｏｏｔｈ携帯端末２０をＢｌｕｅｔｏｏｔｈ装置１０に近接し続ける必要はなく、１０ｍの範囲内で自由に移動可能となる。
【００７７】
Ｂｌｕｅｔｏｏｔｈ接続情報を構成する各文字列の配置に特に制限はなく、上述した以外の配置を取ってもよい。また、バイナリ―文字データの変換は単純に２バイトコードで処理しているが、ＵＵＥＮＣＯＤＥと呼ばれる変換方式では、変換後の文字データのサイズを元の３／４程度に抑えることができる。
【００７８】
このように、第１の実施形態では、Ｂｌｕｅｔｏｏｔｈ装置１０内に通信距離が互いに異なる２つのＢＴ送受信部８，９を設け、ＢＴ送受信部８がＢｌｕｅｔｏｏｔｈ携帯端末２０と通信を行うのに必要な接続情報を、近距離通信のみ可能なＢＴ送受信部９を介してＢｌｕｅｔｏｏｔｈ携帯端末２０に送信するため、Ｂｌｕｅｔｏｏｔｈ携帯端末２０が誤って別のＢｌｕｅｔｏｏｔｈ装置１０に接続するおそれがなくなる。また、いったんＢＴ送受信部８とＢｌｕｅｔｏｏｔｈ携帯端末２０との間で通信リンクが確立されると、その後にＢｌｕｅｔｏｏｔｈ装置１０とＢｌｕｅｔｏｏｔｈ携帯端末２０との距離が広がっても、ＢＴ送受信部８を介してＢｌｕｅｔｏｏｔｈ携帯端末２０と安定・確実に通信を継続でき、ユーザの使い勝手がよくなる。
【００７９】
（第２の実施形態）
第２の実施形態は、ＢＴ送受信部の接続情報の他に、装置検証用の情報もＢＴ送受信部を介してＢｌｕｅｔｏｏｔｈ携帯端末２０に送信するものである。
【００８０】
第２の実施形態のＢｌｕｅｔｏｏｔｈ装置１０とＢｌｕｅｔｏｏｔｈ携帯端末２０はそれぞれ図１及び図３と同様に構成されている。以下では、第１の実施形態との相違点を中心に説明する。
【００８１】
図６は第２の実施形態のＢｌｕｅｔｏｏｔｈ装置１０の処理手順を示すフローチャート、図７は第２の実施形態のＢｌｕｅｔｏｏｔｈ携帯端末２０の処理手順を示すフローチャートである。
【００８２】
第２の実施形態では、Ｂｌｕｅｔｏｏｔｈ装置１０のプログラムは、接続情報と装置検証用の情報を合わせて作成し、ＢＴ送受信部８のローカルネームとして設定する。
【００８３】
ここで、検証用情報について説明する。第１の実施形態と同様に、例えば、サービス名称を１０文字の「浜松町駅周辺案内情報」とし、ＢＴ送受信部９のＢＴアドレスを「０１２３４５ＡＢＣＤＥＦ」とし、専用の識別文字を「！！」とする。またＢＴ送受信部８のＢＴアドレスを、「０１２３４５ＡＢＣＤＥＥ」とする。
【００８４】
検証用情報は、例えば、ＢＴ送受信部９の１２バイトのＢＴアドレス「０１２３４５ＡＢＣＤＥＦ」とＢＴ送受信部８の１２バイトのＢＴアドレス「０１２３４５ＡＢＣＤＥＥ」とを合わせた文字列をハッシュ関数により１２８Ｂｉｔ（１６バイト）に縮退させ、あらかじめ所有する共有の秘密鍵で暗号化する。暗号化した文字を２バイトで表現し、３２文字の文字データに変換する。
【００８５】
本実施形態では、例えば「０Ａ４Ｆ５Ｇ・・・・・・・５９ＥＦ」とする。ハッシュ関数にはＭＤ５、共有鍵暗号方式にはラインデール方式を利用する。１２８ビットのデータが扱えるのであれば、他の方式でもかまわない。暗号鍵は１２８ビット以外のものも使用可能であり、鍵長により、計算時間とセキュリティ強度のトレードオフとなる。
【００８６】
接続情報とあわせると、「！！０１０浜松町駅周辺案内情報０１２３４５ＡＢＣＤＥＦ０Ａ４Ｆ５Ｇ・・・・・・・５９ＥＦ」となり、この文字データをＢＴ送受信部８のローカルネームとして設定する（ステップＳ６２）。Ｂｌｕｅｔｏｏｔｈ装置１０は、このステップＳ６２以外は、図４と同様の処理を行う。
【００８７】
Ｂｌｕｅｔｏｏｔｈ携帯端末２０のプログラムは、ＢＴ送受信部３３からのインクワイアリ完了イベントを受信すると（ステップＳ８６）、発見した装置のリモートネーム取得コマンド送信をＢＴ送受信部３３に指示する（ステップＳ８７）。ＢＴ送受信部３３は、リモートネームを取得すると（ステップＳ８８）、その結果をＪＡＶＡプログラムにイベントとして通知する。このプログラムにより特定の関数がコールされ、接続情報と検証用情報の取得を行う（ステップＳ８９）。
【００８８】
取得の方法は、最初の２文字が予め定めた識別文字か否かの判定を行い、次の３文字分が数字データか否かの判定を行い、数字の場合は、その数字が示す長さ分を装置識別名称として取得する。次の１２文字を数字に変換してその文字をＢＴ送受信部９のＢＴアドレスとする。
【００８９】
次に、残った文字が３２文字かどうか判定を行い、３２文字である場合は１６バイトの数字に変換する。変換後、ＪＡＶＡプログラムとともに記録されている共有秘密鍵を用いて、取得した１６バイトを復号化し、Ｂｌｕｅｔｏｏｔｈ装置１０が作成したハッシュ値を取得する。
【００９０】
正しく接続情報を取得できなかった場合は、リモートネームを取得したＢＴアドレスを不当端末としてメモリ２３に記録して、エラーメッセージを画面に表示し利用者の注意を促す（ステップＳ９０）。
【００９１】
取得できた場合は、リモートネームの取得を行ったＢｌｕｅｔｏｏｔｈ送受信部８，９の各ＢＴアドレスを結合して２４文字の文字データを作成し、それをハッシュ関数で１６バイトのハッシュ値を作成する。
【００９２】
次に、自端末で作成したハッシュ値と、復号化したハッシュ値の比較を行い、一致すれば相手のＢｌｕｅｔｏｏｔｈ装置１０は正しい装置であると判定する（ステップＳ９１）。
【００９３】
正しいＢｌｕｅｔｏｏｔｈ装置１０と判定した場合は、発見した装置の識別名称を画面に表示し、取得したＢＴアドレスを用いて接続要求を行う（ステップＳ９２）。ハッシュ値が一致しない場合は、リモートネームを取得したＢＴアドレスを不当端末としてメモリ２３に記録して、エラーメッセージを画面に表示して利用者の注意を促す（ステップＳ９０）。
【００９４】
以下、第２の実施形態の効果を説明する。サービス提供を行うＢｌｕｅｔｏｏｔｈ装置１０の近くに、サービス提供を行うＢｌｕｅｔｏｏｔｈ装置に成りすました装置が存在していたと仮定する。Ｂｌｕｅｔｏｏｔｈ携帯端末２０からのインクワイアリは１０ｍの距離まで届くので、Ｂｌｕｅｔｏｏｔｈ装置１０のＢＴ送受信部９のみならず、他の装置もインクワイアリパットを受信する。
【００９５】
正しい装置の場合は、送信距離が近接のため、Ｂｌｕｅｔｏｏｔｈ携帯端末２０が返答パケットを受信することはないが、成りすましの装置からの返答をＢｌｕｅｔｏｏｔｈ携帯端末２０が受信してしまい、成りすましの装置のリモートネームを取得することにより、なりすました装置が指示するニセのＢｌｕｅｔｏｏｔｈデバイスに接続してしまう可能性が生じる。
【００９６】
ところが、上述した第２の実施形態では、Ｂｌｕｅｔｏｏｔｈ携帯端末２０は、リモートネームに含まれる検証用の情報により、返答した装置が所望の装置か否かを判定することができる。
【００９７】
仮に、成りすました装置が正しい装置に設定された接続情報をコピーして使用したとしても、検証用情報の中にＢｌｕｅｔｏｏｔｈデバイスの識別情報が含まれているため、不正なデータであることが検出でき、成りすました装置からの取得したリモートネームを無視することにより、成り済ましを確実に防止でき、セキュリティ性能を向上できる。
【００９８】
本実施形態では、ＢＴ送受信部８，９のＢＴアドレスを用いてハッシュ値を計算したが、ＢＴアドレスに加えてＪＡＶＡプログラムとともに取得した秘密の文字や、識別名称など加えることによりセキュリティ性能をより向上させることができる。
【００９９】
本実施形態では、共有鍵を使用して認証用のデータを作成したが、公開鍵を利用する方法でも同様の効果が得られる。その場合、サービス装置は秘密鍵で暗号化を行い、Ｂｌｕｅｔｏｏｔｈ携帯端末２０は、その秘密鍵に対応する公開鍵で復号することになる。暗号と復号の方式は、ＤＥＳ、トリプルＤＥＳ及び楕円暗号方式が利用できる。
【０１００】
ＪＡＶＡプログラムとともに公開鍵を携帯電話にダウンロードして記録する以外の方法として、検証用情報にサービス提供装置の電子証明書とルート証明局の識別情報を含めても同様の効果が得られる。
【０１０１】
携帯端末のプログラムは、検証用情報から電子証明書情報とルート局識別情報を取得し、携帯端末に格納されたルート局の公開鍵を使用して、電子署名の検証を行う。電子署名の検証ができると、そこに格納されているサービス提供装置の公開鍵を取得し、検証用情報の復号に使用する。
【０１０２】
（第３の実施形態）
第３の実施形態は、Ｂｌｕｅｔｏｏｔｈ携帯端末２０とＢｌｕｅｔｏｏｔｈ装置１０の双方が有するリンクキーまたはＰＩＮコードを用いて認証処理を行うものである。
【０１０３】
第３の実施形態のＢｌｕｅｔｏｏｔｈ装置１０とＢｌｕｅｔｏｏｔｈ携帯端末２０はそれぞれ図１及び図３と同様に構成されている。以下では、第１の実施形態との相違点を中心に説明する。
【０１０４】
図８は第３の実施形態のＢｌｕｅｔｏｏｔｈ装置１０の処理手順を示すフローチャート、図９は第３の実施形態のＢｌｕｅｔｏｏｔｈ携帯端末２０の処理手順を示すフローチャートである。
【０１０５】
第３の実施形態のＢｌｕｅｔｏｏｔｈ装置１０は、電源投入時にＢＴ送受信部８をセキュリティモードに設定する。セキュリティモードでは、リンク接続手順実行時に、双方が共有するリンクキーまたはＰＩＮコードにより端末認証を行う。このリンクキーまたはＰＩＮコードはパスワードでもよく、セキュリティ性能の向上のために、接続のたびに相互に交換し合うのが望ましい。
【０１０６】
Ｂｌｕｅｔｏｏｔｈ装置１０は、接続情報の他に接続認証用の情報を作成し、ＢＴ送受信部８のローカルネームとして設定する。
【０１０７】
以下、第３の実施形態の認証用情報について説明する。第１の実施形態と同様に、例えば、装置識別名称を１０文字の「浜松町駅周辺案内情報」とし、ＢＴアドレスを「０１２３４５ＡＢＣＤＥＦ」とし、専用の識別文字を「！！」とする。またＢＴ送受信部８のＢＴアドレスを、「０１２３４５ＡＢＣＤＥＥ」とする。
【０１０８】
認証用情報は、例えば、１２８ビットの乱数を発生させてその値を使用する。乱数生成のシードには、乱数生成時の時刻を使用する。プログラムは、発生した乱数をあらかじめ所有する秘密鍵で暗号化する。暗号化した文字を２バイトで表現し、３２文字の文字データに変換する。本実施形態では仮に、「１２３４・・・・・・・７８９０」とする。
【０１０９】
接続情報とあわせると、「！！０１０浜松町駅周辺案内情報０１２３４５ＡＢＣＤＥＦ１２３４・・・・・・・７８９０」となり、プログラムは、この文字データをＢＴ送受信部８のローカルネームとして設定する。
【０１１０】
プログラムは、Ｂｌｕｅｔｏｏｔｈ携帯端末２０からのリンク接続要求に対するイベントを受信すると、接続要求を行ったＢｌｕｅｔｏｏｔｈ携帯端末２０のＢＴアドレスが不当装置としてメモリ３に記録されているか否かを検査し（ステップＳ１１１）、記録されていない場合は、ＢＴ送受信部９に接続許可を返送する。記録されている場合は、接続拒否を返答する（ステップＳ１１２）。
【０１１１】
プログラムは、接続許可をＢＴ送受信部９に返答すると、リンクキー入力要求イベントを受信する（ステップＳ１１３）。プログラムは、上述した手順で作成した１２８ビットの乱数を３２文字の文字データに変換したものをリンクキーとして、ＢＴ送受信部９に送信する（ステップＳ１１４）。
【０１１２】
Ｂｌｕｅｔｏｏｔｈ携帯端末２０とＢｌｕｅｔｏｏｔｈ装置１０の双方が与えたリンクキーが一致した場合は、リンク接続完了イベントのステータスが成功として通知される（ステップＳ１１５）。
【０１１３】
もし、異なるリンクキーが設定された場合は、リンク接続完了イベントで認証エラーのエラーコードが設定されるので、プログラムは認証エラーを受信した場合は、リモートネームを取得したＢＴアドレスを不当装置としてメモリ３に記録して、エラーメッセージを画面に表示し、利用者の注意を促す（ステップＳ１１６）。
【０１１４】
サービス提供後、ＢＴ送受信部８がリンク切断を行い、Ｂｌｕｅｔｏｏｔｈ装置１０のプログラムがＢＴ送受信部９から切断イベントを受信した場合は（ステップＳ１２１）、上述したステップＳ１０４以降の処理を行って再度乱数を生成し、認証用の情報を作り直してＢＴ送受信部９のローカルネームの再設定を行う。
【０１１５】
Ｂｌｕｅｔｏｏｔｈ携帯端末２０のプログラムは、ＢＴ送受信部３３からのインクワイアリ完了イベントを受信すると、発見した装置のリモートネーム取得コマンド送信をＢＴ送受信部３３に指示する（ステップＳ１３７）。ＢＴ送受信部３３は、リモートネームを取得すると（ステップＳ１３８）、その結果をＪＡＶＡプログラムにイベントとして通知する。このプログラムにより特定の関数がコールされ、接続情報と認証用情報の取得を行う（ステップＳ１３９）。
【０１１６】
取得の方法は、最初の２文字が予め定めた識別文字か否かの判定を行い、次の３文字分が数字データか否かの判定を行い、数字の場合は、その数字が示す長さ分を装置識別名称として取得し、次の１２文字を数字に変換してその文字をＢＴアドレスとする。次に、残った文字が３２文字か否かの判定を行い、３２文字である場合は１６バイトの数字に変換する。変換後、ＪＡＶＡプログラムとともに記録されている共有秘密鍵を用いて、取得した１６バイトを復号化し認証用データを取得する（ステップＳ１４３）。
【０１１７】
正しく接続情報が取得できなかった場合は、リモートネームを取得したＢＴアドレスを不当端末としてメモリ２３に記録して（ステップＳ１４０）、エラーメッセージを画面に表示して利用者の注意を促す
取得できた場合は、発見した装置の識別名称を画面に表示し、取得したＢＴアドレスを用いて接続要求を行う。Ｂｌｕｅｔｏｏｔｈ装置１０と同様に接続処理中にリンクキー入力要求イベントを受信する。アプリケーションは、取得した１６バイトの認証用データを３２バイトの文字データに変換したものをリンクキーとしてＢＴ送受信部３３に送信する。
【０１１８】
Ｂｌｕｅｔｏｏｔｈ携帯端末２０とＢｌｕｅｔｏｏｔｈ装置１０双方が与えたリンクキーが一致した場合は、リンク接続完了イベントのステータスが成功として通知される（ステップＳ１４４）。もし、異なるリンクキーが設定された場合は、リンク接続完了イベントで認証エラーのエラーコードが設定されるので、そのような場合は、リモートネームを取得したＢＴアドレスを不当端末としてメモリ２３に記録して、エラーメッセージを画面に表示し利用者の注意を促す（ステップＳ１４０）。
【０１１９】
以下、第３の実施形態の効果について説明する。いったん接続したＢｌｕｅｔｏｏｔｈ携帯端末２０は、Ｂｌｕｅｔｏｏｔｈ装置１０のＢＴ送受信部８のＢＴアドレス情報を保持しているため、任意のときに接続要求を行い、サービス提供を妨害することが考えられる。しかし、本実施形態では、Ｂｌｕｅｔｏｏｔｈ装置１０が接続ごとに認証用データを変更し、かつ、認証用データはＢＴ送受信部９を通じてのみＢｌｕｅｔｏｏｔｈ携帯端末２０に送信されるため、Ｂｌｕｅｔｏｏｔｈ装置１０のＢＴ送受信部９が不適切な装置からの接続要求を受信した場合には、正しく認証ができないため、確実に拒否することができる。
【０１２０】
本実施形態では、端末認証にＢｌｕｅｔｏｏｔｈのリンクキーを使用する例を説明したが、他の方法として、取得した認証用データをＰＩＮコードとして利用する方法や、ＯＢＥＸの認証機能とデータとして使用する方法、上位のアプリケーションプログラムが有する認証機能のデータとして使用する形態なども考えられる。
【０１２１】
（第４の実施形態）
第４の実施形態は、Ｂｌｕｅｔｏｏｔｈ装置１０内のＢＴ送受信部８，９の基準クロックを同期させて、Ｂｌｕｅｔｏｏｔｈ装置１０とＢｌｕｅｔｏｏｔｈ携帯端末２０とが接続するまでの時間を短縮させるものである。
【０１２２】
第４の実施形態のＢｌｕｅｔｏｏｔｈ装置１０とＢｌｕｅｔｏｏｔｈ携帯端末２０はそれぞれ図１及び図３と同様に構成されている。以下では、第１の実施形態との相違点を中心に説明する。
【０１２３】
図１０は第４の実施形態のＢｌｕｅｔｏｏｔｈ装置１０の処理手順を示すフローチャート、図１１は第４の実施形態のＢｌｕｅｔｏｏｔｈ携帯端末２０の処理手順を示すフローチャートである。
【０１２４】
Ｂｌｕｅｔｏｏｔｈ携帯端末２０がＢｌｕｅｔｏｏｔｈ装置１０と接続を行うときには、インクワイアリで取得したＢｌｕｅｔｏｏｔｈ装置１０の基準クロックとの周波数差を検出してＢｌｕｅｔｏｏｔｈ装置１０の基準クロックを推定し、Ｂｌｕｅｔｏｏｔｈ装置１０の待ち受け周波数を推測する。この推測が正しくないと、接続に通常１．２８秒ほど余分に時間がかかる。
【０１２５】
インクワイアリで取得したＢｌｕｅｔｏｏｔｈ装置１０のクロックオフセットを使用すると、接続要求を行うＢｌｕｅｔｏｏｔｈ装置１０の待ち受け周波数の推定を間違える可能性がある。
【０１２６】
そこで、本実施形態では、Ｂｌｕｅｔｏｏｔｈ装置の電源投入時やリセット時に、ＢＴ送受信部８，９に同時に給電するか、同時にＢｌｕｅｔｏｏｔｈモジュールのリセットコマンドを送信する（ステップＳ１５１）。以上の方法により、ＢＴ送受信部８，９の基準クロックをほぼ同期させることができる。
【０１２７】
両クロックの精度の違いにより、両クロックの周波数差が時間経過によりずれるおそれがある。このため、定期的にＢＴ送受信部８，９にリセットコマンドを送信して、２つのクロックを常に同期させることができる。
【０１２８】
以上の方法により、Ｂｌｕｅｔｏｏｔｈ装置１０の待ち受け周波数の推定の間違えを防止でき、接続時間の遅延防止を図れる。
【０１２９】
また、Ｂｌｕｅｔｏｏｔｈ携帯端末２０は、Ｂｌｕｅｔｏｏｔｈ装置１０からの接続情報を取得した後に、Ｂｌｕｅｔｏｏｔｈ装置１０のクロックとのオフセットを設定し、Ｂｌｕｅｔｏｏｔｈ装置１０に対して接続要求を送信する（ステップＳ１８１）。
【０１３０】
このように、第４の実施形態では、Ｂｌｕｅｔｏｏｔｈ装置１０内のＢＴ送受信部８，９のクロックを同期させるため、Ｂｌｕｅｔｏｏｔｈ携帯端末１１との接続に要する時間を短縮できる。
【０１３１】
上述した第１〜第４の実施形態において、Ｂｌｕｅｔｏｏｔｈ携帯端末２０のプログラムは、Ｂｌｕｅｔｏｏｔｈ装置１０とのリンク確立完了イベントを受信すると、表示部２９やスピーカ３５等の出力デバイスに接続完了を示す信号を出力する。例えば、表示部２９に接続完了のメッセージを表示したり、スピーカ３５から予め定めた音楽や効果音を音声出力したり、バイブレーション用のモータを振動させたり、携帯付属のイルミネーションを発光させたりする。これにより、利用者に接続終了を通知することができる。または、検証用情報により、Ｂｌｕｅｔｏｏｔｈ装置の検証を行い、信頼できると判定した場合に出力する方法もありうる。こちらのタイミングの方が上記タイミングと比較して早いので、利用者が、Ｂｌｕｅｔｏｏｔｈ装置にＢｌｕｅｔｏｏｔｈ携帯端末を接近させる時間が短時間となる。
【０１３２】
あるいは、サービスを提供するＢｌｕｅｔｏｏｔｈ装置１０のプログラムが、Ｂｌｕｅｔｏｏｔｈ携帯端末２０とリンク確立完了イベントを受信した場合は、出力デバイスに接続完了を示す信号を出力する。例えば、表示部に接続完了のメッセージを表示したり、スピーカから予め定めた音楽や効果音を再生したり、イルミネーションを発光させる等の制御により、利用者に接続終了を通知する。
【０１３３】
利用者は、この出力をトリガーにして、Ｂｌｕｅｔｏｏｔｈ装置１０に近づけたＢｌｕｅｔｏｏｔｈ携帯端末２０を任意の位置に移動させることができる。インクワイアリとリモートネームの取得は約４００ｍｓ以内で完了できるため、利用者はＢｌｕｅｔｏｏｔｈ携帯端末２０を短時間だけＢｌｕｅｔｏｏｔｈ装置１０のＢＴ送受信部９に近づけるだけで、それ以外は自由に移動させることができる。
【０１３４】
上述した実施形態で説明した図４〜図１１の処理は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、図４〜図１１の処理を実行するプログラムをフロッピーディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の携帯可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【０１３５】
また、図４〜図１１の処理を実行するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【０１３６】
なお、本発明は、上記の実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明は含まれており、開示される複数の構成用件における適宜な組み合わせにより、種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題（の少なくとも１つ）が解決でき、発明の効果の欄で述べられている効果（のなくとも１つ）が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【０１３７】
【発明の効果】
以上詳細に説明したように、本発明によれば、第１通信手段の接続情報を、第２通信手段を介して他の通信装置に送信するため、第１通信手段の接続情報を正確に他の通信装置に伝達できる。また、その後に近接通信装置と他の通信装置との距離が広がっても、第２通信手段は他の通信装置と安定・確実に通信を行うことができる。
【図面の簡単な説明】
【図１】本発明に係る近接通信装置の第１の実施形態であるＢｌｕｅｔｏｏｔｈ装置１０の内部構成を示す図。
【図２】ＢＴ送受信部９の内部構成の一例を示すブロック図。
【図３】Ｂｌｕｅｔｏｏｔｈ携帯端末２０の内部構成の一例を示すブロック図。
【図４】第１の実施形態のＢｌｕｅｔｏｏｔｈ装置１０の処理手順を示すフローチャート。
【図５】第１の実施形態のＢｌｕｅｔｏｏｔｈ携帯端末２０の接続処理を示すフローチャート。
【図６】第２の実施形態のＢｌｕｅｔｏｏｔｈ装置１０の処理手順を示すフローチャート。
【図７】第２の実施形態のＢｌｕｅｔｏｏｔｈ携帯端末２０の処理手順を示すフローチャート。
【図８】第３の実施形態のＢｌｕｅｔｏｏｔｈ装置１０の処理手順を示すフローチャート。
【図９】第３の実施形態のＢｌｕｅｔｏｏｔｈ携帯端末２０の接続処理を示すフローチャート。
【図１０】第４の実施形態のＢｌｕｅｔｏｏｔｈ装置１０の処理手順を示すフローチャート。
【図１１】第４の実施形態のＢｌｕｅｔｏｏｔｈ携帯端末２０の処理手順を示すフローチャート
【図１２】Ｂｌｕｅｔｏｏｔｈ携帯端末が任意の場所で任意の相手からサービスを受けるための従来の処理手順を示すフローチャート。
【符号の説明】
１  バス
２  ＣＰＵ
３  メモリ
４  ＲＯＭ
５  記憶装置
６  ＲＳ−２３２Ｃコントローラ
７  有線／無線通信部
８，９  ＢＴ送受信部
１０  Ｂｌｕｅｔｏｏｔｈ装置
１１  アンテナ
１２  ＢＴモジュール
１３  減衰回路
１４  シールドケース
１５  制御ＰＣ
１６  ケーブル
２０  Ｂｌｕｅｔｏｏｔｈ携帯端末
２１  バス
２２  ＣＰＵ
２３  メモリ
２４  ＲＯＭ
２５  Ａ／Ｄ変換器
２６  Ｄ／Ａ変換器
２７  偏心モータ
２８  通信部
２９  表示部
３０  キー入力部
３１  ＥＥＰＲＯＭ
３２  選択指示部
３３  ＢＴ送受信部
３４  マイク
３５  スピーカ
３６  基地局
【図１】
2004166090.tif 000003
【図２】
2004166090.tif 000004
【図３】
2004166090.tif 000005
【図４】
2004166090.tif 000006
【図５】
2004166090.tif 000007
【図６】
2004166090.tif 000008
【図７】
2004166090.tif 000009
【図８】
2004166090.tif 000010
【図９】
2004166090.tif 000011
【図１０】
2004166090.tif 000012
【図１１】
2004166090.tif 000013
【図１２】
2004166090.tif 000014