梁海華,李克清,盤麗娜
(常熟理工學院計算機科學與工程學院,江蘇常熟 215500)
分組密碼算法演示平臺的設計與實現
梁海華,李克清,盤麗娜
(常熟理工學院計算機科學與工程學院,江蘇常熟 215500)
介紹了對稱密碼體制中分組密碼的算法原理、性質.基于Visual C#設計并實現了分組密碼算法的可視化演示平臺.該平臺不僅顯示了分組密碼的總體框架結構,而且動態顯示每一階段的明文與密文變換過程,使分組密碼的復雜迭代過程更容易被理解.
分組密碼;Visual C#;可視化演示
隨著計算機和Internet技術的普及,網絡通信已經滲透到社會的各個方面,信息安全問題已經受到人們極大的關注[1].密碼學是保障信息安全的核心技術,應用涉及軍事、國防、商貿以及人們日常生活的各個方面.分組密碼以其高效率、低開銷、實現簡單和易于標準化等特點在現代密碼學研究中占據重要地位.
DES(Data Encryption Standard)算法是1977年由美國國家標準局頒布的標準,用于商業和非機密的政府應用領域的加密.2000年10月,美國國家標準技術研究所在綜合考慮了安全性、性能效率和靈活性的基礎上,將分組密碼Rijndael算法確定為高級加密標準(AES),取代廣泛使用了20多年的數據加密標準(DES).2006年,SMS4算法作為中國無線局域網安全標準WAPI的重要組成部分被提出,它是國內官方公布的第一個商用分組密碼算法[2].
分組密碼的設計原則是即難破譯又容易實現,加密函數E(?,K)和解密函數D(?,K)都必須是很容易計算的,但是要從方程y=E(x,K)和x=D(y,K)中解出密鑰K應該是一個困難問題.為了更好的理解和深入分析分組密碼的算法,需要設計可視化的分組密碼算法演示平臺,前人已在這方面做了一些工作,如基于易用原則,使用MFC進行實現[3];利用Matlab便捷的數據存儲能力,通過Matlab實現[4];而本文基于現在主流的Vi?sual Studio NET框架,使用C#語言實現,使得所設計模塊在C/S、B/S模式下均可使用.
DES算法是一種典型的Feistel結構[5],其由初始置換IP、16輪迭代和初始逆置換IP-1組成的,DES算法可以簡單描述如下[6]:

DES算法的總體框架如圖1所示.
Rijndael[7]算法采用一種SP結構分組密碼(見圖2)對輪函數實施迭代的結構.輪函數結構采用的是代替/置換網絡結構(SP結構),沒有采用DES的Feistel結構.Rijndael的輪函數由以下三層組成:
①非線性層:進行非線性S盒變換ByteSub,由16個S盒并置而成,起混淆作用.
②線性混合層:進行行移位變換ShiftRow和列混合變換MixColumn,以確保多輪之上的高度擴散.
③密鑰加層:進行輪密鑰加變換AddRoundKey,將輪密鑰簡單地異或到中間狀態上,實現密鑰的加密控制作用.
DES、AES的加解密算法具有良好的對稱結構[9-10],即總體框架一致,加密與解密的區別僅在于輪密鑰的不同,該特性為演示平臺的設計提供了便利,只需為加密和解密過程演示設計一個主框體.

圖1 DES算法總體結構圖

圖2 AES算法總體結構圖
為了提高加解密算法的運算效率、實現運算過程的可視化,采用分層的思想進行平臺設計(如圖3所示),該平臺具有如下特點:
①加解密的核心算法與UI顯示分離,核心算法類DESCipher.dll、AESCipher.dll只需關注算法本身,不受UI顯示模塊ArrayBox的影響;
②獨立的輸入輸出處理函數模塊,通過格式化處理組件ArrayBoxUtrl將UI輸入的數據規則化;
③添加調試功能,使得用戶可以進入核心函數代碼進行察看;
④中間變量的提取將有助于對算法的安全性進行分析.
以DES為例,圖4(a)為DES算法類設計,Key類用于密鑰生成;Element類定義算法流程中的基本操作單元,如首末置換、左右數據迭代交換;DESdll是加解密的流程控制類,其中Allleft、Allright數組即為保存的中間變量TEMP,用于界面演示,使用代碼如下:


圖4(b)為演示界面類圖,ArrayBox、Ar?rayBoxUtrl用于自定義UI組件及數據的格式化處理,其他各個Form類與data類對應,便于數據結構與界面間進行數據處理;其中KeyForm類對應圖5(a),EForm類對應圖5(b).為了能夠動態展示,由計時器控制密碼表的生成過程,通過不同顏色標記當前所處的狀態;通過功能按鍵控制演示過程的“運行”與“暫停”,調節演示的“快”、“慢”節奏.

圖4 DES演示模塊設計

圖5 DES加解密演示平臺
基于Visual Studio Net(C#)的分組密碼演示平臺采用分層設計的思想,分階段完成開發工作;通過模塊化實現,降低耦合度,便于測試,提高軟件質量.通過本平臺可以方便的觀測分組密碼如DES、AES、SMS4等的加/解密操作過程、密文和密鑰的變化過程.今后將進一步完善該平臺,實現分組密碼安全性分析的可視化演示.
[1]Andrew STanenbaum,David JWetherall.Computer Networks(5th Edition)[M].Prentice Hall,2010:617-710.
[2]斯廷森(Stinson D R).密碼學原理與實踐[M].馮登國,譯.北京:電子工業出版社,2009:57-88.
[3]周彥偉,吳振強.基于MFC的DES算法演示平臺的設計與實現[J].電子技術應用,2009(5),145-149.
[4]李帥麗,包小敏.基于Matlab的加密算法DES的設計與實現[J].西南大學學報(自然科學版),2010,32(3),124-128.
[5]胡振波.Feistel結構加解密算法的高效硬件實現方案研究[D].上海:上海交通大學,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]陳少真.密碼學基礎[M].北京:科學出版社,2008:129-169.
[10]Denis TS,Johnson S.程序員密碼學[M].沈曉斌,譯.北京:機械工業出版社,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
常熟理工學院青年教師科研啟動基金資助項目“802.1x無線網絡安全架構的性能分析”(KYZ2010136Z)
梁海華(1981—),男,江蘇南通人,講師,碩士,研究方向:計算機數據通信、網絡安全.