报文鉴别与数字签名

合集下载

7数字签名与鉴别协议

7数字签名与鉴别协议
2020/2/5
相互鉴别
• 利用常规加密方法进行相互鉴别不得不从 Needham—Schroeder 协 议 谈 起 , 它采 用 了常规加密体制和密钥分配中心KDC技术 。尽管这个协议本身存在一定的安全漏洞 ,但是后来发展的很多鉴别协议都是在
NS Needham—Schroeder协议的基础上
扩展而成的。
– 能与所签文件“绑定” – 签名者不能否认自己的签名 – 签名不能被伪造 – 容易被验证
2020/2/5
数字证书
• 数字签名用来保证信息传输过程中信息的 完整和提供信息发送者的身份的确认。
• 数字证书采用公开密钥体制(例如RSA) 。每个用户设定一仅为本人所知的私有密 钥,用它进行解密和签名;同时设定一公 开密钥,为一组用户所共享,用于加密和 验证签名。
击。另外,如果在报文中加入时间戳,由于
电子邮件潜在的时延,时间戳的作用非常有 限。
2020/2/5
• 公开密钥加密方法适合电子邮件 • AB: EKUb ( Ks ),Eks(M)
– 关心机密,比使用公钥加密全文更高效
• AB: M, EKRa ( H( M ) )
– 关心鉴别,可能换签名
• AB: EKUb ( M, EKRa ( H( M ) ) )
(1)AKDC:(IDa,IDb,Ra)。 通信方A将由自己的名字IDa,通信方B的名 字IDb和随机数Ra组成的报文传给KDC。
2020/2/5
(2)KDCA: EKa(Ra, IDb, Ks, EKb(Ks, IDa))。 KDC产生一随机会话密钥Ks。他用与通信方B
共享的秘密密钥Kb对随机会话密钥Ks和通信方A 名字组成的报文加密。然后用他和通信方A共享 的秘密密钥Ka对通信方A的随机值、通信方B的 名字、会话密钥Ks和已加密的报文进行加密, 最后将加密的报文传送给通信方A。

报文鉴别与数字签名

报文鉴别与数字签名

数字签名技术•消息鉴别与散列函数•数字签名消息鉴别与散列函数•消息鉴别•散列函数消息鉴别9定义•消息鉴别(Message Authentication):是一个证实收到的消息来自可信的源点且未被篡改的过程。

•散列函数(Hash Functions):一个散列函数以一个变长的报文作为输入,并产生一个定长的散列码,有时也称报文摘要,作为输出。

•数字签名(Digital Signature):是一种防止源点或终点抵赖的鉴别技术。

消息鉴别?为什么需要消息鉴别•内容修改:消息内容被插入、删除、修改。

•顺序修改:插入、删除或重组消息序列。

•时间修改:消息延迟或重放•冒充:从一个假冒信息源向网络中插入消息消息鉴别9鉴别的目的•鉴别的主要目的有二:第一,验证信息的发送者是真正的,而不是冒充的,此为信源识别;第二,验证信息的完整性,在传送或存储过程中未被篡改,重放或延迟等。

消息鉴别9鉴别函数可用来做鉴别的函数分为三类:(1) 加密:以整个报文的密文作为它的鉴别符。

(2) 消息鉴别码MAC(Message Authentication Code):公开函数+密钥产生一个固定长度的值作为鉴别标识(3) 散列函数(Hash Function)是一个公开的函数,它将任意长的信息映射成一个固定长度的信息。

消息加密9消息的自身加密可以作为一个鉴别的量。

9对称密钥模式9公开密钥模式消息鉴别散列函数Hash Function•H(M): 输入为任意长度的消息M; 输出为一个固定长度的散列值,称为消息摘要(Message Digest)。

•这个散列值是消息M的所有位的函数并提供错误检测能力:消息中的任何一位或多位的变化都将导致该散列值的变化。

•又称为:哈希函数、数字指纹(Digital finger print)、压缩(Compression)函数、紧缩(Contraction )函数、数据鉴别码DAC(Data authentication code)、篡改检验码MDC(Manipulation detection code)散列函数9HASH函数是将一个任意长的输入变成固定长度的输出的函数,一般输出的长度为128位或160位。

第8章 报文鉴别技术

第8章 报文鉴别技术

18
MAC的应用——只提供鉴别
AB: M||CK(M) Provides authentication-- only A and B share K
19
MAC的应用——密文鉴别
该方案不可取
AB: EK2 [M]||CK(EK2 [M])—密文与鉴别连接 Provides authentication -- Using K1 Provides confidentiality -- Using K2
23
散列函数
• hash function:哈希函数、摘要函数(报文鉴别码 特例)。 • 输入:任意长度的消息报文 M。 • 输出:一个固定长度的散列码值 H(M)。 • 散列码值是报文中所有比特的函数值,并具有差错检 测能力,报文中任意内容的变化将导致散列码的改 变。 • 单向函数。 • 散列算法自身不保密,需要某些手段来保护散列值
7
鉴别函数的分类
• 基于报文加密方式的鉴别: 以整个报文的密文作为 鉴别符。 • 报文鉴别码(MAC)方式。 • 散列函数方式: 采用一个公共散列函数,将任意长 度的报文映射为一个定长的散列值,并以散列值作 为鉴别符。
8
基于报文加密方式的鉴别—常规对程加密
对称密钥加密方式 :加密的同时提供保密和鉴别。
2
网络通信的安全威胁
(1)泄漏:消息的内容被泄漏没有合法权限的人或过程。 加强消息和报文的保密性,通过加密手段 (2)伪造:以假冒源点的身份向网络中插入报文; 防范的一般方法是消息鉴别技术,数字 (3)消息篡改:内容篡改、序号篡改、时间篡改 (4)行为抵赖 签名也有防信息伪造和篡改的能力,是 包括防止信源或信宿抵赖的鉴别技术 • 接收端否认收到某报文; • 源点否认发过某报文。 数字签名 (5)流量分析:发现通信双方的通信方式。在一个面向 连接的应用中,可以用来确定连接的频率和持续时 间长度。在一个面向连接或无连接的应用中,可以 报文鉴别提供了一种证实收到的报文来自可信的源 用来确定报文数量和长度。 点且未被篡改的过程,它也可证实序列编号和及时 性。

网络管理与安全-网络安全导读

网络管理与安全-网络安全导读
网络安全 21 网络管理与安全
加密技术
对称数据加密技术
根据数据加密的方式,可以将密码技术分为对称数据加密技术和非对称数 据加密技术。 对称加密,又称为密钥加密,是指加密和解密过程均采用同一把秘密钥匙 ,通信时双方都必须具备这把钥匙,并保证这把钥匙不被泄漏。一旦密钥泄漏 ,只要获得密钥的人就可以利用这把钥匙加密或解密,原来加密过的密文就不 具有任何保密性了。所以对称密钥加密技术的关键就是要保存好密钥。 通信双方采用对称加密技术进行通信前,双方必须先商定一个密钥,这种 商定密钥的过程称为分发密钥。发送方使用这一密钥,并采用合适的加密算法 将所要发送的明文转变为密文,然后在网络中传送给接收方,密文到达接收方 后,接收方用解密算法(通常是发送方所使用的加密算法的逆运算),利用双 方约定的密钥将密文转变为与发送方一致的明文。
网络安全
17
网络管理与安全
网络安全技术
网络安全中的主要技术
.....
..... (6)防火墙技术
.....
防火墙是用一个或一组网络设备,包括硬件和软件,在两个或多个网 络间保护一个网络不被另一个网络攻击的安全技术。防火墙通常位于内部 网或Web站点与Internet之间的一个路由器或一台计算机上。防火墙如同一 个防盗门,保证门内的系统安全。在Internet上,通过防火墙来隔离风险区 域与安全区域的连接,但不防碍人们对风险区域的访问。防火墙可以监控 进出网络的通信数据,仅让安全、核准的信息进入,抵制对企业构成威胁 的数据进入。 防火墙的主要技术包括数据包过滤和应用代理服务。 虽然防火墙技术能在内部网络和外部网络之间建立一道安全屏障,但 也存在一定的局限性:不能完全防范外部刻意的人为攻击,不能防范内部 用户攻击,不能防止病毒或受病毒感染的文件的传输。

第03章消息鉴别与数字签名

第03章消息鉴别与数字签名

3. 第三轮 HH( a,b,c,d,Mj,s,ti) 16 次
4. 第四轮 II( a,b,c,d,Mj,s,ti) 16 次
ti = 4294967296*abs(sin(i)) 整数部分
最后 a,b,c,d=a+AA,b+BB,c+CC,d+DD
()
3.2 数字签名
? 手写签名与数字签名
? 手写签名作用:鉴别、核准、负责等作用,表 示签名者对文件的认同,产生某种 承诺或法律 上的效应 。
?附加在数据单元上的一些数据或是对数据单元所作的密码变换这种附加在数据单元上的一些数据或是对数据单元所作的密码变换这种数据和变换允许数据单元接收者用以确认数据单元来源和数据单元完整性并保护数据防止被人允许数据单元接收者用以确认数据单元来源和数据单元完整性并保护数据防止被人包括接收者进行伪造
第3章 消息鉴别与数字签名
数据块,即MAC ,并附加到消息后面传输, 接收方利用与发送方共享的密钥进行鉴别。 ? MAC 提供消息完整性保护, 可以在不安全信 道中传输 ,因为MAC 生成需要密钥。
3.1.2 -1 消息鉴别码原理
源A
宿B
M
||
K
C M
K
C
C(K,M)
图3-2 MAC 鉴别原理图
比较
通信双方AB 共享密钥 K ,A ?B, 则A 计算MAC ,其中: M —明文 C---MAC 函数 K--- 共享的密钥 MAC--- 消息鉴别码 MAC=C( K ,M)
3.1.3 基于散列函数的鉴别
? 散列函数(Hash) 是消息鉴别码(MAC) 的一 种变形。散列函数与消息鉴别码相同点:
? 输入都是可变大小 M ; ? 输出都是固定大小散列码 H(M)

计算机网络安全 第三章 网络安全基础3数字签名

计算机网络安全 第三章 网络安全基础3数字签名

数字签名原理
(2)利用自己的私钥加密消息摘要得到数字签名A,并将数字签 名附在原消息后面
数字签名原理
(3)通讯时用户A将自己的原文和签名文一起通过网络送给通讯 对方即用户B
数字签名原理
2.接收方验证过程
接收方B接收到发送方A的签名消息后,对A的签名消息进 行验证的过程如下: (1)将消息中的原消息与数字签名分离出来

优点:
通信各方之间无须共享任何信息,从而避免了联手作弊; 只要 KRa 安全,则不会出现伪造 A 发送的消息; 消息的内容是保密的,包括对 A 在内。
基于公开密钥的数字签名技术
基本原理 公钥PKA和私钥SKA一一对应; 由公证机构证明公钥PKA和用户A的绑定关系; 证明拥有(或者知道)私钥SKA的用户X就是 用户A; 建立报文P和私钥SKA之间的关联,就可确定 报文P由用户A发送。
数字签名的目的是使发送者无法抵赖曾经发送过报文P; 通信双方均需到权威机构注册; 用户A发送给用户B的报文,附带时间戳T和随机数RA先发 送给权威机构; 权威机构在转发给用户B的信息中附带用密钥KBB加密发 送者、时间戳和报文摘要后的密文,KBB只有权威机构知 道; 由权威机构对报文P、发送者、发送时间进行认证。
计算机网络安全
第三章 网络安全基础(3)
第3章
加密算法;
报文摘要算法; 数字签名;
网络安全基础
认证协议;
IPSec。
这些算法一方面是实现保密性、完整性和 不可抵赖性的核心,另一方面是实现其他网 络安全技术的基础。
数字签名
问题的提出
假定John向Mary发送一个带鉴别的报文,可能会出现 如下的争执: 1、Mary可能伪造不同的报文,并声称它来自John。 Mary只要简单地生成一个报文,并附加使用由John和 Mary所共享的密钥生成的鉴别码即可。 2、John可以否认发送过该报文。因为Mary伪造一个 报文是可能的,无法证明John发送过该报文这一事实。

第10章 数字签名与鉴别协议

第10章 数字签名与鉴别协议

1. 2.
1. 2.
1. 数字签名
• 需仲裁的数字签名 方案示例讨论
方案(a)和(b)存在的问题 1. X必须确信A不会泄露Kxa,也不会产生虚假的签名。(仲裁能和 收方结成联盟来伪造发方的签名。) 2. Y必须确信A只有在散列码正确且确是X签名的情况下才发送。 (仲裁能和发方结成联盟来否认一个签名报文 。) 3. 双方必须确信A能公平地解决争端。(仲裁作用。) 方案(c)的优点 1. 通信前各方没有共享任何信息,可防止结盟欺骗的发生。 2. 假定KRa是安全的,即使KRx已不安全,日期不对的报文不会 被发送。 3. 从X发给Y的报文内容对A和其他任何人都是保密的。
M
KRa H E
||
EKRa[H(M)] D (c)散列及公开密钥加密:鉴别和签名 H M KUa D 比较
M
KRa H E
||
E
D K
K
EK[M||EKRa[H(M)]] EKRa[H(M)] (d)散列及公开密钥加密:保密、鉴别和签名
1. 数字签名
• 直接数字签名 方案弱点
方案的有效性依赖于发方私有密钥的安全性。
2. 鉴别协议
• 相互鉴别
相互鉴别的常规加密改进方案建立新会话的方案 1. A → B:EKb[IDA || Ks || Tb], N’a 2. B → A: N’b, EKa[N’a] 3. A → B:EKa[N’b] 建立新会话的方案的安全保障 – 信任状的过期时间Tb验证报文中的票据没有过期。 – 新产生的现时N’a和N’b将向每方保证这不是重放攻击。
1. 数字签名

– – – – –
密码学上对数字签名的需求:
签名必须是依赖于要签名报文的比特模式。 签名必须使用对发送者来说是惟一的信息,以防伪造和抵赖。 数字签名的产生必须相对简单。 数字签名的识别和证实必须相对简单。 伪造一个数字签名在计算上是不可行的,无论是通过对已有的 数字签名来构造新报文,还是对给定的报文构造一个虚假的数 字签名。 保留一个数字签名的备份在存储上是现实可行的。

消息鉴别与数字签名课件

消息鉴别与数字签名课件
3.1. 消息鉴别
完整性是安全的基本要求之一。篡改消息是对通 信系统的主动攻击常见形式。
被篡改的消息是不完整的;信道的偶发干扰和故障也 破坏消息完整性。
接收者能检查所收到的消息是否完整; 进一步接收者能识别所收到的信息是否源于所声称的
主体。即消息来源的真实性
保障消息完整性和真实性的手段: 消息鉴别技术
1. 泄密
保密 2.
通信业务量分析
消息 3. 鉴别
4.
数字 5.
签名
伪造: 攻击者假冒发方身份,向网络插入一条消 息;或假冒接收方发送一个消息确认。
篡改:内容篡改 序号篡改 时间篡改
行为抵赖
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
基于消息加密方式 以整个消息的密文作为鉴别符
基于消息鉴别码(MAC)3.1.2 发送方利用公开函数+密钥产生一个固定长度的 值作为鉴别标识,并与消息一同发送
基于散列函数 3.1.3 采用hash函数将任意长度的消息映射为一个定长 的散列值,以此散列值为鉴别码。MAC方式的一 种特例
最近几年消息鉴别符的热点转向 Hash函数导 出MAC的方法
一是作为领导干部一定要树立正确的 权力观 和科学 的发展 观,权 力必须 为职工 群众谋 利益, 绝不能 为个人 或少数 人谋取 私利
第3章 消息鉴别与数字签名
经典密码学->现代公开的计算机环境
保密有效系统地保障电子数据的机密性、完整性 和真实性
公开的计算机网络环境中,传输中的数据可能 遭受到威胁(5种):
3.1.2 -1 消息鉴别码原理
消息和MAC一起发给接收方。接收方对收到的 消息利用相同的密钥K计算,得出新的MAC。 如果接收到的MAC与计算得出的MAC相等:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字签名技术•消息鉴别与散列函数•数字签名消息鉴别与散列函数•消息鉴别•散列函数消息鉴别9定义•消息鉴别(Message Authentication):是一个证实收到的消息来自可信的源点且未被篡改的过程。

•散列函数(Hash Functions):一个散列函数以一个变长的报文作为输入,并产生一个定长的散列码,有时也称报文摘要,作为输出。

•数字签名(Digital Signature):是一种防止源点或终点抵赖的鉴别技术。

消息鉴别?为什么需要消息鉴别•内容修改:消息内容被插入、删除、修改。

•顺序修改:插入、删除或重组消息序列。

•时间修改:消息延迟或重放•冒充:从一个假冒信息源向网络中插入消息消息鉴别9鉴别的目的•鉴别的主要目的有二:第一,验证信息的发送者是真正的,而不是冒充的,此为信源识别;第二,验证信息的完整性,在传送或存储过程中未被篡改,重放或延迟等。

消息鉴别9鉴别函数可用来做鉴别的函数分为三类:(1) 加密:以整个报文的密文作为它的鉴别符。

(2) 消息鉴别码MAC(Message Authentication Code):公开函数+密钥产生一个固定长度的值作为鉴别标识(3) 散列函数(Hash Function)是一个公开的函数,它将任意长的信息映射成一个固定长度的信息。

消息加密9消息的自身加密可以作为一个鉴别的量。

9对称密钥模式9公开密钥模式消息鉴别散列函数Hash Function•H(M): 输入为任意长度的消息M; 输出为一个固定长度的散列值,称为消息摘要(Message Digest)。

•这个散列值是消息M的所有位的函数并提供错误检测能力:消息中的任何一位或多位的变化都将导致该散列值的变化。

•又称为:哈希函数、数字指纹(Digital finger print)、压缩(Compression)函数、紧缩(Contraction )函数、数据鉴别码DAC(Data authentication code)、篡改检验码MDC(Manipulation detection code)散列函数9HASH函数是将一个任意长的输入变成固定长度的输出的函数,一般输出的长度为128位或160位。

9单向Hash的输出不依赖于输入9Hash主要用于完整性校验和身份认证9常见的Hash函数算法有:MD5,SHA消息鉴别•消息鉴别码MAC使用一个密钥生成一个固定大小的小数据块,并加入到消息中,称MAC (Message Authentication Code),或密码校验和(cryptographic checksum)MAC = CK(M)1、接收者可以确信消息M未被改变。

2、接收者可以确信消息来自所声称的发送者;3、如果消息中包含顺序码(如HDLC,X.25,TCP),则接收者可以保证消息的正常顺序;MAC函数类似于加密函数,但不需要可逆性。

因此在数学上比加密算法被攻击的弱点要少。

散列函数MD5算法安全散列函数(SHA)消息认证码(MAC)散列函数单向散列函数是将任意长度的消息M映射成一个固定长度散列值h的函数:h=H(M)其中,h的长度为m。

散列函数•散列函数要具有单向性,则必须满足如下特性:9给定M,很容易计算h。

9给定h,根据H(M)=h反推M很难。

9给定M,要找到另一消息M'并满足H(M)=H(M')很难。

单向散列函数工作模式消息分组1 消息分组2压缩函数压缩函数IV …… 消息分组n 填充位压缩函数函数值散列函数•给定一任意长度的消息输入,单向函数输出长为m 的散列值。

•压缩函数的输入是消息分组和前一分组的输出(对第一个压缩函数,其输入为消息分组1和初始化向量IV);输出是到该点的所有分组的散列,即分组M i 的散列为•h i =f (M i , h i −1)•该最后一分组的散列就是整个消息的散列。

MD5 算法9MD算法(Message Digest Algorithm信息摘要算法)由Rivest从二十世纪八十年代末开发的系列散列算法的合称。

9MD算法是让大容量信息在用数字签名软件签系统署积重难返人密匙前被”压缩”成一种保密的格式,即把一个任意长度的字节串变成一个定长的大整数。

91990年开发出MD4算法,1991年推出MD5算法9MD5以512位分组来处理输入的信息,每一分组又被划分为16个32位子分组,经过一系列的处理后,算法的输出由四个32位分组组成,最后级联后生成一个128位散列值MD5算法L ×512 bit =N ×32 bit消息K bit100…0填充位消息长度(K mod 264)Y 0512 bit512H MD5Y 1512H MD5CV 1128128IV512 bit ……Y L£-1512H MD5128位消息摘要128512 bit CV L -1MD5 算法MD5算法MD5算法包括以下五个步骤。

1) 附加填充位•填充消息,使其长度为一个比512的倍数小64位的数。

填充方法:在消息后面填充一位1,然后填充所需数量的0。

填充位的位数从1~512。

填充之后的消息长度M ≡448(mod 512)2) 附加长度将原消息长度的64位表示附加在填充后的消息后面。

当原消息长度大于264时,用消息长度mod 264填充。

这时,消息长度恰好是512的整数倍。

令M[0 1…N−1]为填充后消息的各个字(每字为32位),N是16的倍数。

MD5算法3) 初始化MD缓冲区初始化用于计算消息摘要的128位缓冲区。

这个缓冲区由四个32位寄存器A、B、C、D表示。

寄存器的初始化值为(按低位字节在前的顺序存放):A: 01234567B: 89ab cd efC: fe dc ba98D: 76543210MD5算法4) 按512位的分组处理输入消息这一步为MD5的主循环,包括四轮,如下图所示。

每个和128比特循环都以当前的正在处理的512比特分组Yq 缓冲值ABCD为输入,然后更新缓冲内容。

++++第四轮第三轮第二轮第一轮A BC DCV qY qA B C DCV q +1单个512比特分组的MD5主循环处理MD5算法四轮的操作类似,每一轮进行16次操作。

各轮的操作过程如下图所示。

c +++<<<s+非线性函数b da M jT[i]c b daMD5某一轮的执行过程MD5算法MD5算法•每轮使用的非线性函数不同,在第一轮操作之前,首先把A、B、C、D复制到另外的变量a、b、c、d中。

这四个非线性函数分别为(其输入/输出均为32位字):F(X,Y,Z) = (X∧Y)∨((~X) ∧Z)G(X,Y,Z) = (X∧Z)∨(Y∧(~Z))H(X,Y,Z) = X xor Y xor ZI(X,Y,Z) = Y xor(X∨(~Z))其中,∧表示按位与;∨表示按位或;~表示按位反;xor表示按位异或。

MD5算法•此外,由图可知,这一步中还用到了一个有64个元素的表T[1..64],T[i]=232×abs(sin(i)),i的单位为弧度。

MD5算法5) 输出•由A、B、C、D四个寄存器的输出按低位字节在前的顺序(即以A的低字节开始、D的高字节结束)得到128位的消息摘要。

•MD5算法的运算均为基本运算,比较容易实现且速度很快。

安全散列函数(SHA)•SHA是美国NIST和NSA共同设计的安全散列算法(Secure Hash Algorithm),用于数字签名标准DSS(Digital Signature Standard)。

•1992年NIST制定了SHA(128位)•1993年SHA成为标准•SHA的修改版SHA–1(160位)于1995年作为美国联邦信息处理标准公告(FIPS PUB 180–1)发布•SHA-1要求输入消息长度< 264•SHA-1的摘要长度为160位•SHA–1产生消息摘要的过程类似MD5,如图所示。

SHA-1算法L ×512 bit =N ×32 bit 消息K bit 100 0填充位消息长度(K mod 264)Y 0512 bit 512H SHAY 1512H SHACV 1160160IV512 bit ¡-…Y L-1512H SHA160位消息摘要160512 bit CV L -1SHA 算法SHA–1的输入为长度小于264位的消息,输出为160位的消息摘要。

具体过程如下。

1) 填充消息:填充方法和MD5完全相同2) 初始化缓冲区在运算过程中,SHA 要用到两个缓冲区,两个缓冲区均有五个32位的寄存器。

第一个缓冲区标记为A 、B 、C 、D 、E ;第二个缓冲区标记为H 0、H 1、H 2、H 3、H 4。

此外,运算过程中还用到一个标记为W 0、W 1、…、W 79的80个32位字序列和一个单字的缓冲区TEMP 。

在运算之前,初始化{H j }:SHA 算法3) 按512位的分组处理输入消息SHA运算主循环包括四轮,每轮20次操作。

SHA用到一个逻辑函数序列f0、f1、…、f79。

每个逻辑函数的输入为三个32位字,输出为一个32位字(4) 输出:160位的摘要SHA 算法SHA-1与MD5的比较SHA-1MD5 Hash值长度160 bit128 bit 分组处理长512 bit512 bit 步数80(4×20)64(4×16)最大消息长≤264 bit不限非线性函数3(第2、4轮相同)4常数个数464SHA和MD5•MD5使用little-endian •128位hash值太短•Dobbertin在1996年找到了两个不同的512bit块,它们在MD5计算下产生相同的hash•至今还没有真正找到两个不同的消息,它们的MD5的hash相等•MD5不是足够安全的••SHA-1使用big-endian •抗穷举攻击:2160•没有发现两个不同的512-bit块,它们在SHA-1计算下产生相同的“hash”•速度:慢于MD5•安全性优于MD5消息认证码(MAC)•与密钥相关的单向散列函数通常称为MAC,即消息认证码:MAC=C(M)K•其中,M为可变长的消息;K为通信双方共享的密钥;C为单向函数。

•MAC可为拥有共享密钥的双方在通信中验证消息的完整性;也可被单个用户用来验证他的文件是否被改动,如下图。

MCⅡKMCK比较C K (M)源端A目的端B MAC 应用于消息认证•在此讨论IP安全协议强制实现的MAC,也就是由RFC2104定义的HMAC。

•HMAC全称为Keyed-Hash Message Authentication Code,它用一个秘密密钥来产生和验证MAC。

相关文档
最新文档