新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于KEELOQ跳碼技術的密碼發(fā)生器設計

基于KEELOQ跳碼技術的密碼發(fā)生器設計

作者: 時間:2008-11-28 來源:網絡 收藏
引 言
基于密碼的訪問控制系統(tǒng)應用在當今是非常普遍的,但人們對其提供的安全等級經常估計過高。通信傳輸速度和系統(tǒng)計算能力的提高使得系統(tǒng)受到惡意攻擊或“密碼掃描”的風險增加。在使用不安全的傳送方式時,可能發(fā)生密碼被盜取的現(xiàn)象。例如典型的通過電話線的調制解調器連接,這種使用固定密碼的方法很不理想。
跳碼技術是通過一個序列使訪問密碼在每次使用時改變。這樣,即使知道大量先前使用的密碼,也不能對新的密碼進行預測。產生這樣一個序列需要使用可靠的加密引擎。Microchip公司提供多種基于KEEL0Q跳碼技術的編碼器,這些編碼器使得產生跳碼遠程控制更為方便。
本文采用Microchip公司的單片機PICl2C508和HSC300編碼器設計了一個密碼發(fā)生器,安裝于鍵盤和PC之間。一個5引腳插頭連接到PC,并向器件供電,而鍵盤插頭則插入5引腳插座。PC和鍵盤之間由時鐘線和數(shù)據(jù)線連接,允許鍵盤進行正常的操作。當傳送信息至互聯(lián)網時,這個密碼發(fā)生器為通用訪問控制安全登錄創(chuàng)建一個“超級密碼”。

1 密碼發(fā)生器構成與工作原理
1.1 鍵盤數(shù)據(jù)接收和發(fā)送

目前使用的標準5孔屏蔽式連接器如圖1所示。其中包括時鐘線、數(shù)據(jù)線、地線和+5 V電源線,可以實現(xiàn)鍵盤和PC之間的雙向數(shù)據(jù)傳輸。

通常,從鍵盤至PC的數(shù)據(jù)發(fā)送是通過按鍵或鍵釋放完成的。然而,某些配置數(shù)據(jù)(即重復、延遲和速率)可能反向傳遞。例如,在系統(tǒng)引導過程中,鍵盤使用集電極開路驅動器對時鐘線進行驅動。PC可通過保持時鐘線為低電平來禁止鍵盤。如果PC將數(shù)據(jù)線保持為低電平而此時時鐘線為高電平,那么計算機發(fā)送請求發(fā)送信號,鍵盤進入接收模式。只有當時鐘線和數(shù)據(jù)線同時處于高電平時,鍵盤才被允許發(fā)送數(shù)據(jù)。
1.2 密碼發(fā)生器硬件構成
密碼發(fā)生器硬件原理圖如圖2所示。

當SO被激活時,PICl2C508接收HCS300編碼器產生的新信息。PICl2c508隨后將模仿鍵盤發(fā)送出正確序列的按鍵和釋鍵信息至PC。為防止鍵盤將此發(fā)送解讀為來自PC的“請求發(fā)送”,在發(fā)送期間將鍵盤與時鐘線和數(shù)據(jù)線隔離。為了簡化電路,采用一個標準的4路雙向CMOS開關4066來切換密碼發(fā)生器,或鍵盤與PC線的連接。
HCS300編碼器設計為,可以是密碼發(fā)生器的一部分,也可以像一把鑰匙一樣可移除的,從而允許方便地替換為具有不同加密密鑰或序列號的不同編碼器。HCS300和PICl2C508都采用8引腳SOIC封裝形式,消耗電流極低,并且都能在內部產生用于操作密碼發(fā)生器的時鐘,功耗盡量低,以使傳輸線不會出現(xiàn)過載。另外,尺寸盡可能小、元件數(shù)盡可能少,從而盡可能采用較小的封裝。理想的情況是將整個電路安置在2個連接器之間較小的間隙中。除一對用于時鐘線和數(shù)據(jù)線上拉的電阻之外,無需其他元件即可實現(xiàn)全功能的跳碼密碼。
1.3 軟件設計
軟件由3個代碼段組成:
◆用于HCS300編碼器的接收子程序。
◆鍵盤仿真子程序。
◆主循環(huán)程序。
用于HCS300編碼器的接收子程序(RECEIVE子程序)收集H(2S300發(fā)送的最初64個數(shù)據(jù)位,并將其填充至一個8字節(jié)的緩沖器。其中最后兩個數(shù)據(jù)位將被忽略,因為它們不具有對本應用有用的信息。
鍵盤仿真子程序根據(jù)IBM―PC/AT鍵盤協(xié)議實現(xiàn)鍵掃描碼的發(fā)送。
當CMOS開關將PC連接至鍵盤時鐘線和數(shù)據(jù)線時,主循環(huán)程序將對LED輸出線進行連續(xù)采樣,以檢測HCS300是否被激活。
當LED線變?yōu)榈碗娖綍r,CMOS開關被激活以使時鐘線和數(shù)據(jù)線與鍵盤隔離,RECEIVE子程序將被調用。軟件采用最簡化的形式開發(fā),可對其采取一些優(yōu)化措施。例如:可使PIC12C508進入“休眠”狀態(tài),以進一步減小功耗。編碼器可能被移除,因此應對編碼器的接入/激活進行正確檢測。由于沒有解密過程,因此沒有其他方法可獲知發(fā)送操作是否已失敗,只能將第二個密碼字與接收到的第一個密碼字進行對比,以確認是否出現(xiàn)發(fā)送錯誤。


2 加密原理

編碼器HCS300使用KEELOQ跳碼技術,使編碼器每次發(fā)送的數(shù)據(jù)都是獨一無二的。編碼器發(fā)送包括兩部分:第一部分稱為“跳碼部分”,在編碼器每次被激活時發(fā)生改變且被加密;第二部分是發(fā)送數(shù)據(jù)的非加密部分,主要包括編碼器序列號,解碼器通過該序列號對其進行識別。密碼字的組成如下:

跳碼包括功能信息、識別值和一個同步計數(shù)器。在發(fā)送這一信息之前需通過加密算法對其進行加密。加密算法使用64位加密密鑰。如果加密數(shù)據(jù)中的一位發(fā)生改變,則將導致輸出數(shù)據(jù)中平均有一半的位發(fā)生改變。這樣,每次發(fā)送時跳碼將徹底改變,因而無法對其進行預測。解碼器使用同步信息來確定發(fā)送是有效的還是前一次發(fā)送的重復,前一次密碼將被拒絕以防止密碼被盜取。HSC300編碼器發(fā)送2個溢出位,用來將同步計數(shù)器值的范圍從65 536擴展到196 608次按鈕操作。HCS300編碼器發(fā)送數(shù)據(jù)的固定碼部分包括4位功能信息和2個狀態(tài)位。這2個狀態(tài)位表明是否進行了重復發(fā)送,以及電池電壓是否過低。HCS300編碼器具有發(fā)送固定種子的能力,種子值連同計數(shù)器值、密鑰、序列號和其他信息一起,在編碼器首次初始化時通過編程寫入編碼器。HCS30C具有32位的種子。
接收應用程序(服務器上運行的軟件)執(zhí)行一些簡單的解碼和校驗步驟,跳碼密碼可用來對大量電子服務的訪問進行驗證。密碼中固定的未加密部分可用來識別用戶和編碼器中激活的功能。

結 語
本文設計的密碼發(fā)生器采用基于KEELOQ的跳碼密碼技術,體積小、功耗低,特別適用于當傳送信息至互聯(lián)網時為通用訪問控制安全登錄創(chuàng)建一個“超級密碼”。實踐證明,這種方式的加密方法非??煽俊?/P>



評論


相關推薦

技術專區(qū)

關閉