(57)【要約】【課題】高度な秘匿性を確保すると共に演算負荷を軽減してコストを削減する。【解決手段】被認証装置１において、自装置、またはユーザの正当性を示す認証データに鍵データを乗じる積データなど、認証データ、または鍵データを用いれば逆算してもう一方の鍵データ、または認証データが求められるような形になるように、鍵データと認証データからスクランブルデータを生成すると共に、認証データ、鍵データ、及びスクランブルデータのいずれかを一方向性関数を用いて変換して検証データを求めて、この検証データ及びスクランブルデータを認証装置２に送り、認証装置において、被認証装置から受け取った検証データ及びスクランブルデータと、自装置に蓄積された被認証装置ごとの認証データとに基づいて、被認証装置の正当性を検証する。【選択図】図２
2009272671.tif 000002
【特許請求の範囲】
【請求項１】
被認証装置において、自装置、またはユーザの正当性を示す認証データに鍵データを乗じる積データなど、認証データ、または鍵データを用いれば逆算してもう一方の鍵データ、または認証データが求められるような形になるように、鍵データと認証データからスクランブルデータを生成すると共に、前記認証データ、鍵データ、及びスクランブルデータのいずれかに対して、少なくとも第３者にとっては逆算が困難な演算処理を行って検証データを求めて、この検証データ及び前記スクランブルデータを認証装置に送り、
前記認証装置において、前記被認証装置から受け取った検証データ及びスクランブルデータと、自装置に蓄積された被認証装置、またはユーザごとの認証データとに基づいて、前記被認証装置の正当性を検証するものであり、
前記被認証装置と前記認証装置との間で前記鍵データを共有させることを特徴とする秘匿認証システム。
【請求項２】
被認証装置において、自装置、またはユーザの正当性を示す認証データに鍵データを乗じる積データなど、認証データを用いれば逆算して鍵データが求められるような形になるように、鍵データと認証データからスクランブルデータを生成すると共に、前記鍵データ、及びスクランブルデータのいずれかに対して、少なくとも第３者にとっては逆算が困難な演算処理を行って検証データを求めて、この検証データ及び前記スクランブルデータを認証装置に送り、
前記認証装置において、前記被認証装置から受け取った検証データ及びスクランブルデータと、自装置に蓄積された被認証装置、またはユーザごとの認証データとに基づいて、前記被認証装置の正当性を検証するものであり、
前記被認証装置と前記認証装置のいずれかで前記鍵データを乱数で生成することを特徴とする秘匿認証システム。
【請求項３】
前記検証データは、前記鍵データ、若しくは認証データを一方向性関数を用いて変換する演算処理により求められることを特徴とする請求項１乃至請求項２のいずれかに記載の秘匿認証システム。
【請求項４】
前記検証データは、前記鍵データ、若しくは認証データを前記認証装置の公開鍵を用いて暗号化する演算処理により求められることを特徴とする請求項１乃至請求項２のいずれかに記載の秘匿認証システム。
【請求項５】
前記被認証装置及び前記認証装置の双方において、互いに同一の一方向性関数を用いて前記認証データ、若しくは前記鍵データを変換して、その変換結果で前記認証データ、若しくは前記鍵データを更新することを特徴とする請求項１乃至請求項４のいずれかに記載の秘匿認証システム。
【請求項６】
前記被認証装置において、前記認証データ、若しくは前記鍵データを前記認証装置の公開鍵を用いて暗号化した上でスクランブルデータを求めてこのスクランブルデータを前記認証装置に送り、
前記認証装置において、前記被認証装置から受け取ったスクランブルデータに前記被認証装置とは逆の演算を行った上で自身の秘密鍵を用いて復号化することを特徴とする請求項１乃至請求項５のいずれかに記載の秘匿認証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、他人に知られることなく認証データを被認証装置から認証装置に通知して認証を行う秘匿認証システムに関するものである。
【背景技術】
【０００２】
インターネットバンキングやインターネットショッピングなどのインターネット商取引システムなど、近年、ネットワークを介して接続された端末に対してサーバから種々のサービスを提供するシステムが急速に普及しており、このようなシステムにおいては、ユーザが正規登録された者か否かを検証する認証システムが必要となるが、パスワードなどの認証データがネットワーク上に送出されるため、認証データを盗取して正規のユーザになりすまして不正に利益を受ける行為を阻止するための様々な技術が知られている（例えば特許文献１参照）。
【０００３】
また、近年、電子マネー機能を有する非接触型ＩＣカードが急速に普及しており、入退室管理システムや商品管理システムでも、非接触型ＩＣカードやＲＦＩＤタグが利用されるようになってきたが、この種のＲＦＩＤデバイスを用いたシステムでは、スキミングにより認証データを盗取してなりすましにより不正に利益を受ける行為を阻止する必要があり、このようなＲＦＩＤデバイスの安全性を高める技術としては、Randomized Hash Lock方式、ハッシュチェーン方式（特許文献２参照）、再暗号化方式（特許文献３参照）が知られている。
【特許文献１】特開２００７−２９３７８７号公報
【特許文献２】特再表２００５−０３１５７９号公報
【特許文献３】特開２００４−３１７７６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかるに、従来の様々な技術では、複雑な演算処理により認証データの秘匿性を高めることができる反面、高速な演算手段が必要になることから、コストが嵩み、低コスト化の要望を十分に満足することができず、低コスト化と高度な秘匿性とを両立させることが可能な技術が望まれる。また、秘匿認証システムにおいては、認証に関する事実（認証相手、認証日時など）を過去に遡って探索されることのないフォワードセキュアや、認証に関する事実を未来に渡って探索されることのないバックセキュアを実現することが望まれる。
【０００５】
本発明は、このような従来技術の問題点を解消するべく案出されたものであり、その主な目的は、高度な秘匿性を確保すると共に演算負荷を軽減してコストを削減することができるように構成された秘匿認証システムを提供することにある。また本発明は、フォワードセキュア及びバックセキュアを実現することができる秘匿認証システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の秘匿認証システムは、被認証装置において、自装置、またはユーザの正当性を示す認証データに鍵データを乗じる積データなど、認証データ、または鍵データを用いれば逆算してもう一方の鍵データ、または認証データが求められるような形になるように、鍵データと認証データからスクランブルデータを生成すると共に、前記認証データ、鍵データ、及びスクランブルデータのいずれかに対して、少なくとも第３者にとっては逆算が困難な演算処理を行って検証データを求めて、この検証データ及び前記スクランブルデータを認証装置に送り、前記認証装置において、前記被認証装置から受け取った検証データ及びスクランブルデータと、自装置に蓄積された被認証装置、またはユーザごとの認証データとに基づいて、前記被認証装置の正当性を検証する構成とする。
【発明の効果】
【０００７】
本発明によれば、被認証装置と認証装置との通信に介入する中間者により、被認証装置から認証装置に送られるスクランブルデータと検証データが盗み見されたとしても、中間者は、検証データから認証データや鍵データを求めることはできず、また鍵データを知らなければ、スクランブルデータから認証データを求めることはできないため、高いに秘匿性を確保することができる。また、被認証装置及び認証装置での処理が積演算とその逆演算で済むため、演算負荷を軽減してコストを削減することができる。
【発明を実施するための最良の形態】
【０００８】
前記課題を解決するためになされた第１の発明は、被認証装置において、自装置、またはユーザの正当性を示す認証データに鍵データを乗じる積データなど、認証データ、または鍵データを用いれば逆算してもう一方の鍵データ、または認証データが求められるような形になるように、鍵データと認証データからスクランブルデータを生成すると共に、前記認証データ、鍵データ、及びスクランブルデータのいずれかに対して、少なくとも第３者にとっては逆算が困難な演算処理を行って検証データを求めて、この検証データ及び前記スクランブルデータを認証装置に送り、前記認証装置において、前記被認証装置から受け取った検証データ及びスクランブルデータと、自装置に蓄積された被認証装置、またはユーザごとの認証データとに基づいて、前記被認証装置の正当性を検証するものであり、前記被認証装置と前記認証装置との間で前記鍵データを共有させる構成とする。
【０００９】
これによると、被認証装置と認証装置との通信に介入する中間者により、被認証装置から認証装置に送られるスクランブルデータと検証データが盗み見されたとしても、中間者は、検証データから認証データや鍵データを求めることはできず、また鍵データを知らなければ、スクランブルデータから認証データを求めることはできないため、高い秘匿性を確保することができる。また、被認証装置及び認証装置での処理が積演算など簡単な演算で済むため、演算負荷を軽減してコストを削減することができる。
【００１０】
また、積データなどスクランブルデータのみでも認証装置にて認証データを求めることができるため、スクランブルデータのみを認証装置に送ることも考えられるが、この場合、中間者が適当に生成したデータで認証を試みて、たまたま適合するものがあれば、認証が成功する可能性がある。一方、本発明のように検証データも同時に送るようにすると、スクランブルデータを元にした認証データの照合と検証データの照合とが同時に成功する余地は皆無に等しく、不正な認証を確実に阻止することができる。
【００１１】
ここで、認証データとは、被認証装置の正当性を示すものであり、被認証装置やこれを操作するユーザに与えられたパスワードや、被認証装置を操作するユーザに関するバイオメトリクス情報などである。
【００１２】
この場合、鍵データは、予めあるいは認証時とは別の手順で被認証装置及び認証装置に保有させる。また、中間者は、検証データから元になるデータを逆算できずとも、元データの値に、適当な値を入れて計算結果が合致するか否かを確かめるオフライン攻撃を行うことは可能であるので、元データの値は十分大きなものであることが望ましい。以下も同様である。
【００１３】
前記課題を解決するためになされた第２の発明は、被認証装置において、自装置、またはユーザの正当性を示す認証データに鍵データを乗じる積データなど、認証データを用いれば逆算して鍵データが求められるような形になるように、鍵データと認証データからスクランブルデータを生成すると共に、前記鍵データ、及びスクランブルデータのいずれかに対して、少なくとも第３者にとっては逆算が困難な演算処理を行って検証データを求めて、この検証データ及び前記スクランブルデータを認証装置に送り、前記認証装置において、前記被認証装置から受け取った検証データ及びスクランブルデータと、自装置に蓄積された被認証装置、またはユーザごとの認証データとに基づいて、前記被認証装置の正当性を検証するものであり、前記被認証装置と前記認証装置のいずれかで前記鍵データを乱数で生成する構成とする。
【００１４】
これによると、被認証装置と認証装置との通信に介入する中間者により、被認証装置から認証装置に送られるスクランブルデータと検証データが盗み見されたとしても、中間者は、検証データから認証データや鍵データを求めることはできず、また鍵データを知らなければ、スクランブルデータから認証データを求めることはできないため、高い秘匿性を確保することができる。また、被認証装置及び認証装置での処理が積演算など簡単な演算で済むため、演算負荷を軽減してコストを削減することができる。また、鍵データを乱数で生成するため、秘匿性をより一層高めることができる。
【００１５】
また、積データなどスクランブルデータのみでも認証装置にて認証データを求めることができるため、スクランブルデータのみを認証装置に送ることも考えられるが、この場合、中間者が適当に生成したデータで認証を試みて、たまたま適合するものがあれば、認証が成功する可能性がある。一方、本発明のように検証データも同時に送るようにすると、スクランブルデータを元にした認証データの照合と検証データの照合とが同時に成功する余地は皆無に等しく、不正な認証を確実に阻止することができる。
【００１６】
ここで、認証データとは、被認証装置の正当性を示すものであり、被認証装置やこれを操作するユーザに与えられたパスワードや、被認証装置を操作するユーザに関するバイオメトリクス情報などである。
【００１７】
前記課題を解決するためになされた第３の発明は、前記第１・第２の発明において、前記検証データは、前記鍵データ、若しくは認証データを一方向性関数を用いて変換する演算処理により求められる構成とする。
【００１８】
これによると、逆関数の計算が困難であるため、被認証装置と認証装置との通信に介入する中間者は、検証データから認証データや鍵データを求めることはできないため、秘匿性を確保することができる。
【００１９】
この場合、一方向性関数としては、逆関数の計算が困難で、元データを求めることが事実上できないものであり、その代表的なものとしてハッシュ関数があるが、べき乗関数、特に２乗関数でも、データ量（桁数）が大きくなると、実用上十分な一方向性が得られ、また演算負荷が低いことから、低速の演算機能しか備えていない簡易な装置にも適用することができる。なお、以下の一方向性関数も同様である。
【００２０】
前記課題を解決するためになされた第４の発明は、前記第１・第２の発明において、前記検証データは、前記鍵データ、若しくは認証データを前記認証装置の公開鍵を用いて暗号化する演算処理により求められる構成とする。
【００２１】
なお、認証装置の公開鍵、秘密鍵というのは、認証装置内のものに限定されるものではなく、認証装置に読取りされる外部のスマートカードようなのものも含まれる。
【００２２】
これによると、被認証装置と認証装置との通信に介入する中間者は、認証装置の秘密鍵がなければ、検証データから認証データや鍵データを求めることはできないため、秘匿性を確保することができる。
【００２３】
この場合、暗号化方式としては、ＲＳＡ方式、ＤＨ方式、及び楕円暗号方式など種々の暗号化方式が可能である。なお、以下の暗号化も同様である。
【００２４】
なお、鍵データ、若しくは認証データの値が非常に大きい場合は、乱数で共通鍵を発生させ、この共通鍵で鍵データ、若しくは認証データの暗号化を行い、共通鍵は、公開鍵で暗号化を行うというハイブリッド暗号とすると良い。
【００２５】
前記課題を解決するためになされた第５の発明は、前記第１〜第４の発明において、前記被認証装置及び前記認証装置の双方において、互いに同一の一方向性関数を用いて前記認証データ、若しくは前記鍵データを変換して、その変換結果で前記認証データ、若しくは前記鍵データを更新する構成とする。
【００２６】
これによると、他者により被認証装置や認証装置が保持する認証データが盗取されたとしても、被認証装置や認証装置が過去に保持していた認証データが分からないため、認証に関する事実（認証相手、認証日時など）を過去に遡って探索されることのないフォワードセキュアを実現することができる。被認証装置がカードであるカード認証などにおいて、カード廃棄を行う際に、カードに対して特に特別な対処を行わずとも、安全性が確保されるので良い。また、自装置内での変換処理のみで済むため、コストを削減することができる。
【００２７】
この場合、被認証装置と認証装置での更新処理は同一のタイミングで行われ、例えば１回の認証のたびに、被認証装置で認証データが更新されると同時に、その認証を受けた被認証装置に関する認証データ、若しくは鍵データが認証装置で更新される。
【００２８】
なお、一方向性関数を用いた認証データ、若しくは鍵データの変換は、認証データ、若しくは鍵データの全てに対して行う他、その一部に対して行うものとしても良い。
【００２９】
前記課題を解決するためになされた第６の発明は、前記第１〜第５の発明において、前記被認証装置において、前記認証データ、若しくは前記鍵データを前記認証装置の公開鍵を用いて暗号化した上でスクランブルデータを求めてこのスクランブルデータを前記認証装置に送り、前記認証装置において、前記被認証装置から受け取ったスクランブルデータに前記被認証装置とは逆の演算を行った上で自身の秘密鍵を用いて復号化する構成とする。
【００３０】
これによると、中間者により被認証装置や認証装置が保持する認証データが盗取されたとしても、認証データまたは鍵データが暗号化されているため、被認証装置と認証装置との通信に介入する中間者は、認証装置の秘密鍵がない限り、送信される認証データまたは鍵データの内容がわからず、認証に関する事実を未来に渡って探索されることのないバックセキュアを実現することができる。被認証装置がカードであるカード認証などにおいて、他者に、カードの中身をカード所持者に分からないように盗み見されても、少なくともカード所持者の行動が監視されることはなくなる。また、認証に関する事実を過去に遡って探索されることのないフォワードセキュアを実現することができる。
【００３１】
なお、認証データまたは鍵データの暗号化は、認証データ及び鍵データの全てに対して行う他、その一部に対して行うものとしても良い。また、認証装置の公開鍵、秘密鍵というのは、認証装置内のものに限定されるものではなく、認証装置に読取りされる外部のスマートカードのようなものも含まれる。
【００３２】
以下、本発明の実施の形態を、図面を参照しながら説明する。
【００３３】
図１は、本発明による秘匿認証システムを示すシステム構成図である。ここでは、クライアント装置（被認証装置）１とサーバ装置（認証装置）２とがネットワーク接続され、サーバ装置２においてクライアント装置１の認証を行うための認証データ（パスワードなど）をクライアント装置１からサーバ装置２に通知するものである。このような認証システムでは、クライアント装置１とサーバ装置２との間の通信に介入した中間者装置３により認証データを盗取されたり、中間者装置３が正規のクライアント装置１になりすましてサーバ装置２で不正に認証を受けることを阻止するために、以下のような秘匿認証システムが採用される
【００３４】
＜鍵共有型で一方向性関数による検証データの例＞
図２は、図１に示したクライアント装置及びサーバ装置の第１の例を示すブロック図である。クライアント装置１は、自装置の正当性を示す認証データＭを秘密に記憶する認証データ記憶部１０１と、鍵データＳを秘密に記憶する鍵データ記憶部１０２と、鍵データ記憶部１０２の鍵データＳを認証データＭに乗じて積データＭ×Ｓを求める積演算部１０３と、鍵データＳを一方向性関数を用いて変換する演算処理を行って検証データＦ（Ｓ）を求める検証データ生成部１０４とを有しており、クライアント装置１からサーバ装置２に対する認証要求時に、検証データ生成部１０４で得られた検証データＦ（Ｓ）と積演算部１０３で得られた積データＭ×Ｓがサーバ装置２に送られる。
【００３５】
検証データ生成部１０４で用いられる一方向性関数としては、ハッシュ関数などの典型的な一方向性関数も可能であるが、実用上十分な一方向性が得られる２乗関数が好適であり、演算負荷が低いことから、低速の演算機能しか備えていない簡易な装置（ＲＦＩＤタグなど）にも適用することができる。
【００３６】
サーバ装置２は、複数のクライアント装置１ごとの認証データＭを蓄積する認証データ蓄積部２０１と、鍵データＳを秘密に記憶する鍵データ記憶部２０２と、クライアント装置１から受け取った積データＭ×Ｓに鍵データ記憶部２０２の鍵データＳの逆数を乗じて認証データＭを求める逆演算部２０３と、鍵データ記憶部２０２の鍵データＳに対して、クライアント装置１の検証データ生成部１０４と同一の一方向性関数を用いて変換する演算処理を行って検証データＦ（Ｓ）を求める検証データ生成部２０４と、検証データ生成部２０４で得られた検証データＦ（Ｓ）とクライアント装置１から受け取った検証データＦ（Ｓ）とを比較して鍵データＳの真正を判定する照合部２０５と、逆演算部２０３で得られた認証データＭと認証データ蓄積部２０１に蓄積された認証データＭとを比較してクライアント装置１の正当性を検証する照合部２０６とを有している。
【００３７】
照合部２０６では、照合部２０５で鍵データＳが真正と判定された場合に、認証データ蓄積部２０１から認証データＭが順次読み出され、逆演算部２０３で得られた認証データと比較して、両者が一致すれば認証が成功したものとし、一致するものがなければ認証が失敗したものとする。
【００３８】
鍵データＳは、認証要求時とは別の手順で事前にあるいは事後に、クライアント装置１とサーバ装置２との間で共有させる。なお、サーバ装置２には、鍵データＳを逆数Ｓ−１の状態で保有させるものとしても良い。
【００３９】
この構成では、中間者装置３により、クライアント装置１からサーバ装置２に送られる積データＭ×Ｓと検証データＦ（Ｓ）が盗み見されたとしても、中間者装置３では、検証データＦ（Ｓ）から鍵データＳを求めることはできず、また鍵データＳを知らなければ、積データＭ×Ｓから認証データＭを求めることはできない。また、積データＭ×Ｓのみでもサーバ装置２にて認証データＭを求めることができるが、この場合、中間者装置３が適当に生成したデータで認証を試みて、たまたま適合するものがあれば、認証が成功する可能性があるが、検証データＦ（Ｓ）の照合も成功する余地は皆無に等しい。
【００４０】
＜鍵共有型で一方向性関数による検証データの別の例＞
図３は、図１に示したクライアント装置及びサーバ装置の第２の例を示すブロック図である。ここでは、検証データ生成部１０４・２０４において、認証データＭを一方向性関数を用いて変換する演算処理を行って検証データＦ（Ｍ）を求める構成となっている。その他の構成は、図２の例と同様である。
【００４１】
＜鍵共有型で暗号化による検証データの例＞
図４は、図１に示したクライアント装置及びサーバ装置の第３の例を示すブロック図である。ここでは、クライアント装置１が、鍵データＳをサーバ装置２の公開鍵を用いて暗号化する暗号化部１１１を有しており、ここで得られた暗号化鍵データＥ（Ｓ）と積データＭ×Ｓがサーバ装置２に送られる。サーバ装置２は、クライアント装置１から受け取った暗号化鍵データＥ（Ｓ）を自身の秘密鍵を用いて復号化する復号化部２１１と、復号化部２１１で求められた鍵データＳと鍵データ記憶部２０２に記憶された鍵データＳとを比較して鍵データＳの真正を判定する照合部２１２とを有している。その他の構成は、図２の例と同様である。
【００４２】
この構成では、中間者により、クライアント装置１からサーバ装置２に送られる積データＭ×Ｓと暗号化鍵データＥ（Ｓ）を盗み見されたとしても、中間者は、サーバ装置２の秘密鍵がなければ暗号化鍵データＥ（Ｓ）から鍵データＳを求めることはできず、また鍵データＳを知らなければ、積データＭ×Ｓから認証データＭを求めることはできない。
【００４３】
＜鍵共有型で暗号化による検証データの別の例＞
図５は、図１に示したクライアント装置及びサーバ装置の第４の例を示すブロック図である。ここでは、クライアント装置１の暗号化部１１１において、認証データＭをサーバ装置２の公開鍵を用いて暗号化する処理が行われ、ここで得られた暗号化認証データＥ（Ｍ）と積データＭ×Ｓがサーバ装置２に送られる。サーバ装置２では、復号化部２１１において、暗号化認証データＥ（Ｍ）を自身の秘密鍵を用いて復号化する処理が行われ、照合部２１２において、復号化部２１１で得られた認証データＭと逆演算部２０３で得られた認証データＭとを比較して認証データＭの真正を判定する処理が行われる。その他の構成は、図４の例と同様である。
【００４４】
＜フォワードセキュアを図る例＞
図６は、図１に示したクライアント装置及びサーバ装置の第５の例を示すブロック図である。ここでは、クライアント装置１が、認証データ記憶部１０１に記憶された認証データＭを一方向性関数を用いて変換して、その変換結果で認証データＭを更新するデータ更新部１２１を有している。また、サーバ装置２が、認証データ蓄積部２０１に蓄積された認証データＭを一方向性関数を用いて変換して、その変換結果で認証データＭを更新するデータ更新部２２１を有している。その他の構成は、図２の例と同様である。
【００４５】
クライアント装置１のデータ更新部１２１とサーバ装置２のデータ更新部２２１では互いに同一の一方向性関数が用いられる。この一方向性関数としては、ハッシュ関数などの典型的な一方向性関数も可能であるが、実用上十分な一方向性が得られる２乗関数が好適であり、演算負荷が低いことから、低速の演算機能しか備えていない簡易な装置（ＲＦＩＤタグなど）にも適用することができる。
【００４６】
また、クライアント装置１のデータ更新部１２１とサーバ装置２のデータ更新部２２１での更新処理は同一のタイミングで行われ、例えば１回の認証のたびに、クライアント装置１のデータ更新部１２１で認証データが更新されると同時に、サーバ装置２のデータ更新部２２１でクライアント装置１に関する認証データが更新される。
【００４７】
これにより、他者によりクライアント装置１やサーバ装置２が保持する認証データが盗取されたとしても、クライアント装置１やサーバ装置２が過去に保持していた分散データが分からないため、認証に関する事実（認証相手、認証日時など）を過去に遡って探索されることのないフォワードセキュアを実現することができる。また、自装置内での変換処理のみで済むため、コストを削減することができる。
【００４８】
なお、データ更新部１２１・２２１において、鍵データ記憶部１０２・２０２に記憶された鍵データを一方向性関数で更新するものとしても良い。
【００４９】
＜フォワード・バックセキュアを図る例＞
図７は、図１に示したクライアント装置及びサーバ装置の第６の例を示すブロック図である。ここでは、クライアント装置１が、認証データＭをサーバ装置２の公開鍵を用いて暗号化する暗号化部１３１と、暗号化部１３１で得られた暗号化認証データＥ（Ｍ）に鍵データ記憶部１０２の鍵データＳを乗じて積データＳ×Ｅ（Ｍ）を求める積演算部１３２とを有しており、積演算部１３２で得られた積データＳ×Ｅ（Ｍ）が検証データＦ（Ｓ）と共にサーバ装置２に送られる。
【００５０】
サーバ装置２は、クライアント装置１から受け取った積データＳ×Ｅ（Ｍ）に鍵データＳの逆数を乗じて暗号化認証データＥ（Ｍ）を求める逆演算部２３１と、逆演算部２３１で得られた暗号化認証データＥ（Ｍ）を自身の秘密鍵を用いて復号化する復号化部２３２と、復号化部２３２で得られた認証データＭと認証データ蓄積部２０１に蓄積された認証データＭとを比較してクライアント装置１の正当性を検証する照合部２３３とを有している。その他の構成は、図２の例と同様である。
【００５１】
この構成では、他者によりクライアント装置１やサーバ装置２が保持する認証データＭが盗取されたとしても、認証データＭが暗号化されているため、クライアント装置１とサーバ装置２との通信に介入する中間者は、鍵データＳとサーバ装置２の秘密鍵との双方がない限り、送信される認証データの内容がわからず、認証に関する事実を未来に渡って探索されることのないバックセキュアを実現することができる。また、通知に関する事実を過去に遡って探索されることのないフォワードセキュアを実現することができる。
【００５２】
なお、積データＭ×Ｓを暗号化したり、あるいは検証データＦ（Ｓ）を暗号化したりすることも可能である。但し、認証データＭや鍵データＳの値が変わらなければ、その暗号化されたデータは常に同じ値になるため、中間者装置７は、認証している者が誰か特定できなくても、ある者がいつ認証を行っているかを追跡することは可能であり、危険である。これを避けるには、図６のように、認証データＭや鍵データＳの値を逐次更新すると良い。また、乱数で共通鍵を発生させ、この共通鍵で認証データＭや鍵データＳの暗号化を行い、共通鍵は、被通知装置２の公開鍵で暗号化を行うというハイブリッド暗号であれば、認証データＭや鍵データＳの値を逐次更新せずとも危険性はない。
【００５３】
＜双方向認証の例＞
図８は、図１に示したクライアント装置及びサーバ装置の第７の例を示すブロック図である。ここでは、サーバ装置２が、互いに異なる鍵データＳと鍵データＫを秘密に記憶する鍵データ記憶部２４１と、照合部２０６で認証が成功した認証データＭに、鍵データ記憶部２４１の鍵データＫを乗じて積データＭ×Ｋを求める積演算部２４２と、鍵データ記憶部２４１の鍵データＫを一方向性関数を用いて変換する演算処理を行って検証データＦ（Ｋ）を求める検証データ生成部２４３とを有しており、ここで得られた検証データＦ（Ｋ）と積演算部２４２で得られた積データＭ×Ｋがクライアント装置１に送られる。
【００５４】
クライアント装置１は、互いに異なる鍵データＳと鍵データＫを秘密に記憶する鍵データ記憶部１４１と、鍵データ記憶部１４１の鍵データＫを一方向性関数を用いて変換する演算処理を行って検証データＦ（Ｋ）を求める検証データ生成部１４２と、検証データ生成部１４２で得られた検証データＦ（Ｋ）とサーバ装置２から受け取った検証データＦ（Ｋ）とを比較して鍵データＫの真正を判定する照合部１４３と、サーバ装置２から受け取った積データＭ×Ｋに鍵データ記憶部１４１の鍵データＫの逆数を乗じて認証データＭを求める逆演算部１４４と、この逆演算部１４４で得られた認証データＭと認証データ記憶部１０１の認証データＭとを比較してサーバ装置２の正当性を検証する照合部１４５とを有している。
【００５５】
これにより、クライアント装置１がサーバ装置２の正当性を確認することができ、双方向認証が可能になる。
【００５６】
なおここでは、クライアント装置１からサーバ装置２に対する認証要求時に用いられる鍵データＳと、サーバ装置２からクライアント装置１に対する応答時に用いられる鍵データＫとを異なるものとして、認証要求時と応答時の通信データが同一となることを避けるようにしたが、認証要求時と応答時とで検証データの生成に用いる一方向性関数を異なるものとする、例えば認証要求時に２乗関数を用い、応答時にハッシュ関数を用いるなどの工夫を行えば、認証要求時と応答時とで同じ鍵データを利用することが可能である
【００５７】
＜鍵乱数型で一方向性関数による検証データの例＞
図９は、図１に示したクライアント装置及びサーバ装置の第８の例を示すブロック図である。ここでは、クライアント装置１が、鍵データＳを乱数で生成する乱数生成部１６１を有しており、ここで生成した鍵データＳを用いて積データＭ×Ｓ及び検証データＦ（Ｓ）が積演算部１０３及び検証データ生成部１０４にて求められる。
【００５８】
サーバ装置２は、クライアント装置１から受け取った積データＭ×Ｓに認証データ蓄積部２０１に蓄積された認証データＭの逆数を乗じて鍵データＳを求める逆演算部２６１を有しており、ここで得られた鍵データＳを用いて検証データ生成部２０４にて検証データＦ（Ｓ）が求められ、照合部２０５にて検証データ生成部２０４で得られた検証データＦ（Ｓ）とクライアント装置１から受け取った検証データＦ（Ｓ）とを比較する処理が行われる。その他の構成は、図２の例と同様である。
【００５９】
逆演算部２６１では、認証データ蓄積部２０１から認証データＭが順次読み出され、照合部２０５にて、検証データ生成部２０４で得られた検証データＦ（Ｓ）とクライアント装置１から受け取った検証データＦ（Ｓ）とが一致すれば認証が成功したものとし、両者が一致しなければ、次の認証データＭを認証データ蓄積部２０１から読み出して同様の処理が行われ、一致するものがなければ認証が失敗したものとする。
【００６０】
この構成では、中間者装置３により、クライアント装置１からサーバ装置２に送られる積データＭ×Ｓと検証データＦ（Ｓ）が盗み見されたとしても、中間者装置３では、検証データＦ（Ｓ）から鍵データＳを求めることはできず、また鍵データＳを知らなければ、積データＭ×Ｓから認証データＭを求めることはできない。さらにここで、図６のように認証データを一方向性関数で更新すれば、フォワードセキュアを実現できる。
【００６１】
なお、認証データＭを識別するＩＤデータを、検証データＦ（Ｓ）及び積データＭ×Ｓと共に、クライアント装置１からサーバ装置２に送るようにしても良い。このようにすると、クライアント装置１から受け取ったＩＤデータに対応する認証データＭを認証データ蓄積部２０１から読み出すことで、照合部２０５での比較処理が１回で済み、処理が簡便になる。
【００６２】
＜鍵乱数型で暗号化による検証データの例＞
図１０は、図１に示したクライアント装置及びサーバ装置の第９の例を示すブロック図である。ここでは、クライアント装置１が、鍵データＳをサーバ装置２の公開鍵を用いて暗号化する暗号化部１７１を有しており、ここで得られた暗号化鍵データＥ（Ｓ）と積データＭ×Ｓがサーバ装置２に送られる。サーバ装置２は、クライアント装置１から受け取った暗号化鍵データＥ（Ｓ）を自身の秘密鍵を用いて復号化する復号化部２７１と、復号化部２７１で求められた鍵データＳと逆演算部２６１で得られた鍵データＳとを比較して鍵データＳの真正を判定する照合部２７２とを有している。その他の構成は、図９の例と同様である。
【００６３】
逆演算部２６１では、認証データ蓄積部２０１から認証データＭが順次読み出され、照合部２７２にて、復号化部２７１で得られた鍵データＳと逆演算部２６１で得られた鍵データＳとが一致すれば認証が成功したものとし、両者が一致しなければ、次の認証データＭを認証データ蓄積部２０１から読み出して同様の処理が行われ、一致するものがなければ認証が失敗したものとする。
【００６４】
この構成では、中間者装置３により、クライアント装置１からサーバ装置２に送られる積データＭ×Ｓと暗号化鍵データＥ（Ｓ）が盗み見されたとしても、中間者装置３では、サーバ装置２の秘密鍵がなければ暗号化鍵データＥ（Ｓ）から鍵データＳを求めることはできず、また鍵データＳを知らなければ、積データＭ×Ｓから認証データＭを求めることはできない。しかも図７と同様に、フォワード・バックセキュアを実現できる。
【００６５】
＜鍵乱数型で双方向認証の例＞
図１１は、図１に示したクライアント装置及びサーバ装置の第１０の例を示すブロック図である。ここでは、サーバ装置２が、鍵データＫを乱数で生成する乱数生成部２８１と、照合部２０５で認証が成功した認証データＭに、乱数生成部２８１で生成した鍵データＫを乗じて積データＭ×Ｋを求める積演算部２８２と、乱数生成部２８１で生成した鍵データＫを一方向性関数を用いて変換する演算処理を行って検証データＦ（Ｋ）を求める検証データ生成部２８３とを有しており、ここで得られた検証データＦ（Ｋ）と積演算部２８２で得られた積データＭ×Ｋがクライアント装置１に送られる。
【００６６】
クライアント装置１は、サーバ装置２から受け取った積データＭ×Ｋに認証データ記憶部１０１の認証データＭの逆数を乗じて鍵データＫを求める逆演算部１８１と、逆演算部１８１で得られた鍵データＫを一方向性関数を用いて変換する演算処理を行って検証データＦ（Ｋ）を求める検証データ生成部１８２と、検証データ生成部１８２で得られた検証データＦ（Ｋ）とサーバ装置２から受け取った検証データＦ（Ｋ）とを比較して鍵データＫの真正を判定する照合部１８３とを有している。
【００６７】
これにより、クライアント装置１がサーバ装置２の正当性を確認することができ、双方向認証が可能になる。
【産業上の利用可能性】
【００６８】
本発明にかかる秘匿認証システムは、高度な秘匿性を確保すると共に演算負荷を軽減してコストを削減することができる効果を有し、他人に知られることなく認証データを被認証装置から認証装置に通知して認証を行う秘匿認証システムなどとして有用である。
【図面の簡単な説明】
【００６９】
【図１】本発明による秘匿認証システムを示すシステム構成図
【図２】図１に示したクライアント装置及びサーバ装置の第１の例を示すブロック図
【図３】図１に示したクライアント装置及びサーバ装置の第２の例を示すブロック図
【図４】図１に示したクライアント装置及びサーバ装置の第３の例を示すブロック図
【図５】図１に示したクライアント装置及びサーバ装置の第４の例を示すブロック図
【図６】図１に示したクライアント装置及びサーバ装置の第５の例を示すブロック図
【図７】図１に示したクライアント装置及びサーバ装置の第６の例を示すブロック図
【図８】図１に示したクライアント装置及びサーバ装置の第７の例を示すブロック図
【図９】図１に示したクライアント装置及びサーバ装置の第８の例を示すブロック図
【図１０】図１に示したクライアント装置及びサーバ装置の第９の例を示すブロック図
【図１１】図１に示したクライアント装置及びサーバ装置の第１０の例を示すブロック図
【符号の説明】
【００７０】
１  クライアント装置
２  サーバ装置
３  中間者装置
１０１  認証データ記憶部、１０２  鍵データ記憶部、１０３  積演算部、１０４  検証データ生成部、１１１  暗号化部、１２１  データ更新部、１３１  暗号化部、１３２  積演算部、１４１  鍵データ記憶部、１４２  検証データ生成部、１４３  照合部、１４４  逆演算部、１４５  照合部、１６１  乱数生成部、１７１  暗号化部、１８１  逆演算部、１８２  検証データ生成部、１８３  照合部
２０１  認証データ蓄積部、２０２  鍵データ記憶部、２０３  逆演算部、２０４  検証データ生成部、２０５  照合部、２０６  照合部、２１１  復号化部、２１２  照合部、２２１  データ更新部、２３１  逆演算部、２３２  復号化部、２３３  照合部、２４１  鍵データ記憶部、２４２  積演算部、２４３  検証データ生成部、２６１  逆演算部、２７１  復号化部、２７２  照合部、２８１  乱数生成部、２８２  積演算部、２８３  検証データ生成部
【図１】
2009272671.tif 000003
【図２】
2009272671.tif 000004
【図３】
2009272671.tif 000005
【図４】
2009272671.tif 000006
【図５】
2009272671.tif 000007
【図６】
2009272671.tif 000008
【図７】
2009272671.tif 000009
【図８】
2009272671.tif 000010
【図９】
2009272671.tif 000011
【図１０】
2009272671.tif 000012
【図１１】
2009272671.tif 000013