JP2013042295A - 情報処理装置、情報処理方法、プログラム、及び記録媒体 - Google Patents
情報処理装置、情報処理方法、プログラム、及び記録媒体 Download PDFInfo
- Publication number
- JP2013042295A JP2013042295A JP2011177071A JP2011177071A JP2013042295A JP 2013042295 A JP2013042295 A JP 2013042295A JP 2011177071 A JP2011177071 A JP 2011177071A JP 2011177071 A JP2011177071 A JP 2011177071A JP 2013042295 A JP2013042295 A JP 2013042295A
- Authority
- JP
- Japan
- Prior art keywords
- information
- algorithm
- verifier
- prover
- message
- 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/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/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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Storage Device Security (AREA)
Abstract
【解決手段】
多次多変数多項式の組F=(f1,…,fm)及びベクトルsに基づいてメッセージを生成し、前記多次多変数多項式の組F及びベクトルy=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供し、k通りの検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する情報処理装置が提供される。但し、前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成される。また、ベクトルxl=(xl1,…,xln)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成される。
【選択図】図14
Description
ここで、以下に記載する本技術の実施形態に関する説明の流れについて簡単に述べる。まず、図1を参照しながら、公開鍵認証方式のアルゴリズム構成について説明する。次いで、図2を参照しながら、電子署名方式のアルゴリズム構成について説明する。次いで、図3を参照しながら、nパスの公開鍵認証方式について説明する。
1:はじめに
1−1:公開鍵認証方式のアルゴリズム
1−2:電子署名方式のアルゴリズム
1−3:nパスの公開鍵認証方式
2:3パスの公開鍵認証方式に係るアルゴリズムの構成
2−1:具体的なアルゴリズムの構成例
2−2:2次多変数多項式に基づく効率的なアルゴリズム
2−2−1:基本構成
2−2−2:並列化アルゴリズム
2−3:高次多変数多項式に基づく効率的なアルゴリズム(方式#1)
2−3−1:基本構成
2−3−2:並列化アルゴリズム
3:5パスの公開鍵認証方式に係るアルゴリズムの構成
3−1:具体的なアルゴリズムの構成例
3−2:2次多変数多項式に基づく効率的なアルゴリズム
3−2−1:基本構成
3−2−2:並列化アルゴリズム
3−3:高次多変数多項式に基づく効率的なアルゴリズム(実施例1)
3−3−1:基本構成
3−3−2:並列化アルゴリズム
3−4:高次多変数多項式に基づく効率的なアルゴリズム(実施例2)
3−4−1:基本構成
3−4−2:並列化アルゴリズム(構成例1)
3−4−3:並列化アルゴリズム(構成例2:高効率)
3−4−4:並列化アルゴリズム(構成例2:更に高効率)
4:電子署名方式への変形
4−1:3パスの公開鍵認証方式から電子署名方式への変形
4−1−1:電子署名アルゴリズム(構成例1)
4−1−2:電子署名アルゴリズム(構成例2:高効率)
4−2:5パスの公開鍵認証方式から電子署名方式への変形
4−2−1:電子署名アルゴリズム(構成例1)
4−2−2:電子署名アルゴリズム(構成例2:高効率)
5:ハイブリッド型アルゴリズム
5−1:3パスの公開鍵認証方式に係るハイブリッド型アルゴリズム
5−1−1:並直列アルゴリズム
5−1−2:直並列アルゴリズム
5−2:5パスの公開鍵認証方式に係るハイブリッド型アルゴリズム
5−2−1:並直列アルゴリズム(構成例#1)
5−2−2:並直列アルゴリズム(構成例#2)
5−2−3:直並列アルゴリズム(構成例#1)
5−2−4:直並列アルゴリズム(構成例#2)
6:補遺
6−1:システムパラメータの設定方法
6−2:イレギュラーな要求に対する応答方法
6−2−1:証明者による応答方法について
6−2−2:検証者による応答方法について
7:ハードウェア構成例
8:まとめ
本実施形態は、多次多変数連立方程式に対する求解問題の困難性に安全性の根拠をおく公開鍵認証方式及び電子署名方式に関する。但し、本実施形態は、HFE電子署名方式などの従来手法とは異なり、効率的に解く手段(トラップドア)を持たない多次多変数連立方程式を利用する公開鍵認証方式及び電子署名方式に関する。まず、公開鍵認証方式のアルゴリズム、電子署名方式のアルゴリズム、及びnパスの公開鍵認証方式について、その概要を簡単に説明する。
まず、図1を参照しながら、公開鍵認証方式のアルゴリズムについて概要を説明する。図1は、公開鍵認証方式のアルゴリズムについて概要を説明するための説明図である。
公開鍵認証方式のモデルには、図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)を出力するアルゴリズムである。なお、検証者は、検証者アルゴリズムVが0を出力した場合には証明者が不正なものであると判断し、1を出力した場合には証明者が正当なものであると判断する。形式的に、検証者アルゴリズムVは、下記の式(2)のように表現される。
次に、図2を参照しながら、電子署名方式のアルゴリズムについて概要を説明する。図2は、電子署名方式のアルゴリズムについて概要を説明するための説明図である。
電子署名方式のモデルには、図2に示すように、署名者及び検証者という2つのエンティティが存在する。そして、電子署名方式のモデルは、鍵生成アルゴリズムGen、署名生成アルゴリズムSig、署名検証アルゴリズムVerという3つのアルゴリズムにより構成される。
鍵生成アルゴリズムGenは、署名者により利用される。鍵生成アルゴリズムGenは、署名者固有の署名鍵skと検証鍵pkとの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された検証鍵pkは公開される。一方、鍵生成アルゴリズムGenにより生成された署名鍵skは、署名者により秘密に管理される。そして、署名鍵skは、文書Mに付与される電子署名σの生成に利用される。例えば、鍵生成アルゴリズムGenは、セキュリティパラメータ1λ(λは0以上の整数)を入力とし、署名鍵sk及び公開鍵pkを出力する。この場合、鍵生成アルゴリズムGenは、形式的に、下記の式(3)のように表現することができる。
署名生成アルゴリズムSigは、署名者により利用される。署名生成アルゴリズムSigは、文書Mに付与される電子署名σを生成するアルゴリズムである。署名生成アルゴリズムSigは、署名鍵skと文書Mとを入力とし、電子署名σを出力するアルゴリズムである。この署名生成アルゴリズムSigは、形式的に、下記の式(4)のように表現することができる。
署名検証アルゴリズムVerは、検証者により利用される。署名検証アルゴリズムVerは、電子署名σが文書Mに対する正当な電子署名であるか否かを検証するアルゴリズムである。署名検証アルゴリズムVerは、署名者の検証鍵pk、文書M、電子署名σを入力とし、0又は1(1bit)を出力するアルゴリズムである。この署名検証アルゴリズムVerは、形式的に、下記の式(5)のように表現することができる。なお、検証者は、署名検証アルゴリズムVerが0を出力した場合(公開鍵pkが文書Mと電子署名σを拒否する場合)に電子署名σが不当であると判断し、1を出力した場合(公開鍵pkが文書Mと電子署名σを受理する場合)に電子署名σが正当であると判断する。
次に、図3を参照しながら、nパスの公開鍵認証方式について説明する。図3は、nパスの公開鍵認証方式について説明するための説明図である。
以下、3パスの公開鍵認証方式に係るアルゴリズムについて説明する。なお、以下の説明において、3パスの公開鍵認証方式のことを「3パス方式」と呼ぶ場合がある。
まず、図4を参照しながら、3パス方式に係る具体的なアルゴリズムの構成例について紹介する。図4は、3パス方式に係る具体的なアルゴリズムの構成について説明するための説明図である。なお、3パス方式のアルゴリズムは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの構成について説明する。
鍵生成アルゴリズムGenは、環K上で定義されるm本の多変数多項式f1(x1,…,xn),…,fm(x1,…,xn)、及びベクトルs=(s1,…,sn)∈Knを生成する。次に、鍵生成アルゴリズムGenは、y=(y1,…,ym)←(f1(s),…,fm(s))を計算する。そして、鍵生成アルゴリズムGenは、(f1(x1,…,xn),…,fm(x1,…,xn),y)を公開鍵pkに設定し、sを秘密鍵に設定する。なお、以下では、ベクトル(x1,…,xn)をxと表記し、多変数多項式の組(f1(x),…,fm(x))をF(x)と表記することにする。
次に、図4を参照しながら、対話プロトコルの中で証明者アルゴリズムPが実行する処理及び検証者アルゴリズムVが実行する処理について説明する。
まず、証明者アルゴリズムPは、任意に数seed0を選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器PRNGに数seed0を適用してベクトルr0∈Kn及び数seed1を生成する。つまり、証明者アルゴリズムPは、(r0,seed1)←PRNG(seed0)を計算する。次いで、証明者アルゴリズムPは、擬似乱数生成器PRNGに数seed1を適用して多変数多項式F1(x)=(f11(x),…,f1m(x))を生成する。つまり、証明者アルゴリズムPは、F1←PRNG(seed1)を計算する。
次いで、証明者アルゴリズムPは、r1←s−r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。さらに、証明者アルゴリズムPは、F2(x)←F(x+r0)+F1(x)を計算する。この計算は、xに関して多変数多項式F(x+r0)を多変数多項式F1(x)によりマスクする操作に相当する。
次いで、証明者アルゴリズムPは、F1(r1)及びr1のハッシュ値c0を生成する。つまり、証明者アルゴリズムPは、c0←H(F1(r1),r1)を計算する。また、証明者アルゴリズムPは、数seed1のハッシュ値c1を生成する。つまり、証明者アルゴリズムPは、c1←H(seed1)を計算する。さらに、証明者アルゴリズムPは、多変数多項式F2のハッシュ値c2を生成する。つまり、証明者アルゴリズムPは、c2←H(F2)を計算する。このハッシュ値(c0,c1,c2)は、メッセージとして検証者アルゴリズムVに送られる。このとき、sに関する情報、r0に関する情報、r1に関する情報が検証者に一切漏れない点に注意されたい。
メッセージ(c0,c1,c2)を受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す3つの数値{0,1,2}の中から1つの数値を選択し、選択した数値を要求Chに設定する。この要求Chは証明者アルゴリズムPに送られる。
要求Chを受け取った証明者アルゴリズムPは、受け取った要求Chに応じて検証者アルゴリズムVに送る返答Rspを生成する。Ch=0の場合、証明者アルゴリズムPは、返答Rsp=seed0を生成する。Ch=1の場合、証明者アルゴリズムPは、返答Rsp=(seed1,r1)を生成する。Ch=2の場合、証明者アルゴリズムPは、返答Rsp=(F2,r1)を生成する。工程#3で生成された返答Rspは、検証者アルゴリズムVに送られる。このとき、Ch=0の場合にはr1に関する情報が検証者に一切漏れておらず、Ch=1又は2の場合にはr0に関する情報が検証者に一切漏れない点に注意されたい。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
ここで、3パス方式に係るアルゴリズムの健全性について説明を補足する。3パス方式に係るアルゴリズムの健全性は、「検証者アルゴリズムVが選択可能な要求Ch=0,1,2の全てについて、証明者アルゴリズムPが正しい返答Rspを返したならば、下記の式(6)及び式(7)を満たすF2、F1、r0、r1が計算可能になる」という論理に基づいて保証されている。
ここで、ハッシュ関数Hについて説明を補足する。上記のアルゴリズムでは、ハッシュ関数Hを用いてc0,c1,c2などを計算しているが、ハッシュ関数Hの代わりにコミットメント関数COMを用いてもよい。コミットメント関数COMは、文字列S及び乱数ρを引数にとる関数である。コミットメント関数の例としては、Shai HaleviとSilvio Micaliによって国際会議CRYPTO1996で発表された方式などがある。
次に、3パス方式に係るアルゴリズムを効率化する方法について述べる。ここでは、多変数多項式Fとして2次多項式の組(f1(x),…,fm(x))を利用する場合について説明する。但し、2次多項式fi(x)は、下記の式(8)のように表現されるものとする。
まず、図5を参照しながら、3パス方式に係る効率的なアルゴリズムの基本構成について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図5に示すように、証明者アルゴリズムPは、ランダムにベクトルr0,t0∈Kn及びe0∈Kmを生成する。次いで、証明者アルゴリズムPは、r1←s−r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。さらに、証明者アルゴリズムPは、t1←r0−t0を計算する。次いで、証明者アルゴリズムPは、e1←F(r0)−e0を計算する。
次いで、証明者アルゴリズムPは、c0←H(r1,G(t0,r1)+e0)を計算する。次いで、証明者アルゴリズムPは、c1←H(t0,e0)を計算する。次いで、証明者アルゴリズムPは、c2←H(t1,e1)を計算する。工程#1で生成されたメッセージ(c0,c1,c2)は、検証者アルゴリズムVに送られる。
メッセージ(c0,c1,c2)を受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す3つの数値{0,1,2}の中から1つの数値を選択し、選択した数値を要求Chに設定する。この要求Chは証明者アルゴリズムPに送られる。
要求Chを受け取った証明者アルゴリズムPは、受け取った要求Chに応じて検証者アルゴリズムVに送る返答Rspを生成する。Ch=0の場合、証明者アルゴリズムPは、返答Rsp=(r0,t1,e1)を生成する。Ch=1の場合、証明者アルゴリズムPは、返答Rsp=(r1,t0,e0)を生成する。Ch=2の場合、証明者アルゴリズムPは、返答Rsp=(r1,t1,e1)を生成する。工程#3で生成された返答Rspは、検証者アルゴリズムVに送られる。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
次に、図6を参照しながら、図5に示した効率的なアルゴリズムを並列化する方法について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
証明者アルゴリズムPは、i=1〜Nについて以下の処理(1)〜処理(6)を実行する。
処理(1):証明者アルゴリズムPは、ランダムにベクトルr0i,t0i∈Kn及びe0i∈Kmを生成する。
処理(2):証明者アルゴリズムPは、r1i←s−r0iを計算する。この計算は、秘密鍵sをベクトルr0iによりマスクする操作に相当する。さらに、証明者アルゴリズムPは、t1i←r0i+t0iを計算する。
処理(3):証明者アルゴリズムPは、e1i←F(r0i)−e0iを計算する。
処理(4):証明者アルゴリズムPは、c0i←H(r1i,G(r1i,t0i)+e0i)を計算する。
処理(5):証明者アルゴリズムPは、c1i←H(t0i,e0i)を計算する。
処理(6):証明者アルゴリズムPは、c2i←H(t1i,e1i)を計算する。
i=1〜Nについて上記の処理(1)〜処理(6)を実行した後、証明者アルゴリズムPは、Cmt←H(c01,c11,c21,…,c0N,c1N,c2N)を計算する。工程#1で生成されたハッシュ値Cmtは、検証者アルゴリズムVに送られる。このように、メッセージ(c01,c11,c21,…,c0N,c1N,c2N)をハッシュ値に変換してから検証者アルゴリズムVに送ることで、通信量を削減することが可能になる。
ハッシュ値Cmtを受け取った検証者アルゴリズムVは、i=1〜Nのそれぞれについて、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、i=1〜Nのそれぞれについて、検証パターンの種類を表す3つの数値{0,1,2}の中から1つの数値を選択し、選択した数値を要求Chiに設定する。要求Ch1,…,ChNは、証明者アルゴリズムPに送られる。
要求Ch1,…,ChNを受け取った証明者アルゴリズムPは、受け取った要求Ch1,…,ChNのそれぞれ応じて検証者アルゴリズムVに送る返答Rsp1,…,RspNを生成する。Chi=0の場合、証明者アルゴリズムPは、Rspi=(r0i,t1i,e1i,c0i)を生成する。Chi=1の場合、証明者アルゴリズムPは、Rspi=(r1i,t0i,e0i,c2i)を生成する。Chi=2の場合、証明者アルゴリズムPは、Rspi=(r1i,t1i,e1i,c1i)を生成する。
返答Rsp1,…,RspNを受け取った検証者アルゴリズムVは、受け取った返答Rsp1,…,RspNを利用して以下の処理(1)〜処理(3)をi=1〜Nについて実行する。但し、検証者アルゴリズムVは、Chi=0の場合に処理(1)を実行し、Chi=1の場合に処理(2)を実行し、Chi=2の場合に処理(3)を実行する。
上記の効率的なアルゴリズムは、上記の式(8)で定義される2次多項式fiの組で多変数多項式Fを表現することにより、上記の式(10)で定義される多項式Gが双線形になるという性質を利用していた。しかし、多項式Gが加法準同型であれば、多項式Gが双線形でなくとも、同様に効率的なアルゴリズムを構築することが可能である。
多項式Gが加法準同型の場合、変数r0,r1,t0,e0を用いて、下記の式(14)〜式(16)の関係が成り立つ。なお、下記の式(14)は、秘密鍵sをs=r0+r1と分割し、公開鍵F(s)を展開したものである。下記の式(14)〜式(16)は、(r0,t1,e1)で再現可能な第1の部分と、(r1,t0,e0)で再現可能な第2の部分と、(r1,t1,e1)で再現可能な第3の部分とに分けることができる。
2次多項式fiを利用する場合に関する上記の考察を発展させ、下記の式(17)で表現される環R上の3次多項式flを利用した効率的なアルゴリズムの構築方法について検討してみたい。3次多項式flの組で表現される多変数多項式F=(f1,…,fm)は、下記の式(18)の関係を満たす。但し、Gx(x,y)は、xに関して1次となる項を表す。また、Gy(x,y)は、yに関して1次となる項を表す。Gx=(gx1,…,gxm)、Gy=(gy1,…,gym)と表現すると、gxl及びgylは、それぞれ下記の式(19)及び式(20)のように展開することができる。但し、gxlの右辺第2項は、x及びyのいずれに関しても1次であるため、gylに含めてもよい。
まず、図7を参照しながら、3パス方式に係る拡張アルゴリズムの基本構成について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図7に示すように、証明者アルゴリズムPは、ランダムにベクトルr0,t0,u0∈Kn及びe0∈Kmを生成する。次いで、証明者アルゴリズムPは、r1←s−r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。次いで、証明者アルゴリズムPは、t1←r0−t0を計算する。次いで、証明者アルゴリズムPは、u1←r1−u0を計算する。次いで、証明者アルゴリズムPは、e1←F(r0)−e0を計算する。
次いで、証明者アルゴリズムPは、c0←H(r1,Gx(t0,r1)+e0)を計算する。次いで、証明者アルゴリズムPは、c1←H(r0−t0,u0)を計算する。次いで、証明者アルゴリズムPは、c2←H(r0,e1−Gy(r0,u1))を計算する。次いで、証明者アルゴリズムPは、c3←H(t0,e0)を計算する。次いで、証明者アルゴリズムPは、c4←H(u1,e1)を計算する。工程#1で生成されたメッセージ(c0,c1,c2,c3,c4)は、検証者アルゴリズムVに送られる。
メッセージ(c0,c1,c2,c3,c4)を受け取った検証者アルゴリズムVは、4つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す4つの数値{0,1,2,3}の中から1つの数値を選択し、選択した数値を要求Chに設定する。この要求Chは証明者アルゴリズムPに送られる。
要求Chを受け取った証明者アルゴリズムPは、受け取った要求Chに応じて検証者アルゴリズムVに送る返答Rspを生成する。Ch=0の場合、証明者アルゴリズムPは、返答Rsp=(r0,t0,u0,e0)を生成する。Ch=1の場合、証明者アルゴリズムPは、返答Rsp=(r0,u1,e1)を生成する。Ch=2の場合、証明者アルゴリズムPは、返答Rsp=(r1,t0,e0)を生成する。Ch=3の場合、証明者アルゴリズムPは、返答Rsp=(r1,t1,u1,e1)を生成する。工程#3で生成された返答Rspは、検証者アルゴリズムVに送られる。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
次に、図8を参照しながら、3パス方式に係る拡張アルゴリズムの並列化について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図8に示すように、証明者アルゴリズムPは、i=1〜Nについて、以下の処理を実行する。まず、証明者アルゴリズムPは、ランダムにベクトルr0i,t0i,u0i∈Kn及びe0i∈Kmを生成する。次いで、証明者アルゴリズムPは、r1i←s−r0iを計算する。この計算は、秘密鍵sをベクトルr0iによりマスクする操作に相当する。次いで、証明者アルゴリズムPは、t1i←r0i−t0iを計算する。次いで、証明者アルゴリズムPは、u1i←r1i−u0iを計算する。次いで、証明者アルゴリズムPは、e1i←F(r0i)−e0iを計算する。
次いで、証明者アルゴリズムPは、c0i←H(r1i,Gx(t0i,r1i)+e0i)を計算する。次いで、証明者アルゴリズムPは、c1i←H(r0i−t0i,u0i)を計算する。次いで、証明者アルゴリズムPは、c2i←H(r0i,e1i−Gy(r0i,u1i))を計算する。次いで、証明者アルゴリズムPは、c3i←H(t0i,e0i)を計算する。次いで、証明者アルゴリズムPは、c4i←H(u1i,e1i)を計算する。(c01,c11,c21,c31,c41,…,c0N,c1N,c2N,c3N,c4N)を生成した後、証明者アルゴリズムPは、ハッシュ値Cmt←H(c01,c11,c21,c31,c41,…,c0N,c1N,c2N,c3N,c4N)を計算する。
ハッシュ値Cmtを受け取った検証者アルゴリズムVは、i=1〜Nのそれぞれについて、4つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、i=1〜Nのそれぞれについて、検証パターンの種類を表す4つの数値{0,1,2,3}の中から1つの数値を選択し、選択した数値を要求Chiに設定する。要求Chi(i=1〜N)は証明者アルゴリズムPに送られる。
要求Chi(i=1〜N)を受け取った証明者アルゴリズムPは、i=1〜Nについて、受け取った要求Chiに応じて検証者アルゴリズムVに送る返答Rspiを生成する。Chi=0の場合、証明者アルゴリズムPは、返答Rspi=(r0i,t0i,u0i,e0i,c0i,c4i)を生成する。Chi=1の場合、証明者アルゴリズムPは、返答Rspi=(r0i,u1i,e1i,c0i,c1i,c3i)を生成する。Chi=2の場合、証明者アルゴリズムPは、返答Rspi=(r1i,t0i,e0i,c1i,c2i,c4i)を生成する。Chi=3の場合、証明者アルゴリズムPは、返答Rspi=(r1i,t1i,u1i,e1i,c2i,c3i)を生成する。工程#3で生成された返答Rspi(i=1〜N)は、検証者アルゴリズムVに送られる。
返答Rspi(i=1〜N)を受け取った検証者アルゴリズムVは、受け取った返答Rspiを利用し、i=1〜Nについて以下の処理を実行する。
以下、5パスの公開鍵認証方式に係るアルゴリズムについて説明する。なお、以下の説明において、5パスの公開鍵認証方式のことを「5パス方式」と呼ぶ場合がある。
まず、図9を参照しながら、5パス方式に係る具体的なアルゴリズムの構成例について紹介する。図9は、5パス方式に係る具体的なアルゴリズムの構成について説明するための説明図である。なお、5パス方式のアルゴリズムは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの構成について説明する。
鍵生成アルゴリズムGenは、環K上で定義される多変数多項式f1(x1,…,xn),…,fm(x1,…,xn)、及びベクトルs=(s1,…,sn)∈Knを生成する。次に、鍵生成アルゴリズムGenは、y=(y1,…,ym)←(f1(s),…,fm(s))を計算する。そして、鍵生成アルゴリズムGenは、(f1,…,fm,y)を公開鍵pkに設定し、sを秘密鍵に設定する。なお、以下では、ベクトル(x1,…,xn)をxと表記し、多変数多項式の組(f1(x),…,fm(x))をF(x)と表記する。
次に、図9を参照しながら、対話プロトコルの中で証明者アルゴリズムP及び検証者アルゴリズムVにより実行される処理について説明する。
図9に示すように、証明者アルゴリズムPは、ランダムに数seed0を選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器PRNGに数seed0を適用してベクトルr0∈Kn、及び多変数多項式の組F1(x)=(f11(x),…,f1m(x))を生成する。つまり、証明者アルゴリズムPは、(r0,F1)←G(seed0)を計算する。次いで、証明者アルゴリズムPは、r1←s−r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。
次いで、証明者アルゴリズムPは、F1(r1)及びr1のハッシュ値c0を生成する。つまり、証明者アルゴリズムPは、c0←H(F1(r1),r1)を計算する。また、証明者アルゴリズムPは、数seed0のハッシュ値c1を生成する。つまり、証明者アルゴリズムPは、c1←H(seed0)を計算する。工程#1で生成されたメッセージ(c0,c1)は、検証者アルゴリズムVに送られる。
メッセージ(c0,c1)を受け取った検証者アルゴリズムVは、q通り存在する環Kの元からランダムに1つの数ChAを選択し、選択した数ChAを証明者アルゴリズムPに送る。
数ChAを受け取った証明者アルゴリズムPは、F2(x)←ChA・F(x+r0)+F1(x)を計算する。この計算は、xに関して多変数多項式F(x+r0)を多変数多項式F1(x)によりマスクする操作に相当する。工程#3で生成された多変数多項式F2は、検証者アルゴリズムVに送られる。
多変数多項式F2を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBに設定する。この要求ChBは証明者アルゴリズムPに送られる。
要求ChBを受け取った証明者アルゴリズムPは、受け取った要求ChBに応じて検証者アルゴリズムVに送り返す返答Rspを生成する。ChB=0の場合、証明者アルゴリズムPは、返答Rsp=seed0を生成する。ChB=1の場合、証明者アルゴリズムPは、返答Rsp=r1を生成する。工程#5で生成された返答Rspは、検証者アルゴリズムVに送られる。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
5パス方式の健全性は、証明者アルゴリズムPが(c0,c1)、及び、検証者アルゴリズムVが選択する2通りの(ChA,ChA’)について、要求ChB=0及び1に正しく回答した場合に、その回答内容から下記の式(28)〜式(30)を満たすF1、F2、F2’、r0、r1を計算できるということから保証されている。
ここで、ハッシュ関数Hについて説明を補足する。上記のアルゴリズムでは、ハッシュ関数Hを用いてc0,c1などを計算しているが、ハッシュ関数Hの代わりにコミットメント関数COMを用いてもよい。コミットメント関数COMは、文字列S及び乱数ρを引数にとる関数である。コミットメント関数の例としては、Shai HaleviとSilvio Micaliによって国際会議CRYPTO1996で発表された方式などがある。
次に、5パス方式に係るアルゴリズムを効率化する方法について述べる。ここでは、多変数多項式Fとして2次多項式の組(f1(x),…,fm(x))を利用する場合について説明する。
まず、図10を参照しながら、5パス方式に係る効率的なアルゴリズムの基本構成について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図10に示すように、証明者アルゴリズムPは、ランダムにベクトルr0∈Kn、t0∈Kn、e0∈Kmを生成する。次いで、証明者アルゴリズムPは、r1←s−r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。次いで、証明者アルゴリズムPは、ベクトルr0,t0,e0のハッシュ値c0を生成する。つまり、証明者アルゴリズムPは、c0←H(r0,t0,e0)を計算する。次いで、証明者アルゴリズムPは、G(t0,r1)+e0及びr1のハッシュ値c1を生成する。つまり、証明者アルゴリズムPは、c0←H(r1,G(t0,r1)+e0)を計算する。工程#1で生成されたメッセージ(c0,c1)は、検証者アルゴリズムVに送られる。
メッセージ(c0,c1)を受け取った検証者アルゴリズムVは、q通り存在する環Kの元からランダムに1つの数ChAを選択し、選択した数ChAを証明者アルゴリズムPに送る。
数ChAを受け取った証明者アルゴリズムPは、t1←ChA・r0−t0を計算する。さらに、証明者アルゴリズムPは、e1←ChA・F(r0)−e0を計算する。そして、証明者アルゴリズムPは、t1及びe1を検証者アルゴリズムVに送る。
t1及びe1を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBに設定する。この要求ChBは証明者アルゴリズムPに送られる。
要求ChBを受け取った証明者アルゴリズムPは、受け取った要求ChBに応じて検証者アルゴリズムVに送り返す返答Rspを生成する。ChB=0の場合、証明者アルゴリズムPは、返答Rsp=r0を生成する。ChB=1の場合、証明者アルゴリズムPは、返答Rsp=r1を生成する。工程#5で生成された返答Rspは、検証者アルゴリズムVに送られる。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
次に、図11を参照しながら、図10に示した効率的なアルゴリズムを並列化する方法について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
証明者アルゴリズムPは、i=1〜Nについて処理(1)〜処理(4)を実行する。
処理(1):証明者アルゴリズムPは、ランダムにベクトルr0i,t0i∈Kn及びe0i∈Kmを生成する。
処理(2):証明者アルゴリズムPは、r1i←s−r0iを計算する。この計算は、秘密鍵sをベクトルr0iによりマスクする操作に相当する。
処理(3):証明者アルゴリズムPは、c0i←H(r0i,t0i,e0i)を計算する。
処理(4):証明者アルゴリズムPは、c1i←H(r1i,G(t0i,r1i)+e0i)を計算する。
i=1〜Nについて処理(1)〜処理(4)を実行した後、証明者アルゴリズムPは、ハッシュ値Cmt←H(c01,c11,…,c0N,c1N)を実行する。そして、工程#1で生成されたハッシュ値Cmtは、検証者アルゴリズムVに送られる。
ハッシュ値Cmtを受け取った検証者アルゴリズムVは、i=1〜Nのそれぞれについて、q通り存在する環Kの元からランダムに1つの数ChAiを選択し、選択した数ChAi(i=1〜N)を証明者アルゴリズムPに送る。
数ChAi(i=1〜N)を受け取った証明者アルゴリズムPは、i=1〜Nのそれぞれについて、t1i←ChAi・r0i−t0iを計算する。さらに、証明者アルゴリズムPは、i=1〜Nのそれぞれについて、e1i←ChAi・F(r0i)−e0iを計算する。そして、証明者アルゴリズムPは、t11,…,t1N及びe11,…,e1Nを検証者アルゴリズムVに送る。
t11,…,t1N及びe11,…,e1Nを受け取った検証者アルゴリズムVは、i=1〜Nのそれぞれについて、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBiに設定する。要求ChBi(i=1〜N)は証明者アルゴリズムPに送られる。
要求ChBi(i=1〜N)を受け取った証明者アルゴリズムPは、i=1〜Nについて、受け取った要求ChBiに応じて検証者アルゴリズムVに送り返す返答Rspiを生成する。ChBi=0の場合、証明者アルゴリズムPは、返答Rspi=(r0i,c1i)を生成する。ChBi=1の場合、証明者アルゴリズムPは、返答Rspi=(r1i,c0i)を生成する。工程#5で生成された返答Rspi(i=1〜N)は、検証者アルゴリズムVに送られる。
返答Rspi(i=1〜N)を受け取った検証者アルゴリズムVは、受け取った返答Rspi(i=1〜N)を利用して以下の処理(1)及び処理(2)を実行する。
上記の効率的なアルゴリズムは、上記の式(8)で定義される2次多項式fiの組で多変数多項式Fを表現することにより、上記の式(10)で定義される多項式Gが双線形になるという性質を利用していた。但し、図10に示した効率的なアルゴリズムは、公開鍵F(s)をChA倍した項がChAに依存する部分と、それ以外の部分とに分割できることを利用している。しかし、5パス方式の場合も多項式Gがxかyの少なくとも片方について線形であれば、多項式Gが双線形でなくとも、同様に効率的なアルゴリズムを構築することが可能である。
3パス方式の場合と同様、環R上の3次多項式flを利用した効率的なアルゴリズムの構築方法について検討してみたい。3次多項式flを上記の式(17)のように表現した場合に、Gx(x,y)及びGy(x,y)がx及びyについて線形になることについては式(19)と式(20)より分かる。
まず、図12を参照しながら、5パス方式に係る拡張アルゴリズムの基本構成について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図12に示すように、証明者アルゴリズムPは、ランダムにベクトルr0,t0,u0∈Kn及びe0∈Kmを生成する。次いで、証明者アルゴリズムPは、r1←s−r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。次いで、証明者アルゴリズムPは、c0←H(r0,t0,e0−Gy(r0,u0))を計算する。次いで、証明者アルゴリズムPは、c1←H(r1,u0,Gx(t0,r1)+e0)を計算する。工程#1で生成されたメッセージ(c0,c1)は、検証者アルゴリズムVに送られる。
メッセージ(c0,c1)を受け取った検証者アルゴリズムVは、ランダムに数ChAを選択する。この数ChAは証明者アルゴリズムPに送られる。
数ChAを受け取った証明者アルゴリズムPは、t1←ChA・r0−t0を計算する。次いで、証明者アルゴリズムPは、u1←ChA・r1−u0を計算する。次いで、証明者アルゴリズムPは、e1←ChA・F(r0)+ChA・Gy(r0,r1)−e0を計算する。工程#3で生成された(t1,u1,e1)は、検証者アルゴリズムVに送られる。
(t1,u1,e1)を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBに設定する。この要求ChBは証明者アルゴリズムPに送られる。
要求ChBを受け取った証明者アルゴリズムPは、受け取った要求ChBに応じて検証者アルゴリズムVに送る返答Rspを生成する。ChB=0の場合、証明者アルゴリズムPは、返答Rsp=r0を生成する。ChB=1の場合、証明者アルゴリズムPは、返答Rsp=r1を生成する。工程#5で生成された返答Rspは、検証者アルゴリズムVに送られる。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
次に、図13を参照しながら、5パス方式に係る拡張アルゴリズムの並列化について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図13に示すように、証明者アルゴリズムPは、i=1〜Nについて、次の処理を実行する。まず、証明者アルゴリズムPは、ランダムにベクトルr0i,t0i,u0i∈Kn及びe0i∈Kmを生成する。次いで、証明者アルゴリズムPは、r1i←s−r0iを計算する。この計算は、秘密鍵sをベクトルr0iによりマスクする操作に相当する。次いで、証明者アルゴリズムPは、c0i←H(r0i,t0i,e0i−Gy(r0i,u0i))を計算する。次いで、証明者アルゴリズムPは、c1i←H(r1i,u0i,Gx(t0i,r1i)+e0i)を計算する。
(c01,c11,…,c0N,c1N)を計算した後、証明者アルゴリズムPは、ハッシュ値Cmt←H(c01,c11,…,c0N,c1N)を計算する。工程#1で生成されたハッシュ値Cmtは、検証者アルゴリズムVに送られる。
ハッシュ値Cmtを受け取った検証者アルゴリズムVは、ランダムに数ChA1,…,ChANを選択する。数ChA1,…,ChANは証明者アルゴリズムPに送られる。
数ChA1,…,ChANを受け取った証明者アルゴリズムPは、i=1〜Nについて、次の処理を実行する。まず、証明者アルゴリズムPは、t1i←ChAi・r0i−t0iを計算する。次いで、証明者アルゴリズムPは、u1i←ChAi・r1i−u0iを計算する。次いで、証明者アルゴリズムPは、e1i←ChAi・F(r0i)+ChAi・Gy(r0i,r1i)−e0iを計算する。
(t11,u11,e11,…,t1N,u1N,e1N)を受け取った検証者アルゴリズムVは、i=1〜Nのそれぞれについて、2つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、i=1〜Nのそれぞれについて、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBiに設定する。要求ChB1,…,ChBNは証明者アルゴリズムPに送られる。
要求ChB1,…,ChBNを受け取った証明者アルゴリズムPは、i=1〜Nのそれぞれについて、受け取った要求ChBiに応じて検証者アルゴリズムVに送る返答Rspiを生成する。ChBi=0の場合、証明者アルゴリズムPは、返答Rspi=(r0i,c1i)を生成する。ChBi=1の場合、証明者アルゴリズムPは、返答Rspi=(r1i,c0i)を生成する。工程#5で生成された返答Rspiは、検証者アルゴリズムVに送られる。
返答Rspi(i=1〜N)を受け取った検証者アルゴリズムVは、受け取った返答Rspiを利用し、i=1〜Nについて次の処理を実行する。
これまで、環R上の3次多項式flを利用した効率的なアルゴリズムの構築方法について説明してきた。ここでは標数q及び位数qkの環R上で定義される高次多項式flを利用した拡張アルゴリズムの構築方法について考える。この高次多項式flは、例えば、下記の式(38)のように表現される。この高次多項式flを用いる場合、G(x,y)=F(x+y)−F(x)−F(y)=(g1,…,gm)で定義される多項式Gの成分glは、下記の式(39)のように表現される。
まず、図14を参照しながら、5パス方式に係る高次拡張アルゴリズムの基本構成について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図14に示すように、証明者アルゴリズムPは、ランダムにベクトルr0,t01,…,t0k∈Kn及びe0∈Kmを生成する。次いで、証明者アルゴリズムPは、r1←s−r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。次いで、証明者アルゴリズムPは、c0←H(r0,t01,…,t0k,e0)を計算する。次いで、証明者アルゴリズムPは、c1←H(r1,ΣzGz(t0z,r1)+e0)(但し、Σzはz=1〜kについての和を表す。)を計算する。工程#1で生成されたメッセージ(c0,c1)は、検証者アルゴリズムVに送られる。
メッセージ(c0,c1)を受け取った検証者アルゴリズムVは、ランダムに数ChAを選択する。この数ChAは証明者アルゴリズムPに送られる。
数ChAを受け取った証明者アルゴリズムPは、z=1〜kについて、t1z←(ChA)q(z−1)・r0−t0zを計算する。次いで、証明者アルゴリズムPは、e1←ChA・F(r0)−e0を計算する。工程#3で生成された(t11,…,t1k,e1)は、検証者アルゴリズムVに送られる。
(t11,…,t1k,e1)を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBに設定する。この要求ChBは証明者アルゴリズムPに送られる。
要求ChBを受け取った証明者アルゴリズムPは、受け取った要求ChBに応じて検証者アルゴリズムVに送る返答Rspを生成する。ChB=0の場合、証明者アルゴリズムPは、返答Rsp=r0を生成する。ChB=1の場合、証明者アルゴリズムPは、返答Rsp=r1を生成する。工程#5で生成された返答Rspは、検証者アルゴリズムVに送られる。
返答Rspを受け取った検証者アルゴリズムVは、受け取った返答Rspを利用して以下の検証処理を実行する。
次に、図15を参照しながら、5パス方式に係る高次拡張アルゴリズムの並列化について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図15に示すように、証明者アルゴリズムPは、i=1〜Nについて、次の処理を実行する。まず、証明者アルゴリズムPは、ランダムにベクトルr0i,t01i,…,t0ki∈Kn及びe0i∈Kmを生成する。次いで、証明者アルゴリズムPは、r1i←s−r0iを計算する。この計算は、秘密鍵sをベクトルr0iによりマスクする操作に相当する。次いで、証明者アルゴリズムPは、c0i←H(r0i,t01i,…,t0ki,e0i)を計算する。次いで、証明者アルゴリズムPは、c1i←H(r1i,ΣzGz(t0zi,r1i)+e0i)(但し、Σzはz=1〜kについての和を表す。)を計算する。工程#1で生成されたメッセージ(c0i,c1i)(i=1〜N)は、検証者アルゴリズムVに送られる。
メッセージ(c0i,c1i)(i=1〜N)を受け取った検証者アルゴリズムVは、ランダムに数ChA1,…,ChANを選択する。この数ChA1,…,ChANは証明者アルゴリズムPに送られる。
数ChA1,…,ChANを受け取った証明者アルゴリズムPは、i=1〜N及びz=1〜kについて、t1zi←(ChAi)q(z−1)・r0i−t0ziを計算する。次いで、証明者アルゴリズムPは、e1i←ChAi・F(r0i)−e0iを計算する。工程#3で生成された(t11i,…,t1ki,e1i)(i=1〜N)は、検証者アルゴリズムVに送られる。
(t11i,…,t1ki,e1i)(i=1〜N)を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す2つの数値{0,1}の中から1つの数値を選択し、選択した数値を要求ChBiに設定する。要求ChBi(i=1〜N)は証明者アルゴリズムPに送られる。
要求ChBi(i=1〜N)を受け取った証明者アルゴリズムPは、i=1〜Nのそれぞれについて、受け取った要求ChBiに応じて検証者アルゴリズムVに送る返答Rspiを生成する。ChBi=0の場合、証明者アルゴリズムPは、返答Rspi=r0iを生成する。ChBi=1の場合、証明者アルゴリズムPは、返答Rspi=r1iを生成する。工程#5で生成された返答Rspi(i=1〜N)は、検証者アルゴリズムVに送られる。
返答Rspi(i=1〜N)を受け取った検証者アルゴリズムVは、受け取った返答Rspiを利用し、i=1〜Nについて次の認証処理を実行する。
さて、図15に示した高次拡張アルゴリズムの並列化構成において、1パス目にメッセージ(c0i,c1i)(i=1〜N)をそのまま送っていた。しかし、通信効率を考えると、メッセージ(c0i,c1i)(i=1〜N)を1つのハッシュ値に纏めて送る方が好ましい。1パス目でメッセージ(c0i,c1i)(i=1〜N)を1つのハッシュ値に纏めて送るには、図16に示すようにアルゴリズムの構成を変形すればよい。
さて、図15に示した高次拡張アルゴリズムの並列化構成において、1パス目にメッセージ(c0i,c1i)(i=1〜N)をそのまま送っていた。さらに、3パス目に(t11i,…,t1ki,e1i)(i=1〜N)をそのまま送っていた。しかし、通信効率を考えると、メッセージ(c0i,c1i)(i=1〜N)を1つのハッシュ値に纏めて送る方が好ましい。さらに、(t11i,…,t1ki,e1i)(i=1〜N)を1つのハッシュ値に纏めて送る方が好ましい。1パス目でメッセージ(c0i,c1i)(i=1〜N)を1つのハッシュ値に纏めて送り、3パス目で(t11i,…,t1ki,e1i)(i=1〜N)を1つのハッシュ値に纏めて送るには、図17に示すようにアルゴリズムの構成を変形すればよい。
ここで、上記の公開鍵認証方式を電子署名方式へと変形する方法を紹介する。
まず、3パスの公開鍵認証方式から電子署名方式への変形について説明する。
図18に示すように、3パス方式に係る効率的なアルゴリズム(例えば、図6及び図8を参照)は、3回の対話及び4つの工程#1〜工程#4で表現される。
まず、署名生成アルゴリズムSigの構成について述べる。署名生成アルゴリズムSigは、以下の処理(1)〜処理(5)で構成される。
処理(2):署名生成アルゴリズムSigは、Cmt←H(c01,c11,c21,…,c0N,c1N,c2N)を計算する。
処理(3):署名生成アルゴリズムSigは、(Ch1,…,ChN)←H(M,Cmt)を計算する。このMは、署名を付与する文書である。
処理(4):署名生成アルゴリズムSigは、Rspi←Select(Chi,ai)を計算する。
処理(5):署名生成アルゴリズムSigは、(Cmt,Rsp1,…,RspN)を署名に設定する。
次に、署名検証アルゴリズムVerの構成について述べる。署名検証アルゴリズムVerは、以下の処理(1)〜処理(3)で構成される。
処理(2):署名検証アルゴリズムVerは、Ch1,…,ChN及びRsp1,…,RspNを用いてc01,c11,c21,…,c0N,c1N,c2Nを生成する。
処理(3):署名検証アルゴリズムVerは、再生したc01,c11,c21,…,c0N,c1N,c2Nを用いてCmt=H(c01,c11,c21,…,c0N,c1N,c2N)を検証する。
ところで、図18に示した署名生成アルゴリズムSigの構成に注目すると、処理(2)及び処理(3)でハッシュ値の計算を行っていることに気づくであろう。また、署名検証アルゴリズムVerの構成に注目すると、処理(1)において、署名生成アルゴリズムSigの処理(3)と同じハッシュ値の計算を行っていることに気づくであろう。これらの処理に注目し、図19に示すように署名生成アルゴリズムSig及び署名検証アルゴリズムVerの構成を改良すると、さらに計算効率を向上させることができる。
まず、図19を参照しながら、改良後の署名生成アルゴリズムSigの構成について説明する。署名生成アルゴリズムSigは、以下の処理(1)〜処理(4)で構成される。
処理(2):署名生成アルゴリズムSigは、(Ch1,…,ChN)←H(M,c01,c11,c21,…,c0N,c1N,c2N)を計算する。このMは、署名を付与する文書である。
処理(3):署名生成アルゴリズムSigは、Rspi←Select(Chi,ai)を計算する。
処理(4):署名生成アルゴリズムSigは、(Ch1,…,ChN,Rsp1,…,RspN)を署名に設定する。
次に、改良後の署名検証アルゴリズムVerの構成について説明する。署名検証アルゴリズムVerは、以下の処理(1)及び処理(2)で構成される。
処理(2):署名検証アルゴリズムVerは、再生したc01,c11,c21,…,c0N,c1N,c2Nを用いて(Ch1,…,ChN)=H(c01,c11,c21,…,c0N,c1N,c2N)を検証する。
次に、5パスの公開鍵認証方式から電子署名方式への変形について説明する。
図20に示すように、5パス方式に係る効率的なアルゴリズム(例えば、図11、図13及び図16を参照)は、5回の対話及び6つの工程#1〜工程#6で表現される。
まず、署名生成アルゴリズムSigの構成について述べる。署名生成アルゴリズムSigは、以下の処理(1)〜処理(7)で構成される。
処理(2):署名生成アルゴリズムSigは、Cmt←H(c01,c11,…,c0N,c1N)を計算する。
処理(3):署名生成アルゴリズムSigは、(ChA1,…,ChAN)←H(M,Cmt)を計算する。このMは、署名を付与する文書である。
処理(4):署名生成アルゴリズムSigは、i=1〜Nについて、bi=(t1i,e1i)を生成する。
処理(5):署名生成アルゴリズムSigは、(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,b1,…,bN)を計算する。なお、(ChB1,…,ChBN)←H(ChA1,…,ChAN,b1,…,bN)と変形してもよい。
処理(6):署名生成アルゴリズムSigは、Rspi←Select(ChBi,ai,bi)を計算する。
処理(7):署名生成アルゴリズムSigは、(Cmt,b1,…,bN,Rsp1,…,RspN)を電子署名に設定する。
次に、署名検証アルゴリズムVerの構成について述べる。署名検証アルゴリズムVerは、以下の処理(1)〜処理(4)で構成される。
処理(2):署名検証アルゴリズムVerは、(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,b1,…,bN)を計算する。なお、署名検証アルゴリズムVerが実行する処理(5)において、(ChB1,…,ChBN)←H(ChA1,…,ChAN,b1,…,bN)と変形した場合、署名検証アルゴリズムVerは、(ChB1,…,ChBN)←H(ChA1,…,ChAN,b1,…,bN)を計算する。
処理(3):署名検証アルゴリズムVerは、ChA1,…,ChAN,ChB1,…,ChBN,Rsp1,…,RspNを用いてc01,c11,…,c0N,c1Nを生成する。
処理(4):署名検証アルゴリズムVerは、再生したc01,c11,…,c0N,c1Nを用いてCmt=H(c01,c11,…,c0N,c1N)を検証する。
図21に示すように、5パス方式に係る更に効率的なアルゴリズム(例えば、図17を参照)は、5回の対話及び6つの工程#1〜工程#6で表現される。
まず、署名生成アルゴリズムSigの構成について述べる。署名生成アルゴリズムSigは、以下の処理(1)〜処理(8)で構成される。
処理(2):署名生成アルゴリズムSigは、CmtA←H(c01,c11,…,c0N,c1N)を計算する。
処理(3):署名生成アルゴリズムSigは、(ChA1,…,ChAN)←H(M,CmtA)を計算する。このMは、署名を付与する文書である。
処理(4):署名生成アルゴリズムSigは、i=1〜Nについて、bi=(t1i,e1i)を生成する。
処理(5):署名生成アルゴリズムSigは、CmtB←H(b1,…,bN)を計算する。
処理(6):署名生成アルゴリズムSigは、(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,CmtB)を計算する。なお、(ChB1,…,ChBN)←H(ChA1,…,ChAN,CmtB)と変形してもよい。
処理(7):署名生成アルゴリズムSigは、Rspi←Select(ChBi,ai,bi)を計算する。
処理(8):署名生成アルゴリズムSigは、(CmtA,CmtB,Rsp1,…,RspN)を電子署名に設定する。
次に、署名検証アルゴリズムVerの構成について述べる。署名検証アルゴリズムVerは、以下の処理(1)〜処理(5)で構成される。
処理(2):署名検証アルゴリズムVerは、(ChB1,…,ChBN)←H(M,CmtA,ChA1,…,ChAN,CmtB)を計算する。なお、署名検証アルゴリズムVerが実行する処理(6)において、(ChB1,…,ChBN)←H(ChA1,…,ChAN,CmtB)と変形した場合、署名検証アルゴリズムVerは、(ChB1,…,ChBN)←H(ChA1,…,ChAN,CmtB)を計算する。
処理(3):署名検証アルゴリズムVerは、ChA1,…,ChAN,ChB1,…,ChBN,Rsp1,…,RspNを用いてc01,c11,…,c0N,c1N,b1,…,bNを生成する。
処理(4):署名検証アルゴリズムVerは、再生したc01,c11,…,c0N,c1Nを用いてCmtA=H(c01,c11,…,c0N,c1N)を検証する。
処理(5):署名検証アルゴリズムVerは、再生したb1,…,bNを用いてCmtB=H(b1,…,bN)を検証する。
偽証が成功する確率を無視できる程度にまで小さくするために、対話プロトコルを複数回実行する必要性については既に説明した通りである。また、対話プロトコルを複数回実行する方法として、直列的な方法と並列的な方法とを紹介した。特に、並列的な方法については、具体的な並列化アルゴリズムを示して説明した。ここでは、直列的な方法と並列的な方法とを組み合わせたハイブリッド型のアルゴリズムを紹介する。
まず、3パスの公開鍵認証方式に係るハイブリッド型アルゴリズムについて説明する。
図22を参照しながら、ハイブリッド型の一構成例(以下、並直列構成)について説明する。図22には、基本構成のアルゴリズム及び並直列構成のアルゴリズムを示した。
図23を参照しながら、ハイブリッド型の他の一構成例(以下、直並列構成)について説明する。図23には、基本構成のアルゴリズム及び直並列構成のアルゴリズムを示した。
次に、5パスの公開鍵認証方式に係るハイブリッド型アルゴリズムについて説明する。
まず、図24を参照しながら、ハイブリッド型の一構成例(以下、並直列構成#1)について説明する。図24には、基本構成のアルゴリズム及び並直列構成#1のアルゴリズムを示した。
次に、図25を参照しながら、ハイブリッド型の他の一構成例(以下、並直列構成#2)について説明する。図25には、基本構成のアルゴリズム及び並直列構成#2のアルゴリズムを示した。
次に、図26を参照しながら、ハイブリッド型の他の一構成例(以下、直並列構成#1)について説明する。図26には、基本構成のアルゴリズム及び直並列構成#1のアルゴリズムを示した。
次に、図27を参照しながら、ハイブリッド型の他の一構成例(以下、直並列構成#2)について説明する。図27には、基本構成のアルゴリズム及び直並列構成#2のアルゴリズムを示した。
ここで、上記の公開鍵認証方式に関する説明の補足を行う。
ここで、パラメータの設定方法について説明を補足する。
これまで、多変数多項式の係数又はその係数の生成に利用する乱数シード(以下、多変数多項式の係数など)をどのように設定するかについては詳しく言及してこなかった。多変数多項式の係数などは、システムに共通のパラメータとしてもよいし、ユーザ毎に異なるパラメータとしてもよい。
ところで、これまで説明してきた対話プロトコルは、受動的攻撃に対する安全性が保証されている。しかし、この対話プロトコルを並列的に繰り返し実行する場合、能動的攻撃に対する安全性が確実に保証されることを証明できるようにするには、以下で述べる条件が必要になる。
ここで、イレギュラーな要求に対する応答方法について考察する。
対話プロトコルの中で検証者が偽りの要求を投げかけてくる可能性について考えてみよう。例えば、3パス方式の場合、証明者が検証者へとメッセージ(c0,c1,c2)を送り、検証者が証明者へと要求Ch=0を送った後、証明者から検証者へと要求Ch=0に対応する返答Rspが送られる。ここまでは正常な対話である。
次に、証明者が偽って要求Chの再送を要求してくる可能性について考えてみよう。例えば、3パス方式において、証明者が検証者へとメッセージ(c0,c1,c2)を送り、検証者が証明者へと要求Ch=0を送った後、証明者が要求Chの再送を要求してきたとしよう。この要求に応じて、検証者が再びランダムに要求Chを選択すると、先に送った要求Ch=0とは異なる要求Ch=1が選択される可能性がある。この場合、検証者から証明者へと要求Ch=1が送られる。仮に、証明者が要求Ch=1に対応する返答Rspを検証者に送ることができたとしよう。
上記の各アルゴリズムは、例えば、図28に示す情報処理装置のハードウェア構成を用いて実行することが可能である。つまり、当該各アルゴリズムの処理は、コンピュータプログラムを用いて図28に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、PHS、PDA等の携帯情報端末、ゲーム機、接触式又は非接触式のICチップ、接触式又は非接触式のICカード、又は種々の情報家電がこれに含まれる。但し、上記のPHSは、Personal Handy−phone Systemの略である。また、上記のPDAは、Personal Digital Assistantの略である。
最後に、本技術の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、PC、携帯電話、ゲーム機、情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。なお、以下で述べる情報処理装置の機能は、1台の情報処理装置を利用して実現することも可能であるし、複数台の情報処理装置を利用して実現することも可能である。また、以下で述べる情報処理装置が処理を実行する際に用いるデータ記憶手段及び演算処理手段は、当該情報処理装置に設けられたものであってもよいし、ネットワークを介して接続された機器に設けられたものであってもよい。
多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成部と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供部と、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成する中間情報生成部と、
前記検証者に前記第3の情報を提供する中間情報提供部と、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理装置。
前記メッセージ生成部は、N回分(N≧2)のメッセージを生成し、
前記メッセージ提供部は、N回分の前記メッセージを1回の対話で前記検証者に提供し、
前記中間情報生成部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した前記第1の情報及び前記メッセージを生成する際に得られるN回分の前記第2の情報を用いてN回分の前記第3の情報を生成し、
前記中間情報提供部は、N回分の前記第3の情報を1回の対話で検証者に提供し、
前記回答提供部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した検証パターンに対応するN回分の前記回答情報を1回の対話で前記検証者に提供する、
上記(1)に記載の情報処理装置。
前記メッセージ生成部は、N回分(N≧2)のメッセージを生成すると共に、N回分の前記メッセージから1つのハッシュ値を生成し、
前記メッセージ提供部は、前記ハッシュ値を前記検証者に提供し、
前記中間情報生成部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した前記第1の情報及び前記メッセージを生成する際に得られるN回分の前記第2の情報を用いてN回分の前記第3の情報を生成し、
前記中間情報提供部は、N回分の前記第3の情報を1回の対話で検証者に提供し、
前記回答提供部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した検証パターンに対応するN回分の前記回答情報、及び、前記公開鍵及び前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行しても得られない一部のメッセージを1回の対話で前記検証者に提供する、
上記(2)に記載の情報処理装置。
多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持部と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得部と、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供する情報提供部と、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得する中間情報取得部と、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するパターン情報提供部と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理装置。
前記メッセージ取得部は、N回分(N≧2)の前記メッセージを1回の対話で取得し、
前記情報提供部は、N回分の前記メッセージのそれぞれについて前記第1の情報をランダムに選択し、選択したN回分の前記第1の情報を1回の対話で前記証明者に提供し、
前記中間情報取得部は、N回分の前記第1の情報及びN回分の前記メッセージを生成する際に得られるN回分の前記第2の情報を用いて前記証明者が生成したN回分の前記第3の情報を取得し、
前記パターン情報提供部は、N回分の前記メッセージのそれぞれについて検証パターンを選択し、選択したN回分の検証パターンの情報を1回の対話で前記証明者に提供し、
前記回答取得部は、前記選択したN回分の検証パターンに対応するN回分の前記回答情報を1回の対話で前記証明者から取得し、
前記検証部は、N回分の前記メッセージの全てについて検証が成功した場合に、前記証明者が前記ベクトルsを保持していると判定する、
上記(4)に記載の情報処理装置。
前記メッセージ取得部は、N回分(N≧2)の前記メッセージから生成された1つのハッシュ値を取得し、
前記情報提供部は、N回分の前記メッセージのそれぞれについて前記第1の情報をランダムに選択し、選択したN回分の前記第1の情報を1回の対話で前記証明者に提供し、
前記中間情報取得部は、N回分の前記第1の情報及びN回分の前記メッセージを生成する際に得られるN回分の前記第2の情報を用いて前記証明者が生成したN回分の前記第3の情報を取得し、
前記パターン情報提供部は、N回分の前記メッセージのそれぞれについて検証パターンを選択し、選択したN回分の検証パターンの情報を1回の対話で前記証明者に提供し、
前記回答取得部は、前記選択した検証パターンに対応する回答情報、及び、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行しても得られない一部のメッセージを前記証明者から取得し、
前記検証部は、前記ハッシュ値、前記一部のメッセージ、前記公開鍵、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証し、N回分の前記メッセージの全てについて検証が成功した場合に、前記証明者が前記ベクトルsを保持していると判定する、
上記(5)に記載の情報処理装置。
多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成するステップと、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するステップと、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成するステップと、
前記検証者に前記第3の情報を提供するステップと、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供するステップと、
を含み、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理方法。
多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報処理装置が、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するステップと、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供するステップと、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得するステップと、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するステップと、
前記選択した検証パターンに対応する回答情報を前記証明者から取得するステップと、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証するステップと、
を含み、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理方法。
多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成機能と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供機能と、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成する中間情報生成機能と、
前記検証者に前記第3の情報を提供する中間情報提供機能と、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供機能と、
をコンピュータに実現させるためのプログラムであり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
プログラム。
多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持機能と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得機能と、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供する情報提供機能と、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得する中間情報取得機能と、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するパターン情報提供機能と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証機能と、
をコンピュータに実現させるためのプログラムであり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
プログラム。
多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成機能と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供機能と、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成する中間情報生成機能と、
前記検証者に前記第3の情報を提供する中間情報提供機能と、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供機能と、
をコンピュータに実現させるためのプログラムが記録された、コンピュータにより読み取り可能な記録媒体であり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
記録媒体。
多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持機能と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得機能と、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供する情報提供機能と、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得する中間情報取得機能と、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するパターン情報提供機能と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証機能と、
をコンピュータに実現させるためのプログラムが記録された、コンピュータにより読み取り可能な記録媒体であり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
記録媒体。
前記m及びnは、m<nの関係を有する、
上記(1)〜(6)のいずれか1項に記載の装置。
前記m及びnは、2m−n≪1の関係を有する、
上記(13)に記載の装置。
上記の証明者アルゴリズムPは、メッセージ生成部、メッセージ提供部、回答提供部、中間情報生成部、中間情報提供部の一例である。また、上記の検証者アルゴリズムVは、情報保持部、メッセージ取得部、パターン情報提供部、回答取得部、検証部、中間情報取得部の一例である。
P 証明者アルゴリズム
V 検証者アルゴリズム
Sig 署名生成アルゴリズム
Ver 署名検証アルゴリズム
Claims (12)
- 多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成部と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供部と、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成する中間情報生成部と、
前記検証者に前記第3の情報を提供する中間情報提供部と、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理装置。 - 前記メッセージ生成部は、N回分(N≧2)のメッセージを生成し、
前記メッセージ提供部は、N回分の前記メッセージを1回の対話で前記検証者に提供し、
前記中間情報生成部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した前記第1の情報及び前記メッセージを生成する際に得られるN回分の前記第2の情報を用いてN回分の前記第3の情報を生成し、
前記中間情報提供部は、N回分の前記第3の情報を1回の対話で検証者に提供し、
前記回答提供部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した検証パターンに対応するN回分の前記回答情報を1回の対話で前記検証者に提供する、
請求項1に記載の情報処理装置。 - 前記メッセージ生成部は、N回分(N≧2)のメッセージを生成すると共に、N回分の前記メッセージから1つのハッシュ値を生成し、
前記メッセージ提供部は、前記ハッシュ値を前記検証者に提供し、
前記中間情報生成部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した前記第1の情報及び前記メッセージを生成する際に得られるN回分の前記第2の情報を用いてN回分の前記第3の情報を生成し、
前記中間情報提供部は、N回分の前記第3の情報を1回の対話で検証者に提供し、
前記回答提供部は、N回分の前記メッセージのそれぞれについて前記検証者が選択した検証パターンに対応するN回分の前記回答情報、及び、前記公開鍵及び前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行しても得られない一部のメッセージを1回の対話で前記検証者に提供する、
請求項2に記載の情報処理装置。 - 多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持部と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得部と、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供する情報提供部と、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得する中間情報取得部と、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するパターン情報提供部と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理装置。 - 前記メッセージ取得部は、N回分(N≧2)の前記メッセージを1回の対話で取得し、
前記情報提供部は、N回分の前記メッセージのそれぞれについて前記第1の情報をランダムに選択し、選択したN回分の前記第1の情報を1回の対話で前記証明者に提供し、
前記中間情報取得部は、N回分の前記第1の情報及びN回分の前記メッセージを生成する際に得られるN回分の前記第2の情報を用いて前記証明者が生成したN回分の前記第3の情報を取得し、
前記パターン情報提供部は、N回分の前記メッセージのそれぞれについて検証パターンを選択し、選択したN回分の検証パターンの情報を1回の対話で前記証明者に提供し、
前記回答取得部は、前記選択したN回分の検証パターンに対応するN回分の前記回答情報を1回の対話で前記証明者から取得し、
前記検証部は、N回分の前記メッセージの全てについて検証が成功した場合に、前記証明者が前記ベクトルsを保持していると判定する、
請求項4に記載の情報処理装置。 - 前記メッセージ取得部は、N回分(N≧2)の前記メッセージから生成された1つのハッシュ値を取得し、
前記情報提供部は、N回分の前記メッセージのそれぞれについて前記第1の情報をランダムに選択し、選択したN回分の前記第1の情報を1回の対話で前記証明者に提供し、
前記中間情報取得部は、N回分の前記第1の情報及びN回分の前記メッセージを生成する際に得られるN回分の前記第2の情報を用いて前記証明者が生成したN回分の前記第3の情報を取得し、
前記パターン情報提供部は、N回分の前記メッセージのそれぞれについて検証パターンを選択し、選択したN回分の検証パターンの情報を1回の対話で前記証明者に提供し、
前記回答取得部は、前記選択した検証パターンに対応する回答情報、及び、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行しても得られない一部のメッセージを前記証明者から取得し、
前記検証部は、前記ハッシュ値、前記一部のメッセージ、前記公開鍵、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証し、N回分の前記メッセージの全てについて検証が成功した場合に、前記証明者が前記ベクトルsを保持していると判定する、
請求項5に記載の情報処理装置。 - 多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成するステップと、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するステップと、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成するステップと、
前記検証者に前記第3の情報を提供するステップと、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供するステップと、
を含み、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理方法。 - 多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報処理装置が、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するステップと、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供するステップと、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得するステップと、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するステップと、
前記選択した検証パターンに対応する回答情報を前記証明者から取得するステップと、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証するステップと、
を含み、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
情報処理方法。 - 多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成機能と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供機能と、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成する中間情報生成機能と、
前記検証者に前記第3の情報を提供する中間情報提供機能と、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供機能と、
をコンピュータに実現させるためのプログラムであり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
プログラム。 - 多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持機能と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得機能と、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供する情報提供機能と、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得する中間情報取得機能と、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するパターン情報提供機能と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証機能と、
をコンピュータに実現させるためのプログラムであり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
プログラム。 - 多次多変数多項式の組F=(f1,…,fm)及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成機能と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供機能と、
前記検証者がランダムに選択した第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて第3の情報を生成する中間情報生成機能と、
前記検証者に前記第3の情報を提供する中間情報提供機能と、
k通り(k≧2)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供機能と、
をコンピュータに実現させるためのプログラムが記録された、コンピュータにより読み取り可能な記録媒体であり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
記録媒体。 - 多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持機能と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得機能と、
前記メッセージを提供した証明者に対し、ランダムに選択した第1の情報を提供する情報提供機能と、
前記第1の情報及び前記メッセージを生成する際に得られる第2の情報を用いて前記証明者が生成した第3の情報を取得する中間情報取得機能と、
k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を前記証明者に提供するパターン情報提供機能と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記第1の情報、前記第3の情報、前記多次多変数多項式の組F、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証機能と、
をコンピュータに実現させるためのプログラムが記録された、コンピュータにより読み取り可能な記録媒体であり、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵、前記第1の情報、前記第3の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報であり、
前記多次多変数多項式の組Fは、標数q及び位数qkの環R上で定義される多項式f1,…,fmで構成され、ベクトルxl=(xl1,…,xln)(l=1,2)についてG(x1,x2)=F(x1+x2)−F(x1)−F(x2)で定義される多項式G(x1,x2)が、(x1i)q(z)(但し、1≦i≦n、q(z)=qz、1≦z≦k)に比例する項で構成されるように設定されている、
記録媒体。
Priority Applications (12)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011177071A JP5790287B2 (ja) | 2011-08-12 | 2011-08-12 | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
RU2014104084/08A RU2603551C2 (ru) | 2011-08-12 | 2012-06-25 | Устройство обработки информации, способ обработки информации, программа и носитель информации |
AU2012296044A AU2012296044B2 (en) | 2011-08-12 | 2012-06-25 | Information processing device, information processing method, program, and recording medium |
EP12823703.9A EP2744146A4 (en) | 2011-08-12 | 2012-06-25 | DATA PROCESSING DEVICE, DATA PROCESSING METHOD, PROGRAM, AND RECORDING MEDIUM |
CA 2839690 CA2839690A1 (en) | 2011-08-12 | 2012-06-25 | Information processing apparatus, information processing method, program, and recording medium |
US14/235,240 US9178700B2 (en) | 2011-08-12 | 2012-06-25 | Information processing apparatus, information processing method, program, and recording medium |
CN201280038070.5A CN103718502B (zh) | 2011-08-12 | 2012-06-25 | 信息处理设备和信息处理方法 |
PCT/JP2012/066125 WO2013024629A1 (ja) | 2011-08-12 | 2012-06-25 | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
MX2014001451A MX338025B (es) | 2011-08-12 | 2012-06-25 | Dispositivo para el procesamiento de informacion, metodo, programa y medio de registro para el procesamiento de informacion. |
BR112014002854A BR112014002854A2 (pt) | 2011-08-12 | 2012-06-25 | aparelho e método de processamento de informação, programa, e, mídia de gravação legível por computador |
KR1020147002640A KR101986392B1 (ko) | 2011-08-12 | 2012-06-25 | 정보 처리 장치, 정보 처리 방법, 및 기록 매체 |
TW101125907A TWI511517B (zh) | 2011-08-12 | 2012-07-18 | Information processing apparatus, information processing method, program and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011177071A JP5790287B2 (ja) | 2011-08-12 | 2011-08-12 | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013042295A true JP2013042295A (ja) | 2013-02-28 |
JP5790287B2 JP5790287B2 (ja) | 2015-10-07 |
Family
ID=47714958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011177071A Active JP5790287B2 (ja) | 2011-08-12 | 2011-08-12 | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
Country Status (12)
Country | Link |
---|---|
US (1) | US9178700B2 (ja) |
EP (1) | EP2744146A4 (ja) |
JP (1) | JP5790287B2 (ja) |
KR (1) | KR101986392B1 (ja) |
CN (1) | CN103718502B (ja) |
AU (1) | AU2012296044B2 (ja) |
BR (1) | BR112014002854A2 (ja) |
CA (1) | CA2839690A1 (ja) |
MX (1) | MX338025B (ja) |
RU (1) | RU2603551C2 (ja) |
TW (1) | TWI511517B (ja) |
WO (1) | WO2013024629A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017169147A (ja) * | 2016-03-17 | 2017-09-21 | 株式会社東芝 | 検証装置、電子機器、プログラムおよび検証システム |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014090372A (ja) * | 2012-10-31 | 2014-05-15 | Sony Corp | 情報処理装置、情報処理システム、情報処理方法及びコンピュータプログラム |
CN103490897B (zh) * | 2013-09-17 | 2017-04-05 | 华南理工大学 | 一种多变量公钥签名/验证系统及签名/验证方法 |
US10484186B2 (en) * | 2016-09-30 | 2019-11-19 | Intel Corporation | Cascading multivariate quadratic identification schemes for chain of trust |
CN110995438B (zh) * | 2019-10-24 | 2022-07-12 | 南京可信区块链与算法经济研究院有限公司 | 一种非交互零知识证明方法、系统及存储介质 |
CN111090842B (zh) * | 2019-12-23 | 2022-04-26 | 上海源庐加佳信息科技有限公司 | 一种基于零知识证明的供应链金融客户贷款信息保护方法 |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19513898B4 (de) * | 1995-04-12 | 2006-11-30 | Deutsche Telekom Ag | Public-Key-Verfahren zur Verschlüsselung von Daten |
CA2263588C (en) * | 1996-08-19 | 2005-01-18 | Ntru Cryptosystems, Inc. | Public key cryptosystem method and apparatus |
US6076163A (en) * | 1997-10-20 | 2000-06-13 | Rsa Security Inc. | Secure user identification based on constrained polynomials |
DE69920875T2 (de) * | 1999-04-29 | 2005-10-27 | Bull Cp8 | Vorrichtung und Verfahren zum Berechnen einer digitalen Unterschrift |
WO2001026278A1 (fr) * | 1999-10-01 | 2001-04-12 | France Telecom | Jeux de cles particuliers destines a prouver l'authenticite d'une entite ou l'integrite d'un message |
US7814320B2 (en) * | 2005-07-19 | 2010-10-12 | Ntt Docomo, Inc. | Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks |
JP4575283B2 (ja) * | 2005-11-15 | 2010-11-04 | 株式会社東芝 | 暗号装置、復号装置、プログラム及び方法 |
KR101367101B1 (ko) * | 2006-08-30 | 2014-02-25 | 삼성전자주식회사 | 다항식환을 이용한 키 합의 방법 및 이를 위한 장치 |
US9059838B2 (en) * | 2007-03-30 | 2015-06-16 | Verizon Patent And Licensing Inc. | Encryption algorithm with randomized buffer |
CN101321058B (zh) * | 2007-06-07 | 2010-12-15 | 管海明 | 一种用于编码和译码数字消息的方法和系统 |
US8019079B2 (en) * | 2007-07-08 | 2011-09-13 | Georgia Tech Research Corporation | Asymmetric cryptosystem employing paraunitary matrices |
JP4612027B2 (ja) * | 2007-09-03 | 2011-01-12 | 村田機械株式会社 | 署名システム |
US8837736B2 (en) * | 2008-04-14 | 2014-09-16 | Koninklijke Philips N.V. | Method for distributing encryption means |
JP5593850B2 (ja) * | 2010-05-31 | 2014-09-24 | ソニー株式会社 | 認証装置、認証方法、プログラム、及び署名生成装置 |
JP5594034B2 (ja) * | 2010-07-30 | 2014-09-24 | ソニー株式会社 | 認証装置、認証方法、及びプログラム |
US8532289B2 (en) * | 2010-08-16 | 2013-09-10 | International Business Machines Corporation | Fast computation of a single coefficient in an inverse polynomial |
WO2012149395A1 (en) * | 2011-04-29 | 2012-11-01 | International Business Machines Corporation | Fully homomorphic encryption |
-
2011
- 2011-08-12 JP JP2011177071A patent/JP5790287B2/ja active Active
-
2012
- 2012-06-25 US US14/235,240 patent/US9178700B2/en active Active
- 2012-06-25 EP EP12823703.9A patent/EP2744146A4/en not_active Withdrawn
- 2012-06-25 CN CN201280038070.5A patent/CN103718502B/zh active Active
- 2012-06-25 MX MX2014001451A patent/MX338025B/es active IP Right Grant
- 2012-06-25 BR BR112014002854A patent/BR112014002854A2/pt not_active Application Discontinuation
- 2012-06-25 RU RU2014104084/08A patent/RU2603551C2/ru not_active IP Right Cessation
- 2012-06-25 AU AU2012296044A patent/AU2012296044B2/en not_active Ceased
- 2012-06-25 KR KR1020147002640A patent/KR101986392B1/ko active IP Right Grant
- 2012-06-25 WO PCT/JP2012/066125 patent/WO2013024629A1/ja active Application Filing
- 2012-06-25 CA CA 2839690 patent/CA2839690A1/en not_active Abandoned
- 2012-07-18 TW TW101125907A patent/TWI511517B/zh not_active IP Right Cessation
Non-Patent Citations (2)
Title |
---|
JPN6012037141; Koichi Sakumoto et al: 'Provable Security of HFE and UOV Signature Schemes againstChosen-Message Attack' 2011年 暗号と情報セキュリティシンポジウム予稿集 CD-ROM , 20110125, 4A1-1 * |
JPN6012037142; Koichi Sakumoto et al: 'Public-Key Identification Schemes Based on Multivariate Quadratic Polynomials' Advances in Cryptology-CRYPTO 2011 31st Annual Cryptology Conference, Santa Barbara, CA, USA, August Volume 6841, 20110806, p.706-723, Springer * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017169147A (ja) * | 2016-03-17 | 2017-09-21 | 株式会社東芝 | 検証装置、電子機器、プログラムおよび検証システム |
Also Published As
Publication number | Publication date |
---|---|
CA2839690A1 (en) | 2013-02-21 |
JP5790287B2 (ja) | 2015-10-07 |
EP2744146A4 (en) | 2015-06-17 |
MX338025B (es) | 2016-03-31 |
CN103718502B (zh) | 2017-02-22 |
US20140153717A1 (en) | 2014-06-05 |
TW201308969A (zh) | 2013-02-16 |
CN103718502A (zh) | 2014-04-09 |
MX2014001451A (es) | 2014-02-27 |
EP2744146A1 (en) | 2014-06-18 |
BR112014002854A2 (pt) | 2017-03-01 |
US9178700B2 (en) | 2015-11-03 |
RU2014104084A (ru) | 2015-08-10 |
KR20140046455A (ko) | 2014-04-18 |
TWI511517B (zh) | 2015-12-01 |
RU2603551C2 (ru) | 2016-11-27 |
KR101986392B1 (ko) | 2019-06-05 |
AU2012296044A1 (en) | 2014-01-30 |
WO2013024629A1 (ja) | 2013-02-21 |
AU2012296044B2 (en) | 2016-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5790319B2 (ja) | 署名検証装置、署名検証方法、プログラム、及び記録媒体 | |
JP5736816B2 (ja) | 認証装置、認証方法、プログラム、及び署名生成装置 | |
JP2013042315A (ja) | 情報処理装置、及び情報処理方法 | |
WO2013031533A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP5790287B2 (ja) | 情報処理装置、情報処理方法、プログラム、及び記録媒体 | |
JP5790318B2 (ja) | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム | |
JP5790289B2 (ja) | 情報処理装置、情報処理方法、プログラム、及び記録媒体 | |
JP5790291B2 (ja) | 情報処理装置、署名提供方法、署名検証方法、プログラム、及び記録媒体 | |
JP5790286B2 (ja) | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム | |
JPWO2013129084A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
WO2013031420A1 (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: 20140625 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150407 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150526 |
|
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: 20150707 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150720 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5790287 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 |