中科院研究生院信息工程学院课件计算机通信网络安全第二章a_第1页
中科院研究生院信息工程学院课件计算机通信网络安全第二章a_第2页
中科院研究生院信息工程学院课件计算机通信网络安全第二章a_第3页
中科院研究生院信息工程学院课件计算机通信网络安全第二章a_第4页
中科院研究生院信息工程学院课件计算机通信网络安全第二章a_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、参考书籍参考书籍 密码学导引,冯登国等,科学出版社密码学导引,冯登国等,科学出版社 密码编码学与网络安全:原理与实践,密码编码学与网络安全:原理与实践, william stallingswilliam stallings,电子工业出版社电子工业出版社 密码工程实践指南,密码工程实践指南,steve burnettsteve burnett等著,等著, 冯登国等译,清华大学出版社,冯登国等译,清华大学出版社,rsarsa数据数据 安全公司官方密码学指南安全公司官方密码学指南 第二章第二章 网络安全核心技术网络安全核心技术密码技术密码技术 1 基本术语基本术语 2 2 对称密码体制对称密码体制

2、3 3 公钥密码体制公钥密码体制 4 4 完整性校验值完整性校验值 5 5 数字签名技术数字签名技术 密码技术,例如加密技术和数字密码技术,例如加密技术和数字 签名技术,是实现所有安全服务的重签名技术,是实现所有安全服务的重 要基础。要基础。 本章主要介绍用于解决当代计算本章主要介绍用于解决当代计算 机网络安全的一些密码技术。包括机网络安全的一些密码技术。包括对对 称密码称密码体制体制、公钥密码公钥密码体制体制、完整性完整性 检验检验值或封装(又称消息认证码)、值或封装(又称消息认证码)、 数字签名数字签名、密钥管理密钥管理原则、原则、密钥分配密钥分配 方法和方法和公钥证书公钥证书等。等。 2

3、.1基本术语基本术语 密码体制是密码技术中最为核密码体制是密码技术中最为核 心的一个概念。心的一个概念。 密码体制被定义为一对数据变换。密码体制被定义为一对数据变换。 x y x e d 其中一个变换应用于数据起源项,称其中一个变换应用于数据起源项,称 为为明文明文,所产生的相应数据项称为,所产生的相应数据项称为密文密文。 而另一个变换应用于密文,恢复出明文。而另一个变换应用于密文,恢复出明文。 这两个变换分别称为这两个变换分别称为加密加密变换和变换和解密解密变换。变换。 习惯上,也使用加密和解密这两个术语。习惯上,也使用加密和解密这两个术语。 加密变换将明文数据和一个称作加密加密变换将明文数

4、据和一个称作加密 密钥的独立数据值作为输入。类似地,解密钥的独立数据值作为输入。类似地,解 密变换将密文数据和一个称作解密密钥的密变换将密文数据和一个称作解密密钥的 独立数据值作为输入。这些数据看上去像独立数据值作为输入。这些数据看上去像 随机比特向量。随机比特向量。 密码体制:密码体制: 基本应用:提供机密性。基本应用:提供机密性。 明文是没有受到保护的数据。密文可在一个不可信明文是没有受到保护的数据。密文可在一个不可信 任的环境中传送,因为如果密码体制是安全的,那么任任的环境中传送,因为如果密码体制是安全的,那么任 何不知道解密密钥的人都不可能从密文推断出明文。何不知道解密密钥的人都不可能

5、从密文推断出明文。 种类:对称密码体制种类:对称密码体制 (秘密密钥密码体制)(秘密密钥密码体制) (/单钥密码体制)单钥密码体制) 非对称密码体制非对称密码体制 (公钥密码体制)(公钥密码体制) (/双钥密码体制)双钥密码体制) 两者具有不同的特性并且以不同的方法来提供安全两者具有不同的特性并且以不同的方法来提供安全 服务。服务。 2.2对称密码体制对称密码体制 特征:用于加密和解密的密钥是一样的或相特征:用于加密和解密的密钥是一样的或相 互容易推出。互容易推出。 key a 加密加密 b 解密解密 明文明文明文明文 密文密文 工作流程:工作流程: 假定假定a和和b是两个系统,他们决定进行秘

6、密通是两个系统,他们决定进行秘密通 信。信。 step 1. 他们通过某种方式(下面将介绍这些他们通过某种方式(下面将介绍这些 方式)获得一个共享的秘密密钥,该密钥只有方式)获得一个共享的秘密密钥,该密钥只有a和和 b知道,其他人均不知道。知道,其他人均不知道。 step 2. a或或b通过使用该密钥加密发送给对方通过使用该密钥加密发送给对方 的消息以实现机密性,只有对方可以解密消息,的消息以实现机密性,只有对方可以解密消息, 而其他人均无法解密消息。而其他人均无法解密消息。 种类:种类: 序列密码(流密码)序列密码(流密码) 分组密码分组密码 序列密码:序列密码:将明文消息按字符逐位地加密将

7、明文消息按字符逐位地加密 分组密码:分组密码:将明文消息分组(每组含有多个字将明文消息分组(每组含有多个字 符),逐组地进行加密符),逐组地进行加密 分组密码的典型代表是分组密码的典型代表是des (data encryption standard数据加密标准数据加密标准) 2.2.1 des 2.2.2 ees 2.2.3 aes 2.2.4 operation mode 2.2.5 rc5 2.2.1 数据加密标准(数据加密标准(des) 1des概述概述 19731974,nbs(nist的前身)发布了征集加密算的前身)发布了征集加密算 法的通告。法的通告。 最终选择了由最终选择了由ib

8、m公司提交的算法公司提交的算法lucifer。 1975年,在受控的条件下对此算法作了一些公开的评年,在受控的条件下对此算法作了一些公开的评 述。述。 1977年采纳为联邦信息处理标准年采纳为联邦信息处理标准fipspub46,即即des。 1981年,年,des被美国商业阻织所采纳,作为美国国家被美国商业阻织所采纳,作为美国国家 标准数据加密算法,即标准数据加密算法,即dea。 isoiso最终没有标准化其所用的加密算法,最终没有标准化其所用的加密算法,包括包括desdes。 技术描述:技术描述: 初始置换 第1轮 第2轮 第16轮 32bit 对换 逆初始置换 64bit 密文密文 64b

9、it 明文明文 置换选择2 置换选择2 循环左移 循环左移 置换选择2循环左移 置换选择1 56bit 密钥密钥 k1 k2 k16 des的每一轮: ),( iiii ii krflr rl 11 1 1i l 1i c i c 1i r 1i d i d i r i l e表表 s盒盒 置换置换p 置换选择2 左移左移 32bit32bit28bit28bit 48 32 ki f 加密加密流程流程: 1 1. . 对明文比特进行初始置换对明文比特进行初始置换 2. 2. 将所得的结果进行完全相同的依赖于密钥的将所得的结果进行完全相同的依赖于密钥的 16 16轮处理轮处理 3. 3. 最后

10、应用一个末尾置换获得密文最后应用一个末尾置换获得密文 依赖于密钥的计算依赖于密钥的计算: 将将6464比特的数据分成两半。其中一半作为一个比特的数据分成两半。其中一半作为一个 复杂函数的输入,并且将其输出结果与另复杂函数的输入,并且将其输出结果与另一一半进行半进行 异或。异或。 复杂函数复杂函数:包括包括8 8个称为个称为s-s-盒的非线性代换。盒的非线性代换。 desdes的安全性主要依赖于的安全性主要依赖于s-s-盒盒,而且,而且s-s-盒是盒是其其唯一的唯一的 非线性部分。非线性部分。 des des的密钥长度可通过使用多重加密的密钥长度可通过使用多重加密 算法来增加。算法来增加。 三重

11、三重desdes的工作过程如下:的工作过程如下: 先使用密钥先使用密钥a a对对6464比特的组加密,然比特的组加密,然 后使用密钥后使用密钥b b对其加密结果解密,最后再对其加密结果解密,最后再 使用密钥使用密钥c c加密。有时也取加密。有时也取a=ca=c。 ede ded c ba p p ab c k2k1 k1 k2k1 加密图 解密图 k1 2des的强度的强度 des的密钥长度(仅为的密钥长度(仅为56比特)太短,不能抵抗穷比特)太短,不能抵抗穷 尽密钥搜索攻击。尽密钥搜索攻击。 给定明文给定明文、密文对(密文对(m,c),),逐个试验所有的密钥逐个试验所有的密钥k, 直到直到c

12、=ek(m)为止。其中为止。其中e为加密变换。为加密变换。 事实证明的确如此!事实证明的确如此! 1997年年1月月28日,美国的日,美国的rsa数据安全公司在数据安全公司在rsa安安 全年会上公布了一项全年会上公布了一项“秘密钥挑战秘密钥挑战”竞赛,悬赏竞赛,悬赏1万美元万美元 破译密钥长度为破译密钥长度为56比特的比特的des。这场竞赛的目的是调查这场竞赛的目的是调查 internet上分布计算的能力,并测试上分布计算的能力,并测试des的相对强度。的相对强度。 http:/ 美国克罗拉多州的程序员美国克罗拉多州的程序员verser从从1997年年3月月13日起,日起, 用了用了96天的时

13、间,在天的时间,在inetrnet上数万名志愿者的协同工作上数万名志愿者的协同工作 下,于下,于6月月17日成功地找到了日成功地找到了des的密钥。这一事件表明的密钥。这一事件表明 依靠依靠internet的分布计算能力,用穷尽搜索方法破译的分布计算能力,用穷尽搜索方法破译des 已成为可能。已成为可能。 1998年年7月月17日电子边境基金会(日电子边境基金会(eff)使用一台使用一台25 万美金的电脑在万美金的电脑在56小时内破解了小时内破解了56比特的比特的des。1999年年1 月月rsa数据安全会议期间,电子边境基金会用数据安全会议期间,电子边境基金会用22小时小时15 分钟就宣告完

14、成分钟就宣告完成rsa公司发起的公司发起的des的第三次挑战。的第三次挑战。 deep crack (10,000pcs) 250billion keys/second des中是否存在陷门?中是否存在陷门? 所谓陷门,就是在算法的设计中设计者留了一个后门,所谓陷门,就是在算法的设计中设计者留了一个后门, 知道某一秘密的人可进入这一后门获得使用该算法的用知道某一秘密的人可进入这一后门获得使用该算法的用 户的秘密信息(包括密钥)。户的秘密信息(包括密钥)。 关于这一点至今未得到证实。关于这一点至今未得到证实。 攻击攻击des最为流行的两种方法是差分密码分析方法最为流行的两种方法是差分密码分析方法

15、 和线性密码分析方法。和线性密码分析方法。 用差分密码分析方法破译用差分密码分析方法破译des比穷搜索方法的计算比穷搜索方法的计算 量要少得多,但需要量要少得多,但需要247个选择明、密文对。因此,差分个选择明、密文对。因此,差分 密码分析方法没有真正对密码分析方法没有真正对16轮轮des构成威胁。构成威胁。 用线性密码分析方法破译用线性密码分析方法破译des比差分密码分析方法比差分密码分析方法 更有效,需要更有效,需要243个明个明、密文对。、密文对。 还有一些典型的分析方法,比如相关密钥分析方法、还有一些典型的分析方法,比如相关密钥分析方法、 推广的差分密码和线性密码分析方法、与智能卡实现

16、有推广的差分密码和线性密码分析方法、与智能卡实现有 关的能量攻击和定时攻击方法等。关的能量攻击和定时攻击方法等。 2.2.2 托管加密标准托管加密标准(ees) 1993,美国政府建议倡导联邦政府和工业界使用新,美国政府建议倡导联邦政府和工业界使用新 的具有密钥托管功能的加密标准,提出了加强控制的托的具有密钥托管功能的加密标准,提出了加强控制的托 管政策,并于管政策,并于1993年年4月通过美国商业部颁发了具有密钥月通过美国商业部颁发了具有密钥 托管功能的加密标准(托管功能的加密标准(ees)。)。 基本特点:加密体制具有在法律许可时可以进行密基本特点:加密体制具有在法律许可时可以进行密 钥合

17、成的功能。钥合成的功能。 使得:政府在必要时无需花费巨大代价就能破译密使得:政府在必要时无需花费巨大代价就能破译密 码,并能直接侦听。码,并能直接侦听。 建议中也建议使用建议中也建议使用clipperclipper芯片实施商用加密,因此,芯片实施商用加密,因此, 该建议又称该建议又称clipperclipper建议。建议。clipperclipper芯片是实现了芯片是实现了eesees标准标准 的防窜扰芯片,它是由美国国家安全局(的防窜扰芯片,它是由美国国家安全局(nsansa)主持开发主持开发 的硬件密码部件。芯片的单元密钥(的硬件密码部件。芯片的单元密钥(kuku)由两个称之为由两个称之为

18、 escrowescrow的机构联合提供。的机构联合提供。 该标准中使用该标准中使用skipjack分组密码体制。分组密码体制。 skipjack算法是一个算法是一个32轮的分组密码,分组长度为轮的分组密码,分组长度为64 比特,密钥长度为比特,密钥长度为80比特,加比特,加、解密的运行速度都很快。、解密的运行速度都很快。 该算法目前已公开。该算法目前已公开。 nistnist声称声称skipjackskipjack算法比算法比desdes更安全,用穷搜索很难更安全,用穷搜索很难 破译它。但事实证明,破译它。但事实证明,skipjackskipjack算法的安全强度很算法的安全强度很低低。 c

19、lipper芯片:唯一的芯片id(32bit uid), 单元密钥(ku),族密钥(kf)。各芯 片的ku不同,但kf相同。 芯片的编程:安全密封信息设备scif scif 袖珍计算机 id ku,ku1, ku2 escrow1 k1 k2 escrow2 21 21321 121 ,.),()|( ),(,(,( kukuku kukurrr idkekdker ii 法律强制访问域leaf: “后门后门” ),( ),( kaleaf mkec ),(),(,( ,( ivkafkkueid kfe aa 16bit 校验和!校验和! 解密解密 政府可拿到政府可拿到kf 征求许可得到征求

20、许可得到ku1, ku2 kuaku1 ku2 但是有办法逃过监听!但是有办法逃过监听! 2.2.3 高级加密标准高级加密标准(aes) 1997年年4月月15日,日,nist发起征集发起征集aes-advanced encryption standard的活动,并专门成立了的活动,并专门成立了aes工作组,工作组, 目的是为了确定一个非密级的目的是为了确定一个非密级的、全球免费使用的数据加、全球免费使用的数据加 密标准。密标准。 1997 1997年年9 9月月1212日,在联邦登记处日,在联邦登记处( (fr)fr)公布了征集公布了征集aesaes 候选算法的通告。候选算法的通告。aesa

21、es的基本要求是比三重的基本要求是比三重desdes快而且至快而且至 少与三重少与三重desdes一样安全,分组长度为一样安全,分组长度为128128比特,密钥长度比特,密钥长度 为为128/192/256128/192/256比特。比特。 1998 1998年年8 8月月2020日,日,nistnist召开了第一次召开了第一次aesaes候选会议,候选会议, 并公布了并公布了1515个候选算法。个候选算法。 1999 1999年年3 3月月2222日,举行了第二次日,举行了第二次aesaes候选会议,公布候选会议,公布 了了1515个候选算法的讨论结果,并从中选出了个候选算法的讨论结果,并从

22、中选出了5 5个候选者。个候选者。 2000 2000年年4 4月月2525日,日,nistnist举行了第三次举行了第三次aesaes候选会议,候选会议, 对这五个候选算法又进行了讨论。对这五个候选算法又进行了讨论。 2000 2000年年1010月月2 2日,日,nistnist于公布了最终候选结果,将于公布了最终候选结果,将 rijndael算法作为候选算法。算法作为候选算法。 rijndael 算法的原形是算法的原形是square算法,算法, 它的设计策略是宽轨迹策略它的设计策略是宽轨迹策略(wide trail strategy),这种策略是针对差分分析和线这种策略是针对差分分析和线

23、 性分析提出的。性分析提出的。 /aes rijndael 是一个迭代分组密码是一个迭代分组密码,其分组其分组 长度和密钥长度都是长度和密钥长度都是可变可变的。面向字节、的。面向字节、 状态变换(状态变换(12844个字节)。个字节)。 为满足为满足aes的要求,限定明文分组长的要求,限定明文分组长 度为度为128比特比特,密钥长度为密钥长度为128/192/256比特比特, 相应的轮数为相应的轮数为10/12/14。 加密过程加密过程: x是是rijndael密码的密码的128比特输入,比特输入,y是是128比比 特的输出,则特的输出,则rijndael密

24、码可用下式表示密码可用下式表示: )(t =y 111 x kkkk rrr 128 2 128 2k : i ff 置换,对置换,对 ik kxxfx i )(, 128 2 128 2 128 2 :ff置换,对置换,对 x=(x00,x01,x02,x03,x10,x11,x12,x13,x20,x21,x22,x23,x30,x31,x32,x33) t(x)= (x00,x01,x02,x03,x13,x10,x11,x12,x22,x23,x20,x21,x31,x32,x33,x30) 128 2 128 2 :ff 置换,置换, (x)= (y00,y01,y02,y03,y1

25、0,y11,y12,y13,y20,y21,y22,y23,y30,y31,y32,y33) 128 2 128 2 :ff 置换,置换, 8 2 f 上的上的s-盒并置构成,盒并置构成, fl=s 轮轮密钥加法密钥加法addroundkey 移位行运算移位行运算shiftrow 混合列运算混合列运算mixcolum 字节替换字节替换bytesub i i i i i i i i x x x x y y y y 3 2 1 0 3 2 1 0 02 01 01 03 03 02 01 01 01 03 02 01 01 01 03 02 f是有限域是有限域 8 2 f(11b)上的乘法逆上的乘

26、法逆;l(x)=ax+b, 其中 1 1 0 0 0 1 1 0 , 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 ba 密钥方案密钥方案: 在加密过程中在加密过程中,需要需要r+1个子密钥个子密钥,需要构作需要构作 4(r+1)个个32比特字。比特字。 当种子密钥为当种子密钥为128和和192比特时比特时,构作构作4(r+1)个个 32比特字的程序是一样的。比特字的程序是一样的。 当种

27、子密钥为当种子密钥为256比特时比特时,用另一个不同的程用另一个不同的程 序构作序构作4(r+1)个个32比特字。比特字。 密钥方案由密钥扩展和轮密钥选择两部分密钥方案由密钥扩展和轮密钥选择两部分 组成。组成。 step 1 密钥扩展过程密钥扩展过程 扩展密钥是一个扩展密钥是一个32比特字的数组,且记为比特字的数组,且记为 w4(r+1) , 密钥包含在开始的密钥包含在开始的nk个个32比特字中,其它的字由它前面的比特字中,其它的字由它前面的 字经过处理后得到。字经过处理后得到。 当当nk=4,r=10 或或nk=6,r=12时,密钥扩展过程为:时,密钥扩展过程为: keyexpansion(

28、cipherkey,w) for(i=0;ink;i+) wi=cipherkeyi; for(j=nk;jnk(r+1);j+=nk) wj=wj-nkbytesub(rotl(wj-1)rconj/nk; for(i=1;ink i+) wi+j=wi+j-nkwi+j-1; 当当nk=8,r=14时,密钥扩展过程为:时,密钥扩展过程为: keyexpansion(cipherkey,w) for(i=0;ink;i+) wi=cipherkeyi; for(j=nk;jnk(r+1);j+=nk) wj=wj-nkbytesub(rotl(wj-1)rconj/nk; for(i=1;i

29、4;i+) wi+j=wi+j-nkwi+j-1; wj+4=wj+4-nkbytesub(rotl(wj+3); for(i=1;ink i+) wi+j=wi+j-nkwi+j-1; 其中,其中,rotl是一个字里的字节以字节为单位循环移位,轮常数是一个字里的字节以字节为单位循环移位,轮常数 与与nk无关:无关: rconi=(rci,00,00,00) rc0=01 rci=xtime(rconi-1) step 2 轮密钥选择轮密钥选择 轮密钥轮密钥i是由密钥缓冲区是由密钥缓冲区w4i 到到 w4(i+1) 的字组成。的字组成。 2.2.4 工作模式工作模式 分组密码的工作模式:分组密

30、码的工作模式: ecb模式模式 cbc模式模式 cfb模式模式 ofb模式模式 分组密码的工作模式是指利用一个基本的分分组密码的工作模式是指利用一个基本的分 组密码构造出一个密码体制。组密码构造出一个密码体制。 电码本(电码本(ecb)模式:模式: 直接使用基本的分组密码的模式直接使用基本的分组密码的模式 缺点:在给定密钥的情况下,相同的明文总是产缺点:在给定密钥的情况下,相同的明文总是产 生相同的密文生相同的密文 des k p c 密码分组链(密码分组链(cbc)模式:模式: 在加密当前的一个分组之前,先将上一次加在加密当前的一个分组之前,先将上一次加 密的结果与当前的明文组进行异或,然后

31、再加密,密的结果与当前的明文组进行异或,然后再加密, 这样就形成了一个密文链。这样就形成了一个密文链。 desdes k iv p c k 密码反馈(密码反馈(cfb)模式:模式: 先将明文流分成若干个先将明文流分成若干个k比特的字符,比特的字符, 1kn,n,其中其中n n表示所用的分组密码的分组长度表示所用的分组密码的分组长度。 每个字符所对应的密文可通过该字符和一个密钥每个字符所对应的密文可通过该字符和一个密钥 字符相异或获得,该密钥字符是通过加密密文的字符相异或获得,该密钥字符是通过加密密文的 前前n比特来获得的。比特来获得的。 移位寄存器 des 选择丢弃 移位寄存器 des 选择丢

32、弃 kk iv p c 输出反馈(输出反馈(ofb)模式模式: 用分组密码产生一个随机密钥流,将此密钥用分组密码产生一个随机密钥流,将此密钥 流和明文流进行相异或得到密文流。流和明文流进行相异或得到密文流。 移位寄存器 des 选择丢弃 移位寄存器 des 选择丢弃 kk p c iv 2.2.5 rc4 rc4是是ron rivest在在1987年为年为rsa数据安全数据安全 公司开发的一个密钥长度可变(公司开发的一个密钥长度可变(128/40;12048) 的序列密码(面向字节操作的序列密码(面向字节操作 byte-oriented operation)。)。 1994年年9月,算法源代码

33、通过月,算法源代码通过cypherpunks邮邮 件列表泄露。件列表泄露。 加密速度很快,大约比加密速度很快,大约比des快快10倍。倍。 以以ofb模式工作,密钥序列与明文相互独立。模式工作,密钥序列与明文相互独立。 rc4 基于随机置换。基于随机置换。 安全性分析:周期大于安全性分析:周期大于10100。 每输出一个字节,需要每输出一个字节,需要8到到16条机器指令条机器指令 (machine operations)。)。适于快速软件实现。适于快速软件实现。 应用:无线保密通信(应用:无线保密通信(wep 协议),用于文件加密产品,如协议),用于文件加密产品,如rsa的的securpc,

34、以及用于安全通信,如用在以及用于安全通信,如用在ssl协议中。协议中。oracle secure sql,microsoft windows,lotus notes,cellular specification。 有一个有一个88的的s-盒:盒:s0,s1,s255,是数字是数字 0到到255的一个置换,并且这个置换是一个可变长的一个置换,并且这个置换是一个可变长 密钥的函数密钥的函数 有两个计数器:有两个计数器:i和和j,初值均为初值均为0。 初始化初始化s-盒:盒: 1. 线性填充:线性填充:s0=0,s1=1,s255=255 2. 用密钥填充另一个用密钥填充另一个256-字节的数组,以

35、自字节的数组,以自 然的方式重复使用密钥来填充整个数组:然的方式重复使用密钥来填充整个数组:k0, k1,k255。 3. 将指针将指针j设为设为0,对,对i=0至至255完成以下操作:完成以下操作: j=(j+si+ki)mod256 交换交换si和和sj 产生一个随机字节:产生一个随机字节: i=(i+1)mod256 j=(j+si)mod256 交换交换si和和sj t=(si+sj)mod256 k=st 字节字节k与明文异或产生密文或者与密文异或与明文异或产生密文或者与密文异或 产生明文产生明文 对称密码工程小结对称密码工程小结 如果你要加密,步骤:如果你要加密,步骤: 1. 选一

36、个好的对称算法和一个选一个好的对称算法和一个prng。若要重若要重 复使用密钥就选择分组密码;若要保证互操作复使用密钥就选择分组密码;若要保证互操作 性就进而选择性就进而选择aes;此外,因性能考虑就选择此外,因性能考虑就选择 流密码。流密码。 2. 收集种子收集种子“喂喂”给给prng,生成密钥(如生成密钥(如 128bit)。)。 3. 加密。加密。 4. 保护密钥。保护密钥。 2.3 公钥密码体制公钥密码体制 公钥密码技术是由公钥密码技术是由diffe和和hellman于于1976年年 首次提出的一种密码技术。首次提出的一种密码技术。 特点:有两个不同的密钥,将加密功能和解特点:有两个不

37、同的密钥,将加密功能和解 密功能分开。密功能分开。公钥公钥私钥私钥 基本特性:给定公钥,要确定出私钥是计算基本特性:给定公钥,要确定出私钥是计算 上不可行的。上不可行的。 公钥密码技术可以简化密钥的管理,并且可公钥密码技术可以简化密钥的管理,并且可 通过公开系统如公开目录服务来分配密钥。通过公开系统如公开目录服务来分配密钥。 a 加密加密 b 解密解密 b的公钥的公钥b的私钥的私钥 明文明文 密文密文 明文明文 图图 公钥密码体制模型公钥密码体制模型 (a)加密模型加密模型 a 解密解密 b 加密加密 a的私钥的私钥b的公钥的公钥 明文明文明文明文 密文密文 (b)认证模型认证模型 加密模型:

38、加密模型: 通过一个包含各通信方的公钥的公开目录,通过一个包含各通信方的公钥的公开目录, 任何一方都可以使用这些密钥向另一方发送机密任何一方都可以使用这些密钥向另一方发送机密 信息。信息。 具体办法:发送者查出接收者的密钥并且具体办法:发送者查出接收者的密钥并且 使用该密钥加密消息。注意:只有拥有该密钥的使用该密钥加密消息。注意:只有拥有该密钥的 接收者才能解读消息。接收者才能解读消息。 认证模型:认证模型: 通过将公开的密钥用作解密密钥,公钥密通过将公开的密钥用作解密密钥,公钥密 码技术可用于数据起源的认证,并且可确保信息码技术可用于数据起源的认证,并且可确保信息 的完整性。的完整性。 在这

39、种情况下,任何人均可以从目录中获在这种情况下,任何人均可以从目录中获 得解密密钥,从而可解读消息。只有拥有相应的得解密密钥,从而可解读消息。只有拥有相应的 秘密密钥的人才能产生该消息。秘密密钥的人才能产生该消息。 可逆公钥密码体制:可逆公钥密码体制: 该密码体制可用于加密和认证两种模型该密码体制可用于加密和认证两种模型 不可逆公钥密码体制:不可逆公钥密码体制: 该公钥密码体制只能用于认证模型,而不能该公钥密码体制只能用于认证模型,而不能 用于加密模型。用于加密模型。 当今最流行的公钥密码体制有两大类:当今最流行的公钥密码体制有两大类: 基于大整数因子分解问题的,比如基于大整数因子分解问题的,比

40、如rsa体制体制、 rabin体制体制 基于离散对数问题的,比如基于离散对数问题的,比如elgamal体制体制、 椭圆曲线密码体制椭圆曲线密码体制 2.3.1 rsa体制体制 发明者:发明者:rivest、shamirshamir、adlemanadleman 基本事实:寻找大素数是相对容易的,而分解两基本事实:寻找大素数是相对容易的,而分解两 个大素数的积是计算上不可行的。个大素数的积是计算上不可行的。 属于属于可逆的公钥密码体制可逆的公钥密码体制 rsa密钥对的产生:密钥对的产生: 选一个整数选一个整数e e,作为公开指数。作为公开指数。 随机产生两个大奇素数随机产生两个大奇素数p p和和

41、q q,使得使得p-1p-1和和q-1q-1 都与都与e e互素。互素。 确定秘密指数确定秘密指数d d,其中其中d d满足条件:满足条件: ( (p-1)|(de-1)p-1)|(de-1) ( (q-1)|(de-1)q-1)|(de-1) 即即 eded1mod(p1mod(p1)(q1)(q1)1) 公开的模是公开的模是 n=n=pqpq n n和和e e形成公钥形成公钥 p,q p,q和和d d构成秘密密钥构成秘密密钥 指数指数d d和和e e的特征:的特征: 对任何消息对任何消息m m,有有 ( (m me e) )d d mod mod= =m mod nm mod n 对消息对

42、消息m m,加密过程为加密过程为: : m m = =m me e mod mod 对密文对密文m m , ,解密过程为:解密过程为:m=m=( (m m ) )d d mod n mod n 强度:强度: 依赖于完成大素数分解的设备的价格和所需的时间。依赖于完成大素数分解的设备的价格和所需的时间。 随着设备的价格的降低和计算能力的提高,随着设备的价格的降低和计算能力的提高, rsarsa体制的模体制的模n n必将随之增大。目前可分解必将随之增大。目前可分解155155位位 十进制的大整数。人们建议使用模长为十进制的大整数。人们建议使用模长为10241024比特比特 以上的模。以上的模。 缺点

43、:缺点: 与对称密码体制如与对称密码体制如desdes相比,加、解密的速度太慢。相比,加、解密的速度太慢。 应用:应用: 加密(较慢),数字签名、密钥管理和认证加密(较慢),数字签名、密钥管理和认证 2.3.2 elgamal体制体制 1985年,年,elgamal设计设计 安全性基于有限域上计算离散对数的安全性基于有限域上计算离散对数的 困难性困难性 分别提出了加密模型和认证模型两种分别提出了加密模型和认证模型两种 体制体制 认证模型形成了美国数字签名标准认证模型形成了美国数字签名标准 (dss)的基础,用于数据起源认证服务。的基础,用于数据起源认证服务。 2.3.3 椭圆曲线公钥密码体制椭

44、圆曲线公钥密码体制 19851985年,年,koblitzkoblitz和和millermiller设计设计 椭圆曲线上的离散对数的计算要比有限域上椭圆曲线上的离散对数的计算要比有限域上 的离散对数的计算更困难,能设计出密钥更短的的离散对数的计算更困难,能设计出密钥更短的 公钥密码体制。公钥密码体制。 目前,国际上非常关注这类密码体制目前,国际上非常关注这类密码体制 开发符合开发符合ieee p1363ieee p1363标准的椭圆曲线公钥密标准的椭圆曲线公钥密 码体制码体制 2.4完整性校验完整性校验 密码技术能够为数据完整性提供基础和数据起源的密码技术能够为数据完整性提供基础和数据起源的

45、认证服务认证服务 具体方法:具体方法: 1. 消息的发送者对所要发送的消息产生一个附件,消息的发送者对所要发送的消息产生一个附件, 并将该附件和消息传输给接收者。并将该附件和消息传输给接收者。 2. 消息的接收者在将消息作为真实消息接收之前,消息的接收者在将消息作为真实消息接收之前, 检查接收到的消息内容和附件是否是一致的。检查接收到的消息内容和附件是否是一致的。 为避免攻击,需利用一个秘密密钥来产生一个附件。为避免攻击,需利用一个秘密密钥来产生一个附件。 只有知道密钥的人才能产生附件,从而验证其真实性。只有知道密钥的人才能产生附件,从而验证其真实性。 完整性检验:在银行业中,称为消息认证。在

46、完整性检验:在银行业中,称为消息认证。在osi安安 全模型中,称为封装。附件被称为封装,完整性校验值,全模型中,称为封装。附件被称为封装,完整性校验值, 消息认证码消息认证码(mac)或消息完整性码或消息完整性码(mic)。 在发送端,应用密码技术对消息产生一个附件,该在发送端,应用密码技术对消息产生一个附件,该 附件通常较短。然后将该附件连同消息一起发送出来。附件通常较短。然后将该附件连同消息一起发送出来。 在接收端,对接收到的消息使用同样的密钥应用同样的在接收端,对接收到的消息使用同样的密钥应用同样的 附件产生过程,将产生的附件与从发送端收到的附件进附件产生过程,将产生的附件与从发送端收到

47、的附件进 行比较,得到校验。行比较,得到校验。 消息消息 产生附件产生附件 附件附件 产生附件产生附件 消息消息 消息消息 附件附件 所期望的附件所期望的附件 实际收到的附件实际收到的附件 如果二者如果二者 一样,则一样,则 认为消息认为消息 是完整的是完整的 密钥密钥 发送者发送者接受者接受者 图图 一般的封装机制一般的封装机制 银行工业标准(例如,银行工业标准(例如,ansi x9.9和和iso 8730)为金为金 融传输过程专门规定了使用消息认证码产生附件的过程。融传输过程专门规定了使用消息认证码产生附件的过程。 这一过程使用了对称密码体制如这一过程使用了对称密码体制如des,并使用并使

48、用cbc加密加密 模式产生附件。模式产生附件。 图图 实用对称分组密码产生附件的过程实用对称分组密码产生附件的过程 加密加密加密加密加密加密加密加密 附件 m1m2m3 mt 消息消息m=m1m2m3mt 其他一些产生方法,例如使用其他一些产生方法,例如使用hash函数来产生附件。函数来产生附件。 hash函数是将任意长度的输入串变化成固定长度的输出函数是将任意长度的输入串变化成固定长度的输出 串的一种函数。使用串的一种函数。使用hash函数产生附件时,需要给消息函数产生附件时,需要给消息 前缀或后缀一个秘密密钥,然后再对这个级联消息应用前缀或后缀一个秘密密钥,然后再对这个级联消息应用 has

49、h函数。函数。hash函数的输出即为附件。函数的输出即为附件。 消息消息 密钥密钥 hash函数函数 消息消息附件附件 图图 使用使用hash函数产生附件的过程函数产生附件的过程 2.5 数字签名技术数字签名技术 数字签名可视作封装的一种特殊情况数字签名可视作封装的一种特殊情况 是一段附加数据或者是数据单元的密码变换结果是一段附加数据或者是数据单元的密码变换结果 主要用于证实消息的真实来源主要用于证实消息的真实来源 基于对称密码体制实现数字签名:基于对称密码体制实现数字签名: 为了避免接收者伪造签名,必须引入第三方即可信为了避免接收者伪造签名,必须引入第三方即可信 方。方。 主要办法是将数字签

50、名过程与由可信方控制的硬件主要办法是将数字签名过程与由可信方控制的硬件 器件相结合。接收者通过一个器件相结合。接收者通过一个防窜扰器件防窜扰器件能验证签名的能验证签名的 正确性而不能用同一密钥产生签名。密钥被存储在防窜正确性而不能用同一密钥产生签名。密钥被存储在防窜 扰器件内,接收者不能访问它,在可信方的控制下管理扰器件内,接收者不能访问它,在可信方的控制下管理 密钥。密钥。 基于公钥密码体制实现数字签名:基于公钥密码体制实现数字签名: 公钥密码体制可提供功能更强大的数字签名方案,公钥密码体制可提供功能更强大的数字签名方案, 而无需接收者秘密保存验证密钥。而无需接收者秘密保存验证密钥。 任何消

51、息的接收者均可检查其签名,因为解密密钥任何消息的接收者均可检查其签名,因为解密密钥 即发送者的公钥可以公开,而不会危及方案的安全性。即发送者的公钥可以公开,而不会危及方案的安全性。 消息消息 消息消息 附件附件解密解密 消息消息 附件附件 加密加密 所期望所期望 的消息的消息 如果二者如果二者 一样,则一样,则 签名通过签名通过 验证验证 发送者接收者 公钥公钥 私钥私钥 传输的消息传输的消息 图图 基本的数字签名方案基本的数字签名方案 为了提高数字签名方案的有效性,一般在签名前使为了提高数字签名方案的有效性,一般在签名前使 用用hash函数先对要签的消息进行压缩。函数先对要签的消息进行压缩。

52、 在消息的接收端,接收者需要计算消息摘要。在消息的接收端,接收者需要计算消息摘要。 消息消息 hash函数函数 摘要摘要 附件附件 加密加密 消息消息 附件附件解密解密 消息消息 hash函数函数 实际要的摘要实际要的摘要 所期望所期望 的摘要的摘要 如果二者如果二者 一样,则一样,则 通过签名通过签名 验证验证 传输的消息传输的消息 图图 使用使用hash函数的数字签名方案函数的数字签名方案 发送者发送者接受者接受者 私钥私钥 两个比较重要的数字签名方案:两个比较重要的数字签名方案: iso/iec9796标准(具有消息恢复功能的标准(具有消息恢复功能的 数字签名)数字签名) 美国的数字签名

53、标准美国的数字签名标准(dss) 2.5.1 具有消息恢复功能的数字签名具有消息恢复功能的数字签名 国际标准国际标准iso/iec 9796 为签署限定长度的消息而设计的,验证者的为签署限定长度的消息而设计的,验证者的 资源需求最小。资源需求最小。 使用可逆的公钥密码体制使用可逆的公钥密码体制 方法:方法: 1)用于签署很短的消息。不涉及到)用于签署很短的消息。不涉及到hash函函 数,签名值所对应的明文可在验证过程中来恢复。数,签名值所对应的明文可在验证过程中来恢复。 这些特征更适合于认证和密钥管理协议中的签名这些特征更适合于认证和密钥管理协议中的签名 要求;要求; 2)应用于长消息的)应用

54、于长消息的hash摘要。此时要求对摘要。此时要求对 消息摘要进行填充。消息摘要进行填充。 签名过程:签名过程: (假定使用可逆公钥密码体制(假定使用可逆公钥密码体制rsa,被签被签 署的消息的长度不超过署的消息的长度不超过rsa的模长的一半。的模长的一半。 )9796-1 page 8 1)mp:用用“0”来填充消息。使比特长度是来填充消息。使比特长度是8的倍数。的倍数。 2)me:将填充后的消息进行扩展。可通过重复自身将填充后的消息进行扩展。可通过重复自身 级联给出一个长度至少是级联给出一个长度至少是rsa模长的一半的串。模长的一半的串。 3)mr:通过用冗余的消息(由相应的扩展消息置换通过

55、用冗余的消息(由相应的扩展消息置换 获得)与扩展消息交织获得。获得)与扩展消息交织获得。 4)sr:对对mr进行左填充一个进行左填充一个“1”,右替换一个字节。,右替换一个字节。 4)用)用rsa私钥处理后的消息可得签名。私钥处理后的消息可得签名。 2.5.2 美国数字签名标准(美国数字签名标准(dss) 1991年年8月,月,nist颁布征集数字签名标准颁布征集数字签名标准dss。 dsa是是elgamal公钥密码体制的一种变形,其安全公钥密码体制的一种变形,其安全 性依赖于计算离散对数的困难性。性依赖于计算离散对数的困难性。 preparationpreparation: 设设y=gxmo

56、d p。给定。给定g,x和和p,计算计算y是容易的。但给定是容易的。但给定y,g 和和p,计算计算x是极其困难的。是极其困难的。y作为公钥,将作为公钥,将x作为秘密密钥。作为秘密密钥。 dsa中所使用的三个整数,中所使用的三个整数,p,q和和g,可以公开,而且可可以公开,而且可 以共用。以共用。p长度在长度在512到到1024比特之间。比特之间。q|(p-1)|(p-1) ,160160比特,比特, 是是g g的阶。的阶。 g g如此法选择:如此法选择:g=jg=j(p-1)/ (p-1)/q qmod mod p,j(1jp) p,j(1j1 1 的随机整数。的随机整数。 发送者随机地选择秘密密钥发送者随机地选择秘密密钥x x(1xq1xq),公钥,公钥y y由由 y=y=g gx xmodmod p p确定。确定。 签名过程:签名过程: 为签署消息为签署消息h h(消息

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论