當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]當(dāng)今的編解碼電路已經(jīng)朝著高度集成化和微電腦化發(fā)展。像普通的固定編解碼芯片如MCl45026/145027、PT2262/2272等已被廣泛應(yīng)用于公用系統(tǒng)中,給生活帶來了方便。然而這些芯片不能保證系統(tǒng)的安全性。由于這些系統(tǒng)每次發(fā)送

當(dāng)今的編解碼電路已經(jīng)朝著高度集成化和微電腦化發(fā)展。像普通的固定編解碼芯片如MCl45026/145027、PT2262/2272等已被廣泛應(yīng)用于公用系統(tǒng)中,給生活帶來了方便。然而這些芯片不能保證系統(tǒng)的安全性。由于這些系統(tǒng)每次發(fā)送的數(shù)據(jù)流一模一樣,只是高低電平的組合,第三方通過捕捉設(shè)備,一旦用戶信號出現(xiàn),便可瞬間取得合法的身份識別碼;或使用編碼掃描設(shè)備,主動攻擊解碼芯片。因此保證系統(tǒng)的安全性是一個很現(xiàn)實(shí)的問題[1]。在此背景下,基于加密算法的編解碼IC的安全機(jī)制得到了應(yīng)用。Microchip公司的KEELOQ技術(shù)是這種技術(shù)的代表[2,3,4]。KEELOQ技術(shù)是一種多變化、抗截獲、安全可靠性高的非線性跳碼加密解密技術(shù)。KEELOQ目前是通過硬件芯片IC(以Mirochip公司的HCS300為代表)實(shí)現(xiàn),主要應(yīng)用于汽車防盜系統(tǒng)和門禁系統(tǒng),是無鑰進(jìn)入系統(tǒng)領(lǐng)域的首選芯片。但也由于硬件芯片本身的限制(其所能加密的數(shù)據(jù)必須預(yù)先寫入EEPROM中),使之很難用于其它(如數(shù)據(jù)加密)領(lǐng)域。
  本文把這項(xiàng)封裝在芯片里的KEELOQ加密技術(shù)用軟件方式實(shí)現(xiàn),并針對單片機(jī)的特性進(jìn)行了適當(dāng)改進(jìn)。這種在單片機(jī)中實(shí)現(xiàn)的改進(jìn)算法不僅包含了原來HCS300所具備的所有功能,而且在系統(tǒng)安全性、靈活性、可擴(kuò)展性、傳輸效率等方面均有較大改善,同時對改進(jìn)算法在數(shù)據(jù)加密領(lǐng)域作了全新的嘗試,以其特殊的密鑰管理方法獨(dú)立于對稱型加密(如DES)與不對稱型加密算法(即公開密鑰體制,如RSA) [1],成為一種適用于無線傳輸領(lǐng)域小型系統(tǒng)的數(shù)據(jù)加密算法。
1 KEELOQ技術(shù)簡介及其硬件實(shí)現(xiàn)
  KEELOQ技術(shù)的核心思想[2,3,4]是用64bit的EN_KEY[64:0](加密密鑰)去加密32bit的CSR[31:0](校驗(yàn)碼)得到32bit的CRYP密文。加密機(jī)制為:首先定義一個非線性表,這個非線性表有5位輸入NLF_IN[4:0],一位輸出NLF_OUT。它在CSR[31:0]中間隔均勻地取固定5位:I0、I1、I2、I3、I4,通過非線性產(chǎn)生一個輸出碼NLF_OUT;這一位輸出碼NLF_OUT再與EN_KEY中的15位、CSR中的2位進(jìn)行異或運(yùn)算后輸出第一位輸出碼CRYP[0];每輸出一位后,EN_KEY、CSR分別進(jìn)行移位,EN_KEY作循環(huán)移位,CRYP[0]作為CSR移位的輸入;重復(fù)上述步驟直到輸出32位CRYP[0:31]。依此法,即使32bit的校驗(yàn)碼CSR中只有一位發(fā)生變化,用KEELOQ加密算法得到的CRYP密文也會有50%以上的數(shù)據(jù)位(16bit)發(fā)生變化。
  Microchip公司以KEELOQ技術(shù)為基礎(chǔ)開發(fā)了滾動碼系列專用芯片,HCS300是其中較典型的一款。它是一塊8引腳的編碼IC芯片,里面集成了KEELOQ算法和其他一些功能,帶有四個按鍵接口,實(shí)現(xiàn)15位的功能/命令碼。內(nèi)置192bits(12×16bit words) EEPROM,用來存放EN_KEY(加密密鑰)、SN(序列號)、SYNC(同步碼)、SEED(種子碼)等。序列號用來標(biāo)識不同的對象;加密密鑰用來對發(fā)送的數(shù)據(jù)進(jìn)行加密,增加破譯的難度,它不直接發(fā)送出去;同步計(jì)數(shù)器用來抗截獲,每次發(fā)送數(shù)據(jù)時,同步計(jì)數(shù)器的值都被更新,所以每次發(fā)送的數(shù)據(jù)都不一樣。種子碼用于安全學(xué)習(xí)時參與加密密鑰的生成。接收方必須先通過學(xué)習(xí)來獲得并存儲發(fā)送方的序列號、加解密密鑰和當(dāng)前同步計(jì)數(shù)器的值。學(xué)習(xí)相當(dāng)于身份確認(rèn),只有經(jīng)過學(xué)習(xí)的用戶才能與主機(jī)通信。主機(jī)在接收到信號后,首先比對序列號,然后利用學(xué)習(xí)過程中得到并存儲的加密密鑰對接收的數(shù)據(jù)進(jìn)行解密;接著檢查同步計(jì)數(shù)器是否匹配,在確認(rèn)其匹配后,再去處理接收到的按鍵信令,并根據(jù)接收到的按鍵信令作出相應(yīng)的動作反應(yīng)。HCS300系統(tǒng)使每次發(fā)送的密文都不相同,有效防止了空中截獲法和數(shù)據(jù)重傳帶來的安全隱患。
  HCS300系統(tǒng)的加密密鑰在學(xué)習(xí)過程中經(jīng)密鑰生成算法產(chǎn)生。學(xué)習(xí)分為一般學(xué)習(xí)和安全學(xué)習(xí)。一般模式下,解密密鑰由MKEY和SN生成加解密密鑰EN_KEY,其解密密鑰隱含于發(fā)送信息(MKEY和SN)中。安全模式下,增加了種子碼SEED(當(dāng)四鍵一起按時發(fā)送),它與MKEY和SN一起生成加解密密鑰EN_KEY,而SEED_KEY在平時并不發(fā)送,這樣增加了安全性。不過,在學(xué)習(xí)時SEED碼的發(fā)送是不經(jīng)過加密的。
2 KEELOQ技術(shù)的不足與改進(jìn)加密算法的提出
  盡管KEELOQ技術(shù)有上述獨(dú)特的優(yōu)點(diǎn),但是經(jīng)過深入分析不難發(fā)現(xiàn)KEELOQ算法及其硬件實(shí)現(xiàn)技術(shù)也存在一些不足:
  (1)安全性基于出廠密鑰和種子碼SEED。在HCS300芯片中,加密密鑰EN_KEY是由出廠密鑰MKEY、序列號SN和種子碼SEED(安全模式)生成的。而SN和SEED在發(fā)送數(shù)據(jù)的過程中未經(jīng)加密,是可截獲的。理論上出廠密鑰一經(jīng)確定一般不會更改。所以,一旦出廠密鑰外泄,后果極其嚴(yán)重。
  (2)擴(kuò)展功能弱、升級不方便。其算法由硬件芯片實(shí)現(xiàn)。其所能實(shí)現(xiàn)的功能由按鍵決定。其按鍵只有4個,最多也只有15種組合。發(fā)送方無法附加其余的信息(對于大多領(lǐng)域來說,它要求能發(fā)送一些附加信息,如用戶的姓名、年齡、出生日期等),功能擴(kuò)展幾乎不可能。另外,某一特定型號的芯片其序列號和同步計(jì)數(shù)器的長度是固定的。當(dāng)系統(tǒng)建成后,開發(fā)者如果想只通過軟件升級來擴(kuò)充系統(tǒng)的容量或提高系統(tǒng)的性能、用硬件實(shí)現(xiàn)技術(shù)基本不可能。
  (3)對功能碼的檢錯和糾錯的功能較弱。在無線傳輸中,出現(xiàn)誤碼的概率比較大。功能碼代表所要實(shí)現(xiàn)的功能,如開門、報(bào)警、開閥等。如果發(fā)送的數(shù)據(jù)是0010,而接收的數(shù)據(jù)為0100,其后果非常嚴(yán)重[4]。
  (4)傳輸效率較低。在發(fā)送的數(shù)據(jù)中,其有用信息(如序列號、功能碼)全部在固定碼中,加密碼只作為一種加密用的附加數(shù)據(jù),這樣不但降低了安全性,而且傳輸效率不高。以HCS300為例,發(fā)送的66位數(shù)據(jù)中只有32位為有用信息,傳輸效率比較低。
  (5)無法用于數(shù)據(jù)加密。由于其是由硬件芯片實(shí)現(xiàn)的,它所能加密的數(shù)據(jù)只限于序列號、同步碼等預(yù)先存在HCS300的EEPROM中的數(shù)據(jù)。它沒有數(shù)據(jù)入口,無法對數(shù)據(jù)流進(jìn)行加密。
  (6)受硬件設(shè)計(jì)限制,靈活性差,成本較高,由于不擁有核心技術(shù),容易受制于人[4]。
  基于上述分析,筆者結(jié)合單片機(jī)的特性,對KEELOQ算法提出如下改進(jìn):
  (1)保留出廠密鑰,但引入隨機(jī)數(shù),防止出廠密鑰和種子碼的泄漏,用戶可隨時改變加密密鑰。
  (2)改進(jìn)數(shù)據(jù)傳輸?shù)母袷?把同步碼映射到各組待加密的數(shù)據(jù)中,提高傳輸效率。
  (3)增加對功能碼或關(guān)鍵數(shù)據(jù)的檢錯和糾錯的功能。
  (4)增加數(shù)據(jù)入口,改變對加密數(shù)據(jù)的長度要求,使其適合批量的數(shù)據(jù)加密。
  數(shù)據(jù)加密系統(tǒng)的兩個基本要素是加密算法和密鑰管理。密鑰是控制加密算法和解密算法的關(guān)鍵信息,其產(chǎn)生、傳輸、存儲等工作十分重要。目前數(shù)據(jù)加密技術(shù)可以分為二類,即對稱型加密、不對稱型加密[5]。對稱型加密(如DES算法)使用單個密鑰對數(shù)據(jù)進(jìn)行加密或解密。不對稱型加密算法也稱公用密鑰算法(如RSA算法),其特點(diǎn)是有二個密鑰(即公用密鑰和私有密鑰),只有二者搭配使用才能完成加密和解密的全過程。但兩者都在密鑰的管理和分發(fā)上遇到一些困難。KEELOQ密鑰管理機(jī)制的主要特點(diǎn)是對每個用戶都有自己獨(dú)特的加解密密鑰,在學(xué)習(xí)過程中發(fā)送到主機(jī)并保存。但密鑰信息隱含在每次發(fā)送的信息(SN和MKEY)中(即使在安全模式下,種子碼SEED也是固定碼,可截獲),并且依賴于生產(chǎn)廠家和出廠密鑰,不可更改。本改進(jìn)算法主要針對無線傳輸領(lǐng)域的小型系統(tǒng),可以在學(xué)習(xí)過程中引入隨機(jī)參數(shù)RANDOM,與MKEY、SN一起生成EN_KEY。這個隨機(jī)數(shù)RANDOM在同一次學(xué)習(xí)時相同,但每次學(xué)習(xí)時都會改變。這樣,加密密鑰就不依賴于生產(chǎn)廠家和出廠密鑰并且在用戶感到密鑰有可能泄漏時可隨時改變數(shù)據(jù),增加了安全性。
3 改進(jìn)加密算法在單片機(jī)中的實(shí)現(xiàn)
  整個系統(tǒng)分為用戶端(CLIENT)和主機(jī)端(SERVER),系統(tǒng)框圖如圖1所示。在本系統(tǒng)中,考慮功耗、外圍功能等需要,選用飛利浦的LPC76X系列芯片[[6]。P87LPC764 是20 腳封裝的單片機(jī),可以在寬范圍的性能要求下實(shí)現(xiàn)高集成度低成本的解決方案,4Kbits的ROM,128bits的RAM,32Byte用戶代碼區(qū)可用來存放序列碼及設(shè)置參數(shù),內(nèi)帶看門狗定時器,處理器的指令執(zhí)行速度為標(biāo)準(zhǔn)80C51 MCU的兩倍。EEPROM發(fā)送部分選用AT2401(128×8 bits),接收部分選用AT2404(1024×8 bits),8-DIP封裝,I2C總線接口,擦寫次數(shù)>1百萬次,保存時間>100年。

圖1 系統(tǒng)結(jié)構(gòu)

  用戶必須經(jīng)過學(xué)習(xí)后才能與主機(jī)通信。在學(xué)習(xí)過程中,用戶把序列號SN、出廠密鑰MKEY、加密密鑰EN_KEY送給主機(jī),主機(jī)對每一個用戶要開辟一片EEPROM來存儲用戶信息。其具體分布如表1所示。

  在主機(jī)SERVER端,每個用戶CLIENT都需要有16bits的存儲空間。所以本系統(tǒng)共可接收511個用戶的信息。整個系統(tǒng)的設(shè)計(jì)充分考慮系統(tǒng)的升級和功能的擴(kuò)展。其中出廠密鑰、序列號、加密密鑰、隨機(jī)數(shù)均可按需要進(jìn)行擴(kuò)展或縮減。如果從安全角度考慮,可把序列號存放在微處理器的ROM中。

  本文提出的基于KEELOQ技術(shù)的改進(jìn)加密算法及其在單片機(jī)中的實(shí)現(xiàn)技術(shù),可以節(jié)約硬件成本,減少對硬件的依賴,改善系統(tǒng)性能,擴(kuò)展了在數(shù)據(jù)加密領(lǐng)域的應(yīng)用,特別適合應(yīng)用于無線傳輸領(lǐng)域的小型系統(tǒng)的數(shù)據(jù)加密。隨著射頻技術(shù)、無線技術(shù)和藍(lán)牙技術(shù)的發(fā)展,射頻卡身份證的實(shí)施,其應(yīng)用領(lǐng)域可以擴(kuò)展到身份識別、安全管理、防盜報(bào)警、考勤、收費(fèi)、無線抄表、智能監(jiān)控、隨機(jī)檢測器、標(biāo)識信息等諸多領(lǐng)域。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉