《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于漢明碼校驗的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相當與一個復雜的函數,其具體的操作為:

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

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

 ?、圯喅A慨惢颍簩⑶皟刹降慕Y果與輪常量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亚洲国产精品_日韩亚洲一区二区
国产午夜精品美女视频明星a级| 亚洲国产精品一区二区www在线| 久久久久免费视频| 亚洲一区二区成人| 亚洲精品日韩在线观看| 久久国产免费| 久久国产精品色婷婷| 小辣椒精品导航| 亚洲欧美日韩精品在线| 亚洲自拍另类| 中日韩高清电影网| 在线亚洲电影| 一二三区精品| 91久久久久久国产精品| 亚洲激情电影在线| 亚洲欧洲在线一区| 亚洲激情视频网站| 亚洲精品视频在线播放| 亚洲日本国产| 日韩视频一区二区三区在线播放免费观看 | 亚洲欧美另类中文字幕| 亚洲在线观看免费| 欧美另类变人与禽xxxxx| 久久永久免费| 欧美二区在线观看| 欧美精选一区| 欧美日韩一区二区三区在线看| 欧美婷婷在线| 国产精品久久久久久久久久尿 | 在线电影一区| 亚洲国产精品一区二区www在线| 亚洲激情小视频| 99视频日韩| 亚洲与欧洲av电影| 久久国产精品久久精品国产| 最近中文字幕日韩精品 | 久久国产福利| 亚洲国产精品精华液网站| 亚洲人成啪啪网站| 亚洲一区二区精品| 久久超碰97中文字幕| 久久躁狠狠躁夜夜爽| 欧美精品一区视频| 欧美性色综合| 国产一区二区三区免费在线观看| 在线精品视频一区二区三四| 亚洲国产精品小视频| 在线综合亚洲| 亚洲成人在线视频播放| aaa亚洲精品一二三区| 西瓜成人精品人成网站| 男女视频一区二区| 国产精品大全| 在线成人h网| 在线视频免费在线观看一区二区| 久久岛国电影| 亚洲一区二区欧美日韩| 久久久噜噜噜久久久| 欧美人妖另类| 国产亚洲高清视频| 日韩午夜一区| 久久国产精品亚洲va麻豆| 一卡二卡3卡四卡高清精品视频| 翔田千里一区二区| 欧美顶级少妇做爰| 国产精品日韩在线观看| 亚洲福利视频网| 亚洲免费网址| 一区二区三区高清视频在线观看| 欧美在线免费看| 欧美日韩精品一区二区三区四区| 国产欧美日韩综合一区在线播放| 亚洲三级国产| 亚洲第一免费播放区| 亚洲欧美中日韩| 欧美精品在线观看播放| 狠狠色狠狠色综合系列| 亚洲视频在线观看网站| 亚洲人成网站色ww在线| 欧美在线视频二区| 欧美日韩视频第一区| 在线成人激情视频| 亚洲欧美在线x视频| 亚洲视频免费在线观看| 老妇喷水一区二区三区| 国产精品视频你懂的| 亚洲肉体裸体xxxx137| 久久国产精品高清| 性色av一区二区三区在线观看 | 亚洲成在人线av| 亚久久调教视频| 欧美日韩亚洲不卡| 亚洲激情婷婷| 亚洲黄色有码视频| 久久久久成人精品免费播放动漫| 国产精品久久久久一区二区三区共 | 狠狠色狠狠色综合日日91app| 亚洲一区国产一区| 亚洲午夜精品国产| 欧美成人一区二区三区片免费| 国产视频一区免费看| 亚洲午夜精品17c| 一区二区电影免费在线观看| 欧美成人日本| 影音先锋久久| 久久精品观看| 久久精品夜夜夜夜久久| 国产欧美精品| 亚洲欧美日韩一区二区在线| 亚洲自拍偷拍一区| 国产精品国产精品| 在线亚洲激情| 亚洲综合色激情五月| 欧美视频网址| 999亚洲国产精| 夜夜爽99久久国产综合精品女不卡| 欧美大成色www永久网站婷| 亚洲成人自拍视频| 亚洲精品欧美专区| 欧美成人网在线| 亚洲国产精品一区在线观看不卡| 亚洲三级视频在线观看| 免费欧美日韩国产三级电影| 在线看欧美视频| 亚洲久久一区二区| 欧美看片网站| 一区二区久久久久| 亚洲一区中文| 国产欧美日韩一区二区三区在线 | 亚洲视频一区二区免费在线观看| 欧美日韩亚洲国产精品| 99国产精品久久久久老师| 亚洲一区二区三区四区在线观看| 国产精品久久久久久久电影| 亚洲一级高清| 欧美专区在线观看一区| 国产日韩亚洲欧美精品| 久久精品亚洲精品| 欧美成人69av| 日韩午夜剧场| 午夜综合激情| 狠狠色香婷婷久久亚洲精品| 亚洲欧洲精品一区二区三区 | 久久久久久97三级| 在线播放视频一区| 亚洲精品中文字幕女同| 欧美日韩一区二区免费视频| 亚洲视频一区| 久久久久国色av免费看影院| 在线视频国内自拍亚洲视频| 亚洲天堂免费在线观看视频| 国产精品视频久久| 亚洲福利精品| 欧美日韩美女| 香蕉亚洲视频| 欧美—级a级欧美特级ar全黄| 在线一区观看| 久久久亚洲国产天美传媒修理工 | 99热免费精品在线观看| 国产精品高潮呻吟久久av无限| 香蕉久久一区二区不卡无毒影院| 蜜臀久久99精品久久久久久9| 亚洲美女色禁图| 欧美一区亚洲二区| 亚洲国产精品黑人久久久| 亚洲视频中文字幕| 国产一区二区精品久久| 日韩一区二区精品| 国产免费成人| 日韩一区二区久久| 国产亚洲一区在线| 一区二区三区四区五区在线| 国产亚洲va综合人人澡精品| 亚洲社区在线观看| 欧美fxxxxxx另类| 欧美福利一区二区| 精品51国产黑色丝袜高跟鞋| 久久国产福利国产秒拍| 欧美成人午夜免费视在线看片| 亚洲国产精品一区二区尤物区| 宅男噜噜噜66一区二区 | 夜夜嗨av色综合久久久综合网| 国产精品99免视看9| 久久av一区二区三区| 欧美精品综合| 欧美一二三视频| 欧美精品免费在线| 亚洲欧美文学| 欧美激情第一页xxx| 亚洲欧美日产图| 农村妇女精品| 亚洲女同在线| 欧美日韩久久不卡| 久久精品国产清自在天天线| 国产精品videosex极品| 亚洲电影免费观看高清完整版在线观看| 欧美日韩国产欧美日美国产精品| 欧美亚洲综合网| 国产精品va在线播放我和闺蜜| 亚洲激情黄色|