(58)【調査した分野】(Int.Cl.,DB名)
前記暗号化部は、前記多項式がi次の項の係数をα[i](i=0,1,…,N)とするN次の多項式である場合、公開鍵により前記係数α[i]を暗号化し、暗号化された係数C[i]を求めて前記第3のノードに送信し、
前記評価値生成部は、前記被認証データD'を受信すると、暗号化された前記係数C[i]を前記第3のノードから取得して、C[N]^{D'^N}・C[N-1]^{D'^{N-1}}・…・C[1]^D'・C[0]を前記評価値として生成する、請求項3に記載の照合システム。
前記照合部は、前記秘密鍵を用いて前記評価値を復号した値がゼロか否かに基づいて、前記被認証データを前記認証データと照合する、請求項3または4に記載の照合システム。
【発明の概要】
【発明が解決しようとする課題】
【0011】
上記の特許文献および非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
【0012】
特許文献1の方式は、生体認証を何度も繰り返したとき、十分な強度で生体情報が保護されていないおそれがあることが知られている。
【0013】
一方、非特許文献1は、凖同型性を有する公開鍵暗号を利用することにより、認証を求めているクライアントの生体情報を保護する方式を提案している。
【0014】
生体情報を保護しない生体認証方式では、生体情報(例えば、指紋など)からマニューシャと呼ばれる特徴点を抽出し、マニューシャを認証用テンプレートとしてサーバに登録する。一般に、マニューシャは、タイプ、座標(x,y)、角度という3つの成分から成る。タイプは特徴点のタイプを表し、例えば、端点、分岐点などがある。座標は特徴点の座標を表し、角度は特徴点における接線の傾きを表す。
【0015】
サーバは、認証時において、クライアントの生体情報から抽出されたマニューシャと、認証用テンプレートとして登録されたマニューシャが一致することを確認する。(1)特徴点のタイプが一致し、(2)特徴点間の距離が閾値以内であり、(3)特徴点における接線の傾きの差が閾値以内である、という3条件が満たされたとき、マニューシャが一致したとみなされる。
【0016】
具体的には、認証時に抽出されたマニューシャを(type1,(x1,y1),θ1)とし、登録されたマニューシャを(type2,(x2,y2),θ2)としたとき、
(1)type1=type2
(2)0≦((x1-x2)^2+(y1-y2)^2)≦δd
(3)0≦(θ1-θ2)^2≦δt
の3条件が満たされたとき、2つのマニューシャが一致したとみなされる。
【0017】
ここで、δd、δtはシステムによって決められるパラメータである。また、(2)で評価される距離は、2次元ユークリッド距離、または、L2ノルムと呼ばれる。同様に、(3)で評価される距離は1次元ユークリッド距離と呼ばれる。以下では、これらをまとめてユークリッド距離と呼び、DとD’のユークリッド距離をd(D,D’)と表す。
【0018】
非特許文献1には、認証要求をしているクライアントの生体情報を秘匿できる生体認証方式が記載されている。具体的には、Aided ComputationおよびSet Intersectionと呼ばれる暗号プロトコルを利用することにより、認証時に抽出されたマニューシャ(type1,(x1,y1),θ1)をサーバに明かさずに、サーバに登録されたマニューシャ(type2,(x2,y2),θ2)とマニューシャ(type1,(x1,y1),θ1)とが一致するかどうかを確認することができる。
【0019】
以下では、クライアントからサーバに対して事前に登録されるデータを「認証データ」という。また、認証時に抽出され認証データとの照合が行われるデータを「被認証データ」という。上記の例では、マニューシャ(type2,(x2,y2),θ2)は認証データに相当し、マニューシャ(type1,(x1,y1),θ1)は被認証データに相当する。
【0020】
これらの暗号プロトコルを説明する準備として、公開鍵暗号について説明する。公開鍵暗号は、鍵生成、暗号化、復号の3つのアルゴリズムからなる。鍵生成はセキュリティパラメータを入力として受け取り、公開鍵pkと秘密鍵skを出力する確率的アルゴリズムである。暗号化は、公開鍵pkとメッセージMを入力として受け取り、暗号文Cを出力する確率的アルゴリズムである。復号は、秘密鍵skと暗号文Cを入力として受け取り、復号結果Mを出力する決定的アルゴリズムである。
【0021】
以下、鍵生成、暗号化、復号の各アルゴリズムを次のように記載する。
鍵生成:KeyGen(1^k)→(pk,sk)
暗号化:Enc(pk,M)→C
復号:Dec(sk,C)→M
【0022】
公開鍵暗号方式が凖同型性を有するとは、ある演算(*)、(+)に対して、以下の式が成立する場合をいう。
Enc(pk,M1(+)M2)=Enc(pk,M1)(*)Enc(pk,M2)
【0023】
例えば、Paillier暗号は、(*)を乗算、(+)を加算とした凖同型性を有する公開鍵暗号であることが知られている。次に、Paillier暗号について説明する。
【0024】
鍵生成:セキュリティパラメータ1^kを受け取る。
kビットの素数p,qをランダムに選び、n=pqとする。
次に、g=1+n mod n^2とする。
公開鍵pk=(n,g)、秘密鍵sk=(p,q)を出力する。
【0025】
暗号化:pk=(n,g)、メッセージmを入力として受け取る。
Z*_{n^2}からランダムにrを選ぶ。
C=(1+mn)・r^n mod n^2を計算する。
暗号文Cを出力する。
【0026】
復号:sk=(p,q)、暗号文Cを入力として受け取る。
λ=(p-1)(q-1)を計算する。
m=(c^{λ} mod n^2 -1)/(g^{λ} mod n^2 -1) mod nを計算する。
平文mを出力する。
【0027】
C1=Enc(pk,m1)=(1+m1 n)・r1^n mod n^2、C2=Enc(pk,m2)=(1+m2 n)・r2^n mod n^2とすると、C1×C2=(1+(m1+m2)n+m1・m2・n^2)・(r1r2)^n mod n^2=(1+(m1+m2)n)・(r1r2)^n mod n^2 =Enc(pk,m1+m2)となり、Paillier暗号は凖同型性を有する。このように、暗号化したまま平文の加算を行うことができる公開鍵暗号を、加法凖同型公開鍵暗号と呼ぶ。
【0028】
Set Intersectionとは、2人のエンティティであるアリス(Alice)とボブ(Bob)の間で行われる暗号プロトコルである。アリスはあるデータaを持ち、ボブはデータの集合Bを持つものと仮定する。このとき、Set Intersectionはアリスの持つデータaをボブに秘匿したまま、データaが集合Bに含まれるかどうかを確認するプロトコルである。
【0029】
簡単のため、集合B={b1,b2,b3}としてSet Intersectionを説明する。また、ボブは加法凖同型公開鍵暗号の公開鍵pkを公開し、対応する秘密鍵skを保持しているものとする。
【0030】
1.ボブはx=b1,b2,b3のとき、値が0となり、それ以外のとき、値が0以外となる多項式F(x)を生成する。例えば、F(x)=(x-b1)(x-b2)(x-b3)とすればよい。このような多項式は、ラグランジェ補間を利用して容易に生成することができる。ここで、F(x)の係数をα[0]、α[1]、…、α[n]とする。すなわち、F(x)=α[n]x^n+α[n-1]x^{n-1}+…+α[1]x+α[0]である。
2.ボブは、公開鍵pkを使用してα[0]、α[1]、…、α[n]をそれぞれ暗号化する。また、ボブは、暗号文C[0]、C[1]、…、C[n]をアリスに送付する。
3.アリスは、a^{n}、a^{n-1}、…、a^{0}を計算する。さらに、アリスは、C[n]^{a^{n}}、C[n-1]^{a^{n-1}}、…、C[0]^{a^{0}}を計算する。
4.アリスは、C=C[n]^{a^{n}}・C[n-1]^{a^{n-1}}・…・C[0]^{a^{0}}を計算する。凖同型性により、C=Enc(pk、F(a))である。また、アリスは、ランダムにrを選択し、C’=C^{r}とする。さらに、アリスは、C’をボブに送付する。
5.ボブは、受け取ったC’を復号する。ボブは、復号結果が0の場合、アリスは集合Bに含まれるデータを有すると判断し、復号結果が0以外の場合、アリスは集合Bに含まれるデータを持たないと判断する。
【0031】
簡単のため、入力aを持つアリスと、集合Bおよび秘密鍵skを持つボブによるSet IntersectionのプロトコルをSet Intersection[アリス(a),ボブ(B,sk)](pk)と表記する。ここで、pkはアリスとボブの共通入力である公開鍵pkを表す。
【0032】
次に、Aided Computationを説明する。Aided Computationも、2人のエンティティであるアリスとボブの間で行われる暗号プロトコルである。アリスはあるデータaの暗号文Enc(pk,a)を持ち、ボブはデータの集合Bおよび公開鍵pkに対応する秘密鍵skを持つものと仮定する。ボブの暗号は、加法凖同型公開鍵暗号である。このとき、Aided Computationはアリスの持つデータaをボブに秘匿したまま、データaが集合Bに含まれるかどうかを確認するプロトコルである。Aided Computationでは、Set Intersectionとは異なり、アリスはデータaの平文を知らない。
【0033】
簡単のため、B={b1,b2,b3}としてAided Computationを説明する。また、x=b1,b2,b3のときに0となり、それ以外のときに0以外となる多項式F(x)が公開されているものとする。すなわち、F(x)=α[n]x^n+α[n-1]x^{n-1}+…+α[1]x+α[0]であり、α[0]〜α[n]が公開されているとする。
【0034】
1.アリスはランダムにrを選び、Enc(pk,ra)={Enc(pk,a)}^{r}を計算し、ボブに送付する。
2.ボブはEnc(pk,ra)を復号し、raを得る。
3.ボブは(ra)^{α[1]}、(ra)^{α[2]}、…、(ra)^{α[n]}を計算し、それぞれ公開鍵pkを用いて暗号化する。すなわち、C[i]=Enc(pk,(ra)^{α[i]})をi=1〜nに対して行い、C[1]〜C[n]をアリスに送付する。
4.アリスは、i=1〜nに対してC’[i]=(C[i])^{1/(r^{i})}を計算する。
5.アリスはC=C’[1]・C’[2]・…・C’[n]・Enc(pk,α[0])を計算し、ボブに送付する。凖同型性より、C=Enc(pk,F(a))である。
6.ボブは、Cを復号する。ボブは、復号結果が0の場合、アリスは集合Bに含まれるデータの暗号文を有すると判断し、復号結果が0以外の場合、アリスは集合Bに含まれるデータの暗号文を持たないと判断する。
【0035】
簡単のため、入力Enc(pk,a)を持つアリスと、集合Bおよび秘密鍵skを持つボブによる関数F(x)に対するAided ComputationのプロトコルをAided Computation[アリス(Enc(pk,a)),ボブ(B,sk)](pk,F(x))と表す。ここで、pkはアリスとボブへの共通入力である公開鍵pkを表す。
【0036】
非特許文献1では、クライアントのマニューシャ(type1,(x1,y1),θ1)(被認証データ)と、サーバに保管されている認証用テンプレート(type2,(x2,y2),θ2)(認証データ)が一致することを確認するために、Set IntersectionとAided Computationを利用する。具体的には、以下の処理を行う。
【0037】
(1)タイプの一致:Set Intersection[クライアント(type1),サーバ(type2,sk)](pk)を行う。
【0038】
(2)距離の一致:まず暗号化したまま(x1,y1)および(x2,y2)間のユークリッド距離を計算する。
(ア)サーバはB={0,1,…,δd}として、F(x)を生成する。
(イ)サーバはEnc(pk,x2^2),Enc(pk,x2),Enc(pk,y2^2),Enc(pk,y2)をそれぞれ計算し、クライアントに送付する。
(ウ)クライアントはEnc(pk,x1^2),Enc(pk,y1^2)を計算する。
(エ)クライアントはEnc(pk,x1^2)・{Enc(pk,x2)}^{-2x1}・Enc(pk,x2^2)・Enc(pk,y1^2)・{Enc(pk,y2)}^{-2y1}・Enc(pk,y2^2)=Enc(pk,(x1-x2)^2+(y1-y2)^2)を計算する。
(オ)Aided Computation[クライアント(Enc(pk,(x1-x2)^2+(y1-y2)^2)),サーバ({0,1,…,δd},sk)](pk,F(x))を実行する。
【0039】
(3)角度の一致:距離の一致と同様に、Enc(pk,(θ1-θ2)^2)を計算し、B’={0,1,…,δt}に対応したG(x)に対するAided Computation[クライアント(Enc(pk,(θ1-θ2)^2),サーバ(B’,sk)](pk,G(x))を実行する。
【0040】
しかしながら、非特許文献1に記載された技術によると、照合ごとにサーバ(認証側ノード)がクライアント(被認証側ノード)から送られてくるデータの復号および復号結果の再暗号化を行う必要があり、照合時におけるサーバ(認証側ノード)の負荷が大きいという問題がある。
【0041】
そこで、暗号文の照合時における認証側ノードの処理負荷を軽減することが要望される。本発明の目的は、かかる要望に寄与する照合システム、ノード、照合方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0042】
本発明の第1の視点に係る照合システムは、
第1のノード、第2のノードおよび第3のノードを備え、
前記第1のノードは、認証データとの距離を評価する評価式を生成する評価式生成部と、
公開鍵により前記評価式の係数を暗号化して前記第3のノードに送信する暗号化部と、
前記認証データと照合される被認証データを受信すると、暗号化された前記係数を前記第3のノードから取得して、前記被認証データおよび暗号化された前記係数に基づいて、前記被認証データを前記認証データと照合するための評価値を生成して前記第2のノードに送信する評価値生成部と、を有し、
前記第2のノードは、前記公開鍵と秘密鍵の対を生成し、前記公開鍵を第1のノードに送信する鍵生成部と、
前記秘密鍵を用いて前記評価値を復号することにより、前記被認証データを前記認証データと照合する照合部と、を有し、
前記第3のノードは、暗号化された前記係数を保持する記憶部を有する。
【0043】
本発明の第2の視点に係るノードは、
認証データとの距離を評価する評価式を生成する評価式生成部と、
公開鍵と秘密鍵の対を生成する第2のノードから受信した前記公開鍵により、前記評価式の係数を暗号化して第3のノードに送信する暗号化部と、
前記認証データと照合される被認証データを受信すると、暗号化された前記係数を前記第3のノードから取得して、前記被認証データおよび暗号化された前記係数に基づいて、前記被認証データを前記認証データと照合するための評価値を生成して前記第2のノードに送信する評価値生成部と、を備える。
【0044】
本発明の第3の視点に係る照合方法は、
第1のノードが、認証データとの距離を評価する評価式を生成する工程と、
公開鍵と秘密鍵の対を生成する第2のノードから受信した前記公開鍵により、前記評価式の係数を暗号化して第3のノードに送信する工程と、
前記認証データと照合される被認証データを受信すると、暗号化された前記係数を前記第3のノードから取得して、前記被認証データおよび暗号化された前記係数に基づいて、前記被認証データを前記認証データと照合するための評価値を生成する工程と、
前記評価値を前記第2のノードに送信する工程と、を含む。
【0045】
本発明の第4の視点に係るプログラムは、
認証データとの距離を評価する評価式を生成する処理と、
公開鍵と秘密鍵の対を生成する第2のノードから受信した前記公開鍵により、前記評価式の係数を暗号化して第3のノードに送信する処理と、
前記認証データと照合される被認証データを受信すると、暗号化された前記係数を前記第3のノードから取得して、前記被認証データおよび暗号化された前記係数に基づいて、前記被認証データを前記認証データと照合するための評価値を生成する処理と、
前記価値を前記第2のノードに送信する処理と、を第1のノードに設けられたコンピュータに実行させる。
なお、プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することができる。
【発明の効果】
【0046】
本発明に係る照合システム、ノード、照合方法およびプログラムによると、暗号文の照合における認証側ノードの処理負荷を軽減することが可能となる。
【発明を実施するための形態】
【0048】
はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【0049】
図1は、一実施形態に係る照合システムの構成を一例として示すブロック図である。
図1を参照すると、照合システムは、被認証側ノードとして第1のノード110を備え、認証側ノードとして第2のノード120と第3のノード130を備えている。第1のノード110は、評価式生成部11、暗号化部12、および、評価値生成部22を有する。一方、第2のノード120は、鍵生成部41および照合部46を有する。また、第3のノード130は記憶部31を有する。
【0050】
第1のノード110の評価式生成部11は、認証データとの距離を評価する評価式を生成する。第2のノード120の鍵生成部41は、公開鍵と秘密鍵の対を生成し、公開鍵を第1のノード110に送信する。第1のノード110の暗号化部12は、公開鍵により評価式の係数を暗号化して第3のノード130に送信する。第3のノード130の記憶部31は、暗号化された係数を保持する。
【0051】
第1のノード110の評価値生成部22は、認証データと照合される被認証データを受信すると、暗号化された係数を第3のノード130から取得して、被認証データおよび暗号化された係数に基づいて、被認証データを認証データと照合するための評価値を生成して第2のノード120に送信する。第2のノード120の照合部46は、秘密鍵を用いて評価値を復号することにより、被認証データを前記認証データと照合する。
【0052】
ここで、暗号化部12は、加法準同型性を有する暗号化方式に基づいて暗号化を行うことが好ましい。一例として、暗号化部12は、Paillier暗号に基づいて暗号化を行ってもよい。
【0053】
評価式生成部11は、認証データとの距離が所定の距離以内であるときにゼロとなる多項式を評価式として生成してもよい。暗号化部12は、当該多項式がi次の項の係数をα[i](i=0,1,…,N)とするN次の多項式である場合、公開鍵により係数α[i]を暗号化し、暗号化された係数C[i]を求めて第3のノード130に送信してもよい。このとき、評価値生成部22は、被認証データD'を受信すると、暗号化された係数C[i]を第3のノード130から取得して、C[N]^{D'^N}・C[N-1]^{D'^{N-1}}・…・C[1]^D'・C[0]を、上記の評価値として生成することが好ましい。
【0054】
また、照合部46は、秘密鍵を用いて評価値を復号した値がゼロか否かに基づいて、被認証データを認証データと照合してもよい。
【0055】
さらに、認証データおよび被認証データは、n次元の要素を含んでいてもよい。このとき、評価式生成部11は、被認証データと認証データとのn次元ユークリッド距離が所定の距離以内であるときにゼロとなる多項式を、上記の評価式として生成してもよい。
【0056】
また、認証データおよび被認証データは、複数の要素を含んでいてもよい。このとき、評価式生成部11は、複数の要素のそれぞれについて被認証データと認証データとの距離が所定の距離以内であるときゼロとなる多項式を求め、複数の要素に対して求めた多項式の和を、上記の評価式として生成することが好ましい。
【0057】
非特許文献1に記載された技術によると、照合ごとにサーバがクライアントから送られてくるデータの復号および復号結果の再暗号化を行う必要があり、照合におけるサーバ(認証側ノード)の負荷が大きいという問題がある。
【0058】
上記一実施形態に係る照合システムによると、データ登録時に、データあるいはデータの暗号文ではなく、照合に必要な評価式に関する情報を第1のノード110(被認証側ノード)が生成し、(認証側ノードに含まれる)第3のノード130に登録することで、かかる問題が解消される。また、用いる暗号化方式に凖同型性という特殊な性質を持たせることで、暗号化したままデータのユークリッド距離を計算することを可能とし、暗号データを復号することなく照合可能であることを保証している。
【0059】
かかる照合システムによると、認証側ノードに含まれる第2のノード120および第3のノード130が行う処理量が少ないため、照合処理の高速化が実現される。また、かかる照合システムによると、処理の並列化を行うことが容易となり、多くの照合要求に同時に対応することができる。その理由は、データ登録時に、第1のノード110(被認証側ノード)によって、照合に必要な情報が生成され、第3のノード130に登録されているからである。
【0060】
<実施形態1>
次に、第1の実施形態に係る照合システムについて、図面を参照して詳細に説明する。
【0061】
図2は、本実施形態に係る照合システムの構成を一例として示すブロック図である。
図2を参照すると、照合システムは、登録データ生成装置10、照合要求装置20、記憶装置30、および、データ照合装置40を備えている。
【0062】
なお、
図2は照合システムが4つのノードによって構成される場合を例示するが、本発明の照合システムは図示の態様に限定されない。一例として、登録データ生成装置10と照合要求装置20をまとめて第1のノードとし、データ照合装置40を第2のノードとし、記憶装置30を第3のノードとしてもよい。
【0063】
登録データ生成装置10は、評価式生成部11および暗号化部12を備えている。
【0064】
評価式生成部11は、秘匿の対象となる認証データと、パラメータとを入力とし、評価式を生成する。暗号化部12は、認証データと、評価式と、データ照合装置40が公開している暗号化鍵とを入力とし、暗号データを出力する。
【0065】
記憶装置30は、記憶部31および識別子管理部32を備えている。記憶部31は、登録データ生成装置10から送付された暗号データとともに、識別子管理部32によって付与された固有の識別子を記憶する。
【0066】
照合要求装置20は、照合要求部21、評価値生成部22、および、照合用データ生成部23を備えている。
【0067】
照合要求部21は、認証データと照合すべき被認証データを受け取り、データ照合装置40へ照合要求を送付する。評価値生成部22は、被認証データと、データ照合装置40から受信した照合用情報を入力として、暗号化評価値を生成する。照合用データ生成部23は暗号化評価値を入力として、照合用データを生成する。
【0068】
データ照合装置40は、鍵生成部41、照合用情報送付部42、結果生成部43、および、判定部44を備えている。
【0069】
鍵生成部41は、公開鍵暗号の公開鍵および秘密鍵を生成し、公開鍵を公開、秘密鍵を保持する。照合用情報送付部42は、照合要求装置20から送付された照合要求を入力として受け取り、照合用情報を送付する。結果生成部43は、照合要求装置20から送付された照合用データと秘密鍵を入力とし、結果データを出力する。判定部44は、結果データを入力として受け取り、照合結果を生成し、出力する。
【0070】
次に、本実施形態に係る照合システムの動作を、図面を参照して詳細に説明する。
【0071】
照合システムの動作は、データ登録フェーズと暗号文照合フェーズの2つのフェーズに大別される。ここで、データ登録フェーズでは、登録データ生成装置10に認証データを入力し、認証データを暗号化し、記憶装置30に登録する。一方、暗号文照合フェーズでは、照合要求装置20に入力された被認証データを秘匿しながら、被認証データが、記憶装置30に記憶されている暗号データの平文と近い(すなわち、ユークリッド距離の小さい)ものであるか否かを判定する。
【0072】
以下、各フェーズにおける動作に関して詳細に説明する。
【0073】
[データ登録フェーズ]
図3は、本実施形態に係る照合システムのデータ登録フェーズにおける動作を一例として示すシーケンス図である。
【0074】
図3を参照すると、データ照合装置40の鍵生成部41は、加法凖同型暗号の公開鍵および秘密鍵を生成し、公開鍵を公開する(ステップA1)。
【0075】
次に、登録データ生成装置10は、秘匿対象となる認証データと、公開鍵と、パラメータを受け付ける(ステップA2)。
【0076】
次に、登録データ生成装置10の評価式生成部11は、入力された認証データとパラメータから評価式を生成する(ステップA3)。
【0077】
次に、登録データ生成装置10の暗号化部12は、評価式と公開鍵から暗号データを生成し、記憶装置30に送付する(ステップA4)。
【0078】
記憶装置30の識別子管理部32は、暗号データを受信すると、暗号データに対して固有の識別子を付与する(ステップA5)。また、識別子管理部32は、暗号データと識別子の組を記憶部31に記録する(ステップA6)。
【0079】
[暗号文照合フェーズ]
図4は、本実施形態に係る照合システムのデータ登録フェーズにおける動作を一例として示すシーケンス図である。
【0080】
図4を参照すると、照合要求装置20の照合要求部21は、被認証データが受け付け、照合要求を出力する(ステップB1)。
【0081】
次に、データ照合装置40の照合用情報送付部42は、識別子と照合要求を受信すると、識別子に対応した暗号データを記憶装置30から受信し(ステップB2)、照合用情報を出力する(ステップB3)。
【0082】
照合要求装置20の評価値生成部22は、照合用情報を受信すると、評価式を計算し、暗号化評価値を出力する(ステップB4)。
【0083】
照合用データ生成部23は、暗号化評価値と照合用情報を受け付けると、照合用データを生成し、データ照合装置40に出力する(ステップB5)。
【0084】
データ照合装置40の結果生成部43は、照合用データと秘密鍵を受信すると、結果データを生成する(ステップB6)。
【0085】
判定部44は、結果データを受信すると、判定結果を生成して出力する(ステップB7)。
【0086】
本実施形態に係る照合システムでは、データ登録時に、データまたはデータの暗号文ではなく、照合に必要な評価式に関する情報を登録データ生成装置10が生成して記憶装置30に登録する。かかる照合システムによると、認証側ノードを構成するデータ照合装置40の処理負荷を、非特許文献1に記載されたサーバの処理負荷と比較して、削減することが可能となる。
【0087】
<実施形態2>
次に、第2の実施形態に係る照合システムついて、図面を参照して詳細に説明する。
【0088】
本実施形態では、第1の実施形態に係る照合システムにおいて、距離として1次元ユークリッド距離を用いる。すなわち、認証データDと被認証データD’の距離d(D,D’)=(D-D’)^{2}が閾値d以下である場合、認証データDと被認証データD’はマッチしたと判定する。一方、距離閾値d(D,D’)=(D-D’)^{2}が閾値dよりも大きい場合、認証データDと被認証データD’マッチしないと判定する。また、本実形態では、加法凖同型暗号(例えば、Paillier暗号など)を利用する。以下、各フェーズにおける動作に関して、
図3および
図4を用いて詳細に説明する。
【0089】
[データ登録フェーズ]
図3を参照すると、データ照合装置40の鍵生成部41は、加法凖同型暗号の公開鍵pkと秘密鍵skを生成し、公開鍵pkを公開する(ステップA1)。
【0090】
次に、登録データ生成装置10は、秘匿対象となる認証データDと、鍵生成部41により生成された公開鍵pkを受け付ける(ステップA2)。
【0091】
次に、登録データ生成装置10の評価式生成部11は、入力された認証データDとパラメータdから、(D-x)^2=0,1,…,dのときF(x)=0となり、それ以外のときF(x)が0以外となる多項式F(x)をランダムに生成する(ステップA3)。
【0092】
例えば、F(x)=(D-x)^2・((D-x)^2-1)・((D-x)^2-2)・…・((D-x)^2-d)は2d+2次元の多項式であり、(D-x)^2=0,1,…,dのときにF(x)=0となり、それ以外のときにF(x)が0以外となる。簡単のため、F(x)=α[N]x^{N}+α[N-1]x^{N-1}+…+α[0]とする。前述の例では、F(x)は2d+2次元であるため、N=2d+1である。
【0093】
次に、暗号化部12は、公開鍵pkと多項式F(x)の係数を入力として、暗号データC={Enc(pk,α[0]),Enc(pk,α[1]),…,Enc(pk,α[N])}を生成し、記憶装置30に送付する(ステップA4)。
【0094】
記憶装置30の識別子管理部32は、暗号データを受信すると、暗号データに対して固有の識別子IDを付与する(ステップA5)。また、識別子管理部32は、暗号データと識別子の組(C,ID)を記憶部31に記録する(ステップA6)。
【0095】
[暗号文照合フェーズ]
図4を参照すると、データ照合装置40は、記憶部31に記憶された暗号データと、暗号データに対応する識別子の組(C,ID)を受け付ける(ステップB2)。
【0096】
照合要求装置20の照合要求部21は、被認証データD’と公開鍵pkを受け付けると、照合要求reqを生成して、データ照合装置40に出力する(ステップB1)。照合要求reqは、照合を要求するメッセージである。
【0097】
ここでは、データ照合装置40は、暗号と識別子の組を受け付けるものとした(ステップB2)。ただし、照合要求reqは識別子IDを含み、データ照合装置40は識別子IDに対応する暗号文Cを記憶装置30から受信するようにしてもよい。
【0098】
データ照合装置40の照合用情報送付部42は、照合要求を受信すると、照合要求装置20に照合用情報Cを出力する(ステップB3)。本実施形態では、照合用情報は登録されている暗号データCとする。ただし、照合用情報は、暗号データC以外にも必要な情報(例えば、セッションIDなど)を含んでいてもよい。
【0099】
照合要求装置20の評価値生成部22は、照合用情報Cを受信すると、次のように暗号化評価値を計算する(ステップB4)。
1.V=Enc(pk,α[N])^{D’^{N}}・Enc(pk,α[N-1])^{D’^{N-1}}・…・Enc(pk,α[0])とする。
2.乱数rを選び,res=V^{r}とする。
【0100】
照合用データ生成部23は、暗号化評価値resと照合用情報を受け付けると、照合用データresを生成し、データ照合装置40に出力する(ステップB5)。
【0101】
ここで、照合用データは、ステップB4で計算された暗号化評価値resとした。ただし、照合用データは、暗号化評価値res以外にも必要な情報(セッションIDなど)を含んでいてもよい。
【0102】
また、ステップB4の2は、d(D,D’)<dの場合の出力をランダムにするために行われる。出力をランダムにする必要がない場合、ステップB4の2を省略してもよい。
【0103】
データ照合装置40の結果生成部43は、照合用データresと秘密鍵skを受信すると、照合用データresを復号し、復号結果として結果データRESULTを得る(ステップB6)。
【0104】
判定部44は、結果データRESULTを受け付けると、RESULT=0の場合、d(D,D’)≦dと判定し、それ以外の場合、d(D,D’)>dと判定する(ステップB7)。
【0105】
本実施形態では、記憶装置30に登録されている認証データは暗号データである。また、照合フェーズにおいて照合要求装置20から送付されるデータはいずれも暗号文である。したがって、記憶装置30に対して、登録されたデータ認証Dおよび被認証データD’に関する情報は一切洩れない。
【0106】
また、本実施形態では、1次元のユークリッド距離の例を挙げたが、多項式F(x)を変更することにより、容易に2次元以上のユークリッド距離にも適用することができる。
【0107】
さらに、認証データDが複数の要素からなる場合にも容易に適用可能である。例えば、D=(Dx,Dy)であり、d(Dx,Dx’)≦dxかつd(Dy,Dy’)≦dyか否かを判定したい場合、多項式f(x)をxがd(Dx,x)≦dxのときに0、それ以外のときに0以外となるように設定するとともに、多項式g(y)をyがd(Dy,y)≦dyのときに0、それ以外のときに0以外となるように設定し、F(x,y)=f(x)+g(y)とすればよい。
【0108】
本実施形態に係る照合システムでは、データ登録時に、データまたはデータの暗号文を登録する代わりに、登録データ生成装置10が照合に必要な評価式に関する情報を生成して記憶装置30に登録する。かかる照合システムによると、認証側ノードを構成するデータ照合装置40の処理負荷を、非特許文献1に記載されたサーバの処理負荷と比較して、削減することが可能となる。
【0109】
<実施形態3>
次に、第3の実施形態に係る照合システムついて、図面を参照して詳細に説明する。
【0110】
図5は、本実施形態に係る照合システムの構成を一例として示すブロック図である。
図5を参照すると、照合システムは、登録データ生成装置100、照合要求装置200、記憶装置300、データ照合装置400、および、照合補助装置500を備えている。
【0111】
なお、
図5は照合システムが5つのノードによって構成される場合を例示するが、本発明の照合システムは図示の態様に限定されない。一例として、登録データ生成装置100と照合要求装置200をまとめて第1のノードとし、照合補助装置500を第2のノードとし、記憶装置300とデータ照合装置400をまとめて第3のノードとしてもよい。
【0112】
登録データ生成装置100は、評価式生成部101および暗号化部102を備えている。評価式生成部101は、秘匿の対象となる認証データとパラメータを入力とし、評価式を生成する。暗号化部102は、認証データと、評価式と、照合補助装置500が公開している暗号化鍵とを入力とし、暗号データを出力する。
【0113】
記憶装置300は、記憶部301および識別子管理部302を備えている。記憶部301は、登録データ生成装置100から送付された暗号データとともに、識別子管理部302によって付与された固有の識別子を記憶する。
【0114】
照合要求装置200は、照合要求部201、評価値生成部202、および、照合用データ生成部203を備えている。照合要求部201は、認証データと照合すべき被認証データを入力として受け取り、データ照合装置400へ照合要求を送付する。評価値生成部202は、被認証データと、データ照合装置400から受信した照合用情報を入力として、暗号化評価値を生成する。照合用データ生成部203は、暗号化評価値を入力として、照合用データを生成する。
【0115】
データ照合装置400は、照合用情報送付部401、照合補助要求部402、および、判定部403を備えている。照合用情報送付部401は、照合要求装置200から送付された照合要求を入力として受け取り、照合用情報を送付する。照合補助要求部402は、照合要求装置200から送付された照合用データを入力とし、照合補助装置500に対して照合補助要求を出力する。判定部403は、照合補助要求に対して照合補助装置500が出力した結果データを入力として受け取り、照合結果を生成して出力する。
【0116】
照合補助装置500は、鍵生成部501および照合補助部502を備えている。鍵生成部501は、加法凖同型暗号の公開鍵および秘密鍵を生成し、公開鍵を公開し、秘密鍵を記憶する。照合補助部502は、データ照合装置400が出力した照合補助要求と、秘密鍵とを入力とし、結果データを出力する。
【0117】
次に、本実施形態に係る照合システムの動作について、図面を参照して詳細に説明する。
【0118】
照合システムの動作は、データ登録フェーズと、暗号文照合フェーズの2つのフェーズに大別される。ここで、データ登録フェーズでは、登録データ生成装置100に認証データを入力し、認証データを暗号化し、記憶装置300に登録する。一方、暗号文照合フェーズでは、照合要求装置200に入力された被認証データを秘匿しながら、被認証データが記憶装置300に記憶されている暗号データの平文と近い(すなわち、ユークリッド距離の小さい)ものであるか否かを判定する。
【0119】
以下、各フェーズにおける動作に関して詳細に説明する。
【0120】
[データ登録フェーズ]
図6は、本実施形態に係る照合システムのデータ登録フェーズにおける動作を一例として示すシーケンス図である。
【0121】
図6を参照すると、照合補助装置500の鍵生成部501は、加法凖同型暗号の公開鍵および秘密鍵を生成し、公開鍵を公開する(ステップC1)。
【0122】
次に、登録データ生成装置100は、秘匿対象となる認証データと、鍵生成部501により生成された公開鍵と、パラメータとを受け付ける(ステップC2)。
【0123】
次に、登録データ生成装置100の評価式生成部101は、入力された認証データとパラメータから、評価式を生成する(ステップC3)。次に、登録データ生成装置100の暗号化部102は、評価式と公開鍵から、暗号データを生成し、記憶装置300に送付する(ステップC4)。
【0124】
記憶装置300の識別子管理部302は、暗号データを受信すると、暗号データに対して固有の識別子を付与する(ステップC5)。また、識別子管理部302は、暗号データと識別子の組を記憶部301に記録する(ステップC6)。
【0125】
[暗号文照合フェーズ]
図7は、本実施形態に係る照合システムの暗号文照合フェーズにおける動作を一例として示すシーケンス図である。
【0126】
図7を参照すると、照合要求装置200の照合要求部201は、被認証データを受け付け、照合要求を出力する(ステップD1)。
【0127】
データ照合装置400の照合用情報送付部401は、識別子と照合要求を受信すると、識別子に対応した暗号データを記憶装置300から受信し(ステップD2)、照合用情報を出力する(ステップD3)。
【0128】
照合要求装置200の評価値生成部202は、照合用情報を受信すると、評価式を計算し、暗号化評価値を出力する(ステップD4)。
【0129】
照合用データ生成部203は、暗号化評価値と照合用情報を入力とし、照合用データを生成し、データ照合装置400に出力する(ステップD5)。
【0130】
データ照合装置400の照合補助要求部402は、照合用データを受信すると、照合補助要求を生成し、照合補助装置500に出力する(ステップD6)。
【0131】
照合補助装置500の照合補助部502は、照合補助要求と秘密鍵を入力とし、結果データを生成し、データ照合装置400に出力する(ステップD7)。
【0132】
データ照合装置400の判定部403は、結果データを受信すると、判定結果を生成して出力する(ステップD8)。
【0133】
本実施形態に係る照合システムでは、データ登録時に、データまたはデータの暗号文を登録する代わりに、登録データ生成装置100が照合に必要な評価式に関する情報を生成して記憶装置300に登録する。かかる照合システムによると、認証側ノードを構成するデータ照合装置400および照合補助装置500の処理負荷を、非特許文献1に記載されたサーバの処理負荷と比較して、削減することが可能となる。
【0134】
<実施形態4>
次に、第4の実施形態に係る照合システムについて、図面を参照して詳細に説明する。
【0135】
本実施形態では、第3の実施形態に係る照合システムにおいて、距離として1次元ユークリッド距離を用いる。すなわち、認証データDと被認証データD’との距離d(D,D’)=(D-D’)^{2}が閾値d以下である場合、認証データDと被認証データD’はマッチしたと判定する。一方、距離d(D,D’)=(D-D’)^{2}が閾値dよりも大きい場合、認証データDと被認証データD’マッチしないと判定する。また、本実施形態では、加法凖同型暗号(例えば、Paillier暗号など)を利用する。以下、各フェーズにおける動作に関して、
図6および
図7を参照して詳細に説明する。
【0136】
[データ登録フェーズ]
図6を参照すると、照合補助装置500の鍵生成部501は、加法凖同型暗号の公開鍵pkおよび秘密鍵skを生成し、公開鍵pkを公開する(ステップC1)。
【0137】
次に、登録データ生成装置100は、秘匿対象となる認証データDと、鍵生成部501により生成された公開鍵pkとを受け付ける(ステップC2)。
【0138】
次に、登録データ生成装置100の評価式生成部101は、入力された認証データDとパラメータdから、(D-x)^2=0,1,…,dのときにF(x)=0となり、それ以外のときにF(x)が0以外となる多項式F(x)をランダムに生成する(ステップC3)。
【0139】
例えば、F(x)=(D-x)^2・((D-x)^2-1)・((D-x)^2-2)・…・((D-x)^2-d)は2d+2次元の多項式であり、(D-x)^2=0,1,…,dのときにF(x)=0となり、それ以外のときにF(x)が0以外となる。簡単のため、F(x)=α[N]x^{N}+α[N-1]x^{N-1}+…+α[0]とする。上記の例ではF(x)は2d+2次元であるため、N=2d+1である。
【0140】
次に、暗号化部102は、公開鍵pkと多項式F(x)の係数を入力として、暗号データC={Enc(pk,α[0]),Enc(pk,α[1])、…、Enc(pk,α[N])}を生成し、記憶装置300に送付する(ステップC4)。
【0141】
記憶装置300の識別子管理部302は、暗号データを受信すると、暗号データに対して固有の識別子IDを付与する(ステップC5)。また、識別子管理部302は、暗号データと識別子の組(C,ID)を記憶部301に記憶する(ステップC6)。
【0142】
[暗号文照合フェーズ]
図7を参照すると、データ照合装置400は、記憶部301に記憶された暗号データと暗号データに対応する識別子の組(C,ID)を受け付ける(ステップD2)。
【0143】
次に、照合要求装置200の照合要求部201は、被認証データD’と公開鍵pkを受け付ける(ステップD1)。
【0144】
次に、照合要求装置200の照合要求部201は、被認証データD’と公開鍵pkを受け付けると、照合要求reqを生成し、データ照合装置400に出力する(ステップD1)。照合要求reqは、照合を要求するメッセージである。
【0145】
ここでは、データ照合装置400は、暗号と識別子の組を受け付けるものとした(ステップD2)。ただし、照合要求reqが識別子IDを含み、データ照合装置400が識別子IDに対応する暗号文Cを記憶装置300から受信するようにしてもよい。
【0146】
データ照合装置400の照合用情報送付部401は、照合要求を受信すると、照合要求装置200に照合用情報Cを出力する(ステップD3)。本実施形態では、照合用情報は、登録されている暗号データCとする。ただし、照合用情報は、暗号データC以外にも必要な情報(例えば、セッションIDなど)を含んでいてもよい。
【0147】
照合要求装置200の評価値生成部202は、照合用情報Cを受信すると、次のように暗号化評価値を計算する(ステップD4)。
【0148】
1.V=Enc(pk,α[N])^{D’^{N}}・Enc(pk,α[N-1])^{D’^{N-1}}・…・Enc(pk,α[0])とする。
2.乱数rを選び,res=V^{r}とする。
【0149】
照合用データ生成部203は、暗号化評価値resと照合用情報を入力とし、照合用データresを生成し、データ照合装置400に出力する(ステップD5)。
【0150】
ここでは、照合用データはステップD4で計算された暗号化評価値resとした。ただし、照合用データは、暗号化評価値res以外にも必要な情報(セッションIDなど)を含んでいてもよい。
【0151】
また、ステップD4の2は、d(D,D’)<dの場合の出力をランダムにするために行われる。出力をランダムにする必要がない場合、ステップD4の2を省略してもよい。
【0152】
データ照合装置400の照合補助要求部402は、照合用データresと秘密鍵skを受信すると、照合補助要求resを照合補助装置500に出力する(ステップD6)。
【0153】
ここでは、照合補助要求を暗号化評価値resとした。ただし、照合補助要求は、暗号化評価値res以外にも必要な情報(例えば、セッションIDや要求日時など)を含んでいてもよい。
【0154】
照合補助装置500の照合補助部502は、照合補助要求resと秘密鍵skを入力とし、resを復号し、復号結果を結果データRESULTとしてデータ照合装置400に出力する(ステップD7)。
【0155】
判定部44は、結果データRESULTを入力とし、RESULT=0の場合、d(D,D’)≦dであると判定し、それ以外の場合、d(D,D’)>dと判定する(ステップD8)。
【0156】
本実施形態では、記憶装置300に登録されているデータは暗号データである。また、照合フェーズにおいて照合要求装置200から送付されるデータはいずれも暗号文である。したがって、記憶装置300およびデータ照合装置400に対して、登録された認証データDおよび被認証データD’に関する情報は一切洩れない。
【0157】
また、本実施形態では、1次元のユークリッド距離の例を挙げたが、多項式F(x)を変更することにより、容易に2次元以上のユークリッド距離にも適用することができる。
【0158】
さらに、認証データDが複数の要素からなる場合にも容易に適用可能である。例えば、D=(Dx,Dy)であり、d(Dx,Dx’)≦dxかつd(Dy,Dy’)≦dyかどうかを判定したい場合、多項式f(x)をxがd(Dx,x)≦dxのときに0となり、それ以外のときに0以外となるように設定するとともに、多項式g(y)をyがd(Dy,y)≦dyのときに0となり、それ以外は0以外となるように設定し、F(x,y)=f(x)+g(y)とすればよい。
【0159】
本実施形態に係る照合システムでは、データ登録時に、データまたはデータの暗号文ではなく、(被認証側のノードに含まれる)登録データ生成装置100が照合に必要な評価式に関する情報を生成して、(認証側ノードに含まれる)記憶装置300に登録する。かかる照合システムによると、(認証側ノードに含まれる)データ照合装置400および照合補助装置500の処理負荷を、非特許文献1に記載されたサーバの処理負荷と比較して、削減することが可能となる。
【0160】
上記実施形態に係る認証システムは、一例として、タイプと2次元座標と角度を要素とするマニューシャを用いた生体認証に対して適用することができる。具体的には、データ登録フェーズにおける入力データと、暗号文照合フェーズにおける入力データを、指紋や静脈などから取得した生体情報(マニューシャ)とする。これにより、生体情報を秘匿したまま、記憶装置に格納された暗号化された生体データと、照合要求装置から創出された暗号化された生体データが同一人物から採取されたものであるか否かを、2つの入力データのユークリッド距離が一定数以下となるかどうかにより判定することが可能となる。特に、生体情報は、常に安定して同一のデータが取得できるわけではないことが知られている。一方、同一人物から取得されるデータは類似している(各要素のユークリッド距離が小さいデータが取得できる)と仮定することができる。したがって、本発明に係る照合システムは、生体認証に対して好適に適用し得る。
【0161】
なお、上記の特許文献および非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素などを含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【0162】
なお、本発明において、下記の形態が可能である。
[形態1]
上記第1の視点に係る照合システムのとおりである。
[形態2]
前記暗号化部は、加法準同型性を有する暗号化方式に基づいて暗号化を行う、形態1に記載の照合システム。
[形態3]
前記暗号化部は、Paillier暗号に基づいて暗号化を行う、形態2に記載の照合システム。
[形態4]
前記評価式生成部は、認証データとの距離が所定の距離以内であるときにゼロとなる多項式を前記評価式として生成する、形態1ないし3のいずれか一に記載の照合システム。
[形態5]
前記暗号化部は、前記多項式がi次の項の係数をα[i](i=0,1,…,N)とするN次の多項式である場合、公開鍵により前記係数α[i]を暗号化し、暗号化された係数C[i]を求めて前記第3のノードに送信し、
前記評価値生成部は、前記被認証データD'を受信すると、暗号化された前記係数C[i]を前記第3のノードから取得して、C[N]^{D'^N}・C[N-1]^{D'^{N-1}}・…・C[1]^D'・C[0]を前記評価値として生成する、形態4に記載の照合システム。
[形態6]
前記照合部は、前記秘密鍵を用いて前記評価値を復号した値がゼロか否かに基づいて、前記被認証データを前記認証データと照合する、形態4または5に記載の照合システム。
[形態7]
前記認証データおよび前記被認証データは、n次元の要素を含み、
前記評価式生成部は、前記被認証データと前記認証データとのn次元ユークリッド距離が所定の距離以内であるときにゼロとなる多項式を前記評価式として生成する、形態4ないし6のいずれか一に記載の照合システム。
[形態8]
前記認証データおよび前記被認証データは、複数の要素を含み、
前記距評価式生成部は、前記複数の要素のそれぞれについて前記被認証データと前記認証データとの距離が所定の距離以内であるときゼロとなる多項式を求め、前記複数の要素に対して求めた多項式の和を、前記評価式として生成する、形態1ないし7のいずれか一に記載の照合システム。
[形態9]
上記第2の視点に係るノードのとおりである。
[形態10]
前記暗号化部は、加法準同型性を有する暗号化方式に基づいて暗号化を行う、形態9に記載のノード。
[形態11]
前記暗号化部は、Paillier暗号に基づいて暗号化を行う、形態10に記載のノード。
[形態12]
前記評価式生成部は、認証データとの距離が所定の距離以内であるときにゼロとなる多項式を前記評価式として生成する、形態9ないし11のいずれか一に記載のノード。
[形態13]
前記暗号化部は、前記多項式がi次の項の係数をα[i](i=0,1,…,N)とするN次の多項式である場合、公開鍵により前記係数α[i]を暗号化し、暗号化された係数C[i]を求めて前記第3のノードに送信し、
前記評価値生成部は、前記被認証データD'を受信すると、暗号化された前記係数C[i]を前記第3のノードから取得して、C[N]^{D'^N}・C[N-1]^{D'^{N-1}}・…・C[1]^D'・C[0]を前記評価値として生成する、形態12に記載のノード。
[形態14]
前記認証データおよび前記被認証データは、n次元の要素を含み、
前記評価式生成部は、前記被認証データと前記認証データとのn次元ユークリッド距離が所定の距離以内であるときにゼロとなる多項式を前記評価式として生成する、形態12または13に記載のノード。
[形態15]
前記認証データおよび前記被認証データは、複数の要素を含み、
前記距評価式生成部は、前記複数の要素のそれぞれについて前記被認証データと前記認証データとの距離が所定の距離以内であるときゼロとなる多項式を求め、前記複数の要素に対して求めた多項式の和を、前記評価式として生成する、形態9ないし14のいずれか一に記載のノード。
[形態16]
第1のノード、第2のノードおよび第3のノードを備えた照合システムにおける照合方法であって、
前記第2のノードが、公開鍵と秘密鍵の対を生成し、前記公開鍵を第1のノードに送信する工程と、
前記第1のノードが、認証データとの距離を評価する評価式を生成する工程と、
前記第1のノードが、前記公開鍵により前記評価式の係数を暗号化して前記第3のノードに送信する工程と、
前記第3のノードが、暗号化された前記係数を保持する工程と、
前記第1のノードが、前記認証データと照合される被認証データを受信すると、暗号化された前記係数を前記第3のノードから取得して、前記被認証データおよび暗号化された前記係数に基づいて、前記被認証データを前記認証データと照合するための評価値を生成して前記第2のノードに送信する工程と、
前記第2のノードが、前記秘密鍵を用いて前記評価値を復号することにより、前記被認証データを前記認証データと照合する工程と、を含む、照合方法。
[形態17]
上記第3の視点に係る照合方法のとおりである。
[形態18]
前記第1のノードは、加法準同型性を有する暗号化方式に基づいて暗号化を行う、形態17に記載の照合方法。
[形態19]
前記第1のノードは、Paillier暗号に基づいて暗号化を行う、形態18に記載の照合方法。
[形態20]
前記第1のノードは、認証データとの距離が所定の距離以内であるときにゼロとなる多項式を前記評価式として生成する、形態17ないし19のいずれか一に記載の照合方法。
[形態21]
前記第1のノードは、前記多項式がi次の項の係数をα[i](i=0,1,…,N)とするN次の多項式である場合、公開鍵により前記係数α[i]を暗号化し、暗号化された係数C[i]を求めて前記第3のノードに送信し、
前記被認証データD'を受信すると、暗号化された前記係数C[i]を前記第3のノードから取得して、C[N]^{D'^N}・C[N-1]^{D'^{N-1}}・…・C[1]^D'・C[0]を前記評価値として生成する、形態20に記載の照合方法。
[形態22]
前記認証データおよび前記被認証データは、n次元の要素を含み、
前記第1のノードは、前記被認証データと前記認証データとのn次元ユークリッド距離が所定の距離以内であるときにゼロとなる多項式を前記評価式として生成する、形態20または21に記載の照合方法。
[形態23]
前記認証データおよび前記被認証データは、複数の要素を含み、
前記第1のノードは、前記複数の要素のそれぞれについて前記被認証データと前記認証データとの距離が所定の距離以内であるときゼロとなる多項式を求め、前記複数の要素に対して求めた多項式の和を、前記評価式として生成する、形態17ないし22のいずれか一に記載の照合方法。
[形態24]
上記第4の視点に係るプログラムのとおりである。
[形態25]
加法準同型性を有する暗号化方式に基づいて暗号化する処理を、前記コンピュータに実行させる、形態24に記載のプログラム。
[形態26]
Paillier暗号に基づいて暗号化する処理を、前記コンピュータに実行させる、形態25に記載のプログラム。
[形態27]
認証データとの距離が所定の距離以内であるときにゼロとなる多項式を前記評価式として生成する処理を、前記コンピュータに実行させる、形態24ないし26のいずれか一に記載のプログラム。
[形態28]
前記多項式がi次の項の係数をα[i](i=0,1,…,N)とするN次の多項式である場合、公開鍵により前記係数α[i]を暗号化し、暗号化された係数C[i]を求めて前記第3のノードに送信する処理と、
前記被認証データD'を受信すると、暗号化された前記係数C[i]を前記第3のノードから取得して、C[N]^{D'^N}・C[N-1]^{D'^{N-1}}・…・C[1]^D'・C[0]を前記評価値として生成する処理と、を前記コンピュータに実行させる、形態27に記載のプログラム。
[形態29]
前記認証データおよび前記被認証データは、n次元の要素を含み、
前記被認証データと前記認証データとのn次元ユークリッド距離が所定の距離以内であるときにゼロとなる多項式を前記評価式として生成する処理を、前記コンピュータに実行させる、形態27または28に記載のプログラム。
[形態30]
前記認証データおよび前記被認証データは、複数の要素を含み、
前記複数の要素のそれぞれについて前記被認証データと前記認証データとの距離が所定の距離以内であるときゼロとなる多項式を求め、前記複数の要素に対して求めた多項式の和を、前記評価式として生成する処理を、前記コンピュータに実行させる、形態24ないし29のいずれか一に記載のプログラム。