本文介紹了一種以FPGA 為基礎的數字密碼鎖。采用自頂向下的數字系統設計方法, 將數字密碼鎖系統分解為若干子系統, 并且進一步細劃為若干模塊, 然后用硬件描述語言VHDL 來設計這些模塊, 同時進行硬件測試。測試結果表明該數字密碼鎖能夠校驗10 位十進制數字密碼, 且可以預置密碼, 設有斷電保護裝置, 解碼有效指示等相應功能。
1 功能概述
(1)密碼鎖的工作時鐘由外部晶振提供,時鐘頻率為50MHz,運算速度高,工作性能穩定。
(2)密碼的設置和輸入由外接鍵盤完成,控制電路的安全系數高,操作方便;
(3)密碼數字可以由鎖的所有者隨意設置,并可更改, 增強了用戶體驗。密碼修改必須符合預設規則,否則無法修改密碼。
(4)開鎖時, 不限制密碼的輸入位數(1到10 位皆可以), 減少了密碼被破 解的概率(約為10 億分之一的破 解率),密碼鎖的保密能力高。
(5)清除密碼鍵的設定,可以快速清除全部密碼,提高了對突發事件的適應能力。
(6)對輸入的數字密碼既能直接顯示,又能轉換為星號,防治偷 窺,增強保密性。
(7)全部密碼輸入后, 正確時密碼鎖將開啟, 顯示屏出現:Input Right! 指示燈變亮。錯誤時,顯示屏出現:Input Failed! 指示燈變滅。
(8)設有斷電保護裝置,保證電路不會因掉電失去所修改的密碼,而回到最初的密碼值,增強密碼的穩定性。
2 系統結構
本系統設計主要包括硬件設計和軟件設計兩部分,均采用模塊化設計。其中硬件設計主要包括中央控制模塊、微控制器、顯示模塊、輸入模塊、外圍電路等內容。軟件設計包括狀態控制模塊,邏輯控制模塊,液晶顯示驅動模塊,EPROM 驅動模塊,掃描輸入模塊等構成。系統結構框架圖如圖1 所示。
圖1:系統結構框架圖
設計采用模塊化編程方式,整個程序由液晶LCD1602 模塊(LCD1602.v)、矩陣鍵盤模塊(Matrix_Keys.v)、存儲芯片AT24C02 模塊(AT24C_XX.v) 和頂層邏輯功能模塊(password.v) 組成。頂層邏輯功能模塊(password.v) 調用其他3 個模塊完成頂層功能的設計。如圖2 所示。
圖2:矩陣鍵盤原理圖
3 底層設計
3.1 輸入模塊
由于鍵盤按鍵數量較多,為了減少I/O 口的占用,本設計將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,8 個端口就可以構成3*5=15個按鍵,實際上我們只用14 個按鍵就足以解決密碼問題,比之直接將端口線用于鍵盤多出了一倍,而且線數越多,區別越明顯,比如再多加一條線就可以構成20 鍵的鍵盤,而直接用端口線則只能多出一鍵(9 鍵)。故在需要的鍵數比較多時,采用矩陣法來做鍵盤是更合理的方案。
3.2 顯示模塊與外圍電路
本設計選用了LCD1602 作為顯示模塊的核心,可以方便地顯示所需的數字和提示語,具有界面人性化、功耗低、速度快、節約控制器資源等優點。外圍電路主要是一個受控制器控制的LED,由于表示鎖的開啟與關閉。
3.3 存儲模塊
本設計使用存儲芯片AT24C02 作為密碼的外部存儲器。二線制串行EEPROM—24C02是低工作電壓的2K 位串行電可擦除只讀存儲器,內部組織為256 個字節,每個字節8 位,該芯片被廣泛應用于低電壓及低功耗的工商業領域。設計使用I2C 協議實現控制器與存儲器的聯結,實現密碼保存,并保證密碼不會因斷電丟失。
4 工作方式
本系統利用上述系統模塊作為硬件基礎,使用VHDL 語言編寫程序,實現了五大主要功能:
(1)確認密碼:通過掃描矩陣鍵盤,判斷用戶輸入內容,將鍵入的數碼與密碼存儲器中的密碼進行比較,判斷密碼的正誤,并控制密碼鎖的開關;
(2)清除密碼:輸入密碼過程中發生按鍵失誤,可以通過選擇清除鍵清除當前全部的密碼,方便重新輸入;
(3)密碼保護:通過顯示切換鍵,可以切換顯示模式。在顯示數字模式下,顯示屏即顯示輸入的數字,方便用戶操作;在保護模式下,顯示的密碼用“*”表示,防止外界偷 窺,提高安全性能;
(4)修改密碼:當密碼鎖處于打開狀態時,默認識別當前用戶為鎖的持有者,允許修改密碼。但修改密碼必須符合密碼鎖內設的“潛在規則”,否則無法完成修改,防止密碼鎖被破壞;
(5)斷電保護:設置電路保護結構,保證電路不會因掉電失去所修改的密碼,而回到最初的密碼值。
其工作流程圖如圖3。
圖3:工作流程圖
5 仿真與調試
在設計過程中,首先針對各個模塊,使用Quartus II 等軟件進行仿真,然后將程序燒錄進行硬件調試。最后,將整個系統程序進行全編譯, 進行整個系統的軟件仿真,仿真通過后進行整個系統的硬件調。
6 核心特點
本設計開創性地提出了修改密碼“潛在規則”的概念,即在修改密碼時,新密碼必須滿足密碼鎖制作時預設的潛在規則,否則無法成功修改密碼,例如:潛在規則為密碼必須為七位數,則在修改密碼時若輸入為五位數則會提示密碼修改失敗。本設計的意義在于,當入侵者通過非法手段獲取正確密碼并開鎖后,如果短時間內不能發現潛在規則,就不得不放棄修改密碼,防止用戶利益二次受損。另外潛在規則的設計方式還可以為密碼所有位數和等于N,必須為偶數等等,每一種潛在規則都有對應的說明書,所以即使批量生產也不存在潛在規則被破 解的問題。此外,用戶在忘記密碼時可以根據說明書,聯系潛在規則回憶密碼。另外,密碼鎖支持1~10 位任意位10 進制數作為密碼,遠大于一般密碼鎖,靈活性極高,可組合出約11 億種密碼組合,從概率學上講,隨機破 解密碼為不可能事件。
7 結束語
基于FPGA 適用于設計狀態機的特點,通過Quartus II 仿真以及實物測試,證明本數字密碼鎖具有功能完善、工作穩定、安全系數高的特點,通過修改密碼方案的創新,使其在實際應用中能進一步顯示優良的安全性能,具有較好的發展前景。
評論
查看更多