付秀偉, 高興泉, 付 莉
(吉林化工學(xué)院 信息與控制工程學(xué)院,吉林 吉林 132022)
基于安全加密算法的數(shù)字邏輯仿真實(shí)驗(yàn)平臺(tái)
付秀偉, 高興泉, 付 莉
(吉林化工學(xué)院 信息與控制工程學(xué)院,吉林 吉林 132022)

為形成計(jì)算機(jī)專業(yè)特有的“數(shù)字邏輯”課程實(shí)驗(yàn)體系以及解決硬件基礎(chǔ)課程之間和專業(yè)課程銜接差、課程工程實(shí)訓(xùn)薄弱的問(wèn)題,提出一種基于安全加密算法的數(shù)字邏輯仿真實(shí)驗(yàn)平臺(tái)。以S-DES加密算法安全系統(tǒng)為例,介紹S-DES加密算法原理,利用Quartus II仿真軟件平臺(tái)建立圖形化加密算法模型,同時(shí)利用Visual C++開發(fā)平臺(tái)程序化實(shí)現(xiàn)算法,分別進(jìn)行系統(tǒng)仿真驗(yàn)證,相互校驗(yàn)仿真結(jié)果。實(shí)驗(yàn)表明,通過(guò)引入專業(yè)知識(shí)、以工程角度實(shí)現(xiàn)硬件基礎(chǔ)課程實(shí)驗(yàn)內(nèi)容,可增強(qiáng)實(shí)驗(yàn)課程內(nèi)容層次性,有效提升學(xué)生工程實(shí)踐意識(shí)。
數(shù)字邏輯; 加密算法; 實(shí)驗(yàn)平臺(tái); 仿真軟件
“數(shù)字電路與邏輯設(shè)計(jì)”課程是高校計(jì)算機(jī)專業(yè)必修的一門硬件基礎(chǔ)課程[1],也是專門為大二計(jì)算機(jī)專業(yè)學(xué)生量身定做的課程之一。其課程內(nèi)容著重于邏輯抽象又應(yīng)用于工程實(shí)踐[2],但又區(qū)別于其他電子類專業(yè)“數(shù)字電子技術(shù)”課程的培養(yǎng)要求。從計(jì)算機(jī)專業(yè)學(xué)生的培養(yǎng)方向而言,更立足于培養(yǎng)計(jì)算機(jī)專業(yè)的學(xué)生掌握邏輯器件設(shè)計(jì)到計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的全過(guò)程,進(jìn)而掌握計(jì)算機(jī)硬件系統(tǒng)結(jié)構(gòu)、工作原理,設(shè)計(jì)數(shù)字系統(tǒng)中時(shí)序和組合邏輯電路[3]。在邏輯分析和電子電路兩方面[4],數(shù)字邏輯課程更側(cè)重邏輯分析,為后續(xù)“計(jì)算機(jī)組成原理”課程做良好的知識(shí)儲(chǔ)備。由于教學(xué)內(nèi)容與數(shù)字電子技術(shù)相似度較高,實(shí)驗(yàn)內(nèi)容基本相同,導(dǎo)致無(wú)法正確培養(yǎng)計(jì)算機(jī)專業(yè)學(xué)生的邏輯分析能力。
隨著可編程邏輯技術(shù)的不斷發(fā)展,EDA技術(shù)也脫穎而出,將EDA技術(shù)引入數(shù)字邏輯課程實(shí)驗(yàn)教學(xué)中是必然的,但也急需選擇適合于數(shù)字邏輯實(shí)驗(yàn)課程學(xué)時(shí)和培養(yǎng)目標(biāo)且具有層次性、擴(kuò)展性、靈活性的實(shí)驗(yàn)內(nèi)容,同時(shí)設(shè)計(jì)內(nèi)容要為后續(xù)硬件基礎(chǔ)課程及專業(yè)基礎(chǔ)課程打下基礎(chǔ),本文以S-DES安全加密算法仿真實(shí)現(xiàn)為例,利用Altera公司的Quartus II仿真平臺(tái)搭建系統(tǒng)模型,將簡(jiǎn)單易行的組合邏輯電路及設(shè)計(jì)模塊成功結(jié)合,從而熟練掌握EDA技術(shù)的數(shù)字系統(tǒng)設(shè)計(jì)方法,另外,在開放式實(shí)驗(yàn)教學(xué)過(guò)程中,學(xué)生可預(yù)先利用大一學(xué)到的C語(yǔ)言進(jìn)行算法測(cè)試及驗(yàn)證,加強(qiáng)課程緊密性,也讓學(xué)生辨識(shí)軟件和硬件的區(qū)別[5]。
S-DES加密算法原理簡(jiǎn)單,一直作為“計(jì)算機(jī)網(wǎng)絡(luò)安全”和“云計(jì)算”專業(yè)課程的一部分引入,但通過(guò)數(shù)字邏輯實(shí)驗(yàn)課程引入內(nèi)容后,學(xué)生既可以理解基本組合邏輯和時(shí)序邏輯功能,也可以利用邏輯電路應(yīng)用于工程實(shí)踐。這種承前啟后的實(shí)驗(yàn)課程內(nèi)容,既簡(jiǎn)單易實(shí)現(xiàn),又依托于工程實(shí)踐,促進(jìn)學(xué)生更好地理解和掌握理論知識(shí),提升學(xué)生學(xué)習(xí)興趣和學(xué)習(xí)的滿足感,也為后續(xù)基礎(chǔ)和專業(yè)課程均打下基礎(chǔ)。
安全密碼技術(shù)自古以來(lái)被人們沿用,在電子、通信、計(jì)算機(jī)發(fā)展的時(shí)代[6],加密算法作為信息安全保障的核心技術(shù)被廣泛應(yīng)用。在密碼體制中有兩種類型:對(duì)稱密碼體制和非對(duì)稱密碼體制,對(duì)應(yīng)的算法為對(duì)稱和非對(duì)稱加密算法。這些安全算法可有效地保密信息安全、防止信息篡改和確認(rèn)身份。20世紀(jì)70年代美國(guó)公開的DES加密算法是應(yīng)用最廣的對(duì)稱加密算法之一,其特點(diǎn)是算法的加密和解密過(guò)程使用相同密鑰且保密。算法模型框圖如圖1所示。

圖1 對(duì)稱加密模型框圖
圖1中明文P通過(guò)加密算法加密后得到密文C,傳輸給接收方,接收到的密文通過(guò)相同的安全密鑰進(jìn)行解密操作,得到發(fā)送方給予的信息內(nèi)容。其中雙方必須以安全通道獲取密鑰源,保障信息安全。而破譯者只能在傳輸過(guò)程中獲取密文,進(jìn)行破譯得到明文和密鑰。
S-DES是具有擴(kuò)展性適用于教學(xué)的一種加密算法,由Santa Clara大學(xué)的Edward Schaefer教授提出[7]。與DES加密算法基本原理基本相同且簡(jiǎn)單易實(shí)現(xiàn),其內(nèi)部核心部件采用Feistal結(jié)構(gòu),常被應(yīng)用于圖像處理方面。S-DES加密算法仍屬于對(duì)稱加密算法,在輸入明文后經(jīng)過(guò)IP置換、Fk函數(shù)、SW交換、IP-1逆置換進(jìn)行加密運(yùn)算得到密文C,在此過(guò)程中密鑰源形成子密鑰,添加入Fk函數(shù)中。而接收方得到密文后同樣采用該算法以相同方式進(jìn)行運(yùn)算,但區(qū)別于加密過(guò)程中子密鑰的加載到Fk函數(shù)順序完全倒置。S-DES加密算法流程圖如圖2所示。

圖2 S-DES加密算法流程圖
圖2中,L和R代表數(shù)據(jù)的左、右部分各4 bit,⊕代表異或操作。IP置換是簡(jiǎn)單的數(shù)據(jù)位置互換,按照指定規(guī)則將原有P1,P2,P3,P4,P5,P6,P7,P8位置變換成P2,P6,P3,P1,P4,P8,P5,P7;與之相對(duì)應(yīng)的IP-1逆置換則將得到的數(shù)據(jù)變換為D4,D1,D3,D5,D7,D2,D8,D6。主體運(yùn)算為Fk函數(shù),基本函數(shù)為
(1)
式(1)中,L和R表示數(shù)據(jù)左右兩部分,SK是子密鑰之一,而⊕是逐位異或函數(shù),F(xiàn)為其內(nèi)部S-BOX與置換操作。其內(nèi)部包括擴(kuò)展置換E/P(左/右移位)、基于Feistal結(jié)構(gòu)的S-BOX和循環(huán)左移操作,同時(shí),擴(kuò)展置換E/P后引入子密鑰,與原數(shù)據(jù)異或操作,得到數(shù)據(jù)根據(jù)矩陣行列式位置選擇S-BOX內(nèi)部數(shù)據(jù),組合得到運(yùn)算結(jié)果。一輪運(yùn)算后對(duì)調(diào)數(shù)據(jù)左右兩部分,再次進(jìn)行Fk函數(shù)的輪運(yùn)算。最后一輪運(yùn)算后直接將數(shù)據(jù)組合進(jìn)行IP-1逆置換得到密文C。
圖2中key1和key2表示右密鑰源生成的兩個(gè)子密鑰。子密鑰生成過(guò)程主要是左移運(yùn)算,但移位數(shù)據(jù)有所不同。密鑰源同樣進(jìn)行規(guī)定的置換操作,置換后數(shù)據(jù)分為左右兩部分,分別左移1位,將其組合提取其中8 bit,即為子密鑰key1。同時(shí)上述數(shù)據(jù)組合后再左移1位,重新組合提取其中8 bit,即為子密鑰key2。
根據(jù)加密算法原理邏輯性強(qiáng)運(yùn)算流水性特點(diǎn),本文利用EDA技術(shù)中Quartus II開發(fā)平臺(tái)進(jìn)行系統(tǒng)設(shè)計(jì),同時(shí)借助Visual C++仿真平臺(tái)進(jìn)行安全系統(tǒng)設(shè)計(jì)結(jié)果對(duì)比驗(yàn)證。該平臺(tái)的圖形化設(shè)計(jì)清晰形象,靈活性強(qiáng)、運(yùn)算速度快,仿真驗(yàn)證效果直觀,學(xué)生在有限的學(xué)時(shí)里可快速建立模型,驗(yàn)證正確性,激活了學(xué)生興趣,提升學(xué)習(xí)效率和工程實(shí)踐意識(shí)。
2.1 Quartus II仿真實(shí)現(xiàn)
根據(jù)S-DES加密算法工作原理分析,算法加密與解密操作簡(jiǎn)單,硬件實(shí)現(xiàn)快速安全、靈活性較高[8]。利用Quartus II平臺(tái)可建立圖形化模型,有利于學(xué)生分析和建模。系統(tǒng)結(jié)構(gòu)圖如圖3所示。

圖3 S-DES系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖
系統(tǒng)時(shí)鐘加載入系統(tǒng)中,為保證系統(tǒng)運(yùn)行穩(wěn)定,對(duì)子密鑰生成模塊輸入相對(duì)于加密/解密模塊具有較高的頻率,提前運(yùn)行子密鑰生成模塊,為加密/解密模塊運(yùn)行做充分準(zhǔn)備。控制模塊可利用使能鍵進(jìn)行加密和解密操作,最終輸出正確結(jié)果。
Quartus II是由Altera公司開發(fā)的一種綜合性FPGA/PLD集成仿真工具軟件[9-10]。該平臺(tái)支持多種硬件描述語(yǔ)言:VHDL、AHDL、Verilog HDL等,用戶可以利用Quartus II軟件的文本輸入方式、模塊輸入方式、EDA設(shè)計(jì)輸入工具等方式等進(jìn)行電路描述。軟件內(nèi)部支持IP核,方便調(diào)用各種成熟模塊,同時(shí)具有集成仿真工具。具有功能集成度高、界面統(tǒng)一、靈活性強(qiáng)、速度快等優(yōu)點(diǎn)。
根據(jù)算法原理和系統(tǒng)結(jié)構(gòu),本文對(duì)結(jié)構(gòu)圖3中各個(gè)模塊分別進(jìn)行圖形化設(shè)計(jì),其各部分電路利用Quartus II平臺(tái)內(nèi)部模塊調(diào)用及硬件語(yǔ)言編輯合成模塊進(jìn)行搭建。依據(jù)實(shí)驗(yàn)室內(nèi)現(xiàn)有開發(fā)硬件平臺(tái)具有20 MHz時(shí)鐘晶振,設(shè)定系統(tǒng)時(shí)鐘為20 MHz,在系統(tǒng)內(nèi)部高性能嵌入式模擬鎖相環(huán)及VHDL語(yǔ)言編輯下進(jìn)行分頻操作,得到相差10倍的頻率f1和f2分別輸入至子密鑰生成模塊和加密/解密模塊。
加密算法中由密鑰源生成子密鑰的過(guò)程及其重要,子密鑰為主體運(yùn)算提供鑰匙,保證系統(tǒng)安全[11-12]。子密鑰及控制設(shè)計(jì)電路圖如圖4所示。

圖4 子密鑰及控制頂層設(shè)計(jì)電路圖
圖4中輸入按鍵有3個(gè):RES、EN1、EN2,密鑰源輸入為key,輸出時(shí)能信號(hào)EN,輸出子密鑰key1和key2。當(dāng)復(fù)位信號(hào)RES=‘1’時(shí),密鑰源的工作停止,加密/解密操作終止;當(dāng)RES=‘0’時(shí),控制加密使能EN1或解密使能EN2控制系統(tǒng)。根據(jù)組合邏輯電路數(shù)據(jù)選擇器原理設(shè)計(jì)控制模塊,進(jìn)行功能性選擇,控制模塊等待提前生成的子密鑰key1和key2輸入,以保證加密/解密子密鑰輸入正確順序。其中,key1和key2在兩次置換操作中進(jìn)行分組循環(huán)左移1 bit和2 bit操作。為了保證結(jié)構(gòu)清晰,將key1和key2設(shè)計(jì)電路利用軟件內(nèi)Create Symbol Files for current File生成子模塊。
控制模塊輸出模式選擇后的子密鑰key1和key2作為主體運(yùn)算電路的輸入信號(hào),連接加密/解密運(yùn)算電路圖的keyA和keyB,另外輸入分頻后頻率f2連接clk0作為參考信號(hào),輸入加密/解密信息P,根據(jù)S-DES工作原理,通過(guò)存儲(chǔ)器、異或門、循環(huán)左移寄存器、右移寄存器、16選1數(shù)據(jù)選擇器共同完成頂層加解密運(yùn)算,輸出解密/加密結(jié)果。加密/解密頂層設(shè)計(jì)電路圖如圖5所示。
在系統(tǒng)各個(gè)模塊完成后,同樣利用子模塊生成方法,將各部分頂層電路圖生成子模塊,利用圖形法搭建整體電路模型。通過(guò)Quartus II平臺(tái)自帶仿真工具Simulator對(duì)設(shè)計(jì)電路進(jìn)行綜合、編譯、仿真,建立波形文件[13]。
系統(tǒng)時(shí)鐘周期50 ns,為了驗(yàn)證系統(tǒng)加密/解密正確性,加密使能EN1和解密使能EN2對(duì)應(yīng)提前設(shè)定輸入信息“00010111”和“00001011”,加載密鑰源“0000101101”,在運(yùn)算操作下驗(yàn)證系統(tǒng)輸出值C及子密鑰值。仿真波形圖如圖6所示。
2.2 C語(yǔ)言程序化仿真實(shí)現(xiàn)
在數(shù)字邏輯課程之前,學(xué)生大一期間已學(xué)過(guò)C語(yǔ)言程序設(shè)計(jì),為了更好鏈接和驗(yàn)證新知識(shí),可利用Visual C++開發(fā)平臺(tái)進(jìn)行程序驗(yàn)證。該軟件類管理靈活方便、可自動(dòng)生成程序框架、界面設(shè)計(jì)與代碼編寫交互方便,學(xué)生對(duì)新知識(shí)可利用已學(xué)內(nèi)容進(jìn)行預(yù)習(xí)或驗(yàn)證,提升對(duì)知識(shí)點(diǎn)的理解和學(xué)習(xí)興趣。

圖5 加密/解密運(yùn)算頂層設(shè)計(jì)電路圖

圖6 S-DES安全加密算法系統(tǒng)仿真圖
界面工作區(qū)定義明文、密文、密鑰源以及運(yùn)算中間變量,根據(jù)S-DES工作原理對(duì)代碼輸入、密鑰源輸入、子密鑰生成、Fk函數(shù)、異或操作、IP和IP-1變換以及擴(kuò)展置換等分別定義編輯,該算法的核心部分就是Fk函數(shù),其內(nèi)部具有非線性S-BOX,可有效保證信息安全。Fk函數(shù)運(yùn)算[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]);
//擴(kuò)展后異或操作
for(i=0;i<4;i++)
{ ln[i]=temp[i];rn[i]=temp[i+4];}
//左右數(shù)據(jù)分別存放
box(ln,S_a); // S-BOX0運(yùn)算
temp[4]=temp[6];
temp[5]=temp[7]; //移位放置
box(rn,S_b); // S-BOX1運(yùn)算
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ù)
通過(guò)程序編寫,編譯成功后運(yùn)行程序,得到界面如圖7所示。

圖7 Visual C++加密系統(tǒng)仿真
通過(guò)Visual C++平臺(tái)系統(tǒng)仿真,可以觀察到基于軟件實(shí)現(xiàn)的S-DES加密算法運(yùn)算過(guò)程中明文、密鑰源及密文與硬件編輯開發(fā)平臺(tái)Quartus II輸入相同的情況下,系統(tǒng)仿真結(jié)果完全相同。在圖形化設(shè)計(jì)與語(yǔ)言編輯設(shè)計(jì)兩種方式實(shí)現(xiàn)過(guò)程中,學(xué)生可充分理解時(shí)序邏輯電路與組合邏輯電路的系統(tǒng)功能,同時(shí),以工程角度在多種設(shè)計(jì)形式下,增強(qiáng)學(xué)生對(duì)知識(shí)應(yīng)用的靈活性。
基于計(jì)算機(jī)專業(yè)數(shù)字邏輯課程培養(yǎng)方向和目標(biāo),以安全加密算法中S-DES算法原理為基礎(chǔ),利用Quartus II平臺(tái)進(jìn)行圖形化設(shè)計(jì)以及在Visual C++平臺(tái)上的C程序化設(shè)計(jì)分別實(shí)現(xiàn)該算法,多種形式下進(jìn)行系統(tǒng)仿真,對(duì)比實(shí)驗(yàn)結(jié)果驗(yàn)證其準(zhǔn)確性。設(shè)計(jì)內(nèi)容承上啟下,難度適中,靈活性強(qiáng)且可擴(kuò)展至其他復(fù)雜的加密算法,既有助于數(shù)字邏輯課程內(nèi)容理解,也為后續(xù)計(jì)算機(jī)組成原理、微機(jī)原理、云計(jì)算等課程打下良好知識(shí)基礎(chǔ)。該實(shí)驗(yàn)平臺(tái)拓展學(xué)生數(shù)字系統(tǒng)設(shè)計(jì)思維,提升了學(xué)生工程實(shí)踐意識(shí),也增強(qiáng)了課程學(xué)習(xí)興趣。
[1] 田淑珍,賈玉榮.仿真工具在數(shù)字邏輯實(shí)驗(yàn)中的應(yīng)用[J].實(shí)驗(yàn)技術(shù)與管理,2015,32(1): 124-126.
[2] 李 文,黃 文,趙全友,等.Multisim仿真的數(shù)字邏輯工程素養(yǎng)培養(yǎng)[J].實(shí)驗(yàn)室研究與探索,2014,33(12):62-65.
[3] 盛建倫,鞏玉璽,劉淑霞,等.計(jì)算機(jī)專業(yè)硬件基礎(chǔ)課程實(shí)驗(yàn)教學(xué)體系的研究[J].實(shí)驗(yàn)室研究與探索,2013,32(10): 387-391.
[4] 盛建倫,劉淑霞,王 勇,等.數(shù)字邏輯實(shí)驗(yàn)技術(shù)改革的研究[J].實(shí)驗(yàn)技術(shù)與管理,2015,32(4):216-219.
[5] 唐志強(qiáng).計(jì)算機(jī)專業(yè)數(shù)字邏輯實(shí)驗(yàn)的改革與創(chuàng)新[J].實(shí)驗(yàn)室研究與探索,2013,32(10): 182-184.
[6] 鄭 東,趙慶蘭,張應(yīng)輝.密碼學(xué)綜述[J].西安郵電大學(xué)學(xué)報(bào),2013,18(6):1-10.
[7] William Stalling著.楊 明等譯.密碼編碼學(xué)與網(wǎng)絡(luò)安全:原理與實(shí)踐[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].成都:西華大學(xué),2013:31-33.
[10] 王振華.基于FPGA的超高速數(shù)據(jù)采集系統(tǒng)的開發(fā)[D].北京:清華大學(xué),2006:90-99.
[11] 黃 慧,江榮榮,譚 敏,等.基于FPGA的加密算法實(shí)現(xiàn)[J].合肥學(xué)院學(xué)報(bào)(自然科學(xué)版),2015,25(1):35-38.
[12] 付 莉.一種基于改進(jìn)DES算法的高效率FPGA硬件實(shí)現(xiàn)[J].桂林電子科技大學(xué)學(xué)報(bào),2009,29(6):493-496.
[13] 易 藝,郝建衛(wèi).FPGA在數(shù)字邏輯電路教學(xué)中的應(yīng)用[J].實(shí)驗(yàn)科學(xué)與技術(shù),2016,14(2):12-15.
[14] 郝 偉,曹代勇,胥 哲,等.中國(guó)煤炭特性數(shù)據(jù)庫(kù)數(shù)據(jù)加密技術(shù)研究[J].中國(guó)煤炭,2008,34(10):58-60.
·名人名言·
建立以提高教育質(zhì)量為導(dǎo)向的管理制度和工作機(jī)制,把教育資源配置和學(xué)校工作重點(diǎn)集中到強(qiáng)化教學(xué)環(huán)節(jié)、提高教育質(zhì)量上來(lái)。制定教育質(zhì)量國(guó)家標(biāo)準(zhǔn),建立健全教育質(zhì)量保障體系。加強(qiáng)教師隊(duì)伍建設(shè),提高教師整體素質(zhì)。
——摘自《國(guó)家中長(zhǎng)期教育改革和發(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
吉林省教育廳項(xiàng)目(20140352);吉林省科技發(fā)展計(jì)劃項(xiàng)目(20150520114JH)
付秀偉(1983-),男,山東新泰人,碩士,講師,研究方向?yàn)榍度胧较到y(tǒng)及電子技術(shù)。
Tel.:15044660536;E-mail:fxw7720268@163.com
TP 302
A
1006-7167(2017)05-0106-04