JP2012050053A - 認証装置、認証方法、及びプログラム - Google Patents
認証装置、認証方法、及びプログラム Download PDFInfo
- Publication number
- JP2012050053A JP2012050053A JP2010224752A JP2010224752A JP2012050053A JP 2012050053 A JP2012050053 A JP 2012050053A JP 2010224752 A JP2010224752 A JP 2010224752A JP 2010224752 A JP2010224752 A JP 2010224752A JP 2012050053 A JP2012050053 A JP 2012050053A
- Authority
- JP
- Japan
- Prior art keywords
- verifier
- algorithm
- challenge
- prover
- cmt
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
- H04L9/3221—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
【解決手段】L個(L≧2)の秘密鍵si(i=1〜L)、及びn次多変数多項式F(n≧2)についてyi=F(si)を満たすL個の公開鍵yiを保持する鍵保持部と、(L−1)個のyi=F(si)を満たす秘密鍵siを知っていることを証明するための対話プロトコルを検証者との間で実行する対話プロトコル実行部と、を備え、前記対話プロトコル実行部は、前記検証者との間で前記対話プロトコルを実行する際に、どの秘密鍵siを使用したかを当該検証者に知られないようにする、認証装置が提供される。
【選択図】図9
Description
ここで、以下に記載する本発明の実施形態に関する説明の流れについて簡単に述べる。まず、図1を参照しながら、公開鍵認証方式のアルゴリズム構成について説明する。次いで、図2を参照しながら、nパスの公開鍵認証方式について説明する。次いで、図3を参照しながら、SSH10a公開鍵認証方式の対話プロトコルについて説明する。次いで、図4を参照しながら、SSH10b公開鍵認証方式の対話プロトコルについて説明する。次いで、図5、図6を参照しながら、対話プロトコルの繰り返し構成について説明する。この中で、能動的攻撃に対する安全性レベルについて簡単に説明する。
1:はじめに
1−1:公開鍵認証方式のアルゴリズム構成
1−2:nパスの公開鍵認証方式について
1−3:SSH10a公開鍵認証方式の対話プロトコル
1−4:SSH10b公開鍵認証方式の対話プロトコル
1−5:対話プロトコルの繰り返し構成
1−6:SSH10a公開鍵認証方式に対する偽証アルゴリズム
1−7:SSH10b公開鍵認証方式に対する偽証アルゴリズム
2:第1実施形態(本手法#1)
2−1:概要
2−2:SSH10a公開鍵認証方式への適用
2−3:SSH10a公開鍵認証方式への適用(変形例1)
2−4:SSH10a公開鍵認証方式への適用(変形例2)
2−5:SSH10a公開鍵認証方式への適用(変形例3)
2−6:SSH10b公開鍵認証方式への適用
2−7:SSH10b公開鍵認証方式への適用(変形例)
3:第2実施形態(本手法#2)
3−1:概要
3−2:SSH10a公開鍵認証方式への適用
3−3:SSH10a公開鍵認証方式への適用(変形例)
3−4:SSH10b公開鍵認証方式への適用
3−5:SSH10b公開鍵認証方式への適用(変形例)
4:補足
4−1:方式の拡張について
4−2:非対話型の公開鍵認証方式について
4−3:通信量の削減方法について
5:ハードウェア構成
6:まとめ
はじめに、本発明に係る実施形態について詳細に説明するに先立ち、一般的な公開鍵認証方式のアルゴリズム構成、及びnパスの公開鍵認証方式について簡単に説明する。
まず、図1を参照しながら、公開鍵認証方式のアルゴリズム構成について説明する。図1は、公開鍵認証方式のアルゴリズム構成について説明するための説明図である。
公開鍵認証方式とは、ある人(証明者)が、公開鍵pk及び秘密鍵skを利用して、他の人(検証者)に本人であることを納得させるための認証方式である。例えば、証明者Aの公開鍵pkAは、検証者に公開される。一方、証明者Aの秘密鍵skAは、証明者により秘密に管理される。公開鍵認証方式では、公開鍵pkAに対応する秘密鍵skAを知る者が証明者A本人であるとみなされる。
公開鍵認証方式のモデルには、図1に示すように、証明者と検証者という2つのエンティティが存在する。証明者は、鍵生成アルゴリズムGenを用いて、証明者固有の秘密鍵skと公開鍵pkの組を生成する。次いで、証明者は、鍵生成アルゴリズムGenを用いて生成した秘密鍵skと公開鍵pkの組を利用して検証者と対話プロトコルを実行する。このとき、証明者は、証明者アルゴリズムPを利用して対話プロトコルを実行する。上記の通り、対話プロトコルにおいて、証明者は、証明者アルゴリズムPを利用して、秘密鍵skを保有していることを検証者に証明する。
鍵生成アルゴリズムGenは、証明者により利用される。そして、鍵生成アルゴリズムGenは、証明者に固有の秘密鍵skと公開鍵pkの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された公開鍵pkは公開される。そして、公開された公開鍵pkは、検証者により利用される。一方、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者が秘密に管理する。そして、秘密に管理される秘密鍵skは、検証者に対して公開鍵pkに対応する秘密鍵skを保有していることを証明するために利用される。形式的に、鍵生成アルゴリズムGenは、セキュリティパラメータ1λ(λは0以上の整数)を入力とし、秘密鍵skと公開鍵pkを出力するアルゴリズムとして、下記の式(1)のように表現される。
証明者アルゴリズムPは、証明者により利用される。そして、証明者アルゴリズムPは、公開鍵pkに対応する秘密鍵skを保有していることを証明するアルゴリズムである。証明者アルゴリズムPは、証明者の秘密鍵skと公開鍵pkを入力とし、検証者との対話プロトコルを実行するアルゴリズムとして定義される。
検証者アルゴリズムVは、検証者により利用される。そして、検証者アルゴリズムVは、対話プロトコルの中で、公開鍵pkに対応する秘密鍵skを証明者が保有しているか否かを検証するアルゴリズムである。検証者アルゴリズムVは、証明者の公開鍵pkを入力とし、証明者との間で対話プロトコルを実行した後、0又は1(1bit)を出力するアルゴリズムとして定義される。なお、出力0の場合には証明者が不正なものであるとし、出力1の場合には証明者が正当なものであるとする。
上記の通り、公開鍵認証方式は、安全性を確保するため、健全性と零知識性という2つの条件を満たすことが求められる。しかし、証明者が秘密鍵skを保有していることを証明者に証明させるためには、証明者が秘密鍵skに依存した手続きを実行し、その結果を検証者に通知して、その通知内容に基づく検証を検証者に実行させる必要がある。秘密鍵skに依存した手続きを実行するのは、健全性を担保するために必要である。一方で、この手続きの結果を検証者に通知しても、秘密鍵skの情報が一切検証者に漏れないようにする必要がある。そのため、これらの要件を満たすように、上記の鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVが設計される。
次に、図2を参照しながら、nパスの公開鍵認証方式について説明する。図2は、nパスの公開鍵認証方式について説明するための説明図である。
次に、図3を参照しながら、SSH10a公開鍵認証方式の対話プロトコルについて説明する。図3は、SSH10a公開鍵認証方式の対話プロトコルについて説明するための説明図である。なお、SSH10a公開鍵認証方式とは、本件発明者(作本、白井、樋渡)により考案された多次多変数連立方程式の求解問題に基づく公開鍵認証方式の一つである。また、このSSH10a公開鍵認証方式は、3パスの公開鍵認証方式の一例である。
まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f1(x1,…,xn),…,fm(x1,…,xn)と、ベクトルs=(s1,…,sn)∈Knを生成する。次に、鍵生成アルゴリズムGenは、y=(y1,…,ym)←(f1(s),…,fm(s))を計算する。そして、鍵生成アルゴリズムGenは、(f1,…,fm,y)を公開鍵pkに設定し、sを秘密鍵に設定する。なお、以下では、n変数のベクトル(x1,…,xn)をxと表記し、m本のn変数2次多項式(f1(x),…,fm(x))をF(x)と表記する。
次に、図3を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。SSH10a公開鍵認証方式の対話プロトコルは、「証明者がy=F(s)を満たすsを知っていること」をsの情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器G1に数wを適用してベクトルr∈Knと数w’を生成する。つまり、証明者アルゴリズムPは、(r,w’)←G1(w)を計算する。次いで、証明者アルゴリズムPは、擬似乱数生成器G2に数w’を適用して2つのベクトルt∈Kn、e∈Kmを生成する。つまり、証明者アルゴリズムPは、(t,e)←G2(w’)を計算する。次いで、証明者アルゴリズムPは、z←s−rを計算する。この計算は、秘密鍵sをベクトルrによりマスクする操作に相当する。さらに、証明者アルゴリズムPは、t’←r+tを計算する。次いで、証明者アルゴリズムPは、e’←F(r)−c+eを計算する。
Cmtを受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジCh∈R{0,1,2}を証明者(証明者アルゴリズムP)に送る。
Chを受け取った証明者アルゴリズムPは、検証者アルゴリズムVから受け取ったチャレンジChに応じて検証者アルゴリズムVへと送り返す回答Rspを生成する。もしCh=0の場合、証明者アルゴリズムPは、回答Rsp←(r,t,e)を生成する。また、Ch=1の場合、証明者アルゴリズムPは、回答Rsp=(z,t,e)を生成する。そして、Ch=2の場合、証明者アルゴリズムPは、回答Rsp=(z,t’,e’)を生成する。なお、Step.3における上記の操作をRsp←Pa,2(Ch;St)と表現することにする。また、Step.3で生成されたRspは、検証者(検証者アルゴリズムV)に送られる。
Rspを受け取った検証者アルゴリズムVは、受け取ったRspに対して次のいずれかの検証を実行する。
Ch=1の場合、検証者アルゴリズムVは、(z”,t”,e”)←Rspを実行する。次いで、検証者アルゴリズムVは、c1=H1(Fb(z”,t”)+e”,z”)及びc2=H2(t”,e”)が成り立つか否かを検証する。
Ch=2の場合、検証者アルゴリズムVは、(z”,t''',e''')←Rspを実行する。次いで、検証者アルゴリズムVは、c1=H1(F(z”)+Fb(z”,t''')+e'''−y,z”)及びc3=H3(t''',e''')が成り立つか否かを検証する。
次に、図4を参照しながら、SSH10b公開鍵認証方式の対話プロトコルについて説明する。図4は、SSH10b公開鍵認証方式の対話プロトコルについて説明するための説明図である。なお、SSH10b公開鍵認証方式とは、本件発明者(作本、白井、樋渡)により考案された多次多変数連立方程式の求解問題に基づく公開鍵認証方式の一つである。また、このSSH10b公開鍵認証方式は、5パスの公開鍵認証方式の一例である。
まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f1(x1,…,xn),…,fm(x1,…,xn)と、ベクトルs=(s1,…,sn)∈Knを生成する。次に、鍵生成アルゴリズムGenは、y=(y1,…,ym)←(f1(s),…,fm(s))を計算する。そして、鍵生成アルゴリズムGenは、(f1,…,fm,y)を公開鍵pkに設定し、sを秘密鍵に設定する。なお、以下では、n変数のベクトル(x1,…,xn)をxと表記し、m本のn変数2次多項式(f1(x),…,fm(x))をF(x)と表記する。
次に、図4を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。SSH10b公開鍵認証方式の対話プロトコルは、「証明者がy=F(s)を満たすsを知っていること」をsの情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用してベクトルr∈Kn、t∈Kn、e∈Kmを生成する。つまり、証明者アルゴリズムPは、(r,t,e)←G(w)を計算する。次いで、証明者アルゴリズムPは、z←s−rを計算する。この計算は、秘密鍵sをベクトルrによりマスクする操作に相当する。
CmtAを受け取った検証者アルゴリズムVは、q通り存在する環Kの元から1つの乱数αを選択する。そして、検証者アルゴリズムVは、チャレンジChA=αを証明者(証明者アルゴリズムP)に送る。
ChAを受け取った証明者アルゴリズムPは、t’←αr+tを計算する。さらに、証明者アルゴリズムPは、e’←α(F(r)−c)+eを計算する。そして、証明者アルゴリズムPは、StB←(StA,ChA,t’,e’)及びCmtB←(t’,e’)を設定する。また、証明者アルゴリズムPは、CmtBを検証者(検証者アルゴリズムV)に送る。なお、Step.3における上記の操作を(CmtB;StB)←Pb,2(ChA;StA)と表現することにする。
CmtBを受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジChB∈R{0,1}を証明者(証明者アルゴリズムP)に送る。
ChBを受け取った証明者アルゴリズムPは、検証者アルゴリズムVから受けたチャレンジChBに応じて検証者(検証者アルゴリズムV)に送り返す回答Rspを次のようにして生成する。ChB=0の場合、証明者アルゴリズムPは、Rsp←rに設定する。ChB=1の場合、証明者アルゴリズムPは、Rsp←zに設定する。そして、証明者アルゴリズムPは、回答Rspを検証者(検証者アルゴリズムV)に送る。なお、Step.5における上記の操作をRsp←Pb,3(ChB;StB)と表現することにする。
回答Rspを受け取った検証者アルゴリズムVは、証明者(証明者アルゴリズムP)から受け取った回答Rspを利用して以下の検証処理を実行する。
ChB=1の場合、検証者アルゴリズムVは、z”←Rspとして、c1=H1(α(F(z”)−y)+Fb(z”,t’)+e’,z”)が成り立つか否かを検証する。
さて、上記のSSH10a公開鍵認証方式の対話プロトコルを適用すれば、偽証が成功する確率を2/3以下に抑制することができる。従って、この対話プロトコルを2回実行すれば、偽証が成功する確率を(2/3)2以下に抑制することができる。同様に、この対話プロトコルをN回実行すると、偽証が成功する確率は(2/3)Nとなり、Nを十分に大きい数(例えば、N=140)にすれば、偽証が成功する確率は無視できる程度に小さくなる。
ここで、図7を参照しながら、SSH10a公開鍵認証方式(1回の対話プロトコル)において2/3の確率で成功する偽証アルゴリズムについて考えてみたい。図7は、SSH10a公開鍵認証方式(1回の対話プロトコル)において2/3の確率で成功する偽証アルゴリズムについて説明するための説明図である。この偽証アルゴリズムは、偽証者が検証者に対して「y=F(s)を満たすsを知っているふり」をするアルゴリズムである。但し、この偽証アルゴリズムを適用しても、1/3の確率で偽証が失敗する。
まず、偽証者(偽証アルゴリズム)は、ベクトルs,r,t∈Kn、e∈Kmを生成する。次いで、偽証アルゴリズムは、Ch*∈{0,1,2}を任意に選択する。このCh*は、偽証アルゴリズムが回答できない検証パターンに対応する。なお、ここで用いるsは正当な秘密鍵でない。しかし、証明者(証明者アルゴリズムP)は、Ch*以外の検証パターンならば正当な秘密鍵を利用せずに正しく回答することができる。
Cmtを受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジCh∈R{0,1,2}を偽証者(偽証アルゴリズム)に送る。
Chを受け取った偽証アルゴリズムは、検証者アルゴリズムVから受け取ったチャレンジChに応じて検証者アルゴリズムVへと送り返す回答Rspを生成する。なお、Ch=Ch*の場合、偽証アルゴリズムは、エラーを出力して対話プロトコルを終了する。Ch≠Ch*であってCh=0の場合、偽証アルゴリズムは、回答Rsp←(r,t,e)を生成する。また、Ch=1の場合、偽証アルゴリズムは、回答Rsp=(z,t,e)を生成する。そして、Ch=2の場合、偽証アルゴリズムは、回答Rsp=(z,t’,e’)を生成する。
Ch≠Ch*の場合、回答Rspが検証者アルゴリズムVに送られるため、検証者アルゴリズムVによって検証処理0/1←Deca(F,y;Cmt,Ch,Rsp)が実施される。
次に、図8を参照しながら、SSH10b公開鍵認証方式(1回の対話プロトコル)において1/2の確率で成功する偽証アルゴリズムについて考えてみたい。図8は、SSH10b公開鍵認証方式(1回の対話プロトコル)において1/2の確率で成功する偽証アルゴリズムについて説明するための説明図である。この偽証アルゴリズムは、偽証者が検証者に対して「y=F(s)を満たすsを知っているふり」をするアルゴリズムである。但し、この偽証アルゴリズムを適用しても、1/2の確率で偽証が失敗する。
まず、偽証アルゴリズムは、ベクトルs,r,t∈Kn、e∈Kmを生成する。次いで、偽証アルゴリズムは、Ch* B∈{0,1}を選択する。このCh* Bは、i0の系列について偽証者(偽証アルゴリズム)が回答できない検証パターンに対応する。なお、ここで用いるsi0は正当な秘密鍵ではないが、偽証アルゴリズムは、Ch* B以外の検証パターンに対しては正当な秘密鍵を利用せずに正しく回答できる。
CmtAを受け取った検証者アルゴリズムVは、q通り存在する環Kの元から1つの乱数αを選択する。そして、検証者アルゴリズムVは、チャレンジChA=αを偽証者(偽証アルゴリズム)に送る。
ChAを受け取った偽証アルゴリズムは、t’←αr+tを計算する。さらに、偽証アルゴリズムは、Ch* B=1の場合、e’←α(F(r)−c)+eを計算する。一方、Ch* B=0の場合、偽証アルゴリズムは、e’←α(y−F(s)+F(r)−c)+eを計算する。そして、偽証アルゴリズムは、StB←(StA,ChA,t’,e’)及びCmtB←(t’,e’)を設定する。また、偽証アルゴリズムは、CmtBを検証者(検証者アルゴリズムV)に送る。なお、Step.3における上記の操作を(CmtB;StB)←Mb,2(ChA;StA)と表現することにする。
CmtBを受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジChB∈R{0,1}を偽証者(偽証アルゴリズム)に送る。
ChBを受け取った偽証アルゴリズムは、ChB=Ch* Bの場合、エラーを出力して対話プロトコルを終了する。ChB≠Ch* Bの場合、偽証アルゴリズムは、検証者アルゴリズムVから受けたチャレンジChBに応じて検証者(検証者アルゴリズムV)に送り返す回答Rspを次のようにして生成する。
ChB≠Ch* Bの場合、回答Rspが検証者アルゴリズムVに送られるため、検証者アルゴリズムVによって検証処理0/1←Decb(F,y;CmtA,ChA,CmtB,ChB,Rsp)が実施される。
ここまで、SSH10a公開鍵認証方式、SSH10b公開鍵認証方式、その偽証アルゴリズム、及び対話プロトコルの繰り返し構成について説明してきた。これらの公開鍵認証方式は、1組の鍵ペア(公開鍵y、秘密鍵s)を用いて「yについてy=F(s)となるsを知っていること」を証明者が検証者に対して証明する方式である。そのため、検証で受理される対話を行った場合、「検証を行った証明者がsを用いた」という情報を検証者に知られてしまうことが避けられなかった。また、これらの方式で用いるFは衝突困難性が保証されていない。その結果、これらの公開鍵認証方式は、並列的繰り返し構成を行なった場合、能動的攻撃に対する安全性レベルを確実に保証しているか否かが知られていなかった。
まず、本発明の第1実施形態(以下、本手法#1)について説明する。
本手法#1は、SSH10a公開鍵認証方式、SSH10b公開鍵認証方式に対し、並列的繰り返し構成を行なった場合にも能動的攻撃に対する安全性レベルが保証されるようにする仕組みを適用したものである。繰り返しになるが、能動的攻撃に対する安全性レベルが保証されているか否かが知られていなかった理由は、利用する関数Fの衝突困難性が保証されない上、「検証を行った証明者がsを用いた」という情報を検証者に知られてしまうことが避けられなかったからである。従って、対話プロトコルの中で「検証を行った証明者がsを用いた」という情報を検証者に知られないようにすれば、能動的攻撃に対する安全性レベルを保証することができる。
まず、図9を参照しながら、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコルについて説明する。図9は、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコルについて説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f1(x1,…,xn),…,fm(x1,…,xn)と、L個のベクトルs1,…,sL∈Knを生成する。なお、n変数のベクトル(x1,…,xn)をxと表記し、m本のn変数2次多項式(f1(x),…,fm(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y1=F(s1),…,yL=F(sL)を計算する。そして、鍵生成アルゴリズムGenは、(F,y1,…,yL)を公開鍵pkに設定し、(s1,…,sL)を秘密鍵に設定する。
次に、図9を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。本手法#1の対話プロトコルは、「証明者がL−1個のyi=F(si)を満たすsiを知っていること」を、「どのsiを使用したか否か」という情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、i=1,…,Lについて、ベクトルri,ti∈Knと、ベクトルei∈Kmを生成する。次いで、証明者アルゴリズムPは、(Cmti;Sti)←Pa,1(F,yi,si;ri,ti,ei)を計算する。そして、証明者アルゴリズムPは、Cmt1,…,CmtLを検証者(検証者アルゴリズムV)に送る。
Cmt1,…,CmtLを受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジCh1,…,ChL∈R{0,1,2}を証明者(証明者アルゴリズムP)に送る。
Ch1,…,ChLを受け取った証明者アルゴリズムPは、i=1,…,Lから1個だけ回答しないチャレンジChiのインデックスi(以下、i*)をランダムに選択する。次いで、証明者アルゴリズムPは、i∈{1,…,L}\{i*}についてRspi←Pa,2(Chi;Sti)を計算する。そして、証明者アルゴリズムPは、(Rsp1,…,Rspi*−1,Rspi*+1,…,RspL,i*)を検証者(検証者アルゴリズムV)に送る。
(Rsp1,…,Rspi*−1,Rspi*+1,…,RspL,i*)を受け取った検証者アルゴリズムVは、i∈{1,…,L}\{i*}について0/1←Deca(F,yi;Cmti,Chi,Rspi)を実行する。そして、検証者アルゴリズムVは、i∈{1,…,L}\{i*}について全て受理(出力1)されれば検証が成立したものとみなす。
まず、図10を参照しながら、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例1)について説明する。図10は、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例1)について説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。但し、検証者アルゴリズムVにおいて、先に説明した偽証アルゴリズムの構成が利用される。また、L=3の場合について説明する。さらに、使用しないsiのインデックスをi0とする。以下、各アルゴリズムの内容について説明する。
まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f1(x1,…,xn),…,fm(x1,…,xn)と、L個のベクトルs1,…,sL∈Knを生成する。但し、si0は、適当に選択したベクトルを用いる。なお、n変数のベクトル(x1,…,xn)をxと表記し、m本のn変数2次多項式(f1(x),…,fm(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y1=F(s1),…,yL=F(sL)を計算する。但し、yi0=F(si0)になることは保証されていなくてもよい。そして、鍵生成アルゴリズムGenは、(F,y1,…,yL)を公開鍵pkに設定し、(s1,…,sL)を秘密鍵に設定する。
次に、図10を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、i=1,2,3について、ベクトルri,ti∈Knと、ベクトルei∈Kmを生成する。次いで、証明者アルゴリズムPは、Ch*∈{0,1,2}を1つ選択する。このCh*は、i0の系列について証明者が回答できない検証パターンに対応する。次いで、証明者アルゴリズムPは、i≠i0の場合、(Cmti;Sti)←Pa,1(F,yi,si;ri,ti,ei)を計算する。一方、i=i0の場合、証明者アルゴリズムPは、(Cmti;Sti)←Ma,1(F,yi;Ch*,si,ri,ti,ei)を計算する。そして、証明者アルゴリズムPは、Cmt1,Cmt2,Cmt3を検証者(検証者アルゴリズムV)に送る。
Cmt1,Cmt2,Cmt3を受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジCh1,Ch2,Ch3∈R{0,1,2}を証明者(証明者アルゴリズムP)に送る。
Ch1,Ch2,Ch3を受け取った証明者アルゴリズムPは、i=1,…,Lから1個だけ回答しないチャレンジChiのインデックスi(以下、i*)を次のようにして選択する。Chi0=Ch*の場合、検証者アルゴリズムVは、i*←i0を設定する。一方、Chi0≠Ch*の場合、検証者アルゴリズムVは、i*∈{1,2,3}\{i0}からランダムにi*を選択する。このi*の設定方法を用いると、検証者がどのような検証パターンを要求してきてもi*は、それぞれ1/3の確率で1,2,3の値をとる。つまり、i0が1,2,3のどの値であったかという情報が完全に秘匿されているのである。
(Rsp1,…,Rspi*−1,Rspi*+1,…,RspL,i*)を受け取った検証者アルゴリズムVは、i∈{1,2,3}\{i*}について0/1←Deca(F,yi;Cmti,Chi,Rspi)を実行する。そして、検証者アルゴリズムVは、i∈{1,2,3}\{i*}について全て受理(出力1)されれば検証が成立したものとみなす。
次に、図11を参照しながら、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例2)について説明する。なお、変形例2は、図9に示した対話プロトコルの一変形例である。図11は、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例2)について説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f1(x1,…,xn),…,fm(x1,…,xn)と、2個のベクトルs1,s2∈Knを生成する。なお、n変数のベクトル(x1,…,xn)をxと表記し、m本のn変数2次多項式(f1(x),…,fm(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y1=F(s1),y2=F(s2)を計算する。そして、鍵生成アルゴリズムGenは、(F,y1,y2)を公開鍵pkに設定し、(s1,s2)を秘密鍵に設定する。
次に、図11を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。本手法#1の対話プロトコルは、「証明者が1個のyi=F(si)を満たすsiを知っていること」を、「どのsiを使用したか否か」という情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、ベクトルr1,t1∈Knと、ベクトルe1∈Kmを生成する。次いで、証明者アルゴリズムPは、(Cmt1;St1)←Pa,1(F,y1,s1;r1,t1,e1)、(Cmt2;St2)←Pa,1(F,y2,s2;r1,t1,e1)を計算する。但し、Cmt1=(c11,c12,c13)、Cmt2=(c21,c12,c13)となる。次いで、証明者アルゴリズムPは、c11,c12,c13,c21を検証者(検証者アルゴリズムV)に送る。
c11,c12,c13,c21を受け取った検証者アルゴリズムVは、どの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジの組(Ch1,Ch2)∈{0,1,2}×{0,1,2}を証明者(証明者アルゴリズムP)に送る。
Ch1,Ch2を受け取った証明者アルゴリズムPは、回答するチャレンジChiのインデックスiをランダムに選択する。次いで、証明者アルゴリズムPは、選択したiについて、Rspi←Pa,2(Chi;Sti,r1,t1,e1)を計算する。そして、証明者アルゴリズムPは、(Rspi,i)を検証者(検証者アルゴリズムV)に送る。
Rspi,iを受け取った検証者アルゴリズムVは、0/1←Deca(F,yi;(ci1,c12,c13,),Chi,Rspi)を実行する。そして、検証者アルゴリズムVは、出力が1の場合(受理された場合)に検証が成立したものとみなす。
次に、図12を参照しながら、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例3)について説明する。なお、変形例3は、図11に示した対話プロトコル(変形例2)の一変形例である。図12は、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例3)について説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f1(x1,…,xn),…,fm(x1,…,xn)と、2個のベクトルs1,s2∈Knを生成する。なお、n変数のベクトル(x1,…,xn)をxと表記し、m本のn変数2次多項式(f1(x),…,fm(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y1=F(s1),y2=F(s2)を計算する。そして、鍵生成アルゴリズムGenは、(F,y1,y2)を公開鍵pkに設定し、(s1,s2)を秘密鍵に設定する。
次に、図12を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。本手法#1の対話プロトコルは、「証明者が1個のyi=F(si)を満たすsiを知っていること」を、「どのsiを使用したか否か」という情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、ベクトルr1,t1∈Knと、ベクトルe1∈Kmを生成する。次いで、証明者アルゴリズムPは、(Cmt1;St1)←Pa,1(F,y1,s1;r1,t1,e1)、(Cmt2;St2)←Pa,1(F,y2,s2;r1,t1,e1)を計算する。但し、Cmt1=(c11,c12,c13)、Cmt2=(c21,c12,c13)となる。次いで、証明者アルゴリズムPは、c11,c12,c13,c21を検証者(検証者アルゴリズムV)に送る。
c11,c12,c13,c21を受け取った検証者アルゴリズムVは、どの検証パターンを利用するかを選択する。このとき、検証者アルゴリズムVは、検証パターン(チャレンジの組(Ch1,Ch2))を(Ch1,Ch2)∈{(0,0),(1,1),(1,2),(2,1),(2,2)}の中から選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジの組(Ch1,Ch2)を証明者(証明者アルゴリズムP)に送る。
Ch1,Ch2を受け取った証明者アルゴリズムPは、回答するチャレンジChiのインデックスiをランダムに選択する。次いで、証明者アルゴリズムPは、選択したiについて、Rspi←Pa,2(Chi;Sti,r1,t1,e1)を計算する。そして、証明者アルゴリズムPは、(Rspi,i)を検証者(検証者アルゴリズムV)に送る。
(Rspi,i)を受け取った検証者アルゴリズムVは、0/1←Deca(F,yi;(ci1,c12,c13,),Chi,Rspi)を実行する。そして、検証者アルゴリズムVは、出力が1の場合(受理された場合)に検証が成立したものとみなす。
次に、図13を参照しながら、本手法#1の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコルについて説明する。図13は、本手法#1の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコルについて説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f1(x1,…,xn),…,fm(x1,…,xn)と、L個のベクトルs1,…,sL∈Knを生成する。なお、n変数のベクトル(x1,…,xn)をxと表記し、m本のn変数2次多項式(f1(x),…,fm(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y1=F(s1),…,yL=F(sL)を計算する。そして、鍵生成アルゴリズムGenは、(F,y1,…,yL)を公開鍵pkに設定し、(s1,…,sL)を秘密鍵に設定する。
次に、図13を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。本手法#1の対話プロトコルは、「証明者がL−1個のyi=F(si)を満たすsiを知っていること」を、「どのsiを使用したか否か」という情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、i=1,…,Lについて、ベクトルri,ti∈Knと、ベクトルei∈Kmを生成する。次いで、証明者アルゴリズムPは、(CmtA,i;StA,i)←Pa,1(F,yi,si;ri,ti,ei)を計算する。そして、証明者アルゴリズムPは、(CmtA,1,…,CmtA,L)を検証者(検証者アルゴリズムV)に送る。
(CmtA,1,…,CmtA,L)を受け取った検証者アルゴリズムVは、q通り存在する環Kの元からL個の乱数の組(α1,…,αL)を選択する。そして、検証者アルゴリズムVは、チャレンジ(ChA,1,…,ChA,L)=(α1,…,αL)を証明者(証明者アルゴリズムP)に送る。
(ChA,1,…,ChA,L)を受け取った証明者アルゴリズムPは、i=1,…,Lについて(CmtB,i;StB,i)←Pb,2(ChA,i;StA,i)を計算する。そして、証明者アルゴリズムPは、(CmtB,1,…,CmtB,L)を検証者(検証者アルゴリズムV)に送る。
(CmtB,1,…,CmtB,L)を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかをi=1,…,Lのそれぞれについて選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジChB,1,…,ChB,L∈R{0,1}を証明者(証明者アルゴリズムP)に送る。
ChB,1,…,ChB,Lを受け取った証明者アルゴリズムPは、i=1,…,Lから1個だけ回答しないi(以下、i*)をランダムに選択する。そして、証明者アルゴリズムPは、Rspi←Pb,3(ChB,i;StB,i)を計算する。そして、証明者アルゴリズムPは、(Rsp1,…,Rspi*−1,Rspi*+1,…,RspL,i*)を検証者(検証者アルゴリズムV)に送る。
(Rsp1,…,Rspi*−1,Rspi*+1,…,RspL,i*)を受け取った検証者アルゴリズムVは、i∈{1,…,L}\{i*}について0/1←Decb(F,yi;CmtA,i,ChA,i,CmtB,i,ChB,i,Rspi)を実施する。そして、検証者アルゴリズムVは、i∈{1,…,L}\{i*}について全て受理(出力1)されれば検証が成立したものとみなす。
以下、図14を参照しながら、本手法#1の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明する。図14は、本手法#1の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。但し、検証者アルゴリズムVにおいて、先に説明した偽証アルゴリズムの構成が利用される。また、L=2の場合について説明する。さらに、使用しないsiのインデックスをi0とする。以下、各アルゴリズムの内容について説明する。
まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f1(x1,…,xn),…,fm(x1,…,xn)と、L個のベクトルs1,…,sL∈Knを生成する。但し、si0は、適当に選択したベクトルを用いる。なお、n変数のベクトル(x1,…,xn)をxと表記し、m本のn変数2次多項式(f1(x),…,fm(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y1=F(s1),…,yL=F(sL)を計算する。但し、yi0=F(si0)になることは保証されていなくてもよい。そして、鍵生成アルゴリズムGenは、(F,y1,…,yL)を公開鍵pkに設定し、(s1,…,sL)を秘密鍵に設定する。
次に、図14を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、i=1,2について、ベクトルri,ti∈Knと、ベクトルei∈Kmを生成する。次いで、証明者アルゴリズムPは、ChB *∈{0,1}を1つ選択する。このChB *は、i0の系列について証明者が回答できない検証パターンに対応する。次いで、証明者アルゴリズムPは、i≠i0の場合について、(CmtA,i;StA,i)←Pb,1(F,yi,si;ri,ti,ei)を計算する。また、i=i0の場合について、証明者アルゴリズムPは、(CmtA,i;StA,i)←Mb,1(F,yi;ChB *,si,ri,ti,ei)を計算する。そして、証明者アルゴリズムPは、(CmtA,1,CmtA,2)を検証者(検証者アルゴリズムV)に送る。
(CmtA,1,CmtA,2)を受け取った検証者アルゴリズムVは、q通り存在する環Kの元から2つの乱数の組(α1,α2)を選択する。そして、検証者アルゴリズムVは、チャレンジ(ChA,1,ChA,2)=(α1,α2)を証明者(証明者アルゴリズムP)に送る。
(ChA,1,ChA,2)を受け取った証明者アルゴリズムPは、i=1,2について次のようにCmtB,iを計算する。i≠i0の場合、証明者アルゴリズムPは、(CmtB,i;StB,i)←Pb,2(ChA,i;StA,i)を計算する。一方、i=i0の場合、証明者アルゴリズムPは、(CmtB,i;StB,i)←Mb,2(ChA,i;StA,i)を計算する。そして、証明者アルゴリズムPは、(CmtB,1,CmtB,2)を検証者(検証者アルゴリズムV)に送る。
(CmtB,1,CmtB,2)を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジ(ChB,1,ChB,2)∈R{0,1}を証明者(証明者アルゴリズムP)に送る。
(ChB,1,ChB,2)を受け取った証明者アルゴリズムPは、i=1,2から1個だけ回答しないi(以下、i*)を次のようにして選択する。Chi0=Ch*の場合、証明者アルゴリズムPは、Chi0≠Ch*に設定する。一方、i≠i0の場合、証明者アルゴリズムPは、i*≠i0となるようにランダムに設定する。このi*の設定方法を用いると、検証者がどのような検証パターンを要求してきてもi*は、それぞれ1/2の確率で1,2の値をとる。つまり、i0が1,2のどの値であったかという情報が完全に秘匿されているのである。
(Rsp1,Rsp2,i*)を受け取った検証者アルゴリズムVは、i∈{1,2}\{i*}について0/1←Decb(F,yi;CmtA,i,ChA,i,CmtB,i,ChB,i,Rspi)を実行する。そして、検証者アルゴリズムVは、i∈{1,2}\{i*}について全て受理(出力1)されれば検証が成立したものとみなす。
次に、本発明の第2実施形態(本手法#2)について説明する。
本手法#2は、SSH10a公開鍵認証方式、SSH10b公開鍵認証方式に対し、能動的攻撃に対する安全性レベルが保証されるようにする仕組みを適用したものである。繰り返しになるが、能動的攻撃に対する安全性レベルが保証されているか否かが知られていなかった理由は、利用する関数Fの衝突困難性が保証されない上、「検証を行った証明者がsを用いた」という情報を検証者に知られてしまうことが避けられなかったからである。従って、対話プロトコルの中で「検証を行った証明者がsを用いた」という情報を検証者に知られないようにすれば、能動的攻撃に対する安全性レベルを保証することができる。
まず、図15を参照しながら、本手法#2の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコルについて説明する。図15は、本手法#2の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコルについて説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f1(x1,…,xn),…,fm(x1,…,xn)と、L個のベクトルs1,…,sL∈Knを生成する。なお、n変数のベクトル(x1,…,xn)をxと表記し、m本のn変数2次多項式(f1(x),…,fm(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y1=F(s1),…,yL=F(sL)を計算する。そして、鍵生成アルゴリズムGenは、(F,y1,…,yL)を公開鍵pkに設定し、(s1,…,sL)を秘密鍵に設定する。
まず、証明者アルゴリズムPは、i=1,…,Lについて、ベクトルri,ti∈Knと、ベクトルei∈Kmを生成する。次いで、証明者アルゴリズムPは、(Cmti;Sti)←Pa,1(F,yi,si;ri,ti,ei)を計算する。そして、証明者アルゴリズムPは、Cmt1,…,CmtLを検証者(検証者アルゴリズムV)に送る。
Cmt1,…,CmtLを受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。このとき、検証者アルゴリズムVは、2組の検証パターンの組み合わせを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジの組(Ch1 (0),…,ChL (0)),(Ch1 (1),…,ChL (1))∈R{0,1,2}を証明者(証明者アルゴリズムP)に送る。但し、Chi (0)≠Chi (1)である。
(Ch1 (0),…,ChL (0)),(Ch1 (1),…,ChL (1))を受け取った証明者アルゴリズムPは、いずれのチャレンジの組に回答するかをランダムに選択する。なお、その選択結果をd∈R{0,1}と表現する。そして、証明者アルゴリズムPは、i∈{1,…,L}についてRspi←Pa,2(Ch(d) i;Sti)を計算する。その後、証明者アルゴリズムPは、(Rsp1,…,RspL,d)を検証者(検証者アルゴリズムV)に送る。
(Rsp1,…,RspL,d)を受け取った検証者アルゴリズムVは、i∈{1,…,L}について0/1←Deca(F,yi;Cmti,Ch(d) i,Rspi)を実行する。そして、検証者アルゴリズムVは、i∈{1,…,L}について全て受理(出力1)されれば検証が成立したものとみなす。
以下、図16を参照しながら、本手法#2の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明する。図16は、本手法#2の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。但し、検証者アルゴリズムVにおいて、先に説明した偽証アルゴリズムの構成が利用される。また、使用しないsiのインデックスをi0とする。以下、各アルゴリズムの内容について説明する。
まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f1(x1,…,xn),…,fm(x1,…,xn)と、L個のベクトルs1,…,sL∈Knを生成する。但し、si0は、適当に選択したベクトルを用いる。なお、n変数のベクトル(x1,…,xn)をxと表記し、m本のn変数2次多項式(f1(x),…,fm(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y1=F(s1),…,yL=F(sL)を計算する。但し、yi0=F(si0)になることは保証されていなくてもよい。そして、鍵生成アルゴリズムGenは、(F,y1,…,yL)を公開鍵pkに設定し、(s1,…,sL)を秘密鍵に設定する。
次に、図16を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、i=1,…,Lについて、ベクトルri,ti∈Knと、ベクトルei∈Kmを生成する。次いで、証明者アルゴリズムPは、Ch*∈{0,1,2}を1つ選択する。このCh*は、i0の系列について証明者が回答できない検証パターンに対応する。次いで、証明者アルゴリズムPは、i≠i0の場合、(Cmti;Sti)←Pa,1(F,yi,si;ri,ti,ei)を計算する。一方、i=i0の場合、証明者アルゴリズムPは、(Cmti;Sti)←Ma,1(F,yi;Ch*,si,ri,ti,ei)を計算する。そして、証明者アルゴリズムPは、Cmt1,…,CmtLを検証者(検証者アルゴリズムV)に送る。
Cmt1,…,CmtLを受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。このとき、検証者アルゴリズムVは、2組の検証パターンの組み合わせを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジの組(Ch1 (0),…,ChL (0)),(Ch1 (1),…,ChL (1))∈R{0,1,2}を証明者(証明者アルゴリズムP)に送る。但し、Chi (0)≠Chi (1)である。
(Ch1 (0),…,ChL (0)),(Ch1 (1),…,ChL (1))を受け取った証明者アルゴリズムPは、いずれのチャレンジの組に回答するかを次のようにして選択する。なお、その選択結果をd∈R{0,1}と表現する。Chi0 (0)=Ch*の場合(条件1)、証明者アルゴリズムPは、d←1に設定する。一方、Chi0 (1)=Ch*の場合(条件2)、証明者アルゴリズムPは、d←0に設定する。条件1、2以外の場合、証明者アルゴリズムPは、ランダムにd∈{0,1}を設定する。このような設定方法によると、検証者がどのような検証パターンを要求してきても、dは1/2の確率で0,1の値をとるため、i0が1,…,Lのいずれであったかという情報は完全に秘匿される。
(Rsp1,…,RspL,d)を受け取った検証者アルゴリズムVは、i∈{1,…,L}について0/1←Deca(F,yi;Cmti,Ch(d) i,Rspi)を実行する。そして、検証者アルゴリズムVは、i∈{1,…,L}について全て受理(出力1)されれば検証が成立したものとみなす。
次に、図17を参照しながら、本手法#2の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコルについて説明する。図17は、本手法#2の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコルについて説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f1(x1,…,xn),…,fm(x1,…,xn)と、L個のベクトルs1,…,sL∈Knを生成する。なお、n変数のベクトル(x1,…,xn)をxと表記し、m本のn変数2次多項式(f1(x),…,fm(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y1=F(s1),…,yL=F(sL)を計算する。そして、鍵生成アルゴリズムGenは、(F,y1,…,yL)を公開鍵pkに設定し、(s1,…,sL)を秘密鍵に設定する。
次に、図135を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。本手法#2の対話プロトコルは、「証明者がL−1個のyi=F(si)を満たすsiを知っていること」を、「どのsiを使用したか否か」という情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、i=1,…,Lについて、ベクトルri,ti∈Knと、ベクトルei∈Kmを生成する。次いで、証明者アルゴリズムPは、(CmtA,i;StA,i)←Pa,1(F,yi,si;ri,ti,ei)を計算する。そして、証明者アルゴリズムPは、(CmtA,1,…,CmtA,L)を検証者(検証者アルゴリズムV)に送る。
(CmtA,1,…,CmtA,L)を受け取った検証者アルゴリズムVは、q通り存在する環Kの元からL個の乱数の組(α1,…,αL)を選択する。そして、検証者アルゴリズムVは、チャレンジ(ChA,1,…,ChA,L)=(α1,…,αL)を証明者(証明者アルゴリズムP)に送る。
(ChA,1,…,ChA,L)を受け取った証明者アルゴリズムPは、i=1,…,Lについて(CmtB,i;StB,i)←Pb,2(ChA,i;StA,i)を計算する。そして、証明者アルゴリズムPは、(CmtB,1,…,CmtB,L)を検証者(検証者アルゴリズムV)に送る。
(CmtB,1,…,CmtB,L)を受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。このとき、検証者アルゴリズムVは、2組の検証パターンの組み合わせを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジの組(ChB,1 (0),…,ChB,L (0)),(ChB,1 (1),…,ChB,L (1))∈R{0,1}Lを証明者(証明者アルゴリズムP)に送る。但し、ChB,i (0)≠ChB,i (1)である。
(ChB,1 (0),…,ChB,L (0)),(ChB,1 (1),…,ChB,L (1))を受け取った証明者アルゴリズムPは、いずれのチャレンジの組に回答するかをランダムに選択する。なお、その選択結果をd∈R{0,1}と表現する。そして、証明者アルゴリズムPは、i∈{1,…,L}についてRspi←Pb,2(ChB,i (d);StB,i)を計算する。その後、証明者アルゴリズムPは、(Rsp1,…,RspL,d)を検証者(検証者アルゴリズムV)に送る。
(Rsp1,…,RspL,d)を受け取った検証者アルゴリズムVは、i∈{1,…,L}について0/1←Decb(F,yi;CmtA,i,ChA,i,CmtB,i,ChB,i (d),Rspi)を実行する。そして、検証者アルゴリズムVは、i∈{1,…,L}について全て受理(出力1)されれば検証が成立したものとみなす。
以下、図18を参照しながら、本手法#2の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明する。図18は、本手法#2の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。但し、検証者アルゴリズムVにおいて、先に説明した偽証アルゴリズムの構成が利用される。また、使用しないsiのインデックスをi0とする。以下、各アルゴリズムの内容について説明する。
まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f1(x1,…,xn),…,fm(x1,…,xn)と、L個のベクトルs1,…,sL∈Knを生成する。但し、si0は、適当に選択したベクトルを用いる。なお、n変数のベクトル(x1,…,xn)をxと表記し、m本のn変数2次多項式(f1(x),…,fm(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y1=F(s1),…,yL=F(sL)を計算する。但し、yi0=F(si0)になることは保証されていなくてもよい。そして、鍵生成アルゴリズムGenは、(F,y1,…,yL)を公開鍵pkに設定し、(s1,…,sL)を秘密鍵に設定する。
次に、図18を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、i=1,…,Lについて、ベクトルri,ti∈Knと、ベクトルei∈Kmを生成する。次いで、証明者アルゴリズムPは、ChB *∈{0,1}を1つ選択する。このCh*は、i0の系列について証明者が回答できない検証パターンに対応する。次いで、証明者アルゴリズムPは、i≠i0の場合について、(CmtA,i;StA,i)←Pb,1(F,yi,si;ri,ti,ei)を計算する。また、i=i0の場合について、証明者アルゴリズムPは、(CmtA,i;StA,i)←Mb,1(F,yi;ChB *,si,ri,ti,ei)を計算する。そして、証明者アルゴリズムPは、(CmtA,1,…,CmtA,L)を検証者(検証者アルゴリズムV)に送る。
(CmtA,1,…,CmtA,L)を受け取った検証者アルゴリズムVは、q通り存在する環Kの元からL個の乱数の組(α1,…,αL)を選択する。そして、検証者アルゴリズムVは、チャレンジ(ChA,1,…,ChA,L)=(α1,…,αL)を証明者(証明者アルゴリズムP)に送る。
(ChA,1,…,ChA,L)を受け取った証明者アルゴリズムPは、i=1,…,Lについて次のようにCmtB,iを計算する。まず、i≠i0の場合について、証明者アルゴリズムPは、(CmtB,i;StB,i)←Pb,2(ChA,i;StA,i)を計算する。一方、i=i0の場合について、証明者アルゴリズムPは、(CmtB,i;StB,i)←Mb,2(ChA,i;StA,i)を計算する。そして、証明者アルゴリズムPは、(CmtB,1,…,CmtB,L)を検証者(検証者アルゴリズムV)に送る。
(CmtB,1,…,CmtB,L)を受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。このとき、検証者アルゴリズムVは、2組の検証パターンの組み合わせを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジの組(ChB,1 (0),…,ChB,L (0)),(ChB,1 (1),…,ChB,L (1))∈R{0,1}Lを証明者(証明者アルゴリズムP)に送る。但し、ChB,i (0)≠ChB,i (1)である。
(ChB,1 (0),…,ChB,L (0)),(ChB,1 (1),…,ChB,L (1))を受け取った証明者アルゴリズムPは、いずれのチャレンジの組に回答するかを次のようにして選択する。なお、その選択結果をd∈R{0,1}と表現する。ChB,i0 (0)=ChB *の場合、証明者アルゴリズムPは、d←1に設定する。一方、ChB,i0 (1)=ChB *の場合、証明者アルゴリズムPは、d←0に設定する。この設定方法を用いると、検証者がどのような検証パターンを要求してきてもdは、それぞれ1/2の確率で0,1の値をとる。つまり、dが0,1のどの値であったかという情報が完全に秘匿されているのである。
(Rsp1,…,RspL,d)を受け取った検証者アルゴリズムVは、i=1,…,Lについて0/1←Decb(F,yi;CmtA,i,ChA,i,CmtB,i,ChB,i (d),Rspi)を実行する。そして、検証者アルゴリズムVは、i=1,…,Lについて全て受理(出力1)されれば検証が成立したものとみなす。
ここで、本手法#1、#2について説明を補足する。
これまでは多次多変数連立方程式の求解問題に基づく公開鍵認証方式について説明してきた。しかし、本手法#1、#2の考え方は、その他の公開鍵認証方式に対しても同様に適用することが可能である。そこで、一例として、Syndrome Decoding問題に基づく公開鍵認証方式への適用方法、Constrained Linear Equations問題に基づく公開鍵認証方式への適用方法、Permuted Kernel問題に基づく公開鍵認証方式への適用方法、代数曲面上の求セクション問題に基づく公開鍵認証方式への適用方法、Permuted Perceptrons問題に基づく公開鍵認証方式への適用方法について紹介する。
Syndrome Decoding問題に基づく公開鍵認証方式は、例えば、「Jacques Stern, A New Identification Scheme Based on Syndrome Decoding, CRYPTO 1993, p13−21.」や「Jacques Stern, A New Paradigm for Public Key Identification, IEEE Transactions on Information Theory, 1996, p13−21.」に記載されている。これによると、この公開鍵認証方式には、3パスの方式と5パスの方式がある。
Constrained Linear Equations問題に基づく公開鍵認証方式は、例えば、「Jacques Stern, Designing Identification Schemes with Keys of Short Size, CRYPTO 1994, p164−173.」に記載されている。これによると、この公開鍵認証方式にも3パスの方式と5パスの方式がある。
Permuted Kernel問題に基づく公開鍵認証方式は、例えば、「Adi Shamir, An Efficient Identification Scheme Based on Permuted Kernels (Extended Abstract),CRYPTO 1989, p606−609.」に記載されている。これによると、この公開鍵認証方式には、検証パターンが2パターンあり、そのうち1パターンまでには対応可能な偽証アルゴリズムが存在する。そのため、この公開鍵認証方式にはSSH10b公開鍵認証方式について先に説明した方法が適用可能である。
代数曲面上の求セクション問題に基づく公開鍵認証方式には、3パスと5パスの方式がある(例えば、特願2010−125026号などを参照)。3パスの方式は、SSH10a公開鍵認証方式と同様に、検証パターンが3パターンあり、そのうちの2パターンまでは対応可能な偽証アルゴリズムが存在する。また、5パスの方式も、SSH10b公開鍵認証方式と同様に、検証パターンが2パターンあり、そのうちの1パターンまでには対応可能な偽証アルゴリズムが存在する。そのため、3パスの方式にはSSH10a公開鍵認証方式について先に説明した方法が、5パスの方式にはSSH10b公開鍵認証方式について先に説明した方法が適用可能である。
Permuted Perceptrons問題に基づく公開鍵認証方式は、例えば、「David Pointcheval, A New Identification Scheme Based on the Perceptrons Problem, EUROCRYPT 1995, p319−328.」や「David Pointcheval and Guillaume Poupard, A New NP−Complete Problem and Public−Key Identification, Des. Codes Cryptography, 2003, p5−31.」に記載されている。これによると、この公開鍵認証方式には、3パスの方式と5パスの方式がある。
上記の本手法#1、#2を適用した公開鍵認証方式は、検証者が乱数しか送信しない方式であるため、1パス(非対話型)の公開鍵認証方式に変形することが可能である。例えば、N回の並列的繰り返し構成において検証者との間でやりとりした内容にハッシュ関数を適用したものを、検証者から送信される乱数の代わりに用いればよい。また、ハッシュ関数の引数に、証明者が選んだ乱数を加えてもよい。このように、検証者が乱数を選択する代わりに証明者自身がハッシュ関数を利用することで、検証者が乱数を選択した場合と同じ振る舞いが実現される。但し、理想的なハッシュ関数を利用することが望ましい。また、偽証を不可能にするために繰り返し回数Nを十分に大きくとることが望ましい。このような工夫により、非対話型の公開鍵認証方式に変形することが可能になる。
ここで、図19、図20を参照しながら、対話プロトコルにおける通信量の削減方法について簡単に説明を補足する。
上記の各アルゴリズムは、例えば、図21に示す情報処理装置のハードウェア構成を用いて実行することが可能である。つまり、当該各アルゴリズムの処理は、コンピュータプログラムを用いて図21に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、PHS、PDA等の携帯情報端末、ゲーム機、接触式又は非接触式のICチップ、接触式又は非接触式のICカード、又は種々の情報家電がこれに含まれる。但し、上記のPHSは、Personal Handy−phone Systemの略である。また、上記のPDAは、Personal Digital Assistantの略である。
最後に、本発明の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、PC、携帯電話、携帯ゲーム機、携帯情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。
上記の情報処理装置は、証明者側及び検証者側の認証装置の一例である。また、上記のROM904、RAM906、記憶部920、リムーバブル記録媒体928は、鍵保持部の一例である。なお、この鍵保持部に保持される秘密鍵si、公開鍵yiは、鍵生成アルゴリズムGenにより生成される。また、証明者アルゴリズムP、検証者アルゴリズムVは、対話プロトコル実行部の一例である。なお、実際には、証明者アルゴリズムP、検証者アルゴリズムVがCPU902の機能により実行されることにより対話プロトコル実行部の機能が実現される。また、証明者アルゴリズムPによって実現される機能により、チャレンジ受信部、チャレンジ選択部、回答生成部、回答送信部、メッセージ送信部の機能が実現される。なお、情報の送受信には、通信部926の機能が利用される。
P 証明者アルゴリズム
V 検証者アルゴリズム
Claims (11)
- L個(L≧2)の秘密鍵si(i=1〜L)、及びn次多変数多項式の組F(n≧2)についてyi=F(si)を満たすL個の公開鍵yiを保持する鍵保持部と、
(L−1)個のyi=F(si)を満たす秘密鍵siを知っていることを証明するための対話プロトコルを検証者との間で実行する対話プロトコル実行部と、
を備え、
前記対話プロトコル実行部は、
前記検証者からL個のチャレンジChiを受信するチャレンジ受信部と、
前記チャレンジ受信部により受信されたL個のチャレンジChiの中から(L−1)個のチャレンジChiを任意に選択するチャレンジ選択部と、
前記秘密鍵siを用いて、前記チャレンジ選択部により選択された(L−1)個のチャレンジChiのそれぞれに対する(L−1)個の回答Rspiを生成する回答生成部と、
前記回答生成部により生成された(L−1)個の回答Rspiを前記検証者に送信する回答送信部と、
を含む、
認証装置。 - 前記対話プロトコル実行部は、
前記検証者に対し、L個の前記秘密鍵siのそれぞれに対応するメッセージCmtiを送信するメッセージ送信部をさらに含み、
前記チャレンジ受信部は、前記メッセージ送信部により送信された各メッセージCmtiに応じて、前記検証者によりk通り(k≧2)の検証パターンの中から選択された検証パターンを示すチャレンジChiを受信する、
請求項1に記載の認証装置。 - 前記メッセージCmtiがCmti=(ci,1,…,ci,N)である場合、
前記メッセージ送信部は、一方向性関数Hを用いて新たなメッセージCmt’=H(Cmt1,…,CmtL)を算出して当該メッセージCmt’を前記検証者に送信し、
前記回答送信部は、前記回答Rspiと共に、当該回答Rspiを利用しても前記検証者が復元できない前記メッセージCmtiの要素を送信する、
請求項2に記載の認証装置。 - 前記鍵保持部は、前記L個の秘密鍵siのうち、1つの秘密鍵si0(1≦i0≦L)を保持しないようにし、
前記対話プロトコル実行部は、前記対話プロトコルの中で実行される前記秘密鍵si0に関する処理を偽証アルゴリズムに基づいて実行する、
請求項2に記載の認証装置。 - L個の秘密鍵si(i=1〜L)、n次多変数多項式の組F(n≧2)についてyi=F(si)を満たすL個の公開鍵yiを保持する鍵保持部と、
検証者からQ組(Q≧2)のL個のチャレンジChi (j)(j=1〜Q)を受信するチャレンジ受信部と、
前記チャレンジ受信部により受信されたQ組のL個のチャレンジChi (j)の中から1組のL個のチャレンジChi (j)を任意に選択するチャレンジ選択部と、
前記秘密鍵siを用いて、前記チャレンジ選択部により選択されたL個のチャレンジChi (j)のそれぞれに対するL個の回答Rspiを生成する回答生成部と、
前記回答生成部により生成されたL個の回答Rspiを前記検証者に送信する回答送信部と、
を備える、
認証装置。 - 前記対話プロトコル実行部は、
前記検証者に対し、L個の前記秘密鍵siのそれぞれに対応するメッセージCmtiを送信するメッセージ送信部をさらに含み、
前記チャレンジ受信部は、前記メッセージ送信部により送信された各メッセージCmtiに応じて、前記検証者によりk通り(k≧2)の検証パターンの中から選択された検証パターンを示すチャレンジChi (j)を受信する、
請求項5に記載の認証装置。 - 前記メッセージCmtiがCmti=(ci,1,…,ci,N)である場合、
前記メッセージ送信部は、一方向性関数Hを用いて新たなメッセージCmt’=H(Cmt1,…,CmtL)を算出して当該メッセージCmt’を前記検証者に送信し、
前記回答送信部は、前記回答Rspiと共に、当該回答Rspiを利用しても前記検証者が復元できない前記メッセージCmtiの要素を送信する、
請求項6に記載の認証装置。 - L個(L≧2)の秘密鍵si(i=1〜L)、及びn次多変数多項式の組F(n≧2)についてyi=F(si)を満たすL個の公開鍵yiを生成する鍵生成ステップと、
(L−1)個のyi=F(si)を満たす秘密鍵siを知っていることを証明するための対話プロトコルを検証者との間で実行する対話プロトコル実行ステップと、
を含み、
前記対話プロトコル実行ステップは、
前記検証者からL個のチャレンジChiを受信するチャレンジ受信ステップと、
前記チャレンジ受信ステップで受信されたL個のチャレンジChiの中から(L−1)個のチャレンジChiを任意に選択するチャレンジ選択ステップと、
前記秘密鍵siを用いて、前記チャレンジ選択ステップで選択された(L−1)個のチャレンジChiのそれぞれに対する(L−1)個の回答Rspiを生成する回答生成ステップと、
前記回答生成ステップで生成された(L−1)個の回答Rspiを前記検証者に送信する回答送信ステップと、
を含む、
認証方法。 - L個(L≧2)の秘密鍵si(i=1〜L)、及びn次多変数多項式の組F(n≧2)についてyi=F(si)を満たすL個の公開鍵yiを保持する鍵保持機能と、
(L−1)個のyi=F(si)を満たす秘密鍵siを知っていることを証明するための対話プロトコルを検証者との間で実行する対話プロトコル実行機能と、
をコンピュータに実現させるためのプログラムであり、
前記対話プロトコル実行機能は、
前記検証者からL個のチャレンジChiを受信するチャレンジ受信機能と、
前記チャレンジ受信機能により受信されたL個のチャレンジChiの中から(L−1)個のチャレンジChiを任意に選択するチャレンジ選択機能と、
前記秘密鍵siを用いて、前記チャレンジ選択機能により選択された(L−1)個のチャレンジChiのそれぞれに対する(L−1)個の回答Rspiを生成する回答生成機能と、
前記回答生成機能により生成された(L−1)個の回答Rspiを前記検証者に送信する回答送信機能と、
を含む、
プログラム。 - L個の秘密鍵si(i=1〜L)、n次多変数多項式の組F(n≧2)についてyi=F(si)を満たすL個の公開鍵yiを生成する鍵生成ステップと、
検証者からQ組(Q≧2)のL個のチャレンジChi (j)(j=1〜Q)を受信するチャレンジ受信ステップと、
前記チャレンジ受信ステップで受信されたQ組のL個のチャレンジChi (j)の中から1組のL個のチャレンジChi (j)を任意に選択するチャレンジ選択ステップと、
前記秘密鍵siを用いて、前記チャレンジ選択ステップで選択されたL個のチャレンジChi (j)のそれぞれに対するL個の回答Rspiを生成する回答生成ステップと、
前記回答生成ステップで生成されたL個の回答Rspiを前記検証者に送信する回答送信ステップと、
を含む、
認証方法。 - L個の秘密鍵si(i=1〜L)、n次多変数多項式F(n≧2)についてyi=F(si)を満たすL個の公開鍵yiを保持する鍵保持機能と、
検証者からQ組(Q≧2)のL個のチャレンジChi (j)(j=1〜Q)を受信するチャレンジ受信機能と、
前記チャレンジ受信機能により受信されたQ組のL個のチャレンジChi (j)の中から1組のL個のチャレンジChi (j)を任意に選択するチャレンジ選択機能と、
前記秘密鍵siを用いて、前記チャレンジ選択機能により選択されたL個のチャレンジChi (j)のそれぞれに対するL個の回答Rspiを生成する回答生成機能と、
前記回答生成機能により生成されたL個の回答Rspiを前記検証者に送信する回答送信機能と、
をコンピュータに実現させるためのプログラム。
Priority Applications (15)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010224752A JP5594034B2 (ja) | 2010-07-30 | 2010-10-04 | 認証装置、認証方法、及びプログラム |
SG2013002357A SG187039A1 (en) | 2010-07-30 | 2011-07-12 | Authentication device, authentication method, and program |
RU2013103035/08A RU2573772C2 (ru) | 2010-07-30 | 2011-07-12 | Устройство аутентификации, способ аутентификации и программа |
MYPI2013700148A MY181936A (en) | 2010-07-30 | 2011-07-12 | Authentication device, authentication method, and program |
US13/704,658 US9076000B2 (en) | 2010-07-30 | 2011-07-12 | Authentication device, authentication method, and program |
EP11812261.3A EP2600563A4 (en) | 2010-07-30 | 2011-07-12 | AUTHENTICATION DEVICE, AUTHENTICATION METHOD, AND PROGRAM |
KR1020137001413A KR101808363B1 (ko) | 2010-07-30 | 2011-07-12 | 인증 장치, 인증 방법 및 컴퓨터 판독가능한 기록 매체 |
CA3000137A CA3000137A1 (en) | 2010-07-30 | 2011-07-12 | Authentication device, authentication method, and program |
CA2804394A CA2804394C (en) | 2010-07-30 | 2011-07-12 | Authentication device, authentication method, and program |
PCT/JP2011/065872 WO2012014669A1 (ja) | 2010-07-30 | 2011-07-12 | 認証装置、認証方法、及びプログラム |
BR112013001733A BR112013001733A2 (pt) | 2010-07-30 | 2011-07-12 | dispositivo e método de autenticação, e, programa |
CN201180035779.5A CN103155480B (zh) | 2010-07-30 | 2011-07-12 | 认证装置和认证方法 |
AU2011283888A AU2011283888B2 (en) | 2010-07-30 | 2011-07-12 | Authentication device, authentication method, and program |
TW100124969A TWI455555B (zh) | 2010-07-30 | 2011-07-14 | Authentication device, authentication method, and program |
US14/719,495 US9602285B2 (en) | 2010-07-30 | 2015-05-22 | Authentication device, authentication method, and program |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010171940 | 2010-07-30 | ||
JP2010171940 | 2010-07-30 | ||
JP2010224752A JP5594034B2 (ja) | 2010-07-30 | 2010-10-04 | 認証装置、認証方法、及びプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012050053A true JP2012050053A (ja) | 2012-03-08 |
JP2012050053A5 JP2012050053A5 (ja) | 2013-11-07 |
JP5594034B2 JP5594034B2 (ja) | 2014-09-24 |
Family
ID=45529885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010224752A Active JP5594034B2 (ja) | 2010-07-30 | 2010-10-04 | 認証装置、認証方法、及びプログラム |
Country Status (13)
Country | Link |
---|---|
US (2) | US9076000B2 (ja) |
EP (1) | EP2600563A4 (ja) |
JP (1) | JP5594034B2 (ja) |
KR (1) | KR101808363B1 (ja) |
CN (1) | CN103155480B (ja) |
AU (1) | AU2011283888B2 (ja) |
BR (1) | BR112013001733A2 (ja) |
CA (2) | CA2804394C (ja) |
MY (1) | MY181936A (ja) |
RU (1) | RU2573772C2 (ja) |
SG (1) | SG187039A1 (ja) |
TW (1) | TWI455555B (ja) |
WO (1) | WO2012014669A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5790289B2 (ja) | 2011-08-12 | 2015-10-07 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
JP5790287B2 (ja) | 2011-08-12 | 2015-10-07 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
TW201351195A (zh) * | 2012-03-02 | 2013-12-16 | Sony Corp | 演算裝置、控制方法、及程式 |
WO2014087738A1 (ja) * | 2012-12-05 | 2014-06-12 | ソニー株式会社 | 情報処理装置、検証処理装置、情報処理方法、検証処理方法、およびプログラム |
US10447475B1 (en) * | 2018-11-08 | 2019-10-15 | Bar Ilan University | System and method for managing backup of cryptographic keys |
CN110650160B (zh) * | 2019-10-29 | 2022-01-04 | 北京天威诚信电子商务服务有限公司 | 一种身份认证方法及系统 |
JP7273742B2 (ja) * | 2020-02-07 | 2023-05-15 | 株式会社東芝 | 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004030639A (ja) * | 2002-06-26 | 2004-01-29 | Microsoft Corp | 迷惑電子メールを検出するシステムおよび方法 |
JP2005515659A (ja) * | 2001-12-07 | 2005-05-26 | エヌティーアールユー・クリプトシステムズ・インコーポレーテッド | ディジタル署名、認証方法及び装置 |
JP2007519044A (ja) * | 2004-01-23 | 2007-07-12 | フランス テレコム | ゼロ知識証明暗号方法及び装置 |
JP2008048451A (ja) * | 1999-10-01 | 2008-02-28 | Fr Telecom | エンティティの真正性又はメッセージの完全性を証明するための方法、システム、デバイス |
JP2009543414A (ja) * | 2006-06-30 | 2009-12-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | モバイル・デバイスにおけるメッセージ処理 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5375170A (en) * | 1992-11-13 | 1994-12-20 | Yeda Research & Development Co., Ltd. | Efficient signature scheme based on birational permutations |
FR2737370B1 (fr) | 1995-07-27 | 1997-08-22 | Bull Cp8 | Procede de communication cryptographique |
US5710814A (en) * | 1996-07-23 | 1998-01-20 | Cheyenne Property Trust | Cryptographic unit touch point logic |
JPH1165439A (ja) * | 1996-08-09 | 1999-03-05 | Nippon Telegr & Teleph Corp <Ntt> | N進表現暗号による通信および認証方法、ならびにそれらの装置、およびn進表現暗号による通信および認証プログラムを格納した記憶媒体 |
US6307936B1 (en) * | 1997-09-16 | 2001-10-23 | Safenet, Inc. | Cryptographic key management scheme |
US6076163A (en) * | 1997-10-20 | 2000-06-13 | Rsa Security Inc. | Secure user identification based on constrained polynomials |
US6411715B1 (en) * | 1997-11-10 | 2002-06-25 | Rsa Security, Inc. | Methods and apparatus for verifying the cryptographic security of a selected private and public key pair without knowing the private key |
US6959085B1 (en) * | 1999-05-03 | 2005-10-25 | Ntru Cryptosystems, Inc. | Secure user identification based on ring homomorphisms |
US7243236B1 (en) * | 1999-07-29 | 2007-07-10 | Intertrust Technologies Corp. | Systems and methods for using cryptography to protect secure and insecure computing environments |
US20020136401A1 (en) * | 2000-07-25 | 2002-09-26 | Jeffrey Hoffstein | Digital signature and authentication method and apparatus |
US7181017B1 (en) * | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
US7114178B2 (en) * | 2001-05-22 | 2006-09-26 | Ericsson Inc. | Security system |
WO2003077470A1 (en) * | 2002-03-13 | 2003-09-18 | Koninklijke Philips Electronics N.V. | Polynomial-based multi-user key generation and authentication method and system |
JP4457651B2 (ja) * | 2003-11-27 | 2010-04-28 | 日本電気株式会社 | 証明装置及び証明方法並びにプログラム |
JP4282546B2 (ja) * | 2004-05-19 | 2009-06-24 | 株式会社東芝 | 暗号装置、復号装置、鍵生成装置、プログラム及び方法 |
TWI280026B (en) * | 2004-07-02 | 2007-04-21 | Univ Chang Gung | RSA with personalized secret |
WO2006035400A1 (en) | 2004-09-30 | 2006-04-06 | Koninklijke Philips Electronics N.V. | Method of authentication based on polynomials |
US20060245587A1 (en) * | 2005-04-28 | 2006-11-02 | Binyamin Pinkas | System and method for private information matching |
US7958362B2 (en) * | 2005-10-11 | 2011-06-07 | Chang Gung University | User authentication based on asymmetric cryptography utilizing RSA with personalized secret |
US20080013721A1 (en) * | 2005-11-30 | 2008-01-17 | Jing-Jang Hwang | Asymmetric cryptography with discretionary private key |
JP4197710B2 (ja) * | 2006-07-19 | 2008-12-17 | 株式会社東芝 | 暗号装置、復号装置、プログラム及び方法 |
US8006300B2 (en) * | 2006-10-24 | 2011-08-23 | Authernative, Inc. | Two-channel challenge-response authentication method in random partial shared secret recognition system |
US8411854B2 (en) * | 2008-01-02 | 2013-04-02 | National University Of Ireland, Galway | Method and apparatus for authenticating a user |
US8713655B2 (en) * | 2008-04-21 | 2014-04-29 | Indian Institute Of Technology | Method and system for using personal devices for authentication and service access at service outlets |
JP2010049215A (ja) * | 2008-08-25 | 2010-03-04 | Toshiba Corp | パラメータ生成装置、暗号処理システム、方法およびプログラム |
JP4756067B2 (ja) | 2008-11-27 | 2011-08-24 | 株式会社サンセイアールアンドディ | 遊技機 |
-
2010
- 2010-10-04 JP JP2010224752A patent/JP5594034B2/ja active Active
-
2011
- 2011-07-12 CA CA2804394A patent/CA2804394C/en not_active Expired - Fee Related
- 2011-07-12 SG SG2013002357A patent/SG187039A1/en unknown
- 2011-07-12 RU RU2013103035/08A patent/RU2573772C2/ru not_active IP Right Cessation
- 2011-07-12 AU AU2011283888A patent/AU2011283888B2/en not_active Ceased
- 2011-07-12 KR KR1020137001413A patent/KR101808363B1/ko active IP Right Grant
- 2011-07-12 CA CA3000137A patent/CA3000137A1/en not_active Abandoned
- 2011-07-12 US US13/704,658 patent/US9076000B2/en active Active
- 2011-07-12 BR BR112013001733A patent/BR112013001733A2/pt not_active Application Discontinuation
- 2011-07-12 EP EP11812261.3A patent/EP2600563A4/en not_active Ceased
- 2011-07-12 CN CN201180035779.5A patent/CN103155480B/zh active Active
- 2011-07-12 MY MYPI2013700148A patent/MY181936A/en unknown
- 2011-07-12 WO PCT/JP2011/065872 patent/WO2012014669A1/ja active Application Filing
- 2011-07-14 TW TW100124969A patent/TWI455555B/zh not_active IP Right Cessation
-
2015
- 2015-05-22 US US14/719,495 patent/US9602285B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008048451A (ja) * | 1999-10-01 | 2008-02-28 | Fr Telecom | エンティティの真正性又はメッセージの完全性を証明するための方法、システム、デバイス |
JP2005515659A (ja) * | 2001-12-07 | 2005-05-26 | エヌティーアールユー・クリプトシステムズ・インコーポレーテッド | ディジタル署名、認証方法及び装置 |
JP2004030639A (ja) * | 2002-06-26 | 2004-01-29 | Microsoft Corp | 迷惑電子メールを検出するシステムおよび方法 |
JP2007519044A (ja) * | 2004-01-23 | 2007-07-12 | フランス テレコム | ゼロ知識証明暗号方法及び装置 |
JP2009543414A (ja) * | 2006-06-30 | 2009-12-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | モバイル・デバイスにおけるメッセージ処理 |
Also Published As
Publication number | Publication date |
---|---|
US9076000B2 (en) | 2015-07-07 |
TWI455555B (zh) | 2014-10-01 |
JP5594034B2 (ja) | 2014-09-24 |
US20130089201A1 (en) | 2013-04-11 |
EP2600563A4 (en) | 2016-10-19 |
TW201215069A (en) | 2012-04-01 |
CN103155480A (zh) | 2013-06-12 |
MY181936A (en) | 2021-01-14 |
AU2011283888B2 (en) | 2015-10-29 |
KR20130100959A (ko) | 2013-09-12 |
AU2011283888A1 (en) | 2012-12-13 |
KR101808363B1 (ko) | 2017-12-12 |
RU2573772C2 (ru) | 2016-01-27 |
RU2013103035A (ru) | 2014-07-27 |
BR112013001733A2 (pt) | 2016-05-31 |
SG187039A1 (en) | 2013-02-28 |
CA2804394A1 (en) | 2012-02-02 |
WO2012014669A1 (ja) | 2012-02-02 |
CA3000137A1 (en) | 2012-02-02 |
EP2600563A1 (en) | 2013-06-05 |
US20150256342A1 (en) | 2015-09-10 |
CN103155480B (zh) | 2015-11-25 |
CA2804394C (en) | 2018-05-22 |
US9602285B2 (en) | 2017-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5736816B2 (ja) | 認証装置、認証方法、プログラム、及び署名生成装置 | |
JP5593850B2 (ja) | 認証装置、認証方法、プログラム、及び署名生成装置 | |
JP5594034B2 (ja) | 認証装置、認証方法、及びプログラム | |
JP2013042315A (ja) | 情報処理装置、及び情報処理方法 | |
JP5790289B2 (ja) | 情報処理装置、情報処理方法、プログラム、及び記録媒体 | |
JP5790287B2 (ja) | 情報処理装置、情報処理方法、プログラム、及び記録媒体 | |
JP5790291B2 (ja) | 情報処理装置、署名提供方法、署名検証方法、プログラム、及び記録媒体 | |
JP5790286B2 (ja) | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム | |
JP5790290B2 (ja) | 情報処理装置、情報処理方法、プログラム、及びプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP2013047726A (ja) | 情報処理装置、署名生成装置、署名検証装置、情報処理方法、署名生成方法、及び署名検証方法 | |
JP5790288B2 (ja) | 情報処理装置、及び情報処理方法 | |
WO2013024628A1 (ja) | 情報処理装置、及び情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130920 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130920 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140401 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140530 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140708 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140721 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5594034 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |