240 likes | 405 Views
第十章 在密码学中的应用. 访问控制服务. 对象认证服务. 保密性服务. 完整性服务. 防抵赖服务. 访问控制技术. 身份鉴别技术. 信息鉴别技术. 加密技术. 引 言. 网络安全体系的五类服务. 被动攻击. 主动攻击. 窃听. 中断. 修改. 伪造. 获取消息 内容. 流量分析. 破坏 可用性. 破坏 完整性. 破坏 真实性. 攻击分类. 威胁密码系统安全的是 攻击者 。 攻击者首先通过监听等手段 截获 密文 。 然后试图通过对密文的 分析 来得到明文。 由于通常加密解密算法是对外公开的,攻击者往往 对密钥更感兴趣 。
E N D
访问控制服务 对象认证服务 保密性服务 完整性服务 防抵赖服务 访问控制技术 身份鉴别技术 信息鉴别技术 加密技术 引 言 网络安全体系的五类服务
被动攻击 主动攻击 窃听 中断 修改 伪造 获取消息 内容 流量分析 破坏 可用性 破坏 完整性 破坏 真实性 攻击分类
威胁密码系统安全的是攻击者。 • 攻击者首先通过监听等手段截获密文。 • 然后试图通过对密文的分析来得到明文。 • 由于通常加密解密算法是对外公开的,攻击者往往对密钥更感兴趣。 • 一旦攻击者获得密钥,他就可以在系统更新密钥之前,利用该密钥解密一系列的密文。
引 言 RSA:最流行的公钥密码算法,加密和数字签名; ECC:椭圆曲线密码,采用ElGamal算法,公钥密码算法,安全性高,密钥量小,灵活性好; DSA:数字签名算法,是数字签名的一部分,公钥密码算法,数字签名。 MD5(SHA-1):数字摘要算法,数字签名,保证消息的完整性。
第一节 现代对称密码 • 现代密码设计准则: • Kerchhoff原则:系统的安全性不依赖于对密文或 • 加密算法的保密,而依赖于密钥。 • 惟一需要保密的是密钥; • --决定了古典密码学与现代密码学。 • 一个好的密码将融合混淆和扩散 • 混淆:混淆明文的不同部分; • 扩散:对攻击者隐藏一些语言的局部特征; • 现代密码将结合换位和代替: • 代替密码在混淆上是有效的; • 换位密码扩散性较好。
第一节 现代对称密码 现代密码算法的特点: 只要保证密钥安全,就能保证加密信息的安全。 对称密码算法:很好地融合了混淆和扩散; DES、AES、IEDA、RC6等 非对称密码算法:基于数学难题; RSA、ECC、ElGamal等
第四节 公钥密码算法 4.1 概述 所有的传统密码以及DES、AES等现代密码 都是一种对称算法,即解密密钥等价于加密密钥; 非对称密码算法中,加密密钥和解密密钥是不相 同的,因而可以将加密密钥公开,将解密密钥保密。 公钥密码的思想1976年被提出; 典型的有:RSA,ElGamal,Knapsnack,ECC等。 对称密码与公钥密码的特点: (1)对称密码算法速度快; (2)非对称密码密钥管理简单。 实际网络应用中,采用非对称密码来交换对称密 码算法的密钥。
第四节 公钥密码算法 对称密码算法 公钥密码算法 加密
第四节 公钥密码算法 公钥密码算法 签名 混合加密通信
易 p×q n 难 ElGamal:离散对数难题,xe=y mod p; 难:x,y,pe 易:x,e,py Knapsnack密码:背包难题; x=a1x1+…anxn mod p, a1,…,an已知。 易:x1,…,xnx 难:x x1,…,xn 第四节 公钥密码算法 4.2 陷门 每个非对称密码算法大都依赖于数论中某些处理 过程的不可逆性,称为陷门。 RSA密码:因子分解难题; ECC:椭圆曲线上的离散对数难题,aP=Q; 难:P,Qa 易:a,PQ
第四节 公钥密码算法 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
第四节 公钥密码算法 (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很大时,这是一个难题。
加密 密钥 解密 密钥 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 密码分析
第四节 公钥密码算法 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的素数。
第四节 公钥密码算法 4.安全性分析 依赖于将整数n分解为素因子的难度。 EDI攻击标准使用的RSA算法中规定n的长度为512至1024比特位之间,且为128的倍数。 国际数字签名标准ISO/IEC 9796中规定n的长度位512比特位。 从安全性考虑,p与q必为足够大的素数,使n的分解无法在多项式时间内完成。要求n至少要有1024或者2048比特(十进制的308位或616位)。
第四节 公钥密码算法 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
第四节 公钥密码算法 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
第四节 公钥密码算法 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次测试
第四节 公钥密码算法 超递增背包: a1+a2+…+ai<ai+1 于是存在一个较简单的方法解决Knapsnack问题。 如果b<an,则an不可能出现在大小为b的背包中; 如果b≥an,则an必须出现在大小为b的背包中。 举例: 70=2x1+3x2+6x3+13x4+27x5+52x6 问题:授权者能解密,非授权者亦可。 解决:将超增长背包转换为普通背包。
第四节 公钥密码算法 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
第四节 公钥密码算法 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