数据的完整性是指数据在生成、传输或存储的过程中没有被非法改动过。MAC作为一种能够有效实现消息认证的技术,它在保证数据的完整性方面主要有以下三种应用方式。
1.纯消息认证
1)发送方A计算MAC=CK(M)。
2)A将MAC连接在明文M之后,得到M‖MAC,并发送给B。
3)接收方B收到M‖MAC,提取M。
4)B使用共享密钥K计算MAC′=CK(M)。如果MAC=MAC′,则可判定M未曾被修改过,并且该消息确实来自于A。
这种应用方式中的消息认证函数并不提供机密性,如果要实现消息加密,必须采用额外的加密措施。后面两种应用方式就加入了公钥密码体制来提供对消息的保密传输。
2.传输密文且对明文消息认证
1)发送方A计算MAC=CK1(M)
2)A将MAC连接在明文M之后,得到M‖MAC。
3)A对M‖MAC通过共享密钥K2进行加密运算,并发送给B。(www.xing528.com)
4)B收到后,首先进行解密运算,提取M。
5)B利用共享密钥K1计算。如果MAC=MAC′,则可判定消息M确实来自于A,且是真实和完整的。
3.传输密文且对密文消息认证
1)发送方A通过共享密钥K2对消息进行加密运算。
2)A通过共享密钥K1计算。
3)A将MAC连接在之后,得到,并发送给B。
4)B收到后,提取。
5)B用密钥K1计算。如果MAC=MAC′,则可判定未曾被修改过,并且该消息确实来自于A。
6)B利用共享密钥K2解密得到明文M。
在提供机密性的第2、3种消息认证中,发送方和接收方都必须拥有两个密钥,一个是K1用于计算MAC;另一个是K2用于加密/解密。这两个密钥都由收发双方所共享。实际应用中多倾向于采用第2种方法实现消息认证,确保消息的完整性和真实性。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。