《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于漢明碼校驗的AES數據加密記錄器設計
基于漢明碼校驗的AES數據加密記錄器設計
2015年電子技術應用第1期
魏漢明1,2,劉文怡1,2,關詠梅3,張彥軍1,2,張國佳1,2
1.中北大學 電子測試國家重點實驗室,山西 太原030051; 2.中北大學 儀器科學與動態測試教育部重點實驗室,山西 太原030051; 3.北京宇航系統工程研究所,北京100076
摘要: 以FPGA為硬件設計平臺,實現AES數據加密記錄器,重點講述了AES算法的FPGA實現。利用MATLAB軟件完成算法的密鑰擴展及S盒設計,使其在硬件中的設計簡化為查表操作;整體算法的設計采用流水線技術,提高了加密速度。同時,設計了漢明校驗碼解決由于NAND Flash位翻轉經加密后帶來的誤碼擴散的問題,將最后的糾錯工作設計在計算機上完成,降低對硬件讀數的影響,同時提高了系統的可靠性,該設計具有一定實用價值。
中圖分類號: TH99
文獻標識碼: A
文章編號: 0258-7998(2015)01-0118-04
中文引用格式:魏漢明,劉文怡,關詠梅,張彥軍,張國佳.基于漢明碼校驗的AES數據加密記錄器設計[J].電子技術應用,2015,41(01):118-121
Design of AES encryption of data recorder with Hamming code for error-check-correct
Wei Hanming1,2,Liu Wenyi1,2,Guan Yongmei3,Zhang Yanjun1,2,Zhang Guojia1,2
National Key laboratory for Electronic Measurement Technology,North University of China,Taiyuan 030051,China; 2.Key Laboratory of Instrumentation Science & Dynamic Measurement of Ministry of Education,North University of China, Taiyuan 030051,China; 3.Beijing Insitute of Astronautical Systems Engineering,Beijing 100076,China
Abstract: Implemented with FPGA, the paper proposes a method to design data recorder with AES encryption, which is simplified with the encryption work partly done by MATLAB that is the key expansion and Subbyte box, and which is accelerated with Pipelining design. Also, Error-Check-Correct scheme is implemented in the system to resistance the error propagation problem and strengthen reliability. The final data correct work is finished on the PC to reduce its influence on the hardware reading speed.
Key words : AES;Hamming code;FPGA;Nand Flash

  

0 引言

  數據記錄器是遙測系統中重要的組成部分,可為飛行器的質量評估及飛行器的技術改進提供數據依據。近些年半導體技術高速發展,固態記錄器以成為飛行記錄器的發展趨勢,在現有的固態存儲介質中,基于NAND技術的非揮發性存儲器Flash(閃速存儲器)以其體積小、功耗低、密度大、編程和擦除速度快、成本低等優點而被廣泛地運用于各個領域[1]。

  同時為了防止數據記錄器中的信息被對手截獲,需要對信息進行保密防護,常用的措施為采用加密編碼[2-3]。加密編碼對基于Nand Flash芯片的數據記錄器會產生一個問題。Nand Flash芯片的物理特性使其在使用中有可能出現位翻轉的問題,即在一定的數據塊中產生了一比特的誤碼,這個誤碼經過加密編碼后會引起誤碼擴散。如數據在采集后以16 B分組,經加密編碼后存入Flash芯片中,若在Flash芯片中出現了位翻轉錯誤,那么該位所在的128 b加密數據在解密后一般得不到原來的明文數據,那么原來出現在1 B的誤碼經加密后擴散到了16 B中。由此可見,在加密存儲系統中,對誤碼的控制設計尤為重要。漢明碼的二元線性分組碼中編碼效率高,簡單實用,在分組數據內能實現錯誤檢測和1比特的誤碼糾正[4]。本文將研究數據記錄器的AES加密設計及基于漢明碼的誤碼控制設計。

1 系統方案設計

  AES加密數據記錄器主要完成對遙測模擬信號的采集、加密及存儲,同時嵌入漢明校驗碼增強存儲的可靠性;記錄器中存儲的數據最后被讀取至計算機終端,完成解密與分析。記錄器不能與計算機終端直接通信,配套地面測試臺設備是計算機終端與數據記錄器通信的橋梁。在傳統方案中,誤碼的糾錯工作在記錄器中完成,數據從Flash中讀出時首先要在記錄器中緩存,等到誤碼檢測與糾錯工作完成后才能將糾錯后的數據上傳給計算機,這樣會大大降低了數據傳輸速度。本文設計的方案中將糾錯工作交由計算機完成,這樣不僅能檢測和糾正NAND Flash芯片存儲的位翻轉錯誤,減輕了硬件系統的工作量,保證了數據傳輸的速度,而且利用計算機能夠使糾錯工作結果更直觀[5-6]。系統的工作方案如圖1所示。

001.jpg

  AES加密數據記錄器以48 kHz的頻率對6路遙測模擬信號進行采樣,然后將量化后的遙測數據分組加密,加密后的數據及生成的漢明校驗碼寫入NAND Flash芯片中。采樣芯片采用ADS8365芯片,單個芯片可并行實現6路差分通道的轉換,有益于小尺寸系統設計;采樣精度可達16 bit。存儲芯片采用三星公司的4 GB容量NAND Flash芯片K9WBG08U1M。整個加密記錄器的系統設計框架如圖2所示。

002.jpg

2 關鍵技術實現

  2.1 AES加密算法的FPGA實現

  本文采用的密鑰長度為128 b,狀態矩陣由4×4 B組成,則加密的迭代輪數為10,每一輪的步驟為:(1)字節代換(s盒替換),(2)行移位,(3)列混合(最后一輪沒有),(4)輪密鑰加。

  字節代換即通過一個非線性的函數,將原有字節替換成對應字節的過程。其實際運算操作為:首先將字節變換到GF(28)域上的乘法逆元,再對字節進行一個仿射變換。字節代換可以簡化為一個簡單的查表操作,AES定義了一個S盒(及逆S盒),S盒是一個由16×16 B組成矩陣,矩陣共有256個元素(字節)。查表時,字節的高4位作為行地址x,低4位作為列地址y,指向S盒的第x行第y列的字節。為了簡化硬件的工作,本文將采用官方S盒,且將S盒內容初始化至FPGA的IP核ROM中。

  行移位是一個簡單的左循環移位操作。對4×4的狀態矩陣,第1行不移位,第2行左移1個字節,第3行左移2個字節,第4行左移3個字節即可。

  列混合是將狀態矩陣與一固定矩陣相乘,狀態矩陣每一列的更新方式如下式所示:

  XTLM)E{V[SW0$QSC1TI(S6D.png

  式中涉及的操作有加法(異或)和乘法,由于乘法在FPGA中直接實現較為復雜,需要將乘法運算轉換為移位和加法運算。在有限域GF(28)上,{02}乘以一字節b(x)=b7×7+b6×6+b5×5+b4×4+b3×3+b2×2+b1×1+b0×0,若該字節的最高位b7為0,則可直接對b(x)在字節內左移1位,最低位補0即可;若最高位b7為1則需在移位后再與{1B}異或。{03}乘以一字節時則將{03}分解為{02}+{01}再進行運算即可。

  輪密鑰加即將狀態矩陣與輪密鑰矩陣逐位異或即可。

  輪密鑰由初始密鑰經過密鑰擴展操作得來。初始密鑰由用戶制定,長度為128 b,將其輸入到一個4×4的矩陣中,用數組W[i]表示密鑰中的某一列,則初始密鑰可用W[0]、W[1]、W[2]、W[3]4個數據表示;下一輪的擴展密鑰可用W[4]、W[5]、W[6]、W[7]表示……依次,最后一輪的擴展密鑰數據為W[40]、W[41]、W[42]、W[43]。各數組之間的關系為:

  (1)若i非4的倍數,則有:

  W[i]=W[i-4]⊕W[i-1](5)

  (2)若i為4的倍數,則有:

  W[i]=W[i-4]⊕T(W[i-1])(6)

  式中T相當與一個復雜的函數,其具體的操作為:

  ①字循環:將自變量循環左移1個字節。如數組[w0,w1,w2,w3]經過字循環變換為[w3,w0,w1,w2]。

  ②字節代換:使用S盒對每個字節進行代換。

  ③輪常量異或:將前兩步的結果與輪常量Rcon[j]進行異或,j表示輪數。輪常數的內容(4個字節)如表1所示,密鑰擴展過程如圖3所示。

  用戶定義了初始密鑰后,由密鑰擴展運算就可以得到后續的10輪密鑰。為了簡化硬件工作,密鑰擴展工作可由計算機完成,然后將所有密鑰(共11×16=176 B)作為初始化文件載入FPGA ROM核中。這樣,FPGA對于密鑰的相對操作可簡化為簡單的查表運算。

  為了加快執行速度,FPGA程序中采用流水線設計。根據AES加密算法的原理,把程序主要劃分為輪密鑰加、S盒替換、行變換、列混合、加密輸出等5個模塊。各模塊之間設由握手信號進行通信,每個模塊只需完成自己的任務((1)AES加密步驟;(2)輸出指示信號和加密狀態(數據))即可。

  2.2 漢明碼校驗設計

  漢明碼的FPGA實現較為簡單,首先需要對數據進行分組設計。由于使用的NAND Flash是4 KB每頁的結構,因此將一頁的4 KB數據分為一組。將4 KB數據看成是4 096(行)×8(列)的矩陣,數據在邊寫入Flash時可邊產生漢明校驗碼,完全不影響存數的速度,最終生成12 bit的行奇校驗碼、12 bit的行偶校驗碼、3 bit的列奇校驗碼、3 bit的列偶校驗碼,只需將這總共30 bit的校驗碼寫入Flash當前頁的備用區即可。

  行校驗碼與列校驗碼可以看成是獨立的,而奇校驗碼與偶校驗碼是互補的,行校驗碼最終指示出錯的“行”(字節),列校驗碼最終指示出錯的“列”(位),二者相結合最終能定位到整個分組數據中的某一出錯位且糾錯。

  為了方便,以列校驗碼的生成做示例。設列奇校驗碼為L_ECCo,列偶校驗碼為L_ECCe,則有:

  L_ECCo[2]=byte_n[7]^byte_n[6]^byte_n[5]^byte_n[4]

  (n=0,1……4 095)(7)

  L_ECCo[1]=byte_n[7]^byte_n[6]^byte_n[3]^byte_n[2]

  (n=0,1……4 095)(8)

  L_ECCo[0]=byte_n[7]^byte_n[5]^byte_n[3]^byte_n[1]

  (n=0,1……4 095)(9)

  L_ECCe[2]=byte_n[3]^byte_n[2]^byte_n[1]^byte_n[0]

  (n=0,1……4 095)(10)

  L_ECCe[1]=byte_n[5]^byte_n[4]^byte_n[1]^byte_n[0]

  (n=0,1……4 095)(11)

  L_ECCe[0]=byte_n[6]^byte_n[4]^byte_n[2]^byte_n[0]

  (n=0,1……4 095)(12)

  計算機軟件讀取Flash中的數據時也會按照同樣的方式生成漢明校驗碼,此時設列奇校驗碼為L_ECCo′,列偶校驗碼為L_ECCe′。計算機在數據分析前對數據進行校驗,那么當L_ECCo與L_ECCo′、L_ECCe與L_ECCe′分別完全相等時才認定數據存儲及傳輸正常(這里只以列校驗作說明);若L_ECCo、L_ECCo′、L_ECCe、L_ECCe′ 4個參數的異或結果所有位都為1,那么數據出現了可糾正的錯誤,出錯的位地址由L_ECCo′與 L_ECCo的異或結果表示。

3 實驗結果

  為了驗證設計的正確性,對00~FF的循環遞增數據進行加密存儲,數據源如圖4(a)所示。數據加密過程及漢明校驗碼生成程序仿真如圖4(b)所示。加密數據最后以4 KB為單位打包上傳給計算機。

004.jpg

006.jpg

  同時,在加密數據上傳到計算機時,故意將數據中的某一位翻轉,如第17 B(Byte16)的第4位(bit3),那么計算機收到的未校驗的加密數據如圖5(a)所示,其中字節“C0”為誤碼字節,直接對圖5(a)數據進出解密,得到數據如圖5(b)所示。數據分析報告稱出現16 B的錯誤。由此可知,由于一個加密字節的位翻轉錯誤,經過解密后擴散到了原16 B的分組數據中。

005.jpg

  查看數據的漢明校驗碼,如圖6所示,根據校驗信息對數據進行糾錯,再解密,數據還原正確,如圖7所示,加密數據中第17 B已經由“C0”糾正為“C8”。

007.jpg

4 結論

  本文設計并實現了基于FPGA的AES加密存儲器,利用計算機軟件完成部分設計(如密鑰的擴展和S盒的設計)后直接例化到FPGA ROM核中,簡化了硬件設計;同時采用流水線技術,加快硬件加密速度。另外,為了避免由于存儲芯片NAND Flash出現的位翻轉而造成加密系統的誤碼擴散問題,在加密數據寫入存儲器前設計生成了漢明校驗碼,而數據校驗則在計算機中完成,這樣能幾乎不改變硬件數據讀寫速度,同時有效地提高了系統的可靠性。

參考文獻

  [1] 王建勛.基于NAND閃存的固態存儲技術研究與實現[D].長沙:國防科學技術大學,2010.

  [2] 龔進.AES加密算法在電子系統中的優化及應用研究[D].太原:中北大學,2012.

  [3] 陳鐵明,葛亮,蔡家楣,等.TinyTCSec:一種新的輕量級無線傳感器網絡鏈路加密協議[J].傳感技術學報,2011,24(2):275-282.

  [4] 陳鐵明,白素剛,蔡家楣.TinyIBE:面向無線傳感器網絡的身份公鑰加密系統[J].傳感技術學報,2009,22(8):1193-1197.

  [5] 陳武.NandFlash糾錯碼的設計研[D].杭州:浙江大學,2011.

  [6] 辛英.漢明碼糾錯檢錯能力分析與應用[J].鹽城工學院學報:自然科學版,2008,21(1):34.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久gogo国模裸体人体| 亚洲欧美久久久久一区二区三区| 一区二区日韩伦理片| 在线不卡亚洲| 国产主播精品| 国产一区二区三区免费不卡| 国产精品美女主播在线观看纯欲| 欧美午夜精彩| 欧美性大战久久久久| 欧美吻胸吃奶大尺度电影| 欧美日韩麻豆| 欧美日韩亚洲一区三区 | 亚洲福利在线视频| 亚洲第一精品电影| 亚洲国产综合在线| 亚洲人屁股眼子交8| 亚洲精选在线| 中文日韩在线视频| 亚洲午夜精品17c| 亚洲欧美成人在线| 欧美中在线观看| 亚洲国产福利在线| 亚洲精品一区在线观看香蕉| 一区二区成人精品| 亚洲综合视频1区| 欧美在线国产| 久久综合中文字幕| 欧美精品1区2区| 国产精品www.| 国产亚洲精品成人av久久ww| 极品尤物av久久免费看| 亚洲国产精品一区| 一区二区高清在线| 午夜精品理论片| 亚洲国产1区| 一道本一区二区| 先锋影音国产一区| 久久婷婷一区| 欧美日韩国产限制| 国产精品丝袜xxxxxxx| 韩国一区电影| 亚洲激情视频在线播放| 亚洲一二区在线| 久久精品99国产精品| 日韩一级精品视频在线观看| 亚洲欧洲99久久| 久久综合免费视频影院| 欧美日本一道本在线视频| 国产精品久久久久久久久久妞妞| 国内精品99| 日韩亚洲国产精品| 午夜精品视频在线观看| 91久久在线播放| 亚洲一区一卡| 久久夜色精品国产亚洲aⅴ| 欧美日本视频在线| 国产一区二区在线免费观看| 亚洲国产天堂久久综合| 亚洲天堂网站在线观看视频| 久久精品30| 亚洲一区二区网站| 久久久五月天| 欧美日韩一区二区三区视频| 国产丝袜美腿一区二区三区| 亚洲美女毛片| 亚洲高清二区| 亚洲欧美日韩中文在线制服| 鲁大师影院一区二区三区| 欧美色中文字幕| 伊人久久大香线蕉综合热线| 亚洲午夜精品久久| 日韩视频免费观看高清在线视频 | 国产又爽又黄的激情精品视频| 亚洲人成免费| 欧美怡红院视频一区二区三区| 一本色道**综合亚洲精品蜜桃冫| 久久久www| 国产精品久久久久久久久久三级| 亚洲国产成人tv| 性欧美xxxx视频在线观看| 一区二区三欧美| 美女主播视频一区| 国产免费成人在线视频| 日韩视频在线免费| 最新热久久免费视频| 久久久人成影片一区二区三区| 国产精品va在线播放我和闺蜜| 亚洲高清在线视频| 久久精品视频网| 欧美一区日韩一区| 欧美三区在线视频| 亚洲人体偷拍| 亚洲国产精品久久久久婷婷884| 亚欧成人在线| 欧美视频一区二区在线观看 | 欧美日本二区| 亚洲激情六月丁香| 亚洲电影第1页| 久久国内精品自在自线400部| 国产精品二区三区四区| 日韩视频一区二区三区| 亚洲人永久免费| 老司机精品视频网站| 国产在线不卡| 性久久久久久| 欧美在线视频观看免费网站| 国产精品麻豆va在线播放| 夜夜爽www精品| 在线综合欧美| 欧美日韩视频在线第一区| 亚洲黄色在线| 亚洲日本中文字幕| 麻豆91精品91久久久的内涵| 国内精品嫩模av私拍在线观看| 欧美一区二区三区在线看| 欧美自拍偷拍午夜视频| 国产精品亚洲综合| 亚洲尤物影院| 欧美一区二区在线播放| 国产美女高潮久久白浆| 亚洲综合社区| 久久精品av麻豆的观看方式 | 亚洲电影网站| 免费成人你懂的| 亚洲高清视频在线观看| 亚洲人精品午夜| 欧美激情91| 日韩视频中文| 亚洲一区二区久久| 国产精品久久福利| 亚洲免费中文| 久久精品青青大伊人av| 国产在线观看91精品一区| 久久经典综合| 欧美国产三区| 日韩一级黄色片| 亚洲欧美999| 国产视频精品免费播放| 久久精品国产视频| 欧美成人在线网站| 日韩亚洲在线| 欧美一区二区三区免费在线看| 国产亚洲精久久久久久| 亚洲激情电影中文字幕| 欧美激情视频在线播放| 一区二区av在线| 久久成人资源| 亚洲高清视频的网址| 一区二区三区毛片| 国产精品一区亚洲| 亚洲国产另类久久精品| 欧美日韩999| 亚洲欧美在线网| 麻豆精品网站| 99国产精品久久久久久久成人热| 亚洲欧美激情诱惑| 国产一区二区黄| 亚洲乱码国产乱码精品精天堂 | 欧美黄色一级视频| 亚洲私人影院| 久久久精品网| 亚洲欧洲三级| 久久福利毛片| 亚洲欧洲一区二区三区| 亚洲女性裸体视频| 伊甸园精品99久久久久久| 中国女人久久久| 国产日韩一区二区三区| 亚洲乱码国产乱码精品精天堂| 国产精品久久99| 亚洲国产精品成人| 国产精品福利久久久| 亚洲国产aⅴ天堂久久| 欧美午夜无遮挡| 久久精品国产v日韩v亚洲| 欧美日本一道本| 久久国产精品99久久久久久老狼| 欧美日本国产视频| 久久9热精品视频| 欧美午夜一区| 91久久精品久久国产性色也91| 国产精品久久久久久久久久三级| 亚洲国产高潮在线观看| 国产精品国产a级| 亚洲人成网站777色婷婷| 国产精品永久在线| 亚洲精品一区二区三区樱花 | 国产视频精品va久久久久久| 日韩午夜在线视频| 国内精品嫩模av私拍在线观看| 中国av一区| 亚洲国产成人porn| 欧美自拍偷拍午夜视频| 亚洲美女在线视频| 美女亚洲精品| 欧美一级大片在线免费观看| 欧美日韩中文在线观看| 亚洲黄网站黄| 国产日韩欧美在线看| 亚洲一区二区三区免费观看|