网络安全与管理第7章数据加密技术•知识目标•掌握数据加密的有关概念、数据加密的模型•了解传统的加密技术•掌握现代加密技术的原理及其分类•掌握非对称加密算法的基本原理•掌握报文鉴别的概念•技能目标•掌握DES算法的基本思想及其加密、解密过程和安全性•掌握RSA算法的基本思想及其加密、解密过程•了解报文摘要MD5和安全散列算法•了解数据加密技术的应用7.1数据加密概述7.1.1密码学的有关概念•1.消息:消息(message,M)是用语言、文字、数字、符号、图像、声音或其组合等方式记载或传递的有意义的内容。如果消息被攻击者窃取,就能够读懂其中的含义,所以在密码学中,保护的对象就是消息。•2.明文:未经过任何伪装或技术处理的消息称为明文(plaintext,P)。•3.加密:利用某些方法或技术对明文进行伪装或隐藏的过程称为加密(encryption,E)。•4.密文:被加密的消息称为密文(ciphertext,C)。密文看起来是一堆杂乱无章、没任何意义的数据。7.1.1密码学的有关概念•5.解密:将密文恢复为原明文的过程或操作称为解密(decryption,D)。解密也称为脱密,可以看成加密的逆过程。•6.加密算法:加密算法(encryptionalgorithm)是将明文消息加密成密文所采用的一组规则或数学函数。•7.解密算法:解密算法(decryptionalgorithm)是将密文消息解密成明文所采用的一组规则或数学函数。•8.密钥:密钥(key,K)是进行加密或解密操作所需要的秘密参数或关键信息。如果缺少密钥,就不能正确地进行加密或者解密。在加密算法中,密钥又分为加密密钥(加密时采用的密钥)和解密密钥(解密时采用的密钥)。7.1.2加密算法的模型加密(E)解密(D)明文(P)密文(C)明文(P)加密密钥解密密钥发送端接收端公共信道安全信道图7-1加密算法的一般模型加密和解密的描述公式•发送端对数据的处理可以用下式描述:•接收端对数据的处理可以用下式描述:密码学的内容•密码学包括两方面密切相关的内容:•一方面是密码编码学,主要是研究各种加密方案,保护信息不被敌方或者任何无关的第三方侦悉;•另一方面是密码分析学,研究攻破一个加密算法的途径,恢复被隐藏的信息的本来面目。•这两个部分相辅相成,互相促进,也是矛盾的两个方面。7.1.3传统的加密技术•在计算机出现之前,密码学由基于字符的密码算法构成(即针对字符进行操作)的。密码算法主要采用的是替代(substitution)和置换(transposition)这两种方法,好的密码算法是结合这两种方法,每次进行多次运算。•现代的计算机密码算法要复杂得多,但基本原理没有变化,其重要的变化是算法只对位而不是字符进行变换。•传统的加密技术有以下几种。1.替代密码•替代密码是将明文中的每一个字符替换成密文中的另一个字符,接收者对密文进行逆替换就恢复出明文来。在传统的加密技术中有3种类型的替代密码:单表替代密码、多表替代密码和多字母替代密码。1)单表替代密码•所谓的单表替代密码,就是明文中的每一个字符用相应的密文字符代替。著名的“凯撒密码”就是一种单表替代密码,也称为循环移位密码。这是一种古老的加密方法,当年凯撒大帝行军打仗时用这种方法进行通信,因此得名。凯撒密码加密的原理•凯撒密码加密的原理是把明文中的每一个字母都用该字母在字母表中右边的第k个字母替代(这里k就是加密密钥),并认为Z后边又是A。例如,假如k为3,其替代表(在这里,为了不出现混淆,明文使用的是小写字母,密文使用的是大写字母,在实际使用中可不作这样要求)如下:凯撒密码举例•例如,明文为:networksecurity•则密文为:QHWZRUNVHFXULWB•如果将26个字母分别对应于整数0~25,可得凯撒密码变换为:•加密:•解密一般的凯撒密码变换•加密:•解密:凯撒密码的缺点•显然,这种加密算法是不安全的,它非常容易被攻破。首先,简单的单表替代没有掩盖明文不同字母出现的频率;其次,移位替代的密钥空间有限,只有26个密钥,利用暴力攻击很容易破解2)多表替代密码•大多数多表替代密码是周期替代密码,当周期为1时,就是单表替代密码。多表替代密码的种类很多,一种常用的多表替代密码叫Vigenere(维吉尼亚)密码。它是循环使用有限个字母实现替代的。•在Vigenere密码中,把26个字母循环移位,排列在一起,形成一个26×26的方阵表,如下表所示。列行ABCDEFGHIJKLMNOPQRSTUVWXYZAABCDEFGHIJKLMNOPQRSTUVWXYZBBCDEFGHIJKLMNOPQRSTUVWXYZACCDEFGHIJKLMNOPQRSTUVWXYZABDDEFGHIJKLMNOPQRSTUVWXYZABCEEFGHIJKLMNOPQRSTUVWXYZABCDFFGHIJKLMNOPQRSTUVWXYZABCDEGGHIJKLMNOPQRSTUVWXYZABCDEFHHIJKLMNOPQRSTUVWXYZABCDEFGIIJKLMNOPQRSTUVWXYZABCDEFGHJJKLMNOPQRSTUVWXYZABCDEFGHIKKLMNOPQRSTUVWXYZABCDEFGHIJLLMNOPQRSTUVWXYZABCDEFGHIJKMMNOPQRSTUVWXYZABCDEFGHIJKLNNOPQRSTUVWXYZABCDEFGHIJKLMOOPQRSTUVWXYZABCDEFGHIJKLMNPPQRSTUVWXYZABCDEFGHIJKLMNOQQRSTUVWXYZABCDEFGHIJKLMNOPRRSTUVWXYZABCDEFGHIJKLMNOPQSSTUVWXYZABCDEFGHIJKLMNOPQRTTUVWXYZABCDEFGHIJKLMNOPQRSUUVWXYZABCDEFGHIJKLMNOPQRSTVVWXYZABCDEFGHIJKLMNOPQRSTUWWXYZABCDEFGHIJKLMNOPQRSTUVXXYZABCDEFGHIJKLMNOPQRSTUVWYYZABCDEFGHIJKLMNOPQRSTUVWXZZABCDEFGHIJKLMNOPQRSTUVWXYVigenere密码加密原理•实际使用时,往往把某个容易记忆的词或词组当做密钥。给一个信息加密时,只要把密钥反复写在明文下方,以明文字母选择列,以密钥字母选择行,两者的交点就是加密生成的密文字母。•例如,以HOW为密钥,明文为ILOVEYOU•P=ILOVEYOU•K=HOWHOWHO•加密后的密文Ek(P)=PZKCSUVI•解密时,以密钥字母选择行,从中找到密文字母,密文字母所在列的列名即为明文字母。3)多字母替代密码•多字母替代密码是每次对多于一个的字母进行替代的加密方法。例如,将明文中的字符每3个分为一组,当出现AAA时用RTQ替代,当出现AAB时用SLL替代,等等。在进行解密时,再按照这个对应关系进行逆替换就可以恢复出原来的明文。•多字母替代密码的优点在于将字母的出现频率隐蔽或者均匀化,从而利于抗统计分析。•多字母替代密码是在19世纪中期发明的,在第一次世界大战中,英国人就采用了这种对成组字母加密的密码。2.置换密码•置换密码也称为换位密码,是根据一定的规则重新排列明文字母的顺序,使之成为密文。常用的置换密码有列置换密码和周期置换密码两种。1)列置换密码•列置换密码是将明文分割成n列的分组形式(即每行n个字符),按照每一列从上向下产生密文。•例如,将明文WHATYOUCANLEARNFROMTHISBOOK分割成为5列的分组(这里5就成为密钥k),最后不全的组可以用不常使用的字符填满,如右所示:•按照每一列,从上向下,就可以得到密文:WOLFHOHUERIKACAOSXTARMBXYNNTOX,•这里的密钥是数字5。2)周期置换密码•周期置换密码是把明文中的字母按照给定的顺序排在一个矩阵中,然后用另一种顺序选出矩阵中的字母来产生明文。•例如,将上例中的明文按行排在一个5×6的矩阵中。给定一个置换,密钥为24513,即按第二列,第四列,第五列,第一列,第三列的次序排列,可得到如右的矩阵:•然后按每一行,从左向右读出,即可得到密文:HTYWAUANOCERNLARMTFOIBOHSKXXOX。7.1.4现代加密技术•在传统的加密技术中,算法的安全性主要是基于算法的保密性,一旦算法被泄露,很容易就被破解。这种算法称为受限制的算法。•在现代密码学中,由于加密技术的普遍应用,不可能为每一个应用都开发一个成熟、有效的加密算法,因此算法的安全性就不能基于算法的保密性,而要基于密钥的保密性。也就是说,只要密钥不公开,即使算法公开并被分析,不知道密钥的人也无法理解加密过的消息。•现代加密技术中,引入了计算机对信息进行加密和解密处理,因此,运算速度大大提高,要求的密钥长度也越来越长。7.1.5现代加密技术的分类•密码学发展至今,产生了很多密码算法。有的算法已在学术刊物中披露,而更多的却作为军事、商业及贸易等秘密被严加保密。因此,密码算法的分类也是多种多样的。这里,重点介绍以下分类。1.分组密码和序列密码•按照对明文的处理方式,密码算法可以分为分组密码和序列密码。1)分组密码•分组密码的加密方式是首先将明文序列以固定长度进行分组,每一组明文用相同的密钥和加密函数进行运算。•分组密码的优点是:•明文信息良好的扩散性。•对插入的敏感性。•不需要密钥同步。•较强的适用性,适宜作为加密标准。•缺点是:加密速度慢,错误扩散和传播。2)序列密码•序列密码的加密过程是把报文、语音、图像和数据等原始信息转换成明文数据序列,然后将它同密钥序列进行逐位模2加生成密文序列发送给接收者。接收者用相同的密钥序列进行逐位解密来恢复明文序列。•序列密码的安全性主要依赖于密钥序列。•序列密码的优点是:•处理速度快,实时性好。•错误传播少。•不存在串破译问题。•适用于军事、外交等保密信道。•缺点是:•明文扩散性差。•插入信息的敏感性差。•需要密钥同步。2.对称加密算法和非对称加密算法•按加密和解密密钥的类型划分,可分为对称加密算法和非对称加密算法两种。•1)对称加密算法•如果加密密钥和解密密钥相同,或由其中一个很容易得出另一个,这样的密码算法称为对称加密算法。在这种算法中,加密和解密密钥都需要保密。对称加密算法也称为单密钥算法或私钥加密算法。•常用的对称加密算法有DES、IDEA、RC2、RC4、SKIPJACK等。•2)非对称加密算法•如果加密密钥与解密密钥不同,且由其中一个不容易得到另一个,则这种加密算法是非对称加密算法。这两个不同的密钥,往往其中一个是公开的,另一个是保密的。非对称加密算法也称为公钥加密算法。•常用的非对称加密算法有RSA、Elgamal、背包算法、Rabin、ECC(椭圆曲线加密算法)等。3.单向加密算法和双向加密算法•根据加密变换是否可逆,可以将加密算法分为单向加密算法和双向加密算法。•1)单向加密算法•单向加密算法使用的是单向函数(也称为散列函数、Hash函数),可以将明文加密成密文,但却不能将密文转换为明文(或在计算上不可行),只有同样的输入数据经过同样的不可逆运算才能得到同样的加密数据。单向加密算法用于不需要解密的场合,因此不需要密钥。单向加密算法主要用来进行数据完整性校验和身份验证。•单向加密算法的代表有MD4算法、MD5算法、安全散列算法SHA。•2)双向变换加密算法•通常的加密解密都属于双向变换加密算法,即可以把加密的密文通过解密恢复为原来的明文。7.2对称加密算法对称加密算法是应用较早的数据加密方法,技术成熟。对称密钥加密算法中应用最广泛的数据加密标准(dataencryptionstandard,DES)算法。7.2.1DES算法及其基本思想•1973年,美国国家标准局NBS在认识到建立数据保护标准的需要的情况下,开始征集联邦数据加密标准的方案,1975年3月17日,NBS公布了IBM公司提供的密码算法,以标准建议的形式在全国范围内征求意见。•经过两