文獻標識碼: B
文章編號: 0258-7998(2013)02-0045-03
目前,大部分家庭門禁系統(tǒng)都是采用機械式開鎖,操作比較麻煩,給家里有老人的家庭帶來了諸多不便,且安全性也不能得到很高的保障。近年來RF遙控器件的價格越來越便宜,且電子式遙控開鎖更加方便、安全,從而使其市場有了更大的提升空間,利用其特點已開發(fā)出了一些重要的應(yīng)用,遙控門禁就是其中之一。機械式開鎖的最大缺點就是不安全,采用滾動碼技術(shù)的遙控門禁系統(tǒng)則大大改變了這一現(xiàn)狀,因為其每次發(fā)出的編碼信息不同、不規(guī)則,而且重復(fù)出現(xiàn)同一編碼信息被視為無效,傳輸代碼采用了非線性位加密技術(shù),使其產(chǎn)生了具有很高保密性的滾動碼,使得一些非法的裝置不能在一定的時間內(nèi)破解其密碼。本文主要介紹KEELOQ技術(shù)在遙控門禁系統(tǒng)中的應(yīng)用,并且利用PIC16F630進行控鎖和軟件解碼。
1 編碼器的工作原理
本設(shè)計的遙控門禁系統(tǒng)[1]通過按鍵遙控器就能開關(guān)家門,其工作流程如圖1所示。當(dāng)系統(tǒng)按鈕被按下時,HCS301將開始準備工作,為使按鈕抖動平息,大約要延遲10 ms。信息將以跳碼的形式進行傳輸,跳碼包括識別碼、按鈕信息和徒步計數(shù)值。跳碼就是跳動的代碼,在每次發(fā)送時都將產(chǎn)生變化,即便同一個按鈕被按下多次,它也會發(fā)生變化。因此,發(fā)送的編碼字在超過64 000次的傳輸中都不會重復(fù)。以每天執(zhí)行10次操作為例,跳碼可以保證在18年之內(nèi)編碼字不會重復(fù)。溢出信息可用來將唯一發(fā)送的次數(shù)提高超過192 000次。在發(fā)送代碼過程中,如果有按鈕被按下,則會產(chǎn)生復(fù)位的效果,并且當(dāng)前編碼字的傳輸將不會被完成。只要有按鈕處于按下狀態(tài),松開按鈕就不會對編碼字產(chǎn)生任何影響。在這樣正常的情況下,編碼字將完成并在隨后斷電[2]。
2 KEELOQ技術(shù)介紹
KEELOQ技術(shù)[3]實際上是一個關(guān)于“ASIC”的特別設(shè)計,它包括解碼技術(shù)和加密技術(shù),并提出了一種實用可靠的KEELOQ算法,適用于遙控或命令辨別的場合。它的加密、解密技術(shù)安全,具有變化多、不容易被截獲的特點,KEELOQ技術(shù)可應(yīng)用在車庫門遙控、秘密通信、被動式感應(yīng)控制、停車場管制、安全鎖等場合,用途廣泛。KEELOQ的傳送可經(jīng)由公共頻道,內(nèi)含一組64 bit的編碼密碼,編碼器將把該編碼密碼傳輸?shù)浇獯a器,其中有32 bit的編碼密碼是不知道的,從而可保證該技術(shù)的保密性,并且傳送資料不唯一和不重復(fù)。KEELOQ技術(shù)的重點在于它獨特的演算法(即數(shù)學(xué)推算公式),當(dāng)資料進入這演算法并進行運算時,其輸入與輸出是一一對應(yīng)的,不存在重復(fù)。
2.1 KEELOQ技術(shù)的密碼編碼和存儲[4]
密鑰的產(chǎn)生是由64 bit廠家代碼和28 bit發(fā)送序列號在密鑰生成算法中實現(xiàn),并把其生成的密鑰存儲在HCS301中的EEPROM中,如圖2所示。
2.3 PWM的接收
發(fā)送的信息包括32 bit跳碼和34 bit固定碼,由圖3可知,該固定碼包括識別碼、功能鍵和溢出指示位。首先進入前導(dǎo)資料并進行準備;然后開始接收所傳輸?shù)馁Y料,利用Sync.Header 10 TE來改變接收的速率,會得到TE的時間。當(dāng)檢測到有上升沿上升時,過一半TE時間后,開始進行取樣并檢測其結(jié)果。如果為1,則接收成功;如果為0,則接收失敗,需要等待1 TE時間,然后立即取樣,并把采樣結(jié)果作為資料位元再重復(fù)以上動作,重新采樣并進行測試;如果重測結(jié)果為1則失敗。當(dāng)下一個上升沿出現(xiàn)時,如果等待時間大于1 TE,則可以斷定其結(jié)果為失敗。重復(fù)以上步驟,直到把這66 bit編碼密碼接收完成[5],如圖4所示。
3 PIC16F630的軟解和控鎖
跳碼編碼可用專用芯片進行硬件解碼。由于專用芯片的價格很貴,因此本設(shè)計采用PIC系列的單片機芯片PIC16F630進行軟件解碼[6]。當(dāng)接收器接收到信號時,把信號傳輸?shù)絾纹瑱C中,然后PIC16F630進行軟件解碼,產(chǎn)生控制信號D0、D1、D2、D3。其原理圖如圖5所示。
主機接DC12 V變壓器,+12 V為正極輸入端,GND為負極輸入端,JP1~JP5為短路帽,第一組控制信號由跳線端JP4控制:如果JP4跳到A端,則只有按遙控器A鍵,L1才有開鎖信號;如果JP4跳到D端,則只有按遙控器D鍵,L1才有控制信號輸出。第二組控制信號由跳線端JP3控制:如果JP3跳到B端,則只有按遙控器B鍵,L2才有開鎖信號;如果JP3跳到C端,則只有按遙控器C鍵,L2才有控制信號輸出。
4 KEELOQ技術(shù)的學(xué)習(xí)模式
為使生產(chǎn)配對方便、管理簡單,KEELOQ系統(tǒng)要進行學(xué)習(xí)。解碼器在沒工作時,僅知道其制造商代碼,剩下的都不知道;解碼資訊存儲在EEPROM中,具體包括:序列號(Serial Number)、同步計數(shù)值(Current Sync.Counter Value)、識別碼(Discrimination Value)、編碼密碼(Encrypion Key)[7]。
4.1 簡易學(xué)習(xí)模式
如果使用簡易學(xué)習(xí)模式,則編碼密碼就是制造商代碼。此模式的特點是簡單和容易明白,不足之處是假如制造商代碼被知道,則當(dāng)有兩個使用相同制造商代碼的系統(tǒng)時,這個系統(tǒng)的編碼密碼就很容易被知道,因此安全性被降低。在簡易學(xué)習(xí)模式下,接收到資料,然后進行解碼,判斷是否與制造商代碼一致。如果超過時間,則學(xué)習(xí)失??;如果解碼正確,則判斷識別碼與所接收的序列號中較低的10位元是否相等以及功能鍵與所接收資料中的固定碼按鍵值是否相等,如果不相等,則學(xué)習(xí)失敗,如果相等則把學(xué)習(xí)到的3種資料記錄在EEPROM中,作為解碼資料庫用。
4.2 標準學(xué)習(xí)模式
標準學(xué)習(xí)模式與簡易學(xué)習(xí)模式的解碼方式其實是一樣的,只是使用不同的解碼密碼(Encrypion Key)。在標準模式中,解碼密碼是通過序列號、制造商代碼經(jīng)過運算后得到的,前后共經(jīng)過兩次,并得到64 bit的編碼密碼。第一次運算,先取得32 bit(LSB),第二次運算,再取得32 bit(MSB)。進入標準學(xué)習(xí)模式下,將第一次接收的資料進行解碼后,得到序列號、識別碼、同步技術(shù)值,并判斷識別碼是否與序列號相等;將第二次接收的資料進行解碼后,判斷識別碼與序列號是否相等,并檢查同步技術(shù)值是否加1,如果都正確,則存儲學(xué)習(xí)結(jié)果到EERPROM中。
4.3 安全學(xué)習(xí)模式
安全學(xué)習(xí)模式與標準學(xué)習(xí)模式的解碼方式其實是一樣的,只是解碼密碼產(chǎn)生的方式不同。在安全學(xué)習(xí)模式中,制造商代碼與SEED運算取得解碼密碼,并得到32 bit(LSB);然后此密碼又與序列號進行運算,運算后所取得的密碼為32 bit(MSB),即形成了64 bit的解碼密碼。當(dāng)安全學(xué)習(xí)模式啟動時,將準備接收跳碼,并檢查新、舊序號是否一樣,利用新的解碼密碼與跳碼進行解碼后會得到識別碼和同步技術(shù)值,然后存儲解碼資源中的4種信息到EEPROM中。
5 KEELOQ紙上解碼
以HCS301為例,其跳碼(Hopping Code)使用0~F的制造商代碼,以簡易編碼方式來記錄HCS301所送出的編碼作為解碼輸入。燒錄設(shè)定:序列號0001234,同步技術(shù)值0000,識別碼序號最低10 bit。把燒錄的HCS301作為編碼器,制造商代碼為0123456789ABCDEF,使用簡易編碼解碼方式將所收到的Hopping碼填入“KEELOQ Decoding Tool”中的解碼資料欄中來解碼,所得到的結(jié)果如表1所示。
本文運用了單片機技術(shù)、無線傳輸技術(shù)、KEELOQ技術(shù),采用DXP2004軟件繪制原理圖,設(shè)計出了一種方便、成本低、保密性高的防盜門禁系統(tǒng)。在實際使用時還可以適當(dāng)?shù)丶釉O(shè)硬件(例如報警器、LED燈等)來實現(xiàn)更大的作用。
參考文獻
[1] Microchip Crop.AN661-Code hopping decoder using a PIC16C56[Z].2011.
[2] 孔慧芳,丘宇寧.PKE智能鑰匙系統(tǒng)設(shè)計[J].微型機與應(yīng)用,2010,29(20):103-106.
[3] 何此昂,周渡海.遠程無鑰匙進入系統(tǒng)的方案設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2006,29(12):33-35.
[4] 王文虎,李建奇,陶曾杰.KEELOQ滾動加密技術(shù)在汽車防盜系統(tǒng)中的應(yīng)用[J].電子測量技術(shù),2007,30(10):197-199.
[5] 陳元.基于轎車車身控制網(wǎng)絡(luò)的研究和仿真[D].武漢:武漢理工大學(xué),2008.
[6] 丁明勇.KEELOQ技術(shù)的文件加密設(shè)計與實現(xiàn)[J].遼寧工程技術(shù)大學(xué)學(xué)報,2005,24(5):727-729.
[7] 石幸利.基于滾動碼技術(shù)的汽車防盜系統(tǒng)研究[D].重慶:重慶大學(xué),2007.