(57)【要約】【課題】複数の通信端末装置において簡単に安全性の高い共有情報（秘密鍵）を作成してアドホック・モードでの無線通信を行う。【解決手段】２つの通信端末装置を一体に保持して複数回揺動させ、それぞれにおいて加速度データを生成する。各通信端末装置はそれぞれの加速度データからピーク位置Ｐａ１〜Ｐａ５またはピーク位置Ｐｂ１〜Ｐｂ５を抽出する。ピーク位置の間の時間ｔａ１〜ｔａ４およびｔｂ１〜ｔｂ４は、不規則でかつ２つの通信端末装置で共通の情報となる。各通信端末装置はピーク位置間の時間から複数の同一のビット情報で構成された共有情報を作成する。共有情報を利用して２つの通信端末装置間で相互認証を行いさらに暗号化を行う。【選択図】図５
2011130224.tif 000002
【特許請求の範囲】
【請求項１】
加速度センサを備える通信端末装置に加速度センサを備える他の通信端末装置と同一の共有情報を作成させるために、
前記通信端末装置が前記他の通信端末装置と関連する加速度運動をしている間に前記加速度センサが生成した加速度データを取得するステップと、
前記加速度データから時間軸上の複数の特徴位置を抽出するステップと、
前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算するステップと、
前記複数の時間情報から複数のビット情報で構成された共有情報を作成するステップと
を有する処理を実行させるコンピュータ・プログラム。
【請求項２】
前記加速度データが、前記通信端末装置と前記他の通信端末装置を一体に保持して複数回揺動させることにより生成された繰り返し波形を構成する請求項１に記載のコンピュータ・プログラム。
【請求項３】
前記加速度データが、前記通信端末装置と前記他の通信端末装置を複数回衝突させることにより生成された繰り返し波形を構成する請求項１に記載のコンピュータ・プログラム。
【請求項４】
前記特徴位置が前記繰り返し波形の各波の振幅が最大になる時間軸上のピーク位置である請求項２または請求項３に記載のコンピュータ・プログラム。
【請求項５】
前記特徴位置が前記繰り返し波形の振幅の絶対値が最小になる時間軸上のゼロ・クロス位置である請求項２または請求項３に記載のコンピュータ・プログラム。
【請求項６】
前記共有情報を作成するステップが、
前記時間情報から所定の範囲の上位の数値を抽出するステップを含む請求項１から請求項５のいずれかに記載のコンピュータ・プログラム。
【請求項７】
前記所定の範囲の上位の数値を抽出するステップが、
前記時間情報を所定の数値で除して正規化しさらに整数化するステップを含む請求項６に記載のコンピュータ・プログラム。
【請求項８】
前記複数の時間情報のそれぞれに固定長ビットのビット・ブロックを適用し、前記共有情報が複数の前記ビット・ブロックを結合して形成された固定長ビット情報である請求項１から請求項７のいずれかに記載のコンピュータ・プログラム。
【請求項９】
前記複数の時間情報のそれぞれに可変長ビットのビット・ブロックを適用し、前記共有情報が複数の前記ビット・ブロックを結合して形成された可変長ビット情報である請求項１から請求項７のいずれかに記載のコンピュータ・プログラム。
【請求項１０】
前記ビット・ブロックの間に値がゼロのダミー・ブロックを含む請求項９に記載のコンピュータ・プログラム。
【請求項１１】
加速度センサを備える第１の通信端末装置と加速度センサを備える第２の通信端末装置がそれぞれ共有情報を作成する方法であって、
前記第１の通信端末装置と前記第２の通信端末装置が相互に関連する加速度運動をするステップと、
それぞれの通信端末装置において前記加速度センサが生成した加速度データを取得するステップと、
それぞれの通信端末装置にいて前記加速度データから時間軸上の複数の特徴位置を抽出するステップと、
それぞれの通信端末装置において前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算するステップと、
それぞれの通信端末装置において前記複数の時間情報から複数のビット情報で構成された共有情報を作成するステップと
を有する共有情報の作成方法。
【請求項１２】
前記相互に関連する加速度運動が、それぞれの通信端末装置において前記加速度センサが生成した加速度データのピーク位置間の時間が実質的に同一になるような運動である請求項１１に記載の作成方法。
【請求項１３】
加速度センサを備える第１の通信端末装置と加速度センサを備える第２の通信端末装置が無線通信をする方法であって、
相互に関連する加速度運動をした前記第１の通信端末装置と前記第２の通信端末装置がそれぞれの前記加速度センサが出力した加速度データを取得するステップと、
前記第１の通信端末装置と前記第２の通信端末装置がそれぞれ前記加速度データから時間軸上の複数の特徴位置を抽出するステップと、
前記第１の通信端末装置と前記第２の通信端末装置がそれぞれ前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算するステップと、
前記第１の通信端末装置と前記第２の通信端末装置がそれぞれ前記複数の時間情報から複数のビット情報で構成された共有情報を作成するステップと、
前記共有情報を利用して前記第１の通信装置と前記第２の通信装置が相互認証をして無線通信するステップと
を有する通信方法。
【請求項１４】
前記共有情報を利用して前記第１の通信装置と前記第２の通信装置の間で通信するデータを暗号化するステップを有する請求項１３に記載の通信方法。
【請求項１５】
前記無線通信がアドホック・モードで行われる請求項１３または請求項１４に記載の通信方法。
【請求項１６】
無線通信の可能な通信端末装置であって、
プロセッサと、
加速度センサと、
前記通信端末装置が加速度運動をしている間に前記加速度センサが生成した繰り返し波形の加速度データを取得する加速度データ取得手段と、
前記加速度データから時間軸上の複数の特徴位置を検出する特徴位置検出手段と、
前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算する時間情報計算手段と、
前記複数の時間情報から複数のビット情報で構成された共有情報を作成する共有情報作成手段と
を有する通信端末装置。
【請求項１７】
通信装置に接続が可能な秘密鍵作成装置であって、
加速度センサと、
前記秘密鍵作成装置が加速度運動をしている間に前記加速度センサが生成した繰り返し波形の加速度データを取得する加速度データ取得手段と、
前記加速度データから時間軸上の複数の特徴位置を検出する特徴位置検出手段と、
前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算する時間情報計算手段と、
前記複数の時間情報から複数のビット情報で構成された秘密鍵を作成する秘密鍵作成手段と、
前記秘密鍵を前記通信装置に出力する出力手段と
を有する秘密鍵作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信端末装置において保有する秘密性のある同一の共有情報を作成する技術に関し、さらに詳細には簡単に安全性の高い共有情報を作成する技術に関する。
【背景技術】
【０００２】
通信端末装置では、インフラストラクチャ・モードやアドホック・モードでピアツーピアの無線通信が行われることがある。ピアツーピアの無線通信を安全に行うには、相互認証や暗号化に使用する共通の認証コードや共有鍵をそれぞれの通信端末装置が保有している必要がある。そして、アドホック・モードでの無線通信では、通信端末装置同士が出会った場所で、それぞれそのような認証コードや共有鍵を保有している必要がある。
【０００３】
特許文献１は、マウスやキーボードなど組み込むことができないような小型の電子機器において、それらが生成するイベントを、加速度センサを利用して生成する技術を開示する。同文献には２方向以上の加速度または衝撃に基づいて本体の動きのパターンを分類し、電子機器が分類されたパターンに応じた固有のイベント信号を発生することが記載されている。特許文献２は、コンピュータ本体の動きを加速度センサで検出しその動きを生じさせたユーザの動作の種類を区別して、動きに応じた操作指示に変換する技術を開示する。同文献には、ユーザの動作のうち振ることと叩くことを区別することが記載されている。非特許文献１には、 Bump Technologies社のＢｕｍｐ（登録商標）というアプリケーション・プログラムをアップル社のｉＰｈｏｎｅ（登録商標）に実装し、２台のデバイスを同時に振ることでアドレスを交換できることが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−４７８１３号公報
【特許文献２】特開２０００−１４８３５１号公報
【非特許文献】
【０００５】
【非特許文献１】下記のＵＲＬで示されているインターネット・サイトhttp://www.bumptechnologies.com/products.phtml
【発明の概要】
【発明が解決しようとする課題】
【０００６】
アドホック・モードの無線通信をするためにこれまでは、事前に通信を許可する同一グループのメンバーに共有パスワードを配布したり、Ｂｌｕｅｔｏｏｔｈ（登録商標）デバイスでは接続可能な機器に事前に同一のピンコードを入力したりして通信できる対象を登録していた。しかし、このような方法には、共有パスワードの管理やデバイス登録の作業が煩雑になるという問題があった。またこのような方法は、事前に登録されていない通信端末装置を保有するユーザが通信しようとする場合には適用できない。これに対して、その場でお互いに通信端末装置に同一のパスワードを入力して安全な通信を行う方法も考えられる。しかし、二人の人間が入力するパスワードは複雑さに限界があり、作業も繁雑で、さらにお互いにパスワードを相談する際に第三者に盗聴される危険性もある。
【０００７】
そこで本発明の目的は、複数の通信端末装置のそれぞれにおいて簡単に安全性の高い同一の共有情報を作成する方法を提供することにある。さらに本発明の目的は、複数の通信端末装置のそれぞれにおいて相互認証または暗号化通信に使用する共有情報を作成して無線通信を行う方法を提供することにある。さらに本発明の目的は、そのような方法を実現できる通信端末装置およびコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明は複数の通信端末装置のそれぞれにおいて簡単に安全な共有情報を作成する方法を提供する。各通信端末装置は加速度センサを備えており、通信端末装置が他の通信端末装置と関連する加速度運動をしたときに、それぞれの加速度センサは共有情報を作成するための加速度データを出力する。なお、それぞれの加速度センサが出力する加速度データは相互に同期している必要はない。加速度データから秘密性のある共有情報を作成するための加速度運動は不規則であることが望ましい。また、それぞれの通信端末装置で同一の共有情報を作成するためには、それぞれの通信端末装置において取得した加速度データが共通の特徴を備える必要がある。
【０００９】
不規則でかつ共通の特徴を備える加速度データを生成するような加速度運動は、共有情報を保有すべき複数の通信端末装置をユーザが片手または両手で一体に保持して複数回揺動させたり、当該通信端末装置と他の通信端末装置をユーザが複数回衝突させたりしたときの運動とすることができる。そのような加速度運動により生成された加速度データは複数の波が繰り返して発生する繰り返し波形を構成し、揺動の周期または衝突の周期は、不規則であるが各通信端末装置では共通性を有することになる。本発明ではそのような不規則でかつ共通性のある特徴をそれぞれの加速度データから抽出するために、加速度データに複数の特徴位置を定義する。特徴位置は、繰り返し波形のそれぞれの波の振幅が最大を示す時間軸上のピーク位置や、振幅の絶対値が最小になる時間軸上のゼロ・クロス位置とすることができる。その後、各特徴位置の間の時間から時間情報を計算し、複数の時間情報から複数のビット情報で構成された共有情報を作成する。
【００１０】
加速度運動には、衝突により通信端末装置の筐体が振動するときの運動と加速度センサの各検出軸が検出する重力加速度の分力成分が変化するように通信端末装置が姿勢を変化するときの運動を含む。不規則でかつ共通性のある時間情報から作成された共有情報は、共有情報を作成する時点で複数の通信端末装置が同一人によって物理的に支配されており、第三者が共有情報の作成に関与する余地はないため安全性が高い。さらに、揺動または衝突の回数を増やすことで簡単にビット数を増やして安全性を高めることができる。このような共有情報は、高い安全性が求められる無線通信の認証コードや暗号化の共有鍵として使用できる。
【００１１】
一方の通信端末装置と他方の通信端末装置で生成した加速度データの振幅の山と谷が、時間軸上の対応する位置で反転する場合もある。しかし、波形の特徴位置から抽出される揺動の周期は、そのような反転する逆相の波形同士でも同じになるので共有情報の取得に支障はない。それぞれの通信端末装置で取得した加速度データには、アナログ信号を生成する加速度センサの増幅率の相違、量子化誤差の相違、サンプリング周波数の相違およびサンプリング位置の相違などがあるため、それぞれの通信端末装置で計算した各特徴位置の時間情報に多少の偏差が生ずることがある。その偏差を解消して完全に一致するビット情報を作成するために時間情報から所定の範囲の上位の数値だけを抽出することが望ましい。具体的には、時間情報を所定の数値で除して正規化しさらに整数化することで実現できる。
【００１２】
共有情報は、揺動や衝突の周期によって全体のビット長が変化しない固定長ビット情報で構成されても、揺動や衝突の周期によって全体のビット長が変化する可変長ビットで構成されてもよい。固定長ビットの共有情報は、複数の特徴位置の間のそれぞれから計算した複数の時間情報から複数の固定長ビットのビット・ブロックを生成し、それらを順番に結合して作成することができる。可変長ビットの共有情報は、ビット・ブロック間に値がゼロのダミー・ビットを挿入して、揺動や衝突の周期によっては可能性のある連続する１で構成されるビット情報の発生を防ぐことが望ましい。この共有情報は秘密情報として通信端末装置で広く使用することができるが、特にアドホック・モードで無線通信する際の認証コードや暗号化の共有鍵に好適に使用することができる。
【発明の効果】
【００１３】
本発明により、複数の通信端末装置のそれぞれにおいて簡単に安全性の高い同一の共有情報を作成する方法を提供することができた。さらに本発明により、複数の通信端末装置のそれぞれにおいて相互認証または暗号化通信に使用する共有情報を作成して無線通信を行う方法を提供することができた。さらに本発明により、そのような方法を実現できる通信端末装置およびコンピュータ・プログラムを提供することができた。
【図面の簡単な説明】
【００１４】
【図１】本実施の形態にかかる通信端末装置の構成を示す機能ブロック図である。
【図２】共有情報作成プログラムが通信端末装置に実現させる機能のブロック図である。
【図３】２台の通信端末装置がそれぞれにおいて秘密性のある共有情報を作成する手順を示すフローチャートである。
【図４】２台の通信端末装置をユーザが一体に保持して揺動させるときの様子を説明する図である。
【図５】加速度センサが出力した加速度データの繰り返し波形の一例を示す図である。
【図６】加速度データから共有情報を得るまでの計算過程の例を示す図である。
【図７】特徴位置検出部がピーク位置Ｐａ１〜Ｐａ５を抽出する手順を示すフローチャートである。
【図８】特徴位置検出部がピーク位置Ｐａ１〜Ｐａ５を抽出する他の方法を説明する図である。
【図９】可変長ビットの共有情報を作成する方法を説明する図である。
【図１０】２台の通信端末装置を衝突させるときの様子を説明する図である。
【図１１】２台の通信端末装置を衝突させたときの繰り返し波形の一例を示す図である。
【発明を実施するための形態】
【００１５】
［ハードウエア構成］
図１は、本実施の形態にかかる通信端末装置の構成を示す機能ブロック図である。通信端末装置１０は、無線通信が可能な携帯電話、スマートフォン、ＰＤＡ、または携帯式コンピュータなどである。通信端末装置１０は、バスで相互に接続されたＣＰＵ１１、メイン・メモリ１３、無線コントローラ１５、加速度センサ１７、フラッシュ・メモリ１９、およびタッチパネル２１を含んで構成されている。無線コントローラ１５は、インフラストラクチャ・モードで無線通信をするために無線ＬＡＮおよび無線ＷＡＮのアクセス・ポイントに接続することができ、さらに、アドホック・モードで他の通信端末装置に接続することができる。
【００１６】
フラッシュ・メモリ１９は、保護されない一般の記憶領域と読み取りおよび書き込みにパスワードの入力が必要な保護された記憶領域を含んでいる。保護された記憶領域には、本実施の形態で作成された共有情報が格納される。無線コントローラ１５のデバイス・ドライバまたは無線通信用のプログラムは、アドホック・モードで無線通信をする際に、フラッシュ・メモリ１９に格納された共有情報を利用して相互認証をしたり送信データの暗号化および受信データの復号をしたりする。フラッシュ・メモリ１９には、オペレーティング・システムおよびアプリケーション・プログラムの他に、本実施の形態にかかる共有情報作成プログラム５０（図２参照）が格納されている。タッチパネル２１は、ＬＣＤのような表示装置とタッチパッドのような入力装置を組み合わせた装置である。タッチパネル２１を通じてユーザは、通信端末装置１０の動作を通常の動作モードと共有情報を作成する動作モードのいずれかに設定することができる。
【００１７】
加速度センサ１７は、通信端末装置１０に発生した加速度を検出してアナログの加速度データを出力する。加速度センサ１７は、直交する３つの検出軸（Ｘ軸、Ｙ軸、Ｚ軸）を備えており、各検出軸は重力加速度の分力成分および通信端末装置１０の筐体に加えられた衝撃による加速度を検出して出力する。加速度センサ１７の専用のプログラムは各検出軸が検出した重力加速度の分力成分から各検出軸の重力方向に対する傾斜角度を計算して出力することができる。各検出軸の傾斜角度は、タッチパネル２１に表示する画面の表示方向をユーザによる筐体の保持の仕方に合わせて変化させるために利用することができる。ただし本発明は、検出軸が１つの加速度センサを備える通信端末装置に適用することもできる。
【００１８】
［ソフトウエア構成］
図２は、メイン・メモリ１３にロードされ、ＣＰＵ１１により実行されることにより共有情報作成プログラム５０が通信端末装置１０に実現させる機能のブロック図である。動作モード設定部５１は、タッチパネル２１を通じてユーザが通信端末装置１０を共有情報作成の動作モードに設定すると、加速度データ取得部５３に加速度センサ１７から加速度データを取得するように指示する。加速度データ取得部５３は、動作モード設定部５１による指示を受けてから所定時間の間、３つの検出軸のそれぞれについて加速度センサ１７から受け取ったアナログ値の加速度データを所定のサンプリング周波数でサンプリングし、サンプリングの順番にサンプリング番号を付与してリスト形式でメイン・メモリ１３に記憶する。なお、加速度データ取得部５３は、Ｉ２Ｃバスなどを介して、量子化済みの加速度データを同じサンプリング周波数に基づくタイミングで取得するように構成してもよい。
【００１９】
検出軸選定部５５は、３つの検出軸がそれぞれ出力した加速度データの中で波の山のピークと谷のピークの差が最大になっている検出軸の加速度データを選択し特徴位置検出部５６に通知する。振幅の山が大きい繰り返し波形ほど２つの通信端末装置間でそれぞれの加速度データから抽出したピーク位置の偏差が小さくなるので都合がよい。特徴位置検出部５６は、繰り返し波形を構成するリスト形式の加速度データから、各波の振幅の絶対値が最大になるピーク位置または振幅の絶対値が最小になるゼロ・クロス位置などの複数の特徴位置を検出してサンプリング数カウント部５７に通知する。
【００２０】
サンプリング数カウント部５７は、複数のピーク区間のサンプリング数をメイン・メモリ１３に記憶された加速度データのリストからカウントして正規化部５８に送る。正規化部５８は、サンプリング数から複数のピーク区間の時間をそれぞれ計算し、各時間を正規化したり整数化したりした時間情報から複数のビット・ブロックを作成して共有情報作成部６１に送る。共有情報作成部６１は、正規化部５８が作成したビット・ブロックを結合して共有情報を作成し、フラッシュ・メモリ１９の保護された記憶領域に格納する。
【００２１】
なお、図１および図２は本実施の形態を説明するために、本発明に関連する主要なハードウエアおよびソフトウエアの構成および接続関係を簡略化して記載したものである。ここまでの説明で言及した以外にも、通信端末装置１０を構成するには多くのデバイスおよびソフトウエアが使用される。しかしそれらは当業者には周知であるので、ここでは詳しく言及しない。図で記載した複数のブロックを１個の集積回路もしくはプログラム・モジュールとしたり、逆に１個のブロックを複数の集積回路もしくはプログラム・モジュールに分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【００２２】
［揺動による固定長ビットの共有情報の作成手順］
図３は、２台の通信端末装置がそれぞれにおいて秘密性のある同一の共有情報を作成する手順を示すフローチャートである。図４は、２台の通信端末装置１０ａ、１０ｂをユーザが一体に保持して揺動させるときの様子を説明する図である。通信端末装置１０ａ、１０ｂは、それぞれ図１および図２に示したハードウエアおよびソフトウエアを備えているが、加速度データのサンプリング周波数は、通信端末装置１０ａでは２５０Ｈｚ（サンプリング周期は４ミリ秒）であり通信端末装置１０ｂでは５００Ｈｚ（サンプリング周期は２ミリ秒）である点で相違している。通信端末装置１０ａ、１０ｂにおいて、それぞれの共有情報作成プログラム５０が共有情報を作成するアルゴリズムは同じである。
【００２３】
当然ながら、本発明は加速度データに対する同一のサンプリング周波数を備える通信端末装置間での共有情報の作成に適用することも可能である。加速度センサ１７は、メーカおよび型式が同一のものを採用することが望ましいが、本発明では加速度センサ１７の出力の中で振幅の大きさは特徴位置を検出するためだけに利用し、共有情報の基礎となる特徴位置の間の時間の計算には利用しないので、特徴位置の抽出に支障がでない範囲において同一の加速度運動に対する出力が相互に相違するようなものであってもよい。
【００２４】
本発明において秘密性のある共有情報（以下、単に共有情報という。）とは、通信端末装置１０ａと１０ｂでそれぞれ独自に生成された同一のビット列の情報をいう。以下の手順で説明するように、共有情報は通信端末装置１０ａ、１０ｂに共通に与えた不規則な周期の加速度運動に基づいて作成された情報でもある。通信端末装置をユーザが揺動させたり衝突させたりして運動させる場合は、その周期は一般に不規則になるが本発明は不規則な周期の繰り返し波形を生成する加速度運動であれば、人間以外の方法で運動させてもよい。なお、以下の手順では２つの通信端末装置１０ａ、１０ｂでは共有情報作成プログラム５０が同じ動作をするので、説明を簡単にするために必要な場合以外は通信端末装置１０ａについてだけ言及して説明するが通信端末装置１０ｂも同一の動作をしていることに留意されたい。
【００２５】
ブロック１０１では、ユーザがタッチパネル２１を通じて通信端末装置１０ａの動作モードを通常の動作モードから共有情報作成の動作モードに移行させる。タッチパネル２１からイベントを受け取った動作モード設定部５１は、加速度データ取得部５３にそれ以降に加速度センサ１７から受け取った加速度データを所定時間の間記録させる。ここでは、所定時間を一例として所定値以上の加速度データが検出されてから２秒間とする。ブロック１０３では、ユーザは図４（Ａ）に示すように２台の通信端末装置１０ａ、１０ｂを重ねて片手で一体に保持し、図４（Ｂ）に示すように重ねた状態で２台の通信端末装置１０ａ、１０ｂを所定回数以上揺動させる。
【００２６】
片手で一体に保持されているので通信端末装置１０ａ、１０ｂの姿勢は相互に揺動中に変化せず両者の姿勢は同じ周期で変化する。なお、２つ重ねて保持したのは揺動させ易くするための一例であり、揺動中に相互間で移動しないように保持して同じ揺動周期で揺動させることができれば重ねて保持する必要はない。ユーザは一方の通信端末装置１０ａを縦向きに保持し他方の通信端末装置１０ｂを横向きに保持するといったように縦方向と横方向が一致しないように保持したり、２つの通信端末装置１０ａ、１０ｂの背面同士を重ねて保持したりしてもよい。また、揺動中に２つの通信端末装置１０ａ、１０ｂが相互に移動しなければ両手で保持して揺動操作を行ってもよい。
【００２７】
最低の揺動回数は、あらかじめユーザが知っているものとするがここでは一例として５回とする。揺動回数は通信端末装置１０ａ、１０ｂを左右に振ったときに１往復で１回とする。さらに、１往復の揺動周期を最大５００ミリ秒とする。したがって、ユーザは２秒間の間に１往復が最大５００ミリ秒を超えないように５回以上通信端末装置１０ａ、１０ｂを左右に揺動させる必要がある。１往復の揺動周期に最大値を設定するのは、固定長ビットの共有情報を作成する際の固定長ビットのビット・ブロックの値がオーバーフローするのを防ぐためであり後に説明する。
【００２８】
本実施の形態では、１６ビットの固定長ビットの共有情報を作成することを例示して説明する。共有情報は４ビットからなる４個の固定長ビットのビット・ブロックを結合して作成する。各ビット・ブロックのビット情報は１回の揺動の周期により決まる。したがって、最低の揺動回数は共有情報に必要なビット長により決定される。揺動により加速度センサ１７の各検出軸は重力加速度の分力成分の変化を測定することになるが、このような加速度の変化をもたらす揺動運動を加速度運動という。そして加速度センサ１７の各検出軸が検出した加速度は、専用のプログラムにより重力方向に対する当該検出軸の傾斜角度として出力される。ただし、本発明は、振幅の符号がプラスまたはマイナスのいずれか一方だけの繰り返し波形を構成する加速度データに適用することもできる。なお、揺動中は重力加速度に加えてその揺動操作に起因する加速度も重畳されるが、数Ｈｚ程度の周波数の揺動ではその重畳される加速度の変化量は重力加速度の分力成分の変化量に比べて極めて小さいため無視することができる。
【００２９】
２つ重ねて揺動させられた各通信端末装置１０ａ、１０ｂでは、それぞれ揺動の周期は一致している。したがって、それぞれの繰り返し波形は、揺動に対応する波の周期が同一になり、その周期を同一の情報としてそれぞれにおいて取得することができる。加速度データ取得部５３は、加速度センサ１７から、Ｘ軸、Ｙ軸、Ｚ軸のそれぞれの検出軸についてアナログ・データで加速度データを受け取り、２５０Ｈｚのサンプリング周波数でサンプリングして２秒の間取得した加速度データをメイン・メモリ１３にリスト形式で記憶する。通信端末装置１０ｂにおいても同様に、加速度データ取得部５３が５００Ｈｚのサンプリング周波数で２秒の間取得した加速度データをメイン・メモリ１３にリスト形式で記憶する。加速度データ取得部５３は、２秒間経過すると加速度データの取得が完了したことを検出軸選定部５５に通知する。
【００３０】
図５に加速度センサ１７が出力した加速度データの繰り返し波形の一部を示す。図５（Ａ）は通信端末装置１０ａの加速度センサ１７の特定の検出軸が出力した繰り返し波形８０ａで、図５（Ｂ）は通信端末装置１０ｂの加速度センサ１７の特定の検出軸が出力した繰り返し波形８０ｂを示す。繰り返し波形の各波の周期は、揺動の１往復の時間に対応している。各波の周期を抽出するために、繰り返し波形８０ａ、８０ｂに対して時間軸上の特徴位置を定義する。特徴位置の一例としては、各波の振幅が最大になる時間軸上の位置（以後、この位置をピーク位置という。）を選択することができる。ここで前述のピーク区間は、特定のピーク位置とそれに隣接するピーク位置の間の時間に対応することになる。
【００３１】
通信端末装置１０ａ、１０ｂの加速度センサ１７が出力する繰り返し波形８０ａ、８０ｂはそれぞれの振幅が重力加速度の方向に対する検出軸の角度に相当する値を示している。繰り返し波形８０ａでは、振幅にＰａ１〜Ｐａ５の５つの正のピーク位置が観測され、繰り返し波形８０ｂでは振幅にＰｂ１〜Ｐｂ５の５つの正のピーク位置が観測される。そして、ピーク区間Ｐａ１−Ｐａ２、Ｐａ２−Ｐａ３、Ｐａ３−Ｐａ４、Ｐａ４−Ｐａ５について、それぞれピーク区間の時間ｔａ１、ｔａ２、ｔａ３、ｔａ４を計算することができる。同様にピーク区間Ｐｂ１−Ｐｂ２、Ｐｂ２−Ｐｂ３、Ｐｂ３−Ｐｂ４、Ｐｂ４−Ｐｂ５について、それぞれピーク区間の時間ｔｂ１、ｔｂ２、ｔｂ３、ｔｂ４を計算することができる。
【００３２】
検出軸選定部５５は、２つの通信端末装置１０ａ、１０ｂの間でピーク区間の時間の偏差が小さくなるように３つの軸の中からプラス側の振幅とマイナス側の振幅の差が最も大きな加速度データを出力した検出軸を選定する。選択された検出軸は、通信端末装置１０ａと１０ｂで異なっていてもよい。検出軸選定部５５は、選定した検出軸を特徴位置検出部５６に通知する。通信端末装置１０ａのメイン・メモリ１３には、４ミリ秒ごとにサンプリングされた加速度データがリスト形式で記憶され、通信端末装置１０ｂのメイン・メモリ１３には２ミリ秒とごとにサンプリングされた加速度データがリスト形式で記憶されている。各加速度データには、サンプリング番号がシーケンスに付与されている。特徴位置検出部５６はブロック１０５で、メイン・メモリ１３に記憶されている加速度データのリストから図５に示したピーク位置Ｐａ１〜Ｐａ５を抽出する。ピーク位置の抽出方法については図７、図８を参照して後に説明する。
【００３３】
特徴位置検出部５６はブロック１０７で、ピーク位置を示すサンプリング番号をサンプリング数カウント部５７に通知する。サンプリング数カウント部５７は加速度データのリストからピーク区間のサンプリング数を計算する。サンプリング数は、隣接する２つのピーク位置のサンプリング番号を抽出して大きなサンプリング番号から小さなサンプリング番号を減算して計算することができる。ただし、サンプリング数は、隣接する２つのピーク位置の間ではなく、揺動回数を増やして図５（Ａ）のＰａ１とＰａ３の間またはＰａ１とＰａ５の間というように、両端のピーク位置の間に１つまたは複数のピーク位置が入るようにしてカウントすることもできる。
【００３４】
図６（Ａ）は、検出軸選定部５５が選定した検出軸の加速度データから共有情報を得るまでの計算過程の例を示す。図６（Ｂ）は、それぞれ４ビットの４つのビット・ブロック９０ａ、９０ｂ、９０ｃ、９０ｄを結合して作成した固定長ビットの共有情報９０の一例を示す。図６（Ａ）には、通信端末装置１０ａ、１０ｂのそれぞれについて、４つのピーク区間に含まれるサンプリング数が示されている。各ピーク区間のサンプリング数は揺動周期によって決定される。サンプリング数カウント部５７はブロック１０９で、各ピーク区間に含まれるサンプリング数を計算して揺動周期が適切か否かを判断する。
【００３５】
各ピーク区間の時間情報に相当するサンプリング数は、以後の手順に示すように、ピーク区間の時間の計算、ピーク区間の時間の正規化、さらに正規化したピーク区間の時間の整数化を経て４ビットのビット列に変換されて各ビット・ブロックの値を決定する。各ピーク区間のサンプリング数の最大値は、４ビットで構成される各ビット・ブロックが２進数で「１１１１」を越えてオーバーフローしないように決定する。そのために、各ピーク区間について整数化した時間情報が１０進数で１５を越えないようにする。
【００３６】
また、サンプリング数の最小値は２進数で「０００１」以上になるように決定する。したがって、後に説明する整数化の前の時間情報の値は、少数以下の有効数字を２桁とすれば、１．９９〜１５．９９の範囲に収まっている必要がある。この値はピーク区間の時間情報として６６ミリ秒〜５３３ミリ秒に対応し、サンプリング数としては通信端末装置１０ａでは１６個〜１３３個に相当し、通信端末装置１０ｂでは３３個〜２６６個に相当する。また、ビット・ブロックのビット長（４ビット）の範囲から整数化した時間情報がオーバーフローする頻度を低減するため、各時間情報の中から選んだ最小値の例えば３／４の値を設定し、各ピーク区間について測定した時間情報から設定した値を減算した結果の値を正規化部５８に送る方法も考えられる。これによって、同じ４ビットの範囲でありながら、実際の揺動における有効変動周期の最大側の許容範囲を広げる事が可能になる。
【００３７】
なお、各ピーク区間でのサンプリング数の最大値および最小値は一例であり、最大値をより小さい値に設定したり、最小値をより大きな値に設定したりすることも可能である。また、ビット・ブロックのビット数を増やすことでサンプリング数の最大値を増加させることができる。サンプリング数カウント部５７は、各ピーク区間のサンプリング数が最大値と最小値の間にない場合は、ブロック１１１に移行してタッチパネル２１に画面を表示し、ユーザに揺動周期のガイダンスを行う。ガイダンスの画面では、たとえば、最大値以上のサンプリング数を検出した場合は早く揺動するアニメーションを表示したり、最小値以下のサンプリング数を検出した場合はゆっくり揺動するアニメーションを表示したりすることができる。また、所定時間が経過しても５個のピーク位置を検出できない場合は作業を終了し、サンプリング数カウント部５７は、タッチパネル２１に５回以上揺動させるようなメッセージを出す。
【００３８】
サンプリング数カウント部５７は、ユーザが通信端末装置１０ａ、１０ｂを規則的に揺動させたような場合に、各ピーク区間のサンプリング数が近似すると判断した場合は、当該加速度データを使用しないで再度ユーザに揺動を求めるようにすることもできる。各ビット・ブロックのビット配列が同じような共有情報は、第三者に類推される可能性があるからである。サンプリング数カウント部５７はブロック１１５で、各ピーク区間のサンプリング数を正規化部５８に送る。正規化部５８はサンプリング数にサンプリング周期を乗じて各ピーク区間の時間を計算する。
【００３９】
通信端末１０ａと１０では、加速度センサの増幅率の相違、量子化誤差の存在、サンプリング周波数の相違および時間軸上でのサンプリング位置の相違などがあるため、通常は対応するピーク区間の時間は同一にならない。正規化部５８はブロック１１７で、最大値を５００ミリ秒としたピーク区間の時間から１５（１０進数）以下のデータを得るために、各ピーク区間の時間に０．０３（１５／５００）を乗じて正規化する。
【００４０】
正規化した各ピーク区間の時間には小数以下の数値も発生するので、正規化部５８は、ブロック１１７で正規化した各ピーク区間の時間から少数以下を切り捨てて整数化する。ただし、四捨五入したり切り上げたりして整数化してもよい。結果として図６（Ａ）に示すように、通信端末装置１０ａおよび１０ｂのいずれにおいてもピーク区間の時間ｔａ１、ｔａ２、ｔａ３、ｔａ４およびｔｂ１、ｔｂ２、ｔｂ３、ｔｂ４として１０進数の数値８、７、９、１０が生成される。ブロック１１９では、正規化部５８は、共有情報作成部６１に４個の１０進数の数値を送る。
【００４１】
共有情報作成部６１は、４つの数値のそれぞれを４ビットの固定長ビットのビット・ブロック９０ａ〜９０ｄのそれぞれに適用し、左がＬＳＢになるようなビット列を作成する。具体的には、８、７、９、５をそれぞれビット・ブロック９０ａ、９０ｂ、９０ｃ、９０ｄに適用して、「０００１」、「１１１０」、「１００１」、「１０１０」の４つのビット情報を作成する。そして、４個のビット・ブロック９０ａ〜９０ｄを結合して１６ビットの固定長ビットの共有情報９０を作成する。図６（Ｂ）の共有情報９０では、各ビット・ブロックにおいてＬＳＢが左になるようにビット構成をしているがＭＳＢが左になるようにビット構成をしてもよい。
【００４２】
共有情報作成部６１はブロック１２１で、フラッシュ・メモリ１９の保護された記憶場所に共有情報９０を格納する。以後、この共有情報９０は、無線コントローラ１５を通じて通信端末装置１０ａと１０ｂの間で無線通信する際に、無線用のデバイス・ドライバまたは専用のプログラムによって、相互認証に使用する認証コードおよび送信データの暗号化および受信データの復号に使用する共有鍵として利用される。また、２台の通信端末装置の間で共有情報を作成する例を説明したが、本発明は３台以上の通信端末装置を一体に保持して揺動させ、それぞれにおいて同一の共有情報を作成することもできる。また、図５に示したようにピーク位置を振幅が正の波からだけ抽出する例を説明したが、ピーク位置は振幅が負の波からだけまたは正と負の両方の波から抽出するようにしてもよい。
【００４３】
［ピーク位置の抽出方法］
図７は、ブロック１０５で特徴位置検出部５６がピーク位置Ｐａ１〜Ｐａ５を抽出する手順を示すフローチャートである。ブロック２０１でユーザが通信端末装置１０ａ、１０ｂを共有情報作成の動作モードに設定し図４に示したように一体に保持して揺動操作を行うと、特徴位置検出部は加速度センサ１７から受け取った加速度データのリスト形式での記録を開始する。特徴位置検出部５６はブロック２０３で、リストの最初から連続する３個のサンプリング番号＃１、＃２、＃３の加速度データを抽出し、ブロック２０５ではその中に変曲点があるか否かを検査する。変曲点は、たとえば３つの加速度データ＃（ｎ−１）、＃（ｎ）、＃（ｎ＋１）の中で中央にある加速度データ＃（ｎ）が両端の加速度データ＃（ｎ−１）および＃（ｎ＋１）より大きい場合をいう。加速度データ＃１〜＃３が順番に増加しているために変曲点を検出しない場合は、ブロック２０７に移行して以前に抽出した３つのサンプリング番号＃１、＃２、＃３にそれぞれ１を加えてブロック２０３に戻り、つぎの３つのサンプリング番号＃２、＃３、＃４の加速度データを抽出する。この操作をサンプリング番号を１個シフトさせるということにする。抽出するサンプリング番号が増加するにしたがって特徴位置検出部５６はやがてブロック２０５で変曲点を検出する。
【００４４】
特徴位置検出部５６はブロック２０９で、変曲点の加速度データに対応するサンプリング番号をピーク位置Ｐａ１としてメイン・メモリ１３に記憶する。ブロック２１１では、特徴位置検出部５６は予定していた５個のピーク位置を検出した否かを判断する。５個のピーク位置を検出したときは、ブロック２１３でピーク位置の抽出作業を終了する。揺動回数が不足している場合は、特徴位置検出部５６は所定時間が経過しても５個のピーク位置を抽出できないことになる。この場合も特徴位置検出部５６はブロック２１３で作業を終了する。
【００４５】
特徴位置検出部５６はブロック２１５で、ピーク位置Ｐａ１を検出したときに採用したサンプリング番号を１個シフトさせて３つの加速度データを抽出し、ブロック２１７では波の山からだけピーク位置を検出するために、いずれの振幅値も符号が正であるか否かを検査する。振幅値が負の場合はブロック２１９に移行してサンプリング番号を１個シフトさせる。特徴位置検出部５６はブロック２２１で、ピーク位置Ｐａ２に対応する変曲点を検出する。そして特徴位置検出部５６はブロック２０９に戻って、ピーク位置Ｐａ２に対応するサンプリング番号をメイン・メモリ１３に記憶する。ブロック２０９からブロック２２１までの手順を繰り返すことで、特徴位置検出部５６は５個のピーク位置Ｐａ１〜Ｐａ５を検出する。
【００４６】
図８は、特徴位置検出部５６がピーク位置Ｐａ１〜Ｐａ５を検出する他の方法を説明する図である。ここでは、特徴位置検出部５６は繰り返し波形８０ａから振幅が最小になるサンプリング番号をゼロ・クロス位置ｐ１〜ｐ１０として検出し、正の振幅の加速度データを含むゼロ・クロス位置間にタイム・ウインドウ２５１ａ〜２５１ｅを設定する。そして、各タイム・ウインドウ２５１ａ〜２５１ｅの中で振幅が最大値を示すサンプリング番号をピーク位置として抽出する。
【００４７】
これまで、特徴位置を繰り返し波形のピーク位置として説明したが、本発明では特徴位置としてゼロ・クロス位置を選定することもできる。たとえば、図８のｐ１、ｐ３、ｐ５、ｐ７、ｐ９のような振幅が負から正に変化する過程で生じたゼロ・クロス位置を特徴位置として選定することができる。そして、ゼロ・クロス区間ｐ１−ｐ３、ｐ３−ｐ５、ｐ５−ｐ７、ｐ７−ｐ９からピーク区間の時間に対応する時間情報を生成して共有情報を作成することができる。なお、ゼロ・クロス位置とは、加速度センサが重力加速度を検出しない状態であり、つまり感度軸が筐体に水平に設置されているときの筐体の水平状態に該当する。したがって、ゼロ・クロス位置を検出するにはユーザによって筐体が水平状態を通過する揺動操作が行われる必要がある。そして、揺動操作が不適当でゼロ・クロス位置が検出できない場合には、タッチパネル２１に水平状態を通過するような揺動操作を示すアニメーションや文字情報を表示して正しい揺動操作をユーザに要求することでゼロ・クロス位置から波の周期に対応する時間情報を取得することができる。
【００４８】
［揺動による可変長ビットの共有情報の作成］
図３の手順では、固定長ビットのビット・ブロックを４個結合して１６ビットからなる固定長ビットの共有情報を作成する例を示して説明したが、本発明は可変長ビットの共有情報を作成することもできる。図９は可変長ビットの共有情報を作成する方法を説明する図である。可変長ビットの共有情報３００を作成する場合は、固定長ビットの共有情報９０を作成する手順を示す図３において、ブロック１０９とブロック１１９の手順だけが異なる。可変長ビットの共有情報３００では、ビット・ブロックのビット数をあらかじめ設定しないで、各ピーク区間のサンプリング数から正規化および整数化を得て得られた数値から可変長ビットのビット・ブロック３０１ａ〜３０１ｄのビット数を決定する。
【００４９】
図６(Ａ)の整数化したデータが８、７、９、５の場合では、７と５の数値は３ビットで構成することができるので、ビット・ブロック３０１ｂ、３０１ｄからはＭＳＢを除去することができる。したがって共有情報３００のビット数は１４ビットとなる。可変長ビットの共有情報では、整数化の結果が１０進数で３、７、１５になると、全体のビット情報が１になり共有情報としては望ましくない。そのために、他の可変長ビットの共有情報４００では、各ビット・ブロック４０１ａ〜４０１ｄの間にはゼロを設定した１ビットのダミー・ビット４０３、４０５、４０７を設けることができる。
【００５０】
ダミー・ビットのビット数は１ビットに限定する必要はない。可変長ビットの共有情報を作成するときは、揺動回数は固定長ビットの場合のように限定されず、作成する共有情報の複雑さに依存する。またピーク区間のサンプリング数の最大値は特に制限する必要はない。揺動周期が長くなるほど共有情報のビット数が増える。また、サンプリング数の最小値は、固定長ビットの共有情報を作成する場合と同一にすることができる。さらに、十分に大きな可変長ビットの共有情報を作成してから、最初のビット位置から所定のビット数だけを取り出して固定長ビットの共有情報を作成することもできる。また、固定長ビットのビット・ブロックと可変長ビットのビット・ブロックを組み合わせてより複雑な共有情報を作成することもできる。さらに極端な例としては一周期分の加速度の波形を生成するような揺動操作から共有情報を生成することも可能である。
【００５１】
［衝突による共有情報の作成手順］
つぎに、２台の通信端末装置１０ａ、１０ｂを衝突させて共有情報を作成する手順を説明する。図１０は、２台の通信端末装置１０ａ、１０ｂを衝突させるときの様子を説明する図である。図１０（Ａ）、（Ｂ）に示すように、あらかじめ設定した最小周期および最大周期の間で２台の通信端末装置１０ａ、１０ｂを相互にユーザが軽く数回衝突させると、加速度センサ１７は、図１１に示すような繰り返し波形５００を出力する。繰り返し波形５００は、４回衝突させたときに生成されたものである。なお、図１０（Ｃ）、（Ｄ）のように２台の通信端末装置１０ａ、１０ｂをユーザが一体で重ねて保持し、周囲の他の物体５１１に両方の筐体を同時に衝突させることでも加速度センサ１７から共有情報の生成に有効な繰り返し波形を得ることができる。
【００５２】
ここに衝突の周期は不規則でかつ２台の通信端末装置１０ａ、１０ｂにとって同一性のある情報である。繰り返し波形５００の振幅は、重力加速度の分力成分から計算した検出軸の傾斜角度とは異なり、衝撃により筐体が振動したことによる加速度運動から検出した加速度で、この例では振幅が２０Ｇを越える値にまで到達している。繰り返し波形５００の形状は、衝撃力と通信端末装置の筐体の振動特性で定まり、１回の衝突では複数のピーク位置およびゼロ・クロス位置を観測することができる。
【００５３】
繰り返し波形５００についても図３の手順に基づいて、固定長ビットまたは可変長ビットの共有情報を作成することができるが、特徴位置としてのピーク位置は以下のようにして決定することができる。最初に特徴位置検出部５６は加速度データのリストに対して重力による加速度の影響を排除して衝突により生じた加速度だけを抽出するために１Ｇ程度の閾値を設定し、閾値以下の加速度データをゼロとみなす。つぎに、特徴位置検出部５６は振幅がゼロの加速度データが、衝突操作に対して設定した最小の周期以上連続しているゼロ区間５０１ａ〜５０１ｅを検出する。
【００５４】
つぎに、ゼロ区間の開始位置ｐ２、ｐ４、ｐ６、ｐ８と終了位置ｐ１、ｐ３、ｐ５、ｐ７に対応するサンプリング番号を検出する。つづいて加速度データのリストに対して、ゼロ区間の終了位置と開始位置の組ｐ１−ｐ２、ｐ３−ｐ４、ｐ５−ｐ６、ｐ７−ｐ８で形成された４個のタイム・ウインドウ５０３ａ〜５０３ｄを設定する。２台の通信端末装置１０ａ、１０ｂが取得している波形が互いに逆相であったとしても、波の山または谷の内、その振幅の絶対値がより大きい方のピーク区間を採用する。それは、衝突による加速度の場合は、波形が正と負で甚だしく非対称であり、第１衝撃に対応する正または負の一方の波の振幅が大きいためである。なお、正規化部５８での端数の省略のしかたによっては、必ずしも上記の絶対値が大きい山または谷の側の波からではなくて、図１１の正の振幅を示す反対側の波からでも有効な時間情報を取得することができる。
【００５５】
本発明にかかる共有情報は、これまで説明したような無線通信における認証やデータの暗号化の利用に限定されるものではない。たとえば、共有情報を作成するための機能を備えた小さな同一のデバイスをセキュリティ用のトークンとして２個用意して、第１段階として各デバイスで秘密鍵としての共有情報を作成し、第２段階として各デバイスを所定の手続で他の通信端末やサーバに装着すれば、内部に保持している秘密鍵を使って通信端末同士または通信端末とサーバが安全な通信を行うことができる。この場合のデバイスは生成した共有情報を自らが使用するのではなく外部に提供することを目的にするものであるため、他の装置に安全に共有情報を出力する出力部を備えている。
【００５６】
また、本発明における共有情報の作成方法はパスワード方式とは異なるため、共有情報を作成する操作者が直接その共有情報自体に関与したり、認識したりする必要がないという特徴を備えているため、共有情報の作成を第３者が代行することが可能になる。あるいは、あるシステムがまだ誰にも所有されていない段階で、複数のシステム間で共有できる秘密鍵を事前に設定することもできる。その秘密鍵の生成と設定が例え秘密保持が要求されないユーザによって行われても、ユーザは実際の共有情報自体を知ることができないため安全に設定することができる。本発明によればこの共有情報の作成を何度でも繰り返し行うことができるため、例えば、システムの管理者が同一のシステムを異なるユーザ向けに転用する際に新しい共有情報を容易に作成することが可能になる。
【００５７】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【産業上の利用可能性】
【００５８】
秘密性のある同一の共有情報を保有する必要がある装置に適用することができる。
【符号の説明】
【００５９】
１０、１０ａ、１０ｂ…通信端末装置
５０…共有情報作成プログラム
【図１】
2011130224.tif 000003
【図２】
2011130224.tif 000004
【図３】
2011130224.tif 000005
【図４】
2011130224.tif 000006
【図５】
2011130224.tif 000007
【図６】
2011130224.tif 000008
【図７】
2011130224.tif 000009
【図８】
2011130224.tif 000010
【図９】
2011130224.tif 000011
【図１０】
2011130224.tif 000012
【図１１】
2011130224.tif 000013