我试图理解WPA3,它的同时身份验证类似于蜻蜓密钥交换。
蜻蜓抵抗字典攻击,这意味着攻击者不能通过被动计算识别字典中密码的使用,而是被迫与其中一方交互以进行猜测。
我很难理解链接中关于蜻蜓的描述,这是我唯一能找到的描述。蜻蜓的属性是如何从算术中产生的?只有非攻击者方才能执行计算,这是“捕猎和啄食”的某些性质吗?
发布于 2018-12-04 20:54:10
蜻蜓抵抗字典攻击,这意味着攻击者不能通过被动计算识别字典中密码的使用,而是被迫与其中一方交互以进行猜测。
实际上,目标还不止这些;即使您有一个活动的攻击者可以修改正在发生的交换,或者模拟其中一个端点(并试图与知道密码的人进行协商),他们在N交换中所能做的最好的就是从他们的字典中测试N条目。
我们知道,这样的对手至少可以做那么多事情;对于单个交换,他们可以从字典中获取一个条目,并且(假设条目是密码)使用有效的端点诚实地执行交换,并查看交换是否失败。PAKE (如蜻蜓)的目标是,它们不能比一般的攻击做得更好。
蜻蜓的属性是如何从算术中产生的?只有非攻击者方才能执行计算,这是“捕猎和啄食”的某些性质吗?
不,搜索和啄过程P = \text{HuntAndPeck}(\text{Password})是一种将密码映射到“组元素”的公共方法,以便:
P生成一个素数大小的子群;也就是说(使用有限域术语),P^x \bmod p值(对于x的各种值)可以精确地占用q值(其中q是一个大素数)。\text{Password1}和\text{Password2},两个值P1 = \text{HuntAndPeck}(\text{Password1})和P2 = \text{HuntAndPeck}(\text{Password2})是不相关的;也就是说,没有人知道P1^x \equiv P2 \pmod p的值x。相反,PAKE属性是从实际协议中产生的。
RFC格式是描述密码学的一种可怕的方式,因此这里是一个简单的协议,在诚实的情况下(仍然使用有限域术语,并且消除了双方运行的理智测试):
Alice和Bob运行Hunt and Peck过程将他们的密码转换为组成员P (因为这是诚实的情况,我们假设他们有相同的密码)。然后,Alice选择随机值p, m,并将值s = p + m \bmod q和E = P^{-m}发送给Bob。Bob还选择了p', m'值,并将s' = p' + m' \bmod q和E' = P^{-m'}发送给Alice。
然后,爱丽丝计算(E' \times P^{s'})^p;这是(P^{-m'} \times P^{p' + m'})^p = P^{p p'}。Bob做同样的计算,并获得P^{p' p},这是相同的值,因此我们有我们的共享秘密。
为什么这是安全的?攻击者可以向Alice提交它想要的任何s', E'值(这取决于Alice运行的心智测试);但是(由于搜索和啄过程的工作方式),他不知道一个值E',其中他知道两个不同密码的值x, y和E' = P2^y;因此,如果他能够预测P1的值(E' \times P1^{s'})^p,他就无法知道值(E' \times P2^{s;})^p,因此他实际上只能测试一个密码(我们知道他可以这样做)。
最后一个注意事项:回顾蜻蜓RFC,我看到如果您在没有质数点的椭圆曲线上运行(即,有一个辅助因子h > 1),它会泄露一些信息。如果您使用(例如) NIST曲线,这不是一个问题;如果您试图调整它以运行(例如) Curve25519,则需要解决.
https://crypto.stackexchange.com/questions/64546
复制相似问题