説明

認証処理方法、認証処理プログラム、記録媒体および認証処理システム

【課題】少ないデータ量で、認証処理の安全性をより向上させ、かつ連続した通信処理をおこなうこと。
【解決手段】被認証装置110を認証する認証装置120において、被認証装置110からあらかじめ今回認証情報と、検証情報とを、取得し保持する。受信部121によって第1の送信情報と、第2の送信情報と、第3の送信情報と、を被認証装置110から受信する。第1の算出部122によって第1の送信情報と、保持されている今回認証情報とによって第1の認証子を算出し、第2の算出部124によって算出された第1の認証子と第2の送信情報と第3の送信情報とによって次回認証情報を算出する。そして、判断部123によって被認証装置110を認証すると判断され、かつ検証部125において次回認証情報が偽造されていないと認証された場合、更新部126によってメモリに保持されている情報を、第2の送信情報および次回認証情報に更新する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、今回の認証処理のときに次回の認証処理を保証する認証処理方法、認証処理プログラム、記録媒体および認証処理システムに関する。
【背景技術】
【0002】
従来、認証者(例えば、サーバ)が被認証者(例えば、ユーザ)を認証する際に、認証者および被認証者が共通して有する秘密情報を元に認証をおこなう方法が用いられている。このため、認証者および被認証者が互いに秘密情報を安全に管理することが必要である。
【0003】
一方、近年の認証処理システムの適用形態の多様化に伴い、公の場に設置されるサーバや、十分なセキュリティ知識を有していない者が設置したサーバなどでは、認証者側に保持されている秘密情報が第3者に盗まれる可能性がある。したがって、悪意を持った第3者が盗んだ秘密情報を用いることによって、被認証者になりすまし、容易に認証者から認証を受けることができてしまう。
【0004】
このように、不正な認証が成功すると、機密情報が漏洩するという問題がある。また、正当な被認証者の情報が書き換えられて、正当な被認証者が認証者からの認証を受けることができなくなるという問題がある。
【0005】
このような問題を解消する方法として、認証処理に用いる認証情報を、被認証者のみが保存する情報を用いて生成する方法が提案されている(例えば、下記特許文献1参照。)。図8は、従来の認証処理方法について示すフローチャートである。なお、以下の説明において用いる記号および数式は、下記のような意味および演算を示す。
【0006】
i :認証回数
S :ユーザ(被認証者)が秘密に保持している秘密情報
XOR :排他的論理和演算
h(x) :x(任意の値)に一方向変換関数を施した値
h(x、y) :xおよびy(任意の値)を用いて一方向変換関数を施した値
N_{i} :i回目の認証に用いる認証子を生成するための乱数
v_{i} :i回目の認証に用いる認証情報を生成するための任意の値(認証子)
V_{i} :i回目の認証に用いる認証情報
【0007】
図8のフローチャートに示すように、従来の認証処理方法においては、i回目の認証処理において、あらかじめ被認証者が利用する被認証装置810が、第1の乱数N_{i}および秘密情報Sに一方向変換関数をおこなった第1の認証子v_{i}と、第1の認証子v_{i}に一方向変換関数をおこなった今回認証情報V_{i}を保持している。また、サーバなどに配置された認証装置820は、あらかじめ被認証装置810から取得した今回認証情報V_{i}を保持している。ここで、今回認証情報は、i回目の認証処理に用いる認証情報である。
【0008】
そして、図8のフローチャートに示すように、まず、被認証装置810が、乱数N_{i+1}を生成する(ステップS811)。つぎに、ステップS811において生成された乱数N_{i+1}を用いて、第2の認証子v_{i+1}と、次回の認証に用いる次回認証情報V_{i+1}を生成する(ステップS812)。
【0009】
そして、下記式(1)、(2)によって、認証者に認証を要求するための送信情報α、βを算出する(ステップS813)。
α=V_{i+1} XOR V_{i}・・・(1)
β=V_{i+1} XOR v_{i}・・・(2)
【0010】
つぎに、ステップS813において算出された送信情報α、βを認証装置820に送信する(ステップS814)。そして、認証装置820においては、あらかじめ保存されたV_{i}と、ステップS814において被認証装置810から送信された送信情報α、βを用いて、被認証装置810を認証する。
【0011】
したがって、被認証装置810のみが保持する次回認証情報V_{i+1}、またはその元となるデータ(乱数N_{i+1}、秘密情報S)を用いなければ、被認証装置810から認証装置820に認証を要求するための送信情報α、βを生成することができない。このため、認証装置820にあらかじめ保存されている今回認証情報V_{i}が第3者に盗まれたとしても、送信情報α、βを算出することができず、第3者が被認証装置810になりすまして認証を受けることができない。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2007−60568号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかしながら、上述した特許文献1の技術では、被認証装置および認証装置において、今回の認証処理が終了した後に、次回の認証に用いるための次回認証情報V_{i+1}を保存する。ここで、例えば被認証装置から認証装置へ送信情報α、βが送信された際に、次回認証情報V_{i+1}が偽造されている場合、被認証装置に保存される次回認証情報V_{i+1}と、認証装置に保存される次回認証情報V_{i+1}と、が異なる値となる。このため、次回の認証処理がおこなえず、被認証装置と認証装置との通信が途絶えてしまうという問題がある。
【0014】
また、被認証装置から認証装置へ送信する送信情報を増やし、例えば今回の認証に用いる情報、次回の認証に用いる情報を暗号化した情報、次回の認証に用いる情報を検証するための第1の検証情報、次々回の認証に用いる情報を検証するための第2の検証情報および第1の検証情報と第2の検証情報を検証するための情報の5つの情報とすることで、次回認証情報V_{i+1}が偽造されているか否かを検証する方法も考えられる。しかしながら、この方法によれば、例えばパケット毎に送信情報を付加し、認証をおこなう場合など、データ量が増え、計算量も増えるため、処理時間がかかるという問題がある。
【0015】
この発明は、上述した従来技術による問題点を解消するため、今回の認証処理をおこなう際に、次回の認証処理を保証することができる認証処理方法、認証処理プログラム、記録媒体および認証処理システムを提供することを目的とする。
【課題を解決するための手段】
【0016】
上述した課題を解決し、目的を達成するため、請求項1の発明にかかる認証処理方法は、第1の認証子に対して演算前の値を算出することが困難な一方向変換関数による演算をおこなって生成された今回の認証処理に用いる今回認証情報と、第2の認証子を用いて生成された次回の認証処理に用いる次回認証情報と第1の認証子に対して前記一方向変換関数による演算をおこなった検証情報とを、認証をおこなう被認証装置からあらかじめ取得し所定のメモリに保持している認証装置における認証方法であって、前記被認証装置の認証を判断するための認証判断情報として、前記今回認証情報を用いて生成された第1の送信情報と、第3の認証子を用いて生成された次々回の認証処理に用いる次々回認証情報と前記第2の認証子とによって生成された第2の送信情報と、演算前の値を算出することが容易なマスク関数による演算をおこない、前記第1の認証子と前記第2の送信情報に対して前記一方向変換関数による演算をおこなった値で、前記次回認証情報をマスクした第3の送信情報とを、前記被認証装置から受信する受信工程と、前記受信工程によって受信された前記第1の送信情報と、前記メモリにあらかじめ保持されている前記今回認証情報とによって、前記第1の認証子を算出する第1の算出工程と、前記第1の算出工程によって算出された前記第1の認証子と、前記メモリにあらかじめ保持されている前記今回認証情報とに基づいて、前記被認証装置を認証するか否かを判断する判断工程と、前記第1の算出工程によって算出された前記第1の認証子と前記受信工程によって受信された前記第2の送信情報に対して一方向変換関数をおこなった値で、前記第3の送信情報のマスクを解除することで、前記次回認証情報を算出する第2の算出工程と、前記第1の算出工程によって算出された前記第1の認証子と前記第2の算出工程によって算出された前記今回認証情報とによって生成された値と、前記メモリにあらかじめ保持されている前記検証情報とに基づいて、前記次回認証情報が偽造されていないか否かを検証する検証工程と、前記判断工程によって前記被認証装置を認証すると判断され、かつ前記検証工程において前記次回認証情報が偽造されていないと認証された場合、前記メモリに保持されている情報を、前記受信工程によって受信された前記第2の送信情報および第2の算出工程によって算出された前記次回認証情報に更新する更新工程と、を含むことを特徴とする。
【0017】
この請求項1の発明によれば、悪意を有する第3者が、認証装置による認証を不正に得ようとしても、今回の認証に用いる今回認証情報の元となる認証子を知ることができず、認証装置に認証を要求する送信情報を生成することができない。このため、認証装置が被認証装置から取得した今回認証情報が第3者によって窃取されても、不正な認証がおこなわれない。また、認証装置においては、被認証装置から送信された第2の送信情報と第3の送信情報を用いて、次回の認証に用いる次回認証情報を検証することができる。したがって、今回の認証処理において次回の認証を検証することができるため、次回の認証処理において、認証が不正となり被認証装置と認証装置との間で通信が途絶えるのを防ぎ、連続した通信処理をおこなうことができる。
【0018】
また、次々回の認証に用いる次々回認証情報を用いた送信情報を検証することができる。したがって、今回の認証処理において次々回の認証を検証することができるため、次々回の認証処理において、認証が不正となり被認証装置と認証装置との間で通信が途絶えるのを防ぎ、より確実に連続した通信処理をおこなうことができる。
【0019】
さらに、演算前の値を算出することが容易なマスク関数による演算をおこない、第1の認証子と第2の送信情報に対して一方向変換関数による演算をおこなった値で、次回認証情報をマスクした値を第3の送信情報として受信することができる。このため、被認証者が秘密裏に保存している第1の認証子をマスクした状態でやり取りすることができる。したがって、悪意を有する第3者に送信情報が窃取されたとしても、不正な認証を防ぐことができる。
【0020】
また、認証処理のために追加するデータ量を少なくすることができる。すなわち、少ないデータ量を追加するのみで、今回の認証処理をおこない、かつ次回の認証に用いる認証情報の検証および被認証装置から送信された送信情報の検証をおこなうことができる。
【0021】
また、請求項2の発明にかかる認証処理方法は、請求項1に記載の発明において、前記判断工程においては、前記第1の算出工程によって算出された前記第1の認証子に対して前記一方向変換関数による演算をおこなった値が、前記メモリにあらかじめ保持されている前記今回認証情報と一致するか否かを判断して、一致した場合に、前記被認証装置を認証することを特徴とする。
【0022】
この請求項2の発明によれば、被認証装置を認証するときに、算出された第1の認証子を用いて認証処理をおこなうことができる。このため、認証装置においては、第1の認証子を保持しなくてもよい。したがって、第1の認証子が窃取される可能性がより低下し、より確実に認証処理をおこなうことができる。
【0023】
また、請求項3の発明にかかる認証処理方法は、請求項1または2に記載の発明において、前記受信工程においては、前記第1の送信情報として、演算前の値を算出することが容易なマスク関数による演算をおこない、前記今回認証情報で前記第1の認証子にマスクした値を受信し、前記第1の算出工程においては、前記メモリにあらかじめ保持されている前記今回認証情報で、前記受信工程によって受信された前記第1の送信情報のマスクを解除することで、前記第1の認証子を算出することを特徴とする。
【0024】
この請求項3の発明によれば、演算前の値を算出することが容易なマスク関数による演算をおこない今回認証情報で第1の認証子にマスクした値を第1の送信情報として受信することができる。このため、被認証者が秘密裏に保存している第1の認証子をマスクした状態でやり取りすることができる。したがって、悪意を有する第3者に送信情報が窃取されたとしても、不正な認証を防ぐことができる。
【0025】
また、請求項4の発明にかかる認証処理方法は、請求項1〜3のいずれか一つに記載の発明において、前記受信工程においては、前記第2の送信情報として、前記次々回認証情報と前記第2の認証子とに対して前記一方向変換関数をおこなった値を受信し、前記検証工程においては、前記第2の算出工程によって算出された前記今回認証情報と前記第1の算出工程によって算出された前記第1の認証子に対して前記一方向変換関数をおこなった値が、前記メモリにあらかじめ保持されている前記検証情報と一致するか否かを判断して、一致した場合に、前記被認証装置を認証することを特徴とする。
【0026】
この請求項4の発明によれば、次々回認証情報と第2の認証子とに対して演算前の値を算出することが困難な一方向変換関数をおこなった値を第2の送信情報として受信することができる。このため、被認証者が秘密裏に保存している第2の認証子をマスクした状態でやり取りすることができる。したがって、悪意を有する第3者に送信情報が窃取されたとしても、不正な認証を防ぐことができる。
【0027】
また、請求項5の発明にかかる認証処理方法は、認証装置に認証を要求する被認証装置における認証処理方法において、第1の認証子に対して演算前の値を算出することが困難な一方向変換関数による演算をおこなって今回の認証処理に用いる今回認証情報を生成し、第2の認証子に対して前記一方向変換関数による演算をおこなって次回の認証処理に用いる次回認証情報を生成し、前記次回認証情報と前記第1の認証子に対して前記一方向変換関数による演算をおこなった検証情報を生成する生成工程と、前記生成工程によって生成された前記今回認証情報と、前記検証情報とを、前記認証装置に安全な手段で送付する送付工程と、前記第1の認証子、前記第2の認証子、前記今回認証情報および前記次回認証情報を所定のメモリに保持する保持工程と、前記送付工程によって前記今回認証情報と、前記検証情報とを、前記認証装置に送付した後に、前記認証装置に認証を要求するための認証判断情報として、前記今回認証情報を用いて生成された第1の送信情報と、第3の認証子を用いて生成された次々回の認証処理に用いる次々回認証情報と前記第2の認証子とによって生成された第2の送信情報と、演算前の値を算出することが容易なマスク関数による演算をおこない、前記第1の認証子と前記第2の送信情報に対して前記一方向変換関数による演算をおこなった値で、前記次回認証情報をマスクした第3の送信情報とを、を算出する算出工程と、前記算出工程によって算出された前記第1の送信情報、前記第2の送信情報および前記第2の送信情報を、前記認証装置に送信する送信工程と、前記メモリに保持される情報を、前記第2の認証子、前記次回認証情報、前記第3の認証子および前記次々回認証情報に更新する更新工程と、を含むことを特徴とする。
【0028】
この請求項5の発明によれば、悪意を有する第3者が、認証装置による認証を不正に得ようとしても、今回の認証に用いる今回認証情報の元となる認証子を知ることができず、認証装置に認証を要求する送信情報を生成することができない。このため、認証装置が被認証装置から取得した今回認証情報が第3者によって窃取されても、不正な認証がおこなわれない。また、認証装置に対して、次回認証情報を送信しておくことで、次回の認証処理を検証させることができる。したがって、今回の認証処理において次回の認証を検証させることができるため、次回の認証処理において、認証が不正となり被認証装置と認証装置との間で通信が途絶えるのを防ぎ、連続した通信処理をおこなうことができる。
【0029】
また、次々回の認証に用いる次々回認証情報を用いた送信情報を検証させることができる。したがって、今回の認証処理において次々回の認証を検証させることができるため、次々回の認証処理において、認証が不正となり被認証装置と認証装置との間で通信が途絶えるのを防ぎ、より確実に連続した通信処理をおこなうことができる。
【0030】
さらに、演算前の値を算出することが容易なマスク関数による演算をおこない、第1の認証子と第2の送信情報に対して一方向変換関数による演算をおこなった値で、次回認証情報をマスクした値を第3の送信情報として算出することができる。このため、被認証者が秘密裏に保存している第1の認証子をマスクした状態でやり取りすることができる。したがって、悪意を有する第3者に送信情報が窃取されたとしても、不正な認証を防ぐことができる。
【0031】
また、認証処理のために追加するデータ量を少なくすることができる。すなわち、少ないデータ量を追加するのみで、今回の認証処理をおこない、かつ次回の認証に用いる認証情報の検証および被認証装置から送信された送信情報の検証をおこなうことができる。
【0032】
また、請求項6の発明にかかる認証処理方法は、請求項5に記載の発明において、前記算出工程においては、前記第1の送信情報として、演算前の値を算出することが容易なマスク関数による演算をおこない、前記今回認証情報で前記第1の認証子にマスクした値を算出することを特徴とする。
【0033】
この請求項6の発明によれば、演算前の値を算出することが容易なマスク関数による演算をおこない、前記今回認証情報で前記第1の認証子にマスクした値を1の送信情報として算出することができる。このため、認証装置に、第1の認証子を保持させなくてもよい。したがって、第1の認証子が窃取される可能性がより低下し、より確実に認証処理をおこなうことができる。
【0034】
また、請求項7の発明にかかる認証処理方法は、請求項5または6に記載の発明において、前記算出工程においては、前記第2の送信情報として、前記次々回認証情報と前記第2の認証子とに対して前記一方向変換関数をおこなった値を算出することを特徴とする。
【0035】
この請求項7の発明によれば、次々回認証情報と第2の認証子とに対して演算前の値を算出することが困難な一方向変換関数をおこなった値を第2の送信情報として算出することができる。このため、被認証者が秘密裏に保存している第2の認証子をマスクした状態でやり取りすることができる。したがって、悪意を有する第3者に送信情報が窃取されたとしても、不正な認証を防ぐことができる。
【0036】
また、請求項8の発明にかかる認証処理方法は、請求項5〜7のいずれか一つに記載の発明において、前記生成工程においては、第1の乱数と第2の乱数を生成した後に、当該第1の乱数に対して前記一方向変換関数による演算をおこなった前記第1の認証子を用いて前記今回認証情報を生成し、前記第2の乱数に対して前記一方向変換関数による演算をおこなった前記第2の認証子を用いて前記次回認証情報を生成することを特徴とする。
【0037】
この請求項8の発明によれば、生成工程において、乱数を生成した後に、この乱数に対して一方向変換関数による演算をおこなった認証子を用いて認証情報を生成することができる。このため、第3者にとって容易に生成できない乱数を用いて認証子を生成することができ、第3者による認証子の偽造を防ぐことができる。したがって、悪意を有する第3者のなりすましを防ぎ、不正な認証を防ぐことができる。
【0038】
また、請求項9の発明にかかる認証処理方法は、請求項8に記載の発明において、前記算出工程においては、第3の乱数を生成した後に、当該第3の乱数に対して前記一方向変換関数による演算をおこなった前記第3の認証子を用いて前記次々回認証情報を生成することを特徴とする。
【0039】
この請求項9の発明によれば、算出工程において、送信情報を算出する前に、第3の乱数を生成し、この第3の乱数に対して一方向変換関数による演算をおこなった第3の認証子を用いて次々回認証情報を生成する。そして、この次々回認証情報を用いて送信情報を算出することができる。このため、第3者にとって容易に生成できない乱数を用いて送信情報を生成することができ、第3者による送信情報の偽造を防ぐことができる。したがって、悪意を有する第3者のなりすましを防ぎ、不正な認証を防ぐことができる。
【0040】
また、請求項10の発明にかかる認証処理方法は、請求項5〜9のいずれか一つに記載の発明において、前記生成工程においては、第1の乱数と第2の乱数を生成した後に、前記被認証装置に固有の認証鍵と前記第1の乱数に対して、前記一方向変換関数による演算をおこなった前記第1の認証子を用いて前記今回認証情報を生成し、前記認証鍵と前記第2の乱数に対して、前記一方向変換関数による演算をおこなった前記第2の認証子を用いて前記次回認証情報を生成することを特徴とする。
【0041】
この請求項10の発明によれば、生成工程において、乱数を生成した後に、被認証装置に固有の認証鍵と乱数に対して、一方向変換関数による演算をおこなった認証子を用いて認証情報を生成することができる。このため、被認証装置に固有の認証鍵を持たない第3者が送信情報を偽造することを防ぐことができる。したがって、悪意を有する第3者のなりすましを防ぎ、不正な認証をより確実に防ぐことができる。
【0042】
また、請求項11の発明にかかる認証処理方法は、請求項10に記載の発明において、前記算出工程においては、第3の乱数を生成した後に、前記認証鍵と前記第3の乱数に対して、前記一方向変換関数による演算をおこなった前記第3の認証子を用いて前記次々回認証情報を生成することを特徴とする。
【0043】
この請求項11の発明によれば、算出工程において、送信情報を算出する前に、第3の乱数を生成し、この第3の乱数と被認証装置に固有の認証鍵とに対して一方向変換関数による演算をおこなった第3の認証子を用いて次々回認証情報を生成する。そして、この次々回認証情報を用いて送信情報を算出することができる。このため、被認証装置に固有の認証鍵を持たない第3者が認証子を偽造することを防ぐことができる。したがって、悪意を有する第3者のなりすましを防ぎ、不正な認証をより確実に防ぐことができる。
【0044】
また、請求項12の発明にかかる認証処理方法は、請求項8〜11のいずれか一つに記載の発明において、前記保持工程においては、さらに前記第1の乱数と前記第2の乱数を前記メモリに保持し、前記算出工程においては、前記保持工程によって保持された前記第1の乱数と前記認証鍵とに対して前記一方向変換関数による演算をおこなった値と、前記保持工程によって保持された前記第1の認証子と、が同じである場合に、前記次々回認証情報を生成することを特徴とする。
【0045】
また、請求項13の発明にかかる認証処理方法は、請求項8〜11のいずれか一つに記載の発明において、前記保持工程においては、さらに前記第2の乱数を前記メモリに保持し、前記算出工程においては、前記保持工程によって保持された前記第2の乱数と前記認証鍵とに対して前記一方向変換関数による演算をおこなった値と、前記保持工程によって保持された前記第2の認証子と、が同じである場合に、前記次々回認証情報を生成することを特徴とする。
【0046】
この請求項12または13の発明によれば、算出工程において送信情報を算出する前に、被認証装置を操作する被認証者が初期登録時の被認証者と同一か否かを判断することができる。このため、被認証装置を初期登録時と異なる第3者が使用している場合に、不正な認証を防ぐことができる。
【0047】
また、請求項14の発明にかかる認証処理プログラムは、請求項1〜13のいずれか一つに記載の認証処理方法をコンピュータに実行させることを特徴とする。
【0048】
この請求項14の発明によれば、請求項1〜13のいずれか一つに記載の認証処理方法をコンピュータに実行させることができる。
【0049】
また、請求項15の発明にかかる記録媒体は、請求項14に記載の認証処理プログラムをコンピュータに読み取り可能な状態で記録したことを特徴とする。
【0050】
この請求項15の発明によれば、請求項14に記載の認証処理プログラムをコンピュータに読み取らせることができる。
【0051】
また、請求項16の発明にかかる認証処理システムは、認証装置が被認証装置を認証する認証処理システムにおいて、前記被認証装置は、第1の認証子に対して演算前の値を算出することが困難な一方向変換関数による演算をおこなって今回の認証処理に用いる今回認証情報を生成し、第2の認証子に対して前記一方向変換関数による演算をおこなって次回の認証処理に用いる次回認証情報を生成し、前記次回認証情報と前記第1の認証子に対して前記一方向変換関数による演算をおこなった検証情報を生成する生成手段と、前記生成手段によって生成された前記今回認証情報と、前記検証情報とを、前記認証装置に安全な手段で送付する送付手段と、前記第1の認証子、前記第2の認証子、前記今回認証情報および前記次回認証情報を所定のメモリに保持する保持手段と、前記送付手段によって前記今回認証情報と、前記検証情報とを、前記認証装置に送付した後に、前記認証装置に認証を要求するための認証判断情報として、前記今回認証情報を用いて生成された第1の送信情報と、第3の認証子を用いて生成された次々回の認証処理に用いる次々回認証情報と前記第2の認証子とによって生成された第2の送信情報と、演算前の値を算出することが容易なマスク関数による演算をおこない、前記第1の認証子と前記第2の送信情報に対して前記一方向変換関数による演算をおこなった値で、前記次回認証情報をマスクした第3の送信情報とを、を算出する算出手段と、前記算出手段によって算出された前記第1の送信情報、前記第2の送信情報および前記第2の送信情報を、前記認証装置に送信する送信手段と、前記メモリに保持されている情報を、前記第2の認証子、前記次回認証情報、前記第3の認証子および前記次々回認証情報に更新する更新手段と、を備え、前記認証装置は、前記今回認証情報と、前記検証情報とを、前記被認証装置から取得し所定のメモリに保持した後に、前記被認証装置の認証を判断するための認証判断情報として、前記第1の送信情報と、前記第2の送信情報と、前記第3の送信情報とを、前記被認証装置から受信する受信手段と、前記受信手段によって受信された前記第1の送信情報と、前記メモリにあらかじめ保持されている前記今回認証情報とによって、前記第1の認証子を算出する第1の算出手段と、前記第1の算出手段によって算出された前記第1の認証子と、前記メモリにあらかじめ保持されている前記今回認証情報とに基づいて、前記被認証装置を認証するか否かを判断する判断手段と、前記第1の算出手段によって算出された前記第1の認証子と前記受信手段によって受信された前記第2の送信情報に対して一方向変換関数をおこなった値で、前記第3の送信情報のマスクを解除することで、前記次回認証情報を算出する第2の算出手段と、前記第1の算出手段によって算出された前記第1の認証子と前記第2の算出手段によって算出された前記今回認証情報とによって生成された値と、前記メモリにあらかじめ保持されている前記検証情報とに基づいて、前記次回認証情報が偽造されていないか否かを検証する検証手段と、前記判断手段によって前記被認証装置を認証すると判断され、かつ前記検証手段において前記次回認証情報が偽造されていないと認証された場合、前記メモリに保持されている情報を、前記受信手段によって受信された前記第2の送信情報および第2の算出手段によって算出された前記次回認証情報に更新する更新手段と、を備えることを特徴とする。
【0052】
この請求項16の発明によれば、悪意を有する第3者が、認証装置による認証を不正に得ようとしても、今回の認証に用いる今回認証情報の元となる認証子を知ることができず、認証装置に認証を要求する送信情報を生成することができない。このため、認証装置が被認証装置から取得した今回認証情報が第3者によって窃取されても、不正な認証がおこなわれない。また、認証装置においては、被認証装置から送信された第2の送信情報と第3の送信情報を用いて、次回の認証に用いる次回認証情報を検証することができる。したがって、今回の認証処理において次回の認証を検証することができるため、次回の認証処理において、認証が不正となり被認証装置と認証装置との間で通信が途絶えるのを防ぎ、連続した通信処理をおこなうことができる。
【0053】
また、次々回の認証に用いる次々回認証情報を用いた送信情報を検証することができる。したがって、今回の認証処理において次々回の認証を検証することができるため、次々回の認証処理において、認証が不正となり被認証装置と認証装置との間で通信が途絶えるのを防ぎ、より確実に連続した通信処理をおこなうことができる。
【0054】
さらに、演算前の値を算出することが容易なマスク関数による演算をおこない、第1の認証子と第2の送信情報に対して一方向変換関数による演算をおこなった値で、次回認証情報をマスクした値を第3の送信情報として受信することができる。このため、被認証者が秘密裏に保存している第1の認証子をマスクした状態でやり取りすることができる。したがって、悪意を有する第3者に送信情報が窃取されたとしても、不正な認証を防ぐことができる。
【0055】
また、認証処理のために追加するデータ量を少なくすることができる。すなわち、少ないデータ量を追加するのみで、今回の認証処理をおこない、かつ次回の認証に用いる認証情報の検証および被認証装置から送信された送信情報の検証をおこなうことができる。
【発明の効果】
【0056】
本発明にかかる認証処理方法、認証処理プログラム、記録媒体および認証処理システムによれば、少ないデータ量で、認証処理の安全性をより向上させ、かつ連続した通信処理をおこなうことができるという効果を奏する。
【図面の簡単な説明】
【0057】
【図1】認証処理システムの構成について示す説明図である。
【図2】被認証装置および認証装置のハードウェア構成の一例を示すブロック図である。
【図3】認証処理システムを構成する被認証装置および認証装置の機能的構成を示すブロック図である。
【図4】実施の形態1にかかる認証処理における、被認証者による初期登録処理の手順について示すフローチャートである。
【図5】実施の形態1にかかる認証処理における、i回目の認証処理について示すフローチャートである。
【図6】実施の形態2にかかる認証処理における、被認証者による初期登録処理の手順について示すフローチャートである。
【図7】実施の形態2にかかる認証処理における、i回目の認証処理について示すフローチャートである。
【図8】従来の認証処理方法について示すフローチャートである。
【発明を実施するための形態】
【0058】
以下に添付図面を参照して、この発明にかかる認証処理方法、認証処理プログラム、記録媒体および認証処理システムの好適な実施の形態を詳細に説明する。なお、以下の実施の形態の説明およびすべての添付図面において、同様の構成には同一の符号を付し、重複する説明を省略する。
【0059】
(実施の形態1)
まず、本実施の形態にかかる認証処理システムの構成について説明する。図1は、認証処理システムの構成について示す概要図である。なお、以下に説明する実施の形態1〜3において、認証処理システムのシステム構成、ハードウェア構成、機能的構成(図1〜3に相当)は共通である。
【0060】
図1は、認証処理システムの構成について示す説明図である。図1に示すように、認証処理システム100は、ユーザが利用する被認証装置110(110a〜110f)と、サーバに配置された認証装置120と、によって構成される。ここで、ユーザは認証者に認証を要求する被認証者であり、サーバは被認証者を認証する認証者である。また、被認証装置110a〜110fおよび認証装置120は、ネットワーク130によって接続されている。
【0061】
認証処理システム100において、ユーザは、被認証装置110から認証装置120に認証を要求し、認証装置120によって認証されることで、この認証装置120が配置されているサーバが提供する所定のサービス(例えばデータ通信接続サービス、ゲート通過許可、コンテンツ提供など)を受けることができる。以下、認証装置120が被認証装置110を認証した場合(認証が成立した場合)は、ユーザとサーバとの間で相互接続を開始するものとする。なお、詳細な処理の説明は省略するが、さらなる安全性の向上のため、ユーザが利用する被認証装置110が、認証装置120を認証する機能を果たしてもよい。すなわち、サーバがユーザを認証するとともに、ユーザ側からも認証要求先のサーバが正当な者であるかを認証する、相互認証をおこなってもよい。
【0062】
(被認証装置および認証装置のハードウェア構成)
つぎに、認証処理システム100を構成する被認証装置110および認証装置120のハードウェア構成について説明する。図2は、被認証装置および認証装置のハードウェア構成の一例を示すブロック図である。なお、以下では説明の便宜上、被認証装置110および認証装置120は同一のハードウェア構成を有するものとする。
【0063】
図2において、CPU211は、被認証装置110または認証装置120の全体を制御する。ROM212には、基本入出力プログラムが記憶されており、RAM213は、CPU211のワークエリアとして使用される。
【0064】
また、HDD(ハードディスクドライブ)214は、CPU211の制御にしたがってHD(ハードディスク)215に対するデータのリード/ライトを制御する。そして、HD215は、HDD214の制御にしたがって書き込まれたデータを記憶する。また、FDD(フレキシブルディスクドライブ)216は、CPU211の制御にしたがってFD(フレキシブルディスク)217に対するデータのリード/ライトを制御する。そして、FD217は、被認証装置110または認証装置120から着脱自在であり、FDD216の制御にしたがって書き込まれたデータを記憶する。
【0065】
また、ディスプレイ218は、カーソル、メニュー、ウィンドウ、あるいは文字や画像などの各種データを表示する。通信I/F(インターフェース)219は、ネットワーク130に接続され、自装置のインターフェースとしての機能を果たし、他の装置(被認証装置110または認証装置120のいずれか)とのデータの送受信を可能にする。また、キーボード220は、文字、数値、各種指示などの入力のための複数のキーを備えている。また、マウス221は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを可能にする。
【0066】
スキャナ222は、文字や画像を光学的に読み取り、プリンタ223は、文字や画像を用紙上に印刷する。CD−ROM224は、被認証装置110または認証装置120から着脱可能な記録媒体であり、CD−ROMドライブ225は、CD−ROM224に対するデータのリードを制御する。上述した各構成部211〜225は、共通のバス(またはケーブル)226によって、それぞれ接続されている。
【0067】
つぎに、本実施の形態にかかる認証処理システム100の機能的構成について説明する。図3は、認証処理システムを構成する被認証装置および認証装置の機能的構成を示すブロック図である。
【0068】
被認証装置110は、生成部111と、送付部112と、保持部113と、算出部114と、送信部115と、更新部116と、によって構成される。生成部111は、第1の認証子(後述するv_{i})を用いて今回の認証処理に用いる今回認証情報(後述するV_{i})を生成する。また、生成部111は、第2の認証子(後述するv_{i+1})を用いて次回の認証処理に用いる次回認証情報(後述するV_{i+1})を生成する。生成部111は、具体的には、第1の認証子または第2の認証子に対して、演算前の値を算出することが困難な一方向変換関数による演算をおこなうことによって今回認証情報または次回認証情報を生成する。さらに、生成部111は、次回認証情報と第1の認証子に対して一方向変換関数による演算をおこなった検証情報(後述するγ_{i})を生成する。
【0069】
また、生成部111は、第1の乱数と第2の乱数を生成した後に、生成された第1の乱数(または、第1の乱数と自装置に固有の認証鍵)に対して一方向変換関数による演算をおこなうことで、第1の認証子を生成する。そして、この第1の認証子に対して一方向変換関数による演算をおこなうことによって今回認証情報を生成する。また、生成部111は、生成された第2の乱数(または、第2の乱数と自装置に固有の認証鍵)に対して一方向変換関数による演算をおこなうことで、第2の認証子を生成する。そして、この第2の認証子に対して一方向変換関数による演算をおこなうことによって次回認証情報を生成する。
【0070】
ここで、一方向変換関数とは、演算前の値を算出することが困難な関数である。具体的には、例えばある2つの値(x、yとする)をその関数によって演算した場合、その演算結果の値(zとする)と、ある2つの値のうち一つ(例えば、x)がわかっていても、それらからもう一つの値(y)を算出することが困難な関数である。すなわち、一方向変換関数をhとしたとき、x、yをhによって演算した値をzとすると、zは、z=h(x、y)と表せる。このとき、x、zからyを算出することが困難な関数である。
【0071】
送付部112は、生成部111によって生成された今回認証情報および検証情報を、認証装置120に安全な手段で送付する。ここで、安全な手段とは、例えば当該情報の専用線による送信や、当該情報を記憶した記憶媒体の郵送による送付など、当該情報が認証装置120および被認証装置110の利用者以外の第3者に知得されないような送付の手段である。
【0072】
保持部113は、所定のメモリを有し、このメモリに、第1の認証子、第2の認証子、今回認証情報および次回認証情報を保持する。また、保持部113は、さらに第1の乱数と第2の乱数をメモリに保持してもよい。
【0073】
算出部114は、生成部111によって生成された今回認証情報を用いて、認証装置120に認証を要求するための認証判断情報として、第1の送信情報を算出する。具体的には、算出部114は、演算前の値を算出することが容易なマスク関数による演算をおこない、今回認証情報で第1の認証子にマスクした第1の送信情報を算出する。
【0074】
ここで、マスク関数とは、2度同じ演算をすると、元の値が演算結果となる関数であり、例えば、排他的論理和演算(XOR)が該当する。以下、マスク関数は排他的論理和演算として説明する。
【0075】
また、算出部114は、第3の認証子を用いて次々回の認証処理に用いる次々回認証情報を生成した後に、各送信情報を検証させるための送信検証情報として、次々回認証情報と第2の認証子とによって生成された第2の送信情報を生成する。具体的には、算出部114は、次々回認証情報と第2の認証子とに対して一方向変換関数をおこなった第2の送信情報を算出する。
【0076】
また、算出部114は、マスク関数による演算をおこない、第1の認証子と第2の送信情報に対して一方向変換関数による演算をおこなった値で、次回認証情報をマスクした第3の送信情報を生成する。
【0077】
また、算出部114は、保持部113によってメモリに乱数が保持された場合、保持部113によってメモリに保持された第1の乱数(または、第2の乱数)と認証鍵とに対して一方向変換関数による演算をおこなった値と、保持部113によってメモリに保持された第1の認証子(または、第2の認証子)と、が同じである場合に、次々回認証情報の生成を開始してもよい。
【0078】
送信部115は、算出部114によって算出された第1の送信情報、第2の送信情報および第3の送信情報を認証装置120に送信する。送信部115は、例えばネットワーク130を介して上述した各送信情報を認証装置120に送信する。
【0079】
更新部116は、メモリに保持される情報を、第2の認証子、次回認証情報、第3の認証子および次々回認証情報に更新する。さらに、更新部116は、メモリに保持された第1の乱数と第2の乱数を、第2の乱数と第3の乱数に更新してもよい。
【0080】
認証装置120は、受信部121と、第1の算出部122と、判断部123と、第2の算出部124と、検証部125と、更新部126と、によって構成される。ここで、認証装置120は、今回認証情報と、検証情報とを、被認証装置110からあらかじめ取得し所定のメモリに保持していることとする。
【0081】
受信部121は、被認証装置110の認証を判断するための認証判断情報として、第1の送信情報と、第2の送信情報と、第3の送信情報と、を被認証装置110から受信する。
【0082】
第1の算出部122は、受信部121によって受信された第1の送信情報と、メモリにあらかじめ保持されている今回認証情報とによって、第1の認証子を算出する。具体的には、第1の算出部122は、受信部121によって、第1の送信情報として、演算前の値を算出することが容易なマスク関数による演算をおこない、今回認証情報で第1の認証子にマスクした値を受信した場合、メモリにあらかじめ保持されている今回認証情報で、受信部121によって受信された第1の送信情報のマスクを解除することで、第1の認証子を算出する。
【0083】
判断部123は、第1の算出部122によって算出された第1の認証子に対して一方向変換関数による演算をおこなった値が、メモリにあらかじめ保持されている今回認証情報と一致するか否かを判断して、一致した場合に、被認証装置110を認証する。具体的には、判断部123は、第1の算出部122によって算出された第1の認証子に対して一方向変換関数による演算をおこなった値が、メモリにあらかじめ保持されている今回認証情報と一致するか否かを判断して、一致した場合に、被認証装置110を認証する。
【0084】
検証部125は、判断部123によって被認証装置110を認証すると判断された場合、メモリにあらかじめ保持されている検証情報と、受信部121によって受信された第2の送信情報とが一致するか否かを検証して、一致した場合に、次回認証情報が偽造されていないと認証する。
【0085】
検証部125は、具体的には、受信部121において、第2の送信情報として、次々回認証情報と第2の認証子とに対して一方向変換関数をおこなった値を受信した場合、第2の算出部124によって算出された今回認証情報と第1の算出部122によって算出された第1の認証子に対して一方向変換関数をおこなった値が、メモリにあらかじめ保持されている検証情報と一致するか否かを判断して、一致した場合に、被認証装置110を認証する。
【0086】
第2の算出部124は、第1の算出部122によって算出された第1の認証子と受信部121によって受信された第2の送信情報に対して一方向変換関数をおこなった値で、第3の送信情報のマスクを解除することで、次回認証情報を算出する。
【0087】
検証部125は、第1の算出部122によって算出された第1の認証子と第2の算出部124によって算出された今回認証情報とによって生成された値と、メモリにあらかじめ保持されている検証情報とに基づいて、次回認証情報が偽造されていないか否かを検証する

【0088】
また、検証部125は、受信部121によって第2の送信情報として、次々回認証情報と第2の認証子とに対して一方向変換関数をおこなった値を受信した場合、第2の算出部124によって算出された今回認証情報と第1の算出部122によって算出された第1の認証子に対して一方向変換関数をおこなった値が、メモリにあらかじめ保持されている検証情報と一致するか否かを判断して、一致した場合に、被認証装置110を認証する。
【0089】
更新部126は、判断部123によって被認証装置110を認証すると判断され、かつ検証部125において次回認証情報が偽造されていないと認証された場合、メモリに保持される情報を、受信部121によって受信された第2の送信情報および第2の算出部124によって算出された次回認証情報に更新する。
【0090】
なお、上記各部は各装置のHD215やFD217、あるいはCD−ROM224などの各種記録媒体からRAM213に読み出されたプログラムの命令にしたがって、CPU211などが命令処理を実行することにより、それぞれの機能を実現する。
【0091】
<初期登録処理について>
まず、実施の形態1にかかる認証処理における、被認証者による初期登録処理の手順について説明する。なお、以下の説明において用いる記号および数式は、下記のような意味および演算を示す。
【0092】
i :認証回数
S :ユーザ(被認証者)が秘密に保持している秘密情報(例えばパスワード情報など)
h(x) :x(任意の値)に一方向変換関数を施した値
h(x、y) :xおよびy(任意の値)を用いて一方向変換関数を施した値
m_{y}(x):xにyでマスクを施した値(例えば、暗号方式や排他的論理和演算を用い、e_{y}(x)やx XOR yのように演算した値)
n_{y}(x):xでyのマスクを解除した値(但し、演算方法はマスクを施したときの方法と同じ方法とする。)
N_{i} :i回目の認証に用いる認証子を生成するための乱数
v_{i} :i回目の認証に用いる認証情報を生成するための任意の値(認証子)
V_{i} :i回目の認証に用いる認証情報
【0093】
ここで、m_{y}(x)において、x、yはそれぞれ複数の値を用いてもよい。例えば、m_{q,r}(o,p)は、o,pにq,rでマスクを施した値である。qやrは、暗号鍵の引数であり、どのように用いてもかまわない。例えば、q XOR r,h(q,r)やm_{r}(q)によって演算をおこなった値を暗号鍵として用いてもよい。また、同様に、n_{y}(x)において、yはそれぞれ複数の値を用いてもよい。例えば、n_{q,r}(o)は、oでq,rのマスクを解除した結果を意味する。q,rによる鍵の生成方法は暗号化のときの鍵生成方法と同じとする。
【0094】
図4は、実施の形態1にかかる認証処理における、被認証者による初期登録処理の手順について示すフローチャートである。図4において、まず被認証装置110は、乱数N_{1}、N_{2}を生成する(ステップS411)。ここで、乱数N_{i}は、i回目の認証に用いる認証子を生成するための乱数である。
【0095】
ついで、ステップS411において生成された乱数N_{1}、N_{2}と、秘密情報Sとを用いて、下記式(3)によって、認証子v_{1}、v_{2}を生成する(ステップS412)。ここで、認証子v_{i}は、i回目の認証に用いる認証情報を生成するための任意の値である。
v_{i}=h(N_{i},S)・・・(3)
【0096】
また、ステップS412においては、秘密情報Sを用いずに、下記式(4)によって、認証子v_{1}、v_{2}を生成してもよい。
v_{i}=h(N_{i})・・・(4)
【0097】
ついで、ステップS412において生成された認証子v_{1}、v_{2}を用いて、下記式(5)によって認証情報V_{1}、V_{2}を生成する(ステップS413)。ここで、認証情報V_{i}は、i回目の認証に用いる認証情報である。具体的には、認証情報V_{1}は、初回(i=1)の認証に用いる初回(今回)認証情報である。また、認証情報V_{2}は、次回(i+1)の認証に用いる次回認証情報である。
V_{i}=h(v_{i})・・・(5)
【0098】
さらに、ステップS412において生成されたv_{1}とステップS413において生成されたV_{2}を用いて、下記式(6)によって、検証情報γ_{1}を生成する(ステップS414)。ここで、検証情報γ_{i}は、第3者による次回認証情報V_{i+1}の偽造を検証するための情報である。
γ_{i}=h(V_{i+1},v_{i})・・・(6)
【0099】
つぎに、初回認証情報V_{1}と、検証情報γ_{1}とを、安全な手段によって認証装置120に送信する(ステップS415)。ここで、安全な手段とは、当該情報の専用線による送信や、当該情報を記憶した記憶媒体の郵送による送付などの手段である。そして、認証子v_{1}、v_{2}、初回認証情報V_{1}および次回認証情報V_{2}を所定のメモリに保存して(ステップS416)、被認証装置110における一連の処理を終了する。
【0100】
認証装置120においては、ステップS415において被認証装置110から送付された、初回認証情報V_{1}および検証情報γ_{1}を所定のメモリに保存して(ステップS421)、一連の処理を終了する。以上のような処理によって、被認証装置110が認証装置120に初期登録される。
【0101】
<認証処理について>
つぎに、実施の形態1にかかる認証処理における、i回目の認証処理について説明する。図5は、実施の形態1にかかる認証処理における、i回目の認証処理について示すフローチャートである。このとき、被認証装置110に保存されている情報は、認証子v_{i}、v_{i+1}と、今回認証情報V_{i}および次回認証情報V_{i+1}であり、認証装置120に保存されている情報は、今回認証情報V_{i}および検証情報γ_{i}である。
【0102】
図5のフローチャートにおいて、まず、被認証装置110は、乱数N_{i+2}を生成する(ステップS511)。ついで、ステップS511において生成された乱数N_{i+2}と、秘密情報Sとを用いて、前述の式(3)、(5)によって、認証子v_{i+2}および認証情報V_{i+2}を生成する(ステップS512)。ステップS512において認証情報V_{i+2}は、次々回(i+2)の認証に用いる次々回認証情報である。
【0103】
また、ステップS512においては、秘密情報Sを用いずに、前述の式(4)によって、認証子v_{i+2}を生成し、この認証子v_{i+2}を用いて次々回認証情報V_{i+2}を生成してもよい。
【0104】
ついで、被認証装置110は、認証装置120への送信データとして、下記式(7)〜(9)によって、第1の送信情報α_{i}、第2の送信情報γ_{i+1}、第3の送信情報β_{i}を算出する(ステップS513)。
α_{i}=m_{V_{i}}(v_{i})・・・(7)
γ_{i+1}=h(V_{i+2},v_{i+1})・・・(8)
β_{i}=m_{h(v_{i},γ_{i+1}),(V_{i+1})}・・・(9)
【0105】
ここで、第1の送信情報α_{i}は、上述した式(7)に示すように、今回(i)の認証に用いる今回認証情報V_{i}を含む情報である。また、第2の送信情報γ_{i+1}は、上述した式(8)に示すように、次々回(i+2)の認証に用いる次々回認証情報V_{i+2}と次回の認証に用いる認証情報を生成するための認証子v_{i+1}によって生成された情報であり、第3の送信情報β_{i}は、次回の認証に用いる認証情報を生成するための認証子v_{i}と第2の送信情報γ_{i+1}に対して一方向変換関数による演算をおこなった値で、次回認証情報V_{i+1}をマスクした情報である。
【0106】
ついで、ステップS513において算出された第1の送信情報α_{i}、第2の送信情報γ_{i+1}、第3の送信情報β_{i}を、認証装置120へ送信する(ステップS514)。そして、保存情報を、認証子v_{i+1}、v_{i+2}、次回認証情報V_{i+1}および次々回認証情報V_{i+2}に更新する(ステップS515)。さらに、iに(i+1)を代入して(ステップS516)、ステップS511に戻り、(i+1)回目の認証処理をおこなう。
【0107】
一方、認証装置120においては、ステップS514において被認証装置110から送信された第1の送信情報α_{i}、第2の送信情報γ_{i+1}、第3の送信情報β_{i}を受信する。そして、下記式(10)によって、受信した第1の送信情報α_{i}で、保存している今回認証情報V_{i}のマスクを解除して、認証判断用の認証子v’_{i}を算出する(ステップS521)。
v’_{i}←n_{V_{i}}(α_{i})・・・(10)
【0108】
つぎに、ステップS521において算出された認証判断用の認証子v’_{i}に対して一方向変換関数をおこなった値と、保存されている今回認証情報V_{i}とが等しいか否かを判断する(ステップS522)。ステップS522において等しいと判断された場合(ステップS522:Yes)、認証装置120は、被認証装置110を正当な認証者であると判断する(ステップS523)。また、これによって第1の送信情報が偽造されていないことを認証することができる。
【0109】
つぎに、下記式(11)によって、受信した第3の送信情報β_{i}で、ステップS521において算出された認証判断用の認証子v’_{i}および受信したγ_{i+1}を用いて一方向変換関数を施した値のマスクを解除して、認証判断用の次回認証情報V’_{i+1}を算出する(ステップS524)。
V’_{i+1}←n_{h(v’_{i},γ_{i+1})}(β_{i})・・・(11)
【0110】
つぎに、あらかじめ保存されている検証情報γ_{i}と、ステップS524において算出された認証判断用の次回認証情報V’_{i+1}およびステップS521において算出された認証判断用の認証子v’_{i}を用いて一方向変換関数を施した値とが等しいか否かを判断する(ステップS525)。そして、ステップS525において等しいと判断された場合(ステップS525:Yes)、認証判断用の次回認証情報V’_{i+1}が偽造されていないと認証する(ステップS526)。また、これによって第2の送信情報γ_{i+1}および第3の送信情報β_{i}が偽造されていないと認証することができる。
【0111】
つぎに、保存する情報を次回認証情報V_{i+1}、第2の送信情報γ_{i+1}に変更する(ステップS527)。さらに、iに(i+1)を代入して(ステップS528)、ステップS521に戻り、(i+1)回目の認証処理をおこなう。
【0112】
ここで、ステップS522:Yesにおいて、第1の認証子v_{i}と認証判断用の第1の認証子v’_{i}とが同じであると判断されているため、v’_{i}=v_{i}である。したがって、ステップS525:Yesにおいては、今回認証情報V_{i+1}と認証判断用のV’_{i+1}とが同じであると判断され、V’_{i+1}=V_{i+1}となる。このため、ステップS527においては、実際には、保存情報をステップS524において算出された認証判断用の次回認証情報V’_{i+1}に変更するが、次回認証情報V_{i+1}に変更することと同様である。
【0113】
一方、ステップS522において、ステップS521において算出された認証子v’_{i}に対して一方向変換関数をおこなった値と、保存されている今回認証情報V_{i}とが等しいと判断されない場合(ステップS522:No)、認証を拒否して(ステップS529)、一連の処理を終了する。その理由としては、例えば被認証者が被認証装置110へ誤ってパスワードを入力したこと、または第1の送信情報α_{i}(もしくはその一部)が偽造されたことが挙げられる。
【0114】
また、ステップS525において、あらかじめ保存されている検証情報γ_{i}と、ステップS524において算出された次回認証情報V’_{i+1}およびステップS521において算出された認証子v’_{i}を用いて一方向変換関数を施した値とが等しいと判断されない場合(ステップS525:No)、ステップS529に進み、認証を拒否して、一連の処理を終了する。その理由としては、例えば第2の送信情報γ_{i}(もしくはその一部)または第3の送信情報β_{i}が偽造されたこと、または認証装置120において、今回認証情報V_{i}の保存に失敗したなど、被認証装置110と認証装置120とにおいて、認証情報の同期がずれたことが挙げられる。
【0115】
上述した実施の形態1によれば、認証に用いる情報としての第1の送信情報α_{i}、第2の送信情報γ_{i+1}およびβ_{i}は、被認証装置のみが保存するデータ(v_{i}、v_{i+1}、V_{i+2})を用いなければ生成することができない。このため、認証装置に保存されている被認証者に関する情報(V_{i})が第3者に盗まれたとしても、第3者は認証処理に用いる送信情報を生成することができず、認証装置による認証を受けることができない。すなわち、なりすましを防ぐことができる。
【0116】
また、認証装置においては、あらかじめ次回認証情報を用いて生成された検証情報(γ_{i})が保存されているため、今回の認証処理において、次回の認証処理が正当であるか否かを判断することができる。したがって、今回の認証処理をおこなうことで、次回の認証処理が保証される。このため、常に次回の認証処理を保証しながら、今回の認証をおこなうため、繰り返し認証処理をおこなうことで、途切れることなく被認証装置と認証装置間の連続した通信処理を実現することができる。これによって、装置間の通信が止まると危険な情報、例えば救急に関する情報や消防に関する情報などの、パケット単位の通信に用いることができる。
【0117】
また、実施の形態1によれば、被認証装置から認証装置へ3つの送信情報を送信するのみで、認証装置が被認証装置に対する認証処理をおこなうことができ、かつなりすましを防ぎ、次回に用いる認証情報や送信情報が偽造されていないことを認証することができる。したがって、例えばパケット毎に送信情報を付加し、認証をおこなう場合などでも、データ量が増えず、計算量も増えないため、処理時間を短くすることができる。
【0118】
(実施の形態2)
つぎに、実施の形態2にかかる認証処理について説明する。実施の形態2においては、実施の形態1と、被認証装置において、認証処理で乱数を生成する前に、被認証者を検証する点が異なる。なお、実施の形態1と同様の処理には、同様の符号を付し、説明を省略する。
【0119】
<初期登録処理について>
まず、実施の形態2にかかる認証処理における、被認証者による初期登録処理の手順について説明する。図6は、実施の形態2にかかる認証処理における、被認証者による初期登録処理の手順について示すフローチャートである。図6に示すように、実施の形態2の初期登録処理においては、実施の形態1の初期登録処理と、被認証装置110に保存する情報が異なる。
【0120】
実施の形態2においては、図6のフローチャートに示すように、実施の形態1におけるステップS415において、初回認証情報V_{1}と、検証情報γ_{1}とを、安全な手段によって認証装置120に送信した後に、認証子v_{1}、v_{2}、初回認証情報V_{1}および次回認証情報V_{2}に加え、ステップS411において生成された乱数N_{1}、N_{2}を所定のメモリに保存して(ステップS616)、被認証装置110における一連の処理を終了する。
【0121】
<認証処理について>
つぎに、実施の形態2にかかる認証処理における、i回目の認証処理について説明する。図7は、実施の形態2にかかる認証処理における、i回目の認証処理について示すフローチャートである。実施の形態2のi回目の認証処理においては、実施の形態1のi回目の認証処理におけるステップS511において乱数N_{i+2}を生成する前に、被認証装置110において被認証者が正当であるか否かを判断する。
【0122】
図7のフローチャートに示すように、被認証装置110には、認証子v_{i}、v_{i+1}、初回認証情報V_{i}、次回認証情報V_{i+1}に加えて、乱数N_{i}、N_{i+1}が保存されている。そして、まず、被認証者から秘密情報S’を受け付けるまで待機する(ステップS711:Noのループ)。ステップS711において被認証者から秘密情報S’を受け付けた場合(ステップS711:Yes)、保存されている乱数N_{i}と、ステップS711において受け付けられた秘密情報S’とを用いて、下記式(12)によって、認証判断用の認証子v’_{i}を生成する(ステップS712)。
v’_{i}=h(N_{i},S’)・・・(12)
【0123】
つぎに、ステップS712において生成された認証判断用の認証子v’_{i}が、保存されている認証子v_{i}と等しいか否かを判断する(ステップS713)。ステップS713において、認証判断用の認証子v’_{i}と認証子v_{i}が等しいと判断された場合(ステップS713:Yes)、被認証者から受け付けたパスワードが、初期登録時(または前回)と同一のパスワードである、すなわち被認証者が初期登録時の被認証者と同一であると判断して、被認証者が正当であると認証する(ステップS714)。そして、ステップS511に進み、以降の処理をおこなう。
【0124】
そして、実施の形態1と同様にステップS511〜ステップS514までの処理をおこなった後に、被認証装置110における保存情報を、認証子v_{i+1}、v_{i+2}と、次回認証情報V_{i+1}と、次々回認証情報V_{i+2}と、乱数N_{i+1}、N_{i+2}と、に更新する(ステップS715)。さらに、iに(i+1)を代入して(ステップS516)、ステップS711に戻り、(i+1)回目の認証処理をおこなう。
【0125】
一方、ステップS713において、認証判断用の認証子v’_{i}と認証子v_{i}が等しいと判断されない場合(ステップS713:No)、被認証者が初期登録時の被認証者と同一ではないと判断して、そのまま一連の処理を終了する。
【0126】
なお、実施の形態2においては、例えばN_{1}およびN_{2}(図6:ステップS616)、N_{i+1}およびN_{i+2}(図7:ステップS715)の2つの乱数を保持する方法について記載したが、これに限るものではない。具体的には、例えばN_{2}(図6:ステップS616)、N_{i+2}(図7:ステップS715)の1つの乱数を保持する構成でもよい。この場合、図7のステップS712においては、認証判断用の認証子としてv’_{i}の替わりにv’_{i+1}を生成し、ステップS713において認証判断用の認証子v’_{i+1}が、保存されている認証子v_{i+1}と等しいか否かを判断する。
【0127】
上述した実施の形態2によれば、実施の形態1と同様の効果を得ることができる。また、実施の形態2によれば、初期登録処理後の認証処理の際に、被認証装置において被認証者が正当か否かを判断した後に、送信情報を生成することができる。したがって、例えば被認証装置を第3者が使用し、正当な被認証者になりすまそうとしても、認証装置との認証をさせないことができる。これによって、例えば被認証装置が公の場に設置されている場合や、複数のユーザで使用する場合にも、不正な認証を防ぐことができる。
【0128】
以上説明したように、本発明にかかる認証処理方法、認証処理プログラム、記録媒体および認証処理システムによれば、認証処理の安全性をより向上させ、かつ連続した通信処理をおこなうことができる。
【0129】
なお、本実施の形態で説明した認証処理方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【0130】
以上のように、本発明にかかる認証処理方法、認証処理プログラム、記録媒体および認証処理システムは、連続した通信処理が必要な装置間の認証に有用であり、特に、緊急を要する情報をやり取りする装置間の認証に適している。
【符号の説明】
【0131】
110 被認証装置
111 生成部
112 送付部
113 保持部
114 算出部
115 送信部
116 更新部
120 認証装置
121 受信部
122 第1の算出部
123 判断部
124 第2の算出部
125 検証部
126 更新部

【特許請求の範囲】
【請求項1】
第1の認証子に対して演算前の値を算出することが困難な一方向変換関数による演算をおこなって生成された今回の認証処理に用いる今回認証情報と、第2の認証子を用いて生成された次回の認証処理に用いる次回認証情報と第1の認証子に対して前記一方向変換関数による演算をおこなった検証情報とを、認証をおこなう被認証装置からあらかじめ取得し所定のメモリに保持している認証装置における認証方法であって、
前記被認証装置の認証を判断するための認証判断情報として、前記今回認証情報を用いて生成された第1の送信情報と、第3の認証子を用いて生成された次々回の認証処理に用いる次々回認証情報と前記第2の認証子とによって生成された第2の送信情報と、演算前の値を算出することが容易なマスク関数による演算をおこない、前記第1の認証子と前記第2の送信情報に対して前記一方向変換関数による演算をおこなった値で、前記次回認証情報をマスクした第3の送信情報とを、前記被認証装置から受信する受信工程と、
前記受信工程によって受信された前記第1の送信情報と、前記メモリにあらかじめ保持されている前記今回認証情報とによって、前記第1の認証子を算出する第1の算出工程と、
前記第1の算出工程によって算出された前記第1の認証子と、前記メモリにあらかじめ保持されている前記今回認証情報とに基づいて、前記被認証装置を認証するか否かを判断する判断工程と、
前記第1の算出工程によって算出された前記第1の認証子と前記受信工程によって受信された前記第2の送信情報に対して一方向変換関数をおこなった値で、前記第3の送信情報のマスクを解除することで、前記次回認証情報を算出する第2の算出工程と、
前記第1の算出工程によって算出された前記第1の認証子と前記第2の算出工程によって算出された前記今回認証情報とによって生成された値と、前記メモリにあらかじめ保持されている前記検証情報とに基づいて、前記次回認証情報が偽造されていないか否かを検証する検証工程と、
前記判断工程によって前記被認証装置を認証すると判断され、かつ前記検証工程において前記次回認証情報が偽造されていないと認証された場合、前記メモリに保持されている情報を、前記受信工程によって受信された前記第2の送信情報および第2の算出工程によって算出された前記次回認証情報に更新する更新工程と、
を含むことを特徴とする認証処理方法。
【請求項2】
前記判断工程においては、
前記第1の算出工程によって算出された前記第1の認証子に対して前記一方向変換関数による演算をおこなった値が、前記メモリにあらかじめ保持されている前記今回認証情報と一致するか否かを判断して、一致した場合に、前記被認証装置を認証することを特徴とする請求項1に記載の認証処理方法。
【請求項3】
前記受信工程においては、
前記第1の送信情報として、演算前の値を算出することが容易なマスク関数による演算をおこない、前記今回認証情報で前記第1の認証子にマスクした値を受信し、
前記第1の算出工程においては、
前記メモリにあらかじめ保持されている前記今回認証情報で、前記受信工程によって受信された前記第1の送信情報のマスクを解除することで、前記第1の認証子を算出することを特徴とする請求項1または2に記載の認証処理方法。
【請求項4】
前記受信工程においては、
前記第2の送信情報として、前記次々回認証情報と前記第2の認証子とに対して前記一方向変換関数をおこなった値を受信し、
前記検証工程においては、
前記第2の算出工程によって算出された前記今回認証情報と前記第1の算出工程によって算出された前記第1の認証子に対して前記一方向変換関数をおこなった値が、前記メモリにあらかじめ保持されている前記検証情報と一致するか否かを判断して、一致した場合に、前記被認証装置を認証することを特徴とする請求項1〜3のいずれか一つに記載の認証処理方法。
【請求項5】
認証装置に認証を要求する被認証装置における認証処理方法において、
第1の認証子に対して演算前の値を算出することが困難な一方向変換関数による演算をおこなって今回の認証処理に用いる今回認証情報を生成し、第2の認証子に対して前記一方向変換関数による演算をおこなって次回の認証処理に用いる次回認証情報を生成し、前記次回認証情報と前記第1の認証子に対して前記一方向変換関数による演算をおこなった検証情報を生成する生成工程と、
前記生成工程によって生成された前記今回認証情報と、前記検証情報とを、前記認証装置に安全な手段で送付する送付工程と、
前記第1の認証子、前記第2の認証子、前記今回認証情報および前記次回認証情報を所定のメモリに保持する保持工程と、
前記送付工程によって前記今回認証情報と、前記検証情報とを、前記認証装置に送付した後に、前記認証装置に認証を要求するための認証判断情報として、前記今回認証情報を用いて生成された第1の送信情報と、第3の認証子を用いて生成された次々回の認証処理に用いる次々回認証情報と前記第2の認証子とによって生成された第2の送信情報と、演算前の値を算出することが容易なマスク関数による演算をおこない、前記第1の認証子と前記第2の送信情報に対して前記一方向変換関数による演算をおこなった値で、前記次回認証情報をマスクした第3の送信情報とを、を算出する算出工程と、
前記算出工程によって算出された前記第1の送信情報、前記第2の送信情報および前記第2の送信情報を、前記認証装置に送信する送信工程と、
前記メモリに保持されている情報を、前記第2の認証子、前記次回認証情報、前記第3の認証子および前記次々回認証情報に更新する更新工程と、
を含むことを特徴とする認証処理方法。
【請求項6】
前記算出工程においては、
前記第1の送信情報として、演算前の値を算出することが容易なマスク関数による演算をおこない、前記今回認証情報で前記第1の認証子にマスクした値を算出することを特徴とする請求項5に記載の認証処理方法。
【請求項7】
前記算出工程においては、
前記第2の送信情報として、前記次々回認証情報と前記第2の認証子とに対して前記一方向変換関数をおこなった値を算出することを特徴とする請求項5または6に記載の認証処理方法。
【請求項8】
前記生成工程においては、
第1の乱数と第2の乱数を生成した後に、当該第1の乱数に対して前記一方向変換関数による演算をおこなった前記第1の認証子を用いて前記今回認証情報を生成し、前記第2の乱数に対して前記一方向変換関数による演算をおこなった前記第2の認証子を用いて前記次回認証情報を生成することを特徴とする請求項5〜7のいずれか一つに記載の認証処理方法。
【請求項9】
前記算出工程においては、
第3の乱数を生成した後に、当該第3の乱数に対して前記一方向変換関数による演算をおこなった前記第3の認証子を用いて前記次々回認証情報を生成することを特徴とする請求項8に記載の認証処理方法。
【請求項10】
前記生成工程においては、
第1の乱数と第2の乱数を生成した後に、前記被認証装置に固有の認証鍵と前記第1の乱数に対して、前記一方向変換関数による演算をおこなった前記第1の認証子を用いて前記今回認証情報を生成し、前記認証鍵と前記第2の乱数に対して、前記一方向変換関数による演算をおこなった前記第2の認証子を用いて前記次回認証情報を生成することを特徴とする請求項5〜9のいずれか一つに記載の認証処理方法。
【請求項11】
前記算出工程においては、
第3の乱数を生成した後に、前記認証鍵と前記第3の乱数に対して、前記一方向変換関数による演算をおこなった前記第3の認証子を用いて前記次々回認証情報を生成することを特徴とする請求項10に記載の認証処理方法。
【請求項12】
前記保持工程においては、
さらに前記第1の乱数と前記第2の乱数を前記メモリに保持し、
前記算出工程においては、
前記保持工程によって保持された前記第1の乱数と前記認証鍵とに対して前記一方向変換関数による演算をおこなった値と、前記保持工程によって保持された前記第1の認証子と、が同じである場合に、前記次々回認証情報を生成することを特徴とする請求項8〜11のいずれか一つに記載の認証処理方法。
【請求項13】
前記保持工程においては、
さらに前記第2の乱数を前記メモリに保持し、
前記算出工程においては、
前記保持工程によって保持された前記第2の乱数と前記認証鍵とに対して前記一方向変換関数による演算をおこなった値と、前記保持工程によって保持された前記第2の認証子と、が同じである場合に、前記次々回認証情報を生成することを特徴とする請求項8〜11のいずれか一つに記載の認証処理方法。
【請求項14】
請求項1〜13のいずれか一つに記載の認証処理方法をコンピュータに実行させることを特徴とする認証処理プログラム。
【請求項15】
請求項14に記載の認証処理プログラムを記録したコンピュータに読み取り可能な記録媒体。
【請求項16】
認証装置が被認証装置を認証する認証処理システムにおいて、
前記被認証装置は、
第1の認証子に対して演算前の値を算出することが困難な一方向変換関数による演算をおこなって今回の認証処理に用いる今回認証情報を生成し、第2の認証子に対して前記一方向変換関数による演算をおこなって次回の認証処理に用いる次回認証情報を生成し、前記次回認証情報と前記第1の認証子に対して前記一方向変換関数による演算をおこなった検証情報を生成する生成手段と、
前記生成手段によって生成された前記今回認証情報と、前記検証情報とを、前記認証装置に安全な手段で送付する送付手段と、
前記第1の認証子、前記第2の認証子、前記今回認証情報および前記次回認証情報を所定のメモリに保持する保持手段と、
前記送付手段によって前記今回認証情報と、前記検証情報とを、前記認証装置に送付した後に、前記認証装置に認証を要求するための認証判断情報として、前記今回認証情報を用いて生成された第1の送信情報と、第3の認証子を用いて生成された次々回の認証処理に用いる次々回認証情報と前記第2の認証子とによって生成された第2の送信情報と、演算前の値を算出することが容易なマスク関数による演算をおこない、前記第1の認証子と前記第2の送信情報に対して前記一方向変換関数による演算をおこなった値で、前記次回認証情報をマスクした第3の送信情報とを、を算出する算出手段と、
前記算出手段によって算出された前記第1の送信情報、前記第2の送信情報および前記第2の送信情報を、前記認証装置に送信する送信手段と、
前記メモリに保持されている情報を、前記第2の認証子、前記次回認証情報、前記第3の認証子および前記次々回認証情報に更新する更新手段と、
を備え、
前記認証装置は、
前記今回認証情報と、前記検証情報とを、前記被認証装置から取得し所定のメモリに保持した後に、前記被認証装置の認証を判断するための認証判断情報として、前記第1の送信情報と、前記第2の送信情報と、前記第3の送信情報とを、前記被認証装置から受信する受信手段と、
前記受信手段によって受信された前記第1の送信情報と、前記メモリにあらかじめ保持されている前記今回認証情報とによって、前記第1の認証子を算出する第1の算出手段と、
前記第1の算出手段によって算出された前記第1の認証子と、前記メモリにあらかじめ保持されている前記今回認証情報とに基づいて、前記被認証装置を認証するか否かを判断する判断手段と、
前記第1の算出手段によって算出された前記第1の認証子と前記受信手段によって受信された前記第2の送信情報に対して一方向変換関数をおこなった値で、前記第3の送信情報のマスクを解除することで、前記次回認証情報を算出する第2の算出手段と、
前記第1の算出手段によって算出された前記第1の認証子と前記第2の算出手段によって算出された前記今回認証情報とによって生成された値と、前記メモリにあらかじめ保持されている前記検証情報とに基づいて、前記次回認証情報が偽造されていないか否かを検証する検証手段と、
前記判断手段によって前記被認証装置を認証すると判断され、かつ前記検証手段において前記次回認証情報が偽造されていないと認証された場合、前記メモリに保持されている情報を、前記受信手段によって受信された前記第2の送信情報および第2の算出手段によって算出された前記次回認証情報に更新する更新手段と、
を備えることを特徴とする認証処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2010−252275(P2010−252275A)
【公開日】平成22年11月4日(2010.11.4)
【国際特許分類】
【出願番号】特願2009−102430(P2009−102430)
【出願日】平成21年4月20日(2009.4.20)
【出願人】(506250309)株式会社ティーエスエスラボ (2)
【出願人】(300023383)株式会社トリニティーセキュリティーシステムズ (376)
【Fターム(参考)】