网络安全 介绍hash函数_第1页
网络安全 介绍hash函数_第2页
网络安全 介绍hash函数_第3页
网络安全 介绍hash函数_第4页
网络安全 介绍hash函数_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 回顾与总结n对称密码算法运算速度快、密钥短、多种用途(随机数产生、Hash函数)、历史悠久密钥管理困难(分发、更换)n非对称密码算法只需保管私钥、可以相当长的时间保持不变、需要的数目较小运算速度慢、密钥尺寸大、历史短需要PKI网络通信的攻击威胁网络通信的攻击威胁泄露:把消息内容发布给任何人或没有合法密钥的进程泄露:把消息内容发布给任何人或没有合法密钥的进程流量分析:发现通信双方之间信息流的结构模式,可以用来确流量分析:发现通信双方之间信息流的结构模式,可以用来确定连接的频率、持续时间长度;还可以发现报文数量和长度等定连接的频率、持续时间长度;还可以发现报文数量和长度等伪装:从一个假冒信息源向

2、网络中插入消息伪装:从一个假冒信息源向网络中插入消息内容篡改:消息内容被插入、删除、变换、修改内容篡改:消息内容被插入、删除、变换、修改顺序修改:插入、删除或重组消息序列顺序修改:插入、删除或重组消息序列时间修改:消息延迟或重放时间修改:消息延迟或重放否认:接受者否认收到消息;发送者否认发送过消息否认:接受者否认收到消息;发送者否认发送过消息信息安全的需求n保密性( Confidentiality)n完整性 (Integrity)n数据完整性,未被未授权篡改或者损坏n系统完整性,系统未被非授权操纵,按既定的功能运行n可用性 (Availability)n鉴别 (Authenticity)n实体

3、身份的鉴别,适用于用户、进程、系统、信息等n不可否认性 ( Non-repudiation)n防止源点或终点的抵赖n目目 录录1.消息鉴别与散列函数消息鉴别与散列函数2.散列算法散列算法3.数字签名数字签名定义n消息鉴别(Message Authentication): 是一个证实收到的消息来自可信的源点且未被篡改的过程。n散列函数( Hash Functions): 一个散列函数以一个变长的报文作为输入,并产生一个定长的散列码,有时也称报文摘要,作为输出。n数字签名(Digital Signature) 是一种防止源点或终点抵赖的鉴别技术。 鉴别和认证鉴别和认证鉴别鉴别:authentica

4、tion 真伪性真伪性 (1) 用来验证发送的数据,特别是一个信息的完整性的过程 (2) 在用户开始使用系统时对其身份进行的确认认证:认证:Certification 资格审查资格审查 计算安全学用语,指为了鉴定一个计算机系统或网络的设计和它提供的手段在多大程度上能满足预定的安全要求而进行的技术评估鉴别的结构鉴别的结构任何消息认证或数字签名机制可以看到两个层次:任何消息认证或数字签名机制可以看到两个层次:底层底层必须有某种函数产生一个认证标识:一个必须有某种函数产生一个认证标识:一个用于认证一个报文的值用于认证一个报文的值高层高层认证协议以底层函数为原语,使接收者完认证协议以底层函数为原语,使

5、接收者完成报文的鉴别成报文的鉴别鉴别的目的鉴别的目的信源识别:验证信息的发送者是真正的,而不信源识别:验证信息的发送者是真正的,而不是冒充的是冒充的验证信息的完整性,在传送或存储过程中未被验证信息的完整性,在传送或存储过程中未被篡改,重放或延迟等篡改,重放或延迟等鉴别模型鉴别模型鉴别系统的组成鉴别系统的组成鉴别编码器和鉴别译码器可抽象为鉴别函数鉴别编码器和鉴别译码器可抽象为鉴别函数一个安全的鉴别系统,需满足一个安全的鉴别系统,需满足(1)指定的接收者能够检验和证实消息的合法性、真实性和完)指定的接收者能够检验和证实消息的合法性、真实性和完整性整性(2)消息的发送者和接收者不能抵赖)消息的发送者

6、和接收者不能抵赖(3)除了合法的消息发送者,其它人不能伪造合法的消息)除了合法的消息发送者,其它人不能伪造合法的消息鉴别函数分类鉴别函数分类消息加密消息加密:整个消息的密文作为认证标识:整个消息的密文作为认证标识消息鉴别码消息鉴别码(MAC):公开函数:公开函数+密钥产生一个密钥产生一个固定长度的值作为认证标识固定长度的值作为认证标识散列函数:一个公开函数将任意长度的消息映散列函数:一个公开函数将任意长度的消息映射到一个固定长度的哈希值,作为认证标识射到一个固定长度的哈希值,作为认证标识签名函数分类签名函数分类 (1)消息加密)消息加密对称加密保密和鉴别对称加密保密和鉴别AB:():()kkA

7、BkA E MBB D MM与 共享密钥,查看是否为有意义的明文对称加密保密和鉴别对称加密保密和鉴别A 提 供 保 密 仅 A 和 B 共 享 k 提 供 一 定 程 度 的 鉴 别 仅 来 自 传 输 中 不 会 被 更 改 需 要 某 种 结 构 和 冗 余 不 提 供 签 名 接 收 人 可 以 伪 造 报 文 发 送 人 可 以 伪 造 报 文明文明文M的自动确定的自动确定M定义为有意义的明文序列,便于自动识别定义为有意义的明文序列,便于自动识别强制定义明文的某种结构,这种结构是易于识别但又强制定义明文的某种结构,这种结构是易于识别但又不能复制且无需借助加密的不能复制且无需借助加密的可

8、以在加密前对每个报文附加检错码,即所谓的可以在加密前对每个报文附加检错码,即所谓的帧检帧检验序列号验序列号或或检验和检验和FCS内部差错控制和外部差错控制内部差错控制和外部差错控制差错控制差错控制更难于构造更难于构造公钥加密保密性公钥加密保密性ABbKUb 提供保密 仅B有KR 能解密 不提供鉴别 任何一方均可以使用加密报文而假称它是发自A的公钥加密鉴别和签名公钥加密鉴别和签名ABaAa 提 供 鉴 别 和 签 名 仅有 KR 可 进 行 加 密 传 输 中 不 会 被 更 改 需 要 某 种 结 构 或 冗 余 任 何 一 方 均 能 使 用 KU 验 证 签 名公钥加密保密、鉴别和签名公钥

9、加密保密、鉴别和签名ABab KR 提供鉴别和签名 KU 可提供保密性(2)消息鉴别码)消息鉴别码MAC消息鉴别码消息鉴别码使用一个密钥生成一个固定大小的小数据块,并加入到消息中,使用一个密钥生成一个固定大小的小数据块,并加入到消息中,称称MAC, 或密码校验和(或密码校验和(cryptographic checksum) 1、接收者可以确信消息接收者可以确信消息M未被改变未被改变 2、接收者可以确信消息来自所声称的发送者、接收者可以确信消息来自所声称的发送者 3、如果消息中包含顺序码(如、如果消息中包含顺序码(如HDLC,X.25,TCP),则接收者),则接收者可以保证消息的正常顺序可以保证

10、消息的正常顺序MACMAC函数类似于加密函数,但不需要可逆性。因此在数学上比函数类似于加密函数,但不需要可逆性。因此在数学上比加密算法被攻击的弱点要少加密算法被攻击的弱点要少MKMAC函数域:任意长度的报文函数域:任意长度的报文值域:所有可能的值域:所有可能的MAC和所有可能的密钥和所有可能的密钥MAC一般为多对一函数一般为多对一函数消息鉴别消息鉴别ABkkMACC (M) kABMAB:MC (M);为和 共享的密钥,为明文 提供鉴别 仅A和B共享密钥k 消息鉴别与保密,鉴别与明文连接消息鉴别与保密,鉴别与明文连接ABk 2k 1AB : E MC( M ) 12 提 供 鉴 别 仅 A 和

11、 B 共 享 密 钥 k 提 供 保 密 仅 A 和 B 共 享 密 钥 k 消息鉴别与保密,鉴别与密文连接消息鉴别与保密,鉴别与密文连接ABk 2k 1k 2AB :EMC(E(M )12 提 供 鉴 别 仅 A 和 B 共 享 密 钥 k 提 供 保 密 仅 A 和 B 共 享 密 钥 k 消息鉴别消息鉴别 VS 常规加密常规加密保密性与真实性是两个不同的概念保密性与真实性是两个不同的概念根本上根本上,信息加密提供的是保密性而非真实性信息加密提供的是保密性而非真实性加密代价大加密代价大(公钥算法代价更大公钥算法代价更大)鉴别函数与保密函数的分离能提供功能上的灵活性鉴别函数与保密函数的分离能

12、提供功能上的灵活性某些信息只需要真实性某些信息只需要真实性,不需要保密性不需要保密性 广播的信息难以使用加密广播的信息难以使用加密(信息量大信息量大) 网络管理信息等只需要真实性网络管理信息等只需要真实性 政府政府/权威部门的公告权威部门的公告函数域:任意长度的报文函数域:任意长度的报文值域:所有可能的值域:所有可能的MAC和所有可能的密钥和所有可能的密钥假设假设假设攻击者使用强行攻击,且已经获得报文的明文和相应的假设攻击者使用强行攻击,且已经获得报文的明文和相应的MAC,MAC,即即 假设假设 222nnkMACnMACNNk长度为 比特个可能的个报文,其中密钥的长度为个可能的密钥对对MAC

13、的强行攻击的强行攻击11(,)M MACkn对对MAC的强行攻击的强行攻击11111,()(),ikkMMACCMMACCMk(k-n)第1轮 给定: for i=1 to 2 : 试探 匹配数2无法确定真正的密钥k22222,()(),ikkMMACCMMACCM(k-n)(k-2 n)第2轮 给定: for i=1 to 2: 试探 匹配数2无法确定真正的密钥kka na 若,则需要进行 轮,比寻找等长度的解密密钥强度还高对对MAC的强行攻击的强行攻击如果如果 knkn,则第一轮就可以产生一个唯一对应。仍然可,则第一轮就可以产生一个唯一对应。仍然可以有多于一个以有多于一个keykey产生这

14、一配对,这时攻击者只需对一个新产生这一配对,这时攻击者只需对一个新的的(message, MAC)(message, MAC)进行相同的测试进行相同的测试由此可见,强力攻击企图发现由此可见,强力攻击企图发现authentication keyauthentication key不小于不小于甚至大于对同样长度的解密甚至大于对同样长度的解密keykey的攻击的攻击对对MAC的其它攻击的其它攻击设设M = (X1 | X2 | | Xm) 是一个由是一个由64位位Xi数据块连接而成数据块连接而成 定义定义 (M) = X1 X2 . Xm CK(M) = EK (M) 其中其中 为异或操作;为异或操

15、作;E为为 ECB工作模式的工作模式的DES算法算法则则Key length = 56 bitMAC length = 64 bit强力攻击需要至少强力攻击需要至少256次加密来决定次加密来决定K对对MAC的其它攻击的其它攻击(自阅自阅)设设M = ( Y1 | Y2 | | Ym-1 | Ym) 其中其中 Y1, Y2, , Ym-1是替换是替换 X1, X2,Xm-1的任意值,而的任意值,而 Ym = Y1 Y2 , , Ym-1 (M) 则则 CK(M) = EK (M) = EKY1 Y2 , , Ym-1 Ym = EKY1 Y2 , , Ym-1 (Y1 Y2 , , Ym-1 (

16、M) = EK (M)这时消息这时消息M 和和 MAC= CK(M) = EK (M)是一对可被接收者认证的消息是一对可被接收者认证的消息用此方法,任何长度为用此方法,任何长度为64 (m-1)位的消息可以被插入任意的欺骗性位的消息可以被插入任意的欺骗性信息信息MAC应具备的性质应具备的性质n如果一个攻击者得到如果一个攻击者得到M和和CK(M),则攻击者构造一个消息,则攻击者构造一个消息M使使得得CK(M)=CK(M)应具有计算复杂性意义下的不可行性应具有计算复杂性意义下的不可行性nCK(M)应均匀分布,即:随机选择消息应均匀分布,即:随机选择消息M和和M, CK(M)= CK(M)的概率是的

17、概率是2-n,其中,其中n是是MAC的位数的位数n令令M为为M的某些变换,即:的某些变换,即:M=f(M),(例如:,(例如:f可以涉及可以涉及M中中一个或多个给定位的反转),在这种情况下,一个或多个给定位的反转),在这种情况下,PrCK(M)= CK(M) = 2-n例子:基于例子:基于DES的报文鉴别码的报文鉴别码n算法来源算法来源nFIPS publication (FIPS PUB 113)nANSI standard (X9.17)n使用使用CBC(Cipher Block Chaining)方式,初方式,初始向量为始向量为IV=0基于基于DES的报文鉴别码的报文鉴别码将数据按将数据

18、按64位分组,位分组,D1, D2, , DN,必要时最后一个数据块用,必要时最后一个数据块用0向右填向右填充充运用运用DES算法算法E,密钥,密钥K数据认证码数据认证码(DAC)的计算如下:的计算如下:O1 = EK(D1)O2 = EK(D2O1)O3 = EK(D3O2)ON = EK(DNON-1)FIPS PUB 113基于基于DES的报文鉴别码的报文鉴别码将数据按将数据按64位分组,位分组,D1, D2, , DN,必要时最后一个数据块用,必要时最后一个数据块用0向右填向右填充充运用运用DES算法算法E,密钥,密钥K数据认证码数据认证码(DAC)的计算如下:的计算如下:O1 = E

19、K(D1)O2 = EK(D2O1)O3 = EK(D3O2)ON = EK(DNON-1)目目 录录1.消息鉴别与散列函数消息鉴别与散列函数2.散列算法散列算法3.数字签名数字签名散列函数散列函数H(M): 输入为任意长度的消息输入为任意长度的消息M; 输出为一个固定长输出为一个固定长度的散列值,称为消息摘要度的散列值,称为消息摘要( (MessageDigest)H(M)是消息是消息M的所有位的函数并提供错误检测能力:的所有位的函数并提供错误检测能力:消息中的任何一位或多位的变化都将导致该散列值的消息中的任何一位或多位的变化都将导致该散列值的变化变化H(M)又称为:哈希函数、数字指纹(又称

20、为:哈希函数、数字指纹(Digital finger print)、压缩(、压缩(Compression)函数、数据鉴别码函数、数据鉴别码(Dataauthentication code)等)等散列函数的定义散列函数的定义散列函数:散列函数:M:变长报文变长报文H(M):定长的散列值定长的散列值主要用于为文件、报文或其它分组数据产生指纹主要用于为文件、报文或其它分组数据产生指纹()hH M散列函数基本用法散列函数基本用法(1)kAB :EMH (M ) 提 供 鉴 别 加 密 保 护 H ( M ) 提 供 保 密 仅 A 和 B 共 享 密 钥 k 散列函数基本用法散列函数基本用法(2)kA

21、B:ME H(M) 提供鉴别 加密保护H(M)散列函数基本用法散列函数基本用法(3)aKR 提供鉴别和数字签名 加密保护H(M) 仅A能生成E H(M)散列函数基本用法散列函数基本用法(4)akK RAB:E MEH (M ) 提 供 鉴 别 和 数 字 签 名 提 供 保 密 仅 A和 B共 享 密 钥 k 散列函数基本用法散列函数基本用法(5)AB: MH(MS) 提供鉴别 仅A和B共享消息S 散列函数基本用法散列函数基本用法(6)kAB : EMH (MS ) 提 供 鉴 别 仅 A 和 B 共 享 S 提 供 保 密 仅 A 和 B 共 享 密 钥 k HASH 安全性:安全威胁一安全

22、性:安全威胁一(a)伪造方式一:Oscar以一个有效签名(x,y)开始,此处y= sigk(h(x)。首先他计算Z=h(x),并企图找到一个x满足h(x)=h(x)。若他做到这一点,则(x,y)也将为有效签名。为防止这一点,要求函数h具有无碰撞特性。 散列函数h称为是弱无碰撞的,是指对给定消息x X,在计算上几乎找不到异与x的x X使h(x)=h(x)。(b)伪造方式二:Oscar首先找到两个消息x=x,满足h(x)=h(x),然后Oscar把x 给Bob且使他对x的摘要h(x)签名,从而得到y,那么(x,y)是一个有效的伪造。 散列函数h被称为是强无碰撞的,是指使得h(x)=h(x)的偶对(

23、x, x)在计算上不可行。 安全威胁三(c)伪造方式三:在散列函数的用法(e)中, 秘密值S本身并不发送, 如果散列函数不是单向的,攻击者截获到M和H(M|S). 然后通过某种逆变换获得M|S, 因而攻击者就可以得到S. 称散列函数h为单向的,是指计算h的逆函数h-1在计算上不可行。散列函数的要求散列函数的要求H能用于任意大小的分组能用于任意大小的分组H能产生定长的输出能产生定长的输出对任何给定的对任何给定的x,H(x)要相对易于计算,使得硬件和软件实现成为实要相对易于计算,使得硬件和软件实现成为实际可能际可能对任何给定的码对任何给定的码h,寻找,寻找x使得使得H(x)=h在计算上是不可行的,

24、即单向在计算上是不可行的,即单向性性对任何给定的分组对任何给定的分组x,寻找不等于,寻找不等于x的的y,使得,使得H(x)=H(y)在计算上是在计算上是不可行的,即弱抗冲突性不可行的,即弱抗冲突性寻找对任何的寻找对任何的(x,y)对使得对使得H(x)=H(y)在计算上是不可行的,即强抗冲在计算上是不可行的,即强抗冲突性突性Hash函数的分类n根据安全水平:散列函数h称为是弱无碰撞的,是指对给定消息x X,在计算上几乎找不到异于x的x X使h(x)=h(x)。散列函数h被称为是强无碰撞的,是指在计算上几乎不可能找到相异的x,x使得h(x)=h(x)。 Hash函数的分类n根据是否使用密钥n带秘密

25、密钥的Hash函数:消息的散列值由只有通信双方知道的秘密密钥K来控制。此时,散列值称作MAC。n不带秘密密钥的Hash函数:消息的散列值的产生无需使用密钥。此时,散列值称作MDC。安全威胁四:生日攻击安全威胁四:生日攻击n攻击者的主要攻击目标是找到一对或更多对碰撞消息。n攻击Hash算法和计算碰撞消息的方法。(1)一般的方法,攻击任何类型的Hash算法,比如“生日攻击”;(2)特殊的方法,只能用于攻击某些特殊的Hash算法。 n题目描述题目描述n密码学中有种很有意思的攻击方式叫做生日攻击。其原理是基于这样一个神奇的结论:如果一个房间里有23个人,那么其中两个人生日相同的概率超过50%,当人数上

26、升到40人时,这一概率提高到了89%以上。注意生日相同指的是两个人的出生月份和日期相同,不考虑年份。这个结论听上去很神奇,因为一年有365天,但是,事实上你可以通过概率知识验证这个结论。n计算机率的方法是,首先找出 表示 n 个人中,每个人的生日日期都不同的概率。n上式等于np(n)表示n个人中2人生日相同的概率n当 n=23发生的概率大约是0.507( )p n生日攻击n假定使用64位的散列码,是否安全?n如果采用传输加密的散列码和不加密的报文M,对手需要找到M ,使得H(M)=H(M),以便使用替代报文来欺骗接收者.n一种基于生日悖论的攻击可能做到这一点.相关问题n给定一个散列函数,有n个

27、可能的输出,输出值为H(x),如果H有k个随机输入, k必须为多大才能使至少存在一个输入y,使得H(y)=H(x)的概率大于0.5.n对单个y, H(y)=H(x)的概率为1/n,反过来H(y)H(x)的概率为1-(1/n).n如果产生k个随机值y,他们之间两两不等的概率等于每个个体不匹配概率的乘积,即1-(1/n)k,这样,至少有一个匹配的概率为1-1-(1/n)k.要概率等于0.5,只需k=n1/2n对长度为m位的散列码,共有2m个可能的散列码,若要使任意的x,y 有H(x)=H(y)的概率为0.5,只需 k=2m/2nM越长攻击上计算越接近不可行性;n例如:对于SHA-1算法,269次运

28、算需要年左右的时间,在实际计算上仍然是不可行的 n坚固的哈希函数可通过设计有效的碰撞处理机制,或增加数字摘要的位数来增加复杂度,以减少碰撞出现的概率, Birthday Attacks: exampleA准备两份合同M和M ,一份B会同意,一份会取走他的财产而被拒绝A对M和M各做32处微小变化(保持原意),分别产生232个64位hash值根据前面的结论,超过0.5的概率能找到一个M和一个M,它们的hash值相同A提交M,经B审阅后产生64位hash值并对该值签名,返回给AA用M替换MHash必须足够长(64 128 160)Hash vs MACMAC需要对全部数据进行加密需要对全部数据进行加

29、密MAC速度慢速度慢Hash是一种直接产生鉴别码的方法是一种直接产生鉴别码的方法常用常用Hash算法算法SHA-1MD5 RIPEMD-160 HMACMD5nMD5即Message-Digest Algorithm 5,用于确保信息传输完整一致。是计算机广泛使用的散列算法之一(又译摘要算法摘要算法、哈希算法),主流编程语言普遍已有MD5实现。n将数据(如汉字)运算为另一固定长度值,是散列算法的基础原理,MD5的前身有MD2、MD3和MD4。nMD5一度被广泛应用于安全领域。但是由于MD5的弱点被不断发现以及计算机能力不断的提升,现在已经可以构造两个具有相同MD5的信息,使本算法不再适合当前的

30、安全环境。目前,MD5计算广泛应用于错误检查。例如在一些BitTorrent下载中,软件通过计算MD5和检验下载到的碎片的完整性。nMD5算法应用算法应用n其典型应用是对一段Message(字节串)产生Fingerprint(指纹),以防止被篡改。比如,在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构为: MD5 (httpd-2.2.0.tar.bz2) = n402b90a2e47205f94b3b1d91e1a8c459,这就是httpd-2.2.0.tar.bz2文件的数字签名。n如果在以后传播这个文件的过程中,无

31、论文件的内容发生了任何形式的改变(包括人为修改,如Repack进木马病毒,或者下载过程中线路不稳定引起的传输错误等),只要你对这个文件重新计算MD5时就会发现信息摘要不相同,由此可以确定你得到的只是一个不正确的文件。nMD5还广泛用于加密和解密技术上。 例如在UNIX系统中用户的密码就是以MD5(或其它类似算法)经加密后存储在文件系统中。MD5算法描述算法描述 - step 1n在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448。因此,信息的字节长度(Bits Length)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。填充的

32、方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。MD5描述描述step 2初始化初始化MD缓存缓存MD为为128bit,用于存放散列函数的中间及最终结果,用于存放散列函数的中间及最终结果MD可表示为可表示为4个个32bit的寄存器的寄存器(A,B,C,D),初始化如下,初始化如下:MD5描述描述step 3压缩:压缩:4个循环的压缩

33、算法个循环的压缩算法n步骤4:处理消息块(512位=16个32位字)。一个压缩n函数是本算法的核心(HMD5),它包括4轮处理。四轮处理具n有相似的结构,但每次使用不同的基本逻辑函数,记为F,G,H,lMD5描述描述step 4输出输出HMD5单个单个512bit分组的分组的MD5处理过程处理过程(MD5压缩函数)压缩函数)当前正在处当前正在处理的理的512比特分组比特分组128bit的缓存值的缓存值更新缓存更新缓存T0,16432(2(sin( ),0(sin( )13232iiTINTabsiiabsiTbitbit的单位为弧度能用表示,提供了随机化的模式,消除了规律性每步操作形式每步操作

34、形式单个单个512bit分组的分组的MD5处理过程处理过程(MD5压缩函数)压缩函数)116( )(15 ) mod16( )(53 ) mod16( )5 mod16iiiiiii234X0.15:保存当前保存当前512bit待处理输入分组的值待处理输入分组的值Xk = Mq16 + k = 在第在第q个个512位数据块中的第位数据块中的第k个个32位字位字每次循环每次循环(4)的每步的每步(16)内,内,Xi的使用循序各不相同的使用循序各不相同MD5的安全性的安全性Berson表明,对单循环表明,对单循环MD5,使用不用的密码分析可能在合理的,使用不用的密码分析可能在合理的时间内找出能够产

35、生相同摘要的两个报文,这个结果被证明对四时间内找出能够产生相同摘要的两个报文,这个结果被证明对四个循环中的任意一个循环也成立,但作者没有能够提出如何攻击个循环中的任意一个循环也成立,但作者没有能够提出如何攻击包含全部包含全部4个循环个循环MD5的攻击的攻击Boer和和Bosselaers显示了即使缓存显示了即使缓存ABCD不同,不同,MD5对单个对单个512bit分组的执行将得到相同的输出分组的执行将得到相同的输出(伪冲突)伪冲突)Dobbertin的攻击技术:使的攻击技术:使MD5的压缩函数产生冲突,即寻找的压缩函数产生冲突,即寻找MD5被认为是易受攻击的,逐渐被被认为是易受攻击的,逐渐被S

36、HA-1和和RIPEMD-160替代替代,( )( )xy xyH xH y、但Hash小结小结Hash函数把变长信息映射到定长信息函数把变长信息映射到定长信息Hash函数不具备可逆性函数不具备可逆性Hash函数速度较快函数速度较快Hash函数与对称密钥加密算法有某种相似性函数与对称密钥加密算法有某种相似性对对Hash函数的密码分析比对称密钥密码更困难函数的密码分析比对称密钥密码更困难Hash函数可用于消息摘要函数可用于消息摘要Hash函数可用于数字签名函数可用于数字签名目目 录录1.消息鉴别与散列函数消息鉴别与散列函数2.散列算法散列算法3.数字签名数字签名报文鉴别的局限性报文鉴别的局限性用

37、于保护通信双方免受第三方攻击用于保护通信双方免受第三方攻击无法防止通信双方的相互攻击无法防止通信双方的相互攻击n信宿方伪造报文信宿方伪造报文n信源方否认已发送的报文信源方否认已发送的报文引入数字签名,是笔迹签名的模拟引入数字签名,是笔迹签名的模拟数字签名的性质数字签名的性质传统签名的基本特点传统签名的基本特点n能与被签的文件在物理上不可分割能与被签的文件在物理上不可分割n签名者不能否认自己的签名签名者不能否认自己的签名n签名不能被伪造签名不能被伪造n容易被验证容易被验证数字签名是传统签名的数字化数字签名是传统签名的数字化n能与所签文件能与所签文件“绑定绑定”n签名者不能否认自己的签名签名者不能

38、否认自己的签名n容易被自动验证容易被自动验证n签名不能被伪造签名不能被伪造数字签名的性质数字签名的性质必须能够验证作者及其签名的日期时间必须能够验证作者及其签名的日期时间必须能够认证签名时刻的内容必须能够认证签名时刻的内容签名必须能够由第三方验证,以解决争议签名必须能够由第三方验证,以解决争议数字签名分类数字签名分类签名方式签名方式n直接数字签名直接数字签名direct digital signaturen仲裁数字签名仲裁数字签名arbitrated digital signature安全性安全性 无条件安全的数字签名无条件安全的数字签名 计算上安全的数字签名计算上安全的数字签名可签名次数可签

39、名次数一次性的数字签名一次性的数字签名 多次性的数字签名多次性的数字签名直接数字签名直接数字签名直接数字签名直接数字签名直接数字签名直接数字签名直接数字签名的缺点直接数字签名的缺点验证模式依赖于发送方的保密密钥验证模式依赖于发送方的保密密钥 发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而他人伪造了他的签名窃,从而他人伪造了他的签名 通常需要采用与私有密钥安全性相关的行政管理控制手段来制止通常需要采用与私有密钥安全性相关的行政管理控制手段来制止或至少是削弱这种情况,但威胁在某种程度上依然存在或至少是削弱这种情况,但威胁在某

40、种程度上依然存在 改进的方式例如可以要求被签名的信息包含一个时间戳(日期与时改进的方式例如可以要求被签名的信息包含一个时间戳(日期与时间),并要求将已暴露的密钥报告给一个授权中心间),并要求将已暴露的密钥报告给一个授权中心X的某些私有密钥确实在时间的某些私有密钥确实在时间T被窃取,敌方可以伪造被窃取,敌方可以伪造X的签名及的签名及早于或等于时间早于或等于时间T的时间戳的时间戳仲裁数字签名仲裁数字签名仲裁数字签名仲裁数字签名引入仲裁者引入仲裁者 所有从发送方所有从发送方X到接收方到接收方Y的签名消息首先送到仲裁者的签名消息首先送到仲裁者A A将消息及其签名进行一系列测试,以检查其来源和内容将消息

41、及其签名进行一系列测试,以检查其来源和内容 A将消息加上日期并与已被仲裁者验证通过的指示一起发给将消息加上日期并与已被仲裁者验证通过的指示一起发给Y仲裁者在这一类签名模式中扮演敏感和关键的角色仲裁者在这一类签名模式中扮演敏感和关键的角色 所有的参与者必须极大地相信这一仲裁机制工作正常所有的参与者必须极大地相信这一仲裁机制工作正常仲裁数字签名单密钥加密方式仲裁数字签名单密钥加密方式1数字签名数字签名仲裁数字签名单密钥加密方式仲裁数字签名单密钥加密方式仲裁数字签名单密钥加密方式仲裁数字签名单密钥加密方式2仲裁数字签名双密钥加密方式仲裁数字签名双密钥加密方式仲裁数字签名双密钥加密方式仲裁数字签名双密

42、钥加密方式数字签名算法数字签名算法普通数字签名算法普通数字签名算法 EIGamal RSA DSS/DSA不可否认的数字签名算法不可否认的数字签名算法群签名算法群签名算法盲签名算法盲签名算法RSA签名方案签名与加密签名提供真实性(authentication)加密提供保密性(confidentiality)“签名+加密”提供“真实性+保密性”两种实现方式: (AB)先签名,后加密: EKUbM|SigA(M)先加密,后签名: EKUb(M)|SigA(EKUb(M)方式的问题:发生争议时,B需要向仲裁者提供自己的私钥安全漏洞: 攻击者E截获消息,把SigA(EKUb(M)换成SigE(EKUb

43、(M),让B以为该消息来自E保存信息多:除了M,SigA(EKUb(M), 还要保存EKUb(M) (KUb可能过期)DSS数字签名n是由美国国家标准化研究院和国家安全局共同开发的。由于它是由美国政府颁布实施的,主要用于与美国政府做生意的公司,其他公司则较少使用,它只是一个签名系统,而且美国政府不提倡使用任何削弱政府窃听能力的加密软件,认为这才符合美国的国家利益。 n 公布于1994年5月19日的联邦记录上,并于1994年12月1日采纳为标准DSS。DSS为EIGamal签名方案的改进。DSS(Digital Signature Standard) DSS签名方案算法自阅DSS签名和验证DSS的特点DSS的签名比验证快得多DSS不能用于加密或者密钥分配s-1 mod q要

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论