ElGamal署名
署名を付けたいメッセージをmとする。
0 < k < p-1かつgcd(k,p-1)=1となるkをランダムに選ぶ。
r ≡ g mod pを計算する。
s ≡ (H(m) - x r) k mod p-1を計算する。
もしs=0であればkを選ぶところからやり直す。
整数の組 (r, s)がmに対する署名となる。
1 < x < p-1なる整数xをランダムに選ぶ。
y = g mod pを計算する。
公開鍵は (p, g, y)。
秘密鍵はxである。