课件制作人:谢希仁计算机网络第 9 章 计算机网络的安全课件制作人:谢希仁第 9 章 计算机网络的安全
*9.1 网络安全问题概述
9.1.1 计算机网络面临的安全性威胁
9.1.2 计算机网络安全的内容
9.1.3 一般的数据加密模型
*9.2 常规密钥密码体制
9.2.1 替代密码与置换密码
9.2.2 数据加密标准 DES
课件制作人:谢希仁第 9 章 计算机网络的安全(续)
*9.3 公开密钥密码体制
9.3.1 公开密钥密码体制的特点
9.3.2 RSA 公开密钥密码体制
9.3.3 数字签名
*9.4 报文鉴别
*9.5 密钥分配课件制作人:谢希仁第 9 章 计算机网络的安全(续)
9.6 电子邮件的加密
9.6.1 PGP
9.6.2 PEM
9.7 链路加密与端到端加密
9.7.1 链路加密
9.7.2 端到端加密课件制作人:谢希仁第 9 章 计算机网络的安全(续)
9.8 因特网商务中的加密
9.8.1 安全插口层 SSL
9.8.2 安全电子交易 SET
9.9 因特网的网络层安全协议族 IPsec
*9.10 防火墙课件制作人:谢希仁
9.1 网络安全问题概述
9.1.1 计算机网络面临的安全性威胁
计算机网络上的通信面临以下的四种威胁:
(1) 截获 —— 从网络上窃听他人的通信内容。
(2) 中断 —— 有意中断他人在网络上的通信。
(3) 篡改 —— 故意篡改网络上传送的报文。
(4) 伪造 —— 伪造信息在网络上传送。
截获信息的攻击称为 被动攻击,而更改信息和拒绝用户使用资源的攻击称为 主动攻击 。
课件制作人:谢希仁对网络的被动攻击和主动攻击截获 篡改 伪造中断被动攻击 主 动 攻 击目的站源站源站源站源站 目的站目的站目的站课件制作人:谢希仁被动攻击和主动攻击
在被动攻击中,攻击者只是观察和分析某一个协议数据单元 PDU 而不干扰信息流 。
主动攻击是指攻击者对某个连接中通过的 PDU 进行各种处理 。
更改报文流
拒绝报文服务
伪造连接初始化课件制作人:谢希仁
(1) 防止析出报文内容;
(2) 防止通信量分析;
(3) 检测更改报文流;
(4) 检测拒绝报文服务;
(5) 检测伪造初始化连接。
计算机网络通信安全的目标有可能发生分组丢失课件制作人:谢希仁
(1) 计算机病毒 —— 会“传染”其他程序的程序,
“传染”是通过修改其他程序来把自身或其变种复制进去完成的。
(2) 计算机蠕虫 —— 通过网络的通信功能将自身从一个结点发送到另一个结点并启动运行的程序。
(3) 特洛伊木马 —— 一种程序,它执行的功能超出所声称的功能。
(4) 逻辑炸弹 —— 一种当运行环境满足某种特定条件时执行其他特殊功能的程序。
恶意程序 (rogue program)
课件制作人:谢希仁
9.1.2 计算机网络安全的内容
保密性
安全协议的设计
接入控制课件制作人:谢希仁
9.1.3 一般的数据加密模型
E
加密算法
D
解密算法加密密钥 K 解密密钥 K
明文 X 明文 X
密文 Y = EK(X)
截取者截获 篡改密钥源安全信道课件制作人:谢希仁一些重要概念
密码编码学 (cryptography)是密码体制的设计学,
而 密码分析学 (cryptanalysis)则是在未知密钥的情况下从密文推演出明文或密钥的技术。密码编码学与密码分析学合起来即为 密码学 (cryptology)。
如果不论截取者获得了多少密文,但在密文中都没有足够的信息来惟一地确定出对应的明文,则这一密码体制称为 无条件安全的,或称为 理论上是不可破的 。
如果密码体制中的密码不能被可使用的计算资源破译,则这一密码体制称为在 计算上是安全的 。
课件制作人:谢希仁
9.2 常规密钥密码体制
所谓常规密钥密码体制,即加密密钥与解密密钥是相同的密码体制。
这种加密系统又称为 对称密钥系统 。我们先介绍在常规密钥密码体制中的两种最基本的密码。
课件制作人:谢希仁
9.2.1 替代密码与置换密码
替代密码 (substitution cipher)的原理可用一个例子来说明。(密钥是 3)
abcdefghijklmnopqrstuvwxyz
DEFGHIJKLMNOPQRSTUVWXYZABC
caesar cipher FDHVDU FLSKHU
明文密文明文 c 变成了密文 F
课件制作人:谢希仁
9.2.1 替代密码与置换密码
替代密码 (substitution cipher)的原理可用一个例子来说明。(密钥是 3)
abcdefghijklmnopqrstuvwxyz
DEFGHIJKLMNOPQRSTUVWXYZABC
caesar cipher FDHVDU FLSKHU
明文密文明文 a 变成了密文 D
课件制作人:谢希仁
9.2.1 替代密码与置换密码
替代密码 (substitution cipher)的原理可用一个例子来说明。(密钥是 3)
abcdefghijklmnopqrstuvwxyz
DEFGHIJKLMNOPQRSTUVWXYZABC
caesar cipher FDHVDU FLSKHU
明文密文明文 e 变成了密文 H
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
置换密码
置换密码 (transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。
密钥顺序明文根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。
同理,E 为第 2,H 为第 3,……,
R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
置换密码
置换密码 (transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。
密钥顺序明文根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。
同理,E 为第 2,H 为第 3,……,
R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
置换密码
置换密码 (transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。
密钥顺序明文根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。
同理,E 为第 2,H 为第 3,……,
R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
置换密码
置换密码 (transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。
密钥顺序明文根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。
同理,E 为第 2,H 为第 3,……,
R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
置换密码
置换密码 (transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。
密钥顺序明文根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。
同理,E 为第 2,H 为第 3,……,
R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
置换密码
置换密码 (transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。
密钥顺序明文根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。
同理,E 为第 2,H 为第 3,……,
R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
密文的得出密钥顺序明文先读顺序为 1 的明文列,即 aba
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
密文的得出密钥顺序明文再读顺序为 2 的明文列,即 cnu
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
密文的得出密钥顺序明文再读顺序为 3 的明文列,即 aio
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
密文的得出密钥顺序明文再读顺序为 4 的明文列,即 tet
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
密文的得出密钥顺序明文再读顺序为 5 的明文列,即 tgf
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
密文的得出密钥顺序明文最后读顺序为 6 的明文列,即 ksr
因此密文就是,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端收到密文后按列写下密钥顺序明文先写下第 1 列密文 aba
收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端收到密文后按列写下密钥顺序明文再写下第 2 列密文 cnu
收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端收到密文后按列写下密钥顺序明文再写下第 3 列密文 aio
收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端收到密文后按列写下密钥顺序明文再写下第 4 列密文 tet
收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端收到密文后按列写下密钥顺序明文再写下第 5 列密文 tgf
收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端收到密文后按列写下密钥顺序明文最后写下第 6 列密文 ksr
收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端从密文解出明文密钥顺序明文最后按行读出明文收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端从密文解出明文密钥顺序明文最后按行读出明文收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端从密文解出明文密钥顺序明文最后按行读出明文收到的密文,abacnuaiotettgfksr
得出明文,attackbeginsatfour
课件制作人:谢希仁序列密码与分组密码
序列码体制是将明文 X 看成是连续的比特流 (或字符流 )x1x2…,并且用密钥序列
K? k1k2… 中的第 i 个元素 ki 对明文中的
xi 进行加密,即
E ( X ) E (x )E (x )K k1 1 k2 2
课件制作人:谢希仁序列密码体制密钥序列产生器种子
I0
发端
ki
密钥序列产生器种子
I0
收端
ki
密文序列明文序列 明文序列xi xiyi yi?
在开始工作时种子 I0 对密钥序列产生器进行初始化。
按照模 2 进行运算,得出:
y E (x ) x ki ki i i i
(9-1)
课件制作人:谢希仁序列密码体制密钥序列产生器种子
I0
发端
ki
密钥序列产生器种子
I0
收端
ki
密文序列明文序列 明文序列xi xiyi yi?
在收端,对 yi 的解密算法为:
(9-2)D (y ) y k (x k ) k x
ki i i i i i i i
序列密码又称为密钥流密码。
课件制作人:谢希仁序列密码体制的保密性
序列密码体制的保密性完全在于 密钥的随机性 。
如果密钥是真正的随机数,则这种体制就是理论上不可破的。这也可称为 一次一密乱码本体制 。
严格的一次一密乱码本体制所需的密钥量不存在上限,很难实用化。
密码学家试图模仿这种一次一密乱码本体制。目前常使用 伪随机序列 作为密钥序列。关键是序列的周期要足够长,且序列要有很好的随机性(这很难寻找)。
课件制作人:谢希仁分组密码
它将明文划分成固定的 n 比特的数据组,然后以组为单位,在密钥的控制下进行一系列的线性或非线性的变化而得到密文 。 这就是 分组密码 。
分组密码一次变换一组数据 。
分组密码算法的一个重要特点就是:当给定一个密钥后,若明文分组相同,那么所变换出密文分组也相同 。
分组密码的一个重要优点是不需要同步课件制作人:谢希仁分组密码体制输入输出加密算法密钥明文输入输出解密算法密钥明文
n bit
n bit
n bit
n bit
密文密文课件制作人:谢希仁
9.2.2 数据加密标准 DES
数据加密标准 DES 属于常规密钥密码体制,是一种分组密码。
在加密前,先对整个明文进行分组。每一个组长为 64 bit。
然后对每一个 64 bit 二进制数据进行加密处理,
产生一组 64 bit 密文数据。
最后将各组密文串接起来,即得出整个的密文。
使用的密钥为 64 bit(实际密钥长度为 56 bit,
有 8 bit 用于奇偶校验 )。
DES 加密标准
L0 R0
L1 = R0
IP
L2 = R1
L15 = R14
R1 = L0? f (R0,K1)
R2 = L1? f (R1,K2)
R15 = L14? f (R14,K15)
L16 = R15R16 = L15? f (R15,K16)
IP?1
f?
f
f
输出 密文 Y (64 bit)
明文 X (64 bit)输入
K16 (48 bit)
K2 (48 bit)
K1 (48 bit)
X0 的左半边
(32 bit)
X0 (64 bit) X0 的右半边
(32 bit)
R16L16 (64 bit)
课件制作人:谢希仁
DES 的明显缺点
DES 实际上就是一种单字符替代,而这种字符的长度是 64 bit。
也就是说,对于 DES 算法,相同的明文就产生相同的密文 。 这对 DES 的安全性来说是不利的 。
为了提高 DES 的安全性,可采用加密分组链接的方法 。
课件制作人:谢希仁加密分组的链接
X0
Y0
X1
Y1
X2
Y2
X3
Y3
X0
Y0
X1
Y1
X2
Y2
X3
Y3
… …
初始向量初始向量密钥密钥明文明文密文密文加密 解密
E E E E
D D D D
课件制作人:谢希仁
DES 的保密性
DES 的保密性仅取决于对密钥的保密,而算法是公开的。尽管人们在破译 DES 方面取得了许多进展,但至今仍未能找到比穷举搜索密钥更有效的方法。
DES 是世界上第一个公认的实用密码算法标准,
它曾对密码学的发展做出了重大贡献。
目前较为严重的问题是 DES 的密钥的长度。
现在已经设计出来搜索 DES 密钥的专用芯片。
课件制作人:谢希仁三重 DES (Triple DES)
三重 DES 使用两个密钥,执行三次 DES 算法。
下图中的方框 E 和 D 分别表示执行加密和解密算法。因此加密时是 E-D-E,解密时是 D-E-
D。
E D E
K1 K2 K1
明文 密文
D E D
K1 K2 K1
密文 明文加密 解密课件制作人:谢希仁
9.3 公开密钥密码体制
9.3.1 公开密钥密码体制的特点
公开密钥密码体制使用 不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
公开密钥密码体制的产生主要是因为两个方面的原因,一是由于常规密钥密码体制的密钥分配问题,另一是由于对数字签名的需求。
现有三种公开密钥密码体制,其中最著名的是
RSA 体制,它基于数论中大数分解问题的体制,
由美国三位科学家 Rivest,Shamir 和 Adleman 于
1976 年提出并在 1978 年正式发表的。
课件制作人:谢希仁加密密钥与解密密钥
在公开密钥密码体制中,加密密钥 (即公开密钥 ) PK 是公开信息,而解密密钥 (即秘密密钥 ) SK 是需要保密的。
加密算法 E 和解密算法 D 也都是公开的。
虽然秘密密钥 SK 是由公开密钥 PK 决定的,但却不能根据 PK 计算出 SK。
课件制作人:谢希仁应当注意
任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量。在这方面,公开密钥密码体制并不具有比传统加密体制更加优越之处。
由于目前公开密钥加密算法的开销较大,
在可见的将来还看不出来要放弃传统的加密方法。公开密钥还需要密钥分配协议,具体的分配过程并不比采用传统加密方法时更为简单。
课件制作人:谢希仁公开密钥算法的特点
(1) 发送者用加密密钥 PK 对明文 X 加密后,在接收者用解密密钥 SK 解密,即可恢复出明文,或写为:
DSK(EPK(X))? X (9-5)
解密密钥是接收者专用的秘密密钥,对其他人都保密 。
此外,加密和解密的运算可以对调,即
EPK(DSK(X))? X
课件制作人:谢希仁公开密钥算法的特点
(2) 加密密钥是公开的,但不能用它来解密,即
DPK(EPK(X))? X (9-6)
(3) 在计算机上可容易地产生成对的 PK 和 SK。
(4) 从已知的 PK 实际上不可能推导出 SK,即从
PK 到 SK 是“计算上不可能的”。
(5) 加密和解密算法都是公开的。
课件制作人:谢希仁公开密钥密码体制接收者发送者
E
加密算法
D
解密算法加密密钥 PK 解密密钥 SK
明文 X 密文 Y = EPK(X)
密钥对产生源明文 X = DSK(EPK(X))
课件制作人:谢希仁
9.3.2 RSA 公开密钥密码体制
RSA 公开密钥密码体制所根据的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积分解开则极其困难。
每个用户有两个密钥:加密密钥 PK? {e,n} 和解密密钥 SK? {d,n}。
用户把加密密钥公开,使得系统中任何其他用户都可使用,而对解密密钥中的 d 则保密。
N 为两个大素数 p 和 q 之积(素数 p 和 q 一般为 100 位以上的十进数),e 和 d 满足一定的关系。当敌手已知 e 和 n 时并不能求出 d。
课件制作人:谢希仁
(1) 加密算法
若用整数 X 表示明文,用整数 Y 表示密文( X
和 Y 均小于 n),则加密和解密运算为:
加密,Y? Xe mod n (9-7)
解密,X? Yd mod n (9-8)
课件制作人:谢希仁
(2) 密钥的产生
① 计算 n。用户秘密地选择两个大素数 p 和 q,
计算出 n? pq。 n 称为 RSA算法的模数。明文必须能够用小于 n 的数来表示。实际上 n 是几百比特长的数。
② 计算?(n)。用户再计算出 n 的欧拉函数
(n)? (p? 1)(q? 1) (9-9)
(n) 定义为不超过 n 并与 n 互素的数的个数。
③ 选择 e。用户从 [0,?(n)? 1]中选择一个与?(n)
互素的数 e 作为公开的加密指数。
课件制作人:谢希仁
(2) 密钥的产生(续)
④ 计算 d。用户计算出满足下式的 d
ed? 1 mod?(n) (9-10)
作为解密指数。
⑤ 得出所需要的公开密钥和秘密密钥:
公开密钥(即加密密钥) PK? {e,n}
秘密密钥(即解密密钥) SK? {d,n}
课件制作人:谢希仁
(3) 正确性的例子说明设选择了两个素数,p? 7,q? 17。
计算出 n? pq? 7? 17? 119。
计算出?(n)? (p? 1)(q? 1)? 96。
从 [0,95]中选择一个与 96 互素的数 e。
选 e? 5。然后根据 (9-10)式,
5d? 1 mod 96
解出 d。不难得出,d? 77,因为 ed? 5? 77? 385
4? 96? 1? 1 mod 96。
于是,公开密钥 PK? (e,n)? {5,119},
秘密密钥 SK? {77,119}。
(3) 正确性的例子说明(续)
对明文进行加密。先把明文划分为分组,使每个 明文分组的二进制值不超过 n,即不超过 119。
设明文 X? 19。用公开密钥加密时,先计算
Xe? 195? 2476099。
再除以 119,得出商为 20807,余数为 66。这就是对应于明文 19 的密文 Y 的值。
在用秘密密钥 SK? {77,119}进行解密时,先计算
Yd? 6677? 1.27...? 10140。
再除以 119,得出商为 1.06...? 10138,余数为 19。
此余数即解密后应得出的明文 X。
课件制作人:谢希仁
RSA 算法举例明文
19 19 = = 20807
公开密钥 = {5,119}
加密
5 2476099
119 及余数
66
密文
66 66 = = 1.06?10
秘密密钥 = {77,119}
解密
77 1.27...? 10
119 及余数
19
明文
19
140
138
课件制作人:谢希仁
9.3.3 数字签名
数字签名必须保证以下三点:
(1) 接收者能够核实发送者对报文的签名;
(2) 发送者事后不能抵赖对报文的签名;
(3) 接收者不能伪造对报文的签名。
现在已有多种实现各种数字签名的方法。
但采用公开密钥算法要比采用常规密钥算法更容易实现。
课件制作人:谢希仁数字签名的实现
D
SK PK
用公开密钥核实签名用秘密密钥进行签名
X
发送者 A 接收者 B
DSK(X) X
E
课件制作人:谢希仁数字签名的实现
B 用已知的 A 的公开加密密钥得出 EPKA(DSKA(X))
X。因为除 A 外没有别人能具有 A 的解密密钥
SKA,所以除 A 外没有别人能产生密文 DSKA(X)。
这样,B 相信报文 X 是 A 签名发送的。
若 A 要抵赖曾发送报文给 B,B 可将 X 及 DSKA(X)
出示给第三者。第三者很容易用 PKA去证实 A 确实发送 X 给 B。反之,若 B 将 X 伪造成 X‘,则 B
不能在第三者前出示 DSKA(X’)。这样就证明了 B
伪造了报文。
课件制作人:谢希仁具有保密性的数字签名
D
SKA PKA
用公开密钥核实签名用秘密密钥签名
X
发送者 A 接收者 B
DSKA(X) X
EE
PKB
用公开密钥加密
EPKB(DSKA(X))
D
SKB
用秘密密钥解密
DSKA(X)
密文课件制作人:谢希仁
9.4 报文鉴别
(message authentication)
在信息的安全领域中,对付被动攻击的重要措施是加密,而对付主动攻击中的篡改和伪造则要用报文鉴别。
报文鉴别使得通信的接收方能够验证所收到的报文(发送者和报文内容、发送时间、序列等)
的真伪。
使用加密就可达到报文鉴别的目的。但在网络的应用中,许多报文并不需要加密。应当使接收者能用很简单的方法鉴别报文的真伪。
课件制作人:谢希仁报文摘要 MD
(Message Digest)
发送端将报文 m 经过报文摘要算法运算后得出固定长度的报文摘要 H(m)。然后对 H(m) 进行加密,得出
EK(H(m)),并将其追加在报文 m 后面发送出去。
接收端将 EK(H(m)) 解密还原为 H(m),再将收到的报文进行报文摘要运算,看得出的是否为此 H(m)。
如不一样,则可断定收到的报文不是发送端产生的。
报文摘要的优点就是:仅对短得多的定长报文摘要 H(m)
进行加密比对整个长报文 m 进行加密要简单得多。
M 和 EK(H(m)) 合在一起是不可伪造的,是可检验的和不可抵赖的。
课件制作人:谢希仁报文摘要算法必须满足以下两个条件
任给一个报文摘要值 x,若想找到一个报文 y 使得 H(y) = x,则在计算上是不可行的。
若想找到任意两个报文 x 和 y,使得
H(x) = H(y),则在计算上是不可行的。
课件制作人:谢希仁报文摘要的实现明文
M
MD
经过报文摘要运算 H
密钥
K
MD
H
比较
(是否一致?)
发送 明文
M
明文
M
得出报文摘要 加密的报文摘要加密的报文摘要附加在明文后面密钥
K
得出解密的报文摘要发端 收端收端算出的报文摘要课件制作人:谢希仁
9.5 密钥分配
密钥管理包括:密钥的产生、分配、注入、验证和使用。本节只讨论密钥的分配。
密钥分配是密钥管理中最大的问题。密钥必须通过最安全的通路进行分配。
目前常用的密钥分配方式是设立 密钥分配中心 KDC (Key Distribution),通过
KDC 来分配密钥。
课件制作人:谢希仁常规密钥分配协议用户 B
用户 主密钥
A KA
B KB
… …
用户私有主密钥文件
KDC用户 A
A 和 B 用密钥 R1 通信
③ EKB(A,R1) B 知道了密钥 R1
① EKA(A,B)
② EKA (R1,EKB(A,R1))A 知道了密钥 R1
课件制作人:谢希仁
9.6 电子邮件的加密
9.6.1 PGP (Pretty Good Privacy)
PGP 是一个完整的电子邮件安全软件包,包括加密、鉴别、电子签名和压缩等技术。
PGP 并没有使用什么新的概念,它只是将现有的一些算法如 MD5,RSA,以及 IDEA 等综合在一起而已。
虽然 PGP 已被广泛使用,但 PGP 并不是因特网的正式标准。
课件制作人:谢希仁
PGP 的加密过程
MD5 RSAZIP IDEA base64
RSA
A 的明文 P
P
P1 P1.Z
KM
至因特网
ASCII
文本
B 的 RSA
公开密钥 EB
KM,IDEA 的加密密钥(一次一密)
:拼接
P 与 H 拼接
H
压缩后的 P1
用密钥 KM 加密后的 P1.Z 与用密钥 EB 加密后的 KM 拼接
A 的 RSA
秘密密钥 DA
课件制作人:谢希仁
PGP 的报文格式
EB
的标识符
MD5
散列函数
KM
EA
的标识符签字首部时间类型报文首部文件名时间报 文报文部分签字部分密钥部分
IDEA 加密,压缩
Base64 编码的 PGP 报文用 DA 加密用 EB 加密课件制作人:谢希仁
9.6.2 PEM
(Privacy Enhanced Mail)
PEM 是因特网的邮件加密建议标准,由四个 RFC 文档来描述:
(1) RFC 1421:报文加密与鉴别过程
(2) RFC 1422:基于证书的密钥管理
(3) RFC 1423,PEM 的算法、工作方式和标识符
(4) RFC 1424:密钥证书和相关的服务课件制作人:谢希仁
PEM 的主要特点
PEM 的功能和 PGP 的差不多,都是对基于
[RFC 822]的电子邮件进行加密和鉴别。
每个报文都是使用一次一密的方法进行加密,
并且密钥也是放在报文中一起在网络上传送。
对密钥还必须加密。可以使用 RSA 或三重
DES。
PEM 有比 PGP 更完善的密钥管理机制。由证书管理机构 (Certificate Authority)发布证书。
课件制作人:谢希仁
9.7 链路加密与端到端加密
9.7.1 链路加密
在采用链路加密的网络中,每条通信链路上的加密是独立实现的。通常对每条链路使用不同的加密密钥。
D1 E2
明文 X
结点 1
D2 E3
明文 X
结点 2
Dn
明文 X
用户 B
E1
明文 X
用户 A
E1(X)
链路 1
E2(X)
链路 2
En(X)
链路 n
E3(X)
密文 密文 密文 密文相邻结点之间具有相同的密钥,因而密钥管理易于实现 。 链路加密对用户来说是透明的,因为加密的功能是由通信子网提供的 。
课件制作人:谢希仁链路加密
由于报文是以明文形式在各结点内加密的,所以结点本身必须是安全的。
所有的中间结点 (包括可能经过的路由器 )未必都是安全的。因此必须采取有效措施。
链路加密的最大缺点是在中间结点暴露了信息的内容。
在网络互连的情况下,仅采用链路加密是不能实现通信安全的。
课件制作人:谢希仁
9.7.2 端到端加密
端到端加密是在源结点和目的结点中对传送的
PDU 进行加密和解密,报文的安全性不会因中间结点的不可靠而受到影响。
结点 1 结点 2
DK
明文 X
结点 n
EK
明文 X
结点 0
EK(X)
链路 1
EK(X)
链路 2
EK(X)
链路 n
端到端链路传送的都是密文在端到端加密的情况下,PDU 的控制信息部分 (如源结点地址,目的结点地址,路由信息等 )不能被加密,
否则中间结点就不能正确选择路由 。
课件制作人:谢希仁
9.8 因特网商务中的加密
9.8.1 安全插口层 SSL
SSL 又称为 安全套接层 (Secure Socket Layer),
可对万维网客户与服务器之间传送的数据进行加密和鉴别。
SSL 在双方的联络阶段协商将使用的加密算法和密钥,以及客户与服务器之间的鉴别。
在联络阶段完成之后,所有传送的数据都使用在联络阶段商定的会话密钥。
SSL 不仅被所有常用的浏览器和万维网服务器所支持,而且也是运输层安全协议 TLS (Transport
Layer Security)的基础。
课件制作人:谢希仁安全插口层 SSL 的位置
TCP
应用层安全插口层运输层
HTTP IMAP
SSL 功能标准插口在发送方,SSL 接收应用层的数据 ( 如 HTTP
或 IMAP 报文 ),对数据进行加密,然后将加了密的数据送往 TCP 插口 。
在接收方,SSL 从 TCP 插口读取数据,解密后将数据交给应用层 。
课件制作人:谢希仁
SSL 提供以下三个功能
(1) SSL 服务器鉴别 允许用户证实服务器的身份。具有 SS L功能的浏览器维持一个表,上面有一些可信赖的 认证中心 CA (Certificate
Authority)和它们的公开密钥。
(2) 加密的 SSL 会话 客户和服务器交互的所有数据都在发送方加密,在接收方解密。
(3) SSL 客户鉴别 允许服务器证实客户的身份。
课件制作人:谢希仁
9.8.2 安全电子交易 SET
(Secure Electronic Transaction)
安全电子交易 SET 是专为在因特网上进行安全支付卡交易的协议。
SET 的主要特点是:
(1) SET 是专为与支付有关的报文进行加密的。
(2) SET 协议涉及到三方,即顾客、商家和商业银行。
所有在这三方之间交互的敏感信息都被加密。
(3) SET 要求这三方都有证书。在 SET 交易中,商家看不见顾客传送给商业银行的信用卡号码。
课件制作人:谢希仁
9.9 因特网的网络层安全协议族 IPsec
1,IPsec 与安全关联 SA
IPsec 就是,IP安全 (Security)协议”的缩写。
网络层保密是指所有在 IP 数据报中的数据都是加密的。此外,网络层还应提供源站鉴别,即当目的站收到 IP 数据报时,
能确信这是从该数据报的源 IP地址的主机发来的。
课件制作人:谢希仁
IPsec 中最主要的两个部分
鉴别首部 AH (Authentication Header):
AH提供源站鉴别和数据完整性,但不能保密。
封装安全有效载荷 ESP (Encapsulation
Security Payload),ESP 比 AH 复杂得多,它提供源站鉴别、数据完整性和保密。
课件制作人:谢希仁安全关联 SA
(Security Association)
在使用 AH 或 ESP 之前,先要从源主机到目的主机建立一条网络层的逻辑连接。
此逻辑连接叫做安全关联 SA。
IPsec 就将传统的因特网无连接的网络层转换为具有逻辑连接的层。
课件制作人:谢希仁
2,安全关联
安全关联是一个单向连接。它由一个三元组惟一地确定,包括:
(1) 安全协议(使用 AH 或 ESP)的标识符
(2) 此单向连接的源 IP 地址
(3) 一个 32 bit 的连接标识符,称为 安全参数索引 SPI (Security Parameter Index)
对于一个给定的安全关联 SA,每一个 Ipsec
数据报都有一个存放 SPI 的字段。通过此 SA
的所有数据报都使用同样的 SPI 值。
2,鉴别首部 AH
在使用鉴别首部 AH 时,将 AH 首部插在原数据报数据部分的前面,同时将 IP 首部中的协议字段置为 51。
在传输过程中,中间的路由器都不查看 AH 首部。
当数据报到达目的站时,目的站主机才处理 AH
字段,以鉴别源主机和检查数据报的完整性。
IP 首部 AH 首部 TCP/UDP 报文段协议 = 51
可鉴别的 IP 数据报原 数据报的数据部分
AH 首部
(1) 下一个首部 (8 bit)。标志紧接着本首部的下一个首部的类型(如 TCP 或 UDP)。
(2) 有效载荷长度 (8 bit),即鉴别数据字段的长度,
以 32 bit 字为单位。
(3) 安全参数索引 SPI (32 bit)。标志安全关联。
(4) 序号 (32 bit)。鉴别数据字段的长度,以 32 bit字为单位。
(5) 保留 (16 bit)。为今后用。
(6) 鉴别数据 (可变 )。为 32 bit 字的整数倍,它包含了经数字签名的报文摘要。因此可用来鉴别源主机和检查 IP 数据报的完整性。
课件制作人:谢希仁
3,封装安全有效载荷 ESP
在 ESP 首部中有标识一个安全关联的安全参数索引 SPI (32 bit),和序号 (32 bit)。
在 ESP 尾部中有下一个首部( 8 bit,作用和 AH
首部的一样)。 ESP 尾部和原来数据报的数据部分一起进行加密,因此攻击者无法得知所使用的运输层协议。
ESP 的鉴别数据和 AH 中的鉴别数据是一样的。
因此,用 ESP 封装的数据报既有鉴别源站和检查数据报完整性的功能,又能提供保密。
课件制作人:谢希仁在 IP 数据报中的
ESP 的各字段
IP 首部 ESP 首部 TCP/UDP 报文段协议 = 50
可鉴别的 保密 的 IP 数据报原 数据报的数据部分
ESP 尾部 ESP 鉴别数据加密 的部分鉴别 的部分课件制作人:谢希仁
9.10 防火墙 (firewall)
防火墙 是由软件、硬件构成的系统,用来在两个网络之间实施接入控制策略。接入控制策略是由使用防火墙的单位自行制订的,为的是可以最适合本单位的需要。
防火墙内的网络称为,可信赖的网络,(trusted network),而将外部的因特网称为,不可信赖的网络,(untrusted network)。
防火墙可用来解决内联网和外联网的安全问题。
课件制作人:谢希仁防火墙在互连网络中的位置
G 内联网可信赖的网络不可信赖的网络 分组过滤路由器 R
分组过滤路由器 R应用网关外局域网 内局域网防火墙因特网课件制作人:谢希仁防火墙的功能
防火墙的功能有两个,阻止 和 允许 。
,阻止”就是阻止某种类型的通信量通过防火墙(从外部网络到内部网络,或反过来)。
,允许”的功能与“阻止”恰好相反。
防火墙必须能够识别通信量的各种类型。
不过在大多数情况下防火墙的主要功能是“阻止”。
课件制作人:谢希仁防火墙技术一般分为两类
(1) 网络级防火墙 —— 用来防止整个网络出现外来非法的入侵。属于这类的有分组过滤和授权服务器。
前者检查所有流入本网络的信息,然后拒绝不符合事先制订好的一套准则的数据,而后者则是检查用户的登录是否合法。
(2) 应用级防火墙 —— 从应用程序来进行接入控制。
通常使用应用网关或代理服务器来区分各种应用。
例如,可以只允许通过访问万维网的应用,而阻止 FTP 应用的通过。
*9.1 网络安全问题概述
9.1.1 计算机网络面临的安全性威胁
9.1.2 计算机网络安全的内容
9.1.3 一般的数据加密模型
*9.2 常规密钥密码体制
9.2.1 替代密码与置换密码
9.2.2 数据加密标准 DES
课件制作人:谢希仁第 9 章 计算机网络的安全(续)
*9.3 公开密钥密码体制
9.3.1 公开密钥密码体制的特点
9.3.2 RSA 公开密钥密码体制
9.3.3 数字签名
*9.4 报文鉴别
*9.5 密钥分配课件制作人:谢希仁第 9 章 计算机网络的安全(续)
9.6 电子邮件的加密
9.6.1 PGP
9.6.2 PEM
9.7 链路加密与端到端加密
9.7.1 链路加密
9.7.2 端到端加密课件制作人:谢希仁第 9 章 计算机网络的安全(续)
9.8 因特网商务中的加密
9.8.1 安全插口层 SSL
9.8.2 安全电子交易 SET
9.9 因特网的网络层安全协议族 IPsec
*9.10 防火墙课件制作人:谢希仁
9.1 网络安全问题概述
9.1.1 计算机网络面临的安全性威胁
计算机网络上的通信面临以下的四种威胁:
(1) 截获 —— 从网络上窃听他人的通信内容。
(2) 中断 —— 有意中断他人在网络上的通信。
(3) 篡改 —— 故意篡改网络上传送的报文。
(4) 伪造 —— 伪造信息在网络上传送。
截获信息的攻击称为 被动攻击,而更改信息和拒绝用户使用资源的攻击称为 主动攻击 。
课件制作人:谢希仁对网络的被动攻击和主动攻击截获 篡改 伪造中断被动攻击 主 动 攻 击目的站源站源站源站源站 目的站目的站目的站课件制作人:谢希仁被动攻击和主动攻击
在被动攻击中,攻击者只是观察和分析某一个协议数据单元 PDU 而不干扰信息流 。
主动攻击是指攻击者对某个连接中通过的 PDU 进行各种处理 。
更改报文流
拒绝报文服务
伪造连接初始化课件制作人:谢希仁
(1) 防止析出报文内容;
(2) 防止通信量分析;
(3) 检测更改报文流;
(4) 检测拒绝报文服务;
(5) 检测伪造初始化连接。
计算机网络通信安全的目标有可能发生分组丢失课件制作人:谢希仁
(1) 计算机病毒 —— 会“传染”其他程序的程序,
“传染”是通过修改其他程序来把自身或其变种复制进去完成的。
(2) 计算机蠕虫 —— 通过网络的通信功能将自身从一个结点发送到另一个结点并启动运行的程序。
(3) 特洛伊木马 —— 一种程序,它执行的功能超出所声称的功能。
(4) 逻辑炸弹 —— 一种当运行环境满足某种特定条件时执行其他特殊功能的程序。
恶意程序 (rogue program)
课件制作人:谢希仁
9.1.2 计算机网络安全的内容
保密性
安全协议的设计
接入控制课件制作人:谢希仁
9.1.3 一般的数据加密模型
E
加密算法
D
解密算法加密密钥 K 解密密钥 K
明文 X 明文 X
密文 Y = EK(X)
截取者截获 篡改密钥源安全信道课件制作人:谢希仁一些重要概念
密码编码学 (cryptography)是密码体制的设计学,
而 密码分析学 (cryptanalysis)则是在未知密钥的情况下从密文推演出明文或密钥的技术。密码编码学与密码分析学合起来即为 密码学 (cryptology)。
如果不论截取者获得了多少密文,但在密文中都没有足够的信息来惟一地确定出对应的明文,则这一密码体制称为 无条件安全的,或称为 理论上是不可破的 。
如果密码体制中的密码不能被可使用的计算资源破译,则这一密码体制称为在 计算上是安全的 。
课件制作人:谢希仁
9.2 常规密钥密码体制
所谓常规密钥密码体制,即加密密钥与解密密钥是相同的密码体制。
这种加密系统又称为 对称密钥系统 。我们先介绍在常规密钥密码体制中的两种最基本的密码。
课件制作人:谢希仁
9.2.1 替代密码与置换密码
替代密码 (substitution cipher)的原理可用一个例子来说明。(密钥是 3)
abcdefghijklmnopqrstuvwxyz
DEFGHIJKLMNOPQRSTUVWXYZABC
caesar cipher FDHVDU FLSKHU
明文密文明文 c 变成了密文 F
课件制作人:谢希仁
9.2.1 替代密码与置换密码
替代密码 (substitution cipher)的原理可用一个例子来说明。(密钥是 3)
abcdefghijklmnopqrstuvwxyz
DEFGHIJKLMNOPQRSTUVWXYZABC
caesar cipher FDHVDU FLSKHU
明文密文明文 a 变成了密文 D
课件制作人:谢希仁
9.2.1 替代密码与置换密码
替代密码 (substitution cipher)的原理可用一个例子来说明。(密钥是 3)
abcdefghijklmnopqrstuvwxyz
DEFGHIJKLMNOPQRSTUVWXYZABC
caesar cipher FDHVDU FLSKHU
明文密文明文 e 变成了密文 H
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
置换密码
置换密码 (transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。
密钥顺序明文根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。
同理,E 为第 2,H 为第 3,……,
R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
置换密码
置换密码 (transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。
密钥顺序明文根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。
同理,E 为第 2,H 为第 3,……,
R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
置换密码
置换密码 (transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。
密钥顺序明文根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。
同理,E 为第 2,H 为第 3,……,
R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
置换密码
置换密码 (transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。
密钥顺序明文根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。
同理,E 为第 2,H 为第 3,……,
R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
置换密码
置换密码 (transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。
密钥顺序明文根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。
同理,E 为第 2,H 为第 3,……,
R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
置换密码
置换密码 (transposition cipher)则是按照某一规则重新排列消息中的比特或字符顺序。
密钥顺序明文根据英文字母在 26 个字母中的先后顺序,我们可以得出密钥中的每一个字母的相对先后顺序。因为密钥中没有 A 和 B,因此 C 为第 1。
同理,E 为第 2,H 为第 3,……,
R 为第 6。于是得出密钥字母的相对先后顺序为 145326。
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
密文的得出密钥顺序明文先读顺序为 1 的明文列,即 aba
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
密文的得出密钥顺序明文再读顺序为 2 的明文列,即 cnu
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
密文的得出密钥顺序明文再读顺序为 3 的明文列,即 aio
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
密文的得出密钥顺序明文再读顺序为 4 的明文列,即 tet
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
密文的得出密钥顺序明文再读顺序为 5 的明文列,即 tgf
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
密文的得出密钥顺序明文最后读顺序为 6 的明文列,即 ksr
因此密文就是,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端收到密文后按列写下密钥顺序明文先写下第 1 列密文 aba
收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端收到密文后按列写下密钥顺序明文再写下第 2 列密文 cnu
收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端收到密文后按列写下密钥顺序明文再写下第 3 列密文 aio
收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端收到密文后按列写下密钥顺序明文再写下第 4 列密文 tet
收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端收到密文后按列写下密钥顺序明文再写下第 5 列密文 tgf
收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端收到密文后按列写下密钥顺序明文最后写下第 6 列密文 ksr
收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端从密文解出明文密钥顺序明文最后按行读出明文收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端从密文解出明文密钥顺序明文最后按行读出明文收到的密文,abacnuaiotettgfksr
课件制作人:谢希仁
CIPHER
145326
attack
begins
atfour
接收端从密文解出明文密钥顺序明文最后按行读出明文收到的密文,abacnuaiotettgfksr
得出明文,attackbeginsatfour
课件制作人:谢希仁序列密码与分组密码
序列码体制是将明文 X 看成是连续的比特流 (或字符流 )x1x2…,并且用密钥序列
K? k1k2… 中的第 i 个元素 ki 对明文中的
xi 进行加密,即
E ( X ) E (x )E (x )K k1 1 k2 2
课件制作人:谢希仁序列密码体制密钥序列产生器种子
I0
发端
ki
密钥序列产生器种子
I0
收端
ki
密文序列明文序列 明文序列xi xiyi yi?
在开始工作时种子 I0 对密钥序列产生器进行初始化。
按照模 2 进行运算,得出:
y E (x ) x ki ki i i i
(9-1)
课件制作人:谢希仁序列密码体制密钥序列产生器种子
I0
发端
ki
密钥序列产生器种子
I0
收端
ki
密文序列明文序列 明文序列xi xiyi yi?
在收端,对 yi 的解密算法为:
(9-2)D (y ) y k (x k ) k x
ki i i i i i i i
序列密码又称为密钥流密码。
课件制作人:谢希仁序列密码体制的保密性
序列密码体制的保密性完全在于 密钥的随机性 。
如果密钥是真正的随机数,则这种体制就是理论上不可破的。这也可称为 一次一密乱码本体制 。
严格的一次一密乱码本体制所需的密钥量不存在上限,很难实用化。
密码学家试图模仿这种一次一密乱码本体制。目前常使用 伪随机序列 作为密钥序列。关键是序列的周期要足够长,且序列要有很好的随机性(这很难寻找)。
课件制作人:谢希仁分组密码
它将明文划分成固定的 n 比特的数据组,然后以组为单位,在密钥的控制下进行一系列的线性或非线性的变化而得到密文 。 这就是 分组密码 。
分组密码一次变换一组数据 。
分组密码算法的一个重要特点就是:当给定一个密钥后,若明文分组相同,那么所变换出密文分组也相同 。
分组密码的一个重要优点是不需要同步课件制作人:谢希仁分组密码体制输入输出加密算法密钥明文输入输出解密算法密钥明文
n bit
n bit
n bit
n bit
密文密文课件制作人:谢希仁
9.2.2 数据加密标准 DES
数据加密标准 DES 属于常规密钥密码体制,是一种分组密码。
在加密前,先对整个明文进行分组。每一个组长为 64 bit。
然后对每一个 64 bit 二进制数据进行加密处理,
产生一组 64 bit 密文数据。
最后将各组密文串接起来,即得出整个的密文。
使用的密钥为 64 bit(实际密钥长度为 56 bit,
有 8 bit 用于奇偶校验 )。
DES 加密标准
L0 R0
L1 = R0
IP
L2 = R1
L15 = R14
R1 = L0? f (R0,K1)
R2 = L1? f (R1,K2)
R15 = L14? f (R14,K15)
L16 = R15R16 = L15? f (R15,K16)
IP?1
f?
f
f
输出 密文 Y (64 bit)
明文 X (64 bit)输入
K16 (48 bit)
K2 (48 bit)
K1 (48 bit)
X0 的左半边
(32 bit)
X0 (64 bit) X0 的右半边
(32 bit)
R16L16 (64 bit)
课件制作人:谢希仁
DES 的明显缺点
DES 实际上就是一种单字符替代,而这种字符的长度是 64 bit。
也就是说,对于 DES 算法,相同的明文就产生相同的密文 。 这对 DES 的安全性来说是不利的 。
为了提高 DES 的安全性,可采用加密分组链接的方法 。
课件制作人:谢希仁加密分组的链接
X0
Y0
X1
Y1
X2
Y2
X3
Y3
X0
Y0
X1
Y1
X2
Y2
X3
Y3
… …
初始向量初始向量密钥密钥明文明文密文密文加密 解密
E E E E
D D D D
课件制作人:谢希仁
DES 的保密性
DES 的保密性仅取决于对密钥的保密,而算法是公开的。尽管人们在破译 DES 方面取得了许多进展,但至今仍未能找到比穷举搜索密钥更有效的方法。
DES 是世界上第一个公认的实用密码算法标准,
它曾对密码学的发展做出了重大贡献。
目前较为严重的问题是 DES 的密钥的长度。
现在已经设计出来搜索 DES 密钥的专用芯片。
课件制作人:谢希仁三重 DES (Triple DES)
三重 DES 使用两个密钥,执行三次 DES 算法。
下图中的方框 E 和 D 分别表示执行加密和解密算法。因此加密时是 E-D-E,解密时是 D-E-
D。
E D E
K1 K2 K1
明文 密文
D E D
K1 K2 K1
密文 明文加密 解密课件制作人:谢希仁
9.3 公开密钥密码体制
9.3.1 公开密钥密码体制的特点
公开密钥密码体制使用 不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
公开密钥密码体制的产生主要是因为两个方面的原因,一是由于常规密钥密码体制的密钥分配问题,另一是由于对数字签名的需求。
现有三种公开密钥密码体制,其中最著名的是
RSA 体制,它基于数论中大数分解问题的体制,
由美国三位科学家 Rivest,Shamir 和 Adleman 于
1976 年提出并在 1978 年正式发表的。
课件制作人:谢希仁加密密钥与解密密钥
在公开密钥密码体制中,加密密钥 (即公开密钥 ) PK 是公开信息,而解密密钥 (即秘密密钥 ) SK 是需要保密的。
加密算法 E 和解密算法 D 也都是公开的。
虽然秘密密钥 SK 是由公开密钥 PK 决定的,但却不能根据 PK 计算出 SK。
课件制作人:谢希仁应当注意
任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量。在这方面,公开密钥密码体制并不具有比传统加密体制更加优越之处。
由于目前公开密钥加密算法的开销较大,
在可见的将来还看不出来要放弃传统的加密方法。公开密钥还需要密钥分配协议,具体的分配过程并不比采用传统加密方法时更为简单。
课件制作人:谢希仁公开密钥算法的特点
(1) 发送者用加密密钥 PK 对明文 X 加密后,在接收者用解密密钥 SK 解密,即可恢复出明文,或写为:
DSK(EPK(X))? X (9-5)
解密密钥是接收者专用的秘密密钥,对其他人都保密 。
此外,加密和解密的运算可以对调,即
EPK(DSK(X))? X
课件制作人:谢希仁公开密钥算法的特点
(2) 加密密钥是公开的,但不能用它来解密,即
DPK(EPK(X))? X (9-6)
(3) 在计算机上可容易地产生成对的 PK 和 SK。
(4) 从已知的 PK 实际上不可能推导出 SK,即从
PK 到 SK 是“计算上不可能的”。
(5) 加密和解密算法都是公开的。
课件制作人:谢希仁公开密钥密码体制接收者发送者
E
加密算法
D
解密算法加密密钥 PK 解密密钥 SK
明文 X 密文 Y = EPK(X)
密钥对产生源明文 X = DSK(EPK(X))
课件制作人:谢希仁
9.3.2 RSA 公开密钥密码体制
RSA 公开密钥密码体制所根据的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积分解开则极其困难。
每个用户有两个密钥:加密密钥 PK? {e,n} 和解密密钥 SK? {d,n}。
用户把加密密钥公开,使得系统中任何其他用户都可使用,而对解密密钥中的 d 则保密。
N 为两个大素数 p 和 q 之积(素数 p 和 q 一般为 100 位以上的十进数),e 和 d 满足一定的关系。当敌手已知 e 和 n 时并不能求出 d。
课件制作人:谢希仁
(1) 加密算法
若用整数 X 表示明文,用整数 Y 表示密文( X
和 Y 均小于 n),则加密和解密运算为:
加密,Y? Xe mod n (9-7)
解密,X? Yd mod n (9-8)
课件制作人:谢希仁
(2) 密钥的产生
① 计算 n。用户秘密地选择两个大素数 p 和 q,
计算出 n? pq。 n 称为 RSA算法的模数。明文必须能够用小于 n 的数来表示。实际上 n 是几百比特长的数。
② 计算?(n)。用户再计算出 n 的欧拉函数
(n)? (p? 1)(q? 1) (9-9)
(n) 定义为不超过 n 并与 n 互素的数的个数。
③ 选择 e。用户从 [0,?(n)? 1]中选择一个与?(n)
互素的数 e 作为公开的加密指数。
课件制作人:谢希仁
(2) 密钥的产生(续)
④ 计算 d。用户计算出满足下式的 d
ed? 1 mod?(n) (9-10)
作为解密指数。
⑤ 得出所需要的公开密钥和秘密密钥:
公开密钥(即加密密钥) PK? {e,n}
秘密密钥(即解密密钥) SK? {d,n}
课件制作人:谢希仁
(3) 正确性的例子说明设选择了两个素数,p? 7,q? 17。
计算出 n? pq? 7? 17? 119。
计算出?(n)? (p? 1)(q? 1)? 96。
从 [0,95]中选择一个与 96 互素的数 e。
选 e? 5。然后根据 (9-10)式,
5d? 1 mod 96
解出 d。不难得出,d? 77,因为 ed? 5? 77? 385
4? 96? 1? 1 mod 96。
于是,公开密钥 PK? (e,n)? {5,119},
秘密密钥 SK? {77,119}。
(3) 正确性的例子说明(续)
对明文进行加密。先把明文划分为分组,使每个 明文分组的二进制值不超过 n,即不超过 119。
设明文 X? 19。用公开密钥加密时,先计算
Xe? 195? 2476099。
再除以 119,得出商为 20807,余数为 66。这就是对应于明文 19 的密文 Y 的值。
在用秘密密钥 SK? {77,119}进行解密时,先计算
Yd? 6677? 1.27...? 10140。
再除以 119,得出商为 1.06...? 10138,余数为 19。
此余数即解密后应得出的明文 X。
课件制作人:谢希仁
RSA 算法举例明文
19 19 = = 20807
公开密钥 = {5,119}
加密
5 2476099
119 及余数
66
密文
66 66 = = 1.06?10
秘密密钥 = {77,119}
解密
77 1.27...? 10
119 及余数
19
明文
19
140
138
课件制作人:谢希仁
9.3.3 数字签名
数字签名必须保证以下三点:
(1) 接收者能够核实发送者对报文的签名;
(2) 发送者事后不能抵赖对报文的签名;
(3) 接收者不能伪造对报文的签名。
现在已有多种实现各种数字签名的方法。
但采用公开密钥算法要比采用常规密钥算法更容易实现。
课件制作人:谢希仁数字签名的实现
D
SK PK
用公开密钥核实签名用秘密密钥进行签名
X
发送者 A 接收者 B
DSK(X) X
E
课件制作人:谢希仁数字签名的实现
B 用已知的 A 的公开加密密钥得出 EPKA(DSKA(X))
X。因为除 A 外没有别人能具有 A 的解密密钥
SKA,所以除 A 外没有别人能产生密文 DSKA(X)。
这样,B 相信报文 X 是 A 签名发送的。
若 A 要抵赖曾发送报文给 B,B 可将 X 及 DSKA(X)
出示给第三者。第三者很容易用 PKA去证实 A 确实发送 X 给 B。反之,若 B 将 X 伪造成 X‘,则 B
不能在第三者前出示 DSKA(X’)。这样就证明了 B
伪造了报文。
课件制作人:谢希仁具有保密性的数字签名
D
SKA PKA
用公开密钥核实签名用秘密密钥签名
X
发送者 A 接收者 B
DSKA(X) X
EE
PKB
用公开密钥加密
EPKB(DSKA(X))
D
SKB
用秘密密钥解密
DSKA(X)
密文课件制作人:谢希仁
9.4 报文鉴别
(message authentication)
在信息的安全领域中,对付被动攻击的重要措施是加密,而对付主动攻击中的篡改和伪造则要用报文鉴别。
报文鉴别使得通信的接收方能够验证所收到的报文(发送者和报文内容、发送时间、序列等)
的真伪。
使用加密就可达到报文鉴别的目的。但在网络的应用中,许多报文并不需要加密。应当使接收者能用很简单的方法鉴别报文的真伪。
课件制作人:谢希仁报文摘要 MD
(Message Digest)
发送端将报文 m 经过报文摘要算法运算后得出固定长度的报文摘要 H(m)。然后对 H(m) 进行加密,得出
EK(H(m)),并将其追加在报文 m 后面发送出去。
接收端将 EK(H(m)) 解密还原为 H(m),再将收到的报文进行报文摘要运算,看得出的是否为此 H(m)。
如不一样,则可断定收到的报文不是发送端产生的。
报文摘要的优点就是:仅对短得多的定长报文摘要 H(m)
进行加密比对整个长报文 m 进行加密要简单得多。
M 和 EK(H(m)) 合在一起是不可伪造的,是可检验的和不可抵赖的。
课件制作人:谢希仁报文摘要算法必须满足以下两个条件
任给一个报文摘要值 x,若想找到一个报文 y 使得 H(y) = x,则在计算上是不可行的。
若想找到任意两个报文 x 和 y,使得
H(x) = H(y),则在计算上是不可行的。
课件制作人:谢希仁报文摘要的实现明文
M
MD
经过报文摘要运算 H
密钥
K
MD
H
比较
(是否一致?)
发送 明文
M
明文
M
得出报文摘要 加密的报文摘要加密的报文摘要附加在明文后面密钥
K
得出解密的报文摘要发端 收端收端算出的报文摘要课件制作人:谢希仁
9.5 密钥分配
密钥管理包括:密钥的产生、分配、注入、验证和使用。本节只讨论密钥的分配。
密钥分配是密钥管理中最大的问题。密钥必须通过最安全的通路进行分配。
目前常用的密钥分配方式是设立 密钥分配中心 KDC (Key Distribution),通过
KDC 来分配密钥。
课件制作人:谢希仁常规密钥分配协议用户 B
用户 主密钥
A KA
B KB
… …
用户私有主密钥文件
KDC用户 A
A 和 B 用密钥 R1 通信
③ EKB(A,R1) B 知道了密钥 R1
① EKA(A,B)
② EKA (R1,EKB(A,R1))A 知道了密钥 R1
课件制作人:谢希仁
9.6 电子邮件的加密
9.6.1 PGP (Pretty Good Privacy)
PGP 是一个完整的电子邮件安全软件包,包括加密、鉴别、电子签名和压缩等技术。
PGP 并没有使用什么新的概念,它只是将现有的一些算法如 MD5,RSA,以及 IDEA 等综合在一起而已。
虽然 PGP 已被广泛使用,但 PGP 并不是因特网的正式标准。
课件制作人:谢希仁
PGP 的加密过程
MD5 RSAZIP IDEA base64
RSA
A 的明文 P
P
P1 P1.Z
KM
至因特网
ASCII
文本
B 的 RSA
公开密钥 EB
KM,IDEA 的加密密钥(一次一密)
:拼接
P 与 H 拼接
H
压缩后的 P1
用密钥 KM 加密后的 P1.Z 与用密钥 EB 加密后的 KM 拼接
A 的 RSA
秘密密钥 DA
课件制作人:谢希仁
PGP 的报文格式
EB
的标识符
MD5
散列函数
KM
EA
的标识符签字首部时间类型报文首部文件名时间报 文报文部分签字部分密钥部分
IDEA 加密,压缩
Base64 编码的 PGP 报文用 DA 加密用 EB 加密课件制作人:谢希仁
9.6.2 PEM
(Privacy Enhanced Mail)
PEM 是因特网的邮件加密建议标准,由四个 RFC 文档来描述:
(1) RFC 1421:报文加密与鉴别过程
(2) RFC 1422:基于证书的密钥管理
(3) RFC 1423,PEM 的算法、工作方式和标识符
(4) RFC 1424:密钥证书和相关的服务课件制作人:谢希仁
PEM 的主要特点
PEM 的功能和 PGP 的差不多,都是对基于
[RFC 822]的电子邮件进行加密和鉴别。
每个报文都是使用一次一密的方法进行加密,
并且密钥也是放在报文中一起在网络上传送。
对密钥还必须加密。可以使用 RSA 或三重
DES。
PEM 有比 PGP 更完善的密钥管理机制。由证书管理机构 (Certificate Authority)发布证书。
课件制作人:谢希仁
9.7 链路加密与端到端加密
9.7.1 链路加密
在采用链路加密的网络中,每条通信链路上的加密是独立实现的。通常对每条链路使用不同的加密密钥。
D1 E2
明文 X
结点 1
D2 E3
明文 X
结点 2
Dn
明文 X
用户 B
E1
明文 X
用户 A
E1(X)
链路 1
E2(X)
链路 2
En(X)
链路 n
E3(X)
密文 密文 密文 密文相邻结点之间具有相同的密钥,因而密钥管理易于实现 。 链路加密对用户来说是透明的,因为加密的功能是由通信子网提供的 。
课件制作人:谢希仁链路加密
由于报文是以明文形式在各结点内加密的,所以结点本身必须是安全的。
所有的中间结点 (包括可能经过的路由器 )未必都是安全的。因此必须采取有效措施。
链路加密的最大缺点是在中间结点暴露了信息的内容。
在网络互连的情况下,仅采用链路加密是不能实现通信安全的。
课件制作人:谢希仁
9.7.2 端到端加密
端到端加密是在源结点和目的结点中对传送的
PDU 进行加密和解密,报文的安全性不会因中间结点的不可靠而受到影响。
结点 1 结点 2
DK
明文 X
结点 n
EK
明文 X
结点 0
EK(X)
链路 1
EK(X)
链路 2
EK(X)
链路 n
端到端链路传送的都是密文在端到端加密的情况下,PDU 的控制信息部分 (如源结点地址,目的结点地址,路由信息等 )不能被加密,
否则中间结点就不能正确选择路由 。
课件制作人:谢希仁
9.8 因特网商务中的加密
9.8.1 安全插口层 SSL
SSL 又称为 安全套接层 (Secure Socket Layer),
可对万维网客户与服务器之间传送的数据进行加密和鉴别。
SSL 在双方的联络阶段协商将使用的加密算法和密钥,以及客户与服务器之间的鉴别。
在联络阶段完成之后,所有传送的数据都使用在联络阶段商定的会话密钥。
SSL 不仅被所有常用的浏览器和万维网服务器所支持,而且也是运输层安全协议 TLS (Transport
Layer Security)的基础。
课件制作人:谢希仁安全插口层 SSL 的位置
TCP
应用层安全插口层运输层
HTTP IMAP
SSL 功能标准插口在发送方,SSL 接收应用层的数据 ( 如 HTTP
或 IMAP 报文 ),对数据进行加密,然后将加了密的数据送往 TCP 插口 。
在接收方,SSL 从 TCP 插口读取数据,解密后将数据交给应用层 。
课件制作人:谢希仁
SSL 提供以下三个功能
(1) SSL 服务器鉴别 允许用户证实服务器的身份。具有 SS L功能的浏览器维持一个表,上面有一些可信赖的 认证中心 CA (Certificate
Authority)和它们的公开密钥。
(2) 加密的 SSL 会话 客户和服务器交互的所有数据都在发送方加密,在接收方解密。
(3) SSL 客户鉴别 允许服务器证实客户的身份。
课件制作人:谢希仁
9.8.2 安全电子交易 SET
(Secure Electronic Transaction)
安全电子交易 SET 是专为在因特网上进行安全支付卡交易的协议。
SET 的主要特点是:
(1) SET 是专为与支付有关的报文进行加密的。
(2) SET 协议涉及到三方,即顾客、商家和商业银行。
所有在这三方之间交互的敏感信息都被加密。
(3) SET 要求这三方都有证书。在 SET 交易中,商家看不见顾客传送给商业银行的信用卡号码。
课件制作人:谢希仁
9.9 因特网的网络层安全协议族 IPsec
1,IPsec 与安全关联 SA
IPsec 就是,IP安全 (Security)协议”的缩写。
网络层保密是指所有在 IP 数据报中的数据都是加密的。此外,网络层还应提供源站鉴别,即当目的站收到 IP 数据报时,
能确信这是从该数据报的源 IP地址的主机发来的。
课件制作人:谢希仁
IPsec 中最主要的两个部分
鉴别首部 AH (Authentication Header):
AH提供源站鉴别和数据完整性,但不能保密。
封装安全有效载荷 ESP (Encapsulation
Security Payload),ESP 比 AH 复杂得多,它提供源站鉴别、数据完整性和保密。
课件制作人:谢希仁安全关联 SA
(Security Association)
在使用 AH 或 ESP 之前,先要从源主机到目的主机建立一条网络层的逻辑连接。
此逻辑连接叫做安全关联 SA。
IPsec 就将传统的因特网无连接的网络层转换为具有逻辑连接的层。
课件制作人:谢希仁
2,安全关联
安全关联是一个单向连接。它由一个三元组惟一地确定,包括:
(1) 安全协议(使用 AH 或 ESP)的标识符
(2) 此单向连接的源 IP 地址
(3) 一个 32 bit 的连接标识符,称为 安全参数索引 SPI (Security Parameter Index)
对于一个给定的安全关联 SA,每一个 Ipsec
数据报都有一个存放 SPI 的字段。通过此 SA
的所有数据报都使用同样的 SPI 值。
2,鉴别首部 AH
在使用鉴别首部 AH 时,将 AH 首部插在原数据报数据部分的前面,同时将 IP 首部中的协议字段置为 51。
在传输过程中,中间的路由器都不查看 AH 首部。
当数据报到达目的站时,目的站主机才处理 AH
字段,以鉴别源主机和检查数据报的完整性。
IP 首部 AH 首部 TCP/UDP 报文段协议 = 51
可鉴别的 IP 数据报原 数据报的数据部分
AH 首部
(1) 下一个首部 (8 bit)。标志紧接着本首部的下一个首部的类型(如 TCP 或 UDP)。
(2) 有效载荷长度 (8 bit),即鉴别数据字段的长度,
以 32 bit 字为单位。
(3) 安全参数索引 SPI (32 bit)。标志安全关联。
(4) 序号 (32 bit)。鉴别数据字段的长度,以 32 bit字为单位。
(5) 保留 (16 bit)。为今后用。
(6) 鉴别数据 (可变 )。为 32 bit 字的整数倍,它包含了经数字签名的报文摘要。因此可用来鉴别源主机和检查 IP 数据报的完整性。
课件制作人:谢希仁
3,封装安全有效载荷 ESP
在 ESP 首部中有标识一个安全关联的安全参数索引 SPI (32 bit),和序号 (32 bit)。
在 ESP 尾部中有下一个首部( 8 bit,作用和 AH
首部的一样)。 ESP 尾部和原来数据报的数据部分一起进行加密,因此攻击者无法得知所使用的运输层协议。
ESP 的鉴别数据和 AH 中的鉴别数据是一样的。
因此,用 ESP 封装的数据报既有鉴别源站和检查数据报完整性的功能,又能提供保密。
课件制作人:谢希仁在 IP 数据报中的
ESP 的各字段
IP 首部 ESP 首部 TCP/UDP 报文段协议 = 50
可鉴别的 保密 的 IP 数据报原 数据报的数据部分
ESP 尾部 ESP 鉴别数据加密 的部分鉴别 的部分课件制作人:谢希仁
9.10 防火墙 (firewall)
防火墙 是由软件、硬件构成的系统,用来在两个网络之间实施接入控制策略。接入控制策略是由使用防火墙的单位自行制订的,为的是可以最适合本单位的需要。
防火墙内的网络称为,可信赖的网络,(trusted network),而将外部的因特网称为,不可信赖的网络,(untrusted network)。
防火墙可用来解决内联网和外联网的安全问题。
课件制作人:谢希仁防火墙在互连网络中的位置
G 内联网可信赖的网络不可信赖的网络 分组过滤路由器 R
分组过滤路由器 R应用网关外局域网 内局域网防火墙因特网课件制作人:谢希仁防火墙的功能
防火墙的功能有两个,阻止 和 允许 。
,阻止”就是阻止某种类型的通信量通过防火墙(从外部网络到内部网络,或反过来)。
,允许”的功能与“阻止”恰好相反。
防火墙必须能够识别通信量的各种类型。
不过在大多数情况下防火墙的主要功能是“阻止”。
课件制作人:谢希仁防火墙技术一般分为两类
(1) 网络级防火墙 —— 用来防止整个网络出现外来非法的入侵。属于这类的有分组过滤和授权服务器。
前者检查所有流入本网络的信息,然后拒绝不符合事先制订好的一套准则的数据,而后者则是检查用户的登录是否合法。
(2) 应用级防火墙 —— 从应用程序来进行接入控制。
通常使用应用网关或代理服务器来区分各种应用。
例如,可以只允许通过访问万维网的应用,而阻止 FTP 应用的通过。