中国安防论坛

 找回密码
 注册
查看: 5651|回复: 0

ElGamal加密算法

[复制链接]

安防中学生

Rank: 2

积分
147
发表于 2004-11-26 20:04:40 | 显示全部楼层 |阅读模式
ElGamal算法既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题。
4 \7 k* I% C( V" P* ?8 H密钥对产生办法。首先选择一个素数p,两个随机数, g 和x,g, x < p, 计算 y = g^x ( mod p ),则其公钥为 y, g 和p。私钥是x。g和p可由一组用户共享。
* z1 C% O7 x: c- kElGamal用于数字签名。被签信息为M,首先选择一个随机数k, k与 p - 1互质,计算
( V9 l. O6 _$ n8 X
/ L% Q. K k4 t2 ]2 f3 @* K a = g^k ( mod p )
7 p+ Z/ D6 u' k( ]# V; \# y& j再用扩展 Euclidean 算法对下面方程求解b:
* C D/ u9 a- g
' o- P* {0 X! ~% \1 Q0 r: h% `) Q M = xa + kb ( mod p - 1 )
% t% _, D8 F, u1 l% l. O; v' }
) y$ P! [4 I0 i I8 }3 U5 l8 C 签名就是( a, b )。随机数k须丢弃。
8 ^/ U3 |; X& v6 g验证时要验证下式:
2 Q# Y* N' ]- V: v; Q, W; y9 `
! `& q1 X+ Y4 F4 C y^a * a^b ( mod p ) = g^M ( mod p )
( I4 `* \" i$ g8 o, G
& F, o/ |9 ]; A& U% T/ c% Y同时一定要检验是否满足1<= a < p。否则签名容易伪造。
0 a6 |, l; A U+ T/ O: ~5 d9 T5 Y) h ElGamal用于加密。被加密信息为M,首先选择一个随机数k,k与 p - 1互质,计算
1 z' b, C/ l" }9 Z
. ~5 s I7 G/ D. g2 ^" u) ca = g^k ( mod p )
" Z z W5 [* `3 @2 w3 m! b1 [ b = y^k M ( mod p )
+ r4 Z+ I4 H( i, L* T& p4 ~
% Q) Z6 O+ @ N0 R( `
% \1 y2 Z/ n' f: l" Z( a, b )为密文,是明文的两倍长。解密时计算
{$ T6 R* C2 P2 s/ v' h
0 ~! s( R+ w; }( @3 n. W; `$ [4 w M = b / a^x ( mod p )
- c4 r4 G4 V$ r3 X; o! B; g
9 r V8 S) m: g" C D   ElGamal签名的安全性依赖于乘法群(IFp)* 上的离散对数计算。素数p必须足够大,且p-1至少包含一个大素数
; y0 \/ G6 r- ^" N 因子以抵抗Pohlig & Hellman算法的攻击。M一般都应采用信息的HASH值(如SHA算法)。ElGamal的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。D.Bleichenbache“GeneratingElGamal Signatures Without Knowing the Secret Key”中提到了一些攻击方法和对策。ElGamal的一个不足之处是它的密文成倍扩张。
/ A) K @% A3 k) g( b* T
1 I; i8 ~: R5 s3 B9 g$ M  美国的DSS(Digital Signature Standard)的DSA(Digital Signature Algorithm)算法是经ElGamal算法演
0 n7 V- w Q" O* F5 N! L+ x* m 变而来。
不在競爭中變坏,就在沉默中變態
您需要登录后才可以回帖 登录 | 注册

本版积分规则

安豆网|Archiver|手机版|中国安防论坛 ( 粤ICP备09063021号 )

GMT+8, 2026-9-5 05:45 , Processed in 0.082310 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表