数据加密技术本章主要内容:重点:1:密码学的基本概念2:传统的数据加密方法重难点:3:数据加密标准重难点:4:公共密钥加密5:密钥管理与分配重难点:6:数据加密技术的应用数字签名报文摘要7:CA与数字证书重难点:8:单向散列(Hash)算法重点:9:密码技术的应用SSL和SET协议PGP加密系统密码技术在网络通信中的应用链路加密:路途经过每一节点都要解密加密报文,可以对报头实现加密。端-端加密:在发送端加密,在接收端解密。只能加密报文,不能加密报头。加密技术在电子商务方面的应用:RSA。加密技术在VPN中的应用:加密通道。PGP应用本章学习的教学要求l了解:数据加密的有关术语和方法、传统的数据加密方法l掌握:对称加密算法和公开密钥加密算法的特点和应用、数字签名、报文摘要、SSL和SET协议、PGP加密系统概述早在4000多年前,密码技术已有使用;如隐写术。密码学包括两方面的内容:密码编码学和密码分析学。明文加密密文明文:M密文:C加密函数:E解密函数:D密钥:K加密:EK(M)=C解密:DK(C)=M先加密后再解密,原始的明文将恢复:DK(EK(M))=M解密重点:密码学的有关概念重点:密码学算法模型明文加密加密密钥Ke密文密文解密解密密钥Kd明文在网络上传输干扰/窃听加密算法解密算法明文在网上传输干扰/窃听明文加密密钥Ke解密密钥Kd第一阶段:1949年之前,古典密码学(1)吴用写给卢俊义:芦花丛中一扁舟,俊杰俄从此地游,义士若能知此理,反躬逃难可无忧。(2)关羽的“汉夫子竹”中风竹诗为”莫嫌孤叶淡,终久不凋零”;雨竹诗为”不谢东君意,丹青独立名”。关羽以此向刘备暗传“身在曹营心在汉”。重点:密码学的发展(按技术发展阶段分类)密码学的发展(按技术发展阶段分类)第二阶段:1949年~1975年,现代密码学主要特点:数据的安全基于密钥而不是算法的保密第三阶段:1976年以后,公钥密码学主要特点:公钥密码使得发送端和接收端“无密钥传输的保密通信”成为可能。重点:密码学的发展(按历史发展阶段分类)第一阶段:手工阶段,以手工方式完成加密作业。第二阶段:机械阶段,以机械密码机或电动密码机完成加解密作业。第三阶段:电子机内乱密码,通过电子电路,以严格的程序进行逻辑运算以少量制乱元素生产大量的加密乱数。第四阶段:计算机密码,以计算机密码软件进行算法加解密。密码学的分类按密码算法分类l对称密码算法l3DES算法lRC2和RC4l公共密码算法l数字签名算法lAES算法l单向散列算法补充:重点:4.1.3密码学与信息安全的关系数据加密技术是保证信息安全基本要素(保密性、完整性、可用性、可控性、不可否认性)的手段:数据加密技术是如何保证信息安全基本要素的?信息的私密性(Privacy):对称加密信息的完整性(Integrity):报文摘要信息的源发鉴别(Authentication):数字签名信息的防抵赖性(Non-Reputation):数字签名l替换密码:明文中每一个字符被替换成密文中的另外一个字符。古典密码技术1、单表替代密码:又称为循环移位密码。算法可表示为如下函数:f(a)=(a+k)modn其中:a表示明文字母,n为字符集中字母个数,k为密钥。单表替代密码wuhdwblpsrvvleoh密文:Ci=E(Pi)=Pi+3TREATYIMPOSSIBLE算法:明文:字母表:(密码本)ABCDEFGHIJKLMNOPQRSTUVWXYZdefghijklmnopqrstuvwxyzabc难点(选学):多表替代密码2、多表替换技术:又称为费杰尔Vigenere)密码,这种替代法是循环的使用有限个字母来实现替代的一种方法。以明文字母指定行,以密钥字母指定列,从而在费杰尔Vigenere)表中查找密文字母。如:Iamdyingtomissyou.密钥为love.则:Iamdyingtomissyou.lovelovelovelovelove费杰尔Vigenere)密码表明文:AVOIDREUSINGORRECYCLINGOLDPASSWORDS.AVOIDREUSINGORRECYCLINGOLDPASSWORDS密文:ANIWVGNOOOGRIRODDRLSREDECPUYASCSILS换位密码(Transpositioncipher)算法有三种:置换密码即换位密码列换位法行换位法矩阵换位法密码分析密码分析:就是在未知密钥的前提下,从密文中恢复出明文或推导出密钥。密码分析方法主要有:l唯密文攻击l已知明文攻击l选择密文攻击l选择密钥攻击古典密码分析方法主要有:l穷举分析l根据字母频率分析养个娃娃不读书,不如养头老母猪!对称加密算法(symmetricalgorithm)有时也称传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。加密:EK(M)=C解密:DK(C)=M密钥:K重点:对称密码技术数据加密标准重点:数据加密标准(对称加密算法)对称加密模型特点:加密和解密使用的密钥相同对称加密的要求:1、需要有强大的加密算法2、发送方和接受方必须以安全的方式获得密钥,在对称加密体系中不需要对加密算法进行保密对称加密算法通信模型•DES是最典型的对称加密算法。•DES是美国政府1977年采纳的数据加密标准;是由IBM公司为非机密数据加密所设计的方案;后来被国际标准局采纳为国际标准。•DES是一种分组加密算法,输入的明文为64位,密钥为56位,生成的密文为64位。•DES对64位的明文分组进行操作。通过一个初始置换,将明文分组分成左半部分和右半部分,各32位长。然后进行16轮完全相同的运算。数据加密标准(DES)输入64比特明文数据初始置换IP在密钥控制下16轮迭代初始逆置换IP-1输出64比特密文数据交换左右32比特DES算法加密流程P115注:16轮的迭代过程不要求掌握DES算法的安全性分析不同密钥长度承受攻击的情况如下表:DES算法的安全性分析攻击者定义表如下:优点:算法查对简单,具有比较广泛的应用。缺点:其安全性完全取决于密钥的保密性。对称加密算法在网络安全中的应用了解:其它常用的对称加密算法三重DES(TribleDES):采用2个或3个密钥对明文进行3次加密运算,密钥长度由DES的56位变成112位或128位。IDEA(InternationalDataEncryptionAlgorithm)AES(AdvancedEncryptionStandardRC5重难点:公共密钥加密(非对称加密算法)公共密钥加密的历史意义:DES加密算法及其他类似的对称加密算法的加密密钥和解密密钥相同,因此密钥必须保密。而公开密钥密码体系新算法则是使用的加密密钥和解密密钥完全不同,不能根据加密密钥推算出解密密钥;其加密密钥是公开的,解密密钥是私有的即保密的,只有得到解密密钥才能解密信息。公开密钥密码体系给密码技术带来了新的变革。公开密钥算法公开密钥算法(public-keyalgorithm)也称非对称算法,加密密钥不同于解密密钥,而且解密密钥不能根据加密密钥计算出来。加密密钥叫做公开密钥(public-key,简称公钥),解密密钥叫做私人密钥(private-key,简称私钥)。公钥:K1私钥:K2加密:EK1(M)=C解密:DK2(C)=M签名:DK2(M)=C验签:EK1(C)=M特点:加密和解密需要不同的密钥(私钥/公钥密码对)私钥需要秘密保存,公钥不需要保密。公共密钥算法通信模型(中文)密文eB(m)接收者B发送者A加密算法解密算法信道明文消息m明文消息mm=dB(eB(m))eB公共加密密钥dB私有解密密钥密钥对产生源公开密钥算法通信模型(英文)RSA公共密钥密码系统lRSA算法是麻省理工大学的RonRivest,AdiShamir和LeonardAdleman(RSA算法即为三人名字的缩写)于1977年研制并于1978年首次发表的一种算法。lRSA算法的数学基础是数论的欧拉定理,它的安全性依赖于大数因子分解的困难性。公共密钥加密算法应用公共密钥密码学系统在应用中非常简单,先看这样一个应用实例。假设A和B想进行通信,如图所示,不像对称密钥系统那样,两人共享一个秘密密钥,而是B(A消息的接收者)有两个密钥:公共密钥(PublicKey)和私有密钥(PrivateKey)。其中公共密钥世界上每个人(包括入侵者)都知道,而私有密钥则只有B一个人知道。公共密钥加密算法应用A为了同B进行通信,A首先得到B的公共密钥。接着,A使用B的公共密钥和已知(比如标准的)加密算法加密所要发送的消息传送给B。B接收到A的加密消息后,使用自己的私有密钥和已知(比如标准的)解密算法对A的消息进行解密。通过这种方式,双方不需要商定任何共享的密钥,A就可以向B发送秘密的消息。如图下图所示。A加密明文B解密明文秘文B的公钥B的私钥重难点:RSA算法过程解析为了选取公共密钥和私有密钥,需要做以下工作:第一步:选取两个大质数p和q。p和q应该为多大适宜?质数的值越大,破解RSA就越困难,但是进行加密和解密的时间就越长。RSA实验室的建议是,安全性要求相对较低时p和q的乘积达到768位,安全性要求相对较高时乘积达到1024位[RSAKey1999]。假定B选取p=3和q=5(当然这里的值太小不够安全,只是描述其使用过程)。RSA算法过程解析第二步:计算n=pq和z=(p-1)(q-1)。那么n=15,z=8。第三步:选择小于n的数e,并且和z互质(即e和z没有公约数)。选择字母e是因为此值在加密时要用到。B选取e=3,因为3和8没有公约数。RSA算法过程解析第四步:找到一数d,使其满足ed-1被z整除。另一种方式描述为,给定的e,选择d满足ed除以z的模余数是1(即满足edmodz=1)。选择字母d,因为解密时要用到。最后B选取d=11,因为ed-1=3×11-1恰好被8整除。即(3×d-1)÷8为整除。分别让d=1,2,3,4,……一一代入,寻找d。注意:d有多个值,即有多个私钥。RSA算法过程解析第五步:取数对(n,e)作为B的公共密钥,取数对(n,d)作为B的私有密钥。取数对(15,3)作为B的公共密钥(即可公开的密钥简称公钥),取数对(15,11)作为B的私有密钥(简称公钥)。加密模型:A加密明文B加密明文秘文B的公钥B的私钥假定A现在想向B发送字符串“name”。将每个字母看作一个1~26之间的数字(a=1,…,z=26),那么A的加密过程和B的解密过程分别如表2-15和表2-16所示。RSA加密及解密算法实例B的公钥即A的加密密钥:(n,e)=(15,3)加密过程:假定A想向B发送字母对应的数即ASCII码为m,其中要求mn。为了进行加密,A做一指数运算me,接着计算me被n除的模余数。进行加密时需要B的公共密钥(n,e)。明文消息m的加密值为c,A发送的密文即为c,如下表示:加密公式:c=memodnRSA加密算法表2-15发送者A对数据D的RSA加密过程注:A用接收者B的公钥加密B的公钥:(n,e)=(15,3)明文字母ASCII码数值表示为mme密文c=memodnn14274414a111m1321977e51255RSA解密算法B的解密密钥即私钥:(n,d)=(15,11)解密过程:B为解密接收到的密文消息c,接收方B必须使用自己的私有密钥(n,d)进行解密。解密公式:m=cdmodn表2-16接收者B的RSA解密过程用B的私钥为(n,d)=(15,11)解密密文ccdm=cdmodn明文字母14404956516966414n111a7197732674313m5488281255eRSA的破解难度RSA算法的提出者用129位十进制数字作为其模数n,并预言要经过40×1015年方能攻破。然而,最近一个世界范围的研究组在因特网上用1600台协同工作的计算机仅用了8个月就攻破了[LEUT94]。这件事并不是说明RSA不可靠,而是告诉