秘匿通信システム及び秘匿認証システム
【課題】高度な秘匿性を確保すると共に演算負荷を軽減してコストを削減する。
【解決手段】秘匿すべき通知データが、関数を特定する関数データとこの関数から通知データを特定する規則データとからなる複数の分散データに分散して定められ、通知装置1において、通知データから分散データを生成して、その分散データを被通知装置2に送り、被通知装置において、分散データから関数を復元して通知データを求めるものとする。特に、複数の分散データの一部を、通知装置と被通知装置との間で共有させると共に、その一部を、通知装置及び被通知装置で秘密に保持させ、通知装置において、通知データから、被通知装置との間で共有しない分散データを生成して、その分散データを被通知装置に送り、被通知装置において、自装置が保持する分散データと通知装置から受け取った分散データとから通知データを求めるものとする。
【解決手段】秘匿すべき通知データが、関数を特定する関数データとこの関数から通知データを特定する規則データとからなる複数の分散データに分散して定められ、通知装置1において、通知データから分散データを生成して、その分散データを被通知装置2に送り、被通知装置において、分散データから関数を復元して通知データを求めるものとする。特に、複数の分散データの一部を、通知装置と被通知装置との間で共有させると共に、その一部を、通知装置及び被通知装置で秘密に保持させ、通知装置において、通知データから、被通知装置との間で共有しない分散データを生成して、その分散データを被通知装置に送り、被通知装置において、自装置が保持する分散データと通知装置から受け取った分散データとから通知データを求めるものとする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、他人に知られることなく通知データを通知装置から被通知装置に通知する秘匿通信システム、他人に知られることなく認証データを被認証装置から認証装置に通知して認証を行う及び秘匿認証システムに関するものである。
【背景技術】
【0002】
映像データをネットワークを介して通信する遠隔会議システムやIPカメラシステムのような映像通信システムや、印刷データをネットワークを介して通信するネットワーク印刷システムにおいては、映像データや印刷データなどの秘匿性を要求される通信データがネットワーク上に送出されるため、通信データを盗み見されるおそれがあり、これを阻止するための様々な技術が知られている(例えば特許文献1参照)。
【0003】
また、インターネットバンキングやインターネットショッピングなどのインターネット商取引システムにおいては、ユーザが正規登録された者か否かを検証する認証システムが必要となるが、パスワードなどの認証データがネットワーク上に送出されるため、認証データを盗取して正規のユーザになりすまして不正に利益を受ける行為を阻止するための様々な技術が知られている(例えば特許文献2参照)。
【0004】
電子マネー機能を有する非接触型ICカードが急速に普及しており、また、入退室管理システムや商品管理システムでも、非接触型ICカードやRFIDタグが利用されるようになってきたが、この種のRFIDデバイスを用いたシステムでは、スキミングにより認証データを盗取してなりすましにより不正に利益を受ける行為を阻止する必要があり、このようなRFIDデバイスの安全性を高める技術としては、Randomized Hash Lock方式、ハッシュチェーン方式(特許文献3参照)、再暗号化方式(特許文献4参照)が知られている。
【特許文献1】特開2007−288694号公報
【特許文献2】特開2007−293787号公報
【特許文献3】特再表2005−031579号公報
【特許文献4】特開2004−317764号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかるに、従来の様々な技術では、複雑な演算処理により通信データや認証データの秘匿性を高めることができる反面、高速な演算手段が必要になることから、コストが嵩み、低コスト化の要望を十分に満足することができず、低コスト化と高度な秘匿性とを両立させることが可能な技術が望まれる。特に、通知に関する事実(通信相手、通信日時など)を過去に遡って探索されることのないフォワードセキュアや、通知に関する事実を未来に渡って探索されることのないバックセキュアを実現するシステムが望まれる。
【0006】
本発明は、このような発明者の知見に基づき案出されたものであり、その主な目的は、高度な秘匿性を確保すると共に演算負荷を軽減してコストを削減することができるように構成された秘匿通信システム及び秘匿認証システムを提供することにある。また本発明は、フォワードセキュア及びバックセキュアを実現することができる秘匿通信システム及び秘匿認証システムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の秘匿通信システムは、秘匿すべき通知データが、関数を特定する関数データとこの関数から通知データを特定する規則データとからなる複数の分散データに分散して定められ、通知装置において、通知データから分散データを生成して、その分散データを被通知装置に送り、前記被通知装置において、前記分散データから前記関数を復元して通知データを求める構成とする。
【0008】
また、本発明の秘匿認証システムは、前記秘匿通信システムにおいて、前記通知データが、被認証装置、またはユーザの正当性を示す認証データであり、認証装置となる前記被通知装置において、前記認証データに基づいて被認証装置となる前記通知装置の正当性を検証する構成とする。
【発明の効果】
【0009】
本発明によれば、分散データが全て揃わないと通知データを求めることができないため、高度な秘匿性を確保することができ、また、1次関数のように次数の小さな関数を用いることで、演算負荷を軽減することができるため、低速な演算手段で済み、コストを削減することができる。
【発明を実施するための最良の形態】
【0010】
上記課題を解決するためになされた第1の発明による秘匿通信システムは、秘匿すべき通知データが、関数を特定する関数データとこの関数から通知データを特定する規則データとからなる複数の分散データに分散して定められ、通知装置において、通知データから分散データを生成して、その分散データを被通知装置に送り、前記被通知装置において、前記分散データから前記関数を復元して通知データを求める構成とする。
【0011】
これによると、通知装置と被通知装置との通信に介入する中間者により、通知装置から被通知装置に送られる分散データが盗み見されたとしても、中間者は、分散データが全て揃わないと通知データを求めることができないため、高度な秘匿性を確保することができ、また、1次関数のように次数の小さな関数を用いることで、演算負荷を軽減することができるため、低速な演算手段で済み、コストを削減することができる。
【0012】
ここで、分散データのうちの関数データは、関数を一意に定めるものであり、例えば関数が示す1次直線あるいはn次曲線上の点の座標値、関数式の係数、傾き、及び切片などの値である。ここで、n次関数の直線あるいは曲線上の点の座標値を関数データとした場合には、関数データはn+1個の点のX値及びY値となり、これらの値により関数が一意に定められる。
【0013】
また、分散データのうちの規則データは、関数から通知データを特定する取り決めであり、例えば関数が示す1次直線あるいはn次曲線上の点のY値を通知データとした場合には、その点のX値が規則データとなる。さらに、関数が示す1次直線あるいはn次曲線と別の1次直線あるいはn次曲線との交点の座標値を通知データとすることもでき、この場合、その交点を形成する別の1次直線あるいはn次曲線を示す関数を特定する値が規則データとなる。また、関数の式の係数を通知データとすることもでき、この場合、係数を通知データとする指定情報が規則データとなる。
【0014】
前記課題を解決するためになされた第2の発明は、前記第1の発明において、前記複数の分散データの一部を、通知時とは別の手順で、前記通知装置と前記被通知装置との間で共有させると共に、その一部を、前記通知装置及び前記被通知装置で秘密に保持させ、前記通知装置において、通知データから、前記被通知装置との間で共有しない分散データを生成して、その分散データを前記被通知装置に送り、前記被通知装置において、自装置が保持する分散データと前記通知装置から受け取った分散データとから通知データを求める構成とする。
【0015】
これによると、通知装置と被通知装置との間で共有しない分散データのみを送れば良く、通信量を削減することができる。また、共有する分散データの一部を秘密に保持させることで、通知データの秘匿性を高めることができる。
【0016】
前記課題を解決するためになされた第3の発明は、前記第2の発明において、前記通知装置及び前記被通知装置の双方において、秘密に保持すべき前記分散データを、互いに同一の一方向性関数を用いて変換して、その変換結果で前記分散データを更新する構成とする。
【0017】
これによると、他者により通知装置や被通知装置が保持する分散データが盗取されたとしても、通知装置や被通知装置が過去に保持していた分散データが分からないため、通知データを過去に遡って探索されることのないフォワードセキュアを実現することができる。また、自装置内での変換処理のみで済むため、コストを削減することができる。
【0018】
この場合、一方向性関数としては、逆関数の計算が困難で、元データを求めることが事実上できないものであり、その代表的なものとしてハッシュ関数があるが、べき乗関数、特に2乗関数でも、桁数が大きくなると、実用上十分な一方向性が得られ、また演算負荷が低いことから好適である。
【0019】
なお、一方向性関数を用いた分散データの変換は、分散データの全てに対して行う他、その一部に対して行うものとしても良い。
【0020】
前記課題を解決するためになされた第4の発明は、前記第1〜第3の発明において、前記通知装置において、前記被通知装置に送るべき分散データを前記被通知装置の公開鍵、または前記被通知装置及び前記通知装置の双方において共有する共通鍵を用いて暗号化した上で前記被通知装置に送り、前記被通知装置において、暗号化された分散データを自装置の秘密鍵、または前記被通知装置及び前記通知装置の双方において共有する共通鍵を用いて復号化する構成とする。
【0021】
これによると、他者により通知装置や被通知装置が保持する分散データが盗取されたとしても、通知装置から被通知装置に送られる分散データが暗号化されているため、通知装置と被通知装置との通信に介入する中間者は、被通知装置の秘密鍵がない限り、送信される分散データの内容がわからず、通知データを未来に渡って探索されることのないバックセキュアを実現することができる。また、通知データを過去に遡って探索されることのないフォワードセキュアを実現することができる。
【0022】
なお、分散データの暗号化は、分散データの全てに対して行う他、その一部に対して行うものとしても良い。また、前記被通知装置の公開鍵、秘密鍵というのは、前記被通知装置内のものに限定されるものではなく、前記被通知装置に読取りされる外部のスマートカードようなものも含まれる。同様に、前記被通知装置及び前記通知装置の双方において共有する共通鍵も、前記被通知装置、または前記通知装置に読取りされる外部のスマートカードようなものも含まれる。
【0023】
前記課題を解決するためになされた第5の発明による秘匿認証システムは、前記第1〜第4の発明における秘匿通信システムにおいて、前記通知データが、被認証装置、またはユーザの正当性を示す認証データであり、認証装置となる前記被通知装置において、前記認証データに基づいて被認証装置となる前記通知装置の正当性を検証する構成とする。
【0024】
これによると、認証装置での認証に要する被認証装置の認証データを通信路上に送出することなく認証装置に通知することができるため、認証データの秘匿性を高度に確保することができる。
【0025】
ここで、認証データとは、被認証装置の正当性を示すものであり、被認証装置やこれを操作するユーザに与えられたパスワードや、被認証装置を操作するユーザに関するバイオメトリクス情報などである。
【0026】
前記課題を解決するためになされた第6の発明は、前記第5の発明において、前記被認証装置及び前記認証装置の双方において、互いに同一の一方向性関数を用いて前記認証データを変換して、その変換結果で前記認証データを更新する構成とする。
【0027】
これによると、他者により被認証装置や認証装置が保持する認証データが盗取されたとしても、被認証装置や認証装置が過去に保持していた認証データが分からないため、認証に関する事実(認証相手、認証日時など)を過去に遡って探索されることのないフォワードセキュアを実現することができる。被認証装置がカードであるカード認証などにおいて、カード廃棄を行う際に、カードに対して特に特別な対処を行わずとも、安全性が確保されるので良い。また、自装置内での変換処理のみで済むため、コストを削減することができる。
【0028】
なお、一方向性関数を用いた認証データの変換は、認証データの全てに対して行う他、その一部に対して行うものとしても良い。
【0029】
前記課題を解決するためになされた第7の発明は、前記第5・第6の発明において、前記認証装置において、分散データの一部を任意に生成して、前記被認証装置に送り、前記被認証装置において、前記認証装置から受け取った分散データと認証データから残りの分散データを生成して、その分散データを前記認証装置に送る構成とする。
【0030】
これによると、認証装置から被認証装置に送られる分散データが逐次変化するため、認証装置と被認証装置との間での遣り取りを真似してここで用いられた分散データを使用して不正に認証を受けることができなくなり、リトライ攻撃を防御することができる。
【0031】
以下、本発明の実施の形態を、図面を参照しながら説明する。
【0032】
≪秘匿通信システム≫
図1は、本発明による秘匿通信システムを示すシステム構成図である。ここでは、通知装置1と被通知装置2とがネットワーク接続され、秘匿すべき通知データを通知装置1から被通知装置2に通知するものである。このような通信システムでは、通知装置1と被通知装置2との間の通信に介入した中間者装置3により通知データを盗み見されることを阻止するために、以下のような秘匿通信方法が採用される。
【0033】
図2・図3は、本発明における秘匿通信の要領を説明する図である。ここでは、通知データmが、点S(x2,s)と点K(x3,k)とを通過する1次直線上でX値がx1となる点M(x1,m)のY値として与えられ、この直線の関数式は、関数データx2・x3・s・kにより一義的に定められ、これらの関数データと、直線の関数式から通知データmを特定するための規則データx1とから通知データmが求められる。
【0034】
ここで、関数データx2・x3・s・k及び規則データx1は、通知データmを分散して規定する分散データとして位置付けられ、これらの分散データx1〜x3・s・kが全て揃わないと通知データmを求めることができない。
【0035】
分散データx1〜x3・s・kは、その全てを通知時に通知装置1から被通知装置2に送ることも可能であるが、以下に示すように、分散データx1〜x3・s・kの一部を、通知時とは別の手順で事前にあるいは事後に、通知装置1と被通知装置2との間で共有させ、通知時に、通知装置1において、通知データmから、被通知装置2との間で共有しない分散データを生成して、その分散データを被通知装置2に送り、被通知装置2において、自装置が保持する分散データと通知装置1から受け取った分散データとから通知データmを求めるようにすると良い。
【0036】
図2(A)に示す方式1では、1つの点SのY値である分散データsのみを通知装置から被通知装置に送り、残りの分散データx1〜x3・kは、通知装置と被通知装置との間で共有している。この残りの分散データx1〜x3・kは固定値であり、少なくとも一部の情報は秘密に保持する。望ましくは、安全上、すべて秘密に保持するのが良い。この場合、通知データmに応じて分散データsのみが変動する。
【0037】
図2(B)に示す方式1の改良では、1つの点SのX値及びY値である分散データs・x2を送り、残りの分散データx1・x3・kは、通知装置と被通知装置との間で共有している。この残りの分散データx1・x3・kは固定値であり、少なくとも一部の情報は秘密に保持する。望ましくは、安全上、すべて秘密に保持するのが良い。この場合、分散データx2は任意の値、例えば乱数で生成して、2つの点M・Kを通る直線上に点Sがくるように分散データsが定められる。
【0038】
図3(A)に示す方式2では、2つの点S・KのY値である分散データs・kを送り、残りの分散データx1〜x3は、通知装置と被通知装置との間で共有している。この残りの分散データx1〜x3は固定値であり、少なくとも一部の情報は秘密に保持する。望ましくは、安全上、すべて秘密に保持するのが良い。この場合、分散データsは任意の値、例えば乱数で生成して、2つの点M・Sを通る直線上でX値がx3となる点KのY値として分散データkが定められる。逆に、分散データkを乱数で決めた後、2つの点M・Kを通る直線上でX値がx2となる点SのY値として分散データsを定めても良い。
【0039】
図3(B)に示す方式2の改良では、点SのX値及びY値と点KのY値である分散データs・x2・kを送り、残りの分散データx1・x3は、通知装置と被通知装置との間で共有している。この残りの分散データx1・x3は固定値であり、少なくとも一部の情報は秘密に保持する。望ましくは、安全上、すべて秘密に保持するのが良い。この場合、分散データs・x2は任意の値、例えば乱数で生成して、2つの点M・Sを通る直線上でX値がx3となる点KのY値として分散データkが定められる。
【0040】
図4は、本発明における秘匿通信の別の例による要領を説明する図である。ここでは、通知データm1が、点M2(x2,m2)と点K(x3,k)と点S(x4,s)とを通過する2次曲線上でX値がx1となる点M1(x1,m1)のY値として与えられ、この曲線の関数式は、関数データx2〜x4・m2・s・kにより一義的に定められ、これらの関数データと、曲線の関数式から通知データm1を特定するための規則データx1とから通知データmが求められる。
【0041】
ここで、関数データx2〜x4・m2・s・k及び規則データx1は、通知データm1を分散して規定する分散データとして位置付けられ、これらの分散データx1〜x4・m2・s・kが全て揃わないと通知データm1を求めることができない。
【0042】
分散データx1〜x4・m2・s・kは、その一部が、通知時とは別の手順で事前にあるいは事後に、通知装置1と被通知装置2との間で共有させ、通知時に、通知装置1において、通知データmから、被通知装置2との間で共有しない分散データを生成して、その分散データを被通知装置2に送り、被通知装置2において、自装置が保持する分散データと通知装置1から受け取った分散データとから通知データを求めることができる。
【0043】
<秘匿通信システムの基本的な例>
図5は、図1に示した通知装置及び被通知装置の第1の例を示すブロック図である。ここでは、図3(A)の方式2が採用され、分散データx1〜x3が通知装置1と被通知装置2との間で共有され、分散データs・kが通知装置1から被通知装置2に送られる。
【0044】
通知装置1は、分散データx1〜x3を秘密に記憶する分散データ記憶部101と、分散データsを乱数で生成する乱数生成部102と、分散データ記憶部101に記憶された分散データx1〜x3、乱数生成部102で生成した分散データs、及び秘匿送信したい通知データmから分散データkを求める関数処理部103とを有しており、ここで得られた分散データkと乱数生成部102で生成した分散データsとが被通知装置2に送られる。関数処理部103では、分散データx1・x2・sと通知データmから関数が特定され、この関数と分散データx3から分散データkが求められる。
【0045】
被通知装置2は、分散データx1〜x3を秘密に記憶する分散データ記憶部201と、分散データ記憶部201に記憶された分散データx1〜x3、及び通知装置1から受け取った分散データs・kから通知データmを求める関数処理部202とを有している。関数処理部202では、分散データx2・x3・s・kから関数が復元され、この関数と分散データx1から通知データmが求められる。
【0046】
ここで、中間者装置3により、通知装置1から被通知装置2に送られる分散データs・kを盗み見されたとしても、中間者装置3が分散データx1〜x3を全て知らなければ、通知データmを求めることはできない。
【0047】
<秘匿通信システムでフォワードセキュアを図る例>
図6は、図1に示した通知装置及び被通知装置の第2の例を示すブロック図である。ここでは、通知装置1が、分散データ記憶部101に記憶された、秘密に保持すべき分散データx1を一方向性関数を用いて変換して、その変換結果で分散データx1を更新するデータ更新部111を有している。また、被通知装置2が、分散データ記憶部201に記憶された、秘密に保持すべき分散データx1を一方向性関数を用いて変換して、その変換結果で分散データx1を更新するデータ更新部211を有している。その他の構成は、図5の例と同様である。
【0048】
通知装置1のデータ更新部111と被通知装置2のデータ更新部211では互いに同一の一方向性関数が用いられる。この一方向性関数としては、ハッシュ関数などの典型的な一方向性関数も可能であるが、実用上十分な一方向性が得られる2乗関数が好適であり、演算負荷が低いことから、低速の演算機能しか備えていない簡易な装置にも適用することができる。
【0049】
また、通知装置1のデータ更新部111と被通知装置2のデータ更新部211での更新処理は同一のタイミングで行われ、例えば一連の通知データの通知が終了した段階で、また適宜に定めた期間をおいて定期的に行われる。
【0050】
これにより、他者により通知装置1や被通知装置2が保持する分散データx1が盗取されたとしても、通知装置1や被通知装置2が過去に保持していた分散データx1が分からないため、通知データを過去に遡って探索されることのないフォワードセキュアを実現することができる。また、自装置内での変換処理のみで済むため、コストを削減することができる。
【0051】
なお、データ更新部111・211では、他の分散データx2・x3を一方向性関数で更新することも可能である。
【0052】
<秘匿通信システムでフォワード・バックセキュアを図る例>
図7は、図1に示した通知装置及び被通知装置の第3の例を示すブロック図である。ここでは、通知装置1が、乱数生成部102で生成した分散データsを被通知装置2の公開鍵を用いて暗号化する暗号化部121を有しており、ここで得られた暗号化データE(s)が被通知装置2に送られる。また、被通知装置2が、通知装置1から受け取った暗号化データE(s)を自身の秘密鍵を用いて復号化する復号化部221を有しており、ここで得られた分散データsが関数処理部202に送られる。その他の構成は、図5の例と同様である。
【0053】
暗号化部121で用いられる暗号化方式としては、RSA方式、DH方式、及び楕円暗号方式など種々の暗号化方式が可能である。
【0054】
なお、分散データsの値が非常に大きい場合は、乱数で共通鍵を発生させ、この共通鍵で分散データsの暗号化を行い、共通鍵は、被通知装置2の公開鍵で暗号化を行うというハイブリッド暗号とすると良い。なおここでは、暗号鍵として、被通知装置2の公開鍵を用いているが、これは、通知装置1と被通知装置2との間で共有される、共通鍵であっても構わない。
【0055】
これにより、他者により通知装置1や被通知装置2が保持する分散データが盗取されたとしても、通知装置1から被通知装置2に送られる分散データが暗号化されているため、通知装置1と被通知装置2との通信に介入する中間者装置3では、被通知装置2の秘密鍵がない限り、送信される分散データの内容がわからず、通知データを未来に渡って探索されることのないバックセキュアを実現することができる。また、通知データを過去に遡って探索されることのないフォワードセキュアを実現することができる。
【0056】
≪秘匿認証システム≫
図8は、本発明による秘匿認証システムを示すシステム構成図である。ここでは、クライアント装置(被認証装置)5とサーバ装置(認証装置)6とがネットワーク接続され、サーバ装置6においてクライアント装置5の認証を行うための認証データ(パスワードなど)をクライアント装置5からサーバ装置6に通知するものである。このような認証システムでは、クライアント装置5とサーバ装置6との間の通信に介入した中間者装置7により認証データを盗取されたり、中間者装置3が正規のクライアント装置5になりすましてサーバ装置6で不正に認証を受けることを阻止するために、以下のような秘匿認証方法が採用される。
【0057】
<秘匿認証システムの基本的な例>
図9は、図8に示した被認証装置及び認証装置の第1の例を示すブロック図である。ここでは、図3(A)の方式2が採用され、分散データx1〜x3がクライアント装置5とサーバ装置6との間で共有され、分散データs・kがクライアント装置5からサーバ装置6に送られる。
【0058】
クライアント装置5は、自装置の正当性を示す認証データmを秘密に記憶する認証データ記憶部501と、分散データx1〜x3を秘密に記憶する分散データ記憶部502と、分散データsを乱数で生成する乱数生成部503と、認証データ記憶部501に記憶された認証データm、分散データ記憶部502に記憶された分散データx1〜x3、及び乱数生成部503で生成した分散データsから分散データkを求める関数処理部504とを有しており、クライアント装置5からサーバ装置6に対する認証要求時に、関数処理部504で得られた分散データkと乱数生成部503で生成した分散データsとが被通知装置2に送られる。関数処理部504では、分散データx1・x2・sと認証データmから関数が特定され、この関数と分散データx3から分散データkが求められる。
【0059】
サーバ装置6は、複数のクライアント装置5ごとの認証データmを蓄積する認証データ蓄積部601と、分散データx1〜x3を記憶する分散データ記憶部602と、分散データ記憶部602に記憶された分散データx1〜x3、及びクライアント装置5から受け取った分散データs・kから認証データmを求める関数処理部603と、関数処理部603で得られた認証データmと認証データ蓄積部601に蓄積された認証データmとを比較してクライアント装置5の正当性を検証する照合部604とを有している。関数処理部603では、分散データx2・x3・s・kから関数が復元され、この関数と分散データx1から認証データmが求められる。
【0060】
照合部604では、認証データ蓄積部601から認証データmが順次読み出され、関数処理部603で得られた認証データmと一致すれば認証が成功したものとし、両者が一致しなければ、次の認証データmを認証データ蓄積部601から読み出して同様の処理が行われ、一致するものがなければ認証が失敗したものとする。
【0061】
ここで、中間者装置7により、クライアント装置5からサーバ装置6に送られる分散データs・kを盗み見されたとしても、中間者装置7が分散データx1〜x3を全て知らなければ、認証データmを求めることはできない。
【0062】
<秘匿認証システムでフォワードセキュアを図る例>
図10は、図8に示した被認証装置及び認証装置の第2の例を示すブロック図である。ここでは、クライアント装置5が、秘密に保持すべき認証データmを一方向性関数を用いて変換して、その変換結果で認証データmを更新するデータ更新部511を有している。また、サーバ装置6が、秘密に保持すべき認証データmを一方向性関数を用いて変換して、その変換結果で認証データmを更新するデータ更新部611を有している。その他の構成は、図9の例と同様である。
【0063】
クライアント装置5のデータ更新部511とサーバ装置6のデータ更新部611では互いに同一の一方向性関数が用いられる。この一方向性関数としては、ハッシュ関数などの典型的な一方向性関数も可能であるが、実用上十分な一方向性が得られる2乗関数が好適であり、演算負荷が低いことから、低速の演算機能しか備えていない簡易な装置(RFIDタグなど)にも適用することができる。
【0064】
また、クライアント装置5のデータ更新部511とサーバ装置6のデータ更新部611での更新処理は同一のタイミングで行われ、例えば1回の認証のたびに、クライアント装置5のデータ更新部511で認証データが更新されると同時に、サーバ装置6のデータ更新部611でクライアント装置5に関する認証データが更新される。
【0065】
これにより、他者によりクライアント装置5やサーバ装置6が保持する認証データが盗取されたとしても、クライアント装置5やサーバ装置6が過去に保持していた分散データが分からないため、認証に関する事実(認証相手、認証日時など)を過去に遡って探索されることのないフォワードセキュアを実現することができる。また、自装置内での変換処理のみで済むため、コストを削減することができる。
【0066】
なお、データ更新部511・611において、分散データ記憶部502・602に記憶された分散データx1〜x3、特に分散データx1を一方向性関数で更新するものとしても良い。
【0067】
なお、複数回認証を繰り返した場合に、認証データmは、分散データs・kを通過する線の交点になるので、図9の方式では、認証データを推測される可能性が少なくないが、このように、認証データや分散データの値を変更すると、その危険性が著しく低下する。
【0068】
<秘匿認証システムでフォワード・バックセキュアを図る例>
図11は、図8に示した被認証装置及び認証装置の第3の例を示すブロック図である。ここでは、クライアント装置5が、乱数生成部503で生成した分散データsをサーバ装置6の公開鍵を用いて暗号化する暗号化部521を有しており、ここで得られた暗号化データE(s)がサーバ装置6に送られる。また、サーバ装置6が、クライアント装置5から受け取った暗号化データE(s)を自身の秘密鍵を用いて復号化する復号化部621を有しており、ここで得られた分散データsが関数処理部603に送られる。その他の構成は、図9の例と同様である。
【0069】
これにより、他者によりクライアント装置5やサーバ装置6が保持する認証データが盗取されたとしても、クライアント装置5からサーバ装置6に送られる分散データが暗号化されているため、クライアント装置5とサーバ装置6との通信に介入する中間者装置7では、サーバ装置6の秘密鍵がない限り、送信される分散データの内容がわからず、認証に関する事実を未来に渡って探索されることのないバックセキュアを実現することができる。また、通知に関する事実を過去に遡って探索されることのないフォワードセキュアを実現することができる。さらに、複数回認証を繰り返した場合に、認証データmは、分散データs・kを通過する線の交点になるので、図9の方式では、認証データを推測される可能性が少なくないが、このように、分散データの値を暗号によって変更すると、その危険性を著しく低下させることができる。
【0070】
なおここでは、クライアント装置5からサーバ装置6に送られる分散データk・sのうち、分散データsのみを暗号化したが、その両方を暗号化する、または分散データkのみを暗号化するものとしても良い。
【0071】
なお、分散データの値が非常に大きい場合は、乱数で共通鍵を発生させ、この共通鍵で分散データの暗号化を行い、共通鍵は、サーバ装置6の公開鍵で暗号化を行うというハイブリッド暗号とすると良い。なおここでは、暗号鍵として、サーバ装置6の公開鍵を用いているが、これは、クライアント装置5とサーバ装置6との間で共有される、共通鍵であっても構わない。
【0072】
<チャレンジ・レスポンス方式でリトライ攻撃防御を図る例>
図12は、図8に示した被認証装置及び認証装置の第4の例を示すブロック図である。ここでは、サーバ装置6が、分散データsを乱数で生成する乱数生成部631を有しており、ここで得られた分散データsがクライアント装置5に送られる。クライアント装置5では、サーバ装置6から受け取った分散データs、認証データ記憶部501に記憶された認証データm、及び分散データ記憶部502に記憶された分散データx1〜x3から分散データkを求める処理が関数処理部504にて行われ、ここで得られた分散データkがサーバ装置6に送られる。
【0073】
この構成では、サーバ装置6からクライアント装置5に送られる分散データsが不規則に変化するため、クライアント装置5とサーバ装置6との間での遣り取りを真似してここで用いられた分散データを使用して不正に認証を受けることができなくなり、リトライ攻撃を防御することができる。
【0074】
なお、前記の各図に示された例を適宜に組み合わせて構成することも可能である。また図5以降の各例では、1次関数による方式を採用したが、図4に示した2次関数による方式も採用することができ、この他、3次関数など種々の関数による方式も可能である。
【0075】
<双方向認証の例>
特に図示しないが、前記の各例に示されたクライアント装置1及びサーバ装置2の各部を互いに入れ替えた構成、すなわちクライアント装置1を認証装置とし、サーバ装置2を被認証装置として、サーバ装置2の関数処理部で分散データkを生成して、この分散データkをクライアント装置1に送り、クライアント装置1の照合部で自装置内で生成した分散データkとサーバ装置2から受け取った分散データkとを比較してサーバ装置2の正当性を検証する構成と、前記の各例に示された構成とを組み合わせることで、双方向認証が可能になる。
【産業上の利用可能性】
【0076】
本発明にかかる秘匿通信システム及び秘匿認証システムは、高度な秘匿性を確保すると共に演算負荷を軽減してコストを削減することができる効果を有し、他人に知られることなく通知データを通知装置から被通知装置に通知する秘匿通信システム、他人に知られることなく認証データを被認証装置から認証装置に通知して認証を行う及び秘匿認証システムなどとして有用である。
【図面の簡単な説明】
【0077】
【図1】本発明による秘匿通信システムを示すシステム構成図
【図2】本発明における秘匿通信の要領を説明する図
【図3】本発明における秘匿通信の要領を説明する図
【図4】本発明における秘匿通信の別の例による要領を説明する図
【図5】図1に示した通知装置及び被通知装置の第1の例を示すブロック図
【図6】図1に示した通知装置及び被通知装置の第2の例を示すブロック図
【図7】図1に示した通知装置及び被通知装置の第3の例を示すブロック図
【図8】本発明による秘匿認証システムを示すシステム構成図
【図9】図8に示した被認証装置及び認証装置の第1の例を示すブロック図
【図10】図8に示した被認証装置及び認証装置の第2の例を示すブロック図
【図11】図8に示した被認証装置及び認証装置の第3の例を示すブロック図
【図12】図8に示した被認証装置及び認証装置の第4の例を示すブロック図
【符号の説明】
【0078】
1 通知装置
2 被通知装置
3 中間者装置
5 クライアント装置
6 サーバ装置
7 中間者装置
101 分散データ記憶部、102 乱数生成部、103 関数処理部、111 データ更新部、121 暗号化部
201 分散データ記憶部、202 関数処理部、211 データ更新部、221 復号化部
501 認証データ記憶部、502 分散データ記憶部、503 乱数生成部、504 関数処理部、511 データ更新部、521 暗号化部
601 認証データ蓄積部、602 分散データ記憶部、603 関数処理部、604 照合部、611 データ更新部、621 復号化部、631 乱数生成部
【技術分野】
【0001】
本発明は、他人に知られることなく通知データを通知装置から被通知装置に通知する秘匿通信システム、他人に知られることなく認証データを被認証装置から認証装置に通知して認証を行う及び秘匿認証システムに関するものである。
【背景技術】
【0002】
映像データをネットワークを介して通信する遠隔会議システムやIPカメラシステムのような映像通信システムや、印刷データをネットワークを介して通信するネットワーク印刷システムにおいては、映像データや印刷データなどの秘匿性を要求される通信データがネットワーク上に送出されるため、通信データを盗み見されるおそれがあり、これを阻止するための様々な技術が知られている(例えば特許文献1参照)。
【0003】
また、インターネットバンキングやインターネットショッピングなどのインターネット商取引システムにおいては、ユーザが正規登録された者か否かを検証する認証システムが必要となるが、パスワードなどの認証データがネットワーク上に送出されるため、認証データを盗取して正規のユーザになりすまして不正に利益を受ける行為を阻止するための様々な技術が知られている(例えば特許文献2参照)。
【0004】
電子マネー機能を有する非接触型ICカードが急速に普及しており、また、入退室管理システムや商品管理システムでも、非接触型ICカードやRFIDタグが利用されるようになってきたが、この種のRFIDデバイスを用いたシステムでは、スキミングにより認証データを盗取してなりすましにより不正に利益を受ける行為を阻止する必要があり、このようなRFIDデバイスの安全性を高める技術としては、Randomized Hash Lock方式、ハッシュチェーン方式(特許文献3参照)、再暗号化方式(特許文献4参照)が知られている。
【特許文献1】特開2007−288694号公報
【特許文献2】特開2007−293787号公報
【特許文献3】特再表2005−031579号公報
【特許文献4】特開2004−317764号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかるに、従来の様々な技術では、複雑な演算処理により通信データや認証データの秘匿性を高めることができる反面、高速な演算手段が必要になることから、コストが嵩み、低コスト化の要望を十分に満足することができず、低コスト化と高度な秘匿性とを両立させることが可能な技術が望まれる。特に、通知に関する事実(通信相手、通信日時など)を過去に遡って探索されることのないフォワードセキュアや、通知に関する事実を未来に渡って探索されることのないバックセキュアを実現するシステムが望まれる。
【0006】
本発明は、このような発明者の知見に基づき案出されたものであり、その主な目的は、高度な秘匿性を確保すると共に演算負荷を軽減してコストを削減することができるように構成された秘匿通信システム及び秘匿認証システムを提供することにある。また本発明は、フォワードセキュア及びバックセキュアを実現することができる秘匿通信システム及び秘匿認証システムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の秘匿通信システムは、秘匿すべき通知データが、関数を特定する関数データとこの関数から通知データを特定する規則データとからなる複数の分散データに分散して定められ、通知装置において、通知データから分散データを生成して、その分散データを被通知装置に送り、前記被通知装置において、前記分散データから前記関数を復元して通知データを求める構成とする。
【0008】
また、本発明の秘匿認証システムは、前記秘匿通信システムにおいて、前記通知データが、被認証装置、またはユーザの正当性を示す認証データであり、認証装置となる前記被通知装置において、前記認証データに基づいて被認証装置となる前記通知装置の正当性を検証する構成とする。
【発明の効果】
【0009】
本発明によれば、分散データが全て揃わないと通知データを求めることができないため、高度な秘匿性を確保することができ、また、1次関数のように次数の小さな関数を用いることで、演算負荷を軽減することができるため、低速な演算手段で済み、コストを削減することができる。
【発明を実施するための最良の形態】
【0010】
上記課題を解決するためになされた第1の発明による秘匿通信システムは、秘匿すべき通知データが、関数を特定する関数データとこの関数から通知データを特定する規則データとからなる複数の分散データに分散して定められ、通知装置において、通知データから分散データを生成して、その分散データを被通知装置に送り、前記被通知装置において、前記分散データから前記関数を復元して通知データを求める構成とする。
【0011】
これによると、通知装置と被通知装置との通信に介入する中間者により、通知装置から被通知装置に送られる分散データが盗み見されたとしても、中間者は、分散データが全て揃わないと通知データを求めることができないため、高度な秘匿性を確保することができ、また、1次関数のように次数の小さな関数を用いることで、演算負荷を軽減することができるため、低速な演算手段で済み、コストを削減することができる。
【0012】
ここで、分散データのうちの関数データは、関数を一意に定めるものであり、例えば関数が示す1次直線あるいはn次曲線上の点の座標値、関数式の係数、傾き、及び切片などの値である。ここで、n次関数の直線あるいは曲線上の点の座標値を関数データとした場合には、関数データはn+1個の点のX値及びY値となり、これらの値により関数が一意に定められる。
【0013】
また、分散データのうちの規則データは、関数から通知データを特定する取り決めであり、例えば関数が示す1次直線あるいはn次曲線上の点のY値を通知データとした場合には、その点のX値が規則データとなる。さらに、関数が示す1次直線あるいはn次曲線と別の1次直線あるいはn次曲線との交点の座標値を通知データとすることもでき、この場合、その交点を形成する別の1次直線あるいはn次曲線を示す関数を特定する値が規則データとなる。また、関数の式の係数を通知データとすることもでき、この場合、係数を通知データとする指定情報が規則データとなる。
【0014】
前記課題を解決するためになされた第2の発明は、前記第1の発明において、前記複数の分散データの一部を、通知時とは別の手順で、前記通知装置と前記被通知装置との間で共有させると共に、その一部を、前記通知装置及び前記被通知装置で秘密に保持させ、前記通知装置において、通知データから、前記被通知装置との間で共有しない分散データを生成して、その分散データを前記被通知装置に送り、前記被通知装置において、自装置が保持する分散データと前記通知装置から受け取った分散データとから通知データを求める構成とする。
【0015】
これによると、通知装置と被通知装置との間で共有しない分散データのみを送れば良く、通信量を削減することができる。また、共有する分散データの一部を秘密に保持させることで、通知データの秘匿性を高めることができる。
【0016】
前記課題を解決するためになされた第3の発明は、前記第2の発明において、前記通知装置及び前記被通知装置の双方において、秘密に保持すべき前記分散データを、互いに同一の一方向性関数を用いて変換して、その変換結果で前記分散データを更新する構成とする。
【0017】
これによると、他者により通知装置や被通知装置が保持する分散データが盗取されたとしても、通知装置や被通知装置が過去に保持していた分散データが分からないため、通知データを過去に遡って探索されることのないフォワードセキュアを実現することができる。また、自装置内での変換処理のみで済むため、コストを削減することができる。
【0018】
この場合、一方向性関数としては、逆関数の計算が困難で、元データを求めることが事実上できないものであり、その代表的なものとしてハッシュ関数があるが、べき乗関数、特に2乗関数でも、桁数が大きくなると、実用上十分な一方向性が得られ、また演算負荷が低いことから好適である。
【0019】
なお、一方向性関数を用いた分散データの変換は、分散データの全てに対して行う他、その一部に対して行うものとしても良い。
【0020】
前記課題を解決するためになされた第4の発明は、前記第1〜第3の発明において、前記通知装置において、前記被通知装置に送るべき分散データを前記被通知装置の公開鍵、または前記被通知装置及び前記通知装置の双方において共有する共通鍵を用いて暗号化した上で前記被通知装置に送り、前記被通知装置において、暗号化された分散データを自装置の秘密鍵、または前記被通知装置及び前記通知装置の双方において共有する共通鍵を用いて復号化する構成とする。
【0021】
これによると、他者により通知装置や被通知装置が保持する分散データが盗取されたとしても、通知装置から被通知装置に送られる分散データが暗号化されているため、通知装置と被通知装置との通信に介入する中間者は、被通知装置の秘密鍵がない限り、送信される分散データの内容がわからず、通知データを未来に渡って探索されることのないバックセキュアを実現することができる。また、通知データを過去に遡って探索されることのないフォワードセキュアを実現することができる。
【0022】
なお、分散データの暗号化は、分散データの全てに対して行う他、その一部に対して行うものとしても良い。また、前記被通知装置の公開鍵、秘密鍵というのは、前記被通知装置内のものに限定されるものではなく、前記被通知装置に読取りされる外部のスマートカードようなものも含まれる。同様に、前記被通知装置及び前記通知装置の双方において共有する共通鍵も、前記被通知装置、または前記通知装置に読取りされる外部のスマートカードようなものも含まれる。
【0023】
前記課題を解決するためになされた第5の発明による秘匿認証システムは、前記第1〜第4の発明における秘匿通信システムにおいて、前記通知データが、被認証装置、またはユーザの正当性を示す認証データであり、認証装置となる前記被通知装置において、前記認証データに基づいて被認証装置となる前記通知装置の正当性を検証する構成とする。
【0024】
これによると、認証装置での認証に要する被認証装置の認証データを通信路上に送出することなく認証装置に通知することができるため、認証データの秘匿性を高度に確保することができる。
【0025】
ここで、認証データとは、被認証装置の正当性を示すものであり、被認証装置やこれを操作するユーザに与えられたパスワードや、被認証装置を操作するユーザに関するバイオメトリクス情報などである。
【0026】
前記課題を解決するためになされた第6の発明は、前記第5の発明において、前記被認証装置及び前記認証装置の双方において、互いに同一の一方向性関数を用いて前記認証データを変換して、その変換結果で前記認証データを更新する構成とする。
【0027】
これによると、他者により被認証装置や認証装置が保持する認証データが盗取されたとしても、被認証装置や認証装置が過去に保持していた認証データが分からないため、認証に関する事実(認証相手、認証日時など)を過去に遡って探索されることのないフォワードセキュアを実現することができる。被認証装置がカードであるカード認証などにおいて、カード廃棄を行う際に、カードに対して特に特別な対処を行わずとも、安全性が確保されるので良い。また、自装置内での変換処理のみで済むため、コストを削減することができる。
【0028】
なお、一方向性関数を用いた認証データの変換は、認証データの全てに対して行う他、その一部に対して行うものとしても良い。
【0029】
前記課題を解決するためになされた第7の発明は、前記第5・第6の発明において、前記認証装置において、分散データの一部を任意に生成して、前記被認証装置に送り、前記被認証装置において、前記認証装置から受け取った分散データと認証データから残りの分散データを生成して、その分散データを前記認証装置に送る構成とする。
【0030】
これによると、認証装置から被認証装置に送られる分散データが逐次変化するため、認証装置と被認証装置との間での遣り取りを真似してここで用いられた分散データを使用して不正に認証を受けることができなくなり、リトライ攻撃を防御することができる。
【0031】
以下、本発明の実施の形態を、図面を参照しながら説明する。
【0032】
≪秘匿通信システム≫
図1は、本発明による秘匿通信システムを示すシステム構成図である。ここでは、通知装置1と被通知装置2とがネットワーク接続され、秘匿すべき通知データを通知装置1から被通知装置2に通知するものである。このような通信システムでは、通知装置1と被通知装置2との間の通信に介入した中間者装置3により通知データを盗み見されることを阻止するために、以下のような秘匿通信方法が採用される。
【0033】
図2・図3は、本発明における秘匿通信の要領を説明する図である。ここでは、通知データmが、点S(x2,s)と点K(x3,k)とを通過する1次直線上でX値がx1となる点M(x1,m)のY値として与えられ、この直線の関数式は、関数データx2・x3・s・kにより一義的に定められ、これらの関数データと、直線の関数式から通知データmを特定するための規則データx1とから通知データmが求められる。
【0034】
ここで、関数データx2・x3・s・k及び規則データx1は、通知データmを分散して規定する分散データとして位置付けられ、これらの分散データx1〜x3・s・kが全て揃わないと通知データmを求めることができない。
【0035】
分散データx1〜x3・s・kは、その全てを通知時に通知装置1から被通知装置2に送ることも可能であるが、以下に示すように、分散データx1〜x3・s・kの一部を、通知時とは別の手順で事前にあるいは事後に、通知装置1と被通知装置2との間で共有させ、通知時に、通知装置1において、通知データmから、被通知装置2との間で共有しない分散データを生成して、その分散データを被通知装置2に送り、被通知装置2において、自装置が保持する分散データと通知装置1から受け取った分散データとから通知データmを求めるようにすると良い。
【0036】
図2(A)に示す方式1では、1つの点SのY値である分散データsのみを通知装置から被通知装置に送り、残りの分散データx1〜x3・kは、通知装置と被通知装置との間で共有している。この残りの分散データx1〜x3・kは固定値であり、少なくとも一部の情報は秘密に保持する。望ましくは、安全上、すべて秘密に保持するのが良い。この場合、通知データmに応じて分散データsのみが変動する。
【0037】
図2(B)に示す方式1の改良では、1つの点SのX値及びY値である分散データs・x2を送り、残りの分散データx1・x3・kは、通知装置と被通知装置との間で共有している。この残りの分散データx1・x3・kは固定値であり、少なくとも一部の情報は秘密に保持する。望ましくは、安全上、すべて秘密に保持するのが良い。この場合、分散データx2は任意の値、例えば乱数で生成して、2つの点M・Kを通る直線上に点Sがくるように分散データsが定められる。
【0038】
図3(A)に示す方式2では、2つの点S・KのY値である分散データs・kを送り、残りの分散データx1〜x3は、通知装置と被通知装置との間で共有している。この残りの分散データx1〜x3は固定値であり、少なくとも一部の情報は秘密に保持する。望ましくは、安全上、すべて秘密に保持するのが良い。この場合、分散データsは任意の値、例えば乱数で生成して、2つの点M・Sを通る直線上でX値がx3となる点KのY値として分散データkが定められる。逆に、分散データkを乱数で決めた後、2つの点M・Kを通る直線上でX値がx2となる点SのY値として分散データsを定めても良い。
【0039】
図3(B)に示す方式2の改良では、点SのX値及びY値と点KのY値である分散データs・x2・kを送り、残りの分散データx1・x3は、通知装置と被通知装置との間で共有している。この残りの分散データx1・x3は固定値であり、少なくとも一部の情報は秘密に保持する。望ましくは、安全上、すべて秘密に保持するのが良い。この場合、分散データs・x2は任意の値、例えば乱数で生成して、2つの点M・Sを通る直線上でX値がx3となる点KのY値として分散データkが定められる。
【0040】
図4は、本発明における秘匿通信の別の例による要領を説明する図である。ここでは、通知データm1が、点M2(x2,m2)と点K(x3,k)と点S(x4,s)とを通過する2次曲線上でX値がx1となる点M1(x1,m1)のY値として与えられ、この曲線の関数式は、関数データx2〜x4・m2・s・kにより一義的に定められ、これらの関数データと、曲線の関数式から通知データm1を特定するための規則データx1とから通知データmが求められる。
【0041】
ここで、関数データx2〜x4・m2・s・k及び規則データx1は、通知データm1を分散して規定する分散データとして位置付けられ、これらの分散データx1〜x4・m2・s・kが全て揃わないと通知データm1を求めることができない。
【0042】
分散データx1〜x4・m2・s・kは、その一部が、通知時とは別の手順で事前にあるいは事後に、通知装置1と被通知装置2との間で共有させ、通知時に、通知装置1において、通知データmから、被通知装置2との間で共有しない分散データを生成して、その分散データを被通知装置2に送り、被通知装置2において、自装置が保持する分散データと通知装置1から受け取った分散データとから通知データを求めることができる。
【0043】
<秘匿通信システムの基本的な例>
図5は、図1に示した通知装置及び被通知装置の第1の例を示すブロック図である。ここでは、図3(A)の方式2が採用され、分散データx1〜x3が通知装置1と被通知装置2との間で共有され、分散データs・kが通知装置1から被通知装置2に送られる。
【0044】
通知装置1は、分散データx1〜x3を秘密に記憶する分散データ記憶部101と、分散データsを乱数で生成する乱数生成部102と、分散データ記憶部101に記憶された分散データx1〜x3、乱数生成部102で生成した分散データs、及び秘匿送信したい通知データmから分散データkを求める関数処理部103とを有しており、ここで得られた分散データkと乱数生成部102で生成した分散データsとが被通知装置2に送られる。関数処理部103では、分散データx1・x2・sと通知データmから関数が特定され、この関数と分散データx3から分散データkが求められる。
【0045】
被通知装置2は、分散データx1〜x3を秘密に記憶する分散データ記憶部201と、分散データ記憶部201に記憶された分散データx1〜x3、及び通知装置1から受け取った分散データs・kから通知データmを求める関数処理部202とを有している。関数処理部202では、分散データx2・x3・s・kから関数が復元され、この関数と分散データx1から通知データmが求められる。
【0046】
ここで、中間者装置3により、通知装置1から被通知装置2に送られる分散データs・kを盗み見されたとしても、中間者装置3が分散データx1〜x3を全て知らなければ、通知データmを求めることはできない。
【0047】
<秘匿通信システムでフォワードセキュアを図る例>
図6は、図1に示した通知装置及び被通知装置の第2の例を示すブロック図である。ここでは、通知装置1が、分散データ記憶部101に記憶された、秘密に保持すべき分散データx1を一方向性関数を用いて変換して、その変換結果で分散データx1を更新するデータ更新部111を有している。また、被通知装置2が、分散データ記憶部201に記憶された、秘密に保持すべき分散データx1を一方向性関数を用いて変換して、その変換結果で分散データx1を更新するデータ更新部211を有している。その他の構成は、図5の例と同様である。
【0048】
通知装置1のデータ更新部111と被通知装置2のデータ更新部211では互いに同一の一方向性関数が用いられる。この一方向性関数としては、ハッシュ関数などの典型的な一方向性関数も可能であるが、実用上十分な一方向性が得られる2乗関数が好適であり、演算負荷が低いことから、低速の演算機能しか備えていない簡易な装置にも適用することができる。
【0049】
また、通知装置1のデータ更新部111と被通知装置2のデータ更新部211での更新処理は同一のタイミングで行われ、例えば一連の通知データの通知が終了した段階で、また適宜に定めた期間をおいて定期的に行われる。
【0050】
これにより、他者により通知装置1や被通知装置2が保持する分散データx1が盗取されたとしても、通知装置1や被通知装置2が過去に保持していた分散データx1が分からないため、通知データを過去に遡って探索されることのないフォワードセキュアを実現することができる。また、自装置内での変換処理のみで済むため、コストを削減することができる。
【0051】
なお、データ更新部111・211では、他の分散データx2・x3を一方向性関数で更新することも可能である。
【0052】
<秘匿通信システムでフォワード・バックセキュアを図る例>
図7は、図1に示した通知装置及び被通知装置の第3の例を示すブロック図である。ここでは、通知装置1が、乱数生成部102で生成した分散データsを被通知装置2の公開鍵を用いて暗号化する暗号化部121を有しており、ここで得られた暗号化データE(s)が被通知装置2に送られる。また、被通知装置2が、通知装置1から受け取った暗号化データE(s)を自身の秘密鍵を用いて復号化する復号化部221を有しており、ここで得られた分散データsが関数処理部202に送られる。その他の構成は、図5の例と同様である。
【0053】
暗号化部121で用いられる暗号化方式としては、RSA方式、DH方式、及び楕円暗号方式など種々の暗号化方式が可能である。
【0054】
なお、分散データsの値が非常に大きい場合は、乱数で共通鍵を発生させ、この共通鍵で分散データsの暗号化を行い、共通鍵は、被通知装置2の公開鍵で暗号化を行うというハイブリッド暗号とすると良い。なおここでは、暗号鍵として、被通知装置2の公開鍵を用いているが、これは、通知装置1と被通知装置2との間で共有される、共通鍵であっても構わない。
【0055】
これにより、他者により通知装置1や被通知装置2が保持する分散データが盗取されたとしても、通知装置1から被通知装置2に送られる分散データが暗号化されているため、通知装置1と被通知装置2との通信に介入する中間者装置3では、被通知装置2の秘密鍵がない限り、送信される分散データの内容がわからず、通知データを未来に渡って探索されることのないバックセキュアを実現することができる。また、通知データを過去に遡って探索されることのないフォワードセキュアを実現することができる。
【0056】
≪秘匿認証システム≫
図8は、本発明による秘匿認証システムを示すシステム構成図である。ここでは、クライアント装置(被認証装置)5とサーバ装置(認証装置)6とがネットワーク接続され、サーバ装置6においてクライアント装置5の認証を行うための認証データ(パスワードなど)をクライアント装置5からサーバ装置6に通知するものである。このような認証システムでは、クライアント装置5とサーバ装置6との間の通信に介入した中間者装置7により認証データを盗取されたり、中間者装置3が正規のクライアント装置5になりすましてサーバ装置6で不正に認証を受けることを阻止するために、以下のような秘匿認証方法が採用される。
【0057】
<秘匿認証システムの基本的な例>
図9は、図8に示した被認証装置及び認証装置の第1の例を示すブロック図である。ここでは、図3(A)の方式2が採用され、分散データx1〜x3がクライアント装置5とサーバ装置6との間で共有され、分散データs・kがクライアント装置5からサーバ装置6に送られる。
【0058】
クライアント装置5は、自装置の正当性を示す認証データmを秘密に記憶する認証データ記憶部501と、分散データx1〜x3を秘密に記憶する分散データ記憶部502と、分散データsを乱数で生成する乱数生成部503と、認証データ記憶部501に記憶された認証データm、分散データ記憶部502に記憶された分散データx1〜x3、及び乱数生成部503で生成した分散データsから分散データkを求める関数処理部504とを有しており、クライアント装置5からサーバ装置6に対する認証要求時に、関数処理部504で得られた分散データkと乱数生成部503で生成した分散データsとが被通知装置2に送られる。関数処理部504では、分散データx1・x2・sと認証データmから関数が特定され、この関数と分散データx3から分散データkが求められる。
【0059】
サーバ装置6は、複数のクライアント装置5ごとの認証データmを蓄積する認証データ蓄積部601と、分散データx1〜x3を記憶する分散データ記憶部602と、分散データ記憶部602に記憶された分散データx1〜x3、及びクライアント装置5から受け取った分散データs・kから認証データmを求める関数処理部603と、関数処理部603で得られた認証データmと認証データ蓄積部601に蓄積された認証データmとを比較してクライアント装置5の正当性を検証する照合部604とを有している。関数処理部603では、分散データx2・x3・s・kから関数が復元され、この関数と分散データx1から認証データmが求められる。
【0060】
照合部604では、認証データ蓄積部601から認証データmが順次読み出され、関数処理部603で得られた認証データmと一致すれば認証が成功したものとし、両者が一致しなければ、次の認証データmを認証データ蓄積部601から読み出して同様の処理が行われ、一致するものがなければ認証が失敗したものとする。
【0061】
ここで、中間者装置7により、クライアント装置5からサーバ装置6に送られる分散データs・kを盗み見されたとしても、中間者装置7が分散データx1〜x3を全て知らなければ、認証データmを求めることはできない。
【0062】
<秘匿認証システムでフォワードセキュアを図る例>
図10は、図8に示した被認証装置及び認証装置の第2の例を示すブロック図である。ここでは、クライアント装置5が、秘密に保持すべき認証データmを一方向性関数を用いて変換して、その変換結果で認証データmを更新するデータ更新部511を有している。また、サーバ装置6が、秘密に保持すべき認証データmを一方向性関数を用いて変換して、その変換結果で認証データmを更新するデータ更新部611を有している。その他の構成は、図9の例と同様である。
【0063】
クライアント装置5のデータ更新部511とサーバ装置6のデータ更新部611では互いに同一の一方向性関数が用いられる。この一方向性関数としては、ハッシュ関数などの典型的な一方向性関数も可能であるが、実用上十分な一方向性が得られる2乗関数が好適であり、演算負荷が低いことから、低速の演算機能しか備えていない簡易な装置(RFIDタグなど)にも適用することができる。
【0064】
また、クライアント装置5のデータ更新部511とサーバ装置6のデータ更新部611での更新処理は同一のタイミングで行われ、例えば1回の認証のたびに、クライアント装置5のデータ更新部511で認証データが更新されると同時に、サーバ装置6のデータ更新部611でクライアント装置5に関する認証データが更新される。
【0065】
これにより、他者によりクライアント装置5やサーバ装置6が保持する認証データが盗取されたとしても、クライアント装置5やサーバ装置6が過去に保持していた分散データが分からないため、認証に関する事実(認証相手、認証日時など)を過去に遡って探索されることのないフォワードセキュアを実現することができる。また、自装置内での変換処理のみで済むため、コストを削減することができる。
【0066】
なお、データ更新部511・611において、分散データ記憶部502・602に記憶された分散データx1〜x3、特に分散データx1を一方向性関数で更新するものとしても良い。
【0067】
なお、複数回認証を繰り返した場合に、認証データmは、分散データs・kを通過する線の交点になるので、図9の方式では、認証データを推測される可能性が少なくないが、このように、認証データや分散データの値を変更すると、その危険性が著しく低下する。
【0068】
<秘匿認証システムでフォワード・バックセキュアを図る例>
図11は、図8に示した被認証装置及び認証装置の第3の例を示すブロック図である。ここでは、クライアント装置5が、乱数生成部503で生成した分散データsをサーバ装置6の公開鍵を用いて暗号化する暗号化部521を有しており、ここで得られた暗号化データE(s)がサーバ装置6に送られる。また、サーバ装置6が、クライアント装置5から受け取った暗号化データE(s)を自身の秘密鍵を用いて復号化する復号化部621を有しており、ここで得られた分散データsが関数処理部603に送られる。その他の構成は、図9の例と同様である。
【0069】
これにより、他者によりクライアント装置5やサーバ装置6が保持する認証データが盗取されたとしても、クライアント装置5からサーバ装置6に送られる分散データが暗号化されているため、クライアント装置5とサーバ装置6との通信に介入する中間者装置7では、サーバ装置6の秘密鍵がない限り、送信される分散データの内容がわからず、認証に関する事実を未来に渡って探索されることのないバックセキュアを実現することができる。また、通知に関する事実を過去に遡って探索されることのないフォワードセキュアを実現することができる。さらに、複数回認証を繰り返した場合に、認証データmは、分散データs・kを通過する線の交点になるので、図9の方式では、認証データを推測される可能性が少なくないが、このように、分散データの値を暗号によって変更すると、その危険性を著しく低下させることができる。
【0070】
なおここでは、クライアント装置5からサーバ装置6に送られる分散データk・sのうち、分散データsのみを暗号化したが、その両方を暗号化する、または分散データkのみを暗号化するものとしても良い。
【0071】
なお、分散データの値が非常に大きい場合は、乱数で共通鍵を発生させ、この共通鍵で分散データの暗号化を行い、共通鍵は、サーバ装置6の公開鍵で暗号化を行うというハイブリッド暗号とすると良い。なおここでは、暗号鍵として、サーバ装置6の公開鍵を用いているが、これは、クライアント装置5とサーバ装置6との間で共有される、共通鍵であっても構わない。
【0072】
<チャレンジ・レスポンス方式でリトライ攻撃防御を図る例>
図12は、図8に示した被認証装置及び認証装置の第4の例を示すブロック図である。ここでは、サーバ装置6が、分散データsを乱数で生成する乱数生成部631を有しており、ここで得られた分散データsがクライアント装置5に送られる。クライアント装置5では、サーバ装置6から受け取った分散データs、認証データ記憶部501に記憶された認証データm、及び分散データ記憶部502に記憶された分散データx1〜x3から分散データkを求める処理が関数処理部504にて行われ、ここで得られた分散データkがサーバ装置6に送られる。
【0073】
この構成では、サーバ装置6からクライアント装置5に送られる分散データsが不規則に変化するため、クライアント装置5とサーバ装置6との間での遣り取りを真似してここで用いられた分散データを使用して不正に認証を受けることができなくなり、リトライ攻撃を防御することができる。
【0074】
なお、前記の各図に示された例を適宜に組み合わせて構成することも可能である。また図5以降の各例では、1次関数による方式を採用したが、図4に示した2次関数による方式も採用することができ、この他、3次関数など種々の関数による方式も可能である。
【0075】
<双方向認証の例>
特に図示しないが、前記の各例に示されたクライアント装置1及びサーバ装置2の各部を互いに入れ替えた構成、すなわちクライアント装置1を認証装置とし、サーバ装置2を被認証装置として、サーバ装置2の関数処理部で分散データkを生成して、この分散データkをクライアント装置1に送り、クライアント装置1の照合部で自装置内で生成した分散データkとサーバ装置2から受け取った分散データkとを比較してサーバ装置2の正当性を検証する構成と、前記の各例に示された構成とを組み合わせることで、双方向認証が可能になる。
【産業上の利用可能性】
【0076】
本発明にかかる秘匿通信システム及び秘匿認証システムは、高度な秘匿性を確保すると共に演算負荷を軽減してコストを削減することができる効果を有し、他人に知られることなく通知データを通知装置から被通知装置に通知する秘匿通信システム、他人に知られることなく認証データを被認証装置から認証装置に通知して認証を行う及び秘匿認証システムなどとして有用である。
【図面の簡単な説明】
【0077】
【図1】本発明による秘匿通信システムを示すシステム構成図
【図2】本発明における秘匿通信の要領を説明する図
【図3】本発明における秘匿通信の要領を説明する図
【図4】本発明における秘匿通信の別の例による要領を説明する図
【図5】図1に示した通知装置及び被通知装置の第1の例を示すブロック図
【図6】図1に示した通知装置及び被通知装置の第2の例を示すブロック図
【図7】図1に示した通知装置及び被通知装置の第3の例を示すブロック図
【図8】本発明による秘匿認証システムを示すシステム構成図
【図9】図8に示した被認証装置及び認証装置の第1の例を示すブロック図
【図10】図8に示した被認証装置及び認証装置の第2の例を示すブロック図
【図11】図8に示した被認証装置及び認証装置の第3の例を示すブロック図
【図12】図8に示した被認証装置及び認証装置の第4の例を示すブロック図
【符号の説明】
【0078】
1 通知装置
2 被通知装置
3 中間者装置
5 クライアント装置
6 サーバ装置
7 中間者装置
101 分散データ記憶部、102 乱数生成部、103 関数処理部、111 データ更新部、121 暗号化部
201 分散データ記憶部、202 関数処理部、211 データ更新部、221 復号化部
501 認証データ記憶部、502 分散データ記憶部、503 乱数生成部、504 関数処理部、511 データ更新部、521 暗号化部
601 認証データ蓄積部、602 分散データ記憶部、603 関数処理部、604 照合部、611 データ更新部、621 復号化部、631 乱数生成部
【特許請求の範囲】
【請求項1】
秘匿すべき通知データが、関数を特定する関数データとこの関数から通知データを特定する規則データとからなる複数の分散データに分散して定められ、
通知装置において、通知データから分散データを生成して、その分散データを被通知装置に送り、
前記被通知装置において、前記分散データから前記関数を復元して通知データを求めることを特徴とする秘匿通信システム。
【請求項2】
前記複数の分散データの一部を、通知時とは別の手順で、前記通知装置と前記被通知装置との間で共有させると共に、その一部を、前記通知装置及び前記被通知装置で秘密に保持させ、
前記通知装置において、通知データから、前記被通知装置との間で共有しない分散データを生成して、その分散データを前記被通知装置に送り、
前記被通知装置において、自装置が保持する分散データと前記通知装置から受け取った分散データとから通知データを求めることを特徴とする請求項1に記載の秘匿通信システム。
【請求項3】
前記通知装置及び前記被通知装置の双方において、秘密に保持すべき前記分散データを、互いに同一の一方向性関数を用いて変換して、その変換結果で前記分散データを更新することを特徴とする請求項2に記載の秘匿通信システム。
【請求項4】
前記通知装置において、前記被通知装置に送るべき分散データを前記被通知装置の公開鍵、または前記被通知装置及び前記通知装置の双方において共有する共通鍵を用いて暗号化した上で前記被通知装置に送り、
前記被通知装置において、暗号化された分散データを自装置の秘密鍵、または前記被通知装置及び前記通知装置の双方において共有する共通鍵を用いて復号化することを特徴とする請求項1乃至請求項3のいずれかに記載の秘匿通信システム。
【請求項5】
請求項1乃至請求項4のいずれかに記載の秘匿通信システムにおいて、前記通知データが、被認証装置、またはユーザの正当性を示す認証データであり、
認証装置となる前記被通知装置において、前記認証データに基づいて被認証装置となる前記通知装置の正当性を検証することを特徴とする秘匿認証システム。
【請求項6】
前記被認証装置及び前記認証装置の双方において、互いに同一の一方向性関数を用いて前記認証データを変換して、その変換結果で前記認証データを更新することを特徴とする請求項5に記載の秘匿認証システム。
【請求項7】
前記認証装置において、分散データの一部を任意に生成して、前記被認証装置に送り、
前記被認証装置において、前記認証装置から受け取った分散データと認証データから残りの分散データを生成して、その分散データを前記認証装置に送ることを特徴とする請求項5若しくは請求項6に記載の秘匿認証システム。
【請求項1】
秘匿すべき通知データが、関数を特定する関数データとこの関数から通知データを特定する規則データとからなる複数の分散データに分散して定められ、
通知装置において、通知データから分散データを生成して、その分散データを被通知装置に送り、
前記被通知装置において、前記分散データから前記関数を復元して通知データを求めることを特徴とする秘匿通信システム。
【請求項2】
前記複数の分散データの一部を、通知時とは別の手順で、前記通知装置と前記被通知装置との間で共有させると共に、その一部を、前記通知装置及び前記被通知装置で秘密に保持させ、
前記通知装置において、通知データから、前記被通知装置との間で共有しない分散データを生成して、その分散データを前記被通知装置に送り、
前記被通知装置において、自装置が保持する分散データと前記通知装置から受け取った分散データとから通知データを求めることを特徴とする請求項1に記載の秘匿通信システム。
【請求項3】
前記通知装置及び前記被通知装置の双方において、秘密に保持すべき前記分散データを、互いに同一の一方向性関数を用いて変換して、その変換結果で前記分散データを更新することを特徴とする請求項2に記載の秘匿通信システム。
【請求項4】
前記通知装置において、前記被通知装置に送るべき分散データを前記被通知装置の公開鍵、または前記被通知装置及び前記通知装置の双方において共有する共通鍵を用いて暗号化した上で前記被通知装置に送り、
前記被通知装置において、暗号化された分散データを自装置の秘密鍵、または前記被通知装置及び前記通知装置の双方において共有する共通鍵を用いて復号化することを特徴とする請求項1乃至請求項3のいずれかに記載の秘匿通信システム。
【請求項5】
請求項1乃至請求項4のいずれかに記載の秘匿通信システムにおいて、前記通知データが、被認証装置、またはユーザの正当性を示す認証データであり、
認証装置となる前記被通知装置において、前記認証データに基づいて被認証装置となる前記通知装置の正当性を検証することを特徴とする秘匿認証システム。
【請求項6】
前記被認証装置及び前記認証装置の双方において、互いに同一の一方向性関数を用いて前記認証データを変換して、その変換結果で前記認証データを更新することを特徴とする請求項5に記載の秘匿認証システム。
【請求項7】
前記認証装置において、分散データの一部を任意に生成して、前記被認証装置に送り、
前記被認証装置において、前記認証装置から受け取った分散データと認証データから残りの分散データを生成して、その分散データを前記認証装置に送ることを特徴とする請求項5若しくは請求項6に記載の秘匿認証システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2009−271107(P2009−271107A)
【公開日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願番号】特願2008−118688(P2008−118688)
【出願日】平成20年4月30日(2008.4.30)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】
【公開日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願日】平成20年4月30日(2008.4.30)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】
[ Back to top ]