中国安防论坛

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

ElGamal加密算法

[复制链接]

安防中学生

Rank: 2

积分
147
发表于 2004-11-26 20:04:40 | 显示全部楼层 |阅读模式
ElGamal算法既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题。
u( m) _- I" G- {3 K [3 ^ 密钥对产生办法。首先选择一个素数p,两个随机数, g 和x,g, x < p, 计算 y = g^x ( mod p ),则其公钥为 y, g 和p。私钥是x。g和p可由一组用户共享。
7 l4 }' z" B% l, O& J ElGamal用于数字签名。被签信息为M,首先选择一个随机数k, k与 p - 1互质,计算
- [4 K, h/ Y1 a" w3 s% Y! B
2 [) i& u4 \) `+ r9 S0 |% l; h a = g^k ( mod p )
! E2 D, z& d$ B; G+ K* n* U5 F 再用扩展 Euclidean 算法对下面方程求解b:
* h8 G4 d6 ~! s/ D+ m3 c& ~( {
0 N# [* O* a9 y6 n `, GM = xa + kb ( mod p - 1 )
" _) n1 Q- ~1 _# d$ w8 u; r
& q1 J- U+ f+ M6 j% B. V 签名就是( a, b )。随机数k须丢弃。
1 H6 p* N8 w0 s* p% L7 G- ^验证时要验证下式:
% G( W; V9 r. Y1 h8 s+ \3 z
4 k) V4 F5 w3 B9 |; z5 n7 Hy^a * a^b ( mod p ) = g^M ( mod p )
4 h$ l+ M4 |7 I, ]7 f9 y X
+ A8 B/ g, I7 R }6 | 同时一定要检验是否满足1<= a < p。否则签名容易伪造。
9 B+ z) ]# x/ i. o. B8 f ElGamal用于加密。被加密信息为M,首先选择一个随机数k,k与 p - 1互质,计算
3 ]5 S+ q. e; k0 A; |1 Z" A i
1 Y% [ X! H1 B: B* E" p a = g^k ( mod p )
' \. ^2 S7 k: K2 @ c wb = y^k M ( mod p )
) f1 x& m4 N/ e U, G
: ]$ w4 f" `* V. W( |0 A
5 }& v: s- S1 l0 X% o, W( a, b )为密文,是明文的两倍长。解密时计算
* `7 \' d+ K" i, o7 |6 a
) o6 z# B4 @' Z6 T K# x" A: t M = b / a^x ( mod p )
. T4 F' x' i2 C: P- F
. s* s/ `- K1 H- i" w, d   ElGamal签名的安全性依赖于乘法群(IFp)* 上的离散对数计算。素数p必须足够大,且p-1至少包含一个大素数
- a/ q+ z+ Z& W& j因子以抵抗Pohlig & Hellman算法的攻击。M一般都应采用信息的HASH值(如SHA算法)。ElGamal的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。D.Bleichenbache“GeneratingElGamal Signatures Without Knowing the Secret Key”中提到了一些攻击方法和对策。ElGamal的一个不足之处是它的密文成倍扩张。
" a1 _6 ?0 t1 w6 e4 d1 N
/ ~" X8 G4 ?+ X5 ?8 e  美国的DSS(Digital Signature Standard)的DSA(Digital Signature Algorithm)算法是经ElGamal算法演
4 B+ Z/ L" X, |' g: U6 E/ d1 u 变而来。
不在競爭中變坏,就在沉默中變態
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-21 13:02 , Processed in 0.053967 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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