计算机信息安全技术 课件全套 付永钢 第1-13章 计算机信息安全技术概述- 网络安全检测与评估_第1页
计算机信息安全技术 课件全套 付永钢 第1-13章 计算机信息安全技术概述- 网络安全检测与评估_第2页
计算机信息安全技术 课件全套 付永钢 第1-13章 计算机信息安全技术概述- 网络安全检测与评估_第3页
计算机信息安全技术 课件全套 付永钢 第1-13章 计算机信息安全技术概述- 网络安全检测与评估_第4页
计算机信息安全技术 课件全套 付永钢 第1-13章 计算机信息安全技术概述- 网络安全检测与评估_第5页
已阅读5页,还剩612页未读 继续免费阅读

下载本文档

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

文档简介

计算机信息安全技术课程目的通过本课程的学习,提高信息安全意识;掌握网络攻防技术的原理、方法和工具;信息系统的安全解决方案;掌握Internet的安全性知识具体包括如下几个部分:

DES,AES,RSA,单向散列函数等加密技术;数字签名与认证技术的原理;计算机病毒与黑客的攻击方式及防范方法;网络攻击与防范的概念和方法防火墙技术的相关概念;入侵检测的相关概念及相关产品;数据备份与恢复技术,并对软件保护技术能够初步的了解;

VPN技术、电子商务安全、电子邮件安全等。第1章计算机信息安全技术概述1.1计算机信息安全的威胁因素1.2信息安全的含义1.3计算机信息安全的研究内容1.4信息安全模型1.5OSI信息安全体系1.6信息安全中的非技术性因素1.7信息安全标准化知识我们的信息感受计算机和高速互联网深入人们的生活固定电话—智能手机、IP电话、微信等现金支付--微信、支付宝、银联等移动支付银行柜台、缴费—网上银行业务、手机银行实体店商业--电子商务……高度信息化出现的新问题网上信息可信度差;垃圾电子邮件;安全计算机病毒、恶意软件网络攻击网络渗透网络窃密网络游戏成为电子鸦片……EmailWebISP门户网站E-Commerce电子交易复杂程度时间Internet变得越来越重要网民遇到的信息安全事件资料来源:CNNIC2020年新增病毒种类第一大种类病毒木马病毒新增7728万个,占到总体数量的52.05%;排名第二为蠕虫病毒,数量为2981万个,占总体数量的20.08%;感染型病毒、灰色软件、后门分别占12.19%、9.59%和3.75%。资料来源:2020年中国网络安全报告InformationandNetworkSecurityWewilldemonstratethat62%ofallsystemscanbepenetratedinlessthan30minutes.MorethanhalfofallattackswillcomefrominsideyourownorganizationfromTNN.com 1.1威胁计算机信息安全的因素对计算机信息系统的威胁:

1.直接对计算机系统的硬件设备进行破坏;2.对存放在系统存储介质上的信息进行非法获取、篡改和破坏等;3.在信息传输过程中对信息非法获取、篡改和破坏等。

安全威胁来自哪里内因人们的认识能力和实践能力的局限性系统规模Windows3.1—300万行代码Windows95—1500万行代码Windows98—1800万行代码Windowsxp----3500万行代码Windows2000----4000万行代码Windows7—6500万行代码Windows10—大概在7000万行以上近十多年安全漏洞发布趋势

影响计算机信息安全的因素:

1.人为的无意失误;

2.人为恶意攻击;

3.软件设计不完善。

1.2信息安全的含义机密性不可否认可用性完整性鉴别机密性通信保密20世纪70年代前机密性完整性可用性信息安全80、90年代信息保障21世纪1.2信息安全的含义安全的信息交换应该满足5个特征:数据机密性数据完整性可用性不可否认性鉴别。CIA:ConfidentialityIntegrityAvailability

1.3计算机信息安全研究的内容

1.计算机外部安全;2.计算机内部安全;3.计算机网络安全。

1.3.1计算机外部安全

安全规章制度;电磁辐射/泄漏。使用低辐射设备利用噪声干扰源电磁屏蔽滤波技术光纤传输

1.3.2

计算机内部安全

计算机软件保护软件安全数据安全

1.3.3

计算机网络安全

计算机网络安全是指信息在通过网络系统交换数据时确保信息的完整性、可靠性和保密性。可以采用如下技术:边界防卫入侵检测安全反应1.4信息安全模型经典的通信安全传输模型动态安全模型PPDR安全模型APPDRR动态安全模型1.5OSI信息安全体系OSI安全体系目标:(1)把安全特征按功能目标分配给OSI的各层,以加强OSI结构的安全性;(2)提供一个结构化的框架,以便供应商和用户据此评估安全产品;核心内容:5类安全服务7类安全机制TCP/IP参考模型TCP/IP参考模型OSI的7层协议模型安全服务

鉴别服务;数据机密性;数据完整性;访问控制服务;抗抵赖服务

安全机制

1.加密机制

2.数字签名机制

3.访问控制机制

4.数据完整性机制

5.鉴别交换机制

6.业务流填充机制 7.公证机制安全服务及OSI协议层的关系表

网络层次安全服务物理层数据链路层网络层传输层会话层表示层应用层鉴别对等实体鉴别

YY

Y数据源鉴别

YY

Y访问控制

YY

数据机密性连接机密性YYYY

YY无连接机密性

YYY

YY选择字段机密性

YY业务流机密性Y

Y

Y数据完整性可恢复的连接完整性

Y

Y不可恢复的连接完整性

YY

Y选择字段连接完整性

Y无连接完整性

YY

Y选择字段无连接完整性

Y抗抵赖性数据原发证明抗抵赖性

Y交付证明的抗抵赖性

Y安全服务与安全机制的关系表

安全机制安全服务加密数字签名访问控制数据完整性鉴别交换业务流填充公证鉴别对等实体鉴别YY

Y

数据源鉴别YY

访问控制

Y

数据机密性连接机密性Y

Y

无连接机密性Y

Y

选择字段机密性Y

业务流机密性Y

YY

数据完整性可恢复的连接完整性Y

Y

不可恢复的连接完整性Y

Y

选择字段连接完整性Y

Y

无连接完整性YY

Y

选择字段无连接完整性YY

Y

抗抵赖性数据原发证明抗抵赖性YY

Y

Y交付证明的抗抵赖性YY

Y

Y

人员、组织与管理

人事安全计算机与网络安全数据与事务安全信息安全安全环1.6信息安全中的非技术因素

1.7信息安全标准化知识国际标准(ISO)国家标准(GB、GB/T)行业标准(JB/T)地方标准(’DB(地方标准代号)’+‘省、自治区、直辖市行政区代码前两位’+‘/’+‘顺序号’+‘年号’,例如DB11/039-1994电热食品压力炸锅安全卫生通用要求)企业标准(Q/。。。)标准化组织国际标准化组织(InternationalOrganizationforStandardization,ISO)国际电信联盟(InternationalTelecommunicationUnion,ITU)国际电工委员会(InternationalElectro-technicalCommission,IEC)互联网工程任务组(InternetEngineeringTaskForce,IETF)美国国家标准与技术研究所(NationalInstituteofStandardandTechnology,NIST)电器和电工工程师协会(InstituteofElectricalandElectronicsEngineer,IEEE)信息安全相关标准信息安全管理指南(ISO/IEC13335)信息安全管理实用规则(ISO/IEC27001)信息系统软件过程评估(ISO/IEC15504)系统安全工程能力成熟模型(SSE-CMM)信息安全管理体系标准(ISO/IEC17799)本章教学要求(1)了解计算机信息系统面临的威胁和产生的原因;(2)掌握计算机信息安全技术研究的内容;(3)了解计算机信息安全的动态模型(4)了解OSI信息安全服务及机制;(5)了解信息安全相关的技术标准及标准化组织第2章密码技术2.1密码学概述2.2传统密码体制2.3现代对称密码体制2.4非对称密码体制2.5密码学的新进展

例:设明文是一串二进制序列,加密和解密算法都采用模2运算,即异或运算⊕,加密密钥和解密密钥相同。若明文

P=11001100加密和解密密钥

K=11000111则加密后的密文

C=P⊕K=00001011解密后的密文

P=C⊕K=110011002.1密码学概述密码体制的模型2.1密码学概述2.密码体制的分类(1)对称密码体制:K1=K2

或K2=f(K1)优点:(a)加密和解密的速度都比较快,具有较高的数据吞吐率;(b)对称密码体制中所使用的密钥相对较短;(c)密文的长度往往与明文长度相同。缺点:(a)密钥分发需要安全通道,需要付出的代价较高;(b)密钥量大,难于管理。2.1密码学概述(2)非对称密码体制:

K1和K2不相同,且不能从公钥推出私钥,或者说从公钥推出私钥在计算上是不可行的。优点:a)密钥的分发相对容易。b)密钥管理简单。c)可以有效地实现数字签名。缺点:a)与对称密码体制相比,非对称密码体制加解密速度较慢;b)同等安全强度下,非对称密码体制要求的密钥长度要长一些;c)密文的长度往往大于明文长度。2.1密码学概述柯克霍夫准则(KerckhoffsPrinciple): 即使密码系统的任何细节已为人悉知,只要密钥未泄漏,它也应是安全的。2.1密码学概述3.密码体制的攻击(1)唯密文攻击(CiphertextonlyAttack)

(2)已知明文攻击(KnownPlaintextAttack)

(3)选择明文攻击(ChosenPlaintextAttack)

(4)选择密文攻击(ChosenCiphertextAttack)

(5)选择文本攻击(ChosenTextAttack)

2.1密码学概述4.密码算法的评价1)安全性。安全是最重要的评价因素;2)计算的效率。即算法的速度,算法在不同的工作平台上的速度都应该考虑到;3)存储条件。4)软件和硬件的适应性。即算法在软件和硬件上都应该能够被有效的实现;5)简洁性。即要求算法应容易实现;6)适应性。即算法应与大多数的工作平台相适应,能在广泛的范围内应用,具有可变的密钥长度。

加密算法的有效性Unconditionallysecure,绝对安全?永不可破,是理想情况,理论上不可破,密钥空间无限,在已知密文条件下,方程无解。但是我们可以考虑:破解的代价超过了加密信息本身的价值破解的时间超过了加密信息本身的有效期Computationallysecure,满足上述两个条件直觉:什么是好的加密算法假设密码(password)k是固定的明文和密文是一个映射关系:单射,即

通常情况是:明文非常有序好的密码条件下,我们期望得到什么样的密文随机性如何理解随机性小的扰动带来的变化不可知考虑设计一个加密算法打破明文本身的规律性随机性(可望不可及)非线性(一定要)统计意义上的规律多次迭代迭代是否会增加变换的复杂性是否存在通用的框架,用于迭代复杂性带来密码分析的困难和不可知性实践的检验和考验2.2传统密码体制2.2.1置换密码

2.2.2代换密码

2.2.3传统密码的分析

古典加密方法2.2.1置换密码假定m=6,密钥是以下置换:123456—————————351642则逆置换为:123456—————————361524假定给出明文:shesellsseashellsbytheseashore首先把明文分为6个字母一组:shesellsseashellsbytheseashore每6个字母按置换函数进行重排,得到相应的密文:EESLSHSALSESLSHBLEHSYEETHRAEOS2.2.2代换密码

明文中的每一个字符被替换成密文中的另一个字符。接收者对密文做反向替换就可以恢复出明文。单表代换密码多表代换密码单表代换密码(移位密码)ABCDEFGHIJKLM0123456789101112NOPQRSTUVWXYZ13141516171819202122232425单表代换密码(替换密码)单表代换密码(仿射密码)例:假定k=(7,3),7-1

mod26=15,加密函数为ek(x)=7x+3,则相应解密函数为dk(y)=15(y-3)=15y-19,其中所有的运算都是在Z26中。 容易验证,dk(ek(x))=dk(7x+3)=15(7x+3)-19=x+45-19=x。假设待加密的明文为hot。 首先转化三个字母分别为数字7,14和19。可得密文串为AXG。

单表代换密码的分析语言的统计特性:语言的频率特征连接特征重复特征频率特征在各种语言中,各个字母的使用次数是不一样的,有的偏高,有的偏低,这种现象叫偏用现象.对英文的任何一篇文章,一个字母在该文章中出现的次数称作这个字母(在这篇文章中)的频数。一个字母的频数除以文章的字母总数,就得到字母的使用频率。英文字母的普遍使用频率美国密码学家W.F.Friedman在调查了大量英文资料后,得出英文字母的普遍使用规律.英文字母普遍的频率特征英文单字母的相对频率表英文单字母使用频率分类统计分析示例例2.6假设从仿射密码获得的密文为:FMXVEDKAPHFERBNDKRXRSREFMORUDSDKDVSHVUFEDKAPRKDLYEVLRHHR

最高频的密文字母是:R(8次),D(7次),E,H,K(各5次),F,S,V(各4次)假定R是e的加密,D是t的加密。数值化有ek(4)=17,且ek

(19)=3。得到两个线性方程组:4a+b=1719a+b=3这个方程组有惟一解a=6,b=19(在Z26

上)。但这是一个非法的密钥,因为gcd(a,26)=2>1,所以上面的假设有误。统计分析示例下一个猜想:R是e的加密,E是t的加密,得a=13,又是不可能的。继续假定R是e的加密,且K是t的加密。于是产生了a=3,b=5,这至少是一个合法的密钥。最后计算相应于k=(3,5)的解密函数,然后解密密文看是否得到了有意义的英文串。最后的明文是:

algorithmsarequitegeneraldefinitionsofarithmeticprocesses单表密码破译小结假定,推翻,再假定,再推翻,直至破译①对密文字母的频数、使用频率和连接次数进行统计②根据了解到的密码编制人员的语言修养,以及手中掌握的密文的统计规律,多方比较,对明文的语种和密码种类作出假定③将假定语种的字母频率与密文字母频率进行比较④首先找出密文中频率最高的字母⑤根据字母的频率特征、连接特征、重复特征,从最明显的单词或字母开始,试探进行⑥总结对抗频率分析的办法多名或同音代换密码多表代换密码多字母代换密码多表代换密码多表代换密码是以一系列(两个以上)代换表依次对明文消息的字母进行代换的加密方法。例:设m=6,且密钥字是CIPHER,这相应于密钥k=(2,8,15,7,4,17)。假定明文串是

thiscryptosystemisnotsecure。首先将明文串转化为数字串,按6个一组分段,然后模26“加”上密钥字可得相应的密文串:

VPXZGIAXIVWPUBTTMJPWIZITWZT多表代换密码有名的多表代换密码有VigenèreBeaufortRunning-KeyVerna转轮机(RotorMachine)多表代换密码Vigenère密码1858年提出的移位代换密码2.3现代对称密码体制现代密码学已发展成两个重要的分支:(1)对称加密体制

其典型代表是数据加密标准DES(数据加密标准)、IDEA(国际数据加密算法)、AES(高级加密标准)等算法。(2)公开密钥加密体制其典型代表是RSA、椭圆曲线加密、NTRU算法等。2.3现代对称密码体制序列密码体制和分组密码体制分组密码体制:数据在密钥的作用下,一组一组、等长地被处理,且通常情况是明、密文等长。一般以DES和AES为代表。序列密码体制:序列密码将明文消息序列m=m1,m

2,…,mn用密钥流序列k=k1,k2,…,kn逐位加密,得密文序列c=c1,c2,…,cn。以RC4为代表。DES概述数据加密标准(DES)是迄今为止使用最为广泛的加密算法。作为分组密码的典型代表,它是IBM公司在Lucifer密码的基础上改进的,已经有40多年的历史。1977年1月,DES被正式批准为美国联邦信息处理标准,直到1998年12月才被AES取代。DES算法描述DES是分组加密算法,它以64位(二进制)为一组,64位明文输入,64位密文输出。密钥长度为56位,但密钥通常表示为64位,并分为8组,每组第8位作为奇偶校验位,以确保密钥的正确性,对用户来说每组密钥仍是56位。利用密钥,通过传统的置换、代换和异或等变换,实现二进制明文的加密与解密。代换运算置换运算初始置换IP58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157逆置换IP-140848165614643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725DES框图(一)DES框图f(A,J)的运算过程DES(二)子密钥计算

DES(三)DES工作模式

ElectronicCodebook(ECB)

模式

DESCipherBlockChaining(CBC)模式CipherFeedback(CFB)模式OutputFeedback(OFB)模式DES(四)DES安全性

对DES的批评主要集中在以下几点:

(1)DES的密钥长度(56位)可能太短;

(2)DES的迭代次数可能太少;

(3)S-盒中可能有不安全因素;

(4)DES的一些关键部分不应当保密.DES安全性1977年,迪菲和海尔曼提出了一部造价约2千万美元的破解器,可以在一天内找到一个DES密钥。1993年,迈克尔·维纳设计了一部造价约1百万美元的破解器,大约可以在7小时内找到一个密钥。然而,这些早期的设计并没有被实现,至少没有公开的实现。在1990年代晚期,DES开始受到实用的攻击。1997年,RSA数据安全公司赞助了一系列的竞赛,奖励第一个成功破解以DES加密的信息的队伍1万美元,洛克·韦尔谢什(RockeVerser),马特·柯廷(MattCurtin)和贾斯廷·多尔斯基(JustinDolske)领导的DESCHALL计划获胜,该计划使用了数千台连接到互联网的计算机的闲置计算能力。1998年,电子前哨基金会(EFF)制造了一台DES破解器,造价约$250,000。该破解器可以用稍多于2天的时间暴力破解一个密钥,它显示了迅速破解DES的可能性。AES(AdvancedEncryptionStandard)AES使用的是置换-组合架构。AES在软件及硬件上都能快速地加解密,相对来说较易于实作,且只需要很少的内存。作为一个新的加密标准,目前正被部署应用到更广大的范围。AES(AdvancedEncryptionStandard)

(一)算法过程概述

AES各轮AES加密循环(除最后一轮外)均包含4个步骤:(1)轮密钥加运算(AddRoundKey)矩阵中的每一个字节都与该次轮密钥(Roundkey)做XOR运算;每个子密钥由密钥生成方案产生。(2)字节代换(SubBytes)通过一个非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。(3)行位移变换(ShiftRows)将矩阵中的每个横列进行循环式移位。

(4)列混合变换(MixColumns)为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每内联的四个字节。AES(1)轮密钥加运算(AddRoundKey)在每次的加密循环中,都会由主密钥产生一把轮密钥,这把密钥大小会跟原矩阵一样,然后与原矩阵中每个对应的字节作异或(⊕)加法。AES(1)轮密钥加运算(AddRoundKey)在每次的加密循环中,都会由主密钥产生一把轮密钥,这把密钥大小会跟原矩阵一样,然后与原矩阵中每个对应的字节作异或(⊕)加法。AES(2)字节代换(SubBytes)矩阵中的各字节通过一个8位的S-box进行转换。S-box与有限域GF(28)上的乘法逆有关。为了避免简单代数性质的攻击,S-box结合了乘法逆及一个可逆的仿射变换矩阵建构而成。

AES11000110=1000111111000111111000111111000111111000011111000011111000011111y0y1y2y3y4y5y6y7.⊕x0x1x2x3x4x5x6x7(2)字节代换(SubBytes)代换表(即S-盒)是可逆的,由以下两个变换得到:首先,将每个状态字节看作GF(28)上的元素,映射到自己的乘法逆元。其次,对该字节转换成二进制数,做如下的(GF(2)上的仿射变换:AES(2)字节代换(SubBytes)状态矩阵按照下面的方式映射成为一个新的字节:把该字节的高4位作为行值,低4位作为列值,得到S盒或逆S盒的对应元素作为输出。例如输入字节0x12,取S盒的第0x01行盒0x02列,得到0xC9。S盒代换表0123456789ABCDEF0637C777BF26B6FC53001672BFED7AB761CA82C97DFA5947F0ADD4A2AF9CA472C02B7FD9326363FF7CC34A5E5F171D83115304C723C31896059A071280E2EB27B275409832C1A1B6E5AA0523BD6B329E32F84553D100ED20FCB15B6ACBBE394A4C58CF6D0EFAAFB434D338545F9027F503C9FA8751A3408F929D38F5BCB6DA2110FFF3D28CD0C13EC5F974417C4A77E3D645D1973960814FDC222A908846EEB814DE5E0BDBAE0323A0A4906245CC2D3AC6291951479BE7C8376D8DD54EA96C56F4EA657AAE08CBA78252E1CA6B4C6E8DD741F4BBD8B8AD703EB5664803F60E613557B986C11D9EEE1F8981169D98E949B1E87E9CE5528DFF8CA1890DBFE6426841992D0FB054BB16AES(2)字节代换(SubBytes)此外在建构S-box时,刻意避开了固定点与反固定点,即以S-box替换字节的结果会相当于错排的结果。1)S盒变换是AES的唯一非线性变换,是AES安全的关键;2)AES使用16个相同的S盒,DES使用8个不同的S盒;3)AES的S盒有8位输入,8位输出;DES的S盒有6位输入,4位输出。AESAES(3)行位移变换(ShiftRows)每一行都向左循环位移某个偏移量。在AES中(区块大小128位),第一行维持不变,第二行里的每个字节都向左循环移动一格。同理,第三行及第四行向左循环位移的偏移量就分别是2和3。经过ShiftRows之后,矩阵中每一竖列,都是由输入矩阵中的每个不同列中的元素组成。AES(4)列混合变换(MixColumns)列混合运算将状态(State)的列看作是有限域GF(28)上的多项式a(x),与多项式c(x)=03x3+01x2+01x+02相乘(在模(x4+1)意义下)。b(x)=c(x)xa(x)(modx4+1)b0b1b2b3=02030101010203010101020303010102a0a1a2a3AES(4)列混合变换(MixColumns)在MixColumns步骤中,每个直行都在modulo之下,和一个固定多项式c(x)作乘法。AES的密钥调度密钥bit的总数=分组长度x(轮数Round+1)当分组长度为128bit且轮数为10时,轮密钥长度为:128x(10+1)=1408bit将初始密钥扩展成扩展密钥轮密钥从扩展密钥中取,第1轮轮密钥取扩展密钥的前Nb个字,第2轮轮密钥取接下来的Nb个字,以此类推。密钥扩展ω[0]ω[1]ω[2]ω[3]k00k01k02k03k10k11k12k13k20k21k22k23k30k31k32k33密钥扩展以128bit为例,对数组ω扩充40个新列,构成总共44列的扩展密钥数组。新列按照以下的方式递归产生:(1)如果i不是4的倍数,那么第i列由等式ω[i]=ω[i-4]⊕ω[i-1]确定;(2)如果i是4的倍数,那么第i列由等式ω[i]=ω[i-4]⊕T(ω[i-1])确定;ω[0]ω[1]ω[2]……ω[42]ω[43]ω[0]ω[1]ω[2]ω[3]AES密钥扩展图ω[4i]ω[4i-3]ω[4i-2]ω[4i-1]⊕ω[4i]ω[4i+1]ω[4i+2]ω[4i+3]T⊕⊕⊕密钥扩展函数T由三部分组成:字循环移位、字节代换和轮常量异或。(1)字循环移位:将1个字中的4个字节循环左移1个字节,即将输入字[b0,b1,b2,b3]变换为[b1,b2,b3,b0]。(2)字节代换:对字循环的结果使用S盒进行字节代换。(3)轮常量异或:将前两步的结果同轮常量Rcon[j]进行异或,其中j表示轮数。轮常量是一个字,使用轮常量是为了防止不同轮中产生的轮密钥的对称性或相似性。AES(二)密钥扩展(ExpandedKey)算法(1)当Nk≤6时(即AES算法密钥长度为128和192比特时)KeyExpansion(byteKey[4*Nk,w[Nb*(Nr+1)]){for(i=0;i<Nk;i++)W[i]=(Key[4*i],Key[4*i+1],Key[4*i+2],Key[4*i+3]);

for(i=Nk;i<Nb*(Nr+1);i++)

{temp=W[i-1];if(i%Nk==0)temp=SubByte(RotByte(temp))^Rcon[i/Nk];

W[i]=W[i-Nk]^temp;

}}(2)当Nk>6时(即AES算法密钥长度为256比特时)KeyExpansion(byteKey[4*Nk,w[Nb*(Nr+1)]){for(i=0;i<Nk;i++)W[i]=(Key[4*i],Key[4*i+1],Key[4*i+2],Key[4*i+3]);

for(i=Nk;i<Nb*(Nr+1);i++)

{temp=W[i-1];if(i%Nk==0)temp=SubByte(RotByte(temp))^Rcon[i/Nk];elseif(i%Nk==4)

temp=SubByte(temp);W[i]=W[i-Nk]^temp;}}AES的基本逆变换AES的巧妙之处:虽然解密算法与加密算法不同,但解密算法与加密算法结构相同。把加密算法的基本运算变换成逆变换,便得到解密算法。AES的各个基本变换都是可逆的。AES的基本逆变换轮密钥加变换的逆就是其本身;行移位变换的逆是状态的分别移位对应的位数;列混合变换的逆就是状态的每列都乘以c(x)的逆多项式d(x);S盒变换的逆:首先进行逆仿射变换,然后再把每个字节用对应的逆来代替,查逆S盒表。

逆S盒代换表0123456789ABCDEF052096AD53036A538BF40A39E81F3D7FB17CE339829B2FFF87348E4344C4DEE9CB2547B9432A6C2233DEE4C950B42FAC34E3082EA16628D924B2765BA2496D8BD125472F8F66486689816D4A45CCC5D65B69256C704850FDEDB9DA5E154657A78D9D84690D8AB008CBCD30AF7E45805B8B345067D02C1E8FCA3F0F02C1AFBD0301138A6B83A9111414F67DCEA97F2CFCEF0B4E673996AC7422E7AD3585E2F937E81C75DF6EA47F11A711D29C5896FB7620EAA18BE1BBFC563E4BC6D279209ADBC0FE78CD5AF4C1FDDA8338807C731B11210592780EC5FD60517FA919B54A0D2DE57A9F93C99CEFEA0E03B4DAE2AF5B0C8EBBB3C83539961F172B047EBA77D626E169146355210C7DAES(三)AES安全性2002年成为有效标准(旁道攻击成功一次)AES算法的安全性目前是可靠的;针对AES密码系统,不断有新的攻击方法提出,包括功耗分析、积分攻击和旁道攻击等,尚不能对AES构成实际的威胁;旁道攻击不攻击密码本身,而是攻击那些实现于不安全系统上的加密系统。序列密码--RC4RC4是由麻省理工学院RonRivest开发的可变密钥长度的流密码,是世界上普遍使用的流密码之一。RC4是一种基于非线性数据表变换的流密码,它以一个足够大的数据表S为基础,对表进行非线性变换,产生非线性的密钥流序列。RC4RC4密钥调度算法初始化数据表S

forifrom0to255 S[i]:=i k[i]=key[i%Len]endforj:=0forifrom0to255 j:=(j+S[i]+k[i])mod256 swapvaluesofS[i]andS[j]endforRC4RC4密钥流的每个输出都是数据表S中的一个随机元素。密钥流的生成需要两个过程:

1)密钥调度算法用于设置数据表S的初始排列;

2)伪随机生成算法.用于选取随机元素并修改S的原始排列顺序。优点:软件实现容易,已经应用于Microsoftwindows、LotusNotes等软件,用于安全套接字层SSL(SecureSocketLayer)保护因特网的信息流。2.4非对称密码体制特点:有一对密钥,其中pk是公开的,即公开密钥。另一个密钥sk是保密的,这个密钥称为私人密钥,简称私钥。进行加密和解密时使用不同的加密密钥和解密密钥,这里要求加密密钥和解密密钥不能相互推导出来或者很难推导出来。非对称密码体制都是建立在严格的数学基础上,公开密钥和私人密钥的产生是通过数学方法产生的,公钥算法的安全性是建立在某个数学问题很难解决的基础上。非对称密码使用模型2.4.1RSA非对称密码体制RSA发明人,从左到右RonRivest,AdiShamir,LeonardAdleman.照片摄于1978年2.4.1RSA非对称密码体制它的安全性一直未从理论上得到证明,但至今未被完全攻破。RSA具有的优势:为实现数字签名和数字认证提供了合适的手段,解决了DES不能解决的问题;在具有多个节点的网络中,大大减轻了密钥分配与管理的压力(在N个节点的网络中,用DES算法进行加密,需要N(N-1)/2对密钥,而RSA仅需要N对)RSA的数学基础定义1:对一个自然数P,如果P只能被1和自身除尽时,则称P为素数(或质数),否则为合数。定义2:如果整数a与整数b的最大公约数是1,则称a与b是互为质数。例如:2和3,5和7等都是互为质数。定义3:欧拉函数定义为:

φ(r)=r(1-1/P1)(1-1/P2)···(1-1/Pn)

P1

、P2···Pn是r的质因子,即公约数。

欧拉函数是用来计算1、2、3、···、r中有多少个数与r互为质数的。例如:当r=20时,由于r=2×2×5,即20的公约数是2和5

所以:

=20×(1-1/2)×(1-1/5)=8

即在1~20个整数中有8个与20互质的数,它们是1,3,7,9,11,13,17,19。定义4:两个整数a、b分别被m除,如果所得余数相同,则称a与b对模m是同余的,记作:

a≡b(modm)2.4.1RSA非对称密码体制算法描述:(1)选择一对不同的、足够大的素数p,q,计算n=pq;(2)计算Φ(n)=(p-1)(q-1);(3)找一个与Φ(n)互质的数e,且1<e<Φ(n)(令sk=e);(4)计算pk,使得pk*sk≡1modΦ(n)。2.4.1RSA非对称密码体制(5)公钥KU=(pk,n),私钥KR=(sk,n)。(6)加密时,先将明文变换成0至n-1的一个整数mi。若明文较长,可先分割成适当的组,然后再进行加密。设密文为Ci,则加密过程为:(7)解密过程为:RSA加密和解密的例子:在以下实例中只选取小数值的素数p,q,以及e,假设用户A需要将明文“key”通过RSA加密后传递给用户B。

(1)设计公、私密钥(e,n)和(d,n)。

令p=3,q=11,得出n=p×q=3×11=33;

Φ

(n)=(p-1)(q-1)=2×10=20;取e=3,(3与20互质)则e×d≡1modΦ

(n),即3×d≡1mod20。

pk怎样取值呢?可以用试算的办法来寻找。试算结果见下表:当d=7时,e×d≡1modΦ(n)同余等式成立。因此,可令pk=7。从而可以设计出一对公私密钥,加密密钥(公钥)为:

KU=(e,n)=(3,33),解密密钥(私钥)为:KR=(d,n)=(7,33)。

2)明文数字化。

将明文信息数字化,并将每块两个数字分组。假定明文英文字母编码表为按字母顺序排列数值则得到分组后的key的明文信息为:11,05,25。(3)明文加密

用户加密密钥(3,33)将数字化明文分组信息加密成密文。由得:得到相应的密文信息为:11,26,16。(4)密文解密。

用户B收到密文,若将其解密,只需要计算,即:用户B得到明文信息为:11,05,25。根据上面的编码表将其转换为明文,我们又得到了恢复后的原文“key”。实际运用时,要比这复杂得多。由于RSA算法的公钥私钥的长度(模长度)要到1024位甚至2048位才能保证安全,因此,p、q、e的选取、公钥私钥的生成,加密解密模指数运算都有一定的计算程序,需要仰仗计算机的高速计算来完成。

RSA算法安全性在RSA密码应用中,公钥KU是被公开的,即pk和n的数值可以被第三方得到。破解RSA密码的问题就是从已知的pk和n的数值(n等于pq),设法求出sk的数值,这样就可以得到私钥来破解密文。从上文中的公式:d≡e-1(mod((p-1)(q-1)))或de≡1(mod((p-1)(q-1)))可以看出,密码破解的实质问题是:从pq的数值,求出(p-1)和(q-1)。即,只要求出p和q的值,就能求出d的值而得到私钥。RSA算法安全性RSA算法的安全性取决于p、q的保密性,以及分解大数的难度,所以在计算出r后要立即彻底删除p、q值。通常,在实际应用中应该注意:1.p与q的取值必须相差很大,有人建议至少要在10倍左右;

2.为了提高加密速度,通常取加密的sk为特定的小整数,如EDI(电子数据交换)国际标准中规定选择的,ISO/IEC9796甚至允许取k=3,这样导致加密速度一般比解密速度快10倍以上。RSA的缺点RSA的缺点:

a)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。

b)分组长度太大,为保证安全性,n至少也要600bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。因此,使用RSA只能加密少量数据,大量的数据加密还要靠对称密码算法。2.4.2椭圆曲线密码椭圆曲线在密码学中的使用是在1985年由NealKoblitz和VictorMiller分别独立提出。椭圆曲线密码突出的优点:密钥长度短,抗攻击性强,单位比特的安全性强度高,比如160比特的ECC与1024比特的RSA有相同的安全强度;ECC的计算量小,处理速度快。在相同的强度下,用160比特的ECC进行加密、解密或数字签名要比用1024比特的RSA要快大约10倍。椭圆曲线上的密码1)密钥生成(A)(1)选择一个大素数p;(2)选有限域Zp上的一个椭圆曲线E,且包含一个阶足够大的元素α,α的阶记为ord(α);(3)选取整数d,满足1≤d≤n-1,并计算β=dα;(4)A的公钥为(E,p,α,β,n),秘密密钥为d。椭圆曲线上的密码加密(1)B获取A的公钥(E,p,α,β,n);(2)B选取整数k,满足1≤k≤n-1,计算和;(3)对明文(),B计算:(4)B得到密文,并将它发送给A。椭圆曲线上的密码解密(1)A收到B发给他的密文;(2)A计算;(3)A分别计算c1和c2在Zp上的逆元c1-1,c2-1;(4)A获得明文椭圆曲线密码的安全性ECC的安全性椭圆曲线密码的安全性依赖于椭圆曲线离散对数问题(ECDLP)的难解性。椭圆曲线离散对数问题比有限域上的离散对数问题更难处理。迄今还没有出现类似于求解有限域上的离散对数问题的index-calculs类型的亚指数时间的算法,来求解一般椭圆曲线离散对数问题。这就意味着,可以在椭圆曲线密码体制中采用较小的数,以得到与使用更大的有限域同样的安全强度。异常椭圆曲线易受攻击,在所有椭圆曲线密码体制中,该类曲线禁止使用。2.4.3Diffie-Hellman密钥交换Diffie-Hellman密钥交换的例子

2.5密码学新进展可证明安全性可证明安全性是指一个密码算法或密码协议,其安全性可以通过“归约”的方法得到证明。归约是把一个公认的难解问题,通过多项式时间化成密码算法(或协议)的破译问题。即,可证明安全性是假定攻击者能够成功,则可以从逻辑上推出这些攻击信息,可以使得攻击者或系统的使用者能够解决一个公认的数学难题。2.5密码学新进展基于身份的密码技术利用用户的部分身份信息可以直接推导出它的公开密钥;对普通公钥密码来说,证书权威机构是在用户生成自己的公、私密钥对之后,对用户身份和公钥进行捆绑(签名),并公开这种捆绑关系。基于身份的公钥密码,与证书权威机构对应的可信第三方在用户的公、私密钥对生成过程中已经参与,而且公开密钥可以选择为用户的部分身份信息的函数值。2.5密码学新进展量子密码学利用量子力学特性来保证通信安全性。如果有第三方试图窃听密码,则通信的双方便会察觉。这种性质基于量子力学的基本原理:任何对量子系统的测量都会对系统产生干扰。第三方试图窃听密码,必须用某种方式测量它,而这些测量就会带来可察觉的异常。通过量子叠加态或量子纠缠态来传输信息,通信系统便可以检测是否存在窃听。量子密码的安全性基于量子力学的基本原理,而传统密码学是基于某些数学算法的计算复杂度。传统密码学无法察觉窃听,也就无法保证密钥的安全性。量子密码只用于产生和分发密钥,并没有传输任何实质的信息。密钥可通过某些加密算法来加密信息,加密过的信息可以在标准信道中传输。本章小结本章主要内容:密码体制的基本模型;传统密码体制;现代对称密码体制;现代非对称密码体制。以及不同密码体制中的代表算法,如DES,AES,RSA等。通过本章的学习,要求掌握如下内容:密码体制的模型及分类方法;传统的置换密码、代换密码有较深入的了解;掌握现代对称密码体制中的DES和AES的加密解密过程;掌握非对称密码体制中的RSA算法原理和实现;了解Diffie-Hellman密钥交换原理。第三章信息认证技术3.1概述 3.2哈希函数 3.3消息认证技术 3.4数字签名 3.5身份认证 3.1概述在网络通信和电子商务中很容易发生如下问题。1.否认,发送信息的一方不承认自己发送过某一信息。2.伪造,接收方伪造一份文件,并声称它来自某发送方。3.冒充,网络上的某个用户冒充另一个用户接收或发送信息。4.篡改,信息在网络传输过程中已被篡改,或接收方对收到的信息进行篡改。用数字签名(DigitalSignature)可以有效地解决这些问题。数字签名就是主要用于对数字信息进行的签名,以防止信息被伪造或篡改等。3.1概述一个安全的认证系统应满足以下条件:(1)合法的接收者能够检验所接收消息的合法性和真实性。(2)合法的发送方对所发送的消息无法进行否认。(3)除了合法的发送方之外,任何人都无法伪造、篡改消息。3.2哈希函数

哈希函数,单向散列函数基本思想输入任意长度的消息M,产生固定长度的数据输出。向hash函数输入一任意长度的信息M时,hash函数将输出一固定长度为m的散列值h。即:

h=H(M)

性质:固定长度输出散列值h。给定M,很容易计算h。给定h,根据H(M)=h计算M很难。给定M,找到另一消息M’,满足H(M)=H(M’),在计算上是不可行的---弱抗碰撞性。对于任意两个不同的消息M≠M’,它们的散列值不可能相同---强抗碰撞性。注:碰撞性是指对于两个不同的消息M和M’,如果它们的摘要值相同,则发生了碰撞。3.2哈希函数

3.2哈希函数常用的哈希函数MD5SHA-1RIPEMD-160等等3.2.2MD5算法麻省理工学院RonRivest提出,可将任意长度的消息经过变换得到一个128位的散列值。MD5算法:MD5以512位分组来处理输入的信息,每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后生成128位散列值。

MD5主循环3.2.2MD5算法MD5算法步骤

1.数据填充与分组(1)将输入信息M按顺序每512位一组进行分组:

M=M1,M2,…,Mn-1,Mn(2)将信息M的Mn长度填充为448位。

当Mn长度L(bit为单位)

<448时,在信息Mn后加一个“1”,然后再填充447-L个“0”,使最后的信息Mn长度为448位。当Mn长度L>448时,在信息Mn后加一个“1”,然后再填充512-L+447个“0”,使最后的信息Mn长度为512位,Mn+1长度为448位3.2.2MD5算法2.初始化散列值

在MD5算法中要用到4个32位变量,分别为A、B、C、D:

A=0x01234567B=0x89abcdefC=0xfedcba98D=0x76543210

在MD5算法过程中,这四个32位变量被称为链接变量,它们始终参与运算并形成最终的散列值。3.2.2MD5算法3.计算散列值

(1)将填充后的信息按每512位分为一块(Block),每块按32位为一组划分成16个分组,即Mi=Mi0,Mi2,…,Mi15,i=1~n。(2)分别对每一块信息进行4轮计算(即主循环)。每轮定义一个非线性函数:

(3)将A、B、C、D这四个变量分别复制到变量a、b、c、d中。3.2.2MD5算法

(4)每一轮进行16次操作,每次操作对a、b、c、d中的三个变量作一次非线性函数运算,然后将所得的结果与第四个变量、信息的一个分组Mj和一个常数ti相加。再将所得的结果循环左移一个不定数s,并加上a、b、c、d中的一个变量。

FF(a,b,c,d,Mj,s,ti

表示

a=b+((a+F(b,c,d)+Mj+ti

)<<<s)

GG(a,b,c,d,Mj,s,ti

)表示

a=b+((a+G(b,c,d)+Mj+ti

)<<<s)

HH(a,b,c,d,Mj,s,ti

)表示

a=b+((a+H(b,c,d)+Mj+ti

)<<<s)

II(a,b,c,d,Mj,s,ti

表示

a=b+((a+I(b,c,d)+Mj+ti

)<<<s)

在第i步中,常数ti

取值为232×abs(sin(i))的整数部分。这样就可以得到4轮共64步操作。3.2.2MD5算法第一轮FF(a,b,c,d,M0,7,0xD76AA478)FF(d,a,b,c,M1,12,0xE8C7B756)FF(c,d,a,b,M2,17,0x242070DB)……FF(b,c,d,a,M15,22,0x49B40821)第二轮GG(a,b,c,d,M1,5,0xF61E2562)GG(d,a,b,c,M6,9,0xC040B340)GG(c,d,a,b,M11,14,0x265E5A51)……GG(b,c,d,a,M12,20,0x8D2A4C8A)第三轮HH(a,b,c,d,M5,4,0xFFFA3942)HH(d,a,b,c,M8,11,0x8771F681)HH(c,d,a,b,M11,16,0x6D9D6122)……HH(b,c,d,a,M2,23,0xC4AC5665)第四轮II(a,b,c,d,M0,6,0xF4292244)II(d,a,b,c,M7,10,0x432AFF97)II(c,d,a,b,M14,15,0xAB9423A7)……II(b,c,d,a,M9,21,0xEB86D391)16MD5的基本操作过程

3.2.2MD5算法4轮循环操作完成之后,将A、B、C、D分别加上a、b、c、d,即A=A+aB=B+bC=C+cD=D+d这里的加法是模232加法然后用下一分组数据继续运行算法,最后的输出是A、B、C和D的级联。3.2.2MD5算法SHA(SecureHashAlgorithm)是美国国家标准与技术研究所(NIST)提出,于1993年作为联邦信息处理标准(FIPS180)发布的,1995年又发布了其修订版(FIPS180-1),通常称为SHA-1。SHA-1算法的输入是长度小于264位的消息,输出160位的散列值。3.2.3SHA-1算法与MD5算法类似,SHA-1算法也需要对消息进行填充补位。补位是这样进行的:先添加一个1,然后再添加多个0,使得消息长度满足对512取模后余数是448。

SHA-1的中间结果和最终结果保存在160位的缓冲区中,缓冲区用5个32位的变量表示,这些变量初始化为:

A=0x67452301 B=0xefcdab89 C=0x98badcfe D=0x10325476 E=0xc3d2e1f03.2.3SHA-1算法SHA-1的主循环

3.2.3SHA-1算法SHA-1的非线性函数

3.2.3SHA-1算法对512位的消息进行处理,将其从16个32位的消息分组变成80个32位的消息分组。用到的80对常数:3.2.3SHA-1算法SHA-1的基本操作过程

3.2.3SHA-1算法2001年,NIST发布FIPS180-2,新增了三个哈希函数,分别为SHA-256,SHA-384,SHA-512,其散列值的长度分别为256,384,512。同时,NIST指出FIPS180-2的目的是要与使用AES而增加的安全性相适应。SHA-1SHA-256SHA-384SHA-512散列值长度160256384512消息大小<264<264<2128<2128分组大小51251210241024字长32326464步数808080803.2.3SHA-1算法3.3消息认证技术网络传输过程中信息保密性的要求:

(1)对敏感的数据进行加密,即使别人截获文件也无法得到真实内容。

(2)保证数据的完整性,防止截获人对数据进行篡改。

(3)对数据和信息的来源进行验证,以确保发信人的身份。消息认证是指使合法的接收方能够检验消息是否真实的方法。检验内容包括验证通信的双方和验证消息内容是否伪造或遭篡改。常见的认证函数:(1)消息加密:将整个消息的密文作为认证码。(2)哈希函数:通过哈希函数使消息产生定长的散列值作为认证码。(3)消息认证码(MAC):将消息与密钥一起产生定长值作为认证码。3.3消息认证技术基于对称密钥加密的消息认证过程3.3消息认证技术(1)消息加密认证添加校验码的消息认证过程3.3消息认证技术(1)消息加密认证基于公钥加密的消息认证过程(1)消息加密认证3.3消息认证技术使用哈希函数的消息认证过程

3.3消息认证技术(2)哈希函数认证保证机密性的哈希函数消息认证过程(2)哈希函数认证3.3消息认证技术混合加密认证

(2)哈希函数认证3.3消息认证技术基于消息认证码的认证过程

(3)消息认证码(MAC)的认证3.3消息认证技术MAC函数与加密函数相似之处在于使用了密钥,但差别在于加密函数是可逆的,而MAC函数可以是单向的,它无需可逆,因此比加密更不容易破解。哈希函数同样也可以用来产生消息认证码。假设K是通信双方A和B共同拥有的密钥,A要发送消息M给B,在不需要进行加密的条件下,A只需将M和K合起来一起通过哈希函数计算出其散列值,即H(M||K),该散列值就是M的消息认证码。3.3消息认证技术3.4数字签名用户A与B相互之间要进行通信,双方拥有共享的会话密钥K,在通信过程中可能会遇到如下问题:1)A伪造一条消息,并称该消息来自B。A只需要产生一条伪造的消息,用A和B的共享密钥通过哈希函数产生认证码,并将认证码附于消息之后。由于哈希函数的单向性和密钥K是共享的,因此无法证明该消息是A伪造的。2)B可以否认曾经发送过某条消息。因为任何人都有办法伪造消息,所以无法证明B是否发送过该消息。

哈希函数可以进行报文鉴别,但无法阻止通信用户的欺骗和抵赖行为。当通信双方不能互相信任,需要用除了报文鉴别技术以外的其他方法来防止类似的抵赖和欺骗行为。3.4数字签名数字签名也称电子签名。“以电子形式所附或逻辑上与其他电子数据相关的数据,做为一种判别的方法。”

联合国贸法会《电子签名示范法》定义为:“在数据电文中以电子形式所含、所附或在逻辑上与数据电文有联系的数据,它可用于鉴别与数据电文相关的签名人和表明签名人认可数据电文所含信息。”数字签名应该能够在数据通信过程中识别通信双方的真实身份,保证通信的真实性以及不可抵赖性,起到与手写签名或者盖章同等作用。签名应该具有的特征:(1)可信。因为B是用A的公钥解开加密文件的,这说明原文件只能被A的私钥加密而只有A才知道自己的私钥。(2)无法被伪造。只有A知道自己的私钥。因此只有A能用自己的私钥加密一个文件。(3)无法重复使用。签名在这里就是一个加密过程,自己无法重复使用。(4)文件被签名以后是无法被篡改的。因为加密后的文件被改动后是无法被A的公钥解开的。(5)签名具有不可否认性。因为除A以外无人能用A的私钥加密一个文件。3.4数字签名1.直接数字签名3.4.2数字签名的实现用户A与B要进行通信,每个从A发往B的签名报文首先都先发送给仲裁者C,C检验该报文及其签名的出处和内容,然后对报文注明日期,同时指明该报文已通过仲裁者的检验。仲裁者的引入解决了直接签名方案中所面临的问题,及发送方的否认行为。2.仲裁数字签名3.4.2数字签名的实现方案1[1]A→C:M||EKA(IDA||H(M))[2]C→B:EKB(IDA||M||EKA(IDA||H(M))||T)方案2[1]A→C:IDA||EKS(M)||EKA(IDA||H(EKS(M)))[2]C→B:EKB(IDA||EKS(M)||EKA(IDA||H(EKS(M)))||T)方案3[1]A→C:IDA||EKAS(IDA||EKBP(EKAS(M))[2]C→B:EKCS(IDA||EKBP(EKAS(M

温馨提示

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

评论

0/150

提交评论