梁海華,李克清,盤麗娜
(常熟理工學(xué)院計算機(jī)科學(xué)與工程學(xué)院,江蘇常熟 215500)
分組密碼算法演示平臺的設(shè)計與實現(xiàn)
梁海華,李克清,盤麗娜
(常熟理工學(xué)院計算機(jī)科學(xué)與工程學(xué)院,江蘇常熟 215500)
介紹了對稱密碼體制中分組密碼的算法原理、性質(zhì).基于Visual C#設(shè)計并實現(xiàn)了分組密碼算法的可視化演示平臺.該平臺不僅顯示了分組密碼的總體框架結(jié)構(gòu),而且動態(tài)顯示每一階段的明文與密文變換過程,使分組密碼的復(fù)雜迭代過程更容易被理解.
分組密碼;Visual C#;可視化演示
隨著計算機(jī)和Internet技術(shù)的普及,網(wǎng)絡(luò)通信已經(jīng)滲透到社會的各個方面,信息安全問題已經(jīng)受到人們極大的關(guān)注[1].密碼學(xué)是保障信息安全的核心技術(shù),應(yīng)用涉及軍事、國防、商貿(mào)以及人們?nèi)粘I畹母鱾€方面.分組密碼以其高效率、低開銷、實現(xiàn)簡單和易于標(biāo)準(zhǔn)化等特點在現(xiàn)代密碼學(xué)研究中占據(jù)重要地位.
DES(Data Encryption Standard)算法是1977年由美國國家標(biāo)準(zhǔn)局頒布的標(biāo)準(zhǔn),用于商業(yè)和非機(jī)密的政府應(yīng)用領(lǐng)域的加密.2000年10月,美國國家標(biāo)準(zhǔn)技術(shù)研究所在綜合考慮了安全性、性能效率和靈活性的基礎(chǔ)上,將分組密碼Rijndael算法確定為高級加密標(biāo)準(zhǔn)(AES),取代廣泛使用了20多年的數(shù)據(jù)加密標(biāo)準(zhǔn)(DES).2006年,SMS4算法作為中國無線局域網(wǎng)安全標(biāo)準(zhǔn)WAPI的重要組成部分被提出,它是國內(nèi)官方公布的第一個商用分組密碼算法[2].
分組密碼的設(shè)計原則是即難破譯又容易實現(xiàn),加密函數(shù)E(?,K)和解密函數(shù)D(?,K)都必須是很容易計算的,但是要從方程y=E(x,K)和x=D(y,K)中解出密鑰K應(yīng)該是一個困難問題.為了更好的理解和深入分析分組密碼的算法,需要設(shè)計可視化的分組密碼算法演示平臺,前人已在這方面做了一些工作,如基于易用原則,使用MFC進(jìn)行實現(xiàn)[3];利用Matlab便捷的數(shù)據(jù)存儲能力,通過Matlab實現(xiàn)[4];而本文基于現(xiàn)在主流的Vi?sual Studio NET框架,使用C#語言實現(xiàn),使得所設(shè)計模塊在C/S、B/S模式下均可使用.
DES算法是一種典型的Feistel結(jié)構(gòu)[5],其由初始置換IP、16輪迭代和初始逆置換IP-1組成的,DES算法可以簡單描述如下[6]:
DES算法的總體框架如圖1所示.
Rijndael[7]算法采用一種SP結(jié)構(gòu)分組密碼(見圖2)對輪函數(shù)實施迭代的結(jié)構(gòu).輪函數(shù)結(jié)構(gòu)采用的是代替/置換網(wǎng)絡(luò)結(jié)構(gòu)(SP結(jié)構(gòu)),沒有采用DES的Feistel結(jié)構(gòu).Rijndael的輪函數(shù)由以下三層組成:
①非線性層:進(jìn)行非線性S盒變換ByteSub,由16個S盒并置而成,起混淆作用.
②線性混合層:進(jìn)行行移位變換ShiftRow和列混合變換MixColumn,以確保多輪之上的高度擴(kuò)散.
③密鑰加層:進(jìn)行輪密鑰加變換AddRoundKey,將輪密鑰簡單地異或到中間狀態(tài)上,實現(xiàn)密鑰的加密控制作用.
DES、AES的加解密算法具有良好的對稱結(jié)構(gòu)[9-10],即總體框架一致,加密與解密的區(qū)別僅在于輪密鑰的不同,該特性為演示平臺的設(shè)計提供了便利,只需為加密和解密過程演示設(shè)計一個主框體.
圖1 DES算法總體結(jié)構(gòu)圖
圖2 AES算法總體結(jié)構(gòu)圖
為了提高加解密算法的運算效率、實現(xiàn)運算過程的可視化,采用分層的思想進(jìn)行平臺設(shè)計(如圖3所示),該平臺具有如下特點:
①加解密的核心算法與UI顯示分離,核心算法類DESCipher.dll、AESCipher.dll只需關(guān)注算法本身,不受UI顯示模塊ArrayBox的影響;
②獨立的輸入輸出處理函數(shù)模塊,通過格式化處理組件ArrayBoxUtrl將UI輸入的數(shù)據(jù)規(guī)則化;
③添加調(diào)試功能,使得用戶可以進(jìn)入核心函數(shù)代碼進(jìn)行察看;
④中間變量的提取將有助于對算法的安全性進(jìn)行分析.
以DES為例,圖4(a)為DES算法類設(shè)計,Key類用于密鑰生成;Element類定義算法流程中的基本操作單元,如首末置換、左右數(shù)據(jù)迭代交換;DESdll是加解密的流程控制類,其中Allleft、Allright數(shù)組即為保存的中間變量TEMP,用于界面演示,使用代碼如下:
圖4(b)為演示界面類圖,ArrayBox、Ar?rayBoxUtrl用于自定義UI組件及數(shù)據(jù)的格式化處理,其他各個Form類與data類對應(yīng),便于數(shù)據(jù)結(jié)構(gòu)與界面間進(jìn)行數(shù)據(jù)處理;其中KeyForm類對應(yīng)圖5(a),EForm類對應(yīng)圖5(b).為了能夠動態(tài)展示,由計時器控制密碼表的生成過程,通過不同顏色標(biāo)記當(dāng)前所處的狀態(tài);通過功能按鍵控制演示過程的“運行”與“暫?!?,調(diào)節(jié)演示的“快”、“慢”節(jié)奏.
圖4 DES演示模塊設(shè)計
圖5 DES加解密演示平臺
基于Visual Studio Net(C#)的分組密碼演示平臺采用分層設(shè)計的思想,分階段完成開發(fā)工作;通過模塊化實現(xiàn),降低耦合度,便于測試,提高軟件質(zhì)量.通過本平臺可以方便的觀測分組密碼如DES、AES、SMS4等的加/解密操作過程、密文和密鑰的變化過程.今后將進(jìn)一步完善該平臺,實現(xiàn)分組密碼安全性分析的可視化演示.
[1]Andrew STanenbaum,David JWetherall.Computer Networks(5th Edition)[M].Prentice Hall,2010:617-710.
[2]斯廷森(Stinson D R).密碼學(xué)原理與實踐[M].馮登國,譯.北京:電子工業(yè)出版社,2009:57-88.
[3]周彥偉,吳振強(qiáng).基于MFC的DES算法演示平臺的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2009(5),145-149.
[4]李帥麗,包小敏.基于Matlab的加密算法DES的設(shè)計與實現(xiàn)[J].西南大學(xué)學(xué)報(自然科學(xué)版),2010,32(3),124-128.
[5]胡振波.Feistel結(jié)構(gòu)加解密算法的高效硬件實現(xiàn)方案研究[D].上海:上海交通大學(xué),2010.
[6]Wikimedia Foundation,Inc.Data Encryption Standard[EB/OL].http://en.wikipedia.org/wiki/Data_Encryption_Standard,2012-6-19.
[7]W ikimedia Foundation,Inc.Advanced Encryption Standard[EB/OL].http://en.wikipedia.org/wiki/Advanced_Encryption_Standard, 2012-6-19.
[8]Wikimedia Foundation,Inc.SMS4[EB/OL].http://en.wikipedia.org/wiki/SMS4,2012-6-19.
[9]陳少真.密碼學(xué)基礎(chǔ)[M].北京:科學(xué)出版社,2008:129-169.
[10]Denis TS,Johnson S.程序員密碼學(xué)[M].沈曉斌,譯.北京:機(jī)械工業(yè)出版社,2007:109-158.
Design and Implementation of Block Cipher Demonstration Platform
LIANG Hai-Hua,LIKe-Qing,PAN Li-Na
(School of Computer Science and Engineering,Changshu Institute of Technology,Changshu 215500,China)
Cryptographic algorithms have played a fundamental role in network information security.This paper has focused on a detailed presentation on the theory and property of block cipher algorithm belonging to symmet?ric algorithm,and the authors of the paper design and achieve the visual demonstration platform of block cipher based on Visual C#.This platform shows the architecture of block cipher algorithm and every step in conversion process between plaintext and cipher-text.Therefore,the complex iterative process can be understood easily.
block cipher;Visual C#;visual demonstration
TP393.08
A
1008-2794(2012)08-0099-04
2012-6-25
常熟理工學(xué)院青年教師科研啟動基金資助項目“802.1x無線網(wǎng)絡(luò)安全架構(gòu)的性能分析”(KYZ2010136Z)
梁海華(1981—),男,江蘇南通人,講師,碩士,研究方向:計算機(jī)數(shù)據(jù)通信、網(wǎng)絡(luò)安全.