1数据加密与鉴别2本章主要内容:密码学及数据加密的基本概念传统密码技术对称密钥密码和公开密钥密码体制密钥管理网络通信加密方式加密软件PGP鉴别、CA认证和电子商务安全技术3前述的安全立法、加强行政人事管理、访问控制、系统软硬件保护等是保护网络系统安全的有效措施,但它们都不能从根本上解决数据安全问题,都存在一些不易解决的问题。采用密码技术保护网络中数据的安全是一种非常实用、经济、有效的方法。4对信息进行加密可以防止攻击者窃取网络机密信息,可以使系统信息不被无关者识别,也可以检测出非法用户对数据的插入、删除、修改及滥用有效数据的各种行为。基于数据加密的数字签名和鉴别技术除具有保密功能外,还可以进行用户的身份验证和数据源及其内容的鉴别。一、数据加密概述51.密码学的发展密码学(Cryptology)是一门古老的学科。早在几千年前,人类就已经有了保密通信的思想和方法,但这些保密方法都是非常朴素、原始和低级的,而且大多数是无规律的。近现代一些著名的战争中都使用了密码技术。近年来,密码学研究之所以十分活跃,主要原因是它与计算机科学的蓬勃发展密切相连。6此外,还有电信、金融领域和防止日益广泛的计算机犯罪的需要。密码技术应用于计算机网络中的实例越来越多。密码学从其发展来看,可分为两大阶段:传统密码学和计算机密码学。第一阶段:传统密码学。主要是靠人工进行信息加密、传输和破译7第二阶段:计算机密码学。利用计算机进行自动或半自动地加密、解密和传输1.传统方式计算机密码学2.现代方式计算机密码学对称密钥密码体制公开密钥密码体制8密码学包括密码编码学和密码分析学两部分,这两部分相互对立,但也相互促进,相辅相成。密码编码学研究的是通过编码技术来改变被保护信息的形式,使得编码后的信息除指定接收者之外的其他人都不可理解密码分析学研究的是如何攻破一个密码系统,恢复被隐藏起来的信息的本来面目92.密码学的基本概念加密在网络上的作用就是防止有价值的信息在网上被窃取并识别;基于加密技术的鉴别的作用是用来确定用户身份的真实性和数据的真实性。10加密:把信息从一个可理解的明文形式变换成一个错乱的、不可理解的密文形式的过程明文(PlainText):原来的信息(报文)、消息,就是网络中所说的报文(Message)密文(CipherText):经过加密后得到的信息解密:将密文还原为明文的过程11密钥(Key):加密和解密时所使用的一种专门信息(工具)密码算法(Algorithm):加密和解密变换的规则(数学函数),有加密算法和解密算法加密系统:加密和解密的信息处理系统加密过程是通过某种算法并使用密钥来完成的信息变换12明文P解密密钥Kd解密(D)加密密钥Ke加密(E)明文P密文C攻击者简单的密码系统示意图13加密实际上是要完成某种函数运算C=ƒ(P,K),对于一个确定的加密密钥Ke,加密过程可看作是只有一个自变量的函数,记作Ek,加密变换为:C=Ek(P)(加密变换作用于明文P后得到密文C)同样,解密也完成某种函数的运算P=g(C,K)对于确定的解密密钥Kd,解密过程为:P=Dk(C)(解密变换作用于密文C后得到明文P)14由此可见,密文C经解密后还原成原来的明文,必须有P=Dk(Ek(P))=DkEk(P)此处“”是复合运算,因此要求DkEk=II为恒等变换,即Dk与Ek是互逆变换153.密码的分类按密码的历史发展阶段和应用技术分:手工密码、机械密码、电子机内乱密码和计算机密码按密码转换的操作类型分:替代密码和移位密码16按保密程度划分,有理论上保密的密码、实际上保密的密码和不保密的密码按明文加密时的处理方法分:分组密码和序列密码按密钥的类型分:对称密钥密码和非对称密钥密码17分组密码分组密码的加密方式是:首先将明文序列以固定长度进行分组,每组明文用相同的密钥和算法进行变换,得到一组密文。分组密码是以块为单位,在密钥的控制下进行一系列线性和非线性变换而得到密文的。18分组密码的加/解密运算是:输出块中的每一位是由输入块的每一位和密钥的每一位共同决定。加密算法中重复地使用替代和移位两种基本的加密变换,此即Shannon1949年发现的隐藏信息的两种技术:打乱和扩散。19打乱:就是改变数据块,使输出位与输入位之间没有明显的统计关系(替代);扩散:就是通过密钥位转移到密文的其它位上(移位)。分组密码的特点:良好的扩散性;对插入信息的敏感性,较强的适应性;加/解密速度慢;差错的扩散和传播。20加密/解密输出块输入块加/解密钥块发/收信端分组密码21序列密码序列密码加密过程是:把报文、语音、图像等原始信息转换为明文数据序列,再将其与密钥序列进行“异或”运算,生成密文序列发送给接收者。接收者用相同的密钥序列与密文序列再进行逐位解密(异或),恢复明文序列。22序列密码加/解密的密钥,是采用一个比特流发生器随机产生二进制比特流而得到的。它与明文结合产生密文,与密文结合产生明文。序列密码的安全性主要依赖于随机密钥序列。23序列密码比特流发生器密/明文输出明/密文输入发/收信端异或24加密和解密过程都要使用密钥。如果加密密钥和解密密钥相同或相近,由其中一个很容易地得出另一个,这样的系统称为对称密钥系统,加密和解密密钥都是保密的;如果加密密钥与解密密钥不同,且由其中一个不容易得到另一个,则这种密码系统是非对称密钥系统,往往其中一个密钥是公开的,另一个是保密的。25前者也称为传统密钥密码体制,后者称为公开密钥密码体制。相应地,这两种密码体制各有一些典型算法。对称密钥密码体制的主要算法有DES、IDEA、TDEA(3DES)、MD5、RC5等,也叫单密钥算法;公开密钥密码体制的主要算法有RSA、Elgamal、背包算法、Rabin、DH等。26二、传统密码技术1.数据的表示2.替代密码3.移位密码4.一次一密钥密码271.数据的表示传统加密方法加密的对象是文字信息。文字由字母表中的字母组成,在表中字母是按顺序排列的,赋予它们相应的数字标号,即可用数学方法进行运算(变换)了。将字母表中的字母看作是循环的,则字母的加减形成的代码可用求模运算来表示了。如A+4=E,X+6=D(mod26)282.替代密码替代也叫置换。替代密码就是明文中的每个或每组字符由另一个或另一组字符所替换,即形成密文。在经典密码学中,有简单替代、多名码替代、多字母替代和多表替代加密法。29(1)简单替代密码简单替代的就是明文的一个字母,用相应的密文字母代替。规律是根据密钥形成一个新的字母表,与原明文字母表有相应的对应关系。30典型的一种替代密码是凯撒密码,又叫循环移位密码。其加密方法就是将明文中的每个字母都用其右边固定步长的字母代替,构成密文。例如:步长为4,则明文A、B、C、…、Y、Z可分别由E、F、G、…、C、D代替。如果明文是“about”,则变为密文“efsyx”,其密钥k=+4。两个循环的字母表对应。31ABCD…………………………WXYZEFGH…………………………ABCD(a)ABCD…………………………WXYZZYXW…………………………DCBA(b)ABCD…………………………WXYZCFIL…………………………QTWZ(c)图5.2替代加密(a)移位映射(b)倒映射(c)步长映射(步长为3)32(2)多表替代密码一种常用的多表替代密码叫Vigenere密码。它是循环使用有限个字母实现替代。Vigenere密码就是把26个字母循环移位,排列在一起,形成26×26的方阵表。加密和解密时的明文、密钥、密文就是表中的行、列及交点的内容。333.移位密码移位密码变换:只对明文字母重新排序,位置变化了,而不隐藏它们。是一种打乱原文顺序的替代法。把明文按行写出,读出时按列进行,得到的即为密文。34如明文为“thisisabookmark”,将其分为三行五列,则为以下形式:thisisabookmark按列从左至右读,可得到密文:tskhamibasoriok35如果把明文字母按一定顺序排列成矩阵形式,用另一种顺序选择相应的列输出得到密文。如用“china”为密钥,对“thisisabookmark”排列成矩阵如下:thisisabookmark按“china”各字母排序“23451”顺序,输出得到密文ioktskhamibasor36再如:对于句子“移位密码加密时只对明文字母重新排序字母位置变化但它们没被隐藏”,可选择密钥“362415”,并循环使用该密钥对上句进行移位加密。密钥的数字序列代表明文字符(汉字)在密文中的排列顺序。37按照该密钥加密可得到一个不可理解的新句子(密文)“密密位码移加对字只明时文新字重排母序置但位变母化没藏们被它隐”。解密时只需按密钥362415的数字从小到大顺序将对应的密文字符排列,即可得到明文。38简单异或简单异或操作起来很简单,它主要是按位进行两个二进制位的异或,结果得到密文或明文。即mk=cck=m该方法简单,但容易破译。394.一次一密钥密码一次一密钥密码是一种理想的加密方案。就是一个随机密码字母集,包括多个随机密码,这些密码就好象一个本本,其中每页上记录一条密码。类似日历的使用过程,每使用一个密码加密一条信息后,就将该页撕掉作废,下次加密时再使用下一页的密码。40一次一密钥密码可推广到二进制数据的加密。用二进制数据组成一次密码本,用异或代替加法,对二进制密码和明文进行操作;解密时用同样的密码和密文进行异或,得到明文。一次一密钥密码必须是随机产生的,这样才可做到最好效果的保密。41发送者使用密钥本中每个密钥字母串去加密一条明文字母串,加密过程就是将明文字母串和密钥本中的密钥字母串进行模26加法运算。接收者有一个同样的密钥本,并依次使用密钥本上的每个密钥去解密密文的每个字母串。接收者在解密信息后也销毁密钥本中用过的一页密钥。42例如,如果消息是:ONETIMEPAD密钥本中的一页密钥是:GINTBDEYWX则可得到密文:VWSNKQJOXB这是因为:O+G=V(mod26)N+I=W(mod26)E+N=S(mod26)…………43一次一密的密钥字母必须是随机产生的。对这种方案的攻击实际上是依赖于产生密钥序列的方法。不要使用伪随机序列发生器产生密钥,因为它们通常有非随机性。如果采用真随机序列发生器产生密钥,这种方案就是安全的。44一次一密密码在今天仍有应用场合,主要用于高度机密的低带宽信道。美国与前苏联之间的热线电话据说就是用一次一密密钥本加密的,许多前苏联间谍传递的信息也是用一次一密钥密码加密的。至今这些信息仍是保密的,并将一直保密下去。45三、对称密钥密码体制1.对称密钥密码的概念也叫传统密钥密码体制,其基本思想就是“加密密钥和解密密钥相同或相近”,由其中一个可推导出另一个。使用时两个密钥均需保密。传统密钥密码算法有:DES、IDEA、TDEA(3DES)、MD5、RC5等,典型的算法是DES算法。46密文C明文输出M明文输入M加密算法解密算法对称密钥对称加密体制模型472.DES算法(1)DES概述DES(数据加密标准)算法能对64位二进制数码组成的数据组在64位密钥的控制下进行加密和解密变换。64位密钥中有8位作为校验位(第8、16、24、32、40、48、56和64位),因此真正成为密钥的只有56位。48在70年代初,DES已推出并广泛应用,1977年被NBS公布为数据加密标准。DES最先用于军事系统,后又推广到民用,应用最多的是在银行和商业系统。但由于其保密性能受到质疑,曾有很多专家希望用其它方法取代之。49(2)DES算法的主要过程①初始置换:②子密钥生成:③乘积变换:④末置换:初始置换(IP)乘积变换子密钥生成输入64位明文(密文)64位密钥组末置换(IP-1)输出64位密文(明文)50(3)初始置换IP初始置换(permutation)按照固定的矩阵进行(移位),此部分与密钥无关,如下