HB RFID攻击。我错过了什么?

时间:2014-04-30 15:03:52

标签: security cryptography rfid

关于RFID协议HB(不是HB +),我很难理解为什么我的方法不起作用。

所以在HB中我们有Tag和Reader,他们都共享一个秘密X.

我们正试图找出X.

协议如下:

假设k = 3位。 从我看过的论文看来,攻击似乎如下。 设置a = 001并发送1000次 设置a = 010并发送1000次 设置a = 100并发送1000次

取每个显示x的大多数时间出现的奇偶校验。

这对我来说很有意义并且运作良好。

我的问题是,为什么我不能简单地将a设置为001.因为a = 001,当它与x进行ANDED时,它将始终产生x,然后与v形成XOR。结果Z将始终为x或者它将x XOR与1.然后我们只取大部分时间发生的输出,因为v = 1<的概率是x。 0.5

我觉得我只需要运行10次而不是每次运行多次。

我错过了一个重要的方面。

由于

1 个答案:

答案 0 :(得分:1)

为什么我不能简单地将 设置为' 001'

x a 的长度为 k ,所以

x = { x k -1 ,..., x 0 }
    a = { a k -1 ,..., a 0 }

如果, k = 3,这将是

x = { x 2 x 1 x 0 }
    a = { a 2 a 1 a 0 }

即。 x a 将是' 000' 001'' 010',&# 39; 011',' 100',' 101',' 110',或' 111'。

标量产品 x a 导致

x a =( x 2 AND a 2 )XOR( x 1 AND a 1 )XOR( x 0 AND a 0

因此使用 a =' 001'结果

z = x •' 001' =( x 2 AND' 0')XOR( x 1 AND&#39 ; 0')XOR( x 0 AND' 1')= x 0

所以你不会得到 x 的剩余数字(即 x 2 x 1 )在这种情况下。同样,如果您使用具有多个位设置的 a ,例如 a =' 111',你会得到

z = x •' 111' =( x 2 AND' 1')XOR( x 1 AND&#39 ; 1')XOR( x 0 AND' 1')= x 2 XOR x 1 XOR x 0

因此可以删除 x 的数字。因此,您需要使用 a =' 001', a =' 010'和 a执行协议 =' 100'为了获得 x 的每个数字。

我觉得我只需要运行10次而不是每次运行多次。

好吧,对于每一轮,你都会得到一个概率 v 的正确结果。所以期望值是

E [X] = v ,如果正确的数字是' 1',并且
   E [X] = 1 - v ,如果正确的数字是' 0'。

因此,对于' 1'所有轮次(即您采取的每个样本)的平均值将近似 v 。对于' 0' 近似 1 - v 对于无限轮数。但这并不一定意味着您已经在1轮或10轮后达到了这个预期值。但是,每一轮都会增加获得预期值的信心。