Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security HB RFID攻击。我错过了什么?_Security_Cryptography_Rfid - Fatal编程技术网

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

Security HB RFID攻击。我错过了什么?,security,cryptography,rfid,Security,Cryptography,Rfid,关于RFID协议HB(不是HB+),我很难理解为什么我的方法不起作用 所以在HB中,我们有标签和阅读器,它们都共享一个秘密X 我们正试图找出X 协议如下: 假设k=3位。 从我读到的报纸上看,攻击似乎是这样的。 设置a=001并发送1000次 设置a=010并发送1000次 设置a=100并发送1000次 以平均值为例,它在大多数情况下都是x 这对我来说很有意义,而且效果很好 我的问题是,为什么我不能简单地将a设置为001。由于a=001,当它与x进行AND运算时,它总是会产生x,然后与v进行

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

所以在HB中,我们有标签和阅读器,它们都共享一个秘密X

我们正试图找出X

协议如下:

假设k=3位。 从我读到的报纸上看,攻击似乎是这样的。 设置a=001并发送1000次 设置a=010并发送1000次 设置a=100并发送1000次

以平均值为例,它在大多数情况下都是x

这对我来说很有意义,而且效果很好

我的问题是,为什么我不能简单地将a设置为001。由于a=001,当它与x进行AND运算时,它总是会产生x,然后与v进行XOR运算。结果Z将始终为x或x XOR加1。然后我们只取大多数时间发生的输出,即x,因为v=1的概率小于0.5

我觉得我只需要运行这个,比如说10次,而不是每次运行多次

我是否遗漏了这方面的一个重要方面


谢谢

为什么我不能简单地将a设置为“001”?

x和a的长度为k,所以

x={xk-1,…,x0}
a={ak-1,…,a0}

如果,k=3,这将是

x={x2,x1,x0}
a={a2,a1,a0}

即x和a将是“000”、“001”、“010”、“011”、“100”、“101”、“110”或“111”中的一个

那么标量积x•a导致

x•a=(x2和a2)XOR(x1和a1)XOR(x0和a0)

因此,使用a='001'会导致

z=x•'001'=(x2和'0')异或(x1和'0')异或(x0和'1')=x0

因此,在这种情况下,您不会得到x的剩余数字(即x2和x1)。类似地,如果使用具有多个位集的a,例如a='111',则会得到

z=x•'111'=(x2和'1')异或(x1和'1')异或(x0和'1')=x2异或x1异或x0

因此可以删除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轮之后就已经达到了这个期望值。然而,每一轮你都会增加获得期望值的信心