考虑以下(简化) PAKE协议: Alice和Bob从预先商定的密码-开始。为了建立一个新的会话密钥k,Alice首先对一个随机的当前r进行采样,并将其发送给Bob。鲍勃采样了一个现在的r',并将它发送给爱丽丝。会话密钥是k = \mathcal{O}(pw,r,r'),其中\mathcal{O}是一个随机的预言。
该仿真器可以很容易地通过模拟随机预言来提取损坏的Alice (或Bob)的输入,并能顺利地进行仿真。但是,这不可能是一个安全的PAKE协议(对吗?)因为它允许离线字典攻击:一旦监听了两个非key (r和r'),对手就可以查询字典中所有可能的密码(即多个大小),会话密钥将在甲骨文答案中。一旦会话密钥被用于任何事情,这将是一个问题。
所以我的问题是,UC上面的协议对\mathcal{F}_{\mathsf{pwKE}}的本论文功能是否安全(我猜可能不是因为上述原因),如果不是,那么模拟在哪里会失败呢?
发布于 2021-04-13 01:02:41
你说得对,因为你说的原因,这不是加州大学的安全。它允许离线字典攻击。这个问题是如何在UC模型中体现出来的:
考虑一下这一特定环境:
pw (不丢失通用性\mathcal{D} = \{1, \ldots, m\} )中一致选择诚实方的密码D4。K^*。k_1, \ldots, k_m。如果k_{pw} = K^*的话,对手就赢了。在现实世界中,对手很容易通过概率1赢得这场比赛。对手设置k_i = \mathcal{O}(i,r,r')。
不难看出,在理想的世界中,没有一个对手比1/m + 1/2^\ell ( \ell是\mathcal{O}的输出长度)更能在理想世界中赢得这场互动。观察以下情况:
pw在\mathcal{D}中是一致的,所以这个猜测正确的概率是1/m。K^*。特别是,K^*独立于对手发送给环境的任何k_{pw}值。因此,它只能与概率1/2^\ell匹配。我认为您问题的实质是,提取必须在协议执行时进行(这就是在线密码猜测的原因)。在该协议中,一旦双方交换了r和r',真实世界的诚实方就会输出一个密钥,因此模拟器需要发送密码猜测才能在理想的世界中实现相同的事情。但是如果对手还没有质疑\mathcal{O}呢--模拟器会怎么做?
该协议无法将对手限制为一个密码猜测(每次它查询\mathcal{O}(pw',r,r')时,模拟器都必须知道pw'是否正确,以便产生一致的响应),并且不能将密码猜测限制在协议运行的时间内。
https://crypto.stackexchange.com/questions/89346
复制相似问题