中国安防论坛

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

ElGamal加密算法

[复制链接]

安防中学生

Rank: 2

积分
147
发表于 2004-11-26 20:04:40 | 显示全部楼层 |阅读模式
ElGamal算法既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题。
( l! C3 ?0 m- e% m4 n8 F" D( N 密钥对产生办法。首先选择一个素数p,两个随机数, g 和x,g, x < p, 计算 y = g^x ( mod p ),则其公钥为 y, g 和p。私钥是x。g和p可由一组用户共享。
+ \0 A- ]( l4 w2 Q ElGamal用于数字签名。被签信息为M,首先选择一个随机数k, k与 p - 1互质,计算
9 M4 C. w: X) h+ A
- J. { J5 C5 `5 Ja = g^k ( mod p )
+ o; x& U2 X$ ~9 {+ ~ 再用扩展 Euclidean 算法对下面方程求解b:
, e3 k8 t# d) G3 ^3 p5 e
7 s4 l1 x0 _. e# b7 X" q* E M = xa + kb ( mod p - 1 )
1 a1 @/ f, l1 s/ z! L4 K5 {) l
9 i4 }6 F. m; r! I. D/ y) Z7 B签名就是( a, b )。随机数k须丢弃。
4 C3 M/ [9 w/ L 验证时要验证下式:
2 d/ z- z* K- t( z9 |$ Z# s
8 Y1 ~' a2 @% ]9 H. E1 _ y^a * a^b ( mod p ) = g^M ( mod p )
+ N) J1 O$ o+ l: Q, d2 D
: H+ J, ^2 N/ U) ^6 x1 l' I同时一定要检验是否满足1<= a < p。否则签名容易伪造。
) k' A2 V9 e8 s1 g' v- o+ v$ Y! bElGamal用于加密。被加密信息为M,首先选择一个随机数k,k与 p - 1互质,计算
# L [& K& E* L
: A. P/ v8 X: u( w; v' r7 ^& p a = g^k ( mod p )
* d+ G1 z( P( I; B/ l/ ~% H* C b = y^k M ( mod p )
3 f" k6 ~# u( M' U3 h7 t
5 ~8 n6 Z: u7 Q4 i: x
6 p4 X" @2 U- C2 X w ( a, b )为密文,是明文的两倍长。解密时计算
2 Y* o2 r# ~6 E8 E* l0 a6 M, _4 H
) k) N8 s, R' p* ^3 F) ] M = b / a^x ( mod p )
7 a9 J( R$ e$ J* y( A5 P2 J" ~
. Q6 k) [' j* E$ y' D( {8 p2 N- J; i  ElGamal签名的安全性依赖于乘法群(IFp)* 上的离散对数计算。素数p必须足够大,且p-1至少包含一个大素数
: l' w2 `1 ^2 ~" ]3 w9 F4 c 因子以抵抗Pohlig & Hellman算法的攻击。M一般都应采用信息的HASH值(如SHA算法)。ElGamal的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。D.Bleichenbache“GeneratingElGamal Signatures Without Knowing the Secret Key”中提到了一些攻击方法和对策。ElGamal的一个不足之处是它的密文成倍扩张。
$ _& _/ H+ J# `( |
! y6 M( ^) p v3 {4 r# `   美国的DSS(Digital Signature Standard)的DSA(Digital Signature Algorithm)算法是经ElGamal算法演
5 }# S+ V) r! L1 ?7 Q7 n2 V变而来。
不在競爭中變坏,就在沉默中變態
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-7 05:10 , Processed in 0.060006 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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