中国安防论坛

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

ElGamal加密算法

[复制链接]

安防中学生

Rank: 2

积分
147
发表于 2004-11-26 20:04:40 | 显示全部楼层 |阅读模式
ElGamal算法既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题。
+ n) [: q D2 Q9 ] 密钥对产生办法。首先选择一个素数p,两个随机数, g 和x,g, x < p, 计算 y = g^x ( mod p ),则其公钥为 y, g 和p。私钥是x。g和p可由一组用户共享。
* ?- @( D, C* \8 J- N1 L' h ElGamal用于数字签名。被签信息为M,首先选择一个随机数k, k与 p - 1互质,计算
0 |, ?2 z! g1 ^/ r) h L) D2 O
) a1 U& r) ^6 q2 C2 D a = g^k ( mod p )
# d2 i# U m4 `7 n. R再用扩展 Euclidean 算法对下面方程求解b:
4 r6 t+ m% ]5 C- }6 ^+ s" x0 W! K
6 X& O1 T3 a7 C! V5 b8 H" J7 b M = xa + kb ( mod p - 1 )
5 u7 v' \ w; ?2 Y% r; r
4 r- g0 T" `* M }签名就是( a, b )。随机数k须丢弃。
4 x3 W! Q3 E* l0 e: j) y% @0 e验证时要验证下式:
8 t) _: |8 [$ g6 W2 t3 m+ d. W
4 R, q7 V w9 [y^a * a^b ( mod p ) = g^M ( mod p )
! y1 e7 [- W- p) k: E
! c( j+ H" L7 \& j2 o同时一定要检验是否满足1<= a < p。否则签名容易伪造。
1 M$ ]$ A2 U8 p6 p% i9 k ElGamal用于加密。被加密信息为M,首先选择一个随机数k,k与 p - 1互质,计算
; m5 `) U$ G6 ]2 l4 y! k
2 ], ]2 |# H2 V5 I3 Q( i a = g^k ( mod p )
* x, u& k& Q0 q# [" G6 s7 v1 D& [4 Y1 [b = y^k M ( mod p )
, n" `8 _/ f3 G' A
$ U- I2 U7 D b$ a* Y& p; K
[4 s9 L8 ]7 s2 P, w+ b, c. C0 T; i ( a, b )为密文,是明文的两倍长。解密时计算
" ] h2 H, B. f( G% r4 W9 H$ Z
$ h9 @& T" _# ~3 I2 e( l. P M = b / a^x ( mod p )
5 c# M8 r8 F; I& P( r
. z7 |- P% i. v! l: u   ElGamal签名的安全性依赖于乘法群(IFp)* 上的离散对数计算。素数p必须足够大,且p-1至少包含一个大素数
B9 L F$ J1 u! C0 W0 w9 \7 m! n因子以抵抗Pohlig & Hellman算法的攻击。M一般都应采用信息的HASH值(如SHA算法)。ElGamal的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。D.Bleichenbache“GeneratingElGamal Signatures Without Knowing the Secret Key”中提到了一些攻击方法和对策。ElGamal的一个不足之处是它的密文成倍扩张。
- D6 H& t3 w; T! n
) [% Q% f& {; g* e$ [' S5 `' ~   美国的DSS(Digital Signature Standard)的DSA(Digital Signature Algorithm)算法是经ElGamal算法演
7 Y5 i0 P1 z" l4 ]$ n变而来。
不在競爭中變坏,就在沉默中變態
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-2-1 12:34 , Processed in 0.394944 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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