基于KEELOQ跳碼技術(shù)的密碼系統(tǒng)設(shè)計
傳統(tǒng)編譯碼芯片如VD5026,VD5027,MCI45026,MCI45027等已經(jīng)在防盜、安全等系統(tǒng)得到廣泛的應(yīng)用,這些芯片簡單易用,但具有很大的缺陷:編碼量少而極易重碼;密碼長度短(一般為8-12位,最多不超過16位),因而數(shù)據(jù)極易被掃描和破譯,不能滿足高安全場合的需要。
基于KEELOQ技術(shù)的跳碼芯片則克服了以上兩個缺陷,較好地解決了密碼的防盜問題,所謂跳碼,就是密碼不是固定的,而且不斷跳動變化的,是為滿足高性能要求而設(shè)計的,跳碼芯片的使用十分簡便,只要在第一次使用前,編譯碼器進行一次"學(xué)習(xí)",使編譯碼器的密碼同步,通常一個譯碼器可以支持多個編碼器,再加上其電壓使用范圍寬,功率消耗極小,因此成為傳統(tǒng)編譯碼器的理想升級換代產(chǎn)品。
2 跳碼核心技術(shù)--KEELOQ技術(shù)
使用KEELOQ技術(shù)的編碼器每次發(fā)出的密碼都不同,只有配對的譯碼器能準確譯出收到的密碼,使用不配對的編、譯碼器或重復(fù)發(fā)送譯碼器曾收到的密碼等均告知無效。即使編碼器發(fā)送出的碼在譯碼器方?jīng)]有收到,也不會影響以后的正常使用。這一切歸功于芯片內(nèi)強大的微處理器及KEELOQ獨特的同步算法。
跳碼芯片的密碼雖是一大串幾乎隨機的亂麻,但實際毫不紊亂,密碼包括2部分:
(1)跳碼,編譯器每次產(chǎn)生的都不一樣,產(chǎn)生后就被加密;
(2)在傳輸過程并不加密,主要包括編碼器的系列號,在與譯碼器的配套使用中作識別信號。
跳碼包括功能信息、辨別碼以及同步計數(shù)器、通過一個加密算法加密后再傳送出去。跳碼芯片在使用前必須預(yù)置序列號、加密鑰匙、同步計數(shù)器、發(fā)送方和接收方一起工作前,接收方必須先通過"學(xué)習(xí)"來獲得并存儲發(fā)送方的序列號、加密鑰匙和當前同步計數(shù)器的值。
硬件實現(xiàn)KEELOQ技術(shù)加密過程如圖1所示。
在KEELOQ技術(shù)中"學(xué)習(xí)"功能是一個重要部分,"學(xué)習(xí)"包括清除原來的存儲的信息和學(xué)習(xí)新的信息,每對跳碼型編譯碼器在使用前都要至少單向"學(xué)習(xí)"一次,密碼在第一次配對使用時是隨機產(chǎn)生的亂碼。然后把要配對的編碼器的密碼傳進譯碼器,譯碼器就會學(xué)習(xí)和存儲這一次的安全代碼,從此這一對譯碼器的密碼就按照同一套跳變碼算法同步變化,譯碼器以后每次就能準確譯出編碼器的密碼,同時,這一存入的安全代碼被作為無效碼參考,再收到同樣的密碼就會視而不見,因而能有效地防止偷碼冒用。
最后,譯碼器設(shè)計了一套容錯算法,他不但能預(yù)知配對的編碼器的下一個密碼變化,而且能預(yù)知他以后256次的變化碼,并都能準確譯出,這樣,即使發(fā)射器被亂按了好多次不為譯碼器所知,但都能依舊保護默契配合,保持了極好的跳變譯碼能力和抗截碼的功能。
3 應(yīng)用電路
3.1 HCS301跳碼編碼器的管腳及其功能
HCS301跳碼編碼器的引腳排列如圖3所示。
引腳1-4:S0-S3,數(shù)據(jù)輸入通道,其中S2,S3在編程狀況時可作為時鐘輸入,引腳5:VSS,電源地;引腳7:LED,指示工作狀態(tài)及低電壓指示,可直接驅(qū)動LED,低壓時,指示燈將以5次/秒的頻率閃爍;引腳8:VDD,電源,工作電壓為+3.5-+13.0V。
編碼器 HCS301發(fā)出的密碼長66位,由34位的固定碼和32位由KEELOQ算法產(chǎn)生的加密碼組成,固定碼主要包括28位的系列號(每個編碼器獨一無二),還含6個狀態(tài)位,其中2位顯示號碼是否重復(fù)、電源是否低壓;另外4位狀態(tài)位為4位的功能信息(即按鍵輸入組合情況)。32位的加密碼中含4位功能信息,以及12位的辨別碼(判斷譯碼過程是否有效)和16位同步計數(shù)器值。每次按下命令控制鍵時,譯碼器的同步計數(shù)器的值加1,從沖擊的角度看,有一半的位將發(fā)生改變,因此相鄰的密碼將大相徑庭。一個相當長的時期內(nèi),密碼將不會重復(fù),不重復(fù)次數(shù)可達64K(216),有人統(tǒng)計過,如果每天按10次,那么要經(jīng)過18年密碼才有可能重復(fù)。
HCS301還具有獨特的電源自動關(guān)閉功能,即只有在有編碼信號時才進入工作狀態(tài),靜態(tài)功耗極低,降低了電源功耗。通過二極管陣列,HCS301最大可實現(xiàn)15個功能。
3.2 TDH6301跳碼譯碼器的管腳及其功能
TDH6301跳碼譯碼器的引腳排列如圖4所示。
引腳1:VDD,電源,一般接+5V;引腳2:LEARNIN,"學(xué)習(xí)"鍵;引腳3,LEARNLED,"學(xué)習(xí)"指示輸出;因該4:MCLR:譯碼器復(fù)位端口;引腳5:LMS,上拉時鎖存輸出,下拉時暫存輸出;引腳6:NC(D5),空引腳;引腳7:NC(D4),空引腳;引腳8- 11,D0-D3,數(shù)據(jù)輸出端;引腳12:VT,接收信號有效輸出;引腳13:RFIN,接收信號輸入;引腳14:VSS,接地。
TDH6301與編碼芯片(HCS300或HCS301)配對使用,可省去了煩瑣的編碼和配對。他有兩種輸出方式,當TDH6301的5端懸空時為脈沖型電平輸出方式,即無接收信號時,數(shù)據(jù)輸出將保持約500ms;當TDH6301的5端接法如圖4所示時為鎖存型電平輸出方式,即輸出電平將保持到有其他輸出口接收信號時為止。
TDH6301的輸出狀態(tài)由"學(xué)習(xí)"過的編碼器決定,即對應(yīng)的按鍵輸入組合產(chǎn)生對應(yīng)的輸出組合,因而通過門電路組合TDH6301的輸出能夠?qū)崿F(xiàn)15個功能。
3.3 應(yīng)用電路圖
HCS301的應(yīng)用電路非常簡單,只需要幾個按鍵和幾個電路和電容就可實現(xiàn),如果用于無線,還需要RF(射頻)電路,圖5為具有4個功能的編碼電路,通過二極管陣列任意組合S0-S3,HCS301最多可擴展到15個功能。在傳輸?shù)倪^程中,指示燈將被點亮。如果HCS301檢測到有新的按鍵下,復(fù)位將立即產(chǎn)生,密碼將無法完整的發(fā)出。
相應(yīng)的譯碼電路圖如圖6所示,譯碼器的RFIN端接收譯碼器PWM端輸出的信號:
TDH6301譯碼器最多可支持15個譯碼器,只需經(jīng)過上述學(xué)習(xí)步驟,就可實現(xiàn),當編碼器學(xué)習(xí)溢出時(即超過15個編碼器時),譯碼器會從頭開始自動覆蓋并作廢最早一個已學(xué)習(xí)的譯碼器,長按學(xué)習(xí)鍵超過8s,待學(xué)習(xí)燈LED熄滅后,譯碼器自動清除存儲器里的記憶內(nèi)容,這樣就可讓遺失的編碼器失效而作廢,但此時所有的編碼器都失效,因此,所有的編碼器需重新進行學(xué)習(xí)一遍才可正常使用。
4 結(jié)語
譯碼芯片TDH6301有2種工作方式,可方便地選擇,跳碼芯片經(jīng)過擴展,可以具有15個功能,跳碼技術(shù)的關(guān)鍵在于:對于同一動作(如開門),編碼器每次發(fā)出的編碼卻有極大不同,發(fā)過的碼字被記錄,重發(fā)也視為無效。且碼字具有足夠的長度,保密性很高,足以抵抗使用儀器對碼字進行掃描,因此,跳碼芯片至少在目前是傳統(tǒng)密碼鎖更型換代的理想產(chǎn)品,可廣泛應(yīng)用汽車遙控報警器、家庭安全系統(tǒng)、電子鑰匙、門禁系統(tǒng)、自動門系統(tǒng)等高度安全保障領(lǐng)域。
評論