JP2011254155A - 認証装置、認証方法、プログラム、及び署名生成装置 - Google Patents
認証装置、認証方法、プログラム、及び署名生成装置 Download PDFInfo
- Publication number
- JP2011254155A JP2011254155A JP2010125021A JP2010125021A JP2011254155A JP 2011254155 A JP2011254155 A JP 2011254155A JP 2010125021 A JP2010125021 A JP 2010125021A JP 2010125021 A JP2010125021 A JP 2010125021A JP 2011254155 A JP2011254155 A JP 2011254155A
- Authority
- JP
- Japan
- Prior art keywords
- verification
- information
- algorithm
- message
- verifier
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- 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/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
-
- 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/3247—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 involving digital signatures
- H04L9/3255—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 involving digital signatures using group based signatures, e.g. ring or threshold signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
【解決手段】多次多項式ui(t)(i=1〜n−1)を秘密鍵に設定し、f(u1(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定部と、検証者に対してメッセージcを送信するメッセージ送信部と、1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信部と、k通りの回答情報の中から、前記検証パターン受信部により受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信部と、を備え、前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uiが計算可能となる情報である、認証装置が提供される。
【選択図】図6
Description
ここで、以下に記載する本発明の実施形態に関する説明の流れについて簡単に述べる。まず、図1を参照しながら、公開鍵認証方式のアルゴリズム構成について説明する。次いで、図2を参照しながら、電子署名方式のアルゴリズム構成について説明する。次いで、図3を参照しながら、nパスの公開鍵認証方式について説明する。次いで、図4を参照しながら、ASS−CC−IP公開鍵認証方式のアルゴリズムについて説明する。また、図5を参照しながら、ASS−CC−IP公開鍵認証方式のアルゴリズムに対する偽証アルゴリズムについて説明する。
1:はじめに
1−1:公開鍵認証方式のアルゴリズム構成
1−2:電子署名方式のアルゴリズム構成
1−3:nパスの公開鍵認証方式
1−4:ASS−CC−IP公開鍵認証方式
1−4−1:ASS−CC電子署名方式について
1−4−2:ASS−CC−IP公開鍵認証方式について
2:第1実施形態
2−1:公開鍵認証方式のアルゴリズム
2−2:拡張アルゴリズム
2−3:並列化アルゴリズム
2−4:非対話型アルゴリズム
2−5:電子署名方式への変形
2−6:具体例
3:第2実施形態
3−1:公開鍵認証方式のアルゴリズム
3−2:拡張アルゴリズム
3−3:並列化アルゴリズム
3−4:非対話型アルゴリズム
3−5:電子署名方式への変形
3−6:具体例
4:ハードウェア構成例
5:まとめ
はじめに、本発明に係る実施形態について詳細に説明するに先立ち、一般的な公開鍵認証方式のアルゴリズム構成、一般的な電子署名方式のアルゴリズム構成、nパスの公開鍵認証方式、ASS−CC−IP公開鍵認証方式について簡単に説明する。
まず、図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の場合には証明者が正当なものであるとする。形式的に、検証者アルゴリズムVは、下記の式(2)のように表現される。
上記の通り、公開鍵認証方式は、安全性を確保するため、健全性と零知識性という2つの条件を満たすことが求められる。しかし、証明者が秘密鍵skを保有していることを証明者に証明させるためには、証明者が秘密鍵skに依存した手続きを実行し、その結果を検証者に通知して、その通知内容に基づく検証を検証者に実行させる必要がある。秘密鍵skに依存した手続きを実行するのは、健全性を担保するために必要である。一方で、この手続きの結果を検証者に通知しても、秘密鍵skの情報が一切検証者に漏れないようにする必要がある。そのため、これらの要件を満たすように、上記の鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVが設計されることが必要になる。
次に、図2を参照しながら、一般的な電子署名方式のアルゴリズム構成について説明する。図2は、一般的な電子署名方式のアルゴリズム構成について説明するための説明図である。
紙文書とは異なり、ある電子化されたデータに対して押印したり署名を記載したりすることはできない。そのため、電子化されたデータの作成者を証明するためには、紙文書に押印したり署名を記載したりするのと同等の効果を奏する電子的な仕組みが必要とされる。このような仕組みが電子署名である。例えば、データの作成者しか知らない署名データをデータに関連付けて受領者に提供し、その署名データを受領者側で検証する仕組みのことを電子署名方式と呼ぶ。
電子署名方式のモデルには、図2に示すように、署名者と検証者という2つのエンティティが存在する。そして、電子署名方式のモデルは、鍵生成アルゴリズムGen、署名生成アルゴリズムSig、署名検証アルゴリズムVerという3つのアルゴリズムにより構成される。
鍵生成アルゴリズムGenは、署名者により利用される。そして、鍵生成アルゴリズムGenは、署名者固有の署名鍵skと検証鍵pkの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された検証鍵pkは公開される。一方、鍵生成アルゴリズムGenにより生成された署名鍵skは、署名者により秘密に管理される。そして、署名者により秘密に管理されている署名鍵skは、文書Mに付与される電子署名σの生成に利用される。形式的に、鍵生成アルゴリズムGenは、セキュリティパラメータ1^λ(λは0以上の整数)を入力とし、秘密鍵skと公開鍵pkを出力するアルゴリズムとして、下記の式(3)のように表現される。
署名生成アルゴリズムSigは、署名者により利用される。そして、署名生成アルゴリズムSigは、文書Mに対して付与される電子署名σを生成するアルゴリズムである。形式的に、署名生成アルゴリズムSigは、署名者の署名鍵skと文書Mを入力とし、下記の式(4)に示すように、電子署名σを出力するアルゴリズムとして表現される。
署名検証アルゴリズムVerは、検証者により利用される。そして、署名検証アルゴリズムVerは、電子署名σが文書Mに対する正当な電子署名であるか否かを検証するアルゴリズムである。形式的に、署名検証アルゴリズムVerは、下記の式(5)に示すように、署名者の検証鍵pk、文書M、電子署名σを入力とし、0又は1(1bit)を出力するアルゴリズムとして表現される。なお、0を出力する場合(公開鍵pkが文書Mと電子署名σを拒否する場合)、文書Mに対する電子署名σは不当である。1を出力する場合(公開鍵pkが文書Mと電子署名σを受理する場合)、文書Mに対する電子署名σは正当である。
次に、図3を参照しながら、nパスの公開鍵認証方式について説明する。図3は、nパスの公開鍵認証方式について説明するための説明図である。
次に、代数曲面上の求セクション問題を安全性の根拠とする公開鍵認証方式の一例について説明する。代数曲面上の求セクション問題とは、環K上で定義されるn変数の多次多項式f(x1,…,xn)が与えられたときに、f(s1(t),…,sn−1(t),t)=0となる環K上の1変数多次多項式s1(t),…,sn−1(t)を求める問題である。
代数曲面上の求セクション問題に安全性の根拠をおく電子署名方式として、ASS−CC電子署名方式(上記の非特許文献1を参照)が知られている。ASS−CC電子署名方式は公開鍵認証方式ではないが、電子署名方式と公開鍵認証方式との関連性を考慮すると、後述するようにASS−CC電子署名方式から、代数曲面上の求セクション問題に安全性をおく公開鍵認証方式を構築することができる。そこで、まず、ASS−CC電子署名方式について説明する。
鍵生成アルゴリズムGenは、下記のStep.1、Step.2を実行し、署名鍵(ux(t),uy(t),t)及び検証鍵X(x,y,t)を生成する。
鍵生成アルゴリズムGenは、関数ux(t),uy(t),ci,j(t)(但し、(i,j)∈Λ\{0,0})を生成する。但し、Λは、正整数の添え字の集合である。
鍵生成アルゴリズムGenは、c0,0←Σ(i,j)∈Λ\{0,0}ci,j(t)ux(t)iuy(t)jとする。そして、鍵生成アルゴリズムGenは、署名鍵(ux(t),uy(t),t)、及び、検証鍵X(x,y,t)=Σ(i,j)∈Λci,j(t)x(t)iy(t)jを生成する。但し、X(ux(t),uy(t),t)=Σ(i,j)∈Λ\{0,0}ci,j(t)ux(t)iuy(t)j=0である。
署名生成アルゴリズムSigは、まず、署名鍵(ux(t),uy(t),t)と文書Mを入力とし、i=1〜nについて、以下のStep.1〜Step.4を実行する。
署名生成アルゴリズムSigは、Si∈R{0,1}λを選択し、Xi’(x,y,t)←H(Si)を計算する。但し、H(…)はハッシュ関数である。ハッシュ関数Hは、あるビット列s∈{0,1}*から一定範囲の数値を生成する関数である。また、任意のビット列sをハッシュ関数Hに入力して得られた値をハッシュ値と呼ぶ(以下同様)。
署名生成アルゴリズムSigは、セクション(ri,x(t),ri,y(t))を選択し、Xi”(x,y,t)←Xi(x−ri,x(t),y−ri,y(t),t)+Xi’(x,y,t)を計算する。
署名生成アルゴリズムSigは、(zi,x(t),zi,y(t))←(ui,x(t)+ri,x(t),ui,y(t)+ri,y(t))を計算する。
署名生成アルゴリズムSigは、vi(t)←H(Xi’(zi,x(t),zi,y(t),t),zi,x(t),zi,y(t))を計算する。
i=1〜nについて、上記のStep.1〜Step.4の処理を実行した後、署名生成アルゴリズムSigは、d=(d1,…,dn)←H(M,X1”(x,y,t),v1(t),…,Xn”(x,y,t),vn(t))を計算する。
もしdi=0ならば、署名生成アルゴリズムSigは、σi←(Si,ri,x(t),ri,y(t))を計算する。一方、di=1ならば、署名生成アルゴリズムSigは、σi←(0,zi,x(t),zi,y(t))を計算する。
そして、署名生成アルゴリズムSigは、電子署名σ=(X1”(x,y,t),v1(t),…,Xn”(x,y,t),vn(t),σ1,…,σn)を出力する。
署名検証アルゴリズムVerは、電子署名σと文書Mを入力とし、次のStep.1〜Step.3を実行する。
署名検証アルゴリズムVerは、d=(d1,…,dn)←H(M,X1”(x,y,t),…,Xn”(x,y,t),vn(t))を計算する。
もしdi=0ならば、署名検証アルゴリズムVerは、σiを(Si,ri,x(t),ri,y(t))に分割する。次いで、署名検証アルゴリズムVerは、Xi’(x,y,t)←H(Si)を計算する。次いで、署名検証アルゴリズムVerは、Xi”(x,y,t)=Xi(x−ri,x(t),y−ri,y(t),t)+Xi’(x,y,t)の等式が成立するか否かを検証する。一方、di=1ならば、署名検証アルゴリズムVerは、σiを(0,zi,x(t),zi,y(t))に分割する。次いで、署名検証アルゴリズムVerは、vi=H(Xi”(zi,x(t),zi,y(t),t),zi,x(t),zi,y(t))の等式が成立するか否かを検証する。
i=1〜nについて、上記のStep.2の処理を実行した後、署名検証アルゴリズムVerは、Step.2の検証がi=1〜nの全てについて通過したか否かを確認する。そして、署名検証アルゴリズムVerは、i=1〜nの全てについてStep.2の検証が通過した場合に電子署名σを受理(1を出力)し、1つでも通過していない場合に電子署名σを拒否(0を出力)する。
以上説明した鍵生成アルゴリズムGen、署名生成アルゴリズムSig、署名検証アルゴリズムVerによりASS−CC電子署名方式は成り立っている。ASS−CC電子署名方式は、代数曲面上の求セクション問題に安全性の根拠をおくという点において、量子コンピュータを用いたタンパリングに対しても耐性の高い電子署名方式である。しかしながら、本件発明者らにより、上記のASS−CC電子署名方式における電子署名の偽造アルゴリズム(以下、署名偽造アルゴリズム)が発見された。
署名偽造アルゴリズムは、文書Mのみを入力とし、電子署名σを偽造するアルゴリズムである。まず、署名偽造アルゴリズムは、i=1〜nについて、以下のStep.1〜Step.3の処理を実行する。
署名偽造アルゴリズムは、Si∈R{0,1}λを選択し、Xi’(x,y,t)←H(Si)を計算する。
署名偽造アルゴリズムは、セクション(ri,x(t),ri,y(t))を選択し、Xi”(x,y,t)←Xi(x−ri,x(t),y−ri,y(t),t)+Xi’(x,y,t)を計算する。
署名偽造アルゴリズムは、セクション(zi,x(t),zi,y(t))を選択し、vi←H(Xi”(zi,x(t),zi,y(t),t),zi,x(t),zi,y(t))を計算する。
i=1〜nについて、上記のStep.1〜3を実行した後、署名偽造アルゴリズムは、d=(d1,…,dn)←H(M,X1”(x,y,t),v1(t),…,Xn”(x,y,t),vn(t))を計算する。
もしdi=0ならば、署名偽造アルゴリズムは、σi←(Si,ri,x(t),ri,y(t))を計算する。一方、di=1ならば、署名偽造アルゴリズムは、σi←(0,zi,x(t),zi,y(t))を計算する。
そして、署名生成アルゴリズムSigは、電子署名σ=(X1”(x,y,t),v1(t),…,Xn”(x,y,t),vn(t),σ1,…,σn)を出力する。
ASS−CC電子署名方式のアルゴリズムは、図4に示すような公開鍵認証方式(以下、ASS−CC−IP公開鍵認証方式)の対話プロトコルに変形することができる。なお、図4に示したASS−CC−IP公開鍵認証方式は、上記の非特許文献1には開示されていないものである。ここで、図4に示したASS−CC−IP公開鍵認証方式の対話プロトコルについて説明する。図4は、ASS−CC−IP公開鍵認証方式の対話プロトコルを説明するための説明図である。
まず、証明者アルゴリズムPは、(rx(t),ry(t))∈RSTを計算する。但し、STは、代数曲面上のセクションを表現する多項式の組全体の集合である。次いで、証明者アルゴリズムPは、zx(t)←ux(t)+rx(t)、zy(t)←uy(t)+ry(t)を計算する。次いで、証明者アルゴリズムPは、S∈R{0,1}λを選択し、X’(x,y,t)←H1(S)を計算する。
次いで、証明者アルゴリズムPは、X”(x,y,t)←X(x−rx(t),y−ry(t),t)+X’(x,y,t)を計算する。次いで、証明者アルゴリズムPは、v←H2(X’(zx(t),zy(t),t),zx(t),zy(t))を計算する。但し、H1、H2はハッシュ関数である。そして、証明者アルゴリズムPは、(X”(x,y,t),v)を検証者に送る。
検証者アルゴリズムVは、d∈R{0,1}を選択する。そして、検証者アルゴリズムVは、dを証明者に送る。
もしd=0ならば、証明者アルゴリズムPは、電子署名σ=(S,rx(t),ry(t))を計算する。一方、d=1ならば、証明者アルゴリズムPは、電子署名σ=(ε,zx(t),zy(t))を計算する。そして、証明者アルゴリズムPは、電子署名σを検証者に送る。なお、σ=(a,b(t),c(t))と表現することにする。つまり、d=0の場合、a=S、b(t)=rx(t)、c(t)=ry(t)であり、d=1の場合、a=ε、b(t)=zx(t)、c(t)=zy(t)である。
検証者アルゴリズムVは、d=0の場合、a’(x,y,t)←H1(a)を計算する。そして、検証者アルゴリズムVは、X”(x,y,t)=X(x−b(t),y−c(t),t)+a’(x,y,t)の等式が成り立つか否かを検証する。一方、d=1の場合、検証者アルゴリズムVは、v=H2(X”(b(t),c(t),t),b(t),c(t))の等式が成り立つか否かを検証する。
検証者アルゴリズムVは、Step.4の検証が成功した場合に認証の成功を示す1を出力し、失敗した場合に認証の失敗を示す0を出力する。
ASS−CC−IP公開鍵認証方式における偽証方法は、図5のStep.1において下線を付した部分(※1、※2)に特徴がある。ASS−CC−IP公開鍵認証方式において、zx(t)、zy(t)は、秘密鍵skを用いて生成されていた。しかし、図5に示す偽証方法においては、zx(t)、zy(t)が任意に選択されている(※1)。また、ASS−CC−IP公開鍵認証方式において、vは、X’(zx(t),zy(t),y)を利用して生成されていた。しかし、図5に示す偽証方法においては、vがX”(zx(t),zy(t),y)を利用して生成されている(※2)。
本発明に係る第1実施形態について説明する。本実施形態は、代数曲面上の求セクション問題に安全性の根拠をおく3パスの公開鍵認証方式(以下、本手法)に関する。なお、ここでは3パスの公開鍵認証方式を例に挙げるが、本実施形態の対話プロトコルを拡張してnパス(n≧4)の公開鍵認証方式に一般化することも可能である。
まず、図6を参照しながら、本手法に係る公開鍵認証方式のアルゴリズムについて説明する。図6は、本手法に係る公開鍵認証方式のアルゴリズムについて説明するための説明図である。なお、本手法は、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f0(x1,…,xn)と、1変数の多次多項式u1(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f0(u1(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x1,…,xn)=f0(x1,…,xn)−c(xn)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u1,…,un−1)を秘密鍵skに設定する。ここで、f0(u1(t),…,un−1(t),t)=0を満たすことに注意されたい。
次に、図6を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u1(t),…,un−1(t),t)を満たす(u1,…,un−1)を知っていること」を(u1,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明するのである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器G1に数wを適用して1変数多項式r1(t),…,rn−1(t)と数w’を生成する。つまり、証明者アルゴリズムPは、(r1,…,rn−1,w’)←G1(w)を計算する。次いで、証明者アルゴリズムPは、擬似乱数生成器G2に数w’を適用してn変数多項式f’(x1,…,xn)を生成する。つまり、証明者アルゴリズムPは、f’←G2(w’)を計算する。
次いで、証明者アルゴリズムPは、(z1(t),…,zn−1(t))←(u1(t)−r1(t),…,un−1(t)−rn−1(t))を計算する。この計算は、秘密鍵(u1,…,un−1)を1変数多項式(r1,…,rn−1)によりマスクする操作に相当する。さらに、証明者アルゴリズムPは、f”(x1,…,xn)←f(x1+r1(xn),…,xn−1+rn−1(xn),xn)+f’(x1,…,xn)を計算する。この計算は、x1,…,xnについての多項式f(x1+r1(xn),…,xn−1+rn−1(xn),xn)を多項式f’(x1,…,xn)によりマスクする操作に相当する。
次いで、証明者アルゴリズムPは、f”(z1(t),…,zn−1(t),t)とz1,…,zn−1のハッシュ値c1を生成する。つまり、証明者アルゴリズムPは、c1←H1(f”(z1(t),…,zn−1(t),t),z1,…,zn−1)を計算する。また、証明者アルゴリズムPは、数w’のハッシュ値c2を生成する。つまり、証明者アルゴリズムPは、c2←H2(w’)を計算する。さらに、証明者アルゴリズムPは、多項式f”のハッシュ値c3を生成する。つまり、証明者アルゴリズムPは、c3←H3(f”)を計算する。なお、上記のH1(…)、H2(…)、H3(…)は、ハッシュ関数である。また、ハッシュ値(c1,c2,c3)はメッセージである。
検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1,2}を証明者に送る。
証明者アルゴリズムPは、検証者から受けた要求dに応じて検証者に送り返す情報σを生成する。もしd=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。また、d=1の場合、証明者アルゴリズムPは、情報σ=(w’,z1,…,zn−1)を生成する。そして、d=2の場合、証明者アルゴリズムPは、情報σ=(f”,z1,…,zn−1)を生成する。このようにして生成された情報σは、証明者アルゴリズムPにより検証者に送られる。
検証者アルゴリズムVは、証明者から受け取った情報σを利用して以下の検証処理を実行する。
さて、上記Step.1において生成されたメッセージ(c1,c2,c3)を検証者に送った際、秘密鍵skに関する情報、(r1,…,rn−1)に関する情報、(z1,…,zn−1)に関する情報が検証者に一切漏れていないことに注意されたい。また、上記Step.3において生成された情報σを検証者に送った際、d=0のときにはz1,…,zn−1に関する情報が検証者に一切漏れておらず、d=1,2のときにはr1,…,rn−1に関する情報が検証者に一切漏れていないことに注意されたい。
先に説明したように、ASS−CC−IP公開鍵認証方式において、検証者は、2通りの検証パターンしか要求しなかった。一方、本手法の場合、検証者は、3通りの検証パターンを要求する可能性がある。そして、具体的な相違点として、ASS−CC−IP公開鍵認証方式の場合には本手法のd=1に対応するf’(z1(t),…,zn−1(t),t)を用いた検証が実行されていなかった点が挙げられる。
本手法の健全性は、検証者の全ての要求d=0,1,2に対して、証明者がメッセージ(c1,c2,c3)に対する正しい情報σを回答したならば、その回答内容から、下記の式(6)及び式(7)を満たすf''''、f'''、r’1,…,r’n−1、z’1,…z’n−1が計算できるということから保証されている。なお、このことはASS−CC−IP公開鍵認証方式においては保証されていない。
上記の証明者アルゴリズムPは、メッセージc3として、f”(z1(t),…,zn−1(t),t)とz1,…,zn−1のハッシュ値を用いていた。しかし、f”(z1(t),…,zn−1(t),t)=f’(z1(t),…,zn−1(t),t)であるため、証明者アルゴリズムPは、メッセージc3として、f’(z1(t),…,zn−1(t),t)とz1,…,zn−1のハッシュ値を用いてもよい。また、証明者アルゴリズムPは、f”(z1(t),…,zn−1(t),t)のハッシュ値と、z1,…,zn−1のハッシュ値とを別々に計算し、それぞれをメッセージとして検証者に送るようにしてもよい。
次に、図7を参照しながら、本手法を拡張した公開鍵認証方式(以下、拡張手法)のアルゴリズムについて説明する。図7は、拡張手法に基づく対話プロトコルの流れを説明するための説明図である。この拡張手法は、1パス目に送信するメッセージ(c1,c2,c3)を1つのハッシュ値cに変換して検証者に送る方式である。また、この拡張手法では、1パス目にハッシュ値cを送るように対話プロトコルを構成するため、3パス目で送る情報σから復元できないメッセージを情報σと共に検証者に送る。このように拡張することで、対話プロトコルの中で検証者に送るハッシュ値の数を減らすことが可能になり、通信するデータサイズを削減することができる。以下、拡張方式における各アルゴリズムの内容について詳細に説明する。
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f0(x1,…,xn)と、1変数の多次多項式u1(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f0(u1(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x1,…,xn)=f0(x1,…,xn)−c(xn)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u1,…,un−1)を秘密鍵skに設定する。ここで、f0(u1(t),…,un−1(t),t)=0を満たすことに注意されたい。
次に、図7を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u1(t),…,un−1(t),t)を満たす(u1,…,un−1)を知っていること」を(u1,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器G1に数wを適用して1変数多項式r1(t),…,rn−1(t)と数w’を生成する。つまり、証明者アルゴリズムPは、(r1,…,rn−1,w’)←G1(w)を計算する。次いで、証明者アルゴリズムPは、擬似乱数生成器G2に数w’を適用してn変数多項式f’(x1,…,xn)を生成する。つまり、証明者アルゴリズムPは、f’←G2(w’)を計算する。
次いで、証明者アルゴリズムPは、(z1(t),…,zn−1(t))←(u1(t)−r1(t),…,un−1(t)−rn−1(t))を計算する。この計算は、秘密鍵(u1,…,un−1)を1変数多項式(r1,…,rn−1)によりマスクする操作に相当する。さらに、証明者アルゴリズムPは、f”(x1,…,xn)←f(x1+r1(xn),…,xn−1+rn−1(xn),xn)+f’(x1,…,xn)を計算する。この計算は、x1,…,xnについての多項式f(x1+r1(xn),…,xn−1+rn−1(xn),xn)を多項式f’(x1,…,xn)によりマスクする操作に相当する。
次いで、証明者アルゴリズムPは、f”(z1(t),…,zn−1(t),t)とz1,…,zn−1のハッシュ値c1を生成する。つまり、証明者アルゴリズムPは、c1←H1(f”(z1(t),…,zn−1(t),t),z1,…,zn−1)を計算する。また、証明者アルゴリズムPは、数w’のハッシュ値c2を生成する。つまり、証明者アルゴリズムPは、c2←H2(w’)を計算する。さらに、証明者アルゴリズムPは、多項式f”のハッシュ値c3を生成する。つまり、証明者アルゴリズムPは、c3←H3(f”)を計算する。なお、上記のH1(…)、H2(…)、H3(…)は、ハッシュ関数である。また、ハッシュ値(c1、c2、c3)はメッセージである。
拡張方式の場合、証明者アルゴリズムPは、メッセージ(c1,c2,c3)をハッシュ関数Hに適用してハッシュ値cを生成する。そして、証明者アルゴリズムPは、生成したハッシュ値cを検証者に送る。
検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1,2}を証明者に送る。
証明者アルゴリズムPは、検証者から受けた要求dに応じて検証者に送り返す情報σを生成する。もしd=0の場合、証明者アルゴリズムPは、情報(σ,c*)=(w,c1)を生成する。また、d=1の場合、証明者アルゴリズムPは、情報(σ,c*)=(w’,z1,…,zn−1,c3)を生成する。そして、d=2の場合、証明者アルゴリズムPは、情報(σ,c*)=(f”,z1,…,zn−1,c2)を生成する。このようにして生成された情報(σ,c*)は、証明者アルゴリズムPにより検証者に送られる。
検証者アルゴリズムVは、証明者から受け取った情報(σ,c*)を利用して以下の検証処理を実行する。
さて、先に述べた通り、本手法又は拡張手法に係る対話プロトコルを適用すれば、偽証が成功する確率を2/3以下に抑制することができる。従って、この対話プロトコルを2回実行すれば、偽証が成功する確率を(2/3)2以下に抑制することができる。同様に、この対話プロトコルをN回実行すると、偽証が成功する確率は(2/3)Nとなり、Nを十分に大きい数(例えば、N=140)にすれば、偽証が成功する確率は無視できる程度に小さくなる。例えば、本手法に係る対話プロトコルを並列的にN回実行するアルゴリズムは図8のようになる。以下、図8を参照しながら、並列的に対話プロトコルをN回実行する各アルゴリズムの内容について説明する。
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f0(x1,…,xn)と、1変数の多次多項式u1(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f0(u1(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x1,…,xn)=f0(x1,…,xn)−c(xn)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u1,…,un−1)を秘密鍵skに設定する。ここで、f0(u1(t),…,un−1(t),t)=0を満たすことに注意されたい。
次に、図8を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u1(t),…,un−1(t),t)を満たす(u1,…,un−1)を知っていること」を(u1,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、i=1〜Nについて、以下の処理(1)〜処理(8)を実行する。(処理1)証明者アルゴリズムPは、任意に数wiを選択する。(処理2)証明者アルゴリズムPは、擬似乱数生成器G1に数wiを適用して1変数多項式r1,i(t),…,rn−1,i(t)と数w’iを生成する。つまり、証明者アルゴリズムPは、(r1,i,…,rn−1,i,w’i)←G1(wi)を計算する。(処理3)証明者アルゴリズムPは、擬似乱数生成器G2に数w’iを適用してn変数多項式f’i(x1,…,xn)を生成する。つまり、証明者アルゴリズムPは、f’i←G2(w’i)を計算する。
(処理4)証明者アルゴリズムPは、(z1,i(t),…,zn−1,i(t))←(u1,i(t)−r1,i(t),…,un−1,i(t)−rn−1,i(t))を計算する。この計算は、秘密鍵(u1,i,…,un−1,i)を1変数多項式(r1,i,…,rn−1,i)によりマスクする操作に相当する。(処理5)証明者アルゴリズムPは、f”i(x1,…,xn)←f(x1+r1,i(xn),…,xn−1+rn−1,i(xn),xn)+f’i(x1,…,xn)を計算する。この計算は、x1,…,xnについての多項式f(x1+r1,i(xn),…,xn−1+rn−1,i(xn),xn)を多項式f’i(x1,…,xn)によりマスクする操作に相当する。
(処理6)証明者アルゴリズムPは、f”i(z1,i(t),…,zn−1,i(t),t)とz1,i,…,zn−1,iのハッシュ値c1,iを生成する。つまり、証明者アルゴリズムPは、c1,i←H1(f”i(z1,i(t),…,zn−1,i(t),t),z1,i,…,zn−1,i)を計算する。(処理7)証明者アルゴリズムPは、数w’iのハッシュ値c2,iを生成する。つまり、証明者アルゴリズムPは、c2,i←H2(w’i)を計算する。(処理8)証明者アルゴリズムPは、多項式f”iのハッシュ値c3,iを生成する。つまり、証明者アルゴリズムPは、c3,i←H3(f”i)を計算する。なお、上記のH1(…)、H2(…)、H3(…)は、ハッシュ関数である。また、ハッシュ値(c1,i、c2,i、c3,i)はメッセージである。
検証者アルゴリズムVは、i=1〜Nのそれぞれについて、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求di∈{0,1,2}(i=1〜N)を証明者に送る。
証明者アルゴリズムPは、検証者から受けた要求diに応じて検証者に送り返す情報σiを生成する。ここで、証明者アルゴリズムPは、i=1〜Nについて、以下の(処理1)〜(処理3)を実行する。(処理1)di=0の場合、証明者アルゴリズムPは、情報σi=wiを生成する。(処理2)di=1の場合、証明者アルゴリズムPは、情報σi=(w’i,z1,i,…,zn−1,i)を生成する。(処理3)di=2の場合、証明者アルゴリズムPは、情報σi=(f”i,z1,i,…,zn−1,i)を生成する。上記(処理1)〜(処理3)の判定及び処理が実行された後、情報σi(i=1〜N)は、証明者アルゴリズムPにより検証者に送られる。
検証者アルゴリズムVは、証明者から受け取った情報σi(i=1〜N)を利用して以下の検証処理を実行する。なお、以下の処理は、i=1〜Nについて実行される。
これまで3パスの公開鍵認証方式について説明してきた。しかし、本手法においては、2パス目で検証者から証明者に送られる情報が検証パターンを示す要求d(実際には単なる乱数)だけであるため、1パスの公開鍵認証方式(以下、非対話型方式)に変形することができる。なお、非対話型方式に係る各アルゴリズムの内容を図9に示した。以下、図9を参照しながら、非対話型方式に係る各アルゴリズムの内容について説明する。
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f0(x1,…,xn)と、1変数の多次多項式u1(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f0(u1(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x1,…,xn)=f0(x1,…,xn)−c(xn)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u1,…,un−1)を秘密鍵skに設定する。ここで、f0(u1(t),…,un−1(t),t)=0を満たすことに注意されたい。
次に、図9を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u1(t),…,un−1(t),t)を満たす(u1,…,un−1)を知っていること」を(u1,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、i=1〜Nについて、以下の処理(1)〜処理(8)を実行する。(処理1)証明者アルゴリズムPは、任意に数wiを選択する。(処理2)証明者アルゴリズムPは、擬似乱数生成器G1に数wiを適用して1変数多項式r1,i(t),…,rn−1,i(t)と数w’iを生成する。つまり、証明者アルゴリズムPは、(r1,i,…,rn−1,i,w’i)←G1(wi)を計算する。(処理3)証明者アルゴリズムPは、擬似乱数生成器G2に数w’iを適用してn変数多項式f’i(x1,…,xn)を生成する。つまり、証明者アルゴリズムPは、f’i←G2(w’i)を計算する。
(処理4)証明者アルゴリズムPは、(z1,i(t),…,zn−1,i(t))←(u1,i(t)−r1,i(t),…,un−1,i(t)−rn−1,i(t))を計算する。この計算は、秘密鍵(u1,i,…,un−1,i)を1変数多項式(r1,i,…,rn−1,i)によりマスクする操作に相当する。(処理5)証明者アルゴリズムPは、f”i(x1,…,xn)←f(x1+r1,i(xn),…,xn−1+rn−1,i(xn),xn)+f’i(x1,…,xn)を計算する。この計算は、x1,…,xnについての多項式f(x1+r1,i(xn),…,xn−1+rn−1,i(xn),xn)を多項式f’i(x1,…,xn)によりマスクする操作に相当する。
(処理6)証明者アルゴリズムPは、f”i(z1,i(t),…,zn−1,i(t),t)とz1,i,…,zn−1,iのハッシュ値c1,iを生成する。つまり、証明者アルゴリズムPは、c1,i←H1(f”i(z1,i(t),…,zn−1,i(t),t),z1,i,…,zn−1,i)を計算する。(処理7)証明者アルゴリズムPは、数w’iのハッシュ値c2,iを生成する。つまり、証明者アルゴリズムPは、c2,i←H2(w’i)を計算する。(処理8)証明者アルゴリズムPは、多項式f”iのハッシュ値c3,iを生成する。つまり、証明者アルゴリズムPは、c3,i←H3(f”i)を計算する。なお、上記のH1(…)、H2(…)、H3(…)は、ハッシュ関数である。また、ハッシュ値(c1,i、c2,i、c3,i)はメッセージである。
次に、証明者アルゴリズムPは、乱数Rを選択する。次いで、証明者アルゴリズムPは、i=1〜Nについて、乱数RとStep.1で生成したメッセージ(c1,i、c2,i、c3,i)をハッシュ関数Hに適用してd=(d1,…,dN)を生成する。
次に、証明者アルゴリズムPは、生成したdiに応じて検証者に送り返す情報σiを生成する。ここで、証明者アルゴリズムPは、i=1〜Nについて、以下の(処理1)〜(処理3)を実行する。(処理1)di=0の場合、証明者アルゴリズムPは、情報σi=wiを生成する。(処理2)di=1の場合、証明者アルゴリズムPは、情報σi=(w’i,z1,i,…,zn−1,i)を生成する。(処理3)di=2の場合、証明者アルゴリズムPは、情報σi=(f”i,z1,i,…,zn−1,i)を生成する。上記(処理1)〜(処理3)の判定及び処理が実行された後、乱数R、メッセージ(c1,i、c2,i、c3,i)及び情報σi(i=1〜N)は、証明者アルゴリズムPにより検証者に送られる。
検証者アルゴリズムVは、まず、証明者から受け取った乱数R、メッセージ(c1,i、c2,i、c3,i)及び情報σi(i=1〜N)をハッシュ関数Hに適用してd=(d1,…,dN)を生成する。次いで、検証者アルゴリズムVは、情報σi(i=1〜N)を利用して以下の検証処理を実行する。なお、以下の処理は、i=1〜Nについて実行される。
ここで、本手法を電子署名方式へと変形する方法について説明する。なお、ここでは簡単のために、上記の非対話型方式を電子署名方式に変形する方法について述べる。上記の非対話型方式における証明者と検証者を電子署名方式における署名者と検証者に対応させると、証明者のみが検証者を納得させられるという点において、電子署名方式のモデルと近似していることが分かるであろう。こうした考えをもとに、非対話型方式に基づく電子署名方式のアルゴリズム構成について詳細に説明する。
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f0(x1,…,xn)と、1変数の多次多項式u1(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f0(u1(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x1,…,xn)=f0(x1,…,xn)−c(xn)を計算し、fを検証鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u1,…,un−1)を署名鍵skに設定する。ここで、f0(u1(t),…,un−1(t),t)=0を満たすことに注意されたい。
署名生成アルゴリズムSigは、i=1〜Nについて、以下の(処理1)〜(処理15)を実行する。なお、署名生成アルゴリズムSigには、署名鍵sk=(u1,…,un−1)と文書Mが入力されているものとする。
署名検証アルゴリズムVerは、i=1〜Nについて、以下の全ての検証を通過すれば、電子署名σを受理し、1つでも検証を通過しなかった場合には電子署名σを拒否する。なお、署名検証アルゴリズムVerには、電子署名σと文書Mが入力されているものとする。まず、署名検証アルゴリズムVerは、d=(d1,…,dN)←H(R,M,c1,1,…,c3,N)を計算する。次いで、署名検証アルゴリズムVerは、i=1〜Nについて、以下の(検証1)〜(検証3)を実行する。
次に、図10を参照しながら、本手法を実施する際に想定される具体的なアルゴリズム構成について説明する。図10は、本手法の具体例を説明するための説明図である。
鍵生成アルゴリズムGenは、環K上で定義される3変数のD次多項式f0(x,y,t)と、1変数の多次多項式ux(t),uy(t)を生成する。但し、D次多項式f0(x,y,t)は、下記の式(8)により表現される。また、1変数の多次多項式ux(t)は、下記の式(9)により表現される。さらに、1変数の多次多項式uy(t)は、下記の式(10)により表現される。
次に、図10を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(ux(t),uy(t),t)を満たす(ux,uy)を知っていること」を(ux,uy)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器G1に数wを適用して1変数多項式rx(t),ry(t)と数w’を生成する。つまり、証明者アルゴリズムPは、(rx,ry,w’)←G1(w)を計算する。次いで、証明者アルゴリズムPは、擬似乱数生成器G2に数w’を適用して3変数多項式f’(x,y,t)を生成する。つまり、証明者アルゴリズムPは、f’←G2(w’)を計算する。なお、多項式f’の次数は多項式fの次数と同じにする。つまり、x0y0tkの項以外については最大でD次であるが、x0y0tkの項については最大で(D+Ds)次になるようにする。
次いで、証明者アルゴリズムPは、(zx(t),zy(t))←(ux(t)−rx(t),uy(t)−ry(t))を計算する。この計算は、秘密鍵(ux,uy)を1変数多項式(rx,ry)によりマスクする操作に相当する。さらに、証明者アルゴリズムPは、f”(x,y,t)←f(x+rx(t),y+ry(t),t)+f’(x,y,t)を計算する。この計算は、x,y,tについての多項式f(x+rx(t),y+ry(t),t)を多項式f’(x,y,t)によりマスクする操作に相当する。ここで、f(x+rx(t),y+ry(t),t)の中に現れるrx(t),ry(t)に関する項は全てf’(x,y,t)でマスクされていることに注意されたい。
次いで、証明者アルゴリズムPは、f”(zx(t),zy(t),t)とzx,zyのハッシュ値c1を生成する。つまり、証明者アルゴリズムPは、c1←H1(f”(zx(t),zy(t),t),zx,zy)を計算する。また、証明者アルゴリズムPは、数w’のハッシュ値c2を生成する。つまり、証明者アルゴリズムPは、c2←H2(w’)を計算する。さらに、証明者アルゴリズムPは、多項式f”のハッシュ値c3を生成する。つまり、証明者アルゴリズムPは、c3←H3(f”)を計算する。なお、上記のH1(…)、H2(…)、H3(…)は、ハッシュ関数である。また、ハッシュ値(c1、c2、c3)はメッセージである。
検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1,2}を証明者に送る。
証明者アルゴリズムPは、検証者から受けた要求dに応じて検証者に送り返す情報σを生成する。もしd=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。また、d=1の場合、証明者アルゴリズムPは、情報σ=(w’,zx,zy)を生成する。そして、d=2の場合、証明者アルゴリズムPは、情報σ=(f”,zx,zy)を生成する。このようにして生成された情報σは、証明者アルゴリズムPにより検証者に送られる。
検証者アルゴリズムVは、証明者から受け取った情報σを利用して以下の検証処理を実行する。
次に、本発明の第2実施形態について説明する。これまで3パスの公開鍵認証方式について説明してきた。本実施形態では、5パスの公開鍵認証方式(以下、本手法)について説明する。本手法は、検証者の検証パターンを2q通りにすることにより、公開鍵認証方式の健全性を確保する方式である。
以下、図11を参照しながら、5パスの公開鍵認証方式(本手法)に係るアルゴリズム構成について説明する。図11は、本手法に係るアルゴリズムの内容について説明するための説明図である。
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f0(x1,…,xn)と、1変数の多次多項式u1(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f0(u1(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x1,…,xn)=f0(x1,…,xn)−c(xn)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u1,…,un−1)を秘密鍵skに設定する。
次に、図12を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u1(t),…,un−1(t),t)を満たす(u1,…,un−1)を知っていること」を(u1,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明するものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用して1変数多項式r1(t),…,rn−1(t)と、n変数多項式f’(x1,…,xn)を生成する。つまり、証明者アルゴリズムPは、(r1,…,rn−1,f’)←G(w)を計算する。次いで、証明者アルゴリズムPは、(z1(t),…,zn−1(t))←(u1(t)−r1(t),…,un−1(t)−rn−1(t))を計算する。この計算は、秘密鍵(u1,…,un−1)を1変数多項式(r1,…,rn−1)によりマスクする操作に相当する。
次いで、証明者アルゴリズムPは、f”(z1(t),…,zn−1(t),t)とz1,…,zn−1のハッシュ値c1を生成する。つまり、証明者アルゴリズムPは、c1←H1(f”(z1(t),…,zn−1(t),t),z1,…,zn−1)を計算する。また、証明者アルゴリズムPは、数wのハッシュ値c2を生成する。つまり、証明者アルゴリズムPは、c2←H2(w)を計算する。なお、上記のH1(…)、H2(…)は、ハッシュ関数である。また、ハッシュ値(c1、c2)はメッセージである。
検証者アルゴリズムVは、q通り存在する環Kの元から1つの乱数αを選択する。そして、検証者アルゴリズムVは、選択した乱数αを証明者に送る。
証明者アルゴリズムPは、f”(x1,…,xn)←αf(x1+r1(xn),…,xn−1+rn−1(xn),xn)+f’(x1,…,xn)を計算する。この計算は、x1,…,xnについての多項式f(x1+r1(xn),…,xn−1+rn−1(xn),xn)を多項式f’(x1,…,xn)によりマスクする操作に相当する。
検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1}を証明者に送る。
証明者アルゴリズムPは、検証者から受けた要求dに応じて検証者に送り返す情報σを生成する。もしd=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。また、d=1の場合、証明者アルゴリズムPは、情報σ=(z1,…,zn−1)を生成する。このようにして生成された情報σは、証明者アルゴリズムPにより検証者に送られる。
検証者アルゴリズムVは、証明者から受け取った情報σを利用して以下の検証処理を実行する。
さて、上記Step.1及びStep.3において生成されたメッセージ(c1,c2)及びf”を検証者に送った際、秘密鍵skに関する情報、(r1,…,rn−1)に関する情報、(z1,…,zn−1)に関する情報が検証者に一切漏れていないことに注意されたい。また、上記Step.5において生成された情報σを検証者に送った際、d=0のときにはz1,…,zn−1に関する情報が検証者に一切漏れておらず、d=1のときにはr1,…,rn−1に関する情報が検証者に一切漏れていないことに注意されたい。
本手法の健全性は、証明者アルゴリズムPが1組の(c1,c2)、及び、検証者アルゴリズムVが選択する2通りの(α1,α2)について、要求d=0,1に正しく回答した場合に、その回答内容から下記の式(11)〜式(13)を満たすf''''1、f''''2、f'''、r’1,…,r’n−1、z’1,…,z’n−1を計算できるということから保証されている。
上記の証明者アルゴリズムPは、メッセージc1として、f”(z1(t),…,zn−1(t),t)とz1,…,zn−1のハッシュ値を用いていた。しかし、証明者アルゴリズムPは、f”(z1(t),…,zn−1(t),t)のハッシュ値と、z1,…,zn−1のハッシュ値とを別々に計算し、それぞれをメッセージとして検証者に送るようにしてもよい。また、上記の証明者アルゴリズムPは、数wに擬似乱数生成器Gを適用して1変数多項式r1(t),…,rn−1(t)とn変数多項式f’(x1,…,xn)を生成している。しかし、証明者アルゴリズムPは、最初からw=(r1(t),…,rn−1(t),f’)を算出し、Gを恒等写像としてもよい。また、この場合には、数wをGに適用する必要はない。
次に、図12を参照しながら、本手法を拡張した公開鍵認証方式(以下、拡張手法)のアルゴリズムについて説明する。図12は、拡張手法に基づく対話プロトコルの流れを説明するための説明図である。この拡張手法は、3パス目に送信する多項式f”を1つのハッシュ値c3に変換して検証者に送る方式である。このように拡張することで、対話プロトコルの中で表現サイズの大きい多項式f”を検証者に送る確率を半減することが可能になり、通信する平均的なデータサイズを削減することができる。以下、拡張方式における各アルゴリズムの内容について詳細に説明する。
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f0(x1,…,xn)と、1変数の多次多項式u1(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f0(u1(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x1,…,xn)=f0(x1,…,xn)−c(xn)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u1,…,un−1)を秘密鍵skに設定する。
次に、図12を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u1(t),…,un−1(t),t)を満たす(u1,…,un−1)を知っていること」を(u1,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用して1変数多項式r1(t),…,rn−1(t)と、n変数多項式f’(x1,…,xn)を生成する。つまり、証明者アルゴリズムPは、(r1,…,rn−1,f’)←G(w)を計算する。次いで、証明者アルゴリズムPは、(z1(t),…,zn−1(t))←(u1(t)−r1(t),…,un−1(t)−rn−1(t))を計算する。この計算は、秘密鍵(u1,…,un−1)を1変数多項式(r1,…,rn−1)によりマスクする操作に相当する。
次いで、証明者アルゴリズムPは、f”(z1(t),…,zn−1(t),t)とz1,…,zn−1のハッシュ値c1を生成する。つまり、証明者アルゴリズムPは、c1←H1(f”(z1(t),…,zn−1(t),t),z1,…,zn−1)を計算する。また、証明者アルゴリズムPは、数wのハッシュ値c2を生成する。つまり、証明者アルゴリズムPは、c2←H2(w)を計算する。なお、上記のH1(…)、H2(…)は、ハッシュ関数である。また、ハッシュ値(c1、c2)はメッセージである。
検証者アルゴリズムVは、q通り存在する環Kの元から1つの乱数αを選択する。そして、検証者アルゴリズムVは、選択した乱数αを証明者に送る。
証明者アルゴリズムPは、f”(x1,…,xn)←αf(x1+r1(xn),…,xn−1+rn−1(xn),xn)+f’(x1,…,xn)を計算する。この計算は、x1,…,xnについての多項式f(x1+r1(xn),…,xn−1+rn−1(xn),xn)を多項式f’(x1,…,xn)によりマスクする操作に相当する。さらに、証明者アルゴリズムPは、多項式f”のハッシュ値c3を生成する。つまり、証明者アルゴリズムPは、c3←H3(f”)を計算する。なお、上記のH3(…)は、ハッシュ関数である。また、ハッシュ値c3はメッセージである。
検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1}を証明者に送る。
証明者アルゴリズムPは、検証者から受けた要求dに応じて検証者に送り返す情報σを生成する。もしd=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。また、d=1の場合、証明者アルゴリズムPは、情報σ=(z1,…,zn−1,f”)を生成する。このようにして生成された情報σは、証明者アルゴリズムPにより検証者に送られる。
検証者アルゴリズムVは、証明者から受け取った情報σを利用して以下の検証処理を実行する。
さて、先に述べた通り、本手法又は拡張手法に係る対話プロトコルを適用すれば、偽証が成功する確率を(1/2+1/q)以下に抑制することができる。従って、この対話プロトコルを2回実行すれば、偽証が成功する確率を(1/2+1/q)2以下に抑制することができる。同様に、この対話プロトコルをN回実行すると、偽証が成功する確率は(1/2+1/q)Nとなり、Nを十分に大きい数(例えば、N=80)にすれば、偽証が成功する確率は無視できる程度に小さくなる。例えば、本手法に係る対話プロトコルを並列的にN回実行するアルゴリズムは図13のようになる。以下、図13を参照しながら、並列的に対話プロトコルをN回実行する各アルゴリズムの内容について説明する。
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f0(x1,…,xn)と、1変数の多次多項式u1(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f0(u1(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x1,…,xn)=f0(x1,…,xn)−c(xn)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u1,…,un−1)を秘密鍵skに設定する。ここで、f0(u1(t),…,un−1(t),t)=0を満たすことに注意されたい。
次に、図13を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u1(t),…,un−1(t),t)を満たす(u1,…,un−1)を知っていること」を(u1,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、i=1〜Nについて、以下の処理(1)〜処理(5)を実行する。(処理1)証明者アルゴリズムPは、任意に数wiを選択する。(処理2)証明者アルゴリズムPは、擬似乱数生成器Gに数wiを適用して1変数多項式r1,i(t),…,rn−1,i(t)と多項式f’i(x1,…,xn)を生成する。つまり、証明者アルゴリズムPは、(r1,i,…,rn−1,i,f’i)←G(wi)を計算する。(処理3)証明者アルゴリズムPは、(z1,i(t),…,zn−1,i(t))←(u1,i(t)−r1,i(t),…,un−1,i(t)−rn−1,i(t))を計算する。この計算は、秘密鍵(u1,i,…,un−1,i)を1変数多項式(r1,i,…,rn−1,i)によりマスクする操作に相当する。
(処理4)証明者アルゴリズムPは、f”i(z1,i(t),…,zn−1,i(t),t)とz1,i,…,zn−1,iのハッシュ値c1,iを生成する。つまり、証明者アルゴリズムPは、c1,i←H1(f”i(z1,i(t),…,zn−1,i(t),t),z1,i,…,zn−1,i)を計算する。(処理5)証明者アルゴリズムPは、数w’iのハッシュ値c2,iを生成する。つまり、証明者アルゴリズムPは、c2,i←H2(w’i)を計算する。
検証者アルゴリズムVは、q通り存在する環Kの元からN個の乱数α1,…,αNを選択する。そして、検証者アルゴリズムVは、選択した乱数α1,…,αNを証明者に送る。
検証者アルゴリズムVは、i=1〜Nについて、f”i(x1,…,xn)←αif(x1+r1,i(xn),…,xn−1+rn−1,i(xn),xn)+f’i(x1,…,xn)を計算する。この計算は、x1,…,xnについての多項式f(x1+r1,i(xn),…,xn−1+rn−1,i(xn),xn)を多項式f’i(x1,…,xn)によりマスクする操作に相当する。そして、検証者アルゴリズムVは、多項式f”1,…,f”Nを検証者に送る。
検証者アルゴリズムVは、i=1〜Nのそれぞれについて、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求di∈{0,1}(i=1〜N)を証明者に送る。
証明者アルゴリズムPは、検証者から受けた要求diに応じて検証者に送り返す情報σiを生成する。ここで、証明者アルゴリズムPは、i=1〜Nについて、以下の(処理1)又は(処理2)を実行する。(処理1)di=0の場合、証明者アルゴリズムPは、情報σi=wiを生成する。(処理2)di=1の場合、証明者アルゴリズムPは、情報σi=(w’i,z1,i,…,zn−1,i)を生成する。上記(処理1)又は(処理2)の判定及び処理が実行された後、情報σi(i=1〜N)は、証明者アルゴリズムPにより検証者に送られる。
検証者アルゴリズムVは、証明者から受け取った情報σi(i=1〜N)を利用して以下の検証処理を実行する。なお、以下の処理は、i=1〜Nについて実行される。
以下、図14を参照しながら、拡張方式に係る並列化アルゴリズムの内容について説明する。なお、鍵生成アルゴリズムGenの構成については本手法に係る並列化アルゴリズムと同じであるため、詳細な説明を省略する。
まず、証明者アルゴリズムPは、i=1〜Nについて、以下の処理(1)〜処理(5)を実行する。(処理1)証明者アルゴリズムPは、任意に数wiを選択する。(処理2)証明者アルゴリズムPは、擬似乱数生成器Gに数wiを適用して1変数多項式r1,i(t),…,rn−1,i(t)と多項式f’i(x1,…,xn)を生成する。つまり、証明者アルゴリズムPは、(r1,i,…,rn−1,i,f’i)←G(wi)を計算する。(処理3)証明者アルゴリズムPは、(z1,i(t),…,zn−1,i(t))←(u1,i(t)−r1,i(t),…,un−1,i(t)−rn−1,i(t))を計算する。この計算は、秘密鍵(u1,i,…,un−1,i)を1変数多項式(r1,i,…,rn−1,i)によりマスクする操作に相当する。
(処理4)証明者アルゴリズムPは、f”i(z1,i(t),…,zn−1,i(t),t)とz1,i,…,zn−1,iのハッシュ値c1,iを生成する。つまり、証明者アルゴリズムPは、c1,i←H1(f”i(z1,i(t),…,zn−1,i(t),t),z1,i,…,zn−1,i)を計算する。(処理5)証明者アルゴリズムPは、数w’iのハッシュ値c2,iを生成する。つまり、証明者アルゴリズムPは、c2,i←H2(w’i)を計算する。
検証者アルゴリズムVは、q通り存在する環Kの元からN個の乱数α1,…,αNを選択する。そして、検証者アルゴリズムVは、選択した乱数α1,…,αNを証明者に送る。
検証者アルゴリズムVは、i−1〜Nについて、f”i(x1,…,xn)←αif(x1+r1,i(xn),…,xn−1+rn−1,i(xn),xn)+f’i(x1,…,xn)を計算する。この計算は、x1,…,xnについての多項式f(x1+r1,i(xn),…,xn−1+rn−1,i(xn),xn)を多項式f’i(x1,…,xn)によりマスクする操作に相当する。次いで、検証者アルゴリズムVは、多項式f”1,…,f”Nのハッシュ値c3を生成する。つまり、証明者アルゴリズムPは、c3←H3(f”1,…,f”N)を計算する。なお、上記のH3(…)は、ハッシュ関数である。また、ハッシュ値c3はメッセージである。
検証者アルゴリズムVは、i=1〜Nのそれぞれについて、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求di∈{0,1}(i=1〜N)を証明者に送る。
証明者アルゴリズムPは、検証者から受けた要求diに応じて検証者に送り返す情報σiを生成する。ここで、証明者アルゴリズムPは、i=1〜Nについて、以下の(処理1)又は(処理2)を実行する。(処理1)di=0の場合、証明者アルゴリズムPは、情報σi=wiを生成する。(処理2)di=1の場合、証明者アルゴリズムPは、情報σi=(w’i,z1,i,…,zn−1,i,f”i)を生成する。上記(処理1)又は(処理2)の判定及び処理が実行された後、情報σi(i=1〜N)は、証明者アルゴリズムPにより検証者に送られる。
検証者アルゴリズムVは、証明者から受け取った情報σi(i=1〜N)を利用して以下の検証処理を実行する。なお、以下の処理は、i=1〜Nについて実行される。
これまで5パスの公開鍵認証方式について説明してきた。しかし、本手法においては、検証者から証明者に送られる情報が実際には単なる乱数だけであるため、1パスの公開鍵認証方式(以下、非対話型方式)に変形することができる。なお、非対話型方式に係る各アルゴリズムの内容を図15に示した。以下、図15を参照しながら、非対話型方式に係る各アルゴリズムの内容について説明する。
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f0(x1,…,xn)と、1変数の多次多項式u1(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f0(u1(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x1,…,xn)=f0(x1,…,xn)−c(xn)を計算し、fを公開鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u1,…,un−1)を秘密鍵skに設定する。ここで、f0(u1(t),…,un−1(t),t)=0を満たすことに注意されたい。
次に、図15を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(u1(t),…,un−1(t),t)を満たす(u1,…,un−1)を知っていること」を(u1,…,un−1)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、i=1〜Nについて、以下の処理(1)〜処理(5)を実行する。(処理1)証明者アルゴリズムPは、任意に数wiを選択する。(処理2)証明者アルゴリズムPは、擬似乱数生成器Gに数wiを適用して1変数多項式r1,i(t),…,rn−1,i(t)と多項式f’i(x1,…,xn)を生成する。つまり、証明者アルゴリズムPは、(r1,i,…,rn−1,i,f’i)←G(wi)を計算する。(処理3)証明者アルゴリズムPは、(z1,i(t),…,zn−1,i(t))←(u1,i(t)−r1,i(t),…,un−1,i(t)−rn−1,i(t))を計算する。この計算は、秘密鍵(u1,i,…,un−1,i)を1変数多項式(r1,i,…,rn−1,i)によりマスクする操作に相当する。
(処理4)証明者アルゴリズムPは、f”i(z1,i(t),…,zn−1,i(t),t)とz1,i,…,zn−1,iのハッシュ値c1,iを生成する。つまり、証明者アルゴリズムPは、c1,i←H1(f”i(z1,i(t),…,zn−1,i(t),t),z1,i,…,zn−1,i)を計算する。(処理5)証明者アルゴリズムPは、数w’iのハッシュ値c2,iを生成する。つまり、証明者アルゴリズムPは、c2,i←H2(w’i)を計算する。
次に、検証者アルゴリズムVは、乱数RA,RBを選択する。そして、検証者アルゴリズムVは、乱数RAと上記の(処理4)及び(処理5)で計算されたハッシュ値c1,i,c2,iをハッシュ関数HAに適用してハッシュ値α1,…,αNを生成する。つまり、検証者アルゴリズムVは、(α1,…,αN)←HA(RA,c1,1,…,c2,N)を計算する。
次に、検証者アルゴリズムVは、i=1〜Nについて、以下の(処理1)及び(処理2)を実行する。(処理1)証明者アルゴリズムPは、f”i(x1,…,xn)←αif(x1+r1,i(xn),…,xn−1+rn−1,i(xn),xn)+f’i(x1,…,xn)を計算する。この計算は、x1,…,xnについての多項式f(x1+r1,i(xn),…,xn−1+rn−1,i(xn),xn)を多項式f’i(x1,…,xn)によりマスクする操作に相当する。(処理2)証明者アルゴリズムPは、i=1〜Nについて、乱数RA,RB、ハッシュ値(c1,i、c2,i)、αi,f”iをハッシュ関数HBに適用してd=(d1,…,dN)を生成する。つまり、証明者アルゴリズムPは、(d1,…,dN)←HB(RA,RB,c1,1,…,c2,N,α1,…,αN,f”1,…,f”N)を計算する。
次に、検証者アルゴリズムVは、
次に、証明者アルゴリズムPは、生成したdiに応じて検証者に送り返す情報σiを生成する。ここで、証明者アルゴリズムPは、i=1〜Nについて、以下の(処理1)又は(処理2)を実行する。(処理1)di=0の場合、証明者アルゴリズムPは、情報σi=wiを生成する。(処理2)di=1の場合、証明者アルゴリズムPは、情報σi=(z1,i,…,zn−1,i)を生成する。上記(処理1)又は(処理2)の判定及び処理が実行された後、RA、RB、αi、c1,i、c2,i、σi(i=1〜N)は、証明者アルゴリズムPにより検証者に送られる。
検証者アルゴリズムVは、まず、証明者から受け取ったRA、c1,i、c2,iをハッシュ関数HAに適用してαiを生成する。つまり、検証者アルゴリズムVは、(α1,…,αN)←HA(RA,c1,1,…,c2,N)を計算する。次いで、検証者アルゴリズムVは、d=(d1,…,dN)←HB(RA,RB,c1,1,…,c2,N,α1,…,αN,f”1,…,f”N)を計算する。次いで、検証者アルゴリズムVは、情報σi(i=1〜N)を利用して以下の検証処理を実行する。なお、以下の処理は、i=1〜Nについて実行される。
ここで、本手法を電子署名方式へと変形する方法について説明する。なお、ここでは簡単のために、上記の非対話型方式を電子署名方式に変形する方法について述べる。上記の非対話型方式における証明者と検証者を電子署名方式における署名者と検証者に対応させると、証明者のみが検証者を納得させられるという点において、電子署名方式のモデルと近似していることが分かるであろう。こうした考えをもとに、非対話型方式に基づく電子署名方式のアルゴリズム構成について詳細に説明する。
鍵生成アルゴリズムGenは、環K上で定義されるn変数の多次多項式f0(x1,…,xn)と、1変数の多次多項式u1(t),…,un−1(t)を生成する。次に、鍵生成アルゴリズムGenは、c(t)←f0(u1(t),…,un−1(t),t)を計算する。そして、鍵生成アルゴリズムGenは、f(x1,…,xn)=f0(x1,…,xn)−c(xn)を計算し、fを検証鍵pkに設定する。また、鍵生成アルゴリズムGenは、(u1,…,un−1)を署名鍵skに設定する。ここで、f0(u1(t),…,un−1(t),t)=0を満たすことに注意されたい。
署名生成アルゴリズムSigは、i=1〜Nについて、以下の(処理1)〜(処理11)を実行する。なお、署名生成アルゴリズムSigには、署名鍵sk=(u1,…,un−1)と文書Mが入力されているものとする。
署名検証アルゴリズムVerは、i=1〜Nについて、以下の全ての検証を通過すれば、電子署名σを受理し、1つでも検証を通過しなかった場合には電子署名σを拒否する。なお、署名検証アルゴリズムVerには、電子署名σと文書Mが入力されているものとする。まず、署名検証アルゴリズムVerは、α=(α1,…,αN)←HA(RA,M,c1,1,…,c3,N)を計算する。次いで、署名検証アルゴリズムVerは、d=(d1,…,dN)←H(R,M,c1,1,…,c3,N,α,f”1,…,f”N)を計算する。次いで、署名検証アルゴリズムVerは、i=1〜Nについて、以下の(検証1)〜(検証3)を実行する。
次に、図16を参照しながら、本手法を実施する際に想定される具体的なアルゴリズム構成について説明する。図16は、本手法の具体例を説明するための説明図である。
鍵生成アルゴリズムGenは、環K上で定義される3変数のD次多項式f0(x,y,t)と、1変数の多次多項式ux(t),uy(t)を生成する。但し、D次多項式f0(x,y,t)は、下記の式(14)により表現される。また、1変数の多次多項式ux(t)は、下記の式(15)により表現される。さらに、1変数の多次多項式uy(t)は、下記の式(16)により表現される。
次に、図16を参照しながら、対話プロトコルにおける証明者アルゴリズムPと検証者アルゴリズムVによる処理について説明する。この対話プロトコルは、「証明者がf(ux(t),uy(t),t)を満たす(ux,uy)を知っていること」を(ux,uy)の情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用して1変数多項式rx(t),ry(t)と、3変数多項式f’(x,y,t)を生成する。つまり、証明者アルゴリズムPは、(rx,ry,f’)←G(w)を計算する。次いで、証明者アルゴリズムPは、(zx(t),zy(t))←(ux(t)−rx(t),uy(t)−ry(t))を計算する。この計算は、秘密鍵(ux,uy)を1変数多項式(rx,ry)によりマスクする操作に相当する。
次いで、証明者アルゴリズムPは、f”(zx(t),zy(t),t)とzx,zyのハッシュ値c1を生成する。つまり、証明者アルゴリズムPは、c1←H1(f”(zx(t),zy(t),t),zx,zy)を計算する。また、証明者アルゴリズムPは、数wのハッシュ値c2を生成する。つまり、証明者アルゴリズムPは、c2←H2(w)を計算する。なお、上記のH1(…)、H2(…)は、ハッシュ関数である。また、ハッシュ値(c1,c2)はメッセージである。
検証者アルゴリズムVは、環Kの元から1つの乱数αを選択する。そして、検証者アルゴリズムVは、選択した乱数αを証明者に送る。
証明者アルゴリズムPは、f”(x,y,t)←αf(x+rx(t),y+ry(t),t)+f’(x,y,t)を計算する。この計算は、x,y,tについての多項式f(x+rx(t),…,y+ry(t),t)を多項式f’(x,y,t)によりマスクする操作に相当する。
検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。次いで、検証者アルゴリズムVは、選択した検証パターンを表す要求d∈{0,1}を証明者に送る。
証明者アルゴリズムPは、検証者から受けた要求dに応じて検証者に送り返す情報σを生成する。もしd=0の場合、証明者アルゴリズムPは、情報σ=wを生成する。また、d=1の場合、証明者アルゴリズムPは、情報σ=(zx,zy)を生成する。このようにして生成された情報σは、証明者アルゴリズムPにより検証者に送られる。
検証者アルゴリズムVは、証明者から受け取った情報σを利用して以下の検証処理を実行する。
上記の各アルゴリズムは、例えば、図17に示す情報処理装置のハードウェア構成を用いて実行することが可能である。つまり、当該各アルゴリズムの処理は、コンピュータプログラムを用いて図17に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、PHS、PDA等の携帯情報端末、ゲーム機、接触式又は非接触式のICチップ、接触式又は非接触式のICカード、又は種々の情報家電がこれに含まれる。但し、上記のPHSは、Personal Handy−phone Systemの略である。また、上記のPDAは、Personal Digital Assistantの略である。
最後に、本発明の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、PC、携帯電話、携帯ゲーム機、携帯情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。
上記の鍵生成アルゴリズムGenは、鍵設定部の一例である。上記の証明者アルゴリズムPは、メッセージ送信部、検証パターン受信部、回答送信部、応答受信部、多項式生成部、多項式送信部の一例である。上記の情報σは、回答情報の一例である。上記の検証者アルゴリズムVは、メッセージ受信部、検証パターン選択部、検証パターン送信部、回答受信部、検証部、応答送信部、多項式受信部の一例である。上記の署名生成アルゴリズムSigは、メッセージ生成部、検証パターン選択部、署名生成部の一例である。
P 証明者アルゴリズム
V 検証者アルゴリズム
Sig 署名生成アルゴリズム
Ver 署名検証アルゴリズム
Claims (15)
- 多次多項式ui(t)(i=1〜n−1)を秘密鍵に設定し、f(u1(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定部と、
検証者に対してメッセージcを送信するメッセージ送信部と、
1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信部と、
k通りの回答情報の中から、前記検証パターン受信部により受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信部と、
を備え、
前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uiが計算可能となる情報である、
認証装置。 - 前記メッセージ送信部により単数又は複数のメッセージcを送信する第1ステップ、それぞれのメッセージcに対して前記検証パターン受信部により前記検証者からそれぞれ検証パターンの情報を受信する第2ステップ、それぞれの検証パターンの情報に対して前記回答送信部により回答情報を送信する第3ステップを実行し、前記検証者により全ての回答情報で検証が成功した場合に認証が成功する、
請求項1に記載の認証装置。 - 前記メッセージ送信部により単数又は複数のメッセージcを送信する第1ステップ、それぞれのメッセージcに対して前記検証パターン受信部により前記検証者からそれぞれ検証パターンの情報を受信する第2ステップ、それぞれの検証パターンの情報に対して前記回答送信部により回答情報を送信する第3ステップを実行する処理を繰り返し、
前記第1〜第3ステップを所定回数実行した結果、前記検証者により毎回全ての回答情報で検証が成功した場合に認証が成功する、
請求項2に記載の認証装置。 - 前記メッセージcがc=(c1,…,cm)である場合、
前記メッセージ送信部は、一方向性関数Hを用いて新たなメッセージc’=H(c)を算出して、前記検証者に対してメッセージc’を送信し、
前記回答送信部は、前記回答情報と共に、当該回答情報を利用しても前記検証者が復元することができないメッセージcの要素を送信する、
請求項2又は3に記載の認証装置。 - 多次多項式ui(t)(i=1〜n−1)が秘密鍵に設定され、f(u1(t),…,un−1(t),t)=0を満たす多次多項式fが公開鍵に設定されており、
証明者からメッセージcを受信するメッセージ受信部と、
1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から1つの検証パターンを選択する検証パターン選択部と、
前記検証パターン選択部により選択された検証パターンの情報を前記証明者に対して送信する検証パターン送信部と、
k通りの回答情報の中から、前記検証パターン送信部により送信された検証パターンの情報に対応する回答情報を前記証明者から受信する回答受信部と、
前記メッセージ受信部により受信されたメッセージc、及び前記回答受信部により受信された回答情報を用いて前記証明者の正当性を検証する検証部と、
を備え、
前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uiが計算可能となる情報である、
認証装置。 - 多次多項式ui(t)(i=1〜n−1)を秘密鍵に設定し、f(u1(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定部と、
検証者に対してメッセージcを送信するメッセージ送信部と、
前記検証者から応答αを受信する応答受信部と、
前記応答受信部により受信された応答αを用いて、前記メッセージcに対する検証に利用される多項式f”を生成する多項式生成部と、
前記多項式生成部により生成された多項式f”を前記検証者に送信する多項式送信部と、
1つの前記メッセージcに対するk通り(k≧2)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信部と、
k通りの回答情報の中から、前記検証パターン受信部により受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信部と、
を備え、
前記回答情報は、2通りの前記応答α、前記多項式f”及び前記k通りの回答情報を用いて実施した前記メッセージcに対する計2k通りの応答と検証パターンの組合せが全て成功した場合に秘密鍵uiが計算可能となる情報である、
認証装置。 - 前記メッセージ送信部により単数又は複数のメッセージcを送信する第1ステップ、それぞれのメッセージcに対して前記応答受信部から応答αを受信する第2ステップ、当該第2ステップで受信した応答αを用いて前記多項式生成部によりそれぞれ多項式f”を生成し、前記多項式送信部により当該多項式f”を送信する第3ステップ、それぞれのメッセージcに対して前記検証パターン受信部により前記検証者からそれぞれ検証パターンの情報を受信する第4ステップ、それぞれの検証パターンの情報に対して前記回答送信部により回答情報を送信する第5ステップを実行し、前記検証者により全ての回答情報で検証が成功した場合に認証が成功する、
請求項6に記載の認証装置。 - 前記メッセージ送信部により単数又は複数のメッセージcを送信する第1ステップ、それぞれのメッセージcに対して前記応答受信部から応答αを受信する第2ステップ、当該第2ステップで受信した応答αを用いて前記多項式生成部によりそれぞれ多項式f”を生成し、前記多項式送信部により当該多項式f”を送信する第3ステップ、それぞれのメッセージcに対して前記検証パターン受信部により前記検証者からそれぞれ検証パターンの情報を受信する第4ステップ、それぞれの検証パターンの情報に対して前記回答送信部により回答情報を送信する第5ステップを実行する処理を繰り返し、
前記第1〜第5ステップを所定回数実行した結果、前記検証者により毎回全ての回答情報で検証が成功した場合に認証が成功する、
請求項7に記載の認証装置。 - 多次多項式ui(t)(i=1〜n−1)が秘密鍵に設定され、f(u1(t),…,un−1(t),t)=0を満たす多次多項式fが公開鍵に設定されており、
証明者からメッセージcを受信するメッセージ受信部と、
前記証明者に対して応答αを送信する応答送信部と、
前記応答送信部により送信された応答αを用いて前記証明者により生成された、前記メッセージcに対する検証に利用される多項式f”を受信する多項式受信部と、
1つの前記メッセージcに対するk通り(k≧2)の検証パターンの中から1つの検証パターンを選択する検証パターン選択部と、
前記検証パターン選択部により選択された検証パターンの情報を前記証明者に対して送信する検証パターン送信部と、
k通りの回答情報の中から、前記検証パターン送信部により送信された検証パターンの情報に対応する回答情報を前記証明者から受信する回答受信部と、
前記メッセージ受信部により受信されたメッセージc、前記多項式受信部により受信された多項式f”、及び前記回答受信部により受信された回答情報を用いて前記証明者の正当性を検証する検証部と、
を備え、
前記回答情報は、2通りの前記応答α、前記多項式f”及び前記k通りの回答情報を用いて実施した前記メッセージcに対する計2k通りの応答と検証パターンの組合せが全て成功した場合に秘密鍵uiが計算可能となる情報である、
認証装置。 - 多次多項式ui(t)(i=1〜n−1)を秘密鍵に設定し、f(u1(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定ステップと、
検証者に対してメッセージcを送信するメッセージ送信ステップと、
1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信ステップと、
k通りの回答情報の中から、前記検証パターン受信ステップで受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信ステップと、
を含み、
前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uiが計算可能となる情報である、
認証方法。 - 多次多項式ui(t)(i=1〜n−1)が秘密鍵に設定され、f(u1(t),…,un−1(t),t)=0を満たす多次多項式fが公開鍵に設定されており、
証明者からメッセージcを受信するメッセージ受信ステップと、
1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から1つの検証パターンを選択する検証パターン選択ステップと、
前記検証パターン選択ステップで選択された検証パターンの情報を前記証明者に対して送信する検証パターン送信ステップと、
k通りの回答情報の中から、前記検証パターン送信ステップで送信された検証パターンの情報に対応する回答情報を前記証明者から受信する回答受信ステップと、
前記メッセージ受信ステップで受信されたメッセージc、及び前記回答受信ステップで受信された回答情報を用いて前記証明者の正当性を検証する検証ステップと、
を含み、
前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uiが計算可能となる情報である、
認証方法。 - 多次多項式ui(t)(i=1〜n−1)を秘密鍵に設定し、f(u1(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定ステップと、
検証者に対してメッセージcを送信するメッセージ送信ステップと、
前記検証者から応答αを受信する応答受信ステップと、
前記応答受信ステップで受信された応答αを用いて、前記メッセージcに対する検証に利用される多項式f”を生成する多項式生成ステップと、
前記多項式生成ステップで生成された多項式f”を前記検証者に送信する多項式送信ステップと、
1つの前記メッセージcに対するk通り(k≧2)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信ステップと、
k通りの回答情報の中から、前記検証パターン受信ステップで受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信ステップと、
を含み、
前記回答情報は、2通りの前記応答α、前記多項式f”及び前記k通りの回答情報を用いて実施した前記メッセージcに対する計2k通りの応答と検証パターンの組合せが全て成功した場合に秘密鍵uiが計算可能となる情報である、
認証方法。 - 多次多項式ui(t)(i=1〜n−1)が秘密鍵に設定され、f(u1(t),…,un−1(t),t)=0を満たす多次多項式fが公開鍵に設定されており、
証明者からメッセージcを受信するメッセージ受信ステップと、
前記証明者に対して応答αを送信する応答送信ステップと、
前記応答送信ステップで送信された応答αを用いて前記証明者により生成された、前記メッセージcに対する検証に利用される多項式f”を受信する多項式受信ステップと、
1つの前記メッセージcに対するk通り(k≧2)の検証パターンの中から1つの検証パターンを選択する検証パターン選択ステップと、
前記検証パターン選択ステップで選択された検証パターンの情報を前記証明者に対して送信する検証パターン送信ステップと、
k通りの回答情報の中から、前記検証パターン送信ステップで送信された検証パターンの情報に対応する回答情報を前記証明者から受信する回答受信ステップと、
前記メッセージ受信ステップで受信されたメッセージc、前記多項式受信ステップで受信された多項式f”、及び前記回答受信ステップで受信された回答情報を用いて前記証明者の正当性を検証する検証ステップと、
を含み、
前記回答情報は、2通りの前記応答α、前記多項式f”及び前記k通りの回答情報を用いて実施した前記メッセージcに対する計2k通りの応答と検証パターンの組合せが全て成功した場合に秘密鍵uiが計算可能となる情報である、
認証方法。 - 多次多項式ui(t)(i=1〜n−1)を秘密鍵に設定し、f(u1(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定機能と、
検証者に対してメッセージcを送信するメッセージ送信機能と、
1つの前記メッセージcに対するk通り(k≧3)の検証パターンの中から前記検証者により選択された1つの検証パターンの情報を受信する検証パターン受信機能と、
k通りの回答情報の中から、前記検証パターン受信機能により受信された検証パターンの情報に対応する回答情報を前記検証者に送信する回答送信機能と、
をコンピュータに実現させるためのプログラムであり、
前記回答情報は、前記k通りの回答情報を用いて実施した前記メッセージcに対するk通りの検証パターンが全て成功した場合に秘密鍵uiが計算可能となる情報である、
プログラム。 - 多次多項式ui(t)(i=1〜n−1)を秘密鍵に設定し、f(u1(t),…,un−1(t),t)=0を満たす多次多項式fを公開鍵に設定する鍵設定部と、
前記多次多項式ui(t)に基づいてN個のメッセージcを生成するメッセージ生成部と、
文書M及び前記メッセージcを一方向性関数に適用して得られた情報に基づいて、kN通り(k≧3)の検証パターンの中から検証パターンを選択する検証パターン選択部と、
前記検証パターン選択部により選択された検証パターンに応じて、前記メッセージc及び前記文書Mを用いた検証を通過するような電子署名σを生成する署名生成部と、
を備え、
前記電子署名σは、前記(k−1)N+1通りの検証パターンに対応する電子署名σを用いて実施した検証が全て成功した場合に秘密鍵uiが計算可能となる情報である、
署名生成装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010125021A JP5593850B2 (ja) | 2010-05-31 | 2010-05-31 | 認証装置、認証方法、プログラム、及び署名生成装置 |
US13/112,819 US8433912B2 (en) | 2010-05-31 | 2011-05-20 | Authentication device, authentication method, program, and signature generation device |
CN201110145045.4A CN102263639B (zh) | 2010-05-31 | 2011-05-24 | 认证装置、认证方法和签名生成装置 |
US13/855,427 US8826025B2 (en) | 2010-05-31 | 2013-04-02 | Authentication device, authentication method, program, and signature generation device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010125021A JP5593850B2 (ja) | 2010-05-31 | 2010-05-31 | 認証装置、認証方法、プログラム、及び署名生成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011254155A true JP2011254155A (ja) | 2011-12-15 |
JP5593850B2 JP5593850B2 (ja) | 2014-09-24 |
Family
ID=45010113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010125021A Expired - Fee Related JP5593850B2 (ja) | 2010-05-31 | 2010-05-31 | 認証装置、認証方法、プログラム、及び署名生成装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8433912B2 (ja) |
JP (1) | JP5593850B2 (ja) |
CN (1) | CN102263639B (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013024627A1 (ja) * | 2011-08-12 | 2013-02-21 | ソニー株式会社 | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム |
WO2013024629A1 (ja) * | 2011-08-12 | 2013-02-21 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
JP2014090372A (ja) * | 2012-10-31 | 2014-05-15 | Sony Corp | 情報処理装置、情報処理システム、情報処理方法及びコンピュータプログラム |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6069852B2 (ja) * | 2011-08-29 | 2017-02-01 | ソニー株式会社 | 情報処理装置、情報処理方法、及びプログラム |
US9516007B2 (en) * | 2012-12-05 | 2016-12-06 | Sony Corporation | Verifier and prover have an authentication protocol with challenge-response with the challenge from prover having identification of the verifier |
US9054800B2 (en) | 2013-09-11 | 2015-06-09 | Symbol Technologies, Llc | Staging a mobile device with visible light communication |
CN104009848B (zh) * | 2014-05-26 | 2017-09-29 | 华南理工大学 | 一种混合型的多变量数字签名系统及方法 |
US10021075B1 (en) * | 2016-06-23 | 2018-07-10 | EMC IP Holding Company LLC | Multiple data center data security |
PL3497522T3 (pl) * | 2016-08-09 | 2021-11-08 | Innogy Innovation Gmbh | System automatyzacji budynku |
US10623384B2 (en) | 2017-06-12 | 2020-04-14 | Daniel Maurice Lerner | Combined hidden dynamic random-access devices utilizing selectable keys and key locators for communicating randomized data together with sub-channels and coded encryption keys |
CN107566125A (zh) * | 2017-09-01 | 2018-01-09 | 捷德(中国)信息科技有限公司 | 一种多算法结合的安全认证方法 |
CN108282470B (zh) * | 2018-01-09 | 2020-11-10 | 安庆师范大学 | 一种网络图形验证方法及验证系统 |
CN109245897B (zh) * | 2018-08-23 | 2020-06-19 | 北京邮电大学 | 一种基于非交互的零知识证明的节点认证方法和装置 |
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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7792286B2 (en) * | 2005-04-18 | 2010-09-07 | Panasonic Corporation | Signature generation device and signature verification device |
JP4575283B2 (ja) * | 2005-11-15 | 2010-11-04 | 株式会社東芝 | 暗号装置、復号装置、プログラム及び方法 |
FR2899702A1 (fr) * | 2006-04-10 | 2007-10-12 | France Telecom | Procede et dispositif pour engendrer une suite pseudo-aleatoire |
JP4834650B2 (ja) * | 2007-11-22 | 2011-12-14 | パナソニック株式会社 | 情報処理装置 |
-
2010
- 2010-05-31 JP JP2010125021A patent/JP5593850B2/ja not_active Expired - Fee Related
-
2011
- 2011-05-20 US US13/112,819 patent/US8433912B2/en active Active
- 2011-05-24 CN CN201110145045.4A patent/CN102263639B/zh not_active Expired - Fee Related
-
2013
- 2013-04-02 US US13/855,427 patent/US8826025B2/en not_active Expired - Fee Related
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 | インターナショナル・ビジネス・マシーンズ・コーポレーション | モバイル・デバイスにおけるメッセージ処理 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013024627A1 (ja) * | 2011-08-12 | 2013-02-21 | ソニー株式会社 | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム |
WO2013024629A1 (ja) * | 2011-08-12 | 2013-02-21 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
KR20140046455A (ko) * | 2011-08-12 | 2014-04-18 | 소니 주식회사 | 정보 처리 장치, 정보 처리 방법, 프로그램 및 기록 매체 |
US9178700B2 (en) | 2011-08-12 | 2015-11-03 | Sony Corporation | Information processing apparatus, information processing method, program, and recording medium |
KR101986392B1 (ko) | 2011-08-12 | 2019-06-05 | 소니 주식회사 | 정보 처리 장치, 정보 처리 방법, 및 기록 매체 |
JP2014090372A (ja) * | 2012-10-31 | 2014-05-15 | Sony Corp | 情報処理装置、情報処理システム、情報処理方法及びコンピュータプログラム |
US9807071B2 (en) | 2012-10-31 | 2017-10-31 | Sony Corporation | Information processing apparatus, information processing system, information processing method and computer program |
Also Published As
Publication number | Publication date |
---|---|
CN102263639B (zh) | 2016-08-24 |
US8826025B2 (en) | 2014-09-02 |
CN102263639A (zh) | 2011-11-30 |
US20110296189A1 (en) | 2011-12-01 |
JP5593850B2 (ja) | 2014-09-24 |
US8433912B2 (en) | 2013-04-30 |
US20130219185A1 (en) | 2013-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5593850B2 (ja) | 認証装置、認証方法、プログラム、及び署名生成装置 | |
JP5736816B2 (ja) | 認証装置、認証方法、プログラム、及び署名生成装置 | |
JP5790319B2 (ja) | 署名検証装置、署名検証方法、プログラム、及び記録媒体 | |
JP6069852B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP5790318B2 (ja) | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム | |
JP2013042315A (ja) | 情報処理装置、及び情報処理方法 | |
US10122531B2 (en) | Information processing apparatus, information processing method, and recording medium | |
JP5594034B2 (ja) | 認証装置、認証方法、及びプログラム | |
JP5790287B2 (ja) | 情報処理装置、情報処理方法、プログラム、及び記録媒体 | |
US10075299B2 (en) | Information processing apparatus, signature providing method, signature verifying method, program, and recording medium | |
WO2013129084A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
WO2013129119A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP5790286B2 (ja) | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム | |
JP2013047726A (ja) | 情報処理装置、署名生成装置、署名検証装置、情報処理方法、署名生成方法、及び署名検証方法 | |
JP5790290B2 (ja) | 情報処理装置、情報処理方法、プログラム、及びプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP5790288B2 (ja) | 情報処理装置、及び情報処理方法 | |
WO2013031413A1 (ja) | 情報処理装置、情報処理方法、プログラム、及び記録媒体 | |
WO2013024628A1 (ja) | 情報処理装置、及び情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130522 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140324 |
|
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: 5593850 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 |
|
LAPS | Cancellation because of no payment of annual fees |