ElGmal算法

非对称算法的密钥对包含公钥和私钥,其中私钥由密钥属主保管,且不能泄露,公钥可以通过明文的方式分发给其它人。通过私钥加密的数据只能由公钥解密,通过公钥加密的数据只能由私钥解密,由于加密和解密使用不同的密钥,因此称为非对称加密。

非对称算法的保密性好,密钥交换方便,但其加解密速度远远慢于对称加密,因此不适合用于大数据的加解密操作。算法的典型应用包括:

1)信息加密:使用接收方的公钥加密信息,则只有对应私钥的持有者才能解密消息

2)密钥交换:对称算法密钥本身数据量小,但通信双方密钥交换不方便,此时可通过非对称算法交换双方密钥。

3)数字签名:通过私钥对数据的hash值做数字签名,从而可以验证数据的完整性和不可抵赖性

4)数字证书:数字证书用于验证公钥的合法性。

ElGamal算法是由Tather ElGamal1985年提出的,它是一种基于离散对数难题的加密体系,与RAS算法一样,既能用于数据加密,也能用于数字签名。ElGamal算法是基于因数分解,而ElGamal算法是基于离散对数问题。与RSA算法相比,ElGamal算法哪怕是使用相同的私钥,对相同的明文进行加密,每次加密后得到的签名也各不相同,有效的防止了网络中可能出现的重放攻击。

算法原理:

1ElGamal密钥生成

1)随机选择一个大素数p,且要求p-1有大素数因子。再选择一个模p的本原元α。将pα公开。

2)随机选择一个整数d作为密钥,2≤d≤p-2

3)计算y=α^d mod p,取y为公钥。

2ElGamal加密

1)对于明文M加密,随机地选取一个整数k2≤k≤p-2

2C1α^k mod p

3C2MY^k mod p

4)密文为(C1,C2

3ElGamal解密

由密文可得明文MM=C2/C1^d mod p

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值