《《公钥基础设施 》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《公钥基础设施 》PPT课件.ppt(66页珍藏版)》请在三一办公上搜索。
1、2023/7/10,1,第三章 公钥基础设施PKI,本章学习重点掌握内容:密码学基本术语密码体制分类私钥密码体制的主要特点公钥密码体制的主要特点杂凑函数的基本概念典型密码算法,2023/7/10,2,第三章 公钥基础设施PKI,2.1 概述2.2 私钥密码体制2.3 公钥密码体制2.4 杂凑函数2.5 密码算法应用实例PGP,2023/7/10,3,2.1 概述,密码学(Cryptology)是研究密码编制、密码破译和密钥管理的一门综合性应用科学。其主要研究内容包括两个分支:密码编码学(Cryptography)和密码分析学(Cryptanalytics),两者既相互对立,又相互促进发展。密码
2、编码学是研究如何对信息进行编码实现信息的隐蔽;密码分析学是研究如何分析破译密码。,2023/7/10,4,2.1 概述,2.1.1 密码学发展历史分为三个阶段 第一阶段是从古代到1949年。这一时期被称作“科学密码学的前夜”,所研究的内容被称为古典密码学。第二阶段是从1949年到1975年。1949年Shannon发表的“保密系统的信息理论”一文标志着密码学从此成为一门科学,由此拉开了现代密码学研究的序幕。该文,奠定了密码学的理论基础。第三阶段从1976年至今。非对称密钥提出,2023/7/10,5,2.1 概述,密码学基本术语 明文、密文 被隐蔽的消息被称做明文(Plain Text),通常
3、用P或M表示。隐蔽后的消息被称做密文(Cipher Text),通常用C表示。发送者、接收者在信息传送过程中,主动提供信息的一方称为发送者,得到信息的一方称为接收者。,2023/7/10,6,密码学基本术语,加密、解密、加密算法、解密算法将明文变换成密文的过程称为加密(Encryption)。将密文变换成明文的过程称为解密(Decryption)。对明文进行加密时所采用的一组规则称为加密算法(Encryption Algorithm)。通常用E表示。对密文进行解密时所采用的一组规则称为解密算法(Decryption Algorithm)。通常用D表示。密钥加密和解密算法的操作通常都是在一组密钥
4、(Key)的控制下进行的,分别称为加密密钥和解密密钥。通常用Ke和Kd表示。,2023/7/10,7,密码学基本术语,截收者在消息的传输和处理系统中,除了信息的合法授权接收者外,还有非授权者,他们通过各种手段,如:搭线窃听、电磁窃听、声音窃听等来窃取机密信息,称其为截收者。主动攻击、被动攻击攻击者主动向系统窜扰,采用删除、更改、增填、重放、伪造等手段向系统注入假消息,以达到一定的目的,这样的攻击手段称作主动攻击;对一个密码系统采取截获密文进行分析的这类攻击称作被动攻击。密码系统通常简称为密码体制(Cryptosystem),由五元组(M,C,K,E,D)构成密码系统模型参见图2-1。五元组(M
5、,C,K,E,D)描述如下:明文空间M,它是全体明文的集合;密文空间C,它是全体密文的集合;,2023/7/10,8,2.1 概述,密码体制分类根据密钥的特点对称密码体制(Symmetric Cryptosystem)单钥(One-Key)体制或私钥(Private Key)体制或传统密码体制(Classical Cryptosystem);非对称密码体制(Asymmetric Cryptosystem)。双钥(Two-Key)或公钥(Public Key)密码体制。,2023/7/10,9,密码体制分类,按照加密方式不同,私钥密码体制被分为流密码(Stream Cipher)(或称序列密码)
6、分组密码(Block Cipher)区别是:流密码是将明文消息按字符逐位加密;分组密码是将明文消息先进行分组,再逐组加密。,2023/7/10,10,密码体制分类,密钥空间K,它是全体密钥的集合,其中每一个密钥K均由加密密钥和解密密钥组成,即有;加密算法E,它是由明文空间到密文空间的加密变换,即有;解密算法D,它是由密文空间到明文空间的解密变换,即有。,2023/7/10,11,2.2 私钥密码体制,私钥密码算法比较,2023/7/10,12,2.2 私钥密码体制,简化DES(S-DES)为了帮助读者加深对DES算法的理解,掌握DES算法的结构,本节介绍简化DES(S-DES)。S-DES与D
7、ES有着相似的性质和结构,但是参数要比DES小得多算法结构如图所示,2023/7/10,13,2023/7/10,14,简化DES(S-DES),S-DES算法 描述S-DES的密钥产生 在S-DES算法中,由收发双方共享的10位密钥通过置换和移位操作产生了两个8位密钥,这两个8位密钥被分别用在加解密的不同阶段,如图描述了密钥产生过程。下面 介绍其产生过程,2023/7/10,15,简化DES(S-DES),置换P10置换P10被定义为:移位操作(LS-1)LS-1表示循环左移一位。置换P8从移位操作输出的10位密钥中选取8位,按下表的规则运用置换P8:移位操作LS-2LS-2表示循环左移2位
8、。,2023/7/10,16,简化DES(S-DES),S-DES加密S-DES加密过程包括4个函数,5步操作。下面根据这些函数使用的先后顺序对这四个函数进行详细介绍。,2023/7/10,17,简化DES(S-DES),初始置换(IP)S-DES算法的输入是一个8位明文分组,我们首先使用函数对其进行初始置换 函数S-DES算法最复杂的部分,它由置换函数和代换函数组合而成。函数可按如下方式表达。设L和R分别是的八位输入的左边4位和右边4位。F是一个4位到4位的映射。则函数可以表示为其中,SK是子密钥,第一轮取值为K1,第二轮取值为K2,是按位异或函数。,2023/7/10,18,简化DES(S
9、-DES),函数F主要包括4步操作。第一步:E/P扩展置换操作4 1 2 3 2 3 4 1第二步:与子密钥异或相加将8位子密钥K1与E/P扩展置换输出的八位按位异或。S盒运算将第二步的输出结果分为左右两部分,各4位。将左4位输入到中得到一个2位的输出。将右4位输入中产生另一个2位的输出。S盒的操作规则如下:第1位和第4位作为一个2位二进制数决定了S盒的行,第2位和第3位决定了S盒的列。输出也是一个2位的二进制数。,2023/7/10,19,S盒,2023/7/10,20,简化DES(S-DES),第四步:置换操作P4接下来,由和的输出组成的4位数据再进行如下置换操作:2 4 3 1交换函数S
10、W函数只改变输入的最左边4位。交换函数SW将输入的左4位和右4位交换,这样再次作用的就是不同的4位了。交换函数SW的输出被第二次输入到函数,逆置换()在S-DES算法的最后,使用的逆置换如下表所示:4 1 3 5 7 2 8 6,2023/7/10,21,2.2 私钥密码体制,2.2.2 DES简介 S-DES与DES的算法结构相同,但DES的参数较大,其输入为64位分组,函数迭代16圈,因此需要产生16个子密钥。DES的初始输入密钥为64位,其中有效密钥为56位(初始密钥的第8i(i=1,8)比特是奇偶校验位),利用子密钥生成算法由56位密钥产生16个48位子密钥。,2023/7/10,22
11、,2.2.2 DES简介,DES的意义具体表现在以下几个方面 它公开展示了能完全适应某一历史阶段中信息安全要求的一种密码体制的构造方法;它是世界上第一个数据加密标准,并确立了这样一个原则,即算法的细节可以公开而密钥必须是保密的;它极大地推动了密码算法标准化工作;它的出现及引发的讨论确立了安全设计和使用分组密码的若干准则,并引发了分组密码设计的高潮;它推动了密码分析理论和技术的快速发展,先后出现了差分分析、线性分析等多种新的有效的密码分析方法。,2023/7/10,23,2.2.2 DES简介,多重DES 双重DES双重DES的密钥长度为112比特,可有效地增加算法强度 三重DES算法,2023
12、/7/10,24,2.2 私钥密码体制,2.2.3 高级加密标准AES流程框图,2023/7/10,25,2.2 私钥密码体制,2.2.4 分组密码工作模式 指以某个分组密码算法为基础,构造一个分组密码系统方法,构造出的分组密码系统不仅可以解决对任意长度的明文加密问题的方法,还可以构造随机数生成器、流密码、消息认证码及杂凑函数等。主要有:,2023/7/10,26,2.2.4 分组密码工作模式,电码本ECB(Electronic Code Book)模式 最简单的分组密码工作模式是电码本(ECB)模式,每次使用相同的密钥处理一个固定长度为n位的明文分组(以DES为例,就是64位明文分组)。主要
13、优点:无差错传播。在传输过程中,一个密文分组的丢失或传输错误不影响其它分组的正确脱密,即传输中的差错不会传播到其它分组块。不同明文分组的加密可并行实施,尤其是硬件实现时速度很快。主要缺点有:容易暴露明文的数据模式,即相同明文会生成相同密文,无法抵御统计攻击。无法抵抗组的重放、嵌入和删除等攻击。为了克服该模式的弱点,可以在加密处理中引入少量的记忆等。,2023/7/10,27,2.2.4 分组密码工作模式,密码分组链接CBC(Cipher Block Chaining)模式 加密模式可以表示为其解密模式可以表示为 加密第一组明文时,需要与一个初始矢量(IV)异或后再加密,即 解密最后一组密文时,
14、也需要初始矢量(IV)的参与,即,2023/7/10,28,2.2.4 分组密码工作模式,CBC模式的优点有:能够隐蔽明文数据模式,相同的明文分组未必蕴涵着相同的密文分组。在一定程度上能够识别攻击者在密文传输中是否对数据作了窜改,如组的重放、嵌入或删除等。具有自同步功能。密文出现丢块和错块不影响后续密文块的脱密。若从第t块起密文块正确,则第t+1个明文块就能正确求出。模式的缺点:CBC模式的缺点是具有有限的错误传播特性。,2023/7/10,29,2.2.4 分组密码工作模式,s比特密码反馈CFB(Cipher Feedback)模式加密算法可以表示为:CFB模式的解密算法可以表示为,2023
15、/7/10,30,2.2.4 分组密码工作模式,s比特输出反馈OFB(Output Feedback)模式 优点是传输过程中在某位上发生的错误不会影响其它位。OFB的缺点是,抗消息流篡改攻击的能力不如CFB,即密文中的某位取反,恢复出的的明文相应也取反。,2023/7/10,31,2.3 公钥密码体制,2.3.1 概述,2023/7/10,32,2.3.1 概述,公钥密码体制必须具有如下特性:给定公钥,要确定出私钥是计算上不可行的。公钥密码体制有两种基本模型,一种是加密模型;另一种是认证模型。公钥密码体制可以简化密钥的管理,并且可通过公开系统如公开目录服务来分配密钥。,2023/7/10,33
16、,2.3.1 概述,加密模式Alice将秘密信息加密后发送给Bob:Bob用其私钥解密获得秘密信息;认证模式Alice 将签名后的信息发送给Bob;Bob用Alice的公钥解签确认信息来自于Alice;,2023/7/10,34,2.3.1 概述,加密认证模式Alice先使用Bob的公钥加密消息,接着再使用自身私钥签名。Bob用Alice公钥解签,确认信息是从Alice处发出;接着,Bob用自身私钥对加密信息解密获得明文信息。,2023/7/10,35,2.3 公钥密码体制,2.3.2 RSA加密体制公钥和私钥的生成算法 独立的选取两个大素数和(通常为100到200位的十进制数字),计算欧拉函
17、数值 随机选一整数e,1e,e在模下有逆元d=e-1mod,2023/7/10,36,2.3.2 RSA加密体制,加密算法解密算法 通信各方都必须产生一对密钥,即需要做以下工作:确定两个大素数p,q选择e或d,并计算d或者e,2023/7/10,37,2.3.2 RSA加密体制,选择素数的过程如下:随机选择一个奇整数n(如利用伪随机数产生器);随机选择一个整数;执行诸如Miller-Rabin等概率素数测试。若n未通过测试,则转到第一步;若n通过足够多次的测试,则接受n;否则转向第2步。,2023/7/10,38,2.3 公钥密码体制,2.3.3 RSA 签名体制数字签名需要满足以下四个条件:
18、收方能够确认或证实发放的签字,但不能伪造;发方发出签字消息后,不能再否认他所签发的消息;收方对已收到的签字消息不能否认;第三方可以确认收发双方之间的消息传递,但不能伪造这一过程。,2023/7/10,39,2.3.3 RSA 签名体制,RSA签名算法 算法参数两个保密的大素数p和q,计算,;选一个整数e,满足,且;计算d,满足;以为公钥,d为私钥。签名算法设消息为M,对其签名验证算法接收方收到消息M和签名后,验证是否成立,若成立,则说明该签字有效。,2023/7/10,40,2.4 杂凑函数,杂凑函数是将任意长的数字串M映射成为一个较短的定长输出数字串h的函数,通常用H表示,H(M)要易于计算
19、,称为M的杂凑值,也称为杂凑码或数字指纹。杂凑函数可以按其是否有密钥控制划分成为两大类:一类是有密钥控制的,称为密码杂凑函数;另一类是无密钥控制的,称为一般杂凑函数。,2023/7/10,41,2.4 杂凑函数,2.4.1 消息认证码消息认证码利用密钥来生成一个固定长度的数据块,并将该数据块附加在消息之后。使用消息认证码的前提是通信双方共享密钥。MAC值是消息和密钥的函数,即,其中,M表示输入的变长消息,C表示MAC函数,K是通信双方共享密钥。,2023/7/10,42,2.4.1 消息认证码,消息认证,消息认证和保密性:与明文有关的认证,消息认证和保密性:与密文有关的认证,2023/7/10
20、,43,2.4 杂凑函数,2.4.2 一般杂凑函数一般杂凑函数通常具有以下几个特性:可应用于任意大小的数据块并产生定长的输出;对任何给定的M,用硬件和/或软件均容易实现。单向性:对任何给定的杂凑值h,找到满足H(M)=h的M在计算上是不可行的。显然,对一个杂凑值h,由M计算h=H(M)是容易的,但要产生一个,使H()等于给定的杂凑值h是困难的。这种特性正是密码技术所需要的特性。抗弱碰撞性:对任何给定的分组M,找到满足且的在计算上是不可行的。抗强碰撞性:找到任何满足的数据对在计算上是不可行的。,2023/7/10,44,2.4.2 一般杂凑函数,几种应用方法 提供消息认证提供认证和保密性,202
21、3/7/10,45,2.4 杂凑函数,2.4.3 SHA1算法安全杂凑算法(Secure hash algorithm,SHA)是由美国标准技术研究所(NIST)设计并于1993年公布的一种标准算法(FIPS PUB 180),1995年又公布了FIPS PUB 180-1,通常称之为SHA-1。其输入为长度小于位的报文,输出为160位的报文摘要,该算法对输入按512位进行分组,并以分组为单位进行处理。,2023/7/10,46,2.4.3 SHA1算法,SHA-1算法步骤第一步:填充报文。填充报文的目的是使报文长度为512的倍数减去64。若报文本身已经满足上述长度要求,仍然需要进行填充,因此
22、,填充位数在1,512。填充方法是在报文后附加一个1和若干个0,然后附上表示填充前报文长度的64位数据(最高有效位在前)。,2023/7/10,47,2.4.3 SHA1算法,第二步:初始化缓冲区。杂凑函数的中间结果和最终结果保存于160位的缓冲区中,缓冲区由5 个32位的寄存器(A、B、C、D、E)组成,将这些寄存器初始化为下列32位的整数(16进制值):A=0 x67 45 23 10,B=0 xEF CD AB 89,C=0 x98 BA DC FE,D=0 x10 32 54 76,E=C3 D2 E1 F0。(与MD5不同,SHA-1中的寄存器存储方式为:最高有效字节存储在低地址字节
23、位置。),2023/7/10,48,2.4.3 SHA1算法,第三步:执行算法主循环。每次循环处理一个512位的分组,故循环次数为填充后报文的分组数,参见图2-16,其中为压缩函数模块。,2023/7/10,49,2.4.3 SHA1算法,算法的核心是压缩函数,参见图2-17。它由四轮运算组成,四轮运算结构相同。每轮的输入是当前要处理的512位的分组()和160位缓冲区A、B、C、D、E的内容。每轮所使用的逻辑函数不同,分别为,第四轮的输出与第一轮的输入相加得到压缩函数的输出。SHA-1的处理过程可归纳如下:其中IV=缓冲区A、B、C、D、E的初值;=处理第q个报文分组时最后一轮的输出;+=模
24、加法;L=报文分组数(包括填充位和长度域);=第q个链接变量;MD=报文摘要。,2023/7/10,50,2.4.3 SHA1算法,下面,详细讨论每轮处理512位分组的过程。SHA-1中每一轮要对缓冲区A、B、C、D、E进行20步迭代。因此,压缩函数共有80步。每步迭代如图所示。,2023/7/10,51,2.4.3 SHA1算法,也就是说,每步具有下述形式:其中A,B,C,D,E=缓冲区的5个字;第t步使用的基本逻辑函数;32位的变量循环左移s位;从当前分组导出的32位的字;加法常量;+=模加法。,2023/7/10,52,2.4.3 SHA1算法,每轮使用一个逻辑函数,其输入均为32位的字
25、,输出为一个32位的字,它们执行位逻辑运算,其定义参见表2-8。,2023/7/10,53,2.4.3 SHA1算法,每轮使用一个加法常量。第t步使用的加法常量为,其中。其定义参见表2-9。,加法常量,2023/7/10,54,2.4.3 SHA1算法,每步使用从512位的报文分组导出一个32位的字。因为共有80步,所以要将16个32位的字()扩展为80个32位的字()。其扩展过程为:前16步迭代中的值等于报文分组的第t个字,其余64步迭代中等于前面某4个值异或后循环左移一位的结果。SHA-1将报文分组的16个字扩展为80个字供压缩函数使用,这种大量冗余使被压缩的报文分组相互独立,所以,对给定
26、的报文,找出具有相同压缩结果的报文会非常复杂。,2023/7/10,55,2.5 密码算法应用实例PGP,PGP是目前被广泛采用的一种为电子邮件和文件存储应用提供保密和认证服务的邮件安全保密系统。利用公钥机制,PGP为用户提供了一种安全通讯方式,即用户事先不需要使用保密信道来传递密钥,就可以实现电子邮件加密,防止被非授权用户阅读;可以实现对电子邮件签名,使邮件接收者能够验证邮件发送者的身份,确保邮件在传输过程中没有被篡改。由于PGP功能强大,计算速度快,可跨平台运行,并且免费公开源码,所以已经成为最流行的公钥加密软件包之一。PGP综合运用了四种密码体制,即私钥密码体制(采用IDEA或CAST或
27、使用Diffie-Hellman的3DES等算法),公钥密码体制(RSA或DSS);杂凑算法(MD5或SHA-1)以及一个随机数生成算法。下面简要介绍利用这四种机制,PGP实现机密性、完整性和认证的工作流程。,2023/7/10,56,2.5 密码算法应用实例PGP,2.5.1 PGP提供的安全服务简介 认证服务,PGP可通过公钥体制的数字签名和杂凑算法提供认证服务。其工作流程如图2-19所示。,2023/7/10,57,2.5.1 PGP提供的安全服务简介,机密性服务,在利用PGP加解密消息M时,为了提高加解密速度,采用私钥加密算法如CAST-128,IDEA或3DES,64比特的密码反馈模
28、式(CFB)等方法,使用一次性会话密钥对消息M加密。同时,为保护一次性会话密钥的安全,使用RSA公钥算法建立会话密钥。如图所示,2023/7/10,58,2.5.1 PGP提供的安全服务简介,保密和认证服务 PGP还可以实现将保密和认证两种服务同时应用于一个消息。当既需要实现加密同时又需要实现认证服务时,发送者依次使用签名、压缩、加密消息。,2023/7/10,59,2.5 密码算法应用实例PGP,2.5.2 PGP密钥管理机制简介PGP将公钥/私钥存放在密钥环(KeyRing)文件中,同时提供查找算法以便用户查找出所需密钥。由于私钥太长且无规律,难以记忆,所以PGP用口令加密私钥后再存入密钥
29、环文件,这样就满足了用户使用易记口令间接使用私钥的需求。在实际应用中,保护公钥不受窜扰是最困难的问题,PGP采用“介绍人”的方式来管理。,2023/7/10,60,2.5 密码算法应用实例PGP,2.5.3 PGP加密实例1、下载并安装PGP从PGP中文官方网站下载PGP8.1,解开压缩包,运行安装文件,系统自动进入安装向导,主要步骤如下:选择用户类型,首次安装选择No,Im a New User,见图2-22;,2023/7/10,61,2.5.3 PGP加密实例,确认安装的路径;选择安装应用组件,见图2-23 装完毕后,重新启动计算机;重启后,PGP Desktop已安装在电脑上(桌面任务
30、栏内出现PGP图标)。安装向导会继续PGP Desktop注册,填写注册码及相关信息至此,PGP软件安装完毕。,2023/7/10,62,2.5.3 PGP加密实例,2、生成用户密钥对打开Open PGP Desktop,在菜单中选择PGPKeys,在 Key Generation Winzrad提示向导下,创建用户密钥对 1)首先输入用户名及邮件地址,见图2-26,2023/7/10,63,2.5.3 PGP加密实例,输入用户保护私钥口令,见图2-27完成用户密钥对的生成,在PGPkeys 窗口内出现用户密钥对信息,2023/7/10,64,2.5.3 PGP加密实例,用PGP对Outlook Express邮件进行加密操作打开Outlook Express,填写好邮件内容后,选择Outlook 工具栏菜单中的PGP 加密图标,使用用户公钥加密邮件内容,见图2-28发送加密邮件,2023/7/10,65,2.5.3 PGP加密实例,接收方用私钥解密邮件 收到邮件打开后,选中加密邮件后选择复制,打开Open PGP Desktop,在菜单中选择PGPmail,在PGPmail中选择解密/效验,在弹出的“选择文件并解密/效验”对话框中选择剪贴板,将要解密的邮件内容复制到剪贴板中,2023/7/10,66,2.5.3 PGP加密实例,输入用户保护私钥口令后,邮件被解密还原,