首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >滚动代码是如何工作的?

滚动代码是如何工作的?
EN

Cryptography用户
提问于 2014-07-24 07:51:48
回答 2查看 43.4K关注 0票数 22

我有一些关于滚动代码的一般性问题。基本上有一个发送者和一个接收者。两者都有一个序列发生器。接收器检查接收序列是否与新生成的序列匹配。使用的一个例子是KeeLoq。

假设一个汽车开瓶器(发件人)和一个汽车(接受者):

  • 如果发送者在序列中的另一个点会发生什么?想想看,钥匙是按下的,而超出范围的汽车。
  • 它们如何同步序列的点?
  • 有什么预防措施可以发现重播攻击吗?它们是如何实施的?
EN

回答 2

Cryptography用户

回答已采纳

发布于 2014-07-28 03:33:02

如果发送者在序列中的另一个点会发生什么?这把钥匙被按在汽车的射程之外。

在滚动码(码跳)系统中,keyfob发射机保持同步计数器C,每次按下按钮时递增。车载接收器存储它收到的最新验证的同步计数器N。

当滚动代码接收者收到一条带有密钥from序列号的消息,该消息似乎与其内部内存中的授权密钥之一匹配时,它从该消息中提取keyfob的同步编号C,并将其与最近验证的同步编号N进行比较。

在正常情况下:

  • C在滚动窗口的验收

当消息中的计数器C位于接受窗口时,汽车接受该消息作为真实消息,汽车用最新的C值覆盖N,然后汽车打开门或做消息说要做的任何事情。

(只要您按住按钮,keyfob就会一次又一次地重复发送相同的消息。直到您松开按钮并再次按下它,它才会发送带有下一个顺序计数器号的消息)。

那么发件人是否有可能超出k个接受码的范围呢?

是。AVR411接收器默认为WINDOW_SIZE = 100。因此,对于一个典型的AVR411系统,如果汽车没有听到连续100个按钮按下,那么当它最终回到范围内时,汽车会忽略键盘。

一个典型的KeeLoq系统,如果汽车没有听到连续16个按钮按下,那么汽车将不会打开门上的第一个按钮按下键盘,当它最终回到范围内。但是,如果汽车随后听到在重新同步窗口(K

他们是如何同步序列的点的?它们是如何实施的?

在使用键盘前,汽车必须“学习”键盘。通常情况下,按住“学习按钮”(“学习开关”)10秒可以消除接收者对每个键盘的记忆;然后松开按钮,使接收方进入“学习模式”。通常,在键盘上同时按下锁和解锁按钮使密钥页将其唯一的密钥传送给接收方。接收者--在学习模式中--作为授权密钥存储它听到的keyfob序列号(S),还存储秘密密钥和当前同步计数器N。在所有事情连续10秒钟保持安静之后,没有按下按钮,接收方就会退出学习模式,进入正常模式。

在那之后,那个接收器--在正常模式下--现在被同步到键盘上。

键盘上可用的电池电量很小,而且密钥and只发送--从来没有接收--这使得使用许多密码算法变得困难或不可能。

有关两种流行滚动代码实现的详细信息,请参阅:

  • 维基百科:滚动代码
  • Atmel:法411:无线链路的安全滚动码算法
  • 微芯片:HCS301: KeeLoq码跳编码器
  • 微芯片:解661:使用PIC16C56的跳码解码器
  • 微芯片:AN1248: KeeLoq接收机系统
  • 安迪·卡维尔:RKE分析
  • Mike “关键fob编程”
票数 27
EN

Cryptography用户

发布于 2017-05-15 21:33:13

值得指出的是,Samy (在2015年)意识到并实现了(2015年)现在的前额--回想起来,这是非常明显的--拥有一个无线电TX+RX单元,监听合法代码,然后打开一个瞬间干扰机发射器,使其末端稍微变坏(因此接收机不承认它是有效的)。密钥库所有者然后想“哦”,然后再按下按钮,发送第二段代码。您再次执行相同的操作(窥探它并稍微破坏它),然后重新传输第一个代码;导致汽车/车库打开。业主只是看到它第二次工作,并在他们的一天,留下你的第二个仍然有效的滚动代码,以重播您的闲暇时间。这被称为"Rolljam“攻击,并且几乎破坏了所有滚动代码的安全性。

票数 13
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/18311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档