6第六讲 消息鉴别
H (M
S )]]
- 仅 A和 B共 享 S • 提 供 保 密 - 仅 A和 B共 享 密 钥 k
提供完整性: -H(M) 值比较
14
基于HASH的鉴别
Hash函数的分类
根据安全水平 弱无碰撞:散列函数h称为是弱无碰撞的,是指对给定消息x X, 弱无碰撞:散列函数h称为是弱无碰撞的,是指对给定消息x ∈ X,在 计算上几乎找不到异于x ∈X, h(x)=h(x')。 计算上几乎找不到异于x的x‘∈X,使h(x)=h(x')。 ∈X 强无碰撞:散列函数h被称为是强无碰撞的, 强无碰撞:散列函数h被称为是强无碰撞的,是指在计算上几乎不可能 找到相异的x h(x)=h(x')。 找到相异的x,x‘,使得h(x)=h(x')。 ,使得h(x)=h(x') 强无碰撞自然含弱无碰撞! 注:强无碰撞自然含弱无碰撞! 根据是否使用密钥 带秘密密钥的Hash函数: Hash函数 带秘密密钥的Hash函数:消息的散列值由只有通信双方知道的秘密密 来控制。此时,散列值称作MAC MAC。 钥K来控制。此时,散列值称作MAC。 不带秘密密钥的Hash函数:消息的散列值的产生无需使用密钥。 Hash函数 不带秘密密钥的Hash函数:消息的散列值的产生无需使用密钥。此 散列值称作MDC MDC。 时,散列值称作MDC。
E k [H (M )]
• 提供完整性: 提供完整性 -H(M) 值比较 提供鉴别 加密保护H(M) 只有A有密钥K H(M), -加密保护H(M),只有A有密钥K hash函数和加密函数的合成即是 函数和加密函数的合成即是MAC -hash函数和加密函数的合成即是MAC 不提供保密
10
基于HASH的鉴别
3
二、基于消息加密的鉴别
加密技术可用于消息鉴别 基于对称加密的鉴别: 基于对称加密的鉴别:
A
B
• 提供保密: 仅A和B共享密钥 提供保密: 共享密钥K 和 共享密钥 • 提供消息源鉴别: 仅A和B共享密钥 提供消息源鉴别: 共享密钥K 和 共享密钥 • 不提供消息完整性鉴别
4
二、基于消息加密的鉴别
基于HASH的鉴别
Hash函数通用结构
20
基于HASH的鉴别
MD5描述 Merkle于1989年提出hash function模型 Merkle于1989年提出hash function模型 年提出 Rivest于1990年提出 年提出MD4(RFC Ron Rivest于1990年提出MD4(RFC 1320) 1992年 完成MD5 1992年, Ron Rivest 完成MD5 (RFC 1321) 在最近数年之前,MD5是最主要的hash算法 在最近数年之前,MD5是最主要的hash算法 ,MD5是最主要的hash 现行美国标准SHA现行美国标准SHA-1以MD5的前身MD4为基础 SHA MD5的前身MD4为基础 的前身MD4
因此,如果要概率为50%,则n=23
18
基于HASH的鉴别
生日攻击实例
A准备两份合同 和M-,一份 会同意,一份会取走他的财产而 准备两份合同M和 ,一份B会同意 会同意, 准备两份合同 被拒绝 A对M和M- 各做 处微小变化(保持原意),分别产生 对 和 各做32处微小变化 保持原意),分别产生232个 处微小变化( ),分别产生 个 64位hash值 位 值 根据前面的结论,超过 的概率能找到一个M和一个 根据前面的结论,超过0.5的概率能找到一个 和一个 的概率能找到一个 和一个M- ,它们 的hash值相同 值相同 A提交 ,经B审阅后产生 位hash值并对该值签名,返回给 提交M, 审阅后产生64位 值并对该值签名, 提交 审阅后产生 值并对该值签名 返回给A A用M- 替换 用 替换M 结论: 必须足够长( 结论:Hash必须足够长( 128, 160,224,256,…) 必须足够长 , , , , )
鉴别目的: 鉴别目的:
实体鉴别: 实体鉴别:验证一个实体的身份 消息鉴别: 消息鉴别 消息源鉴别:验证消息的发送者是真正的,而不是冒充的。 消息源鉴别:验证消息的发送者是真正的,而不是冒充的。 消息完整性鉴别: 消息完整性鉴别:认证在传送过程中消息数据未被未授权篡改或 损坏。 损坏。 抗抵赖性:发送消息者事后不能否认他发送的消息。 抗抵赖性:发送消息者事后不能否认他发送的消息。
使其比特数与448模512同余,即填充后的消息长度为512的整数倍少 使其比特数与448模512同余,即填充后的消息长度为512的整数倍少 448 同余 512 64( 448+64=512)。即使消息本身已满足此长度要求, )。即使消息本身已满足此长度要求 64(因为 448+64=512)。即使消息本身已满足此长度要求,仍需进 行填充。 行填充。
2
一、鉴别服务概述
主要的鉴别技术包括: 主要的鉴别技术包括:
消息加密函数(Message (1) 消息加密函数(Message encryption) (2) 消息鉴别码 MAC(Message Authentication Code) 散列函数(Hash (3) 散列函数(Hash Function)
MD5: 输入:任意长度的报文 输入: 输入分组长度:512 bit 输入分组长度: 输出:128 bit 报文 输出:
21
基于HASH的鉴别
MD5示意图 示意图
× ×
个字) 以512位(16个字)的分组为单位进行串行处理 位 个字
22
基于HASH的鉴别
MD5算法描述
报文填充( 报文填充 得M1)
散列函数基本用法(3)
提供完整性: 提供完整性 H(M) 值比较 不提供保密 提供数字签名 加密保护H(M) 加密保护 仅A能生成 E kR [H(M )] 能生成
a
11
基于HASH的鉴别
散列函数基本用法(4)
• 提 - - 供 加 仅 鉴 密 A 能 别 保 生 和 护 成 数 H ( E 字 M
5
二、基于消息加密的鉴别
基于公钥加密的认证( ) 基于公钥加密的认证(2)
A
B
• 提供消息源鉴别:KRa 提供消息源鉴别: • 提供消息保密:KUb 提供消息保密: • 不提供消息完整性认证
6
三、基于HASH的鉴别
H(M): h = H ( M )
输入为任意长度的消息M; 输入为任意长度的消息M; 输出为一 个固定长度的散列值, 个固定长度的散列值,称为消息摘 Digest) 要(Message Digest) H(M)是消息M H(M)是消息M的所有位的函数并提 是消息 供错误检测能力: 供错误检测能力:消息中的任何一 位或多位的变化都将导致该散列值 的变化 H(M)又称为:哈希函数、 H(M)又称为:哈希函数、数字指纹 又称为 print)、 (Digital finger print)、压缩 Compression)函数 函数、 (Compression)函数、数据鉴别码 code) (Data authentication code)等 散列函数的用途 消息的完整性、 • 消息的完整性、 • 数字签名
提供完整性: -H(M) 值比较 不提供保密性
S(salt) 是随机串,这种加盐 的方法能更好地防范主动攻击 且无需加密计算
• 加密软件很慢 • 加密硬件的开销很大 • 加密算法可能受专利保护 • 加密算法可能受出口的限制.
13
基于HASH的鉴别
散列函数基本用法(6)
A → B : E k [M • 提 供 鉴 别
第六讲 消息鉴别
(数据鉴别) 数据鉴别)
1
一、概述
从某种意义上说,鉴别或认证技术可能比信息加密本身更加重要。 从某种意义上说 , 鉴别或认证技术可能比信息加密本身更加重要 。 以电子商务为例,很多情况下用户并不要求购物信息保密, 以电子商务为例,很多情况下用户并不要求购物信息保密,只要确认 网上商店不是假冒的(这需要身份鉴别服务) 网上商店不是假冒的(这需要身份鉴别服务),自己与网上商店交换 的信息未被第三方修改或伪造(这需要消息完整性服务) 的信息未被第三方修改或伪造(这需要消息完整性服务),并且网上 商家不能赖帐(这就需要抗抵赖性服务) 商家也是如此。 因此, 商家不能赖帐(这就需要抗抵赖性服务), 商家也是如此。 因此, 消息鉴别服务通常与保密服务、完整性服务, 消息鉴别服务通常与保密服务、完整性服务,拒绝否认服务关联
15
基于HASH的鉴别
散列函数的性质: Hash要产生其他数据块的“指纹”,从而用于消息认证, 要产生其他数据块的“ 要产生其他数据块的 指纹” 从而用于消息认证, 必须具有下列性质: 必须具有下列性质:
能用于任意大小的分组; ① H能用于任意大小的分组;且产生的消息摘要长度固定 对任何给定的x H(x)要相对易于计算 要相对易于计算; ② 对任何给定的x,H(x)要相对易于计算; 对任何给定的hash hash值 寻找x使得H(x)=h在计算上是不可行的, H(x)=h在计算上是不可行的 ③ 对任何给定的hash值h,寻找x使得H(x)=h在计算上是不可行的,即 单向性.因此, 单向性.因此,伪造或篡改一个报文并使其与原报文具有相同的信息 摘要是计算不可行的 找到任何满足H(x)=H(y)的偶对(x,y)在计算上是不可行的。 H(x)=H(y)的偶对(x,y)在计算上是不可行的 ④ 找到任何满足H(x)=H(y)的偶对(x,y)在计算上是不可行的。
17
基于HASH的鉴别
假设有n个人,如果要彼此生日都不相同,则第一个人的生日是随意的,第2、3 …n个人与其他人生日不同的概率分别为:
364 363 365 − (n − 1) , ,⋯ 365 365 365
因此,n个人中两个人生日相同的概率为:
364× 363×⋯365− (n −1) 365! 1− = n−1 365 365n (365− n)!