バイブレータに当該装置及び他の装置が接触しているとき前記バイブレータが発生する振動に応じて当該装置に発生する加速度を検出するための加速度センサと、前記加速度センサの検出結果に基づく第1の特徴値を前記他の装置に送信するための送信手段と、前記他の装置に発生した加速度に基づく第2の特徴値を前記他の装置から受信するための受信手段と、前記受信手段にて受信した前記第2の特徴値と前記第1の特徴値とを比較し、比較結果に基づいて鍵を生成する鍵生成手段と、を備えることを特徴とする鍵生成装置。前記バイブレータは振動を発生するオン区間と発生しないオフ区間を連続して複数回繰り返し、前記加速度センサは複数のオン区間を検出し、前記送信手段は、前記複数のオン区間のそれぞれの検出結果に基づく複数の第1の特徴値を前記他の装置に送信し、前記受信手段は、前記複数のオン区間のそれぞれの検出結果に基づく複数の第2の特徴値を前記他の装置から受信し、前記鍵生成手段は、前記複数の第1の特徴値のひとつと、当該第1の特徴値に対応する前記複数の第2の特徴値のひとつとを比較して得られる複数の比較結果に基づいてひとつの鍵を生成することを特徴とする請求項1に記載の鍵生成装置。前記鍵生成手段は、前記複数の第1の特徴値のひとつと、当該第1の特徴値に対応する前記複数の第2の特徴値のひとつとを比較し、互いに一致する一組の第1及び第2の特徴値に基づいてひとつの鍵小片を生成し、前記第1及び第2の特徴値に対応するオン区間の時系列順に複数の前記鍵小片を連結することによりひとつの鍵を生成することを特徴とする請求項2に記載の鍵生成装置。前記バイブレータを備えることを特徴とする請求項1乃至3のいずれか1つに記載の鍵生成装置。振動を発生または停止するランダムに定められた長さの区間に従って、前記バイブレータに対して振動を発生または停止させるように制御するバイブレータ制御手段と、前記加速度センサによる、前記区間を含む期間の振動の検出結果を、予め定められた時間長さの時間窓に区切り、前記時間窓毎に量子化する量子化手段と、前記量子化手段にて量子化した前記検出結果に基づいて前記第1の特徴値を生成する特徴値生成手段とを更に備えることを特徴とする、請求項1乃至4のいずれか1つに記載の鍵生成装置。前記バイブレータ制御手段は、生成しようとする鍵の鍵長に応じて定められた数の前記区間に従って、前記バイブレータに振動を発生又は停止させることを特徴とする請求項5に記載の鍵生成装置。前記量子化手段は振動の有無を二値に量子化し、前記特徴値生成手段は同じ値の量子値が連続する時間窓からなる継続区間の時間窓の数に基づいて前記第1の特徴値を生成することを特徴とする請求項5又は6に記載の鍵生成装置。前記特徴値生成手段は、連続する3つの時間窓の量子値のうち2番目の時間窓の量子値のみが他の時間窓の量子値と異なるとき、前記2番目の時間窓の量子値を前記他の時間窓の量子値に変更する処理を、前記継続区間の時間窓を計数するのに先だって行なうことを特徴とする請求項7に記載の鍵生成装置。前記特徴値生成手段は、前記継続区間の最初の時間窓を始端、前記継続区間の最後の時間窓の直後の時間窓を終端とするとき、前記始端及び終端の時間窓のいずれかの量子値を変更した量子値を求める手段と、前記変更した量子値を該当する時間窓に適用した場合に、同じ値の量子値が連続する時間窓からなる継続区間の時間窓の数に基づいて第1の候補値を生成する手段とを備え、前記送信手段は前記第1の特徴値に加えて前記第1の候補値を送信し、前記受信手段は前記第2の特徴値に加えて、前記第1の候補値と同様にして生成された第2の候補値を受信し、前記鍵生成手段は、前記受信手段にて受信した前記第2の特徴値及び第2の候補値のいずれかと、前記第1の特徴値及び第1の候補値のいずれかとを比較し、比較結果に基づいて鍵を生成することを特徴とする請求項7又は8に記載の鍵生成装置。入力された値のハッシュ値を出力するハッシュ手段を更に備え、前記送信手段は、前記第1の特徴値の代わりにまたは前記第1の特徴値及び第1の候補値の代わりに、前記ハッシュ手段にて求めた第1の特徴値のハッシュ値をまたは前記ハッシュ手段にて求めた第1の特徴値及び第1の候補値のハッシュ値を、第1のハッシュ値として前記他の装置に送信し、前記受信手段は、前記第2の特徴値の代わりにまたは前記第2の特徴値及び第2の候補値の代わりに、前記第2の特徴値のハッシュ値をまたは前記第2の特徴値及び第2の候補値のハッシュ値を第2のハッシュ値として受信し、前記鍵生成手段は、前記受信手段にて受信した第2のハッシュ値と、前記ハッシュ手段にて生成した第1のハッシュ値とを比較し、比較結果に基づいて鍵を生成することを特徴とする請求項1乃至9のいずれか1つに記載の鍵生成装置。請求項1乃至10のいずれか1つに記載の鍵生成装置を複数備え、少なくともひとつの前記バイブレータを備えることを特徴とする鍵生成システム。加速度センサ、データ通信手段及びプロセッサを備える装置にて実行されるプログラムを記憶するコンピュータ読取り可能な記録媒体であって、前記プログラムは、バイブレータに当該装置及び他の装置が接触しているとき前記バイブレータが発生する振動に応じて当該装置に発生する加速度を前記加速度センサにて検出する検出手順と、前記加速度センサの検出結果に基づく第1の特徴値を前記データ通信手段にて前記他の装置に送信する送信手順と、前記バイブレータが発生する振動に応じて前記他の装置に発生した加速度に基づく第2の特徴値を、前記データ通信手段にて前記他の装置から受信する受信手順と、前記受信手順にて受信した前記第2の特徴値と前記第1の特徴値とを比較し、比較結果に基づいて鍵を生成する鍵生成手順と、を前記プロセッサに実行させるコンピュータ読取り可能な記録媒体。前記検出手順では、前記バイブレータに振動を発生するオン区間と発生しないオフ区間を連続して複数回繰り返させ、前記加速度センサに複数のオン区間を検出させ、前記送信手順では、前記複数のオン区間のそれぞれの検出結果に基づく複数の第1の特徴値を前記他の装置に送信し、前記受信手順では、前記複数のオン区間のそれぞれの検出結果に基づく複数の第2の特徴値を前記他の装置から受信し、前記鍵生成手順では、前記複数の第1の特徴値のひとつと、当該第1の特徴値に対応する前記複数の第2の特徴値のひとつとを比較して得られる複数の比較結果に基づいてひとつの鍵を生成することを特徴とする請求項12に記載のコンピュータ読取り可能な記録媒体。前記鍵生成手順は、前記複数の第1の特徴値のひとつと、当該第1の特徴値に対応する前記複数の第2の特徴値のひとつとを比較し、互いに一致する一組の第1及び第2の特徴値に基づいてひとつの鍵小片を生成し、前記第1及び第2の特徴値に対応するオン区間の時系列順に複数の前記鍵小片を連結することによりひとつの鍵を生成することを特徴とする請求項13に記載のコンピュータ読取り可能な記録媒体。更にバイブレータを備える装置にて実行されるプログラムを記憶したコンピュータ読取り可能な記録媒体であって、前記プログラムは、当該バイブレータの動作を制御する手順をコンピュータに実行させることを特徴とする請求項12乃至14のいずれか1つに記載のコンピュータ読取り可能な記録媒体。前記プログラムは、振動を発生または停止するランダムに定められた長さの区間に従って、前記バイブレータに振動を発生または停止させる制御手順と、前記加速度センサによる、前記区間を含む期間の振動の検出結果を、予め定められた時間長さの時間窓に区切り、前記時間窓毎に量子化する量子化手順と、前記量子化手順にて量子化した前記検出結果に基づいて前記第1の特徴値を生成する特徴値生成手順とを前記プロセッサに実行させることを特徴とする、請求項12乃至15のいずれか1つに記載のコンピュータ読取り可能な記録媒体。前記制御手順は、生成しようとする鍵の鍵長に応じて定められた数の前記区間に従って、前記バイブレータに振動を発生又は停止させることを特徴とする請求項16に記載のコンピュータ読取り可能な記録媒体。前記量子化手順は振動の有無を二値に量子化し、前記特徴値生成手順は同じ値の量子値が連続する時間窓からなる継続区間の時間窓の数に基づいて前記第1の特徴値を生成することを特徴とする請求項16又は17に記載のコンピュータ読取り可能な記録媒体。前記特徴値生成手順は、連続する3つの時間窓の量子値のうち2番目の時間窓の量子値のみが他の時間窓の量子値と異なるとき、前記2番目の時間窓の量子値を前記他の時間窓の量子値に変更する処理を、前記継続区間の時間窓を計数するのに先だって行なうことを特徴とする請求項18に記載のコンピュータ読取り可能な記録媒体。前記特徴値生成手順は、前記継続区間の最初の時間窓を始端、前記継続区間の最後の時間窓の直後の時間窓を終端とするとき、前記始端及び終端の時間窓のいずれかの量子値を変更した量子値を求める手順と、前記変更した量子値を該当する時間窓に適用した場合に、同じ値の量子値が連続する時間窓からなる継続区間の時間窓の数に基づいて第1の候補値を生成する手順とを備え、前記送信手順は前記第1の特徴値に加えて前記第1の候補値を送信し、前記受信手順は前記第2の特徴値に加えて、前記第1の候補値と同様にして生成された第2の候補値を受信し、前記鍵生成手順は、前記受信手順にて受信した前記第2の特徴値及び第2の候補値のいずれかと、前記第1の特徴値及び第1の候補値のいずれかとを比較し、比較結果に基づいて鍵を生成することを特徴とする請求項18又は19に記載のコンピュータ読取り可能な記録媒体。前記プログラムは、入力された値のハッシュ値を出力するハッシュ手順を更に備え、前記送信手順は、前記第1の特徴値の代わりにまたは前記第1の特徴値及び第1の候補値の代わりに、前記ハッシュ手順にて求めた第1の特徴値のハッシュ値をまたは前記ハッシュ手順にて求めた第1の特徴値及び第1の候補値のハッシュ値を、第1のハッシュ値として前記他の装置に送信し、前記受信手順は、前記第2の特徴値の代わりにまたは前記第2の特徴値及び第2の候補値の代わりに、前記第2の特徴値のハッシュ値をまたは前記第2の特徴値及び第2の候補値のハッシュ値を第2のハッシュ値として受信し、前記鍵生成手順は、前記受信手順にて受信した第2のハッシュ値と、前記ハッシュ手順にて生成した第1のハッシュ値とを比較し、比較結果に基づいて鍵を生成することを特徴とする請求項12乃至20のいずれか1つに記載のコンピュータ読取り可能な記録媒体。第1の装置及び第2の装置を一のバイブレータに接触させた状態で、前記バイブレータに振動を発生させ、前記第1の装置が備える第1の加速度センサ及び前記第2の装置が備える第2の加速度センサにその振動を検出させる検出段階と、前記第1の加速度センサの検出結果に基づく第1の特徴値を前記第1の装置が前記第2の装置に送信する送信段階と、前記第2の加速度センサの検出結果に基づく第2の特徴値を前記第2の装置から前記第1の装置が受信する受信段階と、前記第1の装置が、受信した前記第2の特徴値と前記第1の特徴値とを比較し、比較結果に基づいて鍵を生成する鍵生成段階とを含むことを特徴とする鍵の生成方法。前記検出段階では、前記バイブレータに振動を発生するオン区間と発生しないオフ区間を連続して複数回繰り返させ、前記第1および第2の加速度センサに複数のオン区間を検出させ、前記送信段階では、前記複数のオン区間のそれぞれの検出結果に基づく複数の第1の特徴値を前記第2の装置に送信し、前記受信段階では、前記複数のオン区間のそれぞれの検出結果に基づく複数の第2の特徴値を前記第2の装置から受信し、前記鍵生成段階では、前記複数の第1の特徴値のひとつと、当該第1の特徴値に対応する前記複数の第2の特徴値のひとつとを比較して得られる複数の比較結果に基づいてひとつの鍵を生成することを特徴とする請求項22に記載の鍵の生成方法。前記鍵生成段階は、前記複数の第1の特徴値のひとつと、当該第1の特徴値に対応する前記複数の第2の特徴値のひとつとを比較し、互いに一致する一組の第1及び第2の特徴値に基づいてひとつの鍵小片を生成し、前記第1及び第2の特徴値に対応するオン区間の時系列順に複数の前記鍵小片を連結することによりひとつの鍵を生成することを特徴とする請求項23に記載の鍵の生成方法。振動を発生または停止するランダムに定められた長さの区間に従って、前記バイブレータに対して振動を発生または停止させるように制御する制御段階と、前記加速度センサによる、前記区間を含む期間の振動の検出結果を、予め定められた時間長さの時間窓に区切り、前記時間窓毎に量子化する量子化段階と、前記量子化段階にて量子化した前記検出結果に基づいて前記第1の特徴値を生成する特徴値生成段階とを含むことを特徴とする、請求項22乃至24のいずれか1つに記載の鍵の生成方法。前記制御段階は、生成しようとする鍵の鍵長に応じて定められた数の前記区間に従って、前記バイブレータに振動を発生又は停止させることを特徴とする請求項25に記載の鍵の生成方法。前記量子化段階は振動の有無を二値に量子化し、前記特徴値生成段階は同じ値の量子値が連続する時間窓からなる継続区間の時間窓の数に基づいて前記第1の特徴値を生成することを特徴とする請求項25又は26に記載の鍵の生成方法。前記特徴生成段階は、連続する3つの時間窓の量子値のうち2番目の時間窓の量子値のみが他の時間窓の量子値と異なるとき、前記2番目の時間窓の量子値を前記他の時間窓の量子値に変更する処理を、前記継続区間の時間窓を計数するのに先だって行なうことを特徴とする請求項27に記載の鍵の生成方法。前記特徴生成段階は、前記継続区間の最初の時間窓を始端、前記継続区間の最後の時間窓の直後の時間窓を終端とするとき、前記始端及び終端の時間窓のいずれかの量子値を変更した量子値を求める段階と、前記変更した量子値を該当する時間窓に適用した場合に、同じ値の量子値が連続する時間窓からなる継続区間の時間窓の数に基づいて第1の候補値を生成する段階とを含み、前記送信段階は前記第1の特徴値に加えて前記第1の候補値を送信し、前記受信段階は前記第2の特徴値に加えて、前記第1の候補値と同様にして生成された第2の候補値を受信し、前記鍵生成段階は、前記受信段階にて受信した前記第2の特徴値及び第2の候補値のいずれかと、前記第1の特徴値及び第1の候補値のいずれかとを比較し、比較結果に基づいて鍵を生成することを特徴とする請求項27又は28に記載の鍵の生成方法。入力された値のハッシュ値を出力するハッシュ段階を更に備え、前記送信段階は、前記第1の特徴値の代わりにまたは前記第1の特徴値及び第1の候補値の代わりに、前記ハッシュ段階にて求めた第1の特徴値のハッシュ値をまたは前記ハッシュ段階にて求めた第1の特徴値及び第1の候補値のハッシュ値を、第1のハッシュ値として前記第2の装置に送信し、前記受信段階は、前記第2の特徴値の代わりにまたは前記第2の特徴値及び第2の候補値の代わりに、前記第2の特徴値のハッシュ値をまたは前記第2の特徴値及び第2の候補値のハッシュ値を第2のハッシュ値として受信し、前記鍵生成段階は、前記受信段階にて受信した第2のハッシュ値と、前記ハッシュ段階にて生成した第1のハッシュ値とを比較し、比較結果に基づいて鍵を生成することを特徴とする請求項22乃至29のいずれか1つに記載の鍵の生成方法。本発明の目的は、2つの装置を一体化して振るといった困難な操作をユーザに要求せず、かつ、装置の形状、大きさ、重さ等に対する制約が緩い鍵生成技術、及びこの鍵生成技術に基づく相互認証技術を提供することにある。本発明による鍵の生成方法は、第1の装置及び第2の装置を一のバイブレータに接触させた状態で、バイブレータが振動を発生し、第1の装置が備える第1の加速度センサ及び第2の装置が備える第2の加速度センサがその振動を検出する振動検出段階と、第1の加速度センサの検出結果に基づく第1の特徴値を第1の装置が第2の装置に送信する送信段階と、第2の加速度センサの検出結果に基づく第2の特徴値を第2の装置から第1の装置が受信する受信段階と、第1の装置が、受信した第2の特徴値と第1の特徴値とを比較し、比較結果に基づいて鍵を生成する鍵生成段階とを含む。また、本発明によるコンピュータ読取り可能な記録媒体は、加速度センサ、データ通信手段及びプロセッサを備える装置にて実行されるプログラムを記憶した記録媒体であって、プログラムは、バイブレータに当該装置及び当該他の装置が接触しているときバイブレータが発生する振動に応じて当該装置に発生する加速度を加速度センサにて検出する手順と、加速度センサの検出結果に基づく第1の特徴値をデータ通信手段にて他の装置に送信する送信手順と、バイブレータが発生する振動に応じて他の装置に発生した加速度に基づく第2の特徴値を、データ通信手段にて他の装置から受信する受信手順と、受信手順にて受信した第2の特徴値と第1の特徴値とを比較し、比較結果に基づいて鍵を生成する鍵生成手順とをプロセッサに実行させるためのものである。本発明によれば、第1及び第2の装置を同じバイブレータに接触させてバイブレータを振動させることにより、第1及び第2の装置に同じ振動源からの振動を加え、この振動に基づいて鍵を生成する。このため、第1及び第2の装置を一体化した状態で振動を加えるといった操作をユーザに要求する必要がない。また、鍵を生成するためには第1及び第2の装置を一体化して保持する必要はなく、単に両装置をバイブレータに接触させるだけでよいので、両装置の寸法、外形重さ等に対する設計上の制約が大幅に緩和され、装置の一方を据付け型にすることも可能である。また、両装置に対する加振の振幅、速さ等をバイブレータの仕様から予め把握することができるので、不特定のユーザによる振幅、速さの個人差を考慮する必要がなく、この点でも設計上の制約を緩和することができる。本発明の一実施の形態に係る鍵生成システム100について説明する。1図1に示すように、鍵生成システム100は、第1の装置1、第2の装置2、および加振装置3からなる。加振装置3は第1の装置1、第2の装置2のいずれかに内蔵しても構わない。以下、第1の装置1、第2の装置2をそれぞれ装置A、装置Bと記す。図2は第1の装置装置A1の構成を示すブロック図である。第1の装置装置A1、第2の装置装置B2はいずれも加速度センサ、鍵生成部、通信部を備える例えば図2に示すような装置である。より具体的には、第1の装置装置A1および第2の装置装置B2の各々は、携帯電話端末、PDAPersonalDataAssistant、ノート型コンピュータ等である。図2に示されるように、第1の装置装置A1は、第1の加速度センサ10A、第1の振動量子化部11A、第1の特徴ベクトル生成部12A、第1の鍵生成部13A、第1の通信部14A、および第1の相互認証部15Aを備える。尚、図2には第1の装置装置A1の構成例を示したが、第2の装置装置B2も同様の構成であってよい。その場合、第2の装置装置B2は、図3に示されるように、第2の加速度センサ10B、第2の振動量子化部11B、第2の特徴ベクトル生成部12B、第2の鍵生成部13B、第2の通信部14B、および第2の相互認証部15Bを備える。第1および第2の通信部14A、14Bは互いにデータ通信可能な通信インタフェース装置であり、有線無線の別、両者を接続するネットワークの数や種別等を問わない。第1および第2の通信部14A、14Bは、無線通信インタフェースであることが便宜上好ましいが、有線通信インタフェースであっても良い。第1の装置装置A1、第2の装置装置B2が携帯電話端末であるならば、第1および第2の通信部14A、14Bは移動体通信網の基地局と無線通信を行なう無線通信装置であってもよいし、大半の携帯電話端末が備えるIrDAInfraredDataAssociation等の赤外線通信装置、或いはBluetooth等の近距離無線通信の送受信機であってもよい。図1に示されるように、加振装置3は、バイブレータ4と、バイブレータ4の動作を制御するバイブレータ制御部5とを含む。一般に、携帯電話端末は、使用者に対して着信等を通知する振動を発生するためのバイブレータを備えるが、このバイブレータを加振装置3のバイブレータ4として用いることとしてもよい。第1の装置装置A1、第2の装置装置B2が共に携帯電話端末の場合、両装置がバイブレータ4を備えることになる。その場合、本発明の実施形態における鍵生成で用いるバイブレータはどちらか一方のバイブレータである。次に、鍵を生成するための動作について説明する。2先ず、図4に示すように、第1の装置装置A1、第2の装置装置B2の両方を加振装置3に接触させる。バイブレータ4を第1の装置装置A1、第2の装置装置B2のどちらかに内蔵する場合は、第1の装置装置A1、第2の装置装置B2を互いに直接、接触させる。3次に、図4のように、第1の装置装置A1、第2の装置装置B2、および加振装置3を互いに接触させた状態で、バイブレータ制御部5はバイブレータ4をオンオフする。このときのバイブレータ制御部5の制御動作の例を図5に示す。図5に示すバイブレータ制御部5の制御動作については後で詳細に説明する。バイブレータの振動方法の一例としては、階段状に変化する振幅、特に、所定振幅に振動する/しないの二進法的な振動が考えられる。他の例としては連続的に変化するものが考えられる。4引き続いて、第1の装置装置A1、第2の装置装置B2は、それぞれ、第1および第2の加速度センサ10A、10Bによって振動を検出する。5第1および第2の振動量子化部11A、11Bは、それぞれ、第1および第2の加速度センサ10A、10Bの出力を予め定められた長さの時間窓に分割し、分割した各時間窓の値を量子化する。第1および第2の振動量子化部11A、11Bが加速度センサ出力を時間窓に分割する動作の例を図6に示す。図6に示す振動量子化部の動作については後で詳細に説明する。また、時間窓に分割した加速度センサ出力の例を図7に示す。これらの例では、バイブレータ4は振動する/しないの二進法的な動作をすることを前提としている。第1の装置装置A1、第2の装置装置B2、加振装置3の間の接触状態や接触方法によって、第1および第2の加速度センサ10A、10Bが検出するアナログ量の加速度には多少の違いが生じる。このため、アナログ量の加速度に基づいて鍵を生成すると、実用的に十分な鍵長を有する同じ鍵を第1の装置装置A1、第2に装置装置B2の両方で生成するのは困難である。これに対して、図7に示すように、アナログ量の加速度を時間窓に分割し、量子化した加速度センサ出力を用いて鍵を生成して、第1の装置装置A1と第2の装置装置B2が共有する加速度に生じる誤差を吸収することにより、実用に十分な鍵長を有する認証鍵を第1の装置装置A1、第2の装置装置B2の間で共有できるようになる。6引き続いて、時間窓に分割し、量子化した第1の加速度センサ10Aの出力値に基づいて、第1の特徴ベクトル生成部12Aは、第1の特徴ベクトル群Vfa0、Vfa1、Vfa2、...を生成する。また、第1の特徴ベクトル生成部12Aは、第1の特徴ベクトル群を構成する、第1の特徴ベクトルVfa0に対応する候補ベクトル群Vca01、Vca02、Vca03、...、第2の特徴ベクトルVfa1に対応する候補ベクトル群Vca11、Vca12、Vca13、...、第3の特徴ベクトルVfa2に対応する候補ベクトル群Vca21、Vca22、Vca23、...を生成する。同様に、第2の特徴ベクトル生成部12Bは、第2の特徴ベクトル群Vfb0、Vfb1、Vfb2、...を生成し、第2の特徴ベクトル群を構成する、第1の特徴ベクトルVfb0に対応する候補ベクトル群Vcb01、Vcb02、Vcb03、...、第2の特徴ベクトルVfb1に対応する候補ベクトル群Vcb11、Vcb12、Vcb13、...、第3の特徴ベクトルVfb2に対応する候補ベクトル群Vcb21、Vcb22、Vcb23、...を生成する。以下、第1の装置装置A1が生成する第1の特徴ベクトル群Vfa0、Vfa1、Vfa2、...を総称してVfaiiは0以上の整数で特徴ベクトルの時系列的なインデックスと記し、第1の装置装置A1が第1の特徴ベクトル群の第1の特徴ベクトルVfa0に対応して生成する候補ベクトル群を総称してVca0jjは0以上の整数で候補ベクトルの時系列的なインデックスと記し、第1の装置装置A1が生成する第1の候補ベクトル群を総称してVcaijと記す。第2の装置装置B2が生成する特徴ベクトル及び候補ベクトルについても同様である。すなわち、第2の装置装置B2が生成する第2の特徴ベクトル群Vfb0、Vfb1、Vfb2、...を総称してVfbiiは0以上の整数で特徴ベクトルの時系列的なインデックスと記し、第2の装置装置B2が第2の特徴ベクトル群の第1の特徴ベクトルVfb0に対応して生成する候補ベクトル群を総称してVcb0jjは0以上の整数で候補ベクトルの時系列的なインデックスと記し、第2の装置装置B2が生成する第2の候補ベクトル群を総称してVcbijと記す。特徴ベクトルは、連続して同じ量子値に量子化されている区間、即ち継続区間の時間窓の数と、その量子値とを組み合わせて生成するベクトルである。例えば特徴ベクトルは量子値と、その量子値が連続する時間窓の数の2進法表記とを連結した構造を有する。図7に図示した時間窓の量子値は左から順に0、1、1、1、1、1、0、0、0、1、0であるが、左から2番目の時間窓から6番目の時間窓までの間、量子値1が5つ連続する継続区間が存在するので、この継続区間に基づく特徴ベクトルは、量子値が1、連続する時間窓の数が5、即ち2進法表記で101なので、両者を連結した1101となる。候補ベクトルは、特徴ベクトルを生成した継続区間の始端及び終端のいずれか一方或いは両方の時間窓の量子値を他の値に変更した上で、特徴ベクトルと同様に、連続して同じ量子値に量子化されている区間の時間窓の数と、その量子値とを組み合わせて生成するベクトルである。継続区間の始端の時間窓は、継続区間の最初の時間窓であり、継続区間の終端の時間窓は、継続区間の直後の時間窓である。始端及び終端の時間窓のいずれか一方または両方の量子値を変更した後の状態で、同じ値の量子値が連続する時間窓からなる継続区間の時間窓の数に基づいて候補ベクトルを生成する。候補ベクトルには、3つがある。その1つ目は、継続区間の始端の時間窓の量子値を変更しつつ終端の時間窓の量子値を変更しないで生成するものである。2つ目は、始端の時間窓の量子値を変更せずに終端の時間窓の量子値を変更して生成するものである。3つ目は、始端及び終端の時間窓の量子値を変更して生成するものである。これら3つのうち、始端及び終端の両方を変更して生成する3つ目の候補ベクトルは、継続区間全体をずらしたものとなり、特徴ベクトルと同じ値になるので生成しなくともよい。図8に示した例では、特徴ベクトル1101に対して、始端の量子値のみを変更して生成した候補ベクトル1100、終端の量子値のみを変更した候補ベクトル1110を生成している。始端及び終端の量子値を両方変更して生成される候補ベクトル1101については、特徴ベクトルと同値なので生成しない。このように、特徴ベクトルと共に候補ベクトルを生成するのは、第1の装置装置A1が生成した第1の特徴ベクトル群及び第1の候補ベクトル群からなる第1のベクトル群と、第2の装置装置B2が生成した第2の特徴ベクトル群及び第2の候補ベクトル群からなる第2のベクトル群とを比較して、両ベクトル群の間に一致するベクトルが存在すると、そのベクトルに基づいて鍵を生成するためである。ここで一致とは、第1の特徴ベクトル群と第2の特徴ベクトル群の一致だけではなく、第1の特徴ベクトル群と第2の候補ベクトル群の一致や、第1の候補ベクトル群と第2の特徴ベクトル群の一致、および第1の候補ベクトル群と第2の候補ベクトル群の一致をも含む。このような第1のベクトル群と第2のベクトル群との比較を行なう理由は次のようなものである。10にて後述するように、第1の装置装置A1と第2の装置装置B2とは、一致する特徴ベクトル/候補ベクトルに基づいて鍵小片を生成し、所定数の鍵小片を連結して鍵を生成する。従って、鍵を生成するには、一致する特徴ベクトル/候補ベクトルを所定数以上得る必要がある。さて、第1の装置装置A1、第2の装置装置B2及び加振装置3の間の接触状態によっては、加速度の検出タイミングが第1の加速度センサ10Aと第2の加速度センサ10Bの間でずれることがある。このようなとき、継続区間の始端または終端のタイミングが第1の装置装置A1、第2の装置装置B2間でずれるので、両装置にて生成する特徴ベクトルが一致しない。こうした不一致が多発すると、特徴ベクトル同士の比較からだけでは必要な数の鍵小片を生成するのが困難になる。こうした事情に鑑みて、特徴ベクトルを生成した継続区間の始端及び終端の量子値を変更する。このように変更した継続区間は、いわば、仮定した検出タイミングのずれを修正したものである。こうして変更した継続区間に基づいて候補ベクトルを生成し、特徴ベクトルに加えて、第1の装置装置A1、第2の装置装置B2間での比較対象とすることにより、検出タイミングのずれをある程度吸収することができる。その結果、実用に十分な鍵長を有する認証鍵を装置A、Bの間で共有できるようになる。また、両装置を接触させる際、一方の装置の持ち方が不安定である等の理由により、その一方の装置のみにパルス的な振動が発生し、この振動がノイズとして混入して、パルス的な量子値が生成されることがある。このようなパルス的な量子値に対応するため、第1および第2の特徴ベクトル生成部12A、12Bは、第1および第2の特徴ベクトル群及び第1および第2の候補ベクトル群の生成に先立って、パルス的な量子値を持つ時間窓の値を修正することにしてもよい。パルス的な量子値を有する時間窓とは、3つの連続した時間窓Wn-1、Wn、Wn1nは自然数を考えたとき、Wn-1とWn1は同じ値でWnの値だけが異なるような値を持つ時間窓であり、Wn-1=Wn1=0、Wn=1またはWn-1=Wn1=1、Wn=0であるようなWnである。時間窓を十分に短くすればこうしたパルス的な量子値は誤差であると考えられる。このような値を有する時間窓の値を修正し、前後の時間窓と値を一致させることとすれば、こうした誤差を除外することができる。例えば図8の右から2番目の時間窓の量子値は1だが、その前後の時間窓の量子値はどちらも0であり、パルス的な量子値と考えられるので、この時間窓の量子値を0に修正した上で、第1および第2の特徴ベクトル群及び第1および第2の候補ベクトル群を生成することにしてもよい。パルス的な量子値を修正して第1および第2の特徴ベクトル群及び第1および第2の候補ベクトル群を生成するときの、第1および第2の特徴ベクトル生成部12A、12Bの動作を図9に示す。7更に、図10に示すように、第1の特徴ベクトル生成部12Aは、i個目の第1の特徴ベクトルのハッシュ値HVfaiと、その第1の候補ベクトルのハッシュ値HVcaijを全て生成する。上述したように、i個目の第1の特徴ベクトルVfaiに対応して2つの第1の候補ベクトルVcai0、Vcai1を生成するので、i個目の第1の特徴ベクトルVfaiに対応して3つの第1のハッシュ値HVfai、HVcai0、HVcai1を生成することになる。同様に、第2の特徴ベクトル生成部12Bは、第2の特徴ベクトルのハッシュ値HVfbiと、その第2の候補ベクトルの第2のハッシュ値HVcbijを全て生成するステップS42。ここでHXはXを一方向ハッシュした値を表す。iは現在注目している特徴ベクトルを示すインデックスであり、iの初期値は0である。本項7及び後述する89を同じiに対して行なった後、所望の鍵長の鍵を生成するために必要な鍵小片が得られるまで、iを1ずつ増やして7~9を繰り返す。尚、セキュリティ上好ましくはないものの、ハッシュ値の生成を省略して、特徴ベクトル及び候補ベクトルをそのまま伝送して後の処理を行なうことも可能であることは当業者であれば容易に理解できるであろう。8第1および第2の通信部14A、14Bを介して、7にて第2の装置装置B2が生成した第2のハッシュ値HVfbi、HVcbijを全て第1の装置装置A1に送信する。同様に、7にて第1の装置装置A1が生成した第1のハッシュ値HVfai、HVcaijを全て第2の装置装置B2に送信するステップS42。9第1の装置装置A1において、第1の鍵生成部13Aは、自身の第1の特徴ベクトル生成部12Aにて生成した第1の特徴ベクトルVfaiのハッシュ値HVfai、対応する第1の候補ベクトルのハッシュ値HVcaijからなる複数の第1のハッシュ値と、第1の通信部14Aを介して第2の装置装置B2から受信した、第1の特徴ベクトルVfaiに対応する第2の特徴ベクトルVfbiのハッシュ値HVfbi、第2の候補ベクトルのハッシュ値HVcbijからなる複数の第2のハッシュ値とを比較する。このように、第1の鍵生成部13Aは、i個目の第1の特徴ベクトルVfaiに対応する第1のハッシュ値のグループと、同じくi個目の第2の特徴ベクトルVfbiに対応する第2のハッシュ値のグループとを比較し、一方のグループのいずれかのハッシュ値が他方のグループのいずれかのハッシュ値と一致する場合、そのハッシュ値に対応する特徴ベクトル或いは候補ベクトルを鍵小片とするステップS43。前者と後者のグループ間に一致するハッシュ値が存在しない場合、その第1の特徴ベクトルVfaiに基づく鍵小片の生成は行なわない。第2の装置装置B2においても同様である。上述したようにひとつの特徴ベクトルには複数の候補ベクトルが対応するので、どちらのハッシュ値のグループも、一の特徴ベクトルのハッシュ値と、その特徴ベクトルに対応する複数の候補ベクトルのハッシュ値とを含む。例えば、第1の特徴ベクトルVfa0のハッシュ値HVfa0と、第1の特徴ベクトルVfa0に対応する第1の候補ベクトルのハッシュ値HVca00、HVca01からなる第1のハッシュ値の第1のグループAと、第2の特徴ベクトルVfb0のハッシュ値HVfb0と、第2の特徴ベクトルVfb0に対応する第2の候補ベクトルのハッシュ値HVcb00、HVcb01からなる第2のハッシュ値の第2のグループBとを比較したときに、第1のグループAに属する第1のハッシュ値HVfa0と、第2のグループBに属する第2のハッシュ値HVcb01が一致したとする。この場合、第1の特徴ベクトルVfa0と、第2の候補ベクトルVcb01とが一致したことになるので、第1の装置装置A1では第1の鍵生成部13Aが第1の特徴ベクトルVfa0を鍵小片とする。第2の装置装置B2でも同様の比較を行ない、同じ結果が得られるので、第2の鍵生成部13Bは第2の候補ベクトルVcb01を鍵小片とする。この例では第1のグループAの第1の特徴ベクトルと、第2のグループBの第2の候補ベクトルとが一致したが、両グループの第1および第2の特徴ベクトルが一致する場合や、両グループの第1および第2の候補ベクトルが一致する場合もある。107~9をすべての特徴ベクトルについて行なうステップS44。即ち、iの現在の値に1を加算した上で7~9を繰り返す。11鍵小片の数の閾値と、10で得られた鍵小片の数とを比較し、閾値を超えている場合、鍵小片を連結して鍵を生成するステップS45。12第1の装置装置A1、第2の装置装置B2は生成した鍵を用いて認証を行なう。認証方式の例としてはチャレンジレスポンス方式がある。チャレンジレスポンス方式では、第1の装置装置A1はチャレンジと呼ばれるランダム値を生成して第2の装置装置B2に送信する。このチャレンジを受信した第2の装置装置B2は、自身が11にて生成した鍵と、第1の装置装置A1から受信したチャレンジとを掛け合わせて演算処理を行ない、その結果生成したハッシュ値を第2のレスポンスとして第1の装置装置A1に送信する。レスポンスを受信した第1の装置装置A1は、先に生成したチャレンジと自身が11にて生成した鍵とを用いて同様の演算処理を行なって第1のレスポンスを生成し、この第1のレスポンスと第2の装置装置B2から受信した第2のレスポンスとを比較する。これら第1および第2のレスポンスが一致する場合、第1の装置装置A1は第2の装置装置B2を認証する。13第1の装置装置A1は鍵を用いて暗号化したデータを第2の装置装置B2に送信し、第2の装置装置B2は鍵を用いて暗号化したデータを復号する。図11に示されるように、本実施例の第1の装置20A装置Aは、第1のバイブレータ21A、第1のバイブレータ制御部22Aを内蔵する以外の点では上述の鍵生成システム100における第1の装置1と同様の構成である。第1のバイブレータ21A、第1のバイブレータ制御部22Aはそれぞれ上述の鍵生成システム100におけるバイブレータ4、バイブレータ制御部5に対応する。同様に、図12に示されるように、本実施例の第2の装置20B装置Bは、第2のバイブレータ21B、第2のバイブレータ制御部22Bを内蔵する以外の点では上述の鍵生成システム100における第2の装置2と同様の構成である。第2のバイブレータ21B、第2のバイブレータ制御部22Bはそれぞれ上述の鍵生成システム100におけるバイブレータ4、バイブレータ制御部5に対応する。図11および図12に示すように、第1の装置20A装置A、第2の装置20B装置Bは、第1および第2のバイブレータ21A、21Bおよび第1および第2の加速度センサ10A、10Bをそれぞれ備え、さらに第1および第2のバイブレータ制御部22A、22Bと、第1および第2の振動量子化部11A、11B、第1および第2の特徴ベクトル生成部12A、12B、第1及び第2の鍵生成部13A、13B、第1および第2の通信部14A、14B、第1および第2の相互認証部15A、15Bを備える。参照符号末尾のA、Bは装置A、装置Bを区別するためのものであり、区別する必要がない場合、以下A、Bを付さない場合がある。能動的に自身から認証を要求するような装置でない場合、バイブレータ21およびバイブレータ制御部22を必ずしも備えなくてもよい。装置A、装置Bのいずれかがバイブレータ及びバイブレータ制御部を備えればよい。各装置は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置によって実現される。複数台想定される装置は全て同様の構成である。図11及び図12の各々には1台のユーザ端末の構成のみを示している。図11および図12の各々に示す各部はそれぞれ以下のように動作する。バイブレータ制御部22は、各装置が接触状態にあるとき、バイブレータがオンである区間オン区間の長さ、オフである区間オフ区間の長さを動的に変化させながら、オンオフを連続して複数回繰り返すようにバイブレータ21の動作を制御する。これにより、接触状態にある各装置の加速度センサ10にて、振動を検出する区間をオン区間として、振動を検出しない区間をオフ区間として、それぞれ複数区間検出させる。これは例えば携帯電話に備えるバイブレータ用モータのPWM制御可能などにより実現される。なお、バイブレータ制御部22は外部からのユーザ操作に基づき、相互認証を実施する装置間の何れか一方のみで駆動される。オンオフの繰り返し回数を増やせば、特徴ベクトル及び対応する候補ベクトルの数を増やすことができ、より多くの鍵小片を生成することができるようになるので、より長い鍵長の鍵を生成することができるようになる。振動量子化部11は、あらかじめ各加速度センサ10の静止状態で計測される平均加速度の大きさa_avgを求めておく。これは、センサごとにあらかじめ異なる計測誤差を取り除くために用いる。バイブレータ制御部22の作用によって、加速度センサ10から加速度の時系列データを得たとき、これをサイズW_onoffの小区間窓に分割する。このとき、一定の割合、例えば50の割合で前後の窓とオーバーラップさせてよい。そして、窓内の平均加速度の大きさa_wとa_avgを比較し、一定の値以上の差がある場合、その窓を1に、それ未満の場合は0に量子化する。図7に量子値の例を示す。特徴ベクトル生成部12は、まず前後一窓分の量子値と比較して量子値の異なる窓パルス的な判定結果の窓に対して、当該窓の量子値を前後の窓の量子値にあわせる修正を施した後、連続して1あるいは0と量子化されている区間継続区間の窓数と、その量子値とを組み合わせ、特徴ベクトルを生成する。これは例えば、図7に示すように、1の窓が5個連続して見られる場合、1が1012進個連続したことから1101と特徴ベクトル化する。なお、図7においては、簡単のためオーバーラップは0としている。さらに当該継続区間に関する量子値の変化する窓に1および0の両方の量子値の候補を持たせ、上記特徴ベクトル生成部12と同様の手段をもって、その候補ベクトルを生成する。図8に本処理を持って生成する特徴ベクトルと候補ベクトルの例を示す。特徴ベクトル1101に対する候補ベクトルは1101と1110である。候補ベクトルに特徴ベクトルと同じ1101も現れるがこれは候補ベクトルとして扱わなくてよい。鍵生成部13は、特徴ベクトルを例えば時系列順に一方向ハッシュ化して互いに交換し、候補のうちの一つでも一致すればそれを鍵小片とする。そして、鍵小片が得られた窓数の総窓数に対する割合が一定の閾値以上であれば、得られた鍵小片を全て連結したものを共通鍵とし、これをもとに相互認証を実施する。相互認証部としては、チャレンジレスポンス認証などの広く知られている従来技術を利用できる。次に、第1および第2の装置20A、20Bをそれぞれ装置A、装置Bとして構成した鍵生成システムの動作について説明する。ここでは装置Aの第1のバイブレータ21Aを駆動して鍵を生成し、装置Bの第2のバイブレータ21Bは駆動しないこととして説明する。図5は、本システムの第1のバイブレータ制御部22Aの動作の一例を示すフローチャートである。まずユーザは装置A、装置Bを互いに接触させる。その上で、第1のバイブレータ制御部22Aは、ステップS11において、第1のバイブレータ21Aの振動をオンにする時間幅をランダムに決定し、決定した時間幅だけ第1のバイブレータ21Aの振動をオンにするステップS12。次にステップS13において、第1のバイブレータ制御部22Aは、第1のバイブレータ21Aの振動をオフにする時間幅をランダムに決定し、決定した時間幅だけ第1のバイブレータ21Aの振動をオフにするステップS14。そして、第1のバイブレータ制御部22Aは、一定時間の経過や、ユーザまたはシステムおよびアプリケーションからの終了イベントの発火を確認し、これらのいずれかまたは組合せをもって終了条件を満足するとするステップS15。終了条件を満たさない場合は、第1のバイブレータ制御部22Aは、再びステップS11から処理を繰り返す。ここで、ユーザからの終了イベントの発火とは、ユーザのボタン操作などの明示的な操作を意味する。また、システムおよびアプリケーションからの終了イベントの発火とは、例えば、第1の鍵生成部13Aによって必要十分な鍵が生成された時点で通知されるシグナルなどを意味する。その他の条件を持って、終了判定を行ってもよい。また、S13、S14、S11、S12、S15のステップ順で処理をしても構わない。図6は、本システムの第1および第2の振動量子化部11A、11Bの動作の一例を示すフローチャートである。ステップS21において、第1および第2の振動量子化部11A、11Bは、各加速度センサの静止状態で計測される平均加速度の大きさa_avgを求めておく。第1のバイブレータ制御部22Aの作用によって、第1の加速度センサ10Aから加速度の時系列データを得たとき、装置Aでは、第1の振動量子化部11Aはこれをサイズw_onoffの小区間窓に分割するステップS22。そして、第1の振動量子化部11Aは、それぞれの窓に対して、窓内の平均加速度の大きさa_wを求めステップS24、a_wとa_avgとの差分が一定閾値k以上であることを確認しステップS25、k以上であれば当該窓を1に量子化するステップS26。また、第1の振動量子化部11Aは、それ未満の場合は当該窓を0に量子化するステップS27。第1の振動量子化部11Aは、これを全ての窓について処理を繰り返すステップS28。装置Bにおいても、第2の加速度センサ10Bから得た加速度の時系列データに基づいて第2の振動量子化部11Bは同様の処理を行なう。図9は、本システムの第1および第2の特徴ベクトル生成部12A、12Bの動作の一例を示すフローチャートである。第1および第2の特徴ベクトル生成部12A、12Bは、ステップS31で、パルス的な量子値、すなわち前後一窓分の量子値と比較して当該窓のみ異なっている窓を探索し、ステップS32で当該窓の量子値を反転する。これを全てのパルス的な量子値の窓に対して繰り返した後ステップS33、第1および第2の特徴ベクトル生成部12A、12Bは、同じ量子値の連続する区間継続区間を決定してステップS34、連続して1あるいは0と判定されている窓数とその量子値をもとに特徴ベクトルとするステップS35。さらに当該継続区間における立ち上がりまたは立ち下がりの時間窓、具体的には当該継続区間の最初の窓と最後の次の窓について、第1および第2の特徴ベクトル生成部12A、12Bは、当該窓の量子値に1あるいは0の両方の候補を持たせステップS36、各特徴ベクトルの候補となるベクトル候補ベクトルを計算するステップS37。図10は、本システムの第1および第2の鍵生成部13A、13Bの動作の一例を示すフローチャートである。第1および第2の鍵生成部13A、13Bは、ステップS41において、注目する特徴ベクトルを設定する。これは、時系列に古いものから順に注目してよいが、その他の約束に則って注目する順を決定してよい。ただしこの約束は、相手装置との間で合意がとれていることを前提とする。そして、第1および第2の鍵生成部13A、13Bは、ステップS42において、当該特徴ベクトルおよびその候補ベクトルを個々に一方向ハッシュ化して、その全てを相手装置と交換する。第1および第2の鍵生成部13A、13Bは、ステップS43で、そのうちの一つでも一致すればそれを鍵小片とする。これを全特徴ベクトルにおいて、処理するまで繰り返しステップS44、第1および第2の鍵生成部13A、13Bは、鍵小片が得られた窓数の総窓数に対する割合が一定の閾値以上であれば、得られた鍵小片を全て連結したものを共通鍵とするステップS45。以上のように、本実施例によれば、例えば携帯電話に搭載されるバイブレータのPWMPulseWidthModulation制御により振動のオン、オフの間隔長を動的にランダム変化させ、これを加速度センサで収集した接触状態にある二つの装置で、認証のために用いる共通鍵を共有可能となる。このとき、バイブレータで発生する振動は微細であるために生じる誤差を吸収し、実用的な鍵長の認証鍵を共有することができる。以上、実施形態及び実施例を参照して本発明を説明したが、本発明は上記実施形態及び実施例に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。この出願は、2010年12月28日に出願された日本特許出願第2010-293094号からの優先権を基礎とし、その利益を主張するものであり、その開示はここに全体として参考文献として組み込まれる。