第三十个知识点:大致简述密钥协商中的BR安全定义。

第三十个知识点:大致简述密钥协商中的BR安全定义。

在两方之间建密钥共享是一件密码学中古老的问题。就算只考虑定义也比标准加密困难的多。尽管古典的Diffie-Hellman协议在1976年思路解决了这个问题,但是它没有认证机制。就是说密钥能和任何人协商。这会导致中间人攻击。

为了阻止这样或者其它的攻击,我们需要一个安全定义。当定义一个密钥交换的安全性有两种主要的方法。一个是基于符号模型的,一个是基于计算模型的。在经典的论文BAN logic之后,符号模型在90年代开始流行,形式化的技术被用于分析和建模。符号模型擅长定义攻击,但是很难定义所有种类攻击的底层逻辑,因此该模型中的分析不能提供很好的安全性保证,但是可以半自动使用定理证明。

在他们开创性的1993年论文中,Bellare和Rogaway在一个计算模型中为经过身份验证的密钥交换创建了一个基于博弈的安全定义,类似于用于加密的IND-CPA和IND-CCA定义。在这个模型中,密码原语并不是不可破解的,而是通过计算对手在安全游戏中的“优势”来量化其成功概率。我们希望包含的对手的主要特征是所有的通信都在对手的控制之下:它们可以读取、修改、延迟和重播消息。它们还可以与其他方同时运行协议的任意数量的实例。安全博弈背后的直觉是,对手让一方接受约定密钥的唯一方法是从真正的协议运行中转发诚实的消息,在这种情况下,他们不可能学到任何新东西。

安全博弈由许多不同的问询组成,攻击者可以使用这些问询。主要的三个问询就是corruption oracle,允许对手控制选定的一方;key registration oracle,任何选定的用户都能注册一个公钥;message oracle,传递消息主要的问询。注意,消息不是在参与者之间直接发送的,相反,对手使用message oracle来发送消息。

message oracle是一个允许攻击者和多方创建协议会话的主要问询(目标是建立一个短期的密钥共享),然后发送消息。当进行问询,他们能够进行下面的动作:

  • 在两个用户之间开始一个新会话。
  • 获得任何一个中止会话的密钥。
  • 在一个存在的会话中发送消息,并得到回应。

安全博弈遵循一个real-or-random范例,通过选择一个秘密的bit---\(b\)。如果\(b=0\),那么攻击者被给一个随机的密钥,否则它获得一个真实的密钥。在和问询交互后,攻击者选择一个已经中止的会话,这个会话的两方都没有被破坏,同时密钥也没有泄露,攻击者获得这个会话的密钥。如果攻击者猜对了\(b\),就赢了。

如果任何攻击者的策略的概率都不比随机猜测好,那么就说这个协议是一个安全可认证的密钥交换协议。当然,上面的提纲只是一个粗略的草图,论文中还有很多细节。

posted @ 2020-01-31 15:44  WangZhuo2000  阅读(598)  评论(0编辑  收藏  举报