中国安防论坛

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

ElGamal加密算法

[复制链接]

安防中学生

Rank: 2

积分
147
发表于 2004-11-26 20:04:40 | 显示全部楼层 |阅读模式
ElGamal算法既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题。
1 K9 ^; B$ H, n, D密钥对产生办法。首先选择一个素数p,两个随机数, g 和x,g, x < p, 计算 y = g^x ( mod p ),则其公钥为 y, g 和p。私钥是x。g和p可由一组用户共享。
/ f! [ y! K6 l0 T+ I, K9 U3 V4 i& d ElGamal用于数字签名。被签信息为M,首先选择一个随机数k, k与 p - 1互质,计算
/ e3 Z/ t3 M$ a# N* V
. j6 f9 f4 N) E1 sa = g^k ( mod p )
# v$ z4 B: ~3 |& m& c再用扩展 Euclidean 算法对下面方程求解b:
3 o4 I$ w m8 h7 U3 d/ }$ U
J$ U6 Y3 k, Z4 Y/ d M = xa + kb ( mod p - 1 )
' I( M9 |0 W6 i: A$ q" r
, L6 U1 h9 R* u' \6 ]0 F8 B 签名就是( a, b )。随机数k须丢弃。
" L/ B+ b! R! Z& Y$ n8 ] 验证时要验证下式:
. l, A9 H+ d) d$ y1 w* Q( F. `' U
/ ]& o; T- {& X1 c* b# u S' u y^a * a^b ( mod p ) = g^M ( mod p )
6 Q' _3 ^6 C/ ?( H$ M( J; h
! V8 x( e1 l' i# C8 N! F# v" v 同时一定要检验是否满足1<= a < p。否则签名容易伪造。
1 X) O* C, ?0 o. T& rElGamal用于加密。被加密信息为M,首先选择一个随机数k,k与 p - 1互质,计算
2 l5 a# R( @) R8 ?6 h! @8 I
, ?- V/ I# M; j* Y' U+ `* b a = g^k ( mod p )
+ M0 J3 G9 e9 b9 k( t6 |# \ K b = y^k M ( mod p )
9 F3 I2 t* p+ ~" ]6 z8 N6 f
$ v* Y- o* Y/ G; e' m' m
X: j7 S! S" M3 h S7 D H( a, b )为密文,是明文的两倍长。解密时计算
) @9 h, z l) D) M
# A( a& ~' W3 A/ mM = b / a^x ( mod p )
1 A" }) o& W0 P% D( u* n
& [4 ?- F1 n. ^+ e   ElGamal签名的安全性依赖于乘法群(IFp)* 上的离散对数计算。素数p必须足够大,且p-1至少包含一个大素数
0 ?( W( [! f; U; x* h因子以抵抗Pohlig & Hellman算法的攻击。M一般都应采用信息的HASH值(如SHA算法)。ElGamal的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。D.Bleichenbache“GeneratingElGamal Signatures Without Knowing the Secret Key”中提到了一些攻击方法和对策。ElGamal的一个不足之处是它的密文成倍扩张。
T' {) \ `& C( N; I* K9 D B% z
2 J- I7 ]; j! V0 s( P- p8 Q" d   美国的DSS(Digital Signature Standard)的DSA(Digital Signature Algorithm)算法是经ElGamal算法演
9 m0 m5 z- A$ D3 H% O! @, m: d, i 变而来。
不在競爭中變坏,就在沉默中變態
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-2 22:36 , Processed in 0.054326 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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