第六章 消息认证与杂凑算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
B
A
~ ~ ~ M E skA ( H ( M ))
现代密码理论--UESTC •第Ⅱ类生日攻击方式: ① 设用户将用图6.3(c)所示的方式发送消息,即A用自己的 秘密钥对消息的杂凑值加密,加密结果作为对消息的签字, 连同明文消息一起发往接收者。 ② 敌手对A发送的消息M产生出2m/2个变形的消息,同时敌 手还准备一个假冒的消息M′,并对假冒的消息产生出2m/2个 变形的消息。 ③ 敌手在产生的两个消息集合中,找出杂凑值相同的一对 消息, M , M ,由上述讨论可知敌手成功的概率大于0.5。如 果不成功,则重新产生一个假冒的消息,并产生2m/2个变形, 直到找到杂凑值相同的一对消息为止。 与M 提交给A请求签字,由于 M 的杂凑值相 ④ 敌手将 M 的签字当作对 的签字,将此签字连 同,所以可将A对 M M 一起发给意欲的接收者。 同M
现代密码理论--UESTC
365 364 (365 k 1) 365! (365 k )!
如果去掉任意两个都不相同这一限制条件,可得k个数据项 中所有取值方式数为365k。所以可得
365! Q(365, k ) (365 k )! 365k 365! P(365, k ) 1 Q(365, k ) 1 (365 k )! 365k
6.2.2 杂凑函数应满足的条件
杂凑函数的目的是为需认证的数据产生一个“指纹”。为了 能够实现对数据的认证,杂凑函数应满足以下条件: ① 函数的输入可以是任意长。 ② 函数的输出是固定长。 ③ 已知x,求H(x)较为容易,可用硬件或软件实现。 ④ 已知h,求使得H(x)=h的x在计算上是不可行的,这一性 质称为函数的单向性,称H(x)为单向杂凑函数。 ⑤ 已知x,找出y(y≠x)使得H(y)=H(x)在计算上是不可行的。 如果单向杂凑函数满足这一性质,则称其为弱单向杂凑函数。 ⑥ 找出任意两个不同的输入x、y,使得H(y)=H(x)在计算上 是不可行的。强单向杂凑函数。
现代密码理论--UESTC
3. 生日攻击 生日攻击基于结论:设杂凑函数H有2m个可能的输 出(即输出长m比特),如果H的k个随机输入中 至少有两个产生相同输出的概率大于0.5, 则 k 2m 2m 2 。 第Ⅱ类生日攻击:寻找函数H的具有相同输出的两 个任意输入的攻击方式。
A
M EskA ( H ( M ))
6.2.4 迭代型杂凑函数的一般结构
目前使用的大多数杂凑函数其结构都是迭代型的, 如下图所示。
现代密码理论--UESTC
图6.4 迭代型杂凑函数的一般结构
CV0=IV=n比特长的初值; CVi=f(CVi-1,Yi-1)1≤i≤L; H(M)=CVL
CVi-1,称为链接变量 通常b>n,称函数f为压缩函数 分析时需要先找出f 的碰撞
图6.2 数据认证算法
其中E为DES加密算法,K为密钥。 数据认证码或者取为ON或者取为ON的最左M个比特,其中 16≤M≤64。
现代密码理论--UESTC
6.2 杂凑函数
6.2.1 杂凑函数的定义及使用方式
杂凑函数H是一公开函数:用于将任意长的消息M映射为较 短的、固定长度的一个值H(M)。作为认证符。 称函数值H(M)为杂凑值、杂凑码、消息摘要,hash值、散 列值。
• SHA-2: SHA-224, SHA-256, SHA-384, SHA-512 • SHA-3: New standard in competition
• RIPEMD (Race Integrity Primitive Evaluation Message Digest)
– Developed by Katholieke University Leuven Team – Family : RIPEMD-128, RIPEMD-160, RIPEMD-256, RIPEMD-320
当k=23时,P(365,23)=0.5073,即上述问题只需23人,人数 如此之少。若k取100,则P(365,100)=0.9999997,即获得如 此大的概率。之所以称这一问题是悖论是因为当人数k给定 时,得到的至少有两个人的生日相同的概率比想象的要大 得多。
现代密码理论--UESTC
将生日悖论推广为下述问题:已知一个在1到n之间 均匀分布的整数型随机变量,若该变量的k个取值 中至少有两个取值相同的概率大于0.5,则k至少多 大? n! 与上类似,P(n, k ) 1 (n k )!nk ,令P(n, k)>0.5,可 得 k 1.18 n n 。 若取n=365,则 k 1.18 365 22.54 。
现代密码理论--UESTC
消息认证机制需要产生认证符。 认证符:用于认证消息的数值。
认证符的产生方法:消息认证码MAC(message authentication code)和杂凑函数(hash function) 两大类。
现代密码理论--UESTC
6.1 消息认证码
6.1.1 消息认证码的定义及使用方式
现代密码理论--UESTC
6.2.3 生日攻击
1. 相关问题 已知一杂凑函数H有n个可能的输出,H(x)是一个 特定的输出,如果对H随机取k个输入,则至少有 一个输入y使得H(y)=H(x)的概率为0.5时,k有多大? 以后为叙述方便,称对杂凑函数H寻找上述y的攻 击为第Ⅰ类生日攻击。
现代密码理论--UESTC 因为H有n个可能的输出,所以输入y产生的输出H(y)等于特 定输出H(x)的概率是1/n,反过来说H(y)≠H(x)的概率是11/n。y取k个随机值而函数的k个输出中没有一个等于H(x), 其概率等于每个输出都不等于H(x)的概率之积,为[1-1/n]k, 所以y取k个随机值得到函数的k个输出中至少有一个等于 H(x)的概率为1-[1-1/n]k。 由(1+x)k≈1+kx,其中|x|<<1,可得 1-[1-1/n]k≈1-[1-k/n]=k/n 若使上述概率等于0.5,则k=n/2。特别地,如果H的输出为 m比特长,即可能的输出个数n=2m,则k=2m-1。
现代密码理论--UESTC
第6章 消息认证和杂凑算法
6.1 6.2 6.3 6.4 6.5
消息认证码 杂凑函数 MD5杂凑算法 安全杂凑算法 HMAC算法
现代密码理论--UESTC
抗击被动攻击:加密
抗击主动攻击:消息认证 消息认证是一个过程,用以验证接收消息的真实性 和完整性,同时还用于验证消息的顺序性和时间性。
现代密码理论--UESTC
将一个消息变形为具有相同含义的另一消息的方法 有很多。 例如:对文件,敌手可在文件的单词之间插入很多 “space-space-backspace”字符对,然后将其中的 某些字符对替换为“space-backspace-space ”就得 到一个变形的消息。
现代密码理论--UESTC
数据认证算法:最为广泛使用的消息认证码中的一 个。 算法基于CBC模式的DES算法,其初始向量取为零
向量。需被认证的数据被分为64比特长的分组D1,
D2,…,DN,其中最后一个分组不够64比特的话, 可在其右边填充一些0,然后按以下过程计算数据认 证码:
现代密码理论--UESTC
O1 EK ( D1 ) O2 EK ( D2 O1 ) O3 EK ( D3 O2 ) ON EK ( DN ON 1 )
M
H PKA 比较
(c)
ESK [ H(M)]
A
D
M
SKA K H E
E
D K
M
H PKA D 比较
(d)
EK[M ESK A[H(M)]]
ESK [ H(M)]
A
M
M
S
H 比较
(e)
S
H
H(M
S)
M K S H
E
D K
M
S
H 比较
(f)
EK[M H(M S)]
H(M
S)
现代密码理论--UESTC
现代密码理论--UESTC
Hash家族
• MD (Message Digest)
– Designed by Ron Rivest – Family: MD2, MD4, MD5
• SHA (Secure Hash Algorithm)
– Designed by NIST – Family: SHA-0, SHA-1, and SHA-2
现代密码理论--UESTC
图6.5 MD5的算法框图
现代密码理论--UESTC
处理过程有以下几步: ① 对消息填充:对消息填充,使得其比特长在模 512下为448,即填充后消息的长度为512的某一倍 数减64,留出的64比特备第2步使用。 步骤①是必需的,即使消息长度已满足要求,仍需 填充。例如,消息长为448比特,则需填充512比特, 使其长度变为960,因此填充的比特数大于等于1而 小于等于512。 填充方式是: 第1位为1,其后各位皆为0。
现代密码理论--UESTC
2. 生日悖论
生日悖论是考虑这样一个问题:在k个人中至少有两个人的 生日相同的概率大于0.5时,k至少多大? 设有k个整数项,每一项都在1到n之间等可能地取值。 P(n, k):k个整数项中至少有两个取值相同的概率。 生日悖论就是求使得P(365,k)≥0.5的最小k。 Q(365, k) :k个数据项中任意两个取值都不同的概率。 如果k>365,则不可能使得任意两个数据都不相同,因此假 定k≤365。k个数据项中任意两个都不相同的所有取值方式 数为 365! 365 364 (365 k 1) (365 k )!
现代密码理论--UESTC
现代密码理论--UESTC
6.3 MD5杂凑算法
MD4是MD5杂凑算法的前身,由Ron Rivest于1990 年10月作为RFC提出,1992年4月公布的MD4的改 进(RFC 1320,1321)称为MD5。
现代密码理论--UESTC
6.3.1 算法描述
MD5算法采用图6.4描述的迭代型杂凑函数的一般 结构,算法的框图如图6.5所示。 输入:任意长的消息(图中为K比特) 分组:512比特 输出:128比特的消息摘要。
B
现代密码理论--UESTC 第Ⅱ类生日攻击方式:
A
M EskA ( H ( M ))
敌手对M产生出2m/2个变形消息: 敌手还准备一个假冒的消息M′, 产生出2m/2个变形的消息:
~ M
~ ~ M
B
~ ~ ~ H(M ) H(M )
~ 将 M提交给A请求签字
~ E skA ( H ( M ))
现代密码理论--UESTC
② 附加消息的长度:用留出的64比特以littleendian方式来表示消息被填充前的长度。如果消息 长度大于264,则以264为模数取模。 Little-endian将最低有效字节存于低地址字节。 相反的存储方式称为big-endian方式。 消息的长度为512的倍数(设为L倍) 消息分Y0,Y1,…,YL-1 每一分组为16个32比特长的字 消息中的总字数为N=L×16 消息按字表示为M[0,…,N-1]。
消息认证码: 指消息被一密钥控制的公开函数作用 后产生的、用作认证符的、固定长度的数值, 或称 为密码校验和。 此时需要通信双方A和B共享一密钥K。
M CK (M )
现代密码理论--UESTC
如果仅收发双方知道K,且B计算得到的MAC与 接收到的MAC一致,则这一就实现了以下功能: ① 接收方相信发送方发来的消息未被篡改。 ② 接收方相信发送方不是冒充的。
现代密码理论--UESTC
MAC函数与加密算法类似,不同之处为MAC函数 不必是可逆的,因此与加密算法相比更不易被攻破。
上述过程中,由于消息本身在发送过程中是明文形
式,所以这一过程只提供认证性而未提供保密性。
图6.1 MAC的基本使用方式
wk.baidu.com
现代密码理论--UESTC
现代密码理论--UESTC
6.1.2 数据认证算法
杂凑码是消息中所有比特的函数,因此提供了一种错误检 测能力,即改变消息中任何一个比特或几个比特都会使杂 凑码发生改变。
现代密码理论--UESTC
发方A M E K EK[M H(M)] D K H(M) M H K EK[H(M)] D 比较 M 收方B H 比较 H
(a)
M
K H E
(b)
M
SKA H E
相关文档
最新文档