
5b800fc7cca0cd9048bbce5be8a148d7.ppt
- Количество слайдов: 162
数据加密与鉴别 1
本章主要内容: v 密码学及数据加密的基本概念 v 传统密码技术 v 对称密钥密码和公开密钥密码体制 v 密钥管理 v 网络通信加密方式 v 加密软件PGP v 鉴别、CA认证和电子商务安全技术 2
v 前述的安全立法、加强行政人事管理、 访问控制、系统软硬件保护等是保护网 络系统安全的有效措施,但它们都不能 从根本上解决数据安全问题,都存在一 些不易解决的问题。采用密码技术保护 网络中数据的安全是一种非常实用、经 济、有效的方法。 3
一、 数据加密概述 v 对信息进行加密可以防止攻击者窃取网络 机密信息,可以使系统信息不被无关者识 别,也可以检测出非法用户对数据的插入、 删除、修改及滥用有效数据的各种行为。 v 基于数据加密的数字签名和鉴别技术除具 有保密功能外,还可以进行用户的身份验 证和数据源及其内容的鉴别。 4
1. 密码学的发展 v 密码学(Cryptology)是一门古老的学科。 早在几千年前,人类就已经有了保密通 信的思想和方法,但这些保密方法都是 非常朴素、原始和低级的,而且大多数 是无规律的。近现代一些著名的战争中 都使用了密码技术。近年来,密码学研 究之所以十分活跃,主要原因是它与计 算机科学的蓬勃发展密切相连。 5
v 此外,还有电信、金融领域和防止日益广 泛的计算机犯罪的需要。密码技术应用于 计算机网络中的实例越来越多。 密码学 从其发展来看,可分为两大阶段: 传统密码学和计算机密码学。 ü 第一阶段:传统密码学。主要是靠人 进行信息加密、传输和破译 6
ü 第二阶段:计算机密码学。利用计 算机进行自动或半自动地加密、解 密和传输 w 1. 传统方式计算机密码学 w 2. 现代方式计算机密码学 Ø 对称密钥密码体制 Ø 公开密钥密码体制 7
v 密码学包括密码编码学和密码分析学两部 分,这两部分相互对立,但也相互促进, 相辅相成。 ü 密码编码学研究的是通过编码技术来改变被 保护信息的形式,使得编码后的信息除指定 接收者之外的其他人都不可理解 ü 密码分析学研究的是如何攻破一个密码系统, 恢复被隐藏起来的信息的本来面目 8
2. 密码学的基本概念 v 加密在网络上的作用就是防止有价值的信息 在网上被窃取并识别; v 基于加密技术的鉴别的作用是用来确定用户 身份的真实性和数据的真实性。 9
v 加密 :把信息从一个可理解的明文形式 变换成一个错乱的、不可理解的密文形式 的过程 v 明文(Plain Text):原来的信息(报文)、消息, 就是网络中所说的报文(Message) v 密文(Cipher Text):经过加密后得到的信息 v 解密:将密文还原为明文的过程 10
v 密钥(Key):加密和解密时所使用的一种专 门信息( 具) v 密码算法(Algorithm):加密和解密变换的规 则(数学函数),有加密算法和解密算法 v 加密系统:加密和解密的信息处理系统 v 加密过程是通过某种算法并使用密钥来完 成的信息变换 11
简单的密码系统示意图 明文P 密文C 加密 (E) 明文P 解密 (D) 攻击者 加密密钥Ke 解密密钥Kd 12
v 加密实际上是要完成某种函数运算C=ƒ(P, K), 对于一个确定的加密密钥Ke,加密过程可看作是 只有一个自变量的函数,记作Ek ,加密变换为: C= Ek (P) (加密变换作用于明文P后得到密文C) v 同样,解密也完成某种函数的运算P=g(C, K)对于 确定的解密密钥Kd,解密过程为: P= Dk (C) (解密变换作用于密文C后得到明文P) 13
v 由此可见,密文C经解密后还原成原来 的明文,必须有 P= Dk (Ek (P))= Dk Ek(P) 此处“ ”是复合运算,因此要求 Dk Ek=I I为恒等变换,即Dk与 Ek是互逆变换 14
3. 密码的分类 v 按密码的历史发展阶段和应用技术分: 手 密码、机械密码、电子机内乱密码 和计算机密码 v 按密码转换的操作类型分:替代密码和 移位密码 15
v 按保密程度划分,有理论上保密的密码、 实际上保密的密码和不保密的密码 v 按明文加密时的处理方法分:分组密码 和序列密码 v 按密钥的类型分:对称密钥密码和非对 称密钥密码 16
v 分组密码 ü 分组密码的加密方式是:首先将明文 序列以固定长度进行分组,每组明文 用相同的密钥和算法进行变换,得到 一组密文。分组密码是以块为单位, 在密钥的控制下进行一系列线性和非 线性变换而得到密文的。 17
ü 分组密码的加/解密运算是:输出块中 的每一位是由输入块的每一位和密钥 的每一位共同决定。 ü 加密算法中重复地使用替代和移位两 种基本的加密变换,此即Shannon 1949年发现的隐藏信息的两种技术: 打乱和扩散。 18
w 打乱:就是改变数据块,使输出位 与输入位之间没有明显的统计关 系(替代); w 扩散:就是通过密钥位转移到密文 的其它位上(移位)。 ü 分组密码的特点:良好的扩散性;对 插入信息的敏感性,较强的适应性; 加/解密速度慢;差错的扩散和传播。 19
发/收信端 输入块 加密/解密 输出块 加/解密钥块 分组密码 20
v 序列密码 ü 序列密码加密过程是:把报文、语音、 图像等原始信息转换为明文数据序列, 再将其与密钥序列进行“异或”运算, 生成密文序列发送给接收者。接收者 用相同的密钥序列与密文序列再进行 逐位解密(异或),恢复明文序列。 21
ü 序列密码加/解密的密钥,是采用一个 比特流发生器随机产生二进制比特流 而得到的。它与明文结合产生密文, 与密文结合产生明文。 ü 序列密码的安全性主要依赖于随机密 钥序列。 22
发/收信端 比特流 发生器 明/密文 输入 异或 密/明文 输出 序列密码 23
v 加密和解密过程都要使用密钥。如果加密 密钥和解密密钥相同或相近,由其中一个 很容易地得出另一个,这样的系统称为对 称密钥系统,加密和解密密钥都是保密的; 如果加密密钥与解密密钥不同,且由其中 一个不容易得到另一个,则这种密码系统 是非对称密钥系统,往往其中一个密钥是 公开的,另一个是保密的。 24
v 前者也称为传统密钥密码体制,后者称为 公开密钥密码体制。 v 相应地,这两种密码体制各有一些典型算 法。对称密钥密码体制的主要算法有DES、 IDEA、TDEA(3 DES)、MD 5、RC 5等, 也叫单密钥算法;公开密钥密码体制的主 要算法有RSA、Elgamal、背包算法、 Rabin、DH等。 25
二、 传统密码技术 1. 数据的表示 2. 替代密码 3. 移位密码 4. 一次一密钥密码 26
1. 数据的表示 v 传统加密方法加密的对象是文字信息。文 字由字母表中的字母组成,在表中字母是 按顺序排列的,赋予它们相应的数字标号, 即可用数学方法进行运算(变换)了。将字 母表中的字母看作是循环的,则字母的加 减形成的代码可用求模运算来表示了。如 A+4=E,X+6=D (mod 26) 27
2. 替代密码 v 替代也叫置换。替代密码就是明文中的 每个或每组字符由另一个或另一组字符 所替换,即形成密文。 v 在经典密码学中,有简单替代、多名码 替代、多字母替代和多表替代加密法。 28
(1) 简单替代密码 v 简单替代的就是明文的一个字母,用相 应的密文字母代替。规律是根据密钥形 成一个新的字母表,与原明文字母表有 相应的对应关系。 29
v 典型的一种替代密码是凯撒密码,又叫循环移 位密码。其加密方法就是将明文中的每个字母 都用其右边固定步长的字母代替,构成密文。 v 例如:步长为 4,则明文A、B、C、…、Y、Z 可分别由E、F、G、…、C、D代替。如果明 文是“about”,则变为密文“efsyx”,其密钥k=+4 。两个循环的字母表对应。 30
A B C D … … … … …W X Y Z (a) E F G H … … … … … A B C D… … … … … W X Y Z (b) (c) Z Y X W… … … … … D C B A A B C D… … … … … W X Y Z C F I L … … … … … Q T W Z 图 5. 2 替代加密 (a) 移位映射 (b) 倒映射 (c) 步长映射(步长为 3) 31
(2) 多表替代密码 v 一种常用的多表替代密码叫Vigenere密 码。它是循环使用有限个字母实现替代。 Vigenere密码就是把26个字母循环移位, 排列在一起,形成 26× 26的方阵表。加 密和解密时的明文、密钥、密文就是表 中的行、列及交点的内容。 32
3. 移位密码 v 移位密码变换:只对明文字母重新排序, 位置变化了,而不隐藏它们。是一种打 乱原文顺序的替代法。 v 把明文按行写出,读出时按列进行,得 到的即为密文。 33
v 如明文为“this is a bookmark”,将其分 为三行五列,则为以下形式: t h i s a bo o kma r k v 按列从左至右读,可得到密文: tskhamibasoriok 34
v 如果把明文字母按一定顺序排列成矩阵形 式,用另一种顺序选择相应的列输出得到 密文。如用“china”为密钥,对“this is a bookmark”排列成矩阵如下: t h i s a b o o k m a r k 按“china”各字母排序“ 23451”顺序,输出 得到密文 ioktskhamibasor 35
v 再如:对于句子“移位密码加密时只对明 文字母重新排序字母位置变化但它们没被 隐藏”,可选择密钥“ 362415”,并循 环使用该密钥对上句进行移位加密。密钥 的数字序列代表明文字符(汉字)在密文 中的排列顺序。 36
v 按照该密钥加密可得到一个不可理解的新 句子(密文)“密密位码移加对字只明时 文新字重排母序置但位变母化没藏们被它 隐”。解密时只需按密钥 362415的数字 从小到大顺序将对应的密文字符排列,即 可得到明文。 37
简单异或 v 简单异或操作起来很简单,它主要是按 位进行两个二进制位的异或,结果得到 密文或明文。即 m k=c c k=m 该方法简单,但容易破译。 38
4. 一次一密钥密码 v 一次一密钥密码是一种理想的加密方案。 就是一个随机密码字母集,包括多个随 机密码,这些密码就好象一个本本,其 中每页上记录一条密码。类似日历的使 用过程,每使用一个密码加密一条信息 后,就将该页撕掉作废,下次加密时再 使用下一页的密码。 39
v 一次一密钥密码可推广到二进制数据的 加密。用二进制数据组成一次密码本, 用异或代替加法,对二进制密码和明文 进行操作;解密时用同样的密码和密文 进行异或,得到明文。 v 一次一密钥密码必须是随机产生的,这 样才可做到最好效果的保密。 40
v 发送者使用密钥本中每个密钥字母串去 加密一条明文字母串,加密过程就是将 明文字母串和密钥本中的密钥字母串进 行模 26加法运算。 v 接收者有一个同样的密钥本,并依次使 用密钥本上的每个密钥去解密密文的每 个字母串。接收者在解密信息后也销毁 密钥本中用过的一页密钥。 41
v 例如,如果消息是:ONETIMEPAD 密钥本中的一页密钥是:GINTBDEYWX 则可得到密文:VWSNKQJOXB 这是因为:O+G=V (mod 26) N+I=W (mod 26) E+N=S (mod 26) … … 42
v 一次一密的密钥字母必须是随机产生的。 对这种方案的攻击实际上是依赖于产生 密钥序列的方法。不要使用伪随机序列 发生器产生密钥,因为它们通常有非随 机性。如果采用真随机序列发生器产生 密钥,这种方案就是安全的。 43
v 一次一密密码在今天仍有应用场合,主 要用于高度机密的低带宽信道。美国与 前苏联之间的热线电话据说就是用一次 一密密钥本加密的,许多前苏联间谍传 递的信息也是用一次一密钥密码加密的。 至今这些信息仍是保密的,并将一直保 密下去。 44
三、 对称密钥密码体制 1. 对称密钥密码的概念 v 也叫传统密钥密码体制,其基本思想就是“加 密密钥和解密密钥相同或相近”,由其中一个 可推导出另一个。使用时两个密钥均需保密。 v 传统密钥密码算法有: DES、IDEA、 TDEA(3 DES)、MD 5、RC 5等,典型的算法 是DES算法。 45
对称密钥 明文输入 M 加密 算法 密文 C 解密 明文输出 M 算法 对称加密体制模型 46
2. DES算法 (1) DES概述 DES(数据加密标准)算法能对 64位二进制数码 组成的数据组在 64位密钥的控制下进行加密和 解密变换。64位密钥中有8位作为校验位(第 8、 16、24、32、40、48、56和64位),因此真正 成为密钥的只有56位。 47
v 在 70年代初,DES已推出并广泛应用, 1977年被NBS公布为数据加密标准。 v DES最先用于军事系统,后又推广到民 用,应用最多的是在银行和商业系统。 但由于其保密性能受到质疑,曾有很多 专家希望用其它方法取代之。 48
(2) DES算法的主要过程 输入 64位明文(密文) 64位密钥组 ① 初始置换: 初始置换(IP) ② 子密钥生成: 乘积变换 ③ 乘积变换: 子密钥生成 末置换(IP-1) ④ 末置换: 输出 64位密文(明文) 49
(3) 初始置换IP v初始置换(permutation)按照固定的矩阵 进行(移位),此部分与密钥无关,如下表。 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 50
3. 对称密码体制的其它算法简介 (1) 三重DES算法(TDEA) v 三重DES算法需要执行三次DES的加密。一般三 重DES算法使用两个DES密钥。其算法步骤为: ü 发送端用密钥K 1进行DES加密; ü 发送端用密钥K 2对上一结果进行DES解密; ü 发送端用密钥K 1对上一结果进行DES加密; ü 接收方则相应地使用K 1解密,K 2加密,再使用K 1解密 。 51
K 1 M E D K 2 E C E D K 3 C K 3 K 2 K 1 D M 三重DES的加密解密过程 52
(2) 国际数据加密算法(IDEA) • IDEA是分组密码算法,分组长度为 64位,但密 钥长度 128位。 • 该算法是用 128位密钥对 64位二进制码组成的 数据组进行加密的,也可用同样的密钥对 64位 密文进行解密变换。 • IDEA的密钥比DES的多一倍,增加了破译难度, 被认为是多年后都有效的算法。 53
• IDEA算法也是通过一系列的加密轮回操作的, 每轮中也使用压缩函数进行变换,只是不使用 移位置换。 • IDEA中使用的运算有: ü 异或 ü 模 216加法 ü 模 216+1乘法 • 这三种运算彼此混合可产生很好的效果。运算 时IDEA把数据分为四个子分组,每个 16位。 54
四、 公开密钥密码体制 1. 公钥密钥密码体制的概念 v 加密密钥与解密密钥不同,且由其中一 个不容易得到另一个,则这种密码系统 是非对称密钥系统。往往其中一个密钥 是公开的,另一个是保密的。因此,相 应的密码体制叫公开密钥密码体制。 55
v W. Diffie和M. Hellman 1976年在IEEE Trans. on Information 刊物上发表了 “New Direction in Cryptography”文章, 提出了“公开密钥密码体制”的概念,开 创了密码学研究的新方向。 56
v 在公开密钥密码体制中,加密密钥是公 开的,解密密钥是保密的,加/解密算法 都是公开的。 v 公开密钥密码体制的主要算法有RSA、 背包算法、 Elgamal、Rabin、DH等。 57
公钥体制加/解密模型 发送M 加密 (E) Ke 密文C=E(M, Ke) 接收M 解密 (D) Kd 58
v 用Ke对明文加密后,再用Kd解密,即可 恢复出明文,即 M=D Kd{E Ke(M)} 加密和解密运算可以对调,即 M=D Kd{E Ke(M)} = E Ke {D Kd (M)} 59
· 但加密密钥不能用来解密,即 M≠D Ke{E Kd(M)} · 在计算上很容易产生密钥对Ke和Kd · 已知Ke是不能推导出Kd的,或者说从 Ke得到Kd是“计算上不可能的”。 60
2. 数论基础 (1) 模运算 v 若a=b+kn对某些整数k成立 则a b (mod n ) v 称b 为a模n的余数,或a与b是模n的同 余 61
(2) 素数 v 一个只能被 1和它本身整除的正整数。如 以下各数为素数: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, …, 2521, 2365347734339, 2756839 -1等都 是素数。 62
(3) 两数互素 v 两个数的最大公因子为 1,则两数互素。 gcd(a, n)=1 a和n互素 v 15与28互素,13与500互素,而15与27 不是互素 v 一个素数与它的倍数以外的任何其它数 都是互素的 63
(4) 因子分解 v 对于一个数进行因子分解,就是找出其 各 个 素 数 因 子 , 如 : 15=3 5, 80=2 2 5,252601=41 61 101等。 v 在数论中,因子分解是一个古老的问题。 分解一个数很简单,但其过程很费时。 64
目前最好的因子分解算法有: ü 数域筛选法:对大于110位字长的数,数域筛选法是已知的 最快的因子分解算法。当它最初被提出时,还不算实用, 但随着后来的一系列改进,成为新的一种因子分解实用算法。 ü 二次筛选法:对于低于110位的十进制数,二次筛选法是已 知的最快算法,且已得到广泛应用。该算法最快的版本叫 多重多项式二次筛选的双重大素数算法。 ü 椭圆曲线法:该算法曾用于寻找 43位长数字的因子,对于 更大的数是无用的。 v此外,还有蒙特卡罗算法、连分式算法、试除法等因子分解算法。 65
3. RSA算法 v RSA算法是 1978年由三名美国MIT科学 家Rivest, shamir和Adelman提出的一种 著名的公开密钥密码算法(以该三位姓氏 的第一个字母命名)。 66
v 经过多年的分析研究, 在众多的公钥体制 中,RSA倍受推崇,已被ISO/TC 97的数 据加密技术分委员会SC 20推荐为公钥数 据加密标准。 v RSA算法是建立在素数理论(Euler函数和 欧几里德定理)基础上的算法。 67
v 由数论知识可知,将一个具有大素数因子 的合数进行分解是很困难的,或者说这个 计算量是令人望而生畏的。RSA正是建 立在这个理论基础之上的。 v RSA算法的加密密钥Ke是公开的,而解 密密钥Kd是保密的。 68
v 在此不介绍RSA的理论基础(复杂的数 学分析和理论推导),只简单介绍密钥 的选取和加、解密的实现过程。 v 假设用户A要对发送给B的数据加密, 则可根据以下步骤选择密钥和进行密码 变换: 69
(1) 随机地选取两个不同的大素数p和q(一般为 100位以上的十进制数)予 以保密; (2) 计算 n = p · q,作为A的公开模数; (3) 计算 Euler 函数 (n)=(p-1) · (q-1) (mod n ) (4) 随机地选取一个与(p-1) · (q-1)互素的整数e,作为A的公开密钥; (5) 用欧几里德算法,计算满足同余方程 E • D 1 (mod (n)) 的解d,作为A用户的保密密钥; (6) 任何向A发送明文的用户,均可用A的公开密钥 e 和公开模数 n, 根据式 C=Me (mod n) 得到密文C (7) 用户A收到C后,可利用自己的保密密钥d,根据 M=Cd (mod n) 得到明文M 70
RSA算法举例 对“HI”进行加密: (1) 选密钥 设p=5, q=11, 则n=55, (n)=40 取e=3(公钥), 则d=27 (mod 40)(私钥) 71
(2) 加密 设明文编码为: 空格=00, A=01, B=02, …, Z=26 则明文 HI=0809 C 1=(08)3=512 17 (mod 55) C 2=(09)3=729 14 (mod 55) N=14, Q=17 所以,密文为QN 72
(3) 恢复明文 M 1=Cd=(17)27 08 (mod 55) M 2=Cd=(14)27 09 (mod 55) 因此明文为“HI”。 73
RSA 算法的安全性 v 攻击方法 蛮力攻击:对所有密钥都进行尝试 数学攻击:等效于对两个素数乘积(n)的因子分解 v 大数的因子分解是数论中的一个难题 74
DES和RSA算法的特点和比较 (1) DES的特点 可靠性较高 (16轮变化,增大了混乱性和扩 散性,输出不残存统计信息); 加密/解密速度快; 算法容易实现 (可由软件和硬件实现,硬件 实现速度快),通用性强; 75
算法具有对称性,密钥位数少,存在弱 密钥和半弱密钥,便于穷尽攻击; 密钥管理复杂。 76
(2) RSA算法的特点 密钥管理简单 (网上每个用户仅保密一个密钥, 且不需密钥配送); 便于数字签名; 可靠性较高 (取决于分解大素数的难易程度); 算法复杂,加密/解密速度慢, 难于实现。 77
5. 4. 4. 混合加密方法 v 对称密钥密码算法的特点是算法简单, 加/解密运算速度快;但其密钥管理复杂, 不便于数字签名。而公开密钥密码算法 的特点是密钥管理简单,便于数字签名; 但算法的理论复杂,加/解密运算速度慢。 两者的优缺点互补。 78
因此,在实际应用中,公开密钥密码系 统并没有完全取代对称密钥密码系统。 而是采用对称密钥加密方法与公开密钥 加密方法相结合(混合)的方式,如下图所 示。 79
B的公钥 B的私钥 加密后的 对称密钥 对称 密钥 明文 加密(公 钥算法) 解密(公 钥算法) 对称 密钥 明文 加密(对 称算法) 密文 解密(对 称算法) 两种密码体制的混合应用 80
v 这种混合加密方式的原理是:在发送端先使用 DES或IDEA对称算法加密数据,然后使用公开 算法RSA加密前者的对称密钥;到接收端,先 使用RSA算法解密出对称密钥,再用对称密钥 解密被加密的数据。要加密的数据量通常很大, 但因对称算法对每个分组的处理仅需很短的时 间就可完成,因此对大量数据的加密/解密不会 影响效率(若使用DES加密芯片,则速度会更 快); 81
v 用RSA算法将对称密钥加密后就可公开了,而 RSA的加密密钥也可以公开,整个系统需保密的 只有少量RSA算法的解密密钥,因此这些密钥在 网络中就很容易被分配和传输了;又因为对称密 钥的数据量很少(64/128位),RSA只需对其做 1~2个分组的加密/解密即可,也不会影响系统效 率的。因此,使用这种混合加密方式既可以体现 对称算法速度快的优势,也可发挥公钥算法密钥 管理方便的优势,二者各取其优,扬长避短。 82
对公钥密码算法的误解 v 公开密钥算法比对称密钥密码算法更安全 任何一种算法都依赖于密钥长度、破译密码的 作 量,从抗分析角度,没有一方更优越 v 公开密钥算法使对称密钥成为过时了的技术 公开密钥很慢,只能用在密钥管理和数字签名,对 称密钥密码算法将长期存在 v 使用公开密钥加密,密钥分配变得非常简单 事实上的密钥分配既不简单,也不有效 83
五、 密钥管理 当合理的密码算法确定后,密码系统的 保密强度完全取决于密钥的保密程度。 因此,密钥管理在整个保密系统中占有 重要地位,若密钥得不到合理的保护和 管理,即使算法再复杂,保密系统也是 脆弱的。密钥管理的目的就是要保证数 据保密系统安全性。 84
密钥管理包括密钥的产生、密钥的存储 和保护、密钥的更新、密钥的分发和传 输、密钥的验证、密钥的使用、密钥的 销毁等。这些问题的本质就是要正确地 解决密钥从产生到使用全过程的安全性 和实用性。 密钥管理最主要的过程是密钥的产生、 保护、分发和使用。 85
1. 密钥的产生 v 密钥的产生是密钥管理中的基本问题。首 先要保证所产生的密钥具有良好的随机性, 避免产生简单、明显的密钥或一串容易记 忆的字符或数字。现在代网络的信息量越 来越大,需要密钥量也大,密钥的产生要 能自动大量地进行。 86
v 密钥的产生主要利用噪声源技术,该技 术就是产生二进制的随机序列或与之对 应的随机数。其主要理论基础是混沌理论。 v 使用随机系列发生器可以自动地产生大 量随机的密钥。 87
2. 密钥的保护和分发 v 密钥的分层保护也叫主密钥管理体制。它是 以对称密钥为基础的管理体制。把密钥分为 几层,高一层密钥保护低一层密钥。 v 一般把密钥分为主密钥、辅助主密钥和会话 密钥三个层次。主密钥对辅助主密钥进行加 密保护,辅助主密钥对会话密钥进行加密保 护。再用会话密钥对传输的具体信息进行加 密保护。 88
v 该思想就是把网络中大量使用的会话密钥 置于辅助主密钥的保护之下,通过网络送 到各通信点。再由极少量的主密钥保护辅 助主密钥。 v 也可根据网络的大小分为一级密钥、二级 密钥和三级密钥等。 v 整个网络的密钥的保护与传输,都由计算 机控制,实现密钥管理的自动化。 89
一种公开密钥的保护体制 v 若A与B通信,A产生公钥Ke和私钥Kd; v A将Ke传输给B; v B用Ke加密其产生的一个会话密钥Ks,并传输 给A; v A用Kd解密Ks ; v 用Ks加密A发给B的数据; v 通信结束后, Ks被清除。 90
六、 网络保密通信 1. 通信安全 v 要保证系统的通信安全,就要充分认识到网络 系统的脆弱性,特别是网络通信系统和通信协 议的弱点,估计到系统可能遭受的各种威胁, 采取相应的安全策略,尽可能地减少系统面临 的各种风险,保证计算机网络系统具有高度的 可靠性、信息的完整性和保密性。 91
• 网络通信系统可能面临各种各样的威胁, 如来自各种自然灾害、恶劣的系统环境、 人为破坏和误操作等。所以,要保护网 络通信安全,不仅必须要克服各种自然 和环境的影响,更重要的是要防止人为 因素造成的威胁。 92
• 线路安全:通信过程中,通过在通信线 路上搭线可以窃取(窃听)传输信息, 还可以使用相应设施接收线路上辐射的 信息,这些就是通信中的线路安全问题。 可以采取相应的措施保护通信线路安全。 采用电缆加压技术可保护通信电缆安全。 93
• TCP/IP服务的脆弱性:基于TCP/IP 协议的服务很多,常用的有Web服务、 FTP服务、电子邮件服务等; 人们不太熟 悉的有TFTP服务、NFS服务、Finger服 务等。这些服务都在不同程度上存在安 全缺陷。 94
2. 通信加密 (1) 硬件加密和软件加密 • 网络中的数据加密可分为两个途径,一 种是通过硬件实现数据加密,一种是通 过软件实现数据加密。通过硬件实现网 络数据加密有三种方式:链路加密、节 点加密和端--端加密;软件数据加密就 是指使用前述的加密算法进行的加密。 95
• 硬件加密:所有加密产品都有特定的硬 件形式。这些加、解密硬件被嵌入到通 信线路中,然后对所有通过的数据进行 加密。虽然软件加密在今天正变得很流 行,但硬件加密仍是商业和军事等领域 应用的主要选择。选用硬件加密的原因 有: 96
ü 快速。加密算法中含有许多复杂运算,采用 硬件措施将提高速度,而用软件实现这些复 杂运算将影响速度; ü 安全。使用硬件加密设备可将加密算法封装 保护,以防被修改。 ü 易于安装。将专用加密硬件放在电话、传真 机中比设置在微处理器中更方便。安装一个 加密设备比修改配置计算机系统软件更容易。 97
• 软件加密:任何加密算法都可用软件实现。 软件实现的劣势是速度、开销和易于改动,而 优势是灵活性和可移植性,易使用,易升级。 软件加密程序很大众化,并可用于大多数操作 系统。这些加密程序可用于保护个人文件,用 户通常用手 加/解密文件。软件加密的密钥 管理很重要,密钥不应该存储在磁盘中,密钥 和未加密文件在加密后应删除。 98
(2) 通信加密方式 • 链路加密:是传输数据仅在数据链路层 上进行加密。链路加密是为保护两相邻 节点之间链路上传输的数据而设立的。 只要把两个密码设备安装在两个节点间 的线路上,并装有同样的密钥即可。被 加密的链路可以是微波、卫星和有线介 质。 99
• 在链路上传输的信息是密文(包括信息正 文、路由及检验码等控制信息),而链路 间节点上必须是明文。因为在各节点上 都要进行路径选择,而路由信息必须是 明文,否则就无法进行选择了。 100
• 这样,信息在中间节点上要先进行解密, 以获得路由信息和检验码,进行路由选 择、差错检测,然后再被加密,送至下 一链路。同一节点上的解密和加密密钥 是不同的。 101
节点 1 节点 2 M M L 1 M M C 1 E 1 C 2 D 1 节点n 节点 3 E 2 L 2 Cn-1 D 2 E 3 Ln-1 Dn 链路加密 102
• 节点加密:是为解决数据在节点中是明 文的缺点的加密方式。在中间节点装有 加密/解密保护装置,由该装置完成一 个密钥向另一个密钥的变换。因而该方 式使得在节点内也不会出现明文。 103
• 但该方式与链路加密一样,都存在一个 共同缺点:即也需要公共网络提供商配 合,修改他们的交换节点,增加安全单 元或保密装置。 104
• 端—端加密:是传输数据在应用层上完 成加密的。端—端加密是对两个用户之 间传输的数据提供连续的安全保护。数 据在初始节点上被加密,直到目的节点 时才能被解密,在中间节点和链路上数 据均以密文形式传输。 105
• 只有在发送端和接收端才有加密和解密 设备,中间各节点不需要有密码设备。 • 因为信息的报头为路径选择信息,各中 间节点虽不进行解密,但必须检查报头 信息,所以路径选则信息不能被加密, 必须是明文。 • 所以,端--端加密只能对信息的正文(报 文)进行加密,而不能对报头加密。 106
节点 1 P 节点 2 节点 3 节点n C E C L 1 L 2 Ln-1 P C D 端—端加密 107
• 几种通信加密方式的比较:常用的通信 加密方式是链路加密和端—端加密。链 路加密是对整个链路的通信采取保护措 施,而端—端加密则是对整个网络系统 采取保护措施。 108
• 链路加密: ü 方式比较简单,实现也较容易,只要把两 个密码设备安装在两个节点间的线路上, 并装有同样的密钥即可; ü 链路加密时由于报头在链路上均被加密, 因此可防止报文流量的分析攻击。链路加 密可屏蔽掉报文的频率、长度等特征,从 而使攻击者得不到这些特征值; 109
ü 一个链路被攻破,而不影响其它链路上 的信息; ü 一个中间节点被攻破时,通过该节点的 所有信息将被泄露; ü 加密和维护费用大,用户费用很难合理 分配。 110
• 端—端加密: ü 可提供灵活的保密手段,如主机到主机、 主机到终端、主机到进程的保护; ü 并非所有用户发送的所有信息都需要加 密。只有需要保护的信息的发收方才需 设置加密,个人用户可选择安装所需设 备,因此加密费用低,加密费用能准确 分摊; 111
ü 加密在网络应用层实现,可提高网络加 密功能的灵活性; ü 因为不能对路由信息进行加密,所以容 易受到信息流量分析攻击; ü 整个通信过程中各分支相互关联,任何 局部受到破坏时将影响整个通信过程。 112
• 通信加密方式的选择 ü 在需要保护的链路数较多,或在文件保 护、邮件保护、支持端—端加密的远程 调用等通信场合,宜采用端—端加密方 式,以利于降低成本,又能支持高灵活 性、高保密性通信; ü 在多个网络互连的环境中,宜采用端— 端加密方式; 113
ü 在需要保护的链路数少,且要求实时通信、 不支持端—端加密远程调用等场合,宜采用 链路加密方式; ü 在需要抵御信息流量分析场合,可考虑采用 链路加密和端—端加密相结合的加密方式。 链路加密是对路由信息进行的,端—端加密 是对端—端传输的报文进行的。 ü 总的来说,与链路加密相比,端—端加密具 有成本低、保密性强、灵活性好等优点,应 用场合较多。 114
七、 鉴别与认证技术 1. 鉴别技术概述 v 网络安全系统的一个重要方面是防止非法用 户对系统的主动攻击,如伪造信息、篡改信 息等。 v 鉴别(Authentication 也叫验证)是防止主动攻 击的重要技术。鉴别的目的就是验证一个用 户身份的合法性和用户间传输信息的完整性 与真实性。 115
v 鉴别包括报文鉴别和身份验证。 ü 报文鉴别是为了确保数据的完整性和 真实性,对报文的来源、时间性及目 的地进行验证。 ü 身份验证是验证进入网络系统者是否 是合法用户,以防非法用户访问系统 v 报文鉴别和身份验证可采用数字签名技 术及其他技术来实现。 116
v 鉴别过程通常涉及到加密和密钥交换。 加密可使用对称密钥加密、非对称密钥 加密或两种加密方式的混合。 v 鉴别的方式一般有用户帐户名/口令验证、 摘要算法验证、基于PKI(公钥基础设施) 验证等。 117
v 验证、授权和访问控制都与网络实体安 全有关。虽然用户身份只与验证有关, 但很多情况下还讨论授权和访问控制。 v 授权和访问控制都是在成功的验证之后 进行的。 v 目前验证使用的技术有:数字签名、报 文验证和身份验证。 118
v 身份验证一般涉及两个过程,一个是识 别,一个是验证。 v 识别是指要明确访问者是谁,即要对网 络中的每个合法用户都有识别能力。要 保证识别的有效性,必须保证能代表用 户身份的识别符的惟一性。 119
v 验证就是指在访问者声明自己的身份后, 系统要对他所申明的身份进行验证,以 防假冒。 v 识别信息一般是非秘密的,如信用卡上 的用户名、身份证号码等;而验证信息 一般是秘密的,如信用卡的密码。 120
v 身份验证的方法有:口令验证、个人持证验 证和个人特征验证三类。 ü 口令法最简单,系统开销也小,但其安 全性也最差; ü 持证为个人持有物,如钥匙、磁卡、智 能卡等。它比口令法安全性好,但验证 系统比较复杂。磁卡常和PIN一起使用; 121
ü 以个人特征进行验证时,可有多种技 术为验证机制提供基础,如指纹识别、 声音识别、血型识别、视网膜识别等。 个人特征方法验证的安全性最好,但 验证系统相应地也最复杂。 122
v 报文鉴别: 报文鉴别是指在两个建立 通信联系的用户之间,每个用户对收到 的信息验证其真伪,以保证所收到的信 息是真实的。 v 报文鉴别又称完整性校验,在银行业称 为消息认证,在OSI安全模型中称为封装。 123
v 报文鉴别过程必须确定以下三个内容: ü 报文是由指定的发送方产生的; ü 报文内容没有被修改过; ü 报文是按已传送的相同顺序收到的。 v 第一种确定由数字签名来完成,后两种确 定又分为报文内容和报文时间性验证。 124
报文的内容验证: v 同加密一样,鉴别也需要一个好的鉴别 算法,但它的设计比加密算法要容易些。 鉴别算法也需要有一个保密密钥,整个 鉴别过程的安全性完全取决于密钥的安 全性。鉴别算法的强度要求与加密算法 的一样,也要能经受住攻击。 125
v 报文鉴别的常用方法是使用信息摘要或 散列函数进行。 v 信息摘要是在任意大的信息中产生固定 长度的摘要,而其特性是无法找到两个 摘要相同的信息。因此,可以将比信息 小得多的摘要看作与完整信息是等同的。 126
报文的时间性验证 v 信息的时间性验证可使用报文鉴别码和电 子时间戳技术。 v 验证报文是否以发方传输的顺序被接收, 可采用这样的方法:假定时变量T是接收 方和发送方预先约定的,那么,只要在每 份报文中加入T,就可以建立起报文传输 顺序。 127
v 具体方法是:每当用户A要给B发送报文时,A先 通知B,B就给A发送一个随机数T,A在发送给B 的报文中加入T,那么B就可以通过验证在报文 中返回的T值来确认报文是否是按正确顺序接收 的。在这种方法中,由于T是在需要时产生的一 个变量,并且包含在报文正文中,所以只有在接 收方同时对报文内容进行鉴别时,这种方法才起 作用。 128
单向散列函数概要 v Hash : 哈希函数,杂凑函数,散列函数 h= H(m) v. H 具有如下特性: 可以操作任何大小的报文m 给定任意长度的m,产生的h的长度固定 给定m计算h=H(m) 是容易的 给定h寻找m,使得H(m)=h是困难的 寻找任何(x, y),x≠y,使得H(x) =H(y)是计算上 不可行的 129
MD 5 算法简介 v Ron Rivest 设计, RFC 1321 v 经历过MD 2, MD 4 不同的版本 v 对任意输入均产生 128 bit的输出 v 基于32位的简单操作,易于软件实现 v 简单而紧凑,没有复杂的过程和大数据结构 v 适合微处理器实现(特别是Intel) 130
其他散列算法 v SHA 1的全称是Secure Hash Algorithm(安全 哈希算法) v MD 5 算法的哈希值大小为 128 位。而SHA 1 算法的哈希值大小为 160 位。两种算法都是 不可逆。 131
2004年 8月17日的美国加州圣巴巴拉的 国际密码学会议(Crypto’ 2004)上, 来自中国山东大学的王小云教授做了 破译MD 5、HAVAL-128、 MD 4和 RIPEMD算法的报告,公布了MD系列 算法的破解结果。宣告了固若金汤的 世界通行密码标准MD5的堡垒轰然倒 塌,引发了密码学界的轩然大波。 132
2. 数字签名 v 数字签名(Digital Signature)可解决手写 签名中的签字人否认签字或其他人伪造 签字等问题。因此,被广泛用于银行的 信用卡系统、电子商务系统、电子邮件 以及其他需要验证、核对信息真伪的系 统中。 133
v 手 签名是模拟的,因人而异,而数字签 名数字式的(0、1数字串),因信息而异。 v 数字签名的功能: ü 收方能够确认发方的签名,但不能伪造; ü 发方发出签过名的信息后,不能再否认; ü 收方对收到的签名信息也不能否认; ü 一旦收发方出现争执,仲裁者可有充足的证 据进行评判。 134
(1) 直接方式的数字签名 v 一个由公开密钥密码体制实现的数字签 名过程如下图 A M S S M 签名 验证 KAd B KAe 135
v 一个典型的由公开密钥密码体制实现的、 带有加密功能的数字签名过程如下图 M A 签 名 KAd S 加密 (E) KBe C 信道 解密 (D) KBd S 验 证 M B KAe 136
v 数字签名的主要方式是:报文的发送方 利用单向散列函数从报文文本中生成一 个 128位的散列值(或信息摘要)。发 送方用自己的私人密钥对这个散列值进 行加密来形成发送方的数字签名。然后, 该数字签名将作为报文的附件和报文一 起发送给报文的接收方。 137
v 报文的接收方首先从接收到的原始报文 中计算出 128位的散列值(或信息摘要), 接着再用发送方的公开密钥来对报文附 加的数字签名进行解密得到原散列值。 如果这两个散列值相同,则接收方就能 确认该数字签名是发送方的。通过数字 签名能够实现对原始报文的鉴别。 138
(2) 数字签名过程 v 只有加入数字签名及验证才能真正实现信 息在公开网络上的安全传输。加入数字签 名和验证的文件传输过程如下(见下图) v 发送方首先用Hash函数从原报文中得到数 字签名,然后采用公开密钥算法用自己的 私有密钥对数字签名进行加密,并把加密 后的数字签名附加在要发送的报文后面; 139
接收方B 发送方A 明文 明文 密文 单向函数 信息 摘要 签名后的 信息摘要 密文 签名后的 信息摘要 比 较 单向函数 签名后的 信息摘要 信息 摘要 用A的私 用A的公 钥签名 钥验证 数字签名和验证过程 140
v 发送方选择一个会话密钥对原报文进行加密, 并把加密后的文件通过网络传输到接收方;再 用接收方的公开密钥对会话密钥进行加密,并 通过网络把加密后会话密钥传输到接收方; v 接受方使用自己的私有密钥对会话密钥信息进 行解密,得到会话密钥的明文; v 接收方再用会话密钥对加密了的报文进行解密, 得到原报文; 141
v 接收方用发送方的公开密钥对加密的数 字签名进行解密,得到数字签名的明文; v 接收方再用得到的原报文和Hash函数重 新计算数字签名,并与解密后的数字签 名进行对比。如果两个数字签名是相同 的,说明文件在传输过程中没有被破坏, 信息完整。 142
(3) 数字签名算法和技术 v 目前,广泛应用的数字签名算法主要有三种: RSA签名、DSS(数字签名系统)签名和 Hash签名。这三种算法可单独使用,也可综 合在一起使用。数字签名是通过密码算法对 数据进行加、解密变换实现的。 143
(4) 数字签名与信息加密的区别 v 数字签名的加密/解密过程和信息(报文)的加 密/解密过程虽然都可使用公开密钥算法,但实 现过程正好相反,使用的密钥对也不同。数字 签名使用的是发送方的密钥对,发送方用自己 的私有密钥进行加密(签名),接收方用发送 方的公开密钥进行解密(验证)。这是一个一 对多的关系:任何拥有发送方公开密钥的人都 可以验证数字签名的正确性。 144
v 而信息(报文)的加密/解密则使用的是接收方的 密钥对,这是多对一的关系:任何知道接收方 公开密钥的人都可以向接收方发送加密信息, 只有唯一拥有接收方私有密钥的人才能对信息 解密。在实用过程中,通常一个用户拥有两个 密钥对,一个密钥对用来对数字签名进行加密/ 解密,一个密钥对用来对信息(报文)进行加密/ 解密。这种方式提供了更高的安全性。 145
v 数字签名大多采用非对称密钥加密算法, 它能保证发送信息的完整性、身份的真 实性和不可否认性,而数字加密采用了 对称密钥加密算法和非对称密钥加密算 法相结合的方法,它能保证发送信息的 保密性。 v 数字签名和信息加密过程的区别比较明 显(如下图所示)。 146
数字签名 验证 加密 发 送 者 解密 使用发送者的私钥 使用发送者的公钥 加密 接 收 者 解密 数据加密 数据解密 使用接收者的公钥 使用接收者的私钥 数字签名与数据加密的区别 147
3. 公钥基础设施(PKI) 签发证书、证书回收列表 PKI是用于发放公开密 钥的一种渠道 v CA(证书授权中心) v RA(注册) v Directory CA RA 注册 大量的查询操作 少量的插入、删除和修 改 用户 用户 148
CA认证 v 验证通信中使用的密钥对是否就是用户的 密钥对,要使用证书验证。 v 证书(Certification)或凭证是一种特殊的签 名信息。它包含用户特异名字、公钥和有 效期。它是由CA(Certificate Authority 验 证中心)进行签名得到的(发放的)。 149
v CA的英文全称是Certificate Authority,即证 书授权中心,也叫认证中心。CA作为权威 的、可信赖的第三方,是发放、管理、废除 数字证书的机构。其作用是检查证书持有者 身份的合法性,并签发证书,以防证书被伪 造或篡改,以及对证书和密钥进行管理,承 担公钥体系中公钥合法性检验的责任。 150
v CA认证中心的主要功能 ü 证书的颁发 ü 证书的更新 ü 证书的查询 ü 证书的归档 ü 证书的作废 151
v CA的签名过程 ü 用户产生密钥对,并将公钥部分及其它 识别信息提交给CA。当CA一旦对用户 的身份表示满意,就取下用户的公钥, 并对它制作信息摘要; ü 信息摘要用CA的专用密钥进行加密,制 作用户公钥的CA签名; 152
ü 用户的公钥和验证用户公钥的CA签名组 合在一起制作数字证书。 数字证书 153
• CA签发并管理正式使用的公钥和与用户相 关联的证书。证书只在某一时间内有效, 因而CA保存一份有效证书及其有效期清单。 有时证书或许要及早废除,因而CA保存一 份废除的证书及有效证书的清单。CA的有 效证书、废除证书或过期证书的清单可提 供给任何一个要获得这种清单的人。 154
v 数字证书:是一个经证书授权中心数字签 名的、包含公开密钥拥有者信息及公开密 钥的文件。最简单的证书包含一个公开密 钥、名称以及CA中心的数字签名。一般 情况下证书中还包括密钥的有效时间,发 证机关(证书授权中心)的名称,该证书的 序列号等信息。 155
v 数字证书主要有以下四大功能 (1) 保证信息的保密性 (2) 保证信息的完整性 (3) 保证交易者身份的真实性 (4) 保证 不可否认 性 156
v数字证书通常有以下类型 ü 个人证书:包括个人安全电子邮件证书和个 人身份证书。 ü 企业证书:包括企业安全电子邮件证书和企 业身份证书。 ü 服务器证书:包括Web服务器证书和服务 器身份证书。 ü 信用卡身份证书:包括消费者证书、商家证 书和支付网关证书。 157
v 数字证书的应用:网络上的行政作业和商 务活动,如发送安全电子邮件、访问安全 站点、网上证券、网上招投标、网上签约、 网上办公、网上缴费、网上纳税等网上安 全电子事务处理和安全电子交易活动。其 应用范围涉及需要身份认证及数据安全的 各个行业。 158
3. 一种网络环境下的密钥管理算法 ----Kerberos v Kerberos的主要功能是解决保密密钥管理与 分发问题。 v Kerberos建立在一个安全的、可信赖的密钥 分配中心(KDC)的概念上。建有KDC的系统 用户只需保管与KDC之间使用的密钥加密密 钥—与KDC通信的密钥即可。 159
v KDC的 作过程: ü 假设A要与B通信,A先向KDC提出 申请与B的联系和通信会话密钥; ü KDC为A和B选择一个会话密钥Ks, 分别用A和B知道的密钥进行加密, 然后分送给A和B; 160
ü A和B得到KDC加密过的信息后,分 别解密之,得到会话密钥Ks ; v 至此,A与B即可用进行通信了。通信结 束后, Ks随即被销毁。 v KDC可以看作一个密钥源,它可以与DES 一起使用,也可以是一个公开密钥源。 161
162
5b800fc7cca0cd9048bbce5be8a148d7.ppt