3.4-公开密码算法-Elgamal
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
范明钰 本科 2019 年 密码学
19
算法分析
D.Bleichenbache“Generating
ElGamal Signatures Without Knowing the Secret Key”中提到了攻击方法和对策 造,应保证d对于p-1的大素数因子不可约
ElGamal的安全性主要依赖于p和d,若选取不当则签名容易伪
a16 1 5 17 6 16 9 7 11 4 4 11 7 9 16 6 17 5 1
a17 a18 1 1 10 1 13 1 5 1 4 1 16 1 11 1 12 1 17 1 2 1 7 1 8 1 3 1 15 1 14 1 6 1 9 1 18 16
离散对数(构造)
对某个a Z* , 若 n ord n (a)= (n)
* 2是Z19 的一个本原根
确定(用户B的)公私钥对: 用户 B 秘密地选择整数 d=10,计算
d mod p 210 mod 19 17
p 19, 2, 17 公钥
10---私钥
范明钰 本科 2019 年 密码学
14
ElGamal密码体制—例子
范明钰 本科 2019 年 密码学
5
a1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
例子: Z 中所有元素的幂次表
a2 a3 1 4 9 16 6 17 11 7 5 5 7 11 17 6 16 9 4 1 1 8 8 7 11 7 1 18 7 12 1 18 12 8 12 11 11 18 a4 1 16 5 9 17 4 7 11 6 6 11 7 4 17 9 5 16 1
例子-2
加密:用户 A 加密发送明文m=11给用户 B,
A 选择一个随机数 d 7, 1 d 19 1 ,并计算
c1 d mod p 27 mod 19 14 c2 m d mod p 11 177 mod 19 17
A 将( c1,c2 ) =(14,17)发送给 B ;
ElGamal算法的安全性基于 在循环群 Z * 上求离散对数问题是困难 p 目前关于离散对数的分析方法有: Shanks算法 Pohlig-Hellman算法 指标计算法 量子计算机可以快速求解离散对数问题,但量子计算机 从理论研究到实际应用,还会有相当长的时间
范明钰 本科 2019 年 密码学
18
则称a是 Z* n 的本原根(本原元)
由前面 Z 19 的幂表可知: 2,3,10,13,14,15均是 Z 19 的本原根
中本原根的存在性: Zn
存在本原根, 当n=2 , 4 , pe , 2pe 时, Zn
这里的p是奇素数。以下我们均假设 n = p
范明钰 本科 2019 年 密码学
公开(非对称)密码算法之 ELGAMAL密码体制
范明钰 信息安全研究中心
三类数学难题—回顾
大整数分解问题(The
Integer Factorization Problem, RSA体制) (The Discrete Logarithm
有限域的乘法群上的离散对数问题
Problem,ElGamal体制)
范明钰 本科 2019 年 密码学
8
离散对数(计算例子)
* 例 Z7 (1, 2, 3, 4, 5, 6)
log3 6 3 log 6 ? 3 3 和 5 都是Z* 的一个生成元。 7 log5 2 4 log5 2 ?
11 1 21 2 ; 2 2 4 ; 23 8 1 31 3 ; 3 2 2 ; 3 3 2 3 6 ; 3 4 6 3 4 ; 3 5 4 3 5 ; 36 5 3 1 41 4 ; 4 2 2 ; 43 2 4 1 51 5 ; 5 2 4 ; 5 3 4 5 6 ; 5 4 6 5 2 ; 5 5 2 5 3 ; 56 3 5 1 61 6 ; 6 2 36 1
ElGamal密码体制
3. 安全性
实用时,素数 p 至少为700位十进制数(2048 bit), 而且要求p-1至少有一个大的素因子。
ElGamal加密算法是一种随机算法,随机数 k 不能暴露, 也不能重用。 假设用同一个k来加密两个消息m1,m2,所得到的密文 分别为(a1,b1)(a2,b2),则b1/b2=m1/m2,故若m1已知,m2 可以很容易地计算出来。
信息有扩张
解密: (xk)((k)d)-1 ≡ xdk×-dk ≡ x mod p
范明钰 本科 2019 年 密码学
22
实现参考
http://www.hackchina.com/cont/11646
范明钰 本科 2019 年 密码学
显然,Z n 中含有 (n)个元素:因为 Z n 对模n的乘法构成群。 由Euler定理,对任意的 a Z* n 有
a ( n ) 1 (mod n)
定义a的(模n)阶 ord n (a) 为:
ord n (a) min m m 1, a m 1(modn)
解密:B 收到密文后( c1,c2 ) =(14,17) , 计算:
d 1 m c2(c1 ) mod p
17 (147 )1 mod 19 17 4 11 mod 19
范明钰 本科 2019 年 密码学
15
加解密计算例子
Biblioteka Baidu选择
p=97 及本原根 a=5 收方选择 秘密钥xB=58 ,计算并发布公钥yB=558=44 (mod 97 ) 若发方要加密 M=3 给收方,发方工作:
7
离散对数(难题)
(模n)离散对数运算
给定 Z 及其一个本原根 p
对 Z* 1 k p 1, 使得 P , 唯一的整数k, k (mod p)
离散指数 计算容易
( k ) k (=log )
离散对数 计算困难
签名算法的安全性主要依赖于乘法群上的离散对数计算。素
数p必须足够大,且p-1至少包含一个大素数因子以抵抗Pohlig & Hellman算法的攻击
明文应采用信息的HASH值(如SHA算法) 美国DSS(Digital
Signature Standard)的DSA(Digital Signature Algorithm)算法是经ElGamal算法演变而来
in 1985 by ElGamal: T. ElGamal, "A Public
Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms", IEEE Trans. Information
Theory, vol IT-31(4), pp469-472, July 1985.
a12 1 11 11 7 11 7 1 1 7 7 1 1 7 11 7 11 11 1
a13 1 3 14 9 17 4 7 8 6 13 11 12 15 2 10 5 16 18
a14 1 6 4 17 9 5 11 7 16 16 7 11 5 9 17 4 6 1
a15 1 12 12 11 7 11 1 18 11 8 1 18 8 12 8 7 7 18
d 1 所以 c2(c1 ) m d ( dk )1(mod p )
m dk ( dk )-1(mod p ) m (mod p )
范明钰 本科 2019 年 密码学
13
ElGamal密码体制—例子
例子-1
确定公共参数:对p=19,有
* Z19 1,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11,12 ,13,14 ,15 ,16 ,17 ,18
范明钰 本科 2019 年 密码学
9
ElGamal 密码体制
1. 体制描述 2. 例子 3. 安全性
范明钰 本科 2019 年 密码学
10
ElGamal 密码体制—描述
1. 体制描述
确定公共参数: 选择大素数p, Z p 是本原根,将 p 和 公开 确定公私钥对: 随机且秘密地选择整数 d , 0 d p 2 ,计算
19
a5 1 13 15 17 9 5 11 12 16 3 7 8 14 10 2 4 6 18
a6 1 7 7 11 7 11 1 1 11 11 1 1 11 7 11 7 7 1
a7 1 14 2 6 16 9 7 8 4 15 11 12 10 3 13 17 5 18
a8 a9 a10 a11 1 1 1 1 9 18 17 15 6 18 16 10 5 1 4 16 4 1 5 6 16 1 6 17 11 1 7 11 7 18 11 12 17 1 9 5 17 18 9 14 7 1 11 7 11 18 7 8 16 18 6 2 4 18 5 13 5 18 4 3 6 1 16 9 9 1 17 4 1 本科 18 20191 18 范明钰 年 密码学
缺点:增加了消息长度(2倍)
范明钰 本科 2019 年 密码学
3
补充--离散对数
运算 构造 难题
范明钰 本科 2019 年 密码学
4
离散对数(运算)
(模n)指数(幂)运算
如下: 对任意整数n, 定义集合 Z n
Zn a 1 a n 1 , gcd( a , n) 1
d mod p
p, , --公开密钥(公钥) d --保密密钥(私钥)
范明钰 本科 2019 年 密码学
11
ElGamal 密码体制--加解密
加密变换:对于任意明文 m Z p ,发方秘密随机地 选取整数 k ,1 k p 1 密文: (c1 ,c2 ) ( k mod p ,m k mod p )
椭圆曲线上的离散对数问题(The
Elliptic Curve Discrete
Logarithm Problem,类似的ElGamal体制)
范明钰 本科 2019 年 密码学
2
2
ElGamal
安全性基于离散对数 是Diffie-Hellman published
key distribution scheme 的变形
首先获得收方的公开密钥 yB=44 选择随机 k=36 计算: K=4436=75 (mod 97 ) 计算密文对: C1 = 536 = 50 (mod 97) C2 = 75.3 (mod 97) = 31 (mod 97)
收方收到
{50,31},收方工作:
计算K=5058=75 (mod 97) 计算 K-1 = 22 (mod 97)
范明钰 本科 2019 年 密码学
20
ELGAMAL签名方案
范明钰 本科 2019 年 密码学
21
ELGAMAL方案小结
选择
一个素数p,p的一个 原根,一个整数d, 令= d,公开 {p,,},保密d.
明文信息x
加密: 秘密选择随 机数k, 计算将(k mod p, xk mod p) 作为密文
, c2 ) Z Z 解密变换:对任意密文 (c1 p p
d 1 明文: m c 2 (c1 ) mod p
范明钰 本科 2019 年 密码学
12
ElGamal密码体制—证明
解密变换的正确性证明:
因为 c1 k(mod p ),
c2 m k(mod p )
k m( d ) (mod p )
计算明文 M = 31·22 = 3 (mod 97)
范明钰 本科 2019 年 密码学
16
ELGAMAL体制---密钥建立
密钥生成
双方选取大素数p及本原元a mod p
收方选秘密密钥 xB
计算 yB = axB mod p
范明钰 本科 2019 年 密码学
17
ElGamal密码体制—分析
3. 安全性