0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何設(shè)計(jì)適用于嵌入式系統(tǒng)的加密IP核?

5RJg_mcuworld ? 來(lái)源:未知 ? 作者:胡薇 ? 2018-07-24 17:05 ? 次閱讀

隨著計(jì)算機(jī)技術(shù)、微電子技術(shù)的不斷融合,嵌入式系統(tǒng)應(yīng)用得到了迅猛發(fā)展。近年來(lái)嵌入式技術(shù)廣泛用于解決保密信息的傳輸、存儲(chǔ)和管理方面的問(wèn)題。而這些都需要嵌入式系統(tǒng)集成有可靠的加密模塊?,F(xiàn)有一些應(yīng)用中的加密模塊還不盡如人意。本文針對(duì)此應(yīng)用需求設(shè)計(jì)一種適用于嵌入式系統(tǒng)的加密IP核。

1 AES算法

1.1 AES算法描述

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

字節(jié)代換是對(duì)State每個(gè)字節(jié)進(jìn)行獨(dú)立非線(xiàn)性變換,由字節(jié)在GF(28)域中求其乘法逆并外加一個(gè)仿射變換完成。具體實(shí)現(xiàn)中廣泛使用查表方式完成該步變換(實(shí)現(xiàn)該功能單元被稱(chēng)為Sbox),以避免復(fù)雜的乘法運(yùn)算。

行移變換是對(duì)State進(jìn)行按行移位操作,第0行不移位,第1行循環(huán)左移一位,第2行循環(huán)左移兩位,第3行循環(huán)左移三位。

密鑰加法是將輪密鑰Key和狀態(tài)State中對(duì)應(yīng)字節(jié)按位“異或”。

密鑰擴(kuò)展提供輪變換對(duì)應(yīng)密鑰加法用到的各輪密鑰。各輪運(yùn)算中使用到的輪密鑰都不相同,密鑰擴(kuò)展運(yùn)算通過(guò)控制迭代運(yùn)算次數(shù)計(jì)算出對(duì)應(yīng)輪所需輪密鑰。

加密過(guò)程由11輪運(yùn)算組成,其中首輪只進(jìn)行密鑰加法,接著進(jìn)行9次輪變換,輪變換由字節(jié)代換、行移變換、列混合變換及密鑰加法4個(gè)步驟構(gòu)成,再進(jìn)行末輪變換,在末輪中跳過(guò)列混合變換。末輪完成后輸出密文數(shù)據(jù)。AES加密過(guò)程如圖1所示。

1.2 常用AES優(yōu)化實(shí)現(xiàn)

AES算法的輪操作特點(diǎn)看似更適合于在通用CPU平臺(tái)下編程實(shí)現(xiàn),而實(shí)際上,此種實(shí)現(xiàn)方式在性能方面存在加密速度慢等先天局限性。AES加密處理單元一般處于數(shù)據(jù)主干道上,其處理數(shù)據(jù)能力直接影響整個(gè)應(yīng)用系統(tǒng)的外在性能表現(xiàn),因此,研究數(shù)據(jù)處理能力強(qiáng)的硬件加密實(shí)現(xiàn)方式具有重要的意義。如何實(shí)現(xiàn)高性?xún)r(jià)比的硬件AES加密一直是加密算法應(yīng)用領(lǐng)域研究的熱點(diǎn)問(wèn)題。

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

以上AES算法實(shí)現(xiàn)方式各有優(yōu)缺點(diǎn),但總體來(lái)說(shuō)缺乏靈活性。當(dāng)前應(yīng)用于嵌入式系統(tǒng)的AES加密模塊在靈活性、資源占用上還不是很理想。在對(duì)常用優(yōu)化方法進(jìn)行研究后,本文針對(duì)嵌入式系統(tǒng)設(shè)計(jì)一種AES加密IP核、實(shí)現(xiàn)低資源占用、高性能要求、32位數(shù)據(jù)位寬、且能方便進(jìn)行并行連接,實(shí)現(xiàn)數(shù)據(jù)位寬擴(kuò)展。

2 IP核設(shè)計(jì)

2.1 系統(tǒng)架構(gòu)設(shè)計(jì)

IP系統(tǒng)分為時(shí)序控制、密鑰處理、數(shù)據(jù)處理三個(gè)主要單元,系統(tǒng)的工作模式分為閑置模式、密鑰輸入模式、單輪加密模式及連續(xù)加密模式。復(fù)位后系統(tǒng)處于閑置模式,單輪加密模式可以直接切換為連續(xù)加密模式,而連續(xù)加密模式需進(jìn)入到閑置模式至少一個(gè)時(shí)鐘周期后才可切換到單輪加密工作模式。

密鑰處理單元在系統(tǒng)進(jìn)入密鑰輸入模式后的連續(xù)4個(gè)時(shí)鐘周期從數(shù)據(jù)輸入端口讀入總共128位密鑰數(shù)據(jù),在第5個(gè)時(shí)鐘周期到來(lái)時(shí)完成第一輪密鑰的計(jì)算,然后系統(tǒng)返回閑置模式。在加密模式中密鑰處理單元按算法需求實(shí)時(shí)計(jì)算各輪密鑰,并按32位為一組輸出,與數(shù)據(jù)通道中32位數(shù)據(jù)進(jìn)行“異或”運(yùn)算。在系統(tǒng)模式由加密模式轉(zhuǎn)為閑置模式時(shí),完成密鑰處理單元的歸位動(dòng)作,使得單元狀態(tài)與密鑰輸入后的狀態(tài)相同,為下一次加密做準(zhǔn)備。

數(shù)據(jù)處理單元在加密模式下對(duì)明文數(shù)據(jù)進(jìn)行迭代運(yùn)算。該單元檢測(cè)到當(dāng)前是最末輪數(shù)據(jù)處理時(shí)自動(dòng)跳過(guò)列混合運(yùn)算。在系統(tǒng)進(jìn)入加密模式后,數(shù)據(jù)處理單元從輸入端口分4次讀入128位明文數(shù)據(jù),經(jīng)過(guò)接下來(lái)的40個(gè)時(shí)鐘周期數(shù)據(jù)運(yùn)算過(guò)程后,得到密文中的第一個(gè)32位數(shù)據(jù)段。

時(shí)序控制單元負(fù)責(zé)整個(gè)系統(tǒng)關(guān)鍵控制信號(hào)的生成,控制信號(hào)集中由一個(gè)單元負(fù)責(zé)產(chǎn)生,不僅利于軟件綜合出較高的時(shí)鐘頻率,而且輸出的時(shí)鐘相位也有較優(yōu)的一致性。

系統(tǒng)正常工作狀態(tài)為先進(jìn)行一次密鑰載入操作,然后觸發(fā)進(jìn)入加密模式進(jìn)行多次的數(shù)據(jù)加密。在需要時(shí)可以在閑置狀態(tài)下再次進(jìn)行密鑰模式對(duì)密鑰進(jìn)行更新。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5087

    文章

    19153

    瀏覽量

    306401
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1715

    瀏覽量

    149712
  • IP核
    +關(guān)注

    關(guān)注

    4

    文章

    330

    瀏覽量

    49558

原文標(biāo)題:一種適用于嵌入式系統(tǒng)的加密IP核可以這樣來(lái)設(shè)計(jì)!

文章出處:【微信號(hào):mcuworld,微信公眾號(hào):嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于XILINX FPGA片上嵌入式系統(tǒng)的用戶(hù)IP開(kāi)發(fā)

    內(nèi)容簡(jiǎn)介本書(shū)基于XILINX的嵌入式開(kāi)發(fā)平臺(tái),講解了嵌入式系統(tǒng)的基本概念、FPGA和MicroBlaze處理器以及最新的多端口內(nèi)存控制器(MPMC)的原理。[1]通過(guò)不同的總線(xiàn)和接口實(shí)驗(yàn),詳細(xì)講述了
    發(fā)表于 12-08 14:27

    嵌入式系統(tǒng)介紹

    1、嵌入式系統(tǒng)介紹嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),采用可剪裁軟硬件,適用于對(duì)功能、可靠性、成本、體積、功耗等有嚴(yán)格要求的專(zhuān)用計(jì)
    發(fā)表于 10-27 08:13

    適用于自主機(jī)器的嵌入式系統(tǒng)是什么

    課程名字:Jetson:適用于自主機(jī)器的嵌入式系統(tǒng)課程地址:
    發(fā)表于 12-20 06:06

    一種適用于嵌入式系統(tǒng)的模塊動(dòng)態(tài)加載技術(shù)

    嵌入式系統(tǒng)中的模塊動(dòng)態(tài)加載技術(shù)摘要提出一種適用于嵌入式系統(tǒng)的模塊動(dòng)態(tài)加載技術(shù),設(shè)計(jì)實(shí)現(xiàn)簡(jiǎn)單,占用資源少,開(kāi)銷(xiāo)小,并且成功運(yùn)
    發(fā)表于 12-20 06:32

    嵌入式系統(tǒng)的定義和組成是什么

    發(fā)展概述1、嵌入式系統(tǒng)發(fā)展的4個(gè)階段:無(wú)操作系統(tǒng)階段、簡(jiǎn)單操作系統(tǒng)階段、實(shí)時(shí)操作系統(tǒng)階段、面向Internet階段。2、知識(shí)產(chǎn)權(quán)
    發(fā)表于 12-22 08:32

    基于GPRS網(wǎng)絡(luò)的嵌入式系統(tǒng)的研究

    基于GPRS網(wǎng)絡(luò)的嵌入式系統(tǒng)可以利用嵌入式系統(tǒng)結(jié)構(gòu)緊湊、功能強(qiáng)和實(shí)時(shí)性強(qiáng)等特點(diǎn),用GPRS網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸,擴(kuò)展了嵌入式
    發(fā)表于 06-17 09:16 ?17次下載

    一種適用于嵌入式數(shù)據(jù)庫(kù)的新索引機(jī)制

    由于嵌入式系統(tǒng)具有內(nèi)存資源極為有限和處理器速度不高等特點(diǎn),因此適用于嵌入式數(shù)據(jù)庫(kù)的索引機(jī)制應(yīng)在盡量減少內(nèi)存占用量的基礎(chǔ)上進(jìn)一步提高數(shù)據(jù)操作的速度。現(xiàn)有的數(shù)據(jù)
    發(fā)表于 12-22 10:57 ?23次下載

    嵌入式系統(tǒng)的構(gòu)建

    嵌入式系統(tǒng)的構(gòu)建 嵌入式系統(tǒng)的硬件構(gòu)成1.1. 嵌入式系統(tǒng)硬件
    發(fā)表于 03-15 15:15 ?39次下載

    嵌入式AES加密IP設(shè)計(jì)

    介紹了AES加密標(biāo)準(zhǔn)的Rijndael實(shí)現(xiàn)方法,設(shè)計(jì)了一種適合應(yīng)用于嵌入式系統(tǒng)32位數(shù)據(jù)界面時(shí)序緊湊的AES加密
    發(fā)表于 09-07 19:14 ?13次下載

    一種適用于嵌入式系統(tǒng)加密IP設(shè)計(jì)詳解

    Rijndael加密算法于2000年被確定為美國(guó)高級(jí)加密標(biāo)準(zhǔn)AES(Advanced Encryption Standard),現(xiàn)在己是工業(yè)界數(shù)據(jù)加密的通用標(biāo)準(zhǔn)之一。Rijndael算法無(wú)論從理論分析,還是在實(shí)踐應(yīng)用都表現(xiàn)出很好
    發(fā)表于 07-20 10:22 ?727次閱讀
    一種<b class='flag-5'>適用于</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>的<b class='flag-5'>加密</b><b class='flag-5'>IP</b><b class='flag-5'>核</b>設(shè)計(jì)詳解

    一種適用于Nagle算法的簡(jiǎn)化嵌入式TCP協(xié)議淺析

    隨著嵌入式系統(tǒng)的發(fā)展,在嵌入式系統(tǒng)中實(shí)現(xiàn)網(wǎng)絡(luò)連接已成為研究熱點(diǎn),廣泛使用的廉價(jià)8/ 16 位嵌入式處理器的性能不足與網(wǎng)絡(luò)協(xié)議的復(fù)雜構(gòu)成了尖銳
    發(fā)表于 11-16 17:40 ?1213次閱讀
    一種<b class='flag-5'>適用于</b>Nagle算法的簡(jiǎn)化<b class='flag-5'>嵌入式</b>TCP協(xié)議淺析

    AD7775:L2MOS全嵌入式伺服前端,適用于硬盤(pán)過(guò)時(shí)數(shù)據(jù)表

    AD7775:L2MOS全嵌入式伺服前端,適用于硬盤(pán)過(guò)時(shí)數(shù)據(jù)表
    發(fā)表于 04-30 15:02 ?3次下載
    AD7775:L2MOS全<b class='flag-5'>嵌入式</b>伺服前端,<b class='flag-5'>適用于</b>硬盤(pán)過(guò)時(shí)數(shù)據(jù)表

    適用于嵌入式管理器的SmartMesh IP簡(jiǎn)易入門(mén)指南

    適用于嵌入式管理器的SmartMesh IP簡(jiǎn)易入門(mén)指南
    發(fā)表于 05-10 18:12 ?1次下載
    <b class='flag-5'>適用于</b><b class='flag-5'>嵌入式</b>管理器的SmartMesh <b class='flag-5'>IP</b>簡(jiǎn)易入門(mén)指南

    適用于嵌入式C的AWS IoT設(shè)備開(kāi)發(fā)工具包

    適用于嵌入式 C 的 AWS IoT 設(shè)備 SDK 是 C 源文件的集合,可用于嵌入式應(yīng)用程序以安全地連接到AWS IoT 平臺(tái)。它包括傳輸客戶(hù)端MQTT、TLS實(shí)現(xiàn)及其使用示例。它還
    發(fā)表于 04-12 11:08 ?5次下載

    適用于MSP430 MCUs的IAR嵌入式工作臺(tái)IDE版本7+

    電子發(fā)燒友網(wǎng)站提供《適用于MSP430 MCUs的IAR嵌入式工作臺(tái)IDE版本7+.pdf》資料免費(fèi)下載
    發(fā)表于 12-05 14:31 ?0次下載
    <b class='flag-5'>適用于</b>MSP430 MCUs的IAR<b class='flag-5'>嵌入式</b>工作臺(tái)IDE版本7+