Elgamal
标签(空格分隔): Elgamal
密匙生成
选取一个足够大的素数 p
选取 Z^{*}_{p} 的一个生成元 g
随机挑选一个整数y,0 < y < p-2。计算 $ g^{k}\equiv y \ mod\ p $
此时令私匙为k,公匙为{p,g,y}
加密
确定明文m,然后选取随机数r,r满足 $r\in Z_{p-1}$
加密为$E_{k}(m,r)=(y_{1},y_{2})$
$y_{1}\equiv g^{r} \ mod \ (p), y_{2}\equiv m*g^{r} \ mod \ (p)$
解密
$D_k(y_1,y_2) = y_2*(y_1^{k})^{-1} \ mod \ (p) \equiv m*(g^k)^r(g^{kr})^{-1} \equiv m \ mod \ p$
