现代密码学理论与实践 第11章 消息认证和散列函数

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征
Advertisements

质数和合数 2 的因数( ) 6 的因数( ) 10 的因数 ( ) 12 的因数 ( ) 14 的因数 ( ) 11 的因数 ( ) 4 的因数( ) 9 的因数( ) 8 的因数( ) 7 的因数( ) 1 、 2 、 3 、 4 、 6 、 12 1 、 11 1 、 2 、 5 、 10.
3 的倍数的特征 的倍数有 : 。 5 的倍数有 : 。 既是 2 的倍数又是 5 的倍数有 : 。 12 , 18 , 20 , 48 , 60 , 72 , , 25 , 60 ,
苗付友 年 12 月.
第五节 函数的微分 一、微分的定义 二、微分的几何意义 三、基本初等函数的微分公式与微分运算 法则 四、微分形式不变性 五、微分在近似计算中的应用 六、小结.
2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
§4.2 第一换元积分法 课件制作 秦立春 引 例 第一换元积分法. §4.2 第一换元积分法 课件制作 秦立春 以上三式说明:积分公式中积分变可以是任意的字母公式仍然成立.
2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
第四单元 100 以内数的认识
新人教版四年级数学上册 笔算除法 森村中心学校 江国飞 1 、口算。 360÷30= 840÷40= 200÷50= 270÷90= 40÷20= ÷40=3600÷19≈30 90÷30=3 900÷31≈30.
第四单元 100 以内数的认识
第八章 信息认证和散列函数 (Message Authentication and Hash Functions)
(第十四讲) 认证 张焕国 武汉大学计算机学院
常用逻辑用语复习课 李娟.
周福才 /4/9 可信计算基础 周福才
第5章 定积分及其应用 基本要求 5.1 定积分的概念与性质 5.2 微积分基本公式 5.3 定积分的换元积分法与分部积分法
第三节 格林公式及其应用(2) 一、曲线积分与路径无关的定义 二、曲线积分与路径无关的条件 三、二元函数的全微分的求积 四、小结.
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
2-7、函数的微分 教学要求 教学要点.
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
密码学导论˙第8章 消息认证及其算法 12学时 李卫海.
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
第十讲公钥加密算法 (续) 公钥密码(续) RSA \ ElGamal algorithms.
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
数字签名与身份认证 本章内容: 数字签名 鉴别协议 数字签名标准 身份认证技术.
走进编程 程序的顺序结构(二).
密码学基础(3) 胡建斌 北京大学网络与信息安全研究室
计算机数学基础 主讲老师: 邓辉文.
§2 求导法则 2.1 求导数的四则运算法则 下面分三部分加以证明, 并同时给出相应的推论和例题 .
现代密码学理论与实践 第9章 公钥密码学与RSA
3.4 概率公钥系统 虽然可以通过在明文后面附上随机生成指定长度的字符串挫败上述攻击,但是要付出时空代价。
若2002年我国国民生产总值为 亿元,如果 ,那么经过多少年国民生产总值 每年平均增长 是2002年时的2倍? 解:设经过 年国民生产总值为2002年时的2倍, 根据题意有 , 即.
為何電子商務的安全性令人擔憂? 電子商務資訊安全 實體商務也擔心安全-但數位化的偽造數量會更多更快
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
第一章 函数与极限.
分组密码的工作模式 为克服分组密码自身所具有的缺陷,在具体的分组密码系统设计中必须对其基本的工作模式(电码本模式Electronic Codebook, ECB)进行改进。 密码分组链接模式(Cipher Block Chaining ,CBC) 密码反馈模式(Cipher Feed back ,CFB)
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
概 率 统 计 主讲教师 叶宏 山东大学数学院.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
5.2 常用统计分布 一、常见分布 二、概率分布的分位数 三、小结.
主要内容: 无线局域网的定义 无线传输介质 无线传输的技术 WLAN的架构 无线网络搭建与配置 无线网络加密配置
复习.
IT 安全 第 11节 加密控制.
Lightweight Data-flow Analysis for Execution-driven Constraint Solving
第4章 Excel电子表格制作软件 4.4 函数(一).
正切函数的图象和性质 周期函数定义: 一般地,对于函数 (x),如果存在一个非零常数T,使得当x取定义域内的每一个值时,都有
定理21.9(可满足性定理)设A是P(Y)的协调子集,则存在P(Y)的解释域U和项解释,使得赋值函数v(A){1}。
第16讲 相似矩阵与方阵的对角化 主要内容: 1.相似矩阵 2. 方阵的对角化.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
第三章 函数的微分学 第二节 导数的四则运算法则 一、导数的四则运算 二、偏导数的求法.
第4课时 绝对值.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
第一部分:概率 产生随机样本:对分布采样 均匀分布 其他分布 伪随机数 很多统计软件包中都有此工具 如在Matlab中:rand
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
第二节 函数的极限 一、函数极限的定义 二、函数极限的性质 三、小结 思考题.
正弦、余弦函数的性质 华容一中 伍立华 2017年2月24日.
§2 方阵的特征值与特征向量.
為何電子商務的安全性令人擔憂? 第二節 電子商務資訊安全 實體商務也擔心安全-but數位化的偽造數量會很多 網際網路是互聯的(匿名與距離性)
滤波减速器的体积优化 仵凡 Advanced Design Group.
基于列存储的RDF数据管理 朱敏
VoIP组工作汇报 黄权 李光华.
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
第三章 从概率分布函数的抽样 (Sampling from Probability Distribution Functions)
找 因 数.
第十七讲 密码执行(1).
第十二讲 密码执行(上).
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
三角 三角 三角 函数 余弦函数的图象和性质.
§4.5 最大公因式的矩阵求法( Ⅱ ).
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
Presentation transcript:

现代密码学理论与实践 第11章 消息认证和散列函数 Fourth Edition by William Stallings Slides by 杨寿保 syang@ustc.edu.cn http://staff.ustc.edu.cn/~syang 2012年11月 2019/5/8 现代密码学理论与实践-11

本章要点 消息认证是用来验证消息完整性的一种机制或服务。消息认证确保收到的数据确实和发送时的一样(即没有修改、插入、删除或重放),且发送方声称的身份是真实有效的。 对称密码在那些相互共享密钥的用户间提供认证。用消息发送方的私钥加密消息也可提供一种形式的认证。 用于消息认证的最常见的密码技术是消息认证码和安全散列(hash)函数。 MAC是一种需要使用秘密密钥的算法,以可变长的消息和秘密密钥作为输入,产生一个认证码。拥有秘密密钥的接收方产生一个认证码来验证消息的完整性。 散列函数将可变长度的消息映射为固定长度的散列值,或叫消息摘要。对于消息认证码,安全散列函数必须以某种方式和秘密密钥捆绑起来。 2019/5/8 现代密码学理论与实践-11

消息认证 Message Authentication 消息认证(报文认证)关心的问题是 保护消息的完整性 验证发起方身份 消息源的不可否认(解决分歧) 消息认证要考虑安全需求 三种消息认证的方法 消息加密 消息认证码(MAC) 哈希函数 2019/5/8 现代密码学理论与实践-11

11.1 对认证的要求 网络通信环境中可能的攻击 泄密Disclosure,将消息透露给没有合法身份的第三方 传输分析Traffic analysis,分析双方通信模式 伪装Masquerade,欺诈源向网络中插入一条消息 内容篡改Content modification,对消息内容的修改 顺序篡改Sequence modification,对消息顺序的修改 计时篡改Timing modification,对消息的延时和重放 信源抵赖Source repudiation,发送方否认发送过某消息 信宿抵赖Destination repudiation,接收方否认接收过某消息 消息认证就是验证所收到的消息确实来自真正的发送方且未被修改的消息,也可以验证消息的顺序和时效 2019/5/8 现代密码学理论与实践-11

11.2 认证函数 11.2.1 消息加密 消息加密本身提供了一种认证手段 对称加密 接收方可以确信消息是由发送方产生的,因为除了接收方以外只有发送方拥有加密密钥,产生出用此密钥可以解密的密文 如果消息可以是任意的位模式,接收方无法确定收到的消息是合法明文的密文。因此,通常不管密文的值是什么,如果解密后得到的明文有合法明文的位模式,接收方都会作为真实的密文接收。 2019/5/8 现代密码学理论与实践-11

2019/5/8 现代密码学理论与实践-11

解决解密所得消息是否具有可读性的问题 要求明文具有某种易于识别的结构,如在加密前对每个消息附加一个帧校验序列FCS 2019/5/8 现代密码学理论与实践-11

公钥加密作为认证手段 若要提供认证,发送方用自己的私钥对消息加密,接收方用发送方的公钥解密(验证),就提供了认证功能。 如果发送方用私钥加密消息,再用接收方的公钥加密,就实现了既保密又认证的通信。 这也需要注意区分伪造的不合理的消息。 既保密又认证的通信的代价是需要执行四次复杂的公钥算法而不是两次。 2019/5/8 现代密码学理论与实践-11

2019/5/8 现代密码学理论与实践-11

11.2.2 消息认证码MAC 使用密钥产生短小的定长数据分组,即所谓的密码检验MAC,将它附加在报文中。通信双方A和B共享密钥K,报文从A发往B,A计算MAC=CK(M), 附在报文后发给B。B对接收到的报文重新计算MAC,并与接收到的MAC比较。如果只有收发双方知道密钥且两个MAC匹配,则: 接收方可以确信报文未被更改; 接收方可以确信报文来自声称的发送者; 接收方可以确信报文序号正确,如果有的话。 报文认证不提供保密 MAC函数类似加密,但非数字签名,也无需可逆 将MAC直接与明文并置,然后加密传输比较常用 2019/5/8 现代密码学理论与实践-11

MAC:消息认证码的特点 MAC加密所得的消息校验和 MAC是一种多对一的函数 MAC = CK(M) 定义域由任意长的消息组成,值域由所有可能的MAC和密钥组成。若使用n位长的MAC, 则有2n个可能的MAC, 有N条可能的消息, N>>2n. 若密钥长度为k, 则有2k种可能的密钥。 如N为2100, n为10, 共有2100不同的消息, 210种不同的MAC, 平均而言同一MAC可由2100/ 210=290条不同的消息产生。若密钥长度为5,则从消息集合到MAC值的集合有25=32不同映射。 可以证明,由于认证函数的数学性质,与加密相比,认证函数更不易被攻破 2019/5/8 现代密码学理论与实践-11

2019/5/8 现代密码学理论与实践-11

2019/5/8 现代密码学理论与实践-11

11.2.3 散列函数 Hash Function 一个散列函数以变长的消息M作为输入,产生定长的散列码H(M),作为输出,亦称作报文摘要Message Digest. 散列码是消息所有比特的函数值,具有差错检测能力,消息任意一比特的改变都将引起散列码的改变 不同的散列码使用方式 对附加了散列码的消息进行加密 使用常规加密方法仅对散列码加密 使用公开密钥方法仅对散列码加密,提供数字签名 同时提供保密和签名,可以分别使用常规方法加密消息及使用公开密钥方法加密散列码 其他 不希望使用加密函数的理由 加密过程很慢,硬件开销大,初始化的开销,专利问题,出口限制 2019/5/8 现代密码学理论与实践-11

2019/5/8 现代密码学理论与实践-11

2019/5/8 现代密码学理论与实践-11

2019/5/8 现代密码学理论与实践-11

11.3 消息认证码MAC 对MAC的要求 基于DES的消息认证码 FIPS PUB 113 若攻击者已知M和C(K,M), 则构造满足C(K,M’)=C(K,M)的消息M’在计算上是不可行的 C(K,M)应该是均匀分布的, 即对任何随机选择的消息M和M’,C(K,M’)=C(K,M)的概率是2-n, 其中n是MAC的位数 设M’是M的某个已知的变换,即M’=f(M), 如f可能表示逆转M的一位或多位, 那么Pr[C(K,M)=C(K,M’)]的概率是2-n. (直观理解:只要两消息不相同,其MAC值相同的概率都只是2-n ) 基于DES的消息认证码 FIPS PUB 113 该算法定义为以密码分组链接(CBC)为操作方式的用0作为初始化向量的DES 2019/5/8 现代密码学理论与实践-11

2019/5/8 现代密码学理论与实践-11

使用消息认证码的几种情形 MAC不提供数字签名,因为双方共享密钥。 接收方无法对所有收到的消息进行解密工作,则可以进行有选择地鉴别,对消息作随机检查 对明文计算机程序进行鉴别,检查完整性 某些应用不关注消息的保密而更重视鉴别消息的真实性,如SNMPv3,将保密与鉴别分开 保密函数与鉴别函数的分离能提供结构上的灵活性,如在应用层完成鉴别而在较低层加密 在超过接收时间后继续延长保护期限,同时允许处理消息内容 MAC不提供数字签名,因为双方共享密钥。 2019/5/8 现代密码学理论与实践-11

11.4 散列函数 散列函数 一个散列函数以变长的报文M作为输入,产生定长的散列码H(M)作为输出,即报文摘要Message Digest. 散列码是报文所有比特的函数值,具有差错检测能力,报文任意一比特的改变都将引起散列码的改变。 h=H(M) 报文摘要的基本原理 对任意长度的明文m,经由哈希函数(杂凑函数)h产生固定长度的哈希值h(m),用来对明文作认证(authentication)或数字签名(digital signature)。哈希函数值是对明文的一种“指纹”(finger print)或是摘要(digest)。对哈希函数值的数字签名,就是对此明文的数字签名,可以用来提高数字签名的效率。 2019/5/8 现代密码学理论与实践-11

2019/5/8 现代密码学理论与实践-11

对散列函数的要求 h=H(M) 1. H可以应用于任意大小的数据块 2. H产生固定长度的输出 3. 对任意给定的明文x,计算H(x)容易,可由硬件或软件实现 4. 对任意给定的散列码h,找到满足H(x)=h的x,在计算上不可行,单向性 5. 对任何给定的分组x,找到满足y≠x且H(x)=H(y)的y,在计算上不可行,抗弱碰撞性 6. 找到任何满足H(x)=H(y)的偶对(x, y),在计算上不可行,抗强碰撞性 2019/5/8 现代密码学理论与实践-11

强哈希函数 条件1, 2, 3,4是所谓单向性问题(One-way) 条件5、6是对使用的哈希值的数字签名方法所做的安全保障,否则攻击者可由已知的明文及相关的数字签名任意伪造对其他明文的签名 条件6主要用于防范所谓的生日攻击法 能满足条件1-5的,称为弱哈希函数(Weak Hash Function) 能同时满足条件6的,称为强哈希函数(Strong Hash Function) 应用在数字签名上的哈希函数必须是强哈希函数 2019/5/8 现代密码学理论与实践-11

简单哈希函数 1978年,Rabin利用DES, 使用密文块链方式(CBC, Cipher Block Chaining)提出一种简单快速Hash函数: 2019/5/8 现代密码学理论与实践-11

简单哈希函数 将明文M分成固定长度64位的明文块(block)m1, m2, …, mn,使用DES的CBC操作方法,对每一明文块陆续加密 令h0 = 初始值,hi = Emi[hi-1]以及G = hn。 这种方法不使用密钥, G就是64位的哈希函数值, 不安全。 2019/5/8 现代密码学理论与实践-11

对哈希函数的攻击法 命题 若试图伪造明文M的签名,让签字人签名M’, 得到与M一样的签名, 即要找到满足H(M’)=H(M)的M’, 到底需要找多少明文才能找到这个对应的M’? Rabin的方法 若一个函数可能有n个函数值,且已知一个函数值h(x),任选k个任意数作为函数输入值,问:k必须多大才能保证至少找到一个输入值y,且 h(x) = h(y)的概率大于1/2? 结论:当k>n/2时,这个概率将超过1/2 2019/5/8 现代密码学理论与实践-11

Rabin的对哈希函数的攻击法 对于任意y,满足h(x) = h(y)的概率是1/n,不满足的概率是1-1/n。k个任意输入没有一个满足h(x) = h(y)的概率是(1-1/n)k,至少有一个满足的概率是1-(1-1/n)k。根据二项式定理, (1-a)k = 1-ka +(k(k-1)/2!)a2 – (k(k-1)(k-2)/3!)a3 … 当a→0时,(1-a)k →1-ka. 所以,至少有一个y满足h(x) = h(y)的概率几乎等于 1-(1-ka) = ka, 这里, a即为1/n, 至少有一个y满足h(x) = h(y)的概率几乎等于k/n。当k>n/2时,这个概率将超过1/2。 因此,看来64位的Hash函数,有264种组合,攻击者只要尝试k >n/2,即264/2 = 263个明文,就有可能获得超过1/2的成功机会。 2019/5/8 现代密码学理论与实践-11

Yuval对哈希函数的生日悖论攻击法 但是,Yuval提出用生日悖论(Birthday Paradox)对Robin的方法进行攻击,证明只需要232次的运算就有可能获得超过1/2的成功机会。 生日攻击的数学背景 到底k要多大,才能在k个人中,至少找到两个人有同一天生日的概率大于1/2? k个人的生日总排列数是365k,k个人有不同生日的总排列数为: N = Pk365 = 365!/(365-k)! 即第一个人可能有365种生日选择,第二个人必须不同于第一个人,所以有364种选择,依此类推。 2019/5/8 现代密码学理论与实践-11

对哈希函数的生日悖论攻击法 k个人有不同生日的概率 Q(365, k) = (365!/(365-k)!)/365k = 365!/(365k(365-k)!) k个人中至少有两个人有相同生日的概率是 P(365, k) = 1- Q(365, k) k要多大,才能保证在k个人中,至少有两个人同一天生日的概率大于1/2? 计算得P(365, 23) = 0.5073,即k = 23。 当 k = 100时,P(365, 100) = 0.999997。 可以这样解释,在23个人当中,考虑某一个人的特定生日,在剩下的22个人中能找到相同特定生日的概率是很小的, 即使剩余每个人都有不同的生日,也只有22/365概率;但是只考虑同一天生,只有 = 253种不同的组合。所以只要23个人,找到两人同一天生的概率大于1/2: 253/365 2019/5/8 现代密码学理论与实践-11

生日悖论 2019/5/8 现代密码学理论与实践-11

散列函数和MAC的安全性 穷举攻击 密码分析 散列函数 消息认证码 2n/2将决定散列码抗击强行攻击的强度 安全散列函数 2019/5/8 现代密码学理论与实践-11

安全散列码的一般结构 2019/5/8 现代密码学理论与实践-11

习题与思考题 第11章: 2019/5/8 现代密码学理论与实践-11