吉林化工学院 信息与控制工程学院,吉林 吉林 132022
中图分类号: TP302
文献标识码: A
文章编号: 1006-7167(2017)05-0106-04
收稿日期: 2016-09-10
网络出版日期: 2017-05-20
版权声明: 2017 《实验室研究与探索》编辑部 《实验室研究与探索》编辑部 所有
基金资助:
作者简介:
作者简介:付秀伟(1983-),男,山东新泰人,硕士,讲师,研究方向为嵌入式系统及电子技术。Tel.:15044660536;E-mail:fxw7720268@163.com
展开
摘要
为形成计算机专业特有的“数字逻辑”课程实验体系以及解决硬件基础课程之间和专业课程衔接差、课程工程实训薄弱的问题,提出一种基于安全加密算法的数字逻辑仿真实验平台。以S-DES加密算法安全系统为例,介绍S-DES加密算法原理,利用Quartus II仿真软件平台建立图形化加密算法模型,同时利用Visual C++开发平台程序化实现算法,分别进行系统仿真验证,相互校验仿真结果。实验表明,通过引入专业知识、以工程角度实现硬件基础课程实验内容,可增强实验课程内容层次性,有效提升学生工程实践意识。
关键词:
Abstract
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.
Keywords:
“数字电路与逻辑设计”课程是高校计算机专业必修的一门硬件基础课程[1],也是专门为大二计算机专业学生量身定做的课程之一。其课程内容着重于逻辑抽象又应用于工程实践[2],但又区别于其他电子类专业“数字电子技术”课程的培养要求。从计算机专业学生的培养方向而言,更立足于培养计算机专业的学生掌握逻辑器件设计到计算机系统设计的全过程,进而掌握计算机硬件系统结构、工作原理,设计数字系统中时序和组合逻辑电路[3]。在逻辑分析和电子电路两方面[4],数字逻辑课程更侧重逻辑分析,为后续“计算机组成原理”课程做良好的知识储备。由于教学内容与数字电子技术相似度较高,实验内容基本相同,导致无法正确培养计算机专业学生的逻辑分析能力。
随着可编程逻辑技术的不断发展,EDA技术也脱颖而出,将EDA技术引入数字逻辑课程实验教学中是必然的,但也急需选择适合于数字逻辑实验课程学时和培养目标且具有层次性、扩展性、灵活性的实验内容,同时设计内容要为后续硬件基础课程及专业基础课程打下基础,本文以S-DES安全加密算法仿真实现为例,利用Altera公司的Quartus II仿真平台搭建系统模型,将简单易行的组合逻辑电路及设计模块成功结合,从而熟练掌握EDA技术的数字系统设计方法,另外,在开放式实验教学过程中,学生可预先利用大一学到的C语言进行算法测试及验证,加强课程紧密性,也让学生辨识软件和硬件的区别[5]。
S-DES加密算法原理简单,一直作为“计算机网络安全”和“云计算”专业课程的一部分引入,但通过数字逻辑实验课程引入内容后,学生既可以理解基本组合逻辑和时序逻辑功能,也可以利用逻辑电路应用于工程实践。这种承前启后的实验课程内容,既简单易实现,又依托于工程实践,促进学生更好地理解和掌握理论知识,提升学生学习兴趣和学习的满足感,也为后续基础和专业课程均打下基础。
安全密码技术自古以来被人们沿用,在电子、通信、计算机发展的时代[6],加密算法作为信息安全保障的核心技术被广泛应用。在密码体制中有两种类型:对称密码体制和非对称密码体制,对应的算法为对称和非对称加密算法。这些安全算法可有效地保密信息安全、防止信息篡改和确认身份。20世纪70年代美国公开的DES加密算法是应用最广的对称加密算法之一,其特点是算法的加密和解密过程使用相同密钥且保密。算法模型框图如图1所示。
图1中明文P通过加密算法加密后得到密文C,传输给接收方,接收到的密文通过相同的安全密钥进行解密操作,得到发送方给予的信息内容。其中双方必须以安全通道获取密钥源,保障信息安全。而破译者只能在传输过程中获取密文,进行破译得到明文和密钥。
S-DES是具有扩展性适用于教学的一种加密算法,由Santa Clara大学的Edward Schaefer教授提出[7]。与DES加密算法基本原理基本相同且简单易实现,其内部核心部件采用Feistal结构,常被应用于图像处理方面。S-DES加密算法仍属于对称加密算法,在输入明文后经过IP置换、Fk函数、SW交换、IP-1逆置换进行加密运算得到密文C,在此过程中密钥源形成子密钥,添加入Fk函数中。而接收方得到密文后同样采用该算法以相同方式进行运算,但区别于加密过程中子密钥的加载到Fk函数顺序完全倒置。S-DES加密算法流程图如图2所示。
图2中,L和R代表数据的左、右部分各4 bit,⊕代表异或操作。IP置换是简单的数据位置互换,按照指定规则将原有P1,P2,P3,P4,P5,P6,P7,P8位置变换成P2,P6,P3,P1,P4,P8,P5,P7;与之相对应的IP-1逆置换则将得到的数据变换为D4,D1,D3,D5,D7,D2,D8,D6。主体运算为Fk函数,基本函数为
式(1)中,L和R表示数据左右两部分,SK是子密钥之一,而⊕是逐位异或函数,F为其内部S-BOX与置换操作。其内部包括扩展置换E/P(左/右移位)、基于Feistal结构的S-BOX和循环左移操作,同时,扩展置换E/P后引入子密钥,与原数据异或操作,得到数据根据矩阵行列式位置选择S-BOX内部数据,组合得到运算结果。一轮运算后对调数据左右两部分,再次进行Fk函数的轮运算。最后一轮运算后直接将数据组合进行IP-1逆置换得到密文C。
图2中key1和key2表示右密钥源生成的两个子密钥。子密钥生成过程主要是左移运算,但移位数据有所不同。密钥源同样进行规定的置换操作,置换后数据分为左右两部分,分别左移1位,将其组合提取其中8 bit,即为子密钥key1。同时上述数据组合后再左移1位,重新组合提取其中8 bit,即为子密钥key2。
根据加密算法原理逻辑性强运算流水性特点,本文利用EDA技术中Quartus II开发平台进行系统设计,同时借助Visual C++仿真平台进行安全系统设计结果对比验证。该平台的图形化设计清晰形象,灵活性强、运算速度快,仿真验证效果直观,学生在有限的学时里可快速建立模型,验证正确性,激活了学生兴趣,提升学习效率和工程实践意识。
根据S-DES加密算法工作原理分析,算法加密与解密操作简单,硬件实现快速安全、灵活性较高[8]。利用Quartus II平台可建立图形化模型,有利于学生分析和建模。系统结构图如图3所示。
系统时钟加载入系统中,为保证系统运行稳定,对子密钥生成模块输入相对于加密/解密模块具有较高的频率,提前运行子密钥生成模块,为加密/解密模块运行做充分准备。控制模块可利用使能键进行加密和解密操作,最终输出正确结果。
Quartus II是由Altera公司开发的一种综合性FPGA/PLD集成仿真工具软件[9-10]。该平台支持多种硬件描述语言:VHDL、AHDL、Verilog HDL等,用户可以利用Quartus II软件的文本输入方式、模块输入方式、EDA设计输入工具等方式等进行电路描述。软件内部支持IP核,方便调用各种成熟模块,同时具有集成仿真工具。具有功能集成度高、界面统一、灵活性强、速度快等优点。
根据算法原理和系统结构,本文对结构图3中各个模块分别进行图形化设计,其各部分电路利用Quartus II平台内部模块调用及硬件语言编辑合成模块进行搭建。依据实验室内现有开发硬件平台具有20 MHz时钟晶振,设定系统时钟为20 MHz,在系统内部高性能嵌入式模拟锁相环及VHDL语言编辑下进行分频操作,得到相差10倍的频率f1和f2分别输入至子密钥生成模块和加密/解密模块。
加密算法中由密钥源生成子密钥的过程及其重要,子密钥为主体运算提供钥匙,保证系统安全[11-12]。子密钥及控制设计电路图如图4所示。
图4中输入按键有3个:RES、EN1、EN2,密钥源输入为key,输出时能信号EN,输出子密钥key1和key2。当复位信号RES=‘1’时,密钥源的工作停止,加密/解密操作终止;当RES=‘0’时,控制加密使能EN1或解密使能EN2控制系统。根据组合逻辑电路数据选择器原理设计控制模块,进行功能性选择,控制模块等待提前生成的子密钥key1和key2输入,以保证加密/解密子密钥输入正确顺序。其中,key1和key2在两次置换操作中进行分组循环左移1 bit和2 bit操作。为了保证结构清晰,将key1和key2设计电路利用软件内Create Symbol Files for current File生成子模块。
控制模块输出模式选择后的子密钥key1和key2作为主体运算电路的输入信号,连接加密/解密运算电路图的keyA和keyB,另外输入分频后频率f2连接clk0作为参考信号,输入加密/解密信息P,根据S-DES工作原理,通过存储器、异或门、循环左移寄存器、右移寄存器、16选1数据选择器共同完成顶层加解密运算,输出解密/加密结果。加密/解密顶层设计电路图如图5所示。
在系统各个模块完成后,同样利用子模块生成方法,将各部分顶层电路图生成子模块,利用图形法搭建整体电路模型。通过Quartus II平台自带仿真工具Simulator对设计电路进行综合、编译、仿真,建立波形文件[13]。
系统时钟周期50 ns,为了验证系统加密/解密正确性,加密使能EN1和解密使能EN2对应提前设定输入信息“00010111”和“00001011”,加载密钥源“0000101101”,在运算操作下验证系统输出值C及子密钥值。仿真波形图如图6所示。
在数字逻辑课程之前,学生大一期间已学过C语言程序设计,为了更好链接和验证新知识,可利用Visual C++开发平台进行程序验证。该软件类管理灵活方便、可自动生成程序框架、界面设计与代码编写交互方便,学生对新知识可利用已学内容进行预习或验证,提升对知识点的理解和学习兴趣。
界面工作区定义明文、密文、密钥源以及运算中间变量,根据S-DES工作原理对代码输入、密钥源输入、子密钥生成、Fk函数、异或操作、IP和IP-1变换以及扩展置换等分别定义编辑,该算法的核心部分就是Fk函数,其内部具有非线性S-BOX,可有效保证信息安全。Fk函数运算[14]的主要程序如下:
Void fk(char sub_key[8])
{int i;
for(i=0;i<4;i++)
{ l[i]=code[i];r[i]=code[i+4];}//分离数据
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];}
//左右数据分别存放
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;
//左右数据再次异或
while(i<4){code[i]=l[i];i++;}
while(i<8){code[i]=r[i-4];i++;}//合并数据
通过程序编写,编译成功后运行程序,得到界面如图7所示。
通过Visual C++平台系统仿真,可以观察到基于软件实现的S-DES加密算法运算过程中明文、密钥源及密文与硬件编辑开发平台Quartus II输入相同的情况下,系统仿真结果完全相同。在图形化设计与语言编辑设计两种方式实现过程中,学生可充分理解时序逻辑电路与组合逻辑电路的系统功能,同时,以工程角度在多种设计形式下,增强学生对知识应用的灵活性。
基于计算机专业数字逻辑课程培养方向和目标,以安全加密算法中S-DES算法原理为基础,利用Quartus II平台进行图形化设计以及在Visual C++平台上的C程序化设计分别实现该算法,多种形式下进行系统仿真,对比实验结果验证其准确性。设计内容承上启下,难度适中,灵活性强且可扩展至其他复杂的加密算法,既有助于数字逻辑课程内容理解,也为后续计算机组成原理、微机原理、云计算等课程打下良好知识基础。该实验平台拓展学生数字系统设计思维,提升了学生工程实践意识,也增强了课程学习兴趣。
The authors have declared that no competing interests exist.
[1] |
仿真工具在数字逻辑实验中的应用 [J].
介绍了仿真工具Multisim和Simulator的特点及其在数字逻辑实验中的具体应用,探讨了引入仿真工具对实验教学的辅助作用。实践表明,仿真工具的应用对于提高数字逻辑实验的质量和效果十分有益。
|
[2] |
Multisim仿真的数字逻辑工程素养培养 [J].
分析了数字逻辑课程在计科专业课程体系中的地位、作用及特点,针对课程教学中工程素养培养缺失的的问题,探讨了利用Multisim仿真软件平台进行教学的方法,通过教学实例详述了Multisim在数字逻辑设计中的具体工程应用实例及工程素养培养的细节问题。使得利用虚拟平台进行教学的过程实而不虚,在改进教学方法、提高教学质量、培养学生工程实践素养上发挥重要的作用。实践表明该教学方法效果良好,有效地解决了CDIO教育背景下要求课堂教学与工程实现无缝对接的问题,值得推广。
|
[3] |
计算机专业硬件基础课程实验教学体系的研究 [J]. |
[4] |
数字逻辑实验技术改革的研究 [J]. |
[5] |
计算机专业数字逻辑实验的改革与创新 [J].DOI:10.3969/j.issn.1006-7167.2013.10.048 URL [本文引用: 1] 摘要
数字逻辑是电子工程、自动化及计算机专业学生的专业必修课程。数字逻辑实验与课程相配套,除了要求学生掌握数字逻辑电路设计的基本技术外,还要了解当今先进的计算机辅助设计技术。对计算机专业的学生来说,理解计算机部件的设计及电路实现尤为重要。针对计算机专业数字逻辑及实验课程内容多年未更新,不适合当今技术发展的需求,复旦大学计算机科学技术学院对计算机专业的数字逻辑课程体系的方案进行重新设计,对实验内容进行了更新,使之适合计算机专业的教学要求。并设计了基于大规模FPGA及EDA软件的新型数字逻辑与部件设计及计算机体系结构一体化实验仪,以适应计算机学科发展的要求。
|
[6] |
密码学综述 [J]. |
[7] |
|
[8] |
An FPGA hardware parallel implementation of the DES algorithm [J].
Abstract In many applications, primary for network communication processes, cryptographic algorithms play an essential role concerning security. Generally, security requirements include: confidentiality, integrity, authentication, non-repudiation, availability and access control. However, a crucial factor in computer science is the processing time. Although traditional software designs are easy to implement, their performance in case of high workload is not matching up the requirements. Therefore, having in mind the appropriate trade-offs, the solution seems to lie at the dedicated hardware platforms like FPGA. Herein, an implementation of the DES algorithm on a single FPGA is investigated and the performance evaluation results are discussed. Further, FPGA's capabilities for hosting more than one DES cores are parallely exploited and significant results are obtained.
|
[9] |
电子式互感器数据采集器的研究 [D]. |
[10] |
基于FPGA的超高速数据采集系统的开发 [D]. |
[11] |
基于FPGA的加密算法实现 [J].DOI:10.3969/j.issn.1673-162X.2015.01.009 URL [本文引用: 1] 摘要
根据三重数据加密算法(3DES)的原理,采用全流水线和有限状态机,实现了基于现场可编程门阵列(FPGA)的3DES电路的仿真.基于Cyclone系列的EP3C40F780C6型FPGA芯片,采用自顶向下的设计思想进行电路的模块划分,有效的完成了3DES算法的总体结构和各个子模块的电路设计.利用超高速集成电路硬件描述语言(VHDL)完成了3DES加密算法的编写,并利用Altera公司的QuartusⅡ9.0综合工具对电路进行了仿真验证及逻辑综合.结果表明,该设计基本实现各模块的功能,获得了稳定的加密性能.
|
[12] |
一种基于改进DES算法的高效率FPGA硬件实现 [J].DOI:10.3969/j.issn.1673-808X.2009.06.012 URL [本文引用: 1] 摘要
针对DES密钥空间小、抗攻击能力弱的缺点,提出了一种改进S—BOX及相关密钥的DES算法。这种体制增强了穷举法攻击、线性密码分析攻击、差分密码分析攻击的难度,大大降低了信息被窃取的概率。由于硬件实现DES密钥模块内部运作,既可保证在外界无密钥的明文流动,又可具备自锁、自毁功能,具有高速、高可靠性等特点,所以利用VHDL硬件描述语言实现了改进的简化DES算法。实验验证,该方案可以抵抗线性密码分析,确保密码体制没有“陷门”,实现真正意义上的保密,同时有效地节约了硬件资源。
|
[13] |
FPGA在数字逻辑电路教学中的应用 [J]. |
[14] |
中国煤炭特性数据库数据加密技术研究 [J].DOI:10.3969/j.issn.1006-530X.2008.10.016 URL [本文引用: 1] 摘要
从中国煤炭特性数据库中数据类型的自身特点出发,分析了目前多种常用加密技术的优缺点及其适应性,在.NET框架下,选用对称密钥加密方法中的DES加密算法作为该数据库的数据加密算法,用C#语言编程实现数据加密和解密。
|
版权所有:《实验室研究与探索》编辑部
主管单位:中华人民共和国教育部 主办单位:上海交通大学 出版单位:上海交通大学学报编辑部 地址:上海市华山路1954号包图1516号 邮编:200030 电话:(86-21)62932952 62932875 |
/
〈 |
|
〉 |