セキュア通信方法
【課題】再起動が発生しうる認証機器において、再起動が発生した場合においても、第三者に容易に初期値を推測されることがないナンスを生成することができ、しかも低コストで実現可能なセキュア通信方法を提供する。
【解決手段】認証機器Aは、乱数を発生される乱数発生手段1aと、ナンスNを生成するナンス生成手段2aとを備え、ナンス生成手段2aは、少なくとも認証機器Aの再起動時に、乱数発生手段1aで発生した乱数に基づいてナンスNの初期値N(1)を生成するものであり、認証機器Aが被認証機器Bを認証する際の初期値以外の新たなナンスN(n+1)は、前回の認証に用いられたナンスN(n)をインクリメントして生成されるものである。
【解決手段】認証機器Aは、乱数を発生される乱数発生手段1aと、ナンスNを生成するナンス生成手段2aとを備え、ナンス生成手段2aは、少なくとも認証機器Aの再起動時に、乱数発生手段1aで発生した乱数に基づいてナンスNの初期値N(1)を生成するものであり、認証機器Aが被認証機器Bを認証する際の初期値以外の新たなナンスN(n+1)は、前回の認証に用いられたナンスN(n)をインクリメントして生成されるものである。
【発明の詳細な説明】
【技術分野】
【0001】
本願発明は、通信ネットワークのセキュリティに関し、特に、互いに通信可能な通信機器間でナンスを用いた安全な認証を行うセキュア通信方法に関する。
【背景技術】
【0002】
互いに通信可能な通信機器に基づく通信ネットワークにおいて、被認証機器と認証機器との間で通信確立を行い、実際にデータの送受信を実施するにあたり、相手の通信機器が信頼関係を保証する機器であるか否かを確認した上で通信を行うことが、安全な通信ネットワークを構築するためには非常に重要である。そこで、安全な通信システムを実現するために、従来から様々な認証プロトコルや鍵配布プロトコルが用いられている。
【0003】
例えば、特許第3078841号公報に示されるように、機器Aと機器Bの二機器間での通信を行う場合に、それぞれの機器には予め秘密に共通の鍵Kabが配布されており、さらに安全な認証を行うためには、予測不能な一度だけ使用される数であるナンスNが用いられる。図14に示すように、このプロトコルの実行は、ブロック501から開始され、機器Aが、自機の名称Aと生成したナンスNabを機器Bに送る。機器Aからのメッセージを受け取る際に、共有キーKab、ナンスNab、機器Bによって生成される新ナンスNbaおよびメッセージ発信元である自機の名称Bに基づく認証関数AUTH(Kab、Nab、Nba、B)が、機器Bによって計算される。ブロック502を参照すると、この認証関数の値とナンスNbaが、機器Bから機器Aに送られる。機器Bからのメッセージを受け取る際に、機器Aは、認証関数AUTH(Kab、Nab、Nba、B)の値を再計算し、機器Bが送ったメッセージ内の対応物と比較する。これが一致すると、機器Bの認証がもたらされる。その後、機器Aは、両方向認証を完了するため、共有キーKab、ナンスNabおよびナンスNbaに基づくもう1つの認証関数ACK(Kab、Nab、Nba)の値を計算する。ブロック503を参照すると、認証関数ACK(Kab、Nab、Nba)の値が機器Aから機器Bへ送られる。機器Aからのメッセージを受け取る際に、機器Bは、認証関数ACK(Kab、Nab、Nba)の値を再計算し、機器Aが送ったメッセージの対応物と比較する。これが一致すると、機器Aの認証がもたらされる。
【0004】
ここで、生成時点より以前に生成されていない値を生成する方法を用いて、機器A及び機器Bによって予測不能な一度だけ使用される数であるナンスNが生成されて認証に使用されているが、ナンスNを一度だけ使用される状態に保つために、ナンスNには連続数を用いる方法と乱数を用いる方法とがある。通常、連続数を用いる方法では、あるビット幅内でナンスNの値を逐次インクリメントする。しかし、以前のナンスNの値を溜め込んで後でカウンタの一周後にタイミングよく再送する再送攻撃が他の機器より行われることも考えられるので、ビット幅はすぐに一杯にならないように大きな値でなければならない。
【0005】
また、特表2004−525558号公報に示されるように、ナンスNは、暗号的に強力なランダム数生成装置によって生成される乱数を使用することによって、データのレコード暗号化と暗号解読のための一意的な識別子としての役割を果たすことができる。
【特許文献1】特許第3078841号公報
【特許文献2】特表2004−525558号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上記従来例であるセキュア通信方法にあっては、連続数を用いる方法でナンスを生成する場合には、何らかの障害によって認証機器の電源またはソフトウェアの再起動が発生すれば、認証機器の再起動時にナンスは同じ値から開始されるので、第三者からの攻撃を受けやすくなる。
【0007】
そこで、認証機器の電源停止または内部ソフトウェアのリブート時に、過去に使用されたナンスをフラッシュメモリなどの記憶媒体に保持して、再起動時の新たにナンスを生成する場合に、記憶媒体に保持しているナンスの値を参照して、過去のナンスと同値とならないようにナンスを生成することが考えられる。しかし、フラッシュメモリなどの不揮発性メモリには、書き込み回数の制限があり、制限以上の書き込みを行うと動作が保証されないという問題がある。さらに、制限される書き込み回数が多いフラッシュメモリを用いることはコストがかかるといった問題もある。
【0008】
また、第三者が起動時に生成されるナンスを推論することを困難にするために、ナンス生成に乱数を用いる方法を採用することが考えられるが、再起動直後の初期値以外のナンス生成にも乱数を用いる場合には、ナンスは、第三者による推論の可能性を低減するために、高価な乱数発生装置を用いて十分にランダムにする必要があり、コストがかかるといった問題点がある。
【0009】
本願発明は、上記背景技術に鑑みて発明されたものであり、再起動が発生しうる認証機器において、再起動が発生した場合においても、第三者に容易に初期値を推測されることがないナンスを生成することができ、しかも低コストで実現可能なセキュア通信方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本願請求項1記載の発明では、ネットワークを介して認証機器が被認証機器を認証するセキュア通信方法であって、認証機器及び被認証機器は、前記認証に用いられる鍵を予め保持しており、認証機器は、乱数を発生させる乱数発生手段と、ナンスを生成するナンス生成手段と、前記鍵を用いたナンスの暗号化又は暗号化されたナンスの復号化の少なくとも一方を行うナンス暗号復号化手段と、ナンス又は暗号化されたナンスを被認証機器へ送信するナンス送信手段とを備え、被認証機器は、認証機器より送信されてきたナンスの前記鍵を用いた暗号化又は認証機器より送信されてきた前記暗号化されたナンスの前記鍵を用いた復号化を行う受信ナンス暗号復号化手段と、受信ナンス暗号復号化手段で暗号化されたナンス又は受信ナンス暗号復号化手段で復号化されたナンスを認証機器へ送信するナンス返信手段とを備え、乱数発生手段は、少なくとも認証機器の再起動時に、乱数を発生させるものであり、ナンス生成手段は、乱数発生手段で発生した乱数に基づいてナンスの初期値を生成するものであり、初期値以外の認証機器が被認証機器を認証する際の新たなナンスは、前回の認証に用いられたナンスをインクリメントして生成されるものであることを特徴としている。
【0011】
本願請求項2記載の発明では、ネットワークを介して認証機器が被認証機器を認証するセキュア通信方法であって、認証機器及び被認証機器は、前記認証に用いられる鍵を予め保持しており、認証機器は、現在の時刻を生成する時刻生成手段と、ナンスを生成するナンス生成手段と、前記鍵を用いたナンスの暗号化又は暗号化されたナンスの復号化の少なくとも一方を行うナンス暗号復号化手段と、ナンス又は暗号化されたナンスを被認証機器へ送信するナンス送信手段とを備え、被認証機器は、認証機器より送信されてきたナンスの前記鍵を用いた暗号化又は認証機器より送信されてきた前記暗号化されたナンスの前記鍵を用いた復号化を行う受信ナンス暗号復号化手段と、受信ナンス暗号復号化手段で暗号化されたナンス又は受信ナンス暗号復号化手段で復号化されたナンスを認証機器へ送信するナンス返信手段とを備え、時刻生成手段は、少なくとも認証機器の再起動時に、現在の時刻を生成するものであり、ナンス生成手段は、時刻生成手段で生成した時刻に基づいてナンスの初期値を生成するものであり、初期値以外の認証機器が被認証機器を認証する際の新たなナンスは、前回の認証に用いられたナンスをインクリメントして生成されるものであることを特徴としている。
【0012】
本願請求項3記載の発明では、ネットワークを介して認証機器が被認証機器を認証するセキュア通信方法であって、認証機器及び被認証機器は、前記認証に用いられる鍵を予め保持しており、認証機器は、乱数を発生させる乱数発生手段と、現在の時刻を生成する時刻生成手段と、ナンスを生成するナンス生成手段と、前記鍵を用いたナンスの暗号化又は暗号化されたナンスの復号化の少なくとも一方を行うナンス暗号復号化手段と、ナンス又は暗号化されたナンスを被認証機器へ送信するナンス送信手段とを備え、被認証機器は、認証機器より送信されてきたナンスの前記鍵を用いた暗号化又は認証機器より送信されてきた前記暗号化されたナンスの前記鍵を用いた復号化を行う受信ナンス暗号復号化手段と、受信ナンス暗号復号化手段で暗号化されたナンス又は受信ナンス暗号復号化手段で復号化されたナンスを認証機器へ送信するナンス返信手段とを備え、乱数発生手段は、少なくとも認証機器の再起動時に、乱数を発生させるものであり、時刻生成手段は、少なくとも認証機器の再起動時に、現在の時刻を生成するものであり、ナンス生成手段は、ナンスの上位桁に時刻生成手段で生成した時刻を用い、ナンスの下位桁に乱数発生手段で発生した乱数を用いてナンスの初期値を生成するものであり、初期値以外の認証機器が被認証機器を認証する際の新たなナンスは、前回の認証に用いられたナンスをインクリメントして生成されるものであることを特徴としている。
【0013】
本願請求項4記載の発明では、上記請求項3記載のセキュア通信方法において、認証機器は、所定時間当たりの再起動頻度を検出するリブート頻度検出手段を備え、ナンス生成手段は、リブート頻度検出手段によって検出された所定時間当たりの再起動頻度に基づいて、生成するナンスの初期値の上位桁と下位桁の桁数比率を変更するものであることを特徴としている。
【発明の効果】
【0014】
本願請求項1記載の発明のセキュア通信方法においては、認証機器及び被認証機器は、認証に用いられる鍵を予め保持し、認証機器は、乱数発生手段と、ナンス生成手段と、ナンス暗号復号化手段と、ナンス送信手段とを備え、被認証機器は、受信ナンス暗号復号化手段と、ナンス返信手段とを備えているので、認証機器は、共通鍵とナンスを用いることによって、被認証機器を認証することができる。
【0015】
さらに、ナンス生成手段は、少なくとも認証機器の再起動時に、乱数発生手段で発生した乱数に基づいてナンスの初期値を生成するので、第三者が容易にナンスの初期値を推測することを防ぐことができる。また、認証機器は、初期値以外のナンスの生成について、前回の認証に用いたナンスをインクリメントして新たにナンスを生成するものであるので、ナンス生成手段は、常に異なるナンスを生成することができ、ナンスを一度だけ使用される状態に保つことができる。また、初期値以外のナンスは、連続的な数を用いる方法でナンスを生成することが可能であり、乱数を用いる必要がなく、低コスト化を実現できる。
【0016】
本願請求項2記載の発明のセキュア通信方法においては、認証機器及び被認証機器は、認証に用いられる鍵を予め保持し、認証機器は、時刻生成手段と、ナンス生成手段と、ナンス暗号復号化手段と、ナンス送信手段とを備え、被認証機器は、受信ナンス暗号復号化手段と、ナンス返信手段とを備えているので、認証機器は、共通鍵とナンスを用いることによって、被認証機器を認証することができる。
【0017】
さらに、ナンス生成手段は、少なくとも認証機器の再起動時に、時刻生成手段で生成した現在の時刻に基づいてナンスの初期値を生成するので、過去の少なくとも認証機器の再起動時に生成したナンスの初期値と同値となることがなく、常に異なるナンスの初期値を生成することができる。また、認証機器が被認証機器を認証する際にナンスをインクリメントして新たにナンスを生成するものであるので、常に異なるナンスを生成することができ、ナンスを一度だけ使用される状態に保つことができる。また、初期値以外のナンスは、連続的な数を用いる方法でナンスを生成することが可能であり、低コスト化を実現できる。
【0018】
本願請求項3記載の発明のセキュア通信方法においては、認証機器及び被認証機器は、認証に用いられる鍵を予め保持し、認証機器は、乱数発生手段と、時刻生成手段と、ナンス生成手段と、ナンス暗号復号化手段と、ナンス送信手段とを備え、被認証機器は、受信ナンス暗号復号化手段と、ナンス返信手段とを備えているので、認証機器は、共通鍵とナンスを用いることによって、被認証機器を認証することができる。
【0019】
さらに、ナンス生成手段は、少なくとも認証機器の再起動時に、時刻生成手段で生成した現在の時刻に基づいてナンスの上位桁を生成し、乱数発生手段で発生した乱数に基づいてナンスの下位桁を生成するものであるので、ナンスの値が起動時に同じ値から開始することとはならず、常に異なるナンスの初期値を生成することができ、ナンスを一度だけ使用される状態に保つことができる。
【0020】
また、ナンス生成手段は、認証機器が被認証機器を認証する際に、ナンスをインクリメントして新たにナンスを生成するものであるので、インクリメントによるナンスの変化頻度の少ない上位桁を、変化が緩やかであり同値が生じない時刻に基づいて生成することによって、ナンスとして用いることができる数値の消費を抑えることができる。
【0021】
また、ナンス生成手段が、ナンスの下位桁を乱数に基づいて生成することによって、認証機器の再起動が非常に短時間で発生した場合に、ナンスの下位桁が近い値とならないようにすることができる。このことによって、過去にインクリメントによって生成されたナンスと、認証機器の起動によって新たに生成されたナンスの初期値とが同値になることを防ぐことができる。
【0022】
本願請求項4記載の発明のセキュア通信方法においては、特に、ナンス生成手段は、リブート頻度検出手段により検出された所定時間当たりの再起動頻度に基づいて、生成するナンスの上位桁と下位桁の桁数比率を変更するものであるので、再起動頻度が高い場合に、ナンスの上位桁の桁数比率を下げることができる。
【0023】
認証機器が短時間に再起動を繰り返した場合には、ナンス生成手段は、ナンスの初期値の生成を頻繁に行うこととなるために、インクリメントによるナンスの生成を行う回数が少なくなるので、下位桁の使用可能な数値を十分に使用することがなく、上位桁を早く消費していくこととなる。この場合に、ナンスの上位桁の桁数を減らして、下位桁の桁数を増やすことによって、ナンスとして使用可能な数値を有効に使用することができる。
【発明を実施するための最良の形態】
【0024】
図1〜図4は、本願発明の第1の実施形態であるセキュア通信方法を示している。例えば、図1に示すように、セキュア通信方法は、ネットワークを介して認証機器Aが被認証機器Bを認証するセキュア通信方法であって、認証機器A及び被認証機器Bは、前記認証に用いられる共通鍵Kaを予め保持しており、認証機器Aは、乱数を発生させる乱数発生手段1aと、ナンスNを生成するナンス生成手段2aと、前記共通鍵Kaを用いたナンスNの暗号化又は暗号化されたナンスE(N)の復号化の少なくとも一方を行うナンス暗号復号化手段3aと、ナンスN又は暗号化されたナンスE(N)を被認証機器Bへ送信するナンス送信手段4aとを備え、被認証機器Bは、認証機器Aより送信されてきたナンスNの前記共通鍵Kaを用いた暗号化又は認証機器Aより送信されてきた前記暗号化されたナンスE(N)の前記共通鍵Kaを用いた復号化を行う受信ナンス暗号復号化手段5bと、受信ナンス暗号復号化手段5bで暗号化されたナンスE(N)又は受信ナンス暗号復号化手段で復号化されたナンスNを認証機器Aへ送信するナンス返信手段6bとを備え、乱数発生手段1aは、少なくとも認証機器Aの再起動時に、乱数を発生させるものであり、ナンス生成手段2aは、乱数発生手段1aで発生した乱数に基づいてナンスNの初期値N(1)を生成するものであり、初期値N(1)以外の認証機器Aが被認証機器Bを認証する際の新たなナンスN(n+1)は、前回の認証に用いられたナンスN(n)をインクリメントして生成されるものである。
【0025】
以下、この実施形態のセキュア通信方法を、より具体的詳細に説明する。
【0026】
図1に示す例は、同一の通信ネットワークに認証機器A及び被認証機器Bが接続され、この二機器間での通信を行う場合に、認証機器A及び被認証機器Bには予め共通鍵Kaが配布されており、さらに安全な認証を行うためには、一度だけ使用される数であるナンスNが用いられる。また、認証機器A及び被認証機器Bには、電源11、中央処理装置12、通信モジュール13、揮発性メモリ14、読み出し専用記憶装置15が搭載されている。
【0027】
電源11は、認証機器A及び被認証機器Bの電源を管理するものである。
【0028】
認証機器Aの中央処理装置12aは、乱数発生手段1aと、ナンス生成手段2aと、ナンス暗号復号化手段3aと、ナンス送信手段4aとを備えるものである。また、被認証機器Bの中央処理装置12bは、受信ナンス暗号復号化手段5bと、ナンス返信手段6bとを備えるものである。この中央処理装置12は、電源11より電力が供給されて起動するものである。さらに、中央処理装置12は、揮発性メモリ14に一時的に保存されている乱数を読み出し、読み出し専用記憶装置15に予め保存されている共通鍵KaとナンスNを用いた暗号通信のプログラムを読み出し、各手段を用いることによって種々の演算を行い、通信モジュール13へ他の機器である認証機器A又は被認証機器Bとの送受信の命令を行うものである。
【0029】
通信モジュール13は、中央処理装置12より命令を受けて、通信ネットワークを介して認証機器A又は被認証機器Bとの通信を行うものである。
【0030】
揮発性メモリ14aは、乱数発生手段1aによって発生した乱数を一時的に保存するものであり、中央処理装置12aによって、乱数が読み出されてナンス生成手段2aによってナンスNの初期値N(1)の生成に用いられる。
【0031】
読み出し専用記憶装置15は、共通鍵KaとナンスNを用いた暗号通信のプログラムが予め保存されており、中央処理装置12よりこのプログラムが読み出されて実行される。
【0032】
なお、揮発性メモリ14にはRAM(Random Access Memory)が用いられ、読み出し専用記憶装置15にはROM(Read Only Memory)が用いられる。
【0033】
ここで、本明細書において、総称する場合にはアルファベットの添え字を省略した参照符号で示し、個別の構成を指す場合にはアルファベットの添え字を付した参照符号で示す。
【0034】
次に、認証機器Aと被認証機器Bとの間で、認証機器AによりナンスNが生成され、被認証機器Bに対して認証を行って、実際にセッションが開始されるまでの通信内容を図2〜図4に基づいて説明する。
【0035】
図2に示すように、認証機器Aが再起動した場合、乱数発生手段1aは、乱数を発生させる(S101)。なお、乱数は、推測されないように一様な乱数である必要がある。例えば、擬似乱数にハッシュ関数を用いて乱数の生成を行うことができる。この乱数は、揮発性メモリ14aに一時的に保存される(S102)。ナンス生成手段2aは、揮発性メモリ14aに保存された乱数を読み出して、ナンスNの初期値N(1)を生成し、揮発性メモリ14aへ初期値N(1)を保存する(S103)。生成されたナンスNの初期値N(1)は、ナンス暗号復号化手段3aによって、予め保持されている共通鍵Kaを用いて暗号化される(S104)。さらに、暗号化されたナンスE(N(1))は、ナンス送信手段4aによって、被認証機器Bへ送信される(S105)。
【0036】
なお、上記の再起動とは、認証機器Aの電源11が再起動するコールドリブート及びソフトウェアがリセットされてハードウェアチェックの一部を省略して高速に起動するウォームリブートの両方を含むものである。また、認証機器Aは、製造後の初回の電源投入時に、上記再起動した場合と同様であるとして動作するものであってもよい。
【0037】
次に、図3に示すように、被認証機器Bは、認証機器Aより受信した暗号化されたナンスE(N(1))を受信ナンス暗号復号化手段5bによって、予め保持されている共通鍵Kaを用いてナンスN(1)へ復号化する(S106)。さらに、被認証機器Bは、復号化されたナンスN(1)をナンス返信手段6bによって、認証機器Aに送信する(S107)。
【0038】
認証機器Aは、被認証機器Bより送信された復号化されたナンスN(1)を受信して(S108)、ナンス生成手段2aによって生成したナンスN(1)との照合を行い(S109)、一致している場合には、被認証機器Bを認証し(S110)、認証機器Aと被認証機器Bとの間のセッションが開始される。
【0039】
再度、認証機器Aと被認証機器Bの間でセッションを開始する場合は、図4に示すように、認証機器Aは、揮発性メモリ14aに保存されている前回用いたナンスN(n)を読み出し、ナンス生成手段2aは、ナンスN(n)をインクリメントしたナンスN(n+1)を生成し、生成されたナンスN(n+1)は、揮発性メモリ14aに保存される(S151)。さらに、生成されたナンスN(n+1)は、ナンス暗号復号化手段3a によって、予め保持されている共通鍵Kaを用いて暗号化される(S152)。暗号化されたナンスE(N(n+1))は、ナンス送信手段4a によって、被認証機器Bへ送信される(S153)。
【0040】
次に、被認証機器Bは、認証機器Aより受信した暗号化されたナンスE(N(n+1))を受信ナンス暗号復号化手段5bによって、予め保持されている共通鍵Kaを用いてナンスN(n+1)へ復号化する(S154)。さらに、被認証機器Bは、復号化されたナンスN(n+1)をナンス返信手段6bによって、認証機器Aに送信する(S155)。
【0041】
認証機器Aは、被認証機器Bより送信された復号化されたナンスN(n+1)を受信して(S156)、ナンス生成手段2aによって生成したナンスN(n+1)との照合を行い(S157)、一致している場合には、被認証機器Bを認証し(S158)、認証機器Aと被認証機器Bとの間のセッションが再び開始される。
【0042】
本実施形態の他の例として、認証機器Aから被認証機器Bへ送られるナンスNは、暗号化されず、被認証機器Bから認証機器Aへ送られるナンスNは暗号化されているセキュア通信方法がある。具体的には、認証機器Aは、ナンス生成手段2aによって生成されたナンスNを暗号化せずに、ナンス送信手段4aによって被認証機器Bへ送信する。被認証機器Bは、受信したナンスNを受信ナンス暗号復号化手段5bによって、予め保持されている共通鍵Kaを用いて暗号化し、暗号化されたナンスE(N)をナンス返信手段6bによって認証機器Aへ返信する。さらに、認証機器Aは、受信した暗号化されたナンスE(N)をナンス暗号復号化手段3aによって、予め保持されている共通鍵Kaを用いてナンスNへ復号化する。次に認証機器Aは、この復号化したナンスNと自機の有しているナンス生成手段2aによって生成されたナンスNとの照合を行い、一致している場合には、被認証機器Bを認証し、認証機器Aと被認証機器Bとの間のセッションが開始される。
【0043】
上述したように、初期値以外のナンスN(n+1)は、前回用いられたナンスN(n)をインクリメントすることによって生成されていく。ここで、初期値以外のナンスNはインクリメントすることによって連続的な数として生成されるが、このインクリメントとしては、2以上の数が増加する演算を行ってもよく、また、減算していく演算を行ってもよい。
【0044】
したがって、認証機器A及び被認証機器Bは、共通鍵Kaを予め保持し、認証機器Aは、乱数発生手段1aと、ナンス生成手段2aと、ナンス暗号復号化手段3aと、ナンス送信手段4aとを備え、被認証機器Bは、受信ナンス暗号復号化手段5bと、ナンス返信手段6bとを備えているので、認証機器Aは、共通鍵KaとナンスNを用いることによって、被認証機器Bを認証することができる。
【0045】
さらに、ナンス生成手段2aは、少なくとも認証機器Aの再起動時に、乱数発生手段1aで発生した乱数に基づいてナンスNの初期値N(1)を生成するので、第三者が容易にナンスNの初期値N(1)を推測することを防ぐことができる。また、認証機器Aは、初期値以外のナンスNの生成について、前回の認証に用いたナンスN(n)をインクリメントして新たにナンスN(n+1)を生成するものであるので、ナンス生成手段2aは、常に異なるナンスNを生成することができ、ナンスNを一度だけ使用される状態に保つことができる。また、初期値以外のナンスNは、連続的な数を用いる方法でナンスNを生成することが可能であり、乱数を用いる必要がなく、低コスト化を実現できる。
【0046】
図5は、本願発明の第2の実施形態であるセキュア通信方法を示している。ここでは、上記第1の実施形態と相違する事項についてのみ説明し、その他の事項(構成、作用効果等)については、上記第1の実施形態と同様であるのでその説明を省略する。
【0047】
図5に示すように、セキュア通信方法は、ネットワークを介して認証機器Aが被認証機器Bを認証するセキュア通信方法であって、認証機器A及び被認証機器Bは、前記認証に用いられる共通鍵Kaを予め保持しており、認証機器Aは、現在の時刻を生成する時刻生成手段7aと、ナンスNを生成するナンス生成手段2aと、前記共通鍵Kaを用いたナンスNの暗号化又は暗号化されたナンスE(N)の復号化の少なくとも一方を行うナンス暗号復号化手段3aと、ナンスN又は暗号化されたナンスE(N)を被認証機器Bへ送信するナンス送信手段4aとを備え、被認証機器Bは、認証機器Aより送信されてきたナンスNの前記共通鍵Kaを用いた暗号化又は認証機器Aより送信されてきた前記暗号化されたナンスE(N)の前記共通鍵Kaを用いた復号化を行う受信ナンス暗号復号化手段5bと、受信ナンス暗号復号化手段5bで暗号化されたナンスE(N)又は受信ナンス暗号復号化手段で復号化されたナンスNを認証機器Aへ送信するナンス返信手段6bとを備え、時刻生成手段7aは、少なくとも認証機器Aの再起動時に、現在の時刻を生成するものであり、ナンス生成手段2aは、時刻生成手段7aで生成した時刻に基づいてナンスNの初期値N(1)を生成するものであり、初期値N(1)以外の認証機器Aが被認証機器Bを認証する際の新たなナンスN(n+1)は、前回の認証に用いられたナンスN(n)をインクリメントして生成されるものである。
【0048】
以下、この実施形態のセキュア通信方法を、より具体的詳細に説明する。
【0049】
図6に示すように、認証機器Aが再起動した場合、時刻生成手段7aは、現在の時刻を生成する(S201)。この時刻は、例えば、西暦年、月、日、時、分、秒を用いて構成されるものであり、揮発性メモリ14aに一時的に保存される(S202)。ナンス生成手段2aは、揮発性メモリ14aに保存された時刻を読み出して、ナンスの初期値N(1)を生成し、揮発性メモリ14aへ初期値N(1)を保存する(S203)。
【0050】
なお、ナンスの初期値N(1)を生成した後、被認証機器Bを認証するまでのステップS204以降の認証のステップは、第1の実施形態のステップS104〜ステップS110と同様である。
【0051】
したがって、認証機器A及び被認証機器Bは、共通鍵Kaを予め保持し、認証機器Aは、時刻生成手段7aと、ナンス生成手段2aと、ナンス暗号復号化手段3aと、ナンス送信手段4aとを備え、被認証機器Bは、受信ナンス暗号復号化手段5bと、ナンス返信手段6bとを備えているので、認証機器Aは、共通鍵KaとナンスNを用いることによって、被認証機器Bを認証することができる。
【0052】
さらに、ナンス生成手段2aは、少なくとも認証機器Aの再起動時に、時刻生成手段7aで生成した現在の時刻に基づいてナンスNの初期値N(1)を生成するので、過去の少なくとも認証機器Aの再起動時に生成したナンスNの初期値N(1)と同値となることがなく、常に異なるナンスNの初期値N(1)を生成することができる。
【0053】
図7は、本願発明の第3の実施形態であるセキュア通信システム及びセキュア通信方法を示している。ここでは、上記第1及び第2の実施形態と相違する事項についてのみ説明し、その他の事項(構成、作用効果等)については、上記第1及び第2の実施形態と同様であるのでその説明を省略する。
【0054】
図7に示すように、ネットワークを介して認証機器Aが被認証機器Bを認証するセキュア通信方法であって、認証機器A及び被認証機器Bは、前記認証に用いられる共通鍵Kaを予め保持しており、認証機器Aは、乱数を発生させる乱数発生手段1aと、現在の時刻を生成する時刻生成手段7aと、ナンスNを生成するナンス生成手段2aと、前記共通鍵Kaを用いたナンスNの暗号化又は暗号化されたナンスE(N)の復号化の少なくとも一方を行うナンス暗号復号化手段3aと、ナンスN又は暗号化されたナンスE(N)を被認証機器Bへ送信するナンス送信手段4aとを備え、被認証機器Bは、認証機器Aより送信されてきたナンスNの前記共通鍵Kaを用いた暗号化又は認証機器Aより送信されてきた前記暗号化されたナンスE(N)の前記共通鍵Kaを用いた復号化を行う受信ナンス暗号復号化手段5bと、受信ナンス暗号復号化手段5bで暗号化されたナンスE(N)又は受信ナンス暗号復号化手段で復号化されたナンスNを認証機器Aへ送信するナンス返信手段6bとを備え、乱数発生手段1aは、少なくとも認証機器Aの再起動時に、乱数を発生させるものであり、時刻生成手段7aは、少なくとも認証機器Aの再起動時に、現在の時刻を生成するものであり、ナンス生成手段2aは、ナンスNの上位桁に時刻生成手段7aで生成した時刻を用い、ナンスNの下位桁に乱数発生手段1aで発生した乱数を用いてナンスNの初期値N(1)を生成するものであり、初期値N(1)以外の認証機器Aが被認証機器Bを認証する際の新たなナンスN(n+1)は、前回の認証に用いられたナンスN(n)をインクリメントして生成されるものである。さらに、認証機器Aは、所定時間当たりの再起動頻度を検出するリブート頻度検出手段8aを備え、ナンス生成手段2aは、リブート頻度検出手段8aによって検出された所定時間当たりの再起動頻度に基づいて、生成するナンスNの初期値N(1)の上位桁と下位桁の桁数比率を変更するものである。
【0055】
以下、この実施形態のセキュア通信方法を、より具体的詳細に説明する。
【0056】
図8に示すように、認証機器Aが再起動した場合、時刻生成手段7aは、現在の時刻を生成する(S301)。この時刻は、例えば、西暦年、月、日、時、分、秒を用いて構成されるものであり、揮発性メモリ14aに一時的に保存される(S302)。また、乱数発生手段1aは、乱数を発生させる(S303)。この乱数も同様に、揮発性メモリ14aに一時的に保存される(S304)。ナンス生成手段2aは、揮発性メモリ14aに保存された時刻及び乱数を読み出して、ナンスNの初期値N(1)を生成する(S305)。
【0057】
生成されるナンスN(1)は、上位桁を時刻で構成され、下位桁を乱数で構成されるものである。例えば、ナンスNを32ビットとすると、上位16ビットが時刻、下位16ビットが乱数となる。ここでは、ナンスNの上位桁と下位桁ではインクリメントの頻度が異なることを利用して、インクリメントの頻度が小さい上位桁に変化が緩やかな時刻の値を用い、ナンスNとして用いることができる数値の消費を抑えている。また、ナンス生成手段2aは、下位桁に乱数を用いて、初期値N(1)を生成するので、再起動が非常に短時間で発生した場合においても、生成されるナンスN(1)が近い値となることを防止して、ナンスが一度だけ使用される状態を確保している。
【0058】
さらに、リブート頻度検出手段8aは、認証機器Aの所定時間当たりの再起動頻度を検出して、この頻度をナンス生成手段2aへ送信するものである。ナンス生成手段2aは、受信した頻度よりナンスNの上位桁と下位桁の桁数比率の設定を行うものである。
【0059】
ここで、セッションの頻繁な更新による認証の頻度や再起動頻度を検出する方法は、揮発性メモリ14aなどに記憶された機器固有の再起動の頻度を得ることで可能である。例えば、再起動の頻度については、認証機器Aがサーバであるかクライアントであるかによって電源の入り切り頻度又はソフトウェアリセット頻度が異なる。認証機器Aがサーバであれば、電源の入り切り頻度又はソフトウェアリセット頻度は非常に少なく、認証機器Aがクライアントであれば、電源の入り切り又はソフトウェアリセットが頻繁に発生する可能性が高い。
【0060】
また、実際の再起動の回数をカウントすることによっても、所定時間当たりの再起動頻度を検出することができる。この場合、リブート頻度検出手段8aは、所定時間当たりの再起動頻度を定期的にナンス生成手段2aへ送信し、ナンス生成手段2aは、上位桁と下位桁の桁数比率を受信した頻度に応じて自動的に変更することができる。
【0061】
リブート頻度検出手段8aで検出された所定時間当たりの再起動頻度が高い場合には、ナンス生成手段2aは、上位桁の桁数比率を小さくしてナンスNの生成を行う。ナンスNの上位桁は、認証機器の起動した時刻を用いて生成されるので、再起動頻度が高い場合、ナンスNの上位桁の更新が頻繁に行われる。このため、ナンス生成手段2aは、使用可能なナンスNの下位桁の数値を十分に使用せずに上位桁を消費してしまい、ナンスNの使用可能範囲を早く使い切ることとなる。
【0062】
このような再起動頻度が高い場合に、ナンスNの上位桁の桁数比率を減少させることによって、上位桁の早期の消費を防止することができる。例えば、上位桁として、西暦年、月、時、分、秒を用いていたものから、西暦年、月、時を用いるものへ桁数を減らす場合、認証機器Aの再起動が短い時間に頻発した場合には、上位桁が前回の初期値と同値となり、上位桁の消費を抑えることができる。この場合においても、ナンスNの下位桁は、乱数によって生成されるので、前回の初期値と同値になることを防ぐことが可能である。
【0063】
なお、ナンスの初期値N(1)を生成した後、被認証機器Bを認証するまでのステップS306以降の認証のステップは、第1の実施形態のステップS104〜ステップS110と同様である。
【0064】
したがって、認証機器A及び被認証機器Bは、共通鍵Kaを予め保持し、認証機器Aは、乱数発生手段1aと、時刻生成手段7aと、ナンス生成手段2aと、ナンス暗号復号化手段3aと、ナンス送信手段4aとを備え、被認証機器Bは、受信ナンス暗号復号化手段5bと、ナンス返信手段6bとを備えているので、認証機器Aは、共通鍵KaとナンスNを用いることによって、被認証機器Bを認証することができる。
【0065】
さらに、ナンス生成手段2aは、少なくとも認証機器Aの再起動時に、時刻生成手段7aで生成した現在の時刻に基づいてナンスNの上位桁を生成し、乱数発生手段1aで発生した乱数に基づいてナンスNの下位桁を生成するものであるので、ナンスNの値が起動時に同じ値から開始することとはならず、常に異なるナンスNの初期値N(1)を生成することができ、ナンスNを一度だけ使用される状態に保つことができる。
【0066】
また、ナンス生成手段2aは、認証機器Aが被認証機器Bを認証する際に、ナンスN(n)をインクリメントして新たにナンスN(n+1)を生成するものであるので、インクリメントによるナンスNの変化頻度の少ない上位桁を、変化が緩やかであり同値が生じない時刻に基づいて生成することによって、ナンスNとして用いることができる数値の消費を抑えることができる。
【0067】
また、ナンス生成手段2aが、ナンスNの下位桁を乱数に基づいて生成することによって、認証機器Aの再起動が非常に短時間で発生した場合に、下位桁が近い値とならないようにすることができる。
【0068】
このことによって、過去にインクリメントによって生成されたナンスNと、認証機器Aの起動によって新たに生成されたナンスNの初期値N(1)が同値になることを防ぐことができる。
【0069】
さらに、ナンス生成手段2aは、リブート頻度検出手段8aにより検出された所定時間当たりの再起動頻度に基づいて、生成するナンスNの上位桁と下位桁の桁数比率を変更するものであるので、再起動頻度が高い場合に、ナンスNの上位桁の桁数比率を下げることができる。
【0070】
認証機器が短時間に再起動を繰り返した場合には、ナンス生成手段2aは、初期値N(1)の生成を頻繁に行うこととなるために、インクリメントによるナンスNの生成を行う回数が少なくなるので、下位桁の使用可能な数値を十分に使用することがなく、上位桁を早く消費していくこととなる。この場合に、ナンスの上位桁の桁数を減らして、下位桁の桁数を増やすことによって、ナンスNとして使用可能な数値を有効に使用することができる。
【0071】
なお、本願発明の互いに通信可能な通信機器は、認証機器及び被認証機器の両機能を有することができ、認証、被認証の区別なく、いずれの通信機器同士でもナンスN及び共通鍵Kaを用いたセキュア通信方法を使用することができるので、システム構築の自由度を高めることができる。
【0072】
例えば、本願発明の第3の実施形態は以下の構成とすることができる。
【0073】
図9に示すように、認証機器Aは、中央処理装置12aに、受信ナンス暗号復号化手段5aとナンス返信手段6aとを備えることによって、被認証機器としての機能を併せて備えることができる。また、被認証機器Bは、中央処理装置12bに、乱数発生手段1bと、ナンス生成手段2bと、ナンス暗号復号化手段3bと、ナンス送信手段4bと、時刻生成手段7bと、リブート頻度検出手段8bとを備えることによって、認証機器としての機能を併せて備えることができる。
【0074】
また、第1及び第2の実施形態の認証機器及び被認証機器も同様の構成を有することによって、認証機器及び被認証機器の両機能を有することができる。
【0075】
なお、第1〜第3の実施形態では、認証機器AにおいてナンスNを生成して、被認証機器Bを認証する片方向認証についての例を示したが、被認証機器Bにおいて同様にナンスNを生成して、片方向認証と組み合わせた双方向認証を行うこともできる。さらに、複数機器間で通信を行うシステム場合にも、本願発明のセキュア通信方法を使用することができ、相互認証、第三者を介在する認証など、ナンスNを用いた様々な認証方式を行うこともできる。
【0076】
上記の第1〜第3の実施形態は、一つのシンプルな組込みデバイスにおける例であり、さらに、実装される暗号処理を行う装置が許容できれば、様々な認証のためのオプションを付加した形が考えられる。
上記の本願発明の実施形態以外にも暗号アルゴリズムを用いた認証方式は様々なパターンが考えられる。
【0077】
例えば、ISO/IECの9798−2標準として2者間の通信を認証するメカニズムが存在する。この認証メカニズムは、タイムスタンプを用いた片方向認証方式やナンスNを用いた相互認証方式である。ここで、タイムスタンプを用いた片方向認証方式は、ナンスNは必要としない認証方式である。
【0078】
ナンスNを用いた相互認証方式では、図10に示すように、機器bから機器aへ機器bのナンスNbを送り、機器aは機器bに機器aのナンスNaと機器bのナンスNbおよび機器bへのメッセージを識別するため“b”という値を付けて共通鍵Kabで暗号化して
{Na、Nb、B}Kabを送り、機器bは、機器aに復号化した機器aのナンスNaを自身のナンスNbと共に共通鍵Kabで暗号化して{Nb、Na}Kabを送っている。括弧内はKabによって暗号化されていることを示している。
【0079】
また、第三者認証方式でも幅広くナンスNが用いられている。図11に示した例では、機器aと機器bの間が直接認証を行わず、信頼できる第三者機器Pとで認証を行うものである。機器aは機器Pに送信したい通信相手の識別のために“a”、“b”の値およびナンスNaを送信する。機器Pは機器aと機器Pの間の共通鍵KapでナンスNaと、識別の値“b”と、機器aと機器bとの間の共通鍵Kab、および機器bのみが復号できるように共通鍵Kabと“a”の値を機器bと機器Pの間の共通鍵Kbpで暗号化したメッセージをさらにKapで暗号化し、{Na、b、Kab、{Kab、a}Kbp}Kapとして機器aに送る。機器aはKapでそのメッセージを復号化し、{Kab、a}Kbpを機器bに送る。機器bはKbpでそのメッセージを復号しKabを得る。生成したナンスNbを得られたKabで暗号化して機器aに送る。機器aはそのメッセージを復号化し、受け取った証にNbから1引いた値をKabで暗号化して機器bに送る。
【0080】
また、上記の第1〜第3の実施形態では、認証機器Aと被認証機器Bの認証に共通鍵Kabを用いたが、暗号を用いた認証方式においては秘密裏に渡された認証機器Aの鍵、被認証機器Bの鍵を片方、または双方で保持して認証してもよい。また、公開鍵の仕組みを使えば、認証機器A、被認証機器Bの公開鍵を用いて、復号化時にはそれぞれ公開鍵に対する秘密鍵を用いればよい。
【0081】
例えば、ISO/IECの9798−3標準として公開鍵暗号を用いた認証方式もある。認証としてタイムスタンプを用いた片方向認証方式を用いる場合には、ナンスNは必要とされない。CA(PKa)は機器aの公開鍵PKaが機器aの証明書に含まれている。SIGN(Ta、b)PKa−1は機器aの公開鍵に対する秘密鍵PKa−1でデジタル署名を行っている。機器aは機器bに対して、CA(PKa)、Ta、b、SIGN(Ta、b)PKa−1を送信して認証が行われる。ここで、Taはタイムスタンプである。“b”は機器bへのメッセージであるという識別の値である。
【0082】
また、図12に示した例では、機器bから機器aへ機器bのナンスNbを送り、機器aは機器bに機器aの公開鍵PKaを含む証明書CA(PKa)、機器aのナンスNa、機器bへのメッセージの識別の値“b”、およびNa、Nb、“b”を秘密鍵PKa−1でデジタル署名してCA(PKa)、Na、b、SIGN(Na、Nb、b)PKa−1を送り、機器bは機器aに機器bの公開鍵PKbを含む証明書CA(PKa)、機器aへのメッセージの識別の値“a”、およびNb、Na、aを秘密鍵PKb−1でデジタル署名してCA(PKb)、a、SIGN(Nb、Na、a)PKb−1を送っている。括弧内はKabによって暗号化されていることを示している。
【0083】
また、上記の第1〜第3の実施形態では、暗号鍵によるメッセージの暗号化を用いた認証だけを取り上げたが、それ以外にも暗号化よりも処理が高速なハッシュ系の技術を用いた2者間の認証プロトコルも存在する。
【0084】
図13に示した例では、機器aが暗号化していないナンスNaを機器bに送り、機器bは暗号化されていないナンスNbと共通鍵KbaでNa、Nbと“b”を、高速なハッシュ系の技術を用いた処理をして機器aに送り、機器aは同様にNaとNbを、高速なハッシュ系の技術を用いた処理をして送るものである。
【0085】
このように、ISO/IECの標準の例では、タイムスタンプ方式を除けば、ナンスNを用いた認証方式は多岐に渡る。
【図面の簡単な説明】
【0086】
【図1】本願発明の第1の実施形態であるセキュア通信方法の構成を示すブロック構成図である。
【図2】同セキュア通信システムにおけるナンス生成と通信認証のフローチャート及びシーケンス図である。
【図3】同セキュア通信システムにおけるナンス生成と通信認証のフローチャート及びシーケンス図である。
【図4】同セキュア通信システムにおけるナンス生成と通信認証のフローチャート及びシーケンス図である。
【図5】本願発明の第2の実施形態であるセキュア通信方法の構成を示すブロック構成図である。
【図6】同セキュア通信システムにおけるナンス生成と通信認証のフローチャート及びシーケンス図である。
【図7】本願発明の第3の実施形態であるセキュア通信方法の構成を示すブロック構成図である。
【図8】同セキュア通信システムにおけるナンス生成と通信認証のフローチャート及びシーケンス図である。
【図9】本願発明の第3の実施形態の変形例であるセキュア通信システムの構成を示すブロック構成図である。
【図10】2機器間の通信を認証するメカニズムの一例を示すフローチャートである。
【図11】2機器間の通信を認証するメカニズムの一例を示すフローチャートである。
【図12】2機器間の通信を認証するメカニズムの一例を示すフローチャートである。
【図13】2機器間の通信を認証するメカニズムの一例を示すフローチャートである。
【図14】従来例であるセキュア通信システムの認証プロトコルを示すフローチャートである。
【符号の説明】
【0087】
A 認証機器
B 被認証機器
Ka 共通鍵
1 乱数発生手段
2 ナンス生成手段
3 ナンス暗号復号化手段
4 ナンス送信手段
5 受信ナンス暗号復号化手段
6 ナンス返信手段
7 時刻生成手段
8 リブート頻度検出手段
11 電源
12 中央処理装置
13 通信モジュール
14 揮発性メモリ
15 読み出し専用記憶装置
【技術分野】
【0001】
本願発明は、通信ネットワークのセキュリティに関し、特に、互いに通信可能な通信機器間でナンスを用いた安全な認証を行うセキュア通信方法に関する。
【背景技術】
【0002】
互いに通信可能な通信機器に基づく通信ネットワークにおいて、被認証機器と認証機器との間で通信確立を行い、実際にデータの送受信を実施するにあたり、相手の通信機器が信頼関係を保証する機器であるか否かを確認した上で通信を行うことが、安全な通信ネットワークを構築するためには非常に重要である。そこで、安全な通信システムを実現するために、従来から様々な認証プロトコルや鍵配布プロトコルが用いられている。
【0003】
例えば、特許第3078841号公報に示されるように、機器Aと機器Bの二機器間での通信を行う場合に、それぞれの機器には予め秘密に共通の鍵Kabが配布されており、さらに安全な認証を行うためには、予測不能な一度だけ使用される数であるナンスNが用いられる。図14に示すように、このプロトコルの実行は、ブロック501から開始され、機器Aが、自機の名称Aと生成したナンスNabを機器Bに送る。機器Aからのメッセージを受け取る際に、共有キーKab、ナンスNab、機器Bによって生成される新ナンスNbaおよびメッセージ発信元である自機の名称Bに基づく認証関数AUTH(Kab、Nab、Nba、B)が、機器Bによって計算される。ブロック502を参照すると、この認証関数の値とナンスNbaが、機器Bから機器Aに送られる。機器Bからのメッセージを受け取る際に、機器Aは、認証関数AUTH(Kab、Nab、Nba、B)の値を再計算し、機器Bが送ったメッセージ内の対応物と比較する。これが一致すると、機器Bの認証がもたらされる。その後、機器Aは、両方向認証を完了するため、共有キーKab、ナンスNabおよびナンスNbaに基づくもう1つの認証関数ACK(Kab、Nab、Nba)の値を計算する。ブロック503を参照すると、認証関数ACK(Kab、Nab、Nba)の値が機器Aから機器Bへ送られる。機器Aからのメッセージを受け取る際に、機器Bは、認証関数ACK(Kab、Nab、Nba)の値を再計算し、機器Aが送ったメッセージの対応物と比較する。これが一致すると、機器Aの認証がもたらされる。
【0004】
ここで、生成時点より以前に生成されていない値を生成する方法を用いて、機器A及び機器Bによって予測不能な一度だけ使用される数であるナンスNが生成されて認証に使用されているが、ナンスNを一度だけ使用される状態に保つために、ナンスNには連続数を用いる方法と乱数を用いる方法とがある。通常、連続数を用いる方法では、あるビット幅内でナンスNの値を逐次インクリメントする。しかし、以前のナンスNの値を溜め込んで後でカウンタの一周後にタイミングよく再送する再送攻撃が他の機器より行われることも考えられるので、ビット幅はすぐに一杯にならないように大きな値でなければならない。
【0005】
また、特表2004−525558号公報に示されるように、ナンスNは、暗号的に強力なランダム数生成装置によって生成される乱数を使用することによって、データのレコード暗号化と暗号解読のための一意的な識別子としての役割を果たすことができる。
【特許文献1】特許第3078841号公報
【特許文献2】特表2004−525558号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上記従来例であるセキュア通信方法にあっては、連続数を用いる方法でナンスを生成する場合には、何らかの障害によって認証機器の電源またはソフトウェアの再起動が発生すれば、認証機器の再起動時にナンスは同じ値から開始されるので、第三者からの攻撃を受けやすくなる。
【0007】
そこで、認証機器の電源停止または内部ソフトウェアのリブート時に、過去に使用されたナンスをフラッシュメモリなどの記憶媒体に保持して、再起動時の新たにナンスを生成する場合に、記憶媒体に保持しているナンスの値を参照して、過去のナンスと同値とならないようにナンスを生成することが考えられる。しかし、フラッシュメモリなどの不揮発性メモリには、書き込み回数の制限があり、制限以上の書き込みを行うと動作が保証されないという問題がある。さらに、制限される書き込み回数が多いフラッシュメモリを用いることはコストがかかるといった問題もある。
【0008】
また、第三者が起動時に生成されるナンスを推論することを困難にするために、ナンス生成に乱数を用いる方法を採用することが考えられるが、再起動直後の初期値以外のナンス生成にも乱数を用いる場合には、ナンスは、第三者による推論の可能性を低減するために、高価な乱数発生装置を用いて十分にランダムにする必要があり、コストがかかるといった問題点がある。
【0009】
本願発明は、上記背景技術に鑑みて発明されたものであり、再起動が発生しうる認証機器において、再起動が発生した場合においても、第三者に容易に初期値を推測されることがないナンスを生成することができ、しかも低コストで実現可能なセキュア通信方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本願請求項1記載の発明では、ネットワークを介して認証機器が被認証機器を認証するセキュア通信方法であって、認証機器及び被認証機器は、前記認証に用いられる鍵を予め保持しており、認証機器は、乱数を発生させる乱数発生手段と、ナンスを生成するナンス生成手段と、前記鍵を用いたナンスの暗号化又は暗号化されたナンスの復号化の少なくとも一方を行うナンス暗号復号化手段と、ナンス又は暗号化されたナンスを被認証機器へ送信するナンス送信手段とを備え、被認証機器は、認証機器より送信されてきたナンスの前記鍵を用いた暗号化又は認証機器より送信されてきた前記暗号化されたナンスの前記鍵を用いた復号化を行う受信ナンス暗号復号化手段と、受信ナンス暗号復号化手段で暗号化されたナンス又は受信ナンス暗号復号化手段で復号化されたナンスを認証機器へ送信するナンス返信手段とを備え、乱数発生手段は、少なくとも認証機器の再起動時に、乱数を発生させるものであり、ナンス生成手段は、乱数発生手段で発生した乱数に基づいてナンスの初期値を生成するものであり、初期値以外の認証機器が被認証機器を認証する際の新たなナンスは、前回の認証に用いられたナンスをインクリメントして生成されるものであることを特徴としている。
【0011】
本願請求項2記載の発明では、ネットワークを介して認証機器が被認証機器を認証するセキュア通信方法であって、認証機器及び被認証機器は、前記認証に用いられる鍵を予め保持しており、認証機器は、現在の時刻を生成する時刻生成手段と、ナンスを生成するナンス生成手段と、前記鍵を用いたナンスの暗号化又は暗号化されたナンスの復号化の少なくとも一方を行うナンス暗号復号化手段と、ナンス又は暗号化されたナンスを被認証機器へ送信するナンス送信手段とを備え、被認証機器は、認証機器より送信されてきたナンスの前記鍵を用いた暗号化又は認証機器より送信されてきた前記暗号化されたナンスの前記鍵を用いた復号化を行う受信ナンス暗号復号化手段と、受信ナンス暗号復号化手段で暗号化されたナンス又は受信ナンス暗号復号化手段で復号化されたナンスを認証機器へ送信するナンス返信手段とを備え、時刻生成手段は、少なくとも認証機器の再起動時に、現在の時刻を生成するものであり、ナンス生成手段は、時刻生成手段で生成した時刻に基づいてナンスの初期値を生成するものであり、初期値以外の認証機器が被認証機器を認証する際の新たなナンスは、前回の認証に用いられたナンスをインクリメントして生成されるものであることを特徴としている。
【0012】
本願請求項3記載の発明では、ネットワークを介して認証機器が被認証機器を認証するセキュア通信方法であって、認証機器及び被認証機器は、前記認証に用いられる鍵を予め保持しており、認証機器は、乱数を発生させる乱数発生手段と、現在の時刻を生成する時刻生成手段と、ナンスを生成するナンス生成手段と、前記鍵を用いたナンスの暗号化又は暗号化されたナンスの復号化の少なくとも一方を行うナンス暗号復号化手段と、ナンス又は暗号化されたナンスを被認証機器へ送信するナンス送信手段とを備え、被認証機器は、認証機器より送信されてきたナンスの前記鍵を用いた暗号化又は認証機器より送信されてきた前記暗号化されたナンスの前記鍵を用いた復号化を行う受信ナンス暗号復号化手段と、受信ナンス暗号復号化手段で暗号化されたナンス又は受信ナンス暗号復号化手段で復号化されたナンスを認証機器へ送信するナンス返信手段とを備え、乱数発生手段は、少なくとも認証機器の再起動時に、乱数を発生させるものであり、時刻生成手段は、少なくとも認証機器の再起動時に、現在の時刻を生成するものであり、ナンス生成手段は、ナンスの上位桁に時刻生成手段で生成した時刻を用い、ナンスの下位桁に乱数発生手段で発生した乱数を用いてナンスの初期値を生成するものであり、初期値以外の認証機器が被認証機器を認証する際の新たなナンスは、前回の認証に用いられたナンスをインクリメントして生成されるものであることを特徴としている。
【0013】
本願請求項4記載の発明では、上記請求項3記載のセキュア通信方法において、認証機器は、所定時間当たりの再起動頻度を検出するリブート頻度検出手段を備え、ナンス生成手段は、リブート頻度検出手段によって検出された所定時間当たりの再起動頻度に基づいて、生成するナンスの初期値の上位桁と下位桁の桁数比率を変更するものであることを特徴としている。
【発明の効果】
【0014】
本願請求項1記載の発明のセキュア通信方法においては、認証機器及び被認証機器は、認証に用いられる鍵を予め保持し、認証機器は、乱数発生手段と、ナンス生成手段と、ナンス暗号復号化手段と、ナンス送信手段とを備え、被認証機器は、受信ナンス暗号復号化手段と、ナンス返信手段とを備えているので、認証機器は、共通鍵とナンスを用いることによって、被認証機器を認証することができる。
【0015】
さらに、ナンス生成手段は、少なくとも認証機器の再起動時に、乱数発生手段で発生した乱数に基づいてナンスの初期値を生成するので、第三者が容易にナンスの初期値を推測することを防ぐことができる。また、認証機器は、初期値以外のナンスの生成について、前回の認証に用いたナンスをインクリメントして新たにナンスを生成するものであるので、ナンス生成手段は、常に異なるナンスを生成することができ、ナンスを一度だけ使用される状態に保つことができる。また、初期値以外のナンスは、連続的な数を用いる方法でナンスを生成することが可能であり、乱数を用いる必要がなく、低コスト化を実現できる。
【0016】
本願請求項2記載の発明のセキュア通信方法においては、認証機器及び被認証機器は、認証に用いられる鍵を予め保持し、認証機器は、時刻生成手段と、ナンス生成手段と、ナンス暗号復号化手段と、ナンス送信手段とを備え、被認証機器は、受信ナンス暗号復号化手段と、ナンス返信手段とを備えているので、認証機器は、共通鍵とナンスを用いることによって、被認証機器を認証することができる。
【0017】
さらに、ナンス生成手段は、少なくとも認証機器の再起動時に、時刻生成手段で生成した現在の時刻に基づいてナンスの初期値を生成するので、過去の少なくとも認証機器の再起動時に生成したナンスの初期値と同値となることがなく、常に異なるナンスの初期値を生成することができる。また、認証機器が被認証機器を認証する際にナンスをインクリメントして新たにナンスを生成するものであるので、常に異なるナンスを生成することができ、ナンスを一度だけ使用される状態に保つことができる。また、初期値以外のナンスは、連続的な数を用いる方法でナンスを生成することが可能であり、低コスト化を実現できる。
【0018】
本願請求項3記載の発明のセキュア通信方法においては、認証機器及び被認証機器は、認証に用いられる鍵を予め保持し、認証機器は、乱数発生手段と、時刻生成手段と、ナンス生成手段と、ナンス暗号復号化手段と、ナンス送信手段とを備え、被認証機器は、受信ナンス暗号復号化手段と、ナンス返信手段とを備えているので、認証機器は、共通鍵とナンスを用いることによって、被認証機器を認証することができる。
【0019】
さらに、ナンス生成手段は、少なくとも認証機器の再起動時に、時刻生成手段で生成した現在の時刻に基づいてナンスの上位桁を生成し、乱数発生手段で発生した乱数に基づいてナンスの下位桁を生成するものであるので、ナンスの値が起動時に同じ値から開始することとはならず、常に異なるナンスの初期値を生成することができ、ナンスを一度だけ使用される状態に保つことができる。
【0020】
また、ナンス生成手段は、認証機器が被認証機器を認証する際に、ナンスをインクリメントして新たにナンスを生成するものであるので、インクリメントによるナンスの変化頻度の少ない上位桁を、変化が緩やかであり同値が生じない時刻に基づいて生成することによって、ナンスとして用いることができる数値の消費を抑えることができる。
【0021】
また、ナンス生成手段が、ナンスの下位桁を乱数に基づいて生成することによって、認証機器の再起動が非常に短時間で発生した場合に、ナンスの下位桁が近い値とならないようにすることができる。このことによって、過去にインクリメントによって生成されたナンスと、認証機器の起動によって新たに生成されたナンスの初期値とが同値になることを防ぐことができる。
【0022】
本願請求項4記載の発明のセキュア通信方法においては、特に、ナンス生成手段は、リブート頻度検出手段により検出された所定時間当たりの再起動頻度に基づいて、生成するナンスの上位桁と下位桁の桁数比率を変更するものであるので、再起動頻度が高い場合に、ナンスの上位桁の桁数比率を下げることができる。
【0023】
認証機器が短時間に再起動を繰り返した場合には、ナンス生成手段は、ナンスの初期値の生成を頻繁に行うこととなるために、インクリメントによるナンスの生成を行う回数が少なくなるので、下位桁の使用可能な数値を十分に使用することがなく、上位桁を早く消費していくこととなる。この場合に、ナンスの上位桁の桁数を減らして、下位桁の桁数を増やすことによって、ナンスとして使用可能な数値を有効に使用することができる。
【発明を実施するための最良の形態】
【0024】
図1〜図4は、本願発明の第1の実施形態であるセキュア通信方法を示している。例えば、図1に示すように、セキュア通信方法は、ネットワークを介して認証機器Aが被認証機器Bを認証するセキュア通信方法であって、認証機器A及び被認証機器Bは、前記認証に用いられる共通鍵Kaを予め保持しており、認証機器Aは、乱数を発生させる乱数発生手段1aと、ナンスNを生成するナンス生成手段2aと、前記共通鍵Kaを用いたナンスNの暗号化又は暗号化されたナンスE(N)の復号化の少なくとも一方を行うナンス暗号復号化手段3aと、ナンスN又は暗号化されたナンスE(N)を被認証機器Bへ送信するナンス送信手段4aとを備え、被認証機器Bは、認証機器Aより送信されてきたナンスNの前記共通鍵Kaを用いた暗号化又は認証機器Aより送信されてきた前記暗号化されたナンスE(N)の前記共通鍵Kaを用いた復号化を行う受信ナンス暗号復号化手段5bと、受信ナンス暗号復号化手段5bで暗号化されたナンスE(N)又は受信ナンス暗号復号化手段で復号化されたナンスNを認証機器Aへ送信するナンス返信手段6bとを備え、乱数発生手段1aは、少なくとも認証機器Aの再起動時に、乱数を発生させるものであり、ナンス生成手段2aは、乱数発生手段1aで発生した乱数に基づいてナンスNの初期値N(1)を生成するものであり、初期値N(1)以外の認証機器Aが被認証機器Bを認証する際の新たなナンスN(n+1)は、前回の認証に用いられたナンスN(n)をインクリメントして生成されるものである。
【0025】
以下、この実施形態のセキュア通信方法を、より具体的詳細に説明する。
【0026】
図1に示す例は、同一の通信ネットワークに認証機器A及び被認証機器Bが接続され、この二機器間での通信を行う場合に、認証機器A及び被認証機器Bには予め共通鍵Kaが配布されており、さらに安全な認証を行うためには、一度だけ使用される数であるナンスNが用いられる。また、認証機器A及び被認証機器Bには、電源11、中央処理装置12、通信モジュール13、揮発性メモリ14、読み出し専用記憶装置15が搭載されている。
【0027】
電源11は、認証機器A及び被認証機器Bの電源を管理するものである。
【0028】
認証機器Aの中央処理装置12aは、乱数発生手段1aと、ナンス生成手段2aと、ナンス暗号復号化手段3aと、ナンス送信手段4aとを備えるものである。また、被認証機器Bの中央処理装置12bは、受信ナンス暗号復号化手段5bと、ナンス返信手段6bとを備えるものである。この中央処理装置12は、電源11より電力が供給されて起動するものである。さらに、中央処理装置12は、揮発性メモリ14に一時的に保存されている乱数を読み出し、読み出し専用記憶装置15に予め保存されている共通鍵KaとナンスNを用いた暗号通信のプログラムを読み出し、各手段を用いることによって種々の演算を行い、通信モジュール13へ他の機器である認証機器A又は被認証機器Bとの送受信の命令を行うものである。
【0029】
通信モジュール13は、中央処理装置12より命令を受けて、通信ネットワークを介して認証機器A又は被認証機器Bとの通信を行うものである。
【0030】
揮発性メモリ14aは、乱数発生手段1aによって発生した乱数を一時的に保存するものであり、中央処理装置12aによって、乱数が読み出されてナンス生成手段2aによってナンスNの初期値N(1)の生成に用いられる。
【0031】
読み出し専用記憶装置15は、共通鍵KaとナンスNを用いた暗号通信のプログラムが予め保存されており、中央処理装置12よりこのプログラムが読み出されて実行される。
【0032】
なお、揮発性メモリ14にはRAM(Random Access Memory)が用いられ、読み出し専用記憶装置15にはROM(Read Only Memory)が用いられる。
【0033】
ここで、本明細書において、総称する場合にはアルファベットの添え字を省略した参照符号で示し、個別の構成を指す場合にはアルファベットの添え字を付した参照符号で示す。
【0034】
次に、認証機器Aと被認証機器Bとの間で、認証機器AによりナンスNが生成され、被認証機器Bに対して認証を行って、実際にセッションが開始されるまでの通信内容を図2〜図4に基づいて説明する。
【0035】
図2に示すように、認証機器Aが再起動した場合、乱数発生手段1aは、乱数を発生させる(S101)。なお、乱数は、推測されないように一様な乱数である必要がある。例えば、擬似乱数にハッシュ関数を用いて乱数の生成を行うことができる。この乱数は、揮発性メモリ14aに一時的に保存される(S102)。ナンス生成手段2aは、揮発性メモリ14aに保存された乱数を読み出して、ナンスNの初期値N(1)を生成し、揮発性メモリ14aへ初期値N(1)を保存する(S103)。生成されたナンスNの初期値N(1)は、ナンス暗号復号化手段3aによって、予め保持されている共通鍵Kaを用いて暗号化される(S104)。さらに、暗号化されたナンスE(N(1))は、ナンス送信手段4aによって、被認証機器Bへ送信される(S105)。
【0036】
なお、上記の再起動とは、認証機器Aの電源11が再起動するコールドリブート及びソフトウェアがリセットされてハードウェアチェックの一部を省略して高速に起動するウォームリブートの両方を含むものである。また、認証機器Aは、製造後の初回の電源投入時に、上記再起動した場合と同様であるとして動作するものであってもよい。
【0037】
次に、図3に示すように、被認証機器Bは、認証機器Aより受信した暗号化されたナンスE(N(1))を受信ナンス暗号復号化手段5bによって、予め保持されている共通鍵Kaを用いてナンスN(1)へ復号化する(S106)。さらに、被認証機器Bは、復号化されたナンスN(1)をナンス返信手段6bによって、認証機器Aに送信する(S107)。
【0038】
認証機器Aは、被認証機器Bより送信された復号化されたナンスN(1)を受信して(S108)、ナンス生成手段2aによって生成したナンスN(1)との照合を行い(S109)、一致している場合には、被認証機器Bを認証し(S110)、認証機器Aと被認証機器Bとの間のセッションが開始される。
【0039】
再度、認証機器Aと被認証機器Bの間でセッションを開始する場合は、図4に示すように、認証機器Aは、揮発性メモリ14aに保存されている前回用いたナンスN(n)を読み出し、ナンス生成手段2aは、ナンスN(n)をインクリメントしたナンスN(n+1)を生成し、生成されたナンスN(n+1)は、揮発性メモリ14aに保存される(S151)。さらに、生成されたナンスN(n+1)は、ナンス暗号復号化手段3a によって、予め保持されている共通鍵Kaを用いて暗号化される(S152)。暗号化されたナンスE(N(n+1))は、ナンス送信手段4a によって、被認証機器Bへ送信される(S153)。
【0040】
次に、被認証機器Bは、認証機器Aより受信した暗号化されたナンスE(N(n+1))を受信ナンス暗号復号化手段5bによって、予め保持されている共通鍵Kaを用いてナンスN(n+1)へ復号化する(S154)。さらに、被認証機器Bは、復号化されたナンスN(n+1)をナンス返信手段6bによって、認証機器Aに送信する(S155)。
【0041】
認証機器Aは、被認証機器Bより送信された復号化されたナンスN(n+1)を受信して(S156)、ナンス生成手段2aによって生成したナンスN(n+1)との照合を行い(S157)、一致している場合には、被認証機器Bを認証し(S158)、認証機器Aと被認証機器Bとの間のセッションが再び開始される。
【0042】
本実施形態の他の例として、認証機器Aから被認証機器Bへ送られるナンスNは、暗号化されず、被認証機器Bから認証機器Aへ送られるナンスNは暗号化されているセキュア通信方法がある。具体的には、認証機器Aは、ナンス生成手段2aによって生成されたナンスNを暗号化せずに、ナンス送信手段4aによって被認証機器Bへ送信する。被認証機器Bは、受信したナンスNを受信ナンス暗号復号化手段5bによって、予め保持されている共通鍵Kaを用いて暗号化し、暗号化されたナンスE(N)をナンス返信手段6bによって認証機器Aへ返信する。さらに、認証機器Aは、受信した暗号化されたナンスE(N)をナンス暗号復号化手段3aによって、予め保持されている共通鍵Kaを用いてナンスNへ復号化する。次に認証機器Aは、この復号化したナンスNと自機の有しているナンス生成手段2aによって生成されたナンスNとの照合を行い、一致している場合には、被認証機器Bを認証し、認証機器Aと被認証機器Bとの間のセッションが開始される。
【0043】
上述したように、初期値以外のナンスN(n+1)は、前回用いられたナンスN(n)をインクリメントすることによって生成されていく。ここで、初期値以外のナンスNはインクリメントすることによって連続的な数として生成されるが、このインクリメントとしては、2以上の数が増加する演算を行ってもよく、また、減算していく演算を行ってもよい。
【0044】
したがって、認証機器A及び被認証機器Bは、共通鍵Kaを予め保持し、認証機器Aは、乱数発生手段1aと、ナンス生成手段2aと、ナンス暗号復号化手段3aと、ナンス送信手段4aとを備え、被認証機器Bは、受信ナンス暗号復号化手段5bと、ナンス返信手段6bとを備えているので、認証機器Aは、共通鍵KaとナンスNを用いることによって、被認証機器Bを認証することができる。
【0045】
さらに、ナンス生成手段2aは、少なくとも認証機器Aの再起動時に、乱数発生手段1aで発生した乱数に基づいてナンスNの初期値N(1)を生成するので、第三者が容易にナンスNの初期値N(1)を推測することを防ぐことができる。また、認証機器Aは、初期値以外のナンスNの生成について、前回の認証に用いたナンスN(n)をインクリメントして新たにナンスN(n+1)を生成するものであるので、ナンス生成手段2aは、常に異なるナンスNを生成することができ、ナンスNを一度だけ使用される状態に保つことができる。また、初期値以外のナンスNは、連続的な数を用いる方法でナンスNを生成することが可能であり、乱数を用いる必要がなく、低コスト化を実現できる。
【0046】
図5は、本願発明の第2の実施形態であるセキュア通信方法を示している。ここでは、上記第1の実施形態と相違する事項についてのみ説明し、その他の事項(構成、作用効果等)については、上記第1の実施形態と同様であるのでその説明を省略する。
【0047】
図5に示すように、セキュア通信方法は、ネットワークを介して認証機器Aが被認証機器Bを認証するセキュア通信方法であって、認証機器A及び被認証機器Bは、前記認証に用いられる共通鍵Kaを予め保持しており、認証機器Aは、現在の時刻を生成する時刻生成手段7aと、ナンスNを生成するナンス生成手段2aと、前記共通鍵Kaを用いたナンスNの暗号化又は暗号化されたナンスE(N)の復号化の少なくとも一方を行うナンス暗号復号化手段3aと、ナンスN又は暗号化されたナンスE(N)を被認証機器Bへ送信するナンス送信手段4aとを備え、被認証機器Bは、認証機器Aより送信されてきたナンスNの前記共通鍵Kaを用いた暗号化又は認証機器Aより送信されてきた前記暗号化されたナンスE(N)の前記共通鍵Kaを用いた復号化を行う受信ナンス暗号復号化手段5bと、受信ナンス暗号復号化手段5bで暗号化されたナンスE(N)又は受信ナンス暗号復号化手段で復号化されたナンスNを認証機器Aへ送信するナンス返信手段6bとを備え、時刻生成手段7aは、少なくとも認証機器Aの再起動時に、現在の時刻を生成するものであり、ナンス生成手段2aは、時刻生成手段7aで生成した時刻に基づいてナンスNの初期値N(1)を生成するものであり、初期値N(1)以外の認証機器Aが被認証機器Bを認証する際の新たなナンスN(n+1)は、前回の認証に用いられたナンスN(n)をインクリメントして生成されるものである。
【0048】
以下、この実施形態のセキュア通信方法を、より具体的詳細に説明する。
【0049】
図6に示すように、認証機器Aが再起動した場合、時刻生成手段7aは、現在の時刻を生成する(S201)。この時刻は、例えば、西暦年、月、日、時、分、秒を用いて構成されるものであり、揮発性メモリ14aに一時的に保存される(S202)。ナンス生成手段2aは、揮発性メモリ14aに保存された時刻を読み出して、ナンスの初期値N(1)を生成し、揮発性メモリ14aへ初期値N(1)を保存する(S203)。
【0050】
なお、ナンスの初期値N(1)を生成した後、被認証機器Bを認証するまでのステップS204以降の認証のステップは、第1の実施形態のステップS104〜ステップS110と同様である。
【0051】
したがって、認証機器A及び被認証機器Bは、共通鍵Kaを予め保持し、認証機器Aは、時刻生成手段7aと、ナンス生成手段2aと、ナンス暗号復号化手段3aと、ナンス送信手段4aとを備え、被認証機器Bは、受信ナンス暗号復号化手段5bと、ナンス返信手段6bとを備えているので、認証機器Aは、共通鍵KaとナンスNを用いることによって、被認証機器Bを認証することができる。
【0052】
さらに、ナンス生成手段2aは、少なくとも認証機器Aの再起動時に、時刻生成手段7aで生成した現在の時刻に基づいてナンスNの初期値N(1)を生成するので、過去の少なくとも認証機器Aの再起動時に生成したナンスNの初期値N(1)と同値となることがなく、常に異なるナンスNの初期値N(1)を生成することができる。
【0053】
図7は、本願発明の第3の実施形態であるセキュア通信システム及びセキュア通信方法を示している。ここでは、上記第1及び第2の実施形態と相違する事項についてのみ説明し、その他の事項(構成、作用効果等)については、上記第1及び第2の実施形態と同様であるのでその説明を省略する。
【0054】
図7に示すように、ネットワークを介して認証機器Aが被認証機器Bを認証するセキュア通信方法であって、認証機器A及び被認証機器Bは、前記認証に用いられる共通鍵Kaを予め保持しており、認証機器Aは、乱数を発生させる乱数発生手段1aと、現在の時刻を生成する時刻生成手段7aと、ナンスNを生成するナンス生成手段2aと、前記共通鍵Kaを用いたナンスNの暗号化又は暗号化されたナンスE(N)の復号化の少なくとも一方を行うナンス暗号復号化手段3aと、ナンスN又は暗号化されたナンスE(N)を被認証機器Bへ送信するナンス送信手段4aとを備え、被認証機器Bは、認証機器Aより送信されてきたナンスNの前記共通鍵Kaを用いた暗号化又は認証機器Aより送信されてきた前記暗号化されたナンスE(N)の前記共通鍵Kaを用いた復号化を行う受信ナンス暗号復号化手段5bと、受信ナンス暗号復号化手段5bで暗号化されたナンスE(N)又は受信ナンス暗号復号化手段で復号化されたナンスNを認証機器Aへ送信するナンス返信手段6bとを備え、乱数発生手段1aは、少なくとも認証機器Aの再起動時に、乱数を発生させるものであり、時刻生成手段7aは、少なくとも認証機器Aの再起動時に、現在の時刻を生成するものであり、ナンス生成手段2aは、ナンスNの上位桁に時刻生成手段7aで生成した時刻を用い、ナンスNの下位桁に乱数発生手段1aで発生した乱数を用いてナンスNの初期値N(1)を生成するものであり、初期値N(1)以外の認証機器Aが被認証機器Bを認証する際の新たなナンスN(n+1)は、前回の認証に用いられたナンスN(n)をインクリメントして生成されるものである。さらに、認証機器Aは、所定時間当たりの再起動頻度を検出するリブート頻度検出手段8aを備え、ナンス生成手段2aは、リブート頻度検出手段8aによって検出された所定時間当たりの再起動頻度に基づいて、生成するナンスNの初期値N(1)の上位桁と下位桁の桁数比率を変更するものである。
【0055】
以下、この実施形態のセキュア通信方法を、より具体的詳細に説明する。
【0056】
図8に示すように、認証機器Aが再起動した場合、時刻生成手段7aは、現在の時刻を生成する(S301)。この時刻は、例えば、西暦年、月、日、時、分、秒を用いて構成されるものであり、揮発性メモリ14aに一時的に保存される(S302)。また、乱数発生手段1aは、乱数を発生させる(S303)。この乱数も同様に、揮発性メモリ14aに一時的に保存される(S304)。ナンス生成手段2aは、揮発性メモリ14aに保存された時刻及び乱数を読み出して、ナンスNの初期値N(1)を生成する(S305)。
【0057】
生成されるナンスN(1)は、上位桁を時刻で構成され、下位桁を乱数で構成されるものである。例えば、ナンスNを32ビットとすると、上位16ビットが時刻、下位16ビットが乱数となる。ここでは、ナンスNの上位桁と下位桁ではインクリメントの頻度が異なることを利用して、インクリメントの頻度が小さい上位桁に変化が緩やかな時刻の値を用い、ナンスNとして用いることができる数値の消費を抑えている。また、ナンス生成手段2aは、下位桁に乱数を用いて、初期値N(1)を生成するので、再起動が非常に短時間で発生した場合においても、生成されるナンスN(1)が近い値となることを防止して、ナンスが一度だけ使用される状態を確保している。
【0058】
さらに、リブート頻度検出手段8aは、認証機器Aの所定時間当たりの再起動頻度を検出して、この頻度をナンス生成手段2aへ送信するものである。ナンス生成手段2aは、受信した頻度よりナンスNの上位桁と下位桁の桁数比率の設定を行うものである。
【0059】
ここで、セッションの頻繁な更新による認証の頻度や再起動頻度を検出する方法は、揮発性メモリ14aなどに記憶された機器固有の再起動の頻度を得ることで可能である。例えば、再起動の頻度については、認証機器Aがサーバであるかクライアントであるかによって電源の入り切り頻度又はソフトウェアリセット頻度が異なる。認証機器Aがサーバであれば、電源の入り切り頻度又はソフトウェアリセット頻度は非常に少なく、認証機器Aがクライアントであれば、電源の入り切り又はソフトウェアリセットが頻繁に発生する可能性が高い。
【0060】
また、実際の再起動の回数をカウントすることによっても、所定時間当たりの再起動頻度を検出することができる。この場合、リブート頻度検出手段8aは、所定時間当たりの再起動頻度を定期的にナンス生成手段2aへ送信し、ナンス生成手段2aは、上位桁と下位桁の桁数比率を受信した頻度に応じて自動的に変更することができる。
【0061】
リブート頻度検出手段8aで検出された所定時間当たりの再起動頻度が高い場合には、ナンス生成手段2aは、上位桁の桁数比率を小さくしてナンスNの生成を行う。ナンスNの上位桁は、認証機器の起動した時刻を用いて生成されるので、再起動頻度が高い場合、ナンスNの上位桁の更新が頻繁に行われる。このため、ナンス生成手段2aは、使用可能なナンスNの下位桁の数値を十分に使用せずに上位桁を消費してしまい、ナンスNの使用可能範囲を早く使い切ることとなる。
【0062】
このような再起動頻度が高い場合に、ナンスNの上位桁の桁数比率を減少させることによって、上位桁の早期の消費を防止することができる。例えば、上位桁として、西暦年、月、時、分、秒を用いていたものから、西暦年、月、時を用いるものへ桁数を減らす場合、認証機器Aの再起動が短い時間に頻発した場合には、上位桁が前回の初期値と同値となり、上位桁の消費を抑えることができる。この場合においても、ナンスNの下位桁は、乱数によって生成されるので、前回の初期値と同値になることを防ぐことが可能である。
【0063】
なお、ナンスの初期値N(1)を生成した後、被認証機器Bを認証するまでのステップS306以降の認証のステップは、第1の実施形態のステップS104〜ステップS110と同様である。
【0064】
したがって、認証機器A及び被認証機器Bは、共通鍵Kaを予め保持し、認証機器Aは、乱数発生手段1aと、時刻生成手段7aと、ナンス生成手段2aと、ナンス暗号復号化手段3aと、ナンス送信手段4aとを備え、被認証機器Bは、受信ナンス暗号復号化手段5bと、ナンス返信手段6bとを備えているので、認証機器Aは、共通鍵KaとナンスNを用いることによって、被認証機器Bを認証することができる。
【0065】
さらに、ナンス生成手段2aは、少なくとも認証機器Aの再起動時に、時刻生成手段7aで生成した現在の時刻に基づいてナンスNの上位桁を生成し、乱数発生手段1aで発生した乱数に基づいてナンスNの下位桁を生成するものであるので、ナンスNの値が起動時に同じ値から開始することとはならず、常に異なるナンスNの初期値N(1)を生成することができ、ナンスNを一度だけ使用される状態に保つことができる。
【0066】
また、ナンス生成手段2aは、認証機器Aが被認証機器Bを認証する際に、ナンスN(n)をインクリメントして新たにナンスN(n+1)を生成するものであるので、インクリメントによるナンスNの変化頻度の少ない上位桁を、変化が緩やかであり同値が生じない時刻に基づいて生成することによって、ナンスNとして用いることができる数値の消費を抑えることができる。
【0067】
また、ナンス生成手段2aが、ナンスNの下位桁を乱数に基づいて生成することによって、認証機器Aの再起動が非常に短時間で発生した場合に、下位桁が近い値とならないようにすることができる。
【0068】
このことによって、過去にインクリメントによって生成されたナンスNと、認証機器Aの起動によって新たに生成されたナンスNの初期値N(1)が同値になることを防ぐことができる。
【0069】
さらに、ナンス生成手段2aは、リブート頻度検出手段8aにより検出された所定時間当たりの再起動頻度に基づいて、生成するナンスNの上位桁と下位桁の桁数比率を変更するものであるので、再起動頻度が高い場合に、ナンスNの上位桁の桁数比率を下げることができる。
【0070】
認証機器が短時間に再起動を繰り返した場合には、ナンス生成手段2aは、初期値N(1)の生成を頻繁に行うこととなるために、インクリメントによるナンスNの生成を行う回数が少なくなるので、下位桁の使用可能な数値を十分に使用することがなく、上位桁を早く消費していくこととなる。この場合に、ナンスの上位桁の桁数を減らして、下位桁の桁数を増やすことによって、ナンスNとして使用可能な数値を有効に使用することができる。
【0071】
なお、本願発明の互いに通信可能な通信機器は、認証機器及び被認証機器の両機能を有することができ、認証、被認証の区別なく、いずれの通信機器同士でもナンスN及び共通鍵Kaを用いたセキュア通信方法を使用することができるので、システム構築の自由度を高めることができる。
【0072】
例えば、本願発明の第3の実施形態は以下の構成とすることができる。
【0073】
図9に示すように、認証機器Aは、中央処理装置12aに、受信ナンス暗号復号化手段5aとナンス返信手段6aとを備えることによって、被認証機器としての機能を併せて備えることができる。また、被認証機器Bは、中央処理装置12bに、乱数発生手段1bと、ナンス生成手段2bと、ナンス暗号復号化手段3bと、ナンス送信手段4bと、時刻生成手段7bと、リブート頻度検出手段8bとを備えることによって、認証機器としての機能を併せて備えることができる。
【0074】
また、第1及び第2の実施形態の認証機器及び被認証機器も同様の構成を有することによって、認証機器及び被認証機器の両機能を有することができる。
【0075】
なお、第1〜第3の実施形態では、認証機器AにおいてナンスNを生成して、被認証機器Bを認証する片方向認証についての例を示したが、被認証機器Bにおいて同様にナンスNを生成して、片方向認証と組み合わせた双方向認証を行うこともできる。さらに、複数機器間で通信を行うシステム場合にも、本願発明のセキュア通信方法を使用することができ、相互認証、第三者を介在する認証など、ナンスNを用いた様々な認証方式を行うこともできる。
【0076】
上記の第1〜第3の実施形態は、一つのシンプルな組込みデバイスにおける例であり、さらに、実装される暗号処理を行う装置が許容できれば、様々な認証のためのオプションを付加した形が考えられる。
上記の本願発明の実施形態以外にも暗号アルゴリズムを用いた認証方式は様々なパターンが考えられる。
【0077】
例えば、ISO/IECの9798−2標準として2者間の通信を認証するメカニズムが存在する。この認証メカニズムは、タイムスタンプを用いた片方向認証方式やナンスNを用いた相互認証方式である。ここで、タイムスタンプを用いた片方向認証方式は、ナンスNは必要としない認証方式である。
【0078】
ナンスNを用いた相互認証方式では、図10に示すように、機器bから機器aへ機器bのナンスNbを送り、機器aは機器bに機器aのナンスNaと機器bのナンスNbおよび機器bへのメッセージを識別するため“b”という値を付けて共通鍵Kabで暗号化して
{Na、Nb、B}Kabを送り、機器bは、機器aに復号化した機器aのナンスNaを自身のナンスNbと共に共通鍵Kabで暗号化して{Nb、Na}Kabを送っている。括弧内はKabによって暗号化されていることを示している。
【0079】
また、第三者認証方式でも幅広くナンスNが用いられている。図11に示した例では、機器aと機器bの間が直接認証を行わず、信頼できる第三者機器Pとで認証を行うものである。機器aは機器Pに送信したい通信相手の識別のために“a”、“b”の値およびナンスNaを送信する。機器Pは機器aと機器Pの間の共通鍵KapでナンスNaと、識別の値“b”と、機器aと機器bとの間の共通鍵Kab、および機器bのみが復号できるように共通鍵Kabと“a”の値を機器bと機器Pの間の共通鍵Kbpで暗号化したメッセージをさらにKapで暗号化し、{Na、b、Kab、{Kab、a}Kbp}Kapとして機器aに送る。機器aはKapでそのメッセージを復号化し、{Kab、a}Kbpを機器bに送る。機器bはKbpでそのメッセージを復号しKabを得る。生成したナンスNbを得られたKabで暗号化して機器aに送る。機器aはそのメッセージを復号化し、受け取った証にNbから1引いた値をKabで暗号化して機器bに送る。
【0080】
また、上記の第1〜第3の実施形態では、認証機器Aと被認証機器Bの認証に共通鍵Kabを用いたが、暗号を用いた認証方式においては秘密裏に渡された認証機器Aの鍵、被認証機器Bの鍵を片方、または双方で保持して認証してもよい。また、公開鍵の仕組みを使えば、認証機器A、被認証機器Bの公開鍵を用いて、復号化時にはそれぞれ公開鍵に対する秘密鍵を用いればよい。
【0081】
例えば、ISO/IECの9798−3標準として公開鍵暗号を用いた認証方式もある。認証としてタイムスタンプを用いた片方向認証方式を用いる場合には、ナンスNは必要とされない。CA(PKa)は機器aの公開鍵PKaが機器aの証明書に含まれている。SIGN(Ta、b)PKa−1は機器aの公開鍵に対する秘密鍵PKa−1でデジタル署名を行っている。機器aは機器bに対して、CA(PKa)、Ta、b、SIGN(Ta、b)PKa−1を送信して認証が行われる。ここで、Taはタイムスタンプである。“b”は機器bへのメッセージであるという識別の値である。
【0082】
また、図12に示した例では、機器bから機器aへ機器bのナンスNbを送り、機器aは機器bに機器aの公開鍵PKaを含む証明書CA(PKa)、機器aのナンスNa、機器bへのメッセージの識別の値“b”、およびNa、Nb、“b”を秘密鍵PKa−1でデジタル署名してCA(PKa)、Na、b、SIGN(Na、Nb、b)PKa−1を送り、機器bは機器aに機器bの公開鍵PKbを含む証明書CA(PKa)、機器aへのメッセージの識別の値“a”、およびNb、Na、aを秘密鍵PKb−1でデジタル署名してCA(PKb)、a、SIGN(Nb、Na、a)PKb−1を送っている。括弧内はKabによって暗号化されていることを示している。
【0083】
また、上記の第1〜第3の実施形態では、暗号鍵によるメッセージの暗号化を用いた認証だけを取り上げたが、それ以外にも暗号化よりも処理が高速なハッシュ系の技術を用いた2者間の認証プロトコルも存在する。
【0084】
図13に示した例では、機器aが暗号化していないナンスNaを機器bに送り、機器bは暗号化されていないナンスNbと共通鍵KbaでNa、Nbと“b”を、高速なハッシュ系の技術を用いた処理をして機器aに送り、機器aは同様にNaとNbを、高速なハッシュ系の技術を用いた処理をして送るものである。
【0085】
このように、ISO/IECの標準の例では、タイムスタンプ方式を除けば、ナンスNを用いた認証方式は多岐に渡る。
【図面の簡単な説明】
【0086】
【図1】本願発明の第1の実施形態であるセキュア通信方法の構成を示すブロック構成図である。
【図2】同セキュア通信システムにおけるナンス生成と通信認証のフローチャート及びシーケンス図である。
【図3】同セキュア通信システムにおけるナンス生成と通信認証のフローチャート及びシーケンス図である。
【図4】同セキュア通信システムにおけるナンス生成と通信認証のフローチャート及びシーケンス図である。
【図5】本願発明の第2の実施形態であるセキュア通信方法の構成を示すブロック構成図である。
【図6】同セキュア通信システムにおけるナンス生成と通信認証のフローチャート及びシーケンス図である。
【図7】本願発明の第3の実施形態であるセキュア通信方法の構成を示すブロック構成図である。
【図8】同セキュア通信システムにおけるナンス生成と通信認証のフローチャート及びシーケンス図である。
【図9】本願発明の第3の実施形態の変形例であるセキュア通信システムの構成を示すブロック構成図である。
【図10】2機器間の通信を認証するメカニズムの一例を示すフローチャートである。
【図11】2機器間の通信を認証するメカニズムの一例を示すフローチャートである。
【図12】2機器間の通信を認証するメカニズムの一例を示すフローチャートである。
【図13】2機器間の通信を認証するメカニズムの一例を示すフローチャートである。
【図14】従来例であるセキュア通信システムの認証プロトコルを示すフローチャートである。
【符号の説明】
【0087】
A 認証機器
B 被認証機器
Ka 共通鍵
1 乱数発生手段
2 ナンス生成手段
3 ナンス暗号復号化手段
4 ナンス送信手段
5 受信ナンス暗号復号化手段
6 ナンス返信手段
7 時刻生成手段
8 リブート頻度検出手段
11 電源
12 中央処理装置
13 通信モジュール
14 揮発性メモリ
15 読み出し専用記憶装置
【特許請求の範囲】
【請求項1】
ネットワークを介して認証機器が被認証機器を認証するセキュア通信方法であって、認証機器及び被認証機器は、前記認証に用いられる鍵を予め保持しており、認証機器は、乱数を発生させる乱数発生手段と、ナンスを生成するナンス生成手段と、前記鍵を用いたナンスの暗号化又は暗号化されたナンスの復号化の少なくとも一方を行うナンス暗号復号化手段と、ナンス又は暗号化されたナンスを被認証機器へ送信するナンス送信手段とを備え、被認証機器は、認証機器より送信されてきたナンスの前記鍵を用いた暗号化又は認証機器より送信されてきた前記暗号化されたナンスの前記鍵を用いた復号化を行う受信ナンス暗号復号化手段と、受信ナンス暗号復号化手段で暗号化されたナンス又は受信ナンス暗号復号化手段で復号化されたナンスを認証機器へ送信するナンス返信手段とを備え、乱数発生手段は、少なくとも認証機器の再起動時に、乱数を発生させるものであり、ナンス生成手段は、乱数発生手段で発生した乱数に基づいてナンスの初期値を生成するものであり、初期値以外の認証機器が被認証機器を認証する際の新たなナンスは、前回の認証に用いられたナンスをインクリメントして生成されるものであることを特徴とするセキュア通信方法。
【請求項2】
ネットワークを介して認証機器が被認証機器を認証するセキュア通信方法であって、認証機器及び被認証機器は、前記認証に用いられる鍵を予め保持しており、認証機器は、現在の時刻を生成する時刻生成手段と、ナンスを生成するナンス生成手段と、前記鍵を用いたナンスの暗号化又は暗号化されたナンスの復号化の少なくとも一方を行うナンス暗号復号化手段と、ナンス又は暗号化されたナンスを被認証機器へ送信するナンス送信手段とを備え、被認証機器は、認証機器より送信されてきたナンスの前記鍵を用いた暗号化又は認証機器より送信されてきた前記暗号化されたナンスの前記鍵を用いた復号化を行う受信ナンス暗号復号化手段と、受信ナンス暗号復号化手段で暗号化されたナンス又は受信ナンス暗号復号化手段で復号化されたナンスを認証機器へ送信するナンス返信手段とを備え、時刻生成手段は、少なくとも認証機器の再起動時に、現在の時刻を生成するものであり、ナンス生成手段は、時刻生成手段で生成した時刻に基づいてナンスの初期値を生成するものであり、初期値以外の認証機器が被認証機器を認証する際の新たなナンスは、前回の認証に用いられたナンスをインクリメントして生成されるものであることを特徴とするセキュア通信方法。
【請求項3】
ネットワークを介して認証機器が被認証機器を認証するセキュア通信方法であって、認証機器及び被認証機器は、前記認証に用いられる鍵を予め保持しており、認証機器は、乱数を発生させる乱数発生手段と、現在の時刻を生成する時刻生成手段と、ナンスを生成するナンス生成手段と、前記鍵を用いたナンスの暗号化又は暗号化されたナンスの復号化の少なくとも一方を行うナンス暗号復号化手段と、ナンス又は暗号化されたナンスを被認証機器へ送信するナンス送信手段とを備え、被認証機器は、認証機器より送信されてきたナンスの前記鍵を用いた暗号化又は認証機器より送信されてきた前記暗号化されたナンスの前記鍵を用いた復号化を行う受信ナンス暗号復号化手段と、受信ナンス暗号復号化手段で暗号化されたナンス又は受信ナンス暗号復号化手段で復号化されたナンスを認証機器へ送信するナンス返信手段とを備え、乱数発生手段は、少なくとも認証機器の再起動時に、乱数を発生させるものであり、時刻生成手段は、少なくとも認証機器の再起動時に、現在の時刻を生成するものであり、ナンス生成手段は、ナンスの上位桁に時刻生成手段で生成した時刻を用い、ナンスの下位桁に乱数発生手段で発生した乱数を用いてナンスの初期値を生成するものであり、初期値以外の認証機器が被認証機器を認証する際の新たなナンスは、前回の認証に用いられたナンスをインクリメントして生成されるものであることを特徴とするセキュア通信方法。
【請求項4】
認証機器は、所定時間当たりの再起動頻度を検出するリブート頻度検出手段を備え、ナンス生成手段は、リブート頻度検出手段によって検出された所定時間当たりの再起動頻度に基づいて、生成するナンスの初期値の上位桁と下位桁の桁数比率を変更するものであることを特徴とする請求項3記載のセキュア通信方法。
【請求項1】
ネットワークを介して認証機器が被認証機器を認証するセキュア通信方法であって、認証機器及び被認証機器は、前記認証に用いられる鍵を予め保持しており、認証機器は、乱数を発生させる乱数発生手段と、ナンスを生成するナンス生成手段と、前記鍵を用いたナンスの暗号化又は暗号化されたナンスの復号化の少なくとも一方を行うナンス暗号復号化手段と、ナンス又は暗号化されたナンスを被認証機器へ送信するナンス送信手段とを備え、被認証機器は、認証機器より送信されてきたナンスの前記鍵を用いた暗号化又は認証機器より送信されてきた前記暗号化されたナンスの前記鍵を用いた復号化を行う受信ナンス暗号復号化手段と、受信ナンス暗号復号化手段で暗号化されたナンス又は受信ナンス暗号復号化手段で復号化されたナンスを認証機器へ送信するナンス返信手段とを備え、乱数発生手段は、少なくとも認証機器の再起動時に、乱数を発生させるものであり、ナンス生成手段は、乱数発生手段で発生した乱数に基づいてナンスの初期値を生成するものであり、初期値以外の認証機器が被認証機器を認証する際の新たなナンスは、前回の認証に用いられたナンスをインクリメントして生成されるものであることを特徴とするセキュア通信方法。
【請求項2】
ネットワークを介して認証機器が被認証機器を認証するセキュア通信方法であって、認証機器及び被認証機器は、前記認証に用いられる鍵を予め保持しており、認証機器は、現在の時刻を生成する時刻生成手段と、ナンスを生成するナンス生成手段と、前記鍵を用いたナンスの暗号化又は暗号化されたナンスの復号化の少なくとも一方を行うナンス暗号復号化手段と、ナンス又は暗号化されたナンスを被認証機器へ送信するナンス送信手段とを備え、被認証機器は、認証機器より送信されてきたナンスの前記鍵を用いた暗号化又は認証機器より送信されてきた前記暗号化されたナンスの前記鍵を用いた復号化を行う受信ナンス暗号復号化手段と、受信ナンス暗号復号化手段で暗号化されたナンス又は受信ナンス暗号復号化手段で復号化されたナンスを認証機器へ送信するナンス返信手段とを備え、時刻生成手段は、少なくとも認証機器の再起動時に、現在の時刻を生成するものであり、ナンス生成手段は、時刻生成手段で生成した時刻に基づいてナンスの初期値を生成するものであり、初期値以外の認証機器が被認証機器を認証する際の新たなナンスは、前回の認証に用いられたナンスをインクリメントして生成されるものであることを特徴とするセキュア通信方法。
【請求項3】
ネットワークを介して認証機器が被認証機器を認証するセキュア通信方法であって、認証機器及び被認証機器は、前記認証に用いられる鍵を予め保持しており、認証機器は、乱数を発生させる乱数発生手段と、現在の時刻を生成する時刻生成手段と、ナンスを生成するナンス生成手段と、前記鍵を用いたナンスの暗号化又は暗号化されたナンスの復号化の少なくとも一方を行うナンス暗号復号化手段と、ナンス又は暗号化されたナンスを被認証機器へ送信するナンス送信手段とを備え、被認証機器は、認証機器より送信されてきたナンスの前記鍵を用いた暗号化又は認証機器より送信されてきた前記暗号化されたナンスの前記鍵を用いた復号化を行う受信ナンス暗号復号化手段と、受信ナンス暗号復号化手段で暗号化されたナンス又は受信ナンス暗号復号化手段で復号化されたナンスを認証機器へ送信するナンス返信手段とを備え、乱数発生手段は、少なくとも認証機器の再起動時に、乱数を発生させるものであり、時刻生成手段は、少なくとも認証機器の再起動時に、現在の時刻を生成するものであり、ナンス生成手段は、ナンスの上位桁に時刻生成手段で生成した時刻を用い、ナンスの下位桁に乱数発生手段で発生した乱数を用いてナンスの初期値を生成するものであり、初期値以外の認証機器が被認証機器を認証する際の新たなナンスは、前回の認証に用いられたナンスをインクリメントして生成されるものであることを特徴とするセキュア通信方法。
【請求項4】
認証機器は、所定時間当たりの再起動頻度を検出するリブート頻度検出手段を備え、ナンス生成手段は、リブート頻度検出手段によって検出された所定時間当たりの再起動頻度に基づいて、生成するナンスの初期値の上位桁と下位桁の桁数比率を変更するものであることを特徴とする請求項3記載のセキュア通信方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2008−141667(P2008−141667A)
【公開日】平成20年6月19日(2008.6.19)
【国際特許分類】
【出願番号】特願2006−328438(P2006−328438)
【出願日】平成18年12月5日(2006.12.5)
【出願人】(000005832)松下電工株式会社 (17,916)
【Fターム(参考)】
【公開日】平成20年6月19日(2008.6.19)
【国際特許分類】
【出願日】平成18年12月5日(2006.12.5)
【出願人】(000005832)松下電工株式会社 (17,916)
【Fターム(参考)】
[ Back to top ]