(现代密码学原理与实践)第7章密码学在网络安全中的应用课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《(现代密码学原理与实践)第7章密码学在网络安全中的应用课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代 密码学 原理 实践 网络安全 中的 应用 课件
- 资源描述:
-
1、第第7 7章章 密码学在网络密码学在网络安全中的作用安全中的作用7.1 无线移动网络中的密码技术无线移动网络中的密码技术7.2 无线局域网络中的密码技术无线局域网络中的密码技术7.3 密码学在密码学在Internet安全技术中的应用安全技术中的应用习题习题 7实践练习实践练习 7: IPSec协议与协议与IPSec的安全服务的安全服务 现代密码学伴随网络的兴起而诞生,随着网络的发展而得到广泛的应用。实用化技术不同于单纯原理性讨论,实际情况是复杂的,理论上的基本方法常被变通使用,或者是多种方法结合使用。其次,实用技术不仅应追求效果上的最佳,往往还须考虑实际可行性,综合权衡经济成本等多种因素。本章
2、将对无线移动网络、无线局域网和Internet安全技术中如何应用密码学原理,怎样结合实际情况创新使用加密算法及其一些实际应用做概要介绍。 7.1无线移动网络中的密码技术无线移动网络中的密码技术 移动通信的发展大致经历了三个阶段。第一代(1G)是模拟移动通信系统,几乎没有采用安全技术。第二代(2G)是数字移动通信系统,如欧洲全球移动通信系统GSM(GlobalSystemforMobileCommunication),对安全性有了较大的改进。第三代(3G)是宽带移动通信系统,定义了更加完善的安全特征与鉴权服务7.1.1GSM中的认证与加密中的认证与加密 全球移动通信系统(GSM)是目前全世界广泛
3、使用的数字蜂窝式无线通信系统。为了防止非法用户接入系统以及区分用户的等级,手机入网时需要登记注册,合法用户首先应购买通信公司的用户识别卡(SIM),上面有国际移动用户识别码IMSI(不不是呼叫号码)和个人用户密码号Ki,同样的,IMSI和Ki也被保存在(或发送到)通信公司鉴权中心(AUC)。 每个移动用户都有一个唯一的国际移动用户识别码IMSI,它只在第一次入网时传送一次,或者在出错时再使用。基站与手机之间频繁联络使用的是临时移动用户身份号TMSI,它是由网络随机生成并临时分配给用户的一个号码,在每次通话时将TMSI加密后传给用户。使用TMSI能避免用户唯一的身份码IMSI的泄露。同时,每次通
4、话使用的TMSI都不同,就避免了由TMSI窃听用户通信的可能。由于TMSI与用户没有确定的对应关系,因此无法根据TSMI跟踪用户,对用户所在位置起到了保密作用。 GSM安全算法主要有三个,即A3、A5和A8,分别用于鉴权、加密和生成密钥。三个算法的实现细节是非公开的,这里仅介绍用法。GSM系统鉴权与加、解密流程如图7.1所示。 1对用户的认证和鉴权对用户的认证和鉴权 GSM系统对移动用户合法性的鉴权采用了询问/响应认证协议。当移动台申请位置更新时,或者当移动台发出呼叫或被呼时,立即触发鉴权。鉴权过程主要涉及GSM系统的AUC、HLR(原籍位置寄存器)、MSC/VLR(移动交换中心/访问位置寄存
5、器)以及MS(移动台)。鉴权开始,MSC/VLR向用户发送一个128bit的随机数RAND,MS使用此RAND以及鉴权密钥Ki(Ki存储在SIM卡中),通过A3算法计算出符号响应SRES2,并发回给BS(基站)。MSC/VLR也会用同样的RAND和Ki计算出一个符号响应SRES1,比较两者相同与否便可决定是否允许该用户接入网络。 图7.1 GSM的加密与解密流程 2生成加密密钥生成加密密钥 在鉴权程序计算SRES的同时,移动交换中心和移动台通过算法A8也在计算加密密钥KC,密钥KC的长度是64bit。A8的输入仍然是随机数RAND和鉴权密钥Ki。由于每次使用的随机数都不同,因此每次产生的加密密
6、钥KC也不同,以增强保密性。系统启动加密模式前,移动交换中心和移动台均将KC暂存。 3.数据加密和解密数据加密和解密 为了确保用户信息(话音或数据业务)以及与用户有关的信令信息的保密性,在BS(基站)和MS(手机)之间无线接入部分的信息将被加密传输。启动加密后,MSC/VLR将把加密模式命令M通过BS发送给MS。MS收到后,以M(加密模式)和TDMA(时分多址)帧编号为输入,以KC为密钥,通过加密算法A5将消息加密,消息以密文方式无线发送给BS。MSC/VLR采用相同算法对此解密,恢复M以验证测试的正确性。验证通过后,无线链路上往返的信息均以KC为密钥,使用A5算法进行加、解密。7.1.23G
7、中的安全算法中的安全算法3335 国际标准化机构3GPP(3G合作伙伴项目,3GPartnershipProject)提出的3G安全结构中,重点描述了网络接入的安全问题,实现了包括认证和密钥协商算法,以及与无线数据链路层信令数据、用户数据的数据加密和数据完整性算法,其核心均建立在密码技术的基础之上。安全体系中定义了12种密码算法,分别是: f0 随机数生成函数;f1 网络鉴权函数 f1*重同步消息函数; f 2用户鉴权函数 f 3加密密钥生成函数;f 4完整性密钥生成函数 f 5正常情况下用的匿名密钥生成函数; f 5*生成重同步时匿名密钥的函数 f 6加密国际移动用户识别码(IMUI); f
8、 7对用户身份进行解密 f 8数据加密算法;f 9数据完整性算法 密钥协商算法用于USIM(用户业务识别模块)、VLR/SGSN(访问位置寄存器/服务GPRS支持节点)和HLR(归属位置寄存器)之间的双向认证及密钥分配,利用 f 0 f 5*算法实现。其中: f 0算法仅在AUC(鉴权中心)中执行,用于产生随机数RAND。 f 1算法为网络鉴权函数,用于计算网络鉴权时的XMAC-A。 f 1*算法为重同步消息函数,支持重同步功能,保证从f 1*的函数值无法反推出f 1。 f 5算法为密钥生成函数,用于计算匿名密钥AK,对鉴权序列号SQN加解密,以防止被位置跟踪。 f 5*算法为密钥生成函数,用
9、于计算重同步时的匿名密钥。 f 6和f 7算法用于增强用户身份保密。 f 8和f 9算法对空中接口的数据进行加密和完整性保护。 上述算法中,除 f 8和 f 9是通过分组密码算法KASUMI构造得到的标准化算法外,其他算法函数还没有标准化,因此运营商可自由选择算法来满足基本要求或遵从建议中的基于Rijndael密码(见本书第3章)的解决方案。在UE(移动用户设备)和RNC(无线网络控制器)之间的无线链路上,f8用来对用户数据和信令数据加密;f9用来保证信令信息的完整性,并对信令来源进行认证。下面分别对KASUMI算法和f8、f9算法做简单介绍。 1KASUMI算法算法3638 KASUMI算法
10、是基于日本三菱公司的分组密码MISTY1算法的改进版本,是一种分组加密算法,它的设计遵循了三条原则:在安全性上有足够的数学基础;算法的软件实现在任何处理器上都足够快;算法的硬件实现也足够快。这个算法在设计上能够对抗差分和线性密码分析,其安全性是可证明的,目前主要应用于3G的安全算法 f 8和 f 9之中。 KASUMI算法中密钥长度为128bit,对64bit的输入分组进行如图7.2所示的8轮迭代加密运算,输出长度仍为64bit。 首先,输入数据I被分为32bit的左右两部分,即L0和R0,第i轮加密算法为,81,2, )(111iRK,LfRL,LRiiiiiii(7-1) 第i轮将上一轮输
11、出的左半部Li-1作为该轮的右半部Ri-1;而第i轮的左半部由第i-1轮输出的右半部Ri-1与第i轮的轮函数fi的结果进行异或运算得到(RKi为第i轮的子密钥)。经过8轮的迭代后,L8和R8相串联得到64 bit的字符串输出。 图7.2 KASUMI算法流程 其中,轮函数fi以Li1和RKi为参数,输入32bit,输出32bit。密钥RKi由三个一组的子密钥(KLi,KOi,KIi)组成,其中KLi为32bit,KOi和KIi均为48bit,共128bit。轮函数fi包括一个输入、输出均为32bit的非线性混合函数FO和一个输入、输出均为32bit的线性混合函数FL,函数FO以KOi和KIi为
12、密钥,函数FL以KLi为密钥。轮函数fi在不同的奇偶轮有不同的表达形式。 对于1,3,5,7轮: fi(I, RKi)=FO(FL(I, KLi),KOi,KIi) (7-2)对于2,4,6,8轮: fi(I,RKi)=FL(FO(I,KOi,KIi),KLi) (7-3) 下面对算法中各个函数的结构进行简单说明。 1)FL函数 FL函数的结构如图7.3所示,该函数接收并处理32bit的输入数据I和32bit的子密钥KLi。子密钥KLi被分成两个各16bit的子密钥KLi,1和KLi,2。同样,输入数据也被分为两个16bit的左右两部分L和R。定义ROL表示循环移位,算法可表达为 )ROL()
13、ROL(21, i, iKLRLLKLLRR(7-4)最后以RL作为32bit的输出值。图7.3中, 为与运算; 为或运算; 为异或运算; 为循环左移1位的运算; 为循环右移1位的运算。XY表示两序列相连接。 图7.3 FL函数 2)FO函数 FO函数结构见图7.4,该函数由一个输入、输出均为16bit的非线性混合函数FI(FI函数下段介绍)进行3轮重复运算而构成。FO函数在两组密钥KOi和KIi控制下对32bit输入进行处理。输入数据I被分成各16bit的两部分L0和R0,而两组48bit的密钥KOi和KIi均被分成三个16bit的子密钥KOi,1、KOi,2、KOi,3和KIi,1、KIi
14、,2、KIi,3。对于三轮运算中的每一轮,算法可表达为3)(1 )FI(111jRL,RKI,KOLRjjjj , ij , ijj(7-5)FO函数最后得到输出是32bit的L3R3。 图7.4 FO函数 3)FI函数 FI函数结构见图7.5,它是一个由非线性处理过程构成的4轮结构。输入数据I被分为两个不等长的两部分:9bit的L0和7bit的R0。密钥KIi,j也被分为7bit的KIi,j,1和9bit的KIi,j,2。函数中包含了两个S盒。S7为7bit输入7bit输出;S9为9bit输入9bit输出,两者均为线性逻辑运算。处理过程中还使用了非线性扩展函数ZE和收缩函数TR。ZE(x)将
15、7bit输入数据后面补两位零得到9bit的输出;TR(x)将9bit输入数据删除最前面两位得到7bit的输出。计算过程可表示为 )(Z9)(7 )(Z9)TR(7 3422311123003342321201RRRELSRKIRTRLSRRELSRRLSLRL,KIRL,RL., j , i., j , i(7-6)最后以16bit的L4R4为输出。 KASUMI算法与第4章介绍的Camellia算法都是由日本三菱公司参与开发的对称密钥加密算法。读者不难发现,两者的具体算法是完全不同的。Camellia以字节或字为操作单元,通过软件来实现,其性能更高,可以普遍适用于8bit或32bit的处理器
16、(如智能卡或嵌入式系统等)。KASUMI算法则主要用于能源供给有限的移动通信系统,以确保文本或语音信息的保密性。图7.5 FI函数 2数据加密算法数据加密算法 f 8 在移动通信中,用户数据和信令数据的保密采用序列加密方法。f 8的作用实际上是一个密钥流发生器,它以密钥序列号等参数为输入,运用多级KASUMI算法生成序列密钥流。在发送端将待加密明文数据流与密钥流进行逐位异或运算,得到密文流;在接收端则将密文流与同样的密钥流进行异或运算,得到明文数据流。加密和解密的全过程见图7.6。系统采用同步技术,使解密过程密钥流的初始位置与密文准确定位。 f 8算法产生密钥流的基本流程见图7.7。 图7.6
17、 加、解密过程图7.7 f 8算法流程 (1)初始化:首先填写64bit的初始化参数向量,其中包括序列密钥号COUNT-C、5bit的承载标识符BEARER、1bit的上下行标识位DIRECTION、明文长度LENGTH等信息。设CK表示128bit的原始密钥,KM为密钥修正符(取值为十六进制数的32个5,共128bit),二者相异或后作为KASUMI算法模块的控制密钥,而64bit的初始化参数向量作为KASUMI算法模块的输入数据,计算得到64bit的输出数据,存在寄存器A中。 (2)序列密钥的分组结构:设明文长度为LENGTH,那么序列密钥的长度也应当有同样的长度。而KASUMI算法模块一
18、次只能输出64bit的数据,因此采用分组计算,再将结果相连接。设BLOCKS表示分组的总数目,则BLOCKS=LENGTH/64, 方括号表示进位取整。用n表示分组序号,n=1,2,BLOCKS,其中第n个分组记做KSBni,i=0,1,2,63。将来这些分组连接起来之后,序列密钥KS与各分组的对应关系是: KS64(n-1)+i=KSBni (7-7)(3)各个分组的计算:以原始密钥CK为控制,通过KASUMI算法模块来计算产生第n个分组的序列密钥KSBni。KASUMI算法模块的输入来自寄存器A的64bit数据与n-1的模2加,再加上一个分组输出的64 bit数据。即 (7-8)式中:BL
19、KCNT=n-1。CK1KSBBLKCNTAKASUMKSBnnI 3数据完整性算法数据完整性算法 f 9 为了对移动用户设备和无线网络控制中心之间无线链路上的信令信息进行完整性保护和信源认证,发送端通过f9算法对信令信息、密钥序列号等输入参数计算出消息认证码MAC-I,附加在信令信息后一起发送到接收端。接收端也将收到的信令数据用f9算法进行同样的计算,算出消息认证码XMAC-I,将它与所收到的MAC-I进行比较,验证数据的完整性。其过程如图7.8所示。 f 9算法流程见图7.9,其原理是KASUMI算法的反复迭代。 图7.8 MAC-I/XMAC-I生成过程图7.9 f 9算法流程 (1)数
20、据分组:首先将来自无线网络控制中心(RNC)的信令数据MESSAGE加上前缀与后缀信息,如密钥序列号COUNT-I、上下行标识位DIRECTION,以及来自RNC的32bit的随机数FRESH,最后添上一个1和若干个0,使总比特数凑够64的整数倍。然后按每个分组64bit将数据分组。其中第n组表示为 PSni(n=0,1,2,BLOCKS-1;i=0,1,2,63) (7-9)其中,BLOCKS表示分组的总数目,取决于信令的长度。 (2)迭代压缩:以PS0为输入,IK为原始密钥,通过KASUMI模块计算得到64bit的输出数据;将它与PS1模2加后作为第二级KASUMI模块的输入,仍然以IK为
21、密钥,计算出第二 级的输出。同样,第n级的输出与PSn模2加后作为第n+1级KASUMI模块的输入,计算得出第n+1级的输出。最后将各级输出数据累加起来。 迭代工作可以在两个64bit的寄存器A和B中完成:A和B初始值清零,A用来存储每级KASUMI模块的输出,每计算新的一级时它都被新的结果刷新:IKnPSAKASUMIA(7-10)与此同时,每计算一级的时候,B也被累加(模2加)一次:ABB(7-11)交替进行式(7-10)与(7-11),直至处理过全部分组。 (3)消息认证码的产生:引入密钥修正符KM(128bit),赋值为十六进制数的32个“A”,将它与原始密钥IK相异或后,作为KASU
22、MI模块的控制,而前面计算的结果,即64bit的B作为KASUMI模块的输入,计算得到64bit的输出,将右边32bit舍弃,保留左边的32bit,这就是最终求得的消息认证码。 7.2无线局域网中的密码技术无线局域网中的密码技术 IEEE(电气电子工程师协会)提出一系列WLAN(无线局域网)的技术解决方案,其中IEEE802.11b是目前多数无线局域网产品支持的主流标准。为了保证移动站和AP(接入点)之间通信的安全性,802.11b采用了有线对等保密WEP(WiredEquivalentPrivacy)机制。这曾经是保障WLAN数据传输安全的核心部分。但是后来很多研究表明,WEP协议设计本身存
23、在一些难以克服的缺陷。为此,IEEE802.11i任务小组致力于开发新的安全标准,在正式版本出台前,提出了无线局域网保护性接入WPA(WiFiProtectedAccess)作为过渡方案。任务小组最终于2004年6月发布了802.11i标准。该标准增强了WLAN中的数据加密和认证性能,并且针对WEP加密机制的安全漏洞做了多方面的改进。本节对WEP和IEEE802.11i标准中的部分数据保密技术作简单介绍。 7.2.1WEP算法算法37 WEP的设计目标是对无线传输数据提供机密性、访问控制和数据完整性的安全服务。 1WEP的数据加的数据加/解密解密 WEP对MAC层的数据进行序列加密,算法比较简
24、单,如图7.10所示。 图7.10 WEP加密算法 WEP的密钥k为40bit(或104bit),与24bit的随机数初始化向量IV(InitializationVector)连接后输入给伪随机数发生器(采用RC4算法),产生与待传输数据等长的密钥序列ks。为了进行完整性校验,先对明文m计算循环冗余校验CRC,得到32bit校验码ICV。m与ICV连接后,与ks逐位异或即得到密文c,算法为 c=RC4(IVk) ( mCRC(m) (7-12)最后将密文c连接在IV后成为发送方实际发送的数据。 因为采用序列加密算法,接收方与发送方密钥相同,解密算法与加密也是相同的。接收方收到数据信息后,从中提
25、取IV和密文c,相同的方法生成密钥流,与密文模2加便得到明文m、校验和ICV(见图7.11)。算法为 RC4(IVk) c= RC4(IVk) RC4(IVk) ( mCRC(m) = mCRC(m) (7-13) 图7.11 WEP解密算法 为了防止数据被修改,最后仍然使用CRC算法对恢复的明文进行差错校验。只有计算得到的ICV和解密恢复的ICV匹配才接收该信息。CRC算法属于纠检错编码,不展开介绍,请参考相关书籍。 WEP的操作过程中,存在以下不足: (1)WEP加密中使用的24bit初始向量IV以明文形式与加密数据一起传送。而24bit的随机数共有224=16777216种取值,随着发送
展开阅读全文