EIGamal体制

EIGamal公钥密码体制

简介

ElGamal是1985年由T. EIGamal提出的一个著名的公钥密码算法
该算法既能用于数据加密也能用于数字签名
其安全性是依赖于计算有限域上离散对数这一难题

密钥产生

任选一个大素数p,使得p-1有大素因子,g是模p的一个本原根,公开p与g。
使用者任选一私钥x,x∈[0, p-1]
计算公钥 y=gx mod p
公开公钥: y, p, g
保密私钥: x

本原根简介:
如果a的阶m等于φ(n),则称a为n的本原根(生成元)。如果a是n的本原根,则a, a2, …, aφ(n)在mod n下互不相同且都与n互素。
特别地,如果a是素数p的本原根,则a, a2, …, ap-1在 mod p下都不相同。

加密

欲加密明文消息M,随机选一与p-1互素的整数k,计算
C1=g^k mod p,
C2=(y^k)*M mod p,
密文为C=(C1,C2)

解密

先计算 w=(c1x)-1 mpd p再计算出明文 m=c2*wmod p

也可以
M=C2/(C1^x)modp

这是因为:
C2/(C1^x)modp=((y^k)M)/g^k* xmod p=((y^k)M)/y^k mod p=M mod p

例子

假设Alice采用了EIGamal密码体制,并选择素数p=2579,私钥x=567,且已知GF(p)的一个生成元g=2.
1.计算Alice 的公钥y。
2.若Bob想秘密发送消息m=1234给Alice,且他选择的随机数r=359,试给出Bob和Alice的加密和解密过程。
解:
1.公钥
y=g^x mod p=2^567 mod 2579=633
2.加解密
c1=g^r mod p=2^359 mod 2579=1514
c2==my^r mod p=1234*633^359 mod 2579=1478
解密:
m=c2(c1^x)^-1 mod p
=1478*(1514^567)^-1 mod 2579
=1478*(1623)^-1 mod 2579
=1478*116 mod 2579
=171448 mod 2579
=1234

参考网页

http://www.cnitpm.com/pm1/37825.html

阅读更多
想对作者说点什么? 我来说一句
相关热词

没有更多推荐了,返回首页