信息安全技术chapter8消息认证、完整性检验与HASH函数.ppt

上传人:b****2 文档编号:2644700 上传时间:2022-11-04 格式:PPT 页数:53 大小:1.56MB
下载 相关 举报
信息安全技术chapter8消息认证、完整性检验与HASH函数.ppt_第1页
第1页 / 共53页
信息安全技术chapter8消息认证、完整性检验与HASH函数.ppt_第2页
第2页 / 共53页
信息安全技术chapter8消息认证、完整性检验与HASH函数.ppt_第3页
第3页 / 共53页
信息安全技术chapter8消息认证、完整性检验与HASH函数.ppt_第4页
第4页 / 共53页
信息安全技术chapter8消息认证、完整性检验与HASH函数.ppt_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

信息安全技术chapter8消息认证、完整性检验与HASH函数.ppt

《信息安全技术chapter8消息认证、完整性检验与HASH函数.ppt》由会员分享,可在线阅读,更多相关《信息安全技术chapter8消息认证、完整性检验与HASH函数.ppt(53页珍藏版)》请在冰豆网上搜索。

信息安全技术chapter8消息认证、完整性检验与HASH函数.ppt

黄黄杰杰信息安全研究中心信息安全研究中心第八讲消息认证、完整性检验与HASH函数东南大学信息安全学科研究生学位课网络信息安全理论与技术本讲内容本讲内容消息认证和hash函数消息加密函数(MessageEncryption)消息认证码MAC(MessageAuthenticationCode)散列函数(HashFunction)Hash算法MD5SHA-1HMAC邮件服务器邮件服务器案案例例2From:

用户用户ATo:

员工:

员工B,C,D用户用户A方案方案1方案方案2认证需求认证需求泄密传输分析伪装内容修改顺序修改计时修改发送方否认接收方否认消息认证消息认证验证收到的消息确实来自声明的发送方且未验证收到的消息确实来自声明的发送方且未被修改被修改消息认证也可以验证消息的顺序和时间消息认证也可以验证消息的顺序和时间数字签名数字签名一种认证技术,一种认证技术,包含了防止发送方否认的方包含了防止发送方否认的方法法消息认证与数字签名消息认证与数字签名认证函数认证函数可用来产生认证符的函数分为三类:

(1)消息加密函数(MessageEncryption)用完整信息的密文作为对信息的认证。

(2)消息认证码MAC(MessageAuthenticationCode)MAC是消息和密钥的函数,产生一个固定长度的值作为认证标识(3)散列函数(HashFunction)是一个公开的函数,它将任意长的信息映射成一个固定长度的信息。

消息加密消息加密消息的自身加密可以作为一个认证的度量。

对称密钥模式和公开密钥模式有所不同。

对称加密对称加密如果明文具有一定的语法结构,接收方可以判断解密后明文的合法性,从而确认消息来自发送方而且中间未受到篡改。

如果明文为二进制文件,则难以判断解密后的消息是正确的明文。

内部错误控制和外部错误控制内部错误控制和外部错误控制公钥加密公钥加密保密性认证和签名公钥加密公钥加密既能实现保密性,又能完成认证和签名。

一次通信中要进行四次复杂的公钥算法。

消息认证码消息认证码原因有许多应用将同一消息广播给很多接受者;通信某一方处理的负荷很大,只能验证消息;明文形式的计算机程序进行认证;有些应用不关心保密性,而关心消息认证;将认证和保密性分开;解密的消息不再受到保护,但MAC可以提供长期的认证。

消息认证码消息认证码利用密钥生成一个固定长度的短数据块,称为消息认证码MAC,并将MAC附加在消息之后。

接收方通过计算MAC来认证该消息。

计算公式:

MAC=CK(M)M:

长度可变的消息K:

收发双方共享的密钥CK(M):

定长的认证符消息认证码的使用方式消息认证码的使用方式消息认证码的讨论消息认证码的讨论保密性与真实性是两个不同的概念从根本上说,信息加密提供的是保密性而非真实性加密代价大(公钥算法代价更大)某些信息只需要真实性,不需要保密性广播的信息难以使用加密(信息量大)网络管理信息等只需要真实性政府/权威部门的公告消息认证码的安全性消息认证码的安全性一般的加密算法:

k位密钥,穷举攻击需要大约2(k-1)次运算。

消息认证码:

密钥位数比MAC长,因此许多密钥都会产生正确的MAC,而攻击者却不知哪一个是正确的密钥。

例如:

80位密钥,32位的MAC。

第一次穷举攻击会得到大约248个可能的密钥。

第二次穷举攻击会得到大约216个可能的密钥。

第三次穷举攻击会得到唯一一个密钥,即发送方所使用的密钥。

不需要密钥的攻击不需要密钥的攻击考虑以下的MAC算法:

M=(X1X2Xm)是由64位分组Xi连接而成。

定义:

(M)=X1X2XmCK(M)=EK(M)其中加密算法为电子密码本方式DES,则密钥长为56位,MAC长为64位。

确定K的穷举攻击需执行至少256次加密。

不需要密钥的攻击方法不需要密钥的攻击方法设M=(Y1Y2Ym-1Ym)Ym=Y1Y2Ym-1(M)消息M和MAC=CK(M)=EK(M)是一对可被接收者认证的消息。

为什么?

用此方法,任何长度为64(m-1)位的消息可以作为欺骗性信息被插入!

对对MAC函数的要求函数的要求如果一个攻击者得到M和CK(M),则攻击者构造一个消息M使得CK(M)=CK(M)应在计算上不可行。

CK(M)应均匀分布,即:

随机选择消息M和M,CK(M)=CK(M)的概率是2-n,其中n是MAC的位数。

即MAC函数具有均匀分布的特征。

令M为M的某些变换,即:

M=f(M),(例如:

f表示逆转M中一位或多位,那么,PrCK(M)=CK(M)=2-n。

)例子:

基于例子:

基于DES的消息认证码的消息认证码数据认证算法DEA使用CBC(CipherBlockChaining)方式,初始向量为0。

它是使用最广泛的MAC算法之一。

将数据按64位分组,D1,D2,DN,必要时最后一个数据块用0向右填充。

运用DES加密算法E,密钥为K。

数据鉴别码(DAC)的计算如下:

O1=EK(D1)O2=EK(D2O1)O3=EK(D3O2)ON=EK(DNON-1)基于基于DES的消息认证码的消息认证码hash函数函数形式:

h=H(M)它以任意长度的消息做自变量,产生规定长度的消息摘要。

对于任意x,计算H(x)是容易的,软硬件均可实现。

性质1(抗弱碰撞),指对给定消息x,找到y,yx,且H(x)=H(y)在计算上是不可行的。

性质2(抗强碰撞),指满足H(x)=H(y)的(x,y)在计算上是不可行的。

注:

抗强碰撞自然含抗弱碰撞!

性质3(单向的)称散列函数H为单向的,是指计算h的逆函数H-1在计算上不可行。

HashHash函数的特点函数的特点将一个长度可变的消息将一个长度可变的消息MM转换为一个固定转换为一个固定长度的输出,称之为散列码或摘要长度的输出,称之为散列码或摘要与与MACMAC的区别:

没有使用密钥,函数输入的区别:

没有使用密钥,函数输入参数只有一个参数只有一个可以检测出消息是否发生变化可以检测出消息是否发生变化和加密结合可以用于认证和加密结合可以用于认证加密消息及散列码:

加密消息及散列码:

E(K,ME(K,M|HH(M)(M)对称加密散列码:

对称加密散列码:

MM|E(K,H(ME(K,H(M)E(K,H(ME(K,H(M)即为一即为一MACMAC函数函数公钥加密散列码:

公钥加密散列码:

MM|E(PRa,H(ME(PRa,H(M)典型的数字签名方案典型的数字签名方案对称密码加密签名:

对称密码加密签名:

E(K,ME(K,M|E(PRa,H(ME(PRa,H(M)带秘密值的散列码:

带秘密值的散列码:

MM|H(MH(M|SS)对称密码加密带秘密值的散列码对称密码加密带秘密值的散列码E(K,ME(K,M|H(MH(M|K)K)HASH算法Hash函数的一般结构函数的一般结构计算过程:

CV0=IV=初始n位值CVi=f(CVi-1,Yi-1),1=i|M|:

如果|M|448mod512,则|M1|=|M|+512填充内容:

1000附加消息长度M1M2,消息长度以64位表示若|M1|264,则仅取低64位|M2|为512的倍数,可分为长度为512的L个分组Y0,Y1,YL-1MD5算法流程图初始化缓冲区初始化缓冲区缓冲区长度:

128位用四个32位的寄存器(A,B,C,D)表示A=01234567(0x67452301)B=89ABCDEF(0xEFCDAB89)C=FEDCBA98(0x98BADCFE)D=76543210(0x10325476)括号内为每个寄存器的实际数值,前面为实际的存储顺序。

MD5算法流程算法流程分组处理消息CV0=IVCVi=HMD5(CVi-1,Yi)输出消息摘要MD=CVL一个消息分组的处理过程:

算法的核心是压缩函数,由四轮运算组成,每轮进行16步迭代。

每轮使用不同的逻辑函数,记为F,G,H,I。

T是事先产生的表格,包含64项,每项32位。

512位消息在每轮分为16个分组每个分组X为32位。

MD5压缩函数压缩函数每一轮包含对缓冲区ABCD的16步操作所组成的一个序列。

ab+(a+g(b,c,d)+Xk+Ti)s)其中,a,b,c,d=缓冲区的四个字,以一个给定的次序排列;g=基本逻辑函数F,G,H,I之一;s=对32位字循环左移s位Xk=Mq16+k=在第q个512位数据块中的第k个32位字Ti=表T中的第i个32位字;+=模232的加;ab+(a+g(b,c,d)+Xk+Ti)s)Functiongg(b,c,d)1F(b,c,d)(bc)(bd)2G(b,c,d)(bd)(cd)3H(b,c,d)bcd4I(b,c,d)c(bd)第一轮运算第一轮运算第二轮运算第二轮运算第三轮运算第三轮运算第四轮运算第四轮运算MD5的强度的强度特点:

Hash函数的每一位都是输入的每一位的函数。

迭代函数的复杂性使得输出对输入的依赖非常小。

找到Hash码相同的两条消息所需要的代价是264数量级。

找到具有给定摘要消息所要付出的代价为2128数量级。

MD5存在的安全问题存在的安全问题2004年,王小云证明MD5数字签名算法可以产生碰撞2007年,MarcStevens,ArjenK.Lenstra和BennedeWeger进一步指出通过伪造软件签名,可重复性攻击MD5算法。

2008年,荷兰埃因霍芬技术大学科学家成功把2个可执行文件进行了MD5碰撞。

2008年12月一组科研人员通过MD5碰撞成功生成了伪造的SSL证书。

SecureHashAlgorithm算法算法1992年NIST制定了SHA(128位)1993年SHA成为标准(FIPSPUB180)1994年修改产生SHA-1(160位)1995年SHA-1成为新的标准,作为SHA-1(FIPSPUB180-1)SHA-1要求输入消息长度264输入按512位的分组进行处理的SHA-1的摘要长度为160位基础是MD4MD5、SHA-1和和RIPEMD-160的比较的比较HMAC(Hash-basedMessageAuthenticationCodes)HMAC作为RFC2104并在SSL中使用采用密码HASH来设计MAC的原因:

Hash的执行速度比DES要快利用密码HASH的代码库密码HASH没有出口的限制设计目标:

不必修改而直接使用现有的hash函数。

如果需要更快或更好的hash函数,应能很容易的替代原来嵌入的hash函数。

保持hash函数原有的性能。

如果已知嵌入的hash函数的强度,则完全可以知道认证机制抗密码分析的强度。

HMAC算法结构算法结构HMAC用到的元素用到的元素H:

嵌入的hash函数(如MD5,SHA-1,RIPEMD-160等)IV:

hash函数输入的初始值Yi:

M的第i个分组,共有L个分组,每一分组包含b位。

K:

密钥K+:

为使K为b位长而在K左边填充0后所得的结果ipad:

00110110重复b/8次的结果opad:

01011100重复b/8次的结果HMAC的处理过程的处理过程对密钥K左边补0,得到b位的K+K+每个字节与ipad(00110110)作XOR以产生Si对(Si|M)进行hashK+每个字节与opad(01011010)作XOR以产生S0HMAC=fIV,S0|f(IV,Si|M)HMAC的实现方案的实现方案HASH函数的安全性函数的安全性一个明文与一个HASH值一一对应。

明文的任何一点微小的变化都会引起HASH值发生变化。

谢谢!

谢谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1