JP2013066151A - 情報処理装置、情報処理方法、及びプログラム - Google Patents
情報処理装置、情報処理方法、及びプログラム Download PDFInfo
- Publication number
- JP2013066151A JP2013066151A JP2012046687A JP2012046687A JP2013066151A JP 2013066151 A JP2013066151 A JP 2013066151A JP 2012046687 A JP2012046687 A JP 2012046687A JP 2012046687 A JP2012046687 A JP 2012046687A JP 2013066151 A JP2013066151 A JP 2013066151A
- Authority
- JP
- Japan
- Prior art keywords
- information
- algorithm
- order multivariate
- polynomial
- public key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- 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/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/3252—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 DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
Abstract
【解決手段】
多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を生成する数生成部と、前記数生成部が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てる割当部と、を備え、前記割当部は、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数のうち、変数の組み合わせの種類が同じ項の係数をグループ化しておき、割り当て処理をグループ単位で実行する、情報処理装置が提供される。
【選択図】図22
Description
ここで、以下に記載する本技術の実施形態に関する説明の流れについて簡単に述べる。まず、図1を参照しながら、公開鍵認証方式のアルゴリズム構成について説明する。次いで、図2を参照しながら、電子署名方式のアルゴリズム構成について説明する。次いで、図3を参照しながら、nパスの公開鍵認証方式について説明する。
1:はじめに
1−1:公開鍵認証方式のアルゴリズム
1−2:電子署名方式のアルゴリズム
1−3:nパスの公開鍵認証方式
2:3パスの公開鍵認証方式に係るアルゴリズムの構成
2−1:具体的なアルゴリズムの構成例
2−2:並列化アルゴリズムの構成例
2−3:3次多変数多項式に基づくアルゴリズムの構成例
3:5パスの公開鍵認証方式に係るアルゴリズムの構成
3−1:具体的なアルゴリズムの構成例
3−2:並列化アルゴリズムの構成例
3−3:3次多変数多項式に基づくアルゴリズムの構成例
4:電子署名方式への変形
4−1:3パスの公開鍵認証方式から電子署名方式への変形
4−2:5パスの公開鍵認証方式から電子署名方式への変形
5:署名検証に要するメモリ量の削減方法について
5−1:ハッシュ関数の構造について
5−2:3パス方式に基づく電子署名方式への適用例
5−3:5パス方式に基づく電子署名方式への適用例
6:2進数の乱数列から3進数の乱数列を抽出する方法について
6−1:抽出方法#1(2ビット区切り)
6−2:抽出方法#2(区切りなし)
6−3:抽出方法#3(kビット区切り)
6−3−1:基本構成
6−3−2:追加抽出方法
7:多変数多項式の係数を効率的に代入する方法について
7−1:基本的な取り決め
7−2:データの構造化
7−2−1:構造化手法#1
7−2−2:構造化手法#2
7−2−3:構造化手法#3
8:ハードウェア構成例
9:まとめ
本実施形態は、多次多変数連立方程式に対する求解問題の困難性に安全性の根拠をおく公開鍵認証方式及び電子署名方式に関する。但し、本実施形態は、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パス方式に係る具体的なアルゴリズムの構成について説明するための説明図である。ここでは、公開鍵pkの一部として2次多項式の組(f1(x),…,fm(x))を利用する場合について考える。但し、2次多項式fi(x)は、下記の式(6)のように表現されるものとする。また、ベクトル(x1,…,xn)をxと表記し、2次多項式の組(f1(x),…,fm(x))を多変数多項式F(x)と表記することにする。
鍵生成アルゴリズム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を秘密鍵に設定する。
以下、図4を参照しながら、対話プロトコルの中で証明者アルゴリズムPが実行する処理及び検証者アルゴリズムVが実行する処理について説明する。この対話プロトコルの中で、証明者は、秘密鍵sの情報を検証者に一切漏らさずに、「自身がy=F(s)を満たすsを知っていること」を検証者に示す。一方、検証者は、証明者がy=F(s)を満たすsを知っているか否かを検証する。なお、公開鍵pkは、検証者に公開されているものとする。また、秘密鍵sは、証明者により秘密に管理されているものとする。以下、図4に示したフローチャートに沿って説明を進める。
図4に示すように、まず、証明者アルゴリズム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を利用して以下の検証処理を実行する。
次に、図5を参照しながら、図4に示した3パス方式のアルゴリズムを並列化する方法について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図5に示すように、まず、証明者アルゴリズム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)を実行する。
次に、下記の式(12)で表現される環R上の3次多項式flを利用した効率的なアルゴリズムの構築方法について検討してみたい。3次多項式flの組で表現される多変数多項式F=(f1,…,fm)は、下記の式(13)の関係を満たす。但し、Gx(x,y)は、xに関して1次となる項を表す。また、Gy(x,y)は、yに関して1次となる項を表す。Gx=(gx1,…,gxm)、Gy=(gy1,…,gym)と表現すると、gxl及びgylは、それぞれ下記の式(14)及び式(15)のように展開することができる。但し、gxlの右辺第2項は、x及びyのいずれに関しても1次であるため、gylに含めてもよい。
図6に示すように、証明者アルゴリズム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を利用して以下の検証処理を実行する。
次に、5パスの公開鍵認証方式に係るアルゴリズムについて説明する。なお、以下の説明において、5パスの公開鍵認証方式のことを「5パス方式」と呼ぶ場合がある。
まず、図7を参照しながら、5パス方式に係る具体的なアルゴリズムの構成例について紹介する。図7は、5パス方式に係る具体的なアルゴリズムの構成について説明するための説明図である。ここでは、公開鍵pkの一部として2次多項式の組(f1(x),…,fm(x))を利用する場合について考える。但し、2次多項式fi(x)は、上記の式(6)のように表現されるものとする。また、ベクトル(x1,…,xn)をxと表記し、2次多項式の組(f1(x),…,fm(x))を多変数多項式F(x)と表記することにする。
鍵生成アルゴリズム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)と表記する。
以下、図7を参照しながら、対話プロトコルの中で証明者アルゴリズムP及び検証者アルゴリズムVにより実行される処理について説明する。この対話プロトコルの中で、証明者は、秘密鍵sの情報を検証者に一切漏らさずに、「自身がy=F(s)を満たすsを知っていること」を検証者に示す。一方、検証者は、証明者がy=F(s)を満たすsを知っているか否かを検証する。なお、公開鍵pkは、検証者に公開されているものとする。また、秘密鍵sは、証明者により秘密に管理されているものとする。以下、図7に示したフローチャートに沿って説明を進める。
図7に示すように、まず、証明者アルゴリズム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を利用して以下の検証処理を実行する。
次に、図8を参照しながら、図7に示した5パス方式のアルゴリズムを並列化する方法について説明する。なお、鍵生成アルゴリズムGenの構成については説明を省略する。
図8に示すように、まず、証明者アルゴリズム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は、ハッシュ値d←H(t11,e11,…,t1N,e1N)を計算する。そして、証明者アルゴリズムPは、ハッシュ値dを検証者アルゴリズムVに送る。
ハッシュ値dを受け取った検証者アルゴリズム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,t0i,e0i,c1i)を生成する。ChBi=1の場合、証明者アルゴリズムPは、返答Rspi=(r1i,t1i,e1i,c0i)を生成する。工程#5で生成された返答Rspi(i=1〜N)は、検証者アルゴリズムVに送られる。
返答Rspi(i=1〜N)を受け取った検証者アルゴリズムVは、受け取った返答Rspi(i=1〜N)を利用して以下の処理(1)及び処理(2)を実行する。
さて、3パス方式の場合と同様、環R上の3次多項式flを利用した効率的なアルゴリズムの構築方法について検討してみたい。3次多項式flを上記の式(12)のように表現した場合に、Gx(x,y)及びGy(x,y)がx及びyについて線形になることについては式(14)と式(15)より分かる。
図9に示すように、証明者アルゴリズム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を利用して以下の検証処理を実行する。
次に、上記の公開鍵認証方式を電子署名方式へと変形する方法を紹介する。
まず、3パスの公開鍵認証方式から電子署名方式への変形について説明する。
まず、署名生成アルゴリズム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)を検証する。
次に、5パスの公開鍵認証方式から電子署名方式への変形について説明する。
まず、署名生成アルゴリズム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)を生成する。さらに、署名生成アルゴリズムSigは、d=H(t11,e11,…,t1N,e1N)を算出する。
処理(5):署名生成アルゴリズムSigは、(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,d)を計算する。なお、(ChB1,…,ChBN)←H(ChA1,…,ChAN,d)と変形してもよい。
処理(6):署名生成アルゴリズムSigは、Rspi←Select(ChBi,ai,bi)を計算する。
処理(7):署名生成アルゴリズムSigは、(Cmt,d,Rsp1,…,RspN)を電子署名に設定する。
次に、署名検証アルゴリズムVerの構成について述べる。署名検証アルゴリズムVerは、以下の処理(1)〜処理(4)で構成される。
処理(2):署名検証アルゴリズムVerは、(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,d)を計算する。なお、署名検証アルゴリズムVerが実行する処理(5)において、(ChB1,…,ChBN)←H(ChA1,…,ChAN,d)と変形した場合、署名検証アルゴリズムVerは、(ChB1,…,ChBN)←H(ChA1,…,ChAN,d)を計算する。
処理(3):署名検証アルゴリズムVerは、ChA1,…,ChAN,ChB1,…,ChBN,Rsp1,…,RspNを用いてt11,e11,…,t1N,e1N,c01,c11,…,c0N,c1Nを生成する。
処理(4):署名検証アルゴリズムVerは、再生したc01,c11,…,c0N,c1Nを用いてCmt=H(c01,c11,…,c0N,c1N)及びd=H(t11,e11,…,t1N,e1N,)を検証する。
ところで、上述した電子署名方式のアルゴリズムにおいては、署名検証アルゴリズムVerが電子署名全体を受信した後で署名検証の処理を実行していた。しかし、上述した電子署名方式の場合、電子署名のデータサイズが比較的大きい。そのため、RFID(Radio Frequency IDentification)など、少ないメモリ容量しか持たないデバイスを用いて認証を行う場合には、メモリの空き容量や認証処理中のメモリ使用率などに気を配る必要があった。また、十分なメモリ容量を持たないデバイスを利用する場合、認証を行うことができない場合も想定される。そこで、本件発明者は、署名検証に要するメモリ量の削減方法を考案した。
まず、本件発明者は、ハッシュ関数の構造に注目した。多くの場合、ハッシュ関数は、入力をブロック単位に区切り、ブロック単位で順次処理を進める構造を有している。例えば、SHA−1の場合、ハッシュ関数は、図12に示すような構造を有している。図12に示すハッシュ関数は、パディング済みの入力MをZ個のブロックm1,…,mZに区切り、インデックスjをインクリメントしながら、逐次的に、ブロックmjを初期値IV又は中間値CVjと共に所定の関数CFに作用させてハッシュ値を生成する。従って、中間値CVjが得られた時点で、それ以前に利用したブロックは不要になる。そこで、この特性を利用し、アルゴリズムの実行に必要なメモリ量を効果的に削減する仕組み(以下、メモリ削減方法)を考案した。以下、この仕組みを上述した電子署名方式に適用する方法について説明する。
まず、図10に示した3パス方式に基づく電子署名方式のアルゴリズムに上記のメモリ削減方法を適用する方法について説明する。
通常、上述した電子署名方式に係る署名検証アルゴリズムVerは、図13に示すように、電子署名を構成する(Cmt,Rsp1,…,RspN)を1度に受信する(S101)。次いで、署名検証アルゴリズムVerは、(Ch1,…,ChN)←H(M,Cmt)を実行する(S102)。次いで、署名検証アルゴリズムVerは、(c01,c11,c21,…,c0N,c1N,c2N)←Reproduce(Ch1,…,ChN;Rsp1,…,RspN)を実行する(S103)。次いで、署名検証アルゴリズムVerは、Cmt=H(c01,c11,c21,…,c0N,c1N,c2N)を検証し(S104)、署名検証に係る一連の処理を終了する。
通常の実装方法の場合、図13のステップS101のように、一度に電子署名を受信すると、ステップS103の処理が完了するまで(Rsp1,…,RspN)を保持しておくためのメモリが必要になる。しかし、図5のアルゴリズム構成から分かるように、ステップS103で実行する(c0i,c1i,c2i)の再生には(Chi;Rspi)以外の情報を利用しない。また、図12に示したハッシュ関数の構造を考慮すると、ステップS104において実行されるハッシュ関数の計算はブロック単位で分割して実行できることが分かる。そこで、署名検証に係る処理の構成を図14に示すような構成に改良する。
処理(2):
for i=1 to N
tmpi←Hi(tmpi−1;c0i,c1i,c2i)
end for
処理(3):output tmpN
次に、図11に示した5パス方式に基づく電子署名方式のアルゴリズムに上記のメモリ削減方法を適用する方法について説明する。
通常、上述した電子署名方式に係る署名検証アルゴリズムVerは、図15に示すように、電子署名を構成する(Cmt,d,Rsp1,…,RspN)を1度に受信する(S121)。次いで、署名検証アルゴリズムVerは、(ChA1,…,ChAN)←H(M,Cmt)を実行する(S122)。次いで、署名検証アルゴリズムVerは、(ChB1,…,ChBN)←H(M,Cmt,ChA1,…,ChAN,d)を実行する(S123)。次いで、署名検証アルゴリズムVerは、(c01,c11,…,c0N,c1N,d11,e11,…,d1N,e1N)←Reproduce(ChA1,…,ChAN,ChB1,…,ChBN;Rsp1,…,RspN)を実行する(S124)。次いで、署名検証アルゴリズムVerは、Cmt=H(c01,c11,…,c0N,c1N)とd=H(d11,e11,…,d1N,e1N)を検証し(S125)、署名検証に係る一連の処理を終了する。
図15のステップS121のように、一度に電子署名を受信すると、ステップS124の処理が完了するまで(Rsp1,…,RspN)を保持しておくためのメモリが必要になる。しかしながら、図8のアルゴリズム構成から分かるように、ステップS124で実行する(c0i,c1i,d1i,e1i)の再生には(ChAi,ChBi;Rspi)以外の情報を利用しない。また、図12に示したハッシュ関数の構造を考慮すると、ステップS125において実行されるハッシュ関数の計算はブロック単位で分割して実行できることが分かる。そこで、署名検証に係る処理の構成を図16に示すような構成に改良する。
ところで、3パス方式に基づく公開鍵認証方式のアルゴリズムにおいて、3進数の一様乱数をN個以上生成する場面が存在する。しかし、3進数の一様乱数を生成する優れた乱数生成器は一般的ではない。そのため、2進数の一様乱数を生成する優れた乱数生成器を用いて3進数の一様乱数を生成する方法を考える必要がある。そこで、本件発明者は、2進数の一様乱数から3進数の一様乱数を効率的に生成する方法を考案した。以下、この方法について詳細に説明する。なお、以下の説明において、l進表現(lは2又は3)で表された1つの数を1シンボルと数えることにする。
まず、図17を参照しながら、Mビットの2進数を2ビットずつ区切って3進数を抽出する方法(以下、抽出方法#1)を紹介する。図17に示すように、2進表現の乱数列を2ビットずつ区切ると、M/2個の2ビットの乱数が得られる。例えば、「00」を3進数の「0」、「01」を3進数の「1」、「10」を3進数の「2」に対応付けると、2ビット単位の2進表現の乱数列から3進数の乱数列を得ることができる。但し、2ビットの値「11」は除外する。つまり、抽出方法#1は、2進数2シンボルで表現される22通りの数の中から、3進数1シンボルで表現される31通りの数を抽出する方法である。従って、N個以上の3進数が抽出できない確率P1は、下記の式(30)のようになる。
次に、図18を参照しながら、2進数Mシンボルの乱数を区切らずに利用して3進数Lシンボルの乱数を抽出する方法(以下、抽出方法#2)を紹介する。但し、Lは、3L≦2Mとなる最大の整数である。2進数Mシンボルで表現可能な数は、2M通り存在する。一方、3進数Lシンボルで表現可能な数は、3L通りしか存在しない。そのため、2進数Mシンボルで表現される2M通りの数のうち、2M−3L通りの数は、3進表現の乱数として利用されない。従って、N個以上の3進数が抽出できない確率P2は、下記の式(31)のようになる。
上記の抽出方法#1は、最小の区切り単位で2進表現の乱数列を区切る方法である。一方、上記の抽出方法#2は、(Mビット区切りと考えられるため)最大の区切り単位で2進表現の乱数列を区切る方法である。上記の式(30)及び式(31)から分かるように、区切る長さに応じて、N個以上の3進数が抽出できない確率は異なる。因みに、図19に示すように、kビット単位で2進Mシンボルの乱数列を区切った場合、N個以上の3進数が抽出できない確率P3は、下記の式(32)のようになる。
ここで、図20を参照しながら、2進Mシンボルの乱数列から3進Lシンボルの乱数列を抽出する処理の流れについて説明する。図20に示すように、まず、2進Mシンボルの乱数列が生成される(S201)。次いで、2進Mシンボルの乱数列が、kビット単位に区切られる(S202)。次いで、kビット単位で区切られたビット列X2kのうち、X2k≦3Lとなるビット列が抽出される(S203)。次いで、抽出されたビット列が、3進数表現で出力され(S204)、一連の処理が終了する。
上記の式(15)で表現される確率P3が最小となる区切りの長さkを算出し、図20に示したアルゴリズムを実行することにより、2進表現の乱数列から3進表現の乱数列を効率的に抽出することが可能になる。しかし、本件発明者は、図20のステップS204においてX2k>3Lとなるビット列が利用されない点に注目し、3進表現の乱数列をより効率的に抽出する方法を考案した。以下、この方法について、図21を参照しながら説明する。
さて、これまでは多変数多項式を証明者(又は署名者)と検証者との間で共有する方法について具体的に明示してこなかった。多変数多項式を共有する方法としては、多変数多項式の係数(乱数)を生成する際に用いるシードを両者で共有する方法が考えられる。しかしながら、共有しているシードを利用して生成した乱数を係数に当てはめる順序を両者で共有しない限り、多変数多項式を共有したことにはならない。
そこで、証明者(又は署名者)と検証者との間で、共有しているシードを用いて生成した乱数列を、どの順序で多変数多項式に当てはめるかについて基本的な取り決めを行う。そして、多変数多項式を利用する際に、この基本的な取り決めに従って乱数列を多変数多項式に当てはめる。このような方法を用いれば、証明者(又は署名者)と検証者との間で多変数多項式を共有したことになる。
但し、多変数多項式を構成する係数の数は膨大である。1つの係数が1ビット単位で表現されている場合、多変数多項式を表現するのに最低でも数万ビット以上のデータが必要になる。そのため、数を多変数多項式の係数に代入する処理の負荷は非常に高い。そこで、本件発明者は、多変数多項式の係数を所定の単位で構造化し、係数への代入処理を効率化する手法(構造化手法#1及び#2)を考案した。さらに、本件発明者は、同じ多変数多項式の係数に対して複数回の代入処理を実行する場合に、その処理効率を向上させる手法(構造化手法#3)を考案した。以下、これらの手法について詳細に説明する。
まず、構造化手法#1について説明する。構造化手法#1は、図22及び図23に示すように、多変数多項式を構成する同じ種類の項の係数を1つのデータ構造として纏める手法である。図22の例では、多変数多項式Fの係数a1IJ〜aMIJがデータ構造Aとして纏められ、係数b1I〜bMIがデータ構造Bとして纏められている。また、図23に示すように、多変数多項式Gについても同様の手法が適用可能である。この場合、係数(a1IJ+a1JI)〜(aMIJ+aMJI)がデータ構造として纏められる。
input x;
for L=1 to M
for I=1 to N
for J=I to N
[yのLビット目]^=[aLIJ]&[xのIビット目]&[xのJビット目];
end for
end for
end for
output y;
input x;
for I=1 to N
for J=I to N
[yの1〜Mビット目]^=[a(1〜M)IJ]&[xのIビット目]&[xのJビット目];
end for
end for
output y;
input x;
for I=1 to N/k
for J=I to N/k
[yの1〜Mビット目]^=a(1〜M)IJ[xのk(I−1)+1〜kビット目][xのk(J−1)+1〜kビット目];
end for
end for
output y;
ここまで、図22を参照しながら、構造化手法#1を適用して多変数多項式Fを計算するアルゴリズムについて説明してきた。一方で、多変数多項式Gの各要素も二次形式で表現されることから、図23に示すように、同様にして上記の構造化手法#1を多変数多項式Gの計算にそのまま適用することも可能である。
input x,y;
for L=1 to M
for I=1 to N
for J=1 to N
[zのLビット目]^=[aLIJ+aLJI]&[xのIビット目]&[yのJビット目];
end for
end for
end for
output z;
input x,y;
for I=1 to N
for J=1 to N
[zの1〜Mビット目]^=[a(1〜M)IJ+a(1〜M)JI]&[xのIビット目]&[yのJビット目];
end for
end for
output z;
input x,y;
for I=1 to N/k
for J=I to N/k
[zの1〜Mビット目]^=a(1〜M)IJ[xのk(I−1)+1〜kビット目][yのk(J−1)+1〜kビット目];
end for
end for
output z;
ここまで、構造化手法#1の具体例として、2次の多変数多項式の係数を構造化する手法を紹介してきたが、同様にして3次の多変数多項式の係数を構造化することも可能である。図24の例では、係数a1IJL〜aMIJLがデータ構造Aとして纏められ、係数b1IJ〜bMIJがデータ構造Bとして纏められ、係数c1I〜cMIがデータ構造Cとして纏められる。このように係数を構造化することで多変数多項式の計算が効率化される。
input x;
for Q=I to M
for I=1 to N
for J=I to N
for L=J to N
[yのQビット目]^=[aQIJL]&[xのIビット目]&[xのJビット目]&[xのLビット目];
end for
end for
end for
end for
output y;
input x;
for I=1 to N
for J=I to N
for L=J to N
[yの1〜Mビット目]^=[a(1〜M)IJL]&[xのIビット目]&[xのJビット目]&[xのLビット目];
end for
end for
output y;
input x;
for I=1 to N/k
for J=I to N/k
for L=J to N/k
[yの1〜Mビット目]^=a(1〜M)IJL[xのk(I−1)+1〜kビット目][xのk(J−1)+1〜kビット目][xのk(L−1)+1〜kビット目];
end for
end for
end for
output y;
上記の(例5)や(例6)と同様、図25及び図26に示すように、3次の多変数多項式Gx,Gyに対しても構造化手法#1を適用することが可能である。構造化手法#1を適用しない場合、3次の多変数多項式Gxのデータ構造Aに係る計算は、例えば、下記の(例4’X)のアルゴリズムにより実行される。
input x,y;
for Q=1 to M
for I=1 to N
for J=1 to N
for L=1 to N
[zのQビット目]^=[aQIJL+aQILJ+aQLJI]&[yのIビット目]&[yのJビット目]&[xのLビット目];
end for
end for
end for
end for
output z;
input x,y;
for I=1 to N
for J=1 to N
for L=1 to N
[zの1〜Mビット目]^=[a(1〜M)IJL+a(1〜M)ILJ+a(1〜M)LJI]&[yのIビット目]&[yのJビット目]&[xのLビット目];
end for
end for
end for
output z;
input x,y;
for Q=1 to M
for I=1 to N
for J=1 to N
for L=1 to N
[zのQビット目]^=[aQIJL+aQILJ+aQLJI]&[xのIビット目]&[xのJビット目]&[yのLビット目];
end for
end for
end for
end for
output z;
input x,y;
for I=1 to N
for J=1 to N
for L=1 to N
[zの1〜Mビット目]^=[a(1〜M)IJL+a(1〜M)ILJ+a(1〜M)LJI]&[xのIビット目]&[xのJビット目]&[yのLビット目];
end for
end for
end for
output z;
次に、構造化手法#2について説明する。構造化手法#2は、図27に示すように、多変数多項式を2次形式で表現し、2次形式の行又は列を1つのデータ構造として纏める手法である。図27の例では、行方向にデータ構造が纏められている。
for I=1 to N
T^=AI&[xのIビット目];
end for
T&=x;
output Q(T);
z=z^(z>>1);
z=z^(z>>2);
z=z^(z>>4);
z=z^(z>>8);
・・・
z=z^(z>>2Log(N));
return z&1;
}
for I=1 to N/k
T^=AI[xのk(I−1)+1〜k(I−1)+kビット目];
end for
T&=x;
output Q(T);
次に、構造化手法#3について説明する。構造化手法#3は、同じ多変数多項式にN回(N≧2)代入処理を行なう場合に、乱数から多項式をN回生成して代入処理を行うのではなく、「係数を一部生成し、その部分に関するN回分の処理を行なう」部分を単位とする逐次的な処理をN回分並列して行なうという手法である。この手法を適用すると、乱数生成のコストが無視できない場合にN回分の処理全体でのスループットが改善される。
上記の各アルゴリズムは、例えば、図28に示す情報処理装置のハードウェア構成を用いて実行することが可能である。つまり、当該各アルゴリズムの処理は、コンピュータプログラムを用いて図28に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、PHS、PDA等の携帯情報端末、ゲーム機、接触式又は非接触式のICチップ、接触式又は非接触式のICカード、又は種々の情報家電がこれに含まれる。但し、上記のPHSは、Personal Handy−phone Systemの略である。また、上記のPDAは、Personal Digital Assistantの略である。
最後に、本技術の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、PC、携帯電話、ゲーム機、情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。なお、以下で述べる情報処理装置の機能は、1台の情報処理装置を利用して実現することも可能であるし、複数台の情報処理装置を利用して実現することも可能である。また、以下で述べる情報処理装置が処理を実行する際に用いるデータ記憶手段及び演算処理手段は、当該情報処理装置に設けられたものであってもよいし、ネットワークを介して接続された機器に設けられたものであってもよい。
多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を生成する数生成部と、
前記数生成部が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てる割当部と、
を備え、
前記割当部は、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数のうち、変数の組み合わせの種類が同じ項の係数をグループ化しておき、割り当て処理をグループ単位で実行する、
情報処理装置。
多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を生成する数生成部と、
前記数生成部が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てる割当部と、
を備え、
前記割当部は、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式を2次形式で表現した場合の係数行列を行又は列毎にグループ化しておき、割り当て処理をグループ単位で実行する、
情報処理装置。
前記数生成部は、前記割当部が1つのグループに対する割り当て処理を実行する際に、当該1つのグループに属する係数の分だけ前記数を生成する、
上記(1)又は(2)に記載の情報処理装置。
前記数生成部は、前記1つのグループに属する係数の分だけ前記数を生成する際、1つの数を生成し、生成した数を1ビットずつローテーションして所要数の数を生成する、
上記(3)に記載の情報処理装置。
前記各グループに対応する種類の項に前記係数を割り当て、当該項の変数に任意の数を代入した値をテーブルとして保持するテーブル保持部をさらに備える、
上記(1)又は(2)に記載の情報処理装置。
多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて前記多次多変数多項式の組Fを構成する各項の係数と同じ数だけ数を生成する数生成部と、
前記証明者と前記認証者との間で予め決められた順序で前記数生成部が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てる割当部と、
を備える、
情報処理装置。
前記情報は、乱数のシードであり、
前記所定の関数は、前記シードを利用して乱数を生成する乱数生成器である、
上記(1)〜(6)のいずれか1項に記載の情報処理装置。
環K上で定義される多次多変数多項式の組F=(f1,…,fm)、及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成部と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供部と、
k通り(k≧3)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記回答情報は、前記乱数の組及び前記メッセージの中から前記検証パターンに応じて選択される情報であり、
前記メッセージは、前記公開鍵及び前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
上記(1)〜(7)のいずれか1項に記載の情報処理装置。
環K上で定義される多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持部と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得部と、
前記メッセージを提供した証明者に対し、k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を提供するパターン情報提供部と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記多次多変数多項式の組F、前記ベクトルy、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵及び前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
上記(1)〜(7)のいずれか1項に記載の情報処理装置。
環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の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
上記(1)〜(7)のいずれか1項に記載の情報処理装置。
環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の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
上記(1)〜(7)のいずれか1項に記載の情報処理装置。
前記アルゴリズムが複数回繰り返し実行される場合において、前記数生成部は1回だけ前記数を生成し、前記割当部は1回だけ前記割り当て処理を実行し、
前記アルゴリズムは、前記割当部が割り当てた係数を繰り返し利用する、
上記(1)又は(2)に記載の情報処理装置。
環K上で定義される多次多変数多項式の組F=(f1,…,fm)、及び署名鍵s∈Knを用いて文書Mに対する電子署名を生成する署名生成部と、
前記多次多変数多項式の組F及びベクトルy=(f1(s),…,fm(s))を保持する検証者へと前記電子署名を提供する署名提供部と、
を備える、
上記(1)〜(7)のいずれか1項に記載の情報処理装置。
多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を生成するステップと、
生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てるステップと、
を含み、
前記割り当てるステップでは、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数のうち、変数の組み合わせの種類が同じ項の係数をグループ化しておき、割り当て処理をグループ単位で実行する、
情報処理方法。
多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を生成するステップと、
生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てるステップと、
を含み、
前記割り当てるステップでは、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式を2次形式で表現した場合の係数行列を行又は列毎にグループ化しておき、割り当て処理をグループ単位で実行する、
情報処理方法。
多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて前記多次多変数多項式の組Fを構成する各項の係数と同じ数だけ数を生成するステップと、
前記証明者と前記認証者との間で予め決められた順序で前記数生成部が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てるステップと、
を含む、
情報処理方法。
多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を生成する数生成機能と、
前記数生成機能が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てる割当機能と、
をコンピュータに実現させるためのプログラムであり、
前記割当機能は、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数のうち、変数の組み合わせの種類が同じ項の係数をグループ化しておき、割り当て処理をグループ単位で実行する、
プログラム。
多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を生成する数生成機能と、
前記数生成機能が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てる割当機能と、
をコンピュータに実現させるためのプログラムであり、
前記割当機能は、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式を2次形式で表現した場合の係数行列を行又は列毎にグループ化しておき、割り当て処理をグループ単位で実行する、
プログラム。
多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて前記多次多変数多項式の組Fを構成する各項の係数と同じ数だけ数を生成する数生成機能と、
前記証明者と前記認証者との間で予め決められた順序で前記数生成部が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てる割当機能と、
をコンピュータに実現させるためのプログラム。
上記の(19)に記載のプログラムが記録された、コンピュータにより読み取り可能な記録媒体。
上記の証明者アルゴリズムP、検証者アルゴリズムV、署名生成アルゴリズムSig、署名検証アルゴリズムVerは、数生成部、割当部、テーブル保持部の一例である。上記の証明者アルゴリズムPは、メッセージ生成部、メッセージ提供部、回答提供部、中間情報生成部、中間情報提供部の一例である。また、上記の検証者アルゴリズムVは、情報保持部、メッセージ取得部、パターン情報提供部、回答取得部、検証部、中間情報取得部の一例である。
P 証明者アルゴリズム
V 検証者アルゴリズム
Sig 署名生成アルゴリズム
Ver 署名検証アルゴリズム
Claims (19)
- 多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を生成する数生成部と、
前記数生成部が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てる割当部と、
を備え、
前記割当部は、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数のうち、変数の組み合わせの種類が同じ項の係数をグループ化しておき、割り当て処理をグループ単位で実行する、
情報処理装置。 - 多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を生成する数生成部と、
前記数生成部が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てる割当部と、
を備え、
前記割当部は、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式を2次形式で表現した場合の係数行列を行又は列毎にグループ化しておき、割り当て処理をグループ単位で実行する、
情報処理装置。 - 前記数生成部は、前記割当部が1つのグループに対する割り当て処理を実行する際に、当該1つのグループに属する係数の分だけ前記数を生成する、
請求項1に記載の情報処理装置。 - 前記数生成部は、前記1つのグループに属する係数の分だけ前記数を生成する際、1つの数を生成し、生成した数を1ビットずつローテーションして所要数の数を生成する、
請求項3に記載の情報処理装置。 - 前記各グループに対応する種類の項に前記係数を割り当て、当該項の変数に任意の数を代入した値をテーブルとして保持するテーブル保持部をさらに備える、
請求項1に記載の情報処理装置。 - 多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて前記多次多変数多項式の組Fを構成する各項の係数と同じ数だけ数を生成する数生成部と、
前記証明者と前記認証者との間で予め決められた順序で前記数生成部が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てる割当部と、
を備える、
情報処理装置。 - 前記情報は、乱数のシードであり、
前記所定の関数は、前記シードを利用して乱数を生成する乱数生成器である、
請求項1に記載の情報処理装置。 - 環K上で定義される多次多変数多項式の組F=(f1,…,fm)、及びベクトルs∈Knに基づいてメッセージを生成するメッセージ生成部と、
前記多次多変数多項式の組F及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する検証者に前記メッセージを提供するメッセージ提供部と、
k通り(k≧3)の検証パターンの中から前記検証者が選択した検証パターンに対応する回答情報を前記検証者に提供する回答提供部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記回答情報は、前記乱数の組及び前記メッセージの中から前記検証パターンに応じて選択される情報であり、
前記メッセージは、前記公開鍵及び前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
請求項1に記載の情報処理装置。 - 環K上で定義される多次多変数多項式の組F=(f1,…,fm)及びベクトルy=(y1,…,ym)=(f1(s),…,fm(s))を保持する情報保持部と、
前記多次多変数多項式の組F及びベクトルs∈Knに基づいて生成されたメッセージを取得するメッセージ取得部と、
前記メッセージを提供した証明者に対し、k通り(k≧3)の検証パターンの中からランダムに選択した1つの検証パターンの情報を提供するパターン情報提供部と、
前記選択した検証パターンに対応する回答情報を前記証明者から取得する回答取得部と、
前記メッセージ、前記多次多変数多項式の組F、前記ベクトルy、及び前記回答情報に基づいて前記証明者が前記ベクトルsを保持しているか否かを検証する検証部と、
を備え、
前記ベクトルsは秘密鍵であり、
前記多次多変数多項式の組F及び前記ベクトルyは公開鍵であり、
前記メッセージは、前記公開鍵及び前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
請求項1に記載の情報処理装置。 - 環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の情報、前記回答情報を利用して、当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
請求項1に記載の情報処理装置。 - 環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の情報、前記回答情報を利用して当該回答情報に対応する検証パターン用に予め用意された演算を実行することで得られる情報である、
請求項1に記載の情報処理装置。 - 前記アルゴリズムが複数回繰り返し実行される場合において、前記数生成部は1回だけ前記数を生成し、前記割当部は1回だけ前記割り当て処理を実行し、
前記アルゴリズムは、前記割当部が割り当てた係数を繰り返し利用する、
請求項1に記載の情報処理装置。 - 環K上で定義される多次多変数多項式の組F=(f1,…,fm)、及び署名鍵s∈Knを用いて文書Mに対する電子署名を生成する署名生成部と、
前記多次多変数多項式の組F及びベクトルy=(f1(s),…,fm(s))を保持する検証者へと前記電子署名を提供する署名提供部と、
を備える、
請求項1に記載の情報処理装置。 - 多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を生成するステップと、
生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てるステップと、
を含み、
前記割り当てるステップでは、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数のうち、変数の組み合わせの種類が同じ項の係数をグループ化しておき、割り当て処理をグループ単位で実行する、
情報処理方法。 - 多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を生成するステップと、
生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てるステップと、
を含み、
前記割り当てるステップでは、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式を2次形式で表現した場合の係数行列を行又は列毎にグループ化しておき、割り当て処理をグループ単位で実行する、
情報処理方法。 - 多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて前記多次多変数多項式の組Fを構成する各項の係数と同じ数だけ数を生成するステップと、
前記証明者と前記認証者との間で予め決められた順序で前記数生成部が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てるステップと、
を含む、
情報処理方法。 - 多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を生成する数生成機能と、
前記数生成機能が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てる割当機能と、
をコンピュータに実現させるためのプログラムであり、
前記割当機能は、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数のうち、変数の組み合わせの種類が同じ項の係数をグループ化しておき、割り当て処理をグループ単位で実行する、
プログラム。 - 多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて、前記多次多変数多項式の組Fを構成する各項の係数に利用する数を生成する数生成機能と、
前記数生成機能が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てる割当機能と、
をコンピュータに実現させるためのプログラムであり、
前記割当機能は、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式を2次形式で表現した場合の係数行列を行又は列毎にグループ化しておき、割り当て処理をグループ単位で実行する、
プログラム。 - 多次多変数多項式の組F=(f1,…,fm)を含む公開鍵を利用した公開鍵認証方式又は電子署名方式のアルゴリズムを実行するエンティティの間で共有されている情報から所定の関数を用いて前記多次多変数多項式の組Fを構成する各項の係数と同じ数だけ数を生成する数生成機能と、
前記証明者と前記認証者との間で予め決められた順序で前記数生成部が生成した数を、前記多次多変数多項式の組Fを構成要素に含む多次多変数多項式の係数に割り当てる割当機能と、
をコンピュータに実現させるためのプログラム。
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012046687A JP6069852B2 (ja) | 2011-08-29 | 2012-03-02 | 情報処理装置、情報処理方法、及びプログラム |
TW101128119A TW201320701A (zh) | 2011-08-29 | 2012-08-03 | 資訊處理裝置、資訊處理方法及程式 |
IN1411CHN2014 IN2014CN01411A (ja) | 2011-08-29 | 2012-08-14 | |
CN201280040706.XA CN104011781B (zh) | 2011-08-29 | 2012-08-14 | 信息处理设备、信息处理方法 |
PCT/JP2012/070675 WO2013031533A1 (ja) | 2011-08-29 | 2012-08-14 | 情報処理装置、情報処理方法、及びプログラム |
US14/239,861 US10020945B2 (en) | 2011-08-29 | 2012-08-14 | Information processing apparatus and to efficiently substitute coefficients of a multivariate polynomial |
RU2014106490/08A RU2595924C2 (ru) | 2011-08-29 | 2012-08-14 | Устройство обработки информации, способ обработки информации и программа |
BR112014004058A BR112014004058A2 (pt) | 2011-08-29 | 2012-08-14 | aparelho e método de processamento de informação, e, programa |
EP12826899.2A EP2752835B1 (en) | 2011-08-29 | 2012-08-14 | Information processing device, information processing method, and program |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011185947 | 2011-08-29 | ||
JP2011185947 | 2011-08-29 | ||
JP2012046687A JP6069852B2 (ja) | 2011-08-29 | 2012-03-02 | 情報処理装置、情報処理方法、及びプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2013066151A true JP2013066151A (ja) | 2013-04-11 |
JP2013066151A5 JP2013066151A5 (ja) | 2015-04-09 |
JP6069852B2 JP6069852B2 (ja) | 2017-02-01 |
Family
ID=47756028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012046687A Active JP6069852B2 (ja) | 2011-08-29 | 2012-03-02 | 情報処理装置、情報処理方法、及びプログラム |
Country Status (9)
Country | Link |
---|---|
US (1) | US10020945B2 (ja) |
EP (1) | EP2752835B1 (ja) |
JP (1) | JP6069852B2 (ja) |
CN (1) | CN104011781B (ja) |
BR (1) | BR112014004058A2 (ja) |
IN (1) | IN2014CN01411A (ja) |
RU (1) | RU2595924C2 (ja) |
TW (1) | TW201320701A (ja) |
WO (1) | WO2013031533A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9596083B2 (en) | 2014-05-02 | 2017-03-14 | Fujitsu Limited | Information processing technique for pattern matching |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5790288B2 (ja) * | 2011-08-12 | 2015-10-07 | ソニー株式会社 | 情報処理装置、及び情報処理方法 |
JP5790319B2 (ja) * | 2011-08-29 | 2015-10-07 | ソニー株式会社 | 署名検証装置、署名検証方法、プログラム、及び記録媒体 |
JP2013047727A (ja) * | 2011-08-29 | 2013-03-07 | Sony Corp | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
CN103490897B (zh) * | 2013-09-17 | 2017-04-05 | 华南理工大学 | 一种多变量公钥签名/验证系统及签名/验证方法 |
US10075288B1 (en) * | 2014-02-28 | 2018-09-11 | The Governing Council Of The University Of Toronto | Systems, devices, and processes for homomorphic encryption |
JP6974461B2 (ja) * | 2016-08-02 | 2021-12-01 | エックス−ロゴス、エルエルシー | 幾何代数を用いた高度データ中心型暗号化システムのための方法およびシステム |
US10484186B2 (en) * | 2016-09-30 | 2019-11-19 | Intel Corporation | Cascading multivariate quadratic identification schemes for chain of trust |
US10812252B2 (en) | 2017-01-09 | 2020-10-20 | Microsoft Technology Licensing, Llc | String matching in encrypted data |
US11196539B2 (en) * | 2017-06-22 | 2021-12-07 | Microsoft Technology Licensing, Llc | Multiplication operations on homomorphic encrypted data |
US10541805B2 (en) * | 2017-06-26 | 2020-01-21 | Microsoft Technology Licensing, Llc | Variable relinearization in homomorphic encryption |
US10749665B2 (en) | 2017-06-29 | 2020-08-18 | Microsoft Technology Licensing, Llc | High-precision rational number arithmetic in homomorphic encryption |
JP6942601B2 (ja) | 2017-10-18 | 2021-09-29 | キヤノン株式会社 | 情報処理装置、その制御方法、及びプログラム |
CN114390065B (zh) * | 2022-01-24 | 2024-03-19 | 浙江数秦科技有限公司 | 一种区块链网络数据快速传输方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004158951A (ja) * | 2002-11-05 | 2004-06-03 | Nippon Telegr & Teleph Corp <Ntt> | セキュリティ装置、セキュリティ方法、プログラム及び記録媒体 |
JP2004201292A (ja) * | 2002-12-03 | 2004-07-15 | Matsushita Electric Ind Co Ltd | 鍵共有システム、共有鍵生成装置及び共有鍵復元装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7162032B2 (en) * | 1999-12-20 | 2007-01-09 | Telenor Asa | Encryption of programs represented as polynomial mappings and their computations |
US6910130B2 (en) * | 2000-11-29 | 2005-06-21 | Hideki Imai | System for and method of unconditionally secure digital signature |
JP2004015891A (ja) | 2002-06-05 | 2004-01-15 | Toshiba Corp | インバータ装置、ブラシレスdcモータの制御方法およびコンプレッサ駆動システム |
JP4282546B2 (ja) * | 2004-05-19 | 2009-06-24 | 株式会社東芝 | 暗号装置、復号装置、鍵生成装置、プログラム及び方法 |
US7961876B2 (en) * | 2005-01-11 | 2011-06-14 | Jintai Ding | Method to produce new multivariate public key cryptosystems |
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 |
US8019079B2 (en) * | 2007-07-08 | 2011-09-13 | Georgia Tech Research Corporation | Asymmetric cryptosystem employing paraunitary matrices |
JP4834650B2 (ja) * | 2007-11-22 | 2011-12-14 | パナソニック株式会社 | 情報処理装置 |
WO2009078139A1 (ja) * | 2007-12-14 | 2009-06-25 | Nec Corporation | 署名生成装置および署名検証装置 |
JP5366691B2 (ja) * | 2008-07-29 | 2013-12-11 | パナソニック株式会社 | 保護部材と共に用いる電子機器 |
US8891756B2 (en) * | 2008-10-30 | 2014-11-18 | Certicom Corp. | Collision-resistant elliptic curve hash functions |
EP2658165B1 (en) * | 2009-04-24 | 2014-09-10 | Nippon Telegraph And Telephone Corporation | Cryptographic system, cryptographic communication method, encryption apparatus, key generation apparatus, decryption apparatus, content server, program, and storage medium |
JP5446453B2 (ja) * | 2009-04-30 | 2014-03-19 | ソニー株式会社 | 情報処理装置、電子署名生成システム、電子署名用の鍵生成方法、情報処理方法、及びプログラム |
JP5593850B2 (ja) * | 2010-05-31 | 2014-09-24 | ソニー株式会社 | 認証装置、認証方法、プログラム、及び署名生成装置 |
IL206139A0 (en) * | 2010-06-02 | 2010-12-30 | Yaron Sella | Efficient multivariate signature generation |
-
2012
- 2012-03-02 JP JP2012046687A patent/JP6069852B2/ja active Active
- 2012-08-03 TW TW101128119A patent/TW201320701A/zh unknown
- 2012-08-14 US US14/239,861 patent/US10020945B2/en active Active
- 2012-08-14 BR BR112014004058A patent/BR112014004058A2/pt not_active IP Right Cessation
- 2012-08-14 RU RU2014106490/08A patent/RU2595924C2/ru not_active IP Right Cessation
- 2012-08-14 IN IN1411CHN2014 patent/IN2014CN01411A/en unknown
- 2012-08-14 WO PCT/JP2012/070675 patent/WO2013031533A1/ja active Application Filing
- 2012-08-14 CN CN201280040706.XA patent/CN104011781B/zh not_active Expired - Fee Related
- 2012-08-14 EP EP12826899.2A patent/EP2752835B1/en not_active Not-in-force
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004158951A (ja) * | 2002-11-05 | 2004-06-03 | Nippon Telegr & Teleph Corp <Ntt> | セキュリティ装置、セキュリティ方法、プログラム及び記録媒体 |
JP2004201292A (ja) * | 2002-12-03 | 2004-07-15 | Matsushita Electric Ind Co Ltd | 鍵共有システム、共有鍵生成装置及び共有鍵復元装置 |
Non-Patent Citations (4)
Title |
---|
JPN6016016097; Sakumoto, K., Shirai, T. and Hiwatari, H.: 'Public-Key Identification Schemes Based on Multivariate Quadratic Polynomials' Lecture Notes in Computer Science Vol.6841, 20110818, p.706-723 * |
JPN6016016099; Hankerson, D., Menezes, A. and Vanstone, S.: Guide to Elliptic Curve Cryptography , 2004, p.47-61, 213-215, Springer-Verlag New York, Inc. * |
JPN6016016101; Berbain, C., Billet, O. and Gilbert, H.: 'Efficient Implementations of Multivariate Quadratic Systems' Lecture Notes in Computer Science Vol.4356, 2007, p.174-187 * |
JPN6016016103; Chen, A. I.-T., et al.: 'SSE Implementation of Multivariate PKCs on Modern x86 CPUs' Lecture Notes in Computer Science Vol.5747, 2009, p.33-48 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9596083B2 (en) | 2014-05-02 | 2017-03-14 | Fujitsu Limited | Information processing technique for pattern matching |
Also Published As
Publication number | Publication date |
---|---|
IN2014CN01411A (ja) | 2015-05-08 |
WO2013031533A1 (ja) | 2013-03-07 |
US10020945B2 (en) | 2018-07-10 |
CN104011781A (zh) | 2014-08-27 |
RU2014106490A (ru) | 2015-08-27 |
TW201320701A (zh) | 2013-05-16 |
JP6069852B2 (ja) | 2017-02-01 |
EP2752835A4 (en) | 2015-05-20 |
EP2752835B1 (en) | 2018-12-19 |
EP2752835A1 (en) | 2014-07-09 |
BR112014004058A2 (pt) | 2017-03-07 |
US20140215222A1 (en) | 2014-07-31 |
CN104011781B (zh) | 2017-05-17 |
RU2595924C2 (ru) | 2016-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6069852B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP5790319B2 (ja) | 署名検証装置、署名検証方法、プログラム、及び記録媒体 | |
JP5736816B2 (ja) | 認証装置、認証方法、プログラム、及び署名生成装置 | |
JP5593850B2 (ja) | 認証装置、認証方法、プログラム、及び署名生成装置 | |
JP5790318B2 (ja) | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム | |
JP5790287B2 (ja) | 情報処理装置、情報処理方法、プログラム、及び記録媒体 | |
WO2013129084A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
WO2013129119A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP5790286B2 (ja) | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム | |
WO2013031420A1 (ja) | 情報処理装置、署名生成装置、署名検証装置、情報処理方法、署名生成方法、及び署名検証方法 | |
WO2013031413A1 (ja) | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150223 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150223 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160510 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160707 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160809 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161107 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20161116 |
|
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: 20161206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161219 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6069852 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |