• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于FPGA的遠(yuǎn)程心電監(jiān)護(hù)數(shù)據(jù)AES加密

      2018-01-28 10:13:20岑小林陳援峰楊偉鈞
      電子技術(shù)與軟件工程 2017年18期

      岑小林+陳援峰+楊偉鈞

      摘要

      本文簡(jiǎn)單回顧了加密技術(shù)的發(fā)展,提出遠(yuǎn)程心電監(jiān)護(hù)數(shù)據(jù)的加密問(wèn)題,探討了在FPGA上實(shí)現(xiàn)監(jiān)護(hù)數(shù)據(jù)的AES加密,重點(diǎn)討論了S盒變換及密鑰擴(kuò)展兩個(gè)模塊。探討了在有限資源的FPGA型號(hào)上怎樣節(jié)約資源進(jìn)行設(shè)計(jì),提出為了節(jié)約芯片面積,進(jìn)一步的研究應(yīng)該以s盒的非查表方式實(shí)現(xiàn)為方向。

      【關(guān)鍵詞】AES S盒 FPGA ECG

      遠(yuǎn)程心電監(jiān)護(hù)系統(tǒng)的數(shù)據(jù)通過(guò)實(shí)時(shí)記錄方式取得之后需要通過(guò)有線或無(wú)線網(wǎng)絡(luò)上傳數(shù)據(jù)到服務(wù)器。個(gè)人的心電數(shù)據(jù)反應(yīng)個(gè)人身體健康狀況,屬于個(gè)人隱私應(yīng)當(dāng)進(jìn)行保護(hù)。而目前通過(guò)心電數(shù)據(jù)采集端獲得的數(shù)據(jù)一般沒(méi)有經(jīng)過(guò)任何信息隱藏處理,一旦泄露可能對(duì)個(gè)人造成不良影響,因此這些信息的安全性方面有待提高。

      利用密鑰對(duì)數(shù)據(jù)進(jìn)行加密的算法基本可以分為對(duì)稱密碼、非對(duì)稱密碼和雜湊算法。對(duì)稱密碼一般使用相同的密鑰,又可分兩種類(lèi)型:a、分組密碼;b、序列密碼。2002年美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院為了取代被破解的DES算法發(fā)布的AES(高級(jí)加密標(biāo)準(zhǔn))采用分組密碼體制。

      AES算法的密鑰長(zhǎng)度支持128比特、192比特、和256比特三種,其中分組長(zhǎng)度為128比特的算法比較容易在硬件平臺(tái)上實(shí)現(xiàn)。硬件電路實(shí)現(xiàn)方式一種是使用半定制的FPGA實(shí)現(xiàn),另一種是使用全定制的ASIC實(shí)現(xiàn)。后者速度更快,能更好的滿足心電監(jiān)護(hù)的實(shí)時(shí)性要求,但是成本高昂。

      AES-128算法每次將128bit的明文和128bit的密鑰經(jīng)過(guò)10輪迭代產(chǎn)生128bit密文。每一輪迭代又分為字節(jié)替換(Sub Bytes),行位移(Shift Rows),列混清(Mix-columns)以及輪密鑰加(Add Round Key)這幾個(gè)步驟。

      1整體設(shè)計(jì)

      AES加密核整體上按照如圖1架構(gòu)進(jìn)行設(shè)計(jì)。

      包含一個(gè)控制邏輯模塊,密鑰擴(kuò)展模塊,一個(gè)初始化序列模塊,一個(gè)結(jié)束序列模塊,一個(gè)輪變換模塊。其中輪變換模塊包含了10次迭代。一次128bit字節(jié)的加密可以在12個(gè)時(shí)鐘周期內(nèi)完成(10個(gè)周期用于10輪循環(huán),1個(gè)時(shí)鐘周期用于初始化密鑰擴(kuò)展,1個(gè)時(shí)鐘周期用于輸出階段)。

      前級(jí)輸出經(jīng)過(guò)壓縮的ECG數(shù)據(jù),同時(shí)給AES加密模塊控制器一個(gè)觸發(fā)信號(hào),加密核接收到信號(hào),會(huì)在ECG明文輸入和密鑰總線上分別采樣128bit明文和密鑰。通過(guò)加密核的運(yùn)算,在12個(gè)時(shí)鐘周期后,AES加密核會(huì)將完成管腳信號(hào)拉高,告訴外部加密完成,后級(jí)可以根據(jù)該信號(hào)的完成情況來(lái)讀出密文數(shù)據(jù)使用。

      AES算法FPGA實(shí)現(xiàn)中將最常用的S盒變換、列變換、密鑰擴(kuò)展模塊分別放在單獨(dú)的文件中實(shí)現(xiàn),把行移位模塊放在頂層實(shí)現(xiàn)代碼中集合實(shí)現(xiàn)。加密核頂層包含密鑰擴(kuò)展模塊以及S盒模塊文件。同時(shí)還在頂層模塊內(nèi)實(shí)現(xiàn)控制邏輯,以及初始化序列、輪變換、結(jié)束序列。子密鑰生成模塊中調(diào)用了行異或(Rcon)模塊和S盒模塊,用于生成各個(gè)輪變換需要的子密鑰。

      2S-盒變換及其實(shí)現(xiàn)

      字節(jié)變換也叫做S-盒變換,該變換是非線性變換,在有限域GF(28)下進(jìn)行操作。完整的有限域的概念涉及到近代數(shù)學(xué)中群的概念,這里不試圖闡述清楚復(fù)雜的數(shù)學(xué)概念,淺顯地理解為一個(gè)集合及在其上定義的一些運(yùn)算。有限域GF(28)只包含0到255這256個(gè)不同的數(shù),可以由一個(gè)字節(jié)表示。在AES算法中需靈活變換數(shù)據(jù)的表示形式,比如二進(jìn)制、十進(jìn)制、十六進(jìn)制及多項(xiàng)式表示法。比如10100011可以表示成如下多項(xiàng)式,如果是GF(2)域,則x=2。

      通過(guò)文獻(xiàn)[1]知,定義了相應(yīng)的加法乘法運(yùn)算來(lái)保證運(yùn)算結(jié)果也處于GF(28)域內(nèi)。一種淺顯直接的S盒變換描述就是在有限域GF(28)下求逆,然后作仿射矩陣變換和與0×63的加法運(yùn)。

      所以第一步是求逆,求0到255這所有256個(gè)數(shù)的逆,這里的求逆要用到前面提到的多項(xiàng)式表達(dá)形式和多項(xiàng)式乘法運(yùn)算。比如任意取一個(gè)數(shù)152∈GF(28),通過(guò)循環(huán)地與0到255中的數(shù)做多項(xiàng)式乘法,再與283做模運(yùn)算,得到其逆為42(283是AES算法中的一個(gè)不可約多項(xiàng)式)。

      第二步是將42與仿射變換矩陣相乘然后加上0×63,也可以用如下的公式計(jì)算得到相同的結(jié)果:

      31、257都是常數(shù),99即常數(shù)0×63。42經(jīng)過(guò)計(jì)算得到70,此即152在S盒中的對(duì)應(yīng)值。由此可以形成一個(gè)S盒數(shù)值表,很多文獻(xiàn)中都列出了這個(gè)表,這里就不復(fù)贅述。

      在FPGA中實(shí)現(xiàn)時(shí),并不需要進(jìn)行上述的運(yùn)算,而是將己經(jīng)計(jì)算出的表存入FPGA中,共計(jì)16x16=256個(gè)值。當(dāng)進(jìn)行S變換時(shí),根據(jù)數(shù)值到表中的對(duì)應(yīng)位置取值即可獲得S盒變換的值。但是,查表的方法會(huì)消耗較多的FPGA芯片資源(主要是內(nèi)存RAM資源),根據(jù)文獻(xiàn)3的計(jì)算,采用256個(gè)8bit的ROM來(lái)存放S盒矩陣,考慮并行計(jì)算需要采用16組S盒變換同時(shí)進(jìn)行,另考慮在密鑰擴(kuò)展的計(jì)算中,需要S盒變換4組,單輪需要內(nèi)存為20×256×8bit,而一次加解密運(yùn)算在AES-128算法中需要使用10輪變換,在反饋模式下需要10×20×256×8bit。

      3密鑰擴(kuò)展及其實(shí)現(xiàn)

      密鑰擴(kuò)展的功能是產(chǎn)生加解密運(yùn)算每一輪計(jì)算過(guò)程中所需要的輪密鑰。密鑰按矩陣的行進(jìn)行分組,添加40個(gè)新行來(lái)進(jìn)行擴(kuò)充。其中每四行組成128bit子密鑰提交給相應(yīng)的輪變換。其中后續(xù)新行的產(chǎn)生分兩種情況,簡(jiǎn)單情況下如果行號(hào)不是4的倍數(shù),只需將該行之前一行與行號(hào)減4后所在行做異或運(yùn)算即可,如果行號(hào)是4的倍數(shù)則需做旋轉(zhuǎn)、替換之后再異或,具體的擴(kuò)展說(shuō)明可以借用文獻(xiàn)1當(dāng)中的一副圖加以說(shuō)明,如圖2所示。

      此模塊的核心代碼如下所示:其中kid是用來(lái)控制是否為初始密鑰的信號(hào)量,Key即為初始密鑰。

      4總結(jié)

      實(shí)驗(yàn)在QuartusⅡ15.0當(dāng)中選擇使用EP4CE30系列芯片。在與ECG處理模塊綜合后,可以避免引腳數(shù)不夠的問(wèn)題,但是LE單元?jiǎng)t需要進(jìn)一步改進(jìn)算法才能切實(shí)減少使用量。經(jīng)過(guò)綜合之后得到的RTL視圖如圖3所示。

      本文沒(méi)有深入闡述AES算法的數(shù)學(xué)原理,簡(jiǎn)單介紹了其中S盒變換及密鑰擴(kuò)展兩個(gè)環(huán)節(jié),說(shuō)明了一些FPGA中實(shí)現(xiàn)的技術(shù)問(wèn)題和方法。AES算法作為一種目前廣泛使用的可靠加密算法,嵌入在FPGA或ASIC中進(jìn)行運(yùn)用仍有一定的發(fā)展空間。今后可能的深入研究包括怎樣使用高效的直接計(jì)算的方法實(shí)現(xiàn)S盒變換,怎樣將AES算法與近年新開(kāi)發(fā)的加密算法結(jié)合以增強(qiáng)加密系統(tǒng)的抗攻擊能力等等。

      參考文獻(xiàn)

      [1]Ma11ab Implementation of the Advanced Encryption Standard,Jorg J.Buchholz,http://buchholz.hs-bremen.de,2001.11.

      [2]Simple AES(Rijndael)IP Core,http://opencores.org/project,aes_core,2013.

      [3]楊帆.AES算法研究及FPGA實(shí)現(xiàn)[D].北京:北京工業(yè)大學(xué),2014.endprint

      和田市| 武穴市| 九寨沟县| 古交市| 清水县| 石屏县| 土默特左旗| 渭南市| 兰西县| 施甸县| 湖州市| 莱芜市| 仁化县| 花莲市| 宝山区| 正蓝旗| 铅山县| 阿拉善右旗| 鹤峰县| 黑水县| 彭山县| 曲水县| 威宁| 新疆| 翁源县| 阿巴嘎旗| 临安市| 隆德县| 平安县| 岑巩县| 醴陵市| 荥阳市| 辰溪县| 安庆市| 姚安县| 武冈市| 镇赉县| 景泰县| 白朗县| 秭归县| 安达市|