中国安防论坛

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

ElGamal加密算法

[复制链接]

安防中学生

Rank: 2

积分
147
发表于 2004-11-26 20:04:40 | 显示全部楼层 |阅读模式
ElGamal算法既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题。
/ B1 c) d! r" P. S, T' q0 A5 o7 C 密钥对产生办法。首先选择一个素数p,两个随机数, g 和x,g, x < p, 计算 y = g^x ( mod p ),则其公钥为 y, g 和p。私钥是x。g和p可由一组用户共享。
2 I7 g5 O3 Z" [2 V1 |+ h) }ElGamal用于数字签名。被签信息为M,首先选择一个随机数k, k与 p - 1互质,计算
. y( o8 j9 `. o
" w2 E% G/ j- o- K# v7 o a = g^k ( mod p )
" {3 T" y+ J' y4 g. V2 T9 e; F再用扩展 Euclidean 算法对下面方程求解b:
0 s# m: q* X9 a1 `
% f. k6 J; v( ]8 b9 t3 Y, _+ ]7 V2 GM = xa + kb ( mod p - 1 )
9 P/ }( X$ j9 y) j) U: Y$ X
4 V. P4 X; i6 l8 H) G: @签名就是( a, b )。随机数k须丢弃。
& y. ^! E6 S% S) I9 p( e6 Z验证时要验证下式:
' Q* N* z5 q# m" X3 t0 o4 V3 ?5 ?
^" g" Y7 D. Z7 C5 q: b$ E6 _0 L5 N y^a * a^b ( mod p ) = g^M ( mod p )
! v6 W- u& c$ d8 T8 c- u3 t
7 j: }5 {8 Z$ q9 Z4 A 同时一定要检验是否满足1<= a < p。否则签名容易伪造。
9 r. g+ l$ s) G# @% ^) u* x6 @ElGamal用于加密。被加密信息为M,首先选择一个随机数k,k与 p - 1互质,计算
# o* r, u( [9 ?' n2 }
8 Z" S/ N+ V* b. Aa = g^k ( mod p )
5 ~7 u8 K: t1 D) ub = y^k M ( mod p )
+ C- ]3 t3 Z% M! b) b* n6 U& e) K+ K
_ {$ r8 o$ B8 P
4 n% k: E# K- q2 s) _ ( a, b )为密文,是明文的两倍长。解密时计算
# |& v1 y/ N, r- `8 X
" D. ^* @& a- d! g# Q. a5 GM = b / a^x ( mod p )
) h2 m9 j' I$ h3 ?4 c1 U0 D& \# u/ E2 P
& ~3 k3 F A. `- Z0 W+ _  ElGamal签名的安全性依赖于乘法群(IFp)* 上的离散对数计算。素数p必须足够大,且p-1至少包含一个大素数
8 d! q9 M+ y2 w( C" u, q因子以抵抗Pohlig & Hellman算法的攻击。M一般都应采用信息的HASH值(如SHA算法)。ElGamal的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。D.Bleichenbache“GeneratingElGamal Signatures Without Knowing the Secret Key”中提到了一些攻击方法和对策。ElGamal的一个不足之处是它的密文成倍扩张。
2 v, m2 P p0 `. b1 q, B" v
) R, k& m, {) c3 U W  美国的DSS(Digital Signature Standard)的DSA(Digital Signature Algorithm)算法是经ElGamal算法演
( D0 d0 y2 n! f! v, x 变而来。
不在競爭中變坏,就在沉默中變態
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-19 08:33 , Processed in 0.131616 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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