我有一些关于滚动代码的一般性问题。基本上有一个发送者和一个接收者。两者都有一个序列发生器。接收器检查接收序列是否与新生成的序列匹配。使用的一个例子是KeeLoq。
假设一个汽车开瓶器(发件人)和一个汽车(接受者):
发布于 2014-07-28 03:33:02
如果发送者在序列中的另一个点会发生什么?这把钥匙被按在汽车的射程之外。
在滚动码(码跳)系统中,keyfob发射机保持同步计数器C,每次按下按钮时递增。车载接收器存储它收到的最新验证的同步计数器N。
当滚动代码接收者收到一条带有密钥from序列号的消息,该消息似乎与其内部内存中的授权密钥之一匹配时,它从该消息中提取keyfob的同步编号C,并将其与最近验证的同步编号N进行比较。
在正常情况下:
当消息中的计数器C位于接受窗口时,汽车接受该消息作为真实消息,汽车用最新的C值覆盖N,然后汽车打开门或做消息说要做的任何事情。
(只要您按住按钮,keyfob就会一次又一次地重复发送相同的消息。直到您松开按钮并再次按下它,它才会发送带有下一个顺序计数器号的消息)。
那么发件人是否有可能超出k个接受码的范围呢?
是。AVR411接收器默认为WINDOW_SIZE = 100。因此,对于一个典型的AVR411系统,如果汽车没有听到连续100个按钮按下,那么当它最终回到范围内时,汽车会忽略键盘。
一个典型的KeeLoq系统,如果汽车没有听到连续16个按钮按下,那么汽车将不会打开门上的第一个按钮按下键盘,当它最终回到范围内。但是,如果汽车随后听到在重新同步窗口(K
他们是如何同步序列的点的?它们是如何实施的?
在使用键盘前,汽车必须“学习”键盘。通常情况下,按住“学习按钮”(“学习开关”)10秒可以消除接收者对每个键盘的记忆;然后松开按钮,使接收方进入“学习模式”。通常,在键盘上同时按下锁和解锁按钮使密钥页将其唯一的密钥传送给接收方。接收者--在学习模式中--作为授权密钥存储它听到的keyfob序列号(S),还存储秘密密钥和当前同步计数器N。在所有事情连续10秒钟保持安静之后,没有按下按钮,接收方就会退出学习模式,进入正常模式。
在那之后,那个接收器--在正常模式下--现在被同步到键盘上。
键盘上可用的电池电量很小,而且密钥and只发送--从来没有接收--这使得使用许多密码算法变得困难或不可能。
有关两种流行滚动代码实现的详细信息,请参阅:
发布于 2017-05-15 21:33:13
值得指出的是,Samy (在2015年)意识到并实现了(2015年)现在的前额--回想起来,这是非常明显的--拥有一个无线电TX+RX单元,监听合法代码,然后打开一个瞬间干扰机发射器,使其末端稍微变坏(因此接收机不承认它是有效的)。密钥库所有者然后想“哦”,然后再按下按钮,发送第二段代码。您再次执行相同的操作(窥探它并稍微破坏它),然后重新传输第一个代码;导致汽车/车库打开。业主只是看到它第二次工作,并在他们的一天,留下你的第二个仍然有效的滚动代码,以重播您的闲暇时间。这被称为"Rolljam“攻击,并且几乎破坏了所有滚动代码的安全性。
https://crypto.stackexchange.com/questions/18311
复制相似问题