滾動碼

滾動碼

滾動碼當前主要用在RKE(Remote Keyless Entry)系統中,進行身份驗證。

目錄

原理


編碼器檢測到按鍵輸入, 把系統從省電狀態中喚醒, 同步記數加1 , 與序列號一起經密匙加密后形成密文數據, 並同鍵值等數據發送出去。由於同步計數值每次發送都不同, 即使是同一按鍵多次按下也不例外。同步計數自動向前滾動, 發送的碼字不會再發生。因此被稱為滾動碼。同步計數跟編碼器序號一個64位一起經過DES加密,DES密鑰為廠家獨有,必須保密。加密之後的密文則通過射頻系統發射出去。
接收端接收到密文之後,通過廠家的DES密鑰進行解密,解密之後得到同步計數和編碼器序號。首先檢測編碼器序號是否與接收器的序號相對應,如果對應,就檢測同步計數是否在同步窗口內,也就是說是否大於本機保存的同步計數,但是又不大得太多,如果大得太多,本機就再作一次同步。如果在同步窗口中,通知執行機構執行用戶命令,比如說打開門鎖或者關閉門鎖之類的。
由於加密演演算法能夠把明文打散,因此,碼的滾動會使得發射的碼變化差異很大而難以破解,由於同步計數的存在,重複發送也沒有效果,因此要攻破該類系統就要攻破DES演演算法。同步計數為16 位, 可達2的16次方 =65536 , 若每天用10 次, 則有18年的使用周期。32位的序列號, 容量為232 = 42 億, 可以完全滿足生產要求。