JP4474912B2 - 効率的ディジタル署名生成方法及び検証方法及び装置 - Google Patents
効率的ディジタル署名生成方法及び検証方法及び装置 Download PDFInfo
- Publication number
- JP4474912B2 JP4474912B2 JP2003402397A JP2003402397A JP4474912B2 JP 4474912 B2 JP4474912 B2 JP 4474912B2 JP 2003402397 A JP2003402397 A JP 2003402397A JP 2003402397 A JP2003402397 A JP 2003402397A JP 4474912 B2 JP4474912 B2 JP 4474912B2
- Authority
- JP
- Japan
- Prior art keywords
- signature
- mod
- data
- modulo
- memory
- 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.)
- Expired - Fee Related
Links
Images
Description
圧縮関数Hを選択し、固定する。9を法として2または5または8と合同な素数p及び9を法として4または7と合同な素数qをランダムに生成し、N=p2qとする。qを法とした三乗非剰余数aを任意に一つ固定し、(p、q)を署名生成鍵、(N、H、a)を署名検証鍵とする。ここで圧縮関数は暗号学的ハッシュ関数を意味し、一方向性と衝突困難性とを持つものをいう。
電子化されたデータMの圧縮関数値H(M)に対しH(M)、a*H(M)、a2*H(M)のうちqを法とした三乗剰余であるものをyとする。
yのNを法とした三乗根xを計算し、xをデータMに対する署名とする。
データMから圧縮関数値H(M)を計算し、Nを法としてy’=x3を計算し、y’がH(M)、a*H(M)、a2*H(M)のうちいずれか一つと一致するとき、xをMに対する正当な署名として認証し、一致しないとき、正当でない署名とする。なお、記号*は乗算を表す。
ステップ2101:署名生成鍵と署名対象のデータを入力する。
ステップ2102:署名生成のための前処理を行う。データの圧縮値の計算などを含む。
ステップ2103:3乗剰余関数fの逆像計算を行う。
ステップ2104:署名生成のための後処理を行う。
ステップ2105:署名データを出力する。
ステップ2201:署名検証鍵と署名対象のデータを入力する。
ステップ2202:署名検証のための前処理を行う。データの圧縮値の計算などを含む。
ステップ2203:3乗剰余関数fの順像計算を行う。
ステップ2204:署名検証のための後処理を行う。
ステップ2205:合否を出力する。
ステップ3101:素数生成。9を法として2または5または8と合同な素数p、及び9を法として4または7と合同な、pと異なる素数qをランダムに生成する。
ステップ3102:合成数計算。N=p2qを計算する。
ステップ3103:qを法として3乗剰余でない数aを選択する。
ステップ3104:出力長がNの長さと等しい圧縮関数Hを選択する。
ステップ3105:鍵の出力。署名検証鍵として(N、H、a)を、署名生成鍵として(p、q)を出力する。
本実施例では秘密にすべき素数p、qのみを署名生成鍵として説明したが、署名検証鍵は公開することから、署名検証鍵も署名生成時の鍵の一部として用いることとし、署名生成時の入力などに単に署名生成鍵と記載していても、署名検証鍵も入力されているものとする。
ステップ3201:署名対象のデータMと、署名生成鍵を入力する。
ステップ3202:圧縮関数HにデータMを入力し、圧縮値w=H(M)を計算する。
ステップ3203:w、a*w mod N、a2*w mod Nのうち、Nを法として3乗剰余であるものを探し、それをyとおく。記号modは剰余を表す。すなわちA mod Nは、AをNで割った余りを表す。
ステップ3204:署名値の計算。Nを法としたyの3乗根を計算し、それをxとおく。
ステップ3205:署名対象のデータMと、署名値xとの連結を署名データWとする。
ステップ3206:署名データとしてWを出力する。
ステップ3301:署名データWと署名検証鍵を入力する。
ステップ3302:署名データWからMとxを取り出す。署名データがステップ3205のように作成されている場合、Wの下位から署名値の長さ分を取り出し、xとおき、残りをMとする。
ステップ3303:圧縮関数HにデータMを入力し、圧縮値w’=H(M)を計算する。
ステップ3304:Nを法としてx3を計算し、それをy’とおく。
ステップ3305:Nを法としてy’=w’ならばステップ3309へ行く。
ステップ3306:Nを法としてy’=a*w’ならばステップ3309へ行く。
ステップ3307:Nを法としてy’=a2*w’ならばステップ3309へ行く。
ステップ3308:「不合格」を出力して終了する。
ステップ3309:「合格」を出力して終了する。
ステップ3401:署名生成鍵(署名検証鍵も含む)と上記値ζ、C、Bを入力する。
ステップ3402:v=w mod qを計算する。
ステップ3403:s=vB mod qを計算する。
ステップ3404:h=s*v mod qを計算する。
ステップ3405:α=s*h2 mod qを計算する。
ステップ3406:αがqを法として1と等しければステップ3410に行く。
ステップ3407:h=b*h mod qを計算し、w=a*w mod Nとおく。
ステップ3408:αがqを法としてζと等しければステップ3410に行く。
ステップ3409:h=b*h mod qを計算し、w=a*w mod Nとおく。
ステップ341012:u=w mod pを計算する。
ステップ3411:d=uC mod pを計算する。
ステップ3412:g=u*d mod pを計算する。
ステップ3413:η=γ*d mod pを計算する。
ステップ3414:e=g+p*((h−g)*z mod q)を計算する。
ステップ3415:x=e+η*(w−e3) mod Nを計算する。
ステップ3416:xを出力する。
ステップ4101:素数生成。9を法として2または5または8と合同な素数p、及び9を法として4または7と合同な、pと異なる素数qをランダムに生成する。
ステップ4102:合成数計算。N=p2qを計算する。
ステップ4103:qを法として3乗剰余でない数aを選択する。
ステップ4104:圧縮関数Hと圧縮関数Gを選択する。
ステップ4105:鍵の出力。署名検証鍵として(N、H、G、a)を、署名生成鍵として(p、q)を出力する。
本実施例では秘密にすべき素数p、qのみを署名生成鍵として説明したが、署名検証鍵は公開することから、署名検証鍵も署名生成時の鍵の一部として用いることとし、署名生成時の入力などに単に署名生成鍵と記載していても、署名検証鍵も入力されているものとする。
ステップ4201:署名対象のデータMと署名生成鍵を入力する。
ステップ4202:圧縮関数HにデータMを入力し、圧縮値s=H(M)を計算する。
ステップ4203:圧縮関数Gにsを入力し、圧縮値t=G(s)を計算する。
ステップ4204:sとtの連結をwとする。
ステップ4205:w、a*w mod N、a2*w mod Nのうち、Nを法として3乗剰余であるものを探し、それをyとおく。
ステップ4206:署名値の計算。Nを法としたyの3乗根を計算し、それをxとおく。
ステップ4207:署名対象のデータMと、署名値xとの連結を署名データWとする。
ステップ4208:署名データとしてWを出力する。
ステップ4301:署名データWと署名検証鍵を入力する。
ステップ4302:署名データWからMとxを取り出す。署名データがステップ4207のように作成されている場合、Wの下位から署名値の長さ分を取り出し、xとおき、残りをMとする。
ステップ4303:圧縮関数HにデータMを入力し、圧縮値s’=H(M)を計算する。
ステップ4304:圧縮関数Gにデータs’を入力し、圧縮値t’=G(s’)を計算する。
ステップ4305:s’とt’の連結をw’とする。
ステップ4306:Nを法としてx3を計算し、それをy’とおく。
ステップ4307:Nを法としてy’=w’ならばステップ4311へ行く。
ステップ4308:Nを法としてy’=a*w’ならばステップ4311へ行く。
ステップ4309:Nを法としてy’=a2*w’ならばステップ4311へ行く。
ステップ4310:「不合格」を出力して終了する。
ステップ4311:「合格」を出力して終了する。
ただし、署名生成鍵、署名検証鍵は、図8を用いて説明した、ステップ4101からステップ4105を実施することで生成される。
ステップ5201:署名対象のデータMと署名生成鍵を入力する。
ステップ5202:圧縮関数HにデータMを入力し、圧縮値s=H(M)を計算する。
ステップ5203:圧縮関数Gにsを入力し、圧縮値G(s)とMとの排他的論理和をwとする。
ステップ5204:sとtの連結をwとする。
ステップ5205:w、a*w mod N、a2*w mod Nのうち、Nを法として3乗剰余であるものを探し、それをyとおく。
ステップ5206:署名値の計算。Nを法としたyの3乗根を計算し、それをxとおく。
ステップ5207:署名値xを署名データWとする。
ステップ5208:署名データとしてWを出力する。
ステップ5301:署名データWと署名検証鍵を入力する。
ステップ5302:Nを法としてΑを計算し、それをy0’とおく。
ステップ5303:Nを法としてa*y0’を計算し、それをy1’とおく。
ステップ5304:Nを法としてa*y1’を計算し、それをy2’とおく。
ステップ5305:i=0、1、2に対し、yi’をsiと、tiとに分割する。
ステップ5306:i=0、1、2に対し、圧縮関数Gにsiを入力し、その出力G(si)とtiとの排他的論理和をMiとする。
ステップ5307:圧縮値H(s0)とM0が異なっているならステップ5309に行く。
ステップ5308:M=M0とおいて、ステップ5314に行く。
ステップ5309:圧縮値H(s1)とM1が異なっているならステップ5311に行く。
ステップ5310:M=M1とおいて、ステップ5314に行く。
ステップ5311:圧縮値H(s2)とM2が異なっているならステップ5313に行く。
ステップ5312:M=M2とおいて、ステップ5314に行く。
ステップ5313:「不合格」を出力して終了する。
ステップ5314:「合格」と、Mを出力して終了する。
ただし、署名生成鍵、署名検証鍵は、図4を用いて説明した、ステップ4101からステップ4105を実施することに加え、圧縮関数Hの出力長はNの長さからqの長さを引いたものであるとし、関数ψを、Nを法とした可逆元と、qの長さと同じ長さで、整数値としてqより小さい乱数を入力とし、その出力と、入力の可逆元とのビットごとの排他的論理和がNを法として3乗剰余となるような関数とし、署名生成鍵に加える。
ステップ6201:署名対象のデータMと署名生成鍵を入力する。
ステップ6202:乱数rを生成する。
ステップ6203:圧縮関数HにデータMを入力し、圧縮値w=H(M)を計算する。
ステップ6204:関数ψにwとrを入力し、出力値r’を求める。
ステップ6205:wとr’の連結をyとおく。
ステップ6206:署名値の計算。Nを法としたyの3乗根を計算し、それをxとおく。
ステップ6207:署名対象のデータMと、署名値xとの連結を署名データWとする。
ステップ6208:署名データとしてWを出力する。
ステップ6301:署名データWと署名検証鍵を入力する。
ステップ6302:署名データWからMとxを取り出す。署名データがステップ6207のように作成されている場合、Wの下位から署名値の長さ分を取り出し、xとおき、残りをMとする。
ステップ6303:圧縮関数HにデータMを入力し、圧縮値w=H(M)を計算する。
ステップ6304:Nを法としてx3を計算し、それをy’とおく。
ステップ6305:y’をw’とr’とに分割する。
ステップ6306:w=w’ならばステップ6308へ行く。
ステップ6307:「不合格」を出力して終了する。
ステップ6308:「合格」を出力して終了する。
kをqのビット長とするとき、入力としてZ=(H(M)||0k) mod qを加え(ただし、0kは、ビット0がk個並んだビット列を表す。また||はビット列の連結を表す。)、
ステップ3407と、ステップ3409において、w=H(M)||(h3−Z mod q)とすることにより実行される。
1009:署名生成プログラムPROG1
1010:署名生成鍵 S
1011:データM
1017:署名検証プログラムPROG2
1018:署名検証鍵 K
7018:署名検証プログラムPROG4
1002、1003、7002、7003:コンピュータ
1004、1012、7006、7014、7018、8004、8008:CPU
1005、1013、7007、7016、7020、8005、8009:メモリ
1006、1014、7008、7021:ネットワークインターフェース
1007、1015、7010、7022:ディスプレイ
1008、1016、7011、7023:キーボード
7004:ICカード
7005:ICカードリーダライタ
7009、7017、8006、8010:インターフェース
8001:回線
8002、8003:装置
Claims (8)
- 第一のCPUと第一のメモリと第一のネットワークインターフェースとを備えた第一のコンピュータ上において、前記第一のCPUが前記第一のメモリに保存された署名生成プログラムを実行することにより実現される署名生成処理部を備える署名生成装置が、電子化されたデータを入力として署名データを生成し、第二のCPUと第二のメモリと第二のネットワークインターフェースとを備えた第二のコンピュータ上において、前記第二のCPUが前記第二のメモリに保存された署名検証プログラムを実行することにより実現される署名検証処理部を備える署名検証装置が電子化されたデータと前記署名データとを入力として前記署名データを検証するディジタル署名システムにおいて、
pを、9を法として2または5または8と合同な素数とし、
qを、9を法として4または7と合同な素数とし、
前記素数pと、前記素数qと、N=p 2 qなるNと、圧縮関数Hと、前記素数qを法とした3乗非剰余数aと、が署名生成鍵として、前記署名生成装置の前記第一のメモリに格納され、
前記Nと、前記圧縮関数Hと、前記3乗非剰余数aと、が署名検証鍵として、前記署名検証装置の前記第二のメモリに格納されており、
前記署名生成装置の前記署名生成処理部は、
電子化されたデータMを入力として受け付け、
前記第一のメモリから、前記p,前記qを読み出し、
前記データMについて、w 1 =H(M)なる圧縮関数値w 1 を計算し、
前記w 1 、a*w 1 、a 2 *w 1 のうち前記qを法とした3乗剰余であるものをyとし、
前記Nを法とした前記yの3乗根xを計算して前記データMに対する署名データとし、
生成された前記署名データxと前記データMとを、前記第一のネットワークインターフェースを介して、前記署名検証装置に送信し、
前記署名検証装置の前記署名検証処理部は、
前記署名データxと前記データMとを、前記第二のネットワークインターフェースを介して、前記署名生成装置から受信し、
前記Nと、前記圧縮関数Hと、前記aとを、前記第二のメモリから読み出し、
受信した前記データMに対し、w’=H(M)なる圧縮関数値w’を計算し、
前記Nを法として、前記署名データxに対し、y’=x 3 なるy’を計算し、
y’がw’、a*w’、a 2 *w’のうちいずれか一つと一致するとき、前記署名データxを前記データMに対する正当な署名と判定し、
一致しないとき、前記署名データxを前記データMに対する正当でない署名と判定する
ことを特徴とするディジタル署名システム。 - 請求項1に記載のディジタル署名システムにおいて、
前記署名生成処理部は、
前記w 1 に対し、
qが、9を法として4と合同ならばζ=a (q−1)/3 mod q、B=(2*q−8)/9とし、
qが、9を法として7と合同ならばζ=a (2*(q−1))/3 mod q、B=(q−7)/9とし、
b=a B+1 mod q、z=1/p mod qなるb、zを計算し、
v=w 1 mod q、s=v B mod q、h=s*v mod q、α=s*h 2 mod qなるv、s、h、αを計算し、
αが、qを法として1と異なるならばh=b*h mod q、W 1 =w 1 *a mod Nなるh、W 1 を計算し、
αが、qを法としてζと異なるならばh=b*h mod q、W 1 =a*w 1 mod Nなるh、W 1 を計算し、
C=(2*p−4)/3とし、u=W 1 mod p、d=u C mod p、g=u*d mod p、η=γ*d mod p、なるu、d、g、ηを計算し、
e=g+p*((h−g)*z mod q)なるeを計算し、
x=e+η*(W 1 −e 3 )mod Nとする
ことを特徴とするディジタル署名システム。 - 第一のCPUと第一のメモリと第一のネットワークインターフェースとを備えた第一のコンピュータ上において、前記第一のCPUが前記第一のメモリに保存された署名生成プログラムを実行することにより実現される署名生成処理部を備える署名生成装置が、電子化されたデータを入力として署名データを生成し、第二のCPUと第二のメモリと第二のネットワークインターフェースとを備えた第二のコンピュータ上において、前記第二のCPUが前記第二のメモリに保存された署名検証プログラムを実行することにより実現される署名検証処理部を備える署名検証装置が電子化されたデータと前記署名データとを入力として前記署名データを検証するディジタル署名システムにおいて、
pを、9を法として2または5または8と合同な素数とし、
qを、9を法として4または7と合同な素数とし、
前記素数pと、前記素数qと、N=p 2 qなるNと、圧縮関数HとGと、前記素数qを法とした3乗非剰余数aと、が署名生成鍵として、前記署名生成装置の前記第一のメモリに格納され、
前記Nと、前記圧縮関数HとGと、前記3乗非剰余数aと、が署名検証鍵として、前記署名検証装置の前記第二のメモリに格納されており、
前記署名生成処理部は、
電子化されたデータMを入力として受け付け、
前記第一のメモリから、前記p,前記qを読み出し、
前記データMについて、
w 2 =H(M)||G(H(M))なる連結データw 2 を計算し、
前記w 2 、a*w 2 、a 2 *w 2 のうち前記qを法とした3乗剰余であるものをyとし、
前記Nを法とした前記yの3乗根xを計算して前記データMに対する署名データとし、
生成された前記署名データxと前記データMとを、前記第一のネットワークインターフェースを介して、前記署名検証装置に送信し、
前記署名検証装置の前記署名検証処理部は、
前記署名データxと前記データMとを、前記第二のネットワークインターフェースを介して、前記署名生成装置から受信し、
前記Nと、前記圧縮関数HとGと、前記aとを、前記第二のメモリから読み出し、
受信した前記データMに対し、
w’=H(M)||G(H(M))なる連結データw’を計算し、
前記Nを法として、前記署名データxに対し、y’=x 3 なるy’を計算し、
y’がw’、a*w’、a 2 *w’のうちいずれか一つと一致するとき、前記署名データxを前記データMに対する正当な署名と判定し、
一致しないとき、前記署名データxを前記データMに対する正当でない署名と判定する
ことを特徴とするディジタル署名システム。 - 請求項3に記載のディジタル署名システムにおいて、
前記署名生成処理部は、
前記w 2 に対し、
qが、9を法として4と合同ならばζ=a (q−1)/3 mod q、B=(2*q−8)/9とし、
qが、9を法として7と合同ならばζ=a (2*(q−1))/3 mod q、B=(q−7)/9とし、
b=a B+1 mod q、z=1/p mod qなるb、zを計算し、
v=w 2 mod q、s=v B mod q、h=s*v mod q、α=s*h 2 mod qなるv、s、h、αを計算し、
αが、qを法として1と異なるならばh=b*h mod q、W 2 =w 2 *a mod Nなるh、W 2 を計算し、
αが、qを法としてζと異なるならばh=b*h mod q、W 2 =a*w 2 mod Nなるh、W 2 を計算し、
C=(2*p−4)/3とし、u=W 2 mod p、d=u C mod p、g=u*d mod p、η=γ*d mod p、なるu、d、g、ηを計算し、
e=g+p*((h−g)*z mod q)なるeを計算し、
x=e+η*(W 2 −e 3 )mod Nとする
ことを特徴とするディジタル署名システム。 - 第一のCPUと第一のメモリと第一のネットワークインターフェースとを備えた第一のコンピュータ上において、前記第一のCPUが前記第一のメモリに保存された署名生成プログラムを実行することにより実現される署名生成処理部を備える署名生成装置が、電子化されたデータを入力として署名データを生成し、第二のCPUと第二のメモリと第二のネットワークインターフェースとを備えた第二のコンピュータ上において、前記第二のCPUが前記第二のメモリに保存された署名検証プログラムを実行することにより実現される署名検証処理部を備える署名検証装置が電子化されたデータと前記署名データとを入力として前記署名データを検証するディジタル署名システムにおいて、
pを、9を法として2または5または8と合同な素数とし、
qを、9を法として4または7と合同な素数とし、
前記素数p、ならびに、前記素数q、ならびに、N=p 2 qなるN、ならびに、圧縮関数HとGであって、それぞれの出力長の和がN=p 2 qなるNの長さに等しいもの、ならびに、前記素数qを法とした3乗非剰余数a、が署名生成鍵として、前記署名生成装置の前記第一のメモリに格納され、
前記Nと、前記圧縮関数HとGと、前記3乗非剰余数aと、が署名検証鍵として、前記署名検証装置の前記第二のメモリに格納されており、
前記署名生成処理部は、
電子化されたデータMを入力として受け付け、
前記第一のメモリから、前記p,前記qを読み出し、
ビット長が前記Gの出力長と同じ長さの前記データMについて、s=H(M)なる圧縮関数値sと、その圧縮関数値G(s)とを計算し、
前記G(s)と前記データMとのビットごとの排他的論理和をtとし、
w 3 =s||tなる連結データw 3 を計算し、
前記w 3 、a*w 3 、a 2 *w 3 のうち前記qを法とした3乗剰余であるものをyとし、
前記Nを法とした前記yの3乗根xを計算して前記データMに対する署名データとし、
生成された前記署名データxを、前記第一のネットワークインターフェースを介して、前記署名検証装置に送信し、
前記署名検証装置の前記署名検証処理部は、
前記Nと、前記圧縮関数HとGと、前記aとを、前記第二のメモリから読み出し、
前記署名データxを、前記第二のネットワークインターフェースを介して、前記署名生成装置から受信し、
前記Nを法として、受信した前記署名データxに対し、y’=x 3 なるy’を計算し、
i=1、2、3に対し、前記Nを法としてy i =a i *y’を計算し、
y i を、上位からHの出力長と同じ長さのビット列s i と残りのビット列t i とに分割し、
t i と圧縮関数値G(s i )とのビットごとの排他的論理和M i を計算し、
i=1、2、3のうちいずれかにおいてs i =H(M i )が成り立つとき、そのiに対するM i を回復された前記データMとし、前記署名データxを前記データMに対する正当な署名と判定し、
成り立たないとき、前記署名データxを前記データMに対する正当でない署名と判定する
ことを特徴とするディジタル署名システム。 - 請求項5に記載のディジタル署名システムにおいて、
前記署名生成処理部は、
前記w 3 に対し、
qが、9を法として4と合同ならばζ=a (q−1)/3 mod q、B=(2*q−8)/9とし、
qが、9を法として7と合同ならばζ=a (2*(q−1))/3 mod q、B=(q−7)/9とし、
b=a B+1 mod q、z=1/p mod qなるb、zを計算し、
v=w 3 mod q、s=v B mod q、h=s*v mod q、α=s*h 2 mod qなるv、s、h、αを計算し、
αが、qを法として1と異なるならばh=b*h mod q、W 3 =w 3 *a mod Nなるh、W 3 を計算し、
αが、qを法としてζと異なるならばh=b*h mod q、W 3 =a*w 3 mod Nなるh、W 3 を計算し、
C=(2*p−4)/3とし、u=W 3 mod p、d=u C mod p、g=u*d mod p、η=γ*d mod p、なるu、d、g、ηを計算し、
e=g+p*((h−g)*z mod q)eを計算し、
x=e+η*(W 3 −e 3 )mod Nとする
ことを特徴とするディジタル署名システム。 - 第一のCPUと第一のメモリと第一のネットワークインターフェースとを備えた第一のコンピュータ上において、前記第一のCPUが前記第一のメモリに保存された署名生成プログラムを実行することにより実現される署名生成処理部を備える署名生成装置が、電子化されたデータを入力として署名データを生成し、第二のCPUと第二のメモリと第二のネットワークインターフェースとを備えた第二のコンピュータ上において、前記第二のCPUが前記第二のメモリに保存された署名検証プログラムを実行することにより実現される署名検証処理部を備える署名検証装置が電子化されたデータと前記署名データとを入力として前記署名データを検証するディジタル署名システムにおいて、
pを、9を法として2または5または8と合同な素数とし、
qを、9を法として4または7と合同な素数とし、
前記素数p、ならびに、前記素数q、ならびに、N=p 2 qなるN、ならびに、圧縮関数H、ならびに、前記素数qを法とした3乗非剰余数a、ならびに、関数ψであって、前記Nを法とした可逆元と乱数を入力として持ち、その出力と入力の可逆元とのビットごとの排他的論理和が前記Nを法とした3乗剰余元となるもの、が署名生成鍵として、前記署名生成装置の前記第一のメモリに格納され、
前記Nと、前記圧縮関数Hと、前記3乗非剰余数aと、前記関数ψと、が署名検証鍵として、前記署名検証装置の前記第二のメモリに格納されており、
前記署名生成装置の前記署名生成処理部は、
電子化されたデータMを入力として受け付け、
前記第一のメモリから、前記p,前記qを読み出し、
乱数rを生成し、
前記データMについて、圧縮関数値H(M)を計算し、前記rと前記H(M)とからr’=ψ(r、H(M))なる関数値r’を計算し、
y=H(M)||r’なる連結データyを計算し、
前記Nを法とした前記yの3乗根xを計算してデータMに対する署名データとし、
生成された前記署名データxと前記データMとを、前記第一のネットワークインターフェースを介して、前記署名検証装置に送信し、
前記署名検証装置の前記署名検証処理部は、
前記Nと、前記圧縮関数Hと、前記aと、前記関数ψとを、前記第二のメモリから読み出し、
前記署名データxと前記データMとを、前記第二のネットワークインターフェースを介して、前記署名生成装置から受信し、
受信した前記データMの圧縮関数値H(M)を計算し、
前記Nを法として、前記署名データxに対し、y’=x 3 なるy’を計算し、
yを、上位からHの出力長と同じ長さのビット列w’と残りr’とに分割し、
w’と圧縮関数値H(M)とが一致するとき、前記署名データxは前記データMに対する正当な署名と判定し、
一致しないとき、前記署名データxを前記データMに対する正当でない署名と判定する
ことを特徴とするディジタル署名システム。 - 請求項7に記載のディジタル署名システムにおいて、
前記署名生成処理部は、
前記圧縮関数値H(M)に対し、
qが、9を法として4と合同ならばζ=a (q−1)/3 mod q、B=(2*q−8)/9とし、
qが、9を法として7と合同ならばζ=a (2*(q−1))/3 mod q、B=(q−7)/9とし、
b=a B+1 mod q、z=1/p mod qなるb、zを計算し、
Z=(H(M)||0 k ) mod qなるZを計算(ただし、0 k はビット0がk個並ぶビット列)し、
w 4 =H(M)||rなる連結データw 4 を計算し、
v=w 4 mod q、s=v B mod q、h=s*v mod q、α=s*h 2 mod qなるv、s、h、αを計算し、
αがqを法として、1と異なるならh=B*h mod q、w 4 =H(M)||(h 3 −Z mod q)なるh、w 4 を計算し、
αがqを法としてζと異なるならばh=b*h mod q、w 4 =H(M)||(h 3 −Z mod q)なるh、w 4 を計算し、
C=(2*p−4)/3とし、
u=w 4 mod p、d=u C mod p、g=u*d mod p、η=γ*d mod p、なるu、d、g、ηを計算し、
さらに、e=g+p*((h−g)*z mod q)eを計算し、
x=e+η*(w 4 −e 3 )mod Nとする
ことを特徴とするディジタル署名システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003402397A JP4474912B2 (ja) | 2003-12-02 | 2003-12-02 | 効率的ディジタル署名生成方法及び検証方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003402397A JP4474912B2 (ja) | 2003-12-02 | 2003-12-02 | 効率的ディジタル署名生成方法及び検証方法及び装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005167525A JP2005167525A (ja) | 2005-06-23 |
JP4474912B2 true JP4474912B2 (ja) | 2010-06-09 |
Family
ID=34725968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003402397A Expired - Fee Related JP4474912B2 (ja) | 2003-12-02 | 2003-12-02 | 効率的ディジタル署名生成方法及び検証方法及び装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4474912B2 (ja) |
-
2003
- 2003-12-02 JP JP2003402397A patent/JP4474912B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005167525A (ja) | 2005-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8918647B1 (en) | Authentication system | |
CN100583755C (zh) | 使用同源来设计密码系统 | |
US7688973B2 (en) | Encryption apparatus, decryption apparatus, key generation apparatus, program, and method | |
US6259790B1 (en) | Secret communication and authentication scheme based on public key cryptosystem using N-adic expansion | |
US8046582B2 (en) | Digital signature generation apparatus, digital signature verification apparatus, and key generation apparatus | |
US7912216B2 (en) | Elliptic curve cryptosystem optimization using two phase key generation | |
US20080133912A1 (en) | Authentication System, Authentication Method, Attesting Device, Verification Device, Their Programs, and Recording Medium | |
US20100166174A1 (en) | Hash functions using elliptic curve cryptography | |
US8913741B2 (en) | Method for performing a cryptographic task in an electronic hardware component | |
US8139765B2 (en) | Elliptical polynomial-based message authentication code | |
JP2009229615A (ja) | データ処理システム及びデータ処理方法 | |
JP7328969B2 (ja) | 暗号システムおよび方法 | |
US20220224532A1 (en) | Systems and Methods for Hiding Private Cryptographic Keys in Multimedia Files | |
JP3626340B2 (ja) | 暗号装置及び暗号鍵生成方法、並びに素数生成装置及び素数生成方法 | |
JP4474912B2 (ja) | 効率的ディジタル署名生成方法及び検証方法及び装置 | |
JP7273742B2 (ja) | 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム | |
JP2011040932A (ja) | 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体 | |
Kwon et al. | Practical digital signature generation using biometrics | |
Buchmann et al. | Post-quantum signatures | |
Li et al. | A verifiable multi-secret sharing scheme based on short integer solution | |
WO2011033642A1 (ja) | 署名生成装置及び署名検証装置 | |
Kaminaga et al. | Crashing modulus attack on modular squaring for rabin cryptosystem | |
Singh | Code-based cryptography: A comparative study of key sizes | |
JP2007151073A (ja) | 鍵生成プログラム | |
US20220200797A1 (en) | Cryptographic System and Method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051227 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060424 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090519 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090721 |
|
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: 20100216 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100301 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |