赞
踩
图解密码技术,第三版
使用消息认证码可以确认自己收到的消息是否就是发送者的本意,也就是说,使用消息认证码可以判断消息是否被篡改,以及是否有人伪装成发送者发送了该消息。
消息认证码(Message Authentication Code,MAC)是一种用于验证消息完整性和真实性的算法。它通过将消息和密钥作为输入,生成一个固定长度的代码,称为 MAC,来保证消息的完整性和真实性。MAC 算法通常使用对称密钥密码学算法,如DES、AES等,并且需要密钥的共享才能进行验证。
MAC 算法广泛应用于网络通信、数据存储、电子商务等领域,以保护数据的安全性和可靠性。在网络通信中,MAC 可以防止数据被篡改或冒充,确保数据的完整性和真实性。在数据存储中,MAC 可以防止数据被篡改或删除,保护数据的完整性和可靠性。在电子商务中,MAC 可以确保交易数据的完整性和真实性,防止数据被篡改或冒充,保护用户的隐私和安全。
可以认为,消息认证码是一种与密钥相关联的单向散列函数
SSL/TLS是我们在网上购物等场景中所使用的通信协议。SSL/TLS中对通信内容的认证和完整性校验也使用了消息认证码。
1.使用单向散列函数
使用SHA-2之类的单向散列函数可以实现消息认证码,其中一种实现方法称为HMAC,具体步骤我们将在下节介绍。
2.使用分组密码实现
使用AES之类的分组密码可以实现消息认证码。
将分组密码的密钥作为消息认证码的共享密钥来使用,并用CBC模式将消息全部加密。此时,初始化向量(IV)是固定的。由于消息认证码中不需要解密,因此将除最后一个分组以外的密文部分全部丢弃,而将最后一个分组用作MAC值。由于CBC模式的最后一个分组会受到整个消息以及密钥的双重影响,因此可以将它用作消息认证码。例如,AES-CMAC( RFC4493)就是一种基于AES来实现的消息认证码。
3.其他实现方法
使用流密码和公钥密码等也可以实现消息认证码
认证加密,缩写为AE或AEAD。认证加密同时将对称密码和消息认证码相结合,同时满足机密性,完整性和认证三大功能的机制。
认证加密的方式
GCM 是 Galois/Counter Mode 的缩写,是块密码的一种工作模式。它是一种广泛使用的认证加密算法,可以提供数据的机密性和完整性。
在 GCM 中,使用块密码(例如 AES)对明文进行加密。用于加密的密钥由发送方和接收方共享。除了加密之外,GCM 还生成一个认证标记,用于确保密文的完整性。认证标记是通过使用消息认证码(MAC)算法(例如 GHASH)生成的。
GCM 的工作原理是将明文分成块,然后使用密钥和 MAC 算法对其进行加密和认证。加密和认证是同时进行的,这使得 GCM 比其他需要单独进行加密和认证步骤的模式更快。
GCM 在网络安全协议(例如 TLS 和 IPsec)中常用于提供互联网上的安全通信。它还用于存储设备(例如硬盘驱动器和固态硬盘)中,以保护静止数据的安全。
HMAC 的全称是“Keyed-Hash Message Authentication Code”,翻译为“带密钥哈希消息认证码”。它是一种常用的消息认证算法,用于验证数据的完整性和真实性。
HMAC 算法使用一个密钥和一个哈希函数(如 SHA-256)来对消息进行哈希计算。哈希函数将消息转换为一个固定长度的哈希值,而密钥则添加了一个额外的安全层。这样,即使攻击者知道哈希函数,也无法对消息进行篡改,因为他们没有密钥。
HMAC 算法的计算过程是将密钥和消息分别进行按位异或(XOR)运算,然后将结果输入到哈希函数中进行哈希计算。最终的 HMAC 值是哈希函数的输出,它被用作消息的认证标记,以确保消息的完整性和真实性。
HMAC 算法在计算简单、安全性高、广泛应用于网络安全协议中,例如 TLS、IPsec、SSH 等。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。