(57)【要約】  【課題】  一回の通信で証明者の秘密情報を、確率ゼロに近い漏洩危険の元で証明する。  【解決手段】  擬ゼロ知識証明を用いた本人認証法であって、(a) 秘密個人情報Iと一方向関数ｈの値h(I)を有する証明者はh(I)を有する検証者に証明者の認証を依頼し、(b) 検証者は乱数mを生成し、これと補助的情報xを証明者に送り、(c) 証明者は受け取ったm及びxと、秘密個人情報I及びh(I)を関数ｆに適用してy＝f(I,h(I),m,x)を求め、(d) 検証者は確認関数Ver(y,h(I),m,x)を用いて、受け取ったy及び、h(I)と乱数mと補助情報xとから、yが正当かどうかを判定し、判定結果を証明者に通知することを特徴とする。  【選択図】  図１
2005252349.tif 000002
【特許請求の範囲】
【請求項１】
擬ゼロ知識証明を用いた本人認証法であって、(a) 秘密個人情報Iと一方向関数ｈの値h(I)を有する証明者はh(I)を有する検証者に証明者の認証を依頼し、(b) 検証者は乱数mを生成し、これと補助的情報xを証明者に送り、(c) 証明者は受け取ったm及びxと、秘密個人情報I及びh(I)を関数ｆに適用してy＝f(I,h(I),m,x)を求め、(d) 検証者は確認関数Ver(y,h(I),m,x)を用いて、受け取ったy及び、h(I)と乱数mと補助情報xとから、yが正当かどうかを判定し、判定結果を証明者に通知することを特徴とする本人認証法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１回の通信で証明者の秘密情報の証明を、暗号解読ができる程度の低い確率の漏洩危険のもとで行うことができる擬ゼロ知識証明法に関するものである。
【背景技術】
【０００２】
クレジットカードにおける個人番号等の各種の認証を行うのにゼロ知識証明が利用されつつある。「ゼロ知識証明」とは、パスワード等、本人だけが知っている秘密情報を使った認証において、秘密情報を知っていることを、秘密情報自体は送受信することなく証明する方法である。インターネット等の開放型のネットワークでは、認証時にパスワード等をそのままやり取りすると盗まれる危険性があるため、ゼロ知識証明が使われることがある。具体的には、ゼロ知識証明は、検証者が乱数と秘密情報から演算した結果を質問の形で証明者に送り、証明者が回答を検証者に送るというテストを何度も繰り返すことで行われる。1回のテストでは秘密情報を知らない人が偶然パスする可能性があるが、何回（例えば約５0回）も繰り返すことにより、確率的に本人である可能性を高めることができる。
【０００３】
ゼロ知識証明は、検証者を納得させ得る完全性、不正な証明の確率が2-nと著しく小さい健全性、及び検証者は証明者の秘密情報を知り得ないというゼロ知識性を満たすので、証明者の秘密情報を漏洩することなく証明できるという利点を有する。このため、ゼロ知識証明を利用した種々の暗号技術が提案されている。
【０００４】
特開平8-149124号（特許文献１）は、少なくとも情報提供者と利用者とを含むシステムにおいて、利用者（証明者）が情報提供者（検証者）に情報の配送を要求した時に、情報提供者がゼロ知識証明プロトコルに従って利用者の利用者認証を行なう過程と、情報提供者が利用者に配送する情報Ｍをゼロ知識証明プロトコル中における検査文Ｅに含めて送信し、利用者に情報を１ビット又は複数ビット単位で配送する過程と、情報提供者がゼロ知識証明プロトコルの通信履歴データＨを記録管理する過程とを同時に行なう情報配送方法を提案している。利用者認証を行なう過程及び配送する過程は、利用者が初期応答文Ｘを情報提供者に送信し、情報提供者が利用者に配送する情報Ｍを利用者に送信し、利用者が情報Ｍを検査文Ｅとして、初期応答文Ｘと検査文Ｅと利用者の秘密情報Ｓとを用いて応答文Ｙを作成して情報提供者に送信し、情報提供者が情報Ｍを検査文Ｅとして、応答文Ｙは初期応答文Ｘと検査文Ｅと利用者の公開情報Ｉとに対する正しい応答になっているかを検査して、利用者の秘密情報Ｓを漏らすことなく、利用者は秘密情報Ｓを知っていることを認証するとともに、利用者が情報Ｍを確実に受信していることを確認することからなる配送確認プロセスを含む。情報提供者が利用者に送信する情報Ｍ又は暗号文Ｃは任意ビット長のサイズの複数個のブロックに分割され、各ブロックごとに独立して繰り返し配送確認プロセスが行なわれる。
【０００５】
しかしながら、検証者と証明者との通信は通常30回以上行われるので、証明者の情報端末が例えば携帯電話のように高速通信手段ではない場合、ゼロ知識証明を完了するのに要する時間が膨大になるという欠点がある。このため、携帯電話のようなモバイル機器を用いた本人証明のような用途に利用するのは事実上困難であった。
【０００６】
【特許文献１】特開平8-149124号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従って、本発明の目的は、一回の通信で証明者の秘密情報を、確率ゼロに近い漏洩危険の元で証明することである。このような方法を擬ゼロ知識証明法とよぶことにする。
【課題を解決するための手段】
【０００８】
本発明の擬ゼロ知識証明法の一例を図１を参照して説明する。証明者(例えば携帯機器の所有者)は検証者（例えばクレジット会社）に、証明者の秘密個人情報Iを漏らすことなく、秘密個人情報を持っている本人であることを次のようにして確認してもらう。まず一方向関数ｈと別の多変数関数ｆを考える。fも一方向関数である。h(I)は最初に交換するなどして両者が共有している。
【０００９】
(1) 証明者は名前を検証者に送り、証明者の認証を依頼する。 (2) 検証者は乱数mを生成し、これと補助的な情報xを証明者に送る。(3) 証明者は受け取ったm及びxと、秘密個人情報I及びその一方向関数h(I)とを関数ｆに適用して、y＝f(I,h(I),m,x)を求め、これを検証者に送る。なおhは一方向関数であり、h(I)からIは求められない。またfも一方向関数であり、yとmとxとh(I)からIを求めることができないような関数である。(4) 検証者は確認関数Ver(y,h(I),m,x)を用いて、受け取ったy、及びh(I)、乱数m及び補助情報xから、yが正当かどうかを判定する。(5) 検証者は判定結果を証明者に通知する。
【発明の効果】
【００１０】
証明者の秘密個人情報Iは検証者とは別のところにあり、また検証者はyからIを求めることができないので、検証者から秘密個人情報Iが漏洩することはない。もちろん盗聴者にIが漏れることもなく、また秘密個人情報Iは関数fの実行ファイルの中に組み込むなどされており、たとえｆを含む携帯端末を得てもＩを見つけることは難しい。また計算及び通信は個人が所有する携帯端末を利用して行うので、本人の管理下で行え、関数fの盗みも難しい。最後の合否の通知は同じ携帯端末または別の経路の機器などで店に対しても行われるが、これらの情報は偽造等の不正に対しては全く意味がない。このように偽造などに対しても有効である。
【００１１】
また秘密個人情報Iは継続的に利用することができ、一方向性関数hとか関数fは容易に変更することができる。特に関数ｈとかｆに鍵の部分も持たせると、鍵の変更によって多数の関数が容易に得られ、変更も簡単にできる。例えば携帯端末を交換したときにｆとかｈを変更すればより安全に破棄することができる。さらにxとか h(I) に相当するものを使用しないとか、ｘを固定化して証明者と検証者で最初から共有することなどもできる。
【００１２】
次に偽造とか不正使用にたいする効果について述べる。まず秘密個人情報Ｉは実行ファイルの中に組み込むなどの手法により容易には外部から得られないようにすることができる。また、計算及び通信は各個人の所有する携帯端末で行うので、所有者の管理下で認証がなされ、秘密情報が盗まれる危険性は非常に低い。ICカードなどに対しても、暗証番号の入力といった補助的な秘密個人情報を加えることにより容易に安全性を高めることができる。
【００１３】
本発明の擬ゼロ知識証明法は、本人の秘密情報を暴露しないで本人の認証を行うゼロ知識証明の特徴を利用しつつ、それを一回の通信で行うことができるので、携帯電話等の計算速度の遅い（又はメモリーの小さい）移動端末からでも迅速に本人の認証を行うことができる。もちろん家庭のパソコン端末においてもゼロ知識証明による50回程度の継続した通信はかなりの時間を要し、認証を必要とする多くの場面で活用できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の擬ゼロ知識証明法の具体例について詳述する。
本発明の擬ゼロ知識証明を用いた第一の本人認証法では、図２に示すように、(a) 証明者は、素数p、pを法とする原始元ｇ、秘密個人情報I（1≦I≦p−1）、及び
y＝gI mod p
をもち、(b) 検証者はp，ｇ及びyをもち、(c) 検証者は乱数ｍ（1≦ｍ≦p−1）を証明者に送り、(d) 証明者はmと乱数k（1≦k≦p−1で kとp−1は互いに素）から、
r＝gk mod p  及び  s＝(m−I・r)/k mod (p−1)
を計算し、この(r,s)を検証者に送り、(e) 検証者は受け取った(r,s)から
yr・rs＝gm mod p
が成り立つかどうかを調べる。検証者は、成り立つ場合には証明者を本人と認証し、成り立たない場合には認証を拒否する。これにより擬ゼロ知識証明が実現される。なおこの例では、証明者と検証者が共有する(p,g,y)は上記補助的な情報xに相当し、h(I)は使用していない。
【００１５】
ここでｒ及びｓは大きな数字であるので、yr・rs＝gm mod pが偶然成り立つ可能性はないと考えてよい。そのため、複数回の通信を行わなくても、証明者の本人確認をすることができる。
【００１６】
擬ゼロ知識証明を用いた第二の本人認証法では、図３に示すように、(a) 証明者は、素数pとq及びn＝p・qを持ち、φ(n)＝(p−1)(q−1)からa・b＝1 modφ(n) となる数aとbを求めて数aを秘密情報として持ち、(b) 検証者はnとbを持ち、(c) 検証者は乱数m（1≦ｍ<n）を証明者に送り、(d) 証明者は秘密数aと乱数mを用いて
s＝ma mod n
を計算して、sの値を検証者に送り、(e) 検証者は、
sb＝m mod n 
が成り立つか否かを検証し、成り立つ場合には証明者を本人と認証し、成り立たない場合には本人の認証を拒否する。本方法では (n,b) が補助的な情報に相当し、h(I)はなく、(p,q,a)は個人秘密情報である。
【００１７】
擬ゼロ知識証明を用いた第三の本人認証法では、(a) 証明者は、h(k(z))＝k(h(z))かつ h(a*b) ＝ h(a)*h(b)となる2つの一方向関数hとkを持ち、さらに乱数I（1≦I≦N）を秘密情報として持ち、(b) 検証者は一方向関数ｋとhを持ち、(c) 検証者は乱数m（1≦m≦N）を証明者に送り、(d) 証明者は
y＝k(m*I)   （ただし、*はビット列の排他的論理和である。）
を計算して、yの値を検証者に送り、(e) 検証者は、
h(y)＝k(h(m)*h(I))
が成り立つか否かを検証し、成り立つ場合には証明者を本人と認証し、成り立
たない場合には本人の認証を拒否する。なお、hとかkの例としては、N＝smとするとき、hはｓビット毎に排他的論理和をとってNビットをmビットにし、kは[1,2,…,m]上の置換で、ｓビットずつまとめ置換させてNビット上の置換とみなすようなものがある。
【００１８】
本発明の擬ゼロ知識証明法はパソコン、クレジットカードに類する機能を備えた携帯電話とかICの組み込まれたクレジットカードによる買い物、支払いに対して利用可能である。買い物とか支払いに対する基本は、本人の認証を間違いや不正がないように行うことであり、その目的に本発明の擬ゼロ知識証明法を利用できる。
【００１９】
本発明の擬ゼロ知識証明法を用いた本人認証の具体例として、以下のものが挙げられる。クレジットカードに類する機能を備えた携帯電話による買い物と支払いの場合、証明者を携帯電話の所有者とし、検証者をクレジット会社とし、合否の通信の受け取りに店を追加して、上記第一の認証法を実行することができる。
【００２０】
またトラベラーズチェックの払い戻し又は再発行にも上記第一の認証法を実行することができる。トラベラーズチェックは紛失や盗難に会ったときに払い戻し又は再発行を受けることができるが、その際詐欺を防止するために正確な本人確認をする必要である。このときにはトラベラーズチェックの再発行を希望する人が証明者となり、トラベラーズチェックの発行会社が検証者となる。以下の手順を実行する。ただし、計算を実行するために、再発行を希望する人は計算ソフトを手持ちのパソコンにダウンロードするといったことが必要になる。
【図面の簡単な説明】
【００２１】
【図１】本発明の擬ゼロ知識証明法を示す概略図である。
【図２】本発明の擬ゼロ知識証明を用いた第一の本人認証法を示す概略図である。
【図３】本発明の擬ゼロ知識証明を用いた第二の本人認証法を示す概略図である。
【図１】
2005252349.tif 000003
【図２】
2005252349.tif 000004
【図３】
2005252349.tif 000005