説明

暗号鍵設定システム、データ通信装置、暗号鍵設定方法

【課題】 ネットワークを介して送受信されるデータを暗号化/復号化するための暗号鍵を、ネットワークを介して送受信した場合、送受信するデータを盗聴した第三者に、暗号鍵が簡単に入手され、暗号化されたデータが復号化されて漏洩してしまう恐れがあった。
【解決手段】 互いに通信路を介して接続された2台のデータ通信装置を備える暗号鍵設定システムであって、2台のデータ通信装置は、それぞれ、相手方との間で特定データの送受信を複数回行う送受信部と、特定データの送受信に要する時間を所定の時間を単位として複数回計時すると共に各回毎に計時した時間を複数の桁のカウンタ値としてそれぞれ得るカウンタと、カウンタによって各回毎に得られたカウンタ値の対応する桁同士をそれぞれ比較して示す値が一致する桁を決定する桁決定部と、カウンタ値のうち桁決定部により決定された桁で示される基礎値に基づき暗号鍵を生成する暗号鍵生成部と、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介して送受信される通信データを暗号化及び復号化するために用いられる暗号鍵を、それぞれの通信機器に設定する技術に関する。
【背景技術】
【0002】
近年、ローカルエリアネットワーク(LAN)やインターネット等のネットワークの発達に伴い、通信データの盗聴による通信内容の漏洩や、なりすましによるネットワークへの不正侵入を防止するために、種々のセキュリティ技術が提案されている。
【0003】
例えば、IEEE(Institute of Electrical and Electronics Engineers)802.11で規定された無線LANでは、データを送受信する端末(以下、「クライアント」と呼ぶ。)と、無線LAN用中継器であるアクセスポイントと、に共通の暗号鍵としてWEP(Wired Equivalent Privacy)キーを予め設定しておき、クライアントとアクセスポイントとの間でやりとりされるデータを、このWEPキーを用いて暗号化及び復号化することで、第三者への通信内容の漏洩を防止する技術(以下、「WEP暗号化」と呼ぶ。)が提案されている。
【0004】
なお、前述のWEP暗号化を行うアクセスポイントの一例として、下記特許文献1に記載されたものが挙げられる。
【0005】
【特許文献1】特開2001−345819号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上述のWEP暗号化を行う場合、クライアントが新たに追加される度に、アクセスポイントに設定されているのと同じWEPキーを、このクライアントに手作業で設定する必要があり、煩雑かつ不便であった。そこで、アクセスポイントからクライアントへ無線LANを介してWEPキーを送信し、クライアントにWEPキーを自動設定する方法が提案されている。
【0007】
しかし、この設定方法では、WEPキーを含むデータが盗聴されると、第三者にWEPキーを簡単に入手されてしまう。
そこで、このWEPキーを含むデータを、WEPキーとは別の、アクセスポイントとクライアントとで共通の暗号鍵で暗号化して送信する方法も提案されている。この方法では、WEPキーと同様に、この暗号鍵をアクセスポイント及びクライアントに、予め設定しておく必要がある。そして、この設定も簡便に行うために、無線LANを介して暗号鍵を送信した場合、この暗号鍵も第三者に入手され、その結果、暗号化されたWEPキーが復号化され、第三者にWEPキーが入手されてしまい、通信内容が漏洩してしまう恐れがあった。
【0008】
なお、前述のWEP暗号化の他、無線LANにおいて、クライアントの個体情報であるMAC(Media Access Control)アドレスを予めアクセスポイントに設定しておき、設定されているMACアドレスのクライアント以外からの接続要求を、アクセスポイントが拒否することで、無線LANへの不正な侵入を防ぐ技術(以下、「MACアドレスフィルタリング」と呼ぶ。)が、セキュリティ技術として用いられている。
このMACアドレスフィルタリングにおいても、クライアントのMACアドレスをアクセスポイントに簡便に設定するために、暗号化したMACアドレスと、暗号化に用いた暗号鍵と、を無線LANを介して、クライアントとアクセスポイントとの間でやりとりした場合、前述のWEP暗号化と同様、第三者にこの暗号鍵が入手され、その結果、第三者にMACアドレスが入手されてしまい、なりすましによって無線LANに不正侵入されてしまう恐れがあった。
【0009】
本発明は、上述の課題を解決するためになされたものであり、ネットワークを介して送受信される通信データを暗号化及び復号化するために用いられる暗号鍵を、第三者に入手される可能性を低くして、それぞれの通信機器に簡便な方法で設定する技術を提供することを目的とする。
【課題を解決するための手段】
【0010】
前述の課題の少なくとも一部を解決するために、本発明の暗号鍵設定システムは、互いに通信路を介して接続された2台のデータ通信装置を備え、前記2台のデータ通信装置間で送受信される通信データを暗号化及び復号化するために用いられる暗号鍵を、前記2台のデータ通信装置に、それぞれ設定する暗号鍵設定システムであって、前記2台のデータ通信装置は、それぞれ、相手方のデータ通信装置との間で、特定データの送受信を複数回行う送受信部と、前記特定データの送受信に要する時間を所定の時間を単位として複数回計時すると共に、各回毎に、計時した時間を複数の桁のカウンタ値としてそれぞれ得るカウンタと、前記カウンタによって各回毎に得られた前記カウンタ値の、対応する桁同士をそれぞれ比較して、示す値が一致する桁を決定する桁決定部と、前記カウンタ値のうち、前記桁決定部により決定された桁で示される基礎値に基づき、前記暗号鍵を生成する暗号鍵生成部と、を有することを要旨とする。
【0011】
このように構成することで、通信路を介して接続された2台のデータ通信装置が、特定データの送受信を複数回行うと共に、1回または複数回の特定データの送受信に要する時間をカウンタによって複数回計時し、各回毎に、計時した時間を複数の桁のカウンタ値として得る場合、各回毎に得られるカウンタ値は、互いにほぼ等しくなる。また、各々のデータ通信装置において得られるカウンタ値も、互いにほぼ等しくなる。これは、特定データが伝送される距離が一定であり、また、2台のデータ通信装置は、それぞれ同じ処理を繰り返すからである。
【0012】
しかし、データ通信装置において、処理に要する時間にはばらつきがあるので、各回毎に得られるカウンタ値は互いに完全には一致せず、いくつかの桁で誤差が生じることとなる。ここで、2台のデータ通信装置は、それぞれ同様な処理を行っているので、2台のデータ通信装置において、それぞれ生じるカウンタ値の誤差はほぼ等しくなり、ほぼ同じ桁で誤差が生じることとなる。
【0013】
ここで、それぞれのデータ通信装置において、各回毎に得られたカウンタ値の対応する桁同士を比較して、示す値が一致する桁を決定すると、前述の誤差の生じた桁を除く桁が決定されることになる。従って、2台のデータ通信装置において、決定される桁はほぼ一致し、この決定された桁で示される基礎値もほぼ一致することになる。
そして、このほぼ一致する基礎値に基づき、暗号鍵を生成するので、2台のデータ通信装置において、同じ暗号鍵を生成して設定する可能性が高くなる。
【0014】
なお、上述した通信路とは、LANやインターネット等のネットワークで構成される通信路でもよいし、ネットワークを介さず1対1の接続により構成される通信路でもよい。また、上述した2台のデータ通信装置とは、これら通信路を介して接続された端末やサーバ等であってもよい。
なお、上述した「計時した時間を複数の桁のカウンタ値として得る場合」には、毎回カウンタをリセットして、計時した時間をカウンタ値として得る場合の他、最初に特定データを送信する際にカウンタをリセットして、各回毎に計時した時間の差分を、カウンタ値として得る場合も含まれる。
【0015】
また、上述のように構成することで、ユーザは、それぞれのデータ通信装置に対し、手作業で暗号鍵を設定する必要がないので、暗号鍵を簡便に設定することができる。
【0016】
また、2台のデータ通信装置間で暗号化されずに送受信されるデータは、特定データであり、暗号鍵や暗号鍵生成の基となる基礎値は送受信されないので、暗号鍵を第三者に入手される可能性を低くすることができる。
【0017】
また、仮に、第三者が2台のデータ通信装置が有するのと同じカウンタを用意して、特定データを盗聴したとしても、この第三者は、それぞれのデータ通信装置がこの特定データを送信したタイミングまたは受信したタイミングを知ることができない。従って、この第三者は、それぞれのデータ通信装置のカウンタによって得られるカウンタ値を知ることができず、暗号鍵生成の基となる基礎値を知ることができない。従って、暗号鍵を第三者に入手される可能性を低くすることができる。
【0018】
なお、本発明の暗号鍵設定システムにおいて、前記2台のデータ通信装置は、それぞれ、前記暗号鍵生成部により生成された前記暗号鍵を用いて、送信する前記通信データの暗号化及び受信した前記通信データの復号化を行う暗号化/復号化処理部を有し、前記2台のデータ通信装置のうち、少なくとも一方のデータ通信装置において、前記暗号化/復号化処理部が、前記暗号鍵を用いて受信した前記通信データを復号化できない場合、前記暗号鍵生成部は、生成した前記暗号鍵に代えて、前記基礎値を補正して得られる値に基づき、新たな前記暗号鍵を生成することが好ましい。
【0019】
前述のように、データ通信装置において、処理に要する時間にはばらつきがあるので、それぞれのデータ通信装置が有するカウンタのうち、一方のカウンタにおいてのみ、決定された桁において桁上がりが生じる場合がある。
この場合、2台のデータ通信装置において、基礎値は一致しないので、この基礎値に基づいて生成される暗号鍵も、2台のデータ通信装置で一致しない。
そこで、上述のように、少なくとも一方のデータ通信装置において、この基礎値を補正することで、互いに基礎値を一致させることができ、2台のデータ通信装置で、同じ暗号鍵を生成して設定することが可能となる。
【0020】
なお、本発明の暗号鍵設定システムにおいて、前記2台のデータ通信装置は、それぞれ、前記暗号鍵生成部により生成された前記暗号鍵を用いて、送信する前記通信データの暗号化及び受信した前記通信データの復号化を行う暗号化/復号化処理部を有し、前記2台のデータ通信装置のうち、少なくとも一方のデータ通信装置において、前記暗号化/復号化処理部が、前記暗号鍵を用いて受信した前記通信データを復号化できない場合、前記桁決定部は、前記決定した桁に代えて、前記決定した桁を減らすことにより得られる桁を新たに決定し、前記暗号鍵生成部は、生成した前記暗号鍵に代えて、前記カウンタ値のうち、前記桁決定部により新たに決定された桁で示される基礎値に基づき、新たな前記暗号鍵を生成することが好ましい。
【0021】
前述のように、データ通信装置において、処理に要する時間にはばらつきがあるので、2台のデータ通信装置において、前述のカウンタ値の誤差が一致せず、誤差の生じた桁が異なる場合がある。
この場合、決定される桁が異なるので、これら桁で示される基礎値は互いに一致しない。従って、これら基礎値に基づいて生成される暗号鍵も互いに一致しない。
そこで、上述のように、少なくとも一方のデータ通信装置において、この決定された桁を減らすようにすることで、2台のデータ通信装置において、決定される桁が一致して、基礎値が一致する可能性が高くなる。従って、2台のデータ通信装置において、同じ暗号鍵を生成して設定する可能性が高くなる。
【0022】
なお、本発明の暗号鍵設定システムにおいて、前記通信路は、無線LANにより構成される通信路であり、前記2台のデータ通信装置は、前記無線LAN用の中継器であるアクセスポイント、及び前記無線LANに接続可能なクライアントであってもよい。
【0023】
無線LANのアクセスポイント及びクライアントに同じ暗号鍵を設定するために、アクセスポイントに設定された暗号鍵を、無線LANを介してクライアントに送信して設定する場合、無線LANの電波は傍受され易いので、第三者に暗号鍵を含むデータが盗聴されて暗号鍵が入手される可能性が高い。
そこで、本発明の暗号鍵設定システムを用いることで、第三者に入手される可能性を低くして、同じ暗号鍵をアクセスポイント及びクライアントに設定することができる。
【0024】
なお、本発明は、上述した暗号鍵設定システムの他、データ通信装置として実現することも可能である。また、上述した装置発明の態様に限ることなく、暗号鍵設定方法などの方法発明としての態様で実現することも可能である。さらには、それら方法や装置を構成するためのコンピュータプログラムとしての態様や、そのようなコンピュータプログラムを記録した記録媒体としての態様や、上記コンピュータプログラムを含み搬送波内に具現化されたデータ信号など、種々の態様で実現することも可能である。
【0025】
本発明をコンピュータプログラムまたはそのプログラムを記録した記録媒体等として構成する場合には、暗号鍵設定システムを制御するプログラム全体として構成するものとしてもよいし、本発明の機能を果たす部分のみを構成するものとしてもよい。また、記録媒体としては、ROMカートリッジ、パンチカード、バーコードなどの符合が印刷された印刷物、コンピュータの内部記憶装置(RAMやROMなどのメモリ)および外部記憶装置などコンピュータが読み取り可能な種々の媒体を利用できる。
【発明を実施するための最良の形態】
【0026】
以下、本発明を実施するための最良の形態を実施例に基づいて以下の順序で説明する。
A.実施例:
A1.システムの概要:
A2.初期暗号鍵設定処理:
A3.実施例の効果:
B.変形例:
B1.変形例1:〜B8.変形例8:
【0027】
A.実施例:
A1.システムの概要:
図1は、本発明の一実施例である暗号鍵設定システムの概要構成を示す説明図である。
暗号鍵設定システム1000は、アクセスポイントAPとクライアントCLとから成る。これらアクセスポイントAP及びクライアントCLは、IEEE802.11b規格に準拠した無線LAN機器である。そして、クライアントCLは、アクセスポイントAPからの無線LAN通信の電波が届く範囲(通信エリアAR)に設置され、アクセスポイントAPとクライアントCLとで無線LANを構成している。
ここで、アクセスポイントAPは、前述の無線LANの他、有線LAN900にも接続されており、クライアントCLが、他のクライアント(図示省略)や、有線LAN900上のサーバ(図示省略),有線LAN900を介して接続されるインターネットINT上のサーバ(図示省略)などとの間でやりとりするデータを中継する。
【0028】
この暗号鍵設定システム1000は、アクセスポイントAPとクライアントCLとが、WEPキーやMACアドレス等を含むデータを無線LANを介して互いにやりとりして、セキュリティに必要な設定(以下、「セキュリティ設定」と呼ぶ。)を行うにあたり、このやりとりされるデータを暗号化及び復号化するために用いられる暗号鍵(以下、「初期暗号鍵」と呼ぶ。)を、アクセスポイントAPとクライアントCLとに設定するシステムである。
【0029】
ここで、この初期暗号鍵は、暗号化及び復号化で同じ暗号鍵を用いる、いわゆる秘密鍵暗号化方式における暗号鍵であり、暗号鍵設定システム1000は、アクセスポイントAPとクライアントCLとに、それぞれ同じ初期暗号鍵を設定する。
【0030】
図2は、本実施例におけるアクセスポイントAPの概要構成を示す説明図である。
アクセスポイントAPは、主として、CPU10,メモリ11,無線LANインタフェース部12,有線LANインタフェース部13を備えており、それぞれ内部バス15に接続されている。ここで、無線LANインタフェース部12は、アクセスポイントAPを無線LANに接続するためのインタフェースから成り、主として、電波を送受信するための送信機及び受信機や、アンテナ等を備えている。また、有線LANインタフェース部は、アクセスポイントAPを有線LAN900に接続するためのインタフェースから成る。
【0031】
前述のメモリ11には、初期状態において、初期暗号鍵の設定に関するプログラムと、カウンタプログラムと、仮暗号鍵KKと、鍵利用値決定データKDと、が格納されている。
【0032】
そして、前述のCPU10は、前述の初期暗号鍵の設定に関するプログラムを実行することにより、暗号鍵設定部10a,カウンタ制御部10b,暗号化/復号化処理部10c,データ送受信部10dとして機能し、また、前述のカウンタプログラムを実行することにより、カウンタCAとして機能する。なお、前述の暗号鍵設定部10aは、請求項に記載の桁決定部及び暗号鍵生成部に相当する。
【0033】
前述の仮暗号鍵KKは、アクセスポイントAPの出荷前にメモリ11に格納される。なお、この仮暗号鍵KKは、クライアントCLや他のアクセスポイントなど、出荷される無線LAN機器において、共通してメモリに格納される暗号鍵である。従って、多くの無線LAN機器において共通して用いられることから、第三者に入手される可能性が高い。
そこで、この仮暗号鍵KKは、初期暗号鍵がアクセスポイントAP及びクライアントCLに設定されるまでの間、仮の暗号鍵として、アクセスポイントAPとクライアントCLとの間でやりとりされるデータを暗号化及び復号化するのに用いられる。
なお、前述の初期暗号鍵は、この仮暗号鍵KKの一部を、或る値(以下、「鍵利用値」と呼ぶ。)に置き換えて生成される。従って、この鍵利用値が同じであれば、同じ初期暗号鍵が生成される。
【0034】
また、前述の鍵利用値決定データKDは、アクセスポイントAPとクライアントCLとで同じ鍵利用値を決定するために、アクセスポイントAPとクライアントCLとの間でやりとりされるデータである。
【0035】
図3は、本実施例におけるクライアントCLの概要構成を示す説明図である。
クライアントCLは、主として、コンピュータ100と、コンピュータ100に装着された無線LANアダプタ101と、を備える。
コンピュータ100は、主として、CPU102,メモリ103,ハードディスク104,入出力インタフェース部105を備えており、それぞれ内部バス106に接続されている。コンピュータ100は、前述のCPU102などの他、キーボード107及びディスプレイ108を備えており、前述の入出力インタフェース部105は、これらキーボード107及びディスプレイ108が、それぞれCPU102等とデータをやりとりするためのインタフェースから成る。
【0036】
そして、前述のメモリ103には、初期状態において仮暗号鍵KK及び鍵利用値決定データKDが格納されている。これら仮暗号鍵KK及び鍵利用値決定データKDは、上述したクライアントCLのメモリ11に格納された仮暗号鍵KK及び鍵利用値決定データKDと同じである。
【0037】
一方、無線LANアダプタ101は、主として、電波を送受信するための送信機及び受信機や、アンテナ等を備えており、コンピュータ100の内部バス106に接続されている。
【0038】
コンピュータ100では、所定のオペレーティングシステムの下、初期暗号鍵の設定に関するプログラムとカウンタプログラムとが実行される。なお、このオペレーティングシステムには、各種ドライバが組み込まれ、無線LANアダプタ101,キーボード107ディスプレイ108,が、それぞれ制御される。
そして、前述の初期暗号鍵の設定に関するプログラムが起動され、メモリ103にロードされると、CPU102は、このプログラムを実行することにより、暗号鍵設定部102a,カウンタ制御部102b,暗号化/復号化処理部102c,データ送受信部102dとして機能することとなる。また、前述のカウンタプログラムが起動され、メモリ103にロードされると、CPU102は、このプログラムを実行することにより、カウンタCCとして機能することとなる。なお、前述の暗号鍵設定部102aは、請求項に記載の桁決定部及び暗号鍵設定部に相当する。
【0039】
ここで、前述のカウンタCA及びカウンタCCについて、詳細を説明する。なお、カウンタCA及びカウンタCCは同じカウンタであるが、説明の便宜上、異なる符合を付している。
【0040】
図4は、本実施例におけるカウンタCA及びカウンタCCを示す説明図である。
カウンタCA及びカウンタCCは、始動してからの経過時間を10ns単位でカウントするカウンタであり、図4に示すように、第1桁(最下位桁)〜第16桁(最上位桁)までの16桁を有する2進法のカウンタである。これらカウンタCA及びカウンタCCにおいて、第1桁は、10ns(ナノ秒)でインクリメント(0から1、又は1から0への値の変化)し、第2桁は、20nsでインクリメントする。そして、第3桁,第4桁,...と、インクリメントする時間間隔が倍々に延び、第16桁は、およそ0.33s(秒)でインクリメントする。図4では、始動してから30ns後のカウンタCA及びカウンタCCを示している。
【0041】
A2.初期暗号鍵設定処理:
図5は、本実施例におけるアクセスポイントAP及びクライアントCLで実行される、初期暗号鍵設定処理の手順を示すフローチャートである。
今、図1に示す通信エリアARにクライアントCLが設置され、アクセスポイントAPとクライアントCLとにおいて、互いを無線LAN通信を行う機器であると認識するための動作(アソシエーション)が完了し、アクセスポイントAPとクライアントCLとの間で、無線LANを介した通信が可能な状態である。なお、アクセスポイントAP及びクライアントCLにおいて、暗号化及び復号化するために使用する暗号鍵として、仮暗号鍵KKが設定されている。
【0042】
まず、アクセスポイントAPは、クライアントCLとの間で、鍵利用値決定データKDを所定回数だけ繰り返して送受信し、鍵利用値決定データKDを受信する度に、そのときのカウンタCAの値をメモリ11に記憶させる(ステップS202)。
一方、クライアントCLにおいても同様な処理が行われる。すなわち、クライアントCLは、アクセスポイントAPとの間で、鍵利用値決定データKDを所定回数だけ繰り返して送受信し、鍵利用値決定データKDを受信する度に、そのときのカウンタCCの値をメモリ103に記憶させる(ステップS302)。
【0043】
前述のアクセスポイントAPにおけるステップS202の処理、及びクライアントCLにおけるステップS302の処理について、図2,図3,図6を用いて、具体的に説明する。
【0044】
図6は、アクセスポイントAPとクライアントCLとの間で、鍵利用値決定データKDを送受信する様子を模式的に示す説明図である。
図6において、時間軸Tを上から下への方向で示している。なお、アクセスポイントAP及びクライアントCLにおいて、鍵利用値決定データKDを繰り返し送受信する回数は、それぞれ、予め3回と定められている。そして、図6において、鍵利用値決定データKDを、1〜3回目に受信する際のカウンタCAの値及びカウンタCCの値を、それぞれ示す。
【0045】
まず、図2に示すアクセスポイントAPの暗号鍵設定部10aは、暗号化/復号化処理部10cに、鍵利用値決定データKDの暗号化を指示し、暗号化/復号化処理部10cは、メモリ11から鍵利用値決定データKDと、暗号鍵として設定されている仮暗号鍵KKとを読み出し、鍵利用値決定データKDを仮暗号鍵KKで暗号化する。そして、アクセスポイントAPのデータ送受信部10dは、暗号化された鍵利用値決定データKDをクライアントCLに送信し、アクセスポイントAPのカウンタ制御部10bは、鍵利用値決定データKDの送信の際にカウンタCAをリセットして始動させる。
【0046】
一方、図3に示すクライアントCLのデータ送受信部102dは、暗号化された鍵利用桁決定データKDを受信し、メモリ103に記憶させる。そして、クライアントCLの暗号化/復号化処理部102cは、メモリ103から、暗号化された鍵利用値決定データKDと、暗号鍵として設定されている仮暗号鍵KKとを読み出し、仮暗号鍵KKを用いて、暗号化された鍵利用値決定データKDに対して復号化を施す。
【0047】
復号化されたデータが鍵利用値決定データKDであるので、クライアントCLの暗号鍵設定部102aは、暗号化/復号化処理部102cに、鍵利用値決定データKDの暗号化を指示し、暗号化/復号化処理部102cは、メモリ103から鍵利用値決定データKDと仮暗号鍵KKとを読み出し、鍵利用値決定データKDを仮暗号鍵KKで暗号化する。そして、クライアントCLのデータ送受信部102dは、暗号化された鍵利用値決定データKDをアクセスポイントAPに送信し、クライアントCLのカウンタ制御部102bは、鍵利用値決定データKDの送信の際にカウンタCCをリセットして始動させる。
【0048】
クライアントCLから送信された、暗号化された鍵利用値決定データKDを受信したアクセスポイントAPのデータ送受信部10dは、この暗号化された鍵利用値決定データKDをメモリ11に記憶させる。そして、アクセスポイントAPの暗号化/復号化処理部10cは、暗号化された鍵利用値決定データKDと仮暗号鍵KKとをメモリ11から読み出し、仮暗号鍵KKを用いて、暗号化された鍵利用値決定データKDに対して復号化を施す。
【0049】
復号化されたデータが鍵利用値決定データKDであるので、アクセスポイントAPのカウンタ制御部10bは、始動させたカウンタCAを停止させ、暗号鍵設定部10aは、図6に示す、このときのカウンタCAの値(1回目カウンタ値)をメモリ11に記憶させる。
このようにして、鍵利用値決定データKDの送受信が1回行われる。そして、所定回数の3回に達していないので、アクセスポイントAPでは、再び前述のようにして、鍵利用値決定データKDを暗号化してクライアントCLに送信すると共に、カウンタCAをリセットして始動させる。
【0050】
一方、再び暗号化された鍵利用値決定データKDを受信したクライアントCLでは、前述のようにして、仮暗号鍵KKを用いて暗号化された鍵利用値決定データKDに対して復号化を施す。復号化されたデータが鍵利用値決定データKDであるので、クライアントCLのカウンタ制御部102bは、始動させたカウンタCCを停止させ、暗号鍵設定部102aは、図6に示す、このときのカウンタCCの値(1回目カウンタ値)をメモリ103に記憶させる。
【0051】
以上の処理をアクセスポイントAPとクライアントCLとで3回繰り返す。その結果、図6に示すような、1〜3回目に鍵利用値決定データKDを受信した際のカウンタ値(以下、「1〜3回目のカウンタ値」と呼ぶ。)が、アクセスポイントAPのメモリ11及びクライアントCLのメモリ103に、それぞれ記憶される。
【0052】
図5に戻って、次に、アクセスポイントAPにおいて、暗号鍵設定部10aは、メモリ11に記憶させた3つのカウンタ値を読み出し、これら3つのカウンタ値に基づいて、鍵利用値を決定し、メモリ11に記憶させる(ステップS204)。
一方、クライアントCLにおいても、同様に、暗号鍵設定部102aは、メモリ103に記憶させた3つのカウンタ値を読み出し、これら3つのカウンタ値に基づいて、鍵利用値を決定し、メモリ103に記憶させる(ステップS304)。
【0053】
前述のアクセスポイントAPにおけるステップS204の処理、及びクライアントCLにおけるステップS304の処理について、図7を用いて具体的に説明する。
【0054】
図7は、カウンタ値に基づく鍵利用値の決定方法を模式的に示す説明図である。
図7において、左側は、アクセスポイントAPにおいて、メモリ11に記憶された1〜3回目のカウンタ値と、これら3つのカウンタ値から決定される鍵利用値と、を示し、右側は、クライアントCLにおいて、メモリ103に記憶された1〜3回目のカウンタ値と、これら3つのカウンタ値から決定される鍵利用値と、を示す。
【0055】
前述の1〜3回目のカウンタ値は、それぞれ、時間に換算すると、鍵利用値決定データKDを送信してから受信するまでの往復所要時間に相当する。
ここで、この往復所要時間は、アクセスポイントAP〜クライアントCL間における電波の往復伝搬時間と、アクセスポイントAPにおける処理時間と、クライアントCLにおける処理時間と、から成る。そして、この電波の往復伝搬時間については、同じデータが同じ距離だけ伝搬することから1〜3回目でほぼ同じであり、また、アクセスポイントAP及びクライアントCLにおける処理時間については、同じ処理を繰り返すことから1〜3回でほぼ同じになる。
従って、往復所要時間は1〜3回目でほぼ等しくなり、また、アクセスポイントAPとクライアントCLとでもほぼ等しくなることとなる。
【0056】
しかし、アクセスポイントAP及びクライアントCLにおける処理時間については、アクセスポイントAPのCPU10の処理負荷の度合いや、クライアントCLのCPU102の処理負荷の度合い等によってばらつきがあるため、往復所要時間は1〜3回目で完全には一致しない。従って、1〜3回目のカウンタ値は完全に一致せず、下位側の桁において、誤差が生じることとなる。
【0057】
ここで、アクセスポイントAPとクライアントCLとは、同一のシステムにおいて、同様な処理を行っているので、アクセスポイントAPとクライアントCLとで、前述の誤差の生じる桁は、ほぼ一致することとなる。
【0058】
従って、アクセスポイントAPとクライアントCLとで、1〜3回目のカウンタ値のうち、この誤差が生じた下位側の桁を除く、上位側の桁で示される値については、一致する可能性が高い。そこで、この値を鍵利用値として決定する。
【0059】
具体的には、まず、1〜3回目のカウンタ値の排他的論理和(XOR)を求める。その結果、得られたカウンタ値において0が続く上位の桁については、1〜3回目のカウンタ値で一致している。そして、これら上位の桁で示される、1〜3回目のカウンタ値で一致した値を鍵利用値として決定する。
例えば、図7に示す、アクセスポイントAPの1〜3回目のカウンタ値について、排他的論理和を求めると、得られたカウンタ値において、第16桁〜第5桁までの上位12桁で0が続くので、この上位12桁で示される「000010110101」を鍵決定値として決定する。なお、クライアントCL側においても、図7に示すように、上位12桁で示される「000010110101」を鍵利用値として決定するので、アクセスポイントAPとクライアントCLとで、同じ鍵利用値が決定される。
【0060】
以上のようにして、アクセスポイントAPとクライアントCLとで同じ鍵利用値が決定される可能性が高くなる。しかし、アクセスポイントAPとクライアントCLとで異なる鍵利用値が決定される場合がある。
【0061】
図8は、鍵利用値が異なる場合の、アクセスポイントAP及びクライアントCLにおける、カウンタ値の一例を示す説明図である。
図8において、左側は、アクセスポイントAPにおける1〜3回目のカウンタ値及び決定される鍵利用値を示し、右側は、クライアントCLにおける1〜3回目のカウンタ値及び決定される鍵利用値を示す。
【0062】
図8に示すように、アクセスポイントAPの1回目のカウンタ値とクライアントCLの1回目のカウンタ値とに、時間に換算して10nsの誤差が生じている。これは、前述の1〜3回目のカウンタ値における誤差と同様に、アクセスポイントAPのCPU10の処理負荷の度合いや、クライアントCLのCPU102の処理負荷の度合い等に起因する、アクセスポイントAP及びクライアントCLにおける処理時間のばらつきによるものである。
【0063】
そして、アクセスポイントAPにおいて、1回目から2回目、及び2回目から3回目のカウンタ値の誤差が、それぞれ+50nsであり、クライアントCLにおいて、1回目から2回目、及び2回目から3回目のカウンタ値の誤差が、それぞれ−50nsである。
【0064】
このようなカウンタ値の場合、図8に示すように、アクセスポイントAP側及びクライアントCL側において、それぞれ、上位12桁については、1〜3回目のカウンタ値で一致している。しかし、決定される鍵利用値については、アクセスポイントAPとクライアントCLとで異なっている。これは、アクセスポイントAPの1〜3回目のカウンタ値では、第6桁に桁上がりが生じているのに対して、クライアントCLの1〜3回目のカウンタ値では、この桁上がりが生じていないからである。
【0065】
このように、アクセスポイントAP又はクライアントCLの、いずれか一方の1〜3回目のカウンタ値においてのみ、排他的論理和を求めた結果0が続く上位の桁で桁上がりが生じた場合、鍵利用値が異なることとなる。
【0066】
このような場合、生成される初期暗号鍵も異なることとなる。そこで、図5に示す、アクセスポイントAPにおけるステップS206以降の処理、及びクライアントCLにおけるステップS306以降の処理を実行することにより、アクセスポイントAPとクライアントCLとで、鍵利用値を一致させ、同じ初期暗号鍵を生成するようにする。
【0067】
図5に戻って、アクセスポイントAPの暗号鍵設定部10aは、決定した鍵利用値と仮暗号鍵KKとをメモリ11から読み出し、仮暗号鍵KKの一部を鍵利用値と置き換えて初期暗号鍵を生成してメモリ11に記憶させ、暗号鍵として、仮暗号鍵KKに代えて、初期暗号鍵を設定する(ステップS206)。
同様に、クライアントCLの暗号鍵設定部102aは、決定した鍵利用値と仮暗号鍵KKとをメモリ103から読み出し、仮暗号鍵KKの一部を鍵利用値と置き換えて初期暗号鍵を生成してメモリ103に記憶させ、暗号鍵として、仮暗号鍵KKに代えて、初期暗号鍵を設定する(ステップS306)。
【0068】
次にアクセスポイントAPの暗号化/復号化処理部10cは、初期暗号鍵を用いて、CRC(Cyclic Redundancy Check)方式等によるチェックコードが付加された任意のデータに対し、暗号鍵として設定された初期暗号鍵を用いて暗号化を施す(ステップS208)。
【0069】
次に、アクセスポイントAPのデータ送受信部10dは、暗号化/復
号化処理部10cにより暗号化されたデータを無線LANを介してクライアントCLに送信する(ステップS210)。
【0070】
一方、クライアントCLにおいて、データ送受信部102dは、アクセスポイントAPから送信された暗号化データを受信し、メモリ103に記憶させる(ステップS308)。
【0071】
次に、クライアントCLの暗号鍵設定部102a及び暗号化/復号化処理部102cは、クライアントCLにおいて設定した初期暗号鍵を、アクセスポイントAPで設定された初期暗号鍵と一致させるように修正する処理(以下、「クライアント側初期暗号鍵修正処理」と呼ぶ。)を実行する(ステップS310)。
【0072】
図9は、クライアント側初期暗号鍵修正処理の手順を示すフローチャートである。
なお、以下において、説明の便宜上、アクセスポイントAPにおいて決定された鍵利用値を「鍵利用値KA」と呼び、クライアントCLにおいて決定された鍵利用値を「鍵利用値KC」と呼ぶ。
【0073】
まず、クライアントCLの暗号化/復号化処理部102cは、メモリ103から、受信した暗号化データと設定された初期暗号鍵とを読み出して、この初期暗号鍵を用いて暗号化データに対して復号化を施す(ステップS402)。
【0074】
次に、クライアントCLの暗号鍵設定部102aは、復号化されたデータに基づき、CRC方式等によるチェックコードを算出し、予めデータに付加されたチェックコードと一致するか否かを判定する(ステップS404)。算出したチェックコードが、予めデータに付加されたチェックコードと一致する場合、データの復号化は成功しており、アクセスポイントAPが設定した初期暗号鍵と、クライアントCLが設定した初期暗号鍵と、は一致していることになる。
そして、この場合、クライアントCLが設定した初期暗号鍵を修正する必要がないので、クライアント側初期暗号鍵修正処理は終了する。
【0075】
一方、算出したチェックコードが、予めデータに付加されたチェックコードと一致しない場合、データは復号化されておらず、アクセスポイントAPが設定した暗号鍵と、クライアントCLが設定した暗号鍵と、は一致していないことになる。そして、この場合、アクセスポイントAPにおいて決定された鍵利用値KAと、クライアントCLにおいて決定された鍵利用値KCと、は異なっている。
【0076】
そこで、この場合、クライアントCLの暗号鍵設定部102aは、鍵利用値KCに対する鍵利用値KAの想定される差分値Δkを、メモリ103に記憶し(ステップS408)、鍵利用値KCに、この差分値Δkを足し合わせて補正して(ステップS410)、この補正した鍵利用値(KC+Δk)を、仮暗号鍵KKの一部と置き換えて、初期暗号鍵を再度生成して暗号鍵として設定する(ステップS412)。
そして、クライアントCLの暗号化/復号化処理部102cは、この再度設定された初期暗号鍵を用いて、受信した暗号化データに復号化を施し(ステップS402)、チェックコードが一致するか否かを再度判定する(ステップS404)。
【0077】
ここで、鍵利用値KAに対する鍵利用値KCの差分値は、鍵利用値KA及び鍵利用値KCの下位の2桁程度の差分である場合が多いことを、発明者は実験的に見いだした。従って、差分値Δkを、便宜上10進法で表して−2,−1,+1,+2と順次定め、鍵利用値KCを補正し、初期暗号鍵を生成するようにすれば、差分値Δkがいずれかの値の場合に、復号化が成功してチェックコードが一致する可能性が高い。
【0078】
そこで、クライアントCLの暗号鍵設定部102aは、ステップS408の処理の前に、差分値Δkとして、これら−2,−1,+1,+2の全ての値を用いて鍵利用値KCを補正したか否かを判定し(ステップS406)、全ての値を用いて鍵利用値KCを補正していない場合、次の順序となる値をΔkとして鍵利用値KCを補正するようにする。
【0079】
具体的には、例えば、差分値Δkが「−1」である場合、図8に示す鍵利用値KC「000010110101」に「−1」を足し合わせると、「000010110100」となり、図8に示す鍵利用値KAと一致しない。そこで、差分値Δkを、次の順序となる「+1」とし、鍵利用値KC「000010110101」に「+1」を足し合わせる補正を行う。
なお、この補正の結果、鍵利用値KCは「000010110110」となり、鍵利用値KAと一致し、クセスポイントAPが設定した暗号鍵と、クライアントCLが設定した暗号鍵と、は一致している。
【0080】
一方、差分値Δkとして、−2,−1,+1,+2の全ての値を用いて鍵利用値KCを補正したにも関わらず、ステップS404の処理において、チェックコードが一致しない場合、差分値Δkは、10進法で表して−3以下もしくは+3以上となっている。
そして、この場合、クライアントCLの暗号鍵設定部102aは、暗号鍵として、初期暗号鍵に代えて、再び仮暗号鍵KKを設定する(ステップS414)。
【0081】
図5に戻って、クライアントCLの暗号鍵設定部102aは、CRC方式等によるチェックコードが付加された任意のデータに対して暗号鍵を用いて暗号化を施し(ステップS312)、データ送受信部102dは、この暗号化データを無線LANを介してアクセスポイントAPに送信する(ステップS314)。
【0082】
一方、この暗号化データを受信したアクセスポイントAPのデータ送受信部10dは、この暗号化データをメモリ11に記憶させる(ステップS212)。
【0083】
ここで、上述したステップS312の処理で、クライアントCLが暗号化するのに用いる暗号鍵は、クライアント側初期暗号鍵修正処理の結果、アクセスポイントAPが設定した初期暗号鍵とクライアントCLが設定した初期暗号鍵とが一致した場合には、この初期暗号鍵であり、鍵利用値KCを補正してもなお、アクセスポイントAPが設定した初期暗号鍵とクライアントCLが設定した初期暗号鍵とが一致しない場合には、仮暗号鍵KKである。
【0084】
そして、アクセスポイントAPは、前述のクライアント側初期暗号鍵修正処理の結果は知らないので、以降の処理として、アクセスポイントAPに設定されている初期暗号鍵を用いて受信したデータに対して復号化を施し、復号化が成功したか否かを判定することで、アクセスポイントAPが設定した初期暗号鍵とクライアントCLが設定した暗号鍵とが一致したか否かを判定する。そして、復号化が成功せず、アクセスポイントAPが設定した初期暗号鍵とクライアントCLが設定した暗号鍵とが一致しなかったものと判定した場合、再度、初期暗号鍵設定処理を行うための準備として、初期暗号鍵に代えて、再び仮暗号鍵KKを暗号鍵として設定する処理(以下、「アクセスポイント側暗号鍵修正処理」と呼ぶ。)を実行する(ステップS214)。
【0085】
図10は、アクセスポイント側暗号鍵修正処理の手順を示すフローチャートである。
まず、アクセスポイントAPの暗号化/復号化処理部10cは、メモリ11から、受信した暗号化データと設定された初期暗号鍵とを読み出して、この初期暗号鍵を用いて暗号化データに対して復号化を施す(ステップS502)。
【0086】
次に、アクセスポイントAPの暗号鍵設定部10aは、復号化されたデータに基づき、CRC方式等によるチェックコードを算出し、予めデータに付加されたチェックコードと一致するか否かを判定する(ステップS504)。算出したチェックコードが、予めデータに付加されたチェックコードと一致する場合、データの復号化は成功しており、従って、アクセスポイントAPの暗号鍵設定部10aは、アクセスポイントAPにおいて設定された初期暗号鍵と、クライアントCLにおいて設定された初期暗号鍵と、は一致していると判定する。
そして、この場合、アクセスポイント側暗号鍵修正処理は終了する。
【0087】
一方、算出したチェックコードが、予めデータに付加されたチェックコードと一致しない場合、データの復号化は成功しておらず、従って、アクセスポイントAPの暗号鍵設定部10aは、アクセスポイントAPにおいて設定された初期暗号鍵と、クライアントCLにおいて設定された初期暗号鍵とが一致していないと判定する。
【0088】
そして、この場合、後述するように、初期暗号鍵設定処理が再度実行されることとなるが、初期暗号鍵設定処理を行うにあたり、暗号鍵として仮暗号鍵KKが設定されていなくてはならないので、アクセスポイントAPの暗号鍵設定部10aは、暗号鍵として、設定されている初期暗号鍵に代えて、再び仮暗号鍵KKを設定する(ステップS506)。
【0089】
図5に戻って、次に、アクセスポイントAPの暗号鍵設定部10aは、アクセスポイントAPとクライアントCLとで同じ初期暗号鍵が設定されたか否かを判定する(ステップS216)。前述のように、アクセスポイント側暗号鍵修正処理(ステップS214)において、算出したチェックコードが、予めデータに付加されたチェックコードと一致した場合、アクセスポイントAPとクライアントCLとで同じ初期暗号鍵が設定されたものと判定し、初期暗号鍵設定処理は終了する。
一方、算出したチェックコードが、予めデータに付加されたチェックコードと一致しなかった場合、アクセスポイントAPとクライアントCLとで異なる初期暗号鍵が設定されたものと判定する。そして、この場合、アクセスポイントAPでは、ステップS202の処理に戻り、再度、上述した初期暗号鍵設定処理を行う。
【0090】
一方、クライアントCLにおいても、暗号鍵設定部102aは、アクセスポイントAPとクライアントCLとで同じ暗号鍵が設定されたか否かを判定する(ステップS316)。
【0091】
前述したように、クライアント側初期暗号鍵修正処理(ステップS310)において、鍵利用値KCの補正なしに、算出したチェックコードが予めデータに付与されたチェックコードと一致した場合、又は、差分値Δkとして、−2,−1,+1,+2のいずれかの値を用いて鍵利用値KCを補正した結果、チェックコードが一致した場合、アクセスポイントAPとクライアントCLとで同じ初期暗号鍵が設定されたものと判定し、初期暗号鍵設定処理は終了する。
一方、差分値Δkとして、−2,−1,+1,+2の全ての値を用いて鍵利用値KCを補正したにも関わらず、算出したチェックコードが一致しない場合、アクセスポイントAPとクライアントCLとで異なる暗号鍵が設定されたものと判定する。そして、この場合、クライアントCLでは、ステップS302の処理に戻り、再度、上述した初期暗号鍵設定処理を行う。
【0092】
以上説明した初期暗号鍵設定処理の結果、アクセスポイントAPとクライアントCLとで、同じ初期暗号鍵が設定されることとなる。
【0093】
このようにして、アクセスポイントAPとクライアントCLとで、同じ初期暗号鍵を設定した後、アクセスポイントAPは、設定した初期暗号鍵を用いてWEPキーを含むデータを暗号化してクライアントCLに送信し、一方、クライアントCLは、設定した初期暗号鍵を用いて、受信したデータを復号化してWEPキーを入手する。
また、クライアントCLは、設定した初期暗号鍵を用いてMACアドレスを含むデータを暗号化してアクセスポイントAPに送信し、一方、アクセスポイントAPは、設定した初期暗号鍵を用いて、受信したデータを復号化してMACアドレスを入手する。
このようにして入手したWEPキーやMACアドレス等に基づいて、アクセスポイントAP及びクライアントCLにおいて、セキュリティ設定が行われる。
【0094】
A3.実施例の効果:
以上説明したように、暗号鍵設定システム1000を用いることで、ユーザは、アクセスポイントAPやクライアントCLに対し、手作業で設定することなく同じ初期暗号鍵を設定することが可能となる。
【0095】
また、暗号鍵設定システム1000において、初期暗号鍵を設定するためにアクセスポイントAPとクライアントCLとの間で送受信されるデータは、鍵利用値を決定するための鍵利用値決定データKDと、任意のデータを暗号化した暗号化データと、であり、鍵利用値や初期暗号鍵を含むデータは送受信されないので、初期暗号鍵を第三者に入手される可能性を低くすることができる。
【0096】
また、仮に、第三者が、カウンタCA及びカウンタCCと同じカウンタを用意した上で、鍵利用値決定データKDを盗聴したしても、この第三者は、アクセスポイントAP及びクライアントCLが、カウンタCA及びカウンタCCをリセットして始動させたタイミングを知ることができないので、鍵利用値を知ることができない。従って、初期暗号鍵を第三者に入手される可能性を低くすることができる。
【0097】
B.変形例:
なお、本発明は、上述の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において、種々の態様において実施することが可能であり、例えば以下のような変形も可能である。
【0098】
B1.変形例1:
上述の実施例では、カウンタCAの桁数とカウンタCCの桁数とは、共に16桁としたが、この16桁に限定するものではない。例えば、15桁や8桁のように少ない桁数であってもよいし、17桁や32桁のように多い桁数であってもよい。また、カウンタCAとカウンタCCとで桁数が異なっていても構わない。
また、カウンタCA及びカウンタCCは、共に始動してからの経過時間を10ns単位でカウントするものとしたが、このカウントする単位時間(以下、「時間精度」と呼ぶ。)は、10nsに限定するものではない。また、カウンタCAとカウンタCCとで、時間精度が異なってもよい。
以下、アクセスポイントの備えるカウンタとクライアントが備えるカウンタとで、桁数及び時間精度が異なる場合の処理について図11を用いて説明する。
【0099】
図11は、変形例1における、互いに桁数と時間精度とが異なる、アクセスポイントのカウンタCA'及びクライアントのカウンタCC'を示す説明図である。
図11において、左側は、カウンタCA'を示し、上部右側は、カウンタCC'を示す。
カウンタCA'は、第1桁〜第16桁の16桁を有するカウンタであり、時間精度は、10nsである。一方、カウンタCC'は、第1桁〜第8桁の8桁を有するカウンタであり、時間精度は、30nsである。
【0100】
このように、カウンタCA'とカウンタCC'とで、桁数及び時間精度が異なる場合、まず、アクセスポイント又はクライアントのいずれかが、初期暗号鍵設定処理を実行する前において、自分が備えるカウンタの桁数及び時間精度を相手に通知する。
そして、通知を受けた側は、自分が備えるカウンタの桁数及び時間精度が、通知された桁数及び時間精度と異なる場合、初期暗号鍵設定処理において、メモリに記憶させるカウンタ値を以下のようにする。すなわち、鍵利用値決定データKDを受信したときのカウンタ値を時間に換算し、換算した時間を、相手から通知された桁数及び時間精度のカウンタで示した場合のカウンタ値を求め、求めたカウンタ値をメモリに記憶させるようにする。
【0101】
具体的には、例えば、アクセスポイントがカウンタCA'の桁数及び時間精度を通知する場合、クライアントは、アクセスポイントからカウンタCA'の桁数「16」及び時間精度「10ns」を通知されることとなる。そして、クライアントにおいて鍵利用値決定データKDを受信したときのカウンタCC'の値が、図11の上部右側に示す値であった場合、まず、クライアントは、このカウンタ値を時間に換算して「510ns」を得る。次に、クライアントは、この510nsを、16桁を有する時間精度10nsのカウンタで示した場合のカウンタ値を求める。その結果、下部右側に示すようなカウンタ値がクライアントのメモリに記憶される。
このようにすることで、クライアントにおいて、アクセスポイントと同じカウンタを備えている場合と同じカウンタ値をメモリに記憶させることができ、上述した実施例と同様にして、アクセスポイントとクライアントとで同じ初期暗号鍵を設定することが可能となる。
【0102】
B2.変形例2:
上述した実施例では、図7又は図8に示すように、アクセスポイントAPとクライアントCLとで鍵利用値KA及び鍵利用値KCの桁数は一致していた。
しかし、アクセスポイントAP及びクライアントCLにおいて、メモリに記憶される1〜3回目のカウンタ値や、誤差の大きさによっては、鍵利用値の桁数が、アクセスポイントAPとクライアントCLとで異なる場合がある。
そこで、上述したクライアント側初期暗号鍵修正処理において行われる、鍵利用値KCに差分値Δkを足し合わせる補正に加えて、鍵利用値KCのうち、下位側の桁で示される値を除く補正を行うようにしてもよい。
以下、この鍵利用値KCのうち、下位側の桁で示される値を除く補正について図12を用いて説明する。
【0103】
図12は、鍵利用値の桁数がアクセスポイントAPとクライアントCLとで異なる場合の、アクセスポイントAP及びクライアントCLにおける、カウンタ値の一例を示す説明図である。
図12において、左側は、アクセスポイントAPにおける1〜3回目のカウンタ値及び決定される鍵利用値を示し、右側は、クライアントCLにおける1〜3回目のカウンタ値及び決定される鍵利用値を示す。
【0104】
クライアントCLにおける1〜3回目の各カウンタ値は、上位12桁が一致している。一方、アクセスポイントAPにおける1〜3回目の各カウンタ値については、1回目のカウンタ値においてのみ、第6桁に桁上がりが生じているため、第16桁〜第7桁の上位10桁が一致することとなる。従って、アクセスポイントAPとクライアントCLとで鍵利用値の桁数が異なっている。そして、アクセスポイントAPとクライアントCLとで鍵利用値の桁数が異なっているため、決定される鍵利用値も互いに異なっている。
なお、このように鍵利用値の桁数が異なっている場合、上述した鍵利用値KCに差分値Δkを足し合わせる補正を行っても、鍵利用値は一致しない。
【0105】
しかし、この場合、アクセスポイントAPとクライアントCLとで、上位10桁については、共に「0000101101」で一致している。そこで、クライアントCL側で、鍵利用値「000010110101」の下位の2桁で示される値「01」を除く補正を行うことにより、アクセスポイントAPとクライアントCLとで鍵利用値を一致させることが可能となる。
【0106】
具体的には、クライアントCLにおいて、鍵利用値KCに全ての差分値Δk(−2,−1,+1,+2)を足し合わせる補正を行っても、受信した暗号化データを復号化できない場合、鍵利用値から下位の1桁で示される値を除き、次に下位の2桁で示される値を除く、といったように、鍵利用値のうち、下位の桁から順に値を除いていく補正を行う。
そして、補正する度に、補正した鍵利用値で初期暗号鍵を再生成し、この再生成した初期暗号鍵で受信した暗号化データが復号化できるか否かを判定するようにする。
【0107】
なお、例えば、下位の2桁の値を除いてもなお、暗号化データが復号化できない場合、暗号鍵として、初期暗号鍵に代えて、仮暗号鍵KKを設定するようにして、クライアント側初期暗号鍵修正処理を終了させるようにしてもよい。この場合、アクセスポイントAP及びクライアントCLは、上述したように、再度初期暗号鍵設定処理を行うこととなる。
【0108】
B3.変形例3:
上述した実施例では、初期暗号鍵設定処理において、アクセスポイントAP及びクライアントCLは、鍵利用値決定データKDの1回の送受信(鍵利用値決定データKDを相手に送信し、その後、相手から鍵利用値決定データKDを受信すること)毎にカウンタCA及びカウンタCCを停止させ、リセットしていたが、これに代えて、鍵利用値決定データKDの複数回の送受信を1セットとし、1セット毎に、カウンタCA及びカウンタCCを停止させ、リセットするようにしてもよい。
このようにすることで、充分に大きな鍵利用値を確保できると共に、カウント精度を上げることが可能となる。なお、複数セット繰り返すことで、アクセスポイントAP及びクライアントCLにおいて、それぞれ複数のカウンタ値をメモリに記憶することができるので、上述した実施例と同様にして、アクセスポイントAP及びクライアントCLで、それぞれ鍵利用値を決定することができる。
【0109】
また、アクセスポイントAPとクライアントCLとの間で鍵利用値決定データKDの送受信が行われている間は、カウンタCA及びカウンタCCを停止せず、鍵利用値決定データKDを受信する度に、そのときのカウンタCA及びカウンタCCの値をメモリに記憶するようにしてもよい。
このようにしても、記憶したカウンタ値の差分を求めることにより、上述した鍵利用値決定データKDを送信してから受信するまでの往復所要時間に相当するカウンタ値を求めることができる。従って、上述した実施例と同様にして、アクセスポイントAP及びクライアントCLで、それぞれ鍵利用値を決定することができる。
【0110】
B4.変形例4:
上述した実施例では、初期暗号鍵設定処理において、鍵利用値決定データKDを最初に送信するのはアクセスポイントAPであったが、クライアントCLであっても構わない。
また、鍵利用値決定データKDの送受信を所定回数だけ行った後、暗号化データを最初に送信するのはアクセスポイントAPであったが、クライアントCLであっても構わない。なお、この場合、アクセスポイントAPにおいて、上述したクライアント側初期暗号鍵修正処理を行い、クライアントCLにおいて、上述したアクセスポイント側暗号鍵修正処理を行うようにすればよい。
【0111】
B5.変形例5:
上述した実施例では、暗号鍵設定システム1000におけるアクセスポイントAPとクライアントCLとは、IEEE802.11b規格に準拠した無線LAN機器であるとしたが、IEEE802.11aやIEEE802.11g等、他の規格に準拠した無線LAN機器であってもよい。
【0112】
また、上述の実施例において、暗号鍵設定システム1000は、無線LAN機器であるアクセスポイントAPとクライアントCLとから成るものとしたが、これに限らない。例えば、有線LANやインターネット等のネットワークを介して通信を行う、端末やサーバ等で構成しても構わない。また、LANやインターネット等のネットワークを介さず、1対1の接続により通信を行う、端末やサーバ等で構成しても構わない。
このようにしても、通信路上でやりとりされるデータを暗号化/復号化するための暗号鍵を、第三者に入手される可能性を低くして、これら端末やサーバ等に設定することが可能となる。
【0113】
B6.変形例6:
上述した実施例では、アクセスポイントAP及びクライアントCLにおいて、鍵利用値決定データKDを繰り返し送受信する回数は、それぞれ、予め3回と定められていたが、この回数は3回に限定されるものではない。
【0114】
B7.変形例7:
上述した実施例では、初期暗号鍵は、仮暗号鍵KKの一部を鍵利用値で置き換えて生成するものとしたが、これに限らない。鍵利用値に基づき、周知のRC4(Rivest'sCipher4)などの暗号化アルゴリズムにより生成するようにしてもよい。
【0115】
B8.変形例8:
上述した実施例において、ハードウェアによって実現されていた構成の一部を、ソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアによって置き換えるようにしてもよい。例えば、カウンタCA及びカウンタCCをハードウェア回路で構成するようにしてもよい。
【図面の簡単な説明】
【0116】
【図1】本発明の一実施例である暗号鍵設定システムの概要構成を示す説明図。
【図2】本実施例におけるアクセスポイントAPの概要構成を示す説明図。
【図3】本実施例におけるクライアントCLの概要構成を示す説明図。
【図4】本実施例におけるカウンタCA及びカウンタCCを示す説明図。
【図5】本実施例におけるアクセスポイントAP及びクライアントCLで実行される、初期暗号鍵設定処理の手順を示すフローチャート。
【図6】アクセスポイントAPとクライアントCLとの間で、鍵利用値決定データKDを送受信する様子を模式的に示す説明図。
【図7】カウンタ値に基づく鍵利用値の決定方法を模式的に示す説明図。
【図8】鍵利用値が異なる場合の、アクセスポイントAP及びクライアントCLにおける、カウンタ値の一例を示す説明図。
【図9】クライアント側初期暗号鍵修正処理の手順を示すフローチャート。
【図10】アクセスポイント側暗号鍵修正処理の手順を示すフローチャート。
【図11】変形例1における、互いに桁数と時間精度とが異なる、アクセスポイントのカウンタCA'及びクライアントのカウンタCC'を示す説明図。
【図12】鍵利用値の桁数がアクセスポイントAPとクライアントCLとで異なる場合の、アクセスポイントAP及びクライアントCLにおける、カウンタ値の一例を示す説明図。
【符号の説明】
【0117】
10,102...CPU
10a,102a...暗号鍵設定部
10b,102b...カウンタ制御部
10c,102c...暗号化/復号化処理部
10d,102d...データ送受信部
11,103...メモリ
12...無線LANインタフェース
13...有線LANインタフェース
15,106...内部バス
100...コンピュータ
101...無線LANアダプタ
104...ハードディスク
105...入出力インタフェース部
107...キーボード
108...ディスプレイ
900...有線LAN
1000...暗号鍵設定システム
AP...アクセスポイント
AR...通信エリア
CA,CC,CA',CC'...カウンタ
CL...クライアント
INT...インターネット
KD...鍵利用値決定データ
KK...仮暗号鍵

【特許請求の範囲】
【請求項1】
互いに通信路を介して接続された2台のデータ通信装置を備え、前記2台のデータ通信装置間で送受信される通信データを暗号化及び復号化するために用いられる暗号鍵を、前記2台のデータ通信装置に、それぞれ設定する暗号鍵設定システムであって、
前記2台のデータ通信装置は、それぞれ、
相手方のデータ通信装置との間で、特定データの送受信を複数回行う送受信部と、
前記特定データの送受信に要する時間を所定の時間を単位として複数回計時すると共に、各回毎に、計時した時間を複数の桁のカウンタ値としてそれぞれ得るカウンタと、
前記カウンタによって各回毎に得られた前記カウンタ値の、対応する桁同士をそれぞれ比較して、示す値が一致する桁を決定する桁決定部と、
前記カウンタ値のうち、前記桁決定部により決定された桁で示される基礎値に基づき、前記暗号鍵を生成する暗号鍵生成部と、
を有する暗号鍵設定システム。
【請求項2】
請求項1に記載の暗号鍵設定システムであって、
前記2台のデータ通信装置は、それぞれ、前記暗号鍵生成部により生成された前記暗号鍵を用いて、送信する前記通信データの暗号化及び受信した前記通信データの復号化を行う暗号化/復号化処理部を有し、
前記2台のデータ通信装置のうち、少なくとも一方のデータ通信装置において、前記暗号化/復号化処理部が、前記暗号鍵を用いて受信した前記通信データを復号化できない場合、前記暗号鍵生成部は、生成した前記暗号鍵に代えて、前記基礎値を補正して得られる値に基づき、新たな前記暗号鍵を生成することを特徴とする暗号鍵設定システム。
【請求項3】
請求項1に記載の暗号鍵設定システムであって、
前記2台のデータ通信装置は、それぞれ、前記暗号鍵生成部により生成された前記暗号鍵を用いて、送信する前記通信データの暗号化及び受信した前記通信データの復号化を行う暗号化/復号化処理部を有し、
前記2台のデータ通信装置のうち、少なくとも一方のデータ通信装置において、前記暗号化/復号化処理部が、前記暗号鍵を用いて受信した前記通信データを復号化できない場合、前記桁決定部は、前記決定した桁に代えて、前記決定した桁を減らすことにより得られる桁を新たに決定し、前記暗号鍵生成部は、生成した前記暗号鍵に代えて、前記カウンタ値のうち、前記桁決定部により新たに決定された桁で示される基礎値に基づき、新たな前記暗号鍵を生成することを特徴とする暗号鍵設定システム。
【請求項4】
請求項1ないし請求項3のいずれかに記載の暗号鍵設定システムであって、
前記通信路は、無線LANにより構成される通信路であり、
前記2台のデータ通信装置は、前記無線LAN用の中継器であるアクセスポイント、及び前記無線LANに接続可能なクライアントであることを特徴とする暗号鍵設定システム。
【請求項5】
通信路を介して接続された他のデータ通信装置との間で、通信データの送受信を行うことが可能であり、前記通信データを暗号鍵を用いて暗号化及び復号化するデータ通信装置であって、
前記他のデータ通信装置との間で、特定データの送受信を複数回行う送受信部と、
前記特定データの送受信に要する時間を所定の時間を単位として複数回計時すると共に、各回毎に、計時した時間を複数の桁のカウンタ値としてそれぞれ得るカウンタと、
前記カウンタによって各回毎に得られた前記カウンタ値の、対応する桁同士をそれぞれ比較して、示す値が一致する桁を決定する桁決定部と、
前記カウンタ値のうち、前記桁決定部により決定された桁で示される基礎値に基づき、前記暗号鍵を生成する暗号鍵生成部と、
を備えるデータ通信装置。
【請求項6】
互いに通信路を介して接続された2台のデータ通信装置に対し、前記2台のデータ通信装置間で送受信される通信データを、暗号化及び復号化するために用いられる暗号鍵を、それぞれ設定するための暗号鍵設定方法であって、
(a)各々のデータ通信装置において、相手方のデータ通信装置との間で、特定データの送受信を複数回行う工程と、
(b)各々のデータ通信装置において、各々のデータ通信装置が備えるカウンタにより、前記特定データの送受信に要する時間を所定の時間を単位として複数回計時すると共に、各回毎に、計時した時間を複数の桁のカウンタ値としてそれぞれ得る工程と、
(c)各々のデータ通信装置において、前記カウンタによって各回毎に得られた前記カウンタ値の、対応する桁同士をそれぞれ比較して、示す値が一致する桁を決定する工程と、
(d)各々のデータ通信装置において、前記カウンタ値のうち、前記決定された桁で示される基礎値に基づき、前記暗号鍵を生成する工程と、
を備える暗号鍵設定方法。
【請求項7】
通信路を介して接続された他のデータ通信装置との間で通信データの送受信を行うことが可能な、データ通信装置として機能し得るコンピュータに対し、前記通信データを暗号化及び復号化するのに用いられる暗号鍵を設定するためのコンピュータプログラムであって、
前記他のデータ通信装置との間で、特定データの送受信を複数回行う機能と、
前記コンピュータが備えるカウンタにより、前記特定データの送受信に要する時間を所定の時間を単位として複数回計時すると共に、各回毎に、計時した時間を複数の桁のカウンタ値としてそれぞれ得る機能と、
前記カウンタによって各回毎に得られた前記カウンタ値の、対応する桁同士をそれぞれ比較して、示す値が一致する桁を決定する機能と、
前記カウンタ値のうち、前記決定された桁で示される基礎値に基づき、前記暗号鍵を生成する機能と、
を前記コンピュータに実現させるためのプログラム。
【請求項8】
請求項7に記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate