您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 《网络安全实用教程》配套(人民邮电出版)ch6
第六章数据加密与认证技术本章有五小节:6.1密码学基础6.2数据加密体制6.3数字签名与认证6.4网络通信加密6.5数据加密技术应用实例6.1密码学基础6.1.1密码学的基本概念密码学(Cryptography)就是研究密码的科学,具体包括加密和解密变换。1.密码学的发展(1)传统密码学阶段(2)计算机密码学阶段(3)现代密码学阶段2.密码学的相关概念(1)明文P(PlainText):信息的原文。(2)密文C(CipherText):加密后的信息。(3)加密(Encryption):将明文转变为密文的过程。(4)解密(Decryption):将密文转换为明文的过程。(5)密码算法:用于加密和解密的变换规则,多为数学函数。通常情况下,密码算法包括加密算法(加密时使用的算法)和解密算法(解密时使用的算法)(6)密钥(Key):密钥是进行加密或解密时包含在算法中的参数。同样,密钥也分为加密密钥和解密密钥。3.密码的分类(1)按密码的历史发展阶段和应用技术分类手工密码、机械密码、电子机内乱密码和计算机密码(2)按密码转换的操作类型区分分类替代密码和移位密码(3)按明文加密时的处理方法分类分组密码和序列密码(4)按密钥的类型分类对称密钥密码和非对称密钥密码4.典型密码介绍(1)摩尔斯电码(2)四方密码(3)希尔密码(4)波雷费密码(5)仿射密码6.1.2传统密码技术传统密码技术一般是指在计算机出现之前所采用的密码技术,主要由文字信息构成。在计算机出现前,密码学是由基于字符的密码算法所构成的。不同的密码算法主要是由字符之间互相代换或互相之间换位所形成的算法。传统加密方法加密的对象是文字信息。文字由字母表中的字母组成,在表中字母是按顺序排列的,可赋予它们相应的数字标号,可用数学方法进行变换。1.替代密码替代变换要先建立一个替换表,加密时将需要加密的明文依次通过查表,替换为相应的字符,明文字符被逐个替换后,生成无任何意义的字符串(密文),替代密码的密钥就是替换表。根据密码算法加密时使用替换表多少的不同,替代密码又可分为单表替代密码和多表替代密码。2.移位密码移位密码是指将明文的字母保持不变,但字母顺序被打乱后形成的密码。移位密码的特点是只对明文字母重新排序,改变字母的位置,而不隐藏它们,是一种打乱原文顺序的替代法。3.一次一密钥密码一次一密钥密码是指一个包括多个随机密码的密码字母集,这些密码就好像一个记事本,其中每页上记录一条密码。其使用方法类似日历的使用过程,每使用一个密码加密一条信息后,就将该页撕掉作废,下次加密时再使用下一页的密码。因此,一次一密钥密码是一种理想的加密方案。6.2数据加密体制6.2.1对称密钥密码体制及算法1.对称密钥密码算法对称密钥密码算法也叫做传统密钥密码算法。在该算法中,加密密钥和解密密钥相同或相近,由其中一个很容易得出另一个,加密密钥和解密密钥都是保密的。在大多数对称密钥密码算法中,加密密钥和解密密钥是相同的,对称密钥密码的算法是公开的,其安全性完全依赖于密钥的安全。对称密钥密码体制的优点:算法简单加密/解密速度快便于用硬件实现对称密钥密码体制的缺点:密钥位数少保密强度不够密钥管理(密钥的生成、保存和分发等)复杂在计算机网络中广泛使用的对称加密算法DESTDEAIDEAAES等2.DES对称加密算法DES(DataEncryptionStandard,数据加密标准)算法最初是由IBM公司所研制,于1977年由美国国家标准局颁布作为非机密数据的数据加密标准,并在1981年由国际标准化组织作为国际标准颁布。DES算法采用的是以56位密钥对64位数据进行加密的算法。(1)DES算法原理在DES算法中有Data、Key、Mode三个参数。其中Data代表需要加密或解密的数据,由8字节64位组成;Key代表加密或解密的密钥,也由8字节64位组成;Mode代表加密或解密的状态。在DES算法中加密和解密的原理是一样的,只是因为Mode的状态不同,适用密钥的顺序不同而已。(2)DES算法的加密过程DES算法的加密过程如图6.2所示。输入64位明文64位密钥组输出64位密文图6.2DES算法加密流程初始置换(IP)逆初始置换(IP-1)乘积变换子密钥生成初始置换(InitialPermutation,IP)是对输入的64位数据按照规定的矩阵改变数据位的排列顺序的换位变换,此过程与密钥无关。子密钥生成是由64位外部输入密钥通过置换和移位操作生成加密和解密所需的16组(每组56位)子密钥的过程。乘积变换过程非常复杂,是加密过程的关键。该过程通过16轮重复的替代、移位、异或和置换操作打乱原输入数据。逆初始置换(IP-1)与初始置换过程相同,只是置换矩阵是初始置换的逆矩阵。①初始置换(IP)将64位明文按照初始置换表(如表6.1)的规则进行置换。其置换过程为:将输入明文的第58位置换到第1位,第50位置换到第2位,第12位置换到第3位,依此类推,……,最后第7位置换到第64位。58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157表6.1初始置换(IP)表②子密钥生成输入的密钥K是64位数据,但其中第8、16、24、32、40、48、56、64位用于奇偶校验,实际使用的密钥位只有56位。子密钥Ki的生成流程如图6.3所示。图6.3子密钥Ki的产生第1步:PC1变换。将56位密钥按置换选择1(PC-1)的规律(见表6.2)进行置换,变换后分为左右两路(C0、D0)各28位。57494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124表6.2PC1变换表第2步:数据左移。将两个28位的C0和D0按表6.3的规则进行循环左移。表6.3中第1行表示迭代轮次,第2行表示左移的位数。左移的规律是将C0和D0所有的位按表中规定的位数循环左移。轮12345678910111213141516位数1122222212222221表6.3循环移位表第3步:PC2变换和子密钥生成。C0和D0左移1位后得到C1和D1,再将C1和D1数据组合后(56位)按照PC2变换的要求变换得到48位的子密钥K1,在进行第1轮迭代时使用K1;同理,将C1和D1左移1位得到C2和D2,再将C2和D2数据组合后按照PC2变换的要求变换得到48位的子密钥K2;……;依此类推,就可以得到K3、K4…..K16。PC2变换如表6.4所示。PC2变换是将输入的56位数据变换为48位输出,该变换是一种压缩变换。根据不同轮数分别进行左移和压缩变换,分别得到16个48位的子密钥K1,K2,…,K16。1417112415328156211023191242681672720132415231374755304051453348444939563453464250362932表6.4PC2变换表③乘积变换初始置换后的数据分为各32位的两部分,左部分为L0,右部分为R0,这样,L0=D58D50D12….D8,R0=D57D49D41…D7。乘积变换过程就是将L0和R0按照乘积变换运算公式进行迭代运算,最后得出L16和R16。如图6.4所示。KiLi-1Ri-1RiP变换LiE变换S盒变换图6.4乘积变换第1步:E变换。E变换是一个扩展变换,其过程是将32位的数据Ri-1变换成48位,变换规则如表6.5所示。3212345456789891011121312131415161716171819202120212223242524252627282928293031321表6.5E变换表第2步:异或变换。将E变换输出的48位数据与48位的子密钥Ki进行异或运算,得到48位的S盒数据。第3步:S盒变换。将48位的S盒数据均分为8部分,每部分为6位,用8个S盒S1~S8表示。每个S盒的输入为6位,变换后输出为4位,即经过8个S盒S1~S8变换后输出为32位,如图6.5所示。图6.5S盒变换S盒的变换规则:以S1盒为例,将6位输入数据(a1a2a3a4a5a6)的中间4位(a2a3a4a5)对应的数值作为列,两端的2位(a1a6)对应的数值作为行,找到如表6.6所示的S1转换表中相应的位,得到的数值再转换成二进制形式的4位数据,此即为S1盒的输出。其他S的转换表参见教材。表6.6S1转换表第4步:P变换。P变换的过程是将S盒输出的32位数据进行位置变换得到一个新的32数据组,因此P变换为线性变换,其变换规则如表6.14所示。第5步:异或变换。P变换输出的32位数据与32位的Li-1异或后输出32位数据,此数据就是Ri。当i≤15时,Ri与Li各32位数据将被用来进行下一轮迭代变换。④逆初始置换(IP-1)将第16轮迭代变换的输出R16与L16组合在一起构成64位数据组,作为逆初始置换(IP-1)的输入。逆初始置换的变换规则如表6.15所示,置换完成后的数据即为64位密文。40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725表6.15逆初始置换表(3)DES算法的解密过程DES的解密算法与加密算法相同,解密密钥也与加密密钥相同,区别仅在于进行16轮迭代运算时使用的子密钥顺序与加密时是相反的,即第1轮用子密钥K16、第2轮用K15、…,最后一轮用子密钥K1。(4)DES算法的安全性DES是世界上使用最为广泛和流行的一种分组密码算法,被公认为世界上第一个实用的密码算法标准。DES的缺点是密钥位数太短(56位),而且算法是对称的,使得这些密钥中还存在一些弱密钥和半弱密钥,因此容易被采用穷尽密钥方法解密由于DES算法完全公开,其安全性完全依赖于对密钥的保护,必须有可靠的信道来分发密钥。3.其他对称加密算法(1)TDEA算法TDEA(TripleDataEncryptionAlgorithm,三重DES)算法,其本质和DES算法是一致的。它是为了解决DES算法密钥过短的而出现的。在TDEA算法中,使用三个密钥,执行三次DES算法,该算法的总密钥长度为168位(56位的三倍)。(2)AES算法AES(AdvancedEncryptionStandard,高级加密标准)算法是一个非保密的、全球免费使用的分组加密算法,并被确定为替代DES的数据加密标准。Rijndael算法具有加密强度高、可抵御所有已知攻击、运算速度快和灵活性好等特点,成为AES最合适的选择。(3)IDEA算法IDEA(InternationalDataEncryptionAlgorithm,国际数据加密算法)是瑞士著名学者提出的。该算法是在DES算法的基础上发展起来的,类似于三重DES,也是一种分组密码算法,分组长度为64位,但密钥长度为128位。该算法就是用128位密钥对64位二进制码数据进行加密的,同样用128位密钥对64位密文进行解密变换。4.对称密钥加密算法比较算法名称密钥长度(位)分组长度(位)循环运算次数DES566416TDEA112、1686448AES128、192、25612810、12、14IDEA1286486.2.2公开密钥密码体制及算法1.公开密钥密码算法公开密钥密码算法也叫做非对称密钥密码算法。在该算法中,信息发送方和接收方所使用的密钥是不同的,即加密密钥与解密密钥不同,且由其中的一个很难导出另一个。常用的公钥加密算法有:RSA算法、ElGamal算法、背包算法、拉宾(Rabin)
本文标题:《网络安全实用教程》配套(人民邮电出版)ch6
链接地址:https://www.777doc.com/doc-1251299 .html