你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文

技術(shù)帝上手:電子按鍵密碼鎖的設(shè)計(jì)

發(fā)布時(shí)間:2014-12-17 責(zé)任編輯:echolady

【導(dǎo)讀】電子按鍵密碼鎖的設(shè)計(jì),相較于傳統(tǒng)密碼鎖有其獨(dú)特的優(yōu)勢(shì),安全性高、成本低、簡(jiǎn)單易操作?,F(xiàn)如今,電子密碼鎖逐漸興起,更加復(fù)雜的密碼鎖也已經(jīng)相繼出現(xiàn),本文則采用基本電路加模式控制的設(shè)計(jì)方法,大大提高了密碼鎖的安全性。

電子密碼鎖近年來(lái)發(fā)展迅速,諸如按鍵式密碼鎖、卡片式密碼鎖、以及更加復(fù)雜的指紋識(shí)別、虹膜識(shí)別等密碼鎖相繼出現(xiàn)。目前應(yīng)用最廣泛、技術(shù)最成熟的電子密碼鎖還屬按鍵式和卡片式密碼鎖,但卡片設(shè)備具有易磨損、壽命短、易受外界磁場(chǎng)干擾等缺點(diǎn),并且一旦卡片丟失,將對(duì)密碼鎖的使用造成極大不便。

FPGA作為發(fā)展迅速的現(xiàn)代設(shè)計(jì)技術(shù),已經(jīng)被廣泛應(yīng)用于軍事、空間、電子消費(fèi)類(lèi)產(chǎn)品等領(lǐng)域,是現(xiàn)代密碼協(xié)議、算法實(shí)現(xiàn)的優(yōu)選平臺(tái)。FPGA 內(nèi)部算法可以并行執(zhí)行,且不存在程序跑飛等風(fēng)險(xiǎn)。論文針對(duì)當(dāng)前電子密碼鎖的發(fā)展現(xiàn)狀,設(shè)計(jì)了一種基于FPGA的按鍵密碼鎖。為簡(jiǎn)化電路結(jié)構(gòu),節(jié)省邏輯資源,充分發(fā)揮FPGA的可靠性,本文采用了基本電路加模式控制的設(shè)計(jì)方法;同時(shí)提出了一種冗余編碼結(jié)合掩碼加密的硬件加密方法,使得開(kāi)鎖密碼在對(duì)外部密碼存儲(chǔ)模塊讀寫(xiě)的過(guò)程中難以被泄漏,從而極大地提高了密碼鎖的安全性。

1 電子密碼鎖設(shè)計(jì)原理

采用6位十六進(jìn)制數(shù)作為開(kāi)鎖密碼,外部密碼輸入正確,能成功指示,輸入錯(cuò)誤也能清除和重置;連續(xù)3次密碼輸入錯(cuò)誤后,系統(tǒng)將死鎖,此時(shí)密碼鎖不再響應(yīng)按鍵輸入信號(hào),只能通過(guò)特定解鎖信號(hào)解除死鎖;具有修改密碼功能,能夠按照特定的流程對(duì)開(kāi)鎖密碼進(jìn)行修改。密碼鎖工作在正常解鎖、修改密碼和死鎖三種狀態(tài)下,狀態(tài)轉(zhuǎn)移如圖1所示。

圖1中,“正常解鎖”狀態(tài)下,按下特定功能按鍵使密碼鎖進(jìn)入“修改密碼”狀態(tài),密碼修改完成后返回“正常解鎖”狀態(tài);任一狀態(tài)下連續(xù)三次輸入密碼錯(cuò)誤,進(jìn)入“死鎖”狀態(tài),此時(shí)只有特定 硬件解鎖信號(hào)才能使密碼鎖返回“正常解鎖”狀態(tài)。

技術(shù)帝上手:電子按鍵密碼鎖的設(shè)計(jì)
圖1 密碼鎖狀態(tài)轉(zhuǎn)移圖
 
2 基于FPGA的邏輯電路實(shí)現(xiàn)

根據(jù)密碼鎖功能需求,密碼鎖電路原理框圖如圖2所示。

技術(shù)帝上手:電子按鍵密碼鎖的設(shè)計(jì)
圖2 密碼鎖電路原理框圖
 
圖2中,灰色方框內(nèi)為FPGA內(nèi)部模塊,完成整個(gè)密碼鎖的邏輯功能。外接鍵盤(pán)是密碼鎖的輸入設(shè)備,包括十六進(jìn)制密碼按鍵和密碼鎖功能按鍵。由于目前FPGA芯片大多基于SRAM 架構(gòu),掉電后程序和數(shù)據(jù)都會(huì)清零,因此需要外接一片密碼存儲(chǔ)芯片對(duì)用戶設(shè)置的密碼進(jìn)行存儲(chǔ)。部分基于FLASH 架構(gòu)的FPGA 芯片雖然具有掉電后保存程序的能力,但是內(nèi)部FLASH的讀寫(xiě)只能通過(guò)JTAG進(jìn)行,仍舊需要外接密碼存儲(chǔ)芯片。顯示、開(kāi)鎖和報(bào)警模塊分別實(shí)現(xiàn)密碼鎖的按鍵位數(shù)顯示、開(kāi)鎖信號(hào)和報(bào)警信號(hào)輸出功能。

FPGA 內(nèi)部電路主要由輸入控制、密碼比較、輸出控制、密碼管理和模式控制等模塊構(gòu)成。其中輸入控制模塊完成對(duì)外接鍵盤(pán)信號(hào)的鍵值提取和按鍵消抖功能;密碼比較模塊用于對(duì)當(dāng)前輸入密碼和密碼存儲(chǔ)模塊中保存的正確密碼進(jìn)行比較;輸出控制模塊用于控制顯示模塊顯示密碼輸入位數(shù),并針對(duì)密碼比較結(jié)果和當(dāng)前電路模式,控制開(kāi)鎖和報(bào)警信號(hào);密碼管理模塊負(fù)責(zé)處理對(duì)外部密碼存儲(chǔ)模塊的讀/寫(xiě)以及掩碼加/解密等操作。當(dāng)按鍵輸入密碼時(shí),密碼管理模塊從密碼存儲(chǔ)模塊中讀取密碼,送入密碼比較模塊與輸入密碼進(jìn)行比較;當(dāng)修改密碼時(shí),密碼管理模塊將按鍵輸入新密碼寫(xiě)入密碼存儲(chǔ)模塊,更新密碼鎖的開(kāi)鎖密碼。

上述輸入控制、密碼比較、輸出控制、密碼管理等模塊足以保證上鎖、解鎖這一基本功能得以實(shí)現(xiàn)。然而本文設(shè)計(jì)要求中還包括修改密碼和 死鎖報(bào)警功能,使得電路邏輯更加復(fù)雜。為此,本文采用一種基礎(chǔ)電路加模式控制的方法來(lái)設(shè)計(jì)密碼鎖,就是將一個(gè)功能相對(duì)復(fù)雜的邏輯電路劃分為幾個(gè)相對(duì)獨(dú)立的工作模式,針對(duì)不同模式分別設(shè)計(jì)電路模塊;然后綜合各個(gè)模式共用的電路模塊作為基礎(chǔ)電路,并引入模式控制模塊對(duì)基礎(chǔ)電路的工作模式進(jìn)行有效的管理。具體到本設(shè)計(jì)當(dāng)中,整個(gè)密碼鎖可以分為正常解鎖、修改密碼和死鎖三種模式。其中正常解鎖和修改密碼的流程分別如圖3(a)和圖3(b)所示。

技術(shù)帝上手:電子按鍵密碼鎖的設(shè)計(jì)
圖3 正常解鎖和修改密碼流程圖
 
如圖3 所示,在正常解鎖和修改密碼模式下,都需要完成按鍵輸入、原密碼讀取、密碼比較、密碼輸入錯(cuò)誤計(jì)數(shù)、顯示輸出等功能。因此基礎(chǔ)電路可以由圖2中的輸入控制、密碼比較、輸出控制、密碼管理等模塊構(gòu)成,而模式控制模塊負(fù)責(zé)控制基礎(chǔ)電路在不同模式間進(jìn)行切換。例如,在正常解鎖模式下,基礎(chǔ)電路按照?qǐng)D3(a)中的流程工作;按下修改密碼鍵,模式變?yōu)樾薷拿艽a,基礎(chǔ)電路工作流程如圖3(b)所示。

基礎(chǔ)電路中各個(gè)模塊在不同模式下各司其職,分模式復(fù)用,不會(huì)產(chǎn)生冗余的功能模塊;模式控制模塊統(tǒng)領(lǐng)全局,控制整個(gè)基礎(chǔ)電路的模式轉(zhuǎn)換。因此,采用上述設(shè)計(jì)方法,可以簡(jiǎn)化電路結(jié)構(gòu),節(jié)省邏輯資源,使得邏輯流程更加清晰,便于電路結(jié)構(gòu)和功能的拓展。
[page]
3 密碼鎖安全性設(shè)計(jì)

安全性作為密碼鎖的首要特性,一直以來(lái)都是密碼鎖設(shè)計(jì)的重點(diǎn)。然而以往基于FPGA 的密碼鎖都是參考機(jī)械式密碼鎖的方法,通過(guò)提高密碼位數(shù)來(lái)提高密碼的破譯難度。但是由于基于FPGA的電子密碼鎖與機(jī)械密碼鎖構(gòu)造的不同,這種方法對(duì)FPGA密碼鎖安全性的提高并不全面。前面已經(jīng)提到,由于FPGA芯片數(shù)據(jù)掉電易失的特點(diǎn),必須將密碼鎖的正確密碼存儲(chǔ)在外部密碼存儲(chǔ)器中,每次解鎖都需要從密碼存儲(chǔ)器中讀取正確密碼與按鍵輸入進(jìn)行比對(duì),這就使得正確密碼很容易在密碼存儲(chǔ)器讀寫(xiě)的過(guò)程中被泄露出去,嚴(yán)重影響密碼鎖的安全性。為解決這一問(wèn)題, 本文提出一種冗余編碼結(jié)合掩碼加密的硬件加密方法,該方法能夠大大降低開(kāi)鎖密碼泄露的可能性。

3.1 設(shè)計(jì)原理

所謂掩碼加密,就是將原開(kāi)鎖密碼K 同一未知掩碼M 進(jìn)行異或運(yùn)算,再將運(yùn)算得到的新開(kāi)鎖密碼K′ 存儲(chǔ)在密碼存儲(chǔ)模塊中,如:

K⊕M = K′
K′⊕M = K⊕M⊕M = K

從上式中可以看出,由于掩碼M 未知,即使在密碼讀取的過(guò)程中K′ 被泄露,也無(wú)法得到原開(kāi)鎖密碼K;解鎖過(guò)程中只需要將K′ 再次與掩碼進(jìn)行M 異或運(yùn)算,就能得到原開(kāi)鎖密碼K。然而上述掩碼加密方法還存在一個(gè)不足,就是當(dāng)掩碼M 取值數(shù)量較少的時(shí)候,加密效果將會(huì)受到很大的限制。如前所述,密碼鎖的密碼為6位十六進(jìn)制數(shù)。一般編碼方式將這6位密碼分別以4 b二進(jìn)制數(shù)的形式進(jìn)行編碼,對(duì)應(yīng)掩碼M 一共只有24 種取值,被破解的風(fēng)險(xiǎn)就比較大;而掩碼M 一旦被破解,掩碼加密對(duì)原密碼K 的保護(hù)作用也將不復(fù)存在。

為解決這一問(wèn)題,本文在掩碼加密之前對(duì)密碼進(jìn)行了冗余編碼,即用16 b 二進(jìn)制數(shù)對(duì)原密碼進(jìn)行編碼。這樣一來(lái),掩碼M 為一個(gè)16 b 二進(jìn)制數(shù),具有216種取值,被破解的概率大大降低了。

如表1 所示,一個(gè)未知十六進(jìn)制數(shù)K,經(jīng)過(guò)冗余編碼和掩碼加密處理,即使掩碼加密后的密碼泄露,但由于掩碼未知且掩碼數(shù)量巨大,原密碼K 的值也無(wú)法被破解。由此可見(jiàn),采用冗余編碼結(jié)合掩碼加密的設(shè)計(jì)方法,密碼鎖的安全性可以得到極大的提高。

技術(shù)帝上手:電子按鍵密碼鎖的設(shè)計(jì)
 
3.2 設(shè)計(jì)實(shí)現(xiàn)

如前所述,圖2 中密碼管理模塊在正常解鎖模式下,從密碼存儲(chǔ)模塊中讀取正確密碼;在修改密碼模式下,負(fù)責(zé)處理如圖3(b)所示的修改流程,并將新密碼寫(xiě)入密碼存儲(chǔ)模塊。除此之外,密碼鎖的掩碼加密也需要在密碼管理模塊中完成,其內(nèi)部框圖如圖4所示。

輸入控制模塊提取按鍵信號(hào)并對(duì)其進(jìn)行冗余編碼。正常解鎖模式下,邏輯控制模塊控制讀寫(xiě)控制模塊讀取密碼存儲(chǔ)模塊中的正確密碼,經(jīng)過(guò)掩碼解密后與輸入控制模塊生成的冗余碼同時(shí)輸入密碼比較模塊進(jìn)行比較;修改密碼模式下,邏輯控制模塊按照?qǐng)D3(b)中的流程完成新密碼的輸入,并將 掩碼加密后的新密碼寫(xiě)入到密碼存儲(chǔ)模塊。

技術(shù)帝上手:電子按鍵密碼鎖的設(shè)計(jì)
圖4 密碼管理模塊框圖
 
結(jié)語(yǔ)

本文設(shè)計(jì)的電子密碼鎖,具有解鎖、報(bào)警、修改密碼、死鎖等功能。由于電路邏輯流程較為復(fù)雜,本文對(duì)電路進(jìn)行分模式設(shè)計(jì),綜合各模式電路得到基礎(chǔ)電路,再在基礎(chǔ)電路之上加入模式控制模塊的設(shè)計(jì)方法,從而避免了冗余模塊的產(chǎn)生,節(jié)省了邏輯資源,并得到結(jié)構(gòu)簡(jiǎn)潔、邏輯清晰的電路設(shè)計(jì)。該方法對(duì)于基于FPGA的復(fù)雜電路的設(shè)計(jì)具有借鑒意義。

同時(shí),針對(duì)FPGA器件數(shù)據(jù)掉電易失的特性,提出了一種冗余編碼結(jié)合掩碼加密的硬件加密方法。該方法使得在對(duì)外部密碼存儲(chǔ)模塊讀/寫(xiě)的過(guò)程中開(kāi)鎖密碼難以被泄露,從而提高了密碼鎖的破解難度,使其安全性得到很大提高。

相關(guān)閱讀:

一款汽車(chē)電子密碼鎖電路設(shè)計(jì)
一款汽車(chē)電子密碼鎖電路圖設(shè)計(jì)
新手入門(mén):電子密碼鎖基于555單穩(wěn)態(tài)電路設(shè)計(jì)

要采購(gòu)鍵盤(pán)么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉