<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于FPGA的電子按鍵密碼鎖設計

FPGA設計論壇 ? 來源:FPGA設計論壇 ? 2023-07-12 16:03 ? 次閱讀

電子密碼鎖與傳統密碼鎖相比,具有安全性高、成本低、易操作等諸多優點。正因如此,電子密碼鎖近年來發展迅速,諸如按鍵式密碼鎖、卡片式密碼鎖、以及更加復雜的指紋識別、虹膜識別等密碼鎖相繼出現。目前應用廣泛、技術成熟的電子密碼鎖還屬按鍵式和卡片式密碼鎖,但卡片設備具有易磨損、壽命短、易受外界磁場干擾等缺點,并且一旦卡片丟失,將對密碼鎖的使用造成極大不便。

FPGA作為發展迅速的現代設計技術,已經被廣泛應用于軍事、空間、電子消費類產品等領域,是現代密碼協議、算法實現的優選平臺。FPGA 內部算法可以并行執行,且不存在程序跑飛等風險。論文針對當前電子密碼鎖的發展現狀,設計了一種基于FPGA的按鍵密碼鎖。為簡化電路結構,節省邏輯資源,充分發揮FPGA的可靠性,本文采用了基本電路加模式控制的設計方法;同時提出了一種冗余編碼結合掩碼加密的硬件加密方法,使得開鎖密碼在對外部密碼存儲模塊讀寫的過程中難以被泄漏,從而極大地提高了密碼鎖的安全性。

1 電子密碼鎖設計原理

采用6位十六進制數作為開鎖密碼,外部密碼輸入正確,能成功指示,輸入錯誤也能清除和重置;連續3次密碼輸入錯誤后,系統將死鎖,此時密碼鎖不再響應按鍵輸入信號,只能通過特定解鎖信號解除死鎖;具有修改密碼功能,能夠按照特定的流程對開鎖密碼進行修改。密碼鎖工作在正常解鎖、修改密碼和死鎖三種狀態下,狀態轉移如圖1所示。

圖1中,“正常解鎖”狀態下,按下特定功能按鍵使密碼鎖進入“修改密碼”狀態,密碼修改完成后返回“正常解鎖”狀態;任一狀態下連續三次輸入密碼錯誤,進入“死鎖”狀態,此時只有特定 硬件解鎖信號才能使密碼鎖返回“正常解鎖”狀態。

679f6968-208a-11ee-962d-dac502259ad0.jpg

圖1 密碼鎖狀態轉移圖

2 基于FPGA的邏輯電路實現

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

67b15812-208a-11ee-962d-dac502259ad0.jpg

圖2 密碼鎖電路原理框圖

圖2中,灰色方框內為FPGA內部模塊,完成整個密碼鎖的邏輯功能。外接鍵盤是密碼鎖的輸入設備,包括十六進制密碼按鍵和密碼鎖功能按鍵。由于目前FPGA芯片大多基于SRAM 架構,掉電后程序和數據都會清零,因此需要外接一片密碼存儲芯片對用戶設置的密碼進行存儲。部分基于FLASH 架構的FPGA 芯片雖然具有掉電后保存程序的能力,但是內部FLASH的讀寫只能通過JTAG進行,仍舊需要外接密碼存儲芯片。顯示、開鎖和報警模塊分別實現密碼鎖的按鍵位數顯示、開鎖信號和報警信號輸出功能。

FPGA 內部電路主要由輸入控制、密碼比較、輸出控制、密碼管理和模式控制等模塊構成。其中輸入控制模塊完成對外接鍵盤信號的鍵值提取和按鍵消抖功能;密碼比較模塊用于對當前輸入密碼和密碼存儲模塊中保存的正確密碼進行比較;輸出控制模塊用于控制顯示模塊顯示密碼輸入位數,并針對密碼比較結果和當前電路模式,控制開鎖和報警信號;密碼管理模塊負責處理對外部密碼存儲模塊的讀/寫以及掩碼加/解密等操作。當按鍵輸入密碼時,密碼管理模塊從密碼存儲模塊中讀取密碼,送入密碼比較模塊與輸入密碼進行比較;當修改密碼時,密碼管理模塊將按鍵輸入新密碼寫入密碼存儲模塊,更新密碼鎖的開鎖密碼。

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

67c7e0be-208a-11ee-962d-dac502259ad0.jpg

圖3 正常解鎖和修改密碼流程圖

如圖3 所示,在正常解鎖和修改密碼模式下,都需要完成按鍵輸入、原密碼讀取、密碼比較、密碼輸入錯誤計數、顯示輸出等功能。因此基礎電路可以由圖2中的輸入控制、密碼比較、輸出控制、密碼管理等模塊構成,而模式控制模塊負責控制基礎電路在不同模式間進行切換。例如,在正常解鎖模式下,基礎電路按照圖3(a)中的流程工作;按下修改密碼鍵,模式變為修改密碼,基礎電路工作流程如圖3(b)所示。

基礎電路中各個模塊在不同模式下各司其職,分模式復用,不會產生冗余的功能模塊;模式控制模塊統領全局,控制整個基礎電路的模式轉換。因此,采用上述設計方法,可以簡化電路結構,節省邏輯資源,使得邏輯流程更加清晰,便于電路結構和功能的拓展。

3 密碼鎖安全性設計

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

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 的值也無法被破解。由此可見,采用冗余編碼結合掩碼加密的設計方法,密碼鎖的安全性可以得到極大的提高。

3.2 設計實現

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

輸入控制模塊提取按鍵信號并對其進行冗余編碼。正常解鎖模式下,邏輯控制模塊控制讀寫控制模塊讀取密碼存儲模塊中的正確密碼,經過掩碼解密后與輸入控制模塊生成的冗余碼同時輸入密碼比較模塊進行比較;修改密碼模式下,邏輯控制模塊按照圖3(b)中的流程完成新密碼的輸入,并將 掩碼加密后的新密碼寫入到密碼存儲模塊。

67e73e1e-208a-11ee-962d-dac502259ad0.jpg

圖4 密碼管理模塊框圖

4 結語

本文設計了一種基于FPGA的的電子密碼鎖,具有解鎖、報警、修改密碼、死鎖等功能。由于電路邏輯流程較為復雜,本文對電路進行分模式設計,綜合各模式電路得到基礎電路,再在基礎電路之上加入模式控制模塊的設計方法,從而避免了冗余模塊的產生,節省了邏輯資源,并得到結構簡潔、邏輯清晰的電路設計。該方法對于基于FPGA的復雜電路的設計具有借鑒意義。同時,針對FPGA器件數據掉電易失的特性,提出了一種冗余編碼結合掩碼加密的硬件加密方法。該方法使得在對外部密碼存儲模塊讀/寫的過程中開鎖密碼難以被泄露,從而提高了密碼鎖的破解難度,使其安全性得到很大提高。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1606

    文章

    21344

    瀏覽量

    594171
  • FlaSh
    +關注

    關注

    10

    文章

    1559

    瀏覽量

    146789
  • 密碼鎖
    +關注

    關注

    6

    文章

    249

    瀏覽量

    34606
  • JTAG
    +關注

    關注

    6

    文章

    385

    瀏覽量

    71192
  • 存儲芯片
    +關注

    關注

    11

    文章

    819

    瀏覽量

    42580

原文標題:基于FPGA的電子按鍵密碼鎖設計

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    電子密碼鎖

    本帖最后由 eehome 于 2013-1-5 09:46 編輯 電子密碼鎖
    發表于 08-17 10:35

    電子密碼鎖

    自己做的個電子密碼鎖,拿來和大家分享。
    發表于 04-06 09:49

    電子密碼鎖

    誰有電子密碼鎖的源程序 畢業設計要用謝謝大家
    發表于 06-02 14:02

    電子密碼鎖設計

    電子密碼鎖設計
    發表于 09-05 14:31

    電子密碼鎖

    基于LCD 1602 電子密碼鎖
    發表于 11-27 11:10

    電子密碼鎖

    電子密碼鎖 挺不錯的程序
    發表于 03-28 19:27

    電子密碼鎖

    分享一個電子密碼鎖,初學者看看
    發表于 05-08 17:10

    求助,基于FPGA電子密碼鎖,無法正常運行

    各位大神好,我是一個學生,最近在學FPGA的東西,然后在網上找了段電子密碼鎖的程序,我自己焊接了外圍電路,核心板用的是EP4CE6E22C,焊接的按鍵加了上拉電阻,但是接程序后兩個燈泡
    發表于 06-08 20:16

    FPGA數字密碼鎖設計

    十二、數字密碼鎖設計本文由山東大學研友袁卓貢獻,特此感謝 實驗目的實現數字密碼鎖設計,要求矩陣按鍵輸出且數碼管顯示輸入密碼,密碼輸入正確與否
    發表于 02-15 06:35

    怎么利用FPGA設計語音密碼鎖系統?

    電子密碼鎖系統主要由電子鎖體、電子密匙等部分組成,一把電子密匙里能存放多組開鎖密碼,用戶在使用過
    發表于 08-15 07:44

    基于單片機的電子密碼鎖設計

    、聲光提示等功能,依據實際的情況還可以添加遙控功能。本系統成本低廉,功能實用? ? 關鍵詞:STC89C52,AT24C02, 電子密碼鎖,矩陣鍵盤一、 引言? ? 隨著人們生活水平的提高,如何實現家庭
    發表于 09-24 08:50

    【每周FPGA案例】至簡設計法-電子密碼鎖

    ?;诿鞯聯P至簡設計法和明德揚設計規范,設計一個基于FPGA密碼鎖、并將數值顯示在數碼管上,然后根據輸入的鍵值判斷密碼是否正確。1.1.2 設計目標實現電子
    發表于 09-25 09:55

    請問怎樣去設計電子密碼鎖?

    為什么要設計電子密碼鎖?基于Max+Plus II和VHDL的電子密碼鎖如何去設計?
    發表于 04-28 06:12

    基于單片機的電子密碼鎖設計

    單片機電子密碼鎖Proteus仿真+程序3.6 開鎖機構在基于單片機的電子密碼鎖設計中,用戶需要輸入密碼,
    發表于 11-30 08:24

    使用單片機設計電子密碼鎖

    本課程設計題目是基于單片機的電子密碼鎖,由單片機控制程序結合LCD1602顯示器實現密碼輸入、密碼顯示、密碼比較處理功能。本課程設計可學習矩
    發表于 09-26 07:52
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>