説明

計算システム、計算方法、ならびに、プログラム

【課題】行列方程式の求解を分散して行って、匿名グループ認証を行うのに好適な、計算システム等を提供する。
【解決手段】計算システム101の端末装置102は、それぞれ、ベクトルw[*,1],…,w[*,u]と秘密鍵s[1],…,s[u]を秘密に保持し、公開鍵p[1],…,p[u]を公開し、秘密鍵svと制御装置103が公開鍵pvで暗号化した行列の掃出しを秘密鍵を用いて順次行うとともに、公開鍵pvで暗号化したベクトルに順次掃出しを適用して、最終結果を制御装置103に返すと、制御装置103は、秘密鍵svを用いて、端末装置102の各々が記憶するベクトルからなる行列を用いた行列方程式の解を得る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、行列方程式の求解を分散して行って、匿名グループ認証を行うのに好適な、計算システム、計算方法、ならびに、これらをコンピュータ上にて実現するためのプログラムに関する。
【背景技術】
【0002】
従来、認証技術の分野では、m人のユーザのグループのうち、少なくともt人のサブグループのユーザがいるときに、サーバと匿名でセッション鍵を共有するための手法が提案されている。このような手法を、t-out-of-m手法という。このような技術については、非特許文献1に開示されている。
【0003】
非特許文献1では、匿名でパスワードに基づいた認証鍵の交換手法、特に、あるグループ内のユーザがサーバと匿名でセッション鍵を確立する手法について提案している。本手法では、正当なグループ内のユーザとサーバは、人が覚えやすいパスワードを共有しており、互いに認証を行うことができ、辞書攻撃に対して安全である。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Duong Quang Viet,Akihiro Yamamura and Hidema Tanaka, Anonymous Password-Based Authenticated Key Exchange, Book Progress in Cryptology - INDOCRYPT 2005, Lecture Notes in Computer Science, Springer Berlin / Heidelberg, Volume 3797/2005, ISBN 978-3-540-30805-8, p.244-p.257, 2005年
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、このような認証手法においては、通信の複雑さを抑制して、通信量を減らしたい、との要望は大きい。
【0006】
このほか、このような認証方法における行列方程式の求解を、適切に行う必要もある。
【0007】
本発明は、このような課題を解決するもので、行列方程式の求解を分散して行って、匿名グループ認証を行うのに好適な、計算システム、計算方法、ならびに、これらをコンピュータ上にて実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記の課題を解決するため、本発明の原理にしたがい、以下の発明を開示する。
【0009】
本発明の第1の観点に係る計算システムは、端末装置U1,…,Utと、制御装置と、を有する。
【0010】
ここで、列ベクトルvのj行目の要素をv[j]と表記する。
【0011】
【数19】

【0012】
行列Aのj行i列目の要素をA[j,i]と表記する。
【0013】
【数20】

【0014】
素数Pを法とする有限体ZPの要素aを、加法群(ZP,+)からPを法とする生成元gの巡回乗法群G = 〈g〉へのホモモルフィック暗号e(・,・)を用いて、公開鍵pにより暗号化した結果を、e(p,a)と表記する。
【0015】
すると、ZPの任意の要素x,yと任意の公開鍵pは、
e(p,x)e(p,y) = e(p,x+y)
を満たす。
【0016】
さらに、h行k列の行列Aのj行i列の要素A[j,i] = aj,iを、公開鍵p1,…,pkにより暗号化した行列e(A)を
e(A)[j,i] = e(pi,aj,i)
と定義する。
【0017】
【数21】

【0018】
また、h行の列ベクトルvのj行の要素v[j]を、公開鍵piにより暗号化した列ベクトルei(v)を、
ei(v)[j] = e(pi,v[j])
と定義する。
【0019】
そして、H行u列の行列Bのh行i列の要素B[h,i] = bh,iと、u行K列の行列Cのi行k列の要素C[i,k] = ci,kと、についての演算B◎Cを、
B◎C[h,k] = Πi=1u C[i,k]B[h,i]
と定義する。
【0020】
【数22】

【0021】
すると、行列A,Bについての演算B◎e(A)は、
B◎e(A)[h,k] = e(pki=1u B[h,i]A[i,k]) = Πi=1u e(pk,A[i,k])B[h,i]
すなわち
B◎e(A) = e(BA)
を満たす。
【0022】
また、公開鍵piおよび列ベクトルvについての演算B◎ei(v)は、
B◎ei(v) = ei(Bv)
を満たす。
【0023】
さて、i = 1,…,uのそれぞれについて、端末装置Uiは、有限体ZPに含まれる秘密値w[1,i],…,w[u,i]と、ホモモルフィック暗号e(・,・)における秘密鍵siと公開鍵piと、があらかじめ記憶される端末記憶部を備える。
【0024】
そして、制御装置は、ホモモルフィック暗号e(・,・)における秘密鍵svと公開鍵pvと、があらかじめ記憶される制御記憶部を備える。
【0025】
さらに、当該計算システムは、端末装置U1,…,Utのそれぞれに記憶される秘密値を要素とするt行t列の行列Wと、ZPに含まれる要素からなるt行の列ベクトルfと、からなる行列方程式
W[j,i] = w[j,i];
WX = f (mod P)
の解ベクトルXを求める。
【0026】
【数23】

【0027】
ここで、i = 1,…,tのそれぞれについて、端末装置Uiは、秘密値w[1,i],…,w[t,i]を、公開鍵piにより暗号化した暗号化済値
e(pi,w[1,i]),…,e(pi,w[t,i])
を計算する端末暗号化部、計算された暗号化済値を公開する端末公開部を備える。
【0028】
一方、制御装置は、端末装置U1,…,Utにより公開された暗号化済値から、暗号化済行列e(W)および暗号化済ベクトルev(f)を
e(W)[j,i] = e(pi,w[j,i]) (1≦i≦t,1≦j≦t);
ev(f)[j] = e(pv,f[j]) (1≦j≦t)
により生成するe生成部を備える。
【0029】
【数24】

【0030】
【数25】

【0031】
さらに、制御装置は、生成された行列e(W)および当該列ベクトルev(f)を端末装置U1に送信する行列送信部を備える。
【0032】
さらに、i = 1,…,tのそれぞれについて、端末装置Uiは、i = 1の場合、制御装置から送信された行列および列ベクトル
e(W),ev(f)
を受信し、i > 1の場合、端末装置Ui-1から送信された行列および列ベクトル
Li-1◎…◎L1◎e(W) = e(Li-1…L1W),Li-1◎…◎L1◎ev(f) = ev(Li-1…L1f)
を受信する行列受信部、受信された行列のi列目を、秘密鍵siにより復号し、i行目を軸に当該復号された列をガウス消去する行列Liを計算する消去行列計算部、計算された行列Liと、受信された行列および列ベクトルと、から、
Li◎Li-1◎…◎L1◎e(W) = e(LiLi-1…L1W),Li◎Li-1◎…◎L1◎ev(f) = ev(LiLi-1…L1f)
を計算する◎行列段階計算部、計算された行列および列ベクトル
Li◎Li-1◎…◎L1◎e(W) = e(LiLi-1…L1W),Li◎Li-1◎…◎L1◎ev(f) = ev(LiLi-1…L1f)
を、i < tの場合、端末装置Ui+1に送信する行列送信部を備える。
【0033】
一方、制御装置は、端末装置Utにおいて計算された列ベクトル
ev(LtLt-1…L1f)
を秘密鍵sv
LtLt-1…L1f
に復号して、解ベクトルXとする求解部を備える。
【0034】
また、本発明の計算システムにおいて、制御装置は、端末装置U1,…,UtのいずれかUkであり、秘密鍵sv = sk,公開鍵pv = pkとするように構成することができる。
【0035】
また、本発明の計算システムは、外部装置をさらに備え、制御装置が制御記憶部を備えるのにかえて、外部装置は、ホモモルフィック暗号e(・,・)における秘密鍵svと公開鍵pvと、があらかじめ記憶される外部記憶部を備え、以下のように構成することができる。
【0036】
当該計算システムは、当該t行t列の行列Wと、当該t行の列ベクトルfと、からなる行列方程式を解くのにかえて、端末装置U1,…,Utのそれぞれに記憶される秘密値を要素とする(t+1)行(t+1)列の行列Wと、ZPに含まれる要素からなる(t+1)行の列ベクトルfと、からなる行列方程式
W[j,i] = w[j,i] (1≦j≦t,1≦i≦t);
W[t+1,i] = W[j,t+1] = 1 (1≦j≦t,1≦i≦t);
W[t+1,t+1] = 0;
WX = f (mod P)
の解ベクトルXを求める。
【0037】
【数26】

【0038】
そして、制御装置において、e生成部は、端末装置U1,…,Utにより公開された暗号化済値および公開鍵piと、外部装置により公開された公開鍵pvと、により、暗号化済行列e(W)と暗号化済ベクトルev(f)を、
e(W)[j,i] = e(pi,w[j,i]) (1≦j≦t,1≦i≦t);
e(W)[t+1,i] = e(pi,1) (1≦i≦t);
e(W)[j,t+1] = e(pv,1) (1≦j≦t);
e(W)[t+1,t+1] = e(pv,0);
ev(f)[j] = e(pv,f[j]) (1≦j≦t)
により生成する。
【0039】
【数27】

【0040】
一方、制御装置は、求解部にかえて端末装置Utにおいて計算された行列および列ベクトル
Lt◎Lt-1…◎L1◎e(W) = e(LtLt-1…L1W),ev(LtLt-1…L1f)
を、外部装置に転送する転送部を備える。
【0041】
さらに、外部装置は、制御装置から転送された行列および列ベクトル
Lt◎Lt-1…◎L1◎e(W) = e(LtLt-1…L1W),ev(LtLt-1…L1f)
を受け付ける行列受付部、受け付けられた行列のt+1列目を、秘密鍵svにより復号し、t+1行目を軸に当該復号された列をガウス消去する行列Lvを計算する消去行列計算部、受信された列ベクトルを秘密鍵sv
LtLt-1…L1f
に復号して、これと計算された行列Lvと、から、
LvLtLt-1…L1f
を計算して、これを解ベクトルXとする求解部を備える。
【0042】
また、本発明の計算システムは、端末装置Ut+1,…,Umと、中央装置と、をさらに備え、以下のように構成することができる。
【0043】
すなわち、中央装置は、j = 1,…,tおよびi = 1,…,mのそれぞれについて、ZPから値w[j,i]をランダムに一様に生成する値生成部、i = 1,…,mのそれぞれについて、値w[1,i],…,w[t,i]を端末装置U[i]に送信する値送信部を備える。
【0044】
一方、i = 1,…,mについて、端末装置Uiは、中央装置から送信された値w[1,i],…,w[t,i]を受信する秘密値受信部を備え、受信されたw[1,i],…,w[t,i]を、当該端末装置の秘密値w[1,i],…,w[t,i]とし、y[1,i] = gw[1,i],…,y[t,i] = gw[t,i]を当該端末装置の公開値とする。
【0045】
さらに、端末装置U1,…,Utおよび制御装置は、端末群を構成し、当該端末群は、ZPから値c[0],c[1],…,c[m]をランダムに一様に生成するc生成部、生成された値c[0],c[1],…,c[m]と、公開された公開鍵と、から、j = 1,…,tのそれぞれについて、
r[j] = gc[0] Πi=1m y[j,i]c[i]
を計算するr計算部、生成された値c[0],c[1],…,c[m]と、計算されたr[1],…,r[t]を、外部装置に送信するrc送信部を備える。
【0046】
そして、外部装置は、端末群から送信されたc[0],c[1],…,c[m]と、r[1],…,r[t]とを受信するrc受信部、ZPからbをランダムに選択するb選択部、選択されたbを、端末群に送信するb送信部を備える。
【0047】
一方、端末群は、外部装置から送信されたbを受信するb受信部、j = 1,…,tのそれぞれについて、端末装置Uiにおいて、
f[j] = c[0] + Σi=1t w[j,i]c[i]
を計算し、端末群のいずれかの端末装置において
f[t+1] = b - Σi=t+1m c[i]
を計算するf計算部を備える。
【0048】
さらに、端末群および外部装置は、計算された列ベクトルfにより、当該行列方程式
WX = f (mod P)
を求解する。
【0049】
そして、外部装置は、求解された結果により、j = 1,…,tのそれぞれについて、
d[j] = X[j]
とし、
d[0] = X[t+1]
とし、j = t+1,…,mのそれぞれについて
d[j] = c[j]
とするd計算部、受信されたr[1],…,r[t]と、得られたd[0],d[1],…,d[m]と、に対して、j = 1,…,tのすべてについて、
r[j] = gd[0] Πi=1m y[j,i]d[i]
が成立し、かつ、
b = Σi=1m d[i] (mod P)
が成立する場合、端末群の匿名認証を成功させる認証部を備える。
【0050】
本発明のその他の観点に係る計算方法は、上記計算システムが実行する計算方法である。
【0051】
本発明のその他の観点に係るプログラムは、コンピュータを、上記の計算システムの端末装置、制御装置、外部装置、もしくは、中央装置の各部として機能させるように構成する。
【0052】
なお、上記のプログラムは、コンピュータ読取可能な情報記録媒体(コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、または、半導体メモリを含む。)に記録することができる。
【0053】
そして、上記の情報記録媒体は、コンピュータとは独立して配布、販売することができるほか、インターネット等のコンピュータ通信網を介して上記のプログラムそのものを配布、販売することができる。
【発明の効果】
【0054】
本発明によれば、行列方程式の求解を分散して行って、匿名グループ認証を行うのに好適な、計算システム、計算方法、ならびに、これらをコンピュータ上にて実現するためのプログラムを提供することができる。
【図面の簡単な説明】
【0055】
【図1】実施例1に係る計算システムの概要構成を示す説明図である。
【図2】i番目の端末装置Uiの概要構成を示す説明図である。
【図3】制御装置の概要構成を示す説明図である。
【図4】本実施形態に係る求解処理の制御の流れを示すフローチャートである。
【図5】実施例2に係る計算システムの概要構成を示す模式図である。
【図6】外部装置が実行する外部処理の制御の流れを示す説明図である。
【図7】実施例3に係る計算システムの概要構成を示す模式図である。
【図8】全端末装置U1,…,Umの初期化を行う初期化処理の制御の流れを示すフローチャートである。
【図9】認証処理の制御の流れを示すフローチャートである。
【発明を実施するための形態】
【0056】
以下に本発明の実施形態を説明する。なお、以下にあげる実施形態は、説明のためのものであり、本発明の範囲を制限するものではない。したがって、当業者であれば、これらの各要素または全要素を、これと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も、本発明の範囲に含まれる。
【0057】
なお、以下の実施形態において実現される各装置は、いずれも、他の装置と通信可能なコンピュータにおいて、所定のプログラムを実行することによって実現されるものとするのが典型的であるが、電子回路等のハードウェアによって、各装置を実現することとしても良い。
【実施例1】
【0058】
図1は、本実施形態に係る計算システムの概要構成を示す説明図である。以下、本図を参照して説明する。
【0059】
本図に示す計算システム101は、t台の端末装置102(それぞれU1,…,Utと呼ぶ。)と、制御装置103と、を備え、行列方程式の求解を行う。
【0060】
以下、理解を容易にするため、[数19]に示すように、一般に、列ベクトルvのj行目の要素をv[j]と表記する。
【0061】
また、[数20]に示すように、一般に、行列Aのj行i列目の要素をA[j,i]と表記する。
【0062】
さらに、素数Pを法とする有限体ZPの要素aを、加法群(ZP,+)からPを法とする生成元gの巡回乗法群G = 〈g〉へのホモモルフィック暗号e(・,・)を用いて、公開鍵pにより暗号化した結果を、e(p,a)と表記する。
【0063】
このようなホモモルフィック暗号としては、現在広く用いられている公開鍵暗号の技術を適用することができる。
【0064】
すると、ZPの任意の要素x,yと任意の公開鍵pは、
e(p,x)e(p,y) = e(p,x+y)
を満たす。
【0065】
ここで、h行k列の行列Aのj行i列の要素A[j,i] = aj,iを、公開鍵p1,…,pkにより暗号化した行列e(A)を、[数21]のように、
e(A)[j,i] = e(pi,aj,i)
と定義する。
【0066】
また、h行の列ベクトルvのj行の要素v[j]を、公開鍵piにより暗号化した列ベクトルei(v)を、
ei(v)[j] = e(pi,v[j])
と定義する。
【0067】
さらに、H行u列の行列Bのh行i列の要素B[h,i] = bh,iと、u行K列の行列Cのi行k列の要素C[i,k] = ci,kと、についての演算B◎Cを、[数22]のように、
B◎C[h,k] = Πi=1u C[i,k]B[h,i]
と定義する。
【0068】
すると、行列A,Bについての演算B◎e(A)は、
B◎e(A)[h,k] = e(pki=1u B[h,i]A[i,k]) = Πi=1u e(pk,A[i,k])B[h,i]
すなわち
B◎e(A) = e(BA)
を満たすことがわかる。
【0069】
また、公開鍵piおよび列ベクトルvについての演算B◎ei(v)は、
B◎ei(v) = ei(Bv)
を満たすこととなる。
【0070】
図2は、i = 1,…,uのそれぞれに対して、i番目の端末装置102(Ui)の概要構成を示す説明図である。以下、本図を参照して説明する。
【0071】
端末装置102(Ui)は、端末記憶部201、端末暗号化部202、端末公開部203、行列受信部204、消去行列計算部205、◎行列段階計算部206、行列送信部207を備える。
【0072】
ここで、端末記憶部201には、有限体ZPに含まれる秘密値w[1,i],…,w[u,i](図では「w[*,i]」と表記する。)と、ホモモルフィック暗号e(・,・)における秘密鍵siと公開鍵piと、があらかじめ記憶される。
【0073】
ここで、秘密値w[1,i],…,w[u,i]と、秘密鍵siと、は、いずれも当該端末装置102(Ui)が秘密に記憶するものであり、他者に対して公開されることはない。
【0074】
一方、公開鍵piは、秘密鍵siと対をなすものであるが、当該端末装置102(Ui)は、公開鍵piを、他者に対して公開することとなる。
【0075】
ここで、理解を容易にするため、端末装置102(Ui)の他の要素については、後述することとし、以下では、制御装置103について説明する。
【0076】
図3は、制御装置103の概要構成を示す説明図である。以下、本図を参照して説明する。
【0077】
制御装置103は、制御記憶部301、e生成部302、行列送信部303、行列受信部304、求解部305を備える。
【0078】
制御記憶部301には、ホモモルフィック暗号e(・,・)における秘密鍵svと公開鍵pvと、があらかじめ記憶される。
【0079】
ここで、秘密鍵svは他者に対して公開されることはないが、これと対をなす公開鍵pvは、他者に対して公開される。
【0080】
ここで、本計算システム101は、端末装置102(U1,…,Ut)のそれぞれに記憶される秘密値を要素とするt行t列の行列Wと、ZPに含まれる要素からなるt行の列ベクトルfと、からなる、[数23]に示すような行列方程式
W[j,i] = w[j,i];
WX = f (mod P)
の解ベクトルXを求める。なお、一般に、t≦uである。
【0081】
上記のように、行列Wの各要素は、いずれかの端末装置102に秘密に記憶されるものである。したがって、この方程式を、直接解くことはできない。本実施形態は、秘密にすべき情報を外部に漏らさずに、ベクトルfと行列Wについての、Pを法とする行列方程式を求解する点に特徴がある。
【0082】
以下、端末装置102および制御装置103の各部が実行する求解処理について、詳細に説明する。図4は、本実施形態に係る求解処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0083】
まず、i = 1,…,tのそれぞれについて、端末装置102(Ui)において、端末暗号化部202は、秘密値w[1,i],…,w[t,i]を、公開鍵piにより暗号化した暗号化済値
e(pi,w[1,i]),…,e(pi,w[t,i])
を計算する(ステップS401)。
【0084】
上記のように、秘密値w[1,i],…,w[t,i]は、行列方程式の行列の要素をなすが、他者に対して秘密にされる。これを、自身の公開鍵piで暗号化するのである。
【0085】
一方、端末公開部203は、計算された暗号化済値を公開する(ステップS402)。各端末装置102が公開した暗号化済値は、他の端末装置102および制御装置103で知得可能となる。公開の手法としては、装置間の通信を利用するのが典型的であるが、共有記憶域を設け、ここに対して読み書きを行うことによって、他者に公開することとしても良い。
【0086】
さらに、制御装置103において、e生成部302は、端末装置102(U1,…,Ut)により公開された暗号化済値から、暗号化済行列e(W)および暗号化済ベクトルev(f)を、[数24][数25]により、
e(W)[j,i] = e(pi,w[j,i]) (1≦i≦t,1≦j≦t);
ev(f)[j] = e(pv,f[j]) (1≦j≦t)
のように生成する(ステップS403)。
【0087】
上記のように、e(pi,w[j,i])は、各端末装置102によって公開された情報であり、これを並べることによって、行列e(W)を生成する。
【0088】
一方、fは解くべき行列方程式に含まれるベクトルであり、各要素を、自身の公開鍵pvで暗号化するのである。
【0089】
さらに、制御装置103において、行列送信部303は、生成された行列e(W)および当該列ベクトルev(f)を端末装置102(U1)に送信する(ステップS404)。
【0090】
すると、i = 1,…,tのそれぞれについて、端末装置102(Ui)は、以下のように処理を行う。
【0091】
すなわち、端末装置102(Ui)の行列受信部204は、i = 1の場合(ステップS405;Yes)、制御装置103から送信された行列および列ベクトル
e(W),ev(f)
を受信する(ステップS406)。
【0092】
ついで、消去行列計算部205は、受信された行列のi列目を、秘密鍵siにより復号し、i行目を軸に当該復号された列をガウス消去する行列Liを計算する(ステップS407)。
【0093】
i = 1の場合、受信された行列のi列目は、順に、e(p1,w[1,1]),e(p1,w[2,1]),…,e(p1,w[t,1])であるから、秘密鍵で復号することができ、w[1,1],w[2,1],…,w[t,1]からなる列ベクトルが得られる。
【0094】
i = 1の場合、行列Liを、この列ベクトルに乗じると、w[1,1],w[2,1],…,w[t,1]からなる列ベクトルのi行目の要素は1となり、その他の要素は0となる。
【0095】
このような行列Liは、w[1,1],w[2,1],…,w[t,1]からなる列ベクトルが与えられれば、掃出し法によって、計算することができる。
【0096】
ついで、◎行列段階計算部206は、計算された行列Liと、受信された行列および列ベクトルと、から、
Li◎Li-1◎…◎L1◎e(W) = e(LiLi-1…L1W),Li◎Li-1◎…◎L1◎ev(f) = ev(LiLi-1…L1f)
を計算する(ステップS408)。
【0097】
上記のように、◎演算については、
L1◎e(W) = e(L1W),
L1◎ev(f) = ev(L1f)
が成立する。すなわち、◎演算の左側の項L1は、◎演算の右側の項のe(W),ev(f)の括弧の中に、乗算として繰り込むことができるのである。
【0098】
ついで、i = 1のように、i < tである場合(ステップS409;Yes)、行列送信部207は、計算された行列および列ベクトル
Li◎Li-1◎…◎L1◎e(W) = e(LiLi-1…L1W),Li◎Li-1◎…◎L1◎ev(f) = ev(LiLi-1…L1f)
を、端末装置102(Ui+1)に送信する(ステップS410)。
【0099】
一方、i > 1の場合(ステップS405;No)、行列受信部204は、端末装置102(Ui-1)から送信された行列および列ベクトル
Li-1◎…◎L1◎e(W) = e(Li-1…L1W),Li-1◎…◎L1◎ev(f) = ev(Li-1…L1f)
を受信する(ステップS411)。
【0100】
すると、端末装置102(Ui)において、消去行列計算部205は、受信された行列のi列目を、秘密鍵siにより復号し、i行目を軸に当該復号された列をガウス消去する行列Liを計算し(ステップS407)、◎行列段階計算部206は、計算された行列Liと、受信された行列および列ベクトルと、から、
Li◎Li-1◎…◎L1◎e(W) = e(LiLi-1…L1W),Li◎Li-1◎…◎L1◎ev(f) = ev(LiLi-1…L1f)
を計算し(ステップS408)、i < tである場合(ステップS409;Yes)、行列送信部207は、計算された行列および列ベクトル
Li◎Li-1◎…◎L1◎e(W) = e(LiLi-1…L1W),Li◎Li-1◎…◎L1◎ev(f) = ev(LiLi-1…L1f)
を、端末装置102(Ui+1)に送信する(ステップS410)。
【0101】
一方、i = tである場合(ステップS409;No)、行列送信部207は、計算された行列および列ベクトル
Lt◎Lt-1◎…◎L1◎e(W) = e(LtLt-1…L1W),Lt◎Lt-1◎…◎L1◎ev(f) = ev(LtLt-1…L1f)
を、制御装置103に送信する(ステップS412)。
【0102】
なお、i = tである場合、◎行列段階計算部206による行列の計算、ならびに、行列送信部207による行列の送信は、いずれも省略が可能である。
【0103】
すると、制御装置103において、行列受信部304は端末装置102(Ut)において計算された列ベクトル
ev(LtLt-1…L1f)
を受信する(ステップS413)。
【0104】
そして、求解部305が、秘密鍵sv
LtLt-1…L1f
に復号し、これを解ベクトルXとして(ステップS414)、本処理を終了する。
【0105】
このように処理を実行することで、各端末装置102における秘密情報を漏らさずに、当該秘密情報を用いた行列方程式を求解することが可能となる。
【0106】
なお、本発明の計算システム101において、制御装置103を、端末装置102(U1,…,Ut)のいずれかUkとすることができる。この場合、秘密鍵sv = sk,公開鍵pv = pkとすれば良い。
【実施例2】
【0107】
本実施形態は、上記実施形態を変形したものであり、計算システム101は、外部装置をさらに備えるように構成する。
【0108】
図5は、本実施形態に係る計算システム101の概要構成を示す模式図である。以下、本図を参照して説明する。
【0109】
本実施形態では、制御装置103からは、制御記憶部301と求解部305を省略し、そのかわりに、転送部311を追加する。
【0110】
外部装置501(V)は、外部記憶部511、行列受付部512、求解部513を備える。
【0111】
ここで、外部記憶部511には、ホモモルフィック暗号e(・,・)における秘密鍵svと公開鍵pvと、があらかじめ記憶される。すなわち、上記実施形態における制御記憶部301と同様の役割を果たす。外部装置501(V)は、公開鍵pvを、他者に対して公開している。
【0112】
本計算システムは、上記実施形態の行列方程式にかえて、[数26]に示すように、端末装置102(U1,…,Ut)のそれぞれに記憶される秘密値を要素とする(t+1)行(t+1)列の行列Wと、ZPに含まれる要素からなる(t+1)行の列ベクトルfと、からなる行列方程式
W[j,i] = w[j,i] (1≦j≦t,1≦i≦t);
W[t+1,i] = W[j,t+1] = 1 (1≦j≦t,1≦i≦t);
W[t+1,t+1] = 0;
WX = f (mod P)
の解ベクトルXを求めるものとする。
【0113】
このため、ステップS403において、制御装置103のe生成部302は、端末装置102(U1,…,Ut)により公開された暗号化済値および公開鍵piと、外部装置501(V)により公開された公開鍵pvと、により、暗号化済行列e(W)と暗号化済ベクトルev(f)を、[数27]に示すように、
e(W)[j,i] = e(pi,w[j,i]) (1≦j≦t,1≦i≦t);
e(W)[t+1,i] = e(pi,1) (1≦i≦t);
e(W)[j,t+1] = e(pv,1) (1≦j≦t);
e(W)[t+1,t+1] = e(pv,0);
ev(f)[j] = e(pv,f[j]) (1≦j≦t)
により生成する。
【0114】
さらに、制御装置103は、ステップS413において求解部305が求解を行うのにかえて、受信された行列および列ベクトル
Lt◎Lt-1…◎L1◎e(W) = e(LtLt-1…L1W),ev(LtLt-1…L1f)
を、転送部311が、外部装置501(V)に転送する。
【0115】
図6は、外部装置501(V)が実行する外部処理の制御の流れを示す説明図である。以下、本図を参照して説明する。
【0116】
外部装置501(V)において、行列受付部512は、制御装置103から転送された行列および列ベクトル
Lt◎Lt-1…◎L1◎e(W) = e(LtLt-1…L1W),ev(LtLt-1…L1f)
を受け付ける(ステップS601)。
【0117】
そして、消去行列計算部205は、受け付けられた行列のt+1列目を、秘密鍵svにより復号し、t+1行目を軸に当該復号された列をガウス消去する行列Lvを計算する(ステップS602)。Lvの計算は、Liの計算と同様に、掃き出し法を用いることができる。
【0118】
ついで、求解部305は、受信された列ベクトルを秘密鍵sv
LtLt-1…L1f
に復号して、これと計算された行列Lvと、から、乗算により、
LvLtLt-1…L1f
を計算して、これを解ベクトルXとし(ステップS603)、本処理を終了する。
【0119】
本実施形態によれば、上記実施例の行列方程式に類似する行列方程式を、それぞれが持つ秘密情報を漏洩させずに、求解することが可能となる。
【実施例3】
【0120】
本実施形態は、実施例2の態様に、さらに、その他の端末装置102(Ut+1,…,Um)ならびに中央装置を備えるように構成するものであり、u = mと設定したものである。
【0121】
図7は、本実施形態に係る計算システムの概要構成を示す模式図である。以下、本図を参照して説明する。
【0122】
本実施形態においては、t台の端末装置102(U1,…,Ut)ならびに制御装置103(U1,…,Utのいずれかの端末装置102により実現される。)からなる端末群701を含むm台の端末装置102(U1,…,Um)が、中央装置702、外部装置501と情報のやりとりを行い、端末群701の認証を外部装置501にて行うものである。
【0123】
本実施形態において、中央装置702は、値生成部711、値送信部712を備える。
【0124】
一方、端末群701は、実施例2の構成のほか、c生成部731、r計算部732、rc送信部733、b受信部734、f計算部735を備える。これらの要素は、制御装置103として機能する端末装置102(Uk)により実現されるのが典型的である。
【0125】
さらに、外部装置501は、rc受信部751、b選択部752、b送信部753、d計算部754、認証部755を備える。
【0126】
図8は、全端末装置102(U1,…,Um)の初期化を行う初期化処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0127】
まず、中央装置702において、値生成部711は、、j = 1,…,tおよびi = 1,…,mのそれぞれについて、ZPから値w[j,i]をランダムに一様に生成する(ステップS801)。
【0128】
そして、値送信部712は、i = 1,…,mのそれぞれについて、値w[1,i],…,w[t,i]を端末装置102(U[i])に送信する(ステップS802)。
【0129】
すると、i = 1,…,mについて、端末装置102(Ui)が中央装置702から送信された値w[1,i],…,w[t,i]を受信する(ステップS803)。
【0130】
そして、受信されたw[1,i],…,w[t,i]を、当該端末装置102の秘密値w[1,i],…,w[t,i]とし、y[1,i] = gw[1,i],…,y[t,i] = gw[t,i]を当該端末装置102の公開値とする(ステップS804)。
【0131】
全端末装置102は、中央装置702から入手した秘密値を保持することによって、中央装置702による「保証」を受けたことになる。
【0132】
このような状況下で、t台の端末装置102からなる端末群701の匿名認証を行う手法について、以下説明する。
【0133】
図9は、認証処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0134】
外部装置501による匿名認証を受けようとする端末群701において、c生成部731は、ZPから値c[0],c[1],…,c[m]をランダムに一様に生成する(ステップS901)。
【0135】
ついで、r計算部732は、生成された値c[0],c[1],…,c[m]と、公開された公開鍵と、から、j = 1,…,tのそれぞれについて、
r[j] = gc[0] Πi=1m y[j,i]c[i]
を計算する(ステップS902)。
【0136】
さらに、rc送信部733は、生成された値c[0],c[1],…,c[m]と、計算されたr[1],…,r[t]と、を、外部装置501に送信する(ステップS903)。
【0137】
一方、外部装置501において、rc受信部751は、端末群701から送信されたc[0],c[1],…,c[m]と、r[1],…,r[t]と、を受信する(ステップS904)。
【0138】
さらに、b選択部752は、ZPからbをランダムに選択する(ステップS905)。
【0139】
ついで、b送信部753は、選択されたbを、端末群701に送信する(ステップS906)。
【0140】
すると、端末群701において、b受信部734は、外部装置501から送信されたbを受信する(ステップS907)。
【0141】
さらに、j = 1,…,tのそれぞれについて、端末装置102(Ui)において、f計算部735は、
f[j] = c[0] + Σi=1t w[j,i]c[i]
を計算し、いずれかの端末装置102において
f[t+1] = b - Σi=t+1m c[i]
を計算する(ステップS908)。
【0142】
このように、端末群701において、行列W、列ベクトルfが用意できたこととなる。そこで、端末群701および外部装置501は、計算された列ベクトルfにより、上記実施例2の手法に基づいて、行列方程式
WX = f (mod P)
を求解する(ステップS909)。
【0143】
なお、この際には、列ベクトルfは、端末群701から外部装置501へ送受される。
【0144】
ついで、外部装置501において、d計算部754は、求解された結果により、j = 1,…,tのそれぞれについて、
d[j] = X[j]
とし、
d[0] = X[t+1]
とし、j = t+1,…,mのそれぞれについて
d[j] = c[j]
とする(ステップS910)。
【0145】
さらに、認証部755は、認証条件「受信されたr[1],…,r[t]と、得られたd[0],d[1],…,d[m]と、に対して、j = 1,…,tのすべてについて、
r[j] = gd[0] Πi=1m y[j,i]d[i]
であり、かつ、
b = Σi=1m d[i] (mod P)
である」が成立する場合(ステップS911;Yes)、端末群701の匿名認証を成功させ(ステップS912)、成立しない場合(ステップS911;No)、端末群701の匿名認証を失敗させる(ステップS913)。
【0146】
本実施形態によれば、行列方程式の求解を分散して行うことにより、中央装置702から端末装置102が入手した秘密情報を他者に明かさずに、匿名グループ認証を行うことができるようになる。
【産業上の利用可能性】
【0147】
本発明によれば、行列方程式の求解を分散して行って、匿名グループ認証を行うのに好適な、計算システム、計算方法、ならびに、これらをコンピュータ上にて実現するためのプログラムを提供することができる。
【符号の説明】
【0148】
101 計算システム
102 端末装置
103 制御装置
201 端末記憶部
202 端末暗号化部
203 端末公開部
204 行列受信部
205 消去行列計算部
206 ◎行列段階計算部
207 行列送信部
301 制御記憶部
302 e生成部
303 行列送信部
304 行列受信部
305 求解部
311 転送部
501 外部装置
511 外部記憶部
512 行列受付部
513 求解部
701 端末群
702 中央装置
711 値生成部
712 値送信部
731 c生成部
732 r計算部
733 rc送信部
734 b受信部
735 f計算部
751 rc受信部
752 b選択部
753 b送信部
754 d計算部
755 認証部

【特許請求の範囲】
【請求項1】
端末装置U1,…,Utと、制御装置と、を有する計算システムであって、当該計算システムでは、
列ベクトルvのj行目の要素をv[j]と表記し、
【数1】

行列Aのj行i列目の要素をA[j,i]と表記し、
【数2】

素数Pを法とする有限体ZPの要素aを、加法群(ZP,+)からPを法とする生成元gの巡回乗法群G = 〈g〉へのホモモルフィック暗号e(・,・)を用いて、公開鍵pにより暗号化した結果を、e(p,a)と表記すると、
ZPの任意の要素x,yと任意の公開鍵pは、
e(p,x)e(p,y) = e(p,x+y)
を満たし、
h行k列の行列Aのj行i列の要素A[j,i] = aj,iを、公開鍵p1,…,pkにより暗号化した行列e(A)を
e(A)[j,i] = e(pi,aj,i)
【数3】

と定義し、
h行の列ベクトルvのj行の要素v[j]を、公開鍵piにより暗号化した列ベクトルei(v)を、
ei(v)[j] = e(pi,v[j])
と定義し、
H行u列の行列Bのh行i列の要素B[h,i] = bh,iと、u行K列の行列Cのi行k列の要素C[i,k] = ci,kと、についての演算B◎Cを、
B◎C[h,k] = Πi=1u C[i,k]B[h,i]
【数4】

と定義すると、
行列A,Bについての演算B◎e(A)は、
B◎e(A)[h,k] = e(pki=1u B[h,i]A[i,k]) = Πi=1u e(pk,A[i,k])B[h,i]
すなわち
B◎e(A) = e(BA)
を満たし、
公開鍵piおよび列ベクトルvについての演算B◎ei(v)は、
B◎ei(v) = ei(Bv)
を満たし、
当該計算システムにおいて、
i = 1,…,uのそれぞれについて、前記端末装置Uiは、有限体ZPに含まれる秘密値w[1,i],…,w[u,i]と、ホモモルフィック暗号e(・,・)における秘密鍵siと公開鍵piと、があらかじめ記憶される端末記憶部を備え、
前記制御装置は、ホモモルフィック暗号e(・,・)における秘密鍵svと公開鍵pvと、があらかじめ記憶される制御記憶部を備え、
当該計算システムにおいて、前記端末装置U1,…,Utのそれぞれに記憶される秘密値を要素とするt行t列の行列Wと、ZPに含まれる要素からなるt行の列ベクトルfと、からなる行列方程式
W[j,i] = w[j,i];
WX = f (mod P)
【数5】

の解ベクトルXを求めるため、
(a)i = 1,…,tのそれぞれについて、前記端末装置Uiは、
秘密値w[1,i],…,w[t,i]を、公開鍵piにより暗号化した暗号化済値
e(pi,w[1,i]),…,e(pi,w[t,i])
を計算する端末暗号化部、
前記計算された暗号化済値を公開する端末公開部
を備え、
(b)前記制御装置は、
前記端末装置U1,…,Utにより公開された暗号化済値から、暗号化済行列e(W)および暗号化済ベクトルev(f)を
e(W)[j,i] = e(pi,w[j,i]) (1≦i≦t,1≦j≦t)
【数6】

ev(f)[j] = e(pv,f[j]) (1≦j≦t)
【数7】

により生成するe生成部、
前記生成された行列e(W)および当該列ベクトルev(f)を前記端末装置U1に送信する行列送信部
を備え、
(c)i = 1,…,tのそれぞれについて、前記端末装置Uiは、
i = 1の場合、前記制御装置から送信された行列および列ベクトル
e(W),ev(f)
を受信し、i > 1の場合、前記端末装置Ui-1から送信された行列および列ベクトル
Li-1◎…◎L1◎e(W) = e(Li-1…L1W),Li-1◎…◎L1◎ev(f) = ev(Li-1…L1f)
を受信する行列受信部、
前記受信された行列のi列目を、秘密鍵siにより復号し、i行目を軸に当該復号された列をガウス消去する行列Liを計算する消去行列計算部、
前記計算された行列Liと、前記受信された行列および列ベクトルと、から、
Li◎Li-1◎…◎L1◎e(W) = e(LiLi-1…L1W),Li◎Li-1◎…◎L1◎ev(f) = ev(LiLi-1…L1f)
を計算する◎行列段階計算部、
前記計算された行列および列ベクトル
Li◎Li-1◎…◎L1◎e(W) = e(LiLi-1…L1W),Li◎Li-1◎…◎L1◎ev(f) = ev(LiLi-1…L1f)
を、i < tの場合、前記端末装置Ui+1に送信する行列送信部
を備え、
(d)前記制御装置は、
前記端末装置Utにおいて計算された列ベクトル
ev(LtLt-1…L1f)
を秘密鍵sv
LtLt-1…L1f
に復号して、解ベクトルXとする求解部
を備えることを特徴とする計算システム。
【請求項2】
請求項1に記載の計算システムであって、
前記制御装置は、前記端末装置U1,…,UtのいずれかUkであり、秘密鍵sv = sk,公開鍵pv = pkとする
ことを特徴とする計算システム。
【請求項3】
請求項1に記載の計算システムであって、外部装置をさらに備え、
前記制御装置が制御記憶部を備えるのにかえて、前記外部装置は、ホモモルフィック暗号e(・,・)における秘密鍵svと公開鍵pvと、があらかじめ記憶される外部記憶部を備え、
当該計算システムは、当該t行t列の行列Wと、当該t行の列ベクトルfと、からなる行列方程式を解くのにかえて、前記端末装置U1,…,Utのそれぞれに記憶される秘密値を要素とする(t+1)行(t+1)列の行列Wと、ZPに含まれる要素からなる(t+1)行の列ベクトルfと、からなる行列方程式
W[j,i] = w[j,i] (1≦j≦t,1≦i≦t);
W[t+1,i] = W[j,t+1] = 1 (1≦j≦t,1≦i≦t);
W[t+1,t+1] = 0;
WX = f (mod P)
【数8】

の解ベクトルXを求めるため、
(b')前記制御装置において、前記e生成部は、前記端末装置U1,…,Utにより公開された暗号化済値および公開鍵piと、前記外部装置により公開された公開鍵pvと、により、暗号化済行列e(W)と暗号化済ベクトルev(f)を、
e(W)[j,i] = e(pi,w[j,i]) (1≦j≦t,1≦i≦t);
e(W)[t+1,i] = e(pi,1) (1≦i≦t);
e(W)[j,t+1] = e(pv,1) (1≦j≦t);
e(W)[t+1,t+1] = e(pv,0)
【数9】

ev(f)[j] = e(pv,f[j]) (1≦j≦t)
により生成し、
(d')前記制御装置は、前記求解部にかえて前記端末装置Utにおいて計算された行列および列ベクトル
Lt◎Lt-1…◎L1◎e(W) = e(LtLt-1…L1W),ev(LtLt-1…L1f)
を、前記外部装置に転送する転送部を備え、
(e)前記外部装置は、
前記制御装置から転送された行列および列ベクトル
Lt◎Lt-1…◎L1◎e(W) = e(LtLt-1…L1W),ev(LtLt-1…L1f)
を受け付ける行列受付部、
前記受け付けられた行列のt+1列目を、秘密鍵svにより復号し、t+1行目を軸に当該復号された列をガウス消去する行列Lvを計算する消去行列計算部、
前記受信された列ベクトルを秘密鍵sv
LtLt-1…L1f
に復号して、これと前記計算された行列Lvと、から、
LvLtLt-1…L1f
を計算して、これを解ベクトルXとする求解部
を備えることを特徴とする計算システム。
【請求項4】
請求項3に記載の計算システムであって、端末装置Ut+1,…,Umと、中央装置と、をさらに備え、
(f)前記中央装置は、j = 1,…,tおよびi = 1,…,mのそれぞれについて、ZPから値w[j,i]をランダムに一様に生成する値生成部、
i = 1,…,mのそれぞれについて、値w[1,i],…,w[t,i]を前記端末装置U[i]に送信する値送信部
を備え、
(g)i = 1,…,mについて、前記端末装置Uiは、前記中央装置から送信された値w[1,i],…,w[t,i]を受信する秘密値受信部
を備え、
前記受信されたw[1,i],…,w[t,i]を、当該端末装置の秘密値w[1,i],…,w[t,i]とし、
y[1,i] = gw[1,i],…,y[t,i] = gw[t,i]を当該端末装置の公開値とし、
(h)前記端末装置U1,…,Utおよび前記制御装置は、端末群を構成し、当該端末群は、
ZPから値c[0],c[1],…,c[m]をランダムに一様に生成するc生成部、
前記生成された値c[0],c[1],…,c[m]と、前記公開された公開鍵と、から、j = 1,…,tのそれぞれについて、
r[j] = gc[0] Πi=1m y[j,i]c[i]
を計算するr計算部、
前記生成された値c[0],c[1],…,c[m]と、前記計算されたr[1],…,r[t]と、を、前記外部装置に送信するrc送信部
を備え、
(i)前記外部装置は、
前記端末群から送信されたc[0],c[1],…,c[m]と、r[1],…,r[t]と、を受信するrc受信部、
ZPからbをランダムに選択するb選択部、
前記選択されたbを、前記端末群に送信するb送信部
を備え、
(j)前記端末群は、
前記外部装置から送信されたbを受信するb受信部、
j = 1,…,tのそれぞれについて、前記端末装置Uiにおいて、
f[j] = c[0] + Σi=1t w[j,i]c[i]
を計算し、前記端末群のいずれかの端末装置において
f[t+1] = b - Σi=t+1m c[i]
を計算するf計算部
を備え、
(k)前記端末群および前記外部装置は、前記計算された列ベクトルfにより、当該行列方程式
WX = f (mod P)
を求解し、
(l)前記外部装置は、
前記求解された結果により、j = 1,…,tのそれぞれについて、
d[j] = X[j]
とし、
d[0] = X[t+1]
とし、j = t+1,…,mのそれぞれについて
d[j] = c[j]
とするd計算部、
前記受信されたr[1],…,r[t]と、前記得られたd[0],d[1],…,d[m]と、に対して、j = 1,…,tのすべてについて、
r[j] = gd[0] Πi=1m y[j,i]d[i]
が成立し、かつ、
b = Σi=1m d[i] (mod P)
が成立する場合、端末群の匿名認証を成功させる認証部
を備える
ことを特徴とする計算システム。
【請求項5】
端末装置U1,…,Utと、制御装置と、を有する計算システムが実行する計算方法であって、当該計算方法では、
列ベクトルvのj行目の要素をv[j]と表記し、
【数10】

行列Aのj行i列目の要素をA[j,i]と表記し、
【数11】

素数Pを法とする有限体ZPの要素aを、加法群(ZP,+)からPを法とする生成元gの巡回乗法群G = 〈g〉へのホモモルフィック暗号e(・,・)を用いて、公開鍵pにより暗号化した結果を、e(p,a)と表記すると、
ZPの任意の要素x,yと任意の公開鍵pは、
e(p,x)e(p,y) = e(p,x+y)
を満たし、
h行k列の行列Aのj行i列の要素A[j,i] = aj,iを、公開鍵p1,…,pkにより暗号化した行列e(A)を
e(A)[j,i] = e(pi,aj,i)
【数12】

と定義し、
h行の列ベクトルvのj行の要素v[j]を、公開鍵piにより暗号化した列ベクトルei(v)を、
ei(v)[j] = e(pi,v[j])
と定義し、
H行u列の行列Bのh行i列の要素B[h,i] = bh,iと、u行K列の行列Cのi行k列の要素C[i,k] = ci,kと、についての演算B◎Cを、
B◎C[h,k] = Πi=1u C[i,k]B[h,i]
【数13】

と定義すると、
行列A,Bについての演算B◎e(A)は、
B◎e(A)[h,k] = e(pki=1u B[h,i]A[i,k]) = Πi=1u e(pk,A[i,k])B[h,i]
すなわち
B◎e(A) = e(BA)
を満たし、
公開鍵piおよび列ベクトルvについての演算B◎ei(v)は、
B◎ei(v) = ei(Bv)
を満たし、
当該計算方法において、
i = 1,…,uのそれぞれについて、前記端末装置Uiは、有限体ZPに含まれる秘密値w[1,i],…,w[u,i]と、ホモモルフィック暗号e(・,・)における秘密鍵siと公開鍵piと、があらかじめ記憶される端末記憶部、端末暗号化部、端末公開部、行列受信部、消去行列計算部、◎行列段階計算部、行列送信部を備え、
前記制御装置は、ホモモルフィック暗号e(・,・)における秘密鍵svと公開鍵pvと、があらかじめ記憶される制御記憶部、e生成部、行列送信部、求解部を備え、
当該計算方法において、前記端末装置U1,…,Utのそれぞれに記憶される秘密値を要素とするt行t列の行列Wと、ZPに含まれる要素からなるt行の列ベクトルfと、からなる行列方程式
W[j,i] = w[j,i];
WX = f (mod P)
【数14】

の解ベクトルXを求めるため、
(a)i = 1,…,tのそれぞれについて、前記端末装置Uiにおいて、
前記端末暗号化部が、秘密値w[1,i],…,w[t,i]を、公開鍵piにより暗号化した暗号化済値
e(pi,w[1,i]),…,e(pi,w[t,i])
を計算する端末暗号化工程
前記端末公開部が、前記計算された暗号化済値を公開する端末公開工程
を備え、
(b)前記制御装置において、
前記e生成部が、前記端末装置U1,…,Utにより公開された暗号化済値から、暗号化済行列e(W)および暗号化済ベクトルev(f)を
e(W)[j,i] = e(pi,w[j,i]) (1≦i≦t,1≦j≦t)
【数15】

ev(f)[j] = e(pv,f[j]) (1≦j≦t)
【数16】

により生成するe生成工程、
前記行列送信部が、前記生成された行列e(W)および当該列ベクトルev(f)を前記端末装置U1に送信する行列送信工程
を備え、
(c)i = 1,…,tのそれぞれについて、前記端末装置Uiにおいて、
前記行列受信部が、i = 1の場合、前記制御装置から送信された行列および列ベクトル
e(W),ev(f)
を受信し、i > 1の場合、前記端末装置Ui-1から送信された行列および列ベクトル
Li-1◎…◎L1◎e(W) = e(Li-1…L1W),Li-1◎…◎L1◎ev(f) = ev(Li-1…L1f)
を受信する行列受信工程、
前記消去行列計算部が、前記受信された行列のi列目を、秘密鍵siにより復号し、i行目を軸に当該復号された列をガウス消去する行列Liを計算する消去行列計算工程、
前記◎行列段階計算部が、前記計算された行列Liと、前記受信された行列および列ベクトルと、から、
Li◎Li-1◎…◎L1◎e(W) = e(LiLi-1…L1W),Li◎Li-1◎…◎L1◎ev(f) = ev(LiLi-1…L1f)
を計算する◎行列段階計算工程、
前記行列送信部が、前記計算された行列および列ベクトル
Li◎Li-1◎…◎L1◎e(W) = e(LiLi-1…L1W),Li◎Li-1◎…◎L1◎ev(f) = ev(LiLi-1…L1f)
を、i < tの場合、前記端末装置Ui+1に送信する行列送信工程
を備え、
(d)前記制御装置において、
前記求解部が、前記端末装置Utにおいて計算された列ベクトル
ev(LtLt-1…L1f)
を秘密鍵sv
LtLt-1…L1f
に復号して、解ベクトルXとする求解工程
を備えることを特徴とする計算方法。
【請求項6】
請求項5に記載の計算方法であって、
前記制御装置は、前記端末装置U1,…,UtのいずれかUkであり、秘密鍵sv = sk,公開鍵pv = pkとする
ことを特徴とする計算方法。
【請求項7】
請求項5に記載の計算方法であって、外部装置がさらに実行し、
前記制御装置が制御記憶部を備えるのにかえて、前記外部装置は、ホモモルフィック暗号e(・,・)における秘密鍵svと公開鍵pvと、があらかじめ記憶される外部記憶部、行列受付部、消去行列計算部、求解部を備え、
前記制御装置は、前記求解部にかえて転送部を備え、
当該計算方法は、当該t行t列の行列Wと、当該t行の列ベクトルfと、からなる行列方程式を解くのにかえて、前記端末装置U1,…,Utのそれぞれに記憶される秘密値を要素とする(t+1)行(t+1)列の行列Wと、ZPに含まれる要素からなる(t+1)行の列ベクトルfと、からなる行列方程式
W[j,i] = w[j,i] (1≦j≦t,1≦i≦t);
W[t+1,i] = W[j,t+1] = 1 (1≦j≦t,1≦i≦t);
W[t+1,t+1] = 0;
WX = f (mod P)
【数17】

の解ベクトルXを求めるため、
(b')前記制御装置において、前記e生成工程では、前記端末装置U1,…,Utにより公開された暗号化済値および公開鍵piと、前記外部装置により公開された公開鍵pvと、により、暗号化済行列e(W)と暗号化済ベクトルev(f)を、
e(W)[j,i] = e(pi,w[j,i]) (1≦j≦t,1≦i≦t);
e(W)[t+1,i] = e(pi,1) (1≦i≦t);
e(W)[j,t+1] = e(pv,1) (1≦j≦t);
e(W)[t+1,t+1] = e(pv,0)
【数18】

ev(f)[j] = e(pv,f[j]) (1≦j≦t)
により生成し、
(d')前記制御装置において、前記転送部が、前記端末装置Utにおいて計算された行列および列ベクトル
Lt◎Lt-1…◎L1◎e(W) = e(LtLt-1…L1W),ev(LtLt-1…L1f)
を、前記外部装置に転送する転送工程を備え、
(e)前記外部装置において、
前記行列受付部が、前記制御装置から転送された行列および列ベクトル
Lt◎Lt-1…◎L1◎e(W) = e(LtLt-1…L1W),ev(LtLt-1…L1f)
を受け付ける行列受付工程、
前記消去行列計算部が、前記受け付けられた行列のt+1列目を、秘密鍵svにより復号し、t+1行目を軸に当該復号された列をガウス消去する行列Lvを計算する消去行列計算工程、
前記求解部が、前記受信された列ベクトルを秘密鍵sv
LtLt-1…L1f
に復号して、これと前記計算された行列Lvと、から、
LvLtLt-1…L1f
を計算して、これを解ベクトルXとする求解工程
を備えることを特徴とする計算システム。
【請求項8】
請求項7に記載の計算方法であって、端末装置Ut+1,…,Umと、中央装置と、がさらに実行し、
前記中央装置は、値生成部、値送信部を備え、
i = 1,…,mについて、前記端末装置Uiは、秘密値受信部を備え、
前記端末装置U1,…,Utおよび前記制御装置は、端末群を構成し、当該端末群は、c生成部、r計算部、rc送信部、b受信部、f計算部を備え、
前記外部装置は、rc受信部、b選択部、b送信部、d計算部、認証部を備え、
(f)前記中央装置において、
前記値生成部が、j = 1,…,tおよびi = 1,…,mのそれぞれについて、ZPから値w[j,i]をランダムに一様に生成する値生成工程、
前記値送信部が、i = 1,…,mのそれぞれについて、値w[1,i],…,w[t,i]を前記端末装置U[i]に送信する値送信工程
を備え、
(g)i = 1,…,mについて、前記端末装置Uiにおいて、
前記秘密値受信部が、前記中央装置から送信された値w[1,i],…,w[t,i]を受信する秘密値受信工程
を備え、
前記受信されたw[1,i],…,w[t,i]を、当該端末装置の秘密値w[1,i],…,w[t,i]とし、
y[1,i] = gw[1,i],…,y[t,i] = gw[t,i]を当該端末装置の公開値とし、
(h)前記端末群において、
前記c生成部が、ZPから値c[0],c[1],…,c[m]をランダムに一様に生成するc生成工程、
前記r計算部が、前記生成された値c[0],c[1],…,c[m]と、前記公開された公開鍵と、から、j = 1,…,tのそれぞれについて、
r[j] = gc[0] Πi=1m y[j,i]c[i]
を計算するr計算工程、
前記rc送信部が、前記生成された値c[0],c[1],…,c[m]と、前記計算されたr[1],…,r[t]と、を、前記外部装置に送信するrc送信工程
を備え、
(i)前記外部装置において、
前記rc受信部が、前記端末群から送信されたc[0],c[1],…,c[m]と、r[1],…,r[t]と、を受信するrc受信工程、
前記b選択部が、ZPからbをランダムに選択するb選択工程、
前記b送信部が、前記選択されたbを、前記端末群に送信するb送信工程
を備え、
(j)前記端末群において、
前記b受信部が、前記外部装置から送信されたbを受信するb受信工程、
j = 1,…,tのそれぞれについて、前記端末装置Uiにおいて、
f[j] = c[0] + Σi=1t w[j,i]c[i]
を計算し、前記端末群のいずれかの端末装置において
f[t+1] = b - Σi=t+1m c[i]
を計算するf計算工程
を備え、
(k)前記端末群および前記外部装置において、前記計算された列ベクトルfにより、当該行列方程式
WX = f (mod P)
を求解し、
(l)前記外部装置において、
前記d計算部が、前記求解された結果により、j = 1,…,tのそれぞれについて、
d[j] = X[j]
とし、
d[0] = X[t+1]
とし、j = t+1,…,mのそれぞれについて
d[j] = c[j]
とするd計算工程、
前記認証部が、前記受信されたr[1],…,r[t]と、前記得られたd[0],d[1],…,d[m]と、に対して、j = 1,…,tのすべてについて、
r[j] = gd[0] Πi=1m y[j,i]d[i]
が成立し、かつ、
b = Σi=1m d[i] (mod P)
が成立する場合、前記端末群の匿名認証を成功させる認証工程
を備える
ことを特徴とする計算方法。
【請求項9】
コンピュータを、請求項1から4のいずれか1項に記載の端末装置の各部として機能させることを特徴とするプログラム。
【請求項10】
コンピュータを、請求項1から4のいずれか1項に記載の制御装置の各部として機能させることを特徴とするプログラム。
【請求項11】
コンピュータを、請求項3または4に記載の外部装置の各部として機能させることを特徴とするプログラム。
【請求項12】
コンピュータを、請求項4に記載の中央装置の各部として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−8055(P2011−8055A)
【公開日】平成23年1月13日(2011.1.13)
【国際特許分類】
【出願番号】特願2009−151902(P2009−151902)
【出願日】平成21年6月26日(2009.6.26)
【出願人】(301022471)独立行政法人情報通信研究機構 (1,071)
【Fターム(参考)】