通信端末装置における共有情報の作成方法
【課題】複数の通信端末装置において簡単に安全性の高い共有情報(秘密鍵)を作成してアドホック・モードでの無線通信を行う。
【解決手段】2つの通信端末装置を一体に保持して複数回揺動させ、それぞれにおいて加速度データを生成する。各通信端末装置はそれぞれの加速度データからピーク位置Pa1〜Pa5またはピーク位置Pb1〜Pb5を抽出する。ピーク位置の間の時間ta1〜ta4およびtb1〜tb4は、不規則でかつ2つの通信端末装置で共通の情報となる。各通信端末装置はピーク位置間の時間から複数の同一のビット情報で構成された共有情報を作成する。共有情報を利用して2つの通信端末装置間で相互認証を行いさらに暗号化を行う。
【解決手段】2つの通信端末装置を一体に保持して複数回揺動させ、それぞれにおいて加速度データを生成する。各通信端末装置はそれぞれの加速度データからピーク位置Pa1〜Pa5またはピーク位置Pb1〜Pb5を抽出する。ピーク位置の間の時間ta1〜ta4およびtb1〜tb4は、不規則でかつ2つの通信端末装置で共通の情報となる。各通信端末装置はピーク位置間の時間から複数の同一のビット情報で構成された共有情報を作成する。共有情報を利用して2つの通信端末装置間で相互認証を行いさらに暗号化を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の通信端末装置において保有する秘密性のある同一の共有情報を作成する技術に関し、さらに詳細には簡単に安全性の高い共有情報を作成する技術に関する。
【背景技術】
【0002】
通信端末装置では、インフラストラクチャ・モードやアドホック・モードでピアツーピアの無線通信が行われることがある。ピアツーピアの無線通信を安全に行うには、相互認証や暗号化に使用する共通の認証コードや共有鍵をそれぞれの通信端末装置が保有している必要がある。そして、アドホック・モードでの無線通信では、通信端末装置同士が出会った場所で、それぞれそのような認証コードや共有鍵を保有している必要がある。
【0003】
特許文献1は、マウスやキーボードなど組み込むことができないような小型の電子機器において、それらが生成するイベントを、加速度センサを利用して生成する技術を開示する。同文献には2方向以上の加速度または衝撃に基づいて本体の動きのパターンを分類し、電子機器が分類されたパターンに応じた固有のイベント信号を発生することが記載されている。特許文献2は、コンピュータ本体の動きを加速度センサで検出しその動きを生じさせたユーザの動作の種類を区別して、動きに応じた操作指示に変換する技術を開示する。同文献には、ユーザの動作のうち振ることと叩くことを区別することが記載されている。非特許文献1には、 Bump Technologies社のBump(登録商標)というアプリケーション・プログラムをアップル社のiPhone(登録商標)に実装し、2台のデバイスを同時に振ることでアドレスを交換できることが記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−47813号公報
【特許文献2】特開2000−148351号公報
【非特許文献】
【0005】
【非特許文献1】下記のURLで示されているインターネット・サイトhttp://www.bumptechnologies.com/products.phtml
【発明の概要】
【発明が解決しようとする課題】
【0006】
アドホック・モードの無線通信をするためにこれまでは、事前に通信を許可する同一グループのメンバーに共有パスワードを配布したり、Bluetooth(登録商標)デバイスでは接続可能な機器に事前に同一のピンコードを入力したりして通信できる対象を登録していた。しかし、このような方法には、共有パスワードの管理やデバイス登録の作業が煩雑になるという問題があった。またこのような方法は、事前に登録されていない通信端末装置を保有するユーザが通信しようとする場合には適用できない。これに対して、その場でお互いに通信端末装置に同一のパスワードを入力して安全な通信を行う方法も考えられる。しかし、二人の人間が入力するパスワードは複雑さに限界があり、作業も繁雑で、さらにお互いにパスワードを相談する際に第三者に盗聴される危険性もある。
【0007】
そこで本発明の目的は、複数の通信端末装置のそれぞれにおいて簡単に安全性の高い同一の共有情報を作成する方法を提供することにある。さらに本発明の目的は、複数の通信端末装置のそれぞれにおいて相互認証または暗号化通信に使用する共有情報を作成して無線通信を行う方法を提供することにある。さらに本発明の目的は、そのような方法を実現できる通信端末装置およびコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【0008】
本発明は複数の通信端末装置のそれぞれにおいて簡単に安全な共有情報を作成する方法を提供する。各通信端末装置は加速度センサを備えており、通信端末装置が他の通信端末装置と関連する加速度運動をしたときに、それぞれの加速度センサは共有情報を作成するための加速度データを出力する。なお、それぞれの加速度センサが出力する加速度データは相互に同期している必要はない。加速度データから秘密性のある共有情報を作成するための加速度運動は不規則であることが望ましい。また、それぞれの通信端末装置で同一の共有情報を作成するためには、それぞれの通信端末装置において取得した加速度データが共通の特徴を備える必要がある。
【0009】
不規則でかつ共通の特徴を備える加速度データを生成するような加速度運動は、共有情報を保有すべき複数の通信端末装置をユーザが片手または両手で一体に保持して複数回揺動させたり、当該通信端末装置と他の通信端末装置をユーザが複数回衝突させたりしたときの運動とすることができる。そのような加速度運動により生成された加速度データは複数の波が繰り返して発生する繰り返し波形を構成し、揺動の周期または衝突の周期は、不規則であるが各通信端末装置では共通性を有することになる。本発明ではそのような不規則でかつ共通性のある特徴をそれぞれの加速度データから抽出するために、加速度データに複数の特徴位置を定義する。特徴位置は、繰り返し波形のそれぞれの波の振幅が最大を示す時間軸上のピーク位置や、振幅の絶対値が最小になる時間軸上のゼロ・クロス位置とすることができる。その後、各特徴位置の間の時間から時間情報を計算し、複数の時間情報から複数のビット情報で構成された共有情報を作成する。
【0010】
加速度運動には、衝突により通信端末装置の筐体が振動するときの運動と加速度センサの各検出軸が検出する重力加速度の分力成分が変化するように通信端末装置が姿勢を変化するときの運動を含む。不規則でかつ共通性のある時間情報から作成された共有情報は、共有情報を作成する時点で複数の通信端末装置が同一人によって物理的に支配されており、第三者が共有情報の作成に関与する余地はないため安全性が高い。さらに、揺動または衝突の回数を増やすことで簡単にビット数を増やして安全性を高めることができる。このような共有情報は、高い安全性が求められる無線通信の認証コードや暗号化の共有鍵として使用できる。
【0011】
一方の通信端末装置と他方の通信端末装置で生成した加速度データの振幅の山と谷が、時間軸上の対応する位置で反転する場合もある。しかし、波形の特徴位置から抽出される揺動の周期は、そのような反転する逆相の波形同士でも同じになるので共有情報の取得に支障はない。それぞれの通信端末装置で取得した加速度データには、アナログ信号を生成する加速度センサの増幅率の相違、量子化誤差の相違、サンプリング周波数の相違およびサンプリング位置の相違などがあるため、それぞれの通信端末装置で計算した各特徴位置の時間情報に多少の偏差が生ずることがある。その偏差を解消して完全に一致するビット情報を作成するために時間情報から所定の範囲の上位の数値だけを抽出することが望ましい。具体的には、時間情報を所定の数値で除して正規化しさらに整数化することで実現できる。
【0012】
共有情報は、揺動や衝突の周期によって全体のビット長が変化しない固定長ビット情報で構成されても、揺動や衝突の周期によって全体のビット長が変化する可変長ビットで構成されてもよい。固定長ビットの共有情報は、複数の特徴位置の間のそれぞれから計算した複数の時間情報から複数の固定長ビットのビット・ブロックを生成し、それらを順番に結合して作成することができる。可変長ビットの共有情報は、ビット・ブロック間に値がゼロのダミー・ビットを挿入して、揺動や衝突の周期によっては可能性のある連続する1で構成されるビット情報の発生を防ぐことが望ましい。この共有情報は秘密情報として通信端末装置で広く使用することができるが、特にアドホック・モードで無線通信する際の認証コードや暗号化の共有鍵に好適に使用することができる。
【発明の効果】
【0013】
本発明により、複数の通信端末装置のそれぞれにおいて簡単に安全性の高い同一の共有情報を作成する方法を提供することができた。さらに本発明により、複数の通信端末装置のそれぞれにおいて相互認証または暗号化通信に使用する共有情報を作成して無線通信を行う方法を提供することができた。さらに本発明により、そのような方法を実現できる通信端末装置およびコンピュータ・プログラムを提供することができた。
【図面の簡単な説明】
【0014】
【図1】本実施の形態にかかる通信端末装置の構成を示す機能ブロック図である。
【図2】共有情報作成プログラムが通信端末装置に実現させる機能のブロック図である。
【図3】2台の通信端末装置がそれぞれにおいて秘密性のある共有情報を作成する手順を示すフローチャートである。
【図4】2台の通信端末装置をユーザが一体に保持して揺動させるときの様子を説明する図である。
【図5】加速度センサが出力した加速度データの繰り返し波形の一例を示す図である。
【図6】加速度データから共有情報を得るまでの計算過程の例を示す図である。
【図7】特徴位置検出部がピーク位置Pa1〜Pa5を抽出する手順を示すフローチャートである。
【図8】特徴位置検出部がピーク位置Pa1〜Pa5を抽出する他の方法を説明する図である。
【図9】可変長ビットの共有情報を作成する方法を説明する図である。
【図10】2台の通信端末装置を衝突させるときの様子を説明する図である。
【図11】2台の通信端末装置を衝突させたときの繰り返し波形の一例を示す図である。
【発明を実施するための形態】
【0015】
[ハードウエア構成]
図1は、本実施の形態にかかる通信端末装置の構成を示す機能ブロック図である。通信端末装置10は、無線通信が可能な携帯電話、スマートフォン、PDA、または携帯式コンピュータなどである。通信端末装置10は、バスで相互に接続されたCPU11、メイン・メモリ13、無線コントローラ15、加速度センサ17、フラッシュ・メモリ19、およびタッチパネル21を含んで構成されている。無線コントローラ15は、インフラストラクチャ・モードで無線通信をするために無線LANおよび無線WANのアクセス・ポイントに接続することができ、さらに、アドホック・モードで他の通信端末装置に接続することができる。
【0016】
フラッシュ・メモリ19は、保護されない一般の記憶領域と読み取りおよび書き込みにパスワードの入力が必要な保護された記憶領域を含んでいる。保護された記憶領域には、本実施の形態で作成された共有情報が格納される。無線コントローラ15のデバイス・ドライバまたは無線通信用のプログラムは、アドホック・モードで無線通信をする際に、フラッシュ・メモリ19に格納された共有情報を利用して相互認証をしたり送信データの暗号化および受信データの復号をしたりする。フラッシュ・メモリ19には、オペレーティング・システムおよびアプリケーション・プログラムの他に、本実施の形態にかかる共有情報作成プログラム50(図2参照)が格納されている。タッチパネル21は、LCDのような表示装置とタッチパッドのような入力装置を組み合わせた装置である。タッチパネル21を通じてユーザは、通信端末装置10の動作を通常の動作モードと共有情報を作成する動作モードのいずれかに設定することができる。
【0017】
加速度センサ17は、通信端末装置10に発生した加速度を検出してアナログの加速度データを出力する。加速度センサ17は、直交する3つの検出軸(X軸、Y軸、Z軸)を備えており、各検出軸は重力加速度の分力成分および通信端末装置10の筐体に加えられた衝撃による加速度を検出して出力する。加速度センサ17の専用のプログラムは各検出軸が検出した重力加速度の分力成分から各検出軸の重力方向に対する傾斜角度を計算して出力することができる。各検出軸の傾斜角度は、タッチパネル21に表示する画面の表示方向をユーザによる筐体の保持の仕方に合わせて変化させるために利用することができる。ただし本発明は、検出軸が1つの加速度センサを備える通信端末装置に適用することもできる。
【0018】
[ソフトウエア構成]
図2は、メイン・メモリ13にロードされ、CPU11により実行されることにより共有情報作成プログラム50が通信端末装置10に実現させる機能のブロック図である。動作モード設定部51は、タッチパネル21を通じてユーザが通信端末装置10を共有情報作成の動作モードに設定すると、加速度データ取得部53に加速度センサ17から加速度データを取得するように指示する。加速度データ取得部53は、動作モード設定部51による指示を受けてから所定時間の間、3つの検出軸のそれぞれについて加速度センサ17から受け取ったアナログ値の加速度データを所定のサンプリング周波数でサンプリングし、サンプリングの順番にサンプリング番号を付与してリスト形式でメイン・メモリ13に記憶する。なお、加速度データ取得部53は、I2Cバスなどを介して、量子化済みの加速度データを同じサンプリング周波数に基づくタイミングで取得するように構成してもよい。
【0019】
検出軸選定部55は、3つの検出軸がそれぞれ出力した加速度データの中で波の山のピークと谷のピークの差が最大になっている検出軸の加速度データを選択し特徴位置検出部56に通知する。振幅の山が大きい繰り返し波形ほど2つの通信端末装置間でそれぞれの加速度データから抽出したピーク位置の偏差が小さくなるので都合がよい。特徴位置検出部56は、繰り返し波形を構成するリスト形式の加速度データから、各波の振幅の絶対値が最大になるピーク位置または振幅の絶対値が最小になるゼロ・クロス位置などの複数の特徴位置を検出してサンプリング数カウント部57に通知する。
【0020】
サンプリング数カウント部57は、複数のピーク区間のサンプリング数をメイン・メモリ13に記憶された加速度データのリストからカウントして正規化部58に送る。正規化部58は、サンプリング数から複数のピーク区間の時間をそれぞれ計算し、各時間を正規化したり整数化したりした時間情報から複数のビット・ブロックを作成して共有情報作成部61に送る。共有情報作成部61は、正規化部58が作成したビット・ブロックを結合して共有情報を作成し、フラッシュ・メモリ19の保護された記憶領域に格納する。
【0021】
なお、図1および図2は本実施の形態を説明するために、本発明に関連する主要なハードウエアおよびソフトウエアの構成および接続関係を簡略化して記載したものである。ここまでの説明で言及した以外にも、通信端末装置10を構成するには多くのデバイスおよびソフトウエアが使用される。しかしそれらは当業者には周知であるので、ここでは詳しく言及しない。図で記載した複数のブロックを1個の集積回路もしくはプログラム・モジュールとしたり、逆に1個のブロックを複数の集積回路もしくはプログラム・モジュールに分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【0022】
[揺動による固定長ビットの共有情報の作成手順]
図3は、2台の通信端末装置がそれぞれにおいて秘密性のある同一の共有情報を作成する手順を示すフローチャートである。図4は、2台の通信端末装置10a、10bをユーザが一体に保持して揺動させるときの様子を説明する図である。通信端末装置10a、10bは、それぞれ図1および図2に示したハードウエアおよびソフトウエアを備えているが、加速度データのサンプリング周波数は、通信端末装置10aでは250Hz(サンプリング周期は4ミリ秒)であり通信端末装置10bでは500Hz(サンプリング周期は2ミリ秒)である点で相違している。通信端末装置10a、10bにおいて、それぞれの共有情報作成プログラム50が共有情報を作成するアルゴリズムは同じである。
【0023】
当然ながら、本発明は加速度データに対する同一のサンプリング周波数を備える通信端末装置間での共有情報の作成に適用することも可能である。加速度センサ17は、メーカおよび型式が同一のものを採用することが望ましいが、本発明では加速度センサ17の出力の中で振幅の大きさは特徴位置を検出するためだけに利用し、共有情報の基礎となる特徴位置の間の時間の計算には利用しないので、特徴位置の抽出に支障がでない範囲において同一の加速度運動に対する出力が相互に相違するようなものであってもよい。
【0024】
本発明において秘密性のある共有情報(以下、単に共有情報という。)とは、通信端末装置10aと10bでそれぞれ独自に生成された同一のビット列の情報をいう。以下の手順で説明するように、共有情報は通信端末装置10a、10bに共通に与えた不規則な周期の加速度運動に基づいて作成された情報でもある。通信端末装置をユーザが揺動させたり衝突させたりして運動させる場合は、その周期は一般に不規則になるが本発明は不規則な周期の繰り返し波形を生成する加速度運動であれば、人間以外の方法で運動させてもよい。なお、以下の手順では2つの通信端末装置10a、10bでは共有情報作成プログラム50が同じ動作をするので、説明を簡単にするために必要な場合以外は通信端末装置10aについてだけ言及して説明するが通信端末装置10bも同一の動作をしていることに留意されたい。
【0025】
ブロック101では、ユーザがタッチパネル21を通じて通信端末装置10aの動作モードを通常の動作モードから共有情報作成の動作モードに移行させる。タッチパネル21からイベントを受け取った動作モード設定部51は、加速度データ取得部53にそれ以降に加速度センサ17から受け取った加速度データを所定時間の間記録させる。ここでは、所定時間を一例として所定値以上の加速度データが検出されてから2秒間とする。ブロック103では、ユーザは図4(A)に示すように2台の通信端末装置10a、10bを重ねて片手で一体に保持し、図4(B)に示すように重ねた状態で2台の通信端末装置10a、10bを所定回数以上揺動させる。
【0026】
片手で一体に保持されているので通信端末装置10a、10bの姿勢は相互に揺動中に変化せず両者の姿勢は同じ周期で変化する。なお、2つ重ねて保持したのは揺動させ易くするための一例であり、揺動中に相互間で移動しないように保持して同じ揺動周期で揺動させることができれば重ねて保持する必要はない。ユーザは一方の通信端末装置10aを縦向きに保持し他方の通信端末装置10bを横向きに保持するといったように縦方向と横方向が一致しないように保持したり、2つの通信端末装置10a、10bの背面同士を重ねて保持したりしてもよい。また、揺動中に2つの通信端末装置10a、10bが相互に移動しなければ両手で保持して揺動操作を行ってもよい。
【0027】
最低の揺動回数は、あらかじめユーザが知っているものとするがここでは一例として5回とする。揺動回数は通信端末装置10a、10bを左右に振ったときに1往復で1回とする。さらに、1往復の揺動周期を最大500ミリ秒とする。したがって、ユーザは2秒間の間に1往復が最大500ミリ秒を超えないように5回以上通信端末装置10a、10bを左右に揺動させる必要がある。1往復の揺動周期に最大値を設定するのは、固定長ビットの共有情報を作成する際の固定長ビットのビット・ブロックの値がオーバーフローするのを防ぐためであり後に説明する。
【0028】
本実施の形態では、16ビットの固定長ビットの共有情報を作成することを例示して説明する。共有情報は4ビットからなる4個の固定長ビットのビット・ブロックを結合して作成する。各ビット・ブロックのビット情報は1回の揺動の周期により決まる。したがって、最低の揺動回数は共有情報に必要なビット長により決定される。揺動により加速度センサ17の各検出軸は重力加速度の分力成分の変化を測定することになるが、このような加速度の変化をもたらす揺動運動を加速度運動という。そして加速度センサ17の各検出軸が検出した加速度は、専用のプログラムにより重力方向に対する当該検出軸の傾斜角度として出力される。ただし、本発明は、振幅の符号がプラスまたはマイナスのいずれか一方だけの繰り返し波形を構成する加速度データに適用することもできる。なお、揺動中は重力加速度に加えてその揺動操作に起因する加速度も重畳されるが、数Hz程度の周波数の揺動ではその重畳される加速度の変化量は重力加速度の分力成分の変化量に比べて極めて小さいため無視することができる。
【0029】
2つ重ねて揺動させられた各通信端末装置10a、10bでは、それぞれ揺動の周期は一致している。したがって、それぞれの繰り返し波形は、揺動に対応する波の周期が同一になり、その周期を同一の情報としてそれぞれにおいて取得することができる。加速度データ取得部53は、加速度センサ17から、X軸、Y軸、Z軸のそれぞれの検出軸についてアナログ・データで加速度データを受け取り、250Hzのサンプリング周波数でサンプリングして2秒の間取得した加速度データをメイン・メモリ13にリスト形式で記憶する。通信端末装置10bにおいても同様に、加速度データ取得部53が500Hzのサンプリング周波数で2秒の間取得した加速度データをメイン・メモリ13にリスト形式で記憶する。加速度データ取得部53は、2秒間経過すると加速度データの取得が完了したことを検出軸選定部55に通知する。
【0030】
図5に加速度センサ17が出力した加速度データの繰り返し波形の一部を示す。図5(A)は通信端末装置10aの加速度センサ17の特定の検出軸が出力した繰り返し波形80aで、図5(B)は通信端末装置10bの加速度センサ17の特定の検出軸が出力した繰り返し波形80bを示す。繰り返し波形の各波の周期は、揺動の1往復の時間に対応している。各波の周期を抽出するために、繰り返し波形80a、80bに対して時間軸上の特徴位置を定義する。特徴位置の一例としては、各波の振幅が最大になる時間軸上の位置(以後、この位置をピーク位置という。)を選択することができる。ここで前述のピーク区間は、特定のピーク位置とそれに隣接するピーク位置の間の時間に対応することになる。
【0031】
通信端末装置10a、10bの加速度センサ17が出力する繰り返し波形80a、80bはそれぞれの振幅が重力加速度の方向に対する検出軸の角度に相当する値を示している。繰り返し波形80aでは、振幅にPa1〜Pa5の5つの正のピーク位置が観測され、繰り返し波形80bでは振幅にPb1〜Pb5の5つの正のピーク位置が観測される。そして、ピーク区間Pa1−Pa2、Pa2−Pa3、Pa3−Pa4、Pa4−Pa5について、それぞれピーク区間の時間ta1、ta2、ta3、ta4を計算することができる。同様にピーク区間Pb1−Pb2、Pb2−Pb3、Pb3−Pb4、Pb4−Pb5について、それぞれピーク区間の時間tb1、tb2、tb3、tb4を計算することができる。
【0032】
検出軸選定部55は、2つの通信端末装置10a、10bの間でピーク区間の時間の偏差が小さくなるように3つの軸の中からプラス側の振幅とマイナス側の振幅の差が最も大きな加速度データを出力した検出軸を選定する。選択された検出軸は、通信端末装置10aと10bで異なっていてもよい。検出軸選定部55は、選定した検出軸を特徴位置検出部56に通知する。通信端末装置10aのメイン・メモリ13には、4ミリ秒ごとにサンプリングされた加速度データがリスト形式で記憶され、通信端末装置10bのメイン・メモリ13には2ミリ秒とごとにサンプリングされた加速度データがリスト形式で記憶されている。各加速度データには、サンプリング番号がシーケンスに付与されている。特徴位置検出部56はブロック105で、メイン・メモリ13に記憶されている加速度データのリストから図5に示したピーク位置Pa1〜Pa5を抽出する。ピーク位置の抽出方法については図7、図8を参照して後に説明する。
【0033】
特徴位置検出部56はブロック107で、ピーク位置を示すサンプリング番号をサンプリング数カウント部57に通知する。サンプリング数カウント部57は加速度データのリストからピーク区間のサンプリング数を計算する。サンプリング数は、隣接する2つのピーク位置のサンプリング番号を抽出して大きなサンプリング番号から小さなサンプリング番号を減算して計算することができる。ただし、サンプリング数は、隣接する2つのピーク位置の間ではなく、揺動回数を増やして図5(A)のPa1とPa3の間またはPa1とPa5の間というように、両端のピーク位置の間に1つまたは複数のピーク位置が入るようにしてカウントすることもできる。
【0034】
図6(A)は、検出軸選定部55が選定した検出軸の加速度データから共有情報を得るまでの計算過程の例を示す。図6(B)は、それぞれ4ビットの4つのビット・ブロック90a、90b、90c、90dを結合して作成した固定長ビットの共有情報90の一例を示す。図6(A)には、通信端末装置10a、10bのそれぞれについて、4つのピーク区間に含まれるサンプリング数が示されている。各ピーク区間のサンプリング数は揺動周期によって決定される。サンプリング数カウント部57はブロック109で、各ピーク区間に含まれるサンプリング数を計算して揺動周期が適切か否かを判断する。
【0035】
各ピーク区間の時間情報に相当するサンプリング数は、以後の手順に示すように、ピーク区間の時間の計算、ピーク区間の時間の正規化、さらに正規化したピーク区間の時間の整数化を経て4ビットのビット列に変換されて各ビット・ブロックの値を決定する。各ピーク区間のサンプリング数の最大値は、4ビットで構成される各ビット・ブロックが2進数で「1111」を越えてオーバーフローしないように決定する。そのために、各ピーク区間について整数化した時間情報が10進数で15を越えないようにする。
【0036】
また、サンプリング数の最小値は2進数で「0001」以上になるように決定する。したがって、後に説明する整数化の前の時間情報の値は、少数以下の有効数字を2桁とすれば、1.99〜15.99の範囲に収まっている必要がある。この値はピーク区間の時間情報として66ミリ秒〜533ミリ秒に対応し、サンプリング数としては通信端末装置10aでは16個〜133個に相当し、通信端末装置10bでは33個〜266個に相当する。また、ビット・ブロックのビット長(4ビット)の範囲から整数化した時間情報がオーバーフローする頻度を低減するため、各時間情報の中から選んだ最小値の例えば3/4の値を設定し、各ピーク区間について測定した時間情報から設定した値を減算した結果の値を正規化部58に送る方法も考えられる。これによって、同じ4ビットの範囲でありながら、実際の揺動における有効変動周期の最大側の許容範囲を広げる事が可能になる。
【0037】
なお、各ピーク区間でのサンプリング数の最大値および最小値は一例であり、最大値をより小さい値に設定したり、最小値をより大きな値に設定したりすることも可能である。また、ビット・ブロックのビット数を増やすことでサンプリング数の最大値を増加させることができる。サンプリング数カウント部57は、各ピーク区間のサンプリング数が最大値と最小値の間にない場合は、ブロック111に移行してタッチパネル21に画面を表示し、ユーザに揺動周期のガイダンスを行う。ガイダンスの画面では、たとえば、最大値以上のサンプリング数を検出した場合は早く揺動するアニメーションを表示したり、最小値以下のサンプリング数を検出した場合はゆっくり揺動するアニメーションを表示したりすることができる。また、所定時間が経過しても5個のピーク位置を検出できない場合は作業を終了し、サンプリング数カウント部57は、タッチパネル21に5回以上揺動させるようなメッセージを出す。
【0038】
サンプリング数カウント部57は、ユーザが通信端末装置10a、10bを規則的に揺動させたような場合に、各ピーク区間のサンプリング数が近似すると判断した場合は、当該加速度データを使用しないで再度ユーザに揺動を求めるようにすることもできる。各ビット・ブロックのビット配列が同じような共有情報は、第三者に類推される可能性があるからである。サンプリング数カウント部57はブロック115で、各ピーク区間のサンプリング数を正規化部58に送る。正規化部58はサンプリング数にサンプリング周期を乗じて各ピーク区間の時間を計算する。
【0039】
通信端末10aと10では、加速度センサの増幅率の相違、量子化誤差の存在、サンプリング周波数の相違および時間軸上でのサンプリング位置の相違などがあるため、通常は対応するピーク区間の時間は同一にならない。正規化部58はブロック117で、最大値を500ミリ秒としたピーク区間の時間から15(10進数)以下のデータを得るために、各ピーク区間の時間に0.03(15/500)を乗じて正規化する。
【0040】
正規化した各ピーク区間の時間には小数以下の数値も発生するので、正規化部58は、ブロック117で正規化した各ピーク区間の時間から少数以下を切り捨てて整数化する。ただし、四捨五入したり切り上げたりして整数化してもよい。結果として図6(A)に示すように、通信端末装置10aおよび10bのいずれにおいてもピーク区間の時間ta1、ta2、ta3、ta4およびtb1、tb2、tb3、tb4として10進数の数値8、7、9、10が生成される。ブロック119では、正規化部58は、共有情報作成部61に4個の10進数の数値を送る。
【0041】
共有情報作成部61は、4つの数値のそれぞれを4ビットの固定長ビットのビット・ブロック90a〜90dのそれぞれに適用し、左がLSBになるようなビット列を作成する。具体的には、8、7、9、5をそれぞれビット・ブロック90a、90b、90c、90dに適用して、「0001」、「1110」、「1001」、「1010」の4つのビット情報を作成する。そして、4個のビット・ブロック90a〜90dを結合して16ビットの固定長ビットの共有情報90を作成する。図6(B)の共有情報90では、各ビット・ブロックにおいてLSBが左になるようにビット構成をしているがMSBが左になるようにビット構成をしてもよい。
【0042】
共有情報作成部61はブロック121で、フラッシュ・メモリ19の保護された記憶場所に共有情報90を格納する。以後、この共有情報90は、無線コントローラ15を通じて通信端末装置10aと10bの間で無線通信する際に、無線用のデバイス・ドライバまたは専用のプログラムによって、相互認証に使用する認証コードおよび送信データの暗号化および受信データの復号に使用する共有鍵として利用される。また、2台の通信端末装置の間で共有情報を作成する例を説明したが、本発明は3台以上の通信端末装置を一体に保持して揺動させ、それぞれにおいて同一の共有情報を作成することもできる。また、図5に示したようにピーク位置を振幅が正の波からだけ抽出する例を説明したが、ピーク位置は振幅が負の波からだけまたは正と負の両方の波から抽出するようにしてもよい。
【0043】
[ピーク位置の抽出方法]
図7は、ブロック105で特徴位置検出部56がピーク位置Pa1〜Pa5を抽出する手順を示すフローチャートである。ブロック201でユーザが通信端末装置10a、10bを共有情報作成の動作モードに設定し図4に示したように一体に保持して揺動操作を行うと、特徴位置検出部は加速度センサ17から受け取った加速度データのリスト形式での記録を開始する。特徴位置検出部56はブロック203で、リストの最初から連続する3個のサンプリング番号#1、#2、#3の加速度データを抽出し、ブロック205ではその中に変曲点があるか否かを検査する。変曲点は、たとえば3つの加速度データ#(n−1)、#(n)、#(n+1)の中で中央にある加速度データ#(n)が両端の加速度データ#(n−1)および#(n+1)より大きい場合をいう。加速度データ#1〜#3が順番に増加しているために変曲点を検出しない場合は、ブロック207に移行して以前に抽出した3つのサンプリング番号#1、#2、#3にそれぞれ1を加えてブロック203に戻り、つぎの3つのサンプリング番号#2、#3、#4の加速度データを抽出する。この操作をサンプリング番号を1個シフトさせるということにする。抽出するサンプリング番号が増加するにしたがって特徴位置検出部56はやがてブロック205で変曲点を検出する。
【0044】
特徴位置検出部56はブロック209で、変曲点の加速度データに対応するサンプリング番号をピーク位置Pa1としてメイン・メモリ13に記憶する。ブロック211では、特徴位置検出部56は予定していた5個のピーク位置を検出した否かを判断する。5個のピーク位置を検出したときは、ブロック213でピーク位置の抽出作業を終了する。揺動回数が不足している場合は、特徴位置検出部56は所定時間が経過しても5個のピーク位置を抽出できないことになる。この場合も特徴位置検出部56はブロック213で作業を終了する。
【0045】
特徴位置検出部56はブロック215で、ピーク位置Pa1を検出したときに採用したサンプリング番号を1個シフトさせて3つの加速度データを抽出し、ブロック217では波の山からだけピーク位置を検出するために、いずれの振幅値も符号が正であるか否かを検査する。振幅値が負の場合はブロック219に移行してサンプリング番号を1個シフトさせる。特徴位置検出部56はブロック221で、ピーク位置Pa2に対応する変曲点を検出する。そして特徴位置検出部56はブロック209に戻って、ピーク位置Pa2に対応するサンプリング番号をメイン・メモリ13に記憶する。ブロック209からブロック221までの手順を繰り返すことで、特徴位置検出部56は5個のピーク位置Pa1〜Pa5を検出する。
【0046】
図8は、特徴位置検出部56がピーク位置Pa1〜Pa5を検出する他の方法を説明する図である。ここでは、特徴位置検出部56は繰り返し波形80aから振幅が最小になるサンプリング番号をゼロ・クロス位置p1〜p10として検出し、正の振幅の加速度データを含むゼロ・クロス位置間にタイム・ウインドウ251a〜251eを設定する。そして、各タイム・ウインドウ251a〜251eの中で振幅が最大値を示すサンプリング番号をピーク位置として抽出する。
【0047】
これまで、特徴位置を繰り返し波形のピーク位置として説明したが、本発明では特徴位置としてゼロ・クロス位置を選定することもできる。たとえば、図8のp1、p3、p5、p7、p9のような振幅が負から正に変化する過程で生じたゼロ・クロス位置を特徴位置として選定することができる。そして、ゼロ・クロス区間p1−p3、p3−p5、p5−p7、p7−p9からピーク区間の時間に対応する時間情報を生成して共有情報を作成することができる。なお、ゼロ・クロス位置とは、加速度センサが重力加速度を検出しない状態であり、つまり感度軸が筐体に水平に設置されているときの筐体の水平状態に該当する。したがって、ゼロ・クロス位置を検出するにはユーザによって筐体が水平状態を通過する揺動操作が行われる必要がある。そして、揺動操作が不適当でゼロ・クロス位置が検出できない場合には、タッチパネル21に水平状態を通過するような揺動操作を示すアニメーションや文字情報を表示して正しい揺動操作をユーザに要求することでゼロ・クロス位置から波の周期に対応する時間情報を取得することができる。
【0048】
[揺動による可変長ビットの共有情報の作成]
図3の手順では、固定長ビットのビット・ブロックを4個結合して16ビットからなる固定長ビットの共有情報を作成する例を示して説明したが、本発明は可変長ビットの共有情報を作成することもできる。図9は可変長ビットの共有情報を作成する方法を説明する図である。可変長ビットの共有情報300を作成する場合は、固定長ビットの共有情報90を作成する手順を示す図3において、ブロック109とブロック119の手順だけが異なる。可変長ビットの共有情報300では、ビット・ブロックのビット数をあらかじめ設定しないで、各ピーク区間のサンプリング数から正規化および整数化を得て得られた数値から可変長ビットのビット・ブロック301a〜301dのビット数を決定する。
【0049】
図6(A)の整数化したデータが8、7、9、5の場合では、7と5の数値は3ビットで構成することができるので、ビット・ブロック301b、301dからはMSBを除去することができる。したがって共有情報300のビット数は14ビットとなる。可変長ビットの共有情報では、整数化の結果が10進数で3、7、15になると、全体のビット情報が1になり共有情報としては望ましくない。そのために、他の可変長ビットの共有情報400では、各ビット・ブロック401a〜401dの間にはゼロを設定した1ビットのダミー・ビット403、405、407を設けることができる。
【0050】
ダミー・ビットのビット数は1ビットに限定する必要はない。可変長ビットの共有情報を作成するときは、揺動回数は固定長ビットの場合のように限定されず、作成する共有情報の複雑さに依存する。またピーク区間のサンプリング数の最大値は特に制限する必要はない。揺動周期が長くなるほど共有情報のビット数が増える。また、サンプリング数の最小値は、固定長ビットの共有情報を作成する場合と同一にすることができる。さらに、十分に大きな可変長ビットの共有情報を作成してから、最初のビット位置から所定のビット数だけを取り出して固定長ビットの共有情報を作成することもできる。また、固定長ビットのビット・ブロックと可変長ビットのビット・ブロックを組み合わせてより複雑な共有情報を作成することもできる。さらに極端な例としては一周期分の加速度の波形を生成するような揺動操作から共有情報を生成することも可能である。
【0051】
[衝突による共有情報の作成手順]
つぎに、2台の通信端末装置10a、10bを衝突させて共有情報を作成する手順を説明する。図10は、2台の通信端末装置10a、10bを衝突させるときの様子を説明する図である。図10(A)、(B)に示すように、あらかじめ設定した最小周期および最大周期の間で2台の通信端末装置10a、10bを相互にユーザが軽く数回衝突させると、加速度センサ17は、図11に示すような繰り返し波形500を出力する。繰り返し波形500は、4回衝突させたときに生成されたものである。なお、図10(C)、(D)のように2台の通信端末装置10a、10bをユーザが一体で重ねて保持し、周囲の他の物体511に両方の筐体を同時に衝突させることでも加速度センサ17から共有情報の生成に有効な繰り返し波形を得ることができる。
【0052】
ここに衝突の周期は不規則でかつ2台の通信端末装置10a、10bにとって同一性のある情報である。繰り返し波形500の振幅は、重力加速度の分力成分から計算した検出軸の傾斜角度とは異なり、衝撃により筐体が振動したことによる加速度運動から検出した加速度で、この例では振幅が20Gを越える値にまで到達している。繰り返し波形500の形状は、衝撃力と通信端末装置の筐体の振動特性で定まり、1回の衝突では複数のピーク位置およびゼロ・クロス位置を観測することができる。
【0053】
繰り返し波形500についても図3の手順に基づいて、固定長ビットまたは可変長ビットの共有情報を作成することができるが、特徴位置としてのピーク位置は以下のようにして決定することができる。最初に特徴位置検出部56は加速度データのリストに対して重力による加速度の影響を排除して衝突により生じた加速度だけを抽出するために1G程度の閾値を設定し、閾値以下の加速度データをゼロとみなす。つぎに、特徴位置検出部56は振幅がゼロの加速度データが、衝突操作に対して設定した最小の周期以上連続しているゼロ区間501a〜501eを検出する。
【0054】
つぎに、ゼロ区間の開始位置p2、p4、p6、p8と終了位置p1、p3、p5、p7に対応するサンプリング番号を検出する。つづいて加速度データのリストに対して、ゼロ区間の終了位置と開始位置の組p1−p2、p3−p4、p5−p6、p7−p8で形成された4個のタイム・ウインドウ503a〜503dを設定する。2台の通信端末装置10a、10bが取得している波形が互いに逆相であったとしても、波の山または谷の内、その振幅の絶対値がより大きい方のピーク区間を採用する。それは、衝突による加速度の場合は、波形が正と負で甚だしく非対称であり、第1衝撃に対応する正または負の一方の波の振幅が大きいためである。なお、正規化部58での端数の省略のしかたによっては、必ずしも上記の絶対値が大きい山または谷の側の波からではなくて、図11の正の振幅を示す反対側の波からでも有効な時間情報を取得することができる。
【0055】
本発明にかかる共有情報は、これまで説明したような無線通信における認証やデータの暗号化の利用に限定されるものではない。たとえば、共有情報を作成するための機能を備えた小さな同一のデバイスをセキュリティ用のトークンとして2個用意して、第1段階として各デバイスで秘密鍵としての共有情報を作成し、第2段階として各デバイスを所定の手続で他の通信端末やサーバに装着すれば、内部に保持している秘密鍵を使って通信端末同士または通信端末とサーバが安全な通信を行うことができる。この場合のデバイスは生成した共有情報を自らが使用するのではなく外部に提供することを目的にするものであるため、他の装置に安全に共有情報を出力する出力部を備えている。
【0056】
また、本発明における共有情報の作成方法はパスワード方式とは異なるため、共有情報を作成する操作者が直接その共有情報自体に関与したり、認識したりする必要がないという特徴を備えているため、共有情報の作成を第3者が代行することが可能になる。あるいは、あるシステムがまだ誰にも所有されていない段階で、複数のシステム間で共有できる秘密鍵を事前に設定することもできる。その秘密鍵の生成と設定が例え秘密保持が要求されないユーザによって行われても、ユーザは実際の共有情報自体を知ることができないため安全に設定することができる。本発明によればこの共有情報の作成を何度でも繰り返し行うことができるため、例えば、システムの管理者が同一のシステムを異なるユーザ向けに転用する際に新しい共有情報を容易に作成することが可能になる。
【0057】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【産業上の利用可能性】
【0058】
秘密性のある同一の共有情報を保有する必要がある装置に適用することができる。
【符号の説明】
【0059】
10、10a、10b…通信端末装置
50…共有情報作成プログラム
【技術分野】
【0001】
本発明は、複数の通信端末装置において保有する秘密性のある同一の共有情報を作成する技術に関し、さらに詳細には簡単に安全性の高い共有情報を作成する技術に関する。
【背景技術】
【0002】
通信端末装置では、インフラストラクチャ・モードやアドホック・モードでピアツーピアの無線通信が行われることがある。ピアツーピアの無線通信を安全に行うには、相互認証や暗号化に使用する共通の認証コードや共有鍵をそれぞれの通信端末装置が保有している必要がある。そして、アドホック・モードでの無線通信では、通信端末装置同士が出会った場所で、それぞれそのような認証コードや共有鍵を保有している必要がある。
【0003】
特許文献1は、マウスやキーボードなど組み込むことができないような小型の電子機器において、それらが生成するイベントを、加速度センサを利用して生成する技術を開示する。同文献には2方向以上の加速度または衝撃に基づいて本体の動きのパターンを分類し、電子機器が分類されたパターンに応じた固有のイベント信号を発生することが記載されている。特許文献2は、コンピュータ本体の動きを加速度センサで検出しその動きを生じさせたユーザの動作の種類を区別して、動きに応じた操作指示に変換する技術を開示する。同文献には、ユーザの動作のうち振ることと叩くことを区別することが記載されている。非特許文献1には、 Bump Technologies社のBump(登録商標)というアプリケーション・プログラムをアップル社のiPhone(登録商標)に実装し、2台のデバイスを同時に振ることでアドレスを交換できることが記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−47813号公報
【特許文献2】特開2000−148351号公報
【非特許文献】
【0005】
【非特許文献1】下記のURLで示されているインターネット・サイトhttp://www.bumptechnologies.com/products.phtml
【発明の概要】
【発明が解決しようとする課題】
【0006】
アドホック・モードの無線通信をするためにこれまでは、事前に通信を許可する同一グループのメンバーに共有パスワードを配布したり、Bluetooth(登録商標)デバイスでは接続可能な機器に事前に同一のピンコードを入力したりして通信できる対象を登録していた。しかし、このような方法には、共有パスワードの管理やデバイス登録の作業が煩雑になるという問題があった。またこのような方法は、事前に登録されていない通信端末装置を保有するユーザが通信しようとする場合には適用できない。これに対して、その場でお互いに通信端末装置に同一のパスワードを入力して安全な通信を行う方法も考えられる。しかし、二人の人間が入力するパスワードは複雑さに限界があり、作業も繁雑で、さらにお互いにパスワードを相談する際に第三者に盗聴される危険性もある。
【0007】
そこで本発明の目的は、複数の通信端末装置のそれぞれにおいて簡単に安全性の高い同一の共有情報を作成する方法を提供することにある。さらに本発明の目的は、複数の通信端末装置のそれぞれにおいて相互認証または暗号化通信に使用する共有情報を作成して無線通信を行う方法を提供することにある。さらに本発明の目的は、そのような方法を実現できる通信端末装置およびコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【0008】
本発明は複数の通信端末装置のそれぞれにおいて簡単に安全な共有情報を作成する方法を提供する。各通信端末装置は加速度センサを備えており、通信端末装置が他の通信端末装置と関連する加速度運動をしたときに、それぞれの加速度センサは共有情報を作成するための加速度データを出力する。なお、それぞれの加速度センサが出力する加速度データは相互に同期している必要はない。加速度データから秘密性のある共有情報を作成するための加速度運動は不規則であることが望ましい。また、それぞれの通信端末装置で同一の共有情報を作成するためには、それぞれの通信端末装置において取得した加速度データが共通の特徴を備える必要がある。
【0009】
不規則でかつ共通の特徴を備える加速度データを生成するような加速度運動は、共有情報を保有すべき複数の通信端末装置をユーザが片手または両手で一体に保持して複数回揺動させたり、当該通信端末装置と他の通信端末装置をユーザが複数回衝突させたりしたときの運動とすることができる。そのような加速度運動により生成された加速度データは複数の波が繰り返して発生する繰り返し波形を構成し、揺動の周期または衝突の周期は、不規則であるが各通信端末装置では共通性を有することになる。本発明ではそのような不規則でかつ共通性のある特徴をそれぞれの加速度データから抽出するために、加速度データに複数の特徴位置を定義する。特徴位置は、繰り返し波形のそれぞれの波の振幅が最大を示す時間軸上のピーク位置や、振幅の絶対値が最小になる時間軸上のゼロ・クロス位置とすることができる。その後、各特徴位置の間の時間から時間情報を計算し、複数の時間情報から複数のビット情報で構成された共有情報を作成する。
【0010】
加速度運動には、衝突により通信端末装置の筐体が振動するときの運動と加速度センサの各検出軸が検出する重力加速度の分力成分が変化するように通信端末装置が姿勢を変化するときの運動を含む。不規則でかつ共通性のある時間情報から作成された共有情報は、共有情報を作成する時点で複数の通信端末装置が同一人によって物理的に支配されており、第三者が共有情報の作成に関与する余地はないため安全性が高い。さらに、揺動または衝突の回数を増やすことで簡単にビット数を増やして安全性を高めることができる。このような共有情報は、高い安全性が求められる無線通信の認証コードや暗号化の共有鍵として使用できる。
【0011】
一方の通信端末装置と他方の通信端末装置で生成した加速度データの振幅の山と谷が、時間軸上の対応する位置で反転する場合もある。しかし、波形の特徴位置から抽出される揺動の周期は、そのような反転する逆相の波形同士でも同じになるので共有情報の取得に支障はない。それぞれの通信端末装置で取得した加速度データには、アナログ信号を生成する加速度センサの増幅率の相違、量子化誤差の相違、サンプリング周波数の相違およびサンプリング位置の相違などがあるため、それぞれの通信端末装置で計算した各特徴位置の時間情報に多少の偏差が生ずることがある。その偏差を解消して完全に一致するビット情報を作成するために時間情報から所定の範囲の上位の数値だけを抽出することが望ましい。具体的には、時間情報を所定の数値で除して正規化しさらに整数化することで実現できる。
【0012】
共有情報は、揺動や衝突の周期によって全体のビット長が変化しない固定長ビット情報で構成されても、揺動や衝突の周期によって全体のビット長が変化する可変長ビットで構成されてもよい。固定長ビットの共有情報は、複数の特徴位置の間のそれぞれから計算した複数の時間情報から複数の固定長ビットのビット・ブロックを生成し、それらを順番に結合して作成することができる。可変長ビットの共有情報は、ビット・ブロック間に値がゼロのダミー・ビットを挿入して、揺動や衝突の周期によっては可能性のある連続する1で構成されるビット情報の発生を防ぐことが望ましい。この共有情報は秘密情報として通信端末装置で広く使用することができるが、特にアドホック・モードで無線通信する際の認証コードや暗号化の共有鍵に好適に使用することができる。
【発明の効果】
【0013】
本発明により、複数の通信端末装置のそれぞれにおいて簡単に安全性の高い同一の共有情報を作成する方法を提供することができた。さらに本発明により、複数の通信端末装置のそれぞれにおいて相互認証または暗号化通信に使用する共有情報を作成して無線通信を行う方法を提供することができた。さらに本発明により、そのような方法を実現できる通信端末装置およびコンピュータ・プログラムを提供することができた。
【図面の簡単な説明】
【0014】
【図1】本実施の形態にかかる通信端末装置の構成を示す機能ブロック図である。
【図2】共有情報作成プログラムが通信端末装置に実現させる機能のブロック図である。
【図3】2台の通信端末装置がそれぞれにおいて秘密性のある共有情報を作成する手順を示すフローチャートである。
【図4】2台の通信端末装置をユーザが一体に保持して揺動させるときの様子を説明する図である。
【図5】加速度センサが出力した加速度データの繰り返し波形の一例を示す図である。
【図6】加速度データから共有情報を得るまでの計算過程の例を示す図である。
【図7】特徴位置検出部がピーク位置Pa1〜Pa5を抽出する手順を示すフローチャートである。
【図8】特徴位置検出部がピーク位置Pa1〜Pa5を抽出する他の方法を説明する図である。
【図9】可変長ビットの共有情報を作成する方法を説明する図である。
【図10】2台の通信端末装置を衝突させるときの様子を説明する図である。
【図11】2台の通信端末装置を衝突させたときの繰り返し波形の一例を示す図である。
【発明を実施するための形態】
【0015】
[ハードウエア構成]
図1は、本実施の形態にかかる通信端末装置の構成を示す機能ブロック図である。通信端末装置10は、無線通信が可能な携帯電話、スマートフォン、PDA、または携帯式コンピュータなどである。通信端末装置10は、バスで相互に接続されたCPU11、メイン・メモリ13、無線コントローラ15、加速度センサ17、フラッシュ・メモリ19、およびタッチパネル21を含んで構成されている。無線コントローラ15は、インフラストラクチャ・モードで無線通信をするために無線LANおよび無線WANのアクセス・ポイントに接続することができ、さらに、アドホック・モードで他の通信端末装置に接続することができる。
【0016】
フラッシュ・メモリ19は、保護されない一般の記憶領域と読み取りおよび書き込みにパスワードの入力が必要な保護された記憶領域を含んでいる。保護された記憶領域には、本実施の形態で作成された共有情報が格納される。無線コントローラ15のデバイス・ドライバまたは無線通信用のプログラムは、アドホック・モードで無線通信をする際に、フラッシュ・メモリ19に格納された共有情報を利用して相互認証をしたり送信データの暗号化および受信データの復号をしたりする。フラッシュ・メモリ19には、オペレーティング・システムおよびアプリケーション・プログラムの他に、本実施の形態にかかる共有情報作成プログラム50(図2参照)が格納されている。タッチパネル21は、LCDのような表示装置とタッチパッドのような入力装置を組み合わせた装置である。タッチパネル21を通じてユーザは、通信端末装置10の動作を通常の動作モードと共有情報を作成する動作モードのいずれかに設定することができる。
【0017】
加速度センサ17は、通信端末装置10に発生した加速度を検出してアナログの加速度データを出力する。加速度センサ17は、直交する3つの検出軸(X軸、Y軸、Z軸)を備えており、各検出軸は重力加速度の分力成分および通信端末装置10の筐体に加えられた衝撃による加速度を検出して出力する。加速度センサ17の専用のプログラムは各検出軸が検出した重力加速度の分力成分から各検出軸の重力方向に対する傾斜角度を計算して出力することができる。各検出軸の傾斜角度は、タッチパネル21に表示する画面の表示方向をユーザによる筐体の保持の仕方に合わせて変化させるために利用することができる。ただし本発明は、検出軸が1つの加速度センサを備える通信端末装置に適用することもできる。
【0018】
[ソフトウエア構成]
図2は、メイン・メモリ13にロードされ、CPU11により実行されることにより共有情報作成プログラム50が通信端末装置10に実現させる機能のブロック図である。動作モード設定部51は、タッチパネル21を通じてユーザが通信端末装置10を共有情報作成の動作モードに設定すると、加速度データ取得部53に加速度センサ17から加速度データを取得するように指示する。加速度データ取得部53は、動作モード設定部51による指示を受けてから所定時間の間、3つの検出軸のそれぞれについて加速度センサ17から受け取ったアナログ値の加速度データを所定のサンプリング周波数でサンプリングし、サンプリングの順番にサンプリング番号を付与してリスト形式でメイン・メモリ13に記憶する。なお、加速度データ取得部53は、I2Cバスなどを介して、量子化済みの加速度データを同じサンプリング周波数に基づくタイミングで取得するように構成してもよい。
【0019】
検出軸選定部55は、3つの検出軸がそれぞれ出力した加速度データの中で波の山のピークと谷のピークの差が最大になっている検出軸の加速度データを選択し特徴位置検出部56に通知する。振幅の山が大きい繰り返し波形ほど2つの通信端末装置間でそれぞれの加速度データから抽出したピーク位置の偏差が小さくなるので都合がよい。特徴位置検出部56は、繰り返し波形を構成するリスト形式の加速度データから、各波の振幅の絶対値が最大になるピーク位置または振幅の絶対値が最小になるゼロ・クロス位置などの複数の特徴位置を検出してサンプリング数カウント部57に通知する。
【0020】
サンプリング数カウント部57は、複数のピーク区間のサンプリング数をメイン・メモリ13に記憶された加速度データのリストからカウントして正規化部58に送る。正規化部58は、サンプリング数から複数のピーク区間の時間をそれぞれ計算し、各時間を正規化したり整数化したりした時間情報から複数のビット・ブロックを作成して共有情報作成部61に送る。共有情報作成部61は、正規化部58が作成したビット・ブロックを結合して共有情報を作成し、フラッシュ・メモリ19の保護された記憶領域に格納する。
【0021】
なお、図1および図2は本実施の形態を説明するために、本発明に関連する主要なハードウエアおよびソフトウエアの構成および接続関係を簡略化して記載したものである。ここまでの説明で言及した以外にも、通信端末装置10を構成するには多くのデバイスおよびソフトウエアが使用される。しかしそれらは当業者には周知であるので、ここでは詳しく言及しない。図で記載した複数のブロックを1個の集積回路もしくはプログラム・モジュールとしたり、逆に1個のブロックを複数の集積回路もしくはプログラム・モジュールに分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
【0022】
[揺動による固定長ビットの共有情報の作成手順]
図3は、2台の通信端末装置がそれぞれにおいて秘密性のある同一の共有情報を作成する手順を示すフローチャートである。図4は、2台の通信端末装置10a、10bをユーザが一体に保持して揺動させるときの様子を説明する図である。通信端末装置10a、10bは、それぞれ図1および図2に示したハードウエアおよびソフトウエアを備えているが、加速度データのサンプリング周波数は、通信端末装置10aでは250Hz(サンプリング周期は4ミリ秒)であり通信端末装置10bでは500Hz(サンプリング周期は2ミリ秒)である点で相違している。通信端末装置10a、10bにおいて、それぞれの共有情報作成プログラム50が共有情報を作成するアルゴリズムは同じである。
【0023】
当然ながら、本発明は加速度データに対する同一のサンプリング周波数を備える通信端末装置間での共有情報の作成に適用することも可能である。加速度センサ17は、メーカおよび型式が同一のものを採用することが望ましいが、本発明では加速度センサ17の出力の中で振幅の大きさは特徴位置を検出するためだけに利用し、共有情報の基礎となる特徴位置の間の時間の計算には利用しないので、特徴位置の抽出に支障がでない範囲において同一の加速度運動に対する出力が相互に相違するようなものであってもよい。
【0024】
本発明において秘密性のある共有情報(以下、単に共有情報という。)とは、通信端末装置10aと10bでそれぞれ独自に生成された同一のビット列の情報をいう。以下の手順で説明するように、共有情報は通信端末装置10a、10bに共通に与えた不規則な周期の加速度運動に基づいて作成された情報でもある。通信端末装置をユーザが揺動させたり衝突させたりして運動させる場合は、その周期は一般に不規則になるが本発明は不規則な周期の繰り返し波形を生成する加速度運動であれば、人間以外の方法で運動させてもよい。なお、以下の手順では2つの通信端末装置10a、10bでは共有情報作成プログラム50が同じ動作をするので、説明を簡単にするために必要な場合以外は通信端末装置10aについてだけ言及して説明するが通信端末装置10bも同一の動作をしていることに留意されたい。
【0025】
ブロック101では、ユーザがタッチパネル21を通じて通信端末装置10aの動作モードを通常の動作モードから共有情報作成の動作モードに移行させる。タッチパネル21からイベントを受け取った動作モード設定部51は、加速度データ取得部53にそれ以降に加速度センサ17から受け取った加速度データを所定時間の間記録させる。ここでは、所定時間を一例として所定値以上の加速度データが検出されてから2秒間とする。ブロック103では、ユーザは図4(A)に示すように2台の通信端末装置10a、10bを重ねて片手で一体に保持し、図4(B)に示すように重ねた状態で2台の通信端末装置10a、10bを所定回数以上揺動させる。
【0026】
片手で一体に保持されているので通信端末装置10a、10bの姿勢は相互に揺動中に変化せず両者の姿勢は同じ周期で変化する。なお、2つ重ねて保持したのは揺動させ易くするための一例であり、揺動中に相互間で移動しないように保持して同じ揺動周期で揺動させることができれば重ねて保持する必要はない。ユーザは一方の通信端末装置10aを縦向きに保持し他方の通信端末装置10bを横向きに保持するといったように縦方向と横方向が一致しないように保持したり、2つの通信端末装置10a、10bの背面同士を重ねて保持したりしてもよい。また、揺動中に2つの通信端末装置10a、10bが相互に移動しなければ両手で保持して揺動操作を行ってもよい。
【0027】
最低の揺動回数は、あらかじめユーザが知っているものとするがここでは一例として5回とする。揺動回数は通信端末装置10a、10bを左右に振ったときに1往復で1回とする。さらに、1往復の揺動周期を最大500ミリ秒とする。したがって、ユーザは2秒間の間に1往復が最大500ミリ秒を超えないように5回以上通信端末装置10a、10bを左右に揺動させる必要がある。1往復の揺動周期に最大値を設定するのは、固定長ビットの共有情報を作成する際の固定長ビットのビット・ブロックの値がオーバーフローするのを防ぐためであり後に説明する。
【0028】
本実施の形態では、16ビットの固定長ビットの共有情報を作成することを例示して説明する。共有情報は4ビットからなる4個の固定長ビットのビット・ブロックを結合して作成する。各ビット・ブロックのビット情報は1回の揺動の周期により決まる。したがって、最低の揺動回数は共有情報に必要なビット長により決定される。揺動により加速度センサ17の各検出軸は重力加速度の分力成分の変化を測定することになるが、このような加速度の変化をもたらす揺動運動を加速度運動という。そして加速度センサ17の各検出軸が検出した加速度は、専用のプログラムにより重力方向に対する当該検出軸の傾斜角度として出力される。ただし、本発明は、振幅の符号がプラスまたはマイナスのいずれか一方だけの繰り返し波形を構成する加速度データに適用することもできる。なお、揺動中は重力加速度に加えてその揺動操作に起因する加速度も重畳されるが、数Hz程度の周波数の揺動ではその重畳される加速度の変化量は重力加速度の分力成分の変化量に比べて極めて小さいため無視することができる。
【0029】
2つ重ねて揺動させられた各通信端末装置10a、10bでは、それぞれ揺動の周期は一致している。したがって、それぞれの繰り返し波形は、揺動に対応する波の周期が同一になり、その周期を同一の情報としてそれぞれにおいて取得することができる。加速度データ取得部53は、加速度センサ17から、X軸、Y軸、Z軸のそれぞれの検出軸についてアナログ・データで加速度データを受け取り、250Hzのサンプリング周波数でサンプリングして2秒の間取得した加速度データをメイン・メモリ13にリスト形式で記憶する。通信端末装置10bにおいても同様に、加速度データ取得部53が500Hzのサンプリング周波数で2秒の間取得した加速度データをメイン・メモリ13にリスト形式で記憶する。加速度データ取得部53は、2秒間経過すると加速度データの取得が完了したことを検出軸選定部55に通知する。
【0030】
図5に加速度センサ17が出力した加速度データの繰り返し波形の一部を示す。図5(A)は通信端末装置10aの加速度センサ17の特定の検出軸が出力した繰り返し波形80aで、図5(B)は通信端末装置10bの加速度センサ17の特定の検出軸が出力した繰り返し波形80bを示す。繰り返し波形の各波の周期は、揺動の1往復の時間に対応している。各波の周期を抽出するために、繰り返し波形80a、80bに対して時間軸上の特徴位置を定義する。特徴位置の一例としては、各波の振幅が最大になる時間軸上の位置(以後、この位置をピーク位置という。)を選択することができる。ここで前述のピーク区間は、特定のピーク位置とそれに隣接するピーク位置の間の時間に対応することになる。
【0031】
通信端末装置10a、10bの加速度センサ17が出力する繰り返し波形80a、80bはそれぞれの振幅が重力加速度の方向に対する検出軸の角度に相当する値を示している。繰り返し波形80aでは、振幅にPa1〜Pa5の5つの正のピーク位置が観測され、繰り返し波形80bでは振幅にPb1〜Pb5の5つの正のピーク位置が観測される。そして、ピーク区間Pa1−Pa2、Pa2−Pa3、Pa3−Pa4、Pa4−Pa5について、それぞれピーク区間の時間ta1、ta2、ta3、ta4を計算することができる。同様にピーク区間Pb1−Pb2、Pb2−Pb3、Pb3−Pb4、Pb4−Pb5について、それぞれピーク区間の時間tb1、tb2、tb3、tb4を計算することができる。
【0032】
検出軸選定部55は、2つの通信端末装置10a、10bの間でピーク区間の時間の偏差が小さくなるように3つの軸の中からプラス側の振幅とマイナス側の振幅の差が最も大きな加速度データを出力した検出軸を選定する。選択された検出軸は、通信端末装置10aと10bで異なっていてもよい。検出軸選定部55は、選定した検出軸を特徴位置検出部56に通知する。通信端末装置10aのメイン・メモリ13には、4ミリ秒ごとにサンプリングされた加速度データがリスト形式で記憶され、通信端末装置10bのメイン・メモリ13には2ミリ秒とごとにサンプリングされた加速度データがリスト形式で記憶されている。各加速度データには、サンプリング番号がシーケンスに付与されている。特徴位置検出部56はブロック105で、メイン・メモリ13に記憶されている加速度データのリストから図5に示したピーク位置Pa1〜Pa5を抽出する。ピーク位置の抽出方法については図7、図8を参照して後に説明する。
【0033】
特徴位置検出部56はブロック107で、ピーク位置を示すサンプリング番号をサンプリング数カウント部57に通知する。サンプリング数カウント部57は加速度データのリストからピーク区間のサンプリング数を計算する。サンプリング数は、隣接する2つのピーク位置のサンプリング番号を抽出して大きなサンプリング番号から小さなサンプリング番号を減算して計算することができる。ただし、サンプリング数は、隣接する2つのピーク位置の間ではなく、揺動回数を増やして図5(A)のPa1とPa3の間またはPa1とPa5の間というように、両端のピーク位置の間に1つまたは複数のピーク位置が入るようにしてカウントすることもできる。
【0034】
図6(A)は、検出軸選定部55が選定した検出軸の加速度データから共有情報を得るまでの計算過程の例を示す。図6(B)は、それぞれ4ビットの4つのビット・ブロック90a、90b、90c、90dを結合して作成した固定長ビットの共有情報90の一例を示す。図6(A)には、通信端末装置10a、10bのそれぞれについて、4つのピーク区間に含まれるサンプリング数が示されている。各ピーク区間のサンプリング数は揺動周期によって決定される。サンプリング数カウント部57はブロック109で、各ピーク区間に含まれるサンプリング数を計算して揺動周期が適切か否かを判断する。
【0035】
各ピーク区間の時間情報に相当するサンプリング数は、以後の手順に示すように、ピーク区間の時間の計算、ピーク区間の時間の正規化、さらに正規化したピーク区間の時間の整数化を経て4ビットのビット列に変換されて各ビット・ブロックの値を決定する。各ピーク区間のサンプリング数の最大値は、4ビットで構成される各ビット・ブロックが2進数で「1111」を越えてオーバーフローしないように決定する。そのために、各ピーク区間について整数化した時間情報が10進数で15を越えないようにする。
【0036】
また、サンプリング数の最小値は2進数で「0001」以上になるように決定する。したがって、後に説明する整数化の前の時間情報の値は、少数以下の有効数字を2桁とすれば、1.99〜15.99の範囲に収まっている必要がある。この値はピーク区間の時間情報として66ミリ秒〜533ミリ秒に対応し、サンプリング数としては通信端末装置10aでは16個〜133個に相当し、通信端末装置10bでは33個〜266個に相当する。また、ビット・ブロックのビット長(4ビット)の範囲から整数化した時間情報がオーバーフローする頻度を低減するため、各時間情報の中から選んだ最小値の例えば3/4の値を設定し、各ピーク区間について測定した時間情報から設定した値を減算した結果の値を正規化部58に送る方法も考えられる。これによって、同じ4ビットの範囲でありながら、実際の揺動における有効変動周期の最大側の許容範囲を広げる事が可能になる。
【0037】
なお、各ピーク区間でのサンプリング数の最大値および最小値は一例であり、最大値をより小さい値に設定したり、最小値をより大きな値に設定したりすることも可能である。また、ビット・ブロックのビット数を増やすことでサンプリング数の最大値を増加させることができる。サンプリング数カウント部57は、各ピーク区間のサンプリング数が最大値と最小値の間にない場合は、ブロック111に移行してタッチパネル21に画面を表示し、ユーザに揺動周期のガイダンスを行う。ガイダンスの画面では、たとえば、最大値以上のサンプリング数を検出した場合は早く揺動するアニメーションを表示したり、最小値以下のサンプリング数を検出した場合はゆっくり揺動するアニメーションを表示したりすることができる。また、所定時間が経過しても5個のピーク位置を検出できない場合は作業を終了し、サンプリング数カウント部57は、タッチパネル21に5回以上揺動させるようなメッセージを出す。
【0038】
サンプリング数カウント部57は、ユーザが通信端末装置10a、10bを規則的に揺動させたような場合に、各ピーク区間のサンプリング数が近似すると判断した場合は、当該加速度データを使用しないで再度ユーザに揺動を求めるようにすることもできる。各ビット・ブロックのビット配列が同じような共有情報は、第三者に類推される可能性があるからである。サンプリング数カウント部57はブロック115で、各ピーク区間のサンプリング数を正規化部58に送る。正規化部58はサンプリング数にサンプリング周期を乗じて各ピーク区間の時間を計算する。
【0039】
通信端末10aと10では、加速度センサの増幅率の相違、量子化誤差の存在、サンプリング周波数の相違および時間軸上でのサンプリング位置の相違などがあるため、通常は対応するピーク区間の時間は同一にならない。正規化部58はブロック117で、最大値を500ミリ秒としたピーク区間の時間から15(10進数)以下のデータを得るために、各ピーク区間の時間に0.03(15/500)を乗じて正規化する。
【0040】
正規化した各ピーク区間の時間には小数以下の数値も発生するので、正規化部58は、ブロック117で正規化した各ピーク区間の時間から少数以下を切り捨てて整数化する。ただし、四捨五入したり切り上げたりして整数化してもよい。結果として図6(A)に示すように、通信端末装置10aおよび10bのいずれにおいてもピーク区間の時間ta1、ta2、ta3、ta4およびtb1、tb2、tb3、tb4として10進数の数値8、7、9、10が生成される。ブロック119では、正規化部58は、共有情報作成部61に4個の10進数の数値を送る。
【0041】
共有情報作成部61は、4つの数値のそれぞれを4ビットの固定長ビットのビット・ブロック90a〜90dのそれぞれに適用し、左がLSBになるようなビット列を作成する。具体的には、8、7、9、5をそれぞれビット・ブロック90a、90b、90c、90dに適用して、「0001」、「1110」、「1001」、「1010」の4つのビット情報を作成する。そして、4個のビット・ブロック90a〜90dを結合して16ビットの固定長ビットの共有情報90を作成する。図6(B)の共有情報90では、各ビット・ブロックにおいてLSBが左になるようにビット構成をしているがMSBが左になるようにビット構成をしてもよい。
【0042】
共有情報作成部61はブロック121で、フラッシュ・メモリ19の保護された記憶場所に共有情報90を格納する。以後、この共有情報90は、無線コントローラ15を通じて通信端末装置10aと10bの間で無線通信する際に、無線用のデバイス・ドライバまたは専用のプログラムによって、相互認証に使用する認証コードおよび送信データの暗号化および受信データの復号に使用する共有鍵として利用される。また、2台の通信端末装置の間で共有情報を作成する例を説明したが、本発明は3台以上の通信端末装置を一体に保持して揺動させ、それぞれにおいて同一の共有情報を作成することもできる。また、図5に示したようにピーク位置を振幅が正の波からだけ抽出する例を説明したが、ピーク位置は振幅が負の波からだけまたは正と負の両方の波から抽出するようにしてもよい。
【0043】
[ピーク位置の抽出方法]
図7は、ブロック105で特徴位置検出部56がピーク位置Pa1〜Pa5を抽出する手順を示すフローチャートである。ブロック201でユーザが通信端末装置10a、10bを共有情報作成の動作モードに設定し図4に示したように一体に保持して揺動操作を行うと、特徴位置検出部は加速度センサ17から受け取った加速度データのリスト形式での記録を開始する。特徴位置検出部56はブロック203で、リストの最初から連続する3個のサンプリング番号#1、#2、#3の加速度データを抽出し、ブロック205ではその中に変曲点があるか否かを検査する。変曲点は、たとえば3つの加速度データ#(n−1)、#(n)、#(n+1)の中で中央にある加速度データ#(n)が両端の加速度データ#(n−1)および#(n+1)より大きい場合をいう。加速度データ#1〜#3が順番に増加しているために変曲点を検出しない場合は、ブロック207に移行して以前に抽出した3つのサンプリング番号#1、#2、#3にそれぞれ1を加えてブロック203に戻り、つぎの3つのサンプリング番号#2、#3、#4の加速度データを抽出する。この操作をサンプリング番号を1個シフトさせるということにする。抽出するサンプリング番号が増加するにしたがって特徴位置検出部56はやがてブロック205で変曲点を検出する。
【0044】
特徴位置検出部56はブロック209で、変曲点の加速度データに対応するサンプリング番号をピーク位置Pa1としてメイン・メモリ13に記憶する。ブロック211では、特徴位置検出部56は予定していた5個のピーク位置を検出した否かを判断する。5個のピーク位置を検出したときは、ブロック213でピーク位置の抽出作業を終了する。揺動回数が不足している場合は、特徴位置検出部56は所定時間が経過しても5個のピーク位置を抽出できないことになる。この場合も特徴位置検出部56はブロック213で作業を終了する。
【0045】
特徴位置検出部56はブロック215で、ピーク位置Pa1を検出したときに採用したサンプリング番号を1個シフトさせて3つの加速度データを抽出し、ブロック217では波の山からだけピーク位置を検出するために、いずれの振幅値も符号が正であるか否かを検査する。振幅値が負の場合はブロック219に移行してサンプリング番号を1個シフトさせる。特徴位置検出部56はブロック221で、ピーク位置Pa2に対応する変曲点を検出する。そして特徴位置検出部56はブロック209に戻って、ピーク位置Pa2に対応するサンプリング番号をメイン・メモリ13に記憶する。ブロック209からブロック221までの手順を繰り返すことで、特徴位置検出部56は5個のピーク位置Pa1〜Pa5を検出する。
【0046】
図8は、特徴位置検出部56がピーク位置Pa1〜Pa5を検出する他の方法を説明する図である。ここでは、特徴位置検出部56は繰り返し波形80aから振幅が最小になるサンプリング番号をゼロ・クロス位置p1〜p10として検出し、正の振幅の加速度データを含むゼロ・クロス位置間にタイム・ウインドウ251a〜251eを設定する。そして、各タイム・ウインドウ251a〜251eの中で振幅が最大値を示すサンプリング番号をピーク位置として抽出する。
【0047】
これまで、特徴位置を繰り返し波形のピーク位置として説明したが、本発明では特徴位置としてゼロ・クロス位置を選定することもできる。たとえば、図8のp1、p3、p5、p7、p9のような振幅が負から正に変化する過程で生じたゼロ・クロス位置を特徴位置として選定することができる。そして、ゼロ・クロス区間p1−p3、p3−p5、p5−p7、p7−p9からピーク区間の時間に対応する時間情報を生成して共有情報を作成することができる。なお、ゼロ・クロス位置とは、加速度センサが重力加速度を検出しない状態であり、つまり感度軸が筐体に水平に設置されているときの筐体の水平状態に該当する。したがって、ゼロ・クロス位置を検出するにはユーザによって筐体が水平状態を通過する揺動操作が行われる必要がある。そして、揺動操作が不適当でゼロ・クロス位置が検出できない場合には、タッチパネル21に水平状態を通過するような揺動操作を示すアニメーションや文字情報を表示して正しい揺動操作をユーザに要求することでゼロ・クロス位置から波の周期に対応する時間情報を取得することができる。
【0048】
[揺動による可変長ビットの共有情報の作成]
図3の手順では、固定長ビットのビット・ブロックを4個結合して16ビットからなる固定長ビットの共有情報を作成する例を示して説明したが、本発明は可変長ビットの共有情報を作成することもできる。図9は可変長ビットの共有情報を作成する方法を説明する図である。可変長ビットの共有情報300を作成する場合は、固定長ビットの共有情報90を作成する手順を示す図3において、ブロック109とブロック119の手順だけが異なる。可変長ビットの共有情報300では、ビット・ブロックのビット数をあらかじめ設定しないで、各ピーク区間のサンプリング数から正規化および整数化を得て得られた数値から可変長ビットのビット・ブロック301a〜301dのビット数を決定する。
【0049】
図6(A)の整数化したデータが8、7、9、5の場合では、7と5の数値は3ビットで構成することができるので、ビット・ブロック301b、301dからはMSBを除去することができる。したがって共有情報300のビット数は14ビットとなる。可変長ビットの共有情報では、整数化の結果が10進数で3、7、15になると、全体のビット情報が1になり共有情報としては望ましくない。そのために、他の可変長ビットの共有情報400では、各ビット・ブロック401a〜401dの間にはゼロを設定した1ビットのダミー・ビット403、405、407を設けることができる。
【0050】
ダミー・ビットのビット数は1ビットに限定する必要はない。可変長ビットの共有情報を作成するときは、揺動回数は固定長ビットの場合のように限定されず、作成する共有情報の複雑さに依存する。またピーク区間のサンプリング数の最大値は特に制限する必要はない。揺動周期が長くなるほど共有情報のビット数が増える。また、サンプリング数の最小値は、固定長ビットの共有情報を作成する場合と同一にすることができる。さらに、十分に大きな可変長ビットの共有情報を作成してから、最初のビット位置から所定のビット数だけを取り出して固定長ビットの共有情報を作成することもできる。また、固定長ビットのビット・ブロックと可変長ビットのビット・ブロックを組み合わせてより複雑な共有情報を作成することもできる。さらに極端な例としては一周期分の加速度の波形を生成するような揺動操作から共有情報を生成することも可能である。
【0051】
[衝突による共有情報の作成手順]
つぎに、2台の通信端末装置10a、10bを衝突させて共有情報を作成する手順を説明する。図10は、2台の通信端末装置10a、10bを衝突させるときの様子を説明する図である。図10(A)、(B)に示すように、あらかじめ設定した最小周期および最大周期の間で2台の通信端末装置10a、10bを相互にユーザが軽く数回衝突させると、加速度センサ17は、図11に示すような繰り返し波形500を出力する。繰り返し波形500は、4回衝突させたときに生成されたものである。なお、図10(C)、(D)のように2台の通信端末装置10a、10bをユーザが一体で重ねて保持し、周囲の他の物体511に両方の筐体を同時に衝突させることでも加速度センサ17から共有情報の生成に有効な繰り返し波形を得ることができる。
【0052】
ここに衝突の周期は不規則でかつ2台の通信端末装置10a、10bにとって同一性のある情報である。繰り返し波形500の振幅は、重力加速度の分力成分から計算した検出軸の傾斜角度とは異なり、衝撃により筐体が振動したことによる加速度運動から検出した加速度で、この例では振幅が20Gを越える値にまで到達している。繰り返し波形500の形状は、衝撃力と通信端末装置の筐体の振動特性で定まり、1回の衝突では複数のピーク位置およびゼロ・クロス位置を観測することができる。
【0053】
繰り返し波形500についても図3の手順に基づいて、固定長ビットまたは可変長ビットの共有情報を作成することができるが、特徴位置としてのピーク位置は以下のようにして決定することができる。最初に特徴位置検出部56は加速度データのリストに対して重力による加速度の影響を排除して衝突により生じた加速度だけを抽出するために1G程度の閾値を設定し、閾値以下の加速度データをゼロとみなす。つぎに、特徴位置検出部56は振幅がゼロの加速度データが、衝突操作に対して設定した最小の周期以上連続しているゼロ区間501a〜501eを検出する。
【0054】
つぎに、ゼロ区間の開始位置p2、p4、p6、p8と終了位置p1、p3、p5、p7に対応するサンプリング番号を検出する。つづいて加速度データのリストに対して、ゼロ区間の終了位置と開始位置の組p1−p2、p3−p4、p5−p6、p7−p8で形成された4個のタイム・ウインドウ503a〜503dを設定する。2台の通信端末装置10a、10bが取得している波形が互いに逆相であったとしても、波の山または谷の内、その振幅の絶対値がより大きい方のピーク区間を採用する。それは、衝突による加速度の場合は、波形が正と負で甚だしく非対称であり、第1衝撃に対応する正または負の一方の波の振幅が大きいためである。なお、正規化部58での端数の省略のしかたによっては、必ずしも上記の絶対値が大きい山または谷の側の波からではなくて、図11の正の振幅を示す反対側の波からでも有効な時間情報を取得することができる。
【0055】
本発明にかかる共有情報は、これまで説明したような無線通信における認証やデータの暗号化の利用に限定されるものではない。たとえば、共有情報を作成するための機能を備えた小さな同一のデバイスをセキュリティ用のトークンとして2個用意して、第1段階として各デバイスで秘密鍵としての共有情報を作成し、第2段階として各デバイスを所定の手続で他の通信端末やサーバに装着すれば、内部に保持している秘密鍵を使って通信端末同士または通信端末とサーバが安全な通信を行うことができる。この場合のデバイスは生成した共有情報を自らが使用するのではなく外部に提供することを目的にするものであるため、他の装置に安全に共有情報を出力する出力部を備えている。
【0056】
また、本発明における共有情報の作成方法はパスワード方式とは異なるため、共有情報を作成する操作者が直接その共有情報自体に関与したり、認識したりする必要がないという特徴を備えているため、共有情報の作成を第3者が代行することが可能になる。あるいは、あるシステムがまだ誰にも所有されていない段階で、複数のシステム間で共有できる秘密鍵を事前に設定することもできる。その秘密鍵の生成と設定が例え秘密保持が要求されないユーザによって行われても、ユーザは実際の共有情報自体を知ることができないため安全に設定することができる。本発明によればこの共有情報の作成を何度でも繰り返し行うことができるため、例えば、システムの管理者が同一のシステムを異なるユーザ向けに転用する際に新しい共有情報を容易に作成することが可能になる。
【0057】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【産業上の利用可能性】
【0058】
秘密性のある同一の共有情報を保有する必要がある装置に適用することができる。
【符号の説明】
【0059】
10、10a、10b…通信端末装置
50…共有情報作成プログラム
【特許請求の範囲】
【請求項1】
加速度センサを備える通信端末装置に加速度センサを備える他の通信端末装置と同一の共有情報を作成させるために、
前記通信端末装置が前記他の通信端末装置と関連する加速度運動をしている間に前記加速度センサが生成した加速度データを取得するステップと、
前記加速度データから時間軸上の複数の特徴位置を抽出するステップと、
前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算するステップと、
前記複数の時間情報から複数のビット情報で構成された共有情報を作成するステップと
を有する処理を実行させるコンピュータ・プログラム。
【請求項2】
前記加速度データが、前記通信端末装置と前記他の通信端末装置を一体に保持して複数回揺動させることにより生成された繰り返し波形を構成する請求項1に記載のコンピュータ・プログラム。
【請求項3】
前記加速度データが、前記通信端末装置と前記他の通信端末装置を複数回衝突させることにより生成された繰り返し波形を構成する請求項1に記載のコンピュータ・プログラム。
【請求項4】
前記特徴位置が前記繰り返し波形の各波の振幅が最大になる時間軸上のピーク位置である請求項2または請求項3に記載のコンピュータ・プログラム。
【請求項5】
前記特徴位置が前記繰り返し波形の振幅の絶対値が最小になる時間軸上のゼロ・クロス位置である請求項2または請求項3に記載のコンピュータ・プログラム。
【請求項6】
前記共有情報を作成するステップが、
前記時間情報から所定の範囲の上位の数値を抽出するステップを含む請求項1から請求項5のいずれかに記載のコンピュータ・プログラム。
【請求項7】
前記所定の範囲の上位の数値を抽出するステップが、
前記時間情報を所定の数値で除して正規化しさらに整数化するステップを含む請求項6に記載のコンピュータ・プログラム。
【請求項8】
前記複数の時間情報のそれぞれに固定長ビットのビット・ブロックを適用し、前記共有情報が複数の前記ビット・ブロックを結合して形成された固定長ビット情報である請求項1から請求項7のいずれかに記載のコンピュータ・プログラム。
【請求項9】
前記複数の時間情報のそれぞれに可変長ビットのビット・ブロックを適用し、前記共有情報が複数の前記ビット・ブロックを結合して形成された可変長ビット情報である請求項1から請求項7のいずれかに記載のコンピュータ・プログラム。
【請求項10】
前記ビット・ブロックの間に値がゼロのダミー・ブロックを含む請求項9に記載のコンピュータ・プログラム。
【請求項11】
加速度センサを備える第1の通信端末装置と加速度センサを備える第2の通信端末装置がそれぞれ共有情報を作成する方法であって、
前記第1の通信端末装置と前記第2の通信端末装置が相互に関連する加速度運動をするステップと、
それぞれの通信端末装置において前記加速度センサが生成した加速度データを取得するステップと、
それぞれの通信端末装置にいて前記加速度データから時間軸上の複数の特徴位置を抽出するステップと、
それぞれの通信端末装置において前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算するステップと、
それぞれの通信端末装置において前記複数の時間情報から複数のビット情報で構成された共有情報を作成するステップと
を有する共有情報の作成方法。
【請求項12】
前記相互に関連する加速度運動が、それぞれの通信端末装置において前記加速度センサが生成した加速度データのピーク位置間の時間が実質的に同一になるような運動である請求項11に記載の作成方法。
【請求項13】
加速度センサを備える第1の通信端末装置と加速度センサを備える第2の通信端末装置が無線通信をする方法であって、
相互に関連する加速度運動をした前記第1の通信端末装置と前記第2の通信端末装置がそれぞれの前記加速度センサが出力した加速度データを取得するステップと、
前記第1の通信端末装置と前記第2の通信端末装置がそれぞれ前記加速度データから時間軸上の複数の特徴位置を抽出するステップと、
前記第1の通信端末装置と前記第2の通信端末装置がそれぞれ前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算するステップと、
前記第1の通信端末装置と前記第2の通信端末装置がそれぞれ前記複数の時間情報から複数のビット情報で構成された共有情報を作成するステップと、
前記共有情報を利用して前記第1の通信装置と前記第2の通信装置が相互認証をして無線通信するステップと
を有する通信方法。
【請求項14】
前記共有情報を利用して前記第1の通信装置と前記第2の通信装置の間で通信するデータを暗号化するステップを有する請求項13に記載の通信方法。
【請求項15】
前記無線通信がアドホック・モードで行われる請求項13または請求項14に記載の通信方法。
【請求項16】
無線通信の可能な通信端末装置であって、
プロセッサと、
加速度センサと、
前記通信端末装置が加速度運動をしている間に前記加速度センサが生成した繰り返し波形の加速度データを取得する加速度データ取得手段と、
前記加速度データから時間軸上の複数の特徴位置を検出する特徴位置検出手段と、
前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算する時間情報計算手段と、
前記複数の時間情報から複数のビット情報で構成された共有情報を作成する共有情報作成手段と
を有する通信端末装置。
【請求項17】
通信装置に接続が可能な秘密鍵作成装置であって、
加速度センサと、
前記秘密鍵作成装置が加速度運動をしている間に前記加速度センサが生成した繰り返し波形の加速度データを取得する加速度データ取得手段と、
前記加速度データから時間軸上の複数の特徴位置を検出する特徴位置検出手段と、
前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算する時間情報計算手段と、
前記複数の時間情報から複数のビット情報で構成された秘密鍵を作成する秘密鍵作成手段と、
前記秘密鍵を前記通信装置に出力する出力手段と
を有する秘密鍵作成装置。
【請求項1】
加速度センサを備える通信端末装置に加速度センサを備える他の通信端末装置と同一の共有情報を作成させるために、
前記通信端末装置が前記他の通信端末装置と関連する加速度運動をしている間に前記加速度センサが生成した加速度データを取得するステップと、
前記加速度データから時間軸上の複数の特徴位置を抽出するステップと、
前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算するステップと、
前記複数の時間情報から複数のビット情報で構成された共有情報を作成するステップと
を有する処理を実行させるコンピュータ・プログラム。
【請求項2】
前記加速度データが、前記通信端末装置と前記他の通信端末装置を一体に保持して複数回揺動させることにより生成された繰り返し波形を構成する請求項1に記載のコンピュータ・プログラム。
【請求項3】
前記加速度データが、前記通信端末装置と前記他の通信端末装置を複数回衝突させることにより生成された繰り返し波形を構成する請求項1に記載のコンピュータ・プログラム。
【請求項4】
前記特徴位置が前記繰り返し波形の各波の振幅が最大になる時間軸上のピーク位置である請求項2または請求項3に記載のコンピュータ・プログラム。
【請求項5】
前記特徴位置が前記繰り返し波形の振幅の絶対値が最小になる時間軸上のゼロ・クロス位置である請求項2または請求項3に記載のコンピュータ・プログラム。
【請求項6】
前記共有情報を作成するステップが、
前記時間情報から所定の範囲の上位の数値を抽出するステップを含む請求項1から請求項5のいずれかに記載のコンピュータ・プログラム。
【請求項7】
前記所定の範囲の上位の数値を抽出するステップが、
前記時間情報を所定の数値で除して正規化しさらに整数化するステップを含む請求項6に記載のコンピュータ・プログラム。
【請求項8】
前記複数の時間情報のそれぞれに固定長ビットのビット・ブロックを適用し、前記共有情報が複数の前記ビット・ブロックを結合して形成された固定長ビット情報である請求項1から請求項7のいずれかに記載のコンピュータ・プログラム。
【請求項9】
前記複数の時間情報のそれぞれに可変長ビットのビット・ブロックを適用し、前記共有情報が複数の前記ビット・ブロックを結合して形成された可変長ビット情報である請求項1から請求項7のいずれかに記載のコンピュータ・プログラム。
【請求項10】
前記ビット・ブロックの間に値がゼロのダミー・ブロックを含む請求項9に記載のコンピュータ・プログラム。
【請求項11】
加速度センサを備える第1の通信端末装置と加速度センサを備える第2の通信端末装置がそれぞれ共有情報を作成する方法であって、
前記第1の通信端末装置と前記第2の通信端末装置が相互に関連する加速度運動をするステップと、
それぞれの通信端末装置において前記加速度センサが生成した加速度データを取得するステップと、
それぞれの通信端末装置にいて前記加速度データから時間軸上の複数の特徴位置を抽出するステップと、
それぞれの通信端末装置において前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算するステップと、
それぞれの通信端末装置において前記複数の時間情報から複数のビット情報で構成された共有情報を作成するステップと
を有する共有情報の作成方法。
【請求項12】
前記相互に関連する加速度運動が、それぞれの通信端末装置において前記加速度センサが生成した加速度データのピーク位置間の時間が実質的に同一になるような運動である請求項11に記載の作成方法。
【請求項13】
加速度センサを備える第1の通信端末装置と加速度センサを備える第2の通信端末装置が無線通信をする方法であって、
相互に関連する加速度運動をした前記第1の通信端末装置と前記第2の通信端末装置がそれぞれの前記加速度センサが出力した加速度データを取得するステップと、
前記第1の通信端末装置と前記第2の通信端末装置がそれぞれ前記加速度データから時間軸上の複数の特徴位置を抽出するステップと、
前記第1の通信端末装置と前記第2の通信端末装置がそれぞれ前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算するステップと、
前記第1の通信端末装置と前記第2の通信端末装置がそれぞれ前記複数の時間情報から複数のビット情報で構成された共有情報を作成するステップと、
前記共有情報を利用して前記第1の通信装置と前記第2の通信装置が相互認証をして無線通信するステップと
を有する通信方法。
【請求項14】
前記共有情報を利用して前記第1の通信装置と前記第2の通信装置の間で通信するデータを暗号化するステップを有する請求項13に記載の通信方法。
【請求項15】
前記無線通信がアドホック・モードで行われる請求項13または請求項14に記載の通信方法。
【請求項16】
無線通信の可能な通信端末装置であって、
プロセッサと、
加速度センサと、
前記通信端末装置が加速度運動をしている間に前記加速度センサが生成した繰り返し波形の加速度データを取得する加速度データ取得手段と、
前記加速度データから時間軸上の複数の特徴位置を検出する特徴位置検出手段と、
前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算する時間情報計算手段と、
前記複数の時間情報から複数のビット情報で構成された共有情報を作成する共有情報作成手段と
を有する通信端末装置。
【請求項17】
通信装置に接続が可能な秘密鍵作成装置であって、
加速度センサと、
前記秘密鍵作成装置が加速度運動をしている間に前記加速度センサが生成した繰り返し波形の加速度データを取得する加速度データ取得手段と、
前記加速度データから時間軸上の複数の特徴位置を検出する特徴位置検出手段と、
前記複数の特徴位置から各特徴位置の間の時間に対応する複数の時間情報を計算する時間情報計算手段と、
前記複数の時間情報から複数のビット情報で構成された秘密鍵を作成する秘密鍵作成手段と、
前記秘密鍵を前記通信装置に出力する出力手段と
を有する秘密鍵作成装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2011−130224(P2011−130224A)
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【出願番号】特願2009−287215(P2009−287215)
【出願日】平成21年12月18日(2009.12.18)
【出願人】(505205731)レノボ・シンガポール・プライベート・リミテッド (292)
【復代理人】
【識別番号】100106699
【弁理士】
【氏名又は名称】渡部 弘道
【復代理人】
【識別番号】100077584
【弁理士】
【氏名又は名称】守谷 一雄
【Fターム(参考)】
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【出願日】平成21年12月18日(2009.12.18)
【出願人】(505205731)レノボ・シンガポール・プライベート・リミテッド (292)
【復代理人】
【識別番号】100106699
【弁理士】
【氏名又は名称】渡部 弘道
【復代理人】
【識別番号】100077584
【弁理士】
【氏名又は名称】守谷 一雄
【Fターム(参考)】
[ Back to top ]