08密码学---消息认证及其算法

本章主要讲述了消息认证及其算法,其中包括认证的概念;消息认证的实现:消息加密,消息认证码,散列函数;消息认证算法:信息摘要算法,安全散列算法;数字签名的实现:直接数字签名,仲裁数字签名,时间标记与抗抵赖,多重签名,加密与签名的顺序;认证应用实例。
展开查看详情

1.密码学 导论˙第 8 章 消息认证及其算法 李卫海

2.本章内容 密码学导论 -- 中国科学技术大学 2

3.第一节 认证的概念 密码学导论 -- 中国科学技术大学 3

4.网络环境中常见攻击 Disclosure 泄露 Traffic analysis 流量分析 确定连接频率、持续时间、消息量 Masquerade 伪装 身份假冒 Content modification 内容篡改 插入、删除、转换、修改 Sequence modification 顺序篡改 插入、删除、重排序 Timing modification 计时篡改 延时、重放 Source repudiation 信源抵赖 Destination repudiation 信宿抵赖 加密 认证 密码学导论 -- 中国科学技术大学 4

5.认证服务和功能 认证是证实信息交换过程有效性和合法性的一种手段,包括对通信对象的认证 ( 身份认证 ) 和报文内容的认证 ( 报文认证 ) ,起到数据完整性的保护。包括 信息的真实性 存储数据的真实性 接收方提供回执 发送方不可否认 时效性和公证可能性 认证的目的 防篡改、防伪装、防重放、防抵赖等等 密码学导论 -- 中国科学技术大学 5

6.认证包括两种 消息认证(也称报文认证) 在产生消息时进行: MAC 、 Hash 、数字签名 涉及的是特定实体所声称的特定消息 可以兼具认证信源身份 身份认证(也称实体认证) 在协议执行时进行:身份认证协议 通常涉及的是特定实体所具有某些信息,而非传递的消息 密码学导论 -- 中国科学技术大学 6

7.1 、消息认证 消息认证包括: 消息内容的认证: 保护报文的 完整性 消息源的认证: 确认原始发报人 身份,不可抵赖 消息时间性认证:确认消息的即时性 需要协议来完成,在下一章详细讨论 通常与实际的安全需求结合起来考虑 三种操作可以 提供消息认证 : 消息加密 消息认证码 message authentication code (MAC) Hash 函数 密码学导论 -- 中国科学技术大学 7

8.例 : TCP 包结构 TCP 头结构提供了额外的特定结构,保证密文不被篡改 密码学导论 -- 中国科学技术大学 8

9.帧校验码 (FCS) 用来提供特定结构,确保密文不被篡改 FCS 和加密函数的顺序很关键 密码学导论 -- 中国科学技术大学 9

10.2 、数字签名 接收者可以凭借消息上所附加的某种东西,确认发信人的身份。这种东西,就是签名 签名是独一无二的,是发信人所专有的 签名 一般应具有的性质: 签名应当是 可信的 :签名者知道他所签名的内容 避免不知情 签名。例如,夹在大量文件当中;垫复写纸 签名应当是 不可伪造的 :确实是签名者所为 模仿他人的笔迹 签名应当是 不可重用的 :不能被移做它用 扫描的签名图像可以复制 - 粘贴 签名的 文件应当是不可改变的 :不能篡改内容 文件中的空白区域;甚至空白签名 签名应当是 不可抵赖的 :不能否认其行为 声称他人伪造自己的签名而 抵赖 密码学导论 -- 中国科学技术大学 10

11.数字签名应当拥有 的额外性质: 接收 方能够验证签名人、签名日期和时间 可以 由第三方仲裁,以解决争执 认证 被签名的消息 内容 ,即认证完整性、真实性 数字签名应满足以下条件: 必须与消息相关 必须使用发送者唯一拥有的信息 —— 防止伪造和否认 产生 签名、识别 和验证是容易的 伪造在计算上是不可行的,无论是给定签名伪造消息,或是给定消息伪造签名 可以存储、 拷贝 实现方式:私钥相关运算 密码学导论 -- 中国科学技术大学 11

12.3 、身份认证 身份 认证协议的 内容 识别:明确访问者身份 验证:确认访问者声称的身份 验证已知事物:口令(或密钥)、个人识别码( PIN )、在挑战 -响应协议 中被证实的秘密或私钥 已拥有的事物:磁卡、 IC 卡、智能卡、口令生成器 固有事物:生物特征(指纹、唇纹、虹膜)、下意识行为(笔迹) 身份认证协议关注: 确认通信各方身份,并交换会话密钥(需要的话) 单向认证或相互认证 关键问题包括: 及时性 —— 防止重放攻击 机密性 —— 保护私钥和会话密钥 12 密码学导论 -- 中国科学技术大学

13.身份认证协议的设计 目标: A 可以成功地向 B 认证他自己,即 B 完成协议接受 A 的身份; (不可传递性) B 不能利用和 A 身份认证过程的数据来成功地向第三方 C 假冒 A ; (不可假冒)任何不同于 A 的实体 C ,假冒 A 执行协议,使得 B 完成协议并接受 A 的身份的概率可忽略不计; 上述 3 点恒为真,即使 敌手 C 观察到大量 A 和 B 之间的认证 敌手 C 参与了 A 和 B 中一方或双方的身份认证协议的执行 敌手 C 可以发起并行攻击,同时运行多个实例 13 密码学导论 -- 中国科学技术大学

14.身份认证协议的性能 : 身份认证的交互性: 单向 认证、相互认证、群认证、可信中继 通信效率:传输的步数和需要的带宽或总传输量 计算效率:执行协议所需要的操作数 第三方(若有)的可信程度和是否需要实时参与 安全保证性:认证信息不被泄漏 身份认证的实现方法: 口令(弱认证) 挑战-响应身份认证(强认证) 零知识的身份 认证 密码学导论 -- 中国科学技术大学 14

15.第二节 消息认证的实现 15 密码学导论 -- 中国科学技术大学

16.三种操作可以提供消息认证: 消息 加密 消息 认证码 message authentication code (MAC) Hash 函数 16 密码学导论 -- 中国科学技术大学

17.一、消息加密 消息加密本身能够提供一定的认证功能 使用对称密钥: 发报人身份确认 仅有收发双方拥有密钥 报文完整性确认 当报文中有足够的格式信息、冗余或校验时,修改密文会破坏这些信息 使用公钥密码: 公钥加密提供报文保密性确认,不能提供身份确认 任何人都可以拥有公钥 私钥签名提供信源身份确认,不提供保密性 也需要报文具有特定格式、冗余或校验 密码学导论 -- 中国科学技术大学 17

18.18 密码学导论 -- 中国科学技术大学

19.二、消息认证码 MAC 使用密钥产生短小的定长数据分组,即所谓的 密码校验 MAC ,将它附加在报文中。 通信双方共享密钥 k ,发送方计算 MAC=C( k,m ) 并附在报文后。接收方根据 m 重新计算 MAC ,并与接收到的 MAC 比较。若密钥不公开且 MAC 匹配,则: 接收方可以确信报文未被更改; 接收方可以确信报文来自声称的发送者。 MAC 函数类似加密,但 非 加密 , 也无需可逆 报文鉴别不提供保密 常将 MAC 直接与明文并置,然后加密传输 密码学导论 -- 中国科学技术大学 19

20.MAC 的性质 MAC 是一种密码校验和: MAC = C( k,m ) 用于对可变长消息 m 编写摘要 使用密钥 k 产生一个定长的认证码 显然, MAC 是多对一的映射 多个消息可能具有相同的 MAC 但根据指定 MAC 构造消息很难 密码学导论 -- 中国科学技术大学 20

21.MAC 的基本使用方式 密码学导论 -- 中国科学技术大学 21

22.MAC 的应用场合 对称加密同时提供保密和认证,为什么还要用只提供认证的 MAC ? 将一条非秘密消息广播给很多人时 —— 不需要加密,也不需要每个人都做认证 信息传输速度过快,没时间逐个解密 —— 可以随机选择认证 计算机程序的防篡改 —— 每次运行都解密是很麻烦的 用户不希望做认证的人 / 机构得到明文 —— 不让外人解密 认证和保密性的分开,有利于系统的层次化设计 密码学导论 -- 中国科学技术大学 22

23.对 MAC 的攻击 对 MAC 密钥的穷举攻击 若密钥长度 (k) 大于 MAC 长度 (n) 对消息 m 1 及对应 MAC 1 尝试密钥,平均会有 2 k-n 个匹配密钥 对消息 m 2 及对应 MAC 2 尝试上面得到的密钥,平均会有 2 k-2n 个匹配密钥 重复下去,直到得到唯一密钥 若密钥长度 (k) 小于 MAC 长度 (n) 很可能第一次尝试就得到唯一密钥 密码学导论 -- 中国科学技术大学 23

24.对 MAC 的攻击 对 MAC 密钥的穷举攻击 若密钥长度 (k) 大于 MAC 长度 (n) 对消息 m 1 及对应 MAC 1 尝试密钥,平均会有 2 k-n 个匹配密钥 对消息 m 2 及对应 MAC 2 尝试上面得到的密钥,平均会有 2 k-2n 个匹配密钥 重复下去,直到得到唯一密钥 若密钥长度 (k) 小于 MAC 长度 (n) 很可能第一次尝试就得到唯一密钥 密码学导论 -- 中国科学技术大学 23

25.对 MAC 的要求 应考虑对 MAC 函数的各种类型的攻击 当密钥 k 保密时, MAC 函数应满足: 已知消息和 MAC 值,构造另一个具有相同 MAC 值的消息在计算上不可行的 MAC 值应当均匀分布 抗基于选择明文的穷举攻击 MAC 函数应当等概地使用消息的所有比特位 密码学导论 -- 中国科学技术大学 25

26.数据认证算法 (DAA)FIPS PUB 113 以密码分组链接 (CBC) 为操作方式,又称为 CBC-MAC 用 0 作为初始化向量 基于 DES 加密算法 待认证数据为 D 1 ||D 2 ||…||D N MAC 值为 DAC 密码学导论 -- 中国科学技术大学 26

27.三、散列函数 Hash function 散列函数对任意长度报文 m ,产生定长的 散列码 h=H(m) ,亦称 报文摘要 Message Digest ,收缩函数、操作检验码、信息完整性校验 (MIC) 、 哈希值 等 是报文所有比特的函数值,具有差错检测能力 哈希值是明文的“指纹”或是摘要。对哈希值的数字签名,可以视为对此明文的数字签名 可以用来提高数字签名的效率 通常认为 hash 函数是公开的,无密钥的 MAC 是有密钥的 密码学导论 -- 中国科学技术大学 27

28.对避免加密的方法重视的原因 加密过程很慢,硬件开销,传输量问题,专利问题,出口限制等等 散列函数的 应用 利用散列函数进行 双向鉴别,如确认双方是否共享 K AB 用作消息完整码 MIC (Message Integrity Code) 用于加密:将分组加密转换成序列加密,产生流密钥。有 OFB 和 CFB 方式。 密码学导论 -- 中国科学技术大学 28

29.Hash 函数的基本使用方式 密码学导论 -- 中国科学技术大学 29