信息安全概论 段云所 课件 第五章

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

h = H ( M ) = CV L
Y0 ,Y1 ,/ ,YL−1
这里M是由分组

成 如图5. 1所示
Y0
n
Y1
b
n
fn f n
V1=CV0
CV1
CV2
YL-1
b
n
f
CVL-1
n
CVL
图5. 1 迭代型散列函数的结构
8
已经证明如果压缩函数是无碰撞的 则上述方法得到 的Hash函数也是无碰撞的 因此 Hash函数的核心技术是 设计无碰撞的压缩函数 同样 敌手对算法的攻击重点也 是对f 的内部结构的分析 与分组密码一样 f也是由若 干轮处理过程组成 因而对f 的分析需要通过对各轮之 间的比特模式的分析来进行 常常需要先找出f的碰撞
5.1.2 消息认证码
消息认证码 MAC 或称密码检验和 是在一
个密钥的控制下将任意长的消息映射到一个简短的定长数
据分组 并将它附加在消息后 设M 是变长的消息 K是
仅由收发双方共享的密钥 则M的MAC由如下的函数C生

CK(M)
这里
MAC = C K ( M )
是定长的 发送者每次将MAC附加到消息
第五章 消息认证与数字签名
公钥密码体制的一种最重要的应用是数字签名 数字签名通常需要与散列函数结合起来使用 本章先简要 介绍信息认证 然后介绍散列函数 最后介绍数字签名
5.1 信息认证
前面所介绍的对称密码和公钥密码体制 都是围 绕着信息的保密性 即防止第三方获取明文消息而展开 但信息的完整性和抗否认性也是信息安全的重要内容 保 证信息的完整性和抗否认性主要通过信息认证和数字签名 来实现
收者将接受任何输入X并产生输出
如果
X是合法信息M的密文 则Y是信息M的明文 否则 Y将是
毫无意义的二进制比特序列 接收方需要某些自动化措
施 以确定Y是否是合法的明文
假定信息M 的明文可以是任意比特的组合 在这种情 况下 接收方将没有自动的方法来确定收到的 X 是否是合 法信息的密文 因此 需要从所有可能的比特模式的一个 子集中来考虑合法的信息 任何可疑的密文不可能产生合 法的明文 如考虑在106的组合中只有一种是合法的 则从 中随机选择一个比特组合作 为密文能够产生合法的明文的 概率为10 6
字A=67 45 23 01 字B=EF CD AB 89 字C=98 BA DC FE 字D=10 32 54 76 字E=C3 D2 E1 F0 4. 处理512比特分组序列 核心是一个包含四个循 环的模块 每个循环由20个处理步骤组成 如 图5.3所示 四个循环结构相似 但使用不同 的原始逻辑函数 分别为f1 f2 f3和f4
5
5.2.1 散列函数的性质
散列函数的目的是为文件 消息或其他的分组 数据产生 指纹 要用于消息认证 散列函数H必须具有 如下性质
1. H能用于任何大小的数据分组 能产生定长的输出 2. 对于任何给定的x H(x)要相对易于计算 3. 对任何给定的散列码h 寻找x使得H(x)=h在计算上
不可行 单向性 4. 对任何给定的分组x 寻找不等于x的y 使得H(x)=
A
B
C
D
E
f2, K, W[20,┅,39] 20个步骤
A
B
C
D
E
f3, K, W[40,┅,59] 20个步骤
A
B
C
D
E
f4, K, W[60,┅,79] 20个步骤
32
+
+
+
+
+
160
CVq+1
图5.3 SHA-1的一个512比特分组处理过程
11
注意这些值以高位字节优先的方式存储 因而初
始化的值 十六进制表示 存储如 下
该散列函数的中间及最终结果 该缓存可以表示
为 5个32比特的寄存器(A,B,C,D,E)

些寄存器被初始化为以下32比特长的整数(十六
进制表示 :
A=67452301
B=EFCDAB89
C=98BADCFE
D=10325476
E=C3D2E1F0
Yq
512
CVq 160
A
B
C
D
E 32
f1, K, W[0,┅,19] 20个步骤
1
z对称密码体制加密认证
设想发送者A用只有他与接收者B知道的密钥K加 密信
息发送给接收者 因为A是除B以外惟一拥有密钥K的一方
而敌手不知道如何改变密文来产生明文中所期望的变化
因此 B 知道解密得到的明文是否被改变 这样 对称
加密就提供了消息认证功能
现在考虑如下情况 给Y定= D解K(密X)函数D和密钥K 接
4 填充是必须的 求
即使消息长度已满足要
仍然需要填充 如消息长度为448比特 则需要 填
充512比特 使其长度变为960 因此 填充 的比
10
2. 附加消息的长度 将原始消息的长度用64比特的 二进制数表示后所得的 64 比特数据附加在第1 步所得的数据后面 高位字节优先
3. 初始化MD缓存 使用一个160比特的缓存来存放
这种散列函数将输入数据分为个固定长度为比特 的分组 输入数据除了消息和附加的填充数据外 还附加 了消息的长度值 附加的这个长度值将增加对手攻击的难 度 对手要么找出两个具有相同长度的消息 使得它们加 上各自长度值后散列值相同 要么找出两个不同长度的消 息 这样的消息加上各自的长度值后必须散列成相同的 值
一般说来 产生认证符的方法可以分为以下三 类
信息加密 将明文加密后以密文作为认证符
公开函
消息认证码 MAC 用一个密钥控制的
为密码校
数作用后产生的固定长度的数值 也称
验和
散列函数 一个将任意长度的消息映射为定长的
散列值的函数 以散列值作为认证符
5.1.1 加密认证
信息加密能够提供一种认证措施 这里分对称密码 体制加密和公钥密码体制加密来介绍
什么
前面谈到对称密码体制的加密能够提供认证 为
还要使用独立的消息认证码呢 主要理由如下
行广
1 一些应用要求将相同的消息对许多终端进
证 这种方
播 仅使用一个终端负责消息的认
相应的密
法既经济又实用 负责认证的终端有
确 其它
钥 并执行认证操作 如果认证不正
终端将收到它发来的告警
2 接收方有繁重的任务 无法负担大量的解
中接
收者通过重新计算MAC来对消息进行认证 如果收到的M
AC与计算得出的MAC相同 则接收者可以认为
3
–消息未被更改过 因为任意更改消息而没有更改 MAC的行为 都将导致收到的MAC与用更改过的消息 计算出的MAC不相同 而且 由于使用的密
–钥只有收发双方知道 其它方无法更改MAC与更改 后的消息对应
由于f 是压缩函数 因而一定存在碰撞 这就 要求在设计f时使找出f的碰撞在计算上是不可行的 5.2.1 安全散列算法 SHA
Ron Rivest于1990 提出了一个称为 MD4的散列 函数 它的设计没有基于任何假设和密码体制 这种直接 构造方法受到人们的广泛关注 不久 它的一些缺点也被 提出
为了增强安全性和克服MD4的缺陷 Rivest于1991年 对 MD4 作了六点改进 并将改进后的算法称为MD5 MD5曾 经是使用最普遍的安全散列算法 然而 随着对MD5分析 的深入 从密码分析和强力攻击的角度来看 MD5也被认为 是易受攻击的 因此 有必要用一个具有更长的散列码和 更能抗击已知密码分析攻击的散列函数来代替流行的M D5 已经有两个散列码长为160 比特的替代者SHA-1和RIP EMD-160 本书只介绍SHA-1
7
散列算法中重复使用一个压缩函数f f产生一
个比特的输出 F 有两个输入 一个是前一步的比特输
出 称为链接变量 另一个是比特的分组 算法开始时
链接变量要指定一个初始值VI 最终的链接变量值便是散
列值 通常有 因此称f为压缩函数 该散列算法可以表
达如下
CV 0 = V I
CVi = f (CVi−1,Yi−1) 1≤ i ≤ L
–消息来自与他共享密钥的发送者 由于使用的密 钥只有收发双方知道 其它方无法产生对应的M AC MAC函数类似于加密函数 主要区别在于MAC 函数
不需要可逆性而加密函数必须是可逆的 因此 认证函数 比加密函数更不易破解
应当注意 因为收发双方共享相同的密钥 上述 过程只提供认证而不提供保密 也不能提供数字签名
H(y)在计算上不可行 弱抗冲突 5. 寻找任何的(x,y) 使得H(x)=H(y)在计算上不可行
(强 抗冲突
为可
注意到前两个性质使得散列函数用于消息认证成
能 第2和第3个性质保证H的单向性 给定消息产生散列
值很简单 反过来由散列值产生消息计算上不可行 这保
证了攻击者无法通过散列值恢复消息 第 4个性质保证 了
然后计算出散列值 并将散列值附在消息M后发 送
出去 由于秘密值S 并不发送 攻击者无法产生 假消

5.2.2 散列函数的结构
为了对不定长的输入产生定长的输出 并且最后的结 果要与所有的字节相关 大多数安全的散列函数都采用了 分块填充链接的模式 其结构是迭代型的 这种散列函数 模型最早由 Merkle于1989年提出 在Ron Rivest于1990提 出 的MD4中也采用了这种模型 下面介绍这种模型的一般结 构
制加密的情形在原理上是相同的 与前面的一样 在明文
中也要求有某种内部结构 因此 接收者能够识别正常的
明文和随机的比特串
采用这样的结构既可提供了认证 也可提供数字 签名
因为只有A 能够产生该密文 其它任何一方都不能产生 该密文 从效果上看 A 已经用私钥对信息的明文进行了 签名
应当注意 只用私钥加密不能提供保密性 因为 任何人只要有A的公开密钥 就能够对该密文进行解密
散列函数 (又称杂凑函数)是对不定长的输入产生 定长 输出的一种特殊函h数= H ( M )
其中M是变长的消息 h=H M 是定长的散列值 或称 为消息摘要 散列函数H 是公开的 散列值在信源处被 附加在消息上 接收方通过重新计算散列值来保证消息未 被窜改 由于函数本身公开 传送过程中对散列值需要另 外的加密保护 如果没有对散列值的保护 窜改者可以在 修改消息的同时修改散列值 从而使散列值的认证功能失 效
如图5.2所示 SHA-1算法的输入为不超过264比特长的任意
消息 输出为一个160 比特长的消息摘要 输入按512比 特长的分组进行处理 处理过程如下
1. 对消息进行填充 在原始的消息后面附加填充 比特串 使得数据长度 比特数 与 448模512 同余
即使得填充后的数据长度为512的整数倍减 去6
安全散列算法 SHA Secure Hash Algorithm 由 美国国 家标准和技术协会 NIST 提出 并作为联邦信息处理标 准 FIPS PUB 180 在1993年公布 1995年又发布了一个 修订版FIPS PUB 180-1 通常称为SHA-1 SHA是基于MD4 算
9
1到512比特的填充
攻击者无法在不修改散列值的情况下替换消息而不被察觉
第5个性质比第4个性质更强 保证了一种被称为生日攻
击的方法无法奏效 散列码不同的使用方式可以提供不同要求的消息认证
这里列出如下四种
6
使用对称密码体制对附加了散列码的消息进行加密 这种方式与用对称密码体制加密附加检错码的消息在 结构上是一致的 认证的原理也相同 而且这种方式 也提供保密性 使用对称密码体制仅对附加的散列码进行加密 在这 种方式中 如果将散列函数与加密函数合并为一个整 体函数实际上就是一个MAC函数 使用公钥密码体制用发方的私有密钥仅对散列码进行 加密 这种方式与第二种方式一样提供认证 而且还 提供数字签名 发送者将消息 M与通信各方共享的一个秘密值S 串接
为了实现用自动的方法来确定收到的 Y 是否是合 法信息的密文 可以采用的一种方法是强制明文有某种结 构 这种结构易于识别但不能复制并且不求助于加密 例 如 可以在加密以前对消息附加检错码
2
z公钥密码体制加密认证
使用公开密钥加密信息的明文只能提供保密而不能提
供认证 因为任何人都可以得到公钥 为了提供认证 发 送者 A用私钥对信息的明文进行加密 任意接收者都可以 用 A的公钥解密 这种方式提供的认证措施与对称密码体
4
活性
5.2
3 有一些应用 只关心信息的完整性而不需要保 密性
4 认证与保密的分离能够提供结构上的灵
5 有些应用场合期望在超过接收时间后继续延长 保护期限 同时允许处理消息的内容 如果使 用加密 解密后保护就失效了 这样 消息只 能在传输过程中得到完整性保护 但在目标系 统中却办不到
散列 Hash 函数
L 512比特=N 32比特 K比特 消息
消息长度
100 0
512比特 Y0
512比特 Y1
512
512
160
HSHA
160
HSHA
CV0=VI
CV1
512比特

Yq
512
160
HSHA
来自百度文库
CVq
图5.2 SHA-1的框图
512比特

YL-1
512
160
HSHA
CVL-1
消息摘要 (160比特)
z SHA-1描述
相关文档
最新文档