<strike id="xh1ss"><address id="xh1ss"></address></strike>
  1. <legend id="xh1ss"></legend>
  2. 更多課程 選擇中心

    嵌入式培訓
    達內IT學院

    400-111-8989

    嵌入式系統的安全性如何保證?

    • 發布:嵌入式培訓
    • 來源:嵌入式資訊精選
    • 時間:2018-07-23 18:43

    隨著計算機技術、微電子技術的不斷融合,嵌入式系統應用得到了迅猛發展。近年來嵌入式技術廣泛用于解決保密信息的傳輸、存儲和管理方面的問題,那么嵌入式系統的安全性要如何保證呢?當然是需要嵌入式系統集成有可靠的加密模塊了,但是現有一些應用中的加密模塊還不盡如人意。本文針對此應用需求設計一種適用于嵌入式系統的加密IP核進行探討。

    1 AES算法

    1.1 AES算法描述

    密鑰密碼體制分為流密碼和分組密碼兩種。分組密碼是信息與網絡安全中實現數據加密、數字簽名、認證及密鑰管理的核心體制,具有速度快、易于標準化和便于軟硬件實現等特點。AES采用分組密碼的加密方式,其分組長度分為128 bit、192 bit、256 bit三種,AES密碼在相同的輪函數作用下,迭代運算次數的不同可達到不同級別的安全強度。128 bit分組長度的情況下,循環輪數指定為11次,目前還沒有可行的算法可以對該模型進行有效攻擊。每一輪處理均為作用在中間結果上的一批運算,該中間結果稱為狀態,用4&TImes;4字節矩陣表示,其中,數據矩陣稱為State、密鑰矩陣稱為Key。AES加密涉及5種運算,分別是字節代換 (SubBytes)、行移變換(ShiftRows)、列混合變換(MixColumns)、密鑰加法(AddRoundKey)和密鑰擴展 (ExpandedKey)。

    字節代換是對State每個字節進行獨立非線性變換,由字節在GF(28)域中求其乘法逆并外加一個仿射變換完成。具體實現中廣泛使用查表方式完成該步變換(實現該功能單元被稱為Sbox),以避免復雜的乘法運算。

    行移變換是對State進行按行移位操作,第0行不移位,第1行循環左移一位,第2行循環左移兩位,第3行循環左移三位。

    AES算法描述

    密鑰加法是將輪密鑰Key和狀態State中對應字節按位“異或”。

    密鑰擴展提供輪變換對應密鑰加法用到的各輪密鑰。各輪運算中使用到的輪密鑰都不相同,密鑰擴展運算通過控制迭代運算次數計算出對應輪所需輪密鑰。

    加密過程由11輪運算組成,其中首輪只進行密鑰加法,接著進行9次輪變換,輪變換由字節代換、行移變換、列混合變換及密鑰加法4個步驟構成,再進行末輪變換,在末輪中跳過列混合變換。末輪完成后輸出密文數據。AES加密過程如圖1所示。

    1.2 常用AES優化實現

    AES算法的輪操作特點看似更適合于在通用CPU平臺下編程實現,而實際上,此種實現方式在性能方面存在加密速度慢等先天局限性。AES加密處理單元一般處于數據主干道上,其處理數據能力直接影響整個應用系統的外在性能表現,因此,研究數據處理能力強的硬件加密實現方式具有重要的意義。如何實現高性價比的硬件AES加密一直是加密算法應用領域研究的熱點問題。

    常見的硬件優化實現有如下幾種方式:(1)串行方式。將輪函數展平,每輪對應一級組合邏輯,11輪迭代過程直接相連,前一級輸出作為次一級的輸入,每一個時鐘周期均可完成一個分組處理;(2)迭代方式。各輪迭代只用一個對應輪函數功能的組合邏輯實體實現,每11個時鐘周期完成一個分組處理;(3)流水線方式。用于提高系統工作時鐘周期的流水線技術,一般僅在局部使用,或是與串行方式并用,可提高工作時鐘頻率,使其滿足極大帶寬的應用要求;(4)輪內實現流水線。在輪函數對應實體中插入寄存器,將一輪運算分至多個邏輯段完成,每個時鐘周期仍能完成一個數據分組處理。

    以上AES算法實現方式各有優缺點,但總體來說缺乏靈活性。當前應用于嵌入式系統的AES加密模塊在靈活性、資源占用上還不是很理想。在對常用優化方法進行研究后,本文針對嵌入式系統設計一種AES加密IP核、實現低資源占用、高性能要求、32位數據位寬、且能方便進行并行連接,實現數據位寬擴展。

    2 IP核設計

    2.1 系統架構設計

    IP系統分為時序控制、密鑰處理、數據處理三個主要單元,系統的工作模式分為閑置模式、密鑰輸入模式、單輪加密模式及連續加密模式。復位后系統處于閑置模式,單輪加密模式可以直接切換為連續加密模式,而連續加密模式需進入到閑置模式至少一個時鐘周期后才可切換到單輪加密工作模式。

    密鑰處理單元在系統進入密鑰輸入模式后的連續4個時鐘周期從數據輸入端口讀入總共128位密鑰數據,在第5個時鐘周期到來時完成第一輪密鑰的計算,然后系統返回閑置模式。在加密模式中密鑰處理單元按算法需求實時計算各輪密鑰,并按32位為一組輸出,與數據通道中32位數據進行“異或”運算。在系統模式由加密模式轉為閑置模式時,完成密鑰處理單元的歸位動作,使得單元狀態與密鑰輸入后的狀態相同,為下一次加密做準備。

    數據處理單元在加密模式下對明文數據進行迭代運算。該單元檢測到當前是最末輪數據處理時自動跳過列混合運算。在系統進入加密模式后,數據處理單元從輸入端口分4次讀入128位明文數據,經過接下來的40個時鐘周期數據運算過程后,得到密文中的第一個32位數據段。

    時序控制單元負責整個系統關鍵控制信號的生成,控制信號集中由一個單元負責產生,不僅利于軟件綜合出較高的時鐘頻率,而且輸出的時鐘相位也有較優的一致性。

    系統正常工作狀態為先進行一次密鑰載入操作,然后觸發進入加密模式進行多次的數據加密。在需要時可以在閑置狀態下再次進行密鑰模式對密鑰進行更新。

    在系統閑置狀態下,密鑰加載信號被檢測為有效時,系統進入密鑰輸入模式,對密鑰數據進行讀入、保存及生成第一輪密鑰待用,而忽略密鑰處理單元中是否先前已存在密鑰數據。數據加載引腳指示系統由閑置模式輸入單輪加密模式,因為128位數據要在4個時鐘周期完成讀入,加密后數據也需要4個時鐘周期時間才能完成輸出。因此,從明文數據輸入到密文數據輸出共需要等待40個時鐘周期。如果此時檢測到數據加載引腳信號有效則在輸出密文的同時進行下一輪明文的讀入,系統進入到連續加密模式,否則在接下來的4個時鐘周期將密文輸出后系統由單輪加密模式切換到閑置模式。連續加密模式適合用于進行批量數據加密處理,系統每40 個時鐘周期會從輸入端口讀入128位明文數據,同時在這40個時鐘周期中將提供密文數據。在進行大量數據處理時,載入密鑰及載入第一組加密數據的幾個時鐘周期均可忽略,系統性能為每40個時鐘周期處理128位數據。在讀入明文時,若檢測到載入數據信號無效,則退出連續加密模式,系統回復到閑置狀態。

    感謝您的閱讀,以上就是對嵌入式系統的安全性問題進行的一個探討,針對此應用需求設計一種適用于嵌入式系統的加密IP核,你對此還有別的什么見解嗎?更多嵌入式相關的知識盡在達內嵌入式培訓機構,敬請關注!

    免責聲明:內容和圖片源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:學編程,你選嵌入式還是Java?
    下一篇:什么是嵌入式?為什么要進行嵌入式培訓學習?嵌入式就業前景怎么樣?

    什么是嵌入式?嵌入式的三重境界是什么?

    嵌入式開發與單片機哪個更難?聽聽高手怎么說!

    有哪些編碼習慣有利于我們寫出漂亮的嵌入式C代碼?

    嵌入式硬件設計中需要注意什么?

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    黄色一级全祼,欧美一级aa片,一级毛卡片,一级特黄大片,三级片视频 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>