專利名稱:反芯片級破解時間同步滾動碼的制作方法
反芯片級破解時間同步滾動碼本發(fā)明描述一種時間同步滾動碼遙控方案。在同一批產(chǎn)品的芯片被破解后仍然不 能解開其它遙控器的滾動碼。適用于汽車防盜和門禁系統(tǒng)。滾動碼是泛指那些同一個按鍵每次按下都會發(fā)出不同碼的遙控編碼方案?,F(xiàn)在流 行的滾動碼遙控方案是美國微芯公司的Keeloq編碼,其它還有一些廠家各自編程的單片 機滾動碼、AES滾動碼、DES滾動碼等,還有RFID芯片滾動碼,這些滾動碼從原理上講是大同 小異的。都是運用特別的算法,使得同一個按鍵每次發(fā)出的滾動碼看上去有顯著的差異和 沒有明顯的聯(lián)系。而相同的滾動碼只能一次有效,第二次就無效了。從而可以防止空中攔 截無線信號,進行簡單的學習式解碼?,F(xiàn)有的這些滾動碼用簡單的學習式解碼無效,那么,如果破解了這些芯片后還會 無效嗎?當然不會,如果破解了這些芯片后,以上這些滾動碼都會失效。破解芯片之后, 很容易復(fù)制出另一個有效的遙控器。以最普遍使用的HCS301芯片為例來說明這個觀點。 HCS301的最強加密模式是安全模式,在此模式下,參與滾動碼運算的有制造商代碼、芯片 序列號、同步計數(shù)值、識別碼、功能鍵碼、溢出位、種子碼,其中芯片序列號、功能鍵碼、溢出 位是明碼發(fā)送的,識別碼是芯片序列號的低10位,也是明碼。制造商代碼和芯片序列號先 行運算成編碼密碼,編碼密碼再和同步計數(shù)值、識別碼、功能鍵碼、溢出位、種子碼運算成滾 動碼的跳碼部分。如果破解了同一批產(chǎn)品的接收機解碼程序,就可以知道制造商代碼或編 碼密碼,也可以知道Keeloq的運算方法。到了這一步,還有同步計數(shù)值和種子碼不知道,因 為種子碼是隨機產(chǎn)生的,各個遙控器都是不同的。同步計數(shù)值更是逐次按鍵變化的。那么, 怎么樣破解這樣兩個運算數(shù)據(jù)都不知道的滾動碼呢?我們知道同步計數(shù)值是逐次加1的。 破解者可以跟蹤目標遙控器的行蹤,用空中攔截的方法,連續(xù)多次采集目標遙控器發(fā)出的 滾動碼,這樣采集到的滾動碼看似沒規(guī)律其實是有規(guī)律的,都是同步計數(shù)值逐次加1的順 序排列。然后與“暴力破解”運算出來的滾動碼數(shù)據(jù)比對,就會發(fā)現(xiàn)符合順序的一串數(shù)據(jù),那 么,這一串數(shù)據(jù)所對應(yīng)的同步計數(shù)值和種子碼就出來了。如果加入更多的種子碼運算,或者 其它參數(shù)也加入運算,只要這些參數(shù)是固定的或者有規(guī)律的,還是可以采用上述的同樣方 法,先破解同一批產(chǎn)品的芯片,得知運算方法后,再算出一系列數(shù)據(jù),最后是跟蹤目標遙控 器采集連續(xù)發(fā)出的多個滾動碼,比對符合順序的一組數(shù)據(jù),解出所有參數(shù),復(fù)制遙控器?,F(xiàn) 今的計算機技術(shù)飛速發(fā)展,做到“暴力破解”并非難事,而且,計算機的運算速度還在日新月 異地迅猛加快,這種破解方法會越來越容易。舉例來說種子碼為00000000H的情況下,對 應(yīng)的同步計數(shù)值從0000H到FFFFH為一組順序排列;種子碼為00000001H的情況下,對應(yīng) 的同步計數(shù)值從0000H到FFFFH為一組順序排列,以此類推,總共有4G組,每組有64K個數(shù) 據(jù),總共是256TB個數(shù)據(jù)。如果采用3G頻率的4核64位CPU運算,每核可在10個時鐘周 期內(nèi)算出1個數(shù)據(jù),4個4核CPU同時工作,大約可在7. 4小時內(nèi)算出256TB個數(shù)據(jù)。這還 只是最慢的方法,如果找出其中有某種規(guī)律性的數(shù)據(jù),還能更快地破解此種滾動碼,因為先 后各次連續(xù)的滾動碼看似沒有聯(lián)系其實是有聯(lián)系的,只是同步計數(shù)值增加了 1,而且其運算 方法又是已知的,應(yīng)該不難找出更快的破解方法。RFID芯片遙控器也不難破解,因為接收機 和遙控器都有應(yīng)答信號,有了應(yīng)答信號就增加了破解的線索。
本發(fā)明的滾動碼是把時間參數(shù)加入到滾動碼的運算中去。遙控器和接收機在出廠 時都予置了制造商代碼。遙控器的初始時間值被設(shè)定為隨機數(shù),當遙控器重新上電后,就從 此初始時間值開始計時,計時單位可以為秒也可以為分還可以是其它單位,計時方法可以 是加1、減1、奇偶計數(shù)、對數(shù)計數(shù)、指數(shù)計數(shù)、偽隨機數(shù)計數(shù)等。遙控器和接收機每隔一定時 間,比如一分鐘向EEPROM里寫入當前時間值。接收機在學習狀態(tài)時,遙控器發(fā)出芯片序列 號、同步計數(shù)值、時間值、功能鍵碼、種子碼,接收機以遙控器的時間值為初始時間值并開始 和遙控器同步計時。當學習狀態(tài)結(jié)束時,接收機處于待機狀態(tài)可以接收遙控器指令。使用 中,接收機除了比對其它參數(shù)外,還要比對遙控器指令中時間值與本機的時間值誤差是否 超過一定范圍,比如超過了 1%,接收機就不會執(zhí)行遙控器的指令。只有在兩者的時間值誤 差小于時,接收機才會執(zhí)行遙控器的指令。時間的最大值可以設(shè)計得特別大,比如1萬 億年,那么,遙控器在出廠時就可以在1萬億年范圍內(nèi)隨機設(shè)定初始時間值。這樣就可確保 大批量生產(chǎn)時各個遙控器的初始時間值不會相同。當遙控器在用戶使用過程中更換電池, 或是其它原因而斷電了,重新上電時,前三次發(fā)出的滾動碼中含有斷電信息,接收機在解出 遙控器的芯片序列號、同步計數(shù)值、制造商代碼、種子碼相符后,還要驗證時間值是否大與 上次接收的時間值而小與本機的時間值,是,則執(zhí)行遙控器的指令并以這個時間值來同步 本機時間值,否則不執(zhí)行。當接收機斷電后再重新上電時,接收到斷電后的第一個遙控器碼 時,要驗證時間值是否大與上次接收的時間值,是,則執(zhí)行遙控器的指令并以這個時間值來 同步接收機自身的時間值,否則不執(zhí)行遙控器的指令。在實際使用中,接收機斷電情況極少 出現(xiàn),遙控器換電池的機會也不多,所以,本方案的時間同步狀態(tài)在絕大多數(shù)情況下是存在 的。時間同步的持續(xù)性是有保證的。由于每次按鍵的間隔時間長短不一,所以時間值是不連續(xù)的數(shù)字,即使同一批出 廠的其它遙控器芯片被破解,滾動碼運算方法也被泄密,但是,各個遙控器的時間值是不 一樣的,而且是隨時變化的,采用跟蹤攔截滾動碼的方法,截獲的是一連串沒有規(guī)律的滾動 碼,沒法和運算出來的數(shù)據(jù)比對,當然也就不能復(fù)制遙控器了。本發(fā)明的方案中,每次發(fā)出 的滾動碼不但看似沒有聯(lián)系,而且實際上也是真的沒有聯(lián)系,因為時間的間隔有長有短,即 使空中攔截者手上有著相同型號的遙控器,也不能確定每次滾動碼的具體發(fā)出時間,無法 確定某次滾動碼是上一分鐘還是這一分鐘發(fā)出的。本發(fā)明的遙控器部分用SN8P2501B單片機外掛AT24C02構(gòu)成主控單元,315M或 433M無線發(fā)射用單管發(fā)射單元,發(fā)射管的B極作為FSK碼控制極,聯(lián)結(jié)到SN8P2501B的一 個I/O 口。SN8P2501B的外接32K晶振作為時間計數(shù)的時鐘源,內(nèi)部16M的RC振蕩器作為 CPU工作時鐘。無按鍵按下時,CPU工作在32K時鐘頻率下,電流在IOOuA左右,對電池的壽 命幾乎沒有影響。當有按鍵按下時,CPU工作在16M時鐘頻率下,可以快速完成加密運算。 接收機部分也用SN8P2501B單片機外掛AT24C02構(gòu)成主控單元,315M或433M無線接收采用 超再生式接收電路,SN8P2501B的外部32K晶振作為時間計數(shù)的時鐘源,內(nèi)部16M的RC振 蕩器作為CPU工作時鐘。滾動碼的運算可以用AES或DES算法。
權(quán)利要求
反芯片級破解時間同步滾動碼,其特征是遙控器和接收機采用時間同步。時間信息參與滾動碼運算。解碼時用本機時間信息和遙控器時間信息比對,超出誤差范圍則不執(zhí)行遙控器指令。
2.如權(quán)利要求1所述的反芯片級破解時間同步滾動碼,其特征是時間的最大值設(shè)定 得特別大。不同遙控器的初始時間值在最大值范圍內(nèi)隨機設(shè)定。
3.如權(quán)利要求1所述的反芯片級破解時間同步滾動碼,其特征是遙控器用非揮發(fā)性 存儲器件間隔記錄時間值,重新上電后從上次記錄的時間值處開始計時。遙控器發(fā)出的滾 動碼中含有斷電信息,只有當接收機判斷出遙控器的時間值在某個特定范圍內(nèi)時,才會執(zhí) 行遙控器的指令。
4.如權(quán)利要求1所述的反芯片級破解時間同步滾動碼,其特征是時間計數(shù)器為非線 性計數(shù)法。
全文摘要
本發(fā)明描述一種反芯片級破解時間同步滾動碼遙控方案。把時間參數(shù)加入到滾動碼的運算中。遙控器的初始時間值被設(shè)定為隨機數(shù)。接收機在學習狀態(tài)時,遙控器發(fā)出時間值和其它參數(shù),接收機以遙控器的時間值為初始時間值并開始和遙控器同步計時。使用時,接收機收到的遙控器指令中時間值與本機的時間值誤差超過了1%就不會執(zhí)行遙控器的指令。由于每次按鍵的間隔時間長短不一,所以時間值是不連續(xù)的數(shù)字且各個遙控器是不一樣的,即使芯片被破解,滾動碼運算方法泄密,采用跟蹤和空中攔截滾動碼的方法,截獲的是一連串沒有規(guī)律的滾動碼,沒法和“暴力破解”運算出來的數(shù)據(jù)比對,當然也就不能復(fù)制遙控器了。本發(fā)明適用于汽車防盜和門禁系統(tǒng)。
文檔編號H04L7/00GK101931523SQ20101017314
公開日2010年12月29日 申請日期2010年5月10日 優(yōu)先權(quán)日2010年5月10日
發(fā)明者胡章儒 申請人:胡章儒