1 / 24

第十章 在密码学中的应用

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

fiona
Download Presentation

第十章 在密码学中的应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 访问控制服务 对象认证服务 保密性服务 完整性服务 防抵赖服务 访问控制技术 身份鉴别技术 信息鉴别技术 加密技术 引 言 网络安全体系的五类服务

  3. 被动攻击 主动攻击 窃听 中断 修改 伪造 获取消息 内容 流量分析 破坏 可用性 破坏 完整性 破坏 真实性 攻击分类

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

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

  6. 第一节 现代对称密码 • 现代密码设计准则: • Kerchhoff原则:系统的安全性不依赖于对密文或 • 加密算法的保密,而依赖于密钥。 • 惟一需要保密的是密钥; • --决定了古典密码学与现代密码学。 • 一个好的密码将融合混淆和扩散 • 混淆:混淆明文的不同部分; • 扩散:对攻击者隐藏一些语言的局部特征; • 现代密码将结合换位和代替: • 代替密码在混淆上是有效的; • 换位密码扩散性较好。

  7. 第一节 现代对称密码 现代密码算法的特点: 只要保证密钥安全,就能保证加密信息的安全。 对称密码算法:很好地融合了混淆和扩散; DES、AES、IEDA、RC6等 非对称密码算法:基于数学难题; RSA、ECC、ElGamal等

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

  9. 第四节 公钥密码算法 对称密码算法 公钥密码算法 加密

  10. 第四节 公钥密码算法 公钥密码算法 签名 混合加密通信

  11. p×q n 难 ElGamal:离散对数难题,xe=y mod p; 难:x,y,pe 易:x,e,py Knapsnack密码:背包难题; x=a1x1+…anxn mod p, a1,…,an已知。 易:x1,…,xnx 难:x x1,…,xn 第四节 公钥密码算法 4.2 陷门 每个非对称密码算法大都依赖于数论中某些处理 过程的不可逆性,称为陷门。 RSA密码:因子分解难题; ECC:椭圆曲线上的离散对数难题,aP=Q; 难:P,Qa 易:a,PQ

  12. 第四节 公钥密码算法 4.3 RSA算法 由Rivest、Shamir和Adlemar开发,既能加密 又可签名,易理解和实现,因而最流行。 1.RSA算法过程 密钥的生成: (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

  13. 第四节 公钥密码算法 (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很大时,这是一个难题。

  14. 加密 密钥 解密 密钥 23 7,187 知道7,187,不能得到23。 第四节 公钥密码算法 2.举例 Bob的公钥为(7,187),私钥为(23,187); Alice要将保险柜密码88发送Bob。 11 88 公共网络 Alice Bob 887 mod 187=11 1123 mod 187=88 Eve 密码分析

  15. 第四节 公钥密码算法 3.可解性分析 (1)欧拉定理:如果gcd(x,n)=1,则有: x(n)=1 mod n (2)明文x与模数n要互素,不互素的概率为: (3)e,d必须与(n)互素; (4)具有形式为n=pq的整数称为Blum整数。 其中p和q都是模4同余3的素数。

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

  17. 第四节 公钥密码算法 4.4 ElGamal算法 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 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

  18. 第四节 公钥密码算法 3.举例 选p=11,g=2,私钥x=4,则公钥y=gx mod p=5 Bob要将消息m=3传送给Alice。 (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

  19. 第四节 公钥密码算法 4.5 Knapsnack算法 第一个公钥算法,由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 奥妙在于背包问题有两种: 普通背包:难解;超递增背包:易解。 26次测试

  20. 第四节 公钥密码算法 超递增背包: a1+a2+…+ai<ai+1 于是存在一个较简单的方法解决Knapsnack问题。 如果b<an,则an不可能出现在大小为b的背包中; 如果b≥an,则an必须出现在大小为b的背包中。 举例: 70=2x1+3x2+6x3+13x4+27x5+52x6 问题:授权者能解密,非授权者亦可。 解决:将超增长背包转换为普通背包。

  21. 第四节 公钥密码算法 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

  22. 第四节 公钥密码算法 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

More Related