説明

耐量子コンピュータ性をもつディジタル署名方式

【課題】従来の方式は、耐量子コンピュータ性がなく、量子コンピュータが出現すると多項式時間で解読されてしまうと予想されている。この発明の目的は、安全性をNP完全問題の1つである高次多変数連立代数方程式の解法に依存する方式を採用することにより、耐量子コンピュータ性を持つディジタル署名方式を提案することにある。
【解決手段】有限体Fq上のm個の任意の要素k(i=1,..,m)と、Fq上の四元数環H上の互いに非可換となるm個の要素A(i=1,..,m)を係数とする四元数環上の暗号化関数F(X)を利用者A(署名者)の公開鍵として、利用者A(署名者)が署名作成時毎に作成する補助暗号化関数T(X)と暗号化関数F(X)とメッセージEを用いて、ディジタル署名Sを生成し、利用者B(検証者)にSとEを送信し、利用者B(検証者)は受信したSとEと公開鍵F(X)と公開情報q,d,r,mを用いてSが利用者Aの署名であることを検証する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は電子文書の正当性を確認するディジタル署名方式に関し、特に安全性が高く、耐量子コンピュータ性をもつディジタル署名方式に関するものである。
【背景技術】
【0002】
「ディジタル署名」とは,送られてきたデータの送信元が間違いないか,伝送経路上でデータが改ざんされていないかを確認するための技術である。従来提案されているディジタル署名方式の代表例として岡本方式やFiat−Shamir方式(Fiat,A.and Shamir,A:“How to prove yourself:practical solutions to identification and signature problems”,Proceedings of Crypto86,Santa Barbara,August1986,pp.18−1−18−7)がある。
【0003】
岡本方式の署名方式は、以下の通りである。署名者Aは素数p,q(qはp−1の因数の1つ)と乱数r(2以上p−1以下)とからrmod pを計算し、1となるqを2つ見つけてg,gとし、これらと乱数s1,s2とからv=g−s1・g−s2mod pを計算し、p,q,g,g,t,v(tは安全性の度合いを示すパラメータ)を公開し、s1,s2を自分の秘密鍵とする。Aは文書Mに対する署名を行うには、乱数r1,r2を発生し、x=gr1・gr2mod pを計算し、ハッシュ関数演算器でe=h(x,M)を計算し、秘密鍵s1,s2を用い、y1=r1+e・s1modq、y2=r2+e・s2mod qを計算し、署名(e,y1,y2)とMを検証者Bへ送る。Bはw=gy1・gy2・vmod pを計算し、w=xかを判定し、成立すれば合格とする。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許公開平6−59626 ディジタル署名方式 日本電信電話株式会社 岡本 龍明 特許出願平4−215809
【発明の概要】
【発明が解決しようとする課題】
【0005】
Fiat−Shamir方式の安全性は、法の合成数の素因数分解の困難さに依存する。岡本方式の安全性は、法の合成数の素因数分解の困難さに依存すること、及び乗法群上の離散対数問題の計算量上の困難さに依存することであり、量子コンピュータが出現するといずれの問題も多項式時間で解読可能と予想されている。
【0006】
このように岡本方式やFiat−Shamir方式は、耐量子コンピュータ性がなく、量子コンピュータが出現すると多項式時間で解読されてしまうと予想されている。この発明の目的は、安全性をNP完全問題の1つである高次多変数連立代数方程式の解法に依存する方式を採用することにより、耐量子コンピュータ性を持つディジタル署名方式を提案することにある。
【課題を解決するための手段】
【0007】
信頼のおける第3者機関であるシステムセンタは3以上の素数qおよび3つの整数d,r,mを選び公開する。利用者A(署名者)は、システム加入時に、秘密鍵[k,A(i=1,..,m)]を選ぶ。ここで、k(i=1,..,m)を有限体Fq上のm個の任意の要素として、A(i=1,..,m)をFq上の四元数環H上の互いに非可換となるm個の要素とする。1つの要素AiはFq上の4つの要素から成り立っている四元数である。利用者Aは公開されている4つのシステムパラメータ[q,d,r,m]と秘密鍵[k,A(i=1,..,m)]から、公開鍵である四元数環上の暗号化関数F(X)を以下のように生成する。
【0008】
【数1】

【0009】
利用者AはF(X)を展開して、展開式の係数fje0e1e2e3を求め、その集合{fje0e1e2e3}を利用者Aの公開鍵として、利用者Aの識別情報IDと対にしてシステムセンタに送る(図2)。fje0e1e2e3は以下のような形をしている。四元数F(X)の要素表現形式を(f,f,f,f)とすると、
【0010】
【数2】

【0011】
ここで、1+r+…+r=sとして、
,e1,,eは非負の整数でe+e+e+e=sを満足する。上記fを与える式の右辺の項数nは、
n=3+s=(s+3)(s+2)(s+1)/6
となる。
【0012】
利用者Aが利用者Bに署名Sを以下のように送る。
利用者Aは、すべてのA(i=1,..,m)と非可換な四元数環Hの任意の要素Rを選ぶ。
利用者Aは、送信するメッセージE=(E,E,E,E)∈Hから、g=E+E+E+Eを生成する。
利用者Aは自分の秘密鍵[k,A(i=1,..,m)]と選んだ要素Rを用いて、Fq上の四元数環上の補助暗号化関数T(X)を以下のように生成する。
【0013】
【数3】

【0014】
利用者AはT(X)を展開して、展開式の係数tje0e1e2e3を求め、その集合{tje0e1e2e3}を求める。
je0e1e2e3は以下のような形をしている。
四元数T(X)の要素表現形式を(t,t,t,t)とすると
【0015】
【数4】

【0016】
ここで、e,e1,,eは非負の整数でe+e+e+e=sを満足する。上記tを与える式の右辺の項数nは、
n=3+s=(s+3)(s+2)(s+1)/6
となる。
【0017】
利用者AはメッセージEと署名S=[{tje0e1e2e3},R]を利用者Bに送る(図3の上段)。
【0018】
利用者Bはシステムセンタの公開鍵管理簿から入手した利用者Aの公開鍵{fje0e1e2e3}と利用者Aから送られてきたメッセージEと署名Sから以下の手順で検証する。
まず、メッセージE=(E,E,E,E)∈Hから、g=E+E+E+Eを生成する。
【0019】
次に、利用者BはF(RE)≠T(RE)であることを確認する。
利用者Bは{fje0e1e2e3}からF(RE)の要素表現形式(f’,f’,f’,f’)を求める。
E=(b,b,b,b)とおくと、
【0020】
【数5】


【0021】
ここで、e,e1,,eは非負の整数でe+e+e+e=sを満足する。上記f’を与える式の右辺の項数nは、
n=3+s=(s+3)(s+2)(s+1)/6
となる。
【0022】
同様にして、利用者Bは{tje0e1e2e3}からT(RE)の要素表現形式(t’,t’,t’,t’)を求める。
RE=(c,c,c,c)とおくと
【0023】
【数6】

【0024】
ここで、e,e1,,eは非負の整数でe+e+e+e=sを満足する。上記t’を与える式の右辺の項数nは、
n=3+s=(s+3)(s+2)(s+1)/6
となる。
【0025】
利用者Bは
T(RE)=(t’,t’,t’,t’)≠(f’,f’,f’,f’)=F(RE)
を確認する。等しければ送られてきたSは利用者Aの署名でないと判定する(図3下段)。
【0026】
利用者Bは、任意の整数pを選び、以下のように
F(Rg+p)=T(Rp+1
を確認する。
【0027】
利用者Bは{fje0e1e2e3}からF(Rg+p)の要素表現形式(f’’,f’’,f’’,f’’)を求める。
g+p=(b,b,b,b)とおいて、
【0028】
【数7】


【0029】
ここで、e,e1,,eは非負の整数でe+e+e+e=sを満足する。上記f”を与える式の右辺の項数nは、
n=3+s=(s+3)(s+2)(s+1)/6
となる。
【0030】
同様にして、利用者BはT(Rp+1)の要素表現形式(t’’,t’’,t’’,t’’)を求める。
p+1=(c,c,c,c)とおくと、
【0031】
【数8】

【0032】
ここで、e,e1,,eは非負の整数でe+e+e+e=sを満足する。上記t”を与える式の右辺の項数nは、
n=3+s=(s+3)(s+2)(s+1)/6
となる。
【0033】
利用者Bは
F(Rp+g)=(t’’,t’’,t’’,t’’)=(f’’,f’’,f’’,f’’)=T(Rp+1
を確認する。その結果が一致するかどうかを検証し、その検証に合格すればSは利用者Aの正当な署名文書と判定することにより署名文書の正当性を確認する(図4)。
【0034】
[0010]で公開される集合{fje0e1e2e3}の値から秘密鍵[k,A(i=1,..,m)]を求めることが高次元多変数連立代数方程式の解法に帰結される。この解法問題はNP完全問題の一つである。
【0035】
ところで、岡本方式の安全性は、法の合成数の素因数分解の困難さや素数を法とする離散対数問題の困難さに依存する。
【0036】
一方、本発明方式の安全性は、有限体Fq上の高次多変数連立代数方程式の解法の困難さに依存する。次数を大きくし、変数の数を多くすることにより、耐量子コンピュータ性をもつディジタル署名方式である。
【発明の効果】
【0037】
岡本方式やFiat−Shamir方式の安全性は、法の合成数の素因数分解の困難さや素数を法とする離散対数問題の困難さに依存するので、量子コンピュータが出現すると、多項式時間で解読可能となる恐れがある。
【0038】
一方、本発明においては、有限体Fq上の高次多変数連立代数方程式の解法の困難さに依存するディジタル署名方式が、高次多変数連立代数方程式の解法がNP完全問題の1つとなるので、量子コンピュータに耐えうるディジタル署名方式を提供できる。
【0039】
従ってこの発明によれば安全性を高く保持するものとなる。
【0040】
なお、本発明は、上記において説明した実施形態に限定されるものではなく、その主旨を逸脱しない範囲において種々変更可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【図面の簡単な説明】
【0041】
【図1】本発明の一実施の形態による署名方式のブロック図である。
【図2】同実施の形態による署名方式における利用者Aの署名処理手順のブロック図である。
【図3】同実施の形態による署名方式における利用者Bの検証処理手順1のブロック図である。
【図4】同実施の形態による署名方式における利用者Bの検証処理手順2のブロック図である。
【符号の説明】
【0042】
100…システムセンタ装置
200…利用者A(署名者)端末
300…利用者B(検証者)端末
400…安全でない通信路
110…システムセンタ公開鍵管理簿
201、202,206、303…乱数発生器
203…記憶装置
204…公開鍵生成装器
205…署名生成器
301,304,305…検証器
302,306…比較器
【発明を実施するための形態】
【0043】
請求項1の発明の一実施例について説明する。
【実施例】
【0044】
図1にこの発明の全体構成を示す。ディジタル署名を作成する利用者A(署名者)装置200と、署名を検証する利用者B(検証者)装置300とが安全でない通信路400を介して結合されているとする。
【0045】
まず、システムに加入した利用者Aは、システム加入時に、システムセンタ100からシステムパラメータq,d,r,mを入手して、署名者装置200にて基本的に一度だけ行う初期情報設定段階において、図2に示す乱数発生器201,202を用いて、秘密鍵[ki,Ai(i=1,..,m)]と、公開鍵生成器204を用いて公開鍵{fje0e1e2e3}を生成し、秘密鍵[ki,Ai(i=1,..,m)]と公開鍵{fje0e1e2e3}を記憶装置203に入力し、公開鍵{fje0e1e2e3}を利用者Aの識別情報IDと対にして、システムセンタ100の公開鍵管理簿110に登録する。
【0046】
次に、利用者Aが文書Eに対するディジタル署名を作成する手順について説明する。署名作成者である利用者Aは、署名者装置200で署名作成を行う。図3にその処理手順を示す。
利用者Aは乱数発生器206を用いて四元数である乱数Rを生成し、記憶装置203に入力し、当該文書E,当該乱数Rを入力として署名生成器205を用いて{tje0e1e2e3}を計算し、[{tje0e1e2e3},R]を文書Eに対するディジタル署名Sとして、SとEを記憶装置203に入力し、検証者である利用者BにSとEを送信する。
【0047】
次に、検証者である利用者Bが検証者装置300を用いて、署名作成者である利用者Aの署名者装置200から送信された文書Eと当該文書Eに対するディジタル署名[{tje0e1e2e3},R]を検証する手順について説明する。図3,図4に署名検証手順を示す。
【0048】
まず、T(RE)≠F(RE)を確認する。検証者である利用者Bは検証器301を用いて、受信した四元数である文書Eから、その4つの要素の和gを計算し、システムセンタの公開鍵管理簿から入手した利用者Aの公開鍵{fje0e1e2e3}と受信したRとEと計算したgからREを計算して、F(RE)=(f’,f’,f’,f’)を生成して、比較器302に入力する。一方、検証器301を用いて、受信したR,EからREを計算し、受信した{tje0e1e2e3}とREからT(RE)=(t’,t’,t’,t’)を生成して、比較器302に入力する。比較器302を用いて、(f’,f’,f’,f’)と(t’,t’,t’,t’)が等しいか異なるかを検証する。利用者Bは等しいときはSは利用者Aの署名ではないと出力する。異なるときは検証器304を用いて、図4に示すように検証する。
【0049】
検証者である利用者Bは乱数発生器303を用いて、整数である乱数pを生成し、検証器304に入力する。
【0050】
検証者である利用者Bは検証器304にてRg+pを計算し、Rg+pと公開鍵管理簿から入手した利用者Aの公開鍵{fje0e1e2e3}からF(Rg+p)=(f’’,f’’,f’’,f’’)を計算し比較器306に入力する。
【0051】
検証者である利用者Bは検証器305にてRp+1を計算し、Rp+1と受信した{tje0e1e2e3}からT(Rp+1)=(t’’,t’’,t’’,t’’)を計算し比較器306に入力する。
【0052】
検証者である利用者Bは比較器306を用いて、(f’’,f’’,f’’,f’’)と(t’’,t’’,t’’,t’’)が等しいか異なるかを検証する。等しいときはSは利用者Aの署名であると出力する。異なるときはSは利用者Aの署名ではないと出力する。
【0053】
なお、本発明は、上記において説明した実施形態に限定されるものではなく、その主旨を逸脱しない範囲において種々変更可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【0054】
この発明は電子文書の正当性を確認するディジタル署名方式に関し、特に安全性が高く、耐量子コンピュータ性をもつディジタル署名方式を提案するものである。

【特許請求の範囲】
【請求項1】
電子的に作成したディジタル文書の正当性及び承認者を確認するためのディジタル署名を実現する方式であって、システム加入時に利用者A(署名者)は、秘密鍵[ki,Ai(i=1,…,m)]を生成し、その秘密鍵より、公開情報である整数q,d,r,mを用いて、公開鍵{fje0e1e2e3}を生成し、上記署名者の識別情報IDと上記公開鍵{fje0e1e2e3}を対としてシステムセンタの公開鍵管理簿に登録し、署名作成処理段階において、文書Eに対して署名を作成したい利用者A(署名者)は、乱数Rを生成し、それと上記q,d,r,mとEより、{tje0e1e2e3}を生成し、上記[{tje0e1e2e3},R]の組を上記文書Eに対する署名Sとして、文書EをSと共に利用者B(検証者)に送信し、上記署名Sと文書Eを受信した利用者B(検証者)は、上記利用者A(署名者)の識別情報IDに基づき上記システムセンタの公開鍵管理簿より上記公開情報q,d,r,m及び上記公開鍵{fje0e1e2e3}を検索し、これらq,d,r,m,{fje0e1e2e3}と上記受信したSとEより、暗号化関数F(X)にREを入力して求めた(f’,f’,f’,f’)と補助暗号化関数T(X)にREを入力して求めた(t’,t’,t’,t’)が等しくないことを検証し、暗号化関数F(X)にRg+pを入力して求めた(f’’,f’’,f’’,f’’)と補助暗号化関数T(X)にRp+1を入力して求めた(t’’,t’’,t’’,t’’)が等しいことを検証し,合格すれば正当な署名文書と判定することにより署名文書の正当性を確認することを特徴とするディジタル署名方式。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−103655(P2012−103655A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−268806(P2010−268806)
【出願日】平成22年11月13日(2010.11.13)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 平成22年6月17日 インターネットアドレス「http://www.iacr.org/」に発表
【出願人】(510318055)
【Fターム(参考)】