(57)【特許請求の範囲】
【請求項１】
無線暗号通信を行うための共通鍵を親機と子機間で共有する共通鍵生成方法であって、
鍵の生成源となる鍵生成源情報を順次生成して周囲に発信する鍵生成源情報発信装置を設け、
前記親機が前記鍵生成源情報発信装置から一定時間内に受信した鍵生成源情報を順次記録する処理と、前記子機が前記鍵生成源情報発信装置から鍵生成源情報を受信し、自機に対して操作入力があると、該操作入力後に受信した鍵生成源情報を内部に記録する処理と、前記親機及び前記子機のそれぞれが、互いに共通の鍵生成源情報を記録しているかを検証する処理とを１サイクルとして複数サイクル繰り返し行い、各サイクルそれぞれにおいて前記親機及び前記子機のそれぞれが互いに共通の鍵生成源情報を記録していると検証された場合、前記子機側で前記操作入力の度に記録された全ての鍵生成源情報を用いて共通鍵を生成することを特徴とする共通鍵生成方法。
【請求項２】
前記鍵生成源情報発信装置を前記親機又は前記子機に設けたことを特徴とする請求項１記載の共通鍵生成方法。
【請求項３】
前記検証を行う際のアルゴリズムを、チャレンジレスポンス方式とすることを特徴とする請求項１又は請求項２記載の共通鍵生成方法。
【請求項４】
前記親機は、前記親機に対して操作入力が行われたタイミングで記録を開始することを特徴とする請求項１乃至請求項３の何れかに記載の共通鍵生成方法。
【請求項５】
前記親機は、前記記録を任意に開始し、該親機に設けた表示手段の表示により、前記記録を開始することを外部に通知することを特徴とする請求項１乃至請求項３の何れかに記載の共通鍵生成方法。
【請求項６】
前記鍵生成源情報発信装置は、前記鍵生成源情報の発信を開始してから、前記子機に対する前記操作入力が完了するまで、互いに異なった鍵生成源情報を生成することを特徴とする請求項１乃至請求項５の何れかに記載の共通鍵生成方法。
【請求項７】
互いに無線通信可能に構成される親機と子機とを含み、前記親機と前記子機間で暗号通信を行うための共通鍵を共有する共通鍵生成システムであって、
鍵の生成源となる鍵生成源情報を順次生成して周囲に発信する鍵生成源情報発信装置を有し、
前記親機は、
前記鍵生成源情報発信装置から発信された前記鍵生成源情報を順次受信する親機側受信部と、
該親機側受信部で所定の記録開始タイミングから一定時間内に受信した前記鍵生成源情報を順次記録する親機側記録部と、
該親機側記録部に、前記子機側が保持する鍵生成源情報と共通の鍵生成源情報が記録されているかを前記子機と通信して検証する親機側検証部と、
該親機側検証部で記録されていると判断した場合、前記共通の鍵生成源情報に基づいて共通鍵を生成する親機側共通鍵生成部とを備え、
前記子機は、
ユーザからの操作を受け付ける子機側ユーザ操作部と、
前記鍵生成源情報発信装置から発信された前記鍵生成源情報を順次受信する子機側受信部と、
前記記録開始タイミング後に前記子機側ユーザ操作部を介してユーザから操作入力があると、その操作入力後に前記子機側受信部で受信した鍵生成源情報を記録する子機側記録部と、
前記子機側記録部に記録された鍵生成源情報が、前記親機の前記親機側記録部内に記録されているかを前記親機と通信して検証する子機側検証部と、
該子機側検証部で記録されていると判断した場合、前記共通の鍵生成源情報に基づいて共通鍵を生成する子機側共通鍵生成部と
を備え、
前記親機が、前記記録開始タイミングから一定時間内に受信した鍵生成源情報を内部に順次記憶する処理と、前記子機が、ユーザからの前記操作入力があると、操作入力後に受信した鍵生成源情報を内部に記録する処理と、前記親機及び前記子機のそれぞれが、互いに共通の鍵生成源情報を記録しているかを検証する処理とを１サイクルとして複数サイクル繰り返し行い、各サイクルそれぞれにおいて前記親機及び前記子機のそれぞれが互いに共通の鍵生成源情報を記録していると検証された場合、前記親機の前記親機側共通鍵生成部と前記子機の前記子機側共通鍵生成部とのそれぞれが、前記子機側でユーザからの前記操作入力の度に記録された全ての鍵生成源情報を用いて共通鍵を生成することを特徴とする共通鍵生成システム。
【請求項８】
前記鍵生成源情報発信装置を前記親機又は前記子機に設けたことを特徴とする請求項７記載の共通鍵生成システム。
【請求項９】
前記親機側検証部及び前記子機側検証部は、チャレンジレスポンス方式を用いて検証を行うことを特徴とする請求項７又は請求項８記載の共通鍵生成システム。
【請求項１０】
前記親機は、ユーザからの操作入力を受け付ける親機側ユーザ操作部を備え、前記親機側ユーザ操作部に対するユーザからの操作入力のタイミングを、前記記録開始タイミングとすることを特徴とする請求項７乃至請求項９の何れかに記載の共通鍵生成システム。
【請求項１１】
前記親機は、前記記録開始タイミングを任意に決定し、該親機に設けた表示手段の表示により、前記記録開始タイミングであることを外部に通知することを特徴とする請求項７乃至請求項９の何れかに記載の共通鍵生成システム。
【請求項１２】
前記鍵生成源情報発信装置は、前記鍵生成源情報の発信を開始してから、前記子機のユーザ操作が完了するまで、互いに異なった鍵生成源情報を生成することを特徴とする請求項７乃至請求項１１の何れかに記載の共通鍵生成システム。
【請求項１３】
互いに無線通信可能に構成される親機と子機とを含み、前記親機と前記子機間で暗号通信を行うための共通鍵を共有する共通鍵生成システムにおける親機であって、
鍵の生成源となる鍵生成源情報を順次生成して周囲に発信する鍵生成源情報発信装置から発信された前記鍵生成源情報を順次受信する親機側受信部と、
該親機側受信部で所定の記録開始タイミングから一定時間内に受信した前記鍵生成源情報を順次記録する親機側記録部と、
該親機側記録部に、前記子機側が保持する鍵生成源情報と共通の鍵生成源情報が記録されているかを前記子機と通信して検証する親機側検証部と、
該親機側検証部で記録されていると判断した場合、前記共通の鍵生成源情報に基づいて共通鍵を生成する親機側共通鍵生成部と
を備え、
前記親機側共通鍵生成部は、前記子機との間で共通の鍵生成源情報が複数ある場合、その全ての鍵生成源情報を用いて共通鍵を生成することを特徴とする親機。
【請求項１４】
前記親機側検証部は、チャレンジレスポンス方式を用いて検証を行うことを特徴とする請求項１３記載の親機。
【請求項１５】
ユーザからの操作入力を受け付ける親機側ユーザ操作部を備え、前記親機側ユーザ操作部に対するユーザからの操作入力のタイミングを、前記記録開始タイミングとすることを特徴とする請求項１３又は請求項１４記載の親機。
【請求項１６】
表示手段を備え、該表示手段の表示により、前記記録開始タイミングであることを外部に通知することを特徴とする請求項１３乃至請求項１５の何れかに記載の親機。
【請求項１７】
互いに無線通信可能に構成される親機と子機とを含み、前記親機と前記子機間で暗号通信を行うための共通鍵を共有する共通鍵生成システムにおける子機であって、
ユーザからの操作を受け付ける子機側ユーザ操作部と、
鍵の生成源となる鍵生成源情報を順次生成して周囲に発信する鍵生成源情報発信装置から発信された前記鍵生成源情報を順次受信する子機側受信部と、
前記子機側ユーザ操作部を介してユーザからの操作入力があると、その操作入力後に前記子機側受信部で受信した鍵生成源情報を記録する子機側記録部と、
前記子機側記録部に記録された鍵生成源情報が前記親機と共有されているかを前記親機と通信して検証する子機側検証部と、
該子機側検証部で前記親機と共有されていると判断した場合、前記共通の鍵生成源情報に基づいて共通鍵を生成する子機側共通鍵生成部と
を備え、
前記子機側記録部は、ユーザからの前記操作入力がある度に、該操作入力後に受信した鍵生成源情報を内部に記録し、前記子機側検証部は、前記子機側記録部に記録された各鍵生成源情報それぞれについて前記親機と共有されているかを判断し、各鍵生成源情報それぞれについて前記親機と共有されていると判断された場合、前記子機側共通鍵生成部は、全ての鍵生成源情報に基づいて共通鍵を生成することを特徴とする子機。
【請求項１８】
前記子機側検証部は、チャレンジレスポンス方式を用いて検証を行うことを特徴とする請求項１７記載の子機。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、無線ネットワークシステムにおける共通鍵生成方法、共通鍵生成システム及び共通鍵生成システムにおける親機並びに子機に関するものである。
【背景技術】
【０００２】
無線ネットワークシステムにおける無線通信では、外部からの不正アクセスによる情報の傍受を防止するため、情報の暗号化によるデータの送受信が行われているが、計算能力の少ないＣＰＵやハードウエアを前提とした電子機器の場合、その暗号化の方法として、計算負荷を考慮して共通鍵暗号方式が利用されることが多い。共通鍵暗号方式の場合、対象となる機器にいかに初期鍵を安全確実に設定するかが一つの課題であり、その手法として、次のような技術がある。すなわち、無線回線を介して鍵を生成するに必要な情報を共有しようとするときに、鍵を共有したい二つの機器同士でユーザ操作を同時に行ない、その直後に無線を介して相手側機器から受信した鍵生成源情報を、相手側機器と共有した初期鍵（秘密情報）とみなし、これをもとに共通鍵を生成するというものである。当事者である二つの機器同士しか知りえないユーザ操作のタイミング情報をもとに、第三者からの盗聴の可能性を排除しつつ、無線回線を介して秘密情報を二つの機器で共有する方法である（例えば、特許文献１参照）。
【０００３】
また、ユーザ操作時に発生する時間差（タイムラグ）に着目した発明として、次のような技術がある。すなわち、基地局はユーザ操作に伴うタイムラグが規定値以下であれば、端末から送られてきた公開鍵を正当な端末からのものであるとみなして、受信した公開鍵でメッセージを暗号化し、端末にメッセージを安全に送信するというものである。これは非対称鍵暗号方式を基本として、暗号鍵を安全に送付する手法に関するものである（例えば、特許文献２参照）。
【特許文献１】特開２００７−８８６２９号公報
【特許文献２】特開２００７−１８９５６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術では、二つの機器で行なわれるユーザ操作が、ごく正確に同時発生することを想定している。しかしながら、ユーザ操作として、例えば二つの機器にそれぞれ装着されているボタンを同時に押す場合を考えたとき、マニュアル操作であるため手元が狂い同じ時間に押せない場合も想定しえる。この場合、ユーザ操作にタイムラグが発生するため、ユーザ操作直後に受信した鍵生成源情報が二つの機器の間で異なり、共有可能な鍵生成源情報を一意に決定できない場合があり得る。この場合、結果的に二つの機器の間で共通鍵を生成することができないこととなる。特に、第三者からの盗聴が困難になるように鍵生成源情報を頻繁に無線を介して配送している場合には、タイムラグの間に複数の鍵生成源情報が配送されることとなり、共有可能な鍵生成源情報を一意に決定できない可能性が高くなると考えられる。すなわち、特許文献１の技術では、ユーザ操作を利用して鍵生成源情報を共有しようとする場合に、共有可能な鍵生成源情報をユーザ操作の時間差によって一意に決定できず、それ故に共通鍵を生成できない場合があるという問題があった。
【０００５】
また、特許文献２の技術は、鍵情報そのものを無線信号で配送するものであり、共通鍵暗号方式には不適である。なんとなれば、無線信号であるため、第三者が容易に共通鍵を盗聴することができるからである。このため、無線で配送されるのは公開鍵であり、特許文献２は非対称鍵暗号方式を前提とした技術であった。
【０００６】
この発明はこのような点に鑑みなされたもので、ユーザ操作を利用して鍵生成源情報の共有を行うにあたり、ユーザ操作のタイミングに伴う影響を低減して安定して鍵生成源情報を共有でき、共通鍵を生成することが可能な共通鍵生成方法、共通鍵生成システム及び共通鍵生成システムにおける親機並びに子機を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る共通鍵生成方法は、無線暗号通信を行うための共通鍵を親機と子機間で共有する共通鍵生成方法であって、鍵の生成源となる鍵生成源情報を順次生成して周囲に発信する鍵生成源情報発信装置を設け、親機が鍵生成源情報発信装置から一定時間内に受信した鍵生成源情報を順次記録する処理と、子機が鍵生成源情報発信装置から鍵生成源情報を受信し、自機に対して操作入力があると、操作入力後に受信した鍵生成源情報を内部に記録する処理と、親機及び子機のそれぞれが、互いに共通の鍵生成源情報を記録しているかを検証する処理とを１サイクルとして複数サイクル繰り返し行い、各サイクルそれぞれにおいて親機及び子機のそれぞれが互いに共通の鍵生成源情報を記録していると検証された場合、子機側で操作入力の度に記録された全ての鍵生成源情報を用いて共通鍵を生成するものである。
【発明の効果】
【０００８】
この発明によれば、ユーザ操作を利用した鍵生成源情報の共有を行うにあたり、ユーザ操作のタイミングに伴う影響を低減して安定して鍵生成源情報を共有でき、適正に共通鍵を生成することが可能となる。
【発明を実施するための最良の形態】
【０００９】
図１は、この発明の一実施の形態の共通鍵生成システムの無線ネットワークを示す図である。
親機１と子機２は、無線通信可能に構成され、互いに無線電波の送受信範囲内に存在している。親機１と子機２間で暗号通信を行うための共通鍵を生成する際に用いる鍵生成源情報ｒａｎ（ｎ）を無線発信する機能を持つものを、ここでは親機１とし、親機１から発信される鍵生成源情報を受信する機能を持つものを子機２とする。親機１は具体的には例えばゲートウェイやアクセスポイントが該当し、子機２は例えばＰＨＳが該当する。更に、親機や子機は例えばセンサネットワークを構成するZigBeeインタフェースを有する無線機器を挙げることができる。
【００１０】
図２及び図３は、親機１及び子機２の外観を示す図である。
親機１は、スイッチ１０を有し、ユーザ操作によるスイッチ１０の押下を、外部入力として取得する。また、子機２は、スイッチ４０を有し、同様にユーザ操作によるスイッチ１０の押下を、外部入力として取得する。そして、親機１及び子機２共に、ＬＥＤなどの表示灯５および無線アンテナ４を有している。表示灯５は機器内部の状態を外部に知らせるものである。
【００１１】
図４は、この発明の一実施の形態の親機１の装置構成を示すブロック図である。
親機１は、ユーザ操作を目的とした上述のスイッチ１０を有し、スイッチ１０は、ウインドウ時間管理部１２に接続されている。ウインドウ時間管理部１２は、スイッチ１０が押下されたことを検知すると、その検知タイミング（記録開始タイミング）から、あらかじめ決められた一定時間（以下、ウインドウ時間ｔｗ）だけ信号ｒｅｃを鍵生成源情報記録部１３に出力する。
【００１２】
鍵生成源情報記録部１３は、ウインドウ時間管理部１２から信号ｒｅｃが出力されている間（ウインドウ時間ｔｗ）だけ、鍵生成源情報生成部２０からの鍵生成源情報ｒａｎ（ｎ）を鍵生成源情報記録部１３内の記録テーブル１３ａに順次記録する。
【００１３】
鍵生成源情報生成部２０は、鍵生成源情報記録部１３及び送信部３０に接続される。鍵生成源情報生成部２０は、乱数ｒａｎ（ｎ）を一定タイミングで次々に生成し、鍵生成源情報記録部１３及び送信部３０に時系列的に順次供給するものである。ここでは、この乱数ｒａｎ（ｎ）を鍵生成源情報ｒａｎ（ｎ）と称する。
【００１４】
親機１は更に、子機２との間で共通の秘密情報を保有しているかを検証する検証部１００を備えている。検証を行う方法としては、例えばチャレンジレスポンス方式（後述する）を用いることができる。図４には、チャレンジレスポンス方式で検証処理を行うための構成を示しており、検証部１００は、チャレンジ生成部１４、レスポンス検証部１５及びレスポンス生成部１６を備えている。
【００１５】
チャレンジレスポンス方式を、一般のクライアントとサーバ間でユーザのパスワードを検証する例で説明すると、まずはサーバがクライアントに対してランダムな数字列（チャレンジ情報）を送る。クライアントは、チャレンジ情報と自身が保持するパスワードとを特定のアルゴリズムに従って演算処理し、その結果として生成された値をレスポンス情報としてサーバに返す。サーバ側では、送信したチャレンジ情報と予め登録されたそのユーザのパスワードとから同じようにレスポンス情報を作成し、クライアントから返ってきたレスポンス情報と照合し、一致すればパスワードは正しいことになり認証成功と判断するものである。本例では、このチャレンジレスポンス方式を、親機１及び子機２のそれぞれにおいて、共通の秘密情報を保有しているかを検証するために用いている。
【００１６】
チャレンジ生成部１４は、チャレンジ情報ｃｈｌ＿ａを生成し、レスポンス検証部１５と送信部３０とにそれぞれ出力する。レスポンス検証部１５は、チャレンジ生成部１４、鍵生成源情報記録部１３及び受信部３１の出力を入力とし、チャレンジ生成部１４の出力であるチャレンジ情報ｃｈｌ＿ａと、鍵生成源情報記録部１３が保持する記録テーブル１００から取り出した一つの要素である鍵生成源情報ｒａｎ（ｎ）とを特定のアルゴリズムで演算処理し、その演算処理の結果、生成された値と、受信部３１で受信した子機２からのレスポンス情報ｒｓｐ＿ａとが一致するときの鍵生成源情報ｒａｎを記録テーブル１００から検索する。なお、上記特定のアルゴリズム及び以降の説明に登場する特定のアルゴリズムは、共通鍵生成システムにおいて予め規定された演算規則であり、親機１及び子機２において共有しているものである。
【００１７】
レスポンス検証部１５は、一致する鍵生成源情報ｒａｎ（ｎ）を検索できれば、一致した鍵生成源情報ｒａｎ（ｎ）を共通秘密情報格納部１７に出力する。共通秘密情報格納部１７は、レスポンス検証部１５からの出力である鍵生成源情報ｒａｎを共通の秘密情報ｓｃｒとして格納する。共通鍵生成部１８は、共通秘密情報格納部１７に格納された秘密情報ｓｃｒに基づいて共通鍵を生成する。
【００１８】
レスポンス生成部１６は、共通秘密情報格納部１７及び受信部３１の出力を入力とし、受信部３１で受信した子機２からのチャレンジ情報ｃｈｌ＿ｂと共通秘密情報格納部１７からの出力である秘密情報ｓｃｒとを特定のアルゴリズムで演算処理してレスポンス情報ｒｓｐ＿ｂを生成し、送信部３０に出力する。
【００１９】
送信部３０は、鍵生成源情報生成部２０が出力する鍵生成源情報ｒａｎ（ｎ）、レスポンス生成部１６が出力するレスポンス情報ｒｓｐ＿ｂ及びチャレンジ生成部１４が出力するチャレンジ情報ｃｈｌ＿ａを、子機２に送信する。各情報を送信する際には、送信元アドレス、送信先アドレス及びコード番号を付与したパケットを生成し、子機２に送信する。
【００２０】
受信部３１は、子機２から送信されたパケットを受信し、受信したパケット内の送信元アドレス、送信先アドレス及びコード番号を検査したのち、パケット内の情報を、コード番号に応じて該当の処理部に出力する。すなわち、パケット内のデータがレスポンス情報ｒｓｐ＿ａであればレスポンス検証部１５に、チャレンジ情報ｃｈｌ＿ｂであればレスポンス生成部１６に出力する。
【００２１】
以上のように構成された親機１は、ＣＰＵ、ＭＰＵ等の演算手段、半導体メモリ等の記憶手段、通信インターフェイス等を備えており、ＣＰＵと記憶手段内の制御プログラムにより上記各処理部が実現されている。
【００２２】
図５は、この発明の一実施の形態の子機２の装置構成を示す図である。
子機２は、親機１と同様にユーザ操作を目的としたスイッチ４０を有し、スイッチ４０は、鍵生成源情報記録部４２に接続されている。鍵生成源情報記録部４２は、スイッチ４０及び受信部５１に接続されており、スイッチ４０の押下直後に、受信部５１で受信した鍵生成源情報ｒａｎ（ｎ）を記録するものである。鍵生成源情報記録部４２は更に、後述の検証部２００のレスポンス生成部４３及びレスポンス検証部４５に接続されており、内部に記録した鍵生成源情報ｒａｎ（ｎ）をそれぞれに出力する。
【００２３】
子機２は更に、親機１との間で共通の秘密情報を保有しているかを検証する検証部２００を備えている。検証部２００における検証方法は、上記親機１と同様に例えばチャレンジレスポンス方式を用いることができ、図５には、チャレンジレスポンス方式で検証処理を行うための構成を示している。すなわち、検証部２００は、レスポンス生成部４３、チャレンジ生成部４４及びレスポンス検証部４５を備えている。
【００２４】
レスポンス生成部４３は、受信部５１を介して受信した親機１からのチャレンジ情報ｃｈｌ＿ａと鍵生成源情報記録部４２からの出力である鍵生成源情報ｒａｎ（ｎ）とを特定のアルゴリズムで演算処理してレスポンス情報ｒｓｐ＿ａを生成し、送信部５０に出力する。チャレンジ生成部４４は、チャレンジ情報ｃｈｌ＿ｂを生成し、レスポンス検証部４５及び送信部５０に出力する。
【００２５】
レスポンス検証部４５は、受信部５１で受信した親機１からのレスポンス情報ｒｓｐ＿ｂが、鍵生成源情報記録部４２の出力である鍵生成源情報ｒａｎ（ｎ）とチャレンジ生成部４４の出力であるチャレンジ情報ｃｈｌ＿ｂとを特定のアルゴリズムで演算処理した結果と一致しているかどうかを検証するものである。一致していれば、鍵生成源情報ｒａｎ（ｎ）を共通秘密情報格納部４６に出力する。共通秘密情報格納部４６はレスポンス検証部４５からの出力である鍵生成源情報ｒａｎ（ｎ）を共通の秘密情報ｓｃｒとして格納する。共通鍵生成部４７は、共通秘密情報格納部４６に格納された秘密情報ｓｃｒに基づいて共通鍵を生成する。
【００２６】
送信部５０は、レスポンス生成部４３が出力するレスポンス情報ｒｓｐ＿ａと、チャレンジ生成部４４が出力するチャレンジ情報ｃｈｌ＿ｂとを、親機１に送信する。各情報を送信する際には、送信元アドレス、送信先アドレス及びコード番号を付与したパケットを生成し、親機１に送信する。
【００２７】
受信部５１は、親機１から送信されたパケットを受信し、受信したパケット内の送信元アドレス、送信先アドレス及びコード番号を検査したのち、パケット内のデータを、コード番号に応じて該当の処理部に出力する。すなわち、パケット内の情報が鍵生成源情報ｒａｎ（ｎ）であれば、鍵生成源情報記録部４２に、チャレンジ情報ｃｈｌ＿ａであればレスポンス生成部４３に、レスポンス情報ｒｓｐ＿ｂであればレスポンス検証部４５に出力する。
【００２８】
以上のように構成された子機２は、ＣＰＵ、ＭＰＵ等の演算手段、半導体メモリ等の記憶手段、通信インターフェイス等を備えており、ＣＰＵと記憶手段内の制御プログラムにより上記各処理部が実現されている。
【００２９】
図６は、親機１と子機２間で行なわれる、共通鍵の生成処理を示すフローチャートである。図７は、図６のフローチャートの中で、秘密情報の共有の検証ステップであるステップ１１０、ステップ２１０の詳細を示すフローチャートである。
図８及び図９は、図６のフローチャートにおける、親機１のステップ１００〜１０３、子機２のステップ２００〜２０２の部分を詳細に示すものであり、時間経過とともに親機１の鍵生成源情報記録部１３及び子機２の鍵生成源情報記録部４２に鍵生成源情報ｒａｎ（ｎ）がどのように記録されるのかを、タイムチャートの形で示すものである。そして、図８は、秘密情報が共有できる場合のタイムチャートであり、図９は、共有できない場合のタイムチャートである。
【００３０】
以下、この実施の形態の共通鍵生成システムにおける動作を図６〜図９を参照して説明する。なお、この共通鍵生成システムにおいては、親機１と子機２とは事前に互いのアドレスを知っている、チャレンジ情報に対するレスポンス情報を生成するための演算規則を共有している、秘密情報から鍵を生成するための演算規則を共有しているものとする。
ここでは、共通鍵を生成する場合と生成しない場合の二つに分けて、この発明の動作を説明する。
【００３１】
また、二つの動作説明の前に、ユーザ操作に対する事前の申し合わせについて簡単に述べる。
<事前の申し合わせ１>：ユーザ操作としては、親機１のスイッチ１０を押下した後に、子機２のスイッチ４０を押下するものとする。
<事前の申し合わせ２>：親機１でスイッチ１０を押下してから子機２でスイッチ４０を押下するまでの時間差はウインドウ時間ｔｗ以内であるというルールを事前に設定しておく。
【００３２】
<<共通鍵を生成する場合>>
以下、事前の申し合わせ１及び２を守っており、共通鍵を生成する場合について、図６及び図７のフローチャートと図８のタイムチャートとを参照して説明する。
【００３３】
ステップ１００（親機１）：鍵生成源情報ｒａｎ（ｎ）を鍵生成源情報生成部２０で生成し、送信部３０を介して子機２に向けて発信する（図８におけるｔ０）。このとき、親機１自身も鍵生成源情報記録部１３で鍵生成源情報ｒａｎ（ｎ）を受信する。但し、まだスイッチ１０が押下されていないので、鍵生成源情報ｒａｎ（ｎ）の記録はしていない。なお、鍵生成源情報ｒａｎ（ｎ）は、チャレンジレスポンス処理に相当する秘密情報の共有の検証ステップ１１０を開始するまで、鍵生成源情報生成部２０から発信が継続されるものとする。
【００３４】
ステップ２００（子機２）：親機１から受信した鍵生成源情報ｒａｎ（ｎ）を受信部５１で受信し、鍵生成源情報記録部４２で記録することができる状態にある。但し、スイッチ４０がまだ押下されていないので、何らの鍵生成源情報ｒａｎ（ｎ）を記録してはいない。
【００３５】
そして、ユーザは、親機１のスイッチ１０を押下し（図８におけるｔ１）、引きつづいて子機２のスイッチ４０を押下する（図８におけるｔ２）。スイッチ押下時刻ｔ２は親機１のスイッチ押下時刻ｔ１を起点としてウインドウ時間ｔｗ以内であることに注意して欲しい。
【００３６】
ステップ１０１〜ステップ１０２（親機１）：親機１では、ユーザによる親機１のスイッチ１０の押下を検出すると、鍵生成源情報記録部１３が、スイッチ１０の押下の開始時（図８におけるｔ１）からウインドウ時間ｔｗの間だけ、鍵生成源情報生成部２０から発信される鍵生成源情報ｒａｎ（ｎ）を順番に記録し、記録テーブル１００を生成していく。図８では鍵生成源情報ｒａｎ（１０）から順次、記録テーブル１００に記録されていく様子を示している。
【００３７】
ステップ１０３（親機１）：ウインドウ時間ｔｗが過ぎると（図８におけるｔ３）、鍵生成源情報記録部１３は鍵生成源情報ｒａｎ（ｎ）の記録を中止する。図８ではウインドウ時間ｔｗの間に鍵生成源情報としてｒａｎ（１０）〜ｒａｎ（１３）の４つを記録テーブル１００に記録したことを示している。このときの記録テーブル１００を図１０に例示する。上記ステップ１０１〜１０３は、ユーザ操作に伴って親機１が行う処理ｐ１である。
【００３８】
ステップ２０１，２０２（子機２）：一方、子機２では、ユーザによる子機２のスイッチ４０の押下を検出すると、鍵生成源情報記録部４２はスイッチ４０の押下（図８におけるｔ２）を検出した直後に受信部３１を介して親機１から受信した鍵生成源情報ｒａｎ（ｎ）を記録する。図８ではｒａｎ（１１）を記録する様子を例示している。上記ステップ２０１及び２０２は、ユーザ操作に伴って子機２が行う処理ｐ２である。
【００３９】
ステップ１０５（親機１）：ウインドウ時間経過後の任意の時間に鍵生成源情報ｒａｎ（ｎ）の発信を停止する。
ステップ１１０（親機１）、ステップ２１０（子機２）：親機１と子機２とが互いに共通の秘密情報ｓｃｒを共有しているかの検証処理を行なう。具体的には互いの装置が記録した鍵生成源情報ｒａｎ（ｎ）の中に共通なものが存在するかを、チャレンジレスポンス処理により検証するものである。この発明では、この処理を通じて互いの装置で共通の鍵生成源情報ｒａｎ（ｎ）が見出された場合は、この鍵生成源情報ｒａｎ（ｎ）を共通の秘密情報ｓｃｒとみなしている。
【００４０】
以下、図７を用いて、ステップ１１０及び２１０の詳細を説明する。
ステップ１１１（親機１）：チャレンジ生成部１４でチャレンジ情報ｃｈｌ＿ａを生成し、子機２に送信する。
ステップ２１１（子機２）：親機１からのチャレンジ情報ｃｈｌ＿ａを受信し、レスポンス生成部４３は、受信したチャレンジ情報ｃｈｌ＿ａと鍵生成源情報ｒａｎ（１１）とを特定のアルゴリズムで演算処理してレスポンス情報ｒｓｐ＿ａを生成する。
ステップ２１２（子機２）：生成したレスポンス情報ｒｓｐ＿ａと共に、チャレンジ生成部４４で生成したチャレンジ情報ｃｈｌ＿ｂを親機１に送信する。
【００４１】
ステップ１１２（親機１）：子機２からのレスポンス情報ｒｓｐ＿ａとチャレンジ情報ｃｈｌ＿ｂとを受信する。そして、親機１自身が保持するチャレンジ情報ｃｈｌ＿ａと共に特定のアルゴリズムで演算処理した際に、レスポンス情報ｒｓｐ＿ａと一致する値を生成（演算）し得る鍵生成源情報ｒａｎ（ｎ）が記録テーブル１００の中に存在するかを検索する。ここでの事例では、鍵生成源情報ｒａｎ（１１）が検索されることになる。
【００４２】
ステップ１１３（親機１）：一致した鍵生成源情報ｒａｎ（ｎ）を秘密情報ｓｃｒとし、共通秘密情報格納部１７に記録する。ここでの事例では、鍵生成源情報ｒａｎ（１１）を秘密情報ｓｃｒとして共通秘密情報格納部１７に記録する。
【００４３】
ステップ１１４（親機１）：さらに、レスポンス生成部１６は、秘密情報ｓｃｒと受信部３１より受信した子機２からのチャレンジ情報ｃｈｌ＿ｂとをもとにしてレスポンス情報ｒｓｐ＿ｂを生成する。そして、生成したレスポンス情報ｒｓｐ＿ｂを送信部３０を経由して子機２に送信する。
【００４４】
ステップ１１５（親機１）：以上の検証部１００における処理により、子機２との間で共通の秘密情報ｓｃｒを共有できたことを確認できる。つまり、親機１と子機２は同じ鍵生成源情報ｒａｎ（ｎ）を共有したことになる。ここでの事例では、鍵生成源情報ｒａｎ（１１）（＝秘密情報ｓｃｒ）が共有した鍵生成源情報ｒａｎ（ｎ）である。
【００４５】
ステップ２１３（子機２）：子機２は、鍵生成源情報記録部４２に記録している鍵生成源情報ｒａｎ（ｎ）とチャレンジ情報ｃｈｌ＿ｂとをもとに特定のアルゴリズムで演算処理し、その演算結果が親機１から受信したレスポンス情報ｒｓｐ＿ｂと一致するかを検証する。
ここでの事例では、親機１からのレスポンス情報ｒｓｐ＿ｂはチャレンジ情報ｃｈｌ＿ｂと鍵生成源情報ｒａｎ（１１）より生成されている。一方、子機２が鍵生成源情報記録部４２に記録している鍵生成源情報ｒａｎ（ｎ）はｒａｎ（１１）であるので、鍵生成源情報ｒａｎ（ｎ）とチャレンジ情報ｃｈｌ＿ｂにより生成された値は親機１から受信したレスポンス情報ｒｓｐ＿ｂと一致する。
【００４６】
ステップ２１４（子機２）：一致することが判明したので、鍵生成源情報ｒａｎ（ｎ）を秘密情報ｓｃｒとして共通秘密情報格納部４６に記録する。ここでの事例では、秘密情報ｓｃｒは鍵生成源情報ｒａｎ（１１）である。
ステップ２１５（子機２）：以上の検証部２００における処理により、親機１との間で共通の秘密情報ｓｃｒを共有できたことを確認できる。つまり、子機２は親機１も同じ鍵生成源情報を保持していることを確認したことになる。ここでの事例では、鍵生成源情報ｒａｎ（１１）が該当する。
【００４７】
ここで、図６の説明に戻る。
ステップ１２０（親機１）、ステップ２２０（子機２）：ステップ１１０、ステップ２１０のそれぞれの検証結果がＯＫか否かをチェックする。
ステップ１３０（親機１）、ステップ２３０（子機２）：ステップ１２０、ステップ２２０の検証結果がＯＫの場合（親機１と子機２間で共通の秘密情報ｓｃｒを共有できた場合）、共通の秘密情報ｓｃｒをもとに、親機１及び子機２はそれぞれ共通鍵を生成する。一方、検証結果がＮＧの場合、共通鍵を生成しない。ここでの事例では、親機１と子機２間で共通の秘密情報ｓｃｒを共有できたため、秘密情報ｓｃｒをもとに共通鍵を生成する。すなわち、共通鍵の生成に成功した。
【００４８】
<<共通鍵を生成しない場合>>
以下、事前の申し合わせ１は守っているが、事前の申し合わせ２を守っておらず、共通鍵を生成しない場合について、図６及び図７のフローチャートと図９のタイムチャートとを参照して説明する。なお、ステップ１００（親機１）、ステップ１０１（親機１）及びステップ２００（子機２）の処理は上記<<共通鍵を生成する場合>>と同様であるため、説明を省略する。
【００４９】
ユーザは、上記<<共通鍵を生成する場合>>と異なり、子機２のスイッチ４０を、図９におけるｔ４のタイミングで押す。スイッチ押下時刻ｔ４は親機１のスイッチ押下時刻ｔ１を起点としてウインドウ時間ｔｗを経過後であることに注意して欲しい。
【００５０】
ステップ２０１，ステップ２０２（子機２）：子機２は、ユーザによるスイッチ４０の押下（図９におけるｔ４）を検出すると、鍵生成源情報記録部４２が、押下を検出した直後に受信部３１を介して親機１から受信した鍵生成源情報ｒａｎ（ｎ）を記録する。図９ではｒａｎ（１５）を記録する様子を例示している。
【００５１】
ステップ１１１（親機１）：チャレンジ生成部１４でチャレンジ情報ｃｈｌ＿ａを生成し、子機２に送信する。
ステップ２１１（子機２）：親機１からのチャレンジ情報ｃｈｌ＿ａを受信し、レスポンス生成部４３は、受信したチャレンジ情報ｃｈｌ＿ａと鍵生成源情報ｒａｎ（１５）とを特定のアルゴリズムで演算処理してレスポンス情報ｒｓｐ＿ａを生成する。
ステップ２１２（子機２）：生成したレスポンス情報ｒｓｐ＿ａと共に、チャレンジ生成部４４で生成したチャレンジ情報ｃｈｌ＿ｂを親機１に送信する。
【００５２】
ステップ１１２（親機１）：子機２からのレスポンス情報ｒｓｐ＿ａとチャレンジ情報ｃｈｌ＿ｂとを受信する。そして、親機１自身が保持するチャレンジ情報ｃｈｌ＿ａと共に特定のアルゴリズムで演算処理した際に、レスポンス情報ｒｓｐ＿ａと一致する値を生成（演算）し得る鍵生成源情報ｒａｎ（ｎ）が記録テーブル１００の中に存在するかを検索する。ここでの事例では、記録テーブル１００の中に該当する鍵生成源情報は存在しない。なんとなれば、レスポンス情報ｒｓｐ＿ａは子機２において鍵生成源情報ｒａｎ（１５）に基づいて生成されたからである。このため、次はステップ１１６に進む。そしてステップ１１３，１１４に進まないため、親機１は子機２に対してレスポンス情報ｒｓｐ＿ｂを送信しない。
【００５３】
ステップ１１６（親機１）：ここでの事例では、一致した鍵生成源情報ｒａｎ（ｎ）を見出すことができなかったので、共有可能な秘密情報ｓｃｒを確認することができなかった。
ステップ２１３（子機２）：子機２は一定時間内にレスポンス情報ｒｓｐ＿ｂを受信することができずタイムアウトとなり、ステップ２１６に進む。
ステップ２１６（子機２）：ここでの事例では、一致した鍵生成源情報ｒａｎ（ｎ）を見出すことができなかったので、共有可能な秘密情報ｓｃｒを確認することができなかった。
【００５４】
ここで、図６の説明に戻る。
ステップ１２０（親機１）、ステップ２２０（子機２）：ステップ１１０、ステップ２１０のそれぞれの検証結果がＯＫか否かをチェックする。
ステップ１３０（親機１）、ステップ２３０（子機２）：ステップ１２０、ステップ２２０の検証結果がＯＫの場合（親機１と子機２間で共通の秘密情報ｓｃｒを共有できた場合）、共通の秘密情報ｓｃｒをもとに、親機１及び子機２はそれぞれ共通鍵を生成する。一方、検証結果がＮＧの場合、共通鍵を生成しない。ここでの事例では、親機１と子機２間で共通の秘密情報ｓｃｒを共有できなかったため共通鍵を生成しない。すなわち、共通鍵の生成に失敗した。
【００５５】
以上の処理では、親機１と子機２で行なわれるユーザ操作（この場合はスイッチの押下）の時間差が事前の申し合わせであるウインドウ時間ｔｗ以内に収まっていれば、子機２が記録した鍵生成源情報ｒａｎ（１１）は親機１がウインドウ時間ｔｗ以内に記録した鍵生成源情報ｒａｎ（１０）〜ｒａｎ（１３）の中に含まれる。従って、予めユーザ操作の順序を決めておくことで、親機１と子機２間で共有可能な鍵生成源情報を一意に決定することが可能となる。
【００５６】
このように、この実施の形態によれば、無線信号で鍵生成源情報が配送されている中で、ユーザ操作を利用して共有鍵を生成しようとするに際し、従来のように親機１と子機２で同時にユーザ操作を行うのに代えて、予め決定した順序で親機１と子機２とにユーザ操作を行うようにしたので、従来の同時にユーザ操作を行うことを前提とした場合のユーザ操作に時間差による不都合を回避することができる。また、操作順序とウインドウ時間内での子機２側の操作とを守ることにより、共有可能な鍵生成源情報を一意に決定することが可能となる。すなわち、ユーザ操作を利用して鍵生成源情報の共有を行うにあたり、ユーザ操作のタイミングに伴う影響を低減して、安定して鍵生成源情報を共有でき、適正に共通鍵を生成することが可能となる。
【００５７】
また、ユーザは、厳密な時間的同期を気にせずに、特段の注意をかけずに予め決まった順序でスイッチを押せば良いため、操作負担が軽減し、簡易に共通鍵を生成することができる。
【００５８】
なお、ウインドウ時間ｔｗを変更することにより、ユーザ操作に伴うユーザ負担を変えることができ、親機１及び子機２の設置状態や人間の操作状況に合わせられるという利便性もある。例えば、親機１と子機２とが離れて設置してあり、親機１と子機２のスイッチ操作を一人の人間が行なう場合は、ユーザの移動時間があるので、必然的にユーザ操作の時間差（例えば、図８でいうところの時間差Δｔ０）が大きくなる。このような場合は、ウインドウ時間ｔｗを大きくすることにより対応することができる。
【００５９】
この発明では、幾つかの変形例が考え得る。
変形例１：この実施の形態では鍵生成源情報生成部が親機に配置されているが、これにこだわる必要はなく、子機にあっても良い。また、鍵生成源情報生成部を搭載した鍵生成源情報生成装置を、親機１や子機２とは別に別途設け、親機１や子機２から無線信号が到達する距離内に配置しても良い。この場合、親機１と子機２は鍵生成源情報生成装置から鍵生成源情報を受信することになる（図１１）。
【００６０】
変形例２：親機１と子機２の間のネットワークの通信方式は、特に限られたものではなく、ウインドウ時間ｔｗを設定する関係から、伝送遅延時間が予測できる通信方式であればよい。例えば時分割通信方式とし、時分割通信方式により、鍵生成源情報を配送する方式としても良い。
【００６１】
変形例３：この実施の形態では、共通する鍵生成源情報がどれであるかを探し出し、検証する手段としてチャレンジレスポンス方式を用いたが、これにこだわる必要はない。
【００６２】
変形例４：この実施の形態では、ユーザ操作を各１回だけ行なったが、これにこだわる必要はなく、ユーザ操作を複数回繰り返す方式でも良い。
例えば、親機１と子機２との連続した上記のユーザ操作を２回繰り返し行っても良い。この場合、親機１と子機２では、ステップ１０１〜１１０、ステップ２０１〜２１０を１サイクルとして２回行われることになる。ここで、子機２はユーザ操作が行われる度に、鍵生成源情報を記録するものであるため、上記２回繰り返し行った場合、子機２で記録された鍵生成源情報は２個である。親機１と子機２では、それぞれ２個の鍵生成源情報を用いて共通鍵を生成する。この場合、共通鍵の元となる鍵生成源情報の複雑さが増すので、鍵の安全性が向上する効果が期待できる。
【００６３】
変形例５：この実施の形態では、親機１のユーザ操作として、スイッチの押下を例示したが、これにこだわる必要はなく、図２で示すような表示手段としての表示灯５を設け、表示灯５が点灯したと同時に本実施の形態で示す処理が始まるようにしても良い。
具体的には、任意のタイミングで親機１の表示灯５が点灯したならば、ユーザは子機２のスイッチをウインドウ時間ｔｗ内に押下するようにする。こうすることにより、ユーザは子機２だけのスイッチ押下で済むので、操作を簡単化できる。
【００６４】
変形例６：この実施の形態では、鍵生成源情報は乱数であったが、これにこだわる必要はなく、鍵生成源情報生成部２０が鍵生成源情報を発信を開始してから、子機２のユーザ操作が完了するまでに時間において、生成される鍵生成源情報の値が互いに異なっていれば良い。従って、例えば、この時間内において昇順、降順の番号のように、互いの番号に関連性があっても良い。
【図面の簡単な説明】
【００６５】
【図１】この発明の一実施の形態に係る共通鍵生成システムの無線ネットワークを示す図である。
【図２】親機１の外観を示す図である。
【図３】子機２の外観を示す図である。
【図４】この発明の一実施の形態の親機１の装置構成を示す図である。
【図５】この発明の一実施の形態の子機２の装置構成を示す図である。
【図６】親機１と子機２間で行なわれる、共通鍵の生成処理を示すフローチャートである。
【図７】図６の秘密情報の共有の検証ステップの詳細を示すフローチャートである。
【図８】秘密情報を共有できる場合のタイムチャートである。
【図９】秘密情報を共有できない場合のタイムチャートである。
【図１０】図３の記録テーブル１３ａの一例を示す図である。
【図１１】共通鍵生成システムの変形例を示す図である。
【符号の説明】
【００６６】
１  親機
２  子機
４  無線アンテナ
５  表示灯
１０  スイッチ
１２  ウインドウ時間管理部
１３  鍵生成源情報記録部
１３ａ  記録テーブル
１４  チャレンジ生成部
１５  レスポンス検証部
１６  レスポンス生成部
１７  共通秘密情報格納部
１８  共通鍵生成部
２０  鍵生成源情報生成部
３０  送信部
３１  受信部
４０  スイッチ
４２  鍵生成源情報記録部
４３  レスポンス生成部
４４  チャレンジ生成部
４５  レスポンス検証部
４６  共通秘密情報格納部
４７  共通鍵生成部
５０  送信部
５１  受信部
【図１】
0004793405.tif 000002
【図２】
0004793405.tif 000003
【図３】
0004793405.tif 000004
【図４】
0004793405.tif 000005
【図５】
0004793405.tif 000006
【図６】
0004793405.tif 000007
【図７】
0004793405.tif 000008
【図８】
0004793405.tif 000009
【図９】
0004793405.tif 000010
【図１０】
0004793405.tif 000011
【図１１】
0004793405.tif 000012