(57)【要約】【課題】  柔軟性や利便性を高める。【解決手段】  所定のグループに属する１または複数の証明装置を、当該グループ内で共通な共通鍵暗号方式の秘密鍵の照合によって検証装置が認証する認証システムにおいて、前記検証装置は、第１の乱数生成手段と、第１の暗号化手段と、第１の復号手段と、第１の変換処理手段と、第１の検証実行手段とを備え、前記証明装置は、前記検証装置から受信した暗号化結果を、証明装置側秘密鍵を用いて復号する第２の復号手段と、第２の復号手段の復号結果として得られる乱数を、共通変換関数を用いて変換する第２の変換処理手段と、当該第２の変換処理手段の変換結果を、前記証明装置側秘密鍵を用いて暗号化し、暗号化結果を前記検証装置へ送信する第２の暗号化手段とを備える。【選択図】  図１
2005176231.tif 000002
【特許請求の範囲】
【請求項１】
所定のグループに属する１または複数の証明装置を、当該グループ内で共通な共通鍵暗号方式の秘密鍵の照合によって検証装置が認証する認証システムにおいて、
前記検証装置は、
乱数を生成する第１の乱数生成手段と、
当該第１の乱数生成手段が生成した乱数を、前記秘密鍵のうち検証装置が持つ検証装置側秘密鍵で暗号化し、暗号化結果を前記証明装置へ送信する第１の暗号化手段と、
前記証明装置が、当該暗号化結果を、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて復号した結果として得られる乱数をグループ内の証明装置に共通な所定の共通変換関数を用いて変換した上、前記証明装置側秘密鍵で暗号化した暗号化結果を返送してきたとき、その暗号化結果を検証装置側秘密鍵で復号する第１の復号手段と、
前記第１の乱数生成手段が生成した乱数を、前記共通変換関数を用いて変換する第１の変換処理手段と、
前記第１の復号手段による復号結果と、当該第１の変換処理手段による変換結果を照合することによって、前記証明装置が正規の証明装置側秘密鍵を持つことを確かめ、証明装置の正当性を検証する第１の検証実行手段とを備え、
前記証明装置は、
前記検証装置から受信した暗号化結果を、前記証明装置側秘密鍵を用いて復号する第２の復号手段と、
当該第２の復号手段の復号結果として得られる乱数を、前記共通変換関数を用いて変換する第２の変換処理手段と、
当該第２の変換処理手段の変換結果を、前記証明装置側秘密鍵を用いて暗号化し、暗号化結果を前記検証装置へ送信する第２の暗号化手段とを備えたことを特徴とする認証システム。
【請求項２】
請求項１の認証システムにおいて、
前記検証装置は、
前記第１の乱数生成手段が生成した乱数を、次回の認証のために記憶する第１の乱数記憶手段を備え、
前記第１の変換処理手段は、
前記共通変換関数の替わりに、前記グループ内で共通な所定の２変数関数を用いて、当該第１の乱数記憶手段から読み出した前回の乱数と、前記第１の乱数生成手段が生成した今回の乱数に応じた変換結果を出力するように構成し、
前記証明装置は、
前記第２の復号手段の復号結果として得られる乱数を、次回の認証のために記憶する第２の乱数記憶手段を備え、
前記第２の変換処理手段は、
前記共通変換関数の替わりに、前記２変数関数を用いて、当該第２の乱数記憶手段から読み出した前回の乱数と、前記第２の復号手段の復号結果として得られる今回の乱数に応じた変換結果を出力するように構成したことを特徴とする認証システム。
【請求項３】
請求項１の認証システムにおいて、
前記検証装置は、
前記第１の乱数生成手段が生成した乱数を、次回の認証のために記憶する第１の乱数記憶手段を備え、
前記第１の変換処理手段は、
前記共通変換関数の替わりに機能する第１の関数生成手段と第１の変形手段を有し、
当該第１の関数生成手段は、前記第１の乱数記憶手段から読み出した前回の乱数をもとに変形関数を生成して第１の変形手段に渡し、当該第１の変形手段は、前記第１の乱数生成手段が生成した今回の乱数を当該変形関数で変形した上で、前記第１の検証実行手段に渡す構成とし、
前記証明装置は、
前記第２の復号手段の復号結果として得られる乱数を、次回の認証のために記憶する第２の乱数記憶手段を備え、
前記第２の変換処理手段は、
前記共通変換関数の替わりに機能する第２の関数生成手段と第２の変形手段を有し、
当該第２の関数生成手段は、前記第２の乱数記憶手段から読み出した前回の乱数をもとに変形関数を生成して第２の変形手段に渡し、当該第２の変形手段は、前記第２の復号手段の復号結果として得られる今回の乱数を当該変形関数に基づいて変形し、その変形結果を、前記第２の暗号化手段に渡す構成としたことを特徴とする認証システム。
【請求項４】
共通鍵暗号方式の秘密鍵の照合によって検証装置が証明装置を認証する認証システムにおいて、
前記証明装置は、
乱数を生成する第２の乱数生成手段と、
当該第２の乱数生成手段が生成した乱数を、今回の認証のために記憶しておく第３の乱数記憶手段と、
当該第３の乱数記憶手段から読み出した今回の乱数と、第２の乱数生成手段が生成した次回の乱数とを、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて暗号化し、暗号化結果を前記検証装置へ送信する第３の暗号化手段とを備え、
前記検証装置は、
前記証明装置から受信した暗号化結果を、前記秘密鍵のうち検証装置が持つ検証装置側秘密鍵を用いて復号する第３の復号手段と、
当該第３の復号手段の復号結果のうち次回の乱数を、次回の認証のために記憶しておく第４の乱数記憶手段と、
前記第３の復号手段の復号結果のうち今回の乱数と、当該第４の乱数記憶手段から読み出した今回の乱数とを照合することによって、前記証明装置が正規の証明装置側秘密鍵を持つことを確かめ、証明装置の正当性を検証する第２の検証実行手段とを備えることを特徴とする認証システム。
【請求項５】
請求項４の認証システムにおいて、
前記証明装置は、
前記第２の乱数生成手段および第３の乱数記憶手段と、前記第３の暗号化手段のあいだに介在し、当該第２の乱数生成手段から供給された次回の乱数はそのまま、前記第３の乱数記憶手段に記憶しておいた今回の乱数は所定の変換関数を用いて変換した上で、前記第３の暗号化手段に供給する第３の変換処理手段を備え、
前記検証装置は、
前記第２の検証実行手段および第４の乱数記憶手段と、前記第３の復号手段のあいだに介在し、当該第３の復号手段の復号結果のうち前記変換関数で変換された今回の乱数を逆変換によって元の乱数に復元するか、または、前記第４の乱数記憶手段に記憶してあった今回の乱数を前記変換関数と同じ関数で変換する第４の変換処理手段を備え、
前記第２の検証実行手段は、当該復元結果と前記第４の乱数記憶手段に記憶してあった今回の乱数との照合、または、当該変換結果と前記第４の乱数記憶手段に記憶してあった今回の乱数の前記変換関数による変換結果との照合により、前記証明装置の正当性を検証することを特徴とする認証システム。
【請求項６】
所定のグループに属する１または複数の証明装置を、当該グループ内で共通な共通鍵暗号方式の秘密鍵の照合によって検証装置が認証する認証方法において、
前記検証装置内では、
第１の乱数生成手段が乱数を生成し、
第１の暗号化手段が、当該第１の乱数生成手段が生成した乱数を、前記秘密鍵のうち検証装置が持つ検証装置側秘密鍵で暗号化して、暗号化結果を前記証明装置へ送信し、
これを受信する前記証明装置内では、
第２の復号手段が、受信した当該暗号化結果を、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて復号して乱数を得、
第２の変換処理手段が、当該乱数を、前記グループ内の証明装置に共通な所定の共通変換関数を用いて変換し、
第２の暗号化手段が、当該第２の変換処理手段の変換結果を、前記証明装置側秘密鍵を用いて暗号化して、暗号化結果を前記検証装置へ送信し、
これを受信する前記検証装置内では、
第１の復号手段が、受信した当該暗号化結果を前記検証装置側秘密鍵で復号し、
第１の変換処理手段が、前記第１の乱数生成手段が生成した乱数を、前記共通変換関数を用いて変換し、
第１の検証実行手段が、当該第１の変換処理手段による変換結果と、前記第１の復号手段による復号結果を照合することによって、前記証明装置が正規の証明装置側秘密鍵を持つことを確かめ、証明装置の正当性を検証することを特徴とする認証方法。
【請求項７】
共通鍵暗号方式の秘密鍵の照合によって検証装置が証明装置を認証する認証方法において、
前記証明装置内では、
第２の乱数生成手段が乱数を生成し、
第３の乱数記憶手段が、当該第２の乱数生成手段が生成した乱数を、今回の認証のために記憶しておき、
第３の暗号化手段が、当該第３の乱数記憶手段から読み出した今回の乱数と、第２の乱数生成手段が生成した次回の乱数とを、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて暗号化して、暗号化結果を前記検証装置へ送信し、
この暗号化結果を受信する前記検証装置内では、
第３の復号手段が、前記証明装置から受信した暗号化結果を、前記秘密鍵のうち検証装置が持つ検証装置側秘密鍵を用いて復号し、
第４の乱数記憶手段が、当該第３の復号手段の復号結果のうち次回の乱数を、次回の認証のために記憶しておき、
第２の検証実行手段が、前記第３の復号手段の復号結果のうち今回の乱数と、当該第４の乱数記憶手段から読み出した今回の乱数とを照合することによって、前記証明装置が正規の証明装置側秘密鍵を持つことを確かめ、証明装置の正当性を検証することを特徴とする認証方法。
【請求項８】
所定のグループに属する１または複数の証明装置を、当該グループ内で共通な共通鍵暗号方式の秘密鍵の照合によって検証装置が認証する認証システムの構成要素としての検証装置において、
乱数を生成する第１の乱数生成手段と、
当該第１の乱数生成手段が生成した乱数を、前記秘密鍵のうち検証装置が持つ検証装置側秘密鍵で暗号化し、暗号化結果を前記証明装置へ送信する第１の暗号化手段と、
前記証明装置が、当該暗号化結果を、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて復号した結果として得られる乱数をグループ内の証明装置に共通な所定の共通変換関数を用いて変換した上、前記証明装置側秘密鍵で暗号化した暗号化結果を返送してきたとき、その暗号化結果を検証装置側秘密鍵で復号する第１の復号手段と、
前記第１の乱数生成手段が生成した乱数を、前記共通変換関数を用いて変換する第１の変換処理手段と、
前記第１の復号手段による復号結果と、当該第１の変換処理手段による変換結果を照合することによって、前記証明装置が正規の証明装置側秘密鍵を持つことを確かめ、証明装置の正当性を検証する第１の検証実行手段とを備えたことを特徴とする検証装置。
【請求項９】
所定のグループに属する１または複数の証明装置を、当該グループ内で共通な共通鍵暗号方式の秘密鍵の照合によって検証装置が認証する認証システムの構成要素としての証明装置において、
前記検証装置側で生成された乱数を、前記秘密鍵のうち検証装置が持つ検証装置側秘密鍵で暗号化し送信したものを受信し、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて復号する第２の復号手段と、
当該第２の復号手段の復号結果として得られる乱数を、グループ内の証明装置に共通な所定の共通変換関数を用いて変換する第２の変換処理手段と、
当該第２の変換処理手段の変換結果を、前記証明装置側秘密鍵を用いて暗号化し、暗号化結果を前記検証装置へ送信する第２の暗号化手段とを備えたことを特徴とする証明装置。
【請求項１０】
共通鍵暗号方式の秘密鍵の照合によって検証装置が証明装置を認証する認証システムの構成要素としての証明装置において、
乱数を生成する第２の乱数生成手段と、
当該第２の乱数生成手段が生成した乱数を、今回の認証のために記憶しておく第３の乱数記憶手段と、
当該第３の乱数記憶手段から読み出した今回の乱数と、第２の乱数生成手段が生成した次回の乱数とを、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて暗号化し、暗号化結果を前記検証装置へ送信する第３の暗号化手段とを備えたことを特徴とする証明装置。
【請求項１１】
共通鍵暗号方式の秘密鍵の照合によって検証装置が証明装置を認証する認証システムの構成要素としての検証装置において、
前記証明装置が、今回の乱数と次回の乱数とを、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて暗号化し送信したものを受信し、前記秘密鍵のうち検証装置が持つ検証装置側秘密鍵を用いて復号する第３の復号手段と、
当該第３の復号手段の復号結果のうち次回の乱数を、次回の認証のために記憶しておく第４の乱数記憶手段と、
前記第３の復号手段の復号結果のうち今回の乱数と、当該第４の乱数記憶手段から読み出した今回の乱数とを照合することによって、前記証明装置が正規の証明装置側秘密鍵を持つことを確かめ、証明装置の正当性を検証する第２の検証実行手段とを備えることを特徴とする検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は認証システムおよび方法に関するものである。
【０００２】
また、本発明は、認証システムの構成要素としての証明装置および検証装置に関するものである。
【背景技術】
【０００３】
下記の非特許文献１に記載されているように、コンピュータ間などで認証を行う場合、暗号を利用した方式が主流である。暗号方式には共通鍵暗号と公開鍵暗号があり、それぞれの暗号系を利用した認証方式が提案されている。
【０００４】
ここでは共通鍵暗号を利用した認証方式を考える。この方式は、検証者が利用者の鍵を管理する必要があるという欠点があるものの、あるシステム内に限定された利用者の認証をするようなシステムにおいては現実的な方式である。
【０００５】
共通鍵暗号を利用した認証方式として、具体的には、例えば次のような方式が知られている。
【０００６】
ステップＳ１：検証者が乱数ｒを生成して、それを鍵（秘密鍵）Ｋを用いて暗号化した結果Ｘ＝ＥＫ（ｒ）を利用者に送信する。
【０００７】
ステップＳ２：利用者はＸを鍵Ｋを用いて復号してｒを求め、このｒに変形を加えてｒ’を求め、ｒ’を鍵Ｋを用いて暗号化した結果Ｙ＝ＥＫ（ｒ’）を検証者に送る。
【０００８】
ステップＳ３：検証者はｒ’＝ＤＫ（Ｙ）が成り立つことを検証する。
【０００９】
ここで、 乱数ｒをｒ’に変形するための変形手段を検証者と証明者で共有し、検証者がステップＳ１で送信した乱数ｒを記憶していれば、ステップＳ３では、検証者側で、ｒ’＝ＤＫ（Ｙ）が成り立つか否かを検査することができる。もちろん、秘密鍵Ｋを、検証者と証明者が共有していることは当然である。
【非特許文献１】岡本龍明・山本博資、「現代暗号」、産業図書、ｐ１５３−１５５
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、上述したステップＳ１〜Ｓ３から構成された認証方式では、個別の利用者を認証することはできるものの、いずれの利用者であるかを明示することなく匿名のまま正規のグループに属することを認証（検証）することや、状況に応じて、いずれの利用者であるかを明示して認証したり、匿名のままグループに属することを認証することは難しく、柔軟性や利便性が低い。
【課題を解決するための手段】
【００１１】
かかる課題を解決するために、第１の本発明では、所定のグループに属する１または複数の証明装置を、当該グループ内で共通な共通鍵暗号方式の秘密鍵の照合によって検証装置が認証する認証システムにおいて、（１）前記検証装置は、乱数を生成する第１の乱数生成手段と、（２）当該第１の乱数生成手段が生成した乱数を、前記秘密鍵のうち検証装置が持つ検証装置側秘密鍵で暗号化し、暗号化結果を前記証明装置へ送信する第１の暗号化手段と、（３）前記証明装置が、当該暗号化結果を、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて復号した結果として得られる乱数をグループ内の証明装置に共通な所定の共通変換関数を用いて変換した上、前記証明装置側秘密鍵で暗号化した暗号化結果を返送してきたとき、その暗号化結果を検証装置側秘密鍵で復号する第１の復号手段と、（４）前記第１の乱数生成手段が生成した乱数を、前記共通変換関数を用いて変換する第１の変換処理手段と、（５）前記第１の復号手段による復号結果と、当該第１の変換処理手段による変換結果を照合することによって、前記証明装置が正規の証明装置側秘密鍵を持つことを確かめ、証明装置の正当性を検証する第１の検証実行手段とを備え、（６）前記証明装置は、前記検証装置から受信した暗号化結果を、前記証明装置側秘密鍵を用いて復号する第２の復号手段と、（７）当該第２の復号手段の復号結果として得られる乱数を、前記共通変換関数を用いて変換する第２の変換処理手段と、（８）当該第２の変換処理手段の変換結果を、前記証明装置側秘密鍵を用いて暗号化し、暗号化結果を前記検証装置へ送信する第２の暗号化手段とを備えたことを特徴とする。
【００１２】
また、第２の本発明では、共通鍵暗号方式の秘密鍵の照合によって検証装置が証明装置を認証する認証システムにおいて、（１）前記証明装置は、乱数を生成する第２の乱数生成手段と、（２）当該第２の乱数生成手段が生成した乱数を、今回の認証のために記憶しておく第３の乱数記憶手段と、（３）当該第３の乱数記憶手段から読み出した今回の乱数と、第２の乱数生成手段が生成した次回の乱数とを、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて暗号化し、暗号化結果を前記検証装置へ送信する第３の暗号化手段とを備え、（４）前記検証装置は、前記証明装置から受信した暗号化結果を、前記秘密鍵のうち検証装置が持つ検証装置側秘密鍵を用いて復号する第３の復号手段と、（５）当該第３の復号手段の復号結果のうち次回の乱数を、次回の認証のために記憶しておく第４の乱数記憶手段と、（６）前記第３の復号手段の復号結果のうち今回の乱数と、当該第４の乱数記憶手段から読み出した今回の乱数とを照合することによって、前記証明装置が正規の証明装置側秘密鍵を持つことを確かめ、証明装置の正当性を検証する第２の検証実行手段とを備えることを特徴とする。
【００１３】
さらに、第３の本発明では、所定のグループに属する１または複数の証明装置を、当該グループ内で共通な共通鍵暗号方式の秘密鍵の照合によって検証装置が認証する認証方法において、（１）前記検証装置内では、第１の乱数生成手段が乱数を生成し、（２）第１の暗号化手段が、当該第１の乱数生成手段が生成した乱数を、前記秘密鍵のうち検証装置が持つ検証装置側秘密鍵で暗号化して、暗号化結果を前記証明装置へ送信し、（３）これを受信する前記証明装置内では、第２の復号手段が、受信した当該暗号化結果を、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて復号して乱数を得、（４）第２の変換処理手段が、当該乱数を、前記グループ内の証明装置に共通な所定の共通変換関数を用いて変換し、（５）第２の暗号化手段が、当該第２の変換処理手段の変換結果を、前記証明装置側秘密鍵を用いて暗号化して、暗号化結果を前記検証装置へ送信し、（６）これを受信する前記検証装置内では、第１の復号手段が、受信した当該暗号化結果を前記検証装置側秘密鍵で復号し、（７）第１の変換処理手段が、前記第１の乱数生成手段が生成した乱数を、前記共通変換関数を用いて変換し、（８）第１の検証実行手段が、当該第１の変換処理手段による変換結果と、前記第１の復号手段による復号結果を照合することによって、前記証明装置が正規の証明装置側秘密鍵を持つことを確かめ、証明装置の正当性を検証することを特徴とする。
【００１４】
さらにまた、第４の本発明では、共通鍵暗号方式の秘密鍵の照合によって検証装置が証明装置を認証する認証方法において、（１）前記証明装置内では、第２の乱数生成手段が乱数を生成し、（２）第３の乱数記憶手段が、当該第２の乱数生成手段が生成した乱数を、今回の認証のために記憶しておき、（３）第３の暗号化手段が、当該第３の乱数記憶手段から読み出した今回の乱数と、第２の乱数生成手段が生成した次回の乱数とを、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて暗号化して、暗号化結果を前記検証装置へ送信し、（４）この暗号化結果を受信する前記検証装置内では、第３の復号手段が、前記証明装置から受信した暗号化結果を、前記秘密鍵のうち検証装置が持つ検証装置側秘密鍵を用いて復号し、（５）第４の乱数記憶手段が、当該第３の復号手段の復号結果のうち次回の乱数を、次回の認証のために記憶しておき、（６）第２の検証実行手段が、前記第３の復号手段の復号結果のうち今回の乱数と、当該第４の乱数記憶手段から読み出した今回の乱数とを照合することによって、前記証明装置が正規の証明装置側秘密鍵を持つことを確かめ、証明装置の正当性を検証することを特徴とする。
【００１５】
また、第５の本発明では、所定のグループに属する１または複数の証明装置を、当該グループ内で共通な共通鍵暗号方式の秘密鍵の照合によって検証装置が認証する認証システムの構成要素としての検証装置において、（１）乱数を生成する第１の乱数生成手段と、（２）当該第１の乱数生成手段が生成した乱数を、前記秘密鍵のうち検証装置が持つ検証装置側秘密鍵で暗号化し、暗号化結果を前記証明装置へ送信する第１の暗号化手段と、（３）前記証明装置が、当該暗号化結果を、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて復号した結果として得られる乱数をグループ内の証明装置に共通な所定の共通変換関数を用いて変換した上、前記証明装置側秘密鍵で暗号化した暗号化結果を返送してきたとき、その暗号化結果を検証装置側秘密鍵で復号する第１の復号手段と、（４）前記第１の乱数生成手段が生成した乱数を、前記共通変換関数を用いて変換する第１の変換処理手段と、（５）前記第１の復号手段による復号結果と、当該第１の変換処理手段による変換結果を照合することによって、前記証明装置が正規の証明装置側秘密鍵を持つことを確かめ、証明装置の正当性を検証する第１の検証実行手段とを備えたことを特徴とする。
【００１６】
さらに、第６の本発明では、所定のグループに属する１または複数の証明装置を、当該グループ内で共通な共通鍵暗号方式の秘密鍵の照合によって検証装置が認証する認証システムの構成要素としての証明装置において、（１）前記検証装置側で生成された乱数を、前記秘密鍵のうち検証装置が持つ検証装置側秘密鍵で暗号化し送信したものを受信し、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて復号する第２の復号手段と、（２）当該第２の復号手段の復号結果として得られる乱数を、グループ内の証明装置に共通な所定の共通変換関数を用いて変換する第２の変換処理手段と、（３）当該第２の変換処理手段の変換結果を、前記証明装置側秘密鍵を用いて暗号化し、暗号化結果を前記検証装置へ送信する第２の暗号化手段とを備えたことを特徴とする。
【００１７】
また、第７の本発明では、共通鍵暗号方式の秘密鍵の照合によって検証装置が証明装置を認証する認証システムの構成要素としての証明装置において、（１）乱数を生成する第２の乱数生成手段と、（２）当該第２の乱数生成手段が生成した乱数を、今回の認証のために記憶しておく第３の乱数記憶手段と、（３）当該第３の乱数記憶手段から読み出した今回の乱数と、第２の乱数生成手段が生成した次回の乱数とを、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて暗号化し、暗号化結果を前記検証装置へ送信する第３の暗号化手段とを備えたことを特徴とする。
【００１８】
さらに、第８の本発明では、共通鍵暗号方式の秘密鍵の照合によって検証装置が証明装置を認証する認証システムの構成要素としての検証装置において、（１） 前記証明装置が、今回の乱数と次回の乱数とを、前記秘密鍵のうち証明装置が持つ証明装置側秘密鍵を用いて暗号化し送信したものを受信し、前記秘密鍵のうち検証装置が持つ検証装置側秘密鍵を用いて復号する第３の復号手段と、（２）当該第３の復号手段の復号結果のうち次回の乱数を、次回の認証のために記憶しておく第４の乱数記憶手段と、（３）前記第３の復号手段の復号結果のうち今回の乱数と、当該第４の乱数記憶手段から読み出した今回の乱数とを照合することによって、前記証明装置が正規の証明装置側秘密鍵を持つことを確かめ、証明装置の正当性を検証する第２の検証実行手段とを備えることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、柔軟性や利便性が向上する。
【発明を実施するための最良の形態】
【００２０】
（Ａ）実施形態
以下、本発明にかかる認証システムおよび方法、ならびに、証明装置および検証装置の実施形態について説明する。
【００２１】
（Ａ−１）第１の実施形態の構成
本実施形態にかかる通信システム１０の全体構成例を図６に示す。一般的には、検証装置と証明装置のあいだにネットワークが介在するとは限らず、直接、有線伝送路や無線伝送路で接続されていることも少なくない。直接、無線伝送路で接続されるケースの例としては、例えば、証明装置がユーザの携帯する非接触ＩＣカードなどに内蔵され、検証装置が非接触ＩＣカードに対向するリーダ装置側に設けられるケースなどがあり、例えば、入退出管理などにも利用され得る。また、直接、有線伝送路で接続されるケースは、例えば、ケーブルなどを用いて、検証装置と証明装置を１対１で接続するようなケースである。
【００２２】
検証装置と証明装置をケーブルにより１対１で接続するケースなど、通信環境や通信システム１０の運用によっては、検証装置と証明装置のあいだの通信が第３者に傍受される可能性を無くすことや著しく低減することも可能であるが、認証方式そのもののセキュリティ性（安全性）を論じ、通信システム１０の安全性を説明する上では、傍受や攻撃を試みる悪意の第３者の存在を想定したほうが好都合なので、図６にはこのような第３者にあたるユーザＵ４も示してある。
【００２３】
図６において、当該通信システム１０は、ネットワーク１１と、検証装置１００と、証明装置１１０、１０９とを備えている。また、前記ユーザＵ４は、少なくとも装置１００と１１０のあいだ、または装置１００と１０９とのあいだの通信を傍受し得る。
【００２４】
ネットワーク１１はＬＡＮ（ローカルエリアネットワーク）であってもよく、インターネットなどであってもよい。また、当該ネットワーク１１上の通信におけるＯＳＩ参照モデルの物理層は、有線であっても無線であってもかまわない。
【００２５】
検証装置１００と証明装置１１０、１０９は、その操作者であるユーザＵ１、Ｕ２、Ｕ３を伴うこともあり、伴わないこともある。装置が自動的に認証の手順を実行する場合などには、ユーザＵ１，Ｕ２、Ｕ３は存在しないが、認証の手順のなかにユーザの操作（例えば、ユーザＩＤやパスワードの入力など）が含まれる場合には存在する。
【００２６】
証明装置１１０側は自らの正当性を検証装置１００に対して証明しようとする側であり、検証装置１００側はその証明を検証する側である。
【００２７】
前記認証の手順にユーザＵ２の操作が含まれない場合、この認証は、証明装置１１０自体の正当性を検証する端末認証にすぎないが、前記認証の手順にユーザＵ２の操作が含まれる場合には、証明装置１１０自体の正当性を検証する端末認証に加え、ユーザＵ２の正当性を検証するユーザ認証も兼ねることができる。いずれの場合でも、認証の手順の大部分は、証明装置１１０や検証装置１００自体が自動的に実行するものである。
【００２８】
通信端末１２は悪意のユーザＵ４によって利用され得る情報処理装置で、ネットワーク１１を介して、装置１００、１１０間の通信を傍受したり、装置１００または１１０に対して攻撃を試みる。
【００２９】
前記証明装置１０９は、前記証明装置１１０に対応するので、その詳しい説明は省略する。ここで、２つの証明装置１１０と１０９は、同じグループＧＰ１に属するものとする。
【００３０】
前記検証装置１００および証明装置１１０の内部構成例を図１に示す。証明装置１０９が実質的に当該証明装置１１０と同じ内部構成を備えることは当然である。なお、図１上は、前記ネットワーク１１と通信端末１２は省略している。
【００３１】
（Ａ−１−１）検証装置の内部構成例
図１において、当該検証装置１００は、乱数生成部１０１と、暗号化部１０２と、復号部１０３と、メッセージ生成部１０４と、検査部１０５とを備えている。
【００３２】
このうち乱数生成部１０１は乱数ｒ１を生成し、出力する部分である。通常、情報処理装置のなかで生成される乱数は擬似的な乱数にすぎないが、安全性を高める観点では、真正な乱数に近い性質の疑似乱数を生成することが望ましいことは当然である。また、いわゆる総当たり攻撃を受けた場合の安全性を高める観点から、１つの乱数（例えば、ｒ１）のビット長は十分に長いものであることが求められる。
【００３３】
暗号化部１０２は、当該乱数生成部１０１が生成した乱数ｒ１を共通鍵Ｋで暗号化し、暗号化結果Ｘ（＝ＥＫ（ｒ１））を送信する部分である。この共通鍵Ｋの鍵長も、前記乱数と同様、十分に長いビット長を有するものであることが望ましい。
【００３４】
なお、ＥＫ（ｒ１）は、鍵Ｋを用いて、乱数ｒ１を暗号化する演算またはその演算結果を示している。
【００３５】
ここで、共通鍵（秘密鍵）Ｋは、検証装置１００および証明装置１１０も含め、グループＧＰ１内で共有されている共通鍵方式の暗号鍵である。検証装置１００と証明装置１１０のあいだにおける共通鍵Ｋの共有は、本実施形態の認証手順が開始される前に予め実行しておく必要がある。共通鍵Ｋの共有のためには様々な方法を用いることが可能であるが、例えば、ネットワーク１０経由でいずれか一方から他方へ当該共通鍵Ｋを配送することによって共有を実現することも可能である。このとき、公開鍵系の暗号を利用して、共通鍵Ｋの秘匿性を確保することができる。
【００３６】
暗号化結果Ｘを受信すると、当該暗号化結果Ｘに対し証明装置１１０が必要な処理を行い、暗号化結果Ｙを返送してくる。
【００３７】
この暗号化結果Ｙを受信し処理する検証装置１００内の復号部１０３は、前記共通鍵Ｋを用いて当該暗号化結果Ｙを復号し、復号結果を検査部１０５に供給する部分である。
【００３８】
メッセージ生成部１０４は、所定の変換関数ｆ１に応じた処理を実行して、前記乱数生成部１０１が生成した乱数ｒ１をメッセージｒ１’に変換する部分である。当該変換関数ｆ１は基本的にグループＧＰ１内で共有されるものであり、前記共通鍵Ｋと同様、検証装置１００と証明装置１１０のあいだで秘匿性を保ちながら共有しておく必要がある。
【００３９】
ただし、その共有は必ずしも本実施形態の認証の手順が開始する前に行っておく必要はない。他の手段でグループを識別できるならば、例えば、前記暗号化結果Ｘを生成する際、暗号化部１０２が乱数ｒ１とともに識別したグループに対応した変換関数ｆ１を共通鍵Ｋで暗号化して送信するようにしてもよい。その場合、暗号化結果Ｘには、乱数ｒ１と変換関数ｆ１が含まれることになる。
【００４０】
検査部１０５は、復号部１０３から供給される前記復号結果と、当該メッセージとを比較することによって検証を実行する部分である。証明装置１１０が正当な証明装置であれば、正規の共通鍵Ｋと変換関数ｆ１を搭載しているため、証明装置１１０が送信してきた暗号結果Ｙを復号部１０３が復号して得た復号結果はメッセージｒ１’に一致するが、そうでない場合には一致しない。
【００４１】
共通鍵Ｋと変換関数ｆ１はグループＧＰ１内で共通であるため、これらに基づく認証では、個々の証明装置まで（例えば、１１０と１０９の区別）は特定できず、各ユーザＵ２，Ｕ３は匿名のまま認証を行うことが可能である。
【００４２】
検証装置１００の側からすると、個人まで特定できなくてもグループＧＰ１に属する正規のユーザのいずれかであることが確認できれば十分であることも少なくない。その一方で、個人情報の漏洩などの問題が報道されること等の影響もあり、正規のユーザ（例えば、Ｕ２）の側では、検証装置１００側のログファイルなどに、自身の認証に関する履歴が個人まで特定される形式で残されることに不安感を持つことも少なくない。そこで、匿名のままの認証を許容すことによって正規のユーザＵ２に安心感を与えることができる。
【００４３】
ただし、個人を明示して（または、個々の証明装置を明示して）認証を行う場合には、各ユーザのユーザＩＤ（例えば、ユーザＵ２のユーザＩＤであるＵＩＤ２）の値を、当該メッセージｒ１’の生成に利用する。この場合のメッセージｒ１’の生成方法には様々なものがあり得るが、メッセージｒ１’の値にユーザＩＤの値が反映され、ユーザＩＤの値に応じてｒ１’の値が変化するものであれば、どのような方法を用いてもかまわない。ここで、このユーザＩＤとともに、またはユーザＩＤに替えて、各ユーザが設定したパスワードなどを利用するようにしてもよい。
【００４４】
一方、前記ネットワーク１１経由で当該検証装置１００と通信する証明装置１１０の内部構成例も図１に示す通りである。上述したように、証明装置１０９の内部構成は実質的に当該証明装置１１０と同じである。
【００４５】
（Ａ−１−２）証明装置の内部構成例
図１において、当該証明装置１１０は、復号部１１１と、メッセージ生成部１１２と、暗号化部１１３とを備えている。
【００４６】
このうち暗号化部１１３は前記暗号化部１０２に対応し、復号部１１１は前記復号部１０３に対応し、メッセージ生成部１１２は前記メッセージ生成部１０４に対応するので、その詳しい説明は省略する。
【００４７】
ただし復号部１１１が復号するのは、前記ネットワーク１１経由で受信した暗号化結果Ｘであり、共通鍵Ｋによる復号結果として前記乱数ｒ１をメッセージ生成部１１２に供給する。
【００４８】
また、メッセージ生成部１１２は、前記変換関数ｆ１を用いて、当該乱数ｒ１をメッセージｒ１’に変換し、このメッセージｒ１’を暗号化部１１３に供給する。
【００４９】
暗号化部１１３は、メッセージｒ１’を共通鍵Ｋで暗号化し、暗号化結果Ｙをネットワーク１１経由で検証装置１００へ送信する。
【００５０】
これらの構成要素１１１〜１１３が使用する共通鍵Ｋや変換関数ｆ１は、上述した共有により、予め、証明装置１１０に登録しておく。
【００５１】
以下、上記のような構成を有する本実施形態の動作について説明する。
【００５２】
前記グループＧＰ１には少なくとも装置１００，１１０，１０９（ユーザＵ１，Ｕ２，Ｕ３）が属しているものとする。
【００５３】
（Ａ−２）第１の実施形態の動作
検証装置１００内では、乱数生成部１０１が生成した同じ乱数ｒ１が、暗号化部１０２とメッセージ生成部１０４に供給される。メッセージ生成部１０４は後の処理のためにこの乱数ｒ１を記憶し、暗号化部１０２は当該乱数ｒ１を共通鍵Ｋで暗号化して、暗号化結果Ｘ（＝ＥＫ（ｒ１））を送信する。
【００５４】
実際の実装では、証明装置１１０から認証の要求メッセージが届いたときに、その応答として検証装置１００から当該暗号化結果Ｘを送信するようにしてもよいし、証明装置１１０の存否にかかわらず、一方的に検証装置１００のほうから定期的または不定期的に暗号化結果Ｘを送信するようにしてもよい。一方的に検証装置１００のほうから暗号化結果Ｘを送信する場合、暗号化結果Ｘの送信は、ポーリングをかけることにほぼ等しい。
【００５５】
いずれのケースでも、この暗号化結果Ｘをネットワーク１１経由で受信した証明装置１１０の内部では、復号部１１１が共通鍵Ｋを用いて復号することにより、復号結果として前記乱数ｒ１（＝ＤＫ（Ｘ））を得、メッセージ生成部１１２に供給する。
【００５６】
なお、ＤＫ（Ｘ）は、鍵Ｋを用いて、暗号化結果Ｘを復号する演算またはその演算結果を示している。
【００５７】
メッセージ生成部１１２の処理は匿名のまま（個人や個々の証明装置を明示せずに）認証を行う場合と、個人を明示して（または、個々の証明装置を明示して）認証を行う場合とで相違する。
【００５８】
匿名のまま認証を行う場合、メッセージ生成部１１２は、前記グループＧＰ１内で共通な変換関数ｆ１を用いて当該乱数ｒ１をｒ１’に変換する。
【００５９】
これに対し、個人を明示して認証を行う場合には、変換関数ｆ１による変換を行う前のｒ１または変換後のｒ１’をユーザＵ２のユーザＩＤ等の値に応じて変化させる（このユーザＩＤ等は、ユーザＵ２に入力させてメッセージ生成部１１２に供給するものであってもよく、自動的に、メッセージ生成部１１２に供給するものであってもよい。ただし、端末認証ではなくユーザ認証を行うには、ユーザＵ２にユーザＩＤ等を入力させる手順は不可欠である）。あるいは、変換関数ｆ１そのものを、ユーザＩＤ等の値に応じて変化させたり、予め、証明装置（例えば、１０９，１１０）ごとに異なる変換関数ｆ１を搭載しておくようにしてもよい。なお、ｒ１’の値をユーザＩＤ等に応じて変化させる場合も含め、メッセージ生成部１１２から暗号化部１１３へ供給するメッセージは、ｒ１’で示す。
【００６０】
いずれのケースでも、暗号化部１１３は、メッセージ生成部１１２から受け取ったメッセージｒ１’を共通鍵Ｋで暗号化し、暗号化結果Ｙ（＝ＥＫ（ｒ１’））を送信する。この暗号化結果Ｙはネットワーク１１経由で検証装置１００に受信される。
【００６１】
検証装置１００のなかでは、復号部１０３が当該暗号化結果Ｙを共通鍵Ｋで復号（ＤＫ（Ｙ））し、その復号結果を検査部１０５に供給する。
【００６２】
検査部１０５には、前記メッセージ生成部１０４からも前記変換関数ｆ１で変換したメッセージｒ１’が届いているので、復号部１０３から届いた復号結果と当該メッセージｒ１’とを比較し、両者が一致していれば認証ＯＫ、一致していないければＮＧと判定する。
【００６３】
もしも正規の証明装置でない通信端末（例えば、１２）が暗号化結果Ｘを傍受できたとしても、通信端末１２から暗号化結果Ｙを送信して証明装置１１０になりすますことは困難である。通信端末１２には、前記共通鍵Ｋと変換関数ｆ１が登録されていないため、通信端末１２から送信される暗号化結果（Ｙ）を検証装置１００の復号部１０３で復号したものは、メッセージｒ１’と一致しないからである。  
反対に、正規の証明装置（ここでは、１１０）が暗号化結果Ｘを受信した場合には、共通鍵Ｋと変換関数ｆ１を登録しているため、証明装置１１０から送信された暗号化結果Ｙを復号部１０３で復号したものは、メッセージｒ１’に一致し、認証結果はＯＫとなる。
【００６４】
匿名のままで認証を行う場合には以上の処理でよいが、個人まで明示して認証を行う場合には、新たな処理を追加する必要がある。個人まで明示して認証を行うケースでは、グループＧＰ１内の証明装置の相違またはユーザの相違に応じて、復号部１０３の復号結果が変化するためである。
【００６５】
追加する処理には様々なものがあり得るが、次の２つの方法に大別することができる。すなわち、何らかの手段で、暗号化結果Ｙの送信元である証明装置１１０側が証明装置が１１０であること、またはそのユーザがＵ２であることを明示する方法と、そのような明示を行わず、検証装置１００側の処理だけで対応する方法に分けることができる。
【００６６】
証明装置側が明示する方法としては例えば次のようなものがある。
【００６７】
ネットワーク１１上の通信で例えばＩＰプロトコルが用いられ、各証明装置にＩＰアドレス（プライベートアドレスでもグローバルアドレスでもよく、ＩＰｖ６アドレスであってもよい）が割り当てられている場合には、暗号化結果Ｙを届けるためのパケット（ＩＰパケット）の送信元ＩＰアドレスの値を参照すれば、検証装置１００側で送信元の証明装置を特定することができる。この場合、検証装置１００側で送信元ＩＰアドレスとユーザＩＤ等の対応関係を登録した対応表を搭載していれば、その送信元ＩＰアドレスを検索キーとして当該対応表を検索することにより該当するユーザＩＤ等を特定し、そのユーザＩＤ等を用いてメッセージ生成部１０４が出力するメッセージｒ１’を変化させることができる。
【００６８】
別な方法としては、証明装置１１０側で、前記ユーザＩＤ等を、前記メッセージｒ１’とともに暗号化部１１３へ供給し、それらを合わせたものの暗号化結果を前記暗号化結果Ｙとして送信することも考えられる。この場合、前記復号部１０３は、復号結果のうち前記ユーザＩＤ等に相当する情報は、メッセージ生成部１０４へ供給し、メッセージｒ１’に相当する情報は、検査部１０５に供給することになる。なお、ユーザＩＤ等を暗号化して送信する方法は、もしも共通鍵Ｋが悪意のユーザＵ４に知られた場合、ただちにユーザＩＤ等まで知られてしまうため、安全性の点で、ユーザＩＤ等に応じてメッセージｒ１’を変化させるほうが有利であるといえる。
【００６９】
また、証明装置側が明示せず検証装置１００側の処理だけで対応する方法としては、例えば、次のようなものがある。
【００７０】
メッセージ生成部１０４で、グループＧＰ１内の全ユーザ（全証明装置）のユーザＩＤ等に対応するメッセージｒ１’を逐次、生成して検査部１０５に供給し、検査部１０５における比較で、復号部１０３から供給された復号結果が、いずれかのメッセージｒ１’と一致したときに認証ＯＫとする。この場合、すべてのメッセージｒ１’と比較しても一致するメッセージが見つからなければ、認証結果はＮＧとなる。この方法では、グループＧＰ１に属する証明装置の数（ユーザの数）が多いと、認証結果が判明するまでの比較照合に多くの時間と処理を要することになるが、それほど多くない場合には、十分に利用可能な方法である。
【００７１】
なお、匿名のままで認証を行うか、個人まで明示して認証を行うかは、予め静的に決めておくようにしてもよいが、例えば、ユーザＵ２などの希望に応じて、動的に変更できるようにしてもよい。
【００７２】
検証装置１００側が、受信した暗号化結果Ｙを用いて、匿名のままで行う認証に対応する処理を行った結果、認証結果がＮＧとなったとき、自動的に、個人まで明示して行う認証に対応する処理を実行するようにすれば、このような動的な変更に対応することができる。
【００７３】
また、予め個人まで明示して認証を行うことを静的に決めておくケースでは、例えば、グループＧＰ１内の証明装置ごとに異なる前記変換関数（例えば、ｆ１）を搭載させるようにしておくことも望ましい。
【００７４】
なお、前記通信端末１２は、暗号化結果ＸやＹを傍受することはできたとしても、いわゆる暗号文攻撃が可能なだけであり、より強力な既知平文攻撃、選択平文攻撃、選択暗号文攻撃は実行不可能であるため、攻撃者であるユーザＵ４が解読を成功させ、共通鍵Ｋを知ることは困難である。
【００７５】
また、たとえユーザＵ４が解読に成功し、共通鍵Ｋを知ることができたとしても、それだけでは直ちに秘匿した情報（変換関数ｆ１、ユーザＩＤ等の内容）を知ることができないため、その点でも安全性が高いといえる。
【００７６】
なお、ＯＫの認証結果が得られたあとは、検証装置１００側から証明装置１１０側に対し、様々なサービスが提供されるのが普通である。例えば、前記入退出管理に利用する場合などには、単にドアのロックを解除したり、ログファイルに記録したりするだけのこともあるが、ネットワーク１１経由の通信を前提とすると、その後のサービスも通信によって提供されるのが普通である。そして、このサービス提供のための通信でも暗号化が行われることがある。安全性を高める観点からは、その暗号化に用いる暗号鍵として、認証過程で使用した前記共通鍵Ｋとは別個の鍵を用いたほうがよいことは当然である。
【００７７】
（Ａ−３）第１の実施形態の効果
本実施形態によれば、個人を明示して認証を行うことも匿名のまま認証を行うこともできるので、柔軟性や利便性が高い。
【００７８】
匿名のまま認証を行うことができる点は、たとえログファイルの内容の漏洩などが発生してもプライバシが守られるため、正規のユーザ（例えば、Ｕ２）に安心感を与えることにもつながる。
【００７９】
また、本実施形態では、個人を明示して認証を行う際、ユーザＩＤ等に応じてメッセージ（ｒ１’）の値を変更するようにすれば、ユーザＩＤ等が悪意のユーザ（例えば、Ｕ４）に知られる可能性を低減でき、安全性が高まる。
【００８０】
（Ｂ）第２の実施形態
以下では、本実施形態が第１の実施形態と相違する点についてのみ説明する。
【００８１】
本実施形態は、前回の認証に利用した乱数を今回の認証にも活用することによって安全性を高める点が第１の実施形態と相違する。
【００８２】
（Ｂ−１）第２の実施形態の構成および動作
本実施形態と第１の実施形態の相違は、検証装置と証明装置の内部構成に関する点に限られる。本実施形態の検証装置２００と証明装置２１０の内部構成例を図２に示す。
【００８３】
検証装置２００は前記検証装置１００に対応し、証明装置２１０は前記証明装置１１０に対応するので、その構成要素の多くも対応している。
【００８４】
検証装置２００の構成要素のうち、乱数生成部２０１は前記乱数生成部１０１に対応し、暗号化部２０２は前記暗号化部１０２に対応し、復号部２０３は前記復号部１０３に対応し、検査部２０５は前記検査部１０５に対応し、メッセージ生成部２０４は前記メッセージ生成部１０４に対応するので、その詳しい説明は省略する。また、証明装置２１０の構成要素のうち、復号部２１１は前記復号部１１１に対応し、メッセージ生成部２１２は前記メッセージ生成部１１２に対応し、暗号化部２１４は前記暗号化部１１３に対応するので、その詳しい説明は省略する。
【００８５】
ただし検証装置２００の内部において、乱数生成部２０１が生成した乱数は暗号化部２０２とメッセージ生成部２０４のほか、乱数記憶部２０６にも供給される。
【００８６】
乱数生成部２０１が順次生成する乱数の系列をｒ０，ｒ１，ｒ２，…とし、今回、証明装置２１０（ユーザＵ２）の認証に使用する乱数をｒ１とすると、前回、証明装置２１０（ユーザＵ２）の認証に使用した乱数はｒ０となる。これは、証明装置２１０の前回の認証と今回の認証のあいだに、他の証明装置（例えば、前記証明装置１０９に相当する証明装置）の認証が行われなかったケースである。
【００８７】
本実施形態において今回の認証を行うとき、乱数生成部２０１は当該ｒ１を生成して出力し、乱数記憶部２０６には前回の乱数であるｒ０が記憶された状態にある。このとき乱数生成部２０１が出力した今回の乱数ｒ１は、次回の認証のため、当該乱数記憶部２０６に記憶されることは当然である。
【００８８】
なお、本実施形態の場合、検証装置２００側で、認証を要求してくる証明装置ごと（ユーザごと）に乱数の系列（少なくとも、今回の乱数と前回の乱数）を特定する必要がある。認証に使用する乱数の値は生成されるたび（認証のたび）に異なるし、一般的には、グループＧＰ１中の各ユーザが検証装置２００に対して認証を求める順番は予測不能で動的に決まるからである。
【００８９】
したがって本実施形態では、検証装置２００が何らかの手段で、個々の証明装置（または、個々のユーザ）を特定することが不可欠となる。このような特定を行うことによって、証明装置ごとに整理して、前回の乱数を乱数記憶部２０６に記憶しておくことが可能になる。このような乱数記憶部２０６はデータベースを構成するものであってよい。
【００９０】
個々の証明装置（ユーザ）を特定する手段としては様々なものを用いることが可能である。例えば、前記ユーザＩＤ等を用いることもできるが、ここでは、一例として、前記送信元ＩＰアドレスを用いるものとする。
【００９１】
送信元ＩＰアドレスはネットワーク１１上における伝送時にルータ（図示せず）によって使用される伝送制御情報であるため、基本的には元々、秘匿される情報ではないし、悪意のユーザＵ４に知られた場合の影響は、ユーザＩＤ等が知られた場合に比べてはるかに小さいと考えられるからである。必要ならば、ＤＨＣＰサーバなどを利用して、通信システム１０内の各証明装置（例えば、２１０）に割り当てられるＩＰアドレスを頻繁に変更するようにしてもよい。
【００９２】
また、検証装置２００に含まれるメッセージ生成部２０４は、前記変換関数ｆ１の替わりに、２変数関数ｆ２を用いて変換を行う。
【００９３】
当該２変数関数ｆ２の１つの変数に代入される値は、前回の乱数であるｒ０であり、もう１つの変数に代入される値は、今回の乱数であるｒ１である。このとき当該２変数関数ｆ２からは、２つの乱数ｒ０とｒ１の値が反映された変換結果（メッセージ）ｒ０−１’が得られ、このメッセージｒ０−１’が当該メッセージ生成部２０４から検査部２０５へ供給される。
【００９４】
一方、証明装置２１０の内部で、当該メッセージ生成部２０４に対応するのがメッセージ生成部２１２であり、乱数記憶部２０６に対応するのが、乱数記憶部２１３である。
【００９５】
乱数記憶部２１３は、当該証明装置２１０が前回の認証で使用した乱数（ここでは、ｒ０）を記憶している点で、前記乱数記憶部２０６と同じであるが、検証装置２００のように複数の証明装置からの認証要求にこたえる必要はないため、乱数記憶部２１３に記憶するのは、ただ１つの乱数でよい。
【００９６】
メッセージ生成部２１２の機能は検証装置２００内のメッセージ生成部２０４の機能とまったく同じで、前回の乱数（ｒ０）と今回の乱数（ｒ１）から得たメッセージ（ここでは、ｒ０−１’）を出力する。このような機能を実現するため、当該メッセージ生成部２１２は、前記２変数関数ｆ２を搭載している。
【００９７】
以上の通りであるから、本実施形態の検証装置２００から証明装置２１０へ送信される暗号化結果Ｘは第１の実施形態のものとまったく同じであるが、この暗号化結果Ｘを受信し、構成要素２１１，２１２，２１３，２１４による処理を経て、証明装置２１０から送信される暗号化結果Ｙは、第１の実施形態のものと相違する。
【００９８】
本実施形態の暗号化結果Ｙの値には、今回の乱数（ｒ１）の値だけでなく前回の乱数（ｒ０）の値も反映されているため、より安全性が高いといえる。本実施形態で、通信端末１２（悪意のユーザＵ４）が解読を成功させるには、前回の認証のための通信と今回の認証のための通信をともに傍受していることが必要になると考えられるからである。
【００９９】
上述したように、通信環境や通信システム１０の運用によっては、傍受を行うこと自体、必ずしも容易ではなく、前回の認証のための通信と今回の認証のための通信をとも傍受できる確率は、今回の認証のための通信を傍受できる確率よりも低い。
【０１００】
必要ならば、メッセージ生成部２０４および２１２が出力するメッセージに、前々回の認証など、過去の複数回の認証に使用した乱数なども反映させることにより、この確率をいっそう低減することも可能である。
【０１０１】
なお、本実施形態の場合、検証装置２００は認証の過程で個々の証明装置を特定することになるため、証明装置ごとに異なる共通鍵（Ｋｉ）を用いることが可能である。グループＧＰ１内の全証明装置とのあいだで同じ共通鍵を用いるより、証明装置ごとに異なる共通鍵を用いたほうが安全性が向上する。
【０１０２】
もしも、悪意のユーザＵ４が共通鍵の解読に成功した場合、全証明装置とのあいだで同じ共通鍵を用いていると、グループＧＰ１内の全ユーザのユーザＩＤ等を悪意のユーザＵ４に知られる可能性が高いが、証明装置ごとに異なる共通鍵を用いるようにしておけば、解読された共通鍵に対応する証明装置のユーザのユーザＩＤ等が知られるだけで済むからである。
【０１０３】
また、同じグループＧＰ１に属する正規のユーザ（例えば、Ｕ３）が他の正規のユーザ（例えば、Ｕ２）のユーザＩＤ等を知ろうとして傍受、解読を試みる可能性もあるが、同じ共通鍵ＫをグループＧＰ１内で共用していると、そのような解読は比較的容易であるのに対し、証明装置ごとに異なる共通鍵Ｋｉを用いる場合には、そのような解読も実行困難である。
【０１０４】
（Ｂ−２）第２の実施形態の効果
本実施形態によれば、第１の実施形態の効果とほぼ同等な効果を得ることができる。
【０１０５】
加えて、本実施形態では、安全性を第１の実施形態よりも高めることが可能である。
【０１０６】
（Ｃ）第３の実施形態
以下では、本実施形態が第１、第２の実施形態と相違する点についてのみ説明する。
【０１０７】
本実施形態は、第１、第２の実施形態のうちでは第２の実施形態のほうに近い。第２の実施形態と本実施形態の相違は、メッセージ生成部の内部構成に関する点に限られる。
【０１０８】
（Ｃ−１）第３の実施形態の構成および動作
本実施形態の検証装置３００と証明装置３１０の内部構成例を図３に示す。
【０１０９】
検証装置３００において、前記メッセージ生成部２０４に対応するメッセージ生成部３０４は、関数生成部３０７と、変形部３０８を備えている。なお、検証装置３００内に設けられた乱数記憶データベース３０６は名称は相違するもののその機能は実質的に第２の実施形態の乱数記憶部２０６と同じで、証明装置ごとに整理して、前回の乱数を記憶する部分である。
【０１１０】
例えば、証明装置３１０から暗号化結果Ｙが届いたとき、検証装置３００では、その暗号化結果Ｙが収容されていたパケットの送信元ＩＰアドレスなどをもとに乱数記憶データベース３０６内の該当する乱数、すなわち、証明装置３１０の前回の認証に使用した乱数（ここでは、ｒ０とする）を特定することができるので、その乱数ｒ０を関数生成部３０７に供給する。
【０１１１】
検証装置３００はまた、証明装置（例えば、３１０）とそのユーザのユーザＩＤ等の対応関係を登録した上述の対応表を検索することにより、ユーザＩＤ等を特定することもできる。
【０１１２】
このようにして特定した乱数ｒ０やユーザＩＤ等をもとに、関数生成部３０７は、変換関数を生成する。ここで生成した変換関数をｆ３とすると、ｆ３は、乱数ｒ０やユーザＩＤ等の値に応じて、異なるものとなる。
【０１１３】
乱数（ここでは、ｒ０）に応じて生成する場合、乱数が上述したような性質（真正乱数に近い性質を持ち、ビット長が十分に長い）を有するものとすると、同じ値の乱数が２度生成されることは実用上、ほぼ無いものとみなすことができるため、当該変換関数ｆ３はただ１度だけ認証に使用されることになる。ただしこの場合には、ユーザＩＤ等は証明装置３１０側から検証装置３００側に供給する必要はないため、匿名のまま認証を行うことが可能になる。
【０１１４】
ユーザＩＤ等をもとに生成する場合には、ユーザＩＤ等は、各ユーザ（各証明装置）に固有な情報であるため、変換関数ｆ３も、各ユーザに固有なものとなるが、同じユーザのための次回以降の認証でも同じ変換関数ｆ３が繰り返し用いられることになる。この場合、ユーザＩＤ等が検証装置３００側に供給されるため、個人を明示した認証が行われることになる。
【０１１５】
いずれのケースでも、関数生成部３０７が生成した変換関数ｆ３は、変形部３０８に供給される。
【０１１６】
当該変形部３０８は、乱数生成部３０１から受け取った今回の乱数（ここでは、ｒ１）を当該変換関数ｆ３を利用して変換し、変換結果をメッセージとして検査部３０５に供給する。
【０１１７】
一方、前記証明装置３１０において、前記メッセージ生成部１１２に対応するメッセージ生成部３１２は、関数生成部３１６と、変形部３１５を備えている。
【０１１８】
このうち関数生成部３１６は前記関数生成部３０７に対応し、変形部３１５は前記変形部３０８に対応するので、その詳しい説明は省略する。
【０１１９】
以上の通りであるから、本実施形態の場合、前回の乱数（ここでは、ｒ０）だけを用いて変換関数ｆ３を生成した場合には、匿名のまま認証を行うことができ、前回の乱数とともに、または前回の乱数に替えてユーザＩＤ等を利用して変換関数ｆ３を生成した場合には、個人を明示して認証を行うことができる。
【０１２０】
（Ｃ−２）第３の実施形態の効果
本実施形態によれば、第２の実施形態の効果と同等な効果を得ることができる。
【０１２１】
加えて、本実施形態では、匿名のまま認証することにも、個人を明示して認証することにも対応しやすいため、柔軟性や利便性を高めることが容易である。
【０１２２】
（Ｄ）第４の実施形態
以下では、本実施形態が第１〜第３の実施形態と相違する点についてのみ説明する。
【０１２３】
第１〜第３の実施形態はいずれも、検証装置側から送られてきた乱数を証明装置側で加工し、加工した結果を検証装置側へ返送することによって認証を行うものであったが、本実施形態では、証明装置側から検証装置側への一方向の通信を行うことのみによって認証を行う。
【０１２４】
第１〜第３の実施形態のなかでは、同等な機能の乱数記憶部を使用する点で、第２の実施形態が最も本実施形態に近いとみることができる。
【０１２５】
（Ｄ−１）第４の実施形態の構成および動作
本実施形態の検証装置４００と証明装置４１０の内部構成例を図４に示す。
【０１２６】
検証装置４００は、復号部４０１と、乱数記憶部４０２と、検査部４０３とを備えており、証明装置４１０は、乱数生成部４１１と、乱数記憶部４１１と、乱数記憶部４１２と、暗号化部４１３とを備えている。
【０１２７】
検証装置４００の構成は、各構成要素の接続関係などが相違するためにこれまでに説明した検証装置（例えば、２００）と異なるが、各構成要素自体の機能は対応している。
【０１２８】
検証装置４００内の復号部４０１は前記復号部２０３に対応し、乱数記憶部４０２は前記乱数記憶部２０６に対応し、検査部４０３は前記検査部２０５に対応するので、その詳しい説明は省略する。また、証明装置４１０内の乱数生成部４１１は前記乱数生成部２０１に対応し、乱数記憶部４１２は前記乱数記憶部２１３に対応し、暗号化部４１３は前記暗号化部２１４に対応するので、その詳しい説明は省略する。
【０１２９】
本実施形態では、前記乱数生成部２０１に対応する乱数生成部４１１が検証装置４００内ではなく証明装置４１０内に設けられている。この乱数生成部４１１が生成する乱数の系列を上述したように、ｒ０，ｒ１，ｒ２，…とし、今回、証明装置４１０の認証に検証装置４００が使用する乱数をｒ１とすると、次回、証明装置４１０の認証に使用する乱数はｒ２となる。
【０１３０】
乱数記憶部４１２内に乱数ｒ１が記憶された状態で乱数生成部４１１が乱数ｒ２を生成すると、暗号化部４１３は、乱数ｒ１とｒ２をつなげたものｒ（＝ｒ１｜｜ｒ２）を前記共通鍵Ｋｉで暗号化し、暗号化結果Ｙを送信する。
【０１３１】
これを前記ネットワーク１１経由で受信する検証装置４００では、復号部４０１が暗号化結果Ｙを共通鍵Ｋｉで復号し、復号結果のうち乱数ｒ２は次回の認証のために乱数記憶部４０２に供給して記憶させ、乱数ｒ１は検査部４０３へ供給して今回の認証を行わせる。
【０１３２】
ただし、この暗号化結果Ｙを受信した時点ではすでに前回の認証の過程で復号された乱数ｒ１（前回の認証時点からみた次回の乱数）が乱数記憶部４０２に記憶されているため、今回の認証において検査部４０３は、復号部４０１から受け取った復号結果と、乱数記憶部４０２から読み出した乱数ｒ１とを比較照合することになる。暗号化結果Ｙの送信元が正規の証明装置である４１０なら、復号部４０１から検査部４０３が受け取る復号結果は当該ｒ１に一致するため、認証結果はＯＫとなる。
【０１３３】
本実施形態の場合、悪意のユーザＵ４が通信端末１２で傍受することができるのは、暗号化結果Ｙだけであり、前記暗号化結果Ｘに相当する情報を傍受することもできない。また、第１〜第３の実施形態の場合には、検証装置（例えば、１００）になりすました通信端末１２から任意のメッセージを証明装置（例えば、１１０）に送り付けて、そのメッセージに対応する暗号化結果Ｙを証明装置から取得する攻撃が実行される可能性もあったが、本実施形態ではそのような攻撃も実行することができない。
【０１３４】
このような点から、本実施形態は第１〜第３の実施形態に比べ、安全性がかなり高いとみることができる。
【０１３５】
また、前記暗号化結果Ｙには、今回の乱数と次回の乱数が検証装置４００側で復号可能な形で含まれていればよいため、暗号化部４１３では、上述したように、今回の乱数と次回の乱数を単純につなげたものを共通鍵Ｋｉで暗号化する以外の方法を用いることもできる。例えば、今回の乱数と次回の乱数の排他的論理和（ＸＯＲ）を計算し、その計算結果と次回の乱数をつなげたもの（ｒ１ＸＯＲｒ２｜｜ｒ２）を、共通鍵Ｋｉで暗号化して暗号化結果Ｙを得るようにしてもよい。
【０１３６】
なお、本実施形態で、前記暗号化結果Ｘに相当する情報の通信が不要になる点は、通信トラフィックの軽減にも寄与することは当然である。
【０１３７】
前記共通鍵Ｋｉは、証明装置ごとに異なる共通鍵であるため、ここまでの処理では、個人を明示した認証を行うことになるが、共通鍵としてグループＧＰ１内で同じ鍵を利用すること等により、本実施形態でも匿名のまま（ユーザＩＤ等を検証装置４００に知らせないまま）認証を行うことが可能である。
【０１３８】
（Ｄ−２）第４の実施形態の効果
本実施形態によれば、傍受可能な情報や、使用可能な攻撃方法がいっそう限定されるため、第１〜第３の実施形態よりも高い安全性を確保することが可能である。
【０１３９】
（Ｅ）第５の実施形態
以下では、本実施形態が第１〜第４の実施形態と相違する点についてのみ説明する。
【０１４０】
第１〜第４の実施形態のなかでは、第４の実施形態が本実施形態に最も近い。本実施形態と第４の実施形態の関係は、第２の実施形態と第１の実施形態の関係にほぼ等しい。
【０１４１】
したがって、本実施形態と第４の実施形態の相違は、メッセージ生成部（メッセージ復元部）の有無に関する点に限られる。
【０１４２】
（Ｅ−１）第５の実施形態の構成および動作
本実施形態の検証装置５００と証明装置５１０の内部構成例を図５に示す。
【０１４３】
検証装置５００の構成要素のうち、復号部５０１は前記復号部４０１に対応し、乱数記憶部５０２は前記乱数記憶部４０２に対応し、検査部５０４は前記検査部４０３に対応するので、その詳しい説明は省略する。また、証明装置５１０の構成要素のうち乱数生成部５１１は前記乱数生成部４１１に対応し、乱数記憶部５１２は前記乱数記憶部４１２に対応し、暗号化部５１４は前記暗号化部４１３に対応するので、その詳しい説明は省略する。
【０１４４】
証明装置５１０内に設けられたメッセージ生成部５１３は、前記グループＧＰ１内に共通なハッシュ関数ｈ１を搭載している。ハッシュ関数は一方向性の関数で、変換結果（ハッシュ値）から変換元の値を推定することが困難な性質を有する。
【０１４５】
当該メッセージ生成部５１３は、このハッシュ関数ｈ１を活用してメッセージの生成を行う。
【０１４６】
ハッシュ関数ｈ１を用いてメッセージを生成する方法には様々なものがあり、例えば、乱数記憶部５１２から読み出した今回の乱数（ここでは、ｒ１）を当該ハッシュ関数ｈ１で変換してその変換結果（ハッシュ値）であるｈ１（ｒ１）を得るとともに、元の乱数ｒ１も記憶しておき、乱数生成部５１１から受け取った次回の乱数（ここでは、ｒ２）を当該乱数ｒ１を共通鍵として暗号化（Ｅｒ１（ｒ２））し、当該ハッシュ値と暗号化結果をつなげたものをメッセージとして暗号化部５１４へ供給し、暗号化部５１４で共通鍵Ｋによる暗号化を行わせるようにしてもよいが、ここでは、共通鍵Ｋで暗号化するのはハッシュ値だけとし、共通鍵Ｋで暗号化したものと共通鍵ｒ１で暗号化したものをつなげて暗号化結果Ｙを生成するものとする。
【０１４７】
このとき、Ｙ＝ＥＫ（ｈ１（ｒ１））｜｜Ｅｒ１（ｒ２）である。
【０１４８】
前記ネットワーク１１経由で当該暗号化結果Ｙを受信する検証装置５００では、復号部５０１が共通鍵Ｋで復号することによって、ｈ１（ｒ１）｜｜Ｅｒ１（ｒ２）を得、さらに当該Ｅｒ１（ｒ２）を共通鍵ｒ１で復号することによって乱数ｒ２を得る。このうち乱数ｒ２は次回の認証のため、メッセージ復元部５０３により乱数記憶部５０２に記憶される。なお、検証装置５００内で当該共通鍵ｒ１を得ることができるのは、前回の認証の際、乱数記憶部５０２内に乱数ｒ１を記憶してあったためである。
【０１４９】
メッセージ復元部５０３はまた、グループＧＰ１内で共有されている前記ハッシュ関数ｈ１を用いて前記乱数ｒ２のハッシュ値（ｈ１（ｒ２））を計算し、そのハッシュ値を乱数記憶部５０２に記憶しておく。これも次回の認証のためである。
【０１５０】
検査部５０４では、ハッシュ値間の比較照合を行うことによって検証を実行する。
【０１５１】
すなわち、前記ｈ１（ｒ１）｜｜Ｅｒ１（ｒ２）のうちのハッシュ値であるｈ１（ｒ１）と、乱数記憶部５０２から読み出したハッシュ値であるｈ１（ｒ１）の比較照合である。
【０１５２】
暗号化結果Ｙを送信してきたのが正規の証明装置でない場合には、ハッシュ値ｈ１、共通鍵Ｋ、前回の乱数ｒ１のすべてを持つことはないため、比較照合の結果は不一致となり、認証結果はＮＧとなる。
【０１５３】
なお、ここでは予め乱数（ｒ１）のハッシュ値を計算し、そのハッシュ値を乱数ｒ１とともに乱数記憶部５０２に記憶するようにしたが、記憶しておくのは乱数ｒ１だけとすることも可能である。その場合、検査部５０４が比較照合を実行する際にハッシュ値を計算することになる。
【０１５４】
なお、前記メッセージ生成部５１３や暗号化部５１４における処理を変更し、暗号化結果Ｙの内容を変更することも可能である。
【０１５５】
例えば、Ｙ＝ＥＫ（ｈ１（ｒ１））｜｜ｒ１ＸＯＲｒ２）としてもよい。
【０１５６】
必要に応じて、上述した乱数の系列の最初の値（前記ｒ０）を予め証明装置５１０から検証装置５００に伝えて、乱数記憶部５０２内に記憶させるようにしてもよい。
【０１５７】
なお、ここまでの処理では、共通鍵Ｋ、ハッシュ関数ｈ１がグループＧＰ１内で共通であるため、匿名のまま認証を行うことになるが、上述したユーザＩＤ等に依存した処理を含めるようにすれば、個人を明示した認証を行うことが可能になる。
【０１５８】
例えば、ハッシュ関数ｈ１とともに、またはハッシュ関数ｈ１に替えて、ユーザＩＤ等に依存して変化する変換関数を使用したり、予め証明装置ごとに異なる変換関数を用意するようにしてもよい。
【０１５９】
また、証明装置ごとに異なる共通鍵Ｋやハッシュ関数ｈ１を用意するようにしてもよい。
【０１６０】
ここで、証明装置ごとに異なる変換関数をｆ３とし、ハッシュ関数ｈ１の替わりに当該変換関数ｆ３を用いるものとすると、上述した暗号化結果Ｙ（＝ＥＫ（ｈ１（ｒ１））｜｜Ｅｒ１（ｒ２））は次の形に変化する。
【０１６１】
Ｙ＝ＥＫ（ｆ３（ｒ１））｜｜Ｅｒ１（ｒ２）
（Ｅ−２）第５の実施形態の効果
本実施形態によれば、第４の実施形態の効果と同等な効果を得ることができる。
【０１６２】
加えて、本実施形態では、安全性を第４の実施形態よりも高めることが可能である。
【０１６３】
また本実施形態では、匿名のまま認証を行ったり、個人を明示した認証と匿名のままの認証のあいだで柔軟に切替えを行うことも容易である。
【０１６４】
（Ｆ）他の実施形態
図６では、グループＧＰ１に２つの証明装置が属していたが、グループＧＰ１に属する証明装置の数が３つ以上であってもよいことは当然である。
【０１６５】
また、図６では、１つのグループＧＰ１のみを示しているが、１つの検証装置（例えば、１００）に対するグループは２つ以上存在してもよいことは当然である。
【０１６６】
さらに、上記第１〜第５の実施形態で実行した各処理は、相互に矛盾しない限り、他の実施形態で使用することも可能である。
【０１６７】
例えば、第５の実施形態では、ある回の乱数（次回の乱数）であるｒ２を別な回の乱数（今回の乱数）であるｒ１を共通鍵として暗号化（Ｅｒ１（ｒ２））したが、この処理を例えば第２の実施形態で使用することも可能である。第２の実施形態では、前回の乱数（ｒ０）が検証装置と証明装置に記憶されているので、前回の乱数は共通鍵として用いることができ、証明装置は、前回の乱数で今回の乱数を暗号化することが可能である。
【０１６８】
また、本来の共通鍵ＫまたはＫｉによる暗号化と、このような共通鍵としての乱数による暗号化を重ねて実行してもよいことは当然である。
【０１６９】
なお、図６ではネットワーク経由の通信を行う例を示したが、本発明は、ネットワーク経由の通信を行わず、検証装置と証明装置が直接、無線伝送路や有線伝送路で接続されるケースにも適用できることは、すでに説明した通りである。
【０１７０】
また、このような通信を行うことも必ずしも必須の要件ではない。例えば、前記暗号化結果Ｙの内容をフレキシブルディスクなどの記録媒体に記録し、その記録媒体を検証装置側のスロットに装着すること等によって認証を行う場合などもあり得るからである。
【０１７１】
以上の説明では主としてハードウエア的に本発明を実現したが、本発明はソフトウエア的に実現することも可能である。
【図面の簡単な説明】
【０１７２】
【図１】第１の実施形態にかかる通信システムの主要部の構成例を示す概略図である。
【図２】第２の実施形態にかかる通信システムの主要部の構成例を示す概略図である。
【図３】第３の実施形態にかかる通信システムの主要部の構成例を示す概略図である。
【図４】第４の実施形態にかかる通信システムの主要部の構成例を示す概略図である。
【図５】第５の実施形態にかかる通信システムの主要部の構成例を示す概略図である。
【図６】第１〜第５の実施形態にかかる通信システムの全体構成例を示す概略図である。
【符号の説明】
【０１７３】
１０…通信システム、１１…ネットワーク、１２…通信端末、１００，２００，３００，４００，５００…検証装置、１１０，２１０，３１０，４１０，５１０…証明装置、１０１…乱数生成部、１０２，１１３…暗号化部、１０３，１１１…復号部、１０４，１１２…メッセージ生成部、１０５…検査部、Ｋ…共通鍵（秘密鍵）、ｆ１…変換関数、ｒ０，ｒ１，ｒ２…乱数、ｒ１’…メッセージ、Ｘ、Ｙ…暗号化結果。
【図１】
2005176231.tif 000003
【図２】
2005176231.tif 000004
【図３】
2005176231.tif 000005
【図４】
2005176231.tif 000006
【図５】
2005176231.tif 000007
【図６】
2005176231.tif 000008