1、1,网络信息安全,(2011版) 讲 授:刘延华 Email: MyTel: 13600811020 福州大学数学与计算机科学学院,2,第2章 数据加密技术,主要内容古典密码技术DES算法RSA算法MD5算法数字签名PGP加密课时:3.0,3,2.1 加密技术概述,1.加密技术一般原理 加密的目的是使非授权者无法理解其真正含义。 伪装即对信息进行一组数学变换。伪装前的原始信息为明文,伪装后的信息为密文。 将明文伪装为密文的过程为加密,其逆过程称为解密。,4,2.1 加密技术概述,1.加密技术一般原理,5,2.1 加密技术概述,1.加密技术一般原理 加解密使用的一组数学变换称为密码算法。 在
2、密码算法实现过程中,需要某些仅被通信双方所掌控的关键信息参与计算,这些关键信息被称为密钥(Key)。 用于加密的key为加密密钥,解密的则称解密密钥。,6,2.1 加密技术概述,2.密码算法的分类按发展分类: 经历了古典密码、对称密钥密码、公开密钥密码发展阶段。 古典密码是基于字符替换的密码,现已少用。 现常用算法是对称密钥算法、公开密钥算法。,7,2.1 加密技术概述,2.密码算法的分类对称密码算法 即加密密钥和解密密钥相同,也称单密钥算法,如DES等。 该类算法主要用于数据加密,存在密钥管理困难等问题。,8,2.1 加密技术概述,9,2.1 加密技术概述,2. 密码算法的分类 公开密码算法
3、 两个密钥不同的称为公开密钥算法,如RSA等,两个密钥称为公用和私有密钥。,10,2.1 加密技术概述,11,2.1 加密技术概述,2. 密码算法的分类 公开密码算法 公钥密码既可实现保密通信,也可用于数字签名。 但该类算法加解密速度较慢。 加密和数字签名过程示意图如下页:,12,2.1 加密技术概述,返回,13,2.1 加密技术概述,2.密码算法的分类按加密模式分 1)序列密码每次加密1位或1字节的明文,也称为流密码。 2)分组密码将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文。,14,2.1 加密技术概述,3.网络传输加密 链路加密 链路加密方式中,所有消息在
4、被传输之前进行加密,对数据正文和控制信息都加密,在每个节点接收到报文后,须先解密以获得路由信息和校验和,再进行路由选择、差错检测,然后加密后传输到下一节点。 在每一个网络节点中,消息以明文形式存在。,15,2.1 加密技术概述,3.网络传输加密 节点加密 仅在节点处进行解密和加密,链路则传输明文形式。在节点处的加解密是在节点上的一个安全模块中进行,均以密文形式呈现。 节点加密要求报头和路由信息以明文形式传输。不能有效防止攻击者分析通信业务。,16,2.1 加密技术概述,3.网络传输加密 端到端加密 数据在从源点到终点的传输过程中始终以密文形式存在。 这种方式通常不允许对目的IP地址加密,便于节
5、点确定如何传输消息。由于不能掩盖源点与终点,因此也它有一定的脆弱性。,17,2.2 古典密码技术,替代密码 替代密码就是明文中每一个字符被替换成密文中的另外一个字符。接收者对密文进行逆替换就恢复出明文来。 在替代法加密体制中,使用了密钥字母表。它可以由一个字母表构成,也可以由多个字母表构成,分别称为单表密码和多表密码。,18,凯撒(Caesar)密码 典型的单表替代密码,又叫循环移位密码。它的加密方法就是把明文中所有字母都用它右边的第k个字母替代,Z后又是A。 E(a)=(a+k) mod n 其中:a表示明文字母;n为字符集中字母个数;k为密钥,一个正整数。,2.2 古典密码技术,19,2.
6、2 古典密码技术,凯撒(Caesar)密码 设k3;对于明文PCOMPUTE则: E(C)=(3+3) mod 26 = 6 = F E(O)=(15+3)mod 26 = 18 = R E(M)=(13+3)mod 26 = 16 = P 所以,密文C= Ek(P) = FRPSXRWH。 当然,用于加密的字符集可以自设定。,20,2.2 古典密码技术,换位密码 换位密码是采用移位法进行加密的。它把明文中的字母进行重新排列,但位置变了。 (l)列换位法: 将明文字符分割成为n个字符一列的形式进行排列,不足一行由特定字符填充。 分组后并按列手顺序输出即得密文。,21,2.2 古典密码技术,如:
7、WHAT YOU CAN LEARN FROM THIS BOOK 密钥5,则密文:WOFHOHURIKACOSXTAMBXYNTOX,22,2.2 古典密码技术,换位密码(2)矩阵换位法: 把明文中的字母按给定的顺序安排在一个矩阵中,然后用另一种顺序选出矩阵的字母来产生密文。 如:将明文ENGINEERING按行排在3*4矩阵中,如下页所示:,23,2.2 古典密码技术,一个置换矩阵 :,24,2.2 古典密码技术,(2)矩阵换位法: 按第2、4、1、3列次排列,得到密文: NIEGERNEN IG 在这个加密方案中,密钥就是矩阵的行数m和列数n,即m*n3*4,以及给定的置换矩阵。也就是:
8、k=(m*n,f),25,2.2 古典密码技术,其解密过程是将密文按3*4矩阵排列,再按置换矩阵的逆序,即第3、1、4、2列次输出,得到明文:ENGINEERING,26,2.3 数据加密标准(DES),数据加密标准DES是美国国家标准局制定的商用数据加密标准,军方除外。 DES是一个分组加密算法,它以64位为分组对数据加密。64位一组的明文从算法的一端输入,64位的密文从另一端输出。 算法需要进行16轮编码。,27,2.3 数据加密标准(DES),DES是一个对称密码算法:加密和解密用的是同一算法,两个密钥相同。 密钥长度为64bit,其中有效密钥长度56bit,其余8bit为奇偶校验。 D
9、ES的算法体制是公开的,因此系统的安全性主要依赖密钥的保密来实现。 3DES算法的出现。,28,2.3 数据加密标准(DES),29,2.4 RSA算法,RSA是MIT出品,于1978年公布。密钥有由是两个很大质数构成,一个公开,另一个保密,前者称为“公用密钥”,后者称为“私有密钥”。 这两个密钥相互补充,就是说公用密钥的密文可以用私有密钥来解密,反之也然。,30,2.4 RSA算法,每个用户都有一个密钥对:(1)公钥:加密明文;(2)私钥:解密密文。 采用RSA时,当用户A发信息给用户B时,用户A用B的公开密钥加密明文,用户B则用解密密钥解读密文。,31,2.4 RSA算法,RSA密钥可从4
10、0位到2048位,加密时块大小可变,但不超过密钥的长度,RSA算法把每一块明文转化为与密钥长度相同的密文块。 密钥越长,加密效果越好,但开销也大。 如常见的SSL、PGP等都应用了RSA算法。,32,2.4 RSA算法,密钥产生1.取两个大素数 p, q , 保密; 2.计算n=pq,公开n; 3.计算欧拉函数f(n)=(p-1)(q-1);4.任取一个与f(n) 互素的小整数e: gcd(e,f(n)=1; 1ef(n)5.寻找d,df(n), 使得 d*e=kf(n)+1,p=7,q=17,n=119,f(n)=96,选择e=5,5d=k961,令 k=4, 得到求得d=77,33,2.4
11、 RSA算法,公开密钥:KU=e, n 秘密密钥: KR=d, n加密过程把待加密的内容分成k比特的分组,k log2n,并写成数字,设为M,则:C= Me mod n解密过程M = Cd mod n,5, 119,77, 119,c=m5 mod 119,m=c77 mod 119,34,2.4 RSA算法,35,DES&RSA,速度 硬件实现的最快的RSA算法所消耗的时间也是DES算法的1000倍。 据报道,已RSA加密速率达350Mbps的芯片已研制成功。DES:数据传输加密;RSA:密钥传输(交换)加密;,36,2.5 MD5算法,MD5,即Message-Digest Algorit
12、hm 5(信息-摘要算法),是基于杂凑函数(HASH)的密码算法,由RSA的设计者R.Rivest于20世纪90年代初开发出来。 MD5能够将不同格式的数据信息在用数字签名软件来签署私人密钥前“压缩”成一种保密的格式,而且这种“压缩”是不可逆的。,37,2.5 MD5算法,MD5的典型应用是对一段信息产生信息摘要,防篡改。 MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461 MD5算法通过其不可逆的字符串变换算法,产生了一个唯一的MD5信息摘要。 如果有第三方认证机构,则MD5就可以防止文件作者的“抵赖”,实现“数字签名”。,38,
13、2.5 MD5算法,2004年8月17日美国加州圣巴巴拉的国际密码学会议(Crypto2004) 王小云教授成功破译MD5、HAVAL-128、MD4和RIPEMD、SHA-1等密码。 数字签名算法收到巨大挑战!,39,数字签名体制 签名算法(Signature Algorithm) Sig(M)=S 签名算法或签名密钥K是秘密的,只有发方掌握; 验证算法(Verification Algorithm) Ver(S)=0,1=真,伪 验证算法公开,便于他人进行验证;,2.6 数字签名,40,数字签名体制 签名体制的安全性在于,从M和其签名S难以推出签名密钥K或伪造一个M使M和S可被证实为真。,
14、2.6 数字签名,41,数字签名分类1)直接数字签名(direct digital signature) 只涉及通信双方2)仲裁数字签名(arbitrated digital signature) 引入仲裁者,通信双方都非常信任仲裁者。,2.6 数字签名,42,直接数字签名方法1)用发送方的私钥对整条消息进行加密来产生签名.【方式1】 AB: EKRaM 提供了鉴别与签名; 只有A具有KRa进行加密; 传输中没有被篡改; 任何第三方可以用KUa 验证签名,2.6 数字签名,43,直接数字签名方法1)用发送方的私钥对整条消息进行加密来产生签名.【方式2】 AB: EKUb EKRa(M) 提供了
15、保密(KUb)、鉴别与签名(KRa),2.6 数字签名,44,直接数字签名方法2)用发送方的私钥对消息hash码进行加密;【方式1】 AB: M|EKRaH(M) 提供数字签名H(M) 受到密码算法的保护,例如MD5或SHA-1;只有A 能够生成EKRaH(M),2.6 数字签名,45,直接数字签名方法2)用发送方的私钥对消息的hash码进行加密;【方式2】AB: EkUb M|EKRaH(M) 提供保密性、数字签名。,2.6 数字签名,46,仲裁数字签名方法 1)引入仲裁者。 通常的做法是所有从发送方X到接收方Y的签名消息首先送到仲裁者A,A将消息及其签名进行一系列测试,以检查其来源和内容,
16、然后将消息加上日期并与已被仲裁者验证通过的指示一起发给Y。,2.6 数字签名,47,仲裁数字签名方法 2)仲裁者在这一类签名模式中扮演敏感和关键的角色。 所有的参与者必须相信这一仲裁机制工作正常。,2.6 数字签名,48,数字水印技术 数字水印就是将特定的标记隐藏在数字产品中,用以证明原创者对产品的所有权,并作为起诉侵权者的证据。用来对付数字产品的非法复制、传播和篡改,保护产权。数字水印还可以广泛应用于其他信息的隐藏,如在一个正常的文件中嵌入文本、图像、音频等信息。,2.6 数字签名,49,2.7 PGP加密,PGP(Pretty Good Privacy)是一个基于RSA、DSS和Diffi
17、e-Hellman、IDEA、3DES、CAST128、SHA-1、MD5等算法的加密软件。实现对邮件、文件的加密与数字签名。 由于PGP功能强,速度快,源代码免费,因此,PGP成为最流行的公用密钥加密软件之一。 具体应用见相关文档,50,习题与思考题,什么是加密?简述加密和解密的过程。在凯撒密码中令密钥k=3,制造一张明文字母与密文字母对照表。对称和非对称体制的主要特点是什么?DES、RSA算法的基本原理及其应用。掌握MD5和PGP软件的应用。数字签名的基本过程。,51,数字签名的应用例子,现在Alice向Bob传送数字信息,为了保证信息传送的保密性、真实性、完整性和不可否认性,需要对要传送
18、的信息进行数字加密和数字签名,其传送过程如下:,52,Alice准备好要传送的数字信息(明文)。Alice对数字信息进行哈希(hash)运算,得到一个信息摘要。Alice用自己的私钥(SK)对信息摘要进行加密得到Alice的数字签名,并将其附在数字信息上。Alice随机产生一个加密密钥(DES密钥),并用此密钥对要发送的信息进行加密,形成密文。,数字签名的应用例子,53,Alice用Bob的公钥(PK)对刚才随机产生的加密密钥进行加密,将加密后的DES密钥连同密文一起传送给Bob。Bob收到Alice传送过来的密文和加过密的DES密钥,先用自己的私钥(SK)对加密的DES密钥进行解密,得到DES密钥。Bob然后用DES密钥对收到的密文进行解密,得到明文的数字信息,然后将DES密钥抛弃(即DES密钥作废)。,数字签名的应用例子,54,Bob用Alice的公钥(PK)对Alice的数字签名进行解密,得到信息摘要。 Bob用相同的hash算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。 Bob将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。,数字签名的应用例子,55,本文观看结束!,56,谢 谢欣 赏!,57,