• 沒有找到結果。

維基百科

在文檔中 AES之遠端嵌入式系統平台 (頁 32-0)

第三章 相關文獻探討

3.6 維基百科

此 節 全 部 資 料 來 源 完 全 引 用 由 維 基 百 科 ( Wikipedia ) 的 網 址 : http://www.wikipedia.org/得知,是一個內容完全開放的網路百科書。

維基百科可查詢到詳細 AES 介紹、AES 即時新資訊和相關參考的資料連結,

如下圖 3-10 所示。

圖 3-10 維基百科瀏覽內容

- 22 -

3.6 五種模式比較分析

此節全部資料來源完全引用從文獻[7] 論文內容,改善 ECB 模式的缺點用來 五種模式,下為到其針對文內提五種模式的介紹與分析。

(Electronic codebook,ECB)模式即原始之 AES 各區塊獨立之最單純 AES 操作,圖 3-11 完全引用從文獻[7] 論文之上方 CIPHk( )定義為加密函數,圖 3-11 完全引用從文獻[7] 內容之下方 DECIk( )定義為解密函數。

圖 3-11 ECB 模式

如圖 3-12 完全引用從文獻[7] 論文內容為(Counter mode,CTR)模式。

- 23 -

圖 3-12 CTR 模式

如圖 3-13 完全引用從文獻[7] 論文內容為(Cipher-block chaining,CBC)模 式所示。

- 24 -

圖 3-13 CBC 模式

圖3-14完全引用從文獻[7] 論文內容為( Cipher feedback,CFB)模式所示。

圖3-15完全引用從文獻[7] 論文內容為( Output feedback, OFB)模式所示。

- 25 -

圖 3-14 CFB 模式

圖 3-15 OFB 模式

- 26 -

3.7 文獻分析

第一篇文獻中可以看到一個僅需 44 clock 就能夠完成一回合加解密的 32 位 元 AES 硬體電路在 FPGA 裡面實現。第二篇文獻為介紹 MicroBlaze 中央處理器 的基本架構介紹。第三篇文獻為使用 C#語言撰寫的 AES 驗證軟體,來驗證硬體 加解密處理後的結果正確性。第四篇文獻為客戶端-伺服器的網路通訊基本架構說 明。第五篇文獻為 e-Learning 的名詞解釋。第六篇文獻介紹維基百科的來源。第 七篇文獻為提供 AES 的五種模式應用的架構介紹。

本研究根據上面所提到參考資料深入探討後,先將第一篇和第二篇所提結合 成 AES 嵌入式系統,並且嘗試將第三篇所提 AES 教學介面增加功能後與嵌入式 系統結合起來,當中融合第四篇網際網路架構與第五篇 e-Learning 概念,最後成 功開發出整合軟硬體並且可供 AES 教學研究的系統。

- 27 -

- 28 - 動作,並將果顯示在右方陣列,最後按下右方的 MixColumns 按鍵,會使中間區 域輸入的 16 個位元組,每一行乘以一個固定的係數得到新矩陣。 料旋轉的動作,並將果顯示在右方陣列,最後按下右方的 InvMixColumns 按鍵,

會使中間區域輸入的 16 個位元組,每一行乘以一個固定的係數得到新矩陣。

- 29 -

圖 4-3 解密方塊

4.4 金鑰產生

如圖 4-7,進入這個介面後,介面左方有圖片說明其原理說明,當按下右下 方藍色的執行架構按鍵時,使用者所輸入 16 個位元組金鑰,會做金鑰擴展,產 生出依序第一到第十把金鑰,鑰顯現出來總共十一回合金鑰。

圖 4-4 金鑰產生

- 30 -

- 31 -

圖 4-6 文字應用

4.7 基本圖片加解密

如圖4-7所示是完全引用從文獻[8] 內容所創,進入這個介面後,當按下加密按 鍵時,使用者所輸入圖片會與輸入加密金鑰進行加密,而當按下解密按鍵時,使 用者所輸入圖片會與輸入解密金鑰進行解密。在本研究在圖片應用中,圖片像素 是由三原色光模型(RGB color model),使用三種原色、紅色、綠色和藍色三種色 光的主要頻譜成分所組成,並且以不同比例相加,來產生不同顏色。一個位元組 是用來表示一種顏色,其有256灰階值。

- 32 -

圖 4-7 基本圖片加解密

如圖 4-8 所示,本介面也提供經過加密解密後圖片,與原始圖片進行所有子 像素比較功能,可讓使用者快速知道上下兩張圖片是否為完全相同的圖片。

- 33 -

圖 4-8 詳細比較資料

4.8 手寫圖片應用

如圖 4-9 所示,進入這個介面後,使用者可在原始圖檔輸入及時手寫資訊,

然後可以觀察圖片的加解密結果,由於介面是使用 ECB 模式進行圖片加解密,

故加密後的圖片會隱約保留原本輸入圖片的資訊。

圖 4-9 手寫圖片應用

- 34 -

- 35 -

4.10 各模式圖片加解密

此節完全引用從文獻[17] 內容,由於AES加密的演算法實際應用於圖片加密 上面,根據在圖片加密上所遇到問題,實際的運用到圖片上,另用其它加密方法,

進而改善及達到我們所想要的加密結果。

圖4-11完全引用從文獻[17] 內容是將一張風景圖化為直方圖,分別表示紅、

綠、藍三種顏色的直方圖,表示圖片在該顏色強度所佔的比例較高,則代表此圖 的加密不理想,若是在加密後有一個顏色強度高,可以利用這個特性來判別加密 過後的圖片,加密的結果越好,代表顏色越混亂。

圖 4-11 風景圖及其三色直方圖(Histogram)

- 36 -

在本研究圖片應用中,使用Entropy表示雜訊程度,為了能較精確的感覺和測 量雜訊隨機的程度,其定義如下圖:

圖 4-12 亂度定義

下圖 4-13 完全引用從文獻[17] 內容為本研究設計一個模擬平台,使用軟體來 實現此五種模式的圖片加解密,將五種模式利用開關去控制選擇,架構包含了金 鑰擴充、加密方塊和解密方塊三大方塊。此平台可顯示圖片亂度以及三色直方圖 和圖片執行各模式的運算時間。

- 37 -

圖 4-13 各模式圖片加解密

4.12 各種模式加密結果比較

我們設計一個軟體模擬平台,將一張圖片經過五種模式所產生的結果,可同時 在平台表現出來,提供使用者觀察各模式對於不同圖形的加密結果。下圖4-14為 各種模式加密結果比較平台,進行加解密的結果,我們以加密一張大小為256x256 的彩色圖片為例。

- 38 -

圖 4-14 各種模式加密效果比較

4.13 CTR 模式加密結果比較

本研究在 CTR 模式下,設計可讓使用者所輸入的圖片,進行五種不同大小計 數器的圖片加密,並且同時輸出五張加密後圖片。此平台可以同時看出 CTR 模 式在不同位元計數器的圖片加密結果、亂度以及執行時間,提供使用者觀察不同 位元計數器的 CTR 模式圖片加密結果。

圖 4-15 可以看出當中明顯看出 4bit 加密模式所加密出來的結果最差,會有明 顯的線條產生,而在有 16bit、32bit、128bit 模式的加密結果都很佳,幾乎不會有 任何規律性的區塊產生,所產生的圖片,亂度都達 7.999 以上。

- 39 -

圖 4-15 CTR 模式加密結果比較

- 40 -

第五章 AES嵌入式架構

5.1 FPGA 內部硬體設計流程

本章內全部資料來源從文獻[2] 內容的實驗室學長的硬體做修改,本研究使 用 Xilinx 公司所開發的 Embedded Development Kit (EDK)整合系統,提供的快速 完成嵌入式系統設計。另外,EDK 系統也提供軟體編譯,幫助本研究可以短時間

- 41 -

多少。先前所創使用 32-bit AES 電路的嵌入式系統架構上,將 FPGA 內部的記憶 體(Block RAM, BRAM) 擴大至 16K-Byte,將 AES 演算法使用 C 語言設計,經由 編譯後所產生的資料暫存於記憶體並等待執行。在運算過程上,嵌入式系統可以 增加 AES 的軟體加解密功能,也增加可在 FPGA 內部進行金鑰展開的功能。

圖 5-2 所示。

圖 5-2 FPGA 內部 C 語言控制流程圖

5.3 嵌入式系統

- 42 -

開始進行軟硬體結合的動作,利用系統提供的程式庫、發展軟體…等,將軟 硬體合成、實現、模擬,再將撰寫 C 語言控制程式可執行檔下載到硬體控制電路 所對應的 BRAM,並將來源程式碼編譯、組譯,而後連結成機器所能執行的語言,

並產生 download.bit 檔案,最後在將此檔案下載制 FPGA 做完成驗證操作,整體 設計電路完成,如圖 5-4 所示,為由 EDK 視窗所顯示,下載程式的偵錯報告。

圖 5-3 下載程式偵錯報告

接著開始設計將PC資料傳送給FPGA的使用者介面,本研究將所分成兩個介 面,一為圖5-4所示,將明文與圖片輸入到FPGA內部的AES硬體執行加解密,另 一個為圖5-5所示,將明文與圖片輸入到FPGA內部的AES軟體執行加解密,由於 傳至FPGA內部軟體介面,是透過FPGA內部軟體進行加解密,其擁有可做即時金 鑰擴展的功能,故使用者可在FPGA軟體介面,輸入在即時金鑰,而硬體則否,

由於其已透過VHDL寫死在RAM中。

- 43 -

圖 5-4 傳至 FPGA 內部硬體介面

圖 5-5 傳至 FPGA 內部軟體介面

- 44 -

5.4 遠端應用

由於 FPGA 實驗板並不是每位使用者都會擁有的設備,所以本系統增加可以 透過遠端控制 FPGA 功能,讓每一個使用者都可以在任何地點,透過電腦進行網 際網路連線,將資料傳送至遠端伺服器電腦所掛載 FPGA 進行加解密,圖 5-6 為 此遠端系統整體規劃的簡單架構。

圖 5-6 遠端系統整體規劃

在本研究設計上使用 C#內部的 Socket 函式庫,設計一個遠端控制程式。圖 5-7 所示為這個程式的客戶端介面,其內部軟體主要是 Client 程式架構,此介面 提供使用者輸入明文與圖片進行加解密,程式會透過網路傳送資料至遠端電腦所 掛載的 FPGA,執行 FPGA 內部軟體的加解密處理,並在將其結果傳回本地端電 腦,最後程式會詳細顯示各階段的執行時間。

- 45 -

圖 5-7 客戶端

在開發伺服器端時,由於其需連結 FPGA 與網路,在驗證上較為複雜,所以 本研究先從基本架構開發起,首先使用 RS232 連接兩台電腦做連線加密測試,在 伺服器端使用軟體進行加解密,用來驗證客戶端-伺服器端基本架構正確,當確認 客戶端-伺服器端架構正確無誤後,接著再使用開放原始碼的免費 FTP 檔案傳輸 軟體 FileZilla,來當做網路連線的伺服器基本架構,並且伺服器連結 FPGA 做處 理,當確認網路連線至連結 FPGA 全都處理正確無誤後,最後在完整開發遠端連 線 FPGA 處理加解密的架構,圖 5-8 所示,可由左至右看出本研究在開發整個架 構的過程。

- 46 -

圖 5-8 開發伺服器的過程

圖 5-9 所示,為本研究用 C#所設計的 Socket 伺服器介面。此介面可以讓使 用者自訂用戶端所連線進入的名稱和密碼,並且提供開啟與關閉伺服器的功能,

主要功能為處理資料的傳送和接收,並且傳送即時 FPGA 處理訊息給用戶端,其 整體網路架構流程圖,在圖 5-10 所示。

圖 5-9 伺服器

- 47 -

圖 5-10 整體網路架構流程圖

- 48 -

第六章 實驗結果

6.1 本研究環境

本研究的實驗室開發嵌入式系統環境裡,軟體採用 Xilinx 所提供的 ISE 10.1 和 EDK 10.1 整合軟體,包含軟體與硬體設備。本研究的實驗室硬體則選用 Spartan-3E 系列,詳細規格如圖 6-1 所示。

圖 6-1 FPGA 開發環境規格

圖6-2所示,為本研究實驗室開發環境裡,使用的個人電腦PC軟體與硬體的基 本介紹。

圖 6-2 個人電腦 PC 軟體與硬體的基本介紹

在文檔中 AES之遠端嵌入式系統平台 (頁 32-0)

相關文件