(57)【要約】【課題】高度な秘匿性を確保すると共に演算負荷を軽減してコストを削減する。【解決手段】秘匿すべき通知データが、関数を特定する関数データとこの関数から通知データを特定する規則データとからなる複数の分散データに分散して定められ、通知装置１において、通知データから分散データを生成して、その分散データを被通知装置２に送り、被通知装置において、分散データから関数を復元して通知データを求めるものとする。特に、複数の分散データの一部を、通知装置と被通知装置との間で共有させると共に、その一部を、通知装置及び被通知装置で秘密に保持させ、通知装置において、通知データから、被通知装置との間で共有しない分散データを生成して、その分散データを被通知装置に送り、被通知装置において、自装置が保持する分散データと通知装置から受け取った分散データとから通知データを求めるものとする。【選択図】図５
2009271107.tif 000002
【特許請求の範囲】
【請求項１】
秘匿すべき通知データが、関数を特定する関数データとこの関数から通知データを特定する規則データとからなる複数の分散データに分散して定められ、
通知装置において、通知データから分散データを生成して、その分散データを被通知装置に送り、
前記被通知装置において、前記分散データから前記関数を復元して通知データを求めることを特徴とする秘匿通信システム。
【請求項２】
前記複数の分散データの一部を、通知時とは別の手順で、前記通知装置と前記被通知装置との間で共有させると共に、その一部を、前記通知装置及び前記被通知装置で秘密に保持させ、
前記通知装置において、通知データから、前記被通知装置との間で共有しない分散データを生成して、その分散データを前記被通知装置に送り、
前記被通知装置において、自装置が保持する分散データと前記通知装置から受け取った分散データとから通知データを求めることを特徴とする請求項１に記載の秘匿通信システム。
【請求項３】
前記通知装置及び前記被通知装置の双方において、秘密に保持すべき前記分散データを、互いに同一の一方向性関数を用いて変換して、その変換結果で前記分散データを更新することを特徴とする請求項２に記載の秘匿通信システム。
【請求項４】
前記通知装置において、前記被通知装置に送るべき分散データを前記被通知装置の公開鍵、または前記被通知装置及び前記通知装置の双方において共有する共通鍵を用いて暗号化した上で前記被通知装置に送り、
前記被通知装置において、暗号化された分散データを自装置の秘密鍵、または前記被通知装置及び前記通知装置の双方において共有する共通鍵を用いて復号化することを特徴とする請求項１乃至請求項３のいずれかに記載の秘匿通信システム。
【請求項５】
請求項１乃至請求項４のいずれかに記載の秘匿通信システムにおいて、前記通知データが、被認証装置、またはユーザの正当性を示す認証データであり、
認証装置となる前記被通知装置において、前記認証データに基づいて被認証装置となる前記通知装置の正当性を検証することを特徴とする秘匿認証システム。
【請求項６】
前記被認証装置及び前記認証装置の双方において、互いに同一の一方向性関数を用いて前記認証データを変換して、その変換結果で前記認証データを更新することを特徴とする請求項５に記載の秘匿認証システム。
【請求項７】
前記認証装置において、分散データの一部を任意に生成して、前記被認証装置に送り、
前記被認証装置において、前記認証装置から受け取った分散データと認証データから残りの分散データを生成して、その分散データを前記認証装置に送ることを特徴とする請求項５若しくは請求項６に記載の秘匿認証システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、他人に知られることなく通知データを通知装置から被通知装置に通知する秘匿通信システム、他人に知られることなく認証データを被認証装置から認証装置に通知して認証を行う及び秘匿認証システムに関するものである。
【背景技術】
【０００２】
映像データをネットワークを介して通信する遠隔会議システムやＩＰカメラシステムのような映像通信システムや、印刷データをネットワークを介して通信するネットワーク印刷システムにおいては、映像データや印刷データなどの秘匿性を要求される通信データがネットワーク上に送出されるため、通信データを盗み見されるおそれがあり、これを阻止するための様々な技術が知られている（例えば特許文献１参照）。
【０００３】
また、インターネットバンキングやインターネットショッピングなどのインターネット商取引システムにおいては、ユーザが正規登録された者か否かを検証する認証システムが必要となるが、パスワードなどの認証データがネットワーク上に送出されるため、認証データを盗取して正規のユーザになりすまして不正に利益を受ける行為を阻止するための様々な技術が知られている（例えば特許文献２参照）。
【０００４】
電子マネー機能を有する非接触型ＩＣカードが急速に普及しており、また、入退室管理システムや商品管理システムでも、非接触型ＩＣカードやＲＦＩＤタグが利用されるようになってきたが、この種のＲＦＩＤデバイスを用いたシステムでは、スキミングにより認証データを盗取してなりすましにより不正に利益を受ける行為を阻止する必要があり、このようなＲＦＩＤデバイスの安全性を高める技術としては、Randomized Hash Lock方式、ハッシュチェーン方式（特許文献３参照）、再暗号化方式（特許文献４参照）が知られている。
【特許文献１】特開２００７−２８８６９４号公報
【特許文献２】特開２００７−２９３７８７号公報
【特許文献３】特再表２００５−０３１５７９号公報
【特許文献４】特開２００４−３１７７６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかるに、従来の様々な技術では、複雑な演算処理により通信データや認証データの秘匿性を高めることができる反面、高速な演算手段が必要になることから、コストが嵩み、低コスト化の要望を十分に満足することができず、低コスト化と高度な秘匿性とを両立させることが可能な技術が望まれる。特に、通知に関する事実（通信相手、通信日時など）を過去に遡って探索されることのないフォワードセキュアや、通知に関する事実を未来に渡って探索されることのないバックセキュアを実現するシステムが望まれる。
【０００６】
本発明は、このような発明者の知見に基づき案出されたものであり、その主な目的は、高度な秘匿性を確保すると共に演算負荷を軽減してコストを削減することができるように構成された秘匿通信システム及び秘匿認証システムを提供することにある。また本発明は、フォワードセキュア及びバックセキュアを実現することができる秘匿通信システム及び秘匿認証システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の秘匿通信システムは、秘匿すべき通知データが、関数を特定する関数データとこの関数から通知データを特定する規則データとからなる複数の分散データに分散して定められ、通知装置において、通知データから分散データを生成して、その分散データを被通知装置に送り、前記被通知装置において、前記分散データから前記関数を復元して通知データを求める構成とする。
【０００８】
また、本発明の秘匿認証システムは、前記秘匿通信システムにおいて、前記通知データが、被認証装置、またはユーザの正当性を示す認証データであり、認証装置となる前記被通知装置において、前記認証データに基づいて被認証装置となる前記通知装置の正当性を検証する構成とする。
【発明の効果】
【０００９】
本発明によれば、分散データが全て揃わないと通知データを求めることができないため、高度な秘匿性を確保することができ、また、１次関数のように次数の小さな関数を用いることで、演算負荷を軽減することができるため、低速な演算手段で済み、コストを削減することができる。
【発明を実施するための最良の形態】
【００１０】
上記課題を解決するためになされた第１の発明による秘匿通信システムは、秘匿すべき通知データが、関数を特定する関数データとこの関数から通知データを特定する規則データとからなる複数の分散データに分散して定められ、通知装置において、通知データから分散データを生成して、その分散データを被通知装置に送り、前記被通知装置において、前記分散データから前記関数を復元して通知データを求める構成とする。
【００１１】
これによると、通知装置と被通知装置との通信に介入する中間者により、通知装置から被通知装置に送られる分散データが盗み見されたとしても、中間者は、分散データが全て揃わないと通知データを求めることができないため、高度な秘匿性を確保することができ、また、１次関数のように次数の小さな関数を用いることで、演算負荷を軽減することができるため、低速な演算手段で済み、コストを削減することができる。
【００１２】
ここで、分散データのうちの関数データは、関数を一意に定めるものであり、例えば関数が示す１次直線あるいはｎ次曲線上の点の座標値、関数式の係数、傾き、及び切片などの値である。ここで、ｎ次関数の直線あるいは曲線上の点の座標値を関数データとした場合には、関数データはｎ＋１個の点のＸ値及びＹ値となり、これらの値により関数が一意に定められる。
【００１３】
また、分散データのうちの規則データは、関数から通知データを特定する取り決めであり、例えば関数が示す１次直線あるいはｎ次曲線上の点のＹ値を通知データとした場合には、その点のＸ値が規則データとなる。さらに、関数が示す１次直線あるいはｎ次曲線と別の１次直線あるいはｎ次曲線との交点の座標値を通知データとすることもでき、この場合、その交点を形成する別の１次直線あるいはｎ次曲線を示す関数を特定する値が規則データとなる。また、関数の式の係数を通知データとすることもでき、この場合、係数を通知データとする指定情報が規則データとなる。
【００１４】
前記課題を解決するためになされた第２の発明は、前記第１の発明において、前記複数の分散データの一部を、通知時とは別の手順で、前記通知装置と前記被通知装置との間で共有させると共に、その一部を、前記通知装置及び前記被通知装置で秘密に保持させ、前記通知装置において、通知データから、前記被通知装置との間で共有しない分散データを生成して、その分散データを前記被通知装置に送り、前記被通知装置において、自装置が保持する分散データと前記通知装置から受け取った分散データとから通知データを求める構成とする。
【００１５】
これによると、通知装置と被通知装置との間で共有しない分散データのみを送れば良く、通信量を削減することができる。また、共有する分散データの一部を秘密に保持させることで、通知データの秘匿性を高めることができる。
【００１６】
前記課題を解決するためになされた第３の発明は、前記第２の発明において、前記通知装置及び前記被通知装置の双方において、秘密に保持すべき前記分散データを、互いに同一の一方向性関数を用いて変換して、その変換結果で前記分散データを更新する構成とする。
【００１７】
これによると、他者により通知装置や被通知装置が保持する分散データが盗取されたとしても、通知装置や被通知装置が過去に保持していた分散データが分からないため、通知データを過去に遡って探索されることのないフォワードセキュアを実現することができる。また、自装置内での変換処理のみで済むため、コストを削減することができる。
【００１８】
この場合、一方向性関数としては、逆関数の計算が困難で、元データを求めることが事実上できないものであり、その代表的なものとしてハッシュ関数があるが、べき乗関数、特に２乗関数でも、桁数が大きくなると、実用上十分な一方向性が得られ、また演算負荷が低いことから好適である。
【００１９】
なお、一方向性関数を用いた分散データの変換は、分散データの全てに対して行う他、その一部に対して行うものとしても良い。
【００２０】
前記課題を解決するためになされた第４の発明は、前記第１〜第３の発明において、前記通知装置において、前記被通知装置に送るべき分散データを前記被通知装置の公開鍵、または前記被通知装置及び前記通知装置の双方において共有する共通鍵を用いて暗号化した上で前記被通知装置に送り、前記被通知装置において、暗号化された分散データを自装置の秘密鍵、または前記被通知装置及び前記通知装置の双方において共有する共通鍵を用いて復号化する構成とする。
【００２１】
これによると、他者により通知装置や被通知装置が保持する分散データが盗取されたとしても、通知装置から被通知装置に送られる分散データが暗号化されているため、通知装置と被通知装置との通信に介入する中間者は、被通知装置の秘密鍵がない限り、送信される分散データの内容がわからず、通知データを未来に渡って探索されることのないバックセキュアを実現することができる。また、通知データを過去に遡って探索されることのないフォワードセキュアを実現することができる。
【００２２】
なお、分散データの暗号化は、分散データの全てに対して行う他、その一部に対して行うものとしても良い。また、前記被通知装置の公開鍵、秘密鍵というのは、前記被通知装置内のものに限定されるものではなく、前記被通知装置に読取りされる外部のスマートカードようなものも含まれる。同様に、前記被通知装置及び前記通知装置の双方において共有する共通鍵も、前記被通知装置、または前記通知装置に読取りされる外部のスマートカードようなものも含まれる。
【００２３】
前記課題を解決するためになされた第５の発明による秘匿認証システムは、前記第１〜第４の発明における秘匿通信システムにおいて、前記通知データが、被認証装置、またはユーザの正当性を示す認証データであり、認証装置となる前記被通知装置において、前記認証データに基づいて被認証装置となる前記通知装置の正当性を検証する構成とする。
【００２４】
これによると、認証装置での認証に要する被認証装置の認証データを通信路上に送出することなく認証装置に通知することができるため、認証データの秘匿性を高度に確保することができる。
【００２５】
ここで、認証データとは、被認証装置の正当性を示すものであり、被認証装置やこれを操作するユーザに与えられたパスワードや、被認証装置を操作するユーザに関するバイオメトリクス情報などである。
【００２６】
前記課題を解決するためになされた第６の発明は、前記第５の発明において、前記被認証装置及び前記認証装置の双方において、互いに同一の一方向性関数を用いて前記認証データを変換して、その変換結果で前記認証データを更新する構成とする。
【００２７】
これによると、他者により被認証装置や認証装置が保持する認証データが盗取されたとしても、被認証装置や認証装置が過去に保持していた認証データが分からないため、認証に関する事実（認証相手、認証日時など）を過去に遡って探索されることのないフォワードセキュアを実現することができる。被認証装置がカードであるカード認証などにおいて、カード廃棄を行う際に、カードに対して特に特別な対処を行わずとも、安全性が確保されるので良い。また、自装置内での変換処理のみで済むため、コストを削減することができる。
【００２８】
なお、一方向性関数を用いた認証データの変換は、認証データの全てに対して行う他、その一部に対して行うものとしても良い。
【００２９】
前記課題を解決するためになされた第７の発明は、前記第５・第６の発明において、前記認証装置において、分散データの一部を任意に生成して、前記被認証装置に送り、前記被認証装置において、前記認証装置から受け取った分散データと認証データから残りの分散データを生成して、その分散データを前記認証装置に送る構成とする。
【００３０】
これによると、認証装置から被認証装置に送られる分散データが逐次変化するため、認証装置と被認証装置との間での遣り取りを真似してここで用いられた分散データを使用して不正に認証を受けることができなくなり、リトライ攻撃を防御することができる。
【００３１】
以下、本発明の実施の形態を、図面を参照しながら説明する。
【００３２】
≪秘匿通信システム≫
図１は、本発明による秘匿通信システムを示すシステム構成図である。ここでは、通知装置１と被通知装置２とがネットワーク接続され、秘匿すべき通知データを通知装置１から被通知装置２に通知するものである。このような通信システムでは、通知装置１と被通知装置２との間の通信に介入した中間者装置３により通知データを盗み見されることを阻止するために、以下のような秘匿通信方法が採用される。
【００３３】
図２・図３は、本発明における秘匿通信の要領を説明する図である。ここでは、通知データｍが、点Ｓ（ｘ２，ｓ）と点Ｋ（ｘ３，ｋ）とを通過する１次直線上でＸ値がｘ１となる点Ｍ（ｘ１，ｍ）のＹ値として与えられ、この直線の関数式は、関数データｘ２・ｘ３・ｓ・ｋにより一義的に定められ、これらの関数データと、直線の関数式から通知データｍを特定するための規則データｘ１とから通知データｍが求められる。
【００３４】
ここで、関数データｘ２・ｘ３・ｓ・ｋ及び規則データｘ１は、通知データｍを分散して規定する分散データとして位置付けられ、これらの分散データｘ１〜ｘ３・ｓ・ｋが全て揃わないと通知データｍを求めることができない。
【００３５】
分散データｘ１〜ｘ３・ｓ・ｋは、その全てを通知時に通知装置１から被通知装置２に送ることも可能であるが、以下に示すように、分散データｘ１〜ｘ３・ｓ・ｋの一部を、通知時とは別の手順で事前にあるいは事後に、通知装置１と被通知装置２との間で共有させ、通知時に、通知装置１において、通知データｍから、被通知装置２との間で共有しない分散データを生成して、その分散データを被通知装置２に送り、被通知装置２において、自装置が保持する分散データと通知装置１から受け取った分散データとから通知データｍを求めるようにすると良い。
【００３６】
図２（Ａ）に示す方式１では、１つの点ＳのＹ値である分散データｓのみを通知装置から被通知装置に送り、残りの分散データｘ１〜ｘ３・ｋは、通知装置と被通知装置との間で共有している。この残りの分散データｘ１〜ｘ３・ｋは固定値であり、少なくとも一部の情報は秘密に保持する。望ましくは、安全上、すべて秘密に保持するのが良い。この場合、通知データｍに応じて分散データｓのみが変動する。
【００３７】
図２（Ｂ）に示す方式１の改良では、１つの点ＳのＸ値及びＹ値である分散データｓ・ｘ２を送り、残りの分散データｘ１・ｘ３・ｋは、通知装置と被通知装置との間で共有している。この残りの分散データｘ１・ｘ３・ｋは固定値であり、少なくとも一部の情報は秘密に保持する。望ましくは、安全上、すべて秘密に保持するのが良い。この場合、分散データｘ２は任意の値、例えば乱数で生成して、２つの点Ｍ・Ｋを通る直線上に点Ｓがくるように分散データｓが定められる。
【００３８】
図３（Ａ）に示す方式２では、２つの点Ｓ・ＫのＹ値である分散データｓ・ｋを送り、残りの分散データｘ１〜ｘ３は、通知装置と被通知装置との間で共有している。この残りの分散データｘ１〜ｘ３は固定値であり、少なくとも一部の情報は秘密に保持する。望ましくは、安全上、すべて秘密に保持するのが良い。この場合、分散データｓは任意の値、例えば乱数で生成して、２つの点Ｍ・Ｓを通る直線上でＸ値がｘ３となる点ＫのＹ値として分散データｋが定められる。逆に、分散データｋを乱数で決めた後、２つの点Ｍ・Ｋを通る直線上でＸ値がｘ２となる点ＳのＹ値として分散データｓを定めても良い。
【００３９】
図３（Ｂ）に示す方式２の改良では、点ＳのＸ値及びＹ値と点ＫのＹ値である分散データｓ・ｘ２・ｋを送り、残りの分散データｘ１・ｘ３は、通知装置と被通知装置との間で共有している。この残りの分散データｘ１・ｘ３は固定値であり、少なくとも一部の情報は秘密に保持する。望ましくは、安全上、すべて秘密に保持するのが良い。この場合、分散データｓ・ｘ２は任意の値、例えば乱数で生成して、２つの点Ｍ・Ｓを通る直線上でＸ値がｘ３となる点ＫのＹ値として分散データｋが定められる。
【００４０】
図４は、本発明における秘匿通信の別の例による要領を説明する図である。ここでは、通知データｍ１が、点Ｍ２（ｘ２，ｍ２）と点Ｋ（ｘ３，ｋ）と点Ｓ（ｘ４，ｓ）とを通過する２次曲線上でＸ値がｘ１となる点Ｍ１（ｘ１，ｍ１）のＹ値として与えられ、この曲線の関数式は、関数データｘ２〜ｘ４・ｍ２・ｓ・ｋにより一義的に定められ、これらの関数データと、曲線の関数式から通知データｍ１を特定するための規則データｘ１とから通知データｍが求められる。
【００４１】
ここで、関数データｘ２〜ｘ４・ｍ２・ｓ・ｋ及び規則データｘ１は、通知データｍ１を分散して規定する分散データとして位置付けられ、これらの分散データｘ１〜ｘ４・ｍ２・ｓ・ｋが全て揃わないと通知データｍ１を求めることができない。
【００４２】
分散データｘ１〜ｘ４・ｍ２・ｓ・ｋは、その一部が、通知時とは別の手順で事前にあるいは事後に、通知装置１と被通知装置２との間で共有させ、通知時に、通知装置１において、通知データｍから、被通知装置２との間で共有しない分散データを生成して、その分散データを被通知装置２に送り、被通知装置２において、自装置が保持する分散データと通知装置１から受け取った分散データとから通知データを求めることができる。
【００４３】
＜秘匿通信システムの基本的な例＞
図５は、図１に示した通知装置及び被通知装置の第１の例を示すブロック図である。ここでは、図３（Ａ）の方式２が採用され、分散データｘ１〜ｘ３が通知装置１と被通知装置２との間で共有され、分散データｓ・ｋが通知装置１から被通知装置２に送られる。
【００４４】
通知装置１は、分散データｘ１〜ｘ３を秘密に記憶する分散データ記憶部１０１と、分散データｓを乱数で生成する乱数生成部１０２と、分散データ記憶部１０１に記憶された分散データｘ１〜ｘ３、乱数生成部１０２で生成した分散データｓ、及び秘匿送信したい通知データｍから分散データｋを求める関数処理部１０３とを有しており、ここで得られた分散データｋと乱数生成部１０２で生成した分散データｓとが被通知装置２に送られる。関数処理部１０３では、分散データｘ１・ｘ２・ｓと通知データｍから関数が特定され、この関数と分散データｘ３から分散データｋが求められる。
【００４５】
被通知装置２は、分散データｘ１〜ｘ３を秘密に記憶する分散データ記憶部２０１と、分散データ記憶部２０１に記憶された分散データｘ１〜ｘ３、及び通知装置１から受け取った分散データｓ・ｋから通知データｍを求める関数処理部２０２とを有している。関数処理部２０２では、分散データｘ２・ｘ３・ｓ・ｋから関数が復元され、この関数と分散データｘ１から通知データｍが求められる。
【００４６】
ここで、中間者装置３により、通知装置１から被通知装置２に送られる分散データｓ・ｋを盗み見されたとしても、中間者装置３が分散データｘ１〜ｘ３を全て知らなければ、通知データｍを求めることはできない。
【００４７】
＜秘匿通信システムでフォワードセキュアを図る例＞
図６は、図１に示した通知装置及び被通知装置の第２の例を示すブロック図である。ここでは、通知装置１が、分散データ記憶部１０１に記憶された、秘密に保持すべき分散データｘ１を一方向性関数を用いて変換して、その変換結果で分散データｘ１を更新するデータ更新部１１１を有している。また、被通知装置２が、分散データ記憶部２０１に記憶された、秘密に保持すべき分散データｘ１を一方向性関数を用いて変換して、その変換結果で分散データｘ１を更新するデータ更新部２１１を有している。その他の構成は、図５の例と同様である。
【００４８】
通知装置１のデータ更新部１１１と被通知装置２のデータ更新部２１１では互いに同一の一方向性関数が用いられる。この一方向性関数としては、ハッシュ関数などの典型的な一方向性関数も可能であるが、実用上十分な一方向性が得られる２乗関数が好適であり、演算負荷が低いことから、低速の演算機能しか備えていない簡易な装置にも適用することができる。
【００４９】
また、通知装置１のデータ更新部１１１と被通知装置２のデータ更新部２１１での更新処理は同一のタイミングで行われ、例えば一連の通知データの通知が終了した段階で、また適宜に定めた期間をおいて定期的に行われる。
【００５０】
これにより、他者により通知装置１や被通知装置２が保持する分散データｘ１が盗取されたとしても、通知装置１や被通知装置２が過去に保持していた分散データｘ１が分からないため、通知データを過去に遡って探索されることのないフォワードセキュアを実現することができる。また、自装置内での変換処理のみで済むため、コストを削減することができる。
【００５１】
なお、データ更新部１１１・２１１では、他の分散データｘ２・ｘ３を一方向性関数で更新することも可能である。
【００５２】
＜秘匿通信システムでフォワード・バックセキュアを図る例＞
図７は、図１に示した通知装置及び被通知装置の第３の例を示すブロック図である。ここでは、通知装置１が、乱数生成部１０２で生成した分散データｓを被通知装置２の公開鍵を用いて暗号化する暗号化部１２１を有しており、ここで得られた暗号化データＥ（ｓ）が被通知装置２に送られる。また、被通知装置２が、通知装置１から受け取った暗号化データＥ（ｓ）を自身の秘密鍵を用いて復号化する復号化部２２１を有しており、ここで得られた分散データｓが関数処理部２０２に送られる。その他の構成は、図５の例と同様である。
【００５３】
暗号化部１２１で用いられる暗号化方式としては、ＲＳＡ方式、ＤＨ方式、及び楕円暗号方式など種々の暗号化方式が可能である。
【００５４】
なお、分散データｓの値が非常に大きい場合は、乱数で共通鍵を発生させ、この共通鍵で分散データｓの暗号化を行い、共通鍵は、被通知装置２の公開鍵で暗号化を行うというハイブリッド暗号とすると良い。なおここでは、暗号鍵として、被通知装置２の公開鍵を用いているが、これは、通知装置１と被通知装置２との間で共有される、共通鍵であっても構わない。
【００５５】
これにより、他者により通知装置１や被通知装置２が保持する分散データが盗取されたとしても、通知装置１から被通知装置２に送られる分散データが暗号化されているため、通知装置１と被通知装置２との通信に介入する中間者装置３では、被通知装置２の秘密鍵がない限り、送信される分散データの内容がわからず、通知データを未来に渡って探索されることのないバックセキュアを実現することができる。また、通知データを過去に遡って探索されることのないフォワードセキュアを実現することができる。
【００５６】
≪秘匿認証システム≫
図８は、本発明による秘匿認証システムを示すシステム構成図である。ここでは、クライアント装置（被認証装置）５とサーバ装置（認証装置）６とがネットワーク接続され、サーバ装置６においてクライアント装置５の認証を行うための認証データ（パスワードなど）をクライアント装置５からサーバ装置６に通知するものである。このような認証システムでは、クライアント装置５とサーバ装置６との間の通信に介入した中間者装置７により認証データを盗取されたり、中間者装置３が正規のクライアント装置５になりすましてサーバ装置６で不正に認証を受けることを阻止するために、以下のような秘匿認証方法が採用される。
【００５７】
＜秘匿認証システムの基本的な例＞
図９は、図８に示した被認証装置及び認証装置の第１の例を示すブロック図である。ここでは、図３（Ａ）の方式２が採用され、分散データｘ１〜ｘ３がクライアント装置５とサーバ装置６との間で共有され、分散データｓ・ｋがクライアント装置５からサーバ装置６に送られる。
【００５８】
クライアント装置５は、自装置の正当性を示す認証データｍを秘密に記憶する認証データ記憶部５０１と、分散データｘ１〜ｘ３を秘密に記憶する分散データ記憶部５０２と、分散データｓを乱数で生成する乱数生成部５０３と、認証データ記憶部５０１に記憶された認証データｍ、分散データ記憶部５０２に記憶された分散データｘ１〜ｘ３、及び乱数生成部５０３で生成した分散データｓから分散データｋを求める関数処理部５０４とを有しており、クライアント装置５からサーバ装置６に対する認証要求時に、関数処理部５０４で得られた分散データｋと乱数生成部５０３で生成した分散データｓとが被通知装置２に送られる。関数処理部５０４では、分散データｘ１・ｘ２・ｓと認証データｍから関数が特定され、この関数と分散データｘ３から分散データｋが求められる。
【００５９】
サーバ装置６は、複数のクライアント装置５ごとの認証データｍを蓄積する認証データ蓄積部６０１と、分散データｘ１〜ｘ３を記憶する分散データ記憶部６０２と、分散データ記憶部６０２に記憶された分散データｘ１〜ｘ３、及びクライアント装置５から受け取った分散データｓ・ｋから認証データｍを求める関数処理部６０３と、関数処理部６０３で得られた認証データｍと認証データ蓄積部６０１に蓄積された認証データｍとを比較してクライアント装置５の正当性を検証する照合部６０４とを有している。関数処理部６０３では、分散データｘ２・ｘ３・ｓ・ｋから関数が復元され、この関数と分散データｘ１から認証データｍが求められる。
【００６０】
照合部６０４では、認証データ蓄積部６０１から認証データｍが順次読み出され、関数処理部６０３で得られた認証データｍと一致すれば認証が成功したものとし、両者が一致しなければ、次の認証データｍを認証データ蓄積部６０１から読み出して同様の処理が行われ、一致するものがなければ認証が失敗したものとする。
【００６１】
ここで、中間者装置７により、クライアント装置５からサーバ装置６に送られる分散データｓ・ｋを盗み見されたとしても、中間者装置７が分散データｘ１〜ｘ３を全て知らなければ、認証データｍを求めることはできない。
【００６２】
＜秘匿認証システムでフォワードセキュアを図る例＞
図１０は、図８に示した被認証装置及び認証装置の第２の例を示すブロック図である。ここでは、クライアント装置５が、秘密に保持すべき認証データｍを一方向性関数を用いて変換して、その変換結果で認証データｍを更新するデータ更新部５１１を有している。また、サーバ装置６が、秘密に保持すべき認証データｍを一方向性関数を用いて変換して、その変換結果で認証データｍを更新するデータ更新部６１１を有している。その他の構成は、図９の例と同様である。
【００６３】
クライアント装置５のデータ更新部５１１とサーバ装置６のデータ更新部６１１では互いに同一の一方向性関数が用いられる。この一方向性関数としては、ハッシュ関数などの典型的な一方向性関数も可能であるが、実用上十分な一方向性が得られる２乗関数が好適であり、演算負荷が低いことから、低速の演算機能しか備えていない簡易な装置（ＲＦＩＤタグなど）にも適用することができる。
【００６４】
また、クライアント装置５のデータ更新部５１１とサーバ装置６のデータ更新部６１１での更新処理は同一のタイミングで行われ、例えば１回の認証のたびに、クライアント装置５のデータ更新部５１１で認証データが更新されると同時に、サーバ装置６のデータ更新部６１１でクライアント装置５に関する認証データが更新される。
【００６５】
これにより、他者によりクライアント装置５やサーバ装置６が保持する認証データが盗取されたとしても、クライアント装置５やサーバ装置６が過去に保持していた分散データが分からないため、認証に関する事実（認証相手、認証日時など）を過去に遡って探索されることのないフォワードセキュアを実現することができる。また、自装置内での変換処理のみで済むため、コストを削減することができる。
【００６６】
なお、データ更新部５１１・６１１において、分散データ記憶部５０２・６０２に記憶された分散データｘ１〜ｘ３、特に分散データｘ１を一方向性関数で更新するものとしても良い。
【００６７】
なお、複数回認証を繰り返した場合に、認証データｍは、分散データｓ・ｋを通過する線の交点になるので、図９の方式では、認証データを推測される可能性が少なくないが、このように、認証データや分散データの値を変更すると、その危険性が著しく低下する。
【００６８】
＜秘匿認証システムでフォワード・バックセキュアを図る例＞
図１１は、図８に示した被認証装置及び認証装置の第３の例を示すブロック図である。ここでは、クライアント装置５が、乱数生成部５０３で生成した分散データｓをサーバ装置６の公開鍵を用いて暗号化する暗号化部５２１を有しており、ここで得られた暗号化データＥ（ｓ）がサーバ装置６に送られる。また、サーバ装置６が、クライアント装置５から受け取った暗号化データＥ（ｓ）を自身の秘密鍵を用いて復号化する復号化部６２１を有しており、ここで得られた分散データｓが関数処理部６０３に送られる。その他の構成は、図９の例と同様である。
【００６９】
これにより、他者によりクライアント装置５やサーバ装置６が保持する認証データが盗取されたとしても、クライアント装置５からサーバ装置６に送られる分散データが暗号化されているため、クライアント装置５とサーバ装置６との通信に介入する中間者装置７では、サーバ装置６の秘密鍵がない限り、送信される分散データの内容がわからず、認証に関する事実を未来に渡って探索されることのないバックセキュアを実現することができる。また、通知に関する事実を過去に遡って探索されることのないフォワードセキュアを実現することができる。さらに、複数回認証を繰り返した場合に、認証データｍは、分散データｓ・ｋを通過する線の交点になるので、図９の方式では、認証データを推測される可能性が少なくないが、このように、分散データの値を暗号によって変更すると、その危険性を著しく低下させることができる。
【００７０】
なおここでは、クライアント装置５からサーバ装置６に送られる分散データｋ・ｓのうち、分散データｓのみを暗号化したが、その両方を暗号化する、または分散データｋのみを暗号化するものとしても良い。
【００７１】
なお、分散データの値が非常に大きい場合は、乱数で共通鍵を発生させ、この共通鍵で分散データの暗号化を行い、共通鍵は、サーバ装置６の公開鍵で暗号化を行うというハイブリッド暗号とすると良い。なおここでは、暗号鍵として、サーバ装置６の公開鍵を用いているが、これは、クライアント装置５とサーバ装置６との間で共有される、共通鍵であっても構わない。
【００７２】
＜チャレンジ・レスポンス方式でリトライ攻撃防御を図る例＞
図１２は、図８に示した被認証装置及び認証装置の第４の例を示すブロック図である。ここでは、サーバ装置６が、分散データｓを乱数で生成する乱数生成部６３１を有しており、ここで得られた分散データｓがクライアント装置５に送られる。クライアント装置５では、サーバ装置６から受け取った分散データｓ、認証データ記憶部５０１に記憶された認証データｍ、及び分散データ記憶部５０２に記憶された分散データｘ１〜ｘ３から分散データｋを求める処理が関数処理部５０４にて行われ、ここで得られた分散データｋがサーバ装置６に送られる。
【００７３】
この構成では、サーバ装置６からクライアント装置５に送られる分散データｓが不規則に変化するため、クライアント装置５とサーバ装置６との間での遣り取りを真似してここで用いられた分散データを使用して不正に認証を受けることができなくなり、リトライ攻撃を防御することができる。
【００７４】
なお、前記の各図に示された例を適宜に組み合わせて構成することも可能である。また図５以降の各例では、１次関数による方式を採用したが、図４に示した２次関数による方式も採用することができ、この他、３次関数など種々の関数による方式も可能である。
【００７５】
＜双方向認証の例＞
特に図示しないが、前記の各例に示されたクライアント装置１及びサーバ装置２の各部を互いに入れ替えた構成、すなわちクライアント装置１を認証装置とし、サーバ装置２を被認証装置として、サーバ装置２の関数処理部で分散データｋを生成して、この分散データｋをクライアント装置１に送り、クライアント装置１の照合部で自装置内で生成した分散データｋとサーバ装置２から受け取った分散データｋとを比較してサーバ装置２の正当性を検証する構成と、前記の各例に示された構成とを組み合わせることで、双方向認証が可能になる。
【産業上の利用可能性】
【００７６】
本発明にかかる秘匿通信システム及び秘匿認証システムは、高度な秘匿性を確保すると共に演算負荷を軽減してコストを削減することができる効果を有し、他人に知られることなく通知データを通知装置から被通知装置に通知する秘匿通信システム、他人に知られることなく認証データを被認証装置から認証装置に通知して認証を行う及び秘匿認証システムなどとして有用である。
【図面の簡単な説明】
【００７７】
【図１】本発明による秘匿通信システムを示すシステム構成図
【図２】本発明における秘匿通信の要領を説明する図
【図３】本発明における秘匿通信の要領を説明する図
【図４】本発明における秘匿通信の別の例による要領を説明する図
【図５】図１に示した通知装置及び被通知装置の第１の例を示すブロック図
【図６】図１に示した通知装置及び被通知装置の第２の例を示すブロック図
【図７】図１に示した通知装置及び被通知装置の第３の例を示すブロック図
【図８】本発明による秘匿認証システムを示すシステム構成図
【図９】図８に示した被認証装置及び認証装置の第１の例を示すブロック図
【図１０】図８に示した被認証装置及び認証装置の第２の例を示すブロック図
【図１１】図８に示した被認証装置及び認証装置の第３の例を示すブロック図
【図１２】図８に示した被認証装置及び認証装置の第４の例を示すブロック図
【符号の説明】
【００７８】
１  通知装置
２  被通知装置
３  中間者装置
５  クライアント装置
６  サーバ装置
７  中間者装置
１０１  分散データ記憶部、１０２  乱数生成部、１０３  関数処理部、１１１  データ更新部、１２１  暗号化部
２０１  分散データ記憶部、２０２  関数処理部、２１１  データ更新部、２２１  復号化部
５０１  認証データ記憶部、５０２  分散データ記憶部、５０３  乱数生成部、５０４  関数処理部、５１１  データ更新部、５２１  暗号化部
６０１  認証データ蓄積部、６０２  分散データ記憶部、６０３  関数処理部、６０４  照合部、６１１  データ更新部、６２１  復号化部、６３１  乱数生成部
【図１】
2009271107.tif 000003
【図２】
2009271107.tif 000004
【図３】
2009271107.tif 000005
【図４】
2009271107.tif 000006
【図５】
2009271107.tif 000007
【図６】
2009271107.tif 000008
【図７】
2009271107.tif 000009
【図８】
2009271107.tif 000010
【図９】
2009271107.tif 000011
【図１０】
2009271107.tif 000012
【図１１】
2009271107.tif 000013
【図１２】
2009271107.tif 000014