24
第第第 第第第第第第第第

第十章 在密码学中的应用

  • Upload
    fiona

  • View
    130

  • Download
    0

Embed Size (px)

DESCRIPTION

第十章 在密码学中的应用. 访问控制服务. 对象认证服务. 保密性服务. 完整性服务. 防抵赖服务. 访问控制技术. 身份鉴别技术. 信息鉴别技术. 加密技术. 引 言. 网络安全体系的五类服务. 被动攻击. 主动攻击. 窃听. 中断. 修改. 伪造. 获取消息 内容. 流量分析. 破坏 可用性. 破坏 完整性. 破坏 真实性. 攻击分类. 威胁密码系统安全的是 攻击者 。 攻击者首先通过监听等手段 截获 密文 。 然后试图通过对密文的 分析 来得到明文。 由于通常加密解密算法是对外公开的,攻击者往往 对密钥更感兴趣 。 - PowerPoint PPT Presentation

Citation preview

Page 1: 第十章 在密码学中的应用

第十章 在密码学中的应用

Page 2: 第十章 在密码学中的应用

网络安全体系的五类服务

访问控制技术身份鉴别技术 加密技术 信息鉴别技术

访问控制服务对象认证服务 保密性服务 完整性服务 防抵赖服务引 言

Page 3: 第十章 在密码学中的应用
Page 4: 第十章 在密码学中的应用

被动攻击窃听

获取消息内容 流量分析

主动攻击

中断 修改 伪造

破坏可用性 破坏完整性 破坏真实性

攻击分类

Page 5: 第十章 在密码学中的应用

威胁密码系统安全的是攻击者。攻击者首先通过监听等手段截获密文。然后试图通过对密文的分析来得到明文。由于通常加密解密算法是对外公开的,攻击者往往对密钥更感兴趣。一旦攻击者获得密钥,他就可以在系统更新密钥之前,利用该密钥解密一系列的密文。

Page 6: 第十章 在密码学中的应用
Page 7: 第十章 在密码学中的应用

RSA :最流行的公钥密码算法,加密和数字签名;ECC :椭圆曲线密码,采用 ElGamal 算法,公钥密码算法,安全性高,密钥量小,灵活性好;DSA :数字签名算法,是数字签名的一部分,公钥密码算法,数字签名。MD5(SHA-1) :数字摘要算法,数字签名,保证消息的完整性。

引 言

Page 8: 第十章 在密码学中的应用

第一节 现代对称密码

现代密码设计准则: Kerchhoff原则:系统的安全性不依赖于对密文或

加密算法的保密,而依赖于密钥。 惟一需要保密的是密钥; --决定了古典密码学与现代密码学。 一个好的密码将融合混淆和扩散

混淆:混淆明文的不同部分; 扩散:对攻击者隐藏一些语言的局部特征; 现代密码将结合换位和代替: 代替密码在混淆上是有效的; 换位密码扩散性较好。

Page 9: 第十章 在密码学中的应用

第一节 现代对称密码

现代密码算法的特点: 只要保证密钥安全,就能保证加密信息的安全。

对称密码算法:很好地融合了混淆和扩散; DES 、 AES 、 IEDA 、 RC6 等

非对称密码算法:基于数学难题; RSA 、 ECC 、 ElGamal 等

Page 10: 第十章 在密码学中的应用

第四节 公钥密码算法

所有的传统密码以及 DES 、 AES 等现代密码都是一种对称算法,即解密密钥等价于加密密钥; 非对称密码算法中,加密密钥和解密密钥是不相同的,因而可以将加密密钥公开,将解密密钥保密。 公钥密码的思想 1976 年被提出; 典型的有: RSA,ElGamal,Knapsnack,ECC 等。 对称密码与公钥密码的特点: (1) 对称密码算法速度快; (2) 非对称密码密钥管理简单。 实际网络应用中,采用非对称密码来交换对称密码算法的密钥。

4.1 概述

Page 11: 第十章 在密码学中的应用

第四节 公钥密码算法

对称密码算法

公钥密码算法 加密

Page 12: 第十章 在密码学中的应用

第四节 公钥密码算法

公钥密码算法 签名

混合加密通信

Page 13: 第十章 在密码学中的应用

第四节 公钥密码算法

4.2 陷门 每个非对称密码算法大都依赖于数论中某些处理过程的不可逆性,称为陷门。 RSA 密码:因子分解难题;np×q 易

难ElGamal :离散对数难题, xe=y mod p ;易: x,e,py 难: x,y,pe

Knapsnack 密码:背包难题; x=a1x1+…anxn mod p, a1,…,an 已知。

易: x1,…,xnx 难: x x1,…,xn

ECC :椭圆曲线上的离散对数难题, aP=Q ;易: a,PQ 难: P,Qa

Page 14: 第十章 在密码学中的应用

第四节 公钥密码算法

4.3 RSA 算法 由 Rivest 、 Shamir 和 Adlemar 开发,既能加密又可签名,易理解和实现,因而最流行。

密钥的生成: (1) 选择两个大素数 p 和 q ,计算: n=pq 以及 (n)=(p-1)×(q-1) ; 例如: p=11,q=17; n=187, (n)=10×16=160

(2) 选择随机数 1<e<(n),gcd(e,(n))=1 ,计算: d=e-1 mod (n) ; 例如: e=7, 则 d=23

1.RSA 算法过程

Page 15: 第十章 在密码学中的应用

第四节 公钥密码算法

(3) 则公钥为 (e,n) ,私钥 (d,n) ; 例如:公钥为 (7,187); 私钥为 (23,187)

加密 m : c=me mod n

解密 c : m=cd mod n

RSA 比较慢,一般选 e 为 3,17,65537 等等。公钥私钥的关系: d=e-1 mod (n) ; 已知 e 和 n ,要得到 d ,需要知道 (n) ,由

(n) 的计算公式 (n)=(p-1)×(q-1) 可知需要知道 n 的因子分解。当 n 很大时,这是一个难题。

Page 16: 第十章 在密码学中的应用

第四节 公钥密码算法

Bob 的公钥为 (7,187) ,私钥为 (23,187) ; Alice 要将保险柜密码 88 发送 Bob 。

知道 7,187, 不能得到 23 。

密码分析

公共网络Alice Bob

88加密密钥7,187

887 mod 187=11

11

1123 mod 187=88

解密密钥23

Eve

2. 举例

Page 17: 第十章 在密码学中的应用

第四节 公钥密码算法

(1) 欧拉定理:如果 gcd(x,n)=1 ,则有: x(n)=1 mod n (2) 明文 x 与模数 n 要互素,不互素的概率为:

( 1)( 1) 1 1 11 p qpq p q pq

(3)e,d 必须与 (n) 互素; (4) 具有形式为 n=pq 的整数称为 Blum 整数。 其中 p 和 q 都是模 4 同余 3 的素数。

3. 可解性分析

Page 18: 第十章 在密码学中的应用

第四节 公钥密码算法

依赖于将整数 n 分解为素因子的难度。EDI 攻击标准使用的 RSA 算法中规定 n 的长度为512 至 1024 比特位之间,且为 128 的倍数。国际数字签名标准 ISO/IEC 9796 中规定 n 的长度位 512 比特位。从安全性考虑, p 与 q 必为足够大的素数,使 n的分解无法在多项式时间内完成。要求 n 至少要有 1024 或者 2048 比特 ( 十进制的 308 位或 616位 ) 。

4. 安全性分析

Page 19: 第十章 在密码学中的应用

第四节 公钥密码算法

1985 年发表,既可用于数字签名又用于加密。其安全性依赖于离散对数难题。 离散对数问题 DLP :给定素数 p , ZnX 的一个原根

b 和一个元素 c 。求解 x ,使得 bx=c mod p 。 1. 描述 选取素数 p>10150 ,一个模 p 的原根 g 以及随机整数 x(1<x<p) ,计算 y=gx mod p ,则 公钥为 (y,g,p) ,私钥为 x

4.4 ElGamal 算法

2.ElGamal 加密消息 m 选择随机数 k ,得到密文对 (a,b) 为: (a=gk mod p, b=m·yk mod p) 解密消息: b·a-x mod p=m·yk·(gk)-x mod p=m

Page 20: 第十章 在密码学中的应用

第四节 公钥密码算法

(1)Bob 选择随机数 k=4 ,计算得到的密文: a=gk mod p=24 mod 11=5 b=m·yk mod p=3·54 mod 11=5 (2)Alice 对收到的密文 (5,5) 解密: b·a-x mod p=5·5-4 mod 11=3

选 p=11,g=2, 私钥 x=4, 则公钥 y=gx mod p=5Bob 要将消息 m=3 传送给 Alice 。 3. 举例

Page 21: 第十章 在密码学中的应用

第四节 公钥密码算法

第一个公钥算法,由 Ralph Merkle 和Martin

Hellman 开发,只能用于加密。 1. 描述 b=a1x1+a2x2+…+anxn

明文分组长度为 n ,消息为 x1~xn ,密文为b 。

举例 1 :明文: 1 1 1 0 0 1 背包: 1 5 6 11 14 20 密文: b=1+5+6+20=32 解密: 32=1x1+5x2+6x3+11x4+14x5

+20x6

奥妙在于背包问题有两种: 普通背包:难解;超递增背包:易解。

4.5 Knapsnack 算法

26 次测试

Page 22: 第十章 在密码学中的应用

第四节 公钥密码算法

超递增背包: a1+a2+…+ai<ai+1

于是存在一个较简单的方法解决 Knapsnack 问题。 如果 b<an ,则 an 不可能出现在大小为 b 的背包中; 如果 b≥an ,则 an 必须出现在大小为 b 的背包中。 举例: 70=2x1+3x2+6x3+13x4+27x5+52x6

问题:授权者能解密,非授权者亦可。 解决:将超增长背包转换为普通背包。

Page 23: 第十章 在密码学中的应用

第四节 公钥密码算法

2.Knapsnack 算法过程 (1) 密钥的生成: 选择一个超递增 (a1,…,an)、整数 m(m>a1+…+an, gcd(ai,m)=1) 以及 t(gcd(t,m)=1) ; 计算: ci=t×ai mod m 则:背包序列 (c1,c2,…,cn) 为公钥; 私钥为 (a1,…,an) 和 t 。 (2) 加密: 加密 n 位的消息 x=(x1,…,xn) ,得到密文: b=c1x1+c2x2+…+cnxn

(3) 解密: t-1×b= t-1×(c1x1+c2x2+…+cnxn) =a1x1+a2x2+…+anxn

Page 24: 第十章 在密码学中的应用

第四节 公钥密码算法

3. 举例: 选 m=105 , t=31 ,则 {2,3,6,13,27,52} {62,93,81,88,102,37} 加密消息 110101 得到密文 b=280 解密消息: 计算 280×31-1%105=70 2x1+3x2+6x3+13x4+27x5+52x6=70 1 1 0 1 0 1