離散対数問題を安全性の根拠にするデジタル署名。
DSA の元になった方式。
署名者 A と検証者 B の間のやり取りを考える。
- 素数 p と、Fp× の生成元 g を固定し、
A と B で共有する
g∈Fp×
A は秘密鍵 x∈{1,…,p−2} を決め、公開鍵 y を共有する
y≡gx(modp)
A はメッセージ m に署名 (r,s) を作り、B に送る
krs∈{1,…,p−2},gcd(k,p−1)=1,≡gk(modp),≡k−1(H(m)−xr)(modp−1)
Note
k−1 を mod(p−1) で考えるため、gcd(k,p−1)=1 が必要。
B は (r,s) を検証する
gH(m)≡yrrs(modp)これが成り立つなら正しい署名