散列函数与消息认证码
无线网络安全技术应用11散列算法和MAC算法

Secure Hash Algorithm算法
1992年NIST制定了SHA(128位) 1993年SHA成为标准(FIPS PUB 180) 1994年修改产生SHA-1(160位) 1995年SHA-1成为新的标准,作为SHA-1
(FIPS PUB 180-1) 2002年发布修订版SHA-256,SHA-384,SHA-
T]
X散:列将码标用识K符xaI加D密x ,后密形文成EK签xy[名M发],送以给及A对。IDx和密文消息的
A:解密签名,用散列码验证消息,这时A只能验证消息 的密文而不能读取其内容。然后A将来自X的所有信息加 上时间戳并用Kay加密后发送给Y。
2019/11/16
41
直接数字签名方法2
用发送方的私钥对消息的hash码进行加密 (2) A→B: M||EKRa[H(M)]
提供数字签名
H(M) 受到密码算法的保护,例如MD5或SHA1;
只有A 能够生成EKRa[H(M)]
(2’) A→B: EK[M||EKRa[H(M)]] 提供保密性、数字签名。
引入仲裁者,通信双方都非常信任仲裁者。
2019/11/16
40
直接数字签名方法1
用发送方的私钥对整条消息进行加密来产生签名. (1) A→B: EKRa[M]
提供了鉴别与签名
只有A具有KRa进行加密; 传输中没有被篡改; 任何第三方可以用KUa 验证签名
(1’) A→B: EKUb [EKRa(M)] 提供了保密(KUb)、鉴别与签名(KRa)
仲裁者在这一类签名模式中扮演敏感和关 键的角色。
所有的参与者必须极大地相信这一仲裁机制工 作正常。(trusted system)
hmac 堆成算法

hmac 堆成算法HMAC(Hash-based Message Authentication Code)是一种用于数据完整性验证和身份认证的加密算法。
它结合了散列函数和密钥,通过在消息上应用散列函数并使用密钥对结果进行加密来生成一个验证码。
HMAC算法在网络通信和数据传输中被广泛应用,用于确保消息的完整性和可信性。
HMAC算法的核心思想是在消息上应用一个散列函数,并使用一个密钥对散列结果进行加密。
这个加密的结果就是HMAC值,它可以用于验证消息的完整性和真实性。
HMAC算法的安全性依赖于散列函数的抗碰撞性和密钥的保密性。
只有拥有正确的密钥,才能生成正确的HMAC值。
HMAC算法的应用非常广泛。
在网络通信中,HMAC可以用于验证消息的完整性,防止消息在传输过程中被篡改。
在电子商务中,HMAC可以用于验证支付请求的合法性,保护用户的资金安全。
在密码学中,HMAC可以用于生成消息认证码(MAC),用于验证消息的发送者身份。
HMAC算法的实现相对简单,可以使用各种编程语言进行实现。
在实际应用中,需要选择合适的散列函数和密钥长度,并进行适当的密钥管理和存储。
常用的散列函数有MD5、SHA-1、SHA-256等。
选择合适的散列函数和密钥长度可以提高HMAC算法的安全性。
HMAC算法的安全性依赖于密钥的保密性。
如果密钥泄露,攻击者可以生成正确的HMAC值,从而破坏消息的完整性和可信性。
因此,密钥的管理和保护至关重要。
在实际应用中,可以使用密钥交换协议和密钥存储技术来保护密钥的安全性。
HMAC算法的优点是简单高效,安全性较高。
它可以在计算资源有限的情况下提供可靠的消息认证和完整性验证。
同时,HMAC算法可以与各种散列函数和加密算法配合使用,提供更高级的安全性保护。
然而,HMAC算法也存在一些限制和弱点。
首先,HMAC算法依赖于密钥的安全性,如果密钥泄露,攻击者可以伪造正确的HMAC值。
其次,HMAC算法对散列函数的选择敏感,不同的散列函数可能导致不同的安全性。
第3讲 公钥密码和消息认证-(3)消息认证码

HMAC的安全性依赖于散列函数H的密码学属性:
• ①抗碰撞属性; • ②当应用于一个单独的消息分组时H的压缩函数的消息认证属性。
网络与信息安全
12
“挑战/响应”(Challenge/Response)身份认证
网络与信息安全
17
网络与信息安全
b bit S0
H(Si||M) 填充到b比特
n bit IV
HASH n bit
HMACK(M)
9
• 与ipad= 00110110进行异 或将导致K一半的比特翻转 。
• 与opad=01011010进行异 或将导致K一半的比特翻转 。
HMAC算法的有效实现
K+
ipad
b bit b bit
Yi:(0≤i≤L-1)是M的第i个分组, L:M的分组数,
b:是一个分组中的比特数( MD5的128,SHA-1的512)
n:嵌入的哈希函数所产生的哈希值的长度(MD5为128, SHA-1为160)
K:密钥,如果密钥长度大于b,则将密钥输入到哈希函数 中产生一个n比特长的密钥,K+是左边经填充0后的K, K+的长度为b比特,
• 消息认证码:它是一个需要密钥的算法,可以对可变长度 的消息进行认证,把输出的结果作为认证符。
网络与信息安全
3
利用Байду номын сангаас列函数来设计MAC原因
• ①一般的散列函数的软件执行速度比分组 密码的要快。
• ②密码散列函数的库代码来源广泛。
因此HMAC应运而生
密码技术模型

密码技术模型
密码技术模型是一种用于描述密码技术的概念性、理论模型,通常包括密码学的基本要素、假设、算法和安全性分析等方面。
以下是几种常见的密码技术模型:
1. 传统密码模型(Classical Cryptography Model):传统密码
模型主要用于描述古典密码技术,如凯撒密码和仿射密码等。
它通常包括明文空间、密文空间、密钥空间、加密算法和解密算法等。
2. 非对称密码模型(Asymmetric Cryptography Model):非对
称密码模型是一种基于两个互相关联、但具有不同的密钥的密码模型,也称为公钥密码模型。
它通常包括公钥空间、私钥空间、加密算法和解密算法等。
3. 对称密码模型(Symmetric Cryptography Model):对称密
码模型是一种基于相同密钥进行加密和解密的密码模型。
它通常包括密钥空间、加密算法和解密算法等。
4. 散列函数模型(Hash Function Model):散列函数模型用于
描述散列函数的基本特性和安全性要求。
它包括散列函数的输入空间、输出空间、安全性要求和安全性分析等。
5. 消息认证码模型(Message Authentication Code Model):消息认证码模型用于描述消息认证码的基本特性和安全性。
它通常包括消息认证码的输入空间、输出空间、密钥空间、安全性要求和安全性分析等。
需要注意的是,以上只是几种常见的密码技术模型,实际上还有其他的密码技术模型,如基于标签的密码模型、公钥基础设施模型等,每种模型都有其特定的应用领域和技术要求。
安全协议有哪些

安全协议有哪些1. 导言在现代信息化社会中,信息安全问题日益突出,各类网络攻击和数据泄露事件层出不穷。
为了保护信息系统和网络的安全,人们设计了各种安全协议。
安全协议是在通信过程中确保信息传输的安全性的一种方式。
本文将介绍几种常见的安全协议。
2. 对称加密协议对称加密协议是指通信双方使用相同的密钥进行加密和解密的协议。
常见的对称加密算法有DES、AES等。
2.1. DES(Data Encryption Standard)DES是一种对称加密算法,使用56位密钥对64位的数据进行加密和解密。
由于DES的密钥长度较短,容易被暴力破解,因此现在已经不再被广泛使用。
2.2. AES(Advanced Encryption Standard)AES是一种对称加密算法,使用128位、192位或256位密钥对数据进行加密和解密。
AES具有较高的安全性和性能,目前被广泛应用于各种领域。
3. 非对称加密协议非对称加密协议是指通信双方使用不同的密钥进行加密和解密的协议。
常见的非对称加密算法有RSA、Diffie-Hellman等。
3.1. RSARSA是一种非对称加密算法,通过生成一对公钥和私钥来实现加密和解密。
公钥用于加密数据,私钥用于解密数据。
RSA算法具有较高的安全性,广泛应用于数字签名、密钥交换等领域。
3.2. Diffie-HellmanDiffie-Hellman是一种密钥交换协议,用于在不安全的通信渠道上安全地交换密钥。
该协议利用了离散对数问题的困难性,使得通信双方可以协商出一个共享密钥,用于后续的加密通信。
4. 散列函数和消息认证码协议散列函数和消息认证码协议用于保证数据的完整性和真实性。
4.1. 散列函数散列函数是一种将任意长度的数据映射为固定长度摘要的函数。
常见的散列函数有MD5、SHA-1等。
散列函数具有单向性和抗碰撞性,被广泛用于数字签名、消息认证等领域。
4.2. 消息认证码消息认证码是一种用于验证消息真实性的技术。
哈希算法 分类

哈希算法分类“哈希算法分类”哈希算法是计算机科学中常用的一种算法,用于将任意长度的数据映射为固定长度的哈希值。
根据不同的特性和应用场景,哈希算法可以分为以下几类:1.散列函数(Hash Function):这是哈希算法最基本的分类。
散列函数接受输入,并将其映射为固定长度的哈希值。
常见的散列函数有MD5、SHA-1、SHA-256等。
散列函数具有快速计算、哈希值分布均匀等特点,常用于数据校验、密码存储等场景。
2.消息认证码(Message Authentication Code,MAC):MAC是一种基于密钥的哈希算法。
它使用一个密钥将输入数据和哈希值绑定在一起,以实现数据完整性和认证。
常见的MAC算法有HMAC、CMAC 等。
MAC算法广泛应用于数据完整性验证、数字签名等领域。
3.消息摘要(Message Digest):消息摘要是一种单向哈希函数,它将输入数据映射为固定长度的哈希值,但无法从哈希值恢复原始数据。
常见的消息摘要算法有SHA-1、SHA-256等。
消息摘要广泛应用于密码学、数据完整性验证等场景。
4.布隆过滤器(Bloom Filter):布隆过滤器是一种概率型数据结构,用于判断一个元素是否属于一个集合。
它使用多个散列函数将输入数据映射到位图中,并根据位图的结果进行判断。
布隆过滤器具有高效的查询速度和节省内存的特点,常用于缓存、数据去重等场景。
5.跳跃一致性哈希(Jump Consistent Hash):跳跃一致性哈希是一种特殊的哈希算法,用于实现分布式哈希表中的数据分布。
它通过将输入数据映射到一个范围内的整数值,并基于这个整数值选择相应的服务器节点。
跳跃一致性哈希算法具有高效的负载均衡和节点扩缩容特性,被广泛应用于分布式缓存、分布式数据库等场景。
在使用哈希算法时,需要根据具体的应用场景选择适合的算法类型。
同时,为了保障数据的安全性和完整性,还需要注意选择安全性较高的算法,并合理使用密钥和盐值等技术手段。
五个加密技术用于保护敏感数据

五个加密技术用于保护敏感数据在今天的数字化时代,随着信息技术的不断发展和普及,数据的安全性变得越来越重要。
特别是对于一些敏感数据,如个人隐私信息、商业机密等,保护数据的安全性变得尤为重要。
为了应对数据泄露和黑客攻击等安全威胁,人们开始使用各种加密技术来保护敏感数据。
本文将介绍五种常见的加密技术,它们被广泛应用于保护敏感数据。
首先,对称加密技术是最常见和广泛应用的一种加密技术。
该技术使用同一个密钥对数据进行加密和解密。
发送方使用该密钥将敏感数据加密,然后将加密后的数据传输给接收方,接收方再使用同样的密钥对数据进行解密。
对称加密技术具有加解密速度快的优点,并且安全性较高。
其中最著名的对称加密算法是AES (Advanced Encryption Standard),它被广泛应用于银行、电子商务等领域。
其次,非对称加密技术也是一种常见的加密技术。
与对称加密技术不同,非对称加密技术使用一对密钥,即公钥和私钥。
发送方使用接收方的公钥对数据进行加密,接收方使用私钥对数据进行解密。
公钥是公开的,任何人都可以使用该公钥对数据进行加密,但只有接收方拥有私钥才能解密。
这种技术的一个重要应用是数字签名,它可以验证数据的完整性和真实性。
第三,散列函数是一种不可逆的加密技术,它将输入数据映射成一串固定长度的字符串,称为散列值。
散列函数的一个重要特点是,即使输入数据有微小的改动,生成的散列值也会完全不同。
散列函数被广泛应用于电子商务系统的密码存储、数字证书等方面,以保护用户的密码和证书的安全性。
第四,消息认证码(MAC)是一种用于验证消息完整性和真实性的技术。
它使用一个密钥和一个消息作为输入,生成一个固定长度的字符串作为输出。
接收方可以使用相同的密钥和消息来验证生成的字符串是否与接收到的字符串相匹配。
MAC在保护通信中的数据完整性和真实性方面发挥着重要作用。
最后,公钥证书是一种基于非对称加密技术的安全技术,用于验证网站和服务的真实性和身份。
现代密码学第7章:散列函数

散列函数的使用方式
由于加密运算的速度较慢,代价较高, 而且很多加密算法还受到专利保护,因此在 不要求保密性的情况下,方式②和③将比其 他方式更具优势。
32
2.2 散列函数应满足的条件
散列函数的目的是为需认证的数据产生 一个“指纹”。为了能够实现对数据的认证, 散列函数应满足以下条件: ① 函数的输入可以是任意长。 ② 函数的输出是固定长。 ③ 已知x,求H(据认证算法
数据认证算法是最为广泛使用的消息认 证码中的一个,已作为FIPS Publication (FIPS PUB 113)并被ANSI作为X9.17标准。 算法基于CBC模式的DES算法,其初始向量 取为零向量。需被认证的数据(消息、记录、 文件或程序)被分为64比特长的分组D1, D2,…,DN,其中最后一个分组不够64比特 的话,可在其右边填充一些0,然后按以下 过程计算数据认证码(见图2):
16
1.2 产生MAC的函数应满足的要求 假定k>n,且敌手已得到M1和MAC1,其 中MAC1=CK1(M1),敌手对所有可能的密 钥值Ki求MACi=CKi(M1),直到找到某个Ki使得 MACi=MAC1。由于不同的密钥个数为2k,因 此将产生2k个MAC,但其中仅有2n个不同, 由于2k>2n,所以有很多密钥(平均有 2k/2n=2k-n个)都可产生出正确的MAC1,而 敌手无法知道进行通信的两个用户用的是哪 一个密钥,还必须按以下方式重复上述攻击:
21
1.2 产生MAC的函数应满足的要求
考虑到MAC所存在的以上攻击类型,可知它应 满足以下要求,其中假定敌手知道函数C,但不知 道密钥K: ① 如果敌手得到M和CK(M),则构造一满足 CK(M′)=CK(M)的新消息M′在计算上是不可行的。 ② CK(M)在以下意义下是均匀分布的: 随机选取两 个消息M、M′,Pr[CK(M)=CK(M′)]=2-n,其中n为 MAC的长。 ③ 若M′是M的某个变换,即M′=f(M),例如f为插入 一个或多个比特,那么Pr[CK(M)=CK(M′)] = 2-n。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七讲散列函数与消息认证码马春光machunguang@计算机科学与技术学院哈尔滨工程大学1 /•网络安全威胁:–被动攻击(Passive Attack):敌手通过侦听和截获等手段获取数据;–主动攻击(Active Attack):敌手通过伪造、重放、篡改、乱序等手段改变数据;图1 无线网络中的四种通信安全威胁(a)监听;(b)篡改;(c)伪造;(d)阻断2 /•消息认证(Message Authentication)的目的:–验证消息的完整性,确认数据在传送和存储过程中未受到主动攻击。
•消息认证的方式:–消息加密函数:加密整个消息,以消息的密文文件作为认证,可使用对称密码或公钥密码体制进行加密;–散列函数(Hash):将任意长度的消息变换为定长的消息摘要,并加以认证;–消息认证码(MAC):依赖公开的函数(密钥控制下)对消息处理,生成定长的认证标识,并加以认证;3 /提纲•1 散列函数–1.1 散列函数的定义–1.2 散列函数的通用结构–1.3 MD5•2 消息认证码–2.1 MAC函数–2.2 MAC的安全性–2.3 CBC-MAC•作业4 /提纲•1 散列函数–1.1 散列函数的定义–1.2 散列函数的通用结构–1.3 MD5• 2 消息认证码•作业5 /散列函数的定义•散列函数H 是一个公开的函数,它将任意长度的消息M变换为固定长度的散列码h 。
•h=H (M)–M:变长消息,H(M):定长的散列值•散列函数是一种算法,算法的输出内容称为散列码或者消息摘要。
•消息摘要要唯一地对应原始消息,如果原始消息改变并且再次通过散列函数,它将生成不同的消息摘要,因此散列函数能用来检测消息地完整性,保证消息从建立开始到收到为止没有被改变和破坏。
•运行相同算法的接受者应该收到系统的消息摘要,否则保温是不可信的。
•散列函数又称为:哈希(Hash )函数、数字指纹(Digital fingerprint)、压缩(Compression)函数、数据认证码(DataAuthentication Code)等6 /散列函数的要求•H 能用于任意大小的分组;•H 能产生定长的输出;•对任何给定的x,H(x)要相对易于计算,使得硬件和软件实现成为实际可能;•对任何给定的码h ,寻找x 使得H(x)=h 在计算上是不可行的,即单向性(one-way);•对任意给定的分组x,寻找不等于x 的y,使得H(x)=H(y)在计算上是不可行的,即弱抗冲突性(Weak Collision-free);•寻找对任意的(x, y) 对使得H(x)=H (y) 在计算上是不可行的,即强抗冲突性(Strong Collision-free);7 /提纲•1 散列函数–1.1 散列函数的定义–1.2 散列函数的通用结构–1.3 MD5• 2 消息认证码•作业8 /2.2 Hash函数的通用结构•由Ron Rivest于1990年提出MD4•几乎被所有Hash函数使用•具体做法:–把原始消息M分成一些固定长度的块Y i–最后一块padding 并使其包含消息M长度–设定初始值CV0–压缩函数f, CV i=f(CV i-1, Y i-1)–最后一个CV i为Hash值9 //提纲•1 散列函数–1.1 散列函数的定义–1.2 散列函数的通用结构–1.3 MD5• 2 消息认证码•作业11 /MD5 描述•1989年,Merkle提出Hash function模型•1990年,Ron Rivest提出MD4•1992年, Ron Rivest完成MD5 (RFC 1321) –/rfcs/rfc1321.html•在最近数年之前,MD5是最主要的Hash算法•现行美国标准SHA-1以MD5的前身MD4为基础•MD5(Message Digest)–输入:任意长度的消息–输入分组长度:512 bit–输出:128 bit 消息12 /(4)(3)13 /14/MD5 描述-(1)•消息填充•对消息进行填充,使其比特数与448模512同余,即填充长度为512的整数倍减去64,留出64比特在(2)中使用:•填充方法:填充比特串的最高位为1,其余各位均为0。
最少要补1比特,最多补512比特(补一个组)。
11||448mod512||448mod512,||||512M if M then M M ≡==+1||M M Padding=15/MD5 描述-(2)•附加消息长度值•(1)和(2)执行后,消息的长度为512的倍数,假设扩展后的长度为L ×512 比特,将消息以512比特为单位进行分组,用Y 0,Y 1,…,Y L -1表示。
•同样扩展后的消息以字(32比特)为单位可表示为M 2[0…N -1],N =L ×16。
216464||||||||mod 2,2M M LengthM M Padding Length Length M ===低位字节优先,表示为64bit长若初始长度大于,仅使用该长度的低64bit(4) (3)MM1M2一个分组16/MD5 描述-(3)•初始化MD缓存•MD为128bit,记为CVq,用于存放散列函数的中间及最终结果,CV= IV为初始化值。
•MD可表示为4个32bit的寄存器(A,B,C,D),它们也称为链接变量,其初始化如下:17 /输出结果:19 /H MD520 //128bit 的缓存值更新缓存T[0,1…64]32(2(sin())),0(sin())13232i i T INT abs i i abs i T bit bit =×≤≤的单位为弧度能用表示,提供了随机化的模式,消除了规律性单个512bit 分组的MD5处理过程(MD5压缩函数H MD5)每步操作形式22///单个512bit 分组的MD5处理过程(MD5压缩函数H MD5)116()(15)mod16()(53)()5mod16i i i i i i i ρρρ≤≤=+=+=234X[0..15]:保存当前512bit 待处理输入分组的值X[k] = M[q ×16 + k] = 在第q 个512位数据块中的第k 个32位字每次循环(4)的每步(16)内,X[i]的使用循序各不相同25/MD5的安全性•Berson 表明,对单循环MD5,使用不用的密码分析可能在合理的时间内找出能够产生相同摘要的两个消息,这个结果被证明对四个循环中的任意一个循环也成立,但作者没有能够提出如何攻击包含全部4个循环MD5的攻击。
•Boer 和Bosselaers 显示了即使缓存ABCD 不同,MD5对单个512bit 分组的执行将得到相同的输出(伪冲突)。
•Dobbertin 的攻击技术:使MD5的压缩函数产生冲突,即寻找:•MD5被认为是易受攻击的,逐渐被SHA-1和RIPEMD-160替代。
,, ()()x y x y H x H y ∃≠=、26/其他散列函数Hash小结•Hash函数把变长信息映射到定长信息•Hash函数不具备可逆性•Hash函数速度较快•Hash函数与对称密钥加密算法有某种相似性•对Hash函数的密码分析比对称密钥密码更困难•Hash函数可用于消息摘要•Hash函数可用于数字签名27 /提纲•1 散列函数•2 消息认证码–2.1 MAC函数–2.2 MAC的安全性–2.3 CBC-MAC–2.4 HMAC•作业28 /2.1 MAC函数•Message Authentication Code(MAC)–使用一个密钥生成一个固定大小的小数据块,并加入到消息中,称MAC,或密码校验和(cryptographicchecksum)。
•MAC的作用:–接收者可以确信消息M未被改变;–接收者可以确信消息来自所声称的发送者;–如果消息中包含顺序码(如HDLC,X.25,TCP),则接收者可以保证消息的正常顺序;•MAC函数类似于加密函数,但不需要可逆性。
因此在数学上比加密算法被攻击的弱点要少。
29 /提纲•1 散列函数•2 消息认证码–2.1 MAC函数–2.2 MAC的安全性–2.3 CBC-MAC–2.4 HMAC•作业32 /33/对MAC 的强行攻击(1)•函数域:任意长度的消息。
•值域:所有可能的MAC 和所有可能的密钥。
•假设:–MAC 的长度为n 比特→2 n 个可能的MAC–N 个消息,N ≥2 n–密钥的长度为k →2 k 个可能的密钥•假设攻击者使用强行攻击,且已经获得消息的明文和相应的MAC ,即( M i , MAC i ) 。
对MAC的强行攻击(2)•第1 轮:–给定M1 和MAC1=C K ( M1 ),对所有2 k个可能的密钥计算:MAC1=C K i ( M1 )i=1,2, …, 2 k–匹配数≈2 k-n,得到2 k-n个可能的密钥;•第2 轮:–给定M2 和MAC2=C K ( M2 ),对所有2 k-n个可能的密钥计算:MAC2=C K i ( M2 )i=1,2, …, 2 k-n–匹配数≈2 k-2n,得到2 k-2n 个可能的密钥;•……•如果k>n(设k=a×n),则这种攻击需要进行a 轮。
–共需要2 k次以上的MAC运算。
•如果k ≤n ,则第1轮就可以产生一个唯一对应的密钥,但仍然可能有多于一个密钥产生这一配对(当k < n 时),这时攻击者需对一个新的(M, MAC)进行相同的测试。
–共需要≥2 k次的MAC运算。
•由此可见,攻击者企图发现MAC 的密钥不小于甚至大于对同样长度的解密密钥的攻击。
34 /35/对MAC 的其它攻击•设M = (X 1||X 2||…|| X m ) 是一个由64比特X i 数据块连接而成,–定义△(M ) = X 1⊕X 2 ⊕…⊕X m C K (M ) = E K [△(M )]–其中⊕为异或操作,E 为ECB 工作模式的DES 算法•则:–密钥长度为56比特,MAC 长度为64比特,–攻击者至少需要256 次加密来决定密钥K 。
•设M’= (Y 1||Y 2||…|| Y m ),–其中Y 1, Y 2,…,Y m-1是替换X 1, X 2 ,…, X m -1的任意值,而Y m = Y 1⊕Y 2 ⊕…⊕Y m -1 ⊕△(M ) –则C K (M’)= E K [△(M ′)] = E K [Y 1⊕Y 2 ⊕…⊕Y m -1 ⊕Y m ]= E K [Y 1⊕Y 2 ⊕…⊕Y m -1 ⊕Y 1⊕Y 2 ⊕…⊕Y m -1 ⊕△(M )]= E K [△(M )]•这时消息M’和MAC =C K (M ) = E K [△(M )]是一对可被接收者认证的消息。