中国安防论坛

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

ElGamal加密算法

[复制链接]

安防中学生

Rank: 2

积分
147
发表于 2004-11-26 20:04:40 | 显示全部楼层 |阅读模式
ElGamal算法既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题。
: A2 y! R+ U8 l1 d! [密钥对产生办法。首先选择一个素数p,两个随机数, g 和x,g, x < p, 计算 y = g^x ( mod p ),则其公钥为 y, g 和p。私钥是x。g和p可由一组用户共享。
2 U. e) M' s: N6 Q6 B( L- r8 I ElGamal用于数字签名。被签信息为M,首先选择一个随机数k, k与 p - 1互质,计算
) j' h9 Y0 j6 V) a) i
3 q5 _5 f* L b- W* J: Xa = g^k ( mod p )
3 x/ s# ]' |& p( e. E+ r( a: ? 再用扩展 Euclidean 算法对下面方程求解b:
' }" h# ?: Y# W6 S) b4 s6 f
2 R3 z7 G6 H) |, D1 V7 T M = xa + kb ( mod p - 1 )
$ }, m) | m. Y( \6 O! h
3 l+ f7 \- Z) \( N8 v f签名就是( a, b )。随机数k须丢弃。
8 B. z1 F; W" f1 c3 U0 A验证时要验证下式:
" w- d6 J$ Z& T c3 d
, Z/ {8 U# }( o5 G$ P4 y6 H( Z y^a * a^b ( mod p ) = g^M ( mod p )
/ X. [) ^6 T3 @. s8 P
$ \) O8 }* W) W$ p同时一定要检验是否满足1<= a < p。否则签名容易伪造。
# ^2 Q# N8 k, l4 \5 k* r5 g, Q ElGamal用于加密。被加密信息为M,首先选择一个随机数k,k与 p - 1互质,计算
/ g! x2 O7 Z/ F9 ~/ V3 d. [; F" ~. v; g/ A
/ ] g2 B( Z. D0 @: C a = g^k ( mod p )
1 p# k, M) }! t b = y^k M ( mod p )
; F/ T+ ^2 Z/ R) J/ k, \
4 D. H6 l; f6 W& s9 z/ C$ F7 g( T w, ~
U7 F! b$ x* _+ t& t L- L- A ( a, b )为密文,是明文的两倍长。解密时计算
7 ^: K1 y1 `0 g# s( A
. r* a+ a$ ?, Z& OM = b / a^x ( mod p )
& T! b( H& I( K: e) C
8 \0 t! T# h! O   ElGamal签名的安全性依赖于乘法群(IFp)* 上的离散对数计算。素数p必须足够大,且p-1至少包含一个大素数
' j6 L1 Z8 a. o" `8 m0 d: i因子以抵抗Pohlig & Hellman算法的攻击。M一般都应采用信息的HASH值(如SHA算法)。ElGamal的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。D.Bleichenbache“GeneratingElGamal Signatures Without Knowing the Secret Key”中提到了一些攻击方法和对策。ElGamal的一个不足之处是它的密文成倍扩张。
) D |2 \0 V) q4 I* R
" y1 i; K& a5 B  美国的DSS(Digital Signature Standard)的DSA(Digital Signature Algorithm)算法是经ElGamal算法演
% A/ ^# y: |5 v8 B. H变而来。
不在競爭中變坏,就在沉默中變態
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-2-21 18:22 , Processed in 0.065158 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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