付秀偉, 高興泉, 付 莉
(吉林化工學院 信息與控制工程學院,吉林 吉林 132022)
基于安全加密算法的數(shù)字邏輯仿真實驗平臺
付秀偉, 高興泉, 付 莉
(吉林化工學院 信息與控制工程學院,吉林 吉林 132022)
為形成計算機專業(yè)特有的“數(shù)字邏輯”課程實驗體系以及解決硬件基礎(chǔ)課程之間和專業(yè)課程銜接差、課程工程實訓薄弱的問題,提出一種基于安全加密算法的數(shù)字邏輯仿真實驗平臺。以S-DES加密算法安全系統(tǒng)為例,介紹S-DES加密算法原理,利用Quartus II仿真軟件平臺建立圖形化加密算法模型,同時利用Visual C++開發(fā)平臺程序化實現(xiàn)算法,分別進行系統(tǒng)仿真驗證,相互校驗仿真結(jié)果。實驗表明,通過引入專業(yè)知識、以工程角度實現(xiàn)硬件基礎(chǔ)課程實驗內(nèi)容,可增強實驗課程內(nèi)容層次性,有效提升學生工程實踐意識。
數(shù)字邏輯; 加密算法; 實驗平臺; 仿真軟件
“數(shù)字電路與邏輯設(shè)計”課程是高校計算機專業(yè)必修的一門硬件基礎(chǔ)課程[1],也是專門為大二計算機專業(yè)學生量身定做的課程之一。其課程內(nèi)容著重于邏輯抽象又應(yīng)用于工程實踐[2],但又區(qū)別于其他電子類專業(yè)“數(shù)字電子技術(shù)”課程的培養(yǎng)要求。從計算機專業(yè)學生的培養(yǎng)方向而言,更立足于培養(yǎng)計算機專業(yè)的學生掌握邏輯器件設(shè)計到計算機系統(tǒng)設(shè)計的全過程,進而掌握計算機硬件系統(tǒng)結(jié)構(gòu)、工作原理,設(shè)計數(shù)字系統(tǒng)中時序和組合邏輯電路[3]。在邏輯分析和電子電路兩方面[4],數(shù)字邏輯課程更側(cè)重邏輯分析,為后續(xù)“計算機組成原理”課程做良好的知識儲備。由于教學內(nèi)容與數(shù)字電子技術(shù)相似度較高,實驗內(nèi)容基本相同,導致無法正確培養(yǎng)計算機專業(yè)學生的邏輯分析能力。
隨著可編程邏輯技術(shù)的不斷發(fā)展,EDA技術(shù)也脫穎而出,將EDA技術(shù)引入數(shù)字邏輯課程實驗教學中是必然的,但也急需選擇適合于數(shù)字邏輯實驗課程學時和培養(yǎng)目標且具有層次性、擴展性、靈活性的實驗內(nèi)容,同時設(shè)計內(nèi)容要為后續(xù)硬件基礎(chǔ)課程及專業(yè)基礎(chǔ)課程打下基礎(chǔ),本文以S-DES安全加密算法仿真實現(xiàn)為例,利用Altera公司的Quartus II仿真平臺搭建系統(tǒng)模型,將簡單易行的組合邏輯電路及設(shè)計模塊成功結(jié)合,從而熟練掌握EDA技術(shù)的數(shù)字系統(tǒng)設(shè)計方法,另外,在開放式實驗教學過程中,學生可預先利用大一學到的C語言進行算法測試及驗證,加強課程緊密性,也讓學生辨識軟件和硬件的區(qū)別[5]。
S-DES加密算法原理簡單,一直作為“計算機網(wǎng)絡(luò)安全”和“云計算”專業(yè)課程的一部分引入,但通過數(shù)字邏輯實驗課程引入內(nèi)容后,學生既可以理解基本組合邏輯和時序邏輯功能,也可以利用邏輯電路應(yīng)用于工程實踐。這種承前啟后的實驗課程內(nèi)容,既簡單易實現(xiàn),又依托于工程實踐,促進學生更好地理解和掌握理論知識,提升學生學習興趣和學習的滿足感,也為后續(xù)基礎(chǔ)和專業(yè)課程均打下基礎(chǔ)。
安全密碼技術(shù)自古以來被人們沿用,在電子、通信、計算機發(fā)展的時代[6],加密算法作為信息安全保障的核心技術(shù)被廣泛應(yīng)用。在密碼體制中有兩種類型:對稱密碼體制和非對稱密碼體制,對應(yīng)的算法為對稱和非對稱加密算法。這些安全算法可有效地保密信息安全、防止信息篡改和確認身份。20世紀70年代美國公開的DES加密算法是應(yīng)用最廣的對稱加密算法之一,其特點是算法的加密和解密過程使用相同密鑰且保密。算法模型框圖如圖1所示。
圖1 對稱加密模型框圖
圖1中明文P通過加密算法加密后得到密文C,傳輸給接收方,接收到的密文通過相同的安全密鑰進行解密操作,得到發(fā)送方給予的信息內(nèi)容。其中雙方必須以安全通道獲取密鑰源,保障信息安全。而破譯者只能在傳輸過程中獲取密文,進行破譯得到明文和密鑰。
S-DES是具有擴展性適用于教學的一種加密算法,由Santa Clara大學的Edward Schaefer教授提出[7]。與DES加密算法基本原理基本相同且簡單易實現(xiàn),其內(nèi)部核心部件采用Feistal結(jié)構(gòu),常被應(yīng)用于圖像處理方面。S-DES加密算法仍屬于對稱加密算法,在輸入明文后經(jīng)過IP置換、Fk函數(shù)、SW交換、IP-1逆置換進行加密運算得到密文C,在此過程中密鑰源形成子密鑰,添加入Fk函數(shù)中。而接收方得到密文后同樣采用該算法以相同方式進行運算,但區(qū)別于加密過程中子密鑰的加載到Fk函數(shù)順序完全倒置。S-DES加密算法流程圖如圖2所示。
圖2 S-DES加密算法流程圖
圖2中,L和R代表數(shù)據(jù)的左、右部分各4 bit,⊕代表異或操作。IP置換是簡單的數(shù)據(jù)位置互換,按照指定規(guī)則將原有P1,P2,P3,P4,P5,P6,P7,P8位置變換成P2,P6,P3,P1,P4,P8,P5,P7;與之相對應(yīng)的IP-1逆置換則將得到的數(shù)據(jù)變換為D4,D1,D3,D5,D7,D2,D8,D6。主體運算為Fk函數(shù),基本函數(shù)為
(1)
式(1)中,L和R表示數(shù)據(jù)左右兩部分,SK是子密鑰之一,而⊕是逐位異或函數(shù),F(xiàn)為其內(nèi)部S-BOX與置換操作。其內(nèi)部包括擴展置換E/P(左/右移位)、基于Feistal結(jié)構(gòu)的S-BOX和循環(huán)左移操作,同時,擴展置換E/P后引入子密鑰,與原數(shù)據(jù)異或操作,得到數(shù)據(jù)根據(jù)矩陣行列式位置選擇S-BOX內(nèi)部數(shù)據(jù),組合得到運算結(jié)果。一輪運算后對調(diào)數(shù)據(jù)左右兩部分,再次進行Fk函數(shù)的輪運算。最后一輪運算后直接將數(shù)據(jù)組合進行IP-1逆置換得到密文C。
圖2中key1和key2表示右密鑰源生成的兩個子密鑰。子密鑰生成過程主要是左移運算,但移位數(shù)據(jù)有所不同。密鑰源同樣進行規(guī)定的置換操作,置換后數(shù)據(jù)分為左右兩部分,分別左移1位,將其組合提取其中8 bit,即為子密鑰key1。同時上述數(shù)據(jù)組合后再左移1位,重新組合提取其中8 bit,即為子密鑰key2。
根據(jù)加密算法原理邏輯性強運算流水性特點,本文利用EDA技術(shù)中Quartus II開發(fā)平臺進行系統(tǒng)設(shè)計,同時借助Visual C++仿真平臺進行安全系統(tǒng)設(shè)計結(jié)果對比驗證。該平臺的圖形化設(shè)計清晰形象,靈活性強、運算速度快,仿真驗證效果直觀,學生在有限的學時里可快速建立模型,驗證正確性,激活了學生興趣,提升學習效率和工程實踐意識。
2.1 Quartus II仿真實現(xiàn)
根據(jù)S-DES加密算法工作原理分析,算法加密與解密操作簡單,硬件實現(xiàn)快速安全、靈活性較高[8]。利用Quartus II平臺可建立圖形化模型,有利于學生分析和建模。系統(tǒng)結(jié)構(gòu)圖如圖3所示。
圖3 S-DES系統(tǒng)設(shè)計結(jié)構(gòu)圖
系統(tǒng)時鐘加載入系統(tǒng)中,為保證系統(tǒng)運行穩(wěn)定,對子密鑰生成模塊輸入相對于加密/解密模塊具有較高的頻率,提前運行子密鑰生成模塊,為加密/解密模塊運行做充分準備??刂颇K可利用使能鍵進行加密和解密操作,最終輸出正確結(jié)果。
Quartus II是由Altera公司開發(fā)的一種綜合性FPGA/PLD集成仿真工具軟件[9-10]。該平臺支持多種硬件描述語言:VHDL、AHDL、Verilog HDL等,用戶可以利用Quartus II軟件的文本輸入方式、模塊輸入方式、EDA設(shè)計輸入工具等方式等進行電路描述。軟件內(nèi)部支持IP核,方便調(diào)用各種成熟模塊,同時具有集成仿真工具。具有功能集成度高、界面統(tǒng)一、靈活性強、速度快等優(yōu)點。
根據(jù)算法原理和系統(tǒng)結(jié)構(gòu),本文對結(jié)構(gòu)圖3中各個模塊分別進行圖形化設(shè)計,其各部分電路利用Quartus II平臺內(nèi)部模塊調(diào)用及硬件語言編輯合成模塊進行搭建。依據(jù)實驗室內(nèi)現(xiàn)有開發(fā)硬件平臺具有20 MHz時鐘晶振,設(shè)定系統(tǒng)時鐘為20 MHz,在系統(tǒng)內(nèi)部高性能嵌入式模擬鎖相環(huán)及VHDL語言編輯下進行分頻操作,得到相差10倍的頻率f1和f2分別輸入至子密鑰生成模塊和加密/解密模塊。
加密算法中由密鑰源生成子密鑰的過程及其重要,子密鑰為主體運算提供鑰匙,保證系統(tǒng)安全[11-12]。子密鑰及控制設(shè)計電路圖如圖4所示。
圖4 子密鑰及控制頂層設(shè)計電路圖
圖4中輸入按鍵有3個:RES、EN1、EN2,密鑰源輸入為key,輸出時能信號EN,輸出子密鑰key1和key2。當復位信號RES=‘1’時,密鑰源的工作停止,加密/解密操作終止;當RES=‘0’時,控制加密使能EN1或解密使能EN2控制系統(tǒng)。根據(jù)組合邏輯電路數(shù)據(jù)選擇器原理設(shè)計控制模塊,進行功能性選擇,控制模塊等待提前生成的子密鑰key1和key2輸入,以保證加密/解密子密鑰輸入正確順序。其中,key1和key2在兩次置換操作中進行分組循環(huán)左移1 bit和2 bit操作。為了保證結(jié)構(gòu)清晰,將key1和key2設(shè)計電路利用軟件內(nèi)Create Symbol Files for current File生成子模塊。
控制模塊輸出模式選擇后的子密鑰key1和key2作為主體運算電路的輸入信號,連接加密/解密運算電路圖的keyA和keyB,另外輸入分頻后頻率f2連接clk0作為參考信號,輸入加密/解密信息P,根據(jù)S-DES工作原理,通過存儲器、異或門、循環(huán)左移寄存器、右移寄存器、16選1數(shù)據(jù)選擇器共同完成頂層加解密運算,輸出解密/加密結(jié)果。加密/解密頂層設(shè)計電路圖如圖5所示。
在系統(tǒng)各個模塊完成后,同樣利用子模塊生成方法,將各部分頂層電路圖生成子模塊,利用圖形法搭建整體電路模型。通過Quartus II平臺自帶仿真工具Simulator對設(shè)計電路進行綜合、編譯、仿真,建立波形文件[13]。
系統(tǒng)時鐘周期50 ns,為了驗證系統(tǒng)加密/解密正確性,加密使能EN1和解密使能EN2對應(yīng)提前設(shè)定輸入信息“00010111”和“00001011”,加載密鑰源“0000101101”,在運算操作下驗證系統(tǒng)輸出值C及子密鑰值。仿真波形圖如圖6所示。
2.2 C語言程序化仿真實現(xiàn)
在數(shù)字邏輯課程之前,學生大一期間已學過C語言程序設(shè)計,為了更好鏈接和驗證新知識,可利用Visual C++開發(fā)平臺進行程序驗證。該軟件類管理靈活方便、可自動生成程序框架、界面設(shè)計與代碼編寫交互方便,學生對新知識可利用已學內(nèi)容進行預習或驗證,提升對知識點的理解和學習興趣。
圖5 加密/解密運算頂層設(shè)計電路圖
圖6 S-DES安全加密算法系統(tǒng)仿真圖
界面工作區(qū)定義明文、密文、密鑰源以及運算中間變量,根據(jù)S-DES工作原理對代碼輸入、密鑰源輸入、子密鑰生成、Fk函數(shù)、異或操作、IP和IP-1變換以及擴展置換等分別定義編輯,該算法的核心部分就是Fk函數(shù),其內(nèi)部具有非線性S-BOX,可有效保證信息安全。Fk函數(shù)運算[14]的主要程序如下:
Void fk(char sub_key[8])
{int i;
for(i=0;i<4;i++)
{ l[i]=code[i];r[i]=code[i+4];}//分離數(shù)據(jù)
for(i=0;i<8;i++)
temp[i]=XOR(r[EP[i]-1],sub_key[i]);
//擴展后異或操作
for(i=0;i<4;i++)
{ ln[i]=temp[i];rn[i]=temp[i+4];}
//左右數(shù)據(jù)分別存放
box(ln,S_a); // S-BOX0運算
temp[4]=temp[6];
temp[5]=temp[7]; //移位放置
box(rn,S_b); // S-BOX1運算
temp[0]=temp[5];temp[1]=temp[7];
temp[2]=temp[6];temp[3]=temp[4];
//P4置換
for(i=0;i<4;i++)
l[i]=XOR(temp[i],l[i]);i=0;
//左右數(shù)據(jù)再次異或
while(i<4){code[i]=l[i];i++;}
while(i<8){code[i]=r[i-4];i++;}//合并數(shù)據(jù)
通過程序編寫,編譯成功后運行程序,得到界面如圖7所示。
圖7 Visual C++加密系統(tǒng)仿真
通過Visual C++平臺系統(tǒng)仿真,可以觀察到基于軟件實現(xiàn)的S-DES加密算法運算過程中明文、密鑰源及密文與硬件編輯開發(fā)平臺Quartus II輸入相同的情況下,系統(tǒng)仿真結(jié)果完全相同。在圖形化設(shè)計與語言編輯設(shè)計兩種方式實現(xiàn)過程中,學生可充分理解時序邏輯電路與組合邏輯電路的系統(tǒng)功能,同時,以工程角度在多種設(shè)計形式下,增強學生對知識應(yīng)用的靈活性。
基于計算機專業(yè)數(shù)字邏輯課程培養(yǎng)方向和目標,以安全加密算法中S-DES算法原理為基礎(chǔ),利用Quartus II平臺進行圖形化設(shè)計以及在Visual C++平臺上的C程序化設(shè)計分別實現(xiàn)該算法,多種形式下進行系統(tǒng)仿真,對比實驗結(jié)果驗證其準確性。設(shè)計內(nèi)容承上啟下,難度適中,靈活性強且可擴展至其他復雜的加密算法,既有助于數(shù)字邏輯課程內(nèi)容理解,也為后續(xù)計算機組成原理、微機原理、云計算等課程打下良好知識基礎(chǔ)。該實驗平臺拓展學生數(shù)字系統(tǒng)設(shè)計思維,提升了學生工程實踐意識,也增強了課程學習興趣。
[1] 田淑珍,賈玉榮.仿真工具在數(shù)字邏輯實驗中的應(yīng)用[J].實驗技術(shù)與管理,2015,32(1): 124-126.
[2] 李 文,黃 文,趙全友,等.Multisim仿真的數(shù)字邏輯工程素養(yǎng)培養(yǎng)[J].實驗室研究與探索,2014,33(12):62-65.
[3] 盛建倫,鞏玉璽,劉淑霞,等.計算機專業(yè)硬件基礎(chǔ)課程實驗教學體系的研究[J].實驗室研究與探索,2013,32(10): 387-391.
[4] 盛建倫,劉淑霞,王 勇,等.數(shù)字邏輯實驗技術(shù)改革的研究[J].實驗技術(shù)與管理,2015,32(4):216-219.
[5] 唐志強.計算機專業(yè)數(shù)字邏輯實驗的改革與創(chuàng)新[J].實驗室研究與探索,2013,32(10): 182-184.
[6] 鄭 東,趙慶蘭,張應(yīng)輝.密碼學綜述[J].西安郵電大學學報,2013,18(6):1-10.
[7] William Stalling著.楊 明等譯.密碼編碼學與網(wǎng)絡(luò)安全:原理與實踐[M].3版,北京:電子工業(yè)出版社,2001:181-187.
[8] Tselepis I N,Bekakos M P. An FPGA hardware parallel implementation of the DES algorithm[J]. Neural Parallel and Scientific Computations,2004,12(4):1061-5369.
[9] 劉若鵬.電子式互感器數(shù)據(jù)采集器的研究[D].成都:西華大學,2013:31-33.
[10] 王振華.基于FPGA的超高速數(shù)據(jù)采集系統(tǒng)的開發(fā)[D].北京:清華大學,2006:90-99.
[11] 黃 慧,江榮榮,譚 敏,等.基于FPGA的加密算法實現(xiàn)[J].合肥學院學報(自然科學版),2015,25(1):35-38.
[12] 付 莉.一種基于改進DES算法的高效率FPGA硬件實現(xiàn)[J].桂林電子科技大學學報,2009,29(6):493-496.
[13] 易 藝,郝建衛(wèi).FPGA在數(shù)字邏輯電路教學中的應(yīng)用[J].實驗科學與技術(shù),2016,14(2):12-15.
[14] 郝 偉,曹代勇,胥 哲,等.中國煤炭特性數(shù)據(jù)庫數(shù)據(jù)加密技術(shù)研究[J].中國煤炭,2008,34(10):58-60.
·名人名言·
建立以提高教育質(zhì)量為導向的管理制度和工作機制,把教育資源配置和學校工作重點集中到強化教學環(huán)節(jié)、提高教育質(zhì)量上來。制定教育質(zhì)量國家標準,建立健全教育質(zhì)量保障體系。加強教師隊伍建設(shè),提高教師整體素質(zhì)。
——摘自《國家中長期教育改革和發(fā)展規(guī)劃綱要》
Simulation Experiment Platform for Digital Logic Based on Secure Encryption Algorithm
FUXiuwei,GAOXingquan,FULi
(College of Information & Control Engineering, Jilin Institute of Chemical Technology, Jilin 132022, Jilin, China)
In order to realize experimental teaching system of “digital logic” course for computer major and resolve the problems with poor cohesion among hardware basic courses and professional courses, and weakness in engineering training, a digital logic simulation experiment platform based on secure encryption algorithm is proposed in this paper. Taking S-DES encryption algorithm secure system as an example, the principle of S-DES is introduced, and a graphical model of encryption algorithm is built by using Quartus II. In addition, the algorithm is programmed by using Visual C++. Simulation results are compared for the two methods. Experiments show that level of experiment course content and students’ consciousness of engineering practice are enhanced by introducing professional knowledge and implementing hardware basic experimental content with project idea.
digital logic; encryption algorithm; experiment platform; simulation software
2016-09-10
吉林省教育廳項目(20140352);吉林省科技發(fā)展計劃項目(20150520114JH)
付秀偉(1983-),男,山東新泰人,碩士,講師,研究方向為嵌入式系統(tǒng)及電子技術(shù)。
Tel.:15044660536;E-mail:fxw7720268@163.com
TP 302
A
1006-7167(2017)05-0106-04