[組圖]一種基于KEELOQ的改進加密算法及其在單片機中的實
3.1 學習過程
所謂學習,就是使用戶在主機端中注冊登記的過程。引進隨機數RANDOM,對每一次學習來說,它所產生的隨機數是不一樣的,它所發送的數據也是變化的、不可預知的,提高了安全性。另外,RANDOM和序列號SN、出廠密鑰MKEY一起生成加解密密鑰EN_KEY,使得EN_KEY不再依賴于出廠密鑰MKEY,用戶可以隨時對加解密密鑰EN_KEY進行修改,這樣也提高了安全性。
進入學習模式后,用戶端經三次數據發送完成整個學習。過程如下:
(1)用戶端產生隨機數RANDOM,與MKEY、SN經加密后發送。主機接收到數據解密后,比對MKEY和SN,確認用戶是本系統用戶(比對MKEY)并且是一個新用戶(SN不在EEPROM中)時,開辟空間,保存SN和RANDOM。
(2)用戶端和主機端分別利用密鑰生成算法生成,由MKEY+SN+RANDOM生成EN_KEY,并存入相應的存儲空間。
(3)用戶端利用EN_KEY對SN、RANDOM、SYNC、MKEY進行KEELOQ加密并發送。主機接收到數據后,比對MKEY、RANDOM、SN正確后把SYNC存入相應空間,請求第二次發送(只雙向通信中才有請求功能)。
(4)用戶端收到發送請求后(如果是單向通信,則等待后直接發送)再對SN、RANDOM、SYNC、MKEY加密后發送。因為SYNC是每次改變的,所以這次數據位和上一次發送的數據位改變在50%以上。
(5)主機在接收到數據解密后,比對同步碼SYNC,如果用戶和主機的同步碼變化規律相同則學習成功。
三次發送即完成一次學習過程。第二次學習時隨機數重新產生,所以要求學習時三次數據發送是連續的,否則無效。以上各步中有任何一次數據比對失敗則學習失敗。主機端在前二次接收到數據后等待24s仍未見用戶發送數據則學習失敗。學習失敗后用戶需重新學習。
隨機數則利用單片機的計數器產生,有兩種方法供選用:
(1)單次操作完畢后,單片機的計數器一直不停地計數,在外界對它進行再次操作或者要發送數據時停止計數。因為外界的操作或發送的時間是不定的,所以計數寄存器里面的數是隨機的。
(2)可以對按鍵或操作時間進行計時。用戶每次按鍵或操作的時間都是不定的,并且按鍵從抖動到穩定的時間也是不定的,對它進行計時,如果把間隔的時間取得合適,即可得到近似隨機數。
3.2 發送過程
在數據發送前,必須先對數據進行加密。數據加密的過程如下:
(1)重新定制非線性表。原算法是用64位密鑰去加密32位的明碼數據,現在把它改為64位密鑰去加密64位的明碼數據,密文長度也為64位,可按原規律擴展非線性表即可。
(2)對數據進行分組。盡管應用場合針對小型系統(數據傳輸量較小),但還是必須對所要加密的數據進行分組。在使用分組時,對明文尾部不滿一個整組的碎片采用填充隨機數的辦法將其擴充為一個整組,然后進行正常加密。即數據分組長度、密鑰長度和輸出密文長度均為64位。
(3)把同步碼的變化反映到各組數據中。同步碼每次發送時均會改變,它是保證系統每次發送的密文都不一樣的根本。只需進行分配、疊代、移位、異或等簡單的變換即可完成反映的任務。
(4)封裝算法。算法經封裝后可方便地被各種程序調用。算法的入口參數有三個:EN_KEY、Data、Mode。其中EN_KEY為64位的加密密鑰;Data為64位被加密或被解密的數據;Mode為工作方式,有加密或解密兩種。
HCS300芯片發送的數據主要由固定碼和加密碼組成。固定碼34bit,加密碼32bit。固定碼主要由28位序列號、4位功能碼(按鍵信息)和2位標志組成。加密碼則由16位同步碼、28位序列號(可擴展)、4位功能碼組成。經改進后可用于數據加密的格式如圖2所示。本文引用地址:http://www.104case.com/article/172855.htm
圖2 數據發送格式
在發送時還要加入檢錯和糾錯功能。檢錯視系統的要求可選奇偶校驗、CRC校驗等。糾錯可以用漢明碼。該碼的實現原理是在數據中加入幾個校驗位,并把數據的每個二進制位分配在幾個奇偶校驗組中;當某位出錯后,就會引起有關的幾個校驗組的值發生變化。這不但可以發現錯誤,還能指出哪一位,為自動糾錯提供了依據。
3.3 接收過程
改進算法的解密密鑰由學習時接收并存儲在EEPROM中。其加密和解密的密鑰是一樣的,解密是加密的逆過程。接收過程主要包括序列號搜索、比對、解密、同步碼的比對等過程。接收方的程序流程如圖3所示。
圖3 接收流程圖
本文提出的基于KEELOQ技術的改進加密算法及其在單片機中的實現技術,可以節約硬件成本,減少對硬件的依賴,改善系統性能,擴展了在數據加密領域的應用,特別適合應用于無線傳輸領域的小型系統的數據加密。隨著射頻技術、無線技術和藍牙技術的發展,射頻卡身份證的實施,其應用領域可以擴展到身份識別、安全管理、防盜報警、考勤、收費、無線抄表、智能監控、隨機檢測器、標識信息等諸多領域。
評論