资源预览内容
第1页 / 共183页
第2页 / 共183页
第3页 / 共183页
第4页 / 共183页
第5页 / 共183页
第6页 / 共183页
第7页 / 共183页
第8页 / 共183页
第9页 / 共183页
第10页 / 共183页
亲,该文档总共183页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
现代密码学现代密码学中南大学信息科学与工程学院计算机系 段桂华2011年年2月月网络通信的困境网络通信的困境引 言中南大学信息科学与工程学院计算机系 段桂华2011年年2月月信息信息完整完整用户用户认证认证网站网站认证认证密钥密钥管理管理不可不可抵赖抵赖数据数据安全安全我们要保护什么呢?我们要保护什么呢?引 言中南大学信息科学与工程学院计算机系 段桂华2011年年2月月网络安全体系的五类服务网络安全体系的五类服务访问控制技术身份鉴别技术加密技术信息鉴别技术访问控制服务对象认证服务保密性服务完整性服务防抵赖服务引 言中南大学信息科学与工程学院计算机系 段桂华2011年年2月月网络安全体系的五类服务网络安全体系的五类服务访问控制服务访问控制服务:根据实体身份决定其访问权限根据实体身份决定其访问权限;身份鉴别服务身份鉴别服务:消息来源确认消息来源确认,防假冒防假冒,证明你证明你 是否就是你所声明的你是否就是你所声明的你;保密性服务保密性服务:利用加密技术将消息密利用加密技术将消息密,非授权非授权 人无法识别信息人无法识别信息;数据完整性服务数据完整性服务:防止消息被篡改防止消息被篡改,证明消息与证明消息与 过程的正确性过程的正确性;防抵赖服务防抵赖服务:阻止你或其他主体对所作所为的进阻止你或其他主体对所作所为的进 行否认的服务行否认的服务,可确认可确认,无法抵赖无法抵赖.引 言中南大学信息科学与工程学院计算机系 段桂华2011年年2月月引 言解决方法解决方法:加密加密如何实现保密性?如何实现保密性?密码分析密码分析公共网络公共网络AliceBob加密加密密钥密钥解密解密密钥密钥Eve中南大学信息科学与工程学院计算机系 段桂华2011年年2月月引 言解决方法解决方法:数字摘要数字摘要如何实现完整性?如何实现完整性?无法篡改无法篡改z消息篡改消息篡改公共网络公共网络AliceBobm,zm,zz=hk(m)y=hk(m)Eve如果如果yzm被篡改被篡改中南大学信息科学与工程学院计算机系 段桂华2011年年2月月引 言解决方法解决方法:数字签名数字签名如何实现不可否认性?如何实现不可否认性?否认否认公共网络公共网络AliceBobTrent谁是正确的?谁是正确的?举报举报中南大学信息科学与工程学院计算机系 段桂华2011年年2月月引 言解决方法解决方法:密码技术密码技术公共网络公共网络AliceBob假冒假冒Eve 身份鉴别身份鉴别:就是确认实体是它所声明的就是确认实体是它所声明的,身份鉴别服务身份鉴别服务提供关于某个实体身份的保证提供关于某个实体身份的保证,以对抗假冒攻击以对抗假冒攻击.如何鉴别通信对象的身份?如何鉴别通信对象的身份?中南大学信息科学与工程学院计算机系 段桂华2011年年2月月本课程的相关知识点本课程的相关知识点常用的密码算法常用的密码算法: 密码技术是信息安全的核心技术密码技术是信息安全的核心技术; 需要掌握一些经典的密码算法需要掌握一些经典的密码算法.相关的安全协议相关的安全协议: 保密通信保密通信,消息认证与身份鉴别消息认证与身份鉴别; 加密模式加密模式,密钥协商与密钥管理密钥协商与密钥管理.参考教材参考教材: (1) 应用加密算法与认证技术应用加密算法与认证技术,机械工业出版社机械工业出版社, Paul Garrett著著,吴世忠等译吴世忠等译; (2) 现代密码学现代密码学,清华大学出版社清华大学出版社,杨波主编杨波主编.引 言中南大学信息科学与工程学院计算机系 段桂华2011年年2月月经典的经典的现代密码现代密码算法有算法有:DES:数据加密标准数据加密标准,对称密码对称密码;IDEA:国际数据加密标准国际数据加密标准,对称密码对称密码;AES:高级加密标准高级加密标准,对称密码对称密码;第一章 密码算法现代密码算法的特点现代密码算法的特点: 保证加密信息的安全保证加密信息的安全,只需保证密钥安全只需保证密钥安全.对称密码算法对称密码算法:很好地融合了混淆和扩散很好地融合了混淆和扩散; DES,AES,IEDA,RC6,SHA等等非对称密码算法非对称密码算法:基于数学难题基于数学难题; RSA,ECC,ElGamal,DH等等中南大学信息科学与工程学院计算机系 段桂华2011年年2月月经典的经典的现代密码现代密码算法有:算法有:RC6:分组长度分组长度,轮数和密钥长度可变轮数和密钥长度可变;RC4:序列密码序列密码,面向字节流面向字节流;SHA(MD5):散列算法散列算法,用于消息摘要用于消息摘要;第一章 密码算法RSA:公钥密码公钥密码,加密和数字签名加密和数字签名;ECC:公钥密码公钥密码,安全性高安全性高,密钥量小密钥量小,灵活性好灵活性好;DSA:数字签名算法数字签名算法,用于数字签名用于数字签名;中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第一章 密码算法使用算法使用算法:安全系统设计者安全系统设计者:须想到每个可能的攻击方法须想到每个可能的攻击方法 及其对策及其对策.密码分析者密码分析者:只需要找到安全漏洞及怎么利用它只需要找到安全漏洞及怎么利用它.密码学密码学仅能在数学上使一个系统安全仅能在数学上使一个系统安全,在实际应用在实际应用 中有很多不可预知的工作错误引起的安全失败中有很多不可预知的工作错误引起的安全失败.密码算法密码算法性能的好坏对系统的安全也很重要性能的好坏对系统的安全也很重要.算法的安全性算法的安全性:要破译某个给定算法的有效方法是加要破译某个给定算法的有效方法是加密一个非常有价值的东西密一个非常有价值的东西,然后公布加密的消息然后公布加密的消息.对称密码算法对称密码算法适合加密数据适合加密数据,速度快且抗选择密文速度快且抗选择密文 攻击攻击;公钥密码算法公钥密码算法最擅长密钥分配以及签名认证最擅长密钥分配以及签名认证. 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 分组密码第一章 密码算法1.1 数据加密标准数据加密标准DES 1976年被采纳作为联邦标准年被采纳作为联邦标准,并授权在非密级并授权在非密级的政府通信中使用的政府通信中使用,应用广泛应用广泛. DES是一个分组加密算法是一个分组加密算法,对称密码对称密码,64位分位分 组组,密钥长度为密钥长度为64位位(实际长度为实际长度为56位位). DES的整个算法是公开的的整个算法是公开的,系统的安全性靠系统的安全性靠密钥保证密钥保证.算法包括三个步骤算法包括三个步骤:初始置换初始置换IP,16轮轮迭代的乘积变换迭代的乘积变换,逆初始变换逆初始变换IP-1. 1.初始置换初始置换IP和和逆初始置换逆初始置换IP-1 IP和和IP-1的作用主要是打乱输入的的作用主要是打乱输入的ASCII码字划码字划 分关系分关系,并将明文校验码变成并将明文校验码变成IP输出的一个字节输出的一个字节.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 2. 乘积变换乘积变换 乘积变换是乘积变换是DES算法的核心部分算法的核心部分.将经过将经过IP置置换后的数据分成换后的数据分成32位的左右两组位的左右两组,在迭代过程中彼此在迭代过程中彼此左右交换位置左右交换位置.每次迭代时只对右边的每次迭代时只对右边的32位进行一系列位进行一系列的加密变换的加密变换,然后把左边的然后把左边的32位与右边得到的位与右边得到的32位逐位逐位进行异或操作位进行异或操作,作为下一轮迭代时左边的段作为下一轮迭代时左边的段.迭代公式为迭代公式为: Li=Ri-1,Ri=Li-1 f(Ri-1,ki) : 按位异或操作运算符按位异或操作运算符,即按位作模即按位作模2相加运算相加运算.运算规则为运算规则为: 1 0=1,0 1=1,0 0=0,1 1=0 f的功能的功能是将是将32比特的数据经过选择扩展运算比特的数据经过选择扩展运算 E,密钥加密运算密钥加密运算,选择压缩运算选择压缩运算S和置换运算和置换运算P转转换为换为32比特的输出比特的输出. 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 (1)选择扩展运算选择扩展运算E 选择扩展运算下可将输入的选择扩展运算下可将输入的32比特比特Ri-1扩展成扩展成48位的输出位的输出.令令s表示表示E原输入数据比特的下标原输入数据比特的下标,则则E的输出是将原下标的输出是将原下标s为为0或或1(模模4)的各比特重复一次的各比特重复一次得到的得到的,实现数据扩展实现数据扩展. 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 (2)16个子密钥个子密钥ki的产生的产生 64比特初始密钥比特初始密钥k经过换位函数经过换位函数PC-1将位置号将位置号为为8,16,24,32,40,48,56和和64的的8位奇偶位去掉并位奇偶位去掉并换位换位;换位后的数据分为换位后的数据分为2组组,经过循环左移位经过循环左移位LSi和和换位函数换位函数PC-2变换后得到每次迭代加密用的子密钥变换后得到每次迭代加密用的子密钥ki. 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 LSi表示求子密钥表示求子密钥ki时将时将Ci-1和和Di-1进行循环左进行循环左移移,其移位位数为其移位位数为: (3)选择压缩运算选择压缩运算 选择压缩运算可将密钥加密运算后的选择压缩运算可将密钥加密运算后的48比特数比特数据从左至右分成据从左至右分成8组组,每组为每组为6比特比特,并行迭入并行迭入8个个S盒后压缩成盒后压缩成32比特输出比特输出.每个每个S盒的输入为盒的输入为6比特比特,输出为输出为4比特比特,以完成压缩变换以完成压缩变换. 对于某个对于某个S盒盒Si,假设其输入为假设其输入为b1b2b3b4b5b6, 在在Si表中找到表中找到b1b6行行,b2b3b4b5 列的整数列的整数,转换转换 为为4位二进制就是输出的位二进制就是输出的4比特数据比特数据. 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月【举例举例】设设S5的输入为的输入为b1b2b3b4b5b6=110110. 则则(b1b6)2=(10)2=2,(b2b3b4b5)2=(1011)2=11在在S5中找到行为中找到行为2,列为列为11的数据的数据5转换为转换为4位二位二进制为进制为0101,所以所以S5的输出为的输出为0101. (4)置换运算置换运算P S1S8盒的输出合成盒的输出合成32比特数据后比特数据后,用换位表用换位表p进行置换进行置换,得到的得到的32比特数据就是比特数据就是f(Ri-1,ki)的输出的输出. 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 DES的解密算法和加密算法相同的解密算法和加密算法相同,只是在解密只是在解密 过程中将子密钥的顺序颠倒过程中将子密钥的顺序颠倒. DES的出现在密码史上是个创举的出现在密码史上是个创举.以前任何设以前任何设计者对于密码体制细节都是严加保密的计者对于密码体制细节都是严加保密的.自公布以自公布以来来,它一直活跃在国际保密通信的舞台上它一直活跃在国际保密通信的舞台上,成为商用成为商用保密通信和计算机通信的最常用的加密算法保密通信和计算机通信的最常用的加密算法.由于由于DES的安全性完全依赖于密钥的安全性完全依赖于密钥,而其而其64位的密钥太位的密钥太短短,因而出现了许多因而出现了许多DES的改进算法的改进算法,如三重如三重DES,分组反馈连接式分组反馈连接式DES以及密码反馈模式以及密码反馈模式DES等等.随着随着新的攻击手段和改进的加密算法的不断出现新的攻击手段和改进的加密算法的不断出现,DES也许将完成它的历史使命也许将完成它的历史使命. 高级加密标准高级加密标准AES评选于评选于2000年年10月结束月结束, Rijdael算法为算法为AES的唯一算法的唯一算法. 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月1.2 国际数据加密算法国际数据加密算法IDEA 来学嘉和来学嘉和James Massey1990年公布年公布,1992年更名为年更名为IDEA. 1.特点特点: (1)分组长度为分组长度为64位位,密钥长度为密钥长度为128位位,使用使用异或异或,模模216加加,模模216+1乘三个混合运算乘三个混合运算,在在16位位子分组上进行子分组上进行,三种运算均不满足分配律与结合律三种运算均不满足分配律与结合律.(保证了混淆的特点保证了混淆的特点) (2)有大量弱密钥有大量弱密钥. (3)难以直接扩展到难以直接扩展到128位块位块. (4)乘加结构乘加结构(MA)保证了扩散的特点保证了扩散的特点. 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 2.原理:原理: (1)64位数据分成位数据分成4个个16位子分组位子分组X1,X2,X3,X4; (2)共进行共进行8轮操作轮操作,每轮与每轮与6个个16位子密钥异或位子密钥异或,相加相加,相乘相乘; (3)在每轮之间在每轮之间,第第2个和第个和第3个子分组交换个子分组交换; (4)最终由一个输出变换最终由一个输出变换,如下图所示如下图所示: 分组密码第一章 密码算法x1x2x3x4中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 3.子密钥的产生子密钥的产生: 128位的位的k分组分组: k1,k2,k3,k4,k5,k6,k7,k8; 然后进行左环移然后进行左环移(25位位). 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月1.3 AES(Rijdeal)算法算法 两位比利时密码学家两位比利时密码学家Joan Daemen和和Vincent Rijmen提出的密码算法方案提出的密码算法方案,称之为称之为Rijndael算法算法.该算法克服了该算法克服了DES算法的弱点算法的弱点,保留了多轮的合理模保留了多轮的合理模式式,形成被密码学界认可的现代加密标准形成被密码学界认可的现代加密标准AES. 分组分组,密钥长度和轮数可变密钥长度和轮数可变.支持长度为支持长度为128位位,192和和256位的分组和密钥位的分组和密钥,使用的轮数依赖于分组使用的轮数依赖于分组和密钥长度和密钥长度. 密钥长度密钥长度 4/16/128 6/24/192 8/32/256 明文分组长度明文分组长度 4/16/128 4/16/128 4/16/128 轮数轮数Nr 10 12 14 轮密钥长轮密钥长 4/16/128 4/16/128 4/16/128 扩展密钥总长扩展密钥总长 44/176 52/208 60/240 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 128比特的明文分组被分成比特的明文分组被分成44的字节矩阵的字节矩阵: X0,0, X0,1, X0,2, X0,3, X3,0, X3,1, X3,2, X3,3 1.字节替换字节替换 非线性置换非线性置换,独立作用于状态中的每一个字节独立作用于状态中的每一个字节 x0x1x2x3x4x5x6x7 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 2.移位行运算移位行运算 字节的循环移位运算字节的循环移位运算. 第第1行字节不动行字节不动 第第2行字节移动行字节移动1列列 第第3行字节移动行字节移动2列列 第第4行字节移动行字节移动3列列Yi,j=Xi,(j+i) mod 4 = 3.混合列运算混合列运算 由一个线性变换对状态由一个线性变换对状态X的每一列的每一列Xi进行变换进行变换. 设设xi,j为给定的为给定的j列字节列字节,yi,j为运算后的为运算后的j列字节列字节. yo,jy1,jy2,jy3,j=xo,jx1,jx2,jx3,j02 03 01 0101 02 03 0101 01 02 03 03 01 01 02 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 4.轮密钥加密轮密钥加密 Yi,j=Xi,jPKi,j 密钥编排密钥编排:所需密钥比特总数等于所需密钥比特总数等于N(R+1),如分组如分组长度为长度为128比特比特(N=4),轮数为轮数为10时时,需要需要1408比特比特. AES加密算法加密算法: Rijndael(State,CipherKey) KeyExpansion(CipherKey, W1,N(R+1); /初始化初始化 for (i=1;iR;i+) ByteSub(State); Shift Row(State); MixColumn(State); AddRoundKey(State,WiN-3, iN); /中间轮中间轮 ByteSub(State); Shift Row(State); /末轮末轮 AddRoundKey(State, W(R+1)N-3, (R+1)N); 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月1.4高级加密标准高级加密标准AES的诞生的诞生 1997年年,NIST向密码学界征寻用于新的高级向密码学界征寻用于新的高级加密标准加密标准AES候选算法候选算法,规定规定: (1)密码系统是没有密级的密码系统是没有密级的; (2)算法的全部描述必须公开算法的全部描述必须公开; (3)可在世界范围内免费使用可在世界范围内免费使用; (4)支持至少支持至少128位的分组位的分组; (5)支持的密钥长度至少为支持的密钥长度至少为128,192和和256位位. 1998年年8月已提交了月已提交了15个候选算法个候选算法,NIST于于1999年年9月宣布月宣布5个候选算法进入第二轮个候选算法进入第二轮;2000年年10月选择月选择Rijdeal作为作为AES,其特点为其特点为: 安全安全,易实现易实现,算法灵活与简便算法灵活与简便. 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 1.MARS算法算法 由来自由来自IBM的研发小组研发出来的的研发小组研发出来的,使用使用128位位的分组的分组,密钥长度密钥长度128488,基本运算是加法基本运算是加法,减减法法,异或异或,查找表查找表,位循环以及乘法运算位循环以及乘法运算. 简要描述:简要描述: MARS输入输入4个包含明文个包含明文32位的数据字位的数据字,输出同样输出同样数目数据字的密文数目数据字的密文. 1)使用一个密钥扩展函数将使用一个密钥扩展函数将n(4n14)个个32位的位的密钥字扩展为密钥字扩展为40个个32位的密钥字位的密钥字;将数据字加到密钥将数据字加到密钥字的低字的低4个上个上,然后是一个基于然后是一个基于8轮轮S盒的无密钥的盒的无密钥的“前前期模式混合期模式混合”; 2)算法核心算法核心:16轮带密钥的变换轮带密钥的变换,每一轮都使用每一轮都使用 一个扩展函数一个扩展函数E,该函数输入该函数输入1个数据字和个数据字和2个密钥个密钥 字字,输出输出3个字个字; 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 3)使用使用8轮不带密钥的轮不带密钥的“后期模式后期模式”,然后从数然后从数据字减去密钥字据字减去密钥字. 2.RC6算法算法 Ron Rivest和来自和来自RSA实验室的研发小组开发出实验室的研发小组开发出来的来的,其名字受版权保护其名字受版权保护,算法受美国专利的保护算法受美国专利的保护. 其前一个版本是其前一个版本是1994设计设计,1995公开的参数可变公开的参数可变的分组算法的分组算法RC5:分组大小分组大小w,密钥长度字节数密钥长度字节数b和加密和加密轮数轮数r可变可变. RC6使用长度可变的数据字使用长度可变的数据字,可变的轮数可变的轮数,密钥长密钥长度可达度可达2040位位.作为作为AES提案的提案的RC6使用使用32位的数据位的数据字字,16轮以及长度为轮以及长度为128,192和和256位的密钥位的密钥. RC6采用的基本运算有采用的基本运算有:加法加法,减法减法,异或异或,位循环位循环以及乘法运算以及乘法运算,未使用查找表未使用查找表. 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月加密算法:加密算法: RC6使用使用4个个w位的寄存器位的寄存器A,B,C,D,用来保存用来保存输入的原始明文输入的原始明文,以及算法结束后得到的密文。以及算法结束后得到的密文。 RC6_Encryption(A,B,C,D,r,w,S0,2r+3) B=B+S0; D=D+S1; for i=1 to r do t=(Bx(2B+1)lg(w) u=(Dx(2D+1)lg(w) A=(At)u)+S2i C=(Cu)lg(w) u=(Dx(2D+1)lg(w) A=(A-S2i)u)t C=(C-S2i+1)t)u B=B-S0; D=D-S1; 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月密钥编排函数密钥编排函数: 首先将首先将b字节密钥字节密钥(不足补不足补0)存入存入c个个w位所组成位所组成的数组的数组L中中,输出为输出为2r+4个个w位的数组位的数组S0,2r+3 RC6_key_Schedule(L0,c-1,r) P=0xB7E15163; Q=0x9E3779B9; for i=1 to 2r+3 do Si=Si-1+Q A=B=i=j=0; for s=1 to 3*maxc,2r+4 do A=Si=(Si+A+B)3 B=Lj=(Lj+A+B)(A+B) i=(i+1) mod 2r+4; j=(j+1) mod c 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 3.Serpent 32轮的分组密码轮的分组密码,作用于作用于128比特的明文分组比特的明文分组,密钥可变至密钥可变至256比特比特(若小于若小于256,则填充则填充1000)由英国剑桥大学的由英国剑桥大学的Anderson和以色列的和以色列的EliBiham以及以及挪威的挪威的Lars Knudsen共同研究出来共同研究出来.类似类似DES,速度速度与与DES相当相当,但比三重但比三重DES更安全更安全. 使用的基本运算有异或使用的基本运算有异或,比特循环和比特移位比特循环和比特移位.使使用了两个用了两个816的置换表格和的置换表格和8个个S盒盒. 4.Twofish 16轮加密轮加密,使用使用128比特的分组比特的分组.密钥可变至密钥可变至256比特比特,由由Bruce Schneier,John Kelsey等人设计等人设计. 使用的基本运算有使用的基本运算有:异或异或,加法加法,比特循环和乘法比特循环和乘法. 使用了使用了4个依赖于密钥的个依赖于密钥的88 S盒盒. 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 AES最终候选算法性能比较最终候选算法性能比较 (1)从设置从设置,加解密时间上来看加解密时间上来看: MARS,RC6,Serpert:相同相同,与密钥长度无关与密钥长度无关; Rijndael:密钥为密钥为192比特的比比特的比128的慢的慢20%, 密钥为密钥为256比特的比比特的比128的慢的慢40%; Twofish:需要更多的时间来设置更长的密钥需要更多的时间来设置更长的密钥. (2)软件性能软件性能(PII,汇编汇编,C实现实现,时钟周期时钟周期)密码密码 128比特密钥比特密钥 192比特密钥比特密钥 256比特密钥比特密钥 MARS 300 380 300 380 300 380RC6 225 240 225 240 225 240Rijndael 230 400 275 520 330 600Serpent 750 750 750 750 750 750Twofish 250 380 250 380 250 380 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 (3)内存要求:内存要求:密码密码 字节数字节数 MARS 100RC6 210Rijndael 52Serpent 50 Twofish 60 分组密码第一章 密码算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 序列密码第一章 密码算法1.5 RC4算法算法 是是Ron Rivest在在1987年为年为RSA数据安全公司数据安全公司开发的可变密钥长度的序列密码开发的可变密钥长度的序列密码,广泛应用于商业密广泛应用于商业密码产品中码产品中. RC4算法中密钥序列与明文相互独立算法中密钥序列与明文相互独立,有一个有一个S盒盒:S0,S1,S255,所有项都是所有项都是0到到255之间的值之间的值,是一个可变长度密钥的函数是一个可变长度密钥的函数. 特点特点: (1)是一个面向字节的流密码是一个面向字节的流密码; (2)RC4的密码序列独立于明文的密码序列独立于明文; (3)RSA声称声称RC4对线性和差分分析具有免疫力对线性和差分分析具有免疫力; (4)由于由于RC4是流密码是流密码,必须避免重复使用密钥必须避免重复使用密钥; (5)所需要代码少所需要代码少,比比DES快快10倍倍.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 序列密码第一章 密码算法算法描述:算法描述: i=j=0; i=(i+1) mod 256 j=(j+Si) mod 256 交换交换Si和和Sj t=(Si+Sj) mod 256 k=St k即为密钥即为密钥,为产生的随机字节为产生的随机字节.S盒的初始化:盒的初始化: S0=0,S1=1,S255=255;然后用密钥填充另一个然后用密钥填充另一个256字节的数组字节的数组,不断重复密钥直至填充整个数组不断重复密钥直至填充整个数组: j=0 对于对于i=0 至至255 j=(j+Si+ki) mod 256 交换交换Si和和Sj中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 序列密码第一章 密码算法 同步序列密码同步序列密码 密钥序列独立于消息序列产生密钥序列独立于消息序列产生; 要求周期足够长要求周期足够长. 同步序列密码可防止密文中的插入和删除同步序列密码可防止密文中的插入和删除,因因为会使系统失去同步而立即被发现为会使系统失去同步而立即被发现,但不能避免某但不能避免某位的篡改位的篡改. 攻击攻击:插入攻击插入攻击. 原始明文原始明文: P1 P2 P3 P4 新明文新明文: P1 P P2 P3 P4 原始密钥原始密钥: k1 k2 k3 k4 密钥密钥: k1 k2 k3 k4 k5 原始密文原始密文: C1 C2 C3 C4 新密文新密文: C1 C2 C3 C4 C5 由于由于Mallory知道知道P,他可以根据他可以根据 k2=PC2 得到得到k2, P2=C2k2 k3=P2C3 得到得到k3, P3=C3k3 从而确定整个明文从而确定整个明文 避免避免: 永远不要使用同一个密钥序列永远不要使用同一个密钥序列.P中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 散列算法第一章 密码算法1.6MD5算法算法 1.背景背景 h=H(M): 对任意长度的对任意长度的M,返回固定长度散列值返回固定长度散列值h 特性特性:单向性单向性,抗碰撞性抗碰撞性,公开性公开性; 散列函数的长度散列函数的长度:针对生日攻击针对生日攻击. NIST在其安全散列标准在其安全散列标准SHS中用的是中用的是160位的散位的散列值列值,生日攻击需生日攻击需280次随机散列运算次随机散列运算. 2.MD5 亦称消息摘要亦称消息摘要(Message Digest)或杂凑函数或杂凑函数,由美由美国的国的Ronald Rivest 1992年开发年开发. 输入任意长度消息输入任意长度消息x,输出为输出为128位的消息摘要值位的消息摘要值.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 散列算法第一章 密码算法 算法描述算法描述:算法包括算法包括5个步骤个步骤. (1)附加填充比特附加填充比特 在消息在消息x后填充串后填充串1000,使得消息的长度满足使得消息的长度满足: |x|448 mod 512 填充比特总是有效填充比特总是有效,填充数为填充数为1512. (2)附加长度附加长度 将原始消息的长度将原始消息的长度(64比特比特)附加到填充后的消息附加到填充后的消息后面后面.令令X0,1,n-1为填充后消息的各字为填充后消息的各字(每字每字32比特比特),填充后消息的总长为填充后消息的总长为512的倍数的倍数. 所以所以,n能被能被16整除整除. (3)初始化初始化MD缓冲区缓冲区 由由4个个32比特的寄存器比特的寄存器A,B,C,D表示表示,其初始值其初始值: A=0x01234567 B=0x89abcdef C=0xfedcba98 D=0x76543210中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 散列算法第一章 密码算法 (4)按每块按每块16字字(512比特比特)对数据进行处理对数据进行处理 主循环有主循环有4轮轮(MD4只有只有3轮轮),每轮进行每轮进行16次操作次操作.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 散列算法第一章 密码算法 Xk:消息块消息块X的第的第k个子分组个子分组(015); Ti:为为232abs(sin(i)的整数部分的整数部分,i为弧度为弧度. 4轮的操作轮的操作: a=b+(a+(g(b,c,d)+Xk+Ti)s) g在每轮中分别为在每轮中分别为F,G,H,I逻辑函数逻辑函数 如第如第1轮的操作为轮的操作为: a=b+(a+(F(b,c,d)+Xk+Ti)s) (5)输出输出 A=(A+a) mod 232 B=(B+b) mod 232 C=(C+c) mod 232 D=(D+d) mod 232 s的取值:的取值: 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 散列算法第一章 密码算法 安全性分析安全性分析: (1)Tom Berson试图用差分密码分析攻击试图用差分密码分析攻击MD5的单轮的单轮; (2) Dobbertin在在1996年找到了两个不同的年找到了两个不同的512-bit块块,它们在它们在MD5计算下产生相同的计算下产生相同的hash; (3)王小云找到消息的碰撞王小云找到消息的碰撞; (4)RIPEMD:是是MD5的变形的变形,包含两个并行的包含两个并行的MD5,是在欧共体的是在欧共体的RIPE(Race Integrity Primitive Evaluation)计划框架中于计划框架中于1996年开发出来的年开发出来的,将任意将任意长的输入变换为长的输入变换为160比特的输出比特的输出. RIPEMD-160是个是个5轮迭代的杂凑函数轮迭代的杂凑函数,对对32比特比特字进行操作字进行操作,算法使用算法使用5个个32比特的寄存器来进行操作比特的寄存器来进行操作 其他与其他与MD5类似类似.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 散列算法第一章 密码算法1.7安全散列算法安全散列算法SHA-1 SHA由由NIST开发并于开发并于1993年采纳为安全杂凑年采纳为安全杂凑标准标准,其基础是其基础是MD4,因此其设计与因此其设计与MD5类似类似. SHA-1是是1995年的修改版年的修改版,输入为长度小于输入为长度小于264比特的消息比特的消息,输出为输出为160比特的消息摘要比特的消息摘要. 有有5个个32比特的缓冲区寄存器比特的缓冲区寄存器,其初始值分别为其初始值分别为: A=0x67452301 B=0xefcdab89 C=0x98badcfe D=0x10325476 E=0xc3d2e1f0 以分组以分组512比特为单位对消息进行比特为单位对消息进行4轮压缩处理轮压缩处理, 每轮处理过程对缓冲区进行每轮处理过程对缓冲区进行20次迭代运算次迭代运算. 与与MD5不同的是不同的是,直接对输入分组直接对输入分组X的的16个字进行个字进行 迭代迭代,而而SHA是将是将16个字扩展为个字扩展为80个字后进行迭代个字后进行迭代. 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 散列算法第一章 密码算法230sqrt(2)=0x5a827999, 0t20 230sqrt(3)=0x6ed9eba1, 20t40230sqrt(5)=0x8f1bbcdc, 30t60230sqrt(10)=0xca62c1d6, 60t80Kt=(BC)(BD), 0 t20 BCD, 20t40(BC)(BD)(CD), 40t60BCD, 60t80ft=f(t,B,C,D)=Xt 0 t16 (Wt-16Wt-14Wt-8Wt-3 ) 1, 16 t80Wt=Sk: 循环左移k位中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 散列算法第一章 密码算法 安全性分析:安全性分析: (1)速度慢于速度慢于MD5,安全性优于安全性优于MD5; (2)2001年年5月月30日日,NIST 发布了修订版本发布了修订版本FIPS 180-2,增加了三个附加的算法增加了三个附加的算法SHA-256, SHA-384, SHA-512,与与ASE密码的安全性相兼容密码的安全性相兼容. 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 散列算法第一章 密码算法1.8消息鉴别码消息鉴别码 与密钥有关的散列函数称为消息鉴别码与密钥有关的散列函数称为消息鉴别码MAC. 1.Jueneman方法方法 亦称为二次同余操作探测码亦称为二次同余操作探测码QCMDC,将消息分成将消息分成m比特分组比特分组Mi,然后然后: H0=IH IH是安全密钥是安全密钥 Hi=(Hi-1+Mi)2 mod p p为素数为素数 一般一般m取取16,p取取231-1. 2.HMAC 令令H为一个杂凑函数为一个杂凑函数(MD5,SHA-1等等),k为密钥为密钥,其其长度不小于消息摘要的长度长度不小于消息摘要的长度,b表示分组长度的字节数表示分组长度的字节数. ipad=0x363636 opad=0x5c5c5c 若若k的长度的长度b,左补左补0;否则否则,先做先做H(k) 计算计算: H(kopad|H(kipad|M)中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 公钥算法第一章 密码算法1.9 RSA算法算法 由由Rivest,Shamir和和Adlemar开发开发,既能加密又既能加密又可签名可签名,易理解和实现易理解和实现,因而最流行因而最流行. 1.描述描述 (1)选择两个大素数选择两个大素数p和和q,计算计算: n=pq以及以及(n)=(p-1)(q-1) (2)选择随机数选择随机数1e(n),gcd(e,(n)=1,计算计算: d=e-1 mod (n) (3)公钥公钥(e,n),私钥私钥(d,p,q); (4)加密加密m: c=me mod n 解密解密c: m=cd mod n RSA比较慢比较慢,一般选一般选e为为3,17,65537等等等等. 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 公钥算法第一章 密码算法 2.安全性分析安全性分析 依赖于大数因子分解难题依赖于大数因子分解难题.从安全性考虑从安全性考虑,n至少至少要有要有1024或者或者2048比特比特(十进制的十进制的308位或位或616位位). 针对协议的攻击针对协议的攻击: (1)选择密文攻击选择密文攻击AliceC=meEveBobyk选rn,计算t=r-1 mod n,x=re mod n,y=xc mod n签名u=yd mod n计算tu=r-1yd =r-1(xc)d =r-1rm mod n 得到m中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 公钥算法第一章 密码算法 (2)对对RSA公共模数公共模数n的攻击的攻击 攻击者获得攻击者获得n,e1,e2,c1,c2 c1=me1 mod n c2=me2 mod n 若若e1和和e2互素互素,有有re1+se2=1,则可以根据则可以根据 (c1)-1)-r(c2)s=mre1+se2=m mod n 因此因此,不要在同一组用户之间共享不要在同一组用户之间共享n。中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 公钥算法第一章 密码算法1.10 ElGamal算法算法 1985年发表年发表,既可用于数字签名又用于加密既可用于数字签名又用于加密.其安全性依赖于离散对数难题。其安全性依赖于离散对数难题。 (1)密钥生成密钥生成: 选取素数选取素数p,随机数随机数g和和x,计算计算y=gx mod p 公钥为公钥为(y,g,p),私钥为私钥为x (2)加密消息加密消息m: 选择随机数选择随机数k(gcd(k,p-1)=1), 得到得到 密文对密文对(a,b)为为:(a=gk mod p,b=myk mod p) (3)解密消息解密消息: ba-x mod p =myk(gk)-x mod p=m中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 公钥算法第一章 密码算法1.11 椭圆曲线密码算法椭圆曲线密码算法 1985年年N.Koblitz和和V.Miller分别独立提出了分别独立提出了椭圆曲线密码体制椭圆曲线密码体制(ECC).其安全性依赖于定义在椭其安全性依赖于定义在椭圆曲线点群上的离散对数问题圆曲线点群上的离散对数问题(ECDLP)的难解性的难解性. 已知有限域已知有限域GF(p)上的椭圆曲线群上的椭圆曲线群 Ep(a,b): y2=x3+ax+b (mod p),a,b GF(p) 4a3+27b20 G是是EP(a,b)的生成元的生成元,公开公开. (1)密钥生成密钥生成: 选随机数选随机数n为私钥为私钥,计算公钥为计算公钥为P=nG; (2)加密消息加密消息: 将明文消息将明文消息m通过编码嵌入到曲线通过编码嵌入到曲线上的点上的点Pm,随机选择随机选择k,计算密文计算密文Cm=kG,Pm+kP; (3)解密消息解密消息: 计算计算Pm+kP-nkG=Pm中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 签名算法第一章 密码算法 1991年年,NIST提出提出DSA用于数字签名标用于数字签名标准准DSS中中;2000年美国通过法律年美国通过法律,数字签名和数字签名和传统签名具有同等法律效力传统签名具有同等法律效力;我国于我国于2005年也颁年也颁布了此法律布了此法律. 但但RSA算法的供应商算法的供应商RSADSI反对反对:DSA不不能用于加密或者密钥分配能用于加密或者密钥分配;由由NSA研制研制,可能有可能有陷门陷门;DSA比比RSA慢慢;RSA是事实上的标准是事实上的标准;密钥密钥长度太小长度太小. 1994年该标准被颁布年该标准被颁布.98年年12月规定月规定DSA或或RSA签名方案都可用于美国各机构生成数字签名方案都可用于美国各机构生成数字签名签名,2000年年NIST又颁布一个新的标准又颁布一个新的标准,指出指出椭圆曲线数字签名算法椭圆曲线数字签名算法ECDSA也可用于签名也可用于签名. 1.12 数字签名算法数字签名算法中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 签名算法第一章 密码算法 1.RSA签名算法签名算法 (1)算法描述:算法描述: 设模数为设模数为n,签名私钥为签名私钥为d,验证公钥为验证公钥为e. 对消息对消息m签名签名: s=md mod n 验证签名验证签名s: se mod n 是否等于是否等于m (2)安全分析安全分析 对对RSA签名的攻击签名的攻击: Alice发送给发送给Bob一条消息一条消息 SAV(EBP(m)=(meB mod nB)dA mod nA Bob找到找到w,x,满足满足 wx=m mod nB 宣称其新的公钥为宣称其新的公钥为xeB,Alice是用他的新公钥是用他的新公钥 将消息将消息w发送给了自己发送给了自己: (wxeB mod nB)dA mod nAed=1 mod (n)中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 2.ElGamal签名算法签名算法 (1)签名密钥签名密钥: 签名私钥为签名私钥为x,验证公钥为验证公钥为y; (2)对消息对消息m签名签名: 选选k(gcd(k,p-1)=1),计算签名对计算签名对(a,b): a=gk mod p, m=(xa+kb) mod p-1 (3)验证验证: 若若yaab mod p=gm mod p,则签名有效则签名有效. 签名算法第一章 密码算法 利用指数运算的特点攻击:利用指数运算的特点攻击: y=xe mod n, m=ym mod n Trent对对m签名签名: s(m) = md = yd(m)d = x(m)d mod n 从而获得从而获得m的签名:的签名: s(m) = (m)d mod n = s(m)x-1 mod n 因此因此,不要随便签名不要随便签名;或者将消息散列或者将消息散列.y=gx mod p中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 签名算法第一章 密码算法3.DSA 数字签名算法数字签名算法DSA (Digital signature algorithm)是特别为签名的目的而设计的是特别为签名的目的而设计的,1994年年12月月1日被美国日被美国NIST(国家标准和技术研究所国家标准和技术研究所)采采纳作为数字签名标准纳作为数字签名标准DSS (Digital signature Standard),使用使用SHA作为散列函数作为散列函数. DSA算法描述算法描述:是是ElGamal签名方案的变形签名方案的变形 全局公开密钥参数全局公开密钥参数: p:L位长的素数位长的素数,512 L 1024,64|L q:160位的素数且位的素数且q|p-1 g:g=h(p-1)/q mod p,1h1 用户私钥用户私钥: x,0xq 用户公钥用户公钥: y,y=gx mod p,xp 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 签名算法第一章 密码算法签名与验证过程:签名与验证过程:Alice(r,s),H(m)Bob选选kp,计算计算m的签名的签名(r,s)r=(gk mod p) mod q s=(k-1(H(m)+xr)mod q验证验证:w=s-1 mod qu1=(H(m)w) mod qu2=(rw) mod qv=(gu1yu2)mod p)mod q中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 签名算法第一章 密码算法DSA的安全性的安全性: 512位的位的DSA不能提供长期的安全性不能提供长期的安全性,至少至少要要2048位。位。 若若Eve获得同一个获得同一个k签名的两个消息签名的两个消息,则可恢复则可恢复xx=s1=(k-1(H(m1)+xr)s2=(k-1(H(m2)+xr)s1s2H(m1)+xrH(m2)+xr因此因此k的随机产生很关键的随机产生很关键. 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 签名算法第一章 密码算法4.离散对数签名方案离散对数签名方案 类似类似DSA. (1)选择大素数选择大素数p和和q,q|p-1; (2)选择选择g满足满足:1gp且且gq =1 mod p; (3)选私钥选私钥xp,则公钥则公钥y=gx mod p; (4)对消息对消息m签名签名: 选择随机数选择随机数kp,r=gk mod p,r=r mod q 根据等式根据等式ak=b+cx mod q计算计算s. 验证验证s: ra mod p 是否等于是否等于gbyc mod p (5)a,b,c的值是的值是r,m,s的组合的组合,可以产生多达可以产生多达 13000种的变型种的变型.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 协议概述第二章 密码协议2.1协议概述协议概述 协议协议:是一系列步骤是一系列步骤,包括两方或者多方包括两方或者多方,设计它的目的是完成一项任务设计它的目的是完成一项任务. 特点特点: (1)协议中的每方必须了解协议协议中的每方必须了解协议,并预先知道要并预先知道要完成的所有步骤完成的所有步骤; (2)协议中各方都必须同意并遵循它协议中各方都必须同意并遵循它; (3)协议必须清楚协议必须清楚,每一步须明确定义每一步须明确定义,无歧义无歧义; (4)协议必须是完整的协议必须是完整的,对每种可能的情况必须规对每种可能的情况必须规定具体的动作定具体的动作.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 协议概述第二章 密码协议 密码协议密码协议: 使用密码算法的协议使用密码算法的协议,目的是防止或发现窃听和目的是防止或发现窃听和欺骗欺骗,即通信各方不可能完成或知道得比协议规定的即通信各方不可能完成或知道得比协议规定的更多更多. 协议的安全性协议的安全性: (1)设计者对需求定义完备设计者对需求定义完备,充分地进行协议分析充分地进行协议分析; (2)证明其不安全比证明它安全要容易得多证明其不安全比证明它安全要容易得多.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 协议概述第二章 密码协议1.协议的目的协议的目的 (1) 生活中有许多非正式的协议生活中有许多非正式的协议:电话订票、电话订票、玩扑克等玩扑克等;这种面对面的协议依靠人的现场存在来这种面对面的协议依靠人的现场存在来保证公平和安全保证公平和安全. (2)并不是所有使用计算机的人都是诚实的并不是所有使用计算机的人都是诚实的;因此因此通过规定协议来避免欺骗。通过规定协议来避免欺骗。2.协议中的角色协议中的角色 Alice Bob Carol Dave 协议中的参与者协议中的参与者 Eve 窃听者窃听者 Mallory 恶意的主动攻击者恶意的主动攻击者 Trent 值得信赖的仲裁者值得信赖的仲裁者 Walter 监察人监察人 Peggy 证明人证明人 Victor 验证者验证者 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 协议概述第二章 密码协议3.仲裁协议仲裁协议 仲裁者仲裁者:是在完成协议的过程中是在完成协议的过程中,值得信赖值得信赖的公正的第三方的公正的第三方,能帮助互不信任的双方完成协议能帮助互不信任的双方完成协议.如律师如律师,银行银行,公证人等公证人等. AliceTrentBob举例:举例: Alice将汽车卖给将汽车卖给Bob,Bob用支票付帐用支票付帐,公正的公正的第三方为律师第三方为律师. 协议协议:Alice律师律师Bob兑现支票兑现支票车权车权,钥匙钥匙 支支票票车车权权,钥钥匙匙中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 协议概述第二章 密码协议计算机网络仲裁者要考虑以下几个问题计算机网络仲裁者要考虑以下几个问题: (1)可信任度可信任度; (2)仲裁者的费用仲裁者的费用; (3)仲裁协议的延迟仲裁协议的延迟; (4)仲裁者的数目与费用折中问题仲裁者的数目与费用折中问题; (5)攻击者的首选目标攻击者的首选目标:仲裁者仲裁者.4.裁决协议裁决协议 裁决人裁决人:并不直接参与每个协议并不直接参与每个协议,参与确定协议参与确定协议是否被公开地执行是否被公开地执行,如法官如法官. 包括两个子协议包括两个子协议:非仲裁子协议和仲裁子协议非仲裁子协议和仲裁子协议, 在特殊情况下才由裁决人执行仲裁子协议在特殊情况下才由裁决人执行仲裁子协议. 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 协议概述第二章 密码协议举例举例:Alice和和Bob订立合同订立合同,仲裁人为法官仲裁人为法官. 比较:对称密码系统和公钥密码系统比较:对称密码系统和公钥密码系统(1)对称密码系统对称密码系统-仲裁协议仲裁协议 签订合同签订合同证证据据证证据据Alice法官法官Bob根据证据裁决根据证据裁决Alice? ?法官法官? ?BobEk(50万万)Ek(10万万)Ek(50万万)Ek(50万万)Ek(80万万)Ek(10万万)Ek(80万万)kAlice向向Bob借了借了50万万Alice狡辩狡辩:借借10万万; Bob狡辩狡辩:借借80万万中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 协议概述第二章 密码协议解决解决: Alice?法官法官?BobEkAv(50万万)EkAv(10万万)EkAv(50万万)EkAv(50万万)EkAv(80万万)EkAv(10万万)EkAv(80万万)(2)公钥密码系统公钥密码系统-裁决协议裁决协议 Alice?法官法官?BobEk(50万万)Ek(10万万)Ek(50万万)Ek(50万万)Ek(80万万)Ek(50万万)kAlice借借Bob50万万Alice狡辩狡辩:借借10万万; Bob出具出具50万借据万借据Bob狡辩狡辩:借借80万万; 无法提供无法提供80万借据万借据中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 协议概述第二章 密码协议5.自动执行协议自动执行协议 是协议中最好的是协议中最好的.这种协议不需要仲裁者或者这种协议不需要仲裁者或者裁决者裁决者,如果协议的一方试图欺骗如果协议的一方试图欺骗,其他各方马上其他各方马上能发觉并且停止执行协议能发觉并且停止执行协议. 例如例如Alice和和Bob交易中交易中,其中一方发现另一方使用其中一方发现另一方使用假币假币;防火墙过滤规则的设定防火墙过滤规则的设定.6.对协议的攻击对协议的攻击 攻击攻击:可以对密码算法和协议的密码技术进行攻击可以对密码算法和协议的密码技术进行攻击,也可以对协议本身进行攻击也可以对协议本身进行攻击. (1)被动攻击被动攻击:窃听协议的一部分或全部窃听协议的一部分或全部,目的是获目的是获取消息取消息,不影响协议不影响协议; (2)主动攻击主动攻击:改变协议以对自己有利改变协议以对自己有利,插入插入,删除删除 和修改消息和修改消息,破坏通信等等破坏通信等等; (3)骗子骗子:协议中的一方协议中的一方,不遵守协议或者破坏协议不遵守协议或者破坏协议.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月2.2基本的通信协议基本的通信协议 举例举例:Alice将消息将消息m发送给发送给Bob AliceBob加密加密解密解密mcm密钥密钥密钥系统密钥系统攻击:攻击:(1)Eve进行窃听进行窃听若获得密文若获得密文c,只能进行唯密文攻击只能进行唯密文攻击;若获得密码算法和密钥若获得密码算法和密钥,Eve知道的和知道的和Bob一样多一样多.(2)Mallory进行破坏进行破坏若破坏通信信道若破坏通信信道,则则Alice和和Bob不可能通信不可能通信; 基本协议第二章 密码协议中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议Mallory截取截取Alice的消息的消息,用自己的消息代替用自己的消息代替; 若若Mallory知道密码算法和密钥知道密码算法和密钥,则攻击是有效则攻击是有效的的,否则否则Bob获得的获得的m是无意义的是无意义的.所以所以:好的密码系统的安全性只与密钥有关好的密码系统的安全性只与密钥有关,可以可以公开算法公开算法,因此因此,密钥的管理密钥的管理是非常重要的是非常重要的.(3)Alice或者或者Bob中一人进行破坏中一人进行破坏 若将密钥泄露若将密钥泄露,则通信的安全性得不到保证则通信的安全性得不到保证,这不是协议本身的问题。这不是协议本身的问题。AliceBob加密加密解密解密mcmMalloryc中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议混合密码系统混合密码系统 Des作为算法标准的同时作为算法标准的同时,第一个公钥密码第一个公钥密码算法公开算法公开,引起了密码学中的政治党派之争引起了密码学中的政治党派之争.DH派派NSA密钥太短密钥太短十年前发现双钥技术十年前发现双钥技术提出公钥密码学提出公钥密码学推荐推荐DES 在实际应用中在实际应用中,公钥密码算法和对称密码算法不公钥密码算法和对称密码算法不会互相取代会互相取代,各有所长各有所长: (1)对称密码算法比公钥算法快对称密码算法比公钥算法快1000倍倍; (2)公钥密码算法对选择密文攻击是脆弱的公钥密码算法对选择密文攻击是脆弱的; (3)对称密码算法密钥管理复杂对称密码算法密钥管理复杂.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议混合密码系统机制混合密码系统机制: 用公钥密码来保护和分发会话密钥用公钥密码来保护和分发会话密钥,会话密钥会话密钥采用对称密码算法采用对称密码算法,对通信的消息进行加密对通信的消息进行加密,不需不需要时销毁要时销毁. 协议描述:协议描述:中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议2.3数字签名协议数字签名协议 签名的性质签名的性质:可信可信,不可伪造不可伪造,不可重用不可重用,签名后的文件不可以改变签名后的文件不可以改变,不可抵赖不可抵赖. 最早的应用之一最早的应用之一:禁止核试验条约的验证禁止核试验条约的验证;要解要解决决“数据能读数据能读,但不能篡改但不能篡改”.监督国将要发送的监测监督国将要发送的监测消息签名消息签名,东道主负责传送东道主负责传送. 在计算机中在计算机中:复制复制,剪裁剪裁,粘贴等修改可以不留粘贴等修改可以不留下痕迹下痕迹,如何保证签名的性质?如何保证签名的性质?1.使用对称密码学和仲裁者对文件签名使用对称密码学和仲裁者对文件签名 前提前提:Trent是一个权威可信的仲裁者是一个权威可信的仲裁者,和和Alice共享密钥共享密钥KA,和和Bob共享密钥共享密钥KB. 事件事件:Alice对数字消息对数字消息m签名签名,并送给并送给Bob.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议签名性质的保证签名性质的保证: (1)签名可信签名可信:由由Trent提供提供S(A)证明证明; (2)签名不可伪造签名不可伪造:只有只有Alice知道知道KA; (3)签名不可重用签名不可重用,签名文件不能改变签名文件不能改变:m2包含了包含了文件消息文件消息m1和和c1,m1的改变将使得其与的改变将使得其与c1不匹配不匹配; (4)签名不可抵赖签名不可抵赖:由由S(A)和和c1证明证明. 存在的问题存在的问题: Trent必须是完全可信和安全的必须是完全可信和安全的; 存在通信瓶颈、密钥管理等问题存在通信瓶颈、密钥管理等问题. 解决解决:使用公钥密码使用公钥密码KAAliceBobDB(c2)m2c2m2KBm2=S(A),m1,c1EB(m2)KBTrentEA(m1)m1c1m1KADA(c1)中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议2.使用公钥密码对文件签名使用公钥密码对文件签名 用私钥加密文件用私钥加密文件,便拥有安全的数字签名便拥有安全的数字签名; 特点特点:协议简单协议简单,不需要不需要Trent进行验证进行验证,只要只要保证公钥是可靠的保证公钥是可靠的.KApAliceBobEAv(m)mcKAvDAp(c)m签名性质的保证签名性质的保证: (1)签名可信签名可信,不可伪造不可伪造:由由Alice私钥保证私钥保证; (2)签名不可重用签名不可重用:签名是文件的函数签名是文件的函数; (3)被签名的文件不能改变被签名的文件不能改变:由由Alice私钥保证私钥保证; (4)签名不可抵赖签名不可抵赖:只有只有Alice拥有私钥拥有私钥.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议存在的问题存在的问题:重放攻击重放攻击;加密与签名密钥不能共用加密与签名密钥不能共用;文件大时文件大时,速度慢速度慢;解决解决:时间标记时间标记,单向散列函数单向散列函数3.文件签名和时间标记文件签名和时间标记 重放攻击对合同来说问题不大重放攻击对合同来说问题不大,但是对于银行支但是对于银行支票问题就大了票问题就大了.所以在文件中加入时间标记所以在文件中加入时间标记,可以避可以避免这个问题免这个问题.4.使用单向散列函数使用单向散列函数 提高长文件签名的效率提高长文件签名的效率中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议 由于散列函数的特点由于散列函数的特点,该签名与文件签名一样该签名与文件签名一样安全安全,同时还具有以下优点同时还具有以下优点: 签名和文件可以分开保存签名和文件可以分开保存; 存储量要求大大降低存储量要求大大降低.Carols1SAv(m1)m1AliceH(m)mms1VAp(s1)H(m)Carol根据根据m1=m2判断判断m1m2中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议5.带加密的数字签名带加密的数字签名 结合数字签名的真实性和加密的安全性结合数字签名的真实性和加密的安全性.BobcBob公钥公钥EBp(s)sAlice签名签名mSAv(m)AliceAlice公钥公钥VAp(s)sBob解密解密DBv(c)m6.不可抵赖的数字签名不可抵赖的数字签名 没有得到签名者的同意就不能被验证没有得到签名者的同意就不能被验证,如防盗版如防盗版. 采用离散对数签名方案采用离散对数签名方案:私钥私钥x,公钥公钥y=gx mod p例如例如:Alice对消息对消息m签名签名,z=mx mod p,Bob验证验证.d=ct mod pBobAlice选选a,bc=zayb计算计算t=x-1 mod p-1验证验证d=magb mod p中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议2.4密钥交换协议密钥交换协议 产生会话密钥产生会话密钥,以对每一次单独的会话加密以对每一次单独的会话加密. 1.对称密码学的密钥交换对称密码学的密钥交换 该协议假设网络用户该协议假设网络用户Alice,Bob和和KDC共享一个共享一个秘密密钥秘密密钥.Alice请求一个与请求一个与Bob的会话密钥的会话密钥kTrentBobm1k产生随机会话密钥产生随机会话密钥km1=EKA(k) m2=EKB(k)m2分析分析: (1)该协议依赖于该协议依赖于Trent的安全性的安全性; (2)Trent参与每一次密钥交换参与每一次密钥交换,容易形成瓶颈容易形成瓶颈.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议2.公钥密码学的密钥交换公钥密码学的密钥交换 由由KDC保存网络用户的公钥保存网络用户的公钥.3.中间人攻击中间人攻击 Mallory可以通过截获可以通过截获Alice和和Bob之间的消息进行之间的消息进行修改修改,产生全新的消息产生全新的消息,即中间人攻击即中间人攻击.用用k通信通信AliceBobEBp(k)kcDBv(c)kAliceBobkApMallorykMpkBpkMp 当当Alice和和Bob互传公钥时互传公钥时,Mallory截获截获,用自己用自己的公钥取代的公钥取代,从而能用私钥解密双方传送的消息从而能用私钥解密双方传送的消息.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议解决办法:解决办法: (1)采用连锁协议采用连锁协议 由由Rivest和和Shamir发明发明,用以阻止中间人攻击用以阻止中间人攻击. 攻击攻击:Mallory仍可以截获消息仍可以截获消息,但他必须非常了但他必须非常了解解Alice和和Bob,模仿他们中的一个和另一个通信模仿他们中的一个和另一个通信. 直接将直接将c11传给传给Bob,Bob无法解密无法解密(c1=EMp(m1); 伪造伪造c3=EBp(m3),执行协议将消息传给执行协议将消息传给Bob,Bob将无法理解将无法理解.AliceBob互传公钥互传公钥c1=EBp(m1)c2=EAp(m2)c11c21c12c22合并两半消息合并两半消息,用私钥解密用私钥解密合并两半消息合并两半消息用私钥解密用私钥解密中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议解决办法解决办法: (2)采用数字签名采用数字签名 由由Trent的签名保证密钥交换的安全的签名保证密钥交换的安全. 攻击攻击: Mallory首先在首先在Trent处获得假冒的处获得假冒的Alice和和Bob的签名公钥的签名公钥; 攻击攻击Trent,获得他的私钥获得他的私钥.Alice请请求求TrentBobETv(kBp)EBp(k)用用Trent公钥验公钥验证签名证签名,选选kKBv中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议2.5鉴别协议鉴别协议 计算机如何让识别登录的用户计算机如何让识别登录的用户:一般采用口令一般采用口令. 1.使用单向函数鉴别使用单向函数鉴别 2.字典式攻击和字典式攻击和salt 字典式攻击字典式攻击:Mallory编制很多个最常用的口令表编制很多个最常用的口令表计算其计算其hash值并保存值并保存,偷出口令文件进行比较偷出口令文件进行比较. 解决办法解决办法:将口令连上随机字符串将口令连上随机字符串salt再进行再进行hash.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议3.SKEY 一种鉴别程序一种鉴别程序,其安全性依赖于单向函数其安全性依赖于单向函数.分析:分析: 由于每个数只用一次由于每个数只用一次,因此数据库对攻击者因此数据库对攻击者用处不大用处不大.Alice计算机计算机Alice,R保管保管计算计算f(xi),与与xi+1比较,成功则用比较,成功则用xi代替代替xi+1保存保存Alice,x101x1,x2,x100登录登录Alice,xi确认确认取消取消xix1=f(R)x2=f(x1) :X101=f(x100)中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议4.使用对称密码技术鉴别使用对称密码技术鉴别SKID 假设假设Alice和和Bob共享密钥共享密钥k.Alice计算机计算机请求请求对对r加密加密在数据库中查找在数据库中查找Alice的公钥验证的公钥验证随机数随机数rAlice,EAv(r)5.使用公钥密码技术鉴别使用公钥密码技术鉴别 主机保存每个用户的公钥文件主机保存每个用户的公钥文件,用户保存自用户保存自己的私钥己的私钥.Alice计算机计算机RA选随机数选随机数RB,Hk(RA,RB,B)RB,Hk(RA,RB,B)计算并比较计算并比较Hk(RA,RB,B)Hk(RB,A)计算并比较计算并比较Hk(RB,A)中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议2.6经典的鉴别和密钥交换协议经典的鉴别和密钥交换协议 1.Wide Mouth Frog 协议协议 最简单的对称密钥管理协议最简单的对称密钥管理协议.Trent必须是可信的必须是可信的;会话密钥由会话密钥由Alice产生产生;时间参数时间参数T抗重放攻击抗重放攻击.AliceTrentBobA,EA(TA,B,k)EK(m)选择选择KEB(TB,A,k)中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议 2.Yahalom协议协议AliceTrentBobm2=EB(A,k)A,RA选选RAm1=EA(B,k,RA,RB)B,EB(A,RA,RB)DA(m1)得到得到k,确认确认RA选选RBm2=EB(A,k)m3=Ek(RB)DB(m2)得到得到kDk(m3),确认确认RBTrent必须是可信的必须是可信的,产生会话密钥产生会话密钥;随机数随机数R抗重放攻击抗重放攻击.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议3.Needham-Schroeder协议协议由由Roger Needham 和和Michacl Schroeder发明发明.AliceTrentBobm选选RAA,B,RADA(m)得到得到k,确认确认RA选选RBEB(k,A)m1=Ek(RB)Dk(m2),确认确认RB-1DB(EB(k,A)得到得到kDk(m1) m2=Ek(RB-1)选取选取k,m=EA(RA,B,k,EB(k,A) 协议的安全漏洞协议的安全漏洞:旧钥可以发起一次成功的攻击旧钥可以发起一次成功的攻击.Mallory可以存取旧的会话密钥可以存取旧的会话密钥k,假装假装Alice与与Bob 完成完成,可以成功地使可以成功地使Bob确信他是确信他是Alice. 解决解决:在在中使用时间标记中使用时间标记.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 基本协议第二章 密码协议4.Kerberos协议协议是是Needham Schroeder协议的变形协议的变形.AliceTrentBobA,BEk(A,T) EB(T,L,k,A)EA(T,L,k,B) EB(T,L,k,A) 解密得到解密得到k,TEk(T+1)解密获得解密获得A,k,T中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 中级协议第三章 密码协议3.1时间标记服务时间标记服务 在版权和专利争端中在版权和专利争端中,需要标记时间需要标记时间. 数字时间标志协议有三条性质数字时间标志协议有三条性质: (1)数据本身必须有时间标记数据本身必须有时间标记; (2)文件的改变很明显文件的改变很明显; (3)不可能用不同于当前日期和时间来标记文件不可能用不同于当前日期和时间来标记文件.1.仲裁解决办法仲裁解决办法缺点缺点:无保密性无保密性;数据库巨大数据库巨大;存在传输错误存在传输错误; Trent的可信性的可信性.AliceTrent文件副本文件副本在文件副本上签时在文件副本上签时间标记并保存副本间标记并保存副本中南大学信息科学与工程学院计算机系 段桂华2011年年2月月2.改进的仲裁解决办法改进的仲裁解决办法 使用散列函数和数字签名使用散列函数和数字签名. 特点特点:散列值可保密散列值可保密;Trent不用保存文件副本不用保存文件副本; 可验证签名可验证签名.缺点缺点:Alice和和Trent合谋合谋.AliceTrenthash(m)对加上时间标记对加上时间标记的文件副本签名的文件副本签名STv(hash(m)+T) 解决方法是解决方法是:将将Alice的时间标记同以前由的时间标记同以前由 Trent产生的时间标记链接起来产生的时间标记链接起来. 中级协议第三章 密码协议中南大学信息科学与工程学院计算机系 段桂华2011年年2月月3.2位承诺协议位承诺协议 Alice对对Bob承诺一个位承诺一个位,直到某个时间后才直到某个时间后才揭示揭示,Bob确信在确信在Alice承诺了后未改变想法承诺了后未改变想法. (1)使用对称密码学使用对称密码学AliceBobr产生位承诺产生位承诺b和随机密钥和随机密钥k解密获得解密获得b用用r验证有效性验证有效性kc=Ek(r,b)产生随产生随机位串机位串协议的协议的承诺承诺部分部分协议的协议的揭示揭示部分部分(2)使用单向函数使用单向函数AliceBobH(r1,r2,b),r1产生位承诺产生位承诺b和和随机位串随机位串r1,r2计算计算hash值并与值并与H比较比较r1,r2,b 中级协议第三章 密码协议中南大学信息科学与工程学院计算机系 段桂华2011年年2月月3.3公平的硬币抛掷公平的硬币抛掷 (1)Alice先抛币先抛币,将结果保密将结果保密; (2)Bob猜测猜测,但但Alice不能修改结果不能修改结果; (3)Bob猜测之前不知猜测之前不知Alice的结果的结果. 1.使用单向函数的抛币协议使用单向函数的抛币协议 假设假设:x和和x的取值为的取值为0或者或者1,代表硬币的正或反面代表硬币的正或反面当当xx的值为的值为0时时Bob猜测正确猜测正确AliceBoby=hash(x)选随机数选随机数x Bob用用y=hash(x)确认确认xxx猜测猜测x的值的值x公布抛币结果公布抛币结果xx 中级协议第三章 密码协议中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 中级协议第三章 密码协议2.使用公钥密码算法的抛币协议使用公钥密码算法的抛币协议 假设假设:Dk1(Ek2(Ek1(m)=Ek2(m),如如RSA算法算法. 协议不需要可信第三方协议不需要可信第三方; Alice和和Bob协商一对公钥协商一对公钥/私钥对私钥对.最后最后Alice和和Bob公开密钥对以避免欺诈公开密钥对以避免欺诈.AliceBobc1=EAp(m1) c2=EAp(m2)产生产生m1,m2 Bob用用kBv解密解密EBp(mi)EBp(EAp(mi)随机选择随机选择ci加密加密用用kAv解密解密mi中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 中级协议第三章 密码协议3.4智力扑克协议智力扑克协议 假设假设:Alice和和Bob通过网络玩五张牌游戏通过网络玩五张牌游戏. Alice发牌发牌,每人发五张牌每人发五张牌. Alice产生产生52个消息个消息m1m52,用公钥用公钥kAp加密加密,发送给发送给Bob.最后最后Alice和和Bob出示牌和密钥以验证未作弊出示牌和密钥以验证未作弊AliceBobc1 c52=EAp(mi)产生产生m1,m2 Bob用用kBv解密获得牌解密获得牌EBp(mj)EBp(EAp(mj)随机选择五随机选择五张用张用kBp加密加密用用kAv解密解密EAp(mk)Bob另随机选五张牌另随机选五张牌Alice用用kAv解密获得牌解密获得牌中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 中级协议第三章 密码协议类似协议类似协议: (1)多方智力扑克协议多方智力扑克协议; (2)匿名密钥分配协议匿名密钥分配协议 密钥的安全性很重要密钥的安全性很重要,由可信的由可信的KDC匿名产生匿名产生和分配和分配. KDC产生足够长的连续的密钥序列产生足够长的连续的密钥序列,用自己的用自己的公钥加密传到网上。公钥加密传到网上。AliceKDCEAp(EKp(k)用私钥解用私钥解密获得密获得kEAp(k)中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 中级协议第三章 密码协议3.5密钥托管协议密钥托管协议 案例案例:法院授权许可的搭线窃听是防止犯罪并法院授权许可的搭线窃听是防止犯罪并将犯罪绳之以法的有效方法将犯罪绳之以法的有效方法. 密钥托管密钥托管:美国政府的美国政府的clipper计划和它的托管加计划和它的托管加密标准密标准EES的核心的核心. (1)加密芯片加密芯片 ID+秘密密钥秘密密钥k ID,k1和和ID,k2分别由两个不同托管机构存储分别由两个不同托管机构存储. (2)加密过程加密过程:用秘密密钥用秘密密钥k加密会话密钥加密会话密钥kt后连同后连同ID号一起传送号一起传送,再用再用kt加密消息加密消息. (3)法律执行机构法律执行机构:监听监听ID号号,从托管机构收集从托管机构收集k1 和和k2获得获得k,用用k获得获得kt,用用kt解密消息解密消息.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议4.1零知识证明协议零知识证明协议 案例案例: Alice要向要向Bob证明她拥有一些秘密证明她拥有一些秘密,但不泄漏任何信息但不泄漏任何信息. 证明者证明者:Peggy 验证者验证者:Victor 采用交互式协议的形式采用交互式协议的形式:Victor问问Peggy一系列一系列与秘密无关的问题与秘密无关的问题,若若Peggy知道秘密知道秘密,她能回答所她能回答所有问题有问题;否则只有否则只有50%的机会欺骗的机会欺骗. 1.基本的零知识协议基本的零知识协议 例例1: Peggy向向Victor证明她知道打开证明她知道打开CD门的咒语门的咒语. BAC D中南大学信息科学与工程学院计算机系 段桂华2011年年2月月协议特点协议特点: Victor不能从证明中了解任何消息不能从证明中了解任何消息.例例2: Peggy向向Victor证明她知道某难题的解法证明她知道某难题的解法. (1)Peggy将该难题变成另一难题将该难题变成另一难题,两难题同构两难题同构; (2)Peggy用位承诺方案提交新难题的解法用位承诺方案提交新难题的解法,并告并告 诉诉Victor新难题;新难题; (3)Victor要求要求Peggy证明两难题同构或者公开新证明两难题同构或者公开新 难题的解法;难题的解法; (4)Peggy同意同意. 以上步骤重复以上步骤重复n次次. Peggy有两种选择:有两种选择: 找到一个同构难题找到一个同构难题,但不知道解法但不知道解法; 找到一个非同构难题找到一个非同构难题,知道解法知道解法. 高级协议第四章 密码协议中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议AliceBobm=mb将消息盲化将消息盲化SBv(m)对对m签名签名除以盲因子除以盲因子b,获得获得签名后的消息签名后的消息SBv(m)4.2盲签名协议盲签名协议 签名者不知道所签文件的内容签名者不知道所签文件的内容,如公证员只要如公证员只要证明某一时刻公证过这个文件证明某一时刻公证过这个文件,并不关心文件内容并不关心文件内容. 1.完全盲签名完全盲签名 假设前提假设前提:签名函数与乘法函数可以交换签名函数与乘法函数可以交换. 分析分析:Bob可以验证签名可以验证签名,但不知所签文件内容但不知所签文件内容. 特点特点: Bob在文件上签名有效在文件上签名有效; Bob无法将签署行为与所签文件联系起来无法将签署行为与所签文件联系起来.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议2.盲签名协议盲签名协议 要求要求:Bob知道他在干什么知道他在干什么,但仍保持盲签名但仍保持盲签名的有用性质的有用性质. 协议的核心协议的核心:分割选择技术分割选择技术 协议协议:Bob打开并检查除一个文件之外的所有文打开并检查除一个文件之外的所有文件件,然后对最后一个文件签名然后对最后一个文件签名. (1)Bob准备准备n份文件份文件; (2)Bob用不同的盲化因子盲化文件后给用不同的盲化因子盲化文件后给Alice; (3)Alice随机选择随机选择n-1个文件向个文件向Bob索要盲化因子索要盲化因子; (4)Bob将将n-1个盲化因子给个盲化因子给Alice; (5)Alice用盲化因子打开用盲化因子打开n-1个文件确认其正确性个文件确认其正确性; (6)Alice在最后一个文件上签名并返回给在最后一个文件上签名并返回给Bob; (7)Bob用剩下的盲化因子读出他的化名及用剩下的盲化因子读出他的化名及Alice签名签名的外交豁免权文件的外交豁免权文件. Bob要欺骗的概率是要欺骗的概率是1/n.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议4.3 不经意传输协议不经意传输协议 案例案例:Bob想将一个想将一个500位的数位的数n分解分解,他知道他知道是是5个个100位数的乘积位数的乘积.Alice想以想以100美元卖给美元卖给Bob一个因子一个因子,但但Bob只有只有50美元美元,于是于是Alice将卖给将卖给Bob因子的一半因子的一半. 解决解决:Alice采用不经意传输协议传送一半消息给采用不经意传输协议传送一半消息给Bob,并用一个零知识证明让并用一个零知识证明让Bob相信是因子的一半相信是因子的一半. 不经意传输协议不经意传输协议: AliceBobkp1,kp2解密解密Dvj(Epi(k)= k i=j Dvj(Epi(k)=k用用k解密得到解密得到消息的一部分消息的一部分Ek(m1),Ek(m2)Epi(k)选择对称钥选择对称钥k产生产生kp1/kv1 和和kp2/kv2kv1,kv2中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议4.4 同时签约同时签约 案例案例: Alice和和Bob想签订合同想签订合同,已经协商好已经协商好内容内容,但每个人都想等对方签名后再签但每个人都想等对方签名后再签. 1.带仲裁者的签约带仲裁者的签约已有合约已有合约AliceTrentBob彼此已签彼此已签签合约副本签合约副本a签合约副本签合约副本b彼此已签彼此已签签署两份副签署两份副本留下一份本留下一份签合约两份副本签合约两份副本已有合约已有合约一份两人签好的合约一份两人签好的合约2.无需仲裁者的同时签约无需仲裁者的同时签约:面对面面对面 Alice和和Bob依次在合约上签上自己名字中的依次在合约上签上自己名字中的每一个字母每一个字母.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月3.无需仲裁者的同时签约无需仲裁者的同时签约:非面对面非面对面 协议中协议中Alice和和Bob交换一系列下面形式的签交换一系列下面形式的签名名:我同意以概率我同意以概率p接受这个合约约束。接受这个合约约束。 (1)Alice和和Bob协商一个完成日期协商一个完成日期,以及双方都愿以及双方都愿意接受的概率差意接受的概率差; (2) 高级协议第四章 密码协议 (3)重复到双方都收到重复到双方都收到p=1的消息或已到完成日期的消息或已到完成日期.判定判定: 如果在完成日期之前完成协议如果在完成日期之前完成协议,双方受合约约束双方受合约约束; 否则法官随机选否则法官随机选p,若若p(pA,pB)则双方受约束则双方受约束. AliceBobpA=apB=pA+bpA=pB+a中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议4.无需仲裁者的同时签约无需仲裁者的同时签约:使用密码技术使用密码技术 协议中协议中Alice和和Bob使用对称密码算法使用对称密码算法DES.协议描述协议描述: (1)Alice和和Bob随机选择随机选择2n个密钥分成个密钥分成n组组(kli,kri),对对n对消息对消息Li和和Ri分别用分别用kli和和kri加密加密,并传送给对方并传送给对方; (2)采用不经意传输协议将采用不经意传输协议将2n个密钥中的一半个密钥中的一半kli或或kri传送给对方传送给对方; (3)用收到的密钥解密出一半消息用收到的密钥解密出一半消息; (4)互相传给对方所有互相传给对方所有2n个密钥的每一个位个密钥的每一个位; (5)解密剩下的一半消息解密剩下的一半消息,合约被签署合约被签署; (6)双方交换在第双方交换在第(2)步中使用的私钥步中使用的私钥,验证未欺骗验证未欺骗.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议4.5 保密选举保密选举 要求要求:既能防止欺骗又能保护个人隐私既能防止欺骗又能保护个人隐私. 理想的协议理想的协议: (1)经授权经授权; (2)仅投一次仅投一次; (3)保密保密; (4)选票不能复制和修改选票不能复制和修改; (5)取保选票的计算取保选票的计算; (6)是否投票已知是否投票已知.1.简单投票协议简单投票协议I 采用中央制表机构采用中央制表机构CTF.VoterCTFETp(t)填写选票填写选票将选票解密将选票解密, 制制表表,公布结果公布结果中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议问题问题:不知道投票者的身份不知道投票者的身份,投票次数不定投票次数不定.2.简单投票协议简单投票协议II解密选票解密选票,检查检查签名签名,公布结果公布结果KTpVictorCTFSvv(t)tc签名签名ETp(s)s特点特点:保证了投票者的身份和投票次数保证了投票者的身份和投票次数.问题问题:CTF知道谁投了谁的票知道谁投了谁的票.3.使用盲签名投票使用盲签名投票 切断了投票者与选票的对应关系切断了投票者与选票的对应关系,但能保持鉴别但能保持鉴别.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议 (1)每个投票者产生每个投票者产生n个消息集个消息集(包括每一种可包括每一种可 能的结果能的结果),并用一个随机产生的识别号标识并用一个随机产生的识别号标识; (2)投票者将消息盲化后传送给投票者将消息盲化后传送给CTF; (3)CTF核查核查Voter是否重复投票是否重复投票,打开其中的打开其中的9个个 集合检查后对最后一个集合中的每一条消息签集合检查后对最后一个集合中的每一条消息签 名名,发给发给Voter,将投票者的名字保存将投票者的名字保存; (4)用盲因子除去消息的隐蔽用盲因子除去消息的隐蔽,留下留下CTF签名的一签名的一 组选票组选票; (5)投票者选择其中的一张选票用投票者选择其中的一张选票用CTF公钥加密后公钥加密后 投给投给CTF; (6)CTF解密解密,检查签名检查签名,检查数据库中是否有重检查数据库中是否有重 复识别号复识别号,保存这个序号并将选票制表保存这个序号并将选票制表,公布选公布选 举结果及序号举结果及序号.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议分析分析: (1)序列号避免同一张选票投两次序列号避免同一张选票投两次; (2)盲签名协议防止将投票者姓名和选票序列号盲签名协议防止将投票者姓名和选票序列号联系起来联系起来; (3)分割选择协议保证选票的唯一性分割选择协议保证选票的唯一性; (4)公布序列号使投票者能肯定他们的选票被正确公布序列号使投票者能肯定他们的选票被正确地统计地统计; (5)不能避免不能避免CTF自己产生大量的选票进行欺骗自己产生大量的选票进行欺骗.可以采用有两个可以采用有两个CF的投票的投票: 中央合法机构中央合法机构CLA:证明投票者证明投票者; 中央制表机构中央制表机构CTF:计票计票. 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议4.6 匿名消息广播匿名消息广播 案例案例:Alice,Bob和和Carol在餐馆进餐在餐馆进餐,账单账单匿名支付的匿名支付的.如何确定他们三人中的一个付账还是如何确定他们三人中的一个付账还是NSA付账呢?付账呢? 游戏游戏:两两抛币两两抛币,每个人说出与其他两人抛币的每个人说出与其他两人抛币的正反面是正反面是“相同相同”或或“不同不同”;付账的人说相反的结果付账的人说相反的结果.判断依据判断依据: 奇数奇数:三人中的一个在付账三人中的一个在付账; 说说“不同不同”的人数为的人数为 偶数偶数:NSA付账付账.BobAliceCarol正正反反反反中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议4.7 数字现金数字现金 案例案例:要求消息可以确认要求消息可以确认,但不可跟踪但不可跟踪. 数字现金数字现金:要求匿名要求匿名; 银行和政府不原意放弃审计追踪控制银行和政府不原意放弃审计追踪控制. 协议协议1:关于匿名汇票的简单化协议关于匿名汇票的简单化协议.商人商人签名汇票签名汇票货物货物签名汇票签名汇票Alice银行银行100个信封个信封准备准备100个装有个装有1000美元的汇票美元的汇票和复写纸的信封和复写纸的信封签名信封签名信封开启开启99个确认个确认,在最后在最后1个上签名个上签名,并从并从Alice帐上扣除帐上扣除1000美元美元检查银行签名检查银行签名银行验证汇票并将银行验证汇票并将1000美元划入商人帐户美元划入商人帐户中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议分析分析: 匿名性由盲签名来保证匿名性由盲签名来保证; 签名有效性由分割选择协议来保证签名有效性由分割选择协议来保证. 问题问题1:双重花费双重花费.在每一张汇票上包含一个不同且在每一张汇票上包含一个不同且唯一的随机字符串唯一的随机字符串,银行在签名时确认汇票或验证签名银行在签名时确认汇票或验证签名时检查随机字符串的唯一性时检查随机字符串的唯一性. 问题问题2:当银行发现有人进行双重花费问题当银行发现有人进行双重花费问题,但不但不知道是知道是Alice欺骗商人还是商人试图欺骗银行欺骗商人还是商人试图欺骗银行. 当商人检查银行签名以确信汇票合法后当商人检查银行签名以确信汇票合法后,要求要求Alice在汇票上写上识别串在汇票上写上识别串(商人无法改变商人无法改变).银行验证签名并检查数据库中的唯一串银行验证签名并检查数据库中的唯一串:无无:划帐划帐,并保存识别串和唯一串并保存识别串和唯一串;有有:拒收拒收,根据识别串根据识别串与数据库相同与数据库相同:商人欺骗商人欺骗 与数据库不同与数据库不同:Alice欺骗欺骗 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议 问题问题3: Alice可能会第二次花一张有同样可能会第二次花一张有同样识别串的汇票陷害商人识别串的汇票陷害商人. 采用秘密分割技术用来在数字汇票中隐藏采用秘密分割技术用来在数字汇票中隐藏Alice的名字的名字. Alice准备准备n张张1000美元的汇票美元的汇票: 面值面值:1000 唯一字符串唯一字符串: x 识别字符串识别字符串: I1=(I1L,I1R) In=(InL,InR) 任意一对任意一对Ii=(IiL,IiR)都能揭示都能揭示Alice的身份的身份.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 高级协议第四章 密码协议给出给出相应相应识别识别串的串的左半左半或者或者右半右半n张汇票张汇票商人商人签名汇票签名汇票随机的随机的n位选择串位选择串汇票及鉴别串汇票及鉴别串Alice银行银行签名汇票签名汇票随机选随机选n-1张验证张验证,在最后一在最后一张上签名张上签名, 扣除扣除1000美元美元检查银行签名检查银行签名银行验证签名并银行验证签名并核对唯一字符串核对唯一字符串无无: 划帐划帐,并保存识别串和唯一串并保存识别串和唯一串;有有: 拒收拒收,根据识别串根据识别串相同相同:商人欺骗商人欺骗 不同不同:找出一对找出一对Ii,揭示揭示Alice 欺骗概率为欺骗概率为1/n欺骗概率为欺骗概率为1/2n中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第五章 密码模式5.1 电子密码本模式电子密码本模式ECB 是最容易运行的模式是最容易运行的模式. 1.特点特点 (1)将明文分组独立地进行加密将明文分组独立地进行加密,因此对加密如数因此对加密如数据库等随机存取文件非常方便据库等随机存取文件非常方便; (2)可以独立地对不同的分组进行加解密可以独立地对不同的分组进行加解密. 2.缺点缺点 (1)如果消息有固定的格式如果消息有固定的格式,如发送者如发送者,接收者和接收者和日期等信息的消息头和消息尾日期等信息的消息头和消息尾,由于存在冗余会给攻由于存在冗余会给攻击者更多的信息击者更多的信息; (2)易受分组重放攻击易受分组重放攻击,攻击者可以在不知道密钥攻击者可以在不知道密钥 的情况下修改被加密的消息的情况下修改被加密的消息,以欺骗接收者以欺骗接收者. 分组密码运行模式分组密码运行模式: 由基本密码由基本密码,一些反馈和一些简单运算组成一些反馈和一些简单运算组成.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第五章 密码模式3.填充方案填充方案 由于大多数消息可能会在尾部出现一个短分组由于大多数消息可能会在尾部出现一个短分组,要采用一些方式将其填充成一个完整的分组要采用一些方式将其填充成一个完整的分组. (1)规则模式规则模式:全全0,全全1或者或者0,1交替填充交替填充; 例如例如:假设分组为假设分组为64位位,最后一个分组为最后一个分组为24位位X X X 0 0 0 0 5表示填充了表示填充了5个字节个字节中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第五章 密码模式(2)密文挪用方案密文挪用方案EkP1C1EkPn-1Cn CEkCn-1Pn C加密加密:密文密文: C1C2Cn-1CnDkC1P1DkCn-1Pn CDkPn-1Cn C解密解密:明文明文: P1P2Pn-1Pn中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第五章 密码模式4.分组重放攻击分组重放攻击 举例举例:不同银行的帐号之间的转账系统不同银行的帐号之间的转账系统 0 1 2 3 4 5 6 7 8 9 10 11 12时间时间标记标记发送发送银行银行接收接收银行银行储户姓名储户姓名帐号帐号金额金额重放攻击重放攻击: Mallory窃听银行间的通信线路窃听银行间的通信线路. 从从A银行转账银行转账100美元到他在美元到他在B银行的帐上银行的帐上,重复重复 该过程并记录消息该过程并记录消息,最终找到授权将最终找到授权将100美元转到他美元转到他 帐上的消息帐上的消息,于是可以按照他的意愿在通信链路中插于是可以按照他的意愿在通信链路中插 入消息入消息,每发一次就有每发一次就有100美元入帐美元入帐. 防范防范:加入时间标记加入时间标记. 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第五章 密码模式分组重放攻击分组重放攻击: Mallory可以挑选可以挑选8个与他名字和帐号相对应的个与他名字和帐号相对应的密文分组密文分组411将其他人从将其他人从A银行发到银行发到B银行的转账替银行的转账替换即可换即可. 防范防范:(1)银行频繁改变密钥银行频繁改变密钥; (2)最好的方法是采用分组连接方式最好的方法是采用分组连接方式.5.2 密文分组链接模式密文分组链接模式CBC 将前一分组的加密结果反馈到当前分组的加密中将前一分组的加密结果反馈到当前分组的加密中. 类似的有类似的有:明文分组链接模式明文分组链接模式PBC. 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第五章 密码模式加密加密:Ci=Ek(PiCi-1)解密解密:EkCiRCi-1EkPiPi=Ci-1Dk(Ci) 其中其中C0=IV称为初始向量称为初始向量.DkPi+1CiPiDkCi+1Ci-1中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第五章 密码模式1.初始向量初始向量 问题问题:CBC模式仅在前面的明文分组不同时模式仅在前面的明文分组不同时才能将完全相同的明文分组加密成不同的密文分组才能将完全相同的明文分组加密成不同的密文分组. 因此因此:任意两则消息在它们的第一个不同之处任意两则消息在它们的第一个不同之处出现前加密结果相同出现前加密结果相同.为了防止这种情况为了防止这种情况,采用加采用加密随机数据作为第密随机数据作为第1个分组个分组,称为初始化向量称为初始化向量IV,将每个消息唯一化将每个消息唯一化. IV不需保密不需保密,可以以明文形式与密文一起传送可以以明文形式与密文一起传送.2.填充填充 可以象可以象ECB模式一样进行填充模式一样进行填充.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第五章 密码模式5.3密码反馈模式密码反馈模式CFB 举例举例:对于一个对于一个64位的分组位的分组,采用采用n位位CFB模式模式的工作原理为的工作原理为:(假设假设n为为8)Pij最左端字节最左端字节j=18kjk加密加密CijCi-1Ci-1 一开始一开始C0用用IV填充填充,然后加密成然后加密成C0,将将C0和和P1的的低低8位异或位异或,形成密文的形成密文的8位位,并将此并将此8位加入到位加入到C0的的序列中序列中,重复此过程重复此过程,直到直到P1加密完毕加密完毕,形成形成C1.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第五章 密码模式 如果算法的分组是如果算法的分组是n位位,则则n位位CFB模式类似模式类似CBC模式模式. EkCi-1Pi-1EkCiPiCi+1Pi+1加密加密: Ci=PiEk(Ci-1)解密解密: Pi=CiDk(Ci-1)中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第五章 密码模式5.4输出反馈模式输出反馈模式OFB 与与CFB模式类似模式类似,但其反馈机制独立于明文但其反馈机制独立于明文和密文而存在和密文而存在,因此可以将大部分工作于明文存在因此可以将大部分工作于明文存在之前进行之前进行,当消息最终到达时当消息最终到达时,它可以与算法的输出它可以与算法的输出相异或产生密文相异或产生密文. 将前一个将前一个n位输出分组送入队列最右端的位置位输出分组送入队列最右端的位置.Pi最左端字节最左端字节kik加密加密CiCi-1Si-1Si中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第五章 密码模式 如果算法的分组是如果算法的分组是n位位,则则n位位OFB模式模式加密加密: Ci=PiSi Si=Ek(Si-1)EkSi-1EkCiPiCi+1Pi+1解密解密: Pi=CiSi Si=Ek(Si-1)中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第五章 密码模式5.5其他分组密码模式其他分组密码模式 1.分组链接模式分组链接模式BC 简单地将分组密码算法的输入与前面所有密文简单地将分组密码算法的输入与前面所有密文分组的异或值相异或分组的异或值相异或. 加密加密: Ci=Ek(PiFi) Fi+1=FiCi 解密解密: Pi=FiDk(Ci) Fi+1=FiCi 其中其中: F1=IV2.扩散分组密码链接模式扩散分组密码链接模式PCBC 与与CBC模式不同的在加密前将前面的明文分组模式不同的在加密前将前面的明文分组,密文分及当前明文分组相异或密文分及当前明文分组相异或.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第五章 密码模式加密加密: Ci=Ek(PiCi-1Pi-1)解密解密: Pi= Ci-1Pi-1Dk(Ci)CiCi+1EkPiCi-1EkPi-1EkPi+1 PCBC模式被用在模式被用在Kerberos 4中加密中加密,但但Kerberos 5发现了其存在问题发现了其存在问题,用用CBC模式取代模式取代. 问题问题:交换两个密文分组交换两个密文分组,由于明文和密文异由于明文和密文异或的性质或的性质,错误将抵消错误将抵消,因此因此,可以欺骗接收者接可以欺骗接收者接收部分错误的信息收部分错误的信息.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第五章 密码模式 原明文:原明文:P1 P2 P3 P4 原密文:原密文:C1 C2 C3 C4 新明文:新明文:P1=P1 P2=P2 P3=P3 P4=P4 新密文:新密文:C1=C1 C2=C3 C3=C2 C4=C4 则有:则有: C2=Ek(P2C1P1) C3=Ek(P3C2P2) C4=Ek(P4C3P3) 解密:解密: P2=C1P1Dk(C2)=C1P1P3C2P2 P3=C2P2Dk(C3) =C3 C1P1P3C2P2P2C1P1 =C3P3C2 P4=C3P3Dk(C4) =C2C3P3C2P4C3P3= P4(正确正确)中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第六章 密钥管理6.1密钥长度密钥长度 对称密码系统的安全性:对称密码系统的安全性: 算法强度算法强度+密钥长度密钥长度 穷举攻击是一种已知明文攻击穷举攻击是一种已知明文攻击,通过已知的明文通过已知的明文和密文对去猜测密钥和密文对去猜测密钥.其复杂度为其复杂度为: 假设某超级计算机每秒能检测假设某超级计算机每秒能检测106个密钥个密钥. 密钥长度密钥长度 时间时间 8 28=256 56 256=2285年年 128 2128=1025年年 2048 22048=10597年年 密码设计人员密码设计人员:对任意新的算法进行怀疑对任意新的算法进行怀疑;信任信任那些专业密码人员分析了多年而未能攻破的算法那些专业密码人员分析了多年而未能攻破的算法. 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第六章 密钥管理 公钥密码系统的安全性公钥密码系统的安全性: 数学难题数学难题:因子分解因子分解,离散对数离散对数,单向陷门单向陷门 大数因子分解的困难性大数因子分解的困难性数论和复杂度理数论和复杂度理论的发展使其改变论的发展使其改变.如如1977年年Rivest称称“分解一个分解一个125位的数据需位的数据需401015年年”,但但1994年一个年一个129位的数据被成功破解位的数据被成功破解. 因子分解算法不断改进因子分解算法不断改进; 密钥长度与时间代价之间的权衡密钥长度与时间代价之间的权衡:攻击者值得考攻击者值得考虑的问题是破译的明文消息的价值和破译所花的金虑的问题是破译的明文消息的价值和破译所花的金钱之间的权衡钱之间的权衡.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第六章 密钥管理案例案例: 美国海军的加密密钥很多年前就已经被内贼美国海军的加密密钥很多年前就已经被内贼卖到了苏联卖到了苏联. 在现实世界里在现实世界里,密钥管理是密码学领域最困难的密钥管理是密码学领域最困难的部分部分;在人身上找漏洞比在密码系统中找漏洞更容易在人身上找漏洞比在密码系统中找漏洞更容易.6.2 产生密钥产生密钥 密钥的产生对系统的安全至关重要密钥的产生对系统的安全至关重要. 1.密钥空间密钥空间 DES密钥长度为密钥长度为56位位,有有256种可能的密钥种可能的密钥; 另外有些软件要求另外有些软件要求:强制每个字节的最高位为强制每个字节的最高位为0, 忽略每个字节的最低位忽略每个字节的最低位,不区分大小写等等不区分大小写等等.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第六章 密钥管理2.密钥选择密钥选择 人们再选择自己的密钥时人们再选择自己的密钥时,通常选择一个弱通常选择一个弱密钥密钥,如选择的是如选择的是zs111而不是而不是*9(hH/A.许多加许多加密算法都有弱密钥密算法都有弱密钥(DES有有16个个). 字典攻击字典攻击: 首先尝试最可能的密钥首先尝试最可能的密钥,非常有效非常有效,能破译一般能破译一般计算机上计算机上40的口令的口令. 常用的攻击方式常用的攻击方式: (1)用户姓名用户姓名,简写字母简写字母,帐户等有关个人信息帐户等有关个人信息; (2)从各种数据库中得到的单词从各种数据库中得到的单词; (3)各种单词的不同置换形式各种单词的不同置换形式,如大小写如大小写,误写误写; (4)尝试词组尝试词组.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第六章 密钥管理3.随机密钥随机密钥 好密钥是指那些随机产生的位串好密钥是指那些随机产生的位串. 随机产生随机产生: 可靠的随机源可靠的随机源; 安全的伪随机位发生器安全的伪随机位发生器. 要求要求:密钥既容易记忆密钥既容易记忆,又难以被猜中又难以被猜中. 建议建议: 加入标点符号加入标点符号; 由较长的短语的首字母组成字母串由较长的短语的首字母组成字母串.4.密钥生成密钥生成 (1)密钥碾碎技术密钥碾碎技术 把容易记忆的短语转换为一个伪随机位串把容易记忆的短语转换为一个伪随机位串;中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第六章 密钥管理(2)X9.17密钥产生密钥产生 ANSI X9.17标准规定标准规定:采用三重采用三重DES加密加密算法产生会话密钥或伪随机数算法产生会话密钥或伪随机数.Ek()Ek(Ti)TiViEk()RiVi+1Ek(x):用特殊密钥用特殊密钥k对对x三重三重DES加密加密.随机密钥随机密钥Ri的产生的产生: Ri=Ek(Ek(Ti)Vi) Vi+1=Ek(Ek(Ti)Ri)V0: 秘密的秘密的64位种子位种子;T: 时间标记时间标记.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第六章 密钥管理5.密钥传输和验证密钥传输和验证 案例案例:Alice和和Bob采用对称加密算法进行通信采用对称加密算法进行通信,Alice如何将随机产生的密钥副本传给如何将随机产生的密钥副本传给Bob? 方法方法:采用有采用有Trent的对称算法或者公钥算法。的对称算法或者公钥算法。 AliceBobAlice亲自送亲自送可靠的信使可靠的信使密钥加密密钥密钥加密密钥数字签名数字签名KDC签名的公钥签名的公钥X9.17标准标准: 密钥加密密钥和数据加密密钥密钥加密密钥和数据加密密钥.另一种方法另一种方法: 将密钥分成许多不同的部分采用不同信道传出将密钥分成许多不同的部分采用不同信道传出去去,即秘密分割协议或者秘密共享协议即秘密分割协议或者秘密共享协议.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第六章 密钥管理7.密钥使用密钥使用 (1) 软件加密并不安全软件加密并不安全.在多用户多任务环境中在多用户多任务环境中,操作系统随时可能终止加密的运行操作系统随时可能终止加密的运行,将加密应用程序将加密应用程序和密钥写在磁盘上和密钥写在磁盘上. (2)硬件加密相对安全硬件加密相对安全.许多加密设备被设计成能够许多加密设备被设计成能够擦除密钥擦除密钥. (3)通信中使用密钥交换协议通信中使用密钥交换协议:会话密钥不保存会话密钥不保存. (4)密钥使用的期限密钥使用的期限.8.密钥更新密钥更新 从旧密钥中产生新的密钥,如用从旧密钥中产生新的密钥,如用Hash函数。函数。中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第六章 密钥管理 9.密钥存储密钥存储 (1)最简单的是单用户的密钥存储最简单的是单用户的密钥存储. (2)用磁条卡用磁条卡,ROM芯片或智能卡存储密钥芯片或智能卡存储密钥. (3)美国美国STU-III保密电话保密电话:密钥分成两部分密钥分成两部分,一一部分存入终端部分存入终端,一部分存入一部分存入ROM芯片芯片. (4)采用密钥加密密钥采用密钥加密密钥:将私钥用密钥加密密钥加将私钥用密钥加密密钥加密后保存在磁盘上密后保存在磁盘上,恢复时将加密密钥输入到解密程恢复时将加密密钥输入到解密程序中即可序中即可. 10.密钥备份密钥备份 密钥托管方案密钥托管方案;秘密共享方案秘密共享方案. 11.密钥销毁密钥销毁 物理的物理的:粉碎粉碎; 软件的软件的:采用特殊的删除程序采用特殊的删除程序.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第六章 密钥管理6.3公钥的密钥管理公钥的密钥管理 网络中公钥的获得网络中公钥的获得: (1)从对方处获得从对方处获得; (2)从可信的中央数据库获得从可信的中央数据库获得; (3)从自己的私人数据库获得从自己的私人数据库获得. 1.公钥证书公钥证书 由可信赖的人或者机构签发由可信赖的人或者机构签发,防止中间人攻击防止中间人攻击. 典型典型: PEM,X.509协议协议 证书证书: 包括姓名包括姓名,地址地址,公钥公钥,CA的签名等等的签名等等.证书链:证书链:可信任代理机构可信任代理机构一个唯一可信任的实体一个唯一可信任的实体CA雇员雇员中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第六章 密钥管理存在的问题存在的问题: (1)通过证书能对身份信任到什么程度通过证书能对身份信任到什么程度? (2)某人与某人与CA的关系的关系? (3)谁可以作为唯一可信实体谁可以作为唯一可信实体? (4)证书链可以有多长证书链可以有多长?2.分布式密钥管理分布式密钥管理 用于用于PGP的分布式密钥管理的分布式密钥管理,通过介绍人通过介绍人. 由于由于Bob的公钥上有的公钥上有Carol的签名的签名,而而Carol是是Alice的朋友的朋友,故故Alice有理由相信有理由相信Bob的公钥的公钥. BobCarolAlice中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 鉴别方案第七章 实用协议 Feige,Fiat和和Shamir改进的著名的身份的零改进的著名的身份的零知识证明方案知识证明方案1986年在以色列年在以色列,欧洲和美国会议上欧洲和美国会议上公布公布. 鉴别方案可以转换为数字签名方案鉴别方案可以转换为数字签名方案,用一个单向用一个单向函数取代鉴别者函数取代鉴别者Victor即可即可.7.1 Feige-Fiat-Shamir算法算法 1.简化方案简化方案 可信仲裁方产生可信仲裁方产生n为两大素数之积为两大素数之积,选取选取v,满足满足: x2v mod n有解且有解且v-1 mod n存在存在 则则Peggy的的公钥公钥: v 私钥私钥: min s|ssqrt(v-1) mod n中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 鉴别方案第七章 实用协议 协议描述协议描述:PeggyVictorx=r2 mod n选选rn验证验证y2vb是否等于是否等于x选随机位选随机位b(0或或1)b计算计算y=rsb mod ny 2.Feige-Fiat-Shamir身份鉴别方案身份鉴别方案 可信仲裁方产生可信仲裁方产生n为两大素数之积为两大素数之积,选取选取vi(1ik)满足满足: x2vi mod n有解且有解且vi-1 mod n存在存在则则Peggy的的公钥公钥: vi 私钥私钥: si = min sqrt(vi-1) mod n中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 鉴别方案第七章 实用协议 协议描述:协议描述:PeggyVictorx=r2 mod n选选rn验证验证k位随机二进制串位随机二进制串b1bkb1bk计算计算y重复重复t次次,则则Peggy欺骗欺骗Victor的概率为的概率为1/2kt 是否等于是否等于x中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 鉴别方案第七章 实用协议举例举例: n=35=57,则满足条件的则满足条件的v为为: v v-1 s=sqrt(v-1) 1 1 1 4 9 3 9 4 2 11 16 4 16 11 9 29 29 8 Peggy取取4,11,16,29为公钥为公钥,相应的私钥为相应的私钥为: 3,4,9,8 (1)Peggy选选r=16,计算计算x=r2 mod n =162 mod 35=11 (2)Victor发随机串发随机串1101给给Peggy (3)Peggy计算计算: y=1631419081 mod 35=31 (4)Victor验证验证:31241111160291 mod 35=11中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 鉴别方案第七章 实用协议 3.加强方案加强方案 将身份鉴别信息将身份鉴别信息I(如名字如名字,地址等地址等)嵌入协议中嵌入协议中. 用单向散列函数用单向散列函数,连同一系列连同一系列j,计算计算 H(I,j) v1,v2,vk Peggy的公钥为的公钥为I和一串和一串j值值. 4.Fiat-Shamir签名方案签名方案 初始设置初始设置:类似鉴别方案类似鉴别方案.AliceBobbij,m,yi(i=1t)随机选随机选t个个r1rt,计算计算xi=ri2 mod n,得到位序列得到位序列H(m,x1xt),选选bij,计算计算y1yt根据根据v1vk计算计算z1zt验证签名验证签名H(m,z1zt)开始的开始的kt位是否等于位是否等于bij中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 鉴别方案第七章 实用协议7.2Guillou-Quisquater方案方案 1.适用于智能卡应用的身份鉴别方案适用于智能卡应用的身份鉴别方案 Peggy的身份是一些凭证的集合的身份是一些凭证的集合,记为记为J. 公钥公钥: J v n 私钥私钥: B 满足满足JBv 1 mod n Peggy将将J发给发给Victor,为了证明为了证明J是他的凭证是他的凭证,必必须向须向Victor证明他知道证明他知道B.PeggyVictorT=rv mod n选选rn计算计算DvJd mod n是否等于是否等于T随机选随机选d,0dv-1d计算计算D=rBd mod nD中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 鉴别方案第七章 实用协议 2.数字签名方案数字签名方案AliceBobT=rv mod n选选rn,计算计算计算计算T=DvJd mod n和和d=H(m,T),判断,判断d是否等于是否等于d计算计算d=H(m,T),dv计算计算D=rBd mod nm,d,J,D 3.多重签名方案多重签名方案 多个人对同一文件签名多个人对同一文件签名. 前提前提: n,v是系统公有的是系统公有的.Alice和和Bob有有(JA,BA)和和(JB,BB)对消息对消息m签名签名,其他人如其他人如Carol可验证签名可验证签名.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 鉴别方案第七章 实用协议AliceBobTA=rAvmod n选选rA,计算计算计算计算T=(TATB)mod n 和和d=H(m,T)计算计算DA=rABAd mod nTATA=rBvmod n选选rB,计算计算计算计算T=(TBTA)mod n 和和d=H(m,T)计算计算DB=rBBBd mod nTBDADB计算计算D=DADB mod n,签名组成签名组成:m,d,D,JA,JB Carol验证验证: 计算计算J=JAJB mod n 计算计算T=DvJd mod n和和d=H(m,T) 验证验证d是否等于是否等于d中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 鉴别方案第七章 实用协议7.3Schnorr算法算法 特点特点: 安全性基于离散对数安全性基于离散对数;签名很短签名很短. 前提前提: 两个大素数两个大素数p,q,q|p-1 以及以及a1,aq=1 mod p 私钥私钥: 随机选随机选sq 公钥公钥: v,满足满足v=a-s mod p 1.鉴别协议鉴别协议PeggyVictorx选选rn计算计算x=ar mod p计算计算ayve mod p是否等于是否等于x随机选随机选e,-1e2te计算计算y=(r+se)mod py中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 鉴别方案第七章 实用协议2.数字签名协议数字签名协议AliceBob选选rn计算计算x=ar mod p计算计算x=ayve mod p和和e=H(m,x)验证验证e是否等于是否等于ee,y计算计算y=(r+se)mod p计算计算e=H(m,x)中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 密钥交换第八章 实用协议8.1 Diffie-hellman算法算法 1976年发明年发明,基于离散对数难题基于离散对数难题,用于密钥分配用于密钥分配. 1.协议描述协议描述 前提前提:Alice和和Bob协商一个大的素数协商一个大的素数p和准原根和准原根g.AliceBob随机选随机选xX=gx mod p计算计算k=Yx=Xy mod p=gxy mod p随机选随机选yY=gy mod p 安全性取决于安全性取决于g和和p的选取的选取. DH密钥交换协议很容易扩充到三人或者更多的人密钥交换协议很容易扩充到三人或者更多的人. 椭圆曲线上的椭圆曲线上的DH密钥交换协议密钥交换协议. 2.中间人攻击中间人攻击 如何发起攻击如何发起攻击?如何让防止如何让防止?中南大学信息科学与工程学院计算机系 段桂华2011年年2月月8.2 Shamir的三次传输协议的三次传输协议 允许允许Alice和和Bob在互不知道对方密钥的情况下在互不知道对方密钥的情况下通信通信.但不能防止中间人攻击但不能防止中间人攻击. 协议描述协议描述: 前提前提:Alice和和Bob有各自的密钥有各自的密钥kA和和kB,E为可交为可交换的加密算法换的加密算法(如异或如异或,指数指数) .AliceBob选选mEA(m)解密解密将收到的信息加密将收到的信息加密EB(EA(m)EB(m)用用kB解密获得解密获得m 密钥交换第八章 实用协议中南大学信息科学与工程学院计算机系 段桂华2011年年2月月8.3 加密密钥交换加密密钥交换EKE协议协议 Steve Bellovin 和和Michael Merritt设计设计,用用共享密钥加密随机产生的公开密钥共享密钥加密随机产生的公开密钥,建立会话密钥建立会话密钥. 前提前提:Alice和和Bob共享公共口令共享公共口令p,要生成临时的要生成临时的会话密钥会话密钥k.AliceBob产生产生kAp/kAvA,Ep(kAp)解密得解密得k,选选RA解密得到解密得到kAp,选选kEp(EAp(k)Ek(RA)解密获得解密获得RA,选选RBEk(RA,RB)解密得解密得RA和和RB验证验证RAEk(RB)解密并验证解密并验证RB通过则采用通过则采用k 密钥交换第八章 实用协议中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 密钥交换第八章 实用协议 8.4密钥分发协议密钥分发协议 Tatebayashi-Matsuzaki-Newman网协议网协议. Alice通过通过Trent(KDC)与与Bob产生产生ks. 前提前提:网络中所有用户都知道网络中所有用户都知道Trent的公钥的公钥n, Trent易求解易求解x1/3 mod n.AliceTrentBobrArBrA3 mod nrB3 mod n随机选随机选rA用私钥恢复用私钥恢复rA和和rB通知通知Bob计算计算(rArB)rA得到得到rB作为作为ks 攻击攻击:Carol和和Dave可以窃听到可以窃听到rB3 mod n获得获得rB.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 阈下信道第九章 实用协议 9.1阈下信道阈下信道 Alice和和Bob在在Walter的监控下通过传送签名的监控下通过传送签名消息消息m来传送秘密来传送秘密x. 要求要求:Walter和和Bob都能验证都能验证m; Water无法发现无法发现x. (1)Ong-Schnorr-Shamir Alice选择一个公开的模数选择一个公开的模数n和一个与和一个与Bob共享的共享的k. Alice的公钥为的公钥为:h=-k-2 mod n =-(k-1)2 mod n 私钥为私钥为:n gcd(m,n)=1且且gcd(x,n)=1中南大学信息科学与工程学院计算机系 段桂华2011年年2月月AliceBob计算计算:s1=1/2(m/x+x) mod n s2=k/2(m/x-x) mod n对消息对消息m的签名为的签名为s1和和s2Walter 验证验证:s12+hs22=m mod n验证验证:s12-s22/k2=m mod n计算计算:x=m/(s1+s2k-1) mod n (2)ElGamal 大素数大素数p以及以及g Alice的私钥为的私钥为: r 公钥为公钥为: k=gr mod p gcd(x,p-1)=1 m,x,p互素互素 阈下信道第九章 实用协议中南大学信息科学与工程学院计算机系 段桂华2011年年2月月AliceBob计算计算: s=gx mod p m=(rs+xy) mod p-1对消息对消息m的签名为的签名为s和和yWalter 验证验证:kssy=gm mod p验证验证:(gr)ssy=gm mod p计算计算:x=y-1(m-rs) mod p-1 举例举例:p=11,g=2,r=8,Alice利用消息利用消息m=5的签的签名来发送消息名来发送消息x=9. 分析其过程分析其过程. 阈下信道第九章 实用协议中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 专用算法第十章 实用协议 10.1加密数据计算加密数据计算 如离散对数问题如离散对数问题.Alice有一个有一个x,想得到想得到e,使得使得: ge=x mod p 但又不让但又不让Bob知道知道x,设设Bob能计算离散对数能计算离散对数.AliceBob要求要求Bob计算计算ge=x mod p选选rp,计算计算x=xgr mod p计算出计算出ee计算计算e=(e-r) mod p-1 分析分析: ge=x mod p ge=xgr mod p=gegr mod p=ge+r mod p ge-e-r=1 mod p e-e-r=k(p)=k(p-1) e=(e-r) mod p-1 中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 10.2保密的多方计算保密的多方计算问题问题: Ailce有有I,Bob有有j,在不泄露在不泄露i和和j的的情况下比较情况下比较i和和j的大小的大小.(姚氏百万富翁问题姚氏百万富翁问题)假定假定0i,j101,Bob的公钥为的公钥为kBP,私钥为私钥为kBV协议如下协议如下:Alicec-i随机选随机选x计算计算c=EBp(x) Bob计算计算100个数个数:yu=DBV(c-i+u),0u3,0zup-1,0uj 专用算法第十章 实用协议中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 专用算法第十章 实用协议 10.3公平的硬币抛掷公平的硬币抛掷 Bob知道抛币结果知道抛币结果,但无法改变但无法改变,Alice猜测猜测. 利用平方根的硬币抛掷利用平方根的硬币抛掷 Bob公布抛币结果公布抛币结果. 验证子协议验证子协议:Alice将将p和和q发给发给Bob验证验证.AliceBobn=pq选选p和和q选选rn/2x计算计算z模模n的平方根的平方根猜测猜测r为其中的一个为其中的一个z=r2 mod n若若r=x,Alice正确正确,抛币结抛币结果为正面果为正面,否则为反面否则为反面中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 专用算法第十章 实用协议 10.4Diffie-Hellman密钥托管方案密钥托管方案 以软件方式进行密钥托管以软件方式进行密钥托管. Alice选择选择5个比个比p-1小的整数小的整数S1S5, Alice的私钥为的私钥为:S=(S1+S2+S3+S4+S5) 公钥为公钥为:t=gS mod pAlice1号托管人号托管人si,ti计算计算ti=gsi mod p si,titi号托管人号托管人KDC验证验证:t=t1t2t3t4t5 mod p成立则认可该公钥成立则认可该公钥 :验证验证ti=gsi mod p 对对ti签名签名,保存保存si签名的签名的ti中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 专用算法第十章 实用协议 10.5知识的零知识证明知识的零知识证明离散对数的零知识证明离散对数的零知识证明 问题问题: Peggy向向Victor证明他知道证明他知道Ax mod p 但不泄漏但不泄漏x,其中其中p为素数为素数,gcd(x,p-1)=1,A,B,p公开公开.协议如下协议如下:Peggyh1ht产生产生t个随机数个随机数r1rtp-1计算计算hi=Ari mod p 用投币协议产生用投币协议产生b1bt(bi=0) ri (bi=1) si=(ri-rj) mod p-1Victor选择选择j为为bj=1时时的最小的的最小的j验证验证:(bi=0) Ari=hi mod p (bi=1)Asi=hihj-1 mod pz=(x-rj) mod p-1进一步验证进一步验证:Az=Bhj-1 mod p中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 专用算法第十章 实用协议 10.6盲签名盲签名 David Chaum发明了盲签名的概念发明了盲签名的概念 Bob的公钥为的公钥为e,私钥为私钥为d,RSA模数为模数为n. 问题问题: Ailce让让Bob对消息对消息m盲签名盲签名. 协议如下协议如下:Alicet随机选随机选1kn计算计算t=mke mod n Bobs =td/k mod n =mdked/k mod n =md mod n用用d对对t签名签名td=(mke)d mod n中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第十一章 应 用11.1通信信道加密通信信道加密 问题问题:Alice传一个安全的消息给传一个安全的消息给Bob. 解决解决:理论上加密可以在理论上加密可以在OSI模型的任何层进模型的任何层进行行;实际上加密一般在最底层或较高层进行实际上加密一般在最底层或较高层进行. 主要有两种方式主要有两种方式:链链-链加密和端链加密和端-端加密端加密.二者比较二者比较: 链链-链加密链加密 端端-端加密端加密 优点优点: 易操作易操作,安全安全 保密级别更高保密级别更高 密钥管理简单密钥管理简单 软件更易完成软件更易完成 缺点缺点: 中间节点数据易中间节点数据易 密钥管理困难密钥管理困难 被暴露被暴露,开销大开销大 允许流量分析允许流量分析 两者各有优缺点两者各有优缺点,将其结合是一种有效的网络安将其结合是一种有效的网络安全方法全方法.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第十一章 应 用1.链链-链加密链加密 (1)所有数据都被加密所有数据都被加密,有效有效,亦称流量保密亦称流量保密; (2)发送与接收端之间的任何节点在处理数据发送与接收端之间的任何节点在处理数据之前需要解密之前需要解密.Ek1()节点节点1PDk3()节点节点4Dk1()节点节点2Ek2()Dk2()节点节点3Ek3()P2.端端-端加密端加密 (1)数据被选择加密数据被选择加密,只在接收端解密只在接收端解密; (2)制造端制造端-端加密设备很困难端加密设备很困难,因为每一个特殊的因为每一个特殊的通信系统有其自身的协议通信系统有其自身的协议.Ek4()节点节点1PDk4()节点节点4PEk4()节点节点2Ek4()节点节点3中南大学信息科学与工程学院计算机系 段桂华2011年年2月月第十一章 应 用 11.2IBM秘密密钥管理协议秘密密钥管理协议 70年代末年代末,IBM公司采用对称密码学开发了一个公司采用对称密码学开发了一个完整的密钥管理系统完整的密钥管理系统:密钥的自动化产生密钥的自动化产生,分发分发,安安装装,存储存储,更新以及清除等更新以及清除等. 协议提供三项功能协议提供三项功能: (1)一个服务器与多个终端之间的安全通信一个服务器与多个终端之间的安全通信; (2)服务器上安全的文件存储服务器上安全的文件存储; (3)服务器之间的安全通信服务器之间的安全通信. 协议的核心协议的核心:一个防篡改的密码模块一个防篡改的密码模块,所有的加所有的加密和解密都在该设备内完成密和解密都在该设备内完成. 每一个服务器有一个主密钥每一个服务器有一个主密钥; 服务器之间通信所用的会话密钥通过伪随机数生服务器之间通信所用的会话密钥通过伪随机数生成器产生成器产生.中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 11.3ISDN Bell-Northern实验室开发实验室开发.终端采用终端采用DH密钥交密钥交换换,RSA数字签名和数字签名和DES数据加密数据加密,以以64K位位/秒传送秒传送和接收语音和数据业务和接收语音和数据业务. (1) kLP/kLV:电话中嵌入的长期使用的密钥对,电话中嵌入的长期使用的密钥对,私钥存储在电话机中防篡改区域私钥存储在电话机中防篡改区域,公钥作为身份识别公钥作为身份识别. (2)可通过所有者所发指令而更改的两对密钥可通过所有者所发指令而更改的两对密钥: 电话公钥电话公钥kTP:鉴别来自所有者的命令鉴别来自所有者的命令; 网络公钥网络公钥kNP:鉴别来自网络密钥管理设备的指令鉴别来自网络密钥管理设备的指令. (3)短期的公钥私钥对短期的公钥私钥对kP/kV:包含在一个由密钥包含在一个由密钥管理设备签发的证书之中管理设备签发的证书之中,当两个电话准备通话时,当两个电话准备通话时,彼此要交换证书彼此要交换证书,证书用网络公钥证书用网络公钥kNP鉴别鉴别. (4)个人到个人的保密呼叫个人到个人的保密呼叫 点火密钥点火密钥:包括用口令加密的所有者的私钥包括用口令加密的所有者的私钥kTV,包包含所有者公钥和某些识别信息的证书含所有者公钥和某些识别信息的证书. 第十一章 应 用中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 Alice到到Bob的呼叫的呼叫 Alice确认身份确认身份审核证书审核证书Ek(证书证书,用户鉴别用户鉴别)点火密钥点火密钥电话电话拨号音拨号音Bob点火密钥点火密钥电话电话振铃振铃密钥交换协议密钥交换协议 k用用kNP鉴鉴别签名别签名询问应答序列询问应答序列SV1(应答应答),SAV(应答应答)用用kNP鉴鉴别签名别签名Ek(Bob证书证书,用户鉴别用户鉴别)询问应答序列询问应答序列SV2(应答应答),SBV(应答应答)分别显示对方用户身份分别显示对方用户身份 保密通话开始保密通话开始 当一方挂机后当一方挂机后,会话密钥及收到的对方证书被删除会话密钥及收到的对方证书被删除. 第十一章 应 用中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 11.4 Kerberos 是为是为TCP/IP网络设计的可信第三方鉴别协议网络设计的可信第三方鉴别协议. 最初是在麻省理工学院为最初是在麻省理工学院为Athena项目开发的模项目开发的模型型,基于基于Needham-Schroeder的可信第三方协议的可信第三方协议.Kerberos基于对称密码学基于对称密码学(DES),与网络上的每一个与网络上的每一个实体分别共享一个密钥实体分别共享一个密钥. Kerberos有一个保存所有客户及其共享密钥的数有一个保存所有客户及其共享密钥的数据库据库,能产生消息向一个实体证实另一个实体的身份能产生消息向一个实体证实另一个实体的身份;产生会话密钥产生会话密钥,加密双方之间的通信加密双方之间的通信. (1)kerberos模型模型Kerberos鉴别服务器鉴别服务器TGS(票据许可服务票据许可服务)服务器服务器服务器服务器客户机客户机第十一章 应 用中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 (2) 协议步骤协议步骤 消息消息 请求票据请求票据-许可票据许可票据 c,tgs 票据票据-许可票据许可票据 Kc,tgs,Tc,tgsKtgs Kc 请求服务器票据请求服务器票据 Ac,sKc,tgs, Tc,tgsKtgs 服务器票据服务器票据 Kc,s, Tc,sKs Kc,tgs 请求服务器请求服务器 Ac,sKc,s, Tc,sKs 服务器返回客户服务器返回客户 m,t,kKc,sKerberos鉴别服务器鉴别服务器TGS(票据许可服务票据许可服务)服务器服务器服务器服务器客户机客户机第十一章 应 用中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 (3) 凭证凭证 Kerberos使用两类凭证使用两类凭证: 票据票据(Ticket):用作向服务器提供身份鉴别用作向服务器提供身份鉴别,包包括客户名括客户名,服务器名服务器名,网络地址网络地址,时间标记和会话密钥时间标记和会话密钥. Tc,s=s,c,a,v,Kc,sKs 票据可多次使用票据可多次使用,直到过期直到过期. 鉴别码鉴别码(Authenticator):客户每次需要使用服客户每次需要使用服务器上的服务时务器上的服务时,都要产生一个鉴别码都要产生一个鉴别码,包括用户名包括用户名,时间标记和一个可选的附加会话密钥时间标记和一个可选的附加会话密钥. Ac,s=c,a,tKc,s 每次使用一次每次使用一次.第十一章 应 用中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 11.5 ISO鉴别框架鉴别框架 亦称亦称X.509协议协议,于于1988年公布年公布. X.509中最重要的部分是公开密钥的中最重要的部分是公开密钥的证书证书结构结构.一个可信的证书机关一个可信的证书机关CA给每个用户分配一个唯一的给每个用户分配一个唯一的名字并鉴发一个包含名字和用户公钥的证书名字并鉴发一个包含名字和用户公钥的证书.简简单单的的公公钥钥证证书书第十一章 应 用中南大学信息科学与工程学院计算机系 段桂华2011年年2月月X.509数字数字证书证书格式格式|V3第十一章 应 用中南大学信息科学与工程学院计算机系 段桂华2011年年2月月11.6公钥基础设施公钥基础设施PKI PKI是生成是生成,管理管理,存储存储,分发和吊销基于公钥分发和吊销基于公钥密码学的公钥证书所需要的硬件密码学的公钥证书所需要的硬件,软件软件,人员人员,策略和策略和规程的总和规程的总和. 基本组件包括基本组件包括:注册机构注册机构RA,认证机构认证机构CA,证书库证书库,密钥备份及恢复系统密钥备份及恢复系统,证书撤消处理系统证书撤消处理系统,PKI应用接应用接口系统口系统; 包括的重要实体有证书权威包括的重要实体有证书权威CA,注册权威注册权威RA,终终端用户端用户EE,策略管理权威策略管理权威PMA,证书库证书库.CA:颁发证书和证书撤销链颁发证书和证书撤销链CRL;RA:向向CA登记或担保一个最终用户的身份登记或担保一个最终用户的身份;证书库证书库:存放证书和证书撤销链表存放证书和证书撤销链表CRL.第十一章 应 用中南大学信息科学与工程学院计算机系 段桂华2011年年2月月1 Alice发出数字证书申请发出数字证书申请; 2 验明验明Alice身份身份,签发证书签发证书;3 CA将证书公布到证书库中将证书公布到证书库中;4 用户用户Alice签名后将其发送给依赖方签名后将其发送给依赖方Bob;5 Bob用用Alce的公钥验证数字签名的公钥验证数字签名,并到证书库中并到证书库中 查明查明Alice的证书的状态和有效性的证书的状态和有效性;6 证书库返回查询结果证书库返回查询结果.PKI的运行流程的运行流程:AliceBob证书机构证书机构CA证书库证书库123456第十一章 应 用中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 11.7其他协议其他协议 (1)保密性增强邮件保密性增强邮件PEM 是因特网保密性增强邮件的标准是因特网保密性增强邮件的标准,提供了加密提供了加密,鉴别鉴别,消息完整性和密钥管理功能消息完整性和密钥管理功能.由因特网结构委由因特网结构委员会员会IAB采用采用,在因特网上提供保密电子邮件在因特网上提供保密电子邮件. PEM是一个内容丰富的标准是一个内容丰富的标准,提供三项保密性增提供三项保密性增强业务强业务:保密性保密性,鉴别和消息完整性鉴别和消息完整性. PEM支持的算法支持的算法: 加密消息加密消息:DES的的CBC方式方式; 消息完整性检查消息完整性检查MIC:MD2或或MD5; 对称密钥管理对称密钥管理:ECB方式的方式的DES; 公钥证书公钥证书:使用使用RSA和和X.509标准标准.第十一章 应 用中南大学信息科学与工程学院计算机系 段桂华2011年年2月月 (2)保密电子邮件保密电子邮件PGP 由由Philip Zimmermann设计的免费的保密电子邮设计的免费的保密电子邮件程序件程序. 数据加密数据加密:IDEA(密钥采用密钥采用ANSI X9.17产生产生) 密钥管理和数字签名密钥管理和数字签名:RSA(密钥长度达密钥长度达2047) 单向散列函数单向散列函数:MD5 密钥管理方法密钥管理方法: PGP中没有密钥证书管理机关中没有密钥证书管理机关,所有用户产生并所有用户产生并分发他们自己的公开密钥分发他们自己的公开密钥,用户通过对公开密钥签名用户通过对公开密钥签名以创建一个所有以创建一个所有PGP用户的互连组用户的互连组. 比如比如:Carol相信相信Bob,因此也相信因此也相信Bob签名的签名的Alice的公钥的公钥kAP.第十一章 应 用
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号