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