实用密码学
范学雷
前 Oracle 首席软件工程师,Java SE 安全组成员,OpenJDK 评审成员
14948 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 24 讲
开篇词 (1讲)
课前必读 (1讲)
案例分析 (1讲)
实用密码学
15
15
1.0x
00:00/00:00
登录|注册

14 | 加密数据能够自我验证吗?

你好,我是范学雷。
还记得上一讲,我们讲的消息验证码吗?我们讨论过可以使用消息验证码来验证消息的真伪。但是,不知道你有没有注意,在上一次讨论中,我们并没有讨论该如何安全地传递待验证消息。
而且,待验证信息的传递还是通过明文的方式进行的,这种方式,信息的私密性会受到影响。我们前面讨论过,单独的加密并不能解决信息的有效传递问题,总是存在这样或者那样的问题。
那么,我们能不能把消息验证码和信息加密结合起来,既保持信息的私密性,也保持信息的完整性呢?这就是我们这一次要解决的问题。

先加密还是后加密?

想要保持信息的私密性,我们可以在信息传输之前,把明文数据加密成密文数据,然后传输密文数据。如果我们还想要保持信息的完整性,我们就要使用消息验证码。
第一个来到我们面前的问题是:消息验证码和信息加密该怎么结合起来?或者换一种说法就是,怎么构造可认证的加密(Authenticated Encryption (AE))呢?
加密和验证组合起来的方式不外乎三种方案。

加密并验证

第一种方案,就是加密明文数据,计算明文数据的消息验证码,输出密文数据和验证码。这种方案,我们简称为加密并验证。安全外壳协议(SSH)就是采用加密并验证的方案。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

加密数据的自我验证是一项重要的技术挑战。本文讨论了消息验证码和信息加密的结合,以实现信息的私密性和完整性。文章介绍了加密并验证、加密后验证和验证后加密等三种结合方式,并强调了加密后验证作为目前最安全的方案。此外,还介绍了带关联的认证加密算法,该算法不仅提供了可认证的加密,还通过关联数据保护了公开数据的完整性。最后,文章指出带关联的认证加密算法的广泛使用使得曾经主导的CBC算法退出历史舞台,因为带关联的认证加密算法能够自我验证,减轻了应用程序的设计和实现压力。总的来说,文章建议尽量避免使用加密并验证和验证后加密这两种方案,而加密后验证是一个更安全的选择。文章内容深入浅出,对加密数据自我验证的技术特点进行了详细阐述,对读者快速了解该领域的技术特点具有重要参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《实用密码学》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • Litt1eQ
    我有一个疑问,如果牛郎和织女采用对称加密的方式,他们两个人的秘钥是如何来协商的呢? 如果牛郎想要保证约会信息的完整性和机密性,如果采用加密方案的话,他们二人之间需要进行秘钥的协商,但是他们之间的通信一般来说是不可信的,王母娘娘可能会派千里眼和顺风耳来窃听他们的秘钥,我能想到的方案是采用非对称加密的方案,牛郎先把自己的公钥发送给织女,然后织女利用牛郎发送给织女的公钥对他们之间传递信息的秘钥进行加密,然后发给牛郎,牛郎利用自己的私钥解开织女加密的内容,这样他们两个就获得了一个只有他们知道的一个对称加密的秘钥。 但是这样存在一个问题,这样是无法防止中间存在一个孙悟空,它变成织女的样子拿到了牛郎的公钥,然后自己伪造一个公钥变成牛郎,然后在发给织女,这样孙悟空就能完全解密牛郎和织女之间的通信了。 仅仅通过对称加密的方法的话,我目前没有想到比较好的方案来让他们传递秘钥。

    作者回复: 非对称密钥交换的麻烦主要就来源于身份验证这个环节,所以通常需要一个权威机构。可是,信任权威机构,会带来很多的麻烦。对称密钥的交换,你可以想一想牛郎和织女之间会不会有只有他们两个人才知道的秘密。

    2020-12-25
    7
    3
  • 张翀
    老师 原文中cbc攻击方案链接已经失效

    作者回复: 看看这个链接吧:https://www.ieee-security.org/TC/SP2013/papers/4977a526.pdf

    2022-11-15归属地:美国
    1
  • 带关联的认证加密算法 : 加密和解密过程都是需要提前知道 关联信息的吗? 如果是,怎么提前进行知道?

    作者回复: 协议或者协商

    2022-08-12归属地:美国
  • ifelse
    学习打卡
    2022-11-09归属地:浙江
  • ifelse
    能同时保护私密数据的完整性和公开数据的完整性,这是带关联的认证加密算法要解决的主要问题。--记下来
    2022-11-09归属地:浙江
  • harryZ
    ``` 我们前面提到的 CBC 攻击方案是不是似乎又回来了?实际的攻击方案比我们前面讨论的复杂,如果你有兴趣,可以看看这篇论文。 ``` 这篇论文 这个链接失效了, 看是否有其它链接 或关键字让我们可以去其它地方搜索?
    2022-05-23
  • Alan He
    意外收获,词汇 take away-收获。
    2022-04-10
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部