Elgamal加密原理
Rsa是基于大质数分解难题;而Elgamal是基于G上的离散对数难题
局限性:如加密及解密计算量大,密文长度是明文的两倍等
基础知识
1.阶
有n>1, a与n互质,则必存在一 x(1≤x≤n-1), 使得a^x = 1 mod n
满足等式的最小x称为,a模n的阶,表示为Ord_n(a)
又可知φ(n)是方程一解,但不一定为最小解,当φ(n)为最小解时,称a为n的一个本原元。
加密过程
1.密钥生成
私钥:a 公钥:(p,g,A)
选择一个大整数p ,一个g为p的本原元,
选择一整数a(1≤a≤p-1),计算A = g^a mod p
2.加密过程
Alice公开公钥(p,g,A)Bob选择明文M(1<M<p),Bob选择整数k,计算
C1 = g^k mod p , C2 = M*(A^k) mod p 并将(C1,C2)发给Alice。
3.解密过程
Alice收到(C1,C2),使用a进行解密。
M = C2 * (C1^a )^(-1) mod p