【Go密码学101】05 演进:从 AES+HMAC 到 AES-GCM:同时解决加密、认证与完整性三大难题

请点击上方蓝字TonyBai订阅公众号!

大家好,我是Tony Bai。

在之前的旅程中,我们已经集齐了构建安全通信的三大核心组件:

  • AES 用于保证数据的保密性 (Confidentiality)。

  • HMAC用于保证数据的完整性 (Integrity) 和真实性 (Authenticity)。

  • RSA/ECDH 用于安全地交换我们所需的共享密钥。

一个看似完美的方案浮出水面:我们可以先用 AES 加密数据,然后再用 HMAC 为生成的密文计算一个认证标签(MAC)。这种模式被称为 Encrypt-then-MAC。它在理论上是安全的,并且被广泛应用。

但这种“先加密,后认证”的分离式方案,在工程实践中却隐藏着巨大的风险。开发者需要同时管理两种不同的操作,处理两种不同的密钥(一个用于 AES,一个用于 HMAC),并确保它们的组合方式完全正确。任何一个微小的实现错误,比如错误地对明文而不是密文计算 MAC,都可能导致灾难性的安全漏洞。

有没有一种更简单、更集成、更不容易出错的方式呢?密码学家们给出了肯定的答案:认证加密 (Authenticated Encryption, AE)。

AEAD:集加密与认证于一身的“瑞士军刀”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值