09-消息认证码
- 格式:ppt
- 大小:1.38 MB
- 文档页数:42
密码学基础(四)-消息验证码消息的完整性保密性与完整性考虑⼀个现实模型:⼀个⽤户想要与银⾏在internet上进⾏通信,当银⾏收到⼀条消息说要从这个⽤户的账户上转1000$到另⼀个账户上,那么银⾏必须确认两件事:1. 请求是否被验证,也就是说这个⽤户是否真的发起了这个请求,还是说是这个请求是由某个敌⼿发起的。
2. 假设这个请求确实是由合法⽤户发起的,那么这个请求的详细细节是否⼜真的是这个⽤户请求的内容呢?需要注意的是,在⽹络通信中的纠错码并不能保证确认上⾯的第⼆个要求,因为纠错码是⽤来检测并纠正影响通信的⼀⼩部分随即发⽣的错误,但是⽆法抵抗能够⾃由选择在任何地⽅出现任意数量错误的恶意敌⼿。
消息认证码的定义⽬前所讨论的消息认证码(Message Authentication Codes, MAC)可以⽤于检测消息是否被敌⼿修改,带并不具备公开可认证性,因为这⾥的消息认证码是基于通信双⽅共享同⼀个密钥⽽设计的。
⼀个MAC有三个PPT上的算法构成的MAC := (Gen, Mac, Vrfy):密钥⽣成算法Gen:将安全参数1n作为输⼊然后输出⼀个密钥 k ,并且密钥长度 |k| ≥ n。
标签⽣成算法Mac:将密钥 k 以及明⽂m∈{0, 1}*作为输⼊,然后输出标签 t 。
这个算法可能是随机化的,所以记作 t ← Mac k(m)确定性认证算法Vrfy:将密钥 k ,⼀个明⽂m以及标签 t 作为输⼊,然后输出⼀个⽐特 b ,如果 b=1 则意味着这是有效的明⽂标签对。
记作b := Vrfy k(m, t)⼀个有效的消息认证码需要对所有 n ,任意⼀个由Gen(1n)输出的 k 以及任意的明⽂m∈{0, 1}*,都有Vrfy k(m, Mac k(m)) = 1。
如果存在⼀个函数 l 对所有由Gen(1n)⽣成的密钥 k ,算法Mack都是定义在明⽂m∈{0, 1}l(n)上的,则称这个算法是对于消息长度为 l(n) 的固定长度MAC。
消息认证码(MAC)⽬录消息认证码定义将通信双⽅共享的密钥K和消息m作为输⼊,⽣成⼀个关于K和m的函数值MAC,将其作为认证标记(Tag)。
发送时,将消息和认证码同时发送给接收⽅,若接收⽅⽤消息和共享密钥⽣成相同的消息认证码,则认证通过。
消息认证码⽤于保证数据的完整性。
即防⽌数据被⾮授权⽤户篡改。
需要注意的是:仅加密是⽆法保证数据的完整性的(如对ECB模式的攻击),因此需要认证。
常见的消息认证码包括以下⼏类:基于分组密码的MAC基于带密钥的Hash函数的MAC基于泛Hash函数的MAC认证的安全性模型攻击者选择消息发送给MAC,MAC将相应的Tag值返回,通过该⽅法可以得到任意消息的认证码。
若攻击者可以另外找⼀个其他的消息,并能够伪造其认证码,则攻击成功,MAC被攻破。
标准MAC算法基于分组密码的MACCBC-MAC对消息使⽤CBC模式进⾏加密,取密⽂的最后⼀块作为认证码(相当于⽤异或操作进⾏了压缩)优点:构造简单,底层算法具有⿊盒性质,⽅便替换。
缺点:⽆法处理变长消息;可以伪造消息通过认证,⽐如:已知:(M1,M2,M3,T)和(M1,M2,T1),可伪造(M1,M2,M3,M3\oplus T \oplus T1,T)通过认证。
EMACEMAC为CBC-MAC的改进。
利⽤1或0对明⽂消息进⾏填充,从⽽可以处理变长消息。
优点:可处理变长消息。
缺点:若消息是整分组,最后⼀块完全处理填充消息,会造成浪费。
XCBC->TMAC->OMACXCBC、TMAC、OMAC均为对CBC-MAC和EMAC的改进,结合了两者的优点。
若消息为整分组,则采取下图左边的⽅案;若消息不是整分组,则采取下图右边的⽅案。
XCBC:K_1,K_2,K_3均不相同TMAC:(K_2,K_3)=(K \cdot u, K)OMAC1 和OMAC2: (K_2,K_3)=(L\cdot u,L\cdot u^2)或(K_2,K_3)=(L\cdot u,L\cdot u^{-1}),L=E_K(0^n)CMAC=OMAC1下图中,(K_1,K_2)=(L\cdot u,L\cdot u^2),L=E_K(0^n)基于泛哈希函数(Universal Hash Function)的MAC基于泛哈希函数的MACRogaway : Bucket hashing (1995)Halevi-Krawczyk : MMH (1997)Black-Halevi-Krawczyk-Krovertz-Rogaway : UMAC (1999)Bernstein: Poly1305(2005)Almost Universal(AU) Hash Function 和 Almost Xor Universal(AXU) Hash FunctionAlmost Xor Universal hash function(AXU) 的定义如下图,即保证输出异或值的随机AXU函数举例例1H: \{0,1\}^n \times \{0,1\}^n \rightarrow \{0,1\}^nH(K,M) = K· M1/2^n-AXU例2Almost Universal(AU):只要保证对于不同输⼊,输出相同值的概率很低即可,不必保证输出异或值的均匀性。
简述消息认证码的使用步骤-回复消息认证码(Message Authentication Code,MAC)是一种用于保护通信数据完整性和防止数据篡改的技术。
它使用加密算法和密钥,生成一个固定长度的认证标记,用于验证发送者和接收者之间的数据完整性和真实性。
在本文中,我们将介绍消息认证码的使用步骤。
1. 选择合适的加密算法和密钥长度:首先,我们需要选择适合我们需求的加密算法和密钥长度。
常用的加密算法包括HMAC(Hash-based MAC)、CMAC(Cipher-based MAC)和GMAC(Galois/Counter Mode MAC)。
每种算法都有其特定的适用场景和安全性质,我们需要根据我们的需求选择适当的算法。
同时,我们需要确定密钥的长度,通常密钥长度越长,安全性越高。
2. 生成密钥:接下来,我们需要生成一个密钥。
密钥可以使用随机数生成器生成,确保其随机性和不可预测性。
密钥的安全性对于消息认证码的安全性至关重要,因此我们需要采取适当的措施来确保密钥的机密性,如使用安全的密钥交换协议或密钥派生函数。
3. 计算消息认证码:现在,我们可以使用选择的加密算法和生成的密钥来计算消息认证码。
计算消息认证码的过程通常包括以下几个步骤:a. 将待认证的消息按照预定的规则进行分组。
这个规则可以是固定长度的分组,也可以是根据消息内容进行动态的分组。
b. 对每个消息分组应用加密算法,将分组与前一个分组的认证标记进行混合计算。
计算的结果通常会作为下一个分组的认证标记。
c. 对最后一个分组计算完认证标记后,将其作为总体的消息认证码。
4. 传输消息和消息认证码:完成计算消息认证码后,我们需要将消息和消息认证码一起传输给接收者。
通常,消息认证码会作为消息的一部分附加在消息尾部或通过另外的信道传送给接收者。
我们需要确保消息和消息认证码在传输过程中不被篡改和修改。
5. 验证消息认证码:接收者在接收到消息和消息认证码后,需要进行消息认证码的验证。
MAP技术介绍2010-4-25一、MAP技术介绍MAP是为了完成移动台的自动漫游功能,在移动通信网络实体之间传递消息的信令。
是网络之间互联的一个特有的功能单元,MAP规范给出了移动网在使用No.7信令系统时所要求的必需的信令功能,以便提供移动网必需的业务, 如话音和非话音业务。
目前MAP信令的传输是以CCITT的No.7信令系列技术规范为基础的,实际上MAP 信令的交换也可基于其它符合OSI网络层标准的网络。
这样,网络运营公司就可以根据本地实际情况,混合匹配使用各种协议,以满足其需要,当然这还需要有关协议的制订与完善。
MAP负责以下过程中GSM各功能实体间的信息传递:----位置登记/删除----位置寄存器故障后的复原----用户管理----鉴权加密----IMEI的管理----路由功能----接入处理及寻呼----补充业务的处理----切换----短消息业务----操作和维护在GSM系统中,MAP信令就如同人的血液一样,在各个功能实体之间,通过GSM的血管(No.7 CCS系统),传递着与上述规程有关的信息。
MAP协议也分为phase1,phase2,phase2+三个阶段,分别以3.x.y, 4.x.y, 5.x.y 标识协议版本号;(各个阶段的区别这里暂时不做介绍)二、MAP消息和会话MAP由业务提供者向其用户提供各种专门业务。
业务用户和业务提供者通过收发MAP 业务原语而相互作用。
一个MAP用户可同时接受来自不同的MAP业务提供者的业务,全部程序由业务用户来进行同步;MAP业务原语命名“类型”描述:请求(req)指示(ind)响应(rsp)确认(cnf)一个MAP对话定义为两个MAP用户之间为进行一个公共任务而进行的信息交换,它由一个或若干个MAP业务组成;TC:用来传送执行一个操作的请求或应答的方式,是TCAP的成分子层,用于承载MAP 消息。
一个操作是由远端要执行的一个动作,可以带相关参数。
消息认证码算法摘要:1.消息认证码算法的概述2.消息认证码算法的分类3.消息认证码算法的工作原理4.消息认证码算法的应用实例5.消息认证码算法的优缺点正文:【1.消息认证码算法的概述】消息认证码算法(Message Authentication Code,简称MAC)是一种用于验证消息真实性和完整性的加密技术。
在通信过程中,消息认证码算法可以确保接收方收到的消息与发送方发出的消息一致,防止消息被篡改或伪造。
消息认证码算法不同于加密算法,其主要目的是验证消息的真伪,而非加密消息的内容。
【2.消息认证码算法的分类】根据算法的特性和应用场景,消息认证码算法主要分为以下几类:(1)对称密钥算法:使用相同的密钥进行加密和解密,如:DES、AES 等。
(2)非对称密钥算法:使用不同的密钥进行加密和解密,如:RSA、ECC 等。
(3)哈希算法:将任意长度的消息映射为固定长度的摘要,如:SHA-1、SHA-256 等。
【3.消息认证码算法的工作原理】消息认证码算法通常采用“加密- 解密”的方式进行验证。
发送方首先使用密钥对消息进行加密生成认证码,然后将认证码与消息一同发送给接收方。
接收方收到消息后,使用相同的密钥对认证码进行解密,比较解密后的认证码与接收到的认证码是否一致,以此判断消息的真实性和完整性。
【4.消息认证码算法的应用实例】消息认证码算法广泛应用于各种通信场景,例如:网络数据传输、电子商务、数字签名等。
以数字签名为例,发送方首先使用哈希算法对消息进行摘要,然后使用私钥对摘要进行加密生成数字签名,将数字签名与消息一同发送给接收方。
接收方使用发送方的公钥对数字签名进行解密,比较解密后的数字签名与接收到的摘要是否一致,以此判断消息的真实性和完整性。
【5.消息认证码算法的优缺点】优点:(1)算法简单,计算量小,易于实现。
(2)可以有效防止消息被篡改或伪造。
缺点:(1)无法保证消息的保密性,仅能验证消息的真实性和完整性。