(57)【要約】【課題】設定された複数のPINのうち、認証時に１つのPINが正しく入力された場合に認証することができる認証技術を提供する。【解決手段】クライアント装置は、端末情報f(a)と端末情報g(a)を記録する記録部と、端末情報f(a)、g(a)を用いて、ユーザが入力した識別子IDとPINαから認証情報f(α)、g(α)を生成する認証情報生成部を含み、サーバ装置は、検証式e(P1,Q)・e(P2,sQ)を記録する記録部と、検証式e(P1,Q)・e(P2,sQ)を用いて、認証情報f(α)、g(α)から検証値e(f(α),Q)・e(g(α),sQ)を計算し、e(f(α),Q)・e(g(α),sQ)=e(A,Q)0が成立する場合は認証結果を成功とする認証情報検証部を含む。【選択図】図５
2018207441.tif 000002
【特許請求の範囲】
【請求項１】
nを１以上の整数、G1、G2を素数位数qの群、Z*q={0,1,…,q-1}、s∈Z*qをペアリング暗号のマスター秘密鍵、e:G1×G2→Z*qをペアリング写像、HID(id)をユーザの識別子idのハッシュ値をとって群G1の点にマッピングする関数、IDをユーザの識別子、A=HID(ID)とし、
αi∈Z*q(1≦i≦n)を設定されたPINとし、
クライアント装置、サーバ装置を含む認証システムであって、
前記クライアント装置は、
端末情報f(a)と端末情報g(a)を記録する記録部と、
【数２４】
2018207441.tif 000026
（ただし、r∈Z*qは乱数、h(a)は１対１関数）
前記端末情報f(a)、g(a)を用いて、ユーザが入力した識別子IDとPINαから認証情報f(α)、g(α)を生成する認証情報生成部を含み、
前記サーバ装置は、
検証式e(P1,Q)・e(P2,sQ)（ただし、Qは群G2の点）を記録する記録部と、
前記検証式e(P1,Q)・e(P2,sQ)を用いて、前記認証情報f(α)、g(α)から検証値e(f(α),Q)・e(g(α),sQ)を計算し、e(f(α),Q)・e(g(α),sQ)=e(A,Q)0が成立する場合は認証結果を成功とする認証情報検証部を含む
ことを特徴とする認証システム。
【請求項２】
nを１以上の整数、G1、G2を素数位数qの群、Z*q={0,1,…,q-1}、si∈Z*q (1≦i≦n)をペアリング暗号のマスター秘密鍵、e:G1×G2→Z*qをペアリング写像、HID(id)をユーザの識別子idのハッシュ値をとって群G1の点にマッピングする関数、IDをユーザの識別子、A=HID(ID)とし、
αi∈Z*q(1≦i≦n)を設定されたPINとし、
クライアント装置、サーバ装置を含む認証システムであって、
前記クライアント装置は、
端末情報f(a)を記録する記録部と、
【数２５】
2018207441.tif 000027
（ただし、r, r’∈Z*qは乱数）
前記端末情報f(a)を用いて、ユーザが入力した識別子IDとPINαから認証情報f(α)を生成する認証情報生成部を含み、
前記サーバ装置は、
検証式e(P1,Q)・e(P2,s1Q)（ただし、Qは群G2の点）を記録する記録部と、
前記検証式e(P1,Q)・e(P2,s1Q)を用いて、前記識別子IDと前記認証情報f(α)から検証値e(f(α),Q)・e(A,s1Q)を計算し、e(f(α),Q)・e(A,s1Q)=e(A,Q)0、e(f(α),Q)・e(A,s1Q)=e(A,Q)s_1-s_2、…、e(f(α),Q)・e(A,s1Q)=e(A,Q)s_1-s_nのいずれかが成立する場合は認証結果を成功とする認証情報検証部を含む
ことを特徴とする認証システム。
【請求項３】
nを１以上の整数、G1、G2を素数位数qの群、Z*q={0,1,…,q-1}、s∈Z*qをペアリング暗号のマスター秘密鍵、e:G1×G2→Z*qをペアリング写像、HID(id)をユーザの識別子idのハッシュ値をとって群G1の点にマッピングする関数、IDをユーザの識別子、A=HID(ID)、H(x)をZ*qを値域とするハッシュ関数、||を連結演算子とし、
αi∈Z*q(1≦i≦n)を設定されたPINとし、
クライアント装置、サーバ装置を含む認証システムであって、
前記クライアント装置は、
端末情報f(a)と端末情報g(a)を記録する記録部と、
【数２６】
2018207441.tif 000028
（ただし、r∈Z*qは乱数、h(a)は１対１関数）
前記端末情報f(a)、g(a)を用いて、ユーザが入力した識別子IDとPINαから認証情報U=g(α)、W=xg(α)（ただし、x∈Z*qは乱数）、V=(x+y)f(α)（ただし、y=H(ID||U||W)）を生成する認証情報生成部を含み、
前記サーバ装置は、
検証式e(P1,Q)・e(P2,sQ)（ただし、Qは群G2の点）を記録する記録部と、
前記識別子IDと前記認証情報U、Wからハッシュ値y=H(ID||U||W)を計算し、前記検証式e(P1,Q)・e(P2,sQ)を用いて、前記認証情報U、W、Vから検証値e(V,Q)・e(W+yU,sQ)を計算し、e(V,Q)・e(W+yU,sQ)=e(A,Q)0が成立する場合は認証結果を成功とする認証情報検証部を含む
ことを特徴とする認証システム。
【請求項４】
nを１以上の整数、G1、G2を素数位数qの群、Z*q={0,1,…,q-1}、si∈Z*q (1≦i≦n)をペアリング暗号のマスター秘密鍵、e:G1×G2→Z*qをペアリング写像、HID(id)をユーザの識別子idのハッシュ値をとって群G1の点にマッピングする関数、IDをユーザの識別子、A=HID(ID)、H(x)をZ*qを値域とするハッシュ関数、||を連結演算子とし、
αi∈Z*q(1≦i≦n)を設定されたPINとし、
クライアント装置、サーバ装置を含む認証システムであって、
前記クライアント装置は、
端末情報f(a)を記録する記録部と、
【数２７】
2018207441.tif 000029
（ただし、r, r’∈Z*qは乱数）
前記端末情報f(a)を用いて、ユーザが入力した識別子IDとPINαから認証情報W=xg(α)（ただし、x∈Z*qは乱数）、V=(x+y)f(α)（ただし、y=H(ID||W)）を生成する認証情報生成部を含み、
前記サーバ装置は、
検証式e(P1,Q)・e(P2,s1Q)（ただし、Qは群G2の点）を記録する記録部と、
前記識別子IDと前記認証情報Wからハッシュ値y=H(ID||W)を計算し、前記検証式e(P1,Q)・e(P2,s1Q)を用いて、前記識別子IDと前記認証情報W、Vから検証値e(V,Q)・e(W+yA,s1Q)を計算し、e(V,Q)・e(W+yA,s1Q)=e(A,Q)0、e(V,Q)・e(W+yA,s1Q)=e(A,Q)s_1-s_2、…、e(V,Q)・e(W+yA,s1Q)=e(A,Q)s_1-s_nのいずれかが成立する場合は認証結果を成功とする認証情報検証部を含む
ことを特徴とする認証システム。
【請求項５】
請求項１ないし４のいずれか１項に記載の認証システムに含まれるクライアント装置。
【請求項６】
請求項１ないし４のいずれか１項に記載の認証システムに含まれるサーバ装置。
【請求項７】
nを１以上の整数、G1、G2を素数位数qの群、Z*q={0,1,…,q-1}、s∈Z*qをペアリング暗号のマスター秘密鍵、e:G1×G2→Z*qをペアリング写像、HID(id)をユーザの識別子idのハッシュ値をとって群G1の点にマッピングする関数、IDをユーザの識別子、A=HID(ID)とし、
αi∈Z*q(1≦i≦n)を設定されたPINとし、
クライアント装置、サーバ装置を含む認証システムが実行する認証方法であって、
前記クライアント装置の記録部は、端末情報f(a)と端末情報g(a)を記録し、
【数２８】
2018207441.tif 000030
（ただし、r∈Z*qは乱数、h(a)は１対１関数）
前記サーバ装置の記録部は、検証式e(P1,Q)・e(P2,sQ)（ただし、Qは群G2の点）を記録し、
前記クライアント装置が、前記端末情報f(a)、g(a)を用いて、ユーザが入力した識別子IDとPINαから認証情報f(α)、g(α)を生成する認証情報生成ステップと、
前記サーバ装置が、前記検証式e(P1,Q)・e(P2,sQ)を用いて、前記認証情報f(α)、g(α)から検証値e(f(α),Q)・e(g(α),sQ)を計算し、e(f(α),Q)・e(g(α),sQ)=e(A,Q)0が成立する場合は認証結果を成功とする認証情報検証ステップを含む
ことを特徴とする認証方法。
【請求項８】
請求項５に記載のクライアント装置、請求項６に記載のサーバ装置のいずれかの装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証技術に関し、特に多要素認証技術に関する。
【背景技術】
【０００２】
近年、パスワード認証より安全なユーザ認証方式として、多要素認証が注目されている。多要素認証では、複数の認証要素（例えば、パスワード、端末情報、生体情報）を用いてユーザを認証する。複数の認証要素を用いることにより、パスワードが漏洩した場合や脆弱なパスワードを設定した場合であっても、その他の認証要素で十分に安全性が確保されていれば、攻撃者はユーザになりすますことができず、不正にサービスに対してログインすることはできない。
【０００３】
認証時に常に複数の認証要素を用いる必要があるため、ユーザの記憶に基づく情報では忘却、ユーザの所有に基づく情報では紛失、ユーザの生体情報では怪我や生体情報読み取り機器の故障による使用不可などにより認証要素のいくつかが使用できなくなると、ユーザ認証ができないという問題もあるが、多要素認証は、パスワード認証より安全性の面で優れるため、採用されるケースが増えつつある。
【０００４】
このような多要素認証の一つが、M-Pinプロトコルである（非特許文献１）。M-Pinプロトコルでは、PINを用いて生成した複数の情報により認証を行う。M-Pinプロトコルのメリットの一つとして、ユーザはPIN（例えば、４ケタの数字）を記憶するだけで安全な認証が行えることが挙げられる。また、サービス提供者にとっては、パスワードのようなユーザの秘密情報を保持しなくても認証が行えるというメリットがある。M-Pinプロトコルを実装したユーザ認証システムとして、MILAGRO-MFA(Multi-Factor Authentication)が存在する（非特許文献２）。MILAGRO-MFAでは、PINと端末情報の二つの情報で認証を行う（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Michael Scott, “M-Pin: A Multi-Factor Zero Knowledge Authentication Protocol”, [online], ［平成２９年５月１５日検索］, インターネット<URL: https://www.miracl.com/hubfs/mpin4.pdf>
【非特許文献２】Apache MILAGRO (incubating), [online], ［平成２９年５月１５日検索］, インターネット<URL: http://docs.milagro.io/en/>
【発明の概要】
【発明が解決しようとする課題】
【０００６】
M-Pinプロトコルでは、αをユーザが設定したPINとして、認証に必要なユーザ秘密鍵sAを楕円曲線上の加算により(s-α)AとαAに分割し、(s-α)Aを端末情報として保持する。認証時、ユーザが入力したPINと端末に記録してある端末情報(s-α)Aを用い、ユーザ秘密鍵sAを復元する。つまり、M-Pinプロトコルでは１つのPINをユーザが正しく記憶していれば、認証を行うことができる。しかし、この唯一のPINを忘却すると、認証を行うことができなくなる。
【０００７】
この問題を解決するために、例えば、複数のPINを設定しておき、そのうちいくつかを用いて認証成功と判断するようにすることが考えられる。
【０００８】
そこで本発明では、設定された複数のPINのうち、認証時に１つのPINが正しく入力された場合に認証することができる認証技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一態様は、nを１以上の整数、G1、G2を素数位数qの群、Z*q={0,1,…,q-1}、s∈Z*qをペアリング暗号のマスター秘密鍵、e:G1×G2→Z*qをペアリング写像、HID(id)をユーザの識別子idのハッシュ値をとって群G1の点にマッピングする関数、IDをユーザの識別子、A=HID(ID)とし、αi∈Z*q (1≦i≦n)を設定されたPINとし、クライアント装置、サーバ装置を含む認証システムであって、前記クライアント装置は、端末情報f(a)と端末情報g(a)を記録する記録部と、
【数１】
2018207441.tif 000003
（ただし、r∈Z*qは乱数、h(a)は１対１関数）
前記端末情報f(a)、g(a)を用いて、ユーザが入力した識別子IDとPINαから認証情報f(α)、g(α)を生成する認証情報生成部を含み、前記サーバ装置は、検証式e(P1,Q)・e(P2,sQ)（ただし、Qは群G2の点）を記録する記録部と、前記検証式e(P1,Q)・e(P2,sQ)を用いて、前記認証情報f(α)、g(α)から検証値e(f(α),Q)・e(g(α),sQ)を計算し、e(f(α),Q)・e(g(α),sQ)=e(A,Q)0が成立する場合は認証結果を成功とする認証情報検証部を含むことを特徴とする。
【００１０】
本発明の一態様は、nを１以上の整数、G1、G2を素数位数qの群、Z*q={0,1,…,q-1}、si∈Z*q(1≦i≦n)をペアリング暗号のマスター秘密鍵、e:G1×G2→Z*qをペアリング写像、HID(id)をユーザの識別子idのハッシュ値をとって群G1の点にマッピングする関数、IDをユーザの識別子、A=HID(ID)とし、αi∈Z*q (1≦i≦n)を設定されたPINとし、クライアント装置、サーバ装置を含む認証システムであって、前記クライアント装置は、端末情報f(a)を記録する記録部と、
【数２】
2018207441.tif 000004
（ただし、r, r’∈Z*qは乱数）
前記端末情報f(a)を用いて、ユーザが入力した識別子IDとPINαから認証情報f(α)を生成する認証情報生成部を含み、前記サーバ装置は、検証式e(P1,Q)・e(P2,s1Q)（ただし、Qは群G2の点）を記録する記録部と、前記検証式e(P1,Q)・e(P2,s1Q)を用いて、前記識別子IDと前記認証情報f(α)から検証値e(f(α),Q)・e(A,s1Q)を計算し、e(f(α),Q)・e(A,s1Q)=e(A,Q)0、e(f(α),Q)・e(A,s1Q)=e(A,Q)s_1-s_2、…、e(f(α),Q)・e(A,s1Q)=e(A,Q)s_1-s_nのいずれかが成立する場合は認証結果を成功とする認証情報検証部を含むことを特徴とする。
【００１１】
本発明の一態様は、nを１以上の整数、G1、G2を素数位数qの群、Z*q={0,1,…,q-1}、s∈Z*qをペアリング暗号のマスター秘密鍵、e:G1×G2→Z*qをペアリング写像、HID(id)をユーザの識別子idのハッシュ値をとって群G1の点にマッピングする関数、IDをユーザの識別子、A=HID(ID)、H(x)をZ*qを値域とするハッシュ関数、||を連結演算子とし、αi∈Z*q (1≦i≦n)を設定されたPINとし、クライアント装置、サーバ装置を含む認証システムであって、前記クライアント装置は、端末情報f(a)と端末情報g(a)を記録する記録部と、
【数３】
2018207441.tif 000005
（ただし、r∈Z*qは乱数、h(a)は１対１関数）
前記端末情報f(a)、g(a)を用いて、ユーザが入力した識別子IDとPINαから認証情報U=g(α)、W=xg(α)（ただし、x∈Z*qは乱数）、V=(x+y)f(α)（ただし、y=H(ID||U||W)）を生成する認証情報生成部を含み、前記サーバ装置は、検証式e(P1,Q)・e(P2,sQ)（ただし、Qは群G2の点）を記録する記録部と、前記識別子IDと前記認証情報U、Wからハッシュ値y=H(ID||U||W)を計算し、前記検証式e(P1,Q)・e(P2,sQ)を用いて、前記認証情報U、W、Vから検証値e(V,Q)・e(W+yU,sQ)を計算し、e(V,Q)・e(W+yU,sQ)=e(A,Q)0が成立する場合は認証結果を成功とする認証情報検証部を含むことを特徴とする。
【００１２】
本発明の一態様は、nを１以上の整数、G1、G2を素数位数qの群、Z*q={0,1,…,q-1}、si∈Z*q(1≦i≦n)をペアリング暗号のマスター秘密鍵、e:G1×G2→Z*qをペアリング写像、HID(id)をユーザの識別子idのハッシュ値をとって群G1の点にマッピングする関数、IDをユーザの識別子、A=HID(ID)、H(x)をZ*qを値域とするハッシュ関数、||を連結演算子とし、αi∈Z*q (1≦i≦n)を設定されたPINとし、クライアント装置、サーバ装置を含む認証システムであって、前記クライアント装置は、端末情報f(a)を記録する記録部と、
【数４】
2018207441.tif 000006
（ただし、r, r’∈Z*qは乱数）
前記端末情報f(a)を用いて、ユーザが入力した識別子IDとPINαから認証情報W=xg(α)（ただし、x∈Z*qは乱数）、V=(x+y)f(α)（ただし、y=H(ID||W)）を生成する認証情報生成部を含み、前記サーバ装置は、検証式e(P1,Q)・e(P2,s1Q)（ただし、Qは群G2の点）を記録する記録部と、前記識別子IDと前記認証情報Wからハッシュ値y=H(ID||W)を計算し、前記検証式e(P1,Q)・e(P2,s1Q)を用いて、前記識別子IDと前記認証情報W、Vから検証値e(V,Q)・e(W+yA,s1Q)を計算し、e(V,Q)・e(W+yA,s1Q)=e(A,Q)0、e(V,Q)・e(W+yA,s1Q)=e(A,Q)s_1-s_2、…、e(V,Q)・e(W+yA,s1Q)=e(A,Q)s_1-s_nのいずれかが成立する場合は認証結果を成功とする認証情報検証部を含むことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、設定された複数のPINのうち、認証時に１つのPINが正しく入力された場合に認証することができる。
【図面の簡単な説明】
【００１４】
【図１】認証システム１００の構成の一例を示すブロック図。
【図２】クライアント装置２００の構成の一例を示すブロック図。
【図３】サーバ装置３００の構成の一例を示すブロック図。
【図４】セットアップ処理の一例を示すシークエンス図（第一実施形態）。
【図５】認証処理の一例を示すシークエンス図（第一実施形態）。
【図６】クライアント装置４００の構成の一例を示すブロック図。
【図７】サーバ装置５００の構成の一例を示すブロック図。
【図８】セットアップ処理の一例を示すシークエンス図（第二実施形態）。
【図９】認証処理の一例を示すシークエンス図（第二実施形態）。
【図１０】クライアント装置２０１の構成の一例を示すブロック図。
【図１１】サーバ装置３０１の構成の一例を示すブロック図。
【図１２】認証処理の一例を示すシークエンス図（第三実施形態）。
【図１３】クライアント装置４０１の構成の一例を示すブロック図。
【図１４】サーバ装置５０１の構成の一例を示すブロック図。
【図１５】認証処理の一例を示すシークエンス図（第四実施形態）。
【図１６】クライアント装置２０２の構成の一例を示すブロック図。
【図１７】サーバ装置３０２の構成の一例を示すブロック図。
【図１８】認証処理の一例を示すシークエンス図（第五実施形態）。
【図１９】クライアント装置４０２の構成の一例を示すブロック図。
【図２０】サーバ装置５０２の構成の一例を示すブロック図。
【図２１】認証処理の一例を示すシークエンス図（第六実施形態）。
【図２２】クライアント装置２０３の構成の一例を示すブロック図。
【図２３】サーバ装置３０３の構成の一例を示すブロック図。
【図２４】認証処理の一例を示すシークエンス図（第七実施形態）。
【図２５】クライアント装置２０４の構成の一例を示すブロック図。
【図２６】サーバ装置３０４の構成の一例を示すブロック図。
【図２７】認証処理の一例を示すシークエンス図（第八実施形態）。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１６】
＜表記法＞
実施形態の説明に先立って、この明細書における表記方法について説明する。
【００１７】
_（アンダースコア）は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。
【００１８】
qを素数位数とし、G1、G2を素数位数qの群とする。また、Z*q={0,1,…,q-1}とする。
【００１９】
HID(id)をユーザの識別子idのハッシュ値をとって群G1の点にマッピングする関数とする。ここで、A=HID(ID)とすると、ユーザの識別子IDは、関数HID(id)により群G1の点Aにマッピングされることを表す。
【００２０】
s∈Z*q,si∈Z*q (1≦i≦n, nは１以上の整数)をそれぞれペアリング暗号のマスター秘密鍵とする。また、A=HID(ID)に対して、sA,siA (1≦i≦n, nは１以上の整数)をそれぞれ識別子IDのユーザのユーザ秘密鍵とする。
【００２１】
e:G1×G2→Z*qをペアリング写像とする。k∈Z*qとして、群G1の点P,群G2のQに対して次式が成り立つ。
【数５】
2018207441.tif 000007
【００２２】
なお、以下では、P, P1, P2∈G1, Q∈G2とする。
【００２３】
r,r’∈Z*qを乱数とする。
【００２４】
αi∈Z*q (1≦i≦n)を認証開始前（例えば、ユーザの識別子を生成する際）に設定される情報とする。また、α∈Z*qを認証要求時にユーザが入力する情報とする。αi∈Z*q (1≦i≦n)を設定されたPIN（または、単にPIN）、α∈Z*qを入力されたPIN（または、入力PIN）という。
【００２５】
H(x)をZ*qを値域とするハッシュ関数とする。H(x)は暗号学的ハッシュ関数であることが好ましい。
【００２６】
||を連結演算子とする。
【００２７】
＜技術的背景＞
以下では、設定された複数のPINの1つが正しく入力された場合に認証することができるようにM-Pinプロトコルを変更していく様子を、順を追って説明する。一般には、n個のPINα1,α2,…,αnを用いるが、ここではn=2として説明する。
【００２８】
（方法１）
まず、認証開始前に2個のPINα1,α2をユーザの端末に記憶しておく。また、識別子IDのユーザのユーザ秘密鍵sAもユーザの端末に記憶しておく。
【００２９】
ここで、aに関する2次多項式を用いて2個のPINα1,α2のうちどれか1つが正しく入力されれば、認証成功を示す値（sAが含まれる値）が出力されるようにプロトコルを変更する。例えば、次式で表される2次多項式f1(a)を用いるようにM-Pinプロトコルを変更する。
【数６】
2018207441.tif 000008
【００３０】
2次多項式f1(a)は、入力PINα1,α2に対して、認証成功を示す値sAを出力する。
【数７】
2018207441.tif 000009
【００３１】
入力PINαに対する2次多項式f1(a)の値f1(α)は、認証時にサーバに送信される情報（認証情報）となる。値f1(α)を計算するために、2次多項式f1(a)の各項a2,a,1の係数であるA, -(α1+α2)A, (α1α2+s)Aをユーザの端末に記憶する。これらの係数は、α1,α2,A,sAから求めることができる。なお、2次多項式f1(a)の係数をすべて記憶する代わりに、例えば、-(α1+α2)A, (α1α2+s)Aのみというように一部を記憶するようにしてもよい。
【００３２】
しかし、2次多項式f1(a)の係数をこのまま端末に記憶することにすると、PINα1,α2に関する情報α1+α2が推測されてしまう可能性がある。
【００３３】
そこで、乱数rを用いて2次多項式f1(a)を次式で表される3次多項式f2(a)のように変更する。乱数rは、例えば、ユーザの端末で生成すればよい。
【数８】
2018207441.tif 000010
【００３４】
先ほどと同様、3次多項式f2(a)の各項a3,a2,a,1の係数A, -(α1+α2+r)A, (α1α2+rα1+rα2)A, (-rα1α2+s)Aをユーザの端末に記憶する。a3以外の各項の係数には、乱数rが含まれるため、攻撃者は端末に記憶した情報のみからPINα1, α2に関する情報を推測することができない。
【００３５】
しかし、3次多項式f2(a)を用いるように変更した場合であっても、攻撃者が全数探索を行うと、コリジョンが発生する。つまり、α1とα2が入力されると必ず同じ値sAが出力される。したがって、コリジョンを発生させることにより、PINα1,α2を推測されてしまう可能性がある。
【００３６】
そこで、入力値が異なれば出力値も異なる１対１関数h(a)を用いて3次多項式f2(a)を次式で表される3次多項式f3(a)のように変更する。
【数９】
2018207441.tif 000011
【００３７】
3次多項式f3(a)は、入力PINα1,α2に対して、それぞれh(α1)sA,h(α2)sAを出力する。
【数１０】
2018207441.tif 000012
【００３８】
この場合、h(α1),h(α2)がわからなければ、サーバはユーザを認証することができないため、端末は入力PINαに対するh(a)の値h(α)をサーバに送信する必要がある。
【００３９】
なお、3次多項式f3(a)の各項a3,a2,a,1の係数A, -(α1+α2+r)A, (α1α2+α1r+α2r)A, (-α1α2r+s)Aは、同様、ユーザの端末に記憶される。
【００４０】
以上説明したように、M-Pinプロトコルにおいて、3次多項式f3(a)（n個のPINを設定する場合はn+1次多項式）と１対１関数h(a)を用いるように変更すると、設定された複数のPINの1つが正しく入力された場合に認証することができるようになる。
【００４１】
（方法２）
方法１では、2個のPINα1,α2に対して1つのマスター秘密鍵と関数h(a)を用いて2つの異なる値h(α1)sA,h(α2)sAが出力されるようにしたが、2個のPINα1,α2に対して2つのマスター秘密鍵を用いて2つの異なる値が出力されるようにしてもよい。
【００４２】
方法１と同様、認証開始前に2個のPINα1,α2をユーザの端末に記憶しておく。また、識別子IDのユーザのユーザ秘密鍵s1A,s2Aをユーザの端末に記憶しておく。乱数rを用いて次式で表される3次多項式f4(a)を用いるようにM-Pinプロトコルを変更する。
【数１１】
2018207441.tif 000013
【００４３】
3次多項式f4(a)は、入力PINα1,α2に対して、それぞれ認証成功を示す値（s1A,s2Aが含まれる値）を出力する。
【数１２】
2018207441.tif 000014
【００４４】
3次多項式f4(a)の各項a3,a2,a,1の係数については、方法１と同様、ユーザの端末に記憶する。
【００４５】
このように3次多項式f4(a)を用いると、攻撃者による全数探索でコリジョンが発生したとしてもPINα1,α2を推測することが困難になり、かつ、設定された複数のPINの1つが正しく入力された場合に認証することができるようになる。
【００４６】
＜第一実施形態＞
＜技術的背景＞の（方法１）に対応する実施形態について説明する。
【００４７】
［システム構成］
図１を参照して、認証システム１００について説明する。図１は、認証システム１００の構成の一例を示すブロック図である。認証システム１００は、クライアント装置２００と、サーバ装置３００とを含む。クライアント装置２００、サーバ装置３００は、インターネットなどのネットワーク８００に接続し、クライアント装置２００とサーバ装置３００は相互に通信可能である。なお、認証システム１００は、m台（mは1以上の整数）のクライアント装置２００を含んでいてもよい。
【００４８】
次に、図２〜図３を参照して、クライアント装置２００、サーバ装置３００の各装置について説明する。図２は、クライアント装置２００の構成の一例を示すブロック図である。クライアント装置２００は、識別子生成部２０５、点計算部２１０、端末情報生成部２１５、認証情報生成部２２０、入出力部２８０、送受信部２８５、記録部２９０を含む。入出力部２８０は、クライアント装置２００がユーザとやり取りする必要がある情報を適宜入出力するための構成部である。送受信部２８５は、クライアント装置２００がサーバ装置３００と交換する必要がある情報を適宜送受信するための構成部である。記録部２９０は、クライアント装置２００の処理に必要な情報を適宜記録する構成部である。例えば、ユーザの識別子や認証情報生成に用いる端末情報を記録する。
【００４９】
図３は、サーバ装置３００の構成の一例を示すブロック図である。サーバ装置３００は、ユーザ秘密鍵生成部３０５、認証情報検証部３１０、送受信部３８５、記録部３９０を含む。送受信部３８５は、サーバ装置３００がクライアント装置２００と交換する必要がある情報を適宜送受信するための構成部である。記録部３９０は、サーバ装置３００の処理に必要な情報を適宜記録する構成部である。例えば、マスター鍵や認証情報を検証するための検証式を記録する。
【００５０】
［セットアップ処理］
以下、図４を参照して、認証情報生成に必要な端末情報を生成するセットアップ処理について説明する。
【００５１】
ユーザは、クライアント装置２００の入出力部２８０を用いて、クライアント装置２００に対して識別子を生成するよう要求する（Ｓ２８０−１）。クライアント装置２００の識別子生成部２０５は、ユーザの識別子IDを生成する（Ｓ２０５）。クライアント装置２００の入出力部２８０は、ユーザに対してＳ２０５で生成した識別子IDを提示すると同時に、ユーザに対してn個のPINα1,α2,…,αnを入力するよう要求する（Ｓ２８０−２）。ユーザは、クライアント装置２００の入出力部２８０を用いて、クライアント装置２００に対してn個のPINα1,α2,…,αnを入力する（Ｓ２８０−３）。
【００５２】
クライアント装置２００の送受信部２８５は、Ｓ２０５で生成した識別子IDをサーバ装置３００に送信する（Ｓ２８５−１）。
【００５３】
サーバ装置３００のユーザ秘密鍵生成部３０５は、関数HID(id)を用いて、Ｓ２８５−１で受信した識別子IDからA=HID(ID)を計算し、マスター秘密鍵sを用いて、Aからユーザ秘密鍵sAを生成する（Ｓ３０５）。マスター秘密鍵sは、事前に記録部３９０に記録しておく。
【００５４】
サーバ装置３００の送受信部３８５は、Ｓ３０５で生成したユーザ秘密鍵sAをクライアント装置２００に送信する（Ｓ３８５−１）。
【００５５】
クライアント装置２００の点計算部２１０は、関数HID(id)を用いて、ユーザの識別子IDからA=HID(ID)を計算する（Ｓ２１０）。
【００５６】
ここまでの処理で、クライアント装置２００は、ユーザの識別子IDとn個のPINα1,α2,…,αnとAとユーザ秘密鍵sAを保持した状態になる。Ｓ２８０−１からＳ２１０までの手順はあくまで一例であり、クライアント装置２００がこれらのデータを保持した状態になるのであれば、どのような手順でもよい。例えば、Ｓ２８０−３の後に、クライアント装置２００の点計算部２１０がAを計算し、Ｓ２８５−１で識別子IDの代わりにAを送信するようにしてもよい。この場合、サーバ装置３００のユーザ秘密鍵生成部３０５は、Aを計算する必要がなくなる。
【００５７】
クライアント装置２００の端末情報生成部２１５は、Ｓ２８０−３で入力されたPINα1,α2,…,αn、Ｓ２１０で生成したA、Ｓ３８５−１で受信したユーザ秘密鍵sAを用いて、端末情報を生成する（Ｓ２１５）。具体的には、次式で定義されるaに関する式f(a)とaに関する式g(a)を端末情報として生成する。
【数１３】
2018207441.tif 000015
ただし、rは乱数であり、例えば、端末情報生成部２１５が端末情報を生成する直前に生成する。
【００５８】
クライアント装置２００は、識別子IDと端末情報f(a)とg(a)を記録部２９０に記録する。端末情報を記録するために、例えば、式f(a)の項an,an-1,…,a,1,1/aの係数と式g(a)の項1/aの係数を記録するのでよい。n=2のときを例として説明すると、式f(a)の項a2,a,1,1/aの係数、式g(a)の項1/aの係数である-(α1+α2+r)A, (α1+α2+r)(α1+α2+r)A, -(α1+α2+r)(α1α2+rα1+rα2)A, -(α1+α2+r)(-rα1α2+s)A, (α1+α2+r)Aが記録される。
【００５９】
認証処理開始前までに、サーバ装置３００の記録部３９０には、マスター秘密鍵sと検証式e(P1,Q)・e(P2,sQ)（ただし、Qは群G2の点）が記録される。
【００６０】
なお、端末情報f(a)とg(a)は1対1関数h(a)を用いて次式で定義されるaに関する式としてもよい。
【数１４】
2018207441.tif 000016
ただし、rは乱数とする。
【００６１】
［認証処理］
以下、図５を参照して、認証処理について説明する。
【００６２】
ユーザは、クライアント装置２００の入出力部２８０を用いて、クライアント装置２００に対して識別子IDとPINαを入力する（Ｓ２８０−１）。
【００６３】
クライアント装置２００の認証情報生成部２２０は、端末情報f(a)とg(a)を用いて、Ｓ２８０−１で入力された識別子IDとPINαから、認証情報を生成する（Ｓ２２０）。具体的には、式f(a)にαを代入した値f(α)、式g(a)にαを代入した値g(α)を認証情報として生成する。
【００６４】
クライアント装置２００の送受信部２８５は、Ｓ２２０で生成した認証情報f(α)、g(α)をサーバ装置３００に送信する（Ｓ２８５−１）。
【００６５】
サーバ装置３００の認証情報検証部３１０は、マスター秘密鍵sを用いて、Ｓ２８５−１で受信した認証情報f(α)、g(α)を検証する（Ｓ３１０）。具体的には、検証式e(P1,Q)・e(P2,sQ)のP1、P2にそれぞれf(α)、g(α)を代入した値e(f(α),Q)・e(g(α),sQ)（以下、検証値という）を計算する。e(f(α),Q)・e(g(α),sQ)=e(A,Q)0が成立する場合は認証結果を成功とし、それ以外の場合は失敗とする。
【００６６】
αが設定されたPINの1つに一致する、すなわち、α=αi(1≦i≦n)である場合、認証情報f(α)、g(α)は
【数１５】
2018207441.tif 000017
となり、検証値e(f(α),Q)・e(g(α),sQ)は、
【数１６】
2018207441.tif 000018
となり、認証結果は成功となる。
【００６７】
なお、マスター秘密鍵sや検証式e(P1,Q)・e(P2,sQ)が識別子IDと対応付けられて記録部３９０に記録されている場合は、Ｓ２８５−１で認証情報f(α)、g(α)とともに識別子IDをサーバ装置３００に送信するとよい。
【００６８】
サーバ装置３００の送受信部３８５は、Ｓ３１０で生成した認証結果をクライアント装置２００に送信する（Ｓ３８５−１）。
【００６９】
本発明によれば、設定された複数のPINのうち、認証時に１つのPINが正しく入力された場合に認証することができる。
【００７０】
以下、本発明の安全性について説明する。端末情報f(a)の項an,an-1,…,a,1,1/aの係数、端末情報g(a)の項1/aの係数には、乱数rが含まれる。ここで、素数位数qを十分に大きな値にしてやると、攻撃者がこれらの係数からPINα1,α2,…,αnやマスター秘密鍵sを入手しようとしても、乱数rが含まれるため、楕円曲線上の離散対数問題が困難であるという仮定のもと計算量的安全性を満たす。
【００７１】
＜第二実施形態＞
＜技術的背景＞の（方法２）に対応する実施形態について説明する。
【００７２】
［システム構成］
図６〜図７を参照して、クライアント装置４００、サーバ装置５００の各装置について説明する。図６は、クライアント装置４００の構成の一例を示すブロック図である。クライアント装置４００は、識別子生成部２０５、点計算部２１０、端末情報生成部４１５、認証情報生成部４２０、入出力部２８０、送受信部２８５、記録部２９０を含む。
【００７３】
図７は、サーバ装置５００の構成の一例を示すブロック図である。サーバ装置５００は、ユーザ秘密鍵生成部５０５、認証情報検証部５１０、送受信部３８５、記録部３９０を含む。
【００７４】
［セットアップ処理］
以下、図８を参照して、認証情報生成に必要な端末情報を生成するセットアップ処理について説明する。図８の処理シークエンスは、図４の処理シークエンスと途中まで同じである。具体的には、Ｓ２８５−１まで同じである。そこで、Ｓ５０５以降の処理シークエンスについて説明する。
【００７５】
サーバ装置５００のユーザ秘密鍵生成部５０５は、関数HID(id)を用いて、Ｓ２８５−１で受信した識別子IDからA=HID(ID)を計算し、n個のマスター秘密鍵si(1≦i≦n)を用いて、Aからn個のユーザ秘密鍵siA(1≦i≦n)を生成する（Ｓ５０５）。マスター秘密鍵si(1≦i≦n)は、事前に記録部３９０に記録しておく。
【００７６】
サーバ装置５００の送受信部３８５は、Ｓ５０５で生成したユーザ秘密鍵siA(1≦i≦n)をクライアント装置４００に送信する（Ｓ３８５−１）。
【００７７】
クライアント装置４００の点計算部２１０は、関数HID(id)を用いて、ユーザの識別子IDからA=HID(ID)を計算する（Ｓ２１０）。
【００７８】
ここまでの処理で、クライアント装置４００は、ユーザの識別子IDとn個のPINαi(1≦i≦n)とAとn個のユーザ秘密鍵siA(1≦i≦n)を保持した状態になる。Ｓ２８０−１からＳ２１０までの手順はあくまで一例であり、クライアント装置４００がこれらのデータを保持した状態になるのであれば、どのような手順でもよい。
【００７９】
クライアント装置４００の端末情報生成部４１５は、Ｓ２８０−３で入力されたn個のPINαi(1≦i≦n)、Ｓ２１０で生成したA、Ｓ３８５−１で受信したユーザ秘密鍵siA(1≦i≦n)を用いて、端末情報を生成する（Ｓ４１５）。具体的には、次式で定義されるaに関する式f(a)を端末情報として生成する。
【数１７】
2018207441.tif 000019
ただし、r, r’は乱数であり、例えば、端末情報生成部４１５が端末情報を生成する直前に生成する。
【００８０】
クライアント装置４００は、識別子IDと端末情報f(a)を記録部２９０に記録する。端末情報を記録するために、例えば、式f(a)の項an+1,an,…,a,1の係数を記録するのでよい。
【００８１】
また、認証処理開始前までに、サーバ装置５００の記録部３９０には、マスター秘密鍵si(1≦i≦n)と検証式e(P1,Q)・e(P2,s1Q)（ただし、Qは群G2の点）が記録される。
【００８２】
［認証処理］
以下、図９を参照して、認証処理について説明する。
【００８３】
ユーザは、クライアント装置４００の入出力部２８０を用いて、クライアント装置４００に対して識別子IDとPINαを入力する（Ｓ２８０−１）。
【００８４】
クライアント装置４００の認証情報生成部４２０は、端末情報f(a)を用いて、Ｓ２８０−１で入力された識別子IDとPINαから、認証情報を生成する（Ｓ４２０）。具体的には、式f(a)にαを代入した値f(α)を認証情報として生成する。
【００８５】
クライアント装置４００の送受信部２８５は、Ｓ２８０−１で入力された識別子IDとＳ４２０で生成した認証情報f(α)をサーバ装置５００に送信する（Ｓ２８５−１）。
【００８６】
サーバ装置５００の認証情報検証部５１０は、マスター秘密鍵si(1≦i≦n)を用いて、Ｓ２８５−１で受信した認証情報f(α)を検証する（Ｓ５１０）。具体的には、まず、関数HID(id)を用いて、識別子IDからA=HID(ID)を計算する。次に、検証式e(P1,Q)・e(P2,s1Q)のP1、P2にそれぞれにf(α)、Aを代入した値e(f(α),Q)・e(A,s1Q)（以下、検証値という）を計算する。e(f(α),Q)・e(A,s1Q)=e(A,Q)0、e(f(α),Q)・e(A,s1Q)=e(A,Q)s_1-s_2、…、e(f(α),Q)・e(A,s1Q)=e(A,Q)s_1-s_nのいずれかが成立する場合は認証結果を成功とし、それ以外の場合は失敗とする。
【００８７】
αが設定されたPINの1つに一致する、すなわち、α=αi(1≦i≦n)である場合、認証情報f(α)は
【数１８】
2018207441.tif 000020
となり、検証値e(f(α),Q)・e(A,s1Q)は、
【数１９】
2018207441.tif 000021
となり、認証結果は成功となる。
【００８８】
サーバ装置５００の送受信部３８５は、Ｓ５１０で生成した認証結果をクライアント装置４００に送信する（Ｓ３８５−１）。
【００８９】
本発明によれば、設定された複数のPINのうち、認証時に１つのPINが正しく入力された場合に認証することができる。
【００９０】
以下、本発明の安全性について説明する。端末情報f(a)の項an+1,an,…,a,1の係数には、乱数rやr’が含まれる。ここで、素数位数qを十分に大きな値にしてやると、攻撃者がこれらの係数からPINα1,α2,…,αnやマスター秘密鍵s1,s2,…,snを入手しようとしても、乱数rやr’が含まれため、楕円曲線上の離散対数問題が困難であるという仮定のもと計算量的安全性を満たす。
【００９１】
＜第三実施形態＞
第一実施形態では、サーバ装置に送信する認証情報としてf(α)とg(α)を用いた。この方法では、認証時にn個の認証情報の組f(αi)とg(αi)(1≦i≦n)のいずれかがサーバ装置に送信されることになる。そこで、乱数xとハッシュ関数H(x)を用いて認証情報が認証の都度変わるように変更を加えた第一実施形態の変形例を説明する。
【００９２】
［システム構成］
図１０〜図１１を参照して、クライアント装置２０１、サーバ装置３０１の各装置について説明する。図１０は、クライアント装置２０１の構成の一例を示すブロック図である。クライアント装置２０１は、識別子生成部２０５、点計算部２１０、端末情報生成部２１５、認証情報生成部２２１、入出力部２８０、送受信部２８５、記録部２９０を含む。クライアント装置２０１は、認証情報生成部２２０の代わりに認証情報生成部２２１を含む点においてのみクライアント装置２００と異なる。つまり、サーバ装置３０１に送信する認証情報の生成方法が異なる。
【００９３】
図１１は、サーバ装置３０１の構成の一例を示すブロック図である。サーバ装置３０１は、ユーザ秘密鍵生成部３０５、認証情報検証部３１１、送受信部３８５、記録部３９０を含む。サーバ装置３０１は、認証情報検証部３１０の代わりに認証情報検証部３１１を含む点においてのみサーバ装置３００と異なる。つまり、クライアント装置２０１から受信した認証情報の検証方法が異なる。
【００９４】
［セットアップ処理］
セットアップ処理は、第一実施形態と同一でよい。したがって、クライアント装置２０１の記録部２９０には、識別子IDと端末情報f(a)とg(a)が記録される。また、認証処理開始前までに、サーバ装置３０１の記録部３９０には、マスター秘密鍵sと検証式e(P1,Q)・e(P2,sQ)（ただし、Qは群G2の点）が記録される。
【００９５】
［認証処理］
以下、図１２を参照して、認証処理について説明する。
【００９６】
ユーザは、クライアント装置２０１の入出力部２８０を用いて、クライアント装置２０１に対して識別子IDとPINαを入力する（Ｓ２８０−１）。
【００９７】
クライアント装置２０１の認証情報生成部２２１は、端末情報f(a)とg(a)を用いて、Ｓ２８０−１で入力された識別子IDとPINαから、認証情報U,W,Vを生成する（Ｓ２２１）。具体的には、まず乱数x∈Z*qを生成し、U=g(α)とW=xg(α)を計算する。次に、ハッシュ関数H(x)を用いて、ハッシュ値y=H(ID||U||W)を計算し、式f(a)にαを代入した値f(α)からV=(x+y)f(α)を計算する。
【００９８】
クライアント装置２０１の送受信部２８５は、Ｓ２８０−１で入力された識別子IDとＳ２２１で生成した認証情報U,W,Vをサーバ装置３０１に送信する（Ｓ２８５−１）。
【００９９】
サーバ装置３０１の認証情報検証部３１１は、マスター秘密鍵sを用いて、Ｓ２８５−１で受信した認証情報U,W,Vを検証する（Ｓ３１１）。具体的には、まず、ハッシュ関数H(x)を用いて、ハッシュ値y=H(ID||U||W)を計算する。次に、検証式e(P1,Q)・e(P2,sQ)のP1、P2にそれぞれV、W+yUを代入した値e(V,Q)・e(W+yU,sQ)（以下、検証値という）を計算する。e(V,Q)・e(W+yU,sQ)=e(A,Q)0が成立する場合は認証結果を成功とし、それ以外の場合は失敗とする。
【０１００】
αが設定されたPINの1つに一致する、すなわち、α=αi(1≦i≦n)である場合、認証情報U,W,Vは
【数２０】
2018207441.tif 000022
となり、検証値e(V,Q)・e(W+yU,sQ)は、
【数２１】
2018207441.tif 000023
となり、認証結果は成功となる。
【０１０１】
サーバ装置３０１の送受信部３８５は、Ｓ３１１で生成した認証結果をクライアント装置２０１に送信する（Ｓ３８５−１）。
【０１０２】
本発明によれば、設定された複数のPINのうち、認証時に１つのPINが正しく入力された場合に認証することができる。サーバ装置に送信される認証情報が認証の都度変わるため、第一実施形態よりも安全性が高くなる。
【０１０３】
＜第四実施形態＞
第二実施形態では、サーバ装置に送信する認証情報としてf(α)を用いた。この方法では、認証時にn個の認証情報f(αi)(1≦i≦n)のいずれかがサーバ装置に送信されることになる。そこで、乱数xとハッシュ関数H(x)を用いて認証情報が認証の都度変わるように変更を加えた第二実施形態の変形例を説明する。
【０１０４】
［システム構成］
図１３〜図１４を参照して、クライアント装置４０１、サーバ装置５０１の各装置について説明する。図１３は、クライアント装置４０１の構成の一例を示すブロック図である。クライアント装置４０１は、識別子生成部２０５、点計算部２１０、端末情報生成部４１５、認証情報生成部４２１、入出力部２８０、送受信部２８５、記録部２９０を含む。クライアント装置４０１は、認証情報生成部４２０の代わりに認証情報生成部４２１を含む点においてのみクライアント装置４００と異なる。つまり、サーバ装置５０１に送信する認証情報の生成方法が異なる。
【０１０５】
図１４は、サーバ装置５０１の構成の一例を示すブロック図である。サーバ装置５０１は、ユーザ秘密鍵生成部５０５、認証情報検証部５１１、送受信部３８５、記録部３９０を含む。サーバ装置５０１は、認証情報検証部５１０の代わりに認証情報検証部５１１を含む点においてのみサーバ装置５００と異なる。つまり、クライアント装置４０１から受信した認証情報の検証方法が異なる。
【０１０６】
［セットアップ処理］
セットアップ処理は、第二実施形態と同一でよい。したがって、クライアント装置４０１の記録部２９０には、識別子IDと端末情報f(a)が記録される。また、認証処理開始前までに、サーバ装置５０１の記録部３９０には、マスター秘密鍵si(1≦i≦n)と検証式e(P1,Q)・e(P2,s1Q)（ただし、Qは群G2の点）が記録される。
【０１０７】
［認証処理］
以下、図１５を参照して、認証処理について説明する。
【０１０８】
ユーザは、クライアント装置４０１の入出力部２８０を用いて、クライアント装置４０１に対して識別子IDとPINαを入力する（Ｓ２８０−１）。
【０１０９】
クライアント装置４０１の認証情報生成部４２１は、端末情報f(a)を用いて、Ｓ２８０−１で入力された識別子IDとPINαから、認証情報W,Vを生成する（Ｓ４２１）。具体的には、まず乱数x∈Z*qを生成し、A=HID(ID)を計算し、W=xAを計算する。次に、ハッシュ関数H(x)を用いて、ハッシュ値y=H(ID||W)を計算し、式f(a)にαを代入した値f(α)からV=(x+y)f(α)を計算する。
【０１１０】
クライアント装置４０１の送受信部２８５は、Ｓ２８０−１で入力された識別子IDとＳ４２１で生成した認証情報W,Vをサーバ装置５０１に送信する（Ｓ２８５−１）。
【０１１１】
サーバ装置５０１の認証情報検証部５１１は、マスター秘密鍵si(1≦i≦n)を用いて、Ｓ２８５−１で受信した認証情報W,Vを検証する（Ｓ５１１）。具体的には、まず、関数HID(id)を用いて、Ｓ２８５−１で受信した識別子IDからA=HID(ID)を、ハッシュ関数H(x)を用いて、Ｓ２８５−１で受信した識別子IDと認証情報Wからハッシュ値y=H(ID||W)を計算する。次に、検証式e(P1,Q)・e(P2,s1Q) のP1、P2にそれぞれV、W+yAを代入した値e(V,Q)・e(W+yA,s1Q)（以下、検証値という）を計算する。e(V,Q)・e(W+yA,s1Q)=e(A,Q)0、e(V,Q)・e(W+yA,s1Q)=e(A,Q)s_1-s_2、…、e(V,Q)・e(W+yA,s1Q)=e(A,Q)s_1-s_nのいずれかが成立する場合は認証結果を成功とし、それ以外の場合は失敗とする。
【０１１２】
αが設定されたPINの1つに一致する、すなわち、α=αi(1≦i≦n)である場合、認証情報Vは
【数２２】
2018207441.tif 000024
【０１１３】
となり、検証値e(V,Q)・e(W+yA,s1Q)は、
【数２３】
2018207441.tif 000025
となり、認証結果は成功となる。
【０１１４】
サーバ装置５０１の送受信部３８５は、Ｓ５１１で生成した認証結果をクライアント装置４０１に送信する（Ｓ３８５−１）。
【０１１５】
本発明によれば、設定された複数のPINのうち、認証時に１つのPINが正しく入力された場合に認証することができる。サーバ装置に送信される認証情報が認証の都度変わるため、第二実施形態よりも安全性が高くなる。
【０１１６】
＜第五実施形態＞
第三実施形態では、乱数xとハッシュ関数H(x)を用いて認証情報が認証の都度変わるように第一実施形態に変更を加えた。第三実施形態は、複数の認証情報をまとめて1回で送信する1パスプロトコルとなっていた。ここでは、クライアント装置で生成した乱数xとサーバ装置で生成した乱数yを用いて認証情報が認証の都度変わる2パスプロトコルに変更した第三実施形態の変形例を説明する。
【０１１７】
［システム構成］
図１６〜図１７を参照して、クライアント装置２０２、サーバ装置３０２の各装置について説明する。図１６は、クライアント装置２０２の構成の一例を示すブロック図である。クライアント装置２０２は、識別子生成部２０５、点計算部２１０、端末情報生成部２１５、第１認証情報生成部２２２、第二認証情報生成部２２３、入出力部２８０、送受信部２８５、記録部２９０を含む。クライアント装置２０２は、認証情報生成部２２１の代わりに第１認証情報生成部２２２と第２認証情報生成部２２３を含む点においてのみクライアント装置２０１と異なる。つまり、サーバ装置３０２に送信する認証情報の生成方法と送信方法が異なる。
【０１１８】
図１７は、サーバ装置３０２の構成の一例を示すブロック図である。サーバ装置３０２は、ユーザ秘密鍵生成部３０５、乱数生成部３０９、認証情報検証部３１２、送受信部３８５、記録部３９０を含む。サーバ装置３０２は、認証情報検証部３１１の代わりに乱数生成部３０９と認証情報検証部３１２を含む点においてのみサーバ装置３０１と異なる。つまり、クライアント装置２０２から認証情報を受信する方法と認証情報の検証方法が異なる。
【０１１９】
［セットアップ処理］
セットアップ処理は、第三実施形態（第一実施形態）と同一でよい。したがって、クライアント装置２０２の記録部２９０には、識別子IDと端末情報f(a)とg(a)が記録される。また、認証処理開始前までに、サーバ装置３０２の記録部３９０には、マスター秘密鍵sと検証式e(P1,Q)・e(P2,sQ)（ただし、Qは群G2の点）が記録される。
【０１２０】
［認証処理］
以下、図１８を参照して、認証処理について説明する。
【０１２１】
ユーザは、クライアント装置２０２の入出力部２８０を用いて、クライアント装置２０２に対して識別子IDとPINαを入力する（Ｓ２８０−１）。
【０１２２】
クライアント装置２０２の第１認証情報生成部２２２は、端末情報g(a)を用いて、Ｓ２８０−１で入力された識別子IDとPINαから、認証情報U,Wを生成する（Ｓ２２２）。具体的には、乱数x∈Z*qを生成し、U=g(α)とW=xg(α)を計算する。
【０１２３】
クライアント装置２０２の送受信部２８５は、Ｓ２８０−１で入力された識別子IDとＳ２２２で生成した認証情報U,Wをサーバ装置３０２に送信する（Ｓ２８５−１）。
【０１２４】
サーバ装置３０２の乱数生成部３０９は、乱数y∈Z*qを生成する（Ｓ３０９）。
【０１２５】
サーバ装置３０２の送受信部３８５は、Ｓ３０９で生成した乱数yをクライアント装置２０２に送信する（Ｓ３８５−１）。
【０１２６】
クライアント装置２０２の第２認証情報生成部２２３は、端末情報f(a)を用いて、Ｓ２８０−１で入力されたPINαとＳ２２２で生成した乱数xとＳ３８５−１で受信した乱数yから、認証情報Vを生成する（Ｓ２２３）。具体的には、式f(a)にαを代入した値f(α)からV=(x+y)f(α)を計算する。
【０１２７】
クライアント装置２０２の送受信部２８５は、Ｓ２２３で生成した認証情報Vをサーバ装置３０２に送信する（Ｓ２８５−２）。
【０１２８】
サーバ装置３０２の認証情報検証部３１２は、マスター秘密鍵sを用いて、Ｓ２８５−１で受信した認証情報U,W、Ｓ２８５−２で受信した認証情報Vを検証する（Ｓ３１２）。具体的には、検証式e(P1,Q)・e(P2,sQ)のP1、P2にそれぞれV、W+yUを代入した値e(V,Q)・e(W+yU,sQ)（以下、検証値という）を計算する。e(V,Q)・e(W+yU,sQ)=e(A,Q)0が成立する場合は認証結果を成功とし、それ以外の場合は失敗とする。
【０１２９】
αが設定されたPINの1つに一致する、すなわち、α=αi(1≦i≦n)である場合、第三実施形態と同様、検証値e(V,Q)・e(W+yU,sQ)は、e(A,Q)0となり、認証結果は成功となる。
【０１３０】
サーバ装置３０２の送受信部３８５は、Ｓ３１２で生成した認証結果をクライアント装置２０２に送信する（Ｓ３８５−２）。
【０１３１】
本発明によれば、設定された複数のPINのうち、認証時に１つのPINが正しく入力された場合に認証することができる。サーバ装置に送信される認証情報が認証の都度変わるため、第一実施形態よりも安全性が高くなる。
【０１３２】
＜第六実施形態＞
第四実施形態では、乱数xとハッシュ関数H(x)を用いて認証情報が認証の都度変わるように第二実施形態に変更を加えた。第四実施形態は、複数の認証情報をまとめて1回で送信する1パスプロトコルとなっていた。ここでは、クライアント装置で生成した乱数xとサーバ装置で生成した乱数yを用いて認証情報が認証の都度変わる2パスプロトコルに変更した第四実施形態の変形例を説明する。
【０１３３】
［システム構成］
図１９〜図２０を参照して、クライアント装置４０２、サーバ装置５０２の各装置について説明する。図１９は、クライアント装置４０２の構成の一例を示すブロック図である。クライアント装置４０２は、識別子生成部２０５、点計算部２１０、端末情報生成部４１５、第１認証情報生成部４２２、第２認証情報生成部４２３、入出力部２８０、送受信部２８５、記録部２９０を含む。クライアント装置４０２は、認証情報生成部４２１の代わりに第１認証情報生成部４２２と第２認証情報生成部４２３を含む点においてのみクライアント装置４０１と異なる。つまり、サーバ装置５０２に送信する認証情報の生成方法と送信方法が異なる。
【０１３４】
図２０は、サーバ装置５０２の構成の一例を示すブロック図である。サーバ装置５０２は、ユーザ秘密鍵生成部５０５、乱数生成部３０９、認証情報検証部５１２、送受信部３８５、記録部３９０を含む。サーバ装置５０２は、認証情報検証部５１１の代わりに乱数生成部３０９と認証情報検証部５１２を含む点においてのみサーバ装置５０１と異なる。つまり、クライアント装置４０２から認証情報を受信する方法と認証情報の検証方法が異なる。
【０１３５】
［セットアップ処理］
セットアップ処理は、第四実施形態（第二実施形態）と同一でよい。したがって、クライアント装置４０２の記録部２９０には、識別子IDと端末情報f(a)が記録される。また、サーバ装置５０２の記録部３９０には、マスター秘密鍵si(1≦i≦n)と検証式e(P1,Q)・e(P2,s1Q)（ただし、Qは群G2の点）が記録される。
【０１３６】
［認証処理］
以下、図２１を参照して、認証処理について説明する。
【０１３７】
ユーザは、クライアント装置４０２の入出力部２８０を用いて、クライアント装置４０２に対して識別子IDとPINαを入力する（Ｓ２８０−１）。
【０１３８】
クライアント装置４０２の第１認証情報生成部４２２は、Ｓ２８０−１で入力された識別子IDとPINαから、認証情報Wを生成する（Ｓ４２２）。具体的には、乱数x∈Z*qを生成し、A=HID(ID)を計算し、W=xAを計算する。
【０１３９】
クライアント装置４０２の送受信部２８５は、Ｓ２８０−１で入力された識別子IDとＳ４２２で生成した認証情報Wをサーバ装置５０２に送信する（Ｓ２８５−１）。
【０１４０】
サーバ装置５０２の乱数生成部３０９は、乱数y∈Z*qを生成する（Ｓ３０９）。
【０１４１】
サーバ装置５０２の送受信部３８５は、Ｓ３０９で生成した乱数yをクライアント装置４０２に送信する（Ｓ３８５−１）。
【０１４２】
クライアント装置４０２の第２認証情報生成部４２３は、端末情報f(a)を用いて、Ｓ２８０−１で入力されたPINαとＳ４２２で生成した乱数xとＳ３８５−１で受信した乱数yから、認証情報Vを生成する（Ｓ４２３）。具体的には、式f(a)にαを代入した値f(α)からV=(x+y)f(α)を計算する。
【０１４３】
クライアント装置４０２の送受信部２８５は、Ｓ４２３で生成した認証情報Vをサーバ装置３０２に送信する（Ｓ２８５−２）。
【０１４４】
サーバ装置５０２の認証情報検証部５１２は、マスター秘密鍵si(1≦i≦n)を用いて、Ｓ２８５−１で受信した認証情報W、Ｓ２８５−２で受信した認証情報Vを検証する（Ｓ５１２）。具体的には、まず、関数HID(id)を用いて、Ｓ２８５−１で受信した識別子IDからA=HID(ID)を計算する。次に、検証式e(P1,Q)・e(P2,s1Q)のP1、P2にそれぞれV、W+yAを代入した値e(V,Q)・e(W+yA,s1Q)（以下、検証値という）を計算する。e(V,Q)・e(W+yA,s1Q)=e(A,Q)0、e(V,Q)・e(W+yA,s1Q)=e(A,Q)s_1-s_2、…、e(V,Q)・e(W+yA,s1Q)=e(A,Q)s_1-s_nのいずれかが成立する場合は認証結果を成功とし、それ以外の場合は失敗とする。
【０１４５】
αが設定されたPINの1つに一致する、すなわち、α=αi(1≦i≦n)である場合、第四実施形態と同様、検証値e(V,Q)・e(W+yA,s1Q)は、e(A,Q)s1-siとなり、認証結果は成功となる。
【０１４６】
サーバ装置５０２の送受信部３８５は、Ｓ５１２で生成した認証結果をクライアント装置４０２に送信する（Ｓ３８５−２）。
【０１４７】
本発明によれば、設定された複数のPINのうち、認証時に１つのPINが正しく入力された場合に認証することができる。サーバ装置に送信される認証情報が認証の都度変わるため、第二実施形態よりも安全性が高くなる。
【０１４８】
＜第七実施形態＞
認証時にクライアント装置の時刻とサーバ装置の時刻を比較することにより、第三実施形態や第四実施形態の1パスプロトコルの認証をより強固なものにすることができる。そこで、ここでは、第三実施形態を変形した例を説明する。
【０１４９】
［システム構成］
図２２〜図２３を参照して、クライアント装置２０３、サーバ装置３０３の各装置について説明する。図２２は、クライアント装置２０３の構成の一例を示すブロック図である。クライアント装置２０３は、識別子生成部２０５、点計算部２１０、端末情報生成部２１５、乱数生成部２１８、時刻取得部２１９、認証情報生成部２２１、入出力部２８０、送受信部２８５、記録部２９０を含む。クライアント装置２０３は、更に、乱数生成部２１８、時刻取得部２１９を含む点においてのみクライアント装置２０１と異なる。
【０１５０】
図２３は、サーバ装置３０３の構成の一例を示すブロック図である。サーバ装置３０３は、ユーザ秘密鍵生成部３０５、時刻取得部３０７、時刻比較部３０８、認証情報検証部３１１、送受信部３８５、記録部３９０を含む。サーバ装置３０３は、更に、時刻取得部３０７、時刻比較部３０８を含む点においてのみサーバ装置３０１と異なる。
【０１５１】
［セットアップ処理］
セットアップ処理は、第三実施形態（第一実施形態）と同一でよい。したがって、クライアント装置２０３の記録部２９０には、識別子IDと端末情報f(a)とg(a)が記録される。また、認証処理開始前までに、サーバ装置３０３の記録部３９０には、マスター秘密鍵sと検証式e(P1,Q)・e(P2,sQ)（ただし、Qは群G2の点）が記録される。
【０１５２】
［認証処理］
以下、図２４を参照して、認証処理について説明する。
【０１５３】
ユーザは、クライアント装置２０３の入出力部２８０を用いて、クライアント装置２０３に対して識別子IDとPINαを入力する（Ｓ２８０−１）。
【０１５４】
クライアント装置２０３の乱数生成部２１８は、乱数nonce∈Z*qを生成する（Ｓ２１８）。
【０１５５】
クライアント装置２０３の時刻取得部２１９は、クライアント装置２０３の現在時刻CCTを取得する（Ｓ２１９）。
【０１５６】
クライアント装置２０３の認証情報生成部２２１は、端末情報f(a)とg(a)を用いて、Ｓ２８０−１で入力された識別子IDとPINαから、認証情報U,W,Vを生成する（Ｓ２２１）。具体的には、まず乱数x∈Z*qを生成し、U=g(α)とW=xg(α)を計算する。次に、ハッシュ関数H(x)を用いて、ハッシュ値y=H(ID||U||W||nonce||CCT)を計算し、式f(a)にαを代入した値f(α)からV=(x+y)f(α)を計算する。
【０１５７】
クライアント装置２０３の送受信部２８５は、Ｓ２８０−１で入力された識別子IDとＳ２２１で生成した認証情報U,W,VとＳ２１８で生成した乱数nonceとＳ２１９で取得した現在時刻CCTをサーバ装置３０３に送信する（Ｓ２８５−１）。
【０１５８】
サーバ装置３０３の時刻取得部３０７は、サーバ装置３０３の現在時刻SCTを取得する（Ｓ３０７）。
【０１５９】
サーバ装置３０３の時刻比較部３０８は、Ｓ２８５−１で受信した乱数nonceが過去に受信したものと一致するか否か、Ｓ２８５−１で受信した現在時刻CCTとＳ３０７で取得した現在時刻SCTの絶対値|CCT-SCT|が所定の閾値δより大きいか（以上か）否かを判定する（Ｓ３０８）。ここで、乱数nonceが過去に受信したものと一致するか否かは、例えば、これまでの認証時に送信されてきた乱数nonceを記録部３９０に記録しておくことで判定することができる。また、δは0以上の実数であり、絶対値|CCT-SCT|が閾値δより大きい（以上である）ことを小さいことを示す所定の範囲にないという。乱数nonceが過去に受信したものと一致する場合または絶対値|CCT-SCT|が閾値δより大きい（以上となる）場合は、認証処理を中止し、サーバ装置３０３の送受信部３８５は、認証結果を失敗として、クライアント装置２０３に送信する。それ以外の場合は、認証処理を継続する。
【０１６０】
サーバ装置３０３の認証情報検証部３１１は、マスター秘密鍵sを用いて、Ｓ２８５−１で受信した認証情報U,W,Vを検証する（Ｓ３１１）。具体的には、まず、ハッシュ関数H(x)を用いて、ハッシュ値y=H(ID||U||W||nonce||CCT)を計算する。次に、検証式e(P1,Q)・e(P2,sQ)のP1、P2にそれぞれV、W+yUを代入した値e(V,Q)・e(W+yU,sQ)（以下、検証値という）を計算する。e(V,Q)・e(W+yU,sQ)=e(A,Q)0が成立する場合は認証結果を成功とし、それ以外の場合は失敗とする。
【０１６１】
αが設定されたPINの1つに一致する、すなわち、α=αi(1≦i≦n)である場合、第三実施形態と同様、検証値e(V,Q)・e(W+yU,sQ)は、e(A,Q)0となり、認証結果は成功となる。
【０１６２】
サーバ装置３０３の送受信部３８５は、Ｓ３１１で生成した認証結果をクライアント装置２０３に送信する（Ｓ３８５−１）。
【０１６３】
本発明によれば、設定された複数のPINのうち、認証時に１つのPINが正しく入力された場合に認証することができる。認証時にクライアント装置の時刻とサーバ装置の時刻を比較する処理を追加することにより、第三実施形態や第四実施形態よりも安全性が高くなる。
【０１６４】
＜第八実施形態＞
認証時にクライアント装置の時刻とサーバ装置の時刻を比較することにより、第五実施形態や第六実施形態の2パスプロトコルの認証をより強固なものにすることができる。そこで、ここでは、第五実施形態を変形した例を説明する。
【０１６５】
［システム構成］
図２５〜図２６を参照して、クライアント装置２０４、サーバ装置３０４の各装置について説明する。図２５は、クライアント装置２０４の構成の一例を示すブロック図である。クライアント装置２０４は、識別子生成部２０５、点計算部２１０、端末情報生成部２１５、乱数生成部２１８、時刻取得部２１９、第１認証情報生成部２２２、第二認証情報生成部２２３、入出力部２８０、送受信部２８５、記録部２９０を含む。クライアント装置２０４は、更に、乱数生成部２１８、時刻取得部２１９を含む点においてのみクライアント装置２０２と異なる。
【０１６６】
図２６は、サーバ装置３０４の構成の一例を示すブロック図である。サーバ装置３０４は、ユーザ秘密鍵生成部３０５、時刻取得部３０７、時刻比較部３０８、乱数生成部３０９、認証情報検証部３１２、送受信部３８５、記録部３９０を含む。サーバ装置３０４は、更に、時刻取得部３０７、時刻比較部３０８を含む点においてのみサーバ装置３０２と異なる。
【０１６７】
［セットアップ処理］
セットアップ処理は、第五実施形態（第一実施形態）と同一でよい。したがって、クライアント装置２０４の記録部２９０には、識別子IDと端末情報f(a)とg(a)が記録される。また、認証処理開始前までに、サーバ装置３０４の記録部３９０には、マスター秘密鍵sと検証式e(P1,Q)・e(P2,sQ)（ただし、Qは群G2の点）が記録される。
【０１６８】
［認証処理］
以下、図２７を参照して、認証処理について説明する。
【０１６９】
ユーザは、クライアント装置２０４の入出力部２８０を用いて、クライアント装置２０２に対して識別子IDとPINαを入力する（Ｓ２８０−１）。
【０１７０】
クライアント装置２０４の乱数生成部２１８は、乱数nonce∈Z*qを生成する（Ｓ２１８）。
【０１７１】
クライアント装置２０４の時刻取得部２１９は、クライアント装置２０３の現在時刻CCTを取得する（Ｓ２１９）。
【０１７２】
クライアント装置２０４の第１認証情報生成部２２２は、端末情報g(a)を用いて、Ｓ２８０−１で入力された識別子IDとPINαから、認証情報U,Wを生成する（Ｓ２２２）。具体的には、乱数x∈Z*qを生成し、U=g(α)とW=xg(α)を計算する。
【０１７３】
クライアント装置２０４の送受信部２８５は、Ｓ２８０−１で入力された識別子IDとＳ２２２で生成した認証情報U,WとＳ２１８で生成した乱数nonceとＳ２１９で取得した現在時刻CCTをサーバ装置３０４に送信する（Ｓ２８５−１）。
【０１７４】
サーバ装置３０４の乱数生成部３０９は、乱数y∈Z*qを生成する（Ｓ３０９）。
【０１７５】
サーバ装置３０４の送受信部３８５は、Ｓ３０９で生成した乱数yをクライアント装置２０４に送信する（Ｓ３８５−１）。
【０１７６】
クライアント装置２０４の第２認証情報生成部２２３は、端末情報f(a)を用いて、Ｓ２８０−１で入力されたPINαとＳ２２２で生成した乱数xとＳ３８５−１で受信した乱数yから、認証情報Vを生成する（Ｓ２２３）。具体的には、式f(a)にαを代入した値f(α)からV=(x+y)f(α)を計算する。
【０１７７】
クライアント装置２０４の送受信部２８５は、Ｓ２２３で生成した認証情報Vをサーバ装置３０４に送信する（Ｓ２８５−２）。
【０１７８】
サーバ装置３０４の時刻取得部３０７は、サーバ装置３０４の現在時刻SCTを取得する（Ｓ３０７）。
【０１７９】
サーバ装置３０４の時刻比較部３０８は、Ｓ２８５−１で受信した乱数nonceが過去に受信したものと一致するか否か、Ｓ２８５−１で受信した現在時刻CCTとＳ３０７で取得した現在時刻SCTの絶対値|CCT-SCT|が所定の閾値δより大きいか（以上か）否かを判定する（Ｓ３０８）。ここで、乱数nonceが過去に受信したものと一致するか否かは、例えば、これまでの認証時に送信されてきた乱数nonceを記録部３９０に記録しておくことで判定することができる。また、δは0以上の実数であり、絶対値|CCT-SCT|が閾値δより大きい（以上である）ことを小さいことを示す所定の範囲にないという。乱数nonceが過去に受信したものと一致する場合または絶対値|CCT-SCT|が閾値δより大きい（以上となる）場合は、認証処理を中止し、サーバ装置３０４の送受信部３８５は、認証結果を失敗として、クライアント装置２０４に送信する。それ以外の場合は、認証処理を継続する。
【０１８０】
サーバ装置３０４の認証情報検証部３１２は、マスター秘密鍵sを用いて、Ｓ２８５−１で受信した認証情報U,W、Ｓ２８５−２で受信した認証情報Vを検証する（Ｓ３１２）。具体的には、検証式e(P1,Q)・e(P2,sQ)のP1、P2にそれぞれV、W+yUを代入した値e(V,Q)・e(W+yU,sQ)（以下、検証値という）を計算する。e(V,Q)・e(W+yU,sQ)=e(A,Q)0が成立する場合は認証結果を成功とし、それ以外の場合は失敗とする。
【０１８１】
αが設定されたPINの1つに一致する、すなわち、α=αi(1≦i≦n)である場合、第五実施形態と同様、検証値e(V,Q)・e(W+yU,sQ)は、e(A,Q)0となり、認証結果は成功となる。
【０１８２】
サーバ装置３０４の送受信部３８５は、Ｓ３１２で生成した認証結果をクライアント装置２０４に送信する（Ｓ３８５−２）。
【０１８３】
本発明によれば、設定された複数のPINのうち、認証時に１つのPINが正しく入力された場合に認証することができる。認証時にクライアント装置の時刻とサーバ装置の時刻を比較する処理を追加することにより、第五実施形態や第六実施形態よりも安全性が高くなる。
【０１８４】
＜補記＞
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置（例えば通信ケーブル）が接続可能な通信部、ＣＰＵ（Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい）、メモリであるＲＡＭやＲＯＭ、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、ＣＰＵ、ＲＡＭ、ＲＯＭ、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、ＣＤ−ＲＯＭなどの記録媒体を読み書きできる装置（ドライブ）などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【０１８５】
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている（外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるＲＯＭに記憶させておくこととしてもよい）。また、これらのプログラムの処理によって得られるデータなどは、ＲＡＭや外部記憶装置などに適宜に記憶される。
【０１８６】
ハードウェアエンティティでは、外部記憶装置（あるいはＲＯＭなど）に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にＣＰＵで解釈実行・処理される。その結果、ＣＰＵが所定の機能（上記、…部、…手段などと表した各構成要件）を実現する。
【０１８７】
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【０１８８】
既述のように、上記実施形態において説明したハードウェアエンティティ（本発明の装置）における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
【０１８９】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等を、光磁気記録媒体として、ＭＯ（Magneto-Optical disc）等を、半導体メモリとしてＥＥＰ−ＲＯＭ（Electronically Erasable and Programmable-Read Only Memory）等を用いることができる。
【０１９０】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【０１９１】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【０１９２】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2018207441.tif 000031
【図２】
2018207441.tif 000032
【図３】
2018207441.tif 000033
【図４】
2018207441.tif 000034
【図５】
2018207441.tif 000035
【図６】
2018207441.tif 000036
【図７】
2018207441.tif 000037
【図８】
2018207441.tif 000038
【図９】
2018207441.tif 000039
【図１０】
2018207441.tif 000040
【図１１】
2018207441.tif 000041
【図１２】
2018207441.tif 000042
【図１３】
2018207441.tif 000043
【図１４】
2018207441.tif 000044
【図１５】
2018207441.tif 000045
【図１６】
2018207441.tif 000046
【図１７】
2018207441.tif 000047
【図１８】
2018207441.tif 000048
【図１９】
2018207441.tif 000049
【図２０】
2018207441.tif 000050
【図２１】
2018207441.tif 000051
【図２２】
2018207441.tif 000052
【図２３】
2018207441.tif 000053
【図２４】
2018207441.tif 000054
【図２５】
2018207441.tif 000055
【図２６】
2018207441.tif 000056
【図２７】
2018207441.tif 000057