一、概述
1、ElGamal算法和ECC算法基于离散对数问题
2、这个是一个单向的过程。虽然密钥对构造简单,但是只是乙方向另外一方单向传送数据进行加解密,不能反向操作
3、这里只有“公钥加密、私钥解密”这个过程
4、ElGamal不足之处就是 密文会成倍增长
5、ElGamal和RSA最大不同就是他们构造密钥对的方式不同。还有就是是否为双向加解密
二、模型分析
以甲方向乙方发送数据为模型
1、甲方构造密钥对(公钥+私钥),公布公钥给乙方
2、这里甲方没法给乙方发送数据了,只有乙方能给甲方传送数据
3、乙方用公钥对数据进行加密,传送给甲方,甲方用私钥对数据进行解密
三、代码实现
四、总结
1、这个是一个单向传递数据的过程,这个和RSA不同,RSA的公钥私钥都可以用来做加解密数据的
2、这里java6不支持ElGamal算法,BouncyCastle支持这个算法
3、这里的公钥私钥长度几乎一致
4、这里只有“公钥加密、私钥解密”这一个原则