技術帝上手:電子按鍵密碼鎖的設計
發布時間:2014-12-17 責任編輯:echolady
【導讀】電子按鍵密碼鎖的設計,相較於傳統密碼鎖有其獨特的優勢,安全性高、成本低、簡(jian)單(dan)易(yi)操(cao)作(zuo)。現(xian)如(ru)今(jin),電(dian)子(zi)密(mi)碼(ma)鎖(suo)逐(zhu)漸(jian)興(xing)起(qi),更(geng)加(jia)複(fu)雜(za)的(de)密(mi)碼(ma)鎖(suo)也(ye)已(yi)經(jing)相(xiang)繼(ji)出(chu)現(xian),本(ben)文(wen)則(ze)采(cai)用(yong)基(ji)本(ben)電(dian)路(lu)加(jia)模(mo)式(shi)控(kong)製(zhi)的(de)設(she)計(ji)方(fang)法(fa),大(da)大(da)提(ti)高(gao)了(le)密(mi)碼(ma)鎖(suo)的(de)安(an)全(quan)性(xing)。
電子密碼鎖近年來發展迅速,諸如按鍵式密碼鎖、卡片式密碼鎖、以及更加複雜的指紋識別、虹膜識別等密碼鎖相繼出現。目前應用最廣泛、技術最成熟的電子密碼鎖還屬按鍵式和卡片式密碼鎖,但卡片設備具有易磨損、壽命短、易受外界磁場幹擾等缺點,並且一旦卡片丟失,將對密碼鎖的使用造成極大不便。
FPGA作為發展迅速的現代設計技術,已經被廣泛應用於軍事、空間、電子消費類產品等領域,是現代密碼協議、算法實現的優選平台。FPGA 內部算法可以並行執行,且不存在程序跑飛等風險。論文針對當前電子密碼鎖的發展現狀,設計了一種基於FPGA的按鍵密碼鎖。為簡化電路結構,節省邏輯資源,充分發揮FPGA的可靠性,本文采用了基本電路加模式控製的設計方法;同(tong)時(shi)提(ti)出(chu)了(le)一(yi)種(zhong)冗(rong)餘(yu)編(bian)碼(ma)結(jie)合(he)掩(yan)碼(ma)加(jia)密(mi)的(de)硬(ying)件(jian)加(jia)密(mi)方(fang)法(fa),使(shi)得(de)開(kai)鎖(suo)密(mi)碼(ma)在(zai)對(dui)外(wai)部(bu)密(mi)碼(ma)存(cun)儲(chu)模(mo)塊(kuai)讀(du)寫(xie)的(de)過(guo)程(cheng)中(zhong)難(nan)以(yi)被(bei)泄(xie)漏(lou),從(cong)而(er)極(ji)大(da)地(di)提(ti)高(gao)了(le)密(mi)碼(ma)鎖(suo)的(de)安(an)全(quan)性(xing)。
1 電子密碼鎖設計原理
采用6位十六進製數作為開鎖密碼,外部密碼輸入正確,能成功指示,輸入錯誤也能清除和重置;連續3次密碼輸入錯誤後,係統將死鎖,此時密碼鎖不再響應按鍵輸入信號,隻能通過特定解鎖信號解除死鎖;具有修改密碼功能,能夠按照特定的流程對開鎖密碼進行修改。密碼鎖工作在正常解鎖、修改密碼和死鎖三種狀態下,狀態轉移如圖1所示。
圖1中,“正常解鎖”狀態下,按下特定功能按鍵使密碼鎖進入“修改密碼”狀態,密碼修改完成後返回“正常解鎖”狀態;任一狀態下連續三次輸入密碼錯誤,進入“死鎖”狀態,此時隻有特定 硬件解鎖信號才能使密碼鎖返回“正常解鎖”狀態。

圖1 密碼鎖狀態轉移圖
2 基於FPGA的邏輯電路實現根據密碼鎖功能需求,密碼鎖電路原理框圖如圖2所示。

圖2 密碼鎖電路原理框圖
圖2中,灰色方框內為FPGA內部模塊,完成整個密碼鎖的邏輯功能。外接鍵盤是密碼鎖的輸入設備,包括十六進製密碼按鍵和密碼鎖功能按鍵。由於目前FPGA芯片大多基於SRAM 架構,掉電後程序和數據都會清零,因此需要外接一片密碼存儲芯片對用戶設置的密碼進行存儲。部分基於FLASH 架構的FPGA 芯片雖然具有掉電後保存程序的能力,但是內部FLASH的讀寫隻能通過JTAG進行,仍舊需要外接密碼存儲芯片。顯示、開鎖和報警模塊分別實現密碼鎖的按鍵位數顯示、開鎖信號和報警信號輸出功能。FPGA 內部電路主要由輸入控製、密碼比較、輸出控製、密碼管理和模式控製等模塊構成。其中輸入控製模塊完成對外接鍵盤信號的鍵值提取和按鍵消抖功能;密碼比較模塊用於對當前輸入密碼和密碼存儲模塊中保存的正確密碼進行比較;輸出控製模塊用於控製顯示模塊顯示密碼輸入位數,並針對密碼比較結果和當前電路模式,控製開鎖和報警信號;密碼管理模塊負責處理對外部密碼存儲模塊的讀/寫以及掩碼加/解密等操作。當按鍵輸入密碼時,密碼管理模塊從密碼存儲模塊中讀取密碼,送入密碼比較模塊與輸入密碼進行比較;當修改密碼時,密碼管理模塊將按鍵輸入新密碼寫入密碼存儲模塊,更新密碼鎖的開鎖密碼。
上述輸入控製、密碼比較、輸出控製、密碼管理等模塊足以保證上鎖、解鎖這一基本功能得以實現。然而本文設計要求中還包括修改密碼和 死(si)鎖(suo)報(bao)警(jing)功(gong)能(neng),使(shi)得(de)電(dian)路(lu)邏(luo)輯(ji)更(geng)加(jia)複(fu)雜(za)。為(wei)此(ci),本(ben)文(wen)采(cai)用(yong)一(yi)種(zhong)基(ji)礎(chu)電(dian)路(lu)加(jia)模(mo)式(shi)控(kong)製(zhi)的(de)方(fang)法(fa)來(lai)設(she)計(ji)密(mi)碼(ma)鎖(suo),就(jiu)是(shi)將(jiang)一(yi)個(ge)功(gong)能(neng)相(xiang)對(dui)複(fu)雜(za)的(de)邏(luo)輯(ji)電(dian)路(lu)劃(hua)分(fen)為(wei)幾(ji)個(ge)相(xiang)對(dui)獨(du)立(li)的(de)工(gong)作(zuo)模(mo)式(shi),針(zhen)對(dui)不(bu)同(tong)模(mo)式(shi)分(fen)別(bie)設(she)計(ji)電(dian)路(lu)模(mo)塊(kuai);ranhouzonghegegemoshigongyongdedianlumokuaizuoweijichudianlu,bingyinrumoshikongzhimokuaiduijichudianludegongzuomoshijinxingyouxiaodeguanli。jutidaobenshejidangzhong,zhenggemimasuokeyifenweizhengchangjiesuo、修改密碼和死鎖三種模式。其中正常解鎖和修改密碼的流程分別如圖3(a)和圖3(b)所示。

圖3 正常解鎖和修改密碼流程圖
如圖3 所示,在正常解鎖和修改密碼模式下,都需要完成按鍵輸入、原密碼讀取、密碼比較、密碼輸入錯誤計數、顯示輸出等功能。因此基礎電路可以由圖2中的輸入控製、密碼比較、輸出控製、密碼管理等模塊構成,而模式控製模塊負責控製基礎電路在不同模式間進行切換。例如,在正常解鎖模式下,基礎電路按照圖3(a)中的流程工作;按下修改密碼鍵,模式變為修改密碼,基礎電路工作流程如圖3(b)所示。基礎電路中各個模塊在不同模式下各司其職,分模式複用,不會產生冗餘的功能模塊;模(mo)式(shi)控(kong)製(zhi)模(mo)塊(kuai)統(tong)領(ling)全(quan)局(ju),控(kong)製(zhi)整(zheng)個(ge)基(ji)礎(chu)電(dian)路(lu)的(de)模(mo)式(shi)轉(zhuan)換(huan)。因(yin)此(ci),采(cai)用(yong)上(shang)述(shu)設(she)計(ji)方(fang)法(fa),可(ke)以(yi)簡(jian)化(hua)電(dian)路(lu)結(jie)構(gou),節(jie)省(sheng)邏(luo)輯(ji)資(zi)源(yuan),使(shi)得(de)邏(luo)輯(ji)流(liu)程(cheng)更(geng)加(jia)清(qing)晰(xi),便(bian)於(yu)電(dian)路(lu)結(jie)構(gou)和(he)功(gong)能(neng)的(de)拓(tuo)展(zhan)。
[page]
3 密碼鎖安全性設計
安全性作為密碼鎖的首要特性,一直以來都是密碼鎖設計的重點。然而以往基於FPGA 的密碼鎖都是參考機械式密碼鎖的方法,通過提高密碼位數來提高密碼的破譯難度。但是由於基於FPGA的電子密碼鎖與機械密碼鎖構造的不同,這種方法對FPGA密碼鎖安全性的提高並不全麵。前麵已經提到,由於FPGA芯(xin)片(pian)數(shu)據(ju)掉(diao)電(dian)易(yi)失(shi)的(de)特(te)點(dian),必(bi)須(xu)將(jiang)密(mi)碼(ma)鎖(suo)的(de)正(zheng)確(que)密(mi)碼(ma)存(cun)儲(chu)在(zai)外(wai)部(bu)密(mi)碼(ma)存(cun)儲(chu)器(qi)中(zhong),每(mei)次(ci)解(jie)鎖(suo)都(dou)需(xu)要(yao)從(cong)密(mi)碼(ma)存(cun)儲(chu)器(qi)中(zhong)讀(du)取(qu)正(zheng)確(que)密(mi)碼(ma)與(yu)按(an)鍵(jian)輸(shu)入(ru)進(jin)行(xing)比(bi)對(dui),這(zhe)就(jiu)使(shi)得(de)正(zheng)確(que)密(mi)碼(ma)很(hen)容(rong)易(yi)在(zai)密(mi)碼(ma)存(cun)儲(chu)器(qi)讀(du)寫(xie)的(de)過(guo)程(cheng)中(zhong)被(bei)泄(xie)露(lu)出(chu)去(qu),嚴(yan)重(zhong)影(ying)響(xiang)密(mi)碼(ma)鎖(suo)的(de)安(an)全(quan)性(xing)。為(wei)解(jie)決(jue)這(zhe)一(yi)問(wen)題(ti), 本文提出一種冗餘編碼結合掩碼加密的硬件加密方法,該方法能夠大大降低開鎖密碼泄露的可能性。
3.1 設計原理
所謂掩碼加密,就是將原開鎖密碼K 同一未知掩碼M 進行異或運算,再將運算得到的新開鎖密碼K′ 存儲在密碼存儲模塊中,如:
K⊕M = K′
K′⊕M = K⊕M⊕M = K
從上式中可以看出,由於掩碼M 未知,即使在密碼讀取的過程中K′ 被泄露,也無法得到原開鎖密碼K;解鎖過程中隻需要將K′ 再次與掩碼進行M 異或運算,就能得到原開鎖密碼K。然而上述掩碼加密方法還存在一個不足,就是當掩碼M 取值數量較少的時候,加密效果將會受到很大的限製。如前所述,密碼鎖的密碼為6位十六進製數。一般編碼方式將這6位密碼分別以4 b二進製數的形式進行編碼,對應掩碼M 一共隻有24 種取值,被破解的風險就比較大;而掩碼M 一旦被破解,掩碼加密對原密碼K 的保護作用也將不複存在。
為解決這一問題,本文在掩碼加密之前對密碼進行了冗餘編碼,即用16 b 二進製數對原密碼進行編碼。這樣一來,掩碼M 為一個16 b 二進製數,具有216種取值,被破解的概率大大降低了。
如表1 所示,一個未知十六進製數K,經過冗餘編碼和掩碼加密處理,即使掩碼加密後的密碼泄露,但由於掩碼未知且掩碼數量巨大,原密碼K 的值也無法被破解。由此可見,采用冗餘編碼結合掩碼加密的設計方法,密碼鎖的安全性可以得到極大的提高。

如前所述,圖2 中密碼管理模塊在正常解鎖模式下,從密碼存儲模塊中讀取正確密碼;在修改密碼模式下,負責處理如圖3(b)所示的修改流程,並將新密碼寫入密碼存儲模塊。除此之外,密碼鎖的掩碼加密也需要在密碼管理模塊中完成,其內部框圖如圖4所示。
輸(shu)入(ru)控(kong)製(zhi)模(mo)塊(kuai)提(ti)取(qu)按(an)鍵(jian)信(xin)號(hao)並(bing)對(dui)其(qi)進(jin)行(xing)冗(rong)餘(yu)編(bian)碼(ma)。正(zheng)常(chang)解(jie)鎖(suo)模(mo)式(shi)下(xia),邏(luo)輯(ji)控(kong)製(zhi)模(mo)塊(kuai)控(kong)製(zhi)讀(du)寫(xie)控(kong)製(zhi)模(mo)塊(kuai)讀(du)取(qu)密(mi)碼(ma)存(cun)儲(chu)模(mo)塊(kuai)中(zhong)的(de)正(zheng)確(que)密(mi)碼(ma),經(jing)過(guo)掩(yan)碼(ma)解(jie)密(mi)後(hou)與(yu)輸(shu)入(ru)控(kong)製(zhi)模(mo)塊(kuai)生(sheng)成(cheng)的(de)冗(rong)餘(yu)碼(ma)同(tong)時(shi)輸(shu)入(ru)密(mi)碼(ma)比(bi)較(jiao)模(mo)塊(kuai)進(jin)行(xing)比(bi)較(jiao);修改密碼模式下,邏輯控製模塊按照圖3(b)中的流程完成新密碼的輸入,並將 掩碼加密後的新密碼寫入到密碼存儲模塊。

圖4 密碼管理模塊框圖
結語本文設計的電子密碼鎖,具有解鎖、報警、修改密碼、死si鎖suo等deng功gong能neng。由you於yu電dian路lu邏luo輯ji流liu程cheng較jiao為wei複fu雜za,本ben文wen對dui電dian路lu進jin行xing分fen模mo式shi設she計ji,綜zong合he各ge模mo式shi電dian路lu得de到dao基ji礎chu電dian路lu,再zai在zai基ji礎chu電dian路lu之zhi上shang加jia入ru模mo式shi控kong製zhi模mo塊kuai的de設she計ji方fang法fa,從cong而er避bi免mian了le冗rong餘yu模mo塊kuai的de產chan生sheng,節jie省sheng了le邏luo輯ji資zi源yuan,並bing得de到dao結jie構gou簡jian潔jie、邏輯清晰的電路設計。該方法對於基於FPGA的複雜電路的設計具有借鑒意義。
同時,針對FPGA器件數據掉電易失的特性,提出了一種冗餘編碼結合掩碼加密的硬件加密方法。該方法使得在對外部密碼存儲模塊讀/寫的過程中開鎖密碼難以被泄露,從而提高了密碼鎖的破解難度,使其安全性得到很大提高。
相關閱讀:
一款汽車電子密碼鎖電路設計
一款汽車電子密碼鎖電路圖設計
新手入門:電子密碼鎖基於555單穩態電路設計
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 邊緣AI的發展為更智能、更可持續的技術鋪平道路
- 每台智能體PC,都是AI時代的新入口
- IAR作為Qt Group獨立BU攜兩項重磅汽車電子應用開發方案首秀北京車展
- 構建具有網絡彈性的嵌入式係統:來自行業領袖的洞見
- 數字化的線性穩壓器
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索





