中国安防论坛

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

ElGamal加密算法

[复制链接]

安防中学生

Rank: 2

积分
147
发表于 2004-11-26 20:04:40 | 显示全部楼层 |阅读模式
ElGamal算法既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题。
* r2 p- w: r. v# f密钥对产生办法。首先选择一个素数p,两个随机数, g 和x,g, x < p, 计算 y = g^x ( mod p ),则其公钥为 y, g 和p。私钥是x。g和p可由一组用户共享。
! o4 J/ f. p$ u8 S- q0 k% b9 h6 dElGamal用于数字签名。被签信息为M,首先选择一个随机数k, k与 p - 1互质,计算
, n; J9 ~: p ~7 r- q% u
) \( o l* h' N( ~' W' C a = g^k ( mod p )
+ o6 s9 J' d# ?' [- T0 b6 j( `再用扩展 Euclidean 算法对下面方程求解b:
% n- ?9 k) x" w0 a4 t1 J7 }" l; U
' d" V7 W8 v7 x* L M = xa + kb ( mod p - 1 )
' i' g+ S( M D7 m+ C U9 s) k
3 ~- P" Q, N* K+ h* l3 W( J 签名就是( a, b )。随机数k须丢弃。
& V0 {5 R# c( ~! W G验证时要验证下式:
9 {/ I( \9 X$ v7 N2 d6 m9 y" Z3 ~
3 X6 L* k/ W3 U) D0 F7 P" [ y^a * a^b ( mod p ) = g^M ( mod p )
) `7 H6 U' {; R& h! N, f8 v
2 O( e0 p+ q' i9 e7 g! R 同时一定要检验是否满足1<= a < p。否则签名容易伪造。
: z3 |; F" Z2 D! y# e ElGamal用于加密。被加密信息为M,首先选择一个随机数k,k与 p - 1互质,计算
( c8 S/ o; G( l8 B
( k. N0 _! Y7 c- qa = g^k ( mod p )
. L7 ~: B8 {8 C4 bb = y^k M ( mod p )
) x* p/ e8 Q1 z/ M5 }9 v5 a/ E
& `9 ]# B. c: E* b& H/ I
7 ~" _ C& A$ P3 C" e/ `; F0 | ( a, b )为密文,是明文的两倍长。解密时计算
_" p5 M3 s' b
+ L. @) M1 v6 Q: }; g# l M = b / a^x ( mod p )
+ n* G6 h# b) o( u
1 @. o; r, V# E& e6 B$ `/ J9 J   ElGamal签名的安全性依赖于乘法群(IFp)* 上的离散对数计算。素数p必须足够大,且p-1至少包含一个大素数
2 r- T5 N& T+ N6 ^* |" |3 y; T因子以抵抗Pohlig & Hellman算法的攻击。M一般都应采用信息的HASH值(如SHA算法)。ElGamal的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。D.Bleichenbache“GeneratingElGamal Signatures Without Knowing the Secret Key”中提到了一些攻击方法和对策。ElGamal的一个不足之处是它的密文成倍扩张。
( s7 p q a6 q, m: N% h
5 P) m: f/ ~0 G  美国的DSS(Digital Signature Standard)的DSA(Digital Signature Algorithm)算法是经ElGamal算法演
8 {4 j- u9 Y8 N6 N, ^+ G3 F; S; Z变而来。
不在競爭中變坏,就在沉默中變態
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-20 13:34 , Processed in 0.077346 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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