• 沒有找到結果。

CTR 標準模式執行結果

在文檔中 中 華 大 學 (頁 39-49)

第五章 實作結果

5.2.3 CTR 標準模式執行結果

圖5-11為CTR標準模式下在不同執行緒版本加密不同檔案大小的執行結果(縱軸 單位:秒)。以80Mb為例,單執行緒花費的執行效率約每秒6.64Mb,雙執行緒花費的 執行效率約每秒13.07Mb,較單執行緒提升1.97倍的效率。而四執行緒花費的執行效 率約每秒25.72Mb,較單執行緒提升3.88倍的效率。

圖5-11、CTR標準模式下加密執行結果

圖5-12為CTR標準模式下在不同執行緒版本解密不同檔案大小密文的執行結果 (縱軸單位:秒)。以80Mb為例,單執行緒花費的執行效率約每秒6.64Mb,雙執行緒 花費的執行效率約每秒13.05Mb,較單執行緒提升1.97倍的效率。而四執行緒花費的 執行效率約每秒25.56Mb,較單執行緒提升3.85倍的效率。

圖5-12、CTR標準模式下解密執行結果

表5-5為在執行緒版本,以128位元金鑰長度,各別加密不同檔案大小的執行效能

表。從CTR模式執行80Mb檔案來看,雙執行緒每秒處理的資料量為單執行緒的1.97 倍,四執行緒每秒處理的資料量更可達到3.88倍。

表5-5、AES 128 位元 加密效能表(單位Mb/s)

800Kb 8Mb 80Mb

單執行緒

ECB 6.48 6.61 6.65

CBC 6.47 6.60 6.63

CTR 6.47 6.60 6.64

雙執行緒

ECB 12.65 12.78 13.08 CBC 12.28 12.39 13.01 CTR 12.43 12.68 13.07

四執行緒

ECB 23.35 24.94 25.78 CBC 23.31 23.51 25.69 CTR 23.33 23.99 25.72

表5-6為在執行緒版本,以128位元金鑰長度,各別解密不同檔案大小的執行效能 表。此解密的數據上,同樣以CTR執行80Mb為例,雙執行緒每秒處理的資料量為單 執行緒的1.97倍,四執行緒每秒處理的資料量達到3.85倍。

表5-6、AES 128 位元 解密效能表(單位Mb/s)

800Kb 8Mb 80Mb

單執行緒

ECB 5.99 6.12 6.13

CBC 5.98 6.11 6.12

CTR 6.47 6.60 6.64

雙執行緒

ECB 11.69 11.76 12.06 CBC 11.38 11.47 11.95 CTR 12.31 12.43 13.05

四執行緒

ECB 21.83 23.00 23.76 CBC 21.69 22.34 23.69 CTR 23.35 24.07 25.56

表5-7為雙執行緒以及四執行緒版本以128位元金鑰長度,加密不同檔案大小的執 行效率,相對於單執行緒版本的效能提升比較表。執行效率上,雙執行緒最高可以提 升對於單執行緒1.97倍的處理效能,而四執行緒最高可以提升對於單執行緒3.88倍的 處理效率。

表5-7、AES 128 位元 加密效能提升比較表

800Kb 8Mb 80Mb

雙執行緒

ECB 1.95 1.93 1.96 CBC 1.90 1.88 1.96 CTR 1.92 1.92 1.97

四執行緒

ECB 3.61 3.77 3.88 CBC 3.60 3.56 3.87 CTR 3.61 3.63 3.88

表5-8為雙執行緒以及四執行緒版本以128位元金鑰長度,加密不同檔案大小的執 行效率,相對於單執行緒版本的效能提升比較表。執行解密的處理時間在雙執行緒以 及四執行緒上,提升的處理效率也與加密部分差不多。雙執行緒部分最高提升1.97 倍,四執行緒部分最高提升3.88倍。

表5-8、AES 128 位元 解密效能提升比較表

800Kb 8Mb 80Mb

雙執行緒

ECB 1.95 1.92 1.97

CBC 1.90 1.88 1.95

CTR 1.90 1.88 1.97

四執行緒

ECB 3.64 3.76 3.88

CBC 3.63 3.65 3.87

CTR 3.61 3.65 3.85

在64位元環境中,執行我們64位元版本的加解密程式,同樣雙執行緒的整體處加 密理效能依然可以達到我們期望中接近單執行緒的2倍提升。而四執行緒的部分,每

秒加密處理的資料量,以CTR模式為例,在處理80Mb檔案時,為單執行緒處理效能 的3.88倍。

5.3 32位元與64位元環境執行結果比較

此章節我們再將32位元以及64位元環境上的執行結果進行整理比較,藉以了解兩 種環境上的執行效率是否有所差異。

表5-9為Windows 7 32位元以及64位元在各執行緒版本中,加密效率上的比較 表。以四執行緒每秒處理的資料量為例,64位元對32位元執行結果有些微的提升,但 不明顯。

表5-9、加密效能比較表(檔案大小為80Mb) 32bit(Mb/s) 64bit(Mb/s)

單執行緒

ECB 6.61 6.65 CBC 6.60 6.63 CTR 6.60 6.64

雙執行緒

ECB 12.97 13.08 CBC 12.93 13.01 CTR 12.93 13.07

四執行緒

ECB 25.62 25.78 CBC 25.47 25.69 CTR 25.57 25.72

表5-10為Windows 7 32位元以及64位元在各執行緒版本中,解密效率上的比較 表。以四執行緒每秒處理的資料量為例,情況與加密部份相同。

表5-10、解密效能比較表(檔案大小為80Mb) 32bit(Mb/s) 64bit(Mb/s)

單執行緒

ECB 6.02 6.13 CBC 6.01 6.12 CTR 6.61 6.64

雙執行緒

ECB 11.85 12.06 CBC 11.84 11.95 CTR 12.95 13.05

四執行緒

ECB 23.33 23.76 CBC 23.25 23.69 CTR 25.51 25.56

表5-11為Windows 7 64位元版本在各執行緒版本中,在加密不同檔案大小的時間 上,對於32位元版本所提升效能的比較表。雖然提升效果不明顯,但由實際數據可以 看出,64位元對於32位元版本仍有些微的提升。

表5-11、Windows 7 64位元與32位元版本的加密效能比較表 800Kb 8Mb 80Mb

單執行緒

ECB 1.00 1.00 1.01 CBC 1.00 1.00 1.00 CTR 1.00 1.00 1.01

雙執行緒

ECB 1.02 1.01 1.01 CBC 1.01 1.00 1.01 CTR 1.02 1.00 1.01

四執行緒

ECB 1.00 1.04 1.01 CBC 1.00 1.00 1.01 CTR 1.00 1.00 1.01

表5-12為Windows 7 64位元版本在各執行緒版本中,在解密不同檔案大小的效率 上,對於32位元版本所提升效能的比較表。同樣地,此結果與加密部分相似,與32 位元版本僅有些微的提升。

表5-12、Windows 7 64位元與32位元版本的解密效能比較表 800Kb 8Mb 80Mb

單執行緒 ECB 1.01 1.02 1.02

CBC 1.02 1.02 1.02 CTR 1.00 1.00 1.00

雙執行緒

ECB 1.04 1.04 1.02 CBC 1.02 1.02 1.01 CTR 1.01 1.01 1.01

四執行緒

ECB 1.02 1.04 1.02 CBC 1.02 1.01 1.02 CTR 1.02 1.01 1.00

在64位元下執行我們64位元版本的加解密程式,雖然沒有明顯的效率提升,但是 由數據可以看到,我們帄行化架構無論在32位元或是64位元環境中,都可以獲得穩定 的效能提升。

結論

隨著網路傳輸速度不斷進步,加上電腦處理資訊的便利性,許多個人以及企業的 資料都轉由電腦和網路進行處理,因此為了避免有心人士的竊取,資料的安全性變得 相對重要。同時,政府也於近年通過個人資料保護相關法案,更是證明對於資料的保 護是刻不容緩的事。但是,為了提高資料的安全性所進行的加解密動作,會因為加密 演算法的難度,而使處理資料時間加長。目前在電腦處理器上,對於多核心處理器的 進展相當的迅速,從原先的一開始的雙核心進步到六核心處理器,甚至可以開啟額外 的虛擬核心達到支援12個執行緒的處理。不僅如此,除了個人電腦外,手機行動裝置、

嵌入式系統以及車載裝置也都開始走向多核心處理的發展。所以我們以多核心處理器 的電腦環境,藉由加密架構帄行化的方式,提升加解密的效能。

本論文中我們針對Intel公司的專家 Anoop Singh 和 Ankit Malani [4]所提出的 AES帄行化方法進行改善,他們的方法是利用Intel TBB函式庫對AES加解密運算進行 帄行化的實作,於檔案輸入輸出以及金鑰擴充的部份進行帄行處理。加密處理效能較 帄行化之前提升約14%,而解密處理效能則提升約13%。我們則是針對加解密模式進 行帄行化設計,從實際執行的結果發現,在Windows 7 32-bit系統中,雙執行緒的版 本在CTR模式加密和解密最高可提升1.96倍的效率。在實際處理速率上,加密部分最 高可達到每秒12.93Mb,解密部分最高可達到每秒12.95Mb。另外,在四執行緒的版 本中,執行效率更提升高達加密3.87倍和解密3.86倍。在實際處理速率上,加密部分 最高可達到每秒25.57Mb,解密部分最高可達到每秒25.51Mb。在Windows 7 64-bit系 統中,雙執行緒的版本在CTR模式加密和解密最高可提升1.97倍的效率。在實際處理 速率上,加密部分最高可達到每秒13.07Mb,解密部分最高可達到每秒13.05Mb。另 外,在四執行緒的版本中,執行效率更提升高達加密3.88倍和解密3.85倍。在實際處 理速率上,加密部分最高可達到每秒25.72Mb,解密部分最高可達到每秒25.56Mb。

而64位元環境相對於32位元環境的執行效能比較結果,在效率上有些微的效能提升。

同時,我們提出的CBC修改模式在雙執行緒和四執行緒下,與ECB標準模式的執 行速度相當近似。而從數據上來看,我們提出的架構,在雙執行緒下,可獲得最高1.97 倍的效能提升,而在四執行緒的執行效能上,最高能提升3.88倍的效能。

現階段的程式對於不同核心數量實作個別的版本,未來可朝向自動判斷處理器核

心數量編寫程式,便可以因應多核心快速的發展,得到更彈性的應用,直接在不同核 心的處理器上執行。除了本篇論文實作的AES演算法外,也可本帄行化研究應用於其 他演算法(如雜湊、串流演算法)。在實際應用面上,由於我們提供快速的加解密效果,

可適用於目前需要大量加解密資料的雲端應用。

參考文獻

[1] 中華民國立法院,「個人資料保護法」,民國 99 年 05 月 26 日。

可存取自:http://law.moj.gov.tw/LawClass/LawAll.aspx?PCode=I0050021

[2] National Institute of Standards and Technology (NIST), “FIPS-46-3: Data Encryption Standard (DES),” May 1999.

Available on http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf.

[3] National Institute of Standards and Technology (NIST), “FIPS-197: Advanced Encryption Standard,” Nov. 2001.

Available on http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf.

[4] A. Singh and A. Malani, “Rewriting Algorithms to help Parallel Programming.”

Available on http://software.intel.com/en-us/articles/Parallel_Prog/.

[5] A. D. Biagio, A. Barenghi, G. Agosta and G. Pelosi, “Design of a Parallel AES for Graphics Hardware using the CUDA framework,” IEEE International Symposium on Parallel & Distributed Processing, pp. 1-8, May 2009.

[6] O. Gervasi, D. Russo and F. Vella, “The AES implantation based on OpenCL for multi/many core architecture,” IEEE International Conference on Computational Science and Its Applications, pp. 129-134, March 2010.

[7] M. Y. Wang, C. P. Su, C. L. Horng, C. W. Wu, and C. T. Huang, “Single- and Multi-core Configurable AES Architectures for Flexible Security,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 18, No. 4, pp. 541-552, April 2010.

[8] M. Dworkin, “Recommendation for Block Cipher Modes of Operation: Methods and Techniques,” National Institute of Standards and Technology, Tech. Rep. NIST Special Publication 800-38a, 2001.

Available on http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf.

[9] P. Bilski and W. Winiecki, “Multi-core implementation of the symmetric cryptography algorithms in the measurement system,” Measurement, Volume 43, Issue 8, October 2010, pp. 1049-1060.

[10] D. Le, J. Chang, X. Gou, A. Zhang and C. Lu, “Parallel AES Algorithm for Fast Data Encryption on GPU,” IEEE 2nd International Conference on Computer Engineering and Technology (ICCET), pp. 16-18, April 2010.

[11]Khronos Group, OpenCL 1.0 Specification, http://www.khronos.org/opencl

在文檔中 中 華 大 學 (頁 39-49)

相關文件